Jump to content

Intel HD Graphics 4600 Can't change brightness.


Raff7M
 Share

166 posts in this topic

Recommended Posts

Thank You! :D

Did it work?

 

Your situation should be very simple... Your discrete device's _OFF and _INI are in SSDT5:

        Method (_INI, 0, NotSerialized)
        {
            Store (Zero, \_SB.PCI0.PEG1.PEGP._ADR)
            _OFF()  // added to turn nvidia off
        }
Link to comment
Share on other sites

 

Did it work?

 

Your situation should be very simple... Your discrete device's _OFF and _INI are in SSDT5:

        Method (_INI, 0, NotSerialized)
        {
            Store (Zero, \_SB.PCI0.PEG1.PEGP._ADR)
            _OFF()  // added to turn nvidia off
        }

Yes it worked but no imessage or facetime which both i don't care about I use them on my iPhone :D

 

But I can't apply the ssdt5 patch (I can't press the apply button)

(I have only added what you gave me here which is not being added actually, is there anything more ?)

Link to comment
Share on other sites

Yes it worked but no imessage or facetime which both i don't care about I use them on my iPhone :D

 

But I can't apply the ssdt5 patch (I can't press the apply button)

(I have only added what you gave me here which is not being added actually, is there anything more ?)

That is not a patch. Just a single line added to the _INI method.

Link to comment
Share on other sites

That is not a patch. Just a single line added to the _INI method.

then I do like this:

search: Method (_INI, 0, NotSerialized) { }

then add this: Store (Zero, \_SB.PCI0.PEG1.PEGP._ADR)

_OFF()

 

??

 

Link to comment
Share on other sites

then I do like this:

search: Method (_INI, 0, NotSerialized) { }

then add this: Store (Zero, \_SB.PCI0.PEG1.PEGP._ADR)

_OFF()

 

??

The Store(Zero...) is already there (look at it and see). Just adding the _OFF().

 

A MaciASL patch to do the same thing would be:

into method label _INI parent_label \_SB.PCI0.PEG1.PEGP code_regex . insert begin _OFF()\n end;
Link to comment
Share on other sites

The Store(Zero...) is already there (look at it and see). Just adding the _OFF().

 

A MaciASL patch to do the same thing would be:

into method label _INI parent_label \_SB.PCI0.PEG1.PEGP code_regex . insert begin _OFF()\n end;

NVIDIA CHIP is still in system report :/

Link to comment
Share on other sites

 

Post ioreg.

 

Need to verify if it is being called. Patch SSDT5 so it has "Add ACPI Debug Methods" from debug repo (like you did earlier with the DSDT).

 

Then add some code (added code is the \rmdt stuff):

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
\rmdt.p1("PEG1.PEGP._INI enter")
            Store (Zero, \_SB.PCI0.PEG1.PEGP._ADR) /* External reference */
            _OFF ()
\rmdt.p1("PEG1.PEGP._INI exit")
        }
And to PEGP._OFF:

        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
\rmdt.p1("PEG1.PEGP._OFF enter")
            Store (Zero, \_SB.PCI0.LPCB.EC0.FBRQ) /* External reference */
            If (\ECON)
            {
                Store (0x03, \_SB.PCI0.LPCB.EC0.GATY) /* External reference */
            }

            Store (LCTL, ELCT) /* \_SB_.PCI0.PEG1.PEGP.ELCT */
            Store (VREG, VGAB) /* \_SB_.PCI0.PEG1.PEGP.VGAB */
            Store (EMLW, DMLW) /* \_SB_.PCI0.PEG1.PEGP.DMLW */
            SPP0 ()
            Store (One, LNKD) /* \_SB_.PCI0.PEG1.LNKD */
            While (LNotEqual (LNKS, Zero))
            {
                Sleep (One)
            }

            Store (0x02, AFES) /* \_SB_.PCI0.PEG1.AFES */
            If (LGreaterEqual (And (PNHM, 0x0F), 0x03))
            {
                Store (GMXB (), MBDL) /* \_SB_.PCI0.PEG1.PEGP.MBDL */
                PDUB (MBDL)
            }

            If (LGreaterEqual (PCSL, 0x04))
            {
                If (LEqual (SC7A, One))
                {
                    C7OK (One)
                }
            }

            SGPO (HLRS, One)
            Sleep (0x02)
            SGPO (0x34, One)
            SGPO (PWEN, One)
\rmdt.p1("PEG1.PEGP._OFF exit")
            Return (Zero)
        }
Check output in system.log after booting.
Link to comment
Share on other sites

Need to verify if it is being called. Patch SSDT5 so it has "Add ACPI Debug Methods" from debug repo (like you did earlier with the DSDT).

 

Then add some code (added code is the \rmdt stuff):

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
\rmdt.p1("PEG1.PEGP._INI enter")
            Store (Zero, \_SB.PCI0.PEG1.PEGP._ADR) /* External reference */
            _OFF ()
\rmdt.p1("PEG1.PEGP._INI exit")
        }
And to PEGP._OFF:

        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
\rmdt.p1("PEG1.PEGP._OFF enter")
            Store (Zero, \_SB.PCI0.LPCB.EC0.FBRQ) /* External reference */
            If (\ECON)
            {
                Store (0x03, \_SB.PCI0.LPCB.EC0.GATY) /* External reference */
            }

            Store (LCTL, ELCT) /* \_SB_.PCI0.PEG1.PEGP.ELCT */
            Store (VREG, VGAB) /* \_SB_.PCI0.PEG1.PEGP.VGAB */
            Store (EMLW, DMLW) /* \_SB_.PCI0.PEG1.PEGP.DMLW */
            SPP0 ()
            Store (One, LNKD) /* \_SB_.PCI0.PEG1.LNKD */
            While (LNotEqual (LNKS, Zero))
            {
                Sleep (One)
            }

            Store (0x02, AFES) /* \_SB_.PCI0.PEG1.AFES */
            If (LGreaterEqual (And (PNHM, 0x0F), 0x03))
            {
                Store (GMXB (), MBDL) /* \_SB_.PCI0.PEG1.PEGP.MBDL */
                PDUB (MBDL)
            }

            If (LGreaterEqual (PCSL, 0x04))
            {
                If (LEqual (SC7A, One))
                {
                    C7OK (One)
                }
            }

            SGPO (HLRS, One)
            Sleep (0x02)
            SGPO (0x34, One)
            SGPO (PWEN, One)
\rmdt.p1("PEG1.PEGP._OFF exit")
            Return (Zero)
        }
Check output in system.log after booting.

 

Hi, sorry for being late I had network problem in my house...

I can't apply EC Queries patch on the ssdt5....

Link to comment
Share on other sites

 

I don't see any output from ACPIDebug. Post ioreg.

 

RMDT is in ioreg (and it is not in DSDT, so it must be coming from the target SSDT, which is good/expected).

 

But ACPIDebug is not attached to it. Indicates failure to install ACPIDebug.kext.

Link to comment
Share on other sites

what about now ?

As you can tell from the logs, you're getting _OFF enter, but no exit. Indicative of failing somewhere in the middle. Now you need to determine where:

        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
\rmdt.p1("PEG1.PEGP._OFF enter")
            Store (Zero, \_SB.PCI0.LPCB.EC0.FBRQ) /* External reference */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #1")
            If (\ECON)
            {
\rmdt.p1("PEG1.PEGP._OFF checkpoint #2")
                Store (0x03, \_SB.PCI0.LPCB.EC0.GATY) /* External reference */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #3")
            }

\rmdt.p1("PEG1.PEGP._OFF checkpoint #4")
            Store (LCTL, ELCT) /* \_SB_.PCI0.PEG1.PEGP.ELCT */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #5")
            Store (VREG, VGAB) /* \_SB_.PCI0.PEG1.PEGP.VGAB */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #6")
            Store (EMLW, DMLW) /* \_SB_.PCI0.PEG1.PEGP.DMLW */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #7")
            SPP0 ()
\rmdt.p1("PEG1.PEGP._OFF checkpoint #8")
            Store (One, LNKD) /* \_SB_.PCI0.PEG1.LNKD */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #9")
            While (LNotEqual (LNKS, Zero))
            {
                Sleep (One)
            }
\rmdt.p1("PEG1.PEGP._OFF checkpoint #10")

            Store (0x02, AFES) /* \_SB_.PCI0.PEG1.AFES */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #11")
            If (LGreaterEqual (And (PNHM, 0x0F), 0x03))
            {
\rmdt.p1("PEG1.PEGP._OFF checkpoint #12")
                Store (GMXB (), MBDL) /* \_SB_.PCI0.PEG1.PEGP.MBDL */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #13")
                PDUB (MBDL)
            }
\rmdt.p1("PEG1.PEGP._OFF checkpoint #14")

            If (LGreaterEqual (PCSL, 0x04))
            {
\rmdt.p1("PEG1.PEGP._OFF checkpoint #15")
                If (LEqual (SC7A, One))
                {
\rmdt.p1("PEG1.PEGP._OFF checkpoint #16")
                    C7OK (One)
                }
            }

\rmdt.p1("PEG1.PEGP._OFF checkpoint #17")
            SGPO (HLRS, One)
\rmdt.p1("PEG1.PEGP._OFF checkpoint #18")
            Sleep (0x02)
\rmdt.p1("PEG1.PEGP._OFF checkpoint #19")
            SGPO (0x34, One)
\rmdt.p1("PEG1.PEGP._OFF checkpoint #20")
            SGPO (PWEN, One)
\rmdt.p1("PEG1.PEGP._OFF exit")
            Return (Zero)
        }
Link to comment
Share on other sites

As you can tell from the logs, you're getting _OFF enter, but no exit. Indicative of failing somewhere in the middle. Now you need to determine where:

        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
\rmdt.p1("PEG1.PEGP._OFF enter")
            Store (Zero, \_SB.PCI0.LPCB.EC0.FBRQ) /* External reference */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #1")
            If (\ECON)
            {
\rmdt.p1("PEG1.PEGP._OFF checkpoint #2")
                Store (0x03, \_SB.PCI0.LPCB.EC0.GATY) /* External reference */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #3")
            }

\rmdt.p1("PEG1.PEGP._OFF checkpoint #4")
            Store (LCTL, ELCT) /* \_SB_.PCI0.PEG1.PEGP.ELCT */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #5")
            Store (VREG, VGAB) /* \_SB_.PCI0.PEG1.PEGP.VGAB */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #6")
            Store (EMLW, DMLW) /* \_SB_.PCI0.PEG1.PEGP.DMLW */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #7")
            SPP0 ()
\rmdt.p1("PEG1.PEGP._OFF checkpoint #8")
            Store (One, LNKD) /* \_SB_.PCI0.PEG1.LNKD */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #9")
            While (LNotEqual (LNKS, Zero))
            {
                Sleep (One)
            }
\rmdt.p1("PEG1.PEGP._OFF checkpoint #10")

            Store (0x02, AFES) /* \_SB_.PCI0.PEG1.AFES */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #11")
            If (LGreaterEqual (And (PNHM, 0x0F), 0x03))
            {
\rmdt.p1("PEG1.PEGP._OFF checkpoint #12")
                Store (GMXB (), MBDL) /* \_SB_.PCI0.PEG1.PEGP.MBDL */
\rmdt.p1("PEG1.PEGP._OFF checkpoint #13")
                PDUB (MBDL)
            }
\rmdt.p1("PEG1.PEGP._OFF checkpoint #14")

            If (LGreaterEqual (PCSL, 0x04))
            {
\rmdt.p1("PEG1.PEGP._OFF checkpoint #15")
                If (LEqual (SC7A, One))
                {
\rmdt.p1("PEG1.PEGP._OFF checkpoint #16")
                    C7OK (One)
                }
            }

\rmdt.p1("PEG1.PEGP._OFF checkpoint #17")
            SGPO (HLRS, One)
\rmdt.p1("PEG1.PEGP._OFF checkpoint #18")
            Sleep (0x02)
\rmdt.p1("PEG1.PEGP._OFF checkpoint #19")
            SGPO (0x34, One)
\rmdt.p1("PEG1.PEGP._OFF checkpoint #20")
            SGPO (PWEN, One)
\rmdt.p1("PEG1.PEGP._OFF exit")
            Return (Zero)
        }

Here is the system.log

 

system.log.zip

Link to comment
Share on other sites

Here is the system.log

All I see is:

Jun 18 17:00:30 localhost kernel[0]: ACPIDebug: "PEG1.PEGP._INI enter"
Jun 18 17:00:30 localhost kernel[0]: ACPIDebug: "PEG1.PEGP._OFF enter"
Assuming you actually have the changes posted above in your DSDT (you did not post ioreg for verification), then it indicates the store to FBRQ is causing abort (because you didn't reach checkpoint #1). You will need to determine which SSDT that external is in and make sure it is included.
Link to comment
Share on other sites

All I see is:

Jun 18 17:00:30 localhost kernel[0]: ACPIDebug: "PEG1.PEGP._INI enter"
Jun 18 17:00:30 localhost kernel[0]: ACPIDebug: "PEG1.PEGP._OFF enter"
Assuming you actually have the changes posted above in your DSDT (you did not post ioreg for verification), then it indicates the store to FBRQ is causing abort (because you didn't reach checkpoint #1). You will need to determine which SSDT that external is in and make sure it is included.

 

I included new system.log and ioreg

......

I have new problem which is very annoying my laptop is rebooting randomly on osx :/ (it may reboot in hour or two and it may not :/) any idea ? 

Archive.zip

Link to comment
Share on other sites

I included new system.log and ioreg

......

I have new problem which is very annoying my laptop is rebooting randomly on osx :/ (it may reboot in hour or two and it may not :/) any idea ?

I think EC may not be ready at the point _INI is called.

 

Try changing as follows...

 

From:

        Method (_OFF, 0, Serialized)
        {
            \RMDT.P1 ("PEG1.PEGP._OFF enter")
            Store (Zero, \_SB.PCI0.LPCB.EC0.FBRQ)
            \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #1")
            If (\ECON)
            {
                \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #2")
                Store (0x03, \_SB.PCI0.LPCB.EC0.GATY)
                \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #3")
            }
...
To:

        Method (_OFF, 0, Serialized)
        {
            \RMDT.P1 ("PEG1.PEGP._OFF enter")
            If (\ECON)
            {
            Store (Zero, \_SB.PCI0.LPCB.EC0.FBRQ)
            \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #1")
                \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #2")
                Store (0x03, \_SB.PCI0.LPCB.EC0.GATY)
                \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #3")
            }
...
Alternately, you could call _OFF from EC0._REG in DSDT...

 

From:

                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Notify (ADP0, 0x80)
                            Notify (BAT0, 0x80)
                        }
                    }
To:

                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Notify (ADP0, 0x80)
                            Notify (BAT0, 0x80)
   External(\_SB.PCI0.PEG1.PEGP._OFF, MethodObj)
   if (CondRefOf(\_SB.PCI0.PEG1.PEGP._OFF)) { \_SB.PCI0.PEG1.PEGP._OFF() }
                        }
                    }
Link to comment
Share on other sites

I think EC may not be ready at the point _INI is called.

 

Try changing as follows...

 

From:

 

Method (_OFF, 0, Serialized)        {            \RMDT.P1 ("PEG1.PEGP._OFF enter")            Store (Zero, \_SB.PCI0.LPCB.EC0.FBRQ)            \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #1")            If (\ECON)            {                \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #2")                Store (0x03, \_SB.PCI0.LPCB.EC0.GATY)                \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #3")            }...
To:

Method (_OFF, 0, Serialized)        {            \RMDT.P1 ("PEG1.PEGP._OFF enter")            If (\ECON)            {            Store (Zero, \_SB.PCI0.LPCB.EC0.FBRQ)            \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #1")                \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #2")                Store (0x03, \_SB.PCI0.LPCB.EC0.GATY)                \RMDT.P1 ("PEG1.PEGP._OFF checkpoint #3")            }...
Alternately, you could call _OFF from EC0._REG in DSDT...

 

From:

Method (_REG, 2, NotSerialized)                    {                        If (LEqual (Arg0, 0x03))                        {                            Notify (ADP0, 0x80)                            Notify (BAT0, 0x80)                        }                    }
To:

Method (_REG, 2, NotSerialized)                    {                        If (LEqual (Arg0, 0x03))                        {                            Notify (ADP0, 0x80)                            Notify (BAT0, 0x80)   External(\_SB.PCI0.PEG1.PEGP._OFF, MethodObj)   if (CondRefOf(\_SB.PCI0.PEG1.PEGP._OFF)) { \_SB.PCI0.PEG1.PEGP._OFF() }                        }                    }

 

I used the alternate way

It looks like this instead of NVIDIA CHIP does it mean it is turned off now ?

post-1358186-0-47065500-1403137942_thumb.jpg

Link to comment
Share on other sites

 Share

×
×
  • Create New...