diff options
Diffstat (limited to 'include/asm-x86_64/apic.h')
-rw-r--r-- | include/asm-x86_64/apic.h | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/include/asm-x86_64/apic.h b/include/asm-x86_64/apic.h index a731be2204d2..9c96a0a8d1bd 100644 --- a/include/asm-x86_64/apic.h +++ b/include/asm-x86_64/apic.h | |||
@@ -49,7 +49,8 @@ static __inline unsigned int apic_read(unsigned long reg) | |||
49 | 49 | ||
50 | static __inline__ void apic_wait_icr_idle(void) | 50 | static __inline__ void apic_wait_icr_idle(void) |
51 | { | 51 | { |
52 | while ( apic_read( APIC_ICR ) & APIC_ICR_BUSY ); | 52 | while (apic_read( APIC_ICR ) & APIC_ICR_BUSY) |
53 | cpu_relax(); | ||
53 | } | 54 | } |
54 | 55 | ||
55 | static inline void ack_APIC_irq(void) | 56 | static inline void ack_APIC_irq(void) |
@@ -79,30 +80,23 @@ extern void init_apic_mappings (void); | |||
79 | extern void smp_local_timer_interrupt (struct pt_regs * regs); | 80 | extern void smp_local_timer_interrupt (struct pt_regs * regs); |
80 | extern void setup_boot_APIC_clock (void); | 81 | extern void setup_boot_APIC_clock (void); |
81 | extern void setup_secondary_APIC_clock (void); | 82 | extern void setup_secondary_APIC_clock (void); |
82 | extern void setup_apic_nmi_watchdog (void); | ||
83 | extern int reserve_lapic_nmi(void); | ||
84 | extern void release_lapic_nmi(void); | ||
85 | extern void disable_timer_nmi_watchdog(void); | ||
86 | extern void enable_timer_nmi_watchdog(void); | ||
87 | extern void nmi_watchdog_tick (struct pt_regs * regs, unsigned reason); | ||
88 | extern int APIC_init_uniprocessor (void); | 83 | extern int APIC_init_uniprocessor (void); |
89 | extern void disable_APIC_timer(void); | 84 | extern void disable_APIC_timer(void); |
90 | extern void enable_APIC_timer(void); | 85 | extern void enable_APIC_timer(void); |
91 | extern void clustered_apic_check(void); | 86 | extern void clustered_apic_check(void); |
92 | 87 | ||
93 | extern void nmi_watchdog_default(void); | 88 | extern void setup_APIC_extened_lvt(unsigned char lvt_off, unsigned char vector, |
94 | extern int setup_nmi_watchdog(char *); | 89 | unsigned char msg_type, unsigned char mask); |
95 | 90 | ||
96 | extern unsigned int nmi_watchdog; | 91 | #define K8_APIC_EXT_LVT_BASE 0x500 |
97 | #define NMI_DEFAULT -1 | 92 | #define K8_APIC_EXT_INT_MSG_FIX 0x0 |
98 | #define NMI_NONE 0 | 93 | #define K8_APIC_EXT_INT_MSG_SMI 0x2 |
99 | #define NMI_IO_APIC 1 | 94 | #define K8_APIC_EXT_INT_MSG_NMI 0x4 |
100 | #define NMI_LOCAL_APIC 2 | 95 | #define K8_APIC_EXT_INT_MSG_EXT 0x7 |
101 | #define NMI_INVALID 3 | 96 | #define K8_APIC_EXT_LVT_ENTRY_THRESHOLD 0 |
102 | 97 | ||
103 | extern int disable_timer_pin_1; | 98 | extern int disable_timer_pin_1; |
104 | 99 | ||
105 | extern void setup_threshold_lvt(unsigned long lvt_off); | ||
106 | 100 | ||
107 | void smp_send_timer_broadcast_ipi(void); | 101 | void smp_send_timer_broadcast_ipi(void); |
108 | void switch_APIC_timer_to_ipi(void *cpumask); | 102 | void switch_APIC_timer_to_ipi(void *cpumask); |