summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2012-09-07 10:40:36 +0200
committerPatrick Georgi <patrick@georgi-clan.de>2012-11-27 18:29:20 +0100
commite3abd3bfbb2459d0bea16df984f54a279ad5b7c0 (patch)
treea31b2e0bf2682fb0393c2d4778647891feb403f0 /src/mainboard
parentf5e0fd888d4c33b5d5cd55f9ffa43407a416ade1 (diff)
roda/rk886ex: Correct COMB irq reading / reduce warnings
The calculation of COMB's irq reading was wrong by the 4-bit shift. Also, the asl compiler warned about the splitting in lo/hi bytes which seems unnecessary. Change-Id: Ia5101d5a19f68c2da827d7e37a18922f959604c7 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: http://review.coreboot.org/1923 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/roda/rk886ex/acpi/superio.asl57
1 files changed, 23 insertions, 34 deletions
diff --git a/src/mainboard/roda/rk886ex/acpi/superio.asl b/src/mainboard/roda/rk886ex/acpi/superio.asl
index 184ff29dd2..174f2f1062 100644
--- a/src/mainboard/roda/rk886ex/acpi/superio.asl
+++ b/src/mainboard/roda/rk886ex/acpi/superio.asl
@@ -130,28 +130,23 @@ Device (SIO1)
Return(NONE)
}
- CreateByteField(RSRC,
- \_SB.PCI0.LPCB.SIO1.COMA._CRS._IOA._MIN, IOLO)
- CreateByteField(RSRC, 0x03, IOHI) // Why?
- CreateByteField(RSRC,
- \_SB.PCI0.LPCB.SIO1.COMA._CRS._IOA._MAX, IORL)
- CreateByteField(RSRC, 0x05, IORH) // Why?
- CreateByteField(RSRC,
- \_SB.PCI0.LPCB.SIO1.COMA._CRS._IRA._INT, IRQL)
-
- Store (READ(0, 0x24, 0xff), Local0)
- And (Local0, 0xc0, Local1)
- ShiftRight(Local1, 0x06, Local1)
+ CreateWordField(RSRC,
+ \_SB.PCI0.LPCB.SIO1.COMA._CRS._IOA._MIN, IOMN)
+ CreateWordField(RSRC,
+ \_SB.PCI0.LPCB.SIO1.COMA._CRS._IOA._MAX, IOMX)
+ CreateWordField(RSRC,
+ \_SB.PCI0.LPCB.SIO1.COMA._CRS._IRA._INT, IRQ)
+
+ /* I/O Base */
+ Store (READ(0, 0x24, 0xfe), Local0)
ShiftLeft(Local0, 0x02, Local0)
- Store(Local0, IOLO)
- Store(Local1, IOHI)
- Store(IOLO, IORL)
- Store(IOHI, IORH)
+ Store(Local0, IOMN)
+ Store(Local0, IOMX)
/* Interrupt */
Store(READ(0, 0x28, 0xf0), Local0)
ShiftRight(Local0, 4, Local0)
- ShiftLeft(1, Local0, IRQL)
+ ShiftLeft(1, Local0, IRQ)
Return(RSRC)
}
@@ -289,28 +284,22 @@ Device (SIO1)
Return(NONE)
}
- CreateByteField(RSRC,
- \_SB.PCI0.LPCB.SIO1.COMB._CRS._IOB._MIN, IOLO)
- CreateByteField(RSRC, 0x03, IOHI)
- CreateByteField(RSRC,
- \_SB.PCI0.LPCB.SIO1.COMB._CRS._IOB._MAX, IORL)
- CreateByteField(RSRC, 0x05, IORH)
- CreateByteField(RSRC,
- \_SB.PCI0.LPCB.SIO1.COMB._CRS._IRB._INT, IRQL)
+ CreateWordField(RSRC,
+ \_SB.PCI0.LPCB.SIO1.COMA._CRS._IOA._MIN, IOMN)
+ CreateWordField(RSRC,
+ \_SB.PCI0.LPCB.SIO1.COMA._CRS._IOA._MAX, IOMX)
+ CreateWordField(RSRC,
+ \_SB.PCI0.LPCB.SIO1.COMA._CRS._IRA._INT, IRQ)
- Store (READ(0, 0x25, 0xff), Local0)
- And (Local0, 0xc0, Local1)
- ShiftRight(Local1, 0x06, Local1)
+ /* I/O Base */
+ Store (READ(0, 0x25, 0xfe), Local0)
ShiftLeft(Local0, 0x02, Local0)
- Store(Local0, IOLO)
- Store(Local1, IOHI)
- Store(IOLO, IORL)
- Store(IOHI, IORH)
+ Store(Local0, IOMN)
+ Store(Local0, IOMX)
/* Interrupt */
Store(READ(0, 0x28, 0x0f), Local0)
- ShiftRight(Local0, 4, Local0)
- ShiftLeft(1, Local0, IRQL)
+ ShiftLeft(1, Local0, IRQ)
Return(RSRC)
}