aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/gfx
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/gfx')
-rw-r--r--src/drivers/gfx/generic/chip.h2
-rw-r--r--src/drivers/gfx/generic/generic.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/drivers/gfx/generic/chip.h b/src/drivers/gfx/generic/chip.h
index becc2edaf0..d60082372b 100644
--- a/src/drivers/gfx/generic/chip.h
+++ b/src/drivers/gfx/generic/chip.h
@@ -29,6 +29,8 @@ struct drivers_gfx_generic_privacy_screen_config {
struct drivers_gfx_generic_device_config {
/* ACPI device name of the output device */
const char *name;
+ /* Value to use for _HID Name, will take precedence over _ADR */
+ const char *hid;
/* The address of the output device. See section A.3.2 */
unsigned int addr;
/* Electronic privacy screen specific config */
diff --git a/src/drivers/gfx/generic/generic.c b/src/drivers/gfx/generic/generic.c
index 98bde79cdc..7c6076c9f4 100644
--- a/src/drivers/gfx/generic/generic.c
+++ b/src/drivers/gfx/generic/generic.c
@@ -121,7 +121,11 @@ static void gfx_fill_ssdt_generator(const struct device *dev)
for (i = 0; i < config->device_count; i++) {
acpigen_write_device(config->device[i].name);
- acpigen_write_name_integer("_ADR", config->device[i].addr);
+ if (config->device[i].hid)
+ acpigen_write_name_string("_HID", config->device[i].hid);
+ else
+ acpigen_write_name_integer("_ADR", config->device[i].addr);
+
acpigen_write_name_integer("_STA", 0xF);
gfx_fill_privacy_screen_dsm(&config->device[i].privacy);
acpigen_pop_len(); /* Device */