diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-m68knommu/bitops.h | 30 | ||||
-rw-r--r-- | include/asm-m68knommu/byteorder.h | 16 | ||||
-rw-r--r-- | include/asm-m68knommu/commproc.h | 19 | ||||
-rw-r--r-- | include/asm-m68knommu/system.h | 11 |
4 files changed, 56 insertions, 20 deletions
diff --git a/include/asm-m68knommu/bitops.h b/include/asm-m68knommu/bitops.h index c142fbf2f376..6f3685eab44c 100644 --- a/include/asm-m68knommu/bitops.h +++ b/include/asm-m68knommu/bitops.h | |||
@@ -14,8 +14,38 @@ | |||
14 | #error only <linux/bitops.h> can be included directly | 14 | #error only <linux/bitops.h> can be included directly |
15 | #endif | 15 | #endif |
16 | 16 | ||
17 | #if defined (__mcfisaaplus__) || defined (__mcfisac__) | ||
18 | static inline int ffs(unsigned int val) | ||
19 | { | ||
20 | if (!val) | ||
21 | return 0; | ||
22 | |||
23 | asm volatile( | ||
24 | "bitrev %0\n\t" | ||
25 | "ff1 %0\n\t" | ||
26 | : "=d" (val) | ||
27 | : "0" (val) | ||
28 | ); | ||
29 | val++; | ||
30 | return val; | ||
31 | } | ||
32 | |||
33 | static inline int __ffs(unsigned int val) | ||
34 | { | ||
35 | asm volatile( | ||
36 | "bitrev %0\n\t" | ||
37 | "ff1 %0\n\t" | ||
38 | : "=d" (val) | ||
39 | : "0" (val) | ||
40 | ); | ||
41 | return val; | ||
42 | } | ||
43 | |||
44 | #else | ||
17 | #include <asm-generic/bitops/ffs.h> | 45 | #include <asm-generic/bitops/ffs.h> |
18 | #include <asm-generic/bitops/__ffs.h> | 46 | #include <asm-generic/bitops/__ffs.h> |
47 | #endif | ||
48 | |||
19 | #include <asm-generic/bitops/sched.h> | 49 | #include <asm-generic/bitops/sched.h> |
20 | #include <asm-generic/bitops/ffz.h> | 50 | #include <asm-generic/bitops/ffz.h> |
21 | 51 | ||
diff --git a/include/asm-m68knommu/byteorder.h b/include/asm-m68knommu/byteorder.h index 8fcde907b0f9..20bb4426b610 100644 --- a/include/asm-m68knommu/byteorder.h +++ b/include/asm-m68knommu/byteorder.h | |||
@@ -1,13 +1,27 @@ | |||
1 | #ifndef _M68KNOMMU_BYTEORDER_H | 1 | #ifndef _M68KNOMMU_BYTEORDER_H |
2 | #define _M68KNOMMU_BYTEORDER_H | 2 | #define _M68KNOMMU_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/types.h> | 4 | #include <linux/types.h> |
5 | 5 | ||
6 | #if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) | 6 | #if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) |
7 | # define __BYTEORDER_HAS_U64__ | 7 | # define __BYTEORDER_HAS_U64__ |
8 | # define __SWAB_64_THRU_32__ | 8 | # define __SWAB_64_THRU_32__ |
9 | #endif | 9 | #endif |
10 | 10 | ||
11 | #if defined (__mcfisaaplus__) || defined (__mcfisac__) | ||
12 | static inline __attribute_const__ __u32 ___arch__swab32(__u32 val) | ||
13 | { | ||
14 | asm( | ||
15 | "byterev %0" | ||
16 | : "=d" (val) | ||
17 | : "0" (val) | ||
18 | ); | ||
19 | return val; | ||
20 | } | ||
21 | |||
22 | #define __arch__swab32(x) ___arch__swab32(x) | ||
23 | #endif | ||
24 | |||
11 | #include <linux/byteorder/big_endian.h> | 25 | #include <linux/byteorder/big_endian.h> |
12 | 26 | ||
13 | #endif /* _M68KNOMMU_BYTEORDER_H */ | 27 | #endif /* _M68KNOMMU_BYTEORDER_H */ |
diff --git a/include/asm-m68knommu/commproc.h b/include/asm-m68knommu/commproc.h index 36e870b468ef..edf5eb6c08d2 100644 --- a/include/asm-m68knommu/commproc.h +++ b/include/asm-m68knommu/commproc.h | |||
@@ -519,25 +519,6 @@ typedef struct scc_enet { | |||
519 | #define SICR_ENET_CLKRT ((uint)0x00002c00) | 519 | #define SICR_ENET_CLKRT ((uint)0x00002c00) |
520 | #endif | 520 | #endif |
521 | 521 | ||
522 | #ifdef CONFIG_RPXCLASSIC | ||
523 | /* Bits in parallel I/O port registers that have to be set/cleared | ||
524 | * to configure the pins for SCC1 use. | ||
525 | */ | ||
526 | #define PA_ENET_RXD ((ushort)0x0001) | ||
527 | #define PA_ENET_TXD ((ushort)0x0002) | ||
528 | #define PA_ENET_TCLK ((ushort)0x0200) | ||
529 | #define PA_ENET_RCLK ((ushort)0x0800) | ||
530 | #define PB_ENET_TENA ((uint)0x00001000) | ||
531 | #define PC_ENET_CLSN ((ushort)0x0010) | ||
532 | #define PC_ENET_RENA ((ushort)0x0020) | ||
533 | |||
534 | /* Control bits in the SICR to route TCLK (CLK2) and RCLK (CLK4) to | ||
535 | * SCC1. Also, make sure GR1 (bit 24) and SC1 (bit 25) are zero. | ||
536 | */ | ||
537 | #define SICR_ENET_MASK ((uint)0x000000ff) | ||
538 | #define SICR_ENET_CLKRT ((uint)0x0000003d) | ||
539 | #endif | ||
540 | |||
541 | /* SCC Event register as used by Ethernet. | 522 | /* SCC Event register as used by Ethernet. |
542 | */ | 523 | */ |
543 | #define SCCE_ENET_GRA ((ushort)0x0080) /* Graceful stop complete */ | 524 | #define SCCE_ENET_GRA ((ushort)0x0080) /* Graceful stop complete */ |
diff --git a/include/asm-m68knommu/system.h b/include/asm-m68knommu/system.h index 64c64432bbb8..40f49de69821 100644 --- a/include/asm-m68knommu/system.h +++ b/include/asm-m68knommu/system.h | |||
@@ -118,6 +118,8 @@ asmlinkage void resume(void); | |||
118 | #define smp_read_barrier_depends() do { } while(0) | 118 | #define smp_read_barrier_depends() do { } while(0) |
119 | #endif | 119 | #endif |
120 | 120 | ||
121 | #define read_barrier_depends() ((void)0) | ||
122 | |||
121 | #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) | 123 | #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) |
122 | 124 | ||
123 | struct __xchg_dummy { unsigned long a[100]; }; | 125 | struct __xchg_dummy { unsigned long a[100]; }; |
@@ -310,4 +312,13 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz | |||
310 | #endif | 312 | #endif |
311 | #define arch_align_stack(x) (x) | 313 | #define arch_align_stack(x) (x) |
312 | 314 | ||
315 | |||
316 | static inline int irqs_disabled_flags(unsigned long flags) | ||
317 | { | ||
318 | if (flags & 0x0700) | ||
319 | return 0; | ||
320 | else | ||
321 | return 1; | ||
322 | } | ||
323 | |||
313 | #endif /* _M68KNOMMU_SYSTEM_H */ | 324 | #endif /* _M68KNOMMU_SYSTEM_H */ |