summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-11-02 17:26:06 +0000
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-11-02 19:39:18 -0700
commit74521c28e550c4ec265cda14114bd9b908e9de34 (patch)
tree6e9ab675eb69329db5188783a11a76a826055531
parenta89b7717a8c9be41a4856134b60a4d7a66df13f6 (diff)
Use i8253.c lock for PC speaker on MIPS, too.
The Jazz machines have to use the PIT timer for dyntick and highresolution kernels. This may break because currently just like i386 used to do MIPS uses two separate spinlocks in the actual PIT code and the PC speaker code. So switch to do it the same that x86 currently does PIT locking. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/mips/kernel/i8253.c2
-rw-r--r--drivers/input/misc/pcspkr.c2
-rw-r--r--include/asm-mips/i8253.h4
3 files changed, 6 insertions, 2 deletions
diff --git a/arch/mips/kernel/i8253.c b/arch/mips/kernel/i8253.c
index a925abd8d29e..c2d497ceffdd 100644
--- a/arch/mips/kernel/i8253.c
+++ b/arch/mips/kernel/i8253.c
@@ -14,7 +14,7 @@
#include <asm/io.h>
#include <asm/time.h>
-static DEFINE_SPINLOCK(i8253_lock);
+DEFINE_SPINLOCK(i8253_lock);
/*
* Initialize the PIT timer.
diff --git a/drivers/input/misc/pcspkr.c b/drivers/input/misc/pcspkr.c
index 4941a9e61e90..43aaa5cebd12 100644
--- a/drivers/input/misc/pcspkr.c
+++ b/drivers/input/misc/pcspkr.c
@@ -24,7 +24,7 @@ MODULE_DESCRIPTION("PC Speaker beeper driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:pcspkr");
-#ifdef CONFIG_X86
+#if defined(CONFIG_MIPS) || defined(CONFIG_X86)
/* Use the global PIT lock ! */
#include <asm/i8253.h>
#else
diff --git a/include/asm-mips/i8253.h b/include/asm-mips/i8253.h
index 778b2f023905..032ca73f181b 100644
--- a/include/asm-mips/i8253.h
+++ b/include/asm-mips/i8253.h
@@ -5,11 +5,15 @@
#ifndef __ASM_I8253_H
#define __ASM_I8253_H
+#include <linux/spinlock.h>
+
/* i8253A PIT registers */
#define PIT_MODE 0x43
#define PIT_CH0 0x40
#define PIT_CH2 0x42
+extern spinlock_t i8253_lock;
+
extern void setup_pit_timer(void);
#endif /* __ASM_I8253_H */