• Kevin Cernekee's avatar
    IRQCHIP: bcm7120-l2: Refactor driver for arbitrary IRQEN/IRQSTAT offsets · 5b5468cf
    Kevin Cernekee authored
    Currently the driver assumes that REG_BASE+0x00 is the IRQ enable mask,
    and REG_BASE+0x04 is the IRQ status mask.  This is true on BCM3384 and
    BCM7xxx, but it is not true for some of the controllers found on BCM63xx
    chips.  So we will change a couple of key assumptions:
    
     - Don't assume that both the IRQEN and IRQSTAT registers will be
       covered by a single ioremap() operation.
    
     - Don't assume any particular ordering (IRQSTAT might show up before
       IRQEN on some chips).
    
     - For an L2 controller with >=64 IRQs, don't assume that every
       IRQEN/IRQSTAT pair will use the same register spacing.
    
    This patch changes the "plumbing" but doesn't yet provide a way for users
    to instantiate a controller with arbitrary IRQEN/IRQSTAT offsets.
    Signed-off-by: default avatarKevin Cernekee <cernekee@gmail.com>
    Cc: f.fainelli@gmail.com
    Cc: jaedon.shin@gmail.com
    Cc: abrestic@chromium.org
    Cc: tglx@linutronix.de
    Cc: jason@lakedaemon.net
    Cc: jogo@openwrt.org
    Cc: computersforpeace@gmail.com
    Cc: linux-mips@linux-mips.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8841/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    5b5468cf
irq-bcm7120-l2.c 7.02 KB