From c83bab62b3657d97299c8368b6c610e4cbf994b6 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Fri, 13 Dec 2019 12:16:06 +0100 Subject: acpi: Be more ACPI compliant when generating _UID * Add function to generate unique _UID using CRC32 * Add function to write the _UID based on a device's ACPI path ACPI devices that have the same _HID must use different _UID. Linux doesn't care about _UID if it's not used. Windows 10 verifies the ACPI code on boot and BSODs if two devices with the same _HID share the same _UID. Fixes BSOD seen on Windows 10. Change-Id: I47cd5396060d325f9ce338afced6af021e7ff2b4 Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/c/coreboot/+/37695 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Deppenwiese --- src/superio/common/ssdt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/superio/common') diff --git a/src/superio/common/ssdt.c b/src/superio/common/ssdt.c index 41cafdfb0e..541fa9922c 100644 --- a/src/superio/common/ssdt.c +++ b/src/superio/common/ssdt.c @@ -196,7 +196,8 @@ void superio_common_fill_ssdt_generator(struct device *dev) /* Device */ acpigen_write_device(name); - acpigen_write_name_byte("_UID", 0); + acpi_device_write_uid(dev); + acpigen_write_name_byte("LDN", ldn); acpigen_write_name_byte("VLDN", vldn); -- cgit v1.2.3