On Wed, Mar 25, 2015 at 01:20:44PM +0000, Marc Zyngier wrote: > On 24/03/15 17:58, Lorenzo Pieralisi wrote: > > 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. > > This looks like the right thing to do. I definitely like the sanity > checking that has been added here. > > FWIW: Acked-by: Marc Zyngier <marc.zyng...@arm.com>
Thank you, I think it makes it easier to add stacked IRQ domains support later (ie sooner) and by code inspection I suspect x86 can make some use of this code too with a bit of refactoring. Lorenzo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/