From 0f68b23aafc102926ccc833b228d098f5613f3e8 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 25 Jan 2018 18:23:15 +0100 Subject: intel: Prepare registers so Windows drivers are happier Change-Id: I12ebed30de4df9814ccb62341c7715fc62c7f5b9 Signed-off-by: Patrick Georgi Signed-off-by: Pratik Prajapati Reviewed-on: https://review.coreboot.org/23431 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans --- src/drivers/intel/gma/opregion.c | 1 + src/soc/intel/apollolake/graphics.c | 2 ++ src/soc/intel/braswell/acpi.c | 1 + src/soc/intel/common/opregion.c | 2 +- src/soc/intel/skylake/graphics.c | 2 ++ 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/drivers/intel/gma/opregion.c b/src/drivers/intel/gma/opregion.c index b6d4e07790..74c629c9c2 100644 --- a/src/drivers/intel/gma/opregion.c +++ b/src/drivers/intel/gma/opregion.c @@ -285,6 +285,7 @@ intel_gma_init_igd_opregion(igd_opregion_t *opregion) opregion->header.mailboxes = MAILBOXES_MOBILE; // TODO Initialize Mailbox 1 + opregion->mailbox1.clid = 1; // TODO Initialize Mailbox 3 opregion->mailbox3.bclp = IGD_BACKLIGHT_BRIGHTNESS; diff --git a/src/soc/intel/apollolake/graphics.c b/src/soc/intel/apollolake/graphics.c index 4fa525e6f1..55b98617f8 100644 --- a/src/soc/intel/apollolake/graphics.c +++ b/src/soc/intel/apollolake/graphics.c @@ -42,6 +42,8 @@ uintptr_t graphics_soc_write_acpi_opregion(struct device *device, current += sizeof(igd_opregion_t); + opregion->mailbox1.clid = 1; + /* TODO Initialize Mailbox 3 */ opregion->mailbox3.bclp = IGD_BACKLIGHT_BRIGHTNESS; opregion->mailbox3.pfit = IGD_FIELD_VALID | IGD_PFIT_STRETCH; diff --git a/src/soc/intel/braswell/acpi.c b/src/soc/intel/braswell/acpi.c index ada274144c..61ae20354c 100644 --- a/src/soc/intel/braswell/acpi.c +++ b/src/soc/intel/braswell/acpi.c @@ -480,6 +480,7 @@ static int update_igd_opregion(igd_opregion_t *opregion) struct device *igd; /* TODO Initialize Mailbox 1 */ + opregion->mailbox1.clid = 1; /* TODO Initialize Mailbox 3 */ opregion->mailbox3.bclp = IGD_BACKLIGHT_BRIGHTNESS; diff --git a/src/soc/intel/common/opregion.c b/src/soc/intel/common/opregion.c index b8111a0760..f35e12a0e7 100644 --- a/src/soc/intel/common/opregion.c +++ b/src/soc/intel/common/opregion.c @@ -58,7 +58,7 @@ enum cb_err init_igd_opregion(igd_opregion_t *opregion) /* 8KiB */ opregion->header.size = sizeof(igd_opregion_t) / KiB; - opregion->header.version = IGD_OPREGION_VERSION; + opregion->header.version = IGD_OPREGION_VERSION << 24; /* FIXME We just assume we're mobile for now */ opregion->header.mailboxes = MAILBOXES_MOBILE; diff --git a/src/soc/intel/skylake/graphics.c b/src/soc/intel/skylake/graphics.c index 8e6d6ec3f2..f39f39c6a0 100644 --- a/src/soc/intel/skylake/graphics.c +++ b/src/soc/intel/skylake/graphics.c @@ -67,6 +67,8 @@ static void update_igd_opregion(igd_opregion_t *opregion) { u16 reg16; + opregion->mailbox1.clid = 1; + /* Initialize Mailbox 3 */ opregion->mailbox3.bclp = IGD_BACKLIGHT_BRIGHTNESS; opregion->mailbox3.pfit = IGD_FIELD_VALID | IGD_PFIT_STRETCH; -- cgit v1.2.3