Contribute
Register

[HELP] Disable HD 7650M in DSDT

Status
Not open for further replies.
Joined
Aug 15, 2011
Messages
25
Motherboard
MSI B75MA-P45
CPU
Intel® Core™ i3-3220
Graphics
nVIDIA GTX 650
Mac
Classic Mac
Mobile Phone
  1. Android
Delete 2 Drop table entries in config.plist and check "Drop OEM" in SSDT, then it will be like "DropSSDT" in Chameleon. Did try try removing _OFF in _WAK?

Just done that!
finally, I have what I want: sleep probably and disable AMD Graphic. Thank you so much!

Can you teach me how to do that? so I can make a patch file to patch myself next time I update BIOS :D

P/S: I trying RehabMan's method too, it seem to be easier!
 
Joined
Oct 22, 2012
Messages
3,464
Motherboard
HP Elitebook 8470p
CPU
i5 3320M
Graphics
HD 4000, 1600x900
Mobile Phone
  1. iOS
So remove _OFF in _WAK works?

I copied the _OFF Method from your SSDT to your DSDT, then resolve errors, then I call the _OFF function in _SB._INI, IGPU._INI, _WAK methods, but it seem like only _SB._INI is enough.
 
Joined
Aug 15, 2011
Messages
25
Motherboard
MSI B75MA-P45
CPU
Intel® Core™ i3-3220
Graphics
nVIDIA GTX 650
Mac
Classic Mac
Mobile Phone
  1. Android
So remove _OFF in _WAK works?

I copied the _OFF Method from your SSDT to your DSDT, then resolve errors, then I call the _OFF function in _SB._INI, IGPU._INI, _WAK methods, but it seem like only _SB._INI is enough.

Yes, just need _OFF method in _SB._INI

I have new problem now: I apply patches of RehabMan to SSDT.aml file, and MaciASL report no error (some warnings). But after saved, close MaciASL and open this file again, it report 7 error, what happen when I saved this file?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
184,621
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Yes, just need _OFF method in _SB._INI

I have new problem now: I apply patches of RehabMan to SSDT.aml file, and MaciASL report no error (some warnings). But after saved, close MaciASL and open again, it report 7 error, what happen when I saved this file?

That is normal. The errors are caused by bugs in Intel's iasl disassembler. The resulting file is valid though.

Note: Unless there is a problem with the LNKS loop, there is *no need* to recompile the acpi_ssdt.aml file. You can simply use it as-is from Linux extract.
 
Joined
Apr 12, 2011
Messages
258
Motherboard
Probook 4540s
CPU
Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz, 2201 Mhz
Graphics
AMD Raden HD 7650m
Mobile Phone
  1. iOS
The patch is not related to Chameleon or Clover, it's in your DSDT and SSDT tables.

Thanks man, waiting for all the experiments and its after affects are over.. :)
 
Joined
Apr 12, 2011
Messages
258
Motherboard
Probook 4540s
CPU
Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz, 2201 Mhz
Graphics
AMD Raden HD 7650m
Mobile Phone
  1. iOS
So anyone can paste a final working DSDT patch for switching off GPU? Of course without the problem of sleep.
 
Joined
Oct 22, 2012
Messages
3,464
Motherboard
HP Elitebook 8470p
CPU
i5 3320M
Graphics
HD 4000, 1600x900
Mobile Phone
  1. iOS
You could test it instead. If you use Clover with config.plist DropOEM=false + 2 drop tables, just patch your dsdt (back up first). If you use Chameleon with DropSSDT=true or Clover with DropOEM=true + 0 drop tables, extract apci_ssdt.aml containing "SgTabl" table, rename to SSDT-1.aml and put it in /Extra or /EFI/Clover/ACPi/patched/ and patch DSDT.
Code:
into definitionblock code_regex . insert
begin
External (\_SB_.PCI0.PEGP.DGFX._OFF, MethodObj)\n
end;

into method label _INI parent_label _SB code_regex . insert
begin
\_SB_.PCI0.PEGP.DGFX._OFF()\n
end;
 
Joined
Apr 12, 2011
Messages
258
Motherboard
Probook 4540s
CPU
Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz, 2201 Mhz
Graphics
AMD Raden HD 7650m
Mobile Phone
  1. iOS
You could test it instead. If you use Clover with config.plist DropOEM=false + 2 drop tables, just patch your dsdt (back up first). If you use Chameleon with DropSSDT=true or Clover with DropOEM=true + 0 drop tables, extract apci_ssdt.aml containing "SgTabl" table, rename to SSDT-1.aml and put it in /Extra or /EFI/Clover/ACPi/patched/ and patch DSDT.
Code:
into definitionblock code_regex . insert
begin
External (\_SB_.PCI0.PEGP.DGFX._OFF, MethodObj)\n
end;

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

Thanks nguyenmac :) I'll post the update after work.
 
Joined
Oct 22, 2012
Messages
3,464
Motherboard
HP Elitebook 8470p
CPU
i5 3320M
Graphics
HD 4000, 1600x900
Mobile Phone
  1. iOS
I forgot that we also need to remove While loop in ssdt. So you should do following:

- Extract acpi_ssdt.aml with table name "SgTabl", apply the patch and rename it to SSDT-1.aml, put it to Clover/ACPI/Patched or /Extra folder:
Code:
// Rehabman fixes
into scope label \_SB.PCI0.GFX0 code_regex (OperationRegion.*)VRMB\s+\(VRMS\s+\(\)\), replace_matched begin %1VRMB(),VRMS())\n end;
into scope label \_SB.PCI0.GFX0 code_regex (Field\s+\(REVD,.*\n.*\n.*\n.*\n.*\})\) replace_matched begin %1 end;

into scope label \_SB.PCI0.PEGP code_regex (OperationRegion.*)\\XBAS\s+\(0x9000\), replace_matched begin %1\\XBAS,0x9000)\n end;
into scope label \_SB.PCI0.PEGP code_regex (Field\s+\(RPCX,.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*\})\) replace_matched begin %1 end;

into scope label \_SB.PCI0.PEGP.DGFX code_regex (OperationRegion.*)\\GBAS\s+\(0x60\), replace_matched begin %1\\GBAS,0x60)\n end;
into scope label \_SB.PCI0.PEGP.DGFX code_regex (Field\s+\(GPIO,.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*\})\) replace_matched begin %1 end;

into scope label \_SB.PCI0.PEGP.DGFX code_regex (OperationRegion.*)\\EECP\s+\(0x14\), replace_matched begin %1\\EECP,0x14)\n end;
into scope label \_SB.PCI0.PEGP.DGFX code_regex (Field\s+\(PCAP.*\n.*\n.*\n.*\n.*\})\) replace_matched begin %1 end;

into definitionblock code_regex External\s+\(\\_SB_\.PCI0\.GFX0\.DD02\._BCM,\s+IntObj\) replace_matched begin External(\\_SB_.PCI0.GFX0.DD02._BCM, MethodObj)
end;
into method label _BCM parent_label DD02 code_regex Return\s+\(([^\)]*)\)\n.*Arg0 replace_matched begin Return(%1(Arg0)) end;

// Remove While loop
into method label _OFF parent_label \_SB.PCI0.PEGP.DGFX code_regex While\s+\(([^\}]*)\} remove_matched;

- For Clover, use DropOEM=true and remove Droptables entries, or use DropOEM=false and add this to existing 2 drop tables:
Code:
	<key>DropTables</key>
		<array>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>SgTabl</string>
			</dict>
		</array>

- Apply the patch to DSDT:
Code:
into definitionblock code_regex . insert
begin
External (\_SB_.PCI0.PEGP.DGFX._OFF, MethodObj)\n
end;

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

RehabMan

Moderator
Joined
May 3, 2012
Messages
184,621
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
FYI: I've captured these work-in-progress patches in the Probook patches repo. You can use MaciASL to apply them directly from the repo.

It will be interesting to find out if the "loop deletion" is for sure necessary and whether the whole thing works or not...
 
Status
Not open for further replies.
Top