01 Oct, 2015

2 commits

  • Now that we have a basic infrastructure to register irqchips and
    call them on discovery of a matching entry in MADT, convert the
    GIC driver to this new probing method.

    It ends up being a code deletion party, which is a rather good thing.

    Signed-off-by: Marc Zyngier
    Acked-by: Catalin Marinas
    Reviewed-by: Hanjun Guo
    Acked-by: Thomas Gleixner
    Tested-by: Hanjun Guo
    Signed-off-by: Rafael J. Wysocki

    Marc Zyngier
     
  • DT enjoys a rather nice probing infrastructure for irqchips, while
    ACPI is so far stuck into a very distant past.

    This patch introduces a declarative API, allowing irqchips to be
    self-contained and be called when a particular entry is matched
    in the MADT table.

    Signed-off-by: Marc Zyngier
    Acked-by: Catalin Marinas
    Reviewed-by: Hanjun Guo
    Acked-by: Thomas Gleixner
    Tested-by: Hanjun Guo
    Signed-off-by: Rafael J. Wysocki

    Marc Zyngier
     

26 Mar, 2015

1 commit

  • ACPI kernel uses MADT table for proper GIC initialization. It needs to
    parse GIC related subtables, collect CPU interface and distributor
    addresses and call driver initialization function (which is hardware
    abstraction agnostic). In a similar way, FDT initialize GICv1/2.

    NOTE: This commit allow to initialize GICv1/2 basic functionality.
    While now simple GICv2 init call is used, any further GIC features
    require generic infrastructure for proper ACPI irqchip initialization.
    That mechanism and stacked irqdomains to support GICv2 MSI/virtualization
    extension, GICv3/4 and its ITS are considered as next steps.

    CC: Jason Cooper
    CC: Marc Zyngier
    CC: Thomas Gleixner
    Tested-by: Suravee Suthikulpanit
    Tested-by: Yijing Wang
    Tested-by: Mark Langsdorf
    Tested-by: Jon Masters
    Tested-by: Timur Tabi
    Tested-by: Robert Richter
    Acked-by: Robert Richter
    Acked-by: Marc Zyngier
    Acked-by: Jason Cooper
    Reviewed-by: Grant Likely
    Signed-off-by: Tomasz Nowicki
    Signed-off-by: Hanjun Guo
    Signed-off-by: Will Deacon

    Tomasz Nowicki
     

21 May, 2014

1 commit


12 Mar, 2014

1 commit

  • The "irqchip.h" include here is not needed as the only thing in
    irqchip.h is IRQCHIP_DECLARE which this file doesn't use. Drop
    it.

    Reported-by: Jiri Kosina
    Signed-off-by: Stephen Boyd
    Link: http://lkml.kernel.org/r/531F7765.40207@codeaurora.org
    Signed-off-by: Thomas Gleixner

    Stephen Boyd
     

06 Mar, 2014

1 commit

  • drivers/irqchip/irqchip.c:27:13: warning: symbol 'irqchip_init'
    was not declared. Should it be static?

    Signed-off-by: Stephen Boyd
    Cc: trivial@kernel.org
    Link: http://lkml.kernel.org/r/1393981281-25553-1-git-send-email-sboyd@codeaurora.org
    Signed-off-by: Thomas Gleixner

    Stephen Boyd
     

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