19 Jun, 2019

1 commit

  • Based on 2 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 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 #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

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

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

    Thomas Gleixner
     

23 Aug, 2017

1 commit

  • Now that we have a custom printf format specifier, convert users of
    full_name to use %pOF instead. This is preparation to remove storing
    of the full path string for each node.

    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Lee Jones
    Cc: Stefan Wahren
    Cc: Florian Fainelli
    Cc: Ray Jui
    Cc: Scott Branden
    Cc: bcm-kernel-feedback-list@broadcom.com
    Cc: Sylvain Lemieux
    Cc: Maxime Coquelin
    Cc: Chen-Yu Tsai
    Cc: Thierry Reding
    Cc: Jonathan Hunter
    Cc: Michal Simek
    Cc: "Sören Brinkmann"
    Cc: linux-rpi-kernel@lists.infradead.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-mediatek@lists.infradead.org
    Cc: linux-tegra@vger.kernel.org
    Acked-by: Eric Anholt
    Acked-by: Baruch Siach
    Acked-by: Vladimir Zapolskiy
    Acked-by: Matthias Brugger
    Acked-by: Alexandre Torgue
    Acked-by: Maxime Ripard
    Signed-off-by: Rob Herring
    Signed-off-by: Marc Zyngier

    Rob Herring
     

09 Mar, 2017

1 commit


07 Mar, 2017

1 commit

  • The 'size' variable is unsigned according to the dt-bindings.
    As this variable is used as integer in other places, create a new variable
    that allows to fix the following sparse issue (-Wtypesign):

    drivers/irqchip/irq-crossbar.c:279:52: warning: incorrect type in argument 3 (different signedness)
    drivers/irqchip/irq-crossbar.c:279:52: expected unsigned int [usertype] *out_value
    drivers/irqchip/irq-crossbar.c:279:52: got int *

    Signed-off-by: Franck Demathieu
    Signed-off-by: Marc Zyngier

    Franck Demathieu
     

06 Mar, 2017

1 commit

  • The max and entry variables are unsigned according to the dt-bindings.
    Fix following 3 sparse issues (-Wtypesign):

    drivers/irqchip/irq-crossbar.c:222:52: warning: incorrect type in argument 3 (different signedness)
    drivers/irqchip/irq-crossbar.c:222:52: expected unsigned int [usertype] *out_value
    drivers/irqchip/irq-crossbar.c:222:52: got int *

    drivers/irqchip/irq-crossbar.c:245:56: warning: incorrect type in argument 4 (different signedness)
    drivers/irqchip/irq-crossbar.c:245:56: expected unsigned int [usertype] *out_value
    drivers/irqchip/irq-crossbar.c:245:56: got int *

    drivers/irqchip/irq-crossbar.c:263:56: warning: incorrect type in argument 4 (different signedness)
    drivers/irqchip/irq-crossbar.c:263:56: expected unsigned int [usertype] *out_value
    drivers/irqchip/irq-crossbar.c:263:56: got int *

    Signed-off-by: Franck Demathieu
    Signed-off-by: Marc Zyngier

    Franck Demathieu
     

01 Mar, 2017

1 commit

  • The max and entry variables are unsigned according to the dt-bindings.
    Fix following 3 sparse issues (-Wtypesign):

    drivers/irqchip/irq-crossbar.c:222:52: warning: incorrect type in argument 3 (different signedness)
    drivers/irqchip/irq-crossbar.c:222:52: expected unsigned int [usertype] *out_value
    drivers/irqchip/irq-crossbar.c:222:52: got int *

    drivers/irqchip/irq-crossbar.c:245:56: warning: incorrect type in argument 4 (different signedness)
    drivers/irqchip/irq-crossbar.c:245:56: expected unsigned int [usertype] *out_value
    drivers/irqchip/irq-crossbar.c:245:56: got int *

    drivers/irqchip/irq-crossbar.c:263:56: warning: incorrect type in argument 4 (different signedness)
    drivers/irqchip/irq-crossbar.c:263:56: expected unsigned int [usertype] *out_value
    drivers/irqchip/irq-crossbar.c:263:56: got int *

    Signed-off-by: Franck Demathieu
    Cc: marc.zyngier@arm.com
    Cc: jason@lakedaemon.net
    Link: http://lkml.kernel.org/r/20170223094855.6546-1-fdemathieu@gmail.com
    Signed-off-by: Thomas Gleixner

    Franck Demathieu
     

11 May, 2016

1 commit

  • The firmware parameter that contains the IRQ sense bits may also contain
    other data. When return the IRQ type, bits outside of these sense bits
    should be masked. If these bits are not masked and
    irq_create_fwspec_mapping() is called to map an IRQ, then the comparison
    of the type returned from irq_domain_translate() will never match
    that returned by irq_get_trigger_type() (because this function masks the
    none sense bits) and so we will always call irq_set_irq_type() to program
    the type even if it was not really necessary.

    Currently, the downside to this is unnecessarily re-programmming the type
    but nevertheless this should be avoided.

    The Tegra LIC and TI Crossbar irqchips all have client instances (from
    reviewing the device-tree sources) where bits outside the IRQ sense bits
    are set, but do not mask these bits. Therefore, ensure these bits are
    masked for these irqchips.

    Signed-off-by: Jon Hunter
    Acked-by: Marc Zyngier
    Signed-off-by: Marc Zyngier

    Jon Hunter
     

14 Oct, 2015

2 commits

  • Since we now have a generic data structure to express an
    interrupt specifier, convert all hierarchical irqchips that
    are OF based to use a fwnode_handle as part of their alloc
    and xlate (which becomes translate) callbacks.

    As most of these drivers have dependencies (they exchange IRQ
    specifiers), change them all in a single, massive patch...

    Signed-off-by: Marc Zyngier
    Reviewed-and-tested-by: Hanjun Guo
    Tested-by: Lorenzo Pieralisi
    Cc:
    Cc: Tomasz Nowicki
    Cc: Suravee Suthikulpanit
    Cc: Graeme Gregory
    Cc: Jake Oshins
    Cc: Jiang Liu
    Cc: Jason Cooper
    Cc: Rafael J. Wysocki
    Link: http://lkml.kernel.org/r/1444737105-31573-6-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     
  • The struct irq_domain contains a "struct device_node *" field
    (of_node) that is almost the only link between the irqdomain
    and the device tree infrastructure.

    In order to prepare for the removal of that field, convert all
    users to use irq_domain_get_of_node() instead.

    Signed-off-by: Marc Zyngier
    Reviewed-and-tested-by: Hanjun Guo
    Tested-by: Lorenzo Pieralisi
    Cc:
    Cc: Tomasz Nowicki
    Cc: Suravee Suthikulpanit
    Cc: Graeme Gregory
    Cc: Jake Oshins
    Cc: Jiang Liu
    Cc: Jason Cooper
    Cc: Rafael J. Wysocki
    Link: http://lkml.kernel.org/r/1444737105-31573-2-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

02 Sep, 2015

1 commit

  • Pull irq updates from Thomas Gleixner:
    "This updated pull request does not contain the last few GIC related
    patches which were reported to cause a regression. There is a fix
    available, but I let it breed for a couple of days first.

    The irq departement provides:

    - new infrastructure to support non PCI based MSI interrupts
    - a couple of new irq chip drivers
    - the usual pile of fixlets and updates to irq chip drivers
    - preparatory changes for removal of the irq argument from interrupt
    flow handlers
    - preparatory changes to remove IRQF_VALID"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits)
    irqchip/imx-gpcv2: IMX GPCv2 driver for wakeup sources
    irqchip: Add bcm2836 interrupt controller for Raspberry Pi 2
    irqchip: Add documentation for the bcm2836 interrupt controller
    irqchip/bcm2835: Add support for being used as a second level controller
    irqchip/bcm2835: Refactor handle_IRQ() calls out of MAKE_HWIRQ
    PCI: xilinx: Fix typo in function name
    irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance
    irqchip/gic: Only allow the primary GIC to set the CPU map
    PCI/MSI: pci-xgene-msi: Consolidate chained IRQ handler install/remove
    unicore32/irq: Prepare puv3_gpio_handler for irq argument removal
    tile/pci_gx: Prepare trio_handle_level_irq for irq argument removal
    m68k/irq: Prepare irq handlers for irq argument removal
    C6X/megamode-pic: Prepare megamod_irq_cascade for irq argument removal
    blackfin: Prepare irq handlers for irq argument removal
    arc/irq: Prepare idu_cascade_isr for irq argument removal
    sparc/irq: Use access helper irq_data_get_affinity_mask()
    sparc/irq: Use helper irq_data_get_irq_handler_data()
    parisc/irq: Use access helper irq_data_get_affinity_mask()
    mn10300/irq: Use access helper irq_data_get_affinity_mask()
    irqchip/i8259: Prepare i8259_irq_dispatch for irq argument removal
    ...

    Linus Torvalds
     

20 Aug, 2015

3 commits

  • The TI crossbar irqchip doesn't provides any facility to configure the
    wakeup sources, but the conversion to hierarchical irqdomains set the
    irq_set_wake callback to irq_chip_set_wake_parent. The parent chip
    (OMAP wakeupgen) has no irq_set_wake function either so the call will
    fail with -ENOSYS. As a result the irq_set_wake() call in the resume
    path will trigger an 'Unbalanced wake disable' warning.

    Before the conversion the GIC irqchip was the top level irqchip and
    correctly flagged with IRQCHIP_SKIP_SET_WAKE.

    Restore the correct behaviour by removing the irq_set_type callback
    from the crossbar irqchip and set the IRQCHIP_SKIP_SET_WAKE flag which
    lets the irq_set_irq_wake() call from the driver succeed.

    [ tglx: Massaged changelog ]

    Fixes: 783d31863fb8 ('irqchip: crossbar: Convert dra7 crossbar...')
    Signed-off-by: Grygorii Strashko
    Cc: Sudeep Holla
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc: stable@vger.kernel.org # 4.1
    Link: http://lkml.kernel.org/r/1439554830-19502-7-git-send-email-grygorii.strashko@ti.com
    Signed-off-by: Thomas Gleixner

    Grygorii Strashko
     
  • The ARM GIC requires that all interrupts which are not used as a
    wakeup source have to be masked during suspend.

    The conversion of the crossbar irqchip to hierarchical irq domains
    failed to mark the crossbar irqchip with the IRQCHIP_MASK_ON_SUSPEND
    flag and therefor broke the suspend requirement of the GIC.

    Before the conversion the flags were visible because the GIC was the
    top level irqchip. After the conversion the crossbar irqchip is the
    top level irq chip whose flags are evaluated in suspend_device_irq().
    As the flag is not set the masking of the non-wakeup irqs is not
    invoked which breaks suspend.

    Add the IRQCHIP_MASK_ON_SUSPEND flag to the crossbar irqchip, so the
    GIC interrupts get masked properly.

    [ tglx: Massaged changelog ]

    Fixes: 783d31863fb8 ('irqchip: crossbar: Convert dra7 crossbar...')
    Signed-off-by: Grygorii Strashko
    Cc: Sudeep Holla
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc: stable@vger.kernel.org # 4.1
    Link: http://lkml.kernel.org/r/1439554830-19502-6-git-send-email-grygorii.strashko@ti.com
    Signed-off-by: Thomas Gleixner

    Grygorii Strashko
     
  • The conversion of the crossbar irqchip to hierarchical irq domains
    failed to provide a mechanism to properly set the trigger type of an
    interrupt.

    The crossbar irq chip itself has no mechanism and therefor no
    irq_set_type() callback. The code before the conversion relayed the
    trigger configuration directly to the underlying GIC.

    Restore the correct behaviour by setting the crossbar irq_set_type
    callback to irq_chip_set_type_parent(). This propagates the
    set_trigger() call to the underlying GIC irqchip.

    [ tglx: Massaged changelog ]

    Fixes: 783d31863fb8 ('irqchip: crossbar: Convert dra7 crossbar...')
    Signed-off-by: Grygorii Strashko
    Cc: Sudeep Holla
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc: stable@vger.kernel.org # 4.1
    Link: http://lkml.kernel.org/r/1439554830-19502-4-git-send-email-grygorii.strashko@ti.com
    Signed-off-by: Thomas Gleixner

    Grygorii Strashko
     

12 Jul, 2015

1 commit

  • 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
     

15 Mar, 2015

1 commit

  • Support for the TI crossbar used on the DRA7 family of chips
    is implemented as an ugly hack on the side of the GIC.

    Converting it to stacked domains makes it slightly more
    palatable, as it results in a cleanup.

    Unfortunately, as the DT bindings failed to acknowledge the
    fact that this is actually yet another interrupt controller
    (the third, actually), we have yet another breakage. Oh well.

    Acked-by: Tony Lindgren
    Signed-off-by: Marc Zyngier
    Link: https://lkml.kernel.org/r/1426088629-15377-3-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Jason Cooper

    Marc Zyngier
     

18 Aug, 2014

1 commit


01 Jul, 2014

15 commits


29 Apr, 2014

1 commit

  • We are allocating the size of a pointer and not the size of the data.
    This will lead to memory corruption.

    There isn't actually a "cb_device" struct, btw. The code is only able
    to compile because GCC knows that all pointers are the same size.

    Fixes: 96ca848ef7ea ('DRIVERS: IRQCHIP: CROSSBAR: Add support for Crossbar IP')

    Signed-off-by: Dan Carpenter
    Acked-by: Sricharan R
    Cc: Grant Likely
    Cc: Rob Herring
    Link: http://lkml.kernel.org/r/20140403072134.GA14286@mwanda
    Signed-off-by: Thomas Gleixner

    Dan Carpenter
     

05 Feb, 2014

1 commit

  • Some socs have a large number of interrupts requests to service
    the needs of its many peripherals and subsystems. All of the
    interrupt lines from the subsystems are not needed at the same
    time, so they have to be muxed to the irq-controller appropriately.
    In such places a interrupt controllers are preceded by an CROSSBAR
    that provides flexibility in muxing the device requests to the controller
    inputs.

    This driver takes care a allocating a free irq and then configuring the
    crossbar IP as a part of the mpu's irqchip callbacks. crossbar_init should
    be called right before the irqchip_init, so that it is setup to handle the
    irqchip callbacks.

    Cc: Thomas Gleixner
    Cc: Linus Walleij
    Cc: Santosh Shilimkar
    Cc: Russell King
    Cc: Tony Lindgren
    Cc: Rajendra Nayak
    Cc: Marc Zyngier
    Cc: Grant Likely
    Cc: Rob Herring
    Signed-off-by: Sricharan R
    Acked-by: Kumar Gala (for DT binding portion)
    Acked-by: Santosh Shilimkar
    Acked-by: Linus Walleij
    Acked-by: Thomas Gleixner

    Sricharan R