diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-25 10:09:31 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-25 10:18:52 -0500 |
commit | a906fdaacca49917d83e5032dfc31f694249ad10 (patch) | |
tree | 6b00061e1db64f5f2767c129b666ee25487fd59e /arch/x86/include | |
parent | 4a66b1d95ad8baf6ab884a1c64461449b463eb78 (diff) |
x86: dt: Cleanup local apic setup
Up to now we force enable the local apic in the devicetree setup
uncoditionally and set smp_found_config unconditionally to 1 when a
devicetree blob is available. This breaks, when local apic is disabled
in the Kconfig.
Make it consistent by initializing device tree explicitely before
smp_get_config() so a non lapic configuration could be used as well.
To be functional that would require to implement PIT as an interrupt
host, but the only user of this code until now is ce4100 which
requires apics to be available. So we leave this up to those who need
it.
Tested-by: Sebastian Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/include')
-rw-r--r-- | arch/x86/include/asm/apic.h | 2 | ||||
-rw-r--r-- | arch/x86/include/asm/prom.h | 6 |
2 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 3c896946f4cc..4afe512120a9 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h | |||
@@ -240,7 +240,7 @@ extern void setup_boot_APIC_clock(void); | |||
240 | extern void setup_secondary_APIC_clock(void); | 240 | extern void setup_secondary_APIC_clock(void); |
241 | extern int APIC_init_uniprocessor(void); | 241 | extern int APIC_init_uniprocessor(void); |
242 | extern void enable_NMI_through_LVT0(void); | 242 | extern void enable_NMI_through_LVT0(void); |
243 | extern int apic_force_enable(void); | 243 | extern int apic_force_enable(unsigned long addr); |
244 | 244 | ||
245 | /* | 245 | /* |
246 | * On 32bit this is mach-xxx local | 246 | * On 32bit this is mach-xxx local |
diff --git a/arch/x86/include/asm/prom.h b/arch/x86/include/asm/prom.h index f58361ba7357..971e0b46446e 100644 --- a/arch/x86/include/asm/prom.h +++ b/arch/x86/include/asm/prom.h | |||
@@ -28,9 +28,8 @@ extern int of_ioapic; | |||
28 | extern u64 initial_dtb; | 28 | extern u64 initial_dtb; |
29 | extern void add_dtb(u64 data); | 29 | extern void add_dtb(u64 data); |
30 | extern void x86_add_irq_domains(void); | 30 | extern void x86_add_irq_domains(void); |
31 | void x86_dtb_find_config(void); | ||
32 | void x86_dtb_get_config(unsigned int unused); | ||
33 | void __cpuinit x86_of_pci_init(void); | 31 | void __cpuinit x86_of_pci_init(void); |
32 | void x86_dtb_init(void); | ||
34 | 33 | ||
35 | static inline struct device_node *pci_device_to_OF_node(struct pci_dev *pdev) | 34 | static inline struct device_node *pci_device_to_OF_node(struct pci_dev *pdev) |
36 | { | 35 | { |
@@ -46,8 +45,7 @@ static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) | |||
46 | static inline void add_dtb(u64 data) { } | 45 | static inline void add_dtb(u64 data) { } |
47 | static inline void x86_add_irq_domains(void) { } | 46 | static inline void x86_add_irq_domains(void) { } |
48 | static inline void x86_of_pci_init(void) { } | 47 | static inline void x86_of_pci_init(void) { } |
49 | #define x86_dtb_find_config x86_init_noop | 48 | static inline void x86_dtb_init(void) { } |
50 | #define x86_dtb_get_config x86_init_uint_noop | ||
51 | #define of_ioapic 0 | 49 | #define of_ioapic 0 |
52 | #endif | 50 | #endif |
53 | 51 | ||