31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 655 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

29 Apr, 2019

1 commit

  • It is useful to print which interrupt controllers are registered in the
    system and which parent IRQ they use, especially given that L2 interrupt
    controllers do not call request_irq() on their parent interrupt and do
    not appear under /proc/interrupts for that reason.

    We used to print the base register address virtual address which had
    little value, use %pOF to print the path to the Device Tree node which
    maps to the physical address more easily and is what people need to
    troubleshoot systems.

    Signed-off-by: Florian Fainelli
    Signed-off-by: Marc Zyngier

    Florian Fainelli
     

21 Mar, 2019

1 commit

  • Fix sparse warnings:

    drivers/irqchip/irq-brcmstb-l2.c:278:12: warning:
    symbol 'brcmstb_l2_edge_intc_of_init' was not declared. Should it be static?
    drivers/irqchip/irq-brcmstb-l2.c:285:12: warning:
    symbol 'brcmstb_l2_lvl_intc_of_init' was not declared. Should it be static?

    Signed-off-by: YueHaibing
    Reviewed-by: Florian Fainelli
    Signed-off-by: Marc Zyngier

    YueHaibing
     

21 Feb, 2019

1 commit

  • Using the irq_gc_lock/irq_gc_unlock functions in the suspend and
    resume functions creates the opportunity for a deadlock during
    suspend, resume, and shutdown. Using the irq_gc_lock_irqsave/
    irq_gc_unlock_irqrestore variants prevents this possible deadlock.

    Cc: stable@vger.kernel.org
    Fixes: 7f646e92766e2 ("irqchip: brcmstb-l2: Add Broadcom Set Top Box Level-2 interrupt controller")
    Signed-off-by: Doug Berger
    Signed-off-by: Florian Fainelli
    [maz: tidied up $SUBJECT]
    Signed-off-by: Marc Zyngier

    Doug Berger
     

16 Feb, 2018

1 commit

  • Since commit ad67b74d2469 ("printk: hash addresses printed with %p")
    pointers are being hashed when printed. Displaying the virtual memory at
    bootup time is not helpful. so delete the prints.

    Acked-by: Florian Fainelli
    Signed-off-by: Jaedon Shin
    Signed-off-by: Marc Zyngier

    Jaedon Shin
     

19 Oct, 2017

3 commits

  • Add the initialization of the generic irq chip for the BCM7271 L2
    interrupt controller. This controller only supports level
    interrupts and uses the "brcm,bcm7271-l2-intc" compatibility
    string.

    Acked-by: Rob Herring
    Reviewed-by: Florian Fainelli
    Signed-off-by: Doug Berger
    Signed-off-by: Marc Zyngier

    Doug Berger
     
  • Added register block offsets to the brcmstb_l2_intc_data structure
    for the status and mask registers to support reading the active
    interupts in an abstracted way. It seems like an irq_chip method
    should have been provided for this, but it's not there yet.

    Abstracted the implementation of the handler, suspend, and resume
    functions to not use any hard coded register offsets.

    Reviewed-by: Florian Fainelli
    Signed-off-by: Doug Berger
    Signed-off-by: Marc Zyngier

    Doug Berger
     
  • Saving the generic chip pointer in the brcmstb_l2_intc_data prevents
    the need to call irq_get_domain_generic_chip(). Also don't need to
    save parent_irq and base there since local variables in the
    brcmstb_l2_intc_of_init() function are just as good.

    The handle_edge_irq flow or chained_irq_enter takes care of the
    acknowledgment of the interrupt so it is redundant to clear it in
    brcmstb_l2_intc_irq_handle().

    irq_linear_revmap() is a fast path equivalent of irq_find_mapping()
    that is appropriate to use for domain controllers of this type.

    Defining irq_mask_ack is slightly more efficient than just
    implementing irq_mask and irq_ack separately.

    Reviewed-by: Florian Fainelli
    Signed-off-by: Doug Berger
    Signed-off-by: Marc Zyngier

    Doug Berger
     

07 Aug, 2017

1 commit

  • The Broadcom STB platforms support S5 and we allow specific hardware
    wake-up events to take us out of this state. Because we were not
    defining an irq_pm_shutdown() function pointer, we would not be
    correctly masking non-wakeup events, which would result in spurious
    wake-ups from sources that were not explicitly configured for wake-up.

    Fixes: 7f646e92766e ("irqchip: brcmstb-l2: Add Broadcom Set Top Box Level-2 interrupt controller")
    Acked-by: Gregory Fong
    Signed-off-by: Florian Fainelli
    Signed-off-by: Marc Zyngier

    Florian Fainelli
     

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