drivers/intel/gma: Move IGD OpRegion to CBMEM
It never was in GNVS, it never belonged among the ACPI tables. Having it in CBMEM, makes it easy to look the location up on resume, and saves us additional boilerplate. TEST=Booted Linux on Lenovo/X201s, confirmed ASLS is set and intel_backlight + acpi_video synchronize, both before and after suspend. Change-Id: I5fdd6634e4a671a85b1df8bc9815296ff42edf29 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/40724 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
@@ -460,38 +460,16 @@ unsigned long acpi_madt_irq_overrides(unsigned long current)
|
||||
return current;
|
||||
}
|
||||
|
||||
/* Initialize IGD OpRegion, called from ACPI code */
|
||||
static int update_igd_opregion(igd_opregion_t *opregion)
|
||||
{
|
||||
/* FIXME: Add platform specific mailbox initialization */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long southcluster_write_acpi_tables(const struct device *device, unsigned long current,
|
||||
struct acpi_rsdp *rsdp)
|
||||
{
|
||||
acpi_header_t *ssdt2;
|
||||
global_nvs_t *gnvs = cbmem_find(CBMEM_ID_ACPI_GNVS);
|
||||
|
||||
if (!CONFIG(DISABLE_HPET)) {
|
||||
current = acpi_write_hpet(device, current, rsdp);
|
||||
current = acpi_align_current(current);
|
||||
}
|
||||
|
||||
if (CONFIG(INTEL_GMA_ADD_VBT)) {
|
||||
igd_opregion_t *opregion;
|
||||
|
||||
printk(BIOS_DEBUG, "ACPI: * IGD OpRegion\n");
|
||||
opregion = (igd_opregion_t *)current;
|
||||
intel_gma_init_igd_opregion(opregion);
|
||||
if (gnvs)
|
||||
gnvs->aslb = (u32)opregion;
|
||||
update_igd_opregion(opregion);
|
||||
current += sizeof(igd_opregion_t);
|
||||
current = acpi_align_current(current);
|
||||
}
|
||||
|
||||
ssdt2 = (acpi_header_t *)current;
|
||||
memset(ssdt2, 0, sizeof(acpi_header_t));
|
||||
acpi_create_serialio_ssdt(ssdt2);
|
||||
|
Reference in New Issue
Block a user