summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/gfx/generic/chip.h7
-rw-r--r--src/drivers/gfx/generic/generic.c4
2 files changed, 10 insertions, 1 deletions
diff --git a/src/drivers/gfx/generic/chip.h b/src/drivers/gfx/generic/chip.h
index d60082372b..1a666a27eb 100644
--- a/src/drivers/gfx/generic/chip.h
+++ b/src/drivers/gfx/generic/chip.h
@@ -4,6 +4,7 @@
#define __DRIVERS_GFX_GENERIC_CHIP_H__
#include <acpi/acpi_device.h>
+#include <acpi/acpi_pld.h>
/* Config for electronic privacy screen */
struct drivers_gfx_generic_privacy_screen_config {
@@ -35,6 +36,9 @@ struct drivers_gfx_generic_device_config {
unsigned int addr;
/* Electronic privacy screen specific config */
struct drivers_gfx_generic_privacy_screen_config privacy;
+ /* Physical location of connection point */
+ bool use_pld;
+ struct acpi_pld pld;
};
/* Config for an ACPI video device defined in Appendix A of the ACPI spec */
@@ -47,7 +51,8 @@ struct drivers_gfx_generic_config {
/* The number of output devices defined */
int device_count;
/* Config for output devices */
- struct drivers_gfx_generic_device_config device[5];
+ /* 1 DDIA + 1 DDIB + max 4 TCP = up to 6 GFX devices */
+ struct drivers_gfx_generic_device_config device[6];
};
#endif /* __DRIVERS_GFX_GENERIC_CHIP_H__ */
diff --git a/src/drivers/gfx/generic/generic.c b/src/drivers/gfx/generic/generic.c
index 7c6076c9f4..0ab16767eb 100644
--- a/src/drivers/gfx/generic/generic.c
+++ b/src/drivers/gfx/generic/generic.c
@@ -128,6 +128,10 @@ static void gfx_fill_ssdt_generator(const struct device *dev)
acpigen_write_name_integer("_STA", 0xF);
gfx_fill_privacy_screen_dsm(&config->device[i].privacy);
+
+ if (config->device[i].use_pld)
+ acpigen_write_pld(&config->device[i].pld);
+
acpigen_pop_len(); /* Device */
}
acpigen_pop_len(); /* Scope */