After resuming from suspend, discrete GPU is powered on and can't be turned off
Submitted by Domenico Iezzi
Assigned to Nouveau Project
Link to original bug (#108058)
Description
Created attachment 141734
kernel log
Overall, nouveau works without problem in managing discrete GPU PM, and if I check power consumption using powertop on a fresh boot it reports an average battery discharge rate of ~7W like always.
After I resume the laptop from suspend, /sys/kernel/debug/vgaswitcheroo/switch reports that the device is
dynamically turned off:
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:01:00.0
But if I check with powertop, I get a battery discharge rate of ~11W. To better identify the problem, I tried using bumbleebee+bbswitch+nvidia-driver and see what bbswitch module reports. On a fresh boot, it works
ok as the nouveau driver, but after resuming from suspend
/proc/acpi/bbswitch reports that the card is turned ON, and there is no way to power it off:
[root@example user]# cat /proc/acpi/bbswitch
0000:04:00.0 ON
[root@example user]# tee /proc/acpi/bbswitch <<<OFF
OFF
[root@example user]# cat /proc/acpi/bbswitch
0000:04:00.0 ON
I attached the kernel log using following parameters when using only nouveau driver (no bumblebee/bbswitch/nvidia): log_buf_len=1M nouveau.debug=debug.
System specs:
Asus Vivobook S551LN
Intel i7 4500U
NVIDIA 840M
Archlinux 4.18.9-arch1-1-ARCH (but affecting older versions, since early 4.x version when i started using linux)
Attachment 141734, "kernel log":
kernel-suspend.log