From 0bd5dff58cb43b307bcb02ac6baa436a525a5025 Mon Sep 17 00:00:00 2001 From: Christoph Grenz Date: Thu, 4 Jul 2013 02:54:04 +0200 Subject: [PATCH] w83627hf/acpi: Fix type error in floppy drive enumeration code The enumeration method tried to evaluate an one-byte OperationRegion instead of a field in this OperationRegion, which resulted in an AE_TYPE error at runtime. Indexing the OperationRegion with a single field fixes this error. Change-Id: I15dd7aa6ecafb3a215d165d2b721003446815025 Signed-off-by: Christoph Grenz Reviewed-on: http://review.coreboot.org/3603 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/superio/winbond/w83627hf/acpi/superio.asl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/superio/winbond/w83627hf/acpi/superio.asl b/src/superio/winbond/w83627hf/acpi/superio.asl index ff95dfcaba..2e0c01ed43 100644 --- a/src/superio/winbond/w83627hf/acpi/superio.asl +++ b/src/superio/winbond/w83627hf/acpi/superio.asl @@ -350,6 +350,10 @@ Device(SIO) { DATA, 8, } OperationRegion (FIO2, SystemIO, 0x3F7, 0x01) + Field (FIO2, ByteAcc, NoLock, Preserve) + { + SIFR, 8 + } CreateByteField (_FDE, 3, FD1) CreateByteField (_FDE, 7, FD2) @@ -359,25 +363,25 @@ Device(SIO) { Store(One, ACT1) Store(0, SELE) Sleep(0x64) - If (FIO2) { Store (One, FD1) } + If (SIFR) { Store (One, FD1) } Store(Zero, ACT1) Store(One, ACT2) Store(1, SELE) Sleep(0x64) - If (FIO2) { Store (One, FD2) } + If (SIFR) { Store (One, FD2) } Store(Zero, ACT2) Store(One, ACT3) Store(2, SELE) Sleep(0x64) - If (FIO2) { Store (One, FD3) } + If (SIFR) { Store (One, FD3) } Store(Zero, ACT3) Store(One, ACT4) Store(3, SELE) Sleep(0x64) - If (FIO2) { Store (One, FD4) } + If (SIFR) { Store (One, FD4) } Store(Zero, ACT4) Store(Zero, SELE) #endif