Patrick Rudolph uploaded patch set #11 to the change originally created by Evgeny Zinoviev.

View Change

[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.
- Document _DSM and code.

Change-Id: I277808d6c1d8bd6e0a267a53f25471597698f8d5
Signed-off-by: Evgeny Zinoviev <me@ch1p.com>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
---
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
20 files changed, 672 insertions(+), 15 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/80/28380/11

To view, visit change 28380. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I277808d6c1d8bd6e0a267a53f25471597698f8d5
Gerrit-Change-Number: 28380
Gerrit-PatchSet: 11
Gerrit-Owner: Evgeny Zinoviev <me@ch1p.com>
Gerrit-Reviewer: Alexander Couzens <lynxis@fe80.eu>
Gerrit-Reviewer: Evgeny Zinoviev <me@ch1p.com>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph@9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-CC: Name of user not set #1002090
Gerrit-CC: Paul Menzel <paulepanter@users.sourceforge.net>
Gerrit-MessageType: newpatchset