aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2009-08-29 11:47:33 -0400
committerH. Peter Anvin <hpa@zytor.com>2010-02-19 19:12:33 -0500
commitab3b37937e8f4fb38dc9780b7bc3fd3c5195cca3 (patch)
treed1d96406b6bfcfb93fcc71ea825c7f5c53cf9f06 /arch/x86/include/asm
parentb72d0db9dd41da1f2ec6274b03e8909583c64e41 (diff)
x86: Add pci_init_irq to x86_init
Moorestown wants to reuse pcibios_init_irq but needs to provide its own implementation of pci_enable_irq. After we distangled the init we can move the init_irq call to x86_init and remove the pci_enable_irq != NULL check in pcibios_init_irq. pci_enable_irq is compile time initialized to pirq_enable_irq and the special cases which override it (visws and acpi) set the x86_init function pointer to noop. That allows MSRT to override pci_enable_irq and otherwise run pcibios_init_irq unmodified. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> LKML-Reference: <43F901BD926A4E43B106BF17856F07559FB80CFF@orsmsx508.amr.corp.intel.com> Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Jacob Pan <jacob.jun.pan@intel.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r--arch/x86/include/asm/pci_x86.h4
-rw-r--r--arch/x86/include/asm/x86_init.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index 440124f1224d..46511c5be456 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
@@ -110,7 +110,7 @@ extern void __init dmi_check_skip_isa_align(void);
110 110
111/* some common used subsys_initcalls */ 111/* some common used subsys_initcalls */
112extern int __init pci_acpi_init(void); 112extern int __init pci_acpi_init(void);
113extern int __init pcibios_irq_init(void); 113extern void __init pcibios_irq_init(void);
114extern int __init pcibios_init(void); 114extern int __init pcibios_init(void);
115extern int pci_legacy_init(void); 115extern int pci_legacy_init(void);
116 116
@@ -187,6 +187,8 @@ static inline void mmio_config_writel(void __iomem *pos, u32 val)
187# else 187# else
188# define x86_default_pci_init pci_legacy_init 188# define x86_default_pci_init pci_legacy_init
189# endif 189# endif
190# define x86_default_pci_init_irq pcibios_irq_init
190#else 191#else
191# define x86_default_pci_init NULL 192# define x86_default_pci_init NULL
193# define x86_default_pci_init_irq NULL
192#endif 194#endif
diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
index f145d843f03d..34f61cd56f3b 100644
--- a/arch/x86/include/asm/x86_init.h
+++ b/arch/x86/include/asm/x86_init.h
@@ -101,9 +101,11 @@ struct x86_init_iommu {
101 /* 101 /*
102 * struct x86_init_pci - platform specific pci init functions 102 * struct x86_init_pci - platform specific pci init functions
103 * @init: platform specific pci init 103 * @init: platform specific pci init
104 * @init_irq: platform specific pci irq init
104 */ 105 */
105struct x86_init_pci { 106struct x86_init_pci {
106 int (*init)(void); 107 int (*init)(void);
108 void (*init_irq)(void);
107}; 109};
108 110
109/** 111/**