06 Jun, 2013

1 commit

  • We add an empty irqchip_init dummy function for cases in which
    CONFIG_IRQCHIP is not used. In these cases irqchip.c is not compiled,
    but a funtion call may still be present in architecture code, that in
    runtime doesn't get hit.

    E.g. this is needed in the arch/arm/mach-shmobile/intc-r8a7740.c
    interrupt setup code where OF use and non OF us is both handled in one
    file.

    Signed-off-by: Bastian Hecht
    [horms+renesas@verge.net.au: Make non-CONFIG_IRQCHIP version static inline
    and remove trailing ';'.]
    Signed-off-by: Simon Horman

    Bastian Hecht
     

11 Jan, 2013

1 commit

  • With the recent creation of the drivers/irqchip/ directory, it is
    desirable to move irq controller drivers here. At the moment, the only
    driver here is irq-bcm2835, the driver for the irq controller found in
    the ARM BCM2835 SoC, present in Rasberry Pi systems. This irq
    controller driver was exporting its initialization function and its
    irq handling function through a header file in
    .

    When proposing to also move another irq controller driver in
    drivers/irqchip, Rob Herring raised the very valid point that moving
    things to drivers/irqchip was good in order to remove more stuff from
    arch/arm, but if it means adding gazillions of headers files in
    include/linux/irqchip/, it would not be very nice.

    So, upon the suggestion of Rob Herring and Arnd Bergmann, this commit
    introduces a small infrastructure that defines a central
    irqchip_init() function in drivers/irqchip/irqchip.c, which is meant
    to be called as the ->init_irq() callback of ARM platforms. This
    function calls of_irq_init() with an array of match strings and init
    functions generated from a special linker section.

    Note that the irq controller driver initialization function is
    responsible for setting the global handle_arch_irq() variable, so that
    ARM platforms no longer have to define the ->handle_irq field in their
    DT_MACHINE structure.

    A global header, is also added to expose the single
    irqchip_init() function to the reset of the kernel.

    A further commit moves the BCM2835 irq controller driver to this new
    small infrastructure, therefore removing the include/linux/irqchip/
    directory.

    Signed-off-by: Thomas Petazzoni
    Reviewed-by: Stephen Warren
    Reviewed-by: Rob Herring
    Acked-by: Arnd Bergmann
    [rob.herring: reword commit message to reflect use of linker sections.]
    Signed-off-by: Rob Herring

    Thomas Petazzoni