Jump to content
redracer68

Backlight on wake. Should be easy. Please help.

Recommended Posts

Hey guys.  Any help at all on this would be greatly appreciated!!!

 

I've been working pretty solidly on getting my x201 fully operational.

Everything works sleep related.  Beeps when going into sleep just like windows. (I think that's called ACPI sleep) And wakes just fine.  EXCEPT the backlight stays off when waking back up.

 

I was looking at the IOReg output before and after sleep and noticed a difference.  (Below)

 

Before Sleep, The IOPowerManagement for AppleBacklightDisplay only has 2 power states... Current and Max.

 

ScreenShot2013-11-06at70500AM_zpsc726a6c

 

After sleep, that same device has 3 power states.  Current and Max like before. But now it has a DevicePowerState.

ScreenShot2013-11-06at70449AM_zpsc9d25d9

 

 

What is happening here?  And could this be the issue with the backlight not coming back on? 

Attaching the DSDT.aml from my system.

dsdt.aml.zip

Share this post


Link to post
Share on other sites

I tried patching the kext. 

But I don't think I'm even using AppleIntelFramebuffercapri.  I have AppleIntelHDGraphicsFB in the /extra/extensions folder.   I tried patching both. 

Still the same problem. 

At the last part, it says clover to do a clover patch.  But I use chameleon instead of clover. 

Any thoughts? 

Share this post


Link to post
Share on other sites

I'm not 100% on this but I think it is controlled through the DSDT. 

I have the following in my DSDT under WMI.  

 Package (0x02)
                {
                    0x05, 
                    "LCDBrightness"
                }, 

Share this post


Link to post
Share on other sites

But I also see my Display device as "Scope (_SB.PCI0.VID.LCD0)"  But I don't see any other device under that one. As in "Scope (_SB.PCI0.VID.LCD0/DD02) as I have seen in some guides. 

Share this post


Link to post
Share on other sites

Actually I did find where brightness is in my DSDT.  Seen Here starting at line:10237

Scope (PCI0.LPC.EC)
        {
            Name (BRTW, Package (0x12)
            {
                0x64, 
                0x64, 
                0x02, 
                0x03, 
                0x04, 
                0x05, 
                0x07, 
                0x08, 
                0x0A, 
                0x0C, 
                0x0E, 
                0x11, 
                0x14, 
                0x16, 
                0x1E, 
                0x2A, 
                0x3F, 
                0x64
            })
            Name (BRTB, Package (0x03)
            {
                Package (0x10)
                {
                    0x04, 
                    0x07, 
                    0x0A, 
                    0x0C, 
                    0x11, 
                    0x14, 
                    0x1A, 
                    0x1E, 
                    0x24, 
                    0x2C, 
                    0x32, 
                    0x39, 
                    0x4D, 
                    0x6C, 
                    0xA0, 
                    0xFF
                }, 

But looking at my _WAK section at 12913 I see no reference to any brightness of any kind.  

Method (_WAK, 1, NotSerialized)
    {
        If (LOr (LEqual (Arg0, Zero), LGreaterEqual (Arg0, 0x05)))
        {
            Return (WAKI)
        }

        Store (Zero, SPS)
        Store (Zero, \_SB.PCI0.LPC.EC.HCMU)
        \_SB.PCI0.LPC.EC.EVNT (One)
        \_SB.PCI0.LPC.EC.HKEY.MHKE (One)
        \_SB.PCI0.LPC.EC.FNST ()
        UCMS (0x0D)
        Store (Zero, LIDB)
        If (LEqual (Arg0, One))
        {
            Store (\_SB.PCI0.LPC.EC.HFNI, FNID)
        }

        If (LEqual (Arg0, 0x03))
        {
            Store (\_SB.PCI0.LPC.EC.AC._PSR (), PWRS)
            If (OSC4)
            {
                PNTF (0x81)
            }

            If (LNotEqual (ACST, \_SB.PCI0.LPC.EC.AC._PSR ()))
            {
                \_SB.PCI0.LPC.EC.ATMC ()
            }

            If (VIGD)
            {
                \_SB.PCI0.VID.GLIS (\_SB.LID._LID ())
                Store (\_SB.GDCK.GGID (), Local0)
                If (LOr (LEqual (Local0, Zero), LEqual (Local0, One)))
                {
                    \_SB.PCI0.VID.GDCS (One)
                }
                Else
                {
                    \_SB.PCI0.VID.GDCS (Zero)
                }

                If (WVIS)
                {
                    VBTD ()
                }
            }

            AWON (Zero)
            If (CMPR)
            {
                Notify (\_SB.SLPB, 0x02)
                Store (Zero, CMPR)
            }
        }

        If (LEqual (Arg0, 0x04))
        {
            NVSS (Zero)
            Store (Zero, \_SB.PCI0.LPC.EC.HSPA)
            Store (\_SB.PCI0.LPC.EC.AC._PSR (), PWRS)
            If (OSC4)
            {
                PNTF (0x81)
            }

            If (And (PPMF, One))
            {
                STEP (0x08)
            }

            \_SB.PCI0.LPC.EC.ATMC ()
        }

        If (XOr (\_SB.PCI0.EXP4.PDS, \_SB.PCI0.EXP4.PDSF))
        {
            Store (\_SB.PCI0.EXP4.PDS, \_SB.PCI0.EXP4.PDSF)
            Notify (\_SB.PCI0.EXP4, Zero)
        }

        \_SB.GDCK.GWAK (Arg0)
        \_SB.PCI0.LPC.EC.BWAK (Arg0)
        \_SB.PCI0.LPC.EC.HKEY.WGWK (Arg0)
        Notify (\_TZ.THM0, 0x80)
        VSLD (\_SB.LID._LID ())
        If (VIGD)
        {
            \_SB.PCI0.VID.GLIS (\_SB.LID._LID ())
        }

        If (LLess (Arg0, 0x04))
        {
            If (And (RRBF, 0x02))
            {
                ShiftLeft (Arg0, 0x08, Local0)
                Store (Or (0x2013, Local0), Local0)
                \_SB.PCI0.LPC.EC.HKEY.MHKQ (Local0)
            }
        }

        If (LEqual (Arg0, 0x04))
        {
            Store (Zero, Local0)
            Store (CSUM (Zero), Local1)
            If (LNotEqual (Local1, CHKC))
            {
                Store (One, Local0)
                Store (Local1, CHKC)
            }

            Store (CSUM (One), Local1)
            If (LNotEqual (Local1, CHKE))
            {
                Store (One, Local0)
                Store (Local1, CHKE)
            }

            If (Local0)
            {
                Notify (_SB, Zero)
            }
        }

        Store (Zero, RRBF)
        Return (WAKI)
    }

I have no clue how to call it or tell it what brightness to use. 

Share this post


Link to post
Share on other sites

Also, I think the backlight is not getting the wake signal at all.  

When using another ACPIBacklight.kext It gave me a working slider in system preferences/displays.   But after waking still no backlight.  

I used a flashlight to go back into system prefs/displays and try the slider  Moving the slider had no effect at all.  Still no backlight. 

Share this post


Link to post
Share on other sites

×
×
  • Create New...