mirror of
https://github.com/torvalds/linux.git
synced 2024-11-02 02:01:29 +00:00
08a543ad33
This patch adds irq_domain infrastructure for translating from hardware irq numbers to linux irqs. This is particularly important for architectures adding device tree support because the current implementation (excluding PowerPC and SPARC) cannot handle translation for more than a single interrupt controller. irq_domain supports device tree translation for any number of interrupt controllers. This patch converts x86, Microblaze, ARM and MIPS to use irq_domain for device tree irq translation. x86 is untested beyond compiling it, irq_domain is enabled for MIPS and Microblaze, but the old behaviour is preserved until the core code is modified to actually register an irq_domain yet. On ARM it works and is required for much of the new ARM device tree board support. PowerPC has /not/ been converted to use this new infrastructure. It is still missing some features before it can replace the virq infrastructure already in powerpc (see documentation on irq_domain_map/unmap for details). Followup patches will add the missing pieces and migrate PowerPC to use irq_domain. SPARC has its own method of managing interrupts from the device tree and is unaffected by this change. Acked-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
33 lines
747 B
C
33 lines
747 B
C
/*
|
|
* arch/arm/include/asm/prom.h
|
|
*
|
|
* Copyright (C) 2009 Canonical Ltd. <jeremy.kerr@canonical.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
*/
|
|
#ifndef __ASMARM_PROM_H
|
|
#define __ASMARM_PROM_H
|
|
|
|
#ifdef CONFIG_OF
|
|
|
|
#include <asm/setup.h>
|
|
#include <asm/irq.h>
|
|
|
|
extern struct machine_desc *setup_machine_fdt(unsigned int dt_phys);
|
|
extern void arm_dt_memblock_reserve(void);
|
|
|
|
#else /* CONFIG_OF */
|
|
|
|
static inline struct machine_desc *setup_machine_fdt(unsigned int dt_phys)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
static inline void arm_dt_memblock_reserve(void) { }
|
|
|
|
#endif /* CONFIG_OF */
|
|
#endif /* ASMARM_PROM_H */
|