svn commit: r239115 - in user/jceel/soc2012_armv6/sys: arm/lpc arm/ti dev/fdt

Jakub Wojciech Klama jceel at FreeBSD.org
Mon Aug 6 23:21:16 UTC 2012


Author: jceel
Date: Mon Aug  6 23:21:15 2012
New Revision: 239115
URL: http://svn.freebsd.org/changeset/base/239115

Log:
  Get FDT interrupt decoding back to work.

Modified:
  user/jceel/soc2012_armv6/sys/arm/lpc/lpc_intc.c
  user/jceel/soc2012_armv6/sys/arm/ti/common.c
  user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.c

Modified: user/jceel/soc2012_armv6/sys/arm/lpc/lpc_intc.c
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/lpc/lpc_intc.c	Mon Aug  6 23:15:46 2012	(r239114)
+++ user/jceel/soc2012_armv6/sys/arm/lpc/lpc_intc.c	Mon Aug  6 23:21:15 2012	(r239115)
@@ -214,11 +214,8 @@ static int
 fdt_pic_decode_ic(phandle_t node, pcell_t *intr, int *interrupt, int *trig,
     int *pol)
 {
-#if 0
-	// XXX
 	if (!fdt_is_compatible(node, "lpc,pic"))
 		return (ENXIO);
-#endif
 
 	*interrupt = fdt32_to_cpu(intr[0]);
 	*trig = INTR_TRIGGER_CONFORM;

Modified: user/jceel/soc2012_armv6/sys/arm/ti/common.c
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/ti/common.c	Mon Aug  6 23:15:46 2012	(r239114)
+++ user/jceel/soc2012_armv6/sys/arm/ti/common.c	Mon Aug  6 23:21:15 2012	(r239115)
@@ -58,10 +58,9 @@ static int
 fdt_gic_decode_ic(phandle_t node, pcell_t *intr, int *interrupt, int *trig,
     int *pol)
 {
-#if 0
 	if (!fdt_is_compatible(node, "arm,gic"))
 		return (ENXIO);
-#endif
+	
 	*interrupt = fdt32_to_cpu(intr[0]);
 	*trig = INTR_TRIGGER_CONFORM;
 	*pol = INTR_POLARITY_CONFORM;
@@ -75,7 +74,6 @@ static int
 fdt_aintc_decode_ic(phandle_t node, pcell_t *intr, int *interrupt, int *trig,
     int *pol)
 {
-
 	if (!fdt_is_compatible(node, "ti,aintc"))
 		return (ENXIO);
 

Modified: user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.c
==============================================================================
--- user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.c	Mon Aug  6 23:15:46 2012	(r239114)
+++ user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.c	Mon Aug  6 23:21:15 2012	(r239115)
@@ -585,7 +585,7 @@ fdt_intr_to_rl(phandle_t node, struct re
 	 */
 	if (OF_getprop(node, "interrupt-parent", &iph, sizeof(iph)) <= 0) {
 		debugf("no intr-parent phandle\n");
-		intr_par = 0xffffffff;
+		intr_par = 0xffffffff; /* XXX should be #defined */
 	} else {
 		iph = fdt32_to_cpu(iph);
 		intr_par = OF_instance_to_package(iph);
@@ -609,10 +609,16 @@ fdt_intr_to_rl(phandle_t node, struct re
 		interrupt = -1;
 		trig = pol = 0;
 
-		if (fdt_intr_decode(intr_par, &intr[i * intr_cells],
-		    &interrupt, &trig, &pol) != 0) {
-			rv = ENXIO;
-			goto out;
+		if (intr_par != 0xffffffff) {
+			if (fdt_intr_decode(intr_par, &intr[i * intr_cells],
+			    &interrupt, &trig, &pol) != 0) {
+				rv = ENXIO;
+				goto out;
+			}
+		} else {
+			interrupt = fdt32_to_cpu(intr[i * intr_cells]);
+			trig = INTR_TRIGGER_CONFORM;
+			pol = INTR_POLARITY_CONFORM;
 		}
 
 		if (interrupt < 0) {


More information about the svn-src-user mailing list