i8253: Consolidate all kernel definitions of i8253_lock
authorRalf Baechle <ralf@linux-mips.org>
Wed, 1 Jun 2011 18:04:59 +0000 (19:04 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 9 Jun 2011 13:01:38 +0000 (15:01 +0200)
Move them to drivers/clocksource/i8253.c and remove the
implementations in arch/

[ tglx: Avoid the extra file in lib - folded arch patches in. The
  export will become conditional in a later step ]

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Link: http://lkml.kernel.org/r/20110601180610.221426078@duck.linux-mips.net
Cc: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/arm/mach-footbridge/isa-timer.c
arch/mips/kernel/i8253.c
arch/x86/Kconfig
arch/x86/kernel/i8253.c
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/clocksource/i8253.c
init/Kconfig

index 3c7367be5459f5d3d38a10356ea8fde02090b0cb..71fd96df7f73714591b78d911e33070fbaa3516f 100644 (file)
@@ -19,8 +19,6 @@
 
 #include "common.h"
 
-DEFINE_RAW_SPINLOCK(i8253_lock);
-
 static void pit_set_mode(enum clock_event_mode mode,
        struct clock_event_device *evt)
 {
index 82b5a9f037e7249a92cb7c29698eef96c1b47669..3d2ff57fa69aff906d278469079b7f77165594a9 100644 (file)
@@ -16,9 +16,6 @@
 #include <asm/io.h>
 #include <asm/time.h>
 
-DEFINE_RAW_SPINLOCK(i8253_lock);
-EXPORT_SYMBOL(i8253_lock);
-
 /*
  * Initialize the PIT timer.
  *
index da349723d4115cef7d75aac4680ba2284deaf0d0..e6060a1c1b5816c94e3c1381522a9f9d98cf0dc9 100644 (file)
@@ -70,6 +70,7 @@ config X86
        select IRQ_FORCED_THREADING
        select USE_GENERIC_SMP_HELPERS if SMP
        select HAVE_BPF_JIT if (X86_64 && NET)
+       select I8253_LOCK
 
 config INSTRUCTION_DECODER
        def_bool (KPROBES || PERF_EVENTS)
index 323555050f8998a384b24a3f350f0774bb63ea1f..9c92b6ff571fd97765405844d5f7467efee212d8 100644 (file)
@@ -16,9 +16,6 @@
 #include <asm/hpet.h>
 #include <asm/smp.h>
 
-DEFINE_RAW_SPINLOCK(i8253_lock);
-EXPORT_SYMBOL(i8253_lock);
-
 /*
  * HPET replaces the PIT, when enabled. So we need to know, which of
  * the two timers is used
index 96c92191046961818638aeb3650972e1e39df165..330343bcb67ea712c1b1a00b20fcaf1a28c73106 100644 (file)
@@ -1,5 +1,11 @@
 config CLKSRC_I8253
        bool
 
+config I8253_LOCK
+       bool
+
+config CLKBLD_I8253
+       def_bool y if CLKSRC_I8253 || I8253_LOCK
+
 config CLKSRC_MMIO
        bool
index b995942a50609ac404ce3a0202db9662bef34de0..7922a0cfc99f400b5bcc184c2133e3ce90bddd0f 100644 (file)
@@ -6,5 +6,5 @@ obj-$(CONFIG_CS5535_CLOCK_EVENT_SRC)    += cs5535-clockevt.o
 obj-$(CONFIG_SH_TIMER_CMT)     += sh_cmt.o
 obj-$(CONFIG_SH_TIMER_MTU2)    += sh_mtu2.o
 obj-$(CONFIG_SH_TIMER_TMU)     += sh_tmu.o
-obj-$(CONFIG_CLKSRC_I8253)     += i8253.o
+obj-$(CONFIG_CLKBLD_I8253)     += i8253.o
 obj-$(CONFIG_CLKSRC_MMIO)      += mmio.o
index 33735ebd2dccc81cc7474cb013340506aff4e17d..e594f52eb88ecb1eb87c80aacf35d6be8a5560ed 100644 (file)
@@ -6,9 +6,19 @@
 #include <linux/io.h>
 #include <linux/spinlock.h>
 #include <linux/timex.h>
-
+#include <linux/module.h>
 #include <linux/i8253.h>
 
+/*
+ * Protects access to I/O ports
+ *
+ * 0040-0043 : timer0, i8253 / i8254
+ * 0061-0061 : NMI Control Register which contains two speaker control bits.
+ */
+DEFINE_RAW_SPINLOCK(i8253_lock);
+EXPORT_SYMBOL(i8253_lock);
+
+#ifdef CONFIG_CLKSRC_I8253
 /*
  * Since the PIT overflows every tick, its not very useful
  * to just read by itself. So use jiffies to emulate a free
@@ -86,3 +96,4 @@ int __init clocksource_i8253_init(void)
 {
        return clocksource_register_hz(&i8253_cs, PIT_TICK_RATE);
 }
+#endif
index ebafac4231eeff15883809419e6df0c211b90e1a..2d2ef447a9abdd4be4fae030107c8ffe8aa69bb4 100644 (file)
@@ -1002,6 +1002,7 @@ config ELF_CORE
 config PCSPKR_PLATFORM
        bool "Enable PC-Speaker support" if EXPERT
        depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES
+       select I8253_LOCK
        default y
        help
           This option allows to disable the internal PC-Speaker