diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2011-02-22 15:07:44 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-23 16:27:54 -0500 |
commit | bcc7c1244fcfd852b9f4590935491057e1cab9dd (patch) | |
tree | 4b68fc51466e8b42f343d6f26db0f1200d595c50 /arch/x86/include | |
parent | 9079b35364e75ce6b968a179f861d2f819f33e61 (diff) |
x86: ioapic: Add OF bindings for IO_APIC
ioapic_xlate provides a translation from the information in device tree
to ioapic related informations. This includes
- obtaining hw irq which is the vector number "=> pin number + gsi"
- obtaining type (level/edge/..)
- programming this information into ioapic
ioapic_add_ofnode adds an irq_domain based on informations from the device
tree. This information (irq_domain) is required in order to map a device to
its proper interrupt controller.
[ tglx: Adapted to the io_apic changes, which let us move that whole code
to devicetree.c ]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Cc: sodaville@linutronix.de
Cc: devicetree-discuss@lists.ozlabs.org
LKML-Reference: <1298405266-1624-10-git-send-email-bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/include')
-rw-r--r-- | arch/x86/include/asm/prom.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/include/asm/prom.h b/arch/x86/include/asm/prom.h index 8fcd519a44d..ae50131ad76 100644 --- a/arch/x86/include/asm/prom.h +++ b/arch/x86/include/asm/prom.h | |||
@@ -27,6 +27,7 @@ | |||
27 | extern int of_ioapic; | 27 | extern int of_ioapic; |
28 | extern u64 initial_dtb; | 28 | extern u64 initial_dtb; |
29 | extern void add_dtb(u64 data); | 29 | extern void add_dtb(u64 data); |
30 | extern void x86_add_irq_domains(void); | ||
30 | void x86_dtb_find_config(void); | 31 | void x86_dtb_find_config(void); |
31 | void x86_dtb_get_config(unsigned int unused); | 32 | void x86_dtb_get_config(unsigned int unused); |
32 | void add_interrupt_host(struct irq_domain *ih); | 33 | void add_interrupt_host(struct irq_domain *ih); |
@@ -44,6 +45,7 @@ static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) | |||
44 | 45 | ||
45 | #else | 46 | #else |
46 | static inline void add_dtb(u64 data) { } | 47 | static inline void add_dtb(u64 data) { } |
48 | static inline void x86_add_irq_domains(void) { } | ||
47 | static inline void x86_of_pci_init(void) { } | 49 | static inline void x86_of_pci_init(void) { } |
48 | #define x86_dtb_find_config x86_init_noop | 50 | #define x86_dtb_find_config x86_init_noop |
49 | #define x86_dtb_get_config x86_init_uint_noop | 51 | #define x86_dtb_get_config x86_init_uint_noop |