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
     

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
     

19 May, 2015

2 commits

  • Pull in the branch which can be consumed by ARM to build their changes
    on top.

    Thomas Gleixner
     
  • Support the NVIC interrupt controller as node parent of the MSCM
    interrupt router. On the dual-core variants of Vybird (VF6xx), the
    NVIC interrupt controller is used by the Cortex-M4. To support
    running Linux on this core too, MSCM needs NVIC parent support too.

    Signed-off-by: Stefan Agner
    Cc: marc.zyngier@arm.com
    Cc: linux@arm.linux.org.uk
    Cc: u.kleine-koenig@pengutronix.de
    Cc: olof@lixom.net
    Cc: arnd@arndb.de
    Cc: daniel.lezcano@linaro.org
    Cc: mark.rutland@arm.com
    Cc: pawel.moll@arm.com
    Cc: robh+dt@kernel.org
    Cc: ijc+devicetree@hellion.org.uk
    Cc: galak@codeaurora.org
    Cc: mcoquelin.stm32@gmail.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: shawn.guo@linaro.org
    Cc: kernel@pengutronix.de
    Cc: jason@lakedaemon.net
    Link: http://lkml.kernel.org/r/1431769465-26867-6-git-send-email-stefan@agner.ch
    Signed-off-by: Thomas Gleixner

    Stefan Agner
     

05 May, 2015

1 commit

  • of_io_request_and map returns an error pointer, but the current code assumes
    that on error the returned pointer will be NULL.

    Obviously, that makes the check completely useless. Change the test to actually
    check for the proper error code.

    Signed-off-by: Maxime Ripard
    Cc: Jason Cooper
    Link: http://lkml.kernel.org/r/1430579006-32702-7-git-send-email-maxime.ripard@free-electrons.com
    Signed-off-by: Thomas Gleixner

    Maxime Ripard
     

08 Mar, 2015

1 commit

  • This adds support for Vybrid's interrupt router. On VF6xx models,
    almost all peripherals can be used by either of the two CPU's,
    the Cortex-A5 or the Cortex-M4. The interrupt router routes the
    peripheral interrupts to the configured CPU.

    This IRQ chip driver configures the interrupt router to route
    the requested interrupt to the CPU the kernel is running on.
    The driver makes use of the irqdomain hierarchy support. The
    parent is given by the device tree. This should be one of the
    two possible parents either ARM GIC or the ARM NVIC interrupt
    controller. The latter is currently not yet supported.

    Note that there is no resource control mechnism implemented to
    avoid concurrent access of the same peripheral. The user needs
    to make sure to use device trees which assign the peripherals
    orthogonally. However, this driver warns the user in case the
    interrupt is already configured for the other CPU. This provides
    a poor man's resource controller.

    Acked-by: Marc Zyngier
    Signed-off-by: Stefan Agner
    Link: https://lkml.kernel.org/r/1425249689-32354-2-git-send-email-stefan@agner.ch
    Signed-off-by: Jason Cooper

    Stefan Agner