Jump to content

Disabling NVIDIA Optimus card on all laptops


Whit3Spirit
 Share

345 posts in this topic

Recommended Posts

SSDT method don't work with my laptop. I have the _INI method in the _SB scope.

Read post #74 carefully.

No methods working under osx 10.9.2 even the DSDT method... you know that ?

On the contrary. I know of several examples of people using my method to disable discrete cards on 10.9.2.

 

It is a very detail oriented task, however. One detail wrong, and it won't work... with little indication as to what the mistake is.

Link to comment
Share on other sites

Read post #74 carefully.

 

On the contrary. I know of several examples of people using my method to disable discrete cards on 10.9.2.

 

It is a very detail oriented task, however. One detail wrong, and it won't work... with little indication as to what the mistake is.

Agree, I always use ssdt/dsdt manually patching method and it works on tons of laptops: hp, asus, dell, acer, etc... I only need to repatch them after BIOS update.

 

Also, it's easy: use "iasl -da *.aml", then add _off to _ini.

Link to comment
Share on other sites

...

Also, it's easy: use "iasl -da *.aml", then add _off to _ini.

Yes, it is easy in concept. It is the details that trip people up.

 

Details:

- you must find the appropriate _INI method (the _INI on a device related to your discrete card... the one with _OFF)

- older machines do not have _OFF but contain similar methods... you have to search for them (use your brain)

- errors are reduced with 'iasl -da' but you may still have errors... fix them prior to applying patches

- even after your files are patched, errors corrected, if you open the patched/compiled .aml files, your errors may come back. The errors are not real, as they are created by the disassembly process. Always disassemble in a group with 'iasl -da'

- edit the resulting .dsl files, not .aml files when making changes

- save the resulting files as .aml files (format: ACPI Machine Language Binary). Not surprisingly, AppleACPIPlatform does not like loading text files into ACPI.

- if you rename devices in DSDT, you must do the same rename in all SSDTs you plan on loading (eg. GFX0->IGPU, B0D3->HDAU must be done universally)

- SSDTs that contain duplicate method (any duplicate object, actually) definitions will be thrown away (eg. DTGP can be defined only in one place; best not to use DTGP)

- SSDTs must be placed where the bootloader will load them. Chameleon, in Extra: SSDT.aml, SSDT-1.aml, SSDT-2.aml, no gaps in the numbers (Chameleon stops at first file not found... at first gap). Clover, in EFI/CLOVER/ACPI/patched, SSDT.aml, SSDT-? (where ? is a digit), gaps in the numbers allowed.

- you must drop each OEM SSDT you are patching. Best strategy: drop them all, add the ones you need (patched or not patched)

- some people experience problems with sleep/restart/shutdown when the discrete card is left in the off state... call _ON from DSDT _PTS and _OFF from DSDT _WAK. Use External to access the methods from DSDT. You must refer to the actual path (eg. _SB.PCI0.PEGP.PEG0._OFF)

- if the device with _INI in it (eg. PEG0.PEGP) is not active, OS X will not call _INI. An inactive device is one that returns Zero from _STA. Usually points to other issues with DSDT...

- if you upgrade hardware or BIOS, you must repeat the process...

 

 

Having a basic understanding of ACPI, ACPI namespace, how SSDTs are loaded, goes a long way.

 

One way to troubleshoot an issue is to extract all *patched* DSDT/SSDTs *binaries* from your running system (from ioreg). Then disassemble them with 'iasl -da'. If iasl finds errors in loading all your DSDT/SSDTs into a namespace, so will OS X have the same problems.

  • Like 2
Link to comment
Share on other sites

Just out of interest, and I apologise for off topic, but, does the _ON/_OFF method work for iGPU as well.

I'm pretty sure it is not there at all... Optimus and other dual graphics technologies on PCs (aka. "switching") work by having the discrete card "go through" the integrated chip's framebuffer/hardware. So the IGPU is the conduit for everything going to the display. Turning it off doesn't make any sense because then neither would work.

 

At least that is my basic understanding. I'm a software guy not a hardware guy, so I'm probably leaving out some valuable information or am off on the technical details.

Link to comment
Share on other sites

Thanks for info, still off topic,

I have my MB via VGA with iGPU (G1610) and HD7750 via DVI to ONE monitor, just trying to figure out how to switch from VGA to DVI without the manual switch on monitor.

As per my post      VGA and DVI using single monitor    

Just want to know if this is possible with DSDT edit. Any info appreciated.

I don't think you're going to solve that with ACPI. Celeron integrated graphics aren't even supported by OS X. Is there a driver loading for it?

Link to comment
Share on other sites

Could you please look at my DSDT and tell me what is wrong?.  First I tried you M_OFF and M_ON method.  Did not work and I looked at your own dsdt with Otimus disabled.  Noticed you are using another technique PINI, I tried that one two with no success.  In the enclosed zip you will find my dsdt; ssdt and ioreg dump.  Do apprecite your help

Thanks

Artimess

OptimusDisable.zip

Link to comment
Share on other sites

Could you please look at my DSDT and tell me what is wrong?.  First I tried you M_OFF and M_ON method.  Did not work and I looked at your own dsdt with Otimus disabled.  Noticed you are using another technique PINI, I tried that one two with no success.  In the enclosed zip you will find my dsdt; ssdt and ioreg dump.  Do apprecite your help

Thanks

Artimess

In DSDT, _SB.PCI0.GFX0 is renamed to _SB.PCI0.IGPU, but not in SSDT2.

Link to comment
Share on other sites

In DSDT, _SB.PCI0.GFX0 is renamed to _SB.PCI0.IGPU, but not in SSDT2.

I see, but the problem is SSDT2 gives lots of compile error!  Is this normal?  Could I please ask you give me some hint, I do not know even where to start.  I wanted to copy paste the errors here are some of the errors!  What i did was use Macaisl to generate the ssdt and compile it and here is the result!

Thanks for your help.

Artimess

 

5/19/14, 9:13:50 PM, Pass 2 parse of [sSDT]

5/19/14, 9:13:50 PM, Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

5/19/14, 9:13:50 PM, ........................

5/19/14, 9:13:50 PM, Parsing completed

5/19/14, 9:13:50 PM, Disassembly completed, written to "iASLVPpaKa.dsl"

5/19/14, 9:15:47 PM, iASLCRH0XG.dsl(30) : Error    4065 - Object not found or not accessible from scope (DGEN)

5/19/14, 9:15:47 PM, iASLCRH0XG.dsl(128) : Error    4096 - syntax error, unexpected PARSEOP_FIELD

5/19/14, 9:15:47 PM, iASLCRH0XG.dsl(132) : Error    4064 - Object does not exist (BPCI)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(194) : Error    4064 - Object does not exist (_PSC)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(197) : Error    4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP._ON)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(204) : Error    4064 - Object does not exist (_PSC)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(209) : Error    4064 - Object does not exist (OPCE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(213) : Error    4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP._OFF)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(217) : Error    4064 - Object does not exist (OPCE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(220) : Error    4064 - Object does not exist (_PSC)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(371) : Remark   5111 - Use of compiler reserved name (_T_0)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(384) : Error    4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP.GOBT)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(403) : Error    4064 - Object does not exist (OPCE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(414) : Error    4064 - Object does not exist (OPCM)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(449) : Error    4068 - Object is not accessible from this scope (LLGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(450) : Error    4068 - Object is not accessible from this scope (LGGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(451) : Error    4068 - Object is not accessible from this scope (PEPO)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(452) : Error    4068 - Object is not accessible from this scope (ROE0)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(453) : Error    4068 - Object is not accessible from this scope (ROE1)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(454) : Error    4068 - Object is not accessible from this scope (ROE2)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(455) : Error    4068 - Object is not accessible from this scope (ROE3)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(456) : Error    4068 - Object is not accessible from this scope (ROE4)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(457) : Error    4068 - Object is not accessible from this scope (ROE5)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(458) : Error    4068 - Object is not accessible from this scope (ROE6)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(459) : Error    4068 - Object is not accessible from this scope (ROE7)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(460) : Error    4068 - Object is not accessible from this scope (ROE8)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(461) : Error    4068 - Object is not accessible from this scope (ROE9)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(462) : Error    4068 - Object is not accessible from this scope (ROEA)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(463) : Error    4068 - Object is not accessible from this scope (ROEB)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(464) : Error    4068 - Object is not accessible from this scope (ROEC)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(465) : Error    4068 - Object is not accessible from this scope (ROED)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(466) : Error    4068 - Object is not accessible from this scope (ROEE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(467) : Error    4068 - Object is not accessible from this scope (ROEF)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(468) : Error    4068 - Object is not accessible from this scope (PCGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(469) : Error    4068 - Object is not accessible from this scope (HCLQ)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(470) : Error    4068 - Object is not accessible from this scope (PEDQ)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(471) : Error    4068 - Object is not accessible from this scope (LNKD)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(472) : Error    4068 - Object is not accessible from this scope (LLGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(473) : Error    4068 - Object is not accessible from this scope (LGGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(479) : Error    4068 - Object is not accessible from this scope (LNKS)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(487) : Error    4064 - Object does not exist (VGAR)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(494) : Error    4064 - Object does not exist (VGAR)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(496) : Error    4068 - Object is not accessible from this scope (LLGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(497) : Error    4068 - Object is not accessible from this scope (LGGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(498) : Error    4068 - Object is not accessible from this scope (LNKD)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(499) : Error    4068 - Object is not accessible from this scope (LNKS)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(504) : Error    4068 - Object is not accessible from this scope (PEDQ)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(505) : Error    4068 - Object is not accessible from this scope (LNKD)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(506) : Error    4068 - Object is not accessible from this scope (PIDQ)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(511) : Error    4068 - Object is not accessible from this scope (PCGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(512) : Error    4068 - Object is not accessible from this scope (HCLQ)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(513) : Error    4068 - Object is not accessible from this scope (PEPO)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(514) : Error    4068 - Object is not accessible from this scope (ROE0)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(515) : Error    4068 - Object is not accessible from this scope (ROE1)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(516) : Error    4068 - Object is not accessible from this scope (ROE2)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(517) : Error    4068 - Object is not accessible from this scope (ROE3)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(518) : Error    4068 - Object is not accessible from this scope (ROE4)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(519) : Error    4068 - Object is not accessible from this scope (ROE5)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(520) : Error    4068 - Object is not accessible from this scope (ROE6)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(521) : Error    4068 - Object is not accessible from this scope (ROE7)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(522) : Error    4068 - Object is not accessible from this scope (ROE8)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(523) : Error    4068 - Object is not accessible from this scope (ROE9)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(524) : Error    4068 - Object is not accessible from this scope (ROEA)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(525) : Error    4068 - Object is not accessible from this scope (ROEB)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(526) : Error    4068 - Object is not accessible from this scope (ROEC)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(527) : Error    4068 - Object is not accessible from this scope (ROED)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(528) : Error    4068 - Object is not accessible from this scope (ROEE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(529) : Error    4068 - Object is not accessible from this scope (ROEF)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(530) : Error    4068 - Object is not accessible from this scope (LLGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(531) : Error    4068 - Object is not accessible from this scope (LGGE)

5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(538) : Error    4096 - syntax error, unexpected PARSEOP_SCOPE, expecting $end

5/19/14, 9:15:48 PM, ASL Input:  iASLCRH0XG.dsl - 539 lines, 19234 bytes, 214 keywords

5/19/14, 9:15:48 PM, Compilation complete. 70 Errors, 0 Warnings, 1 Remarks, 0 Optimizations

5/19/14, 9:16:47 PM, Loading Acpi table from file iASLEpFLS0.aml

5/19/14, 9:16:47 PM, Acpi table [sSDT] successfully installed and loaded

5/19/14, 9:16:47 PM, Pass 1 parse of [sSDT]

5/19/14, 9:16:47 PM, Pass 2 parse of [sSDT]

5/19/14, 9:16:47 PM, Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

5/19/14, 9:16:47 PM, ........................

5/19/14, 9:16:47 PM, Parsing completed

5/19/14, 9:16:47 PM, Found 2 external control methods, reparsing with new information

5/19/14, 9:16:47 PM, Pass 1 parse of [sSDT]

5/19/14, 9:16:47 PM, Pass 2 parse of [sSDT]

5/19/14, 9:16:47 PM, Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

5/19/14, 9:16:47 PM, ........................

5/19/14, 9:16:47 PM, Parsing completed

5/19/14, 9:16:47 PM, Disassembly completed, written to "iASLEpFLS0.dsl"

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(30) : Error    4065 - Object not found or not accessible from scope (DGEN)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(128) : Error    4096 - syntax error, unexpected PARSEOP_FIELD

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(132) : Error    4064 - Object does not exist (BPCI)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(194) : Error    4064 - Object does not exist (_PSC)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(197) : Error    4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP._ON)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(204) : Error    4064 - Object does not exist (_PSC)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(209) : Error    4064 - Object does not exist (OPCE)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(213) : Error    4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP._OFF)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(217) : Error    4064 - Object does not exist (OPCE)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(220) : Error    4064 - Object does not exist (_PSC)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(371) : Remark   5111 - Use of compiler reserved name (_T_0)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(384) : Error    4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP.GOBT)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(403) : Error    4064 - Object does not exist (OPCE)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(414) : Error    4064 - Object does not exist (OPCM)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(449) : Error    4068 - Object is not accessible from this scope (LLGE)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(450) : Error    4068 - Object is not accessible from this scope (LGGE)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(451) : Error    4068 - Object is not accessible from this scope (PEPO)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(452) : Error    4068 - Object is not accessible from this scope (ROE0)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(453) : Error    4068 - Object is not accessible from this scope (ROE1)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(454) : Error    4068 - Object is not accessible from this scope (ROE2)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(455) : Error    4068 - Object is not accessible from this scope (ROE3)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(456) : Error    4068 - Object is not accessible from this scope (ROE4)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(457) : Error    4068 - Object is not accessible from this scope (ROE5)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(458) : Error    4068 - Object is not accessible from this scope (ROE6)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(459) : Error    4068 - Object is not accessible from this scope (ROE7)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(460) : Error    4068 - Object is not accessible from this scope (ROE8)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(461) : Error    4068 - Object is not accessible from this scope (ROE9)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(462) : Error    4068 - Object is not accessible from this scope (ROEA)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(463) : Error    4068 - Object is not accessible from this scope (ROEB)

5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(464) : Error    4068 - Object is not accessible from this scope (ROEC)

Link to comment
Share on other sites

I see, but the problem is SSDT2 gives lots of compile error!  Is this normal?  Could I please ask you give me some hint, I do not know even where to start.  I wanted to copy paste the errors here are some of the errors!  What i did was use Macaisl to generate the ssdt and compile it and here is the result!

Thanks for your help.

Artimess

Disassemble your SSDT correctly and you likely will not have so many errors... Collect all native DSDT/SSDT, place in single directory, then use 'iasl -da *.aml' in Terminal to disassemble them as a group. Work with the resulting .dsl files.

 

This has been discussed in this thread quite a bit...

Link to comment
Share on other sites

Disassemble your SSDT correctly and you likely will not have so many errors... Collect all native DSDT/SSDT, place in single directory, then use 'iasl -da *.aml' in Terminal to disassemble them as a group. Work with the resulting .dsl files.

 

This has been discussed in this thread quite a bit...

Thanks I will do, which compiler you think I should use?  there so many floating around?  A url would be appreciated.

Artimess

Link to comment
Share on other sites

Verify that the code is being executed as you think it should. Use ACPIDebug: https://github.com/RehabMan/OS-X-ACPI-Debug

Hi RehabMan,

I used your ACPIDebug test and here is the result.  It seems it calls _OFF but it never gets back! 

May 20 21:55:13 localhost kernel[0]: ACPIDebug: Version 0.1.0 starting

May 20 21:55:13 localhost kernel[0]: ACPIDebug: "In _INI before call to PINI"

May 20 21:55:13 localhost kernel[0]: ACPIDebug: "Entering PINI"

May 20 21:55:13 localhost kernel[0]: ACPIDebug: "In PINI,  before call to _OFF"

And here is my PINI code:

    Method (PINI, 0, NotSerialized)

    {

        \RMDT.PUSH ("Entering PINI")

        If (CondRefOf (\_SB.PCI0.P0P2.PEGP._OFF))

        {

            \RMDT.PUSH ("In PINI,  before call to _OFF")

            \_SB.PCI0.P0P2.PEGP._OFF (\RMDT.PUSH ("In PINI,  after call to _OFF"))

        }

 

        If (CondRefOf (\_SB.PCI0.P0P2.PEGP._PS3))

        {

            \RMDT.PUSH ("In  PINI, _PS3")

            \_SB.PCI0.P0P2.PEGP._PS3 ()

        }

 

        \RMDT.PUSH ("Exiting PINI")

    }

 

Any thoughts?

 

Link to comment
Share on other sites

can someone help me to patch my DSDT? i use a intel hd 3000 and a nvidia gt610m!

 

when i patch the dsdt with chameleon i got these errors:

/Users/PC/cw_dsdt/dsdt.dsl   3782:             \_SB.PCI0.PEG0.PEGP._ON (\_SB.PCI0.PEG0.PEGP._PS0 ())
Error    4084 -                                       Object does not exist ^  (\_SB.PCI0.PEG0.PEGP._ON)

/Users/PC/cw_dsdt/dsdt.dsl   3782:             \_SB.PCI0.PEG0.PEGP._ON (\_SB.PCI0.PEG0.PEGP._PS0 ())
Error    4084 -                                                                 Object does not exist ^  (\_SB.PCI0.PEG0.PEGP._PS0)

/Users/PC/cw_dsdt/dsdt.dsl   3790:             \_SB.PCI0.PEG0.PEGP._OFF (\_SB.PCI0.PEG0.PEGP._PS3 ())
Error    4084 -                                        Object does not exist ^  (\_SB.PCI0.PEG0.PEGP._OFF)

/Users/PC/cw_dsdt/dsdt.dsl   3790:             \_SB.PCI0.PEG0.PEGP._OFF (\_SB.PCI0.PEG0.PEGP._PS3 ())
Error    4084 -                                                                  Object does not exist ^  (\_SB.PCI0.PEG0.PEGP._PS3)

attached is my DSDT! thank you :)

DSDT.aml.zip

Link to comment
Share on other sites

Hi RehabMan,

I used your ACPIDebug test and here is the result.  It seems it calls _OFF but it never gets back! 

May 20 21:55:13 localhost kernel[0]: ACPIDebug: Version 0.1.0 starting

May 20 21:55:13 localhost kernel[0]: ACPIDebug: "In _INI before call to PINI"

May 20 21:55:13 localhost kernel[0]: ACPIDebug: "Entering PINI"

May 20 21:55:13 localhost kernel[0]: ACPIDebug: "In PINI,  before call to _OFF"

And here is my PINI code:

    Method (PINI, 0, NotSerialized)

    {

        \RMDT.PUSH ("Entering PINI")

        If (CondRefOf (\_SB.PCI0.P0P2.PEGP._OFF))

        {

            \RMDT.PUSH ("In PINI,  before call to _OFF")

            \_SB.PCI0.P0P2.PEGP._OFF (\RMDT.PUSH ("In PINI,  after call to _OFF"))

        }

 

        If (CondRefOf (\_SB.PCI0.P0P2.PEGP._PS3))

        {

            \RMDT.PUSH ("In  PINI, _PS3")

            \_SB.PCI0.P0P2.PEGP._PS3 ()

        }

 

        \RMDT.PUSH ("Exiting PINI")

    }

 

Any thoughts?

This construct...

            \_SB.PCI0.P0P2.PEGP._OFF (\RMDT.PUSH ("In PINI,  after call to _OFF"))
... doesn't make any sense.

 

I'm assuming it is due to incorrect disassembly, not how you wrote it and that you actually wrote:

            \_SB.PCI0.P0P2.PEGP._OFF ()
            \RMDT.PUSH ("In PINI,  after call to _OFF")
In which case... it seems your \_SB.PCI0.POP2.PEGP._OFF is aborting (because we never see 'Exiting PINI'). Add additional traces there to see where/why...
Link to comment
Share on other sites

This construct...

            \_SB.PCI0.P0P2.PEGP._OFF (\RMDT.PUSH ("In PINI,  after call to _OFF"))
... doesn't make any sense.

 

I'm assuming it is due to incorrect disassembly, not how you wrote it and that you actually wrote:

            \_SB.PCI0.P0P2.PEGP._OFF ()
            \RMDT.PUSH ("In PINI,  after call to _OFF")
In which case... it seems your \_SB.PCI0.POP2.PEGP._OFF is aborting (because we never see 'Exiting PINI'). Add additional traces there to see where/why...

 

Yes it is the disassembling problem.  My challenge is to get SSDTs compiled...  Even disassembling with -da *.aml leaves errors...  I am working on it, let you know if I ever succeed.

Link to comment
Share on other sites

 Share

×
×
  • Create New...