diff options
Diffstat (limited to 'arch/arm')
207 files changed, 7238 insertions, 1160 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 1c4119c60040..1ae18d879e12 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -702,6 +702,16 @@ config ARCH_BCMRING | |||
702 | help | 702 | help |
703 | Support for Broadcom's BCMRing platform. | 703 | Support for Broadcom's BCMRing platform. |
704 | 704 | ||
705 | config ARCH_U8500 | ||
706 | bool "ST-Ericsson U8500 Series" | ||
707 | select CPU_V7 | ||
708 | select ARM_AMBA | ||
709 | select GENERIC_TIME | ||
710 | select GENERIC_CLOCKEVENTS | ||
711 | select COMMON_CLKDEV | ||
712 | help | ||
713 | Support for ST-Ericsson's Ux500 architecture | ||
714 | |||
705 | endchoice | 715 | endchoice |
706 | 716 | ||
707 | source "arch/arm/mach-clps711x/Kconfig" | 717 | source "arch/arm/mach-clps711x/Kconfig" |
@@ -787,6 +797,7 @@ source "arch/arm/mach-at91/Kconfig" | |||
787 | source "arch/arm/plat-mxc/Kconfig" | 797 | source "arch/arm/plat-mxc/Kconfig" |
788 | 798 | ||
789 | source "arch/arm/mach-nomadik/Kconfig" | 799 | source "arch/arm/mach-nomadik/Kconfig" |
800 | source "arch/arm/plat-nomadik/Kconfig" | ||
790 | 801 | ||
791 | source "arch/arm/mach-netx/Kconfig" | 802 | source "arch/arm/mach-netx/Kconfig" |
792 | 803 | ||
@@ -804,6 +815,8 @@ source "arch/arm/mach-w90x900/Kconfig" | |||
804 | 815 | ||
805 | source "arch/arm/mach-bcmring/Kconfig" | 816 | source "arch/arm/mach-bcmring/Kconfig" |
806 | 817 | ||
818 | source "arch/arm/mach-ux500/Kconfig" | ||
819 | |||
807 | # Definitions to make life easier | 820 | # Definitions to make life easier |
808 | config ARCH_ACORN | 821 | config ARCH_ACORN |
809 | bool | 822 | bool |
@@ -955,10 +968,10 @@ source "kernel/time/Kconfig" | |||
955 | config SMP | 968 | config SMP |
956 | bool "Symmetric Multi-Processing (EXPERIMENTAL)" | 969 | bool "Symmetric Multi-Processing (EXPERIMENTAL)" |
957 | depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP ||\ | 970 | depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP ||\ |
958 | MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4) | 971 | MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || ARCH_U8500) |
959 | depends on GENERIC_CLOCKEVENTS | 972 | depends on GENERIC_CLOCKEVENTS |
960 | select USE_GENERIC_SMP_HELPERS | 973 | select USE_GENERIC_SMP_HELPERS |
961 | select HAVE_ARM_SCU if (ARCH_REALVIEW || ARCH_OMAP4) | 974 | select HAVE_ARM_SCU if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500) |
962 | help | 975 | help |
963 | This enables support for systems with more than one CPU. If you have | 976 | This enables support for systems with more than one CPU. If you have |
964 | a system with only one CPU, like most personal computers, say N. If | 977 | a system with only one CPU, like most personal computers, say N. If |
@@ -1027,9 +1040,9 @@ config HOTPLUG_CPU | |||
1027 | config LOCAL_TIMERS | 1040 | config LOCAL_TIMERS |
1028 | bool "Use local timer interrupts" | 1041 | bool "Use local timer interrupts" |
1029 | depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \ | 1042 | depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \ |
1030 | REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4) | 1043 | REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || ARCH_U8500) |
1031 | default y | 1044 | default y |
1032 | select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4) | 1045 | select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500) |
1033 | help | 1046 | help |
1034 | Enable support for local timers on SMP platforms, rather then the | 1047 | Enable support for local timers on SMP platforms, rather then the |
1035 | legacy IPI broadcast method. Local timers allows the system | 1048 | legacy IPI broadcast method. Local timers allows the system |
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 1a6f70e52921..ff54c23d085e 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
@@ -83,6 +83,14 @@ config DEBUG_ICEDCC | |||
83 | It does include a timeout to ensure that the system does not | 83 | It does include a timeout to ensure that the system does not |
84 | totally freeze when there is nothing connected to read. | 84 | totally freeze when there is nothing connected to read. |
85 | 85 | ||
86 | config OC_ETM | ||
87 | bool "On-chip ETM and ETB" | ||
88 | select ARM_AMBA | ||
89 | help | ||
90 | Enables the on-chip embedded trace macrocell and embedded trace | ||
91 | buffer driver that will allow you to collect traces of the | ||
92 | kernel code. | ||
93 | |||
86 | config DEBUG_DC21285_PORT | 94 | config DEBUG_DC21285_PORT |
87 | bool "Kernel low-level debugging messages via footbridge serial port" | 95 | bool "Kernel low-level debugging messages via footbridge serial port" |
88 | depends on DEBUG_LL && FOOTBRIDGE | 96 | depends on DEBUG_LL && FOOTBRIDGE |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index a73caaf66763..7603eba7c0cd 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -166,6 +166,7 @@ machine-$(CONFIG_ARCH_SHARK) := shark | |||
166 | machine-$(CONFIG_ARCH_STMP378X) := stmp378x | 166 | machine-$(CONFIG_ARCH_STMP378X) := stmp378x |
167 | machine-$(CONFIG_ARCH_STMP37XX) := stmp37xx | 167 | machine-$(CONFIG_ARCH_STMP37XX) := stmp37xx |
168 | machine-$(CONFIG_ARCH_U300) := u300 | 168 | machine-$(CONFIG_ARCH_U300) := u300 |
169 | machine-$(CONFIG_ARCH_U8500) := ux500 | ||
169 | machine-$(CONFIG_ARCH_VERSATILE) := versatile | 170 | machine-$(CONFIG_ARCH_VERSATILE) := versatile |
170 | machine-$(CONFIG_ARCH_W90X900) := w90x900 | 171 | machine-$(CONFIG_ARCH_W90X900) := w90x900 |
171 | machine-$(CONFIG_FOOTBRIDGE) := footbridge | 172 | machine-$(CONFIG_FOOTBRIDGE) := footbridge |
@@ -176,6 +177,7 @@ machine-$(CONFIG_ARCH_MXC91231) := mxc91231 | |||
176 | plat-$(CONFIG_ARCH_MXC) := mxc | 177 | plat-$(CONFIG_ARCH_MXC) := mxc |
177 | plat-$(CONFIG_ARCH_OMAP) := omap | 178 | plat-$(CONFIG_ARCH_OMAP) := omap |
178 | plat-$(CONFIG_PLAT_IOP) := iop | 179 | plat-$(CONFIG_PLAT_IOP) := iop |
180 | plat-$(CONFIG_PLAT_NOMADIK) := nomadik | ||
179 | plat-$(CONFIG_PLAT_ORION) := orion | 181 | plat-$(CONFIG_PLAT_ORION) := orion |
180 | plat-$(CONFIG_PLAT_PXA) := pxa | 182 | plat-$(CONFIG_PLAT_PXA) := pxa |
181 | plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c | 183 | plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c |
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c index 734ac9135998..5a375e5fef21 100644 --- a/arch/arm/common/dmabounce.c +++ b/arch/arm/common/dmabounce.c | |||
@@ -342,6 +342,22 @@ dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size, | |||
342 | } | 342 | } |
343 | EXPORT_SYMBOL(dma_map_single); | 343 | EXPORT_SYMBOL(dma_map_single); |
344 | 344 | ||
345 | /* | ||
346 | * see if a mapped address was really a "safe" buffer and if so, copy | ||
347 | * the data from the safe buffer back to the unsafe buffer and free up | ||
348 | * the safe buffer. (basically return things back to the way they | ||
349 | * should be) | ||
350 | */ | ||
351 | void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | ||
352 | enum dma_data_direction dir) | ||
353 | { | ||
354 | dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", | ||
355 | __func__, (void *) dma_addr, size, dir); | ||
356 | |||
357 | unmap_single(dev, dma_addr, size, dir); | ||
358 | } | ||
359 | EXPORT_SYMBOL(dma_unmap_single); | ||
360 | |||
345 | dma_addr_t dma_map_page(struct device *dev, struct page *page, | 361 | dma_addr_t dma_map_page(struct device *dev, struct page *page, |
346 | unsigned long offset, size_t size, enum dma_data_direction dir) | 362 | unsigned long offset, size_t size, enum dma_data_direction dir) |
347 | { | 363 | { |
@@ -366,8 +382,7 @@ EXPORT_SYMBOL(dma_map_page); | |||
366 | * the safe buffer. (basically return things back to the way they | 382 | * the safe buffer. (basically return things back to the way they |
367 | * should be) | 383 | * should be) |
368 | */ | 384 | */ |
369 | 385 | void dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size, | |
370 | void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | ||
371 | enum dma_data_direction dir) | 386 | enum dma_data_direction dir) |
372 | { | 387 | { |
373 | dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", | 388 | dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", |
@@ -375,7 +390,7 @@ void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | |||
375 | 390 | ||
376 | unmap_single(dev, dma_addr, size, dir); | 391 | unmap_single(dev, dma_addr, size, dir); |
377 | } | 392 | } |
378 | EXPORT_SYMBOL(dma_unmap_single); | 393 | EXPORT_SYMBOL(dma_unmap_page); |
379 | 394 | ||
380 | int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr, | 395 | int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr, |
381 | unsigned long off, size_t sz, enum dma_data_direction dir) | 396 | unsigned long off, size_t sz, enum dma_data_direction dir) |
diff --git a/arch/arm/configs/ams_delta_defconfig b/arch/arm/configs/ams_delta_defconfig index 764732529ea3..e8f7380b67d6 100644 --- a/arch/arm/configs/ams_delta_defconfig +++ b/arch/arm/configs/ams_delta_defconfig | |||
@@ -55,10 +55,10 @@ CONFIG_BLK_DEV_INITRD=y | |||
55 | CONFIG_INITRAMFS_SOURCE="" | 55 | CONFIG_INITRAMFS_SOURCE="" |
56 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 56 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
57 | CONFIG_SYSCTL=y | 57 | CONFIG_SYSCTL=y |
58 | # CONFIG_EMBEDDED is not set | 58 | CONFIG_EMBEDDED=y |
59 | CONFIG_UID16=y | 59 | CONFIG_UID16=y |
60 | CONFIG_SYSCTL_SYSCALL=y | 60 | CONFIG_SYSCTL_SYSCALL=y |
61 | CONFIG_KALLSYMS=y | 61 | # CONFIG_KALLSYMS is not set |
62 | # CONFIG_KALLSYMS_ALL is not set | 62 | # CONFIG_KALLSYMS_ALL is not set |
63 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 63 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
64 | CONFIG_HOTPLUG=y | 64 | CONFIG_HOTPLUG=y |
@@ -224,7 +224,7 @@ CONFIG_CPU_CP15_MMU=y | |||
224 | # | 224 | # |
225 | # Processor Features | 225 | # Processor Features |
226 | # | 226 | # |
227 | # CONFIG_ARM_THUMB is not set | 227 | CONFIG_ARM_THUMB=y |
228 | # CONFIG_CPU_ICACHE_DISABLE is not set | 228 | # CONFIG_CPU_ICACHE_DISABLE is not set |
229 | # CONFIG_CPU_DCACHE_DISABLE is not set | 229 | # CONFIG_CPU_DCACHE_DISABLE is not set |
230 | CONFIG_CPU_DCACHE_WRITETHROUGH=y | 230 | CONFIG_CPU_DCACHE_WRITETHROUGH=y |
@@ -248,7 +248,7 @@ CONFIG_CPU_DCACHE_WRITETHROUGH=y | |||
248 | # CONFIG_HIGH_RES_TIMERS is not set | 248 | # CONFIG_HIGH_RES_TIMERS is not set |
249 | CONFIG_PREEMPT=y | 249 | CONFIG_PREEMPT=y |
250 | CONFIG_HZ=100 | 250 | CONFIG_HZ=100 |
251 | # CONFIG_AEABI is not set | 251 | CONFIG_AEABI=y |
252 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | 252 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set |
253 | CONFIG_SELECT_MEMORY_MODEL=y | 253 | CONFIG_SELECT_MEMORY_MODEL=y |
254 | CONFIG_FLATMEM_MANUAL=y | 254 | CONFIG_FLATMEM_MANUAL=y |
@@ -299,7 +299,9 @@ CONFIG_BINFMT_ELF=y | |||
299 | # | 299 | # |
300 | # Power management options | 300 | # Power management options |
301 | # | 301 | # |
302 | # CONFIG_PM is not set | 302 | CONFIG_PM=y |
303 | # CONFIG_SUSPEND is not set | ||
304 | CONFIG_PM_RUNTIME=y | ||
303 | 305 | ||
304 | # | 306 | # |
305 | # Networking | 307 | # Networking |
@@ -670,7 +672,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | |||
670 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 672 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
671 | # CONFIG_INPUT_JOYDEV is not set | 673 | # CONFIG_INPUT_JOYDEV is not set |
672 | # CONFIG_INPUT_TSDEV is not set | 674 | # CONFIG_INPUT_TSDEV is not set |
673 | # CONFIG_INPUT_EVDEV is not set | 675 | CONFIG_INPUT_EVDEV=y |
674 | # CONFIG_INPUT_EVBUG is not set | 676 | # CONFIG_INPUT_EVBUG is not set |
675 | 677 | ||
676 | # | 678 | # |
@@ -784,6 +786,7 @@ CONFIG_I2C_OMAP=y | |||
784 | # | 786 | # |
785 | # CONFIG_SPI is not set | 787 | # CONFIG_SPI is not set |
786 | # CONFIG_SPI_MASTER is not set | 788 | # CONFIG_SPI_MASTER is not set |
789 | CONFIG_GPIO_SYSFS=y | ||
787 | 790 | ||
788 | # | 791 | # |
789 | # Dallas's 1-wire bus | 792 | # Dallas's 1-wire bus |
@@ -820,6 +823,7 @@ CONFIG_LEDS_AMS_DELTA=y | |||
820 | CONFIG_LEDS_TRIGGERS=y | 823 | CONFIG_LEDS_TRIGGERS=y |
821 | CONFIG_LEDS_TRIGGER_TIMER=y | 824 | CONFIG_LEDS_TRIGGER_TIMER=y |
822 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | 825 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y |
826 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
823 | 827 | ||
824 | # | 828 | # |
825 | # Multimedia devices | 829 | # Multimedia devices |
@@ -896,7 +900,13 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
896 | # | 900 | # |
897 | # Sound | 901 | # Sound |
898 | # | 902 | # |
899 | # CONFIG_SOUND is not set | 903 | CONFIG_SOUND=y |
904 | CONFIG_SND=y | ||
905 | CONFIG_SND_MIXER_OSS=y | ||
906 | CONFIG_SND_PCM_OSS=y | ||
907 | CONFIG_SND_SOC=y | ||
908 | CONFIG_SND_OMAP_SOC=y | ||
909 | CONFIG_SND_OMAP_SOC_AMS_DELTA=y | ||
900 | 910 | ||
901 | # | 911 | # |
902 | # HID Devices | 912 | # HID Devices |
diff --git a/arch/arm/configs/at91rm9200dk_defconfig b/arch/arm/configs/at91rm9200dk_defconfig index 238b218394e3..c97e1022ada1 100644 --- a/arch/arm/configs/at91rm9200dk_defconfig +++ b/arch/arm/configs/at91rm9200dk_defconfig | |||
@@ -120,6 +120,7 @@ CONFIG_ARCH_AT91RM9200DK=y | |||
120 | # CONFIG_MACH_CARMEVA is not set | 120 | # CONFIG_MACH_CARMEVA is not set |
121 | # CONFIG_MACH_KB9200 is not set | 121 | # CONFIG_MACH_KB9200 is not set |
122 | # CONFIG_MACH_ATEB9200 is not set | 122 | # CONFIG_MACH_ATEB9200 is not set |
123 | CONFIG_MACH_ECO920=y | ||
123 | 124 | ||
124 | # | 125 | # |
125 | # AT91RM9200 Feature Selections | 126 | # AT91RM9200 Feature Selections |
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig index af74cc2de8b6..bcfade33bca9 100644 --- a/arch/arm/configs/kirkwood_defconfig +++ b/arch/arm/configs/kirkwood_defconfig | |||
@@ -1,15 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.30-rc4 | 3 | # Linux kernel version: 2.6.32-rc6 |
4 | # Mon May 4 11:58:57 2009 | 4 | # Sat Nov 7 20:31:18 2009 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | 7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y |
8 | CONFIG_GENERIC_GPIO=y | 8 | CONFIG_GENERIC_GPIO=y |
9 | CONFIG_GENERIC_TIME=y | 9 | CONFIG_GENERIC_TIME=y |
10 | CONFIG_GENERIC_CLOCKEVENTS=y | 10 | CONFIG_GENERIC_CLOCKEVENTS=y |
11 | CONFIG_MMU=y | ||
12 | # CONFIG_NO_IOPORT is not set | ||
13 | CONFIG_GENERIC_HARDIRQS=y | 11 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_STACKTRACE_SUPPORT=y | 12 | CONFIG_STACKTRACE_SUPPORT=y |
15 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 13 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
@@ -18,13 +16,12 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
18 | CONFIG_HARDIRQS_SW_RESEND=y | 16 | CONFIG_HARDIRQS_SW_RESEND=y |
19 | CONFIG_GENERIC_IRQ_PROBE=y | 17 | CONFIG_GENERIC_IRQ_PROBE=y |
20 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 18 | 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 | 19 | CONFIG_GENERIC_HWEIGHT=y |
24 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 20 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
25 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 21 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
26 | CONFIG_VECTORS_BASE=0xffff0000 | 22 | CONFIG_VECTORS_BASE=0xffff0000 |
27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
24 | CONFIG_CONSTRUCTORS=y | ||
28 | 25 | ||
29 | # | 26 | # |
30 | # General setup | 27 | # General setup |
@@ -46,11 +43,12 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
46 | # | 43 | # |
47 | # RCU Subsystem | 44 | # RCU Subsystem |
48 | # | 45 | # |
49 | CONFIG_CLASSIC_RCU=y | 46 | CONFIG_TREE_RCU=y |
50 | # CONFIG_TREE_RCU is not set | 47 | # CONFIG_TREE_PREEMPT_RCU is not set |
51 | # CONFIG_PREEMPT_RCU is not set | 48 | # CONFIG_RCU_TRACE is not set |
49 | CONFIG_RCU_FANOUT=32 | ||
50 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
52 | # CONFIG_TREE_RCU_TRACE is not set | 51 | # CONFIG_TREE_RCU_TRACE is not set |
53 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
54 | # CONFIG_IKCONFIG is not set | 52 | # CONFIG_IKCONFIG is not set |
55 | CONFIG_LOG_BUF_SHIFT=19 | 53 | CONFIG_LOG_BUF_SHIFT=19 |
56 | # CONFIG_GROUP_SCHED is not set | 54 | # CONFIG_GROUP_SCHED is not set |
@@ -73,7 +71,6 @@ CONFIG_SYSCTL_SYSCALL=y | |||
73 | CONFIG_KALLSYMS=y | 71 | CONFIG_KALLSYMS=y |
74 | # CONFIG_KALLSYMS_ALL is not set | 72 | # CONFIG_KALLSYMS_ALL is not set |
75 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 73 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
76 | # CONFIG_STRIP_ASM_SYMS is not set | ||
77 | CONFIG_HOTPLUG=y | 74 | CONFIG_HOTPLUG=y |
78 | CONFIG_PRINTK=y | 75 | CONFIG_PRINTK=y |
79 | CONFIG_BUG=y | 76 | CONFIG_BUG=y |
@@ -86,6 +83,10 @@ CONFIG_TIMERFD=y | |||
86 | CONFIG_EVENTFD=y | 83 | CONFIG_EVENTFD=y |
87 | CONFIG_SHMEM=y | 84 | CONFIG_SHMEM=y |
88 | CONFIG_AIO=y | 85 | CONFIG_AIO=y |
86 | |||
87 | # | ||
88 | # Kernel Performance Events And Counters | ||
89 | # | ||
89 | CONFIG_VM_EVENT_COUNTERS=y | 90 | CONFIG_VM_EVENT_COUNTERS=y |
90 | CONFIG_PCI_QUIRKS=y | 91 | CONFIG_PCI_QUIRKS=y |
91 | CONFIG_SLUB_DEBUG=y | 92 | CONFIG_SLUB_DEBUG=y |
@@ -95,13 +96,17 @@ CONFIG_SLUB=y | |||
95 | # CONFIG_SLOB is not set | 96 | # CONFIG_SLOB is not set |
96 | CONFIG_PROFILING=y | 97 | CONFIG_PROFILING=y |
97 | CONFIG_TRACEPOINTS=y | 98 | CONFIG_TRACEPOINTS=y |
98 | # CONFIG_MARKERS is not set | ||
99 | CONFIG_OPROFILE=y | 99 | CONFIG_OPROFILE=y |
100 | CONFIG_HAVE_OPROFILE=y | 100 | CONFIG_HAVE_OPROFILE=y |
101 | CONFIG_KPROBES=y | 101 | CONFIG_KPROBES=y |
102 | CONFIG_KRETPROBES=y | 102 | CONFIG_KRETPROBES=y |
103 | CONFIG_HAVE_KPROBES=y | 103 | CONFIG_HAVE_KPROBES=y |
104 | CONFIG_HAVE_KRETPROBES=y | 104 | CONFIG_HAVE_KRETPROBES=y |
105 | |||
106 | # | ||
107 | # GCOV-based kernel profiling | ||
108 | # | ||
109 | # CONFIG_GCOV_KERNEL is not set | ||
105 | # CONFIG_SLOW_WORK is not set | 110 | # CONFIG_SLOW_WORK is not set |
106 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 111 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
107 | CONFIG_SLABINFO=y | 112 | CONFIG_SLABINFO=y |
@@ -114,7 +119,7 @@ CONFIG_MODULE_UNLOAD=y | |||
114 | # CONFIG_MODVERSIONS is not set | 119 | # CONFIG_MODVERSIONS is not set |
115 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 120 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
116 | CONFIG_BLOCK=y | 121 | CONFIG_BLOCK=y |
117 | # CONFIG_LBD is not set | 122 | CONFIG_LBDAF=y |
118 | # CONFIG_BLK_DEV_BSG is not set | 123 | # CONFIG_BLK_DEV_BSG is not set |
119 | # CONFIG_BLK_DEV_INTEGRITY is not set | 124 | # CONFIG_BLK_DEV_INTEGRITY is not set |
120 | 125 | ||
@@ -135,19 +140,22 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
135 | # | 140 | # |
136 | # System Type | 141 | # System Type |
137 | # | 142 | # |
143 | CONFIG_MMU=y | ||
138 | # CONFIG_ARCH_AAEC2000 is not set | 144 | # CONFIG_ARCH_AAEC2000 is not set |
139 | # CONFIG_ARCH_INTEGRATOR is not set | 145 | # CONFIG_ARCH_INTEGRATOR is not set |
140 | # CONFIG_ARCH_REALVIEW is not set | 146 | # CONFIG_ARCH_REALVIEW is not set |
141 | # CONFIG_ARCH_VERSATILE is not set | 147 | # CONFIG_ARCH_VERSATILE is not set |
142 | # CONFIG_ARCH_AT91 is not set | 148 | # CONFIG_ARCH_AT91 is not set |
143 | # CONFIG_ARCH_CLPS711X is not set | 149 | # CONFIG_ARCH_CLPS711X is not set |
150 | # CONFIG_ARCH_GEMINI is not set | ||
144 | # CONFIG_ARCH_EBSA110 is not set | 151 | # CONFIG_ARCH_EBSA110 is not set |
145 | # CONFIG_ARCH_EP93XX is not set | 152 | # CONFIG_ARCH_EP93XX is not set |
146 | # CONFIG_ARCH_GEMINI is not set | ||
147 | # CONFIG_ARCH_FOOTBRIDGE is not set | 153 | # CONFIG_ARCH_FOOTBRIDGE is not set |
154 | # CONFIG_ARCH_MXC is not set | ||
155 | # CONFIG_ARCH_STMP3XXX is not set | ||
148 | # CONFIG_ARCH_NETX is not set | 156 | # CONFIG_ARCH_NETX is not set |
149 | # CONFIG_ARCH_H720X is not set | 157 | # CONFIG_ARCH_H720X is not set |
150 | # CONFIG_ARCH_IMX is not set | 158 | # CONFIG_ARCH_NOMADIK is not set |
151 | # CONFIG_ARCH_IOP13XX is not set | 159 | # CONFIG_ARCH_IOP13XX is not set |
152 | # CONFIG_ARCH_IOP32X is not set | 160 | # CONFIG_ARCH_IOP32X is not set |
153 | # CONFIG_ARCH_IOP33X is not set | 161 | # CONFIG_ARCH_IOP33X is not set |
@@ -156,25 +164,27 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
156 | # CONFIG_ARCH_IXP4XX is not set | 164 | # CONFIG_ARCH_IXP4XX is not set |
157 | # CONFIG_ARCH_L7200 is not set | 165 | # CONFIG_ARCH_L7200 is not set |
158 | CONFIG_ARCH_KIRKWOOD=y | 166 | CONFIG_ARCH_KIRKWOOD=y |
159 | # CONFIG_ARCH_KS8695 is not set | ||
160 | # CONFIG_ARCH_NS9XXX is not set | ||
161 | # CONFIG_ARCH_LOKI is not set | 167 | # CONFIG_ARCH_LOKI is not set |
162 | # CONFIG_ARCH_MV78XX0 is not set | 168 | # CONFIG_ARCH_MV78XX0 is not set |
163 | # CONFIG_ARCH_MXC is not set | ||
164 | # CONFIG_ARCH_ORION5X is not set | 169 | # CONFIG_ARCH_ORION5X is not set |
170 | # CONFIG_ARCH_MMP is not set | ||
171 | # CONFIG_ARCH_KS8695 is not set | ||
172 | # CONFIG_ARCH_NS9XXX is not set | ||
173 | # CONFIG_ARCH_W90X900 is not set | ||
165 | # CONFIG_ARCH_PNX4008 is not set | 174 | # CONFIG_ARCH_PNX4008 is not set |
166 | # CONFIG_ARCH_PXA is not set | 175 | # CONFIG_ARCH_PXA is not set |
167 | # CONFIG_ARCH_MMP is not set | 176 | # CONFIG_ARCH_MSM is not set |
168 | # CONFIG_ARCH_RPC is not set | 177 | # CONFIG_ARCH_RPC is not set |
169 | # CONFIG_ARCH_SA1100 is not set | 178 | # CONFIG_ARCH_SA1100 is not set |
170 | # CONFIG_ARCH_S3C2410 is not set | 179 | # CONFIG_ARCH_S3C2410 is not set |
171 | # CONFIG_ARCH_S3C64XX is not set | 180 | # CONFIG_ARCH_S3C64XX is not set |
181 | # CONFIG_ARCH_S5PC1XX is not set | ||
172 | # CONFIG_ARCH_SHARK is not set | 182 | # CONFIG_ARCH_SHARK is not set |
173 | # CONFIG_ARCH_LH7A40X is not set | 183 | # CONFIG_ARCH_LH7A40X is not set |
184 | # CONFIG_ARCH_U300 is not set | ||
174 | # CONFIG_ARCH_DAVINCI is not set | 185 | # CONFIG_ARCH_DAVINCI is not set |
175 | # CONFIG_ARCH_OMAP is not set | 186 | # CONFIG_ARCH_OMAP is not set |
176 | # CONFIG_ARCH_MSM is not set | 187 | # CONFIG_ARCH_BCMRING is not set |
177 | # CONFIG_ARCH_W90X900 is not set | ||
178 | 188 | ||
179 | # | 189 | # |
180 | # Marvell Kirkwood Implementations | 190 | # Marvell Kirkwood Implementations |
@@ -185,6 +195,7 @@ CONFIG_MACH_RD88F6281=y | |||
185 | CONFIG_MACH_MV88F6281GTW_GE=y | 195 | CONFIG_MACH_MV88F6281GTW_GE=y |
186 | CONFIG_MACH_SHEEVAPLUG=y | 196 | CONFIG_MACH_SHEEVAPLUG=y |
187 | CONFIG_MACH_TS219=y | 197 | CONFIG_MACH_TS219=y |
198 | CONFIG_MACH_OPENRD_BASE=y | ||
188 | CONFIG_PLAT_ORION=y | 199 | CONFIG_PLAT_ORION=y |
189 | 200 | ||
190 | # | 201 | # |
@@ -195,7 +206,7 @@ CONFIG_CPU_FEROCEON=y | |||
195 | # CONFIG_CPU_FEROCEON_OLD_ID is not set | 206 | # CONFIG_CPU_FEROCEON_OLD_ID is not set |
196 | CONFIG_CPU_32v5=y | 207 | CONFIG_CPU_32v5=y |
197 | CONFIG_CPU_ABRT_EV5T=y | 208 | CONFIG_CPU_ABRT_EV5T=y |
198 | CONFIG_CPU_PABRT_NOIFAR=y | 209 | CONFIG_CPU_PABRT_LEGACY=y |
199 | CONFIG_CPU_CACHE_VIVT=y | 210 | CONFIG_CPU_CACHE_VIVT=y |
200 | CONFIG_CPU_COPY_FEROCEON=y | 211 | CONFIG_CPU_COPY_FEROCEON=y |
201 | CONFIG_CPU_TLB_FEROCEON=y | 212 | CONFIG_CPU_TLB_FEROCEON=y |
@@ -211,6 +222,7 @@ CONFIG_ARM_THUMB=y | |||
211 | CONFIG_OUTER_CACHE=y | 222 | CONFIG_OUTER_CACHE=y |
212 | CONFIG_CACHE_FEROCEON_L2=y | 223 | CONFIG_CACHE_FEROCEON_L2=y |
213 | # CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set | 224 | # CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set |
225 | CONFIG_ARM_L1_CACHE_SHIFT=5 | ||
214 | 226 | ||
215 | # | 227 | # |
216 | # Bus support | 228 | # Bus support |
@@ -235,11 +247,12 @@ CONFIG_VMSPLIT_3G=y | |||
235 | # CONFIG_VMSPLIT_2G is not set | 247 | # CONFIG_VMSPLIT_2G is not set |
236 | # CONFIG_VMSPLIT_1G is not set | 248 | # CONFIG_VMSPLIT_1G is not set |
237 | CONFIG_PAGE_OFFSET=0xC0000000 | 249 | CONFIG_PAGE_OFFSET=0xC0000000 |
250 | # CONFIG_PREEMPT_NONE is not set | ||
251 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
238 | CONFIG_PREEMPT=y | 252 | CONFIG_PREEMPT=y |
239 | CONFIG_HZ=100 | 253 | CONFIG_HZ=100 |
240 | CONFIG_AEABI=y | 254 | CONFIG_AEABI=y |
241 | # CONFIG_OABI_COMPAT is not set | 255 | # CONFIG_OABI_COMPAT is not set |
242 | CONFIG_ARCH_FLATMEM_HAS_HOLES=y | ||
243 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | 256 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set |
244 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | 257 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set |
245 | # CONFIG_HIGHMEM is not set | 258 | # CONFIG_HIGHMEM is not set |
@@ -254,10 +267,12 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096 | |||
254 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 267 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
255 | CONFIG_ZONE_DMA_FLAG=0 | 268 | CONFIG_ZONE_DMA_FLAG=0 |
256 | CONFIG_VIRT_TO_BUS=y | 269 | CONFIG_VIRT_TO_BUS=y |
257 | CONFIG_UNEVICTABLE_LRU=y | ||
258 | CONFIG_HAVE_MLOCK=y | 270 | CONFIG_HAVE_MLOCK=y |
259 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | 271 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y |
272 | # CONFIG_KSM is not set | ||
273 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
260 | CONFIG_ALIGNMENT_TRAP=y | 274 | CONFIG_ALIGNMENT_TRAP=y |
275 | CONFIG_UACCESS_WITH_MEMCPY=y | ||
261 | 276 | ||
262 | # | 277 | # |
263 | # Boot options | 278 | # Boot options |
@@ -345,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
345 | # CONFIG_NETFILTER is not set | 360 | # CONFIG_NETFILTER is not set |
346 | # CONFIG_IP_DCCP is not set | 361 | # CONFIG_IP_DCCP is not set |
347 | # CONFIG_IP_SCTP is not set | 362 | # CONFIG_IP_SCTP is not set |
363 | # CONFIG_RDS is not set | ||
348 | # CONFIG_TIPC is not set | 364 | # CONFIG_TIPC is not set |
349 | # CONFIG_ATM is not set | 365 | # CONFIG_ATM is not set |
350 | # CONFIG_BRIDGE is not set | 366 | # CONFIG_BRIDGE is not set |
@@ -367,6 +383,7 @@ CONFIG_NET_DSA_MV88E6123_61_65=y | |||
367 | # CONFIG_ECONET is not set | 383 | # CONFIG_ECONET is not set |
368 | # CONFIG_WAN_ROUTER is not set | 384 | # CONFIG_WAN_ROUTER is not set |
369 | # CONFIG_PHONET is not set | 385 | # CONFIG_PHONET is not set |
386 | # CONFIG_IEEE802154 is not set | ||
370 | # CONFIG_NET_SCHED is not set | 387 | # CONFIG_NET_SCHED is not set |
371 | # CONFIG_DCB is not set | 388 | # CONFIG_DCB is not set |
372 | 389 | ||
@@ -383,17 +400,18 @@ CONFIG_NET_PKTGEN=m | |||
383 | # CONFIG_AF_RXRPC is not set | 400 | # CONFIG_AF_RXRPC is not set |
384 | CONFIG_WIRELESS=y | 401 | CONFIG_WIRELESS=y |
385 | CONFIG_CFG80211=y | 402 | CONFIG_CFG80211=y |
403 | # CONFIG_NL80211_TESTMODE is not set | ||
404 | # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set | ||
386 | # CONFIG_CFG80211_REG_DEBUG is not set | 405 | # CONFIG_CFG80211_REG_DEBUG is not set |
406 | CONFIG_CFG80211_DEFAULT_PS=y | ||
407 | CONFIG_CFG80211_DEFAULT_PS_VALUE=1 | ||
408 | # CONFIG_CFG80211_DEBUGFS is not set | ||
387 | CONFIG_WIRELESS_OLD_REGULATORY=y | 409 | CONFIG_WIRELESS_OLD_REGULATORY=y |
388 | CONFIG_WIRELESS_EXT=y | 410 | CONFIG_WIRELESS_EXT=y |
389 | CONFIG_WIRELESS_EXT_SYSFS=y | 411 | CONFIG_WIRELESS_EXT_SYSFS=y |
390 | CONFIG_LIB80211=y | 412 | CONFIG_LIB80211=y |
391 | # CONFIG_LIB80211_DEBUG is not set | 413 | # CONFIG_LIB80211_DEBUG is not set |
392 | CONFIG_MAC80211=y | 414 | CONFIG_MAC80211=y |
393 | |||
394 | # | ||
395 | # Rate control algorithm selection | ||
396 | # | ||
397 | CONFIG_MAC80211_RC_MINSTREL=y | 415 | CONFIG_MAC80211_RC_MINSTREL=y |
398 | # CONFIG_MAC80211_RC_DEFAULT_PID is not set | 416 | # CONFIG_MAC80211_RC_DEFAULT_PID is not set |
399 | CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y | 417 | CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y |
@@ -414,6 +432,7 @@ CONFIG_MAC80211_RC_DEFAULT="minstrel" | |||
414 | # Generic Driver Options | 432 | # Generic Driver Options |
415 | # | 433 | # |
416 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 434 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
435 | # CONFIG_DEVTMPFS is not set | ||
417 | CONFIG_STANDALONE=y | 436 | CONFIG_STANDALONE=y |
418 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 437 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
419 | CONFIG_FW_LOADER=y | 438 | CONFIG_FW_LOADER=y |
@@ -425,9 +444,9 @@ CONFIG_EXTRA_FIRMWARE="" | |||
425 | # CONFIG_CONNECTOR is not set | 444 | # CONFIG_CONNECTOR is not set |
426 | CONFIG_MTD=y | 445 | CONFIG_MTD=y |
427 | # CONFIG_MTD_DEBUG is not set | 446 | # CONFIG_MTD_DEBUG is not set |
447 | # CONFIG_MTD_TESTS is not set | ||
428 | # CONFIG_MTD_CONCAT is not set | 448 | # CONFIG_MTD_CONCAT is not set |
429 | CONFIG_MTD_PARTITIONS=y | 449 | CONFIG_MTD_PARTITIONS=y |
430 | # CONFIG_MTD_TESTS is not set | ||
431 | # CONFIG_MTD_REDBOOT_PARTS is not set | 450 | # CONFIG_MTD_REDBOOT_PARTS is not set |
432 | CONFIG_MTD_CMDLINE_PARTS=y | 451 | CONFIG_MTD_CMDLINE_PARTS=y |
433 | # CONFIG_MTD_AFS_PARTS is not set | 452 | # CONFIG_MTD_AFS_PARTS is not set |
@@ -494,6 +513,7 @@ CONFIG_MTD_PHYSMAP=y | |||
494 | # CONFIG_MTD_DATAFLASH is not set | 513 | # CONFIG_MTD_DATAFLASH is not set |
495 | CONFIG_MTD_M25P80=y | 514 | CONFIG_MTD_M25P80=y |
496 | CONFIG_M25PXX_USE_FAST_READ=y | 515 | CONFIG_M25PXX_USE_FAST_READ=y |
516 | # CONFIG_MTD_SST25L is not set | ||
497 | # CONFIG_MTD_SLRAM is not set | 517 | # CONFIG_MTD_SLRAM is not set |
498 | # CONFIG_MTD_PHRAM is not set | 518 | # CONFIG_MTD_PHRAM is not set |
499 | # CONFIG_MTD_MTDRAM is not set | 519 | # CONFIG_MTD_MTDRAM is not set |
@@ -543,6 +563,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
543 | # CONFIG_BLK_DEV_RAM is not set | 563 | # CONFIG_BLK_DEV_RAM is not set |
544 | # CONFIG_CDROM_PKTCDVD is not set | 564 | # CONFIG_CDROM_PKTCDVD is not set |
545 | # CONFIG_ATA_OVER_ETH is not set | 565 | # CONFIG_ATA_OVER_ETH is not set |
566 | # CONFIG_MG_DISK is not set | ||
546 | # CONFIG_MISC_DEVICES is not set | 567 | # CONFIG_MISC_DEVICES is not set |
547 | CONFIG_HAVE_IDE=y | 568 | CONFIG_HAVE_IDE=y |
548 | # CONFIG_IDE is not set | 569 | # CONFIG_IDE is not set |
@@ -567,10 +588,6 @@ CONFIG_BLK_DEV_SR=m | |||
567 | # CONFIG_BLK_DEV_SR_VENDOR is not set | 588 | # CONFIG_BLK_DEV_SR_VENDOR is not set |
568 | CONFIG_CHR_DEV_SG=m | 589 | CONFIG_CHR_DEV_SG=m |
569 | # CONFIG_CHR_DEV_SCH is not set | 590 | # CONFIG_CHR_DEV_SCH is not set |
570 | |||
571 | # | ||
572 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
573 | # | ||
574 | # CONFIG_SCSI_MULTI_LUN is not set | 591 | # CONFIG_SCSI_MULTI_LUN is not set |
575 | # CONFIG_SCSI_CONSTANTS is not set | 592 | # CONFIG_SCSI_CONSTANTS is not set |
576 | # CONFIG_SCSI_LOGGING is not set | 593 | # CONFIG_SCSI_LOGGING is not set |
@@ -587,6 +604,8 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
587 | # CONFIG_SCSI_SRP_ATTRS is not set | 604 | # CONFIG_SCSI_SRP_ATTRS is not set |
588 | CONFIG_SCSI_LOWLEVEL=y | 605 | CONFIG_SCSI_LOWLEVEL=y |
589 | # CONFIG_ISCSI_TCP is not set | 606 | # CONFIG_ISCSI_TCP is not set |
607 | # CONFIG_SCSI_BNX2_ISCSI is not set | ||
608 | # CONFIG_BE2ISCSI is not set | ||
590 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 609 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
591 | # CONFIG_SCSI_3W_9XXX is not set | 610 | # CONFIG_SCSI_3W_9XXX is not set |
592 | # CONFIG_SCSI_ACARD is not set | 611 | # CONFIG_SCSI_ACARD is not set |
@@ -595,6 +614,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
595 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 614 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
596 | # CONFIG_SCSI_AIC79XX is not set | 615 | # CONFIG_SCSI_AIC79XX is not set |
597 | # CONFIG_SCSI_AIC94XX is not set | 616 | # CONFIG_SCSI_AIC94XX is not set |
617 | # CONFIG_SCSI_MVSAS is not set | ||
598 | # CONFIG_SCSI_DPT_I2O is not set | 618 | # CONFIG_SCSI_DPT_I2O is not set |
599 | # CONFIG_SCSI_ADVANSYS is not set | 619 | # CONFIG_SCSI_ADVANSYS is not set |
600 | # CONFIG_SCSI_ARCMSR is not set | 620 | # CONFIG_SCSI_ARCMSR is not set |
@@ -611,7 +631,6 @@ CONFIG_SCSI_LOWLEVEL=y | |||
611 | # CONFIG_SCSI_IPS is not set | 631 | # CONFIG_SCSI_IPS is not set |
612 | # CONFIG_SCSI_INITIO is not set | 632 | # CONFIG_SCSI_INITIO is not set |
613 | # CONFIG_SCSI_INIA100 is not set | 633 | # CONFIG_SCSI_INIA100 is not set |
614 | # CONFIG_SCSI_MVSAS is not set | ||
615 | # CONFIG_SCSI_STEX is not set | 634 | # CONFIG_SCSI_STEX is not set |
616 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 635 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
617 | # CONFIG_SCSI_IPR is not set | 636 | # CONFIG_SCSI_IPR is not set |
@@ -623,11 +642,14 @@ CONFIG_SCSI_LOWLEVEL=y | |||
623 | # CONFIG_SCSI_DC390T is not set | 642 | # CONFIG_SCSI_DC390T is not set |
624 | # CONFIG_SCSI_NSP32 is not set | 643 | # CONFIG_SCSI_NSP32 is not set |
625 | # CONFIG_SCSI_DEBUG is not set | 644 | # CONFIG_SCSI_DEBUG is not set |
645 | # CONFIG_SCSI_PMCRAID is not set | ||
626 | # CONFIG_SCSI_SRP is not set | 646 | # CONFIG_SCSI_SRP is not set |
647 | # CONFIG_SCSI_BFA_FC is not set | ||
627 | # CONFIG_SCSI_DH is not set | 648 | # CONFIG_SCSI_DH is not set |
628 | # CONFIG_SCSI_OSD_INITIATOR is not set | 649 | # CONFIG_SCSI_OSD_INITIATOR is not set |
629 | CONFIG_ATA=y | 650 | CONFIG_ATA=y |
630 | # CONFIG_ATA_NONSTANDARD is not set | 651 | # CONFIG_ATA_NONSTANDARD is not set |
652 | CONFIG_ATA_VERBOSE_ERROR=y | ||
631 | CONFIG_SATA_PMP=y | 653 | CONFIG_SATA_PMP=y |
632 | CONFIG_SATA_AHCI=y | 654 | CONFIG_SATA_AHCI=y |
633 | # CONFIG_SATA_SIL24 is not set | 655 | # CONFIG_SATA_SIL24 is not set |
@@ -649,6 +671,7 @@ CONFIG_SATA_MV=y | |||
649 | # CONFIG_PATA_ALI is not set | 671 | # CONFIG_PATA_ALI is not set |
650 | # CONFIG_PATA_AMD is not set | 672 | # CONFIG_PATA_AMD is not set |
651 | # CONFIG_PATA_ARTOP is not set | 673 | # CONFIG_PATA_ARTOP is not set |
674 | # CONFIG_PATA_ATP867X is not set | ||
652 | # CONFIG_PATA_ATIIXP is not set | 675 | # CONFIG_PATA_ATIIXP is not set |
653 | # CONFIG_PATA_CMD640_PCI is not set | 676 | # CONFIG_PATA_CMD640_PCI is not set |
654 | # CONFIG_PATA_CMD64X is not set | 677 | # CONFIG_PATA_CMD64X is not set |
@@ -676,6 +699,7 @@ CONFIG_SATA_MV=y | |||
676 | # CONFIG_PATA_OPTIDMA is not set | 699 | # CONFIG_PATA_OPTIDMA is not set |
677 | # CONFIG_PATA_PDC_OLD is not set | 700 | # CONFIG_PATA_PDC_OLD is not set |
678 | # CONFIG_PATA_RADISYS is not set | 701 | # CONFIG_PATA_RADISYS is not set |
702 | # CONFIG_PATA_RDC is not set | ||
679 | # CONFIG_PATA_RZ1000 is not set | 703 | # CONFIG_PATA_RZ1000 is not set |
680 | # CONFIG_PATA_SC1200 is not set | 704 | # CONFIG_PATA_SC1200 is not set |
681 | # CONFIG_PATA_SERVERWORKS is not set | 705 | # CONFIG_PATA_SERVERWORKS is not set |
@@ -693,13 +717,16 @@ CONFIG_SATA_MV=y | |||
693 | # | 717 | # |
694 | 718 | ||
695 | # | 719 | # |
696 | # Enable only one of the two stacks, unless you know what you are doing | 720 | # You can enable one or both FireWire driver stacks. |
721 | # | ||
722 | |||
723 | # | ||
724 | # See the help texts for more information. | ||
697 | # | 725 | # |
698 | # CONFIG_FIREWIRE is not set | 726 | # CONFIG_FIREWIRE is not set |
699 | # CONFIG_IEEE1394 is not set | 727 | # CONFIG_IEEE1394 is not set |
700 | # CONFIG_I2O is not set | 728 | # CONFIG_I2O is not set |
701 | CONFIG_NETDEVICES=y | 729 | CONFIG_NETDEVICES=y |
702 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
703 | # CONFIG_DUMMY is not set | 730 | # CONFIG_DUMMY is not set |
704 | # CONFIG_BONDING is not set | 731 | # CONFIG_BONDING is not set |
705 | # CONFIG_MACVLAN is not set | 732 | # CONFIG_MACVLAN is not set |
@@ -768,6 +795,9 @@ CONFIG_NET_PCI=y | |||
768 | # CONFIG_SMSC9420 is not set | 795 | # CONFIG_SMSC9420 is not set |
769 | # CONFIG_SUNDANCE is not set | 796 | # CONFIG_SUNDANCE is not set |
770 | # CONFIG_TLAN is not set | 797 | # CONFIG_TLAN is not set |
798 | # CONFIG_KS8842 is not set | ||
799 | # CONFIG_KS8851 is not set | ||
800 | # CONFIG_KS8851_MLL is not set | ||
771 | # CONFIG_VIA_RHINE is not set | 801 | # CONFIG_VIA_RHINE is not set |
772 | # CONFIG_SC92031 is not set | 802 | # CONFIG_SC92031 is not set |
773 | # CONFIG_ATL2 is not set | 803 | # CONFIG_ATL2 is not set |
@@ -789,6 +819,7 @@ CONFIG_NETDEV_1000=y | |||
789 | # CONFIG_VIA_VELOCITY is not set | 819 | # CONFIG_VIA_VELOCITY is not set |
790 | # CONFIG_TIGON3 is not set | 820 | # CONFIG_TIGON3 is not set |
791 | # CONFIG_BNX2 is not set | 821 | # CONFIG_BNX2 is not set |
822 | # CONFIG_CNIC is not set | ||
792 | CONFIG_MV643XX_ETH=y | 823 | CONFIG_MV643XX_ETH=y |
793 | # CONFIG_QLA3XXX is not set | 824 | # CONFIG_QLA3XXX is not set |
794 | # CONFIG_ATL1 is not set | 825 | # CONFIG_ATL1 is not set |
@@ -797,10 +828,7 @@ CONFIG_MV643XX_ETH=y | |||
797 | # CONFIG_JME is not set | 828 | # CONFIG_JME is not set |
798 | # CONFIG_NETDEV_10000 is not set | 829 | # CONFIG_NETDEV_10000 is not set |
799 | # CONFIG_TR is not set | 830 | # CONFIG_TR is not set |
800 | 831 | CONFIG_WLAN=y | |
801 | # | ||
802 | # Wireless LAN | ||
803 | # | ||
804 | # CONFIG_WLAN_PRE80211 is not set | 832 | # CONFIG_WLAN_PRE80211 is not set |
805 | CONFIG_WLAN_80211=y | 833 | CONFIG_WLAN_80211=y |
806 | CONFIG_LIBERTAS=y | 834 | CONFIG_LIBERTAS=y |
@@ -820,9 +848,7 @@ CONFIG_LIBERTAS_SDIO=y | |||
820 | # CONFIG_MAC80211_HWSIM is not set | 848 | # CONFIG_MAC80211_HWSIM is not set |
821 | # CONFIG_MWL8K is not set | 849 | # CONFIG_MWL8K is not set |
822 | # CONFIG_P54_COMMON is not set | 850 | # CONFIG_P54_COMMON is not set |
823 | # CONFIG_ATH5K is not set | 851 | # CONFIG_ATH_COMMON is not set |
824 | # CONFIG_ATH9K is not set | ||
825 | # CONFIG_AR9170_USB is not set | ||
826 | # CONFIG_IPW2100 is not set | 852 | # CONFIG_IPW2100 is not set |
827 | # CONFIG_IPW2200 is not set | 853 | # CONFIG_IPW2200 is not set |
828 | # CONFIG_IWLWIFI is not set | 854 | # CONFIG_IWLWIFI is not set |
@@ -832,6 +858,8 @@ CONFIG_LIBERTAS_SDIO=y | |||
832 | # CONFIG_ZD1211RW is not set | 858 | # CONFIG_ZD1211RW is not set |
833 | # CONFIG_RT2X00 is not set | 859 | # CONFIG_RT2X00 is not set |
834 | # CONFIG_HERMES is not set | 860 | # CONFIG_HERMES is not set |
861 | # CONFIG_WL12XX is not set | ||
862 | # CONFIG_IWM is not set | ||
835 | 863 | ||
836 | # | 864 | # |
837 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 865 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -855,6 +883,7 @@ CONFIG_LIBERTAS_SDIO=y | |||
855 | # CONFIG_NETPOLL is not set | 883 | # CONFIG_NETPOLL is not set |
856 | # CONFIG_NET_POLL_CONTROLLER is not set | 884 | # CONFIG_NET_POLL_CONTROLLER is not set |
857 | # CONFIG_ISDN is not set | 885 | # CONFIG_ISDN is not set |
886 | # CONFIG_PHONE is not set | ||
858 | 887 | ||
859 | # | 888 | # |
860 | # Input device support | 889 | # Input device support |
@@ -878,13 +907,19 @@ CONFIG_INPUT_EVDEV=y | |||
878 | # Input Device Drivers | 907 | # Input Device Drivers |
879 | # | 908 | # |
880 | CONFIG_INPUT_KEYBOARD=y | 909 | CONFIG_INPUT_KEYBOARD=y |
910 | # CONFIG_KEYBOARD_ADP5588 is not set | ||
881 | CONFIG_KEYBOARD_ATKBD=y | 911 | CONFIG_KEYBOARD_ATKBD=y |
882 | # CONFIG_KEYBOARD_SUNKBD is not set | 912 | # CONFIG_QT2160 is not set |
883 | # CONFIG_KEYBOARD_LKKBD is not set | 913 | # CONFIG_KEYBOARD_LKKBD is not set |
884 | # CONFIG_KEYBOARD_XTKBD is not set | 914 | CONFIG_KEYBOARD_GPIO=y |
915 | # CONFIG_KEYBOARD_MATRIX is not set | ||
916 | # CONFIG_KEYBOARD_LM8323 is not set | ||
917 | # CONFIG_KEYBOARD_MAX7359 is not set | ||
885 | # CONFIG_KEYBOARD_NEWTON is not set | 918 | # CONFIG_KEYBOARD_NEWTON is not set |
919 | # CONFIG_KEYBOARD_OPENCORES is not set | ||
886 | # CONFIG_KEYBOARD_STOWAWAY is not set | 920 | # CONFIG_KEYBOARD_STOWAWAY is not set |
887 | CONFIG_KEYBOARD_GPIO=y | 921 | # CONFIG_KEYBOARD_SUNKBD is not set |
922 | # CONFIG_KEYBOARD_XTKBD is not set | ||
888 | # CONFIG_INPUT_MOUSE is not set | 923 | # CONFIG_INPUT_MOUSE is not set |
889 | # CONFIG_INPUT_JOYSTICK is not set | 924 | # CONFIG_INPUT_JOYSTICK is not set |
890 | # CONFIG_INPUT_TABLET is not set | 925 | # CONFIG_INPUT_TABLET is not set |
@@ -943,6 +978,7 @@ CONFIG_LEGACY_PTY_COUNT=16 | |||
943 | CONFIG_DEVPORT=y | 978 | CONFIG_DEVPORT=y |
944 | CONFIG_I2C=y | 979 | CONFIG_I2C=y |
945 | CONFIG_I2C_BOARDINFO=y | 980 | CONFIG_I2C_BOARDINFO=y |
981 | # CONFIG_I2C_COMPAT is not set | ||
946 | CONFIG_I2C_CHARDEV=y | 982 | CONFIG_I2C_CHARDEV=y |
947 | CONFIG_I2C_HELPER_AUTO=y | 983 | CONFIG_I2C_HELPER_AUTO=y |
948 | 984 | ||
@@ -998,10 +1034,6 @@ CONFIG_I2C_MV64XXX=y | |||
998 | # Miscellaneous I2C Chip support | 1034 | # Miscellaneous I2C Chip support |
999 | # | 1035 | # |
1000 | # CONFIG_DS1682 is not set | 1036 | # CONFIG_DS1682 is not set |
1001 | # CONFIG_SENSORS_PCF8574 is not set | ||
1002 | # CONFIG_PCF8575 is not set | ||
1003 | # CONFIG_SENSORS_PCA9539 is not set | ||
1004 | # CONFIG_SENSORS_MAX6875 is not set | ||
1005 | # CONFIG_SENSORS_TSL2550 is not set | 1037 | # CONFIG_SENSORS_TSL2550 is not set |
1006 | # CONFIG_I2C_DEBUG_CORE is not set | 1038 | # CONFIG_I2C_DEBUG_CORE is not set |
1007 | # CONFIG_I2C_DEBUG_ALGO is not set | 1039 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1023,11 +1055,47 @@ CONFIG_SPI_ORION=y | |||
1023 | # | 1055 | # |
1024 | # CONFIG_SPI_SPIDEV is not set | 1056 | # CONFIG_SPI_SPIDEV is not set |
1025 | # CONFIG_SPI_TLE62X0 is not set | 1057 | # CONFIG_SPI_TLE62X0 is not set |
1058 | |||
1059 | # | ||
1060 | # PPS support | ||
1061 | # | ||
1062 | # CONFIG_PPS is not set | ||
1063 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
1064 | CONFIG_GPIOLIB=y | ||
1065 | # CONFIG_DEBUG_GPIO is not set | ||
1066 | CONFIG_GPIO_SYSFS=y | ||
1067 | |||
1068 | # | ||
1069 | # Memory mapped GPIO expanders: | ||
1070 | # | ||
1071 | |||
1072 | # | ||
1073 | # I2C GPIO expanders: | ||
1074 | # | ||
1075 | # CONFIG_GPIO_MAX732X is not set | ||
1076 | # CONFIG_GPIO_PCA953X is not set | ||
1077 | # CONFIG_GPIO_PCF857X is not set | ||
1078 | |||
1079 | # | ||
1080 | # PCI GPIO expanders: | ||
1081 | # | ||
1082 | # CONFIG_GPIO_BT8XX is not set | ||
1083 | # CONFIG_GPIO_LANGWELL is not set | ||
1084 | |||
1085 | # | ||
1086 | # SPI GPIO expanders: | ||
1087 | # | ||
1088 | # CONFIG_GPIO_MAX7301 is not set | ||
1089 | # CONFIG_GPIO_MCP23S08 is not set | ||
1090 | # CONFIG_GPIO_MC33880 is not set | ||
1091 | |||
1092 | # | ||
1093 | # AC97 GPIO expanders: | ||
1094 | # | ||
1026 | # CONFIG_W1 is not set | 1095 | # CONFIG_W1 is not set |
1027 | # CONFIG_POWER_SUPPLY is not set | 1096 | # CONFIG_POWER_SUPPLY is not set |
1028 | # CONFIG_HWMON is not set | 1097 | # CONFIG_HWMON is not set |
1029 | # CONFIG_THERMAL is not set | 1098 | # CONFIG_THERMAL is not set |
1030 | # CONFIG_THERMAL_HWMON is not set | ||
1031 | # CONFIG_WATCHDOG is not set | 1099 | # CONFIG_WATCHDOG is not set |
1032 | CONFIG_SSB_POSSIBLE=y | 1100 | CONFIG_SSB_POSSIBLE=y |
1033 | 1101 | ||
@@ -1041,33 +1109,28 @@ CONFIG_SSB_POSSIBLE=y | |||
1041 | # | 1109 | # |
1042 | # CONFIG_MFD_CORE is not set | 1110 | # CONFIG_MFD_CORE is not set |
1043 | # CONFIG_MFD_SM501 is not set | 1111 | # CONFIG_MFD_SM501 is not set |
1112 | # CONFIG_MFD_ASIC3 is not set | ||
1113 | # CONFIG_HTC_EGPIO is not set | ||
1044 | # CONFIG_HTC_PASIC3 is not set | 1114 | # CONFIG_HTC_PASIC3 is not set |
1115 | # CONFIG_TPS65010 is not set | ||
1045 | # CONFIG_TWL4030_CORE is not set | 1116 | # CONFIG_TWL4030_CORE is not set |
1046 | # CONFIG_MFD_TMIO is not set | 1117 | # CONFIG_MFD_TMIO is not set |
1118 | # CONFIG_MFD_TC6393XB is not set | ||
1047 | # CONFIG_PMIC_DA903X is not set | 1119 | # CONFIG_PMIC_DA903X is not set |
1048 | # CONFIG_MFD_WM8400 is not set | 1120 | # CONFIG_MFD_WM8400 is not set |
1121 | # CONFIG_MFD_WM831X is not set | ||
1049 | # CONFIG_MFD_WM8350_I2C is not set | 1122 | # CONFIG_MFD_WM8350_I2C is not set |
1050 | # CONFIG_MFD_PCF50633 is not set | 1123 | # CONFIG_MFD_PCF50633 is not set |
1051 | 1124 | # CONFIG_MFD_MC13783 is not set | |
1052 | # | 1125 | # CONFIG_AB3100_CORE is not set |
1053 | # Multimedia devices | 1126 | # CONFIG_EZX_PCAP is not set |
1054 | # | 1127 | # CONFIG_REGULATOR is not set |
1055 | 1128 | # CONFIG_MEDIA_SUPPORT is not set | |
1056 | # | ||
1057 | # Multimedia core support | ||
1058 | # | ||
1059 | # CONFIG_VIDEO_DEV is not set | ||
1060 | # CONFIG_DVB_CORE is not set | ||
1061 | # CONFIG_VIDEO_MEDIA is not set | ||
1062 | |||
1063 | # | ||
1064 | # Multimedia drivers | ||
1065 | # | ||
1066 | # CONFIG_DAB is not set | ||
1067 | 1129 | ||
1068 | # | 1130 | # |
1069 | # Graphics support | 1131 | # Graphics support |
1070 | # | 1132 | # |
1133 | CONFIG_VGA_ARB=y | ||
1071 | # CONFIG_DRM is not set | 1134 | # CONFIG_DRM is not set |
1072 | # CONFIG_VGASTATE is not set | 1135 | # CONFIG_VGASTATE is not set |
1073 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 1136 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -1087,7 +1150,6 @@ CONFIG_DUMMY_CONSOLE=y | |||
1087 | # CONFIG_SOUND is not set | 1150 | # CONFIG_SOUND is not set |
1088 | CONFIG_HID_SUPPORT=y | 1151 | CONFIG_HID_SUPPORT=y |
1089 | CONFIG_HID=y | 1152 | CONFIG_HID=y |
1090 | # CONFIG_HID_DEBUG is not set | ||
1091 | # CONFIG_HIDRAW is not set | 1153 | # CONFIG_HIDRAW is not set |
1092 | 1154 | ||
1093 | # | 1155 | # |
@@ -1106,10 +1168,12 @@ CONFIG_HID_BELKIN=y | |||
1106 | CONFIG_HID_CHERRY=y | 1168 | CONFIG_HID_CHERRY=y |
1107 | CONFIG_HID_CHICONY=y | 1169 | CONFIG_HID_CHICONY=y |
1108 | CONFIG_HID_CYPRESS=y | 1170 | CONFIG_HID_CYPRESS=y |
1171 | CONFIG_HID_DRAGONRISE=y | ||
1109 | # CONFIG_DRAGONRISE_FF is not set | 1172 | # CONFIG_DRAGONRISE_FF is not set |
1110 | CONFIG_HID_EZKEY=y | 1173 | CONFIG_HID_EZKEY=y |
1111 | CONFIG_HID_KYE=y | 1174 | CONFIG_HID_KYE=y |
1112 | CONFIG_HID_GYRATION=y | 1175 | CONFIG_HID_GYRATION=y |
1176 | CONFIG_HID_TWINHAN=y | ||
1113 | CONFIG_HID_KENSINGTON=y | 1177 | CONFIG_HID_KENSINGTON=y |
1114 | CONFIG_HID_LOGITECH=y | 1178 | CONFIG_HID_LOGITECH=y |
1115 | # CONFIG_LOGITECH_FF is not set | 1179 | # CONFIG_LOGITECH_FF is not set |
@@ -1123,9 +1187,14 @@ CONFIG_HID_PETALYNX=y | |||
1123 | CONFIG_HID_SAMSUNG=y | 1187 | CONFIG_HID_SAMSUNG=y |
1124 | CONFIG_HID_SONY=y | 1188 | CONFIG_HID_SONY=y |
1125 | CONFIG_HID_SUNPLUS=y | 1189 | CONFIG_HID_SUNPLUS=y |
1190 | CONFIG_HID_GREENASIA=y | ||
1126 | # CONFIG_GREENASIA_FF is not set | 1191 | # CONFIG_GREENASIA_FF is not set |
1192 | CONFIG_HID_SMARTJOYPLUS=y | ||
1193 | # CONFIG_SMARTJOYPLUS_FF is not set | ||
1127 | CONFIG_HID_TOPSEED=y | 1194 | CONFIG_HID_TOPSEED=y |
1195 | CONFIG_HID_THRUSTMASTER=y | ||
1128 | # CONFIG_THRUSTMASTER_FF is not set | 1196 | # CONFIG_THRUSTMASTER_FF is not set |
1197 | CONFIG_HID_ZEROPLUS=y | ||
1129 | # CONFIG_ZEROPLUS_FF is not set | 1198 | # CONFIG_ZEROPLUS_FF is not set |
1130 | CONFIG_USB_SUPPORT=y | 1199 | CONFIG_USB_SUPPORT=y |
1131 | CONFIG_USB_ARCH_HAS_HCD=y | 1200 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -1150,18 +1219,21 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1150 | # USB Host Controller Drivers | 1219 | # USB Host Controller Drivers |
1151 | # | 1220 | # |
1152 | # CONFIG_USB_C67X00_HCD is not set | 1221 | # CONFIG_USB_C67X00_HCD is not set |
1222 | # CONFIG_USB_XHCI_HCD is not set | ||
1153 | CONFIG_USB_EHCI_HCD=y | 1223 | CONFIG_USB_EHCI_HCD=y |
1154 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1224 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1155 | CONFIG_USB_EHCI_TT_NEWSCHED=y | 1225 | CONFIG_USB_EHCI_TT_NEWSCHED=y |
1156 | # CONFIG_USB_OXU210HP_HCD is not set | 1226 | # CONFIG_USB_OXU210HP_HCD is not set |
1157 | # CONFIG_USB_ISP116X_HCD is not set | 1227 | # CONFIG_USB_ISP116X_HCD is not set |
1158 | # CONFIG_USB_ISP1760_HCD is not set | 1228 | # CONFIG_USB_ISP1760_HCD is not set |
1229 | # CONFIG_USB_ISP1362_HCD is not set | ||
1159 | # CONFIG_USB_OHCI_HCD is not set | 1230 | # CONFIG_USB_OHCI_HCD is not set |
1160 | # CONFIG_USB_UHCI_HCD is not set | 1231 | # CONFIG_USB_UHCI_HCD is not set |
1161 | # CONFIG_USB_SL811_HCD is not set | 1232 | # CONFIG_USB_SL811_HCD is not set |
1162 | # CONFIG_USB_R8A66597_HCD is not set | 1233 | # CONFIG_USB_R8A66597_HCD is not set |
1163 | # CONFIG_USB_WHCI_HCD is not set | 1234 | # CONFIG_USB_WHCI_HCD is not set |
1164 | # CONFIG_USB_HWA_HCD is not set | 1235 | # CONFIG_USB_HWA_HCD is not set |
1236 | # CONFIG_USB_MUSB_HDRC is not set | ||
1165 | 1237 | ||
1166 | # | 1238 | # |
1167 | # USB Device Class drivers | 1239 | # USB Device Class drivers |
@@ -1252,11 +1324,14 @@ CONFIG_SDIO_UART=y | |||
1252 | # MMC/SD/SDIO Host Controller Drivers | 1324 | # MMC/SD/SDIO Host Controller Drivers |
1253 | # | 1325 | # |
1254 | # CONFIG_MMC_SDHCI is not set | 1326 | # CONFIG_MMC_SDHCI is not set |
1327 | # CONFIG_MMC_AT91 is not set | ||
1328 | # CONFIG_MMC_ATMELMCI is not set | ||
1255 | # CONFIG_MMC_TIFM_SD is not set | 1329 | # CONFIG_MMC_TIFM_SD is not set |
1256 | CONFIG_MMC_MVSDIO=y | 1330 | CONFIG_MMC_MVSDIO=y |
1257 | # CONFIG_MMC_SPI is not set | 1331 | # CONFIG_MMC_SPI is not set |
1332 | # CONFIG_MMC_CB710 is not set | ||
1333 | # CONFIG_MMC_VIA_SDMMC is not set | ||
1258 | # CONFIG_MEMSTICK is not set | 1334 | # CONFIG_MEMSTICK is not set |
1259 | # CONFIG_ACCESSIBILITY is not set | ||
1260 | CONFIG_NEW_LEDS=y | 1335 | CONFIG_NEW_LEDS=y |
1261 | CONFIG_LEDS_CLASS=y | 1336 | CONFIG_LEDS_CLASS=y |
1262 | 1337 | ||
@@ -1266,7 +1341,7 @@ CONFIG_LEDS_CLASS=y | |||
1266 | # CONFIG_LEDS_PCA9532 is not set | 1341 | # CONFIG_LEDS_PCA9532 is not set |
1267 | CONFIG_LEDS_GPIO=y | 1342 | CONFIG_LEDS_GPIO=y |
1268 | CONFIG_LEDS_GPIO_PLATFORM=y | 1343 | CONFIG_LEDS_GPIO_PLATFORM=y |
1269 | # CONFIG_LEDS_LP5521 is not set | 1344 | # CONFIG_LEDS_LP3944 is not set |
1270 | # CONFIG_LEDS_PCA955X is not set | 1345 | # CONFIG_LEDS_PCA955X is not set |
1271 | # CONFIG_LEDS_DAC124S085 is not set | 1346 | # CONFIG_LEDS_DAC124S085 is not set |
1272 | # CONFIG_LEDS_BD2802 is not set | 1347 | # CONFIG_LEDS_BD2802 is not set |
@@ -1278,11 +1353,14 @@ CONFIG_LEDS_TRIGGERS=y | |||
1278 | CONFIG_LEDS_TRIGGER_TIMER=y | 1353 | CONFIG_LEDS_TRIGGER_TIMER=y |
1279 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | 1354 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y |
1280 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set | 1355 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set |
1356 | # CONFIG_LEDS_TRIGGER_GPIO is not set | ||
1281 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | 1357 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y |
1282 | 1358 | ||
1283 | # | 1359 | # |
1284 | # iptables trigger is under Netfilter config (LED target) | 1360 | # iptables trigger is under Netfilter config (LED target) |
1285 | # | 1361 | # |
1362 | # CONFIG_ACCESSIBILITY is not set | ||
1363 | # CONFIG_INFINIBAND is not set | ||
1286 | CONFIG_RTC_LIB=y | 1364 | CONFIG_RTC_LIB=y |
1287 | CONFIG_RTC_CLASS=y | 1365 | CONFIG_RTC_CLASS=y |
1288 | CONFIG_RTC_HCTOSYS=y | 1366 | CONFIG_RTC_HCTOSYS=y |
@@ -1314,6 +1392,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1314 | CONFIG_RTC_DRV_S35390A=y | 1392 | CONFIG_RTC_DRV_S35390A=y |
1315 | # CONFIG_RTC_DRV_FM3130 is not set | 1393 | # CONFIG_RTC_DRV_FM3130 is not set |
1316 | # CONFIG_RTC_DRV_RX8581 is not set | 1394 | # CONFIG_RTC_DRV_RX8581 is not set |
1395 | # CONFIG_RTC_DRV_RX8025 is not set | ||
1317 | 1396 | ||
1318 | # | 1397 | # |
1319 | # SPI RTC drivers | 1398 | # SPI RTC drivers |
@@ -1325,6 +1404,7 @@ CONFIG_RTC_DRV_S35390A=y | |||
1325 | # CONFIG_RTC_DRV_R9701 is not set | 1404 | # CONFIG_RTC_DRV_R9701 is not set |
1326 | # CONFIG_RTC_DRV_RS5C348 is not set | 1405 | # CONFIG_RTC_DRV_RS5C348 is not set |
1327 | # CONFIG_RTC_DRV_DS3234 is not set | 1406 | # CONFIG_RTC_DRV_DS3234 is not set |
1407 | # CONFIG_RTC_DRV_PCF2123 is not set | ||
1328 | 1408 | ||
1329 | # | 1409 | # |
1330 | # Platform RTC drivers | 1410 | # Platform RTC drivers |
@@ -1360,8 +1440,11 @@ CONFIG_DMA_ENGINE=y | |||
1360 | # CONFIG_ASYNC_TX_DMA is not set | 1440 | # CONFIG_ASYNC_TX_DMA is not set |
1361 | # CONFIG_DMATEST is not set | 1441 | # CONFIG_DMATEST is not set |
1362 | # CONFIG_AUXDISPLAY is not set | 1442 | # CONFIG_AUXDISPLAY is not set |
1363 | # CONFIG_REGULATOR is not set | ||
1364 | # CONFIG_UIO is not set | 1443 | # CONFIG_UIO is not set |
1444 | |||
1445 | # | ||
1446 | # TI VLYNQ | ||
1447 | # | ||
1365 | # CONFIG_STAGING is not set | 1448 | # CONFIG_STAGING is not set |
1366 | 1449 | ||
1367 | # | 1450 | # |
@@ -1379,10 +1462,13 @@ CONFIG_JBD=y | |||
1379 | # CONFIG_REISERFS_FS is not set | 1462 | # CONFIG_REISERFS_FS is not set |
1380 | # CONFIG_JFS_FS is not set | 1463 | # CONFIG_JFS_FS is not set |
1381 | # CONFIG_FS_POSIX_ACL is not set | 1464 | # CONFIG_FS_POSIX_ACL is not set |
1382 | CONFIG_FILE_LOCKING=y | ||
1383 | # CONFIG_XFS_FS is not set | 1465 | # CONFIG_XFS_FS is not set |
1466 | # CONFIG_GFS2_FS is not set | ||
1384 | # CONFIG_OCFS2_FS is not set | 1467 | # CONFIG_OCFS2_FS is not set |
1385 | # CONFIG_BTRFS_FS is not set | 1468 | # CONFIG_BTRFS_FS is not set |
1469 | # CONFIG_NILFS2_FS is not set | ||
1470 | CONFIG_FILE_LOCKING=y | ||
1471 | CONFIG_FSNOTIFY=y | ||
1386 | CONFIG_DNOTIFY=y | 1472 | CONFIG_DNOTIFY=y |
1387 | CONFIG_INOTIFY=y | 1473 | CONFIG_INOTIFY=y |
1388 | CONFIG_INOTIFY_USER=y | 1474 | CONFIG_INOTIFY_USER=y |
@@ -1455,7 +1541,6 @@ CONFIG_CRAMFS=y | |||
1455 | # CONFIG_ROMFS_FS is not set | 1541 | # CONFIG_ROMFS_FS is not set |
1456 | # CONFIG_SYSV_FS is not set | 1542 | # CONFIG_SYSV_FS is not set |
1457 | # CONFIG_UFS_FS is not set | 1543 | # CONFIG_UFS_FS is not set |
1458 | # CONFIG_NILFS2_FS is not set | ||
1459 | CONFIG_NETWORK_FILESYSTEMS=y | 1544 | CONFIG_NETWORK_FILESYSTEMS=y |
1460 | CONFIG_NFS_FS=y | 1545 | CONFIG_NFS_FS=y |
1461 | CONFIG_NFS_V3=y | 1546 | CONFIG_NFS_V3=y |
@@ -1530,6 +1615,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1530 | CONFIG_ENABLE_MUST_CHECK=y | 1615 | CONFIG_ENABLE_MUST_CHECK=y |
1531 | CONFIG_FRAME_WARN=1024 | 1616 | CONFIG_FRAME_WARN=1024 |
1532 | CONFIG_MAGIC_SYSRQ=y | 1617 | CONFIG_MAGIC_SYSRQ=y |
1618 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1533 | # CONFIG_UNUSED_SYMBOLS is not set | 1619 | # CONFIG_UNUSED_SYMBOLS is not set |
1534 | CONFIG_DEBUG_FS=y | 1620 | CONFIG_DEBUG_FS=y |
1535 | # CONFIG_HEADERS_CHECK is not set | 1621 | # CONFIG_HEADERS_CHECK is not set |
@@ -1547,6 +1633,7 @@ CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | |||
1547 | # CONFIG_DEBUG_OBJECTS is not set | 1633 | # CONFIG_DEBUG_OBJECTS is not set |
1548 | # CONFIG_SLUB_DEBUG_ON is not set | 1634 | # CONFIG_SLUB_DEBUG_ON is not set |
1549 | # CONFIG_SLUB_STATS is not set | 1635 | # CONFIG_SLUB_STATS is not set |
1636 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1550 | # CONFIG_DEBUG_PREEMPT is not set | 1637 | # CONFIG_DEBUG_PREEMPT is not set |
1551 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1638 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1552 | # CONFIG_RT_MUTEX_TESTER is not set | 1639 | # CONFIG_RT_MUTEX_TESTER is not set |
@@ -1567,12 +1654,14 @@ CONFIG_DEBUG_MEMORY_INIT=y | |||
1567 | # CONFIG_DEBUG_LIST is not set | 1654 | # CONFIG_DEBUG_LIST is not set |
1568 | # CONFIG_DEBUG_SG is not set | 1655 | # CONFIG_DEBUG_SG is not set |
1569 | # CONFIG_DEBUG_NOTIFIERS is not set | 1656 | # CONFIG_DEBUG_NOTIFIERS is not set |
1657 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
1570 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1658 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1571 | # CONFIG_RCU_TORTURE_TEST is not set | 1659 | # CONFIG_RCU_TORTURE_TEST is not set |
1572 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1660 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1573 | # CONFIG_KPROBES_SANITY_TEST is not set | 1661 | # CONFIG_KPROBES_SANITY_TEST is not set |
1574 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1662 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1575 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1663 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1664 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1576 | # CONFIG_LKDTM is not set | 1665 | # CONFIG_LKDTM is not set |
1577 | # CONFIG_FAULT_INJECTION is not set | 1666 | # CONFIG_FAULT_INJECTION is not set |
1578 | # CONFIG_LATENCYTOP is not set | 1667 | # CONFIG_LATENCYTOP is not set |
@@ -1581,25 +1670,12 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y | |||
1581 | CONFIG_NOP_TRACER=y | 1670 | CONFIG_NOP_TRACER=y |
1582 | CONFIG_HAVE_FUNCTION_TRACER=y | 1671 | CONFIG_HAVE_FUNCTION_TRACER=y |
1583 | CONFIG_RING_BUFFER=y | 1672 | CONFIG_RING_BUFFER=y |
1673 | CONFIG_EVENT_TRACING=y | ||
1674 | CONFIG_CONTEXT_SWITCH_TRACER=y | ||
1675 | CONFIG_RING_BUFFER_ALLOW_SWAP=y | ||
1584 | CONFIG_TRACING=y | 1676 | CONFIG_TRACING=y |
1585 | CONFIG_TRACING_SUPPORT=y | 1677 | CONFIG_TRACING_SUPPORT=y |
1586 | 1678 | # CONFIG_FTRACE is not set | |
1587 | # | ||
1588 | # Tracers | ||
1589 | # | ||
1590 | # CONFIG_FUNCTION_TRACER is not set | ||
1591 | # CONFIG_IRQSOFF_TRACER is not set | ||
1592 | # CONFIG_PREEMPT_TRACER is not set | ||
1593 | # CONFIG_SCHED_TRACER is not set | ||
1594 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1595 | # CONFIG_EVENT_TRACER is not set | ||
1596 | # CONFIG_BOOT_TRACER is not set | ||
1597 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
1598 | # CONFIG_STACK_TRACER is not set | ||
1599 | # CONFIG_KMEMTRACE is not set | ||
1600 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1601 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1602 | # CONFIG_FTRACE_STARTUP_TEST is not set | ||
1603 | # CONFIG_DYNAMIC_DEBUG is not set | 1679 | # CONFIG_DYNAMIC_DEBUG is not set |
1604 | # CONFIG_SAMPLES is not set | 1680 | # CONFIG_SAMPLES is not set |
1605 | CONFIG_HAVE_ARCH_KGDB=y | 1681 | CONFIG_HAVE_ARCH_KGDB=y |
@@ -1623,7 +1699,6 @@ CONFIG_CRYPTO=y | |||
1623 | # | 1699 | # |
1624 | # Crypto core or helper | 1700 | # Crypto core or helper |
1625 | # | 1701 | # |
1626 | # CONFIG_CRYPTO_FIPS is not set | ||
1627 | CONFIG_CRYPTO_ALGAPI=y | 1702 | CONFIG_CRYPTO_ALGAPI=y |
1628 | CONFIG_CRYPTO_ALGAPI2=y | 1703 | CONFIG_CRYPTO_ALGAPI2=y |
1629 | CONFIG_CRYPTO_AEAD2=y | 1704 | CONFIG_CRYPTO_AEAD2=y |
@@ -1665,11 +1740,13 @@ CONFIG_CRYPTO_PCBC=m | |||
1665 | # | 1740 | # |
1666 | # CONFIG_CRYPTO_HMAC is not set | 1741 | # CONFIG_CRYPTO_HMAC is not set |
1667 | # CONFIG_CRYPTO_XCBC is not set | 1742 | # CONFIG_CRYPTO_XCBC is not set |
1743 | # CONFIG_CRYPTO_VMAC is not set | ||
1668 | 1744 | ||
1669 | # | 1745 | # |
1670 | # Digest | 1746 | # Digest |
1671 | # | 1747 | # |
1672 | CONFIG_CRYPTO_CRC32C=y | 1748 | CONFIG_CRYPTO_CRC32C=y |
1749 | # CONFIG_CRYPTO_GHASH is not set | ||
1673 | # CONFIG_CRYPTO_MD4 is not set | 1750 | # CONFIG_CRYPTO_MD4 is not set |
1674 | # CONFIG_CRYPTO_MD5 is not set | 1751 | # CONFIG_CRYPTO_MD5 is not set |
1675 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1752 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1714,6 +1791,7 @@ CONFIG_CRYPTO_ARC4=y | |||
1714 | # | 1791 | # |
1715 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1792 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1716 | CONFIG_CRYPTO_HW=y | 1793 | CONFIG_CRYPTO_HW=y |
1794 | CONFIG_CRYPTO_DEV_MV_CESA=y | ||
1717 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1795 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1718 | CONFIG_BINARY_PRINTF=y | 1796 | CONFIG_BINARY_PRINTF=y |
1719 | 1797 | ||
diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig index 8da75dede52e..264f52b5c52d 100644 --- a/arch/arm/configs/n8x0_defconfig +++ b/arch/arm/configs/n8x0_defconfig | |||
@@ -304,7 +304,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
304 | CONFIG_ZBOOT_ROM_TEXT=0x10C08000 | 304 | CONFIG_ZBOOT_ROM_TEXT=0x10C08000 |
305 | CONFIG_ZBOOT_ROM_BSS=0x10200000 | 305 | CONFIG_ZBOOT_ROM_BSS=0x10200000 |
306 | # CONFIG_ZBOOT_ROM is not set | 306 | # CONFIG_ZBOOT_ROM is not set |
307 | CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 console=ttyS0,115200n8" | 307 | CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 console=ttyS2,115200n8" |
308 | # CONFIG_XIP_KERNEL is not set | 308 | # CONFIG_XIP_KERNEL is not set |
309 | # CONFIG_KEXEC is not set | 309 | # CONFIG_KEXEC is not set |
310 | 310 | ||
diff --git a/arch/arm/configs/w90p910_defconfig b/arch/arm/configs/nuc910_defconfig index 5245655a0ad3..5245655a0ad3 100644 --- a/arch/arm/configs/w90p910_defconfig +++ b/arch/arm/configs/nuc910_defconfig | |||
diff --git a/arch/arm/configs/nuc950_defconfig b/arch/arm/configs/nuc950_defconfig new file mode 100644 index 000000000000..df1de9b45ca4 --- /dev/null +++ b/arch/arm/configs/nuc950_defconfig | |||
@@ -0,0 +1,922 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.32-rc7 | ||
4 | # Tue Nov 17 12:31:33 2009 | ||
5 | # | ||
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 | ||
11 | CONFIG_GENERIC_HARDIRQS=y | ||
12 | CONFIG_STACKTRACE_SUPPORT=y | ||
13 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
14 | CONFIG_LOCKDEP_SUPPORT=y | ||
15 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
16 | CONFIG_HARDIRQS_SW_RESEND=y | ||
17 | CONFIG_GENERIC_IRQ_PROBE=y | ||
18 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
19 | CONFIG_GENERIC_HWEIGHT=y | ||
20 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
21 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
22 | CONFIG_VECTORS_BASE=0xffff0000 | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
24 | CONFIG_CONSTRUCTORS=y | ||
25 | |||
26 | # | ||
27 | # General setup | ||
28 | # | ||
29 | CONFIG_EXPERIMENTAL=y | ||
30 | CONFIG_BROKEN_ON_SMP=y | ||
31 | CONFIG_LOCK_KERNEL=y | ||
32 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
33 | CONFIG_LOCALVERSION="" | ||
34 | # CONFIG_LOCALVERSION_AUTO is not set | ||
35 | CONFIG_SWAP=y | ||
36 | CONFIG_SYSVIPC=y | ||
37 | CONFIG_SYSVIPC_SYSCTL=y | ||
38 | CONFIG_BSD_PROCESS_ACCT=y | ||
39 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
40 | |||
41 | # | ||
42 | # RCU Subsystem | ||
43 | # | ||
44 | CONFIG_TREE_RCU=y | ||
45 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
46 | # CONFIG_RCU_TRACE is not set | ||
47 | CONFIG_RCU_FANOUT=32 | ||
48 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
49 | # CONFIG_TREE_RCU_TRACE is not set | ||
50 | # CONFIG_IKCONFIG is not set | ||
51 | CONFIG_LOG_BUF_SHIFT=17 | ||
52 | # CONFIG_GROUP_SCHED is not set | ||
53 | # CONFIG_CGROUPS is not set | ||
54 | CONFIG_SYSFS_DEPRECATED=y | ||
55 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
56 | CONFIG_RELAY=y | ||
57 | CONFIG_NAMESPACES=y | ||
58 | # CONFIG_UTS_NS is not set | ||
59 | # CONFIG_IPC_NS is not set | ||
60 | CONFIG_USER_NS=y | ||
61 | # CONFIG_PID_NS is not set | ||
62 | CONFIG_BLK_DEV_INITRD=y | ||
63 | CONFIG_INITRAMFS_SOURCE="" | ||
64 | CONFIG_RD_GZIP=y | ||
65 | CONFIG_RD_BZIP2=y | ||
66 | CONFIG_RD_LZMA=y | ||
67 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
68 | CONFIG_SYSCTL=y | ||
69 | CONFIG_ANON_INODES=y | ||
70 | # CONFIG_EMBEDDED is not set | ||
71 | CONFIG_UID16=y | ||
72 | CONFIG_SYSCTL_SYSCALL=y | ||
73 | CONFIG_KALLSYMS=y | ||
74 | CONFIG_KALLSYMS_EXTRA_PASS=y | ||
75 | CONFIG_HOTPLUG=y | ||
76 | CONFIG_PRINTK=y | ||
77 | CONFIG_BUG=y | ||
78 | CONFIG_ELF_CORE=y | ||
79 | CONFIG_BASE_FULL=y | ||
80 | CONFIG_FUTEX=y | ||
81 | CONFIG_EPOLL=y | ||
82 | CONFIG_SIGNALFD=y | ||
83 | CONFIG_TIMERFD=y | ||
84 | CONFIG_EVENTFD=y | ||
85 | CONFIG_SHMEM=y | ||
86 | CONFIG_AIO=y | ||
87 | |||
88 | # | ||
89 | # Kernel Performance Events And Counters | ||
90 | # | ||
91 | CONFIG_VM_EVENT_COUNTERS=y | ||
92 | CONFIG_COMPAT_BRK=y | ||
93 | CONFIG_SLAB=y | ||
94 | # CONFIG_SLUB is not set | ||
95 | # CONFIG_SLOB is not set | ||
96 | # CONFIG_PROFILING is not set | ||
97 | CONFIG_HAVE_OPROFILE=y | ||
98 | CONFIG_HAVE_KPROBES=y | ||
99 | CONFIG_HAVE_KRETPROBES=y | ||
100 | CONFIG_HAVE_CLK=y | ||
101 | |||
102 | # | ||
103 | # GCOV-based kernel profiling | ||
104 | # | ||
105 | # CONFIG_GCOV_KERNEL is not set | ||
106 | # CONFIG_SLOW_WORK is not set | ||
107 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
108 | CONFIG_SLABINFO=y | ||
109 | CONFIG_RT_MUTEXES=y | ||
110 | CONFIG_BASE_SMALL=0 | ||
111 | # CONFIG_MODULES is not set | ||
112 | CONFIG_BLOCK=y | ||
113 | CONFIG_LBDAF=y | ||
114 | CONFIG_BLK_DEV_BSG=y | ||
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_FREEZER is not set | ||
130 | |||
131 | # | ||
132 | # System Type | ||
133 | # | ||
134 | CONFIG_MMU=y | ||
135 | # CONFIG_ARCH_AAEC2000 is not set | ||
136 | # CONFIG_ARCH_INTEGRATOR is not set | ||
137 | # CONFIG_ARCH_REALVIEW is not set | ||
138 | # CONFIG_ARCH_VERSATILE is not set | ||
139 | # CONFIG_ARCH_AT91 is not set | ||
140 | # CONFIG_ARCH_CLPS711X is not set | ||
141 | # CONFIG_ARCH_GEMINI is not set | ||
142 | # CONFIG_ARCH_EBSA110 is not set | ||
143 | # CONFIG_ARCH_EP93XX is not set | ||
144 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
145 | # CONFIG_ARCH_MXC is not set | ||
146 | # CONFIG_ARCH_STMP3XXX is not set | ||
147 | # CONFIG_ARCH_NETX is not set | ||
148 | # CONFIG_ARCH_H720X is not set | ||
149 | # CONFIG_ARCH_NOMADIK is not set | ||
150 | # CONFIG_ARCH_IOP13XX is not set | ||
151 | # CONFIG_ARCH_IOP32X is not set | ||
152 | # CONFIG_ARCH_IOP33X is not set | ||
153 | # CONFIG_ARCH_IXP23XX is not set | ||
154 | # CONFIG_ARCH_IXP2000 is not set | ||
155 | # CONFIG_ARCH_IXP4XX is not set | ||
156 | # CONFIG_ARCH_L7200 is not set | ||
157 | # CONFIG_ARCH_KIRKWOOD is not set | ||
158 | # CONFIG_ARCH_LOKI is not set | ||
159 | # CONFIG_ARCH_MV78XX0 is not set | ||
160 | # CONFIG_ARCH_ORION5X is not set | ||
161 | # CONFIG_ARCH_MMP is not set | ||
162 | # CONFIG_ARCH_KS8695 is not set | ||
163 | # CONFIG_ARCH_NS9XXX is not set | ||
164 | CONFIG_ARCH_W90X900=y | ||
165 | # CONFIG_ARCH_PNX4008 is not set | ||
166 | # CONFIG_ARCH_PXA is not set | ||
167 | # CONFIG_ARCH_MSM is not set | ||
168 | # CONFIG_ARCH_RPC is not set | ||
169 | # CONFIG_ARCH_SA1100 is not set | ||
170 | # CONFIG_ARCH_S3C2410 is not set | ||
171 | # CONFIG_ARCH_S3C64XX is not set | ||
172 | # CONFIG_ARCH_S5PC1XX is not set | ||
173 | # CONFIG_ARCH_SHARK is not set | ||
174 | # CONFIG_ARCH_LH7A40X is not set | ||
175 | # CONFIG_ARCH_U300 is not set | ||
176 | # CONFIG_ARCH_DAVINCI is not set | ||
177 | # CONFIG_ARCH_OMAP is not set | ||
178 | # CONFIG_ARCH_BCMRING is not set | ||
179 | CONFIG_CPU_NUC950=y | ||
180 | |||
181 | # | ||
182 | # W90P910 Machines | ||
183 | # | ||
184 | # CONFIG_MACH_W90P910EVB is not set | ||
185 | |||
186 | # | ||
187 | # NUC950 Machines | ||
188 | # | ||
189 | CONFIG_MACH_W90P950EVB=y | ||
190 | |||
191 | # | ||
192 | # NUC960 Machines | ||
193 | # | ||
194 | # CONFIG_MACH_W90N960EVB is not set | ||
195 | |||
196 | # | ||
197 | # NUC932 Machines | ||
198 | # | ||
199 | # CONFIG_MACH_NUC932EVB is not set | ||
200 | |||
201 | # | ||
202 | # Processor Type | ||
203 | # | ||
204 | CONFIG_CPU_32=y | ||
205 | CONFIG_CPU_ARM926T=y | ||
206 | CONFIG_CPU_32v5=y | ||
207 | CONFIG_CPU_ABRT_EV5TJ=y | ||
208 | CONFIG_CPU_PABRT_LEGACY=y | ||
209 | CONFIG_CPU_CACHE_VIVT=y | ||
210 | CONFIG_CPU_COPY_V4WB=y | ||
211 | CONFIG_CPU_TLB_V4WBI=y | ||
212 | CONFIG_CPU_CP15=y | ||
213 | CONFIG_CPU_CP15_MMU=y | ||
214 | |||
215 | # | ||
216 | # Processor Features | ||
217 | # | ||
218 | CONFIG_ARM_THUMB=y | ||
219 | # CONFIG_CPU_ICACHE_DISABLE is not set | ||
220 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
221 | # CONFIG_CPU_DCACHE_WRITETHROUGH is not set | ||
222 | # CONFIG_CPU_CACHE_ROUND_ROBIN is not set | ||
223 | CONFIG_ARM_L1_CACHE_SHIFT=5 | ||
224 | CONFIG_COMMON_CLKDEV=y | ||
225 | |||
226 | # | ||
227 | # Bus support | ||
228 | # | ||
229 | # CONFIG_PCI_SYSCALL is not set | ||
230 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
231 | # CONFIG_PCCARD is not set | ||
232 | |||
233 | # | ||
234 | # Kernel Features | ||
235 | # | ||
236 | CONFIG_TICK_ONESHOT=y | ||
237 | CONFIG_NO_HZ=y | ||
238 | CONFIG_HIGH_RES_TIMERS=y | ||
239 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
240 | CONFIG_VMSPLIT_3G=y | ||
241 | # CONFIG_VMSPLIT_2G is not set | ||
242 | # CONFIG_VMSPLIT_1G is not set | ||
243 | CONFIG_PAGE_OFFSET=0xC0000000 | ||
244 | # CONFIG_PREEMPT_NONE is not set | ||
245 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
246 | CONFIG_PREEMPT=y | ||
247 | CONFIG_HZ=100 | ||
248 | CONFIG_AEABI=y | ||
249 | CONFIG_OABI_COMPAT=y | ||
250 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | ||
251 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | ||
252 | # CONFIG_HIGHMEM is not set | ||
253 | CONFIG_SELECT_MEMORY_MODEL=y | ||
254 | CONFIG_FLATMEM_MANUAL=y | ||
255 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
256 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
257 | CONFIG_FLATMEM=y | ||
258 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
259 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
260 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | ||
261 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
262 | CONFIG_ZONE_DMA_FLAG=0 | ||
263 | CONFIG_VIRT_TO_BUS=y | ||
264 | CONFIG_HAVE_MLOCK=y | ||
265 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
266 | # CONFIG_KSM is not set | ||
267 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
268 | CONFIG_ALIGNMENT_TRAP=y | ||
269 | # CONFIG_UACCESS_WITH_MEMCPY is not set | ||
270 | |||
271 | # | ||
272 | # Boot options | ||
273 | # | ||
274 | CONFIG_ZBOOT_ROM_TEXT=0 | ||
275 | CONFIG_ZBOOT_ROM_BSS=0 | ||
276 | CONFIG_CMDLINE="root=/dev/ram0 console=ttyS0,115200n8 rdinit=/sbin/init mem=64M" | ||
277 | # CONFIG_XIP_KERNEL is not set | ||
278 | CONFIG_KEXEC=y | ||
279 | CONFIG_ATAGS_PROC=y | ||
280 | |||
281 | # | ||
282 | # CPU Power Management | ||
283 | # | ||
284 | # CONFIG_CPU_IDLE is not set | ||
285 | |||
286 | # | ||
287 | # Floating point emulation | ||
288 | # | ||
289 | |||
290 | # | ||
291 | # At least one emulation must be selected | ||
292 | # | ||
293 | CONFIG_FPE_NWFPE=y | ||
294 | # CONFIG_FPE_NWFPE_XP is not set | ||
295 | # CONFIG_FPE_FASTFPE is not set | ||
296 | # CONFIG_VFP is not set | ||
297 | |||
298 | # | ||
299 | # Userspace binary formats | ||
300 | # | ||
301 | CONFIG_BINFMT_ELF=y | ||
302 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
303 | CONFIG_HAVE_AOUT=y | ||
304 | CONFIG_BINFMT_AOUT=y | ||
305 | CONFIG_BINFMT_MISC=y | ||
306 | |||
307 | # | ||
308 | # Power management options | ||
309 | # | ||
310 | # CONFIG_PM is not set | ||
311 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
312 | # CONFIG_NET is not set | ||
313 | |||
314 | # | ||
315 | # Device Drivers | ||
316 | # | ||
317 | |||
318 | # | ||
319 | # Generic Driver Options | ||
320 | # | ||
321 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
322 | # CONFIG_DEVTMPFS is not set | ||
323 | CONFIG_STANDALONE=y | ||
324 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
325 | CONFIG_FW_LOADER=y | ||
326 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
327 | CONFIG_EXTRA_FIRMWARE="" | ||
328 | # CONFIG_SYS_HYPERVISOR is not set | ||
329 | CONFIG_MTD=y | ||
330 | # CONFIG_MTD_DEBUG is not set | ||
331 | CONFIG_MTD_CONCAT=y | ||
332 | CONFIG_MTD_PARTITIONS=y | ||
333 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
334 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
335 | # CONFIG_MTD_AFS_PARTS is not set | ||
336 | # CONFIG_MTD_AR7_PARTS is not set | ||
337 | |||
338 | # | ||
339 | # User Modules And Translation Layers | ||
340 | # | ||
341 | CONFIG_MTD_CHAR=y | ||
342 | CONFIG_MTD_BLKDEVS=y | ||
343 | CONFIG_MTD_BLOCK=y | ||
344 | # CONFIG_FTL is not set | ||
345 | # CONFIG_NFTL is not set | ||
346 | # CONFIG_INFTL is not set | ||
347 | # CONFIG_RFD_FTL is not set | ||
348 | # CONFIG_SSFDC is not set | ||
349 | # CONFIG_MTD_OOPS is not set | ||
350 | |||
351 | # | ||
352 | # RAM/ROM/Flash chip drivers | ||
353 | # | ||
354 | CONFIG_MTD_CFI=y | ||
355 | # CONFIG_MTD_JEDECPROBE is not set | ||
356 | CONFIG_MTD_GEN_PROBE=y | ||
357 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
358 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
359 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
360 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
361 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
362 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
363 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
364 | CONFIG_MTD_CFI_I1=y | ||
365 | CONFIG_MTD_CFI_I2=y | ||
366 | # CONFIG_MTD_CFI_I4 is not set | ||
367 | # CONFIG_MTD_CFI_I8 is not set | ||
368 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
369 | CONFIG_MTD_CFI_AMDSTD=y | ||
370 | # CONFIG_MTD_CFI_STAA is not set | ||
371 | CONFIG_MTD_CFI_UTIL=y | ||
372 | # CONFIG_MTD_RAM is not set | ||
373 | # CONFIG_MTD_ROM is not set | ||
374 | # CONFIG_MTD_ABSENT is not set | ||
375 | |||
376 | # | ||
377 | # Mapping drivers for chip access | ||
378 | # | ||
379 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
380 | CONFIG_MTD_PHYSMAP=y | ||
381 | # CONFIG_MTD_PHYSMAP_COMPAT is not set | ||
382 | # CONFIG_MTD_ARM_INTEGRATOR is not set | ||
383 | # CONFIG_MTD_PLATRAM is not set | ||
384 | |||
385 | # | ||
386 | # Self-contained MTD device drivers | ||
387 | # | ||
388 | # CONFIG_MTD_SLRAM is not set | ||
389 | # CONFIG_MTD_PHRAM is not set | ||
390 | # CONFIG_MTD_MTDRAM is not set | ||
391 | # CONFIG_MTD_BLOCK2MTD is not set | ||
392 | |||
393 | # | ||
394 | # Disk-On-Chip Device Drivers | ||
395 | # | ||
396 | # CONFIG_MTD_DOC2000 is not set | ||
397 | # CONFIG_MTD_DOC2001 is not set | ||
398 | # CONFIG_MTD_DOC2001PLUS is not set | ||
399 | # CONFIG_MTD_NAND is not set | ||
400 | # CONFIG_MTD_ONENAND is not set | ||
401 | |||
402 | # | ||
403 | # LPDDR flash memory drivers | ||
404 | # | ||
405 | # CONFIG_MTD_LPDDR is not set | ||
406 | |||
407 | # | ||
408 | # UBI - Unsorted block images | ||
409 | # | ||
410 | # CONFIG_MTD_UBI is not set | ||
411 | # CONFIG_PARPORT is not set | ||
412 | CONFIG_BLK_DEV=y | ||
413 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
414 | # CONFIG_BLK_DEV_LOOP is not set | ||
415 | # CONFIG_BLK_DEV_UB is not set | ||
416 | CONFIG_BLK_DEV_RAM=y | ||
417 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
418 | CONFIG_BLK_DEV_RAM_SIZE=16384 | ||
419 | # CONFIG_BLK_DEV_XIP is not set | ||
420 | # CONFIG_CDROM_PKTCDVD is not set | ||
421 | # CONFIG_MG_DISK is not set | ||
422 | # CONFIG_MISC_DEVICES is not set | ||
423 | CONFIG_HAVE_IDE=y | ||
424 | # CONFIG_IDE is not set | ||
425 | |||
426 | # | ||
427 | # SCSI device support | ||
428 | # | ||
429 | # CONFIG_RAID_ATTRS is not set | ||
430 | CONFIG_SCSI=y | ||
431 | CONFIG_SCSI_DMA=y | ||
432 | # CONFIG_SCSI_TGT is not set | ||
433 | # CONFIG_SCSI_NETLINK is not set | ||
434 | # CONFIG_SCSI_PROC_FS is not set | ||
435 | |||
436 | # | ||
437 | # SCSI support type (disk, tape, CD-ROM) | ||
438 | # | ||
439 | CONFIG_BLK_DEV_SD=y | ||
440 | # CONFIG_CHR_DEV_ST is not set | ||
441 | # CONFIG_CHR_DEV_OSST is not set | ||
442 | # CONFIG_BLK_DEV_SR is not set | ||
443 | # CONFIG_CHR_DEV_SG is not set | ||
444 | # CONFIG_CHR_DEV_SCH is not set | ||
445 | # CONFIG_SCSI_MULTI_LUN is not set | ||
446 | # CONFIG_SCSI_CONSTANTS is not set | ||
447 | # CONFIG_SCSI_LOGGING is not set | ||
448 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
449 | |||
450 | # | ||
451 | # SCSI Transports | ||
452 | # | ||
453 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
454 | # CONFIG_SCSI_FC_ATTRS is not set | ||
455 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
456 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
457 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
458 | # CONFIG_SCSI_LOWLEVEL is not set | ||
459 | # CONFIG_SCSI_DH is not set | ||
460 | # CONFIG_SCSI_OSD_INITIATOR is not set | ||
461 | # CONFIG_ATA is not set | ||
462 | # CONFIG_MD is not set | ||
463 | # CONFIG_PHONE is not set | ||
464 | |||
465 | # | ||
466 | # Input device support | ||
467 | # | ||
468 | CONFIG_INPUT=y | ||
469 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
470 | # CONFIG_INPUT_POLLDEV is not set | ||
471 | |||
472 | # | ||
473 | # Userland interfaces | ||
474 | # | ||
475 | CONFIG_INPUT_MOUSEDEV=y | ||
476 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
477 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
478 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
479 | # CONFIG_INPUT_JOYDEV is not set | ||
480 | # CONFIG_INPUT_EVDEV is not set | ||
481 | # CONFIG_INPUT_EVBUG is not set | ||
482 | |||
483 | # | ||
484 | # Input Device Drivers | ||
485 | # | ||
486 | # CONFIG_INPUT_KEYBOARD is not set | ||
487 | # CONFIG_INPUT_MOUSE is not set | ||
488 | # CONFIG_INPUT_JOYSTICK is not set | ||
489 | # CONFIG_INPUT_TABLET is not set | ||
490 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
491 | # CONFIG_INPUT_MISC is not set | ||
492 | |||
493 | # | ||
494 | # Hardware I/O ports | ||
495 | # | ||
496 | # CONFIG_SERIO is not set | ||
497 | # CONFIG_GAMEPORT is not set | ||
498 | |||
499 | # | ||
500 | # Character devices | ||
501 | # | ||
502 | CONFIG_VT=y | ||
503 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
504 | CONFIG_VT_CONSOLE=y | ||
505 | CONFIG_HW_CONSOLE=y | ||
506 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
507 | # CONFIG_DEVKMEM is not set | ||
508 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
509 | |||
510 | # | ||
511 | # Serial drivers | ||
512 | # | ||
513 | CONFIG_SERIAL_8250=y | ||
514 | CONFIG_SERIAL_8250_CONSOLE=y | ||
515 | CONFIG_SERIAL_8250_NR_UARTS=1 | ||
516 | CONFIG_SERIAL_8250_RUNTIME_UARTS=1 | ||
517 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
518 | |||
519 | # | ||
520 | # Non-8250 serial port support | ||
521 | # | ||
522 | CONFIG_SERIAL_CORE=y | ||
523 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
524 | CONFIG_UNIX98_PTYS=y | ||
525 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
526 | # CONFIG_LEGACY_PTYS is not set | ||
527 | # CONFIG_IPMI_HANDLER is not set | ||
528 | # CONFIG_HW_RANDOM is not set | ||
529 | # CONFIG_R3964 is not set | ||
530 | # CONFIG_RAW_DRIVER is not set | ||
531 | # CONFIG_TCG_TPM is not set | ||
532 | # CONFIG_I2C is not set | ||
533 | # CONFIG_SPI is not set | ||
534 | |||
535 | # | ||
536 | # PPS support | ||
537 | # | ||
538 | # CONFIG_PPS is not set | ||
539 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
540 | CONFIG_GPIOLIB=y | ||
541 | # CONFIG_GPIO_SYSFS is not set | ||
542 | |||
543 | # | ||
544 | # Memory mapped GPIO expanders: | ||
545 | # | ||
546 | |||
547 | # | ||
548 | # I2C GPIO expanders: | ||
549 | # | ||
550 | |||
551 | # | ||
552 | # PCI GPIO expanders: | ||
553 | # | ||
554 | |||
555 | # | ||
556 | # SPI GPIO expanders: | ||
557 | # | ||
558 | |||
559 | # | ||
560 | # AC97 GPIO expanders: | ||
561 | # | ||
562 | # CONFIG_W1 is not set | ||
563 | # CONFIG_POWER_SUPPLY is not set | ||
564 | # CONFIG_HWMON is not set | ||
565 | # CONFIG_THERMAL is not set | ||
566 | # CONFIG_WATCHDOG is not set | ||
567 | CONFIG_SSB_POSSIBLE=y | ||
568 | |||
569 | # | ||
570 | # Sonics Silicon Backplane | ||
571 | # | ||
572 | # CONFIG_SSB is not set | ||
573 | |||
574 | # | ||
575 | # Multifunction device drivers | ||
576 | # | ||
577 | # CONFIG_MFD_CORE is not set | ||
578 | # CONFIG_MFD_SM501 is not set | ||
579 | # CONFIG_MFD_ASIC3 is not set | ||
580 | # CONFIG_HTC_EGPIO is not set | ||
581 | # CONFIG_HTC_PASIC3 is not set | ||
582 | # CONFIG_MFD_TMIO is not set | ||
583 | # CONFIG_MFD_T7L66XB is not set | ||
584 | # CONFIG_MFD_TC6387XB is not set | ||
585 | # CONFIG_MFD_TC6393XB is not set | ||
586 | # CONFIG_REGULATOR is not set | ||
587 | # CONFIG_MEDIA_SUPPORT is not set | ||
588 | |||
589 | # | ||
590 | # Graphics support | ||
591 | # | ||
592 | # CONFIG_VGASTATE is not set | ||
593 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
594 | # CONFIG_FB is not set | ||
595 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
596 | |||
597 | # | ||
598 | # Display device support | ||
599 | # | ||
600 | # CONFIG_DISPLAY_SUPPORT is not set | ||
601 | |||
602 | # | ||
603 | # Console display driver support | ||
604 | # | ||
605 | # CONFIG_VGA_CONSOLE is not set | ||
606 | CONFIG_DUMMY_CONSOLE=y | ||
607 | # CONFIG_SOUND is not set | ||
608 | # CONFIG_HID_SUPPORT is not set | ||
609 | CONFIG_USB_SUPPORT=y | ||
610 | CONFIG_USB_ARCH_HAS_HCD=y | ||
611 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
612 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
613 | CONFIG_USB=y | ||
614 | # CONFIG_USB_DEBUG is not set | ||
615 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
616 | |||
617 | # | ||
618 | # Miscellaneous USB options | ||
619 | # | ||
620 | # CONFIG_USB_DEVICEFS is not set | ||
621 | CONFIG_USB_DEVICE_CLASS=y | ||
622 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
623 | # CONFIG_USB_OTG is not set | ||
624 | CONFIG_USB_MON=y | ||
625 | # CONFIG_USB_WUSB is not set | ||
626 | # CONFIG_USB_WUSB_CBAF is not set | ||
627 | |||
628 | # | ||
629 | # USB Host Controller Drivers | ||
630 | # | ||
631 | # CONFIG_USB_C67X00_HCD is not set | ||
632 | # CONFIG_USB_EHCI_HCD is not set | ||
633 | # CONFIG_USB_OXU210HP_HCD is not set | ||
634 | # CONFIG_USB_ISP116X_HCD is not set | ||
635 | # CONFIG_USB_ISP1760_HCD is not set | ||
636 | # CONFIG_USB_ISP1362_HCD is not set | ||
637 | # CONFIG_USB_OHCI_HCD is not set | ||
638 | # CONFIG_USB_SL811_HCD is not set | ||
639 | # CONFIG_USB_R8A66597_HCD is not set | ||
640 | # CONFIG_USB_HWA_HCD is not set | ||
641 | # CONFIG_USB_MUSB_HDRC is not set | ||
642 | |||
643 | # | ||
644 | # USB Device Class drivers | ||
645 | # | ||
646 | # CONFIG_USB_ACM is not set | ||
647 | # CONFIG_USB_PRINTER is not set | ||
648 | # CONFIG_USB_WDM is not set | ||
649 | # CONFIG_USB_TMC is not set | ||
650 | |||
651 | # | ||
652 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may | ||
653 | # | ||
654 | |||
655 | # | ||
656 | # also be needed; see USB_STORAGE Help for more info | ||
657 | # | ||
658 | CONFIG_USB_STORAGE=y | ||
659 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
660 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
661 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
662 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
663 | # CONFIG_USB_STORAGE_USBAT is not set | ||
664 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
665 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
666 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
667 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
668 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
669 | # CONFIG_USB_STORAGE_KARMA is not set | ||
670 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set | ||
671 | # CONFIG_USB_LIBUSUAL is not set | ||
672 | |||
673 | # | ||
674 | # USB Imaging devices | ||
675 | # | ||
676 | # CONFIG_USB_MDC800 is not set | ||
677 | # CONFIG_USB_MICROTEK is not set | ||
678 | |||
679 | # | ||
680 | # USB port drivers | ||
681 | # | ||
682 | # CONFIG_USB_SERIAL is not set | ||
683 | |||
684 | # | ||
685 | # USB Miscellaneous drivers | ||
686 | # | ||
687 | # CONFIG_USB_EMI62 is not set | ||
688 | # CONFIG_USB_EMI26 is not set | ||
689 | # CONFIG_USB_ADUTUX is not set | ||
690 | # CONFIG_USB_SEVSEG is not set | ||
691 | # CONFIG_USB_RIO500 is not set | ||
692 | # CONFIG_USB_LEGOTOWER is not set | ||
693 | # CONFIG_USB_LCD is not set | ||
694 | # CONFIG_USB_BERRY_CHARGE is not set | ||
695 | # CONFIG_USB_LED is not set | ||
696 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
697 | # CONFIG_USB_CYTHERM is not set | ||
698 | # CONFIG_USB_IDMOUSE is not set | ||
699 | # CONFIG_USB_FTDI_ELAN is not set | ||
700 | # CONFIG_USB_APPLEDISPLAY is not set | ||
701 | # CONFIG_USB_LD is not set | ||
702 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
703 | # CONFIG_USB_IOWARRIOR is not set | ||
704 | # CONFIG_USB_TEST is not set | ||
705 | # CONFIG_USB_ISIGHTFW is not set | ||
706 | # CONFIG_USB_VST is not set | ||
707 | # CONFIG_USB_GADGET is not set | ||
708 | |||
709 | # | ||
710 | # OTG and related infrastructure | ||
711 | # | ||
712 | # CONFIG_USB_GPIO_VBUS is not set | ||
713 | # CONFIG_NOP_USB_XCEIV is not set | ||
714 | # CONFIG_MMC is not set | ||
715 | # CONFIG_MEMSTICK is not set | ||
716 | # CONFIG_NEW_LEDS is not set | ||
717 | # CONFIG_ACCESSIBILITY is not set | ||
718 | CONFIG_RTC_LIB=y | ||
719 | # CONFIG_RTC_CLASS is not set | ||
720 | # CONFIG_DMADEVICES is not set | ||
721 | # CONFIG_AUXDISPLAY is not set | ||
722 | # CONFIG_UIO is not set | ||
723 | |||
724 | # | ||
725 | # TI VLYNQ | ||
726 | # | ||
727 | # CONFIG_STAGING is not set | ||
728 | |||
729 | # | ||
730 | # File systems | ||
731 | # | ||
732 | # CONFIG_EXT2_FS is not set | ||
733 | # CONFIG_EXT3_FS is not set | ||
734 | # CONFIG_EXT4_FS is not set | ||
735 | # CONFIG_REISERFS_FS is not set | ||
736 | # CONFIG_JFS_FS is not set | ||
737 | CONFIG_FS_POSIX_ACL=y | ||
738 | # CONFIG_XFS_FS is not set | ||
739 | # CONFIG_GFS2_FS is not set | ||
740 | # CONFIG_BTRFS_FS is not set | ||
741 | # CONFIG_NILFS2_FS is not set | ||
742 | CONFIG_FILE_LOCKING=y | ||
743 | CONFIG_FSNOTIFY=y | ||
744 | # CONFIG_DNOTIFY is not set | ||
745 | # CONFIG_INOTIFY is not set | ||
746 | CONFIG_INOTIFY_USER=y | ||
747 | # CONFIG_QUOTA is not set | ||
748 | # CONFIG_AUTOFS_FS is not set | ||
749 | # CONFIG_AUTOFS4_FS is not set | ||
750 | # CONFIG_FUSE_FS is not set | ||
751 | CONFIG_GENERIC_ACL=y | ||
752 | |||
753 | # | ||
754 | # Caches | ||
755 | # | ||
756 | # CONFIG_FSCACHE is not set | ||
757 | |||
758 | # | ||
759 | # CD-ROM/DVD Filesystems | ||
760 | # | ||
761 | # CONFIG_ISO9660_FS is not set | ||
762 | # CONFIG_UDF_FS is not set | ||
763 | |||
764 | # | ||
765 | # DOS/FAT/NT Filesystems | ||
766 | # | ||
767 | # CONFIG_MSDOS_FS is not set | ||
768 | # CONFIG_VFAT_FS is not set | ||
769 | # CONFIG_NTFS_FS is not set | ||
770 | |||
771 | # | ||
772 | # Pseudo filesystems | ||
773 | # | ||
774 | CONFIG_PROC_FS=y | ||
775 | CONFIG_PROC_SYSCTL=y | ||
776 | CONFIG_PROC_PAGE_MONITOR=y | ||
777 | CONFIG_SYSFS=y | ||
778 | CONFIG_TMPFS=y | ||
779 | CONFIG_TMPFS_POSIX_ACL=y | ||
780 | # CONFIG_HUGETLB_PAGE is not set | ||
781 | # CONFIG_CONFIGFS_FS is not set | ||
782 | CONFIG_MISC_FILESYSTEMS=y | ||
783 | # CONFIG_ADFS_FS is not set | ||
784 | # CONFIG_AFFS_FS is not set | ||
785 | # CONFIG_HFS_FS is not set | ||
786 | # CONFIG_HFSPLUS_FS is not set | ||
787 | # CONFIG_BEFS_FS is not set | ||
788 | # CONFIG_BFS_FS is not set | ||
789 | # CONFIG_EFS_FS is not set | ||
790 | # CONFIG_JFFS2_FS is not set | ||
791 | # CONFIG_CRAMFS is not set | ||
792 | # CONFIG_SQUASHFS is not set | ||
793 | # CONFIG_VXFS_FS is not set | ||
794 | # CONFIG_MINIX_FS is not set | ||
795 | # CONFIG_OMFS_FS is not set | ||
796 | # CONFIG_HPFS_FS is not set | ||
797 | # CONFIG_QNX4FS_FS is not set | ||
798 | CONFIG_ROMFS_FS=y | ||
799 | CONFIG_ROMFS_BACKED_BY_BLOCK=y | ||
800 | # CONFIG_ROMFS_BACKED_BY_MTD is not set | ||
801 | # CONFIG_ROMFS_BACKED_BY_BOTH is not set | ||
802 | CONFIG_ROMFS_ON_BLOCK=y | ||
803 | # CONFIG_SYSV_FS is not set | ||
804 | # CONFIG_UFS_FS is not set | ||
805 | |||
806 | # | ||
807 | # Partition Types | ||
808 | # | ||
809 | CONFIG_PARTITION_ADVANCED=y | ||
810 | # CONFIG_ACORN_PARTITION is not set | ||
811 | # CONFIG_OSF_PARTITION is not set | ||
812 | # CONFIG_AMIGA_PARTITION is not set | ||
813 | # CONFIG_ATARI_PARTITION is not set | ||
814 | # CONFIG_MAC_PARTITION is not set | ||
815 | CONFIG_MSDOS_PARTITION=y | ||
816 | # CONFIG_BSD_DISKLABEL is not set | ||
817 | # CONFIG_MINIX_SUBPARTITION is not set | ||
818 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
819 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
820 | # CONFIG_LDM_PARTITION is not set | ||
821 | # CONFIG_SGI_PARTITION is not set | ||
822 | # CONFIG_ULTRIX_PARTITION is not set | ||
823 | # CONFIG_SUN_PARTITION is not set | ||
824 | # CONFIG_KARMA_PARTITION is not set | ||
825 | # CONFIG_EFI_PARTITION is not set | ||
826 | # CONFIG_SYSV68_PARTITION is not set | ||
827 | CONFIG_NLS=y | ||
828 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
829 | CONFIG_NLS_CODEPAGE_437=y | ||
830 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
831 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
832 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
833 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
834 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
835 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
836 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
837 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
838 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
839 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
840 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
841 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
842 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
843 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
844 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
845 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
846 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
847 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
848 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
849 | # CONFIG_NLS_ISO8859_8 is not set | ||
850 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
851 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
852 | # CONFIG_NLS_ASCII is not set | ||
853 | CONFIG_NLS_ISO8859_1=y | ||
854 | # CONFIG_NLS_ISO8859_2 is not set | ||
855 | # CONFIG_NLS_ISO8859_3 is not set | ||
856 | # CONFIG_NLS_ISO8859_4 is not set | ||
857 | # CONFIG_NLS_ISO8859_5 is not set | ||
858 | # CONFIG_NLS_ISO8859_6 is not set | ||
859 | # CONFIG_NLS_ISO8859_7 is not set | ||
860 | # CONFIG_NLS_ISO8859_9 is not set | ||
861 | # CONFIG_NLS_ISO8859_13 is not set | ||
862 | # CONFIG_NLS_ISO8859_14 is not set | ||
863 | # CONFIG_NLS_ISO8859_15 is not set | ||
864 | # CONFIG_NLS_KOI8_R is not set | ||
865 | # CONFIG_NLS_KOI8_U is not set | ||
866 | # CONFIG_NLS_UTF8 is not set | ||
867 | |||
868 | # | ||
869 | # Kernel hacking | ||
870 | # | ||
871 | # CONFIG_PRINTK_TIME is not set | ||
872 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
873 | # CONFIG_ENABLE_MUST_CHECK is not set | ||
874 | CONFIG_FRAME_WARN=1024 | ||
875 | # CONFIG_MAGIC_SYSRQ is not set | ||
876 | # CONFIG_STRIP_ASM_SYMS is not set | ||
877 | # CONFIG_UNUSED_SYMBOLS is not set | ||
878 | CONFIG_DEBUG_FS=y | ||
879 | # CONFIG_HEADERS_CHECK is not set | ||
880 | # CONFIG_DEBUG_KERNEL is not set | ||
881 | CONFIG_DEBUG_BUGVERBOSE=y | ||
882 | CONFIG_DEBUG_MEMORY_INIT=y | ||
883 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
884 | # CONFIG_LATENCYTOP is not set | ||
885 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
886 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
887 | CONFIG_TRACING_SUPPORT=y | ||
888 | # CONFIG_FTRACE is not set | ||
889 | # CONFIG_DYNAMIC_DEBUG is not set | ||
890 | # CONFIG_SAMPLES is not set | ||
891 | CONFIG_HAVE_ARCH_KGDB=y | ||
892 | CONFIG_ARM_UNWIND=y | ||
893 | # CONFIG_DEBUG_USER is not set | ||
894 | |||
895 | # | ||
896 | # Security options | ||
897 | # | ||
898 | # CONFIG_KEYS is not set | ||
899 | # CONFIG_SECURITY is not set | ||
900 | # CONFIG_SECURITYFS is not set | ||
901 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
902 | # CONFIG_CRYPTO is not set | ||
903 | # CONFIG_BINARY_PRINTF is not set | ||
904 | |||
905 | # | ||
906 | # Library routines | ||
907 | # | ||
908 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
909 | # CONFIG_CRC_CCITT is not set | ||
910 | # CONFIG_CRC16 is not set | ||
911 | # CONFIG_CRC_T10DIF is not set | ||
912 | # CONFIG_CRC_ITU_T is not set | ||
913 | # CONFIG_CRC32 is not set | ||
914 | # CONFIG_CRC7 is not set | ||
915 | # CONFIG_LIBCRC32C is not set | ||
916 | CONFIG_ZLIB_INFLATE=y | ||
917 | CONFIG_DECOMPRESS_GZIP=y | ||
918 | CONFIG_DECOMPRESS_BZIP2=y | ||
919 | CONFIG_DECOMPRESS_LZMA=y | ||
920 | CONFIG_HAS_IOMEM=y | ||
921 | CONFIG_HAS_IOPORT=y | ||
922 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/configs/nuc960_defconfig b/arch/arm/configs/nuc960_defconfig new file mode 100644 index 000000000000..4b2cd9eae9bc --- /dev/null +++ b/arch/arm/configs/nuc960_defconfig | |||
@@ -0,0 +1,922 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.32-rc7 | ||
4 | # Tue Nov 17 12:20:11 2009 | ||
5 | # | ||
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 | ||
11 | CONFIG_GENERIC_HARDIRQS=y | ||
12 | CONFIG_STACKTRACE_SUPPORT=y | ||
13 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
14 | CONFIG_LOCKDEP_SUPPORT=y | ||
15 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
16 | CONFIG_HARDIRQS_SW_RESEND=y | ||
17 | CONFIG_GENERIC_IRQ_PROBE=y | ||
18 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
19 | CONFIG_GENERIC_HWEIGHT=y | ||
20 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
21 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
22 | CONFIG_VECTORS_BASE=0xffff0000 | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
24 | CONFIG_CONSTRUCTORS=y | ||
25 | |||
26 | # | ||
27 | # General setup | ||
28 | # | ||
29 | CONFIG_EXPERIMENTAL=y | ||
30 | CONFIG_BROKEN_ON_SMP=y | ||
31 | CONFIG_LOCK_KERNEL=y | ||
32 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
33 | CONFIG_LOCALVERSION="" | ||
34 | # CONFIG_LOCALVERSION_AUTO is not set | ||
35 | CONFIG_SWAP=y | ||
36 | CONFIG_SYSVIPC=y | ||
37 | CONFIG_SYSVIPC_SYSCTL=y | ||
38 | CONFIG_BSD_PROCESS_ACCT=y | ||
39 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
40 | |||
41 | # | ||
42 | # RCU Subsystem | ||
43 | # | ||
44 | CONFIG_TREE_RCU=y | ||
45 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
46 | # CONFIG_RCU_TRACE is not set | ||
47 | CONFIG_RCU_FANOUT=32 | ||
48 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
49 | # CONFIG_TREE_RCU_TRACE is not set | ||
50 | # CONFIG_IKCONFIG is not set | ||
51 | CONFIG_LOG_BUF_SHIFT=17 | ||
52 | # CONFIG_GROUP_SCHED is not set | ||
53 | # CONFIG_CGROUPS is not set | ||
54 | CONFIG_SYSFS_DEPRECATED=y | ||
55 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
56 | CONFIG_RELAY=y | ||
57 | CONFIG_NAMESPACES=y | ||
58 | # CONFIG_UTS_NS is not set | ||
59 | # CONFIG_IPC_NS is not set | ||
60 | CONFIG_USER_NS=y | ||
61 | # CONFIG_PID_NS is not set | ||
62 | CONFIG_BLK_DEV_INITRD=y | ||
63 | CONFIG_INITRAMFS_SOURCE="" | ||
64 | CONFIG_RD_GZIP=y | ||
65 | CONFIG_RD_BZIP2=y | ||
66 | CONFIG_RD_LZMA=y | ||
67 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
68 | CONFIG_SYSCTL=y | ||
69 | CONFIG_ANON_INODES=y | ||
70 | # CONFIG_EMBEDDED is not set | ||
71 | CONFIG_UID16=y | ||
72 | CONFIG_SYSCTL_SYSCALL=y | ||
73 | CONFIG_KALLSYMS=y | ||
74 | CONFIG_KALLSYMS_EXTRA_PASS=y | ||
75 | CONFIG_HOTPLUG=y | ||
76 | CONFIG_PRINTK=y | ||
77 | CONFIG_BUG=y | ||
78 | CONFIG_ELF_CORE=y | ||
79 | CONFIG_BASE_FULL=y | ||
80 | CONFIG_FUTEX=y | ||
81 | CONFIG_EPOLL=y | ||
82 | CONFIG_SIGNALFD=y | ||
83 | CONFIG_TIMERFD=y | ||
84 | CONFIG_EVENTFD=y | ||
85 | CONFIG_SHMEM=y | ||
86 | CONFIG_AIO=y | ||
87 | |||
88 | # | ||
89 | # Kernel Performance Events And Counters | ||
90 | # | ||
91 | CONFIG_VM_EVENT_COUNTERS=y | ||
92 | CONFIG_COMPAT_BRK=y | ||
93 | CONFIG_SLAB=y | ||
94 | # CONFIG_SLUB is not set | ||
95 | # CONFIG_SLOB is not set | ||
96 | # CONFIG_PROFILING is not set | ||
97 | CONFIG_HAVE_OPROFILE=y | ||
98 | CONFIG_HAVE_KPROBES=y | ||
99 | CONFIG_HAVE_KRETPROBES=y | ||
100 | CONFIG_HAVE_CLK=y | ||
101 | |||
102 | # | ||
103 | # GCOV-based kernel profiling | ||
104 | # | ||
105 | # CONFIG_GCOV_KERNEL is not set | ||
106 | # CONFIG_SLOW_WORK is not set | ||
107 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
108 | CONFIG_SLABINFO=y | ||
109 | CONFIG_RT_MUTEXES=y | ||
110 | CONFIG_BASE_SMALL=0 | ||
111 | # CONFIG_MODULES is not set | ||
112 | CONFIG_BLOCK=y | ||
113 | CONFIG_LBDAF=y | ||
114 | CONFIG_BLK_DEV_BSG=y | ||
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_FREEZER is not set | ||
130 | |||
131 | # | ||
132 | # System Type | ||
133 | # | ||
134 | CONFIG_MMU=y | ||
135 | # CONFIG_ARCH_AAEC2000 is not set | ||
136 | # CONFIG_ARCH_INTEGRATOR is not set | ||
137 | # CONFIG_ARCH_REALVIEW is not set | ||
138 | # CONFIG_ARCH_VERSATILE is not set | ||
139 | # CONFIG_ARCH_AT91 is not set | ||
140 | # CONFIG_ARCH_CLPS711X is not set | ||
141 | # CONFIG_ARCH_GEMINI is not set | ||
142 | # CONFIG_ARCH_EBSA110 is not set | ||
143 | # CONFIG_ARCH_EP93XX is not set | ||
144 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
145 | # CONFIG_ARCH_MXC is not set | ||
146 | # CONFIG_ARCH_STMP3XXX is not set | ||
147 | # CONFIG_ARCH_NETX is not set | ||
148 | # CONFIG_ARCH_H720X is not set | ||
149 | # CONFIG_ARCH_NOMADIK is not set | ||
150 | # CONFIG_ARCH_IOP13XX is not set | ||
151 | # CONFIG_ARCH_IOP32X is not set | ||
152 | # CONFIG_ARCH_IOP33X is not set | ||
153 | # CONFIG_ARCH_IXP23XX is not set | ||
154 | # CONFIG_ARCH_IXP2000 is not set | ||
155 | # CONFIG_ARCH_IXP4XX is not set | ||
156 | # CONFIG_ARCH_L7200 is not set | ||
157 | # CONFIG_ARCH_KIRKWOOD is not set | ||
158 | # CONFIG_ARCH_LOKI is not set | ||
159 | # CONFIG_ARCH_MV78XX0 is not set | ||
160 | # CONFIG_ARCH_ORION5X is not set | ||
161 | # CONFIG_ARCH_MMP is not set | ||
162 | # CONFIG_ARCH_KS8695 is not set | ||
163 | # CONFIG_ARCH_NS9XXX is not set | ||
164 | CONFIG_ARCH_W90X900=y | ||
165 | # CONFIG_ARCH_PNX4008 is not set | ||
166 | # CONFIG_ARCH_PXA is not set | ||
167 | # CONFIG_ARCH_MSM is not set | ||
168 | # CONFIG_ARCH_RPC is not set | ||
169 | # CONFIG_ARCH_SA1100 is not set | ||
170 | # CONFIG_ARCH_S3C2410 is not set | ||
171 | # CONFIG_ARCH_S3C64XX is not set | ||
172 | # CONFIG_ARCH_S5PC1XX is not set | ||
173 | # CONFIG_ARCH_SHARK is not set | ||
174 | # CONFIG_ARCH_LH7A40X is not set | ||
175 | # CONFIG_ARCH_U300 is not set | ||
176 | # CONFIG_ARCH_DAVINCI is not set | ||
177 | # CONFIG_ARCH_OMAP is not set | ||
178 | # CONFIG_ARCH_BCMRING is not set | ||
179 | CONFIG_CPU_NUC960=y | ||
180 | |||
181 | # | ||
182 | # W90P910 Machines | ||
183 | # | ||
184 | # CONFIG_MACH_W90P910EVB is not set | ||
185 | |||
186 | # | ||
187 | # NUC950 Machines | ||
188 | # | ||
189 | # CONFIG_MACH_W90P950EVB is not set | ||
190 | |||
191 | # | ||
192 | # NUC960 Machines | ||
193 | # | ||
194 | CONFIG_MACH_W90N960EVB=y | ||
195 | |||
196 | # | ||
197 | # NUC932 Machines | ||
198 | # | ||
199 | # CONFIG_MACH_NUC932EVB is not set | ||
200 | |||
201 | # | ||
202 | # Processor Type | ||
203 | # | ||
204 | CONFIG_CPU_32=y | ||
205 | CONFIG_CPU_ARM926T=y | ||
206 | CONFIG_CPU_32v5=y | ||
207 | CONFIG_CPU_ABRT_EV5TJ=y | ||
208 | CONFIG_CPU_PABRT_LEGACY=y | ||
209 | CONFIG_CPU_CACHE_VIVT=y | ||
210 | CONFIG_CPU_COPY_V4WB=y | ||
211 | CONFIG_CPU_TLB_V4WBI=y | ||
212 | CONFIG_CPU_CP15=y | ||
213 | CONFIG_CPU_CP15_MMU=y | ||
214 | |||
215 | # | ||
216 | # Processor Features | ||
217 | # | ||
218 | CONFIG_ARM_THUMB=y | ||
219 | # CONFIG_CPU_ICACHE_DISABLE is not set | ||
220 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
221 | # CONFIG_CPU_DCACHE_WRITETHROUGH is not set | ||
222 | # CONFIG_CPU_CACHE_ROUND_ROBIN is not set | ||
223 | CONFIG_ARM_L1_CACHE_SHIFT=5 | ||
224 | CONFIG_COMMON_CLKDEV=y | ||
225 | |||
226 | # | ||
227 | # Bus support | ||
228 | # | ||
229 | # CONFIG_PCI_SYSCALL is not set | ||
230 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
231 | # CONFIG_PCCARD is not set | ||
232 | |||
233 | # | ||
234 | # Kernel Features | ||
235 | # | ||
236 | CONFIG_TICK_ONESHOT=y | ||
237 | CONFIG_NO_HZ=y | ||
238 | CONFIG_HIGH_RES_TIMERS=y | ||
239 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
240 | CONFIG_VMSPLIT_3G=y | ||
241 | # CONFIG_VMSPLIT_2G is not set | ||
242 | # CONFIG_VMSPLIT_1G is not set | ||
243 | CONFIG_PAGE_OFFSET=0xC0000000 | ||
244 | # CONFIG_PREEMPT_NONE is not set | ||
245 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
246 | CONFIG_PREEMPT=y | ||
247 | CONFIG_HZ=100 | ||
248 | CONFIG_AEABI=y | ||
249 | CONFIG_OABI_COMPAT=y | ||
250 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | ||
251 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | ||
252 | # CONFIG_HIGHMEM is not set | ||
253 | CONFIG_SELECT_MEMORY_MODEL=y | ||
254 | CONFIG_FLATMEM_MANUAL=y | ||
255 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
256 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
257 | CONFIG_FLATMEM=y | ||
258 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
259 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
260 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | ||
261 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
262 | CONFIG_ZONE_DMA_FLAG=0 | ||
263 | CONFIG_VIRT_TO_BUS=y | ||
264 | CONFIG_HAVE_MLOCK=y | ||
265 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
266 | # CONFIG_KSM is not set | ||
267 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
268 | CONFIG_ALIGNMENT_TRAP=y | ||
269 | # CONFIG_UACCESS_WITH_MEMCPY is not set | ||
270 | |||
271 | # | ||
272 | # Boot options | ||
273 | # | ||
274 | CONFIG_ZBOOT_ROM_TEXT=0 | ||
275 | CONFIG_ZBOOT_ROM_BSS=0 | ||
276 | CONFIG_CMDLINE="root=/dev/ram0 console=ttyS0,115200n8 rdinit=/sbin/init mem=64M" | ||
277 | # CONFIG_XIP_KERNEL is not set | ||
278 | CONFIG_KEXEC=y | ||
279 | CONFIG_ATAGS_PROC=y | ||
280 | |||
281 | # | ||
282 | # CPU Power Management | ||
283 | # | ||
284 | # CONFIG_CPU_IDLE is not set | ||
285 | |||
286 | # | ||
287 | # Floating point emulation | ||
288 | # | ||
289 | |||
290 | # | ||
291 | # At least one emulation must be selected | ||
292 | # | ||
293 | CONFIG_FPE_NWFPE=y | ||
294 | # CONFIG_FPE_NWFPE_XP is not set | ||
295 | # CONFIG_FPE_FASTFPE is not set | ||
296 | # CONFIG_VFP is not set | ||
297 | |||
298 | # | ||
299 | # Userspace binary formats | ||
300 | # | ||
301 | CONFIG_BINFMT_ELF=y | ||
302 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
303 | CONFIG_HAVE_AOUT=y | ||
304 | CONFIG_BINFMT_AOUT=y | ||
305 | CONFIG_BINFMT_MISC=y | ||
306 | |||
307 | # | ||
308 | # Power management options | ||
309 | # | ||
310 | # CONFIG_PM is not set | ||
311 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
312 | # CONFIG_NET is not set | ||
313 | |||
314 | # | ||
315 | # Device Drivers | ||
316 | # | ||
317 | |||
318 | # | ||
319 | # Generic Driver Options | ||
320 | # | ||
321 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
322 | # CONFIG_DEVTMPFS is not set | ||
323 | CONFIG_STANDALONE=y | ||
324 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
325 | CONFIG_FW_LOADER=y | ||
326 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
327 | CONFIG_EXTRA_FIRMWARE="" | ||
328 | # CONFIG_SYS_HYPERVISOR is not set | ||
329 | CONFIG_MTD=y | ||
330 | # CONFIG_MTD_DEBUG is not set | ||
331 | CONFIG_MTD_CONCAT=y | ||
332 | CONFIG_MTD_PARTITIONS=y | ||
333 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
334 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
335 | # CONFIG_MTD_AFS_PARTS is not set | ||
336 | # CONFIG_MTD_AR7_PARTS is not set | ||
337 | |||
338 | # | ||
339 | # User Modules And Translation Layers | ||
340 | # | ||
341 | CONFIG_MTD_CHAR=y | ||
342 | CONFIG_MTD_BLKDEVS=y | ||
343 | CONFIG_MTD_BLOCK=y | ||
344 | # CONFIG_FTL is not set | ||
345 | # CONFIG_NFTL is not set | ||
346 | # CONFIG_INFTL is not set | ||
347 | # CONFIG_RFD_FTL is not set | ||
348 | # CONFIG_SSFDC is not set | ||
349 | # CONFIG_MTD_OOPS is not set | ||
350 | |||
351 | # | ||
352 | # RAM/ROM/Flash chip drivers | ||
353 | # | ||
354 | CONFIG_MTD_CFI=y | ||
355 | # CONFIG_MTD_JEDECPROBE is not set | ||
356 | CONFIG_MTD_GEN_PROBE=y | ||
357 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
358 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
359 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
360 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
361 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
362 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
363 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
364 | CONFIG_MTD_CFI_I1=y | ||
365 | CONFIG_MTD_CFI_I2=y | ||
366 | # CONFIG_MTD_CFI_I4 is not set | ||
367 | # CONFIG_MTD_CFI_I8 is not set | ||
368 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
369 | CONFIG_MTD_CFI_AMDSTD=y | ||
370 | # CONFIG_MTD_CFI_STAA is not set | ||
371 | CONFIG_MTD_CFI_UTIL=y | ||
372 | # CONFIG_MTD_RAM is not set | ||
373 | # CONFIG_MTD_ROM is not set | ||
374 | # CONFIG_MTD_ABSENT is not set | ||
375 | |||
376 | # | ||
377 | # Mapping drivers for chip access | ||
378 | # | ||
379 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
380 | CONFIG_MTD_PHYSMAP=y | ||
381 | # CONFIG_MTD_PHYSMAP_COMPAT is not set | ||
382 | # CONFIG_MTD_ARM_INTEGRATOR is not set | ||
383 | # CONFIG_MTD_PLATRAM is not set | ||
384 | |||
385 | # | ||
386 | # Self-contained MTD device drivers | ||
387 | # | ||
388 | # CONFIG_MTD_SLRAM is not set | ||
389 | # CONFIG_MTD_PHRAM is not set | ||
390 | # CONFIG_MTD_MTDRAM is not set | ||
391 | # CONFIG_MTD_BLOCK2MTD is not set | ||
392 | |||
393 | # | ||
394 | # Disk-On-Chip Device Drivers | ||
395 | # | ||
396 | # CONFIG_MTD_DOC2000 is not set | ||
397 | # CONFIG_MTD_DOC2001 is not set | ||
398 | # CONFIG_MTD_DOC2001PLUS is not set | ||
399 | # CONFIG_MTD_NAND is not set | ||
400 | # CONFIG_MTD_ONENAND is not set | ||
401 | |||
402 | # | ||
403 | # LPDDR flash memory drivers | ||
404 | # | ||
405 | # CONFIG_MTD_LPDDR is not set | ||
406 | |||
407 | # | ||
408 | # UBI - Unsorted block images | ||
409 | # | ||
410 | # CONFIG_MTD_UBI is not set | ||
411 | # CONFIG_PARPORT is not set | ||
412 | CONFIG_BLK_DEV=y | ||
413 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
414 | # CONFIG_BLK_DEV_LOOP is not set | ||
415 | # CONFIG_BLK_DEV_UB is not set | ||
416 | CONFIG_BLK_DEV_RAM=y | ||
417 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
418 | CONFIG_BLK_DEV_RAM_SIZE=16384 | ||
419 | # CONFIG_BLK_DEV_XIP is not set | ||
420 | # CONFIG_CDROM_PKTCDVD is not set | ||
421 | # CONFIG_MG_DISK is not set | ||
422 | # CONFIG_MISC_DEVICES is not set | ||
423 | CONFIG_HAVE_IDE=y | ||
424 | # CONFIG_IDE is not set | ||
425 | |||
426 | # | ||
427 | # SCSI device support | ||
428 | # | ||
429 | # CONFIG_RAID_ATTRS is not set | ||
430 | CONFIG_SCSI=y | ||
431 | CONFIG_SCSI_DMA=y | ||
432 | # CONFIG_SCSI_TGT is not set | ||
433 | # CONFIG_SCSI_NETLINK is not set | ||
434 | # CONFIG_SCSI_PROC_FS is not set | ||
435 | |||
436 | # | ||
437 | # SCSI support type (disk, tape, CD-ROM) | ||
438 | # | ||
439 | CONFIG_BLK_DEV_SD=y | ||
440 | # CONFIG_CHR_DEV_ST is not set | ||
441 | # CONFIG_CHR_DEV_OSST is not set | ||
442 | # CONFIG_BLK_DEV_SR is not set | ||
443 | # CONFIG_CHR_DEV_SG is not set | ||
444 | # CONFIG_CHR_DEV_SCH is not set | ||
445 | # CONFIG_SCSI_MULTI_LUN is not set | ||
446 | # CONFIG_SCSI_CONSTANTS is not set | ||
447 | # CONFIG_SCSI_LOGGING is not set | ||
448 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
449 | |||
450 | # | ||
451 | # SCSI Transports | ||
452 | # | ||
453 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
454 | # CONFIG_SCSI_FC_ATTRS is not set | ||
455 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
456 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
457 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
458 | # CONFIG_SCSI_LOWLEVEL is not set | ||
459 | # CONFIG_SCSI_DH is not set | ||
460 | # CONFIG_SCSI_OSD_INITIATOR is not set | ||
461 | # CONFIG_ATA is not set | ||
462 | # CONFIG_MD is not set | ||
463 | # CONFIG_PHONE is not set | ||
464 | |||
465 | # | ||
466 | # Input device support | ||
467 | # | ||
468 | CONFIG_INPUT=y | ||
469 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
470 | # CONFIG_INPUT_POLLDEV is not set | ||
471 | |||
472 | # | ||
473 | # Userland interfaces | ||
474 | # | ||
475 | CONFIG_INPUT_MOUSEDEV=y | ||
476 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
477 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
478 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
479 | # CONFIG_INPUT_JOYDEV is not set | ||
480 | # CONFIG_INPUT_EVDEV is not set | ||
481 | # CONFIG_INPUT_EVBUG is not set | ||
482 | |||
483 | # | ||
484 | # Input Device Drivers | ||
485 | # | ||
486 | # CONFIG_INPUT_KEYBOARD is not set | ||
487 | # CONFIG_INPUT_MOUSE is not set | ||
488 | # CONFIG_INPUT_JOYSTICK is not set | ||
489 | # CONFIG_INPUT_TABLET is not set | ||
490 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
491 | # CONFIG_INPUT_MISC is not set | ||
492 | |||
493 | # | ||
494 | # Hardware I/O ports | ||
495 | # | ||
496 | # CONFIG_SERIO is not set | ||
497 | # CONFIG_GAMEPORT is not set | ||
498 | |||
499 | # | ||
500 | # Character devices | ||
501 | # | ||
502 | CONFIG_VT=y | ||
503 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
504 | CONFIG_VT_CONSOLE=y | ||
505 | CONFIG_HW_CONSOLE=y | ||
506 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
507 | # CONFIG_DEVKMEM is not set | ||
508 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
509 | |||
510 | # | ||
511 | # Serial drivers | ||
512 | # | ||
513 | CONFIG_SERIAL_8250=y | ||
514 | CONFIG_SERIAL_8250_CONSOLE=y | ||
515 | CONFIG_SERIAL_8250_NR_UARTS=1 | ||
516 | CONFIG_SERIAL_8250_RUNTIME_UARTS=1 | ||
517 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
518 | |||
519 | # | ||
520 | # Non-8250 serial port support | ||
521 | # | ||
522 | CONFIG_SERIAL_CORE=y | ||
523 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
524 | CONFIG_UNIX98_PTYS=y | ||
525 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
526 | # CONFIG_LEGACY_PTYS is not set | ||
527 | # CONFIG_IPMI_HANDLER is not set | ||
528 | # CONFIG_HW_RANDOM is not set | ||
529 | # CONFIG_R3964 is not set | ||
530 | # CONFIG_RAW_DRIVER is not set | ||
531 | # CONFIG_TCG_TPM is not set | ||
532 | # CONFIG_I2C is not set | ||
533 | # CONFIG_SPI is not set | ||
534 | |||
535 | # | ||
536 | # PPS support | ||
537 | # | ||
538 | # CONFIG_PPS is not set | ||
539 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
540 | CONFIG_GPIOLIB=y | ||
541 | # CONFIG_GPIO_SYSFS is not set | ||
542 | |||
543 | # | ||
544 | # Memory mapped GPIO expanders: | ||
545 | # | ||
546 | |||
547 | # | ||
548 | # I2C GPIO expanders: | ||
549 | # | ||
550 | |||
551 | # | ||
552 | # PCI GPIO expanders: | ||
553 | # | ||
554 | |||
555 | # | ||
556 | # SPI GPIO expanders: | ||
557 | # | ||
558 | |||
559 | # | ||
560 | # AC97 GPIO expanders: | ||
561 | # | ||
562 | # CONFIG_W1 is not set | ||
563 | # CONFIG_POWER_SUPPLY is not set | ||
564 | # CONFIG_HWMON is not set | ||
565 | # CONFIG_THERMAL is not set | ||
566 | # CONFIG_WATCHDOG is not set | ||
567 | CONFIG_SSB_POSSIBLE=y | ||
568 | |||
569 | # | ||
570 | # Sonics Silicon Backplane | ||
571 | # | ||
572 | # CONFIG_SSB is not set | ||
573 | |||
574 | # | ||
575 | # Multifunction device drivers | ||
576 | # | ||
577 | # CONFIG_MFD_CORE is not set | ||
578 | # CONFIG_MFD_SM501 is not set | ||
579 | # CONFIG_MFD_ASIC3 is not set | ||
580 | # CONFIG_HTC_EGPIO is not set | ||
581 | # CONFIG_HTC_PASIC3 is not set | ||
582 | # CONFIG_MFD_TMIO is not set | ||
583 | # CONFIG_MFD_T7L66XB is not set | ||
584 | # CONFIG_MFD_TC6387XB is not set | ||
585 | # CONFIG_MFD_TC6393XB is not set | ||
586 | # CONFIG_REGULATOR is not set | ||
587 | # CONFIG_MEDIA_SUPPORT is not set | ||
588 | |||
589 | # | ||
590 | # Graphics support | ||
591 | # | ||
592 | # CONFIG_VGASTATE is not set | ||
593 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
594 | # CONFIG_FB is not set | ||
595 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
596 | |||
597 | # | ||
598 | # Display device support | ||
599 | # | ||
600 | # CONFIG_DISPLAY_SUPPORT is not set | ||
601 | |||
602 | # | ||
603 | # Console display driver support | ||
604 | # | ||
605 | # CONFIG_VGA_CONSOLE is not set | ||
606 | CONFIG_DUMMY_CONSOLE=y | ||
607 | # CONFIG_SOUND is not set | ||
608 | # CONFIG_HID_SUPPORT is not set | ||
609 | CONFIG_USB_SUPPORT=y | ||
610 | CONFIG_USB_ARCH_HAS_HCD=y | ||
611 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
612 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
613 | CONFIG_USB=y | ||
614 | # CONFIG_USB_DEBUG is not set | ||
615 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
616 | |||
617 | # | ||
618 | # Miscellaneous USB options | ||
619 | # | ||
620 | # CONFIG_USB_DEVICEFS is not set | ||
621 | CONFIG_USB_DEVICE_CLASS=y | ||
622 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
623 | # CONFIG_USB_OTG is not set | ||
624 | CONFIG_USB_MON=y | ||
625 | # CONFIG_USB_WUSB is not set | ||
626 | # CONFIG_USB_WUSB_CBAF is not set | ||
627 | |||
628 | # | ||
629 | # USB Host Controller Drivers | ||
630 | # | ||
631 | # CONFIG_USB_C67X00_HCD is not set | ||
632 | # CONFIG_USB_EHCI_HCD is not set | ||
633 | # CONFIG_USB_OXU210HP_HCD is not set | ||
634 | # CONFIG_USB_ISP116X_HCD is not set | ||
635 | # CONFIG_USB_ISP1760_HCD is not set | ||
636 | # CONFIG_USB_ISP1362_HCD is not set | ||
637 | # CONFIG_USB_OHCI_HCD is not set | ||
638 | # CONFIG_USB_SL811_HCD is not set | ||
639 | # CONFIG_USB_R8A66597_HCD is not set | ||
640 | # CONFIG_USB_HWA_HCD is not set | ||
641 | # CONFIG_USB_MUSB_HDRC is not set | ||
642 | |||
643 | # | ||
644 | # USB Device Class drivers | ||
645 | # | ||
646 | # CONFIG_USB_ACM is not set | ||
647 | # CONFIG_USB_PRINTER is not set | ||
648 | # CONFIG_USB_WDM is not set | ||
649 | # CONFIG_USB_TMC is not set | ||
650 | |||
651 | # | ||
652 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may | ||
653 | # | ||
654 | |||
655 | # | ||
656 | # also be needed; see USB_STORAGE Help for more info | ||
657 | # | ||
658 | CONFIG_USB_STORAGE=y | ||
659 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
660 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
661 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
662 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
663 | # CONFIG_USB_STORAGE_USBAT is not set | ||
664 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
665 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
666 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
667 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
668 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
669 | # CONFIG_USB_STORAGE_KARMA is not set | ||
670 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set | ||
671 | # CONFIG_USB_LIBUSUAL is not set | ||
672 | |||
673 | # | ||
674 | # USB Imaging devices | ||
675 | # | ||
676 | # CONFIG_USB_MDC800 is not set | ||
677 | # CONFIG_USB_MICROTEK is not set | ||
678 | |||
679 | # | ||
680 | # USB port drivers | ||
681 | # | ||
682 | # CONFIG_USB_SERIAL is not set | ||
683 | |||
684 | # | ||
685 | # USB Miscellaneous drivers | ||
686 | # | ||
687 | # CONFIG_USB_EMI62 is not set | ||
688 | # CONFIG_USB_EMI26 is not set | ||
689 | # CONFIG_USB_ADUTUX is not set | ||
690 | # CONFIG_USB_SEVSEG is not set | ||
691 | # CONFIG_USB_RIO500 is not set | ||
692 | # CONFIG_USB_LEGOTOWER is not set | ||
693 | # CONFIG_USB_LCD is not set | ||
694 | # CONFIG_USB_BERRY_CHARGE is not set | ||
695 | # CONFIG_USB_LED is not set | ||
696 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
697 | # CONFIG_USB_CYTHERM is not set | ||
698 | # CONFIG_USB_IDMOUSE is not set | ||
699 | # CONFIG_USB_FTDI_ELAN is not set | ||
700 | # CONFIG_USB_APPLEDISPLAY is not set | ||
701 | # CONFIG_USB_LD is not set | ||
702 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
703 | # CONFIG_USB_IOWARRIOR is not set | ||
704 | # CONFIG_USB_TEST is not set | ||
705 | # CONFIG_USB_ISIGHTFW is not set | ||
706 | # CONFIG_USB_VST is not set | ||
707 | # CONFIG_USB_GADGET is not set | ||
708 | |||
709 | # | ||
710 | # OTG and related infrastructure | ||
711 | # | ||
712 | # CONFIG_USB_GPIO_VBUS is not set | ||
713 | # CONFIG_NOP_USB_XCEIV is not set | ||
714 | # CONFIG_MMC is not set | ||
715 | # CONFIG_MEMSTICK is not set | ||
716 | # CONFIG_NEW_LEDS is not set | ||
717 | # CONFIG_ACCESSIBILITY is not set | ||
718 | CONFIG_RTC_LIB=y | ||
719 | # CONFIG_RTC_CLASS is not set | ||
720 | # CONFIG_DMADEVICES is not set | ||
721 | # CONFIG_AUXDISPLAY is not set | ||
722 | # CONFIG_UIO is not set | ||
723 | |||
724 | # | ||
725 | # TI VLYNQ | ||
726 | # | ||
727 | # CONFIG_STAGING is not set | ||
728 | |||
729 | # | ||
730 | # File systems | ||
731 | # | ||
732 | # CONFIG_EXT2_FS is not set | ||
733 | # CONFIG_EXT3_FS is not set | ||
734 | # CONFIG_EXT4_FS is not set | ||
735 | # CONFIG_REISERFS_FS is not set | ||
736 | # CONFIG_JFS_FS is not set | ||
737 | CONFIG_FS_POSIX_ACL=y | ||
738 | # CONFIG_XFS_FS is not set | ||
739 | # CONFIG_GFS2_FS is not set | ||
740 | # CONFIG_BTRFS_FS is not set | ||
741 | # CONFIG_NILFS2_FS is not set | ||
742 | CONFIG_FILE_LOCKING=y | ||
743 | CONFIG_FSNOTIFY=y | ||
744 | # CONFIG_DNOTIFY is not set | ||
745 | # CONFIG_INOTIFY is not set | ||
746 | CONFIG_INOTIFY_USER=y | ||
747 | # CONFIG_QUOTA is not set | ||
748 | # CONFIG_AUTOFS_FS is not set | ||
749 | # CONFIG_AUTOFS4_FS is not set | ||
750 | # CONFIG_FUSE_FS is not set | ||
751 | CONFIG_GENERIC_ACL=y | ||
752 | |||
753 | # | ||
754 | # Caches | ||
755 | # | ||
756 | # CONFIG_FSCACHE is not set | ||
757 | |||
758 | # | ||
759 | # CD-ROM/DVD Filesystems | ||
760 | # | ||
761 | # CONFIG_ISO9660_FS is not set | ||
762 | # CONFIG_UDF_FS is not set | ||
763 | |||
764 | # | ||
765 | # DOS/FAT/NT Filesystems | ||
766 | # | ||
767 | # CONFIG_MSDOS_FS is not set | ||
768 | # CONFIG_VFAT_FS is not set | ||
769 | # CONFIG_NTFS_FS is not set | ||
770 | |||
771 | # | ||
772 | # Pseudo filesystems | ||
773 | # | ||
774 | CONFIG_PROC_FS=y | ||
775 | CONFIG_PROC_SYSCTL=y | ||
776 | CONFIG_PROC_PAGE_MONITOR=y | ||
777 | CONFIG_SYSFS=y | ||
778 | CONFIG_TMPFS=y | ||
779 | CONFIG_TMPFS_POSIX_ACL=y | ||
780 | # CONFIG_HUGETLB_PAGE is not set | ||
781 | # CONFIG_CONFIGFS_FS is not set | ||
782 | CONFIG_MISC_FILESYSTEMS=y | ||
783 | # CONFIG_ADFS_FS is not set | ||
784 | # CONFIG_AFFS_FS is not set | ||
785 | # CONFIG_HFS_FS is not set | ||
786 | # CONFIG_HFSPLUS_FS is not set | ||
787 | # CONFIG_BEFS_FS is not set | ||
788 | # CONFIG_BFS_FS is not set | ||
789 | # CONFIG_EFS_FS is not set | ||
790 | # CONFIG_JFFS2_FS is not set | ||
791 | # CONFIG_CRAMFS is not set | ||
792 | # CONFIG_SQUASHFS is not set | ||
793 | # CONFIG_VXFS_FS is not set | ||
794 | # CONFIG_MINIX_FS is not set | ||
795 | # CONFIG_OMFS_FS is not set | ||
796 | # CONFIG_HPFS_FS is not set | ||
797 | # CONFIG_QNX4FS_FS is not set | ||
798 | CONFIG_ROMFS_FS=y | ||
799 | CONFIG_ROMFS_BACKED_BY_BLOCK=y | ||
800 | # CONFIG_ROMFS_BACKED_BY_MTD is not set | ||
801 | # CONFIG_ROMFS_BACKED_BY_BOTH is not set | ||
802 | CONFIG_ROMFS_ON_BLOCK=y | ||
803 | # CONFIG_SYSV_FS is not set | ||
804 | # CONFIG_UFS_FS is not set | ||
805 | |||
806 | # | ||
807 | # Partition Types | ||
808 | # | ||
809 | CONFIG_PARTITION_ADVANCED=y | ||
810 | # CONFIG_ACORN_PARTITION is not set | ||
811 | # CONFIG_OSF_PARTITION is not set | ||
812 | # CONFIG_AMIGA_PARTITION is not set | ||
813 | # CONFIG_ATARI_PARTITION is not set | ||
814 | # CONFIG_MAC_PARTITION is not set | ||
815 | CONFIG_MSDOS_PARTITION=y | ||
816 | # CONFIG_BSD_DISKLABEL is not set | ||
817 | # CONFIG_MINIX_SUBPARTITION is not set | ||
818 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
819 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
820 | # CONFIG_LDM_PARTITION is not set | ||
821 | # CONFIG_SGI_PARTITION is not set | ||
822 | # CONFIG_ULTRIX_PARTITION is not set | ||
823 | # CONFIG_SUN_PARTITION is not set | ||
824 | # CONFIG_KARMA_PARTITION is not set | ||
825 | # CONFIG_EFI_PARTITION is not set | ||
826 | # CONFIG_SYSV68_PARTITION is not set | ||
827 | CONFIG_NLS=y | ||
828 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
829 | CONFIG_NLS_CODEPAGE_437=y | ||
830 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
831 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
832 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
833 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
834 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
835 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
836 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
837 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
838 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
839 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
840 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
841 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
842 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
843 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
844 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
845 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
846 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
847 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
848 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
849 | # CONFIG_NLS_ISO8859_8 is not set | ||
850 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
851 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
852 | # CONFIG_NLS_ASCII is not set | ||
853 | CONFIG_NLS_ISO8859_1=y | ||
854 | # CONFIG_NLS_ISO8859_2 is not set | ||
855 | # CONFIG_NLS_ISO8859_3 is not set | ||
856 | # CONFIG_NLS_ISO8859_4 is not set | ||
857 | # CONFIG_NLS_ISO8859_5 is not set | ||
858 | # CONFIG_NLS_ISO8859_6 is not set | ||
859 | # CONFIG_NLS_ISO8859_7 is not set | ||
860 | # CONFIG_NLS_ISO8859_9 is not set | ||
861 | # CONFIG_NLS_ISO8859_13 is not set | ||
862 | # CONFIG_NLS_ISO8859_14 is not set | ||
863 | # CONFIG_NLS_ISO8859_15 is not set | ||
864 | # CONFIG_NLS_KOI8_R is not set | ||
865 | # CONFIG_NLS_KOI8_U is not set | ||
866 | # CONFIG_NLS_UTF8 is not set | ||
867 | |||
868 | # | ||
869 | # Kernel hacking | ||
870 | # | ||
871 | # CONFIG_PRINTK_TIME is not set | ||
872 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
873 | # CONFIG_ENABLE_MUST_CHECK is not set | ||
874 | CONFIG_FRAME_WARN=1024 | ||
875 | # CONFIG_MAGIC_SYSRQ is not set | ||
876 | # CONFIG_STRIP_ASM_SYMS is not set | ||
877 | # CONFIG_UNUSED_SYMBOLS is not set | ||
878 | CONFIG_DEBUG_FS=y | ||
879 | # CONFIG_HEADERS_CHECK is not set | ||
880 | # CONFIG_DEBUG_KERNEL is not set | ||
881 | CONFIG_DEBUG_BUGVERBOSE=y | ||
882 | CONFIG_DEBUG_MEMORY_INIT=y | ||
883 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
884 | # CONFIG_LATENCYTOP is not set | ||
885 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
886 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
887 | CONFIG_TRACING_SUPPORT=y | ||
888 | # CONFIG_FTRACE is not set | ||
889 | # CONFIG_DYNAMIC_DEBUG is not set | ||
890 | # CONFIG_SAMPLES is not set | ||
891 | CONFIG_HAVE_ARCH_KGDB=y | ||
892 | CONFIG_ARM_UNWIND=y | ||
893 | # CONFIG_DEBUG_USER is not set | ||
894 | |||
895 | # | ||
896 | # Security options | ||
897 | # | ||
898 | # CONFIG_KEYS is not set | ||
899 | # CONFIG_SECURITY is not set | ||
900 | # CONFIG_SECURITYFS is not set | ||
901 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
902 | # CONFIG_CRYPTO is not set | ||
903 | # CONFIG_BINARY_PRINTF is not set | ||
904 | |||
905 | # | ||
906 | # Library routines | ||
907 | # | ||
908 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
909 | # CONFIG_CRC_CCITT is not set | ||
910 | # CONFIG_CRC16 is not set | ||
911 | # CONFIG_CRC_T10DIF is not set | ||
912 | # CONFIG_CRC_ITU_T is not set | ||
913 | # CONFIG_CRC32 is not set | ||
914 | # CONFIG_CRC7 is not set | ||
915 | # CONFIG_LIBCRC32C is not set | ||
916 | CONFIG_ZLIB_INFLATE=y | ||
917 | CONFIG_DECOMPRESS_GZIP=y | ||
918 | CONFIG_DECOMPRESS_BZIP2=y | ||
919 | CONFIG_DECOMPRESS_LZMA=y | ||
920 | CONFIG_HAS_IOMEM=y | ||
921 | CONFIG_HAS_IOPORT=y | ||
922 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/configs/omap3_pandora_defconfig b/arch/arm/configs/omap3_pandora_defconfig index b54ad2e2da36..150deafb0a6a 100644 --- a/arch/arm/configs/omap3_pandora_defconfig +++ b/arch/arm/configs/omap3_pandora_defconfig | |||
@@ -611,7 +611,7 @@ CONFIG_INPUT_KEYBOARD=y | |||
611 | # CONFIG_KEYBOARD_XTKBD is not set | 611 | # CONFIG_KEYBOARD_XTKBD is not set |
612 | # CONFIG_KEYBOARD_NEWTON is not set | 612 | # CONFIG_KEYBOARD_NEWTON is not set |
613 | # CONFIG_KEYBOARD_STOWAWAY is not set | 613 | # CONFIG_KEYBOARD_STOWAWAY is not set |
614 | # CONFIG_KEYBOARD_GPIO is not set | 614 | CONFIG_KEYBOARD_GPIO=y |
615 | CONFIG_INPUT_MOUSE=y | 615 | CONFIG_INPUT_MOUSE=y |
616 | # CONFIG_MOUSE_PS2 is not set | 616 | # CONFIG_MOUSE_PS2 is not set |
617 | # CONFIG_MOUSE_SERIAL is not set | 617 | # CONFIG_MOUSE_SERIAL is not set |
@@ -634,7 +634,8 @@ CONFIG_TOUCHSCREEN_ADS7846=y | |||
634 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | 634 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set |
635 | # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set | 635 | # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set |
636 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set | 636 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set |
637 | # CONFIG_INPUT_MISC is not set | 637 | CONFIG_INPUT_MISC=y |
638 | CONFIG_INPUT_TWL4030_PWRBUTTON=y | ||
638 | 639 | ||
639 | # | 640 | # |
640 | # Hardware I/O ports | 641 | # Hardware I/O ports |
@@ -834,7 +835,29 @@ CONFIG_DAB=y | |||
834 | # | 835 | # |
835 | # CONFIG_VGA_CONSOLE is not set | 836 | # CONFIG_VGA_CONSOLE is not set |
836 | CONFIG_DUMMY_CONSOLE=y | 837 | CONFIG_DUMMY_CONSOLE=y |
837 | # CONFIG_SOUND is not set | 838 | CONFIG_SOUND=y |
839 | CONFIG_SOUND_OSS_CORE=y | ||
840 | CONFIG_SOUND_OSS_CORE_PRECLAIM=y | ||
841 | CONFIG_SND=y | ||
842 | CONFIG_SND_TIMER=y | ||
843 | CONFIG_SND_PCM=y | ||
844 | CONFIG_SND_JACK=y | ||
845 | CONFIG_SND_OSSEMUL=y | ||
846 | CONFIG_SND_MIXER_OSS=y | ||
847 | CONFIG_SND_PCM_OSS=y | ||
848 | CONFIG_SND_PCM_OSS_PLUGINS=y | ||
849 | CONFIG_SND_SUPPORT_OLD_API=y | ||
850 | CONFIG_SND_VERBOSE_PROCFS=y | ||
851 | CONFIG_SND_VERBOSE_PRINTK=y | ||
852 | CONFIG_SND_DRIVERS=y | ||
853 | CONFIG_SND_USB=y | ||
854 | CONFIG_SND_SOC=y | ||
855 | CONFIG_SND_OMAP_SOC=y | ||
856 | CONFIG_SND_OMAP_SOC_MCBSP=y | ||
857 | CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y | ||
858 | CONFIG_SND_SOC_I2C_AND_SPI=y | ||
859 | CONFIG_SND_SOC_TWL4030=y | ||
860 | |||
838 | CONFIG_HID_SUPPORT=y | 861 | CONFIG_HID_SUPPORT=y |
839 | CONFIG_HID=y | 862 | CONFIG_HID=y |
840 | # CONFIG_HID_DEBUG is not set | 863 | # CONFIG_HID_DEBUG is not set |
@@ -1020,7 +1043,13 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
1020 | # CONFIG_MMC_SPI is not set | 1043 | # CONFIG_MMC_SPI is not set |
1021 | # CONFIG_MEMSTICK is not set | 1044 | # CONFIG_MEMSTICK is not set |
1022 | # CONFIG_ACCESSIBILITY is not set | 1045 | # CONFIG_ACCESSIBILITY is not set |
1023 | # CONFIG_NEW_LEDS is not set | 1046 | CONFIG_NEW_LEDS=y |
1047 | CONFIG_LEDS_CLASS=y | ||
1048 | CONFIG_LEDS_GPIO=y | ||
1049 | CONFIG_LEDS_GPIO_PLATFORM=y | ||
1050 | CONFIG_LEDS_TRIGGERS=y | ||
1051 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
1052 | |||
1024 | CONFIG_RTC_LIB=y | 1053 | CONFIG_RTC_LIB=y |
1025 | CONFIG_RTC_CLASS=y | 1054 | CONFIG_RTC_CLASS=y |
1026 | CONFIG_RTC_HCTOSYS=y | 1055 | CONFIG_RTC_HCTOSYS=y |
@@ -1084,9 +1113,12 @@ CONFIG_RTC_DRV_TWL4030=y | |||
1084 | # on-CPU RTC drivers | 1113 | # on-CPU RTC drivers |
1085 | # | 1114 | # |
1086 | # CONFIG_DMADEVICES is not set | 1115 | # CONFIG_DMADEVICES is not set |
1087 | # CONFIG_REGULATOR is not set | ||
1088 | # CONFIG_UIO is not set | 1116 | # CONFIG_UIO is not set |
1089 | 1117 | ||
1118 | CONFIG_REGULATOR=y | ||
1119 | CONFIG_REGULATOR_FIXED_VOLTAGE=y | ||
1120 | CONFIG_REGULATOR_TWL4030=y | ||
1121 | |||
1090 | # | 1122 | # |
1091 | # File systems | 1123 | # File systems |
1092 | # | 1124 | # |
@@ -1407,3 +1439,10 @@ CONFIG_PLIST=y | |||
1407 | CONFIG_HAS_IOMEM=y | 1439 | CONFIG_HAS_IOMEM=y |
1408 | CONFIG_HAS_IOPORT=y | 1440 | CONFIG_HAS_IOPORT=y |
1409 | CONFIG_HAS_DMA=y | 1441 | CONFIG_HAS_DMA=y |
1442 | |||
1443 | # added by hand for now | ||
1444 | CONFIG_KEYBOARD_TWL4030=y | ||
1445 | CONFIG_USB_OTG_UTILS=y | ||
1446 | CONFIG_TWL4030_USB=y | ||
1447 | CONFIG_MMC_OMAP_HS=y | ||
1448 | |||
diff --git a/arch/arm/configs/omap_3430sdp_defconfig b/arch/arm/configs/omap_3430sdp_defconfig index 8a4a7e2ba87b..5a305f015307 100644 --- a/arch/arm/configs/omap_3430sdp_defconfig +++ b/arch/arm/configs/omap_3430sdp_defconfig | |||
@@ -1703,7 +1703,14 @@ CONFIG_RTC_DRV_TWL4030=y | |||
1703 | # on-CPU RTC drivers | 1703 | # on-CPU RTC drivers |
1704 | # | 1704 | # |
1705 | # CONFIG_DMADEVICES is not set | 1705 | # CONFIG_DMADEVICES is not set |
1706 | # CONFIG_REGULATOR is not set | 1706 | CONFIG_REGULATOR=y |
1707 | # CONFIG_REGULATOR_DEBUG is not set | ||
1708 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set | ||
1709 | # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set | ||
1710 | # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set | ||
1711 | # CONFIG_REGULATOR_BQ24022 is not set | ||
1712 | # CONFIG_REGULATOR_MAX1586 is not set | ||
1713 | CONFIG_REGULATOR_TWL4030=y | ||
1707 | # CONFIG_UIO is not set | 1714 | # CONFIG_UIO is not set |
1708 | # CONFIG_STAGING is not set | 1715 | # CONFIG_STAGING is not set |
1709 | 1716 | ||
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig index 9e2385293ecb..5383cd0dff54 100644 --- a/arch/arm/configs/orion5x_defconfig +++ b/arch/arm/configs/orion5x_defconfig | |||
@@ -1,15 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.30-rc4 | 3 | # Linux kernel version: 2.6.32-rc6 |
4 | # Mon May 4 14:07:25 2009 | 4 | # Sat Nov 7 20:52:21 2009 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | 7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y |
8 | CONFIG_GENERIC_GPIO=y | 8 | CONFIG_GENERIC_GPIO=y |
9 | CONFIG_GENERIC_TIME=y | 9 | CONFIG_GENERIC_TIME=y |
10 | CONFIG_GENERIC_CLOCKEVENTS=y | 10 | CONFIG_GENERIC_CLOCKEVENTS=y |
11 | CONFIG_MMU=y | ||
12 | # CONFIG_NO_IOPORT is not set | ||
13 | CONFIG_GENERIC_HARDIRQS=y | 11 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_STACKTRACE_SUPPORT=y | 12 | CONFIG_STACKTRACE_SUPPORT=y |
15 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 13 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
@@ -18,13 +16,12 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
18 | CONFIG_HARDIRQS_SW_RESEND=y | 16 | CONFIG_HARDIRQS_SW_RESEND=y |
19 | CONFIG_GENERIC_IRQ_PROBE=y | 17 | CONFIG_GENERIC_IRQ_PROBE=y |
20 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 18 | 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 | 19 | CONFIG_GENERIC_HWEIGHT=y |
24 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 20 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
25 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 21 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
26 | CONFIG_VECTORS_BASE=0xffff0000 | 22 | CONFIG_VECTORS_BASE=0xffff0000 |
27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
24 | CONFIG_CONSTRUCTORS=y | ||
28 | 25 | ||
29 | # | 26 | # |
30 | # General setup | 27 | # General setup |
@@ -46,11 +43,12 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
46 | # | 43 | # |
47 | # RCU Subsystem | 44 | # RCU Subsystem |
48 | # | 45 | # |
49 | CONFIG_CLASSIC_RCU=y | 46 | CONFIG_TREE_RCU=y |
50 | # CONFIG_TREE_RCU is not set | 47 | # CONFIG_TREE_PREEMPT_RCU is not set |
51 | # CONFIG_PREEMPT_RCU is not set | 48 | # CONFIG_RCU_TRACE is not set |
49 | CONFIG_RCU_FANOUT=32 | ||
50 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
52 | # CONFIG_TREE_RCU_TRACE is not set | 51 | # CONFIG_TREE_RCU_TRACE is not set |
53 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
54 | # CONFIG_IKCONFIG is not set | 52 | # CONFIG_IKCONFIG is not set |
55 | CONFIG_LOG_BUF_SHIFT=14 | 53 | CONFIG_LOG_BUF_SHIFT=14 |
56 | # CONFIG_GROUP_SCHED is not set | 54 | # CONFIG_GROUP_SCHED is not set |
@@ -69,7 +67,6 @@ CONFIG_SYSCTL_SYSCALL=y | |||
69 | CONFIG_KALLSYMS=y | 67 | CONFIG_KALLSYMS=y |
70 | CONFIG_KALLSYMS_ALL=y | 68 | CONFIG_KALLSYMS_ALL=y |
71 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 69 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
72 | # CONFIG_STRIP_ASM_SYMS is not set | ||
73 | CONFIG_HOTPLUG=y | 70 | CONFIG_HOTPLUG=y |
74 | CONFIG_PRINTK=y | 71 | CONFIG_PRINTK=y |
75 | CONFIG_BUG=y | 72 | CONFIG_BUG=y |
@@ -82,6 +79,10 @@ CONFIG_TIMERFD=y | |||
82 | CONFIG_EVENTFD=y | 79 | CONFIG_EVENTFD=y |
83 | CONFIG_SHMEM=y | 80 | CONFIG_SHMEM=y |
84 | CONFIG_AIO=y | 81 | CONFIG_AIO=y |
82 | |||
83 | # | ||
84 | # Kernel Performance Events And Counters | ||
85 | # | ||
85 | CONFIG_VM_EVENT_COUNTERS=y | 86 | CONFIG_VM_EVENT_COUNTERS=y |
86 | CONFIG_PCI_QUIRKS=y | 87 | CONFIG_PCI_QUIRKS=y |
87 | # CONFIG_SLUB_DEBUG is not set | 88 | # CONFIG_SLUB_DEBUG is not set |
@@ -91,13 +92,17 @@ CONFIG_SLUB=y | |||
91 | # CONFIG_SLOB is not set | 92 | # CONFIG_SLOB is not set |
92 | CONFIG_PROFILING=y | 93 | CONFIG_PROFILING=y |
93 | CONFIG_TRACEPOINTS=y | 94 | CONFIG_TRACEPOINTS=y |
94 | # CONFIG_MARKERS is not set | ||
95 | CONFIG_OPROFILE=y | 95 | CONFIG_OPROFILE=y |
96 | CONFIG_HAVE_OPROFILE=y | 96 | CONFIG_HAVE_OPROFILE=y |
97 | CONFIG_KPROBES=y | 97 | CONFIG_KPROBES=y |
98 | CONFIG_KRETPROBES=y | 98 | CONFIG_KRETPROBES=y |
99 | CONFIG_HAVE_KPROBES=y | 99 | CONFIG_HAVE_KPROBES=y |
100 | CONFIG_HAVE_KRETPROBES=y | 100 | CONFIG_HAVE_KRETPROBES=y |
101 | |||
102 | # | ||
103 | # GCOV-based kernel profiling | ||
104 | # | ||
105 | # CONFIG_GCOV_KERNEL is not set | ||
101 | # CONFIG_SLOW_WORK is not set | 106 | # CONFIG_SLOW_WORK is not set |
102 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 107 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
103 | CONFIG_RT_MUTEXES=y | 108 | CONFIG_RT_MUTEXES=y |
@@ -109,7 +114,7 @@ CONFIG_MODULE_UNLOAD=y | |||
109 | # CONFIG_MODVERSIONS is not set | 114 | # CONFIG_MODVERSIONS is not set |
110 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 115 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
111 | CONFIG_BLOCK=y | 116 | CONFIG_BLOCK=y |
112 | # CONFIG_LBD is not set | 117 | CONFIG_LBDAF=y |
113 | # CONFIG_BLK_DEV_BSG is not set | 118 | # CONFIG_BLK_DEV_BSG is not set |
114 | # CONFIG_BLK_DEV_INTEGRITY is not set | 119 | # CONFIG_BLK_DEV_INTEGRITY is not set |
115 | 120 | ||
@@ -130,19 +135,22 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
130 | # | 135 | # |
131 | # System Type | 136 | # System Type |
132 | # | 137 | # |
138 | CONFIG_MMU=y | ||
133 | # CONFIG_ARCH_AAEC2000 is not set | 139 | # CONFIG_ARCH_AAEC2000 is not set |
134 | # CONFIG_ARCH_INTEGRATOR is not set | 140 | # CONFIG_ARCH_INTEGRATOR is not set |
135 | # CONFIG_ARCH_REALVIEW is not set | 141 | # CONFIG_ARCH_REALVIEW is not set |
136 | # CONFIG_ARCH_VERSATILE is not set | 142 | # CONFIG_ARCH_VERSATILE is not set |
137 | # CONFIG_ARCH_AT91 is not set | 143 | # CONFIG_ARCH_AT91 is not set |
138 | # CONFIG_ARCH_CLPS711X is not set | 144 | # CONFIG_ARCH_CLPS711X is not set |
145 | # CONFIG_ARCH_GEMINI is not set | ||
139 | # CONFIG_ARCH_EBSA110 is not set | 146 | # CONFIG_ARCH_EBSA110 is not set |
140 | # CONFIG_ARCH_EP93XX is not set | 147 | # CONFIG_ARCH_EP93XX is not set |
141 | # CONFIG_ARCH_GEMINI is not set | ||
142 | # CONFIG_ARCH_FOOTBRIDGE is not set | 148 | # CONFIG_ARCH_FOOTBRIDGE is not set |
149 | # CONFIG_ARCH_MXC is not set | ||
150 | # CONFIG_ARCH_STMP3XXX is not set | ||
143 | # CONFIG_ARCH_NETX is not set | 151 | # CONFIG_ARCH_NETX is not set |
144 | # CONFIG_ARCH_H720X is not set | 152 | # CONFIG_ARCH_H720X is not set |
145 | # CONFIG_ARCH_IMX is not set | 153 | # CONFIG_ARCH_NOMADIK is not set |
146 | # CONFIG_ARCH_IOP13XX is not set | 154 | # CONFIG_ARCH_IOP13XX is not set |
147 | # CONFIG_ARCH_IOP32X is not set | 155 | # CONFIG_ARCH_IOP32X is not set |
148 | # CONFIG_ARCH_IOP33X is not set | 156 | # CONFIG_ARCH_IOP33X is not set |
@@ -151,25 +159,27 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
151 | # CONFIG_ARCH_IXP4XX is not set | 159 | # CONFIG_ARCH_IXP4XX is not set |
152 | # CONFIG_ARCH_L7200 is not set | 160 | # CONFIG_ARCH_L7200 is not set |
153 | # CONFIG_ARCH_KIRKWOOD is not set | 161 | # CONFIG_ARCH_KIRKWOOD is not set |
154 | # CONFIG_ARCH_KS8695 is not set | ||
155 | # CONFIG_ARCH_NS9XXX is not set | ||
156 | # CONFIG_ARCH_LOKI is not set | 162 | # CONFIG_ARCH_LOKI is not set |
157 | # CONFIG_ARCH_MV78XX0 is not set | 163 | # CONFIG_ARCH_MV78XX0 is not set |
158 | # CONFIG_ARCH_MXC is not set | ||
159 | CONFIG_ARCH_ORION5X=y | 164 | CONFIG_ARCH_ORION5X=y |
165 | # CONFIG_ARCH_MMP is not set | ||
166 | # CONFIG_ARCH_KS8695 is not set | ||
167 | # CONFIG_ARCH_NS9XXX is not set | ||
168 | # CONFIG_ARCH_W90X900 is not set | ||
160 | # CONFIG_ARCH_PNX4008 is not set | 169 | # CONFIG_ARCH_PNX4008 is not set |
161 | # CONFIG_ARCH_PXA is not set | 170 | # CONFIG_ARCH_PXA is not set |
162 | # CONFIG_ARCH_MMP is not set | 171 | # CONFIG_ARCH_MSM is not set |
163 | # CONFIG_ARCH_RPC is not set | 172 | # CONFIG_ARCH_RPC is not set |
164 | # CONFIG_ARCH_SA1100 is not set | 173 | # CONFIG_ARCH_SA1100 is not set |
165 | # CONFIG_ARCH_S3C2410 is not set | 174 | # CONFIG_ARCH_S3C2410 is not set |
166 | # CONFIG_ARCH_S3C64XX is not set | 175 | # CONFIG_ARCH_S3C64XX is not set |
176 | # CONFIG_ARCH_S5PC1XX is not set | ||
167 | # CONFIG_ARCH_SHARK is not set | 177 | # CONFIG_ARCH_SHARK is not set |
168 | # CONFIG_ARCH_LH7A40X is not set | 178 | # CONFIG_ARCH_LH7A40X is not set |
179 | # CONFIG_ARCH_U300 is not set | ||
169 | # CONFIG_ARCH_DAVINCI is not set | 180 | # CONFIG_ARCH_DAVINCI is not set |
170 | # CONFIG_ARCH_OMAP is not set | 181 | # CONFIG_ARCH_OMAP is not set |
171 | # CONFIG_ARCH_MSM is not set | 182 | # CONFIG_ARCH_BCMRING is not set |
172 | # CONFIG_ARCH_W90X900 is not set | ||
173 | 183 | ||
174 | # | 184 | # |
175 | # Orion Implementations | 185 | # Orion Implementations |
@@ -187,6 +197,9 @@ CONFIG_MACH_WRT350N_V2=y | |||
187 | CONFIG_MACH_TS78XX=y | 197 | CONFIG_MACH_TS78XX=y |
188 | CONFIG_MACH_MV2120=y | 198 | CONFIG_MACH_MV2120=y |
189 | CONFIG_MACH_EDMINI_V2=y | 199 | CONFIG_MACH_EDMINI_V2=y |
200 | CONFIG_MACH_D2NET=y | ||
201 | CONFIG_MACH_BIGDISK=y | ||
202 | CONFIG_MACH_NET2BIG=y | ||
190 | CONFIG_MACH_MSS2=y | 203 | CONFIG_MACH_MSS2=y |
191 | CONFIG_MACH_WNR854T=y | 204 | CONFIG_MACH_WNR854T=y |
192 | CONFIG_MACH_RD88F5181L_GE=y | 205 | CONFIG_MACH_RD88F5181L_GE=y |
@@ -202,7 +215,7 @@ CONFIG_CPU_FEROCEON=y | |||
202 | CONFIG_CPU_FEROCEON_OLD_ID=y | 215 | CONFIG_CPU_FEROCEON_OLD_ID=y |
203 | CONFIG_CPU_32v5=y | 216 | CONFIG_CPU_32v5=y |
204 | CONFIG_CPU_ABRT_EV5T=y | 217 | CONFIG_CPU_ABRT_EV5T=y |
205 | CONFIG_CPU_PABRT_NOIFAR=y | 218 | CONFIG_CPU_PABRT_LEGACY=y |
206 | CONFIG_CPU_CACHE_VIVT=y | 219 | CONFIG_CPU_CACHE_VIVT=y |
207 | CONFIG_CPU_COPY_FEROCEON=y | 220 | CONFIG_CPU_COPY_FEROCEON=y |
208 | CONFIG_CPU_TLB_FEROCEON=y | 221 | CONFIG_CPU_TLB_FEROCEON=y |
@@ -215,7 +228,7 @@ CONFIG_CPU_CP15_MMU=y | |||
215 | CONFIG_ARM_THUMB=y | 228 | CONFIG_ARM_THUMB=y |
216 | # CONFIG_CPU_ICACHE_DISABLE is not set | 229 | # CONFIG_CPU_ICACHE_DISABLE is not set |
217 | # CONFIG_CPU_DCACHE_DISABLE is not set | 230 | # CONFIG_CPU_DCACHE_DISABLE is not set |
218 | # CONFIG_OUTER_CACHE is not set | 231 | CONFIG_ARM_L1_CACHE_SHIFT=5 |
219 | 232 | ||
220 | # | 233 | # |
221 | # Bus support | 234 | # Bus support |
@@ -240,11 +253,12 @@ CONFIG_VMSPLIT_3G=y | |||
240 | # CONFIG_VMSPLIT_2G is not set | 253 | # CONFIG_VMSPLIT_2G is not set |
241 | # CONFIG_VMSPLIT_1G is not set | 254 | # CONFIG_VMSPLIT_1G is not set |
242 | CONFIG_PAGE_OFFSET=0xC0000000 | 255 | CONFIG_PAGE_OFFSET=0xC0000000 |
256 | # CONFIG_PREEMPT_NONE is not set | ||
257 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
243 | CONFIG_PREEMPT=y | 258 | CONFIG_PREEMPT=y |
244 | CONFIG_HZ=100 | 259 | CONFIG_HZ=100 |
245 | CONFIG_AEABI=y | 260 | CONFIG_AEABI=y |
246 | CONFIG_OABI_COMPAT=y | 261 | CONFIG_OABI_COMPAT=y |
247 | CONFIG_ARCH_FLATMEM_HAS_HOLES=y | ||
248 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | 262 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set |
249 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | 263 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set |
250 | # CONFIG_HIGHMEM is not set | 264 | # CONFIG_HIGHMEM is not set |
@@ -259,12 +273,14 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096 | |||
259 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 273 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
260 | CONFIG_ZONE_DMA_FLAG=0 | 274 | CONFIG_ZONE_DMA_FLAG=0 |
261 | CONFIG_VIRT_TO_BUS=y | 275 | CONFIG_VIRT_TO_BUS=y |
262 | CONFIG_UNEVICTABLE_LRU=y | ||
263 | CONFIG_HAVE_MLOCK=y | 276 | CONFIG_HAVE_MLOCK=y |
264 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | 277 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y |
278 | # CONFIG_KSM is not set | ||
279 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
265 | CONFIG_LEDS=y | 280 | CONFIG_LEDS=y |
266 | CONFIG_LEDS_CPU=y | 281 | CONFIG_LEDS_CPU=y |
267 | CONFIG_ALIGNMENT_TRAP=y | 282 | CONFIG_ALIGNMENT_TRAP=y |
283 | CONFIG_UACCESS_WITH_MEMCPY=y | ||
268 | 284 | ||
269 | # | 285 | # |
270 | # Boot options | 286 | # Boot options |
@@ -308,6 +324,7 @@ CONFIG_PM=y | |||
308 | # CONFIG_PM_DEBUG is not set | 324 | # CONFIG_PM_DEBUG is not set |
309 | # CONFIG_SUSPEND is not set | 325 | # CONFIG_SUSPEND is not set |
310 | # CONFIG_APM_EMULATION is not set | 326 | # CONFIG_APM_EMULATION is not set |
327 | # CONFIG_PM_RUNTIME is not set | ||
311 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 328 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
312 | CONFIG_NET=y | 329 | CONFIG_NET=y |
313 | 330 | ||
@@ -356,6 +373,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
356 | # CONFIG_NETFILTER is not set | 373 | # CONFIG_NETFILTER is not set |
357 | # CONFIG_IP_DCCP is not set | 374 | # CONFIG_IP_DCCP is not set |
358 | # CONFIG_IP_SCTP is not set | 375 | # CONFIG_IP_SCTP is not set |
376 | # CONFIG_RDS is not set | ||
359 | # CONFIG_TIPC is not set | 377 | # CONFIG_TIPC is not set |
360 | # CONFIG_ATM is not set | 378 | # CONFIG_ATM is not set |
361 | # CONFIG_BRIDGE is not set | 379 | # CONFIG_BRIDGE is not set |
@@ -378,6 +396,7 @@ CONFIG_NET_DSA_MV88E6123_61_65=y | |||
378 | # CONFIG_ECONET is not set | 396 | # CONFIG_ECONET is not set |
379 | # CONFIG_WAN_ROUTER is not set | 397 | # CONFIG_WAN_ROUTER is not set |
380 | # CONFIG_PHONET is not set | 398 | # CONFIG_PHONET is not set |
399 | # CONFIG_IEEE802154 is not set | ||
381 | # CONFIG_NET_SCHED is not set | 400 | # CONFIG_NET_SCHED is not set |
382 | # CONFIG_DCB is not set | 401 | # CONFIG_DCB is not set |
383 | 402 | ||
@@ -394,11 +413,15 @@ CONFIG_NET_PKTGEN=m | |||
394 | # CONFIG_AF_RXRPC is not set | 413 | # CONFIG_AF_RXRPC is not set |
395 | CONFIG_WIRELESS=y | 414 | CONFIG_WIRELESS=y |
396 | # CONFIG_CFG80211 is not set | 415 | # CONFIG_CFG80211 is not set |
416 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
397 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | 417 | # CONFIG_WIRELESS_OLD_REGULATORY is not set |
398 | CONFIG_WIRELESS_EXT=y | 418 | CONFIG_WIRELESS_EXT=y |
399 | CONFIG_WIRELESS_EXT_SYSFS=y | 419 | CONFIG_WIRELESS_EXT_SYSFS=y |
400 | # CONFIG_LIB80211 is not set | 420 | # CONFIG_LIB80211 is not set |
401 | # CONFIG_MAC80211 is not set | 421 | |
422 | # | ||
423 | # CFG80211 needs to be enabled for MAC80211 | ||
424 | # | ||
402 | # CONFIG_WIMAX is not set | 425 | # CONFIG_WIMAX is not set |
403 | # CONFIG_RFKILL is not set | 426 | # CONFIG_RFKILL is not set |
404 | # CONFIG_NET_9P is not set | 427 | # CONFIG_NET_9P is not set |
@@ -411,6 +434,7 @@ CONFIG_WIRELESS_EXT_SYSFS=y | |||
411 | # Generic Driver Options | 434 | # Generic Driver Options |
412 | # | 435 | # |
413 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 436 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
437 | # CONFIG_DEVTMPFS is not set | ||
414 | CONFIG_STANDALONE=y | 438 | CONFIG_STANDALONE=y |
415 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 439 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
416 | CONFIG_FW_LOADER=y | 440 | CONFIG_FW_LOADER=y |
@@ -422,9 +446,9 @@ CONFIG_EXTRA_FIRMWARE="" | |||
422 | # CONFIG_CONNECTOR is not set | 446 | # CONFIG_CONNECTOR is not set |
423 | CONFIG_MTD=y | 447 | CONFIG_MTD=y |
424 | # CONFIG_MTD_DEBUG is not set | 448 | # CONFIG_MTD_DEBUG is not set |
449 | # CONFIG_MTD_TESTS is not set | ||
425 | # CONFIG_MTD_CONCAT is not set | 450 | # CONFIG_MTD_CONCAT is not set |
426 | CONFIG_MTD_PARTITIONS=y | 451 | CONFIG_MTD_PARTITIONS=y |
427 | # CONFIG_MTD_TESTS is not set | ||
428 | # CONFIG_MTD_REDBOOT_PARTS is not set | 452 | # CONFIG_MTD_REDBOOT_PARTS is not set |
429 | CONFIG_MTD_CMDLINE_PARTS=y | 453 | CONFIG_MTD_CMDLINE_PARTS=y |
430 | # CONFIG_MTD_AFS_PARTS is not set | 454 | # CONFIG_MTD_AFS_PARTS is not set |
@@ -537,6 +561,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
537 | # CONFIG_BLK_DEV_RAM is not set | 561 | # CONFIG_BLK_DEV_RAM is not set |
538 | # CONFIG_CDROM_PKTCDVD is not set | 562 | # CONFIG_CDROM_PKTCDVD is not set |
539 | # CONFIG_ATA_OVER_ETH is not set | 563 | # CONFIG_ATA_OVER_ETH is not set |
564 | # CONFIG_MG_DISK is not set | ||
540 | CONFIG_MISC_DEVICES=y | 565 | CONFIG_MISC_DEVICES=y |
541 | # CONFIG_PHANTOM is not set | 566 | # CONFIG_PHANTOM is not set |
542 | # CONFIG_SGI_IOC4 is not set | 567 | # CONFIG_SGI_IOC4 is not set |
@@ -552,7 +577,9 @@ CONFIG_MISC_DEVICES=y | |||
552 | # | 577 | # |
553 | # CONFIG_EEPROM_AT24 is not set | 578 | # CONFIG_EEPROM_AT24 is not set |
554 | # CONFIG_EEPROM_LEGACY is not set | 579 | # CONFIG_EEPROM_LEGACY is not set |
580 | # CONFIG_EEPROM_MAX6875 is not set | ||
555 | # CONFIG_EEPROM_93CX6 is not set | 581 | # CONFIG_EEPROM_93CX6 is not set |
582 | # CONFIG_CB710_CORE is not set | ||
556 | CONFIG_HAVE_IDE=y | 583 | CONFIG_HAVE_IDE=y |
557 | # CONFIG_IDE is not set | 584 | # CONFIG_IDE is not set |
558 | 585 | ||
@@ -576,10 +603,6 @@ CONFIG_BLK_DEV_SR=m | |||
576 | # CONFIG_BLK_DEV_SR_VENDOR is not set | 603 | # CONFIG_BLK_DEV_SR_VENDOR is not set |
577 | CONFIG_CHR_DEV_SG=m | 604 | CONFIG_CHR_DEV_SG=m |
578 | # CONFIG_CHR_DEV_SCH is not set | 605 | # CONFIG_CHR_DEV_SCH is not set |
579 | |||
580 | # | ||
581 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
582 | # | ||
583 | # CONFIG_SCSI_MULTI_LUN is not set | 606 | # CONFIG_SCSI_MULTI_LUN is not set |
584 | # CONFIG_SCSI_CONSTANTS is not set | 607 | # CONFIG_SCSI_CONSTANTS is not set |
585 | # CONFIG_SCSI_LOGGING is not set | 608 | # CONFIG_SCSI_LOGGING is not set |
@@ -596,6 +619,8 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
596 | # CONFIG_SCSI_SRP_ATTRS is not set | 619 | # CONFIG_SCSI_SRP_ATTRS is not set |
597 | CONFIG_SCSI_LOWLEVEL=y | 620 | CONFIG_SCSI_LOWLEVEL=y |
598 | # CONFIG_ISCSI_TCP is not set | 621 | # CONFIG_ISCSI_TCP is not set |
622 | # CONFIG_SCSI_BNX2_ISCSI is not set | ||
623 | # CONFIG_BE2ISCSI is not set | ||
599 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 624 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
600 | # CONFIG_SCSI_3W_9XXX is not set | 625 | # CONFIG_SCSI_3W_9XXX is not set |
601 | # CONFIG_SCSI_ACARD is not set | 626 | # CONFIG_SCSI_ACARD is not set |
@@ -604,6 +629,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
604 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 629 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
605 | # CONFIG_SCSI_AIC79XX is not set | 630 | # CONFIG_SCSI_AIC79XX is not set |
606 | # CONFIG_SCSI_AIC94XX is not set | 631 | # CONFIG_SCSI_AIC94XX is not set |
632 | # CONFIG_SCSI_MVSAS is not set | ||
607 | # CONFIG_SCSI_DPT_I2O is not set | 633 | # CONFIG_SCSI_DPT_I2O is not set |
608 | # CONFIG_SCSI_ADVANSYS is not set | 634 | # CONFIG_SCSI_ADVANSYS is not set |
609 | # CONFIG_SCSI_ARCMSR is not set | 635 | # CONFIG_SCSI_ARCMSR is not set |
@@ -620,7 +646,6 @@ CONFIG_SCSI_LOWLEVEL=y | |||
620 | # CONFIG_SCSI_IPS is not set | 646 | # CONFIG_SCSI_IPS is not set |
621 | # CONFIG_SCSI_INITIO is not set | 647 | # CONFIG_SCSI_INITIO is not set |
622 | # CONFIG_SCSI_INIA100 is not set | 648 | # CONFIG_SCSI_INIA100 is not set |
623 | # CONFIG_SCSI_MVSAS is not set | ||
624 | # CONFIG_SCSI_STEX is not set | 649 | # CONFIG_SCSI_STEX is not set |
625 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 650 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
626 | # CONFIG_SCSI_IPR is not set | 651 | # CONFIG_SCSI_IPR is not set |
@@ -632,11 +657,14 @@ CONFIG_SCSI_LOWLEVEL=y | |||
632 | # CONFIG_SCSI_DC390T is not set | 657 | # CONFIG_SCSI_DC390T is not set |
633 | # CONFIG_SCSI_NSP32 is not set | 658 | # CONFIG_SCSI_NSP32 is not set |
634 | # CONFIG_SCSI_DEBUG is not set | 659 | # CONFIG_SCSI_DEBUG is not set |
660 | # CONFIG_SCSI_PMCRAID is not set | ||
635 | # CONFIG_SCSI_SRP is not set | 661 | # CONFIG_SCSI_SRP is not set |
662 | # CONFIG_SCSI_BFA_FC is not set | ||
636 | # CONFIG_SCSI_DH is not set | 663 | # CONFIG_SCSI_DH is not set |
637 | # CONFIG_SCSI_OSD_INITIATOR is not set | 664 | # CONFIG_SCSI_OSD_INITIATOR is not set |
638 | CONFIG_ATA=y | 665 | CONFIG_ATA=y |
639 | # CONFIG_ATA_NONSTANDARD is not set | 666 | # CONFIG_ATA_NONSTANDARD is not set |
667 | CONFIG_ATA_VERBOSE_ERROR=y | ||
640 | CONFIG_SATA_PMP=y | 668 | CONFIG_SATA_PMP=y |
641 | # CONFIG_SATA_AHCI is not set | 669 | # CONFIG_SATA_AHCI is not set |
642 | # CONFIG_SATA_SIL24 is not set | 670 | # CONFIG_SATA_SIL24 is not set |
@@ -658,6 +686,7 @@ CONFIG_SATA_MV=y | |||
658 | # CONFIG_PATA_ALI is not set | 686 | # CONFIG_PATA_ALI is not set |
659 | # CONFIG_PATA_AMD is not set | 687 | # CONFIG_PATA_AMD is not set |
660 | # CONFIG_PATA_ARTOP is not set | 688 | # CONFIG_PATA_ARTOP is not set |
689 | # CONFIG_PATA_ATP867X is not set | ||
661 | # CONFIG_PATA_ATIIXP is not set | 690 | # CONFIG_PATA_ATIIXP is not set |
662 | # CONFIG_PATA_CMD640_PCI is not set | 691 | # CONFIG_PATA_CMD640_PCI is not set |
663 | # CONFIG_PATA_CMD64X is not set | 692 | # CONFIG_PATA_CMD64X is not set |
@@ -685,6 +714,7 @@ CONFIG_SATA_MV=y | |||
685 | # CONFIG_PATA_OPTIDMA is not set | 714 | # CONFIG_PATA_OPTIDMA is not set |
686 | # CONFIG_PATA_PDC_OLD is not set | 715 | # CONFIG_PATA_PDC_OLD is not set |
687 | # CONFIG_PATA_RADISYS is not set | 716 | # CONFIG_PATA_RADISYS is not set |
717 | # CONFIG_PATA_RDC is not set | ||
688 | # CONFIG_PATA_RZ1000 is not set | 718 | # CONFIG_PATA_RZ1000 is not set |
689 | # CONFIG_PATA_SC1200 is not set | 719 | # CONFIG_PATA_SC1200 is not set |
690 | # CONFIG_PATA_SERVERWORKS is not set | 720 | # CONFIG_PATA_SERVERWORKS is not set |
@@ -703,13 +733,16 @@ CONFIG_SATA_MV=y | |||
703 | # | 733 | # |
704 | 734 | ||
705 | # | 735 | # |
706 | # Enable only one of the two stacks, unless you know what you are doing | 736 | # You can enable one or both FireWire driver stacks. |
737 | # | ||
738 | |||
739 | # | ||
740 | # See the help texts for more information. | ||
707 | # | 741 | # |
708 | # CONFIG_FIREWIRE is not set | 742 | # CONFIG_FIREWIRE is not set |
709 | # CONFIG_IEEE1394 is not set | 743 | # CONFIG_IEEE1394 is not set |
710 | # CONFIG_I2O is not set | 744 | # CONFIG_I2O is not set |
711 | CONFIG_NETDEVICES=y | 745 | CONFIG_NETDEVICES=y |
712 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
713 | # CONFIG_DUMMY is not set | 746 | # CONFIG_DUMMY is not set |
714 | # CONFIG_BONDING is not set | 747 | # CONFIG_BONDING is not set |
715 | # CONFIG_MACVLAN is not set | 748 | # CONFIG_MACVLAN is not set |
@@ -777,6 +810,8 @@ CONFIG_NET_PCI=y | |||
777 | # CONFIG_SMSC9420 is not set | 810 | # CONFIG_SMSC9420 is not set |
778 | # CONFIG_SUNDANCE is not set | 811 | # CONFIG_SUNDANCE is not set |
779 | # CONFIG_TLAN is not set | 812 | # CONFIG_TLAN is not set |
813 | # CONFIG_KS8842 is not set | ||
814 | # CONFIG_KS8851_MLL is not set | ||
780 | # CONFIG_VIA_RHINE is not set | 815 | # CONFIG_VIA_RHINE is not set |
781 | # CONFIG_SC92031 is not set | 816 | # CONFIG_SC92031 is not set |
782 | # CONFIG_ATL2 is not set | 817 | # CONFIG_ATL2 is not set |
@@ -798,6 +833,7 @@ CONFIG_NETDEV_1000=y | |||
798 | # CONFIG_VIA_VELOCITY is not set | 833 | # CONFIG_VIA_VELOCITY is not set |
799 | # CONFIG_TIGON3 is not set | 834 | # CONFIG_TIGON3 is not set |
800 | # CONFIG_BNX2 is not set | 835 | # CONFIG_BNX2 is not set |
836 | # CONFIG_CNIC is not set | ||
801 | CONFIG_MV643XX_ETH=y | 837 | CONFIG_MV643XX_ETH=y |
802 | # CONFIG_QLA3XXX is not set | 838 | # CONFIG_QLA3XXX is not set |
803 | # CONFIG_ATL1 is not set | 839 | # CONFIG_ATL1 is not set |
@@ -806,10 +842,7 @@ CONFIG_MV643XX_ETH=y | |||
806 | # CONFIG_JME is not set | 842 | # CONFIG_JME is not set |
807 | # CONFIG_NETDEV_10000 is not set | 843 | # CONFIG_NETDEV_10000 is not set |
808 | # CONFIG_TR is not set | 844 | # CONFIG_TR is not set |
809 | 845 | CONFIG_WLAN=y | |
810 | # | ||
811 | # Wireless LAN | ||
812 | # | ||
813 | # CONFIG_WLAN_PRE80211 is not set | 846 | # CONFIG_WLAN_PRE80211 is not set |
814 | # CONFIG_WLAN_80211 is not set | 847 | # CONFIG_WLAN_80211 is not set |
815 | 848 | ||
@@ -835,6 +868,7 @@ CONFIG_MV643XX_ETH=y | |||
835 | # CONFIG_NETPOLL is not set | 868 | # CONFIG_NETPOLL is not set |
836 | # CONFIG_NET_POLL_CONTROLLER is not set | 869 | # CONFIG_NET_POLL_CONTROLLER is not set |
837 | # CONFIG_ISDN is not set | 870 | # CONFIG_ISDN is not set |
871 | # CONFIG_PHONE is not set | ||
838 | 872 | ||
839 | # | 873 | # |
840 | # Input device support | 874 | # Input device support |
@@ -855,13 +889,19 @@ CONFIG_INPUT_EVDEV=y | |||
855 | # Input Device Drivers | 889 | # Input Device Drivers |
856 | # | 890 | # |
857 | CONFIG_INPUT_KEYBOARD=y | 891 | CONFIG_INPUT_KEYBOARD=y |
892 | # CONFIG_KEYBOARD_ADP5588 is not set | ||
858 | # CONFIG_KEYBOARD_ATKBD is not set | 893 | # CONFIG_KEYBOARD_ATKBD is not set |
859 | # CONFIG_KEYBOARD_SUNKBD is not set | 894 | # CONFIG_QT2160 is not set |
860 | # CONFIG_KEYBOARD_LKKBD is not set | 895 | # CONFIG_KEYBOARD_LKKBD is not set |
861 | # CONFIG_KEYBOARD_XTKBD is not set | 896 | CONFIG_KEYBOARD_GPIO=y |
897 | # CONFIG_KEYBOARD_MATRIX is not set | ||
898 | # CONFIG_KEYBOARD_LM8323 is not set | ||
899 | # CONFIG_KEYBOARD_MAX7359 is not set | ||
862 | # CONFIG_KEYBOARD_NEWTON is not set | 900 | # CONFIG_KEYBOARD_NEWTON is not set |
901 | # CONFIG_KEYBOARD_OPENCORES is not set | ||
863 | # CONFIG_KEYBOARD_STOWAWAY is not set | 902 | # CONFIG_KEYBOARD_STOWAWAY is not set |
864 | CONFIG_KEYBOARD_GPIO=y | 903 | # CONFIG_KEYBOARD_SUNKBD is not set |
904 | # CONFIG_KEYBOARD_XTKBD is not set | ||
865 | # CONFIG_INPUT_MOUSE is not set | 905 | # CONFIG_INPUT_MOUSE is not set |
866 | # CONFIG_INPUT_JOYSTICK is not set | 906 | # CONFIG_INPUT_JOYSTICK is not set |
867 | # CONFIG_INPUT_TABLET is not set | 907 | # CONFIG_INPUT_TABLET is not set |
@@ -912,6 +952,7 @@ CONFIG_HW_RANDOM_TIMERIOMEM=m | |||
912 | CONFIG_DEVPORT=y | 952 | CONFIG_DEVPORT=y |
913 | CONFIG_I2C=y | 953 | CONFIG_I2C=y |
914 | CONFIG_I2C_BOARDINFO=y | 954 | CONFIG_I2C_BOARDINFO=y |
955 | # CONFIG_I2C_COMPAT is not set | ||
915 | CONFIG_I2C_CHARDEV=y | 956 | CONFIG_I2C_CHARDEV=y |
916 | CONFIG_I2C_HELPER_AUTO=y | 957 | CONFIG_I2C_HELPER_AUTO=y |
917 | 958 | ||
@@ -967,20 +1008,55 @@ CONFIG_I2C_MV64XXX=y | |||
967 | # Miscellaneous I2C Chip support | 1008 | # Miscellaneous I2C Chip support |
968 | # | 1009 | # |
969 | # CONFIG_DS1682 is not set | 1010 | # CONFIG_DS1682 is not set |
970 | # CONFIG_SENSORS_PCF8574 is not set | ||
971 | # CONFIG_PCF8575 is not set | ||
972 | # CONFIG_SENSORS_PCA9539 is not set | ||
973 | # CONFIG_SENSORS_MAX6875 is not set | ||
974 | # CONFIG_SENSORS_TSL2550 is not set | 1011 | # CONFIG_SENSORS_TSL2550 is not set |
975 | # CONFIG_I2C_DEBUG_CORE is not set | 1012 | # CONFIG_I2C_DEBUG_CORE is not set |
976 | # CONFIG_I2C_DEBUG_ALGO is not set | 1013 | # CONFIG_I2C_DEBUG_ALGO is not set |
977 | # CONFIG_I2C_DEBUG_BUS is not set | 1014 | # CONFIG_I2C_DEBUG_BUS is not set |
978 | # CONFIG_I2C_DEBUG_CHIP is not set | 1015 | # CONFIG_I2C_DEBUG_CHIP is not set |
979 | # CONFIG_SPI is not set | 1016 | # CONFIG_SPI is not set |
1017 | |||
1018 | # | ||
1019 | # PPS support | ||
1020 | # | ||
1021 | # CONFIG_PPS is not set | ||
1022 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
1023 | CONFIG_GPIOLIB=y | ||
1024 | # CONFIG_DEBUG_GPIO is not set | ||
1025 | CONFIG_GPIO_SYSFS=y | ||
1026 | |||
1027 | # | ||
1028 | # Memory mapped GPIO expanders: | ||
1029 | # | ||
1030 | |||
1031 | # | ||
1032 | # I2C GPIO expanders: | ||
1033 | # | ||
1034 | # CONFIG_GPIO_MAX732X is not set | ||
1035 | # CONFIG_GPIO_PCA953X is not set | ||
1036 | # CONFIG_GPIO_PCF857X is not set | ||
1037 | |||
1038 | # | ||
1039 | # PCI GPIO expanders: | ||
1040 | # | ||
1041 | # CONFIG_GPIO_BT8XX is not set | ||
1042 | # CONFIG_GPIO_LANGWELL is not set | ||
1043 | |||
1044 | # | ||
1045 | # SPI GPIO expanders: | ||
1046 | # | ||
1047 | |||
1048 | # | ||
1049 | # AC97 GPIO expanders: | ||
1050 | # | ||
980 | # CONFIG_W1 is not set | 1051 | # CONFIG_W1 is not set |
981 | # CONFIG_POWER_SUPPLY is not set | 1052 | # CONFIG_POWER_SUPPLY is not set |
982 | CONFIG_HWMON=y | 1053 | CONFIG_HWMON=y |
983 | # CONFIG_HWMON_VID is not set | 1054 | # CONFIG_HWMON_VID is not set |
1055 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
1056 | |||
1057 | # | ||
1058 | # Native drivers | ||
1059 | # | ||
984 | # CONFIG_SENSORS_AD7414 is not set | 1060 | # CONFIG_SENSORS_AD7414 is not set |
985 | # CONFIG_SENSORS_AD7418 is not set | 1061 | # CONFIG_SENSORS_AD7418 is not set |
986 | # CONFIG_SENSORS_ADM1021 is not set | 1062 | # CONFIG_SENSORS_ADM1021 is not set |
@@ -1030,6 +1106,8 @@ CONFIG_SENSORS_LM75=y | |||
1030 | # CONFIG_SENSORS_SMSC47B397 is not set | 1106 | # CONFIG_SENSORS_SMSC47B397 is not set |
1031 | # CONFIG_SENSORS_ADS7828 is not set | 1107 | # CONFIG_SENSORS_ADS7828 is not set |
1032 | # CONFIG_SENSORS_THMC50 is not set | 1108 | # CONFIG_SENSORS_THMC50 is not set |
1109 | # CONFIG_SENSORS_TMP401 is not set | ||
1110 | # CONFIG_SENSORS_TMP421 is not set | ||
1033 | # CONFIG_SENSORS_VIA686A is not set | 1111 | # CONFIG_SENSORS_VIA686A is not set |
1034 | # CONFIG_SENSORS_VT1211 is not set | 1112 | # CONFIG_SENSORS_VT1211 is not set |
1035 | # CONFIG_SENSORS_VT8231 is not set | 1113 | # CONFIG_SENSORS_VT8231 is not set |
@@ -1041,9 +1119,7 @@ CONFIG_SENSORS_LM75=y | |||
1041 | # CONFIG_SENSORS_W83L786NG is not set | 1119 | # CONFIG_SENSORS_W83L786NG is not set |
1042 | # CONFIG_SENSORS_W83627HF is not set | 1120 | # CONFIG_SENSORS_W83627HF is not set |
1043 | # CONFIG_SENSORS_W83627EHF is not set | 1121 | # CONFIG_SENSORS_W83627EHF is not set |
1044 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
1045 | # CONFIG_THERMAL is not set | 1122 | # CONFIG_THERMAL is not set |
1046 | # CONFIG_THERMAL_HWMON is not set | ||
1047 | # CONFIG_WATCHDOG is not set | 1123 | # CONFIG_WATCHDOG is not set |
1048 | CONFIG_SSB_POSSIBLE=y | 1124 | CONFIG_SSB_POSSIBLE=y |
1049 | 1125 | ||
@@ -1057,33 +1133,26 @@ CONFIG_SSB_POSSIBLE=y | |||
1057 | # | 1133 | # |
1058 | # CONFIG_MFD_CORE is not set | 1134 | # CONFIG_MFD_CORE is not set |
1059 | # CONFIG_MFD_SM501 is not set | 1135 | # CONFIG_MFD_SM501 is not set |
1136 | # CONFIG_MFD_ASIC3 is not set | ||
1137 | # CONFIG_HTC_EGPIO is not set | ||
1060 | # CONFIG_HTC_PASIC3 is not set | 1138 | # CONFIG_HTC_PASIC3 is not set |
1139 | # CONFIG_TPS65010 is not set | ||
1061 | # CONFIG_TWL4030_CORE is not set | 1140 | # CONFIG_TWL4030_CORE is not set |
1062 | # CONFIG_MFD_TMIO is not set | 1141 | # CONFIG_MFD_TMIO is not set |
1142 | # CONFIG_MFD_TC6393XB is not set | ||
1063 | # CONFIG_PMIC_DA903X is not set | 1143 | # CONFIG_PMIC_DA903X is not set |
1064 | # CONFIG_MFD_WM8400 is not set | 1144 | # CONFIG_MFD_WM8400 is not set |
1145 | # CONFIG_MFD_WM831X is not set | ||
1065 | # CONFIG_MFD_WM8350_I2C is not set | 1146 | # CONFIG_MFD_WM8350_I2C is not set |
1066 | # CONFIG_MFD_PCF50633 is not set | 1147 | # CONFIG_MFD_PCF50633 is not set |
1067 | 1148 | # CONFIG_AB3100_CORE is not set | |
1068 | # | 1149 | # CONFIG_REGULATOR is not set |
1069 | # Multimedia devices | 1150 | # CONFIG_MEDIA_SUPPORT is not set |
1070 | # | ||
1071 | |||
1072 | # | ||
1073 | # Multimedia core support | ||
1074 | # | ||
1075 | # CONFIG_VIDEO_DEV is not set | ||
1076 | # CONFIG_DVB_CORE is not set | ||
1077 | # CONFIG_VIDEO_MEDIA is not set | ||
1078 | |||
1079 | # | ||
1080 | # Multimedia drivers | ||
1081 | # | ||
1082 | # CONFIG_DAB is not set | ||
1083 | 1151 | ||
1084 | # | 1152 | # |
1085 | # Graphics support | 1153 | # Graphics support |
1086 | # | 1154 | # |
1155 | # CONFIG_VGA_ARB is not set | ||
1087 | # CONFIG_DRM is not set | 1156 | # CONFIG_DRM is not set |
1088 | # CONFIG_VGASTATE is not set | 1157 | # CONFIG_VGASTATE is not set |
1089 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 1158 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -1097,7 +1166,6 @@ CONFIG_SSB_POSSIBLE=y | |||
1097 | # CONFIG_SOUND is not set | 1166 | # CONFIG_SOUND is not set |
1098 | CONFIG_HID_SUPPORT=y | 1167 | CONFIG_HID_SUPPORT=y |
1099 | CONFIG_HID=y | 1168 | CONFIG_HID=y |
1100 | # CONFIG_HID_DEBUG is not set | ||
1101 | # CONFIG_HIDRAW is not set | 1169 | # CONFIG_HIDRAW is not set |
1102 | 1170 | ||
1103 | # | 1171 | # |
@@ -1116,10 +1184,11 @@ CONFIG_USB_HID=y | |||
1116 | # CONFIG_HID_CHERRY is not set | 1184 | # CONFIG_HID_CHERRY is not set |
1117 | # CONFIG_HID_CHICONY is not set | 1185 | # CONFIG_HID_CHICONY is not set |
1118 | # CONFIG_HID_CYPRESS is not set | 1186 | # CONFIG_HID_CYPRESS is not set |
1119 | # CONFIG_DRAGONRISE_FF is not set | 1187 | # CONFIG_HID_DRAGONRISE is not set |
1120 | # CONFIG_HID_EZKEY is not set | 1188 | # CONFIG_HID_EZKEY is not set |
1121 | # CONFIG_HID_KYE is not set | 1189 | # CONFIG_HID_KYE is not set |
1122 | # CONFIG_HID_GYRATION is not set | 1190 | # CONFIG_HID_GYRATION is not set |
1191 | # CONFIG_HID_TWINHAN is not set | ||
1123 | # CONFIG_HID_KENSINGTON is not set | 1192 | # CONFIG_HID_KENSINGTON is not set |
1124 | # CONFIG_HID_LOGITECH is not set | 1193 | # CONFIG_HID_LOGITECH is not set |
1125 | # CONFIG_HID_MICROSOFT is not set | 1194 | # CONFIG_HID_MICROSOFT is not set |
@@ -1130,10 +1199,11 @@ CONFIG_USB_HID=y | |||
1130 | # CONFIG_HID_SAMSUNG is not set | 1199 | # CONFIG_HID_SAMSUNG is not set |
1131 | # CONFIG_HID_SONY is not set | 1200 | # CONFIG_HID_SONY is not set |
1132 | # CONFIG_HID_SUNPLUS is not set | 1201 | # CONFIG_HID_SUNPLUS is not set |
1133 | # CONFIG_GREENASIA_FF is not set | 1202 | # CONFIG_HID_GREENASIA is not set |
1203 | # CONFIG_HID_SMARTJOYPLUS is not set | ||
1134 | # CONFIG_HID_TOPSEED is not set | 1204 | # CONFIG_HID_TOPSEED is not set |
1135 | # CONFIG_THRUSTMASTER_FF is not set | 1205 | # CONFIG_HID_THRUSTMASTER is not set |
1136 | # CONFIG_ZEROPLUS_FF is not set | 1206 | # CONFIG_HID_ZEROPLUS is not set |
1137 | CONFIG_USB_SUPPORT=y | 1207 | CONFIG_USB_SUPPORT=y |
1138 | CONFIG_USB_ARCH_HAS_HCD=y | 1208 | CONFIG_USB_ARCH_HAS_HCD=y |
1139 | CONFIG_USB_ARCH_HAS_OHCI=y | 1209 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -1160,18 +1230,21 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1160 | # USB Host Controller Drivers | 1230 | # USB Host Controller Drivers |
1161 | # | 1231 | # |
1162 | # CONFIG_USB_C67X00_HCD is not set | 1232 | # CONFIG_USB_C67X00_HCD is not set |
1233 | # CONFIG_USB_XHCI_HCD is not set | ||
1163 | CONFIG_USB_EHCI_HCD=y | 1234 | CONFIG_USB_EHCI_HCD=y |
1164 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1235 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1165 | CONFIG_USB_EHCI_TT_NEWSCHED=y | 1236 | CONFIG_USB_EHCI_TT_NEWSCHED=y |
1166 | # CONFIG_USB_OXU210HP_HCD is not set | 1237 | # CONFIG_USB_OXU210HP_HCD is not set |
1167 | # CONFIG_USB_ISP116X_HCD is not set | 1238 | # CONFIG_USB_ISP116X_HCD is not set |
1168 | # CONFIG_USB_ISP1760_HCD is not set | 1239 | # CONFIG_USB_ISP1760_HCD is not set |
1240 | # CONFIG_USB_ISP1362_HCD is not set | ||
1169 | # CONFIG_USB_OHCI_HCD is not set | 1241 | # CONFIG_USB_OHCI_HCD is not set |
1170 | # CONFIG_USB_UHCI_HCD is not set | 1242 | # CONFIG_USB_UHCI_HCD is not set |
1171 | # CONFIG_USB_SL811_HCD is not set | 1243 | # CONFIG_USB_SL811_HCD is not set |
1172 | # CONFIG_USB_R8A66597_HCD is not set | 1244 | # CONFIG_USB_R8A66597_HCD is not set |
1173 | # CONFIG_USB_WHCI_HCD is not set | 1245 | # CONFIG_USB_WHCI_HCD is not set |
1174 | # CONFIG_USB_HWA_HCD is not set | 1246 | # CONFIG_USB_HWA_HCD is not set |
1247 | # CONFIG_USB_MUSB_HDRC is not set | ||
1175 | 1248 | ||
1176 | # | 1249 | # |
1177 | # USB Device Class drivers | 1250 | # USB Device Class drivers |
@@ -1248,7 +1321,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y | |||
1248 | # CONFIG_UWB is not set | 1321 | # CONFIG_UWB is not set |
1249 | # CONFIG_MMC is not set | 1322 | # CONFIG_MMC is not set |
1250 | # CONFIG_MEMSTICK is not set | 1323 | # CONFIG_MEMSTICK is not set |
1251 | # CONFIG_ACCESSIBILITY is not set | ||
1252 | CONFIG_NEW_LEDS=y | 1324 | CONFIG_NEW_LEDS=y |
1253 | CONFIG_LEDS_CLASS=y | 1325 | CONFIG_LEDS_CLASS=y |
1254 | 1326 | ||
@@ -1258,7 +1330,7 @@ CONFIG_LEDS_CLASS=y | |||
1258 | # CONFIG_LEDS_PCA9532 is not set | 1330 | # CONFIG_LEDS_PCA9532 is not set |
1259 | CONFIG_LEDS_GPIO=y | 1331 | CONFIG_LEDS_GPIO=y |
1260 | CONFIG_LEDS_GPIO_PLATFORM=y | 1332 | CONFIG_LEDS_GPIO_PLATFORM=y |
1261 | # CONFIG_LEDS_LP5521 is not set | 1333 | # CONFIG_LEDS_LP3944 is not set |
1262 | # CONFIG_LEDS_PCA955X is not set | 1334 | # CONFIG_LEDS_PCA955X is not set |
1263 | # CONFIG_LEDS_BD2802 is not set | 1335 | # CONFIG_LEDS_BD2802 is not set |
1264 | 1336 | ||
@@ -1269,11 +1341,14 @@ CONFIG_LEDS_TRIGGERS=y | |||
1269 | CONFIG_LEDS_TRIGGER_TIMER=y | 1341 | CONFIG_LEDS_TRIGGER_TIMER=y |
1270 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | 1342 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y |
1271 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set | 1343 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set |
1344 | # CONFIG_LEDS_TRIGGER_GPIO is not set | ||
1272 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | 1345 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y |
1273 | 1346 | ||
1274 | # | 1347 | # |
1275 | # iptables trigger is under Netfilter config (LED target) | 1348 | # iptables trigger is under Netfilter config (LED target) |
1276 | # | 1349 | # |
1350 | # CONFIG_ACCESSIBILITY is not set | ||
1351 | # CONFIG_INFINIBAND is not set | ||
1277 | CONFIG_RTC_LIB=y | 1352 | CONFIG_RTC_LIB=y |
1278 | CONFIG_RTC_CLASS=y | 1353 | CONFIG_RTC_CLASS=y |
1279 | CONFIG_RTC_HCTOSYS=y | 1354 | CONFIG_RTC_HCTOSYS=y |
@@ -1306,6 +1381,7 @@ CONFIG_RTC_DRV_M41T80=y | |||
1306 | CONFIG_RTC_DRV_S35390A=y | 1381 | CONFIG_RTC_DRV_S35390A=y |
1307 | # CONFIG_RTC_DRV_FM3130 is not set | 1382 | # CONFIG_RTC_DRV_FM3130 is not set |
1308 | # CONFIG_RTC_DRV_RX8581 is not set | 1383 | # CONFIG_RTC_DRV_RX8581 is not set |
1384 | # CONFIG_RTC_DRV_RX8025 is not set | ||
1309 | 1385 | ||
1310 | # | 1386 | # |
1311 | # SPI RTC drivers | 1387 | # SPI RTC drivers |
@@ -1344,8 +1420,11 @@ CONFIG_DMA_ENGINE=y | |||
1344 | # CONFIG_ASYNC_TX_DMA is not set | 1420 | # CONFIG_ASYNC_TX_DMA is not set |
1345 | # CONFIG_DMATEST is not set | 1421 | # CONFIG_DMATEST is not set |
1346 | # CONFIG_AUXDISPLAY is not set | 1422 | # CONFIG_AUXDISPLAY is not set |
1347 | # CONFIG_REGULATOR is not set | ||
1348 | # CONFIG_UIO is not set | 1423 | # CONFIG_UIO is not set |
1424 | |||
1425 | # | ||
1426 | # TI VLYNQ | ||
1427 | # | ||
1349 | # CONFIG_STAGING is not set | 1428 | # CONFIG_STAGING is not set |
1350 | 1429 | ||
1351 | # | 1430 | # |
@@ -1358,10 +1437,10 @@ CONFIG_EXT3_FS=y | |||
1358 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | 1437 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set |
1359 | # CONFIG_EXT3_FS_XATTR is not set | 1438 | # CONFIG_EXT3_FS_XATTR is not set |
1360 | CONFIG_EXT4_FS=m | 1439 | CONFIG_EXT4_FS=m |
1361 | # CONFIG_EXT4DEV_COMPAT is not set | ||
1362 | CONFIG_EXT4_FS_XATTR=y | 1440 | CONFIG_EXT4_FS_XATTR=y |
1363 | # CONFIG_EXT4_FS_POSIX_ACL is not set | 1441 | # CONFIG_EXT4_FS_POSIX_ACL is not set |
1364 | # CONFIG_EXT4_FS_SECURITY is not set | 1442 | # CONFIG_EXT4_FS_SECURITY is not set |
1443 | # CONFIG_EXT4_DEBUG is not set | ||
1365 | CONFIG_JBD=y | 1444 | CONFIG_JBD=y |
1366 | # CONFIG_JBD_DEBUG is not set | 1445 | # CONFIG_JBD_DEBUG is not set |
1367 | CONFIG_JBD2=m | 1446 | CONFIG_JBD2=m |
@@ -1370,10 +1449,13 @@ CONFIG_FS_MBCACHE=m | |||
1370 | # CONFIG_REISERFS_FS is not set | 1449 | # CONFIG_REISERFS_FS is not set |
1371 | # CONFIG_JFS_FS is not set | 1450 | # CONFIG_JFS_FS is not set |
1372 | # CONFIG_FS_POSIX_ACL is not set | 1451 | # CONFIG_FS_POSIX_ACL is not set |
1373 | CONFIG_FILE_LOCKING=y | ||
1374 | # CONFIG_XFS_FS is not set | 1452 | # CONFIG_XFS_FS is not set |
1453 | # CONFIG_GFS2_FS is not set | ||
1375 | # CONFIG_OCFS2_FS is not set | 1454 | # CONFIG_OCFS2_FS is not set |
1376 | # CONFIG_BTRFS_FS is not set | 1455 | # CONFIG_BTRFS_FS is not set |
1456 | # CONFIG_NILFS2_FS is not set | ||
1457 | CONFIG_FILE_LOCKING=y | ||
1458 | CONFIG_FSNOTIFY=y | ||
1377 | CONFIG_DNOTIFY=y | 1459 | CONFIG_DNOTIFY=y |
1378 | CONFIG_INOTIFY=y | 1460 | CONFIG_INOTIFY=y |
1379 | CONFIG_INOTIFY_USER=y | 1461 | CONFIG_INOTIFY_USER=y |
@@ -1446,7 +1528,6 @@ CONFIG_CRAMFS=y | |||
1446 | # CONFIG_ROMFS_FS is not set | 1528 | # CONFIG_ROMFS_FS is not set |
1447 | # CONFIG_SYSV_FS is not set | 1529 | # CONFIG_SYSV_FS is not set |
1448 | # CONFIG_UFS_FS is not set | 1530 | # CONFIG_UFS_FS is not set |
1449 | # CONFIG_NILFS2_FS is not set | ||
1450 | CONFIG_NETWORK_FILESYSTEMS=y | 1531 | CONFIG_NETWORK_FILESYSTEMS=y |
1451 | CONFIG_NFS_FS=y | 1532 | CONFIG_NFS_FS=y |
1452 | CONFIG_NFS_V3=y | 1533 | CONFIG_NFS_V3=y |
@@ -1537,6 +1618,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1537 | CONFIG_ENABLE_MUST_CHECK=y | 1618 | CONFIG_ENABLE_MUST_CHECK=y |
1538 | CONFIG_FRAME_WARN=1024 | 1619 | CONFIG_FRAME_WARN=1024 |
1539 | CONFIG_MAGIC_SYSRQ=y | 1620 | CONFIG_MAGIC_SYSRQ=y |
1621 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1540 | # CONFIG_UNUSED_SYMBOLS is not set | 1622 | # CONFIG_UNUSED_SYMBOLS is not set |
1541 | CONFIG_DEBUG_FS=y | 1623 | CONFIG_DEBUG_FS=y |
1542 | # CONFIG_HEADERS_CHECK is not set | 1624 | # CONFIG_HEADERS_CHECK is not set |
@@ -1552,6 +1634,7 @@ CONFIG_SCHED_DEBUG=y | |||
1552 | CONFIG_SCHEDSTATS=y | 1634 | CONFIG_SCHEDSTATS=y |
1553 | # CONFIG_TIMER_STATS is not set | 1635 | # CONFIG_TIMER_STATS is not set |
1554 | # CONFIG_DEBUG_OBJECTS is not set | 1636 | # CONFIG_DEBUG_OBJECTS is not set |
1637 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1555 | CONFIG_DEBUG_PREEMPT=y | 1638 | CONFIG_DEBUG_PREEMPT=y |
1556 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1639 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1557 | # CONFIG_RT_MUTEX_TESTER is not set | 1640 | # CONFIG_RT_MUTEX_TESTER is not set |
@@ -1572,6 +1655,7 @@ CONFIG_DEBUG_INFO=y | |||
1572 | # CONFIG_DEBUG_LIST is not set | 1655 | # CONFIG_DEBUG_LIST is not set |
1573 | # CONFIG_DEBUG_SG is not set | 1656 | # CONFIG_DEBUG_SG is not set |
1574 | # CONFIG_DEBUG_NOTIFIERS is not set | 1657 | # CONFIG_DEBUG_NOTIFIERS is not set |
1658 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
1575 | CONFIG_FRAME_POINTER=y | 1659 | CONFIG_FRAME_POINTER=y |
1576 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1660 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1577 | # CONFIG_RCU_TORTURE_TEST is not set | 1661 | # CONFIG_RCU_TORTURE_TEST is not set |
@@ -1579,6 +1663,7 @@ CONFIG_FRAME_POINTER=y | |||
1579 | # CONFIG_KPROBES_SANITY_TEST is not set | 1663 | # CONFIG_KPROBES_SANITY_TEST is not set |
1580 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1664 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1581 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1665 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1666 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1582 | # CONFIG_LKDTM is not set | 1667 | # CONFIG_LKDTM is not set |
1583 | # CONFIG_FAULT_INJECTION is not set | 1668 | # CONFIG_FAULT_INJECTION is not set |
1584 | CONFIG_LATENCYTOP=y | 1669 | CONFIG_LATENCYTOP=y |
@@ -1587,25 +1672,12 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y | |||
1587 | CONFIG_NOP_TRACER=y | 1672 | CONFIG_NOP_TRACER=y |
1588 | CONFIG_HAVE_FUNCTION_TRACER=y | 1673 | CONFIG_HAVE_FUNCTION_TRACER=y |
1589 | CONFIG_RING_BUFFER=y | 1674 | CONFIG_RING_BUFFER=y |
1675 | CONFIG_EVENT_TRACING=y | ||
1676 | CONFIG_CONTEXT_SWITCH_TRACER=y | ||
1677 | CONFIG_RING_BUFFER_ALLOW_SWAP=y | ||
1590 | CONFIG_TRACING=y | 1678 | CONFIG_TRACING=y |
1591 | CONFIG_TRACING_SUPPORT=y | 1679 | CONFIG_TRACING_SUPPORT=y |
1592 | 1680 | # CONFIG_FTRACE is not set | |
1593 | # | ||
1594 | # Tracers | ||
1595 | # | ||
1596 | # CONFIG_FUNCTION_TRACER is not set | ||
1597 | # CONFIG_IRQSOFF_TRACER is not set | ||
1598 | # CONFIG_PREEMPT_TRACER is not set | ||
1599 | # CONFIG_SCHED_TRACER is not set | ||
1600 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1601 | # CONFIG_EVENT_TRACER is not set | ||
1602 | # CONFIG_BOOT_TRACER is not set | ||
1603 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
1604 | # CONFIG_STACK_TRACER is not set | ||
1605 | # CONFIG_KMEMTRACE is not set | ||
1606 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1607 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1608 | # CONFIG_FTRACE_STARTUP_TEST is not set | ||
1609 | # CONFIG_DYNAMIC_DEBUG is not set | 1681 | # CONFIG_DYNAMIC_DEBUG is not set |
1610 | # CONFIG_SAMPLES is not set | 1682 | # CONFIG_SAMPLES is not set |
1611 | CONFIG_HAVE_ARCH_KGDB=y | 1683 | CONFIG_HAVE_ARCH_KGDB=y |
@@ -1629,20 +1701,19 @@ CONFIG_CRYPTO=y | |||
1629 | # | 1701 | # |
1630 | # Crypto core or helper | 1702 | # Crypto core or helper |
1631 | # | 1703 | # |
1632 | # CONFIG_CRYPTO_FIPS is not set | 1704 | CONFIG_CRYPTO_ALGAPI=y |
1633 | CONFIG_CRYPTO_ALGAPI=m | 1705 | CONFIG_CRYPTO_ALGAPI2=y |
1634 | CONFIG_CRYPTO_ALGAPI2=m | 1706 | CONFIG_CRYPTO_AEAD2=y |
1635 | CONFIG_CRYPTO_AEAD2=m | ||
1636 | CONFIG_CRYPTO_BLKCIPHER=m | 1707 | CONFIG_CRYPTO_BLKCIPHER=m |
1637 | CONFIG_CRYPTO_BLKCIPHER2=m | 1708 | CONFIG_CRYPTO_BLKCIPHER2=y |
1638 | CONFIG_CRYPTO_HASH2=m | 1709 | CONFIG_CRYPTO_HASH2=y |
1639 | CONFIG_CRYPTO_RNG2=m | 1710 | CONFIG_CRYPTO_RNG2=y |
1640 | CONFIG_CRYPTO_PCOMP=m | 1711 | CONFIG_CRYPTO_PCOMP=y |
1641 | CONFIG_CRYPTO_MANAGER=m | 1712 | CONFIG_CRYPTO_MANAGER=m |
1642 | CONFIG_CRYPTO_MANAGER2=m | 1713 | CONFIG_CRYPTO_MANAGER2=y |
1643 | # CONFIG_CRYPTO_GF128MUL is not set | 1714 | # CONFIG_CRYPTO_GF128MUL is not set |
1644 | # CONFIG_CRYPTO_NULL is not set | 1715 | # CONFIG_CRYPTO_NULL is not set |
1645 | CONFIG_CRYPTO_WORKQUEUE=m | 1716 | CONFIG_CRYPTO_WORKQUEUE=y |
1646 | # CONFIG_CRYPTO_CRYPTD is not set | 1717 | # CONFIG_CRYPTO_CRYPTD is not set |
1647 | # CONFIG_CRYPTO_AUTHENC is not set | 1718 | # CONFIG_CRYPTO_AUTHENC is not set |
1648 | # CONFIG_CRYPTO_TEST is not set | 1719 | # CONFIG_CRYPTO_TEST is not set |
@@ -1670,11 +1741,13 @@ CONFIG_CRYPTO_PCBC=m | |||
1670 | # | 1741 | # |
1671 | # CONFIG_CRYPTO_HMAC is not set | 1742 | # CONFIG_CRYPTO_HMAC is not set |
1672 | # CONFIG_CRYPTO_XCBC is not set | 1743 | # CONFIG_CRYPTO_XCBC is not set |
1744 | # CONFIG_CRYPTO_VMAC is not set | ||
1673 | 1745 | ||
1674 | # | 1746 | # |
1675 | # Digest | 1747 | # Digest |
1676 | # | 1748 | # |
1677 | # CONFIG_CRYPTO_CRC32C is not set | 1749 | # CONFIG_CRYPTO_CRC32C is not set |
1750 | # CONFIG_CRYPTO_GHASH is not set | ||
1678 | # CONFIG_CRYPTO_MD4 is not set | 1751 | # CONFIG_CRYPTO_MD4 is not set |
1679 | # CONFIG_CRYPTO_MD5 is not set | 1752 | # CONFIG_CRYPTO_MD5 is not set |
1680 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1753 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1691,7 +1764,7 @@ CONFIG_CRYPTO_PCBC=m | |||
1691 | # | 1764 | # |
1692 | # Ciphers | 1765 | # Ciphers |
1693 | # | 1766 | # |
1694 | # CONFIG_CRYPTO_AES is not set | 1767 | CONFIG_CRYPTO_AES=y |
1695 | # CONFIG_CRYPTO_ANUBIS is not set | 1768 | # CONFIG_CRYPTO_ANUBIS is not set |
1696 | # CONFIG_CRYPTO_ARC4 is not set | 1769 | # CONFIG_CRYPTO_ARC4 is not set |
1697 | # CONFIG_CRYPTO_BLOWFISH is not set | 1770 | # CONFIG_CRYPTO_BLOWFISH is not set |
@@ -1719,6 +1792,7 @@ CONFIG_CRYPTO_PCBC=m | |||
1719 | # | 1792 | # |
1720 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1793 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1721 | CONFIG_CRYPTO_HW=y | 1794 | CONFIG_CRYPTO_HW=y |
1795 | CONFIG_CRYPTO_DEV_MV_CESA=y | ||
1722 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1796 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1723 | CONFIG_BINARY_PRINTF=y | 1797 | CONFIG_BINARY_PRINTF=y |
1724 | 1798 | ||
diff --git a/arch/arm/configs/u300_defconfig b/arch/arm/configs/u300_defconfig index 7d61ae6e75da..953ba0297fc4 100644 --- a/arch/arm/configs/u300_defconfig +++ b/arch/arm/configs/u300_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31-rc3 | 3 | # Linux kernel version: 2.6.32-rc5 |
4 | # Thu Jul 16 23:36:10 2009 | 4 | # Sat Oct 17 23:32:24 2009 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | 7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y |
8 | CONFIG_GENERIC_GPIO=y | 8 | CONFIG_GENERIC_GPIO=y |
9 | CONFIG_GENERIC_TIME=y | 9 | CONFIG_GENERIC_TIME=y |
10 | CONFIG_GENERIC_CLOCKEVENTS=y | 10 | CONFIG_GENERIC_CLOCKEVENTS=y |
11 | CONFIG_MMU=y | 11 | CONFIG_HAVE_TCM=y |
12 | CONFIG_GENERIC_HARDIRQS=y | 12 | CONFIG_GENERIC_HARDIRQS=y |
13 | CONFIG_STACKTRACE_SUPPORT=y | 13 | CONFIG_STACKTRACE_SUPPORT=y |
14 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 14 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
@@ -44,11 +44,12 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
44 | # | 44 | # |
45 | # RCU Subsystem | 45 | # RCU Subsystem |
46 | # | 46 | # |
47 | CONFIG_CLASSIC_RCU=y | 47 | CONFIG_TREE_RCU=y |
48 | # CONFIG_TREE_RCU is not set | 48 | # CONFIG_TREE_PREEMPT_RCU is not set |
49 | # CONFIG_PREEMPT_RCU is not set | 49 | # CONFIG_RCU_TRACE is not set |
50 | CONFIG_RCU_FANOUT=32 | ||
51 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
50 | # CONFIG_TREE_RCU_TRACE is not set | 52 | # CONFIG_TREE_RCU_TRACE is not set |
51 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
52 | # CONFIG_IKCONFIG is not set | 53 | # CONFIG_IKCONFIG is not set |
53 | CONFIG_LOG_BUF_SHIFT=14 | 54 | CONFIG_LOG_BUF_SHIFT=14 |
54 | # CONFIG_GROUP_SCHED is not set | 55 | # CONFIG_GROUP_SCHED is not set |
@@ -80,17 +81,15 @@ CONFIG_SHMEM=y | |||
80 | # CONFIG_AIO is not set | 81 | # CONFIG_AIO is not set |
81 | 82 | ||
82 | # | 83 | # |
83 | # Performance Counters | 84 | # Kernel Performance Events And Counters |
84 | # | 85 | # |
85 | # CONFIG_VM_EVENT_COUNTERS is not set | 86 | # CONFIG_VM_EVENT_COUNTERS is not set |
86 | CONFIG_SLUB_DEBUG=y | 87 | CONFIG_SLUB_DEBUG=y |
87 | # CONFIG_STRIP_ASM_SYMS is not set | ||
88 | CONFIG_COMPAT_BRK=y | 88 | CONFIG_COMPAT_BRK=y |
89 | # CONFIG_SLAB is not set | 89 | # CONFIG_SLAB is not set |
90 | CONFIG_SLUB=y | 90 | CONFIG_SLUB=y |
91 | # CONFIG_SLOB is not set | 91 | # CONFIG_SLOB is not set |
92 | # CONFIG_PROFILING is not set | 92 | # CONFIG_PROFILING is not set |
93 | # CONFIG_MARKERS is not set | ||
94 | CONFIG_HAVE_OPROFILE=y | 93 | CONFIG_HAVE_OPROFILE=y |
95 | # CONFIG_KPROBES is not set | 94 | # CONFIG_KPROBES is not set |
96 | CONFIG_HAVE_KPROBES=y | 95 | CONFIG_HAVE_KPROBES=y |
@@ -133,6 +132,7 @@ CONFIG_DEFAULT_IOSCHED="deadline" | |||
133 | # | 132 | # |
134 | # System Type | 133 | # System Type |
135 | # | 134 | # |
135 | CONFIG_MMU=y | ||
136 | # CONFIG_ARCH_AAEC2000 is not set | 136 | # CONFIG_ARCH_AAEC2000 is not set |
137 | # CONFIG_ARCH_INTEGRATOR is not set | 137 | # CONFIG_ARCH_INTEGRATOR is not set |
138 | # CONFIG_ARCH_REALVIEW is not set | 138 | # CONFIG_ARCH_REALVIEW is not set |
@@ -147,6 +147,7 @@ CONFIG_DEFAULT_IOSCHED="deadline" | |||
147 | # CONFIG_ARCH_STMP3XXX is not set | 147 | # CONFIG_ARCH_STMP3XXX is not set |
148 | # CONFIG_ARCH_NETX is not set | 148 | # CONFIG_ARCH_NETX is not set |
149 | # CONFIG_ARCH_H720X is not set | 149 | # CONFIG_ARCH_H720X is not set |
150 | # CONFIG_ARCH_NOMADIK is not set | ||
150 | # CONFIG_ARCH_IOP13XX is not set | 151 | # CONFIG_ARCH_IOP13XX is not set |
151 | # CONFIG_ARCH_IOP32X is not set | 152 | # CONFIG_ARCH_IOP32X is not set |
152 | # CONFIG_ARCH_IOP33X is not set | 153 | # CONFIG_ARCH_IOP33X is not set |
@@ -169,11 +170,13 @@ CONFIG_DEFAULT_IOSCHED="deadline" | |||
169 | # CONFIG_ARCH_SA1100 is not set | 170 | # CONFIG_ARCH_SA1100 is not set |
170 | # CONFIG_ARCH_S3C2410 is not set | 171 | # CONFIG_ARCH_S3C2410 is not set |
171 | # CONFIG_ARCH_S3C64XX is not set | 172 | # CONFIG_ARCH_S3C64XX is not set |
173 | # CONFIG_ARCH_S5PC1XX is not set | ||
172 | # CONFIG_ARCH_SHARK is not set | 174 | # CONFIG_ARCH_SHARK is not set |
173 | # CONFIG_ARCH_LH7A40X is not set | 175 | # CONFIG_ARCH_LH7A40X is not set |
174 | CONFIG_ARCH_U300=y | 176 | CONFIG_ARCH_U300=y |
175 | # CONFIG_ARCH_DAVINCI is not set | 177 | # CONFIG_ARCH_DAVINCI is not set |
176 | # CONFIG_ARCH_OMAP is not set | 178 | # CONFIG_ARCH_OMAP is not set |
179 | # CONFIG_ARCH_BCMRING is not set | ||
177 | 180 | ||
178 | # | 181 | # |
179 | # ST-Ericsson AB U300/U330/U335/U365 Platform | 182 | # ST-Ericsson AB U300/U330/U335/U365 Platform |
@@ -195,6 +198,7 @@ CONFIG_MACH_U300_BS335=y | |||
195 | CONFIG_MACH_U300_DUAL_RAM=y | 198 | CONFIG_MACH_U300_DUAL_RAM=y |
196 | CONFIG_U300_DEBUG=y | 199 | CONFIG_U300_DEBUG=y |
197 | # CONFIG_MACH_U300_SEMI_IS_SHARED is not set | 200 | # CONFIG_MACH_U300_SEMI_IS_SHARED is not set |
201 | CONFIG_MACH_U300_SPIDUMMY=y | ||
198 | 202 | ||
199 | # | 203 | # |
200 | # All the settings below must match the bootloader's settings | 204 | # All the settings below must match the bootloader's settings |
@@ -207,7 +211,7 @@ CONFIG_CPU_32=y | |||
207 | CONFIG_CPU_ARM926T=y | 211 | CONFIG_CPU_ARM926T=y |
208 | CONFIG_CPU_32v5=y | 212 | CONFIG_CPU_32v5=y |
209 | CONFIG_CPU_ABRT_EV5TJ=y | 213 | CONFIG_CPU_ABRT_EV5TJ=y |
210 | CONFIG_CPU_PABRT_NOIFAR=y | 214 | CONFIG_CPU_PABRT_LEGACY=y |
211 | CONFIG_CPU_CACHE_VIVT=y | 215 | CONFIG_CPU_CACHE_VIVT=y |
212 | CONFIG_CPU_COPY_V4WB=y | 216 | CONFIG_CPU_COPY_V4WB=y |
213 | CONFIG_CPU_TLB_V4WBI=y | 217 | CONFIG_CPU_TLB_V4WBI=y |
@@ -222,6 +226,7 @@ CONFIG_ARM_THUMB=y | |||
222 | # CONFIG_CPU_DCACHE_DISABLE is not set | 226 | # CONFIG_CPU_DCACHE_DISABLE is not set |
223 | # CONFIG_CPU_DCACHE_WRITETHROUGH is not set | 227 | # CONFIG_CPU_DCACHE_WRITETHROUGH is not set |
224 | # CONFIG_CPU_CACHE_ROUND_ROBIN is not set | 228 | # CONFIG_CPU_CACHE_ROUND_ROBIN is not set |
229 | CONFIG_ARM_L1_CACHE_SHIFT=5 | ||
225 | CONFIG_ARM_VIC=y | 230 | CONFIG_ARM_VIC=y |
226 | CONFIG_ARM_VIC_NR=2 | 231 | CONFIG_ARM_VIC_NR=2 |
227 | CONFIG_COMMON_CLKDEV=y | 232 | CONFIG_COMMON_CLKDEV=y |
@@ -245,6 +250,8 @@ CONFIG_VMSPLIT_3G=y | |||
245 | # CONFIG_VMSPLIT_2G is not set | 250 | # CONFIG_VMSPLIT_2G is not set |
246 | # CONFIG_VMSPLIT_1G is not set | 251 | # CONFIG_VMSPLIT_1G is not set |
247 | CONFIG_PAGE_OFFSET=0xC0000000 | 252 | CONFIG_PAGE_OFFSET=0xC0000000 |
253 | # CONFIG_PREEMPT_NONE is not set | ||
254 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
248 | CONFIG_PREEMPT=y | 255 | CONFIG_PREEMPT=y |
249 | CONFIG_HZ=100 | 256 | CONFIG_HZ=100 |
250 | CONFIG_AEABI=y | 257 | CONFIG_AEABI=y |
@@ -265,6 +272,7 @@ CONFIG_ZONE_DMA_FLAG=0 | |||
265 | CONFIG_VIRT_TO_BUS=y | 272 | CONFIG_VIRT_TO_BUS=y |
266 | CONFIG_HAVE_MLOCK=y | 273 | CONFIG_HAVE_MLOCK=y |
267 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | 274 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y |
275 | # CONFIG_KSM is not set | ||
268 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 276 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
269 | CONFIG_ALIGNMENT_TRAP=y | 277 | CONFIG_ALIGNMENT_TRAP=y |
270 | # CONFIG_UACCESS_WITH_MEMCPY is not set | 278 | # CONFIG_UACCESS_WITH_MEMCPY is not set |
@@ -313,6 +321,7 @@ CONFIG_PM=y | |||
313 | # CONFIG_PM_DEBUG is not set | 321 | # CONFIG_PM_DEBUG is not set |
314 | # CONFIG_SUSPEND is not set | 322 | # CONFIG_SUSPEND is not set |
315 | # CONFIG_APM_EMULATION is not set | 323 | # CONFIG_APM_EMULATION is not set |
324 | # CONFIG_PM_RUNTIME is not set | ||
316 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 325 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
317 | CONFIG_NET=y | 326 | CONFIG_NET=y |
318 | 327 | ||
@@ -351,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
351 | # CONFIG_NETFILTER is not set | 360 | # CONFIG_NETFILTER is not set |
352 | # CONFIG_IP_DCCP is not set | 361 | # CONFIG_IP_DCCP is not set |
353 | # CONFIG_IP_SCTP is not set | 362 | # CONFIG_IP_SCTP is not set |
363 | # CONFIG_RDS is not set | ||
354 | # CONFIG_TIPC is not set | 364 | # CONFIG_TIPC is not set |
355 | # CONFIG_ATM is not set | 365 | # CONFIG_ATM is not set |
356 | # CONFIG_BRIDGE is not set | 366 | # CONFIG_BRIDGE is not set |
@@ -391,6 +401,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
391 | # Generic Driver Options | 401 | # Generic Driver Options |
392 | # | 402 | # |
393 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 403 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
404 | # CONFIG_DEVTMPFS is not set | ||
394 | CONFIG_STANDALONE=y | 405 | CONFIG_STANDALONE=y |
395 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 406 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
396 | CONFIG_FW_LOADER=y | 407 | CONFIG_FW_LOADER=y |
@@ -402,9 +413,9 @@ CONFIG_EXTRA_FIRMWARE="" | |||
402 | # CONFIG_CONNECTOR is not set | 413 | # CONFIG_CONNECTOR is not set |
403 | CONFIG_MTD=y | 414 | CONFIG_MTD=y |
404 | # CONFIG_MTD_DEBUG is not set | 415 | # CONFIG_MTD_DEBUG is not set |
416 | # CONFIG_MTD_TESTS is not set | ||
405 | # CONFIG_MTD_CONCAT is not set | 417 | # CONFIG_MTD_CONCAT is not set |
406 | CONFIG_MTD_PARTITIONS=y | 418 | CONFIG_MTD_PARTITIONS=y |
407 | # CONFIG_MTD_TESTS is not set | ||
408 | # CONFIG_MTD_REDBOOT_PARTS is not set | 419 | # CONFIG_MTD_REDBOOT_PARTS is not set |
409 | CONFIG_MTD_CMDLINE_PARTS=y | 420 | CONFIG_MTD_CMDLINE_PARTS=y |
410 | # CONFIG_MTD_AFS_PARTS is not set | 421 | # CONFIG_MTD_AFS_PARTS is not set |
@@ -453,6 +464,7 @@ CONFIG_MTD_CFI_I2=y | |||
453 | # | 464 | # |
454 | # CONFIG_MTD_DATAFLASH is not set | 465 | # CONFIG_MTD_DATAFLASH is not set |
455 | # CONFIG_MTD_M25P80 is not set | 466 | # CONFIG_MTD_M25P80 is not set |
467 | # CONFIG_MTD_SST25L is not set | ||
456 | # CONFIG_MTD_SLRAM is not set | 468 | # CONFIG_MTD_SLRAM is not set |
457 | # CONFIG_MTD_PHRAM is not set | 469 | # CONFIG_MTD_PHRAM is not set |
458 | # CONFIG_MTD_MTDRAM is not set | 470 | # CONFIG_MTD_MTDRAM is not set |
@@ -520,6 +532,7 @@ CONFIG_HAVE_IDE=y | |||
520 | # CONFIG_MD is not set | 532 | # CONFIG_MD is not set |
521 | # CONFIG_NETDEVICES is not set | 533 | # CONFIG_NETDEVICES is not set |
522 | # CONFIG_ISDN is not set | 534 | # CONFIG_ISDN is not set |
535 | # CONFIG_PHONE is not set | ||
523 | 536 | ||
524 | # | 537 | # |
525 | # Input device support | 538 | # Input device support |
@@ -540,12 +553,16 @@ CONFIG_INPUT_EVDEV=y | |||
540 | # Input Device Drivers | 553 | # Input Device Drivers |
541 | # | 554 | # |
542 | CONFIG_INPUT_KEYBOARD=y | 555 | CONFIG_INPUT_KEYBOARD=y |
556 | # CONFIG_KEYBOARD_ADP5588 is not set | ||
543 | # CONFIG_KEYBOARD_ATKBD is not set | 557 | # CONFIG_KEYBOARD_ATKBD is not set |
558 | # CONFIG_QT2160 is not set | ||
544 | # CONFIG_KEYBOARD_LKKBD is not set | 559 | # CONFIG_KEYBOARD_LKKBD is not set |
545 | # CONFIG_KEYBOARD_GPIO is not set | 560 | # CONFIG_KEYBOARD_GPIO is not set |
546 | # CONFIG_KEYBOARD_MATRIX is not set | 561 | # CONFIG_KEYBOARD_MATRIX is not set |
547 | # CONFIG_KEYBOARD_LM8323 is not set | 562 | # CONFIG_KEYBOARD_LM8323 is not set |
563 | # CONFIG_KEYBOARD_MAX7359 is not set | ||
548 | # CONFIG_KEYBOARD_NEWTON is not set | 564 | # CONFIG_KEYBOARD_NEWTON is not set |
565 | # CONFIG_KEYBOARD_OPENCORES is not set | ||
549 | # CONFIG_KEYBOARD_STOWAWAY is not set | 566 | # CONFIG_KEYBOARD_STOWAWAY is not set |
550 | # CONFIG_KEYBOARD_SUNKBD is not set | 567 | # CONFIG_KEYBOARD_SUNKBD is not set |
551 | # CONFIG_KEYBOARD_XTKBD is not set | 568 | # CONFIG_KEYBOARD_XTKBD is not set |
@@ -597,6 +614,7 @@ CONFIG_LEGACY_PTY_COUNT=16 | |||
597 | # CONFIG_TCG_TPM is not set | 614 | # CONFIG_TCG_TPM is not set |
598 | CONFIG_I2C=y | 615 | CONFIG_I2C=y |
599 | CONFIG_I2C_BOARDINFO=y | 616 | CONFIG_I2C_BOARDINFO=y |
617 | CONFIG_I2C_COMPAT=y | ||
600 | # CONFIG_I2C_CHARDEV is not set | 618 | # CONFIG_I2C_CHARDEV is not set |
601 | CONFIG_I2C_HELPER_AUTO=y | 619 | CONFIG_I2C_HELPER_AUTO=y |
602 | 620 | ||
@@ -629,9 +647,6 @@ CONFIG_I2C_STU300=y | |||
629 | # Miscellaneous I2C Chip support | 647 | # Miscellaneous I2C Chip support |
630 | # | 648 | # |
631 | # CONFIG_DS1682 is not set | 649 | # CONFIG_DS1682 is not set |
632 | # CONFIG_SENSORS_PCF8574 is not set | ||
633 | # CONFIG_PCF8575 is not set | ||
634 | # CONFIG_SENSORS_PCA9539 is not set | ||
635 | # CONFIG_SENSORS_TSL2550 is not set | 650 | # CONFIG_SENSORS_TSL2550 is not set |
636 | # CONFIG_I2C_DEBUG_CORE is not set | 651 | # CONFIG_I2C_DEBUG_CORE is not set |
637 | # CONFIG_I2C_DEBUG_ALGO is not set | 652 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -653,16 +668,21 @@ CONFIG_SPI_PL022=y | |||
653 | # | 668 | # |
654 | # CONFIG_SPI_SPIDEV is not set | 669 | # CONFIG_SPI_SPIDEV is not set |
655 | # CONFIG_SPI_TLE62X0 is not set | 670 | # CONFIG_SPI_TLE62X0 is not set |
671 | |||
672 | # | ||
673 | # PPS support | ||
674 | # | ||
675 | # CONFIG_PPS is not set | ||
656 | # CONFIG_W1 is not set | 676 | # CONFIG_W1 is not set |
657 | CONFIG_POWER_SUPPLY=y | 677 | CONFIG_POWER_SUPPLY=y |
658 | # CONFIG_POWER_SUPPLY_DEBUG is not set | 678 | # CONFIG_POWER_SUPPLY_DEBUG is not set |
659 | # CONFIG_PDA_POWER is not set | 679 | # CONFIG_PDA_POWER is not set |
660 | # CONFIG_BATTERY_DS2760 is not set | 680 | # CONFIG_BATTERY_DS2760 is not set |
681 | # CONFIG_BATTERY_DS2782 is not set | ||
661 | # CONFIG_BATTERY_BQ27x00 is not set | 682 | # CONFIG_BATTERY_BQ27x00 is not set |
662 | # CONFIG_BATTERY_MAX17040 is not set | 683 | # CONFIG_BATTERY_MAX17040 is not set |
663 | # CONFIG_HWMON is not set | 684 | # CONFIG_HWMON is not set |
664 | # CONFIG_THERMAL is not set | 685 | # CONFIG_THERMAL is not set |
665 | # CONFIG_THERMAL_HWMON is not set | ||
666 | CONFIG_WATCHDOG=y | 686 | CONFIG_WATCHDOG=y |
667 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 687 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
668 | 688 | ||
@@ -690,10 +710,24 @@ CONFIG_SSB_POSSIBLE=y | |||
690 | # CONFIG_MFD_TC6387XB is not set | 710 | # CONFIG_MFD_TC6387XB is not set |
691 | # CONFIG_PMIC_DA903X is not set | 711 | # CONFIG_PMIC_DA903X is not set |
692 | # CONFIG_MFD_WM8400 is not set | 712 | # CONFIG_MFD_WM8400 is not set |
713 | # CONFIG_MFD_WM831X is not set | ||
693 | # CONFIG_MFD_WM8350_I2C is not set | 714 | # CONFIG_MFD_WM8350_I2C is not set |
694 | # CONFIG_MFD_PCF50633 is not set | 715 | # CONFIG_MFD_PCF50633 is not set |
716 | # CONFIG_MFD_MC13783 is not set | ||
695 | CONFIG_AB3100_CORE=y | 717 | CONFIG_AB3100_CORE=y |
718 | CONFIG_AB3100_OTP=y | ||
696 | # CONFIG_EZX_PCAP is not set | 719 | # CONFIG_EZX_PCAP is not set |
720 | CONFIG_REGULATOR=y | ||
721 | # CONFIG_REGULATOR_DEBUG is not set | ||
722 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set | ||
723 | # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set | ||
724 | # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set | ||
725 | # CONFIG_REGULATOR_BQ24022 is not set | ||
726 | # CONFIG_REGULATOR_MAX1586 is not set | ||
727 | # CONFIG_REGULATOR_LP3971 is not set | ||
728 | CONFIG_REGULATOR_AB3100=y | ||
729 | # CONFIG_REGULATOR_TPS65023 is not set | ||
730 | # CONFIG_REGULATOR_TPS6507X is not set | ||
697 | # CONFIG_MEDIA_SUPPORT is not set | 731 | # CONFIG_MEDIA_SUPPORT is not set |
698 | 732 | ||
699 | # | 733 | # |
@@ -792,9 +826,10 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
792 | # | 826 | # |
793 | CONFIG_MMC_ARMMMCI=y | 827 | CONFIG_MMC_ARMMMCI=y |
794 | # CONFIG_MMC_SDHCI is not set | 828 | # CONFIG_MMC_SDHCI is not set |
829 | # CONFIG_MMC_AT91 is not set | ||
830 | # CONFIG_MMC_ATMELMCI is not set | ||
795 | # CONFIG_MMC_SPI is not set | 831 | # CONFIG_MMC_SPI is not set |
796 | # CONFIG_MEMSTICK is not set | 832 | # CONFIG_MEMSTICK is not set |
797 | # CONFIG_ACCESSIBILITY is not set | ||
798 | CONFIG_NEW_LEDS=y | 833 | CONFIG_NEW_LEDS=y |
799 | CONFIG_LEDS_CLASS=y | 834 | CONFIG_LEDS_CLASS=y |
800 | 835 | ||
@@ -820,10 +855,10 @@ CONFIG_LEDS_TRIGGER_BACKLIGHT=y | |||
820 | # | 855 | # |
821 | # iptables trigger is under Netfilter config (LED target) | 856 | # iptables trigger is under Netfilter config (LED target) |
822 | # | 857 | # |
858 | # CONFIG_ACCESSIBILITY is not set | ||
823 | CONFIG_RTC_LIB=y | 859 | CONFIG_RTC_LIB=y |
824 | CONFIG_RTC_CLASS=y | 860 | CONFIG_RTC_CLASS=y |
825 | CONFIG_RTC_HCTOSYS=y | 861 | # CONFIG_RTC_HCTOSYS is not set |
826 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
827 | # CONFIG_RTC_DEBUG is not set | 862 | # CONFIG_RTC_DEBUG is not set |
828 | 863 | ||
829 | # | 864 | # |
@@ -863,6 +898,7 @@ CONFIG_RTC_INTF_DEV=y | |||
863 | # CONFIG_RTC_DRV_R9701 is not set | 898 | # CONFIG_RTC_DRV_R9701 is not set |
864 | # CONFIG_RTC_DRV_RS5C348 is not set | 899 | # CONFIG_RTC_DRV_RS5C348 is not set |
865 | # CONFIG_RTC_DRV_DS3234 is not set | 900 | # CONFIG_RTC_DRV_DS3234 is not set |
901 | # CONFIG_RTC_DRV_PCF2123 is not set | ||
866 | 902 | ||
867 | # | 903 | # |
868 | # Platform RTC drivers | 904 | # Platform RTC drivers |
@@ -878,27 +914,25 @@ CONFIG_RTC_INTF_DEV=y | |||
878 | # CONFIG_RTC_DRV_M48T59 is not set | 914 | # CONFIG_RTC_DRV_M48T59 is not set |
879 | # CONFIG_RTC_DRV_BQ4802 is not set | 915 | # CONFIG_RTC_DRV_BQ4802 is not set |
880 | # CONFIG_RTC_DRV_V3020 is not set | 916 | # CONFIG_RTC_DRV_V3020 is not set |
917 | CONFIG_RTC_DRV_AB3100=y | ||
881 | 918 | ||
882 | # | 919 | # |
883 | # on-CPU RTC drivers | 920 | # on-CPU RTC drivers |
884 | # | 921 | # |
885 | # CONFIG_RTC_DRV_PL030 is not set | 922 | # CONFIG_RTC_DRV_PL030 is not set |
886 | # CONFIG_RTC_DRV_PL031 is not set | 923 | # CONFIG_RTC_DRV_PL031 is not set |
924 | CONFIG_RTC_DRV_COH901331=y | ||
887 | CONFIG_DMADEVICES=y | 925 | CONFIG_DMADEVICES=y |
888 | 926 | ||
889 | # | 927 | # |
890 | # DMA Devices | 928 | # DMA Devices |
891 | # | 929 | # |
892 | # CONFIG_AUXDISPLAY is not set | 930 | # CONFIG_AUXDISPLAY is not set |
893 | CONFIG_REGULATOR=y | ||
894 | # CONFIG_REGULATOR_DEBUG is not set | ||
895 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set | ||
896 | # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set | ||
897 | # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set | ||
898 | # CONFIG_REGULATOR_BQ24022 is not set | ||
899 | # CONFIG_REGULATOR_MAX1586 is not set | ||
900 | # CONFIG_REGULATOR_LP3971 is not set | ||
901 | # CONFIG_UIO is not set | 931 | # CONFIG_UIO is not set |
932 | |||
933 | # | ||
934 | # TI VLYNQ | ||
935 | # | ||
902 | # CONFIG_STAGING is not set | 936 | # CONFIG_STAGING is not set |
903 | 937 | ||
904 | # | 938 | # |
@@ -913,6 +947,7 @@ CONFIG_REGULATOR=y | |||
913 | # CONFIG_XFS_FS is not set | 947 | # CONFIG_XFS_FS is not set |
914 | # CONFIG_OCFS2_FS is not set | 948 | # CONFIG_OCFS2_FS is not set |
915 | # CONFIG_BTRFS_FS is not set | 949 | # CONFIG_BTRFS_FS is not set |
950 | # CONFIG_NILFS2_FS is not set | ||
916 | CONFIG_FILE_LOCKING=y | 951 | CONFIG_FILE_LOCKING=y |
917 | CONFIG_FSNOTIFY=y | 952 | CONFIG_FSNOTIFY=y |
918 | # CONFIG_DNOTIFY is not set | 953 | # CONFIG_DNOTIFY is not set |
@@ -975,7 +1010,6 @@ CONFIG_MISC_FILESYSTEMS=y | |||
975 | # CONFIG_ROMFS_FS is not set | 1010 | # CONFIG_ROMFS_FS is not set |
976 | # CONFIG_SYSV_FS is not set | 1011 | # CONFIG_SYSV_FS is not set |
977 | # CONFIG_UFS_FS is not set | 1012 | # CONFIG_UFS_FS is not set |
978 | # CONFIG_NILFS2_FS is not set | ||
979 | # CONFIG_NETWORK_FILESYSTEMS is not set | 1013 | # CONFIG_NETWORK_FILESYSTEMS is not set |
980 | 1014 | ||
981 | # | 1015 | # |
@@ -1033,6 +1067,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1033 | CONFIG_ENABLE_MUST_CHECK=y | 1067 | CONFIG_ENABLE_MUST_CHECK=y |
1034 | CONFIG_FRAME_WARN=1024 | 1068 | CONFIG_FRAME_WARN=1024 |
1035 | # CONFIG_MAGIC_SYSRQ is not set | 1069 | # CONFIG_MAGIC_SYSRQ is not set |
1070 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1036 | # CONFIG_UNUSED_SYMBOLS is not set | 1071 | # CONFIG_UNUSED_SYMBOLS is not set |
1037 | # CONFIG_DEBUG_FS is not set | 1072 | # CONFIG_DEBUG_FS is not set |
1038 | # CONFIG_HEADERS_CHECK is not set | 1073 | # CONFIG_HEADERS_CHECK is not set |
@@ -1066,11 +1101,13 @@ CONFIG_DEBUG_INFO=y | |||
1066 | # CONFIG_DEBUG_LIST is not set | 1101 | # CONFIG_DEBUG_LIST is not set |
1067 | # CONFIG_DEBUG_SG is not set | 1102 | # CONFIG_DEBUG_SG is not set |
1068 | # CONFIG_DEBUG_NOTIFIERS is not set | 1103 | # CONFIG_DEBUG_NOTIFIERS is not set |
1104 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
1069 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1105 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1070 | # CONFIG_RCU_TORTURE_TEST is not set | 1106 | # CONFIG_RCU_TORTURE_TEST is not set |
1071 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1107 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1072 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1108 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1073 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1109 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1110 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1074 | # CONFIG_FAULT_INJECTION is not set | 1111 | # CONFIG_FAULT_INJECTION is not set |
1075 | # CONFIG_LATENCYTOP is not set | 1112 | # CONFIG_LATENCYTOP is not set |
1076 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | 1113 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set |
@@ -1121,6 +1158,7 @@ CONFIG_GENERIC_FIND_LAST_BIT=y | |||
1121 | # CONFIG_CRC32 is not set | 1158 | # CONFIG_CRC32 is not set |
1122 | # CONFIG_CRC7 is not set | 1159 | # CONFIG_CRC7 is not set |
1123 | # CONFIG_LIBCRC32C is not set | 1160 | # CONFIG_LIBCRC32C is not set |
1161 | CONFIG_GENERIC_ALLOCATOR=y | ||
1124 | CONFIG_HAS_IOMEM=y | 1162 | CONFIG_HAS_IOMEM=y |
1125 | CONFIG_HAS_IOPORT=y | 1163 | CONFIG_HAS_IOPORT=y |
1126 | CONFIG_HAS_DMA=y | 1164 | CONFIG_HAS_DMA=y |
diff --git a/arch/arm/configs/u8500_defconfig b/arch/arm/configs/u8500_defconfig new file mode 100644 index 000000000000..15fde22ce3f3 --- /dev/null +++ b/arch/arm/configs/u8500_defconfig | |||
@@ -0,0 +1,680 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.32-rc8 | ||
4 | # Mon Nov 30 11:11:29 2009 | ||
5 | # | ||
6 | CONFIG_ARM=y | ||
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||
8 | CONFIG_GENERIC_TIME=y | ||
9 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
10 | CONFIG_GENERIC_HARDIRQS=y | ||
11 | CONFIG_STACKTRACE_SUPPORT=y | ||
12 | CONFIG_LOCKDEP_SUPPORT=y | ||
13 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
14 | CONFIG_HARDIRQS_SW_RESEND=y | ||
15 | CONFIG_GENERIC_IRQ_PROBE=y | ||
16 | CONFIG_GENERIC_LOCKBREAK=y | ||
17 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
18 | CONFIG_GENERIC_HWEIGHT=y | ||
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
20 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
21 | CONFIG_VECTORS_BASE=0xffff0000 | ||
22 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
23 | CONFIG_CONSTRUCTORS=y | ||
24 | |||
25 | # | ||
26 | # General setup | ||
27 | # | ||
28 | CONFIG_EXPERIMENTAL=y | ||
29 | CONFIG_LOCK_KERNEL=y | ||
30 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
31 | CONFIG_LOCALVERSION="" | ||
32 | CONFIG_LOCALVERSION_AUTO=y | ||
33 | # CONFIG_SWAP is not set | ||
34 | CONFIG_SYSVIPC=y | ||
35 | CONFIG_SYSVIPC_SYSCTL=y | ||
36 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
37 | |||
38 | # | ||
39 | # RCU Subsystem | ||
40 | # | ||
41 | CONFIG_TREE_RCU=y | ||
42 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
43 | # CONFIG_RCU_TRACE is not set | ||
44 | CONFIG_RCU_FANOUT=32 | ||
45 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
46 | # CONFIG_TREE_RCU_TRACE is not set | ||
47 | # CONFIG_IKCONFIG is not set | ||
48 | CONFIG_LOG_BUF_SHIFT=17 | ||
49 | CONFIG_GROUP_SCHED=y | ||
50 | CONFIG_FAIR_GROUP_SCHED=y | ||
51 | CONFIG_RT_GROUP_SCHED=y | ||
52 | CONFIG_USER_SCHED=y | ||
53 | # CONFIG_CGROUP_SCHED is not set | ||
54 | # CONFIG_CGROUPS is not set | ||
55 | CONFIG_SYSFS_DEPRECATED=y | ||
56 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
57 | # CONFIG_RELAY is not set | ||
58 | CONFIG_NAMESPACES=y | ||
59 | # CONFIG_UTS_NS is not set | ||
60 | # CONFIG_IPC_NS is not set | ||
61 | # CONFIG_USER_NS is not set | ||
62 | # CONFIG_PID_NS is not set | ||
63 | CONFIG_BLK_DEV_INITRD=y | ||
64 | CONFIG_INITRAMFS_SOURCE="" | ||
65 | CONFIG_RD_GZIP=y | ||
66 | CONFIG_RD_BZIP2=y | ||
67 | CONFIG_RD_LZMA=y | ||
68 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
69 | CONFIG_SYSCTL=y | ||
70 | CONFIG_ANON_INODES=y | ||
71 | # CONFIG_EMBEDDED is not set | ||
72 | CONFIG_UID16=y | ||
73 | CONFIG_SYSCTL_SYSCALL=y | ||
74 | CONFIG_KALLSYMS=y | ||
75 | CONFIG_KALLSYMS_ALL=y | ||
76 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
77 | CONFIG_HOTPLUG=y | ||
78 | CONFIG_PRINTK=y | ||
79 | CONFIG_BUG=y | ||
80 | CONFIG_ELF_CORE=y | ||
81 | CONFIG_BASE_FULL=y | ||
82 | CONFIG_FUTEX=y | ||
83 | CONFIG_EPOLL=y | ||
84 | CONFIG_SIGNALFD=y | ||
85 | CONFIG_TIMERFD=y | ||
86 | CONFIG_EVENTFD=y | ||
87 | CONFIG_SHMEM=y | ||
88 | CONFIG_AIO=y | ||
89 | |||
90 | # | ||
91 | # Kernel Performance Events And Counters | ||
92 | # | ||
93 | CONFIG_VM_EVENT_COUNTERS=y | ||
94 | CONFIG_SLUB_DEBUG=y | ||
95 | CONFIG_COMPAT_BRK=y | ||
96 | # CONFIG_SLAB is not set | ||
97 | CONFIG_SLUB=y | ||
98 | # CONFIG_SLOB is not set | ||
99 | # CONFIG_PROFILING is not set | ||
100 | CONFIG_HAVE_OPROFILE=y | ||
101 | # CONFIG_KPROBES is not set | ||
102 | CONFIG_HAVE_KPROBES=y | ||
103 | CONFIG_HAVE_KRETPROBES=y | ||
104 | CONFIG_USE_GENERIC_SMP_HELPERS=y | ||
105 | |||
106 | # | ||
107 | # GCOV-based kernel profiling | ||
108 | # | ||
109 | # CONFIG_SLOW_WORK is not set | ||
110 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
111 | CONFIG_SLABINFO=y | ||
112 | CONFIG_RT_MUTEXES=y | ||
113 | CONFIG_BASE_SMALL=0 | ||
114 | CONFIG_MODULES=y | ||
115 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
116 | CONFIG_MODULE_UNLOAD=y | ||
117 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
118 | # CONFIG_MODVERSIONS is not set | ||
119 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
120 | CONFIG_STOP_MACHINE=y | ||
121 | CONFIG_BLOCK=y | ||
122 | # CONFIG_LBDAF is not set | ||
123 | # CONFIG_BLK_DEV_BSG is not set | ||
124 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
125 | |||
126 | # | ||
127 | # IO Schedulers | ||
128 | # | ||
129 | CONFIG_IOSCHED_NOOP=y | ||
130 | CONFIG_IOSCHED_AS=y | ||
131 | CONFIG_IOSCHED_DEADLINE=y | ||
132 | CONFIG_IOSCHED_CFQ=y | ||
133 | # CONFIG_DEFAULT_AS is not set | ||
134 | # CONFIG_DEFAULT_DEADLINE is not set | ||
135 | CONFIG_DEFAULT_CFQ=y | ||
136 | # CONFIG_DEFAULT_NOOP is not set | ||
137 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
138 | # CONFIG_FREEZER is not set | ||
139 | |||
140 | # | ||
141 | # System Type | ||
142 | # | ||
143 | CONFIG_MMU=y | ||
144 | # CONFIG_ARCH_AAEC2000 is not set | ||
145 | # CONFIG_ARCH_INTEGRATOR is not set | ||
146 | # CONFIG_ARCH_REALVIEW is not set | ||
147 | # CONFIG_ARCH_VERSATILE is not set | ||
148 | # CONFIG_ARCH_AT91 is not set | ||
149 | # CONFIG_ARCH_CLPS711X is not set | ||
150 | # CONFIG_ARCH_GEMINI is not set | ||
151 | # CONFIG_ARCH_EBSA110 is not set | ||
152 | # CONFIG_ARCH_EP93XX is not set | ||
153 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
154 | # CONFIG_ARCH_MXC is not set | ||
155 | # CONFIG_ARCH_STMP3XXX is not set | ||
156 | # CONFIG_ARCH_NETX is not set | ||
157 | # CONFIG_ARCH_H720X is not set | ||
158 | # CONFIG_ARCH_NOMADIK is not set | ||
159 | # CONFIG_ARCH_IOP13XX is not set | ||
160 | # CONFIG_ARCH_IOP32X is not set | ||
161 | # CONFIG_ARCH_IOP33X is not set | ||
162 | # CONFIG_ARCH_IXP23XX is not set | ||
163 | # CONFIG_ARCH_IXP2000 is not set | ||
164 | # CONFIG_ARCH_IXP4XX is not set | ||
165 | # CONFIG_ARCH_L7200 is not set | ||
166 | # CONFIG_ARCH_KIRKWOOD is not set | ||
167 | # CONFIG_ARCH_LOKI is not set | ||
168 | # CONFIG_ARCH_MV78XX0 is not set | ||
169 | # CONFIG_ARCH_ORION5X is not set | ||
170 | # CONFIG_ARCH_MMP is not set | ||
171 | # CONFIG_ARCH_KS8695 is not set | ||
172 | # CONFIG_ARCH_NS9XXX is not set | ||
173 | # CONFIG_ARCH_W90X900 is not set | ||
174 | # CONFIG_ARCH_PNX4008 is not set | ||
175 | # CONFIG_ARCH_PXA is not set | ||
176 | # CONFIG_ARCH_MSM is not set | ||
177 | # CONFIG_ARCH_RPC is not set | ||
178 | # CONFIG_ARCH_SA1100 is not set | ||
179 | # CONFIG_ARCH_S3C2410 is not set | ||
180 | # CONFIG_ARCH_S3C64XX is not set | ||
181 | # CONFIG_ARCH_S5PC1XX is not set | ||
182 | # CONFIG_ARCH_SHARK is not set | ||
183 | # CONFIG_ARCH_LH7A40X is not set | ||
184 | # CONFIG_ARCH_U300 is not set | ||
185 | # CONFIG_ARCH_DAVINCI is not set | ||
186 | # CONFIG_ARCH_OMAP is not set | ||
187 | # CONFIG_ARCH_BCMRING is not set | ||
188 | CONFIG_ARCH_U8500=y | ||
189 | CONFIG_PLAT_NOMADIK=y | ||
190 | CONFIG_HAS_MTU=y | ||
191 | |||
192 | # | ||
193 | # ST-Ericsson platform type | ||
194 | # | ||
195 | |||
196 | # | ||
197 | # ST-Ericsson Multicore Mobile Platforms | ||
198 | # | ||
199 | CONFIG_MACH_U8500_MOP=y | ||
200 | |||
201 | # | ||
202 | # Processor Type | ||
203 | # | ||
204 | CONFIG_CPU_32=y | ||
205 | CONFIG_CPU_32v6K=y | ||
206 | CONFIG_CPU_V7=y | ||
207 | CONFIG_CPU_32v7=y | ||
208 | CONFIG_CPU_ABRT_EV7=y | ||
209 | CONFIG_CPU_PABRT_V7=y | ||
210 | CONFIG_CPU_CACHE_V7=y | ||
211 | CONFIG_CPU_CACHE_VIPT=y | ||
212 | CONFIG_CPU_COPY_V6=y | ||
213 | CONFIG_CPU_TLB_V7=y | ||
214 | CONFIG_CPU_HAS_ASID=y | ||
215 | CONFIG_CPU_CP15=y | ||
216 | CONFIG_CPU_CP15_MMU=y | ||
217 | |||
218 | # | ||
219 | # Processor Features | ||
220 | # | ||
221 | CONFIG_ARM_THUMB=y | ||
222 | # CONFIG_ARM_THUMBEE is not set | ||
223 | # CONFIG_CPU_ICACHE_DISABLE is not set | ||
224 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
225 | # CONFIG_CPU_BPREDICT_DISABLE is not set | ||
226 | CONFIG_HAS_TLS_REG=y | ||
227 | CONFIG_ARM_L1_CACHE_SHIFT=5 | ||
228 | # CONFIG_ARM_ERRATA_430973 is not set | ||
229 | # CONFIG_ARM_ERRATA_458693 is not set | ||
230 | # CONFIG_ARM_ERRATA_460075 is not set | ||
231 | CONFIG_ARM_GIC=y | ||
232 | CONFIG_COMMON_CLKDEV=y | ||
233 | |||
234 | # | ||
235 | # Bus support | ||
236 | # | ||
237 | CONFIG_ARM_AMBA=y | ||
238 | # CONFIG_PCI_SYSCALL is not set | ||
239 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
240 | # CONFIG_PCCARD is not set | ||
241 | |||
242 | # | ||
243 | # Kernel Features | ||
244 | # | ||
245 | # CONFIG_NO_HZ is not set | ||
246 | # CONFIG_HIGH_RES_TIMERS is not set | ||
247 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
248 | CONFIG_SMP=y | ||
249 | CONFIG_HAVE_ARM_SCU=y | ||
250 | CONFIG_HAVE_ARM_TWD=y | ||
251 | CONFIG_VMSPLIT_3G=y | ||
252 | # CONFIG_VMSPLIT_2G is not set | ||
253 | # CONFIG_VMSPLIT_1G is not set | ||
254 | CONFIG_PAGE_OFFSET=0xC0000000 | ||
255 | CONFIG_NR_CPUS=2 | ||
256 | # CONFIG_HOTPLUG_CPU is not set | ||
257 | CONFIG_LOCAL_TIMERS=y | ||
258 | # CONFIG_PREEMPT_NONE is not set | ||
259 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
260 | CONFIG_PREEMPT=y | ||
261 | CONFIG_HZ=100 | ||
262 | # CONFIG_THUMB2_KERNEL is not set | ||
263 | CONFIG_AEABI=y | ||
264 | CONFIG_OABI_COMPAT=y | ||
265 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | ||
266 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | ||
267 | # CONFIG_HIGHMEM is not set | ||
268 | CONFIG_SELECT_MEMORY_MODEL=y | ||
269 | CONFIG_FLATMEM_MANUAL=y | ||
270 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
271 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
272 | CONFIG_FLATMEM=y | ||
273 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
274 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
275 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
276 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
277 | CONFIG_ZONE_DMA_FLAG=0 | ||
278 | CONFIG_VIRT_TO_BUS=y | ||
279 | CONFIG_HAVE_MLOCK=y | ||
280 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
281 | # CONFIG_KSM is not set | ||
282 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
283 | CONFIG_ALIGNMENT_TRAP=y | ||
284 | # CONFIG_UACCESS_WITH_MEMCPY is not set | ||
285 | |||
286 | # | ||
287 | # Boot options | ||
288 | # | ||
289 | CONFIG_ZBOOT_ROM_TEXT=0 | ||
290 | CONFIG_ZBOOT_ROM_BSS=0 | ||
291 | CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8" | ||
292 | # CONFIG_XIP_KERNEL is not set | ||
293 | # CONFIG_KEXEC is not set | ||
294 | |||
295 | # | ||
296 | # CPU Power Management | ||
297 | # | ||
298 | # CONFIG_CPU_IDLE is not set | ||
299 | |||
300 | # | ||
301 | # Floating point emulation | ||
302 | # | ||
303 | |||
304 | # | ||
305 | # At least one emulation must be selected | ||
306 | # | ||
307 | # CONFIG_FPE_NWFPE is not set | ||
308 | # CONFIG_FPE_FASTFPE is not set | ||
309 | CONFIG_VFP=y | ||
310 | CONFIG_VFPv3=y | ||
311 | CONFIG_NEON=y | ||
312 | |||
313 | # | ||
314 | # Userspace binary formats | ||
315 | # | ||
316 | CONFIG_BINFMT_ELF=y | ||
317 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
318 | CONFIG_HAVE_AOUT=y | ||
319 | # CONFIG_BINFMT_AOUT is not set | ||
320 | # CONFIG_BINFMT_MISC is not set | ||
321 | |||
322 | # | ||
323 | # Power management options | ||
324 | # | ||
325 | # CONFIG_PM is not set | ||
326 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
327 | # CONFIG_NET is not set | ||
328 | |||
329 | # | ||
330 | # Device Drivers | ||
331 | # | ||
332 | |||
333 | # | ||
334 | # Generic Driver Options | ||
335 | # | ||
336 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
337 | # CONFIG_DEVTMPFS is not set | ||
338 | CONFIG_STANDALONE=y | ||
339 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
340 | CONFIG_FW_LOADER=y | ||
341 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
342 | CONFIG_EXTRA_FIRMWARE="" | ||
343 | # CONFIG_DEBUG_DRIVER is not set | ||
344 | # CONFIG_DEBUG_DEVRES is not set | ||
345 | # CONFIG_SYS_HYPERVISOR is not set | ||
346 | # CONFIG_MTD is not set | ||
347 | # CONFIG_PARPORT is not set | ||
348 | CONFIG_BLK_DEV=y | ||
349 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
350 | # CONFIG_BLK_DEV_LOOP is not set | ||
351 | CONFIG_BLK_DEV_RAM=y | ||
352 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
353 | CONFIG_BLK_DEV_RAM_SIZE=65536 | ||
354 | # CONFIG_BLK_DEV_XIP is not set | ||
355 | # CONFIG_CDROM_PKTCDVD is not set | ||
356 | # CONFIG_MISC_DEVICES is not set | ||
357 | CONFIG_HAVE_IDE=y | ||
358 | # CONFIG_IDE is not set | ||
359 | |||
360 | # | ||
361 | # SCSI device support | ||
362 | # | ||
363 | # CONFIG_RAID_ATTRS is not set | ||
364 | # CONFIG_SCSI is not set | ||
365 | # CONFIG_SCSI_DMA is not set | ||
366 | # CONFIG_SCSI_NETLINK is not set | ||
367 | # CONFIG_ATA is not set | ||
368 | # CONFIG_MD is not set | ||
369 | # CONFIG_PHONE is not set | ||
370 | |||
371 | # | ||
372 | # Input device support | ||
373 | # | ||
374 | CONFIG_INPUT=y | ||
375 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
376 | # CONFIG_INPUT_POLLDEV is not set | ||
377 | |||
378 | # | ||
379 | # Userland interfaces | ||
380 | # | ||
381 | CONFIG_INPUT_MOUSEDEV=y | ||
382 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
383 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
384 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
385 | # CONFIG_INPUT_JOYDEV is not set | ||
386 | CONFIG_INPUT_EVDEV=y | ||
387 | # CONFIG_INPUT_EVBUG is not set | ||
388 | |||
389 | # | ||
390 | # Input Device Drivers | ||
391 | # | ||
392 | # CONFIG_INPUT_KEYBOARD is not set | ||
393 | # CONFIG_INPUT_MOUSE is not set | ||
394 | # CONFIG_INPUT_JOYSTICK is not set | ||
395 | # CONFIG_INPUT_TABLET is not set | ||
396 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
397 | # CONFIG_INPUT_MISC is not set | ||
398 | |||
399 | # | ||
400 | # Hardware I/O ports | ||
401 | # | ||
402 | # CONFIG_SERIO is not set | ||
403 | # CONFIG_GAMEPORT is not set | ||
404 | |||
405 | # | ||
406 | # Character devices | ||
407 | # | ||
408 | CONFIG_VT=y | ||
409 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
410 | CONFIG_VT_CONSOLE=y | ||
411 | CONFIG_HW_CONSOLE=y | ||
412 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
413 | CONFIG_DEVKMEM=y | ||
414 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
415 | |||
416 | # | ||
417 | # Serial drivers | ||
418 | # | ||
419 | # CONFIG_SERIAL_8250 is not set | ||
420 | |||
421 | # | ||
422 | # Non-8250 serial port support | ||
423 | # | ||
424 | # CONFIG_SERIAL_AMBA_PL010 is not set | ||
425 | CONFIG_SERIAL_AMBA_PL011=y | ||
426 | CONFIG_SERIAL_AMBA_PL011_CONSOLE=y | ||
427 | # CONFIG_SERIAL_MAX3100 is not set | ||
428 | CONFIG_SERIAL_CORE=y | ||
429 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
430 | CONFIG_UNIX98_PTYS=y | ||
431 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
432 | # CONFIG_LEGACY_PTYS is not set | ||
433 | # CONFIG_IPMI_HANDLER is not set | ||
434 | # CONFIG_HW_RANDOM is not set | ||
435 | # CONFIG_R3964 is not set | ||
436 | # CONFIG_RAW_DRIVER is not set | ||
437 | # CONFIG_TCG_TPM is not set | ||
438 | # CONFIG_I2C is not set | ||
439 | CONFIG_SPI=y | ||
440 | # CONFIG_SPI_DEBUG is not set | ||
441 | CONFIG_SPI_MASTER=y | ||
442 | |||
443 | # | ||
444 | # SPI Master Controller Drivers | ||
445 | # | ||
446 | # CONFIG_SPI_BITBANG is not set | ||
447 | CONFIG_SPI_PL022=y | ||
448 | |||
449 | # | ||
450 | # SPI Protocol Masters | ||
451 | # | ||
452 | # CONFIG_SPI_SPIDEV is not set | ||
453 | # CONFIG_SPI_TLE62X0 is not set | ||
454 | |||
455 | # | ||
456 | # PPS support | ||
457 | # | ||
458 | # CONFIG_PPS is not set | ||
459 | # CONFIG_W1 is not set | ||
460 | # CONFIG_POWER_SUPPLY is not set | ||
461 | # CONFIG_HWMON is not set | ||
462 | # CONFIG_THERMAL is not set | ||
463 | # CONFIG_WATCHDOG is not set | ||
464 | CONFIG_SSB_POSSIBLE=y | ||
465 | |||
466 | # | ||
467 | # Sonics Silicon Backplane | ||
468 | # | ||
469 | # CONFIG_SSB is not set | ||
470 | |||
471 | # | ||
472 | # Multifunction device drivers | ||
473 | # | ||
474 | # CONFIG_MFD_CORE is not set | ||
475 | # CONFIG_MFD_SM501 is not set | ||
476 | # CONFIG_HTC_PASIC3 is not set | ||
477 | # CONFIG_MFD_TMIO is not set | ||
478 | # CONFIG_MFD_MC13783 is not set | ||
479 | # CONFIG_EZX_PCAP is not set | ||
480 | # CONFIG_REGULATOR is not set | ||
481 | # CONFIG_MEDIA_SUPPORT is not set | ||
482 | |||
483 | # | ||
484 | # Graphics support | ||
485 | # | ||
486 | # CONFIG_VGASTATE is not set | ||
487 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
488 | # CONFIG_FB is not set | ||
489 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
490 | |||
491 | # | ||
492 | # Display device support | ||
493 | # | ||
494 | # CONFIG_DISPLAY_SUPPORT is not set | ||
495 | |||
496 | # | ||
497 | # Console display driver support | ||
498 | # | ||
499 | # CONFIG_VGA_CONSOLE is not set | ||
500 | CONFIG_DUMMY_CONSOLE=y | ||
501 | # CONFIG_SOUND is not set | ||
502 | # CONFIG_HID_SUPPORT is not set | ||
503 | # CONFIG_USB_SUPPORT is not set | ||
504 | # CONFIG_MMC is not set | ||
505 | # CONFIG_MEMSTICK is not set | ||
506 | # CONFIG_NEW_LEDS is not set | ||
507 | # CONFIG_ACCESSIBILITY is not set | ||
508 | CONFIG_RTC_LIB=y | ||
509 | # CONFIG_RTC_CLASS is not set | ||
510 | # CONFIG_DMADEVICES is not set | ||
511 | # CONFIG_AUXDISPLAY is not set | ||
512 | # CONFIG_UIO is not set | ||
513 | |||
514 | # | ||
515 | # TI VLYNQ | ||
516 | # | ||
517 | # CONFIG_STAGING is not set | ||
518 | |||
519 | # | ||
520 | # File systems | ||
521 | # | ||
522 | CONFIG_EXT2_FS=y | ||
523 | CONFIG_EXT2_FS_XATTR=y | ||
524 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
525 | CONFIG_EXT2_FS_SECURITY=y | ||
526 | # CONFIG_EXT2_FS_XIP is not set | ||
527 | # CONFIG_EXT3_FS is not set | ||
528 | # CONFIG_EXT4_FS is not set | ||
529 | CONFIG_FS_MBCACHE=y | ||
530 | # CONFIG_REISERFS_FS is not set | ||
531 | # CONFIG_JFS_FS is not set | ||
532 | CONFIG_FS_POSIX_ACL=y | ||
533 | # CONFIG_XFS_FS is not set | ||
534 | # CONFIG_BTRFS_FS is not set | ||
535 | # CONFIG_NILFS2_FS is not set | ||
536 | CONFIG_FILE_LOCKING=y | ||
537 | CONFIG_FSNOTIFY=y | ||
538 | CONFIG_DNOTIFY=y | ||
539 | CONFIG_INOTIFY=y | ||
540 | CONFIG_INOTIFY_USER=y | ||
541 | # CONFIG_QUOTA is not set | ||
542 | # CONFIG_AUTOFS_FS is not set | ||
543 | # CONFIG_AUTOFS4_FS is not set | ||
544 | # CONFIG_FUSE_FS is not set | ||
545 | CONFIG_GENERIC_ACL=y | ||
546 | |||
547 | # | ||
548 | # Caches | ||
549 | # | ||
550 | # CONFIG_FSCACHE is not set | ||
551 | |||
552 | # | ||
553 | # CD-ROM/DVD Filesystems | ||
554 | # | ||
555 | # CONFIG_ISO9660_FS is not set | ||
556 | # CONFIG_UDF_FS is not set | ||
557 | |||
558 | # | ||
559 | # DOS/FAT/NT Filesystems | ||
560 | # | ||
561 | # CONFIG_MSDOS_FS is not set | ||
562 | # CONFIG_VFAT_FS is not set | ||
563 | # CONFIG_NTFS_FS is not set | ||
564 | |||
565 | # | ||
566 | # Pseudo filesystems | ||
567 | # | ||
568 | CONFIG_PROC_FS=y | ||
569 | CONFIG_PROC_SYSCTL=y | ||
570 | CONFIG_PROC_PAGE_MONITOR=y | ||
571 | CONFIG_SYSFS=y | ||
572 | CONFIG_TMPFS=y | ||
573 | CONFIG_TMPFS_POSIX_ACL=y | ||
574 | # CONFIG_HUGETLB_PAGE is not set | ||
575 | CONFIG_CONFIGFS_FS=m | ||
576 | # CONFIG_MISC_FILESYSTEMS is not set | ||
577 | |||
578 | # | ||
579 | # Partition Types | ||
580 | # | ||
581 | # CONFIG_PARTITION_ADVANCED is not set | ||
582 | CONFIG_MSDOS_PARTITION=y | ||
583 | # CONFIG_NLS is not set | ||
584 | |||
585 | # | ||
586 | # Kernel hacking | ||
587 | # | ||
588 | # CONFIG_PRINTK_TIME is not set | ||
589 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
590 | CONFIG_ENABLE_MUST_CHECK=y | ||
591 | CONFIG_FRAME_WARN=1024 | ||
592 | CONFIG_MAGIC_SYSRQ=y | ||
593 | # CONFIG_STRIP_ASM_SYMS is not set | ||
594 | # CONFIG_UNUSED_SYMBOLS is not set | ||
595 | # CONFIG_DEBUG_FS is not set | ||
596 | # CONFIG_HEADERS_CHECK is not set | ||
597 | CONFIG_DEBUG_KERNEL=y | ||
598 | # CONFIG_DEBUG_SHIRQ is not set | ||
599 | CONFIG_DETECT_SOFTLOCKUP=y | ||
600 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
601 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
602 | CONFIG_DETECT_HUNG_TASK=y | ||
603 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
604 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
605 | # CONFIG_SCHED_DEBUG is not set | ||
606 | # CONFIG_SCHEDSTATS is not set | ||
607 | # CONFIG_TIMER_STATS is not set | ||
608 | # CONFIG_DEBUG_OBJECTS is not set | ||
609 | # CONFIG_SLUB_DEBUG_ON is not set | ||
610 | # CONFIG_SLUB_STATS is not set | ||
611 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
612 | # CONFIG_DEBUG_PREEMPT is not set | ||
613 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
614 | # CONFIG_RT_MUTEX_TESTER is not set | ||
615 | # CONFIG_DEBUG_SPINLOCK is not set | ||
616 | # CONFIG_DEBUG_MUTEXES is not set | ||
617 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
618 | # CONFIG_PROVE_LOCKING is not set | ||
619 | # CONFIG_LOCK_STAT is not set | ||
620 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
621 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
622 | # CONFIG_DEBUG_KOBJECT is not set | ||
623 | CONFIG_DEBUG_BUGVERBOSE=y | ||
624 | CONFIG_DEBUG_INFO=y | ||
625 | # CONFIG_DEBUG_VM is not set | ||
626 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
627 | CONFIG_DEBUG_MEMORY_INIT=y | ||
628 | # CONFIG_DEBUG_LIST is not set | ||
629 | # CONFIG_DEBUG_SG is not set | ||
630 | # CONFIG_DEBUG_NOTIFIERS is not set | ||
631 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
632 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
633 | # CONFIG_RCU_TORTURE_TEST is not set | ||
634 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
635 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
636 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
637 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
638 | # CONFIG_FAULT_INJECTION is not set | ||
639 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
640 | # CONFIG_PAGE_POISONING is not set | ||
641 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
642 | CONFIG_TRACING_SUPPORT=y | ||
643 | # CONFIG_FTRACE is not set | ||
644 | # CONFIG_SAMPLES is not set | ||
645 | CONFIG_HAVE_ARCH_KGDB=y | ||
646 | # CONFIG_KGDB is not set | ||
647 | CONFIG_ARM_UNWIND=y | ||
648 | CONFIG_DEBUG_USER=y | ||
649 | CONFIG_DEBUG_ERRORS=y | ||
650 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
651 | # CONFIG_DEBUG_LL is not set | ||
652 | |||
653 | # | ||
654 | # Security options | ||
655 | # | ||
656 | # CONFIG_KEYS is not set | ||
657 | # CONFIG_SECURITY is not set | ||
658 | # CONFIG_SECURITYFS is not set | ||
659 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
660 | # CONFIG_CRYPTO is not set | ||
661 | # CONFIG_BINARY_PRINTF is not set | ||
662 | |||
663 | # | ||
664 | # Library routines | ||
665 | # | ||
666 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
667 | # CONFIG_CRC_CCITT is not set | ||
668 | # CONFIG_CRC16 is not set | ||
669 | CONFIG_CRC_T10DIF=m | ||
670 | # CONFIG_CRC_ITU_T is not set | ||
671 | # CONFIG_CRC32 is not set | ||
672 | # CONFIG_CRC7 is not set | ||
673 | # CONFIG_LIBCRC32C is not set | ||
674 | CONFIG_ZLIB_INFLATE=y | ||
675 | CONFIG_DECOMPRESS_GZIP=y | ||
676 | CONFIG_DECOMPRESS_BZIP2=y | ||
677 | CONFIG_DECOMPRESS_LZMA=y | ||
678 | CONFIG_HAS_IOMEM=y | ||
679 | CONFIG_HAS_IOPORT=y | ||
680 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index fd03fb63a332..9fd6d3ab68c0 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h | |||
@@ -331,15 +331,15 @@ static inline void outer_flush_range(unsigned long start, unsigned long end) | |||
331 | * Convert calls to our calling convention. | 331 | * Convert calls to our calling convention. |
332 | */ | 332 | */ |
333 | #define flush_cache_all() __cpuc_flush_kern_all() | 333 | #define flush_cache_all() __cpuc_flush_kern_all() |
334 | #ifndef CONFIG_CPU_CACHE_VIPT | 334 | |
335 | static inline void flush_cache_mm(struct mm_struct *mm) | 335 | static inline void vivt_flush_cache_mm(struct mm_struct *mm) |
336 | { | 336 | { |
337 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) | 337 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) |
338 | __cpuc_flush_user_all(); | 338 | __cpuc_flush_user_all(); |
339 | } | 339 | } |
340 | 340 | ||
341 | static inline void | 341 | static inline void |
342 | flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) | 342 | vivt_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) |
343 | { | 343 | { |
344 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) | 344 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) |
345 | __cpuc_flush_user_range(start & PAGE_MASK, PAGE_ALIGN(end), | 345 | __cpuc_flush_user_range(start & PAGE_MASK, PAGE_ALIGN(end), |
@@ -347,7 +347,7 @@ flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long | |||
347 | } | 347 | } |
348 | 348 | ||
349 | static inline void | 349 | static inline void |
350 | flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn) | 350 | vivt_flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn) |
351 | { | 351 | { |
352 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) { | 352 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) { |
353 | unsigned long addr = user_addr & PAGE_MASK; | 353 | unsigned long addr = user_addr & PAGE_MASK; |
@@ -356,7 +356,7 @@ flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned l | |||
356 | } | 356 | } |
357 | 357 | ||
358 | static inline void | 358 | static inline void |
359 | flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | 359 | vivt_flush_ptrace_access(struct vm_area_struct *vma, struct page *page, |
360 | unsigned long uaddr, void *kaddr, | 360 | unsigned long uaddr, void *kaddr, |
361 | unsigned long len, int write) | 361 | unsigned long len, int write) |
362 | { | 362 | { |
@@ -365,6 +365,16 @@ flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | |||
365 | __cpuc_coherent_kern_range(addr, addr + len); | 365 | __cpuc_coherent_kern_range(addr, addr + len); |
366 | } | 366 | } |
367 | } | 367 | } |
368 | |||
369 | #ifndef CONFIG_CPU_CACHE_VIPT | ||
370 | #define flush_cache_mm(mm) \ | ||
371 | vivt_flush_cache_mm(mm) | ||
372 | #define flush_cache_range(vma,start,end) \ | ||
373 | vivt_flush_cache_range(vma,start,end) | ||
374 | #define flush_cache_page(vma,addr,pfn) \ | ||
375 | vivt_flush_cache_page(vma,addr,pfn) | ||
376 | #define flush_ptrace_access(vma,page,ua,ka,len,write) \ | ||
377 | vivt_flush_ptrace_access(vma,page,ua,ka,len,write) | ||
368 | #else | 378 | #else |
369 | extern void flush_cache_mm(struct mm_struct *mm); | 379 | extern void flush_cache_mm(struct mm_struct *mm); |
370 | extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); | 380 | extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); |
@@ -410,13 +420,16 @@ extern void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | |||
410 | */ | 420 | */ |
411 | extern void flush_dcache_page(struct page *); | 421 | extern void flush_dcache_page(struct page *); |
412 | 422 | ||
413 | extern void __flush_dcache_page(struct address_space *mapping, struct page *page); | ||
414 | |||
415 | static inline void __flush_icache_all(void) | 423 | static inline void __flush_icache_all(void) |
416 | { | 424 | { |
425 | #ifdef CONFIG_ARM_ERRATA_411920 | ||
426 | extern void v6_icache_inval_all(void); | ||
427 | v6_icache_inval_all(); | ||
428 | #else | ||
417 | asm("mcr p15, 0, %0, c7, c5, 0 @ invalidate I-cache\n" | 429 | asm("mcr p15, 0, %0, c7, c5, 0 @ invalidate I-cache\n" |
418 | : | 430 | : |
419 | : "r" (0)); | 431 | : "r" (0)); |
432 | #endif | ||
420 | } | 433 | } |
421 | 434 | ||
422 | #define ARCH_HAS_FLUSH_ANON_PAGE | 435 | #define ARCH_HAS_FLUSH_ANON_PAGE |
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h index ff46dfa68a97..a96300bf83fd 100644 --- a/arch/arm/include/asm/dma-mapping.h +++ b/arch/arm/include/asm/dma-mapping.h | |||
@@ -15,20 +15,15 @@ | |||
15 | * must not be used by drivers. | 15 | * must not be used by drivers. |
16 | */ | 16 | */ |
17 | #ifndef __arch_page_to_dma | 17 | #ifndef __arch_page_to_dma |
18 | |||
19 | #if !defined(CONFIG_HIGHMEM) | ||
20 | static inline dma_addr_t page_to_dma(struct device *dev, struct page *page) | 18 | static inline dma_addr_t page_to_dma(struct device *dev, struct page *page) |
21 | { | 19 | { |
22 | return (dma_addr_t)__virt_to_bus((unsigned long)page_address(page)); | 20 | return (dma_addr_t)__pfn_to_bus(page_to_pfn(page)); |
23 | } | 21 | } |
24 | #elif defined(__pfn_to_bus) | 22 | |
25 | static inline dma_addr_t page_to_dma(struct device *dev, struct page *page) | 23 | static inline struct page *dma_to_page(struct device *dev, dma_addr_t addr) |
26 | { | 24 | { |
27 | return (dma_addr_t)__pfn_to_bus(page_to_pfn(page)); | 25 | return pfn_to_page(__bus_to_pfn(addr)); |
28 | } | 26 | } |
29 | #else | ||
30 | #error "this machine class needs to define __arch_page_to_dma to use HIGHMEM" | ||
31 | #endif | ||
32 | 27 | ||
33 | static inline void *dma_to_virt(struct device *dev, dma_addr_t addr) | 28 | static inline void *dma_to_virt(struct device *dev, dma_addr_t addr) |
34 | { | 29 | { |
@@ -45,6 +40,11 @@ static inline dma_addr_t page_to_dma(struct device *dev, struct page *page) | |||
45 | return __arch_page_to_dma(dev, page); | 40 | return __arch_page_to_dma(dev, page); |
46 | } | 41 | } |
47 | 42 | ||
43 | static inline struct page *dma_to_page(struct device *dev, dma_addr_t addr) | ||
44 | { | ||
45 | return __arch_dma_to_page(dev, addr); | ||
46 | } | ||
47 | |||
48 | static inline void *dma_to_virt(struct device *dev, dma_addr_t addr) | 48 | static inline void *dma_to_virt(struct device *dev, dma_addr_t addr) |
49 | { | 49 | { |
50 | return __arch_dma_to_virt(dev, addr); | 50 | return __arch_dma_to_virt(dev, addr); |
@@ -257,9 +257,11 @@ extern int dma_needs_bounce(struct device*, dma_addr_t, size_t); | |||
257 | */ | 257 | */ |
258 | extern dma_addr_t dma_map_single(struct device *, void *, size_t, | 258 | extern dma_addr_t dma_map_single(struct device *, void *, size_t, |
259 | enum dma_data_direction); | 259 | enum dma_data_direction); |
260 | extern void dma_unmap_single(struct device *, dma_addr_t, size_t, | ||
261 | enum dma_data_direction); | ||
260 | extern dma_addr_t dma_map_page(struct device *, struct page *, | 262 | extern dma_addr_t dma_map_page(struct device *, struct page *, |
261 | unsigned long, size_t, enum dma_data_direction); | 263 | unsigned long, size_t, enum dma_data_direction); |
262 | extern void dma_unmap_single(struct device *, dma_addr_t, size_t, | 264 | extern void dma_unmap_page(struct device *, dma_addr_t, size_t, |
263 | enum dma_data_direction); | 265 | enum dma_data_direction); |
264 | 266 | ||
265 | /* | 267 | /* |
@@ -352,7 +354,6 @@ static inline void dma_unmap_single(struct device *dev, dma_addr_t handle, | |||
352 | { | 354 | { |
353 | /* nothing to do */ | 355 | /* nothing to do */ |
354 | } | 356 | } |
355 | #endif /* CONFIG_DMABOUNCE */ | ||
356 | 357 | ||
357 | /** | 358 | /** |
358 | * dma_unmap_page - unmap a buffer previously mapped through dma_map_page() | 359 | * dma_unmap_page - unmap a buffer previously mapped through dma_map_page() |
@@ -371,8 +372,9 @@ static inline void dma_unmap_single(struct device *dev, dma_addr_t handle, | |||
371 | static inline void dma_unmap_page(struct device *dev, dma_addr_t handle, | 372 | static inline void dma_unmap_page(struct device *dev, dma_addr_t handle, |
372 | size_t size, enum dma_data_direction dir) | 373 | size_t size, enum dma_data_direction dir) |
373 | { | 374 | { |
374 | dma_unmap_single(dev, handle, size, dir); | 375 | /* nothing to do */ |
375 | } | 376 | } |
377 | #endif /* CONFIG_DMABOUNCE */ | ||
376 | 378 | ||
377 | /** | 379 | /** |
378 | * dma_sync_single_range_for_cpu | 380 | * dma_sync_single_range_for_cpu |
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h index c3b911ee9151..6aac3f5bb2f3 100644 --- a/arch/arm/include/asm/elf.h +++ b/arch/arm/include/asm/elf.h | |||
@@ -98,6 +98,9 @@ extern int elf_check_arch(const struct elf32_hdr *); | |||
98 | extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int); | 98 | extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int); |
99 | #define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk) | 99 | #define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk) |
100 | 100 | ||
101 | int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs); | ||
102 | #define ELF_CORE_COPY_TASK_REGS dump_task_regs | ||
103 | |||
101 | #define USE_ELF_CORE_DUMP | 104 | #define USE_ELF_CORE_DUMP |
102 | #define ELF_EXEC_PAGESIZE 4096 | 105 | #define ELF_EXEC_PAGESIZE 4096 |
103 | 106 | ||
diff --git a/arch/arm/include/asm/hardware/coresight.h b/arch/arm/include/asm/hardware/coresight.h new file mode 100644 index 000000000000..f82b25d4f73e --- /dev/null +++ b/arch/arm/include/asm/hardware/coresight.h | |||
@@ -0,0 +1,165 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/include/asm/hardware/coresight.h | ||
3 | * | ||
4 | * CoreSight components' registers | ||
5 | * | ||
6 | * Copyright (C) 2009 Nokia Corporation. | ||
7 | * Alexander Shishkin | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | #ifndef __ASM_HARDWARE_CORESIGHT_H | ||
15 | #define __ASM_HARDWARE_CORESIGHT_H | ||
16 | |||
17 | #define TRACER_ACCESSED_BIT 0 | ||
18 | #define TRACER_RUNNING_BIT 1 | ||
19 | #define TRACER_CYCLE_ACC_BIT 2 | ||
20 | #define TRACER_ACCESSED BIT(TRACER_ACCESSED_BIT) | ||
21 | #define TRACER_RUNNING BIT(TRACER_RUNNING_BIT) | ||
22 | #define TRACER_CYCLE_ACC BIT(TRACER_CYCLE_ACC_BIT) | ||
23 | |||
24 | struct tracectx { | ||
25 | unsigned int etb_bufsz; | ||
26 | void __iomem *etb_regs; | ||
27 | void __iomem *etm_regs; | ||
28 | unsigned long flags; | ||
29 | int ncmppairs; | ||
30 | int etm_portsz; | ||
31 | struct device *dev; | ||
32 | struct clk *emu_clk; | ||
33 | struct mutex mutex; | ||
34 | }; | ||
35 | |||
36 | #define TRACER_TIMEOUT 10000 | ||
37 | |||
38 | #define etm_writel(t, v, x) \ | ||
39 | (__raw_writel((v), (t)->etm_regs + (x))) | ||
40 | #define etm_readl(t, x) (__raw_readl((t)->etm_regs + (x))) | ||
41 | |||
42 | /* CoreSight Management Registers */ | ||
43 | #define CSMR_LOCKACCESS 0xfb0 | ||
44 | #define CSMR_LOCKSTATUS 0xfb4 | ||
45 | #define CSMR_AUTHSTATUS 0xfb8 | ||
46 | #define CSMR_DEVID 0xfc8 | ||
47 | #define CSMR_DEVTYPE 0xfcc | ||
48 | /* CoreSight Component Registers */ | ||
49 | #define CSCR_CLASS 0xff4 | ||
50 | |||
51 | #define CSCR_PRSR 0x314 | ||
52 | |||
53 | #define UNLOCK_MAGIC 0xc5acce55 | ||
54 | |||
55 | /* ETM control register, "ETM Architecture", 3.3.1 */ | ||
56 | #define ETMR_CTRL 0 | ||
57 | #define ETMCTRL_POWERDOWN 1 | ||
58 | #define ETMCTRL_PROGRAM (1 << 10) | ||
59 | #define ETMCTRL_PORTSEL (1 << 11) | ||
60 | #define ETMCTRL_DO_CONTEXTID (3 << 14) | ||
61 | #define ETMCTRL_PORTMASK1 (7 << 4) | ||
62 | #define ETMCTRL_PORTMASK2 (1 << 21) | ||
63 | #define ETMCTRL_PORTMASK (ETMCTRL_PORTMASK1 | ETMCTRL_PORTMASK2) | ||
64 | #define ETMCTRL_PORTSIZE(x) ((((x) & 7) << 4) | (!!((x) & 8)) << 21) | ||
65 | #define ETMCTRL_DO_CPRT (1 << 1) | ||
66 | #define ETMCTRL_DATAMASK (3 << 2) | ||
67 | #define ETMCTRL_DATA_DO_DATA (1 << 2) | ||
68 | #define ETMCTRL_DATA_DO_ADDR (1 << 3) | ||
69 | #define ETMCTRL_DATA_DO_BOTH (ETMCTRL_DATA_DO_DATA | ETMCTRL_DATA_DO_ADDR) | ||
70 | #define ETMCTRL_BRANCH_OUTPUT (1 << 8) | ||
71 | #define ETMCTRL_CYCLEACCURATE (1 << 12) | ||
72 | |||
73 | /* ETM configuration code register */ | ||
74 | #define ETMR_CONFCODE (0x04) | ||
75 | |||
76 | /* ETM trace start/stop resource control register */ | ||
77 | #define ETMR_TRACESSCTRL (0x18) | ||
78 | |||
79 | /* ETM trigger event register */ | ||
80 | #define ETMR_TRIGEVT (0x08) | ||
81 | |||
82 | /* address access type register bits, "ETM architecture", | ||
83 | * table 3-27 */ | ||
84 | /* - access type */ | ||
85 | #define ETMAAT_IFETCH 0 | ||
86 | #define ETMAAT_IEXEC 1 | ||
87 | #define ETMAAT_IEXECPASS 2 | ||
88 | #define ETMAAT_IEXECFAIL 3 | ||
89 | #define ETMAAT_DLOADSTORE 4 | ||
90 | #define ETMAAT_DLOAD 5 | ||
91 | #define ETMAAT_DSTORE 6 | ||
92 | /* - comparison access size */ | ||
93 | #define ETMAAT_JAVA (0 << 3) | ||
94 | #define ETMAAT_THUMB (1 << 3) | ||
95 | #define ETMAAT_ARM (3 << 3) | ||
96 | /* - data value comparison control */ | ||
97 | #define ETMAAT_NOVALCMP (0 << 5) | ||
98 | #define ETMAAT_VALMATCH (1 << 5) | ||
99 | #define ETMAAT_VALNOMATCH (3 << 5) | ||
100 | /* - exact match */ | ||
101 | #define ETMAAT_EXACTMATCH (1 << 7) | ||
102 | /* - context id comparator control */ | ||
103 | #define ETMAAT_IGNCONTEXTID (0 << 8) | ||
104 | #define ETMAAT_VALUE1 (1 << 8) | ||
105 | #define ETMAAT_VALUE2 (2 << 8) | ||
106 | #define ETMAAT_VALUE3 (3 << 8) | ||
107 | /* - security level control */ | ||
108 | #define ETMAAT_IGNSECURITY (0 << 10) | ||
109 | #define ETMAAT_NSONLY (1 << 10) | ||
110 | #define ETMAAT_SONLY (2 << 10) | ||
111 | |||
112 | #define ETMR_COMP_VAL(x) (0x40 + (x) * 4) | ||
113 | #define ETMR_COMP_ACC_TYPE(x) (0x80 + (x) * 4) | ||
114 | |||
115 | /* ETM status register, "ETM Architecture", 3.3.2 */ | ||
116 | #define ETMR_STATUS (0x10) | ||
117 | #define ETMST_OVERFLOW (1 << 0) | ||
118 | #define ETMST_PROGBIT (1 << 1) | ||
119 | #define ETMST_STARTSTOP (1 << 2) | ||
120 | #define ETMST_TRIGGER (1 << 3) | ||
121 | |||
122 | #define etm_progbit(t) (etm_readl((t), ETMR_STATUS) & ETMST_PROGBIT) | ||
123 | #define etm_started(t) (etm_readl((t), ETMR_STATUS) & ETMST_STARTSTOP) | ||
124 | #define etm_triggered(t) (etm_readl((t), ETMR_STATUS) & ETMST_TRIGGER) | ||
125 | |||
126 | #define ETMR_TRACEENCTRL2 0x1c | ||
127 | #define ETMR_TRACEENCTRL 0x24 | ||
128 | #define ETMTE_INCLEXCL (1 << 24) | ||
129 | #define ETMR_TRACEENEVT 0x20 | ||
130 | #define ETMCTRL_OPTS (ETMCTRL_DO_CPRT | \ | ||
131 | ETMCTRL_DATA_DO_ADDR | \ | ||
132 | ETMCTRL_BRANCH_OUTPUT | \ | ||
133 | ETMCTRL_DO_CONTEXTID) | ||
134 | |||
135 | /* ETB registers, "CoreSight Components TRM", 9.3 */ | ||
136 | #define ETBR_DEPTH 0x04 | ||
137 | #define ETBR_STATUS 0x0c | ||
138 | #define ETBR_READMEM 0x10 | ||
139 | #define ETBR_READADDR 0x14 | ||
140 | #define ETBR_WRITEADDR 0x18 | ||
141 | #define ETBR_TRIGGERCOUNT 0x1c | ||
142 | #define ETBR_CTRL 0x20 | ||
143 | #define ETBR_FORMATTERCTRL 0x304 | ||
144 | #define ETBFF_ENFTC 1 | ||
145 | #define ETBFF_ENFCONT (1 << 1) | ||
146 | #define ETBFF_FONFLIN (1 << 4) | ||
147 | #define ETBFF_MANUAL_FLUSH (1 << 6) | ||
148 | #define ETBFF_TRIGIN (1 << 8) | ||
149 | #define ETBFF_TRIGEVT (1 << 9) | ||
150 | #define ETBFF_TRIGFL (1 << 10) | ||
151 | |||
152 | #define etb_writel(t, v, x) \ | ||
153 | (__raw_writel((v), (t)->etb_regs + (x))) | ||
154 | #define etb_readl(t, x) (__raw_readl((t)->etb_regs + (x))) | ||
155 | |||
156 | #define etm_lock(t) do { etm_writel((t), 0, CSMR_LOCKACCESS); } while (0) | ||
157 | #define etm_unlock(t) \ | ||
158 | do { etm_writel((t), UNLOCK_MAGIC, CSMR_LOCKACCESS); } while (0) | ||
159 | |||
160 | #define etb_lock(t) do { etb_writel((t), 0, CSMR_LOCKACCESS); } while (0) | ||
161 | #define etb_unlock(t) \ | ||
162 | do { etb_writel((t), UNLOCK_MAGIC, CSMR_LOCKACCESS); } while (0) | ||
163 | |||
164 | #endif /* __ASM_HARDWARE_CORESIGHT_H */ | ||
165 | |||
diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h index d16ec97ec9a9..c019949a5189 100644 --- a/arch/arm/include/asm/kmap_types.h +++ b/arch/arm/include/asm/kmap_types.h | |||
@@ -22,4 +22,10 @@ enum km_type { | |||
22 | KM_TYPE_NR | 22 | KM_TYPE_NR |
23 | }; | 23 | }; |
24 | 24 | ||
25 | #ifdef CONFIG_DEBUG_HIGHMEM | ||
26 | #define KM_NMI (-1) | ||
27 | #define KM_NMI_PTE (-1) | ||
28 | #define KM_IRQ_PTE (-1) | ||
29 | #endif | ||
30 | |||
25 | #endif | 31 | #endif |
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index cefedf062138..5421d82a2572 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h | |||
@@ -125,8 +125,10 @@ | |||
125 | * private definitions which should NOT be used outside memory.h | 125 | * private definitions which should NOT be used outside memory.h |
126 | * files. Use virt_to_phys/phys_to_virt/__pa/__va instead. | 126 | * files. Use virt_to_phys/phys_to_virt/__pa/__va instead. |
127 | */ | 127 | */ |
128 | #ifndef __virt_to_phys | ||
128 | #define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET) | 129 | #define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET) |
129 | #define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET) | 130 | #define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET) |
131 | #endif | ||
130 | 132 | ||
131 | /* | 133 | /* |
132 | * Convert a physical address to a Page Frame Number and back | 134 | * Convert a physical address to a Page Frame Number and back |
@@ -134,6 +136,12 @@ | |||
134 | #define __phys_to_pfn(paddr) ((paddr) >> PAGE_SHIFT) | 136 | #define __phys_to_pfn(paddr) ((paddr) >> PAGE_SHIFT) |
135 | #define __pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT) | 137 | #define __pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT) |
136 | 138 | ||
139 | /* | ||
140 | * Convert a page to/from a physical address | ||
141 | */ | ||
142 | #define page_to_phys(page) (__pfn_to_phys(page_to_pfn(page))) | ||
143 | #define phys_to_page(phys) (pfn_to_page(__phys_to_pfn(phys))) | ||
144 | |||
137 | #ifndef __ASSEMBLY__ | 145 | #ifndef __ASSEMBLY__ |
138 | 146 | ||
139 | /* | 147 | /* |
@@ -194,7 +202,8 @@ static inline void *phys_to_virt(unsigned long x) | |||
194 | #ifndef __virt_to_bus | 202 | #ifndef __virt_to_bus |
195 | #define __virt_to_bus __virt_to_phys | 203 | #define __virt_to_bus __virt_to_phys |
196 | #define __bus_to_virt __phys_to_virt | 204 | #define __bus_to_virt __phys_to_virt |
197 | #define __pfn_to_bus(x) ((x) << PAGE_SHIFT) | 205 | #define __pfn_to_bus(x) __pfn_to_phys(x) |
206 | #define __bus_to_pfn(x) __phys_to_pfn(x) | ||
198 | #endif | 207 | #endif |
199 | 208 | ||
200 | static inline __deprecated unsigned long virt_to_bus(void *x) | 209 | static inline __deprecated unsigned long virt_to_bus(void *x) |
@@ -293,11 +302,6 @@ static inline __deprecated void *bus_to_virt(unsigned long x) | |||
293 | #endif /* !CONFIG_DISCONTIGMEM */ | 302 | #endif /* !CONFIG_DISCONTIGMEM */ |
294 | 303 | ||
295 | /* | 304 | /* |
296 | * For BIO. "will die". Kill me when bio_to_phys() and bvec_to_phys() die. | ||
297 | */ | ||
298 | #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) | ||
299 | |||
300 | /* | ||
301 | * Optional coherency support. Currently used only by selected | 305 | * Optional coherency support. Currently used only by selected |
302 | * Intel XSC3-based systems. | 306 | * Intel XSC3-based systems. |
303 | */ | 307 | */ |
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index 201ccaa11f61..11397687f42c 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h | |||
@@ -304,13 +304,23 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG); | |||
304 | 304 | ||
305 | static inline pte_t pte_mkspecial(pte_t pte) { return pte; } | 305 | static inline pte_t pte_mkspecial(pte_t pte) { return pte; } |
306 | 306 | ||
307 | #define __pgprot_modify(prot,mask,bits) \ | ||
308 | __pgprot((pgprot_val(prot) & ~(mask)) | (bits)) | ||
309 | |||
307 | /* | 310 | /* |
308 | * Mark the prot value as uncacheable and unbufferable. | 311 | * Mark the prot value as uncacheable and unbufferable. |
309 | */ | 312 | */ |
310 | #define pgprot_noncached(prot) \ | 313 | #define pgprot_noncached(prot) \ |
311 | __pgprot((pgprot_val(prot) & ~L_PTE_MT_MASK) | L_PTE_MT_UNCACHED) | 314 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_UNCACHED) |
312 | #define pgprot_writecombine(prot) \ | 315 | #define pgprot_writecombine(prot) \ |
313 | __pgprot((pgprot_val(prot) & ~L_PTE_MT_MASK) | L_PTE_MT_BUFFERABLE) | 316 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE) |
317 | #if __LINUX_ARM_ARCH__ >= 7 | ||
318 | #define pgprot_dmacoherent(prot) \ | ||
319 | __pgprot_modify(prot, L_PTE_MT_MASK|L_PTE_EXEC, L_PTE_MT_BUFFERABLE) | ||
320 | #else | ||
321 | #define pgprot_dmacoherent(prot) \ | ||
322 | __pgprot_modify(prot, L_PTE_MT_MASK|L_PTE_EXEC, L_PTE_MT_UNCACHED) | ||
323 | #endif | ||
314 | 324 | ||
315 | #define pmd_none(pmd) (!pmd_val(pmd)) | 325 | #define pmd_none(pmd) (!pmd_val(pmd)) |
316 | #define pmd_present(pmd) (pmd_val(pmd)) | 326 | #define pmd_present(pmd) (pmd_val(pmd)) |
diff --git a/arch/arm/include/asm/swab.h b/arch/arm/include/asm/swab.h index ca2bf2f6d6ea..9997ad20eff1 100644 --- a/arch/arm/include/asm/swab.h +++ b/arch/arm/include/asm/swab.h | |||
@@ -22,6 +22,24 @@ | |||
22 | # define __SWAB_64_THRU_32__ | 22 | # define __SWAB_64_THRU_32__ |
23 | #endif | 23 | #endif |
24 | 24 | ||
25 | #if defined(__KERNEL__) && __LINUX_ARM_ARCH__ >= 6 | ||
26 | |||
27 | static inline __attribute_const__ __u16 __arch_swab16(__u16 x) | ||
28 | { | ||
29 | __asm__ ("rev16 %0, %1" : "=r" (x) : "r" (x)); | ||
30 | return x; | ||
31 | } | ||
32 | #define __arch_swab16 __arch_swab16 | ||
33 | |||
34 | static inline __attribute_const__ __u32 __arch_swab32(__u32 x) | ||
35 | { | ||
36 | __asm__ ("rev %0, %1" : "=r" (x) : "r" (x)); | ||
37 | return x; | ||
38 | } | ||
39 | #define __arch_swab32 __arch_swab32 | ||
40 | |||
41 | #else | ||
42 | |||
25 | static inline __attribute_const__ __u32 __arch_swab32(__u32 x) | 43 | static inline __attribute_const__ __u32 __arch_swab32(__u32 x) |
26 | { | 44 | { |
27 | __u32 t; | 45 | __u32 t; |
@@ -48,3 +66,4 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x) | |||
48 | 66 | ||
49 | #endif | 67 | #endif |
50 | 68 | ||
69 | #endif | ||
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index d65b2f5bf41f..058e7e90881d 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h | |||
@@ -138,21 +138,26 @@ extern unsigned int user_debug; | |||
138 | #define dmb() __asm__ __volatile__ ("" : : : "memory") | 138 | #define dmb() __asm__ __volatile__ ("" : : : "memory") |
139 | #endif | 139 | #endif |
140 | 140 | ||
141 | #ifndef CONFIG_SMP | 141 | #if __LINUX_ARM_ARCH__ >= 7 || defined(CONFIG_SMP) |
142 | #define mb() dmb() | ||
143 | #define rmb() dmb() | ||
144 | #define wmb() dmb() | ||
145 | #else | ||
142 | #define mb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) | 146 | #define mb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) |
143 | #define rmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) | 147 | #define rmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) |
144 | #define wmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) | 148 | #define wmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) |
149 | #endif | ||
150 | |||
151 | #ifndef CONFIG_SMP | ||
145 | #define smp_mb() barrier() | 152 | #define smp_mb() barrier() |
146 | #define smp_rmb() barrier() | 153 | #define smp_rmb() barrier() |
147 | #define smp_wmb() barrier() | 154 | #define smp_wmb() barrier() |
148 | #else | 155 | #else |
149 | #define mb() dmb() | 156 | #define smp_mb() mb() |
150 | #define rmb() dmb() | 157 | #define smp_rmb() rmb() |
151 | #define wmb() dmb() | 158 | #define smp_wmb() wmb() |
152 | #define smp_mb() dmb() | ||
153 | #define smp_rmb() dmb() | ||
154 | #define smp_wmb() dmb() | ||
155 | #endif | 159 | #endif |
160 | |||
156 | #define read_barrier_depends() do { } while(0) | 161 | #define read_barrier_depends() do { } while(0) |
157 | #define smp_read_barrier_depends() do { } while(0) | 162 | #define smp_read_barrier_depends() do { } while(0) |
158 | 163 | ||
diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h index a45ab5dd8255..c2f1605de359 100644 --- a/arch/arm/include/asm/tlbflush.h +++ b/arch/arm/include/asm/tlbflush.h | |||
@@ -350,7 +350,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm) | |||
350 | if (tlb_flag(TLB_WB)) | 350 | if (tlb_flag(TLB_WB)) |
351 | dsb(); | 351 | dsb(); |
352 | 352 | ||
353 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) { | 353 | if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) { |
354 | if (tlb_flag(TLB_V3_FULL)) | 354 | if (tlb_flag(TLB_V3_FULL)) |
355 | asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc"); | 355 | asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc"); |
356 | if (tlb_flag(TLB_V4_U_FULL)) | 356 | if (tlb_flag(TLB_V4_U_FULL)) |
@@ -360,6 +360,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm) | |||
360 | if (tlb_flag(TLB_V4_I_FULL)) | 360 | if (tlb_flag(TLB_V4_I_FULL)) |
361 | asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc"); | 361 | asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc"); |
362 | } | 362 | } |
363 | put_cpu(); | ||
363 | 364 | ||
364 | if (tlb_flag(TLB_V6_U_ASID)) | 365 | if (tlb_flag(TLB_V6_U_ASID)) |
365 | asm("mcr p15, 0, %0, c8, c7, 2" : : "r" (asid) : "cc"); | 366 | asm("mcr p15, 0, %0, c8, c7, 2" : : "r" (asid) : "cc"); |
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h index 7020217fc49f..4e506d09e5f9 100644 --- a/arch/arm/include/asm/unistd.h +++ b/arch/arm/include/asm/unistd.h | |||
@@ -403,6 +403,15 @@ | |||
403 | #define __ARM_NR_set_tls (__ARM_NR_BASE+5) | 403 | #define __ARM_NR_set_tls (__ARM_NR_BASE+5) |
404 | 404 | ||
405 | /* | 405 | /* |
406 | * *NOTE*: This is a ghost syscall private to the kernel. Only the | ||
407 | * __kuser_cmpxchg code in entry-armv.S should be aware of its | ||
408 | * existence. Don't ever use this from user code. | ||
409 | */ | ||
410 | #ifdef __KERNEL__ | ||
411 | #define __ARM_NR_cmpxchg (__ARM_NR_BASE+0x00fff0) | ||
412 | #endif | ||
413 | |||
414 | /* | ||
406 | * The following syscalls are obsolete and no longer available for EABI. | 415 | * The following syscalls are obsolete and no longer available for EABI. |
407 | */ | 416 | */ |
408 | #if defined(__ARM_EABI__) && !defined(__KERNEL__) | 417 | #if defined(__ARM_EABI__) && !defined(__KERNEL__) |
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile index 79087dd6d869..e7ccf7e697ce 100644 --- a/arch/arm/kernel/Makefile +++ b/arch/arm/kernel/Makefile | |||
@@ -17,6 +17,8 @@ obj-y := compat.o elf.o entry-armv.o entry-common.o irq.o \ | |||
17 | process.o ptrace.o return_address.o setup.o signal.o \ | 17 | process.o ptrace.o return_address.o setup.o signal.o \ |
18 | sys_arm.o stacktrace.o time.o traps.o | 18 | sys_arm.o stacktrace.o time.o traps.o |
19 | 19 | ||
20 | obj-$(CONFIG_OC_ETM) += etm.o | ||
21 | |||
20 | obj-$(CONFIG_ISA_DMA_API) += dma.o | 22 | obj-$(CONFIG_ISA_DMA_API) += dma.o |
21 | obj-$(CONFIG_ARCH_ACORN) += ecard.o | 23 | obj-$(CONFIG_ARCH_ACORN) += ecard.o |
22 | obj-$(CONFIG_FIQ) += fiq.o | 24 | obj-$(CONFIG_FIQ) += fiq.o |
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 322410be573c..d2903e3bc861 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <mach/entry-macro.S> | 21 | #include <mach/entry-macro.S> |
22 | #include <asm/thread_notify.h> | 22 | #include <asm/thread_notify.h> |
23 | #include <asm/unwind.h> | 23 | #include <asm/unwind.h> |
24 | #include <asm/unistd.h> | ||
24 | 25 | ||
25 | #include "entry-header.S" | 26 | #include "entry-header.S" |
26 | 27 | ||
@@ -608,33 +609,33 @@ call_fpe: | |||
608 | THUMB( add pc, r8 ) | 609 | THUMB( add pc, r8 ) |
609 | nop | 610 | nop |
610 | 611 | ||
611 | W(mov) pc, lr @ CP#0 | 612 | movw_pc lr @ CP#0 |
612 | W(b) do_fpe @ CP#1 (FPE) | 613 | W(b) do_fpe @ CP#1 (FPE) |
613 | W(b) do_fpe @ CP#2 (FPE) | 614 | W(b) do_fpe @ CP#2 (FPE) |
614 | W(mov) pc, lr @ CP#3 | 615 | movw_pc lr @ CP#3 |
615 | #ifdef CONFIG_CRUNCH | 616 | #ifdef CONFIG_CRUNCH |
616 | b crunch_task_enable @ CP#4 (MaverickCrunch) | 617 | b crunch_task_enable @ CP#4 (MaverickCrunch) |
617 | b crunch_task_enable @ CP#5 (MaverickCrunch) | 618 | b crunch_task_enable @ CP#5 (MaverickCrunch) |
618 | b crunch_task_enable @ CP#6 (MaverickCrunch) | 619 | b crunch_task_enable @ CP#6 (MaverickCrunch) |
619 | #else | 620 | #else |
620 | W(mov) pc, lr @ CP#4 | 621 | movw_pc lr @ CP#4 |
621 | W(mov) pc, lr @ CP#5 | 622 | movw_pc lr @ CP#5 |
622 | W(mov) pc, lr @ CP#6 | 623 | movw_pc lr @ CP#6 |
623 | #endif | 624 | #endif |
624 | W(mov) pc, lr @ CP#7 | 625 | movw_pc lr @ CP#7 |
625 | W(mov) pc, lr @ CP#8 | 626 | movw_pc lr @ CP#8 |
626 | W(mov) pc, lr @ CP#9 | 627 | movw_pc lr @ CP#9 |
627 | #ifdef CONFIG_VFP | 628 | #ifdef CONFIG_VFP |
628 | W(b) do_vfp @ CP#10 (VFP) | 629 | W(b) do_vfp @ CP#10 (VFP) |
629 | W(b) do_vfp @ CP#11 (VFP) | 630 | W(b) do_vfp @ CP#11 (VFP) |
630 | #else | 631 | #else |
631 | W(mov) pc, lr @ CP#10 (VFP) | 632 | movw_pc lr @ CP#10 (VFP) |
632 | W(mov) pc, lr @ CP#11 (VFP) | 633 | movw_pc lr @ CP#11 (VFP) |
633 | #endif | 634 | #endif |
634 | W(mov) pc, lr @ CP#12 | 635 | movw_pc lr @ CP#12 |
635 | W(mov) pc, lr @ CP#13 | 636 | movw_pc lr @ CP#13 |
636 | W(mov) pc, lr @ CP#14 (Debug) | 637 | movw_pc lr @ CP#14 (Debug) |
637 | W(mov) pc, lr @ CP#15 (Control) | 638 | movw_pc lr @ CP#15 (Control) |
638 | 639 | ||
639 | #ifdef CONFIG_NEON | 640 | #ifdef CONFIG_NEON |
640 | .align 6 | 641 | .align 6 |
@@ -908,10 +909,10 @@ __kuser_cmpxchg: @ 0xffff0fc0 | |||
908 | * A special ghost syscall is used for that (see traps.c). | 909 | * A special ghost syscall is used for that (see traps.c). |
909 | */ | 910 | */ |
910 | stmfd sp!, {r7, lr} | 911 | stmfd sp!, {r7, lr} |
911 | mov r7, #0xff00 @ 0xfff0 into r7 for EABI | 912 | ldr r7, =1f @ it's 20 bits |
912 | orr r7, r7, #0xf0 | 913 | swi __ARM_NR_cmpxchg |
913 | swi #0x9ffff0 | ||
914 | ldmfd sp!, {r7, pc} | 914 | ldmfd sp!, {r7, pc} |
915 | 1: .word __ARM_NR_cmpxchg | ||
915 | 916 | ||
916 | #elif __LINUX_ARM_ARCH__ < 6 | 917 | #elif __LINUX_ARM_ARCH__ < 6 |
917 | 918 | ||
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index ac34c0d9384b..7e9ed1eea40a 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
@@ -110,6 +110,13 @@ | |||
110 | mov \rd, sp, lsr #13 | 110 | mov \rd, sp, lsr #13 |
111 | mov \rd, \rd, lsl #13 | 111 | mov \rd, \rd, lsl #13 |
112 | .endm | 112 | .endm |
113 | |||
114 | @ | ||
115 | @ 32-bit wide "mov pc, reg" | ||
116 | @ | ||
117 | .macro movw_pc, reg | ||
118 | mov pc, \reg | ||
119 | .endm | ||
113 | #else /* CONFIG_THUMB2_KERNEL */ | 120 | #else /* CONFIG_THUMB2_KERNEL */ |
114 | .macro svc_exit, rpsr | 121 | .macro svc_exit, rpsr |
115 | clrex @ clear the exclusive monitor | 122 | clrex @ clear the exclusive monitor |
@@ -146,6 +153,14 @@ | |||
146 | lsr \rd, \rd, #13 | 153 | lsr \rd, \rd, #13 |
147 | mov \rd, \rd, lsl #13 | 154 | mov \rd, \rd, lsl #13 |
148 | .endm | 155 | .endm |
156 | |||
157 | @ | ||
158 | @ 32-bit wide "mov pc, reg" | ||
159 | @ | ||
160 | .macro movw_pc, reg | ||
161 | mov pc, \reg | ||
162 | nop | ||
163 | .endm | ||
149 | #endif /* !CONFIG_THUMB2_KERNEL */ | 164 | #endif /* !CONFIG_THUMB2_KERNEL */ |
150 | 165 | ||
151 | /* | 166 | /* |
diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c new file mode 100644 index 000000000000..827753966301 --- /dev/null +++ b/arch/arm/kernel/etm.c | |||
@@ -0,0 +1,641 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/kernel/etm.c | ||
3 | * | ||
4 | * Driver for ARM's Embedded Trace Macrocell and Embedded Trace Buffer. | ||
5 | * | ||
6 | * Copyright (C) 2009 Nokia Corporation. | ||
7 | * Alexander Shishkin | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/types.h> | ||
17 | #include <linux/io.h> | ||
18 | #include <linux/sysrq.h> | ||
19 | #include <linux/device.h> | ||
20 | #include <linux/clk.h> | ||
21 | #include <linux/amba/bus.h> | ||
22 | #include <linux/fs.h> | ||
23 | #include <linux/uaccess.h> | ||
24 | #include <linux/miscdevice.h> | ||
25 | #include <linux/vmalloc.h> | ||
26 | #include <linux/mutex.h> | ||
27 | #include <asm/hardware/coresight.h> | ||
28 | #include <asm/sections.h> | ||
29 | |||
30 | MODULE_LICENSE("GPL"); | ||
31 | MODULE_AUTHOR("Alexander Shishkin"); | ||
32 | |||
33 | static struct tracectx tracer; | ||
34 | |||
35 | static inline bool trace_isrunning(struct tracectx *t) | ||
36 | { | ||
37 | return !!(t->flags & TRACER_RUNNING); | ||
38 | } | ||
39 | |||
40 | static int etm_setup_address_range(struct tracectx *t, int n, | ||
41 | unsigned long start, unsigned long end, int exclude, int data) | ||
42 | { | ||
43 | u32 flags = ETMAAT_ARM | ETMAAT_IGNCONTEXTID | ETMAAT_NSONLY | \ | ||
44 | ETMAAT_NOVALCMP; | ||
45 | |||
46 | if (n < 1 || n > t->ncmppairs) | ||
47 | return -EINVAL; | ||
48 | |||
49 | /* comparators and ranges are numbered starting with 1 as opposed | ||
50 | * to bits in a word */ | ||
51 | n--; | ||
52 | |||
53 | if (data) | ||
54 | flags |= ETMAAT_DLOADSTORE; | ||
55 | else | ||
56 | flags |= ETMAAT_IEXEC; | ||
57 | |||
58 | /* first comparator for the range */ | ||
59 | etm_writel(t, flags, ETMR_COMP_ACC_TYPE(n * 2)); | ||
60 | etm_writel(t, start, ETMR_COMP_VAL(n * 2)); | ||
61 | |||
62 | /* second comparator is right next to it */ | ||
63 | etm_writel(t, flags, ETMR_COMP_ACC_TYPE(n * 2 + 1)); | ||
64 | etm_writel(t, end, ETMR_COMP_VAL(n * 2 + 1)); | ||
65 | |||
66 | flags = exclude ? ETMTE_INCLEXCL : 0; | ||
67 | etm_writel(t, flags | (1 << n), ETMR_TRACEENCTRL); | ||
68 | |||
69 | return 0; | ||
70 | } | ||
71 | |||
72 | static int trace_start(struct tracectx *t) | ||
73 | { | ||
74 | u32 v; | ||
75 | unsigned long timeout = TRACER_TIMEOUT; | ||
76 | |||
77 | etb_unlock(t); | ||
78 | |||
79 | etb_writel(t, 0, ETBR_FORMATTERCTRL); | ||
80 | etb_writel(t, 1, ETBR_CTRL); | ||
81 | |||
82 | etb_lock(t); | ||
83 | |||
84 | /* configure etm */ | ||
85 | v = ETMCTRL_OPTS | ETMCTRL_PROGRAM | ETMCTRL_PORTSIZE(t->etm_portsz); | ||
86 | |||
87 | if (t->flags & TRACER_CYCLE_ACC) | ||
88 | v |= ETMCTRL_CYCLEACCURATE; | ||
89 | |||
90 | etm_unlock(t); | ||
91 | |||
92 | etm_writel(t, v, ETMR_CTRL); | ||
93 | |||
94 | while (!(etm_readl(t, ETMR_CTRL) & ETMCTRL_PROGRAM) && --timeout) | ||
95 | ; | ||
96 | if (!timeout) { | ||
97 | dev_dbg(t->dev, "Waiting for progbit to assert timed out\n"); | ||
98 | etm_lock(t); | ||
99 | return -EFAULT; | ||
100 | } | ||
101 | |||
102 | etm_setup_address_range(t, 1, (unsigned long)_stext, | ||
103 | (unsigned long)_etext, 0, 0); | ||
104 | etm_writel(t, 0, ETMR_TRACEENCTRL2); | ||
105 | etm_writel(t, 0, ETMR_TRACESSCTRL); | ||
106 | etm_writel(t, 0x6f, ETMR_TRACEENEVT); | ||
107 | |||
108 | v &= ~ETMCTRL_PROGRAM; | ||
109 | v |= ETMCTRL_PORTSEL; | ||
110 | |||
111 | etm_writel(t, v, ETMR_CTRL); | ||
112 | |||
113 | timeout = TRACER_TIMEOUT; | ||
114 | while (etm_readl(t, ETMR_CTRL) & ETMCTRL_PROGRAM && --timeout) | ||
115 | ; | ||
116 | if (!timeout) { | ||
117 | dev_dbg(t->dev, "Waiting for progbit to deassert timed out\n"); | ||
118 | etm_lock(t); | ||
119 | return -EFAULT; | ||
120 | } | ||
121 | |||
122 | etm_lock(t); | ||
123 | |||
124 | t->flags |= TRACER_RUNNING; | ||
125 | |||
126 | return 0; | ||
127 | } | ||
128 | |||
129 | static int trace_stop(struct tracectx *t) | ||
130 | { | ||
131 | unsigned long timeout = TRACER_TIMEOUT; | ||
132 | |||
133 | etm_unlock(t); | ||
134 | |||
135 | etm_writel(t, 0x440, ETMR_CTRL); | ||
136 | while (!(etm_readl(t, ETMR_CTRL) & ETMCTRL_PROGRAM) && --timeout) | ||
137 | ; | ||
138 | if (!timeout) { | ||
139 | dev_dbg(t->dev, "Waiting for progbit to assert timed out\n"); | ||
140 | etm_lock(t); | ||
141 | return -EFAULT; | ||
142 | } | ||
143 | |||
144 | etm_lock(t); | ||
145 | |||
146 | etb_unlock(t); | ||
147 | etb_writel(t, ETBFF_MANUAL_FLUSH, ETBR_FORMATTERCTRL); | ||
148 | |||
149 | timeout = TRACER_TIMEOUT; | ||
150 | while (etb_readl(t, ETBR_FORMATTERCTRL) & | ||
151 | ETBFF_MANUAL_FLUSH && --timeout) | ||
152 | ; | ||
153 | if (!timeout) { | ||
154 | dev_dbg(t->dev, "Waiting for formatter flush to commence " | ||
155 | "timed out\n"); | ||
156 | etb_lock(t); | ||
157 | return -EFAULT; | ||
158 | } | ||
159 | |||
160 | etb_writel(t, 0, ETBR_CTRL); | ||
161 | |||
162 | etb_lock(t); | ||
163 | |||
164 | t->flags &= ~TRACER_RUNNING; | ||
165 | |||
166 | return 0; | ||
167 | } | ||
168 | |||
169 | static int etb_getdatalen(struct tracectx *t) | ||
170 | { | ||
171 | u32 v; | ||
172 | int rp, wp; | ||
173 | |||
174 | v = etb_readl(t, ETBR_STATUS); | ||
175 | |||
176 | if (v & 1) | ||
177 | return t->etb_bufsz; | ||
178 | |||
179 | rp = etb_readl(t, ETBR_READADDR); | ||
180 | wp = etb_readl(t, ETBR_WRITEADDR); | ||
181 | |||
182 | if (rp > wp) { | ||
183 | etb_writel(t, 0, ETBR_READADDR); | ||
184 | etb_writel(t, 0, ETBR_WRITEADDR); | ||
185 | |||
186 | return 0; | ||
187 | } | ||
188 | |||
189 | return wp - rp; | ||
190 | } | ||
191 | |||
192 | /* sysrq+v will always stop the running trace and leave it at that */ | ||
193 | static void etm_dump(void) | ||
194 | { | ||
195 | struct tracectx *t = &tracer; | ||
196 | u32 first = 0; | ||
197 | int length; | ||
198 | |||
199 | if (!t->etb_regs) { | ||
200 | printk(KERN_INFO "No tracing hardware found\n"); | ||
201 | return; | ||
202 | } | ||
203 | |||
204 | if (trace_isrunning(t)) | ||
205 | trace_stop(t); | ||
206 | |||
207 | etb_unlock(t); | ||
208 | |||
209 | length = etb_getdatalen(t); | ||
210 | |||
211 | if (length == t->etb_bufsz) | ||
212 | first = etb_readl(t, ETBR_WRITEADDR); | ||
213 | |||
214 | etb_writel(t, first, ETBR_READADDR); | ||
215 | |||
216 | printk(KERN_INFO "Trace buffer contents length: %d\n", length); | ||
217 | printk(KERN_INFO "--- ETB buffer begin ---\n"); | ||
218 | for (; length; length--) | ||
219 | printk("%08x", cpu_to_be32(etb_readl(t, ETBR_READMEM))); | ||
220 | printk(KERN_INFO "\n--- ETB buffer end ---\n"); | ||
221 | |||
222 | /* deassert the overflow bit */ | ||
223 | etb_writel(t, 1, ETBR_CTRL); | ||
224 | etb_writel(t, 0, ETBR_CTRL); | ||
225 | |||
226 | etb_writel(t, 0, ETBR_TRIGGERCOUNT); | ||
227 | etb_writel(t, 0, ETBR_READADDR); | ||
228 | etb_writel(t, 0, ETBR_WRITEADDR); | ||
229 | |||
230 | etb_lock(t); | ||
231 | } | ||
232 | |||
233 | static void sysrq_etm_dump(int key, struct tty_struct *tty) | ||
234 | { | ||
235 | dev_dbg(tracer.dev, "Dumping ETB buffer\n"); | ||
236 | etm_dump(); | ||
237 | } | ||
238 | |||
239 | static struct sysrq_key_op sysrq_etm_op = { | ||
240 | .handler = sysrq_etm_dump, | ||
241 | .help_msg = "ETM buffer dump", | ||
242 | .action_msg = "etm", | ||
243 | }; | ||
244 | |||
245 | static int etb_open(struct inode *inode, struct file *file) | ||
246 | { | ||
247 | if (!tracer.etb_regs) | ||
248 | return -ENODEV; | ||
249 | |||
250 | file->private_data = &tracer; | ||
251 | |||
252 | return nonseekable_open(inode, file); | ||
253 | } | ||
254 | |||
255 | static ssize_t etb_read(struct file *file, char __user *data, | ||
256 | size_t len, loff_t *ppos) | ||
257 | { | ||
258 | int total, i; | ||
259 | long length; | ||
260 | struct tracectx *t = file->private_data; | ||
261 | u32 first = 0; | ||
262 | u32 *buf; | ||
263 | |||
264 | mutex_lock(&t->mutex); | ||
265 | |||
266 | if (trace_isrunning(t)) { | ||
267 | length = 0; | ||
268 | goto out; | ||
269 | } | ||
270 | |||
271 | etb_unlock(t); | ||
272 | |||
273 | total = etb_getdatalen(t); | ||
274 | if (total == t->etb_bufsz) | ||
275 | first = etb_readl(t, ETBR_WRITEADDR); | ||
276 | |||
277 | etb_writel(t, first, ETBR_READADDR); | ||
278 | |||
279 | length = min(total * 4, (int)len); | ||
280 | buf = vmalloc(length); | ||
281 | |||
282 | dev_dbg(t->dev, "ETB buffer length: %d\n", total); | ||
283 | dev_dbg(t->dev, "ETB status reg: %x\n", etb_readl(t, ETBR_STATUS)); | ||
284 | for (i = 0; i < length / 4; i++) | ||
285 | buf[i] = etb_readl(t, ETBR_READMEM); | ||
286 | |||
287 | /* the only way to deassert overflow bit in ETB status is this */ | ||
288 | etb_writel(t, 1, ETBR_CTRL); | ||
289 | etb_writel(t, 0, ETBR_CTRL); | ||
290 | |||
291 | etb_writel(t, 0, ETBR_WRITEADDR); | ||
292 | etb_writel(t, 0, ETBR_READADDR); | ||
293 | etb_writel(t, 0, ETBR_TRIGGERCOUNT); | ||
294 | |||
295 | etb_lock(t); | ||
296 | |||
297 | length -= copy_to_user(data, buf, length); | ||
298 | vfree(buf); | ||
299 | |||
300 | out: | ||
301 | mutex_unlock(&t->mutex); | ||
302 | |||
303 | return length; | ||
304 | } | ||
305 | |||
306 | static int etb_release(struct inode *inode, struct file *file) | ||
307 | { | ||
308 | /* there's nothing to do here, actually */ | ||
309 | return 0; | ||
310 | } | ||
311 | |||
312 | static const struct file_operations etb_fops = { | ||
313 | .owner = THIS_MODULE, | ||
314 | .read = etb_read, | ||
315 | .open = etb_open, | ||
316 | .release = etb_release, | ||
317 | }; | ||
318 | |||
319 | static struct miscdevice etb_miscdev = { | ||
320 | .name = "tracebuf", | ||
321 | .minor = 0, | ||
322 | .fops = &etb_fops, | ||
323 | }; | ||
324 | |||
325 | static int __init etb_probe(struct amba_device *dev, struct amba_id *id) | ||
326 | { | ||
327 | struct tracectx *t = &tracer; | ||
328 | int ret = 0; | ||
329 | |||
330 | ret = amba_request_regions(dev, NULL); | ||
331 | if (ret) | ||
332 | goto out; | ||
333 | |||
334 | t->etb_regs = ioremap_nocache(dev->res.start, resource_size(&dev->res)); | ||
335 | if (!t->etb_regs) { | ||
336 | ret = -ENOMEM; | ||
337 | goto out_release; | ||
338 | } | ||
339 | |||
340 | amba_set_drvdata(dev, t); | ||
341 | |||
342 | etb_miscdev.parent = &dev->dev; | ||
343 | |||
344 | ret = misc_register(&etb_miscdev); | ||
345 | if (ret) | ||
346 | goto out_unmap; | ||
347 | |||
348 | t->emu_clk = clk_get(&dev->dev, "emu_src_ck"); | ||
349 | if (IS_ERR(t->emu_clk)) { | ||
350 | dev_dbg(&dev->dev, "Failed to obtain emu_src_ck.\n"); | ||
351 | return -EFAULT; | ||
352 | } | ||
353 | |||
354 | clk_enable(t->emu_clk); | ||
355 | |||
356 | etb_unlock(t); | ||
357 | t->etb_bufsz = etb_readl(t, ETBR_DEPTH); | ||
358 | dev_dbg(&dev->dev, "Size: %x\n", t->etb_bufsz); | ||
359 | |||
360 | /* make sure trace capture is disabled */ | ||
361 | etb_writel(t, 0, ETBR_CTRL); | ||
362 | etb_writel(t, 0x1000, ETBR_FORMATTERCTRL); | ||
363 | etb_lock(t); | ||
364 | |||
365 | dev_dbg(&dev->dev, "ETB AMBA driver initialized.\n"); | ||
366 | |||
367 | out: | ||
368 | return ret; | ||
369 | |||
370 | out_unmap: | ||
371 | amba_set_drvdata(dev, NULL); | ||
372 | iounmap(t->etb_regs); | ||
373 | |||
374 | out_release: | ||
375 | amba_release_regions(dev); | ||
376 | |||
377 | return ret; | ||
378 | } | ||
379 | |||
380 | static int etb_remove(struct amba_device *dev) | ||
381 | { | ||
382 | struct tracectx *t = amba_get_drvdata(dev); | ||
383 | |||
384 | amba_set_drvdata(dev, NULL); | ||
385 | |||
386 | iounmap(t->etb_regs); | ||
387 | t->etb_regs = NULL; | ||
388 | |||
389 | clk_disable(t->emu_clk); | ||
390 | clk_put(t->emu_clk); | ||
391 | |||
392 | amba_release_regions(dev); | ||
393 | |||
394 | return 0; | ||
395 | } | ||
396 | |||
397 | static struct amba_id etb_ids[] = { | ||
398 | { | ||
399 | .id = 0x0003b907, | ||
400 | .mask = 0x0007ffff, | ||
401 | }, | ||
402 | { 0, 0 }, | ||
403 | }; | ||
404 | |||
405 | static struct amba_driver etb_driver = { | ||
406 | .drv = { | ||
407 | .name = "etb", | ||
408 | .owner = THIS_MODULE, | ||
409 | }, | ||
410 | .probe = etb_probe, | ||
411 | .remove = etb_remove, | ||
412 | .id_table = etb_ids, | ||
413 | }; | ||
414 | |||
415 | /* use a sysfs file "trace_running" to start/stop tracing */ | ||
416 | static ssize_t trace_running_show(struct kobject *kobj, | ||
417 | struct kobj_attribute *attr, | ||
418 | char *buf) | ||
419 | { | ||
420 | return sprintf(buf, "%x\n", trace_isrunning(&tracer)); | ||
421 | } | ||
422 | |||
423 | static ssize_t trace_running_store(struct kobject *kobj, | ||
424 | struct kobj_attribute *attr, | ||
425 | const char *buf, size_t n) | ||
426 | { | ||
427 | unsigned int value; | ||
428 | int ret; | ||
429 | |||
430 | if (sscanf(buf, "%u", &value) != 1) | ||
431 | return -EINVAL; | ||
432 | |||
433 | mutex_lock(&tracer.mutex); | ||
434 | ret = value ? trace_start(&tracer) : trace_stop(&tracer); | ||
435 | mutex_unlock(&tracer.mutex); | ||
436 | |||
437 | return ret ? : n; | ||
438 | } | ||
439 | |||
440 | static struct kobj_attribute trace_running_attr = | ||
441 | __ATTR(trace_running, 0644, trace_running_show, trace_running_store); | ||
442 | |||
443 | static ssize_t trace_info_show(struct kobject *kobj, | ||
444 | struct kobj_attribute *attr, | ||
445 | char *buf) | ||
446 | { | ||
447 | u32 etb_wa, etb_ra, etb_st, etb_fc, etm_ctrl, etm_st; | ||
448 | int datalen; | ||
449 | |||
450 | etb_unlock(&tracer); | ||
451 | datalen = etb_getdatalen(&tracer); | ||
452 | etb_wa = etb_readl(&tracer, ETBR_WRITEADDR); | ||
453 | etb_ra = etb_readl(&tracer, ETBR_READADDR); | ||
454 | etb_st = etb_readl(&tracer, ETBR_STATUS); | ||
455 | etb_fc = etb_readl(&tracer, ETBR_FORMATTERCTRL); | ||
456 | etb_lock(&tracer); | ||
457 | |||
458 | etm_unlock(&tracer); | ||
459 | etm_ctrl = etm_readl(&tracer, ETMR_CTRL); | ||
460 | etm_st = etm_readl(&tracer, ETMR_STATUS); | ||
461 | etm_lock(&tracer); | ||
462 | |||
463 | return sprintf(buf, "Trace buffer len: %d\nComparator pairs: %d\n" | ||
464 | "ETBR_WRITEADDR:\t%08x\n" | ||
465 | "ETBR_READADDR:\t%08x\n" | ||
466 | "ETBR_STATUS:\t%08x\n" | ||
467 | "ETBR_FORMATTERCTRL:\t%08x\n" | ||
468 | "ETMR_CTRL:\t%08x\n" | ||
469 | "ETMR_STATUS:\t%08x\n", | ||
470 | datalen, | ||
471 | tracer.ncmppairs, | ||
472 | etb_wa, | ||
473 | etb_ra, | ||
474 | etb_st, | ||
475 | etb_fc, | ||
476 | etm_ctrl, | ||
477 | etm_st | ||
478 | ); | ||
479 | } | ||
480 | |||
481 | static struct kobj_attribute trace_info_attr = | ||
482 | __ATTR(trace_info, 0444, trace_info_show, NULL); | ||
483 | |||
484 | static ssize_t trace_mode_show(struct kobject *kobj, | ||
485 | struct kobj_attribute *attr, | ||
486 | char *buf) | ||
487 | { | ||
488 | return sprintf(buf, "%d %d\n", | ||
489 | !!(tracer.flags & TRACER_CYCLE_ACC), | ||
490 | tracer.etm_portsz); | ||
491 | } | ||
492 | |||
493 | static ssize_t trace_mode_store(struct kobject *kobj, | ||
494 | struct kobj_attribute *attr, | ||
495 | const char *buf, size_t n) | ||
496 | { | ||
497 | unsigned int cycacc, portsz; | ||
498 | |||
499 | if (sscanf(buf, "%u %u", &cycacc, &portsz) != 2) | ||
500 | return -EINVAL; | ||
501 | |||
502 | mutex_lock(&tracer.mutex); | ||
503 | if (cycacc) | ||
504 | tracer.flags |= TRACER_CYCLE_ACC; | ||
505 | else | ||
506 | tracer.flags &= ~TRACER_CYCLE_ACC; | ||
507 | |||
508 | tracer.etm_portsz = portsz & 0x0f; | ||
509 | mutex_unlock(&tracer.mutex); | ||
510 | |||
511 | return n; | ||
512 | } | ||
513 | |||
514 | static struct kobj_attribute trace_mode_attr = | ||
515 | __ATTR(trace_mode, 0644, trace_mode_show, trace_mode_store); | ||
516 | |||
517 | static int __init etm_probe(struct amba_device *dev, struct amba_id *id) | ||
518 | { | ||
519 | struct tracectx *t = &tracer; | ||
520 | int ret = 0; | ||
521 | |||
522 | if (t->etm_regs) { | ||
523 | dev_dbg(&dev->dev, "ETM already initialized\n"); | ||
524 | ret = -EBUSY; | ||
525 | goto out; | ||
526 | } | ||
527 | |||
528 | ret = amba_request_regions(dev, NULL); | ||
529 | if (ret) | ||
530 | goto out; | ||
531 | |||
532 | t->etm_regs = ioremap_nocache(dev->res.start, resource_size(&dev->res)); | ||
533 | if (!t->etm_regs) { | ||
534 | ret = -ENOMEM; | ||
535 | goto out_release; | ||
536 | } | ||
537 | |||
538 | amba_set_drvdata(dev, t); | ||
539 | |||
540 | mutex_init(&t->mutex); | ||
541 | t->dev = &dev->dev; | ||
542 | t->flags = TRACER_CYCLE_ACC; | ||
543 | t->etm_portsz = 1; | ||
544 | |||
545 | etm_unlock(t); | ||
546 | ret = etm_readl(t, CSCR_PRSR); | ||
547 | |||
548 | t->ncmppairs = etm_readl(t, ETMR_CONFCODE) & 0xf; | ||
549 | etm_writel(t, 0x440, ETMR_CTRL); | ||
550 | etm_lock(t); | ||
551 | |||
552 | ret = sysfs_create_file(&dev->dev.kobj, | ||
553 | &trace_running_attr.attr); | ||
554 | if (ret) | ||
555 | goto out_unmap; | ||
556 | |||
557 | /* failing to create any of these two is not fatal */ | ||
558 | ret = sysfs_create_file(&dev->dev.kobj, &trace_info_attr.attr); | ||
559 | if (ret) | ||
560 | dev_dbg(&dev->dev, "Failed to create trace_info in sysfs\n"); | ||
561 | |||
562 | ret = sysfs_create_file(&dev->dev.kobj, &trace_mode_attr.attr); | ||
563 | if (ret) | ||
564 | dev_dbg(&dev->dev, "Failed to create trace_mode in sysfs\n"); | ||
565 | |||
566 | dev_dbg(t->dev, "ETM AMBA driver initialized.\n"); | ||
567 | |||
568 | out: | ||
569 | return ret; | ||
570 | |||
571 | out_unmap: | ||
572 | amba_set_drvdata(dev, NULL); | ||
573 | iounmap(t->etm_regs); | ||
574 | |||
575 | out_release: | ||
576 | amba_release_regions(dev); | ||
577 | |||
578 | return ret; | ||
579 | } | ||
580 | |||
581 | static int etm_remove(struct amba_device *dev) | ||
582 | { | ||
583 | struct tracectx *t = amba_get_drvdata(dev); | ||
584 | |||
585 | amba_set_drvdata(dev, NULL); | ||
586 | |||
587 | iounmap(t->etm_regs); | ||
588 | t->etm_regs = NULL; | ||
589 | |||
590 | amba_release_regions(dev); | ||
591 | |||
592 | sysfs_remove_file(&dev->dev.kobj, &trace_running_attr.attr); | ||
593 | sysfs_remove_file(&dev->dev.kobj, &trace_info_attr.attr); | ||
594 | sysfs_remove_file(&dev->dev.kobj, &trace_mode_attr.attr); | ||
595 | |||
596 | return 0; | ||
597 | } | ||
598 | |||
599 | static struct amba_id etm_ids[] = { | ||
600 | { | ||
601 | .id = 0x0003b921, | ||
602 | .mask = 0x0007ffff, | ||
603 | }, | ||
604 | { 0, 0 }, | ||
605 | }; | ||
606 | |||
607 | static struct amba_driver etm_driver = { | ||
608 | .drv = { | ||
609 | .name = "etm", | ||
610 | .owner = THIS_MODULE, | ||
611 | }, | ||
612 | .probe = etm_probe, | ||
613 | .remove = etm_remove, | ||
614 | .id_table = etm_ids, | ||
615 | }; | ||
616 | |||
617 | static int __init etm_init(void) | ||
618 | { | ||
619 | int retval; | ||
620 | |||
621 | retval = amba_driver_register(&etb_driver); | ||
622 | if (retval) { | ||
623 | printk(KERN_ERR "Failed to register etb\n"); | ||
624 | return retval; | ||
625 | } | ||
626 | |||
627 | retval = amba_driver_register(&etm_driver); | ||
628 | if (retval) { | ||
629 | amba_driver_unregister(&etb_driver); | ||
630 | printk(KERN_ERR "Failed to probe etm\n"); | ||
631 | return retval; | ||
632 | } | ||
633 | |||
634 | /* not being able to install this handler is not fatal */ | ||
635 | (void)register_sysrq_key('v', &sysrq_etm_op); | ||
636 | |||
637 | return 0; | ||
638 | } | ||
639 | |||
640 | device_initcall(etm_init); | ||
641 | |||
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S index 885a7214418d..b9505aa267c0 100644 --- a/arch/arm/kernel/head-common.S +++ b/arch/arm/kernel/head-common.S | |||
@@ -97,7 +97,7 @@ __error_a: | |||
97 | bl printhex8 | 97 | bl printhex8 |
98 | adr r0, str_a2 | 98 | adr r0, str_a2 |
99 | bl printascii | 99 | bl printascii |
100 | adr r3, 3f | 100 | adr r3, 4f |
101 | ldmia r3, {r4, r5, r6} @ get machine desc list | 101 | ldmia r3, {r4, r5, r6} @ get machine desc list |
102 | sub r4, r3, r4 @ get offset between virt&phys | 102 | sub r4, r3, r4 @ get offset between virt&phys |
103 | add r5, r5, r4 @ convert virt addresses to | 103 | add r5, r5, r4 @ convert virt addresses to |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 790fbee92ec5..0d96d0171c05 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -328,6 +328,15 @@ copy_thread(unsigned long clone_flags, unsigned long stack_start, | |||
328 | } | 328 | } |
329 | 329 | ||
330 | /* | 330 | /* |
331 | * Fill in the task's elfregs structure for a core dump. | ||
332 | */ | ||
333 | int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs) | ||
334 | { | ||
335 | elf_core_copy_regs(elfregs, task_pt_regs(t)); | ||
336 | return 1; | ||
337 | } | ||
338 | |||
339 | /* | ||
331 | * fill in the fpe structure for a core dump... | 340 | * fill in the fpe structure for a core dump... |
332 | */ | 341 | */ |
333 | int dump_fpu (struct pt_regs *regs, struct user_fp *fp) | 342 | int dump_fpu (struct pt_regs *regs, struct user_fp *fp) |
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index 1423a3419789..e7714f367eb8 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/kernel/signal.c | 2 | * linux/arch/arm/kernel/signal.c |
3 | * | 3 | * |
4 | * Copyright (C) 1995-2002 Russell King | 4 | * Copyright (C) 1995-2009 Russell King |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
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 |
@@ -29,6 +29,7 @@ | |||
29 | */ | 29 | */ |
30 | #define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE)) | 30 | #define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE)) |
31 | #define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE)) | 31 | #define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE)) |
32 | #define SWI_SYS_RESTART (0xef000000|__NR_restart_syscall|__NR_OABI_SYSCALL_BASE) | ||
32 | 33 | ||
33 | /* | 34 | /* |
34 | * With EABI, the syscall number has to be loaded into r7. | 35 | * With EABI, the syscall number has to be loaded into r7. |
@@ -49,6 +50,18 @@ const unsigned long sigreturn_codes[7] = { | |||
49 | }; | 50 | }; |
50 | 51 | ||
51 | /* | 52 | /* |
53 | * Either we support OABI only, or we have EABI with the OABI | ||
54 | * compat layer enabled. In the later case we don't know if | ||
55 | * user space is EABI or not, and if not we must not clobber r7. | ||
56 | * Always using the OABI syscall solves that issue and works for | ||
57 | * all those cases. | ||
58 | */ | ||
59 | const unsigned long syscall_restart_code[2] = { | ||
60 | SWI_SYS_RESTART, /* swi __NR_restart_syscall */ | ||
61 | 0xe49df004, /* ldr pc, [sp], #4 */ | ||
62 | }; | ||
63 | |||
64 | /* | ||
52 | * atomically swap in the new signal mask, and wait for a signal. | 65 | * atomically swap in the new signal mask, and wait for a signal. |
53 | */ | 66 | */ |
54 | asmlinkage int sys_sigsuspend(int restart, unsigned long oldmask, old_sigset_t mask) | 67 | asmlinkage int sys_sigsuspend(int restart, unsigned long oldmask, old_sigset_t mask) |
@@ -645,32 +658,16 @@ static void do_signal(struct pt_regs *regs, int syscall) | |||
645 | regs->ARM_pc -= 4; | 658 | regs->ARM_pc -= 4; |
646 | #else | 659 | #else |
647 | u32 __user *usp; | 660 | u32 __user *usp; |
648 | u32 swival = __NR_restart_syscall; | ||
649 | 661 | ||
650 | regs->ARM_sp -= 12; | 662 | regs->ARM_sp -= 4; |
651 | usp = (u32 __user *)regs->ARM_sp; | 663 | usp = (u32 __user *)regs->ARM_sp; |
652 | 664 | ||
653 | /* | 665 | if (put_user(regs->ARM_pc, usp) == 0) { |
654 | * Either we supports OABI only, or we have | 666 | regs->ARM_pc = KERN_RESTART_CODE; |
655 | * EABI with the OABI compat layer enabled. | 667 | } else { |
656 | * In the later case we don't know if user | 668 | regs->ARM_sp += 4; |
657 | * space is EABI or not, and if not we must | 669 | force_sigsegv(0, current); |
658 | * not clobber r7. Always using the OABI | 670 | } |
659 | * syscall solves that issue and works for | ||
660 | * all those cases. | ||
661 | */ | ||
662 | swival = swival - __NR_SYSCALL_BASE + __NR_OABI_SYSCALL_BASE; | ||
663 | |||
664 | put_user(regs->ARM_pc, &usp[0]); | ||
665 | /* swi __NR_restart_syscall */ | ||
666 | put_user(0xef000000 | swival, &usp[1]); | ||
667 | /* ldr pc, [sp], #12 */ | ||
668 | put_user(0xe49df00c, &usp[2]); | ||
669 | |||
670 | flush_icache_range((unsigned long)usp, | ||
671 | (unsigned long)(usp + 3)); | ||
672 | |||
673 | regs->ARM_pc = regs->ARM_sp + 4; | ||
674 | #endif | 671 | #endif |
675 | } | 672 | } |
676 | } | 673 | } |
diff --git a/arch/arm/kernel/signal.h b/arch/arm/kernel/signal.h index 27beece15502..6fcfe8398aa4 100644 --- a/arch/arm/kernel/signal.h +++ b/arch/arm/kernel/signal.h | |||
@@ -1,12 +1,14 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/kernel/signal.h | 2 | * linux/arch/arm/kernel/signal.h |
3 | * | 3 | * |
4 | * Copyright (C) 2005 Russell King. | 4 | * Copyright (C) 2005-2009 Russell King. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
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 | #define KERN_SIGRETURN_CODE (CONFIG_VECTORS_BASE + 0x00000500) | 10 | #define KERN_SIGRETURN_CODE (CONFIG_VECTORS_BASE + 0x00000500) |
11 | #define KERN_RESTART_CODE (KERN_SIGRETURN_CODE + sizeof(sigreturn_codes)) | ||
11 | 12 | ||
12 | extern const unsigned long sigreturn_codes[7]; | 13 | extern const unsigned long sigreturn_codes[7]; |
14 | extern const unsigned long syscall_restart_code[2]; | ||
diff --git a/arch/arm/kernel/smp_scu.c b/arch/arm/kernel/smp_scu.c index d3831f616ee9..9ab4149bd983 100644 --- a/arch/arm/kernel/smp_scu.c +++ b/arch/arm/kernel/smp_scu.c | |||
@@ -37,6 +37,10 @@ void __init scu_enable(void __iomem *scu_base) | |||
37 | u32 scu_ctrl; | 37 | u32 scu_ctrl; |
38 | 38 | ||
39 | scu_ctrl = __raw_readl(scu_base + SCU_CTRL); | 39 | scu_ctrl = __raw_readl(scu_base + SCU_CTRL); |
40 | /* already enabled? */ | ||
41 | if (scu_ctrl & 1) | ||
42 | return; | ||
43 | |||
40 | scu_ctrl |= 1; | 44 | scu_ctrl |= 1; |
41 | __raw_writel(scu_ctrl, scu_base + SCU_CTRL); | 45 | __raw_writel(scu_ctrl, scu_base + SCU_CTRL); |
42 | 46 | ||
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index f838f36eb702..3f361a783f43 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/kernel/traps.c | 2 | * linux/arch/arm/kernel/traps.c |
3 | * | 3 | * |
4 | * Copyright (C) 1995-2002 Russell King | 4 | * Copyright (C) 1995-2009 Russell King |
5 | * Fragments that appear the same as linux/arch/i386/kernel/traps.c (C) Linus Torvalds | 5 | * Fragments that appear the same as linux/arch/i386/kernel/traps.c (C) Linus Torvalds |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
@@ -528,7 +528,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) | |||
528 | * __kuser_cmpxchg code in entry-armv.S should be aware of its | 528 | * __kuser_cmpxchg code in entry-armv.S should be aware of its |
529 | * existence. Don't ever use this from user code. | 529 | * existence. Don't ever use this from user code. |
530 | */ | 530 | */ |
531 | case 0xfff0: | 531 | case NR(cmpxchg): |
532 | for (;;) { | 532 | for (;;) { |
533 | extern void do_DataAbort(unsigned long addr, unsigned int fsr, | 533 | extern void do_DataAbort(unsigned long addr, unsigned int fsr, |
534 | struct pt_regs *regs); | 534 | struct pt_regs *regs); |
@@ -573,7 +573,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) | |||
573 | if not implemented, rather than raising SIGILL. This | 573 | if not implemented, rather than raising SIGILL. This |
574 | way the calling program can gracefully determine whether | 574 | way the calling program can gracefully determine whether |
575 | a feature is supported. */ | 575 | a feature is supported. */ |
576 | if (no <= 0x7ff) | 576 | if ((no & 0xffff) <= 0x7ff) |
577 | return -ENOSYS; | 577 | return -ENOSYS; |
578 | break; | 578 | break; |
579 | } | 579 | } |
@@ -751,6 +751,8 @@ void __init early_trap_init(void) | |||
751 | */ | 751 | */ |
752 | memcpy((void *)KERN_SIGRETURN_CODE, sigreturn_codes, | 752 | memcpy((void *)KERN_SIGRETURN_CODE, sigreturn_codes, |
753 | sizeof(sigreturn_codes)); | 753 | sizeof(sigreturn_codes)); |
754 | memcpy((void *)KERN_RESTART_CODE, syscall_restart_code, | ||
755 | sizeof(syscall_restart_code)); | ||
754 | 756 | ||
755 | flush_icache_range(vectors, vectors + PAGE_SIZE); | 757 | flush_icache_range(vectors, vectors + PAGE_SIZE); |
756 | modify_domain(DOMAIN_USER, DOMAIN_CLIENT); | 758 | modify_domain(DOMAIN_USER, DOMAIN_CLIENT); |
diff --git a/arch/arm/kernel/unwind.c b/arch/arm/kernel/unwind.c index 39baf1128bfa..786ac2b6914a 100644 --- a/arch/arm/kernel/unwind.c +++ b/arch/arm/kernel/unwind.c | |||
@@ -26,6 +26,15 @@ | |||
26 | * http://infocenter.arm.com/help/topic/com.arm.doc.subset.swdev.abi/index.html | 26 | * http://infocenter.arm.com/help/topic/com.arm.doc.subset.swdev.abi/index.html |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #if !defined (__ARM_EABI__) | ||
30 | #warning Your compiler does not have EABI support. | ||
31 | #warning ARM unwind is known to compile only with EABI compilers. | ||
32 | #warning Change compiler or disable ARM_UNWIND option. | ||
33 | #elif (__GNUC__ == 4 && __GNUC_MINOR__ <= 2) | ||
34 | #warning Your compiler is too buggy; it is known to not compile ARM unwind support. | ||
35 | #warning Change compiler or disable ARM_UNWIND option. | ||
36 | #endif | ||
37 | |||
29 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
30 | #include <linux/init.h> | 39 | #include <linux/init.h> |
31 | #include <linux/module.h> | 40 | #include <linux/module.h> |
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index e35d54d43e70..c71e39ed092f 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig | |||
@@ -163,6 +163,11 @@ config MACH_CPUAT91 | |||
163 | Select this if you are using the Eukrea Electromatique's | 163 | Select this if you are using the Eukrea Electromatique's |
164 | CPUAT91 board <http://www.eukrea.com/>. | 164 | CPUAT91 board <http://www.eukrea.com/>. |
165 | 165 | ||
166 | config MACH_ECO920 | ||
167 | bool "eco920" | ||
168 | help | ||
169 | Select this if you are using the eco920 board | ||
170 | |||
166 | endif | 171 | endif |
167 | 172 | ||
168 | # ---------------------------------------------------------- | 173 | # ---------------------------------------------------------- |
@@ -289,13 +294,6 @@ config MACH_NEOCORE926 | |||
289 | help | 294 | help |
290 | Select this if you are using the Adeneo Neocore 926 board. | 295 | Select this if you are using the Adeneo Neocore 926 board. |
291 | 296 | ||
292 | config MACH_AT91SAM9G20EK_2MMC | ||
293 | bool "Atmel AT91SAM9G20-EK Evaluation Kit modified for 2 MMC Slots" | ||
294 | depends on ARCH_AT91SAM9G20 | ||
295 | help | ||
296 | Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit | ||
297 | Rev A or B modified for 2 MMC Slots. | ||
298 | |||
299 | endif | 297 | endif |
300 | 298 | ||
301 | # ---------------------------------------------------------- | 299 | # ---------------------------------------------------------- |
@@ -322,7 +320,16 @@ config MACH_AT91SAM9G20EK | |||
322 | bool "Atmel AT91SAM9G20-EK Evaluation Kit" | 320 | bool "Atmel AT91SAM9G20-EK Evaluation Kit" |
323 | depends on ARCH_AT91SAM9G20 | 321 | depends on ARCH_AT91SAM9G20 |
324 | help | 322 | help |
325 | Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit. | 323 | Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit |
324 | that embeds only one SD/MMC slot. | ||
325 | |||
326 | config MACH_AT91SAM9G20EK_2MMC | ||
327 | bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots" | ||
328 | depends on ARCH_AT91SAM9G20 | ||
329 | help | ||
330 | Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit | ||
331 | with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and | ||
332 | onwards. | ||
326 | 333 | ||
327 | config MACH_CPU9G20 | 334 | config MACH_CPU9G20 |
328 | bool "Eukrea CPU9G20 board" | 335 | bool "Eukrea CPU9G20 board" |
@@ -392,7 +399,7 @@ config MTD_AT91_DATAFLASH_CARD | |||
392 | 399 | ||
393 | config MTD_NAND_ATMEL_BUSWIDTH_16 | 400 | config MTD_NAND_ATMEL_BUSWIDTH_16 |
394 | bool "Enable 16-bit data bus interface to NAND flash" | 401 | bool "Enable 16-bit data bus interface to NAND flash" |
395 | depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK) | 402 | depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK) |
396 | help | 403 | help |
397 | On AT91SAM926x boards both types of NAND flash can be present | 404 | On AT91SAM926x boards both types of NAND flash can be present |
398 | (8 and 16 bit data bus width). | 405 | (8 and 16 bit data bus width). |
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile index ada440aab0c5..709fbad4a3ee 100644 --- a/arch/arm/mach-at91/Makefile +++ b/arch/arm/mach-at91/Makefile | |||
@@ -35,6 +35,7 @@ obj-$(CONFIG_MACH_PICOTUX2XX) += board-picotux200.o | |||
35 | obj-$(CONFIG_MACH_ECBAT91) += board-ecbat91.o | 35 | obj-$(CONFIG_MACH_ECBAT91) += board-ecbat91.o |
36 | obj-$(CONFIG_MACH_YL9200) += board-yl-9200.o | 36 | obj-$(CONFIG_MACH_YL9200) += board-yl-9200.o |
37 | obj-$(CONFIG_MACH_CPUAT91) += board-cpuat91.o | 37 | obj-$(CONFIG_MACH_CPUAT91) += board-cpuat91.o |
38 | obj-$(CONFIG_MACH_ECO920) += board-eco920.o | ||
38 | 39 | ||
39 | # AT91SAM9260 board-specific support | 40 | # AT91SAM9260 board-specific support |
40 | obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o | 41 | obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o |
@@ -77,6 +78,7 @@ obj-y += leds.o | |||
77 | # Power Management | 78 | # Power Management |
78 | obj-$(CONFIG_PM) += pm.o | 79 | obj-$(CONFIG_PM) += pm.o |
79 | obj-$(CONFIG_AT91_SLOW_CLOCK) += pm_slowclock.o | 80 | obj-$(CONFIG_AT91_SLOW_CLOCK) += pm_slowclock.o |
81 | obj-$(CONFIG_CPU_IDLE) += cpuidle.o | ||
80 | 82 | ||
81 | ifeq ($(CONFIG_PM_DEBUG),y) | 83 | ifeq ($(CONFIG_PM_DEBUG),y) |
82 | CFLAGS_pm.o += -DDEBUG | 84 | CFLAGS_pm.o += -DDEBUG |
diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c index d581cff80c4c..a57af3e99c7c 100644 --- a/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/arch/arm/mach-at91/at91sam9g45_devices.c | |||
@@ -131,6 +131,62 @@ void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data) {} | |||
131 | 131 | ||
132 | 132 | ||
133 | /* -------------------------------------------------------------------- | 133 | /* -------------------------------------------------------------------- |
134 | * USB Host HS (EHCI) | ||
135 | * Needs an OHCI host for low and full speed management | ||
136 | * -------------------------------------------------------------------- */ | ||
137 | |||
138 | #if defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_EHCI_HCD_MODULE) | ||
139 | static u64 ehci_dmamask = DMA_BIT_MASK(32); | ||
140 | static struct at91_usbh_data usbh_ehci_data; | ||
141 | |||
142 | static struct resource usbh_ehci_resources[] = { | ||
143 | [0] = { | ||
144 | .start = AT91SAM9G45_EHCI_BASE, | ||
145 | .end = AT91SAM9G45_EHCI_BASE + SZ_1M - 1, | ||
146 | .flags = IORESOURCE_MEM, | ||
147 | }, | ||
148 | [1] = { | ||
149 | .start = AT91SAM9G45_ID_UHPHS, | ||
150 | .end = AT91SAM9G45_ID_UHPHS, | ||
151 | .flags = IORESOURCE_IRQ, | ||
152 | }, | ||
153 | }; | ||
154 | |||
155 | static struct platform_device at91_usbh_ehci_device = { | ||
156 | .name = "atmel-ehci", | ||
157 | .id = -1, | ||
158 | .dev = { | ||
159 | .dma_mask = &ehci_dmamask, | ||
160 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
161 | .platform_data = &usbh_ehci_data, | ||
162 | }, | ||
163 | .resource = usbh_ehci_resources, | ||
164 | .num_resources = ARRAY_SIZE(usbh_ehci_resources), | ||
165 | }; | ||
166 | |||
167 | void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data) | ||
168 | { | ||
169 | int i; | ||
170 | |||
171 | if (!data) | ||
172 | return; | ||
173 | |||
174 | /* Enable VBus control for UHP ports */ | ||
175 | for (i = 0; i < data->ports; i++) { | ||
176 | if (data->vbus_pin[i]) | ||
177 | at91_set_gpio_output(data->vbus_pin[i], 0); | ||
178 | } | ||
179 | |||
180 | usbh_ehci_data = *data; | ||
181 | at91_clock_associate("uhphs_clk", &at91_usbh_ehci_device.dev, "ehci_clk"); | ||
182 | platform_device_register(&at91_usbh_ehci_device); | ||
183 | } | ||
184 | #else | ||
185 | void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data) {} | ||
186 | #endif | ||
187 | |||
188 | |||
189 | /* -------------------------------------------------------------------- | ||
134 | * USB HS Device (Gadget) | 190 | * USB HS Device (Gadget) |
135 | * -------------------------------------------------------------------- */ | 191 | * -------------------------------------------------------------------- */ |
136 | 192 | ||
@@ -838,7 +894,7 @@ static void __init at91_add_device_rtt(void) | |||
838 | * Watchdog | 894 | * Watchdog |
839 | * -------------------------------------------------------------------- */ | 895 | * -------------------------------------------------------------------- */ |
840 | 896 | ||
841 | #if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) | 897 | #if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE) |
842 | static struct platform_device at91sam9g45_wdt_device = { | 898 | static struct platform_device at91sam9g45_wdt_device = { |
843 | .name = "at91_wdt", | 899 | .name = "at91_wdt", |
844 | .id = -1, | 900 | .id = -1, |
diff --git a/arch/arm/mach-at91/board-eco920.c b/arch/arm/mach-at91/board-eco920.c new file mode 100644 index 000000000000..295a96609e71 --- /dev/null +++ b/arch/arm/mach-at91/board-eco920.c | |||
@@ -0,0 +1,158 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify | ||
3 | * it under the terms of the GNU General Public License as published by | ||
4 | * the Free Software Foundation; either version 2 of the License, or | ||
5 | * (at your option) any later version. | ||
6 | * | ||
7 | * This program is distributed in the hope that it will be useful, | ||
8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
10 | * GNU General Public License for more details. | ||
11 | * | ||
12 | * You should have received a copy of the GNU General Public License | ||
13 | * along with this program; if not, write to the Free Software | ||
14 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
15 | */ | ||
16 | |||
17 | #include <linux/init.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | #include <linux/mtd/physmap.h> | ||
20 | #include <linux/gpio.h> | ||
21 | |||
22 | #include <asm/mach-types.h> | ||
23 | |||
24 | #include <asm/mach/arch.h> | ||
25 | #include <asm/mach/map.h> | ||
26 | |||
27 | #include <mach/board.h> | ||
28 | #include <mach/at91rm9200_mc.h> | ||
29 | #include "generic.h" | ||
30 | |||
31 | static void __init eco920_map_io(void) | ||
32 | { | ||
33 | at91rm9200_initialize(18432000, AT91RM9200_PQFP); | ||
34 | |||
35 | /* Setup the LEDs */ | ||
36 | at91_init_leds(AT91_PIN_PB0, AT91_PIN_PB1); | ||
37 | |||
38 | /* DBGU on ttyS0. (Rx & Tx only */ | ||
39 | at91_register_uart(0, 0, 0); | ||
40 | |||
41 | /* set serial console to ttyS0 (ie, DBGU) */ | ||
42 | at91_set_serial_console(0); | ||
43 | } | ||
44 | |||
45 | static void __init eco920_init_irq(void) | ||
46 | { | ||
47 | at91rm9200_init_interrupts(NULL); | ||
48 | } | ||
49 | |||
50 | static struct at91_eth_data __initdata eco920_eth_data = { | ||
51 | .phy_irq_pin = AT91_PIN_PC2, | ||
52 | .is_rmii = 1, | ||
53 | }; | ||
54 | |||
55 | static struct at91_usbh_data __initdata eco920_usbh_data = { | ||
56 | .ports = 1, | ||
57 | }; | ||
58 | |||
59 | static struct at91_udc_data __initdata eco920_udc_data = { | ||
60 | .vbus_pin = AT91_PIN_PB12, | ||
61 | .pullup_pin = AT91_PIN_PB13, | ||
62 | }; | ||
63 | |||
64 | static struct at91_mmc_data __initdata eco920_mmc_data = { | ||
65 | .slot_b = 0, | ||
66 | .wire4 = 0, | ||
67 | }; | ||
68 | |||
69 | static struct physmap_flash_data eco920_flash_data = { | ||
70 | .width = 2, | ||
71 | }; | ||
72 | |||
73 | static struct resource eco920_flash_resource = { | ||
74 | .start = 0x11000000, | ||
75 | .end = 0x11ffffff, | ||
76 | .flags = IORESOURCE_MEM, | ||
77 | }; | ||
78 | |||
79 | static struct platform_device eco920_flash = { | ||
80 | .name = "physmap-flash", | ||
81 | .id = 0, | ||
82 | .dev = { | ||
83 | .platform_data = &eco920_flash_data, | ||
84 | }, | ||
85 | .resource = &eco920_flash_resource, | ||
86 | .num_resources = 1, | ||
87 | }; | ||
88 | |||
89 | static struct resource at91_beeper_resources[] = { | ||
90 | [0] = { | ||
91 | .start = AT91RM9200_BASE_TC3, | ||
92 | .end = AT91RM9200_BASE_TC3 + 0x39, | ||
93 | .flags = IORESOURCE_MEM, | ||
94 | }, | ||
95 | }; | ||
96 | |||
97 | static struct platform_device at91_beeper = { | ||
98 | .name = "at91_beeper", | ||
99 | .id = 0, | ||
100 | .resource = at91_beeper_resources, | ||
101 | .num_resources = ARRAY_SIZE(at91_beeper_resources), | ||
102 | }; | ||
103 | |||
104 | static struct spi_board_info eco920_spi_devices[] = { | ||
105 | { /* CAN controller */ | ||
106 | .modalias = "tlv5638", | ||
107 | .chip_select = 3, | ||
108 | .max_speed_hz = 20 * 1000 * 1000, | ||
109 | .mode = SPI_CPHA, | ||
110 | }, | ||
111 | }; | ||
112 | |||
113 | static void __init eco920_board_init(void) | ||
114 | { | ||
115 | at91_add_device_serial(); | ||
116 | at91_add_device_eth(&eco920_eth_data); | ||
117 | at91_add_device_usbh(&eco920_usbh_data); | ||
118 | at91_add_device_udc(&eco920_udc_data); | ||
119 | |||
120 | at91_add_device_mmc(0, &eco920_mmc_data); | ||
121 | platform_device_register(&eco920_flash); | ||
122 | |||
123 | at91_sys_write(AT91_SMC_CSR(7), AT91_SMC_RWHOLD_(1) | ||
124 | | AT91_SMC_RWSETUP_(1) | ||
125 | | AT91_SMC_DBW_8 | ||
126 | | AT91_SMC_WSEN | ||
127 | | AT91_SMC_NWS_(15)); | ||
128 | |||
129 | at91_set_A_periph(AT91_PIN_PC6, 1); | ||
130 | |||
131 | at91_set_gpio_input(AT91_PIN_PA23, 0); | ||
132 | at91_set_deglitch(AT91_PIN_PA23, 1); | ||
133 | |||
134 | /* Initialization of the Static Memory Controller for Chip Select 3 */ | ||
135 | at91_sys_write(AT91_SMC_CSR(3), | ||
136 | AT91_SMC_DBW_16 | /* 16 bit */ | ||
137 | AT91_SMC_WSEN | | ||
138 | AT91_SMC_NWS_(5) | /* wait states */ | ||
139 | AT91_SMC_TDF_(1) /* float time */ | ||
140 | ); | ||
141 | |||
142 | at91_clock_associate("tc3_clk", &at91_beeper.dev, "at91_beeper"); | ||
143 | at91_set_B_periph(AT91_PIN_PB6, 0); | ||
144 | platform_device_register(&at91_beeper); | ||
145 | |||
146 | at91_add_device_spi(eco920_spi_devices, ARRAY_SIZE(eco920_spi_devices)); | ||
147 | } | ||
148 | |||
149 | MACHINE_START(ECO920, "eco920") | ||
150 | /* Maintainer: Sascha Hauer */ | ||
151 | .phys_io = AT91_BASE_SYS, | ||
152 | .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, | ||
153 | .boot_params = AT91_SDRAM_BASE + 0x100, | ||
154 | .timer = &at91rm9200_timer, | ||
155 | .map_io = eco920_map_io, | ||
156 | .init_irq = eco920_init_irq, | ||
157 | .init_machine = eco920_board_init, | ||
158 | MACHINE_END | ||
diff --git a/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c b/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c index a28e53faf71d..a4102d72cc9b 100644 --- a/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c +++ b/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c | |||
@@ -90,7 +90,7 @@ static struct at91_udc_data __initdata ek_udc_data = { | |||
90 | * SPI devices. | 90 | * SPI devices. |
91 | */ | 91 | */ |
92 | static struct spi_board_info ek_spi_devices[] = { | 92 | static struct spi_board_info ek_spi_devices[] = { |
93 | #if !defined(CONFIG_MMC_ATMELMCI) | 93 | #if !(defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_AT91)) |
94 | { /* DataFlash chip */ | 94 | { /* DataFlash chip */ |
95 | .modalias = "mtd_dataflash", | 95 | .modalias = "mtd_dataflash", |
96 | .chip_select = 1, | 96 | .chip_select = 1, |
@@ -113,7 +113,7 @@ static struct spi_board_info ek_spi_devices[] = { | |||
113 | * MACB Ethernet device | 113 | * MACB Ethernet device |
114 | */ | 114 | */ |
115 | static struct at91_eth_data __initdata ek_macb_data = { | 115 | static struct at91_eth_data __initdata ek_macb_data = { |
116 | .phy_irq_pin = AT91_PIN_PC12, | 116 | .phy_irq_pin = AT91_PIN_PB0, |
117 | .is_rmii = 1, | 117 | .is_rmii = 1, |
118 | }; | 118 | }; |
119 | 119 | ||
@@ -194,24 +194,27 @@ static void __init ek_add_device_nand(void) | |||
194 | 194 | ||
195 | /* | 195 | /* |
196 | * MCI (SD/MMC) | 196 | * MCI (SD/MMC) |
197 | * det_pin and wp_pin are not connected | 197 | * wp_pin is not connected |
198 | */ | 198 | */ |
199 | #if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE) | 199 | #if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE) |
200 | static struct mci_platform_data __initdata ek_mmc_data = { | 200 | static struct mci_platform_data __initdata ek_mmc_data = { |
201 | .slot[0] = { | 201 | .slot[0] = { |
202 | .bus_width = 4, | 202 | .bus_width = 4, |
203 | .detect_pin = -ENODEV, | 203 | .detect_pin = AT91_PIN_PC2, |
204 | .wp_pin = -ENODEV, | 204 | .wp_pin = -ENODEV, |
205 | }, | 205 | }, |
206 | .slot[1] = { | 206 | .slot[1] = { |
207 | .bus_width = 4, | 207 | .bus_width = 4, |
208 | .detect_pin = -ENODEV, | 208 | .detect_pin = AT91_PIN_PC9, |
209 | .wp_pin = -ENODEV, | 209 | .wp_pin = -ENODEV, |
210 | }, | 210 | }, |
211 | 211 | ||
212 | }; | 212 | }; |
213 | #else | 213 | #else |
214 | static struct amci_platform_data __initdata ek_mmc_data = { | 214 | static struct at91_mmc_data __initdata ek_mmc_data = { |
215 | .slot_b = 1, /* Only one slot so use slot B */ | ||
216 | .wire4 = 1, | ||
217 | .det_pin = AT91_PIN_PC9, | ||
215 | }; | 218 | }; |
216 | #endif | 219 | #endif |
217 | 220 | ||
@@ -221,13 +224,13 @@ static struct amci_platform_data __initdata ek_mmc_data = { | |||
221 | static struct gpio_led ek_leds[] = { | 224 | static struct gpio_led ek_leds[] = { |
222 | { /* "bottom" led, green, userled1 to be defined */ | 225 | { /* "bottom" led, green, userled1 to be defined */ |
223 | .name = "ds5", | 226 | .name = "ds5", |
224 | .gpio = AT91_PIN_PB12, | 227 | .gpio = AT91_PIN_PB8, |
225 | .active_low = 1, | 228 | .active_low = 1, |
226 | .default_trigger = "none", | 229 | .default_trigger = "none", |
227 | }, | 230 | }, |
228 | { /* "power" led, yellow */ | 231 | { /* "power" led, yellow */ |
229 | .name = "ds1", | 232 | .name = "ds1", |
230 | .gpio = AT91_PIN_PB13, | 233 | .gpio = AT91_PIN_PB9, |
231 | .default_trigger = "heartbeat", | 234 | .default_trigger = "heartbeat", |
232 | } | 235 | } |
233 | }; | 236 | }; |
@@ -254,7 +257,11 @@ static void __init ek_board_init(void) | |||
254 | /* Ethernet */ | 257 | /* Ethernet */ |
255 | at91_add_device_eth(&ek_macb_data); | 258 | at91_add_device_eth(&ek_macb_data); |
256 | /* MMC */ | 259 | /* MMC */ |
260 | #if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE) | ||
257 | at91_add_device_mci(0, &ek_mmc_data); | 261 | at91_add_device_mci(0, &ek_mmc_data); |
262 | #else | ||
263 | at91_add_device_mmc(0, &ek_mmc_data); | ||
264 | #endif | ||
258 | /* I2C */ | 265 | /* I2C */ |
259 | at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices)); | 266 | at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices)); |
260 | /* LEDs */ | 267 | /* LEDs */ |
diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c index 64c3843f323d..1cf4d8681078 100644 --- a/arch/arm/mach-at91/board-sam9m10g45ek.c +++ b/arch/arm/mach-at91/board-sam9m10g45ek.c | |||
@@ -366,6 +366,7 @@ static void __init ek_board_init(void) | |||
366 | at91_add_device_serial(); | 366 | at91_add_device_serial(); |
367 | /* USB HS Host */ | 367 | /* USB HS Host */ |
368 | at91_add_device_usbh_ohci(&ek_usbh_hs_data); | 368 | at91_add_device_usbh_ohci(&ek_usbh_hs_data); |
369 | at91_add_device_usbh_ehci(&ek_usbh_hs_data); | ||
369 | /* USB HS Device */ | 370 | /* USB HS Device */ |
370 | at91_add_device_usba(&ek_usba_udc_data); | 371 | at91_add_device_usba(&ek_usba_udc_data); |
371 | /* SPI */ | 372 | /* SPI */ |
diff --git a/arch/arm/mach-at91/cpuidle.c b/arch/arm/mach-at91/cpuidle.c new file mode 100644 index 000000000000..1cfeac1483d6 --- /dev/null +++ b/arch/arm/mach-at91/cpuidle.c | |||
@@ -0,0 +1,94 @@ | |||
1 | /* | ||
2 | * based on arch/arm/mach-kirkwood/cpuidle.c | ||
3 | * | ||
4 | * CPU idle support for AT91 SoC | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | * | ||
10 | * The cpu idle uses wait-for-interrupt and RAM self refresh in order | ||
11 | * to implement two idle states - | ||
12 | * #1 wait-for-interrupt | ||
13 | * #2 wait-for-interrupt and RAM self refresh | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | #include <linux/cpuidle.h> | ||
20 | #include <asm/proc-fns.h> | ||
21 | #include <linux/io.h> | ||
22 | |||
23 | #include "pm.h" | ||
24 | |||
25 | #define AT91_MAX_STATES 2 | ||
26 | |||
27 | static DEFINE_PER_CPU(struct cpuidle_device, at91_cpuidle_device); | ||
28 | |||
29 | static struct cpuidle_driver at91_idle_driver = { | ||
30 | .name = "at91_idle", | ||
31 | .owner = THIS_MODULE, | ||
32 | }; | ||
33 | |||
34 | /* Actual code that puts the SoC in different idle states */ | ||
35 | static int at91_enter_idle(struct cpuidle_device *dev, | ||
36 | struct cpuidle_state *state) | ||
37 | { | ||
38 | struct timeval before, after; | ||
39 | int idle_time; | ||
40 | u32 saved_lpr; | ||
41 | |||
42 | local_irq_disable(); | ||
43 | do_gettimeofday(&before); | ||
44 | if (state == &dev->states[0]) | ||
45 | /* Wait for interrupt state */ | ||
46 | cpu_do_idle(); | ||
47 | else if (state == &dev->states[1]) { | ||
48 | asm("b 1f; .align 5; 1:"); | ||
49 | asm("mcr p15, 0, r0, c7, c10, 4"); /* drain write buffer */ | ||
50 | saved_lpr = sdram_selfrefresh_enable(); | ||
51 | cpu_do_idle(); | ||
52 | sdram_selfrefresh_disable(saved_lpr); | ||
53 | } | ||
54 | do_gettimeofday(&after); | ||
55 | local_irq_enable(); | ||
56 | idle_time = (after.tv_sec - before.tv_sec) * USEC_PER_SEC + | ||
57 | (after.tv_usec - before.tv_usec); | ||
58 | return idle_time; | ||
59 | } | ||
60 | |||
61 | /* Initialize CPU idle by registering the idle states */ | ||
62 | static int at91_init_cpuidle(void) | ||
63 | { | ||
64 | struct cpuidle_device *device; | ||
65 | |||
66 | cpuidle_register_driver(&at91_idle_driver); | ||
67 | |||
68 | device = &per_cpu(at91_cpuidle_device, smp_processor_id()); | ||
69 | device->state_count = AT91_MAX_STATES; | ||
70 | |||
71 | /* Wait for interrupt state */ | ||
72 | device->states[0].enter = at91_enter_idle; | ||
73 | device->states[0].exit_latency = 1; | ||
74 | device->states[0].target_residency = 10000; | ||
75 | device->states[0].flags = CPUIDLE_FLAG_TIME_VALID; | ||
76 | strcpy(device->states[0].name, "WFI"); | ||
77 | strcpy(device->states[0].desc, "Wait for interrupt"); | ||
78 | |||
79 | /* Wait for interrupt and RAM self refresh state */ | ||
80 | device->states[1].enter = at91_enter_idle; | ||
81 | device->states[1].exit_latency = 10; | ||
82 | device->states[1].target_residency = 10000; | ||
83 | device->states[1].flags = CPUIDLE_FLAG_TIME_VALID; | ||
84 | strcpy(device->states[1].name, "RAM_SR"); | ||
85 | strcpy(device->states[1].desc, "WFI and RAM Self Refresh"); | ||
86 | |||
87 | if (cpuidle_register_device(device)) { | ||
88 | printk(KERN_ERR "at91_init_cpuidle: Failed registering\n"); | ||
89 | return -EIO; | ||
90 | } | ||
91 | return 0; | ||
92 | } | ||
93 | |||
94 | device_initcall(at91_init_cpuidle); | ||
diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h index 2f4fcedc02ba..2295d80dd893 100644 --- a/arch/arm/mach-at91/include/mach/board.h +++ b/arch/arm/mach-at91/include/mach/board.h | |||
@@ -98,6 +98,7 @@ struct at91_usbh_data { | |||
98 | }; | 98 | }; |
99 | extern void __init at91_add_device_usbh(struct at91_usbh_data *data); | 99 | extern void __init at91_add_device_usbh(struct at91_usbh_data *data); |
100 | extern void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data); | 100 | extern void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data); |
101 | extern void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data); | ||
101 | 102 | ||
102 | /* NAND / SmartMedia */ | 103 | /* NAND / SmartMedia */ |
103 | struct atmel_nand_data { | 104 | struct atmel_nand_data { |
diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h index 34a9502c48bc..c22df30ed5e5 100644 --- a/arch/arm/mach-at91/include/mach/cpu.h +++ b/arch/arm/mach-at91/include/mach/cpu.h | |||
@@ -25,6 +25,8 @@ | |||
25 | #define ARCH_ID_AT91SAM9G20 0x019905a0 | 25 | #define ARCH_ID_AT91SAM9G20 0x019905a0 |
26 | #define ARCH_ID_AT91SAM9RL64 0x019b03a0 | 26 | #define ARCH_ID_AT91SAM9RL64 0x019b03a0 |
27 | #define ARCH_ID_AT91SAM9G45 0x819b05a0 | 27 | #define ARCH_ID_AT91SAM9G45 0x819b05a0 |
28 | #define ARCH_ID_AT91SAM9G45MRL 0x819b05a2 /* aka 9G45-ES2 & non ES lots */ | ||
29 | #define ARCH_ID_AT91SAM9G45ES 0x819b05a1 /* 9G45-ES (Engineering Sample) */ | ||
28 | #define ARCH_ID_AT91CAP9 0x039A03A0 | 30 | #define ARCH_ID_AT91CAP9 0x039A03A0 |
29 | 31 | ||
30 | #define ARCH_ID_AT91SAM9XE128 0x329973a0 | 32 | #define ARCH_ID_AT91SAM9XE128 0x329973a0 |
@@ -41,6 +43,11 @@ static inline unsigned long at91_cpu_identify(void) | |||
41 | return (at91_sys_read(AT91_DBGU_CIDR) & ~AT91_CIDR_VERSION); | 43 | return (at91_sys_read(AT91_DBGU_CIDR) & ~AT91_CIDR_VERSION); |
42 | } | 44 | } |
43 | 45 | ||
46 | static inline unsigned long at91_cpu_fully_identify(void) | ||
47 | { | ||
48 | return at91_sys_read(AT91_DBGU_CIDR); | ||
49 | } | ||
50 | |||
44 | #define ARCH_EXID_AT91SAM9M11 0x00000001 | 51 | #define ARCH_EXID_AT91SAM9M11 0x00000001 |
45 | #define ARCH_EXID_AT91SAM9M10 0x00000002 | 52 | #define ARCH_EXID_AT91SAM9M10 0x00000002 |
46 | #define ARCH_EXID_AT91SAM9G45 0x00000004 | 53 | #define ARCH_EXID_AT91SAM9G45 0x00000004 |
@@ -118,8 +125,10 @@ static inline unsigned long at91cap9_rev_identify(void) | |||
118 | 125 | ||
119 | #ifdef CONFIG_ARCH_AT91SAM9G45 | 126 | #ifdef CONFIG_ARCH_AT91SAM9G45 |
120 | #define cpu_is_at91sam9g45() (at91_cpu_identify() == ARCH_ID_AT91SAM9G45) | 127 | #define cpu_is_at91sam9g45() (at91_cpu_identify() == ARCH_ID_AT91SAM9G45) |
128 | #define cpu_is_at91sam9g45es() (at91_cpu_fully_identify() == ARCH_ID_AT91SAM9G45ES) | ||
121 | #else | 129 | #else |
122 | #define cpu_is_at91sam9g45() (0) | 130 | #define cpu_is_at91sam9g45() (0) |
131 | #define cpu_is_at91sam9g45es() (0) | ||
123 | #endif | 132 | #endif |
124 | 133 | ||
125 | #ifdef CONFIG_ARCH_AT91CAP9 | 134 | #ifdef CONFIG_ARCH_AT91CAP9 |
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index 4028724d490d..615668986480 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c | |||
@@ -29,62 +29,7 @@ | |||
29 | #include <mach/cpu.h> | 29 | #include <mach/cpu.h> |
30 | 30 | ||
31 | #include "generic.h" | 31 | #include "generic.h" |
32 | 32 | #include "pm.h" | |
33 | #ifdef CONFIG_ARCH_AT91RM9200 | ||
34 | #include <mach/at91rm9200_mc.h> | ||
35 | |||
36 | /* | ||
37 | * The AT91RM9200 goes into self-refresh mode with this command, and will | ||
38 | * terminate self-refresh automatically on the next SDRAM access. | ||
39 | */ | ||
40 | #define sdram_selfrefresh_enable() at91_sys_write(AT91_SDRAMC_SRR, 1) | ||
41 | #define sdram_selfrefresh_disable() do {} while (0) | ||
42 | |||
43 | #elif defined(CONFIG_ARCH_AT91CAP9) | ||
44 | #include <mach/at91cap9_ddrsdr.h> | ||
45 | |||
46 | static u32 saved_lpr; | ||
47 | |||
48 | static inline void sdram_selfrefresh_enable(void) | ||
49 | { | ||
50 | u32 lpr; | ||
51 | |||
52 | saved_lpr = at91_sys_read(AT91_DDRSDRC_LPR); | ||
53 | |||
54 | lpr = saved_lpr & ~AT91_DDRSDRC_LPCB; | ||
55 | at91_sys_write(AT91_DDRSDRC_LPR, lpr | AT91_DDRSDRC_LPCB_SELF_REFRESH); | ||
56 | } | ||
57 | |||
58 | #define sdram_selfrefresh_disable() at91_sys_write(AT91_DDRSDRC_LPR, saved_lpr) | ||
59 | |||
60 | #else | ||
61 | #include <mach/at91sam9_sdramc.h> | ||
62 | |||
63 | #ifdef CONFIG_ARCH_AT91SAM9263 | ||
64 | /* | ||
65 | * FIXME either or both the SDRAM controllers (EB0, EB1) might be in use; | ||
66 | * handle those cases both here and in the Suspend-To-RAM support. | ||
67 | */ | ||
68 | #define AT91_SDRAMC AT91_SDRAMC0 | ||
69 | #warning Assuming EB1 SDRAM controller is *NOT* used | ||
70 | #endif | ||
71 | |||
72 | static u32 saved_lpr; | ||
73 | |||
74 | static inline void sdram_selfrefresh_enable(void) | ||
75 | { | ||
76 | u32 lpr; | ||
77 | |||
78 | saved_lpr = at91_sys_read(AT91_SDRAMC_LPR); | ||
79 | |||
80 | lpr = saved_lpr & ~AT91_SDRAMC_LPCB; | ||
81 | at91_sys_write(AT91_SDRAMC_LPR, lpr | AT91_SDRAMC_LPCB_SELF_REFRESH); | ||
82 | } | ||
83 | |||
84 | #define sdram_selfrefresh_disable() at91_sys_write(AT91_SDRAMC_LPR, saved_lpr) | ||
85 | |||
86 | #endif | ||
87 | |||
88 | 33 | ||
89 | /* | 34 | /* |
90 | * Show the reason for the previous system reset. | 35 | * Show the reason for the previous system reset. |
@@ -260,6 +205,7 @@ extern u32 at91_slow_clock_sz; | |||
260 | 205 | ||
261 | static int at91_pm_enter(suspend_state_t state) | 206 | static int at91_pm_enter(suspend_state_t state) |
262 | { | 207 | { |
208 | u32 saved_lpr; | ||
263 | at91_gpio_suspend(); | 209 | at91_gpio_suspend(); |
264 | at91_irq_suspend(); | 210 | at91_irq_suspend(); |
265 | 211 | ||
@@ -315,9 +261,9 @@ static int at91_pm_enter(suspend_state_t state) | |||
315 | */ | 261 | */ |
316 | asm("b 1f; .align 5; 1:"); | 262 | asm("b 1f; .align 5; 1:"); |
317 | asm("mcr p15, 0, r0, c7, c10, 4"); /* drain write buffer */ | 263 | asm("mcr p15, 0, r0, c7, c10, 4"); /* drain write buffer */ |
318 | sdram_selfrefresh_enable(); | 264 | saved_lpr = sdram_selfrefresh_enable(); |
319 | asm("mcr p15, 0, r0, c7, c0, 4"); /* wait for interrupt */ | 265 | asm("mcr p15, 0, r0, c7, c0, 4"); /* wait for interrupt */ |
320 | sdram_selfrefresh_disable(); | 266 | sdram_selfrefresh_disable(saved_lpr); |
321 | break; | 267 | break; |
322 | 268 | ||
323 | case PM_SUSPEND_ON: | 269 | case PM_SUSPEND_ON: |
diff --git a/arch/arm/mach-at91/pm.h b/arch/arm/mach-at91/pm.h new file mode 100644 index 000000000000..08322c44df1a --- /dev/null +++ b/arch/arm/mach-at91/pm.h | |||
@@ -0,0 +1,67 @@ | |||
1 | #ifdef CONFIG_ARCH_AT91RM9200 | ||
2 | #include <mach/at91rm9200_mc.h> | ||
3 | |||
4 | /* | ||
5 | * The AT91RM9200 goes into self-refresh mode with this command, and will | ||
6 | * terminate self-refresh automatically on the next SDRAM access. | ||
7 | * | ||
8 | * Self-refresh mode is exited as soon as a memory access is made, but we don't | ||
9 | * know for sure when that happens. However, we need to restore the low-power | ||
10 | * mode if it was enabled before going idle. Restoring low-power mode while | ||
11 | * still in self-refresh is "not recommended", but seems to work. | ||
12 | */ | ||
13 | |||
14 | static inline u32 sdram_selfrefresh_enable(void) | ||
15 | { | ||
16 | u32 saved_lpr = at91_sys_read(AT91_SDRAMC_LPR); | ||
17 | |||
18 | at91_sys_write(AT91_SDRAMC_LPR, 0); | ||
19 | at91_sys_write(AT91_SDRAMC_SRR, 1); | ||
20 | return saved_lpr; | ||
21 | } | ||
22 | |||
23 | #define sdram_selfrefresh_disable(saved_lpr) at91_sys_write(AT91_SDRAMC_LPR, saved_lpr) | ||
24 | |||
25 | #elif defined(CONFIG_ARCH_AT91CAP9) | ||
26 | #include <mach/at91cap9_ddrsdr.h> | ||
27 | |||
28 | |||
29 | static inline u32 sdram_selfrefresh_enable(void) | ||
30 | { | ||
31 | u32 saved_lpr, lpr; | ||
32 | |||
33 | saved_lpr = at91_sys_read(AT91_DDRSDRC_LPR); | ||
34 | |||
35 | lpr = saved_lpr & ~AT91_DDRSDRC_LPCB; | ||
36 | at91_sys_write(AT91_DDRSDRC_LPR, lpr | AT91_DDRSDRC_LPCB_SELF_REFRESH); | ||
37 | return saved_lpr; | ||
38 | } | ||
39 | |||
40 | #define sdram_selfrefresh_disable(saved_lpr) at91_sys_write(AT91_DDRSDRC_LPR, saved_lpr) | ||
41 | |||
42 | #else | ||
43 | #include <mach/at91sam9_sdramc.h> | ||
44 | |||
45 | #ifdef CONFIG_ARCH_AT91SAM9263 | ||
46 | /* | ||
47 | * FIXME either or both the SDRAM controllers (EB0, EB1) might be in use; | ||
48 | * handle those cases both here and in the Suspend-To-RAM support. | ||
49 | */ | ||
50 | #define AT91_SDRAMC AT91_SDRAMC0 | ||
51 | #warning Assuming EB1 SDRAM controller is *NOT* used | ||
52 | #endif | ||
53 | |||
54 | static inline u32 sdram_selfrefresh_enable(void) | ||
55 | { | ||
56 | u32 saved_lpr, lpr; | ||
57 | |||
58 | saved_lpr = at91_sys_read(AT91_SDRAMC_LPR); | ||
59 | |||
60 | lpr = saved_lpr & ~AT91_SDRAMC_LPCB; | ||
61 | at91_sys_write(AT91_SDRAMC_LPR, lpr | AT91_SDRAMC_LPCB_SELF_REFRESH); | ||
62 | return saved_lpr; | ||
63 | } | ||
64 | |||
65 | #define sdram_selfrefresh_disable(saved_lpr) at91_sys_write(AT91_SDRAMC_LPR, saved_lpr) | ||
66 | |||
67 | #endif | ||
diff --git a/arch/arm/mach-bcmring/include/mach/io.h b/arch/arm/mach-bcmring/include/mach/io.h index 4db0eff90357..dae5e9b166ea 100644 --- a/arch/arm/mach-bcmring/include/mach/io.h +++ b/arch/arm/mach-bcmring/include/mach/io.h | |||
@@ -23,34 +23,11 @@ | |||
23 | 23 | ||
24 | #define IO_SPACE_LIMIT 0xffffffff | 24 | #define IO_SPACE_LIMIT 0xffffffff |
25 | 25 | ||
26 | #define __io(a) ((void __iomem *)HW_IO_PHYS_TO_VIRT(a)) | 26 | /* |
27 | 27 | * We don't actually have real ISA nor PCI buses, but there is so many | |
28 | /* Do not enable mem_pci for a big endian arm architecture or unexpected byteswaps will */ | 28 | * drivers out there that might just work if we fake them... |
29 | /* happen in readw/writew etc. */ | 29 | */ |
30 | 30 | #define __io(a) __typesafe_io(a) | |
31 | #define readb(c) __raw_readb(c) | 31 | #define __mem_pci(a) (a) |
32 | #define readw(c) __raw_readw(c) | ||
33 | #define readl(c) __raw_readl(c) | ||
34 | #define readb_relaxed(addr) readb(addr) | ||
35 | #define readw_relaxed(addr) readw(addr) | ||
36 | #define readl_relaxed(addr) readl(addr) | ||
37 | |||
38 | #define readsb(p, d, l) __raw_readsb(p, d, l) | ||
39 | #define readsw(p, d, l) __raw_readsw(p, d, l) | ||
40 | #define readsl(p, d, l) __raw_readsl(p, d, l) | ||
41 | |||
42 | #define writeb(v, c) __raw_writeb(v, c) | ||
43 | #define writew(v, c) __raw_writew(v, c) | ||
44 | #define writel(v, c) __raw_writel(v, c) | ||
45 | |||
46 | #define writesb(p, d, l) __raw_writesb(p, d, l) | ||
47 | #define writesw(p, d, l) __raw_writesw(p, d, l) | ||
48 | #define writesl(p, d, l) __raw_writesl(p, d, l) | ||
49 | |||
50 | #define memset_io(c, v, l) _memset_io((c), (v), (l)) | ||
51 | #define memcpy_fromio(a, c, l) _memcpy_fromio((a), (c), (l)) | ||
52 | #define memcpy_toio(c, a, l) _memcpy_toio((c), (a), (l)) | ||
53 | |||
54 | #define eth_io_copy_and_sum(s, c, l, b) eth_copy_and_sum((s), (c), (l), (b)) | ||
55 | 32 | ||
56 | #endif | 33 | #endif |
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index f95dc160c34b..1f0d66561bbe 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c | |||
@@ -31,6 +31,7 @@ | |||
31 | 31 | ||
32 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
33 | #include <mach/fb.h> | 33 | #include <mach/fb.h> |
34 | #include <mach/ep93xx_keypad.h> | ||
34 | 35 | ||
35 | #include <asm/mach/map.h> | 36 | #include <asm/mach/map.h> |
36 | #include <asm/mach/time.h> | 37 | #include <asm/mach/time.h> |
@@ -206,7 +207,6 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
206 | for (i = 0; i < 8; i++) { | 207 | for (i = 0; i < 8; i++) { |
207 | if (status & (1 << i)) { | 208 | if (status & (1 << i)) { |
208 | int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i; | 209 | int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i; |
209 | desc = irq_desc + gpio_irq; | ||
210 | generic_handle_irq(gpio_irq); | 210 | generic_handle_irq(gpio_irq); |
211 | } | 211 | } |
212 | } | 212 | } |
@@ -729,6 +729,82 @@ void __init ep93xx_register_fb(struct ep93xxfb_mach_info *data) | |||
729 | platform_device_register(&ep93xx_fb_device); | 729 | platform_device_register(&ep93xx_fb_device); |
730 | } | 730 | } |
731 | 731 | ||
732 | |||
733 | /************************************************************************* | ||
734 | * EP93xx matrix keypad peripheral handling | ||
735 | *************************************************************************/ | ||
736 | static struct resource ep93xx_keypad_resource[] = { | ||
737 | { | ||
738 | .start = EP93XX_KEY_MATRIX_PHYS_BASE, | ||
739 | .end = EP93XX_KEY_MATRIX_PHYS_BASE + 0x0c - 1, | ||
740 | .flags = IORESOURCE_MEM, | ||
741 | }, { | ||
742 | .start = IRQ_EP93XX_KEY, | ||
743 | .end = IRQ_EP93XX_KEY, | ||
744 | .flags = IORESOURCE_IRQ, | ||
745 | }, | ||
746 | }; | ||
747 | |||
748 | static struct platform_device ep93xx_keypad_device = { | ||
749 | .name = "ep93xx-keypad", | ||
750 | .id = -1, | ||
751 | .num_resources = ARRAY_SIZE(ep93xx_keypad_resource), | ||
752 | .resource = ep93xx_keypad_resource, | ||
753 | }; | ||
754 | |||
755 | void __init ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data) | ||
756 | { | ||
757 | ep93xx_keypad_device.dev.platform_data = data; | ||
758 | platform_device_register(&ep93xx_keypad_device); | ||
759 | } | ||
760 | |||
761 | int ep93xx_keypad_acquire_gpio(struct platform_device *pdev) | ||
762 | { | ||
763 | int err; | ||
764 | int i; | ||
765 | |||
766 | for (i = 0; i < 8; i++) { | ||
767 | err = gpio_request(EP93XX_GPIO_LINE_C(i), dev_name(&pdev->dev)); | ||
768 | if (err) | ||
769 | goto fail_gpio_c; | ||
770 | err = gpio_request(EP93XX_GPIO_LINE_D(i), dev_name(&pdev->dev)); | ||
771 | if (err) | ||
772 | goto fail_gpio_d; | ||
773 | } | ||
774 | |||
775 | /* Enable the keypad controller; GPIO ports C and D used for keypad */ | ||
776 | ep93xx_devcfg_clear_bits(EP93XX_SYSCON_DEVCFG_KEYS | | ||
777 | EP93XX_SYSCON_DEVCFG_GONK); | ||
778 | |||
779 | return 0; | ||
780 | |||
781 | fail_gpio_d: | ||
782 | gpio_free(EP93XX_GPIO_LINE_C(i)); | ||
783 | fail_gpio_c: | ||
784 | for ( ; i >= 0; --i) { | ||
785 | gpio_free(EP93XX_GPIO_LINE_C(i)); | ||
786 | gpio_free(EP93XX_GPIO_LINE_D(i)); | ||
787 | } | ||
788 | return err; | ||
789 | } | ||
790 | EXPORT_SYMBOL(ep93xx_keypad_acquire_gpio); | ||
791 | |||
792 | void ep93xx_keypad_release_gpio(struct platform_device *pdev) | ||
793 | { | ||
794 | int i; | ||
795 | |||
796 | for (i = 0; i < 8; i++) { | ||
797 | gpio_free(EP93XX_GPIO_LINE_C(i)); | ||
798 | gpio_free(EP93XX_GPIO_LINE_D(i)); | ||
799 | } | ||
800 | |||
801 | /* Disable the keypad controller; GPIO ports C and D used for GPIO */ | ||
802 | ep93xx_devcfg_set_bits(EP93XX_SYSCON_DEVCFG_KEYS | | ||
803 | EP93XX_SYSCON_DEVCFG_GONK); | ||
804 | } | ||
805 | EXPORT_SYMBOL(ep93xx_keypad_release_gpio); | ||
806 | |||
807 | |||
732 | extern void ep93xx_gpio_init(void); | 808 | extern void ep93xx_gpio_init(void); |
733 | 809 | ||
734 | void __init ep93xx_init_devices(void) | 810 | void __init ep93xx_init_devices(void) |
diff --git a/arch/arm/mach-ep93xx/edb93xx.c b/arch/arm/mach-ep93xx/edb93xx.c index ca71cf1a72a0..a4a7be308000 100644 --- a/arch/arm/mach-ep93xx/edb93xx.c +++ b/arch/arm/mach-ep93xx/edb93xx.c | |||
@@ -112,7 +112,7 @@ static void __init edb93xx_register_i2c(void) | |||
112 | ARRAY_SIZE(edb93xxa_i2c_board_info)); | 112 | ARRAY_SIZE(edb93xxa_i2c_board_info)); |
113 | } else if (machine_is_edb9307() || machine_is_edb9312() || | 113 | } else if (machine_is_edb9307() || machine_is_edb9312() || |
114 | machine_is_edb9315()) { | 114 | machine_is_edb9315()) { |
115 | ep93xx_register_i2c(&edb93xx_i2c_gpio_data | 115 | ep93xx_register_i2c(&edb93xx_i2c_gpio_data, |
116 | edb93xx_i2c_board_info, | 116 | edb93xx_i2c_board_info, |
117 | ARRAY_SIZE(edb93xx_i2c_board_info)); | 117 | ARRAY_SIZE(edb93xx_i2c_board_info)); |
118 | } | 118 | } |
diff --git a/arch/arm/mach-ep93xx/include/mach/clkdev.h b/arch/arm/mach-ep93xx/include/mach/clkdev.h index 04b37a89801c..50cb991eadeb 100644 --- a/arch/arm/mach-ep93xx/include/mach/clkdev.h +++ b/arch/arm/mach-ep93xx/include/mach/clkdev.h | |||
@@ -1,3 +1,7 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-ep93xx/include/mach/clkdev.h | ||
3 | */ | ||
4 | |||
1 | #ifndef __ASM_MACH_CLKDEV_H | 5 | #ifndef __ASM_MACH_CLKDEV_H |
2 | #define __ASM_MACH_CLKDEV_H | 6 | #define __ASM_MACH_CLKDEV_H |
3 | 7 | ||
diff --git a/arch/arm/mach-ep93xx/include/mach/dma.h b/arch/arm/mach-ep93xx/include/mach/dma.h index ef6bd9d13148..3a5961d3f3b1 100644 --- a/arch/arm/mach-ep93xx/include/mach/dma.h +++ b/arch/arm/mach-ep93xx/include/mach/dma.h | |||
@@ -1,3 +1,7 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-ep93xx/include/mach/dma.h | ||
3 | */ | ||
4 | |||
1 | #ifndef __ASM_ARCH_DMA_H | 5 | #ifndef __ASM_ARCH_DMA_H |
2 | #define __ASM_ARCH_DMA_H | 6 | #define __ASM_ARCH_DMA_H |
3 | 7 | ||
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h index b1f937eda29c..d55194a4c093 100644 --- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h +++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h | |||
@@ -134,6 +134,7 @@ | |||
134 | #define EP93XX_UART3_PHYS_BASE EP93XX_APB_PHYS(0x000e0000) | 134 | #define EP93XX_UART3_PHYS_BASE EP93XX_APB_PHYS(0x000e0000) |
135 | #define EP93XX_UART3_BASE EP93XX_APB_IOMEM(0x000e0000) | 135 | #define EP93XX_UART3_BASE EP93XX_APB_IOMEM(0x000e0000) |
136 | 136 | ||
137 | #define EP93XX_KEY_MATRIX_PHYS_BASE EP93XX_APB_PHYS(0x000f0000) | ||
137 | #define EP93XX_KEY_MATRIX_BASE EP93XX_APB_IOMEM(0x000f0000) | 138 | #define EP93XX_KEY_MATRIX_BASE EP93XX_APB_IOMEM(0x000f0000) |
138 | 139 | ||
139 | #define EP93XX_ADC_BASE EP93XX_APB_IOMEM(0x00100000) | 140 | #define EP93XX_ADC_BASE EP93XX_APB_IOMEM(0x00100000) |
diff --git a/arch/arm/mach-ep93xx/include/mach/hardware.h b/arch/arm/mach-ep93xx/include/mach/hardware.h index 349fa7cb72d5..5a3ce024b593 100644 --- a/arch/arm/mach-ep93xx/include/mach/hardware.h +++ b/arch/arm/mach-ep93xx/include/mach/hardware.h | |||
@@ -1,6 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/mach-ep93xx/include/mach/hardware.h | 2 | * arch/arm/mach-ep93xx/include/mach/hardware.h |
3 | */ | 3 | */ |
4 | |||
4 | #ifndef __ASM_ARCH_HARDWARE_H | 5 | #ifndef __ASM_ARCH_HARDWARE_H |
5 | #define __ASM_ARCH_HARDWARE_H | 6 | #define __ASM_ARCH_HARDWARE_H |
6 | 7 | ||
diff --git a/arch/arm/mach-ep93xx/include/mach/io.h b/arch/arm/mach-ep93xx/include/mach/io.h index cebcc1c53d63..594b77f21054 100644 --- a/arch/arm/mach-ep93xx/include/mach/io.h +++ b/arch/arm/mach-ep93xx/include/mach/io.h | |||
@@ -1,6 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/mach-ep93xx/include/mach/io.h | 2 | * arch/arm/mach-ep93xx/include/mach/io.h |
3 | */ | 3 | */ |
4 | |||
4 | #ifndef __ASM_MACH_IO_H | 5 | #ifndef __ASM_MACH_IO_H |
5 | #define __ASM_MACH_IO_H | 6 | #define __ASM_MACH_IO_H |
6 | 7 | ||
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h index a3ec33fd79d4..c6dc14dbca18 100644 --- a/arch/arm/mach-ep93xx/include/mach/platform.h +++ b/arch/arm/mach-ep93xx/include/mach/platform.h | |||
@@ -8,6 +8,7 @@ struct i2c_gpio_platform_data; | |||
8 | struct i2c_board_info; | 8 | struct i2c_board_info; |
9 | struct platform_device; | 9 | struct platform_device; |
10 | struct ep93xxfb_mach_info; | 10 | struct ep93xxfb_mach_info; |
11 | struct ep93xx_keypad_platform_data; | ||
11 | 12 | ||
12 | struct ep93xx_eth_data | 13 | struct ep93xx_eth_data |
13 | { | 14 | { |
@@ -17,7 +18,6 @@ struct ep93xx_eth_data | |||
17 | 18 | ||
18 | void ep93xx_map_io(void); | 19 | void ep93xx_map_io(void); |
19 | void ep93xx_init_irq(void); | 20 | void ep93xx_init_irq(void); |
20 | void ep93xx_init_time(unsigned long); | ||
21 | 21 | ||
22 | /* EP93xx System Controller software locked register write */ | 22 | /* EP93xx System Controller software locked register write */ |
23 | void ep93xx_syscon_swlocked_write(unsigned int val, void __iomem *reg); | 23 | void ep93xx_syscon_swlocked_write(unsigned int val, void __iomem *reg); |
@@ -40,6 +40,9 @@ void ep93xx_register_fb(struct ep93xxfb_mach_info *data); | |||
40 | void ep93xx_register_pwm(int pwm0, int pwm1); | 40 | void ep93xx_register_pwm(int pwm0, int pwm1); |
41 | int ep93xx_pwm_acquire_gpio(struct platform_device *pdev); | 41 | int ep93xx_pwm_acquire_gpio(struct platform_device *pdev); |
42 | void ep93xx_pwm_release_gpio(struct platform_device *pdev); | 42 | void ep93xx_pwm_release_gpio(struct platform_device *pdev); |
43 | void ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data); | ||
44 | int ep93xx_keypad_acquire_gpio(struct platform_device *pdev); | ||
45 | void ep93xx_keypad_release_gpio(struct platform_device *pdev); | ||
43 | 46 | ||
44 | void ep93xx_init_devices(void); | 47 | void ep93xx_init_devices(void); |
45 | extern struct sys_timer ep93xx_timer; | 48 | extern struct sys_timer ep93xx_timer; |
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c index d83b80478b09..f3757a1c5a10 100644 --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/mtd/physmap.h> | 17 | #include <linux/mtd/physmap.h> |
18 | #include <linux/io.h> | ||
18 | 19 | ||
19 | #include <mach/hardware.h> | 20 | #include <mach/hardware.h> |
20 | 21 | ||
diff --git a/arch/arm/mach-integrator/include/mach/memory.h b/arch/arm/mach-integrator/include/mach/memory.h index 2b2e7a110724..4891828454f5 100644 --- a/arch/arm/mach-integrator/include/mach/memory.h +++ b/arch/arm/mach-integrator/include/mach/memory.h | |||
@@ -28,5 +28,6 @@ | |||
28 | #define BUS_OFFSET UL(0x80000000) | 28 | #define BUS_OFFSET UL(0x80000000) |
29 | #define __virt_to_bus(x) ((x) - PAGE_OFFSET + BUS_OFFSET) | 29 | #define __virt_to_bus(x) ((x) - PAGE_OFFSET + BUS_OFFSET) |
30 | #define __bus_to_virt(x) ((x) - BUS_OFFSET + PAGE_OFFSET) | 30 | #define __bus_to_virt(x) ((x) - BUS_OFFSET + PAGE_OFFSET) |
31 | #define __pfn_to_bus(x) (((x) << PAGE_SHIFT) + BUS_OFFSET) | ||
31 | 32 | ||
32 | #endif | 33 | #endif |
diff --git a/arch/arm/mach-iop13xx/include/mach/memory.h b/arch/arm/mach-iop13xx/include/mach/memory.h index 42ae29b288a1..25b1da9a5035 100644 --- a/arch/arm/mach-iop13xx/include/mach/memory.h +++ b/arch/arm/mach-iop13xx/include/mach/memory.h | |||
@@ -64,6 +64,8 @@ static inline unsigned long __lbus_to_virt(dma_addr_t x) | |||
64 | (dma_addr_t)page_to_phys(page); \ | 64 | (dma_addr_t)page_to_phys(page); \ |
65 | }) | 65 | }) |
66 | 66 | ||
67 | #define __arch_dma_to_page(dev, addr) phys_to_page(addr) | ||
68 | |||
67 | #endif /* CONFIG_ARCH_IOP13XX */ | 69 | #endif /* CONFIG_ARCH_IOP13XX */ |
68 | #endif /* !ASSEMBLY */ | 70 | #endif /* !ASSEMBLY */ |
69 | 71 | ||
diff --git a/arch/arm/mach-kirkwood/addr-map.c b/arch/arm/mach-kirkwood/addr-map.c index 1da5d1c18ecb..2e69168fc699 100644 --- a/arch/arm/mach-kirkwood/addr-map.c +++ b/arch/arm/mach-kirkwood/addr-map.c | |||
@@ -105,7 +105,7 @@ void __init kirkwood_setup_cpu_mbus(void) | |||
105 | setup_cpu_win(0, KIRKWOOD_PCIE_IO_PHYS_BASE, KIRKWOOD_PCIE_IO_SIZE, | 105 | setup_cpu_win(0, KIRKWOOD_PCIE_IO_PHYS_BASE, KIRKWOOD_PCIE_IO_SIZE, |
106 | TARGET_PCIE, ATTR_PCIE_IO, KIRKWOOD_PCIE_IO_BUS_BASE); | 106 | TARGET_PCIE, ATTR_PCIE_IO, KIRKWOOD_PCIE_IO_BUS_BASE); |
107 | setup_cpu_win(1, KIRKWOOD_PCIE_MEM_PHYS_BASE, KIRKWOOD_PCIE_MEM_SIZE, | 107 | setup_cpu_win(1, KIRKWOOD_PCIE_MEM_PHYS_BASE, KIRKWOOD_PCIE_MEM_SIZE, |
108 | TARGET_PCIE, ATTR_PCIE_MEM, -1); | 108 | TARGET_PCIE, ATTR_PCIE_MEM, KIRKWOOD_PCIE_MEM_BUS_BASE); |
109 | 109 | ||
110 | /* | 110 | /* |
111 | * Setup window for NAND controller. | 111 | * Setup window for NAND controller. |
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 0acb61f3c10b..242dd0775343 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
@@ -845,7 +845,7 @@ int __init kirkwood_find_tclk(void) | |||
845 | return 166666667; | 845 | return 166666667; |
846 | } | 846 | } |
847 | 847 | ||
848 | static void kirkwood_timer_init(void) | 848 | static void __init kirkwood_timer_init(void) |
849 | { | 849 | { |
850 | kirkwood_tclk = kirkwood_find_tclk(); | 850 | kirkwood_tclk = kirkwood_find_tclk(); |
851 | orion_time_init(IRQ_KIRKWOOD_BRIDGE, kirkwood_tclk); | 851 | orion_time_init(IRQ_KIRKWOOD_BRIDGE, kirkwood_tclk); |
@@ -915,6 +915,14 @@ void __init kirkwood_init(void) | |||
915 | kirkwood_uart0_data[0].uartclk = kirkwood_tclk; | 915 | kirkwood_uart0_data[0].uartclk = kirkwood_tclk; |
916 | kirkwood_uart1_data[0].uartclk = kirkwood_tclk; | 916 | kirkwood_uart1_data[0].uartclk = kirkwood_tclk; |
917 | 917 | ||
918 | /* | ||
919 | * Disable propagation of mbus errors to the CPU local bus, | ||
920 | * as this causes mbus errors (which can occur for example | ||
921 | * for PCI aborts) to throw CPU aborts, which we're not set | ||
922 | * up to deal with. | ||
923 | */ | ||
924 | writel(readl(CPU_CONFIG) & ~CPU_CONFIG_ERROR_PROP, CPU_CONFIG); | ||
925 | |||
918 | kirkwood_setup_cpu_mbus(); | 926 | kirkwood_setup_cpu_mbus(); |
919 | 927 | ||
920 | #ifdef CONFIG_CACHE_FEROCEON_L2 | 928 | #ifdef CONFIG_CACHE_FEROCEON_L2 |
diff --git a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h index 9e80d9232c83..418f5017c50e 100644 --- a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h +++ b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h | |||
@@ -13,6 +13,9 @@ | |||
13 | 13 | ||
14 | #include <mach/kirkwood.h> | 14 | #include <mach/kirkwood.h> |
15 | 15 | ||
16 | #define CPU_CONFIG (BRIDGE_VIRT_BASE | 0x0100) | ||
17 | #define CPU_CONFIG_ERROR_PROP 0x00000004 | ||
18 | |||
16 | #define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104) | 19 | #define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104) |
17 | #define CPU_RESET 0x00000002 | 20 | #define CPU_RESET 0x00000002 |
18 | 21 | ||
diff --git a/arch/arm/mach-kirkwood/include/mach/io.h b/arch/arm/mach-kirkwood/include/mach/io.h index a643a846d5fb..44e8be04f259 100644 --- a/arch/arm/mach-kirkwood/include/mach/io.h +++ b/arch/arm/mach-kirkwood/include/mach/io.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | static inline void __iomem *__io(unsigned long addr) | 16 | static inline void __iomem *__io(unsigned long addr) |
17 | { | 17 | { |
18 | return (void __iomem *)((addr - KIRKWOOD_PCIE_IO_PHYS_BASE) | 18 | return (void __iomem *)((addr - KIRKWOOD_PCIE_IO_BUS_BASE) |
19 | + KIRKWOOD_PCIE_IO_VIRT_BASE); | 19 | + KIRKWOOD_PCIE_IO_VIRT_BASE); |
20 | } | 20 | } |
21 | 21 | ||
diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirkwood/include/mach/kirkwood.h index 54c132731d2d..a15cf0ee22bd 100644 --- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h +++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h | |||
@@ -43,6 +43,7 @@ | |||
43 | #define KIRKWOOD_REGS_SIZE SZ_1M | 43 | #define KIRKWOOD_REGS_SIZE SZ_1M |
44 | 44 | ||
45 | #define KIRKWOOD_PCIE_MEM_PHYS_BASE 0xe0000000 | 45 | #define KIRKWOOD_PCIE_MEM_PHYS_BASE 0xe0000000 |
46 | #define KIRKWOOD_PCIE_MEM_BUS_BASE 0xe0000000 | ||
46 | #define KIRKWOOD_PCIE_MEM_SIZE SZ_128M | 47 | #define KIRKWOOD_PCIE_MEM_SIZE SZ_128M |
47 | 48 | ||
48 | /* | 49 | /* |
diff --git a/arch/arm/mach-kirkwood/openrd_base-setup.c b/arch/arm/mach-kirkwood/openrd_base-setup.c index 947dfb8cd5b2..77617c722299 100644 --- a/arch/arm/mach-kirkwood/openrd_base-setup.c +++ b/arch/arm/mach-kirkwood/openrd_base-setup.c | |||
@@ -70,8 +70,20 @@ static void __init openrd_base_init(void) | |||
70 | kirkwood_ge00_init(&openrd_base_ge00_data); | 70 | kirkwood_ge00_init(&openrd_base_ge00_data); |
71 | kirkwood_sata_init(&openrd_base_sata_data); | 71 | kirkwood_sata_init(&openrd_base_sata_data); |
72 | kirkwood_sdio_init(&openrd_base_mvsdio_data); | 72 | kirkwood_sdio_init(&openrd_base_mvsdio_data); |
73 | |||
74 | kirkwood_i2c_init(); | ||
73 | } | 75 | } |
74 | 76 | ||
77 | static int __init openrd_base_pci_init(void) | ||
78 | { | ||
79 | if (machine_is_openrd_base()) | ||
80 | kirkwood_pcie_init(); | ||
81 | |||
82 | return 0; | ||
83 | } | ||
84 | subsys_initcall(openrd_base_pci_init); | ||
85 | |||
86 | |||
75 | MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board") | 87 | MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board") |
76 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ | 88 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ |
77 | .phys_io = KIRKWOOD_REGS_PHYS_BASE, | 89 | .phys_io = KIRKWOOD_REGS_PHYS_BASE, |
diff --git a/arch/arm/mach-kirkwood/pcie.c b/arch/arm/mach-kirkwood/pcie.c index d90b9aae308d..a604b2a701aa 100644 --- a/arch/arm/mach-kirkwood/pcie.c +++ b/arch/arm/mach-kirkwood/pcie.c | |||
@@ -93,7 +93,7 @@ static struct pci_ops pcie_ops = { | |||
93 | }; | 93 | }; |
94 | 94 | ||
95 | 95 | ||
96 | static int kirkwood_pcie_setup(int nr, struct pci_sys_data *sys) | 96 | static int __init kirkwood_pcie_setup(int nr, struct pci_sys_data *sys) |
97 | { | 97 | { |
98 | struct resource *res; | 98 | struct resource *res; |
99 | extern unsigned int kirkwood_clk_ctrl; | 99 | extern unsigned int kirkwood_clk_ctrl; |
@@ -115,7 +115,7 @@ static int kirkwood_pcie_setup(int nr, struct pci_sys_data *sys) | |||
115 | */ | 115 | */ |
116 | res[0].name = "PCIe I/O Space"; | 116 | res[0].name = "PCIe I/O Space"; |
117 | res[0].flags = IORESOURCE_IO; | 117 | res[0].flags = IORESOURCE_IO; |
118 | res[0].start = KIRKWOOD_PCIE_IO_PHYS_BASE; | 118 | res[0].start = KIRKWOOD_PCIE_IO_BUS_BASE; |
119 | res[0].end = res[0].start + KIRKWOOD_PCIE_IO_SIZE - 1; | 119 | res[0].end = res[0].start + KIRKWOOD_PCIE_IO_SIZE - 1; |
120 | if (request_resource(&ioport_resource, &res[0])) | 120 | if (request_resource(&ioport_resource, &res[0])) |
121 | panic("Request PCIe IO resource failed\n"); | 121 | panic("Request PCIe IO resource failed\n"); |
@@ -126,7 +126,7 @@ static int kirkwood_pcie_setup(int nr, struct pci_sys_data *sys) | |||
126 | */ | 126 | */ |
127 | res[1].name = "PCIe Memory Space"; | 127 | res[1].name = "PCIe Memory Space"; |
128 | res[1].flags = IORESOURCE_MEM; | 128 | res[1].flags = IORESOURCE_MEM; |
129 | res[1].start = KIRKWOOD_PCIE_MEM_PHYS_BASE; | 129 | res[1].start = KIRKWOOD_PCIE_MEM_BUS_BASE; |
130 | res[1].end = res[1].start + KIRKWOOD_PCIE_MEM_SIZE - 1; | 130 | res[1].end = res[1].start + KIRKWOOD_PCIE_MEM_SIZE - 1; |
131 | if (request_resource(&iomem_resource, &res[1])) | 131 | if (request_resource(&iomem_resource, &res[1])) |
132 | panic("Request PCIe Memory resource failed\n"); | 132 | panic("Request PCIe Memory resource failed\n"); |
diff --git a/arch/arm/mach-ks8695/include/mach/memory.h b/arch/arm/mach-ks8695/include/mach/memory.h index 76e5308685a4..ffa19aae6e05 100644 --- a/arch/arm/mach-ks8695/include/mach/memory.h +++ b/arch/arm/mach-ks8695/include/mach/memory.h | |||
@@ -41,6 +41,13 @@ extern struct bus_type platform_bus_type; | |||
41 | __dma = __dma - PHYS_OFFSET + KS8695_PCIMEM_PA; \ | 41 | __dma = __dma - PHYS_OFFSET + KS8695_PCIMEM_PA; \ |
42 | __dma; }) | 42 | __dma; }) |
43 | 43 | ||
44 | #define __arch_dma_to_page(dev, x) \ | ||
45 | ({ dma_addr_t __dma = x; \ | ||
46 | if (!is_lbus_device(dev)) \ | ||
47 | __dma += PHYS_OFFSET - KS8695_PCIMEM_PA; \ | ||
48 | phys_to_page(__dma); \ | ||
49 | }) | ||
50 | |||
44 | #endif | 51 | #endif |
45 | 52 | ||
46 | #endif | 53 | #endif |
diff --git a/arch/arm/mach-ks8695/include/mach/regs-switch.h b/arch/arm/mach-ks8695/include/mach/regs-switch.h index 56d12e8de895..97e8acb1cf6c 100644 --- a/arch/arm/mach-ks8695/include/mach/regs-switch.h +++ b/arch/arm/mach-ks8695/include/mach/regs-switch.h | |||
@@ -25,7 +25,7 @@ | |||
25 | #define KS8695_SEC1 (0x04) /* Switch Engine Control 1 */ | 25 | #define KS8695_SEC1 (0x04) /* Switch Engine Control 1 */ |
26 | #define KS8695_SEC2 (0x08) /* Switch Engine Control 2 */ | 26 | #define KS8695_SEC2 (0x08) /* Switch Engine Control 2 */ |
27 | 27 | ||
28 | #define KS8695_P(x)_C(z) (0xc0 + (((x)-1)*3 + ((z)-1))*4) /* Port Configuration Registers */ | 28 | #define KS8695_SEPXCZ(x,z) (0x0c + (((x)-1)*3 + ((z)-1))*4) /* Port Configuration Registers */ |
29 | 29 | ||
30 | #define KS8695_SEP12AN (0x48) /* Port 1 & 2 Auto-Negotiation */ | 30 | #define KS8695_SEP12AN (0x48) /* Port 1 & 2 Auto-Negotiation */ |
31 | #define KS8695_SEP34AN (0x4c) /* Port 3 & 4 Auto-Negotiation */ | 31 | #define KS8695_SEP34AN (0x4c) /* Port 3 & 4 Auto-Negotiation */ |
diff --git a/arch/arm/mach-mmp/include/mach/mfp-pxa910.h b/arch/arm/mach-mmp/include/mach/mfp-pxa910.h index bf1189ff9a34..7e8a80f25ddc 100644 --- a/arch/arm/mach-mmp/include/mach/mfp-pxa910.h +++ b/arch/arm/mach-mmp/include/mach/mfp-pxa910.h | |||
@@ -160,7 +160,7 @@ | |||
160 | #define MMC1_WP_MMC1_WP MFP_CFG_DRV(MMC1_WP, AF0, MEDIUM) | 160 | #define MMC1_WP_MMC1_WP MFP_CFG_DRV(MMC1_WP, AF0, MEDIUM) |
161 | 161 | ||
162 | /* PWM */ | 162 | /* PWM */ |
163 | #define GPIO27 PWM3 AF2 MFP_CFG(GPIO27, AF2) | 163 | #define GPIO27_PWM3_AF2 MFP_CFG(GPIO27, AF2) |
164 | #define GPIO51_PWM2_OUT MFP_CFG(GPIO51, AF2) | 164 | #define GPIO51_PWM2_OUT MFP_CFG(GPIO51, AF2) |
165 | #define GPIO117_PWM1_OUT MFP_CFG(GPIO117, AF2) | 165 | #define GPIO117_PWM1_OUT MFP_CFG(GPIO117, AF2) |
166 | #define GPIO118_PWM2_OUT MFP_CFG(GPIO118, AF2) | 166 | #define GPIO118_PWM2_OUT MFP_CFG(GPIO118, AF2) |
diff --git a/arch/arm/mach-mv78xx0/common.c b/arch/arm/mach-mv78xx0/common.c index 1b22e4af8791..08465eb6a2c2 100644 --- a/arch/arm/mach-mv78xx0/common.c +++ b/arch/arm/mach-mv78xx0/common.c | |||
@@ -845,6 +845,8 @@ static char * __init mv78xx0_id(void) | |||
845 | } else if (dev == MV78100_DEV_ID) { | 845 | } else if (dev == MV78100_DEV_ID) { |
846 | if (rev == MV78100_REV_A0) | 846 | if (rev == MV78100_REV_A0) |
847 | return "MV78100-A0"; | 847 | return "MV78100-A0"; |
848 | else if (rev == MV78100_REV_A1) | ||
849 | return "MV78100-A1"; | ||
848 | else | 850 | else |
849 | return "MV78100-Rev-Unsupported"; | 851 | return "MV78100-Rev-Unsupported"; |
850 | } else if (dev == MV78200_DEV_ID) { | 852 | } else if (dev == MV78200_DEV_ID) { |
diff --git a/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h b/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h index d715b92b0908..788bdace1304 100644 --- a/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h +++ b/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h | |||
@@ -112,6 +112,7 @@ | |||
112 | 112 | ||
113 | #define MV78100_DEV_ID 0x7810 | 113 | #define MV78100_DEV_ID 0x7810 |
114 | #define MV78100_REV_A0 1 | 114 | #define MV78100_REV_A0 1 |
115 | #define MV78100_REV_A1 2 | ||
115 | 116 | ||
116 | #define MV78200_DEV_ID 0x7820 | 117 | #define MV78200_DEV_ID 0x7820 |
117 | #define MV78200_REV_A0 1 | 118 | #define MV78200_REV_A0 1 |
diff --git a/arch/arm/mach-mx2/clock_imx27.c b/arch/arm/mach-mx2/clock_imx27.c index 4089951acb47..ff5e33298914 100644 --- a/arch/arm/mach-mx2/clock_imx27.c +++ b/arch/arm/mach-mx2/clock_imx27.c | |||
@@ -638,9 +638,9 @@ static struct clk_lookup lookups[] = { | |||
638 | _REGISTER_CLOCK("mxc-mmc.0", NULL, sdhc1_clk) | 638 | _REGISTER_CLOCK("mxc-mmc.0", NULL, sdhc1_clk) |
639 | _REGISTER_CLOCK("mxc-mmc.1", NULL, sdhc2_clk) | 639 | _REGISTER_CLOCK("mxc-mmc.1", NULL, sdhc2_clk) |
640 | _REGISTER_CLOCK("mxc-mmc.2", NULL, sdhc3_clk) | 640 | _REGISTER_CLOCK("mxc-mmc.2", NULL, sdhc3_clk) |
641 | _REGISTER_CLOCK(NULL, "cspi1", cspi1_clk) | 641 | _REGISTER_CLOCK("spi_imx.0", NULL, cspi1_clk) |
642 | _REGISTER_CLOCK(NULL, "cspi2", cspi2_clk) | 642 | _REGISTER_CLOCK("spi_imx.1", NULL, cspi2_clk) |
643 | _REGISTER_CLOCK(NULL, "cspi3", cspi3_clk) | 643 | _REGISTER_CLOCK("spi_imx.2", NULL, cspi3_clk) |
644 | _REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk) | 644 | _REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk) |
645 | _REGISTER_CLOCK(NULL, "csi", csi_clk) | 645 | _REGISTER_CLOCK(NULL, "csi", csi_clk) |
646 | _REGISTER_CLOCK("fsl-usb2-udc", "usb", usb_clk) | 646 | _REGISTER_CLOCK("fsl-usb2-udc", "usb", usb_clk) |
@@ -665,7 +665,7 @@ static struct clk_lookup lookups[] = { | |||
665 | _REGISTER_CLOCK(NULL, "sahara2", sahara2_clk) | 665 | _REGISTER_CLOCK(NULL, "sahara2", sahara2_clk) |
666 | _REGISTER_CLOCK(NULL, "ata", ata_clk) | 666 | _REGISTER_CLOCK(NULL, "ata", ata_clk) |
667 | _REGISTER_CLOCK(NULL, "mstick", mstick_clk) | 667 | _REGISTER_CLOCK(NULL, "mstick", mstick_clk) |
668 | _REGISTER_CLOCK(NULL, "wdog", wdog_clk) | 668 | _REGISTER_CLOCK("imx-wdt.0", NULL, wdog_clk) |
669 | _REGISTER_CLOCK(NULL, "gpio", gpio_clk) | 669 | _REGISTER_CLOCK(NULL, "gpio", gpio_clk) |
670 | _REGISTER_CLOCK("imx-i2c.0", NULL, i2c1_clk) | 670 | _REGISTER_CLOCK("imx-i2c.0", NULL, i2c1_clk) |
671 | _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk) | 671 | _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk) |
diff --git a/arch/arm/mach-mx2/pcm038.c b/arch/arm/mach-mx2/pcm038.c index ee65dda584cf..906d59b0a7aa 100644 --- a/arch/arm/mach-mx2/pcm038.c +++ b/arch/arm/mach-mx2/pcm038.c | |||
@@ -23,6 +23,10 @@ | |||
23 | #include <linux/mtd/plat-ram.h> | 23 | #include <linux/mtd/plat-ram.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/regulator/machine.h> | ||
27 | #include <linux/mfd/mc13783.h> | ||
28 | #include <linux/spi/spi.h> | ||
29 | #include <linux/irq.h> | ||
26 | 30 | ||
27 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
28 | #include <asm/mach/arch.h> | 32 | #include <asm/mach/arch.h> |
@@ -35,6 +39,7 @@ | |||
35 | #include <mach/iomux.h> | 39 | #include <mach/iomux.h> |
36 | #include <mach/imx-uart.h> | 40 | #include <mach/imx-uart.h> |
37 | #include <mach/mxc_nand.h> | 41 | #include <mach/mxc_nand.h> |
42 | #include <mach/spi.h> | ||
38 | 43 | ||
39 | #include "devices.h" | 44 | #include "devices.h" |
40 | 45 | ||
@@ -78,8 +83,6 @@ static int pcm038_pins[] = { | |||
78 | PC6_PF_I2C2_SCL, | 83 | PC6_PF_I2C2_SCL, |
79 | /* SPI1 */ | 84 | /* SPI1 */ |
80 | PD25_PF_CSPI1_RDY, | 85 | PD25_PF_CSPI1_RDY, |
81 | PD27_PF_CSPI1_SS1, | ||
82 | PD28_PF_CSPI1_SS0, | ||
83 | PD29_PF_CSPI1_SCLK, | 86 | PD29_PF_CSPI1_SCLK, |
84 | PD30_PF_CSPI1_MISO, | 87 | PD30_PF_CSPI1_MISO, |
85 | PD31_PF_CSPI1_MOSI, | 88 | PD31_PF_CSPI1_MOSI, |
@@ -196,6 +199,86 @@ static struct i2c_board_info pcm038_i2c_devices[] = { | |||
196 | } | 199 | } |
197 | }; | 200 | }; |
198 | 201 | ||
202 | static int pcm038_spi_cs[] = {GPIO_PORTD + 28}; | ||
203 | |||
204 | static struct spi_imx_master pcm038_spi_0_data = { | ||
205 | .chipselect = pcm038_spi_cs, | ||
206 | .num_chipselect = ARRAY_SIZE(pcm038_spi_cs), | ||
207 | }; | ||
208 | |||
209 | static struct regulator_consumer_supply sdhc1_consumers[] = { | ||
210 | { | ||
211 | .dev = &mxc_sdhc_device1.dev, | ||
212 | .supply = "sdhc_vcc", | ||
213 | }, | ||
214 | }; | ||
215 | |||
216 | static struct regulator_init_data sdhc1_data = { | ||
217 | .constraints = { | ||
218 | .min_uV = 3000000, | ||
219 | .max_uV = 3400000, | ||
220 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | | ||
221 | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, | ||
222 | .valid_modes_mask = REGULATOR_MODE_NORMAL | | ||
223 | REGULATOR_MODE_FAST, | ||
224 | .always_on = 0, | ||
225 | .boot_on = 0, | ||
226 | }, | ||
227 | .num_consumer_supplies = ARRAY_SIZE(sdhc1_consumers), | ||
228 | .consumer_supplies = sdhc1_consumers, | ||
229 | }; | ||
230 | |||
231 | static struct regulator_consumer_supply cam_consumers[] = { | ||
232 | { | ||
233 | .dev = NULL, | ||
234 | .supply = "imx_cam_vcc", | ||
235 | }, | ||
236 | }; | ||
237 | |||
238 | static struct regulator_init_data cam_data = { | ||
239 | .constraints = { | ||
240 | .min_uV = 3000000, | ||
241 | .max_uV = 3400000, | ||
242 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | | ||
243 | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, | ||
244 | .valid_modes_mask = REGULATOR_MODE_NORMAL | | ||
245 | REGULATOR_MODE_FAST, | ||
246 | .always_on = 0, | ||
247 | .boot_on = 0, | ||
248 | }, | ||
249 | .num_consumer_supplies = ARRAY_SIZE(cam_consumers), | ||
250 | .consumer_supplies = cam_consumers, | ||
251 | }; | ||
252 | |||
253 | struct mc13783_regulator_init_data pcm038_regulators[] = { | ||
254 | { | ||
255 | .id = MC13783_REGU_VCAM, | ||
256 | .init_data = &cam_data, | ||
257 | }, { | ||
258 | .id = MC13783_REGU_VMMC1, | ||
259 | .init_data = &sdhc1_data, | ||
260 | }, | ||
261 | }; | ||
262 | |||
263 | static struct mc13783_platform_data pcm038_pmic = { | ||
264 | .regulators = pcm038_regulators, | ||
265 | .num_regulators = ARRAY_SIZE(pcm038_regulators), | ||
266 | .flags = MC13783_USE_ADC | MC13783_USE_REGULATOR | | ||
267 | MC13783_USE_TOUCHSCREEN, | ||
268 | }; | ||
269 | |||
270 | static struct spi_board_info pcm038_spi_board_info[] __initdata = { | ||
271 | { | ||
272 | .modalias = "mc13783", | ||
273 | .irq = IRQ_GPIOB(23), | ||
274 | .max_speed_hz = 300000, | ||
275 | .bus_num = 0, | ||
276 | .chip_select = 0, | ||
277 | .platform_data = &pcm038_pmic, | ||
278 | .mode = SPI_CS_HIGH, | ||
279 | } | ||
280 | }; | ||
281 | |||
199 | static void __init pcm038_init(void) | 282 | static void __init pcm038_init(void) |
200 | { | 283 | { |
201 | mxc_gpio_setup_multiple_pins(pcm038_pins, ARRAY_SIZE(pcm038_pins), | 284 | mxc_gpio_setup_multiple_pins(pcm038_pins, ARRAY_SIZE(pcm038_pins), |
@@ -219,6 +302,15 @@ static void __init pcm038_init(void) | |||
219 | /* PE18 for user-LED D40 */ | 302 | /* PE18 for user-LED D40 */ |
220 | mxc_gpio_mode(GPIO_PORTE | 18 | GPIO_GPIO | GPIO_OUT); | 303 | mxc_gpio_mode(GPIO_PORTE | 18 | GPIO_GPIO | GPIO_OUT); |
221 | 304 | ||
305 | mxc_gpio_mode(GPIO_PORTD | 28 | GPIO_GPIO | GPIO_OUT); | ||
306 | |||
307 | /* MC13783 IRQ */ | ||
308 | mxc_gpio_mode(GPIO_PORTB | 23 | GPIO_GPIO | GPIO_IN); | ||
309 | |||
310 | mxc_register_device(&mxc_spi_device0, &pcm038_spi_0_data); | ||
311 | spi_register_board_info(pcm038_spi_board_info, | ||
312 | ARRAY_SIZE(pcm038_spi_board_info)); | ||
313 | |||
222 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 314 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); |
223 | 315 | ||
224 | #ifdef CONFIG_MACH_PCM970_BASEBOARD | 316 | #ifdef CONFIG_MACH_PCM970_BASEBOARD |
diff --git a/arch/arm/mach-mx2/pcm970-baseboard.c b/arch/arm/mach-mx2/pcm970-baseboard.c index c261f59b0b4c..3cb7f457e5d0 100644 --- a/arch/arm/mach-mx2/pcm970-baseboard.c +++ b/arch/arm/mach-mx2/pcm970-baseboard.c | |||
@@ -39,7 +39,6 @@ static int pcm970_pins[] = { | |||
39 | PB7_PF_SD2_D3, | 39 | PB7_PF_SD2_D3, |
40 | PB8_PF_SD2_CMD, | 40 | PB8_PF_SD2_CMD, |
41 | PB9_PF_SD2_CLK, | 41 | PB9_PF_SD2_CLK, |
42 | GPIO_PORTC | 28 | GPIO_GPIO | GPIO_IN, /* card detect */ | ||
43 | /* display */ | 42 | /* display */ |
44 | PA5_PF_LSCLK, | 43 | PA5_PF_LSCLK, |
45 | PA6_PF_LD0, | 44 | PA6_PF_LD0, |
@@ -228,6 +227,7 @@ void __init pcm970_baseboard_init(void) | |||
228 | "PCM970"); | 227 | "PCM970"); |
229 | 228 | ||
230 | mxc_register_device(&mxc_fb_device, &pcm038_fb_data); | 229 | mxc_register_device(&mxc_fb_device, &pcm038_fb_data); |
230 | mxc_gpio_mode(GPIO_PORTC | 28 | GPIO_GPIO | GPIO_IN); | ||
231 | mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata); | 231 | mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata); |
232 | platform_device_register(&pcm970_sja1000); | 232 | platform_device_register(&pcm970_sja1000); |
233 | } | 233 | } |
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c index eb12de1da42d..63511de3a559 100644 --- a/arch/arm/mach-mx25/devices.c +++ b/arch/arm/mach-mx25/devices.c | |||
@@ -1,4 +1,23 @@ | |||
1 | /* | ||
2 | * Copyright 2009 Sascha Hauer, <kernel@pengutronix.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
16 | * Boston, MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
1 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/dma-mapping.h> | ||
2 | #include <linux/gpio.h> | 21 | #include <linux/gpio.h> |
3 | #include <mach/mx25.h> | 22 | #include <mach/mx25.h> |
4 | #include <mach/irqs.h> | 23 | #include <mach/irqs.h> |
diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c index 92aa4fd19d99..d23ae571c03f 100644 --- a/arch/arm/mach-mx25/mx25pdk.c +++ b/arch/arm/mach-mx25/mx25pdk.c | |||
@@ -1,3 +1,21 @@ | |||
1 | /* | ||
2 | * Copyright 2009 Sascha Hauer, <kernel@pengutronix.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
16 | * Boston, MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
1 | #include <linux/types.h> | 19 | #include <linux/types.h> |
2 | #include <linux/init.h> | 20 | #include <linux/init.h> |
3 | #include <linux/clk.h> | 21 | #include <linux/clk.h> |
@@ -23,19 +41,12 @@ static struct imxuart_platform_data uart_pdata = { | |||
23 | .flags = IMXUART_HAVE_RTSCTS, | 41 | .flags = IMXUART_HAVE_RTSCTS, |
24 | }; | 42 | }; |
25 | 43 | ||
26 | static struct mxc_nand_platform_data nand_board_info = { | ||
27 | .width = 1, | ||
28 | .hw_ecc = 1, | ||
29 | }; | ||
30 | |||
31 | static void __init mx25pdk_init(void) | 44 | static void __init mx25pdk_init(void) |
32 | { | 45 | { |
33 | mxc_register_device(&mxc_uart_device0, &uart_pdata); | 46 | mxc_register_device(&mxc_uart_device0, &uart_pdata); |
34 | mxc_register_device(&mxc_usbh2, NULL); | 47 | mxc_register_device(&mxc_usbh2, NULL); |
35 | mxc_register_device(&mxc_nand_device, &nand_board_info); | ||
36 | } | 48 | } |
37 | 49 | ||
38 | |||
39 | static void __init mx25pdk_timer_init(void) | 50 | static void __init mx25pdk_timer_init(void) |
40 | { | 51 | { |
41 | mx25_clocks_init(26000000); | 52 | mx25_clocks_init(26000000); |
diff --git a/arch/arm/mach-mx3/clock-imx35.c b/arch/arm/mach-mx3/clock-imx35.c index fe5c4217322e..c595260ec1f9 100644 --- a/arch/arm/mach-mx3/clock-imx35.c +++ b/arch/arm/mach-mx3/clock-imx35.c | |||
@@ -443,7 +443,7 @@ static struct clk_lookup lookups[] = { | |||
443 | _REGISTER_CLOCK("mxc-ehci.1", "usb", usbotg_clk) | 443 | _REGISTER_CLOCK("mxc-ehci.1", "usb", usbotg_clk) |
444 | _REGISTER_CLOCK("mxc-ehci.2", "usb", usbotg_clk) | 444 | _REGISTER_CLOCK("mxc-ehci.2", "usb", usbotg_clk) |
445 | _REGISTER_CLOCK("fsl-usb2-udc", "usb", usbotg_clk) | 445 | _REGISTER_CLOCK("fsl-usb2-udc", "usb", usbotg_clk) |
446 | _REGISTER_CLOCK("mxc_wdt.0", NULL, wdog_clk) | 446 | _REGISTER_CLOCK("imx-wdt.0", NULL, wdog_clk) |
447 | _REGISTER_CLOCK(NULL, "max", max_clk) | 447 | _REGISTER_CLOCK(NULL, "max", max_clk) |
448 | _REGISTER_CLOCK(NULL, "admux", admux_clk) | 448 | _REGISTER_CLOCK(NULL, "admux", admux_clk) |
449 | _REGISTER_CLOCK(NULL, "csi", csi_clk) | 449 | _REGISTER_CLOCK(NULL, "csi", csi_clk) |
diff --git a/arch/arm/mach-mx3/clock.c b/arch/arm/mach-mx3/clock.c index 06bd6180bfc3..b2a3bcf8266e 100644 --- a/arch/arm/mach-mx3/clock.c +++ b/arch/arm/mach-mx3/clock.c | |||
@@ -530,7 +530,7 @@ static struct clk_lookup lookups[] = { | |||
530 | _REGISTER_CLOCK("spi_imx.2", NULL, cspi3_clk) | 530 | _REGISTER_CLOCK("spi_imx.2", NULL, cspi3_clk) |
531 | _REGISTER_CLOCK(NULL, "gpt", gpt_clk) | 531 | _REGISTER_CLOCK(NULL, "gpt", gpt_clk) |
532 | _REGISTER_CLOCK(NULL, "pwm", pwm_clk) | 532 | _REGISTER_CLOCK(NULL, "pwm", pwm_clk) |
533 | _REGISTER_CLOCK(NULL, "wdog", wdog_clk) | 533 | _REGISTER_CLOCK("imx-wdt.0", NULL, wdog_clk) |
534 | _REGISTER_CLOCK(NULL, "rtc", rtc_clk) | 534 | _REGISTER_CLOCK(NULL, "rtc", rtc_clk) |
535 | _REGISTER_CLOCK(NULL, "epit", epit1_clk) | 535 | _REGISTER_CLOCK(NULL, "epit", epit1_clk) |
536 | _REGISTER_CLOCK(NULL, "epit", epit2_clk) | 536 | _REGISTER_CLOCK(NULL, "epit", epit2_clk) |
diff --git a/arch/arm/mach-mx3/devices.c b/arch/arm/mach-mx3/devices.c index 8a577f367250..e6abe181b967 100644 --- a/arch/arm/mach-mx3/devices.c +++ b/arch/arm/mach-mx3/devices.c | |||
@@ -459,7 +459,7 @@ struct platform_device mxc_usbh2 = { | |||
459 | * SPI master controller | 459 | * SPI master controller |
460 | * 3 channels | 460 | * 3 channels |
461 | */ | 461 | */ |
462 | static struct resource imx_spi_0_resources[] = { | 462 | static struct resource mxc_spi_0_resources[] = { |
463 | { | 463 | { |
464 | .start = CSPI1_BASE_ADDR, | 464 | .start = CSPI1_BASE_ADDR, |
465 | .end = CSPI1_BASE_ADDR + SZ_4K - 1, | 465 | .end = CSPI1_BASE_ADDR + SZ_4K - 1, |
@@ -471,7 +471,7 @@ static struct resource imx_spi_0_resources[] = { | |||
471 | }, | 471 | }, |
472 | }; | 472 | }; |
473 | 473 | ||
474 | static struct resource imx_spi_1_resources[] = { | 474 | static struct resource mxc_spi_1_resources[] = { |
475 | { | 475 | { |
476 | .start = CSPI2_BASE_ADDR, | 476 | .start = CSPI2_BASE_ADDR, |
477 | .end = CSPI2_BASE_ADDR + SZ_4K - 1, | 477 | .end = CSPI2_BASE_ADDR + SZ_4K - 1, |
@@ -483,7 +483,7 @@ static struct resource imx_spi_1_resources[] = { | |||
483 | }, | 483 | }, |
484 | }; | 484 | }; |
485 | 485 | ||
486 | static struct resource imx_spi_2_resources[] = { | 486 | static struct resource mxc_spi_2_resources[] = { |
487 | { | 487 | { |
488 | .start = CSPI3_BASE_ADDR, | 488 | .start = CSPI3_BASE_ADDR, |
489 | .end = CSPI3_BASE_ADDR + SZ_4K - 1, | 489 | .end = CSPI3_BASE_ADDR + SZ_4K - 1, |
@@ -495,25 +495,25 @@ static struct resource imx_spi_2_resources[] = { | |||
495 | }, | 495 | }, |
496 | }; | 496 | }; |
497 | 497 | ||
498 | struct platform_device imx_spi_device0 = { | 498 | struct platform_device mxc_spi_device0 = { |
499 | .name = "spi_imx", | 499 | .name = "spi_imx", |
500 | .id = 0, | 500 | .id = 0, |
501 | .num_resources = ARRAY_SIZE(imx_spi_0_resources), | 501 | .num_resources = ARRAY_SIZE(mxc_spi_0_resources), |
502 | .resource = imx_spi_0_resources, | 502 | .resource = mxc_spi_0_resources, |
503 | }; | 503 | }; |
504 | 504 | ||
505 | struct platform_device imx_spi_device1 = { | 505 | struct platform_device mxc_spi_device1 = { |
506 | .name = "spi_imx", | 506 | .name = "spi_imx", |
507 | .id = 1, | 507 | .id = 1, |
508 | .num_resources = ARRAY_SIZE(imx_spi_1_resources), | 508 | .num_resources = ARRAY_SIZE(mxc_spi_1_resources), |
509 | .resource = imx_spi_1_resources, | 509 | .resource = mxc_spi_1_resources, |
510 | }; | 510 | }; |
511 | 511 | ||
512 | struct platform_device imx_spi_device2 = { | 512 | struct platform_device mxc_spi_device2 = { |
513 | .name = "spi_imx", | 513 | .name = "spi_imx", |
514 | .id = 2, | 514 | .id = 2, |
515 | .num_resources = ARRAY_SIZE(imx_spi_2_resources), | 515 | .num_resources = ARRAY_SIZE(mxc_spi_2_resources), |
516 | .resource = imx_spi_2_resources, | 516 | .resource = mxc_spi_2_resources, |
517 | }; | 517 | }; |
518 | 518 | ||
519 | #ifdef CONFIG_ARCH_MX35 | 519 | #ifdef CONFIG_ARCH_MX35 |
diff --git a/arch/arm/mach-mx3/devices.h b/arch/arm/mach-mx3/devices.h index 79f2be45d139..ab87419dc9a0 100644 --- a/arch/arm/mach-mx3/devices.h +++ b/arch/arm/mach-mx3/devices.h | |||
@@ -20,7 +20,7 @@ extern struct platform_device mxc_otg_host; | |||
20 | extern struct platform_device mxc_usbh1; | 20 | extern struct platform_device mxc_usbh1; |
21 | extern struct platform_device mxc_usbh2; | 21 | extern struct platform_device mxc_usbh2; |
22 | extern struct platform_device mxc_rnga_device; | 22 | extern struct platform_device mxc_rnga_device; |
23 | extern struct platform_device imx_spi_device0; | 23 | extern struct platform_device mxc_spi_device0; |
24 | extern struct platform_device imx_spi_device1; | 24 | extern struct platform_device mxc_spi_device1; |
25 | extern struct platform_device imx_spi_device2; | 25 | extern struct platform_device mxc_spi_device2; |
26 | 26 | ||
diff --git a/arch/arm/mach-mx3/mm.c b/arch/arm/mach-mx3/mm.c index ad5a1122d765..bedf5b8d976a 100644 --- a/arch/arm/mach-mx3/mm.c +++ b/arch/arm/mach-mx3/mm.c | |||
@@ -81,6 +81,7 @@ void __init mx31_map_io(void) | |||
81 | iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc)); | 81 | iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc)); |
82 | } | 82 | } |
83 | 83 | ||
84 | #ifdef CONFIG_ARCH_MX35 | ||
84 | void __init mx35_map_io(void) | 85 | void __init mx35_map_io(void) |
85 | { | 86 | { |
86 | mxc_set_cpu_type(MXC_CPU_MX35); | 87 | mxc_set_cpu_type(MXC_CPU_MX35); |
@@ -89,6 +90,7 @@ void __init mx35_map_io(void) | |||
89 | 90 | ||
90 | iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc)); | 91 | iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc)); |
91 | } | 92 | } |
93 | #endif | ||
92 | 94 | ||
93 | void __init mx31_init_irq(void) | 95 | void __init mx31_init_irq(void) |
94 | { | 96 | { |
diff --git a/arch/arm/mach-nomadik/Kconfig b/arch/arm/mach-nomadik/Kconfig index 2a02b49c40f0..3c5e0f522e9c 100644 --- a/arch/arm/mach-nomadik/Kconfig +++ b/arch/arm/mach-nomadik/Kconfig | |||
@@ -5,13 +5,13 @@ menu "Nomadik boards" | |||
5 | config MACH_NOMADIK_8815NHK | 5 | config MACH_NOMADIK_8815NHK |
6 | bool "ST 8815 Nomadik Hardware Kit (evaluation board)" | 6 | bool "ST 8815 Nomadik Hardware Kit (evaluation board)" |
7 | select NOMADIK_8815 | 7 | select NOMADIK_8815 |
8 | select HAS_MTU | ||
8 | 9 | ||
9 | endmenu | 10 | endmenu |
10 | 11 | ||
11 | config NOMADIK_8815 | 12 | config NOMADIK_8815 |
12 | bool | 13 | bool |
13 | 14 | ||
14 | |||
15 | config I2C_BITBANG_8815NHK | 15 | config I2C_BITBANG_8815NHK |
16 | tristate "Driver for bit-bang busses found on the 8815 NHK" | 16 | tristate "Driver for bit-bang busses found on the 8815 NHK" |
17 | depends on I2C && MACH_NOMADIK_8815NHK | 17 | depends on I2C && MACH_NOMADIK_8815NHK |
diff --git a/arch/arm/mach-nomadik/Makefile b/arch/arm/mach-nomadik/Makefile index 412040982a40..36f67fb207d2 100644 --- a/arch/arm/mach-nomadik/Makefile +++ b/arch/arm/mach-nomadik/Makefile | |||
@@ -7,7 +7,7 @@ | |||
7 | 7 | ||
8 | # Object file lists. | 8 | # Object file lists. |
9 | 9 | ||
10 | obj-y += clock.o timer.o gpio.o | 10 | obj-y += clock.o gpio.o |
11 | 11 | ||
12 | # Cpu revision | 12 | # Cpu revision |
13 | obj-$(CONFIG_NOMADIK_8815) += cpu-8815.o | 13 | obj-$(CONFIG_NOMADIK_8815) += cpu-8815.o |
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c index 6bfd537d5afb..116394484e71 100644 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c | |||
@@ -25,11 +25,18 @@ | |||
25 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/irq.h> | 26 | #include <asm/mach/irq.h> |
27 | #include <asm/mach/flash.h> | 27 | #include <asm/mach/flash.h> |
28 | |||
29 | #include <plat/mtu.h> | ||
30 | |||
28 | #include <mach/setup.h> | 31 | #include <mach/setup.h> |
29 | #include <mach/nand.h> | 32 | #include <mach/nand.h> |
30 | #include <mach/fsmc.h> | 33 | #include <mach/fsmc.h> |
31 | #include "clock.h" | 34 | #include "clock.h" |
32 | 35 | ||
36 | /* Initial value for SRC control register: all timers use MXTAL/8 source */ | ||
37 | #define SRC_CR_INIT_MASK 0x00007fff | ||
38 | #define SRC_CR_INIT_VAL 0x2aaa8000 | ||
39 | |||
33 | /* These adresses span 16MB, so use three individual pages */ | 40 | /* These adresses span 16MB, so use three individual pages */ |
34 | static struct resource nhk8815_nand_resources[] = { | 41 | static struct resource nhk8815_nand_resources[] = { |
35 | { | 42 | { |
@@ -239,6 +246,26 @@ static struct platform_device *nhk8815_platform_devices[] __initdata = { | |||
239 | /* will add more devices */ | 246 | /* will add more devices */ |
240 | }; | 247 | }; |
241 | 248 | ||
249 | static void __init nomadik_timer_init(void) | ||
250 | { | ||
251 | u32 src_cr; | ||
252 | |||
253 | /* Configure timer sources in "system reset controller" ctrl reg */ | ||
254 | src_cr = readl(io_p2v(NOMADIK_SRC_BASE)); | ||
255 | src_cr &= SRC_CR_INIT_MASK; | ||
256 | src_cr |= SRC_CR_INIT_VAL; | ||
257 | writel(src_cr, io_p2v(NOMADIK_SRC_BASE)); | ||
258 | |||
259 | /* Save global pointer to mtu, used by platform timer code */ | ||
260 | mtu_base = io_p2v(NOMADIK_MTU0_BASE); | ||
261 | |||
262 | nmdk_timer_init(); | ||
263 | } | ||
264 | |||
265 | static struct sys_timer nomadik_timer = { | ||
266 | .init = nomadik_timer_init, | ||
267 | }; | ||
268 | |||
242 | static void __init nhk8815_platform_init(void) | 269 | static void __init nhk8815_platform_init(void) |
243 | { | 270 | { |
244 | int i; | 271 | int i; |
diff --git a/arch/arm/mach-nomadik/include/mach/setup.h b/arch/arm/mach-nomadik/include/mach/setup.h index a4e468cf63da..b7897edf1f35 100644 --- a/arch/arm/mach-nomadik/include/mach/setup.h +++ b/arch/arm/mach-nomadik/include/mach/setup.h | |||
@@ -15,7 +15,7 @@ | |||
15 | extern void cpu8815_map_io(void); | 15 | extern void cpu8815_map_io(void); |
16 | extern void cpu8815_platform_init(void); | 16 | extern void cpu8815_platform_init(void); |
17 | extern void cpu8815_init_irq(void); | 17 | extern void cpu8815_init_irq(void); |
18 | extern struct sys_timer nomadik_timer; | 18 | extern void nmdk_timer_init(void); |
19 | 19 | ||
20 | #endif /* NOMADIK_8815 */ | 20 | #endif /* NOMADIK_8815 */ |
21 | 21 | ||
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index 42920f9c1a11..8ad5cc3e83e3 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c | |||
@@ -219,6 +219,10 @@ static struct platform_device *ams_delta_devices[] __initdata = { | |||
219 | 219 | ||
220 | static void __init ams_delta_init(void) | 220 | static void __init ams_delta_init(void) |
221 | { | 221 | { |
222 | /* mux pins for uarts */ | ||
223 | omap_cfg_reg(UART1_TX); | ||
224 | omap_cfg_reg(UART1_RTS); | ||
225 | |||
222 | iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc)); | 226 | iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc)); |
223 | 227 | ||
224 | omap_board_config = ams_delta_config; | 228 | omap_board_config = ams_delta_config; |
@@ -231,6 +235,8 @@ static void __init ams_delta_init(void) | |||
231 | 235 | ||
232 | omap_usb_init(&ams_delta_usb_config); | 236 | omap_usb_init(&ams_delta_usb_config); |
233 | platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices)); | 237 | platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices)); |
238 | |||
239 | omap_writew(omap_readw(ARM_RSTCT1) | 0x0004, ARM_RSTCT1); | ||
234 | } | 240 | } |
235 | 241 | ||
236 | static struct plat_serial8250_port ams_delta_modem_ports[] = { | 242 | static struct plat_serial8250_port ams_delta_modem_ports[] = { |
diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c index fb47239da72f..6c8a41f20e51 100644 --- a/arch/arm/mach-omap1/board-generic.c +++ b/arch/arm/mach-omap1/board-generic.c | |||
@@ -64,6 +64,14 @@ static void __init omap_generic_init(void) | |||
64 | { | 64 | { |
65 | #ifdef CONFIG_ARCH_OMAP15XX | 65 | #ifdef CONFIG_ARCH_OMAP15XX |
66 | if (cpu_is_omap15xx()) { | 66 | if (cpu_is_omap15xx()) { |
67 | /* mux pins for uarts */ | ||
68 | omap_cfg_reg(UART1_TX); | ||
69 | omap_cfg_reg(UART1_RTS); | ||
70 | omap_cfg_reg(UART2_TX); | ||
71 | omap_cfg_reg(UART2_RTS); | ||
72 | omap_cfg_reg(UART3_TX); | ||
73 | omap_cfg_reg(UART3_RX); | ||
74 | |||
67 | omap_usb_init(&generic1510_usb_config); | 75 | omap_usb_init(&generic1510_usb_config); |
68 | } | 76 | } |
69 | #endif | 77 | #endif |
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c index cc2abbb2d0f4..cd6c39514826 100644 --- a/arch/arm/mach-omap1/board-innovator.c +++ b/arch/arm/mach-omap1/board-innovator.c | |||
@@ -376,6 +376,26 @@ static void __init innovator_init(void) | |||
376 | { | 376 | { |
377 | #ifdef CONFIG_ARCH_OMAP15XX | 377 | #ifdef CONFIG_ARCH_OMAP15XX |
378 | if (cpu_is_omap1510()) { | 378 | if (cpu_is_omap1510()) { |
379 | unsigned char reg; | ||
380 | |||
381 | /* mux pins for uarts */ | ||
382 | omap_cfg_reg(UART1_TX); | ||
383 | omap_cfg_reg(UART1_RTS); | ||
384 | omap_cfg_reg(UART2_TX); | ||
385 | omap_cfg_reg(UART2_RTS); | ||
386 | omap_cfg_reg(UART3_TX); | ||
387 | omap_cfg_reg(UART3_RX); | ||
388 | |||
389 | reg = fpga_read(OMAP1510_FPGA_POWER); | ||
390 | reg |= OMAP1510_FPGA_PCR_COM1_EN; | ||
391 | fpga_write(reg, OMAP1510_FPGA_POWER); | ||
392 | udelay(10); | ||
393 | |||
394 | reg = fpga_read(OMAP1510_FPGA_POWER); | ||
395 | reg |= OMAP1510_FPGA_PCR_COM2_EN; | ||
396 | fpga_write(reg, OMAP1510_FPGA_POWER); | ||
397 | udelay(10); | ||
398 | |||
379 | platform_add_devices(innovator1510_devices, ARRAY_SIZE(innovator1510_devices)); | 399 | platform_add_devices(innovator1510_devices, ARRAY_SIZE(innovator1510_devices)); |
380 | spi_register_board_info(innovator1510_boardinfo, | 400 | spi_register_board_info(innovator1510_boardinfo, |
381 | ARRAY_SIZE(innovator1510_boardinfo)); | 401 | ARRAY_SIZE(innovator1510_boardinfo)); |
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 90dd0431b0dc..4de258420f39 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c | |||
@@ -342,6 +342,14 @@ static void __init palmte_misc_gpio_setup(void) | |||
342 | 342 | ||
343 | static void __init omap_palmte_init(void) | 343 | static void __init omap_palmte_init(void) |
344 | { | 344 | { |
345 | /* mux pins for uarts */ | ||
346 | omap_cfg_reg(UART1_TX); | ||
347 | omap_cfg_reg(UART1_RTS); | ||
348 | omap_cfg_reg(UART2_TX); | ||
349 | omap_cfg_reg(UART2_RTS); | ||
350 | omap_cfg_reg(UART3_TX); | ||
351 | omap_cfg_reg(UART3_RX); | ||
352 | |||
345 | omap_board_config = palmte_config; | 353 | omap_board_config = palmte_config; |
346 | omap_board_config_size = ARRAY_SIZE(palmte_config); | 354 | omap_board_config_size = ARRAY_SIZE(palmte_config); |
347 | 355 | ||
diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c index 8256139891ff..d972cf941b76 100644 --- a/arch/arm/mach-omap1/board-palmtt.c +++ b/arch/arm/mach-omap1/board-palmtt.c | |||
@@ -289,6 +289,14 @@ static void __init omap_mpu_wdt_mode(int mode) { | |||
289 | 289 | ||
290 | static void __init omap_palmtt_init(void) | 290 | static void __init omap_palmtt_init(void) |
291 | { | 291 | { |
292 | /* mux pins for uarts */ | ||
293 | omap_cfg_reg(UART1_TX); | ||
294 | omap_cfg_reg(UART1_RTS); | ||
295 | omap_cfg_reg(UART2_TX); | ||
296 | omap_cfg_reg(UART2_RTS); | ||
297 | omap_cfg_reg(UART3_TX); | ||
298 | omap_cfg_reg(UART3_RX); | ||
299 | |||
292 | omap_mpu_wdt_mode(0); | 300 | omap_mpu_wdt_mode(0); |
293 | 301 | ||
294 | omap_board_config = palmtt_config; | 302 | omap_board_config = palmtt_config; |
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c index 81b6bde1c5a3..986bd4df0e97 100644 --- a/arch/arm/mach-omap1/board-palmz71.c +++ b/arch/arm/mach-omap1/board-palmz71.c | |||
@@ -307,6 +307,14 @@ palmz71_gpio_setup(int early) | |||
307 | static void __init | 307 | static void __init |
308 | omap_palmz71_init(void) | 308 | omap_palmz71_init(void) |
309 | { | 309 | { |
310 | /* mux pins for uarts */ | ||
311 | omap_cfg_reg(UART1_TX); | ||
312 | omap_cfg_reg(UART1_RTS); | ||
313 | omap_cfg_reg(UART2_TX); | ||
314 | omap_cfg_reg(UART2_RTS); | ||
315 | omap_cfg_reg(UART3_TX); | ||
316 | omap_cfg_reg(UART3_RX); | ||
317 | |||
310 | palmz71_gpio_setup(1); | 318 | palmz71_gpio_setup(1); |
311 | omap_mpu_wdt_mode(0); | 319 | omap_mpu_wdt_mode(0); |
312 | 320 | ||
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c index 02c85ca2e1df..056ae64e0f55 100644 --- a/arch/arm/mach-omap1/board-sx1.c +++ b/arch/arm/mach-omap1/board-sx1.c | |||
@@ -377,6 +377,14 @@ static struct omap_board_config_kernel sx1_config[] __initdata = { | |||
377 | 377 | ||
378 | static void __init omap_sx1_init(void) | 378 | static void __init omap_sx1_init(void) |
379 | { | 379 | { |
380 | /* mux pins for uarts */ | ||
381 | omap_cfg_reg(UART1_TX); | ||
382 | omap_cfg_reg(UART1_RTS); | ||
383 | omap_cfg_reg(UART2_TX); | ||
384 | omap_cfg_reg(UART2_RTS); | ||
385 | omap_cfg_reg(UART3_TX); | ||
386 | omap_cfg_reg(UART3_RX); | ||
387 | |||
380 | platform_add_devices(sx1_devices, ARRAY_SIZE(sx1_devices)); | 388 | platform_add_devices(sx1_devices, ARRAY_SIZE(sx1_devices)); |
381 | 389 | ||
382 | omap_board_config = sx1_config; | 390 | omap_board_config = sx1_config; |
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c index c06e7a553472..07b07522d5bf 100644 --- a/arch/arm/mach-omap1/board-voiceblue.c +++ b/arch/arm/mach-omap1/board-voiceblue.c | |||
@@ -152,6 +152,14 @@ static void __init voiceblue_init_irq(void) | |||
152 | 152 | ||
153 | static void __init voiceblue_init(void) | 153 | static void __init voiceblue_init(void) |
154 | { | 154 | { |
155 | /* mux pins for uarts */ | ||
156 | omap_cfg_reg(UART1_TX); | ||
157 | omap_cfg_reg(UART1_RTS); | ||
158 | omap_cfg_reg(UART2_TX); | ||
159 | omap_cfg_reg(UART2_RTS); | ||
160 | omap_cfg_reg(UART3_TX); | ||
161 | omap_cfg_reg(UART3_RX); | ||
162 | |||
155 | /* Watchdog */ | 163 | /* Watchdog */ |
156 | gpio_request(0, "Watchdog"); | 164 | gpio_request(0, "Watchdog"); |
157 | /* smc91x reset */ | 165 | /* smc91x reset */ |
diff --git a/arch/arm/mach-omap1/serial.c b/arch/arm/mach-omap1/serial.c index d496e50fec40..d23979bc0fd5 100644 --- a/arch/arm/mach-omap1/serial.c +++ b/arch/arm/mach-omap1/serial.c | |||
@@ -131,8 +131,6 @@ void __init omap_serial_init(void) | |||
131 | } | 131 | } |
132 | 132 | ||
133 | for (i = 0; i < OMAP_MAX_NR_PORTS; i++) { | 133 | for (i = 0; i < OMAP_MAX_NR_PORTS; i++) { |
134 | unsigned char reg; | ||
135 | |||
136 | switch (i) { | 134 | switch (i) { |
137 | case 0: | 135 | case 0: |
138 | uart1_ck = clk_get(NULL, "uart1_ck"); | 136 | uart1_ck = clk_get(NULL, "uart1_ck"); |
@@ -143,16 +141,6 @@ void __init omap_serial_init(void) | |||
143 | if (cpu_is_omap15xx()) | 141 | if (cpu_is_omap15xx()) |
144 | clk_set_rate(uart1_ck, 12000000); | 142 | clk_set_rate(uart1_ck, 12000000); |
145 | } | 143 | } |
146 | if (cpu_is_omap15xx()) { | ||
147 | omap_cfg_reg(UART1_TX); | ||
148 | omap_cfg_reg(UART1_RTS); | ||
149 | if (machine_is_omap_innovator()) { | ||
150 | reg = fpga_read(OMAP1510_FPGA_POWER); | ||
151 | reg |= OMAP1510_FPGA_PCR_COM1_EN; | ||
152 | fpga_write(reg, OMAP1510_FPGA_POWER); | ||
153 | udelay(10); | ||
154 | } | ||
155 | } | ||
156 | break; | 144 | break; |
157 | case 1: | 145 | case 1: |
158 | uart2_ck = clk_get(NULL, "uart2_ck"); | 146 | uart2_ck = clk_get(NULL, "uart2_ck"); |
@@ -165,16 +153,6 @@ void __init omap_serial_init(void) | |||
165 | else | 153 | else |
166 | clk_set_rate(uart2_ck, 48000000); | 154 | clk_set_rate(uart2_ck, 48000000); |
167 | } | 155 | } |
168 | if (cpu_is_omap15xx()) { | ||
169 | omap_cfg_reg(UART2_TX); | ||
170 | omap_cfg_reg(UART2_RTS); | ||
171 | if (machine_is_omap_innovator()) { | ||
172 | reg = fpga_read(OMAP1510_FPGA_POWER); | ||
173 | reg |= OMAP1510_FPGA_PCR_COM2_EN; | ||
174 | fpga_write(reg, OMAP1510_FPGA_POWER); | ||
175 | udelay(10); | ||
176 | } | ||
177 | } | ||
178 | break; | 156 | break; |
179 | case 2: | 157 | case 2: |
180 | uart3_ck = clk_get(NULL, "uart3_ck"); | 158 | uart3_ck = clk_get(NULL, "uart3_ck"); |
@@ -185,10 +163,6 @@ void __init omap_serial_init(void) | |||
185 | if (cpu_is_omap15xx()) | 163 | if (cpu_is_omap15xx()) |
186 | clk_set_rate(uart3_ck, 12000000); | 164 | clk_set_rate(uart3_ck, 12000000); |
187 | } | 165 | } |
188 | if (cpu_is_omap15xx()) { | ||
189 | omap_cfg_reg(UART3_TX); | ||
190 | omap_cfg_reg(UART3_RX); | ||
191 | } | ||
192 | break; | 166 | break; |
193 | } | 167 | } |
194 | omap_serial_reset(&serial_platform_data[i]); | 168 | omap_serial_reset(&serial_platform_data[i]); |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 75b1c7efae7e..6f1bbbc4d15f 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -73,9 +73,21 @@ config MACH_OMAP_3430SDP | |||
73 | bool "OMAP 3430 SDP board" | 73 | bool "OMAP 3430 SDP board" |
74 | depends on ARCH_OMAP3 && ARCH_OMAP34XX | 74 | depends on ARCH_OMAP3 && ARCH_OMAP34XX |
75 | 75 | ||
76 | config MACH_NOKIA_N800 | ||
77 | bool | ||
78 | |||
79 | config MACH_NOKIA_N810 | ||
80 | bool | ||
81 | |||
82 | config MACH_NOKIA_N810_WIMAX | ||
83 | bool | ||
84 | |||
76 | config MACH_NOKIA_N8X0 | 85 | config MACH_NOKIA_N8X0 |
77 | bool "Nokia N800/N810" | 86 | bool "Nokia N800/N810" |
78 | depends on ARCH_OMAP2420 | 87 | depends on ARCH_OMAP2420 |
88 | select MACH_NOKIA_N800 | ||
89 | select MACH_NOKIA_N810 | ||
90 | select MACH_NOKIA_N810_WIMAX | ||
79 | 91 | ||
80 | config MACH_NOKIA_RX51 | 92 | config MACH_NOKIA_RX51 |
81 | bool "Nokia RX-51 board" | 93 | bool "Nokia RX-51 board" |
@@ -88,3 +100,11 @@ config MACH_OMAP_ZOOM2 | |||
88 | config MACH_OMAP_4430SDP | 100 | config MACH_OMAP_4430SDP |
89 | bool "OMAP 4430 SDP board" | 101 | bool "OMAP 4430 SDP board" |
90 | depends on ARCH_OMAP4 | 102 | depends on ARCH_OMAP4 |
103 | |||
104 | config OMAP3_EMU | ||
105 | bool "OMAP3 debugging peripherals" | ||
106 | depends on ARCH_OMAP3 | ||
107 | select OC_ETM | ||
108 | help | ||
109 | Say Y here to enable debugging hardware of omap3 | ||
110 | |||
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 8cb16777661a..e141cabcfcce 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -44,6 +44,9 @@ obj-$(CONFIG_ARCH_OMAP4) += cm4xxx.o | |||
44 | obj-$(CONFIG_ARCH_OMAP2) += clock24xx.o | 44 | obj-$(CONFIG_ARCH_OMAP2) += clock24xx.o |
45 | obj-$(CONFIG_ARCH_OMAP3) += clock34xx.o | 45 | obj-$(CONFIG_ARCH_OMAP3) += clock34xx.o |
46 | 46 | ||
47 | # EMU peripherals | ||
48 | obj-$(CONFIG_OMAP3_EMU) += emu.o | ||
49 | |||
47 | iommu-y += iommu2.o | 50 | iommu-y += iommu2.o |
48 | iommu-$(CONFIG_ARCH_OMAP3) += omap3-iommu.o | 51 | iommu-$(CONFIG_ARCH_OMAP3) += omap3-iommu.o |
49 | 52 | ||
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index efaf053eba85..0acb5560229c 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
18 | #include <linux/delay.h> | 18 | #include <linux/delay.h> |
19 | #include <linux/input.h> | 19 | #include <linux/input.h> |
20 | #include <linux/input/matrix_keypad.h> | ||
20 | #include <linux/spi/spi.h> | 21 | #include <linux/spi/spi.h> |
21 | #include <linux/spi/ads7846.h> | 22 | #include <linux/spi/ads7846.h> |
22 | #include <linux/i2c/twl4030.h> | 23 | #include <linux/i2c/twl4030.h> |
@@ -38,7 +39,6 @@ | |||
38 | #include <mach/gpmc.h> | 39 | #include <mach/gpmc.h> |
39 | 40 | ||
40 | #include <mach/control.h> | 41 | #include <mach/control.h> |
41 | #include <mach/keypad.h> | ||
42 | #include <mach/gpmc-smc91x.h> | 42 | #include <mach/gpmc-smc91x.h> |
43 | 43 | ||
44 | #include "sdram-qimonda-hyb18m512160af-6.h" | 44 | #include "sdram-qimonda-hyb18m512160af-6.h" |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index eb37c40ea83a..609a5a4a7e29 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -58,6 +58,8 @@ static void __init gic_init_irq(void) | |||
58 | 58 | ||
59 | static void __init omap_4430sdp_init_irq(void) | 59 | static void __init omap_4430sdp_init_irq(void) |
60 | { | 60 | { |
61 | omap_board_config = sdp4430_config; | ||
62 | omap_board_config_size = ARRAY_SIZE(sdp4430_config); | ||
61 | omap2_init_common_hw(NULL, NULL); | 63 | omap2_init_common_hw(NULL, NULL); |
62 | #ifdef CONFIG_OMAP_32K_TIMER | 64 | #ifdef CONFIG_OMAP_32K_TIMER |
63 | omap2_gp_clockevent_set_gptimer(1); | 65 | omap2_gp_clockevent_set_gptimer(1); |
@@ -70,8 +72,6 @@ static void __init omap_4430sdp_init_irq(void) | |||
70 | static void __init omap_4430sdp_init(void) | 72 | static void __init omap_4430sdp_init(void) |
71 | { | 73 | { |
72 | platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); | 74 | platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); |
73 | omap_board_config = sdp4430_config; | ||
74 | omap_board_config_size = ARRAY_SIZE(sdp4430_config); | ||
75 | omap_serial_init(); | 75 | omap_serial_init(); |
76 | } | 76 | } |
77 | 77 | ||
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index d110a7fdfbd8..d57ec2f4d0a9 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
18 | #include <linux/input.h> | 18 | #include <linux/input.h> |
19 | #include <linux/input/matrix_keypad.h> | ||
19 | #include <linux/gpio_keys.h> | 20 | #include <linux/gpio_keys.h> |
20 | #include <linux/workqueue.h> | 21 | #include <linux/workqueue.h> |
21 | #include <linux/err.h> | 22 | #include <linux/err.h> |
@@ -41,7 +42,6 @@ | |||
41 | #include <asm/delay.h> | 42 | #include <asm/delay.h> |
42 | #include <mach/control.h> | 43 | #include <mach/control.h> |
43 | #include <mach/usb.h> | 44 | #include <mach/usb.h> |
44 | #include <mach/keypad.h> | ||
45 | 45 | ||
46 | #include "mmc-twl4030.h" | 46 | #include "mmc-twl4030.h" |
47 | 47 | ||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 70df6b4dbcd4..08b0816afa61 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -162,7 +162,7 @@ static int beagle_twl_gpio_setup(struct device *dev, | |||
162 | 162 | ||
163 | /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ | 163 | /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ |
164 | gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); | 164 | gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); |
165 | gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); | 165 | gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); |
166 | 166 | ||
167 | /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ | 167 | /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ |
168 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; | 168 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index e4ec0c591216..4c4d7f8dbd72 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/clk.h> | 20 | #include <linux/clk.h> |
21 | #include <linux/gpio.h> | 21 | #include <linux/gpio.h> |
22 | #include <linux/input.h> | 22 | #include <linux/input.h> |
23 | #include <linux/input/matrix_keypad.h> | ||
23 | #include <linux/leds.h> | 24 | #include <linux/leds.h> |
24 | 25 | ||
25 | #include <linux/spi/spi.h> | 26 | #include <linux/spi/spi.h> |
@@ -37,7 +38,6 @@ | |||
37 | #include <mach/usb.h> | 38 | #include <mach/usb.h> |
38 | #include <mach/common.h> | 39 | #include <mach/common.h> |
39 | #include <mach/mcspi.h> | 40 | #include <mach/mcspi.h> |
40 | #include <mach/keypad.h> | ||
41 | 41 | ||
42 | #include "sdram-micron-mt46h32m32lf-6.h" | 42 | #include "sdram-micron-mt46h32m32lf-6.h" |
43 | #include "mmc-twl4030.h" | 43 | #include "mmc-twl4030.h" |
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 7f6bf8772af7..7519edb69155 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/i2c/twl4030.h> | 27 | #include <linux/i2c/twl4030.h> |
28 | #include <linux/leds.h> | 28 | #include <linux/leds.h> |
29 | #include <linux/input.h> | 29 | #include <linux/input.h> |
30 | #include <linux/input/matrix_keypad.h> | ||
30 | #include <linux/gpio_keys.h> | 31 | #include <linux/gpio_keys.h> |
31 | 32 | ||
32 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
@@ -39,7 +40,6 @@ | |||
39 | #include <mach/hardware.h> | 40 | #include <mach/hardware.h> |
40 | #include <mach/mcspi.h> | 41 | #include <mach/mcspi.h> |
41 | #include <mach/usb.h> | 42 | #include <mach/usb.h> |
42 | #include <mach/keypad.h> | ||
43 | #include <mach/mux.h> | 43 | #include <mach/mux.h> |
44 | 44 | ||
45 | #include "sdram-micron-mt46h32m32lf-6.h" | 45 | #include "sdram-micron-mt46h32m32lf-6.h" |
@@ -134,50 +134,50 @@ static void __init pandora_keys_gpio_init(void) | |||
134 | } | 134 | } |
135 | 135 | ||
136 | static int board_keymap[] = { | 136 | static int board_keymap[] = { |
137 | /* col, row, code */ | 137 | /* row, col, code */ |
138 | KEY(0, 0, KEY_9), | 138 | KEY(0, 0, KEY_9), |
139 | KEY(0, 1, KEY_0), | 139 | KEY(0, 1, KEY_8), |
140 | KEY(0, 2, KEY_BACKSPACE), | 140 | KEY(0, 2, KEY_I), |
141 | KEY(0, 3, KEY_O), | 141 | KEY(0, 3, KEY_J), |
142 | KEY(0, 4, KEY_P), | 142 | KEY(0, 4, KEY_N), |
143 | KEY(0, 5, KEY_K), | 143 | KEY(0, 5, KEY_M), |
144 | KEY(0, 6, KEY_L), | 144 | KEY(1, 0, KEY_0), |
145 | KEY(0, 7, KEY_ENTER), | ||
146 | KEY(1, 0, KEY_8), | ||
147 | KEY(1, 1, KEY_7), | 145 | KEY(1, 1, KEY_7), |
148 | KEY(1, 2, KEY_6), | 146 | KEY(1, 2, KEY_U), |
149 | KEY(1, 3, KEY_5), | 147 | KEY(1, 3, KEY_H), |
150 | KEY(1, 4, KEY_4), | 148 | KEY(1, 4, KEY_B), |
151 | KEY(1, 5, KEY_3), | 149 | KEY(1, 5, KEY_SPACE), |
152 | KEY(1, 6, KEY_2), | 150 | KEY(2, 0, KEY_BACKSPACE), |
153 | KEY(1, 7, KEY_1), | 151 | KEY(2, 1, KEY_6), |
154 | KEY(2, 0, KEY_I), | ||
155 | KEY(2, 1, KEY_U), | ||
156 | KEY(2, 2, KEY_Y), | 152 | KEY(2, 2, KEY_Y), |
157 | KEY(2, 3, KEY_T), | 153 | KEY(2, 3, KEY_G), |
158 | KEY(2, 4, KEY_R), | 154 | KEY(2, 4, KEY_V), |
159 | KEY(2, 5, KEY_E), | 155 | KEY(2, 5, KEY_FN), |
160 | KEY(2, 6, KEY_W), | 156 | KEY(3, 0, KEY_O), |
161 | KEY(2, 7, KEY_Q), | 157 | KEY(3, 1, KEY_5), |
162 | KEY(3, 0, KEY_J), | 158 | KEY(3, 2, KEY_T), |
163 | KEY(3, 1, KEY_H), | ||
164 | KEY(3, 2, KEY_G), | ||
165 | KEY(3, 3, KEY_F), | 159 | KEY(3, 3, KEY_F), |
166 | KEY(3, 4, KEY_D), | 160 | KEY(3, 4, KEY_C), |
167 | KEY(3, 5, KEY_S), | 161 | KEY(4, 0, KEY_P), |
168 | KEY(3, 6, KEY_A), | 162 | KEY(4, 1, KEY_4), |
169 | KEY(3, 7, KEY_LEFTSHIFT), | 163 | KEY(4, 2, KEY_R), |
170 | KEY(4, 0, KEY_N), | 164 | KEY(4, 3, KEY_D), |
171 | KEY(4, 1, KEY_B), | ||
172 | KEY(4, 2, KEY_V), | ||
173 | KEY(4, 3, KEY_C), | ||
174 | KEY(4, 4, KEY_X), | 165 | KEY(4, 4, KEY_X), |
175 | KEY(4, 5, KEY_Z), | 166 | KEY(5, 0, KEY_K), |
176 | KEY(4, 6, KEY_DOT), | 167 | KEY(5, 1, KEY_3), |
177 | KEY(4, 7, KEY_COMMA), | 168 | KEY(5, 2, KEY_E), |
178 | KEY(5, 0, KEY_M), | 169 | KEY(5, 3, KEY_S), |
179 | KEY(5, 1, KEY_SPACE), | 170 | KEY(5, 4, KEY_Z), |
180 | KEY(5, 2, KEY_FN), | 171 | KEY(6, 0, KEY_L), |
172 | KEY(6, 1, KEY_2), | ||
173 | KEY(6, 2, KEY_W), | ||
174 | KEY(6, 3, KEY_A), | ||
175 | KEY(6, 4, KEY_DOT), | ||
176 | KEY(7, 0, KEY_ENTER), | ||
177 | KEY(7, 1, KEY_1), | ||
178 | KEY(7, 2, KEY_Q), | ||
179 | KEY(7, 3, KEY_LEFTSHIFT), | ||
180 | KEY(7, 4, KEY_COMMA), | ||
181 | }; | 181 | }; |
182 | 182 | ||
183 | static struct matrix_keymap_data board_map_data = { | 183 | static struct matrix_keymap_data board_map_data = { |
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index 2b0eb1ba5d7f..e34d96a825e3 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
14 | #include <linux/input.h> | 14 | #include <linux/input.h> |
15 | #include <linux/input/matrix_keypad.h> | ||
15 | #include <linux/spi/spi.h> | 16 | #include <linux/spi/spi.h> |
16 | #include <linux/i2c.h> | 17 | #include <linux/i2c.h> |
17 | #include <linux/i2c/twl4030.h> | 18 | #include <linux/i2c/twl4030.h> |
@@ -27,7 +28,6 @@ | |||
27 | #include <mach/common.h> | 28 | #include <mach/common.h> |
28 | #include <mach/dma.h> | 29 | #include <mach/dma.h> |
29 | #include <mach/gpmc.h> | 30 | #include <mach/gpmc.h> |
30 | #include <mach/keypad.h> | ||
31 | #include <mach/onenand.h> | 31 | #include <mach/onenand.h> |
32 | #include <mach/gpmc-smc91x.h> | 32 | #include <mach/gpmc-smc91x.h> |
33 | 33 | ||
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c index f9196c3b1a7b..78869a9a1cc2 100644 --- a/arch/arm/mach-omap2/board-rx51.c +++ b/arch/arm/mach-omap2/board-rx51.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include <mach/mux.h> | 26 | #include <mach/mux.h> |
27 | #include <mach/board.h> | 27 | #include <mach/board.h> |
28 | #include <mach/common.h> | 28 | #include <mach/common.h> |
29 | #include <mach/keypad.h> | ||
30 | #include <mach/dma.h> | 29 | #include <mach/dma.h> |
31 | #include <mach/gpmc.h> | 30 | #include <mach/gpmc.h> |
32 | #include <mach/usb.h> | 31 | #include <mach/usb.h> |
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c index fd3369d5e5cb..51e0b3ba5f3a 100644 --- a/arch/arm/mach-omap2/board-zoom2.c +++ b/arch/arm/mach-omap2/board-zoom2.c | |||
@@ -13,6 +13,7 @@ | |||
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/input.h> | 15 | #include <linux/input.h> |
16 | #include <linux/input/matrix_keypad.h> | ||
16 | #include <linux/gpio.h> | 17 | #include <linux/gpio.h> |
17 | #include <linux/i2c/twl4030.h> | 18 | #include <linux/i2c/twl4030.h> |
18 | #include <linux/regulator/machine.h> | 19 | #include <linux/regulator/machine.h> |
@@ -22,7 +23,6 @@ | |||
22 | 23 | ||
23 | #include <mach/common.h> | 24 | #include <mach/common.h> |
24 | #include <mach/usb.h> | 25 | #include <mach/usb.h> |
25 | #include <mach/keypad.h> | ||
26 | 26 | ||
27 | #include "mmc-twl4030.h" | 27 | #include "mmc-twl4030.h" |
28 | #include "sdram-micron-mt46h32m32lf-6.h" | 28 | #include "sdram-micron-mt46h32m32lf-6.h" |
@@ -30,57 +30,56 @@ | |||
30 | /* Zoom2 has Qwerty keyboard*/ | 30 | /* Zoom2 has Qwerty keyboard*/ |
31 | static int board_keymap[] = { | 31 | static int board_keymap[] = { |
32 | KEY(0, 0, KEY_E), | 32 | KEY(0, 0, KEY_E), |
33 | KEY(1, 0, KEY_R), | 33 | KEY(0, 1, KEY_R), |
34 | KEY(2, 0, KEY_T), | 34 | KEY(0, 2, KEY_T), |
35 | KEY(3, 0, KEY_HOME), | 35 | KEY(0, 3, KEY_HOME), |
36 | KEY(6, 0, KEY_I), | 36 | KEY(0, 6, KEY_I), |
37 | KEY(7, 0, KEY_LEFTSHIFT), | 37 | KEY(0, 7, KEY_LEFTSHIFT), |
38 | KEY(0, 1, KEY_D), | 38 | KEY(1, 0, KEY_D), |
39 | KEY(1, 1, KEY_F), | 39 | KEY(1, 1, KEY_F), |
40 | KEY(2, 1, KEY_G), | 40 | KEY(1, 2, KEY_G), |
41 | KEY(3, 1, KEY_SEND), | 41 | KEY(1, 3, KEY_SEND), |
42 | KEY(6, 1, KEY_K), | 42 | KEY(1, 6, KEY_K), |
43 | KEY(7, 1, KEY_ENTER), | 43 | KEY(1, 7, KEY_ENTER), |
44 | KEY(0, 2, KEY_X), | 44 | KEY(2, 0, KEY_X), |
45 | KEY(1, 2, KEY_C), | 45 | KEY(2, 1, KEY_C), |
46 | KEY(2, 2, KEY_V), | 46 | KEY(2, 2, KEY_V), |
47 | KEY(3, 2, KEY_END), | 47 | KEY(2, 3, KEY_END), |
48 | KEY(6, 2, KEY_DOT), | 48 | KEY(2, 6, KEY_DOT), |
49 | KEY(7, 2, KEY_CAPSLOCK), | 49 | KEY(2, 7, KEY_CAPSLOCK), |
50 | KEY(0, 3, KEY_Z), | 50 | KEY(3, 0, KEY_Z), |
51 | KEY(1, 3, KEY_KPPLUS), | 51 | KEY(3, 1, KEY_KPPLUS), |
52 | KEY(2, 3, KEY_B), | 52 | KEY(3, 2, KEY_B), |
53 | KEY(3, 3, KEY_F1), | 53 | KEY(3, 3, KEY_F1), |
54 | KEY(6, 3, KEY_O), | 54 | KEY(3, 6, KEY_O), |
55 | KEY(7, 3, KEY_SPACE), | 55 | KEY(3, 7, KEY_SPACE), |
56 | KEY(0, 4, KEY_W), | 56 | KEY(4, 0, KEY_W), |
57 | KEY(1, 4, KEY_Y), | 57 | KEY(4, 1, KEY_Y), |
58 | KEY(2, 4, KEY_U), | 58 | KEY(4, 2, KEY_U), |
59 | KEY(3, 4, KEY_F2), | 59 | KEY(4, 3, KEY_F2), |
60 | KEY(4, 4, KEY_VOLUMEUP), | 60 | KEY(4, 4, KEY_VOLUMEUP), |
61 | KEY(6, 4, KEY_L), | 61 | KEY(4, 6, KEY_L), |
62 | KEY(7, 4, KEY_LEFT), | 62 | KEY(4, 7, KEY_LEFT), |
63 | KEY(0, 5, KEY_S), | 63 | KEY(5, 0, KEY_S), |
64 | KEY(1, 5, KEY_H), | 64 | KEY(5, 1, KEY_H), |
65 | KEY(2, 5, KEY_J), | 65 | KEY(5, 2, KEY_J), |
66 | KEY(3, 5, KEY_F3), | 66 | KEY(5, 3, KEY_F3), |
67 | KEY(5, 5, KEY_VOLUMEDOWN), | 67 | KEY(5, 5, KEY_VOLUMEDOWN), |
68 | KEY(6, 5, KEY_M), | 68 | KEY(5, 6, KEY_M), |
69 | KEY(4, 5, KEY_ENTER), | 69 | KEY(5, 7, KEY_ENTER), |
70 | KEY(7, 5, KEY_RIGHT), | 70 | KEY(6, 0, KEY_Q), |
71 | KEY(0, 6, KEY_Q), | 71 | KEY(6, 1, KEY_A), |
72 | KEY(1, 6, KEY_A), | 72 | KEY(6, 2, KEY_N), |
73 | KEY(2, 6, KEY_N), | 73 | KEY(6, 3, KEY_BACKSPACE), |
74 | KEY(3, 6, KEY_BACKSPACE), | ||
75 | KEY(6, 6, KEY_P), | 74 | KEY(6, 6, KEY_P), |
76 | KEY(7, 6, KEY_UP), | ||
77 | KEY(6, 7, KEY_SELECT), | 75 | KEY(6, 7, KEY_SELECT), |
78 | KEY(7, 7, KEY_DOWN), | 76 | KEY(7, 0, KEY_PROG1), /*MACRO 1 <User defined> */ |
79 | KEY(0, 7, KEY_PROG1), /*MACRO 1 <User defined> */ | 77 | KEY(7, 1, KEY_PROG2), /*MACRO 2 <User defined> */ |
80 | KEY(1, 7, KEY_PROG2), /*MACRO 2 <User defined> */ | 78 | KEY(7, 2, KEY_PROG3), /*MACRO 3 <User defined> */ |
81 | KEY(2, 7, KEY_PROG3), /*MACRO 3 <User defined> */ | 79 | KEY(7, 3, KEY_PROG4), /*MACRO 4 <User defined> */ |
82 | KEY(3, 7, KEY_PROG4), /*MACRO 4 <User defined> */ | 80 | KEY(7, 5, KEY_RIGHT), |
83 | 0 | 81 | KEY(7, 6, KEY_UP), |
82 | KEY(7, 7, KEY_DOWN) | ||
84 | }; | 83 | }; |
85 | 84 | ||
86 | static struct matrix_keymap_data board_map_data = { | 85 | static struct matrix_keymap_data board_map_data = { |
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c index 489556eecbd1..066e88a18824 100644 --- a/arch/arm/mach-omap2/clock34xx.c +++ b/arch/arm/mach-omap2/clock34xx.c | |||
@@ -119,7 +119,7 @@ static struct omap_clk omap34xx_clks[] = { | |||
119 | CLK(NULL, "dpll3_m2x2_ck", &dpll3_m2x2_ck, CK_343X), | 119 | CLK(NULL, "dpll3_m2x2_ck", &dpll3_m2x2_ck, CK_343X), |
120 | CLK(NULL, "dpll3_m3_ck", &dpll3_m3_ck, CK_343X), | 120 | CLK(NULL, "dpll3_m3_ck", &dpll3_m3_ck, CK_343X), |
121 | CLK(NULL, "dpll3_m3x2_ck", &dpll3_m3x2_ck, CK_343X), | 121 | CLK(NULL, "dpll3_m3x2_ck", &dpll3_m3x2_ck, CK_343X), |
122 | CLK(NULL, "emu_core_alwon_ck", &emu_core_alwon_ck, CK_343X), | 122 | CLK("etb", "emu_core_alwon_ck", &emu_core_alwon_ck, CK_343X), |
123 | CLK(NULL, "dpll4_ck", &dpll4_ck, CK_343X), | 123 | CLK(NULL, "dpll4_ck", &dpll4_ck, CK_343X), |
124 | CLK(NULL, "dpll4_x2_ck", &dpll4_x2_ck, CK_343X), | 124 | CLK(NULL, "dpll4_x2_ck", &dpll4_x2_ck, CK_343X), |
125 | CLK(NULL, "omap_96m_alwon_fck", &omap_96m_alwon_fck, CK_343X), | 125 | CLK(NULL, "omap_96m_alwon_fck", &omap_96m_alwon_fck, CK_343X), |
@@ -138,7 +138,7 @@ static struct omap_clk omap34xx_clks[] = { | |||
138 | CLK(NULL, "dpll4_m5x2_ck", &dpll4_m5x2_ck, CK_343X), | 138 | CLK(NULL, "dpll4_m5x2_ck", &dpll4_m5x2_ck, CK_343X), |
139 | CLK(NULL, "dpll4_m6_ck", &dpll4_m6_ck, CK_343X), | 139 | CLK(NULL, "dpll4_m6_ck", &dpll4_m6_ck, CK_343X), |
140 | CLK(NULL, "dpll4_m6x2_ck", &dpll4_m6x2_ck, CK_343X), | 140 | CLK(NULL, "dpll4_m6x2_ck", &dpll4_m6x2_ck, CK_343X), |
141 | CLK(NULL, "emu_per_alwon_ck", &emu_per_alwon_ck, CK_343X), | 141 | CLK("etb", "emu_per_alwon_ck", &emu_per_alwon_ck, CK_343X), |
142 | CLK(NULL, "dpll5_ck", &dpll5_ck, CK_3430ES2), | 142 | CLK(NULL, "dpll5_ck", &dpll5_ck, CK_3430ES2), |
143 | CLK(NULL, "dpll5_m2_ck", &dpll5_m2_ck, CK_3430ES2), | 143 | CLK(NULL, "dpll5_m2_ck", &dpll5_m2_ck, CK_3430ES2), |
144 | CLK(NULL, "clkout2_src_ck", &clkout2_src_ck, CK_343X), | 144 | CLK(NULL, "clkout2_src_ck", &clkout2_src_ck, CK_343X), |
@@ -147,7 +147,7 @@ static struct omap_clk omap34xx_clks[] = { | |||
147 | CLK(NULL, "dpll1_fck", &dpll1_fck, CK_343X), | 147 | CLK(NULL, "dpll1_fck", &dpll1_fck, CK_343X), |
148 | CLK(NULL, "mpu_ck", &mpu_ck, CK_343X), | 148 | CLK(NULL, "mpu_ck", &mpu_ck, CK_343X), |
149 | CLK(NULL, "arm_fck", &arm_fck, CK_343X), | 149 | CLK(NULL, "arm_fck", &arm_fck, CK_343X), |
150 | CLK(NULL, "emu_mpu_alwon_ck", &emu_mpu_alwon_ck, CK_343X), | 150 | CLK("etb", "emu_mpu_alwon_ck", &emu_mpu_alwon_ck, CK_343X), |
151 | CLK(NULL, "dpll2_fck", &dpll2_fck, CK_343X), | 151 | CLK(NULL, "dpll2_fck", &dpll2_fck, CK_343X), |
152 | CLK(NULL, "iva2_ck", &iva2_ck, CK_343X), | 152 | CLK(NULL, "iva2_ck", &iva2_ck, CK_343X), |
153 | CLK(NULL, "l3_ick", &l3_ick, CK_343X), | 153 | CLK(NULL, "l3_ick", &l3_ick, CK_343X), |
@@ -302,7 +302,7 @@ static struct omap_clk omap34xx_clks[] = { | |||
302 | CLK("omap-mcbsp.2", "fck", &mcbsp2_fck, CK_343X), | 302 | CLK("omap-mcbsp.2", "fck", &mcbsp2_fck, CK_343X), |
303 | CLK("omap-mcbsp.3", "fck", &mcbsp3_fck, CK_343X), | 303 | CLK("omap-mcbsp.3", "fck", &mcbsp3_fck, CK_343X), |
304 | CLK("omap-mcbsp.4", "fck", &mcbsp4_fck, CK_343X), | 304 | CLK("omap-mcbsp.4", "fck", &mcbsp4_fck, CK_343X), |
305 | CLK(NULL, "emu_src_ck", &emu_src_ck, CK_343X), | 305 | CLK("etb", "emu_src_ck", &emu_src_ck, CK_343X), |
306 | CLK(NULL, "pclk_fck", &pclk_fck, CK_343X), | 306 | CLK(NULL, "pclk_fck", &pclk_fck, CK_343X), |
307 | CLK(NULL, "pclkx2_fck", &pclkx2_fck, CK_343X), | 307 | CLK(NULL, "pclkx2_fck", &pclkx2_fck, CK_343X), |
308 | CLK(NULL, "atclk_fck", &atclk_fck, CK_343X), | 308 | CLK(NULL, "atclk_fck", &atclk_fck, CK_343X), |
@@ -473,7 +473,7 @@ static u16 _omap3_dpll_compute_freqsel(struct clk *clk, u8 n) | |||
473 | unsigned long fint; | 473 | unsigned long fint; |
474 | u16 f = 0; | 474 | u16 f = 0; |
475 | 475 | ||
476 | fint = clk->dpll_data->clk_ref->rate / (n + 1); | 476 | fint = clk->dpll_data->clk_ref->rate / n; |
477 | 477 | ||
478 | pr_debug("clock: fint is %lu\n", fint); | 478 | pr_debug("clock: fint is %lu\n", fint); |
479 | 479 | ||
diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h index c8119781e00a..9565c05bebd2 100644 --- a/arch/arm/mach-omap2/clock34xx.h +++ b/arch/arm/mach-omap2/clock34xx.h | |||
@@ -489,9 +489,9 @@ static struct clk core_ck = { | |||
489 | static struct clk dpll3_m2x2_ck = { | 489 | static struct clk dpll3_m2x2_ck = { |
490 | .name = "dpll3_m2x2_ck", | 490 | .name = "dpll3_m2x2_ck", |
491 | .ops = &clkops_null, | 491 | .ops = &clkops_null, |
492 | .parent = &dpll3_x2_ck, | 492 | .parent = &dpll3_m2_ck, |
493 | .clkdm_name = "dpll3_clkdm", | 493 | .clkdm_name = "dpll3_clkdm", |
494 | .recalc = &followparent_recalc, | 494 | .recalc = &omap3_clkoutx2_recalc, |
495 | }; | 495 | }; |
496 | 496 | ||
497 | /* The PWRDN bit is apparently only available on 3430ES2 and above */ | 497 | /* The PWRDN bit is apparently only available on 3430ES2 and above */ |
diff --git a/arch/arm/mach-omap2/emu.c b/arch/arm/mach-omap2/emu.c new file mode 100644 index 000000000000..ec0d984a26fc --- /dev/null +++ b/arch/arm/mach-omap2/emu.c | |||
@@ -0,0 +1,66 @@ | |||
1 | /* | ||
2 | * emu.c | ||
3 | * | ||
4 | * ETM and ETB CoreSight components' resources as found in OMAP3xxx. | ||
5 | * | ||
6 | * Copyright (C) 2009 Nokia Corporation. | ||
7 | * Alexander Shishkin | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/types.h> | ||
17 | #include <linux/module.h> | ||
18 | #include <linux/device.h> | ||
19 | #include <linux/amba/bus.h> | ||
20 | #include <linux/io.h> | ||
21 | #include <linux/clk.h> | ||
22 | #include <linux/err.h> | ||
23 | |||
24 | MODULE_LICENSE("GPL"); | ||
25 | MODULE_AUTHOR("Alexander Shishkin"); | ||
26 | |||
27 | /* Cortex CoreSight components within omap3xxx EMU */ | ||
28 | #define ETM_BASE (L4_EMU_34XX_PHYS + 0x10000) | ||
29 | #define DBG_BASE (L4_EMU_34XX_PHYS + 0x11000) | ||
30 | #define ETB_BASE (L4_EMU_34XX_PHYS + 0x1b000) | ||
31 | #define DAPCTL (L4_EMU_34XX_PHYS + 0x1d000) | ||
32 | |||
33 | static struct amba_device omap3_etb_device = { | ||
34 | .dev = { | ||
35 | .init_name = "etb", | ||
36 | }, | ||
37 | .res = { | ||
38 | .start = ETB_BASE, | ||
39 | .end = ETB_BASE + SZ_4K - 1, | ||
40 | .flags = IORESOURCE_MEM, | ||
41 | }, | ||
42 | .periphid = 0x000bb907, | ||
43 | }; | ||
44 | |||
45 | static struct amba_device omap3_etm_device = { | ||
46 | .dev = { | ||
47 | .init_name = "etm", | ||
48 | }, | ||
49 | .res = { | ||
50 | .start = ETM_BASE, | ||
51 | .end = ETM_BASE + SZ_4K - 1, | ||
52 | .flags = IORESOURCE_MEM, | ||
53 | }, | ||
54 | .periphid = 0x102bb921, | ||
55 | }; | ||
56 | |||
57 | static int __init emu_init(void) | ||
58 | { | ||
59 | amba_device_register(&omap3_etb_device, &iomem_resource); | ||
60 | amba_device_register(&omap3_etm_device, &iomem_resource); | ||
61 | |||
62 | return 0; | ||
63 | } | ||
64 | |||
65 | subsys_initcall(emu_init); | ||
66 | |||
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 15876828db23..f3c992e29651 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -366,7 +366,7 @@ int gpmc_cs_request(int cs, unsigned long size, unsigned long *base) | |||
366 | if (r < 0) | 366 | if (r < 0) |
367 | goto out; | 367 | goto out; |
368 | 368 | ||
369 | gpmc_cs_enable_mem(cs, res->start, res->end - res->start + 1); | 369 | gpmc_cs_enable_mem(cs, res->start, resource_size(res)); |
370 | *base = res->start; | 370 | *base = res->start; |
371 | gpmc_cs_set_reserved(cs, 1); | 371 | gpmc_cs_set_reserved(cs, 1); |
372 | out: | 372 | out: |
@@ -378,7 +378,7 @@ EXPORT_SYMBOL(gpmc_cs_request); | |||
378 | void gpmc_cs_free(int cs) | 378 | void gpmc_cs_free(int cs) |
379 | { | 379 | { |
380 | spin_lock(&gpmc_mem_lock); | 380 | spin_lock(&gpmc_mem_lock); |
381 | if (cs >= GPMC_CS_NUM || !gpmc_cs_reserved(cs)) { | 381 | if (cs >= GPMC_CS_NUM || cs < 0 || !gpmc_cs_reserved(cs)) { |
382 | printk(KERN_ERR "Trying to free non-reserved GPMC CS%d\n", cs); | 382 | printk(KERN_ERR "Trying to free non-reserved GPMC CS%d\n", cs); |
383 | BUG(); | 383 | BUG(); |
384 | spin_unlock(&gpmc_mem_lock); | 384 | spin_unlock(&gpmc_mem_lock); |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index e3a3bad1d84f..56be87d13edb 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -302,7 +302,9 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, | |||
302 | pwrdm_init(powerdomains_omap); | 302 | pwrdm_init(powerdomains_omap); |
303 | clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps); | 303 | clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps); |
304 | omap2_clk_init(); | 304 | omap2_clk_init(); |
305 | #endif | ||
305 | omap_serial_early_init(); | 306 | omap_serial_early_init(); |
307 | #ifndef CONFIG_ARCH_OMAP4 | ||
306 | omap_hwmod_late_init(); | 308 | omap_hwmod_late_init(); |
307 | omap_pm_if_init(); | 309 | omap_pm_if_init(); |
308 | omap2_sdrc_init(sdrc_cs0, sdrc_cs1); | 310 | omap2_sdrc_init(sdrc_cs0, sdrc_cs1); |
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index c035ad3426d0..ef57b38a56a4 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c | |||
@@ -300,7 +300,7 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev) | |||
300 | dev_err(&pdev->dev, "invalid mem resource\n"); | 300 | dev_err(&pdev->dev, "invalid mem resource\n"); |
301 | return -ENODEV; | 301 | return -ENODEV; |
302 | } | 302 | } |
303 | mbox_base = ioremap(res->start, res->end - res->start); | 303 | mbox_base = ioremap(res->start, resource_size(res)); |
304 | if (!mbox_base) | 304 | if (!mbox_base) |
305 | return -ENOMEM; | 305 | return -ENOMEM; |
306 | 306 | ||
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 378c2f618358..89463190923a 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -639,14 +639,15 @@ static void __init prcm_setup_regs(void) | |||
639 | prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN, | 639 | prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN, |
640 | OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET); | 640 | OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET); |
641 | 641 | ||
642 | /* Enable GPIO wakeups in PER */ | 642 | /* Enable wakeups in PER */ |
643 | prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 | | 643 | prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 | |
644 | OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 | | 644 | OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 | |
645 | OMAP3430_EN_GPIO6, OMAP3430_PER_MOD, PM_WKEN); | 645 | OMAP3430_EN_GPIO6 | OMAP3430_EN_UART3, |
646 | OMAP3430_PER_MOD, PM_WKEN); | ||
646 | /* and allow them to wake up MPU */ | 647 | /* and allow them to wake up MPU */ |
647 | prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 | | 648 | prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 | |
648 | OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 | | 649 | OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 | |
649 | OMAP3430_GRPSEL_GPIO6, | 650 | OMAP3430_GRPSEL_GPIO6 | OMAP3430_EN_UART3, |
650 | OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL); | 651 | OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL); |
651 | 652 | ||
652 | /* Don't attach IVA interrupts */ | 653 | /* Don't attach IVA interrupts */ |
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index ae2186892c85..54dfeb5d5667 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -109,16 +109,6 @@ static struct plat_serial8250_port serial_platform_data2[] = { | |||
109 | .regshift = 2, | 109 | .regshift = 2, |
110 | .uartclk = OMAP24XX_BASE_BAUD * 16, | 110 | .uartclk = OMAP24XX_BASE_BAUD * 16, |
111 | }, { | 111 | }, { |
112 | #ifdef CONFIG_ARCH_OMAP4 | ||
113 | .membase = OMAP2_IO_ADDRESS(OMAP_UART4_BASE), | ||
114 | .mapbase = OMAP_UART4_BASE, | ||
115 | .irq = 70, | ||
116 | .flags = UPF_BOOT_AUTOCONF, | ||
117 | .iotype = UPIO_MEM, | ||
118 | .regshift = 2, | ||
119 | .uartclk = OMAP24XX_BASE_BAUD * 16, | ||
120 | }, { | ||
121 | #endif | ||
122 | .flags = 0 | 112 | .flags = 0 |
123 | } | 113 | } |
124 | }; | 114 | }; |
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c index aac2cda60e09..102916f1e465 100644 --- a/arch/arm/mach-pxa/cm-x300.c +++ b/arch/arm/mach-pxa/cm-x300.c | |||
@@ -43,10 +43,10 @@ | |||
43 | 43 | ||
44 | #define CM_X300_ETH_PHYS 0x08000010 | 44 | #define CM_X300_ETH_PHYS 0x08000010 |
45 | 45 | ||
46 | #define GPIO82_MMC2_IRQ (82) | 46 | #define GPIO82_MMC_IRQ (82) |
47 | #define GPIO85_MMC2_WP (85) | 47 | #define GPIO85_MMC_WP (85) |
48 | 48 | ||
49 | #define CM_X300_MMC2_IRQ IRQ_GPIO(GPIO82_MMC2_IRQ) | 49 | #define CM_X300_MMC_IRQ IRQ_GPIO(GPIO82_MMC_IRQ) |
50 | 50 | ||
51 | #define GPIO95_RTC_CS (95) | 51 | #define GPIO95_RTC_CS (95) |
52 | #define GPIO96_RTC_WR (96) | 52 | #define GPIO96_RTC_WR (96) |
@@ -292,37 +292,37 @@ static inline void cm_x300_init_nand(void) {} | |||
292 | #endif | 292 | #endif |
293 | 293 | ||
294 | #if defined(CONFIG_MMC) || defined(CONFIG_MMC_MODULE) | 294 | #if defined(CONFIG_MMC) || defined(CONFIG_MMC_MODULE) |
295 | /* The first MMC slot of CM-X300 is hardwired to Libertas card and has | 295 | static struct pxamci_platform_data cm_x300_mci_platform_data = { |
296 | .detect_delay = 20, | ||
297 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, | ||
298 | .gpio_card_detect = GPIO82_MMC_IRQ, | ||
299 | .gpio_card_ro = GPIO85_MMC_WP, | ||
300 | .gpio_power = -1, | ||
301 | }; | ||
302 | |||
303 | /* The second MMC slot of CM-X300 is hardwired to Libertas card and has | ||
296 | no detection/ro pins */ | 304 | no detection/ro pins */ |
297 | static int cm_x300_mci_init(struct device *dev, | 305 | static int cm_x300_mci2_init(struct device *dev, |
298 | irq_handler_t cm_x300_detect_int, | 306 | irq_handler_t cm_x300_detect_int, |
299 | void *data) | 307 | void *data) |
300 | { | 308 | { |
301 | return 0; | 309 | return 0; |
302 | } | 310 | } |
303 | 311 | ||
304 | static void cm_x300_mci_exit(struct device *dev, void *data) | 312 | static void cm_x300_mci2_exit(struct device *dev, void *data) |
305 | { | 313 | { |
306 | } | 314 | } |
307 | 315 | ||
308 | static struct pxamci_platform_data cm_x300_mci_platform_data = { | 316 | static struct pxamci_platform_data cm_x300_mci2_platform_data = { |
309 | .detect_delay = 20, | 317 | .detect_delay = 20, |
310 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, | 318 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, |
311 | .init = cm_x300_mci_init, | 319 | .init = cm_x300_mci2_init, |
312 | .exit = cm_x300_mci_exit, | 320 | .exit = cm_x300_mci2_exit, |
313 | .gpio_card_detect = -1, | 321 | .gpio_card_detect = -1, |
314 | .gpio_card_ro = -1, | 322 | .gpio_card_ro = -1, |
315 | .gpio_power = -1, | 323 | .gpio_power = -1, |
316 | }; | 324 | }; |
317 | 325 | ||
318 | static struct pxamci_platform_data cm_x300_mci2_platform_data = { | ||
319 | .detect_delay = 20, | ||
320 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, | ||
321 | .gpio_card_detect = GPIO82_MMC2_IRQ, | ||
322 | .gpio_card_ro = GPIO85_MMC2_WP, | ||
323 | .gpio_power = -1, | ||
324 | }; | ||
325 | |||
326 | static void __init cm_x300_init_mmc(void) | 326 | static void __init cm_x300_init_mmc(void) |
327 | { | 327 | { |
328 | pxa_set_mci_info(&cm_x300_mci_platform_data); | 328 | pxa_set_mci_info(&cm_x300_mci_platform_data); |
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c index 494572825c7d..ec0e14b96682 100644 --- a/arch/arm/mach-pxa/colibri-pxa320.c +++ b/arch/arm/mach-pxa/colibri-pxa320.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <mach/colibri.h> | 27 | #include <mach/colibri.h> |
28 | #include <mach/pxafb.h> | 28 | #include <mach/pxafb.h> |
29 | #include <mach/ohci.h> | 29 | #include <mach/ohci.h> |
30 | #include <mach/audio.h> | ||
30 | 31 | ||
31 | #include "generic.h" | 32 | #include "generic.h" |
32 | #include "devices.h" | 33 | #include "devices.h" |
@@ -145,7 +146,8 @@ static void __init colibri_pxa320_init_lcd(void) | |||
145 | static inline void colibri_pxa320_init_lcd(void) {} | 146 | static inline void colibri_pxa320_init_lcd(void) {} |
146 | #endif | 147 | #endif |
147 | 148 | ||
148 | #if defined(SND_AC97_CODEC) || defined(SND_AC97_CODEC_MODULE) | 149 | #if defined(CONFIG_SND_AC97_CODEC) || \ |
150 | defined(CONFIG_SND_AC97_CODEC_MODULE) | ||
149 | static mfp_cfg_t colibri_pxa320_ac97_pin_config[] __initdata = { | 151 | static mfp_cfg_t colibri_pxa320_ac97_pin_config[] __initdata = { |
150 | GPIO34_AC97_SYSCLK, | 152 | GPIO34_AC97_SYSCLK, |
151 | GPIO35_AC97_SDATA_IN_0, | 153 | GPIO35_AC97_SDATA_IN_0, |
diff --git a/arch/arm/mach-pxa/cpufreq-pxa2xx.c b/arch/arm/mach-pxa/cpufreq-pxa2xx.c index 983cc8c20081..9e4d9816726a 100644 --- a/arch/arm/mach-pxa/cpufreq-pxa2xx.c +++ b/arch/arm/mach-pxa/cpufreq-pxa2xx.c | |||
@@ -447,6 +447,7 @@ static __init int pxa_cpufreq_init(struct cpufreq_policy *policy) | |||
447 | pxa27x_freq_table[i].frequency = freq; | 447 | pxa27x_freq_table[i].frequency = freq; |
448 | pxa27x_freq_table[i].index = i; | 448 | pxa27x_freq_table[i].index = i; |
449 | } | 449 | } |
450 | pxa27x_freq_table[i].index = i; | ||
450 | pxa27x_freq_table[i].frequency = CPUFREQ_TABLE_END; | 451 | pxa27x_freq_table[i].frequency = CPUFREQ_TABLE_END; |
451 | 452 | ||
452 | /* | 453 | /* |
diff --git a/arch/arm/mach-pxa/cpufreq-pxa3xx.c b/arch/arm/mach-pxa/cpufreq-pxa3xx.c index 67f34a8d8e60..149cdd9aee4d 100644 --- a/arch/arm/mach-pxa/cpufreq-pxa3xx.c +++ b/arch/arm/mach-pxa/cpufreq-pxa3xx.c | |||
@@ -102,7 +102,7 @@ static int setup_freqs_table(struct cpufreq_policy *policy, | |||
102 | table[i].index = i; | 102 | table[i].index = i; |
103 | table[i].frequency = freqs[i].cpufreq_mhz * 1000; | 103 | table[i].frequency = freqs[i].cpufreq_mhz * 1000; |
104 | } | 104 | } |
105 | table[num].frequency = i; | 105 | table[num].index = i; |
106 | table[num].frequency = CPUFREQ_TABLE_END; | 106 | table[num].frequency = CPUFREQ_TABLE_END; |
107 | 107 | ||
108 | pxa3xx_freqs = freqs; | 108 | pxa3xx_freqs = freqs; |
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index abff9e132749..83bd3c6e3884 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c | |||
@@ -604,7 +604,7 @@ static struct platform_device gpio_vbus = { | |||
604 | static const struct ads7846_platform_data tsc2046_info = { | 604 | static const struct ads7846_platform_data tsc2046_info = { |
605 | .model = 7846, | 605 | .model = 7846, |
606 | .vref_delay_usecs = 100, | 606 | .vref_delay_usecs = 100, |
607 | .pressure_max = 512, | 607 | .pressure_max = 1024, |
608 | .debounce_max = 10, | 608 | .debounce_max = 10, |
609 | .debounce_tol = 3, | 609 | .debounce_tol = 3, |
610 | .debounce_rep = 1, | 610 | .debounce_rep = 1, |
diff --git a/arch/arm/mach-pxa/include/mach/entry-macro.S b/arch/arm/mach-pxa/include/mach/entry-macro.S index 241880608ac6..a73bc86a3c26 100644 --- a/arch/arm/mach-pxa/include/mach/entry-macro.S +++ b/arch/arm/mach-pxa/include/mach/entry-macro.S | |||
@@ -46,5 +46,6 @@ | |||
46 | beq 1001f | 46 | beq 1001f |
47 | bic \irqstat, \irqstat, #0x80000000 | 47 | bic \irqstat, \irqstat, #0x80000000 |
48 | mov \irqnr, \irqstat, lsr #16 | 48 | mov \irqnr, \irqstat, lsr #16 |
49 | add \irqnr, \irqnr, #(PXA_IRQ(0)) | ||
49 | 1001: | 50 | 1001: |
50 | .endm | 51 | .endm |
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c index d694ce289668..6112af431fa4 100644 --- a/arch/arm/mach-pxa/irq.c +++ b/arch/arm/mach-pxa/irq.c | |||
@@ -25,6 +25,8 @@ | |||
25 | 25 | ||
26 | #include "generic.h" | 26 | #include "generic.h" |
27 | 27 | ||
28 | #define MAX_INTERNAL_IRQS 128 | ||
29 | |||
28 | #define IRQ_BIT(n) (((n) - PXA_IRQ(0)) & 0x1f) | 30 | #define IRQ_BIT(n) (((n) - PXA_IRQ(0)) & 0x1f) |
29 | #define _ICMR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICMR2 : &ICMR)) | 31 | #define _ICMR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICMR2 : &ICMR)) |
30 | #define _ICLR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICLR2 : &ICLR)) | 32 | #define _ICLR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICLR2 : &ICLR)) |
@@ -122,6 +124,8 @@ void __init pxa_init_irq(int irq_nr, set_wake_t fn) | |||
122 | { | 124 | { |
123 | int irq, i; | 125 | int irq, i; |
124 | 126 | ||
127 | BUG_ON(irq_nr > MAX_INTERNAL_IRQS); | ||
128 | |||
125 | pxa_internal_irq_nr = irq_nr; | 129 | pxa_internal_irq_nr = irq_nr; |
126 | 130 | ||
127 | for (irq = PXA_IRQ(0); irq < PXA_IRQ(irq_nr); irq += 32) { | 131 | for (irq = PXA_IRQ(0); irq < PXA_IRQ(irq_nr); irq += 32) { |
@@ -149,7 +153,8 @@ void __init pxa_init_irq(int irq_nr, set_wake_t fn) | |||
149 | } | 153 | } |
150 | 154 | ||
151 | #ifdef CONFIG_PM | 155 | #ifdef CONFIG_PM |
152 | static unsigned long saved_icmr[2]; | 156 | static unsigned long saved_icmr[MAX_INTERNAL_IRQS/32]; |
157 | static unsigned long saved_ipr[MAX_INTERNAL_IRQS]; | ||
153 | 158 | ||
154 | static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state) | 159 | static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state) |
155 | { | 160 | { |
@@ -159,6 +164,8 @@ static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state) | |||
159 | saved_icmr[i] = _ICMR(irq); | 164 | saved_icmr[i] = _ICMR(irq); |
160 | _ICMR(irq) = 0; | 165 | _ICMR(irq) = 0; |
161 | } | 166 | } |
167 | for (i = 0; i < pxa_internal_irq_nr; i++) | ||
168 | saved_ipr[i] = IPR(i); | ||
162 | 169 | ||
163 | return 0; | 170 | return 0; |
164 | } | 171 | } |
@@ -171,6 +178,8 @@ static int pxa_irq_resume(struct sys_device *dev) | |||
171 | _ICMR(irq) = saved_icmr[i]; | 178 | _ICMR(irq) = saved_icmr[i]; |
172 | _ICLR(irq) = 0; | 179 | _ICLR(irq) = 0; |
173 | } | 180 | } |
181 | for (i = 0; i < pxa_internal_irq_nr; i++) | ||
182 | IPR(i) = saved_ipr[i]; | ||
174 | 183 | ||
175 | ICCR = 1; | 184 | ICCR = 1; |
176 | return 0; | 185 | return 0; |
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c index bb2cc0dd44ec..0b92291a58f6 100644 --- a/arch/arm/mach-pxa/palmtc.c +++ b/arch/arm/mach-pxa/palmtc.c | |||
@@ -292,10 +292,10 @@ const static unsigned int palmtc_keypad_col_gpios[] = { | |||
292 | 292 | ||
293 | static struct matrix_keypad_platform_data palmtc_keypad_platform_data = { | 293 | static struct matrix_keypad_platform_data palmtc_keypad_platform_data = { |
294 | .keymap_data = &palmtc_keymap_data, | 294 | .keymap_data = &palmtc_keymap_data, |
295 | .col_gpios = palmtc_keypad_row_gpios, | 295 | .row_gpios = palmtc_keypad_row_gpios, |
296 | .num_col_gpios = 12, | 296 | .num_row_gpios = ARRAY_SIZE(palmtc_keypad_row_gpios), |
297 | .row_gpios = palmtc_keypad_col_gpios, | 297 | .col_gpios = palmtc_keypad_col_gpios, |
298 | .num_row_gpios = 4, | 298 | .num_col_gpios = ARRAY_SIZE(palmtc_keypad_col_gpios), |
299 | .active_low = 1, | 299 | .active_low = 1, |
300 | 300 | ||
301 | .debounce_ms = 20, | 301 | .debounce_ms = 20, |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index ee8d6038ce82..d98023f55503 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
18 | #include <linux/gpio_keys.h> | ||
18 | #include <linux/gpio.h> | 19 | #include <linux/gpio.h> |
19 | #include <linux/leds.h> | 20 | #include <linux/leds.h> |
20 | #include <linux/mtd/physmap.h> | 21 | #include <linux/mtd/physmap.h> |
@@ -375,6 +376,43 @@ static struct platform_device spitzkbd_device = { | |||
375 | }; | 376 | }; |
376 | 377 | ||
377 | 378 | ||
379 | static struct gpio_keys_button spitz_gpio_keys[] = { | ||
380 | { | ||
381 | .type = EV_PWR, | ||
382 | .code = KEY_SUSPEND, | ||
383 | .gpio = SPITZ_GPIO_ON_KEY, | ||
384 | .desc = "On/Off", | ||
385 | .wakeup = 1, | ||
386 | }, | ||
387 | /* Two buttons detecting the lid state */ | ||
388 | { | ||
389 | .type = EV_SW, | ||
390 | .code = 0, | ||
391 | .gpio = SPITZ_GPIO_SWA, | ||
392 | .desc = "Display Down", | ||
393 | }, | ||
394 | { | ||
395 | .type = EV_SW, | ||
396 | .code = 1, | ||
397 | .gpio = SPITZ_GPIO_SWB, | ||
398 | .desc = "Lid Closed", | ||
399 | }, | ||
400 | }; | ||
401 | |||
402 | static struct gpio_keys_platform_data spitz_gpio_keys_platform_data = { | ||
403 | .buttons = spitz_gpio_keys, | ||
404 | .nbuttons = ARRAY_SIZE(spitz_gpio_keys), | ||
405 | }; | ||
406 | |||
407 | static struct platform_device spitz_gpio_keys_device = { | ||
408 | .name = "gpio-keys", | ||
409 | .id = -1, | ||
410 | .dev = { | ||
411 | .platform_data = &spitz_gpio_keys_platform_data, | ||
412 | }, | ||
413 | }; | ||
414 | |||
415 | |||
378 | /* | 416 | /* |
379 | * Spitz LEDs | 417 | * Spitz LEDs |
380 | */ | 418 | */ |
@@ -689,6 +727,7 @@ static struct platform_device sharpsl_rom_device = { | |||
689 | static struct platform_device *devices[] __initdata = { | 727 | static struct platform_device *devices[] __initdata = { |
690 | &spitzscoop_device, | 728 | &spitzscoop_device, |
691 | &spitzkbd_device, | 729 | &spitzkbd_device, |
730 | &spitz_gpio_keys_device, | ||
692 | &spitzled_device, | 731 | &spitzled_device, |
693 | &sharpsl_nand_device, | 732 | &sharpsl_nand_device, |
694 | &sharpsl_rom_device, | 733 | &sharpsl_rom_device, |
@@ -740,11 +779,36 @@ static void __init common_init(void) | |||
740 | pxa_set_i2c_info(NULL); | 779 | pxa_set_i2c_info(NULL); |
741 | } | 780 | } |
742 | 781 | ||
782 | #if defined(CONFIG_MACH_AKITA) || defined(CONFIG_MACH_BORZOI) | ||
783 | static struct nand_bbt_descr sharpsl_akita_bbt = { | ||
784 | .options = 0, | ||
785 | .offs = 4, | ||
786 | .len = 1, | ||
787 | .pattern = scan_ff_pattern | ||
788 | }; | ||
789 | |||
790 | static struct nand_ecclayout akita_oobinfo = { | ||
791 | .eccbytes = 24, | ||
792 | .eccpos = { | ||
793 | 0x5, 0x1, 0x2, 0x3, 0x6, 0x7, 0x15, 0x11, | ||
794 | 0x12, 0x13, 0x16, 0x17, 0x25, 0x21, 0x22, 0x23, | ||
795 | 0x26, 0x27, 0x35, 0x31, 0x32, 0x33, 0x36, 0x37}, | ||
796 | .oobfree = {{0x08, 0x09}} | ||
797 | }; | ||
798 | #endif | ||
799 | |||
743 | #if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI) | 800 | #if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI) |
744 | static void __init spitz_init(void) | 801 | static void __init spitz_init(void) |
745 | { | 802 | { |
746 | spitz_ficp_platform_data.gpio_pwdown = SPITZ_GPIO_IR_ON; | 803 | spitz_ficp_platform_data.gpio_pwdown = SPITZ_GPIO_IR_ON; |
747 | 804 | ||
805 | #ifdef CONFIG_MACH_BORZOI | ||
806 | if (machine_is_borzoi()) { | ||
807 | sharpsl_nand_platform_data.badblock_pattern = &sharpsl_akita_bbt; | ||
808 | sharpsl_nand_platform_data.ecc_layout = &akita_oobinfo; | ||
809 | } | ||
810 | #endif | ||
811 | |||
748 | platform_scoop_config = &spitz_pcmcia_config; | 812 | platform_scoop_config = &spitz_pcmcia_config; |
749 | 813 | ||
750 | common_init(); | 814 | common_init(); |
@@ -769,22 +833,6 @@ static struct i2c_board_info akita_i2c_board_info[] = { | |||
769 | }, | 833 | }, |
770 | }; | 834 | }; |
771 | 835 | ||
772 | static struct nand_bbt_descr sharpsl_akita_bbt = { | ||
773 | .options = 0, | ||
774 | .offs = 4, | ||
775 | .len = 1, | ||
776 | .pattern = scan_ff_pattern | ||
777 | }; | ||
778 | |||
779 | static struct nand_ecclayout akita_oobinfo = { | ||
780 | .eccbytes = 24, | ||
781 | .eccpos = { | ||
782 | 0x5, 0x1, 0x2, 0x3, 0x6, 0x7, 0x15, 0x11, | ||
783 | 0x12, 0x13, 0x16, 0x17, 0x25, 0x21, 0x22, 0x23, | ||
784 | 0x26, 0x27, 0x35, 0x31, 0x32, 0x33, 0x36, 0x37}, | ||
785 | .oobfree = {{0x08, 0x09}} | ||
786 | }; | ||
787 | |||
788 | static void __init akita_init(void) | 836 | static void __init akita_init(void) |
789 | { | 837 | { |
790 | spitz_ficp_platform_data.gpio_pwdown = AKITA_GPIO_IR_ON; | 838 | spitz_ficp_platform_data.gpio_pwdown = AKITA_GPIO_IR_ON; |
diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig index dfc9b0bc6eb2..c48e1f2c3349 100644 --- a/arch/arm/mach-realview/Kconfig +++ b/arch/arm/mach-realview/Kconfig | |||
@@ -70,6 +70,8 @@ config MACH_REALVIEW_PBX | |||
70 | bool "Support RealView/PBX platform" | 70 | bool "Support RealView/PBX platform" |
71 | select ARM_GIC | 71 | select ARM_GIC |
72 | select HAVE_PATA_PLATFORM | 72 | select HAVE_PATA_PLATFORM |
73 | select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !HIGH_PHYS_OFFSET | ||
74 | select ZONE_DMA if SPARSEMEM | ||
73 | help | 75 | help |
74 | Include support for the ARM(R) RealView PBX platform. | 76 | Include support for the ARM(R) RealView PBX platform. |
75 | 77 | ||
@@ -82,6 +84,7 @@ config REALVIEW_HIGH_PHYS_OFFSET | |||
82 | 0x70000000, 256MB of which being mirrored at 0x00000000. If | 84 | 0x70000000, 256MB of which being mirrored at 0x00000000. If |
83 | the board supports 512MB of RAM, this option allows the | 85 | the board supports 512MB of RAM, this option allows the |
84 | memory to be accessed contiguously at the high physical | 86 | memory to be accessed contiguously at the high physical |
85 | offset. | 87 | offset. On the PBX board, disabling this option allows 1GB of |
88 | RAM to be used with SPARSEMEM. | ||
86 | 89 | ||
87 | endmenu | 90 | endmenu |
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index a2083b60e3fb..9f293438e020 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
@@ -59,6 +59,25 @@ | |||
59 | /* used by entry-macro.S and platsmp.c */ | 59 | /* used by entry-macro.S and platsmp.c */ |
60 | void __iomem *gic_cpu_base_addr; | 60 | void __iomem *gic_cpu_base_addr; |
61 | 61 | ||
62 | #ifdef CONFIG_ZONE_DMA | ||
63 | /* | ||
64 | * Adjust the zones if there are restrictions for DMA access. | ||
65 | */ | ||
66 | void __init realview_adjust_zones(int node, unsigned long *size, | ||
67 | unsigned long *hole) | ||
68 | { | ||
69 | unsigned long dma_size = SZ_256M >> PAGE_SHIFT; | ||
70 | |||
71 | if (!machine_is_realview_pbx() || node || (size[0] <= dma_size)) | ||
72 | return; | ||
73 | |||
74 | size[ZONE_NORMAL] = size[0] - dma_size; | ||
75 | size[ZONE_DMA] = dma_size; | ||
76 | hole[ZONE_NORMAL] = hole[0]; | ||
77 | hole[ZONE_DMA] = 0; | ||
78 | } | ||
79 | #endif | ||
80 | |||
62 | /* | 81 | /* |
63 | * This is the RealView sched_clock implementation. This has | 82 | * This is the RealView sched_clock implementation. This has |
64 | * a resolution of 41.7ns, and a maximum value of about 179s. | 83 | * a resolution of 41.7ns, and a maximum value of about 179s. |
@@ -543,7 +562,7 @@ static int realview_clcd_setup(struct clcd_fb *fb) | |||
543 | fb->panel = realview_clcd_panel(); | 562 | fb->panel = realview_clcd_panel(); |
544 | 563 | ||
545 | fb->fb.screen_base = dma_alloc_writecombine(&fb->dev->dev, framesize, | 564 | fb->fb.screen_base = dma_alloc_writecombine(&fb->dev->dev, framesize, |
546 | &dma, GFP_KERNEL); | 565 | &dma, GFP_KERNEL | GFP_DMA); |
547 | if (!fb->fb.screen_base) { | 566 | if (!fb->fb.screen_base) { |
548 | printk(KERN_ERR "CLCD: unable to map framebuffer\n"); | 567 | printk(KERN_ERR "CLCD: unable to map framebuffer\n"); |
549 | return -ENOMEM; | 568 | return -ENOMEM; |
@@ -788,3 +807,24 @@ void __init realview_timer_init(unsigned int timer_irq) | |||
788 | realview_clocksource_init(); | 807 | realview_clocksource_init(); |
789 | realview_clockevents_init(timer_irq); | 808 | realview_clockevents_init(timer_irq); |
790 | } | 809 | } |
810 | |||
811 | /* | ||
812 | * Setup the memory banks. | ||
813 | */ | ||
814 | void realview_fixup(struct machine_desc *mdesc, struct tag *tags, char **from, | ||
815 | struct meminfo *meminfo) | ||
816 | { | ||
817 | /* | ||
818 | * Most RealView platforms have 512MB contiguous RAM at 0x70000000. | ||
819 | * Half of this is mirrored at 0. | ||
820 | */ | ||
821 | #ifdef CONFIG_REALVIEW_HIGH_PHYS_OFFSET | ||
822 | meminfo->bank[0].start = 0x70000000; | ||
823 | meminfo->bank[0].size = SZ_512M; | ||
824 | meminfo->nr_banks = 1; | ||
825 | #else | ||
826 | meminfo->bank[0].start = 0; | ||
827 | meminfo->bank[0].size = SZ_256M; | ||
828 | meminfo->nr_banks = 1; | ||
829 | #endif | ||
830 | } | ||
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index 46cd6acb4d40..781bca68a9fa 100644 --- a/arch/arm/mach-realview/core.h +++ b/arch/arm/mach-realview/core.h | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/amba/bus.h> | 25 | #include <linux/amba/bus.h> |
26 | #include <linux/io.h> | 26 | #include <linux/io.h> |
27 | 27 | ||
28 | #include <asm/setup.h> | ||
28 | #include <asm/leds.h> | 29 | #include <asm/leds.h> |
29 | 30 | ||
30 | #define AMBA_DEVICE(name,busid,base,plat) \ | 31 | #define AMBA_DEVICE(name,busid,base,plat) \ |
@@ -44,6 +45,8 @@ static struct amba_device name##_device = { \ | |||
44 | /* .dma = base##_DMA,*/ \ | 45 | /* .dma = base##_DMA,*/ \ |
45 | } | 46 | } |
46 | 47 | ||
48 | struct machine_desc; | ||
49 | |||
47 | extern struct platform_device realview_flash_device; | 50 | extern struct platform_device realview_flash_device; |
48 | extern struct platform_device realview_cf_device; | 51 | extern struct platform_device realview_cf_device; |
49 | extern struct platform_device realview_i2c_device; | 52 | extern struct platform_device realview_i2c_device; |
@@ -61,5 +64,8 @@ extern void realview_timer_init(unsigned int timer_irq); | |||
61 | extern int realview_flash_register(struct resource *res, u32 num); | 64 | extern int realview_flash_register(struct resource *res, u32 num); |
62 | extern int realview_eth_register(const char *name, struct resource *res); | 65 | extern int realview_eth_register(const char *name, struct resource *res); |
63 | extern int realview_usb_register(struct resource *res); | 66 | extern int realview_usb_register(struct resource *res); |
67 | extern void realview_fixup(struct machine_desc *mdesc, struct tag *tags, | ||
68 | char **from, struct meminfo *meminfo); | ||
69 | extern void (*realview_reset)(char); | ||
64 | 70 | ||
65 | #endif | 71 | #endif |
diff --git a/arch/arm/mach-realview/include/mach/board-pb1176.h b/arch/arm/mach-realview/include/mach/board-pb1176.h index 98f8e7eeacc2..34b80b7d40b8 100644 --- a/arch/arm/mach-realview/include/mach/board-pb1176.h +++ b/arch/arm/mach-realview/include/mach/board-pb1176.h | |||
@@ -73,4 +73,9 @@ | |||
73 | #define REALVIEW_PB1176_GIC_DIST_BASE 0x10041000 /* GIC distributor, on FPGA */ | 73 | #define REALVIEW_PB1176_GIC_DIST_BASE 0x10041000 /* GIC distributor, on FPGA */ |
74 | #define REALVIEW_PB1176_L220_BASE 0x10110000 /* L220 registers */ | 74 | #define REALVIEW_PB1176_L220_BASE 0x10110000 /* L220 registers */ |
75 | 75 | ||
76 | /* | ||
77 | * Control register SYS_RESETCTL is set to 1 to force a soft reset | ||
78 | */ | ||
79 | #define REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL 0x0100 | ||
80 | |||
76 | #endif /* __ASM_ARCH_BOARD_PB1176_H */ | 81 | #endif /* __ASM_ARCH_BOARD_PB1176_H */ |
diff --git a/arch/arm/mach-realview/include/mach/board-pb11mp.h b/arch/arm/mach-realview/include/mach/board-pb11mp.h index f0d68e0fea01..7abf918b77e9 100644 --- a/arch/arm/mach-realview/include/mach/board-pb11mp.h +++ b/arch/arm/mach-realview/include/mach/board-pb11mp.h | |||
@@ -81,4 +81,16 @@ | |||
81 | #define REALVIEW_TC11MP_GIC_DIST_BASE 0x1F001000 /* Test chip interrupt controller distributor */ | 81 | #define REALVIEW_TC11MP_GIC_DIST_BASE 0x1F001000 /* Test chip interrupt controller distributor */ |
82 | #define REALVIEW_TC11MP_L220_BASE 0x1F002000 /* L220 registers */ | 82 | #define REALVIEW_TC11MP_L220_BASE 0x1F002000 /* L220 registers */ |
83 | 83 | ||
84 | /* | ||
85 | * Values for REALVIEW_SYS_RESET_CTRL | ||
86 | */ | ||
87 | #define REALVIEW_PB11MP_SYS_CTRL_RESET_CONFIGCLR 0x01 | ||
88 | #define REALVIEW_PB11MP_SYS_CTRL_RESET_CONFIGINIT 0x02 | ||
89 | #define REALVIEW_PB11MP_SYS_CTRL_RESET_DLLRESET 0x03 | ||
90 | #define REALVIEW_PB11MP_SYS_CTRL_RESET_PLLRESET 0x04 | ||
91 | #define REALVIEW_PB11MP_SYS_CTRL_RESET_POR 0x05 | ||
92 | #define REALVIEW_PB11MP_SYS_CTRL_RESET_DoC 0x06 | ||
93 | |||
94 | #define REALVIEW_PB11MP_SYS_CTRL_LED (1 << 0) | ||
95 | |||
84 | #endif /* __ASM_ARCH_BOARD_PB11MP_H */ | 96 | #endif /* __ASM_ARCH_BOARD_PB11MP_H */ |
diff --git a/arch/arm/mach-realview/include/mach/memory.h b/arch/arm/mach-realview/include/mach/memory.h index 293c30025e7e..2417bbcf97fd 100644 --- a/arch/arm/mach-realview/include/mach/memory.h +++ b/arch/arm/mach-realview/include/mach/memory.h | |||
@@ -29,4 +29,53 @@ | |||
29 | #define PHYS_OFFSET UL(0x00000000) | 29 | #define PHYS_OFFSET UL(0x00000000) |
30 | #endif | 30 | #endif |
31 | 31 | ||
32 | #if !defined(__ASSEMBLY__) && defined(CONFIG_ZONE_DMA) | ||
33 | extern void realview_adjust_zones(int node, unsigned long *size, | ||
34 | unsigned long *hole); | ||
35 | #define arch_adjust_zones(node, size, hole) \ | ||
36 | realview_adjust_zones(node, size, hole) | ||
37 | |||
38 | #define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_256M - 1) | ||
39 | #define MAX_DMA_ADDRESS (PAGE_OFFSET + SZ_256M) | ||
40 | #endif | ||
41 | |||
42 | #ifdef CONFIG_SPARSEMEM | ||
43 | |||
44 | /* | ||
45 | * Sparsemem definitions for RealView PBX. | ||
46 | * | ||
47 | * The RealView PBX board has another block of 512MB of RAM at 0x20000000, | ||
48 | * however only the block at 0x70000000 (or the 256MB mirror at 0x00000000) | ||
49 | * may be used for DMA. | ||
50 | * | ||
51 | * The macros below define a section size of 256MB and a non-linear virtual to | ||
52 | * physical mapping: | ||
53 | * | ||
54 | * 256MB @ 0x00000000 -> PAGE_OFFSET | ||
55 | * 512MB @ 0x20000000 -> PAGE_OFFSET + 0x10000000 | ||
56 | * 256MB @ 0x80000000 -> PAGE_OFFSET + 0x30000000 | ||
57 | */ | ||
58 | #ifdef CONFIG_REALVIEW_HIGH_PHYS_OFFSET | ||
59 | #error "SPARSEMEM not available with REALVIEW_HIGH_PHYS_OFFSET" | ||
60 | #endif | ||
61 | |||
62 | #define MAX_PHYSMEM_BITS 32 | ||
63 | #define SECTION_SIZE_BITS 28 | ||
64 | |||
65 | /* bank page offsets */ | ||
66 | #define PAGE_OFFSET1 (PAGE_OFFSET + 0x10000000) | ||
67 | #define PAGE_OFFSET2 (PAGE_OFFSET + 0x30000000) | ||
68 | |||
69 | #define __phys_to_virt(phys) \ | ||
70 | ((phys) >= 0x80000000 ? (phys) - 0x80000000 + PAGE_OFFSET2 : \ | ||
71 | (phys) >= 0x20000000 ? (phys) - 0x20000000 + PAGE_OFFSET1 : \ | ||
72 | (phys) + PAGE_OFFSET) | ||
73 | |||
74 | #define __virt_to_phys(virt) \ | ||
75 | ((virt) >= PAGE_OFFSET2 ? (virt) - PAGE_OFFSET2 + 0x80000000 : \ | ||
76 | (virt) >= PAGE_OFFSET1 ? (virt) - PAGE_OFFSET1 + 0x20000000 : \ | ||
77 | (virt) - PAGE_OFFSET) | ||
78 | |||
79 | #endif /* CONFIG_SPARSEMEM */ | ||
80 | |||
32 | #endif | 81 | #endif |
diff --git a/arch/arm/mach-realview/include/mach/platform.h b/arch/arm/mach-realview/include/mach/platform.h index c8f50835fed2..4f46bf71e752 100644 --- a/arch/arm/mach-realview/include/mach/platform.h +++ b/arch/arm/mach-realview/include/mach/platform.h | |||
@@ -119,19 +119,6 @@ | |||
119 | #define REALVIEW_SYS_TEST_OSC3 (REALVIEW_SYS_BASE + REALVIEW_SYS_TEST_OSC3_OFFSET) | 119 | #define REALVIEW_SYS_TEST_OSC3 (REALVIEW_SYS_BASE + REALVIEW_SYS_TEST_OSC3_OFFSET) |
120 | #define REALVIEW_SYS_TEST_OSC4 (REALVIEW_SYS_BASE + REALVIEW_SYS_TEST_OSC4_OFFSET) | 120 | #define REALVIEW_SYS_TEST_OSC4 (REALVIEW_SYS_BASE + REALVIEW_SYS_TEST_OSC4_OFFSET) |
121 | 121 | ||
122 | /* | ||
123 | * Values for REALVIEW_SYS_RESET_CTRL | ||
124 | */ | ||
125 | #define REALVIEW_SYS_CTRL_RESET_CONFIGCLR 0x01 | ||
126 | #define REALVIEW_SYS_CTRL_RESET_CONFIGINIT 0x02 | ||
127 | #define REALVIEW_SYS_CTRL_RESET_DLLRESET 0x03 | ||
128 | #define REALVIEW_SYS_CTRL_RESET_PLLRESET 0x04 | ||
129 | #define REALVIEW_SYS_CTRL_RESET_POR 0x05 | ||
130 | #define REALVIEW_SYS_CTRL_RESET_DoC 0x06 | ||
131 | |||
132 | #define REALVIEW_SYS_CTRL_LED (1 << 0) | ||
133 | |||
134 | |||
135 | /* ------------------------------------------------------------------------ | 122 | /* ------------------------------------------------------------------------ |
136 | * RealView control registers | 123 | * RealView control registers |
137 | * ------------------------------------------------------------------------ | 124 | * ------------------------------------------------------------------------ |
@@ -153,7 +140,7 @@ | |||
153 | * SYS_CLD, SYS_BOOTCS | 140 | * SYS_CLD, SYS_BOOTCS |
154 | */ | 141 | */ |
155 | #define REALVIEW_SYS_LOCK_LOCKED (1 << 16) | 142 | #define REALVIEW_SYS_LOCK_LOCKED (1 << 16) |
156 | #define REALVIEW_SYS_LOCKVAL_MASK 0xFFFF /* write 0xA05F to enable write access */ | 143 | #define REALVIEW_SYS_LOCKVAL_MASK 0xA05F /* Enable write access */ |
157 | 144 | ||
158 | /* | 145 | /* |
159 | * REALVIEW_SYS_FLASH | 146 | * REALVIEW_SYS_FLASH |
diff --git a/arch/arm/mach-realview/include/mach/system.h b/arch/arm/mach-realview/include/mach/system.h index 1a15a441e027..a30f2e3ec178 100644 --- a/arch/arm/mach-realview/include/mach/system.h +++ b/arch/arm/mach-realview/include/mach/system.h | |||
@@ -25,6 +25,8 @@ | |||
25 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
26 | #include <mach/platform.h> | 26 | #include <mach/platform.h> |
27 | 27 | ||
28 | void (*realview_reset)(char mode); | ||
29 | |||
28 | static inline void arch_idle(void) | 30 | static inline void arch_idle(void) |
29 | { | 31 | { |
30 | /* | 32 | /* |
@@ -36,16 +38,12 @@ static inline void arch_idle(void) | |||
36 | 38 | ||
37 | static inline void arch_reset(char mode, const char *cmd) | 39 | static inline void arch_reset(char mode, const char *cmd) |
38 | { | 40 | { |
39 | void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_RESETCTL_OFFSET; | ||
40 | unsigned int val; | ||
41 | |||
42 | /* | 41 | /* |
43 | * To reset, we hit the on-board reset register | 42 | * To reset, we hit the on-board reset register |
44 | * in the system FPGA | 43 | * in the system FPGA |
45 | */ | 44 | */ |
46 | val = __raw_readl(hdr_ctrl); | 45 | if (realview_reset) |
47 | val |= REALVIEW_SYS_CTRL_RESET_CONFIGCLR; | 46 | realview_reset(mode); |
48 | __raw_writel(val, hdr_ctrl); | ||
49 | } | 47 | } |
50 | 48 | ||
51 | #endif | 49 | #endif |
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c index a88458b4799d..009265818d55 100644 --- a/arch/arm/mach-realview/platsmp.c +++ b/arch/arm/mach-realview/platsmp.c | |||
@@ -146,11 +146,8 @@ static void __init poke_milo(void) | |||
146 | * register. The BootMonitor waits for this register to become | 146 | * register. The BootMonitor waits for this register to become |
147 | * non-zero. | 147 | * non-zero. |
148 | */ | 148 | */ |
149 | #define REALVIEW_SYS_FLAGSS_OFFSET 0x30 | ||
150 | #define REALVIEW_SYS_FLAGSC_OFFSET 0x34 | ||
151 | __raw_writel(BSYM(virt_to_phys(realview_secondary_startup)), | 149 | __raw_writel(BSYM(virt_to_phys(realview_secondary_startup)), |
152 | __io_address(REALVIEW_SYS_BASE) + | 150 | __io_address(REALVIEW_SYS_FLAGSSET)); |
153 | REALVIEW_SYS_FLAGSS_OFFSET); | ||
154 | 151 | ||
155 | mb(); | 152 | mb(); |
156 | } | 153 | } |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 1d65e64ae571..917f8ca3abff 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
@@ -415,6 +415,7 @@ MACHINE_START(REALVIEW_EB, "ARM-RealView EB") | |||
415 | .phys_io = REALVIEW_EB_UART0_BASE, | 415 | .phys_io = REALVIEW_EB_UART0_BASE, |
416 | .io_pg_offst = (IO_ADDRESS(REALVIEW_EB_UART0_BASE) >> 18) & 0xfffc, | 416 | .io_pg_offst = (IO_ADDRESS(REALVIEW_EB_UART0_BASE) >> 18) & 0xfffc, |
417 | .boot_params = PHYS_OFFSET + 0x00000100, | 417 | .boot_params = PHYS_OFFSET + 0x00000100, |
418 | .fixup = realview_fixup, | ||
418 | .map_io = realview_eb_map_io, | 419 | .map_io = realview_eb_map_io, |
419 | .init_irq = gic_init_irq, | 420 | .init_irq = gic_init_irq, |
420 | .timer = &realview_eb_timer, | 421 | .timer = &realview_eb_timer, |
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index 2817fe099319..7fb726d5f8b9 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c | |||
@@ -290,6 +290,28 @@ static struct sys_timer realview_pb1176_timer = { | |||
290 | .init = realview_pb1176_timer_init, | 290 | .init = realview_pb1176_timer_init, |
291 | }; | 291 | }; |
292 | 292 | ||
293 | static void realview_pb1176_reset(char mode) | ||
294 | { | ||
295 | void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + | ||
296 | REALVIEW_SYS_RESETCTL_OFFSET; | ||
297 | void __iomem *rst_hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + | ||
298 | REALVIEW_SYS_LOCK_OFFSET; | ||
299 | __raw_writel(REALVIEW_SYS_LOCKVAL_MASK, rst_hdr_ctrl); | ||
300 | __raw_writel(REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL, hdr_ctrl); | ||
301 | } | ||
302 | |||
303 | static void realview_pb1176_fixup(struct machine_desc *mdesc, | ||
304 | struct tag *tags, char **from, | ||
305 | struct meminfo *meminfo) | ||
306 | { | ||
307 | /* | ||
308 | * RealView PB1176 only has 128MB of RAM mapped at 0. | ||
309 | */ | ||
310 | meminfo->bank[0].start = 0; | ||
311 | meminfo->bank[0].size = SZ_128M; | ||
312 | meminfo->nr_banks = 1; | ||
313 | } | ||
314 | |||
293 | static void __init realview_pb1176_init(void) | 315 | static void __init realview_pb1176_init(void) |
294 | { | 316 | { |
295 | int i; | 317 | int i; |
@@ -313,6 +335,7 @@ static void __init realview_pb1176_init(void) | |||
313 | #ifdef CONFIG_LEDS | 335 | #ifdef CONFIG_LEDS |
314 | leds_event = realview_leds_event; | 336 | leds_event = realview_leds_event; |
315 | #endif | 337 | #endif |
338 | realview_reset = realview_pb1176_reset; | ||
316 | } | 339 | } |
317 | 340 | ||
318 | MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") | 341 | MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") |
@@ -320,6 +343,7 @@ MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") | |||
320 | .phys_io = REALVIEW_PB1176_UART0_BASE, | 343 | .phys_io = REALVIEW_PB1176_UART0_BASE, |
321 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PB1176_UART0_BASE) >> 18) & 0xfffc, | 344 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PB1176_UART0_BASE) >> 18) & 0xfffc, |
322 | .boot_params = PHYS_OFFSET + 0x00000100, | 345 | .boot_params = PHYS_OFFSET + 0x00000100, |
346 | .fixup = realview_pb1176_fixup, | ||
323 | .map_io = realview_pb1176_map_io, | 347 | .map_io = realview_pb1176_map_io, |
324 | .init_irq = gic_init_irq, | 348 | .init_irq = gic_init_irq, |
325 | .timer = &realview_pb1176_timer, | 349 | .timer = &realview_pb1176_timer, |
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c index 94680fcf726d..9bbbfc05f225 100644 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c | |||
@@ -299,6 +299,21 @@ static struct sys_timer realview_pb11mp_timer = { | |||
299 | .init = realview_pb11mp_timer_init, | 299 | .init = realview_pb11mp_timer_init, |
300 | }; | 300 | }; |
301 | 301 | ||
302 | static void realview_pb11mp_reset(char mode) | ||
303 | { | ||
304 | void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + | ||
305 | REALVIEW_SYS_RESETCTL_OFFSET; | ||
306 | unsigned int val; | ||
307 | |||
308 | /* | ||
309 | * To reset, we hit the on-board reset register | ||
310 | * in the system FPGA | ||
311 | */ | ||
312 | val = __raw_readl(hdr_ctrl); | ||
313 | val |= REALVIEW_PB11MP_SYS_CTRL_RESET_CONFIGCLR; | ||
314 | __raw_writel(val, hdr_ctrl); | ||
315 | } | ||
316 | |||
302 | static void __init realview_pb11mp_init(void) | 317 | static void __init realview_pb11mp_init(void) |
303 | { | 318 | { |
304 | int i; | 319 | int i; |
@@ -324,6 +339,7 @@ static void __init realview_pb11mp_init(void) | |||
324 | #ifdef CONFIG_LEDS | 339 | #ifdef CONFIG_LEDS |
325 | leds_event = realview_leds_event; | 340 | leds_event = realview_leds_event; |
326 | #endif | 341 | #endif |
342 | realview_reset = realview_pb11mp_reset; | ||
327 | } | 343 | } |
328 | 344 | ||
329 | MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") | 345 | MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") |
@@ -331,6 +347,7 @@ MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") | |||
331 | .phys_io = REALVIEW_PB11MP_UART0_BASE, | 347 | .phys_io = REALVIEW_PB11MP_UART0_BASE, |
332 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PB11MP_UART0_BASE) >> 18) & 0xfffc, | 348 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PB11MP_UART0_BASE) >> 18) & 0xfffc, |
333 | .boot_params = PHYS_OFFSET + 0x00000100, | 349 | .boot_params = PHYS_OFFSET + 0x00000100, |
350 | .fixup = realview_fixup, | ||
334 | .map_io = realview_pb11mp_map_io, | 351 | .map_io = realview_pb11mp_map_io, |
335 | .init_irq = gic_init_irq, | 352 | .init_irq = gic_init_irq, |
336 | .timer = &realview_pb11mp_timer, | 353 | .timer = &realview_pb11mp_timer, |
diff --git a/arch/arm/mach-realview/realview_pba8.c b/arch/arm/mach-realview/realview_pba8.c index 941beb2b9709..fe861e96c566 100644 --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c | |||
@@ -298,6 +298,7 @@ MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") | |||
298 | .phys_io = REALVIEW_PBA8_UART0_BASE, | 298 | .phys_io = REALVIEW_PBA8_UART0_BASE, |
299 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PBA8_UART0_BASE) >> 18) & 0xfffc, | 299 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PBA8_UART0_BASE) >> 18) & 0xfffc, |
300 | .boot_params = PHYS_OFFSET + 0x00000100, | 300 | .boot_params = PHYS_OFFSET + 0x00000100, |
301 | .fixup = realview_fixup, | ||
301 | .map_io = realview_pba8_map_io, | 302 | .map_io = realview_pba8_map_io, |
302 | .init_irq = gic_init_irq, | 303 | .init_irq = gic_init_irq, |
303 | .timer = &realview_pba8_timer, | 304 | .timer = &realview_pba8_timer, |
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index 7e4bc6cdca52..ec39488e2b42 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c | |||
@@ -304,6 +304,26 @@ static struct sys_timer realview_pbx_timer = { | |||
304 | .init = realview_pbx_timer_init, | 304 | .init = realview_pbx_timer_init, |
305 | }; | 305 | }; |
306 | 306 | ||
307 | static void realview_pbx_fixup(struct machine_desc *mdesc, struct tag *tags, | ||
308 | char **from, struct meminfo *meminfo) | ||
309 | { | ||
310 | #ifdef CONFIG_SPARSEMEM | ||
311 | /* | ||
312 | * Memory configuration with SPARSEMEM enabled on RealView PBX (see | ||
313 | * asm/mach/memory.h for more information). | ||
314 | */ | ||
315 | meminfo->bank[0].start = 0; | ||
316 | meminfo->bank[0].size = SZ_256M; | ||
317 | meminfo->bank[1].start = 0x20000000; | ||
318 | meminfo->bank[1].size = SZ_512M; | ||
319 | meminfo->bank[2].start = 0x80000000; | ||
320 | meminfo->bank[2].size = SZ_256M; | ||
321 | meminfo->nr_banks = 3; | ||
322 | #else | ||
323 | realview_fixup(mdesc, tags, from, meminfo); | ||
324 | #endif | ||
325 | } | ||
326 | |||
307 | static void __init realview_pbx_init(void) | 327 | static void __init realview_pbx_init(void) |
308 | { | 328 | { |
309 | int i; | 329 | int i; |
@@ -345,6 +365,7 @@ MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") | |||
345 | .phys_io = REALVIEW_PBX_UART0_BASE, | 365 | .phys_io = REALVIEW_PBX_UART0_BASE, |
346 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PBX_UART0_BASE) >> 18) & 0xfffc, | 366 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PBX_UART0_BASE) >> 18) & 0xfffc, |
347 | .boot_params = PHYS_OFFSET + 0x00000100, | 367 | .boot_params = PHYS_OFFSET + 0x00000100, |
368 | .fixup = realview_pbx_fixup, | ||
348 | .map_io = realview_pbx_map_io, | 369 | .map_io = realview_pbx_map_io, |
349 | .init_irq = gic_init_irq, | 370 | .init_irq = gic_init_irq, |
350 | .timer = &realview_pbx_timer, | 371 | .timer = &realview_pbx_timer, |
diff --git a/arch/arm/mach-s3c2410/gpio.c b/arch/arm/mach-s3c2410/gpio.c index 7974afca297c..9664e011dae2 100644 --- a/arch/arm/mach-s3c2410/gpio.c +++ b/arch/arm/mach-s3c2410/gpio.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/io.h> | 28 | #include <linux/io.h> |
29 | 29 | ||
30 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
31 | #include <mach/gpio-fns.h> | ||
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | 33 | ||
33 | #include <mach/regs-gpio.h> | 34 | #include <mach/regs-gpio.h> |
diff --git a/arch/arm/mach-s3c2410/include/mach/dma.h b/arch/arm/mach-s3c2410/include/mach/dma.h index c3a2629e0ded..92e2687009ea 100644 --- a/arch/arm/mach-s3c2410/include/mach/dma.h +++ b/arch/arm/mach-s3c2410/include/mach/dma.h | |||
@@ -110,6 +110,8 @@ enum s3c2410_dma_loadst { | |||
110 | * waiting for reloads */ | 110 | * waiting for reloads */ |
111 | #define S3C2410_DMAF_AUTOSTART (1<<1) /* auto-start if buffer queued */ | 111 | #define S3C2410_DMAF_AUTOSTART (1<<1) /* auto-start if buffer queued */ |
112 | 112 | ||
113 | #define S3C2410_DMAF_CIRCULAR (1 << 2) /* no circular dma support */ | ||
114 | |||
113 | /* dma buffer */ | 115 | /* dma buffer */ |
114 | 116 | ||
115 | struct s3c2410_dma_buf; | 117 | struct s3c2410_dma_buf; |
@@ -194,4 +196,9 @@ struct s3c2410_dma_chan { | |||
194 | 196 | ||
195 | typedef unsigned long dma_device_t; | 197 | typedef unsigned long dma_device_t; |
196 | 198 | ||
199 | static inline bool s3c_dma_has_circular(void) | ||
200 | { | ||
201 | return false; | ||
202 | } | ||
203 | |||
197 | #endif /* __ASM_ARCH_DMA_H */ | 204 | #endif /* __ASM_ARCH_DMA_H */ |
diff --git a/arch/arm/mach-s3c2440/Kconfig b/arch/arm/mach-s3c2440/Kconfig index d7bba919a77e..a8b69d77571b 100644 --- a/arch/arm/mach-s3c2440/Kconfig +++ b/arch/arm/mach-s3c2440/Kconfig | |||
@@ -103,6 +103,7 @@ config MACH_MINI2440 | |||
103 | select LEDS_TRIGGER_BACKLIGHT | 103 | select LEDS_TRIGGER_BACKLIGHT |
104 | select SND_S3C24XX_SOC_S3C24XX_UDA134X | 104 | select SND_S3C24XX_SOC_S3C24XX_UDA134X |
105 | select S3C_DEV_NAND | 105 | select S3C_DEV_NAND |
106 | select S3C_DEV_USB_HOST | ||
106 | help | 107 | help |
107 | Say Y here to select support for the MINI2440. Is a 10cm x 10cm board | 108 | Say Y here to select support for the MINI2440. Is a 10cm x 10cm board |
108 | available via various sources. It can come with a 3.5" or 7" touch LCD. | 109 | available via various sources. It can come with a 3.5" or 7" touch LCD. |
diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c index ec71a6965786..1c3382fefdd2 100644 --- a/arch/arm/mach-s3c2440/mach-mini2440.c +++ b/arch/arm/mach-s3c2440/mach-mini2440.c | |||
@@ -144,7 +144,7 @@ static struct s3c2410_udc_mach_info mini2440_udc_cfg __initdata = { | |||
144 | .type = (S3C2410_LCDCON1_TFT16BPP |\ | 144 | .type = (S3C2410_LCDCON1_TFT16BPP |\ |
145 | S3C2410_LCDCON1_TFT) | 145 | S3C2410_LCDCON1_TFT) |
146 | 146 | ||
147 | struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = { | 147 | static struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = { |
148 | [0] = { /* mini2440 + 3.5" TFT + touchscreen */ | 148 | [0] = { /* mini2440 + 3.5" TFT + touchscreen */ |
149 | _LCD_DECLARE( | 149 | _LCD_DECLARE( |
150 | 7, /* The 3.5 is quite fast */ | 150 | 7, /* The 3.5 is quite fast */ |
@@ -191,7 +191,7 @@ struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = { | |||
191 | #define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2)) | 191 | #define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2)) |
192 | #define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2)) | 192 | #define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2)) |
193 | 193 | ||
194 | struct s3c2410fb_mach_info mini2440_fb_info __initdata = { | 194 | static struct s3c2410fb_mach_info mini2440_fb_info __initdata = { |
195 | .displays = &mini2440_lcd_cfg[0], /* not constant! see init */ | 195 | .displays = &mini2440_lcd_cfg[0], /* not constant! see init */ |
196 | .num_displays = 1, | 196 | .num_displays = 1, |
197 | .default_display = 0, | 197 | .default_display = 0, |
diff --git a/arch/arm/mach-s3c6400/include/mach/dma.h b/arch/arm/mach-s3c6400/include/mach/dma.h index 1067619f0ba0..6723860748be 100644 --- a/arch/arm/mach-s3c6400/include/mach/dma.h +++ b/arch/arm/mach-s3c6400/include/mach/dma.h | |||
@@ -58,12 +58,9 @@ enum dma_ch { | |||
58 | DMACH_MAX /* the end */ | 58 | DMACH_MAX /* the end */ |
59 | }; | 59 | }; |
60 | 60 | ||
61 | static __inline__ int s3c_dma_has_circular(void) | 61 | static __inline__ bool s3c_dma_has_circular(void) |
62 | { | 62 | { |
63 | /* we will be supporting ciruclar buffers as soon as we have DMA | 63 | return true; |
64 | * engine support. | ||
65 | */ | ||
66 | return 1; | ||
67 | } | 64 | } |
68 | 65 | ||
69 | #define S3C2410_DMAF_CIRCULAR (1 << 0) | 66 | #define S3C2410_DMAF_CIRCULAR (1 << 0) |
diff --git a/arch/arm/mach-s3c6410/Kconfig b/arch/arm/mach-s3c6410/Kconfig index 53fc3ff657f7..72d4b11b2077 100644 --- a/arch/arm/mach-s3c6410/Kconfig +++ b/arch/arm/mach-s3c6410/Kconfig | |||
@@ -77,6 +77,7 @@ config SMDK6410_WM1190_EV1 | |||
77 | depends on MACH_SMDK6410 | 77 | depends on MACH_SMDK6410 |
78 | select REGULATOR | 78 | select REGULATOR |
79 | select REGULATOR_WM8350 | 79 | select REGULATOR_WM8350 |
80 | select S3C24XX_GPIO_EXTRA64 | ||
80 | select MFD_WM8350_I2C | 81 | select MFD_WM8350_I2C |
81 | select MFD_WM8350_CONFIG_MODE_0 | 82 | select MFD_WM8350_CONFIG_MODE_0 |
82 | select MFD_WM8350_CONFIG_MODE_3 | 83 | select MFD_WM8350_CONFIG_MODE_3 |
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c index ea51dbe76e3e..9f1a21462620 100644 --- a/arch/arm/mach-s3c6410/mach-smdk6410.c +++ b/arch/arm/mach-s3c6410/mach-smdk6410.c | |||
@@ -320,6 +320,9 @@ static int __init smdk6410_wm8350_init(struct wm8350 *wm8350) | |||
320 | { | 320 | { |
321 | int i; | 321 | int i; |
322 | 322 | ||
323 | /* Configure the IRQ line */ | ||
324 | s3c_gpio_setpull(S3C64XX_GPN(12), S3C_GPIO_PULL_UP); | ||
325 | |||
323 | /* Instantiate the regulators */ | 326 | /* Instantiate the regulators */ |
324 | for (i = 0; i < ARRAY_SIZE(wm1190_regulators); i++) | 327 | for (i = 0; i < ARRAY_SIZE(wm1190_regulators); i++) |
325 | wm8350_register_regulator(wm8350, | 328 | wm8350_register_regulator(wm8350, |
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c index be60d6deee8b..653e25be3dd8 100644 --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c | |||
@@ -408,7 +408,7 @@ static struct platform_device keypad_device = { | |||
408 | }; | 408 | }; |
409 | 409 | ||
410 | static struct platform_device rtc_device = { | 410 | static struct platform_device rtc_device = { |
411 | .name = "rtc0", | 411 | .name = "rtc-coh901331", |
412 | .id = -1, | 412 | .id = -1, |
413 | .num_resources = ARRAY_SIZE(rtc_resources), | 413 | .num_resources = ARRAY_SIZE(rtc_resources), |
414 | .resource = rtc_resources, | 414 | .resource = rtc_resources, |
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig new file mode 100644 index 000000000000..03625d744857 --- /dev/null +++ b/arch/arm/mach-ux500/Kconfig | |||
@@ -0,0 +1,15 @@ | |||
1 | menu "ST-Ericsson platform type" | ||
2 | depends on ARCH_U8500 | ||
3 | |||
4 | comment "ST-Ericsson Multicore Mobile Platforms" | ||
5 | |||
6 | config MACH_U8500_MOP | ||
7 | bool "U8500 Early Development platform" | ||
8 | default y | ||
9 | select ARM_GIC | ||
10 | select HAS_MTU | ||
11 | help | ||
12 | Include support for mop500 development platform | ||
13 | based on U8500 architecture. The platform is based | ||
14 | on early drop silicon version of 8500. | ||
15 | endmenu | ||
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile new file mode 100644 index 000000000000..95e6e24c0042 --- /dev/null +++ b/arch/arm/mach-ux500/Makefile | |||
@@ -0,0 +1,8 @@ | |||
1 | # | ||
2 | # Makefile for the linux kernel, U8500 machine. | ||
3 | # | ||
4 | |||
5 | obj-y := clock.o | ||
6 | obj-$(CONFIG_ARCH_U8500) += cpu-u8500.o | ||
7 | obj-$(CONFIG_MACH_U8500_MOP) += board-mop500.o | ||
8 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o localtimer.o | ||
diff --git a/arch/arm/mach-ux500/Makefile.boot b/arch/arm/mach-ux500/Makefile.boot new file mode 100644 index 000000000000..c7e75acfe6c9 --- /dev/null +++ b/arch/arm/mach-ux500/Makefile.boot | |||
@@ -0,0 +1,4 @@ | |||
1 | zreladdr-y := 0x00008000 | ||
2 | params_phys-y := 0x00000100 | ||
3 | initrd_phys-y := 0x00800000 | ||
4 | |||
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c new file mode 100644 index 000000000000..aa5afbcc90f9 --- /dev/null +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -0,0 +1,158 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008-2009 ST-Ericsson | ||
3 | * | ||
4 | * Author: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2, as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | */ | ||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/interrupt.h> | ||
14 | #include <linux/platform_device.h> | ||
15 | #include <linux/io.h> | ||
16 | #include <linux/amba/bus.h> | ||
17 | #include <linux/amba/pl022.h> | ||
18 | #include <linux/spi/spi.h> | ||
19 | |||
20 | #include <asm/localtimer.h> | ||
21 | #include <asm/mach-types.h> | ||
22 | #include <asm/mach/arch.h> | ||
23 | |||
24 | #include <plat/mtu.h> | ||
25 | |||
26 | #include <mach/hardware.h> | ||
27 | #include <mach/setup.h> | ||
28 | |||
29 | #define __MEM_4K_RESOURCE(x) \ | ||
30 | .res = {.start = (x), .end = (x) + SZ_4K - 1, .flags = IORESOURCE_MEM} | ||
31 | |||
32 | /* These are active devices on this board */ | ||
33 | static struct amba_device uart0_device = { | ||
34 | .dev = { .init_name = "uart0" }, | ||
35 | __MEM_4K_RESOURCE(U8500_UART0_BASE), | ||
36 | .irq = {IRQ_UART0, NO_IRQ}, | ||
37 | }; | ||
38 | |||
39 | static struct amba_device uart1_device = { | ||
40 | .dev = { .init_name = "uart1" }, | ||
41 | __MEM_4K_RESOURCE(U8500_UART1_BASE), | ||
42 | .irq = {IRQ_UART1, NO_IRQ}, | ||
43 | }; | ||
44 | |||
45 | static struct amba_device uart2_device = { | ||
46 | .dev = { .init_name = "uart2" }, | ||
47 | __MEM_4K_RESOURCE(U8500_UART2_BASE), | ||
48 | .irq = {IRQ_UART2, NO_IRQ}, | ||
49 | }; | ||
50 | |||
51 | static void ab4500_spi_cs_control(u32 command) | ||
52 | { | ||
53 | /* set the FRM signal, which is CS - TODO */ | ||
54 | } | ||
55 | |||
56 | struct pl022_config_chip ab4500_chip_info = { | ||
57 | .lbm = LOOPBACK_DISABLED, | ||
58 | .com_mode = INTERRUPT_TRANSFER, | ||
59 | .iface = SSP_INTERFACE_MOTOROLA_SPI, | ||
60 | /* we can act as master only */ | ||
61 | .hierarchy = SSP_MASTER, | ||
62 | .slave_tx_disable = 0, | ||
63 | .endian_rx = SSP_RX_MSB, | ||
64 | .endian_tx = SSP_TX_MSB, | ||
65 | .data_size = SSP_DATA_BITS_24, | ||
66 | .rx_lev_trig = SSP_RX_1_OR_MORE_ELEM, | ||
67 | .tx_lev_trig = SSP_TX_1_OR_MORE_EMPTY_LOC, | ||
68 | .clk_phase = SSP_CLK_SECOND_EDGE, | ||
69 | .clk_pol = SSP_CLK_POL_IDLE_HIGH, | ||
70 | .cs_control = ab4500_spi_cs_control, | ||
71 | }; | ||
72 | |||
73 | static struct spi_board_info u8500_spi_devices[] = { | ||
74 | { | ||
75 | .modalias = "ab4500", | ||
76 | .controller_data = &ab4500_chip_info, | ||
77 | .max_speed_hz = 12000000, | ||
78 | .bus_num = 0, | ||
79 | .chip_select = 0, | ||
80 | .mode = SPI_MODE_0, | ||
81 | .irq = IRQ_AB4500, | ||
82 | }, | ||
83 | }; | ||
84 | |||
85 | static struct pl022_ssp_controller ssp0_platform_data = { | ||
86 | .bus_id = 0, | ||
87 | /* pl022 not yet supports dma */ | ||
88 | .enable_dma = 0, | ||
89 | /* on this platform, gpio 31,142,144,214 & | ||
90 | * 224 are connected as chip selects | ||
91 | */ | ||
92 | .num_chipselect = 5, | ||
93 | }; | ||
94 | |||
95 | static struct amba_device pl022_device = { | ||
96 | .dev = { | ||
97 | .coherent_dma_mask = ~0, | ||
98 | .init_name = "pl022", | ||
99 | .platform_data = &ssp0_platform_data, | ||
100 | }, | ||
101 | .res = { | ||
102 | .start = U8500_SSP0_BASE, | ||
103 | .end = U8500_SSP0_BASE + SZ_4K - 1, | ||
104 | .flags = IORESOURCE_MEM, | ||
105 | }, | ||
106 | .irq = {IRQ_SSP0, NO_IRQ }, | ||
107 | /* ST-Ericsson modified id */ | ||
108 | .periphid = SSP_PER_ID, | ||
109 | }; | ||
110 | |||
111 | static struct amba_device *amba_devs[] __initdata = { | ||
112 | &uart0_device, | ||
113 | &uart1_device, | ||
114 | &uart2_device, | ||
115 | &pl022_device, | ||
116 | }; | ||
117 | |||
118 | static void __init u8500_timer_init(void) | ||
119 | { | ||
120 | #ifdef CONFIG_LOCAL_TIMERS | ||
121 | /* Setup the local timer base */ | ||
122 | twd_base = __io_address(U8500_TWD_BASE); | ||
123 | #endif | ||
124 | /* Setup the MTU base */ | ||
125 | mtu_base = __io_address(U8500_MTU0_BASE); | ||
126 | |||
127 | nmdk_timer_init(); | ||
128 | } | ||
129 | |||
130 | static struct sys_timer u8500_timer = { | ||
131 | .init = u8500_timer_init, | ||
132 | }; | ||
133 | |||
134 | static void __init u8500_init_machine(void) | ||
135 | { | ||
136 | int i; | ||
137 | |||
138 | /* Register the active AMBA devices on this board */ | ||
139 | for (i = 0; i < ARRAY_SIZE(amba_devs); i++) | ||
140 | amba_device_register(amba_devs[i], &iomem_resource); | ||
141 | |||
142 | spi_register_board_info(u8500_spi_devices, | ||
143 | ARRAY_SIZE(u8500_spi_devices)); | ||
144 | |||
145 | u8500_init_devices(); | ||
146 | } | ||
147 | |||
148 | MACHINE_START(U8500, "ST-Ericsson MOP500 platform") | ||
149 | /* Maintainer: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> */ | ||
150 | .phys_io = U8500_UART2_BASE, | ||
151 | .io_pg_offst = (IO_ADDRESS(U8500_UART2_BASE) >> 18) & 0xfffc, | ||
152 | .boot_params = 0x100, | ||
153 | .map_io = u8500_map_io, | ||
154 | .init_irq = u8500_init_irq, | ||
155 | /* we re-use nomadik timer here */ | ||
156 | .timer = &u8500_timer, | ||
157 | .init_machine = u8500_init_machine, | ||
158 | MACHINE_END | ||
diff --git a/arch/arm/mach-ux500/clock.c b/arch/arm/mach-ux500/clock.c new file mode 100644 index 000000000000..20b6ebb6783a --- /dev/null +++ b/arch/arm/mach-ux500/clock.c | |||
@@ -0,0 +1,95 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 ST-Ericsson | ||
3 | * heavily based on realview platform | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 as | ||
7 | * published by the Free Software Foundation. | ||
8 | */ | ||
9 | #include <linux/module.h> | ||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/list.h> | ||
12 | #include <linux/errno.h> | ||
13 | #include <linux/err.h> | ||
14 | #include <linux/clk.h> | ||
15 | #include <linux/mutex.h> | ||
16 | |||
17 | #include <asm/clkdev.h> | ||
18 | |||
19 | /* currently the clk structure | ||
20 | * just supports rate. This would | ||
21 | * be extended as and when new devices are | ||
22 | * added - TODO | ||
23 | */ | ||
24 | struct clk { | ||
25 | unsigned long rate; | ||
26 | }; | ||
27 | |||
28 | int clk_enable(struct clk *clk) | ||
29 | { | ||
30 | return 0; | ||
31 | } | ||
32 | EXPORT_SYMBOL(clk_enable); | ||
33 | |||
34 | void clk_disable(struct clk *clk) | ||
35 | { | ||
36 | } | ||
37 | EXPORT_SYMBOL(clk_disable); | ||
38 | |||
39 | unsigned long clk_get_rate(struct clk *clk) | ||
40 | { | ||
41 | return clk->rate; | ||
42 | } | ||
43 | EXPORT_SYMBOL(clk_get_rate); | ||
44 | |||
45 | long clk_round_rate(struct clk *clk, unsigned long rate) | ||
46 | { | ||
47 | /*TODO*/ | ||
48 | return rate; | ||
49 | } | ||
50 | EXPORT_SYMBOL(clk_round_rate); | ||
51 | |||
52 | int clk_set_rate(struct clk *clk, unsigned long rate) | ||
53 | { | ||
54 | clk->rate = rate; | ||
55 | return 0; | ||
56 | } | ||
57 | EXPORT_SYMBOL(clk_set_rate); | ||
58 | |||
59 | /* ssp clock */ | ||
60 | static struct clk ssp_clk = { | ||
61 | .rate = 48000000, | ||
62 | }; | ||
63 | |||
64 | /* fixed clock */ | ||
65 | static struct clk f38_clk = { | ||
66 | .rate = 38400000, | ||
67 | }; | ||
68 | |||
69 | static struct clk_lookup lookups[] = { | ||
70 | { | ||
71 | /* UART0 */ | ||
72 | .dev_id = "uart0", | ||
73 | .clk = &f38_clk, | ||
74 | }, { /* UART1 */ | ||
75 | .dev_id = "uart1", | ||
76 | .clk = &f38_clk, | ||
77 | }, { /* UART2 */ | ||
78 | .dev_id = "uart2", | ||
79 | .clk = &f38_clk, | ||
80 | }, { /* SSP */ | ||
81 | .dev_id = "pl022", | ||
82 | .clk = &ssp_clk, | ||
83 | } | ||
84 | }; | ||
85 | |||
86 | static int __init clk_init(void) | ||
87 | { | ||
88 | int i; | ||
89 | |||
90 | /* register the clock lookups */ | ||
91 | for (i = 0; i < ARRAY_SIZE(lookups); i++) | ||
92 | clkdev_add(&lookups[i]); | ||
93 | return 0; | ||
94 | } | ||
95 | arch_initcall(clk_init); | ||
diff --git a/arch/arm/mach-ux500/cpu-u8500.c b/arch/arm/mach-ux500/cpu-u8500.c new file mode 100644 index 000000000000..5f05e5850f71 --- /dev/null +++ b/arch/arm/mach-ux500/cpu-u8500.c | |||
@@ -0,0 +1,64 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008-2009 ST-Ericsson | ||
3 | * | ||
4 | * Author: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2, as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | */ | ||
11 | #include <linux/types.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/device.h> | ||
14 | #include <linux/amba/bus.h> | ||
15 | #include <linux/irq.h> | ||
16 | #include <linux/platform_device.h> | ||
17 | |||
18 | #include <asm/hardware/gic.h> | ||
19 | #include <asm/mach/map.h> | ||
20 | #include <mach/hardware.h> | ||
21 | |||
22 | /* add any platform devices here - TODO */ | ||
23 | static struct platform_device *platform_devs[] __initdata = { | ||
24 | /* yet to be added, add i2c0, gpio.. */ | ||
25 | }; | ||
26 | |||
27 | #define __IO_DEV_DESC(x, sz) { \ | ||
28 | .virtual = IO_ADDRESS(x), \ | ||
29 | .pfn = __phys_to_pfn(x), \ | ||
30 | .length = sz, \ | ||
31 | .type = MT_DEVICE, \ | ||
32 | } | ||
33 | |||
34 | /* minimum static i/o mapping required to boot U8500 platforms */ | ||
35 | static struct map_desc u8500_io_desc[] __initdata = { | ||
36 | __IO_DEV_DESC(U8500_GIC_CPU_BASE, SZ_4K), | ||
37 | __IO_DEV_DESC(U8500_GIC_DIST_BASE, SZ_4K), | ||
38 | __IO_DEV_DESC(U8500_MTU0_BASE, SZ_4K), | ||
39 | __IO_DEV_DESC(U8500_TWD_BASE, SZ_4K), | ||
40 | __IO_DEV_DESC(U8500_SCU_BASE, SZ_4K), | ||
41 | __IO_DEV_DESC(U8500_BACKUPRAM0_BASE, SZ_8K), | ||
42 | }; | ||
43 | |||
44 | void __init u8500_map_io(void) | ||
45 | { | ||
46 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); | ||
47 | } | ||
48 | |||
49 | void __init u8500_init_irq(void) | ||
50 | { | ||
51 | gic_dist_init(0, __io_address(U8500_GIC_DIST_BASE), 29); | ||
52 | gic_cpu_init(0, __io_address(U8500_GIC_CPU_BASE)); | ||
53 | } | ||
54 | |||
55 | /* | ||
56 | * This function is called from the board init | ||
57 | */ | ||
58 | void __init u8500_init_devices(void) | ||
59 | { | ||
60 | /* Register the platform devices */ | ||
61 | platform_add_devices(platform_devs, ARRAY_SIZE(platform_devs)); | ||
62 | |||
63 | return ; | ||
64 | } | ||
diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S new file mode 100644 index 000000000000..a6be2cdf2b2f --- /dev/null +++ b/arch/arm/mach-ux500/headsmp.S | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2009 ST-Ericsson | ||
3 | * This file is based ARM Realview platform | ||
4 | * Copyright (c) 2003 ARM Limited | ||
5 | * All Rights Reserved | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/linkage.h> | ||
12 | #include <linux/init.h> | ||
13 | |||
14 | __INIT | ||
15 | |||
16 | /* | ||
17 | * U8500 specific entry point for secondary CPUs. | ||
18 | */ | ||
19 | ENTRY(u8500_secondary_startup) | ||
20 | mrc p15, 0, r0, c0, c0, 5 | ||
21 | and r0, r0, #15 | ||
22 | adr r4, 1f | ||
23 | ldmia r4, {r5, r6} | ||
24 | sub r4, r4, r5 | ||
25 | add r6, r6, r4 | ||
26 | dsb | ||
27 | pen: ldr r7, [r6] | ||
28 | cmp r7, r0 | ||
29 | bne pen | ||
30 | |||
31 | /* | ||
32 | * we've been released from the holding pen: secondary_stack | ||
33 | * should now contain the SVC stack for this core | ||
34 | */ | ||
35 | b secondary_startup | ||
36 | |||
37 | 1: .long . | ||
38 | .long pen_release | ||
diff --git a/arch/arm/mach-ux500/include/mach/clkdev.h b/arch/arm/mach-ux500/include/mach/clkdev.h new file mode 100644 index 000000000000..04b37a89801c --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/clkdev.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef __ASM_MACH_CLKDEV_H | ||
2 | #define __ASM_MACH_CLKDEV_H | ||
3 | |||
4 | #define __clk_get(clk) ({ 1; }) | ||
5 | #define __clk_put(clk) do { } while (0) | ||
6 | |||
7 | #endif | ||
diff --git a/arch/arm/mach-ux500/include/mach/debug-macro.S b/arch/arm/mach-ux500/include/mach/debug-macro.S new file mode 100644 index 000000000000..8f21b6a95dce --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/debug-macro.S | |||
@@ -0,0 +1,19 @@ | |||
1 | /* | ||
2 | * Debugging macro include header | ||
3 | * | ||
4 | * Copyright (C) 2009 ST-Ericsson | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | */ | ||
11 | .macro addruart,rx | ||
12 | mrc p15, 0, \rx, c1, c0 | ||
13 | tst \rx, #1 @MMU enabled? | ||
14 | moveq \rx, #0x80000000 @MMU off, Physical address | ||
15 | movne \rx, #0xF0000000 @MMU on, Virtual address | ||
16 | orr \rx, \rx, #0x7000 | ||
17 | .endm | ||
18 | |||
19 | #include <asm/hardware/debug-pl01x.S> | ||
diff --git a/arch/arm/mach-ux500/include/mach/entry-macro.S b/arch/arm/mach-ux500/include/mach/entry-macro.S new file mode 100644 index 000000000000..eece3301fef7 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/entry-macro.S | |||
@@ -0,0 +1,89 @@ | |||
1 | /* | ||
2 | * Low-level IRQ helper macros for U8500 platforms | ||
3 | * | ||
4 | * Copyright (C) 2009 ST-Ericsson. | ||
5 | * | ||
6 | * This file is a copy of ARM Realview platform. | ||
7 | * -just satisfied checkpatch script. | ||
8 | * | ||
9 | * This file is licensed under the terms of the GNU General Public | ||
10 | * License version 2. This program is licensed "as is" without any | ||
11 | * warranty of any kind, whether express or implied. | ||
12 | */ | ||
13 | #include <mach/hardware.h> | ||
14 | #include <asm/hardware/gic.h> | ||
15 | |||
16 | .macro disable_fiq | ||
17 | .endm | ||
18 | |||
19 | .macro get_irqnr_preamble, base, tmp | ||
20 | ldr \base, =IO_ADDRESS(U8500_GIC_CPU_BASE) | ||
21 | .endm | ||
22 | |||
23 | .macro arch_ret_to_user, tmp1, tmp2 | ||
24 | .endm | ||
25 | |||
26 | /* | ||
27 | * The interrupt numbering scheme is defined in the | ||
28 | * interrupt controller spec. To wit: | ||
29 | * | ||
30 | * Interrupts 0-15 are IPI | ||
31 | * 16-28 are reserved | ||
32 | * 29-31 are local. We allow 30 to be used for the watchdog. | ||
33 | * 32-1020 are global | ||
34 | * 1021-1022 are reserved | ||
35 | * 1023 is "spurious" (no interrupt) | ||
36 | * | ||
37 | * For now, we ignore all local interrupts so only return an | ||
38 | * interrupt if it's between 30 and 1020. The test_for_ipi | ||
39 | * routine below will pick up on IPIs. | ||
40 | * | ||
41 | * A simple read from the controller will tell us the number | ||
42 | * of the highest priority enabled interrupt. We then just | ||
43 | * need to check whether it is in the valid range for an | ||
44 | * IRQ (30-1020 inclusive). | ||
45 | */ | ||
46 | |||
47 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
48 | |||
49 | /* bits 12-10 = src CPU, 9-0 = int # */ | ||
50 | ldr \irqstat, [\base, #GIC_CPU_INTACK] | ||
51 | |||
52 | ldr \tmp, =1021 | ||
53 | |||
54 | bic \irqnr, \irqstat, #0x1c00 | ||
55 | |||
56 | cmp \irqnr, #29 | ||
57 | cmpcc \irqnr, \irqnr | ||
58 | cmpne \irqnr, \tmp | ||
59 | cmpcs \irqnr, \irqnr | ||
60 | |||
61 | .endm | ||
62 | |||
63 | /* We assume that irqstat (the raw value of the IRQ | ||
64 | * acknowledge register) is preserved from the macro above. | ||
65 | * If there is an IPI, we immediately signal end of | ||
66 | * interrupt on the controller, since this requires the | ||
67 | * original irqstat value which we won't easily be able | ||
68 | * to recreate later. | ||
69 | */ | ||
70 | |||
71 | .macro test_for_ipi, irqnr, irqstat, base, tmp | ||
72 | bic \irqnr, \irqstat, #0x1c00 | ||
73 | cmp \irqnr, #16 | ||
74 | strcc \irqstat, [\base, #GIC_CPU_EOI] | ||
75 | cmpcs \irqnr, \irqnr | ||
76 | .endm | ||
77 | |||
78 | /* As above, this assumes that irqstat and base | ||
79 | * are preserved.. | ||
80 | */ | ||
81 | |||
82 | .macro test_for_ltirq, irqnr, irqstat, base, tmp | ||
83 | bic \irqnr, \irqstat, #0x1c00 | ||
84 | mov \tmp, #0 | ||
85 | cmp \irqnr, #29 | ||
86 | moveq \tmp, #1 | ||
87 | streq \irqstat, [\base, #GIC_CPU_EOI] | ||
88 | cmp \tmp, #0 | ||
89 | .endm | ||
diff --git a/arch/arm/mach-ux500/include/mach/hardware.h b/arch/arm/mach-ux500/include/mach/hardware.h new file mode 100644 index 000000000000..6da650202dc7 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/hardware.h | |||
@@ -0,0 +1,131 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 ST-Ericsson. | ||
3 | * | ||
4 | * U8500 hardware definitions | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | #ifndef __MACH_HARDWARE_H | ||
11 | #define __MACH_HARDWARE_H | ||
12 | |||
13 | /* macros to get at IO space when running virtually | ||
14 | * We dont map all the peripherals, let ioremap do | ||
15 | * this for us. We map only very basic peripherals here. | ||
16 | */ | ||
17 | #define U8500_IO_VIRTUAL 0xf0000000 | ||
18 | #define U8500_IO_PHYSICAL 0xa0000000 | ||
19 | |||
20 | /* this macro is used in assembly, so no cast */ | ||
21 | #define IO_ADDRESS(x) \ | ||
22 | (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + U8500_IO_VIRTUAL) | ||
23 | |||
24 | /* typesafe io address */ | ||
25 | #define __io_address(n) __io(IO_ADDRESS(n)) | ||
26 | |||
27 | /* | ||
28 | * Base address definitions for U8500 Onchip IPs. All the | ||
29 | * peripherals are contained in a single 1 Mbyte region, with | ||
30 | * AHB peripherals at the bottom and APB peripherals at the | ||
31 | * top of the region. PER stands for PERIPHERAL region which | ||
32 | * itself divided into sub regions. | ||
33 | */ | ||
34 | #define U8500_PER3_BASE 0x80000000 | ||
35 | #define U8500_PER2_BASE 0x80110000 | ||
36 | #define U8500_PER1_BASE 0x80120000 | ||
37 | #define U8500_PER4_BASE 0x80150000 | ||
38 | |||
39 | #define U8500_PER6_BASE 0xa03c0000 | ||
40 | #define U8500_PER5_BASE 0xa03e0000 | ||
41 | #define U8500_PER7_BASE 0xa03d0000 | ||
42 | |||
43 | #define U8500_SVA_BASE 0xa0100000 | ||
44 | #define U8500_SIA_BASE 0xa0200000 | ||
45 | |||
46 | #define U8500_SGA_BASE 0xa0300000 | ||
47 | #define U8500_MCDE_BASE 0xa0350000 | ||
48 | #define U8500_DMA_BASE 0xa0362000 | ||
49 | |||
50 | #define U8500_SCU_BASE 0xa0410000 | ||
51 | #define U8500_GIC_CPU_BASE 0xa0410100 | ||
52 | #define U8500_TWD_BASE 0xa0410600 | ||
53 | #define U8500_GIC_DIST_BASE 0xa0411000 | ||
54 | #define U8500_L2CC_BASE 0xa0412000 | ||
55 | |||
56 | #define U8500_TWD_SIZE 0x100 | ||
57 | |||
58 | /* per7 base addressess */ | ||
59 | #define U8500_CR_BASE (U8500_PER7_BASE + 0x8000) | ||
60 | #define U8500_MTU0_BASE (U8500_PER7_BASE + 0xa000) | ||
61 | #define U8500_MTU1_BASE (U8500_PER7_BASE + 0xb000) | ||
62 | #define U8500_TZPC0_BASE (U8500_PER7_BASE + 0xc000) | ||
63 | #define U8500_CLKRST7_BASE (U8500_PER7_BASE + 0xf000) | ||
64 | |||
65 | /* per6 base addressess */ | ||
66 | #define U8500_RNG_BASE (U8500_PER6_BASE + 0x0000) | ||
67 | #define U8500_PKA_BASE (U8500_PER6_BASE + 0x1000) | ||
68 | #define U8500_PKAM_BASE (U8500_PER6_BASE + 0x2000) | ||
69 | #define U8500_CRYPTO0_BASE (U8500_PER6_BASE + 0xa000) | ||
70 | #define U8500_CRYPTO1_BASE (U8500_PER6_BASE + 0xb000) | ||
71 | #define U8500_CLKRST6_BASE (U8500_PER7_BASE + 0xf000) | ||
72 | |||
73 | /* per5 base addressess */ | ||
74 | #define U8500_USBOTG_BASE (U8500_PER5_BASE + 0x00000) | ||
75 | #define U8500_GPIO5_BASE (U8500_PER5_BASE + 0x1e000) | ||
76 | #define U8500_CLKRST5_BASE (U8500_PER7_BASE + 0x1f000) | ||
77 | |||
78 | /* per4 base addressess */ | ||
79 | #define U8500_BACKUPRAM0_BASE (U8500_PER4_BASE + 0x0000) | ||
80 | #define U8500_BACKUPRAM1_BASE (U8500_PER4_BASE + 0x1000) | ||
81 | #define U8500_RTT0_BASE (U8500_PER4_BASE + 0x2000) | ||
82 | #define U8500_RTT1_BASE (U8500_PER4_BASE + 0x3000) | ||
83 | #define U8500_RTC_BASE (U8500_PER4_BASE + 0x4000) | ||
84 | #define U8500_SCR_BASE (U8500_PER4_BASE + 0x5000) | ||
85 | #define U8500_DMC_BASE (U8500_PER4_BASE + 0x6000) | ||
86 | #define U8500_PRCMU_BASE (U8500_PER4_BASE + 0x7000) | ||
87 | |||
88 | /* per3 base addressess */ | ||
89 | #define U8500_FSMC_BASE (U8500_PER3_BASE + 0x0000) | ||
90 | #define U8500_SSP0_BASE (U8500_PER3_BASE + 0x2000) | ||
91 | #define U8500_SSP1_BASE (U8500_PER3_BASE + 0x3000) | ||
92 | #define U8500_I2C0_BASE (U8500_PER3_BASE + 0x4000) | ||
93 | #define U8500_SDI2_BASE (U8500_PER3_BASE + 0x5000) | ||
94 | #define U8500_SKE_BASE (U8500_PER3_BASE + 0x6000) | ||
95 | #define U8500_UART2_BASE (U8500_PER3_BASE + 0x7000) | ||
96 | #define U8500_SDI5_BASE (U8500_PER3_BASE + 0x8000) | ||
97 | #define U8500_GPIO3_BASE (U8500_PER3_BASE + 0xe000) | ||
98 | #define U8500_CLKRST3_BASE (U8500_PER7_BASE + 0xf000) | ||
99 | |||
100 | /* per2 base addressess */ | ||
101 | #define U8500_I2C3_BASE (U8500_PER2_BASE + 0x0000) | ||
102 | #define U8500_SPI2_BASE (U8500_PER2_BASE + 0x1000) | ||
103 | #define U8500_SPI1_BASE (U8500_PER2_BASE + 0x2000) | ||
104 | #define U8500_PWL_BASE (U8500_PER2_BASE + 0x3000) | ||
105 | #define U8500_SDI4_BASE (U8500_PER2_BASE + 0x4000) | ||
106 | #define U8500_MSP2_BASE (U8500_PER2_BASE + 0x7000) | ||
107 | #define U8500_SDI1_BASE (U8500_PER2_BASE + 0x8000) | ||
108 | #define U8500_SDI3_BASE (U8500_PER2_BASE + 0x9000) | ||
109 | #define U8500_SPI0_BASE (U8500_PER2_BASE + 0xa000) | ||
110 | #define U8500_HSIR_BASE (U8500_PER2_BASE + 0xb000) | ||
111 | #define U8500_HSIT_BASE (U8500_PER2_BASE + 0xc000) | ||
112 | #define U8500_GPIO2_BASE (U8500_PER2_BASE + 0xe000) | ||
113 | #define U8500_CLKRST2_BASE (U8500_PER2_BASE + 0xf000) | ||
114 | |||
115 | /* per1 base addresses */ | ||
116 | #define U8500_UART0_BASE (U8500_PER1_BASE + 0x0000) | ||
117 | #define U8500_UART1_BASE (U8500_PER1_BASE + 0x1000) | ||
118 | #define U8500_I2C1_BASE (U8500_PER1_BASE + 0x2000) | ||
119 | #define U8500_MSP0_BASE (U8500_PER1_BASE + 0x3000) | ||
120 | #define U8500_MSP1_BASE (U8500_PER1_BASE + 0x4000) | ||
121 | #define U8500_SDI0_BASE (U8500_PER1_BASE + 0x6000) | ||
122 | #define U8500_I2C2_BASE (U8500_PER1_BASE + 0x8000) | ||
123 | #define U8500_SPI3_BASE (U8500_PER1_BASE + 0x9000) | ||
124 | #define U8500_SLIM0_BASE (U8500_PER1_BASE + 0xa000) | ||
125 | #define U8500_GPIO1_BASE (U8500_PER1_BASE + 0xe000) | ||
126 | #define U8500_CLKRST1_BASE (U8500_PER2_BASE + 0xf000) | ||
127 | |||
128 | /* ST-Ericsson modified pl022 id */ | ||
129 | #define SSP_PER_ID 0x01080022 | ||
130 | |||
131 | #endif /* __MACH_HARDWARE_H */ | ||
diff --git a/arch/arm/mach-ux500/include/mach/io.h b/arch/arm/mach-ux500/include/mach/io.h new file mode 100644 index 000000000000..1cf3f44ce5b2 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/io.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-u8500/include/mach/io.h | ||
3 | * | ||
4 | * Copyright (C) 1997-1999 Russell King | ||
5 | * | ||
6 | * Modifications: | ||
7 | * 06-12-1997 RMK Created. | ||
8 | * 07-04-1999 RMK Major cleanup | ||
9 | */ | ||
10 | #ifndef __ASM_ARM_ARCH_IO_H | ||
11 | #define __ASM_ARM_ARCH_IO_H | ||
12 | |||
13 | #define IO_SPACE_LIMIT 0xffffffff | ||
14 | |||
15 | /* | ||
16 | * We don't actually have real ISA nor PCI buses, but there is so many | ||
17 | * drivers out there that might just work if we fake them... | ||
18 | */ | ||
19 | #define __io(a) __typesafe_io(a) | ||
20 | #define __mem_pci(a) (a) | ||
21 | |||
22 | #endif | ||
diff --git a/arch/arm/mach-ux500/include/mach/irqs.h b/arch/arm/mach-ux500/include/mach/irqs.h new file mode 100644 index 000000000000..394b5dd2200f --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/irqs.h | |||
@@ -0,0 +1,71 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 STMicroelectronics | ||
3 | * Copyright (C) 2009 ST-Ericsson. | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation; either version 2 of the License, or | ||
8 | * (at your option) any later version. | ||
9 | */ | ||
10 | #ifndef ASM_ARCH_IRQS_H | ||
11 | #define ASM_ARCH_IRQS_H | ||
12 | |||
13 | #include <mach/hardware.h> | ||
14 | |||
15 | #define IRQ_LOCALTIMER 29 | ||
16 | #define IRQ_LOCALWDOG 30 | ||
17 | |||
18 | /* Shared Peripheral Interrupt (SHPI) */ | ||
19 | #define IRQ_SHPI_START 32 | ||
20 | |||
21 | /* Interrupt numbers generic for shared peripheral */ | ||
22 | #define IRQ_MTU0 (IRQ_SHPI_START + 4) | ||
23 | #define IRQ_SPI2 (IRQ_SHPI_START + 6) | ||
24 | #define IRQ_SPI0 (IRQ_SHPI_START + 8) | ||
25 | #define IRQ_UART0 (IRQ_SHPI_START + 11) | ||
26 | #define IRQ_I2C3 (IRQ_SHPI_START + 12) | ||
27 | #define IRQ_SSP0 (IRQ_SHPI_START + 14) | ||
28 | #define IRQ_MTU1 (IRQ_SHPI_START + 17) | ||
29 | #define IRQ_RTC_RTT (IRQ_SHPI_START + 18) | ||
30 | #define IRQ_UART1 (IRQ_SHPI_START + 19) | ||
31 | #define IRQ_I2C0 (IRQ_SHPI_START + 21) | ||
32 | #define IRQ_I2C1 (IRQ_SHPI_START + 22) | ||
33 | #define IRQ_USBOTG (IRQ_SHPI_START + 23) | ||
34 | #define IRQ_DMA (IRQ_SHPI_START + 25) | ||
35 | #define IRQ_UART2 (IRQ_SHPI_START + 26) | ||
36 | #define IRQ_HSIR_EXCEP (IRQ_SHPI_START + 29) | ||
37 | #define IRQ_MSP0 (IRQ_SHPI_START + 31) | ||
38 | #define IRQ_HSIR_CH0_OVRRUN (IRQ_SHPI_START + 32) | ||
39 | #define IRQ_HSIR_CH1_OVRRUN (IRQ_SHPI_START + 33) | ||
40 | #define IRQ_HSIR_CH2_OVRRUN (IRQ_SHPI_START + 34) | ||
41 | #define IRQ_HSIR_CH3_OVRRUN (IRQ_SHPI_START + 35) | ||
42 | #define IRQ_AB4500 (IRQ_SHPI_START + 40) | ||
43 | #define IRQ_DISP (IRQ_SHPI_START + 48) | ||
44 | #define IRQ_SiPI3 (IRQ_SHPI_START + 49) | ||
45 | #define IRQ_SSP1 (IRQ_SHPI_START + 52) | ||
46 | #define IRQ_I2C2 (IRQ_SHPI_START + 55) | ||
47 | #define IRQ_SDMMC0 (IRQ_SHPI_START + 60) | ||
48 | #define IRQ_MSP1 (IRQ_SHPI_START + 62) | ||
49 | #define IRQ_SPI1 (IRQ_SHPI_START + 96) | ||
50 | #define IRQ_MSP2 (IRQ_SHPI_START + 98) | ||
51 | #define IRQ_SDMMC4 (IRQ_SHPI_START + 99) | ||
52 | #define IRQ_HSIRD0 (IRQ_SHPI_START + 104) | ||
53 | #define IRQ_HSIRD1 (IRQ_SHPI_START + 105) | ||
54 | #define IRQ_HSITD0 (IRQ_SHPI_START + 106) | ||
55 | #define IRQ_HSITD1 (IRQ_SHPI_START + 107) | ||
56 | #define IRQ_GPIO0 (IRQ_SHPI_START + 119) | ||
57 | #define IRQ_GPIO1 (IRQ_SHPI_START + 120) | ||
58 | #define IRQ_GPIO2 (IRQ_SHPI_START + 121) | ||
59 | #define IRQ_GPIO3 (IRQ_SHPI_START + 122) | ||
60 | #define IRQ_GPIO4 (IRQ_SHPI_START + 123) | ||
61 | #define IRQ_GPIO5 (IRQ_SHPI_START + 124) | ||
62 | #define IRQ_GPIO6 (IRQ_SHPI_START + 125) | ||
63 | #define IRQ_GPIO7 (IRQ_SHPI_START + 126) | ||
64 | #define IRQ_GPIO8 (IRQ_SHPI_START + 127) | ||
65 | |||
66 | /* There are 128 shared peripheral interrupts assigned to | ||
67 | * INTID[160:32]. The first 32 interrupts are reserved. | ||
68 | */ | ||
69 | #define NR_IRQS 161 | ||
70 | |||
71 | #endif /*ASM_ARCH_IRQS_H*/ | ||
diff --git a/arch/arm/mach-ux500/include/mach/memory.h b/arch/arm/mach-ux500/include/mach/memory.h new file mode 100644 index 000000000000..510571a59e25 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/memory.h | |||
@@ -0,0 +1,18 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 ST-Ericsson | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | */ | ||
9 | #ifndef __ASM_ARCH_MEMORY_H | ||
10 | #define __ASM_ARCH_MEMORY_H | ||
11 | |||
12 | /* | ||
13 | * Physical DRAM offset. | ||
14 | */ | ||
15 | #define PHYS_OFFSET UL(0x00000000) | ||
16 | #define BUS_OFFSET UL(0x00000000) | ||
17 | |||
18 | #endif | ||
diff --git a/arch/arm/mach-ux500/include/mach/setup.h b/arch/arm/mach-ux500/include/mach/setup.h new file mode 100644 index 000000000000..cf0ce1687f24 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/setup.h | |||
@@ -0,0 +1,23 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 ST-Ericsson. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | * | ||
8 | * These symbols are needed for board-specific files to call their | ||
9 | * own cpu-specific files | ||
10 | */ | ||
11 | #ifndef __ASM_ARCH_SETUP_H | ||
12 | #define __ASM_ARCH_SETUP_H | ||
13 | |||
14 | #include <asm/mach/time.h> | ||
15 | #include <linux/init.h> | ||
16 | |||
17 | extern void u8500_map_io(void); | ||
18 | extern void u8500_init_devices(void); | ||
19 | extern void u8500_init_irq(void); | ||
20 | /* We re-use nomadik_timer for this platform */ | ||
21 | extern void nmdk_timer_init(void); | ||
22 | |||
23 | #endif /* __ASM_ARCH_SETUP_H */ | ||
diff --git a/arch/arm/mach-ux500/include/mach/smp.h b/arch/arm/mach-ux500/include/mach/smp.h new file mode 100644 index 000000000000..b59f7bc9725d --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/smp.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * This file is based ARM realview platform. | ||
3 | * Copyright (C) ARM Limited. | ||
4 | * | ||
5 | * This file is licensed under the terms of the GNU General Public | ||
6 | * License version 2. This program is licensed "as is" without any | ||
7 | * warranty of any kind, whether express or implied. | ||
8 | */ | ||
9 | #ifndef ASMARM_ARCH_SMP_H | ||
10 | #define ASMARM_ARCH_SMP_H | ||
11 | |||
12 | #include <asm/hardware/gic.h> | ||
13 | |||
14 | /* This is required to wakeup the secondary core */ | ||
15 | extern void u8500_secondary_startup(void); | ||
16 | |||
17 | #define hard_smp_processor_id() \ | ||
18 | ({ \ | ||
19 | unsigned int cpunum; \ | ||
20 | __asm__("mrc p15, 0, %0, c0, c0, 5" \ | ||
21 | : "=r" (cpunum)); \ | ||
22 | cpunum &= 0x0F; \ | ||
23 | }) | ||
24 | |||
25 | /* | ||
26 | * We use IRQ1 as the IPI | ||
27 | */ | ||
28 | static inline void smp_cross_call(const struct cpumask *mask) | ||
29 | { | ||
30 | gic_raise_softirq(mask, 1); | ||
31 | } | ||
32 | #endif | ||
diff --git a/arch/arm/mach-ux500/include/mach/system.h b/arch/arm/mach-ux500/include/mach/system.h new file mode 100644 index 000000000000..c0cd8006f1a2 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/system.h | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 ST-Ericsson. | ||
3 | * | ||
4 | * This file is licensed under the terms of the GNU General Public | ||
5 | * License version 2. This program is licensed "as is" without any | ||
6 | * warranty of any kind, whether express or implied. | ||
7 | */ | ||
8 | #ifndef __ASM_ARCH_SYSTEM_H | ||
9 | #define __ASM_ARCH_SYSTEM_H | ||
10 | |||
11 | static inline void arch_idle(void) | ||
12 | { | ||
13 | /* | ||
14 | * This should do all the clock switching | ||
15 | * and wait for interrupt tricks | ||
16 | */ | ||
17 | cpu_do_idle(); | ||
18 | } | ||
19 | |||
20 | static inline void arch_reset(char mode, const char *cmd) | ||
21 | { | ||
22 | /* yet to be implemented - TODO */ | ||
23 | } | ||
24 | |||
25 | #endif | ||
diff --git a/arch/arm/mach-ux500/include/mach/timex.h b/arch/arm/mach-ux500/include/mach/timex.h new file mode 100644 index 000000000000..d0942c174018 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/timex.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __ASM_ARCH_TIMEX_H | ||
2 | #define __ASM_ARCH_TIMEX_H | ||
3 | |||
4 | #define CLOCK_TICK_RATE 110000000 | ||
5 | |||
6 | #endif | ||
diff --git a/arch/arm/mach-ux500/include/mach/uncompress.h b/arch/arm/mach-ux500/include/mach/uncompress.h new file mode 100644 index 000000000000..8552eb188b50 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/uncompress.h | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 ST-Ericsson | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | #ifndef __ASM_ARCH_UNCOMPRESS_H | ||
19 | #define __ASM_ARCH_UNCOMPRESS_H | ||
20 | |||
21 | #include <asm/setup.h> | ||
22 | #include <linux/io.h> | ||
23 | #include <mach/hardware.h> | ||
24 | |||
25 | #define U8500_UART_DR 0x80007000 | ||
26 | #define U8500_UART_LCRH 0x8000702c | ||
27 | #define U8500_UART_CR 0x80007030 | ||
28 | #define U8500_UART_FR 0x80007018 | ||
29 | |||
30 | static void putc(const char c) | ||
31 | { | ||
32 | /* Do nothing if the UART is not enabled. */ | ||
33 | if (!(readb(U8500_UART_CR) & 0x1)) | ||
34 | return; | ||
35 | |||
36 | if (c == '\n') | ||
37 | putc('\r'); | ||
38 | |||
39 | while (readb(U8500_UART_FR) & (1 << 5)) | ||
40 | barrier(); | ||
41 | writeb(c, U8500_UART_DR); | ||
42 | } | ||
43 | |||
44 | static void flush(void) | ||
45 | { | ||
46 | if (!(readb(U8500_UART_CR) & 0x1)) | ||
47 | return; | ||
48 | while (readb(U8500_UART_FR) & (1 << 3)) | ||
49 | barrier(); | ||
50 | } | ||
51 | |||
52 | static inline void arch_decomp_setup(void) | ||
53 | { | ||
54 | } | ||
55 | |||
56 | #define arch_decomp_wdog() /* nothing to do here */ | ||
57 | |||
58 | #endif /* __ASM_ARCH_UNCOMPRESS_H */ | ||
diff --git a/arch/arm/mach-ux500/include/mach/vmalloc.h b/arch/arm/mach-ux500/include/mach/vmalloc.h new file mode 100644 index 000000000000..86cdbbce1842 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/vmalloc.h | |||
@@ -0,0 +1,18 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 ST-Ericsson | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | #define VMALLOC_END 0xf0000000 | ||
diff --git a/arch/arm/mach-ux500/localtimer.c b/arch/arm/mach-ux500/localtimer.c new file mode 100644 index 000000000000..2288f6a7c518 --- /dev/null +++ b/arch/arm/mach-ux500/localtimer.c | |||
@@ -0,0 +1,28 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008-2009 ST-Ericsson | ||
3 | * Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> | ||
4 | * | ||
5 | * This file is heavily based on relaview platform, almost a copy. | ||
6 | * | ||
7 | * Copyright (C) 2002 ARM Ltd. | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/smp.h> | ||
15 | #include <linux/clockchips.h> | ||
16 | |||
17 | #include <asm/irq.h> | ||
18 | #include <asm/smp_twd.h> | ||
19 | #include <asm/localtimer.h> | ||
20 | |||
21 | /* | ||
22 | * Setup the local clock events for a CPU. | ||
23 | */ | ||
24 | void __cpuinit local_timer_setup(struct clock_event_device *evt) | ||
25 | { | ||
26 | evt->irq = IRQ_LOCALTIMER; | ||
27 | twd_timer_setup(evt); | ||
28 | } | ||
diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c new file mode 100644 index 000000000000..8dfe7ca245d8 --- /dev/null +++ b/arch/arm/mach-ux500/platsmp.c | |||
@@ -0,0 +1,177 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 ARM Ltd. | ||
3 | * Copyright (C) 2008 STMicroelctronics. | ||
4 | * Copyright (C) 2009 ST-Ericsson. | ||
5 | * Author: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> | ||
6 | * | ||
7 | * This file is based on arm realview platform | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/errno.h> | ||
15 | #include <linux/delay.h> | ||
16 | #include <linux/device.h> | ||
17 | #include <linux/smp.h> | ||
18 | #include <linux/io.h> | ||
19 | |||
20 | #include <asm/cacheflush.h> | ||
21 | #include <asm/localtimer.h> | ||
22 | #include <asm/smp_scu.h> | ||
23 | #include <mach/hardware.h> | ||
24 | |||
25 | /* | ||
26 | * control for which core is the next to come out of the secondary | ||
27 | * boot "holding pen" | ||
28 | */ | ||
29 | volatile int __cpuinitdata pen_release = -1; | ||
30 | |||
31 | static unsigned int __init get_core_count(void) | ||
32 | { | ||
33 | return scu_get_core_count(__io_address(U8500_SCU_BASE)); | ||
34 | } | ||
35 | |||
36 | static DEFINE_SPINLOCK(boot_lock); | ||
37 | |||
38 | void __cpuinit platform_secondary_init(unsigned int cpu) | ||
39 | { | ||
40 | trace_hardirqs_off(); | ||
41 | |||
42 | /* | ||
43 | * if any interrupts are already enabled for the primary | ||
44 | * core (e.g. timer irq), then they will not have been enabled | ||
45 | * for us: do so | ||
46 | */ | ||
47 | gic_cpu_init(0, __io_address(U8500_GIC_CPU_BASE)); | ||
48 | |||
49 | /* | ||
50 | * let the primary processor know we're out of the | ||
51 | * pen, then head off into the C entry point | ||
52 | */ | ||
53 | pen_release = -1; | ||
54 | |||
55 | /* | ||
56 | * Synchronise with the boot thread. | ||
57 | */ | ||
58 | spin_lock(&boot_lock); | ||
59 | spin_unlock(&boot_lock); | ||
60 | } | ||
61 | |||
62 | int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | ||
63 | { | ||
64 | unsigned long timeout; | ||
65 | |||
66 | /* | ||
67 | * set synchronisation state between this boot processor | ||
68 | * and the secondary one | ||
69 | */ | ||
70 | spin_lock(&boot_lock); | ||
71 | |||
72 | /* | ||
73 | * The secondary processor is waiting to be released from | ||
74 | * the holding pen - release it, then wait for it to flag | ||
75 | * that it has been released by resetting pen_release. | ||
76 | */ | ||
77 | pen_release = cpu; | ||
78 | flush_cache_all(); | ||
79 | |||
80 | timeout = jiffies + (1 * HZ); | ||
81 | while (time_before(jiffies, timeout)) { | ||
82 | if (pen_release == -1) | ||
83 | break; | ||
84 | } | ||
85 | |||
86 | /* | ||
87 | * now the secondary core is starting up let it run its | ||
88 | * calibrations, then wait for it to finish | ||
89 | */ | ||
90 | spin_unlock(&boot_lock); | ||
91 | |||
92 | return pen_release != -1 ? -ENOSYS : 0; | ||
93 | } | ||
94 | |||
95 | static void __init wakeup_secondary(void) | ||
96 | { | ||
97 | /* nobody is to be released from the pen yet */ | ||
98 | pen_release = -1; | ||
99 | |||
100 | /* | ||
101 | * write the address of secondary startup into the backup ram register | ||
102 | * at offset 0x1FF4, then write the magic number 0xA1FEED01 to the | ||
103 | * backup ram register at offset 0x1FF0, which is what boot rom code | ||
104 | * is waiting for. This would wake up the secondary core from WFE | ||
105 | */ | ||
106 | #define U8500_CPU1_JUMPADDR_OFFSET 0x1FF4 | ||
107 | __raw_writel(virt_to_phys(u8500_secondary_startup), | ||
108 | (void __iomem *)IO_ADDRESS(U8500_BACKUPRAM0_BASE) + | ||
109 | U8500_CPU1_JUMPADDR_OFFSET); | ||
110 | |||
111 | #define U8500_CPU1_WAKEMAGIC_OFFSET 0x1FF0 | ||
112 | __raw_writel(0xA1FEED01, | ||
113 | (void __iomem *)IO_ADDRESS(U8500_BACKUPRAM0_BASE) + | ||
114 | U8500_CPU1_WAKEMAGIC_OFFSET); | ||
115 | |||
116 | /* make sure write buffer is drained */ | ||
117 | mb(); | ||
118 | } | ||
119 | |||
120 | /* | ||
121 | * Initialise the CPU possible map early - this describes the CPUs | ||
122 | * which may be present or become present in the system. | ||
123 | */ | ||
124 | void __init smp_init_cpus(void) | ||
125 | { | ||
126 | unsigned int i, ncores = get_core_count(); | ||
127 | |||
128 | for (i = 0; i < ncores; i++) | ||
129 | set_cpu_possible(i, true); | ||
130 | } | ||
131 | |||
132 | void __init smp_prepare_cpus(unsigned int max_cpus) | ||
133 | { | ||
134 | unsigned int ncores = get_core_count(); | ||
135 | unsigned int cpu = smp_processor_id(); | ||
136 | int i; | ||
137 | |||
138 | /* sanity check */ | ||
139 | if (ncores == 0) { | ||
140 | printk(KERN_ERR | ||
141 | "U8500: strange CM count of 0? Default to 1\n"); | ||
142 | ncores = 1; | ||
143 | } | ||
144 | |||
145 | if (ncores > num_possible_cpus()) { | ||
146 | printk(KERN_WARNING | ||
147 | "U8500: no. of cores (%d) greater than configured " | ||
148 | "maximum of %d - clipping\n", | ||
149 | ncores, num_possible_cpus()); | ||
150 | ncores = num_possible_cpus(); | ||
151 | } | ||
152 | |||
153 | smp_store_cpu_info(cpu); | ||
154 | |||
155 | /* | ||
156 | * are we trying to boot more cores than exist? | ||
157 | */ | ||
158 | if (max_cpus > ncores) | ||
159 | max_cpus = ncores; | ||
160 | |||
161 | /* | ||
162 | * Initialise the present map, which describes the set of CPUs | ||
163 | * actually populated at the present time. | ||
164 | */ | ||
165 | for (i = 0; i < max_cpus; i++) | ||
166 | set_cpu_present(i, true); | ||
167 | |||
168 | if (max_cpus > 1) { | ||
169 | /* | ||
170 | * Enable the local timer or broadcast device for the | ||
171 | * boot CPU, but only if we have more than one CPU. | ||
172 | */ | ||
173 | percpu_timer_setup(); | ||
174 | scu_enable(__io_address(U8500_SCU_BASE)); | ||
175 | wakeup_secondary(); | ||
176 | } | ||
177 | } | ||
diff --git a/arch/arm/mach-w90x900/dev.c b/arch/arm/mach-w90x900/dev.c index 2a6f98de48d2..51f17b753348 100644 --- a/arch/arm/mach-w90x900/dev.c +++ b/arch/arm/mach-w90x900/dev.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
33 | 33 | ||
34 | #include <mach/regs-serial.h> | 34 | #include <mach/regs-serial.h> |
35 | #include <mach/nuc900_spi.h> | ||
35 | #include <mach/map.h> | 36 | #include <mach/map.h> |
36 | 37 | ||
37 | #include "cpu.h" | 38 | #include "cpu.h" |
@@ -196,6 +197,18 @@ static struct platform_device nuc900_device_emc = { | |||
196 | 197 | ||
197 | /* SPI device */ | 198 | /* SPI device */ |
198 | 199 | ||
200 | static struct w90p910_spi_info nuc900_spiflash_data = { | ||
201 | .num_cs = 1, | ||
202 | .lsb = 0, | ||
203 | .txneg = 1, | ||
204 | .rxneg = 0, | ||
205 | .divider = 24, | ||
206 | .sleep = 0, | ||
207 | .txnum = 0, | ||
208 | .txbitlen = 1, | ||
209 | .bus_num = 0, | ||
210 | }; | ||
211 | |||
199 | static struct resource nuc900_spi_resource[] = { | 212 | static struct resource nuc900_spi_resource[] = { |
200 | [0] = { | 213 | [0] = { |
201 | .start = W90X900_PA_I2C + SPIOFFSET, | 214 | .start = W90X900_PA_I2C + SPIOFFSET, |
@@ -214,6 +227,9 @@ static struct platform_device nuc900_device_spi = { | |||
214 | .id = -1, | 227 | .id = -1, |
215 | .num_resources = ARRAY_SIZE(nuc900_spi_resource), | 228 | .num_resources = ARRAY_SIZE(nuc900_spi_resource), |
216 | .resource = nuc900_spi_resource, | 229 | .resource = nuc900_spi_resource, |
230 | .dev = { | ||
231 | .platform_data = &nuc900_spiflash_data, | ||
232 | } | ||
217 | }; | 233 | }; |
218 | 234 | ||
219 | /* spi device, spi flash info */ | 235 | /* spi device, spi flash info */ |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index e993140edd88..7b7d4c36c11c 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -122,10 +122,7 @@ config CPU_ARM920T | |||
122 | select CPU_TLB_V4WBI if MMU | 122 | select CPU_TLB_V4WBI if MMU |
123 | help | 123 | help |
124 | The ARM920T is licensed to be produced by numerous vendors, | 124 | The ARM920T is licensed to be produced by numerous vendors, |
125 | and is used in the Maverick EP9312 and the Samsung S3C2410. | 125 | and is used in the Cirrus EP93xx and the Samsung S3C2410. |
126 | |||
127 | More information on the Maverick EP9312 at | ||
128 | <http://linuxdevices.com/products/PD2382866068.html>. | ||
129 | 126 | ||
130 | Say Y if you want support for the ARM920T processor. | 127 | Say Y if you want support for the ARM920T processor. |
131 | Otherwise, say N. | 128 | Otherwise, say N. |
@@ -777,5 +774,5 @@ config CACHE_XSC3L2 | |||
777 | 774 | ||
778 | config ARM_L1_CACHE_SHIFT | 775 | config ARM_L1_CACHE_SHIFT |
779 | int | 776 | int |
780 | default 6 if ARCH_OMAP3 | 777 | default 6 if ARCH_OMAP3 || ARCH_S5PC1XX |
781 | default 5 | 778 | default 5 |
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile index 055cb2aa8134..42352e75742b 100644 --- a/arch/arm/mm/Makefile +++ b/arch/arm/mm/Makefile | |||
@@ -6,7 +6,7 @@ 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 \ |
9 | pgd.o mmu.o | 9 | pgd.o mmu.o vmregion.o |
10 | 10 | ||
11 | ifneq ($(CONFIG_MMU),y) | 11 | ifneq ($(CONFIG_MMU),y) |
12 | obj-y += nommu.o | 12 | obj-y += nommu.o |
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index b480f1d3591f..747f9a9021bb 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c | |||
@@ -99,18 +99,25 @@ void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask) | |||
99 | 99 | ||
100 | l2x0_base = base; | 100 | l2x0_base = base; |
101 | 101 | ||
102 | /* disable L2X0 */ | 102 | /* |
103 | writel(0, l2x0_base + L2X0_CTRL); | 103 | * Check if l2x0 controller is already enabled. |
104 | * If you are booting from non-secure mode | ||
105 | * accessing the below registers will fault. | ||
106 | */ | ||
107 | if (!(readl(l2x0_base + L2X0_CTRL) & 1)) { | ||
104 | 108 | ||
105 | aux = readl(l2x0_base + L2X0_AUX_CTRL); | 109 | /* l2x0 controller is disabled */ |
106 | aux &= aux_mask; | ||
107 | aux |= aux_val; | ||
108 | writel(aux, l2x0_base + L2X0_AUX_CTRL); | ||
109 | 110 | ||
110 | l2x0_inv_all(); | 111 | aux = readl(l2x0_base + L2X0_AUX_CTRL); |
112 | aux &= aux_mask; | ||
113 | aux |= aux_val; | ||
114 | writel(aux, l2x0_base + L2X0_AUX_CTRL); | ||
111 | 115 | ||
112 | /* enable L2X0 */ | 116 | l2x0_inv_all(); |
113 | writel(1, l2x0_base + L2X0_CTRL); | 117 | |
118 | /* enable L2X0 */ | ||
119 | writel(1, l2x0_base + L2X0_CTRL); | ||
120 | } | ||
114 | 121 | ||
115 | outer_cache.inv_range = l2x0_inv_range; | 122 | outer_cache.inv_range = l2x0_inv_range; |
116 | outer_cache.clean_range = l2x0_clean_range; | 123 | outer_cache.clean_range = l2x0_clean_range; |
diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c index 6bda76a43199..a9e22e31eaa1 100644 --- a/arch/arm/mm/context.c +++ b/arch/arm/mm/context.c | |||
@@ -50,10 +50,7 @@ void __new_context(struct mm_struct *mm) | |||
50 | isb(); | 50 | isb(); |
51 | flush_tlb_all(); | 51 | flush_tlb_all(); |
52 | if (icache_is_vivt_asid_tagged()) { | 52 | if (icache_is_vivt_asid_tagged()) { |
53 | asm("mcr p15, 0, %0, c7, c5, 0 @ invalidate I-cache\n" | 53 | __flush_icache_all(); |
54 | "mcr p15, 0, %0, c7, c5, 6 @ flush BTAC/BTB\n" | ||
55 | : | ||
56 | : "r" (0)); | ||
57 | dsb(); | 54 | dsb(); |
58 | } | 55 | } |
59 | } | 56 | } |
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c index 4127a7bddfe5..841f355319bf 100644 --- a/arch/arm/mm/copypage-v6.c +++ b/arch/arm/mm/copypage-v6.c | |||
@@ -41,6 +41,14 @@ static void v6_copy_user_highpage_nonaliasing(struct page *to, | |||
41 | kfrom = kmap_atomic(from, KM_USER0); | 41 | kfrom = kmap_atomic(from, KM_USER0); |
42 | kto = kmap_atomic(to, KM_USER1); | 42 | kto = kmap_atomic(to, KM_USER1); |
43 | copy_page(kto, kfrom); | 43 | copy_page(kto, kfrom); |
44 | #ifdef CONFIG_HIGHMEM | ||
45 | /* | ||
46 | * kmap_atomic() doesn't set the page virtual address, and | ||
47 | * kunmap_atomic() takes care of cache flushing already. | ||
48 | */ | ||
49 | if (page_address(to) != NULL) | ||
50 | #endif | ||
51 | __cpuc_flush_dcache_page(kto); | ||
44 | kunmap_atomic(kto, KM_USER1); | 52 | kunmap_atomic(kto, KM_USER1); |
45 | kunmap_atomic(kfrom, KM_USER0); | 53 | kunmap_atomic(kfrom, KM_USER0); |
46 | } | 54 | } |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index b30925fcbcdc..26325cb5d368 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -63,194 +63,152 @@ static u64 get_coherent_dma_mask(struct device *dev) | |||
63 | return mask; | 63 | return mask; |
64 | } | 64 | } |
65 | 65 | ||
66 | #ifdef CONFIG_MMU | ||
67 | /* | 66 | /* |
68 | * These are the page tables (2MB each) covering uncached, DMA consistent allocations | 67 | * Allocate a DMA buffer for 'dev' of size 'size' using the |
68 | * specified gfp mask. Note that 'size' must be page aligned. | ||
69 | */ | 69 | */ |
70 | static pte_t *consistent_pte[NUM_CONSISTENT_PTES]; | 70 | static struct page *__dma_alloc_buffer(struct device *dev, size_t size, gfp_t gfp) |
71 | static DEFINE_SPINLOCK(consistent_lock); | 71 | { |
72 | unsigned long order = get_order(size); | ||
73 | struct page *page, *p, *e; | ||
74 | void *ptr; | ||
75 | u64 mask = get_coherent_dma_mask(dev); | ||
72 | 76 | ||
73 | /* | 77 | #ifdef CONFIG_DMA_API_DEBUG |
74 | * VM region handling support. | 78 | u64 limit = (mask + 1) & ~mask; |
75 | * | 79 | if (limit && size >= limit) { |
76 | * This should become something generic, handling VM region allocations for | 80 | dev_warn(dev, "coherent allocation too big (requested %#x mask %#llx)\n", |
77 | * vmalloc and similar (ioremap, module space, etc). | 81 | size, mask); |
78 | * | 82 | return NULL; |
79 | * I envisage vmalloc()'s supporting vm_struct becoming: | 83 | } |
80 | * | 84 | #endif |
81 | * struct vm_struct { | ||
82 | * struct vm_region region; | ||
83 | * unsigned long flags; | ||
84 | * struct page **pages; | ||
85 | * unsigned int nr_pages; | ||
86 | * unsigned long phys_addr; | ||
87 | * }; | ||
88 | * | ||
89 | * get_vm_area() would then call vm_region_alloc with an appropriate | ||
90 | * struct vm_region head (eg): | ||
91 | * | ||
92 | * struct vm_region vmalloc_head = { | ||
93 | * .vm_list = LIST_HEAD_INIT(vmalloc_head.vm_list), | ||
94 | * .vm_start = VMALLOC_START, | ||
95 | * .vm_end = VMALLOC_END, | ||
96 | * }; | ||
97 | * | ||
98 | * However, vmalloc_head.vm_start is variable (typically, it is dependent on | ||
99 | * the amount of RAM found at boot time.) I would imagine that get_vm_area() | ||
100 | * would have to initialise this each time prior to calling vm_region_alloc(). | ||
101 | */ | ||
102 | struct arm_vm_region { | ||
103 | struct list_head vm_list; | ||
104 | unsigned long vm_start; | ||
105 | unsigned long vm_end; | ||
106 | struct page *vm_pages; | ||
107 | int vm_active; | ||
108 | }; | ||
109 | 85 | ||
110 | static struct arm_vm_region consistent_head = { | 86 | if (!mask) |
111 | .vm_list = LIST_HEAD_INIT(consistent_head.vm_list), | 87 | return NULL; |
112 | .vm_start = CONSISTENT_BASE, | ||
113 | .vm_end = CONSISTENT_END, | ||
114 | }; | ||
115 | 88 | ||
116 | static struct arm_vm_region * | 89 | if (mask < 0xffffffffULL) |
117 | arm_vm_region_alloc(struct arm_vm_region *head, size_t size, gfp_t gfp) | 90 | gfp |= GFP_DMA; |
118 | { | 91 | |
119 | unsigned long addr = head->vm_start, end = head->vm_end - size; | 92 | page = alloc_pages(gfp, order); |
120 | unsigned long flags; | 93 | if (!page) |
121 | struct arm_vm_region *c, *new; | 94 | return NULL; |
122 | |||
123 | new = kmalloc(sizeof(struct arm_vm_region), gfp); | ||
124 | if (!new) | ||
125 | goto out; | ||
126 | |||
127 | spin_lock_irqsave(&consistent_lock, flags); | ||
128 | |||
129 | list_for_each_entry(c, &head->vm_list, vm_list) { | ||
130 | if ((addr + size) < addr) | ||
131 | goto nospc; | ||
132 | if ((addr + size) <= c->vm_start) | ||
133 | goto found; | ||
134 | addr = c->vm_end; | ||
135 | if (addr > end) | ||
136 | goto nospc; | ||
137 | } | ||
138 | 95 | ||
139 | found: | ||
140 | /* | 96 | /* |
141 | * Insert this entry _before_ the one we found. | 97 | * Now split the huge page and free the excess pages |
142 | */ | 98 | */ |
143 | list_add_tail(&new->vm_list, &c->vm_list); | 99 | split_page(page, order); |
144 | new->vm_start = addr; | 100 | for (p = page + (size >> PAGE_SHIFT), e = page + (1 << order); p < e; p++) |
145 | new->vm_end = addr + size; | 101 | __free_page(p); |
146 | new->vm_active = 1; | 102 | |
147 | 103 | /* | |
148 | spin_unlock_irqrestore(&consistent_lock, flags); | 104 | * Ensure that the allocated pages are zeroed, and that any data |
149 | return new; | 105 | * lurking in the kernel direct-mapped region is invalidated. |
150 | 106 | */ | |
151 | nospc: | 107 | ptr = page_address(page); |
152 | spin_unlock_irqrestore(&consistent_lock, flags); | 108 | memset(ptr, 0, size); |
153 | kfree(new); | 109 | dmac_flush_range(ptr, ptr + size); |
154 | out: | 110 | outer_flush_range(__pa(ptr), __pa(ptr) + size); |
155 | return NULL; | 111 | |
112 | return page; | ||
156 | } | 113 | } |
157 | 114 | ||
158 | static struct arm_vm_region *arm_vm_region_find(struct arm_vm_region *head, unsigned long addr) | 115 | /* |
116 | * Free a DMA buffer. 'size' must be page aligned. | ||
117 | */ | ||
118 | static void __dma_free_buffer(struct page *page, size_t size) | ||
159 | { | 119 | { |
160 | struct arm_vm_region *c; | 120 | struct page *e = page + (size >> PAGE_SHIFT); |
161 | 121 | ||
162 | list_for_each_entry(c, &head->vm_list, vm_list) { | 122 | while (page < e) { |
163 | if (c->vm_active && c->vm_start == addr) | 123 | __free_page(page); |
164 | goto out; | 124 | page++; |
165 | } | 125 | } |
166 | c = NULL; | ||
167 | out: | ||
168 | return c; | ||
169 | } | 126 | } |
170 | 127 | ||
128 | #ifdef CONFIG_MMU | ||
129 | /* | ||
130 | * These are the page tables (2MB each) covering uncached, DMA consistent allocations | ||
131 | */ | ||
132 | static pte_t *consistent_pte[NUM_CONSISTENT_PTES]; | ||
133 | |||
134 | #include "vmregion.h" | ||
135 | |||
136 | static struct arm_vmregion_head consistent_head = { | ||
137 | .vm_lock = __SPIN_LOCK_UNLOCKED(&consistent_head.vm_lock), | ||
138 | .vm_list = LIST_HEAD_INIT(consistent_head.vm_list), | ||
139 | .vm_start = CONSISTENT_BASE, | ||
140 | .vm_end = CONSISTENT_END, | ||
141 | }; | ||
142 | |||
171 | #ifdef CONFIG_HUGETLB_PAGE | 143 | #ifdef CONFIG_HUGETLB_PAGE |
172 | #error ARM Coherent DMA allocator does not (yet) support huge TLB | 144 | #error ARM Coherent DMA allocator does not (yet) support huge TLB |
173 | #endif | 145 | #endif |
174 | 146 | ||
175 | static void * | 147 | /* |
176 | __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, | 148 | * Initialise the consistent memory allocation. |
177 | pgprot_t prot) | 149 | */ |
150 | static int __init consistent_init(void) | ||
178 | { | 151 | { |
179 | struct page *page; | 152 | int ret = 0; |
180 | struct arm_vm_region *c; | 153 | pgd_t *pgd; |
181 | unsigned long order; | 154 | pmd_t *pmd; |
182 | u64 mask = get_coherent_dma_mask(dev); | 155 | pte_t *pte; |
183 | u64 limit; | 156 | int i = 0; |
157 | u32 base = CONSISTENT_BASE; | ||
184 | 158 | ||
185 | if (!consistent_pte[0]) { | 159 | do { |
186 | printk(KERN_ERR "%s: not initialised\n", __func__); | 160 | pgd = pgd_offset(&init_mm, base); |
187 | dump_stack(); | 161 | pmd = pmd_alloc(&init_mm, pgd, base); |
188 | return NULL; | 162 | if (!pmd) { |
189 | } | 163 | printk(KERN_ERR "%s: no pmd tables\n", __func__); |
164 | ret = -ENOMEM; | ||
165 | break; | ||
166 | } | ||
167 | WARN_ON(!pmd_none(*pmd)); | ||
190 | 168 | ||
191 | if (!mask) | 169 | pte = pte_alloc_kernel(pmd, base); |
192 | goto no_page; | 170 | if (!pte) { |
171 | printk(KERN_ERR "%s: no pte tables\n", __func__); | ||
172 | ret = -ENOMEM; | ||
173 | break; | ||
174 | } | ||
193 | 175 | ||
194 | /* | 176 | consistent_pte[i++] = pte; |
195 | * Sanity check the allocation size. | 177 | base += (1 << PGDIR_SHIFT); |
196 | */ | 178 | } while (base < CONSISTENT_END); |
197 | size = PAGE_ALIGN(size); | ||
198 | limit = (mask + 1) & ~mask; | ||
199 | if ((limit && size >= limit) || | ||
200 | size >= (CONSISTENT_END - CONSISTENT_BASE)) { | ||
201 | printk(KERN_WARNING "coherent allocation too big " | ||
202 | "(requested %#x mask %#llx)\n", size, mask); | ||
203 | goto no_page; | ||
204 | } | ||
205 | 179 | ||
206 | order = get_order(size); | 180 | return ret; |
181 | } | ||
207 | 182 | ||
208 | if (mask != 0xffffffff) | 183 | core_initcall(consistent_init); |
209 | gfp |= GFP_DMA; | ||
210 | 184 | ||
211 | page = alloc_pages(gfp, order); | 185 | static void * |
212 | if (!page) | 186 | __dma_alloc_remap(struct page *page, size_t size, gfp_t gfp, pgprot_t prot) |
213 | goto no_page; | 187 | { |
188 | struct arm_vmregion *c; | ||
214 | 189 | ||
215 | /* | 190 | if (!consistent_pte[0]) { |
216 | * Invalidate any data that might be lurking in the | 191 | printk(KERN_ERR "%s: not initialised\n", __func__); |
217 | * kernel direct-mapped region for device DMA. | 192 | dump_stack(); |
218 | */ | 193 | return NULL; |
219 | { | ||
220 | void *ptr = page_address(page); | ||
221 | memset(ptr, 0, size); | ||
222 | dmac_flush_range(ptr, ptr + size); | ||
223 | outer_flush_range(__pa(ptr), __pa(ptr) + size); | ||
224 | } | 194 | } |
225 | 195 | ||
226 | /* | 196 | /* |
227 | * Allocate a virtual address in the consistent mapping region. | 197 | * Allocate a virtual address in the consistent mapping region. |
228 | */ | 198 | */ |
229 | c = arm_vm_region_alloc(&consistent_head, size, | 199 | c = arm_vmregion_alloc(&consistent_head, size, |
230 | gfp & ~(__GFP_DMA | __GFP_HIGHMEM)); | 200 | gfp & ~(__GFP_DMA | __GFP_HIGHMEM)); |
231 | if (c) { | 201 | if (c) { |
232 | pte_t *pte; | 202 | pte_t *pte; |
233 | struct page *end = page + (1 << order); | ||
234 | int idx = CONSISTENT_PTE_INDEX(c->vm_start); | 203 | int idx = CONSISTENT_PTE_INDEX(c->vm_start); |
235 | u32 off = CONSISTENT_OFFSET(c->vm_start) & (PTRS_PER_PTE-1); | 204 | u32 off = CONSISTENT_OFFSET(c->vm_start) & (PTRS_PER_PTE-1); |
236 | 205 | ||
237 | pte = consistent_pte[idx] + off; | 206 | pte = consistent_pte[idx] + off; |
238 | c->vm_pages = page; | 207 | c->vm_pages = page; |
239 | 208 | ||
240 | split_page(page, order); | ||
241 | |||
242 | /* | ||
243 | * Set the "dma handle" | ||
244 | */ | ||
245 | *handle = page_to_dma(dev, page); | ||
246 | |||
247 | do { | 209 | do { |
248 | BUG_ON(!pte_none(*pte)); | 210 | BUG_ON(!pte_none(*pte)); |
249 | 211 | ||
250 | /* | ||
251 | * x86 does not mark the pages reserved... | ||
252 | */ | ||
253 | SetPageReserved(page); | ||
254 | set_pte_ext(pte, mk_pte(page, prot), 0); | 212 | set_pte_ext(pte, mk_pte(page, prot), 0); |
255 | page++; | 213 | page++; |
256 | pte++; | 214 | pte++; |
@@ -261,48 +219,90 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, | |||
261 | } | 219 | } |
262 | } while (size -= PAGE_SIZE); | 220 | } while (size -= PAGE_SIZE); |
263 | 221 | ||
264 | /* | ||
265 | * Free the otherwise unused pages. | ||
266 | */ | ||
267 | while (page < end) { | ||
268 | __free_page(page); | ||
269 | page++; | ||
270 | } | ||
271 | |||
272 | return (void *)c->vm_start; | 222 | return (void *)c->vm_start; |
273 | } | 223 | } |
274 | |||
275 | if (page) | ||
276 | __free_pages(page, order); | ||
277 | no_page: | ||
278 | *handle = ~0; | ||
279 | return NULL; | 224 | return NULL; |
280 | } | 225 | } |
226 | |||
227 | static void __dma_free_remap(void *cpu_addr, size_t size) | ||
228 | { | ||
229 | struct arm_vmregion *c; | ||
230 | unsigned long addr; | ||
231 | pte_t *ptep; | ||
232 | int idx; | ||
233 | u32 off; | ||
234 | |||
235 | c = arm_vmregion_find_remove(&consistent_head, (unsigned long)cpu_addr); | ||
236 | if (!c) { | ||
237 | printk(KERN_ERR "%s: trying to free invalid coherent area: %p\n", | ||
238 | __func__, cpu_addr); | ||
239 | dump_stack(); | ||
240 | return; | ||
241 | } | ||
242 | |||
243 | if ((c->vm_end - c->vm_start) != size) { | ||
244 | printk(KERN_ERR "%s: freeing wrong coherent size (%ld != %d)\n", | ||
245 | __func__, c->vm_end - c->vm_start, size); | ||
246 | dump_stack(); | ||
247 | size = c->vm_end - c->vm_start; | ||
248 | } | ||
249 | |||
250 | idx = CONSISTENT_PTE_INDEX(c->vm_start); | ||
251 | off = CONSISTENT_OFFSET(c->vm_start) & (PTRS_PER_PTE-1); | ||
252 | ptep = consistent_pte[idx] + off; | ||
253 | addr = c->vm_start; | ||
254 | do { | ||
255 | pte_t pte = ptep_get_and_clear(&init_mm, addr, ptep); | ||
256 | |||
257 | ptep++; | ||
258 | addr += PAGE_SIZE; | ||
259 | off++; | ||
260 | if (off >= PTRS_PER_PTE) { | ||
261 | off = 0; | ||
262 | ptep = consistent_pte[++idx]; | ||
263 | } | ||
264 | |||
265 | if (pte_none(pte) || !pte_present(pte)) | ||
266 | printk(KERN_CRIT "%s: bad page in kernel page table\n", | ||
267 | __func__); | ||
268 | } while (size -= PAGE_SIZE); | ||
269 | |||
270 | flush_tlb_kernel_range(c->vm_start, c->vm_end); | ||
271 | |||
272 | arm_vmregion_free(&consistent_head, c); | ||
273 | } | ||
274 | |||
281 | #else /* !CONFIG_MMU */ | 275 | #else /* !CONFIG_MMU */ |
276 | |||
277 | #define __dma_alloc_remap(page, size, gfp, prot) page_address(page) | ||
278 | #define __dma_free_remap(addr, size) do { } while (0) | ||
279 | |||
280 | #endif /* CONFIG_MMU */ | ||
281 | |||
282 | static void * | 282 | static void * |
283 | __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, | 283 | __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, |
284 | pgprot_t prot) | 284 | pgprot_t prot) |
285 | { | 285 | { |
286 | void *virt; | 286 | struct page *page; |
287 | u64 mask = get_coherent_dma_mask(dev); | 287 | void *addr; |
288 | 288 | ||
289 | if (!mask) | 289 | *handle = ~0; |
290 | goto error; | 290 | size = PAGE_ALIGN(size); |
291 | 291 | ||
292 | if (mask != 0xffffffff) | 292 | page = __dma_alloc_buffer(dev, size, gfp); |
293 | gfp |= GFP_DMA; | 293 | if (!page) |
294 | virt = kmalloc(size, gfp); | 294 | return NULL; |
295 | if (!virt) | ||
296 | goto error; | ||
297 | 295 | ||
298 | *handle = virt_to_dma(dev, virt); | 296 | if (!arch_is_coherent()) |
299 | return virt; | 297 | addr = __dma_alloc_remap(page, size, gfp, prot); |
298 | else | ||
299 | addr = page_address(page); | ||
300 | 300 | ||
301 | error: | 301 | if (addr) |
302 | *handle = ~0; | 302 | *handle = page_to_dma(dev, page); |
303 | return NULL; | 303 | |
304 | return addr; | ||
304 | } | 305 | } |
305 | #endif /* CONFIG_MMU */ | ||
306 | 306 | ||
307 | /* | 307 | /* |
308 | * Allocate DMA-coherent memory space and return both the kernel remapped | 308 | * Allocate DMA-coherent memory space and return both the kernel remapped |
@@ -316,19 +316,8 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gf | |||
316 | if (dma_alloc_from_coherent(dev, size, handle, &memory)) | 316 | if (dma_alloc_from_coherent(dev, size, handle, &memory)) |
317 | return memory; | 317 | return memory; |
318 | 318 | ||
319 | if (arch_is_coherent()) { | ||
320 | void *virt; | ||
321 | |||
322 | virt = kmalloc(size, gfp); | ||
323 | if (!virt) | ||
324 | return NULL; | ||
325 | *handle = virt_to_dma(dev, virt); | ||
326 | |||
327 | return virt; | ||
328 | } | ||
329 | |||
330 | return __dma_alloc(dev, size, handle, gfp, | 319 | return __dma_alloc(dev, size, handle, gfp, |
331 | pgprot_noncached(pgprot_kernel)); | 320 | pgprot_dmacoherent(pgprot_kernel)); |
332 | } | 321 | } |
333 | EXPORT_SYMBOL(dma_alloc_coherent); | 322 | EXPORT_SYMBOL(dma_alloc_coherent); |
334 | 323 | ||
@@ -349,15 +338,12 @@ static int dma_mmap(struct device *dev, struct vm_area_struct *vma, | |||
349 | { | 338 | { |
350 | int ret = -ENXIO; | 339 | int ret = -ENXIO; |
351 | #ifdef CONFIG_MMU | 340 | #ifdef CONFIG_MMU |
352 | unsigned long flags, user_size, kern_size; | 341 | unsigned long user_size, kern_size; |
353 | struct arm_vm_region *c; | 342 | struct arm_vmregion *c; |
354 | 343 | ||
355 | user_size = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; | 344 | user_size = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; |
356 | 345 | ||
357 | spin_lock_irqsave(&consistent_lock, flags); | 346 | c = arm_vmregion_find(&consistent_head, (unsigned long)cpu_addr); |
358 | c = arm_vm_region_find(&consistent_head, (unsigned long)cpu_addr); | ||
359 | spin_unlock_irqrestore(&consistent_lock, flags); | ||
360 | |||
361 | if (c) { | 347 | if (c) { |
362 | unsigned long off = vma->vm_pgoff; | 348 | unsigned long off = vma->vm_pgoff; |
363 | 349 | ||
@@ -379,7 +365,7 @@ static int dma_mmap(struct device *dev, struct vm_area_struct *vma, | |||
379 | int dma_mmap_coherent(struct device *dev, struct vm_area_struct *vma, | 365 | int dma_mmap_coherent(struct device *dev, struct vm_area_struct *vma, |
380 | void *cpu_addr, dma_addr_t dma_addr, size_t size) | 366 | void *cpu_addr, dma_addr_t dma_addr, size_t size) |
381 | { | 367 | { |
382 | vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); | 368 | vma->vm_page_prot = pgprot_dmacoherent(vma->vm_page_prot); |
383 | return dma_mmap(dev, vma, cpu_addr, dma_addr, size); | 369 | return dma_mmap(dev, vma, cpu_addr, dma_addr, size); |
384 | } | 370 | } |
385 | EXPORT_SYMBOL(dma_mmap_coherent); | 371 | EXPORT_SYMBOL(dma_mmap_coherent); |
@@ -396,144 +382,23 @@ EXPORT_SYMBOL(dma_mmap_writecombine); | |||
396 | * free a page as defined by the above mapping. | 382 | * free a page as defined by the above mapping. |
397 | * Must not be called with IRQs disabled. | 383 | * Must not be called with IRQs disabled. |
398 | */ | 384 | */ |
399 | #ifdef CONFIG_MMU | ||
400 | void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t handle) | 385 | void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t handle) |
401 | { | 386 | { |
402 | struct arm_vm_region *c; | ||
403 | unsigned long flags, addr; | ||
404 | pte_t *ptep; | ||
405 | int idx; | ||
406 | u32 off; | ||
407 | |||
408 | WARN_ON(irqs_disabled()); | 387 | WARN_ON(irqs_disabled()); |
409 | 388 | ||
410 | if (dma_release_from_coherent(dev, get_order(size), cpu_addr)) | 389 | if (dma_release_from_coherent(dev, get_order(size), cpu_addr)) |
411 | return; | 390 | return; |
412 | 391 | ||
413 | if (arch_is_coherent()) { | ||
414 | kfree(cpu_addr); | ||
415 | return; | ||
416 | } | ||
417 | |||
418 | size = PAGE_ALIGN(size); | 392 | size = PAGE_ALIGN(size); |
419 | 393 | ||
420 | spin_lock_irqsave(&consistent_lock, flags); | 394 | if (!arch_is_coherent()) |
421 | c = arm_vm_region_find(&consistent_head, (unsigned long)cpu_addr); | 395 | __dma_free_remap(cpu_addr, size); |
422 | if (!c) | ||
423 | goto no_area; | ||
424 | |||
425 | c->vm_active = 0; | ||
426 | spin_unlock_irqrestore(&consistent_lock, flags); | ||
427 | |||
428 | if ((c->vm_end - c->vm_start) != size) { | ||
429 | printk(KERN_ERR "%s: freeing wrong coherent size (%ld != %d)\n", | ||
430 | __func__, c->vm_end - c->vm_start, size); | ||
431 | dump_stack(); | ||
432 | size = c->vm_end - c->vm_start; | ||
433 | } | ||
434 | |||
435 | idx = CONSISTENT_PTE_INDEX(c->vm_start); | ||
436 | off = CONSISTENT_OFFSET(c->vm_start) & (PTRS_PER_PTE-1); | ||
437 | ptep = consistent_pte[idx] + off; | ||
438 | addr = c->vm_start; | ||
439 | do { | ||
440 | pte_t pte = ptep_get_and_clear(&init_mm, addr, ptep); | ||
441 | unsigned long pfn; | ||
442 | |||
443 | ptep++; | ||
444 | addr += PAGE_SIZE; | ||
445 | off++; | ||
446 | if (off >= PTRS_PER_PTE) { | ||
447 | off = 0; | ||
448 | ptep = consistent_pte[++idx]; | ||
449 | } | ||
450 | |||
451 | if (!pte_none(pte) && pte_present(pte)) { | ||
452 | pfn = pte_pfn(pte); | ||
453 | |||
454 | if (pfn_valid(pfn)) { | ||
455 | struct page *page = pfn_to_page(pfn); | ||
456 | |||
457 | /* | ||
458 | * x86 does not mark the pages reserved... | ||
459 | */ | ||
460 | ClearPageReserved(page); | ||
461 | |||
462 | __free_page(page); | ||
463 | continue; | ||
464 | } | ||
465 | } | ||
466 | |||
467 | printk(KERN_CRIT "%s: bad page in kernel page table\n", | ||
468 | __func__); | ||
469 | } while (size -= PAGE_SIZE); | ||
470 | |||
471 | flush_tlb_kernel_range(c->vm_start, c->vm_end); | ||
472 | |||
473 | spin_lock_irqsave(&consistent_lock, flags); | ||
474 | list_del(&c->vm_list); | ||
475 | spin_unlock_irqrestore(&consistent_lock, flags); | ||
476 | 396 | ||
477 | kfree(c); | 397 | __dma_free_buffer(dma_to_page(dev, handle), size); |
478 | return; | ||
479 | |||
480 | no_area: | ||
481 | spin_unlock_irqrestore(&consistent_lock, flags); | ||
482 | printk(KERN_ERR "%s: trying to free invalid coherent area: %p\n", | ||
483 | __func__, cpu_addr); | ||
484 | dump_stack(); | ||
485 | } | 398 | } |
486 | #else /* !CONFIG_MMU */ | ||
487 | void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t handle) | ||
488 | { | ||
489 | if (dma_release_from_coherent(dev, get_order(size), cpu_addr)) | ||
490 | return; | ||
491 | kfree(cpu_addr); | ||
492 | } | ||
493 | #endif /* CONFIG_MMU */ | ||
494 | EXPORT_SYMBOL(dma_free_coherent); | 399 | EXPORT_SYMBOL(dma_free_coherent); |
495 | 400 | ||
496 | /* | 401 | /* |
497 | * Initialise the consistent memory allocation. | ||
498 | */ | ||
499 | static int __init consistent_init(void) | ||
500 | { | ||
501 | int ret = 0; | ||
502 | #ifdef CONFIG_MMU | ||
503 | pgd_t *pgd; | ||
504 | pmd_t *pmd; | ||
505 | pte_t *pte; | ||
506 | int i = 0; | ||
507 | u32 base = CONSISTENT_BASE; | ||
508 | |||
509 | do { | ||
510 | pgd = pgd_offset(&init_mm, base); | ||
511 | pmd = pmd_alloc(&init_mm, pgd, base); | ||
512 | if (!pmd) { | ||
513 | printk(KERN_ERR "%s: no pmd tables\n", __func__); | ||
514 | ret = -ENOMEM; | ||
515 | break; | ||
516 | } | ||
517 | WARN_ON(!pmd_none(*pmd)); | ||
518 | |||
519 | pte = pte_alloc_kernel(pmd, base); | ||
520 | if (!pte) { | ||
521 | printk(KERN_ERR "%s: no pte tables\n", __func__); | ||
522 | ret = -ENOMEM; | ||
523 | break; | ||
524 | } | ||
525 | |||
526 | consistent_pte[i++] = pte; | ||
527 | base += (1 << PGDIR_SHIFT); | ||
528 | } while (base < CONSISTENT_END); | ||
529 | #endif /* !CONFIG_MMU */ | ||
530 | |||
531 | return ret; | ||
532 | } | ||
533 | |||
534 | core_initcall(consistent_init); | ||
535 | |||
536 | /* | ||
537 | * Make an area consistent for devices. | 402 | * Make an area consistent for devices. |
538 | * Note: Drivers should NOT use this function directly, as it will break | 403 | * Note: Drivers should NOT use this function directly, as it will break |
539 | * platforms with CONFIG_DMABOUNCE. | 404 | * platforms with CONFIG_DMABOUNCE. |
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c index d0d17b6a3703..729602291958 100644 --- a/arch/arm/mm/fault-armv.c +++ b/arch/arm/mm/fault-armv.c | |||
@@ -23,6 +23,8 @@ | |||
23 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
24 | #include <asm/tlbflush.h> | 24 | #include <asm/tlbflush.h> |
25 | 25 | ||
26 | #include "mm.h" | ||
27 | |||
26 | static unsigned long shared_pte_mask = L_PTE_MT_BUFFERABLE; | 28 | static unsigned long shared_pte_mask = L_PTE_MT_BUFFERABLE; |
27 | 29 | ||
28 | /* | 30 | /* |
@@ -151,7 +153,14 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, pte_t pte) | |||
151 | if (!pfn_valid(pfn)) | 153 | if (!pfn_valid(pfn)) |
152 | return; | 154 | return; |
153 | 155 | ||
156 | /* | ||
157 | * The zero page is never written to, so never has any dirty | ||
158 | * cache lines, and therefore never needs to be flushed. | ||
159 | */ | ||
154 | page = pfn_to_page(pfn); | 160 | page = pfn_to_page(pfn); |
161 | if (page == ZERO_PAGE(0)) | ||
162 | return; | ||
163 | |||
155 | mapping = page_mapping(page); | 164 | mapping = page_mapping(page); |
156 | #ifndef CONFIG_SMP | 165 | #ifndef CONFIG_SMP |
157 | if (test_and_clear_bit(PG_dcache_dirty, &page->flags)) | 166 | if (test_and_clear_bit(PG_dcache_dirty, &page->flags)) |
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index b27942909b23..329594e760cd 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -18,10 +18,6 @@ | |||
18 | 18 | ||
19 | #include "mm.h" | 19 | #include "mm.h" |
20 | 20 | ||
21 | #ifdef CONFIG_ARM_ERRATA_411920 | ||
22 | extern void v6_icache_inval_all(void); | ||
23 | #endif | ||
24 | |||
25 | #ifdef CONFIG_CPU_CACHE_VIPT | 21 | #ifdef CONFIG_CPU_CACHE_VIPT |
26 | 22 | ||
27 | #define ALIAS_FLUSH_START 0xffff4000 | 23 | #define ALIAS_FLUSH_START 0xffff4000 |
@@ -35,77 +31,61 @@ static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr) | |||
35 | flush_tlb_kernel_page(to); | 31 | flush_tlb_kernel_page(to); |
36 | 32 | ||
37 | asm( "mcrr p15, 0, %1, %0, c14\n" | 33 | asm( "mcrr p15, 0, %1, %0, c14\n" |
38 | " mcr p15, 0, %2, c7, c10, 4\n" | 34 | " mcr p15, 0, %2, c7, c10, 4" |
39 | #ifndef CONFIG_ARM_ERRATA_411920 | ||
40 | " mcr p15, 0, %2, c7, c5, 0\n" | ||
41 | #endif | ||
42 | : | 35 | : |
43 | : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero) | 36 | : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero) |
44 | : "cc"); | 37 | : "cc"); |
45 | #ifdef CONFIG_ARM_ERRATA_411920 | ||
46 | v6_icache_inval_all(); | ||
47 | #endif | ||
48 | } | 38 | } |
49 | 39 | ||
50 | void flush_cache_mm(struct mm_struct *mm) | 40 | void flush_cache_mm(struct mm_struct *mm) |
51 | { | 41 | { |
52 | if (cache_is_vivt()) { | 42 | if (cache_is_vivt()) { |
53 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) | 43 | vivt_flush_cache_mm(mm); |
54 | __cpuc_flush_user_all(); | ||
55 | return; | 44 | return; |
56 | } | 45 | } |
57 | 46 | ||
58 | if (cache_is_vipt_aliasing()) { | 47 | if (cache_is_vipt_aliasing()) { |
59 | asm( "mcr p15, 0, %0, c7, c14, 0\n" | 48 | asm( "mcr p15, 0, %0, c7, c14, 0\n" |
60 | " mcr p15, 0, %0, c7, c10, 4\n" | 49 | " mcr p15, 0, %0, c7, c10, 4" |
61 | #ifndef CONFIG_ARM_ERRATA_411920 | ||
62 | " mcr p15, 0, %0, c7, c5, 0\n" | ||
63 | #endif | ||
64 | : | 50 | : |
65 | : "r" (0) | 51 | : "r" (0) |
66 | : "cc"); | 52 | : "cc"); |
67 | #ifdef CONFIG_ARM_ERRATA_411920 | ||
68 | v6_icache_inval_all(); | ||
69 | #endif | ||
70 | } | 53 | } |
71 | } | 54 | } |
72 | 55 | ||
73 | void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) | 56 | void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) |
74 | { | 57 | { |
75 | if (cache_is_vivt()) { | 58 | if (cache_is_vivt()) { |
76 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) | 59 | vivt_flush_cache_range(vma, start, end); |
77 | __cpuc_flush_user_range(start & PAGE_MASK, PAGE_ALIGN(end), | ||
78 | vma->vm_flags); | ||
79 | return; | 60 | return; |
80 | } | 61 | } |
81 | 62 | ||
82 | if (cache_is_vipt_aliasing()) { | 63 | if (cache_is_vipt_aliasing()) { |
83 | asm( "mcr p15, 0, %0, c7, c14, 0\n" | 64 | asm( "mcr p15, 0, %0, c7, c14, 0\n" |
84 | " mcr p15, 0, %0, c7, c10, 4\n" | 65 | " mcr p15, 0, %0, c7, c10, 4" |
85 | #ifndef CONFIG_ARM_ERRATA_411920 | ||
86 | " mcr p15, 0, %0, c7, c5, 0\n" | ||
87 | #endif | ||
88 | : | 66 | : |
89 | : "r" (0) | 67 | : "r" (0) |
90 | : "cc"); | 68 | : "cc"); |
91 | #ifdef CONFIG_ARM_ERRATA_411920 | ||
92 | v6_icache_inval_all(); | ||
93 | #endif | ||
94 | } | 69 | } |
70 | |||
71 | if (vma->vm_flags & VM_EXEC) | ||
72 | __flush_icache_all(); | ||
95 | } | 73 | } |
96 | 74 | ||
97 | void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn) | 75 | void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn) |
98 | { | 76 | { |
99 | if (cache_is_vivt()) { | 77 | if (cache_is_vivt()) { |
100 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) { | 78 | vivt_flush_cache_page(vma, user_addr, pfn); |
101 | unsigned long addr = user_addr & PAGE_MASK; | ||
102 | __cpuc_flush_user_range(addr, addr + PAGE_SIZE, vma->vm_flags); | ||
103 | } | ||
104 | return; | 79 | return; |
105 | } | 80 | } |
106 | 81 | ||
107 | if (cache_is_vipt_aliasing()) | 82 | if (cache_is_vipt_aliasing()) { |
108 | flush_pfn_alias(pfn, user_addr); | 83 | flush_pfn_alias(pfn, user_addr); |
84 | __flush_icache_all(); | ||
85 | } | ||
86 | |||
87 | if (vma->vm_flags & VM_EXEC && icache_is_vivt_asid_tagged()) | ||
88 | __flush_icache_all(); | ||
109 | } | 89 | } |
110 | 90 | ||
111 | void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | 91 | void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, |
@@ -113,15 +93,13 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | |||
113 | unsigned long len, int write) | 93 | unsigned long len, int write) |
114 | { | 94 | { |
115 | if (cache_is_vivt()) { | 95 | if (cache_is_vivt()) { |
116 | if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) { | 96 | vivt_flush_ptrace_access(vma, page, uaddr, kaddr, len, write); |
117 | unsigned long addr = (unsigned long)kaddr; | ||
118 | __cpuc_coherent_kern_range(addr, addr + len); | ||
119 | } | ||
120 | return; | 97 | return; |
121 | } | 98 | } |
122 | 99 | ||
123 | if (cache_is_vipt_aliasing()) { | 100 | if (cache_is_vipt_aliasing()) { |
124 | flush_pfn_alias(page_to_pfn(page), uaddr); | 101 | flush_pfn_alias(page_to_pfn(page), uaddr); |
102 | __flush_icache_all(); | ||
125 | return; | 103 | return; |
126 | } | 104 | } |
127 | 105 | ||
@@ -139,6 +117,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | |||
139 | 117 | ||
140 | void __flush_dcache_page(struct address_space *mapping, struct page *page) | 118 | void __flush_dcache_page(struct address_space *mapping, struct page *page) |
141 | { | 119 | { |
120 | void *addr = page_address(page); | ||
121 | |||
142 | /* | 122 | /* |
143 | * Writeback any data associated with the kernel mapping of this | 123 | * Writeback any data associated with the kernel mapping of this |
144 | * page. This ensures that data in the physical page is mutually | 124 | * page. This ensures that data in the physical page is mutually |
@@ -149,9 +129,9 @@ void __flush_dcache_page(struct address_space *mapping, struct page *page) | |||
149 | * kmap_atomic() doesn't set the page virtual address, and | 129 | * kmap_atomic() doesn't set the page virtual address, and |
150 | * kunmap_atomic() takes care of cache flushing already. | 130 | * kunmap_atomic() takes care of cache flushing already. |
151 | */ | 131 | */ |
152 | if (page_address(page)) | 132 | if (addr) |
153 | #endif | 133 | #endif |
154 | __cpuc_flush_dcache_page(page_address(page)); | 134 | __cpuc_flush_dcache_page(addr); |
155 | 135 | ||
156 | /* | 136 | /* |
157 | * If this is a page cache page, and we have an aliasing VIPT cache, | 137 | * If this is a page cache page, and we have an aliasing VIPT cache, |
@@ -215,7 +195,16 @@ static void __flush_dcache_aliases(struct address_space *mapping, struct page *p | |||
215 | */ | 195 | */ |
216 | void flush_dcache_page(struct page *page) | 196 | void flush_dcache_page(struct page *page) |
217 | { | 197 | { |
218 | struct address_space *mapping = page_mapping(page); | 198 | struct address_space *mapping; |
199 | |||
200 | /* | ||
201 | * The zero page is never written to, so never has any dirty | ||
202 | * cache lines, and therefore never needs to be flushed. | ||
203 | */ | ||
204 | if (page == ZERO_PAGE(0)) | ||
205 | return; | ||
206 | |||
207 | mapping = page_mapping(page); | ||
219 | 208 | ||
220 | #ifndef CONFIG_SMP | 209 | #ifndef CONFIG_SMP |
221 | if (!PageHighMem(page) && mapping && !mapping_mapped(mapping)) | 210 | if (!PageHighMem(page) && mapping && !mapping_mapped(mapping)) |
@@ -261,6 +250,7 @@ void __flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned l | |||
261 | * userspace address only. | 250 | * userspace address only. |
262 | */ | 251 | */ |
263 | flush_pfn_alias(pfn, vmaddr); | 252 | flush_pfn_alias(pfn, vmaddr); |
253 | __flush_icache_all(); | ||
264 | } | 254 | } |
265 | 255 | ||
266 | /* | 256 | /* |
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 40940d7ce4ff..52c40d155672 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
@@ -273,7 +273,6 @@ static void __init bootmem_init_node(int node, struct meminfo *mi, | |||
273 | struct membank *bank = &mi->bank[i]; | 273 | struct membank *bank = &mi->bank[i]; |
274 | if (!bank->highmem) | 274 | if (!bank->highmem) |
275 | free_bootmem_node(pgdat, bank_phys_start(bank), bank_phys_size(bank)); | 275 | free_bootmem_node(pgdat, bank_phys_start(bank), bank_phys_size(bank)); |
276 | memory_present(node, bank_pfn_start(bank), bank_pfn_end(bank)); | ||
277 | } | 276 | } |
278 | 277 | ||
279 | /* | 278 | /* |
@@ -370,6 +369,19 @@ int pfn_valid(unsigned long pfn) | |||
370 | return 0; | 369 | return 0; |
371 | } | 370 | } |
372 | EXPORT_SYMBOL(pfn_valid); | 371 | EXPORT_SYMBOL(pfn_valid); |
372 | |||
373 | static void arm_memory_present(struct meminfo *mi, int node) | ||
374 | { | ||
375 | } | ||
376 | #else | ||
377 | static void arm_memory_present(struct meminfo *mi, int node) | ||
378 | { | ||
379 | int i; | ||
380 | for_each_nodebank(i, mi, node) { | ||
381 | struct membank *bank = &mi->bank[i]; | ||
382 | memory_present(node, bank_pfn_start(bank), bank_pfn_end(bank)); | ||
383 | } | ||
384 | } | ||
373 | #endif | 385 | #endif |
374 | 386 | ||
375 | static int __init meminfo_cmp(const void *_a, const void *_b) | 387 | static int __init meminfo_cmp(const void *_a, const void *_b) |
@@ -427,6 +439,12 @@ void __init bootmem_init(void) | |||
427 | */ | 439 | */ |
428 | if (node == initrd_node) | 440 | if (node == initrd_node) |
429 | bootmem_reserve_initrd(node); | 441 | bootmem_reserve_initrd(node); |
442 | |||
443 | /* | ||
444 | * Sparsemem tries to allocate bootmem in memory_present(), | ||
445 | * so must be done after the fixed reservations | ||
446 | */ | ||
447 | arm_memory_present(mi, node); | ||
430 | } | 448 | } |
431 | 449 | ||
432 | /* | 450 | /* |
diff --git a/arch/arm/mm/mm.h b/arch/arm/mm/mm.h index c4f6f05198e0..a888363398f8 100644 --- a/arch/arm/mm/mm.h +++ b/arch/arm/mm/mm.h | |||
@@ -24,6 +24,8 @@ struct mem_type { | |||
24 | 24 | ||
25 | const struct mem_type *get_mem_type(unsigned int type); | 25 | const struct mem_type *get_mem_type(unsigned int type); |
26 | 26 | ||
27 | extern void __flush_dcache_page(struct address_space *mapping, struct page *page); | ||
28 | |||
27 | #endif | 29 | #endif |
28 | 30 | ||
29 | struct map_desc; | 31 | struct map_desc; |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 02243eeccf50..2427cdcd9098 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -117,6 +117,13 @@ static void __init early_cachepolicy(char **p) | |||
117 | } | 117 | } |
118 | if (i == ARRAY_SIZE(cache_policies)) | 118 | if (i == ARRAY_SIZE(cache_policies)) |
119 | printk(KERN_ERR "ERROR: unknown or unsupported cache policy\n"); | 119 | printk(KERN_ERR "ERROR: unknown or unsupported cache policy\n"); |
120 | /* | ||
121 | * This restriction is partly to do with the way we boot; it is | ||
122 | * unpredictable to have memory mapped using two different sets of | ||
123 | * memory attributes (shared, type, and cache attribs). We can not | ||
124 | * change these attributes once the initial assembly has setup the | ||
125 | * page tables. | ||
126 | */ | ||
120 | if (cpu_architecture() >= CPU_ARCH_ARMv6) { | 127 | if (cpu_architecture() >= CPU_ARCH_ARMv6) { |
121 | printk(KERN_WARNING "Only cachepolicy=writeback supported on ARMv6 and later\n"); | 128 | printk(KERN_WARNING "Only cachepolicy=writeback supported on ARMv6 and later\n"); |
122 | cachepolicy = CPOLICY_WRITEBACK; | 129 | cachepolicy = CPOLICY_WRITEBACK; |
@@ -1029,7 +1036,7 @@ void __init paging_init(struct machine_desc *mdesc) | |||
1029 | */ | 1036 | */ |
1030 | zero_page = alloc_bootmem_low_pages(PAGE_SIZE); | 1037 | zero_page = alloc_bootmem_low_pages(PAGE_SIZE); |
1031 | empty_zero_page = virt_to_page(zero_page); | 1038 | empty_zero_page = virt_to_page(zero_page); |
1032 | flush_dcache_page(empty_zero_page); | 1039 | __flush_dcache_page(NULL, empty_zero_page); |
1033 | } | 1040 | } |
1034 | 1041 | ||
1035 | /* | 1042 | /* |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 194737d60a22..70f75d2e3ead 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -32,8 +32,10 @@ | |||
32 | 32 | ||
33 | #ifndef CONFIG_SMP | 33 | #ifndef CONFIG_SMP |
34 | #define TTB_FLAGS TTB_RGN_WBWA | 34 | #define TTB_FLAGS TTB_RGN_WBWA |
35 | #define PMD_FLAGS PMD_SECT_WB | ||
35 | #else | 36 | #else |
36 | #define TTB_FLAGS TTB_RGN_WBWA|TTB_S | 37 | #define TTB_FLAGS TTB_RGN_WBWA|TTB_S |
38 | #define PMD_FLAGS PMD_SECT_WBWA|PMD_SECT_S | ||
37 | #endif | 39 | #endif |
38 | 40 | ||
39 | ENTRY(cpu_v6_proc_init) | 41 | ENTRY(cpu_v6_proc_init) |
@@ -222,10 +224,9 @@ __v6_proc_info: | |||
222 | .long 0x0007b000 | 224 | .long 0x0007b000 |
223 | .long 0x0007f000 | 225 | .long 0x0007f000 |
224 | .long PMD_TYPE_SECT | \ | 226 | .long PMD_TYPE_SECT | \ |
225 | PMD_SECT_BUFFERABLE | \ | ||
226 | PMD_SECT_CACHEABLE | \ | ||
227 | PMD_SECT_AP_WRITE | \ | 227 | PMD_SECT_AP_WRITE | \ |
228 | PMD_SECT_AP_READ | 228 | PMD_SECT_AP_READ | \ |
229 | PMD_FLAGS | ||
229 | .long PMD_TYPE_SECT | \ | 230 | .long PMD_TYPE_SECT | \ |
230 | PMD_SECT_XN | \ | 231 | PMD_SECT_XN | \ |
231 | PMD_SECT_AP_WRITE | \ | 232 | PMD_SECT_AP_WRITE | \ |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 23ebcf6eab9f..3a285218fd15 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -33,9 +33,11 @@ | |||
33 | #ifndef CONFIG_SMP | 33 | #ifndef CONFIG_SMP |
34 | /* PTWs cacheable, inner WB not shareable, outer WB not shareable */ | 34 | /* PTWs cacheable, inner WB not shareable, outer WB not shareable */ |
35 | #define TTB_FLAGS TTB_IRGN_WB|TTB_RGN_OC_WB | 35 | #define TTB_FLAGS TTB_IRGN_WB|TTB_RGN_OC_WB |
36 | #define PMD_FLAGS PMD_SECT_WB | ||
36 | #else | 37 | #else |
37 | /* PTWs cacheable, inner WBWA shareable, outer WBWA not shareable */ | 38 | /* PTWs cacheable, inner WBWA shareable, outer WBWA not shareable */ |
38 | #define TTB_FLAGS TTB_IRGN_WBWA|TTB_S|TTB_NOS|TTB_RGN_OC_WBWA | 39 | #define TTB_FLAGS TTB_IRGN_WBWA|TTB_S|TTB_NOS|TTB_RGN_OC_WBWA |
40 | #define PMD_FLAGS PMD_SECT_WBWA|PMD_SECT_S | ||
39 | #endif | 41 | #endif |
40 | 42 | ||
41 | ENTRY(cpu_v7_proc_init) | 43 | ENTRY(cpu_v7_proc_init) |
@@ -184,9 +186,10 @@ cpu_v7_name: | |||
184 | */ | 186 | */ |
185 | __v7_setup: | 187 | __v7_setup: |
186 | #ifdef CONFIG_SMP | 188 | #ifdef CONFIG_SMP |
187 | mrc p15, 0, r0, c1, c0, 1 @ Enable SMP/nAMP mode and | 189 | mrc p15, 0, r0, c1, c0, 1 |
188 | orr r0, r0, #(1 << 6) | (1 << 0) @ TLB ops broadcasting | 190 | tst r0, #(1 << 6) @ SMP/nAMP mode enabled? |
189 | mcr p15, 0, r0, c1, c0, 1 | 191 | orreq r0, r0, #(1 << 6) | (1 << 0) @ Enable SMP/nAMP mode and |
192 | mcreq p15, 0, r0, c1, c0, 1 @ TLB ops broadcasting | ||
190 | #endif | 193 | #endif |
191 | adr r12, __v7_setup_stack @ the local stack | 194 | adr r12, __v7_setup_stack @ the local stack |
192 | stmia r12, {r0-r5, r7, r9, r11, lr} | 195 | stmia r12, {r0-r5, r7, r9, r11, lr} |
@@ -326,10 +329,9 @@ __v7_proc_info: | |||
326 | .long 0x000f0000 @ Required ID value | 329 | .long 0x000f0000 @ Required ID value |
327 | .long 0x000f0000 @ Mask for ID | 330 | .long 0x000f0000 @ Mask for ID |
328 | .long PMD_TYPE_SECT | \ | 331 | .long PMD_TYPE_SECT | \ |
329 | PMD_SECT_BUFFERABLE | \ | ||
330 | PMD_SECT_CACHEABLE | \ | ||
331 | PMD_SECT_AP_WRITE | \ | 332 | PMD_SECT_AP_WRITE | \ |
332 | PMD_SECT_AP_READ | 333 | PMD_SECT_AP_READ | \ |
334 | PMD_FLAGS | ||
333 | .long PMD_TYPE_SECT | \ | 335 | .long PMD_TYPE_SECT | \ |
334 | PMD_SECT_XN | \ | 336 | PMD_SECT_XN | \ |
335 | PMD_SECT_AP_WRITE | \ | 337 | PMD_SECT_AP_WRITE | \ |
diff --git a/arch/arm/mm/vmregion.c b/arch/arm/mm/vmregion.c new file mode 100644 index 000000000000..19e09bdb1b8a --- /dev/null +++ b/arch/arm/mm/vmregion.c | |||
@@ -0,0 +1,131 @@ | |||
1 | #include <linux/spinlock.h> | ||
2 | #include <linux/list.h> | ||
3 | #include <linux/slab.h> | ||
4 | |||
5 | #include "vmregion.h" | ||
6 | |||
7 | /* | ||
8 | * VM region handling support. | ||
9 | * | ||
10 | * This should become something generic, handling VM region allocations for | ||
11 | * vmalloc and similar (ioremap, module space, etc). | ||
12 | * | ||
13 | * I envisage vmalloc()'s supporting vm_struct becoming: | ||
14 | * | ||
15 | * struct vm_struct { | ||
16 | * struct vmregion region; | ||
17 | * unsigned long flags; | ||
18 | * struct page **pages; | ||
19 | * unsigned int nr_pages; | ||
20 | * unsigned long phys_addr; | ||
21 | * }; | ||
22 | * | ||
23 | * get_vm_area() would then call vmregion_alloc with an appropriate | ||
24 | * struct vmregion head (eg): | ||
25 | * | ||
26 | * struct vmregion vmalloc_head = { | ||
27 | * .vm_list = LIST_HEAD_INIT(vmalloc_head.vm_list), | ||
28 | * .vm_start = VMALLOC_START, | ||
29 | * .vm_end = VMALLOC_END, | ||
30 | * }; | ||
31 | * | ||
32 | * However, vmalloc_head.vm_start is variable (typically, it is dependent on | ||
33 | * the amount of RAM found at boot time.) I would imagine that get_vm_area() | ||
34 | * would have to initialise this each time prior to calling vmregion_alloc(). | ||
35 | */ | ||
36 | |||
37 | struct arm_vmregion * | ||
38 | arm_vmregion_alloc(struct arm_vmregion_head *head, size_t size, gfp_t gfp) | ||
39 | { | ||
40 | unsigned long addr = head->vm_start, end = head->vm_end - size; | ||
41 | unsigned long flags; | ||
42 | struct arm_vmregion *c, *new; | ||
43 | |||
44 | if (head->vm_end - head->vm_start < size) { | ||
45 | printk(KERN_WARNING "%s: allocation too big (requested %#x)\n", | ||
46 | __func__, size); | ||
47 | goto out; | ||
48 | } | ||
49 | |||
50 | new = kmalloc(sizeof(struct arm_vmregion), gfp); | ||
51 | if (!new) | ||
52 | goto out; | ||
53 | |||
54 | spin_lock_irqsave(&head->vm_lock, flags); | ||
55 | |||
56 | list_for_each_entry(c, &head->vm_list, vm_list) { | ||
57 | if ((addr + size) < addr) | ||
58 | goto nospc; | ||
59 | if ((addr + size) <= c->vm_start) | ||
60 | goto found; | ||
61 | addr = c->vm_end; | ||
62 | if (addr > end) | ||
63 | goto nospc; | ||
64 | } | ||
65 | |||
66 | found: | ||
67 | /* | ||
68 | * Insert this entry _before_ the one we found. | ||
69 | */ | ||
70 | list_add_tail(&new->vm_list, &c->vm_list); | ||
71 | new->vm_start = addr; | ||
72 | new->vm_end = addr + size; | ||
73 | new->vm_active = 1; | ||
74 | |||
75 | spin_unlock_irqrestore(&head->vm_lock, flags); | ||
76 | return new; | ||
77 | |||
78 | nospc: | ||
79 | spin_unlock_irqrestore(&head->vm_lock, flags); | ||
80 | kfree(new); | ||
81 | out: | ||
82 | return NULL; | ||
83 | } | ||
84 | |||
85 | static struct arm_vmregion *__arm_vmregion_find(struct arm_vmregion_head *head, unsigned long addr) | ||
86 | { | ||
87 | struct arm_vmregion *c; | ||
88 | |||
89 | list_for_each_entry(c, &head->vm_list, vm_list) { | ||
90 | if (c->vm_active && c->vm_start == addr) | ||
91 | goto out; | ||
92 | } | ||
93 | c = NULL; | ||
94 | out: | ||
95 | return c; | ||
96 | } | ||
97 | |||
98 | struct arm_vmregion *arm_vmregion_find(struct arm_vmregion_head *head, unsigned long addr) | ||
99 | { | ||
100 | struct arm_vmregion *c; | ||
101 | unsigned long flags; | ||
102 | |||
103 | spin_lock_irqsave(&head->vm_lock, flags); | ||
104 | c = __arm_vmregion_find(head, addr); | ||
105 | spin_unlock_irqrestore(&head->vm_lock, flags); | ||
106 | return c; | ||
107 | } | ||
108 | |||
109 | struct arm_vmregion *arm_vmregion_find_remove(struct arm_vmregion_head *head, unsigned long addr) | ||
110 | { | ||
111 | struct arm_vmregion *c; | ||
112 | unsigned long flags; | ||
113 | |||
114 | spin_lock_irqsave(&head->vm_lock, flags); | ||
115 | c = __arm_vmregion_find(head, addr); | ||
116 | if (c) | ||
117 | c->vm_active = 0; | ||
118 | spin_unlock_irqrestore(&head->vm_lock, flags); | ||
119 | return c; | ||
120 | } | ||
121 | |||
122 | void arm_vmregion_free(struct arm_vmregion_head *head, struct arm_vmregion *c) | ||
123 | { | ||
124 | unsigned long flags; | ||
125 | |||
126 | spin_lock_irqsave(&head->vm_lock, flags); | ||
127 | list_del(&c->vm_list); | ||
128 | spin_unlock_irqrestore(&head->vm_lock, flags); | ||
129 | |||
130 | kfree(c); | ||
131 | } | ||
diff --git a/arch/arm/mm/vmregion.h b/arch/arm/mm/vmregion.h new file mode 100644 index 000000000000..6b2cdbdf3a85 --- /dev/null +++ b/arch/arm/mm/vmregion.h | |||
@@ -0,0 +1,29 @@ | |||
1 | #ifndef VMREGION_H | ||
2 | #define VMREGION_H | ||
3 | |||
4 | #include <linux/spinlock.h> | ||
5 | #include <linux/list.h> | ||
6 | |||
7 | struct page; | ||
8 | |||
9 | struct arm_vmregion_head { | ||
10 | spinlock_t vm_lock; | ||
11 | struct list_head vm_list; | ||
12 | unsigned long vm_start; | ||
13 | unsigned long vm_end; | ||
14 | }; | ||
15 | |||
16 | struct arm_vmregion { | ||
17 | struct list_head vm_list; | ||
18 | unsigned long vm_start; | ||
19 | unsigned long vm_end; | ||
20 | struct page *vm_pages; | ||
21 | int vm_active; | ||
22 | }; | ||
23 | |||
24 | struct arm_vmregion *arm_vmregion_alloc(struct arm_vmregion_head *, size_t, gfp_t); | ||
25 | struct arm_vmregion *arm_vmregion_find(struct arm_vmregion_head *, unsigned long); | ||
26 | struct arm_vmregion *arm_vmregion_find_remove(struct arm_vmregion_head *, unsigned long); | ||
27 | void arm_vmregion_free(struct arm_vmregion_head *, struct arm_vmregion *); | ||
28 | |||
29 | #endif | ||
diff --git a/arch/arm/oprofile/op_model_v6.c b/arch/arm/oprofile/op_model_v6.c index fe581383d3e2..f7d2ec5ee9a1 100644 --- a/arch/arm/oprofile/op_model_v6.c +++ b/arch/arm/oprofile/op_model_v6.c | |||
@@ -33,6 +33,9 @@ static int irqs[] = { | |||
33 | #ifdef CONFIG_ARCH_OMAP2 | 33 | #ifdef CONFIG_ARCH_OMAP2 |
34 | 3, | 34 | 3, |
35 | #endif | 35 | #endif |
36 | #ifdef CONFIG_ARCH_BCMRING | ||
37 | IRQ_PMUIRQ, /* for BCMRING, ARM PMU interrupt is 43 */ | ||
38 | #endif | ||
36 | }; | 39 | }; |
37 | 40 | ||
38 | static void armv6_pmu_stop(void) | 41 | static void armv6_pmu_stop(void) |
diff --git a/arch/arm/plat-nomadik/Kconfig b/arch/arm/plat-nomadik/Kconfig new file mode 100644 index 000000000000..159daf583f85 --- /dev/null +++ b/arch/arm/plat-nomadik/Kconfig | |||
@@ -0,0 +1,22 @@ | |||
1 | # We keep common IP's here for Nomadik and other similar | ||
2 | # familiy of processors from ST-Ericsson. At the moment we have | ||
3 | # just MTU, others to follow soon. | ||
4 | |||
5 | config PLAT_NOMADIK | ||
6 | bool | ||
7 | depends on ARCH_NOMADIK || ARCH_U8500 | ||
8 | default y | ||
9 | help | ||
10 | Common platform code for Nomadik and other ST-Ericsson | ||
11 | platforms. | ||
12 | |||
13 | if PLAT_NOMADIK | ||
14 | |||
15 | config HAS_MTU | ||
16 | bool | ||
17 | help | ||
18 | Support for Multi Timer Unit. MTU provides access | ||
19 | to multiple interrupt generating programmable | ||
20 | 32-bit free running decrementing counters. | ||
21 | |||
22 | endif | ||
diff --git a/arch/arm/plat-nomadik/Makefile b/arch/arm/plat-nomadik/Makefile new file mode 100644 index 000000000000..37c7cdd0f8f0 --- /dev/null +++ b/arch/arm/plat-nomadik/Makefile | |||
@@ -0,0 +1,5 @@ | |||
1 | # arch/arm/plat-nomadik/Makefile | ||
2 | # Copyright 2009 ST-Ericsson | ||
3 | # Licensed under GPLv2 | ||
4 | |||
5 | obj-$(CONFIG_HAS_MTU) += timer.o | ||
diff --git a/arch/arm/mach-nomadik/include/mach/mtu.h b/arch/arm/plat-nomadik/include/plat/mtu.h index 76da7f085330..42c907258b14 100644 --- a/arch/arm/mach-nomadik/include/mach/mtu.h +++ b/arch/arm/plat-nomadik/include/plat/mtu.h | |||
@@ -1,5 +1,8 @@ | |||
1 | #ifndef __ASM_ARCH_MTU_H | 1 | #ifndef __PLAT_MTU_H |
2 | #define __ASM_ARCH_MTU_H | 2 | #define __PLAT_MTU_H |
3 | |||
4 | /* should be set by the platform code */ | ||
5 | extern void __iomem *mtu_base; | ||
3 | 6 | ||
4 | /* | 7 | /* |
5 | * The MTU device hosts four different counters, with 4 set of | 8 | * The MTU device hosts four different counters, with 4 set of |
@@ -41,5 +44,5 @@ | |||
41 | #define MTU_PCELL2 0xff8 | 44 | #define MTU_PCELL2 0xff8 |
42 | #define MTU_PCELL3 0xffC | 45 | #define MTU_PCELL3 0xffC |
43 | 46 | ||
44 | #endif /* __ASM_ARCH_MTU_H */ | 47 | #endif /* __PLAT_MTU_H */ |
45 | 48 | ||
diff --git a/arch/arm/mach-nomadik/timer.c b/arch/arm/plat-nomadik/timer.c index d1738e7061d4..62f18ad43a28 100644 --- a/arch/arm/mach-nomadik/timer.c +++ b/arch/arm/plat-nomadik/timer.c | |||
@@ -15,19 +15,14 @@ | |||
15 | #include <linux/clockchips.h> | 15 | #include <linux/clockchips.h> |
16 | #include <linux/jiffies.h> | 16 | #include <linux/jiffies.h> |
17 | #include <asm/mach/time.h> | 17 | #include <asm/mach/time.h> |
18 | #include <mach/mtu.h> | ||
19 | 18 | ||
20 | #define TIMER_CTRL 0x80 /* No divisor */ | 19 | #include <plat/mtu.h> |
21 | #define TIMER_PERIODIC 0x40 | ||
22 | #define TIMER_SZ32BIT 0x02 | ||
23 | |||
24 | /* Initial value for SRC control register: all timers use MXTAL/8 source */ | ||
25 | #define SRC_CR_INIT_MASK 0x00007fff | ||
26 | #define SRC_CR_INIT_VAL 0x2aaa8000 | ||
27 | 20 | ||
28 | static u32 nmdk_count; /* accumulated count */ | 21 | static u32 nmdk_count; /* accumulated count */ |
29 | static u32 nmdk_cycle; /* write-once */ | 22 | static u32 nmdk_cycle; /* write-once */ |
30 | static __iomem void *mtu_base; | 23 | |
24 | /* setup by the platform code */ | ||
25 | void __iomem *mtu_base; | ||
31 | 26 | ||
32 | /* | 27 | /* |
33 | * clocksource: the MTU device is a decrementing counters, so we negate | 28 | * clocksource: the MTU device is a decrementing counters, so we negate |
@@ -93,7 +88,7 @@ static struct clock_event_device nmdk_clkevt = { | |||
93 | static irqreturn_t nmdk_timer_interrupt(int irq, void *dev_id) | 88 | static irqreturn_t nmdk_timer_interrupt(int irq, void *dev_id) |
94 | { | 89 | { |
95 | /* ack: "interrupt clear register" */ | 90 | /* ack: "interrupt clear register" */ |
96 | writel( 1 << 0, mtu_base + MTU_ICR); | 91 | writel(1 << 0, mtu_base + MTU_ICR); |
97 | 92 | ||
98 | /* we can't count lost ticks, unfortunately */ | 93 | /* we can't count lost ticks, unfortunately */ |
99 | nmdk_count += nmdk_cycle; | 94 | nmdk_count += nmdk_cycle; |
@@ -125,24 +120,14 @@ static void nmdk_timer_reset(void) | |||
125 | writel(cr | MTU_CRn_ENA, mtu_base + MTU_CR(0)); | 120 | writel(cr | MTU_CRn_ENA, mtu_base + MTU_CR(0)); |
126 | } | 121 | } |
127 | 122 | ||
128 | static void __init nmdk_timer_init(void) | 123 | void __init nmdk_timer_init(void) |
129 | { | 124 | { |
130 | u32 src_cr; | ||
131 | unsigned long rate; | 125 | unsigned long rate; |
132 | int bits; | 126 | int bits; |
133 | 127 | ||
134 | rate = CLOCK_TICK_RATE; /* 2.4MHz */ | 128 | rate = CLOCK_TICK_RATE; /* 2.4MHz */ |
135 | nmdk_cycle = (rate + HZ/2) / HZ; | 129 | nmdk_cycle = (rate + HZ/2) / HZ; |
136 | 130 | ||
137 | /* Configure timer sources in "system reset controller" ctrl reg */ | ||
138 | src_cr = readl(io_p2v(NOMADIK_SRC_BASE)); | ||
139 | src_cr &= SRC_CR_INIT_MASK; | ||
140 | src_cr |= SRC_CR_INIT_VAL; | ||
141 | writel(src_cr, io_p2v(NOMADIK_SRC_BASE)); | ||
142 | |||
143 | /* Save global pointer to mtu, used by functions above */ | ||
144 | mtu_base = io_p2v(NOMADIK_MTU0_BASE); | ||
145 | |||
146 | /* Init the timer and register clocksource */ | 131 | /* Init the timer and register clocksource */ |
147 | nmdk_timer_reset(); | 132 | nmdk_timer_reset(); |
148 | 133 | ||
@@ -150,7 +135,9 @@ static void __init nmdk_timer_init(void) | |||
150 | bits = 8*sizeof(nmdk_count); | 135 | bits = 8*sizeof(nmdk_count); |
151 | nmdk_clksrc.mask = CLOCKSOURCE_MASK(bits); | 136 | nmdk_clksrc.mask = CLOCKSOURCE_MASK(bits); |
152 | 137 | ||
153 | clocksource_register(&nmdk_clksrc); | 138 | if (clocksource_register(&nmdk_clksrc)) |
139 | printk(KERN_ERR "timer: failed to initialize clock " | ||
140 | "source %s\n", nmdk_clksrc.name); | ||
154 | 141 | ||
155 | /* Register irq and clockevents */ | 142 | /* Register irq and clockevents */ |
156 | setup_irq(IRQ_MTU0, &nmdk_timer_irq); | 143 | setup_irq(IRQ_MTU0, &nmdk_timer_irq); |
@@ -158,7 +145,3 @@ static void __init nmdk_timer_init(void) | |||
158 | nmdk_clkevt.cpumask = cpumask_of(0); | 145 | nmdk_clkevt.cpumask = cpumask_of(0); |
159 | clockevents_register_device(&nmdk_clkevt); | 146 | clockevents_register_device(&nmdk_clkevt); |
160 | } | 147 | } |
161 | |||
162 | struct sys_timer nomadik_timer = { | ||
163 | .init = nmdk_timer_init, | ||
164 | }; | ||
diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c index 1868c0d8f9b5..341235c278ac 100644 --- a/arch/arm/plat-omap/cpu-omap.c +++ b/arch/arm/plat-omap/cpu-omap.c | |||
@@ -127,7 +127,7 @@ static int __init omap_cpu_init(struct cpufreq_policy *policy) | |||
127 | } | 127 | } |
128 | 128 | ||
129 | /* FIXME: what's the actual transition time? */ | 129 | /* FIXME: what's the actual transition time? */ |
130 | policy->cpuinfo.transition_latency = 10 * 1000 * 1000; | 130 | policy->cpuinfo.transition_latency = 300 * 1000; |
131 | 131 | ||
132 | return 0; | 132 | return 0; |
133 | } | 133 | } |
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 0eb676d7e807..68eaae324b6a 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
@@ -691,13 +691,16 @@ static inline void disable_lnk(int lch) | |||
691 | static inline void omap2_enable_irq_lch(int lch) | 691 | static inline void omap2_enable_irq_lch(int lch) |
692 | { | 692 | { |
693 | u32 val; | 693 | u32 val; |
694 | unsigned long flags; | ||
694 | 695 | ||
695 | if (!cpu_class_is_omap2()) | 696 | if (!cpu_class_is_omap2()) |
696 | return; | 697 | return; |
697 | 698 | ||
699 | spin_lock_irqsave(&dma_chan_lock, flags); | ||
698 | val = dma_read(IRQENABLE_L0); | 700 | val = dma_read(IRQENABLE_L0); |
699 | val |= 1 << lch; | 701 | val |= 1 << lch; |
700 | dma_write(val, IRQENABLE_L0); | 702 | dma_write(val, IRQENABLE_L0); |
703 | spin_unlock_irqrestore(&dma_chan_lock, flags); | ||
701 | } | 704 | } |
702 | 705 | ||
703 | int omap_request_dma(int dev_id, const char *dev_name, | 706 | int omap_request_dma(int dev_id, const char *dev_name, |
@@ -799,10 +802,13 @@ void omap_free_dma(int lch) | |||
799 | 802 | ||
800 | if (cpu_class_is_omap2()) { | 803 | if (cpu_class_is_omap2()) { |
801 | u32 val; | 804 | u32 val; |
805 | |||
806 | spin_lock_irqsave(&dma_chan_lock, flags); | ||
802 | /* Disable interrupts */ | 807 | /* Disable interrupts */ |
803 | val = dma_read(IRQENABLE_L0); | 808 | val = dma_read(IRQENABLE_L0); |
804 | val &= ~(1 << lch); | 809 | val &= ~(1 << lch); |
805 | dma_write(val, IRQENABLE_L0); | 810 | dma_write(val, IRQENABLE_L0); |
811 | spin_unlock_irqrestore(&dma_chan_lock, flags); | ||
806 | 812 | ||
807 | /* Clear the CSR register and IRQ status register */ | 813 | /* Clear the CSR register and IRQ status register */ |
808 | dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR(lch)); | 814 | dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR(lch)); |
@@ -978,6 +984,14 @@ void omap_stop_dma(int lch) | |||
978 | { | 984 | { |
979 | u32 l; | 985 | u32 l; |
980 | 986 | ||
987 | /* Disable all interrupts on the channel */ | ||
988 | if (cpu_class_is_omap1()) | ||
989 | dma_write(0, CICR(lch)); | ||
990 | |||
991 | l = dma_read(CCR(lch)); | ||
992 | l &= ~OMAP_DMA_CCR_EN; | ||
993 | dma_write(l, CCR(lch)); | ||
994 | |||
981 | if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { | 995 | if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { |
982 | int next_lch, cur_lch = lch; | 996 | int next_lch, cur_lch = lch; |
983 | char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; | 997 | char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; |
@@ -995,18 +1009,8 @@ void omap_stop_dma(int lch) | |||
995 | next_lch = dma_chan[cur_lch].next_lch; | 1009 | next_lch = dma_chan[cur_lch].next_lch; |
996 | cur_lch = next_lch; | 1010 | cur_lch = next_lch; |
997 | } while (next_lch != -1); | 1011 | } while (next_lch != -1); |
998 | |||
999 | return; | ||
1000 | } | 1012 | } |
1001 | 1013 | ||
1002 | /* Disable all interrupts on the channel */ | ||
1003 | if (cpu_class_is_omap1()) | ||
1004 | dma_write(0, CICR(lch)); | ||
1005 | |||
1006 | l = dma_read(CCR(lch)); | ||
1007 | l &= ~OMAP_DMA_CCR_EN; | ||
1008 | dma_write(l, CCR(lch)); | ||
1009 | |||
1010 | dma_chan[lch].flags &= ~OMAP_DMA_ACTIVE; | 1014 | dma_chan[lch].flags &= ~OMAP_DMA_ACTIVE; |
1011 | } | 1015 | } |
1012 | EXPORT_SYMBOL(omap_stop_dma); | 1016 | EXPORT_SYMBOL(omap_stop_dma); |
@@ -1110,6 +1114,14 @@ int omap_dma_running(void) | |||
1110 | { | 1114 | { |
1111 | int lch; | 1115 | int lch; |
1112 | 1116 | ||
1117 | /* | ||
1118 | * On OMAP1510, internal LCD controller will start the transfer | ||
1119 | * when it gets enabled, so assume DMA running if LCD enabled. | ||
1120 | */ | ||
1121 | if (cpu_is_omap1510()) | ||
1122 | if (omap_readw(0xfffec000 + 0x00) & (1 << 0)) | ||
1123 | return 1; | ||
1124 | |||
1113 | /* Check if LCD DMA is running */ | 1125 | /* Check if LCD DMA is running */ |
1114 | if (cpu_is_omap16xx()) | 1126 | if (cpu_is_omap16xx()) |
1115 | if (omap_readw(OMAP1610_DMA_LCD_CCR) & OMAP_DMA_CCR_EN) | 1127 | if (omap_readw(OMAP1610_DMA_LCD_CCR) & OMAP_DMA_CCR_EN) |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 71ebd7fcfea1..7c345b757df1 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -373,7 +373,7 @@ static inline int gpio_valid(int gpio) | |||
373 | 373 | ||
374 | static int check_gpio(int gpio) | 374 | static int check_gpio(int gpio) |
375 | { | 375 | { |
376 | if (unlikely(gpio_valid(gpio)) < 0) { | 376 | if (unlikely(gpio_valid(gpio) < 0)) { |
377 | printk(KERN_ERR "omap-gpio: invalid GPIO %d\n", gpio); | 377 | printk(KERN_ERR "omap-gpio: invalid GPIO %d\n", gpio); |
378 | dump_stack(); | 378 | dump_stack(); |
379 | return -1; | 379 | return -1; |
diff --git a/arch/arm/plat-omap/include/mach/keypad.h b/arch/arm/plat-omap/include/mach/keypad.h index d91b9be334ff..3ae52ccc793c 100644 --- a/arch/arm/plat-omap/include/mach/keypad.h +++ b/arch/arm/plat-omap/include/mach/keypad.h | |||
@@ -10,7 +10,7 @@ | |||
10 | #ifndef ASMARM_ARCH_KEYPAD_H | 10 | #ifndef ASMARM_ARCH_KEYPAD_H |
11 | #define ASMARM_ARCH_KEYPAD_H | 11 | #define ASMARM_ARCH_KEYPAD_H |
12 | 12 | ||
13 | #include <linux/input/matrix_keypad.h> | 13 | #warning: Please update the board to use matrix_keypad.h instead |
14 | 14 | ||
15 | struct omap_kp_platform_data { | 15 | struct omap_kp_platform_data { |
16 | int rows; | 16 | int rows; |
@@ -37,6 +37,9 @@ struct omap_kp_platform_data { | |||
37 | 37 | ||
38 | #define KEY_PERSISTENT 0x00800000 | 38 | #define KEY_PERSISTENT 0x00800000 |
39 | #define KEYNUM_MASK 0x00EFFFFF | 39 | #define KEYNUM_MASK 0x00EFFFFF |
40 | #define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val)) | ||
41 | #define PERSISTENT_KEY(col, row) (((col) << 28) | ((row) << 24) | \ | ||
42 | KEY_PERSISTENT) | ||
40 | 43 | ||
41 | #endif | 44 | #endif |
42 | 45 | ||
diff --git a/arch/arm/plat-omap/include/mach/memory.h b/arch/arm/plat-omap/include/mach/memory.h index 9ad41dc484c1..3325f7b49eaa 100644 --- a/arch/arm/plat-omap/include/mach/memory.h +++ b/arch/arm/plat-omap/include/mach/memory.h | |||
@@ -68,6 +68,13 @@ | |||
68 | __dma = __dma - PHYS_OFFSET + OMAP1510_LB_OFFSET; \ | 68 | __dma = __dma - PHYS_OFFSET + OMAP1510_LB_OFFSET; \ |
69 | __dma; }) | 69 | __dma; }) |
70 | 70 | ||
71 | #define __arch_dma_to_page(dev, addr) \ | ||
72 | ({ dma_addr_t __dma = addr; \ | ||
73 | if (is_lbus_device(dev)) \ | ||
74 | __dma += PHYS_OFFSET - OMAP1510_LB_OFFSET; \ | ||
75 | phys_to_page(__dma); \ | ||
76 | }) | ||
77 | |||
71 | #define __arch_dma_to_virt(dev, addr) ({ (void *) (is_lbus_device(dev) ? \ | 78 | #define __arch_dma_to_virt(dev, addr) ({ (void *) (is_lbus_device(dev) ? \ |
72 | lbus_to_virt(addr) : \ | 79 | lbus_to_virt(addr) : \ |
73 | __phys_to_virt(addr)); }) | 80 | __phys_to_virt(addr)); }) |
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c index 4b6012707307..94584f167a82 100644 --- a/arch/arm/plat-omap/iommu.c +++ b/arch/arm/plat-omap/iommu.c | |||
@@ -664,7 +664,7 @@ static size_t iopgtable_clear_entry_core(struct iommu *obj, u32 da) | |||
664 | nent = 1; /* for the next L1 entry */ | 664 | nent = 1; /* for the next L1 entry */ |
665 | } else { | 665 | } else { |
666 | bytes = IOPGD_SIZE; | 666 | bytes = IOPGD_SIZE; |
667 | if (*iopgd & IOPGD_SUPER) { | 667 | if ((*iopgd & IOPGD_SUPER) == IOPGD_SUPER) { |
668 | nent *= 16; | 668 | nent *= 16; |
669 | /* rewind to the 1st entry */ | 669 | /* rewind to the 1st entry */ |
670 | iopgd = (u32 *)((u32)iopgd & IOSUPER_MASK); | 670 | iopgd = (u32 *)((u32)iopgd & IOSUPER_MASK); |
diff --git a/arch/arm/plat-pxa/include/plat/mfp.h b/arch/arm/plat-pxa/include/plat/mfp.h index 22086e696e8e..857a6839071c 100644 --- a/arch/arm/plat-pxa/include/plat/mfp.h +++ b/arch/arm/plat-pxa/include/plat/mfp.h | |||
@@ -16,7 +16,7 @@ | |||
16 | #ifndef __ASM_PLAT_MFP_H | 16 | #ifndef __ASM_PLAT_MFP_H |
17 | #define __ASM_PLAT_MFP_H | 17 | #define __ASM_PLAT_MFP_H |
18 | 18 | ||
19 | #define mfp_to_gpio(m) ((m) % 128) | 19 | #define mfp_to_gpio(m) ((m) % 256) |
20 | 20 | ||
21 | /* list of all the configurable MFP pins */ | 21 | /* list of all the configurable MFP pins */ |
22 | enum { | 22 | enum { |
diff --git a/arch/arm/plat-pxa/mfp.c b/arch/arm/plat-pxa/mfp.c index 9405d0379c85..be58f9fe65b0 100644 --- a/arch/arm/plat-pxa/mfp.c +++ b/arch/arm/plat-pxa/mfp.c | |||
@@ -207,7 +207,7 @@ unsigned long mfp_read(int mfp) | |||
207 | { | 207 | { |
208 | unsigned long val, flags; | 208 | unsigned long val, flags; |
209 | 209 | ||
210 | BUG_ON(mfp >= MFP_PIN_MAX); | 210 | BUG_ON(mfp < 0 || mfp >= MFP_PIN_MAX); |
211 | 211 | ||
212 | spin_lock_irqsave(&mfp_spin_lock, flags); | 212 | spin_lock_irqsave(&mfp_spin_lock, flags); |
213 | val = mfpr_readl(mfp_table[mfp].mfpr_off); | 213 | val = mfpr_readl(mfp_table[mfp].mfpr_off); |
@@ -220,7 +220,7 @@ void mfp_write(int mfp, unsigned long val) | |||
220 | { | 220 | { |
221 | unsigned long flags; | 221 | unsigned long flags; |
222 | 222 | ||
223 | BUG_ON(mfp >= MFP_PIN_MAX); | 223 | BUG_ON(mfp < 0 || mfp >= MFP_PIN_MAX); |
224 | 224 | ||
225 | spin_lock_irqsave(&mfp_spin_lock, flags); | 225 | spin_lock_irqsave(&mfp_spin_lock, flags); |
226 | mfpr_writel(mfp_table[mfp].mfpr_off, val); | 226 | mfpr_writel(mfp_table[mfp].mfpr_off, val); |
diff --git a/arch/arm/plat-s3c24xx/adc.c b/arch/arm/plat-s3c24xx/adc.c index 4d36b784fb8b..df47322492d5 100644 --- a/arch/arm/plat-s3c24xx/adc.c +++ b/arch/arm/plat-s3c24xx/adc.c | |||
@@ -189,7 +189,7 @@ int s3c_adc_read(struct s3c_adc_client *client, unsigned int ch) | |||
189 | err: | 189 | err: |
190 | return ret; | 190 | return ret; |
191 | } | 191 | } |
192 | EXPORT_SYMBOL_GPL(s3c_adc_convert); | 192 | EXPORT_SYMBOL_GPL(s3c_adc_read); |
193 | 193 | ||
194 | static void s3c_adc_default_select(struct s3c_adc_client *client, | 194 | static void s3c_adc_default_select(struct s3c_adc_client *client, |
195 | unsigned select) | 195 | unsigned select) |
diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c index 5447e60f3936..4af9dd948793 100644 --- a/arch/arm/plat-s3c24xx/cpu.c +++ b/arch/arm/plat-s3c24xx/cpu.c | |||
@@ -61,6 +61,7 @@ static const char name_s3c2410[] = "S3C2410"; | |||
61 | static const char name_s3c2412[] = "S3C2412"; | 61 | static const char name_s3c2412[] = "S3C2412"; |
62 | static const char name_s3c2440[] = "S3C2440"; | 62 | static const char name_s3c2440[] = "S3C2440"; |
63 | static const char name_s3c2442[] = "S3C2442"; | 63 | static const char name_s3c2442[] = "S3C2442"; |
64 | static const char name_s3c2442b[] = "S3C2442B"; | ||
64 | static const char name_s3c2443[] = "S3C2443"; | 65 | static const char name_s3c2443[] = "S3C2443"; |
65 | static const char name_s3c2410a[] = "S3C2410A"; | 66 | static const char name_s3c2410a[] = "S3C2410A"; |
66 | static const char name_s3c2440a[] = "S3C2440A"; | 67 | static const char name_s3c2440a[] = "S3C2440A"; |
@@ -112,6 +113,15 @@ static struct cpu_table cpu_ids[] __initdata = { | |||
112 | .name = name_s3c2442 | 113 | .name = name_s3c2442 |
113 | }, | 114 | }, |
114 | { | 115 | { |
116 | .idcode = 0x32440aab, | ||
117 | .idmask = 0xffffffff, | ||
118 | .map_io = s3c244x_map_io, | ||
119 | .init_clocks = s3c244x_init_clocks, | ||
120 | .init_uarts = s3c244x_init_uarts, | ||
121 | .init = s3c2442_init, | ||
122 | .name = name_s3c2442b | ||
123 | }, | ||
124 | { | ||
115 | .idcode = 0x32412001, | 125 | .idcode = 0x32412001, |
116 | .idmask = 0xffffffff, | 126 | .idmask = 0xffffffff, |
117 | .map_io = s3c2412_map_io, | 127 | .map_io = s3c2412_map_io, |
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c index 196b19123653..f046f8c51084 100644 --- a/arch/arm/plat-s3c24xx/dma.c +++ b/arch/arm/plat-s3c24xx/dma.c | |||
@@ -208,14 +208,14 @@ s3c2410_dma_loadbuffer(struct s3c2410_dma_chan *chan, | |||
208 | { | 208 | { |
209 | unsigned long reload; | 209 | unsigned long reload; |
210 | 210 | ||
211 | pr_debug("s3c2410_chan_loadbuffer: loading buff %p (0x%08lx,0x%06x)\n", | ||
212 | buf, (unsigned long)buf->data, buf->size); | ||
213 | |||
214 | if (buf == NULL) { | 211 | if (buf == NULL) { |
215 | dmawarn("buffer is NULL\n"); | 212 | dmawarn("buffer is NULL\n"); |
216 | return -EINVAL; | 213 | return -EINVAL; |
217 | } | 214 | } |
218 | 215 | ||
216 | pr_debug("s3c2410_chan_loadbuffer: loading buff %p (0x%08lx,0x%06x)\n", | ||
217 | buf, (unsigned long)buf->data, buf->size); | ||
218 | |||
219 | /* check the state of the channel before we do anything */ | 219 | /* check the state of the channel before we do anything */ |
220 | 220 | ||
221 | if (chan->load_state == S3C2410_DMALOAD_1LOADED) { | 221 | if (chan->load_state == S3C2410_DMALOAD_1LOADED) { |
diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c index 95df059b5a1d..5467470badfd 100644 --- a/arch/arm/plat-s3c24xx/gpio.c +++ b/arch/arm/plat-s3c24xx/gpio.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/io.h> | 29 | #include <linux/io.h> |
30 | 30 | ||
31 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
32 | #include <mach/gpio-fns.h> | ||
32 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
33 | 34 | ||
34 | #include <mach/regs-gpio.h> | 35 | #include <mach/regs-gpio.h> |
diff --git a/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h b/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h index efeb025affc7..c776120b99e6 100644 --- a/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h +++ b/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h | |||
@@ -222,7 +222,9 @@ extern struct clk *s3c_cpufreq_clk_get(struct device *, const char *); | |||
222 | /* S3C2410 and compatible exported functions */ | 222 | /* S3C2410 and compatible exported functions */ |
223 | 223 | ||
224 | extern void s3c2410_cpufreq_setrefresh(struct s3c_cpufreq_config *cfg); | 224 | extern void s3c2410_cpufreq_setrefresh(struct s3c_cpufreq_config *cfg); |
225 | extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg); | ||
225 | 226 | ||
227 | #ifdef CONFIG_S3C2410_IOTIMING | ||
226 | extern int s3c2410_iotiming_calc(struct s3c_cpufreq_config *cfg, | 228 | extern int s3c2410_iotiming_calc(struct s3c_cpufreq_config *cfg, |
227 | struct s3c_iotimings *iot); | 229 | struct s3c_iotimings *iot); |
228 | 230 | ||
@@ -231,8 +233,11 @@ extern int s3c2410_iotiming_get(struct s3c_cpufreq_config *cfg, | |||
231 | 233 | ||
232 | extern void s3c2410_iotiming_set(struct s3c_cpufreq_config *cfg, | 234 | extern void s3c2410_iotiming_set(struct s3c_cpufreq_config *cfg, |
233 | struct s3c_iotimings *iot); | 235 | struct s3c_iotimings *iot); |
234 | 236 | #else | |
235 | extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg); | 237 | #define s3c2410_iotiming_calc NULL |
238 | #define s3c2410_iotiming_get NULL | ||
239 | #define s3c2410_iotiming_set NULL | ||
240 | #endif /* CONFIG_S3C2410_IOTIMING */ | ||
236 | 241 | ||
237 | /* S3C2412 compatible routines */ | 242 | /* S3C2412 compatible routines */ |
238 | 243 | ||
diff --git a/arch/arm/plat-s3c24xx/include/plat/s3c2410.h b/arch/arm/plat-s3c24xx/include/plat/s3c2410.h index b6deeef8f663..82ab4aad1bbe 100644 --- a/arch/arm/plat-s3c24xx/include/plat/s3c2410.h +++ b/arch/arm/plat-s3c24xx/include/plat/s3c2410.h | |||
@@ -27,6 +27,7 @@ extern void s3c2410_init_clocks(int xtal); | |||
27 | #define s3c2410_init_uarts NULL | 27 | #define s3c2410_init_uarts NULL |
28 | #define s3c2410_map_io NULL | 28 | #define s3c2410_map_io NULL |
29 | #define s3c2410_init NULL | 29 | #define s3c2410_init NULL |
30 | #define s3c2410a_init NULL | ||
30 | #endif | 31 | #endif |
31 | 32 | ||
32 | extern int s3c2410_baseclk_add(void); | 33 | extern int s3c2410_baseclk_add(void); |
diff --git a/arch/arm/plat-s3c64xx/dma.c b/arch/arm/plat-s3c64xx/dma.c index 266a10745a85..d554b936fcfb 100644 --- a/arch/arm/plat-s3c64xx/dma.c +++ b/arch/arm/plat-s3c64xx/dma.c | |||
@@ -151,8 +151,6 @@ static void s3c64xx_dma_fill_lli(struct s3c2410_dma_chan *chan, | |||
151 | src = chan->dev_addr; | 151 | src = chan->dev_addr; |
152 | dst = data; | 152 | dst = data; |
153 | control0 = PL080_CONTROL_SRC_AHB2; | 153 | control0 = PL080_CONTROL_SRC_AHB2; |
154 | control0 |= (u32)chan->hw_width << PL080_CONTROL_SWIDTH_SHIFT; | ||
155 | control0 |= 2 << PL080_CONTROL_DWIDTH_SHIFT; | ||
156 | control0 |= PL080_CONTROL_DST_INCR; | 154 | control0 |= PL080_CONTROL_DST_INCR; |
157 | break; | 155 | break; |
158 | 156 | ||
@@ -160,8 +158,6 @@ static void s3c64xx_dma_fill_lli(struct s3c2410_dma_chan *chan, | |||
160 | src = data; | 158 | src = data; |
161 | dst = chan->dev_addr; | 159 | dst = chan->dev_addr; |
162 | control0 = PL080_CONTROL_DST_AHB2; | 160 | control0 = PL080_CONTROL_DST_AHB2; |
163 | control0 |= (u32)chan->hw_width << PL080_CONTROL_DWIDTH_SHIFT; | ||
164 | control0 |= 2 << PL080_CONTROL_SWIDTH_SHIFT; | ||
165 | control0 |= PL080_CONTROL_SRC_INCR; | 161 | control0 |= PL080_CONTROL_SRC_INCR; |
166 | break; | 162 | break; |
167 | default: | 163 | default: |
@@ -173,6 +169,8 @@ static void s3c64xx_dma_fill_lli(struct s3c2410_dma_chan *chan, | |||
173 | control1 = size >> chan->hw_width; /* size in no of xfers */ | 169 | control1 = size >> chan->hw_width; /* size in no of xfers */ |
174 | control0 |= PL080_CONTROL_PROT_SYS; /* always in priv. mode */ | 170 | control0 |= PL080_CONTROL_PROT_SYS; /* always in priv. mode */ |
175 | control0 |= PL080_CONTROL_TC_IRQ_EN; /* always fire IRQ */ | 171 | control0 |= PL080_CONTROL_TC_IRQ_EN; /* always fire IRQ */ |
172 | control0 |= (u32)chan->hw_width << PL080_CONTROL_DWIDTH_SHIFT; | ||
173 | control0 |= (u32)chan->hw_width << PL080_CONTROL_SWIDTH_SHIFT; | ||
176 | 174 | ||
177 | lli->src_addr = src; | 175 | lli->src_addr = src; |
178 | lli->dst_addr = dst; | 176 | lli->dst_addr = dst; |
@@ -339,6 +337,7 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id, | |||
339 | struct s3c64xx_dma_buff *next; | 337 | struct s3c64xx_dma_buff *next; |
340 | struct s3c64xx_dma_buff *buff; | 338 | struct s3c64xx_dma_buff *buff; |
341 | struct pl080s_lli *lli; | 339 | struct pl080s_lli *lli; |
340 | unsigned long flags; | ||
342 | int ret; | 341 | int ret; |
343 | 342 | ||
344 | WARN_ON(!chan); | 343 | WARN_ON(!chan); |
@@ -366,6 +365,8 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id, | |||
366 | 365 | ||
367 | s3c64xx_dma_fill_lli(chan, lli, data, size); | 366 | s3c64xx_dma_fill_lli(chan, lli, data, size); |
368 | 367 | ||
368 | local_irq_save(flags); | ||
369 | |||
369 | if ((next = chan->next) != NULL) { | 370 | if ((next = chan->next) != NULL) { |
370 | struct s3c64xx_dma_buff *end = chan->end; | 371 | struct s3c64xx_dma_buff *end = chan->end; |
371 | struct pl080s_lli *endlli = end->lli; | 372 | struct pl080s_lli *endlli = end->lli; |
@@ -397,6 +398,8 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id, | |||
397 | s3c64xx_lli_to_regs(chan, lli); | 398 | s3c64xx_lli_to_regs(chan, lli); |
398 | } | 399 | } |
399 | 400 | ||
401 | local_irq_restore(flags); | ||
402 | |||
400 | show_lli(lli); | 403 | show_lli(lli); |
401 | 404 | ||
402 | dbg_showchan(chan); | 405 | dbg_showchan(chan); |
@@ -560,26 +563,11 @@ int s3c2410_dma_free(unsigned int channel, struct s3c2410_dma_client *client) | |||
560 | 563 | ||
561 | EXPORT_SYMBOL(s3c2410_dma_free); | 564 | EXPORT_SYMBOL(s3c2410_dma_free); |
562 | 565 | ||
563 | |||
564 | static void s3c64xx_dma_tcirq(struct s3c64xx_dmac *dmac, int offs) | ||
565 | { | ||
566 | struct s3c2410_dma_chan *chan = dmac->channels + offs; | ||
567 | |||
568 | /* note, we currently do not bother to work out which buffer | ||
569 | * or buffers have been completed since the last tc-irq. */ | ||
570 | |||
571 | if (chan->callback_fn) | ||
572 | (chan->callback_fn)(chan, chan->curr->pw, 0, S3C2410_RES_OK); | ||
573 | } | ||
574 | |||
575 | static void s3c64xx_dma_errirq(struct s3c64xx_dmac *dmac, int offs) | ||
576 | { | ||
577 | printk(KERN_DEBUG "%s: offs %d\n", __func__, offs); | ||
578 | } | ||
579 | |||
580 | static irqreturn_t s3c64xx_dma_irq(int irq, void *pw) | 566 | static irqreturn_t s3c64xx_dma_irq(int irq, void *pw) |
581 | { | 567 | { |
582 | struct s3c64xx_dmac *dmac = pw; | 568 | struct s3c64xx_dmac *dmac = pw; |
569 | struct s3c2410_dma_chan *chan; | ||
570 | enum s3c2410_dma_buffresult res; | ||
583 | u32 tcstat, errstat; | 571 | u32 tcstat, errstat; |
584 | u32 bit; | 572 | u32 bit; |
585 | int offs; | 573 | int offs; |
@@ -588,14 +576,54 @@ static irqreturn_t s3c64xx_dma_irq(int irq, void *pw) | |||
588 | errstat = readl(dmac->regs + PL080_ERR_STATUS); | 576 | errstat = readl(dmac->regs + PL080_ERR_STATUS); |
589 | 577 | ||
590 | for (offs = 0, bit = 1; offs < 8; offs++, bit <<= 1) { | 578 | for (offs = 0, bit = 1; offs < 8; offs++, bit <<= 1) { |
579 | struct s3c64xx_dma_buff *buff; | ||
580 | |||
581 | if (!(errstat & bit) && !(tcstat & bit)) | ||
582 | continue; | ||
583 | |||
584 | chan = dmac->channels + offs; | ||
585 | res = S3C2410_RES_ERR; | ||
586 | |||
591 | if (tcstat & bit) { | 587 | if (tcstat & bit) { |
592 | writel(bit, dmac->regs + PL080_TC_CLEAR); | 588 | writel(bit, dmac->regs + PL080_TC_CLEAR); |
593 | s3c64xx_dma_tcirq(dmac, offs); | 589 | res = S3C2410_RES_OK; |
594 | } | 590 | } |
595 | 591 | ||
596 | if (errstat & bit) { | 592 | if (errstat & bit) |
597 | s3c64xx_dma_errirq(dmac, offs); | ||
598 | writel(bit, dmac->regs + PL080_ERR_CLEAR); | 593 | writel(bit, dmac->regs + PL080_ERR_CLEAR); |
594 | |||
595 | /* 'next' points to the buffer that is next to the | ||
596 | * currently active buffer. | ||
597 | * For CIRCULAR queues, 'next' will be same as 'curr' | ||
598 | * when 'end' is the active buffer. | ||
599 | */ | ||
600 | buff = chan->curr; | ||
601 | while (buff && buff != chan->next | ||
602 | && buff->next != chan->next) | ||
603 | buff = buff->next; | ||
604 | |||
605 | if (!buff) | ||
606 | BUG(); | ||
607 | |||
608 | if (buff == chan->next) | ||
609 | buff = chan->end; | ||
610 | |||
611 | s3c64xx_dma_bufffdone(chan, buff, res); | ||
612 | |||
613 | /* Free the node and update curr, if non-circular queue */ | ||
614 | if (!(chan->flags & S3C2410_DMAF_CIRCULAR)) { | ||
615 | chan->curr = buff->next; | ||
616 | s3c64xx_dma_freebuff(buff); | ||
617 | } | ||
618 | |||
619 | /* Update 'next' */ | ||
620 | buff = chan->next; | ||
621 | if (chan->next == chan->end) { | ||
622 | chan->next = chan->curr; | ||
623 | if (!(chan->flags & S3C2410_DMAF_CIRCULAR)) | ||
624 | chan->end = NULL; | ||
625 | } else { | ||
626 | chan->next = buff->next; | ||
599 | } | 627 | } |
600 | } | 628 | } |
601 | 629 | ||
diff --git a/arch/arm/plat-s3c64xx/include/plat/regs-clock.h b/arch/arm/plat-s3c64xx/include/plat/regs-clock.h index a8777a755dfa..ff46e7fa957a 100644 --- a/arch/arm/plat-s3c64xx/include/plat/regs-clock.h +++ b/arch/arm/plat-s3c64xx/include/plat/regs-clock.h | |||
@@ -51,8 +51,8 @@ | |||
51 | #define S3C6400_CLKDIV0_HCLK_SHIFT (8) | 51 | #define S3C6400_CLKDIV0_HCLK_SHIFT (8) |
52 | #define S3C6400_CLKDIV0_MPLL_MASK (0x1 << 4) | 52 | #define S3C6400_CLKDIV0_MPLL_MASK (0x1 << 4) |
53 | #define S3C6400_CLKDIV0_MPLL_SHIFT (4) | 53 | #define S3C6400_CLKDIV0_MPLL_SHIFT (4) |
54 | #define S3C6400_CLKDIV0_ARM_MASK (0x3 << 0) | 54 | #define S3C6400_CLKDIV0_ARM_MASK (0x7 << 0) |
55 | #define S3C6410_CLKDIV0_ARM_MASK (0x7 << 0) | 55 | #define S3C6410_CLKDIV0_ARM_MASK (0xf << 0) |
56 | #define S3C6400_CLKDIV0_ARM_SHIFT (0) | 56 | #define S3C6400_CLKDIV0_ARM_SHIFT (0) |
57 | 57 | ||
58 | /* CLKDIV1 */ | 58 | /* CLKDIV1 */ |
diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c index 9745852261e0..6ffa21eb1b91 100644 --- a/arch/arm/plat-s3c64xx/s3c6400-clock.c +++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c | |||
@@ -677,6 +677,9 @@ void __init_or_cpufreq s3c6400_setup_clocks(void) | |||
677 | 677 | ||
678 | printk(KERN_DEBUG "%s: xtal is %ld\n", __func__, xtal); | 678 | printk(KERN_DEBUG "%s: xtal is %ld\n", __func__, xtal); |
679 | 679 | ||
680 | /* For now assume the mux always selects the crystal */ | ||
681 | clk_ext_xtal_mux.parent = xtal_clk; | ||
682 | |||
680 | epll = s3c6400_get_epll(xtal); | 683 | epll = s3c6400_get_epll(xtal); |
681 | mpll = s3c6400_get_pll(xtal, __raw_readl(S3C_MPLL_CON)); | 684 | mpll = s3c6400_get_pll(xtal, __raw_readl(S3C_MPLL_CON)); |
682 | apll = s3c6400_get_pll(xtal, __raw_readl(S3C_APLL_CON)); | 685 | apll = s3c6400_get_pll(xtal, __raw_readl(S3C_APLL_CON)); |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index 94be7bb6cb9a..07b976da6174 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: Fri Sep 18 21:42:00 2009 | 15 | # Last update: Wed Nov 25 22:14:58 2009 |
16 | # | 16 | # |
17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
18 | # | 18 | # |
@@ -928,7 +928,7 @@ palmt5 MACH_PALMT5 PALMT5 917 | |||
928 | palmtc MACH_PALMTC PALMTC 918 | 928 | palmtc MACH_PALMTC PALMTC 918 |
929 | omap_apollon MACH_OMAP_APOLLON OMAP_APOLLON 919 | 929 | omap_apollon MACH_OMAP_APOLLON OMAP_APOLLON 919 |
930 | mxc30030evb MACH_MXC30030EVB MXC30030EVB 920 | 930 | mxc30030evb MACH_MXC30030EVB MXC30030EVB 920 |
931 | rea_2d MACH_REA_2D REA_2D 921 | 931 | rea_cpu2 MACH_REA_2D REA_2D 921 |
932 | eti3e524 MACH_TI3E524 TI3E524 922 | 932 | eti3e524 MACH_TI3E524 TI3E524 922 |
933 | ateb9200 MACH_ATEB9200 ATEB9200 923 | 933 | ateb9200 MACH_ATEB9200 ATEB9200 923 |
934 | auckland MACH_AUCKLAND AUCKLAND 924 | 934 | auckland MACH_AUCKLAND AUCKLAND 924 |
@@ -2421,3 +2421,118 @@ liberty MACH_LIBERTY LIBERTY 2434 | |||
2421 | mh355 MACH_MH355 MH355 2435 | 2421 | mh355 MACH_MH355 MH355 2435 |
2422 | pc7802 MACH_PC7802 PC7802 2436 | 2422 | pc7802 MACH_PC7802 PC7802 2436 |
2423 | gnet_sgc MACH_GNET_SGC GNET_SGC 2437 | 2423 | gnet_sgc MACH_GNET_SGC GNET_SGC 2437 |
2424 | einstein15 MACH_EINSTEIN15 EINSTEIN15 2438 | ||
2425 | cmpd MACH_CMPD CMPD 2439 | ||
2426 | davinci_hase1 MACH_DAVINCI_HASE1 DAVINCI_HASE1 2440 | ||
2427 | lgeincitephone MACH_LGEINCITEPHONE LGEINCITEPHONE 2441 | ||
2428 | ea313x MACH_EA313X EA313X 2442 | ||
2429 | fwbd_39064 MACH_FWBD_39064 FWBD_39064 2443 | ||
2430 | fwbd_390128 MACH_FWBD_390128 FWBD_390128 2444 | ||
2431 | pelco_moe MACH_PELCO_MOE PELCO_MOE 2445 | ||
2432 | minimix27 MACH_MINIMIX27 MINIMIX27 2446 | ||
2433 | omap3_thunder MACH_OMAP3_THUNDER OMAP3_THUNDER 2447 | ||
2434 | passionc MACH_PASSIONC PASSIONC 2448 | ||
2435 | mx27amata MACH_MX27AMATA MX27AMATA 2449 | ||
2436 | bgat1 MACH_BGAT1 BGAT1 2450 | ||
2437 | buzz MACH_BUZZ BUZZ 2451 | ||
2438 | mb9g20 MACH_MB9G20 MB9G20 2452 | ||
2439 | yushan MACH_YUSHAN YUSHAN 2453 | ||
2440 | lizard MACH_LIZARD LIZARD 2454 | ||
2441 | omap3polycom MACH_OMAP3POLYCOM OMAP3POLYCOM 2455 | ||
2442 | smdkv210 MACH_SMDKV210 SMDKV210 2456 | ||
2443 | bravo MACH_BRAVO BRAVO 2457 | ||
2444 | siogentoo1 MACH_SIOGENTOO1 SIOGENTOO1 2458 | ||
2445 | siogentoo2 MACH_SIOGENTOO2 SIOGENTOO2 2459 | ||
2446 | sm3k MACH_SM3K SM3K 2460 | ||
2447 | acer_tempo_f900 MACH_ACER_TEMPO_F900 ACER_TEMPO_F900 2461 | ||
2448 | sst61vc010_dev MACH_SST61VC010_DEV SST61VC010_DEV 2462 | ||
2449 | glittertind MACH_GLITTERTIND GLITTERTIND 2463 | ||
2450 | omap_zoom3 MACH_OMAP_ZOOM3 OMAP_ZOOM3 2464 | ||
2451 | omap_3630sdp MACH_OMAP_3630SDP OMAP_3630SDP 2465 | ||
2452 | cybook2440 MACH_CYBOOK2440 CYBOOK2440 2466 | ||
2453 | torino_s MACH_TORINO_S TORINO_S 2467 | ||
2454 | havana MACH_HAVANA HAVANA 2468 | ||
2455 | beaumont_11 MACH_BEAUMONT_11 BEAUMONT_11 2469 | ||
2456 | vanguard MACH_VANGUARD VANGUARD 2470 | ||
2457 | s5pc110_draco MACH_S5PC110_DRACO S5PC110_DRACO 2471 | ||
2458 | cartesio_two MACH_CARTESIO_TWO CARTESIO_TWO 2472 | ||
2459 | aster MACH_ASTER ASTER 2473 | ||
2460 | voguesv210 MACH_VOGUESV210 VOGUESV210 2474 | ||
2461 | acm500x MACH_ACM500X ACM500X 2475 | ||
2462 | km9260 MACH_KM9260 KM9260 2476 | ||
2463 | nideflexg1 MACH_NIDEFLEXG1 NIDEFLEXG1 2477 | ||
2464 | ctera_plug_io MACH_CTERA_PLUG_IO CTERA_PLUG_IO 2478 | ||
2465 | smartq7 MACH_SMARTQ7 SMARTQ7 2479 | ||
2466 | at91sam9g10ek2 MACH_AT91SAM9G10EK2 AT91SAM9G10EK2 2480 | ||
2467 | asusp527 MACH_ASUSP527 ASUSP527 2481 | ||
2468 | at91sam9g20mpm2 MACH_AT91SAM9G20MPM2 AT91SAM9G20MPM2 2482 | ||
2469 | topasa900 MACH_TOPASA900 TOPASA900 2483 | ||
2470 | electrum_100 MACH_ELECTRUM_100 ELECTRUM_100 2484 | ||
2471 | mx51grb MACH_MX51GRB MX51GRB 2485 | ||
2472 | xea300 MACH_XEA300 XEA300 2486 | ||
2473 | htcstartrek MACH_HTCSTARTREK HTCSTARTREK 2487 | ||
2474 | lima MACH_LIMA LIMA 2488 | ||
2475 | csb740 MACH_CSB740 CSB740 2489 | ||
2476 | usb_s8815 MACH_USB_S8815 USB_S8815 2490 | ||
2477 | watson_efm_plugin MACH_WATSON_EFM_PLUGIN WATSON_EFM_PLUGIN 2491 | ||
2478 | milkyway MACH_MILKYWAY MILKYWAY 2492 | ||
2479 | g4evm MACH_G4EVM G4EVM 2493 | ||
2480 | picomod6 MACH_PICOMOD6 PICOMOD6 2494 | ||
2481 | omapl138_hawkboard MACH_OMAPL138_HAWKBOARD OMAPL138_HAWKBOARD 2495 | ||
2482 | ip6000 MACH_IP6000 IP6000 2496 | ||
2483 | ip6010 MACH_IP6010 IP6010 2497 | ||
2484 | utm400 MACH_UTM400 UTM400 2498 | ||
2485 | omap3_zybex MACH_OMAP3_ZYBEX OMAP3_ZYBEX 2499 | ||
2486 | wireless_space MACH_WIRELESS_SPACE WIRELESS_SPACE 2500 | ||
2487 | sx560 MACH_SX560 SX560 2501 | ||
2488 | ts41x MACH_TS41X TS41X 2502 | ||
2489 | elphel10373 MACH_ELPHEL10373 ELPHEL10373 2503 | ||
2490 | rhobot MACH_RHOBOT RHOBOT 2504 | ||
2491 | mx51_refresh MACH_MX51_REFRESH MX51_REFRESH 2505 | ||
2492 | ls9260 MACH_LS9260 LS9260 2506 | ||
2493 | shank MACH_SHANK SHANK 2507 | ||
2494 | qsd8x50_st1 MACH_QSD8X50_ST1 QSD8X50_ST1 2508 | ||
2495 | at91sam9m10ekes MACH_AT91SAM9M10EKES AT91SAM9M10EKES 2509 | ||
2496 | hiram MACH_HIRAM HIRAM 2510 | ||
2497 | phy3250 MACH_PHY3250 PHY3250 2511 | ||
2498 | ea3250 MACH_EA3250 EA3250 2512 | ||
2499 | fdi3250 MACH_FDI3250 FDI3250 2513 | ||
2500 | whitestone MACH_WHITESTONE WHITESTONE 2514 | ||
2501 | at91sam9263nit MACH_AT91SAM9263NIT AT91SAM9263NIT 2515 | ||
2502 | ccmx51 MACH_CCMX51 CCMX51 2516 | ||
2503 | ccmx51js MACH_CCMX51JS CCMX51JS 2517 | ||
2504 | ccwmx51 MACH_CCWMX51 CCWMX51 2518 | ||
2505 | ccwmx51js MACH_CCWMX51JS CCWMX51JS 2519 | ||
2506 | mini6410 MACH_MINI6410 MINI6410 2520 | ||
2507 | tiny6410 MACH_TINY6410 TINY6410 2521 | ||
2508 | nano6410 MACH_NANO6410 NANO6410 2522 | ||
2509 | at572d940hfnldb MACH_AT572D940HFNLDB AT572D940HFNLDB 2523 | ||
2510 | htcleo MACH_HTCLEO HTCLEO 2524 | ||
2511 | avp13 MACH_AVP13 AVP13 2525 | ||
2512 | xxsvideod MACH_XXSVIDEOD XXSVIDEOD 2526 | ||
2513 | vpnext MACH_VPNEXT VPNEXT 2527 | ||
2514 | swarco_itc3 MACH_SWARCO_ITC3 SWARCO_ITC3 2528 | ||
2515 | tx51 MACH_TX51 TX51 2529 | ||
2516 | dolby_cat1021 MACH_DOLBY_CAT1021 DOLBY_CAT1021 2530 | ||
2517 | mx28evk MACH_MX28EVK MX28EVK 2531 | ||
2518 | phoenix260 MACH_PHOENIX260 PHOENIX260 2532 | ||
2519 | uvaca_stork MACH_UVACA_STORK UVACA_STORK 2533 | ||
2520 | smartq5 MACH_SMARTQ5 SMARTQ5 2534 | ||
2521 | all3078 MACH_ALL3078 ALL3078 2535 | ||
2522 | ctera_2bay_ds MACH_CTERA_2BAY_DS CTERA_2BAY_DS 2536 | ||
2523 | siogentoo3 MACH_SIOGENTOO3 SIOGENTOO3 2537 | ||
2524 | epb5000 MACH_EPB5000 EPB5000 2538 | ||
2525 | hy9263 MACH_HY9263 HY9263 2539 | ||
2526 | acer_tempo_m900 MACH_ACER_TEMPO_M900 ACER_TEMPO_M900 2540 | ||
2527 | acer_tempo_dx650 MACH_ACER_TEMPO_DX900 ACER_TEMPO_DX900 2541 | ||
2528 | acer_tempo_x960 MACH_ACER_TEMPO_X960 ACER_TEMPO_X960 2542 | ||
2529 | acer_eten_v900 MACH_ACER_ETEN_V900 ACER_ETEN_V900 2543 | ||
2530 | acer_eten_x900 MACH_ACER_ETEN_X900 ACER_ETEN_X900 2544 | ||
2531 | bonnell MACH_BONNELL BONNELL 2545 | ||
2532 | oht_mx27 MACH_OHT_MX27 OHT_MX27 2546 | ||
2533 | htcquartz MACH_HTCQUARTZ HTCQUARTZ 2547 | ||
2534 | davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548 | ||
2535 | c3ax03 MACH_C3AX03 C3AX03 2549 | ||
2536 | mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 | ||
2537 | esyx MACH_ESYX ESYX 2551 | ||
2538 | bulldog MACH_BULLDOG BULLDOG 2553 | ||