26 Apr, 2016

1 commit


16 Sep, 2015

2 commits

  • set_irq_flags is ARM specific with custom flags which have genirq
    equivalents. Convert drivers to use the genirq interfaces directly, so we
    can kill off set_irq_flags. The translation of flags is as follows:

    IRQF_VALID -> !IRQ_NOREQUEST
    IRQF_PROBE -> !IRQ_NOPROBE
    IRQF_NOAUTOEN -> IRQ_NOAUTOEN

    For IRQs managed by an irqdomain, the irqdomain core code handles clearing
    and setting IRQ_NOREQUEST already, so there is no need to do this in
    .map() functions and we can simply remove the set_irq_flags calls. Some
    users also modify IRQ_NOPROBE and this has been maintained although it
    is not clear that is really needed. There appears to be a great deal of
    blind copy and paste of this code.

    Signed-off-by: Rob Herring
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Russell King
    Cc: Jason Cooper
    Cc: Kukjin Kim
    Cc: Krzysztof Kozlowski
    Cc: Stephen Warren
    Cc: Lee Jones
    Cc: Alexander Shiyan
    Cc: Maxime Ripard
    Cc: linux-rpi-kernel@lists.infradead.org
    Cc: linux-samsung-soc@vger.kernel.org
    Link: http://lkml.kernel.org/r/1440889285-5637-3-git-send-email-robh@kernel.org
    Signed-off-by: Thomas Gleixner

    Rob Herring
     
  • 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: Thomas Gleixner
    Cc: Jason Cooper

    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
     

05 May, 2015

1 commit

  • The irq_domain_ops are not modified by the driver and the irqdomain core
    code accepts pointer to a const data.

    Signed-off-by: Krzysztof Kozlowski
    Cc: Jason Cooper
    Cc: Kukjin Kim
    Cc: Stephen Warren
    Cc: Lee Jones
    Cc: Matthias Brugger
    Cc: Maxime Ripard
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-rpi-kernel@lists.infradead.org
    Cc: linux-mediatek@lists.infradead.org
    Link: http://lkml.kernel.org/r/1430139264-4362-2-git-send-email-k.kozlowski.k@gmail.com
    Signed-off-by: Thomas Gleixner

    Krzysztof Kozlowski
     

03 Sep, 2014

1 commit


25 Jun, 2014

2 commits

  • The secondary controller on ARM Versatile AB and PB is similar to
    other ARM platforms, but has a pass-thru register to connect some
    interrupts directly to interrupt inputs on the primary interrupt
    controller. The PIC_ENABLES register needs to be configured for
    proper operation when the matching node is arm,versatile-sic. Add the
    the necessary IRQCHIP_DECLARE as well.

    Signed-off-by: Rob Herring
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Arnd Bergmann
    Acked-by: Linus Walleij

    Rob Herring
     
  • Add support for initialization using IRQCHIP_DECLARE. This also requires
    that the controller initialization set the handle_irq function pointer
    itself when it is a primary controller.

    Signed-off-by: Rob Herring
    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Acked-by: Linus Walleij

    Rob Herring
     

04 Jan, 2014

1 commit


09 Jun, 2013

1 commit

  • The irqdomain core will report a log message for any attempted map call
    that fails unless the error code is -EPERM. This patch changes the
    Versatile irq controller drivers to use -EPERM because it is normal for
    a subset of the IRQ inputs to be marked as reserved on the various
    Versatile platforms.

    Signed-off-by: Grant Likely

    Grant Likely
     

27 Mar, 2013

1 commit

  • Commit 2389d5014342e9535aad212d0c68d439aaf534ba ("ARM: plat-versatile:
    move FPGA irq driver to drivers/irqchip") changed Kconfig symbol
    PLAT_VERSATILE_FPGA_IRQ_NR to VERSATILE_FPGA_IRQ_NR. It forgot to change
    one reference to the related macro in a printk.

    Signed-off-by: Paul Bolle
    Signed-off-by: Jiri Kosina

    Paul Bolle
     

01 Dec, 2012

1 commit

  • This one was just creating noise like this:

    drivers/irqchip/irq-versatile-fpga.c: In function 'fpga_irq_of_init':
    drivers/irqchip/irq-versatile-fpga.c:180:24: warning: unused variable 'f'

    Reported-by: Russell King
    Signed-off-by: Linus Walleij
    Signed-off-by: Olof Johansson

    Linus Walleij
     

05 Nov, 2012

1 commit