I came to the conclusion my laptop (Sony Vaio VPCSB36FG/B) suffers from one particular issue:
After a suspend/resume cycle, the discrete card in the laptop (Radeon HD6470M) is powered on again, although /sys/kernel/debug/vgaswitcheroo/switch still reports the contrary.
This explains why the laptop is using ~5W more after a suspend/resume cycle. I can blacklist the radeon module on boot, but then the discrete card is powered on when the laptop is started. And since the module is blacklisted, there is no way to disable the card using vgaswitcheroo.
Unfortunately, blacklisting the module (on boot) and manually loading the module after boot, then switching the card off (using vgaswitcheroo) and removing the module results in either a display driver crash or the message: "radeon module is in use".
For the record, I'm using the open source driver for both cards (i915 & radeon).
My guess is, the only way to prevent the card from being powered on after a suspend/resume cycle is to make sure the radeon module is not enabled at all before suspending the laptop, but I'm wondering how to achieve this.
Any suggestions please?
Last edited by LordChaos73 (2013-01-16 20:48:21)
Okay, this workaround seems to work, at least manually:
1. Before suspending, the discrete card should be powered on (suspending seems to be a little slower now):
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
2. After resume, one is able to turn off the discrete again:
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
Now I just need to figure out how to automate this in a nicely fashion.
Last edited by LordChaos73 (2013-01-16 20:49:06)
This seems to work nicely:
#!/bin/bash case $1/$2 in pre/*) echo ON > /sys/kernel/debug/vgaswitcheroo/switch ;; post/*) echo OFF > /sys/kernel/debug/vgaswitcheroo/switch ;; esac
Marking this topic as solved.
Last edited by LordChaos73 (2013-01-16 20:46:03)