04 Jul, 2017

1 commit


12 Apr, 2017

1 commit


13 Sep, 2016

1 commit

  • aic5_irq_domain_xlate() and aic_irq_domain_xlate() take the generic chip
    lock without disabling interrupts, which can lead to a deadlock if an
    interrupt occurs while the lock is held in one of these functions.

    Replace irq_gc_{lock,unlock}() calls by
    irq_gc_{lock_irqsave,unlock_irqrestore}() ones to prevent this bug from
    happening.

    Fixes: b1479ebb7720 ("irqchip: atmel-aic: Add atmel AIC/AIC5 drivers")
    Signed-off-by: Boris Brezillon
    Acked-by: Marc Zyngier
    Cc: Jason Cooper
    Cc: Nicolas Ferre
    Cc: stable@vger.kernel.org
    Cc: Alexandre Belloni
    Link: http://lkml.kernel.org/r/1473775109-4192-2-git-send-email-boris.brezillon@free-electrons.com
    Signed-off-by: Thomas Gleixner

    Boris Brezillon
     

08 Feb, 2016

3 commits

  • AIC5 priority value is updated twice -
    in aic_common_set_priority() and when updating AT91_AIC5_SMR.
    Variable, 'smr' has updated priority value (intspec[2]) in the first step,
    so no need to update it again in the second step.

    Signed-off-by: Milo Kim
    Acked-by: Boris Brezillon
    Cc: Jason Cooper
    Cc: Marc Zyngier
    Cc: Ludovic Desroches
    Cc: Nicholas Ferre
    Link: http://lkml.kernel.org/r/1452669592-3401-4-git-send-email-milo.kim@ti.com
    Signed-off-by: Thomas Gleixner

    Milo Kim
     
  • Priority validation is not necessary because aic_common_irq_domain_xlate()
    already handles it. With this removal, return type can be changed to void.

    Signed-off-by: Milo Kim
    Acked-by: Boris Brezillon
    Cc: Jason Cooper
    Cc: Marc Zyngier
    Cc: Ludovic Desroches
    Cc: Nicholas Ferre
    Link: http://lkml.kernel.org/r/1452669592-3401-3-git-send-email-milo.kim@ti.com
    Signed-off-by: Thomas Gleixner

    Milo Kim
     
  • AIC IRQ fixup is handled in each IRQ chip driver.
    It can be moved into aic_common_of_init() before returning the result.
    Then, aic_common_irq_fixup() can be changed to static type.

    Signed-off-by: Milo Kim
    Acked-by: Boris Brezillon
    Cc: Jason Cooper
    Cc: Marc Zyngier
    Cc: Ludovic Desroches
    Cc: Nicholas Ferre
    Link: http://lkml.kernel.org/r/1452669592-3401-1-git-send-email-milo.kim@ti.com
    Signed-off-by: Thomas Gleixner

    Milo Kim
     

22 Sep, 2015

3 commits

  • Use irq_get_domain_generic_chip() to select the base chip.

    Signed-off-by: Ludovic Desroches
    Acked-by: Nicholas Ferre
    Acked-by: Boris Brezillon
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Link: http://lkml.kernel.org/r/1442843173-2390-3-git-send-email-ludovic.desroches@atmel.com
    Signed-off-by: Thomas Gleixner

    Ludovic Desroches
     
  • To avoid errors, use an explicit variable name when accessing the 'base'
    generic chip.

    Signed-off-by: Ludovic Desroches
    Acked-by: Nicholas Ferre
    Acked-by: Boris Brezillon
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Link: http://lkml.kernel.org/r/1442843173-2390-2-git-send-email-ludovic.desroches@atmel.com
    Signed-off-by: Thomas Gleixner

    Ludovic Desroches
     
  • When masking/unmasking interrupts, mask_cache is updated and used later
    for suspend/resume. Unfortunately, it always was the mask_cache
    associated with the first irq chip which was updated. So when performing
    resume, only irqs 0-31 could be enabled.

    Fixes: b1479ebb7720 ("irqchip: atmel-aic: Add atmel AIC/AIC5 drivers")
    Signed-off-by: Ludovic Desroches
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc: stable@vger.kernel.org #3.18
    Link: http://lkml.kernel.org/r/1442843173-2390-1-git-send-email-ludovic.desroches@atmel.com
    Signed-off-by: Thomas Gleixner

    Ludovic Desroches
     

27 Jul, 2015

1 commit

  • Init data marked const should be annotated with __initconst for
    correctness and not __initdata. And for those already __initconst,
    they should be qualified as const at the compiler level too.
    This also fixes LTO builds that otherwise fail with section mismatch
    errors.

    Signed-off-by: Nicolas Pitre
    Cc: Jason Cooper
    Link: http://lkml.kernel.org/r/alpine.LFD.2.20.1507241511551.1806@knanqh.ubzr
    Signed-off-by: Thomas Gleixner

    Nicolas Pitre
     

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
     

18 Jun, 2015

1 commit

  • Add sama5d2 support to irq-atmel-aic5.

    Signed-off-by: Nicolas Ferre
    Cc: Boris BREZILLON
    Cc: Alexandre Belloni
    Cc: Ludovic Desroches
    Cc: Jason Cooper
    Cc:
    Link: http://lkml.kernel.org/r/1434632855-27272-1-git-send-email-nicolas.ferre@atmel.com
    Signed-off-by: Thomas Gleixner

    Nicolas Ferre
     

09 Nov, 2014

1 commit

  • Pass in the irq_chip_generic struct so we can use different readl/writel
    settings for each irqchip driver, when appropriate. Compute
    (gc->reg_base + reg_offset) in the helper function because this is pretty
    much what all callers want to do anyway.

    Compile-tested using the following configurations:

    at91_dt_defconfig (CONFIG_ATMEL_AIC_IRQ=y)
    sama5_defconfig (CONFIG_ATMEL_AIC5_IRQ=y)
    sunxi_defconfig (CONFIG_ARCH_SUNXI=y)

    tb10x (ARC) is untested.

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

    Kevin Cernekee
     

02 Oct, 2014

1 commit


14 Sep, 2014

2 commits


03 Sep, 2014

1 commit


17 Jul, 2014

2 commits

  • Define SoCs that need irq fixups before enabling the AIC irqchip.

    At the moment we're only fixing irq generated by the RTC block, but other
    fixups will be added later on.

    Signed-off-by: Boris BREZILLON
    Link: https://lkml.kernel.org/r/1405016741-2407-4-git-send-email-boris.brezillon@free-electrons.com
    Signed-off-by: Jason Cooper

    Boris BREZILLON
     
  • Add AIC (Advanced Interrupt Controller) and AIC5 (AIC5 is an evolution of
    the AIC block) drivers.
    Put common code in irq-atmel-aic-common.c/.h so that both driver can access
    shared functions (this will ease maintenance).

    These drivers are only compatible with dt enabled board and replace the
    old implementation found in arch/arm/mach-at91/irq.c.

    Signed-off-by: Boris BREZILLON
    Acked-by: Nicolas Ferre
    Link: https://lkml.kernel.org/r/1405012462-766-4-git-send-email-boris.brezillon@free-electrons.com
    Signed-off-by: Jason Cooper

    Boris BREZILLON