Matt DeVillier has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/62593 )
Change subject: mb/google/hatch/var/jinlon: Fix disabling iGPU when EPS not present ......................................................................
mb/google/hatch/var/jinlon: Fix disabling iGPU when EPS not present
Commit ebf14826 [mb/google/hatch/var/jinlon: Switch to using device pointers] inadvertently broke jinlon boards without an electronic privacy screen (EPS) by disabling the parent device (iGPU) instead of the EPS when determined to be not present via SKU ID.
Fix this by assigning the device alias to the EPS child device, not the parent (iGPU). Rename the alias for clarity, and clean up the duplicate device definition for the iGPU by combining them.
Test: build/boot google/jinlon SKU w/o EPS, observe GPU functional in both firmware boot screens and Linux OS.
Change-Id: I0615ce361497abe6872085b0dec83292607e53dd Signed-off-by: Matt DeVillier matt.devillier@gmail.com --- M src/mainboard/google/hatch/variants/jinlon/mainboard.c M src/mainboard/google/hatch/variants/jinlon/overridetree.cb 2 files changed, 5 insertions(+), 7 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/93/62593/1
diff --git a/src/mainboard/google/hatch/variants/jinlon/mainboard.c b/src/mainboard/google/hatch/variants/jinlon/mainboard.c index d2e5b43..51ef346 100644 --- a/src/mainboard/google/hatch/variants/jinlon/mainboard.c +++ b/src/mainboard/google/hatch/variants/jinlon/mainboard.c @@ -20,20 +20,20 @@
static void check_for_eps(uint32_t sku_id) { - struct device *gfx_dev = DEV_PTR(igpu); + struct device *eps_dev = DEV_PTR(eps);
if (eps_sku(sku_id)) { printk(BIOS_INFO, "SKU ID %u has EPS\n", sku_id); return; }
- if (!gfx_dev) { + if (!eps_dev) { printk(BIOS_ERR, "Error! No EPS dev, view-angle-management won't work\n"); return; }
printk(BIOS_INFO, "SKU ID %u doesn't have EPS, disabling...\n", sku_id); - gfx_dev->enabled = 0; + eps_dev->enabled = 0; }
void variant_devtree_update(void) diff --git a/src/mainboard/google/hatch/variants/jinlon/overridetree.cb b/src/mainboard/google/hatch/variants/jinlon/overridetree.cb index b3887d4..88c9a54 100644 --- a/src/mainboard/google/hatch/variants/jinlon/overridetree.cb +++ b/src/mainboard/google/hatch/variants/jinlon/overridetree.cb @@ -69,10 +69,8 @@ register "ScsEmmcHs400Enabled" = "1"
device domain 0 on - device pci 02.0 alias igpu on # Integrated Graphics Device - register "gfx" = "GMA_DEFAULT_PANEL(0)" - end device pci 02.0 on + register "gfx" = "GMA_DEFAULT_PANEL(0)" chip drivers/gfx/generic register "device_count" = "1" register "device[0].name" = ""LCD"" @@ -80,7 +78,7 @@ register "device[0].addr" = "0x80010400" register "device[0].privacy.enabled" = "1" register "device[0].privacy.gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E0)" - device generic 0 on end + device generic 0 alias eps on end end end # Integrated Graphics Device device pci 14.0 on