diff options
author | Joerg Roedel <joro@8bytes.org> | 2012-09-26 12:44:40 +0200 |
---|---|---|
committer | Joerg Roedel <joro@8bytes.org> | 2013-01-28 12:17:26 +0100 |
commit | a6a25dd3270944f3c4182ffcbe0f60482471e849 (patch) | |
tree | 371c11c26abba1b56b203b61c3ae1a5f98af60c0 /arch/x86/include | |
parent | 373dd7a27f2469020e7b56744cf47b82986b9749 (diff) |
x86, io_apic: Convert setup_ioapic_entry to function pointer
This pointer is changed to a different function when IRQ
remapping is enabled.
Signed-off-by: Joerg Roedel <joro@8bytes.org>
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'arch/x86/include')
-rw-r--r-- | arch/x86/include/asm/io_apic.h | 5 | ||||
-rw-r--r-- | arch/x86/include/asm/x86_init.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h index a744cbbe02de..71f5f0865e7c 100644 --- a/arch/x86/include/asm/io_apic.h +++ b/arch/x86/include/asm/io_apic.h @@ -149,6 +149,10 @@ extern int io_apic_set_pci_routing(struct device *dev, int irq, void setup_IO_APIC_irq_extra(u32 gsi); extern void ioapic_insert_resources(void); +extern int native_setup_ioapic_entry(int, struct IO_APIC_route_entry *, + unsigned int, int, + struct io_apic_irq_attr *); + int io_apic_setup_irq_pin_once(unsigned int irq, int node, struct io_apic_irq_attr *attr); extern int save_ioapic_entries(void); @@ -232,6 +236,7 @@ static inline void disable_ioapic_support(void) { } #define native_disable_io_apic NULL #define native_io_apic_print_entries NULL #define native_ioapic_set_affinity NULL +#define native_setup_ioapic_entry NULL #endif #endif /* _ASM_X86_IO_APIC_H */ diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h index 20d9f97c14a2..17da29cf1a47 100644 --- a/arch/x86/include/asm/x86_init.h +++ b/arch/x86/include/asm/x86_init.h @@ -190,6 +190,8 @@ struct x86_msi_ops { int (*setup_hpet_msi)(unsigned int irq, unsigned int id); }; +struct IO_APIC_route_entry; +struct io_apic_irq_attr; struct irq_data; struct cpumask; @@ -203,6 +205,9 @@ struct x86_io_apic_ops { int (*set_affinity)(struct irq_data *data, const struct cpumask *mask, bool force); + int (*setup_entry)(int irq, struct IO_APIC_route_entry *entry, + unsigned int destination, int vector, + struct io_apic_irq_attr *attr); }; extern struct x86_init_ops x86_init; |