aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/pci
diff options
context:
space:
mode:
authorStefan Assmann <sassmann@suse.de>2008-07-15 07:48:55 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-18 13:31:19 -0400
commit41b9eb264c8407655db57b60b4457fe1b2ec9977 (patch)
tree873262f099a1b5b437de11fad5d7bb1070d9f828 /arch/x86/pci
parent3e370b29d35fb01bfb92c2814d6f79bf6a2cb970 (diff)
x86, pci: introduce config option for pci reroute quirks (was: [PATCH 0/3] Boot IRQ quirks for Broadcom and AMD/ATI)
This is against linux-2.6-tip, branch pci-ioapic-boot-irq-quirks. From: Stefan Assmann <sassmann@suse.de> Subject: Introduce config option for pci reroute quirks The config option X86_REROUTE_FOR_BROKEN_BOOT_IRQS is introduced to enable (or disable) the redirection of the interrupt handler to the boot interrupt line by default. Depending on the existence of interrupt masking / threaded interrupt handling in the kernel (vanilla, rt, ...) and the maturity of the rerouting patch, users can enable or disable the redirection by default. This means that the reroute quirk can be applied to any kernel without changing it. Interrupt sharing could be increased if this option is enabled. However this option is vital for threaded interrupt handling, as done by the RT kernel. It should simplify the consolidation with the RT kernel. The option can be overridden by either pci=ioapicreroute or pci=noioapicreroute. Signed-off-by: Stefan Assmann <sassmann@suse.de> Signed-off-by: Olaf Dabrunz <od@suse.de> Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Cc: Jon Masters <jonathan@jonmasters.org> Cc: Ihno Krumreich <ihno@suse.de> Cc: Sven Dietrich <sdietrich@suse.de> Cc: Daniel Gollub <dgollub@suse.de> Cc: Felix Foerster <ffoerster@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/pci')
-rw-r--r--arch/x86/pci/common.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index 1485a26ddce..bb1a01f089e 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -24,7 +24,11 @@ unsigned int pci_early_dump_regs;
24static int pci_bf_sort; 24static int pci_bf_sort;
25int pci_routeirq; 25int pci_routeirq;
26int noioapicquirk; 26int noioapicquirk;
27#ifdef CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
28int noioapicreroute = 0;
29#else
27int noioapicreroute = 1; 30int noioapicreroute = 1;
31#endif
28int pcibios_last_bus = -1; 32int pcibios_last_bus = -1;
29unsigned long pirq_table_addr; 33unsigned long pirq_table_addr;
30struct pci_bus *pci_root_bus; 34struct pci_bus *pci_root_bus;
@@ -528,6 +532,10 @@ char * __devinit pcibios_setup(char *str)
528 if (noioapicreroute != -1) 532 if (noioapicreroute != -1)
529 noioapicreroute = 0; 533 noioapicreroute = 0;
530 return NULL; 534 return NULL;
535 } else if (!strcmp(str, "noioapicreroute")) {
536 if (noioapicreroute != -1)
537 noioapicreroute = 1;
538 return NULL;
531 } 539 }
532 return str; 540 return str;
533} 541}