Date: Mon, 6 Aug 2012 23:21:16 +0000 (UTC) From: Jakub Wojciech Klama <jceel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r239115 - in user/jceel/soc2012_armv6/sys: arm/lpc arm/ti dev/fdt Message-ID: <201208062321.q76NLGWm094506@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208062321.q76NLGWm094506>