1 #include <linux/kernel.h>
2 #include <linux/string.h>
3 #include <linux/errno.h>
5 #include "intr_remapping.h"
7 int intr_remapping_enabled;
10 int disable_sourceid_checking;
13 static struct irq_remap_ops *remap_ops;
15 static __init int setup_nointremap(char *str)
20 early_param("nointremap", setup_nointremap);
22 static __init int setup_intremap(char *str)
28 if (!strncmp(str, "on", 2))
30 else if (!strncmp(str, "off", 3))
32 else if (!strncmp(str, "nosid", 5))
33 disable_sourceid_checking = 1;
34 else if (!strncmp(str, "no_x2apic_optout", 16))
37 str += strcspn(str, ",");
44 early_param("intremap", setup_intremap);
46 void __init setup_intr_remapping(void)
48 remap_ops = &intel_irq_remap_ops;
51 int intr_remapping_supported(void)
56 if (!remap_ops || !remap_ops->supported)
59 return remap_ops->supported();
62 int __init intr_hardware_init(void)
64 if (!remap_ops || !remap_ops->hardware_init)
67 return remap_ops->hardware_init();
70 int __init intr_hardware_enable(void)
72 if (!remap_ops || !remap_ops->hardware_enable)
75 return remap_ops->hardware_enable();