Hello Patrick Rudolph, build bot (Jenkins),
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/28380
to look at the new patch set (#3).
Change subject: [WIP] Nvidia Optimus support for ThinkPads ......................................................................
[WIP] Nvidia Optimus support for ThinkPads
Based on siro's work #23041. Tested on ThinkPad W530.
Enables dual graphics mode for T420, T420s, T520, T430, T430s, T530 mainboards, adds ACPI code for dGPU power management.
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/cmos.layout M src/mainboard/lenovo/t420/dsdt.asl M src/mainboard/lenovo/t420/romstage.c M src/mainboard/lenovo/t420s/acpi/ec.asl M src/mainboard/lenovo/t420s/cmos.layout M src/mainboard/lenovo/t420s/dsdt.asl M src/mainboard/lenovo/t420s/romstage.c M src/mainboard/lenovo/t430/acpi/ec.asl M src/mainboard/lenovo/t430/cmos.layout M src/mainboard/lenovo/t430/devicetree.cb M src/mainboard/lenovo/t430/dsdt.asl M src/mainboard/lenovo/t430/romstage.c M src/mainboard/lenovo/t430s/Kconfig M src/mainboard/lenovo/t430s/Makefile.inc M src/mainboard/lenovo/t430s/acpi/ec.asl M src/mainboard/lenovo/t430s/cmos.default M src/mainboard/lenovo/t430s/cmos.layout M src/mainboard/lenovo/t430s/devicetree.cb M src/mainboard/lenovo/t430s/dsdt.asl M src/mainboard/lenovo/t430s/romstage.c M src/mainboard/lenovo/t520/acpi/ec.asl M src/mainboard/lenovo/t520/dsdt.asl M src/mainboard/lenovo/t520/romstage.c M src/mainboard/lenovo/t530/acpi/ec.asl M src/mainboard/lenovo/t530/cmos.layout M src/mainboard/lenovo/t530/dsdt.asl M src/mainboard/lenovo/t530/romstage.c M src/mainboard/lenovo/t530/variants/t530/devicetree.cb M src/mainboard/lenovo/t530/variants/w530/devicetree.cb M src/northbridge/intel/sandybridge/acpi/peg.asl 34 files changed, 427 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/80/28380/3