svn commit: r263795 - head/sys/x86/acpica

Takanori Watanabe takawata at FreeBSD.org
Thu Mar 27 06:36:39 UTC 2014


Author: takawata
Date: Thu Mar 27 06:36:38 2014
New Revision: 263795
URL: http://svnweb.freebsd.org/changeset/base/263795

Log:
  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

Modified:
  head/sys/x86/acpica/madt.c

Modified: head/sys/x86/acpica/madt.c
==============================================================================
--- head/sys/x86/acpica/madt.c	Thu Mar 27 06:08:07 2014	(r263794)
+++ head/sys/x86/acpica/madt.c	Thu Mar 27 06:36:38 2014	(r263795)
@@ -306,10 +306,11 @@ interrupt_polarity(UINT16 IntiFlags, UIN
 	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, UINT
 	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);
 }
 
 /*


More information about the svn-src-all mailing list