Patrick Rudolph has uploaded a new patch set (#13) to the change originally created by Evgeny Zinoviev. ( https://review.coreboot.org/c/coreboot/+/28380 )
Change subject: [WIP] Nvidia Optimus support for ThinkPads ......................................................................
[WIP] Nvidia Optimus support for ThinkPads
Based on siro's work #23041.
Adds ACPI code for dGPU power management using the dGPU kernel module. With Nvidia Optimus active the idle power consumption drops from 22,8W to 13,8W with maximum screen brightness.
Depends on: https://review.coreboot.org/#/c/coreboot/+/28392 https://review.coreboot.org/#/c/coreboot/+/28393
What works (tested on 4.16.13-gentoo kernel): - power management via _PS0 and _DSM + _PS3 ACPI calls - nouveau driver - bumblebee (from the "develop" branch) - bbswitch
lspci turns on the dGPU, but that is expected, as otherwise it can't access the device's address space.
The Nvidia Optimus driver needs to be enabled by setting CONFIG_NVIDIA_OPTIMUS=y
Tested on ThinkPad W530 and Thinkpad T520.
Known problems: - nvidia driver doens't work: [ 275.244113] NVRM: failed to copy vbios to system memory. [ 275.244345] NVRM: RmInitAdapter failed! (0x30:0xffff:663) [ 275.244433] NVRM: rm_init_adapter failed for device bearing minor number 0 [ 275.347956] NVRM: failed to copy vbios to system memory. [ 275.348140] NVRM: RmInitAdapter failed! (0x30:0xffff:663) [ 275.348163] NVRM: rm_init_adapter failed for device bearing minor number 0 - Random CPU core lockups
TODO: - Disable PEG clock to decrease idle power by 1W. - Do longterm stability tests. - Split patches into smaller chunks
Change-Id: I277808d6c1d8bd6e0a267a53f25471597698f8d5 Signed-off-by: Evgeny Zinoviev me@ch1p.com Signed-off-by: Patrick Rudolph siro@das-labor.org --- A Documentation/gfx/hybrid_dual_graphics.md A Documentation/gfx/index.md A Documentation/gfx/optimus.md M Documentation/index.md A src/drivers/nvidia/optimus/Kconfig A src/drivers/nvidia/optimus/acpi/optimus.asl A src/ec/lenovo/pmh7/acpi/optimus_sandy_ivy.asl A src/ec/lenovo/pmh7/acpi/pmh7.asl M src/ec/lenovo/pmh7/pmh7.h M src/mainboard/lenovo/t420/Kconfig M src/mainboard/lenovo/t420/acpi/ec.asl M src/mainboard/lenovo/t420s/Kconfig M src/mainboard/lenovo/t420s/acpi/ec.asl M src/mainboard/lenovo/t430/Kconfig M src/mainboard/lenovo/t430/acpi/ec.asl M src/mainboard/lenovo/t430s/Kconfig M src/mainboard/lenovo/t430s/acpi/ec.asl M src/mainboard/lenovo/t520/Kconfig M src/mainboard/lenovo/t520/acpi/ec.asl M src/mainboard/lenovo/t520/cmos.default M src/mainboard/lenovo/t530/Kconfig M src/mainboard/lenovo/t530/acpi/ec.asl M src/northbridge/intel/sandybridge/acpi/hostbridge.asl M src/northbridge/intel/sandybridge/acpi/peg.asl 24 files changed, 841 insertions(+), 16 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/80/28380/13