12 Oct, 2016

1 commit

  • Kernel source files need not include explicitly
    because the top Makefile forces to include it with:

    -include $(srctree)/include/linux/kconfig.h

    This commit removes explicit includes except the following:

    * arch/s390/include/asm/facilities_src.h
    * tools/testing/radix-tree/linux/kernel.h

    These two are used for host programs.

    Link: http://lkml.kernel.org/r/1473656164-11929-1-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     

13 Jun, 2016

1 commit

  • The probe functions in this driver is not exported or declared
    so make it static to fix the following warning:

    drivers/irqchip/irq-brcmstb-l2.c:115:12: warning: symbol 'brcmstb_l2_intc_of_init' was not declared. Should it be static?

    Signed-off-by: Ben Dooks
    Link: https://lkml.kernel.org/r/1465408940-16414-1-git-send-email-ben.dooks@codethink.co.uk
    Signed-off-by: Jason Cooper

    Ben Dooks
     

16 Sep, 2015

1 commit

  • Most interrupt flow handlers do not use the irq argument. Those few
    which use it can retrieve the irq number from the irq descriptor.

    Remove the argument.

    Search and replace was done with coccinelle and some extra helper
    scripts around it. Thanks to Julia for her help!

    Signed-off-by: Thomas Gleixner
    Cc: Julia Lawall
    Cc: Jiang Liu

    Thomas Gleixner
     

17 Jul, 2015

1 commit


12 Jul, 2015

2 commits

  • Chained irq handlers usually set up handler data as well. We now have
    a function to set both under irq_desc->lock. Replace the two calls
    with one.

    Search and conversion was done with coccinelle:

    @@
    expression E1, E2, E3;
    @@
    (
    -if (irq_set_handler_data(E1, E2) != 0)
    - BUG();
    |
    -irq_set_handler_data(E1, E2);
    )
    -irq_set_chained_handler(E1, E3);
    +irq_set_chained_handler_and_data(E1, E3, E2);

    @@
    expression E1, E2, E3;
    @@
    (
    -if (irq_set_handler_data(E1, E2) != 0)
    - BUG();
    ...
    |
    -irq_set_handler_data(E1, E2);
    ...
    )
    -irq_set_chained_handler(E1, E3);
    +irq_set_chained_handler_and_data(E1, E3, E2);

    Reported-by: Russell King
    Signed-off-by: Thomas Gleixner
    Cc: Julia Lawall
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: linux-mips@linux-mips.org

    Thomas Gleixner
     
  • The IRQCHIP_DECLARE macro moved to to 'include/linux/irqchip.h', so
    the local irqchip.h became an empty shell, which solely includes
    include/linux/irqchip.h

    Include the global header in all irqchip drivers instead of the local
    header, so we can remove it.

    Signed-off-by: Joel Porquet
    Cc: vgupta@synopsys.com
    Cc: monstr@monstr.eu
    Cc: ralf@linux-mips.org
    Cc: jason@lakedaemon.net
    Link: http://lkml.kernel.org/r/1882096.X39jVG8e0D@joel-zenbook
    Signed-off-by: Thomas Gleixner

    Joel Porquet
     

01 Apr, 2015

1 commit

  • Wakeable interrupts might be pending at boot/init time, because wakeup
    interrupts might have triggered a resume from S5. So don't clear such
    wakeups.

    This means that any driver which requests a wakeable interrupt bit
    should be prepared to handle an interrupt as soon as they call
    request_irq(). (This is technically already the correct development
    practice, but some drivers probably expect not to receive interrupts
    until they have performed some I/O.)

    Signed-off-by: Brian Norris
    Signed-off-by: Kevin Cernekee
    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: arnd@arndb.de
    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/8840/
    Signed-off-by: Ralf Baechle

    Brian Norris
     

11 Dec, 2014

1 commit

  • Pull irq core updates from Thomas Gleixner:
    "This is the first (boring) part of irq updates:

    - support for big endian I/O accessors in the generic irq chip

    - cleanup of brcmstb/bcm7120 drivers so they can be reused for non
    ARM SoCs

    - the usual pile of fixes and updates for the various ARM irq chips"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    irqchip: dw-apb-ictl: Add PM support
    irqchip: dw-apb-ictl: Enable IRQ_GC_MASK_CACHE_PER_TYPE
    irqchip: dw-apb-ictl: Always use use {readl|writel}_relaxed
    ARM: orion: convert the irq_reg_{readl,writel} calls to the new API
    irqchip: atmel-aic: Add missing entry for rm9200 irq fixups
    irqchip: atmel-aic: Rename at91sam9_aic_irq_fixup for naming consistency
    irqchip: atmel-aic: Add specific irq fixup function for sam9g45 and sam9rl
    irqchip: atmel-aic: Add irq fixups for at91sam926x SoCs
    irqchip: atmel-aic: Add irq fixup for RTT block
    irqchip: brcmstb-l2: Convert driver to use irq_reg_{readl,writel}
    irqchip: bcm7120-l2: Convert driver to use irq_reg_{readl,writel}
    irqchip: bcm7120-l2: Decouple driver from brcmstb-l2
    irqchip: bcm7120-l2: Extend driver to support 64+ bit controllers
    irqchip: bcm7120-l2: Use gc->mask_cache to simplify suspend/resume functions
    irqchip: bcm7120-l2: Fix missing nibble in gc->unused mask
    irqchip: bcm7120-l2: Make sure all register accesses use base+offset
    irqchip: bcm7120-l2, brcmstb-l2: Remove ARM Kconfig dependency
    irqchip: bcm7120-l2: Eliminate bad IRQ check
    irqchip: brcmstb-l2: Eliminate dependency on ARM code
    genirq: Generic chip: Add big endian I/O accessors
    ...

    Linus Torvalds
     

26 Nov, 2014

1 commit


09 Nov, 2014

2 commits

  • This effectively converts the __raw_ accessors to the non-__raw_
    equivalents. To handle BE, we pass IRQ_GC_BE_IO, similar to what was
    done in irq-bcm7120-l2.c.

    Since irq_reg_writel now takes an irq_chip_generic argument, writel must
    be used for the initial hardware reset in the probe function. But that
    operation never needs endian swapping, so it's probably not a big deal.

    Signed-off-by: Kevin Cernekee
    Acked-by: Arnd Bergmann
    Link: https://lkml.kernel.org/r/1415342669-30640-15-git-send-email-cernekee@gmail.com
    Signed-off-by: Jason Cooper

    Kevin Cernekee
     
  • The irq-brcmstb-l2 driver has a single dependency on the ARM code, the
    do_bad_IRQ macro. Expand this macro in-place so that the driver can be
    built on non-ARM platforms.

    Signed-off-by: Kevin Cernekee
    Acked-by: Arnd Bergmann
    Acked-by: Florian Fainelli
    Link: https://lkml.kernel.org/r/1415342669-30640-6-git-send-email-cernekee@gmail.com
    Signed-off-by: Jason Cooper

    Kevin Cernekee
     

21 Jun, 2014

1 commit

  • The driver was configuring the interrupt handler for the Level-2
    interrupts to be "level" triggered while they are in fact "edge"
    triggered. Fix this by using the correct handler.

    Reported-by: Brian Norris
    Signed-off-by: Florian Fainelli
    Link: https://lkml.kernel.org/r/1402337102-19428-1-git-send-email-f.fainelli@gmail.com
    Signed-off-by: Jason Cooper

    Florian Fainelli
     

27 May, 2014

1 commit

  • This patch adds support for the Level-2 interrupt controller hardware
    found in Broadcom Set Top Box System-on-a-Chip devices. This interrupt
    controller is implemented using the generic IRQ chip driver with
    separate enable and disable registers.

    Signed-off-by: Brian Norris
    Link: https://lkml.kernel.org/r/1400892054-24457-2-git-send-email-f.fainelli@gmail.com
    Signed-off-by: Florian Fainelli
    Signed-off-by: Jason Cooper

    Florian Fainelli