• Lorenzo Pieralisi's avatar
    ACPI: move arm64 GSI IRQ model to generic GSI IRQ layer · d8f4f161
    Lorenzo Pieralisi authored
    The code deployed to implement GSI linux IRQ numbers mapping on arm64 turns
    out to be generic enough so that it can be moved to ACPI core code along
    with its respective config option ACPI_GENERIC_GSI selectable on
    architectures that can reuse the same code.
    
    Current ACPI IRQ mapping code is not integrated in the kernel IRQ domain
    infrastructure, in particular there is no way to look-up the
    IRQ domain associated with a particular interrupt controller, so this
    first version of GSI generic code carries out the GSI<->IRQ mapping relying
    on the IRQ default domain which is supposed to be always set on a
    specific architecture in case the domain structure passed to
    irq_create/find_mapping() functions is missing.
    
    This patch moves the arm64 acpi functions that implement the gsi mappings:
    
    acpi_gsi_to_irq()
    acpi_register_gsi()
    acpi_unregister_gsi()
    
    to ACPI core code. Since the generic GSI<->domain mapping is based on IRQ
    domains, it can be extended as soon as a way to map an interrupt
    controller to an IRQ domain is implemented for ACPI in the IRQ domain
    layer.
    
    x86 and ia64 code for GSI mappings cannot rely on the generic GSI
    layer at present for legacy reasons, so they do not select the
    ACPI_GENERIC_GSI config options and keep relying on their arch
    specific GSI mapping layer.
    
    Cc: Jiang Liu <jiang.liu@linux.intel.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
    Acked-by: default avatarHanjun Guo <hanjun.guo@linaro.org>
    Acked-by: default avatarWill Deacon <will.deacon@arm.com>
    Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    d8f4f161
acpi.c 7.92 KB