Evgeny Zinoviev uploaded patch set #7 to this change.

View Change

[WIP] Nvidia Optimus support for ThinkPads

Based on siro's work #23041.
Tested on ThinkPad W530.

Adds ACPI code for dGPU power management.

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 (with a workaround, see below)
- bumblebee (from the "develop" branch)
- bbswitch

Known problems:
- `lspci -s 01:00.0 -vv` turns dGPU on if it was off before. Not sure why it
happens (probably it calls _PS0 at some point) or whether it should
happen.

- nouveau driver unloading (`rmmod` or `modprobe -r`) does not work well: it
crashes in nouveau_backlight_exit (invalid pointer). The current hack is
to comment out these lines in drivers/gpu/drm/nouveau/nouveau_backlight.c,
function `nouveau_backlight_exit`:

list_for_each_entry(connector, &drm->bl_connectors, head) {
if (connector->id >= 0)
ida_simple_remove(&bl_ida, connector->id);
}

Need to debug why it happens.

- VGA ROM for Nvidia GPU is not loaded from BIOS (i.e. coreboot). Need
to debug and fix this too. (Or maybe I'm just doing it wrong.) The current
workaround is to load it from a file.

To do this automatically, create a new file in /etc/modprobe.d with this
line:

options nouveau config=NvBios=pci10de-0ffc.rom

where "pci10de-0ffc.rom" is a file in /lib/firmware directory
(the path is relative to /lib/firmware). VGA ROM has to be extracted
from vendor UEFI dump, GUID is 9781FA9D-5A3B-431A-AD59-2748C9A170EC.

Not tested yet:
- nvidia proprietary driver

Change-Id: I277808d6c1d8bd6e0a267a53f25471597698f8d5
Signed-off-by: Evgeny Zinoviev <me@ch1p.com>
---
A src/drivers/lenovo/hybrid_graphics/acpi/gpu.asl
A src/drivers/nvidia/optimus/acpi/optimus.asl
A src/ec/lenovo/pmh7/acpi/pmh7.asl
M src/mainboard/lenovo/t420/acpi/ec.asl
M src/mainboard/lenovo/t420/dsdt.asl
M src/mainboard/lenovo/t420s/acpi/ec.asl
M src/mainboard/lenovo/t420s/dsdt.asl
M src/mainboard/lenovo/t430/acpi/ec.asl
M src/mainboard/lenovo/t430/dsdt.asl
M src/mainboard/lenovo/t430s/acpi/ec.asl
M src/mainboard/lenovo/t430s/dsdt.asl
M src/mainboard/lenovo/t520/acpi/ec.asl
M src/mainboard/lenovo/t520/dsdt.asl
M src/mainboard/lenovo/t530/acpi/ec.asl
M src/mainboard/lenovo/t530/dsdt.asl
M src/northbridge/intel/sandybridge/acpi/peg.asl
16 files changed, 357 insertions(+), 0 deletions(-)

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

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

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I277808d6c1d8bd6e0a267a53f25471597698f8d5
Gerrit-Change-Number: 28380
Gerrit-PatchSet: 7
Gerrit-Owner: Evgeny Zinoviev <me@ch1p.com>
Gerrit-Reviewer: Evgeny Zinoviev <me@ch1p.com>
Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>