Commit 306e440d authored by Ingo Molnar's avatar Ingo Molnar Committed by Linus Torvalds

[PATCH] x86: i8253/i8259A lock cleanup

Introduce proper declarations for i8253_lock and i8259A_lock.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent bcbda35c
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <asm/desc.h> #include <asm/desc.h>
#include <asm/arch_hooks.h> #include <asm/arch_hooks.h>
#include <asm/hpet.h> #include <asm/hpet.h>
#include <asm/i8253.h>
#include <mach_apic.h> #include <mach_apic.h>
...@@ -879,7 +880,6 @@ void __init init_apic_mappings(void) ...@@ -879,7 +880,6 @@ void __init init_apic_mappings(void)
*/ */
static unsigned int __devinit get_8254_timer_count(void) static unsigned int __devinit get_8254_timer_count(void)
{ {
extern spinlock_t i8253_lock;
unsigned long flags; unsigned long flags;
unsigned int count; unsigned int count;
......
...@@ -228,10 +228,10 @@ ...@@ -228,10 +228,10 @@
#include <asm/system.h> #include <asm/system.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/desc.h> #include <asm/desc.h>
#include <asm/i8253.h>
#include "io_ports.h" #include "io_ports.h"
extern spinlock_t i8253_lock;
extern unsigned long get_cmos_time(void); extern unsigned long get_cmos_time(void);
extern void machine_real_restart(unsigned char *, int); extern void machine_real_restart(unsigned char *, int);
...@@ -1169,7 +1169,6 @@ static void reinit_timer(void) ...@@ -1169,7 +1169,6 @@ static void reinit_timer(void)
{ {
#ifdef INIT_TIMER_AFTER_SUSPEND #ifdef INIT_TIMER_AFTER_SUSPEND
unsigned long flags; unsigned long flags;
extern spinlock_t i8253_lock;
spin_lock_irqsave(&i8253_lock, flags); spin_lock_irqsave(&i8253_lock, flags);
/* set the clock to 100 Hz */ /* set the clock to 100 Hz */
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include <asm/smp.h> #include <asm/smp.h>
#include <asm/desc.h> #include <asm/desc.h>
#include <asm/timer.h> #include <asm/timer.h>
#include <asm/i8259.h>
#include <mach_apic.h> #include <mach_apic.h>
...@@ -1566,7 +1567,6 @@ void print_all_local_APICs (void) ...@@ -1566,7 +1567,6 @@ void print_all_local_APICs (void)
void /*__init*/ print_PIC(void) void /*__init*/ print_PIC(void)
{ {
extern spinlock_t i8259A_lock;
unsigned int v; unsigned int v;
unsigned long flags; unsigned long flags;
......
...@@ -68,7 +68,8 @@ ...@@ -68,7 +68,8 @@
#include "io_ports.h" #include "io_ports.h"
extern spinlock_t i8259A_lock; #include <asm/i8259.h>
int pit_latch_buggy; /* extern */ int pit_latch_buggy; /* extern */
#include "do_timer.h" #include "do_timer.h"
...@@ -85,6 +86,8 @@ extern unsigned long wall_jiffies; ...@@ -85,6 +86,8 @@ extern unsigned long wall_jiffies;
DEFINE_SPINLOCK(rtc_lock); DEFINE_SPINLOCK(rtc_lock);
EXPORT_SYMBOL(rtc_lock); EXPORT_SYMBOL(rtc_lock);
#include <asm/i8253.h>
DEFINE_SPINLOCK(i8253_lock); DEFINE_SPINLOCK(i8253_lock);
EXPORT_SYMBOL(i8253_lock); EXPORT_SYMBOL(i8253_lock);
......
...@@ -17,9 +17,9 @@ ...@@ -17,9 +17,9 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/fixmap.h> #include <asm/fixmap.h>
#include "io_ports.h" #include <asm/i8253.h>
extern spinlock_t i8253_lock; #include "io_ports.h"
/* Number of usecs that the last interrupt was delayed */ /* Number of usecs that the last interrupt was delayed */
static int delay_at_last_interrupt; static int delay_at_last_interrupt;
......
...@@ -15,9 +15,8 @@ ...@@ -15,9 +15,8 @@
#include <asm/smp.h> #include <asm/smp.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/arch_hooks.h> #include <asm/arch_hooks.h>
#include <asm/i8253.h>
extern spinlock_t i8259A_lock;
extern spinlock_t i8253_lock;
#include "do_timer.h" #include "do_timer.h"
#include "io_ports.h" #include "io_ports.h"
...@@ -166,7 +165,6 @@ struct init_timer_opts __initdata timer_pit_init = { ...@@ -166,7 +165,6 @@ struct init_timer_opts __initdata timer_pit_init = {
void setup_pit_timer(void) void setup_pit_timer(void)
{ {
extern spinlock_t i8253_lock;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&i8253_lock, flags); spin_lock_irqsave(&i8253_lock, flags);
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "mach_timer.h" #include "mach_timer.h"
#include <asm/hpet.h> #include <asm/hpet.h>
#include <asm/i8253.h>
#ifdef CONFIG_HPET_TIMER #ifdef CONFIG_HPET_TIMER
static unsigned long hpet_usec_quotient; static unsigned long hpet_usec_quotient;
...@@ -35,8 +36,6 @@ static inline void cpufreq_delayed_get(void); ...@@ -35,8 +36,6 @@ static inline void cpufreq_delayed_get(void);
int tsc_disable __devinitdata = 0; int tsc_disable __devinitdata = 0;
extern spinlock_t i8253_lock;
static int use_tsc; static int use_tsc;
/* Number of usecs that the last interrupt was delayed */ /* Number of usecs that the last interrupt was delayed */
static int delay_at_last_interrupt; static int delay_at_last_interrupt;
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
#include <asm/arch_hooks.h> #include <asm/arch_hooks.h>
#include <asm/i8253.h>
/* /*
* Power off function, if any * Power off function, if any
...@@ -182,7 +183,6 @@ voyager_timer_interrupt(struct pt_regs *regs) ...@@ -182,7 +183,6 @@ voyager_timer_interrupt(struct pt_regs *regs)
* and swiftly introduce it to something sharp and * and swiftly introduce it to something sharp and
* pointy. */ * pointy. */
__u16 val; __u16 val;
extern spinlock_t i8253_lock;
spin_lock(&i8253_lock); spin_lock(&i8253_lock);
......
...@@ -1064,7 +1064,6 @@ void print_all_local_APICs (void) ...@@ -1064,7 +1064,6 @@ void print_all_local_APICs (void)
void __apicdebuginit print_PIC(void) void __apicdebuginit print_PIC(void)
{ {
extern spinlock_t i8259A_lock;
unsigned int v; unsigned int v;
unsigned long flags; unsigned long flags;
......
...@@ -156,11 +156,13 @@ else \ ...@@ -156,11 +156,13 @@ else \
#if (HD_DELAY > 0) #if (HD_DELAY > 0)
#include <asm/i8253.h>
unsigned long last_req; unsigned long last_req;
unsigned long read_timer(void) unsigned long read_timer(void)
{ {
extern spinlock_t i8253_lock;
unsigned long t, flags; unsigned long t, flags;
int i; int i;
......
...@@ -60,12 +60,13 @@ static void gameport_disconnect_port(struct gameport *gameport); ...@@ -60,12 +60,13 @@ static void gameport_disconnect_port(struct gameport *gameport);
#if defined(__i386__) #if defined(__i386__)
#include <asm/i8253.h>
#define DELTA(x,y) ((y)-(x)+((y)<(x)?1193182/HZ:0)) #define DELTA(x,y) ((y)-(x)+((y)<(x)?1193182/HZ:0))
#define GET_TIME(x) do { x = get_time_pit(); } while (0) #define GET_TIME(x) do { x = get_time_pit(); } while (0)
static unsigned int get_time_pit(void) static unsigned int get_time_pit(void)
{ {
extern spinlock_t i8253_lock;
unsigned long flags; unsigned long flags;
unsigned int count; unsigned int count;
......
...@@ -140,12 +140,14 @@ struct analog_port { ...@@ -140,12 +140,14 @@ struct analog_port {
*/ */
#ifdef __i386__ #ifdef __i386__
#include <asm/i8253.h>
#define GET_TIME(x) do { if (cpu_has_tsc) rdtscl(x); else x = get_time_pit(); } while (0) #define GET_TIME(x) do { if (cpu_has_tsc) rdtscl(x); else x = get_time_pit(); } while (0)
#define DELTA(x,y) (cpu_has_tsc ? ((y) - (x)) : ((x) - (y) + ((x) < (y) ? CLOCK_TICK_RATE / HZ : 0))) #define DELTA(x,y) (cpu_has_tsc ? ((y) - (x)) : ((x) - (y) + ((x) < (y) ? CLOCK_TICK_RATE / HZ : 0)))
#define TIME_NAME (cpu_has_tsc?"TSC":"PIT") #define TIME_NAME (cpu_has_tsc?"TSC":"PIT")
static unsigned int get_time_pit(void) static unsigned int get_time_pit(void)
{ {
extern spinlock_t i8253_lock;
unsigned long flags; unsigned long flags;
unsigned int count; unsigned int count;
......
#ifndef __ASM_I8253_H__
#define __ASM_I8253_H__
extern spinlock_t i8253_lock;
#endif /* __ASM_I8253_H__ */
/* defines for inline arch setup functions */ /* defines for inline arch setup functions */
#include <asm/apic.h> #include <asm/apic.h>
#include <asm/i8259.h>
/** /**
* do_timer_interrupt_hook - hook into timer tick * do_timer_interrupt_hook - hook into timer tick
......
...@@ -217,4 +217,6 @@ extern int assign_irq_vector(int irq); ...@@ -217,4 +217,6 @@ extern int assign_irq_vector(int irq);
void enable_NMI_through_LVT0 (void * dummy); void enable_NMI_through_LVT0 (void * dummy);
extern spinlock_t i8259A_lock;
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment