RehabMan
Moderator
- Joined
- May 2, 2012
- Messages
- 183,805
- Motherboard
- Intel DH67BL
- CPU
- i7-2600K
- Graphics
- HD 3000
- Mac
-
- Mobile Phone
-
wow,I work it out.thanks your leading.
Edit:
I'm going patch for discrete graphics, here's something confuse and need your help。
follow "
[Guide] Disabling discrete graphics in dual-GPU laptops
"find out files may contain the relate code to control graphic.
then search 'Method (_IN' in all of them,all like this:Code:cuiwenzhis-MBP:disassembly wenzhi$ grep -l Method.*_INI *.dsl DSDT.dsl SSDT-15.dsl SSDT-5.dsl cuiwenzhis-MBP:disassembly wenzhi$ grep -l Method.*_OFF *.dsl SSDT-15.dsl SSDT-3.dsl SSDT-5.dsl
only this look like about some device, but seems not a graphics? thank again.Code:All Method (_INI: in DSDT Method (_INI, 0, NotSerialized) // _INI: Initialize { If (CondRefOf (\_SB.PCI0.XHC.RHUB.INIR)) { ^RHUB.INIR () } } Method (_INI, 0, NotSerialized) // _INI: Initialize { If (LLess (OSYS, 0x07DC)) { SRXO (GPDI, One) } Store (GNUM (GPDI), INT1) Store (INUM (GPDI), INT2) If (LEqual (SDM0, Zero)) { SHPO (GPDI, One) } If (LEqual (SDS0, One)) { Store ("SYNA2393", _HID) Store (0x20, HID2) Return (Zero) } } Method (_INI, 0, Serialized) // _INI: Initialize { Store (0x07D9, OSYS) If (CondRefOf (\_OSI, Local0)) { If (_OSI ("Linux")) { Store (0x03E8, OSYS) } If (_OSI ("Windows 2001")) { Store (0x07D1, OSYS) } If (_OSI ("Windows 2001 SP1")) { Store (0x07D1, OSYS) } If (_OSI ("Windows 2001 SP2")) { Store (0x07D2, OSYS) } If (_OSI ("Windows 2001.1")) { Store (0x07D3, OSYS) } If (_OSI ("Windows 2006")) { Store (0x07D6, OSYS) } If (_OSI ("Windows 2009")) { Store (0x07D9, OSYS) } If (_OSI ("Windows 2012")) { Store (0x07DC, OSYS) } If (_OSI ("Windows 2013")) { Store (0x07DD, OSYS) } If (_OSI ("Windows 2015")) { Store (0x07DF, OSYS) } } If (CondRefOf (\_PR.DTSE)) { If (LGreaterEqual (\_PR.DTSE, One)) { Store (One, \_PR.DSAE) } } } Method (_INI, 0, NotSerialized) // _INI: Initialize { Store (LTR1, LTRE) Store (PML1, LMSL) Store (PNL1, LNSL) Store (OBF1, OBFF) } Method (_INI, 0, NotSerialized) // _INI: Initialize { Store (NIT1, NITV) Store (NPM1, NPMV) Store (NPC1, NPCV) Store (NL11, NL1V) Store (ND21, ND2V) Store (ND11, ND1V) Store (NLR1, NLRV) Store (NLD1, NLDV) Store (NEA1, NEAV) Store (NEB1, NEBV) Store (NEC1, NECV) Store (NRA1, NRAV) Store (NMB1, NMBV) Store (NMV1, NMVV) Store (NPB1, NPBV) Store (NPV1, NPVV) Store (Zero, NCRN) } } in SSDT-5 Method (_INI, 0, NotSerialized) // _INI: Initialize { Store (LTRX, LTRS) Store (OBFX, OBFS) } Method (_INI, 0, NotSerialized) // _INI: Initialize { Store (LTRY, LTRS) Store (OBFY, OBFS) } Method (_INI, 0, NotSerialized) // _INI: Initialize { Store (LTRZ, LTRS) Store (OBFZ, OBFS) } in SSDT-15 Scope (\_SB.PCI0.GFX0) { Method (_INI, 0, NotSerialized) // _INI: Initialize { Store (DID1, Index (TLPK, Zero)) Store (DID2, Index (TLPK, 0x02)) Store (DID3, Index (TLPK, 0x04)) Store (DID4, Index (TLPK, 0x06)) Store (DID5, Index (TLPK, 0x08)) Store (DID6, Index (TLPK, 0x0A)) Store (DID7, Index (TLPK, 0x0C)) Store (DID2, Index (TLPK, 0x0E)) Store (DID1, Index (TLPK, 0x0F)) Store (DID2, Index (TLPK, 0x11)) Store (DID3, Index (TLPK, 0x12)) Store (DID2, Index (TLPK, 0x14)) Store (DID4, Index (TLPK, 0x15)) Store (DID2, Index (TLPK, 0x17)) Store (DID5, Index (TLPK, 0x18)) Store (DID2, Index (TLPK, 0x1A)) Store (DID6, Index (TLPK, 0x1B)) Store (DID2, Index (TLPK, 0x1D)) Store (DID7, Index (TLPK, 0x1E)) } …. }
Code:Method (_INI, 0, NotSerialized) // _INI: Initialize { If (CondRefOf (\_SB.PCI0.XHC.RHUB.INIR)) { ^RHUB.INIR () } }
_OFF is in SSDT-15. It calls PGOF in SSDT-5. No EC references in either.
ACPI path is _SB.PCI0.PEG0.PEGP.
There is no _INI at that path, so you simply add one in SSDT-15 (just add _INI method that calls _OFF before _OFF).