diff options
| author | David Woodhouse <dwmw2@infradead.org> | 2007-04-26 04:31:28 -0400 |
|---|---|---|
| committer | David Woodhouse <dwmw2@infradead.org> | 2007-04-26 04:31:28 -0400 |
| commit | ef2e58ea6b9931c3a4816c66593da49bb20e3b24 (patch) | |
| tree | ce7432add3becbe78de4ea06425cd2d9e91f4ada /include/asm-alpha | |
| parent | 06d63cc51d47f572009138a7f3ac34d95773405d (diff) | |
| parent | de46c33745f5e2ad594c72f2cf5f490861b16ce1 (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'include/asm-alpha')
| -rw-r--r-- | include/asm-alpha/compiler.h | 47 | ||||
| -rw-r--r-- | include/asm-alpha/core_mcpcia.h | 2 | ||||
| -rw-r--r-- | include/asm-alpha/io.h | 1 |
3 files changed, 38 insertions, 12 deletions
diff --git a/include/asm-alpha/compiler.h b/include/asm-alpha/compiler.h index d2768cc3d7a4..da6bb199839c 100644 --- a/include/asm-alpha/compiler.h +++ b/include/asm-alpha/compiler.h | |||
| @@ -17,9 +17,6 @@ | |||
| 17 | # define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift) | 17 | # define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift) |
| 18 | # define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift) | 18 | # define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift) |
| 19 | # define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b) | 19 | # define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b) |
| 20 | # define __kernel_cttz(x) __builtin_ctzl(x) | ||
| 21 | # define __kernel_ctlz(x) __builtin_clzl(x) | ||
| 22 | # define __kernel_ctpop(x) __builtin_popcountl(x) | ||
| 23 | #else | 20 | #else |
| 24 | # define __kernel_insbl(val, shift) \ | 21 | # define __kernel_insbl(val, shift) \ |
| 25 | ({ unsigned long __kir; \ | 22 | ({ unsigned long __kir; \ |
| @@ -49,17 +46,39 @@ | |||
| 49 | ({ unsigned long __kir; \ | 46 | ({ unsigned long __kir; \ |
| 50 | __asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \ | 47 | __asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \ |
| 51 | __kir; }) | 48 | __kir; }) |
| 49 | #endif | ||
| 50 | |||
| 51 | #ifdef __alpha_cix__ | ||
| 52 | # if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 | ||
| 53 | # define __kernel_cttz(x) __builtin_ctzl(x) | ||
| 54 | # define __kernel_ctlz(x) __builtin_clzl(x) | ||
| 55 | # define __kernel_ctpop(x) __builtin_popcountl(x) | ||
| 56 | # else | ||
| 57 | # define __kernel_cttz(x) \ | ||
| 58 | ({ unsigned long __kir; \ | ||
| 59 | __asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \ | ||
| 60 | __kir; }) | ||
| 61 | # define __kernel_ctlz(x) \ | ||
| 62 | ({ unsigned long __kir; \ | ||
| 63 | __asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ | ||
| 64 | __kir; }) | ||
| 65 | # define __kernel_ctpop(x) \ | ||
| 66 | ({ unsigned long __kir; \ | ||
| 67 | __asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ | ||
| 68 | __kir; }) | ||
| 69 | # endif | ||
| 70 | #else | ||
| 52 | # define __kernel_cttz(x) \ | 71 | # define __kernel_cttz(x) \ |
| 53 | ({ unsigned long __kir; \ | 72 | ({ unsigned long __kir; \ |
| 54 | __asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \ | 73 | __asm__(".arch ev67; cttz %1,%0" : "=r"(__kir) : "r"(x)); \ |
| 55 | __kir; }) | 74 | __kir; }) |
| 56 | # define __kernel_ctlz(x) \ | 75 | # define __kernel_ctlz(x) \ |
| 57 | ({ unsigned long __kir; \ | 76 | ({ unsigned long __kir; \ |
| 58 | __asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ | 77 | __asm__(".arch ev67; ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ |
| 59 | __kir; }) | 78 | __kir; }) |
| 60 | # define __kernel_ctpop(x) \ | 79 | # define __kernel_ctpop(x) \ |
| 61 | ({ unsigned long __kir; \ | 80 | ({ unsigned long __kir; \ |
| 62 | __asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ | 81 | __asm__(".arch ev67; ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ |
| 63 | __kir; }) | 82 | __kir; }) |
| 64 | #endif | 83 | #endif |
| 65 | 84 | ||
| @@ -78,16 +97,20 @@ | |||
| 78 | #else | 97 | #else |
| 79 | #define __kernel_ldbu(mem) \ | 98 | #define __kernel_ldbu(mem) \ |
| 80 | ({ unsigned char __kir; \ | 99 | ({ unsigned char __kir; \ |
| 81 | __asm__("ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \ | 100 | __asm__(".arch ev56; \ |
| 101 | ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \ | ||
| 82 | __kir; }) | 102 | __kir; }) |
| 83 | #define __kernel_ldwu(mem) \ | 103 | #define __kernel_ldwu(mem) \ |
| 84 | ({ unsigned short __kir; \ | 104 | ({ unsigned short __kir; \ |
| 85 | __asm__("ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \ | 105 | __asm__(".arch ev56; \ |
| 106 | ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \ | ||
| 86 | __kir; }) | 107 | __kir; }) |
| 87 | #define __kernel_stb(val,mem) \ | 108 | #define __kernel_stb(val,mem) \ |
| 88 | __asm__("stb %1,%0" : "=m"(mem) : "r"(val)) | 109 | __asm__(".arch ev56; \ |
| 89 | #define __kernel_stw(val,mem) \ | 110 | stb %1,%0" : "=m"(mem) : "r"(val)) |
| 90 | __asm__("stw %1,%0" : "=m"(mem) : "r"(val)) | 111 | #define __kernel_stw(val,mem) \ |
| 112 | __asm__(".arch ev56; \ | ||
| 113 | stw %1,%0" : "=m"(mem) : "r"(val)) | ||
| 91 | #endif | 114 | #endif |
| 92 | 115 | ||
| 93 | #ifdef __KERNEL__ | 116 | #ifdef __KERNEL__ |
diff --git a/include/asm-alpha/core_mcpcia.h b/include/asm-alpha/core_mcpcia.h index 980a3c51b18e..525b4f6a7ace 100644 --- a/include/asm-alpha/core_mcpcia.h +++ b/include/asm-alpha/core_mcpcia.h | |||
| @@ -72,6 +72,8 @@ | |||
| 72 | * | 72 | * |
| 73 | */ | 73 | */ |
| 74 | 74 | ||
| 75 | #define MCPCIA_MAX_HOSES 4 | ||
| 76 | |||
| 75 | #define MCPCIA_MID(m) ((unsigned long)(m) << 33) | 77 | #define MCPCIA_MID(m) ((unsigned long)(m) << 33) |
| 76 | 78 | ||
| 77 | /* Dodge has PCI0 and PCI1 at MID 4 and 5 respectively. | 79 | /* Dodge has PCI0 and PCI1 at MID 4 and 5 respectively. |
diff --git a/include/asm-alpha/io.h b/include/asm-alpha/io.h index 24bdcc8b63aa..21a86f1a05b3 100644 --- a/include/asm-alpha/io.h +++ b/include/asm-alpha/io.h | |||
| @@ -113,6 +113,7 @@ static inline unsigned long virt_to_bus(void *address) | |||
| 113 | unsigned long bus = phys + __direct_map_base; | 113 | unsigned long bus = phys + __direct_map_base; |
| 114 | return phys <= __direct_map_size ? bus : 0; | 114 | return phys <= __direct_map_size ? bus : 0; |
| 115 | } | 115 | } |
| 116 | #define isa_virt_to_bus virt_to_bus | ||
| 116 | 117 | ||
| 117 | static inline void *bus_to_virt(unsigned long address) | 118 | static inline void *bus_to_virt(unsigned long address) |
| 118 | { | 119 | { |
