Contribute
Register

[HELP] Disable HD 7650M in DSDT

Status
Not open for further replies.
Let me know because what I did is only slightly different from what nguyenmac did (I bothered to make patches; he has an extra call in IGPU._INI; he also has some hand edits done to the _OFF function and merged it into DSDT instead of just leaving it in SSDT). If that is necessary (I think probably not), then I could add that to the patches as well.

It would not be difficult to make this into an option inside the ProBook Installer.

REPORT: It didn't work! and I know why: no method _OFF inserted in PEGP device
I use Clover, not Chameleon, so I don't include SSDT in acpi patched folder, if some day I reinstall with chameleon, I will try it again!

P/S: can you patch amd-ssdt for me! I try to patch it many time but still cannot remove all errors
 
REPORT: It didn't work! and I know why: no method _OFF inserted in PEGP device
I use Clover, not Chameleon, so I don't include SSDT in acpi patched folder, if some day I reinstall with chameleon, I will try it again!

You can include acpi_ssdt.aml as is in CLOVER/ACPI/patched/ssdt.aml.
(because you're using Clover's Generate p/c states, you have no generated SSDT.AML, so this one goes as SSDT.AML)

P/S: can you patch amd-ssdt for me! I try to patch it many time but still cannot remove all errors

Yes. Here is the required patches for acpi_ssdt.aml:
(they could probably be written better, but quick and dirty they are...)
Code:
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;
 
I found some problems: my laptop can't sleep!
actually, it sleep successfully but auto wake up after 2s, and it wake up failed, fan running, led lighting, but screen is black

Does it happen with my patched dsdt, or yours too
 
You can include acpi_ssdt.aml as is in CLOVER/ACPI/patched/ssdt.aml.
(because you're using Clover's Generate p/c states, you have no generated SSDT.AML, so this one goes as SSDT.AML)



Yes. Here is the required patches for acpi_ssdt.aml:
(they could probably be written better, but quick and dirty they are...)
Code:
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;

still have an error, but not important because we just need method _OFF
 
still have an error, but not important because we just need method _OFF

Probably because you have MaciASL set for ACPI 5.0 instead of 4.0. I use ACPI v4 unless I need to use v5.
 
REPORT to both of you:
Code:
 While (LNotEqual (LNKS, 0x00))
            {
                Sleep (0x01)
            }
this code will prevent AMD GPU from turning off (I insert it into nguyenmac's DSDT, and this dsdt didn't work anymore :D)

AND I removed _OFF fucntion from IGPU._INI, nothing change!
 
REPORT to both of you:
Code:
 While (LNotEqual (LNKS, 0x00))
            {
                Sleep (0x01)
            }
this code will prevent AMD GPU from turning off (I insert it into nguyenmac's DSDT, and this dsdt didn't work anymore :D)

AND I removed _OFF fucntion from IGPU._INI, nothing change!

Remove _OFF from _WAK too.
 
Status
Not open for further replies.
Back
Top