summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Dawson <marshalldawson3rd@gmail.com>2018-12-04 11:05:10 -0700
committerPatrick Georgi <pgeorgi@google.com>2018-12-05 14:06:32 +0000
commit8ce51cde9490939f44ec898cb03e8a41cc419a96 (patch)
tree5454f5ff88c226f3078faaf2f0ee26b3889c220f
parent6a9e6cd89e2be6b35675ee81c2272a5ea5f2db75 (diff)
downloadcoreboot-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.asl2
-rw-r--r--src/soc/amd/stoneyridge/acpi/lpc.asl8
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)
})