diff options
author | Marshall Dawson <marshalldawson3rd@gmail.com> | 2018-12-04 11:05:10 -0700 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-12-05 14:06:32 +0000 |
commit | 8ce51cde9490939f44ec898cb03e8a41cc419a96 (patch) | |
tree | 5454f5ff88c226f3078faaf2f0ee26b3889c220f | |
parent | 6a9e6cd89e2be6b35675ee81c2272a5ea5f2db75 (diff) | |
download | coreboot-8ce51cde9490939f44ec898cb03e8a41cc419a96.tar.xz |
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 <marshalldawson3rd@gmail.com>
Reviewed-on: https://review.coreboot.org/c/30037
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r-- | src/mainboard/amd/gardenia/dsdt.asl | 2 | ||||
-rw-r--r-- | src/soc/amd/stoneyridge/acpi/lpc.asl | 8 |
2 files changed, 9 insertions, 1 deletions
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 <arch/acpi.h> 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) }) |