I've prepared a patch based on my findings for the bbswitch module
(
https://github.com/Lekensteyn/acpi-stuff/tree/master/bbswitch). This adds a proper
check whether a _DSM function is supported or not and make OFF / ON for
vga_switcheroo work for nVidia Optimus models. The patch is based against the
mainline kernel.
It has been tested on my Clevo B7130 laptop running kernel 3.2 which has a GT425M
dGPU:
# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0
# tee /sys/kernel/debug/vgaswitcheroo/switch <<<OFF
OFF
# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0
# tee /sys/kernel/debug/vgaswitcheroo/switch <<<ON
ON
# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0
The iGPU/dGPU LEDS on the keyboard also change as a result.
A second patch to make the device stay off after suspend is in progress.
Regards,
Peter