diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-08-29 11:47:33 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-02-19 19:12:33 -0500 |
commit | ab3b37937e8f4fb38dc9780b7bc3fd3c5195cca3 (patch) | |
tree | d1d96406b6bfcfb93fcc71ea825c7f5c53cf9f06 /arch/x86/include/asm | |
parent | b72d0db9dd41da1f2ec6274b03e8909583c64e41 (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.h | 4 | ||||
-rw-r--r-- | arch/x86/include/asm/x86_init.h | 2 |
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 440124f1224..46511c5be45 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 */ |
112 | extern int __init pci_acpi_init(void); | 112 | extern int __init pci_acpi_init(void); |
113 | extern int __init pcibios_irq_init(void); | 113 | extern void __init pcibios_irq_init(void); |
114 | extern int __init pcibios_init(void); | 114 | extern int __init pcibios_init(void); |
115 | extern int pci_legacy_init(void); | 115 | extern 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 f145d843f03..34f61cd56f3 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 | */ |
105 | struct x86_init_pci { | 106 | struct x86_init_pci { |
106 | int (*init)(void); | 107 | int (*init)(void); |
108 | void (*init_irq)(void); | ||
107 | }; | 109 | }; |
108 | 110 | ||
109 | /** | 111 | /** |