Felix Held submitted this change.

View Change

Approvals: Eric Lai: Looks good to me, approved build bot (Jenkins): Verified
mb/google/brya/var/*: Ensure LCD device has a valid address

Some variants added the generic gfx driver with an LCD device without
specifying the address, which is required for the backlight controls
to be functional under Windows. Add the address value where missing.

Address value used (0x80010400) is same as on other Brya variants which
did properly set it, and is taken from the ACPI 6.5 spec section B.4.2,
_DOD (display output device enumeration), table B-2:

- bit 31 = use the ACPI-defined (vs vendor-defined) bit scheme for bits
15-0
- bit 16 = platform firmware can detect the device
- bit 10 = display type is internal/integrated flat panel (aka LCD)

TEST=build/boot Win11 on google/brya (osiris), verify ACPI backlight
controls functional.

Change-Id: Id24e330cfb7c993d12665a704e1ca78e2e38874f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80062
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
---
M src/mainboard/google/brya/variants/anahera/overridetree.cb
M src/mainboard/google/brya/variants/anahera4es/overridetree.cb
M src/mainboard/google/brya/variants/anraggar/overridetree.cb
M src/mainboard/google/brya/variants/banshee/overridetree.cb
M src/mainboard/google/brya/variants/brya0/overridetree.cb
M src/mainboard/google/brya/variants/crota/overridetree.cb
M src/mainboard/google/brya/variants/dochi/overridetree.cb
M src/mainboard/google/brya/variants/felwinter/overridetree.cb
M src/mainboard/google/brya/variants/gimble/overridetree.cb
M src/mainboard/google/brya/variants/gimble4es/overridetree.cb
M src/mainboard/google/brya/variants/kano/overridetree.cb
M src/mainboard/google/brya/variants/marasov/overridetree.cb
M src/mainboard/google/brya/variants/mithrax/overridetree.cb
M src/mainboard/google/brya/variants/omnigul/overridetree.cb
M src/mainboard/google/brya/variants/osiris/overridetree.cb
M src/mainboard/google/brya/variants/primus/overridetree.cb
M src/mainboard/google/brya/variants/redrix/overridetree.cb
M src/mainboard/google/brya/variants/redrix4es/overridetree.cb
M src/mainboard/google/brya/variants/skolas/overridetree.cb
M src/mainboard/google/brya/variants/skolas4es/overridetree.cb
M src/mainboard/google/brya/variants/taeko/overridetree.cb
M src/mainboard/google/brya/variants/taeko4es/overridetree.cb
M src/mainboard/google/brya/variants/taniks/overridetree.cb
M src/mainboard/google/brya/variants/vell/overridetree.cb
M src/mainboard/google/brya/variants/volmar/overridetree.cb
25 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/src/mainboard/google/brya/variants/anahera/overridetree.cb b/src/mainboard/google/brya/variants/anahera/overridetree.cb
index 0a72246..1961e09 100644
--- a/src/mainboard/google/brya/variants/anahera/overridetree.cb
+++ b/src/mainboard/google/brya/variants/anahera/overridetree.cb
@@ -118,6 +118,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/anahera4es/overridetree.cb b/src/mainboard/google/brya/variants/anahera4es/overridetree.cb
index ed4037e..c7cce88 100644
--- a/src/mainboard/google/brya/variants/anahera4es/overridetree.cb
+++ b/src/mainboard/google/brya/variants/anahera4es/overridetree.cb
@@ -100,6 +100,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/anraggar/overridetree.cb b/src/mainboard/google/brya/variants/anraggar/overridetree.cb
index 2c4cecc..ca9c655 100644
--- a/src/mainboard/google/brya/variants/anraggar/overridetree.cb
+++ b/src/mainboard/google/brya/variants/anraggar/overridetree.cb
@@ -200,6 +200,8 @@
register "device_count" = "4"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
# If HDMI is not enumerated in the kernel, then no GFX device should be added for DDIB
register "device[1].name" = ""DD01""
diff --git a/src/mainboard/google/brya/variants/banshee/overridetree.cb b/src/mainboard/google/brya/variants/banshee/overridetree.cb
index 3e3c33c..38c4528 100644
--- a/src/mainboard/google/brya/variants/banshee/overridetree.cb
+++ b/src/mainboard/google/brya/variants/banshee/overridetree.cb
@@ -99,6 +99,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/brya0/overridetree.cb b/src/mainboard/google/brya/variants/brya0/overridetree.cb
index d7eadbe..a4a0ae5 100644
--- a/src/mainboard/google/brya/variants/brya0/overridetree.cb
+++ b/src/mainboard/google/brya/variants/brya0/overridetree.cb
@@ -123,6 +123,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
# If HDMI is not enumerated in the kernel, then no GFX device should be added for DDIB
register "device[1].name" = ""DD01""
diff --git a/src/mainboard/google/brya/variants/crota/overridetree.cb b/src/mainboard/google/brya/variants/crota/overridetree.cb
index b3cab3c..8b671e1 100644
--- a/src/mainboard/google/brya/variants/crota/overridetree.cb
+++ b/src/mainboard/google/brya/variants/crota/overridetree.cb
@@ -112,6 +112,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/dochi/overridetree.cb b/src/mainboard/google/brya/variants/dochi/overridetree.cb
index 19ace7b..880b7bc 100644
--- a/src/mainboard/google/brya/variants/dochi/overridetree.cb
+++ b/src/mainboard/google/brya/variants/dochi/overridetree.cb
@@ -92,6 +92,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/felwinter/overridetree.cb b/src/mainboard/google/brya/variants/felwinter/overridetree.cb
index 46a841d..74f2114 100644
--- a/src/mainboard/google/brya/variants/felwinter/overridetree.cb
+++ b/src/mainboard/google/brya/variants/felwinter/overridetree.cb
@@ -98,6 +98,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP0
diff --git a/src/mainboard/google/brya/variants/gimble/overridetree.cb b/src/mainboard/google/brya/variants/gimble/overridetree.cb
index b35a64f..0de70e5 100644
--- a/src/mainboard/google/brya/variants/gimble/overridetree.cb
+++ b/src/mainboard/google/brya/variants/gimble/overridetree.cb
@@ -79,6 +79,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/gimble4es/overridetree.cb b/src/mainboard/google/brya/variants/gimble4es/overridetree.cb
index 1962127..6351248 100644
--- a/src/mainboard/google/brya/variants/gimble4es/overridetree.cb
+++ b/src/mainboard/google/brya/variants/gimble4es/overridetree.cb
@@ -44,6 +44,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/kano/overridetree.cb b/src/mainboard/google/brya/variants/kano/overridetree.cb
index 8ef5ed2..cbce022 100644
--- a/src/mainboard/google/brya/variants/kano/overridetree.cb
+++ b/src/mainboard/google/brya/variants/kano/overridetree.cb
@@ -101,6 +101,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/marasov/overridetree.cb b/src/mainboard/google/brya/variants/marasov/overridetree.cb
index 3ea7092..64ca6a7 100644
--- a/src/mainboard/google/brya/variants/marasov/overridetree.cb
+++ b/src/mainboard/google/brya/variants/marasov/overridetree.cb
@@ -146,6 +146,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/mithrax/overridetree.cb b/src/mainboard/google/brya/variants/mithrax/overridetree.cb
index cd79b2c..6df9b60 100644
--- a/src/mainboard/google/brya/variants/mithrax/overridetree.cb
+++ b/src/mainboard/google/brya/variants/mithrax/overridetree.cb
@@ -96,6 +96,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP0
diff --git a/src/mainboard/google/brya/variants/omnigul/overridetree.cb b/src/mainboard/google/brya/variants/omnigul/overridetree.cb
index 0942299d..4a3d368 100644
--- a/src/mainboard/google/brya/variants/omnigul/overridetree.cb
+++ b/src/mainboard/google/brya/variants/omnigul/overridetree.cb
@@ -131,6 +131,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/osiris/overridetree.cb b/src/mainboard/google/brya/variants/osiris/overridetree.cb
index e8b78ca..0c21a61 100644
--- a/src/mainboard/google/brya/variants/osiris/overridetree.cb
+++ b/src/mainboard/google/brya/variants/osiris/overridetree.cb
@@ -75,6 +75,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/primus/overridetree.cb b/src/mainboard/google/brya/variants/primus/overridetree.cb
index a06578d..d815587 100644
--- a/src/mainboard/google/brya/variants/primus/overridetree.cb
+++ b/src/mainboard/google/brya/variants/primus/overridetree.cb
@@ -87,6 +87,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/redrix/overridetree.cb b/src/mainboard/google/brya/variants/redrix/overridetree.cb
index 7301615..f8502aa 100644
--- a/src/mainboard/google/brya/variants/redrix/overridetree.cb
+++ b/src/mainboard/google/brya/variants/redrix/overridetree.cb
@@ -133,6 +133,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/redrix4es/overridetree.cb b/src/mainboard/google/brya/variants/redrix4es/overridetree.cb
index 1a619f8..6e00215 100644
--- a/src/mainboard/google/brya/variants/redrix4es/overridetree.cb
+++ b/src/mainboard/google/brya/variants/redrix4es/overridetree.cb
@@ -114,6 +114,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0
diff --git a/src/mainboard/google/brya/variants/skolas/overridetree.cb b/src/mainboard/google/brya/variants/skolas/overridetree.cb
index bb6d1ea..3f17008 100644
--- a/src/mainboard/google/brya/variants/skolas/overridetree.cb
+++ b/src/mainboard/google/brya/variants/skolas/overridetree.cb
@@ -122,6 +122,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
# If HDMI is not enumerated in the kernel, then no GFX device should be added for DDIB
register "device[1].name" = ""DD01""
diff --git a/src/mainboard/google/brya/variants/skolas4es/overridetree.cb b/src/mainboard/google/brya/variants/skolas4es/overridetree.cb
index b020d01..326c675 100644
--- a/src/mainboard/google/brya/variants/skolas4es/overridetree.cb
+++ b/src/mainboard/google/brya/variants/skolas4es/overridetree.cb
@@ -117,6 +117,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
# If HDMI is not enumerated in the kernel, then no GFX device should be added for DDIB
register "device[1].name" = ""DD01""
diff --git a/src/mainboard/google/brya/variants/taeko/overridetree.cb b/src/mainboard/google/brya/variants/taeko/overridetree.cb
index 744a870..27584cd 100644
--- a/src/mainboard/google/brya/variants/taeko/overridetree.cb
+++ b/src/mainboard/google/brya/variants/taeko/overridetree.cb
@@ -142,6 +142,8 @@
register "device_count" = "3"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
# TCP0 (DP-1) for port C0
register "device[1].name" = ""DD01""
diff --git a/src/mainboard/google/brya/variants/taeko4es/overridetree.cb b/src/mainboard/google/brya/variants/taeko4es/overridetree.cb
index a2c79d5..22b3ca7 100644
--- a/src/mainboard/google/brya/variants/taeko4es/overridetree.cb
+++ b/src/mainboard/google/brya/variants/taeko4es/overridetree.cb
@@ -123,6 +123,8 @@
register "device_count" = "3"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
# TCP0 (DP-1) for port C0
register "device[1].name" = ""DD01""
diff --git a/src/mainboard/google/brya/variants/taniks/overridetree.cb b/src/mainboard/google/brya/variants/taniks/overridetree.cb
index 0d335b6..1e0101a 100644
--- a/src/mainboard/google/brya/variants/taniks/overridetree.cb
+++ b/src/mainboard/google/brya/variants/taniks/overridetree.cb
@@ -119,6 +119,8 @@
register "device_count" = "3"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
# TCP0 (DP-1) for port C0
register "device[1].name" = ""DD01""
diff --git a/src/mainboard/google/brya/variants/vell/overridetree.cb b/src/mainboard/google/brya/variants/vell/overridetree.cb
index 30df62a..6956312 100644
--- a/src/mainboard/google/brya/variants/vell/overridetree.cb
+++ b/src/mainboard/google/brya/variants/vell/overridetree.cb
@@ -98,6 +98,8 @@
register "device_count" = "5"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
# TCP0 (DP-1) for port C0
register "device[1].name" = ""DD01""
diff --git a/src/mainboard/google/brya/variants/volmar/overridetree.cb b/src/mainboard/google/brya/variants/volmar/overridetree.cb
index c0dccfa..1de6626 100644
--- a/src/mainboard/google/brya/variants/volmar/overridetree.cb
+++ b/src/mainboard/google/brya/variants/volmar/overridetree.cb
@@ -93,6 +93,8 @@
register "device_count" = "6"
# DDIA for eDP
register "device[0].name" = ""LCD""
+ # Internal panel on the first port of the graphics chip
+ register "device[0].addr" = "0x80010400"
# DDIB for HDMI
register "device[1].name" = ""DD01""
# TCP0 (DP-1) for port C0

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

Gerrit-Project: coreboot
Gerrit-Branch: main
Gerrit-Change-Id: Id24e330cfb7c993d12665a704e1ca78e2e38874f
Gerrit-Change-Number: 80062
Gerrit-PatchSet: 4
Gerrit-Owner: Matt DeVillier <matt.devillier@gmail.com>
Gerrit-Reviewer: Eric Lai <ericllai@google.com>
Gerrit-Reviewer: Felix Held <felix-coreboot@felixheld.de>
Gerrit-Reviewer: Kapil Porwal <kapilporwal@google.com>
Gerrit-Reviewer: Nick Vaccaro <nvaccaro@chromium.org>
Gerrit-Reviewer: Subrata Banik <subratabanik@google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-MessageType: merged