From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ@public.gmane.org
Subject: [Bug 91408] New: Lenovo T440s alternate way to turn off
discrete GPU
Date: Mon, 20 Jul 2015 20:52:40 +0000
Message-ID:
Bug ID
91408
Summary
Lenovo T440s alternate way to turn off discrete GPU
Product
xorg
Version
unspecified
Hardware
Other
OS
All
Status
NEW
Severity
normal
Priority
medium
Component
Driver/nouveau
Assignee
nouveau@lists.freedesktop.org
Reporter
tnt@246tnt.com
QA Contact
xorg-team@lists.x.org
The lenovo T440s BIOS handles the discret NVIDIA card power managemement
differently when the kernel advertise "Windows 2013" (since 3.15) or "Windows
2015" (since 4.2) OSI strings.
Calling the HSM then setting the device to D3 doesn't cause any errors and it
_does_ lower the power usage, but not as much as it should. (about 1W vs 2.5W
before 3.15). This means user might not notice the issue ...
Using acpi_osi="!Windows 2013" acpi_osi="!Windows 2015" in the kernel command
line does allow the old method to work, however the user needs to manually do
this and also new OSI strings keep being added in the kernel and so this might
silently re-break in the future.
The dump of the DSDT tables in the latest (as of today) BIOS of the T440s is
available there : http://pastebin.com/raw.php?i=C6Q3A8aa
The important changes to note when "Windows 2013" is in the osi string:
- OSYS is set to 0x07DD.
- This in turn cause VMSH to be set to 1.
- This in turn causes _SB_.PCI0.PEG_.VID_.PS3 to _NOT call GPOF when the
device is set to D3.
- and so the card is never really turned off completely
Now if you look at how GPOF can be called, you can see it will be called as
part of NVP3 power resource which is PR3 ... but on the node _SB.PCI0.PEG_ and
not _SB_.PCI0.PEG_.VID_ !
So this means that the parent PCIe root port the card is connected to needs to
be put in D3.
I did a quick hack using bumblebee (easier to try stuff out) to test and this
indeed seems to work. I was able to observe the 2.5W power drop as expected and
freely able to turn the card on & off.