Contribute
Register

[Help] AppleALC Kernel Panic after Catalina update

Joined
Jun 15, 2015
Messages
50
Motherboard
Fujitsu Lifebook E744 HM86
CPU
i5-4300M
Graphics
HD 4600, 1600x900
Mac
Mac Pro
Hi, I just updated to Catalina and everything went smooth expect of Bluetooth and sleep.

I managed to get Bluetooth working by changing brcmpatchram2.kext and adding the injector (found my problem online and solved) but now if my system goes to sleep and I wake it, after 5 to 10 seconds it crashes with the following KP:

Code:
panic(cpu 3 caller 0xffffff800202b747): "AppleHDAHDMI_DPDriver::setPowerState(0xffffff801e31b800 : 0xffffff7f83d87730, 0 -> 1) timed out after 10160 ms"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/xnu/xnu-6110.0.0.121.5/iokit/Kernel/IOServicePM.cpp:5277
Backtrace (CPU 3), Frame : Return Address
I attached my debug files.
Thanks in advance
 

Attachments

Joined
Jun 15, 2015
Messages
50
Motherboard
Fujitsu Lifebook E744 HM86
CPU
i5-4300M
Graphics
HD 4600, 1600x900
Mac
Mac Pro
Hi, I've tried to disable HDMI to DP via whatevergreen and I've changed ig-platform-id with no luck. It seems to be something relative to my display port output and the audio but I can't figure out where this function is...

UPDATE: also noticed that if I have a display attached through the DP, this doesn't happen
 
Last edited:
Joined
May 12, 2017
Messages
8
Motherboard
ThinkPad P50
CPU
XEON E3-1505M
Graphics
Intel HD P530
Mac
MacBook Pro
Mobile Phone
Android
I have the same problem. My three laptop are same.
 
Joined
Jun 15, 2015
Messages
50
Motherboard
Fujitsu Lifebook E744 HM86
CPU
i5-4300M
Graphics
HD 4600, 1600x900
Mac
Mac Pro
I've found the part of code that cause the panic inside the file (at least i think), can clearly see the checks for the panic:
C++:
bool IOService::ackTimerTick( void )
{
    IOPMinformee *      nextObject;
    bool                done = false;

    PM_ASSERT_IN_GATE();
    switch (fMachineState) {
        case kIOPM_OurChangeWaitForPowerSettle:
        case kIOPM_ParentChangeWaitForPowerSettle:
            // are we waiting for controlling driver to acknowledge?
            if ( fDriverTimer > 0 )
            {
                // yes, decrement timer tick
                fDriverTimer--;
                if ( fDriverTimer == 0 )
                {
                    // controlling driver is tardy
                    uint64_t nsec = computeTimeDeltaNS(&fDriverCallStartTime);
                    OUR_PMLog(kPMLogCtrlDriverTardy, 0, 0);
                    setProperty(kIOPMTardyAckSPSKey, kOSBooleanTrue);
                    PM_ERROR("%s::setPowerState(%p, %lu -> %lu) timed out after %d ms\n",
                        fName, OBFUSCATE(this), fCurrentPowerState, fHeadNotePowerState, NS_TO_MS(nsec));

#if DEBUG && CONFIG_EMBEDDED
                    panic("%s::setPowerState(%p, %lu -> %lu) timed out after %d ms",
                        fName, this, fCurrentPowerState, fHeadNotePowerState, NS_TO_MS(nsec));
#else
                    if (gIOKitDebug & kIOLogDebugPower)
                    {
                        panic("%s::setPowerState(%p, %lu -> %lu) timed out after %d ms",
                            fName, this, fCurrentPowerState, fHeadNotePowerState, NS_TO_MS(nsec));
                    }
                    else
                    {
                        // Unblock state machine and pretend driver has acked.
                        done = true;
                    }
#endif
                    getPMRootDomain()->reset_watchdog_timer(this, 0);
                } else {
                    // still waiting, set timer again
                    start_ack_timer();
                }
            }
            break;

        case kIOPM_NotifyChildrenStart:
            // are we waiting for interested parties to acknowledge?
            if ( fHeadNotePendingAcks != 0 )
            {
                // yes, go through the list of interested drivers
                nextObject = fInterestedDrivers->firstInList();
                // and check each one
                while (  nextObject != NULL )
                {
                    if ( nextObject->timer > 0 )
                    {
                        nextObject->timer--;
                        // this one should have acked by now
                        if ( nextObject->timer == 0 )
                        {
                            uint64_t nsec = computeTimeDeltaNS(&nextObject->startTime);
                            OUR_PMLog(kPMLogIntDriverTardy, 0, 0);
                            nextObject->whatObject->setProperty(kIOPMTardyAckPSCKey, kOSBooleanTrue);
                            PM_ERROR("%s::powerState%sChangeTo(%p, %s, %lu -> %lu) timed out after %d ms\n",
                                nextObject->whatObject->getName(),
                                (fDriverCallReason == kDriverCallInformPreChange) ? "Will" : "Did",
                                OBFUSCATE(nextObject->whatObject), fName, fCurrentPowerState, fHeadNotePowerState,
                                NS_TO_MS(nsec));

                            // Pretend driver has acked.
                            fHeadNotePendingAcks--;
                        }
                    }
                    nextObject = fInterestedDrivers->nextInList(nextObject);
                }

                // is that the last?
                if ( fHeadNotePendingAcks == 0 )
                {
                    // yes, we can continue
                    done = true;
                } else {
                    // no, set timer again
                    start_ack_timer();
                }
            }
            break;

        // TODO: aggreggate this
        case kIOPM_OurChangeTellClientsPowerDown:
        case kIOPM_OurChangeTellUserPMPolicyPowerDown:
        case kIOPM_OurChangeTellPriorityClientsPowerDown:
        case kIOPM_OurChangeNotifyInterestedDriversWillChange:
        case kIOPM_ParentChangeTellPriorityClientsPowerDown:
        case kIOPM_ParentChangeNotifyInterestedDriversWillChange:
        case kIOPM_SyncTellClientsPowerDown:
        case kIOPM_SyncTellPriorityClientsPowerDown:
        case kIOPM_SyncNotifyWillChange:
        case kIOPM_TellCapabilityChangeDone:
            // apps didn't respond in time
            cleanClientResponses(true);
            OUR_PMLog(kPMLogClientTardy, 0, 1);
            // tardy equates to approval
            done = true;
            break;

        default:
            PM_LOG1("%s: unexpected ack timer tick (state = %d)\n",
                getName(), fMachineState);
            break;
    }
    return done;
}
How it can be useful in any way
 
Joined
Jun 15, 2015
Messages
50
Motherboard
Fujitsu Lifebook E744 HM86
CPU
i5-4300M
Graphics
HD 4600, 1600x900
Mac
Mac Pro
UPDATE 2: If AppleALC is removed the system does not crash after sleep, going to check out AppleALC code to seek smth useful
 
Joined
Jun 15, 2015
Messages
50
Motherboard
Fujitsu Lifebook E744 HM86
CPU
i5-4300M
Graphics
HD 4600, 1600x900
Mac
Mac Pro
After I've spent all the day for a solution I can confirm that I don't know what to do to fix this. If anyone has an idea pls share
 
Joined
Sep 11, 2019
Messages
10
Motherboard
ASUS N551JW
CPU
i7-4720HQ
Graphics
HD 4600 + GTX 960m
Mobile Phone
Android
Affected by this as well :'(. I'm attaching my debug files in hope they can help diagnose this bug.

EDIT: Updated crash files.
 

Attachments

Last edited:
Joined
Jun 15, 2015
Messages
50
Motherboard
Fujitsu Lifebook E744 HM86
CPU
i5-4300M
Graphics
HD 4600, 1600x900
Mac
Mac Pro
Affected by this as well :'(. I'm attaching my debug files in hope they can help diagnose this bug.

EDIT: Updated crash files.
Thanks for sharing your files, i've seen that you too crash on "AudioAUUC 1.70", maybe it's something to do with how AppleALC interfaces with that(?), at this point i'm just assuming things and throwing ideas lol
 
Joined
Sep 11, 2019
Messages
10
Motherboard
ASUS N551JW
CPU
i7-4720HQ
Graphics
HD 4600 + GTX 960m
Mobile Phone
Android
I will try to examine both your and my crash dumps thoroughly in the next 20 hours, see if I can find something. I want to point out that I'm running a direct upgrade from Mojave where I did not experience this problem.
 
Joined
Jun 15, 2015
Messages
50
Motherboard
Fujitsu Lifebook E744 HM86
CPU
i5-4300M
Graphics
HD 4600, 1600x900
Mac
Mac Pro
I will try to examine both your and my crash dumps thoroughly in the next 20 hours, see if I can find something. I want to point out that I'm running a direct upgrade from Mojave where I did not experience this problem.
Same for me, updated from Mojave.
 
Top