diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:36:49 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:36:49 -0500 |
commit | 14a3c4ab0e58d143c7928c9eb2f2610205e13bf2 (patch) | |
tree | 885992999d7a1a2fd3586efcf32ebcbcbc3a72aa /arch/arm/mach-rpc/include/mach/io.h | |
parent | 1af237a099a3b8ff56aa384f605c6a68af7bf288 (diff) | |
parent | 47992cbdaef2f18a47871b2ed01ad27f568c8b73 (diff) |
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (407 commits)
[ARM] pxafb: add support for overlay1 and overlay2 as framebuffer devices
[ARM] pxafb: cleanup of the timing checking code
[ARM] pxafb: cleanup of the color format manipulation code
[ARM] pxafb: add palette format support for LCCR4_PAL_FOR_3
[ARM] pxafb: add support for FBIOPAN_DISPLAY by dma braching
[ARM] pxafb: allow pxafb_set_par() to start from arbitrary yoffset
[ARM] pxafb: allow video memory size to be configurable
[ARM] pxa: add document on the MFP design and how to use it
[ARM] sa1100_wdt: don't assume CLOCK_TICK_RATE to be a constant
[ARM] rtc-sa1100: don't assume CLOCK_TICK_RATE to be a constant
[ARM] pxa/tavorevb: update board support (smartpanel LCD + keypad)
[ARM] pxa: Update eseries defconfig
[ARM] 5352/1: add w90p910-plat config file
[ARM] s3c: S3C options should depend on PLAT_S3C
[ARM] mv78xx0: implement GPIO and GPIO interrupt support
[ARM] Kirkwood: implement GPIO and GPIO interrupt support
[ARM] Orion: share GPIO IRQ handling code
[ARM] Orion: share GPIO handling code
[ARM] s3c: define __io using the typesafe version
[ARM] S3C64XX: Ensure CPU_V6 is selected
...
Diffstat (limited to 'arch/arm/mach-rpc/include/mach/io.h')
-rw-r--r-- | arch/arm/mach-rpc/include/mach/io.h | 47 |
1 files changed, 1 insertions, 46 deletions
diff --git a/arch/arm/mach-rpc/include/mach/io.h b/arch/arm/mach-rpc/include/mach/io.h index 9f0553b7ec28..20da7f486e51 100644 --- a/arch/arm/mach-rpc/include/mach/io.h +++ b/arch/arm/mach-rpc/include/mach/io.h | |||
@@ -18,49 +18,6 @@ | |||
18 | #define IO_SPACE_LIMIT 0xffffffff | 18 | #define IO_SPACE_LIMIT 0xffffffff |
19 | 19 | ||
20 | /* | 20 | /* |
21 | * GCC is totally crap at loading/storing data. We try to persuade it | ||
22 | * to do the right thing by using these whereever possible instead of | ||
23 | * the above. | ||
24 | */ | ||
25 | #define __arch_base_getb(b,o) \ | ||
26 | ({ \ | ||
27 | unsigned int __v, __r = (b); \ | ||
28 | __asm__ __volatile__( \ | ||
29 | "ldrb %0, [%1, %2]" \ | ||
30 | : "=r" (__v) \ | ||
31 | : "r" (__r), "Ir" (o)); \ | ||
32 | __v; \ | ||
33 | }) | ||
34 | |||
35 | #define __arch_base_getl(b,o) \ | ||
36 | ({ \ | ||
37 | unsigned int __v, __r = (b); \ | ||
38 | __asm__ __volatile__( \ | ||
39 | "ldr %0, [%1, %2]" \ | ||
40 | : "=r" (__v) \ | ||
41 | : "r" (__r), "Ir" (o)); \ | ||
42 | __v; \ | ||
43 | }) | ||
44 | |||
45 | #define __arch_base_putb(v,b,o) \ | ||
46 | ({ \ | ||
47 | unsigned int __r = (b); \ | ||
48 | __asm__ __volatile__( \ | ||
49 | "strb %0, [%1, %2]" \ | ||
50 | : \ | ||
51 | : "r" (v), "r" (__r), "Ir" (o));\ | ||
52 | }) | ||
53 | |||
54 | #define __arch_base_putl(v,b,o) \ | ||
55 | ({ \ | ||
56 | unsigned int __r = (b); \ | ||
57 | __asm__ __volatile__( \ | ||
58 | "str %0, [%1, %2]" \ | ||
59 | : \ | ||
60 | : "r" (v), "r" (__r), "Ir" (o));\ | ||
61 | }) | ||
62 | |||
63 | /* | ||
64 | * We use two different types of addressing - PC style addresses, and ARM | 21 | * We use two different types of addressing - PC style addresses, and ARM |
65 | * addresses. PC style accesses the PC hardware with the normal PC IO | 22 | * addresses. PC style accesses the PC hardware with the normal PC IO |
66 | * addresses, eg 0x3f8 for serial#1. ARM addresses are 0x80000000+ | 23 | * addresses, eg 0x3f8 for serial#1. ARM addresses are 0x80000000+ |
@@ -232,15 +189,13 @@ DECLARE_IO(int,l,"") | |||
232 | result; \ | 189 | result; \ |
233 | }) | 190 | }) |
234 | 191 | ||
235 | #define __ioaddrc(port) __ioaddr(port) | ||
236 | |||
237 | #define inb(p) (__builtin_constant_p((p)) ? __inbc(p) : __inb(p)) | 192 | #define inb(p) (__builtin_constant_p((p)) ? __inbc(p) : __inb(p)) |
238 | #define inw(p) (__builtin_constant_p((p)) ? __inwc(p) : __inw(p)) | 193 | #define inw(p) (__builtin_constant_p((p)) ? __inwc(p) : __inw(p)) |
239 | #define inl(p) (__builtin_constant_p((p)) ? __inlc(p) : __inl(p)) | 194 | #define inl(p) (__builtin_constant_p((p)) ? __inlc(p) : __inl(p)) |
240 | #define outb(v,p) (__builtin_constant_p((p)) ? __outbc(v,p) : __outb(v,p)) | 195 | #define outb(v,p) (__builtin_constant_p((p)) ? __outbc(v,p) : __outb(v,p)) |
241 | #define outw(v,p) (__builtin_constant_p((p)) ? __outwc(v,p) : __outw(v,p)) | 196 | #define outw(v,p) (__builtin_constant_p((p)) ? __outwc(v,p) : __outw(v,p)) |
242 | #define outl(v,p) (__builtin_constant_p((p)) ? __outlc(v,p) : __outl(v,p)) | 197 | #define outl(v,p) (__builtin_constant_p((p)) ? __outlc(v,p) : __outl(v,p)) |
243 | #define __ioaddr(p) (__builtin_constant_p((p)) ? __ioaddr(p) : __ioaddrc(p)) | 198 | |
244 | /* the following macro is deprecated */ | 199 | /* the following macro is deprecated */ |
245 | #define ioaddr(port) ((unsigned long)__ioaddr((port))) | 200 | #define ioaddr(port) ((unsigned long)__ioaddr((port))) |
246 | 201 | ||