diff options
423 files changed, 2350 insertions, 1719 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4b8acd2851f4..ea52fae33290 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -148,7 +148,6 @@ config ARCH_MAY_HAVE_PC_FDC | |||
148 | 148 | ||
149 | config ZONE_DMA | 149 | config ZONE_DMA |
150 | bool | 150 | bool |
151 | default y | ||
152 | 151 | ||
153 | config GENERIC_ISA_DMA | 152 | config GENERIC_ISA_DMA |
154 | bool | 153 | bool |
@@ -178,6 +177,11 @@ config OPROFILE_MPCORE | |||
178 | config OPROFILE_ARM11_CORE | 177 | config OPROFILE_ARM11_CORE |
179 | bool | 178 | bool |
180 | 179 | ||
180 | config OPROFILE_ARMV7 | ||
181 | def_bool y | ||
182 | depends on CPU_V7 && !SMP | ||
183 | bool | ||
184 | |||
181 | endif | 185 | endif |
182 | 186 | ||
183 | config VECTORS_BASE | 187 | config VECTORS_BASE |
@@ -245,6 +249,7 @@ config ARCH_CLPS7500 | |||
245 | select TIMER_ACORN | 249 | select TIMER_ACORN |
246 | select ISA | 250 | select ISA |
247 | select NO_IOPORT | 251 | select NO_IOPORT |
252 | select ARCH_SPARSEMEM_ENABLE | ||
248 | help | 253 | help |
249 | Support for the Cirrus Logic PS7500FE system-on-a-chip. | 254 | Support for the Cirrus Logic PS7500FE system-on-a-chip. |
250 | 255 | ||
@@ -306,6 +311,7 @@ config ARCH_IOP13XX | |||
306 | select PLAT_IOP | 311 | select PLAT_IOP |
307 | select PCI | 312 | select PCI |
308 | select ARCH_SUPPORTS_MSI | 313 | select ARCH_SUPPORTS_MSI |
314 | select VMSPLIT_1G | ||
309 | help | 315 | help |
310 | Support for Intel's IOP13XX (XScale) family of processors. | 316 | Support for Intel's IOP13XX (XScale) family of processors. |
311 | 317 | ||
@@ -350,6 +356,7 @@ config ARCH_IXP4XX | |||
350 | select GENERIC_GPIO | 356 | select GENERIC_GPIO |
351 | select GENERIC_TIME | 357 | select GENERIC_TIME |
352 | select GENERIC_CLOCKEVENTS | 358 | select GENERIC_CLOCKEVENTS |
359 | select ZONE_DMA if PCI | ||
353 | help | 360 | help |
354 | Support for Intel's IXP4XX (XScale) family of processors. | 361 | Support for Intel's IXP4XX (XScale) family of processors. |
355 | 362 | ||
@@ -464,6 +471,7 @@ config ARCH_RPC | |||
464 | select HAVE_PATA_PLATFORM | 471 | select HAVE_PATA_PLATFORM |
465 | select ISA_DMA_API | 472 | select ISA_DMA_API |
466 | select NO_IOPORT | 473 | select NO_IOPORT |
474 | select ARCH_SPARSEMEM_ENABLE | ||
467 | help | 475 | help |
468 | On the Acorn Risc-PC, Linux can support the internal IDE disk and | 476 | On the Acorn Risc-PC, Linux can support the internal IDE disk and |
469 | CD-ROM interface, serial and parallel port, and the floppy drive. | 477 | CD-ROM interface, serial and parallel port, and the floppy drive. |
@@ -471,9 +479,7 @@ config ARCH_RPC | |||
471 | config ARCH_SA1100 | 479 | config ARCH_SA1100 |
472 | bool "SA1100-based" | 480 | bool "SA1100-based" |
473 | select ISA | 481 | select ISA |
474 | select ARCH_DISCONTIGMEM_ENABLE | ||
475 | select ARCH_SPARSEMEM_ENABLE | 482 | select ARCH_SPARSEMEM_ENABLE |
476 | select ARCH_SELECT_MEMORY_MODEL | ||
477 | select ARCH_MTD_XIP | 483 | select ARCH_MTD_XIP |
478 | select GENERIC_GPIO | 484 | select GENERIC_GPIO |
479 | select GENERIC_TIME | 485 | select GENERIC_TIME |
@@ -497,6 +503,7 @@ config ARCH_SHARK | |||
497 | bool "Shark" | 503 | bool "Shark" |
498 | select ISA | 504 | select ISA |
499 | select ISA_DMA | 505 | select ISA_DMA |
506 | select ZONE_DMA | ||
500 | select PCI | 507 | select PCI |
501 | help | 508 | help |
502 | Support for the StrongARM based Digital DNARD machine, also known | 509 | Support for the StrongARM based Digital DNARD machine, also known |
@@ -504,6 +511,8 @@ config ARCH_SHARK | |||
504 | 511 | ||
505 | config ARCH_LH7A40X | 512 | config ARCH_LH7A40X |
506 | bool "Sharp LH7A40X" | 513 | bool "Sharp LH7A40X" |
514 | select ARCH_DISCONTIGMEM_ENABLE if !LH7A40X_CONTIGMEM | ||
515 | select ARCH_SPARSEMEM_ENABLE if !LH7A40X_CONTIGMEM | ||
507 | help | 516 | help |
508 | Say Y here for systems based on one of the Sharp LH7A40X | 517 | Say Y here for systems based on one of the Sharp LH7A40X |
509 | System on a Chip processors. These CPUs include an ARM922T | 518 | System on a Chip processors. These CPUs include an ARM922T |
@@ -516,6 +525,7 @@ config ARCH_DAVINCI | |||
516 | select GENERIC_CLOCKEVENTS | 525 | select GENERIC_CLOCKEVENTS |
517 | select GENERIC_GPIO | 526 | select GENERIC_GPIO |
518 | select HAVE_CLK | 527 | select HAVE_CLK |
528 | select ZONE_DMA | ||
519 | help | 529 | help |
520 | Support for TI's DaVinci platform. | 530 | Support for TI's DaVinci platform. |
521 | 531 | ||
@@ -734,6 +744,29 @@ config SMP | |||
734 | 744 | ||
735 | If you don't know what to do here, say N. | 745 | If you don't know what to do here, say N. |
736 | 746 | ||
747 | choice | ||
748 | prompt "Memory split" | ||
749 | default VMSPLIT_3G | ||
750 | help | ||
751 | Select the desired split between kernel and user memory. | ||
752 | |||
753 | If you are not absolutely sure what you are doing, leave this | ||
754 | option alone! | ||
755 | |||
756 | config VMSPLIT_3G | ||
757 | bool "3G/1G user/kernel split" | ||
758 | config VMSPLIT_2G | ||
759 | bool "2G/2G user/kernel split" | ||
760 | config VMSPLIT_1G | ||
761 | bool "1G/3G user/kernel split" | ||
762 | endchoice | ||
763 | |||
764 | config PAGE_OFFSET | ||
765 | hex | ||
766 | default 0x40000000 if VMSPLIT_1G | ||
767 | default 0x80000000 if VMSPLIT_2G | ||
768 | default 0xC0000000 | ||
769 | |||
737 | config NR_CPUS | 770 | config NR_CPUS |
738 | int "Maximum number of CPUs (2-32)" | 771 | int "Maximum number of CPUs (2-32)" |
739 | range 2 32 | 772 | range 2 32 |
@@ -810,20 +843,18 @@ config OABI_COMPAT | |||
810 | UNPREDICTABLE (in fact it can be predicted that it won't work | 843 | UNPREDICTABLE (in fact it can be predicted that it won't work |
811 | at all). If in doubt say Y. | 844 | at all). If in doubt say Y. |
812 | 845 | ||
846 | # Discontigmem is deprecated | ||
813 | config ARCH_DISCONTIGMEM_ENABLE | 847 | config ARCH_DISCONTIGMEM_ENABLE |
814 | bool | 848 | bool |
815 | default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM) | ||
816 | help | ||
817 | Say Y to support efficient handling of discontiguous physical memory, | ||
818 | for architectures which are either NUMA (Non-Uniform Memory Access) | ||
819 | or have huge holes in the physical address space for other reasons. | ||
820 | See <file:Documentation/vm/numa> for more. | ||
821 | 849 | ||
822 | config ARCH_SPARSEMEM_ENABLE | 850 | config ARCH_SPARSEMEM_ENABLE |
823 | bool | 851 | bool |
824 | 852 | ||
853 | config ARCH_SPARSEMEM_DEFAULT | ||
854 | def_bool ARCH_SPARSEMEM_ENABLE | ||
855 | |||
825 | config ARCH_SELECT_MEMORY_MODEL | 856 | config ARCH_SELECT_MEMORY_MODEL |
826 | bool | 857 | def_bool ARCH_DISCONTIGMEM_ENABLE && ARCH_SPARSEMEM_ENABLE |
827 | 858 | ||
828 | config NODES_SHIFT | 859 | config NODES_SHIFT |
829 | int | 860 | int |
@@ -1000,9 +1031,9 @@ config ATAGS_PROC | |||
1000 | 1031 | ||
1001 | endmenu | 1032 | endmenu |
1002 | 1033 | ||
1003 | if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA) | 1034 | menu "CPU Power Management" |
1004 | 1035 | ||
1005 | menu "CPU Frequency scaling" | 1036 | if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA) |
1006 | 1037 | ||
1007 | source "drivers/cpufreq/Kconfig" | 1038 | source "drivers/cpufreq/Kconfig" |
1008 | 1039 | ||
@@ -1042,10 +1073,12 @@ config CPU_FREQ_PXA | |||
1042 | default y | 1073 | default y |
1043 | select CPU_FREQ_DEFAULT_GOV_USERSPACE | 1074 | select CPU_FREQ_DEFAULT_GOV_USERSPACE |
1044 | 1075 | ||
1045 | endmenu | ||
1046 | |||
1047 | endif | 1076 | endif |
1048 | 1077 | ||
1078 | source "drivers/cpuidle/Kconfig" | ||
1079 | |||
1080 | endmenu | ||
1081 | |||
1049 | menu "Floating point emulation" | 1082 | menu "Floating point emulation" |
1050 | 1083 | ||
1051 | comment "At least one emulation must be selected" | 1084 | comment "At least one emulation must be selected" |
@@ -1197,6 +1230,8 @@ source "drivers/power/Kconfig" | |||
1197 | 1230 | ||
1198 | source "drivers/hwmon/Kconfig" | 1231 | source "drivers/hwmon/Kconfig" |
1199 | 1232 | ||
1233 | source "drivers/thermal/Kconfig" | ||
1234 | |||
1200 | source "drivers/watchdog/Kconfig" | 1235 | source "drivers/watchdog/Kconfig" |
1201 | 1236 | ||
1202 | source "drivers/ssb/Kconfig" | 1237 | source "drivers/ssb/Kconfig" |
@@ -1217,6 +1252,10 @@ source "drivers/usb/Kconfig" | |||
1217 | 1252 | ||
1218 | source "drivers/mmc/Kconfig" | 1253 | source "drivers/mmc/Kconfig" |
1219 | 1254 | ||
1255 | source "drivers/memstick/Kconfig" | ||
1256 | |||
1257 | source "drivers/accessibility/Kconfig" | ||
1258 | |||
1220 | source "drivers/leds/Kconfig" | 1259 | source "drivers/leds/Kconfig" |
1221 | 1260 | ||
1222 | source "drivers/rtc/Kconfig" | 1261 | source "drivers/rtc/Kconfig" |
@@ -1225,6 +1264,8 @@ source "drivers/dma/Kconfig" | |||
1225 | 1264 | ||
1226 | source "drivers/dca/Kconfig" | 1265 | source "drivers/dca/Kconfig" |
1227 | 1266 | ||
1267 | source "drivers/auxdisplay/Kconfig" | ||
1268 | |||
1228 | source "drivers/regulator/Kconfig" | 1269 | source "drivers/regulator/Kconfig" |
1229 | 1270 | ||
1230 | source "drivers/uio/Kconfig" | 1271 | source "drivers/uio/Kconfig" |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 703a44fa0f9b..e2274bc0b544 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -47,7 +47,7 @@ comma = , | |||
47 | # Note that GCC does not numerically define an architecture version | 47 | # Note that GCC does not numerically define an architecture version |
48 | # macro, but instead defines a whole series of macros which makes | 48 | # macro, but instead defines a whole series of macros which makes |
49 | # testing for a specific architecture or later rather impossible. | 49 | # testing for a specific architecture or later rather impossible. |
50 | arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7a,-march=armv5t -Wa$(comma)-march=armv7a) | 50 | arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a) |
51 | arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) | 51 | arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) |
52 | # Only override the compiler option if ARMv6. The ARMv6K extensions are | 52 | # Only override the compiler option if ARMv6. The ARMv6K extensions are |
53 | # always available in ARMv7 | 53 | # always available in ARMv7 |
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 94462a097f86..7a03f2007882 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile | |||
@@ -76,7 +76,7 @@ KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) | |||
76 | endif | 76 | endif |
77 | 77 | ||
78 | EXTRA_CFLAGS := -fpic -fno-builtin | 78 | EXTRA_CFLAGS := -fpic -fno-builtin |
79 | EXTRA_AFLAGS := | 79 | EXTRA_AFLAGS := -Wa,-march=all |
80 | 80 | ||
81 | # Supply ZRELADDR, INITRD_PHYS and PARAMS_PHYS to the decompressor via | 81 | # Supply ZRELADDR, INITRD_PHYS and PARAMS_PHYS to the decompressor via |
82 | # linker symbols. We only define initrd_phys and params_phys if the | 82 | # linker symbols. We only define initrd_phys and params_phys if the |
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index d42f89b7760b..84a1e0496a3c 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
@@ -421,6 +421,7 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size | |||
421 | add r1, r1, #1048576 | 421 | add r1, r1, #1048576 |
422 | str r1, [r0] | 422 | str r1, [r0] |
423 | mov pc, lr | 423 | mov pc, lr |
424 | ENDPROC(__setup_mmu) | ||
424 | 425 | ||
425 | __armv4_mmu_cache_on: | 426 | __armv4_mmu_cache_on: |
426 | mov r12, lr | 427 | mov r12, lr |
@@ -801,7 +802,7 @@ loop1: | |||
801 | add r2, r2, #4 @ add 4 (line length offset) | 802 | add r2, r2, #4 @ add 4 (line length offset) |
802 | ldr r4, =0x3ff | 803 | ldr r4, =0x3ff |
803 | ands r4, r4, r1, lsr #3 @ find maximum number on the way size | 804 | ands r4, r4, r1, lsr #3 @ find maximum number on the way size |
804 | .word 0xe16f5f14 @ clz r5, r4 - find bit position of way size increment | 805 | clz r5, r4 @ find bit position of way size increment |
805 | ldr r7, =0x7fff | 806 | ldr r7, =0x7fff |
806 | ands r7, r7, r1, lsr #13 @ extract max number of the index size | 807 | ands r7, r7, r1, lsr #13 @ extract max number of the index size |
807 | loop2: | 808 | loop2: |
diff --git a/arch/arm/common/Kconfig b/arch/arm/common/Kconfig index 3e073467caca..2e32acca02fb 100644 --- a/arch/arm/common/Kconfig +++ b/arch/arm/common/Kconfig | |||
@@ -12,7 +12,8 @@ config ICST307 | |||
12 | 12 | ||
13 | config SA1111 | 13 | config SA1111 |
14 | bool | 14 | bool |
15 | select DMABOUNCE | 15 | select DMABOUNCE if !ARCH_PXA |
16 | select ZONE_DMA if !ARCH_PXA | ||
16 | 17 | ||
17 | config DMABOUNCE | 18 | config DMABOUNCE |
18 | bool | 19 | bool |
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c index aecc6c3f908f..f030f0775be7 100644 --- a/arch/arm/common/dmabounce.c +++ b/arch/arm/common/dmabounce.c | |||
@@ -154,9 +154,7 @@ alloc_safe_buffer(struct dmabounce_device_info *device_info, void *ptr, | |||
154 | #endif | 154 | #endif |
155 | 155 | ||
156 | write_lock_irqsave(&device_info->lock, flags); | 156 | write_lock_irqsave(&device_info->lock, flags); |
157 | |||
158 | list_add(&buf->node, &device_info->safe_buffers); | 157 | list_add(&buf->node, &device_info->safe_buffers); |
159 | |||
160 | write_unlock_irqrestore(&device_info->lock, flags); | 158 | write_unlock_irqrestore(&device_info->lock, flags); |
161 | 159 | ||
162 | return buf; | 160 | return buf; |
@@ -205,8 +203,22 @@ free_safe_buffer(struct dmabounce_device_info *device_info, struct safe_buffer * | |||
205 | 203 | ||
206 | /* ************************************************** */ | 204 | /* ************************************************** */ |
207 | 205 | ||
208 | static inline dma_addr_t | 206 | static struct safe_buffer *find_safe_buffer_dev(struct device *dev, |
209 | map_single(struct device *dev, void *ptr, size_t size, | 207 | dma_addr_t dma_addr, const char *where) |
208 | { | ||
209 | if (!dev || !dev->archdata.dmabounce) | ||
210 | return NULL; | ||
211 | if (dma_mapping_error(dev, dma_addr)) { | ||
212 | if (dev) | ||
213 | dev_err(dev, "Trying to %s invalid mapping\n", where); | ||
214 | else | ||
215 | pr_err("unknown device: Trying to %s invalid mapping\n", where); | ||
216 | return NULL; | ||
217 | } | ||
218 | return find_safe_buffer(dev->archdata.dmabounce, dma_addr); | ||
219 | } | ||
220 | |||
221 | static inline dma_addr_t map_single(struct device *dev, void *ptr, size_t size, | ||
210 | enum dma_data_direction dir) | 222 | enum dma_data_direction dir) |
211 | { | 223 | { |
212 | struct dmabounce_device_info *device_info = dev->archdata.dmabounce; | 224 | struct dmabounce_device_info *device_info = dev->archdata.dmabounce; |
@@ -270,33 +282,21 @@ map_single(struct device *dev, void *ptr, size_t size, | |||
270 | return dma_addr; | 282 | return dma_addr; |
271 | } | 283 | } |
272 | 284 | ||
273 | static inline void | 285 | static inline void unmap_single(struct device *dev, dma_addr_t dma_addr, |
274 | unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | 286 | size_t size, enum dma_data_direction dir) |
275 | enum dma_data_direction dir) | ||
276 | { | 287 | { |
277 | struct dmabounce_device_info *device_info = dev->archdata.dmabounce; | 288 | struct safe_buffer *buf = find_safe_buffer_dev(dev, dma_addr, "unmap"); |
278 | struct safe_buffer *buf = NULL; | ||
279 | |||
280 | /* | ||
281 | * Trying to unmap an invalid mapping | ||
282 | */ | ||
283 | if (dma_mapping_error(dev, dma_addr)) { | ||
284 | dev_err(dev, "Trying to unmap invalid mapping\n"); | ||
285 | return; | ||
286 | } | ||
287 | |||
288 | if (device_info) | ||
289 | buf = find_safe_buffer(device_info, dma_addr); | ||
290 | 289 | ||
291 | if (buf) { | 290 | if (buf) { |
292 | BUG_ON(buf->size != size); | 291 | BUG_ON(buf->size != size); |
292 | BUG_ON(buf->direction != dir); | ||
293 | 293 | ||
294 | dev_dbg(dev, | 294 | dev_dbg(dev, |
295 | "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n", | 295 | "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n", |
296 | __func__, buf->ptr, virt_to_dma(dev, buf->ptr), | 296 | __func__, buf->ptr, virt_to_dma(dev, buf->ptr), |
297 | buf->safe, buf->safe_dma_addr); | 297 | buf->safe, buf->safe_dma_addr); |
298 | 298 | ||
299 | DO_STATS ( device_info->bounce_count++ ); | 299 | DO_STATS(dev->archdata.dmabounce->bounce_count++); |
300 | 300 | ||
301 | if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) { | 301 | if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) { |
302 | void *ptr = buf->ptr; | 302 | void *ptr = buf->ptr; |
@@ -317,74 +317,7 @@ unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | |||
317 | dmac_clean_range(ptr, ptr + size); | 317 | dmac_clean_range(ptr, ptr + size); |
318 | outer_clean_range(__pa(ptr), __pa(ptr) + size); | 318 | outer_clean_range(__pa(ptr), __pa(ptr) + size); |
319 | } | 319 | } |
320 | free_safe_buffer(device_info, buf); | 320 | free_safe_buffer(dev->archdata.dmabounce, buf); |
321 | } | ||
322 | } | ||
323 | |||
324 | static int sync_single(struct device *dev, dma_addr_t dma_addr, size_t size, | ||
325 | enum dma_data_direction dir) | ||
326 | { | ||
327 | struct dmabounce_device_info *device_info = dev->archdata.dmabounce; | ||
328 | struct safe_buffer *buf = NULL; | ||
329 | |||
330 | if (device_info) | ||
331 | buf = find_safe_buffer(device_info, dma_addr); | ||
332 | |||
333 | if (buf) { | ||
334 | /* | ||
335 | * Both of these checks from original code need to be | ||
336 | * commented out b/c some drivers rely on the following: | ||
337 | * | ||
338 | * 1) Drivers may map a large chunk of memory into DMA space | ||
339 | * but only sync a small portion of it. Good example is | ||
340 | * allocating a large buffer, mapping it, and then | ||
341 | * breaking it up into small descriptors. No point | ||
342 | * in syncing the whole buffer if you only have to | ||
343 | * touch one descriptor. | ||
344 | * | ||
345 | * 2) Buffers that are mapped as DMA_BIDIRECTIONAL are | ||
346 | * usually only synced in one dir at a time. | ||
347 | * | ||
348 | * See drivers/net/eepro100.c for examples of both cases. | ||
349 | * | ||
350 | * -ds | ||
351 | * | ||
352 | * BUG_ON(buf->size != size); | ||
353 | * BUG_ON(buf->direction != dir); | ||
354 | */ | ||
355 | |||
356 | dev_dbg(dev, | ||
357 | "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n", | ||
358 | __func__, buf->ptr, virt_to_dma(dev, buf->ptr), | ||
359 | buf->safe, buf->safe_dma_addr); | ||
360 | |||
361 | DO_STATS ( device_info->bounce_count++ ); | ||
362 | |||
363 | switch (dir) { | ||
364 | case DMA_FROM_DEVICE: | ||
365 | dev_dbg(dev, | ||
366 | "%s: copy back safe %p to unsafe %p size %d\n", | ||
367 | __func__, buf->safe, buf->ptr, size); | ||
368 | memcpy(buf->ptr, buf->safe, size); | ||
369 | break; | ||
370 | case DMA_TO_DEVICE: | ||
371 | dev_dbg(dev, | ||
372 | "%s: copy out unsafe %p to safe %p, size %d\n", | ||
373 | __func__,buf->ptr, buf->safe, size); | ||
374 | memcpy(buf->safe, buf->ptr, size); | ||
375 | break; | ||
376 | case DMA_BIDIRECTIONAL: | ||
377 | BUG(); /* is this allowed? what does it mean? */ | ||
378 | default: | ||
379 | BUG(); | ||
380 | } | ||
381 | /* | ||
382 | * No need to sync the safe buffer - it was allocated | ||
383 | * via the coherent allocators. | ||
384 | */ | ||
385 | return 0; | ||
386 | } else { | ||
387 | return 1; | ||
388 | } | 321 | } |
389 | } | 322 | } |
390 | 323 | ||
@@ -396,21 +329,29 @@ static int sync_single(struct device *dev, dma_addr_t dma_addr, size_t size, | |||
396 | * substitute the safe buffer for the unsafe one. | 329 | * substitute the safe buffer for the unsafe one. |
397 | * (basically move the buffer from an unsafe area to a safe one) | 330 | * (basically move the buffer from an unsafe area to a safe one) |
398 | */ | 331 | */ |
399 | dma_addr_t | 332 | dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size, |
400 | dma_map_single(struct device *dev, void *ptr, size_t size, | ||
401 | enum dma_data_direction dir) | 333 | enum dma_data_direction dir) |
402 | { | 334 | { |
403 | dma_addr_t dma_addr; | ||
404 | |||
405 | dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", | 335 | dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", |
406 | __func__, ptr, size, dir); | 336 | __func__, ptr, size, dir); |
407 | 337 | ||
408 | BUG_ON(dir == DMA_NONE); | 338 | BUG_ON(!valid_dma_direction(dir)); |
409 | 339 | ||
410 | dma_addr = map_single(dev, ptr, size, dir); | 340 | return map_single(dev, ptr, size, dir); |
341 | } | ||
342 | EXPORT_SYMBOL(dma_map_single); | ||
411 | 343 | ||
412 | return dma_addr; | 344 | dma_addr_t dma_map_page(struct device *dev, struct page *page, |
345 | unsigned long offset, size_t size, enum dma_data_direction dir) | ||
346 | { | ||
347 | dev_dbg(dev, "%s(page=%p,off=%#lx,size=%zx,dir=%x)\n", | ||
348 | __func__, page, offset, size, dir); | ||
349 | |||
350 | BUG_ON(!valid_dma_direction(dir)); | ||
351 | |||
352 | return map_single(dev, page_address(page) + offset, size, dir); | ||
413 | } | 353 | } |
354 | EXPORT_SYMBOL(dma_map_page); | ||
414 | 355 | ||
415 | /* | 356 | /* |
416 | * see if a mapped address was really a "safe" buffer and if so, copy | 357 | * see if a mapped address was really a "safe" buffer and if so, copy |
@@ -419,126 +360,76 @@ dma_map_single(struct device *dev, void *ptr, size_t size, | |||
419 | * should be) | 360 | * should be) |
420 | */ | 361 | */ |
421 | 362 | ||
422 | void | 363 | void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, |
423 | dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | 364 | enum dma_data_direction dir) |
424 | enum dma_data_direction dir) | ||
425 | { | 365 | { |
426 | dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", | 366 | dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", |
427 | __func__, (void *) dma_addr, size, dir); | 367 | __func__, (void *) dma_addr, size, dir); |
428 | 368 | ||
429 | BUG_ON(dir == DMA_NONE); | ||
430 | |||
431 | unmap_single(dev, dma_addr, size, dir); | 369 | unmap_single(dev, dma_addr, size, dir); |
432 | } | 370 | } |
371 | EXPORT_SYMBOL(dma_unmap_single); | ||
433 | 372 | ||
434 | int | 373 | int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr, |
435 | dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | 374 | unsigned long off, size_t sz, enum dma_data_direction dir) |
436 | enum dma_data_direction dir) | ||
437 | { | 375 | { |
438 | int i; | 376 | struct safe_buffer *buf; |
439 | |||
440 | dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", | ||
441 | __func__, sg, nents, dir); | ||
442 | |||
443 | BUG_ON(dir == DMA_NONE); | ||
444 | |||
445 | for (i = 0; i < nents; i++, sg++) { | ||
446 | struct page *page = sg_page(sg); | ||
447 | unsigned int offset = sg->offset; | ||
448 | unsigned int length = sg->length; | ||
449 | void *ptr = page_address(page) + offset; | ||
450 | 377 | ||
451 | sg->dma_address = | 378 | dev_dbg(dev, "%s(dma=%#x,off=%#lx,sz=%zx,dir=%x)\n", |
452 | map_single(dev, ptr, length, dir); | 379 | __func__, addr, off, sz, dir); |
453 | } | ||
454 | 380 | ||
455 | return nents; | 381 | buf = find_safe_buffer_dev(dev, addr, __func__); |
456 | } | 382 | if (!buf) |
457 | 383 | return 1; | |
458 | void | ||
459 | dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents, | ||
460 | enum dma_data_direction dir) | ||
461 | { | ||
462 | int i; | ||
463 | 384 | ||
464 | dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", | 385 | BUG_ON(buf->direction != dir); |
465 | __func__, sg, nents, dir); | ||
466 | 386 | ||
467 | BUG_ON(dir == DMA_NONE); | 387 | dev_dbg(dev, "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n", |
388 | __func__, buf->ptr, virt_to_dma(dev, buf->ptr), | ||
389 | buf->safe, buf->safe_dma_addr); | ||
468 | 390 | ||
469 | for (i = 0; i < nents; i++, sg++) { | 391 | DO_STATS(dev->archdata.dmabounce->bounce_count++); |
470 | dma_addr_t dma_addr = sg->dma_address; | ||
471 | unsigned int length = sg->length; | ||
472 | 392 | ||
473 | unmap_single(dev, dma_addr, length, dir); | 393 | if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) { |
394 | dev_dbg(dev, "%s: copy back safe %p to unsafe %p size %d\n", | ||
395 | __func__, buf->safe + off, buf->ptr + off, sz); | ||
396 | memcpy(buf->ptr + off, buf->safe + off, sz); | ||
474 | } | 397 | } |
398 | return 0; | ||
475 | } | 399 | } |
400 | EXPORT_SYMBOL(dmabounce_sync_for_cpu); | ||
476 | 401 | ||
477 | void dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_addr, | 402 | int dmabounce_sync_for_device(struct device *dev, dma_addr_t addr, |
478 | unsigned long offset, size_t size, | 403 | unsigned long off, size_t sz, enum dma_data_direction dir) |
479 | enum dma_data_direction dir) | ||
480 | { | ||
481 | dev_dbg(dev, "%s(dma=%#x,off=%#lx,size=%zx,dir=%x)\n", | ||
482 | __func__, dma_addr, offset, size, dir); | ||
483 | |||
484 | if (sync_single(dev, dma_addr, offset + size, dir)) | ||
485 | dma_cache_maint(dma_to_virt(dev, dma_addr) + offset, size, dir); | ||
486 | } | ||
487 | EXPORT_SYMBOL(dma_sync_single_range_for_cpu); | ||
488 | |||
489 | void dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_addr, | ||
490 | unsigned long offset, size_t size, | ||
491 | enum dma_data_direction dir) | ||
492 | { | ||
493 | dev_dbg(dev, "%s(dma=%#x,off=%#lx,size=%zx,dir=%x)\n", | ||
494 | __func__, dma_addr, offset, size, dir); | ||
495 | |||
496 | if (sync_single(dev, dma_addr, offset + size, dir)) | ||
497 | dma_cache_maint(dma_to_virt(dev, dma_addr) + offset, size, dir); | ||
498 | } | ||
499 | EXPORT_SYMBOL(dma_sync_single_range_for_device); | ||
500 | |||
501 | void | ||
502 | dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nents, | ||
503 | enum dma_data_direction dir) | ||
504 | { | 404 | { |
505 | int i; | 405 | struct safe_buffer *buf; |
506 | |||
507 | dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", | ||
508 | __func__, sg, nents, dir); | ||
509 | |||
510 | BUG_ON(dir == DMA_NONE); | ||
511 | 406 | ||
512 | for (i = 0; i < nents; i++, sg++) { | 407 | dev_dbg(dev, "%s(dma=%#x,off=%#lx,sz=%zx,dir=%x)\n", |
513 | dma_addr_t dma_addr = sg->dma_address; | 408 | __func__, addr, off, sz, dir); |
514 | unsigned int length = sg->length; | ||
515 | 409 | ||
516 | sync_single(dev, dma_addr, length, dir); | 410 | buf = find_safe_buffer_dev(dev, addr, __func__); |
517 | } | 411 | if (!buf) |
518 | } | 412 | return 1; |
519 | |||
520 | void | ||
521 | dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nents, | ||
522 | enum dma_data_direction dir) | ||
523 | { | ||
524 | int i; | ||
525 | 413 | ||
526 | dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", | 414 | BUG_ON(buf->direction != dir); |
527 | __func__, sg, nents, dir); | ||
528 | 415 | ||
529 | BUG_ON(dir == DMA_NONE); | 416 | dev_dbg(dev, "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n", |
417 | __func__, buf->ptr, virt_to_dma(dev, buf->ptr), | ||
418 | buf->safe, buf->safe_dma_addr); | ||
530 | 419 | ||
531 | for (i = 0; i < nents; i++, sg++) { | 420 | DO_STATS(dev->archdata.dmabounce->bounce_count++); |
532 | dma_addr_t dma_addr = sg->dma_address; | ||
533 | unsigned int length = sg->length; | ||
534 | 421 | ||
535 | sync_single(dev, dma_addr, length, dir); | 422 | if (dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL) { |
423 | dev_dbg(dev, "%s: copy out unsafe %p to safe %p, size %d\n", | ||
424 | __func__,buf->ptr + off, buf->safe + off, sz); | ||
425 | memcpy(buf->safe + off, buf->ptr + off, sz); | ||
536 | } | 426 | } |
427 | return 0; | ||
537 | } | 428 | } |
429 | EXPORT_SYMBOL(dmabounce_sync_for_device); | ||
538 | 430 | ||
539 | static int | 431 | static int dmabounce_init_pool(struct dmabounce_pool *pool, struct device *dev, |
540 | dmabounce_init_pool(struct dmabounce_pool *pool, struct device *dev, const char *name, | 432 | const char *name, unsigned long size) |
541 | unsigned long size) | ||
542 | { | 433 | { |
543 | pool->size = size; | 434 | pool->size = size; |
544 | DO_STATS(pool->allocs = 0); | 435 | DO_STATS(pool->allocs = 0); |
@@ -549,9 +440,8 @@ dmabounce_init_pool(struct dmabounce_pool *pool, struct device *dev, const char | |||
549 | return pool->pool ? 0 : -ENOMEM; | 440 | return pool->pool ? 0 : -ENOMEM; |
550 | } | 441 | } |
551 | 442 | ||
552 | int | 443 | int dmabounce_register_dev(struct device *dev, unsigned long small_buffer_size, |
553 | dmabounce_register_dev(struct device *dev, unsigned long small_buffer_size, | 444 | unsigned long large_buffer_size) |
554 | unsigned long large_buffer_size) | ||
555 | { | 445 | { |
556 | struct dmabounce_device_info *device_info; | 446 | struct dmabounce_device_info *device_info; |
557 | int ret; | 447 | int ret; |
@@ -607,9 +497,9 @@ dmabounce_register_dev(struct device *dev, unsigned long small_buffer_size, | |||
607 | kfree(device_info); | 497 | kfree(device_info); |
608 | return ret; | 498 | return ret; |
609 | } | 499 | } |
500 | EXPORT_SYMBOL(dmabounce_register_dev); | ||
610 | 501 | ||
611 | void | 502 | void dmabounce_unregister_dev(struct device *dev) |
612 | dmabounce_unregister_dev(struct device *dev) | ||
613 | { | 503 | { |
614 | struct dmabounce_device_info *device_info = dev->archdata.dmabounce; | 504 | struct dmabounce_device_info *device_info = dev->archdata.dmabounce; |
615 | 505 | ||
@@ -642,15 +532,6 @@ dmabounce_unregister_dev(struct device *dev) | |||
642 | 532 | ||
643 | dev_info(dev, "dmabounce: device unregistered\n"); | 533 | dev_info(dev, "dmabounce: device unregistered\n"); |
644 | } | 534 | } |
645 | |||
646 | |||
647 | EXPORT_SYMBOL(dma_map_single); | ||
648 | EXPORT_SYMBOL(dma_unmap_single); | ||
649 | EXPORT_SYMBOL(dma_map_sg); | ||
650 | EXPORT_SYMBOL(dma_unmap_sg); | ||
651 | EXPORT_SYMBOL(dma_sync_sg_for_cpu); | ||
652 | EXPORT_SYMBOL(dma_sync_sg_for_device); | ||
653 | EXPORT_SYMBOL(dmabounce_register_dev); | ||
654 | EXPORT_SYMBOL(dmabounce_unregister_dev); | 535 | EXPORT_SYMBOL(dmabounce_unregister_dev); |
655 | 536 | ||
656 | MODULE_AUTHOR("Christopher Hoover <ch@hpl.hp.com>, Deepak Saxena <dsaxena@plexity.net>"); | 537 | MODULE_AUTHOR("Christopher Hoover <ch@hpl.hp.com>, Deepak Saxena <dsaxena@plexity.net>"); |
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c index 0c89bd35e06f..7fc9860a97d7 100644 --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c | |||
@@ -27,9 +27,9 @@ | |||
27 | #include <linux/list.h> | 27 | #include <linux/list.h> |
28 | #include <linux/smp.h> | 28 | #include <linux/smp.h> |
29 | #include <linux/cpumask.h> | 29 | #include <linux/cpumask.h> |
30 | #include <linux/io.h> | ||
30 | 31 | ||
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | #include <asm/io.h> | ||
33 | #include <asm/mach/irq.h> | 33 | #include <asm/mach/irq.h> |
34 | #include <asm/hardware/gic.h> | 34 | #include <asm/hardware/gic.h> |
35 | 35 | ||
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c index 283051eaf931..534b23d95864 100644 --- a/arch/arm/common/locomo.c +++ b/arch/arm/common/locomo.c | |||
@@ -24,9 +24,9 @@ | |||
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/spinlock.h> | 26 | #include <linux/spinlock.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | #include <asm/mach/irq.h> | 31 | #include <asm/mach/irq.h> |
32 | 32 | ||
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index ec8a5471bf06..fb86f248aab8 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c | |||
@@ -25,10 +25,10 @@ | |||
25 | #include <linux/spinlock.h> | 25 | #include <linux/spinlock.h> |
26 | #include <linux/dma-mapping.h> | 26 | #include <linux/dma-mapping.h> |
27 | #include <linux/clk.h> | 27 | #include <linux/clk.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
31 | #include <asm/io.h> | ||
32 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
33 | #include <asm/mach/irq.h> | 33 | #include <asm/mach/irq.h> |
34 | #include <asm/sizes.h> | 34 | #include <asm/sizes.h> |
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c index ae39553589dd..697c64913990 100644 --- a/arch/arm/common/scoop.c +++ b/arch/arm/common/scoop.c | |||
@@ -15,7 +15,7 @@ | |||
15 | #include <linux/string.h> | 15 | #include <linux/string.h> |
16 | #include <linux/slab.h> | 16 | #include <linux/slab.h> |
17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
18 | #include <asm/io.h> | 18 | #include <linux/io.h> |
19 | #include <asm/gpio.h> | 19 | #include <asm/gpio.h> |
20 | #include <asm/hardware/scoop.h> | 20 | #include <asm/hardware/scoop.h> |
21 | 21 | ||
diff --git a/arch/arm/common/time-acorn.c b/arch/arm/common/time-acorn.c index df0983aafe69..deeed561b168 100644 --- a/arch/arm/common/time-acorn.c +++ b/arch/arm/common/time-acorn.c | |||
@@ -17,9 +17,9 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
20 | #include <linux/io.h> | ||
20 | 21 | ||
21 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
22 | #include <asm/io.h> | ||
23 | #include <asm/hardware/ioc.h> | 23 | #include <asm/hardware/ioc.h> |
24 | 24 | ||
25 | #include <asm/mach/time.h> | 25 | #include <asm/mach/time.h> |
diff --git a/arch/arm/common/uengine.c b/arch/arm/common/uengine.c index 7ecd3c0ab011..b520e56216a9 100644 --- a/arch/arm/common/uengine.c +++ b/arch/arm/common/uengine.c | |||
@@ -16,9 +16,9 @@ | |||
16 | #include <linux/slab.h> | 16 | #include <linux/slab.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/string.h> | 18 | #include <linux/string.h> |
19 | #include <linux/io.h> | ||
19 | #include <mach/hardware.h> | 20 | #include <mach/hardware.h> |
20 | #include <asm/hardware/uengine.h> | 21 | #include <asm/hardware/uengine.h> |
21 | #include <asm/io.h> | ||
22 | 22 | ||
23 | #if defined(CONFIG_ARCH_IXP2000) | 23 | #if defined(CONFIG_ARCH_IXP2000) |
24 | #define IXP_UENGINE_CSR_VIRT_BASE IXP2000_UENGINE_CSR_VIRT_BASE | 24 | #define IXP_UENGINE_CSR_VIRT_BASE IXP2000_UENGINE_CSR_VIRT_BASE |
diff --git a/arch/arm/common/via82c505.c b/arch/arm/common/via82c505.c index 79a8206e62ac..8421d39109b3 100644 --- a/arch/arm/common/via82c505.c +++ b/arch/arm/common/via82c505.c | |||
@@ -4,8 +4,8 @@ | |||
4 | #include <linux/mm.h> | 4 | #include <linux/mm.h> |
5 | #include <linux/init.h> | 5 | #include <linux/init.h> |
6 | #include <linux/ioport.h> | 6 | #include <linux/ioport.h> |
7 | #include <linux/io.h> | ||
7 | 8 | ||
8 | #include <asm/io.h> | ||
9 | #include <asm/system.h> | 9 | #include <asm/system.h> |
10 | 10 | ||
11 | #include <asm/mach/pci.h> | 11 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c index c026fa2214a3..f1e4b8f60cab 100644 --- a/arch/arm/common/vic.c +++ b/arch/arm/common/vic.c | |||
@@ -20,8 +20,8 @@ | |||
20 | */ | 20 | */ |
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/list.h> | 22 | #include <linux/list.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/io.h> | ||
25 | #include <asm/mach/irq.h> | 25 | #include <asm/mach/irq.h> |
26 | #include <asm/hardware/vic.h> | 26 | #include <asm/hardware/vic.h> |
27 | 27 | ||
diff --git a/arch/arm/include/asm/bug.h b/arch/arm/include/asm/bug.h index 7b62351f097d..4d88425a4169 100644 --- a/arch/arm/include/asm/bug.h +++ b/arch/arm/include/asm/bug.h | |||
@@ -12,7 +12,7 @@ extern void __bug(const char *file, int line) __attribute__((noreturn)); | |||
12 | #else | 12 | #else |
13 | 13 | ||
14 | /* this just causes an oops */ | 14 | /* this just causes an oops */ |
15 | #define BUG() (*(int *)0 = 0) | 15 | #define BUG() do { *(int *)0 = 0; } while (1) |
16 | 16 | ||
17 | #endif | 17 | #endif |
18 | 18 | ||
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index 9073d9c6567e..de6c59f814a1 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h | |||
@@ -444,94 +444,4 @@ static inline void flush_ioremap_region(unsigned long phys, void __iomem *virt, | |||
444 | dmac_inv_range(start, start + size); | 444 | dmac_inv_range(start, start + size); |
445 | } | 445 | } |
446 | 446 | ||
447 | #define __cacheid_present(val) (val != read_cpuid(CPUID_ID)) | ||
448 | #define __cacheid_type_v7(val) ((val & (7 << 29)) == (4 << 29)) | ||
449 | |||
450 | #define __cacheid_vivt_prev7(val) ((val & (15 << 25)) != (14 << 25)) | ||
451 | #define __cacheid_vipt_prev7(val) ((val & (15 << 25)) == (14 << 25)) | ||
452 | #define __cacheid_vipt_nonaliasing_prev7(val) ((val & (15 << 25 | 1 << 23)) == (14 << 25)) | ||
453 | #define __cacheid_vipt_aliasing_prev7(val) ((val & (15 << 25 | 1 << 23)) == (14 << 25 | 1 << 23)) | ||
454 | |||
455 | #define __cacheid_vivt(val) (__cacheid_type_v7(val) ? 0 : __cacheid_vivt_prev7(val)) | ||
456 | #define __cacheid_vipt(val) (__cacheid_type_v7(val) ? 1 : __cacheid_vipt_prev7(val)) | ||
457 | #define __cacheid_vipt_nonaliasing(val) (__cacheid_type_v7(val) ? 1 : __cacheid_vipt_nonaliasing_prev7(val)) | ||
458 | #define __cacheid_vipt_aliasing(val) (__cacheid_type_v7(val) ? 0 : __cacheid_vipt_aliasing_prev7(val)) | ||
459 | #define __cacheid_vivt_asid_tagged_instr(val) (__cacheid_type_v7(val) ? ((val & (3 << 14)) == (1 << 14)) : 0) | ||
460 | |||
461 | #if defined(CONFIG_CPU_CACHE_VIVT) && !defined(CONFIG_CPU_CACHE_VIPT) | ||
462 | /* | ||
463 | * VIVT caches only | ||
464 | */ | ||
465 | #define cache_is_vivt() 1 | ||
466 | #define cache_is_vipt() 0 | ||
467 | #define cache_is_vipt_nonaliasing() 0 | ||
468 | #define cache_is_vipt_aliasing() 0 | ||
469 | #define icache_is_vivt_asid_tagged() 0 | ||
470 | |||
471 | #elif !defined(CONFIG_CPU_CACHE_VIVT) && defined(CONFIG_CPU_CACHE_VIPT) | ||
472 | /* | ||
473 | * VIPT caches only | ||
474 | */ | ||
475 | #define cache_is_vivt() 0 | ||
476 | #define cache_is_vipt() 1 | ||
477 | #define cache_is_vipt_nonaliasing() \ | ||
478 | ({ \ | ||
479 | unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ | ||
480 | __cacheid_vipt_nonaliasing(__val); \ | ||
481 | }) | ||
482 | |||
483 | #define cache_is_vipt_aliasing() \ | ||
484 | ({ \ | ||
485 | unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ | ||
486 | __cacheid_vipt_aliasing(__val); \ | ||
487 | }) | ||
488 | |||
489 | #define icache_is_vivt_asid_tagged() \ | ||
490 | ({ \ | ||
491 | unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ | ||
492 | __cacheid_vivt_asid_tagged_instr(__val); \ | ||
493 | }) | ||
494 | |||
495 | #else | ||
496 | /* | ||
497 | * VIVT or VIPT caches. Note that this is unreliable since ARM926 | ||
498 | * and V6 CPUs satisfy the "(val & (15 << 25)) == (14 << 25)" test. | ||
499 | * There's no way to tell from the CacheType register what type (!) | ||
500 | * the cache is. | ||
501 | */ | ||
502 | #define cache_is_vivt() \ | ||
503 | ({ \ | ||
504 | unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ | ||
505 | (!__cacheid_present(__val)) || __cacheid_vivt(__val); \ | ||
506 | }) | ||
507 | |||
508 | #define cache_is_vipt() \ | ||
509 | ({ \ | ||
510 | unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ | ||
511 | __cacheid_present(__val) && __cacheid_vipt(__val); \ | ||
512 | }) | ||
513 | |||
514 | #define cache_is_vipt_nonaliasing() \ | ||
515 | ({ \ | ||
516 | unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ | ||
517 | __cacheid_present(__val) && \ | ||
518 | __cacheid_vipt_nonaliasing(__val); \ | ||
519 | }) | ||
520 | |||
521 | #define cache_is_vipt_aliasing() \ | ||
522 | ({ \ | ||
523 | unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ | ||
524 | __cacheid_present(__val) && \ | ||
525 | __cacheid_vipt_aliasing(__val); \ | ||
526 | }) | ||
527 | |||
528 | #define icache_is_vivt_asid_tagged() \ | ||
529 | ({ \ | ||
530 | unsigned int __val = read_cpuid(CPUID_CACHETYPE); \ | ||
531 | __cacheid_present(__val) && \ | ||
532 | __cacheid_vivt_asid_tagged_instr(__val); \ | ||
533 | }) | ||
534 | |||
535 | #endif | ||
536 | |||
537 | #endif | 447 | #endif |
diff --git a/arch/arm/include/asm/cachetype.h b/arch/arm/include/asm/cachetype.h new file mode 100644 index 000000000000..d3a4c2cb9f2f --- /dev/null +++ b/arch/arm/include/asm/cachetype.h | |||
@@ -0,0 +1,52 @@ | |||
1 | #ifndef __ASM_ARM_CACHETYPE_H | ||
2 | #define __ASM_ARM_CACHETYPE_H | ||
3 | |||
4 | #define CACHEID_VIVT (1 << 0) | ||
5 | #define CACHEID_VIPT_NONALIASING (1 << 1) | ||
6 | #define CACHEID_VIPT_ALIASING (1 << 2) | ||
7 | #define CACHEID_VIPT (CACHEID_VIPT_ALIASING|CACHEID_VIPT_NONALIASING) | ||
8 | #define CACHEID_ASID_TAGGED (1 << 3) | ||
9 | |||
10 | extern unsigned int cacheid; | ||
11 | |||
12 | #define cache_is_vivt() cacheid_is(CACHEID_VIVT) | ||
13 | #define cache_is_vipt() cacheid_is(CACHEID_VIPT) | ||
14 | #define cache_is_vipt_nonaliasing() cacheid_is(CACHEID_VIPT_NONALIASING) | ||
15 | #define cache_is_vipt_aliasing() cacheid_is(CACHEID_VIPT_ALIASING) | ||
16 | #define icache_is_vivt_asid_tagged() cacheid_is(CACHEID_ASID_TAGGED) | ||
17 | |||
18 | /* | ||
19 | * __LINUX_ARM_ARCH__ is the minimum supported CPU architecture | ||
20 | * Mask out support which will never be present on newer CPUs. | ||
21 | * - v6+ is never VIVT | ||
22 | * - v7+ VIPT never aliases | ||
23 | */ | ||
24 | #if __LINUX_ARM_ARCH__ >= 7 | ||
25 | #define __CACHEID_ARCH_MIN (CACHEID_VIPT_NONALIASING | CACHEID_ASID_TAGGED) | ||
26 | #elif __LINUX_ARM_ARCH__ >= 6 | ||
27 | #define __CACHEID_ARCH_MIN (~CACHEID_VIVT) | ||
28 | #else | ||
29 | #define __CACHEID_ARCH_MIN (~0) | ||
30 | #endif | ||
31 | |||
32 | /* | ||
33 | * Mask out support which isn't configured | ||
34 | */ | ||
35 | #if defined(CONFIG_CPU_CACHE_VIVT) && !defined(CONFIG_CPU_CACHE_VIPT) | ||
36 | #define __CACHEID_ALWAYS (CACHEID_VIVT) | ||
37 | #define __CACHEID_NEVER (~CACHEID_VIVT) | ||
38 | #elif !defined(CONFIG_CPU_CACHE_VIVT) && defined(CONFIG_CPU_CACHE_VIPT) | ||
39 | #define __CACHEID_ALWAYS (0) | ||
40 | #define __CACHEID_NEVER (CACHEID_VIVT) | ||
41 | #else | ||
42 | #define __CACHEID_ALWAYS (0) | ||
43 | #define __CACHEID_NEVER (0) | ||
44 | #endif | ||
45 | |||
46 | static inline unsigned int __attribute__((pure)) cacheid_is(unsigned int mask) | ||
47 | { | ||
48 | return (__CACHEID_ALWAYS & mask) | | ||
49 | (~__CACHEID_NEVER & __CACHEID_ARCH_MIN & mask & cacheid); | ||
50 | } | ||
51 | |||
52 | #endif | ||
diff --git a/arch/arm/include/asm/cputype.h b/arch/arm/include/asm/cputype.h new file mode 100644 index 000000000000..7b9d27e749b8 --- /dev/null +++ b/arch/arm/include/asm/cputype.h | |||
@@ -0,0 +1,64 @@ | |||
1 | #ifndef __ASM_ARM_CPUTYPE_H | ||
2 | #define __ASM_ARM_CPUTYPE_H | ||
3 | |||
4 | #include <linux/stringify.h> | ||
5 | |||
6 | #define CPUID_ID 0 | ||
7 | #define CPUID_CACHETYPE 1 | ||
8 | #define CPUID_TCM 2 | ||
9 | #define CPUID_TLBTYPE 3 | ||
10 | |||
11 | #ifdef CONFIG_CPU_CP15 | ||
12 | #define read_cpuid(reg) \ | ||
13 | ({ \ | ||
14 | unsigned int __val; \ | ||
15 | asm("mrc p15, 0, %0, c0, c0, " __stringify(reg) \ | ||
16 | : "=r" (__val) \ | ||
17 | : \ | ||
18 | : "cc"); \ | ||
19 | __val; \ | ||
20 | }) | ||
21 | #else | ||
22 | extern unsigned int processor_id; | ||
23 | #define read_cpuid(reg) (processor_id) | ||
24 | #endif | ||
25 | |||
26 | /* | ||
27 | * The CPU ID never changes at run time, so we might as well tell the | ||
28 | * compiler that it's constant. Use this function to read the CPU ID | ||
29 | * rather than directly reading processor_id or read_cpuid() directly. | ||
30 | */ | ||
31 | static inline unsigned int __attribute_const__ read_cpuid_id(void) | ||
32 | { | ||
33 | return read_cpuid(CPUID_ID); | ||
34 | } | ||
35 | |||
36 | static inline unsigned int __attribute_const__ read_cpuid_cachetype(void) | ||
37 | { | ||
38 | return read_cpuid(CPUID_CACHETYPE); | ||
39 | } | ||
40 | |||
41 | /* | ||
42 | * Intel's XScale3 core supports some v6 features (supersections, L2) | ||
43 | * but advertises itself as v5 as it does not support the v6 ISA. For | ||
44 | * this reason, we need a way to explicitly test for this type of CPU. | ||
45 | */ | ||
46 | #ifndef CONFIG_CPU_XSC3 | ||
47 | #define cpu_is_xsc3() 0 | ||
48 | #else | ||
49 | static inline int cpu_is_xsc3(void) | ||
50 | { | ||
51 | if ((read_cpuid_id() & 0xffffe000) == 0x69056000) | ||
52 | return 1; | ||
53 | |||
54 | return 0; | ||
55 | } | ||
56 | #endif | ||
57 | |||
58 | #if !defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_CPU_XSC3) | ||
59 | #define cpu_is_xscale() 0 | ||
60 | #else | ||
61 | #define cpu_is_xscale() 1 | ||
62 | #endif | ||
63 | |||
64 | #endif | ||
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h index 7b95d2058395..1cb8602dd9d5 100644 --- a/arch/arm/include/asm/dma-mapping.h +++ b/arch/arm/include/asm/dma-mapping.h | |||
@@ -104,15 +104,14 @@ static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) | |||
104 | * Dummy noncoherent implementation. We don't provide a dma_cache_sync | 104 | * Dummy noncoherent implementation. We don't provide a dma_cache_sync |
105 | * function so drivers using this API are highlighted with build warnings. | 105 | * function so drivers using this API are highlighted with build warnings. |
106 | */ | 106 | */ |
107 | static inline void * | 107 | static inline void *dma_alloc_noncoherent(struct device *dev, size_t size, |
108 | dma_alloc_noncoherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp) | 108 | dma_addr_t *handle, gfp_t gfp) |
109 | { | 109 | { |
110 | return NULL; | 110 | return NULL; |
111 | } | 111 | } |
112 | 112 | ||
113 | static inline void | 113 | static inline void dma_free_noncoherent(struct device *dev, size_t size, |
114 | dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, | 114 | void *cpu_addr, dma_addr_t handle) |
115 | dma_addr_t handle) | ||
116 | { | 115 | { |
117 | } | 116 | } |
118 | 117 | ||
@@ -127,8 +126,7 @@ dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, | |||
127 | * return the CPU-viewed address, and sets @handle to be the | 126 | * return the CPU-viewed address, and sets @handle to be the |
128 | * device-viewed address. | 127 | * device-viewed address. |
129 | */ | 128 | */ |
130 | extern void * | 129 | extern void *dma_alloc_coherent(struct device *, size_t, dma_addr_t *, gfp_t); |
131 | dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp); | ||
132 | 130 | ||
133 | /** | 131 | /** |
134 | * dma_free_coherent - free memory allocated by dma_alloc_coherent | 132 | * dma_free_coherent - free memory allocated by dma_alloc_coherent |
@@ -143,9 +141,7 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gf | |||
143 | * References to memory and mappings associated with cpu_addr/handle | 141 | * References to memory and mappings associated with cpu_addr/handle |
144 | * during and after this call executing are illegal. | 142 | * during and after this call executing are illegal. |
145 | */ | 143 | */ |
146 | extern void | 144 | extern void dma_free_coherent(struct device *, size_t, void *, dma_addr_t); |
147 | dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, | ||
148 | dma_addr_t handle); | ||
149 | 145 | ||
150 | /** | 146 | /** |
151 | * dma_mmap_coherent - map a coherent DMA allocation into user space | 147 | * dma_mmap_coherent - map a coherent DMA allocation into user space |
@@ -159,8 +155,8 @@ dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, | |||
159 | * into user space. The coherent DMA buffer must not be freed by the | 155 | * into user space. The coherent DMA buffer must not be freed by the |
160 | * driver until the user space mapping has been released. | 156 | * driver until the user space mapping has been released. |
161 | */ | 157 | */ |
162 | int dma_mmap_coherent(struct device *dev, struct vm_area_struct *vma, | 158 | int dma_mmap_coherent(struct device *, struct vm_area_struct *, |
163 | void *cpu_addr, dma_addr_t handle, size_t size); | 159 | void *, dma_addr_t, size_t); |
164 | 160 | ||
165 | 161 | ||
166 | /** | 162 | /** |
@@ -174,14 +170,94 @@ int dma_mmap_coherent(struct device *dev, struct vm_area_struct *vma, | |||
174 | * return the CPU-viewed address, and sets @handle to be the | 170 | * return the CPU-viewed address, and sets @handle to be the |
175 | * device-viewed address. | 171 | * device-viewed address. |
176 | */ | 172 | */ |
177 | extern void * | 173 | extern void *dma_alloc_writecombine(struct device *, size_t, dma_addr_t *, |
178 | dma_alloc_writecombine(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp); | 174 | gfp_t); |
179 | 175 | ||
180 | #define dma_free_writecombine(dev,size,cpu_addr,handle) \ | 176 | #define dma_free_writecombine(dev,size,cpu_addr,handle) \ |
181 | dma_free_coherent(dev,size,cpu_addr,handle) | 177 | dma_free_coherent(dev,size,cpu_addr,handle) |
182 | 178 | ||
183 | int dma_mmap_writecombine(struct device *dev, struct vm_area_struct *vma, | 179 | int dma_mmap_writecombine(struct device *, struct vm_area_struct *, |
184 | void *cpu_addr, dma_addr_t handle, size_t size); | 180 | void *, dma_addr_t, size_t); |
181 | |||
182 | |||
183 | #ifdef CONFIG_DMABOUNCE | ||
184 | /* | ||
185 | * For SA-1111, IXP425, and ADI systems the dma-mapping functions are "magic" | ||
186 | * and utilize bounce buffers as needed to work around limited DMA windows. | ||
187 | * | ||
188 | * On the SA-1111, a bug limits DMA to only certain regions of RAM. | ||
189 | * On the IXP425, the PCI inbound window is 64MB (256MB total RAM) | ||
190 | * On some ADI engineering systems, PCI inbound window is 32MB (12MB total RAM) | ||
191 | * | ||
192 | * The following are helper functions used by the dmabounce subystem | ||
193 | * | ||
194 | */ | ||
195 | |||
196 | /** | ||
197 | * dmabounce_register_dev | ||
198 | * | ||
199 | * @dev: valid struct device pointer | ||
200 | * @small_buf_size: size of buffers to use with small buffer pool | ||
201 | * @large_buf_size: size of buffers to use with large buffer pool (can be 0) | ||
202 | * | ||
203 | * This function should be called by low-level platform code to register | ||
204 | * a device as requireing DMA buffer bouncing. The function will allocate | ||
205 | * appropriate DMA pools for the device. | ||
206 | * | ||
207 | */ | ||
208 | extern int dmabounce_register_dev(struct device *, unsigned long, | ||
209 | unsigned long); | ||
210 | |||
211 | /** | ||
212 | * dmabounce_unregister_dev | ||
213 | * | ||
214 | * @dev: valid struct device pointer | ||
215 | * | ||
216 | * This function should be called by low-level platform code when device | ||
217 | * that was previously registered with dmabounce_register_dev is removed | ||
218 | * from the system. | ||
219 | * | ||
220 | */ | ||
221 | extern void dmabounce_unregister_dev(struct device *); | ||
222 | |||
223 | /** | ||
224 | * dma_needs_bounce | ||
225 | * | ||
226 | * @dev: valid struct device pointer | ||
227 | * @dma_handle: dma_handle of unbounced buffer | ||
228 | * @size: size of region being mapped | ||
229 | * | ||
230 | * Platforms that utilize the dmabounce mechanism must implement | ||
231 | * this function. | ||
232 | * | ||
233 | * The dmabounce routines call this function whenever a dma-mapping | ||
234 | * is requested to determine whether a given buffer needs to be bounced | ||
235 | * or not. The function must return 0 if the buffer is OK for | ||
236 | * DMA access and 1 if the buffer needs to be bounced. | ||
237 | * | ||
238 | */ | ||
239 | extern int dma_needs_bounce(struct device*, dma_addr_t, size_t); | ||
240 | |||
241 | /* | ||
242 | * The DMA API, implemented by dmabounce.c. See below for descriptions. | ||
243 | */ | ||
244 | extern dma_addr_t dma_map_single(struct device *, void *, size_t, | ||
245 | enum dma_data_direction); | ||
246 | extern dma_addr_t dma_map_page(struct device *, struct page *, | ||
247 | unsigned long, size_t, enum dma_data_direction); | ||
248 | extern void dma_unmap_single(struct device *, dma_addr_t, size_t, | ||
249 | enum dma_data_direction); | ||
250 | |||
251 | /* | ||
252 | * Private functions | ||
253 | */ | ||
254 | int dmabounce_sync_for_cpu(struct device *, dma_addr_t, unsigned long, | ||
255 | size_t, enum dma_data_direction); | ||
256 | int dmabounce_sync_for_device(struct device *, dma_addr_t, unsigned long, | ||
257 | size_t, enum dma_data_direction); | ||
258 | #else | ||
259 | #define dmabounce_sync_for_cpu(dev,dma,off,sz,dir) (1) | ||
260 | #define dmabounce_sync_for_device(dev,dma,off,sz,dir) (1) | ||
185 | 261 | ||
186 | 262 | ||
187 | /** | 263 | /** |
@@ -198,19 +274,16 @@ int dma_mmap_writecombine(struct device *dev, struct vm_area_struct *vma, | |||
198 | * can regain ownership by calling dma_unmap_single() or | 274 | * can regain ownership by calling dma_unmap_single() or |
199 | * dma_sync_single_for_cpu(). | 275 | * dma_sync_single_for_cpu(). |
200 | */ | 276 | */ |
201 | #ifndef CONFIG_DMABOUNCE | 277 | static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr, |
202 | static inline dma_addr_t | 278 | size_t size, enum dma_data_direction dir) |
203 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, | ||
204 | enum dma_data_direction dir) | ||
205 | { | 279 | { |
280 | BUG_ON(!valid_dma_direction(dir)); | ||
281 | |||
206 | if (!arch_is_coherent()) | 282 | if (!arch_is_coherent()) |
207 | dma_cache_maint(cpu_addr, size, dir); | 283 | dma_cache_maint(cpu_addr, size, dir); |
208 | 284 | ||
209 | return virt_to_dma(dev, cpu_addr); | 285 | return virt_to_dma(dev, cpu_addr); |
210 | } | 286 | } |
211 | #else | ||
212 | extern dma_addr_t dma_map_single(struct device *,void *, size_t, enum dma_data_direction); | ||
213 | #endif | ||
214 | 287 | ||
215 | /** | 288 | /** |
216 | * dma_map_page - map a portion of a page for streaming DMA | 289 | * dma_map_page - map a portion of a page for streaming DMA |
@@ -224,23 +297,25 @@ extern dma_addr_t dma_map_single(struct device *,void *, size_t, enum dma_data_d | |||
224 | * or written back. | 297 | * or written back. |
225 | * | 298 | * |
226 | * The device owns this memory once this call has completed. The CPU | 299 | * The device owns this memory once this call has completed. The CPU |
227 | * can regain ownership by calling dma_unmap_page() or | 300 | * can regain ownership by calling dma_unmap_page(). |
228 | * dma_sync_single_for_cpu(). | ||
229 | */ | 301 | */ |
230 | static inline dma_addr_t | 302 | static inline dma_addr_t dma_map_page(struct device *dev, struct page *page, |
231 | dma_map_page(struct device *dev, struct page *page, | 303 | unsigned long offset, size_t size, enum dma_data_direction dir) |
232 | unsigned long offset, size_t size, | ||
233 | enum dma_data_direction dir) | ||
234 | { | 304 | { |
235 | return dma_map_single(dev, page_address(page) + offset, size, dir); | 305 | BUG_ON(!valid_dma_direction(dir)); |
306 | |||
307 | if (!arch_is_coherent()) | ||
308 | dma_cache_maint(page_address(page) + offset, size, dir); | ||
309 | |||
310 | return page_to_dma(dev, page) + offset; | ||
236 | } | 311 | } |
237 | 312 | ||
238 | /** | 313 | /** |
239 | * dma_unmap_single - unmap a single buffer previously mapped | 314 | * dma_unmap_single - unmap a single buffer previously mapped |
240 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | 315 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices |
241 | * @handle: DMA address of buffer | 316 | * @handle: DMA address of buffer |
242 | * @size: size of buffer to map | 317 | * @size: size of buffer (same as passed to dma_map_single) |
243 | * @dir: DMA transfer direction | 318 | * @dir: DMA transfer direction (same as passed to dma_map_single) |
244 | * | 319 | * |
245 | * Unmap a single streaming mode DMA translation. The handle and size | 320 | * Unmap a single streaming mode DMA translation. The handle and size |
246 | * must match what was provided in the previous dma_map_single() call. | 321 | * must match what was provided in the previous dma_map_single() call. |
@@ -249,108 +324,34 @@ dma_map_page(struct device *dev, struct page *page, | |||
249 | * After this call, reads by the CPU to the buffer are guaranteed to see | 324 | * After this call, reads by the CPU to the buffer are guaranteed to see |
250 | * whatever the device wrote there. | 325 | * whatever the device wrote there. |
251 | */ | 326 | */ |
252 | #ifndef CONFIG_DMABOUNCE | 327 | static inline void dma_unmap_single(struct device *dev, dma_addr_t handle, |
253 | static inline void | 328 | size_t size, enum dma_data_direction dir) |
254 | dma_unmap_single(struct device *dev, dma_addr_t handle, size_t size, | ||
255 | enum dma_data_direction dir) | ||
256 | { | 329 | { |
257 | /* nothing to do */ | 330 | /* nothing to do */ |
258 | } | 331 | } |
259 | #else | 332 | #endif /* CONFIG_DMABOUNCE */ |
260 | extern void dma_unmap_single(struct device *, dma_addr_t, size_t, enum dma_data_direction); | ||
261 | #endif | ||
262 | 333 | ||
263 | /** | 334 | /** |
264 | * dma_unmap_page - unmap a buffer previously mapped through dma_map_page() | 335 | * dma_unmap_page - unmap a buffer previously mapped through dma_map_page() |
265 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | 336 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices |
266 | * @handle: DMA address of buffer | 337 | * @handle: DMA address of buffer |
267 | * @size: size of buffer to map | 338 | * @size: size of buffer (same as passed to dma_map_page) |
268 | * @dir: DMA transfer direction | 339 | * @dir: DMA transfer direction (same as passed to dma_map_page) |
269 | * | 340 | * |
270 | * Unmap a single streaming mode DMA translation. The handle and size | 341 | * Unmap a page streaming mode DMA translation. The handle and size |
271 | * must match what was provided in the previous dma_map_single() call. | 342 | * must match what was provided in the previous dma_map_page() call. |
272 | * All other usages are undefined. | 343 | * All other usages are undefined. |
273 | * | 344 | * |
274 | * After this call, reads by the CPU to the buffer are guaranteed to see | 345 | * After this call, reads by the CPU to the buffer are guaranteed to see |
275 | * whatever the device wrote there. | 346 | * whatever the device wrote there. |
276 | */ | 347 | */ |
277 | static inline void | 348 | static inline void dma_unmap_page(struct device *dev, dma_addr_t handle, |
278 | dma_unmap_page(struct device *dev, dma_addr_t handle, size_t size, | 349 | size_t size, enum dma_data_direction dir) |
279 | enum dma_data_direction dir) | ||
280 | { | 350 | { |
281 | dma_unmap_single(dev, handle, size, dir); | 351 | dma_unmap_single(dev, handle, size, dir); |
282 | } | 352 | } |
283 | 353 | ||
284 | /** | 354 | /** |
285 | * dma_map_sg - map a set of SG buffers for streaming mode DMA | ||
286 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | ||
287 | * @sg: list of buffers | ||
288 | * @nents: number of buffers to map | ||
289 | * @dir: DMA transfer direction | ||
290 | * | ||
291 | * Map a set of buffers described by scatterlist in streaming | ||
292 | * mode for DMA. This is the scatter-gather version of the | ||
293 | * above dma_map_single interface. Here the scatter gather list | ||
294 | * elements are each tagged with the appropriate dma address | ||
295 | * and length. They are obtained via sg_dma_{address,length}(SG). | ||
296 | * | ||
297 | * NOTE: An implementation may be able to use a smaller number of | ||
298 | * DMA address/length pairs than there are SG table elements. | ||
299 | * (for example via virtual mapping capabilities) | ||
300 | * The routine returns the number of addr/length pairs actually | ||
301 | * used, at most nents. | ||
302 | * | ||
303 | * Device ownership issues as mentioned above for dma_map_single are | ||
304 | * the same here. | ||
305 | */ | ||
306 | #ifndef CONFIG_DMABOUNCE | ||
307 | static inline int | ||
308 | dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | ||
309 | enum dma_data_direction dir) | ||
310 | { | ||
311 | int i; | ||
312 | |||
313 | for (i = 0; i < nents; i++, sg++) { | ||
314 | char *virt; | ||
315 | |||
316 | sg->dma_address = page_to_dma(dev, sg_page(sg)) + sg->offset; | ||
317 | virt = sg_virt(sg); | ||
318 | |||
319 | if (!arch_is_coherent()) | ||
320 | dma_cache_maint(virt, sg->length, dir); | ||
321 | } | ||
322 | |||
323 | return nents; | ||
324 | } | ||
325 | #else | ||
326 | extern int dma_map_sg(struct device *, struct scatterlist *, int, enum dma_data_direction); | ||
327 | #endif | ||
328 | |||
329 | /** | ||
330 | * dma_unmap_sg - unmap a set of SG buffers mapped by dma_map_sg | ||
331 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | ||
332 | * @sg: list of buffers | ||
333 | * @nents: number of buffers to map | ||
334 | * @dir: DMA transfer direction | ||
335 | * | ||
336 | * Unmap a set of streaming mode DMA translations. | ||
337 | * Again, CPU read rules concerning calls here are the same as for | ||
338 | * dma_unmap_single() above. | ||
339 | */ | ||
340 | #ifndef CONFIG_DMABOUNCE | ||
341 | static inline void | ||
342 | dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents, | ||
343 | enum dma_data_direction dir) | ||
344 | { | ||
345 | |||
346 | /* nothing to do */ | ||
347 | } | ||
348 | #else | ||
349 | extern void dma_unmap_sg(struct device *, struct scatterlist *, int, enum dma_data_direction); | ||
350 | #endif | ||
351 | |||
352 | |||
353 | /** | ||
354 | * dma_sync_single_range_for_cpu | 355 | * dma_sync_single_range_for_cpu |
355 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | 356 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices |
356 | * @handle: DMA address of buffer | 357 | * @handle: DMA address of buffer |
@@ -368,145 +369,52 @@ extern void dma_unmap_sg(struct device *, struct scatterlist *, int, enum dma_da | |||
368 | * must first the perform a dma_sync_for_device, and then the | 369 | * must first the perform a dma_sync_for_device, and then the |
369 | * device again owns the buffer. | 370 | * device again owns the buffer. |
370 | */ | 371 | */ |
371 | #ifndef CONFIG_DMABOUNCE | 372 | static inline void dma_sync_single_range_for_cpu(struct device *dev, |
372 | static inline void | 373 | dma_addr_t handle, unsigned long offset, size_t size, |
373 | dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t handle, | 374 | enum dma_data_direction dir) |
374 | unsigned long offset, size_t size, | ||
375 | enum dma_data_direction dir) | ||
376 | { | 375 | { |
377 | if (!arch_is_coherent()) | 376 | BUG_ON(!valid_dma_direction(dir)); |
378 | dma_cache_maint(dma_to_virt(dev, handle) + offset, size, dir); | 377 | |
378 | dmabounce_sync_for_cpu(dev, handle, offset, size, dir); | ||
379 | } | 379 | } |
380 | 380 | ||
381 | static inline void | 381 | static inline void dma_sync_single_range_for_device(struct device *dev, |
382 | dma_sync_single_range_for_device(struct device *dev, dma_addr_t handle, | 382 | dma_addr_t handle, unsigned long offset, size_t size, |
383 | unsigned long offset, size_t size, | 383 | enum dma_data_direction dir) |
384 | enum dma_data_direction dir) | ||
385 | { | 384 | { |
385 | BUG_ON(!valid_dma_direction(dir)); | ||
386 | |||
387 | if (!dmabounce_sync_for_device(dev, handle, offset, size, dir)) | ||
388 | return; | ||
389 | |||
386 | if (!arch_is_coherent()) | 390 | if (!arch_is_coherent()) |
387 | dma_cache_maint(dma_to_virt(dev, handle) + offset, size, dir); | 391 | dma_cache_maint(dma_to_virt(dev, handle) + offset, size, dir); |
388 | } | 392 | } |
389 | #else | ||
390 | extern void dma_sync_single_range_for_cpu(struct device *, dma_addr_t, unsigned long, size_t, enum dma_data_direction); | ||
391 | extern void dma_sync_single_range_for_device(struct device *, dma_addr_t, unsigned long, size_t, enum dma_data_direction); | ||
392 | #endif | ||
393 | 393 | ||
394 | static inline void | 394 | static inline void dma_sync_single_for_cpu(struct device *dev, |
395 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t handle, size_t size, | 395 | dma_addr_t handle, size_t size, enum dma_data_direction dir) |
396 | enum dma_data_direction dir) | ||
397 | { | 396 | { |
398 | dma_sync_single_range_for_cpu(dev, handle, 0, size, dir); | 397 | dma_sync_single_range_for_cpu(dev, handle, 0, size, dir); |
399 | } | 398 | } |
400 | 399 | ||
401 | static inline void | 400 | static inline void dma_sync_single_for_device(struct device *dev, |
402 | dma_sync_single_for_device(struct device *dev, dma_addr_t handle, size_t size, | 401 | dma_addr_t handle, size_t size, enum dma_data_direction dir) |
403 | enum dma_data_direction dir) | ||
404 | { | 402 | { |
405 | dma_sync_single_range_for_device(dev, handle, 0, size, dir); | 403 | dma_sync_single_range_for_device(dev, handle, 0, size, dir); |
406 | } | 404 | } |
407 | 405 | ||
408 | |||
409 | /** | ||
410 | * dma_sync_sg_for_cpu | ||
411 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | ||
412 | * @sg: list of buffers | ||
413 | * @nents: number of buffers to map | ||
414 | * @dir: DMA transfer direction | ||
415 | * | ||
416 | * Make physical memory consistent for a set of streaming | ||
417 | * mode DMA translations after a transfer. | ||
418 | * | ||
419 | * The same as dma_sync_single_for_* but for a scatter-gather list, | ||
420 | * same rules and usage. | ||
421 | */ | ||
422 | #ifndef CONFIG_DMABOUNCE | ||
423 | static inline void | ||
424 | dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nents, | ||
425 | enum dma_data_direction dir) | ||
426 | { | ||
427 | int i; | ||
428 | |||
429 | for (i = 0; i < nents; i++, sg++) { | ||
430 | char *virt = sg_virt(sg); | ||
431 | if (!arch_is_coherent()) | ||
432 | dma_cache_maint(virt, sg->length, dir); | ||
433 | } | ||
434 | } | ||
435 | |||
436 | static inline void | ||
437 | dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nents, | ||
438 | enum dma_data_direction dir) | ||
439 | { | ||
440 | int i; | ||
441 | |||
442 | for (i = 0; i < nents; i++, sg++) { | ||
443 | char *virt = sg_virt(sg); | ||
444 | if (!arch_is_coherent()) | ||
445 | dma_cache_maint(virt, sg->length, dir); | ||
446 | } | ||
447 | } | ||
448 | #else | ||
449 | extern void dma_sync_sg_for_cpu(struct device*, struct scatterlist*, int, enum dma_data_direction); | ||
450 | extern void dma_sync_sg_for_device(struct device*, struct scatterlist*, int, enum dma_data_direction); | ||
451 | #endif | ||
452 | |||
453 | #ifdef CONFIG_DMABOUNCE | ||
454 | /* | 406 | /* |
455 | * For SA-1111, IXP425, and ADI systems the dma-mapping functions are "magic" | 407 | * The scatter list versions of the above methods. |
456 | * and utilize bounce buffers as needed to work around limited DMA windows. | ||
457 | * | ||
458 | * On the SA-1111, a bug limits DMA to only certain regions of RAM. | ||
459 | * On the IXP425, the PCI inbound window is 64MB (256MB total RAM) | ||
460 | * On some ADI engineering systems, PCI inbound window is 32MB (12MB total RAM) | ||
461 | * | ||
462 | * The following are helper functions used by the dmabounce subystem | ||
463 | * | ||
464 | */ | ||
465 | |||
466 | /** | ||
467 | * dmabounce_register_dev | ||
468 | * | ||
469 | * @dev: valid struct device pointer | ||
470 | * @small_buf_size: size of buffers to use with small buffer pool | ||
471 | * @large_buf_size: size of buffers to use with large buffer pool (can be 0) | ||
472 | * | ||
473 | * This function should be called by low-level platform code to register | ||
474 | * a device as requireing DMA buffer bouncing. The function will allocate | ||
475 | * appropriate DMA pools for the device. | ||
476 | * | ||
477 | */ | ||
478 | extern int dmabounce_register_dev(struct device *, unsigned long, unsigned long); | ||
479 | |||
480 | /** | ||
481 | * dmabounce_unregister_dev | ||
482 | * | ||
483 | * @dev: valid struct device pointer | ||
484 | * | ||
485 | * This function should be called by low-level platform code when device | ||
486 | * that was previously registered with dmabounce_register_dev is removed | ||
487 | * from the system. | ||
488 | * | ||
489 | */ | 408 | */ |
490 | extern void dmabounce_unregister_dev(struct device *); | 409 | extern int dma_map_sg(struct device *, struct scatterlist *, int, |
410 | enum dma_data_direction); | ||
411 | extern void dma_unmap_sg(struct device *, struct scatterlist *, int, | ||
412 | enum dma_data_direction); | ||
413 | extern void dma_sync_sg_for_cpu(struct device *, struct scatterlist *, int, | ||
414 | enum dma_data_direction); | ||
415 | extern void dma_sync_sg_for_device(struct device *, struct scatterlist *, int, | ||
416 | enum dma_data_direction); | ||
491 | 417 | ||
492 | /** | ||
493 | * dma_needs_bounce | ||
494 | * | ||
495 | * @dev: valid struct device pointer | ||
496 | * @dma_handle: dma_handle of unbounced buffer | ||
497 | * @size: size of region being mapped | ||
498 | * | ||
499 | * Platforms that utilize the dmabounce mechanism must implement | ||
500 | * this function. | ||
501 | * | ||
502 | * The dmabounce routines call this function whenever a dma-mapping | ||
503 | * is requested to determine whether a given buffer needs to be bounced | ||
504 | * or not. The function must return 0 if the buffer is OK for | ||
505 | * DMA access and 1 if the buffer needs to be bounced. | ||
506 | * | ||
507 | */ | ||
508 | extern int dma_needs_bounce(struct device*, dma_addr_t, size_t); | ||
509 | #endif /* CONFIG_DMABOUNCE */ | ||
510 | 418 | ||
511 | #endif /* __KERNEL__ */ | 419 | #endif /* __KERNEL__ */ |
512 | #endif | 420 | #endif |
diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h index 6a332a9f099c..9ee743b95de8 100644 --- a/arch/arm/include/asm/futex.h +++ b/arch/arm/include/asm/futex.h | |||
@@ -1,6 +1,124 @@ | |||
1 | #ifndef _ASM_FUTEX_H | 1 | #ifndef _ASM_ARM_FUTEX_H |
2 | #define _ASM_FUTEX_H | 2 | #define _ASM_ARM_FUTEX_H |
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #ifdef CONFIG_SMP | ||
3 | 7 | ||
4 | #include <asm-generic/futex.h> | 8 | #include <asm-generic/futex.h> |
5 | 9 | ||
6 | #endif | 10 | #else /* !SMP, we can work around lack of atomic ops by disabling preemption */ |
11 | |||
12 | #include <linux/futex.h> | ||
13 | #include <linux/preempt.h> | ||
14 | #include <linux/uaccess.h> | ||
15 | #include <asm/errno.h> | ||
16 | |||
17 | #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ | ||
18 | __asm__ __volatile__( \ | ||
19 | "1: ldrt %1, [%2]\n" \ | ||
20 | " " insn "\n" \ | ||
21 | "2: strt %0, [%2]\n" \ | ||
22 | " mov %0, #0\n" \ | ||
23 | "3:\n" \ | ||
24 | " .section __ex_table,\"a\"\n" \ | ||
25 | " .align 3\n" \ | ||
26 | " .long 1b, 4f, 2b, 4f\n" \ | ||
27 | " .previous\n" \ | ||
28 | " .section .fixup,\"ax\"\n" \ | ||
29 | "4: mov %0, %4\n" \ | ||
30 | " b 3b\n" \ | ||
31 | " .previous" \ | ||
32 | : "=&r" (ret), "=&r" (oldval) \ | ||
33 | : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \ | ||
34 | : "cc", "memory") | ||
35 | |||
36 | static inline int | ||
37 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | ||
38 | { | ||
39 | int op = (encoded_op >> 28) & 7; | ||
40 | int cmp = (encoded_op >> 24) & 15; | ||
41 | int oparg = (encoded_op << 8) >> 20; | ||
42 | int cmparg = (encoded_op << 20) >> 20; | ||
43 | int oldval = 0, ret; | ||
44 | |||
45 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | ||
46 | oparg = 1 << oparg; | ||
47 | |||
48 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) | ||
49 | return -EFAULT; | ||
50 | |||
51 | pagefault_disable(); /* implies preempt_disable() */ | ||
52 | |||
53 | switch (op) { | ||
54 | case FUTEX_OP_SET: | ||
55 | __futex_atomic_op("mov %0, %3", ret, oldval, uaddr, oparg); | ||
56 | break; | ||
57 | case FUTEX_OP_ADD: | ||
58 | __futex_atomic_op("add %0, %1, %3", ret, oldval, uaddr, oparg); | ||
59 | break; | ||
60 | case FUTEX_OP_OR: | ||
61 | __futex_atomic_op("orr %0, %1, %3", ret, oldval, uaddr, oparg); | ||
62 | break; | ||
63 | case FUTEX_OP_ANDN: | ||
64 | __futex_atomic_op("and %0, %1, %3", ret, oldval, uaddr, ~oparg); | ||
65 | break; | ||
66 | case FUTEX_OP_XOR: | ||
67 | __futex_atomic_op("eor %0, %1, %3", ret, oldval, uaddr, oparg); | ||
68 | break; | ||
69 | default: | ||
70 | ret = -ENOSYS; | ||
71 | } | ||
72 | |||
73 | pagefault_enable(); /* subsumes preempt_enable() */ | ||
74 | |||
75 | if (!ret) { | ||
76 | switch (cmp) { | ||
77 | case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; | ||
78 | case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; | ||
79 | case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; | ||
80 | case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; | ||
81 | case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; | ||
82 | case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; | ||
83 | default: ret = -ENOSYS; | ||
84 | } | ||
85 | } | ||
86 | return ret; | ||
87 | } | ||
88 | |||
89 | static inline int | ||
90 | futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | ||
91 | { | ||
92 | int val; | ||
93 | |||
94 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) | ||
95 | return -EFAULT; | ||
96 | |||
97 | pagefault_disable(); /* implies preempt_disable() */ | ||
98 | |||
99 | __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n" | ||
100 | "1: ldrt %0, [%3]\n" | ||
101 | " teq %0, %1\n" | ||
102 | "2: streqt %2, [%3]\n" | ||
103 | "3:\n" | ||
104 | " .section __ex_table,\"a\"\n" | ||
105 | " .align 3\n" | ||
106 | " .long 1b, 4f, 2b, 4f\n" | ||
107 | " .previous\n" | ||
108 | " .section .fixup,\"ax\"\n" | ||
109 | "4: mov %0, %4\n" | ||
110 | " b 3b\n" | ||
111 | " .previous" | ||
112 | : "=&r" (val) | ||
113 | : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) | ||
114 | : "cc", "memory"); | ||
115 | |||
116 | pagefault_enable(); /* subsumes preempt_enable() */ | ||
117 | |||
118 | return val; | ||
119 | } | ||
120 | |||
121 | #endif /* !SMP */ | ||
122 | |||
123 | #endif /* __KERNEL__ */ | ||
124 | #endif /* _ASM_ARM_FUTEX_H */ | ||
diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h index d6786090d02c..a0009aa5d157 100644 --- a/arch/arm/include/asm/irq.h +++ b/arch/arm/include/asm/irq.h | |||
@@ -22,6 +22,10 @@ | |||
22 | #ifndef __ASSEMBLY__ | 22 | #ifndef __ASSEMBLY__ |
23 | struct irqaction; | 23 | struct irqaction; |
24 | extern void migrate_irqs(void); | 24 | extern void migrate_irqs(void); |
25 | |||
26 | extern void asm_do_IRQ(unsigned int, struct pt_regs *); | ||
27 | void init_IRQ(void); | ||
28 | |||
25 | #endif | 29 | #endif |
26 | 30 | ||
27 | #endif | 31 | #endif |
diff --git a/arch/arm/include/asm/kprobes.h b/arch/arm/include/asm/kprobes.h index a5d0d99ad387..bb8a19bd5822 100644 --- a/arch/arm/include/asm/kprobes.h +++ b/arch/arm/include/asm/kprobes.h | |||
@@ -61,7 +61,6 @@ struct kprobe_ctlblk { | |||
61 | void arch_remove_kprobe(struct kprobe *); | 61 | void arch_remove_kprobe(struct kprobe *); |
62 | void kretprobe_trampoline(void); | 62 | void kretprobe_trampoline(void); |
63 | 63 | ||
64 | int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr); | ||
65 | int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr); | 64 | int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr); |
66 | int kprobe_exceptions_notify(struct notifier_block *self, | 65 | int kprobe_exceptions_notify(struct notifier_block *self, |
67 | unsigned long val, void *data); | 66 | unsigned long val, void *data); |
diff --git a/arch/arm/include/asm/mc146818rtc.h b/arch/arm/include/asm/mc146818rtc.h index e1ca48a9e973..6b884d2b0b69 100644 --- a/arch/arm/include/asm/mc146818rtc.h +++ b/arch/arm/include/asm/mc146818rtc.h | |||
@@ -4,8 +4,8 @@ | |||
4 | #ifndef _ASM_MC146818RTC_H | 4 | #ifndef _ASM_MC146818RTC_H |
5 | #define _ASM_MC146818RTC_H | 5 | #define _ASM_MC146818RTC_H |
6 | 6 | ||
7 | #include <linux/io.h> | ||
7 | #include <mach/irqs.h> | 8 | #include <mach/irqs.h> |
8 | #include <asm/io.h> | ||
9 | 9 | ||
10 | #ifndef RTC_PORT | 10 | #ifndef RTC_PORT |
11 | #define RTC_PORT(x) (0x70 + (x)) | 11 | #define RTC_PORT(x) (0x70 + (x)) |
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index bf7c737c9226..809ff9ab853a 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h | |||
@@ -13,30 +13,27 @@ | |||
13 | #ifndef __ASM_ARM_MEMORY_H | 13 | #ifndef __ASM_ARM_MEMORY_H |
14 | #define __ASM_ARM_MEMORY_H | 14 | #define __ASM_ARM_MEMORY_H |
15 | 15 | ||
16 | #include <linux/compiler.h> | ||
17 | #include <linux/const.h> | ||
18 | #include <mach/memory.h> | ||
19 | #include <asm/sizes.h> | ||
20 | |||
16 | /* | 21 | /* |
17 | * Allow for constants defined here to be used from assembly code | 22 | * Allow for constants defined here to be used from assembly code |
18 | * by prepending the UL suffix only with actual C code compilation. | 23 | * by prepending the UL suffix only with actual C code compilation. |
19 | */ | 24 | */ |
20 | #ifndef __ASSEMBLY__ | 25 | #define UL(x) _AC(x, UL) |
21 | #define UL(x) (x##UL) | ||
22 | #else | ||
23 | #define UL(x) (x) | ||
24 | #endif | ||
25 | |||
26 | #include <linux/compiler.h> | ||
27 | #include <mach/memory.h> | ||
28 | #include <asm/sizes.h> | ||
29 | 26 | ||
30 | #ifdef CONFIG_MMU | 27 | #ifdef CONFIG_MMU |
31 | 28 | ||
32 | #ifndef TASK_SIZE | ||
33 | /* | 29 | /* |
30 | * PAGE_OFFSET - the virtual address of the start of the kernel image | ||
34 | * TASK_SIZE - the maximum size of a user space task. | 31 | * TASK_SIZE - the maximum size of a user space task. |
35 | * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area | 32 | * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area |
36 | */ | 33 | */ |
37 | #define TASK_SIZE UL(0xbf000000) | 34 | #define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET) |
38 | #define TASK_UNMAPPED_BASE UL(0x40000000) | 35 | #define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(0x01000000)) |
39 | #endif | 36 | #define TASK_UNMAPPED_BASE (UL(CONFIG_PAGE_OFFSET) / 3) |
40 | 37 | ||
41 | /* | 38 | /* |
42 | * The maximum size of a 26-bit user space task. | 39 | * The maximum size of a 26-bit user space task. |
@@ -44,13 +41,6 @@ | |||
44 | #define TASK_SIZE_26 UL(0x04000000) | 41 | #define TASK_SIZE_26 UL(0x04000000) |
45 | 42 | ||
46 | /* | 43 | /* |
47 | * Page offset: 3GB | ||
48 | */ | ||
49 | #ifndef PAGE_OFFSET | ||
50 | #define PAGE_OFFSET UL(0xc0000000) | ||
51 | #endif | ||
52 | |||
53 | /* | ||
54 | * The module space lives between the addresses given by TASK_SIZE | 44 | * The module space lives between the addresses given by TASK_SIZE |
55 | * and PAGE_OFFSET - it must be within 32MB of the kernel text. | 45 | * and PAGE_OFFSET - it must be within 32MB of the kernel text. |
56 | */ | 46 | */ |
@@ -147,17 +137,11 @@ | |||
147 | 137 | ||
148 | #ifndef arch_adjust_zones | 138 | #ifndef arch_adjust_zones |
149 | #define arch_adjust_zones(node,size,holes) do { } while (0) | 139 | #define arch_adjust_zones(node,size,holes) do { } while (0) |
140 | #elif !defined(CONFIG_ZONE_DMA) | ||
141 | #error "custom arch_adjust_zones() requires CONFIG_ZONE_DMA" | ||
150 | #endif | 142 | #endif |
151 | 143 | ||
152 | /* | 144 | /* |
153 | * Amount of memory reserved for the vmalloc() area, and minimum | ||
154 | * address for vmalloc mappings. | ||
155 | */ | ||
156 | extern unsigned long vmalloc_reserve; | ||
157 | |||
158 | #define VMALLOC_MIN (void *)(VMALLOC_END - vmalloc_reserve) | ||
159 | |||
160 | /* | ||
161 | * PFNs are used to describe any physical page; this means | 145 | * PFNs are used to describe any physical page; this means |
162 | * PFN 0 == physical address 0. | 146 | * PFN 0 == physical address 0. |
163 | * | 147 | * |
diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h index a301e446007f..0559f37c2a27 100644 --- a/arch/arm/include/asm/mmu_context.h +++ b/arch/arm/include/asm/mmu_context.h | |||
@@ -15,6 +15,7 @@ | |||
15 | 15 | ||
16 | #include <linux/compiler.h> | 16 | #include <linux/compiler.h> |
17 | #include <asm/cacheflush.h> | 17 | #include <asm/cacheflush.h> |
18 | #include <asm/cachetype.h> | ||
18 | #include <asm/proc-fns.h> | 19 | #include <asm/proc-fns.h> |
19 | #include <asm-generic/mm_hooks.h> | 20 | #include <asm-generic/mm_hooks.h> |
20 | 21 | ||
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index 8e21ef15bd74..ec630109a8c7 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h | |||
@@ -320,11 +320,6 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd) | |||
320 | #define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd))) | 320 | #define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd))) |
321 | 321 | ||
322 | /* | 322 | /* |
323 | * Permanent address of a page. We never have highmem, so this is trivial. | ||
324 | */ | ||
325 | #define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT)) | ||
326 | |||
327 | /* | ||
328 | * Conversion functions: convert a page and protection to a page entry, | 323 | * Conversion functions: convert a page and protection to a page entry, |
329 | * and a page entry and page directory to the page they refer to. | 324 | * and a page entry and page directory to the page they refer to. |
330 | */ | 325 | */ |
diff --git a/arch/arm/include/asm/ptrace.h b/arch/arm/include/asm/ptrace.h index b415c0e85458..73192618f1c2 100644 --- a/arch/arm/include/asm/ptrace.h +++ b/arch/arm/include/asm/ptrace.h | |||
@@ -54,7 +54,6 @@ | |||
54 | #define PSR_C_BIT 0x20000000 | 54 | #define PSR_C_BIT 0x20000000 |
55 | #define PSR_Z_BIT 0x40000000 | 55 | #define PSR_Z_BIT 0x40000000 |
56 | #define PSR_N_BIT 0x80000000 | 56 | #define PSR_N_BIT 0x80000000 |
57 | #define PCMASK 0 | ||
58 | 57 | ||
59 | /* | 58 | /* |
60 | * Groups of PSR bits | 59 | * Groups of PSR bits |
@@ -139,11 +138,7 @@ static inline int valid_user_regs(struct pt_regs *regs) | |||
139 | return 0; | 138 | return 0; |
140 | } | 139 | } |
141 | 140 | ||
142 | #define pc_pointer(v) \ | 141 | #define instruction_pointer(regs) (regs)->ARM_pc |
143 | ((v) & ~PCMASK) | ||
144 | |||
145 | #define instruction_pointer(regs) \ | ||
146 | (pc_pointer((regs)->ARM_pc)) | ||
147 | 142 | ||
148 | #ifdef CONFIG_SMP | 143 | #ifdef CONFIG_SMP |
149 | extern unsigned long profile_pc(struct pt_regs *regs); | 144 | extern unsigned long profile_pc(struct pt_regs *regs); |
diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h index 7bbf105463f1..a65413ba121d 100644 --- a/arch/arm/include/asm/setup.h +++ b/arch/arm/include/asm/setup.h | |||
@@ -209,6 +209,17 @@ struct meminfo { | |||
209 | struct membank bank[NR_BANKS]; | 209 | struct membank bank[NR_BANKS]; |
210 | }; | 210 | }; |
211 | 211 | ||
212 | #define for_each_nodebank(iter,mi,no) \ | ||
213 | for (iter = 0; iter < mi->nr_banks; iter++) \ | ||
214 | if (mi->bank[iter].node == no) | ||
215 | |||
216 | #define bank_pfn_start(bank) __phys_to_pfn((bank)->start) | ||
217 | #define bank_pfn_end(bank) __phys_to_pfn((bank)->start + (bank)->size) | ||
218 | #define bank_pfn_size(bank) ((bank)->size >> PAGE_SHIFT) | ||
219 | #define bank_phys_start(bank) (bank)->start | ||
220 | #define bank_phys_end(bank) ((bank)->start + (bank)->size) | ||
221 | #define bank_phys_size(bank) (bank)->size | ||
222 | |||
212 | /* | 223 | /* |
213 | * Early command line parameters. | 224 | * Early command line parameters. |
214 | */ | 225 | */ |
diff --git a/arch/arm/include/asm/sparsemem.h b/arch/arm/include/asm/sparsemem.h index 277158191a0d..00098615c6f0 100644 --- a/arch/arm/include/asm/sparsemem.h +++ b/arch/arm/include/asm/sparsemem.h | |||
@@ -3,8 +3,22 @@ | |||
3 | 3 | ||
4 | #include <asm/memory.h> | 4 | #include <asm/memory.h> |
5 | 5 | ||
6 | #define MAX_PHYSADDR_BITS 32 | 6 | /* |
7 | #define MAX_PHYSMEM_BITS 32 | 7 | * Two definitions are required for sparsemem: |
8 | #define SECTION_SIZE_BITS NODE_MEM_SIZE_BITS | 8 | * |
9 | * MAX_PHYSMEM_BITS: The number of physical address bits required | ||
10 | * to address the last byte of memory. | ||
11 | * | ||
12 | * SECTION_SIZE_BITS: The number of physical address bits to cover | ||
13 | * the maximum amount of memory in a section. | ||
14 | * | ||
15 | * Eg, if you have 2 banks of up to 64MB at 0x80000000, 0x84000000, | ||
16 | * then MAX_PHYSMEM_BITS is 32, SECTION_SIZE_BITS is 26. | ||
17 | * | ||
18 | * Define these in your mach/memory.h. | ||
19 | */ | ||
20 | #if !defined(SECTION_SIZE_BITS) || !defined(MAX_PHYSMEM_BITS) | ||
21 | #error Sparsemem is not supported on this platform | ||
22 | #endif | ||
9 | 23 | ||
10 | #endif | 24 | #endif |
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index 514af792a598..7aad78420f18 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h | |||
@@ -43,11 +43,6 @@ | |||
43 | #define CR_XP (1 << 23) /* Extended page tables */ | 43 | #define CR_XP (1 << 23) /* Extended page tables */ |
44 | #define CR_VE (1 << 24) /* Vectored interrupts */ | 44 | #define CR_VE (1 << 24) /* Vectored interrupts */ |
45 | 45 | ||
46 | #define CPUID_ID 0 | ||
47 | #define CPUID_CACHETYPE 1 | ||
48 | #define CPUID_TCM 2 | ||
49 | #define CPUID_TLBTYPE 3 | ||
50 | |||
51 | /* | 46 | /* |
52 | * This is used to ensure the compiler did actually allocate the register we | 47 | * This is used to ensure the compiler did actually allocate the register we |
53 | * asked it for some inline assembly sequences. Apparently we can't trust | 48 | * asked it for some inline assembly sequences. Apparently we can't trust |
@@ -61,36 +56,8 @@ | |||
61 | #ifndef __ASSEMBLY__ | 56 | #ifndef __ASSEMBLY__ |
62 | 57 | ||
63 | #include <linux/linkage.h> | 58 | #include <linux/linkage.h> |
64 | #include <linux/stringify.h> | ||
65 | #include <linux/irqflags.h> | 59 | #include <linux/irqflags.h> |
66 | 60 | ||
67 | #ifdef CONFIG_CPU_CP15 | ||
68 | #define read_cpuid(reg) \ | ||
69 | ({ \ | ||
70 | unsigned int __val; \ | ||
71 | asm("mrc p15, 0, %0, c0, c0, " __stringify(reg) \ | ||
72 | : "=r" (__val) \ | ||
73 | : \ | ||
74 | : "cc"); \ | ||
75 | __val; \ | ||
76 | }) | ||
77 | #else | ||
78 | extern unsigned int processor_id; | ||
79 | #define read_cpuid(reg) (processor_id) | ||
80 | #endif | ||
81 | |||
82 | /* | ||
83 | * The CPU ID never changes at run time, so we might as well tell the | ||
84 | * compiler that it's constant. Use this function to read the CPU ID | ||
85 | * rather than directly reading processor_id or read_cpuid() directly. | ||
86 | */ | ||
87 | static inline unsigned int read_cpuid_id(void) __attribute_const__; | ||
88 | |||
89 | static inline unsigned int read_cpuid_id(void) | ||
90 | { | ||
91 | return read_cpuid(CPUID_ID); | ||
92 | } | ||
93 | |||
94 | #define __exception __attribute__((section(".exception.text"))) | 61 | #define __exception __attribute__((section(".exception.text"))) |
95 | 62 | ||
96 | struct thread_info; | 63 | struct thread_info; |
@@ -131,31 +98,6 @@ extern void cpu_init(void); | |||
131 | void arm_machine_restart(char mode); | 98 | void arm_machine_restart(char mode); |
132 | extern void (*arm_pm_restart)(char str); | 99 | extern void (*arm_pm_restart)(char str); |
133 | 100 | ||
134 | /* | ||
135 | * Intel's XScale3 core supports some v6 features (supersections, L2) | ||
136 | * but advertises itself as v5 as it does not support the v6 ISA. For | ||
137 | * this reason, we need a way to explicitly test for this type of CPU. | ||
138 | */ | ||
139 | #ifndef CONFIG_CPU_XSC3 | ||
140 | #define cpu_is_xsc3() 0 | ||
141 | #else | ||
142 | static inline int cpu_is_xsc3(void) | ||
143 | { | ||
144 | extern unsigned int processor_id; | ||
145 | |||
146 | if ((processor_id & 0xffffe000) == 0x69056000) | ||
147 | return 1; | ||
148 | |||
149 | return 0; | ||
150 | } | ||
151 | #endif | ||
152 | |||
153 | #if !defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_CPU_XSC3) | ||
154 | #define cpu_is_xscale() 0 | ||
155 | #else | ||
156 | #define cpu_is_xscale() 1 | ||
157 | #endif | ||
158 | |||
159 | #define UDBG_UNDEFINED (1 << 0) | 101 | #define UDBG_UNDEFINED (1 << 0) |
160 | #define UDBG_SYSCALL (1 << 1) | 102 | #define UDBG_SYSCALL (1 << 1) |
161 | #define UDBG_BADABORT (1 << 2) | 103 | #define UDBG_BADABORT (1 << 2) |
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h index e56fa48e4ae7..68b9ec82a37f 100644 --- a/arch/arm/include/asm/thread_info.h +++ b/arch/arm/include/asm/thread_info.h | |||
@@ -98,7 +98,7 @@ static inline struct thread_info *current_thread_info(void) | |||
98 | } | 98 | } |
99 | 99 | ||
100 | #define thread_saved_pc(tsk) \ | 100 | #define thread_saved_pc(tsk) \ |
101 | ((unsigned long)(pc_pointer(task_thread_info(tsk)->cpu_context.pc))) | 101 | ((unsigned long)(task_thread_info(tsk)->cpu_context.pc)) |
102 | #define thread_saved_fp(tsk) \ | 102 | #define thread_saved_fp(tsk) \ |
103 | ((unsigned long)(task_thread_info(tsk)->cpu_context.fp)) | 103 | ((unsigned long)(task_thread_info(tsk)->cpu_context.fp)) |
104 | 104 | ||
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h index d0f51ff900b5..e98ec60b3400 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h | |||
@@ -225,7 +225,7 @@ do { \ | |||
225 | 225 | ||
226 | #define __get_user_asm_byte(x,addr,err) \ | 226 | #define __get_user_asm_byte(x,addr,err) \ |
227 | __asm__ __volatile__( \ | 227 | __asm__ __volatile__( \ |
228 | "1: ldrbt %1,[%2],#0\n" \ | 228 | "1: ldrbt %1,[%2]\n" \ |
229 | "2:\n" \ | 229 | "2:\n" \ |
230 | " .section .fixup,\"ax\"\n" \ | 230 | " .section .fixup,\"ax\"\n" \ |
231 | " .align 2\n" \ | 231 | " .align 2\n" \ |
@@ -261,7 +261,7 @@ do { \ | |||
261 | 261 | ||
262 | #define __get_user_asm_word(x,addr,err) \ | 262 | #define __get_user_asm_word(x,addr,err) \ |
263 | __asm__ __volatile__( \ | 263 | __asm__ __volatile__( \ |
264 | "1: ldrt %1,[%2],#0\n" \ | 264 | "1: ldrt %1,[%2]\n" \ |
265 | "2:\n" \ | 265 | "2:\n" \ |
266 | " .section .fixup,\"ax\"\n" \ | 266 | " .section .fixup,\"ax\"\n" \ |
267 | " .align 2\n" \ | 267 | " .align 2\n" \ |
@@ -306,7 +306,7 @@ do { \ | |||
306 | 306 | ||
307 | #define __put_user_asm_byte(x,__pu_addr,err) \ | 307 | #define __put_user_asm_byte(x,__pu_addr,err) \ |
308 | __asm__ __volatile__( \ | 308 | __asm__ __volatile__( \ |
309 | "1: strbt %1,[%2],#0\n" \ | 309 | "1: strbt %1,[%2]\n" \ |
310 | "2:\n" \ | 310 | "2:\n" \ |
311 | " .section .fixup,\"ax\"\n" \ | 311 | " .section .fixup,\"ax\"\n" \ |
312 | " .align 2\n" \ | 312 | " .align 2\n" \ |
@@ -339,7 +339,7 @@ do { \ | |||
339 | 339 | ||
340 | #define __put_user_asm_word(x,__pu_addr,err) \ | 340 | #define __put_user_asm_word(x,__pu_addr,err) \ |
341 | __asm__ __volatile__( \ | 341 | __asm__ __volatile__( \ |
342 | "1: strt %1,[%2],#0\n" \ | 342 | "1: strt %1,[%2]\n" \ |
343 | "2:\n" \ | 343 | "2:\n" \ |
344 | " .section .fixup,\"ax\"\n" \ | 344 | " .section .fixup,\"ax\"\n" \ |
345 | " .align 2\n" \ | 345 | " .align 2\n" \ |
@@ -365,7 +365,7 @@ do { \ | |||
365 | #define __put_user_asm_dword(x,__pu_addr,err) \ | 365 | #define __put_user_asm_dword(x,__pu_addr,err) \ |
366 | __asm__ __volatile__( \ | 366 | __asm__ __volatile__( \ |
367 | "1: strt " __reg_oper1 ", [%1], #4\n" \ | 367 | "1: strt " __reg_oper1 ", [%1], #4\n" \ |
368 | "2: strt " __reg_oper0 ", [%1], #0\n" \ | 368 | "2: strt " __reg_oper0 ", [%1]\n" \ |
369 | "3:\n" \ | 369 | "3:\n" \ |
370 | " .section .fixup,\"ax\"\n" \ | 370 | " .section .fixup,\"ax\"\n" \ |
371 | " .align 2\n" \ | 371 | " .align 2\n" \ |
diff --git a/arch/arm/include/asm/vga.h b/arch/arm/include/asm/vga.h index 6a3cd2a2f670..250a4dd00630 100644 --- a/arch/arm/include/asm/vga.h +++ b/arch/arm/include/asm/vga.h | |||
@@ -1,8 +1,8 @@ | |||
1 | #ifndef ASMARM_VGA_H | 1 | #ifndef ASMARM_VGA_H |
2 | #define ASMARM_VGA_H | 2 | #define ASMARM_VGA_H |
3 | 3 | ||
4 | #include <linux/io.h> | ||
4 | #include <mach/hardware.h> | 5 | #include <mach/hardware.h> |
5 | #include <asm/io.h> | ||
6 | 6 | ||
7 | #define VGA_MAP_MEM(x,s) (PCIMEM_BASE + (x)) | 7 | #define VGA_MAP_MEM(x,s) (PCIMEM_BASE + (x)) |
8 | 8 | ||
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index cc7b246e9652..2357b1cf1cf9 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c | |||
@@ -13,11 +13,11 @@ | |||
13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
14 | #include <linux/in6.h> | 14 | #include <linux/in6.h> |
15 | #include <linux/syscalls.h> | 15 | #include <linux/syscalls.h> |
16 | #include <linux/uaccess.h> | ||
17 | #include <linux/io.h> | ||
16 | 18 | ||
17 | #include <asm/checksum.h> | 19 | #include <asm/checksum.h> |
18 | #include <asm/io.h> | ||
19 | #include <asm/system.h> | 20 | #include <asm/system.h> |
20 | #include <asm/uaccess.h> | ||
21 | #include <asm/ftrace.h> | 21 | #include <asm/ftrace.h> |
22 | 22 | ||
23 | /* | 23 | /* |
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index e5747547b44c..17a59b6e521f 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c | |||
@@ -10,8 +10,8 @@ | |||
10 | #include <linux/pci.h> | 10 | #include <linux/pci.h> |
11 | #include <linux/slab.h> | 11 | #include <linux/slab.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/io.h> | ||
13 | 14 | ||
14 | #include <asm/io.h> | ||
15 | #include <asm/mach-types.h> | 15 | #include <asm/mach-types.h> |
16 | #include <asm/mach/pci.h> | 16 | #include <asm/mach/pci.h> |
17 | 17 | ||
diff --git a/arch/arm/kernel/crunch.c b/arch/arm/kernel/crunch.c index 3b6a1c293ee4..99995c2b2312 100644 --- a/arch/arm/kernel/crunch.c +++ b/arch/arm/kernel/crunch.c | |||
@@ -15,9 +15,9 @@ | |||
15 | #include <linux/signal.h> | 15 | #include <linux/signal.h> |
16 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/io.h> | ||
18 | #include <mach/ep93xx-regs.h> | 19 | #include <mach/ep93xx-regs.h> |
19 | #include <asm/thread_notify.h> | 20 | #include <asm/thread_notify.h> |
20 | #include <asm/io.h> | ||
21 | 21 | ||
22 | struct crunch_state *crunch_owner; | 22 | struct crunch_state *crunch_owner; |
23 | 23 | ||
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index 9550ff0ddde4..f53c58290543 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S | |||
@@ -89,10 +89,12 @@ | |||
89 | ENTRY(printhex8) | 89 | ENTRY(printhex8) |
90 | mov r1, #8 | 90 | mov r1, #8 |
91 | b printhex | 91 | b printhex |
92 | ENDPROC(printhex8) | ||
92 | 93 | ||
93 | ENTRY(printhex4) | 94 | ENTRY(printhex4) |
94 | mov r1, #4 | 95 | mov r1, #4 |
95 | b printhex | 96 | b printhex |
97 | ENDPROC(printhex4) | ||
96 | 98 | ||
97 | ENTRY(printhex2) | 99 | ENTRY(printhex2) |
98 | mov r1, #2 | 100 | mov r1, #2 |
@@ -110,6 +112,7 @@ printhex: adr r2, hexbuf | |||
110 | bne 1b | 112 | bne 1b |
111 | mov r0, r2 | 113 | mov r0, r2 |
112 | b printascii | 114 | b printascii |
115 | ENDPROC(printhex2) | ||
113 | 116 | ||
114 | .ltorg | 117 | .ltorg |
115 | 118 | ||
@@ -127,11 +130,13 @@ ENTRY(printascii) | |||
127 | teqne r1, #0 | 130 | teqne r1, #0 |
128 | bne 1b | 131 | bne 1b |
129 | mov pc, lr | 132 | mov pc, lr |
133 | ENDPROC(printascii) | ||
130 | 134 | ||
131 | ENTRY(printch) | 135 | ENTRY(printch) |
132 | addruart r3 | 136 | addruart r3 |
133 | mov r1, r0 | 137 | mov r1, r0 |
134 | mov r0, #0 | 138 | mov r0, #0 |
135 | b 1b | 139 | b 1b |
140 | ENDPROC(printch) | ||
136 | 141 | ||
137 | hexbuf: .space 16 | 142 | hexbuf: .space 16 |
diff --git a/arch/arm/kernel/dma-isa.c b/arch/arm/kernel/dma-isa.c index 2f080a35a2d9..4a3a50495c60 100644 --- a/arch/arm/kernel/dma-isa.c +++ b/arch/arm/kernel/dma-isa.c | |||
@@ -19,10 +19,9 @@ | |||
19 | #include <linux/ioport.h> | 19 | #include <linux/ioport.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/dma-mapping.h> | 21 | #include <linux/dma-mapping.h> |
22 | #include <linux/io.h> | ||
22 | 23 | ||
23 | #include <asm/dma.h> | 24 | #include <asm/dma.h> |
24 | #include <asm/io.h> | ||
25 | |||
26 | #include <asm/mach/dma.h> | 25 | #include <asm/mach/dma.h> |
27 | 26 | ||
28 | #define ISA_DMA_MODE_READ 0x44 | 27 | #define ISA_DMA_MODE_READ 0x44 |
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 617e509d60df..77b047475539 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -76,14 +76,17 @@ | |||
76 | __pabt_invalid: | 76 | __pabt_invalid: |
77 | inv_entry BAD_PREFETCH | 77 | inv_entry BAD_PREFETCH |
78 | b common_invalid | 78 | b common_invalid |
79 | ENDPROC(__pabt_invalid) | ||
79 | 80 | ||
80 | __dabt_invalid: | 81 | __dabt_invalid: |
81 | inv_entry BAD_DATA | 82 | inv_entry BAD_DATA |
82 | b common_invalid | 83 | b common_invalid |
84 | ENDPROC(__dabt_invalid) | ||
83 | 85 | ||
84 | __irq_invalid: | 86 | __irq_invalid: |
85 | inv_entry BAD_IRQ | 87 | inv_entry BAD_IRQ |
86 | b common_invalid | 88 | b common_invalid |
89 | ENDPROC(__irq_invalid) | ||
87 | 90 | ||
88 | __und_invalid: | 91 | __und_invalid: |
89 | inv_entry BAD_UNDEFINSTR | 92 | inv_entry BAD_UNDEFINSTR |
@@ -107,6 +110,7 @@ common_invalid: | |||
107 | 110 | ||
108 | mov r0, sp | 111 | mov r0, sp |
109 | b bad_mode | 112 | b bad_mode |
113 | ENDPROC(__und_invalid) | ||
110 | 114 | ||
111 | /* | 115 | /* |
112 | * SVC mode handlers | 116 | * SVC mode handlers |
@@ -192,6 +196,7 @@ __dabt_svc: | |||
192 | ldr r0, [sp, #S_PSR] | 196 | ldr r0, [sp, #S_PSR] |
193 | msr spsr_cxsf, r0 | 197 | msr spsr_cxsf, r0 |
194 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr | 198 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr |
199 | ENDPROC(__dabt_svc) | ||
195 | 200 | ||
196 | .align 5 | 201 | .align 5 |
197 | __irq_svc: | 202 | __irq_svc: |
@@ -223,6 +228,7 @@ __irq_svc: | |||
223 | bleq trace_hardirqs_on | 228 | bleq trace_hardirqs_on |
224 | #endif | 229 | #endif |
225 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr | 230 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr |
231 | ENDPROC(__irq_svc) | ||
226 | 232 | ||
227 | .ltorg | 233 | .ltorg |
228 | 234 | ||
@@ -272,6 +278,7 @@ __und_svc: | |||
272 | ldr lr, [sp, #S_PSR] @ Get SVC cpsr | 278 | ldr lr, [sp, #S_PSR] @ Get SVC cpsr |
273 | msr spsr_cxsf, lr | 279 | msr spsr_cxsf, lr |
274 | ldmia sp, {r0 - pc}^ @ Restore SVC registers | 280 | ldmia sp, {r0 - pc}^ @ Restore SVC registers |
281 | ENDPROC(__und_svc) | ||
275 | 282 | ||
276 | .align 5 | 283 | .align 5 |
277 | __pabt_svc: | 284 | __pabt_svc: |
@@ -313,6 +320,7 @@ __pabt_svc: | |||
313 | ldr r0, [sp, #S_PSR] | 320 | ldr r0, [sp, #S_PSR] |
314 | msr spsr_cxsf, r0 | 321 | msr spsr_cxsf, r0 |
315 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr | 322 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr |
323 | ENDPROC(__pabt_svc) | ||
316 | 324 | ||
317 | .align 5 | 325 | .align 5 |
318 | .LCcralign: | 326 | .LCcralign: |
@@ -412,6 +420,7 @@ __dabt_usr: | |||
412 | mov r2, sp | 420 | mov r2, sp |
413 | adr lr, ret_from_exception | 421 | adr lr, ret_from_exception |
414 | b do_DataAbort | 422 | b do_DataAbort |
423 | ENDPROC(__dabt_usr) | ||
415 | 424 | ||
416 | .align 5 | 425 | .align 5 |
417 | __irq_usr: | 426 | __irq_usr: |
@@ -441,6 +450,7 @@ __irq_usr: | |||
441 | 450 | ||
442 | mov why, #0 | 451 | mov why, #0 |
443 | b ret_to_user | 452 | b ret_to_user |
453 | ENDPROC(__irq_usr) | ||
444 | 454 | ||
445 | .ltorg | 455 | .ltorg |
446 | 456 | ||
@@ -474,6 +484,7 @@ __und_usr: | |||
474 | #else | 484 | #else |
475 | b __und_usr_unknown | 485 | b __und_usr_unknown |
476 | #endif | 486 | #endif |
487 | ENDPROC(__und_usr) | ||
477 | 488 | ||
478 | @ | 489 | @ |
479 | @ fallthrough to call_fpe | 490 | @ fallthrough to call_fpe |
@@ -642,6 +653,7 @@ __und_usr_unknown: | |||
642 | mov r0, sp | 653 | mov r0, sp |
643 | adr lr, ret_from_exception | 654 | adr lr, ret_from_exception |
644 | b do_undefinstr | 655 | b do_undefinstr |
656 | ENDPROC(__und_usr_unknown) | ||
645 | 657 | ||
646 | .align 5 | 658 | .align 5 |
647 | __pabt_usr: | 659 | __pabt_usr: |
@@ -666,6 +678,8 @@ ENTRY(ret_from_exception) | |||
666 | get_thread_info tsk | 678 | get_thread_info tsk |
667 | mov why, #0 | 679 | mov why, #0 |
668 | b ret_to_user | 680 | b ret_to_user |
681 | ENDPROC(__pabt_usr) | ||
682 | ENDPROC(ret_from_exception) | ||
669 | 683 | ||
670 | /* | 684 | /* |
671 | * Register switch for ARMv3 and ARMv4 processors | 685 | * Register switch for ARMv3 and ARMv4 processors |
@@ -702,6 +716,7 @@ ENTRY(__switch_to) | |||
702 | bl atomic_notifier_call_chain | 716 | bl atomic_notifier_call_chain |
703 | mov r0, r5 | 717 | mov r0, r5 |
704 | ldmia r4, {r4 - sl, fp, sp, pc} @ Load all regs saved previously | 718 | ldmia r4, {r4 - sl, fp, sp, pc} @ Load all regs saved previously |
719 | ENDPROC(__switch_to) | ||
705 | 720 | ||
706 | __INIT | 721 | __INIT |
707 | 722 | ||
@@ -1029,6 +1044,7 @@ vector_\name: | |||
1029 | mov r0, sp | 1044 | mov r0, sp |
1030 | ldr lr, [pc, lr, lsl #2] | 1045 | ldr lr, [pc, lr, lsl #2] |
1031 | movs pc, lr @ branch to handler in SVC mode | 1046 | movs pc, lr @ branch to handler in SVC mode |
1047 | ENDPROC(vector_\name) | ||
1032 | .endm | 1048 | .endm |
1033 | 1049 | ||
1034 | .globl __stubs_start | 1050 | .globl __stubs_start |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 060d7e2e9f64..3aa14dcc5bab 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -77,6 +77,7 @@ no_work_pending: | |||
77 | mov r0, r0 | 77 | mov r0, r0 |
78 | add sp, sp, #S_FRAME_SIZE - S_PC | 78 | add sp, sp, #S_FRAME_SIZE - S_PC |
79 | movs pc, lr @ return & move spsr_svc into cpsr | 79 | movs pc, lr @ return & move spsr_svc into cpsr |
80 | ENDPROC(ret_to_user) | ||
80 | 81 | ||
81 | /* | 82 | /* |
82 | * This is how we return from a fork. | 83 | * This is how we return from a fork. |
@@ -92,7 +93,7 @@ ENTRY(ret_from_fork) | |||
92 | mov r0, #1 @ trace exit [IP = 1] | 93 | mov r0, #1 @ trace exit [IP = 1] |
93 | bl syscall_trace | 94 | bl syscall_trace |
94 | b ret_slow_syscall | 95 | b ret_slow_syscall |
95 | 96 | ENDPROC(ret_from_fork) | |
96 | 97 | ||
97 | .equ NR_syscalls,0 | 98 | .equ NR_syscalls,0 |
98 | #define CALL(x) .equ NR_syscalls,NR_syscalls+1 | 99 | #define CALL(x) .equ NR_syscalls,NR_syscalls+1 |
@@ -269,6 +270,7 @@ ENTRY(vector_swi) | |||
269 | eor r0, scno, #__NR_SYSCALL_BASE @ put OS number back | 270 | eor r0, scno, #__NR_SYSCALL_BASE @ put OS number back |
270 | bcs arm_syscall | 271 | bcs arm_syscall |
271 | b sys_ni_syscall @ not private func | 272 | b sys_ni_syscall @ not private func |
273 | ENDPROC(vector_swi) | ||
272 | 274 | ||
273 | /* | 275 | /* |
274 | * This is the really slow path. We're going to be doing | 276 | * This is the really slow path. We're going to be doing |
@@ -326,7 +328,6 @@ ENTRY(sys_call_table) | |||
326 | */ | 328 | */ |
327 | @ r0 = syscall number | 329 | @ r0 = syscall number |
328 | @ r8 = syscall table | 330 | @ r8 = syscall table |
329 | .type sys_syscall, #function | ||
330 | sys_syscall: | 331 | sys_syscall: |
331 | bic scno, r0, #__NR_OABI_SYSCALL_BASE | 332 | bic scno, r0, #__NR_OABI_SYSCALL_BASE |
332 | cmp scno, #__NR_syscall - __NR_SYSCALL_BASE | 333 | cmp scno, #__NR_syscall - __NR_SYSCALL_BASE |
@@ -338,53 +339,65 @@ sys_syscall: | |||
338 | movlo r3, r4 | 339 | movlo r3, r4 |
339 | ldrlo pc, [tbl, scno, lsl #2] | 340 | ldrlo pc, [tbl, scno, lsl #2] |
340 | b sys_ni_syscall | 341 | b sys_ni_syscall |
342 | ENDPROC(sys_syscall) | ||
341 | 343 | ||
342 | sys_fork_wrapper: | 344 | sys_fork_wrapper: |
343 | add r0, sp, #S_OFF | 345 | add r0, sp, #S_OFF |
344 | b sys_fork | 346 | b sys_fork |
347 | ENDPROC(sys_fork_wrapper) | ||
345 | 348 | ||
346 | sys_vfork_wrapper: | 349 | sys_vfork_wrapper: |
347 | add r0, sp, #S_OFF | 350 | add r0, sp, #S_OFF |
348 | b sys_vfork | 351 | b sys_vfork |
352 | ENDPROC(sys_vfork_wrapper) | ||
349 | 353 | ||
350 | sys_execve_wrapper: | 354 | sys_execve_wrapper: |
351 | add r3, sp, #S_OFF | 355 | add r3, sp, #S_OFF |
352 | b sys_execve | 356 | b sys_execve |
357 | ENDPROC(sys_execve_wrapper) | ||
353 | 358 | ||
354 | sys_clone_wrapper: | 359 | sys_clone_wrapper: |
355 | add ip, sp, #S_OFF | 360 | add ip, sp, #S_OFF |
356 | str ip, [sp, #4] | 361 | str ip, [sp, #4] |
357 | b sys_clone | 362 | b sys_clone |
363 | ENDPROC(sys_clone_wrapper) | ||
358 | 364 | ||
359 | sys_sigsuspend_wrapper: | 365 | sys_sigsuspend_wrapper: |
360 | add r3, sp, #S_OFF | 366 | add r3, sp, #S_OFF |
361 | b sys_sigsuspend | 367 | b sys_sigsuspend |
368 | ENDPROC(sys_sigsuspend_wrapper) | ||
362 | 369 | ||
363 | sys_rt_sigsuspend_wrapper: | 370 | sys_rt_sigsuspend_wrapper: |
364 | add r2, sp, #S_OFF | 371 | add r2, sp, #S_OFF |
365 | b sys_rt_sigsuspend | 372 | b sys_rt_sigsuspend |
373 | ENDPROC(sys_rt_sigsuspend_wrapper) | ||
366 | 374 | ||
367 | sys_sigreturn_wrapper: | 375 | sys_sigreturn_wrapper: |
368 | add r0, sp, #S_OFF | 376 | add r0, sp, #S_OFF |
369 | b sys_sigreturn | 377 | b sys_sigreturn |
378 | ENDPROC(sys_sigreturn_wrapper) | ||
370 | 379 | ||
371 | sys_rt_sigreturn_wrapper: | 380 | sys_rt_sigreturn_wrapper: |
372 | add r0, sp, #S_OFF | 381 | add r0, sp, #S_OFF |
373 | b sys_rt_sigreturn | 382 | b sys_rt_sigreturn |
383 | ENDPROC(sys_rt_sigreturn_wrapper) | ||
374 | 384 | ||
375 | sys_sigaltstack_wrapper: | 385 | sys_sigaltstack_wrapper: |
376 | ldr r2, [sp, #S_OFF + S_SP] | 386 | ldr r2, [sp, #S_OFF + S_SP] |
377 | b do_sigaltstack | 387 | b do_sigaltstack |
388 | ENDPROC(sys_sigaltstack_wrapper) | ||
378 | 389 | ||
379 | sys_statfs64_wrapper: | 390 | sys_statfs64_wrapper: |
380 | teq r1, #88 | 391 | teq r1, #88 |
381 | moveq r1, #84 | 392 | moveq r1, #84 |
382 | b sys_statfs64 | 393 | b sys_statfs64 |
394 | ENDPROC(sys_statfs64_wrapper) | ||
383 | 395 | ||
384 | sys_fstatfs64_wrapper: | 396 | sys_fstatfs64_wrapper: |
385 | teq r1, #88 | 397 | teq r1, #88 |
386 | moveq r1, #84 | 398 | moveq r1, #84 |
387 | b sys_fstatfs64 | 399 | b sys_fstatfs64 |
400 | ENDPROC(sys_fstatfs64_wrapper) | ||
388 | 401 | ||
389 | /* | 402 | /* |
390 | * Note: off_4k (r5) is always units of 4K. If we can't do the requested | 403 | * Note: off_4k (r5) is always units of 4K. If we can't do the requested |
@@ -402,11 +415,14 @@ sys_mmap2: | |||
402 | str r5, [sp, #4] | 415 | str r5, [sp, #4] |
403 | b do_mmap2 | 416 | b do_mmap2 |
404 | #endif | 417 | #endif |
418 | ENDPROC(sys_mmap2) | ||
405 | 419 | ||
406 | ENTRY(pabort_ifar) | 420 | ENTRY(pabort_ifar) |
407 | mrc p15, 0, r0, cr6, cr0, 2 | 421 | mrc p15, 0, r0, cr6, cr0, 2 |
408 | ENTRY(pabort_noifar) | 422 | ENTRY(pabort_noifar) |
409 | mov pc, lr | 423 | mov pc, lr |
424 | ENDPROC(pabort_ifar) | ||
425 | ENDPROC(pabort_noifar) | ||
410 | 426 | ||
411 | #ifdef CONFIG_OABI_COMPAT | 427 | #ifdef CONFIG_OABI_COMPAT |
412 | 428 | ||
@@ -417,26 +433,31 @@ ENTRY(pabort_noifar) | |||
417 | sys_oabi_pread64: | 433 | sys_oabi_pread64: |
418 | stmia sp, {r3, r4} | 434 | stmia sp, {r3, r4} |
419 | b sys_pread64 | 435 | b sys_pread64 |
436 | ENDPROC(sys_oabi_pread64) | ||
420 | 437 | ||
421 | sys_oabi_pwrite64: | 438 | sys_oabi_pwrite64: |
422 | stmia sp, {r3, r4} | 439 | stmia sp, {r3, r4} |
423 | b sys_pwrite64 | 440 | b sys_pwrite64 |
441 | ENDPROC(sys_oabi_pwrite64) | ||
424 | 442 | ||
425 | sys_oabi_truncate64: | 443 | sys_oabi_truncate64: |
426 | mov r3, r2 | 444 | mov r3, r2 |
427 | mov r2, r1 | 445 | mov r2, r1 |
428 | b sys_truncate64 | 446 | b sys_truncate64 |
447 | ENDPROC(sys_oabi_truncate64) | ||
429 | 448 | ||
430 | sys_oabi_ftruncate64: | 449 | sys_oabi_ftruncate64: |
431 | mov r3, r2 | 450 | mov r3, r2 |
432 | mov r2, r1 | 451 | mov r2, r1 |
433 | b sys_ftruncate64 | 452 | b sys_ftruncate64 |
453 | ENDPROC(sys_oabi_ftruncate64) | ||
434 | 454 | ||
435 | sys_oabi_readahead: | 455 | sys_oabi_readahead: |
436 | str r3, [sp] | 456 | str r3, [sp] |
437 | mov r3, r2 | 457 | mov r3, r2 |
438 | mov r2, r1 | 458 | mov r2, r1 |
439 | b sys_readahead | 459 | b sys_readahead |
460 | ENDPROC(sys_oabi_readahead) | ||
440 | 461 | ||
441 | /* | 462 | /* |
442 | * Let's declare a second syscall table for old ABI binaries | 463 | * Let's declare a second syscall table for old ABI binaries |
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c index e8e90346f11c..36f81d967979 100644 --- a/arch/arm/kernel/fiq.c +++ b/arch/arm/kernel/fiq.c | |||
@@ -45,7 +45,6 @@ | |||
45 | #include <asm/fiq.h> | 45 | #include <asm/fiq.h> |
46 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
47 | #include <asm/system.h> | 47 | #include <asm/system.h> |
48 | #include <asm/uaccess.h> | ||
49 | 48 | ||
50 | static unsigned long no_fiq_insn; | 49 | static unsigned long no_fiq_insn; |
51 | 50 | ||
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S index 1c3c6ea5f9e7..bde52df1c668 100644 --- a/arch/arm/kernel/head-common.S +++ b/arch/arm/kernel/head-common.S | |||
@@ -36,7 +36,6 @@ __switch_data: | |||
36 | * r2 = atags pointer | 36 | * r2 = atags pointer |
37 | * r9 = processor ID | 37 | * r9 = processor ID |
38 | */ | 38 | */ |
39 | .type __mmap_switched, %function | ||
40 | __mmap_switched: | 39 | __mmap_switched: |
41 | adr r3, __switch_data + 4 | 40 | adr r3, __switch_data + 4 |
42 | 41 | ||
@@ -59,6 +58,7 @@ __mmap_switched: | |||
59 | bic r4, r0, #CR_A @ Clear 'A' bit | 58 | bic r4, r0, #CR_A @ Clear 'A' bit |
60 | stmia r7, {r0, r4} @ Save control register values | 59 | stmia r7, {r0, r4} @ Save control register values |
61 | b start_kernel | 60 | b start_kernel |
61 | ENDPROC(__mmap_switched) | ||
62 | 62 | ||
63 | /* | 63 | /* |
64 | * Exception handling. Something went wrong and we can't proceed. We | 64 | * Exception handling. Something went wrong and we can't proceed. We |
@@ -69,8 +69,6 @@ __mmap_switched: | |||
69 | * and hope for the best (useful if bootloader fails to pass a proper | 69 | * and hope for the best (useful if bootloader fails to pass a proper |
70 | * machine ID for example). | 70 | * machine ID for example). |
71 | */ | 71 | */ |
72 | |||
73 | .type __error_p, %function | ||
74 | __error_p: | 72 | __error_p: |
75 | #ifdef CONFIG_DEBUG_LL | 73 | #ifdef CONFIG_DEBUG_LL |
76 | adr r0, str_p1 | 74 | adr r0, str_p1 |
@@ -84,8 +82,8 @@ str_p1: .asciz "\nError: unrecognized/unsupported processor variant (0x" | |||
84 | str_p2: .asciz ").\n" | 82 | str_p2: .asciz ").\n" |
85 | .align | 83 | .align |
86 | #endif | 84 | #endif |
85 | ENDPROC(__error_p) | ||
87 | 86 | ||
88 | .type __error_a, %function | ||
89 | __error_a: | 87 | __error_a: |
90 | #ifdef CONFIG_DEBUG_LL | 88 | #ifdef CONFIG_DEBUG_LL |
91 | mov r4, r1 @ preserve machine ID | 89 | mov r4, r1 @ preserve machine ID |
@@ -115,13 +113,14 @@ __error_a: | |||
115 | adr r0, str_a3 | 113 | adr r0, str_a3 |
116 | bl printascii | 114 | bl printascii |
117 | b __error | 115 | b __error |
116 | ENDPROC(__error_a) | ||
117 | |||
118 | str_a1: .asciz "\nError: unrecognized/unsupported machine ID (r1 = 0x" | 118 | str_a1: .asciz "\nError: unrecognized/unsupported machine ID (r1 = 0x" |
119 | str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n" | 119 | str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n" |
120 | str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n" | 120 | str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n" |
121 | .align | 121 | .align |
122 | #endif | 122 | #endif |
123 | 123 | ||
124 | .type __error, %function | ||
125 | __error: | 124 | __error: |
126 | #ifdef CONFIG_ARCH_RPC | 125 | #ifdef CONFIG_ARCH_RPC |
127 | /* | 126 | /* |
@@ -138,6 +137,7 @@ __error: | |||
138 | #endif | 137 | #endif |
139 | 1: mov r0, r0 | 138 | 1: mov r0, r0 |
140 | b 1b | 139 | b 1b |
140 | ENDPROC(__error) | ||
141 | 141 | ||
142 | 142 | ||
143 | /* | 143 | /* |
@@ -153,7 +153,6 @@ __error: | |||
153 | * r5 = proc_info pointer in physical address space | 153 | * r5 = proc_info pointer in physical address space |
154 | * r9 = cpuid (preserved) | 154 | * r9 = cpuid (preserved) |
155 | */ | 155 | */ |
156 | .type __lookup_processor_type, %function | ||
157 | __lookup_processor_type: | 156 | __lookup_processor_type: |
158 | adr r3, 3f | 157 | adr r3, 3f |
159 | ldmda r3, {r5 - r7} | 158 | ldmda r3, {r5 - r7} |
@@ -169,6 +168,7 @@ __lookup_processor_type: | |||
169 | blo 1b | 168 | blo 1b |
170 | mov r5, #0 @ unknown processor | 169 | mov r5, #0 @ unknown processor |
171 | 2: mov pc, lr | 170 | 2: mov pc, lr |
171 | ENDPROC(__lookup_processor_type) | ||
172 | 172 | ||
173 | /* | 173 | /* |
174 | * This provides a C-API version of the above function. | 174 | * This provides a C-API version of the above function. |
@@ -179,6 +179,7 @@ ENTRY(lookup_processor_type) | |||
179 | bl __lookup_processor_type | 179 | bl __lookup_processor_type |
180 | mov r0, r5 | 180 | mov r0, r5 |
181 | ldmfd sp!, {r4 - r7, r9, pc} | 181 | ldmfd sp!, {r4 - r7, r9, pc} |
182 | ENDPROC(lookup_processor_type) | ||
182 | 183 | ||
183 | /* | 184 | /* |
184 | * Look in <asm/procinfo.h> and arch/arm/kernel/arch.[ch] for | 185 | * Look in <asm/procinfo.h> and arch/arm/kernel/arch.[ch] for |
@@ -201,7 +202,6 @@ ENTRY(lookup_processor_type) | |||
201 | * r3, r4, r6 corrupted | 202 | * r3, r4, r6 corrupted |
202 | * r5 = mach_info pointer in physical address space | 203 | * r5 = mach_info pointer in physical address space |
203 | */ | 204 | */ |
204 | .type __lookup_machine_type, %function | ||
205 | __lookup_machine_type: | 205 | __lookup_machine_type: |
206 | adr r3, 3b | 206 | adr r3, 3b |
207 | ldmia r3, {r4, r5, r6} | 207 | ldmia r3, {r4, r5, r6} |
@@ -216,6 +216,7 @@ __lookup_machine_type: | |||
216 | blo 1b | 216 | blo 1b |
217 | mov r5, #0 @ unknown machine | 217 | mov r5, #0 @ unknown machine |
218 | 2: mov pc, lr | 218 | 2: mov pc, lr |
219 | ENDPROC(__lookup_machine_type) | ||
219 | 220 | ||
220 | /* | 221 | /* |
221 | * This provides a C-API version of the above function. | 222 | * This provides a C-API version of the above function. |
@@ -226,6 +227,7 @@ ENTRY(lookup_machine_type) | |||
226 | bl __lookup_machine_type | 227 | bl __lookup_machine_type |
227 | mov r0, r5 | 228 | mov r0, r5 |
228 | ldmfd sp!, {r4 - r6, pc} | 229 | ldmfd sp!, {r4 - r6, pc} |
230 | ENDPROC(lookup_machine_type) | ||
229 | 231 | ||
230 | /* Determine validity of the r2 atags pointer. The heuristic requires | 232 | /* Determine validity of the r2 atags pointer. The heuristic requires |
231 | * that the pointer be aligned, in the first 16k of physical RAM and | 233 | * that the pointer be aligned, in the first 16k of physical RAM and |
@@ -239,8 +241,6 @@ ENTRY(lookup_machine_type) | |||
239 | * r2 either valid atags pointer, or zero | 241 | * r2 either valid atags pointer, or zero |
240 | * r5, r6 corrupted | 242 | * r5, r6 corrupted |
241 | */ | 243 | */ |
242 | |||
243 | .type __vet_atags, %function | ||
244 | __vet_atags: | 244 | __vet_atags: |
245 | tst r2, #0x3 @ aligned? | 245 | tst r2, #0x3 @ aligned? |
246 | bne 1f | 246 | bne 1f |
@@ -257,3 +257,4 @@ __vet_atags: | |||
257 | 257 | ||
258 | 1: mov r2, #0 | 258 | 1: mov r2, #0 |
259 | mov pc, lr | 259 | mov pc, lr |
260 | ENDPROC(__vet_atags) | ||
diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S index 27329bd32037..cc87e1765ed2 100644 --- a/arch/arm/kernel/head-nommu.S +++ b/arch/arm/kernel/head-nommu.S | |||
@@ -33,7 +33,6 @@ | |||
33 | * | 33 | * |
34 | */ | 34 | */ |
35 | .section ".text.head", "ax" | 35 | .section ".text.head", "ax" |
36 | .type stext, %function | ||
37 | ENTRY(stext) | 36 | ENTRY(stext) |
38 | msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode | 37 | msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode |
39 | @ and irqs disabled | 38 | @ and irqs disabled |
@@ -53,11 +52,11 @@ ENTRY(stext) | |||
53 | @ the initialization is done | 52 | @ the initialization is done |
54 | adr lr, __after_proc_init @ return (PIC) address | 53 | adr lr, __after_proc_init @ return (PIC) address |
55 | add pc, r10, #PROCINFO_INITFUNC | 54 | add pc, r10, #PROCINFO_INITFUNC |
55 | ENDPROC(stext) | ||
56 | 56 | ||
57 | /* | 57 | /* |
58 | * Set the Control Register and Read the process ID. | 58 | * Set the Control Register and Read the process ID. |
59 | */ | 59 | */ |
60 | .type __after_proc_init, %function | ||
61 | __after_proc_init: | 60 | __after_proc_init: |
62 | #ifdef CONFIG_CPU_CP15 | 61 | #ifdef CONFIG_CPU_CP15 |
63 | mrc p15, 0, r0, c1, c0, 0 @ read control reg | 62 | mrc p15, 0, r0, c1, c0, 0 @ read control reg |
@@ -85,6 +84,7 @@ __after_proc_init: | |||
85 | 84 | ||
86 | mov pc, r13 @ clear the BSS and jump | 85 | mov pc, r13 @ clear the BSS and jump |
87 | @ to start_kernel | 86 | @ to start_kernel |
87 | ENDPROC(__after_proc_init) | ||
88 | .ltorg | 88 | .ltorg |
89 | 89 | ||
90 | #include "head-common.S" | 90 | #include "head-common.S" |
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index bff4c6e90dd5..21e17dc94cb5 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -75,7 +75,6 @@ | |||
75 | * circumstances, zImage) is for. | 75 | * circumstances, zImage) is for. |
76 | */ | 76 | */ |
77 | .section ".text.head", "ax" | 77 | .section ".text.head", "ax" |
78 | .type stext, %function | ||
79 | ENTRY(stext) | 78 | ENTRY(stext) |
80 | msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode | 79 | msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode |
81 | @ and irqs disabled | 80 | @ and irqs disabled |
@@ -100,9 +99,9 @@ ENTRY(stext) | |||
100 | @ mmu has been enabled | 99 | @ mmu has been enabled |
101 | adr lr, __enable_mmu @ return (PIC) address | 100 | adr lr, __enable_mmu @ return (PIC) address |
102 | add pc, r10, #PROCINFO_INITFUNC | 101 | add pc, r10, #PROCINFO_INITFUNC |
102 | ENDPROC(stext) | ||
103 | 103 | ||
104 | #if defined(CONFIG_SMP) | 104 | #if defined(CONFIG_SMP) |
105 | .type secondary_startup, #function | ||
106 | ENTRY(secondary_startup) | 105 | ENTRY(secondary_startup) |
107 | /* | 106 | /* |
108 | * Common entry point for secondary CPUs. | 107 | * Common entry point for secondary CPUs. |
@@ -128,6 +127,7 @@ ENTRY(secondary_startup) | |||
128 | adr lr, __enable_mmu @ return address | 127 | adr lr, __enable_mmu @ return address |
129 | add pc, r10, #PROCINFO_INITFUNC @ initialise processor | 128 | add pc, r10, #PROCINFO_INITFUNC @ initialise processor |
130 | @ (return control reg) | 129 | @ (return control reg) |
130 | ENDPROC(secondary_startup) | ||
131 | 131 | ||
132 | /* | 132 | /* |
133 | * r6 = &secondary_data | 133 | * r6 = &secondary_data |
@@ -136,6 +136,7 @@ ENTRY(__secondary_switched) | |||
136 | ldr sp, [r7, #4] @ get secondary_data.stack | 136 | ldr sp, [r7, #4] @ get secondary_data.stack |
137 | mov fp, #0 | 137 | mov fp, #0 |
138 | b secondary_start_kernel | 138 | b secondary_start_kernel |
139 | ENDPROC(__secondary_switched) | ||
139 | 140 | ||
140 | .type __secondary_data, %object | 141 | .type __secondary_data, %object |
141 | __secondary_data: | 142 | __secondary_data: |
@@ -151,7 +152,6 @@ __secondary_data: | |||
151 | * this is just loading the page table pointer and domain access | 152 | * this is just loading the page table pointer and domain access |
152 | * registers. | 153 | * registers. |
153 | */ | 154 | */ |
154 | .type __enable_mmu, %function | ||
155 | __enable_mmu: | 155 | __enable_mmu: |
156 | #ifdef CONFIG_ALIGNMENT_TRAP | 156 | #ifdef CONFIG_ALIGNMENT_TRAP |
157 | orr r0, r0, #CR_A | 157 | orr r0, r0, #CR_A |
@@ -174,6 +174,7 @@ __enable_mmu: | |||
174 | mcr p15, 0, r5, c3, c0, 0 @ load domain access register | 174 | mcr p15, 0, r5, c3, c0, 0 @ load domain access register |
175 | mcr p15, 0, r4, c2, c0, 0 @ load page table pointer | 175 | mcr p15, 0, r4, c2, c0, 0 @ load page table pointer |
176 | b __turn_mmu_on | 176 | b __turn_mmu_on |
177 | ENDPROC(__enable_mmu) | ||
177 | 178 | ||
178 | /* | 179 | /* |
179 | * Enable the MMU. This completely changes the structure of the visible | 180 | * Enable the MMU. This completely changes the structure of the visible |
@@ -187,7 +188,6 @@ __enable_mmu: | |||
187 | * other registers depend on the function called upon completion | 188 | * other registers depend on the function called upon completion |
188 | */ | 189 | */ |
189 | .align 5 | 190 | .align 5 |
190 | .type __turn_mmu_on, %function | ||
191 | __turn_mmu_on: | 191 | __turn_mmu_on: |
192 | mov r0, r0 | 192 | mov r0, r0 |
193 | mcr p15, 0, r0, c1, c0, 0 @ write control reg | 193 | mcr p15, 0, r0, c1, c0, 0 @ write control reg |
@@ -195,7 +195,7 @@ __turn_mmu_on: | |||
195 | mov r3, r3 | 195 | mov r3, r3 |
196 | mov r3, r3 | 196 | mov r3, r3 |
197 | mov pc, r13 | 197 | mov pc, r13 |
198 | 198 | ENDPROC(__turn_mmu_on) | |
199 | 199 | ||
200 | 200 | ||
201 | /* | 201 | /* |
@@ -211,7 +211,6 @@ __turn_mmu_on: | |||
211 | * r0, r3, r6, r7 corrupted | 211 | * r0, r3, r6, r7 corrupted |
212 | * r4 = physical page table address | 212 | * r4 = physical page table address |
213 | */ | 213 | */ |
214 | .type __create_page_tables, %function | ||
215 | __create_page_tables: | 214 | __create_page_tables: |
216 | pgtbl r4 @ page table address | 215 | pgtbl r4 @ page table address |
217 | 216 | ||
@@ -325,6 +324,7 @@ __create_page_tables: | |||
325 | #endif | 324 | #endif |
326 | #endif | 325 | #endif |
327 | mov pc, lr | 326 | mov pc, lr |
327 | ENDPROC(__create_page_tables) | ||
328 | .ltorg | 328 | .ltorg |
329 | 329 | ||
330 | #include "head-common.S" | 330 | #include "head-common.S" |
diff --git a/arch/arm/kernel/init_task.c b/arch/arm/kernel/init_task.c index 8b8c9d38a761..0bbf80625395 100644 --- a/arch/arm/kernel/init_task.c +++ b/arch/arm/kernel/init_task.c | |||
@@ -8,8 +8,8 @@ | |||
8 | #include <linux/init.h> | 8 | #include <linux/init.h> |
9 | #include <linux/init_task.h> | 9 | #include <linux/init_task.h> |
10 | #include <linux/mqueue.h> | 10 | #include <linux/mqueue.h> |
11 | #include <linux/uaccess.h> | ||
11 | 12 | ||
12 | #include <asm/uaccess.h> | ||
13 | #include <asm/pgtable.h> | 13 | #include <asm/pgtable.h> |
14 | 14 | ||
15 | static struct fs_struct init_fs = INIT_FS; | 15 | static struct fs_struct init_fs = INIT_FS; |
diff --git a/arch/arm/kernel/io.c b/arch/arm/kernel/io.c index 1f6822dfae74..f4470307edb8 100644 --- a/arch/arm/kernel/io.c +++ b/arch/arm/kernel/io.c | |||
@@ -1,7 +1,6 @@ | |||
1 | #include <linux/module.h> | 1 | #include <linux/module.h> |
2 | #include <linux/types.h> | 2 | #include <linux/types.h> |
3 | 3 | #include <linux/io.h> | |
4 | #include <asm/io.h> | ||
5 | 4 | ||
6 | /* | 5 | /* |
7 | * Copy data from IO memory space to "real" memory space. | 6 | * Copy data from IO memory space to "real" memory space. |
diff --git a/arch/arm/kernel/kprobes-decode.c b/arch/arm/kernel/kprobes-decode.c index b4565bb133c1..da1f94906a4e 100644 --- a/arch/arm/kernel/kprobes-decode.c +++ b/arch/arm/kernel/kprobes-decode.c | |||
@@ -488,7 +488,7 @@ static void __kprobes simulate_ldm1stm1(struct kprobe *p, struct pt_regs *regs) | |||
488 | 488 | ||
489 | if (!ubit) | 489 | if (!ubit) |
490 | addr -= reg_count; | 490 | addr -= reg_count; |
491 | addr += (!pbit ^ !ubit); | 491 | addr += (!pbit == !ubit); |
492 | 492 | ||
493 | reg_bit_vector = insn & 0xffff; | 493 | reg_bit_vector = insn & 0xffff; |
494 | while (reg_bit_vector) { | 494 | while (reg_bit_vector) { |
@@ -503,7 +503,7 @@ static void __kprobes simulate_ldm1stm1(struct kprobe *p, struct pt_regs *regs) | |||
503 | if (wbit) { | 503 | if (wbit) { |
504 | if (!ubit) | 504 | if (!ubit) |
505 | addr -= reg_count; | 505 | addr -= reg_count; |
506 | addr -= (!pbit ^ !ubit); | 506 | addr -= (!pbit == !ubit); |
507 | regs->uregs[rn] = (long)addr; | 507 | regs->uregs[rn] = (long)addr; |
508 | } | 508 | } |
509 | } | 509 | } |
diff --git a/arch/arm/kernel/kprobes.c b/arch/arm/kernel/kprobes.c index d28513f14d05..3f9abe0e9aff 100644 --- a/arch/arm/kernel/kprobes.c +++ b/arch/arm/kernel/kprobes.c | |||
@@ -200,9 +200,12 @@ void __kprobes kprobe_handler(struct pt_regs *regs) | |||
200 | } | 200 | } |
201 | } | 201 | } |
202 | 202 | ||
203 | int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr) | 203 | static int __kprobes kprobe_trap_handler(struct pt_regs *regs, unsigned int instr) |
204 | { | 204 | { |
205 | unsigned long flags; | ||
206 | local_irq_save(flags); | ||
205 | kprobe_handler(regs); | 207 | kprobe_handler(regs); |
208 | local_irq_restore(flags); | ||
206 | return 0; | 209 | return 0; |
207 | } | 210 | } |
208 | 211 | ||
diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c index fae5beb3c3d6..440dc62cdc3a 100644 --- a/arch/arm/kernel/machine_kexec.c +++ b/arch/arm/kernel/machine_kexec.c | |||
@@ -6,10 +6,10 @@ | |||
6 | #include <linux/kexec.h> | 6 | #include <linux/kexec.h> |
7 | #include <linux/delay.h> | 7 | #include <linux/delay.h> |
8 | #include <linux/reboot.h> | 8 | #include <linux/reboot.h> |
9 | #include <linux/io.h> | ||
9 | #include <asm/pgtable.h> | 10 | #include <asm/pgtable.h> |
10 | #include <asm/pgalloc.h> | 11 | #include <asm/pgalloc.h> |
11 | #include <asm/mmu_context.h> | 12 | #include <asm/mmu_context.h> |
12 | #include <asm/io.h> | ||
13 | #include <asm/cacheflush.h> | 13 | #include <asm/cacheflush.h> |
14 | #include <asm/mach-types.h> | 14 | #include <asm/mach-types.h> |
15 | 15 | ||
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 3fd882337064..d3ea6fa89521 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -28,12 +28,12 @@ | |||
28 | #include <linux/pm.h> | 28 | #include <linux/pm.h> |
29 | #include <linux/tick.h> | 29 | #include <linux/tick.h> |
30 | #include <linux/utsname.h> | 30 | #include <linux/utsname.h> |
31 | #include <linux/uaccess.h> | ||
31 | 32 | ||
32 | #include <asm/leds.h> | 33 | #include <asm/leds.h> |
33 | #include <asm/processor.h> | 34 | #include <asm/processor.h> |
34 | #include <asm/system.h> | 35 | #include <asm/system.h> |
35 | #include <asm/thread_notify.h> | 36 | #include <asm/thread_notify.h> |
36 | #include <asm/uaccess.h> | ||
37 | #include <asm/mach/time.h> | 37 | #include <asm/mach/time.h> |
38 | 38 | ||
39 | static const char *processor_modes[] = { | 39 | static const char *processor_modes[] = { |
@@ -267,35 +267,6 @@ void show_regs(struct pt_regs * regs) | |||
267 | __backtrace(); | 267 | __backtrace(); |
268 | } | 268 | } |
269 | 269 | ||
270 | void show_fpregs(struct user_fp *regs) | ||
271 | { | ||
272 | int i; | ||
273 | |||
274 | for (i = 0; i < 8; i++) { | ||
275 | unsigned long *p; | ||
276 | char type; | ||
277 | |||
278 | p = (unsigned long *)(regs->fpregs + i); | ||
279 | |||
280 | switch (regs->ftype[i]) { | ||
281 | case 1: type = 'f'; break; | ||
282 | case 2: type = 'd'; break; | ||
283 | case 3: type = 'e'; break; | ||
284 | default: type = '?'; break; | ||
285 | } | ||
286 | if (regs->init_flag) | ||
287 | type = '?'; | ||
288 | |||
289 | printk(" f%d(%c): %08lx %08lx %08lx%c", | ||
290 | i, type, p[0], p[1], p[2], i & 1 ? '\n' : ' '); | ||
291 | } | ||
292 | |||
293 | |||
294 | printk("FPSR: %08lx FPCR: %08lx\n", | ||
295 | (unsigned long)regs->fpsr, | ||
296 | (unsigned long)regs->fpcr); | ||
297 | } | ||
298 | |||
299 | /* | 270 | /* |
300 | * Free current thread data structures etc.. | 271 | * Free current thread data structures etc.. |
301 | */ | 272 | */ |
@@ -414,7 +385,7 @@ unsigned long get_wchan(struct task_struct *p) | |||
414 | do { | 385 | do { |
415 | if (fp < stack_start || fp > stack_end) | 386 | if (fp < stack_start || fp > stack_end) |
416 | return 0; | 387 | return 0; |
417 | lr = pc_pointer (((unsigned long *)fp)[-1]); | 388 | lr = ((unsigned long *)fp)[-1]; |
418 | if (!in_sched_functions(lr)) | 389 | if (!in_sched_functions(lr)) |
419 | return lr; | 390 | return lr; |
420 | fp = *(unsigned long *) (fp - 12); | 391 | fp = *(unsigned long *) (fp - 12); |
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index 4b05dc5c1023..df653ea59250 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c | |||
@@ -18,8 +18,8 @@ | |||
18 | #include <linux/security.h> | 18 | #include <linux/security.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/signal.h> | 20 | #include <linux/signal.h> |
21 | #include <linux/uaccess.h> | ||
21 | 22 | ||
22 | #include <asm/uaccess.h> | ||
23 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
24 | #include <asm/system.h> | 24 | #include <asm/system.h> |
25 | #include <asm/traps.h> | 25 | #include <asm/traps.h> |
@@ -126,7 +126,7 @@ ptrace_getrn(struct task_struct *child, unsigned long insn) | |||
126 | 126 | ||
127 | val = get_user_reg(child, reg); | 127 | val = get_user_reg(child, reg); |
128 | if (reg == 15) | 128 | if (reg == 15) |
129 | val = pc_pointer(val + 8); | 129 | val += 8; |
130 | 130 | ||
131 | return val; | 131 | return val; |
132 | } | 132 | } |
@@ -278,8 +278,7 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in | |||
278 | else | 278 | else |
279 | base -= aluop2; | 279 | base -= aluop2; |
280 | } | 280 | } |
281 | if (read_u32(child, base, &alt) == 0) | 281 | read_u32(child, base, &alt); |
282 | alt = pc_pointer(alt); | ||
283 | } | 282 | } |
284 | break; | 283 | break; |
285 | 284 | ||
@@ -305,8 +304,7 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in | |||
305 | 304 | ||
306 | base = ptrace_getrn(child, insn); | 305 | base = ptrace_getrn(child, insn); |
307 | 306 | ||
308 | if (read_u32(child, base + nr_regs, &alt) == 0) | 307 | read_u32(child, base + nr_regs, &alt); |
309 | alt = pc_pointer(alt); | ||
310 | break; | 308 | break; |
311 | } | 309 | } |
312 | break; | 310 | break; |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 2ca7038b67a7..1f1eecca7f55 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -26,11 +26,13 @@ | |||
26 | #include <linux/fs.h> | 26 | #include <linux/fs.h> |
27 | 27 | ||
28 | #include <asm/cpu.h> | 28 | #include <asm/cpu.h> |
29 | #include <asm/cputype.h> | ||
29 | #include <asm/elf.h> | 30 | #include <asm/elf.h> |
30 | #include <asm/procinfo.h> | 31 | #include <asm/procinfo.h> |
31 | #include <asm/setup.h> | 32 | #include <asm/setup.h> |
32 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
33 | #include <asm/cacheflush.h> | 34 | #include <asm/cacheflush.h> |
35 | #include <asm/cachetype.h> | ||
34 | #include <asm/tlbflush.h> | 36 | #include <asm/tlbflush.h> |
35 | 37 | ||
36 | #include <asm/mach/arch.h> | 38 | #include <asm/mach/arch.h> |
@@ -59,13 +61,14 @@ __setup("fpe=", fpe_setup); | |||
59 | 61 | ||
60 | extern void paging_init(struct meminfo *, struct machine_desc *desc); | 62 | extern void paging_init(struct meminfo *, struct machine_desc *desc); |
61 | extern void reboot_setup(char *str); | 63 | extern void reboot_setup(char *str); |
62 | extern int root_mountflags; | 64 | extern void _text, _etext, __data_start, _edata, _end; |
63 | extern void _stext, _text, _etext, __data_start, _edata, _end; | ||
64 | 65 | ||
65 | unsigned int processor_id; | 66 | unsigned int processor_id; |
66 | EXPORT_SYMBOL(processor_id); | 67 | EXPORT_SYMBOL(processor_id); |
67 | unsigned int __machine_arch_type; | 68 | unsigned int __machine_arch_type; |
68 | EXPORT_SYMBOL(__machine_arch_type); | 69 | EXPORT_SYMBOL(__machine_arch_type); |
70 | unsigned int cacheid; | ||
71 | EXPORT_SYMBOL(cacheid); | ||
69 | 72 | ||
70 | unsigned int __atags_pointer __initdata; | 73 | unsigned int __atags_pointer __initdata; |
71 | 74 | ||
@@ -81,8 +84,6 @@ EXPORT_SYMBOL(system_serial_high); | |||
81 | unsigned int elf_hwcap; | 84 | unsigned int elf_hwcap; |
82 | EXPORT_SYMBOL(elf_hwcap); | 85 | EXPORT_SYMBOL(elf_hwcap); |
83 | 86 | ||
84 | unsigned long __initdata vmalloc_reserve = 128 << 20; | ||
85 | |||
86 | 87 | ||
87 | #ifdef MULTI_CPU | 88 | #ifdef MULTI_CPU |
88 | struct processor processor; | 89 | struct processor processor; |
@@ -111,9 +112,6 @@ static struct stack stacks[NR_CPUS]; | |||
111 | char elf_platform[ELF_PLATFORM_SIZE]; | 112 | char elf_platform[ELF_PLATFORM_SIZE]; |
112 | EXPORT_SYMBOL(elf_platform); | 113 | EXPORT_SYMBOL(elf_platform); |
113 | 114 | ||
114 | unsigned long phys_initrd_start __initdata = 0; | ||
115 | unsigned long phys_initrd_size __initdata = 0; | ||
116 | |||
117 | static struct meminfo meminfo __initdata = { 0, }; | 115 | static struct meminfo meminfo __initdata = { 0, }; |
118 | static const char *cpu_name; | 116 | static const char *cpu_name; |
119 | static const char *machine_name; | 117 | static const char *machine_name; |
@@ -178,63 +176,6 @@ static struct resource io_res[] = { | |||
178 | #define lp1 io_res[1] | 176 | #define lp1 io_res[1] |
179 | #define lp2 io_res[2] | 177 | #define lp2 io_res[2] |
180 | 178 | ||
181 | static const char *cache_types[16] = { | ||
182 | "write-through", | ||
183 | "write-back", | ||
184 | "write-back", | ||
185 | "undefined 3", | ||
186 | "undefined 4", | ||
187 | "undefined 5", | ||
188 | "write-back", | ||
189 | "write-back", | ||
190 | "undefined 8", | ||
191 | "undefined 9", | ||
192 | "undefined 10", | ||
193 | "undefined 11", | ||
194 | "undefined 12", | ||
195 | "undefined 13", | ||
196 | "write-back", | ||
197 | "undefined 15", | ||
198 | }; | ||
199 | |||
200 | static const char *cache_clean[16] = { | ||
201 | "not required", | ||
202 | "read-block", | ||
203 | "cp15 c7 ops", | ||
204 | "undefined 3", | ||
205 | "undefined 4", | ||
206 | "undefined 5", | ||
207 | "cp15 c7 ops", | ||
208 | "cp15 c7 ops", | ||
209 | "undefined 8", | ||
210 | "undefined 9", | ||
211 | "undefined 10", | ||
212 | "undefined 11", | ||
213 | "undefined 12", | ||
214 | "undefined 13", | ||
215 | "cp15 c7 ops", | ||
216 | "undefined 15", | ||
217 | }; | ||
218 | |||
219 | static const char *cache_lockdown[16] = { | ||
220 | "not supported", | ||
221 | "not supported", | ||
222 | "not supported", | ||
223 | "undefined 3", | ||
224 | "undefined 4", | ||
225 | "undefined 5", | ||
226 | "format A", | ||
227 | "format B", | ||
228 | "undefined 8", | ||
229 | "undefined 9", | ||
230 | "undefined 10", | ||
231 | "undefined 11", | ||
232 | "undefined 12", | ||
233 | "undefined 13", | ||
234 | "format C", | ||
235 | "undefined 15", | ||
236 | }; | ||
237 | |||
238 | static const char *proc_arch[] = { | 179 | static const char *proc_arch[] = { |
239 | "undefined/unknown", | 180 | "undefined/unknown", |
240 | "3", | 181 | "3", |
@@ -255,61 +196,19 @@ static const char *proc_arch[] = { | |||
255 | "?(17)", | 196 | "?(17)", |
256 | }; | 197 | }; |
257 | 198 | ||
258 | #define CACHE_TYPE(x) (((x) >> 25) & 15) | ||
259 | #define CACHE_S(x) ((x) & (1 << 24)) | ||
260 | #define CACHE_DSIZE(x) (((x) >> 12) & 4095) /* only if S=1 */ | ||
261 | #define CACHE_ISIZE(x) ((x) & 4095) | ||
262 | |||
263 | #define CACHE_SIZE(y) (((y) >> 6) & 7) | ||
264 | #define CACHE_ASSOC(y) (((y) >> 3) & 7) | ||
265 | #define CACHE_M(y) ((y) & (1 << 2)) | ||
266 | #define CACHE_LINE(y) ((y) & 3) | ||
267 | |||
268 | static inline void dump_cache(const char *prefix, int cpu, unsigned int cache) | ||
269 | { | ||
270 | unsigned int mult = 2 + (CACHE_M(cache) ? 1 : 0); | ||
271 | |||
272 | printk("CPU%u: %s: %d bytes, associativity %d, %d byte lines, %d sets\n", | ||
273 | cpu, prefix, | ||
274 | mult << (8 + CACHE_SIZE(cache)), | ||
275 | (mult << CACHE_ASSOC(cache)) >> 1, | ||
276 | 8 << CACHE_LINE(cache), | ||
277 | 1 << (6 + CACHE_SIZE(cache) - CACHE_ASSOC(cache) - | ||
278 | CACHE_LINE(cache))); | ||
279 | } | ||
280 | |||
281 | static void __init dump_cpu_info(int cpu) | ||
282 | { | ||
283 | unsigned int info = read_cpuid(CPUID_CACHETYPE); | ||
284 | |||
285 | if (info != processor_id) { | ||
286 | printk("CPU%u: D %s %s cache\n", cpu, cache_is_vivt() ? "VIVT" : "VIPT", | ||
287 | cache_types[CACHE_TYPE(info)]); | ||
288 | if (CACHE_S(info)) { | ||
289 | dump_cache("I cache", cpu, CACHE_ISIZE(info)); | ||
290 | dump_cache("D cache", cpu, CACHE_DSIZE(info)); | ||
291 | } else { | ||
292 | dump_cache("cache", cpu, CACHE_ISIZE(info)); | ||
293 | } | ||
294 | } | ||
295 | |||
296 | if (arch_is_coherent()) | ||
297 | printk("Cache coherency enabled\n"); | ||
298 | } | ||
299 | |||
300 | int cpu_architecture(void) | 199 | int cpu_architecture(void) |
301 | { | 200 | { |
302 | int cpu_arch; | 201 | int cpu_arch; |
303 | 202 | ||
304 | if ((processor_id & 0x0008f000) == 0) { | 203 | if ((read_cpuid_id() & 0x0008f000) == 0) { |
305 | cpu_arch = CPU_ARCH_UNKNOWN; | 204 | cpu_arch = CPU_ARCH_UNKNOWN; |
306 | } else if ((processor_id & 0x0008f000) == 0x00007000) { | 205 | } else if ((read_cpuid_id() & 0x0008f000) == 0x00007000) { |
307 | cpu_arch = (processor_id & (1 << 23)) ? CPU_ARCH_ARMv4T : CPU_ARCH_ARMv3; | 206 | cpu_arch = (read_cpuid_id() & (1 << 23)) ? CPU_ARCH_ARMv4T : CPU_ARCH_ARMv3; |
308 | } else if ((processor_id & 0x00080000) == 0x00000000) { | 207 | } else if ((read_cpuid_id() & 0x00080000) == 0x00000000) { |
309 | cpu_arch = (processor_id >> 16) & 7; | 208 | cpu_arch = (read_cpuid_id() >> 16) & 7; |
310 | if (cpu_arch) | 209 | if (cpu_arch) |
311 | cpu_arch += CPU_ARCH_ARMv3; | 210 | cpu_arch += CPU_ARCH_ARMv3; |
312 | } else if ((processor_id & 0x000f0000) == 0x000f0000) { | 211 | } else if ((read_cpuid_id() & 0x000f0000) == 0x000f0000) { |
313 | unsigned int mmfr0; | 212 | unsigned int mmfr0; |
314 | 213 | ||
315 | /* Revised CPUID format. Read the Memory Model Feature | 214 | /* Revised CPUID format. Read the Memory Model Feature |
@@ -330,6 +229,34 @@ int cpu_architecture(void) | |||
330 | return cpu_arch; | 229 | return cpu_arch; |
331 | } | 230 | } |
332 | 231 | ||
232 | static void __init cacheid_init(void) | ||
233 | { | ||
234 | unsigned int cachetype = read_cpuid_cachetype(); | ||
235 | unsigned int arch = cpu_architecture(); | ||
236 | |||
237 | if (arch >= CPU_ARCH_ARMv7) { | ||
238 | cacheid = CACHEID_VIPT_NONALIASING; | ||
239 | if ((cachetype & (3 << 14)) == 1 << 14) | ||
240 | cacheid |= CACHEID_ASID_TAGGED; | ||
241 | } else if (arch >= CPU_ARCH_ARMv6) { | ||
242 | if (cachetype & (1 << 23)) | ||
243 | cacheid = CACHEID_VIPT_ALIASING; | ||
244 | else | ||
245 | cacheid = CACHEID_VIPT_NONALIASING; | ||
246 | } else { | ||
247 | cacheid = CACHEID_VIVT; | ||
248 | } | ||
249 | |||
250 | printk("CPU: %s data cache, %s instruction cache\n", | ||
251 | cache_is_vivt() ? "VIVT" : | ||
252 | cache_is_vipt_aliasing() ? "VIPT aliasing" : | ||
253 | cache_is_vipt_nonaliasing() ? "VIPT nonaliasing" : "unknown", | ||
254 | cache_is_vivt() ? "VIVT" : | ||
255 | icache_is_vivt_asid_tagged() ? "VIVT ASID tagged" : | ||
256 | cache_is_vipt_aliasing() ? "VIPT aliasing" : | ||
257 | cache_is_vipt_nonaliasing() ? "VIPT nonaliasing" : "unknown"); | ||
258 | } | ||
259 | |||
333 | /* | 260 | /* |
334 | * These functions re-use the assembly code in head.S, which | 261 | * These functions re-use the assembly code in head.S, which |
335 | * already provide the required functionality. | 262 | * already provide the required functionality. |
@@ -346,10 +273,10 @@ static void __init setup_processor(void) | |||
346 | * types. The linker builds this table for us from the | 273 | * types. The linker builds this table for us from the |
347 | * entries in arch/arm/mm/proc-*.S | 274 | * entries in arch/arm/mm/proc-*.S |
348 | */ | 275 | */ |
349 | list = lookup_processor_type(processor_id); | 276 | list = lookup_processor_type(read_cpuid_id()); |
350 | if (!list) { | 277 | if (!list) { |
351 | printk("CPU configuration botched (ID %08x), unable " | 278 | printk("CPU configuration botched (ID %08x), unable " |
352 | "to continue.\n", processor_id); | 279 | "to continue.\n", read_cpuid_id()); |
353 | while (1); | 280 | while (1); |
354 | } | 281 | } |
355 | 282 | ||
@@ -369,7 +296,7 @@ static void __init setup_processor(void) | |||
369 | #endif | 296 | #endif |
370 | 297 | ||
371 | printk("CPU: %s [%08x] revision %d (ARMv%s), cr=%08lx\n", | 298 | printk("CPU: %s [%08x] revision %d (ARMv%s), cr=%08lx\n", |
372 | cpu_name, processor_id, (int)processor_id & 15, | 299 | cpu_name, read_cpuid_id(), read_cpuid_id() & 15, |
373 | proc_arch[cpu_architecture()], cr_alignment); | 300 | proc_arch[cpu_architecture()], cr_alignment); |
374 | 301 | ||
375 | sprintf(init_utsname()->machine, "%s%c", list->arch_name, ENDIANNESS); | 302 | sprintf(init_utsname()->machine, "%s%c", list->arch_name, ENDIANNESS); |
@@ -379,14 +306,14 @@ static void __init setup_processor(void) | |||
379 | elf_hwcap &= ~HWCAP_THUMB; | 306 | elf_hwcap &= ~HWCAP_THUMB; |
380 | #endif | 307 | #endif |
381 | 308 | ||
309 | cacheid_init(); | ||
382 | cpu_proc_init(); | 310 | cpu_proc_init(); |
383 | } | 311 | } |
384 | 312 | ||
385 | /* | 313 | /* |
386 | * cpu_init - initialise one CPU. | 314 | * cpu_init - initialise one CPU. |
387 | * | 315 | * |
388 | * cpu_init dumps the cache information, initialises SMP specific | 316 | * cpu_init sets up the per-CPU stacks. |
389 | * information, and sets up the per-CPU stacks. | ||
390 | */ | 317 | */ |
391 | void cpu_init(void) | 318 | void cpu_init(void) |
392 | { | 319 | { |
@@ -398,9 +325,6 @@ void cpu_init(void) | |||
398 | BUG(); | 325 | BUG(); |
399 | } | 326 | } |
400 | 327 | ||
401 | if (system_state == SYSTEM_BOOTING) | ||
402 | dump_cpu_info(cpu); | ||
403 | |||
404 | /* | 328 | /* |
405 | * setup stacks for re-entrant exception handlers | 329 | * setup stacks for re-entrant exception handlers |
406 | */ | 330 | */ |
@@ -443,20 +367,6 @@ static struct machine_desc * __init setup_machine(unsigned int nr) | |||
443 | return list; | 367 | return list; |
444 | } | 368 | } |
445 | 369 | ||
446 | static void __init early_initrd(char **p) | ||
447 | { | ||
448 | unsigned long start, size; | ||
449 | |||
450 | start = memparse(*p, p); | ||
451 | if (**p == ',') { | ||
452 | size = memparse((*p) + 1, p); | ||
453 | |||
454 | phys_initrd_start = start; | ||
455 | phys_initrd_size = size; | ||
456 | } | ||
457 | } | ||
458 | __early_param("initrd=", early_initrd); | ||
459 | |||
460 | static void __init arm_add_memory(unsigned long start, unsigned long size) | 370 | static void __init arm_add_memory(unsigned long start, unsigned long size) |
461 | { | 371 | { |
462 | struct membank *bank; | 372 | struct membank *bank; |
@@ -503,17 +413,6 @@ static void __init early_mem(char **p) | |||
503 | __early_param("mem=", early_mem); | 413 | __early_param("mem=", early_mem); |
504 | 414 | ||
505 | /* | 415 | /* |
506 | * vmalloc=size forces the vmalloc area to be exactly 'size' | ||
507 | * bytes. This can be used to increase (or decrease) the vmalloc | ||
508 | * area - the default is 128m. | ||
509 | */ | ||
510 | static void __init early_vmalloc(char **arg) | ||
511 | { | ||
512 | vmalloc_reserve = memparse(*arg, arg); | ||
513 | } | ||
514 | __early_param("vmalloc=", early_vmalloc); | ||
515 | |||
516 | /* | ||
517 | * Initial parsing of the command line. | 416 | * Initial parsing of the command line. |
518 | */ | 417 | */ |
519 | static void __init parse_cmdline(char **cmdline_p, char *from) | 418 | static void __init parse_cmdline(char **cmdline_p, char *from) |
@@ -527,12 +426,12 @@ static void __init parse_cmdline(char **cmdline_p, char *from) | |||
527 | struct early_params *p; | 426 | struct early_params *p; |
528 | 427 | ||
529 | for (p = &__early_begin; p < &__early_end; p++) { | 428 | for (p = &__early_begin; p < &__early_end; p++) { |
530 | int len = strlen(p->arg); | 429 | int arglen = strlen(p->arg); |
531 | 430 | ||
532 | if (memcmp(from, p->arg, len) == 0) { | 431 | if (memcmp(from, p->arg, arglen) == 0) { |
533 | if (to != command_line) | 432 | if (to != command_line) |
534 | to -= 1; | 433 | to -= 1; |
535 | from += len; | 434 | from += arglen; |
536 | p->fn(&from); | 435 | p->fn(&from); |
537 | 436 | ||
538 | while (*from != ' ' && *from != '\0') | 437 | while (*from != ' ' && *from != '\0') |
@@ -579,18 +478,13 @@ request_standard_resources(struct meminfo *mi, struct machine_desc *mdesc) | |||
579 | kernel_data.end = virt_to_phys(&_end - 1); | 478 | kernel_data.end = virt_to_phys(&_end - 1); |
580 | 479 | ||
581 | for (i = 0; i < mi->nr_banks; i++) { | 480 | for (i = 0; i < mi->nr_banks; i++) { |
582 | unsigned long virt_start, virt_end; | ||
583 | |||
584 | if (mi->bank[i].size == 0) | 481 | if (mi->bank[i].size == 0) |
585 | continue; | 482 | continue; |
586 | 483 | ||
587 | virt_start = __phys_to_virt(mi->bank[i].start); | ||
588 | virt_end = virt_start + mi->bank[i].size - 1; | ||
589 | |||
590 | res = alloc_bootmem_low(sizeof(*res)); | 484 | res = alloc_bootmem_low(sizeof(*res)); |
591 | res->name = "System RAM"; | 485 | res->name = "System RAM"; |
592 | res->start = __virt_to_phys(virt_start); | 486 | res->start = mi->bank[i].start; |
593 | res->end = __virt_to_phys(virt_end); | 487 | res->end = mi->bank[i].start + mi->bank[i].size - 1; |
594 | res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; | 488 | res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; |
595 | 489 | ||
596 | request_resource(&iomem_resource, res); | 490 | request_resource(&iomem_resource, res); |
@@ -694,26 +588,6 @@ static int __init parse_tag_ramdisk(const struct tag *tag) | |||
694 | 588 | ||
695 | __tagtable(ATAG_RAMDISK, parse_tag_ramdisk); | 589 | __tagtable(ATAG_RAMDISK, parse_tag_ramdisk); |
696 | 590 | ||
697 | static int __init parse_tag_initrd(const struct tag *tag) | ||
698 | { | ||
699 | printk(KERN_WARNING "ATAG_INITRD is deprecated; " | ||
700 | "please update your bootloader.\n"); | ||
701 | phys_initrd_start = __virt_to_phys(tag->u.initrd.start); | ||
702 | phys_initrd_size = tag->u.initrd.size; | ||
703 | return 0; | ||
704 | } | ||
705 | |||
706 | __tagtable(ATAG_INITRD, parse_tag_initrd); | ||
707 | |||
708 | static int __init parse_tag_initrd2(const struct tag *tag) | ||
709 | { | ||
710 | phys_initrd_start = tag->u.initrd.start; | ||
711 | phys_initrd_size = tag->u.initrd.size; | ||
712 | return 0; | ||
713 | } | ||
714 | |||
715 | __tagtable(ATAG_INITRD2, parse_tag_initrd2); | ||
716 | |||
717 | static int __init parse_tag_serialnr(const struct tag *tag) | 591 | static int __init parse_tag_serialnr(const struct tag *tag) |
718 | { | 592 | { |
719 | system_serial_low = tag->u.serialnr.low; | 593 | system_serial_low = tag->u.serialnr.low; |
@@ -901,28 +775,12 @@ static const char *hwcap_str[] = { | |||
901 | NULL | 775 | NULL |
902 | }; | 776 | }; |
903 | 777 | ||
904 | static void | ||
905 | c_show_cache(struct seq_file *m, const char *type, unsigned int cache) | ||
906 | { | ||
907 | unsigned int mult = 2 + (CACHE_M(cache) ? 1 : 0); | ||
908 | |||
909 | seq_printf(m, "%s size\t\t: %d\n" | ||
910 | "%s assoc\t\t: %d\n" | ||
911 | "%s line length\t: %d\n" | ||
912 | "%s sets\t\t: %d\n", | ||
913 | type, mult << (8 + CACHE_SIZE(cache)), | ||
914 | type, (mult << CACHE_ASSOC(cache)) >> 1, | ||
915 | type, 8 << CACHE_LINE(cache), | ||
916 | type, 1 << (6 + CACHE_SIZE(cache) - CACHE_ASSOC(cache) - | ||
917 | CACHE_LINE(cache))); | ||
918 | } | ||
919 | |||
920 | static int c_show(struct seq_file *m, void *v) | 778 | static int c_show(struct seq_file *m, void *v) |
921 | { | 779 | { |
922 | int i; | 780 | int i; |
923 | 781 | ||
924 | seq_printf(m, "Processor\t: %s rev %d (%s)\n", | 782 | seq_printf(m, "Processor\t: %s rev %d (%s)\n", |
925 | cpu_name, (int)processor_id & 15, elf_platform); | 783 | cpu_name, read_cpuid_id() & 15, elf_platform); |
926 | 784 | ||
927 | #if defined(CONFIG_SMP) | 785 | #if defined(CONFIG_SMP) |
928 | for_each_online_cpu(i) { | 786 | for_each_online_cpu(i) { |
@@ -949,47 +807,26 @@ static int c_show(struct seq_file *m, void *v) | |||
949 | if (elf_hwcap & (1 << i)) | 807 | if (elf_hwcap & (1 << i)) |
950 | seq_printf(m, "%s ", hwcap_str[i]); | 808 | seq_printf(m, "%s ", hwcap_str[i]); |
951 | 809 | ||
952 | seq_printf(m, "\nCPU implementer\t: 0x%02x\n", processor_id >> 24); | 810 | seq_printf(m, "\nCPU implementer\t: 0x%02x\n", read_cpuid_id() >> 24); |
953 | seq_printf(m, "CPU architecture: %s\n", proc_arch[cpu_architecture()]); | 811 | seq_printf(m, "CPU architecture: %s\n", proc_arch[cpu_architecture()]); |
954 | 812 | ||
955 | if ((processor_id & 0x0008f000) == 0x00000000) { | 813 | if ((read_cpuid_id() & 0x0008f000) == 0x00000000) { |
956 | /* pre-ARM7 */ | 814 | /* pre-ARM7 */ |
957 | seq_printf(m, "CPU part\t: %07x\n", processor_id >> 4); | 815 | seq_printf(m, "CPU part\t: %07x\n", read_cpuid_id() >> 4); |
958 | } else { | 816 | } else { |
959 | if ((processor_id & 0x0008f000) == 0x00007000) { | 817 | if ((read_cpuid_id() & 0x0008f000) == 0x00007000) { |
960 | /* ARM7 */ | 818 | /* ARM7 */ |
961 | seq_printf(m, "CPU variant\t: 0x%02x\n", | 819 | seq_printf(m, "CPU variant\t: 0x%02x\n", |
962 | (processor_id >> 16) & 127); | 820 | (read_cpuid_id() >> 16) & 127); |
963 | } else { | 821 | } else { |
964 | /* post-ARM7 */ | 822 | /* post-ARM7 */ |
965 | seq_printf(m, "CPU variant\t: 0x%x\n", | 823 | seq_printf(m, "CPU variant\t: 0x%x\n", |
966 | (processor_id >> 20) & 15); | 824 | (read_cpuid_id() >> 20) & 15); |
967 | } | 825 | } |
968 | seq_printf(m, "CPU part\t: 0x%03x\n", | 826 | seq_printf(m, "CPU part\t: 0x%03x\n", |
969 | (processor_id >> 4) & 0xfff); | 827 | (read_cpuid_id() >> 4) & 0xfff); |
970 | } | ||
971 | seq_printf(m, "CPU revision\t: %d\n", processor_id & 15); | ||
972 | |||
973 | { | ||
974 | unsigned int cache_info = read_cpuid(CPUID_CACHETYPE); | ||
975 | if (cache_info != processor_id) { | ||
976 | seq_printf(m, "Cache type\t: %s\n" | ||
977 | "Cache clean\t: %s\n" | ||
978 | "Cache lockdown\t: %s\n" | ||
979 | "Cache format\t: %s\n", | ||
980 | cache_types[CACHE_TYPE(cache_info)], | ||
981 | cache_clean[CACHE_TYPE(cache_info)], | ||
982 | cache_lockdown[CACHE_TYPE(cache_info)], | ||
983 | CACHE_S(cache_info) ? "Harvard" : "Unified"); | ||
984 | |||
985 | if (CACHE_S(cache_info)) { | ||
986 | c_show_cache(m, "I", CACHE_ISIZE(cache_info)); | ||
987 | c_show_cache(m, "D", CACHE_DSIZE(cache_info)); | ||
988 | } else { | ||
989 | c_show_cache(m, "Cache", CACHE_ISIZE(cache_info)); | ||
990 | } | ||
991 | } | ||
992 | } | 828 | } |
829 | seq_printf(m, "CPU revision\t: %d\n", read_cpuid_id() & 15); | ||
993 | 830 | ||
994 | seq_puts(m, "\n"); | 831 | seq_puts(m, "\n"); |
995 | 832 | ||
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index ef2f86a5e78a..80b8b5c7e07a 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c | |||
@@ -11,11 +11,11 @@ | |||
11 | #include <linux/signal.h> | 11 | #include <linux/signal.h> |
12 | #include <linux/personality.h> | 12 | #include <linux/personality.h> |
13 | #include <linux/freezer.h> | 13 | #include <linux/freezer.h> |
14 | #include <linux/uaccess.h> | ||
14 | 15 | ||
15 | #include <asm/elf.h> | 16 | #include <asm/elf.h> |
16 | #include <asm/cacheflush.h> | 17 | #include <asm/cacheflush.h> |
17 | #include <asm/ucontext.h> | 18 | #include <asm/ucontext.h> |
18 | #include <asm/uaccess.h> | ||
19 | #include <asm/unistd.h> | 19 | #include <asm/unistd.h> |
20 | 20 | ||
21 | #include "ptrace.h" | 21 | #include "ptrace.h" |
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index 0128687ba0f7..b3ec641b5cf8 100644 --- a/arch/arm/kernel/sys_arm.c +++ b/arch/arm/kernel/sys_arm.c | |||
@@ -27,8 +27,7 @@ | |||
27 | #include <linux/file.h> | 27 | #include <linux/file.h> |
28 | #include <linux/utsname.h> | 28 | #include <linux/utsname.h> |
29 | #include <linux/ipc.h> | 29 | #include <linux/ipc.h> |
30 | 30 | #include <linux/uaccess.h> | |
31 | #include <asm/uaccess.h> | ||
32 | 31 | ||
33 | extern unsigned long do_mremap(unsigned long addr, unsigned long old_len, | 32 | extern unsigned long do_mremap(unsigned long addr, unsigned long old_len, |
34 | unsigned long new_len, unsigned long flags, | 33 | unsigned long new_len, unsigned long flags, |
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index 96ab5f52949c..42623db7f870 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c | |||
@@ -82,7 +82,7 @@ | |||
82 | #include <linux/socket.h> | 82 | #include <linux/socket.h> |
83 | #include <linux/net.h> | 83 | #include <linux/net.h> |
84 | #include <linux/ipc.h> | 84 | #include <linux/ipc.h> |
85 | #include <asm/uaccess.h> | 85 | #include <linux/uaccess.h> |
86 | 86 | ||
87 | struct oldabi_stat64 { | 87 | struct oldabi_stat64 { |
88 | unsigned long long st_dev; | 88 | unsigned long long st_dev; |
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index 368d171754cf..c68b44aa88d2 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
@@ -59,7 +59,7 @@ unsigned long profile_pc(struct pt_regs *regs) | |||
59 | 59 | ||
60 | if (in_lock_functions(pc)) { | 60 | if (in_lock_functions(pc)) { |
61 | fp = regs->ARM_fp; | 61 | fp = regs->ARM_fp; |
62 | pc = pc_pointer(((unsigned long *)fp)[-1]); | 62 | pc = ((unsigned long *)fp)[-1]; |
63 | } | 63 | } |
64 | 64 | ||
65 | return pc; | 65 | return pc; |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index 872f1f8fbb57..57e6874d0b80 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -19,15 +19,13 @@ | |||
19 | #include <linux/kallsyms.h> | 19 | #include <linux/kallsyms.h> |
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/kprobes.h> | 22 | #include <linux/uaccess.h> |
23 | 23 | ||
24 | #include <asm/atomic.h> | 24 | #include <asm/atomic.h> |
25 | #include <asm/cacheflush.h> | 25 | #include <asm/cacheflush.h> |
26 | #include <asm/system.h> | 26 | #include <asm/system.h> |
27 | #include <asm/uaccess.h> | ||
28 | #include <asm/unistd.h> | 27 | #include <asm/unistd.h> |
29 | #include <asm/traps.h> | 28 | #include <asm/traps.h> |
30 | #include <asm/io.h> | ||
31 | 29 | ||
32 | #include "ptrace.h" | 30 | #include "ptrace.h" |
33 | #include "signal.h" | 31 | #include "signal.h" |
@@ -69,7 +67,8 @@ void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long | |||
69 | */ | 67 | */ |
70 | static int verify_stack(unsigned long sp) | 68 | static int verify_stack(unsigned long sp) |
71 | { | 69 | { |
72 | if (sp < PAGE_OFFSET || (sp > (unsigned long)high_memory && high_memory != 0)) | 70 | if (sp < PAGE_OFFSET || |
71 | (sp > (unsigned long)high_memory && high_memory != NULL)) | ||
73 | return -EFAULT; | 72 | return -EFAULT; |
74 | 73 | ||
75 | return 0; | 74 | return 0; |
@@ -328,17 +327,6 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs) | |||
328 | get_user(instr, (u32 __user *)pc); | 327 | get_user(instr, (u32 __user *)pc); |
329 | } | 328 | } |
330 | 329 | ||
331 | #ifdef CONFIG_KPROBES | ||
332 | /* | ||
333 | * It is possible to have recursive kprobes, so we can't call | ||
334 | * the kprobe trap handler with the undef_lock held. | ||
335 | */ | ||
336 | if (instr == KPROBE_BREAKPOINT_INSTRUCTION && !user_mode(regs)) { | ||
337 | kprobe_trap_handler(regs, instr); | ||
338 | return; | ||
339 | } | ||
340 | #endif | ||
341 | |||
342 | if (call_undef_hook(regs, instr) == 0) | 330 | if (call_undef_hook(regs, instr) == 0) |
343 | return; | 331 | return; |
344 | 332 | ||
diff --git a/arch/arm/kernel/xscale-cp0.c b/arch/arm/kernel/xscale-cp0.c index 180000bfdc8f..17127db906fa 100644 --- a/arch/arm/kernel/xscale-cp0.c +++ b/arch/arm/kernel/xscale-cp0.c | |||
@@ -14,8 +14,8 @@ | |||
14 | #include <linux/signal.h> | 14 | #include <linux/signal.h> |
15 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/io.h> | ||
17 | #include <asm/thread_notify.h> | 18 | #include <asm/thread_notify.h> |
18 | #include <asm/io.h> | ||
19 | 19 | ||
20 | static inline void dsp_save_state(u32 *state) | 20 | static inline void dsp_save_state(u32 *state) |
21 | { | 21 | { |
diff --git a/arch/arm/lib/ashldi3.S b/arch/arm/lib/ashldi3.S index 55e57a1c2e6d..1154d924080b 100644 --- a/arch/arm/lib/ashldi3.S +++ b/arch/arm/lib/ashldi3.S | |||
@@ -47,3 +47,5 @@ ENTRY(__aeabi_llsl) | |||
47 | mov al, al, lsl r2 | 47 | mov al, al, lsl r2 |
48 | mov pc, lr | 48 | mov pc, lr |
49 | 49 | ||
50 | ENDPROC(__ashldi3) | ||
51 | ENDPROC(__aeabi_llsl) | ||
diff --git a/arch/arm/lib/ashrdi3.S b/arch/arm/lib/ashrdi3.S index 0b31398f89b2..9f8b35572f8c 100644 --- a/arch/arm/lib/ashrdi3.S +++ b/arch/arm/lib/ashrdi3.S | |||
@@ -47,3 +47,5 @@ ENTRY(__aeabi_lasr) | |||
47 | mov ah, ah, asr r2 | 47 | mov ah, ah, asr r2 |
48 | mov pc, lr | 48 | mov pc, lr |
49 | 49 | ||
50 | ENDPROC(__ashrdi3) | ||
51 | ENDPROC(__aeabi_lasr) | ||
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S index 84dc890d2bf3..b0951d0e8b2c 100644 --- a/arch/arm/lib/backtrace.S +++ b/arch/arm/lib/backtrace.S | |||
@@ -30,6 +30,8 @@ ENTRY(c_backtrace) | |||
30 | 30 | ||
31 | #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) | 31 | #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) |
32 | mov pc, lr | 32 | mov pc, lr |
33 | ENDPROC(__backtrace) | ||
34 | ENDPROC(c_backtrace) | ||
33 | #else | 35 | #else |
34 | stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... | 36 | stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... |
35 | movs frame, r0 @ if frame pointer is zero | 37 | movs frame, r0 @ if frame pointer is zero |
@@ -103,6 +105,8 @@ for_each_frame: tst frame, mask @ Check for address exceptions | |||
103 | mov r1, frame | 105 | mov r1, frame |
104 | bl printk | 106 | bl printk |
105 | no_frame: ldmfd sp!, {r4 - r8, pc} | 107 | no_frame: ldmfd sp!, {r4 - r8, pc} |
108 | ENDPROC(__backtrace) | ||
109 | ENDPROC(c_backtrace) | ||
106 | 110 | ||
107 | .section __ex_table,"a" | 111 | .section __ex_table,"a" |
108 | .align 3 | 112 | .align 3 |
diff --git a/arch/arm/lib/changebit.S b/arch/arm/lib/changebit.S index 389567c24090..80f3115cbee2 100644 --- a/arch/arm/lib/changebit.S +++ b/arch/arm/lib/changebit.S | |||
@@ -19,3 +19,5 @@ ENTRY(_change_bit_be) | |||
19 | eor r0, r0, #0x18 @ big endian byte ordering | 19 | eor r0, r0, #0x18 @ big endian byte ordering |
20 | ENTRY(_change_bit_le) | 20 | ENTRY(_change_bit_le) |
21 | bitop eor | 21 | bitop eor |
22 | ENDPROC(_change_bit_be) | ||
23 | ENDPROC(_change_bit_le) | ||
diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S index ecb28dcdaf7b..4d6bc71231f3 100644 --- a/arch/arm/lib/clear_user.S +++ b/arch/arm/lib/clear_user.S | |||
@@ -41,9 +41,10 @@ USER( strplt r2, [r0], #4) | |||
41 | USER( strnebt r2, [r0], #1) | 41 | USER( strnebt r2, [r0], #1) |
42 | USER( strnebt r2, [r0], #1) | 42 | USER( strnebt r2, [r0], #1) |
43 | tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1 | 43 | tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1 |
44 | USER( strnebt r2, [r0], #1) | 44 | USER( strnebt r2, [r0]) |
45 | mov r0, #0 | 45 | mov r0, #0 |
46 | ldmfd sp!, {r1, pc} | 46 | ldmfd sp!, {r1, pc} |
47 | ENDPROC(__clear_user) | ||
47 | 48 | ||
48 | .section .fixup,"ax" | 49 | .section .fixup,"ax" |
49 | .align 0 | 50 | .align 0 |
diff --git a/arch/arm/lib/clearbit.S b/arch/arm/lib/clearbit.S index 347516533025..1a63e43a1df0 100644 --- a/arch/arm/lib/clearbit.S +++ b/arch/arm/lib/clearbit.S | |||
@@ -20,3 +20,5 @@ ENTRY(_clear_bit_be) | |||
20 | eor r0, r0, #0x18 @ big endian byte ordering | 20 | eor r0, r0, #0x18 @ big endian byte ordering |
21 | ENTRY(_clear_bit_le) | 21 | ENTRY(_clear_bit_le) |
22 | bitop bic | 22 | bitop bic |
23 | ENDPROC(_clear_bit_be) | ||
24 | ENDPROC(_clear_bit_le) | ||
diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S index 6b7363ce749c..56799a165cc4 100644 --- a/arch/arm/lib/copy_from_user.S +++ b/arch/arm/lib/copy_from_user.S | |||
@@ -87,6 +87,8 @@ ENTRY(__copy_from_user) | |||
87 | 87 | ||
88 | #include "copy_template.S" | 88 | #include "copy_template.S" |
89 | 89 | ||
90 | ENDPROC(__copy_from_user) | ||
91 | |||
90 | .section .fixup,"ax" | 92 | .section .fixup,"ax" |
91 | .align 0 | 93 | .align 0 |
92 | copy_abort_preamble | 94 | copy_abort_preamble |
diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S index 666c99cc0744..6ae04db1ca4f 100644 --- a/arch/arm/lib/copy_page.S +++ b/arch/arm/lib/copy_page.S | |||
@@ -44,3 +44,4 @@ ENTRY(copy_page) | |||
44 | PLD( ldmeqia r1!, {r3, r4, ip, lr} ) | 44 | PLD( ldmeqia r1!, {r3, r4, ip, lr} ) |
45 | PLD( beq 2b ) | 45 | PLD( beq 2b ) |
46 | ldmfd sp!, {r4, pc} @ 3 | 46 | ldmfd sp!, {r4, pc} @ 3 |
47 | ENDPROC(copy_page) | ||
diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S index 5224d94688d9..22f968bbdffd 100644 --- a/arch/arm/lib/copy_to_user.S +++ b/arch/arm/lib/copy_to_user.S | |||
@@ -90,6 +90,8 @@ ENTRY(__copy_to_user) | |||
90 | 90 | ||
91 | #include "copy_template.S" | 91 | #include "copy_template.S" |
92 | 92 | ||
93 | ENDPROC(__copy_to_user) | ||
94 | |||
93 | .section .fixup,"ax" | 95 | .section .fixup,"ax" |
94 | .align 0 | 96 | .align 0 |
95 | copy_abort_preamble | 97 | copy_abort_preamble |
diff --git a/arch/arm/lib/csumipv6.S b/arch/arm/lib/csumipv6.S index 9621469beec1..3ac6ef01bc43 100644 --- a/arch/arm/lib/csumipv6.S +++ b/arch/arm/lib/csumipv6.S | |||
@@ -29,4 +29,5 @@ ENTRY(__csum_ipv6_magic) | |||
29 | adcs r0, r0, r2 | 29 | adcs r0, r0, r2 |
30 | adcs r0, r0, #0 | 30 | adcs r0, r0, #0 |
31 | ldmfd sp!, {pc} | 31 | ldmfd sp!, {pc} |
32 | ENDPROC(__csum_ipv6_magic) | ||
32 | 33 | ||
diff --git a/arch/arm/lib/csumpartial.S b/arch/arm/lib/csumpartial.S index a78dae5a7b28..31d3cb34740d 100644 --- a/arch/arm/lib/csumpartial.S +++ b/arch/arm/lib/csumpartial.S | |||
@@ -139,3 +139,4 @@ ENTRY(csum_partial) | |||
139 | tst len, #0x1c | 139 | tst len, #0x1c |
140 | bne 4b | 140 | bne 4b |
141 | b .Lless4 | 141 | b .Lless4 |
142 | ENDPROC(csum_partial) | ||
diff --git a/arch/arm/lib/csumpartialcopy.S b/arch/arm/lib/csumpartialcopy.S index 21effe0dbf97..d03fc71fc88c 100644 --- a/arch/arm/lib/csumpartialcopy.S +++ b/arch/arm/lib/csumpartialcopy.S | |||
@@ -18,13 +18,11 @@ | |||
18 | */ | 18 | */ |
19 | 19 | ||
20 | .macro save_regs | 20 | .macro save_regs |
21 | mov ip, sp | 21 | stmfd sp!, {r1, r4 - r8, lr} |
22 | stmfd sp!, {r1, r4 - r8, fp, ip, lr, pc} | ||
23 | sub fp, ip, #4 | ||
24 | .endm | 22 | .endm |
25 | 23 | ||
26 | .macro load_regs | 24 | .macro load_regs |
27 | ldmfd sp, {r1, r4 - r8, fp, sp, pc} | 25 | ldmfd sp!, {r1, r4 - r8, pc} |
28 | .endm | 26 | .endm |
29 | 27 | ||
30 | .macro load1b, reg1 | 28 | .macro load1b, reg1 |
@@ -50,5 +48,6 @@ | |||
50 | .endm | 48 | .endm |
51 | 49 | ||
52 | #define FN_ENTRY ENTRY(csum_partial_copy_nocheck) | 50 | #define FN_ENTRY ENTRY(csum_partial_copy_nocheck) |
51 | #define FN_EXIT ENDPROC(csum_partial_copy_nocheck) | ||
53 | 52 | ||
54 | #include "csumpartialcopygeneric.S" | 53 | #include "csumpartialcopygeneric.S" |
diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S index c50e8f5285d1..d620a5f22a09 100644 --- a/arch/arm/lib/csumpartialcopygeneric.S +++ b/arch/arm/lib/csumpartialcopygeneric.S | |||
@@ -329,3 +329,4 @@ FN_ENTRY | |||
329 | adcs sum, sum, r4, push #24 | 329 | adcs sum, sum, r4, push #24 |
330 | mov r5, r4, get_byte_1 | 330 | mov r5, r4, get_byte_1 |
331 | b .Lexit | 331 | b .Lexit |
332 | FN_EXIT | ||
diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S index c3b93e22ea25..14677fb4b0c4 100644 --- a/arch/arm/lib/csumpartialcopyuser.S +++ b/arch/arm/lib/csumpartialcopyuser.S | |||
@@ -18,13 +18,11 @@ | |||
18 | .text | 18 | .text |
19 | 19 | ||
20 | .macro save_regs | 20 | .macro save_regs |
21 | mov ip, sp | 21 | stmfd sp!, {r1, r2, r4 - r8, lr} |
22 | stmfd sp!, {r1 - r2, r4 - r8, fp, ip, lr, pc} | ||
23 | sub fp, ip, #4 | ||
24 | .endm | 22 | .endm |
25 | 23 | ||
26 | .macro load_regs | 24 | .macro load_regs |
27 | ldmfd sp, {r1, r2, r4-r8, fp, sp, pc} | 25 | ldmfd sp!, {r1, r2, r4 - r8, pc} |
28 | .endm | 26 | .endm |
29 | 27 | ||
30 | .macro load1b, reg1 | 28 | .macro load1b, reg1 |
@@ -82,6 +80,7 @@ | |||
82 | */ | 80 | */ |
83 | 81 | ||
84 | #define FN_ENTRY ENTRY(csum_partial_copy_from_user) | 82 | #define FN_ENTRY ENTRY(csum_partial_copy_from_user) |
83 | #define FN_EXIT ENDPROC(csum_partial_copy_from_user) | ||
85 | 84 | ||
86 | #include "csumpartialcopygeneric.S" | 85 | #include "csumpartialcopygeneric.S" |
87 | 86 | ||
diff --git a/arch/arm/lib/delay.S b/arch/arm/lib/delay.S index 930a70259220..8d6a8762ab88 100644 --- a/arch/arm/lib/delay.S +++ b/arch/arm/lib/delay.S | |||
@@ -60,3 +60,6 @@ ENTRY(__delay) | |||
60 | #endif | 60 | #endif |
61 | bhi __delay | 61 | bhi __delay |
62 | mov pc, lr | 62 | mov pc, lr |
63 | ENDPROC(__udelay) | ||
64 | ENDPROC(__const_udelay) | ||
65 | ENDPROC(__delay) | ||
diff --git a/arch/arm/lib/div64.S b/arch/arm/lib/div64.S index 58eef6607629..1425e789ba86 100644 --- a/arch/arm/lib/div64.S +++ b/arch/arm/lib/div64.S | |||
@@ -198,3 +198,4 @@ ENTRY(__do_div64) | |||
198 | mov xh, #0 | 198 | mov xh, #0 |
199 | ldr pc, [sp], #8 | 199 | ldr pc, [sp], #8 |
200 | 200 | ||
201 | ENDPROC(__do_div64) | ||
diff --git a/arch/arm/lib/findbit.S b/arch/arm/lib/findbit.S index a5ca0248aa4e..8c4defc4f3c4 100644 --- a/arch/arm/lib/findbit.S +++ b/arch/arm/lib/findbit.S | |||
@@ -33,6 +33,7 @@ ENTRY(_find_first_zero_bit_le) | |||
33 | blo 1b | 33 | blo 1b |
34 | 3: mov r0, r1 @ no free bits | 34 | 3: mov r0, r1 @ no free bits |
35 | mov pc, lr | 35 | mov pc, lr |
36 | ENDPROC(_find_first_zero_bit_le) | ||
36 | 37 | ||
37 | /* | 38 | /* |
38 | * Purpose : Find next 'zero' bit | 39 | * Purpose : Find next 'zero' bit |
@@ -50,6 +51,7 @@ ENTRY(_find_next_zero_bit_le) | |||
50 | orr r2, r2, #7 @ if zero, then no bits here | 51 | orr r2, r2, #7 @ if zero, then no bits here |
51 | add r2, r2, #1 @ align bit pointer | 52 | add r2, r2, #1 @ align bit pointer |
52 | b 2b @ loop for next bit | 53 | b 2b @ loop for next bit |
54 | ENDPROC(_find_next_zero_bit_le) | ||
53 | 55 | ||
54 | /* | 56 | /* |
55 | * Purpose : Find a 'one' bit | 57 | * Purpose : Find a 'one' bit |
@@ -67,6 +69,7 @@ ENTRY(_find_first_bit_le) | |||
67 | blo 1b | 69 | blo 1b |
68 | 3: mov r0, r1 @ no free bits | 70 | 3: mov r0, r1 @ no free bits |
69 | mov pc, lr | 71 | mov pc, lr |
72 | ENDPROC(_find_first_bit_le) | ||
70 | 73 | ||
71 | /* | 74 | /* |
72 | * Purpose : Find next 'one' bit | 75 | * Purpose : Find next 'one' bit |
@@ -83,6 +86,7 @@ ENTRY(_find_next_bit_le) | |||
83 | orr r2, r2, #7 @ if zero, then no bits here | 86 | orr r2, r2, #7 @ if zero, then no bits here |
84 | add r2, r2, #1 @ align bit pointer | 87 | add r2, r2, #1 @ align bit pointer |
85 | b 2b @ loop for next bit | 88 | b 2b @ loop for next bit |
89 | ENDPROC(_find_next_bit_le) | ||
86 | 90 | ||
87 | #ifdef __ARMEB__ | 91 | #ifdef __ARMEB__ |
88 | 92 | ||
@@ -99,6 +103,7 @@ ENTRY(_find_first_zero_bit_be) | |||
99 | blo 1b | 103 | blo 1b |
100 | 3: mov r0, r1 @ no free bits | 104 | 3: mov r0, r1 @ no free bits |
101 | mov pc, lr | 105 | mov pc, lr |
106 | ENDPROC(_find_first_zero_bit_be) | ||
102 | 107 | ||
103 | ENTRY(_find_next_zero_bit_be) | 108 | ENTRY(_find_next_zero_bit_be) |
104 | teq r1, #0 | 109 | teq r1, #0 |
@@ -113,6 +118,7 @@ ENTRY(_find_next_zero_bit_be) | |||
113 | orr r2, r2, #7 @ if zero, then no bits here | 118 | orr r2, r2, #7 @ if zero, then no bits here |
114 | add r2, r2, #1 @ align bit pointer | 119 | add r2, r2, #1 @ align bit pointer |
115 | b 2b @ loop for next bit | 120 | b 2b @ loop for next bit |
121 | ENDPROC(_find_next_zero_bit_be) | ||
116 | 122 | ||
117 | ENTRY(_find_first_bit_be) | 123 | ENTRY(_find_first_bit_be) |
118 | teq r1, #0 | 124 | teq r1, #0 |
@@ -127,6 +133,7 @@ ENTRY(_find_first_bit_be) | |||
127 | blo 1b | 133 | blo 1b |
128 | 3: mov r0, r1 @ no free bits | 134 | 3: mov r0, r1 @ no free bits |
129 | mov pc, lr | 135 | mov pc, lr |
136 | ENDPROC(_find_first_bit_be) | ||
130 | 137 | ||
131 | ENTRY(_find_next_bit_be) | 138 | ENTRY(_find_next_bit_be) |
132 | teq r1, #0 | 139 | teq r1, #0 |
@@ -140,6 +147,7 @@ ENTRY(_find_next_bit_be) | |||
140 | orr r2, r2, #7 @ if zero, then no bits here | 147 | orr r2, r2, #7 @ if zero, then no bits here |
141 | add r2, r2, #1 @ align bit pointer | 148 | add r2, r2, #1 @ align bit pointer |
142 | b 2b @ loop for next bit | 149 | b 2b @ loop for next bit |
150 | ENDPROC(_find_next_bit_be) | ||
143 | 151 | ||
144 | #endif | 152 | #endif |
145 | 153 | ||
diff --git a/arch/arm/lib/getuser.S b/arch/arm/lib/getuser.S index 2034d4dbe6ad..6763088b7607 100644 --- a/arch/arm/lib/getuser.S +++ b/arch/arm/lib/getuser.S | |||
@@ -26,16 +26,16 @@ | |||
26 | * Note that ADDR_LIMIT is either 0 or 0xc0000000. | 26 | * Note that ADDR_LIMIT is either 0 or 0xc0000000. |
27 | * Note also that it is intended that __get_user_bad is not global. | 27 | * Note also that it is intended that __get_user_bad is not global. |
28 | */ | 28 | */ |
29 | #include <linux/linkage.h> | ||
29 | #include <asm/errno.h> | 30 | #include <asm/errno.h> |
30 | 31 | ||
31 | .global __get_user_1 | 32 | ENTRY(__get_user_1) |
32 | __get_user_1: | ||
33 | 1: ldrbt r2, [r0] | 33 | 1: ldrbt r2, [r0] |
34 | mov r0, #0 | 34 | mov r0, #0 |
35 | mov pc, lr | 35 | mov pc, lr |
36 | ENDPROC(__get_user_1) | ||
36 | 37 | ||
37 | .global __get_user_2 | 38 | ENTRY(__get_user_2) |
38 | __get_user_2: | ||
39 | 2: ldrbt r2, [r0], #1 | 39 | 2: ldrbt r2, [r0], #1 |
40 | 3: ldrbt r3, [r0] | 40 | 3: ldrbt r3, [r0] |
41 | #ifndef __ARMEB__ | 41 | #ifndef __ARMEB__ |
@@ -45,17 +45,19 @@ __get_user_2: | |||
45 | #endif | 45 | #endif |
46 | mov r0, #0 | 46 | mov r0, #0 |
47 | mov pc, lr | 47 | mov pc, lr |
48 | ENDPROC(__get_user_2) | ||
48 | 49 | ||
49 | .global __get_user_4 | 50 | ENTRY(__get_user_4) |
50 | __get_user_4: | ||
51 | 4: ldrt r2, [r0] | 51 | 4: ldrt r2, [r0] |
52 | mov r0, #0 | 52 | mov r0, #0 |
53 | mov pc, lr | 53 | mov pc, lr |
54 | ENDPROC(__get_user_4) | ||
54 | 55 | ||
55 | __get_user_bad: | 56 | __get_user_bad: |
56 | mov r2, #0 | 57 | mov r2, #0 |
57 | mov r0, #-EFAULT | 58 | mov r0, #-EFAULT |
58 | mov pc, lr | 59 | mov pc, lr |
60 | ENDPROC(__get_user_bad) | ||
59 | 61 | ||
60 | .section __ex_table, "a" | 62 | .section __ex_table, "a" |
61 | .long 1b, __get_user_bad | 63 | .long 1b, __get_user_bad |
diff --git a/arch/arm/lib/io-readsb.S b/arch/arm/lib/io-readsb.S index fb966ad0276f..9f4238987fe9 100644 --- a/arch/arm/lib/io-readsb.S +++ b/arch/arm/lib/io-readsb.S | |||
@@ -120,3 +120,4 @@ ENTRY(__raw_readsb) | |||
120 | strgtb r3, [r1] | 120 | strgtb r3, [r1] |
121 | 121 | ||
122 | ldmfd sp!, {r4 - r6, pc} | 122 | ldmfd sp!, {r4 - r6, pc} |
123 | ENDPROC(__raw_readsb) | ||
diff --git a/arch/arm/lib/io-readsl.S b/arch/arm/lib/io-readsl.S index 75a9121cb23f..5fb97e7f9f4b 100644 --- a/arch/arm/lib/io-readsl.S +++ b/arch/arm/lib/io-readsl.S | |||
@@ -76,3 +76,4 @@ ENTRY(__raw_readsl) | |||
76 | 8: mov r3, ip, get_byte_0 | 76 | 8: mov r3, ip, get_byte_0 |
77 | strb r3, [r1, #0] | 77 | strb r3, [r1, #0] |
78 | mov pc, lr | 78 | mov pc, lr |
79 | ENDPROC(__raw_readsl) | ||
diff --git a/arch/arm/lib/io-readsw-armv4.S b/arch/arm/lib/io-readsw-armv4.S index 4db1c5f0b219..1f393d42593d 100644 --- a/arch/arm/lib/io-readsw-armv4.S +++ b/arch/arm/lib/io-readsw-armv4.S | |||
@@ -128,3 +128,4 @@ ENTRY(__raw_readsw) | |||
128 | _BE_ONLY_( movne ip, ip, lsr #24 ) | 128 | _BE_ONLY_( movne ip, ip, lsr #24 ) |
129 | strneb ip, [r1] | 129 | strneb ip, [r1] |
130 | ldmfd sp!, {r4, pc} | 130 | ldmfd sp!, {r4, pc} |
131 | ENDPROC(__raw_readsw) | ||
diff --git a/arch/arm/lib/io-writesb.S b/arch/arm/lib/io-writesb.S index 7eba2b6cc69f..68b92f4acaeb 100644 --- a/arch/arm/lib/io-writesb.S +++ b/arch/arm/lib/io-writesb.S | |||
@@ -91,3 +91,4 @@ ENTRY(__raw_writesb) | |||
91 | strgtb r3, [r0] | 91 | strgtb r3, [r0] |
92 | 92 | ||
93 | ldmfd sp!, {r4, r5, pc} | 93 | ldmfd sp!, {r4, r5, pc} |
94 | ENDPROC(__raw_writesb) | ||
diff --git a/arch/arm/lib/io-writesl.S b/arch/arm/lib/io-writesl.S index f8f14dd227ca..8d3b7813725c 100644 --- a/arch/arm/lib/io-writesl.S +++ b/arch/arm/lib/io-writesl.S | |||
@@ -64,3 +64,4 @@ ENTRY(__raw_writesl) | |||
64 | str ip, [r0] | 64 | str ip, [r0] |
65 | bne 6b | 65 | bne 6b |
66 | mov pc, lr | 66 | mov pc, lr |
67 | ENDPROC(__raw_writesl) | ||
diff --git a/arch/arm/lib/io-writesw-armv4.S b/arch/arm/lib/io-writesw-armv4.S index c8e85bd653b7..d6585612c86b 100644 --- a/arch/arm/lib/io-writesw-armv4.S +++ b/arch/arm/lib/io-writesw-armv4.S | |||
@@ -94,3 +94,4 @@ ENTRY(__raw_writesw) | |||
94 | 3: movne ip, r3, lsr #8 | 94 | 3: movne ip, r3, lsr #8 |
95 | strneh ip, [r0] | 95 | strneh ip, [r0] |
96 | mov pc, lr | 96 | mov pc, lr |
97 | ENDPROC(__raw_writesw) | ||
diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S index 4e492f4b3f0e..67964bcfc854 100644 --- a/arch/arm/lib/lib1funcs.S +++ b/arch/arm/lib/lib1funcs.S | |||
@@ -230,6 +230,8 @@ ENTRY(__aeabi_uidiv) | |||
230 | mov r0, r0, lsr r2 | 230 | mov r0, r0, lsr r2 |
231 | mov pc, lr | 231 | mov pc, lr |
232 | 232 | ||
233 | ENDPROC(__udivsi3) | ||
234 | ENDPROC(__aeabi_uidiv) | ||
233 | 235 | ||
234 | ENTRY(__umodsi3) | 236 | ENTRY(__umodsi3) |
235 | 237 | ||
@@ -245,6 +247,7 @@ ENTRY(__umodsi3) | |||
245 | 247 | ||
246 | mov pc, lr | 248 | mov pc, lr |
247 | 249 | ||
250 | ENDPROC(__umodsi3) | ||
248 | 251 | ||
249 | ENTRY(__divsi3) | 252 | ENTRY(__divsi3) |
250 | ENTRY(__aeabi_idiv) | 253 | ENTRY(__aeabi_idiv) |
@@ -284,6 +287,8 @@ ENTRY(__aeabi_idiv) | |||
284 | rsbmi r0, r0, #0 | 287 | rsbmi r0, r0, #0 |
285 | mov pc, lr | 288 | mov pc, lr |
286 | 289 | ||
290 | ENDPROC(__divsi3) | ||
291 | ENDPROC(__aeabi_idiv) | ||
287 | 292 | ||
288 | ENTRY(__modsi3) | 293 | ENTRY(__modsi3) |
289 | 294 | ||
@@ -305,6 +310,8 @@ ENTRY(__modsi3) | |||
305 | rsbmi r0, r0, #0 | 310 | rsbmi r0, r0, #0 |
306 | mov pc, lr | 311 | mov pc, lr |
307 | 312 | ||
313 | ENDPROC(__modsi3) | ||
314 | |||
308 | #ifdef CONFIG_AEABI | 315 | #ifdef CONFIG_AEABI |
309 | 316 | ||
310 | ENTRY(__aeabi_uidivmod) | 317 | ENTRY(__aeabi_uidivmod) |
@@ -316,6 +323,8 @@ ENTRY(__aeabi_uidivmod) | |||
316 | sub r1, r1, r3 | 323 | sub r1, r1, r3 |
317 | mov pc, lr | 324 | mov pc, lr |
318 | 325 | ||
326 | ENDPROC(__aeabi_uidivmod) | ||
327 | |||
319 | ENTRY(__aeabi_idivmod) | 328 | ENTRY(__aeabi_idivmod) |
320 | 329 | ||
321 | stmfd sp!, {r0, r1, ip, lr} | 330 | stmfd sp!, {r0, r1, ip, lr} |
@@ -325,6 +334,8 @@ ENTRY(__aeabi_idivmod) | |||
325 | sub r1, r1, r3 | 334 | sub r1, r1, r3 |
326 | mov pc, lr | 335 | mov pc, lr |
327 | 336 | ||
337 | ENDPROC(__aeabi_idivmod) | ||
338 | |||
328 | #endif | 339 | #endif |
329 | 340 | ||
330 | Ldiv0: | 341 | Ldiv0: |
diff --git a/arch/arm/lib/lshrdi3.S b/arch/arm/lib/lshrdi3.S index a86dbdd59cc4..99ea338bf87c 100644 --- a/arch/arm/lib/lshrdi3.S +++ b/arch/arm/lib/lshrdi3.S | |||
@@ -47,3 +47,5 @@ ENTRY(__aeabi_llsr) | |||
47 | mov ah, ah, lsr r2 | 47 | mov ah, ah, lsr r2 |
48 | mov pc, lr | 48 | mov pc, lr |
49 | 49 | ||
50 | ENDPROC(__lshrdi3) | ||
51 | ENDPROC(__aeabi_llsr) | ||
diff --git a/arch/arm/lib/memchr.S b/arch/arm/lib/memchr.S index e7ab1ea8ebaa..1da86991d700 100644 --- a/arch/arm/lib/memchr.S +++ b/arch/arm/lib/memchr.S | |||
@@ -23,3 +23,4 @@ ENTRY(memchr) | |||
23 | sub r0, r0, #1 | 23 | sub r0, r0, #1 |
24 | 2: movne r0, #0 | 24 | 2: movne r0, #0 |
25 | mov pc, lr | 25 | mov pc, lr |
26 | ENDPROC(memchr) | ||
diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S index 7e71d6708a8d..e0d002641d3f 100644 --- a/arch/arm/lib/memcpy.S +++ b/arch/arm/lib/memcpy.S | |||
@@ -57,3 +57,4 @@ ENTRY(memcpy) | |||
57 | 57 | ||
58 | #include "copy_template.S" | 58 | #include "copy_template.S" |
59 | 59 | ||
60 | ENDPROC(memcpy) | ||
diff --git a/arch/arm/lib/memmove.S b/arch/arm/lib/memmove.S index 2e301b7bd8f1..12549187088c 100644 --- a/arch/arm/lib/memmove.S +++ b/arch/arm/lib/memmove.S | |||
@@ -196,3 +196,4 @@ ENTRY(memmove) | |||
196 | 196 | ||
197 | 18: backward_copy_shift push=24 pull=8 | 197 | 18: backward_copy_shift push=24 pull=8 |
198 | 198 | ||
199 | ENDPROC(memmove) | ||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S index b477d4ac88ef..761eefa76243 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S | |||
@@ -124,3 +124,4 @@ ENTRY(memset) | |||
124 | tst r2, #1 | 124 | tst r2, #1 |
125 | strneb r1, [r0], #1 | 125 | strneb r1, [r0], #1 |
126 | mov pc, lr | 126 | mov pc, lr |
127 | ENDPROC(memset) | ||
diff --git a/arch/arm/lib/memzero.S b/arch/arm/lib/memzero.S index b8f79d80ee9b..3fbdef5f802a 100644 --- a/arch/arm/lib/memzero.S +++ b/arch/arm/lib/memzero.S | |||
@@ -122,3 +122,4 @@ ENTRY(__memzero) | |||
122 | tst r1, #1 @ 1 a byte left over | 122 | tst r1, #1 @ 1 a byte left over |
123 | strneb r2, [r0], #1 @ 1 | 123 | strneb r2, [r0], #1 @ 1 |
124 | mov pc, lr @ 1 | 124 | mov pc, lr @ 1 |
125 | ENDPROC(__memzero) | ||
diff --git a/arch/arm/lib/muldi3.S b/arch/arm/lib/muldi3.S index d89c60615794..36c91b4957e2 100644 --- a/arch/arm/lib/muldi3.S +++ b/arch/arm/lib/muldi3.S | |||
@@ -43,3 +43,5 @@ ENTRY(__aeabi_lmul) | |||
43 | adc xh, xh, ip, lsr #16 | 43 | adc xh, xh, ip, lsr #16 |
44 | mov pc, lr | 44 | mov pc, lr |
45 | 45 | ||
46 | ENDPROC(__muldi3) | ||
47 | ENDPROC(__aeabi_lmul) | ||
diff --git a/arch/arm/lib/putuser.S b/arch/arm/lib/putuser.S index 08ec7dffa52e..864f3c1c4f18 100644 --- a/arch/arm/lib/putuser.S +++ b/arch/arm/lib/putuser.S | |||
@@ -26,16 +26,16 @@ | |||
26 | * Note that ADDR_LIMIT is either 0 or 0xc0000000 | 26 | * Note that ADDR_LIMIT is either 0 or 0xc0000000 |
27 | * Note also that it is intended that __put_user_bad is not global. | 27 | * Note also that it is intended that __put_user_bad is not global. |
28 | */ | 28 | */ |
29 | #include <linux/linkage.h> | ||
29 | #include <asm/errno.h> | 30 | #include <asm/errno.h> |
30 | 31 | ||
31 | .global __put_user_1 | 32 | ENTRY(__put_user_1) |
32 | __put_user_1: | ||
33 | 1: strbt r2, [r0] | 33 | 1: strbt r2, [r0] |
34 | mov r0, #0 | 34 | mov r0, #0 |
35 | mov pc, lr | 35 | mov pc, lr |
36 | ENDPROC(__put_user_1) | ||
36 | 37 | ||
37 | .global __put_user_2 | 38 | ENTRY(__put_user_2) |
38 | __put_user_2: | ||
39 | mov ip, r2, lsr #8 | 39 | mov ip, r2, lsr #8 |
40 | #ifndef __ARMEB__ | 40 | #ifndef __ARMEB__ |
41 | 2: strbt r2, [r0], #1 | 41 | 2: strbt r2, [r0], #1 |
@@ -46,23 +46,25 @@ __put_user_2: | |||
46 | #endif | 46 | #endif |
47 | mov r0, #0 | 47 | mov r0, #0 |
48 | mov pc, lr | 48 | mov pc, lr |
49 | ENDPROC(__put_user_2) | ||
49 | 50 | ||
50 | .global __put_user_4 | 51 | ENTRY(__put_user_4) |
51 | __put_user_4: | ||
52 | 4: strt r2, [r0] | 52 | 4: strt r2, [r0] |
53 | mov r0, #0 | 53 | mov r0, #0 |
54 | mov pc, lr | 54 | mov pc, lr |
55 | ENDPROC(__put_user_4) | ||
55 | 56 | ||
56 | .global __put_user_8 | 57 | ENTRY(__put_user_8) |
57 | __put_user_8: | ||
58 | 5: strt r2, [r0], #4 | 58 | 5: strt r2, [r0], #4 |
59 | 6: strt r3, [r0] | 59 | 6: strt r3, [r0] |
60 | mov r0, #0 | 60 | mov r0, #0 |
61 | mov pc, lr | 61 | mov pc, lr |
62 | ENDPROC(__put_user_8) | ||
62 | 63 | ||
63 | __put_user_bad: | 64 | __put_user_bad: |
64 | mov r0, #-EFAULT | 65 | mov r0, #-EFAULT |
65 | mov pc, lr | 66 | mov pc, lr |
67 | ENDPROC(__put_user_bad) | ||
66 | 68 | ||
67 | .section __ex_table, "a" | 69 | .section __ex_table, "a" |
68 | .long 1b, __put_user_bad | 70 | .long 1b, __put_user_bad |
diff --git a/arch/arm/lib/setbit.S b/arch/arm/lib/setbit.S index 83bc23d5b037..1dd7176c4b2b 100644 --- a/arch/arm/lib/setbit.S +++ b/arch/arm/lib/setbit.S | |||
@@ -20,3 +20,5 @@ ENTRY(_set_bit_be) | |||
20 | eor r0, r0, #0x18 @ big endian byte ordering | 20 | eor r0, r0, #0x18 @ big endian byte ordering |
21 | ENTRY(_set_bit_le) | 21 | ENTRY(_set_bit_le) |
22 | bitop orr | 22 | bitop orr |
23 | ENDPROC(_set_bit_be) | ||
24 | ENDPROC(_set_bit_le) | ||
diff --git a/arch/arm/lib/sha1.S b/arch/arm/lib/sha1.S index ff6ece487ffc..8a1c67fe0544 100644 --- a/arch/arm/lib/sha1.S +++ b/arch/arm/lib/sha1.S | |||
@@ -185,6 +185,8 @@ ENTRY(sha_transform) | |||
185 | 185 | ||
186 | ldmfd sp!, {r4 - r8, pc} | 186 | ldmfd sp!, {r4 - r8, pc} |
187 | 187 | ||
188 | ENDPROC(sha_transform) | ||
189 | |||
188 | .L_sha_K: | 190 | .L_sha_K: |
189 | .word 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 | 191 | .word 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 |
190 | 192 | ||
@@ -204,3 +206,4 @@ ENTRY(sha_init) | |||
204 | stmia r0, {r1, r2, r3, ip, lr} | 206 | stmia r0, {r1, r2, r3, ip, lr} |
205 | ldr pc, [sp], #4 | 207 | ldr pc, [sp], #4 |
206 | 208 | ||
209 | ENDPROC(sha_init) | ||
diff --git a/arch/arm/lib/strchr.S b/arch/arm/lib/strchr.S index 9f18d6fdee6a..d8f2a1c1aea4 100644 --- a/arch/arm/lib/strchr.S +++ b/arch/arm/lib/strchr.S | |||
@@ -24,3 +24,4 @@ ENTRY(strchr) | |||
24 | movne r0, #0 | 24 | movne r0, #0 |
25 | subeq r0, r0, #1 | 25 | subeq r0, r0, #1 |
26 | mov pc, lr | 26 | mov pc, lr |
27 | ENDPROC(strchr) | ||
diff --git a/arch/arm/lib/strncpy_from_user.S b/arch/arm/lib/strncpy_from_user.S index 36e3741a3772..330373c26dd9 100644 --- a/arch/arm/lib/strncpy_from_user.S +++ b/arch/arm/lib/strncpy_from_user.S | |||
@@ -31,6 +31,7 @@ USER( ldrplbt r3, [r1], #1) | |||
31 | sub r1, r1, #1 @ take NUL character out of count | 31 | sub r1, r1, #1 @ take NUL character out of count |
32 | 2: sub r0, r1, ip | 32 | 2: sub r0, r1, ip |
33 | mov pc, lr | 33 | mov pc, lr |
34 | ENDPROC(__strncpy_from_user) | ||
34 | 35 | ||
35 | .section .fixup,"ax" | 36 | .section .fixup,"ax" |
36 | .align 0 | 37 | .align 0 |
diff --git a/arch/arm/lib/strnlen_user.S b/arch/arm/lib/strnlen_user.S index 18d8fa4f925a..90bb9d020836 100644 --- a/arch/arm/lib/strnlen_user.S +++ b/arch/arm/lib/strnlen_user.S | |||
@@ -31,6 +31,7 @@ USER( ldrbt r3, [r0], #1) | |||
31 | add r0, r0, #1 | 31 | add r0, r0, #1 |
32 | 2: sub r0, r0, r2 | 32 | 2: sub r0, r0, r2 |
33 | mov pc, lr | 33 | mov pc, lr |
34 | ENDPROC(__strnlen_user) | ||
34 | 35 | ||
35 | .section .fixup,"ax" | 36 | .section .fixup,"ax" |
36 | .align 0 | 37 | .align 0 |
diff --git a/arch/arm/lib/strrchr.S b/arch/arm/lib/strrchr.S index 538df220aa48..302f20cd2423 100644 --- a/arch/arm/lib/strrchr.S +++ b/arch/arm/lib/strrchr.S | |||
@@ -23,3 +23,4 @@ ENTRY(strrchr) | |||
23 | bne 1b | 23 | bne 1b |
24 | mov r0, r3 | 24 | mov r0, r3 |
25 | mov pc, lr | 25 | mov pc, lr |
26 | ENDPROC(strrchr) | ||
diff --git a/arch/arm/lib/testchangebit.S b/arch/arm/lib/testchangebit.S index b25dcd2be53e..5c98dc567f0f 100644 --- a/arch/arm/lib/testchangebit.S +++ b/arch/arm/lib/testchangebit.S | |||
@@ -16,3 +16,5 @@ ENTRY(_test_and_change_bit_be) | |||
16 | eor r0, r0, #0x18 @ big endian byte ordering | 16 | eor r0, r0, #0x18 @ big endian byte ordering |
17 | ENTRY(_test_and_change_bit_le) | 17 | ENTRY(_test_and_change_bit_le) |
18 | testop eor, strb | 18 | testop eor, strb |
19 | ENDPROC(_test_and_change_bit_be) | ||
20 | ENDPROC(_test_and_change_bit_le) | ||
diff --git a/arch/arm/lib/testclearbit.S b/arch/arm/lib/testclearbit.S index 2dcc4b16b68e..543d7094d18e 100644 --- a/arch/arm/lib/testclearbit.S +++ b/arch/arm/lib/testclearbit.S | |||
@@ -16,3 +16,5 @@ ENTRY(_test_and_clear_bit_be) | |||
16 | eor r0, r0, #0x18 @ big endian byte ordering | 16 | eor r0, r0, #0x18 @ big endian byte ordering |
17 | ENTRY(_test_and_clear_bit_le) | 17 | ENTRY(_test_and_clear_bit_le) |
18 | testop bicne, strneb | 18 | testop bicne, strneb |
19 | ENDPROC(_test_and_clear_bit_be) | ||
20 | ENDPROC(_test_and_clear_bit_le) | ||
diff --git a/arch/arm/lib/testsetbit.S b/arch/arm/lib/testsetbit.S index 9011c969761a..0b3f390401ce 100644 --- a/arch/arm/lib/testsetbit.S +++ b/arch/arm/lib/testsetbit.S | |||
@@ -16,3 +16,5 @@ ENTRY(_test_and_set_bit_be) | |||
16 | eor r0, r0, #0x18 @ big endian byte ordering | 16 | eor r0, r0, #0x18 @ big endian byte ordering |
17 | ENTRY(_test_and_set_bit_le) | 17 | ENTRY(_test_and_set_bit_le) |
18 | testop orreq, streqb | 18 | testop orreq, streqb |
19 | ENDPROC(_test_and_set_bit_be) | ||
20 | ENDPROC(_test_and_set_bit_le) | ||
diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S index b48bd6d5fd83..ffdd27498cee 100644 --- a/arch/arm/lib/uaccess.S +++ b/arch/arm/lib/uaccess.S | |||
@@ -277,6 +277,7 @@ USER( strgebt r3, [r0], #1) @ May fault | |||
277 | ldrgtb r3, [r1], #0 | 277 | ldrgtb r3, [r1], #0 |
278 | USER( strgtbt r3, [r0], #1) @ May fault | 278 | USER( strgtbt r3, [r0], #1) @ May fault |
279 | b .Lc2u_finished | 279 | b .Lc2u_finished |
280 | ENDPROC(__copy_to_user) | ||
280 | 281 | ||
281 | .section .fixup,"ax" | 282 | .section .fixup,"ax" |
282 | .align 0 | 283 | .align 0 |
@@ -542,6 +543,7 @@ USER( ldrgebt r3, [r1], #1) @ May fault | |||
542 | USER( ldrgtbt r3, [r1], #1) @ May fault | 543 | USER( ldrgtbt r3, [r1], #1) @ May fault |
543 | strgtb r3, [r0], #1 | 544 | strgtb r3, [r0], #1 |
544 | b .Lcfu_finished | 545 | b .Lcfu_finished |
546 | ENDPROC(__copy_from_user) | ||
545 | 547 | ||
546 | .section .fixup,"ax" | 548 | .section .fixup,"ax" |
547 | .align 0 | 549 | .align 0 |
diff --git a/arch/arm/lib/ucmpdi2.S b/arch/arm/lib/ucmpdi2.S index f76de07ac182..f0df6a91db04 100644 --- a/arch/arm/lib/ucmpdi2.S +++ b/arch/arm/lib/ucmpdi2.S | |||
@@ -33,6 +33,8 @@ ENTRY(__ucmpdi2) | |||
33 | movhi r0, #2 | 33 | movhi r0, #2 |
34 | mov pc, lr | 34 | mov pc, lr |
35 | 35 | ||
36 | ENDPROC(__ucmpdi2) | ||
37 | |||
36 | #ifdef CONFIG_AEABI | 38 | #ifdef CONFIG_AEABI |
37 | 39 | ||
38 | ENTRY(__aeabi_ulcmp) | 40 | ENTRY(__aeabi_ulcmp) |
@@ -44,5 +46,7 @@ ENTRY(__aeabi_ulcmp) | |||
44 | movhi r0, #1 | 46 | movhi r0, #1 |
45 | mov pc, lr | 47 | mov pc, lr |
46 | 48 | ||
49 | ENDPROC(__aeabi_ulcmp) | ||
50 | |||
47 | #endif | 51 | #endif |
48 | 52 | ||
diff --git a/arch/arm/mach-at91/at91x40_time.c b/arch/arm/mach-at91/at91x40_time.c index 869b5e28d195..dfff2895f4b2 100644 --- a/arch/arm/mach-at91/at91x40_time.c +++ b/arch/arm/mach-at91/at91x40_time.c | |||
@@ -23,8 +23,8 @@ | |||
23 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
24 | #include <linux/irq.h> | 24 | #include <linux/irq.h> |
25 | #include <linux/time.h> | 25 | #include <linux/time.h> |
26 | #include <linux/io.h> | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | ||
28 | #include <asm/mach/time.h> | 28 | #include <asm/mach/time.h> |
29 | #include <mach/at91_tc.h> | 29 | #include <mach/at91_tc.h> |
30 | 30 | ||
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c index f5c2847161f5..e4345106ee57 100644 --- a/arch/arm/mach-at91/clock.c +++ b/arch/arm/mach-at91/clock.c | |||
@@ -22,8 +22,7 @@ | |||
22 | #include <linux/spinlock.h> | 22 | #include <linux/spinlock.h> |
23 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
24 | #include <linux/clk.h> | 24 | #include <linux/clk.h> |
25 | 25 | #include <linux/io.h> | |
26 | #include <asm/io.h> | ||
27 | 26 | ||
28 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
29 | #include <mach/at91_pmc.h> | 28 | #include <mach/at91_pmc.h> |
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c index 8392d5b517f1..93e0614f2afb 100644 --- a/arch/arm/mach-at91/gpio.c +++ b/arch/arm/mach-at91/gpio.c | |||
@@ -18,8 +18,8 @@ | |||
18 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
19 | #include <linux/list.h> | 19 | #include <linux/list.h> |
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <asm/io.h> | ||
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include <mach/at91_pio.h> | 24 | #include <mach/at91_pio.h> |
25 | #include <mach/gpio.h> | 25 | #include <mach/gpio.h> |
diff --git a/arch/arm/mach-at91/include/mach/irqs.h b/arch/arm/mach-at91/include/mach/irqs.h index bda29ccbcd94..36bd55f3fc6e 100644 --- a/arch/arm/mach-at91/include/mach/irqs.h +++ b/arch/arm/mach-at91/include/mach/irqs.h | |||
@@ -21,7 +21,7 @@ | |||
21 | #ifndef __ASM_ARCH_IRQS_H | 21 | #ifndef __ASM_ARCH_IRQS_H |
22 | #define __ASM_ARCH_IRQS_H | 22 | #define __ASM_ARCH_IRQS_H |
23 | 23 | ||
24 | #include <asm/io.h> | 24 | #include <linux/io.h> |
25 | #include <mach/at91_aic.h> | 25 | #include <mach/at91_aic.h> |
26 | 26 | ||
27 | #define NR_AIC_IRQS 32 | 27 | #define NR_AIC_IRQS 32 |
diff --git a/arch/arm/mach-at91/include/mach/uncompress.h b/arch/arm/mach-at91/include/mach/uncompress.h index 0410d548e9b1..18bdcdeb474f 100644 --- a/arch/arm/mach-at91/include/mach/uncompress.h +++ b/arch/arm/mach-at91/include/mach/uncompress.h | |||
@@ -21,7 +21,7 @@ | |||
21 | #ifndef __ASM_ARCH_UNCOMPRESS_H | 21 | #ifndef __ASM_ARCH_UNCOMPRESS_H |
22 | #define __ASM_ARCH_UNCOMPRESS_H | 22 | #define __ASM_ARCH_UNCOMPRESS_H |
23 | 23 | ||
24 | #include <asm/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/atmel_serial.h> | 25 | #include <linux/atmel_serial.h> |
26 | 26 | ||
27 | #if defined(CONFIG_AT91_EARLY_DBGU) | 27 | #if defined(CONFIG_AT91_EARLY_DBGU) |
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index ec2fe4ca1e27..9bb4f043aa22 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c | |||
@@ -17,8 +17,8 @@ | |||
17 | #include <linux/sysfs.h> | 17 | #include <linux/sysfs.h> |
18 | #include <linux/module.h> | 18 | #include <linux/module.h> |
19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/io.h> | ||
20 | 21 | ||
21 | #include <asm/io.h> | ||
22 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
23 | #include <asm/atomic.h> | 23 | #include <asm/atomic.h> |
24 | #include <asm/mach/time.h> | 24 | #include <asm/mach/time.h> |
diff --git a/arch/arm/mach-clps711x/autcpu12.c b/arch/arm/mach-clps711x/autcpu12.c index 474616dcd7a6..5f18eccdc725 100644 --- a/arch/arm/mach-clps711x/autcpu12.c +++ b/arch/arm/mach-clps711x/autcpu12.c | |||
@@ -22,10 +22,10 @@ | |||
22 | #include <linux/types.h> | 22 | #include <linux/types.h> |
23 | #include <linux/string.h> | 23 | #include <linux/string.h> |
24 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
25 | #include <linux/io.h> | ||
25 | 26 | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/sizes.h> | 28 | #include <asm/sizes.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/setup.h> | 29 | #include <asm/setup.h> |
30 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
31 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/mach-clps711x/cdb89712.c b/arch/arm/mach-clps711x/cdb89712.c index aa02aa5a01f4..71a80b5b8ad6 100644 --- a/arch/arm/mach-clps711x/cdb89712.c +++ b/arch/arm/mach-clps711x/cdb89712.c | |||
@@ -22,9 +22,9 @@ | |||
22 | #include <linux/types.h> | 22 | #include <linux/types.h> |
23 | #include <linux/string.h> | 23 | #include <linux/string.h> |
24 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
25 | #include <linux/io.h> | ||
25 | 26 | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | ||
28 | #include <asm/pgtable.h> | 28 | #include <asm/pgtable.h> |
29 | #include <asm/page.h> | 29 | #include <asm/page.h> |
30 | #include <asm/setup.h> | 30 | #include <asm/setup.h> |
diff --git a/arch/arm/mach-clps711x/include/mach/system.h b/arch/arm/mach-clps711x/include/mach/system.h index a8eade40317f..24e96159e3e7 100644 --- a/arch/arm/mach-clps711x/include/mach/system.h +++ b/arch/arm/mach-clps711x/include/mach/system.h | |||
@@ -20,9 +20,9 @@ | |||
20 | #ifndef __ASM_ARCH_SYSTEM_H | 20 | #ifndef __ASM_ARCH_SYSTEM_H |
21 | #define __ASM_ARCH_SYSTEM_H | 21 | #define __ASM_ARCH_SYSTEM_H |
22 | 22 | ||
23 | #include <linux/io.h> | ||
23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
24 | #include <asm/hardware/clps7111.h> | 25 | #include <asm/hardware/clps7111.h> |
25 | #include <asm/io.h> | ||
26 | 26 | ||
27 | static inline void arch_idle(void) | 27 | static inline void arch_idle(void) |
28 | { | 28 | { |
diff --git a/arch/arm/mach-clps711x/irq.c b/arch/arm/mach-clps711x/irq.c index 38623cfcac5a..9a12d8562284 100644 --- a/arch/arm/mach-clps711x/irq.c +++ b/arch/arm/mach-clps711x/irq.c | |||
@@ -19,10 +19,10 @@ | |||
19 | */ | 19 | */ |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
22 | #include <linux/io.h> | ||
22 | 23 | ||
23 | #include <asm/mach/irq.h> | 24 | #include <asm/mach/irq.h> |
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/io.h> | ||
26 | #include <asm/irq.h> | 26 | #include <asm/irq.h> |
27 | 27 | ||
28 | #include <asm/hardware/clps7111.h> | 28 | #include <asm/hardware/clps7111.h> |
diff --git a/arch/arm/mach-clps711x/p720t-leds.c b/arch/arm/mach-clps711x/p720t-leds.c index 262c3c361453..15121446efc8 100644 --- a/arch/arm/mach-clps711x/p720t-leds.c +++ b/arch/arm/mach-clps711x/p720t-leds.c | |||
@@ -21,9 +21,9 @@ | |||
21 | */ | 21 | */ |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/leds.h> | 27 | #include <asm/leds.h> |
28 | #include <asm/system.h> | 28 | #include <asm/system.h> |
29 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-clps711x/p720t.c b/arch/arm/mach-clps711x/p720t.c index f51f97d4f212..0d94a30fd6fc 100644 --- a/arch/arm/mach-clps711x/p720t.c +++ b/arch/arm/mach-clps711x/p720t.c | |||
@@ -22,9 +22,9 @@ | |||
22 | #include <linux/types.h> | 22 | #include <linux/types.h> |
23 | #include <linux/string.h> | 23 | #include <linux/string.h> |
24 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
25 | #include <linux/io.h> | ||
25 | 26 | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | ||
28 | #include <asm/pgtable.h> | 28 | #include <asm/pgtable.h> |
29 | #include <asm/page.h> | 29 | #include <asm/page.h> |
30 | #include <asm/setup.h> | 30 | #include <asm/setup.h> |
diff --git a/arch/arm/mach-clps711x/time.c b/arch/arm/mach-clps711x/time.c index ef1fcd17189e..d581ef0bcd24 100644 --- a/arch/arm/mach-clps711x/time.c +++ b/arch/arm/mach-clps711x/time.c | |||
@@ -21,11 +21,11 @@ | |||
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
23 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
27 | #include <asm/leds.h> | 28 | #include <asm/leds.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/hardware/clps7111.h> | 29 | #include <asm/hardware/clps7111.h> |
30 | 30 | ||
31 | #include <asm/mach/time.h> | 31 | #include <asm/mach/time.h> |
diff --git a/arch/arm/mach-clps7500/core.c b/arch/arm/mach-clps7500/core.c index cc1b82179e83..c3a33b8a5aac 100644 --- a/arch/arm/mach-clps7500/core.c +++ b/arch/arm/mach-clps7500/core.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/device.h> | 16 | #include <linux/device.h> |
17 | #include <linux/serial_8250.h> | 17 | #include <linux/serial_8250.h> |
18 | #include <linux/io.h> | ||
18 | 19 | ||
19 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
20 | #include <asm/mach/map.h> | 21 | #include <asm/mach/map.h> |
@@ -23,7 +24,6 @@ | |||
23 | 24 | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/hardware/iomd.h> | 26 | #include <asm/hardware/iomd.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
28 | #include <asm/mach-types.h> | 28 | #include <asm/mach-types.h> |
29 | 29 | ||
diff --git a/arch/arm/mach-clps7500/include/mach/irq.h b/arch/arm/mach-clps7500/include/mach/irq.h index e8da3c58df76..d02fcf28ee05 100644 --- a/arch/arm/mach-clps7500/include/mach/irq.h +++ b/arch/arm/mach-clps7500/include/mach/irq.h | |||
@@ -10,8 +10,8 @@ | |||
10 | * 11-08-1999 PJB Created ARM7500 version, derived from RiscPC code | 10 | * 11-08-1999 PJB Created ARM7500 version, derived from RiscPC code |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/io.h> | ||
13 | #include <asm/hardware/iomd.h> | 14 | #include <asm/hardware/iomd.h> |
14 | #include <asm/io.h> | ||
15 | 15 | ||
16 | static inline int fixup_irq(unsigned int irq) | 16 | static inline int fixup_irq(unsigned int irq) |
17 | { | 17 | { |
diff --git a/arch/arm/mach-clps7500/include/mach/memory.h b/arch/arm/mach-clps7500/include/mach/memory.h index 3326aa99d3ec..87b32db470c8 100644 --- a/arch/arm/mach-clps7500/include/mach/memory.h +++ b/arch/arm/mach-clps7500/include/mach/memory.h | |||
@@ -32,4 +32,12 @@ | |||
32 | #define FLUSH_BASE_PHYS 0x00000000 | 32 | #define FLUSH_BASE_PHYS 0x00000000 |
33 | #define FLUSH_BASE 0xdf000000 | 33 | #define FLUSH_BASE 0xdf000000 |
34 | 34 | ||
35 | /* | ||
36 | * Sparsemem support. Each section is a maximum of 64MB. The sections | ||
37 | * are offset by 128MB and can cover 128MB, so that gives us a maximum | ||
38 | * of 29 physmem bits. | ||
39 | */ | ||
40 | #define MAX_PHYSMEM_BITS 29 | ||
41 | #define SECTION_SIZE_BITS 26 | ||
42 | |||
35 | #endif | 43 | #endif |
diff --git a/arch/arm/mach-clps7500/include/mach/system.h b/arch/arm/mach-clps7500/include/mach/system.h index 624fc2830ae0..6d325fbe8b08 100644 --- a/arch/arm/mach-clps7500/include/mach/system.h +++ b/arch/arm/mach-clps7500/include/mach/system.h | |||
@@ -6,8 +6,8 @@ | |||
6 | #ifndef __ASM_ARCH_SYSTEM_H | 6 | #ifndef __ASM_ARCH_SYSTEM_H |
7 | #define __ASM_ARCH_SYSTEM_H | 7 | #define __ASM_ARCH_SYSTEM_H |
8 | 8 | ||
9 | #include <linux/io.h> | ||
9 | #include <asm/hardware/iomd.h> | 10 | #include <asm/hardware/iomd.h> |
10 | #include <asm/io.h> | ||
11 | 11 | ||
12 | static inline void arch_idle(void) | 12 | static inline void arch_idle(void) |
13 | { | 13 | { |
diff --git a/arch/arm/mach-davinci/board-evm.c b/arch/arm/mach-davinci/board-evm.c index 134355787814..41f3cc4ac4af 100644 --- a/arch/arm/mach-davinci/board-evm.c +++ b/arch/arm/mach-davinci/board-evm.c | |||
@@ -16,9 +16,9 @@ | |||
16 | #include <linux/mtd/mtd.h> | 16 | #include <linux/mtd/mtd.h> |
17 | #include <linux/mtd/partitions.h> | 17 | #include <linux/mtd/partitions.h> |
18 | #include <linux/mtd/physmap.h> | 18 | #include <linux/mtd/physmap.h> |
19 | #include <linux/io.h> | ||
19 | 20 | ||
20 | #include <asm/setup.h> | 21 | #include <asm/setup.h> |
21 | #include <asm/io.h> | ||
22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | 24 | ||
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c index d46c69b55aaa..28f6dbc95bd7 100644 --- a/arch/arm/mach-davinci/clock.c +++ b/arch/arm/mach-davinci/clock.c | |||
@@ -16,9 +16,9 @@ | |||
16 | #include <linux/err.h> | 16 | #include <linux/err.h> |
17 | #include <linux/mutex.h> | 17 | #include <linux/mutex.h> |
18 | #include <linux/platform_device.h> | 18 | #include <linux/platform_device.h> |
19 | #include <linux/io.h> | ||
19 | 20 | ||
20 | #include <mach/hardware.h> | 21 | #include <mach/hardware.h> |
21 | #include <asm/io.h> | ||
22 | 22 | ||
23 | #include <mach/psc.h> | 23 | #include <mach/psc.h> |
24 | #include "clock.h" | 24 | #include "clock.h" |
diff --git a/arch/arm/mach-davinci/id.c b/arch/arm/mach-davinci/id.c index 70608f76aed8..bf067d604918 100644 --- a/arch/arm/mach-davinci/id.c +++ b/arch/arm/mach-davinci/id.c | |||
@@ -13,8 +13,7 @@ | |||
13 | #include <linux/module.h> | 13 | #include <linux/module.h> |
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | 16 | #include <linux/io.h> | |
17 | #include <asm/io.h> | ||
18 | 17 | ||
19 | #define JTAG_ID_BASE 0x01c40028 | 18 | #define JTAG_ID_BASE 0x01c40028 |
20 | 19 | ||
diff --git a/arch/arm/mach-davinci/include/mach/system.h b/arch/arm/mach-davinci/include/mach/system.h index 84ff77aeb738..17ca41dc2c53 100644 --- a/arch/arm/mach-davinci/include/mach/system.h +++ b/arch/arm/mach-davinci/include/mach/system.h | |||
@@ -11,7 +11,7 @@ | |||
11 | #ifndef __ASM_ARCH_SYSTEM_H | 11 | #ifndef __ASM_ARCH_SYSTEM_H |
12 | #define __ASM_ARCH_SYSTEM_H | 12 | #define __ASM_ARCH_SYSTEM_H |
13 | 13 | ||
14 | #include <asm/io.h> | 14 | #include <linux/io.h> |
15 | #include <mach/hardware.h> | 15 | #include <mach/hardware.h> |
16 | 16 | ||
17 | extern void davinci_watchdog_reset(void); | 17 | extern void davinci_watchdog_reset(void); |
diff --git a/arch/arm/mach-davinci/io.c b/arch/arm/mach-davinci/io.c index 5bb66b61c1a3..299515f70b8b 100644 --- a/arch/arm/mach-davinci/io.c +++ b/arch/arm/mach-davinci/io.c | |||
@@ -11,9 +11,9 @@ | |||
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/io.h> | ||
14 | 15 | ||
15 | #include <asm/tlb.h> | 16 | #include <asm/tlb.h> |
16 | #include <asm/io.h> | ||
17 | #include <asm/memory.h> | 17 | #include <asm/memory.h> |
18 | 18 | ||
19 | #include <asm/mach/map.h> | 19 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-davinci/irq.c b/arch/arm/mach-davinci/irq.c index 12ca9f29f847..38021af8359a 100644 --- a/arch/arm/mach-davinci/irq.c +++ b/arch/arm/mach-davinci/irq.c | |||
@@ -22,9 +22,9 @@ | |||
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
24 | #include <linux/irq.h> | 24 | #include <linux/irq.h> |
25 | #include <linux/io.h> | ||
25 | 26 | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | ||
28 | #include <asm/mach/irq.h> | 28 | #include <asm/mach/irq.h> |
29 | 29 | ||
30 | #define IRQ_BIT(irq) ((irq) & 0x1f) | 30 | #define IRQ_BIT(irq) ((irq) & 0x1f) |
diff --git a/arch/arm/mach-davinci/psc.c b/arch/arm/mach-davinci/psc.c index 720c48b9ee04..42b976e8a7e9 100644 --- a/arch/arm/mach-davinci/psc.c +++ b/arch/arm/mach-davinci/psc.c | |||
@@ -21,8 +21,8 @@ | |||
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <asm/io.h> | ||
26 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <mach/psc.h> | 27 | #include <mach/psc.h> |
28 | #include <mach/mux.h> | 28 | #include <mach/mux.h> |
diff --git a/arch/arm/mach-davinci/serial.c b/arch/arm/mach-davinci/serial.c index caf101e2cc62..3010f9971255 100644 --- a/arch/arm/mach-davinci/serial.c +++ b/arch/arm/mach-davinci/serial.c | |||
@@ -26,8 +26,8 @@ | |||
26 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
27 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
28 | #include <linux/clk.h> | 28 | #include <linux/clk.h> |
29 | #include <linux/io.h> | ||
29 | 30 | ||
30 | #include <asm/io.h> | ||
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
33 | #include <mach/serial.h> | 33 | #include <mach/serial.h> |
diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c index 206e80d41717..3b9a296b5c4b 100644 --- a/arch/arm/mach-davinci/time.c +++ b/arch/arm/mach-davinci/time.c | |||
@@ -15,8 +15,8 @@ | |||
15 | #include <linux/clocksource.h> | 15 | #include <linux/clocksource.h> |
16 | #include <linux/clockchips.h> | 16 | #include <linux/clockchips.h> |
17 | #include <linux/spinlock.h> | 17 | #include <linux/spinlock.h> |
18 | #include <linux/io.h> | ||
18 | 19 | ||
19 | #include <asm/io.h> | ||
20 | #include <mach/hardware.h> | 20 | #include <mach/hardware.h> |
21 | #include <asm/system.h> | 21 | #include <asm/system.h> |
22 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
diff --git a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c index 65cc7c271917..c7bc7fbb11a6 100644 --- a/arch/arm/mach-ebsa110/core.c +++ b/arch/arm/mach-ebsa110/core.c | |||
@@ -14,10 +14,10 @@ | |||
14 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
15 | #include <linux/serial_8250.h> | 15 | #include <linux/serial_8250.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/io.h> | ||
17 | 18 | ||
18 | #include <mach/hardware.h> | 19 | #include <mach/hardware.h> |
19 | #include <asm/irq.h> | 20 | #include <asm/irq.h> |
20 | #include <asm/io.h> | ||
21 | #include <asm/setup.h> | 21 | #include <asm/setup.h> |
22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
23 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
diff --git a/arch/arm/mach-ebsa110/io.c b/arch/arm/mach-ebsa110/io.c index 53748f5462e9..c52e3047a7eb 100644 --- a/arch/arm/mach-ebsa110/io.c +++ b/arch/arm/mach-ebsa110/io.c | |||
@@ -23,9 +23,9 @@ | |||
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
25 | #include <linux/types.h> | 25 | #include <linux/types.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/page.h> | 29 | #include <asm/page.h> |
30 | 30 | ||
31 | static void __iomem *__isamem_convert_addr(const volatile void __iomem *addr) | 31 | static void __iomem *__isamem_convert_addr(const volatile void __iomem *addr) |
diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig index ea8549bfbef2..5a1b8c05c958 100644 --- a/arch/arm/mach-ep93xx/Kconfig +++ b/arch/arm/mach-ep93xx/Kconfig | |||
@@ -88,6 +88,20 @@ config MACH_TS72XX | |||
88 | Say 'Y' here if you want your kernel to support the | 88 | Say 'Y' here if you want your kernel to support the |
89 | Technologic Systems TS-72xx board. | 89 | Technologic Systems TS-72xx board. |
90 | 90 | ||
91 | choice | ||
92 | prompt "Select a UART for early kernel messages" | ||
93 | |||
94 | config EP93XX_EARLY_UART1 | ||
95 | bool "UART1" | ||
96 | |||
97 | config EP93XX_EARLY_UART2 | ||
98 | bool "UART2" | ||
99 | |||
100 | config EP93XX_EARLY_UART3 | ||
101 | bool "UART3" | ||
102 | |||
103 | endchoice | ||
104 | |||
91 | endmenu | 105 | endmenu |
92 | 106 | ||
93 | endif | 107 | endif |
diff --git a/arch/arm/mach-ep93xx/adssphere.c b/arch/arm/mach-ep93xx/adssphere.c index aa1fb352fb8f..561db73ec1ae 100644 --- a/arch/arm/mach-ep93xx/adssphere.c +++ b/arch/arm/mach-ep93xx/adssphere.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
@@ -47,36 +47,12 @@ static struct ep93xx_eth_data adssphere_eth_data = { | |||
47 | .phy_id = 1, | 47 | .phy_id = 1, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | static struct resource adssphere_eth_resource[] = { | ||
51 | { | ||
52 | .start = EP93XX_ETHERNET_PHYS_BASE, | ||
53 | .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, | ||
54 | .flags = IORESOURCE_MEM, | ||
55 | }, { | ||
56 | .start = IRQ_EP93XX_ETHERNET, | ||
57 | .end = IRQ_EP93XX_ETHERNET, | ||
58 | .flags = IORESOURCE_IRQ, | ||
59 | } | ||
60 | }; | ||
61 | |||
62 | static struct platform_device adssphere_eth_device = { | ||
63 | .name = "ep93xx-eth", | ||
64 | .id = -1, | ||
65 | .dev = { | ||
66 | .platform_data = &adssphere_eth_data, | ||
67 | }, | ||
68 | .num_resources = 2, | ||
69 | .resource = adssphere_eth_resource, | ||
70 | }; | ||
71 | |||
72 | static void __init adssphere_init_machine(void) | 50 | static void __init adssphere_init_machine(void) |
73 | { | 51 | { |
74 | ep93xx_init_devices(); | 52 | ep93xx_init_devices(); |
75 | platform_device_register(&adssphere_flash); | 53 | platform_device_register(&adssphere_flash); |
76 | 54 | ||
77 | memcpy(adssphere_eth_data.dev_addr, | 55 | ep93xx_register_eth(&adssphere_eth_data, 1); |
78 | (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); | ||
79 | platform_device_register(&adssphere_eth_device); | ||
80 | } | 56 | } |
81 | 57 | ||
82 | MACHINE_START(ADSSPHERE, "ADS Sphere board") | 58 | MACHINE_START(ADSSPHERE, "ADS Sphere board") |
diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c index 6062e47f2043..8c9f2491dccc 100644 --- a/arch/arm/mach-ep93xx/clock.c +++ b/arch/arm/mach-ep93xx/clock.c | |||
@@ -15,9 +15,9 @@ | |||
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | #include <linux/module.h> | 16 | #include <linux/module.h> |
17 | #include <linux/string.h> | 17 | #include <linux/string.h> |
18 | #include <linux/io.h> | ||
18 | #include <asm/div64.h> | 19 | #include <asm/div64.h> |
19 | #include <mach/hardware.h> | 20 | #include <mach/hardware.h> |
20 | #include <asm/io.h> | ||
21 | 21 | ||
22 | struct clk { | 22 | struct clk { |
23 | char *name; | 23 | char *name; |
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index f99f43669392..7e65d23e14b5 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/termios.h> | 32 | #include <linux/termios.h> |
33 | #include <linux/amba/bus.h> | 33 | #include <linux/amba/bus.h> |
34 | #include <linux/amba/serial.h> | 34 | #include <linux/amba/serial.h> |
35 | #include <linux/io.h> | ||
35 | 36 | ||
36 | #include <asm/types.h> | 37 | #include <asm/types.h> |
37 | #include <asm/setup.h> | 38 | #include <asm/setup.h> |
@@ -41,7 +42,6 @@ | |||
41 | #include <asm/system.h> | 42 | #include <asm/system.h> |
42 | #include <asm/tlbflush.h> | 43 | #include <asm/tlbflush.h> |
43 | #include <asm/pgtable.h> | 44 | #include <asm/pgtable.h> |
44 | #include <asm/io.h> | ||
45 | 45 | ||
46 | #include <asm/mach/map.h> | 46 | #include <asm/mach/map.h> |
47 | #include <asm/mach/time.h> | 47 | #include <asm/mach/time.h> |
@@ -157,7 +157,7 @@ static unsigned char gpio_int_type2[3]; | |||
157 | static const u8 int_type1_register_offset[3] = { 0x90, 0xac, 0x4c }; | 157 | static const u8 int_type1_register_offset[3] = { 0x90, 0xac, 0x4c }; |
158 | static const u8 int_type2_register_offset[3] = { 0x94, 0xb0, 0x50 }; | 158 | static const u8 int_type2_register_offset[3] = { 0x94, 0xb0, 0x50 }; |
159 | static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 }; | 159 | static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 }; |
160 | static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x5c }; | 160 | static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x58 }; |
161 | 161 | ||
162 | void ep93xx_gpio_update_int_params(unsigned port) | 162 | void ep93xx_gpio_update_int_params(unsigned port) |
163 | { | 163 | { |
@@ -461,6 +461,41 @@ static struct platform_device ep93xx_ohci_device = { | |||
461 | .resource = ep93xx_ohci_resources, | 461 | .resource = ep93xx_ohci_resources, |
462 | }; | 462 | }; |
463 | 463 | ||
464 | static struct ep93xx_eth_data ep93xx_eth_data; | ||
465 | |||
466 | static struct resource ep93xx_eth_resource[] = { | ||
467 | { | ||
468 | .start = EP93XX_ETHERNET_PHYS_BASE, | ||
469 | .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, | ||
470 | .flags = IORESOURCE_MEM, | ||
471 | }, { | ||
472 | .start = IRQ_EP93XX_ETHERNET, | ||
473 | .end = IRQ_EP93XX_ETHERNET, | ||
474 | .flags = IORESOURCE_IRQ, | ||
475 | } | ||
476 | }; | ||
477 | |||
478 | static struct platform_device ep93xx_eth_device = { | ||
479 | .name = "ep93xx-eth", | ||
480 | .id = -1, | ||
481 | .dev = { | ||
482 | .platform_data = &ep93xx_eth_data, | ||
483 | }, | ||
484 | .num_resources = ARRAY_SIZE(ep93xx_eth_resource), | ||
485 | .resource = ep93xx_eth_resource, | ||
486 | }; | ||
487 | |||
488 | void __init ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr) | ||
489 | { | ||
490 | if (copy_addr) { | ||
491 | memcpy(data->dev_addr, | ||
492 | (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); | ||
493 | } | ||
494 | |||
495 | ep93xx_eth_data = *data; | ||
496 | platform_device_register(&ep93xx_eth_device); | ||
497 | } | ||
498 | |||
464 | extern void ep93xx_gpio_init(void); | 499 | extern void ep93xx_gpio_init(void); |
465 | 500 | ||
466 | void __init ep93xx_init_devices(void) | 501 | void __init ep93xx_init_devices(void) |
diff --git a/arch/arm/mach-ep93xx/edb9302.c b/arch/arm/mach-ep93xx/edb9302.c index 97550c0ad7b0..e4add5bdccfd 100644 --- a/arch/arm/mach-ep93xx/edb9302.c +++ b/arch/arm/mach-ep93xx/edb9302.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
@@ -43,10 +43,16 @@ static struct platform_device edb9302_flash = { | |||
43 | .resource = &edb9302_flash_resource, | 43 | .resource = &edb9302_flash_resource, |
44 | }; | 44 | }; |
45 | 45 | ||
46 | static struct ep93xx_eth_data edb9302_eth_data = { | ||
47 | .phy_id = 1, | ||
48 | }; | ||
49 | |||
46 | static void __init edb9302_init_machine(void) | 50 | static void __init edb9302_init_machine(void) |
47 | { | 51 | { |
48 | ep93xx_init_devices(); | 52 | ep93xx_init_devices(); |
49 | platform_device_register(&edb9302_flash); | 53 | platform_device_register(&edb9302_flash); |
54 | |||
55 | ep93xx_register_eth(&edb9302_eth_data, 1); | ||
50 | } | 56 | } |
51 | 57 | ||
52 | MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") | 58 | MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") |
diff --git a/arch/arm/mach-ep93xx/edb9302a.c b/arch/arm/mach-ep93xx/edb9302a.c index 99b01d44bf1c..02c4405afed7 100644 --- a/arch/arm/mach-ep93xx/edb9302a.c +++ b/arch/arm/mach-ep93xx/edb9302a.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
@@ -47,36 +47,12 @@ static struct ep93xx_eth_data edb9302a_eth_data = { | |||
47 | .phy_id = 1, | 47 | .phy_id = 1, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | static struct resource edb9302a_eth_resource[] = { | ||
51 | { | ||
52 | .start = EP93XX_ETHERNET_PHYS_BASE, | ||
53 | .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, | ||
54 | .flags = IORESOURCE_MEM, | ||
55 | }, { | ||
56 | .start = IRQ_EP93XX_ETHERNET, | ||
57 | .end = IRQ_EP93XX_ETHERNET, | ||
58 | .flags = IORESOURCE_IRQ, | ||
59 | } | ||
60 | }; | ||
61 | |||
62 | static struct platform_device edb9302a_eth_device = { | ||
63 | .name = "ep93xx-eth", | ||
64 | .id = -1, | ||
65 | .dev = { | ||
66 | .platform_data = &edb9302a_eth_data, | ||
67 | }, | ||
68 | .num_resources = 2, | ||
69 | .resource = edb9302a_eth_resource, | ||
70 | }; | ||
71 | |||
72 | static void __init edb9302a_init_machine(void) | 50 | static void __init edb9302a_init_machine(void) |
73 | { | 51 | { |
74 | ep93xx_init_devices(); | 52 | ep93xx_init_devices(); |
75 | platform_device_register(&edb9302a_flash); | 53 | platform_device_register(&edb9302a_flash); |
76 | 54 | ||
77 | memcpy(edb9302a_eth_data.dev_addr, | 55 | ep93xx_register_eth(&edb9302a_eth_data, 1); |
78 | (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); | ||
79 | platform_device_register(&edb9302a_eth_device); | ||
80 | } | 56 | } |
81 | 57 | ||
82 | MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") | 58 | MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") |
diff --git a/arch/arm/mach-ep93xx/edb9307.c b/arch/arm/mach-ep93xx/edb9307.c index 9fb72d01a36c..040edbd2ea05 100644 --- a/arch/arm/mach-ep93xx/edb9307.c +++ b/arch/arm/mach-ep93xx/edb9307.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
@@ -47,36 +47,12 @@ static struct ep93xx_eth_data edb9307_eth_data = { | |||
47 | .phy_id = 1, | 47 | .phy_id = 1, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | static struct resource edb9307_eth_resource[] = { | ||
51 | { | ||
52 | .start = EP93XX_ETHERNET_PHYS_BASE, | ||
53 | .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, | ||
54 | .flags = IORESOURCE_MEM, | ||
55 | }, { | ||
56 | .start = IRQ_EP93XX_ETHERNET, | ||
57 | .end = IRQ_EP93XX_ETHERNET, | ||
58 | .flags = IORESOURCE_IRQ, | ||
59 | } | ||
60 | }; | ||
61 | |||
62 | static struct platform_device edb9307_eth_device = { | ||
63 | .name = "ep93xx-eth", | ||
64 | .id = -1, | ||
65 | .dev = { | ||
66 | .platform_data = &edb9307_eth_data, | ||
67 | }, | ||
68 | .num_resources = 2, | ||
69 | .resource = edb9307_eth_resource, | ||
70 | }; | ||
71 | |||
72 | static void __init edb9307_init_machine(void) | 50 | static void __init edb9307_init_machine(void) |
73 | { | 51 | { |
74 | ep93xx_init_devices(); | 52 | ep93xx_init_devices(); |
75 | platform_device_register(&edb9307_flash); | 53 | platform_device_register(&edb9307_flash); |
76 | 54 | ||
77 | memcpy(edb9307_eth_data.dev_addr, | 55 | ep93xx_register_eth(&edb9307_eth_data, 1); |
78 | (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); | ||
79 | platform_device_register(&edb9307_eth_device); | ||
80 | } | 56 | } |
81 | 57 | ||
82 | MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") | 58 | MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") |
diff --git a/arch/arm/mach-ep93xx/edb9312.c b/arch/arm/mach-ep93xx/edb9312.c index 87267a574f5e..6853e302bc3a 100644 --- a/arch/arm/mach-ep93xx/edb9312.c +++ b/arch/arm/mach-ep93xx/edb9312.c | |||
@@ -19,7 +19,7 @@ | |||
19 | #include <linux/ioport.h> | 19 | #include <linux/ioport.h> |
20 | #include <linux/mtd/physmap.h> | 20 | #include <linux/mtd/physmap.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <asm/io.h> | 22 | #include <linux/io.h> |
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
25 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -44,10 +44,16 @@ static struct platform_device edb9312_flash = { | |||
44 | .resource = &edb9312_flash_resource, | 44 | .resource = &edb9312_flash_resource, |
45 | }; | 45 | }; |
46 | 46 | ||
47 | static struct ep93xx_eth_data edb9312_eth_data = { | ||
48 | .phy_id = 1, | ||
49 | }; | ||
50 | |||
47 | static void __init edb9312_init_machine(void) | 51 | static void __init edb9312_init_machine(void) |
48 | { | 52 | { |
49 | ep93xx_init_devices(); | 53 | ep93xx_init_devices(); |
50 | platform_device_register(&edb9312_flash); | 54 | platform_device_register(&edb9312_flash); |
55 | |||
56 | ep93xx_register_eth(&edb9312_eth_data, 1); | ||
51 | } | 57 | } |
52 | 58 | ||
53 | MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") | 59 | MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") |
diff --git a/arch/arm/mach-ep93xx/edb9315.c b/arch/arm/mach-ep93xx/edb9315.c index 7e373950be4d..9469b350d253 100644 --- a/arch/arm/mach-ep93xx/edb9315.c +++ b/arch/arm/mach-ep93xx/edb9315.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
@@ -43,10 +43,16 @@ static struct platform_device edb9315_flash = { | |||
43 | .resource = &edb9315_flash_resource, | 43 | .resource = &edb9315_flash_resource, |
44 | }; | 44 | }; |
45 | 45 | ||
46 | static struct ep93xx_eth_data edb9315_eth_data = { | ||
47 | .phy_id = 1, | ||
48 | }; | ||
49 | |||
46 | static void __init edb9315_init_machine(void) | 50 | static void __init edb9315_init_machine(void) |
47 | { | 51 | { |
48 | ep93xx_init_devices(); | 52 | ep93xx_init_devices(); |
49 | platform_device_register(&edb9315_flash); | 53 | platform_device_register(&edb9315_flash); |
54 | |||
55 | ep93xx_register_eth(&edb9315_eth_data, 1); | ||
50 | } | 56 | } |
51 | 57 | ||
52 | MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") | 58 | MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") |
diff --git a/arch/arm/mach-ep93xx/edb9315a.c b/arch/arm/mach-ep93xx/edb9315a.c index 08a7c9bfb689..584457ce7c80 100644 --- a/arch/arm/mach-ep93xx/edb9315a.c +++ b/arch/arm/mach-ep93xx/edb9315a.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
@@ -47,36 +47,12 @@ static struct ep93xx_eth_data edb9315a_eth_data = { | |||
47 | .phy_id = 1, | 47 | .phy_id = 1, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | static struct resource edb9315a_eth_resource[] = { | ||
51 | { | ||
52 | .start = EP93XX_ETHERNET_PHYS_BASE, | ||
53 | .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, | ||
54 | .flags = IORESOURCE_MEM, | ||
55 | }, { | ||
56 | .start = IRQ_EP93XX_ETHERNET, | ||
57 | .end = IRQ_EP93XX_ETHERNET, | ||
58 | .flags = IORESOURCE_IRQ, | ||
59 | } | ||
60 | }; | ||
61 | |||
62 | static struct platform_device edb9315a_eth_device = { | ||
63 | .name = "ep93xx-eth", | ||
64 | .id = -1, | ||
65 | .dev = { | ||
66 | .platform_data = &edb9315a_eth_data, | ||
67 | }, | ||
68 | .num_resources = 2, | ||
69 | .resource = edb9315a_eth_resource, | ||
70 | }; | ||
71 | |||
72 | static void __init edb9315a_init_machine(void) | 50 | static void __init edb9315a_init_machine(void) |
73 | { | 51 | { |
74 | ep93xx_init_devices(); | 52 | ep93xx_init_devices(); |
75 | platform_device_register(&edb9315a_flash); | 53 | platform_device_register(&edb9315a_flash); |
76 | 54 | ||
77 | memcpy(edb9315a_eth_data.dev_addr, | 55 | ep93xx_register_eth(&edb9315a_eth_data, 1); |
78 | (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); | ||
79 | platform_device_register(&edb9315a_eth_device); | ||
80 | } | 56 | } |
81 | 57 | ||
82 | MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") | 58 | MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") |
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c index 9b41ec1f089e..035b24e31b64 100644 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
@@ -44,36 +44,15 @@ static struct platform_device gesbc9312_flash = { | |||
44 | }; | 44 | }; |
45 | 45 | ||
46 | static struct ep93xx_eth_data gesbc9312_eth_data = { | 46 | static struct ep93xx_eth_data gesbc9312_eth_data = { |
47 | .phy_id = 1, | 47 | .phy_id = 1, |
48 | }; | ||
49 | |||
50 | static struct resource gesbc9312_eth_resource[] = { | ||
51 | { | ||
52 | .start = EP93XX_ETHERNET_PHYS_BASE, | ||
53 | .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, | ||
54 | .flags = IORESOURCE_MEM, | ||
55 | }, { | ||
56 | .start = IRQ_EP93XX_ETHERNET, | ||
57 | .end = IRQ_EP93XX_ETHERNET, | ||
58 | .flags = IORESOURCE_IRQ, | ||
59 | } | ||
60 | }; | ||
61 | |||
62 | static struct platform_device gesbc9312_eth_device = { | ||
63 | .name = "ep93xx-eth", | ||
64 | .id = -1, | ||
65 | .dev = { | ||
66 | .platform_data = &gesbc9312_eth_data, | ||
67 | }, | ||
68 | .num_resources = 2, | ||
69 | .resource = gesbc9312_eth_resource, | ||
70 | }; | 48 | }; |
71 | 49 | ||
72 | static void __init gesbc9312_init_machine(void) | 50 | static void __init gesbc9312_init_machine(void) |
73 | { | 51 | { |
74 | ep93xx_init_devices(); | 52 | ep93xx_init_devices(); |
75 | platform_device_register(&gesbc9312_flash); | 53 | platform_device_register(&gesbc9312_flash); |
76 | platform_device_register(&gesbc9312_eth_device); | 54 | |
55 | ep93xx_register_eth(&gesbc9312_eth_data, 0); | ||
77 | } | 56 | } |
78 | 57 | ||
79 | MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") | 58 | MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") |
diff --git a/arch/arm/mach-ep93xx/gpio.c b/arch/arm/mach-ep93xx/gpio.c index 0f3fb87ca4be..482cf3d2fbcd 100644 --- a/arch/arm/mach-ep93xx/gpio.c +++ b/arch/arm/mach-ep93xx/gpio.c | |||
@@ -16,9 +16,9 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/seq_file.h> | 18 | #include <linux/seq_file.h> |
19 | #include <linux/io.h> | ||
19 | 20 | ||
20 | #include <mach/ep93xx-regs.h> | 21 | #include <mach/ep93xx-regs.h> |
21 | #include <asm/io.h> | ||
22 | #include <asm/gpio.h> | 22 | #include <asm/gpio.h> |
23 | 23 | ||
24 | struct ep93xx_gpio_chip { | 24 | struct ep93xx_gpio_chip { |
@@ -141,10 +141,10 @@ static void ep93xx_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) | |||
141 | static struct ep93xx_gpio_chip ep93xx_gpio_banks[] = { | 141 | static struct ep93xx_gpio_chip ep93xx_gpio_banks[] = { |
142 | EP93XX_GPIO_BANK("A", 0x00, 0x10, 0), | 142 | EP93XX_GPIO_BANK("A", 0x00, 0x10, 0), |
143 | EP93XX_GPIO_BANK("B", 0x04, 0x14, 8), | 143 | EP93XX_GPIO_BANK("B", 0x04, 0x14, 8), |
144 | EP93XX_GPIO_BANK("C", 0x30, 0x34, 40), | 144 | EP93XX_GPIO_BANK("C", 0x08, 0x18, 40), |
145 | EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24), | 145 | EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24), |
146 | EP93XX_GPIO_BANK("E", 0x20, 0x24, 32), | 146 | EP93XX_GPIO_BANK("E", 0x20, 0x24, 32), |
147 | EP93XX_GPIO_BANK("F", 0x08, 0x18, 16), | 147 | EP93XX_GPIO_BANK("F", 0x30, 0x34, 16), |
148 | EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48), | 148 | EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48), |
149 | EP93XX_GPIO_BANK("H", 0x40, 0x44, 56), | 149 | EP93XX_GPIO_BANK("H", 0x40, 0x44, 56), |
150 | }; | 150 | }; |
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h index 9f4458c8e070..22d6c9a6e4ca 100644 --- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h +++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h | |||
@@ -6,6 +6,40 @@ | |||
6 | #define __ASM_ARCH_EP93XX_REGS_H | 6 | #define __ASM_ARCH_EP93XX_REGS_H |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * EP93xx Physical Memory Map: | ||
10 | * | ||
11 | * The ASDO pin is sampled at system reset to select a synchronous or | ||
12 | * asynchronous boot configuration. When ASDO is "1" (i.e. pulled-up) | ||
13 | * the synchronous boot mode is selected. When ASDO is "0" (i.e | ||
14 | * pulled-down) the asynchronous boot mode is selected. | ||
15 | * | ||
16 | * In synchronous boot mode nSDCE3 is decoded starting at physical address | ||
17 | * 0x00000000 and nCS0 is decoded starting at 0xf0000000. For asynchronous | ||
18 | * boot mode they are swapped with nCS0 decoded at 0x00000000 ann nSDCE3 | ||
19 | * decoded at 0xf0000000. | ||
20 | * | ||
21 | * There is known errata for the EP93xx dealing with External Memory | ||
22 | * Configurations. Please refer to "AN273: EP93xx Silicon Rev E Design | ||
23 | * Guidelines" for more information. This document can be found at: | ||
24 | * | ||
25 | * http://www.cirrus.com/en/pubs/appNote/AN273REV4.pdf | ||
26 | */ | ||
27 | |||
28 | #define EP93XX_CS0_PHYS_BASE_ASYNC 0x00000000 /* ASDO Pin = 0 */ | ||
29 | #define EP93XX_SDCE3_PHYS_BASE_SYNC 0x00000000 /* ASDO Pin = 1 */ | ||
30 | #define EP93XX_CS1_PHYS_BASE 0x10000000 | ||
31 | #define EP93XX_CS2_PHYS_BASE 0x20000000 | ||
32 | #define EP93XX_CS3_PHYS_BASE 0x30000000 | ||
33 | #define EP93XX_PCMCIA_PHYS_BASE 0x40000000 | ||
34 | #define EP93XX_CS6_PHYS_BASE 0x60000000 | ||
35 | #define EP93XX_CS7_PHYS_BASE 0x70000000 | ||
36 | #define EP93XX_SDCE0_PHYS_BASE 0xc0000000 | ||
37 | #define EP93XX_SDCE1_PHYS_BASE 0xd0000000 | ||
38 | #define EP93XX_SDCE2_PHYS_BASE 0xe0000000 | ||
39 | #define EP93XX_SDCE3_PHYS_BASE_ASYNC 0xf0000000 /* ASDO Pin = 0 */ | ||
40 | #define EP93XX_CS0_PHYS_BASE_SYNC 0xf0000000 /* ASDO Pin = 1 */ | ||
41 | |||
42 | /* | ||
9 | * EP93xx linux memory map: | 43 | * EP93xx linux memory map: |
10 | * | 44 | * |
11 | * virt phys size | 45 | * virt phys size |
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h index b5c182473f5d..db2489d3bda7 100644 --- a/arch/arm/mach-ep93xx/include/mach/platform.h +++ b/arch/arm/mach-ep93xx/include/mach/platform.h | |||
@@ -4,17 +4,17 @@ | |||
4 | 4 | ||
5 | #ifndef __ASSEMBLY__ | 5 | #ifndef __ASSEMBLY__ |
6 | 6 | ||
7 | void ep93xx_map_io(void); | ||
8 | void ep93xx_init_irq(void); | ||
9 | void ep93xx_init_time(unsigned long); | ||
10 | void ep93xx_init_devices(void); | ||
11 | extern struct sys_timer ep93xx_timer; | ||
12 | |||
13 | struct ep93xx_eth_data | 7 | struct ep93xx_eth_data |
14 | { | 8 | { |
15 | unsigned char dev_addr[6]; | 9 | unsigned char dev_addr[6]; |
16 | unsigned char phy_id; | 10 | unsigned char phy_id; |
17 | }; | 11 | }; |
18 | 12 | ||
13 | void ep93xx_map_io(void); | ||
14 | void ep93xx_init_irq(void); | ||
15 | void ep93xx_init_time(unsigned long); | ||
16 | void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr); | ||
17 | void ep93xx_init_devices(void); | ||
18 | extern struct sys_timer ep93xx_timer; | ||
19 | 19 | ||
20 | #endif | 20 | #endif |
diff --git a/arch/arm/mach-ep93xx/include/mach/ts72xx.h b/arch/arm/mach-ep93xx/include/mach/ts72xx.h index 30b318aa1a1f..34ddec081c40 100644 --- a/arch/arm/mach-ep93xx/include/mach/ts72xx.h +++ b/arch/arm/mach-ep93xx/include/mach/ts72xx.h | |||
@@ -70,7 +70,7 @@ | |||
70 | 70 | ||
71 | 71 | ||
72 | #ifndef __ASSEMBLY__ | 72 | #ifndef __ASSEMBLY__ |
73 | #include <asm/io.h> | 73 | #include <linux/io.h> |
74 | 74 | ||
75 | static inline int board_is_ts7200(void) | 75 | static inline int board_is_ts7200(void) |
76 | { | 76 | { |
diff --git a/arch/arm/mach-ep93xx/include/mach/uncompress.h b/arch/arm/mach-ep93xx/include/mach/uncompress.h index 1fd2f17de325..16026c2b1c8c 100644 --- a/arch/arm/mach-ep93xx/include/mach/uncompress.h +++ b/arch/arm/mach-ep93xx/include/mach/uncompress.h | |||
@@ -31,10 +31,19 @@ static void __raw_writel(unsigned int value, unsigned int ptr) | |||
31 | *((volatile unsigned int *)ptr) = value; | 31 | *((volatile unsigned int *)ptr) = value; |
32 | } | 32 | } |
33 | 33 | ||
34 | 34 | #if defined(CONFIG_EP93XX_EARLY_UART1) | |
35 | #define PHYS_UART1_DATA 0x808c0000 | 35 | #define UART_BASE EP93XX_UART1_PHYS_BASE |
36 | #define PHYS_UART1_FLAG 0x808c0018 | 36 | #elif defined(CONFIG_EP93XX_EARLY_UART2) |
37 | #define UART1_FLAG_TXFF 0x20 | 37 | #define UART_BASE EP93XX_UART2_PHYS_BASE |
38 | #elif defined(CONFIG_EP93XX_EARLY_UART3) | ||
39 | #define UART_BASE EP93XX_UART3_PHYS_BASE | ||
40 | #else | ||
41 | #define UART_BASE EP93XX_UART1_PHYS_BASE | ||
42 | #endif | ||
43 | |||
44 | #define PHYS_UART_DATA (UART_BASE + 0x00) | ||
45 | #define PHYS_UART_FLAG (UART_BASE + 0x18) | ||
46 | #define UART_FLAG_TXFF 0x20 | ||
38 | 47 | ||
39 | static inline void putc(int c) | 48 | static inline void putc(int c) |
40 | { | 49 | { |
@@ -42,11 +51,11 @@ static inline void putc(int c) | |||
42 | 51 | ||
43 | for (i = 0; i < 1000; i++) { | 52 | for (i = 0; i < 1000; i++) { |
44 | /* Transmit fifo not full? */ | 53 | /* Transmit fifo not full? */ |
45 | if (!(__raw_readb(PHYS_UART1_FLAG) & UART1_FLAG_TXFF)) | 54 | if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF)) |
46 | break; | 55 | break; |
47 | } | 56 | } |
48 | 57 | ||
49 | __raw_writeb(c, PHYS_UART1_DATA); | 58 | __raw_writeb(c, PHYS_UART_DATA); |
50 | } | 59 | } |
51 | 60 | ||
52 | static inline void flush(void) | 61 | static inline void flush(void) |
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c index de047a5c8112..c2197236b632 100644 --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c | |||
@@ -16,10 +16,9 @@ | |||
16 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
18 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
19 | 19 | #include <linux/io.h> | |
20 | #include <linux/mtd/physmap.h> | 20 | #include <linux/mtd/physmap.h> |
21 | 21 | ||
22 | #include <asm/io.h> | ||
23 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
24 | 23 | ||
25 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
@@ -29,38 +28,9 @@ static struct ep93xx_eth_data micro9_eth_data = { | |||
29 | .phy_id = 0x1f, | 28 | .phy_id = 0x1f, |
30 | }; | 29 | }; |
31 | 30 | ||
32 | static struct resource micro9_eth_resource[] = { | ||
33 | { | ||
34 | .start = EP93XX_ETHERNET_PHYS_BASE, | ||
35 | .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, | ||
36 | .flags = IORESOURCE_MEM, | ||
37 | }, { | ||
38 | .start = IRQ_EP93XX_ETHERNET, | ||
39 | .end = IRQ_EP93XX_ETHERNET, | ||
40 | .flags = IORESOURCE_IRQ, | ||
41 | } | ||
42 | }; | ||
43 | |||
44 | static struct platform_device micro9_eth_device = { | ||
45 | .name = "ep93xx-eth", | ||
46 | .id = -1, | ||
47 | .dev = { | ||
48 | .platform_data = µ9_eth_data, | ||
49 | }, | ||
50 | .num_resources = ARRAY_SIZE(micro9_eth_resource), | ||
51 | .resource = micro9_eth_resource, | ||
52 | }; | ||
53 | |||
54 | static void __init micro9_eth_init(void) | ||
55 | { | ||
56 | memcpy(micro9_eth_data.dev_addr, | ||
57 | (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); | ||
58 | platform_device_register(µ9_eth_device); | ||
59 | } | ||
60 | |||
61 | static void __init micro9_init(void) | 31 | static void __init micro9_init(void) |
62 | { | 32 | { |
63 | micro9_eth_init(); | 33 | ep93xx_register_eth(µ9_eth_data, 1); |
64 | } | 34 | } |
65 | 35 | ||
66 | /* | 36 | /* |
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index c3cbff126d0c..b4aa4c054276 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c | |||
@@ -19,7 +19,7 @@ | |||
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/m48t86.h> | 21 | #include <linux/m48t86.h> |
22 | #include <asm/io.h> | 22 | #include <linux/io.h> |
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
25 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -161,28 +161,6 @@ static struct ep93xx_eth_data ts72xx_eth_data = { | |||
161 | .phy_id = 1, | 161 | .phy_id = 1, |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static struct resource ts72xx_eth_resource[] = { | ||
165 | { | ||
166 | .start = EP93XX_ETHERNET_PHYS_BASE, | ||
167 | .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, | ||
168 | .flags = IORESOURCE_MEM, | ||
169 | }, { | ||
170 | .start = IRQ_EP93XX_ETHERNET, | ||
171 | .end = IRQ_EP93XX_ETHERNET, | ||
172 | .flags = IORESOURCE_IRQ, | ||
173 | } | ||
174 | }; | ||
175 | |||
176 | static struct platform_device ts72xx_eth_device = { | ||
177 | .name = "ep93xx-eth", | ||
178 | .id = -1, | ||
179 | .dev = { | ||
180 | .platform_data = &ts72xx_eth_data, | ||
181 | }, | ||
182 | .num_resources = 2, | ||
183 | .resource = ts72xx_eth_resource, | ||
184 | }; | ||
185 | |||
186 | static void __init ts72xx_init_machine(void) | 164 | static void __init ts72xx_init_machine(void) |
187 | { | 165 | { |
188 | ep93xx_init_devices(); | 166 | ep93xx_init_devices(); |
@@ -190,9 +168,7 @@ static void __init ts72xx_init_machine(void) | |||
190 | platform_device_register(&ts72xx_flash); | 168 | platform_device_register(&ts72xx_flash); |
191 | platform_device_register(&ts72xx_rtc_device); | 169 | platform_device_register(&ts72xx_rtc_device); |
192 | 170 | ||
193 | memcpy(ts72xx_eth_data.dev_addr, | 171 | ep93xx_register_eth(&ts72xx_eth_data, 1); |
194 | (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); | ||
195 | platform_device_register(&ts72xx_eth_device); | ||
196 | } | 172 | } |
197 | 173 | ||
198 | MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") | 174 | MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") |
diff --git a/arch/arm/mach-footbridge/cats-hw.c b/arch/arm/mach-footbridge/cats-hw.c index c261472208cb..6a5b437ab86f 100644 --- a/arch/arm/mach-footbridge/cats-hw.c +++ b/arch/arm/mach-footbridge/cats-hw.c | |||
@@ -9,9 +9,9 @@ | |||
9 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
10 | #include <linux/init.h> | 10 | #include <linux/init.h> |
11 | #include <linux/screen_info.h> | 11 | #include <linux/screen_info.h> |
12 | #include <linux/io.h> | ||
12 | 13 | ||
13 | #include <asm/hardware/dec21285.h> | 14 | #include <asm/hardware/dec21285.h> |
14 | #include <asm/io.h> | ||
15 | #include <asm/mach-types.h> | 15 | #include <asm/mach-types.h> |
16 | #include <asm/setup.h> | 16 | #include <asm/setup.h> |
17 | 17 | ||
diff --git a/arch/arm/mach-footbridge/common.c b/arch/arm/mach-footbridge/common.c index b08ab507c052..818014e09f4a 100644 --- a/arch/arm/mach-footbridge/common.c +++ b/arch/arm/mach-footbridge/common.c | |||
@@ -13,11 +13,11 @@ | |||
13 | #include <linux/ioport.h> | 13 | #include <linux/ioport.h> |
14 | #include <linux/list.h> | 14 | #include <linux/list.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/io.h> | ||
16 | 17 | ||
17 | #include <asm/pgtable.h> | 18 | #include <asm/pgtable.h> |
18 | #include <asm/page.h> | 19 | #include <asm/page.h> |
19 | #include <asm/irq.h> | 20 | #include <asm/irq.h> |
20 | #include <asm/io.h> | ||
21 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
22 | #include <asm/setup.h> | 22 | #include <asm/setup.h> |
23 | #include <asm/hardware/dec21285.h> | 23 | #include <asm/hardware/dec21285.h> |
diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c index d0dc51e81338..d4c1e526f59c 100644 --- a/arch/arm/mach-footbridge/dc21285.c +++ b/arch/arm/mach-footbridge/dc21285.c | |||
@@ -16,8 +16,8 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/ioport.h> | 17 | #include <linux/ioport.h> |
18 | #include <linux/irq.h> | 18 | #include <linux/irq.h> |
19 | #include <linux/io.h> | ||
19 | 20 | ||
20 | #include <asm/io.h> | ||
21 | #include <asm/irq.h> | 21 | #include <asm/irq.h> |
22 | #include <asm/system.h> | 22 | #include <asm/system.h> |
23 | #include <asm/mach/pci.h> | 23 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-footbridge/dma.c b/arch/arm/mach-footbridge/dma.c index 1f9b09b8ed88..b653e9cfa3f7 100644 --- a/arch/arm/mach-footbridge/dma.c +++ b/arch/arm/mach-footbridge/dma.c | |||
@@ -11,9 +11,9 @@ | |||
11 | * ISA DMA controllers. | 11 | * ISA DMA controllers. |
12 | */ | 12 | */ |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/io.h> | ||
14 | 15 | ||
15 | #include <asm/dma.h> | 16 | #include <asm/dma.h> |
16 | #include <asm/io.h> | ||
17 | #include <asm/scatterlist.h> | 17 | #include <asm/scatterlist.h> |
18 | 18 | ||
19 | #include <asm/mach/dma.h> | 19 | #include <asm/mach/dma.h> |
diff --git a/arch/arm/mach-footbridge/include/mach/memory.h b/arch/arm/mach-footbridge/include/mach/memory.h index e9cae99dd1f9..6ae2f1a07ab9 100644 --- a/arch/arm/mach-footbridge/include/mach/memory.h +++ b/arch/arm/mach-footbridge/include/mach/memory.h | |||
@@ -42,10 +42,6 @@ extern unsigned long __bus_to_virt(unsigned long); | |||
42 | 42 | ||
43 | #endif | 43 | #endif |
44 | 44 | ||
45 | /* Task size and page offset at 3GB */ | ||
46 | #define TASK_SIZE UL(0xbf000000) | ||
47 | #define PAGE_OFFSET UL(0xc0000000) | ||
48 | |||
49 | /* | 45 | /* |
50 | * Cache flushing area. | 46 | * Cache flushing area. |
51 | */ | 47 | */ |
@@ -56,12 +52,6 @@ extern unsigned long __bus_to_virt(unsigned long); | |||
56 | */ | 52 | */ |
57 | #define PHYS_OFFSET UL(0x00000000) | 53 | #define PHYS_OFFSET UL(0x00000000) |
58 | 54 | ||
59 | /* | ||
60 | * This decides where the kernel will search for a free chunk of vm | ||
61 | * space during mmap's. | ||
62 | */ | ||
63 | #define TASK_UNMAPPED_BASE ((TASK_SIZE + 0x01000000) / 3) | ||
64 | |||
65 | #define FLUSH_BASE_PHYS 0x50000000 | 55 | #define FLUSH_BASE_PHYS 0x50000000 |
66 | 56 | ||
67 | #endif | 57 | #endif |
diff --git a/arch/arm/mach-footbridge/include/mach/system.h b/arch/arm/mach-footbridge/include/mach/system.h index 01c9f407f498..2db7f36bd6ca 100644 --- a/arch/arm/mach-footbridge/include/mach/system.h +++ b/arch/arm/mach-footbridge/include/mach/system.h | |||
@@ -7,8 +7,8 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/io.h> | ||
10 | #include <asm/hardware/dec21285.h> | 11 | #include <asm/hardware/dec21285.h> |
11 | #include <asm/io.h> | ||
12 | #include <mach/hardware.h> | 12 | #include <mach/hardware.h> |
13 | #include <asm/leds.h> | 13 | #include <asm/leds.h> |
14 | #include <asm/mach-types.h> | 14 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-footbridge/isa-irq.c b/arch/arm/mach-footbridge/isa-irq.c index 7132e522c366..62bb38f1369d 100644 --- a/arch/arm/mach-footbridge/isa-irq.c +++ b/arch/arm/mach-footbridge/isa-irq.c | |||
@@ -18,13 +18,13 @@ | |||
18 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
19 | #include <linux/list.h> | 19 | #include <linux/list.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <asm/mach/irq.h> | 23 | #include <asm/mach/irq.h> |
23 | 24 | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/hardware/dec21285.h> | 26 | #include <asm/hardware/dec21285.h> |
26 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
27 | #include <asm/io.h> | ||
28 | #include <asm/mach-types.h> | 28 | #include <asm/mach-types.h> |
29 | 29 | ||
30 | static void isa_mask_pic_lo_irq(unsigned int irq) | 30 | static void isa_mask_pic_lo_irq(unsigned int irq) |
diff --git a/arch/arm/mach-footbridge/isa-timer.c b/arch/arm/mach-footbridge/isa-timer.c index a764e01d3573..0c8390082fa8 100644 --- a/arch/arm/mach-footbridge/isa-timer.c +++ b/arch/arm/mach-footbridge/isa-timer.c | |||
@@ -7,8 +7,8 @@ | |||
7 | #include <linux/init.h> | 7 | #include <linux/init.h> |
8 | #include <linux/interrupt.h> | 8 | #include <linux/interrupt.h> |
9 | #include <linux/irq.h> | 9 | #include <linux/irq.h> |
10 | #include <linux/io.h> | ||
10 | 11 | ||
11 | #include <asm/io.h> | ||
12 | #include <asm/irq.h> | 12 | #include <asm/irq.h> |
13 | 13 | ||
14 | #include <asm/mach/time.h> | 14 | #include <asm/mach/time.h> |
diff --git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c index a1f381c64a30..00b0ddcac283 100644 --- a/arch/arm/mach-footbridge/netwinder-hw.c +++ b/arch/arm/mach-footbridge/netwinder-hw.c | |||
@@ -10,9 +10,9 @@ | |||
10 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
11 | #include <linux/delay.h> | 11 | #include <linux/delay.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/io.h> | ||
13 | 14 | ||
14 | #include <asm/hardware/dec21285.h> | 15 | #include <asm/hardware/dec21285.h> |
15 | #include <asm/io.h> | ||
16 | #include <asm/leds.h> | 16 | #include <asm/leds.h> |
17 | #include <asm/mach-types.h> | 17 | #include <asm/mach-types.h> |
18 | #include <asm/setup.h> | 18 | #include <asm/setup.h> |
diff --git a/arch/arm/mach-footbridge/time.c b/arch/arm/mach-footbridge/time.c index fd9a7c11d62d..216ed5c7404d 100644 --- a/arch/arm/mach-footbridge/time.c +++ b/arch/arm/mach-footbridge/time.c | |||
@@ -22,9 +22,9 @@ | |||
22 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
23 | #include <linux/mc146818rtc.h> | 23 | #include <linux/mc146818rtc.h> |
24 | #include <linux/bcd.h> | 24 | #include <linux/bcd.h> |
25 | #include <linux/io.h> | ||
25 | 26 | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | ||
28 | 28 | ||
29 | #include <asm/mach/time.h> | 29 | #include <asm/mach/time.h> |
30 | #include "common.h" | 30 | #include "common.h" |
diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c index b5f9741ae13c..3a410e3f1e5f 100644 --- a/arch/arm/mach-h720x/common.c +++ b/arch/arm/mach-h720x/common.c | |||
@@ -18,11 +18,11 @@ | |||
18 | #include <linux/mman.h> | 18 | #include <linux/mman.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <asm/page.h> | 23 | #include <asm/page.h> |
23 | #include <asm/pgtable.h> | 24 | #include <asm/pgtable.h> |
24 | #include <asm/dma.h> | 25 | #include <asm/dma.h> |
25 | #include <asm/io.h> | ||
26 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
28 | #include <asm/mach/irq.h> | 28 | #include <asm/mach/irq.h> |
diff --git a/arch/arm/mach-imx/clock.c b/arch/arm/mach-imx/clock.c index 4b4230db3765..7ec60fc91565 100644 --- a/arch/arm/mach-imx/clock.c +++ b/arch/arm/mach-imx/clock.c | |||
@@ -21,8 +21,8 @@ | |||
21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
22 | #include <linux/math64.h> | 22 | #include <linux/math64.h> |
23 | #include <linux/err.h> | 23 | #include <linux/err.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <asm/io.h> | ||
26 | #include <mach/imx-regs.h> | 26 | #include <mach/imx-regs.h> |
27 | 27 | ||
28 | /* | 28 | /* |
diff --git a/arch/arm/mach-imx/irq.c b/arch/arm/mach-imx/irq.c index 798f221eb3b7..2ce75625b417 100644 --- a/arch/arm/mach-imx/irq.c +++ b/arch/arm/mach-imx/irq.c | |||
@@ -26,10 +26,10 @@ | |||
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <linux/list.h> | 27 | #include <linux/list.h> |
28 | #include <linux/timer.h> | 28 | #include <linux/timer.h> |
29 | #include <linux/io.h> | ||
29 | 30 | ||
30 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | #include <asm/io.h> | ||
33 | 33 | ||
34 | #include <asm/mach/irq.h> | 34 | #include <asm/mach/irq.h> |
35 | 35 | ||
diff --git a/arch/arm/mach-imx/leds-mx1ads.c b/arch/arm/mach-imx/leds-mx1ads.c index af81621f689b..1d48f2762cbc 100644 --- a/arch/arm/mach-imx/leds-mx1ads.c +++ b/arch/arm/mach-imx/leds-mx1ads.c | |||
@@ -13,9 +13,9 @@ | |||
13 | 13 | ||
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/io.h> | ||
16 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
17 | #include <asm/system.h> | 18 | #include <asm/system.h> |
18 | #include <asm/io.h> | ||
19 | #include <asm/leds.h> | 19 | #include <asm/leds.h> |
20 | #include "leds.h" | 20 | #include "leds.h" |
21 | 21 | ||
diff --git a/arch/arm/mach-imx/time.c b/arch/arm/mach-imx/time.c index 08be3875c59e..a11765f5f23b 100644 --- a/arch/arm/mach-imx/time.c +++ b/arch/arm/mach-imx/time.c | |||
@@ -18,9 +18,9 @@ | |||
18 | #include <linux/clocksource.h> | 18 | #include <linux/clocksource.h> |
19 | #include <linux/clockchips.h> | 19 | #include <linux/clockchips.h> |
20 | #include <linux/clk.h> | 20 | #include <linux/clk.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/io.h> | ||
24 | #include <asm/leds.h> | 24 | #include <asm/leds.h> |
25 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
26 | #include <asm/mach/time.h> | 26 | #include <asm/mach/time.h> |
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c index 8bacf6d4d097..595b7392ee4e 100644 --- a/arch/arm/mach-integrator/core.c +++ b/arch/arm/mach-integrator/core.c | |||
@@ -19,10 +19,10 @@ | |||
19 | #include <linux/termios.h> | 19 | #include <linux/termios.h> |
20 | #include <linux/amba/bus.h> | 20 | #include <linux/amba/bus.h> |
21 | #include <linux/amba/serial.h> | 21 | #include <linux/amba/serial.h> |
22 | #include <linux/io.h> | ||
22 | 23 | ||
23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
24 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
25 | #include <asm/io.h> | ||
26 | #include <asm/hardware/arm_timer.h> | 26 | #include <asm/hardware/arm_timer.h> |
27 | #include <mach/cm.h> | 27 | #include <mach/cm.h> |
28 | #include <asm/system.h> | 28 | #include <asm/system.h> |
diff --git a/arch/arm/mach-integrator/cpu.c b/arch/arm/mach-integrator/cpu.c index 7c49d55e6b27..e4f72d202cc0 100644 --- a/arch/arm/mach-integrator/cpu.c +++ b/arch/arm/mach-integrator/cpu.c | |||
@@ -17,9 +17,9 @@ | |||
17 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
18 | #include <linux/smp.h> | 18 | #include <linux/smp.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/io.h> | ||
20 | 21 | ||
21 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
22 | #include <asm/io.h> | ||
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <asm/hardware/icst525.h> | 24 | #include <asm/hardware/icst525.h> |
25 | 25 | ||
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c index 3c8383dbe9e6..172299a78302 100644 --- a/arch/arm/mach-integrator/impd1.c +++ b/arch/arm/mach-integrator/impd1.c | |||
@@ -20,8 +20,8 @@ | |||
20 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
21 | #include <linux/amba/bus.h> | 21 | #include <linux/amba/bus.h> |
22 | #include <linux/amba/clcd.h> | 22 | #include <linux/amba/clcd.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/io.h> | ||
25 | #include <asm/hardware/icst525.h> | 25 | #include <asm/hardware/icst525.h> |
26 | #include <mach/lm.h> | 26 | #include <mach/lm.h> |
27 | #include <mach/impd1.h> | 27 | #include <mach/impd1.h> |
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c index 6e472b5f8f26..8138a7e24562 100644 --- a/arch/arm/mach-integrator/integrator_ap.c +++ b/arch/arm/mach-integrator/integrator_ap.c | |||
@@ -27,9 +27,9 @@ | |||
27 | #include <linux/sysdev.h> | 27 | #include <linux/sysdev.h> |
28 | #include <linux/amba/bus.h> | 28 | #include <linux/amba/bus.h> |
29 | #include <linux/amba/kmi.h> | 29 | #include <linux/amba/kmi.h> |
30 | #include <linux/io.h> | ||
30 | 31 | ||
31 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
32 | #include <asm/io.h> | ||
33 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
34 | #include <asm/setup.h> | 34 | #include <asm/setup.h> |
35 | #include <asm/param.h> /* HZ */ | 35 | #include <asm/param.h> /* HZ */ |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 6b99e9c258bd..c0eaf0a6f453 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -19,9 +19,9 @@ | |||
19 | #include <linux/amba/bus.h> | 19 | #include <linux/amba/bus.h> |
20 | #include <linux/amba/kmi.h> | 20 | #include <linux/amba/kmi.h> |
21 | #include <linux/amba/clcd.h> | 21 | #include <linux/amba/clcd.h> |
22 | #include <linux/io.h> | ||
22 | 23 | ||
23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
24 | #include <asm/io.h> | ||
25 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
26 | #include <asm/setup.h> | 26 | #include <asm/setup.h> |
27 | #include <asm/mach-types.h> | 27 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-integrator/leds.c b/arch/arm/mach-integrator/leds.c index 7bc6881434ec..8dcc823f4135 100644 --- a/arch/arm/mach-integrator/leds.c +++ b/arch/arm/mach-integrator/leds.c | |||
@@ -24,9 +24,9 @@ | |||
24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
25 | #include <linux/smp.h> | 25 | #include <linux/smp.h> |
26 | #include <linux/spinlock.h> | 26 | #include <linux/spinlock.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/leds.h> | 30 | #include <asm/leds.h> |
31 | #include <asm/system.h> | 31 | #include <asm/system.h> |
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c index 9f2b1ea8fb20..f1d72b225450 100644 --- a/arch/arm/mach-integrator/pci_v3.c +++ b/arch/arm/mach-integrator/pci_v3.c | |||
@@ -27,9 +27,9 @@ | |||
27 | #include <linux/interrupt.h> | 27 | #include <linux/interrupt.h> |
28 | #include <linux/spinlock.h> | 28 | #include <linux/spinlock.h> |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/io.h> | ||
30 | 31 | ||
31 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
32 | #include <asm/io.h> | ||
33 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
34 | #include <asm/system.h> | 34 | #include <asm/system.h> |
35 | #include <asm/mach/pci.h> | 35 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-iop13xx/include/mach/memory.h b/arch/arm/mach-iop13xx/include/mach/memory.h index e8b59d8f1bb9..b82602d529bf 100644 --- a/arch/arm/mach-iop13xx/include/mach/memory.h +++ b/arch/arm/mach-iop13xx/include/mach/memory.h | |||
@@ -7,9 +7,6 @@ | |||
7 | * Physical DRAM offset. | 7 | * Physical DRAM offset. |
8 | */ | 8 | */ |
9 | #define PHYS_OFFSET UL(0x00000000) | 9 | #define PHYS_OFFSET UL(0x00000000) |
10 | #define TASK_SIZE UL(0x3f000000) | ||
11 | #define PAGE_OFFSET UL(0x40000000) | ||
12 | #define TASK_UNMAPPED_BASE ((TASK_SIZE + 0x01000000) / 3) | ||
13 | 10 | ||
14 | #ifndef __ASSEMBLY__ | 11 | #ifndef __ASSEMBLY__ |
15 | 12 | ||
@@ -29,32 +26,52 @@ | |||
29 | 26 | ||
30 | /* RAM has 1:1 mapping on the PCIe/x Busses */ | 27 | /* RAM has 1:1 mapping on the PCIe/x Busses */ |
31 | #define __virt_to_bus(x) (__virt_to_phys(x)) | 28 | #define __virt_to_bus(x) (__virt_to_phys(x)) |
32 | #define __bus_to_virt(x) (__phys_to_virt(x)) | 29 | #define __bus_to_virt(x) (__phys_to_virt(x)) |
33 | 30 | ||
34 | #define virt_to_lbus(x) \ | 31 | static inline dma_addr_t __virt_to_lbus(unsigned long x) |
35 | (( ((void*)(x) >= (void*)IOP13XX_PMMR_V_START) && \ | 32 | { |
36 | ((void*)(x) < (void*)IOP13XX_PMMR_V_END) ) ? \ | 33 | return x + IOP13XX_PMMR_PHYS_MEM_BASE - IOP13XX_PMMR_VIRT_MEM_BASE; |
37 | ((x) - IOP13XX_PMMR_VIRT_MEM_BASE + IOP13XX_PMMR_PHYS_MEM_BASE) : \ | 34 | } |
38 | ((x) - PAGE_OFFSET + PHYS_OFFSET)) | ||
39 | 35 | ||
40 | #define lbus_to_virt(x) \ | 36 | static inline unsigned long __lbus_to_virt(dma_addr_t x) |
41 | (( ((x) >= IOP13XX_PMMR_P_START) && ((x) < IOP13XX_PMMR_P_END) ) ? \ | 37 | { |
42 | ((x) - IOP13XX_PMMR_PHYS_MEM_BASE + IOP13XX_PMMR_VIRT_MEM_BASE ) : \ | 38 | return x + IOP13XX_PMMR_VIRT_MEM_BASE - IOP13XX_PMMR_PHYS_MEM_BASE; |
43 | ((x) - PHYS_OFFSET + PAGE_OFFSET)) | 39 | } |
40 | |||
41 | #define __is_lbus_dma(a) \ | ||
42 | ((a) >= IOP13XX_PMMR_P_START && (a) < IOP13XX_PMMR_P_END) | ||
43 | |||
44 | #define __is_lbus_virt(a) \ | ||
45 | ((a) >= IOP13XX_PMMR_V_START && (a) < IOP13XX_PMMR_V_END) | ||
44 | 46 | ||
45 | /* Device is an lbus device if it is on the platform bus of the IOP13XX */ | 47 | /* Device is an lbus device if it is on the platform bus of the IOP13XX */ |
46 | #define is_lbus_device(dev) (dev &&\ | 48 | #define is_lbus_device(dev) \ |
47 | (strncmp(dev->bus->name, "platform", 8) == 0)) | 49 | (dev && strncmp(dev->bus->name, "platform", 8) == 0) |
48 | 50 | ||
49 | #define __arch_page_to_dma(dev, page) \ | 51 | #define __arch_dma_to_virt(dev, addr) \ |
50 | ({is_lbus_device(dev) ? (dma_addr_t)virt_to_lbus(page_address(page)) : \ | 52 | ({ \ |
51 | (dma_addr_t)__virt_to_bus(page_address(page));}) | 53 | unsigned long __virt; \ |
54 | dma_addr_t __dma = addr; \ | ||
55 | if (is_lbus_device(dev) && __is_lbus_dma(__dma)) \ | ||
56 | __virt = __lbus_to_virt(__dma); \ | ||
57 | else \ | ||
58 | __virt = __bus_to_virt(__dma); \ | ||
59 | (void *)__virt; \ | ||
60 | }) | ||
52 | 61 | ||
53 | #define __arch_dma_to_virt(dev, addr) \ | 62 | #define __arch_virt_to_dma(dev, addr) \ |
54 | ({is_lbus_device(dev) ? lbus_to_virt(addr) : __bus_to_virt(addr);}) | 63 | ({ \ |
64 | unsigned long __virt = (unsigned long)addr; \ | ||
65 | dma_addr_t __dma; \ | ||
66 | if (is_lbus_device(dev) && __is_lbus_virt(__virt)) \ | ||
67 | __dma = __virt_to_lbus(__virt); \ | ||
68 | else \ | ||
69 | __dma = __virt_to_bus(__virt); \ | ||
70 | __dma; \ | ||
71 | }) | ||
55 | 72 | ||
56 | #define __arch_virt_to_dma(dev, addr) \ | 73 | #define __arch_page_to_dma(dev, page) \ |
57 | ({is_lbus_device(dev) ? virt_to_lbus(addr) : __virt_to_bus(addr);}) | 74 | __arch_virt_to_dma(dev, page_address(page)) |
58 | 75 | ||
59 | #endif /* CONFIG_ARCH_IOP13XX */ | 76 | #endif /* CONFIG_ARCH_IOP13XX */ |
60 | #endif /* !ASSEMBLY */ | 77 | #endif /* !ASSEMBLY */ |
diff --git a/arch/arm/mach-iop13xx/include/mach/pci.h b/arch/arm/mach-iop13xx/include/mach/pci.h index 17b5515af8b1..59f42b535572 100644 --- a/arch/arm/mach-iop13xx/include/mach/pci.h +++ b/arch/arm/mach-iop13xx/include/mach/pci.h | |||
@@ -1,7 +1,7 @@ | |||
1 | #ifndef _IOP13XX_PCI_H_ | 1 | #ifndef _IOP13XX_PCI_H_ |
2 | #define _IOP13XX_PCI_H_ | 2 | #define _IOP13XX_PCI_H_ |
3 | #include <linux/io.h> | ||
3 | #include <mach/irqs.h> | 4 | #include <mach/irqs.h> |
4 | #include <asm/io.h> | ||
5 | 5 | ||
6 | struct pci_sys_data; | 6 | struct pci_sys_data; |
7 | struct hw_pci; | 7 | struct hw_pci; |
diff --git a/arch/arm/mach-iop13xx/io.c b/arch/arm/mach-iop13xx/io.c index 26cfa318142c..529580997814 100644 --- a/arch/arm/mach-iop13xx/io.c +++ b/arch/arm/mach-iop13xx/io.c | |||
@@ -18,8 +18,8 @@ | |||
18 | */ | 18 | */ |
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
21 | #include <linux/io.h> | ||
21 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
22 | #include <asm/io.h> | ||
23 | 23 | ||
24 | void * __iomem __iop13xx_io(unsigned long io_addr) | 24 | void * __iomem __iop13xx_io(unsigned long io_addr) |
25 | { | 25 | { |
diff --git a/arch/arm/mach-iop13xx/setup.c b/arch/arm/mach-iop13xx/setup.c index b17ccc8cb471..cfd4d2e6dacd 100644 --- a/arch/arm/mach-iop13xx/setup.c +++ b/arch/arm/mach-iop13xx/setup.c | |||
@@ -18,13 +18,13 @@ | |||
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/serial_8250.h> | 20 | #include <linux/serial_8250.h> |
21 | #include <linux/io.h> | ||
21 | #ifdef CONFIG_MTD_PHYSMAP | 22 | #ifdef CONFIG_MTD_PHYSMAP |
22 | #include <linux/mtd/physmap.h> | 23 | #include <linux/mtd/physmap.h> |
23 | #endif | 24 | #endif |
24 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
27 | #include <asm/io.h> | ||
28 | #include <asm/hardware/iop_adma.h> | 28 | #include <asm/hardware/iop_adma.h> |
29 | 29 | ||
30 | #define IOP13XX_UART_XTAL 33334000 | 30 | #define IOP13XX_UART_XTAL 33334000 |
diff --git a/arch/arm/mach-iop13xx/tpmi.c b/arch/arm/mach-iop13xx/tpmi.c index 2476347ea62f..c6af1e1bee32 100644 --- a/arch/arm/mach-iop13xx/tpmi.c +++ b/arch/arm/mach-iop13xx/tpmi.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
23 | #include <linux/dma-mapping.h> | 23 | #include <linux/dma-mapping.h> |
24 | #include <asm/io.h> | 24 | #include <linux/io.h> |
25 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
26 | #include <asm/sizes.h> | 26 | #include <asm/sizes.h> |
27 | 27 | ||
diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c index 45d61276d233..a9c2dfdb2507 100644 --- a/arch/arm/mach-iop32x/glantank.c +++ b/arch/arm/mach-iop32x/glantank.c | |||
@@ -25,8 +25,8 @@ | |||
25 | #include <linux/mtd/physmap.h> | 25 | #include <linux/mtd/physmap.h> |
26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
27 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
28 | #include <linux/io.h> | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
32 | #include <asm/mach/map.h> | 32 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-iop32x/iq31244.c b/arch/arm/mach-iop32x/iq31244.c index 082818aaa205..dd1cd9904518 100644 --- a/arch/arm/mach-iop32x/iq31244.c +++ b/arch/arm/mach-iop32x/iq31244.c | |||
@@ -26,8 +26,9 @@ | |||
26 | #include <linux/serial_8250.h> | 26 | #include <linux/serial_8250.h> |
27 | #include <linux/mtd/physmap.h> | 27 | #include <linux/mtd/physmap.h> |
28 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
29 | #include <linux/io.h> | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/io.h> | 31 | #include <asm/cputype.h> |
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
33 | #include <asm/mach/map.h> | 34 | #include <asm/mach/map.h> |
@@ -49,8 +50,7 @@ static int force_ep80219; | |||
49 | 50 | ||
50 | static int is_80219(void) | 51 | static int is_80219(void) |
51 | { | 52 | { |
52 | extern int processor_id; | 53 | return !!((read_cpuid_id() & 0xffffffe0) == 0x69052e20); |
53 | return !!((processor_id & 0xffffffe0) == 0x69052e20); | ||
54 | } | 54 | } |
55 | 55 | ||
56 | static int is_ep80219(void) | 56 | static int is_ep80219(void) |
diff --git a/arch/arm/mach-iop32x/iq80321.c b/arch/arm/mach-iop32x/iq80321.c index d735539808b4..fbe27798759d 100644 --- a/arch/arm/mach-iop32x/iq80321.c +++ b/arch/arm/mach-iop32x/iq80321.c | |||
@@ -23,8 +23,8 @@ | |||
23 | #include <linux/serial_8250.h> | 23 | #include <linux/serial_8250.h> |
24 | #include <linux/mtd/physmap.h> | 24 | #include <linux/mtd/physmap.h> |
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/io.h> | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | ||
28 | #include <asm/irq.h> | 28 | #include <asm/irq.h> |
29 | #include <asm/mach/arch.h> | 29 | #include <asm/mach/arch.h> |
30 | #include <asm/mach/map.h> | 30 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-iop32x/n2100.c b/arch/arm/mach-iop32x/n2100.c index 3173f9c5835d..d2e427899729 100644 --- a/arch/arm/mach-iop32x/n2100.c +++ b/arch/arm/mach-iop32x/n2100.c | |||
@@ -30,8 +30,8 @@ | |||
30 | #include <linux/i2c.h> | 30 | #include <linux/i2c.h> |
31 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
32 | #include <linux/reboot.h> | 32 | #include <linux/reboot.h> |
33 | #include <linux/io.h> | ||
33 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
34 | #include <asm/io.h> | ||
35 | #include <asm/irq.h> | 35 | #include <asm/irq.h> |
36 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
37 | #include <asm/mach/map.h> | 37 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c index c7d99f9fafed..d51e10cddf20 100644 --- a/arch/arm/mach-iop33x/iq80331.c +++ b/arch/arm/mach-iop33x/iq80331.c | |||
@@ -22,8 +22,8 @@ | |||
22 | #include <linux/serial_8250.h> | 22 | #include <linux/serial_8250.h> |
23 | #include <linux/mtd/physmap.h> | 23 | #include <linux/mtd/physmap.h> |
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/io.h> | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
28 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
29 | #include <asm/mach/map.h> | 29 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-iop33x/iq80332.c b/arch/arm/mach-iop33x/iq80332.c index af616c5f4fb2..92fb44cdbcad 100644 --- a/arch/arm/mach-iop33x/iq80332.c +++ b/arch/arm/mach-iop33x/iq80332.c | |||
@@ -22,8 +22,8 @@ | |||
22 | #include <linux/serial_8250.h> | 22 | #include <linux/serial_8250.h> |
23 | #include <linux/mtd/physmap.h> | 23 | #include <linux/mtd/physmap.h> |
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/io.h> | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
28 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
29 | #include <asm/mach/map.h> | 29 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-iop33x/uart.c b/arch/arm/mach-iop33x/uart.c index 8c21870fa808..cdae24e46eea 100644 --- a/arch/arm/mach-iop33x/uart.c +++ b/arch/arm/mach-iop33x/uart.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/serial.h> | 17 | #include <linux/serial.h> |
18 | #include <linux/tty.h> | 18 | #include <linux/tty.h> |
19 | #include <linux/serial_8250.h> | 19 | #include <linux/serial_8250.h> |
20 | #include <asm/io.h> | 20 | #include <linux/io.h> |
21 | #include <asm/pgtable.h> | 21 | #include <asm/pgtable.h> |
22 | #include <asm/page.h> | 22 | #include <asm/page.h> |
23 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index c62ed655c1a7..279e431e0379 100644 --- a/arch/arm/mach-ixp2000/enp2611.c +++ b/arch/arm/mach-ixp2000/enp2611.c | |||
@@ -32,8 +32,8 @@ | |||
32 | #include <linux/tty.h> | 32 | #include <linux/tty.h> |
33 | #include <linux/serial_core.h> | 33 | #include <linux/serial_core.h> |
34 | #include <linux/platform_device.h> | 34 | #include <linux/platform_device.h> |
35 | #include <linux/io.h> | ||
35 | 36 | ||
36 | #include <asm/io.h> | ||
37 | #include <asm/irq.h> | 37 | #include <asm/irq.h> |
38 | #include <asm/pgtable.h> | 38 | #include <asm/pgtable.h> |
39 | #include <asm/page.h> | 39 | #include <asm/page.h> |
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c index c673b9ef9f69..4467c4224d73 100644 --- a/arch/arm/mach-ixp2000/ixdp2400.c +++ b/arch/arm/mach-ixp2000/ixdp2400.c | |||
@@ -25,8 +25,8 @@ | |||
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | #include <asm/pgtable.h> | 31 | #include <asm/pgtable.h> |
32 | #include <asm/page.h> | 32 | #include <asm/page.h> |
diff --git a/arch/arm/mach-ixp2000/ixdp2800.c b/arch/arm/mach-ixp2000/ixdp2800.c index 6715b50829a6..94f68ba9ea50 100644 --- a/arch/arm/mach-ixp2000/ixdp2800.c +++ b/arch/arm/mach-ixp2000/ixdp2800.c | |||
@@ -25,8 +25,8 @@ | |||
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | #include <asm/pgtable.h> | 31 | #include <asm/pgtable.h> |
32 | #include <asm/page.h> | 32 | #include <asm/page.h> |
diff --git a/arch/arm/mach-ixp2000/ixdp2x00.c b/arch/arm/mach-ixp2000/ixdp2x00.c index 5a781fd9757a..4debb9ff056c 100644 --- a/arch/arm/mach-ixp2000/ixdp2x00.c +++ b/arch/arm/mach-ixp2000/ixdp2x00.c | |||
@@ -25,8 +25,8 @@ | |||
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | #include <asm/pgtable.h> | 31 | #include <asm/pgtable.h> |
32 | #include <asm/page.h> | 32 | #include <asm/page.h> |
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index 78a2341dee2c..c7042725dc80 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
@@ -30,8 +30,8 @@ | |||
30 | #include <linux/serial_core.h> | 30 | #include <linux/serial_core.h> |
31 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
32 | #include <linux/serial_8250.h> | 32 | #include <linux/serial_8250.h> |
33 | #include <linux/io.h> | ||
33 | 34 | ||
34 | #include <asm/io.h> | ||
35 | #include <asm/irq.h> | 35 | #include <asm/irq.h> |
36 | #include <asm/pgtable.h> | 36 | #include <asm/pgtable.h> |
37 | #include <asm/page.h> | 37 | #include <asm/page.h> |
diff --git a/arch/arm/mach-ixp2000/pci.c b/arch/arm/mach-ixp2000/pci.c index 03d916fbe531..60e9fd08ab80 100644 --- a/arch/arm/mach-ixp2000/pci.c +++ b/arch/arm/mach-ixp2000/pci.c | |||
@@ -24,8 +24,8 @@ | |||
24 | #include <linux/ioport.h> | 24 | #include <linux/ioport.h> |
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/system.h> | 30 | #include <asm/system.h> |
31 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-ixp23xx/pci.c b/arch/arm/mach-ixp23xx/pci.c index 701d60aa0efd..59022becb134 100644 --- a/arch/arm/mach-ixp23xx/pci.c +++ b/arch/arm/mach-ixp23xx/pci.c | |||
@@ -25,8 +25,8 @@ | |||
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | #include <asm/sizes.h> | 31 | #include <asm/sizes.h> |
32 | #include <asm/system.h> | 32 | #include <asm/system.h> |
diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c index 192538a04575..d816c51320c7 100644 --- a/arch/arm/mach-ixp4xx/common-pci.c +++ b/arch/arm/mach-ixp4xx/common-pci.c | |||
@@ -25,9 +25,10 @@ | |||
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/device.h> | 27 | #include <linux/device.h> |
28 | #include <linux/io.h> | ||
28 | #include <asm/dma-mapping.h> | 29 | #include <asm/dma-mapping.h> |
29 | 30 | ||
30 | #include <asm/io.h> | 31 | #include <asm/cputype.h> |
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | #include <asm/sizes.h> | 33 | #include <asm/sizes.h> |
33 | #include <asm/system.h> | 34 | #include <asm/system.h> |
@@ -366,15 +367,13 @@ void __init ixp4xx_adjust_zones(int node, unsigned long *zone_size, | |||
366 | 367 | ||
367 | void __init ixp4xx_pci_preinit(void) | 368 | void __init ixp4xx_pci_preinit(void) |
368 | { | 369 | { |
369 | unsigned long processor_id; | 370 | unsigned long cpuid = read_cpuid_id(); |
370 | |||
371 | asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :); | ||
372 | 371 | ||
373 | /* | 372 | /* |
374 | * Determine which PCI read method to use. | 373 | * Determine which PCI read method to use. |
375 | * Rev 0 IXP425 requires workaround. | 374 | * Rev 0 IXP425 requires workaround. |
376 | */ | 375 | */ |
377 | if (!(processor_id & 0xf) && cpu_is_ixp42x()) { | 376 | if (!(cpuid & 0xf) && cpu_is_ixp42x()) { |
378 | printk("PCI: IXP42x A0 silicon detected - " | 377 | printk("PCI: IXP42x A0 silicon detected - " |
379 | "PCI Non-Prefetch Workaround Enabled\n"); | 378 | "PCI Non-Prefetch Workaround Enabled\n"); |
380 | ixp4xx_pci_read = ixp4xx_pci_read_errata; | 379 | ixp4xx_pci_read = ixp4xx_pci_read_errata; |
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index 58bd2842a6f1..7766f469456b 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c | |||
@@ -28,11 +28,11 @@ | |||
28 | #include <linux/timex.h> | 28 | #include <linux/timex.h> |
29 | #include <linux/clocksource.h> | 29 | #include <linux/clocksource.h> |
30 | #include <linux/clockchips.h> | 30 | #include <linux/clockchips.h> |
31 | #include <linux/io.h> | ||
31 | 32 | ||
32 | #include <mach/udc.h> | 33 | #include <mach/udc.h> |
33 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
34 | #include <asm/uaccess.h> | 35 | #include <asm/uaccess.h> |
35 | #include <asm/io.h> | ||
36 | #include <asm/pgtable.h> | 36 | #include <asm/pgtable.h> |
37 | #include <asm/page.h> | 37 | #include <asm/page.h> |
38 | #include <asm/irq.h> | 38 | #include <asm/irq.h> |
diff --git a/arch/arm/mach-ixp4xx/fsg-setup.c b/arch/arm/mach-ixp4xx/fsg-setup.c index 501dfdcc39fe..e7c6386782ed 100644 --- a/arch/arm/mach-ixp4xx/fsg-setup.c +++ b/arch/arm/mach-ixp4xx/fsg-setup.c | |||
@@ -23,11 +23,11 @@ | |||
23 | #include <linux/reboot.h> | 23 | #include <linux/reboot.h> |
24 | #include <linux/i2c.h> | 24 | #include <linux/i2c.h> |
25 | #include <linux/i2c-gpio.h> | 25 | #include <linux/i2c-gpio.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <asm/mach-types.h> | 28 | #include <asm/mach-types.h> |
28 | #include <asm/mach/arch.h> | 29 | #include <asm/mach/arch.h> |
29 | #include <asm/mach/flash.h> | 30 | #include <asm/mach/flash.h> |
30 | #include <asm/io.h> | ||
31 | #include <asm/gpio.h> | 31 | #include <asm/gpio.h> |
32 | 32 | ||
33 | static struct flash_platform_data fsg_flash_data = { | 33 | static struct flash_platform_data fsg_flash_data = { |
diff --git a/arch/arm/mach-ixp4xx/include/mach/cpu.h b/arch/arm/mach-ixp4xx/include/mach/cpu.h index ff8aa2393bf9..51bd69c46d94 100644 --- a/arch/arm/mach-ixp4xx/include/mach/cpu.h +++ b/arch/arm/mach-ixp4xx/include/mach/cpu.h | |||
@@ -14,18 +14,19 @@ | |||
14 | #ifndef __ASM_ARCH_CPU_H__ | 14 | #ifndef __ASM_ARCH_CPU_H__ |
15 | #define __ASM_ARCH_CPU_H__ | 15 | #define __ASM_ARCH_CPU_H__ |
16 | 16 | ||
17 | extern unsigned int processor_id; | 17 | #include <asm/cputype.h> |
18 | |||
18 | /* Processor id value in CP15 Register 0 */ | 19 | /* Processor id value in CP15 Register 0 */ |
19 | #define IXP425_PROCESSOR_ID_VALUE 0x690541c0 | 20 | #define IXP425_PROCESSOR_ID_VALUE 0x690541c0 |
20 | #define IXP435_PROCESSOR_ID_VALUE 0x69054040 | 21 | #define IXP435_PROCESSOR_ID_VALUE 0x69054040 |
21 | #define IXP465_PROCESSOR_ID_VALUE 0x69054200 | 22 | #define IXP465_PROCESSOR_ID_VALUE 0x69054200 |
22 | #define IXP4XX_PROCESSOR_ID_MASK 0xfffffff0 | 23 | #define IXP4XX_PROCESSOR_ID_MASK 0xfffffff0 |
23 | 24 | ||
24 | #define cpu_is_ixp42x() ((processor_id & IXP4XX_PROCESSOR_ID_MASK) == \ | 25 | #define cpu_is_ixp42x() ((read_cpuid_id() & IXP4XX_PROCESSOR_ID_MASK) == \ |
25 | IXP425_PROCESSOR_ID_VALUE) | 26 | IXP425_PROCESSOR_ID_VALUE) |
26 | #define cpu_is_ixp43x() ((processor_id & IXP4XX_PROCESSOR_ID_MASK) == \ | 27 | #define cpu_is_ixp43x() ((read_cpuid_id() & IXP4XX_PROCESSOR_ID_MASK) == \ |
27 | IXP435_PROCESSOR_ID_VALUE) | 28 | IXP435_PROCESSOR_ID_VALUE) |
28 | #define cpu_is_ixp46x() ((processor_id & IXP4XX_PROCESSOR_ID_MASK) == \ | 29 | #define cpu_is_ixp46x() ((read_cpuid_id() & IXP4XX_PROCESSOR_ID_MASK) == \ |
29 | IXP465_PROCESSOR_ID_VALUE) | 30 | IXP465_PROCESSOR_ID_VALUE) |
30 | 31 | ||
31 | static inline u32 ixp4xx_read_feature_bits(void) | 32 | static inline u32 ixp4xx_read_feature_bits(void) |
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c index 9b2d2ec14c80..f4a0c1bc1331 100644 --- a/arch/arm/mach-ixp4xx/ixdp425-setup.c +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/mtd/mtd.h> | 20 | #include <linux/mtd/mtd.h> |
21 | #include <linux/mtd/nand.h> | 21 | #include <linux/mtd/nand.h> |
22 | #include <linux/mtd/partitions.h> | 22 | #include <linux/mtd/partitions.h> |
23 | #include <linux/delay.h> | ||
23 | 24 | ||
24 | #include <asm/types.h> | 25 | #include <asm/types.h> |
25 | #include <asm/setup.h> | 26 | #include <asm/setup.h> |
@@ -29,7 +30,6 @@ | |||
29 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
30 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
31 | #include <asm/mach/flash.h> | 32 | #include <asm/mach/flash.h> |
32 | #include <asm/delay.h> | ||
33 | 33 | ||
34 | static struct flash_platform_data ixdp425_flash_data = { | 34 | static struct flash_platform_data ixdp425_flash_data = { |
35 | .map_name = "cfi_probe", | 35 | .map_name = "cfi_probe", |
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c index 84b5e62a9c0a..0acd95ecf27e 100644 --- a/arch/arm/mach-ixp4xx/nas100d-setup.c +++ b/arch/arm/mach-ixp4xx/nas100d-setup.c | |||
@@ -28,11 +28,11 @@ | |||
28 | #include <linux/reboot.h> | 28 | #include <linux/reboot.h> |
29 | #include <linux/i2c.h> | 29 | #include <linux/i2c.h> |
30 | #include <linux/i2c-gpio.h> | 30 | #include <linux/i2c-gpio.h> |
31 | #include <linux/io.h> | ||
31 | 32 | ||
32 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
33 | #include <asm/mach/arch.h> | 34 | #include <asm/mach/arch.h> |
34 | #include <asm/mach/flash.h> | 35 | #include <asm/mach/flash.h> |
35 | #include <asm/io.h> | ||
36 | #include <asm/gpio.h> | 36 | #include <asm/gpio.h> |
37 | 37 | ||
38 | static struct flash_platform_data nas100d_flash_data = { | 38 | static struct flash_platform_data nas100d_flash_data = { |
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c index a48a6655b887..bc9d920ae54f 100644 --- a/arch/arm/mach-ixp4xx/nslu2-setup.c +++ b/arch/arm/mach-ixp4xx/nslu2-setup.c | |||
@@ -25,12 +25,12 @@ | |||
25 | #include <linux/reboot.h> | 25 | #include <linux/reboot.h> |
26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
27 | #include <linux/i2c-gpio.h> | 27 | #include <linux/i2c-gpio.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
30 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
31 | #include <asm/mach/flash.h> | 32 | #include <asm/mach/flash.h> |
32 | #include <asm/mach/time.h> | 33 | #include <asm/mach/time.h> |
33 | #include <asm/io.h> | ||
34 | #include <asm/gpio.h> | 34 | #include <asm/gpio.h> |
35 | 35 | ||
36 | static struct flash_platform_data nslu2_flash_data = { | 36 | static struct flash_platform_data nslu2_flash_data = { |
diff --git a/arch/arm/mach-ks8695/cpu.c b/arch/arm/mach-ks8695/cpu.c index c6c08e800233..7f3f24053a00 100644 --- a/arch/arm/mach-ks8695/cpu.c +++ b/arch/arm/mach-ks8695/cpu.c | |||
@@ -24,9 +24,9 @@ | |||
24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
31 | #include <asm/mach/map.h> | 31 | #include <asm/mach/map.h> |
32 | 32 | ||
diff --git a/arch/arm/mach-ks8695/gpio.c b/arch/arm/mach-ks8695/gpio.c index 3624e65cd89b..9aecf0c4b8b1 100644 --- a/arch/arm/mach-ks8695/gpio.c +++ b/arch/arm/mach-ks8695/gpio.c | |||
@@ -23,8 +23,8 @@ | |||
23 | #include <linux/debugfs.h> | 23 | #include <linux/debugfs.h> |
24 | #include <linux/seq_file.h> | 24 | #include <linux/seq_file.h> |
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <asm/io.h> | ||
28 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
29 | #include <asm/mach/irq.h> | 29 | #include <asm/mach/irq.h> |
30 | 30 | ||
@@ -72,7 +72,7 @@ int __init_or_module ks8695_gpio_interrupt(unsigned int pin, unsigned int type) | |||
72 | 72 | ||
73 | /* set pin as input */ | 73 | /* set pin as input */ |
74 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); | 74 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); |
75 | x &= ~IOPM_(pin); | 75 | x &= ~IOPM(pin); |
76 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); | 76 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); |
77 | 77 | ||
78 | local_irq_restore(flags); | 78 | local_irq_restore(flags); |
@@ -108,7 +108,7 @@ int __init_or_module gpio_direction_input(unsigned int pin) | |||
108 | 108 | ||
109 | /* set pin as input */ | 109 | /* set pin as input */ |
110 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); | 110 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); |
111 | x &= ~IOPM_(pin); | 111 | x &= ~IOPM(pin); |
112 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); | 112 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); |
113 | 113 | ||
114 | local_irq_restore(flags); | 114 | local_irq_restore(flags); |
@@ -136,14 +136,14 @@ int __init_or_module gpio_direction_output(unsigned int pin, unsigned int state) | |||
136 | /* set line state */ | 136 | /* set line state */ |
137 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); | 137 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); |
138 | if (state) | 138 | if (state) |
139 | x |= (1 << pin); | 139 | x |= IOPD(pin); |
140 | else | 140 | else |
141 | x &= ~(1 << pin); | 141 | x &= ~IOPD(pin); |
142 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD); | 142 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD); |
143 | 143 | ||
144 | /* set pin as output */ | 144 | /* set pin as output */ |
145 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); | 145 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); |
146 | x |= IOPM_(pin); | 146 | x |= IOPM(pin); |
147 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); | 147 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); |
148 | 148 | ||
149 | local_irq_restore(flags); | 149 | local_irq_restore(flags); |
@@ -168,9 +168,9 @@ void gpio_set_value(unsigned int pin, unsigned int state) | |||
168 | /* set output line state */ | 168 | /* set output line state */ |
169 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); | 169 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); |
170 | if (state) | 170 | if (state) |
171 | x |= (1 << pin); | 171 | x |= IOPD(pin); |
172 | else | 172 | else |
173 | x &= ~(1 << pin); | 173 | x &= ~IOPD(pin); |
174 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD); | 174 | __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD); |
175 | 175 | ||
176 | local_irq_restore(flags); | 176 | local_irq_restore(flags); |
@@ -189,7 +189,7 @@ int gpio_get_value(unsigned int pin) | |||
189 | return -EINVAL; | 189 | return -EINVAL; |
190 | 190 | ||
191 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); | 191 | x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); |
192 | return (x & (1 << pin)) != 0; | 192 | return (x & IOPD(pin)) != 0; |
193 | } | 193 | } |
194 | EXPORT_SYMBOL(gpio_get_value); | 194 | EXPORT_SYMBOL(gpio_get_value); |
195 | 195 | ||
@@ -240,7 +240,7 @@ static int ks8695_gpio_show(struct seq_file *s, void *unused) | |||
240 | for (i = KS8695_GPIO_0; i <= KS8695_GPIO_15 ; i++) { | 240 | for (i = KS8695_GPIO_0; i <= KS8695_GPIO_15 ; i++) { |
241 | seq_printf(s, "%i:\t", i); | 241 | seq_printf(s, "%i:\t", i); |
242 | 242 | ||
243 | seq_printf(s, "%s\t", (mode & IOPM_(i)) ? "Output" : "Input"); | 243 | seq_printf(s, "%s\t", (mode & IOPM(i)) ? "Output" : "Input"); |
244 | 244 | ||
245 | if (i <= KS8695_GPIO_3) { | 245 | if (i <= KS8695_GPIO_3) { |
246 | if (ctrl & enable[i]) { | 246 | if (ctrl & enable[i]) { |
@@ -273,7 +273,7 @@ static int ks8695_gpio_show(struct seq_file *s, void *unused) | |||
273 | 273 | ||
274 | seq_printf(s, "\t"); | 274 | seq_printf(s, "\t"); |
275 | 275 | ||
276 | seq_printf(s, "%i\n", (data & IOPD_(i)) ? 1 : 0); | 276 | seq_printf(s, "%i\n", (data & IOPD(i)) ? 1 : 0); |
277 | } | 277 | } |
278 | return 0; | 278 | return 0; |
279 | } | 279 | } |
diff --git a/arch/arm/mach-ks8695/include/mach/memory.h b/arch/arm/mach-ks8695/include/mach/memory.h index dadbe66cb75c..8fbc4c76c38b 100644 --- a/arch/arm/mach-ks8695/include/mach/memory.h +++ b/arch/arm/mach-ks8695/include/mach/memory.h | |||
@@ -31,8 +31,8 @@ | |||
31 | /* Platform-bus mapping */ | 31 | /* Platform-bus mapping */ |
32 | extern struct bus_type platform_bus_type; | 32 | extern struct bus_type platform_bus_type; |
33 | #define is_lbus_device(dev) (dev && dev->bus == &platform_bus_type) | 33 | #define is_lbus_device(dev) (dev && dev->bus == &platform_bus_type) |
34 | #define __arch_dma_to_virt(dev, x) ({ is_lbus_device(dev) ? \ | 34 | #define __arch_dma_to_virt(dev, x) ({ (void *) (is_lbus_device(dev) ? \ |
35 | __phys_to_virt(x) : __bus_to_virt(x); }) | 35 | __phys_to_virt(x) : __bus_to_virt(x)); }) |
36 | #define __arch_virt_to_dma(dev, x) ({ is_lbus_device(dev) ? \ | 36 | #define __arch_virt_to_dma(dev, x) ({ is_lbus_device(dev) ? \ |
37 | (dma_addr_t)__virt_to_phys(x) : (dma_addr_t)__virt_to_bus(x); }) | 37 | (dma_addr_t)__virt_to_phys(x) : (dma_addr_t)__virt_to_bus(x); }) |
38 | #define __arch_page_to_dma(dev, x) __arch_virt_to_dma(dev, page_address(x)) | 38 | #define __arch_page_to_dma(dev, x) __arch_virt_to_dma(dev, page_address(x)) |
diff --git a/arch/arm/mach-ks8695/include/mach/regs-gpio.h b/arch/arm/mach-ks8695/include/mach/regs-gpio.h index 0df6fe61d1ce..90614a7d0548 100644 --- a/arch/arm/mach-ks8695/include/mach/regs-gpio.h +++ b/arch/arm/mach-ks8695/include/mach/regs-gpio.h | |||
@@ -24,7 +24,7 @@ | |||
24 | 24 | ||
25 | 25 | ||
26 | /* Port Mode Register */ | 26 | /* Port Mode Register */ |
27 | #define IOPM_(x) (1 << (x)) /* Mode for GPIO Pin x */ | 27 | #define IOPM(x) (1 << (x)) /* Mode for GPIO Pin x */ |
28 | 28 | ||
29 | /* Port Control Register */ | 29 | /* Port Control Register */ |
30 | #define IOPC_IOTIM1EN (1 << 17) /* GPIO Pin for Timer1 Enable */ | 30 | #define IOPC_IOTIM1EN (1 << 17) /* GPIO Pin for Timer1 Enable */ |
@@ -50,6 +50,6 @@ | |||
50 | #define IOPC_TM_EDGE (6) /* Both Edge Detection */ | 50 | #define IOPC_TM_EDGE (6) /* Both Edge Detection */ |
51 | 51 | ||
52 | /* Port Data Register */ | 52 | /* Port Data Register */ |
53 | #define IOPD_(x) (1 << (x)) /* Signal Level of GPIO Pin x */ | 53 | #define IOPD(x) (1 << (x)) /* Signal Level of GPIO Pin x */ |
54 | 54 | ||
55 | #endif | 55 | #endif |
diff --git a/arch/arm/mach-ks8695/include/mach/regs-lan.h b/arch/arm/mach-ks8695/include/mach/regs-lan.h index 9ef409901e76..82c5f3791afb 100644 --- a/arch/arm/mach-ks8695/include/mach/regs-lan.h +++ b/arch/arm/mach-ks8695/include/mach/regs-lan.h | |||
@@ -29,8 +29,8 @@ | |||
29 | #define KS8695_LRDLB (0x14) /* Receive Descriptor List Base Address */ | 29 | #define KS8695_LRDLB (0x14) /* Receive Descriptor List Base Address */ |
30 | #define KS8695_LMAL (0x18) /* MAC Station Address Low */ | 30 | #define KS8695_LMAL (0x18) /* MAC Station Address Low */ |
31 | #define KS8695_LMAH (0x1c) /* MAC Station Address High */ | 31 | #define KS8695_LMAH (0x1c) /* MAC Station Address High */ |
32 | #define KS8695_LMAAL_(n) (0x80 + ((n)*8)) /* MAC Additional Station Address (0..15) Low */ | 32 | #define KS8695_LMAAL(n) (0x80 + ((n)*8)) /* MAC Additional Station Address (0..15) Low */ |
33 | #define KS8695_LMAAH_(n) (0x84 + ((n)*8)) /* MAC Additional Station Address (0..15) High */ | 33 | #define KS8695_LMAAH(n) (0x84 + ((n)*8)) /* MAC Additional Station Address (0..15) High */ |
34 | 34 | ||
35 | 35 | ||
36 | /* DMA Transmit Control Register */ | 36 | /* DMA Transmit Control Register */ |
diff --git a/arch/arm/mach-ks8695/include/mach/regs-wan.h b/arch/arm/mach-ks8695/include/mach/regs-wan.h index eb494ec6e956..c475bed22b8e 100644 --- a/arch/arm/mach-ks8695/include/mach/regs-wan.h +++ b/arch/arm/mach-ks8695/include/mach/regs-wan.h | |||
@@ -29,8 +29,8 @@ | |||
29 | #define KS8695_WRDLB (0x14) /* Receive Descriptor List Base Address */ | 29 | #define KS8695_WRDLB (0x14) /* Receive Descriptor List Base Address */ |
30 | #define KS8695_WMAL (0x18) /* MAC Station Address Low */ | 30 | #define KS8695_WMAL (0x18) /* MAC Station Address Low */ |
31 | #define KS8695_WMAH (0x1c) /* MAC Station Address High */ | 31 | #define KS8695_WMAH (0x1c) /* MAC Station Address High */ |
32 | #define KS8695_WMAAL_(n) (0x80 + ((n)*8)) /* MAC Additional Station Address (0..15) Low */ | 32 | #define KS8695_WMAAL(n) (0x80 + ((n)*8)) /* MAC Additional Station Address (0..15) Low */ |
33 | #define KS8695_WMAAH_(n) (0x84 + ((n)*8)) /* MAC Additional Station Address (0..15) High */ | 33 | #define KS8695_WMAAH(n) (0x84 + ((n)*8)) /* MAC Additional Station Address (0..15) High */ |
34 | 34 | ||
35 | 35 | ||
36 | /* DMA Transmit Control Register */ | 36 | /* DMA Transmit Control Register */ |
diff --git a/arch/arm/mach-ks8695/include/mach/system.h b/arch/arm/mach-ks8695/include/mach/system.h index 2a6f91869056..5a9b032bdbeb 100644 --- a/arch/arm/mach-ks8695/include/mach/system.h +++ b/arch/arm/mach-ks8695/include/mach/system.h | |||
@@ -14,7 +14,7 @@ | |||
14 | #ifndef __ASM_ARCH_SYSTEM_H | 14 | #ifndef __ASM_ARCH_SYSTEM_H |
15 | #define __ASM_ARCH_SYSTEM_H | 15 | #define __ASM_ARCH_SYSTEM_H |
16 | 16 | ||
17 | #include <asm/io.h> | 17 | #include <linux/io.h> |
18 | #include <mach/regs-timer.h> | 18 | #include <mach/regs-timer.h> |
19 | 19 | ||
20 | static void arch_idle(void) | 20 | static void arch_idle(void) |
diff --git a/arch/arm/mach-ks8695/include/mach/uncompress.h b/arch/arm/mach-ks8695/include/mach/uncompress.h index 0eee37a69075..9495cb4d701a 100644 --- a/arch/arm/mach-ks8695/include/mach/uncompress.h +++ b/arch/arm/mach-ks8695/include/mach/uncompress.h | |||
@@ -14,7 +14,7 @@ | |||
14 | #ifndef __ASM_ARCH_UNCOMPRESS_H | 14 | #ifndef __ASM_ARCH_UNCOMPRESS_H |
15 | #define __ASM_ARCH_UNCOMPRESS_H | 15 | #define __ASM_ARCH_UNCOMPRESS_H |
16 | 16 | ||
17 | #include <asm/io.h> | 17 | #include <linux/io.h> |
18 | #include <mach/regs-uart.h> | 18 | #include <mach/regs-uart.h> |
19 | 19 | ||
20 | static void putc(char c) | 20 | static void putc(char c) |
diff --git a/arch/arm/mach-ks8695/irq.c b/arch/arm/mach-ks8695/irq.c index e5e71f4dbb84..e375c1d53f81 100644 --- a/arch/arm/mach-ks8695/irq.c +++ b/arch/arm/mach-ks8695/irq.c | |||
@@ -24,10 +24,10 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/sysdev.h> | 26 | #include <linux/sysdev.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #include <asm/mach/irq.h> | 32 | #include <asm/mach/irq.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-ks8695/pci.c b/arch/arm/mach-ks8695/pci.c index 1746c67af176..f5ebcc0fcab9 100644 --- a/arch/arm/mach-ks8695/pci.c +++ b/arch/arm/mach-ks8695/pci.c | |||
@@ -27,8 +27,8 @@ | |||
27 | #include <linux/init.h> | 27 | #include <linux/init.h> |
28 | #include <linux/irq.h> | 28 | #include <linux/irq.h> |
29 | #include <linux/delay.h> | 29 | #include <linux/delay.h> |
30 | #include <linux/io.h> | ||
30 | 31 | ||
31 | #include <asm/io.h> | ||
32 | #include <asm/signal.h> | 32 | #include <asm/signal.h> |
33 | #include <asm/mach/pci.h> | 33 | #include <asm/mach/pci.h> |
34 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
@@ -141,7 +141,7 @@ static struct pci_ops ks8695_pci_ops = { | |||
141 | .write = ks8695_pci_writeconfig, | 141 | .write = ks8695_pci_writeconfig, |
142 | }; | 142 | }; |
143 | 143 | ||
144 | static struct pci_bus *ks8695_pci_scan_bus(int nr, struct pci_sys_data *sys) | 144 | static struct pci_bus* __init ks8695_pci_scan_bus(int nr, struct pci_sys_data *sys) |
145 | { | 145 | { |
146 | return pci_scan_bus(sys->busnr, &ks8695_pci_ops, sys); | 146 | return pci_scan_bus(sys->busnr, &ks8695_pci_ops, sys); |
147 | } | 147 | } |
diff --git a/arch/arm/mach-ks8695/time.c b/arch/arm/mach-ks8695/time.c index 940888dffc16..69c072c2c0f9 100644 --- a/arch/arm/mach-ks8695/time.c +++ b/arch/arm/mach-ks8695/time.c | |||
@@ -24,8 +24,8 @@ | |||
24 | #include <linux/irq.h> | 24 | #include <linux/irq.h> |
25 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
26 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <asm/io.h> | ||
29 | #include <asm/mach/time.h> | 29 | #include <asm/mach/time.h> |
30 | 30 | ||
31 | #include <mach/regs-timer.h> | 31 | #include <mach/regs-timer.h> |
diff --git a/arch/arm/mach-lh7a40x/Kconfig b/arch/arm/mach-lh7a40x/Kconfig index 6f4c6a1798c1..9be7466e346c 100644 --- a/arch/arm/mach-lh7a40x/Kconfig +++ b/arch/arm/mach-lh7a40x/Kconfig | |||
@@ -40,23 +40,22 @@ config LPD7A40X_CPLD_SSP | |||
40 | bool | 40 | bool |
41 | 41 | ||
42 | config LH7A40X_CONTIGMEM | 42 | config LH7A40X_CONTIGMEM |
43 | bool "Disable NUMA Support" | 43 | bool "Disable NUMA/SparseMEM Support" |
44 | depends on ARCH_LH7A40X | ||
45 | help | 44 | help |
46 | Say Y here if your bootloader sets the SROMLL bit(s) in | 45 | Say Y here if your bootloader sets the SROMLL bit(s) in |
47 | the SDRAM controller, organizing memory as a contiguous | 46 | the SDRAM controller, organizing memory as a contiguous |
48 | array. This option will disable CONFIG_DISCONTIGMEM and | 47 | array. This option will disable sparse memory support |
49 | force the kernel to manage all memory in one node. | 48 | and force the kernel to manage all memory in one node. |
50 | 49 | ||
51 | Setting this option incorrectly may prevent the kernel from | 50 | Setting this option incorrectly may prevent the kernel |
52 | booting. It is OK to leave it N. | 51 | from booting. It is OK to leave it N. |
53 | 52 | ||
54 | For more information, consult | 53 | For more information, consult |
55 | <file:Documentation/arm/Sharp-LH/SDRAM>. | 54 | <file:Documentation/arm/Sharp-LH/SDRAM>. |
56 | 55 | ||
57 | config LH7A40X_ONE_BANK_PER_NODE | 56 | config LH7A40X_ONE_BANK_PER_NODE |
58 | bool "Optimize NUMA Node Tables for Size" | 57 | bool "Optimize NUMA Node Tables for Size" |
59 | depends on ARCH_LH7A40X && !LH7A40X_CONTIGMEM | 58 | depends on !LH7A40X_CONTIGMEM |
60 | help | 59 | help |
61 | Say Y here to produce compact memory node tables. By | 60 | Say Y here to produce compact memory node tables. By |
62 | default pairs of adjacent physical RAM banks are managed | 61 | default pairs of adjacent physical RAM banks are managed |
diff --git a/arch/arm/mach-lh7a40x/include/mach/memory.h b/arch/arm/mach-lh7a40x/include/mach/memory.h index f7107b4c197a..1da14ff66c93 100644 --- a/arch/arm/mach-lh7a40x/include/mach/memory.h +++ b/arch/arm/mach-lh7a40x/include/mach/memory.h | |||
@@ -73,4 +73,10 @@ | |||
73 | 73 | ||
74 | #endif | 74 | #endif |
75 | 75 | ||
76 | /* | ||
77 | * Sparsemem version of the above | ||
78 | */ | ||
79 | #define MAX_PHYSMEM_BITS 32 | ||
80 | #define SECTION_SIZE_BITS 24 | ||
81 | |||
76 | #endif | 82 | #endif |
diff --git a/arch/arm/mach-lh7a40x/ssp-cpld.c b/arch/arm/mach-lh7a40x/ssp-cpld.c index 51fbef9601b9..2901d49d1484 100644 --- a/arch/arm/mach-lh7a40x/ssp-cpld.c +++ b/arch/arm/mach-lh7a40x/ssp-cpld.c | |||
@@ -43,8 +43,8 @@ | |||
43 | #include <linux/init.h> | 43 | #include <linux/init.h> |
44 | #include <linux/delay.h> | 44 | #include <linux/delay.h> |
45 | #include <linux/spinlock.h> | 45 | #include <linux/spinlock.h> |
46 | #include <linux/io.h> | ||
46 | 47 | ||
47 | #include <asm/io.h> | ||
48 | #include <asm/irq.h> | 48 | #include <asm/irq.h> |
49 | #include <mach/hardware.h> | 49 | #include <mach/hardware.h> |
50 | 50 | ||
diff --git a/arch/arm/mach-lh7a40x/time.c b/arch/arm/mach-lh7a40x/time.c index 7fe9e06cf662..4601e425bae3 100644 --- a/arch/arm/mach-lh7a40x/time.c +++ b/arch/arm/mach-lh7a40x/time.c | |||
@@ -13,9 +13,9 @@ | |||
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
15 | #include <linux/time.h> | 15 | #include <linux/time.h> |
16 | #include <linux/io.h> | ||
16 | 17 | ||
17 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
18 | #include <asm/io.h> | ||
19 | #include <asm/irq.h> | 19 | #include <asm/irq.h> |
20 | #include <asm/leds.h> | 20 | #include <asm/leds.h> |
21 | 21 | ||
diff --git a/arch/arm/mach-loki/addr-map.c b/arch/arm/mach-loki/addr-map.c index 70ca56bb6f33..0332d8f5c18c 100644 --- a/arch/arm/mach-loki/addr-map.c +++ b/arch/arm/mach-loki/addr-map.c | |||
@@ -11,8 +11,8 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/mbus.h> | 13 | #include <linux/mbus.h> |
14 | #include <linux/io.h> | ||
14 | #include <mach/hardware.h> | 15 | #include <mach/hardware.h> |
15 | #include <asm/io.h> | ||
16 | #include "common.h" | 16 | #include "common.h" |
17 | 17 | ||
18 | /* | 18 | /* |
diff --git a/arch/arm/mach-loki/irq.c b/arch/arm/mach-loki/irq.c index 5a487930cb2f..e1f97338d5b7 100644 --- a/arch/arm/mach-loki/irq.c +++ b/arch/arm/mach-loki/irq.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
14 | #include <asm/io.h> | 14 | #include <linux/io.h> |
15 | #include <plat/irq.h> | 15 | #include <plat/irq.h> |
16 | #include "common.h" | 16 | #include "common.h" |
17 | 17 | ||
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c index 995afc4ade4b..a24259133e07 100644 --- a/arch/arm/mach-msm/board-halibut.c +++ b/arch/arm/mach-msm/board-halibut.c | |||
@@ -18,6 +18,8 @@ | |||
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/input.h> | 20 | #include <linux/input.h> |
21 | #include <linux/io.h> | ||
22 | #include <linux/delay.h> | ||
21 | 23 | ||
22 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
@@ -28,9 +30,6 @@ | |||
28 | #include <mach/board.h> | 30 | #include <mach/board.h> |
29 | #include <mach/msm_iomap.h> | 31 | #include <mach/msm_iomap.h> |
30 | 32 | ||
31 | #include <asm/io.h> | ||
32 | #include <asm/delay.h> | ||
33 | |||
34 | #include <linux/mtd/nand.h> | 33 | #include <linux/mtd/nand.h> |
35 | #include <linux/mtd/partitions.h> | 34 | #include <linux/mtd/partitions.h> |
36 | 35 | ||
diff --git a/arch/arm/mach-msm/common.c b/arch/arm/mach-msm/common.c index 3a511368a5d8..604f8ade9587 100644 --- a/arch/arm/mach-msm/common.c +++ b/arch/arm/mach-msm/common.c | |||
@@ -19,9 +19,9 @@ | |||
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/io.h> | ||
22 | 23 | ||
23 | #include <asm/mach/flash.h> | 24 | #include <asm/mach/flash.h> |
24 | #include <asm/io.h> | ||
25 | 25 | ||
26 | #include <asm/setup.h> | 26 | #include <asm/setup.h> |
27 | 27 | ||
diff --git a/arch/arm/mach-msm/dma.c b/arch/arm/mach-msm/dma.c index 9de08265d974..0c8f252637e1 100644 --- a/arch/arm/mach-msm/dma.c +++ b/arch/arm/mach-msm/dma.c | |||
@@ -13,7 +13,7 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <asm/io.h> | 16 | #include <linux/io.h> |
17 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
18 | #include <mach/dma.h> | 18 | #include <mach/dma.h> |
19 | 19 | ||
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c index 5976200de99b..7999e4ba8e20 100644 --- a/arch/arm/mach-msm/io.c +++ b/arch/arm/mach-msm/io.c | |||
@@ -18,9 +18,9 @@ | |||
18 | 18 | ||
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/io.h> | ||
24 | #include <asm/page.h> | 24 | #include <asm/page.h> |
25 | #include <mach/msm_iomap.h> | 25 | #include <mach/msm_iomap.h> |
26 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-msm/irq.c b/arch/arm/mach-msm/irq.c index 66901baf8c8e..04b8d182ff8a 100644 --- a/arch/arm/mach-msm/irq.c +++ b/arch/arm/mach-msm/irq.c | |||
@@ -19,11 +19,10 @@ | |||
19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
20 | #include <linux/ptrace.h> | 20 | #include <linux/ptrace.h> |
21 | #include <linux/timer.h> | 21 | #include <linux/timer.h> |
22 | |||
23 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
24 | #include <mach/hardware.h> | 23 | #include <linux/io.h> |
25 | 24 | ||
26 | #include <asm/io.h> | 25 | #include <mach/hardware.h> |
27 | 26 | ||
28 | #include <mach/msm_iomap.h> | 27 | #include <mach/msm_iomap.h> |
29 | 28 | ||
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 9f02d7dca985..2bffe9b7e9fe 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c | |||
@@ -20,12 +20,11 @@ | |||
20 | #include <linux/clk.h> | 20 | #include <linux/clk.h> |
21 | #include <linux/clockchips.h> | 21 | #include <linux/clockchips.h> |
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/mach/time.h> | 25 | #include <asm/mach/time.h> |
25 | #include <mach/msm_iomap.h> | 26 | #include <mach/msm_iomap.h> |
26 | 27 | ||
27 | #include <asm/io.h> | ||
28 | |||
29 | #define MSM_DGT_BASE (MSM_GPT_BASE + 0x10) | 28 | #define MSM_DGT_BASE (MSM_GPT_BASE + 0x10) |
30 | #define MSM_DGT_SHIFT (5) | 29 | #define MSM_DGT_SHIFT (5) |
31 | 30 | ||
diff --git a/arch/arm/mach-mv78xx0/addr-map.c b/arch/arm/mach-mv78xx0/addr-map.c index 4004b672a2eb..311d5b0e9bc7 100644 --- a/arch/arm/mach-mv78xx0/addr-map.c +++ b/arch/arm/mach-mv78xx0/addr-map.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/mbus.h> | 13 | #include <linux/mbus.h> |
14 | #include <asm/io.h> | 14 | #include <linux/io.h> |
15 | #include "common.h" | 15 | #include "common.h" |
16 | 16 | ||
17 | /* | 17 | /* |
diff --git a/arch/arm/mach-netx/generic.c b/arch/arm/mach-netx/generic.c index 1b40483ea753..e60c4061dc40 100644 --- a/arch/arm/mach-netx/generic.c +++ b/arch/arm/mach-netx/generic.c | |||
@@ -22,10 +22,10 @@ | |||
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/io.h> | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
27 | #include <asm/hardware/vic.h> | 28 | #include <asm/hardware/vic.h> |
28 | #include <asm/io.h> | ||
29 | #include <mach/netx-regs.h> | 29 | #include <mach/netx-regs.h> |
30 | #include <asm/mach/irq.h> | 30 | #include <asm/mach/irq.h> |
31 | 31 | ||
diff --git a/arch/arm/mach-netx/include/mach/system.h b/arch/arm/mach-netx/include/mach/system.h index 27d8ef8e8e29..6c1023b8a9ab 100644 --- a/arch/arm/mach-netx/include/mach/system.h +++ b/arch/arm/mach-netx/include/mach/system.h | |||
@@ -19,7 +19,7 @@ | |||
19 | #ifndef __ASM_ARCH_SYSTEM_H | 19 | #ifndef __ASM_ARCH_SYSTEM_H |
20 | #define __ASM_ARCH_SYSTEM_H | 20 | #define __ASM_ARCH_SYSTEM_H |
21 | 21 | ||
22 | #include <asm/io.h> | 22 | #include <linux/io.h> |
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include "netx-regs.h" | 24 | #include "netx-regs.h" |
25 | 25 | ||
diff --git a/arch/arm/mach-netx/pfifo.c b/arch/arm/mach-netx/pfifo.c index 19ae0a72bea3..03984943e16d 100644 --- a/arch/arm/mach-netx/pfifo.c +++ b/arch/arm/mach-netx/pfifo.c | |||
@@ -20,8 +20,8 @@ | |||
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <linux/mutex.h> | 22 | #include <linux/mutex.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/io.h> | ||
25 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
26 | #include <mach/netx-regs.h> | 26 | #include <mach/netx-regs.h> |
27 | #include <mach/pfifo.h> | 27 | #include <mach/pfifo.h> |
diff --git a/arch/arm/mach-netx/time.c b/arch/arm/mach-netx/time.c index ac8e5bfed691..7c540c1f01fa 100644 --- a/arch/arm/mach-netx/time.c +++ b/arch/arm/mach-netx/time.c | |||
@@ -21,9 +21,9 @@ | |||
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
23 | #include <linux/clocksource.h> | 23 | #include <linux/clocksource.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/mach/time.h> | 27 | #include <asm/mach/time.h> |
28 | #include <mach/netx-regs.h> | 28 | #include <mach/netx-regs.h> |
29 | 29 | ||
diff --git a/arch/arm/mach-netx/xc.c b/arch/arm/mach-netx/xc.c index 04c34e82fe6d..32eabf5dfa4f 100644 --- a/arch/arm/mach-netx/xc.c +++ b/arch/arm/mach-netx/xc.c | |||
@@ -21,8 +21,8 @@ | |||
21 | #include <linux/device.h> | 21 | #include <linux/device.h> |
22 | #include <linux/firmware.h> | 22 | #include <linux/firmware.h> |
23 | #include <linux/mutex.h> | 23 | #include <linux/mutex.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <asm/io.h> | ||
26 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <mach/netx-regs.h> | 27 | #include <mach/netx-regs.h> |
28 | 28 | ||
diff --git a/arch/arm/mach-ns9xxx/gpio.c b/arch/arm/mach-ns9xxx/gpio.c index 804c30075960..5241e6a286cc 100644 --- a/arch/arm/mach-ns9xxx/gpio.c +++ b/arch/arm/mach-ns9xxx/gpio.c | |||
@@ -12,13 +12,13 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/spinlock.h> | 13 | #include <linux/spinlock.h> |
14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
15 | #include <linux/bitops.h> | ||
15 | 16 | ||
16 | #include <mach/gpio.h> | 17 | #include <mach/gpio.h> |
17 | #include <mach/processor.h> | 18 | #include <mach/processor.h> |
18 | #include <mach/processor-ns9360.h> | 19 | #include <mach/processor-ns9360.h> |
19 | #include <asm/bug.h> | 20 | #include <asm/bug.h> |
20 | #include <asm/types.h> | 21 | #include <asm/types.h> |
21 | #include <asm/bitops.h> | ||
22 | 22 | ||
23 | #include "gpio-ns9360.h" | 23 | #include "gpio-ns9360.h" |
24 | 24 | ||
diff --git a/arch/arm/mach-ns9xxx/include/mach/uncompress.h b/arch/arm/mach-ns9xxx/include/mach/uncompress.h index 5dbc3c5167c8..1b12d324b087 100644 --- a/arch/arm/mach-ns9xxx/include/mach/uncompress.h +++ b/arch/arm/mach-ns9xxx/include/mach/uncompress.h | |||
@@ -11,7 +11,7 @@ | |||
11 | #ifndef __ASM_ARCH_UNCOMPRESS_H | 11 | #ifndef __ASM_ARCH_UNCOMPRESS_H |
12 | #define __ASM_ARCH_UNCOMPRESS_H | 12 | #define __ASM_ARCH_UNCOMPRESS_H |
13 | 13 | ||
14 | #include <asm/io.h> | 14 | #include <linux/io.h> |
15 | 15 | ||
16 | #define __REG(x) ((void __iomem __force *)(x)) | 16 | #define __REG(x) ((void __iomem __force *)(x)) |
17 | 17 | ||
diff --git a/arch/arm/mach-ns9xxx/irq.c b/arch/arm/mach-ns9xxx/irq.c index 38260d5f849b..22e0eb6e9ec4 100644 --- a/arch/arm/mach-ns9xxx/irq.c +++ b/arch/arm/mach-ns9xxx/irq.c | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | #include <linux/interrupt.h> | 11 | #include <linux/interrupt.h> |
12 | #include <linux/kernel_stat.h> | 12 | #include <linux/kernel_stat.h> |
13 | #include <asm/io.h> | 13 | #include <linux/io.h> |
14 | #include <asm/mach/irq.h> | 14 | #include <asm/mach/irq.h> |
15 | #include <mach/regs-sys-common.h> | 15 | #include <mach/regs-sys-common.h> |
16 | #include <mach/irqs.h> | 16 | #include <mach/irqs.h> |
diff --git a/arch/arm/mach-omap1/clock.c b/arch/arm/mach-omap1/clock.c index 5965cf09f8c4..478c2c9a22cb 100644 --- a/arch/arm/mach-omap1/clock.c +++ b/arch/arm/mach-omap1/clock.c | |||
@@ -17,8 +17,8 @@ | |||
17 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
18 | #include <linux/err.h> | 18 | #include <linux/err.h> |
19 | #include <linux/clk.h> | 19 | #include <linux/clk.h> |
20 | #include <linux/io.h> | ||
20 | 21 | ||
21 | #include <asm/io.h> | ||
22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
23 | 23 | ||
24 | #include <mach/cpu.h> | 24 | #include <mach/cpu.h> |
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index ab708d4c597e..99982d3380c9 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c | |||
@@ -13,9 +13,9 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | #include <linux/io.h> | ||
16 | 17 | ||
17 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
18 | #include <asm/io.h> | ||
19 | #include <asm/mach/map.h> | 19 | #include <asm/mach/map.h> |
20 | 20 | ||
21 | #include <mach/tc.h> | 21 | #include <mach/tc.h> |
diff --git a/arch/arm/mach-omap1/fpga.c b/arch/arm/mach-omap1/fpga.c index 4449d86095f6..0d9f48f780ad 100644 --- a/arch/arm/mach-omap1/fpga.c +++ b/arch/arm/mach-omap1/fpga.c | |||
@@ -21,9 +21,9 @@ | |||
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include <linux/device.h> | 22 | #include <linux/device.h> |
23 | #include <linux/errno.h> | 23 | #include <linux/errno.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
28 | #include <asm/mach/irq.h> | 28 | #include <asm/mach/irq.h> |
29 | 29 | ||
diff --git a/arch/arm/mach-omap1/id.c b/arch/arm/mach-omap1/id.c index da13c3e82850..13083d7e692d 100644 --- a/arch/arm/mach-omap1/id.c +++ b/arch/arm/mach-omap1/id.c | |||
@@ -14,8 +14,7 @@ | |||
14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | 17 | #include <linux/io.h> | |
18 | #include <asm/io.h> | ||
19 | 18 | ||
20 | #define OMAP_DIE_ID_0 0xfffe1800 | 19 | #define OMAP_DIE_ID_0 0xfffe1800 |
21 | #define OMAP_DIE_ID_1 0xfffe1804 | 20 | #define OMAP_DIE_ID_1 0xfffe1804 |
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index 2b9750b200ce..b3bd8ca85118 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c | |||
@@ -11,10 +11,10 @@ | |||
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/io.h> | ||
14 | 15 | ||
15 | #include <asm/tlb.h> | 16 | #include <asm/tlb.h> |
16 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
17 | #include <asm/io.h> | ||
18 | #include <mach/mux.h> | 18 | #include <mach/mux.h> |
19 | #include <mach/tc.h> | 19 | #include <mach/tc.h> |
20 | 20 | ||
diff --git a/arch/arm/mach-omap1/irq.c b/arch/arm/mach-omap1/irq.c index 0ec6c1ec4250..9ad5197075ff 100644 --- a/arch/arm/mach-omap1/irq.c +++ b/arch/arm/mach-omap1/irq.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <linux/module.h> | 40 | #include <linux/module.h> |
41 | #include <linux/sched.h> | 41 | #include <linux/sched.h> |
42 | #include <linux/interrupt.h> | 42 | #include <linux/interrupt.h> |
43 | #include <linux/io.h> | ||
43 | 44 | ||
44 | #include <mach/hardware.h> | 45 | #include <mach/hardware.h> |
45 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
@@ -47,8 +48,6 @@ | |||
47 | #include <mach/gpio.h> | 48 | #include <mach/gpio.h> |
48 | #include <mach/cpu.h> | 49 | #include <mach/cpu.h> |
49 | 50 | ||
50 | #include <asm/io.h> | ||
51 | |||
52 | #define IRQ_BANK(irq) ((irq) >> 5) | 51 | #define IRQ_BANK(irq) ((irq) >> 5) |
53 | #define IRQ_BIT(irq) ((irq) & 0x1f) | 52 | #define IRQ_BIT(irq) ((irq) & 0x1f) |
54 | 53 | ||
diff --git a/arch/arm/mach-omap1/leds-h2p2-debug.c b/arch/arm/mach-omap1/leds-h2p2-debug.c index 610f51f18741..71fe2cc7f7cf 100644 --- a/arch/arm/mach-omap1/leds-h2p2-debug.c +++ b/arch/arm/mach-omap1/leds-h2p2-debug.c | |||
@@ -12,8 +12,8 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/kernel_stat.h> | 13 | #include <linux/kernel_stat.h> |
14 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
15 | #include <linux/io.h> | ||
15 | 16 | ||
16 | #include <asm/io.h> | ||
17 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
18 | #include <asm/leds.h> | 18 | #include <asm/leds.h> |
19 | #include <asm/system.h> | 19 | #include <asm/system.h> |
diff --git a/arch/arm/mach-omap1/mailbox.c b/arch/arm/mach-omap1/mailbox.c index af44eab1ed24..59abbf331a96 100644 --- a/arch/arm/mach-omap1/mailbox.c +++ b/arch/arm/mach-omap1/mailbox.c | |||
@@ -13,9 +13,9 @@ | |||
13 | #include <linux/resource.h> | 13 | #include <linux/resource.h> |
14 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | #include <linux/io.h> | ||
16 | #include <mach/mailbox.h> | 17 | #include <mach/mailbox.h> |
17 | #include <mach/irqs.h> | 18 | #include <mach/irqs.h> |
18 | #include <asm/io.h> | ||
19 | 19 | ||
20 | #define MAILBOX_ARM2DSP1 0x00 | 20 | #define MAILBOX_ARM2DSP1 0x00 |
21 | #define MAILBOX_ARM2DSP1b 0x04 | 21 | #define MAILBOX_ARM2DSP1b 0x04 |
diff --git a/arch/arm/mach-omap1/mux.c b/arch/arm/mach-omap1/mux.c index 898516e362e7..062c905c2ba6 100644 --- a/arch/arm/mach-omap1/mux.c +++ b/arch/arm/mach-omap1/mux.c | |||
@@ -24,10 +24,11 @@ | |||
24 | */ | 24 | */ |
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <asm/system.h> | 27 | #include <linux/io.h> |
28 | #include <asm/io.h> | ||
29 | #include <linux/spinlock.h> | 28 | #include <linux/spinlock.h> |
30 | 29 | ||
30 | #include <asm/system.h> | ||
31 | |||
31 | #include <mach/mux.h> | 32 | #include <mach/mux.h> |
32 | 33 | ||
33 | #ifdef CONFIG_OMAP_MUX | 34 | #ifdef CONFIG_OMAP_MUX |
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c index 63c4ea18b1ca..770d256c790b 100644 --- a/arch/arm/mach-omap1/pm.c +++ b/arch/arm/mach-omap1/pm.c | |||
@@ -41,8 +41,8 @@ | |||
41 | #include <linux/interrupt.h> | 41 | #include <linux/interrupt.h> |
42 | #include <linux/sysfs.h> | 42 | #include <linux/sysfs.h> |
43 | #include <linux/module.h> | 43 | #include <linux/module.h> |
44 | #include <linux/io.h> | ||
44 | 45 | ||
45 | #include <asm/io.h> | ||
46 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
47 | #include <asm/atomic.h> | 47 | #include <asm/atomic.h> |
48 | #include <asm/mach/time.h> | 48 | #include <asm/mach/time.h> |
diff --git a/arch/arm/mach-omap1/serial.c b/arch/arm/mach-omap1/serial.c index 0e25a996bb4c..aefc967fc003 100644 --- a/arch/arm/mach-omap1/serial.c +++ b/arch/arm/mach-omap1/serial.c | |||
@@ -18,8 +18,8 @@ | |||
18 | #include <linux/serial_8250.h> | 18 | #include <linux/serial_8250.h> |
19 | #include <linux/serial_reg.h> | 19 | #include <linux/serial_reg.h> |
20 | #include <linux/clk.h> | 20 | #include <linux/clk.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <asm/io.h> | ||
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | 24 | ||
25 | #include <mach/board.h> | 25 | #include <mach/board.h> |
diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c index e54708595ecf..2cf7e32bd293 100644 --- a/arch/arm/mach-omap1/time.c +++ b/arch/arm/mach-omap1/time.c | |||
@@ -43,10 +43,10 @@ | |||
43 | #include <linux/err.h> | 43 | #include <linux/err.h> |
44 | #include <linux/clocksource.h> | 44 | #include <linux/clocksource.h> |
45 | #include <linux/clockchips.h> | 45 | #include <linux/clockchips.h> |
46 | #include <linux/io.h> | ||
46 | 47 | ||
47 | #include <asm/system.h> | 48 | #include <asm/system.h> |
48 | #include <mach/hardware.h> | 49 | #include <mach/hardware.h> |
49 | #include <asm/io.h> | ||
50 | #include <asm/leds.h> | 50 | #include <asm/leds.h> |
51 | #include <asm/irq.h> | 51 | #include <asm/irq.h> |
52 | #include <asm/mach/irq.h> | 52 | #include <asm/mach/irq.h> |
diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c index e67760189d14..705367ece174 100644 --- a/arch/arm/mach-omap1/timer32k.c +++ b/arch/arm/mach-omap1/timer32k.c | |||
@@ -44,10 +44,10 @@ | |||
44 | #include <linux/clk.h> | 44 | #include <linux/clk.h> |
45 | #include <linux/clocksource.h> | 45 | #include <linux/clocksource.h> |
46 | #include <linux/clockchips.h> | 46 | #include <linux/clockchips.h> |
47 | #include <linux/io.h> | ||
47 | 48 | ||
48 | #include <asm/system.h> | 49 | #include <asm/system.h> |
49 | #include <mach/hardware.h> | 50 | #include <mach/hardware.h> |
50 | #include <asm/io.h> | ||
51 | #include <asm/leds.h> | 51 | #include <asm/leds.h> |
52 | #include <asm/irq.h> | 52 | #include <asm/irq.h> |
53 | #include <asm/mach/irq.h> | 53 | #include <asm/mach/irq.h> |
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index d4d6385cad7c..cbb921ded7f9 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
22 | #include <linux/err.h> | 22 | #include <linux/err.h> |
23 | #include <linux/clk.h> | 23 | #include <linux/clk.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/mach-types.h> | 27 | #include <asm/mach-types.h> |
@@ -34,8 +35,6 @@ | |||
34 | #include <mach/common.h> | 35 | #include <mach/common.h> |
35 | #include <mach/gpmc.h> | 36 | #include <mach/gpmc.h> |
36 | 37 | ||
37 | #include <asm/io.h> | ||
38 | |||
39 | 38 | ||
40 | #define SDP2430_FLASH_CS 0 | 39 | #define SDP2430_FLASH_CS 0 |
41 | #define SDP2430_SMC91X_CS 5 | 40 | #define SDP2430_SMC91X_CS 5 |
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index 9e2624ca70a2..d4e3b6fc4705 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/input.h> | 21 | #include <linux/input.h> |
22 | #include <linux/err.h> | 22 | #include <linux/err.h> |
23 | #include <linux/clk.h> | 23 | #include <linux/clk.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/mach-types.h> | 27 | #include <asm/mach-types.h> |
@@ -41,8 +42,6 @@ | |||
41 | #include <mach/dma.h> | 42 | #include <mach/dma.h> |
42 | #include <mach/gpmc.h> | 43 | #include <mach/gpmc.h> |
43 | 44 | ||
44 | #include <asm/io.h> | ||
45 | |||
46 | #define H4_FLASH_CS 0 | 45 | #define H4_FLASH_CS 0 |
47 | #define H4_SMC91X_CS 1 | 46 | #define H4_SMC91X_CS 1 |
48 | 47 | ||
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c index 1d891e4a6933..97cde3d3611d 100644 --- a/arch/arm/mach-omap2/clock.c +++ b/arch/arm/mach-omap2/clock.c | |||
@@ -21,9 +21,8 @@ | |||
21 | #include <linux/errno.h> | 21 | #include <linux/errno.h> |
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/clk.h> | 23 | #include <linux/clk.h> |
24 | #include <asm/bitops.h> | 24 | #include <linux/io.h> |
25 | 25 | #include <linux/bitops.h> | |
26 | #include <asm/io.h> | ||
27 | 26 | ||
28 | #include <mach/clock.h> | 27 | #include <mach/clock.h> |
29 | #include <mach/sram.h> | 28 | #include <mach/sram.h> |
diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c index 295e671e9cfd..d382eb0184ac 100644 --- a/arch/arm/mach-omap2/clock24xx.c +++ b/arch/arm/mach-omap2/clock24xx.c | |||
@@ -24,14 +24,13 @@ | |||
24 | #include <linux/errno.h> | 24 | #include <linux/errno.h> |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/clk.h> | 26 | #include <linux/clk.h> |
27 | |||
28 | #include <linux/io.h> | 27 | #include <linux/io.h> |
29 | #include <linux/cpufreq.h> | 28 | #include <linux/cpufreq.h> |
29 | #include <linux/bitops.h> | ||
30 | 30 | ||
31 | #include <mach/clock.h> | 31 | #include <mach/clock.h> |
32 | #include <mach/sram.h> | 32 | #include <mach/sram.h> |
33 | #include <asm/div64.h> | 33 | #include <asm/div64.h> |
34 | #include <asm/bitops.h> | ||
35 | 34 | ||
36 | #include "memory.h" | 35 | #include "memory.h" |
37 | #include "clock.h" | 36 | #include "clock.h" |
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c index 3ff74952f835..e5b475f21081 100644 --- a/arch/arm/mach-omap2/clock34xx.c +++ b/arch/arm/mach-omap2/clock34xx.c | |||
@@ -25,11 +25,11 @@ | |||
25 | #include <linux/clk.h> | 25 | #include <linux/clk.h> |
26 | #include <linux/io.h> | 26 | #include <linux/io.h> |
27 | #include <linux/limits.h> | 27 | #include <linux/limits.h> |
28 | #include <linux/bitops.h> | ||
28 | 29 | ||
29 | #include <mach/clock.h> | 30 | #include <mach/clock.h> |
30 | #include <mach/sram.h> | 31 | #include <mach/sram.h> |
31 | #include <asm/div64.h> | 32 | #include <asm/div64.h> |
32 | #include <asm/bitops.h> | ||
33 | 33 | ||
34 | #include "memory.h" | 34 | #include "memory.h" |
35 | #include "clock.h" | 35 | #include "clock.h" |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 7a7f02559075..2ee954a0bc7c 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -13,9 +13,9 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | #include <linux/io.h> | ||
16 | 17 | ||
17 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
18 | #include <asm/io.h> | ||
19 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
20 | #include <asm/mach/map.h> | 20 | #include <asm/mach/map.h> |
21 | 21 | ||
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index f51d69bc457d..af1081a0b27c 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -15,8 +15,8 @@ | |||
15 | #include <linux/clk.h> | 15 | #include <linux/clk.h> |
16 | #include <linux/ioport.h> | 16 | #include <linux/ioport.h> |
17 | #include <linux/spinlock.h> | 17 | #include <linux/spinlock.h> |
18 | #include <linux/io.h> | ||
18 | 19 | ||
19 | #include <asm/io.h> | ||
20 | #include <asm/mach-types.h> | 20 | #include <asm/mach-types.h> |
21 | #include <mach/gpmc.h> | 21 | #include <mach/gpmc.h> |
22 | 22 | ||
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index a5d4526ac4d6..209177c7f22f 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -14,8 +14,9 @@ | |||
14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/io.h> | ||
17 | 18 | ||
18 | #include <asm/io.h> | 19 | #include <asm/cputype.h> |
19 | 20 | ||
20 | #include <mach/control.h> | 21 | #include <mach/control.h> |
21 | #include <mach/cpu.h> | 22 | #include <mach/cpu.h> |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 987351f07d7b..7c3d6289c05f 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -15,9 +15,9 @@ | |||
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/io.h> | ||
18 | 19 | ||
19 | #include <asm/tlb.h> | 20 | #include <asm/tlb.h> |
20 | #include <asm/io.h> | ||
21 | 21 | ||
22 | #include <asm/mach/map.h> | 22 | #include <asm/mach/map.h> |
23 | 23 | ||
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 9ef15b31d8fc..196a9565a8dc 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c | |||
@@ -13,10 +13,10 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/io.h> | ||
16 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
17 | #include <asm/mach/irq.h> | 18 | #include <asm/mach/irq.h> |
18 | #include <asm/irq.h> | 19 | #include <asm/irq.h> |
19 | #include <asm/io.h> | ||
20 | 20 | ||
21 | #define INTC_REVISION 0x0000 | 21 | #define INTC_REVISION 0x0000 |
22 | #define INTC_SYSCONFIG 0x0010 | 22 | #define INTC_SYSCONFIG 0x0010 |
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index a480b96948e4..32b7af3c610b 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c | |||
@@ -14,9 +14,9 @@ | |||
14 | #include <linux/clk.h> | 14 | #include <linux/clk.h> |
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/io.h> | ||
17 | #include <mach/mailbox.h> | 18 | #include <mach/mailbox.h> |
18 | #include <mach/irqs.h> | 19 | #include <mach/irqs.h> |
19 | #include <asm/io.h> | ||
20 | 20 | ||
21 | #define MAILBOX_REVISION 0x00 | 21 | #define MAILBOX_REVISION 0x00 |
22 | #define MAILBOX_SYSCONFIG 0x10 | 22 | #define MAILBOX_SYSCONFIG 0x10 |
diff --git a/arch/arm/mach-omap2/memory.c b/arch/arm/mach-omap2/memory.c index 6b49cc9cbdcb..ab1462b02e6e 100644 --- a/arch/arm/mach-omap2/memory.c +++ b/arch/arm/mach-omap2/memory.c | |||
@@ -21,8 +21,7 @@ | |||
21 | #include <linux/errno.h> | 21 | #include <linux/errno.h> |
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/clk.h> | 23 | #include <linux/clk.h> |
24 | 24 | #include <linux/io.h> | |
25 | #include <asm/io.h> | ||
26 | 25 | ||
27 | #include <mach/common.h> | 26 | #include <mach/common.h> |
28 | #include <mach/clock.h> | 27 | #include <mach/clock.h> |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 443d07fef7f3..6b7d672058b9 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -25,10 +25,11 @@ | |||
25 | */ | 25 | */ |
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/init.h> | 27 | #include <linux/init.h> |
28 | #include <asm/system.h> | 28 | #include <linux/io.h> |
29 | #include <asm/io.h> | ||
30 | #include <linux/spinlock.h> | 29 | #include <linux/spinlock.h> |
31 | 30 | ||
31 | #include <asm/system.h> | ||
32 | |||
32 | #include <mach/control.h> | 33 | #include <mach/control.h> |
33 | #include <mach/mux.h> | 34 | #include <mach/mux.h> |
34 | 35 | ||
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index 8671e1079ab5..55361c16c9d9 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c | |||
@@ -24,8 +24,8 @@ | |||
24 | #include <linux/module.h> | 24 | #include <linux/module.h> |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/clk.h> | 26 | #include <linux/clk.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/atomic.h> | 30 | #include <asm/atomic.h> |
31 | #include <asm/mach/time.h> | 31 | #include <asm/mach/time.h> |
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index adc8a26a8fb0..7d9444adc5df 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -17,8 +17,7 @@ | |||
17 | #include <linux/serial_8250.h> | 17 | #include <linux/serial_8250.h> |
18 | #include <linux/serial_reg.h> | 18 | #include <linux/serial_reg.h> |
19 | #include <linux/clk.h> | 19 | #include <linux/clk.h> |
20 | 20 | #include <linux/io.h> | |
21 | #include <asm/io.h> | ||
22 | 21 | ||
23 | #include <mach/common.h> | 22 | #include <mach/common.h> |
24 | #include <mach/board.h> | 23 | #include <mach/board.h> |
diff --git a/arch/arm/mach-orion5x/addr-map.c b/arch/arm/mach-orion5x/addr-map.c index bea37972120a..719957e05d9e 100644 --- a/arch/arm/mach-orion5x/addr-map.c +++ b/arch/arm/mach-orion5x/addr-map.c | |||
@@ -13,8 +13,8 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/mbus.h> | 15 | #include <linux/mbus.h> |
16 | #include <linux/io.h> | ||
16 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
17 | #include <asm/io.h> | ||
18 | #include "common.h" | 18 | #include "common.h" |
19 | 19 | ||
20 | /* | 20 | /* |
diff --git a/arch/arm/mach-orion5x/gpio.c b/arch/arm/mach-orion5x/gpio.c index cd8a16f67d2b..fc419868e39f 100644 --- a/arch/arm/mach-orion5x/gpio.c +++ b/arch/arm/mach-orion5x/gpio.c | |||
@@ -15,8 +15,8 @@ | |||
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/spinlock.h> | 16 | #include <linux/spinlock.h> |
17 | #include <linux/bitops.h> | 17 | #include <linux/bitops.h> |
18 | #include <linux/io.h> | ||
18 | #include <asm/gpio.h> | 19 | #include <asm/gpio.h> |
19 | #include <asm/io.h> | ||
20 | #include <mach/orion5x.h> | 20 | #include <mach/orion5x.h> |
21 | #include "common.h" | 21 | #include "common.h" |
22 | 22 | ||
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c index 2545ff9e5830..02ceeb3c6737 100644 --- a/arch/arm/mach-orion5x/irq.c +++ b/arch/arm/mach-orion5x/irq.c | |||
@@ -13,8 +13,8 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/irq.h> | 15 | #include <linux/irq.h> |
16 | #include <linux/io.h> | ||
16 | #include <asm/gpio.h> | 17 | #include <asm/gpio.h> |
17 | #include <asm/io.h> | ||
18 | #include <mach/orion5x.h> | 18 | #include <mach/orion5x.h> |
19 | #include <plat/irq.h> | 19 | #include <plat/irq.h> |
20 | #include "common.h" | 20 | #include "common.h" |
diff --git a/arch/arm/mach-orion5x/mpp.c b/arch/arm/mach-orion5x/mpp.c index c04ab0e16ea1..640ea2a3fc6c 100644 --- a/arch/arm/mach-orion5x/mpp.c +++ b/arch/arm/mach-orion5x/mpp.c | |||
@@ -11,8 +11,8 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/mbus.h> | 13 | #include <linux/mbus.h> |
14 | #include <linux/io.h> | ||
14 | #include <mach/hardware.h> | 15 | #include <mach/hardware.h> |
15 | #include <asm/io.h> | ||
16 | #include "common.h" | 16 | #include "common.h" |
17 | #include "mpp.h" | 17 | #include "mpp.h" |
18 | 18 | ||
diff --git a/arch/arm/mach-pnx4008/clock.c b/arch/arm/mach-pnx4008/clock.c index 24d036a24a72..898c0e88acbc 100644 --- a/arch/arm/mach-pnx4008/clock.c +++ b/arch/arm/mach-pnx4008/clock.c | |||
@@ -20,9 +20,9 @@ | |||
20 | #include <linux/device.h> | 20 | #include <linux/device.h> |
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/io.h> | ||
26 | 26 | ||
27 | #include <mach/clock.h> | 27 | #include <mach/clock.h> |
28 | #include "clock.h" | 28 | #include "clock.h" |
diff --git a/arch/arm/mach-pnx4008/core.c b/arch/arm/mach-pnx4008/core.c index 3ba46ede9bbd..45734bb880a8 100644 --- a/arch/arm/mach-pnx4008/core.c +++ b/arch/arm/mach-pnx4008/core.c | |||
@@ -25,9 +25,9 @@ | |||
25 | #include <linux/serial_8250.h> | 25 | #include <linux/serial_8250.h> |
26 | #include <linux/device.h> | 26 | #include <linux/device.h> |
27 | #include <linux/spi/spi.h> | 27 | #include <linux/spi/spi.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/io.h> | ||
31 | #include <asm/setup.h> | 31 | #include <asm/setup.h> |
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
33 | #include <asm/pgtable.h> | 33 | #include <asm/pgtable.h> |
diff --git a/arch/arm/mach-pnx4008/dma.c b/arch/arm/mach-pnx4008/dma.c index 833c56be7344..ac2f70eddb9e 100644 --- a/arch/arm/mach-pnx4008/dma.c +++ b/arch/arm/mach-pnx4008/dma.c | |||
@@ -21,12 +21,12 @@ | |||
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/dma-mapping.h> | 22 | #include <linux/dma-mapping.h> |
23 | #include <linux/clk.h> | 23 | #include <linux/clk.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <asm/system.h> | 26 | #include <asm/system.h> |
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/dma.h> | 28 | #include <asm/dma.h> |
28 | #include <asm/dma-mapping.h> | 29 | #include <asm/dma-mapping.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/mach/dma.h> | 30 | #include <asm/mach/dma.h> |
31 | #include <mach/clock.h> | 31 | #include <mach/clock.h> |
32 | 32 | ||
diff --git a/arch/arm/mach-pnx4008/gpio.c b/arch/arm/mach-pnx4008/gpio.c index fb51f7279e95..015cc21d5f55 100644 --- a/arch/arm/mach-pnx4008/gpio.c +++ b/arch/arm/mach-pnx4008/gpio.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
18 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <asm/io.h> | 20 | #include <linux/io.h> |
21 | #include <mach/platform.h> | 21 | #include <mach/platform.h> |
22 | #include <mach/gpio.h> | 22 | #include <mach/gpio.h> |
23 | 23 | ||
diff --git a/arch/arm/mach-pnx4008/include/mach/system.h b/arch/arm/mach-pnx4008/include/mach/system.h index 8985a4622b8c..e12e7abfcbcf 100644 --- a/arch/arm/mach-pnx4008/include/mach/system.h +++ b/arch/arm/mach-pnx4008/include/mach/system.h | |||
@@ -21,8 +21,8 @@ | |||
21 | #ifndef __ASM_ARCH_SYSTEM_H | 21 | #ifndef __ASM_ARCH_SYSTEM_H |
22 | #define __ASM_ARCH_SYSTEM_H | 22 | #define __ASM_ARCH_SYSTEM_H |
23 | 23 | ||
24 | #include <linux/io.h> | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/io.h> | ||
26 | #include <mach/platform.h> | 26 | #include <mach/platform.h> |
27 | 27 | ||
28 | static void arch_idle(void) | 28 | static void arch_idle(void) |
diff --git a/arch/arm/mach-pnx4008/include/mach/timex.h b/arch/arm/mach-pnx4008/include/mach/timex.h index 956fbd8e977c..5ff0196c0f16 100644 --- a/arch/arm/mach-pnx4008/include/mach/timex.h +++ b/arch/arm/mach-pnx4008/include/mach/timex.h | |||
@@ -14,8 +14,8 @@ | |||
14 | #ifndef __PNX4008_TIMEX_H | 14 | #ifndef __PNX4008_TIMEX_H |
15 | #define __PNX4008_TIMEX_H | 15 | #define __PNX4008_TIMEX_H |
16 | 16 | ||
17 | #include <linux/io.h> | ||
17 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
18 | #include <asm/io.h> | ||
19 | 19 | ||
20 | #define CLOCK_TICK_RATE 1000000 | 20 | #define CLOCK_TICK_RATE 1000000 |
21 | 21 | ||
diff --git a/arch/arm/mach-pnx4008/irq.c b/arch/arm/mach-pnx4008/irq.c index 5c4f55af5d4b..a9ce02b4bf17 100644 --- a/arch/arm/mach-pnx4008/irq.c +++ b/arch/arm/mach-pnx4008/irq.c | |||
@@ -23,8 +23,8 @@ | |||
23 | #include <linux/ioport.h> | 23 | #include <linux/ioport.h> |
24 | #include <linux/device.h> | 24 | #include <linux/device.h> |
25 | #include <linux/irq.h> | 25 | #include <linux/irq.h> |
26 | #include <linux/io.h> | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | ||
28 | #include <asm/setup.h> | 28 | #include <asm/setup.h> |
29 | #include <asm/pgtable.h> | 29 | #include <asm/pgtable.h> |
30 | #include <asm/page.h> | 30 | #include <asm/page.h> |
diff --git a/arch/arm/mach-pnx4008/pm.c b/arch/arm/mach-pnx4008/pm.c index f970906d8848..b3d8d53e32ef 100644 --- a/arch/arm/mach-pnx4008/pm.c +++ b/arch/arm/mach-pnx4008/pm.c | |||
@@ -18,8 +18,8 @@ | |||
18 | #include <linux/suspend.h> | 18 | #include <linux/suspend.h> |
19 | #include <linux/delay.h> | 19 | #include <linux/delay.h> |
20 | #include <linux/clk.h> | 20 | #include <linux/clk.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <asm/io.h> | ||
23 | #include <asm/cacheflush.h> | 23 | #include <asm/cacheflush.h> |
24 | #include <mach/pm.h> | 24 | #include <mach/pm.h> |
25 | #include <mach/clock.h> | 25 | #include <mach/clock.h> |
diff --git a/arch/arm/mach-pnx4008/serial.c b/arch/arm/mach-pnx4008/serial.c index 9be84bbb30e8..f40961e51914 100644 --- a/arch/arm/mach-pnx4008/serial.c +++ b/arch/arm/mach-pnx4008/serial.c | |||
@@ -12,8 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/types.h> | 14 | #include <linux/types.h> |
15 | 15 | #include <linux/io.h> | |
16 | #include <asm/io.h> | ||
17 | 16 | ||
18 | #include <mach/platform.h> | 17 | #include <mach/platform.h> |
19 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-pnx4008/time.c b/arch/arm/mach-pnx4008/time.c index 180975244f96..fc0ba183fe12 100644 --- a/arch/arm/mach-pnx4008/time.c +++ b/arch/arm/mach-pnx4008/time.c | |||
@@ -22,10 +22,10 @@ | |||
22 | #include <linux/time.h> | 22 | #include <linux/time.h> |
23 | #include <linux/timex.h> | 23 | #include <linux/timex.h> |
24 | #include <linux/irq.h> | 24 | #include <linux/irq.h> |
25 | #include <linux/io.h> | ||
25 | 26 | ||
26 | #include <asm/system.h> | 27 | #include <asm/system.h> |
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/leds.h> | 29 | #include <asm/leds.h> |
30 | #include <asm/mach/time.h> | 30 | #include <asm/mach/time.h> |
31 | #include <asm/errno.h> | 31 | #include <asm/errno.h> |
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index e8ee7ec9ff6d..e484f609feda 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig | |||
@@ -210,6 +210,7 @@ config MACH_ARMCORE | |||
210 | bool "CompuLab CM-X270 modules" | 210 | bool "CompuLab CM-X270 modules" |
211 | select PXA27x | 211 | select PXA27x |
212 | select IWMMXT | 212 | select IWMMXT |
213 | select ZONE_DMA if PCI | ||
213 | 214 | ||
214 | config MACH_MAGICIAN | 215 | config MACH_MAGICIAN |
215 | bool "Enable HTC Magician Support" | 216 | bool "Enable HTC Magician Support" |
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index 123a950db466..fe5f1ba6c34b 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/mmc/host.h> | 21 | #include <linux/mmc/host.h> |
22 | #include <linux/pm.h> | 22 | #include <linux/pm.h> |
23 | #include <linux/backlight.h> | 23 | #include <linux/backlight.h> |
24 | #include <linux/io.h> | ||
24 | #include <video/w100fb.h> | 25 | #include <video/w100fb.h> |
25 | 26 | ||
26 | #include <asm/setup.h> | 27 | #include <asm/setup.h> |
@@ -28,7 +29,6 @@ | |||
28 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
31 | #include <asm/io.h> | ||
32 | #include <asm/system.h> | 32 | #include <asm/system.h> |
33 | 33 | ||
34 | #include <asm/mach/arch.h> | 34 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/mach-pxa/gpio.c b/arch/arm/mach-pxa/gpio.c index 07acc1b23857..418d4dfd44ab 100644 --- a/arch/arm/mach-pxa/gpio.c +++ b/arch/arm/mach-pxa/gpio.c | |||
@@ -16,10 +16,10 @@ | |||
16 | #include <linux/module.h> | 16 | #include <linux/module.h> |
17 | #include <linux/irq.h> | 17 | #include <linux/irq.h> |
18 | #include <linux/sysdev.h> | 18 | #include <linux/sysdev.h> |
19 | #include <linux/io.h> | ||
19 | 20 | ||
20 | #include <asm/gpio.h> | 21 | #include <asm/gpio.h> |
21 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
22 | #include <asm/io.h> | ||
23 | #include <mach/pxa-regs.h> | 23 | #include <mach/pxa-regs.h> |
24 | #include <mach/pxa2xx-gpio.h> | 24 | #include <mach/pxa2xx-gpio.h> |
25 | 25 | ||
diff --git a/arch/arm/mach-pxa/include/mach/hardware.h b/arch/arm/mach-pxa/include/mach/hardware.h index e89df4d0d239..a1a0a2ffd642 100644 --- a/arch/arm/mach-pxa/include/mach/hardware.h +++ b/arch/arm/mach-pxa/include/mach/hardware.h | |||
@@ -62,6 +62,8 @@ | |||
62 | 62 | ||
63 | #ifndef __ASSEMBLY__ | 63 | #ifndef __ASSEMBLY__ |
64 | 64 | ||
65 | #include <asm/cputype.h> | ||
66 | |||
65 | #ifdef CONFIG_PXA25x | 67 | #ifdef CONFIG_PXA25x |
66 | #define __cpu_is_pxa21x(id) \ | 68 | #define __cpu_is_pxa21x(id) \ |
67 | ({ \ | 69 | ({ \ |
diff --git a/arch/arm/mach-pxa/reset.c b/arch/arm/mach-pxa/reset.c index 9996c612c3d6..31d78855aac8 100644 --- a/arch/arm/mach-pxa/reset.c +++ b/arch/arm/mach-pxa/reset.c | |||
@@ -7,7 +7,7 @@ | |||
7 | #include <linux/module.h> | 7 | #include <linux/module.h> |
8 | #include <linux/delay.h> | 8 | #include <linux/delay.h> |
9 | #include <linux/gpio.h> | 9 | #include <linux/gpio.h> |
10 | #include <asm/io.h> | 10 | #include <linux/io.h> |
11 | #include <asm/proc-fns.h> | 11 | #include <asm/proc-fns.h> |
12 | 12 | ||
13 | #include <mach/pxa-regs.h> | 13 | #include <mach/pxa-regs.h> |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index cd39005c98ff..73a2da0065f5 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -22,13 +22,13 @@ | |||
22 | #include <linux/mmc/host.h> | 22 | #include <linux/mmc/host.h> |
23 | #include <linux/pm.h> | 23 | #include <linux/pm.h> |
24 | #include <linux/backlight.h> | 24 | #include <linux/backlight.h> |
25 | #include <linux/io.h> | ||
25 | 26 | ||
26 | #include <asm/setup.h> | 27 | #include <asm/setup.h> |
27 | #include <asm/memory.h> | 28 | #include <asm/memory.h> |
28 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
31 | #include <asm/io.h> | ||
32 | #include <asm/system.h> | 32 | #include <asm/system.h> |
33 | 33 | ||
34 | #include <asm/mach/arch.h> | 34 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/mach-pxa/ssp.c b/arch/arm/mach-pxa/ssp.c index 9bd93c5f28b2..2c31ec725688 100644 --- a/arch/arm/mach-pxa/ssp.c +++ b/arch/arm/mach-pxa/ssp.c | |||
@@ -28,8 +28,8 @@ | |||
28 | #include <linux/clk.h> | 28 | #include <linux/clk.h> |
29 | #include <linux/err.h> | 29 | #include <linux/err.h> |
30 | #include <linux/platform_device.h> | 30 | #include <linux/platform_device.h> |
31 | #include <linux/io.h> | ||
31 | 32 | ||
32 | #include <asm/io.h> | ||
33 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
34 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
35 | #include <mach/ssp.h> | 35 | #include <mach/ssp.h> |
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index 4f9c84ab781c..2f04d54711e7 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
@@ -27,10 +27,10 @@ | |||
27 | #include <linux/amba/clcd.h> | 27 | #include <linux/amba/clcd.h> |
28 | #include <linux/clocksource.h> | 28 | #include <linux/clocksource.h> |
29 | #include <linux/clockchips.h> | 29 | #include <linux/clockchips.h> |
30 | #include <linux/io.h> | ||
30 | 31 | ||
31 | #include <asm/system.h> | 32 | #include <asm/system.h> |
32 | #include <mach/hardware.h> | 33 | #include <mach/hardware.h> |
33 | #include <asm/io.h> | ||
34 | #include <asm/irq.h> | 34 | #include <asm/irq.h> |
35 | #include <asm/leds.h> | 35 | #include <asm/leds.h> |
36 | #include <asm/hardware/arm_timer.h> | 36 | #include <asm/hardware/arm_timer.h> |
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index 33dbbb41a663..3cea92c70d8f 100644 --- a/arch/arm/mach-realview/core.h +++ b/arch/arm/mach-realview/core.h | |||
@@ -23,9 +23,9 @@ | |||
23 | #define __ASM_ARCH_REALVIEW_H | 23 | #define __ASM_ARCH_REALVIEW_H |
24 | 24 | ||
25 | #include <linux/amba/bus.h> | 25 | #include <linux/amba/bus.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <asm/leds.h> | 28 | #include <asm/leds.h> |
28 | #include <asm/io.h> | ||
29 | 29 | ||
30 | #define AMBA_DEVICE(name,busid,base,plat) \ | 30 | #define AMBA_DEVICE(name,busid,base,plat) \ |
31 | static struct amba_device name##_device = { \ | 31 | static struct amba_device name##_device = { \ |
diff --git a/arch/arm/mach-realview/include/mach/system.h b/arch/arm/mach-realview/include/mach/system.h index 4d3c8f3f8053..a2f61c78adbf 100644 --- a/arch/arm/mach-realview/include/mach/system.h +++ b/arch/arm/mach-realview/include/mach/system.h | |||
@@ -21,8 +21,8 @@ | |||
21 | #ifndef __ASM_ARCH_SYSTEM_H | 21 | #ifndef __ASM_ARCH_SYSTEM_H |
22 | #define __ASM_ARCH_SYSTEM_H | 22 | #define __ASM_ARCH_SYSTEM_H |
23 | 23 | ||
24 | #include <linux/io.h> | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/io.h> | ||
26 | #include <mach/platform.h> | 26 | #include <mach/platform.h> |
27 | 27 | ||
28 | static inline void arch_idle(void) | 28 | static inline void arch_idle(void) |
diff --git a/arch/arm/mach-realview/localtimer.c b/arch/arm/mach-realview/localtimer.c index 82fa1f26e026..44d178cd5733 100644 --- a/arch/arm/mach-realview/localtimer.c +++ b/arch/arm/mach-realview/localtimer.c | |||
@@ -17,11 +17,11 @@ | |||
17 | #include <linux/percpu.h> | 17 | #include <linux/percpu.h> |
18 | #include <linux/clockchips.h> | 18 | #include <linux/clockchips.h> |
19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
20 | #include <linux/io.h> | ||
20 | 21 | ||
21 | #include <asm/hardware/arm_twd.h> | 22 | #include <asm/hardware/arm_twd.h> |
22 | #include <asm/hardware/gic.h> | 23 | #include <asm/hardware/gic.h> |
23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
24 | #include <asm/io.h> | ||
25 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
26 | 26 | ||
27 | static DEFINE_PER_CPU(struct clock_event_device, local_clockevent); | 27 | static DEFINE_PER_CPU(struct clock_event_device, local_clockevent); |
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c index 1907d22f4fed..e102aeb0f76e 100644 --- a/arch/arm/mach-realview/platsmp.c +++ b/arch/arm/mach-realview/platsmp.c | |||
@@ -13,10 +13,10 @@ | |||
13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
14 | #include <linux/device.h> | 14 | #include <linux/device.h> |
15 | #include <linux/smp.h> | 15 | #include <linux/smp.h> |
16 | #include <linux/io.h> | ||
16 | 17 | ||
17 | #include <asm/cacheflush.h> | 18 | #include <asm/cacheflush.h> |
18 | #include <mach/hardware.h> | 19 | #include <mach/hardware.h> |
19 | #include <asm/io.h> | ||
20 | #include <asm/mach-types.h> | 20 | #include <asm/mach-types.h> |
21 | 21 | ||
22 | #include <mach/board-eb.h> | 22 | #include <mach/board-eb.h> |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 19a9968fc5b9..eb829eb1ebe2 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
@@ -23,9 +23,9 @@ | |||
23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
24 | #include <linux/sysdev.h> | 24 | #include <linux/sysdev.h> |
25 | #include <linux/amba/bus.h> | 25 | #include <linux/amba/bus.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/leds.h> | 30 | #include <asm/leds.h> |
31 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index 0986cbd15943..cccdb3eb90fe 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c | |||
@@ -23,9 +23,9 @@ | |||
23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
24 | #include <linux/sysdev.h> | 24 | #include <linux/sysdev.h> |
25 | #include <linux/amba/bus.h> | 25 | #include <linux/amba/bus.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/leds.h> | 30 | #include <asm/leds.h> |
31 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c index f4e7135e3eb5..8b863148ec18 100644 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c | |||
@@ -23,9 +23,9 @@ | |||
23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
24 | #include <linux/sysdev.h> | 24 | #include <linux/sysdev.h> |
25 | #include <linux/amba/bus.h> | 25 | #include <linux/amba/bus.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/leds.h> | 30 | #include <asm/leds.h> |
31 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-rpc/dma.c b/arch/arm/mach-rpc/dma.c index 4b19fe484190..7958a30f8932 100644 --- a/arch/arm/mach-rpc/dma.c +++ b/arch/arm/mach-rpc/dma.c | |||
@@ -14,11 +14,11 @@ | |||
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/dma-mapping.h> | 16 | #include <linux/dma-mapping.h> |
17 | #include <linux/io.h> | ||
17 | 18 | ||
18 | #include <asm/page.h> | 19 | #include <asm/page.h> |
19 | #include <asm/dma.h> | 20 | #include <asm/dma.h> |
20 | #include <asm/fiq.h> | 21 | #include <asm/fiq.h> |
21 | #include <asm/io.h> | ||
22 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
diff --git a/arch/arm/mach-rpc/include/mach/memory.h b/arch/arm/mach-rpc/include/mach/memory.h index 05425d558ee7..9bf7e43e2863 100644 --- a/arch/arm/mach-rpc/include/mach/memory.h +++ b/arch/arm/mach-rpc/include/mach/memory.h | |||
@@ -36,4 +36,12 @@ | |||
36 | #define FLUSH_BASE_PHYS 0x00000000 | 36 | #define FLUSH_BASE_PHYS 0x00000000 |
37 | #define FLUSH_BASE 0xdf000000 | 37 | #define FLUSH_BASE 0xdf000000 |
38 | 38 | ||
39 | /* | ||
40 | * Sparsemem support. Each section is a maximum of 64MB. The sections | ||
41 | * are offset by 128MB and can cover 128MB, so that gives us a maximum | ||
42 | * of 29 physmem bits. | ||
43 | */ | ||
44 | #define MAX_PHYSMEM_BITS 29 | ||
45 | #define SECTION_SIZE_BITS 26 | ||
46 | |||
39 | #endif | 47 | #endif |
diff --git a/arch/arm/mach-rpc/include/mach/system.h b/arch/arm/mach-rpc/include/mach/system.h index 54d6e3f2d319..bd7268ba17e2 100644 --- a/arch/arm/mach-rpc/include/mach/system.h +++ b/arch/arm/mach-rpc/include/mach/system.h | |||
@@ -7,9 +7,9 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/io.h> | ||
10 | #include <mach/hardware.h> | 11 | #include <mach/hardware.h> |
11 | #include <asm/hardware/iomd.h> | 12 | #include <asm/hardware/iomd.h> |
12 | #include <asm/io.h> | ||
13 | 13 | ||
14 | static inline void arch_idle(void) | 14 | static inline void arch_idle(void) |
15 | { | 15 | { |
diff --git a/arch/arm/mach-rpc/include/mach/uncompress.h b/arch/arm/mach-rpc/include/mach/uncompress.h index baa9c866d7bf..d5862368c4f2 100644 --- a/arch/arm/mach-rpc/include/mach/uncompress.h +++ b/arch/arm/mach-rpc/include/mach/uncompress.h | |||
@@ -9,8 +9,8 @@ | |||
9 | */ | 9 | */ |
10 | #define VIDMEM ((char *)SCREEN_START) | 10 | #define VIDMEM ((char *)SCREEN_START) |
11 | 11 | ||
12 | #include <linux/io.h> | ||
12 | #include <mach/hardware.h> | 13 | #include <mach/hardware.h> |
13 | #include <asm/io.h> | ||
14 | #include <asm/setup.h> | 14 | #include <asm/setup.h> |
15 | #include <asm/page.h> | 15 | #include <asm/page.h> |
16 | 16 | ||
diff --git a/arch/arm/mach-rpc/irq.c b/arch/arm/mach-rpc/irq.c index 7a029621db43..9dd15d679c5d 100644 --- a/arch/arm/mach-rpc/irq.c +++ b/arch/arm/mach-rpc/irq.c | |||
@@ -1,10 +1,10 @@ | |||
1 | #include <linux/init.h> | 1 | #include <linux/init.h> |
2 | #include <linux/list.h> | 2 | #include <linux/list.h> |
3 | #include <linux/io.h> | ||
3 | 4 | ||
4 | #include <asm/mach/irq.h> | 5 | #include <asm/mach/irq.h> |
5 | #include <asm/hardware/iomd.h> | 6 | #include <asm/hardware/iomd.h> |
6 | #include <asm/irq.h> | 7 | #include <asm/irq.h> |
7 | #include <asm/io.h> | ||
8 | 8 | ||
9 | static void iomd_ack_irq_a(unsigned int irq) | 9 | static void iomd_ack_irq_a(unsigned int irq) |
10 | { | 10 | { |
diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c index ce8470fea887..e88d417736af 100644 --- a/arch/arm/mach-rpc/riscpc.c +++ b/arch/arm/mach-rpc/riscpc.c | |||
@@ -18,9 +18,9 @@ | |||
18 | #include <linux/device.h> | 18 | #include <linux/device.h> |
19 | #include <linux/serial_8250.h> | 19 | #include <linux/serial_8250.h> |
20 | #include <linux/ata_platform.h> | 20 | #include <linux/ata_platform.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <asm/elf.h> | 23 | #include <asm/elf.h> |
23 | #include <asm/io.h> | ||
24 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
25 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
26 | #include <asm/page.h> | 26 | #include <asm/page.h> |
diff --git a/arch/arm/mach-s3c2400/gpio.c b/arch/arm/mach-s3c2400/gpio.c index 148d0ddef3e8..7a7ed4174c8c 100644 --- a/arch/arm/mach-s3c2400/gpio.c +++ b/arch/arm/mach-s3c2400/gpio.c | |||
@@ -24,10 +24,10 @@ | |||
24 | #include <linux/module.h> | 24 | #include <linux/module.h> |
25 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
26 | #include <linux/ioport.h> | 26 | #include <linux/ioport.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #include <mach/regs-gpio.h> | 32 | #include <mach/regs-gpio.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2410/bast-irq.c b/arch/arm/mach-s3c2410/bast-irq.c index c66021b5fa4d..604224a2d9a6 100644 --- a/arch/arm/mach-s3c2410/bast-irq.c +++ b/arch/arm/mach-s3c2410/bast-irq.c | |||
@@ -25,12 +25,12 @@ | |||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/ioport.h> | 26 | #include <linux/ioport.h> |
27 | #include <linux/sysdev.h> | 27 | #include <linux/sysdev.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
30 | 31 | ||
31 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
32 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
33 | #include <asm/io.h> | ||
34 | 34 | ||
35 | #include <asm/mach/irq.h> | 35 | #include <asm/mach/irq.h> |
36 | 36 | ||
diff --git a/arch/arm/mach-s3c2410/clock.c b/arch/arm/mach-s3c2410/clock.c index 1322851d1acb..fef646c36b54 100644 --- a/arch/arm/mach-s3c2410/clock.c +++ b/arch/arm/mach-s3c2410/clock.c | |||
@@ -31,11 +31,11 @@ | |||
31 | #include <linux/mutex.h> | 31 | #include <linux/mutex.h> |
32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
33 | #include <linux/serial_core.h> | 33 | #include <linux/serial_core.h> |
34 | #include <linux/io.h> | ||
34 | 35 | ||
35 | #include <asm/mach/map.h> | 36 | #include <asm/mach/map.h> |
36 | 37 | ||
37 | #include <mach/hardware.h> | 38 | #include <mach/hardware.h> |
38 | #include <asm/io.h> | ||
39 | 39 | ||
40 | #include <asm/plat-s3c/regs-serial.h> | 40 | #include <asm/plat-s3c/regs-serial.h> |
41 | #include <mach/regs-clock.h> | 41 | #include <mach/regs-clock.h> |
diff --git a/arch/arm/mach-s3c2410/gpio.c b/arch/arm/mach-s3c2410/gpio.c index c6eefb1d590c..36a3132f39e7 100644 --- a/arch/arm/mach-s3c2410/gpio.c +++ b/arch/arm/mach-s3c2410/gpio.c | |||
@@ -25,10 +25,10 @@ | |||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <linux/ioport.h> | 27 | #include <linux/ioport.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
31 | #include <asm/io.h> | ||
32 | 32 | ||
33 | #include <mach/regs-gpio.h> | 33 | #include <mach/regs-gpio.h> |
34 | 34 | ||
diff --git a/arch/arm/mach-s3c2410/include/mach/system-reset.h b/arch/arm/mach-s3c2410/include/mach/system-reset.h index ec2defebf0d5..43535a0e7186 100644 --- a/arch/arm/mach-s3c2410/include/mach/system-reset.h +++ b/arch/arm/mach-s3c2410/include/mach/system-reset.h | |||
@@ -11,7 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <mach/hardware.h> | 13 | #include <mach/hardware.h> |
14 | #include <asm/io.h> | 14 | #include <linux/io.h> |
15 | 15 | ||
16 | #include <asm/plat-s3c/regs-watchdog.h> | 16 | #include <asm/plat-s3c/regs-watchdog.h> |
17 | #include <mach/regs-clock.h> | 17 | #include <mach/regs-clock.h> |
diff --git a/arch/arm/mach-s3c2410/include/mach/system.h b/arch/arm/mach-s3c2410/include/mach/system.h index e9f676bc0116..a8cbca6701e5 100644 --- a/arch/arm/mach-s3c2410/include/mach/system.h +++ b/arch/arm/mach-s3c2410/include/mach/system.h | |||
@@ -10,8 +10,8 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/io.h> | ||
13 | #include <mach/hardware.h> | 14 | #include <mach/hardware.h> |
14 | #include <asm/io.h> | ||
15 | 15 | ||
16 | #include <mach/map.h> | 16 | #include <mach/map.h> |
17 | #include <mach/idle.h> | 17 | #include <mach/idle.h> |
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c index f0de3c23ce78..527f88a288ec 100644 --- a/arch/arm/mach-s3c2410/mach-amlm5900.c +++ b/arch/arm/mach-s3c2410/mach-amlm5900.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <linux/platform_device.h> | 36 | #include <linux/platform_device.h> |
37 | #include <linux/proc_fs.h> | 37 | #include <linux/proc_fs.h> |
38 | #include <linux/serial_core.h> | 38 | #include <linux/serial_core.h> |
39 | #include <linux/io.h> | ||
39 | 40 | ||
40 | #include <asm/mach/arch.h> | 41 | #include <asm/mach/arch.h> |
41 | #include <asm/mach/map.h> | 42 | #include <asm/mach/map.h> |
@@ -43,7 +44,6 @@ | |||
43 | #include <asm/mach/flash.h> | 44 | #include <asm/mach/flash.h> |
44 | 45 | ||
45 | #include <mach/hardware.h> | 46 | #include <mach/hardware.h> |
46 | #include <asm/io.h> | ||
47 | #include <asm/irq.h> | 47 | #include <asm/irq.h> |
48 | #include <asm/mach-types.h> | 48 | #include <asm/mach-types.h> |
49 | #include <mach/fb.h> | 49 | #include <mach/fb.h> |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 24c6334fac89..e4368e6e7e6c 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/dm9000.h> | 22 | #include <linux/dm9000.h> |
23 | #include <linux/ata_platform.h> | 23 | #include <linux/ata_platform.h> |
24 | #include <linux/i2c.h> | 24 | #include <linux/i2c.h> |
25 | #include <linux/io.h> | ||
25 | 26 | ||
26 | #include <net/ax88796.h> | 27 | #include <net/ax88796.h> |
27 | 28 | ||
@@ -34,7 +35,6 @@ | |||
34 | #include <mach/bast-cpld.h> | 35 | #include <mach/bast-cpld.h> |
35 | 36 | ||
36 | #include <mach/hardware.h> | 37 | #include <mach/hardware.h> |
37 | #include <asm/io.h> | ||
38 | #include <asm/irq.h> | 38 | #include <asm/irq.h> |
39 | #include <asm/mach-types.h> | 39 | #include <asm/mach-types.h> |
40 | 40 | ||
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index e35933a46d10..85e710f2863b 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -20,13 +20,13 @@ | |||
20 | #include <linux/sysdev.h> | 20 | #include <linux/sysdev.h> |
21 | #include <linux/serial_core.h> | 21 | #include <linux/serial_core.h> |
22 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
26 | #include <asm/mach/irq.h> | 27 | #include <asm/mach/irq.h> |
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
32 | 32 | ||
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c index 80fe2ed0775c..3ece2d04934e 100644 --- a/arch/arm/mach-s3c2410/mach-n30.c +++ b/arch/arm/mach-s3c2410/mach-n30.c | |||
@@ -25,9 +25,9 @@ | |||
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/serial_core.h> | 26 | #include <linux/serial_core.h> |
27 | #include <linux/timer.h> | 27 | #include <linux/timer.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/io.h> | ||
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2410/mach-otom.c b/arch/arm/mach-s3c2410/mach-otom.c index 606ee15911b6..c4dfe3eabe1d 100644 --- a/arch/arm/mach-s3c2410/mach-otom.c +++ b/arch/arm/mach-s3c2410/mach-otom.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/serial_core.h> | 18 | #include <linux/serial_core.h> |
19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/io.h> | ||
20 | 21 | ||
21 | #include <asm/mach/arch.h> | 22 | #include <asm/mach/arch.h> |
22 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
@@ -25,7 +26,6 @@ | |||
25 | #include <mach/otom-map.h> | 26 | #include <mach/otom-map.h> |
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
31 | 31 | ||
diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c index 7d34844debde..97c13192315b 100644 --- a/arch/arm/mach-s3c2410/mach-qt2410.c +++ b/arch/arm/mach-s3c2410/mach-qt2410.c | |||
@@ -32,7 +32,7 @@ | |||
32 | #include <linux/serial_core.h> | 32 | #include <linux/serial_core.h> |
33 | #include <linux/spi/spi.h> | 33 | #include <linux/spi/spi.h> |
34 | #include <linux/spi/spi_bitbang.h> | 34 | #include <linux/spi/spi_bitbang.h> |
35 | 35 | #include <linux/io.h> | |
36 | #include <linux/mtd/mtd.h> | 36 | #include <linux/mtd/mtd.h> |
37 | #include <linux/mtd/nand.h> | 37 | #include <linux/mtd/nand.h> |
38 | #include <linux/mtd/nand_ecc.h> | 38 | #include <linux/mtd/nand_ecc.h> |
@@ -43,7 +43,6 @@ | |||
43 | #include <asm/mach/irq.h> | 43 | #include <asm/mach/irq.h> |
44 | 44 | ||
45 | #include <mach/hardware.h> | 45 | #include <mach/hardware.h> |
46 | #include <asm/io.h> | ||
47 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
48 | #include <asm/mach-types.h> | 47 | #include <asm/mach-types.h> |
49 | 48 | ||
diff --git a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c index b88939d72282..d49e58acb03b 100644 --- a/arch/arm/mach-s3c2410/mach-smdk2410.c +++ b/arch/arm/mach-s3c2410/mach-smdk2410.c | |||
@@ -36,13 +36,13 @@ | |||
36 | #include <linux/init.h> | 36 | #include <linux/init.h> |
37 | #include <linux/serial_core.h> | 37 | #include <linux/serial_core.h> |
38 | #include <linux/platform_device.h> | 38 | #include <linux/platform_device.h> |
39 | #include <linux/io.h> | ||
39 | 40 | ||
40 | #include <asm/mach/arch.h> | 41 | #include <asm/mach/arch.h> |
41 | #include <asm/mach/map.h> | 42 | #include <asm/mach/map.h> |
42 | #include <asm/mach/irq.h> | 43 | #include <asm/mach/irq.h> |
43 | 44 | ||
44 | #include <mach/hardware.h> | 45 | #include <mach/hardware.h> |
45 | #include <asm/io.h> | ||
46 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
47 | #include <asm/mach-types.h> | 47 | #include <asm/mach-types.h> |
48 | 48 | ||
diff --git a/arch/arm/mach-s3c2410/mach-tct_hammer.c b/arch/arm/mach-s3c2410/mach-tct_hammer.c index ec87306a8c24..cc2e79fe4f9f 100644 --- a/arch/arm/mach-s3c2410/mach-tct_hammer.c +++ b/arch/arm/mach-s3c2410/mach-tct_hammer.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <linux/device.h> | 33 | #include <linux/device.h> |
34 | #include <linux/platform_device.h> | 34 | #include <linux/platform_device.h> |
35 | #include <linux/serial_core.h> | 35 | #include <linux/serial_core.h> |
36 | #include <linux/io.h> | ||
36 | 37 | ||
37 | #include <asm/mach/arch.h> | 38 | #include <asm/mach/arch.h> |
38 | #include <asm/mach/map.h> | 39 | #include <asm/mach/map.h> |
@@ -40,7 +41,6 @@ | |||
40 | #include <asm/mach/flash.h> | 41 | #include <asm/mach/flash.h> |
41 | 42 | ||
42 | #include <mach/hardware.h> | 43 | #include <mach/hardware.h> |
43 | #include <asm/io.h> | ||
44 | #include <asm/irq.h> | 44 | #include <asm/irq.h> |
45 | #include <asm/mach-types.h> | 45 | #include <asm/mach-types.h> |
46 | 46 | ||
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index fbc0213d5485..ed3acb05c855 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/tty.h> | 25 | #include <linux/tty.h> |
26 | #include <linux/serial_8250.h> | 26 | #include <linux/serial_8250.h> |
27 | #include <linux/serial_reg.h> | 27 | #include <linux/serial_reg.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
30 | #include <asm/mach/map.h> | 31 | #include <asm/mach/map.h> |
@@ -36,7 +37,6 @@ | |||
36 | #include <mach/vr1000-cpld.h> | 37 | #include <mach/vr1000-cpld.h> |
37 | 38 | ||
38 | #include <mach/hardware.h> | 39 | #include <mach/hardware.h> |
39 | #include <asm/io.h> | ||
40 | #include <asm/irq.h> | 40 | #include <asm/irq.h> |
41 | #include <asm/mach-types.h> | 41 | #include <asm/mach-types.h> |
42 | 42 | ||
diff --git a/arch/arm/mach-s3c2410/pm.c b/arch/arm/mach-s3c2410/pm.c index ba43ff9e8164..733f8a227775 100644 --- a/arch/arm/mach-s3c2410/pm.c +++ b/arch/arm/mach-s3c2410/pm.c | |||
@@ -25,9 +25,9 @@ | |||
25 | #include <linux/errno.h> | 25 | #include <linux/errno.h> |
26 | #include <linux/time.h> | 26 | #include <linux/time.h> |
27 | #include <linux/sysdev.h> | 27 | #include <linux/sysdev.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c index 5d977f9c88ac..b1e658c917a0 100644 --- a/arch/arm/mach-s3c2410/s3c2410.c +++ b/arch/arm/mach-s3c2410/s3c2410.c | |||
@@ -19,13 +19,13 @@ | |||
19 | #include <linux/sysdev.h> | 19 | #include <linux/sysdev.h> |
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/io.h> | ||
22 | 23 | ||
23 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
24 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
25 | #include <asm/mach/irq.h> | 26 | #include <asm/mach/irq.h> |
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | 30 | ||
31 | #include <mach/regs-clock.h> | 31 | #include <mach/regs-clock.h> |
diff --git a/arch/arm/mach-s3c2410/usb-simtec.c b/arch/arm/mach-s3c2410/usb-simtec.c index 4dacf8a1750d..eb6fc0bfd47e 100644 --- a/arch/arm/mach-s3c2410/usb-simtec.c +++ b/arch/arm/mach-s3c2410/usb-simtec.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/timer.h> | 21 | #include <linux/timer.h> |
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/device.h> | 23 | #include <linux/device.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
@@ -32,7 +33,6 @@ | |||
32 | #include <mach/regs-gpio.h> | 33 | #include <mach/regs-gpio.h> |
33 | 34 | ||
34 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
35 | #include <asm/io.h> | ||
36 | #include <asm/irq.h> | 36 | #include <asm/irq.h> |
37 | 37 | ||
38 | #include <asm/plat-s3c24xx/devs.h> | 38 | #include <asm/plat-s3c24xx/devs.h> |
diff --git a/arch/arm/mach-s3c2412/clock.c b/arch/arm/mach-s3c2412/clock.c index af4b2ce516f9..5fbaac6054f8 100644 --- a/arch/arm/mach-s3c2412/clock.c +++ b/arch/arm/mach-s3c2412/clock.c | |||
@@ -31,11 +31,11 @@ | |||
31 | #include <linux/mutex.h> | 31 | #include <linux/mutex.h> |
32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
33 | #include <linux/serial_core.h> | 33 | #include <linux/serial_core.h> |
34 | #include <linux/io.h> | ||
34 | 35 | ||
35 | #include <asm/mach/map.h> | 36 | #include <asm/mach/map.h> |
36 | 37 | ||
37 | #include <mach/hardware.h> | 38 | #include <mach/hardware.h> |
38 | #include <asm/io.h> | ||
39 | 39 | ||
40 | #include <asm/plat-s3c/regs-serial.h> | 40 | #include <asm/plat-s3c/regs-serial.h> |
41 | #include <mach/regs-clock.h> | 41 | #include <mach/regs-clock.h> |
diff --git a/arch/arm/mach-s3c2412/dma.c b/arch/arm/mach-s3c2412/dma.c index 22fc04a3b533..dcfff6b8b958 100644 --- a/arch/arm/mach-s3c2412/dma.c +++ b/arch/arm/mach-s3c2412/dma.c | |||
@@ -16,10 +16,10 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/sysdev.h> | 17 | #include <linux/sysdev.h> |
18 | #include <linux/serial_core.h> | 18 | #include <linux/serial_core.h> |
19 | #include <linux/io.h> | ||
19 | 20 | ||
20 | #include <asm/dma.h> | 21 | #include <asm/dma.h> |
21 | #include <mach/dma.h> | 22 | #include <mach/dma.h> |
22 | #include <asm/io.h> | ||
23 | 23 | ||
24 | #include <asm/plat-s3c24xx/dma.h> | 24 | #include <asm/plat-s3c24xx/dma.h> |
25 | #include <asm/plat-s3c24xx/cpu.h> | 25 | #include <asm/plat-s3c24xx/cpu.h> |
diff --git a/arch/arm/mach-s3c2412/irq.c b/arch/arm/mach-s3c2412/irq.c index ac62b79044f4..1686950fa557 100644 --- a/arch/arm/mach-s3c2412/irq.c +++ b/arch/arm/mach-s3c2412/irq.c | |||
@@ -24,10 +24,10 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/sysdev.h> | 26 | #include <linux/sysdev.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #include <asm/mach/irq.h> | 32 | #include <asm/mach/irq.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2412/mach-smdk2413.c b/arch/arm/mach-s3c2412/mach-smdk2413.c index 80affb1ee4cd..8f8d9117b968 100644 --- a/arch/arm/mach-s3c2412/mach-smdk2413.c +++ b/arch/arm/mach-s3c2412/mach-smdk2413.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/io.h> | ||
22 | 23 | ||
23 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
24 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
@@ -27,7 +28,6 @@ | |||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/hardware/iomd.h> | 29 | #include <asm/hardware/iomd.h> |
29 | #include <asm/setup.h> | 30 | #include <asm/setup.h> |
30 | #include <asm/io.h> | ||
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2412/mach-vstms.c b/arch/arm/mach-s3c2412/mach-vstms.c index 7a08b3789915..bb9bf63b2e02 100644 --- a/arch/arm/mach-s3c2412/mach-vstms.c +++ b/arch/arm/mach-s3c2412/mach-vstms.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/serial_core.h> | 18 | #include <linux/serial_core.h> |
19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | 20 | #include <linux/io.h> | |
21 | #include <linux/mtd/mtd.h> | 21 | #include <linux/mtd/mtd.h> |
22 | #include <linux/mtd/nand.h> | 22 | #include <linux/mtd/nand.h> |
23 | #include <linux/mtd/nand_ecc.h> | 23 | #include <linux/mtd/nand_ecc.h> |
@@ -29,7 +29,6 @@ | |||
29 | 29 | ||
30 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
31 | #include <asm/setup.h> | 31 | #include <asm/setup.h> |
32 | #include <asm/io.h> | ||
33 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
34 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
35 | 34 | ||
diff --git a/arch/arm/mach-s3c2412/pm.c b/arch/arm/mach-s3c2412/pm.c index 737523a4e037..9540ef752f73 100644 --- a/arch/arm/mach-s3c2412/pm.c +++ b/arch/arm/mach-s3c2412/pm.c | |||
@@ -18,9 +18,9 @@ | |||
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/sysdev.h> | 19 | #include <linux/sysdev.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/io.h> | ||
24 | #include <asm/irq.h> | 24 | #include <asm/irq.h> |
25 | 25 | ||
26 | #include <mach/regs-power.h> | 26 | #include <mach/regs-power.h> |
diff --git a/arch/arm/mach-s3c2412/s3c2412.c b/arch/arm/mach-s3c2412/s3c2412.c index d278010b9f60..42440fc55681 100644 --- a/arch/arm/mach-s3c2412/s3c2412.c +++ b/arch/arm/mach-s3c2412/s3c2412.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/sysdev.h> | 20 | #include <linux/sysdev.h> |
21 | #include <linux/serial_core.h> | 21 | #include <linux/serial_core.h> |
22 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
@@ -27,7 +28,6 @@ | |||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/proc-fns.h> | 30 | #include <asm/proc-fns.h> |
30 | #include <asm/io.h> | ||
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | 32 | ||
33 | #include <mach/reset.h> | 33 | #include <mach/reset.h> |
diff --git a/arch/arm/mach-s3c2440/clock.c b/arch/arm/mach-s3c2440/clock.c index 95567e6daea1..40503a65bacf 100644 --- a/arch/arm/mach-s3c2440/clock.c +++ b/arch/arm/mach-s3c2440/clock.c | |||
@@ -33,11 +33,11 @@ | |||
33 | #include <linux/ioport.h> | 33 | #include <linux/ioport.h> |
34 | #include <linux/mutex.h> | 34 | #include <linux/mutex.h> |
35 | #include <linux/clk.h> | 35 | #include <linux/clk.h> |
36 | #include <linux/io.h> | ||
36 | 37 | ||
37 | #include <mach/hardware.h> | 38 | #include <mach/hardware.h> |
38 | #include <asm/atomic.h> | 39 | #include <asm/atomic.h> |
39 | #include <asm/irq.h> | 40 | #include <asm/irq.h> |
40 | #include <asm/io.h> | ||
41 | 41 | ||
42 | #include <mach/regs-clock.h> | 42 | #include <mach/regs-clock.h> |
43 | 43 | ||
diff --git a/arch/arm/mach-s3c2440/dsc.c b/arch/arm/mach-s3c2440/dsc.c index c0c67438d0a4..4f7d06baf0d3 100644 --- a/arch/arm/mach-s3c2440/dsc.c +++ b/arch/arm/mach-s3c2440/dsc.c | |||
@@ -15,13 +15,13 @@ | |||
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/io.h> | ||
18 | 19 | ||
19 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
20 | #include <asm/mach/map.h> | 21 | #include <asm/mach/map.h> |
21 | #include <asm/mach/irq.h> | 22 | #include <asm/mach/irq.h> |
22 | 23 | ||
23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
24 | #include <asm/io.h> | ||
25 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
26 | 26 | ||
27 | #include <mach/regs-gpio.h> | 27 | #include <mach/regs-gpio.h> |
diff --git a/arch/arm/mach-s3c2440/irq.c b/arch/arm/mach-s3c2440/irq.c index 276b823f4e27..93fff75220cf 100644 --- a/arch/arm/mach-s3c2440/irq.c +++ b/arch/arm/mach-s3c2440/irq.c | |||
@@ -24,10 +24,10 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/sysdev.h> | 26 | #include <linux/sysdev.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #include <asm/mach/irq.h> | 32 | #include <asm/mach/irq.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c index 441f4bc09472..19eb0e5269ac 100644 --- a/arch/arm/mach-s3c2440/mach-anubis.c +++ b/arch/arm/mach-s3c2440/mach-anubis.c | |||
@@ -19,7 +19,7 @@ | |||
19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/ata_platform.h> | 20 | #include <linux/ata_platform.h> |
21 | #include <linux/i2c.h> | 21 | #include <linux/i2c.h> |
22 | 22 | #include <linux/io.h> | |
23 | #include <linux/sm501.h> | 23 | #include <linux/sm501.h> |
24 | #include <linux/sm501-regs.h> | 24 | #include <linux/sm501-regs.h> |
25 | 25 | ||
@@ -32,7 +32,6 @@ | |||
32 | #include <mach/anubis-cpld.h> | 32 | #include <mach/anubis-cpld.h> |
33 | 33 | ||
34 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
35 | #include <asm/io.h> | ||
36 | #include <asm/irq.h> | 35 | #include <asm/irq.h> |
37 | #include <asm/mach-types.h> | 36 | #include <asm/mach-types.h> |
38 | 37 | ||
diff --git a/arch/arm/mach-s3c2440/mach-nexcoder.c b/arch/arm/mach-s3c2440/mach-nexcoder.c index 1a5e7027b41b..49e828d1d4d8 100644 --- a/arch/arm/mach-s3c2440/mach-nexcoder.c +++ b/arch/arm/mach-s3c2440/mach-nexcoder.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/string.h> | 21 | #include <linux/string.h> |
22 | #include <linux/serial_core.h> | 22 | #include <linux/serial_core.h> |
23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <linux/mtd/map.h> | 26 | #include <linux/mtd/map.h> |
26 | 27 | ||
@@ -30,7 +31,6 @@ | |||
30 | 31 | ||
31 | #include <asm/setup.h> | 32 | #include <asm/setup.h> |
32 | #include <mach/hardware.h> | 33 | #include <mach/hardware.h> |
33 | #include <asm/io.h> | ||
34 | #include <asm/irq.h> | 34 | #include <asm/irq.h> |
35 | #include <asm/mach-types.h> | 35 | #include <asm/mach-types.h> |
36 | 36 | ||
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c index 8b83f93b6102..85144aa52c27 100644 --- a/arch/arm/mach-s3c2440/mach-osiris.c +++ b/arch/arm/mach-s3c2440/mach-osiris.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/clk.h> | 21 | #include <linux/clk.h> |
22 | #include <linux/i2c.h> | 22 | #include <linux/i2c.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
@@ -29,7 +30,6 @@ | |||
29 | #include <mach/osiris-cpld.h> | 30 | #include <mach/osiris-cpld.h> |
30 | 31 | ||
31 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
32 | #include <asm/io.h> | ||
33 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
34 | #include <asm/mach-types.h> | 34 | #include <asm/mach-types.h> |
35 | 35 | ||
diff --git a/arch/arm/mach-s3c2440/mach-rx3715.c b/arch/arm/mach-s3c2440/mach-rx3715.c index e0b07e6a0a18..a4c690456d19 100644 --- a/arch/arm/mach-s3c2440/mach-rx3715.c +++ b/arch/arm/mach-s3c2440/mach-rx3715.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
24 | #include <linux/serial_core.h> | 24 | #include <linux/serial_core.h> |
25 | #include <linux/serial.h> | 25 | #include <linux/serial.h> |
26 | 26 | #include <linux/io.h> | |
27 | #include <linux/mtd/mtd.h> | 27 | #include <linux/mtd/mtd.h> |
28 | #include <linux/mtd/nand.h> | 28 | #include <linux/mtd/nand.h> |
29 | #include <linux/mtd/nand_ecc.h> | 29 | #include <linux/mtd/nand_ecc.h> |
@@ -34,7 +34,6 @@ | |||
34 | #include <asm/mach/irq.h> | 34 | #include <asm/mach/irq.h> |
35 | 35 | ||
36 | #include <mach/hardware.h> | 36 | #include <mach/hardware.h> |
37 | #include <asm/io.h> | ||
38 | #include <asm/irq.h> | 37 | #include <asm/irq.h> |
39 | #include <asm/mach-types.h> | 38 | #include <asm/mach-types.h> |
40 | 39 | ||
diff --git a/arch/arm/mach-s3c2440/mach-smdk2440.c b/arch/arm/mach-s3c2440/mach-smdk2440.c index 327c8f371984..7ac60b869e7f 100644 --- a/arch/arm/mach-s3c2440/mach-smdk2440.c +++ b/arch/arm/mach-s3c2440/mach-smdk2440.c | |||
@@ -21,13 +21,13 @@ | |||
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/serial_core.h> | 22 | #include <linux/serial_core.h> |
23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
27 | #include <asm/mach/irq.h> | 28 | #include <asm/mach/irq.h> |
28 | 29 | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/io.h> | ||
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2440/s3c2440.c b/arch/arm/mach-s3c2440/s3c2440.c index d6b9a92d284e..c81cdb330712 100644 --- a/arch/arm/mach-s3c2440/s3c2440.c +++ b/arch/arm/mach-s3c2440/s3c2440.c | |||
@@ -20,13 +20,13 @@ | |||
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/sysdev.h> | 21 | #include <linux/sysdev.h> |
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
26 | #include <asm/mach/irq.h> | 27 | #include <asm/mach/irq.h> |
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | 31 | ||
32 | #include <asm/plat-s3c24xx/s3c2440.h> | 32 | #include <asm/plat-s3c24xx/s3c2440.h> |
diff --git a/arch/arm/mach-s3c2442/clock.c b/arch/arm/mach-s3c2442/clock.c index 569b5c3d334a..18f2ce4d7b23 100644 --- a/arch/arm/mach-s3c2442/clock.c +++ b/arch/arm/mach-s3c2442/clock.c | |||
@@ -33,11 +33,11 @@ | |||
33 | #include <linux/ioport.h> | 33 | #include <linux/ioport.h> |
34 | #include <linux/mutex.h> | 34 | #include <linux/mutex.h> |
35 | #include <linux/clk.h> | 35 | #include <linux/clk.h> |
36 | #include <linux/io.h> | ||
36 | 37 | ||
37 | #include <mach/hardware.h> | 38 | #include <mach/hardware.h> |
38 | #include <asm/atomic.h> | 39 | #include <asm/atomic.h> |
39 | #include <asm/irq.h> | 40 | #include <asm/irq.h> |
40 | #include <asm/io.h> | ||
41 | 41 | ||
42 | #include <mach/regs-clock.h> | 42 | #include <mach/regs-clock.h> |
43 | 43 | ||
diff --git a/arch/arm/mach-s3c2443/clock.c b/arch/arm/mach-s3c2443/clock.c index 6a8d7cced4a2..603b5ea1deab 100644 --- a/arch/arm/mach-s3c2443/clock.c +++ b/arch/arm/mach-s3c2443/clock.c | |||
@@ -31,11 +31,11 @@ | |||
31 | #include <linux/mutex.h> | 31 | #include <linux/mutex.h> |
32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
33 | #include <linux/serial_core.h> | 33 | #include <linux/serial_core.h> |
34 | #include <linux/io.h> | ||
34 | 35 | ||
35 | #include <asm/mach/map.h> | 36 | #include <asm/mach/map.h> |
36 | 37 | ||
37 | #include <mach/hardware.h> | 38 | #include <mach/hardware.h> |
38 | #include <asm/io.h> | ||
39 | 39 | ||
40 | #include <mach/regs-s3c2443-clock.h> | 40 | #include <mach/regs-s3c2443-clock.h> |
41 | 41 | ||
diff --git a/arch/arm/mach-s3c2443/dma.c b/arch/arm/mach-s3c2443/dma.c index c1ff03aebfda..5d9ee772659b 100644 --- a/arch/arm/mach-s3c2443/dma.c +++ b/arch/arm/mach-s3c2443/dma.c | |||
@@ -16,10 +16,10 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/sysdev.h> | 17 | #include <linux/sysdev.h> |
18 | #include <linux/serial_core.h> | 18 | #include <linux/serial_core.h> |
19 | #include <linux/io.h> | ||
19 | 20 | ||
20 | #include <asm/dma.h> | 21 | #include <asm/dma.h> |
21 | #include <mach/dma.h> | 22 | #include <mach/dma.h> |
22 | #include <asm/io.h> | ||
23 | 23 | ||
24 | #include <asm/plat-s3c24xx/dma.h> | 24 | #include <asm/plat-s3c24xx/dma.h> |
25 | #include <asm/plat-s3c24xx/cpu.h> | 25 | #include <asm/plat-s3c24xx/cpu.h> |
diff --git a/arch/arm/mach-s3c2443/irq.c b/arch/arm/mach-s3c2443/irq.c index 9674de7223fd..bd89c8361b3c 100644 --- a/arch/arm/mach-s3c2443/irq.c +++ b/arch/arm/mach-s3c2443/irq.c | |||
@@ -24,10 +24,10 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/sysdev.h> | 26 | #include <linux/sysdev.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #include <asm/mach/irq.h> | 32 | #include <asm/mach/irq.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2443/mach-smdk2443.c b/arch/arm/mach-s3c2443/mach-smdk2443.c index e3c0d587bd10..f0d119dc0409 100644 --- a/arch/arm/mach-s3c2443/mach-smdk2443.c +++ b/arch/arm/mach-s3c2443/mach-smdk2443.c | |||
@@ -21,13 +21,13 @@ | |||
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/serial_core.h> | 22 | #include <linux/serial_core.h> |
23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
27 | #include <asm/mach/irq.h> | 28 | #include <asm/mach/irq.h> |
28 | 29 | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <asm/io.h> | ||
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-s3c2443/s3c2443.c b/arch/arm/mach-s3c2443/s3c2443.c index 37793f924b5e..c973b68cc735 100644 --- a/arch/arm/mach-s3c2443/s3c2443.c +++ b/arch/arm/mach-s3c2443/s3c2443.c | |||
@@ -20,13 +20,13 @@ | |||
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/sysdev.h> | 21 | #include <linux/sysdev.h> |
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
26 | #include <asm/mach/irq.h> | 27 | #include <asm/mach/irq.h> |
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | 31 | ||
32 | #include <mach/regs-s3c2443-clock.h> | 32 | #include <mach/regs-s3c2443-clock.h> |
diff --git a/arch/arm/mach-sa1100/cpu-sa1100.c b/arch/arm/mach-sa1100/cpu-sa1100.c index da3a898a6d66..f7fa03478efd 100644 --- a/arch/arm/mach-sa1100/cpu-sa1100.c +++ b/arch/arm/mach-sa1100/cpu-sa1100.c | |||
@@ -88,6 +88,8 @@ | |||
88 | #include <linux/init.h> | 88 | #include <linux/init.h> |
89 | #include <linux/cpufreq.h> | 89 | #include <linux/cpufreq.h> |
90 | 90 | ||
91 | #include <asm/cputype.h> | ||
92 | |||
91 | #include <mach/hardware.h> | 93 | #include <mach/hardware.h> |
92 | 94 | ||
93 | #include "generic.h" | 95 | #include "generic.h" |
@@ -240,7 +242,7 @@ static struct cpufreq_driver sa1100_driver = { | |||
240 | 242 | ||
241 | static int __init sa1100_dram_init(void) | 243 | static int __init sa1100_dram_init(void) |
242 | { | 244 | { |
243 | if ((processor_id & CPU_SA1100_MASK) == CPU_SA1100_ID) | 245 | if (cpu_is_sa1100()) |
244 | return cpufreq_register_driver(&sa1100_driver); | 246 | return cpufreq_register_driver(&sa1100_driver); |
245 | else | 247 | else |
246 | return -ENODEV; | 248 | return -ENODEV; |
diff --git a/arch/arm/mach-sa1100/cpu-sa1110.c b/arch/arm/mach-sa1100/cpu-sa1110.c index 029dbfbbafcf..3e4fb214eada 100644 --- a/arch/arm/mach-sa1100/cpu-sa1110.c +++ b/arch/arm/mach-sa1100/cpu-sa1110.c | |||
@@ -23,10 +23,11 @@ | |||
23 | #include <linux/cpufreq.h> | 23 | #include <linux/cpufreq.h> |
24 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
25 | #include <linux/init.h> | 25 | #include <linux/init.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
29 | #include <asm/cputype.h> | ||
28 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/system.h> | 31 | #include <asm/system.h> |
31 | 32 | ||
32 | #include "generic.h" | 33 | #include "generic.h" |
diff --git a/arch/arm/mach-sa1100/include/mach/SA-1100.h b/arch/arm/mach-sa1100/include/mach/SA-1100.h index 62aaf04a3906..4f7ea012e1e5 100644 --- a/arch/arm/mach-sa1100/include/mach/SA-1100.h +++ b/arch/arm/mach-sa1100/include/mach/SA-1100.h | |||
@@ -2054,19 +2054,3 @@ | |||
2054 | /* active display mode) */ | 2054 | /* active display mode) */ |
2055 | #define LCCR3_OutEnH (LCCR3_OEP*0) /* Output Enable active High */ | 2055 | #define LCCR3_OutEnH (LCCR3_OEP*0) /* Output Enable active High */ |
2056 | #define LCCR3_OutEnL (LCCR3_OEP*1) /* Output Enable active Low */ | 2056 | #define LCCR3_OutEnL (LCCR3_OEP*1) /* Output Enable active Low */ |
2057 | |||
2058 | #ifndef __ASSEMBLY__ | ||
2059 | extern unsigned int processor_id; | ||
2060 | #endif | ||
2061 | |||
2062 | #define CPU_REVISION (processor_id & 15) | ||
2063 | #define CPU_SA1110_A0 (0) | ||
2064 | #define CPU_SA1110_B0 (4) | ||
2065 | #define CPU_SA1110_B1 (5) | ||
2066 | #define CPU_SA1110_B2 (6) | ||
2067 | #define CPU_SA1110_B4 (8) | ||
2068 | |||
2069 | #define CPU_SA1100_ID (0x4401a110) | ||
2070 | #define CPU_SA1100_MASK (0xfffffff0) | ||
2071 | #define CPU_SA1110_ID (0x6901b110) | ||
2072 | #define CPU_SA1110_MASK (0xfffffff0) | ||
diff --git a/arch/arm/mach-sa1100/include/mach/hardware.h b/arch/arm/mach-sa1100/include/mach/hardware.h index 5976435f42c2..b70846c096aa 100644 --- a/arch/arm/mach-sa1100/include/mach/hardware.h +++ b/arch/arm/mach-sa1100/include/mach/hardware.h | |||
@@ -36,8 +36,26 @@ | |||
36 | #define io_v2p( x ) \ | 36 | #define io_v2p( x ) \ |
37 | ( (((x)&0x00ffffff) | (((x)&(0x30000000>>VIO_SHIFT))<<VIO_SHIFT)) + PIO_START ) | 37 | ( (((x)&0x00ffffff) | (((x)&(0x30000000>>VIO_SHIFT))<<VIO_SHIFT)) + PIO_START ) |
38 | 38 | ||
39 | #define CPU_SA1110_A0 (0) | ||
40 | #define CPU_SA1110_B0 (4) | ||
41 | #define CPU_SA1110_B1 (5) | ||
42 | #define CPU_SA1110_B2 (6) | ||
43 | #define CPU_SA1110_B4 (8) | ||
44 | |||
45 | #define CPU_SA1100_ID (0x4401a110) | ||
46 | #define CPU_SA1100_MASK (0xfffffff0) | ||
47 | #define CPU_SA1110_ID (0x6901b110) | ||
48 | #define CPU_SA1110_MASK (0xfffffff0) | ||
49 | |||
39 | #ifndef __ASSEMBLY__ | 50 | #ifndef __ASSEMBLY__ |
40 | 51 | ||
52 | #include <asm/cputype.h> | ||
53 | |||
54 | #define CPU_REVISION (read_cpuid_id() & 15) | ||
55 | |||
56 | #define cpu_is_sa1100() ((read_cpuid_id() & CPU_SA1100_MASK) == CPU_SA1100_ID) | ||
57 | #define cpu_is_sa1110() ((read_cpuid_id() & CPU_SA1110_MASK) == CPU_SA1110_ID) | ||
58 | |||
41 | # define __REG(x) (*((volatile unsigned long *)io_p2v(x))) | 59 | # define __REG(x) (*((volatile unsigned long *)io_p2v(x))) |
42 | # define __PREG(x) (io_v2p((unsigned long)&(x))) | 60 | # define __PREG(x) (io_v2p((unsigned long)&(x))) |
43 | 61 | ||
diff --git a/arch/arm/mach-sa1100/include/mach/memory.h b/arch/arm/mach-sa1100/include/mach/memory.h index 29f639e2afc6..1c127b68581d 100644 --- a/arch/arm/mach-sa1100/include/mach/memory.h +++ b/arch/arm/mach-sa1100/include/mach/memory.h | |||
@@ -40,23 +40,21 @@ void sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes); | |||
40 | #define __bus_to_virt(x) __phys_to_virt(x) | 40 | #define __bus_to_virt(x) __phys_to_virt(x) |
41 | 41 | ||
42 | /* | 42 | /* |
43 | * Because of the wide memory address space between physical RAM banks on the | 43 | * Because of the wide memory address space between physical RAM banks on the |
44 | * SA1100, it's much convenient to use Linux's NUMA support to implement our | 44 | * SA1100, it's much convenient to use Linux's SparseMEM support to implement |
45 | * memory map representation. Assuming all memory nodes have equal access | 45 | * our memory map representation. Assuming all memory nodes have equal access |
46 | * characteristics, we then have generic discontiguous memory support. | 46 | * characteristics, we then have generic discontiguous memory support. |
47 | * | 47 | * |
48 | * Of course, all this isn't mandatory for SA1100 implementations with only | 48 | * The sparsemem banks are matched with the physical memory bank addresses |
49 | * one used memory bank. For those, simply undefine CONFIG_DISCONTIGMEM. | 49 | * which are incidentally the same as virtual addresses. |
50 | * | ||
51 | * The nodes are matched with the physical memory bank addresses which are | ||
52 | * incidentally the same as virtual addresses. | ||
53 | * | 50 | * |
54 | * node 0: 0xc0000000 - 0xc7ffffff | 51 | * node 0: 0xc0000000 - 0xc7ffffff |
55 | * node 1: 0xc8000000 - 0xcfffffff | 52 | * node 1: 0xc8000000 - 0xcfffffff |
56 | * node 2: 0xd0000000 - 0xd7ffffff | 53 | * node 2: 0xd0000000 - 0xd7ffffff |
57 | * node 3: 0xd8000000 - 0xdfffffff | 54 | * node 3: 0xd8000000 - 0xdfffffff |
58 | */ | 55 | */ |
59 | #define NODE_MEM_SIZE_BITS 27 | 56 | #define MAX_PHYSMEM_BITS 32 |
57 | #define SECTION_SIZE_BITS 27 | ||
60 | 58 | ||
61 | /* | 59 | /* |
62 | * Cache flushing area - SA1100 zero bank | 60 | * Cache flushing area - SA1100 zero bank |
diff --git a/arch/arm/mach-sa1100/pleb.c b/arch/arm/mach-sa1100/pleb.c index ec519ecfef1b..e45d3a1890bc 100644 --- a/arch/arm/mach-sa1100/pleb.c +++ b/arch/arm/mach-sa1100/pleb.c | |||
@@ -8,11 +8,10 @@ | |||
8 | #include <linux/ioport.h> | 8 | #include <linux/ioport.h> |
9 | #include <linux/platform_device.h> | 9 | #include <linux/platform_device.h> |
10 | #include <linux/irq.h> | 10 | #include <linux/irq.h> |
11 | 11 | #include <linux/io.h> | |
12 | #include <linux/mtd/partitions.h> | 12 | #include <linux/mtd/partitions.h> |
13 | 13 | ||
14 | #include <mach/hardware.h> | 14 | #include <mach/hardware.h> |
15 | #include <asm/io.h> | ||
16 | #include <asm/setup.h> | 15 | #include <asm/setup.h> |
17 | #include <asm/mach-types.h> | 16 | #include <asm/mach-types.h> |
18 | 17 | ||
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c index 8dd635317959..3c74534f7fee 100644 --- a/arch/arm/mach-sa1100/simpad.c +++ b/arch/arm/mach-sa1100/simpad.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
13 | #include <linux/mtd/mtd.h> | 13 | #include <linux/mtd/mtd.h> |
14 | #include <linux/mtd/partitions.h> | 14 | #include <linux/mtd/partitions.h> |
15 | #include <linux/io.h> | ||
15 | 16 | ||
16 | #include <asm/irq.h> | 17 | #include <asm/irq.h> |
17 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
@@ -27,7 +28,6 @@ | |||
27 | 28 | ||
28 | #include <linux/serial_core.h> | 29 | #include <linux/serial_core.h> |
29 | #include <linux/ioport.h> | 30 | #include <linux/ioport.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #include "generic.h" | 32 | #include "generic.h" |
33 | 33 | ||
diff --git a/arch/arm/mach-sa1100/ssp.c b/arch/arm/mach-sa1100/ssp.c index 641f361c56f4..b20ff93b84a5 100644 --- a/arch/arm/mach-sa1100/ssp.c +++ b/arch/arm/mach-sa1100/ssp.c | |||
@@ -17,8 +17,8 @@ | |||
17 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/io.h> | ||
20 | 21 | ||
21 | #include <asm/io.h> | ||
22 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include <asm/hardware/ssp.h> | 24 | #include <asm/hardware/ssp.h> |
diff --git a/arch/arm/mach-shark/core.c b/arch/arm/mach-shark/core.c index 09d9f33d4072..a9400d984451 100644 --- a/arch/arm/mach-shark/core.c +++ b/arch/arm/mach-shark/core.c | |||
@@ -9,10 +9,10 @@ | |||
9 | #include <linux/irq.h> | 9 | #include <linux/irq.h> |
10 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
11 | #include <linux/serial_8250.h> | 11 | #include <linux/serial_8250.h> |
12 | #include <linux/io.h> | ||
12 | 13 | ||
13 | #include <asm/setup.h> | 14 | #include <asm/setup.h> |
14 | #include <asm/mach-types.h> | 15 | #include <asm/mach-types.h> |
15 | #include <asm/io.h> | ||
16 | #include <asm/leds.h> | 16 | #include <asm/leds.h> |
17 | #include <asm/param.h> | 17 | #include <asm/param.h> |
18 | 18 | ||
diff --git a/arch/arm/mach-shark/include/mach/system.h b/arch/arm/mach-shark/include/mach/system.h index 85aceef6f874..e45bd734a03e 100644 --- a/arch/arm/mach-shark/include/mach/system.h +++ b/arch/arm/mach-shark/include/mach/system.h | |||
@@ -6,7 +6,7 @@ | |||
6 | #ifndef __ASM_ARCH_SYSTEM_H | 6 | #ifndef __ASM_ARCH_SYSTEM_H |
7 | #define __ASM_ARCH_SYSTEM_H | 7 | #define __ASM_ARCH_SYSTEM_H |
8 | 8 | ||
9 | #include <asm/io.h> | 9 | #include <linux/io.h> |
10 | 10 | ||
11 | static void arch_reset(char mode) | 11 | static void arch_reset(char mode) |
12 | { | 12 | { |
diff --git a/arch/arm/mach-shark/irq.c b/arch/arm/mach-shark/irq.c index 44b0811b400c..c04eb6a1e2be 100644 --- a/arch/arm/mach-shark/irq.c +++ b/arch/arm/mach-shark/irq.c | |||
@@ -11,9 +11,9 @@ | |||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/io.h> | ||
14 | 15 | ||
15 | #include <asm/irq.h> | 16 | #include <asm/irq.h> |
16 | #include <asm/io.h> | ||
17 | #include <asm/mach/irq.h> | 17 | #include <asm/mach/irq.h> |
18 | 18 | ||
19 | /* | 19 | /* |
diff --git a/arch/arm/mach-shark/leds.c b/arch/arm/mach-shark/leds.c index b1896471aa3c..8bd8d6bb4d92 100644 --- a/arch/arm/mach-shark/leds.c +++ b/arch/arm/mach-shark/leds.c | |||
@@ -20,10 +20,10 @@ | |||
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/spinlock.h> | 21 | #include <linux/spinlock.h> |
22 | #include <linux/ioport.h> | 22 | #include <linux/ioport.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/leds.h> | 26 | #include <asm/leds.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/system.h> | 27 | #include <asm/system.h> |
28 | 28 | ||
29 | #define LED_STATE_ENABLED 1 | 29 | #define LED_STATE_ENABLED 1 |
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index d75e795c893e..534f93282177 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -28,11 +28,11 @@ | |||
28 | #include <linux/amba/clcd.h> | 28 | #include <linux/amba/clcd.h> |
29 | #include <linux/clocksource.h> | 29 | #include <linux/clocksource.h> |
30 | #include <linux/clockchips.h> | 30 | #include <linux/clockchips.h> |
31 | #include <linux/io.h> | ||
31 | 32 | ||
32 | #include <asm/cnt32_to_63.h> | 33 | #include <asm/cnt32_to_63.h> |
33 | #include <asm/system.h> | 34 | #include <asm/system.h> |
34 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
35 | #include <asm/io.h> | ||
36 | #include <asm/irq.h> | 36 | #include <asm/irq.h> |
37 | #include <asm/leds.h> | 37 | #include <asm/leds.h> |
38 | #include <asm/hardware/arm_timer.h> | 38 | #include <asm/hardware/arm_timer.h> |
diff --git a/arch/arm/mach-versatile/include/mach/system.h b/arch/arm/mach-versatile/include/mach/system.h index 91fa559c7cca..c59e6100c7e3 100644 --- a/arch/arm/mach-versatile/include/mach/system.h +++ b/arch/arm/mach-versatile/include/mach/system.h | |||
@@ -21,8 +21,8 @@ | |||
21 | #ifndef __ASM_ARCH_SYSTEM_H | 21 | #ifndef __ASM_ARCH_SYSTEM_H |
22 | #define __ASM_ARCH_SYSTEM_H | 22 | #define __ASM_ARCH_SYSTEM_H |
23 | 23 | ||
24 | #include <linux/io.h> | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/io.h> | ||
26 | #include <mach/platform.h> | 26 | #include <mach/platform.h> |
27 | 27 | ||
28 | static inline void arch_idle(void) | 28 | static inline void arch_idle(void) |
diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c index 36f23f896503..7161ba23b58a 100644 --- a/arch/arm/mach-versatile/pci.c +++ b/arch/arm/mach-versatile/pci.c | |||
@@ -21,9 +21,9 @@ | |||
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <linux/spinlock.h> | 22 | #include <linux/spinlock.h> |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | #include <linux/io.h> | ||
24 | 25 | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
28 | #include <asm/system.h> | 28 | #include <asm/system.h> |
29 | #include <asm/mach/pci.h> | 29 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-versatile/versatile_ab.c b/arch/arm/mach-versatile/versatile_ab.c index 76375c64413a..bb8ec7724f79 100644 --- a/arch/arm/mach-versatile/versatile_ab.c +++ b/arch/arm/mach-versatile/versatile_ab.c | |||
@@ -23,9 +23,9 @@ | |||
23 | #include <linux/device.h> | 23 | #include <linux/device.h> |
24 | #include <linux/sysdev.h> | 24 | #include <linux/sysdev.h> |
25 | #include <linux/amba/bus.h> | 25 | #include <linux/amba/bus.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
31 | 31 | ||
diff --git a/arch/arm/mach-versatile/versatile_pb.c b/arch/arm/mach-versatile/versatile_pb.c index 1725f019fc85..aa051c0884f8 100644 --- a/arch/arm/mach-versatile/versatile_pb.c +++ b/arch/arm/mach-versatile/versatile_pb.c | |||
@@ -23,9 +23,9 @@ | |||
23 | #include <linux/device.h> | 23 | #include <linux/device.h> |
24 | #include <linux/sysdev.h> | 24 | #include <linux/sysdev.h> |
25 | #include <linux/amba/bus.h> | 25 | #include <linux/amba/bus.h> |
26 | #include <linux/io.h> | ||
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
31 | 31 | ||
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile index 2e27a8c8372b..480f78a3611a 100644 --- a/arch/arm/mm/Makefile +++ b/arch/arm/mm/Makefile | |||
@@ -2,7 +2,7 @@ | |||
2 | # Makefile for the linux arm-specific parts of the memory manager. | 2 | # Makefile for the linux arm-specific parts of the memory manager. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := consistent.o extable.o fault.o init.o \ | 5 | obj-y := dma-mapping.o extable.o fault.o init.o \ |
6 | iomap.o | 6 | iomap.o |
7 | 7 | ||
8 | obj-$(CONFIG_MMU) += fault-armv.o flush.o ioremap.o mmap.o \ | 8 | obj-$(CONFIG_MMU) += fault-armv.o flush.o ioremap.o mmap.o \ |
diff --git a/arch/arm/mm/abort-ev7.S b/arch/arm/mm/abort-ev7.S index eb90bce38e14..2e6dc040c654 100644 --- a/arch/arm/mm/abort-ev7.S +++ b/arch/arm/mm/abort-ev7.S | |||
@@ -30,3 +30,4 @@ ENTRY(v7_early_abort) | |||
30 | * New designs should not need to patch up faults. | 30 | * New designs should not need to patch up faults. |
31 | */ | 31 | */ |
32 | mov pc, lr | 32 | mov pc, lr |
33 | ENDPROC(v7_early_abort) | ||
diff --git a/arch/arm/mm/abort-nommu.S b/arch/arm/mm/abort-nommu.S index a7cc7f9ee45d..625e580945b5 100644 --- a/arch/arm/mm/abort-nommu.S +++ b/arch/arm/mm/abort-nommu.S | |||
@@ -17,3 +17,4 @@ ENTRY(nommu_early_abort) | |||
17 | mov r0, #0 @ clear r0, r1 (no FSR/FAR) | 17 | mov r0, #0 @ clear r0, r1 (no FSR/FAR) |
18 | mov r1, #0 | 18 | mov r1, #0 |
19 | mov pc, lr | 19 | mov pc, lr |
20 | ENDPROC(nommu_early_abort) | ||
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index e162cca5917f..133e65d166b3 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c | |||
@@ -17,8 +17,8 @@ | |||
17 | #include <linux/string.h> | 17 | #include <linux/string.h> |
18 | #include <linux/proc_fs.h> | 18 | #include <linux/proc_fs.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/uaccess.h> | ||
20 | 21 | ||
21 | #include <asm/uaccess.h> | ||
22 | #include <asm/unaligned.h> | 22 | #include <asm/unaligned.h> |
23 | 23 | ||
24 | #include "fault.h" | 24 | #include "fault.h" |
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 76b800a95191..b480f1d3591f 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c | |||
@@ -18,9 +18,9 @@ | |||
18 | */ | 18 | */ |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/spinlock.h> | 20 | #include <linux/spinlock.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <asm/cacheflush.h> | 23 | #include <asm/cacheflush.h> |
23 | #include <asm/io.h> | ||
24 | #include <asm/hardware/cache-l2x0.h> | 24 | #include <asm/hardware/cache-l2x0.h> |
25 | 25 | ||
26 | #define CACHE_LINE_SIZE 32 | 26 | #define CACHE_LINE_SIZE 32 |
diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S index 35ffc4d95997..d19c2bec2b1f 100644 --- a/arch/arm/mm/cache-v7.S +++ b/arch/arm/mm/cache-v7.S | |||
@@ -66,6 +66,7 @@ finished: | |||
66 | mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr | 66 | mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr |
67 | isb | 67 | isb |
68 | mov pc, lr | 68 | mov pc, lr |
69 | ENDPROC(v7_flush_dcache_all) | ||
69 | 70 | ||
70 | /* | 71 | /* |
71 | * v7_flush_cache_all() | 72 | * v7_flush_cache_all() |
@@ -85,6 +86,7 @@ ENTRY(v7_flush_kern_cache_all) | |||
85 | mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate | 86 | mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate |
86 | ldmfd sp!, {r4-r5, r7, r9-r11, lr} | 87 | ldmfd sp!, {r4-r5, r7, r9-r11, lr} |
87 | mov pc, lr | 88 | mov pc, lr |
89 | ENDPROC(v7_flush_kern_cache_all) | ||
88 | 90 | ||
89 | /* | 91 | /* |
90 | * v7_flush_cache_all() | 92 | * v7_flush_cache_all() |
@@ -110,6 +112,8 @@ ENTRY(v7_flush_user_cache_all) | |||
110 | */ | 112 | */ |
111 | ENTRY(v7_flush_user_cache_range) | 113 | ENTRY(v7_flush_user_cache_range) |
112 | mov pc, lr | 114 | mov pc, lr |
115 | ENDPROC(v7_flush_user_cache_all) | ||
116 | ENDPROC(v7_flush_user_cache_range) | ||
113 | 117 | ||
114 | /* | 118 | /* |
115 | * v7_coherent_kern_range(start,end) | 119 | * v7_coherent_kern_range(start,end) |
@@ -155,6 +159,8 @@ ENTRY(v7_coherent_user_range) | |||
155 | dsb | 159 | dsb |
156 | isb | 160 | isb |
157 | mov pc, lr | 161 | mov pc, lr |
162 | ENDPROC(v7_coherent_kern_range) | ||
163 | ENDPROC(v7_coherent_user_range) | ||
158 | 164 | ||
159 | /* | 165 | /* |
160 | * v7_flush_kern_dcache_page(kaddr) | 166 | * v7_flush_kern_dcache_page(kaddr) |
@@ -174,6 +180,7 @@ ENTRY(v7_flush_kern_dcache_page) | |||
174 | blo 1b | 180 | blo 1b |
175 | dsb | 181 | dsb |
176 | mov pc, lr | 182 | mov pc, lr |
183 | ENDPROC(v7_flush_kern_dcache_page) | ||
177 | 184 | ||
178 | /* | 185 | /* |
179 | * v7_dma_inv_range(start,end) | 186 | * v7_dma_inv_range(start,end) |
@@ -202,6 +209,7 @@ ENTRY(v7_dma_inv_range) | |||
202 | blo 1b | 209 | blo 1b |
203 | dsb | 210 | dsb |
204 | mov pc, lr | 211 | mov pc, lr |
212 | ENDPROC(v7_dma_inv_range) | ||
205 | 213 | ||
206 | /* | 214 | /* |
207 | * v7_dma_clean_range(start,end) | 215 | * v7_dma_clean_range(start,end) |
@@ -219,6 +227,7 @@ ENTRY(v7_dma_clean_range) | |||
219 | blo 1b | 227 | blo 1b |
220 | dsb | 228 | dsb |
221 | mov pc, lr | 229 | mov pc, lr |
230 | ENDPROC(v7_dma_clean_range) | ||
222 | 231 | ||
223 | /* | 232 | /* |
224 | * v7_dma_flush_range(start,end) | 233 | * v7_dma_flush_range(start,end) |
@@ -236,6 +245,7 @@ ENTRY(v7_dma_flush_range) | |||
236 | blo 1b | 245 | blo 1b |
237 | dsb | 246 | dsb |
238 | mov pc, lr | 247 | mov pc, lr |
248 | ENDPROC(v7_dma_flush_range) | ||
239 | 249 | ||
240 | __INITDATA | 250 | __INITDATA |
241 | 251 | ||
diff --git a/arch/arm/mm/cache-xsc3l2.c b/arch/arm/mm/cache-xsc3l2.c index 158bd96763d3..10b1bae1a258 100644 --- a/arch/arm/mm/cache-xsc3l2.c +++ b/arch/arm/mm/cache-xsc3l2.c | |||
@@ -18,10 +18,11 @@ | |||
18 | */ | 18 | */ |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/spinlock.h> | 20 | #include <linux/spinlock.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <asm/system.h> | 23 | #include <asm/system.h> |
24 | #include <asm/cputype.h> | ||
23 | #include <asm/cacheflush.h> | 25 | #include <asm/cacheflush.h> |
24 | #include <asm/io.h> | ||
25 | 26 | ||
26 | #define CR_L2 (1 << 26) | 27 | #define CR_L2 (1 << 26) |
27 | 28 | ||
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c index 3adb79257f43..0e21c0767580 100644 --- a/arch/arm/mm/copypage-v6.c +++ b/arch/arm/mm/copypage-v6.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <asm/shmparam.h> | 16 | #include <asm/shmparam.h> |
17 | #include <asm/tlbflush.h> | 17 | #include <asm/tlbflush.h> |
18 | #include <asm/cacheflush.h> | 18 | #include <asm/cacheflush.h> |
19 | #include <asm/cachetype.h> | ||
19 | 20 | ||
20 | #include "mm.h" | 21 | #include "mm.h" |
21 | 22 | ||
diff --git a/arch/arm/mm/consistent.c b/arch/arm/mm/dma-mapping.c index db7b3e38ef1d..67960017dc8f 100644 --- a/arch/arm/mm/consistent.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/mm/consistent.c | 2 | * linux/arch/arm/mm/dma-mapping.c |
3 | * | 3 | * |
4 | * Copyright (C) 2000-2004 Russell King | 4 | * Copyright (C) 2000-2004 Russell King |
5 | * | 5 | * |
@@ -512,3 +512,105 @@ void dma_cache_maint(const void *start, size_t size, int direction) | |||
512 | } | 512 | } |
513 | } | 513 | } |
514 | EXPORT_SYMBOL(dma_cache_maint); | 514 | EXPORT_SYMBOL(dma_cache_maint); |
515 | |||
516 | /** | ||
517 | * dma_map_sg - map a set of SG buffers for streaming mode DMA | ||
518 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | ||
519 | * @sg: list of buffers | ||
520 | * @nents: number of buffers to map | ||
521 | * @dir: DMA transfer direction | ||
522 | * | ||
523 | * Map a set of buffers described by scatterlist in streaming mode for DMA. | ||
524 | * This is the scatter-gather version of the dma_map_single interface. | ||
525 | * Here the scatter gather list elements are each tagged with the | ||
526 | * appropriate dma address and length. They are obtained via | ||
527 | * sg_dma_{address,length}. | ||
528 | * | ||
529 | * Device ownership issues as mentioned for dma_map_single are the same | ||
530 | * here. | ||
531 | */ | ||
532 | int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | ||
533 | enum dma_data_direction dir) | ||
534 | { | ||
535 | struct scatterlist *s; | ||
536 | int i, j; | ||
537 | |||
538 | for_each_sg(sg, s, nents, i) { | ||
539 | s->dma_address = dma_map_page(dev, sg_page(s), s->offset, | ||
540 | s->length, dir); | ||
541 | if (dma_mapping_error(dev, s->dma_address)) | ||
542 | goto bad_mapping; | ||
543 | } | ||
544 | return nents; | ||
545 | |||
546 | bad_mapping: | ||
547 | for_each_sg(sg, s, i, j) | ||
548 | dma_unmap_page(dev, sg_dma_address(s), sg_dma_len(s), dir); | ||
549 | return 0; | ||
550 | } | ||
551 | EXPORT_SYMBOL(dma_map_sg); | ||
552 | |||
553 | /** | ||
554 | * dma_unmap_sg - unmap a set of SG buffers mapped by dma_map_sg | ||
555 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | ||
556 | * @sg: list of buffers | ||
557 | * @nents: number of buffers to unmap (returned from dma_map_sg) | ||
558 | * @dir: DMA transfer direction (same as was passed to dma_map_sg) | ||
559 | * | ||
560 | * Unmap a set of streaming mode DMA translations. Again, CPU access | ||
561 | * rules concerning calls here are the same as for dma_unmap_single(). | ||
562 | */ | ||
563 | void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents, | ||
564 | enum dma_data_direction dir) | ||
565 | { | ||
566 | struct scatterlist *s; | ||
567 | int i; | ||
568 | |||
569 | for_each_sg(sg, s, nents, i) | ||
570 | dma_unmap_page(dev, sg_dma_address(s), sg_dma_len(s), dir); | ||
571 | } | ||
572 | EXPORT_SYMBOL(dma_unmap_sg); | ||
573 | |||
574 | /** | ||
575 | * dma_sync_sg_for_cpu | ||
576 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | ||
577 | * @sg: list of buffers | ||
578 | * @nents: number of buffers to map (returned from dma_map_sg) | ||
579 | * @dir: DMA transfer direction (same as was passed to dma_map_sg) | ||
580 | */ | ||
581 | void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, | ||
582 | int nents, enum dma_data_direction dir) | ||
583 | { | ||
584 | struct scatterlist *s; | ||
585 | int i; | ||
586 | |||
587 | for_each_sg(sg, s, nents, i) { | ||
588 | dmabounce_sync_for_cpu(dev, sg_dma_address(s), 0, | ||
589 | sg_dma_len(s), dir); | ||
590 | } | ||
591 | } | ||
592 | EXPORT_SYMBOL(dma_sync_sg_for_cpu); | ||
593 | |||
594 | /** | ||
595 | * dma_sync_sg_for_device | ||
596 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | ||
597 | * @sg: list of buffers | ||
598 | * @nents: number of buffers to map (returned from dma_map_sg) | ||
599 | * @dir: DMA transfer direction (same as was passed to dma_map_sg) | ||
600 | */ | ||
601 | void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, | ||
602 | int nents, enum dma_data_direction dir) | ||
603 | { | ||
604 | struct scatterlist *s; | ||
605 | int i; | ||
606 | |||
607 | for_each_sg(sg, s, nents, i) { | ||
608 | if (!dmabounce_sync_for_device(dev, sg_dma_address(s), 0, | ||
609 | sg_dma_len(s), dir)) | ||
610 | continue; | ||
611 | |||
612 | if (!arch_is_coherent()) | ||
613 | dma_cache_maint(sg_virt(s), s->length, dir); | ||
614 | } | ||
615 | } | ||
616 | EXPORT_SYMBOL(dma_sync_sg_for_device); | ||
diff --git a/arch/arm/mm/extable.c b/arch/arm/mm/extable.c index 9592c3ee4cb2..9d285626bc7d 100644 --- a/arch/arm/mm/extable.c +++ b/arch/arm/mm/extable.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * linux/arch/arm/mm/extable.c | 2 | * linux/arch/arm/mm/extable.c |
3 | */ | 3 | */ |
4 | #include <linux/module.h> | 4 | #include <linux/module.h> |
5 | #include <asm/uaccess.h> | 5 | #include <linux/uaccess.h> |
6 | 6 | ||
7 | int fixup_exception(struct pt_regs *regs) | 7 | int fixup_exception(struct pt_regs *regs) |
8 | { | 8 | { |
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c index a8ec97b4752e..af6ed6ef9a81 100644 --- a/arch/arm/mm/fault-armv.c +++ b/arch/arm/mm/fault-armv.c | |||
@@ -17,7 +17,9 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/pagemap.h> | 18 | #include <linux/pagemap.h> |
19 | 19 | ||
20 | #include <asm/bugs.h> | ||
20 | #include <asm/cacheflush.h> | 21 | #include <asm/cacheflush.h> |
22 | #include <asm/cachetype.h> | ||
21 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
22 | #include <asm/tlbflush.h> | 24 | #include <asm/tlbflush.h> |
23 | 25 | ||
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index 28ad7ab1c0cd..2df8d9facf57 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c | |||
@@ -13,11 +13,11 @@ | |||
13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/kprobes.h> | 15 | #include <linux/kprobes.h> |
16 | #include <linux/uaccess.h> | ||
16 | 17 | ||
17 | #include <asm/system.h> | 18 | #include <asm/system.h> |
18 | #include <asm/pgtable.h> | 19 | #include <asm/pgtable.h> |
19 | #include <asm/tlbflush.h> | 20 | #include <asm/tlbflush.h> |
20 | #include <asm/uaccess.h> | ||
21 | 21 | ||
22 | #include "fault.h" | 22 | #include "fault.h" |
23 | 23 | ||
@@ -72,9 +72,8 @@ void show_pte(struct mm_struct *mm, unsigned long addr) | |||
72 | } | 72 | } |
73 | 73 | ||
74 | pmd = pmd_offset(pgd, addr); | 74 | pmd = pmd_offset(pgd, addr); |
75 | #if PTRS_PER_PMD != 1 | 75 | if (PTRS_PER_PMD != 1) |
76 | printk(", *pmd=%08lx", pmd_val(*pmd)); | 76 | printk(", *pmd=%08lx", pmd_val(*pmd)); |
77 | #endif | ||
78 | 77 | ||
79 | if (pmd_none(*pmd)) | 78 | if (pmd_none(*pmd)) |
80 | break; | 79 | break; |
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index 029ee65fda2b..0fa9bf388f0b 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/pagemap.h> | 12 | #include <linux/pagemap.h> |
13 | 13 | ||
14 | #include <asm/cacheflush.h> | 14 | #include <asm/cacheflush.h> |
15 | #include <asm/cachetype.h> | ||
15 | #include <asm/system.h> | 16 | #include <asm/system.h> |
16 | #include <asm/tlbflush.h> | 17 | #include <asm/tlbflush.h> |
17 | 18 | ||
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 30a69d67d673..82c4b4217989 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
@@ -26,9 +26,42 @@ | |||
26 | 26 | ||
27 | #include "mm.h" | 27 | #include "mm.h" |
28 | 28 | ||
29 | extern void _text, _etext, __data_start, _end, __init_begin, __init_end; | 29 | static unsigned long phys_initrd_start __initdata = 0; |
30 | extern unsigned long phys_initrd_start; | 30 | static unsigned long phys_initrd_size __initdata = 0; |
31 | extern unsigned long phys_initrd_size; | 31 | |
32 | static void __init early_initrd(char **p) | ||
33 | { | ||
34 | unsigned long start, size; | ||
35 | |||
36 | start = memparse(*p, p); | ||
37 | if (**p == ',') { | ||
38 | size = memparse((*p) + 1, p); | ||
39 | |||
40 | phys_initrd_start = start; | ||
41 | phys_initrd_size = size; | ||
42 | } | ||
43 | } | ||
44 | __early_param("initrd=", early_initrd); | ||
45 | |||
46 | static int __init parse_tag_initrd(const struct tag *tag) | ||
47 | { | ||
48 | printk(KERN_WARNING "ATAG_INITRD is deprecated; " | ||
49 | "please update your bootloader.\n"); | ||
50 | phys_initrd_start = __virt_to_phys(tag->u.initrd.start); | ||
51 | phys_initrd_size = tag->u.initrd.size; | ||
52 | return 0; | ||
53 | } | ||
54 | |||
55 | __tagtable(ATAG_INITRD, parse_tag_initrd); | ||
56 | |||
57 | static int __init parse_tag_initrd2(const struct tag *tag) | ||
58 | { | ||
59 | phys_initrd_start = tag->u.initrd.start; | ||
60 | phys_initrd_size = tag->u.initrd.size; | ||
61 | return 0; | ||
62 | } | ||
63 | |||
64 | __tagtable(ATAG_INITRD2, parse_tag_initrd2); | ||
32 | 65 | ||
33 | /* | 66 | /* |
34 | * This is used to pass memory configuration data from paging_init | 67 | * This is used to pass memory configuration data from paging_init |
@@ -36,10 +69,6 @@ extern unsigned long phys_initrd_size; | |||
36 | */ | 69 | */ |
37 | static struct meminfo meminfo = { 0, }; | 70 | static struct meminfo meminfo = { 0, }; |
38 | 71 | ||
39 | #define for_each_nodebank(iter,mi,no) \ | ||
40 | for (iter = 0; iter < mi->nr_banks; iter++) \ | ||
41 | if (mi->bank[iter].node == no) | ||
42 | |||
43 | void show_mem(void) | 72 | void show_mem(void) |
44 | { | 73 | { |
45 | int free = 0, total = 0, reserved = 0; | 74 | int free = 0, total = 0, reserved = 0; |
@@ -50,14 +79,15 @@ void show_mem(void) | |||
50 | show_free_areas(); | 79 | show_free_areas(); |
51 | for_each_online_node(node) { | 80 | for_each_online_node(node) { |
52 | pg_data_t *n = NODE_DATA(node); | 81 | pg_data_t *n = NODE_DATA(node); |
53 | struct page *map = n->node_mem_map - n->node_start_pfn; | 82 | struct page *map = pgdat_page_nr(n, 0) - n->node_start_pfn; |
54 | 83 | ||
55 | for_each_nodebank (i,mi,node) { | 84 | for_each_nodebank (i,mi,node) { |
85 | struct membank *bank = &mi->bank[i]; | ||
56 | unsigned int pfn1, pfn2; | 86 | unsigned int pfn1, pfn2; |
57 | struct page *page, *end; | 87 | struct page *page, *end; |
58 | 88 | ||
59 | pfn1 = __phys_to_pfn(mi->bank[i].start); | 89 | pfn1 = bank_pfn_start(bank); |
60 | pfn2 = __phys_to_pfn(mi->bank[i].size + mi->bank[i].start); | 90 | pfn2 = bank_pfn_end(bank); |
61 | 91 | ||
62 | page = map + pfn1; | 92 | page = map + pfn1; |
63 | end = map + pfn2; | 93 | end = map + pfn2; |
@@ -96,17 +126,17 @@ void show_mem(void) | |||
96 | static unsigned int __init | 126 | static unsigned int __init |
97 | find_bootmap_pfn(int node, struct meminfo *mi, unsigned int bootmap_pages) | 127 | find_bootmap_pfn(int node, struct meminfo *mi, unsigned int bootmap_pages) |
98 | { | 128 | { |
99 | unsigned int start_pfn, bank, bootmap_pfn; | 129 | unsigned int start_pfn, i, bootmap_pfn; |
100 | 130 | ||
101 | start_pfn = PAGE_ALIGN(__pa(&_end)) >> PAGE_SHIFT; | 131 | start_pfn = PAGE_ALIGN(__pa(&_end)) >> PAGE_SHIFT; |
102 | bootmap_pfn = 0; | 132 | bootmap_pfn = 0; |
103 | 133 | ||
104 | for_each_nodebank(bank, mi, node) { | 134 | for_each_nodebank(i, mi, node) { |
135 | struct membank *bank = &mi->bank[i]; | ||
105 | unsigned int start, end; | 136 | unsigned int start, end; |
106 | 137 | ||
107 | start = mi->bank[bank].start >> PAGE_SHIFT; | 138 | start = bank_pfn_start(bank); |
108 | end = (mi->bank[bank].size + | 139 | end = bank_pfn_end(bank); |
109 | mi->bank[bank].start) >> PAGE_SHIFT; | ||
110 | 140 | ||
111 | if (end < start_pfn) | 141 | if (end < start_pfn) |
112 | continue; | 142 | continue; |
@@ -145,13 +175,10 @@ static int __init check_initrd(struct meminfo *mi) | |||
145 | initrd_node = -1; | 175 | initrd_node = -1; |
146 | 176 | ||
147 | for (i = 0; i < mi->nr_banks; i++) { | 177 | for (i = 0; i < mi->nr_banks; i++) { |
148 | unsigned long bank_end; | 178 | struct membank *bank = &mi->bank[i]; |
149 | 179 | if (bank_phys_start(bank) <= phys_initrd_start && | |
150 | bank_end = mi->bank[i].start + mi->bank[i].size; | 180 | end <= bank_phys_end(bank)) |
151 | 181 | initrd_node = bank->node; | |
152 | if (mi->bank[i].start <= phys_initrd_start && | ||
153 | end <= bank_end) | ||
154 | initrd_node = mi->bank[i].node; | ||
155 | } | 182 | } |
156 | } | 183 | } |
157 | 184 | ||
@@ -171,19 +198,17 @@ static inline void map_memory_bank(struct membank *bank) | |||
171 | #ifdef CONFIG_MMU | 198 | #ifdef CONFIG_MMU |
172 | struct map_desc map; | 199 | struct map_desc map; |
173 | 200 | ||
174 | map.pfn = __phys_to_pfn(bank->start); | 201 | map.pfn = bank_pfn_start(bank); |
175 | map.virtual = __phys_to_virt(bank->start); | 202 | map.virtual = __phys_to_virt(bank_phys_start(bank)); |
176 | map.length = bank->size; | 203 | map.length = bank_phys_size(bank); |
177 | map.type = MT_MEMORY; | 204 | map.type = MT_MEMORY; |
178 | 205 | ||
179 | create_mapping(&map); | 206 | create_mapping(&map); |
180 | #endif | 207 | #endif |
181 | } | 208 | } |
182 | 209 | ||
183 | static unsigned long __init | 210 | static unsigned long __init bootmem_init_node(int node, struct meminfo *mi) |
184 | bootmem_init_node(int node, int initrd_node, struct meminfo *mi) | ||
185 | { | 211 | { |
186 | unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES]; | ||
187 | unsigned long start_pfn, end_pfn, boot_pfn; | 212 | unsigned long start_pfn, end_pfn, boot_pfn; |
188 | unsigned int boot_pages; | 213 | unsigned int boot_pages; |
189 | pg_data_t *pgdat; | 214 | pg_data_t *pgdat; |
@@ -199,8 +224,8 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi) | |||
199 | struct membank *bank = &mi->bank[i]; | 224 | struct membank *bank = &mi->bank[i]; |
200 | unsigned long start, end; | 225 | unsigned long start, end; |
201 | 226 | ||
202 | start = bank->start >> PAGE_SHIFT; | 227 | start = bank_pfn_start(bank); |
203 | end = (bank->start + bank->size) >> PAGE_SHIFT; | 228 | end = bank_pfn_end(bank); |
204 | 229 | ||
205 | if (start_pfn > start) | 230 | if (start_pfn > start) |
206 | start_pfn = start; | 231 | start_pfn = start; |
@@ -230,8 +255,11 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi) | |||
230 | pgdat = NODE_DATA(node); | 255 | pgdat = NODE_DATA(node); |
231 | init_bootmem_node(pgdat, boot_pfn, start_pfn, end_pfn); | 256 | init_bootmem_node(pgdat, boot_pfn, start_pfn, end_pfn); |
232 | 257 | ||
233 | for_each_nodebank(i, mi, node) | 258 | for_each_nodebank(i, mi, node) { |
234 | free_bootmem_node(pgdat, mi->bank[i].start, mi->bank[i].size); | 259 | struct membank *bank = &mi->bank[i]; |
260 | free_bootmem_node(pgdat, bank_phys_start(bank), bank_phys_size(bank)); | ||
261 | memory_present(node, bank_pfn_start(bank), bank_pfn_end(bank)); | ||
262 | } | ||
235 | 263 | ||
236 | /* | 264 | /* |
237 | * Reserve the bootmem bitmap for this node. | 265 | * Reserve the bootmem bitmap for this node. |
@@ -239,31 +267,39 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi) | |||
239 | reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT, | 267 | reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT, |
240 | boot_pages << PAGE_SHIFT, BOOTMEM_DEFAULT); | 268 | boot_pages << PAGE_SHIFT, BOOTMEM_DEFAULT); |
241 | 269 | ||
242 | /* | 270 | return end_pfn; |
243 | * Reserve any special node zero regions. | 271 | } |
244 | */ | ||
245 | if (node == 0) | ||
246 | reserve_node_zero(pgdat); | ||
247 | 272 | ||
273 | static void __init bootmem_reserve_initrd(int node) | ||
274 | { | ||
248 | #ifdef CONFIG_BLK_DEV_INITRD | 275 | #ifdef CONFIG_BLK_DEV_INITRD |
249 | /* | 276 | pg_data_t *pgdat = NODE_DATA(node); |
250 | * If the initrd is in this node, reserve its memory. | 277 | int res; |
251 | */ | 278 | |
252 | if (node == initrd_node) { | 279 | res = reserve_bootmem_node(pgdat, phys_initrd_start, |
253 | int res = reserve_bootmem_node(pgdat, phys_initrd_start, | 280 | phys_initrd_size, BOOTMEM_EXCLUSIVE); |
254 | phys_initrd_size, BOOTMEM_EXCLUSIVE); | 281 | |
255 | 282 | if (res == 0) { | |
256 | if (res == 0) { | 283 | initrd_start = __phys_to_virt(phys_initrd_start); |
257 | initrd_start = __phys_to_virt(phys_initrd_start); | 284 | initrd_end = initrd_start + phys_initrd_size; |
258 | initrd_end = initrd_start + phys_initrd_size; | 285 | } else { |
259 | } else { | 286 | printk(KERN_ERR |
260 | printk(KERN_ERR | 287 | "INITRD: 0x%08lx+0x%08lx overlaps in-use " |
261 | "INITRD: 0x%08lx+0x%08lx overlaps in-use " | 288 | "memory region - disabling initrd\n", |
262 | "memory region - disabling initrd\n", | 289 | phys_initrd_start, phys_initrd_size); |
263 | phys_initrd_start, phys_initrd_size); | ||
264 | } | ||
265 | } | 290 | } |
266 | #endif | 291 | #endif |
292 | } | ||
293 | |||
294 | static void __init bootmem_free_node(int node, struct meminfo *mi) | ||
295 | { | ||
296 | unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES]; | ||
297 | unsigned long start_pfn, end_pfn; | ||
298 | pg_data_t *pgdat = NODE_DATA(node); | ||
299 | int i; | ||
300 | |||
301 | start_pfn = pgdat->bdata->node_min_pfn; | ||
302 | end_pfn = pgdat->bdata->node_low_pfn; | ||
267 | 303 | ||
268 | /* | 304 | /* |
269 | * initialise the zones within this node. | 305 | * initialise the zones within this node. |
@@ -284,7 +320,7 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi) | |||
284 | */ | 320 | */ |
285 | zhole_size[0] = zone_size[0]; | 321 | zhole_size[0] = zone_size[0]; |
286 | for_each_nodebank(i, mi, node) | 322 | for_each_nodebank(i, mi, node) |
287 | zhole_size[0] -= mi->bank[i].size >> PAGE_SHIFT; | 323 | zhole_size[0] -= bank_pfn_size(&mi->bank[i]); |
288 | 324 | ||
289 | /* | 325 | /* |
290 | * Adjust the sizes according to any special requirements for | 326 | * Adjust the sizes according to any special requirements for |
@@ -293,21 +329,12 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi) | |||
293 | arch_adjust_zones(node, zone_size, zhole_size); | 329 | arch_adjust_zones(node, zone_size, zhole_size); |
294 | 330 | ||
295 | free_area_init_node(node, zone_size, start_pfn, zhole_size); | 331 | free_area_init_node(node, zone_size, start_pfn, zhole_size); |
296 | |||
297 | return end_pfn; | ||
298 | } | 332 | } |
299 | 333 | ||
300 | void __init bootmem_init(struct meminfo *mi) | 334 | void __init bootmem_init(struct meminfo *mi) |
301 | { | 335 | { |
302 | unsigned long memend_pfn = 0; | 336 | unsigned long memend_pfn = 0; |
303 | int node, initrd_node, i; | 337 | int node, initrd_node; |
304 | |||
305 | /* | ||
306 | * Invalidate the node number for empty or invalid memory banks | ||
307 | */ | ||
308 | for (i = 0; i < mi->nr_banks; i++) | ||
309 | if (mi->bank[i].size == 0 || mi->bank[i].node >= MAX_NUMNODES) | ||
310 | mi->bank[i].node = -1; | ||
311 | 338 | ||
312 | memcpy(&meminfo, mi, sizeof(meminfo)); | 339 | memcpy(&meminfo, mi, sizeof(meminfo)); |
313 | 340 | ||
@@ -320,9 +347,19 @@ void __init bootmem_init(struct meminfo *mi) | |||
320 | * Run through each node initialising the bootmem allocator. | 347 | * Run through each node initialising the bootmem allocator. |
321 | */ | 348 | */ |
322 | for_each_node(node) { | 349 | for_each_node(node) { |
323 | unsigned long end_pfn; | 350 | unsigned long end_pfn = bootmem_init_node(node, mi); |
324 | 351 | ||
325 | end_pfn = bootmem_init_node(node, initrd_node, mi); | 352 | /* |
353 | * Reserve any special node zero regions. | ||
354 | */ | ||
355 | if (node == 0) | ||
356 | reserve_node_zero(NODE_DATA(node)); | ||
357 | |||
358 | /* | ||
359 | * If the initrd is in this node, reserve its memory. | ||
360 | */ | ||
361 | if (node == initrd_node) | ||
362 | bootmem_reserve_initrd(node); | ||
326 | 363 | ||
327 | /* | 364 | /* |
328 | * Remember the highest memory PFN. | 365 | * Remember the highest memory PFN. |
@@ -331,6 +368,19 @@ void __init bootmem_init(struct meminfo *mi) | |||
331 | memend_pfn = end_pfn; | 368 | memend_pfn = end_pfn; |
332 | } | 369 | } |
333 | 370 | ||
371 | /* | ||
372 | * sparse_init() needs the bootmem allocator up and running. | ||
373 | */ | ||
374 | sparse_init(); | ||
375 | |||
376 | /* | ||
377 | * Now free memory in each node - free_area_init_node needs | ||
378 | * the sparse mem_map arrays initialized by sparse_init() | ||
379 | * for memmap_init_zone(), otherwise all PFNs are invalid. | ||
380 | */ | ||
381 | for_each_node(node) | ||
382 | bootmem_free_node(node, mi); | ||
383 | |||
334 | high_memory = __va(memend_pfn << PAGE_SHIFT); | 384 | high_memory = __va(memend_pfn << PAGE_SHIFT); |
335 | 385 | ||
336 | /* | 386 | /* |
@@ -401,7 +451,9 @@ static void __init free_unused_memmap_node(int node, struct meminfo *mi) | |||
401 | * information on the command line. | 451 | * information on the command line. |
402 | */ | 452 | */ |
403 | for_each_nodebank(i, mi, node) { | 453 | for_each_nodebank(i, mi, node) { |
404 | bank_start = mi->bank[i].start >> PAGE_SHIFT; | 454 | struct membank *bank = &mi->bank[i]; |
455 | |||
456 | bank_start = bank_pfn_start(bank); | ||
405 | if (bank_start < prev_bank_end) { | 457 | if (bank_start < prev_bank_end) { |
406 | printk(KERN_ERR "MEM: unordered memory banks. " | 458 | printk(KERN_ERR "MEM: unordered memory banks. " |
407 | "Not freeing memmap.\n"); | 459 | "Not freeing memmap.\n"); |
@@ -415,8 +467,7 @@ static void __init free_unused_memmap_node(int node, struct meminfo *mi) | |||
415 | if (prev_bank_end && prev_bank_end != bank_start) | 467 | if (prev_bank_end && prev_bank_end != bank_start) |
416 | free_memmap(node, prev_bank_end, bank_start); | 468 | free_memmap(node, prev_bank_end, bank_start); |
417 | 469 | ||
418 | prev_bank_end = (mi->bank[i].start + | 470 | prev_bank_end = bank_pfn_end(bank); |
419 | mi->bank[i].size) >> PAGE_SHIFT; | ||
420 | } | 471 | } |
421 | } | 472 | } |
422 | 473 | ||
@@ -461,8 +512,8 @@ void __init mem_init(void) | |||
461 | 512 | ||
462 | num_physpages = 0; | 513 | num_physpages = 0; |
463 | for (i = 0; i < meminfo.nr_banks; i++) { | 514 | for (i = 0; i < meminfo.nr_banks; i++) { |
464 | num_physpages += meminfo.bank[i].size >> PAGE_SHIFT; | 515 | num_physpages += bank_pfn_size(&meminfo.bank[i]); |
465 | printk(" %ldMB", meminfo.bank[i].size >> 20); | 516 | printk(" %ldMB", bank_phys_size(&meminfo.bank[i]) >> 20); |
466 | } | 517 | } |
467 | 518 | ||
468 | printk(" = %luMB total\n", num_physpages >> (20 - PAGE_SHIFT)); | 519 | printk(" = %luMB total\n", num_physpages >> (20 - PAGE_SHIFT)); |
diff --git a/arch/arm/mm/iomap.c b/arch/arm/mm/iomap.c index 7429f8c01015..ffad039cbb73 100644 --- a/arch/arm/mm/iomap.c +++ b/arch/arm/mm/iomap.c | |||
@@ -7,8 +7,7 @@ | |||
7 | #include <linux/module.h> | 7 | #include <linux/module.h> |
8 | #include <linux/pci.h> | 8 | #include <linux/pci.h> |
9 | #include <linux/ioport.h> | 9 | #include <linux/ioport.h> |
10 | 10 | #include <linux/io.h> | |
11 | #include <asm/io.h> | ||
12 | 11 | ||
13 | #ifdef __io | 12 | #ifdef __io |
14 | void __iomem *ioport_map(unsigned long port, unsigned int nr) | 13 | void __iomem *ioport_map(unsigned long port, unsigned int nr) |
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index b81dbf9ffb77..8a41912ec7c5 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c | |||
@@ -24,9 +24,10 @@ | |||
24 | #include <linux/errno.h> | 24 | #include <linux/errno.h> |
25 | #include <linux/mm.h> | 25 | #include <linux/mm.h> |
26 | #include <linux/vmalloc.h> | 26 | #include <linux/vmalloc.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
29 | #include <asm/cputype.h> | ||
28 | #include <asm/cacheflush.h> | 30 | #include <asm/cacheflush.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/mmu_context.h> | 31 | #include <asm/mmu_context.h> |
31 | #include <asm/pgalloc.h> | 32 | #include <asm/pgalloc.h> |
32 | #include <asm/tlbflush.h> | 33 | #include <asm/tlbflush.h> |
@@ -332,15 +333,14 @@ __arm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype) | |||
332 | } | 333 | } |
333 | EXPORT_SYMBOL(__arm_ioremap); | 334 | EXPORT_SYMBOL(__arm_ioremap); |
334 | 335 | ||
335 | void __iounmap(volatile void __iomem *addr) | 336 | void __iounmap(volatile void __iomem *io_addr) |
336 | { | 337 | { |
338 | void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr); | ||
337 | #ifndef CONFIG_SMP | 339 | #ifndef CONFIG_SMP |
338 | struct vm_struct **p, *tmp; | 340 | struct vm_struct **p, *tmp; |
339 | #endif | 341 | #endif |
340 | unsigned int section_mapping = 0; | 342 | unsigned int section_mapping = 0; |
341 | 343 | ||
342 | addr = (volatile void __iomem *)(PAGE_MASK & (unsigned long)addr); | ||
343 | |||
344 | #ifndef CONFIG_SMP | 344 | #ifndef CONFIG_SMP |
345 | /* | 345 | /* |
346 | * If this is a section based mapping we need to handle it | 346 | * If this is a section based mapping we need to handle it |
@@ -351,7 +351,7 @@ void __iounmap(volatile void __iomem *addr) | |||
351 | */ | 351 | */ |
352 | write_lock(&vmlist_lock); | 352 | write_lock(&vmlist_lock); |
353 | for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { | 353 | for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { |
354 | if((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { | 354 | if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { |
355 | if (tmp->flags & VM_ARM_SECTION_MAPPING) { | 355 | if (tmp->flags & VM_ARM_SECTION_MAPPING) { |
356 | *p = tmp->next; | 356 | *p = tmp->next; |
357 | unmap_area_sections((unsigned long)tmp->addr, | 357 | unmap_area_sections((unsigned long)tmp->addr, |
@@ -366,6 +366,6 @@ void __iounmap(volatile void __iomem *addr) | |||
366 | #endif | 366 | #endif |
367 | 367 | ||
368 | if (!section_mapping) | 368 | if (!section_mapping) |
369 | vunmap((void __force *)addr); | 369 | vunmap(addr); |
370 | } | 370 | } |
371 | EXPORT_SYMBOL(__iounmap); | 371 | EXPORT_SYMBOL(__iounmap); |
diff --git a/arch/arm/mm/mm.h b/arch/arm/mm/mm.h index 7647c597fc59..96590104ba0f 100644 --- a/arch/arm/mm/mm.h +++ b/arch/arm/mm/mm.h | |||
@@ -35,3 +35,5 @@ struct pglist_data; | |||
35 | void __init create_mapping(struct map_desc *md); | 35 | void __init create_mapping(struct map_desc *md); |
36 | void __init bootmem_init(struct meminfo *mi); | 36 | void __init bootmem_init(struct meminfo *mi); |
37 | void reserve_node_zero(struct pglist_data *pgdat); | 37 | void reserve_node_zero(struct pglist_data *pgdat); |
38 | |||
39 | extern void _text, _stext, _etext, __data_start, _end, __init_begin, __init_end; | ||
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 3f6dc40b8353..5358fcc7f61e 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c | |||
@@ -6,6 +6,8 @@ | |||
6 | #include <linux/mman.h> | 6 | #include <linux/mman.h> |
7 | #include <linux/shm.h> | 7 | #include <linux/shm.h> |
8 | #include <linux/sched.h> | 8 | #include <linux/sched.h> |
9 | #include <linux/io.h> | ||
10 | #include <asm/cputype.h> | ||
9 | #include <asm/system.h> | 11 | #include <asm/system.h> |
10 | 12 | ||
11 | #define COLOUR_ALIGN(addr,pgoff) \ | 13 | #define COLOUR_ALIGN(addr,pgoff) \ |
@@ -37,8 +39,8 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, | |||
37 | * caches alias. This is indicated by bits 9 and 21 of the | 39 | * caches alias. This is indicated by bits 9 and 21 of the |
38 | * cache type register. | 40 | * cache type register. |
39 | */ | 41 | */ |
40 | cache_type = read_cpuid(CPUID_CACHETYPE); | 42 | cache_type = read_cpuid_cachetype(); |
41 | if (cache_type != read_cpuid(CPUID_ID)) { | 43 | if (cache_type != read_cpuid_id()) { |
42 | aliasing = (cache_type | cache_type >> 12) & (1 << 11); | 44 | aliasing = (cache_type | cache_type >> 12) & (1 << 11); |
43 | if (aliasing) | 45 | if (aliasing) |
44 | do_align = filp || flags & MAP_SHARED; | 46 | do_align = filp || flags & MAP_SHARED; |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 25d9a11eb617..e7af83e569d7 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/mman.h> | 15 | #include <linux/mman.h> |
16 | #include <linux/nodemask.h> | 16 | #include <linux/nodemask.h> |
17 | 17 | ||
18 | #include <asm/cputype.h> | ||
18 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
19 | #include <asm/setup.h> | 20 | #include <asm/setup.h> |
20 | #include <asm/sizes.h> | 21 | #include <asm/sizes.h> |
@@ -27,9 +28,6 @@ | |||
27 | 28 | ||
28 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | 29 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); |
29 | 30 | ||
30 | extern void _stext, _etext, __data_start, _end; | ||
31 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | ||
32 | |||
33 | /* | 31 | /* |
34 | * empty_zero_page is a special page that is used for | 32 | * empty_zero_page is a special page that is used for |
35 | * zero-initialized data and COW. | 33 | * zero-initialized data and COW. |
@@ -568,12 +566,35 @@ void __init iotable_init(struct map_desc *io_desc, int nr) | |||
568 | create_mapping(io_desc + i); | 566 | create_mapping(io_desc + i); |
569 | } | 567 | } |
570 | 568 | ||
569 | static unsigned long __initdata vmalloc_reserve = SZ_128M; | ||
570 | |||
571 | /* | ||
572 | * vmalloc=size forces the vmalloc area to be exactly 'size' | ||
573 | * bytes. This can be used to increase (or decrease) the vmalloc | ||
574 | * area - the default is 128m. | ||
575 | */ | ||
576 | static void __init early_vmalloc(char **arg) | ||
577 | { | ||
578 | vmalloc_reserve = memparse(*arg, arg); | ||
579 | |||
580 | if (vmalloc_reserve < SZ_16M) { | ||
581 | vmalloc_reserve = SZ_16M; | ||
582 | printk(KERN_WARNING | ||
583 | "vmalloc area too small, limiting to %luMB\n", | ||
584 | vmalloc_reserve >> 20); | ||
585 | } | ||
586 | } | ||
587 | __early_param("vmalloc=", early_vmalloc); | ||
588 | |||
589 | #define VMALLOC_MIN (void *)(VMALLOC_END - vmalloc_reserve) | ||
590 | |||
571 | static int __init check_membank_valid(struct membank *mb) | 591 | static int __init check_membank_valid(struct membank *mb) |
572 | { | 592 | { |
573 | /* | 593 | /* |
574 | * Check whether this memory region has non-zero size. | 594 | * Check whether this memory region has non-zero size or |
595 | * invalid node number. | ||
575 | */ | 596 | */ |
576 | if (mb->size == 0) | 597 | if (mb->size == 0 || mb->node >= MAX_NUMNODES) |
577 | return 0; | 598 | return 0; |
578 | 599 | ||
579 | /* | 600 | /* |
@@ -607,8 +628,7 @@ static int __init check_membank_valid(struct membank *mb) | |||
607 | 628 | ||
608 | static void __init sanity_check_meminfo(struct meminfo *mi) | 629 | static void __init sanity_check_meminfo(struct meminfo *mi) |
609 | { | 630 | { |
610 | int i; | 631 | int i, j; |
611 | int j; | ||
612 | 632 | ||
613 | for (i = 0, j = 0; i < mi->nr_banks; i++) { | 633 | for (i = 0, j = 0; i < mi->nr_banks; i++) { |
614 | if (check_membank_valid(&mi->bank[i])) | 634 | if (check_membank_valid(&mi->bank[i])) |
diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c index 63c62fdea521..07b62b238979 100644 --- a/arch/arm/mm/nommu.c +++ b/arch/arm/mm/nommu.c | |||
@@ -7,16 +7,14 @@ | |||
7 | #include <linux/mm.h> | 7 | #include <linux/mm.h> |
8 | #include <linux/pagemap.h> | 8 | #include <linux/pagemap.h> |
9 | #include <linux/bootmem.h> | 9 | #include <linux/bootmem.h> |
10 | #include <linux/io.h> | ||
10 | 11 | ||
11 | #include <asm/cacheflush.h> | 12 | #include <asm/cacheflush.h> |
12 | #include <asm/io.h> | ||
13 | #include <asm/page.h> | 13 | #include <asm/page.h> |
14 | #include <asm/mach/arch.h> | 14 | #include <asm/mach/arch.h> |
15 | 15 | ||
16 | #include "mm.h" | 16 | #include "mm.h" |
17 | 17 | ||
18 | extern void _stext, __data_start, _end; | ||
19 | |||
20 | /* | 18 | /* |
21 | * Reserve the various regions of node 0 | 19 | * Reserve the various regions of node 0 |
22 | */ | 20 | */ |
@@ -43,12 +41,26 @@ void __init reserve_node_zero(pg_data_t *pgdat) | |||
43 | BOOTMEM_DEFAULT); | 41 | BOOTMEM_DEFAULT); |
44 | } | 42 | } |
45 | 43 | ||
44 | static void __init sanity_check_meminfo(struct meminfo *mi) | ||
45 | { | ||
46 | int i, j; | ||
47 | |||
48 | for (i = 0, j = 0; i < mi->nr_banks; i++) { | ||
49 | struct membank *mb = &mi->bank[i]; | ||
50 | |||
51 | if (mb->size != 0 && mb->node < MAX_NUMNODES) | ||
52 | mi->bank[j++] = mi->bank[i]; | ||
53 | } | ||
54 | mi->nr_banks = j; | ||
55 | } | ||
56 | |||
46 | /* | 57 | /* |
47 | * paging_init() sets up the page tables, initialises the zone memory | 58 | * paging_init() sets up the page tables, initialises the zone memory |
48 | * maps, and sets up the zero page, bad page and bad page tables. | 59 | * maps, and sets up the zero page, bad page and bad page tables. |
49 | */ | 60 | */ |
50 | void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc) | 61 | void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc) |
51 | { | 62 | { |
63 | sanity_check_meminfo(mi); | ||
52 | bootmem_init(mi); | 64 | bootmem_init(mi); |
53 | } | 65 | } |
54 | 66 | ||
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index b49f9a4c82c8..a67e26f3dce2 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -25,9 +25,11 @@ | |||
25 | 25 | ||
26 | ENTRY(cpu_v7_proc_init) | 26 | ENTRY(cpu_v7_proc_init) |
27 | mov pc, lr | 27 | mov pc, lr |
28 | ENDPROC(cpu_v7_proc_init) | ||
28 | 29 | ||
29 | ENTRY(cpu_v7_proc_fin) | 30 | ENTRY(cpu_v7_proc_fin) |
30 | mov pc, lr | 31 | mov pc, lr |
32 | ENDPROC(cpu_v7_proc_fin) | ||
31 | 33 | ||
32 | /* | 34 | /* |
33 | * cpu_v7_reset(loc) | 35 | * cpu_v7_reset(loc) |
@@ -43,6 +45,7 @@ ENTRY(cpu_v7_proc_fin) | |||
43 | .align 5 | 45 | .align 5 |
44 | ENTRY(cpu_v7_reset) | 46 | ENTRY(cpu_v7_reset) |
45 | mov pc, r0 | 47 | mov pc, r0 |
48 | ENDPROC(cpu_v7_reset) | ||
46 | 49 | ||
47 | /* | 50 | /* |
48 | * cpu_v7_do_idle() | 51 | * cpu_v7_do_idle() |
@@ -52,8 +55,9 @@ ENTRY(cpu_v7_reset) | |||
52 | * IRQs are already disabled. | 55 | * IRQs are already disabled. |
53 | */ | 56 | */ |
54 | ENTRY(cpu_v7_do_idle) | 57 | ENTRY(cpu_v7_do_idle) |
55 | .long 0xe320f003 @ ARM V7 WFI instruction | 58 | wfi |
56 | mov pc, lr | 59 | mov pc, lr |
60 | ENDPROC(cpu_v7_do_idle) | ||
57 | 61 | ||
58 | ENTRY(cpu_v7_dcache_clean_area) | 62 | ENTRY(cpu_v7_dcache_clean_area) |
59 | #ifndef TLB_CAN_READ_FROM_L1_CACHE | 63 | #ifndef TLB_CAN_READ_FROM_L1_CACHE |
@@ -65,6 +69,7 @@ ENTRY(cpu_v7_dcache_clean_area) | |||
65 | dsb | 69 | dsb |
66 | #endif | 70 | #endif |
67 | mov pc, lr | 71 | mov pc, lr |
72 | ENDPROC(cpu_v7_dcache_clean_area) | ||
68 | 73 | ||
69 | /* | 74 | /* |
70 | * cpu_v7_switch_mm(pgd_phys, tsk) | 75 | * cpu_v7_switch_mm(pgd_phys, tsk) |
@@ -89,6 +94,7 @@ ENTRY(cpu_v7_switch_mm) | |||
89 | isb | 94 | isb |
90 | #endif | 95 | #endif |
91 | mov pc, lr | 96 | mov pc, lr |
97 | ENDPROC(cpu_v7_switch_mm) | ||
92 | 98 | ||
93 | /* | 99 | /* |
94 | * cpu_v7_set_pte_ext(ptep, pte) | 100 | * cpu_v7_set_pte_ext(ptep, pte) |
@@ -141,6 +147,7 @@ ENTRY(cpu_v7_set_pte_ext) | |||
141 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte | 147 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte |
142 | #endif | 148 | #endif |
143 | mov pc, lr | 149 | mov pc, lr |
150 | ENDPROC(cpu_v7_set_pte_ext) | ||
144 | 151 | ||
145 | cpu_v7_name: | 152 | cpu_v7_name: |
146 | .ascii "ARMv7 Processor" | 153 | .ascii "ARMv7 Processor" |
@@ -188,6 +195,7 @@ __v7_setup: | |||
188 | bic r0, r0, r5 @ clear bits them | 195 | bic r0, r0, r5 @ clear bits them |
189 | orr r0, r0, r6 @ set them | 196 | orr r0, r0, r6 @ set them |
190 | mov pc, lr @ return to head.S:__ret | 197 | mov pc, lr @ return to head.S:__ret |
198 | ENDPROC(__v7_setup) | ||
191 | 199 | ||
192 | /* | 200 | /* |
193 | * V X F I D LR | 201 | * V X F I D LR |
diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S index b56dda8052f7..24ba5109f2e7 100644 --- a/arch/arm/mm/tlb-v7.S +++ b/arch/arm/mm/tlb-v7.S | |||
@@ -51,6 +51,7 @@ ENTRY(v7wbi_flush_user_tlb_range) | |||
51 | mcr p15, 0, ip, c7, c5, 6 @ flush BTAC/BTB | 51 | mcr p15, 0, ip, c7, c5, 6 @ flush BTAC/BTB |
52 | dsb | 52 | dsb |
53 | mov pc, lr | 53 | mov pc, lr |
54 | ENDPROC(v7wbi_flush_user_tlb_range) | ||
54 | 55 | ||
55 | /* | 56 | /* |
56 | * v7wbi_flush_kern_tlb_range(start,end) | 57 | * v7wbi_flush_kern_tlb_range(start,end) |
@@ -77,6 +78,7 @@ ENTRY(v7wbi_flush_kern_tlb_range) | |||
77 | dsb | 78 | dsb |
78 | isb | 79 | isb |
79 | mov pc, lr | 80 | mov pc, lr |
81 | ENDPROC(v7wbi_flush_kern_tlb_range) | ||
80 | 82 | ||
81 | .section ".text.init", #alloc, #execinstr | 83 | .section ".text.init", #alloc, #execinstr |
82 | 84 | ||
diff --git a/arch/arm/nwfpe/fpa11_cpdt.c b/arch/arm/nwfpe/fpa11_cpdt.c index 79f8e67cc6c1..d31c49f953b1 100644 --- a/arch/arm/nwfpe/fpa11_cpdt.c +++ b/arch/arm/nwfpe/fpa11_cpdt.c | |||
@@ -26,7 +26,7 @@ | |||
26 | #include "fpmodule.h" | 26 | #include "fpmodule.h" |
27 | #include "fpmodule.inl" | 27 | #include "fpmodule.inl" |
28 | 28 | ||
29 | #include <asm/uaccess.h> | 29 | #include <linux/uaccess.h> |
30 | 30 | ||
31 | static inline void loadSingle(const unsigned int Fn, const unsigned int __user *pMem) | 31 | static inline void loadSingle(const unsigned int Fn, const unsigned int __user *pMem) |
32 | { | 32 | { |
diff --git a/arch/arm/oprofile/Makefile b/arch/arm/oprofile/Makefile index e61d0cc520b7..88e31f549f50 100644 --- a/arch/arm/oprofile/Makefile +++ b/arch/arm/oprofile/Makefile | |||
@@ -11,3 +11,4 @@ oprofile-$(CONFIG_CPU_XSCALE) += op_model_xscale.o | |||
11 | oprofile-$(CONFIG_OPROFILE_ARM11_CORE) += op_model_arm11_core.o | 11 | oprofile-$(CONFIG_OPROFILE_ARM11_CORE) += op_model_arm11_core.o |
12 | oprofile-$(CONFIG_OPROFILE_ARMV6) += op_model_v6.o | 12 | oprofile-$(CONFIG_OPROFILE_ARMV6) += op_model_v6.o |
13 | oprofile-$(CONFIG_OPROFILE_MPCORE) += op_model_mpcore.o | 13 | oprofile-$(CONFIG_OPROFILE_MPCORE) += op_model_mpcore.o |
14 | oprofile-$(CONFIG_OPROFILE_ARMV7) += op_model_v7.o | ||
diff --git a/arch/arm/oprofile/backtrace.c b/arch/arm/oprofile/backtrace.c index f5ebf30151fa..cefc21c2eee4 100644 --- a/arch/arm/oprofile/backtrace.c +++ b/arch/arm/oprofile/backtrace.c | |||
@@ -16,8 +16,8 @@ | |||
16 | #include <linux/oprofile.h> | 16 | #include <linux/oprofile.h> |
17 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
18 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
19 | #include <linux/uaccess.h> | ||
19 | #include <asm/ptrace.h> | 20 | #include <asm/ptrace.h> |
20 | #include <asm/uaccess.h> | ||
21 | 21 | ||
22 | #include "../kernel/stacktrace.h" | 22 | #include "../kernel/stacktrace.h" |
23 | 23 | ||
diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c index 0a5cf3a6438b..3fcd752d6146 100644 --- a/arch/arm/oprofile/common.c +++ b/arch/arm/oprofile/common.c | |||
@@ -145,6 +145,10 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) | |||
145 | spec = &op_mpcore_spec; | 145 | spec = &op_mpcore_spec; |
146 | #endif | 146 | #endif |
147 | 147 | ||
148 | #ifdef CONFIG_OPROFILE_ARMV7 | ||
149 | spec = &op_armv7_spec; | ||
150 | #endif | ||
151 | |||
148 | if (spec) { | 152 | if (spec) { |
149 | ret = spec->init(); | 153 | ret = spec->init(); |
150 | if (ret < 0) | 154 | if (ret < 0) |
diff --git a/arch/arm/oprofile/op_arm_model.h b/arch/arm/oprofile/op_arm_model.h index 4899c629aa03..8c4e4f6a1de3 100644 --- a/arch/arm/oprofile/op_arm_model.h +++ b/arch/arm/oprofile/op_arm_model.h | |||
@@ -26,6 +26,7 @@ extern struct op_arm_model_spec op_xscale_spec; | |||
26 | 26 | ||
27 | extern struct op_arm_model_spec op_armv6_spec; | 27 | extern struct op_arm_model_spec op_armv6_spec; |
28 | extern struct op_arm_model_spec op_mpcore_spec; | 28 | extern struct op_arm_model_spec op_mpcore_spec; |
29 | extern struct op_arm_model_spec op_armv7_spec; | ||
29 | 30 | ||
30 | extern void arm_backtrace(struct pt_regs * const regs, unsigned int depth); | 31 | extern void arm_backtrace(struct pt_regs * const regs, unsigned int depth); |
31 | 32 | ||
diff --git a/arch/arm/oprofile/op_model_mpcore.c b/arch/arm/oprofile/op_model_mpcore.c index 92db6e035c65..4de366e8b4c5 100644 --- a/arch/arm/oprofile/op_model_mpcore.c +++ b/arch/arm/oprofile/op_model_mpcore.c | |||
@@ -36,8 +36,8 @@ | |||
36 | #include <linux/oprofile.h> | 36 | #include <linux/oprofile.h> |
37 | #include <linux/interrupt.h> | 37 | #include <linux/interrupt.h> |
38 | #include <linux/smp.h> | 38 | #include <linux/smp.h> |
39 | #include <linux/io.h> | ||
39 | 40 | ||
40 | #include <asm/io.h> | ||
41 | #include <asm/irq.h> | 41 | #include <asm/irq.h> |
42 | #include <asm/mach/irq.h> | 42 | #include <asm/mach/irq.h> |
43 | #include <mach/hardware.h> | 43 | #include <mach/hardware.h> |
diff --git a/arch/arm/oprofile/op_model_v7.c b/arch/arm/oprofile/op_model_v7.c new file mode 100644 index 000000000000..f20295f14adb --- /dev/null +++ b/arch/arm/oprofile/op_model_v7.c | |||
@@ -0,0 +1,411 @@ | |||
1 | /** | ||
2 | * op_model_v7.c | ||
3 | * ARM V7 (Cortex A8) Event Monitor Driver | ||
4 | * | ||
5 | * Copyright 2008 Jean Pihet <jpihet@mvista.com> | ||
6 | * Copyright 2004 ARM SMP Development Team | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | #include <linux/types.h> | ||
13 | #include <linux/errno.h> | ||
14 | #include <linux/oprofile.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/irq.h> | ||
17 | #include <linux/smp.h> | ||
18 | |||
19 | #include "op_counter.h" | ||
20 | #include "op_arm_model.h" | ||
21 | #include "op_model_v7.h" | ||
22 | |||
23 | /* #define DEBUG */ | ||
24 | |||
25 | |||
26 | /* | ||
27 | * ARM V7 PMNC support | ||
28 | */ | ||
29 | |||
30 | static u32 cnt_en[CNTMAX]; | ||
31 | |||
32 | static inline void armv7_pmnc_write(u32 val) | ||
33 | { | ||
34 | val &= PMNC_MASK; | ||
35 | asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r" (val)); | ||
36 | } | ||
37 | |||
38 | static inline u32 armv7_pmnc_read(void) | ||
39 | { | ||
40 | u32 val; | ||
41 | |||
42 | asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r" (val)); | ||
43 | return val; | ||
44 | } | ||
45 | |||
46 | static inline u32 armv7_pmnc_enable_counter(unsigned int cnt) | ||
47 | { | ||
48 | u32 val; | ||
49 | |||
50 | if (cnt >= CNTMAX) { | ||
51 | printk(KERN_ERR "oprofile: CPU%u enabling wrong PMNC counter" | ||
52 | " %d\n", smp_processor_id(), cnt); | ||
53 | return -1; | ||
54 | } | ||
55 | |||
56 | if (cnt == CCNT) | ||
57 | val = CNTENS_C; | ||
58 | else | ||
59 | val = (1 << (cnt - CNT0)); | ||
60 | |||
61 | val &= CNTENS_MASK; | ||
62 | asm volatile("mcr p15, 0, %0, c9, c12, 1" : : "r" (val)); | ||
63 | |||
64 | return cnt; | ||
65 | } | ||
66 | |||
67 | static inline u32 armv7_pmnc_disable_counter(unsigned int cnt) | ||
68 | { | ||
69 | u32 val; | ||
70 | |||
71 | if (cnt >= CNTMAX) { | ||
72 | printk(KERN_ERR "oprofile: CPU%u disabling wrong PMNC counter" | ||
73 | " %d\n", smp_processor_id(), cnt); | ||
74 | return -1; | ||
75 | } | ||
76 | |||
77 | if (cnt == CCNT) | ||
78 | val = CNTENC_C; | ||
79 | else | ||
80 | val = (1 << (cnt - CNT0)); | ||
81 | |||
82 | val &= CNTENC_MASK; | ||
83 | asm volatile("mcr p15, 0, %0, c9, c12, 2" : : "r" (val)); | ||
84 | |||
85 | return cnt; | ||
86 | } | ||
87 | |||
88 | static inline u32 armv7_pmnc_enable_intens(unsigned int cnt) | ||
89 | { | ||
90 | u32 val; | ||
91 | |||
92 | if (cnt >= CNTMAX) { | ||
93 | printk(KERN_ERR "oprofile: CPU%u enabling wrong PMNC counter" | ||
94 | " interrupt enable %d\n", smp_processor_id(), cnt); | ||
95 | return -1; | ||
96 | } | ||
97 | |||
98 | if (cnt == CCNT) | ||
99 | val = INTENS_C; | ||
100 | else | ||
101 | val = (1 << (cnt - CNT0)); | ||
102 | |||
103 | val &= INTENS_MASK; | ||
104 | asm volatile("mcr p15, 0, %0, c9, c14, 1" : : "r" (val)); | ||
105 | |||
106 | return cnt; | ||
107 | } | ||
108 | |||
109 | static inline u32 armv7_pmnc_getreset_flags(void) | ||
110 | { | ||
111 | u32 val; | ||
112 | |||
113 | /* Read */ | ||
114 | asm volatile("mrc p15, 0, %0, c9, c12, 3" : "=r" (val)); | ||
115 | |||
116 | /* Write to clear flags */ | ||
117 | val &= FLAG_MASK; | ||
118 | asm volatile("mcr p15, 0, %0, c9, c12, 3" : : "r" (val)); | ||
119 | |||
120 | return val; | ||
121 | } | ||
122 | |||
123 | static inline int armv7_pmnc_select_counter(unsigned int cnt) | ||
124 | { | ||
125 | u32 val; | ||
126 | |||
127 | if ((cnt == CCNT) || (cnt >= CNTMAX)) { | ||
128 | printk(KERN_ERR "oprofile: CPU%u selecting wrong PMNC counteri" | ||
129 | " %d\n", smp_processor_id(), cnt); | ||
130 | return -1; | ||
131 | } | ||
132 | |||
133 | val = (cnt - CNT0) & SELECT_MASK; | ||
134 | asm volatile("mcr p15, 0, %0, c9, c12, 5" : : "r" (val)); | ||
135 | |||
136 | return cnt; | ||
137 | } | ||
138 | |||
139 | static inline void armv7_pmnc_write_evtsel(unsigned int cnt, u32 val) | ||
140 | { | ||
141 | if (armv7_pmnc_select_counter(cnt) == cnt) { | ||
142 | val &= EVTSEL_MASK; | ||
143 | asm volatile("mcr p15, 0, %0, c9, c13, 1" : : "r" (val)); | ||
144 | } | ||
145 | } | ||
146 | |||
147 | static void armv7_pmnc_reset_counter(unsigned int cnt) | ||
148 | { | ||
149 | u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt); | ||
150 | u32 val = -(u32)counter_config[cpu_cnt].count; | ||
151 | |||
152 | switch (cnt) { | ||
153 | case CCNT: | ||
154 | armv7_pmnc_disable_counter(cnt); | ||
155 | |||
156 | asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (val)); | ||
157 | |||
158 | if (cnt_en[cnt] != 0) | ||
159 | armv7_pmnc_enable_counter(cnt); | ||
160 | |||
161 | break; | ||
162 | |||
163 | case CNT0: | ||
164 | case CNT1: | ||
165 | case CNT2: | ||
166 | case CNT3: | ||
167 | armv7_pmnc_disable_counter(cnt); | ||
168 | |||
169 | if (armv7_pmnc_select_counter(cnt) == cnt) | ||
170 | asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" (val)); | ||
171 | |||
172 | if (cnt_en[cnt] != 0) | ||
173 | armv7_pmnc_enable_counter(cnt); | ||
174 | |||
175 | break; | ||
176 | |||
177 | default: | ||
178 | printk(KERN_ERR "oprofile: CPU%u resetting wrong PMNC counter" | ||
179 | " %d\n", smp_processor_id(), cnt); | ||
180 | break; | ||
181 | } | ||
182 | } | ||
183 | |||
184 | int armv7_setup_pmnc(void) | ||
185 | { | ||
186 | unsigned int cnt; | ||
187 | |||
188 | if (armv7_pmnc_read() & PMNC_E) { | ||
189 | printk(KERN_ERR "oprofile: CPU%u PMNC still enabled when setup" | ||
190 | " new event counter.\n", smp_processor_id()); | ||
191 | return -EBUSY; | ||
192 | } | ||
193 | |||
194 | /* | ||
195 | * Initialize & Reset PMNC: C bit, D bit and P bit. | ||
196 | * Note: Using a slower count for CCNT (D bit: divide by 64) results | ||
197 | * in a more stable system | ||
198 | */ | ||
199 | armv7_pmnc_write(PMNC_P | PMNC_C | PMNC_D); | ||
200 | |||
201 | |||
202 | for (cnt = CCNT; cnt < CNTMAX; cnt++) { | ||
203 | unsigned long event; | ||
204 | u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt); | ||
205 | |||
206 | /* | ||
207 | * Disable counter | ||
208 | */ | ||
209 | armv7_pmnc_disable_counter(cnt); | ||
210 | cnt_en[cnt] = 0; | ||
211 | |||
212 | if (!counter_config[cpu_cnt].enabled) | ||
213 | continue; | ||
214 | |||
215 | event = counter_config[cpu_cnt].event & 255; | ||
216 | |||
217 | /* | ||
218 | * Set event (if destined for PMNx counters) | ||
219 | * We don't need to set the event if it's a cycle count | ||
220 | */ | ||
221 | if (cnt != CCNT) | ||
222 | armv7_pmnc_write_evtsel(cnt, event); | ||
223 | |||
224 | /* | ||
225 | * Enable interrupt for this counter | ||
226 | */ | ||
227 | armv7_pmnc_enable_intens(cnt); | ||
228 | |||
229 | /* | ||
230 | * Reset counter | ||
231 | */ | ||
232 | armv7_pmnc_reset_counter(cnt); | ||
233 | |||
234 | /* | ||
235 | * Enable counter | ||
236 | */ | ||
237 | armv7_pmnc_enable_counter(cnt); | ||
238 | cnt_en[cnt] = 1; | ||
239 | } | ||
240 | |||
241 | return 0; | ||
242 | } | ||
243 | |||
244 | static inline void armv7_start_pmnc(void) | ||
245 | { | ||
246 | armv7_pmnc_write(armv7_pmnc_read() | PMNC_E); | ||
247 | } | ||
248 | |||
249 | static inline void armv7_stop_pmnc(void) | ||
250 | { | ||
251 | armv7_pmnc_write(armv7_pmnc_read() & ~PMNC_E); | ||
252 | } | ||
253 | |||
254 | /* | ||
255 | * CPU counters' IRQ handler (one IRQ per CPU) | ||
256 | */ | ||
257 | static irqreturn_t armv7_pmnc_interrupt(int irq, void *arg) | ||
258 | { | ||
259 | struct pt_regs *regs = get_irq_regs(); | ||
260 | unsigned int cnt; | ||
261 | u32 flags; | ||
262 | |||
263 | |||
264 | /* | ||
265 | * Stop IRQ generation | ||
266 | */ | ||
267 | armv7_stop_pmnc(); | ||
268 | |||
269 | /* | ||
270 | * Get and reset overflow status flags | ||
271 | */ | ||
272 | flags = armv7_pmnc_getreset_flags(); | ||
273 | |||
274 | /* | ||
275 | * Cycle counter | ||
276 | */ | ||
277 | if (flags & FLAG_C) { | ||
278 | u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), CCNT); | ||
279 | armv7_pmnc_reset_counter(CCNT); | ||
280 | oprofile_add_sample(regs, cpu_cnt); | ||
281 | } | ||
282 | |||
283 | /* | ||
284 | * PMNC counters 0:3 | ||
285 | */ | ||
286 | for (cnt = CNT0; cnt < CNTMAX; cnt++) { | ||
287 | if (flags & (1 << (cnt - CNT0))) { | ||
288 | u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt); | ||
289 | armv7_pmnc_reset_counter(cnt); | ||
290 | oprofile_add_sample(regs, cpu_cnt); | ||
291 | } | ||
292 | } | ||
293 | |||
294 | /* | ||
295 | * Allow IRQ generation | ||
296 | */ | ||
297 | armv7_start_pmnc(); | ||
298 | |||
299 | return IRQ_HANDLED; | ||
300 | } | ||
301 | |||
302 | int armv7_request_interrupts(int *irqs, int nr) | ||
303 | { | ||
304 | unsigned int i; | ||
305 | int ret = 0; | ||
306 | |||
307 | for (i = 0; i < nr; i++) { | ||
308 | ret = request_irq(irqs[i], armv7_pmnc_interrupt, | ||
309 | IRQF_DISABLED, "CP15 PMNC", NULL); | ||
310 | if (ret != 0) { | ||
311 | printk(KERN_ERR "oprofile: unable to request IRQ%u" | ||
312 | " for ARMv7\n", | ||
313 | irqs[i]); | ||
314 | break; | ||
315 | } | ||
316 | } | ||
317 | |||
318 | if (i != nr) | ||
319 | while (i-- != 0) | ||
320 | free_irq(irqs[i], NULL); | ||
321 | |||
322 | return ret; | ||
323 | } | ||
324 | |||
325 | void armv7_release_interrupts(int *irqs, int nr) | ||
326 | { | ||
327 | unsigned int i; | ||
328 | |||
329 | for (i = 0; i < nr; i++) | ||
330 | free_irq(irqs[i], NULL); | ||
331 | } | ||
332 | |||
333 | #ifdef DEBUG | ||
334 | static void armv7_pmnc_dump_regs(void) | ||
335 | { | ||
336 | u32 val; | ||
337 | unsigned int cnt; | ||
338 | |||
339 | printk(KERN_INFO "PMNC registers dump:\n"); | ||
340 | |||
341 | asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r" (val)); | ||
342 | printk(KERN_INFO "PMNC =0x%08x\n", val); | ||
343 | |||
344 | asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r" (val)); | ||
345 | printk(KERN_INFO "CNTENS=0x%08x\n", val); | ||
346 | |||
347 | asm volatile("mrc p15, 0, %0, c9, c14, 1" : "=r" (val)); | ||
348 | printk(KERN_INFO "INTENS=0x%08x\n", val); | ||
349 | |||
350 | asm volatile("mrc p15, 0, %0, c9, c12, 3" : "=r" (val)); | ||
351 | printk(KERN_INFO "FLAGS =0x%08x\n", val); | ||
352 | |||
353 | asm volatile("mrc p15, 0, %0, c9, c12, 5" : "=r" (val)); | ||
354 | printk(KERN_INFO "SELECT=0x%08x\n", val); | ||
355 | |||
356 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (val)); | ||
357 | printk(KERN_INFO "CCNT =0x%08x\n", val); | ||
358 | |||
359 | for (cnt = CNT0; cnt < CNTMAX; cnt++) { | ||
360 | armv7_pmnc_select_counter(cnt); | ||
361 | asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (val)); | ||
362 | printk(KERN_INFO "CNT[%d] count =0x%08x\n", cnt-CNT0, val); | ||
363 | asm volatile("mrc p15, 0, %0, c9, c13, 1" : "=r" (val)); | ||
364 | printk(KERN_INFO "CNT[%d] evtsel=0x%08x\n", cnt-CNT0, val); | ||
365 | } | ||
366 | } | ||
367 | #endif | ||
368 | |||
369 | |||
370 | static int irqs[] = { | ||
371 | #ifdef CONFIG_ARCH_OMAP3 | ||
372 | INT_34XX_BENCH_MPU_EMUL, | ||
373 | #endif | ||
374 | }; | ||
375 | |||
376 | static void armv7_pmnc_stop(void) | ||
377 | { | ||
378 | #ifdef DEBUG | ||
379 | armv7_pmnc_dump_regs(); | ||
380 | #endif | ||
381 | armv7_stop_pmnc(); | ||
382 | armv7_release_interrupts(irqs, ARRAY_SIZE(irqs)); | ||
383 | } | ||
384 | |||
385 | static int armv7_pmnc_start(void) | ||
386 | { | ||
387 | int ret; | ||
388 | |||
389 | #ifdef DEBUG | ||
390 | armv7_pmnc_dump_regs(); | ||
391 | #endif | ||
392 | ret = armv7_request_interrupts(irqs, ARRAY_SIZE(irqs)); | ||
393 | if (ret >= 0) | ||
394 | armv7_start_pmnc(); | ||
395 | |||
396 | return ret; | ||
397 | } | ||
398 | |||
399 | static int armv7_detect_pmnc(void) | ||
400 | { | ||
401 | return 0; | ||
402 | } | ||
403 | |||
404 | struct op_arm_model_spec op_armv7_spec = { | ||
405 | .init = armv7_detect_pmnc, | ||
406 | .num_counters = 5, | ||
407 | .setup_ctrs = armv7_setup_pmnc, | ||
408 | .start = armv7_pmnc_start, | ||
409 | .stop = armv7_pmnc_stop, | ||
410 | .name = "arm/armv7", | ||
411 | }; | ||
diff --git a/arch/arm/oprofile/op_model_v7.h b/arch/arm/oprofile/op_model_v7.h new file mode 100644 index 000000000000..0e19bcc2e100 --- /dev/null +++ b/arch/arm/oprofile/op_model_v7.h | |||
@@ -0,0 +1,103 @@ | |||
1 | /** | ||
2 | * op_model_v7.h | ||
3 | * ARM v7 (Cortex A8) Event Monitor Driver | ||
4 | * | ||
5 | * Copyright 2008 Jean Pihet <jpihet@mvista.com> | ||
6 | * Copyright 2004 ARM SMP Development Team | ||
7 | * Copyright 2000-2004 Deepak Saxena <dsaxena@mvista.com> | ||
8 | * Copyright 2000-2004 MontaVista Software Inc | ||
9 | * Copyright 2004 Dave Jiang <dave.jiang@intel.com> | ||
10 | * Copyright 2004 Intel Corporation | ||
11 | * Copyright 2004 Zwane Mwaikambo <zwane@arm.linux.org.uk> | ||
12 | * Copyright 2004 Oprofile Authors | ||
13 | * | ||
14 | * Read the file COPYING | ||
15 | * | ||
16 | * This program is free software; you can redistribute it and/or modify | ||
17 | * it under the terms of the GNU General Public License version 2 as | ||
18 | * published by the Free Software Foundation. | ||
19 | */ | ||
20 | #ifndef OP_MODEL_V7_H | ||
21 | #define OP_MODEL_V7_H | ||
22 | |||
23 | /* | ||
24 | * Per-CPU PMNC: config reg | ||
25 | */ | ||
26 | #define PMNC_E (1 << 0) /* Enable all counters */ | ||
27 | #define PMNC_P (1 << 1) /* Reset all counters */ | ||
28 | #define PMNC_C (1 << 2) /* Cycle counter reset */ | ||
29 | #define PMNC_D (1 << 3) /* CCNT counts every 64th cpu cycle */ | ||
30 | #define PMNC_X (1 << 4) /* Export to ETM */ | ||
31 | #define PMNC_DP (1 << 5) /* Disable CCNT if non-invasive debug*/ | ||
32 | #define PMNC_MASK 0x3f /* Mask for writable bits */ | ||
33 | |||
34 | /* | ||
35 | * Available counters | ||
36 | */ | ||
37 | #define CCNT 0 | ||
38 | #define CNT0 1 | ||
39 | #define CNT1 2 | ||
40 | #define CNT2 3 | ||
41 | #define CNT3 4 | ||
42 | #define CNTMAX 5 | ||
43 | |||
44 | #define CPU_COUNTER(cpu, counter) ((cpu) * CNTMAX + (counter)) | ||
45 | |||
46 | /* | ||
47 | * CNTENS: counters enable reg | ||
48 | */ | ||
49 | #define CNTENS_P0 (1 << 0) | ||
50 | #define CNTENS_P1 (1 << 1) | ||
51 | #define CNTENS_P2 (1 << 2) | ||
52 | #define CNTENS_P3 (1 << 3) | ||
53 | #define CNTENS_C (1 << 31) | ||
54 | #define CNTENS_MASK 0x8000000f /* Mask for writable bits */ | ||
55 | |||
56 | /* | ||
57 | * CNTENC: counters disable reg | ||
58 | */ | ||
59 | #define CNTENC_P0 (1 << 0) | ||
60 | #define CNTENC_P1 (1 << 1) | ||
61 | #define CNTENC_P2 (1 << 2) | ||
62 | #define CNTENC_P3 (1 << 3) | ||
63 | #define CNTENC_C (1 << 31) | ||
64 | #define CNTENC_MASK 0x8000000f /* Mask for writable bits */ | ||
65 | |||
66 | /* | ||
67 | * INTENS: counters overflow interrupt enable reg | ||
68 | */ | ||
69 | #define INTENS_P0 (1 << 0) | ||
70 | #define INTENS_P1 (1 << 1) | ||
71 | #define INTENS_P2 (1 << 2) | ||
72 | #define INTENS_P3 (1 << 3) | ||
73 | #define INTENS_C (1 << 31) | ||
74 | #define INTENS_MASK 0x8000000f /* Mask for writable bits */ | ||
75 | |||
76 | /* | ||
77 | * EVTSEL: Event selection reg | ||
78 | */ | ||
79 | #define EVTSEL_MASK 0x7f /* Mask for writable bits */ | ||
80 | |||
81 | /* | ||
82 | * SELECT: Counter selection reg | ||
83 | */ | ||
84 | #define SELECT_MASK 0x1f /* Mask for writable bits */ | ||
85 | |||
86 | /* | ||
87 | * FLAG: counters overflow flag status reg | ||
88 | */ | ||
89 | #define FLAG_P0 (1 << 0) | ||
90 | #define FLAG_P1 (1 << 1) | ||
91 | #define FLAG_P2 (1 << 2) | ||
92 | #define FLAG_P3 (1 << 3) | ||
93 | #define FLAG_C (1 << 31) | ||
94 | #define FLAG_MASK 0x8000000f /* Mask for writable bits */ | ||
95 | |||
96 | |||
97 | int armv7_setup_pmu(void); | ||
98 | int armv7_start_pmu(void); | ||
99 | int armv7_stop_pmu(void); | ||
100 | int armv7_request_interrupts(int *, int); | ||
101 | void armv7_release_interrupts(int *, int); | ||
102 | |||
103 | #endif | ||
diff --git a/arch/arm/oprofile/op_model_xscale.c b/arch/arm/oprofile/op_model_xscale.c index 7c3289c2acd7..724ab9ce2526 100644 --- a/arch/arm/oprofile/op_model_xscale.c +++ b/arch/arm/oprofile/op_model_xscale.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
24 | 24 | ||
25 | #include <asm/system.h> | 25 | #include <asm/cputype.h> |
26 | 26 | ||
27 | #include "op_counter.h" | 27 | #include "op_counter.h" |
28 | #include "op_arm_model.h" | 28 | #include "op_arm_model.h" |
diff --git a/arch/arm/plat-iop/i2c.c b/arch/arm/plat-iop/i2c.c index 6dcbcc4ad419..4efe392859ee 100644 --- a/arch/arm/plat-iop/i2c.c +++ b/arch/arm/plat-iop/i2c.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/serial.h> | 18 | #include <linux/serial.h> |
19 | #include <linux/tty.h> | 19 | #include <linux/tty.h> |
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <asm/pgtable.h> | 22 | #include <asm/pgtable.h> |
23 | #include <asm/page.h> | 23 | #include <asm/page.h> |
24 | #include <asm/mach/map.h> | 24 | #include <asm/mach/map.h> |
diff --git a/arch/arm/plat-iop/io.c b/arch/arm/plat-iop/io.c index 39dcfb4bdc71..ed0bbece0d61 100644 --- a/arch/arm/plat-iop/io.c +++ b/arch/arm/plat-iop/io.c | |||
@@ -18,8 +18,8 @@ | |||
18 | */ | 18 | */ |
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
21 | #include <linux/io.h> | ||
21 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
22 | #include <asm/io.h> | ||
23 | 23 | ||
24 | void * __iomem __iop3xx_ioremap(unsigned long cookie, size_t size, | 24 | void * __iomem __iop3xx_ioremap(unsigned long cookie, size_t size, |
25 | unsigned int mtype) | 25 | unsigned int mtype) |
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c index 54708bf9cb15..77fa7cc7d162 100644 --- a/arch/arm/plat-iop/pci.c +++ b/arch/arm/plat-iop/pci.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/ioport.h> | 19 | #include <linux/ioport.h> |
20 | #include <asm/io.h> | 20 | #include <linux/io.h> |
21 | #include <asm/irq.h> | 21 | #include <asm/irq.h> |
22 | #include <asm/signal.h> | 22 | #include <asm/signal.h> |
23 | #include <asm/system.h> | 23 | #include <asm/system.h> |
diff --git a/arch/arm/plat-iop/time.c b/arch/arm/plat-iop/time.c index c53fefb6aac4..3695bbe3ee28 100644 --- a/arch/arm/plat-iop/time.c +++ b/arch/arm/plat-iop/time.c | |||
@@ -18,8 +18,8 @@ | |||
18 | #include <linux/time.h> | 18 | #include <linux/time.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/timex.h> | 20 | #include <linux/timex.h> |
21 | #include <linux/io.h> | ||
21 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
22 | #include <asm/io.h> | ||
23 | #include <asm/irq.h> | 23 | #include <asm/irq.h> |
24 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
25 | #include <asm/mach/irq.h> | 25 | #include <asm/mach/irq.h> |
diff --git a/arch/arm/plat-mxc/irq.c b/arch/arm/plat-mxc/irq.c index 1053b666c676..c6b837893d87 100644 --- a/arch/arm/plat-mxc/irq.c +++ b/arch/arm/plat-mxc/irq.c | |||
@@ -18,7 +18,7 @@ | |||
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/irq.h> | 20 | #include <linux/irq.h> |
21 | #include <asm/io.h> | 21 | #include <linux/io.h> |
22 | #include <mach/common.h> | 22 | #include <mach/common.h> |
23 | 23 | ||
24 | #define AVIC_BASE IO_ADDRESS(AVIC_BASE_ADDR) | 24 | #define AVIC_BASE IO_ADDRESS(AVIC_BASE_ADDR) |
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index 197974defbe4..bf6a10c5fc4f 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -22,8 +22,7 @@ | |||
22 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
23 | #include <linux/cpufreq.h> | 23 | #include <linux/cpufreq.h> |
24 | #include <linux/debugfs.h> | 24 | #include <linux/debugfs.h> |
25 | 25 | #include <linux/io.h> | |
26 | #include <asm/io.h> | ||
27 | 26 | ||
28 | #include <mach/clock.h> | 27 | #include <mach/clock.h> |
29 | 28 | ||
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index f4dff423ae7c..8bdf0ead0cf3 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c | |||
@@ -18,12 +18,12 @@ | |||
18 | #include <linux/serial_8250.h> | 18 | #include <linux/serial_8250.h> |
19 | #include <linux/serial_reg.h> | 19 | #include <linux/serial_reg.h> |
20 | #include <linux/clk.h> | 20 | #include <linux/clk.h> |
21 | #include <linux/io.h> | ||
21 | 22 | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/system.h> | 24 | #include <asm/system.h> |
24 | #include <asm/pgtable.h> | 25 | #include <asm/pgtable.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/setup.h> | 27 | #include <asm/setup.h> |
28 | 28 | ||
29 | #include <mach/common.h> | 29 | #include <mach/common.h> |
diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c index ae1de308aaad..b2690242a390 100644 --- a/arch/arm/plat-omap/cpu-omap.c +++ b/arch/arm/plat-omap/cpu-omap.c | |||
@@ -20,9 +20,9 @@ | |||
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/io.h> | ||
26 | #include <asm/system.h> | 26 | #include <asm/system.h> |
27 | 27 | ||
28 | #define VERY_HI_RATE 900000000 | 28 | #define VERY_HI_RATE 900000000 |
diff --git a/arch/arm/plat-omap/debug-devices.c b/arch/arm/plat-omap/debug-devices.c index 5b73bb274452..e31154b15d9e 100644 --- a/arch/arm/plat-omap/debug-devices.c +++ b/arch/arm/plat-omap/debug-devices.c | |||
@@ -12,9 +12,9 @@ | |||
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/io.h> | ||
15 | 16 | ||
16 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
17 | #include <asm/io.h> | ||
18 | 18 | ||
19 | #include <mach/board.h> | 19 | #include <mach/board.h> |
20 | #include <mach/gpio.h> | 20 | #include <mach/gpio.h> |
diff --git a/arch/arm/plat-omap/debug-leds.c b/arch/arm/plat-omap/debug-leds.c index 9422dee7de84..2f4c0cabfd34 100644 --- a/arch/arm/plat-omap/debug-leds.c +++ b/arch/arm/plat-omap/debug-leds.c | |||
@@ -11,8 +11,8 @@ | |||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
13 | #include <linux/leds.h> | 13 | #include <linux/leds.h> |
14 | #include <linux/io.h> | ||
14 | 15 | ||
15 | #include <asm/io.h> | ||
16 | #include <mach/hardware.h> | 16 | #include <mach/hardware.h> |
17 | #include <asm/leds.h> | 17 | #include <asm/leds.h> |
18 | #include <asm/system.h> | 18 | #include <asm/system.h> |
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index 187e3d8bfdfe..d4779c8ec51c 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c | |||
@@ -13,9 +13,9 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | #include <linux/io.h> | ||
16 | 17 | ||
17 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
18 | #include <asm/io.h> | ||
19 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
20 | #include <asm/mach/map.h> | 20 | #include <asm/mach/map.h> |
21 | 21 | ||
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 743a4abcd85d..606fcffdcefc 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -32,9 +32,9 @@ | |||
32 | #include <linux/list.h> | 32 | #include <linux/list.h> |
33 | #include <linux/clk.h> | 33 | #include <linux/clk.h> |
34 | #include <linux/delay.h> | 34 | #include <linux/delay.h> |
35 | #include <linux/io.h> | ||
35 | #include <mach/hardware.h> | 36 | #include <mach/hardware.h> |
36 | #include <mach/dmtimer.h> | 37 | #include <mach/dmtimer.h> |
37 | #include <asm/io.h> | ||
38 | #include <mach/irqs.h> | 38 | #include <mach/irqs.h> |
39 | 39 | ||
40 | /* register offsets */ | 40 | /* register offsets */ |
diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c index 17a92a31e746..ce6b4baeedec 100644 --- a/arch/arm/plat-omap/fb.c +++ b/arch/arm/plat-omap/fb.c | |||
@@ -27,9 +27,9 @@ | |||
27 | #include <linux/init.h> | 27 | #include <linux/init.h> |
28 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
29 | #include <linux/bootmem.h> | 29 | #include <linux/bootmem.h> |
30 | #include <linux/io.h> | ||
30 | 31 | ||
31 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
32 | #include <asm/io.h> | ||
33 | #include <asm/mach/map.h> | 33 | #include <asm/mach/map.h> |
34 | 34 | ||
35 | #include <mach/board.h> | 35 | #include <mach/board.h> |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 3e76ee2bc731..e622fa2825b5 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/sysdev.h> | 17 | #include <linux/sysdev.h> |
18 | #include <linux/err.h> | 18 | #include <linux/err.h> |
19 | #include <linux/clk.h> | 19 | #include <linux/clk.h> |
20 | #include <linux/io.h> | ||
20 | 21 | ||
21 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
22 | #include <asm/irq.h> | 23 | #include <asm/irq.h> |
@@ -24,8 +25,6 @@ | |||
24 | #include <mach/gpio.h> | 25 | #include <mach/gpio.h> |
25 | #include <asm/mach/irq.h> | 26 | #include <asm/mach/irq.h> |
26 | 27 | ||
27 | #include <asm/io.h> | ||
28 | |||
29 | /* | 28 | /* |
30 | * OMAP1510 GPIO registers | 29 | * OMAP1510 GPIO registers |
31 | */ | 30 | */ |
diff --git a/arch/arm/plat-omap/include/mach/gpio.h b/arch/arm/plat-omap/include/mach/gpio.h index 94ce2780e8ee..8c71e288860f 100644 --- a/arch/arm/plat-omap/include/mach/gpio.h +++ b/arch/arm/plat-omap/include/mach/gpio.h | |||
@@ -26,8 +26,8 @@ | |||
26 | #ifndef __ASM_ARCH_OMAP_GPIO_H | 26 | #ifndef __ASM_ARCH_OMAP_GPIO_H |
27 | #define __ASM_ARCH_OMAP_GPIO_H | 27 | #define __ASM_ARCH_OMAP_GPIO_H |
28 | 28 | ||
29 | #include <linux/io.h> | ||
29 | #include <mach/irqs.h> | 30 | #include <mach/irqs.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #define OMAP_MPUIO_BASE (void __iomem *)0xfffb5000 | 32 | #define OMAP_MPUIO_BASE (void __iomem *)0xfffb5000 |
33 | 33 | ||
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h index 17248bbf3f27..62aa7dfb9464 100644 --- a/arch/arm/plat-omap/include/mach/irqs.h +++ b/arch/arm/plat-omap/include/mach/irqs.h | |||
@@ -280,6 +280,8 @@ | |||
280 | #define INT_24XX_USB_IRQ_OTG 80 | 280 | #define INT_24XX_USB_IRQ_OTG 80 |
281 | #define INT_24XX_MMC_IRQ 83 | 281 | #define INT_24XX_MMC_IRQ 83 |
282 | 282 | ||
283 | #define INT_34XX_BENCH_MPU_EMUL 3 | ||
284 | |||
283 | /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730) and | 285 | /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730) and |
284 | * 16 MPUIO lines */ | 286 | * 16 MPUIO lines */ |
285 | #define OMAP_MAX_GPIO_LINES 192 | 287 | #define OMAP_MAX_GPIO_LINES 192 |
diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index 1d7aec1a691a..b52ce053e6f2 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c | |||
@@ -30,7 +30,7 @@ | |||
30 | #include <linux/blkdev.h> | 30 | #include <linux/blkdev.h> |
31 | #include <linux/err.h> | 31 | #include <linux/err.h> |
32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
33 | #include <asm/io.h> | 33 | #include <linux/io.h> |
34 | #include <mach/mailbox.h> | 34 | #include <mach/mailbox.h> |
35 | #include "mailbox.h" | 35 | #include "mailbox.h" |
36 | 36 | ||
diff --git a/arch/arm/plat-omap/mux.c b/arch/arm/plat-omap/mux.c index 847df208c46c..80b040fd5ca7 100644 --- a/arch/arm/plat-omap/mux.c +++ b/arch/arm/plat-omap/mux.c | |||
@@ -25,8 +25,8 @@ | |||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
28 | #include <linux/io.h> | ||
28 | #include <asm/system.h> | 29 | #include <asm/system.h> |
29 | #include <asm/io.h> | ||
30 | #include <linux/spinlock.h> | 30 | #include <linux/spinlock.h> |
31 | #include <mach/mux.h> | 31 | #include <mach/mux.h> |
32 | 32 | ||
diff --git a/arch/arm/plat-omap/ocpi.c b/arch/arm/plat-omap/ocpi.c index 8bdbf979a257..ebe0c73c8901 100644 --- a/arch/arm/plat-omap/ocpi.c +++ b/arch/arm/plat-omap/ocpi.c | |||
@@ -31,8 +31,8 @@ | |||
31 | #include <linux/spinlock.h> | 31 | #include <linux/spinlock.h> |
32 | #include <linux/err.h> | 32 | #include <linux/err.h> |
33 | #include <linux/clk.h> | 33 | #include <linux/clk.h> |
34 | #include <linux/io.h> | ||
34 | 35 | ||
35 | #include <asm/io.h> | ||
36 | #include <mach/hardware.h> | 36 | #include <mach/hardware.h> |
37 | 37 | ||
38 | #define OCPI_BASE 0xfffec320 | 38 | #define OCPI_BASE 0xfffec320 |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index ac67eeb6ca6a..e0003e0746e7 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -15,9 +15,9 @@ | |||
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/io.h> | ||
18 | 19 | ||
19 | #include <asm/tlb.h> | 20 | #include <asm/tlb.h> |
20 | #include <asm/io.h> | ||
21 | #include <asm/cacheflush.h> | 21 | #include <asm/cacheflush.h> |
22 | 22 | ||
23 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c index 777485e0636b..67ca1e216df7 100644 --- a/arch/arm/plat-omap/usb.c +++ b/arch/arm/plat-omap/usb.c | |||
@@ -27,8 +27,8 @@ | |||
27 | #include <linux/init.h> | 27 | #include <linux/init.h> |
28 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
29 | #include <linux/usb/otg.h> | 29 | #include <linux/usb/otg.h> |
30 | #include <linux/io.h> | ||
30 | 31 | ||
31 | #include <asm/io.h> | ||
32 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
33 | #include <asm/system.h> | 33 | #include <asm/system.h> |
34 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
diff --git a/arch/arm/plat-s3c24xx/clock.c b/arch/arm/plat-s3c24xx/clock.c index 54d4b8e2263c..400541359bfb 100644 --- a/arch/arm/plat-s3c24xx/clock.c +++ b/arch/arm/plat-s3c24xx/clock.c | |||
@@ -39,10 +39,10 @@ | |||
39 | #include <linux/clk.h> | 39 | #include <linux/clk.h> |
40 | #include <linux/mutex.h> | 40 | #include <linux/mutex.h> |
41 | #include <linux/delay.h> | 41 | #include <linux/delay.h> |
42 | #include <linux/io.h> | ||
42 | 43 | ||
43 | #include <mach/hardware.h> | 44 | #include <mach/hardware.h> |
44 | #include <asm/irq.h> | 45 | #include <asm/irq.h> |
45 | #include <asm/io.h> | ||
46 | 46 | ||
47 | #include <mach/regs-clock.h> | 47 | #include <mach/regs-clock.h> |
48 | #include <mach/regs-gpio.h> | 48 | #include <mach/regs-gpio.h> |
diff --git a/arch/arm/plat-s3c24xx/common-smdk.c b/arch/arm/plat-s3c24xx/common-smdk.c index 1863a1b1bc49..d528f460f6bc 100644 --- a/arch/arm/plat-s3c24xx/common-smdk.c +++ b/arch/arm/plat-s3c24xx/common-smdk.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/mtd/nand.h> | 25 | #include <linux/mtd/nand.h> |
26 | #include <linux/mtd/nand_ecc.h> | 26 | #include <linux/mtd/nand_ecc.h> |
27 | #include <linux/mtd/partitions.h> | 27 | #include <linux/mtd/partitions.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
30 | #include <asm/mach/map.h> | 31 | #include <asm/mach/map.h> |
@@ -32,7 +33,6 @@ | |||
32 | 33 | ||
33 | #include <asm/mach-types.h> | 34 | #include <asm/mach-types.h> |
34 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
35 | #include <asm/io.h> | ||
36 | #include <asm/irq.h> | 36 | #include <asm/irq.h> |
37 | 37 | ||
38 | #include <mach/regs-gpio.h> | 38 | #include <mach/regs-gpio.h> |
diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c index 89ce60eabd5b..9c607bbc9343 100644 --- a/arch/arm/plat-s3c24xx/cpu.c +++ b/arch/arm/plat-s3c24xx/cpu.c | |||
@@ -29,11 +29,11 @@ | |||
29 | #include <linux/serial_core.h> | 29 | #include <linux/serial_core.h> |
30 | #include <linux/platform_device.h> | 30 | #include <linux/platform_device.h> |
31 | #include <linux/delay.h> | 31 | #include <linux/delay.h> |
32 | #include <linux/io.h> | ||
33 | #include <linux/delay.h> | ||
32 | 34 | ||
33 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
34 | #include <asm/irq.h> | 36 | #include <asm/irq.h> |
35 | #include <asm/io.h> | ||
36 | #include <asm/delay.h> | ||
37 | #include <asm/cacheflush.h> | 37 | #include <asm/cacheflush.h> |
38 | 38 | ||
39 | #include <asm/mach/arch.h> | 39 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c index d6fb76578b11..6b13b5455dfc 100644 --- a/arch/arm/plat-s3c24xx/devs.c +++ b/arch/arm/plat-s3c24xx/devs.c | |||
@@ -19,13 +19,13 @@ | |||
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/io.h> | ||
22 | 23 | ||
23 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
24 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
25 | #include <asm/mach/irq.h> | 26 | #include <asm/mach/irq.h> |
26 | #include <mach/fb.h> | 27 | #include <mach/fb.h> |
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | 30 | ||
31 | #include <asm/plat-s3c/regs-serial.h> | 31 | #include <asm/plat-s3c/regs-serial.h> |
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c index 08c2aaf14c41..d6344461a83b 100644 --- a/arch/arm/plat-s3c24xx/dma.c +++ b/arch/arm/plat-s3c24xx/dma.c | |||
@@ -26,11 +26,11 @@ | |||
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/errno.h> | 27 | #include <linux/errno.h> |
28 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
29 | #include <linux/io.h> | ||
29 | 30 | ||
30 | #include <asm/system.h> | 31 | #include <asm/system.h> |
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | #include <mach/hardware.h> | 33 | #include <mach/hardware.h> |
33 | #include <asm/io.h> | ||
34 | #include <asm/dma.h> | 34 | #include <asm/dma.h> |
35 | 35 | ||
36 | #include <asm/mach/dma.h> | 36 | #include <asm/mach/dma.h> |
diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c index dd27334e3d7e..4a899c279eb5 100644 --- a/arch/arm/plat-s3c24xx/gpio.c +++ b/arch/arm/plat-s3c24xx/gpio.c | |||
@@ -26,10 +26,10 @@ | |||
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/interrupt.h> | 27 | #include <linux/interrupt.h> |
28 | #include <linux/ioport.h> | 28 | #include <linux/ioport.h> |
29 | #include <linux/io.h> | ||
29 | 30 | ||
30 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | #include <asm/io.h> | ||
33 | 33 | ||
34 | #include <mach/regs-gpio.h> | 34 | #include <mach/regs-gpio.h> |
35 | 35 | ||
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c index 36cefe176835..fa70d34eb4a5 100644 --- a/arch/arm/plat-s3c24xx/irq.c +++ b/arch/arm/plat-s3c24xx/irq.c | |||
@@ -55,10 +55,10 @@ | |||
55 | #include <linux/interrupt.h> | 55 | #include <linux/interrupt.h> |
56 | #include <linux/ioport.h> | 56 | #include <linux/ioport.h> |
57 | #include <linux/sysdev.h> | 57 | #include <linux/sysdev.h> |
58 | #include <linux/io.h> | ||
58 | 59 | ||
59 | #include <mach/hardware.h> | 60 | #include <mach/hardware.h> |
60 | #include <asm/irq.h> | 61 | #include <asm/irq.h> |
61 | #include <asm/io.h> | ||
62 | 62 | ||
63 | #include <asm/mach/irq.h> | 63 | #include <asm/mach/irq.h> |
64 | 64 | ||
diff --git a/arch/arm/plat-s3c24xx/pm-simtec.c b/arch/arm/plat-s3c24xx/pm-simtec.c index e6705014b2a0..0a074d35890a 100644 --- a/arch/arm/plat-s3c24xx/pm-simtec.c +++ b/arch/arm/plat-s3c24xx/pm-simtec.c | |||
@@ -20,12 +20,12 @@ | |||
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/sysdev.h> | 21 | #include <linux/sysdev.h> |
22 | #include <linux/device.h> | 22 | #include <linux/device.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | #include <asm/io.h> | ||
29 | 29 | ||
30 | #include <mach/map.h> | 30 | #include <mach/map.h> |
31 | #include <mach/regs-gpio.h> | 31 | #include <mach/regs-gpio.h> |
diff --git a/arch/arm/plat-s3c24xx/pm.c b/arch/arm/plat-s3c24xx/pm.c index fc4b731a949c..d3934b1119a9 100644 --- a/arch/arm/plat-s3c24xx/pm.c +++ b/arch/arm/plat-s3c24xx/pm.c | |||
@@ -35,10 +35,10 @@ | |||
35 | #include <linux/ioport.h> | 35 | #include <linux/ioport.h> |
36 | #include <linux/delay.h> | 36 | #include <linux/delay.h> |
37 | #include <linux/serial_core.h> | 37 | #include <linux/serial_core.h> |
38 | #include <linux/io.h> | ||
38 | 39 | ||
39 | #include <asm/cacheflush.h> | 40 | #include <asm/cacheflush.h> |
40 | #include <mach/hardware.h> | 41 | #include <mach/hardware.h> |
41 | #include <asm/io.h> | ||
42 | 42 | ||
43 | #include <asm/plat-s3c/regs-serial.h> | 43 | #include <asm/plat-s3c/regs-serial.h> |
44 | #include <mach/regs-clock.h> | 44 | #include <mach/regs-clock.h> |
diff --git a/arch/arm/plat-s3c24xx/s3c244x-clock.c b/arch/arm/plat-s3c24xx/s3c244x-clock.c index 8a5fffde6631..119647a5eaa6 100644 --- a/arch/arm/plat-s3c24xx/s3c244x-clock.c +++ b/arch/arm/plat-s3c24xx/s3c244x-clock.c | |||
@@ -33,11 +33,11 @@ | |||
33 | #include <linux/ioport.h> | 33 | #include <linux/ioport.h> |
34 | #include <linux/mutex.h> | 34 | #include <linux/mutex.h> |
35 | #include <linux/clk.h> | 35 | #include <linux/clk.h> |
36 | #include <linux/io.h> | ||
36 | 37 | ||
37 | #include <mach/hardware.h> | 38 | #include <mach/hardware.h> |
38 | #include <asm/atomic.h> | 39 | #include <asm/atomic.h> |
39 | #include <asm/irq.h> | 40 | #include <asm/irq.h> |
40 | #include <asm/io.h> | ||
41 | 41 | ||
42 | #include <mach/regs-clock.h> | 42 | #include <mach/regs-clock.h> |
43 | 43 | ||
diff --git a/arch/arm/plat-s3c24xx/s3c244x-irq.c b/arch/arm/plat-s3c24xx/s3c244x-irq.c index f3dc38cf1de4..13bc655e1b6e 100644 --- a/arch/arm/plat-s3c24xx/s3c244x-irq.c +++ b/arch/arm/plat-s3c24xx/s3c244x-irq.c | |||
@@ -24,10 +24,10 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/sysdev.h> | 26 | #include <linux/sysdev.h> |
27 | #include <linux/io.h> | ||
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
30 | #include <asm/io.h> | ||
31 | 31 | ||
32 | #include <asm/mach/irq.h> | 32 | #include <asm/mach/irq.h> |
33 | 33 | ||
diff --git a/arch/arm/plat-s3c24xx/s3c244x.c b/arch/arm/plat-s3c24xx/s3c244x.c index 281b4804ed38..146863a69aeb 100644 --- a/arch/arm/plat-s3c24xx/s3c244x.c +++ b/arch/arm/plat-s3c24xx/s3c244x.c | |||
@@ -20,13 +20,13 @@ | |||
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/sysdev.h> | 21 | #include <linux/sysdev.h> |
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
26 | #include <asm/mach/irq.h> | 27 | #include <asm/mach/irq.h> |
27 | 28 | ||
28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
31 | 31 | ||
32 | #include <mach/regs-clock.h> | 32 | #include <mach/regs-clock.h> |
diff --git a/arch/arm/plat-s3c24xx/time.c b/arch/arm/plat-s3c24xx/time.c index b471a21ae2e4..64bfa19ae951 100644 --- a/arch/arm/plat-s3c24xx/time.c +++ b/arch/arm/plat-s3c24xx/time.c | |||
@@ -25,12 +25,12 @@ | |||
25 | #include <linux/irq.h> | 25 | #include <linux/irq.h> |
26 | #include <linux/err.h> | 26 | #include <linux/err.h> |
27 | #include <linux/clk.h> | 27 | #include <linux/clk.h> |
28 | #include <linux/io.h> | ||
28 | 29 | ||
29 | #include <asm/system.h> | 30 | #include <asm/system.h> |
30 | #include <asm/leds.h> | 31 | #include <asm/leds.h> |
31 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
32 | 33 | ||
33 | #include <asm/io.h> | ||
34 | #include <asm/irq.h> | 34 | #include <asm/irq.h> |
35 | #include <mach/map.h> | 35 | #include <mach/map.h> |
36 | #include <asm/plat-s3c/regs-timer.h> | 36 | #include <asm/plat-s3c/regs-timer.h> |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index 56281c030a7b..43aa2020f85c 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
@@ -12,7 +12,7 @@ | |||
12 | # | 12 | # |
13 | # http://www.arm.linux.org.uk/developer/machines/?action=new | 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new |
14 | # | 14 | # |
15 | # Last update: Wed Aug 13 21:56:02 2008 | 15 | # Last update: Thu Sep 25 10:10:50 2008 |
16 | # | 16 | # |
17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
18 | # | 18 | # |
@@ -1810,7 +1810,7 @@ kriss_sensor MACH_KRISS_SENSOR KRISS_SENSOR 1819 | |||
1810 | pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820 | 1810 | pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820 |
1811 | jade MACH_JADE JADE 1821 | 1811 | jade MACH_JADE JADE 1821 |
1812 | ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 | 1812 | ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 |
1813 | gprisc3 MACH_GPRISC4 GPRISC4 1823 | 1813 | gprisc3 MACH_GPRISC3 GPRISC3 1823 |
1814 | stamp9260 MACH_STAMP9260 STAMP9260 1824 | 1814 | stamp9260 MACH_STAMP9260 STAMP9260 1824 |
1815 | smdk6430 MACH_SMDK6430 SMDK6430 1825 | 1815 | smdk6430 MACH_SMDK6430 SMDK6430 1825 |
1816 | smdkc100 MACH_SMDKC100 SMDKC100 1826 | 1816 | smdkc100 MACH_SMDKC100 SMDKC100 1826 |
@@ -1859,5 +1859,43 @@ kbio9260 MACH_KBIO9260 KBIO9260 1868 | |||
1859 | ginza MACH_GINZA GINZA 1869 | 1859 | ginza MACH_GINZA GINZA 1869 |
1860 | a636n MACH_A636N A636N 1870 | 1860 | a636n MACH_A636N A636N 1870 |
1861 | imx27ipcam MACH_IMX27IPCAM IMX27IPCAM 1871 | 1861 | imx27ipcam MACH_IMX27IPCAM IMX27IPCAM 1871 |
1862 | nenoc MACH_NEMOC NEMOC 1872 | 1862 | nemoc MACH_NEMOC NEMOC 1872 |
1863 | geneva MACH_GENEVA GENEVA 1873 | 1863 | geneva MACH_GENEVA GENEVA 1873 |
1864 | htcpharos MACH_HTCPHAROS HTCPHAROS 1874 | ||
1865 | neonc MACH_NEONC NEONC 1875 | ||
1866 | nas7100 MACH_NAS7100 NAS7100 1876 | ||
1867 | teuphone MACH_TEUPHONE TEUPHONE 1877 | ||
1868 | annax_eth2 MACH_ANNAX_ETH2 ANNAX_ETH2 1878 | ||
1869 | csb733 MACH_CSB733 CSB733 1879 | ||
1870 | bk3 MACH_BK3 BK3 1880 | ||
1871 | omap_em32 MACH_OMAP_EM32 OMAP_EM32 1881 | ||
1872 | et9261cp MACH_ET9261CP ET9261CP 1882 | ||
1873 | jasperc MACH_JASPERC JASPERC 1883 | ||
1874 | issi_arm9 MACH_ISSI_ARM9 ISSI_ARM9 1884 | ||
1875 | ued MACH_UED UED 1885 | ||
1876 | esiblade MACH_ESIBLADE ESIBLADE 1886 | ||
1877 | eye02 MACH_EYE02 EYE02 1887 | ||
1878 | imx27kbd MACH_IMX27KBD IMX27KBD 1888 | ||
1879 | sst61vc010_fpga MACH_SST61VC010_FPGA SST61VC010_FPGA 1889 | ||
1880 | kixvp435 MACH_KIXVP435 KIXVP435 1890 | ||
1881 | kixnp435 MACH_KIXNP435 KIXNP435 1891 | ||
1882 | africa MACH_AFRICA AFRICA 1892 | ||
1883 | nh233 MACH_NH233 NH233 1893 | ||
1884 | rd88f6183ap_ge MACH_RD88F6183AP_GE RD88F6183AP_GE 1894 | ||
1885 | bcm4760 MACH_BCM4760 BCM4760 1895 | ||
1886 | eddy_v2 MACH_EDDY_V2 EDDY_V2 1896 | ||
1887 | realview_pba8 MACH_REALVIEW_PBA8 REALVIEW_PBA8 1897 | ||
1888 | hid_a7 MACH_HID_A7 HID_A7 1898 | ||
1889 | hero MACH_HERO HERO 1899 | ||
1890 | omap_poseidon MACH_OMAP_POSEIDON OMAP_POSEIDON 1900 | ||
1891 | realview_pbx MACH_REALVIEW_PBX REALVIEW_PBX 1901 | ||
1892 | micro9s MACH_MICRO9S MICRO9S 1902 | ||
1893 | mako MACH_MAKO MAKO 1903 | ||
1894 | xdaflame MACH_XDAFLAME XDAFLAME 1904 | ||
1895 | phidget_sbc2 MACH_PHIDGET_SBC2 PHIDGET_SBC2 1905 | ||
1896 | limestone MACH_LIMESTONE LIMESTONE 1906 | ||
1897 | iprobe_c32 MACH_IPROBE_C32 IPROBE_C32 1907 | ||
1898 | rut100 MACH_RUT100 RUT100 1908 | ||
1899 | asusp535 MACH_ASUSP535 ASUSP535 1909 | ||
1900 | htcraphael MACH_HTCRAPHAEL HTCRAPHAEL 1910 | ||
1901 | sygdg1 MACH_SYGDG1 SYGDG1 1911 | ||
diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S index 806ce26d5243..ba592a9e6fb3 100644 --- a/arch/arm/vfp/entry.S +++ b/arch/arm/vfp/entry.S | |||
@@ -21,13 +21,13 @@ | |||
21 | #include <asm/assembler.h> | 21 | #include <asm/assembler.h> |
22 | #include <asm/vfpmacros.h> | 22 | #include <asm/vfpmacros.h> |
23 | 23 | ||
24 | .globl do_vfp | 24 | ENTRY(do_vfp) |
25 | do_vfp: | ||
26 | enable_irq | 25 | enable_irq |
27 | ldr r4, .LCvfp | 26 | ldr r4, .LCvfp |
28 | ldr r11, [r10, #TI_CPU] @ CPU number | 27 | ldr r11, [r10, #TI_CPU] @ CPU number |
29 | add r10, r10, #TI_VFPSTATE @ r10 = workspace | 28 | add r10, r10, #TI_VFPSTATE @ r10 = workspace |
30 | ldr pc, [r4] @ call VFP entry point | 29 | ldr pc, [r4] @ call VFP entry point |
30 | ENDPROC(do_vfp) | ||
31 | 31 | ||
32 | ENTRY(vfp_null_entry) | 32 | ENTRY(vfp_null_entry) |
33 | mov pc, lr | 33 | mov pc, lr |
@@ -40,11 +40,11 @@ ENDPROC(vfp_null_entry) | |||
40 | @ failure to the VFP initialisation code. | 40 | @ failure to the VFP initialisation code. |
41 | 41 | ||
42 | __INIT | 42 | __INIT |
43 | .globl vfp_testing_entry | 43 | ENTRY(vfp_testing_entry) |
44 | vfp_testing_entry: | ||
45 | ldr r0, VFP_arch_address | 44 | ldr r0, VFP_arch_address |
46 | str r5, [r0] @ known non-zero value | 45 | str r5, [r0] @ known non-zero value |
47 | mov pc, r9 @ we have handled the fault | 46 | mov pc, r9 @ we have handled the fault |
47 | ENDPROC(vfp_testing_entry) | ||
48 | 48 | ||
49 | VFP_arch_address: | 49 | VFP_arch_address: |
50 | .word VFP_arch | 50 | .word VFP_arch |
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S index 353f9e5c7919..a62dcf7098ba 100644 --- a/arch/arm/vfp/vfphw.S +++ b/arch/arm/vfp/vfphw.S | |||
@@ -68,8 +68,7 @@ | |||
68 | @ r11 = CPU number | 68 | @ r11 = CPU number |
69 | @ lr = failure return | 69 | @ lr = failure return |
70 | 70 | ||
71 | .globl vfp_support_entry | 71 | ENTRY(vfp_support_entry) |
72 | vfp_support_entry: | ||
73 | DBGSTR3 "instr %08x pc %08x state %p", r0, r2, r10 | 72 | DBGSTR3 "instr %08x pc %08x state %p", r0, r2, r10 |
74 | 73 | ||
75 | VFPFMRX r1, FPEXC @ Is the VFP enabled? | 74 | VFPFMRX r1, FPEXC @ Is the VFP enabled? |
@@ -165,11 +164,10 @@ process_exception: | |||
165 | @ code will raise an exception if | 164 | @ code will raise an exception if |
166 | @ required. If not, the user code will | 165 | @ required. If not, the user code will |
167 | @ retry the faulted instruction | 166 | @ retry the faulted instruction |
167 | ENDPROC(vfp_support_entry) | ||
168 | 168 | ||
169 | #ifdef CONFIG_SMP | 169 | #ifdef CONFIG_SMP |
170 | .globl vfp_save_state | 170 | ENTRY(vfp_save_state) |
171 | .type vfp_save_state, %function | ||
172 | vfp_save_state: | ||
173 | @ Save the current VFP state | 171 | @ Save the current VFP state |
174 | @ r0 - save location | 172 | @ r0 - save location |
175 | @ r1 - FPEXC | 173 | @ r1 - FPEXC |
@@ -182,13 +180,13 @@ vfp_save_state: | |||
182 | VFPFMRX r12, FPINST2, NE @ FPINST2 if needed (and present) | 180 | VFPFMRX r12, FPINST2, NE @ FPINST2 if needed (and present) |
183 | stmia r0, {r1, r2, r3, r12} @ save FPEXC, FPSCR, FPINST, FPINST2 | 181 | stmia r0, {r1, r2, r3, r12} @ save FPEXC, FPSCR, FPINST, FPINST2 |
184 | mov pc, lr | 182 | mov pc, lr |
183 | ENDPROC(vfp_save_state) | ||
185 | #endif | 184 | #endif |
186 | 185 | ||
187 | last_VFP_context_address: | 186 | last_VFP_context_address: |
188 | .word last_VFP_context | 187 | .word last_VFP_context |
189 | 188 | ||
190 | .globl vfp_get_float | 189 | ENTRY(vfp_get_float) |
191 | vfp_get_float: | ||
192 | add pc, pc, r0, lsl #3 | 190 | add pc, pc, r0, lsl #3 |
193 | mov r0, r0 | 191 | mov r0, r0 |
194 | .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 | 192 | .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 |
@@ -197,9 +195,9 @@ vfp_get_float: | |||
197 | mrc p10, 0, r0, c\dr, c0, 4 @ fmrs r0, s1 | 195 | mrc p10, 0, r0, c\dr, c0, 4 @ fmrs r0, s1 |
198 | mov pc, lr | 196 | mov pc, lr |
199 | .endr | 197 | .endr |
198 | ENDPROC(vfp_get_float) | ||
200 | 199 | ||
201 | .globl vfp_put_float | 200 | ENTRY(vfp_put_float) |
202 | vfp_put_float: | ||
203 | add pc, pc, r1, lsl #3 | 201 | add pc, pc, r1, lsl #3 |
204 | mov r0, r0 | 202 | mov r0, r0 |
205 | .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 | 203 | .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 |
@@ -208,9 +206,9 @@ vfp_put_float: | |||
208 | mcr p10, 0, r0, c\dr, c0, 4 @ fmsr r0, s1 | 206 | mcr p10, 0, r0, c\dr, c0, 4 @ fmsr r0, s1 |
209 | mov pc, lr | 207 | mov pc, lr |
210 | .endr | 208 | .endr |
209 | ENDPROC(vfp_put_float) | ||
211 | 210 | ||
212 | .globl vfp_get_double | 211 | ENTRY(vfp_get_double) |
213 | vfp_get_double: | ||
214 | add pc, pc, r0, lsl #3 | 212 | add pc, pc, r0, lsl #3 |
215 | mov r0, r0 | 213 | mov r0, r0 |
216 | .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 | 214 | .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 |
@@ -229,9 +227,9 @@ vfp_get_double: | |||
229 | mov r0, #0 | 227 | mov r0, #0 |
230 | mov r1, #0 | 228 | mov r1, #0 |
231 | mov pc, lr | 229 | mov pc, lr |
230 | ENDPROC(vfp_get_double) | ||
232 | 231 | ||
233 | .globl vfp_put_double | 232 | ENTRY(vfp_put_double) |
234 | vfp_put_double: | ||
235 | add pc, pc, r2, lsl #3 | 233 | add pc, pc, r2, lsl #3 |
236 | mov r0, r0 | 234 | mov r0, r0 |
237 | .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 | 235 | .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 |
@@ -245,3 +243,4 @@ vfp_put_double: | |||
245 | mov pc, lr | 243 | mov pc, lr |
246 | .endr | 244 | .endr |
247 | #endif | 245 | #endif |
246 | ENDPROC(vfp_put_double) | ||
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index a5c141cecd4e..ad26f1fdf273 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -1386,7 +1386,8 @@ config FORCEDETH_NAPI | |||
1386 | 1386 | ||
1387 | config CS89x0 | 1387 | config CS89x0 |
1388 | tristate "CS89x0 support" | 1388 | tristate "CS89x0 support" |
1389 | depends on NET_PCI && (ISA || MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X) | 1389 | depends on NET_ETHERNET && (ISA || EISA || MACH_IXDP2351 \ |
1390 | || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS) | ||
1390 | ---help--- | 1391 | ---help--- |
1391 | Support for CS89x0 chipset based Ethernet cards. If you have a | 1392 | Support for CS89x0 chipset based Ethernet cards. If you have a |
1392 | network (Ethernet) card of this type, say Y and read the | 1393 | network (Ethernet) card of this type, say Y and read the |
@@ -1397,6 +1398,11 @@ config CS89x0 | |||
1397 | To compile this driver as a module, choose M here. The module | 1398 | To compile this driver as a module, choose M here. The module |
1398 | will be called cs89x0. | 1399 | will be called cs89x0. |
1399 | 1400 | ||
1401 | config CS89x0_NONISA_IRQ | ||
1402 | def_bool y | ||
1403 | depends on CS89x0 != n | ||
1404 | depends on MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS | ||
1405 | |||
1400 | config TC35815 | 1406 | config TC35815 |
1401 | tristate "TOSHIBA TC35815 Ethernet support" | 1407 | tristate "TOSHIBA TC35815 Ethernet support" |
1402 | depends on NET_PCI && PCI && MIPS | 1408 | depends on NET_PCI && PCI && MIPS |
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c index ea6144a9565e..5890a917a628 100644 --- a/drivers/net/cs89x0.c +++ b/drivers/net/cs89x0.c | |||
@@ -194,6 +194,12 @@ static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0}; | |||
194 | #define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */ | 194 | #define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */ |
195 | static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0}; | 195 | static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0}; |
196 | static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0}; | 196 | static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0}; |
197 | #elif defined(CONFIG_MACH_MX31ADS) | ||
198 | #include <mach/board-mx31ads.h> | ||
199 | static unsigned int netcard_portlist[] __used __initdata = { | ||
200 | PBC_BASE_ADDRESS + PBC_CS8900A_IOBASE + 0x300, 0 | ||
201 | }; | ||
202 | static unsigned cs8900_irq_map[] = {EXPIO_INT_ENET_INT, 0, 0, 0}; | ||
197 | #else | 203 | #else |
198 | static unsigned int netcard_portlist[] __used __initdata = | 204 | static unsigned int netcard_portlist[] __used __initdata = |
199 | { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; | 205 | { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; |
@@ -802,7 +808,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) | |||
802 | } else { | 808 | } else { |
803 | i = lp->isa_config & INT_NO_MASK; | 809 | i = lp->isa_config & INT_NO_MASK; |
804 | if (lp->chip_type == CS8900) { | 810 | if (lp->chip_type == CS8900) { |
805 | #if defined(CONFIG_MACH_IXDP2351) || defined(CONFIG_ARCH_IXDP2X01) || defined(CONFIG_ARCH_PNX010X) | 811 | #ifdef CONFIG_CS89x0_NONISA_IRQ |
806 | i = cs8900_irq_map[0]; | 812 | i = cs8900_irq_map[0]; |
807 | #else | 813 | #else |
808 | /* Translate the IRQ using the IRQ mapping table. */ | 814 | /* Translate the IRQ using the IRQ mapping table. */ |
@@ -1029,6 +1035,7 @@ skip_this_frame: | |||
1029 | 1035 | ||
1030 | void __init reset_chip(struct net_device *dev) | 1036 | void __init reset_chip(struct net_device *dev) |
1031 | { | 1037 | { |
1038 | #if !defined(CONFIG_MACH_MX31ADS) | ||
1032 | #if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) | 1039 | #if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) |
1033 | struct net_local *lp = netdev_priv(dev); | 1040 | struct net_local *lp = netdev_priv(dev); |
1034 | int ioaddr = dev->base_addr; | 1041 | int ioaddr = dev->base_addr; |
@@ -1057,6 +1064,7 @@ void __init reset_chip(struct net_device *dev) | |||
1057 | reset_start_time = jiffies; | 1064 | reset_start_time = jiffies; |
1058 | while( (readreg(dev, PP_SelfST) & INIT_DONE) == 0 && jiffies - reset_start_time < 2) | 1065 | while( (readreg(dev, PP_SelfST) & INIT_DONE) == 0 && jiffies - reset_start_time < 2) |
1059 | ; | 1066 | ; |
1067 | #endif /* !CONFIG_MACH_MX31ADS */ | ||
1060 | } | 1068 | } |
1061 | 1069 | ||
1062 | 1070 | ||
@@ -1304,7 +1312,7 @@ net_open(struct net_device *dev) | |||
1304 | else | 1312 | else |
1305 | #endif | 1313 | #endif |
1306 | { | 1314 | { |
1307 | #if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) && !defined(CONFIG_ARCH_PNX010X) | 1315 | #ifndef CONFIG_CS89x0_NONISA_IRQ |
1308 | if (((1 << dev->irq) & lp->irq_map) == 0) { | 1316 | if (((1 << dev->irq) & lp->irq_map) == 0) { |
1309 | printk(KERN_ERR "%s: IRQ %d is not in our map of allowable IRQs, which is %x\n", | 1317 | printk(KERN_ERR "%s: IRQ %d is not in our map of allowable IRQs, which is %x\n", |
1310 | dev->name, dev->irq, lp->irq_map); | 1318 | dev->name, dev->irq, lp->irq_map); |
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index 2040965d7724..ceed2f69216a 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c | |||
@@ -1520,7 +1520,9 @@ smc_open(struct net_device *dev) | |||
1520 | /* Setup the default Register Modes */ | 1520 | /* Setup the default Register Modes */ |
1521 | lp->tcr_cur_mode = TCR_DEFAULT; | 1521 | lp->tcr_cur_mode = TCR_DEFAULT; |
1522 | lp->rcr_cur_mode = RCR_DEFAULT; | 1522 | lp->rcr_cur_mode = RCR_DEFAULT; |
1523 | lp->rpc_cur_mode = RPC_DEFAULT; | 1523 | lp->rpc_cur_mode = RPC_DEFAULT | |
1524 | lp->cfg.leda << RPC_LSXA_SHFT | | ||
1525 | lp->cfg.ledb << RPC_LSXB_SHFT; | ||
1524 | 1526 | ||
1525 | /* | 1527 | /* |
1526 | * If we are not using a MII interface, we need to | 1528 | * If we are not using a MII interface, we need to |
@@ -2157,6 +2159,11 @@ static int smc_drv_probe(struct platform_device *pdev) | |||
2157 | lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0; | 2159 | lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0; |
2158 | } | 2160 | } |
2159 | 2161 | ||
2162 | if (!lp->cfg.leda && !lp->cfg.ledb) { | ||
2163 | lp->cfg.leda = RPC_LSA_DEFAULT; | ||
2164 | lp->cfg.ledb = RPC_LSB_DEFAULT; | ||
2165 | } | ||
2166 | |||
2160 | ndev->dma = (unsigned char)-1; | 2167 | ndev->dma = (unsigned char)-1; |
2161 | 2168 | ||
2162 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs"); | 2169 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs"); |
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h index 997e7f1d5c6e..8322e7f37af5 100644 --- a/drivers/net/smc91x.h +++ b/drivers/net/smc91x.h | |||
@@ -794,7 +794,7 @@ smc_pxa_dma_irq(int dma, void *dummy) | |||
794 | #define RPC_LSB_DEFAULT RPC_LED_FD | 794 | #define RPC_LSB_DEFAULT RPC_LED_FD |
795 | #endif | 795 | #endif |
796 | 796 | ||
797 | #define RPC_DEFAULT (RPC_ANEG | (RPC_LSA_DEFAULT << RPC_LSXA_SHFT) | (RPC_LSB_DEFAULT << RPC_LSXB_SHFT) | RPC_SPEED | RPC_DPLX) | 797 | #define RPC_DEFAULT (RPC_ANEG | RPC_SPEED | RPC_DPLX) |
798 | 798 | ||
799 | 799 | ||
800 | /* Bank 0 0x0C is reserved */ | 800 | /* Bank 0 0x0C is reserved */ |
diff --git a/drivers/serial/serial_ks8695.c b/drivers/serial/serial_ks8695.c index b9cbfc87f616..998e89dc5aaf 100644 --- a/drivers/serial/serial_ks8695.c +++ b/drivers/serial/serial_ks8695.c | |||
@@ -63,8 +63,44 @@ | |||
63 | #define UART_DUMMY_LSR_RX 0x100 | 63 | #define UART_DUMMY_LSR_RX 0x100 |
64 | #define UART_PORT_SIZE (KS8695_USR - KS8695_URRB + 4) | 64 | #define UART_PORT_SIZE (KS8695_USR - KS8695_URRB + 4) |
65 | 65 | ||
66 | #define tx_enabled(port) ((port)->unused[0]) | 66 | static inline int tx_enabled(struct uart_port *port) |
67 | #define rx_enabled(port) ((port)->unused[1]) | 67 | { |
68 | return port->unused[0] & 1; | ||
69 | } | ||
70 | |||
71 | static inline int rx_enabled(struct uart_port *port) | ||
72 | { | ||
73 | return port->unused[0] & 2; | ||
74 | } | ||
75 | |||
76 | static inline int ms_enabled(struct uart_port *port) | ||
77 | { | ||
78 | return port->unused[0] & 4; | ||
79 | } | ||
80 | |||
81 | static inline void ms_enable(struct uart_port *port, int enabled) | ||
82 | { | ||
83 | if(enabled) | ||
84 | port->unused[0] |= 4; | ||
85 | else | ||
86 | port->unused[0] &= ~4; | ||
87 | } | ||
88 | |||
89 | static inline void rx_enable(struct uart_port *port, int enabled) | ||
90 | { | ||
91 | if(enabled) | ||
92 | port->unused[0] |= 2; | ||
93 | else | ||
94 | port->unused[0] &= ~2; | ||
95 | } | ||
96 | |||
97 | static inline void tx_enable(struct uart_port *port, int enabled) | ||
98 | { | ||
99 | if(enabled) | ||
100 | port->unused[0] |= 1; | ||
101 | else | ||
102 | port->unused[0] &= ~1; | ||
103 | } | ||
68 | 104 | ||
69 | 105 | ||
70 | #ifdef SUPPORT_SYSRQ | 106 | #ifdef SUPPORT_SYSRQ |
@@ -75,7 +111,7 @@ static void ks8695uart_stop_tx(struct uart_port *port) | |||
75 | { | 111 | { |
76 | if (tx_enabled(port)) { | 112 | if (tx_enabled(port)) { |
77 | disable_irq(KS8695_IRQ_UART_TX); | 113 | disable_irq(KS8695_IRQ_UART_TX); |
78 | tx_enabled(port) = 0; | 114 | tx_enable(port, 0); |
79 | } | 115 | } |
80 | } | 116 | } |
81 | 117 | ||
@@ -83,7 +119,7 @@ static void ks8695uart_start_tx(struct uart_port *port) | |||
83 | { | 119 | { |
84 | if (!tx_enabled(port)) { | 120 | if (!tx_enabled(port)) { |
85 | enable_irq(KS8695_IRQ_UART_TX); | 121 | enable_irq(KS8695_IRQ_UART_TX); |
86 | tx_enabled(port) = 1; | 122 | tx_enable(port, 1); |
87 | } | 123 | } |
88 | } | 124 | } |
89 | 125 | ||
@@ -91,18 +127,24 @@ static void ks8695uart_stop_rx(struct uart_port *port) | |||
91 | { | 127 | { |
92 | if (rx_enabled(port)) { | 128 | if (rx_enabled(port)) { |
93 | disable_irq(KS8695_IRQ_UART_RX); | 129 | disable_irq(KS8695_IRQ_UART_RX); |
94 | rx_enabled(port) = 0; | 130 | rx_enable(port, 0); |
95 | } | 131 | } |
96 | } | 132 | } |
97 | 133 | ||
98 | static void ks8695uart_enable_ms(struct uart_port *port) | 134 | static void ks8695uart_enable_ms(struct uart_port *port) |
99 | { | 135 | { |
100 | enable_irq(KS8695_IRQ_UART_MODEM_STATUS); | 136 | if (!ms_enabled(port)) { |
137 | enable_irq(KS8695_IRQ_UART_MODEM_STATUS); | ||
138 | ms_enable(port,1); | ||
139 | } | ||
101 | } | 140 | } |
102 | 141 | ||
103 | static void ks8695uart_disable_ms(struct uart_port *port) | 142 | static void ks8695uart_disable_ms(struct uart_port *port) |
104 | { | 143 | { |
105 | disable_irq(KS8695_IRQ_UART_MODEM_STATUS); | 144 | if (ms_enabled(port)) { |
145 | disable_irq(KS8695_IRQ_UART_MODEM_STATUS); | ||
146 | ms_enable(port,0); | ||
147 | } | ||
106 | } | 148 | } |
107 | 149 | ||
108 | static irqreturn_t ks8695uart_rx_chars(int irq, void *dev_id) | 150 | static irqreturn_t ks8695uart_rx_chars(int irq, void *dev_id) |
@@ -285,8 +327,9 @@ static int ks8695uart_startup(struct uart_port *port) | |||
285 | int retval; | 327 | int retval; |
286 | 328 | ||
287 | set_irq_flags(KS8695_IRQ_UART_TX, IRQF_VALID | IRQF_NOAUTOEN); | 329 | set_irq_flags(KS8695_IRQ_UART_TX, IRQF_VALID | IRQF_NOAUTOEN); |
288 | tx_enabled(port) = 0; | 330 | tx_enable(port, 0); |
289 | rx_enabled(port) = 1; | 331 | rx_enable(port, 1); |
332 | ms_enable(port, 1); | ||
290 | 333 | ||
291 | /* | 334 | /* |
292 | * Allocate the IRQ | 335 | * Allocate the IRQ |
diff --git a/drivers/watchdog/ixp4xx_wdt.c b/drivers/watchdog/ixp4xx_wdt.c index 8302ef005be7..147b4d5c63b3 100644 --- a/drivers/watchdog/ixp4xx_wdt.c +++ b/drivers/watchdog/ixp4xx_wdt.c | |||
@@ -174,10 +174,8 @@ static struct miscdevice ixp4xx_wdt_miscdev = { | |||
174 | static int __init ixp4xx_wdt_init(void) | 174 | static int __init ixp4xx_wdt_init(void) |
175 | { | 175 | { |
176 | int ret; | 176 | int ret; |
177 | unsigned long processor_id; | ||
178 | 177 | ||
179 | asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :); | 178 | if (!(read_cpuid_id() & 0xf) && !cpu_is_ixp46x()) { |
180 | if (!(processor_id & 0xf) && !cpu_is_ixp46x()) { | ||
181 | printk(KERN_ERR "IXP4XXX Watchdog: Rev. A0 IXP42x CPU detected" | 179 | printk(KERN_ERR "IXP4XXX Watchdog: Rev. A0 IXP42x CPU detected" |
182 | " - watchdog disabled\n"); | 180 | " - watchdog disabled\n"); |
183 | 181 | ||
diff --git a/include/linux/smc91x.h b/include/linux/smc91x.h index 3827b922ba1f..ed25483d25d9 100644 --- a/include/linux/smc91x.h +++ b/include/linux/smc91x.h | |||
@@ -18,6 +18,8 @@ | |||
18 | 18 | ||
19 | struct smc91x_platdata { | 19 | struct smc91x_platdata { |
20 | unsigned long flags; | 20 | unsigned long flags; |
21 | unsigned char leda; | ||
22 | unsigned char ledb; | ||
21 | }; | 23 | }; |
22 | 24 | ||
23 | #endif /* __SMC91X_H__ */ | 25 | #endif /* __SMC91X_H__ */ |