diff options
author | rodrigc <rodrigc@FreeBSD.org> | 2014-06-23 22:37:49 +0000 |
---|---|---|
committer | rodrigc <rodrigc@FreeBSD.org> | 2014-06-23 22:37:49 +0000 |
commit | 8d5996c444fb11052d450b9c2f0507195874a564 (patch) | |
tree | e19c2558df4564dfeb331f31cf3e92e116ab977e | |
parent | 360ded26576497de493c3acb4a118c97502aa2fa (diff) | |
download | FreeBSD-src-8d5996c444fb11052d450b9c2f0507195874a564.zip FreeBSD-src-8d5996c444fb11052d450b9c2f0507195874a564.tar.gz |
MFC r263795:
Strict value checking will cause problem.
Bay trail DN2820FYKH is supported on Linux but does not work on FreeBSD.
This behaviour is bug-compatible with Linux-3.13.5.
References:
http://d.hatena.ne.jp/syuu1228/20140326
http://lxr.linux.no/linux+v3.13.5/arch/x86/kernel/acpi/boot.c#L1094
Submitted by: syuu
PR: 187966
-rw-r--r-- | sys/x86/acpica/madt.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/x86/acpica/madt.c b/sys/x86/acpica/madt.c index 41237ff..ef36276 100644 --- a/sys/x86/acpica/madt.c +++ b/sys/x86/acpica/madt.c @@ -306,10 +306,11 @@ interrupt_polarity(UINT16 IntiFlags, UINT8 Source) case ACPI_MADT_POLARITY_ACTIVE_HIGH: return (INTR_POLARITY_HIGH); case ACPI_MADT_POLARITY_ACTIVE_LOW: - return (INTR_POLARITY_LOW); + break; default: - panic("Bogus Interrupt Polarity"); + printf("WARNING: Bogus Interrupt Polarity. Assume POLALITY LOW"); } + return (INTR_POLARITY_LOW); } static enum intr_trigger @@ -325,10 +326,13 @@ interrupt_trigger(UINT16 IntiFlags, UINT8 Source) case ACPI_MADT_TRIGGER_EDGE: return (INTR_TRIGGER_EDGE); case ACPI_MADT_TRIGGER_LEVEL: - return (INTR_TRIGGER_LEVEL); + break; default: - panic("Bogus Interrupt Trigger Mode"); + printf("WARNING: Bogus Interrupt Trigger Mode. Assume Level trigger."); + + break; } + return (INTR_TRIGGER_LEVEL); } /* |