diff options
author | Joerg Roedel <joro@8bytes.org> | 2012-09-26 06:44:45 -0400 |
---|---|---|
committer | Joerg Roedel <joro@8bytes.org> | 2013-01-28 06:17:27 -0500 |
commit | 9b1b0e42f54bc452817f4bb6a8d939afe4f04303 (patch) | |
tree | 9b3edc203e3ac5b23c5202605f5c4a9dbe023c03 /drivers/iommu/irq_remapping.c | |
parent | 819508d302e5b6d6dacb5c3d5e4756091e32cc7d (diff) |
x86, io-apic: Move CONFIG_IRQ_REMAP code out of x86 core
Move all the code to either to the header file
asm/irq_remapping.h or to drivers/iommu/.
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 'drivers/iommu/irq_remapping.c')
-rw-r--r-- | drivers/iommu/irq_remapping.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c index ebd02bf98062..75afdf43317c 100644 --- a/drivers/iommu/irq_remapping.c +++ b/drivers/iommu/irq_remapping.c | |||
@@ -1,3 +1,4 @@ | |||
1 | #include <linux/seq_file.h> | ||
1 | #include <linux/cpumask.h> | 2 | #include <linux/cpumask.h> |
2 | #include <linux/kernel.h> | 3 | #include <linux/kernel.h> |
3 | #include <linux/string.h> | 4 | #include <linux/string.h> |
@@ -327,3 +328,27 @@ void panic_if_irq_remap(const char *msg) | |||
327 | if (irq_remapping_enabled) | 328 | if (irq_remapping_enabled) |
328 | panic(msg); | 329 | panic(msg); |
329 | } | 330 | } |
331 | |||
332 | static void ir_ack_apic_edge(struct irq_data *data) | ||
333 | { | ||
334 | ack_APIC_irq(); | ||
335 | } | ||
336 | |||
337 | static void ir_ack_apic_level(struct irq_data *data) | ||
338 | { | ||
339 | ack_APIC_irq(); | ||
340 | eoi_ioapic_irq(data->irq, data->chip_data); | ||
341 | } | ||
342 | |||
343 | static void ir_print_prefix(struct irq_data *data, struct seq_file *p) | ||
344 | { | ||
345 | seq_printf(p, " IR-%s", data->chip->name); | ||
346 | } | ||
347 | |||
348 | void irq_remap_modify_chip_defaults(struct irq_chip *chip) | ||
349 | { | ||
350 | chip->irq_print_chip = ir_print_prefix; | ||
351 | chip->irq_ack = ir_ack_apic_edge; | ||
352 | chip->irq_eoi = ir_ack_apic_level; | ||
353 | chip->irq_set_affinity = x86_io_apic_ops.set_affinity; | ||
354 | } | ||