08 Feb, 2016

2 commits

  • 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
     

27 Jan, 2016

1 commit

  • Atmel AIC has common structure for SMR (Source Mode Register).

    bit[6:5] Interrupt source type
    bit[2:0] Priority level
    Other bits are unused.

    To update new priority value, bit[2:0] should be cleared first and then
    new priority level can be written. However, aic_common_set_priority()
    helper clears source type bits instead of priority bits.
    This patch fixes wrong mask bit operation.

    Fixes: b1479ebb7720 "irqchip: atmel-aic: Add atmel AIC/AIC5 drivers"
    Signed-off-by: Milo Kim
    Acked-by: Boris Brezillon
    Cc: Jason Cooper
    Cc: Marc Zyngier
    Cc: Ludovic Desroches
    Cc: Nicholas Ferre
    Cc: stable@vger.kernel.org #v3.17+
    Link: http://lkml.kernel.org/r/1452669592-3401-2-git-send-email-milo.kim@ti.com
    Signed-off-by: Thomas Gleixner

    Milo Kim
     

14 Oct, 2015

1 commit

  • 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
     

07 Jan, 2015

1 commit

  • This patch makes the bitmask for AIC_SRCTYPE consistent
    with that of its valid values, and prevents the priority
    field at bits 2:0 from being clobbered by an incorrect
    AND with the AIC_SRCTYPE mask.

    Signed-off-by: Gavin Li
    Cc: # v3.17+
    Acked-by: Boris Brezillon
    Acked-by: Nicolas Ferre
    Link: https://lkml.kernel.org/r/1420598843-8409-1-git-send-email-gavinli@thegavinli.com
    Signed-off-by: Jason Cooper

    Gavin Li
     

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
     

12 Nov, 2014

1 commit

  • First of all IRQCHIP_SKIP_SET_WAKE is not a valid irq_gc_flags and thus
    should not be passed as the last argument of
    irq_alloc_domain_generic_chips.

    Then pass the correct handler (handle_fasteoi_irq) to
    irq_alloc_domain_generic_chips instead of manually re-setting it in the
    initialization loop.

    And eventually initialize default irq flags to the pseudo standard:
    IRQ_REQUEST | IRQ_PROBE | IRQ_AUTOEN.

    Signed-off-by: Boris Brezillon
    Tested-by: Kevin Hilman
    Fixes: b1479ebb77200 ("irqchip: atmel-aic: Add atmel AIC/AIC5 drivers")
    Cc: # v3.17+
    Link: https://lkml.kernel.org/r/1415712816-9202-1-git-send-email-boris.brezillon@free-electrons.com
    Signed-off-by: Jason Cooper

    Boris Brezillon
     

09 Nov, 2014

1 commit


17 Jul, 2014

3 commits

  • Provide an implementation to fix RTC irqs before enabling the irqchip.

    This was previously done in arch/arm/mach-at91/sysirq_mask.c but as we're
    trying to use standard implementation (IRQCHIP_DECLARE and automatic call
    of irqchip_init within arch/arm/kernel/irq.c) we need to do those fixups
    in the irqchip driver.

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

    Boris BREZILLON
     
  • Add irq fixup infrastructure to handle IP blocks connected to shared irqs
    that are left in an unknown state when booting the kernel.

    In this case the IP block which has not masked its interrupt and has no
    driver loaded (either because it is not compiled or because it is not
    loaded yet) might generate spurious interrupts when another IP block
    request the shared irq.

    A good example of this case is the RTC block on which register configs are
    kept even after a shutdown (if a proper VDDcore is supplied), and thus
    might generate spurious interrupts when the platform is switched on.

    Signed-off-by: Boris BREZILLON
    Link: https://lkml.kernel.org/r/1405016741-2407-2-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