sh: trivial build cleanups.
authorEvgeniy Polyakov <johnpol@2ka.mipt.ru>
Thu, 31 May 2007 04:46:21 +0000 (13:46 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Thu, 31 May 2007 04:46:21 +0000 (13:46 +0900)
Several errors were spotted during building for custom config (SMP
included). Although SMP still does not compile (no ipi and
__smp_call_function) and does not work, this looks a bit cleaner.
Some other errors obtained via gcc-4.1.0 build.

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/cf-enabler.c
arch/sh/kernel/cpu/sh4/probe.c
arch/sh/kernel/smp.c
include/asm-sh/cpu-sh4/freq.h
include/asm-sh/dma.h
include/asm-sh/io.h
include/asm-sh/smp.h
include/asm-sh/spinlock.h
include/asm-sh/spinlock_types.h

index 849a9e191391dee23ea1d4c48a85b7c541471513..ebc73b85094a9b9b63a3667556c077c432e0e624 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/vmalloc.h>
+#include <linux/interrupt.h>
 #include <asm/io.h>
 #include <asm/irq.h>
 
@@ -149,6 +150,11 @@ static int __init cf_init_se(void)
        ctrl_outb(0x42, PA_MRSHPC_MW2 + 0x200);
        return 0;
 }
+#else
+static int __init cf_init_se(void)
+{
+       return -1;
+}
 #endif
 
 int __init cf_init(void)
index 8cd04904c77a02c9fc6dfff2f28756fc8ca8f282..fab2eb07196b2538ac24bf5b05733df66fb1ee73 100644 (file)
@@ -12,6 +12,7 @@
  */
 #include <linux/init.h>
 #include <linux/io.h>
+#include <linux/smp.h>
 #include <asm/processor.h>
 #include <asm/cache.h>
 
index dbebaddcfe394974686c833a39f837d562720fa5..283e1425ced57046d63cd850317f1c6b5e8dd766 100644 (file)
@@ -10,6 +10,8 @@
  * Free Software Foundation; either version 2 of the License, or (at your
  * option) any later version.
  */
+
+#include <linux/err.h>
 #include <linux/cache.h>
 #include <linux/cpumask.h>
 #include <linux/delay.h>
index 86564e7a26aef3efe8fc827168df191997cbde47..39f41fcd509d78dbc02123bf8ff23fd769f09354 100644 (file)
@@ -24,6 +24,9 @@
 #define FRQMR1                 0xffc80014
 #else
 #define FRQCR                  0xffc00000
+#define FRQCR_PSTBY            0x0200
+#define FRQCR_PLLEN            0x0400
+#define FRQCR_CKOEN            0x0800
 #endif
 #define MIN_DIVISOR_NR         0
 #define MAX_DIVISOR_NR         3
index faf3051cd4290fd942c0c67d00fe3035607694dc..6034d4a29e73151434597f0ee1fd35d855c0738f 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <linux/spinlock.h>
 #include <linux/wait.h>
+#include <linux/sched.h>
 #include <linux/sysdev.h>
 #include <asm/cpu/dma.h>
 
index a0e55b09e4fd773b30d9acf30e2e89ed60f72340..aa80930ce8e4ccbc089132c8645309eedd9f7b1e 100644 (file)
@@ -116,13 +116,13 @@ void __raw_readsl(unsigned long addr, void *data, int longlen);
  * redefined by userlevel programs.
  */
 #ifdef __readb
-# define readb(a)      ({ unsigned long r_ = __raw_readb(a); mb(); r_; })
+# define readb(a)      ({ unsigned int r_ = __raw_readb(a); mb(); r_; })
 #endif
 #ifdef __raw_readw
-# define readw(a)      ({ unsigned long r_ = __raw_readw(a); mb(); r_; })
+# define readw(a)      ({ unsigned int r_ = __raw_readw(a); mb(); r_; })
 #endif
 #ifdef __raw_readl
-# define readl(a)      ({ unsigned long r_ = __raw_readl(a); mb(); r_; })
+# define readl(a)      ({ unsigned int r_ = __raw_readl(a); mb(); r_; })
 #endif
 
 #ifdef __raw_writeb
index 71ecddf70db382f7153b6f6888eec216056914b9..caa7b93f1bce4f2276e142fff92b081f92425855 100644 (file)
@@ -15,7 +15,7 @@
 
 #ifdef CONFIG_SMP
 
-#include <asm/spinlock.h>
+#include <linux/spinlock.h>
 #include <asm/atomic.h>
 #include <asm/current.h>
 
index 2586eef07d57214ec977f50b818d61c1c0fff9ed..92f6e2008b2e00963a4fc6a7da2bea95d7b82594 100644 (file)
@@ -11,6 +11,7 @@
 #define __ASM_SH_SPINLOCK_H
 
 #include <asm/atomic.h>
+#include <asm/spinlock_types.h>
 
 /*
  * Your basic SMP spinlocks, allowing only a single CPU anywhere
@@ -42,7 +43,7 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock)
 
 static inline void __raw_spin_unlock(raw_spinlock_t *lock)
 {
-       assert_spin_locked(lock);
+       //assert_spin_locked(lock);
 
        lock->lock = 0;
 }
@@ -88,6 +89,11 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
        __raw_spin_unlock(&rw->lock);
 }
 
+static inline int __raw_write_can_lock(raw_rwlock_t *rw)
+{
+       return (atomic_read(&rw->counter) == RW_LOCK_BIAS);
+}
+
 static inline int __raw_read_trylock(raw_rwlock_t *lock)
 {
        atomic_t *count = (atomic_t*)lock;
index 8c41b6c3aac87adc4fbd73d5320b95e7592c6b18..5c58134f2c4e35a31a402f69c3368e2a9033c326 100644 (file)
@@ -9,7 +9,9 @@ typedef struct {
        volatile unsigned long lock;
 } raw_spinlock_t;
 
-#define __SPIN_LOCK_UNLOCKED           { 0 }
+#define __RAW_SPIN_LOCK_UNLOCKED       { 1 }
+
+#include <asm/atomic.h>
 
 typedef struct {
        raw_spinlock_t lock;