diff options
462 files changed, 3520 insertions, 2793 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 70dba1668907..744d07e69602 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 |
@@ -815,20 +848,18 @@ config ARCH_FLATMEM_HAS_HOLES | |||
815 | default y | 848 | default y |
816 | depends on FLATMEM | 849 | depends on FLATMEM |
817 | 850 | ||
851 | # Discontigmem is deprecated | ||
818 | config ARCH_DISCONTIGMEM_ENABLE | 852 | config ARCH_DISCONTIGMEM_ENABLE |
819 | bool | 853 | bool |
820 | default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM) | ||
821 | help | ||
822 | Say Y to support efficient handling of discontiguous physical memory, | ||
823 | for architectures which are either NUMA (Non-Uniform Memory Access) | ||
824 | or have huge holes in the physical address space for other reasons. | ||
825 | See <file:Documentation/vm/numa> for more. | ||
826 | 854 | ||
827 | config ARCH_SPARSEMEM_ENABLE | 855 | config ARCH_SPARSEMEM_ENABLE |
828 | bool | 856 | bool |
829 | 857 | ||
858 | config ARCH_SPARSEMEM_DEFAULT | ||
859 | def_bool ARCH_SPARSEMEM_ENABLE | ||
860 | |||
830 | config ARCH_SELECT_MEMORY_MODEL | 861 | config ARCH_SELECT_MEMORY_MODEL |
831 | bool | 862 | def_bool ARCH_DISCONTIGMEM_ENABLE && ARCH_SPARSEMEM_ENABLE |
832 | 863 | ||
833 | config NODES_SHIFT | 864 | config NODES_SHIFT |
834 | int | 865 | int |
@@ -1005,9 +1036,9 @@ config ATAGS_PROC | |||
1005 | 1036 | ||
1006 | endmenu | 1037 | endmenu |
1007 | 1038 | ||
1008 | if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA) | 1039 | menu "CPU Power Management" |
1009 | 1040 | ||
1010 | menu "CPU Frequency scaling" | 1041 | if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA) |
1011 | 1042 | ||
1012 | source "drivers/cpufreq/Kconfig" | 1043 | source "drivers/cpufreq/Kconfig" |
1013 | 1044 | ||
@@ -1047,10 +1078,12 @@ config CPU_FREQ_PXA | |||
1047 | default y | 1078 | default y |
1048 | select CPU_FREQ_DEFAULT_GOV_USERSPACE | 1079 | select CPU_FREQ_DEFAULT_GOV_USERSPACE |
1049 | 1080 | ||
1050 | endmenu | ||
1051 | |||
1052 | endif | 1081 | endif |
1053 | 1082 | ||
1083 | source "drivers/cpuidle/Kconfig" | ||
1084 | |||
1085 | endmenu | ||
1086 | |||
1054 | menu "Floating point emulation" | 1087 | menu "Floating point emulation" |
1055 | 1088 | ||
1056 | comment "At least one emulation must be selected" | 1089 | comment "At least one emulation must be selected" |
@@ -1202,6 +1235,8 @@ source "drivers/power/Kconfig" | |||
1202 | 1235 | ||
1203 | source "drivers/hwmon/Kconfig" | 1236 | source "drivers/hwmon/Kconfig" |
1204 | 1237 | ||
1238 | source "drivers/thermal/Kconfig" | ||
1239 | |||
1205 | source "drivers/watchdog/Kconfig" | 1240 | source "drivers/watchdog/Kconfig" |
1206 | 1241 | ||
1207 | source "drivers/ssb/Kconfig" | 1242 | source "drivers/ssb/Kconfig" |
@@ -1222,6 +1257,10 @@ source "drivers/usb/Kconfig" | |||
1222 | 1257 | ||
1223 | source "drivers/mmc/Kconfig" | 1258 | source "drivers/mmc/Kconfig" |
1224 | 1259 | ||
1260 | source "drivers/memstick/Kconfig" | ||
1261 | |||
1262 | source "drivers/accessibility/Kconfig" | ||
1263 | |||
1225 | source "drivers/leds/Kconfig" | 1264 | source "drivers/leds/Kconfig" |
1226 | 1265 | ||
1227 | source "drivers/rtc/Kconfig" | 1266 | source "drivers/rtc/Kconfig" |
@@ -1230,6 +1269,8 @@ source "drivers/dma/Kconfig" | |||
1230 | 1269 | ||
1231 | source "drivers/dca/Kconfig" | 1270 | source "drivers/dca/Kconfig" |
1232 | 1271 | ||
1272 | source "drivers/auxdisplay/Kconfig" | ||
1273 | |||
1233 | source "drivers/regulator/Kconfig" | 1274 | source "drivers/regulator/Kconfig" |
1234 | 1275 | ||
1235 | source "drivers/uio/Kconfig" | 1276 | 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/configs/jornada720_defconfig b/arch/arm/configs/jornada720_defconfig index 0c556289a3f4..81fadafae02d 100644 --- a/arch/arm/configs/jornada720_defconfig +++ b/arch/arm/configs/jornada720_defconfig | |||
@@ -1,84 +1,174 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.12-rc1-bk2 | 3 | # Linux kernel version: 2.6.27-rc6 |
4 | # Sun Mar 27 23:10:35 2005 | 4 | # Tue Sep 16 18:56:58 2008 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||
8 | CONFIG_GENERIC_GPIO=y | ||
9 | CONFIG_GENERIC_TIME=y | ||
10 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
7 | CONFIG_MMU=y | 11 | CONFIG_MMU=y |
8 | CONFIG_UID16=y | 12 | # CONFIG_NO_IOPORT is not set |
13 | CONFIG_GENERIC_HARDIRQS=y | ||
14 | CONFIG_STACKTRACE_SUPPORT=y | ||
15 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
16 | CONFIG_LOCKDEP_SUPPORT=y | ||
17 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
18 | CONFIG_HARDIRQS_SW_RESEND=y | ||
19 | CONFIG_GENERIC_IRQ_PROBE=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 20 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
23 | CONFIG_GENERIC_HWEIGHT=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 24 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
11 | CONFIG_GENERIC_IOMAP=y | 25 | CONFIG_ARCH_SUPPORTS_AOUT=y |
26 | CONFIG_ZONE_DMA=y | ||
27 | CONFIG_ARCH_MTD_XIP=y | ||
28 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
29 | CONFIG_VECTORS_BASE=0xffff0000 | ||
30 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
12 | 31 | ||
13 | # | 32 | # |
14 | # Code maturity level options | 33 | # General setup |
15 | # | 34 | # |
16 | CONFIG_EXPERIMENTAL=y | 35 | CONFIG_EXPERIMENTAL=y |
17 | CONFIG_CLEAN_COMPILE=y | ||
18 | CONFIG_BROKEN_ON_SMP=y | 36 | CONFIG_BROKEN_ON_SMP=y |
19 | 37 | CONFIG_INIT_ENV_ARG_LIMIT=32 | |
20 | # | ||
21 | # General setup | ||
22 | # | ||
23 | CONFIG_LOCALVERSION="" | 38 | CONFIG_LOCALVERSION="" |
39 | CONFIG_LOCALVERSION_AUTO=y | ||
24 | CONFIG_SWAP=y | 40 | CONFIG_SWAP=y |
25 | CONFIG_SYSVIPC=y | 41 | CONFIG_SYSVIPC=y |
42 | CONFIG_SYSVIPC_SYSCTL=y | ||
26 | # CONFIG_POSIX_MQUEUE is not set | 43 | # CONFIG_POSIX_MQUEUE is not set |
27 | # CONFIG_BSD_PROCESS_ACCT is not set | 44 | # CONFIG_BSD_PROCESS_ACCT is not set |
28 | CONFIG_SYSCTL=y | 45 | # CONFIG_TASKSTATS is not set |
29 | # CONFIG_AUDIT is not set | 46 | # CONFIG_AUDIT is not set |
30 | CONFIG_HOTPLUG=y | ||
31 | CONFIG_KOBJECT_UEVENT=y | ||
32 | # CONFIG_IKCONFIG is not set | 47 | # CONFIG_IKCONFIG is not set |
48 | CONFIG_LOG_BUF_SHIFT=14 | ||
49 | # CONFIG_CGROUPS is not set | ||
50 | # CONFIG_GROUP_SCHED is not set | ||
51 | CONFIG_SYSFS_DEPRECATED=y | ||
52 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
53 | # CONFIG_RELAY is not set | ||
54 | CONFIG_NAMESPACES=y | ||
55 | # CONFIG_UTS_NS is not set | ||
56 | # CONFIG_IPC_NS is not set | ||
57 | # CONFIG_USER_NS is not set | ||
58 | # CONFIG_PID_NS is not set | ||
59 | # CONFIG_BLK_DEV_INITRD is not set | ||
60 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
61 | CONFIG_SYSCTL=y | ||
33 | # CONFIG_EMBEDDED is not set | 62 | # CONFIG_EMBEDDED is not set |
63 | CONFIG_UID16=y | ||
64 | CONFIG_SYSCTL_SYSCALL=y | ||
34 | CONFIG_KALLSYMS=y | 65 | CONFIG_KALLSYMS=y |
35 | # CONFIG_KALLSYMS_ALL is not set | 66 | # CONFIG_KALLSYMS_ALL is not set |
36 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 67 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
68 | CONFIG_HOTPLUG=y | ||
69 | CONFIG_PRINTK=y | ||
70 | CONFIG_BUG=y | ||
71 | CONFIG_ELF_CORE=y | ||
72 | CONFIG_COMPAT_BRK=y | ||
37 | CONFIG_BASE_FULL=y | 73 | CONFIG_BASE_FULL=y |
38 | CONFIG_FUTEX=y | 74 | CONFIG_FUTEX=y |
75 | CONFIG_ANON_INODES=y | ||
39 | CONFIG_EPOLL=y | 76 | CONFIG_EPOLL=y |
40 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 77 | CONFIG_SIGNALFD=y |
78 | CONFIG_TIMERFD=y | ||
79 | CONFIG_EVENTFD=y | ||
41 | CONFIG_SHMEM=y | 80 | CONFIG_SHMEM=y |
42 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 81 | CONFIG_VM_EVENT_COUNTERS=y |
43 | CONFIG_CC_ALIGN_LABELS=0 | 82 | CONFIG_SLUB_DEBUG=y |
44 | CONFIG_CC_ALIGN_LOOPS=0 | 83 | # CONFIG_SLAB is not set |
45 | CONFIG_CC_ALIGN_JUMPS=0 | 84 | CONFIG_SLUB=y |
85 | # CONFIG_SLOB is not set | ||
86 | # CONFIG_PROFILING is not set | ||
87 | # CONFIG_MARKERS is not set | ||
88 | CONFIG_HAVE_OPROFILE=y | ||
89 | # CONFIG_KPROBES is not set | ||
90 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | ||
91 | # CONFIG_HAVE_IOREMAP_PROT is not set | ||
92 | CONFIG_HAVE_KPROBES=y | ||
93 | CONFIG_HAVE_KRETPROBES=y | ||
94 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
95 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
96 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
97 | CONFIG_HAVE_CLK=y | ||
98 | CONFIG_PROC_PAGE_MONITOR=y | ||
99 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
100 | CONFIG_SLABINFO=y | ||
101 | CONFIG_RT_MUTEXES=y | ||
46 | # CONFIG_TINY_SHMEM is not set | 102 | # CONFIG_TINY_SHMEM is not set |
47 | CONFIG_BASE_SMALL=0 | 103 | CONFIG_BASE_SMALL=0 |
48 | |||
49 | # | ||
50 | # Loadable module support | ||
51 | # | ||
52 | CONFIG_MODULES=y | 104 | CONFIG_MODULES=y |
105 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
53 | # CONFIG_MODULE_UNLOAD is not set | 106 | # CONFIG_MODULE_UNLOAD is not set |
54 | CONFIG_OBSOLETE_MODPARM=y | ||
55 | # CONFIG_MODVERSIONS is not set | 107 | # CONFIG_MODVERSIONS is not set |
56 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 108 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
57 | CONFIG_KMOD=y | 109 | CONFIG_KMOD=y |
110 | CONFIG_BLOCK=y | ||
111 | # CONFIG_LBD is not set | ||
112 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
113 | # CONFIG_LSF is not set | ||
114 | # CONFIG_BLK_DEV_BSG is not set | ||
115 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
116 | |||
117 | # | ||
118 | # IO Schedulers | ||
119 | # | ||
120 | CONFIG_IOSCHED_NOOP=y | ||
121 | CONFIG_IOSCHED_AS=y | ||
122 | CONFIG_IOSCHED_DEADLINE=y | ||
123 | CONFIG_IOSCHED_CFQ=y | ||
124 | # CONFIG_DEFAULT_AS is not set | ||
125 | # CONFIG_DEFAULT_DEADLINE is not set | ||
126 | CONFIG_DEFAULT_CFQ=y | ||
127 | # CONFIG_DEFAULT_NOOP is not set | ||
128 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
129 | CONFIG_CLASSIC_RCU=y | ||
58 | 130 | ||
59 | # | 131 | # |
60 | # System Type | 132 | # System Type |
61 | # | 133 | # |
134 | # CONFIG_ARCH_AAEC2000 is not set | ||
135 | # CONFIG_ARCH_INTEGRATOR is not set | ||
136 | # CONFIG_ARCH_REALVIEW is not set | ||
137 | # CONFIG_ARCH_VERSATILE is not set | ||
138 | # CONFIG_ARCH_AT91 is not set | ||
62 | # CONFIG_ARCH_CLPS7500 is not set | 139 | # CONFIG_ARCH_CLPS7500 is not set |
63 | # CONFIG_ARCH_CLPS711X is not set | 140 | # CONFIG_ARCH_CLPS711X is not set |
64 | # CONFIG_ARCH_CO285 is not set | ||
65 | # CONFIG_ARCH_EBSA110 is not set | 141 | # CONFIG_ARCH_EBSA110 is not set |
142 | # CONFIG_ARCH_EP93XX is not set | ||
66 | # CONFIG_ARCH_FOOTBRIDGE is not set | 143 | # CONFIG_ARCH_FOOTBRIDGE is not set |
67 | # CONFIG_ARCH_INTEGRATOR is not set | 144 | # CONFIG_ARCH_NETX is not set |
68 | # CONFIG_ARCH_IOP3XX is not set | 145 | # CONFIG_ARCH_H720X is not set |
69 | # CONFIG_ARCH_IXP4XX is not set | 146 | # CONFIG_ARCH_IMX is not set |
147 | # CONFIG_ARCH_IOP13XX is not set | ||
148 | # CONFIG_ARCH_IOP32X is not set | ||
149 | # CONFIG_ARCH_IOP33X is not set | ||
150 | # CONFIG_ARCH_IXP23XX is not set | ||
70 | # CONFIG_ARCH_IXP2000 is not set | 151 | # CONFIG_ARCH_IXP2000 is not set |
152 | # CONFIG_ARCH_IXP4XX is not set | ||
71 | # CONFIG_ARCH_L7200 is not set | 153 | # CONFIG_ARCH_L7200 is not set |
154 | # CONFIG_ARCH_KIRKWOOD is not set | ||
155 | # CONFIG_ARCH_KS8695 is not set | ||
156 | # CONFIG_ARCH_NS9XXX is not set | ||
157 | # CONFIG_ARCH_LOKI is not set | ||
158 | # CONFIG_ARCH_MV78XX0 is not set | ||
159 | # CONFIG_ARCH_MXC is not set | ||
160 | # CONFIG_ARCH_ORION5X is not set | ||
161 | # CONFIG_ARCH_PNX4008 is not set | ||
72 | # CONFIG_ARCH_PXA is not set | 162 | # CONFIG_ARCH_PXA is not set |
73 | # CONFIG_ARCH_RPC is not set | 163 | # CONFIG_ARCH_RPC is not set |
74 | CONFIG_ARCH_SA1100=y | 164 | CONFIG_ARCH_SA1100=y |
75 | # CONFIG_ARCH_S3C2410 is not set | 165 | # CONFIG_ARCH_S3C2410 is not set |
76 | # CONFIG_ARCH_SHARK is not set | 166 | # CONFIG_ARCH_SHARK is not set |
77 | # CONFIG_ARCH_LH7A40X is not set | 167 | # CONFIG_ARCH_LH7A40X is not set |
168 | # CONFIG_ARCH_DAVINCI is not set | ||
78 | # CONFIG_ARCH_OMAP is not set | 169 | # CONFIG_ARCH_OMAP is not set |
79 | # CONFIG_ARCH_VERSATILE is not set | 170 | # CONFIG_ARCH_MSM7X00A is not set |
80 | # CONFIG_ARCH_IMX is not set | 171 | CONFIG_DMABOUNCE=y |
81 | # CONFIG_ARCH_H720X is not set | ||
82 | 172 | ||
83 | # | 173 | # |
84 | # SA11x0 Implementations | 174 | # SA11x0 Implementations |
@@ -91,12 +181,21 @@ CONFIG_ARCH_SA1100=y | |||
91 | # CONFIG_SA1100_H3800 is not set | 181 | # CONFIG_SA1100_H3800 is not set |
92 | # CONFIG_SA1100_BADGE4 is not set | 182 | # CONFIG_SA1100_BADGE4 is not set |
93 | CONFIG_SA1100_JORNADA720=y | 183 | CONFIG_SA1100_JORNADA720=y |
184 | CONFIG_SA1100_JORNADA720_SSP=y | ||
94 | # CONFIG_SA1100_HACKKIT is not set | 185 | # CONFIG_SA1100_HACKKIT is not set |
95 | # CONFIG_SA1100_LART is not set | 186 | # CONFIG_SA1100_LART is not set |
96 | # CONFIG_SA1100_PLEB is not set | 187 | # CONFIG_SA1100_PLEB is not set |
97 | # CONFIG_SA1100_SHANNON is not set | 188 | # CONFIG_SA1100_SHANNON is not set |
98 | # CONFIG_SA1100_SIMPAD is not set | 189 | # CONFIG_SA1100_SIMPAD is not set |
99 | # CONFIG_SA1100_SSP is not set | 190 | CONFIG_SA1100_SSP=y |
191 | |||
192 | # | ||
193 | # Boot options | ||
194 | # | ||
195 | |||
196 | # | ||
197 | # Power management | ||
198 | # | ||
100 | 199 | ||
101 | # | 200 | # |
102 | # Processor Type | 201 | # Processor Type |
@@ -105,44 +204,71 @@ CONFIG_CPU_32=y | |||
105 | CONFIG_CPU_SA1100=y | 204 | CONFIG_CPU_SA1100=y |
106 | CONFIG_CPU_32v4=y | 205 | CONFIG_CPU_32v4=y |
107 | CONFIG_CPU_ABRT_EV4=y | 206 | CONFIG_CPU_ABRT_EV4=y |
207 | CONFIG_CPU_PABRT_NOIFAR=y | ||
108 | CONFIG_CPU_CACHE_V4WB=y | 208 | CONFIG_CPU_CACHE_V4WB=y |
109 | CONFIG_CPU_CACHE_VIVT=y | 209 | CONFIG_CPU_CACHE_VIVT=y |
110 | CONFIG_CPU_TLB_V4WB=y | 210 | CONFIG_CPU_TLB_V4WB=y |
111 | CONFIG_CPU_MINICACHE=y | 211 | CONFIG_CPU_CP15=y |
212 | CONFIG_CPU_CP15_MMU=y | ||
112 | 213 | ||
113 | # | 214 | # |
114 | # Processor Features | 215 | # Processor Features |
115 | # | 216 | # |
217 | # CONFIG_CPU_ICACHE_DISABLE is not set | ||
218 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
219 | # CONFIG_OUTER_CACHE is not set | ||
116 | CONFIG_SA1111=y | 220 | CONFIG_SA1111=y |
117 | CONFIG_DMABOUNCE=y | ||
118 | CONFIG_FORCE_MAX_ZONEORDER=9 | 221 | CONFIG_FORCE_MAX_ZONEORDER=9 |
119 | 222 | ||
120 | # | 223 | # |
121 | # Bus support | 224 | # Bus support |
122 | # | 225 | # |
123 | CONFIG_ISA=y | 226 | CONFIG_ISA=y |
124 | 227 | # CONFIG_PCI_SYSCALL is not set | |
125 | # | 228 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
126 | # PCCARD (PCMCIA/CardBus) support | ||
127 | # | ||
128 | CONFIG_PCCARD=y | 229 | CONFIG_PCCARD=y |
129 | # CONFIG_PCMCIA_DEBUG is not set | 230 | # CONFIG_PCMCIA_DEBUG is not set |
130 | CONFIG_PCMCIA=y | 231 | CONFIG_PCMCIA=y |
232 | CONFIG_PCMCIA_LOAD_CIS=y | ||
233 | CONFIG_PCMCIA_IOCTL=y | ||
131 | 234 | ||
132 | # | 235 | # |
133 | # PC-card bridges | 236 | # PC-card bridges |
134 | # | 237 | # |
135 | CONFIG_I82365=y | 238 | # CONFIG_I82365 is not set |
136 | # CONFIG_TCIC is not set | 239 | # CONFIG_TCIC is not set |
137 | CONFIG_PCMCIA_SA1100=y | 240 | CONFIG_PCMCIA_SA1100=y |
138 | # CONFIG_PCMCIA_SA1111 is not set | 241 | # CONFIG_PCMCIA_SA1111 is not set |
139 | CONFIG_PCCARD_NONSTATIC=y | ||
140 | 242 | ||
141 | # | 243 | # |
142 | # Kernel Features | 244 | # Kernel Features |
143 | # | 245 | # |
246 | CONFIG_TICK_ONESHOT=y | ||
247 | # CONFIG_NO_HZ is not set | ||
248 | # CONFIG_HIGH_RES_TIMERS is not set | ||
249 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
144 | # CONFIG_PREEMPT is not set | 250 | # CONFIG_PREEMPT is not set |
251 | CONFIG_HZ=100 | ||
252 | # CONFIG_AEABI is not set | ||
253 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
254 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
255 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
256 | CONFIG_NODES_SHIFT=2 | ||
257 | CONFIG_SELECT_MEMORY_MODEL=y | ||
258 | # CONFIG_FLATMEM_MANUAL is not set | ||
259 | CONFIG_DISCONTIGMEM_MANUAL=y | ||
260 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
145 | CONFIG_DISCONTIGMEM=y | 261 | CONFIG_DISCONTIGMEM=y |
262 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
263 | CONFIG_NEED_MULTIPLE_NODES=y | ||
264 | # CONFIG_SPARSEMEM_STATIC is not set | ||
265 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
266 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
267 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | ||
268 | # CONFIG_RESOURCES_64BIT is not set | ||
269 | CONFIG_ZONE_DMA_FLAG=1 | ||
270 | CONFIG_BOUNCE=y | ||
271 | CONFIG_VIRT_TO_BUS=y | ||
146 | # CONFIG_LEDS is not set | 272 | # CONFIG_LEDS is not set |
147 | CONFIG_ALIGNMENT_TRAP=y | 273 | CONFIG_ALIGNMENT_TRAP=y |
148 | 274 | ||
@@ -151,8 +277,9 @@ CONFIG_ALIGNMENT_TRAP=y | |||
151 | # | 277 | # |
152 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 278 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
153 | CONFIG_ZBOOT_ROM_BSS=0x0 | 279 | CONFIG_ZBOOT_ROM_BSS=0x0 |
154 | CONFIG_CMDLINE="keepinitrd mem=32M" | 280 | CONFIG_CMDLINE="" |
155 | # CONFIG_XIP_KERNEL is not set | 281 | # CONFIG_XIP_KERNEL is not set |
282 | # CONFIG_KEXEC is not set | ||
156 | 283 | ||
157 | # | 284 | # |
158 | # CPU Frequency scaling | 285 | # CPU Frequency scaling |
@@ -174,7 +301,7 @@ CONFIG_FPE_FASTFPE=y | |||
174 | # Userspace binary formats | 301 | # Userspace binary formats |
175 | # | 302 | # |
176 | CONFIG_BINFMT_ELF=y | 303 | CONFIG_BINFMT_ELF=y |
177 | CONFIG_BINFMT_AOUT=m | 304 | CONFIG_BINFMT_AOUT=y |
178 | # CONFIG_BINFMT_MISC is not set | 305 | # CONFIG_BINFMT_MISC is not set |
179 | # CONFIG_ARTHUR is not set | 306 | # CONFIG_ARTHUR is not set |
180 | 307 | ||
@@ -182,188 +309,12 @@ CONFIG_BINFMT_AOUT=m | |||
182 | # Power management options | 309 | # Power management options |
183 | # | 310 | # |
184 | CONFIG_PM=y | 311 | CONFIG_PM=y |
185 | # CONFIG_PM_LEGACY is not set | 312 | # CONFIG_PM_DEBUG is not set |
186 | # CONFIG_APM is not set | 313 | CONFIG_PM_SLEEP=y |
187 | 314 | CONFIG_SUSPEND=y | |
188 | # | 315 | CONFIG_SUSPEND_FREEZER=y |
189 | # Device Drivers | 316 | # CONFIG_APM_EMULATION is not set |
190 | # | 317 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
191 | |||
192 | # | ||
193 | # Generic Driver Options | ||
194 | # | ||
195 | CONFIG_STANDALONE=y | ||
196 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
197 | # CONFIG_FW_LOADER is not set | ||
198 | # CONFIG_DEBUG_DRIVER is not set | ||
199 | |||
200 | # | ||
201 | # Memory Technology Devices (MTD) | ||
202 | # | ||
203 | CONFIG_MTD=y | ||
204 | CONFIG_MTD_DEBUG=y | ||
205 | CONFIG_MTD_DEBUG_VERBOSE=1 | ||
206 | # CONFIG_MTD_CONCAT is not set | ||
207 | CONFIG_MTD_PARTITIONS=y | ||
208 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
209 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
210 | # CONFIG_MTD_AFS_PARTS is not set | ||
211 | |||
212 | # | ||
213 | # User Modules And Translation Layers | ||
214 | # | ||
215 | CONFIG_MTD_CHAR=m | ||
216 | CONFIG_MTD_BLOCK=y | ||
217 | # CONFIG_FTL is not set | ||
218 | # CONFIG_NFTL is not set | ||
219 | # CONFIG_INFTL is not set | ||
220 | |||
221 | # | ||
222 | # RAM/ROM/Flash chip drivers | ||
223 | # | ||
224 | CONFIG_MTD_CFI=y | ||
225 | # CONFIG_MTD_JEDECPROBE is not set | ||
226 | CONFIG_MTD_GEN_PROBE=y | ||
227 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
228 | CONFIG_MTD_CFI_NOSWAP=y | ||
229 | # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set | ||
230 | # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set | ||
231 | CONFIG_MTD_CFI_GEOMETRY=y | ||
232 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
233 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
234 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
235 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
236 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
237 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
238 | CONFIG_MTD_CFI_I1=y | ||
239 | CONFIG_MTD_CFI_I2=y | ||
240 | # CONFIG_MTD_CFI_I4 is not set | ||
241 | # CONFIG_MTD_CFI_I8 is not set | ||
242 | CONFIG_MTD_CFI_INTELEXT=y | ||
243 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
244 | # CONFIG_MTD_CFI_STAA is not set | ||
245 | CONFIG_MTD_CFI_UTIL=y | ||
246 | # CONFIG_MTD_RAM is not set | ||
247 | # CONFIG_MTD_ROM is not set | ||
248 | # CONFIG_MTD_ABSENT is not set | ||
249 | # CONFIG_MTD_XIP is not set | ||
250 | |||
251 | # | ||
252 | # Mapping drivers for chip access | ||
253 | # | ||
254 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
255 | # CONFIG_MTD_PHYSMAP is not set | ||
256 | # CONFIG_MTD_ARM_INTEGRATOR is not set | ||
257 | CONFIG_MTD_SA1100=y | ||
258 | # CONFIG_MTD_EDB7312 is not set | ||
259 | |||
260 | # | ||
261 | # Self-contained MTD device drivers | ||
262 | # | ||
263 | # CONFIG_MTD_SLRAM is not set | ||
264 | # CONFIG_MTD_PHRAM is not set | ||
265 | # CONFIG_MTD_MTDRAM is not set | ||
266 | # CONFIG_MTD_BLKMTD is not set | ||
267 | # CONFIG_MTD_BLOCK2MTD is not set | ||
268 | |||
269 | # | ||
270 | # Disk-On-Chip Device Drivers | ||
271 | # | ||
272 | # CONFIG_MTD_DOC2000 is not set | ||
273 | # CONFIG_MTD_DOC2001 is not set | ||
274 | # CONFIG_MTD_DOC2001PLUS is not set | ||
275 | |||
276 | # | ||
277 | # NAND Flash Device Drivers | ||
278 | # | ||
279 | # CONFIG_MTD_NAND is not set | ||
280 | |||
281 | # | ||
282 | # Parallel port support | ||
283 | # | ||
284 | # CONFIG_PARPORT is not set | ||
285 | |||
286 | # | ||
287 | # Plug and Play support | ||
288 | # | ||
289 | # CONFIG_PNP is not set | ||
290 | |||
291 | # | ||
292 | # Block devices | ||
293 | # | ||
294 | # CONFIG_BLK_DEV_FD is not set | ||
295 | # CONFIG_BLK_DEV_XD is not set | ||
296 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
297 | CONFIG_BLK_DEV_LOOP=m | ||
298 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
299 | CONFIG_BLK_DEV_NBD=m | ||
300 | # CONFIG_BLK_DEV_RAM is not set | ||
301 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
302 | CONFIG_INITRAMFS_SOURCE="" | ||
303 | # CONFIG_CDROM_PKTCDVD is not set | ||
304 | |||
305 | # | ||
306 | # IO Schedulers | ||
307 | # | ||
308 | CONFIG_IOSCHED_NOOP=y | ||
309 | CONFIG_IOSCHED_AS=y | ||
310 | CONFIG_IOSCHED_DEADLINE=y | ||
311 | CONFIG_IOSCHED_CFQ=y | ||
312 | # CONFIG_ATA_OVER_ETH is not set | ||
313 | |||
314 | # | ||
315 | # ATA/ATAPI/MFM/RLL support | ||
316 | # | ||
317 | CONFIG_IDE=m | ||
318 | CONFIG_BLK_DEV_IDE=m | ||
319 | |||
320 | # | ||
321 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
322 | # | ||
323 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
324 | CONFIG_BLK_DEV_IDEDISK=m | ||
325 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
326 | # CONFIG_BLK_DEV_IDECS is not set | ||
327 | CONFIG_BLK_DEV_IDECD=m | ||
328 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
329 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
330 | # CONFIG_IDE_TASK_IOCTL is not set | ||
331 | |||
332 | # | ||
333 | # IDE chipset support/bugfixes | ||
334 | # | ||
335 | CONFIG_IDE_GENERIC=m | ||
336 | # CONFIG_IDE_ARM is not set | ||
337 | # CONFIG_IDE_CHIPSETS is not set | ||
338 | # CONFIG_BLK_DEV_IDEDMA is not set | ||
339 | # CONFIG_IDEDMA_AUTO is not set | ||
340 | # CONFIG_BLK_DEV_HD is not set | ||
341 | |||
342 | # | ||
343 | # SCSI device support | ||
344 | # | ||
345 | # CONFIG_SCSI is not set | ||
346 | |||
347 | # | ||
348 | # Multi-device support (RAID and LVM) | ||
349 | # | ||
350 | # CONFIG_MD is not set | ||
351 | |||
352 | # | ||
353 | # Fusion MPT device support | ||
354 | # | ||
355 | |||
356 | # | ||
357 | # IEEE 1394 (FireWire) support | ||
358 | # | ||
359 | |||
360 | # | ||
361 | # I2O device support | ||
362 | # | ||
363 | |||
364 | # | ||
365 | # Networking support | ||
366 | # | ||
367 | CONFIG_NET=y | 318 | CONFIG_NET=y |
368 | 319 | ||
369 | # | 320 | # |
@@ -371,12 +322,17 @@ CONFIG_NET=y | |||
371 | # | 322 | # |
372 | CONFIG_PACKET=y | 323 | CONFIG_PACKET=y |
373 | CONFIG_PACKET_MMAP=y | 324 | CONFIG_PACKET_MMAP=y |
374 | # CONFIG_NETLINK_DEV is not set | ||
375 | CONFIG_UNIX=y | 325 | CONFIG_UNIX=y |
326 | CONFIG_XFRM=y | ||
327 | # CONFIG_XFRM_USER is not set | ||
328 | # CONFIG_XFRM_SUB_POLICY is not set | ||
329 | # CONFIG_XFRM_MIGRATE is not set | ||
330 | # CONFIG_XFRM_STATISTICS is not set | ||
376 | # CONFIG_NET_KEY is not set | 331 | # CONFIG_NET_KEY is not set |
377 | CONFIG_INET=y | 332 | CONFIG_INET=y |
378 | CONFIG_IP_MULTICAST=y | 333 | CONFIG_IP_MULTICAST=y |
379 | # CONFIG_IP_ADVANCED_ROUTER is not set | 334 | # CONFIG_IP_ADVANCED_ROUTER is not set |
335 | CONFIG_IP_FIB_HASH=y | ||
380 | # CONFIG_IP_PNP is not set | 336 | # CONFIG_IP_PNP is not set |
381 | # CONFIG_NET_IPIP is not set | 337 | # CONFIG_NET_IPIP is not set |
382 | # CONFIG_NET_IPGRE is not set | 338 | # CONFIG_NET_IPGRE is not set |
@@ -386,31 +342,42 @@ CONFIG_IP_MULTICAST=y | |||
386 | # CONFIG_INET_AH is not set | 342 | # CONFIG_INET_AH is not set |
387 | # CONFIG_INET_ESP is not set | 343 | # CONFIG_INET_ESP is not set |
388 | # CONFIG_INET_IPCOMP is not set | 344 | # CONFIG_INET_IPCOMP is not set |
345 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
389 | # CONFIG_INET_TUNNEL is not set | 346 | # CONFIG_INET_TUNNEL is not set |
390 | # CONFIG_IP_TCPDIAG is not set | 347 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
391 | # CONFIG_IP_TCPDIAG_IPV6 is not set | 348 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
392 | 349 | CONFIG_INET_XFRM_MODE_BEET=y | |
393 | # | 350 | # CONFIG_INET_LRO is not set |
394 | # IP: Virtual Server Configuration | 351 | CONFIG_INET_DIAG=y |
395 | # | 352 | CONFIG_INET_TCP_DIAG=y |
353 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
354 | CONFIG_TCP_CONG_CUBIC=y | ||
355 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
356 | # CONFIG_TCP_MD5SIG is not set | ||
396 | # CONFIG_IP_VS is not set | 357 | # CONFIG_IP_VS is not set |
397 | # CONFIG_IPV6 is not set | 358 | # CONFIG_IPV6 is not set |
359 | # CONFIG_NETWORK_SECMARK is not set | ||
398 | CONFIG_NETFILTER=y | 360 | CONFIG_NETFILTER=y |
399 | # CONFIG_NETFILTER_DEBUG is not set | 361 | # CONFIG_NETFILTER_DEBUG is not set |
362 | CONFIG_NETFILTER_ADVANCED=y | ||
363 | |||
364 | # | ||
365 | # Core Netfilter Configuration | ||
366 | # | ||
367 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set | ||
368 | # CONFIG_NETFILTER_NETLINK_LOG is not set | ||
369 | # CONFIG_NF_CONNTRACK is not set | ||
370 | # CONFIG_NETFILTER_XTABLES is not set | ||
400 | 371 | ||
401 | # | 372 | # |
402 | # IP: Netfilter Configuration | 373 | # IP: Netfilter Configuration |
403 | # | 374 | # |
404 | # CONFIG_IP_NF_CONNTRACK is not set | ||
405 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
406 | # CONFIG_IP_NF_QUEUE is not set | 375 | # CONFIG_IP_NF_QUEUE is not set |
407 | # CONFIG_IP_NF_IPTABLES is not set | 376 | # CONFIG_IP_NF_IPTABLES is not set |
408 | # CONFIG_IP_NF_ARPTABLES is not set | 377 | # CONFIG_IP_NF_ARPTABLES is not set |
409 | 378 | # CONFIG_IP_DCCP is not set | |
410 | # | ||
411 | # SCTP Configuration (EXPERIMENTAL) | ||
412 | # | ||
413 | # CONFIG_IP_SCTP is not set | 379 | # CONFIG_IP_SCTP is not set |
380 | # CONFIG_TIPC is not set | ||
414 | # CONFIG_ATM is not set | 381 | # CONFIG_ATM is not set |
415 | # CONFIG_BRIDGE is not set | 382 | # CONFIG_BRIDGE is not set |
416 | # CONFIG_VLAN_8021Q is not set | 383 | # CONFIG_VLAN_8021Q is not set |
@@ -420,30 +387,22 @@ CONFIG_NETFILTER=y | |||
420 | # CONFIG_ATALK is not set | 387 | # CONFIG_ATALK is not set |
421 | # CONFIG_X25 is not set | 388 | # CONFIG_X25 is not set |
422 | # CONFIG_LAPB is not set | 389 | # CONFIG_LAPB is not set |
423 | # CONFIG_NET_DIVERT is not set | ||
424 | # CONFIG_ECONET is not set | 390 | # CONFIG_ECONET is not set |
425 | # CONFIG_WAN_ROUTER is not set | 391 | # CONFIG_WAN_ROUTER is not set |
426 | |||
427 | # | ||
428 | # QoS and/or fair queueing | ||
429 | # | ||
430 | # CONFIG_NET_SCHED is not set | 392 | # CONFIG_NET_SCHED is not set |
431 | # CONFIG_NET_CLS_ROUTE is not set | ||
432 | 393 | ||
433 | # | 394 | # |
434 | # Network testing | 395 | # Network testing |
435 | # | 396 | # |
436 | # CONFIG_NET_PKTGEN is not set | 397 | # CONFIG_NET_PKTGEN is not set |
437 | # CONFIG_NETPOLL is not set | ||
438 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
439 | # CONFIG_HAMRADIO is not set | 398 | # CONFIG_HAMRADIO is not set |
399 | # CONFIG_CAN is not set | ||
440 | CONFIG_IRDA=m | 400 | CONFIG_IRDA=m |
441 | 401 | ||
442 | # | 402 | # |
443 | # IrDA protocols | 403 | # IrDA protocols |
444 | # | 404 | # |
445 | CONFIG_IRLAN=m | 405 | CONFIG_IRLAN=m |
446 | # CONFIG_IRNET is not set | ||
447 | CONFIG_IRCOMM=m | 406 | CONFIG_IRCOMM=m |
448 | # CONFIG_IRDA_ULTRA is not set | 407 | # CONFIG_IRDA_ULTRA is not set |
449 | 408 | ||
@@ -468,89 +427,105 @@ CONFIG_IRCOMM=m | |||
468 | # | 427 | # |
469 | 428 | ||
470 | # | 429 | # |
471 | # Old SIR device drivers | ||
472 | # | ||
473 | # CONFIG_IRPORT_SIR is not set | ||
474 | |||
475 | # | ||
476 | # Old Serial dongle support | ||
477 | # | ||
478 | |||
479 | # | ||
480 | # FIR device drivers | 430 | # FIR device drivers |
481 | # | 431 | # |
482 | # CONFIG_NSC_FIR is not set | ||
483 | # CONFIG_WINBOND_FIR is not set | ||
484 | # CONFIG_SMC_IRCC_FIR is not set | ||
485 | # CONFIG_ALI_FIR is not set | ||
486 | CONFIG_SA1100_FIR=m | 432 | CONFIG_SA1100_FIR=m |
487 | # CONFIG_BT is not set | 433 | # CONFIG_BT is not set |
488 | CONFIG_NETDEVICES=y | 434 | # CONFIG_AF_RXRPC is not set |
489 | # CONFIG_DUMMY is not set | ||
490 | # CONFIG_BONDING is not set | ||
491 | # CONFIG_EQUALIZER is not set | ||
492 | # CONFIG_TUN is not set | ||
493 | |||
494 | # | ||
495 | # ARCnet devices | ||
496 | # | ||
497 | # CONFIG_ARCNET is not set | ||
498 | |||
499 | # | ||
500 | # Ethernet (10 or 100Mbit) | ||
501 | # | ||
502 | # CONFIG_NET_ETHERNET is not set | ||
503 | CONFIG_MII=m | ||
504 | 435 | ||
505 | # | 436 | # |
506 | # Ethernet (1000 Mbit) | 437 | # Wireless |
507 | # | 438 | # |
439 | # CONFIG_CFG80211 is not set | ||
440 | # CONFIG_WIRELESS_EXT is not set | ||
441 | # CONFIG_MAC80211 is not set | ||
442 | # CONFIG_IEEE80211 is not set | ||
443 | # CONFIG_RFKILL is not set | ||
444 | # CONFIG_NET_9P is not set | ||
508 | 445 | ||
509 | # | 446 | # |
510 | # Ethernet (10000 Mbit) | 447 | # Device Drivers |
511 | # | ||
512 | |||
513 | # | ||
514 | # Token Ring devices | ||
515 | # | ||
516 | # CONFIG_TR is not set | ||
517 | |||
518 | # | ||
519 | # Wireless LAN (non-hamradio) | ||
520 | # | 448 | # |
521 | CONFIG_NET_RADIO=y | ||
522 | 449 | ||
523 | # | 450 | # |
524 | # Obsolete Wireless cards support (pre-802.11) | 451 | # Generic Driver Options |
525 | # | 452 | # |
526 | # CONFIG_STRIP is not set | 453 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
527 | CONFIG_ARLAN=m | 454 | CONFIG_STANDALONE=y |
528 | CONFIG_WAVELAN=m | 455 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
529 | CONFIG_PCMCIA_WAVELAN=m | 456 | CONFIG_FW_LOADER=y |
530 | # CONFIG_PCMCIA_NETWAVE is not set | 457 | CONFIG_FIRMWARE_IN_KERNEL=y |
458 | CONFIG_EXTRA_FIRMWARE="" | ||
459 | # CONFIG_DEBUG_DRIVER is not set | ||
460 | # CONFIG_DEBUG_DEVRES is not set | ||
461 | # CONFIG_SYS_HYPERVISOR is not set | ||
462 | # CONFIG_CONNECTOR is not set | ||
463 | # CONFIG_MTD is not set | ||
464 | # CONFIG_PARPORT is not set | ||
465 | # CONFIG_PNP is not set | ||
466 | CONFIG_BLK_DEV=y | ||
467 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
468 | CONFIG_BLK_DEV_LOOP=m | ||
469 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
470 | CONFIG_BLK_DEV_NBD=m | ||
471 | # CONFIG_BLK_DEV_RAM is not set | ||
472 | # CONFIG_CDROM_PKTCDVD is not set | ||
473 | # CONFIG_ATA_OVER_ETH is not set | ||
474 | CONFIG_MISC_DEVICES=y | ||
475 | # CONFIG_EEPROM_93CX6 is not set | ||
476 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
477 | CONFIG_HAVE_IDE=y | ||
478 | CONFIG_IDE=y | ||
479 | CONFIG_BLK_DEV_IDE=y | ||
531 | 480 | ||
532 | # | 481 | # |
533 | # Wireless 802.11 Frequency Hopping cards support | 482 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
534 | # | 483 | # |
535 | # CONFIG_PCMCIA_RAYCS is not set | 484 | # CONFIG_BLK_DEV_IDE_SATA is not set |
485 | CONFIG_BLK_DEV_IDEDISK=y | ||
486 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
487 | CONFIG_BLK_DEV_IDECS=y | ||
488 | # CONFIG_BLK_DEV_IDECD is not set | ||
489 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
490 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
491 | # CONFIG_IDE_TASK_IOCTL is not set | ||
492 | CONFIG_IDE_PROC_FS=y | ||
536 | 493 | ||
537 | # | 494 | # |
538 | # Wireless 802.11b ISA/PCI cards support | 495 | # IDE chipset support/bugfixes |
539 | # | 496 | # |
540 | CONFIG_HERMES=m | 497 | # CONFIG_BLK_DEV_PLATFORM is not set |
541 | # CONFIG_ATMEL is not set | 498 | # CONFIG_BLK_DEV_IDEDMA is not set |
542 | 499 | ||
543 | # | 500 | # |
544 | # Wireless 802.11b Pcmcia/Cardbus cards support | 501 | # SCSI device support |
545 | # | 502 | # |
546 | CONFIG_PCMCIA_HERMES=m | 503 | # CONFIG_RAID_ATTRS is not set |
547 | CONFIG_AIRO_CS=m | 504 | # CONFIG_SCSI is not set |
548 | # CONFIG_PCMCIA_WL3501 is not set | 505 | # CONFIG_SCSI_DMA is not set |
549 | CONFIG_NET_WIRELESS=y | 506 | # CONFIG_SCSI_NETLINK is not set |
507 | # CONFIG_ATA is not set | ||
508 | # CONFIG_MD is not set | ||
509 | CONFIG_NETDEVICES=y | ||
510 | CONFIG_DUMMY=y | ||
511 | # CONFIG_BONDING is not set | ||
512 | # CONFIG_MACVLAN is not set | ||
513 | # CONFIG_EQUALIZER is not set | ||
514 | # CONFIG_TUN is not set | ||
515 | # CONFIG_VETH is not set | ||
516 | # CONFIG_ARCNET is not set | ||
517 | # CONFIG_NET_ETHERNET is not set | ||
518 | CONFIG_MII=m | ||
519 | # CONFIG_NETDEV_1000 is not set | ||
520 | # CONFIG_NETDEV_10000 is not set | ||
521 | # CONFIG_TR is not set | ||
550 | 522 | ||
551 | # | 523 | # |
552 | # PCMCIA network device support | 524 | # Wireless LAN |
553 | # | 525 | # |
526 | # CONFIG_WLAN_PRE80211 is not set | ||
527 | # CONFIG_WLAN_80211 is not set | ||
528 | # CONFIG_IWLWIFI_LEDS is not set | ||
554 | CONFIG_NET_PCMCIA=y | 529 | CONFIG_NET_PCMCIA=y |
555 | CONFIG_PCMCIA_3C589=m | 530 | CONFIG_PCMCIA_3C589=m |
556 | CONFIG_PCMCIA_3C574=m | 531 | CONFIG_PCMCIA_3C574=m |
@@ -560,32 +535,20 @@ CONFIG_PCMCIA_NMCLAN=m | |||
560 | CONFIG_PCMCIA_SMC91C92=m | 535 | CONFIG_PCMCIA_SMC91C92=m |
561 | CONFIG_PCMCIA_XIRC2PS=m | 536 | CONFIG_PCMCIA_XIRC2PS=m |
562 | CONFIG_PCMCIA_AXNET=m | 537 | CONFIG_PCMCIA_AXNET=m |
563 | |||
564 | # | ||
565 | # Wan interfaces | ||
566 | # | ||
567 | # CONFIG_WAN is not set | 538 | # CONFIG_WAN is not set |
568 | CONFIG_PPP=m | 539 | # CONFIG_PPP is not set |
569 | # CONFIG_PPP_MULTILINK is not set | ||
570 | # CONFIG_PPP_FILTER is not set | ||
571 | CONFIG_PPP_ASYNC=m | ||
572 | # CONFIG_PPP_SYNC_TTY is not set | ||
573 | CONFIG_PPP_DEFLATE=m | ||
574 | CONFIG_PPP_BSDCOMP=m | ||
575 | # CONFIG_PPPOE is not set | ||
576 | # CONFIG_SLIP is not set | 540 | # CONFIG_SLIP is not set |
577 | # CONFIG_SHAPER is not set | ||
578 | # CONFIG_NETCONSOLE is not set | 541 | # CONFIG_NETCONSOLE is not set |
579 | 542 | # CONFIG_NETPOLL is not set | |
580 | # | 543 | # CONFIG_NET_POLL_CONTROLLER is not set |
581 | # ISDN subsystem | ||
582 | # | ||
583 | # CONFIG_ISDN is not set | 544 | # CONFIG_ISDN is not set |
584 | 545 | ||
585 | # | 546 | # |
586 | # Input device support | 547 | # Input device support |
587 | # | 548 | # |
588 | CONFIG_INPUT=y | 549 | CONFIG_INPUT=y |
550 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
551 | # CONFIG_INPUT_POLLDEV is not set | ||
589 | 552 | ||
590 | # | 553 | # |
591 | # Userland interfaces | 554 | # Userland interfaces |
@@ -595,7 +558,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y | |||
595 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=640 | 558 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=640 |
596 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 | 559 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 |
597 | # CONFIG_INPUT_JOYDEV is not set | 560 | # CONFIG_INPUT_JOYDEV is not set |
598 | # CONFIG_INPUT_TSDEV is not set | ||
599 | # CONFIG_INPUT_EVDEV is not set | 561 | # CONFIG_INPUT_EVDEV is not set |
600 | # CONFIG_INPUT_EVBUG is not set | 562 | # CONFIG_INPUT_EVBUG is not set |
601 | 563 | ||
@@ -603,20 +565,31 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 | |||
603 | # Input Device Drivers | 565 | # Input Device Drivers |
604 | # | 566 | # |
605 | CONFIG_INPUT_KEYBOARD=y | 567 | CONFIG_INPUT_KEYBOARD=y |
606 | CONFIG_KEYBOARD_ATKBD=y | 568 | # CONFIG_KEYBOARD_ATKBD is not set |
607 | # CONFIG_KEYBOARD_SUNKBD is not set | 569 | # CONFIG_KEYBOARD_SUNKBD is not set |
608 | # CONFIG_KEYBOARD_LKKBD is not set | 570 | # CONFIG_KEYBOARD_LKKBD is not set |
609 | # CONFIG_KEYBOARD_XTKBD is not set | 571 | # CONFIG_KEYBOARD_XTKBD is not set |
610 | # CONFIG_KEYBOARD_NEWTON is not set | 572 | # CONFIG_KEYBOARD_NEWTON is not set |
611 | CONFIG_INPUT_MOUSE=y | 573 | # CONFIG_KEYBOARD_STOWAWAY is not set |
612 | CONFIG_MOUSE_PS2=y | 574 | CONFIG_KEYBOARD_HP7XX=y |
613 | # CONFIG_MOUSE_SERIAL is not set | 575 | # CONFIG_KEYBOARD_GPIO is not set |
614 | # CONFIG_MOUSE_INPORT is not set | 576 | # CONFIG_INPUT_MOUSE is not set |
615 | # CONFIG_MOUSE_LOGIBM is not set | ||
616 | # CONFIG_MOUSE_PC110PAD is not set | ||
617 | # CONFIG_MOUSE_VSXXXAA is not set | ||
618 | # CONFIG_INPUT_JOYSTICK is not set | 577 | # CONFIG_INPUT_JOYSTICK is not set |
619 | # CONFIG_INPUT_TOUCHSCREEN is not set | 578 | # CONFIG_INPUT_TABLET is not set |
579 | CONFIG_INPUT_TOUCHSCREEN=y | ||
580 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | ||
581 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
582 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
583 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
584 | # CONFIG_TOUCHSCREEN_INEXIO is not set | ||
585 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
586 | CONFIG_TOUCHSCREEN_HP7XX=y | ||
587 | # CONFIG_TOUCHSCREEN_HTCPEN is not set | ||
588 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | ||
589 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | ||
590 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | ||
591 | # CONFIG_TOUCHSCREEN_UCB1400 is not set | ||
592 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set | ||
620 | # CONFIG_INPUT_MISC is not set | 593 | # CONFIG_INPUT_MISC is not set |
621 | 594 | ||
622 | # | 595 | # |
@@ -625,17 +598,18 @@ CONFIG_MOUSE_PS2=y | |||
625 | CONFIG_SERIO=y | 598 | CONFIG_SERIO=y |
626 | CONFIG_SERIO_SERPORT=y | 599 | CONFIG_SERIO_SERPORT=y |
627 | # CONFIG_SERIO_SA1111 is not set | 600 | # CONFIG_SERIO_SA1111 is not set |
628 | CONFIG_SERIO_LIBPS2=y | ||
629 | # CONFIG_SERIO_RAW is not set | 601 | # CONFIG_SERIO_RAW is not set |
630 | # CONFIG_GAMEPORT is not set | 602 | # CONFIG_GAMEPORT is not set |
631 | CONFIG_SOUND_GAMEPORT=y | ||
632 | 603 | ||
633 | # | 604 | # |
634 | # Character devices | 605 | # Character devices |
635 | # | 606 | # |
636 | CONFIG_VT=y | 607 | CONFIG_VT=y |
608 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
637 | CONFIG_VT_CONSOLE=y | 609 | CONFIG_VT_CONSOLE=y |
638 | CONFIG_HW_CONSOLE=y | 610 | CONFIG_HW_CONSOLE=y |
611 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
612 | CONFIG_DEVKMEM=y | ||
639 | # CONFIG_SERIAL_NONSTANDARD is not set | 613 | # CONFIG_SERIAL_NONSTANDARD is not set |
640 | 614 | ||
641 | # | 615 | # |
@@ -652,69 +626,120 @@ CONFIG_SERIAL_CORE=y | |||
652 | CONFIG_SERIAL_CORE_CONSOLE=y | 626 | CONFIG_SERIAL_CORE_CONSOLE=y |
653 | CONFIG_UNIX98_PTYS=y | 627 | CONFIG_UNIX98_PTYS=y |
654 | CONFIG_LEGACY_PTYS=y | 628 | CONFIG_LEGACY_PTYS=y |
655 | CONFIG_LEGACY_PTY_COUNT=256 | 629 | CONFIG_LEGACY_PTY_COUNT=32 |
630 | # CONFIG_IPMI_HANDLER is not set | ||
631 | CONFIG_HW_RANDOM=m | ||
632 | # CONFIG_NVRAM is not set | ||
633 | # CONFIG_DTLK is not set | ||
634 | # CONFIG_R3964 is not set | ||
656 | 635 | ||
657 | # | 636 | # |
658 | # IPMI | 637 | # PCMCIA character devices |
659 | # | 638 | # |
660 | # CONFIG_IPMI_HANDLER is not set | 639 | # CONFIG_SYNCLINK_CS is not set |
640 | # CONFIG_CARDMAN_4000 is not set | ||
641 | # CONFIG_CARDMAN_4040 is not set | ||
642 | # CONFIG_IPWIRELESS is not set | ||
643 | # CONFIG_RAW_DRIVER is not set | ||
644 | # CONFIG_TCG_TPM is not set | ||
645 | CONFIG_DEVPORT=y | ||
646 | # CONFIG_I2C is not set | ||
647 | # CONFIG_SPI is not set | ||
648 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
649 | CONFIG_GPIOLIB=y | ||
650 | # CONFIG_DEBUG_GPIO is not set | ||
651 | # CONFIG_GPIO_SYSFS is not set | ||
661 | 652 | ||
662 | # | 653 | # |
663 | # Watchdog Cards | 654 | # I2C GPIO expanders: |
664 | # | 655 | # |
665 | # CONFIG_WATCHDOG is not set | ||
666 | # CONFIG_NVRAM is not set | ||
667 | # CONFIG_RTC is not set | ||
668 | # CONFIG_DTLK is not set | ||
669 | # CONFIG_R3964 is not set | ||
670 | 656 | ||
671 | # | 657 | # |
672 | # Ftape, the floppy tape device driver | 658 | # PCI GPIO expanders: |
673 | # | 659 | # |
674 | # CONFIG_DRM is not set | ||
675 | 660 | ||
676 | # | 661 | # |
677 | # PCMCIA character devices | 662 | # SPI GPIO expanders: |
678 | # | 663 | # |
679 | # CONFIG_SYNCLINK_CS is not set | 664 | # CONFIG_W1 is not set |
680 | # CONFIG_RAW_DRIVER is not set | 665 | # CONFIG_POWER_SUPPLY is not set |
666 | # CONFIG_HWMON is not set | ||
667 | # CONFIG_WATCHDOG is not set | ||
681 | 668 | ||
682 | # | 669 | # |
683 | # TPM devices | 670 | # Sonics Silicon Backplane |
684 | # | 671 | # |
685 | # CONFIG_TCG_TPM is not set | 672 | CONFIG_SSB_POSSIBLE=y |
673 | # CONFIG_SSB is not set | ||
686 | 674 | ||
687 | # | 675 | # |
688 | # I2C support | 676 | # Multifunction device drivers |
689 | # | 677 | # |
690 | # CONFIG_I2C is not set | 678 | # CONFIG_MFD_CORE is not set |
679 | # CONFIG_MFD_SM501 is not set | ||
680 | # CONFIG_HTC_EGPIO is not set | ||
681 | # CONFIG_HTC_PASIC3 is not set | ||
682 | # CONFIG_MFD_TMIO is not set | ||
683 | # CONFIG_MFD_T7L66XB is not set | ||
684 | # CONFIG_MFD_TC6387XB is not set | ||
685 | # CONFIG_MFD_TC6393XB is not set | ||
691 | 686 | ||
692 | # | 687 | # |
693 | # Misc devices | 688 | # Multimedia Capabilities Port drivers |
694 | # | 689 | # |
690 | # CONFIG_MCP_SA11X0 is not set | ||
695 | 691 | ||
696 | # | 692 | # |
697 | # Multimedia devices | 693 | # Multimedia devices |
698 | # | 694 | # |
695 | |||
696 | # | ||
697 | # Multimedia core support | ||
698 | # | ||
699 | # CONFIG_VIDEO_DEV is not set | 699 | # CONFIG_VIDEO_DEV is not set |
700 | # CONFIG_DVB_CORE is not set | ||
701 | # CONFIG_VIDEO_MEDIA is not set | ||
700 | 702 | ||
701 | # | 703 | # |
702 | # Digital Video Broadcasting Devices | 704 | # Multimedia drivers |
703 | # | 705 | # |
704 | # CONFIG_DVB is not set | 706 | # CONFIG_DAB is not set |
705 | 707 | ||
706 | # | 708 | # |
707 | # Graphics support | 709 | # Graphics support |
708 | # | 710 | # |
711 | # CONFIG_VGASTATE is not set | ||
712 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
709 | CONFIG_FB=y | 713 | CONFIG_FB=y |
710 | # CONFIG_FB_CFB_FILLRECT is not set | 714 | # CONFIG_FIRMWARE_EDID is not set |
711 | # CONFIG_FB_CFB_COPYAREA is not set | 715 | # CONFIG_FB_DDC is not set |
712 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 716 | CONFIG_FB_CFB_FILLRECT=y |
713 | # CONFIG_FB_SOFT_CURSOR is not set | 717 | CONFIG_FB_CFB_COPYAREA=y |
718 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
719 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
720 | # CONFIG_FB_SYS_FILLRECT is not set | ||
721 | # CONFIG_FB_SYS_COPYAREA is not set | ||
722 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
723 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
724 | # CONFIG_FB_SYS_FOPS is not set | ||
725 | # CONFIG_FB_SVGALIB is not set | ||
726 | # CONFIG_FB_MACMODES is not set | ||
727 | # CONFIG_FB_BACKLIGHT is not set | ||
714 | # CONFIG_FB_MODE_HELPERS is not set | 728 | # CONFIG_FB_MODE_HELPERS is not set |
715 | # CONFIG_FB_TILEBLITTING is not set | 729 | # CONFIG_FB_TILEBLITTING is not set |
730 | |||
731 | # | ||
732 | # Frame buffer hardware drivers | ||
733 | # | ||
716 | # CONFIG_FB_SA1100 is not set | 734 | # CONFIG_FB_SA1100 is not set |
735 | CONFIG_FB_S1D13XXX=y | ||
717 | # CONFIG_FB_VIRTUAL is not set | 736 | # CONFIG_FB_VIRTUAL is not set |
737 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
738 | |||
739 | # | ||
740 | # Display device support | ||
741 | # | ||
742 | # CONFIG_DISPLAY_SUPPORT is not set | ||
718 | 743 | ||
719 | # | 744 | # |
720 | # Console display driver support | 745 | # Console display driver support |
@@ -722,94 +747,110 @@ CONFIG_FB=y | |||
722 | # CONFIG_VGA_CONSOLE is not set | 747 | # CONFIG_VGA_CONSOLE is not set |
723 | # CONFIG_MDA_CONSOLE is not set | 748 | # CONFIG_MDA_CONSOLE is not set |
724 | CONFIG_DUMMY_CONSOLE=y | 749 | CONFIG_DUMMY_CONSOLE=y |
725 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | 750 | CONFIG_FRAMEBUFFER_CONSOLE=y |
726 | 751 | CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y | |
727 | # | 752 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set |
728 | # Logo configuration | 753 | # CONFIG_FONTS is not set |
729 | # | 754 | CONFIG_FONT_8x8=y |
755 | CONFIG_FONT_8x16=y | ||
730 | # CONFIG_LOGO is not set | 756 | # CONFIG_LOGO is not set |
731 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 757 | # CONFIG_SOUND is not set |
732 | 758 | # CONFIG_HID_SUPPORT is not set | |
733 | # | 759 | # CONFIG_USB_SUPPORT is not set |
734 | # Sound | 760 | # CONFIG_MMC is not set |
735 | # | 761 | # CONFIG_NEW_LEDS is not set |
736 | CONFIG_SOUND=m | 762 | CONFIG_RTC_LIB=y |
763 | CONFIG_RTC_CLASS=y | ||
764 | CONFIG_RTC_HCTOSYS=y | ||
765 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
766 | # CONFIG_RTC_DEBUG is not set | ||
737 | 767 | ||
738 | # | 768 | # |
739 | # Advanced Linux Sound Architecture | 769 | # RTC interfaces |
740 | # | 770 | # |
741 | # CONFIG_SND is not set | 771 | CONFIG_RTC_INTF_SYSFS=y |
772 | CONFIG_RTC_INTF_PROC=y | ||
773 | CONFIG_RTC_INTF_DEV=y | ||
774 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
775 | # CONFIG_RTC_DRV_TEST is not set | ||
742 | 776 | ||
743 | # | 777 | # |
744 | # Open Sound System | 778 | # SPI RTC drivers |
745 | # | 779 | # |
746 | # CONFIG_SOUND_PRIME is not set | ||
747 | 780 | ||
748 | # | 781 | # |
749 | # USB support | 782 | # Platform RTC drivers |
750 | # | 783 | # |
751 | CONFIG_USB_ARCH_HAS_HCD=y | 784 | # CONFIG_RTC_DRV_CMOS is not set |
752 | CONFIG_USB_ARCH_HAS_OHCI=y | 785 | # CONFIG_RTC_DRV_DS1511 is not set |
753 | # CONFIG_USB is not set | 786 | # CONFIG_RTC_DRV_DS1553 is not set |
787 | # CONFIG_RTC_DRV_DS1742 is not set | ||
788 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
789 | # CONFIG_RTC_DRV_M48T86 is not set | ||
790 | # CONFIG_RTC_DRV_M48T59 is not set | ||
791 | # CONFIG_RTC_DRV_V3020 is not set | ||
754 | 792 | ||
755 | # | 793 | # |
756 | # USB Gadget Support | 794 | # on-CPU RTC drivers |
757 | # | 795 | # |
758 | # CONFIG_USB_GADGET is not set | 796 | CONFIG_RTC_DRV_SA1100=y |
797 | # CONFIG_DMADEVICES is not set | ||
759 | 798 | ||
760 | # | 799 | # |
761 | # MMC/SD Card support | 800 | # Voltage and Current regulators |
762 | # | 801 | # |
763 | # CONFIG_MMC is not set | 802 | # CONFIG_REGULATOR is not set |
803 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set | ||
804 | # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set | ||
805 | # CONFIG_REGULATOR_BQ24022 is not set | ||
806 | # CONFIG_UIO is not set | ||
764 | 807 | ||
765 | # | 808 | # |
766 | # File systems | 809 | # File systems |
767 | # | 810 | # |
768 | CONFIG_EXT2_FS=y | 811 | CONFIG_EXT2_FS=y |
769 | # CONFIG_EXT2_FS_XATTR is not set | 812 | # CONFIG_EXT2_FS_XATTR is not set |
813 | # CONFIG_EXT2_FS_XIP is not set | ||
770 | # CONFIG_EXT3_FS is not set | 814 | # CONFIG_EXT3_FS is not set |
771 | # CONFIG_JBD is not set | 815 | # CONFIG_EXT4DEV_FS is not set |
772 | # CONFIG_REISERFS_FS is not set | 816 | # CONFIG_REISERFS_FS is not set |
773 | # CONFIG_JFS_FS is not set | 817 | # CONFIG_JFS_FS is not set |
774 | 818 | # CONFIG_FS_POSIX_ACL is not set | |
775 | # | ||
776 | # XFS support | ||
777 | # | ||
778 | # CONFIG_XFS_FS is not set | 819 | # CONFIG_XFS_FS is not set |
779 | # CONFIG_MINIX_FS is not set | 820 | # CONFIG_OCFS2_FS is not set |
780 | # CONFIG_ROMFS_FS is not set | ||
781 | # CONFIG_QUOTA is not set | ||
782 | CONFIG_DNOTIFY=y | 821 | CONFIG_DNOTIFY=y |
822 | CONFIG_INOTIFY=y | ||
823 | CONFIG_INOTIFY_USER=y | ||
824 | # CONFIG_QUOTA is not set | ||
783 | # CONFIG_AUTOFS_FS is not set | 825 | # CONFIG_AUTOFS_FS is not set |
784 | # CONFIG_AUTOFS4_FS is not set | 826 | # CONFIG_AUTOFS4_FS is not set |
827 | # CONFIG_FUSE_FS is not set | ||
785 | 828 | ||
786 | # | 829 | # |
787 | # CD-ROM/DVD Filesystems | 830 | # CD-ROM/DVD Filesystems |
788 | # | 831 | # |
789 | CONFIG_ISO9660_FS=m | 832 | # CONFIG_ISO9660_FS is not set |
790 | # CONFIG_JOLIET is not set | ||
791 | # CONFIG_ZISOFS is not set | ||
792 | # CONFIG_UDF_FS is not set | 833 | # CONFIG_UDF_FS is not set |
793 | 834 | ||
794 | # | 835 | # |
795 | # DOS/FAT/NT Filesystems | 836 | # DOS/FAT/NT Filesystems |
796 | # | 837 | # |
797 | # CONFIG_MSDOS_FS is not set | 838 | CONFIG_FAT_FS=y |
798 | # CONFIG_VFAT_FS is not set | 839 | CONFIG_MSDOS_FS=y |
840 | CONFIG_VFAT_FS=y | ||
841 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
842 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
799 | # CONFIG_NTFS_FS is not set | 843 | # CONFIG_NTFS_FS is not set |
800 | 844 | ||
801 | # | 845 | # |
802 | # Pseudo filesystems | 846 | # Pseudo filesystems |
803 | # | 847 | # |
804 | CONFIG_PROC_FS=y | 848 | CONFIG_PROC_FS=y |
849 | CONFIG_PROC_SYSCTL=y | ||
805 | CONFIG_SYSFS=y | 850 | CONFIG_SYSFS=y |
806 | CONFIG_DEVFS_FS=y | ||
807 | CONFIG_DEVFS_MOUNT=y | ||
808 | CONFIG_DEVFS_DEBUG=y | ||
809 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
810 | # CONFIG_TMPFS is not set | 851 | # CONFIG_TMPFS is not set |
811 | # CONFIG_HUGETLB_PAGE is not set | 852 | # CONFIG_HUGETLB_PAGE is not set |
812 | CONFIG_RAMFS=y | 853 | # CONFIG_CONFIGFS_FS is not set |
813 | 854 | ||
814 | # | 855 | # |
815 | # Miscellaneous filesystems | 856 | # Miscellaneous filesystems |
@@ -821,75 +862,122 @@ CONFIG_RAMFS=y | |||
821 | # CONFIG_BEFS_FS is not set | 862 | # CONFIG_BEFS_FS is not set |
822 | # CONFIG_BFS_FS is not set | 863 | # CONFIG_BFS_FS is not set |
823 | # CONFIG_EFS_FS is not set | 864 | # CONFIG_EFS_FS is not set |
824 | # CONFIG_JFFS_FS is not set | ||
825 | CONFIG_JFFS2_FS=y | ||
826 | CONFIG_JFFS2_FS_DEBUG=2 | ||
827 | # CONFIG_JFFS2_FS_NAND is not set | ||
828 | # CONFIG_JFFS2_FS_NOR_ECC is not set | ||
829 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
830 | CONFIG_JFFS2_ZLIB=y | ||
831 | CONFIG_JFFS2_RTIME=y | ||
832 | # CONFIG_JFFS2_RUBIN is not set | ||
833 | # CONFIG_CRAMFS is not set | 865 | # CONFIG_CRAMFS is not set |
834 | # CONFIG_VXFS_FS is not set | 866 | # CONFIG_VXFS_FS is not set |
867 | # CONFIG_MINIX_FS is not set | ||
868 | # CONFIG_OMFS_FS is not set | ||
835 | # CONFIG_HPFS_FS is not set | 869 | # CONFIG_HPFS_FS is not set |
836 | # CONFIG_QNX4FS_FS is not set | 870 | # CONFIG_QNX4FS_FS is not set |
871 | # CONFIG_ROMFS_FS is not set | ||
837 | # CONFIG_SYSV_FS is not set | 872 | # CONFIG_SYSV_FS is not set |
838 | # CONFIG_UFS_FS is not set | 873 | # CONFIG_UFS_FS is not set |
839 | 874 | # CONFIG_NETWORK_FILESYSTEMS is not set | |
840 | # | ||
841 | # Network File Systems | ||
842 | # | ||
843 | CONFIG_NFS_FS=m | ||
844 | CONFIG_NFS_V3=y | ||
845 | # CONFIG_NFS_V4 is not set | ||
846 | # CONFIG_NFS_DIRECTIO is not set | ||
847 | # CONFIG_NFSD is not set | ||
848 | CONFIG_LOCKD=m | ||
849 | CONFIG_LOCKD_V4=y | ||
850 | CONFIG_SUNRPC=m | ||
851 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
852 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
853 | # CONFIG_SMB_FS is not set | ||
854 | # CONFIG_CIFS is not set | ||
855 | # CONFIG_NCP_FS is not set | ||
856 | # CONFIG_CODA_FS is not set | ||
857 | # CONFIG_AFS_FS is not set | ||
858 | 875 | ||
859 | # | 876 | # |
860 | # Partition Types | 877 | # Partition Types |
861 | # | 878 | # |
862 | # CONFIG_PARTITION_ADVANCED is not set | 879 | # CONFIG_PARTITION_ADVANCED is not set |
863 | CONFIG_MSDOS_PARTITION=y | 880 | CONFIG_MSDOS_PARTITION=y |
864 | 881 | CONFIG_NLS=y | |
865 | # | 882 | CONFIG_NLS_DEFAULT="iso8859-1" |
866 | # Native Language Support | 883 | CONFIG_NLS_CODEPAGE_437=m |
867 | # | 884 | CONFIG_NLS_CODEPAGE_737=m |
868 | # CONFIG_NLS is not set | 885 | CONFIG_NLS_CODEPAGE_775=m |
869 | 886 | CONFIG_NLS_CODEPAGE_850=m | |
870 | # | 887 | CONFIG_NLS_CODEPAGE_852=m |
871 | # Profiling support | 888 | CONFIG_NLS_CODEPAGE_855=m |
872 | # | 889 | CONFIG_NLS_CODEPAGE_857=m |
873 | # CONFIG_PROFILING is not set | 890 | CONFIG_NLS_CODEPAGE_860=m |
891 | CONFIG_NLS_CODEPAGE_861=m | ||
892 | CONFIG_NLS_CODEPAGE_862=m | ||
893 | CONFIG_NLS_CODEPAGE_863=m | ||
894 | CONFIG_NLS_CODEPAGE_864=m | ||
895 | CONFIG_NLS_CODEPAGE_865=m | ||
896 | CONFIG_NLS_CODEPAGE_866=m | ||
897 | CONFIG_NLS_CODEPAGE_869=m | ||
898 | CONFIG_NLS_CODEPAGE_936=m | ||
899 | CONFIG_NLS_CODEPAGE_950=m | ||
900 | CONFIG_NLS_CODEPAGE_932=m | ||
901 | CONFIG_NLS_CODEPAGE_949=m | ||
902 | CONFIG_NLS_CODEPAGE_874=m | ||
903 | CONFIG_NLS_ISO8859_8=m | ||
904 | CONFIG_NLS_CODEPAGE_1250=m | ||
905 | CONFIG_NLS_CODEPAGE_1251=m | ||
906 | CONFIG_NLS_ASCII=m | ||
907 | CONFIG_NLS_ISO8859_1=m | ||
908 | CONFIG_NLS_ISO8859_2=m | ||
909 | CONFIG_NLS_ISO8859_3=m | ||
910 | CONFIG_NLS_ISO8859_4=m | ||
911 | CONFIG_NLS_ISO8859_5=m | ||
912 | CONFIG_NLS_ISO8859_6=m | ||
913 | CONFIG_NLS_ISO8859_7=m | ||
914 | CONFIG_NLS_ISO8859_9=m | ||
915 | CONFIG_NLS_ISO8859_13=m | ||
916 | CONFIG_NLS_ISO8859_14=m | ||
917 | CONFIG_NLS_ISO8859_15=m | ||
918 | CONFIG_NLS_KOI8_R=m | ||
919 | CONFIG_NLS_KOI8_U=m | ||
920 | CONFIG_NLS_UTF8=m | ||
921 | # CONFIG_DLM is not set | ||
874 | 922 | ||
875 | # | 923 | # |
876 | # Kernel hacking | 924 | # Kernel hacking |
877 | # | 925 | # |
878 | # CONFIG_PRINTK_TIME is not set | 926 | # CONFIG_PRINTK_TIME is not set |
879 | CONFIG_DEBUG_KERNEL=y | 927 | CONFIG_ENABLE_WARN_DEPRECATED=y |
928 | CONFIG_ENABLE_MUST_CHECK=y | ||
929 | CONFIG_FRAME_WARN=1024 | ||
880 | # CONFIG_MAGIC_SYSRQ is not set | 930 | # CONFIG_MAGIC_SYSRQ is not set |
881 | CONFIG_LOG_BUF_SHIFT=14 | 931 | # CONFIG_UNUSED_SYMBOLS is not set |
932 | # CONFIG_DEBUG_FS is not set | ||
933 | # CONFIG_HEADERS_CHECK is not set | ||
934 | CONFIG_DEBUG_KERNEL=y | ||
935 | # CONFIG_DEBUG_SHIRQ is not set | ||
936 | CONFIG_DETECT_SOFTLOCKUP=y | ||
937 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
938 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
939 | CONFIG_SCHED_DEBUG=y | ||
882 | # CONFIG_SCHEDSTATS is not set | 940 | # CONFIG_SCHEDSTATS is not set |
883 | CONFIG_DEBUG_SLAB=y | 941 | # CONFIG_TIMER_STATS is not set |
942 | # CONFIG_DEBUG_OBJECTS is not set | ||
943 | # CONFIG_SLUB_DEBUG_ON is not set | ||
944 | # CONFIG_SLUB_STATS is not set | ||
945 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
946 | # CONFIG_RT_MUTEX_TESTER is not set | ||
884 | # CONFIG_DEBUG_SPINLOCK is not set | 947 | # CONFIG_DEBUG_SPINLOCK is not set |
948 | # CONFIG_DEBUG_MUTEXES is not set | ||
949 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
950 | # CONFIG_PROVE_LOCKING is not set | ||
951 | # CONFIG_LOCK_STAT is not set | ||
885 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 952 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
953 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
886 | # CONFIG_DEBUG_KOBJECT is not set | 954 | # CONFIG_DEBUG_KOBJECT is not set |
887 | CONFIG_DEBUG_BUGVERBOSE=y | 955 | CONFIG_DEBUG_BUGVERBOSE=y |
888 | # CONFIG_DEBUG_INFO is not set | 956 | # CONFIG_DEBUG_INFO is not set |
889 | # CONFIG_DEBUG_FS is not set | 957 | # CONFIG_DEBUG_VM is not set |
958 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
959 | CONFIG_DEBUG_MEMORY_INIT=y | ||
960 | # CONFIG_DEBUG_LIST is not set | ||
961 | # CONFIG_DEBUG_SG is not set | ||
890 | CONFIG_FRAME_POINTER=y | 962 | CONFIG_FRAME_POINTER=y |
963 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
964 | # CONFIG_RCU_TORTURE_TEST is not set | ||
965 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
966 | # CONFIG_FAULT_INJECTION is not set | ||
967 | # CONFIG_LATENCYTOP is not set | ||
968 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
969 | CONFIG_HAVE_FTRACE=y | ||
970 | CONFIG_HAVE_DYNAMIC_FTRACE=y | ||
971 | # CONFIG_FTRACE is not set | ||
972 | # CONFIG_IRQSOFF_TRACER is not set | ||
973 | # CONFIG_SCHED_TRACER is not set | ||
974 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
975 | # CONFIG_SAMPLES is not set | ||
976 | CONFIG_HAVE_ARCH_KGDB=y | ||
977 | # CONFIG_KGDB is not set | ||
891 | # CONFIG_DEBUG_USER is not set | 978 | # CONFIG_DEBUG_USER is not set |
892 | CONFIG_DEBUG_ERRORS=y | 979 | CONFIG_DEBUG_ERRORS=y |
980 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
893 | CONFIG_DEBUG_LL=y | 981 | CONFIG_DEBUG_LL=y |
894 | # CONFIG_DEBUG_ICEDCC is not set | 982 | # CONFIG_DEBUG_ICEDCC is not set |
895 | 983 | ||
@@ -898,21 +986,100 @@ CONFIG_DEBUG_LL=y | |||
898 | # | 986 | # |
899 | # CONFIG_KEYS is not set | 987 | # CONFIG_KEYS is not set |
900 | # CONFIG_SECURITY is not set | 988 | # CONFIG_SECURITY is not set |
989 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
990 | CONFIG_CRYPTO=y | ||
991 | |||
992 | # | ||
993 | # Crypto core or helper | ||
994 | # | ||
995 | # CONFIG_CRYPTO_MANAGER is not set | ||
996 | # CONFIG_CRYPTO_GF128MUL is not set | ||
997 | # CONFIG_CRYPTO_NULL is not set | ||
998 | # CONFIG_CRYPTO_CRYPTD is not set | ||
999 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1000 | # CONFIG_CRYPTO_TEST is not set | ||
1001 | |||
1002 | # | ||
1003 | # Authenticated Encryption with Associated Data | ||
1004 | # | ||
1005 | # CONFIG_CRYPTO_CCM is not set | ||
1006 | # CONFIG_CRYPTO_GCM is not set | ||
1007 | # CONFIG_CRYPTO_SEQIV is not set | ||
1008 | |||
1009 | # | ||
1010 | # Block modes | ||
1011 | # | ||
1012 | # CONFIG_CRYPTO_CBC is not set | ||
1013 | # CONFIG_CRYPTO_CTR is not set | ||
1014 | # CONFIG_CRYPTO_CTS is not set | ||
1015 | # CONFIG_CRYPTO_ECB is not set | ||
1016 | # CONFIG_CRYPTO_LRW is not set | ||
1017 | # CONFIG_CRYPTO_PCBC is not set | ||
1018 | # CONFIG_CRYPTO_XTS is not set | ||
1019 | |||
1020 | # | ||
1021 | # Hash modes | ||
1022 | # | ||
1023 | # CONFIG_CRYPTO_HMAC is not set | ||
1024 | # CONFIG_CRYPTO_XCBC is not set | ||
1025 | |||
1026 | # | ||
1027 | # Digest | ||
1028 | # | ||
1029 | # CONFIG_CRYPTO_CRC32C is not set | ||
1030 | # CONFIG_CRYPTO_MD4 is not set | ||
1031 | # CONFIG_CRYPTO_MD5 is not set | ||
1032 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1033 | # CONFIG_CRYPTO_RMD128 is not set | ||
1034 | # CONFIG_CRYPTO_RMD160 is not set | ||
1035 | # CONFIG_CRYPTO_RMD256 is not set | ||
1036 | # CONFIG_CRYPTO_RMD320 is not set | ||
1037 | # CONFIG_CRYPTO_SHA1 is not set | ||
1038 | # CONFIG_CRYPTO_SHA256 is not set | ||
1039 | # CONFIG_CRYPTO_SHA512 is not set | ||
1040 | # CONFIG_CRYPTO_TGR192 is not set | ||
1041 | # CONFIG_CRYPTO_WP512 is not set | ||
901 | 1042 | ||
902 | # | 1043 | # |
903 | # Cryptographic options | 1044 | # Ciphers |
904 | # | 1045 | # |
905 | # CONFIG_CRYPTO is not set | 1046 | # CONFIG_CRYPTO_AES is not set |
1047 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1048 | # CONFIG_CRYPTO_ARC4 is not set | ||
1049 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1050 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1051 | # CONFIG_CRYPTO_CAST5 is not set | ||
1052 | # CONFIG_CRYPTO_CAST6 is not set | ||
1053 | # CONFIG_CRYPTO_DES is not set | ||
1054 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1055 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1056 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1057 | # CONFIG_CRYPTO_SEED is not set | ||
1058 | # CONFIG_CRYPTO_SERPENT is not set | ||
1059 | # CONFIG_CRYPTO_TEA is not set | ||
1060 | # CONFIG_CRYPTO_TWOFISH is not set | ||
906 | 1061 | ||
907 | # | 1062 | # |
908 | # Hardware crypto devices | 1063 | # Compression |
909 | # | 1064 | # |
1065 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1066 | # CONFIG_CRYPTO_LZO is not set | ||
1067 | CONFIG_CRYPTO_HW=y | ||
910 | 1068 | ||
911 | # | 1069 | # |
912 | # Library routines | 1070 | # Library routines |
913 | # | 1071 | # |
1072 | CONFIG_BITREVERSE=y | ||
1073 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1074 | # CONFIG_GENERIC_FIND_NEXT_BIT is not set | ||
914 | CONFIG_CRC_CCITT=m | 1075 | CONFIG_CRC_CCITT=m |
1076 | # CONFIG_CRC16 is not set | ||
1077 | # CONFIG_CRC_T10DIF is not set | ||
1078 | # CONFIG_CRC_ITU_T is not set | ||
915 | CONFIG_CRC32=y | 1079 | CONFIG_CRC32=y |
1080 | # CONFIG_CRC7 is not set | ||
916 | # CONFIG_LIBCRC32C is not set | 1081 | # CONFIG_LIBCRC32C is not set |
917 | CONFIG_ZLIB_INFLATE=y | 1082 | CONFIG_PLIST=y |
918 | CONFIG_ZLIB_DEFLATE=y | 1083 | CONFIG_HAS_IOMEM=y |
1084 | CONFIG_HAS_IOPORT=y | ||
1085 | CONFIG_HAS_DMA=y | ||
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/elf.h b/arch/arm/include/asm/elf.h index 4ca751627489..5be016980c19 100644 --- a/arch/arm/include/asm/elf.h +++ b/arch/arm/include/asm/elf.h | |||
@@ -3,7 +3,6 @@ | |||
3 | 3 | ||
4 | #include <asm/hwcap.h> | 4 | #include <asm/hwcap.h> |
5 | 5 | ||
6 | #ifndef __ASSEMBLY__ | ||
7 | /* | 6 | /* |
8 | * ELF register definitions.. | 7 | * ELF register definitions.. |
9 | */ | 8 | */ |
@@ -17,12 +16,34 @@ typedef unsigned long elf_freg_t[3]; | |||
17 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | 16 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; |
18 | 17 | ||
19 | typedef struct user_fp elf_fpregset_t; | 18 | typedef struct user_fp elf_fpregset_t; |
20 | #endif | ||
21 | 19 | ||
22 | #define EM_ARM 40 | 20 | #define EM_ARM 40 |
23 | #define EF_ARM_APCS26 0x08 | 21 | |
24 | #define EF_ARM_SOFT_FLOAT 0x200 | 22 | #define EF_ARM_EABI_MASK 0xff000000 |
25 | #define EF_ARM_EABI_MASK 0xFF000000 | 23 | #define EF_ARM_EABI_UNKNOWN 0x00000000 |
24 | #define EF_ARM_EABI_VER1 0x01000000 | ||
25 | #define EF_ARM_EABI_VER2 0x02000000 | ||
26 | #define EF_ARM_EABI_VER3 0x03000000 | ||
27 | #define EF_ARM_EABI_VER4 0x04000000 | ||
28 | #define EF_ARM_EABI_VER5 0x05000000 | ||
29 | |||
30 | #define EF_ARM_BE8 0x00800000 /* ABI 4,5 */ | ||
31 | #define EF_ARM_LE8 0x00400000 /* ABI 4,5 */ | ||
32 | #define EF_ARM_MAVERICK_FLOAT 0x00000800 /* ABI 0 */ | ||
33 | #define EF_ARM_VFP_FLOAT 0x00000400 /* ABI 0 */ | ||
34 | #define EF_ARM_SOFT_FLOAT 0x00000200 /* ABI 0 */ | ||
35 | #define EF_ARM_OLD_ABI 0x00000100 /* ABI 0 */ | ||
36 | #define EF_ARM_NEW_ABI 0x00000080 /* ABI 0 */ | ||
37 | #define EF_ARM_ALIGN8 0x00000040 /* ABI 0 */ | ||
38 | #define EF_ARM_PIC 0x00000020 /* ABI 0 */ | ||
39 | #define EF_ARM_MAPSYMSFIRST 0x00000010 /* ABI 2 */ | ||
40 | #define EF_ARM_APCS_FLOAT 0x00000010 /* ABI 0, floats in fp regs */ | ||
41 | #define EF_ARM_DYNSYMSUSESEGIDX 0x00000008 /* ABI 2 */ | ||
42 | #define EF_ARM_APCS_26 0x00000008 /* ABI 0 */ | ||
43 | #define EF_ARM_SYMSARESORTED 0x00000004 /* ABI 1,2 */ | ||
44 | #define EF_ARM_INTERWORK 0x00000004 /* ABI 0 */ | ||
45 | #define EF_ARM_HASENTRY 0x00000002 /* All */ | ||
46 | #define EF_ARM_RELEXEC 0x00000001 /* All */ | ||
26 | 47 | ||
27 | #define R_ARM_NONE 0 | 48 | #define R_ARM_NONE 0 |
28 | #define R_ARM_PC24 1 | 49 | #define R_ARM_PC24 1 |
@@ -41,7 +62,6 @@ typedef struct user_fp elf_fpregset_t; | |||
41 | #endif | 62 | #endif |
42 | #define ELF_ARCH EM_ARM | 63 | #define ELF_ARCH EM_ARM |
43 | 64 | ||
44 | #ifndef __ASSEMBLY__ | ||
45 | /* | 65 | /* |
46 | * This yields a string that ld.so will use to load implementation | 66 | * This yields a string that ld.so will use to load implementation |
47 | * specific libraries for optimization. This is more specific in | 67 | * specific libraries for optimization. This is more specific in |
@@ -59,25 +79,17 @@ typedef struct user_fp elf_fpregset_t; | |||
59 | #define ELF_PLATFORM (elf_platform) | 79 | #define ELF_PLATFORM (elf_platform) |
60 | 80 | ||
61 | extern char elf_platform[]; | 81 | extern char elf_platform[]; |
62 | #endif | ||
63 | 82 | ||
64 | /* | 83 | struct elf32_hdr; |
65 | * This is used to ensure we don't load something for the wrong architecture. | ||
66 | */ | ||
67 | #define elf_check_arch(x) ((x)->e_machine == EM_ARM && ELF_PROC_OK(x)) | ||
68 | 84 | ||
69 | /* | 85 | /* |
70 | * 32-bit code is always OK. Some cpus can do 26-bit, some can't. | 86 | * This is used to ensure we don't load something for the wrong architecture. |
71 | */ | 87 | */ |
72 | #define ELF_PROC_OK(x) (ELF_THUMB_OK(x) && ELF_26BIT_OK(x)) | 88 | extern int elf_check_arch(const struct elf32_hdr *); |
73 | 89 | #define elf_check_arch elf_check_arch | |
74 | #define ELF_THUMB_OK(x) \ | ||
75 | ((elf_hwcap & HWCAP_THUMB && ((x)->e_entry & 1) == 1) || \ | ||
76 | ((x)->e_entry & 3) == 0) | ||
77 | 90 | ||
78 | #define ELF_26BIT_OK(x) \ | 91 | extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int); |
79 | ((elf_hwcap & HWCAP_26BIT && (x)->e_flags & EF_ARM_APCS26) || \ | 92 | #define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk) |
80 | ((x)->e_flags & EF_ARM_APCS26) == 0) | ||
81 | 93 | ||
82 | #define USE_ELF_CORE_DUMP | 94 | #define USE_ELF_CORE_DUMP |
83 | #define ELF_EXEC_PAGESIZE 4096 | 95 | #define ELF_EXEC_PAGESIZE 4096 |
@@ -94,23 +106,7 @@ extern char elf_platform[]; | |||
94 | have no such handler. */ | 106 | have no such handler. */ |
95 | #define ELF_PLAT_INIT(_r, load_addr) (_r)->ARM_r0 = 0 | 107 | #define ELF_PLAT_INIT(_r, load_addr) (_r)->ARM_r0 = 0 |
96 | 108 | ||
97 | /* | 109 | extern void elf_set_personality(const struct elf32_hdr *); |
98 | * Since the FPA coprocessor uses CP1 and CP2, and iWMMXt uses CP0 | 110 | #define SET_PERSONALITY(ex, ibcs2) elf_set_personality(&(ex)) |
99 | * and CP1, we only enable access to the iWMMXt coprocessor if the | ||
100 | * binary is EABI or softfloat (and thus, guaranteed not to use | ||
101 | * FPA instructions.) | ||
102 | */ | ||
103 | #define SET_PERSONALITY(ex, ibcs2) \ | ||
104 | do { \ | ||
105 | if ((ex).e_flags & EF_ARM_APCS26) { \ | ||
106 | set_personality(PER_LINUX); \ | ||
107 | } else { \ | ||
108 | set_personality(PER_LINUX_32BIT); \ | ||
109 | if (elf_hwcap & HWCAP_IWMMXT && (ex).e_flags & (EF_ARM_EABI_MASK | EF_ARM_SOFT_FLOAT)) \ | ||
110 | set_thread_flag(TIF_USING_IWMMXT); \ | ||
111 | else \ | ||
112 | clear_thread_flag(TIF_USING_IWMMXT); \ | ||
113 | } \ | ||
114 | } while (0) | ||
115 | 111 | ||
116 | #endif | 112 | #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/io.h b/arch/arm/include/asm/io.h index 71934856fc22..a8094451be57 100644 --- a/arch/arm/include/asm/io.h +++ b/arch/arm/include/asm/io.h | |||
@@ -60,10 +60,9 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen); | |||
60 | #define MT_DEVICE 0 | 60 | #define MT_DEVICE 0 |
61 | #define MT_DEVICE_NONSHARED 1 | 61 | #define MT_DEVICE_NONSHARED 1 |
62 | #define MT_DEVICE_CACHED 2 | 62 | #define MT_DEVICE_CACHED 2 |
63 | #define MT_DEVICE_IXP2000 3 | 63 | #define MT_DEVICE_WC 3 |
64 | #define MT_DEVICE_WC 4 | ||
65 | /* | 64 | /* |
66 | * types 5 onwards can be found in asm/mach/map.h and are undefined | 65 | * types 4 onwards can be found in asm/mach/map.h and are undefined |
67 | * for ioremap | 66 | * for ioremap |
68 | */ | 67 | */ |
69 | 68 | ||
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/mach/map.h b/arch/arm/include/asm/mach/map.h index 9eb936e49cc3..cb1139ac1943 100644 --- a/arch/arm/include/asm/mach/map.h +++ b/arch/arm/include/asm/mach/map.h | |||
@@ -18,16 +18,13 @@ struct map_desc { | |||
18 | unsigned int type; | 18 | unsigned int type; |
19 | }; | 19 | }; |
20 | 20 | ||
21 | /* types 0-4 are defined in asm/io.h */ | 21 | /* types 0-3 are defined in asm/io.h */ |
22 | #define MT_CACHECLEAN 5 | 22 | #define MT_CACHECLEAN 4 |
23 | #define MT_MINICLEAN 6 | 23 | #define MT_MINICLEAN 5 |
24 | #define MT_LOW_VECTORS 7 | 24 | #define MT_LOW_VECTORS 6 |
25 | #define MT_HIGH_VECTORS 8 | 25 | #define MT_HIGH_VECTORS 7 |
26 | #define MT_MEMORY 9 | 26 | #define MT_MEMORY 8 |
27 | #define MT_ROM 10 | 27 | #define MT_ROM 9 |
28 | |||
29 | #define MT_NONSHARED_DEVICE MT_DEVICE_NONSHARED | ||
30 | #define MT_IXP2000_DEVICE MT_DEVICE_IXP2000 | ||
31 | 28 | ||
32 | #ifdef CONFIG_MMU | 29 | #ifdef CONFIG_MMU |
33 | extern void iotable_init(struct map_desc *, int); | 30 | extern void iotable_init(struct map_desc *, int); |
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/page.h b/arch/arm/include/asm/page.h index cf2e2680daaa..bed1c0a00368 100644 --- a/arch/arm/include/asm/page.h +++ b/arch/arm/include/asm/page.h | |||
@@ -184,8 +184,9 @@ typedef struct page *pgtable_t; | |||
184 | 184 | ||
185 | #endif /* !__ASSEMBLY__ */ | 185 | #endif /* !__ASSEMBLY__ */ |
186 | 186 | ||
187 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | 187 | #define VM_DATA_DEFAULT_FLAGS \ |
188 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | 188 | (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \ |
189 | VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | ||
189 | 190 | ||
190 | /* | 191 | /* |
191 | * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers. | 192 | * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers. |
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index 8e21ef15bd74..110295c5461d 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h | |||
@@ -164,14 +164,30 @@ extern void __pgd_error(const char *file, int line, unsigned long val); | |||
164 | #define L_PTE_PRESENT (1 << 0) | 164 | #define L_PTE_PRESENT (1 << 0) |
165 | #define L_PTE_FILE (1 << 1) /* only when !PRESENT */ | 165 | #define L_PTE_FILE (1 << 1) /* only when !PRESENT */ |
166 | #define L_PTE_YOUNG (1 << 1) | 166 | #define L_PTE_YOUNG (1 << 1) |
167 | #define L_PTE_BUFFERABLE (1 << 2) /* matches PTE */ | 167 | #define L_PTE_BUFFERABLE (1 << 2) /* obsolete, matches PTE */ |
168 | #define L_PTE_CACHEABLE (1 << 3) /* matches PTE */ | 168 | #define L_PTE_CACHEABLE (1 << 3) /* obsolete, matches PTE */ |
169 | #define L_PTE_USER (1 << 4) | 169 | #define L_PTE_DIRTY (1 << 6) |
170 | #define L_PTE_WRITE (1 << 5) | 170 | #define L_PTE_WRITE (1 << 7) |
171 | #define L_PTE_EXEC (1 << 6) | 171 | #define L_PTE_USER (1 << 8) |
172 | #define L_PTE_DIRTY (1 << 7) | 172 | #define L_PTE_EXEC (1 << 9) |
173 | #define L_PTE_SHARED (1 << 10) /* shared(v6), coherent(xsc3) */ | 173 | #define L_PTE_SHARED (1 << 10) /* shared(v6), coherent(xsc3) */ |
174 | 174 | ||
175 | /* | ||
176 | * These are the memory types, defined to be compatible with | ||
177 | * pre-ARMv6 CPUs cacheable and bufferable bits: XXCB | ||
178 | */ | ||
179 | #define L_PTE_MT_UNCACHED (0x00 << 2) /* 0000 */ | ||
180 | #define L_PTE_MT_BUFFERABLE (0x01 << 2) /* 0001 */ | ||
181 | #define L_PTE_MT_WRITETHROUGH (0x02 << 2) /* 0010 */ | ||
182 | #define L_PTE_MT_WRITEBACK (0x03 << 2) /* 0011 */ | ||
183 | #define L_PTE_MT_MINICACHE (0x06 << 2) /* 0110 (sa1100, xscale) */ | ||
184 | #define L_PTE_MT_WRITEALLOC (0x07 << 2) /* 0111 */ | ||
185 | #define L_PTE_MT_DEV_SHARED (0x04 << 2) /* 0100 */ | ||
186 | #define L_PTE_MT_DEV_NONSHARED (0x0c << 2) /* 1100 */ | ||
187 | #define L_PTE_MT_DEV_WC (0x09 << 2) /* 1001 */ | ||
188 | #define L_PTE_MT_DEV_CACHED (0x0b << 2) /* 1011 */ | ||
189 | #define L_PTE_MT_MASK (0x0f << 2) | ||
190 | |||
175 | #ifndef __ASSEMBLY__ | 191 | #ifndef __ASSEMBLY__ |
176 | 192 | ||
177 | /* | 193 | /* |
@@ -180,23 +196,30 @@ extern void __pgd_error(const char *file, int line, unsigned long val); | |||
180 | * as well as any architecture dependent bits like global/ASID and SMP | 196 | * as well as any architecture dependent bits like global/ASID and SMP |
181 | * shared mapping bits. | 197 | * shared mapping bits. |
182 | */ | 198 | */ |
183 | #define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_CACHEABLE | L_PTE_BUFFERABLE | 199 | #define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG |
184 | #define _L_PTE_READ L_PTE_USER | L_PTE_EXEC | ||
185 | 200 | ||
186 | extern pgprot_t pgprot_user; | 201 | extern pgprot_t pgprot_user; |
187 | extern pgprot_t pgprot_kernel; | 202 | extern pgprot_t pgprot_kernel; |
188 | 203 | ||
189 | #define PAGE_NONE pgprot_user | 204 | #define _MOD_PROT(p, b) __pgprot(pgprot_val(p) | (b)) |
190 | #define PAGE_COPY __pgprot(pgprot_val(pgprot_user) | _L_PTE_READ) | 205 | |
191 | #define PAGE_SHARED __pgprot(pgprot_val(pgprot_user) | _L_PTE_READ | \ | 206 | #define PAGE_NONE pgprot_user |
192 | L_PTE_WRITE) | 207 | #define PAGE_SHARED _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_WRITE) |
193 | #define PAGE_READONLY __pgprot(pgprot_val(pgprot_user) | _L_PTE_READ) | 208 | #define PAGE_SHARED_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_WRITE | L_PTE_EXEC) |
194 | #define PAGE_KERNEL pgprot_kernel | 209 | #define PAGE_COPY _MOD_PROT(pgprot_user, L_PTE_USER) |
195 | 210 | #define PAGE_COPY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_EXEC) | |
196 | #define __PAGE_NONE __pgprot(_L_PTE_DEFAULT) | 211 | #define PAGE_READONLY _MOD_PROT(pgprot_user, L_PTE_USER) |
197 | #define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ) | 212 | #define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_EXEC) |
198 | #define __PAGE_SHARED __pgprot(_L_PTE_DEFAULT | _L_PTE_READ | L_PTE_WRITE) | 213 | #define PAGE_KERNEL pgprot_kernel |
199 | #define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ) | 214 | #define PAGE_KERNEL_EXEC _MOD_PROT(pgprot_kernel, L_PTE_EXEC) |
215 | |||
216 | #define __PAGE_NONE __pgprot(_L_PTE_DEFAULT) | ||
217 | #define __PAGE_SHARED __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_WRITE) | ||
218 | #define __PAGE_SHARED_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_WRITE | L_PTE_EXEC) | ||
219 | #define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | L_PTE_USER) | ||
220 | #define __PAGE_COPY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_EXEC) | ||
221 | #define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | L_PTE_USER) | ||
222 | #define __PAGE_READONLY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_EXEC) | ||
200 | 223 | ||
201 | #endif /* __ASSEMBLY__ */ | 224 | #endif /* __ASSEMBLY__ */ |
202 | 225 | ||
@@ -212,19 +235,19 @@ extern pgprot_t pgprot_kernel; | |||
212 | #define __P001 __PAGE_READONLY | 235 | #define __P001 __PAGE_READONLY |
213 | #define __P010 __PAGE_COPY | 236 | #define __P010 __PAGE_COPY |
214 | #define __P011 __PAGE_COPY | 237 | #define __P011 __PAGE_COPY |
215 | #define __P100 __PAGE_READONLY | 238 | #define __P100 __PAGE_READONLY_EXEC |
216 | #define __P101 __PAGE_READONLY | 239 | #define __P101 __PAGE_READONLY_EXEC |
217 | #define __P110 __PAGE_COPY | 240 | #define __P110 __PAGE_COPY_EXEC |
218 | #define __P111 __PAGE_COPY | 241 | #define __P111 __PAGE_COPY_EXEC |
219 | 242 | ||
220 | #define __S000 __PAGE_NONE | 243 | #define __S000 __PAGE_NONE |
221 | #define __S001 __PAGE_READONLY | 244 | #define __S001 __PAGE_READONLY |
222 | #define __S010 __PAGE_SHARED | 245 | #define __S010 __PAGE_SHARED |
223 | #define __S011 __PAGE_SHARED | 246 | #define __S011 __PAGE_SHARED |
224 | #define __S100 __PAGE_READONLY | 247 | #define __S100 __PAGE_READONLY_EXEC |
225 | #define __S101 __PAGE_READONLY | 248 | #define __S101 __PAGE_READONLY_EXEC |
226 | #define __S110 __PAGE_SHARED | 249 | #define __S110 __PAGE_SHARED_EXEC |
227 | #define __S111 __PAGE_SHARED | 250 | #define __S111 __PAGE_SHARED_EXEC |
228 | 251 | ||
229 | #ifndef __ASSEMBLY__ | 252 | #ifndef __ASSEMBLY__ |
230 | /* | 253 | /* |
@@ -286,8 +309,10 @@ static inline pte_t pte_mkspecial(pte_t pte) { return pte; } | |||
286 | /* | 309 | /* |
287 | * Mark the prot value as uncacheable and unbufferable. | 310 | * Mark the prot value as uncacheable and unbufferable. |
288 | */ | 311 | */ |
289 | #define pgprot_noncached(prot) __pgprot(pgprot_val(prot) & ~(L_PTE_CACHEABLE | L_PTE_BUFFERABLE)) | 312 | #define pgprot_noncached(prot) \ |
290 | #define pgprot_writecombine(prot) __pgprot(pgprot_val(prot) & ~L_PTE_CACHEABLE) | 313 | __pgprot((pgprot_val(prot) & ~L_PTE_MT_MASK) | L_PTE_MT_UNCACHED) |
314 | #define pgprot_writecombine(prot) \ | ||
315 | __pgprot((pgprot_val(prot) & ~L_PTE_MT_MASK) | L_PTE_MT_BUFFERABLE) | ||
291 | 316 | ||
292 | #define pmd_none(pmd) (!pmd_val(pmd)) | 317 | #define pmd_none(pmd) (!pmd_val(pmd)) |
293 | #define pmd_present(pmd) (pmd_val(pmd)) | 318 | #define pmd_present(pmd) (pmd_val(pmd)) |
@@ -320,11 +345,6 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd) | |||
320 | #define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd))) | 345 | #define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd))) |
321 | 346 | ||
322 | /* | 347 | /* |
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, | 348 | * 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. | 349 | * and a page entry and page directory to the page they refer to. |
330 | */ | 350 | */ |
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/Makefile b/arch/arm/kernel/Makefile index 1d296fc8494e..4305345987d3 100644 --- a/arch/arm/kernel/Makefile +++ b/arch/arm/kernel/Makefile | |||
@@ -10,7 +10,7 @@ endif | |||
10 | 10 | ||
11 | # Object file lists. | 11 | # Object file lists. |
12 | 12 | ||
13 | obj-y := compat.o entry-armv.o entry-common.o irq.o \ | 13 | obj-y := compat.o elf.o entry-armv.o entry-common.o irq.o \ |
14 | process.o ptrace.o setup.o signal.o \ | 14 | process.o ptrace.o setup.o signal.o \ |
15 | sys_arm.o stacktrace.o time.o traps.o | 15 | sys_arm.o stacktrace.o time.o traps.o |
16 | 16 | ||
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/elf.c b/arch/arm/kernel/elf.c new file mode 100644 index 000000000000..513f332f040d --- /dev/null +++ b/arch/arm/kernel/elf.c | |||
@@ -0,0 +1,79 @@ | |||
1 | #include <linux/module.h> | ||
2 | #include <linux/sched.h> | ||
3 | #include <linux/personality.h> | ||
4 | #include <linux/binfmts.h> | ||
5 | #include <linux/elf.h> | ||
6 | |||
7 | int elf_check_arch(const struct elf32_hdr *x) | ||
8 | { | ||
9 | unsigned int eflags; | ||
10 | |||
11 | /* Make sure it's an ARM executable */ | ||
12 | if (x->e_machine != EM_ARM) | ||
13 | return 0; | ||
14 | |||
15 | /* Make sure the entry address is reasonable */ | ||
16 | if (x->e_entry & 1) { | ||
17 | if (!(elf_hwcap & HWCAP_THUMB)) | ||
18 | return 0; | ||
19 | } else if (x->e_entry & 3) | ||
20 | return 0; | ||
21 | |||
22 | eflags = x->e_flags; | ||
23 | if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) { | ||
24 | /* APCS26 is only allowed if the CPU supports it */ | ||
25 | if ((eflags & EF_ARM_APCS_26) && !(elf_hwcap & HWCAP_26BIT)) | ||
26 | return 0; | ||
27 | |||
28 | /* VFP requires the supporting code */ | ||
29 | if ((eflags & EF_ARM_VFP_FLOAT) && !(elf_hwcap & HWCAP_VFP)) | ||
30 | return 0; | ||
31 | } | ||
32 | return 1; | ||
33 | } | ||
34 | EXPORT_SYMBOL(elf_check_arch); | ||
35 | |||
36 | void elf_set_personality(const struct elf32_hdr *x) | ||
37 | { | ||
38 | unsigned int eflags = x->e_flags; | ||
39 | unsigned int personality = PER_LINUX_32BIT; | ||
40 | |||
41 | /* | ||
42 | * APCS-26 is only valid for OABI executables | ||
43 | */ | ||
44 | if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) { | ||
45 | if (eflags & EF_ARM_APCS_26) | ||
46 | personality = PER_LINUX; | ||
47 | } | ||
48 | |||
49 | set_personality(personality); | ||
50 | |||
51 | /* | ||
52 | * Since the FPA coprocessor uses CP1 and CP2, and iWMMXt uses CP0 | ||
53 | * and CP1, we only enable access to the iWMMXt coprocessor if the | ||
54 | * binary is EABI or softfloat (and thus, guaranteed not to use | ||
55 | * FPA instructions.) | ||
56 | */ | ||
57 | if (elf_hwcap & HWCAP_IWMMXT && | ||
58 | eflags & (EF_ARM_EABI_MASK | EF_ARM_SOFT_FLOAT)) { | ||
59 | set_thread_flag(TIF_USING_IWMMXT); | ||
60 | } else { | ||
61 | clear_thread_flag(TIF_USING_IWMMXT); | ||
62 | } | ||
63 | } | ||
64 | EXPORT_SYMBOL(elf_set_personality); | ||
65 | |||
66 | /* | ||
67 | * Set READ_IMPLIES_EXEC if: | ||
68 | * - the binary requires an executable stack | ||
69 | * - we're running on a CPU which doesn't support NX. | ||
70 | */ | ||
71 | int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack) | ||
72 | { | ||
73 | if (executable_stack != EXSTACK_ENABLE_X) | ||
74 | return 1; | ||
75 | if (cpu_architecture() <= CPU_ARCH_ARMv6) | ||
76 | return 1; | ||
77 | return 0; | ||
78 | } | ||
79 | EXPORT_SYMBOL(arm_elf_read_implies_exec); | ||
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/module.c b/arch/arm/kernel/module.c index a68259a0cccd..9203ba7d58ee 100644 --- a/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c | |||
@@ -47,7 +47,7 @@ void *module_alloc(unsigned long size) | |||
47 | if (!area) | 47 | if (!area) |
48 | return NULL; | 48 | return NULL; |
49 | 49 | ||
50 | return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL); | 50 | return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL_EXEC); |
51 | } | 51 | } |
52 | #else /* CONFIG_MMU */ | 52 | #else /* CONFIG_MMU */ |
53 | void *module_alloc(unsigned long size) | 53 | void *module_alloc(unsigned long size) |
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 67c2bf4774b7..a16fb208c841 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 004819ea85c8..cd1b54ff9fe2 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/core.c b/arch/arm/mach-ixp2000/core.c index a6a4f93085fd..628063ca31e6 100644 --- a/arch/arm/mach-ixp2000/core.c +++ b/arch/arm/mach-ixp2000/core.c | |||
@@ -84,64 +84,57 @@ static struct map_desc ixp2000_io_desc[] __initdata = { | |||
84 | .virtual = IXP2000_CAP_VIRT_BASE, | 84 | .virtual = IXP2000_CAP_VIRT_BASE, |
85 | .pfn = __phys_to_pfn(IXP2000_CAP_PHYS_BASE), | 85 | .pfn = __phys_to_pfn(IXP2000_CAP_PHYS_BASE), |
86 | .length = IXP2000_CAP_SIZE, | 86 | .length = IXP2000_CAP_SIZE, |
87 | .type = MT_DEVICE_IXP2000, | 87 | .type = MT_DEVICE, |
88 | }, { | 88 | }, { |
89 | .virtual = IXP2000_INTCTL_VIRT_BASE, | 89 | .virtual = IXP2000_INTCTL_VIRT_BASE, |
90 | .pfn = __phys_to_pfn(IXP2000_INTCTL_PHYS_BASE), | 90 | .pfn = __phys_to_pfn(IXP2000_INTCTL_PHYS_BASE), |
91 | .length = IXP2000_INTCTL_SIZE, | 91 | .length = IXP2000_INTCTL_SIZE, |
92 | .type = MT_DEVICE_IXP2000, | 92 | .type = MT_DEVICE, |
93 | }, { | 93 | }, { |
94 | .virtual = IXP2000_PCI_CREG_VIRT_BASE, | 94 | .virtual = IXP2000_PCI_CREG_VIRT_BASE, |
95 | .pfn = __phys_to_pfn(IXP2000_PCI_CREG_PHYS_BASE), | 95 | .pfn = __phys_to_pfn(IXP2000_PCI_CREG_PHYS_BASE), |
96 | .length = IXP2000_PCI_CREG_SIZE, | 96 | .length = IXP2000_PCI_CREG_SIZE, |
97 | .type = MT_DEVICE_IXP2000, | 97 | .type = MT_DEVICE, |
98 | }, { | 98 | }, { |
99 | .virtual = IXP2000_PCI_CSR_VIRT_BASE, | 99 | .virtual = IXP2000_PCI_CSR_VIRT_BASE, |
100 | .pfn = __phys_to_pfn(IXP2000_PCI_CSR_PHYS_BASE), | 100 | .pfn = __phys_to_pfn(IXP2000_PCI_CSR_PHYS_BASE), |
101 | .length = IXP2000_PCI_CSR_SIZE, | 101 | .length = IXP2000_PCI_CSR_SIZE, |
102 | .type = MT_DEVICE_IXP2000, | 102 | .type = MT_DEVICE, |
103 | }, { | 103 | }, { |
104 | .virtual = IXP2000_MSF_VIRT_BASE, | 104 | .virtual = IXP2000_MSF_VIRT_BASE, |
105 | .pfn = __phys_to_pfn(IXP2000_MSF_PHYS_BASE), | 105 | .pfn = __phys_to_pfn(IXP2000_MSF_PHYS_BASE), |
106 | .length = IXP2000_MSF_SIZE, | 106 | .length = IXP2000_MSF_SIZE, |
107 | .type = MT_DEVICE_IXP2000, | 107 | .type = MT_DEVICE, |
108 | }, { | 108 | }, { |
109 | .virtual = IXP2000_SCRATCH_RING_VIRT_BASE, | 109 | .virtual = IXP2000_SCRATCH_RING_VIRT_BASE, |
110 | .pfn = __phys_to_pfn(IXP2000_SCRATCH_RING_PHYS_BASE), | 110 | .pfn = __phys_to_pfn(IXP2000_SCRATCH_RING_PHYS_BASE), |
111 | .length = IXP2000_SCRATCH_RING_SIZE, | 111 | .length = IXP2000_SCRATCH_RING_SIZE, |
112 | .type = MT_DEVICE_IXP2000, | 112 | .type = MT_DEVICE, |
113 | }, { | 113 | }, { |
114 | .virtual = IXP2000_SRAM0_VIRT_BASE, | 114 | .virtual = IXP2000_SRAM0_VIRT_BASE, |
115 | .pfn = __phys_to_pfn(IXP2000_SRAM0_PHYS_BASE), | 115 | .pfn = __phys_to_pfn(IXP2000_SRAM0_PHYS_BASE), |
116 | .length = IXP2000_SRAM0_SIZE, | 116 | .length = IXP2000_SRAM0_SIZE, |
117 | .type = MT_DEVICE_IXP2000, | 117 | .type = MT_DEVICE, |
118 | }, { | 118 | }, { |
119 | .virtual = IXP2000_PCI_IO_VIRT_BASE, | 119 | .virtual = IXP2000_PCI_IO_VIRT_BASE, |
120 | .pfn = __phys_to_pfn(IXP2000_PCI_IO_PHYS_BASE), | 120 | .pfn = __phys_to_pfn(IXP2000_PCI_IO_PHYS_BASE), |
121 | .length = IXP2000_PCI_IO_SIZE, | 121 | .length = IXP2000_PCI_IO_SIZE, |
122 | .type = MT_DEVICE_IXP2000, | 122 | .type = MT_DEVICE, |
123 | }, { | 123 | }, { |
124 | .virtual = IXP2000_PCI_CFG0_VIRT_BASE, | 124 | .virtual = IXP2000_PCI_CFG0_VIRT_BASE, |
125 | .pfn = __phys_to_pfn(IXP2000_PCI_CFG0_PHYS_BASE), | 125 | .pfn = __phys_to_pfn(IXP2000_PCI_CFG0_PHYS_BASE), |
126 | .length = IXP2000_PCI_CFG0_SIZE, | 126 | .length = IXP2000_PCI_CFG0_SIZE, |
127 | .type = MT_DEVICE_IXP2000, | 127 | .type = MT_DEVICE, |
128 | }, { | 128 | }, { |
129 | .virtual = IXP2000_PCI_CFG1_VIRT_BASE, | 129 | .virtual = IXP2000_PCI_CFG1_VIRT_BASE, |
130 | .pfn = __phys_to_pfn(IXP2000_PCI_CFG1_PHYS_BASE), | 130 | .pfn = __phys_to_pfn(IXP2000_PCI_CFG1_PHYS_BASE), |
131 | .length = IXP2000_PCI_CFG1_SIZE, | 131 | .length = IXP2000_PCI_CFG1_SIZE, |
132 | .type = MT_DEVICE_IXP2000, | 132 | .type = MT_DEVICE, |
133 | } | 133 | } |
134 | }; | 134 | }; |
135 | 135 | ||
136 | void __init ixp2000_map_io(void) | 136 | void __init ixp2000_map_io(void) |
137 | { | 137 | { |
138 | /* | ||
139 | * On IXP2400 CPUs we need to use MT_DEVICE_IXP2000 so that | ||
140 | * XCB=101 (to avoid triggering erratum #66), and given that | ||
141 | * this mode speeds up I/O accesses and we have write buffer | ||
142 | * flushes in the right places anyway, it doesn't hurt to use | ||
143 | * XCB=101 for all IXP2000s. | ||
144 | */ | ||
145 | iotable_init(ixp2000_io_desc, ARRAY_SIZE(ixp2000_io_desc)); | 138 | iotable_init(ixp2000_io_desc, ARRAY_SIZE(ixp2000_io_desc)); |
146 | 139 | ||
147 | /* Set slowport to 8-bit mode. */ | 140 | /* Set slowport to 8-bit mode. */ |
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index c62ed655c1a7..c84dfac13882 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> |
@@ -70,17 +70,17 @@ static struct map_desc enp2611_io_desc[] __initdata = { | |||
70 | .virtual = ENP2611_CALEB_VIRT_BASE, | 70 | .virtual = ENP2611_CALEB_VIRT_BASE, |
71 | .pfn = __phys_to_pfn(ENP2611_CALEB_PHYS_BASE), | 71 | .pfn = __phys_to_pfn(ENP2611_CALEB_PHYS_BASE), |
72 | .length = ENP2611_CALEB_SIZE, | 72 | .length = ENP2611_CALEB_SIZE, |
73 | .type = MT_DEVICE_IXP2000, | 73 | .type = MT_DEVICE, |
74 | }, { | 74 | }, { |
75 | .virtual = ENP2611_PM3386_0_VIRT_BASE, | 75 | .virtual = ENP2611_PM3386_0_VIRT_BASE, |
76 | .pfn = __phys_to_pfn(ENP2611_PM3386_0_PHYS_BASE), | 76 | .pfn = __phys_to_pfn(ENP2611_PM3386_0_PHYS_BASE), |
77 | .length = ENP2611_PM3386_0_SIZE, | 77 | .length = ENP2611_PM3386_0_SIZE, |
78 | .type = MT_DEVICE_IXP2000, | 78 | .type = MT_DEVICE, |
79 | }, { | 79 | }, { |
80 | .virtual = ENP2611_PM3386_1_VIRT_BASE, | 80 | .virtual = ENP2611_PM3386_1_VIRT_BASE, |
81 | .pfn = __phys_to_pfn(ENP2611_PM3386_1_PHYS_BASE), | 81 | .pfn = __phys_to_pfn(ENP2611_PM3386_1_PHYS_BASE), |
82 | .length = ENP2611_PM3386_1_SIZE, | 82 | .length = ENP2611_PM3386_1_SIZE, |
83 | .type = MT_DEVICE_IXP2000, | 83 | .type = MT_DEVICE, |
84 | } | 84 | } |
85 | }; | 85 | }; |
86 | 86 | ||
diff --git a/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h b/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h index 19d80379a3e3..822f63f2f4a2 100644 --- a/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h +++ b/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h | |||
@@ -41,13 +41,7 @@ | |||
41 | * Most of the registers are clumped in 4K regions spread throughout | 41 | * Most of the registers are clumped in 4K regions spread throughout |
42 | * the 0xc0000000 -> 0xc0100000 address range, but we just map in | 42 | * the 0xc0000000 -> 0xc0100000 address range, but we just map in |
43 | * the whole range using a single 1 MB section instead of small | 43 | * the whole range using a single 1 MB section instead of small |
44 | * 4K pages. This has two advantages for us: | 44 | * 4K pages. |
45 | * | ||
46 | * 1) We use only one TLB entry for large number of on-chip I/O devices. | ||
47 | * | ||
48 | * 2) We can easily set the Section attributes to XCB=101 on the IXP2400 | ||
49 | * as required per erratum #66. We accomplish this by using a | ||
50 | * new MT_IXP2000_DEVICE memory type with the bits set as required. | ||
51 | * | 45 | * |
52 | * CAP stands for CSR Access Proxy. | 46 | * CAP stands for CSR Access Proxy. |
53 | * | 47 | * |
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-mx3/mm.c b/arch/arm/mach-mx3/mm.c index 30d842bd4d64..0589b5cd33c7 100644 --- a/arch/arm/mach-mx3/mm.c +++ b/arch/arm/mach-mx3/mm.c | |||
@@ -49,7 +49,7 @@ static struct map_desc mxc_io_desc[] __initdata = { | |||
49 | .virtual = AVIC_BASE_ADDR_VIRT, | 49 | .virtual = AVIC_BASE_ADDR_VIRT, |
50 | .pfn = __phys_to_pfn(AVIC_BASE_ADDR), | 50 | .pfn = __phys_to_pfn(AVIC_BASE_ADDR), |
51 | .length = AVIC_SIZE, | 51 | .length = AVIC_SIZE, |
52 | .type = MT_NONSHARED_DEVICE | 52 | .type = MT_DEVICE_NONSHARED |
53 | }, | 53 | }, |
54 | }; | 54 | }; |
55 | 55 | ||
diff --git a/arch/arm/mach-mx3/mx31ads.c b/arch/arm/mach-mx3/mx31ads.c index 60fb4e0d5acd..0cd90a9667c8 100644 --- a/arch/arm/mach-mx3/mx31ads.c +++ b/arch/arm/mach-mx3/mx31ads.c | |||
@@ -92,17 +92,17 @@ static struct map_desc mx31ads_io_desc[] __initdata = { | |||
92 | .virtual = AIPS1_BASE_ADDR_VIRT, | 92 | .virtual = AIPS1_BASE_ADDR_VIRT, |
93 | .pfn = __phys_to_pfn(AIPS1_BASE_ADDR), | 93 | .pfn = __phys_to_pfn(AIPS1_BASE_ADDR), |
94 | .length = AIPS1_SIZE, | 94 | .length = AIPS1_SIZE, |
95 | .type = MT_NONSHARED_DEVICE | 95 | .type = MT_DEVICE_NONSHARED |
96 | }, { | 96 | }, { |
97 | .virtual = SPBA0_BASE_ADDR_VIRT, | 97 | .virtual = SPBA0_BASE_ADDR_VIRT, |
98 | .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), | 98 | .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), |
99 | .length = SPBA0_SIZE, | 99 | .length = SPBA0_SIZE, |
100 | .type = MT_NONSHARED_DEVICE | 100 | .type = MT_DEVICE_NONSHARED |
101 | }, { | 101 | }, { |
102 | .virtual = AIPS2_BASE_ADDR_VIRT, | 102 | .virtual = AIPS2_BASE_ADDR_VIRT, |
103 | .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), | 103 | .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), |
104 | .length = AIPS2_SIZE, | 104 | .length = AIPS2_SIZE, |
105 | .type = MT_NONSHARED_DEVICE | 105 | .type = MT_DEVICE_NONSHARED |
106 | }, { | 106 | }, { |
107 | .virtual = CS4_BASE_ADDR_VIRT, | 107 | .virtual = CS4_BASE_ADDR_VIRT, |
108 | .pfn = __phys_to_pfn(CS4_BASE_ADDR), | 108 | .pfn = __phys_to_pfn(CS4_BASE_ADDR), |
diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c index d363a6e79f80..c43440070143 100644 --- a/arch/arm/mach-mx3/mx31lite.c +++ b/arch/arm/mach-mx3/mx31lite.c | |||
@@ -45,17 +45,17 @@ static struct map_desc mx31lite_io_desc[] __initdata = { | |||
45 | .virtual = AIPS1_BASE_ADDR_VIRT, | 45 | .virtual = AIPS1_BASE_ADDR_VIRT, |
46 | .pfn = __phys_to_pfn(AIPS1_BASE_ADDR), | 46 | .pfn = __phys_to_pfn(AIPS1_BASE_ADDR), |
47 | .length = AIPS1_SIZE, | 47 | .length = AIPS1_SIZE, |
48 | .type = MT_NONSHARED_DEVICE | 48 | .type = MT_DEVICE_NONSHARED |
49 | }, { | 49 | }, { |
50 | .virtual = SPBA0_BASE_ADDR_VIRT, | 50 | .virtual = SPBA0_BASE_ADDR_VIRT, |
51 | .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), | 51 | .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), |
52 | .length = SPBA0_SIZE, | 52 | .length = SPBA0_SIZE, |
53 | .type = MT_NONSHARED_DEVICE | 53 | .type = MT_DEVICE_NONSHARED |
54 | }, { | 54 | }, { |
55 | .virtual = AIPS2_BASE_ADDR_VIRT, | 55 | .virtual = AIPS2_BASE_ADDR_VIRT, |
56 | .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), | 56 | .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), |
57 | .length = AIPS2_SIZE, | 57 | .length = AIPS2_SIZE, |
58 | .type = MT_NONSHARED_DEVICE | 58 | .type = MT_DEVICE_NONSHARED |
59 | }, { | 59 | }, { |
60 | .virtual = CS4_BASE_ADDR_VIRT, | 60 | .virtual = CS4_BASE_ADDR_VIRT, |
61 | .pfn = __phys_to_pfn(CS4_BASE_ADDR), | 61 | .pfn = __phys_to_pfn(CS4_BASE_ADDR), |
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 b72ca13b3acb..24688efaa445 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 e703a8d209e2..4cbf08bd546b 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 b569f3b4cf3a..7e181afcca39 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/badge4.c b/arch/arm/mach-sa1100/badge4.c index 3efefbdd2527..ab5883b39ddf 100644 --- a/arch/arm/mach-sa1100/badge4.c +++ b/arch/arm/mach-sa1100/badge4.c | |||
@@ -95,19 +95,19 @@ static int __init badge4_sa1111_init(void) | |||
95 | * One-hundred-twenty-seven 32 KiW Main Blocks (8128 Ki b) | 95 | * One-hundred-twenty-seven 32 KiW Main Blocks (8128 Ki b) |
96 | */ | 96 | */ |
97 | static struct mtd_partition badge4_partitions[] = { | 97 | static struct mtd_partition badge4_partitions[] = { |
98 | { | 98 | { |
99 | .name = "BLOB boot loader", | 99 | .name = "BLOB boot loader", |
100 | .offset = 0, | 100 | .offset = 0, |
101 | .size = 0x0000A000 | 101 | .size = 0x0000A000 |
102 | }, { | 102 | }, { |
103 | .name = "params", | 103 | .name = "params", |
104 | .offset = MTDPART_OFS_APPEND, | 104 | .offset = MTDPART_OFS_APPEND, |
105 | .size = 0x00006000 | 105 | .size = 0x00006000 |
106 | }, { | 106 | }, { |
107 | .name = "root", | 107 | .name = "root", |
108 | .offset = MTDPART_OFS_APPEND, | 108 | .offset = MTDPART_OFS_APPEND, |
109 | .size = MTDPART_SIZ_FULL | 109 | .size = MTDPART_SIZ_FULL |
110 | } | 110 | } |
111 | }; | 111 | }; |
112 | 112 | ||
113 | static struct flash_platform_data badge4_flash_data = { | 113 | static struct flash_platform_data badge4_flash_data = { |
@@ -126,7 +126,7 @@ static int five_v_on __initdata = 0; | |||
126 | 126 | ||
127 | static int __init five_v_on_setup(char *ignore) | 127 | static int __init five_v_on_setup(char *ignore) |
128 | { | 128 | { |
129 | five_v_on = 1; | 129 | five_v_on = 1; |
130 | return 1; | 130 | return 1; |
131 | } | 131 | } |
132 | __setup("five_v_on", five_v_on_setup); | 132 | __setup("five_v_on", five_v_on_setup); |
@@ -171,15 +171,15 @@ static int __init badge4_init(void) | |||
171 | GPCR = BADGE4_GPIO_TESTPT_J7; | 171 | GPCR = BADGE4_GPIO_TESTPT_J7; |
172 | GPDR |= BADGE4_GPIO_TESTPT_J7; | 172 | GPDR |= BADGE4_GPIO_TESTPT_J7; |
173 | 173 | ||
174 | /* 5V supply rail. */ | 174 | /* 5V supply rail. */ |
175 | GPCR = BADGE4_GPIO_PCMEN5V; /* initially off */ | 175 | GPCR = BADGE4_GPIO_PCMEN5V; /* initially off */ |
176 | GPDR |= BADGE4_GPIO_PCMEN5V; | 176 | GPDR |= BADGE4_GPIO_PCMEN5V; |
177 | 177 | ||
178 | /* CPLD sdram type inputs; set up by blob */ | 178 | /* CPLD sdram type inputs; set up by blob */ |
179 | //GPDR |= (BADGE4_GPIO_SDTYP1 | BADGE4_GPIO_SDTYP0); | 179 | //GPDR |= (BADGE4_GPIO_SDTYP1 | BADGE4_GPIO_SDTYP0); |
180 | printk(KERN_DEBUG __FILE__ ": SDRAM CPLD typ1=%d typ0=%d\n", | 180 | printk(KERN_DEBUG __FILE__ ": SDRAM CPLD typ1=%d typ0=%d\n", |
181 | !!(GPLR & BADGE4_GPIO_SDTYP1), | 181 | !!(GPLR & BADGE4_GPIO_SDTYP1), |
182 | !!(GPLR & BADGE4_GPIO_SDTYP0)); | 182 | !!(GPLR & BADGE4_GPIO_SDTYP0)); |
183 | 183 | ||
184 | /* SA1111 reset pin; set up by blob */ | 184 | /* SA1111 reset pin; set up by blob */ |
185 | //GPSR = BADGE4_GPIO_SA1111_NRST; | 185 | //GPSR = BADGE4_GPIO_SA1111_NRST; |
@@ -205,8 +205,8 @@ static int __init badge4_init(void) | |||
205 | ret = badge4_sa1111_init(); | 205 | ret = badge4_sa1111_init(); |
206 | if (ret < 0) | 206 | if (ret < 0) |
207 | printk(KERN_ERR | 207 | printk(KERN_ERR |
208 | "%s: SA-1111 initialization failed (%d)\n", | 208 | "%s: SA-1111 initialization failed (%d)\n", |
209 | __func__, ret); | 209 | __func__, ret); |
210 | 210 | ||
211 | 211 | ||
212 | /* maybe turn on 5v0 from the start */ | 212 | /* maybe turn on 5v0 from the start */ |
@@ -254,7 +254,7 @@ EXPORT_SYMBOL(badge4_set_5V); | |||
254 | 254 | ||
255 | 255 | ||
256 | static struct map_desc badge4_io_desc[] __initdata = { | 256 | static struct map_desc badge4_io_desc[] __initdata = { |
257 | { /* SRAM bank 1 */ | 257 | { /* SRAM bank 1 */ |
258 | .virtual = 0xf1000000, | 258 | .virtual = 0xf1000000, |
259 | .pfn = __phys_to_pfn(0x08000000), | 259 | .pfn = __phys_to_pfn(0x08000000), |
260 | .length = 0x00100000, | 260 | .length = 0x00100000, |
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/generic.c b/arch/arm/mach-sa1100/generic.c index 1362994c78aa..b9fae2a39851 100644 --- a/arch/arm/mach-sa1100/generic.c +++ b/arch/arm/mach-sa1100/generic.c | |||
@@ -42,7 +42,7 @@ EXPORT_SYMBOL(reset_status); | |||
42 | static const unsigned short cclk_frequency_100khz[NR_FREQS] = { | 42 | static const unsigned short cclk_frequency_100khz[NR_FREQS] = { |
43 | 590, /* 59.0 MHz */ | 43 | 590, /* 59.0 MHz */ |
44 | 737, /* 73.7 MHz */ | 44 | 737, /* 73.7 MHz */ |
45 | 885, /* 88.5 MHz */ | 45 | 885, /* 88.5 MHz */ |
46 | 1032, /* 103.2 MHz */ | 46 | 1032, /* 103.2 MHz */ |
47 | 1180, /* 118.0 MHz */ | 47 | 1180, /* 118.0 MHz */ |
48 | 1327, /* 132.7 MHz */ | 48 | 1327, /* 132.7 MHz */ |
@@ -52,10 +52,10 @@ static const unsigned short cclk_frequency_100khz[NR_FREQS] = { | |||
52 | 1917, /* 191.7 MHz */ | 52 | 1917, /* 191.7 MHz */ |
53 | 2064, /* 206.4 MHz */ | 53 | 2064, /* 206.4 MHz */ |
54 | 2212, /* 221.2 MHz */ | 54 | 2212, /* 221.2 MHz */ |
55 | 2359, /* 235.9 MHz */ | 55 | 2359, /* 235.9 MHz */ |
56 | 2507, /* 250.7 MHz */ | 56 | 2507, /* 250.7 MHz */ |
57 | 2654, /* 265.4 MHz */ | 57 | 2654, /* 265.4 MHz */ |
58 | 2802 /* 280.2 MHz */ | 58 | 2802 /* 280.2 MHz */ |
59 | }; | 59 | }; |
60 | 60 | ||
61 | #if defined(CONFIG_CPU_FREQ_SA1100) || defined(CONFIG_CPU_FREQ_SA1110) | 61 | #if defined(CONFIG_CPU_FREQ_SA1100) || defined(CONFIG_CPU_FREQ_SA1110) |
@@ -113,7 +113,7 @@ unsigned int sa11x0_getspeed(unsigned int cpu) | |||
113 | #else | 113 | #else |
114 | /* | 114 | /* |
115 | * We still need to provide this so building without cpufreq works. | 115 | * We still need to provide this so building without cpufreq works. |
116 | */ | 116 | */ |
117 | unsigned int cpufreq_get(unsigned int cpu) | 117 | unsigned int cpufreq_get(unsigned int cpu) |
118 | { | 118 | { |
119 | return cclk_frequency_100khz[PPCR & 0xf] * 100; | 119 | return cclk_frequency_100khz[PPCR & 0xf] * 100; |
@@ -389,7 +389,7 @@ EXPORT_SYMBOL(sa1100fb_lcd_power); | |||
389 | */ | 389 | */ |
390 | 390 | ||
391 | static struct map_desc standard_io_desc[] __initdata = { | 391 | static struct map_desc standard_io_desc[] __initdata = { |
392 | { /* PCM */ | 392 | { /* PCM */ |
393 | .virtual = 0xf8000000, | 393 | .virtual = 0xf8000000, |
394 | .pfn = __phys_to_pfn(0x80000000), | 394 | .pfn = __phys_to_pfn(0x80000000), |
395 | .length = 0x00100000, | 395 | .length = 0x00100000, |
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 83be1c6c5f80..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 | ||
@@ -39,8 +38,8 @@ | |||
39 | 38 | ||
40 | static struct resource smc91x_resources[] = { | 39 | static struct resource smc91x_resources[] = { |
41 | [0] = { | 40 | [0] = { |
42 | .start = PLEB_ETH0_P, | 41 | .start = PLEB_ETH0_P, |
43 | .end = PLEB_ETH0_P | 0x03ffffff, | 42 | .end = PLEB_ETH0_P | 0x03ffffff, |
44 | .flags = IORESOURCE_MEM, | 43 | .flags = IORESOURCE_MEM, |
45 | }, | 44 | }, |
46 | #if 0 /* Autoprobe instead, to get rising/falling edge characteristic right */ | 45 | #if 0 /* Autoprobe instead, to get rising/falling edge characteristic right */ |
@@ -87,15 +86,15 @@ static struct resource pleb_flash_resources[] = { | |||
87 | static struct mtd_partition pleb_partitions[] = { | 86 | static struct mtd_partition pleb_partitions[] = { |
88 | { | 87 | { |
89 | .name = "blob", | 88 | .name = "blob", |
90 | .offset = 0, | 89 | .offset = 0, |
91 | .size = 0x00020000, | 90 | .size = 0x00020000, |
92 | }, { | 91 | }, { |
93 | .name = "kernel", | 92 | .name = "kernel", |
94 | .offset = MTDPART_OFS_APPEND, | 93 | .offset = MTDPART_OFS_APPEND, |
95 | .size = 0x000e0000, | 94 | .size = 0x000e0000, |
96 | }, { | 95 | }, { |
97 | .name = "rootfs", | 96 | .name = "rootfs", |
98 | .offset = MTDPART_OFS_APPEND, | 97 | .offset = MTDPART_OFS_APPEND, |
99 | .size = 0x00300000, | 98 | .size = 0x00300000, |
100 | } | 99 | } |
101 | }; | 100 | }; |
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-v4mc.c b/arch/arm/mm/copypage-v4mc.c index ded0e96d069d..8d33e2549344 100644 --- a/arch/arm/mm/copypage-v4mc.c +++ b/arch/arm/mm/copypage-v4mc.c | |||
@@ -28,7 +28,7 @@ | |||
28 | * specific hacks for copying pages efficiently. | 28 | * specific hacks for copying pages efficiently. |
29 | */ | 29 | */ |
30 | #define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \ | 30 | #define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \ |
31 | L_PTE_CACHEABLE) | 31 | L_PTE_MT_MINICACHE) |
32 | 32 | ||
33 | static DEFINE_SPINLOCK(minicache_lock); | 33 | static DEFINE_SPINLOCK(minicache_lock); |
34 | 34 | ||
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/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c index 2e455f82a4d5..bad49331bbf9 100644 --- a/arch/arm/mm/copypage-xscale.c +++ b/arch/arm/mm/copypage-xscale.c | |||
@@ -30,7 +30,7 @@ | |||
30 | #define COPYPAGE_MINICACHE 0xffff8000 | 30 | #define COPYPAGE_MINICACHE 0xffff8000 |
31 | 31 | ||
32 | #define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \ | 32 | #define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \ |
33 | L_PTE_CACHEABLE) | 33 | L_PTE_MT_MINICACHE) |
34 | 34 | ||
35 | static DEFINE_SPINLOCK(minicache_lock); | 35 | static DEFINE_SPINLOCK(minicache_lock); |
36 | 36 | ||
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..81d0b8772de3 100644 --- a/arch/arm/mm/fault-armv.c +++ b/arch/arm/mm/fault-armv.c | |||
@@ -17,11 +17,13 @@ | |||
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 | ||
24 | static unsigned long shared_pte_mask = L_PTE_CACHEABLE; | 26 | static unsigned long shared_pte_mask = L_PTE_MT_BUFFERABLE; |
25 | 27 | ||
26 | /* | 28 | /* |
27 | * We take the easy way out of this problem - we make the | 29 | * We take the easy way out of this problem - we make the |
@@ -63,9 +65,10 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address) | |||
63 | * If this page isn't present, or is already setup to | 65 | * If this page isn't present, or is already setup to |
64 | * fault (ie, is old), we can safely ignore any issues. | 66 | * fault (ie, is old), we can safely ignore any issues. |
65 | */ | 67 | */ |
66 | if (ret && pte_val(entry) & shared_pte_mask) { | 68 | if (ret && (pte_val(entry) & L_PTE_MT_MASK) != shared_pte_mask) { |
67 | flush_cache_page(vma, address, pte_pfn(entry)); | 69 | flush_cache_page(vma, address, pte_pfn(entry)); |
68 | pte_val(entry) &= ~shared_pte_mask; | 70 | pte_val(entry) &= ~L_PTE_MT_MASK; |
71 | pte_val(entry) |= shared_pte_mask; | ||
69 | set_pte_at(vma->vm_mm, address, pte, entry); | 72 | set_pte_at(vma->vm_mm, address, pte, entry); |
70 | flush_tlb_page(vma, address); | 73 | flush_tlb_page(vma, address); |
71 | } | 74 | } |
@@ -197,7 +200,7 @@ void __init check_writebuffer_bugs(void) | |||
197 | unsigned long *p1, *p2; | 200 | unsigned long *p1, *p2; |
198 | pgprot_t prot = __pgprot(L_PTE_PRESENT|L_PTE_YOUNG| | 201 | pgprot_t prot = __pgprot(L_PTE_PRESENT|L_PTE_YOUNG| |
199 | L_PTE_DIRTY|L_PTE_WRITE| | 202 | L_PTE_DIRTY|L_PTE_WRITE| |
200 | L_PTE_BUFFERABLE); | 203 | L_PTE_MT_BUFFERABLE); |
201 | 204 | ||
202 | p1 = vmap(&page, 1, VM_IOREMAP, prot); | 205 | p1 = vmap(&page, 1, VM_IOREMAP, prot); |
203 | p2 = vmap(&page, 1, VM_IOREMAP, prot); | 206 | p2 = vmap(&page, 1, VM_IOREMAP, prot); |
@@ -218,7 +221,7 @@ void __init check_writebuffer_bugs(void) | |||
218 | 221 | ||
219 | if (v) { | 222 | if (v) { |
220 | printk("failed, %s\n", reason); | 223 | printk("failed, %s\n", reason); |
221 | shared_pte_mask |= L_PTE_BUFFERABLE; | 224 | shared_pte_mask = L_PTE_MT_UNCACHED; |
222 | } else { | 225 | } else { |
223 | printk("ok\n"); | 226 | printk("ok\n"); |
224 | } | 227 | } |
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..18373f73f2fc 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> |
@@ -55,8 +56,7 @@ static int remap_area_pte(pmd_t *pmd, unsigned long addr, unsigned long end, | |||
55 | if (!pte_none(*pte)) | 56 | if (!pte_none(*pte)) |
56 | goto bad; | 57 | goto bad; |
57 | 58 | ||
58 | set_pte_ext(pte, pfn_pte(phys_addr >> PAGE_SHIFT, prot), | 59 | set_pte_ext(pte, pfn_pte(phys_addr >> PAGE_SHIFT, prot), 0); |
59 | type->prot_pte_ext); | ||
60 | phys_addr += PAGE_SIZE; | 60 | phys_addr += PAGE_SIZE; |
61 | } while (pte++, addr += PAGE_SIZE, addr != end); | 61 | } while (pte++, addr += PAGE_SIZE, addr != end); |
62 | return 0; | 62 | return 0; |
@@ -332,15 +332,14 @@ __arm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype) | |||
332 | } | 332 | } |
333 | EXPORT_SYMBOL(__arm_ioremap); | 333 | EXPORT_SYMBOL(__arm_ioremap); |
334 | 334 | ||
335 | void __iounmap(volatile void __iomem *addr) | 335 | void __iounmap(volatile void __iomem *io_addr) |
336 | { | 336 | { |
337 | void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr); | ||
337 | #ifndef CONFIG_SMP | 338 | #ifndef CONFIG_SMP |
338 | struct vm_struct **p, *tmp; | 339 | struct vm_struct **p, *tmp; |
339 | #endif | 340 | #endif |
340 | unsigned int section_mapping = 0; | 341 | unsigned int section_mapping = 0; |
341 | 342 | ||
342 | addr = (volatile void __iomem *)(PAGE_MASK & (unsigned long)addr); | ||
343 | |||
344 | #ifndef CONFIG_SMP | 343 | #ifndef CONFIG_SMP |
345 | /* | 344 | /* |
346 | * If this is a section based mapping we need to handle it | 345 | * If this is a section based mapping we need to handle it |
@@ -351,7 +350,7 @@ void __iounmap(volatile void __iomem *addr) | |||
351 | */ | 350 | */ |
352 | write_lock(&vmlist_lock); | 351 | write_lock(&vmlist_lock); |
353 | for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { | 352 | for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { |
354 | if((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { | 353 | if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { |
355 | if (tmp->flags & VM_ARM_SECTION_MAPPING) { | 354 | if (tmp->flags & VM_ARM_SECTION_MAPPING) { |
356 | *p = tmp->next; | 355 | *p = tmp->next; |
357 | unmap_area_sections((unsigned long)tmp->addr, | 356 | unmap_area_sections((unsigned long)tmp->addr, |
@@ -366,6 +365,6 @@ void __iounmap(volatile void __iomem *addr) | |||
366 | #endif | 365 | #endif |
367 | 366 | ||
368 | if (!section_mapping) | 367 | if (!section_mapping) |
369 | vunmap((void __force *)addr); | 368 | vunmap(addr); |
370 | } | 369 | } |
371 | EXPORT_SYMBOL(__iounmap); | 370 | EXPORT_SYMBOL(__iounmap); |
diff --git a/arch/arm/mm/mm.h b/arch/arm/mm/mm.h index 7647c597fc59..5d9f53907b4e 100644 --- a/arch/arm/mm/mm.h +++ b/arch/arm/mm/mm.h | |||
@@ -18,7 +18,6 @@ static inline pmd_t *pmd_off_k(unsigned long virt) | |||
18 | 18 | ||
19 | struct mem_type { | 19 | struct mem_type { |
20 | unsigned int prot_pte; | 20 | unsigned int prot_pte; |
21 | unsigned int prot_pte_ext; | ||
22 | unsigned int prot_l1; | 21 | unsigned int prot_l1; |
23 | unsigned int prot_sect; | 22 | unsigned int prot_sect; |
24 | unsigned int domain; | 23 | unsigned int domain; |
@@ -35,3 +34,5 @@ struct pglist_data; | |||
35 | void __init create_mapping(struct map_desc *md); | 34 | void __init create_mapping(struct map_desc *md); |
36 | void __init bootmem_init(struct meminfo *mi); | 35 | void __init bootmem_init(struct meminfo *mi); |
37 | void reserve_node_zero(struct pglist_data *pgdat); | 36 | void reserve_node_zero(struct pglist_data *pgdat); |
37 | |||
38 | 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 a713e40e1f1a..8ba754064559 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. |
@@ -68,27 +66,27 @@ static struct cachepolicy cache_policies[] __initdata = { | |||
68 | .policy = "uncached", | 66 | .policy = "uncached", |
69 | .cr_mask = CR_W|CR_C, | 67 | .cr_mask = CR_W|CR_C, |
70 | .pmd = PMD_SECT_UNCACHED, | 68 | .pmd = PMD_SECT_UNCACHED, |
71 | .pte = 0, | 69 | .pte = L_PTE_MT_UNCACHED, |
72 | }, { | 70 | }, { |
73 | .policy = "buffered", | 71 | .policy = "buffered", |
74 | .cr_mask = CR_C, | 72 | .cr_mask = CR_C, |
75 | .pmd = PMD_SECT_BUFFERED, | 73 | .pmd = PMD_SECT_BUFFERED, |
76 | .pte = PTE_BUFFERABLE, | 74 | .pte = L_PTE_MT_BUFFERABLE, |
77 | }, { | 75 | }, { |
78 | .policy = "writethrough", | 76 | .policy = "writethrough", |
79 | .cr_mask = 0, | 77 | .cr_mask = 0, |
80 | .pmd = PMD_SECT_WT, | 78 | .pmd = PMD_SECT_WT, |
81 | .pte = PTE_CACHEABLE, | 79 | .pte = L_PTE_MT_WRITETHROUGH, |
82 | }, { | 80 | }, { |
83 | .policy = "writeback", | 81 | .policy = "writeback", |
84 | .cr_mask = 0, | 82 | .cr_mask = 0, |
85 | .pmd = PMD_SECT_WB, | 83 | .pmd = PMD_SECT_WB, |
86 | .pte = PTE_BUFFERABLE|PTE_CACHEABLE, | 84 | .pte = L_PTE_MT_WRITEBACK, |
87 | }, { | 85 | }, { |
88 | .policy = "writealloc", | 86 | .policy = "writealloc", |
89 | .cr_mask = 0, | 87 | .cr_mask = 0, |
90 | .pmd = PMD_SECT_WBWA, | 88 | .pmd = PMD_SECT_WBWA, |
91 | .pte = PTE_BUFFERABLE|PTE_CACHEABLE, | 89 | .pte = L_PTE_MT_WRITEALLOC, |
92 | } | 90 | } |
93 | }; | 91 | }; |
94 | 92 | ||
@@ -186,35 +184,28 @@ void adjust_cr(unsigned long mask, unsigned long set) | |||
186 | 184 | ||
187 | static struct mem_type mem_types[] = { | 185 | static struct mem_type mem_types[] = { |
188 | [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ | 186 | [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ |
189 | .prot_pte = PROT_PTE_DEVICE, | 187 | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | |
188 | L_PTE_SHARED, | ||
190 | .prot_l1 = PMD_TYPE_TABLE, | 189 | .prot_l1 = PMD_TYPE_TABLE, |
191 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_UNCACHED, | 190 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_UNCACHED, |
192 | .domain = DOMAIN_IO, | 191 | .domain = DOMAIN_IO, |
193 | }, | 192 | }, |
194 | [MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */ | 193 | [MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */ |
195 | .prot_pte = PROT_PTE_DEVICE, | 194 | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_NONSHARED, |
196 | .prot_pte_ext = PTE_EXT_TEX(2), | ||
197 | .prot_l1 = PMD_TYPE_TABLE, | 195 | .prot_l1 = PMD_TYPE_TABLE, |
198 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_TEX(2), | 196 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_TEX(2), |
199 | .domain = DOMAIN_IO, | 197 | .domain = DOMAIN_IO, |
200 | }, | 198 | }, |
201 | [MT_DEVICE_CACHED] = { /* ioremap_cached */ | 199 | [MT_DEVICE_CACHED] = { /* ioremap_cached */ |
202 | .prot_pte = PROT_PTE_DEVICE | L_PTE_CACHEABLE | L_PTE_BUFFERABLE, | 200 | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_CACHED, |
203 | .prot_l1 = PMD_TYPE_TABLE, | 201 | .prot_l1 = PMD_TYPE_TABLE, |
204 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_WB, | 202 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_WB, |
205 | .domain = DOMAIN_IO, | 203 | .domain = DOMAIN_IO, |
206 | }, | 204 | }, |
207 | [MT_DEVICE_IXP2000] = { /* IXP2400 requires XCB=101 for on-chip I/O */ | ||
208 | .prot_pte = PROT_PTE_DEVICE, | ||
209 | .prot_l1 = PMD_TYPE_TABLE, | ||
210 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_BUFFERABLE | | ||
211 | PMD_SECT_TEX(1), | ||
212 | .domain = DOMAIN_IO, | ||
213 | }, | ||
214 | [MT_DEVICE_WC] = { /* ioremap_wc */ | 205 | [MT_DEVICE_WC] = { /* ioremap_wc */ |
215 | .prot_pte = PROT_PTE_DEVICE, | 206 | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_WC, |
216 | .prot_l1 = PMD_TYPE_TABLE, | 207 | .prot_l1 = PMD_TYPE_TABLE, |
217 | .prot_sect = PROT_SECT_DEVICE, | 208 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_BUFFERABLE, |
218 | .domain = DOMAIN_IO, | 209 | .domain = DOMAIN_IO, |
219 | }, | 210 | }, |
220 | [MT_CACHECLEAN] = { | 211 | [MT_CACHECLEAN] = { |
@@ -259,7 +250,7 @@ static void __init build_mem_type_table(void) | |||
259 | { | 250 | { |
260 | struct cachepolicy *cp; | 251 | struct cachepolicy *cp; |
261 | unsigned int cr = get_cr(); | 252 | unsigned int cr = get_cr(); |
262 | unsigned int user_pgprot, kern_pgprot; | 253 | unsigned int user_pgprot, kern_pgprot, vecs_pgprot; |
263 | int cpu_arch = cpu_architecture(); | 254 | int cpu_arch = cpu_architecture(); |
264 | int i; | 255 | int i; |
265 | 256 | ||
@@ -277,6 +268,9 @@ static void __init build_mem_type_table(void) | |||
277 | cachepolicy = CPOLICY_WRITEBACK; | 268 | cachepolicy = CPOLICY_WRITEBACK; |
278 | ecc_mask = 0; | 269 | ecc_mask = 0; |
279 | } | 270 | } |
271 | #ifdef CONFIG_SMP | ||
272 | cachepolicy = CPOLICY_WRITEALLOC; | ||
273 | #endif | ||
280 | 274 | ||
281 | /* | 275 | /* |
282 | * On non-Xscale3 ARMv5-and-older systems, use CB=01 | 276 | * On non-Xscale3 ARMv5-and-older systems, use CB=01 |
@@ -285,11 +279,8 @@ static void __init build_mem_type_table(void) | |||
285 | * in xsc3 parlance, Uncached Normal in ARMv6 parlance). | 279 | * in xsc3 parlance, Uncached Normal in ARMv6 parlance). |
286 | */ | 280 | */ |
287 | if (cpu_is_xsc3() || cpu_arch >= CPU_ARCH_ARMv6) { | 281 | if (cpu_is_xsc3() || cpu_arch >= CPU_ARCH_ARMv6) { |
288 | mem_types[MT_DEVICE_WC].prot_pte_ext |= PTE_EXT_TEX(1); | ||
289 | mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1); | 282 | mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1); |
290 | } else { | 283 | mem_types[MT_DEVICE_WC].prot_sect &= ~PMD_SECT_BUFFERABLE; |
291 | mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_BUFFERABLE; | ||
292 | mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_BUFFERABLE; | ||
293 | } | 284 | } |
294 | 285 | ||
295 | /* | 286 | /* |
@@ -312,7 +303,15 @@ static void __init build_mem_type_table(void) | |||
312 | } | 303 | } |
313 | 304 | ||
314 | cp = &cache_policies[cachepolicy]; | 305 | cp = &cache_policies[cachepolicy]; |
315 | kern_pgprot = user_pgprot = cp->pte; | 306 | vecs_pgprot = kern_pgprot = user_pgprot = cp->pte; |
307 | |||
308 | #ifndef CONFIG_SMP | ||
309 | /* | ||
310 | * Only use write-through for non-SMP systems | ||
311 | */ | ||
312 | if (cpu_arch >= CPU_ARCH_ARMv5 && cachepolicy > CPOLICY_WRITETHROUGH) | ||
313 | vecs_pgprot = cache_policies[CPOLICY_WRITETHROUGH].pte; | ||
314 | #endif | ||
316 | 315 | ||
317 | /* | 316 | /* |
318 | * Enable CPU-specific coherency if supported. | 317 | * Enable CPU-specific coherency if supported. |
@@ -340,7 +339,6 @@ static void __init build_mem_type_table(void) | |||
340 | /* | 339 | /* |
341 | * Mark the device area as "shared device" | 340 | * Mark the device area as "shared device" |
342 | */ | 341 | */ |
343 | mem_types[MT_DEVICE].prot_pte |= L_PTE_BUFFERABLE; | ||
344 | mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED; | 342 | mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED; |
345 | 343 | ||
346 | #ifdef CONFIG_SMP | 344 | #ifdef CONFIG_SMP |
@@ -349,30 +347,21 @@ static void __init build_mem_type_table(void) | |||
349 | */ | 347 | */ |
350 | user_pgprot |= L_PTE_SHARED; | 348 | user_pgprot |= L_PTE_SHARED; |
351 | kern_pgprot |= L_PTE_SHARED; | 349 | kern_pgprot |= L_PTE_SHARED; |
350 | vecs_pgprot |= L_PTE_SHARED; | ||
352 | mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S; | 351 | mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S; |
353 | #endif | 352 | #endif |
354 | } | 353 | } |
355 | 354 | ||
356 | for (i = 0; i < 16; i++) { | 355 | for (i = 0; i < 16; i++) { |
357 | unsigned long v = pgprot_val(protection_map[i]); | 356 | unsigned long v = pgprot_val(protection_map[i]); |
358 | v = (v & ~(L_PTE_BUFFERABLE|L_PTE_CACHEABLE)) | user_pgprot; | 357 | protection_map[i] = __pgprot(v | user_pgprot); |
359 | protection_map[i] = __pgprot(v); | ||
360 | } | 358 | } |
361 | 359 | ||
362 | mem_types[MT_LOW_VECTORS].prot_pte |= kern_pgprot; | 360 | mem_types[MT_LOW_VECTORS].prot_pte |= vecs_pgprot; |
363 | mem_types[MT_HIGH_VECTORS].prot_pte |= kern_pgprot; | 361 | mem_types[MT_HIGH_VECTORS].prot_pte |= vecs_pgprot; |
364 | 362 | ||
365 | if (cpu_arch >= CPU_ARCH_ARMv5) { | 363 | if (cpu_arch < CPU_ARCH_ARMv5) |
366 | #ifndef CONFIG_SMP | ||
367 | /* | ||
368 | * Only use write-through for non-SMP systems | ||
369 | */ | ||
370 | mem_types[MT_LOW_VECTORS].prot_pte &= ~L_PTE_BUFFERABLE; | ||
371 | mem_types[MT_HIGH_VECTORS].prot_pte &= ~L_PTE_BUFFERABLE; | ||
372 | #endif | ||
373 | } else { | ||
374 | mem_types[MT_MINICLEAN].prot_sect &= ~PMD_SECT_TEX(1); | 364 | mem_types[MT_MINICLEAN].prot_sect &= ~PMD_SECT_TEX(1); |
375 | } | ||
376 | 365 | ||
377 | pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot); | 366 | pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot); |
378 | pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | | 367 | pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | |
@@ -420,8 +409,7 @@ static void __init alloc_init_pte(pmd_t *pmd, unsigned long addr, | |||
420 | 409 | ||
421 | pte = pte_offset_kernel(pmd, addr); | 410 | pte = pte_offset_kernel(pmd, addr); |
422 | do { | 411 | do { |
423 | set_pte_ext(pte, pfn_pte(pfn, __pgprot(type->prot_pte)), | 412 | set_pte_ext(pte, pfn_pte(pfn, __pgprot(type->prot_pte)), 0); |
424 | type->prot_pte_ext); | ||
425 | pfn++; | 413 | pfn++; |
426 | } while (pte++, addr += PAGE_SIZE, addr != end); | 414 | } while (pte++, addr += PAGE_SIZE, addr != end); |
427 | } | 415 | } |
@@ -588,12 +576,35 @@ void __init iotable_init(struct map_desc *io_desc, int nr) | |||
588 | create_mapping(io_desc + i); | 576 | create_mapping(io_desc + i); |
589 | } | 577 | } |
590 | 578 | ||
579 | static unsigned long __initdata vmalloc_reserve = SZ_128M; | ||
580 | |||
581 | /* | ||
582 | * vmalloc=size forces the vmalloc area to be exactly 'size' | ||
583 | * bytes. This can be used to increase (or decrease) the vmalloc | ||
584 | * area - the default is 128m. | ||
585 | */ | ||
586 | static void __init early_vmalloc(char **arg) | ||
587 | { | ||
588 | vmalloc_reserve = memparse(*arg, arg); | ||
589 | |||
590 | if (vmalloc_reserve < SZ_16M) { | ||
591 | vmalloc_reserve = SZ_16M; | ||
592 | printk(KERN_WARNING | ||
593 | "vmalloc area too small, limiting to %luMB\n", | ||
594 | vmalloc_reserve >> 20); | ||
595 | } | ||
596 | } | ||
597 | __early_param("vmalloc=", early_vmalloc); | ||
598 | |||
599 | #define VMALLOC_MIN (void *)(VMALLOC_END - vmalloc_reserve) | ||
600 | |||
591 | static int __init check_membank_valid(struct membank *mb) | 601 | static int __init check_membank_valid(struct membank *mb) |
592 | { | 602 | { |
593 | /* | 603 | /* |
594 | * Check whether this memory region has non-zero size. | 604 | * Check whether this memory region has non-zero size or |
605 | * invalid node number. | ||
595 | */ | 606 | */ |
596 | if (mb->size == 0) | 607 | if (mb->size == 0 || mb->node >= MAX_NUMNODES) |
597 | return 0; | 608 | return 0; |
598 | 609 | ||
599 | /* | 610 | /* |
@@ -627,8 +638,7 @@ static int __init check_membank_valid(struct membank *mb) | |||
627 | 638 | ||
628 | static void __init sanity_check_meminfo(struct meminfo *mi) | 639 | static void __init sanity_check_meminfo(struct meminfo *mi) |
629 | { | 640 | { |
630 | int i; | 641 | int i, j; |
631 | int j; | ||
632 | 642 | ||
633 | for (i = 0, j = 0; i < mi->nr_banks; i++) { | 643 | for (i = 0, j = 0; i < mi->nr_banks; i++) { |
634 | if (check_membank_valid(&mi->bank[i])) | 644 | 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-arm1020.S b/arch/arm/mm/proc-arm1020.S index 5673f4d6113b..b5551bf010aa 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S | |||
@@ -29,7 +29,7 @@ | |||
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <asm/assembler.h> | 30 | #include <asm/assembler.h> |
31 | #include <asm/asm-offsets.h> | 31 | #include <asm/asm-offsets.h> |
32 | #include <asm/elf.h> | 32 | #include <asm/hwcap.h> |
33 | #include <asm/pgtable-hwdef.h> | 33 | #include <asm/pgtable-hwdef.h> |
34 | #include <asm/pgtable.h> | 34 | #include <asm/pgtable.h> |
35 | #include <asm/ptrace.h> | 35 | #include <asm/ptrace.h> |
@@ -399,29 +399,7 @@ ENTRY(cpu_arm1020_switch_mm) | |||
399 | .align 5 | 399 | .align 5 |
400 | ENTRY(cpu_arm1020_set_pte_ext) | 400 | ENTRY(cpu_arm1020_set_pte_ext) |
401 | #ifdef CONFIG_MMU | 401 | #ifdef CONFIG_MMU |
402 | str r1, [r0], #-2048 @ linux version | 402 | armv3_set_pte_ext |
403 | |||
404 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
405 | |||
406 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
407 | bic r2, r2, #PTE_TYPE_MASK | ||
408 | orr r2, r2, #PTE_TYPE_SMALL | ||
409 | |||
410 | tst r1, #L_PTE_USER @ User? | ||
411 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
412 | |||
413 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
414 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
415 | |||
416 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
417 | movne r2, #0 | ||
418 | |||
419 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
420 | eor r3, r1, #0x0a @ C & small page? | ||
421 | tst r3, #0x0b | ||
422 | biceq r2, r2, #4 | ||
423 | #endif | ||
424 | str r2, [r0] @ hardware version | ||
425 | mov r0, r0 | 403 | mov r0, r0 |
426 | #ifndef CONFIG_CPU_DCACHE_DISABLE | 404 | #ifndef CONFIG_CPU_DCACHE_DISABLE |
427 | mcr p15, 0, r0, c7, c10, 4 | 405 | mcr p15, 0, r0, c7, c10, 4 |
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 4343fdb0e9e5..8bc6740c29eb 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
@@ -29,7 +29,7 @@ | |||
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <asm/assembler.h> | 30 | #include <asm/assembler.h> |
31 | #include <asm/asm-offsets.h> | 31 | #include <asm/asm-offsets.h> |
32 | #include <asm/elf.h> | 32 | #include <asm/hwcap.h> |
33 | #include <asm/pgtable-hwdef.h> | 33 | #include <asm/pgtable-hwdef.h> |
34 | #include <asm/pgtable.h> | 34 | #include <asm/pgtable.h> |
35 | #include <asm/ptrace.h> | 35 | #include <asm/ptrace.h> |
@@ -383,29 +383,7 @@ ENTRY(cpu_arm1020e_switch_mm) | |||
383 | .align 5 | 383 | .align 5 |
384 | ENTRY(cpu_arm1020e_set_pte_ext) | 384 | ENTRY(cpu_arm1020e_set_pte_ext) |
385 | #ifdef CONFIG_MMU | 385 | #ifdef CONFIG_MMU |
386 | str r1, [r0], #-2048 @ linux version | 386 | armv3_set_pte_ext |
387 | |||
388 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
389 | |||
390 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
391 | bic r2, r2, #PTE_TYPE_MASK | ||
392 | orr r2, r2, #PTE_TYPE_SMALL | ||
393 | |||
394 | tst r1, #L_PTE_USER @ User? | ||
395 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
396 | |||
397 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
398 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
399 | |||
400 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
401 | movne r2, #0 | ||
402 | |||
403 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
404 | eor r3, r1, #0x0a @ C & small page? | ||
405 | tst r3, #0x0b | ||
406 | biceq r2, r2, #4 | ||
407 | #endif | ||
408 | str r2, [r0] @ hardware version | ||
409 | mov r0, r0 | 387 | mov r0, r0 |
410 | #ifndef CONFIG_CPU_DCACHE_DISABLE | 388 | #ifndef CONFIG_CPU_DCACHE_DISABLE |
411 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 389 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index 2a4ea1659e96..2cd03e66c0a3 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <asm/assembler.h> | 19 | #include <asm/assembler.h> |
20 | #include <asm/asm-offsets.h> | 20 | #include <asm/asm-offsets.h> |
21 | #include <asm/elf.h> | 21 | #include <asm/hwcap.h> |
22 | #include <asm/pgtable-hwdef.h> | 22 | #include <asm/pgtable-hwdef.h> |
23 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
24 | #include <asm/ptrace.h> | 24 | #include <asm/ptrace.h> |
@@ -365,29 +365,7 @@ ENTRY(cpu_arm1022_switch_mm) | |||
365 | .align 5 | 365 | .align 5 |
366 | ENTRY(cpu_arm1022_set_pte_ext) | 366 | ENTRY(cpu_arm1022_set_pte_ext) |
367 | #ifdef CONFIG_MMU | 367 | #ifdef CONFIG_MMU |
368 | str r1, [r0], #-2048 @ linux version | 368 | armv3_set_pte_ext |
369 | |||
370 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
371 | |||
372 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
373 | bic r2, r2, #PTE_TYPE_MASK | ||
374 | orr r2, r2, #PTE_TYPE_SMALL | ||
375 | |||
376 | tst r1, #L_PTE_USER @ User? | ||
377 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
378 | |||
379 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
380 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
381 | |||
382 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
383 | movne r2, #0 | ||
384 | |||
385 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
386 | eor r3, r1, #0x0a @ C & small page? | ||
387 | tst r3, #0x0b | ||
388 | biceq r2, r2, #4 | ||
389 | #endif | ||
390 | str r2, [r0] @ hardware version | ||
391 | mov r0, r0 | 369 | mov r0, r0 |
392 | #ifndef CONFIG_CPU_DCACHE_DISABLE | 370 | #ifndef CONFIG_CPU_DCACHE_DISABLE |
393 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 371 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index 77a1babd421c..ad961a897f6e 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <asm/assembler.h> | 19 | #include <asm/assembler.h> |
20 | #include <asm/asm-offsets.h> | 20 | #include <asm/asm-offsets.h> |
21 | #include <asm/elf.h> | 21 | #include <asm/hwcap.h> |
22 | #include <asm/pgtable-hwdef.h> | 22 | #include <asm/pgtable-hwdef.h> |
23 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
24 | #include <asm/ptrace.h> | 24 | #include <asm/ptrace.h> |
@@ -354,29 +354,7 @@ ENTRY(cpu_arm1026_switch_mm) | |||
354 | .align 5 | 354 | .align 5 |
355 | ENTRY(cpu_arm1026_set_pte_ext) | 355 | ENTRY(cpu_arm1026_set_pte_ext) |
356 | #ifdef CONFIG_MMU | 356 | #ifdef CONFIG_MMU |
357 | str r1, [r0], #-2048 @ linux version | 357 | armv3_set_pte_ext |
358 | |||
359 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
360 | |||
361 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
362 | bic r2, r2, #PTE_TYPE_MASK | ||
363 | orr r2, r2, #PTE_TYPE_SMALL | ||
364 | |||
365 | tst r1, #L_PTE_USER @ User? | ||
366 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
367 | |||
368 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
369 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
370 | |||
371 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
372 | movne r2, #0 | ||
373 | |||
374 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
375 | eor r3, r1, #0x0a @ C & small page? | ||
376 | tst r3, #0x0b | ||
377 | biceq r2, r2, #4 | ||
378 | #endif | ||
379 | str r2, [r0] @ hardware version | ||
380 | mov r0, r0 | 358 | mov r0, r0 |
381 | #ifndef CONFIG_CPU_DCACHE_DISABLE | 359 | #ifndef CONFIG_CPU_DCACHE_DISABLE |
382 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 360 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
diff --git a/arch/arm/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S index c371fc87776e..80d6e1de069a 100644 --- a/arch/arm/mm/proc-arm6_7.S +++ b/arch/arm/mm/proc-arm6_7.S | |||
@@ -15,11 +15,13 @@ | |||
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <asm/assembler.h> | 16 | #include <asm/assembler.h> |
17 | #include <asm/asm-offsets.h> | 17 | #include <asm/asm-offsets.h> |
18 | #include <asm/elf.h> | 18 | #include <asm/hwcap.h> |
19 | #include <asm/pgtable-hwdef.h> | 19 | #include <asm/pgtable-hwdef.h> |
20 | #include <asm/pgtable.h> | 20 | #include <asm/pgtable.h> |
21 | #include <asm/ptrace.h> | 21 | #include <asm/ptrace.h> |
22 | 22 | ||
23 | #include "proc-macros.S" | ||
24 | |||
23 | ENTRY(cpu_arm6_dcache_clean_area) | 25 | ENTRY(cpu_arm6_dcache_clean_area) |
24 | ENTRY(cpu_arm7_dcache_clean_area) | 26 | ENTRY(cpu_arm7_dcache_clean_area) |
25 | mov pc, lr | 27 | mov pc, lr |
@@ -214,30 +216,13 @@ ENTRY(cpu_arm7_switch_mm) | |||
214 | * : r1 = value to set | 216 | * : r1 = value to set |
215 | * Purpose : Set a PTE and flush it out of any WB cache | 217 | * Purpose : Set a PTE and flush it out of any WB cache |
216 | */ | 218 | */ |
217 | .align 5 | 219 | .align 5 |
218 | ENTRY(cpu_arm6_set_pte_ext) | 220 | ENTRY(cpu_arm6_set_pte_ext) |
219 | ENTRY(cpu_arm7_set_pte_ext) | 221 | ENTRY(cpu_arm7_set_pte_ext) |
220 | #ifdef CONFIG_MMU | 222 | #ifdef CONFIG_MMU |
221 | str r1, [r0], #-2048 @ linux version | 223 | armv3_set_pte_ext wc_disable=0 |
222 | |||
223 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
224 | |||
225 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
226 | bic r2, r2, #PTE_TYPE_MASK | ||
227 | orr r2, r2, #PTE_TYPE_SMALL | ||
228 | |||
229 | tst r1, #L_PTE_USER @ User? | ||
230 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
231 | |||
232 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
233 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
234 | |||
235 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young | ||
236 | movne r2, #0 | ||
237 | |||
238 | str r2, [r0] @ hardware version | ||
239 | #endif /* CONFIG_MMU */ | 224 | #endif /* CONFIG_MMU */ |
240 | mov pc, lr | 225 | mov pc, lr |
241 | 226 | ||
242 | /* | 227 | /* |
243 | * Function: _arm6_7_reset | 228 | * Function: _arm6_7_reset |
diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S index eda733d30455..85ae18695f10 100644 --- a/arch/arm/mm/proc-arm720.S +++ b/arch/arm/mm/proc-arm720.S | |||
@@ -36,7 +36,7 @@ | |||
36 | #include <linux/init.h> | 36 | #include <linux/init.h> |
37 | #include <asm/assembler.h> | 37 | #include <asm/assembler.h> |
38 | #include <asm/asm-offsets.h> | 38 | #include <asm/asm-offsets.h> |
39 | #include <asm/elf.h> | 39 | #include <asm/hwcap.h> |
40 | #include <asm/pgtable-hwdef.h> | 40 | #include <asm/pgtable-hwdef.h> |
41 | #include <asm/pgtable.h> | 41 | #include <asm/pgtable.h> |
42 | #include <asm/ptrace.h> | 42 | #include <asm/ptrace.h> |
@@ -93,29 +93,12 @@ ENTRY(cpu_arm720_switch_mm) | |||
93 | * : r1 = value to set | 93 | * : r1 = value to set |
94 | * Purpose : Set a PTE and flush it out of any WB cache | 94 | * Purpose : Set a PTE and flush it out of any WB cache |
95 | */ | 95 | */ |
96 | .align 5 | 96 | .align 5 |
97 | ENTRY(cpu_arm720_set_pte_ext) | 97 | ENTRY(cpu_arm720_set_pte_ext) |
98 | #ifdef CONFIG_MMU | 98 | #ifdef CONFIG_MMU |
99 | str r1, [r0], #-2048 @ linux version | 99 | armv3_set_pte_ext wc_disable=0 |
100 | |||
101 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
102 | |||
103 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
104 | bic r2, r2, #PTE_TYPE_MASK | ||
105 | orr r2, r2, #PTE_TYPE_SMALL | ||
106 | |||
107 | tst r1, #L_PTE_USER @ User? | ||
108 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
109 | |||
110 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
111 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
112 | |||
113 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young | ||
114 | movne r2, #0 | ||
115 | |||
116 | str r2, [r0] @ hardware version | ||
117 | #endif | 100 | #endif |
118 | mov pc, lr | 101 | mov pc, lr |
119 | 102 | ||
120 | /* | 103 | /* |
121 | * Function: arm720_reset | 104 | * Function: arm720_reset |
diff --git a/arch/arm/mm/proc-arm740.S b/arch/arm/mm/proc-arm740.S index 3a57376c8bc9..4f95bee63e95 100644 --- a/arch/arm/mm/proc-arm740.S +++ b/arch/arm/mm/proc-arm740.S | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <asm/assembler.h> | 13 | #include <asm/assembler.h> |
14 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
15 | #include <asm/elf.h> | 15 | #include <asm/hwcap.h> |
16 | #include <asm/pgtable-hwdef.h> | 16 | #include <asm/pgtable-hwdef.h> |
17 | #include <asm/pgtable.h> | 17 | #include <asm/pgtable.h> |
18 | #include <asm/ptrace.h> | 18 | #include <asm/ptrace.h> |
diff --git a/arch/arm/mm/proc-arm7tdmi.S b/arch/arm/mm/proc-arm7tdmi.S index 7b3ecdeb5370..93e05fa7bed4 100644 --- a/arch/arm/mm/proc-arm7tdmi.S +++ b/arch/arm/mm/proc-arm7tdmi.S | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <asm/assembler.h> | 13 | #include <asm/assembler.h> |
14 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
15 | #include <asm/elf.h> | 15 | #include <asm/hwcap.h> |
16 | #include <asm/pgtable-hwdef.h> | 16 | #include <asm/pgtable-hwdef.h> |
17 | #include <asm/pgtable.h> | 17 | #include <asm/pgtable.h> |
18 | #include <asm/ptrace.h> | 18 | #include <asm/ptrace.h> |
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index 28cdb060df45..914d688394fc 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
@@ -28,7 +28,7 @@ | |||
28 | #include <linux/linkage.h> | 28 | #include <linux/linkage.h> |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <asm/assembler.h> | 30 | #include <asm/assembler.h> |
31 | #include <asm/elf.h> | 31 | #include <asm/hwcap.h> |
32 | #include <asm/pgtable-hwdef.h> | 32 | #include <asm/pgtable-hwdef.h> |
33 | #include <asm/pgtable.h> | 33 | #include <asm/pgtable.h> |
34 | #include <asm/page.h> | 34 | #include <asm/page.h> |
@@ -351,33 +351,11 @@ ENTRY(cpu_arm920_switch_mm) | |||
351 | .align 5 | 351 | .align 5 |
352 | ENTRY(cpu_arm920_set_pte_ext) | 352 | ENTRY(cpu_arm920_set_pte_ext) |
353 | #ifdef CONFIG_MMU | 353 | #ifdef CONFIG_MMU |
354 | str r1, [r0], #-2048 @ linux version | 354 | armv3_set_pte_ext |
355 | |||
356 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
357 | |||
358 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
359 | bic r2, r2, #PTE_TYPE_MASK | ||
360 | orr r2, r2, #PTE_TYPE_SMALL | ||
361 | |||
362 | tst r1, #L_PTE_USER @ User? | ||
363 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
364 | |||
365 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
366 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
367 | |||
368 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
369 | movne r2, #0 | ||
370 | |||
371 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
372 | eor r3, r2, #0x0a @ C & small page? | ||
373 | tst r3, #0x0b | ||
374 | biceq r2, r2, #4 | ||
375 | #endif | ||
376 | str r2, [r0] @ hardware version | ||
377 | mov r0, r0 | 355 | mov r0, r0 |
378 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 356 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
379 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 357 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
380 | #endif /* CONFIG_MMU */ | 358 | #endif |
381 | mov pc, lr | 359 | mov pc, lr |
382 | 360 | ||
383 | __INIT | 361 | __INIT |
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S index 94ddcb4a4b76..51c9c9859e58 100644 --- a/arch/arm/mm/proc-arm922.S +++ b/arch/arm/mm/proc-arm922.S | |||
@@ -29,7 +29,7 @@ | |||
29 | #include <linux/linkage.h> | 29 | #include <linux/linkage.h> |
30 | #include <linux/init.h> | 30 | #include <linux/init.h> |
31 | #include <asm/assembler.h> | 31 | #include <asm/assembler.h> |
32 | #include <asm/elf.h> | 32 | #include <asm/hwcap.h> |
33 | #include <asm/pgtable-hwdef.h> | 33 | #include <asm/pgtable-hwdef.h> |
34 | #include <asm/pgtable.h> | 34 | #include <asm/pgtable.h> |
35 | #include <asm/page.h> | 35 | #include <asm/page.h> |
@@ -355,29 +355,7 @@ ENTRY(cpu_arm922_switch_mm) | |||
355 | .align 5 | 355 | .align 5 |
356 | ENTRY(cpu_arm922_set_pte_ext) | 356 | ENTRY(cpu_arm922_set_pte_ext) |
357 | #ifdef CONFIG_MMU | 357 | #ifdef CONFIG_MMU |
358 | str r1, [r0], #-2048 @ linux version | 358 | armv3_set_pte_ext |
359 | |||
360 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
361 | |||
362 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
363 | bic r2, r2, #PTE_TYPE_MASK | ||
364 | orr r2, r2, #PTE_TYPE_SMALL | ||
365 | |||
366 | tst r1, #L_PTE_USER @ User? | ||
367 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
368 | |||
369 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
370 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
371 | |||
372 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
373 | movne r2, #0 | ||
374 | |||
375 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
376 | eor r3, r2, #0x0a @ C & small page? | ||
377 | tst r3, #0x0b | ||
378 | biceq r2, r2, #4 | ||
379 | #endif | ||
380 | str r2, [r0] @ hardware version | ||
381 | mov r0, r0 | 359 | mov r0, r0 |
382 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 360 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
383 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 361 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index d045812f3399..2724526d89c1 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S | |||
@@ -52,7 +52,7 @@ | |||
52 | #include <linux/linkage.h> | 52 | #include <linux/linkage.h> |
53 | #include <linux/init.h> | 53 | #include <linux/init.h> |
54 | #include <asm/assembler.h> | 54 | #include <asm/assembler.h> |
55 | #include <asm/elf.h> | 55 | #include <asm/hwcap.h> |
56 | #include <asm/pgtable-hwdef.h> | 56 | #include <asm/pgtable-hwdef.h> |
57 | #include <asm/pgtable.h> | 57 | #include <asm/pgtable.h> |
58 | #include <asm/page.h> | 58 | #include <asm/page.h> |
@@ -398,29 +398,7 @@ ENTRY(cpu_arm925_switch_mm) | |||
398 | .align 5 | 398 | .align 5 |
399 | ENTRY(cpu_arm925_set_pte_ext) | 399 | ENTRY(cpu_arm925_set_pte_ext) |
400 | #ifdef CONFIG_MMU | 400 | #ifdef CONFIG_MMU |
401 | str r1, [r0], #-2048 @ linux version | 401 | armv3_set_pte_ext |
402 | |||
403 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
404 | |||
405 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
406 | bic r2, r2, #PTE_TYPE_MASK | ||
407 | orr r2, r2, #PTE_TYPE_SMALL | ||
408 | |||
409 | tst r1, #L_PTE_USER @ User? | ||
410 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
411 | |||
412 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
413 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
414 | |||
415 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
416 | movne r2, #0 | ||
417 | |||
418 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
419 | eor r3, r2, #0x0a @ C & small page? | ||
420 | tst r3, #0x0b | ||
421 | biceq r2, r2, #4 | ||
422 | #endif | ||
423 | str r2, [r0] @ hardware version | ||
424 | mov r0, r0 | 402 | mov r0, r0 |
425 | #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH | 403 | #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH |
426 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 404 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index 4cd33169a7c9..54466937bff9 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
@@ -28,7 +28,7 @@ | |||
28 | #include <linux/linkage.h> | 28 | #include <linux/linkage.h> |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <asm/assembler.h> | 30 | #include <asm/assembler.h> |
31 | #include <asm/elf.h> | 31 | #include <asm/hwcap.h> |
32 | #include <asm/pgtable-hwdef.h> | 32 | #include <asm/pgtable-hwdef.h> |
33 | #include <asm/pgtable.h> | 33 | #include <asm/pgtable.h> |
34 | #include <asm/page.h> | 34 | #include <asm/page.h> |
@@ -359,29 +359,7 @@ ENTRY(cpu_arm926_switch_mm) | |||
359 | .align 5 | 359 | .align 5 |
360 | ENTRY(cpu_arm926_set_pte_ext) | 360 | ENTRY(cpu_arm926_set_pte_ext) |
361 | #ifdef CONFIG_MMU | 361 | #ifdef CONFIG_MMU |
362 | str r1, [r0], #-2048 @ linux version | 362 | armv3_set_pte_ext |
363 | |||
364 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
365 | |||
366 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
367 | bic r2, r2, #PTE_TYPE_MASK | ||
368 | orr r2, r2, #PTE_TYPE_SMALL | ||
369 | |||
370 | tst r1, #L_PTE_USER @ User? | ||
371 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
372 | |||
373 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
374 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
375 | |||
376 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
377 | movne r2, #0 | ||
378 | |||
379 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
380 | eor r3, r2, #0x0a @ C & small page? | ||
381 | tst r3, #0x0b | ||
382 | biceq r2, r2, #4 | ||
383 | #endif | ||
384 | str r2, [r0] @ hardware version | ||
385 | mov r0, r0 | 363 | mov r0, r0 |
386 | #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH | 364 | #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH |
387 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 365 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
diff --git a/arch/arm/mm/proc-arm940.S b/arch/arm/mm/proc-arm940.S index 551244d5ca19..f595117caf55 100644 --- a/arch/arm/mm/proc-arm940.S +++ b/arch/arm/mm/proc-arm940.S | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/linkage.h> | 11 | #include <linux/linkage.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <asm/assembler.h> | 13 | #include <asm/assembler.h> |
14 | #include <asm/elf.h> | 14 | #include <asm/hwcap.h> |
15 | #include <asm/pgtable-hwdef.h> | 15 | #include <asm/pgtable-hwdef.h> |
16 | #include <asm/pgtable.h> | 16 | #include <asm/pgtable.h> |
17 | #include <asm/ptrace.h> | 17 | #include <asm/ptrace.h> |
diff --git a/arch/arm/mm/proc-arm946.S b/arch/arm/mm/proc-arm946.S index 6168c6160dee..e03f6ff1fb26 100644 --- a/arch/arm/mm/proc-arm946.S +++ b/arch/arm/mm/proc-arm946.S | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <asm/assembler.h> | 15 | #include <asm/assembler.h> |
16 | #include <asm/elf.h> | 16 | #include <asm/hwcap.h> |
17 | #include <asm/pgtable-hwdef.h> | 17 | #include <asm/pgtable-hwdef.h> |
18 | #include <asm/pgtable.h> | 18 | #include <asm/pgtable.h> |
19 | #include <asm/ptrace.h> | 19 | #include <asm/ptrace.h> |
diff --git a/arch/arm/mm/proc-arm9tdmi.S b/arch/arm/mm/proc-arm9tdmi.S index c85c1f50e396..be6c11d2b3fb 100644 --- a/arch/arm/mm/proc-arm9tdmi.S +++ b/arch/arm/mm/proc-arm9tdmi.S | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <asm/assembler.h> | 13 | #include <asm/assembler.h> |
14 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
15 | #include <asm/elf.h> | 15 | #include <asm/hwcap.h> |
16 | #include <asm/pgtable-hwdef.h> | 16 | #include <asm/pgtable-hwdef.h> |
17 | #include <asm/pgtable.h> | 17 | #include <asm/pgtable.h> |
18 | #include <asm/ptrace.h> | 18 | #include <asm/ptrace.h> |
diff --git a/arch/arm/mm/proc-feroceon.S b/arch/arm/mm/proc-feroceon.S index f2e5884c513a..2b8bb383755e 100644 --- a/arch/arm/mm/proc-feroceon.S +++ b/arch/arm/mm/proc-feroceon.S | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/linkage.h> | 22 | #include <linux/linkage.h> |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | #include <asm/assembler.h> | 24 | #include <asm/assembler.h> |
25 | #include <asm/elf.h> | 25 | #include <asm/hwcap.h> |
26 | #include <asm/pgtable-hwdef.h> | 26 | #include <asm/pgtable-hwdef.h> |
27 | #include <asm/pgtable.h> | 27 | #include <asm/pgtable.h> |
28 | #include <asm/page.h> | 28 | #include <asm/page.h> |
@@ -446,24 +446,7 @@ ENTRY(cpu_feroceon_switch_mm) | |||
446 | .align 5 | 446 | .align 5 |
447 | ENTRY(cpu_feroceon_set_pte_ext) | 447 | ENTRY(cpu_feroceon_set_pte_ext) |
448 | #ifdef CONFIG_MMU | 448 | #ifdef CONFIG_MMU |
449 | str r1, [r0], #-2048 @ linux version | 449 | armv3_set_pte_ext wc_disable=0 |
450 | |||
451 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
452 | |||
453 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
454 | bic r2, r2, #PTE_TYPE_MASK | ||
455 | orr r2, r2, #PTE_TYPE_SMALL | ||
456 | |||
457 | tst r1, #L_PTE_USER @ User? | ||
458 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
459 | |||
460 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
461 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
462 | |||
463 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
464 | movne r2, #0 | ||
465 | |||
466 | str r2, [r0] @ hardware version | ||
467 | mov r0, r0 | 450 | mov r0, r0 |
468 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 451 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
469 | #if defined(CONFIG_CACHE_FEROCEON_L2) && !defined(CONFIG_L2_CACHE_WRITETHROUGH) | 452 | #if defined(CONFIG_CACHE_FEROCEON_L2) && !defined(CONFIG_L2_CACHE_WRITETHROUGH) |
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S index b13150052a76..54b1f721dec8 100644 --- a/arch/arm/mm/proc-macros.S +++ b/arch/arm/mm/proc-macros.S | |||
@@ -71,3 +71,173 @@ | |||
71 | mov \reg, #16 @ size offset | 71 | mov \reg, #16 @ size offset |
72 | mov \reg, \reg, lsl \tmp @ actual cache line size | 72 | mov \reg, \reg, lsl \tmp @ actual cache line size |
73 | .endm | 73 | .endm |
74 | |||
75 | |||
76 | /* | ||
77 | * Sanity check the PTE configuration for the code below - which makes | ||
78 | * certain assumptions about how these bits are layed out. | ||
79 | */ | ||
80 | #if L_PTE_SHARED != PTE_EXT_SHARED | ||
81 | #error PTE shared bit mismatch | ||
82 | #endif | ||
83 | #if L_PTE_BUFFERABLE != PTE_BUFFERABLE | ||
84 | #error PTE bufferable bit mismatch | ||
85 | #endif | ||
86 | #if L_PTE_CACHEABLE != PTE_CACHEABLE | ||
87 | #error PTE cacheable bit mismatch | ||
88 | #endif | ||
89 | #if (L_PTE_EXEC+L_PTE_USER+L_PTE_WRITE+L_PTE_DIRTY+L_PTE_YOUNG+\ | ||
90 | L_PTE_FILE+L_PTE_PRESENT) > L_PTE_SHARED | ||
91 | #error Invalid Linux PTE bit settings | ||
92 | #endif | ||
93 | |||
94 | /* | ||
95 | * The ARMv6 and ARMv7 set_pte_ext translation function. | ||
96 | * | ||
97 | * Permission translation: | ||
98 | * YUWD APX AP1 AP0 SVC User | ||
99 | * 0xxx 0 0 0 no acc no acc | ||
100 | * 100x 1 0 1 r/o no acc | ||
101 | * 10x0 1 0 1 r/o no acc | ||
102 | * 1011 0 0 1 r/w no acc | ||
103 | * 110x 0 1 0 r/w r/o | ||
104 | * 11x0 0 1 0 r/w r/o | ||
105 | * 1111 0 1 1 r/w r/w | ||
106 | */ | ||
107 | .macro armv6_mt_table pfx | ||
108 | \pfx\()_mt_table: | ||
109 | .long 0x00 @ L_PTE_MT_UNCACHED | ||
110 | .long PTE_EXT_TEX(1) @ L_PTE_MT_BUFFERABLE | ||
111 | .long PTE_CACHEABLE @ L_PTE_MT_WRITETHROUGH | ||
112 | .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEBACK | ||
113 | .long PTE_BUFFERABLE @ L_PTE_MT_DEV_SHARED | ||
114 | .long 0x00 @ unused | ||
115 | .long 0x00 @ L_PTE_MT_MINICACHE (not present) | ||
116 | .long PTE_EXT_TEX(1) | PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEALLOC | ||
117 | .long 0x00 @ unused | ||
118 | .long PTE_EXT_TEX(1) @ L_PTE_MT_DEV_WC | ||
119 | .long 0x00 @ unused | ||
120 | .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_DEV_CACHED | ||
121 | .long PTE_EXT_TEX(2) @ L_PTE_MT_DEV_NONSHARED | ||
122 | .long 0x00 @ unused | ||
123 | .long 0x00 @ unused | ||
124 | .long 0x00 @ unused | ||
125 | .endm | ||
126 | |||
127 | .macro armv6_set_pte_ext pfx | ||
128 | str r1, [r0], #-2048 @ linux version | ||
129 | |||
130 | bic r3, r1, #0x000003fc | ||
131 | bic r3, r3, #PTE_TYPE_MASK | ||
132 | orr r3, r3, r2 | ||
133 | orr r3, r3, #PTE_EXT_AP0 | 2 | ||
134 | |||
135 | adr ip, \pfx\()_mt_table | ||
136 | and r2, r1, #L_PTE_MT_MASK | ||
137 | ldr r2, [ip, r2] | ||
138 | |||
139 | tst r1, #L_PTE_WRITE | ||
140 | tstne r1, #L_PTE_DIRTY | ||
141 | orreq r3, r3, #PTE_EXT_APX | ||
142 | |||
143 | tst r1, #L_PTE_USER | ||
144 | orrne r3, r3, #PTE_EXT_AP1 | ||
145 | tstne r3, #PTE_EXT_APX | ||
146 | bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0 | ||
147 | |||
148 | tst r1, #L_PTE_EXEC | ||
149 | orreq r3, r3, #PTE_EXT_XN | ||
150 | |||
151 | orr r3, r3, r2 | ||
152 | |||
153 | tst r1, #L_PTE_YOUNG | ||
154 | tstne r1, #L_PTE_PRESENT | ||
155 | moveq r3, #0 | ||
156 | |||
157 | str r3, [r0] | ||
158 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte | ||
159 | .endm | ||
160 | |||
161 | |||
162 | /* | ||
163 | * The ARMv3, ARMv4 and ARMv5 set_pte_ext translation function, | ||
164 | * covering most CPUs except Xscale and Xscale 3. | ||
165 | * | ||
166 | * Permission translation: | ||
167 | * YUWD AP SVC User | ||
168 | * 0xxx 0x00 no acc no acc | ||
169 | * 100x 0x00 r/o no acc | ||
170 | * 10x0 0x00 r/o no acc | ||
171 | * 1011 0x55 r/w no acc | ||
172 | * 110x 0xaa r/w r/o | ||
173 | * 11x0 0xaa r/w r/o | ||
174 | * 1111 0xff r/w r/w | ||
175 | */ | ||
176 | .macro armv3_set_pte_ext wc_disable=1 | ||
177 | str r1, [r0], #-2048 @ linux version | ||
178 | |||
179 | eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
180 | |||
181 | bic r2, r1, #PTE_SMALL_AP_MASK @ keep C, B bits | ||
182 | bic r2, r2, #PTE_TYPE_MASK | ||
183 | orr r2, r2, #PTE_TYPE_SMALL | ||
184 | |||
185 | tst r3, #L_PTE_USER @ user? | ||
186 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
187 | |||
188 | tst r3, #L_PTE_WRITE | L_PTE_DIRTY @ write and dirty? | ||
189 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
190 | |||
191 | tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ present and young? | ||
192 | movne r2, #0 | ||
193 | |||
194 | .if \wc_disable | ||
195 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH | ||
196 | tst r2, #PTE_CACHEABLE | ||
197 | bicne r2, r2, #PTE_BUFFERABLE | ||
198 | #endif | ||
199 | .endif | ||
200 | str r2, [r0] @ hardware version | ||
201 | .endm | ||
202 | |||
203 | |||
204 | /* | ||
205 | * Xscale set_pte_ext translation, split into two halves to cope | ||
206 | * with work-arounds. r3 must be preserved by code between these | ||
207 | * two macros. | ||
208 | * | ||
209 | * Permission translation: | ||
210 | * YUWD AP SVC User | ||
211 | * 0xxx 00 no acc no acc | ||
212 | * 100x 00 r/o no acc | ||
213 | * 10x0 00 r/o no acc | ||
214 | * 1011 01 r/w no acc | ||
215 | * 110x 10 r/w r/o | ||
216 | * 11x0 10 r/w r/o | ||
217 | * 1111 11 r/w r/w | ||
218 | */ | ||
219 | .macro xscale_set_pte_ext_prologue | ||
220 | str r1, [r0], #-2048 @ linux version | ||
221 | |||
222 | eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
223 | |||
224 | bic r2, r1, #PTE_SMALL_AP_MASK @ keep C, B bits | ||
225 | orr r2, r2, #PTE_TYPE_EXT @ extended page | ||
226 | |||
227 | tst r3, #L_PTE_USER @ user? | ||
228 | orrne r2, r2, #PTE_EXT_AP_URO_SRW @ yes -> user r/o, system r/w | ||
229 | |||
230 | tst r3, #L_PTE_WRITE | L_PTE_DIRTY @ write and dirty? | ||
231 | orreq r2, r2, #PTE_EXT_AP_UNO_SRW @ yes -> user n/a, system r/w | ||
232 | @ combined with user -> user r/w | ||
233 | .endm | ||
234 | |||
235 | .macro xscale_set_pte_ext_epilogue | ||
236 | tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ present and young? | ||
237 | movne r2, #0 @ no -> fault | ||
238 | |||
239 | str r2, [r0] @ hardware version | ||
240 | mov ip, #0 | ||
241 | mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line | ||
242 | mcr p15, 0, ip, c7, c10, 4 @ data write barrier | ||
243 | .endm | ||
diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S index bbe10576c861..90a7e5279f29 100644 --- a/arch/arm/mm/proc-sa110.S +++ b/arch/arm/mm/proc-sa110.S | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <asm/assembler.h> | 18 | #include <asm/assembler.h> |
19 | #include <asm/asm-offsets.h> | 19 | #include <asm/asm-offsets.h> |
20 | #include <asm/elf.h> | 20 | #include <asm/hwcap.h> |
21 | #include <mach/hardware.h> | 21 | #include <mach/hardware.h> |
22 | #include <asm/pgtable-hwdef.h> | 22 | #include <asm/pgtable-hwdef.h> |
23 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
@@ -153,24 +153,7 @@ ENTRY(cpu_sa110_switch_mm) | |||
153 | .align 5 | 153 | .align 5 |
154 | ENTRY(cpu_sa110_set_pte_ext) | 154 | ENTRY(cpu_sa110_set_pte_ext) |
155 | #ifdef CONFIG_MMU | 155 | #ifdef CONFIG_MMU |
156 | str r1, [r0], #-2048 @ linux version | 156 | armv3_set_pte_ext wc_disable=0 |
157 | |||
158 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
159 | |||
160 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
161 | bic r2, r2, #PTE_TYPE_MASK | ||
162 | orr r2, r2, #PTE_TYPE_SMALL | ||
163 | |||
164 | tst r1, #L_PTE_USER @ User? | ||
165 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
166 | |||
167 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
168 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
169 | |||
170 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
171 | movne r2, #0 | ||
172 | |||
173 | str r2, [r0] @ hardware version | ||
174 | mov r0, r0 | 157 | mov r0, r0 |
175 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 158 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
176 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 159 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index 871ba018252e..451e2d953e2a 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <asm/assembler.h> | 23 | #include <asm/assembler.h> |
24 | #include <asm/asm-offsets.h> | 24 | #include <asm/asm-offsets.h> |
25 | #include <asm/elf.h> | 25 | #include <asm/hwcap.h> |
26 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <asm/pgtable-hwdef.h> | 27 | #include <asm/pgtable-hwdef.h> |
28 | #include <asm/pgtable.h> | 28 | #include <asm/pgtable.h> |
@@ -166,24 +166,7 @@ ENTRY(cpu_sa1100_switch_mm) | |||
166 | .align 5 | 166 | .align 5 |
167 | ENTRY(cpu_sa1100_set_pte_ext) | 167 | ENTRY(cpu_sa1100_set_pte_ext) |
168 | #ifdef CONFIG_MMU | 168 | #ifdef CONFIG_MMU |
169 | str r1, [r0], #-2048 @ linux version | 169 | armv3_set_pte_ext wc_disable=0 |
170 | |||
171 | eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
172 | |||
173 | bic r2, r1, #PTE_SMALL_AP_MASK | ||
174 | bic r2, r2, #PTE_TYPE_MASK | ||
175 | orr r2, r2, #PTE_TYPE_SMALL | ||
176 | |||
177 | tst r1, #L_PTE_USER @ User? | ||
178 | orrne r2, r2, #PTE_SMALL_AP_URO_SRW | ||
179 | |||
180 | tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
181 | orreq r2, r2, #PTE_SMALL_AP_UNO_SRW | ||
182 | |||
183 | tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | ||
184 | movne r2, #0 | ||
185 | |||
186 | str r2, [r0] @ hardware version | ||
187 | mov r0, r0 | 170 | mov r0, r0 |
188 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 171 | mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
189 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 172 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 5702ec58b2a2..294943b85973 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
14 | #include <asm/assembler.h> | 14 | #include <asm/assembler.h> |
15 | #include <asm/asm-offsets.h> | 15 | #include <asm/asm-offsets.h> |
16 | #include <asm/elf.h> | 16 | #include <asm/hwcap.h> |
17 | #include <asm/pgtable-hwdef.h> | 17 | #include <asm/pgtable-hwdef.h> |
18 | #include <asm/pgtable.h> | 18 | #include <asm/pgtable.h> |
19 | 19 | ||
@@ -114,46 +114,12 @@ ENTRY(cpu_v6_switch_mm) | |||
114 | * (hardware version is stored at -1024 bytes) | 114 | * (hardware version is stored at -1024 bytes) |
115 | * - pte - PTE value to store | 115 | * - pte - PTE value to store |
116 | * - ext - value for extended PTE bits | 116 | * - ext - value for extended PTE bits |
117 | * | ||
118 | * Permissions: | ||
119 | * YUWD APX AP1 AP0 SVC User | ||
120 | * 0xxx 0 0 0 no acc no acc | ||
121 | * 100x 1 0 1 r/o no acc | ||
122 | * 10x0 1 0 1 r/o no acc | ||
123 | * 1011 0 0 1 r/w no acc | ||
124 | * 110x 0 1 0 r/w r/o | ||
125 | * 11x0 0 1 0 r/w r/o | ||
126 | * 1111 0 1 1 r/w r/w | ||
127 | */ | 117 | */ |
118 | armv6_mt_table cpu_v6 | ||
119 | |||
128 | ENTRY(cpu_v6_set_pte_ext) | 120 | ENTRY(cpu_v6_set_pte_ext) |
129 | #ifdef CONFIG_MMU | 121 | #ifdef CONFIG_MMU |
130 | str r1, [r0], #-2048 @ linux version | 122 | armv6_set_pte_ext cpu_v6 |
131 | |||
132 | bic r3, r1, #0x000003f0 | ||
133 | bic r3, r3, #0x00000003 | ||
134 | orr r3, r3, r2 | ||
135 | orr r3, r3, #PTE_EXT_AP0 | 2 | ||
136 | |||
137 | tst r1, #L_PTE_WRITE | ||
138 | tstne r1, #L_PTE_DIRTY | ||
139 | orreq r3, r3, #PTE_EXT_APX | ||
140 | |||
141 | tst r1, #L_PTE_USER | ||
142 | orrne r3, r3, #PTE_EXT_AP1 | ||
143 | tstne r3, #PTE_EXT_APX | ||
144 | bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0 | ||
145 | |||
146 | tst r1, #L_PTE_YOUNG | ||
147 | biceq r3, r3, #PTE_EXT_APX | PTE_EXT_AP_MASK | ||
148 | |||
149 | tst r1, #L_PTE_EXEC | ||
150 | orreq r3, r3, #PTE_EXT_XN | ||
151 | |||
152 | tst r1, #L_PTE_PRESENT | ||
153 | moveq r3, #0 | ||
154 | |||
155 | str r3, [r0] | ||
156 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte | ||
157 | #endif | 123 | #endif |
158 | mov pc, lr | 124 | mov pc, lr |
159 | 125 | ||
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index b49f9a4c82c8..34e424041927 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/linkage.h> | 12 | #include <linux/linkage.h> |
13 | #include <asm/assembler.h> | 13 | #include <asm/assembler.h> |
14 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
15 | #include <asm/elf.h> | 15 | #include <asm/hwcap.h> |
16 | #include <asm/pgtable-hwdef.h> | 16 | #include <asm/pgtable-hwdef.h> |
17 | #include <asm/pgtable.h> | 17 | #include <asm/pgtable.h> |
18 | 18 | ||
@@ -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) |
@@ -99,26 +105,19 @@ ENTRY(cpu_v7_switch_mm) | |||
99 | * (hardware version is stored at -1024 bytes) | 105 | * (hardware version is stored at -1024 bytes) |
100 | * - pte - PTE value to store | 106 | * - pte - PTE value to store |
101 | * - ext - value for extended PTE bits | 107 | * - ext - value for extended PTE bits |
102 | * | ||
103 | * Permissions: | ||
104 | * YUWD APX AP1 AP0 SVC User | ||
105 | * 0xxx 0 0 0 no acc no acc | ||
106 | * 100x 1 0 1 r/o no acc | ||
107 | * 10x0 1 0 1 r/o no acc | ||
108 | * 1011 0 0 1 r/w no acc | ||
109 | * 110x 0 1 0 r/w r/o | ||
110 | * 11x0 0 1 0 r/w r/o | ||
111 | * 1111 0 1 1 r/w r/w | ||
112 | */ | 108 | */ |
113 | ENTRY(cpu_v7_set_pte_ext) | 109 | ENTRY(cpu_v7_set_pte_ext) |
114 | #ifdef CONFIG_MMU | 110 | #ifdef CONFIG_MMU |
115 | str r1, [r0], #-2048 @ linux version | 111 | str r1, [r0], #-2048 @ linux version |
116 | 112 | ||
117 | bic r3, r1, #0x000003f0 | 113 | bic r3, r1, #0x000003f0 |
118 | bic r3, r3, #0x00000003 | 114 | bic r3, r3, #PTE_TYPE_MASK |
119 | orr r3, r3, r2 | 115 | orr r3, r3, r2 |
120 | orr r3, r3, #PTE_EXT_AP0 | 2 | 116 | orr r3, r3, #PTE_EXT_AP0 | 2 |
121 | 117 | ||
118 | tst r2, #1 << 4 | ||
119 | orrne r3, r3, #PTE_EXT_TEX(1) | ||
120 | |||
122 | tst r1, #L_PTE_WRITE | 121 | tst r1, #L_PTE_WRITE |
123 | tstne r1, #L_PTE_DIRTY | 122 | tstne r1, #L_PTE_DIRTY |
124 | orreq r3, r3, #PTE_EXT_APX | 123 | orreq r3, r3, #PTE_EXT_APX |
@@ -128,19 +127,18 @@ ENTRY(cpu_v7_set_pte_ext) | |||
128 | tstne r3, #PTE_EXT_APX | 127 | tstne r3, #PTE_EXT_APX |
129 | bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0 | 128 | bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0 |
130 | 129 | ||
131 | tst r1, #L_PTE_YOUNG | ||
132 | biceq r3, r3, #PTE_EXT_APX | PTE_EXT_AP_MASK | ||
133 | |||
134 | tst r1, #L_PTE_EXEC | 130 | tst r1, #L_PTE_EXEC |
135 | orreq r3, r3, #PTE_EXT_XN | 131 | orreq r3, r3, #PTE_EXT_XN |
136 | 132 | ||
137 | tst r1, #L_PTE_PRESENT | 133 | tst r1, #L_PTE_YOUNG |
134 | tstne r1, #L_PTE_PRESENT | ||
138 | moveq r3, #0 | 135 | moveq r3, #0 |
139 | 136 | ||
140 | str r3, [r0] | 137 | str r3, [r0] |
141 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte | 138 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte |
142 | #endif | 139 | #endif |
143 | mov pc, lr | 140 | mov pc, lr |
141 | ENDPROC(cpu_v7_set_pte_ext) | ||
144 | 142 | ||
145 | cpu_v7_name: | 143 | cpu_v7_name: |
146 | .ascii "ARMv7 Processor" | 144 | .ascii "ARMv7 Processor" |
@@ -182,12 +180,17 @@ __v7_setup: | |||
182 | mov r10, #0x1f @ domains 0, 1 = manager | 180 | mov r10, #0x1f @ domains 0, 1 = manager |
183 | mcr p15, 0, r10, c3, c0, 0 @ load domain access register | 181 | mcr p15, 0, r10, c3, c0, 0 @ load domain access register |
184 | #endif | 182 | #endif |
183 | ldr r5, =0x40e040e0 | ||
184 | ldr r6, =0xff0aa1a8 | ||
185 | mcr p15, 0, r5, c10, c2, 0 @ write PRRR | ||
186 | mcr p15, 0, r6, c10, c2, 1 @ write NMRR | ||
185 | adr r5, v7_crval | 187 | adr r5, v7_crval |
186 | ldmia r5, {r5, r6} | 188 | ldmia r5, {r5, r6} |
187 | mrc p15, 0, r0, c1, c0, 0 @ read control register | 189 | mrc p15, 0, r0, c1, c0, 0 @ read control register |
188 | bic r0, r0, r5 @ clear bits them | 190 | bic r0, r0, r5 @ clear bits them |
189 | orr r0, r0, r6 @ set them | 191 | orr r0, r0, r6 @ set them |
190 | mov pc, lr @ return to head.S:__ret | 192 | mov pc, lr @ return to head.S:__ret |
193 | ENDPROC(__v7_setup) | ||
191 | 194 | ||
192 | /* | 195 | /* |
193 | * V X F I D LR | 196 | * V X F I D LR |
@@ -197,7 +200,7 @@ __v7_setup: | |||
197 | */ | 200 | */ |
198 | .type v7_crval, #object | 201 | .type v7_crval, #object |
199 | v7_crval: | 202 | v7_crval: |
200 | crval clear=0x0120c302, mmuset=0x00c0387d, ucset=0x00c0187c | 203 | crval clear=0x0120c302, mmuset=0x10c0387d, ucset=0x00c0187c |
201 | 204 | ||
202 | __v7_setup_stack: | 205 | __v7_setup_stack: |
203 | .space 4 * 11 @ 11 registers | 206 | .space 4 * 11 @ 11 registers |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 7bd9e7197f60..04dc8b65401b 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -27,7 +27,7 @@ | |||
27 | #include <linux/linkage.h> | 27 | #include <linux/linkage.h> |
28 | #include <linux/init.h> | 28 | #include <linux/init.h> |
29 | #include <asm/assembler.h> | 29 | #include <asm/assembler.h> |
30 | #include <asm/elf.h> | 30 | #include <asm/hwcap.h> |
31 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
32 | #include <asm/pgtable.h> | 32 | #include <asm/pgtable.h> |
33 | #include <asm/pgtable-hwdef.h> | 33 | #include <asm/pgtable-hwdef.h> |
@@ -345,38 +345,38 @@ ENTRY(cpu_xsc3_switch_mm) | |||
345 | * cpu_xsc3_set_pte_ext(ptep, pte, ext) | 345 | * cpu_xsc3_set_pte_ext(ptep, pte, ext) |
346 | * | 346 | * |
347 | * Set a PTE and flush it out | 347 | * Set a PTE and flush it out |
348 | * | ||
349 | */ | 348 | */ |
349 | cpu_xsc3_mt_table: | ||
350 | .long 0x00 @ L_PTE_MT_UNCACHED | ||
351 | .long PTE_EXT_TEX(1) @ L_PTE_MT_BUFFERABLE | ||
352 | .long PTE_CACHEABLE @ L_PTE_MT_WRITETHROUGH | ||
353 | .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEBACK | ||
354 | .long PTE_EXT_TEX(1) | PTE_BUFFERABLE @ L_PTE_MT_DEV_SHARED | ||
355 | .long 0x00 @ unused | ||
356 | .long 0x00 @ L_PTE_MT_MINICACHE (not present) | ||
357 | .long PTE_EXT_TEX(5) | PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEALLOC (not present?) | ||
358 | .long 0x00 @ unused | ||
359 | .long PTE_EXT_TEX(1) @ L_PTE_MT_DEV_WC | ||
360 | .long 0x00 @ unused | ||
361 | .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_DEV_CACHED | ||
362 | .long PTE_EXT_TEX(2) @ L_PTE_MT_DEV_NONSHARED | ||
363 | .long 0x00 @ unused | ||
364 | .long 0x00 @ unused | ||
365 | .long 0x00 @ unused | ||
366 | |||
350 | .align 5 | 367 | .align 5 |
351 | ENTRY(cpu_xsc3_set_pte_ext) | 368 | ENTRY(cpu_xsc3_set_pte_ext) |
352 | str r1, [r0], #-2048 @ linux version | 369 | xscale_set_pte_ext_prologue |
353 | 370 | ||
354 | bic r2, r1, #0xff0 @ keep C, B bits | ||
355 | orr r2, r2, #PTE_TYPE_EXT @ extended page | ||
356 | tst r1, #L_PTE_SHARED @ shared? | 371 | tst r1, #L_PTE_SHARED @ shared? |
357 | orrne r2, r2, #0x200 | 372 | and r1, r1, #L_PTE_MT_MASK |
358 | 373 | adr ip, cpu_xsc3_mt_table | |
359 | eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | 374 | ldr ip, [ip, r1] |
360 | 375 | orrne r2, r2, #PTE_EXT_COHERENT @ interlock: mask in coherent bit | |
361 | tst r3, #L_PTE_USER @ user? | 376 | bic r2, r2, #0x0c @ clear old C,B bits |
362 | orrne r2, r2, #PTE_EXT_AP_URO_SRW @ yes -> user r/o, system r/w | 377 | orr r2, r2, ip |
363 | 378 | ||
364 | tst r3, #L_PTE_WRITE | L_PTE_DIRTY @ write and dirty? | 379 | xscale_set_pte_ext_epilogue |
365 | orreq r2, r2, #PTE_EXT_AP_UNO_SRW @ yes -> user n/a, system r/w | ||
366 | @ combined with user -> user r/w | ||
367 | |||
368 | @ If it's cacheable, it needs to be in L2 also. | ||
369 | eor ip, r1, #L_PTE_CACHEABLE | ||
370 | tst ip, #L_PTE_CACHEABLE | ||
371 | orreq r2, r2, #PTE_EXT_TEX(0x5) | ||
372 | |||
373 | tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ present and young? | ||
374 | movne r2, #0 @ no -> fault | ||
375 | |||
376 | str r2, [r0] @ hardware version | ||
377 | mov ip, #0 | ||
378 | mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line | ||
379 | mcr p15, 0, ip, c7, c10, 4 @ data write barrier | ||
380 | mov pc, lr | 380 | mov pc, lr |
381 | 381 | ||
382 | .ltorg | 382 | .ltorg |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index 2dd85273976f..0cce37b93937 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <linux/linkage.h> | 23 | #include <linux/linkage.h> |
24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
25 | #include <asm/assembler.h> | 25 | #include <asm/assembler.h> |
26 | #include <asm/elf.h> | 26 | #include <asm/hwcap.h> |
27 | #include <asm/pgtable.h> | 27 | #include <asm/pgtable.h> |
28 | #include <asm/pgtable-hwdef.h> | 28 | #include <asm/pgtable-hwdef.h> |
29 | #include <asm/page.h> | 29 | #include <asm/page.h> |
@@ -406,8 +406,6 @@ ENTRY(cpu_xscale_dcache_clean_area) | |||
406 | 406 | ||
407 | /* =============================== PageTable ============================== */ | 407 | /* =============================== PageTable ============================== */ |
408 | 408 | ||
409 | #define PTE_CACHE_WRITE_ALLOCATE 0 | ||
410 | |||
411 | /* | 409 | /* |
412 | * cpu_xscale_switch_mm(pgd) | 410 | * cpu_xscale_switch_mm(pgd) |
413 | * | 411 | * |
@@ -431,56 +429,42 @@ ENTRY(cpu_xscale_switch_mm) | |||
431 | * | 429 | * |
432 | * Errata 40: must set memory to write-through for user read-only pages. | 430 | * Errata 40: must set memory to write-through for user read-only pages. |
433 | */ | 431 | */ |
432 | cpu_xscale_mt_table: | ||
433 | .long 0x00 @ L_PTE_MT_UNCACHED | ||
434 | .long PTE_BUFFERABLE @ L_PTE_MT_BUFFERABLE | ||
435 | .long PTE_CACHEABLE @ L_PTE_MT_WRITETHROUGH | ||
436 | .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEBACK | ||
437 | .long PTE_EXT_TEX(1) | PTE_BUFFERABLE @ L_PTE_MT_DEV_SHARED | ||
438 | .long 0x00 @ unused | ||
439 | .long PTE_EXT_TEX(1) | PTE_CACHEABLE @ L_PTE_MT_MINICACHE | ||
440 | .long PTE_EXT_TEX(1) | PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEALLOC | ||
441 | .long 0x00 @ unused | ||
442 | .long PTE_BUFFERABLE @ L_PTE_MT_DEV_WC | ||
443 | .long 0x00 @ unused | ||
444 | .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_DEV_CACHED | ||
445 | .long 0x00 @ L_PTE_MT_DEV_NONSHARED | ||
446 | .long 0x00 @ unused | ||
447 | .long 0x00 @ unused | ||
448 | .long 0x00 @ unused | ||
449 | |||
434 | .align 5 | 450 | .align 5 |
435 | ENTRY(cpu_xscale_set_pte_ext) | 451 | ENTRY(cpu_xscale_set_pte_ext) |
436 | str r1, [r0], #-2048 @ linux version | 452 | xscale_set_pte_ext_prologue |
437 | |||
438 | bic r2, r1, #0xff0 | ||
439 | orr r2, r2, #PTE_TYPE_EXT @ extended page | ||
440 | |||
441 | eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY | ||
442 | |||
443 | tst r3, #L_PTE_USER @ User? | ||
444 | orrne r2, r2, #PTE_EXT_AP_URO_SRW @ yes -> user r/o, system r/w | ||
445 | |||
446 | tst r3, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty? | ||
447 | orreq r2, r2, #PTE_EXT_AP_UNO_SRW @ yes -> user n/a, system r/w | ||
448 | @ combined with user -> user r/w | ||
449 | |||
450 | @ | ||
451 | @ Handle the X bit. We want to set this bit for the minicache | ||
452 | @ (U = E = B = W = 0, C = 1) or when write allocate is enabled, | ||
453 | @ and we have a writeable, cacheable region. If we ignore the | ||
454 | @ U and E bits, we can allow user space to use the minicache as | ||
455 | @ well. | ||
456 | @ | ||
457 | @ X = (C & ~W & ~B) | (C & W & B & write_allocate) | ||
458 | @ | ||
459 | eor ip, r1, #L_PTE_CACHEABLE | ||
460 | tst ip, #L_PTE_CACHEABLE | L_PTE_WRITE | L_PTE_BUFFERABLE | ||
461 | #if PTE_CACHE_WRITE_ALLOCATE | ||
462 | eorne ip, r1, #L_PTE_CACHEABLE | L_PTE_WRITE | L_PTE_BUFFERABLE | ||
463 | tstne ip, #L_PTE_CACHEABLE | L_PTE_WRITE | L_PTE_BUFFERABLE | ||
464 | #endif | ||
465 | orreq r2, r2, #PTE_EXT_TEX(1) | ||
466 | 453 | ||
467 | @ | 454 | @ |
468 | @ Erratum 40: The B bit must be cleared for a user read-only | 455 | @ Erratum 40: must set memory to write-through for user read-only pages |
469 | @ cacheable page. | ||
470 | @ | ||
471 | @ B = B & ~(U & C & ~W) | ||
472 | @ | 456 | @ |
473 | and ip, r1, #L_PTE_USER | L_PTE_WRITE | L_PTE_CACHEABLE | 457 | and ip, r1, #(L_PTE_MT_MASK | L_PTE_USER | L_PTE_WRITE) & ~(4 << 2) |
474 | teq ip, #L_PTE_USER | L_PTE_CACHEABLE | 458 | teq ip, #L_PTE_MT_WRITEBACK | L_PTE_USER |
475 | biceq r2, r2, #PTE_BUFFERABLE | ||
476 | 459 | ||
477 | tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? | 460 | moveq r1, #L_PTE_MT_WRITETHROUGH |
478 | movne r2, #0 @ no -> fault | 461 | and r1, r1, #L_PTE_MT_MASK |
462 | adr ip, cpu_xscale_mt_table | ||
463 | ldr ip, [ip, r1] | ||
464 | bic r2, r2, #0x0c | ||
465 | orr r2, r2, ip | ||
479 | 466 | ||
480 | str r2, [r0] @ hardware version | 467 | xscale_set_pte_ext_epilogue |
481 | mov ip, #0 | ||
482 | mcr p15, 0, r0, c7, c10, 1 @ Clean D cache line | ||
483 | mcr p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer | ||
484 | mov pc, lr | 468 | mov pc, lr |
485 | 469 | ||
486 | 470 | ||
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 9e1341ebc14e..5764bce98cf3 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 4a11296a9514..9df7bb93edca 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 24768c10cadb..e332a518efe8 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__ */ |