From 8ce51cde9490939f44ec898cb03e8a41cc419a96 Mon Sep 17 00:00:00 2001 From: Marshall Dawson Date: Tue, 4 Dec 2018 11:05:10 -0700 Subject: soc/amd/stoneyridge: Name IO061 in ASL appropriately AMD traditionally claims the resource at I/O port 61 for the onboard PC-AT speaker. In later designs, the speaker may be omitted in favor of routing the SPKR signal to the codec. Some systems implement neither, and for those it is not correct to identify the resource as a speaker. Modify the EISAID reported to the OS depending on the system design. The default is that port 61 is reported as reserved. In order to report a speaker, add #define in mainboard//dsdt.asl. TEST=check /proc/ioports and iasl -d for both ways using a Grunt BUG=b:117818432 Change-Id: I33aafb187f9fea7b38aae43c399292c7521fcfc4 Signed-off-by: Marshall Dawson Reviewed-on: https://review.coreboot.org/c/30037 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- src/mainboard/amd/gardenia/dsdt.asl | 2 ++ src/soc/amd/stoneyridge/acpi/lpc.asl | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mainboard/amd/gardenia/dsdt.asl b/src/mainboard/amd/gardenia/dsdt.asl index f190b4e505..52bd90b9d2 100644 --- a/src/mainboard/amd/gardenia/dsdt.asl +++ b/src/mainboard/amd/gardenia/dsdt.asl @@ -13,6 +13,8 @@ * GNU General Public License for more details. */ +#define MAINBOARD_HAS_SPEAKER 1 + /* DefinitionBlock Statement */ #include DefinitionBlock ( diff --git a/src/soc/amd/stoneyridge/acpi/lpc.asl b/src/soc/amd/stoneyridge/acpi/lpc.asl index a41357a306..e24514ce74 100644 --- a/src/soc/amd/stoneyridge/acpi/lpc.asl +++ b/src/soc/amd/stoneyridge/acpi/lpc.asl @@ -13,6 +13,12 @@ * GNU General Public License for more details. */ +#if IS_ENABLED(MAINBOARD_HAS_SPEAKER) +#define IO61_HID "PNP0800" /* AT style speaker */ +#else +#define IO61_HID "PNP0C02" /* reserved resource */ +#endif + /* 0:14.3 - LPC */ Device(LPCB) { Name(_ADR, 0x00140003) @@ -66,7 +72,7 @@ Device(LPCB) { } /* End Device(_SB.PCI0.LpcIsaBr.TMR) */ Device(SPKR) { /* Speaker */ - Name(_HID,EISAID("PNP0800")) /* AT style speaker */ + Name(_HID,EISAID(IO61_HID)) Name(_CRS, ResourceTemplate() { IO(Decode16, 0x0061, 0x0061, 0, 1) }) -- cgit v1.2.3