- Joined
- Jun 25, 2011
- Messages
- 22
- Motherboard
- Dell XPS 15 9550 (Clover)
- CPU
- i7 6700hq
- Graphics
- hd530, 1920x1080
Yesterday I told myself as a n53sv owner that if there were not any way to use the DGPU (nvidia 540m in my case) there must be at least a way to disable it to save battery power.
I never used anything programming-on-osx-related but I got Xcode and started playing with it.
I must say that it was really easy.
This is the result:
The code gets the ACPI device from the PCI device and calls the DOFF method. If your DGPU device (GFX0 in my case) has a DOFF method, you do not have to modify anything (if you don't care about the GFX led remaining white), since the ACPI device is got from the device id (0x0df410de in my case) set in the Info.plist
If your device has not a DOFF method or you want the led to turn blue, you have to do a little mod to your dsdt.
If your disabling function is not DOFF but i.e. GPUOFF is enough to replace any occurrence of GPUOFF with DOFF. (it's not the asus n53sv case)
If you want a complete disable, including the blue led (asus n53sv case) find where the DOFF function is called, in my case the _PS3 method inside the LCDD device:
and move everything under the DOFF() call at the end of the DOFF method, so you will have:
Congratulations, you got a better battery life, a cooler laptop, and the blue led back.
Result:
http://imageshack.us/photo/my-images/809/img20111030144315.jpg/
Please report success or problems.
Enjoy
I never used anything programming-on-osx-related but I got Xcode and started playing with it.
I must say that it was really easy.
This is the result:
Code:
NoNvidia: NoNvidia by michyprima, init
NoNvidia: got the ACPI device
NoNvidia: disabling nvidia card
NoNvidia: nvidia card successfully disabled
If your device has not a DOFF method or you want the led to turn blue, you have to do a little mod to your dsdt.
If your disabling function is not DOFF but i.e. GPUOFF is enough to replace any occurrence of GPUOFF with DOFF. (it's not the asus n53sv case)
If you want a complete disable, including the blue led (asus n53sv case) find where the DOFF function is called, in my case the _PS3 method inside the LCDD device:
Code:
Method (_PS3, 0, NotSerialized)
{
If (LEqual (^^^GFX0.P3MO, 0x03))
{
DOFF ()
SGPL (0x23, One, Zero)
Store (0x03, ^^^GFX0._PSC)
Store (One, ^^^GFX0.DGPS)
Store (0x02, ^^^GFX0.P3MO)
}
}
Code:
Method (_PS3, 0, NotSerialized)
{
If (LEqual (^^^GFX0.P3MO, 0x03))
{
DOFF ()
}
}
[…]
Method (DOFF, 0, NotSerialized)
{
If (LNotEqual (MFTM, One))
{
_OFF ()
If (LEqual (CTBO, One))
{
OBCP (Zero)
}
}
SGPL (0x23, One, Zero)
Store (0x03, ^^^GFX0._PSC)
Store (One, ^^^GFX0.DGPS)
Store (0x02, ^^^GFX0.P3MO)
}
Result:
http://imageshack.us/photo/my-images/809/img20111030144315.jpg/
Please report success or problems.
Enjoy