Hi Nathan,

On 03/23/2012 08:50 PM, Nathan Hintz wrote:
> Changes since v1: Patch file renamed (235-bcma-enable-irq6.patch).
> 
> Signed-off-by: Nathan Hintz <nlhi...@hotmail.com>
> 
> --- /dev/null
> +++ target/linux/brcm47xx/patches-3.2/235-bcma-enable-irq6.patch
> @@ -0,0 +1,29 @@
> +--- a/drivers/bcma/driver_mips.c
> ++++ b/drivers/bcma/driver_mips.c
> +@@ -75,7 +75,7 @@
> +             return dev->core_index;
> +     flag = bcma_aread32(dev, BCMA_MIPS_OOBSELOUTA30);
> + 
> +-    return flag & 0x1F;
> ++    return (flag ? (flag & 0x1F) : 0x3F);
Why do you want to that? This results in assiningning irq 8 to some
cores where the irq is never used by us.

The Broadcom SDK does the following for our chip:

        si_setirq(sih, 1, D11_CORE_ID, 0);
        si_setirq(sih, 2, GMAC_CORE_ID, 0);
        si_setirq(sih, 3, USB20H_CORE_ID, 0);
        si_setirq(sih, 4, PCIE_CORE_ID, 0);
        si_setirq(sih, 0, CC_CORE_ID, 0);
        si_setirq(sih, 0, I2S_CORE_ID, 0);
> + }
> + 
> + /* Get the MIPS IRQ assignment for a specified device.
> +@@ -88,6 +88,8 @@
> +     unsigned int irq;
> + 
> +     irqflag = bcma_core_mips_irqflag(dev);
> ++    if (irqflag == 0x3F)
> ++            return 6;
> + 
> +     for (irq = 1; irq <= 4; irq++)
> +             if (bcma_read32(mdev, BCMA_MIPS_MIPS74K_INTMASK(irq)) &
> +@@ -244,7 +246,7 @@
> +                     core->irq = 0;
> +             else
> +                     core->irq = mips_irq + 2;
> +-            if (core->irq > 5)
> ++            if (core->irq > 6)
This looks good to me.
> +                     continue;
> +             switch (core->id.id) {
> +             case BCMA_CORE_PCI:
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to