Contribute
Register

Lid close stop working after sleep

Status
Not open for further replies.
yes, "kext with invalid...." is fine and is what you should be seeing

although it looks like you patched this file:

Code:
Kext with invalid signatured (-67054) allowed: <OSKext 0x7f9b3ce9eb10 [0x7fffa968b8e0]> { URL = "file:///System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/", ID = "com.apple.driver.X86PlatformPlugin" }
for some reason?

your config.plist is a bit of a mess, did you use clover configurator to create a conifg.plist for you? as that is very wrong, best to use a clean one form the laptop guide

@Feartech , yes, I modified IOPlatformPluginFamily.kext to include proper FrequencyVectors (https://github.com/Piker-Alpha/freqVectorsEdit.sh)

I've used clean clover config from clover installation as a starting point. Now I've replaced it with the one recommended by Rehabman and moved my settings to it, so it is easier to read. Attached.
 

Attachments

  • config.plist
    14.3 KB · Views: 50
@Feartech , yes, I modified IOPlatformPluginFamily.kext to include proper FrequencyVectors (https://github.com/Piker-Alpha/freqVectorsEdit.sh)

I've used clean clover config from clover installation as a starting point. Now I've replaced it with the one recommended by Rehabman and moved my settings to it, so it is easier to read. Attached.
certainly better, although you may want to:

remove this:
Code:
<key>ForceKextsToLoad</key>
        <array>
            <string>\System\Library\Extensions\IONetworkingFamily.kext</string>
        </array>

you need to enable these:
Code:
<key>Fixes</key>
            <dict>
                <key>Comment-IRQ Fix</key>
                <string>The following fixes may be needed for onboard audio/USB/etc</string>
                <key>FixHPET</key>
                <false/>
                <key>FixIPIC</key>
                <false/>
                <key>FixRTC</key>
                <false/>
                <key>FixTMR</key>
                <false/>
            </dict>

also try without patching IOPlatformPluginFamily.kext and see if you get any panics
 
certainly better, although you may want to:

remove this:
Code:
<key>ForceKextsToLoad</key>
        <array>
            <string>\System\Library\Extensions\IONetworkingFamily.kext</string>
        </array>

you need to enable these:
Code:
<key>Fixes</key>
            <dict>
                <key>Comment-IRQ Fix</key>
                <string>The following fixes may be needed for onboard audio/USB/etc</string>
                <key>FixHPET</key>
                <false/>
                <key>FixIPIC</key>
                <false/>
                <key>FixRTC</key>
                <false/>
                <key>FixTMR</key>
                <false/>
            </dict>

also try without patching IOPlatformPluginFamily.kext and see if you get any panics

@Feartech , I've just tried those options in the config, but they make no difference.
it looks like I do not have native IOPlatformPluginFamily.kext for 10.14.6 version, as I run update after modifications and this signature error persists through this update.
Maybe you can provide the native one?

Also it seems that this still will not help with my initial problem. It looks like all _QXX queries are not triggered after sleep, so the problem is probably somewhere in the native DSDT. Another side effect that I observe is that small led on the FnLock button is off after restart and can be switched. But after sleep it is always on and cannot be switched. Again it is a _QXX query that should be triggered by this button, but it is not after sleep.
 
This is the exact same problem plaguing my E480 -- functions relating to the EC such as media keys / EC Queries, LID detection, etc. do not work after the first time the machine is put to sleep. Before using sleep, these function just fine.

I am in the midst of cleaning up my config (was working on cleaning up another build first) before uploading problem reporting files. I've been looking for issues with _PTS, _WAK, etc with no luck, but I'm relatively new to DSDT, and the EC related functionality seems to be fairly different on other machines.
 
the problem is probably somewhere in the native DSDT
Try attached DSDT...

You also have two RMDT methods, one in DSDT and the second in SSDT-DEBUG.
Remove one of them...
 

Attachments

  • DSDT.aml
    129.9 KB · Views: 45
Try attached DSDT...

You also have two RMDT methods, one in DSDT and the second in SSDT-DEBUG.
Remove one of them...

Hi @FreeJHack, thanks for your help. Unfortunately your DSDT does not fix this problem :(

From the moment I posted this topic I re-arranged my clover a little bit and now using native DSDT with hotpatches.
I'm attaching actual debug info, but I do not think it will add any help for the discussed problem.

PS: I also disabled PTS and WAK hotpaches before testing your DSDT.
 

Attachments

  • debug_19713.zip
    7.7 MB · Views: 37
  • DSDT-default.dsl
    944.5 KB · Views: 47
using native DSDT with hotpatches
Try changing the patched _WAK method, in SSDT-PTSWAK, replacing
Code:
        If (LOr (LLess (Arg0, One), LGreater (Arg0, 0x05)))
        {
            Store (0x03, Arg0)
        }
with
Code:
        If (LOr (LLess (Arg0, One), LGreater (Arg0, 0x04)))
        {
            Store (0x03, Arg0)
        }

In addition, you also have other ACPI issues:
USBs are not correctly injected. Your PCI device is 9d2f you left 9dxx in your SSDT-UIAC file
Check the guide for further details

You patched the _L43 method which is the GPE of LID. You have to be sure that
Code:
            If (And (Local0, 0x04))
            {
                Notify (\_SB.LID, 0x02)
            }
is executed at the right time. I suggest to use ACPIDebug.

The following error should be fixed
Code:
2019-10-08 12:33:28.609285+0300 0x71       Default     0x0                  0      0    kernel: (AppleACPIPlatform) ACPI Error:
2019-10-08 12:33:28.609287+0300 0x71       Default     0x0                  0      0    kernel: (AppleACPIPlatform) [_SB_.PCI0.LPC_.KBD_]
Most probably is a reference error: as per ioreg, your KBD is in \_SB.KBD
 
@FreeJHack thanks for you suggestions.

Try changing the patched _WAK method, in SSDT-PTSWAK
Tried this, but no changes in system behavior.

Your PCI device is 9d2f you left 9dxx in your SSDT-UIAC file
Fixed this

Most probably is a reference error: as per ioreg, your KBD is in \_SB.KBD
I looked up in DSDT and KBD is indeed in SB. But after fixing it in SSDT, log now shows this error (no idea how to fix it further):
2019-10-10 17:52:17.626396+0300 0x71 Default 0x0 0 0 kernel: (AppleACPIPlatform) ACPI Error:
2019-10-10 17:52:17.626397+0300 0x71 Default 0x0 0 0 kernel: (AppleACPIPlatform) [_SB_.KBD_]

You patched the _L43 method which is the GPE of LID
Previously it was not patched and behavior was the same. I also tried to track behavior with ACPIDebug, but those LID methods are called too earlier after sleep, so they are not shown in console as ACPIDebug activity is not restored yet.

Most recent debug files are attached.
 

Attachments

  • debug_26588.zip
    7.6 MB · Views: 44
no idea how to fix it
Your wrong reference was in the file SSDT-Thinkpad_Clickpad only, this is what you had
Code:
External (_SB_.PCI0.LPC_.KBD_, DeviceObj)    // (from opcode)
Scope (_SB.PCI0.LPC.KBD)
and this is what you need
Code:
External (_SB_.PCI0.LPCB.KBD_, DeviceObj)    // (from opcode)
Scope (_SB.PCI0.LPCB.KBD)
Update SSDT-Thinkpad_Clickpad according to the above and restore in SSDT-KBD External (_SB_.PCI0.LPCB.KBD_, DeviceObj), it was correct.
The error should disappear.

no changes in system behavior
Use ACPIDebug and check that method XWAK is executed and note Arg0 value, the same for method OWAK, when the system is woke-up. You should add \RMDT.P2("XWAK=",Arg0) in DSDT_WAK method and \RMDT.P2("OWAK=",Arg0) in DSDT OWAK method.
 
Your wrong reference was in the file SSDT-Thinkpad_Clickpad only, this is what you had

Use ACPIDebug and check that method XWAK is executed and note Arg0 value, the same for method OWAK, when the system is woke-up. You should add \RMDT.P2("XWAK=",Arg0) in DSDT_WAK method and \RMDT.P2("OWAK=",Arg0) in DSDT OWAK method.

@FreeJHack, thanks again!
It looks like all errors are gone now, but still the same behavior is observed.
I've added debug logs and this is what I see on wake with ACPI filter:
default 13:48:00.356218 +0300 kernel Facs->FirmwareWakingVector: 0x2000 default 13:48:00.356226 +0300 kernel Facs->Length: 0x40 default 13:48:00.356228 +0300 kernel Facs->Version: 0x2 default 13:48:00.356229 +0300 kernel Facs->XFirmwareWakingVector: 0x0 default 13:43:39.844261 +0300 kernel Facs->OspmFlags: 0x0 default 13:43:39.916359 +0300 kernel ACPI S3 WAKE default 13:43:39.918899 +0300 kernel ACPIDebug: { "SSDT_WAK=", 0x3, } default 13:43:39.933028 +0300 kernel ACPIDebug: { "SSDT-OWAK", 0x3, } default 13:43:44.074857 +0300 kernel Facs->FirmwareWakingVector: 0x0 default 13:48:00.474179 +0300 kernel Facs->Length: 0x40 default 13:48:00.474181 +0300 kernel Facs->Version: 0x2 default 13:48:00.474182 +0300 kernel Facs->XFirmwareWakingVector: 0x0 default 13:48:00.474184 +0300 kernel Facs->OspmFlags: 0x0 default 13:48:00.480942 +0300 kernel AppleACPIPlatformPower Wake reason: power-button (User)
Recent debug files attached.
 

Attachments

  • debug_5702.zip
    7.4 MB · Views: 65
Status
Not open for further replies.
Back
Top