aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig18
-rw-r--r--arch/alpha/kernel/osf_sys.c10
-rw-r--r--arch/alpha/mm/init.c30
-rw-r--r--arch/alpha/mm/numa.c35
-rw-r--r--arch/arm/Kconfig6
-rw-r--r--arch/arm/Makefile2
-rw-r--r--arch/arm/common/dmabounce.c2
-rw-r--r--arch/arm/common/locomo.c10
-rw-r--r--arch/arm/common/sa1111.c14
-rw-r--r--arch/arm/configs/eseries_pxa_defconfig1073
-rw-r--r--arch/arm/mach-at91/at91cap9_devices.c8
-rw-r--r--arch/arm/mach-at91/at91rm9200_devices.c8
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c8
-rw-r--r--arch/arm/mach-at91/at91sam9261_devices.c12
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c8
-rw-r--r--arch/arm/mach-at91/at91sam9rl_devices.c12
-rw-r--r--arch/arm/mach-at91/board-cam60.c2
-rw-r--r--arch/arm/mach-at91/board-cap9adk.c8
-rw-r--r--arch/arm/mach-at91/board-dk.c2
-rw-r--r--arch/arm/mach-at91/board-kb9202.c2
-rw-r--r--arch/arm/mach-at91/board-sam9-l9260.c2
-rw-r--r--arch/arm/mach-at91/board-sam9260ek.c2
-rw-r--r--arch/arm/mach-at91/board-sam9261ek.c2
-rw-r--r--arch/arm/mach-at91/board-sam9263ek.c2
-rw-r--r--arch/arm/mach-at91/board-sam9rlek.c2
-rw-r--r--[-rwxr-xr-x]arch/arm/mach-at91/board-yl-9200.c2
-rw-r--r--arch/arm/mach-at91/irq.c8
-rw-r--r--arch/arm/mach-ep93xx/core.c14
-rw-r--r--arch/arm/mach-imx/irq.c12
-rw-r--r--arch/arm/mach-ixp2000/core.c8
-rw-r--r--arch/arm/mach-ixp23xx/core.c10
-rw-r--r--arch/arm/mach-ixp23xx/roadrunner.c4
-rw-r--r--arch/arm/mach-ixp4xx/avila-pci.c8
-rw-r--r--arch/arm/mach-ixp4xx/common.c10
-rw-r--r--arch/arm/mach-ixp4xx/coyote-pci.c4
-rw-r--r--arch/arm/mach-ixp4xx/dsmg600-pci.c12
-rw-r--r--arch/arm/mach-ixp4xx/fsg-pci.c6
-rw-r--r--arch/arm/mach-ixp4xx/gateway7001-pci.c4
-rw-r--r--arch/arm/mach-ixp4xx/gtwx5715-pci.c8
-rw-r--r--arch/arm/mach-ixp4xx/ixdp425-pci.c8
-rw-r--r--arch/arm/mach-ixp4xx/ixdpg425-pci.c4
-rw-r--r--arch/arm/mach-ixp4xx/nas100d-pci.c10
-rw-r--r--arch/arm/mach-ixp4xx/nslu2-pci.c6
-rw-r--r--arch/arm/mach-ixp4xx/wg302v2-pci.c4
-rw-r--r--arch/arm/mach-ks8695/irq.c10
-rw-r--r--arch/arm/mach-netx/generic.c8
-rw-r--r--arch/arm/mach-omap1/board-osk.c6
-rw-r--r--arch/arm/mach-omap1/board-palmz71.c4
-rw-r--r--arch/arm/mach-omap1/board-voiceblue.c8
-rw-r--r--arch/arm/mach-omap1/fpga.c2
-rw-r--r--arch/arm/mach-omap2/board-apollon.c6
-rw-r--r--arch/arm/mach-orion5x/db88f5281-setup.c4
-rw-r--r--arch/arm/mach-orion5x/irq.c12
-rw-r--r--arch/arm/mach-orion5x/rd88f5182-setup.c4
-rw-r--r--arch/arm/mach-orion5x/ts209-setup.c4
-rw-r--r--arch/arm/mach-pnx4008/irq.c10
-rw-r--r--arch/arm/mach-pxa/cm-x270-pci.c2
-rw-r--r--arch/arm/mach-pxa/lpd270.c2
-rw-r--r--arch/arm/mach-pxa/lubbock.c2
-rw-r--r--arch/arm/mach-pxa/mainstone.c2
-rw-r--r--arch/arm/mach-pxa/sharpsl_pm.c8
-rw-r--r--arch/arm/mach-pxa/trizeps4.c2
-rw-r--r--arch/arm/mach-sa1100/cerf.c2
-rw-r--r--arch/arm/mach-sa1100/h3600.c2
-rw-r--r--arch/arm/mach-sa1100/irq.c8
-rw-r--r--arch/arm/mach-sa1100/neponset.c2
-rw-r--r--arch/arm/mach-sa1100/pleb.c2
-rw-r--r--arch/arm/mm/fault-armv.c10
-rw-r--r--arch/arm/plat-mxc/gpio.c10
-rw-r--r--arch/arm/plat-omap/gpio.c28
-rw-r--r--arch/arm/plat-s3c24xx/Kconfig2
-rw-r--r--arch/arm/plat-s3c24xx/dma.c2
-rw-r--r--arch/arm/plat-s3c24xx/irq.c12
-rw-r--r--arch/avr32/boards/atstk1000/Kconfig4
-rw-r--r--arch/avr32/boards/atstk1000/Makefile1
-rw-r--r--arch/avr32/boards/atstk1000/atstk1002.c97
-rw-r--r--arch/avr32/boards/atstk1000/atstk1003.c2
-rw-r--r--arch/avr32/boards/atstk1000/atstk1004.c2
-rw-r--r--arch/avr32/kernel/time.c6
-rw-r--r--arch/avr32/mach-at32ap/at32ap700x.c108
-rw-r--r--arch/avr32/mach-at32ap/hsmc.c2
-rw-r--r--arch/avr32/mm/init.c39
-rw-r--r--arch/blackfin/Kconfig100
-rw-r--r--arch/blackfin/Kconfig.debug7
-rw-r--r--arch/blackfin/Makefile5
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig187
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig279
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig340
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig337
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig65
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig273
-rw-r--r--arch/blackfin/configs/CM-BF527_defconfig1185
-rw-r--r--arch/blackfin/configs/CM-BF533_defconfig14
-rw-r--r--arch/blackfin/configs/CM-BF537E_defconfig21
-rw-r--r--arch/blackfin/configs/CM-BF537U_defconfig18
-rw-r--r--arch/blackfin/configs/CM-BF548_defconfig10
-rw-r--r--arch/blackfin/configs/CM-BF561_defconfig14
-rw-r--r--arch/blackfin/configs/H8606_defconfig2
-rw-r--r--arch/blackfin/configs/IP0X_defconfig2
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig4
-rw-r--r--arch/blackfin/configs/SRV1_defconfig2
-rw-r--r--arch/blackfin/kernel/Makefile1
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c34
-rw-r--r--arch/blackfin/kernel/bfin_gpio.c118
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbhdlr.S2
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbinit.c6
-rw-r--r--arch/blackfin/kernel/dualcore_test.c49
-rw-r--r--arch/blackfin/kernel/entry.S5
-rw-r--r--arch/blackfin/kernel/kgdb.c16
-rw-r--r--arch/blackfin/kernel/module.c74
-rw-r--r--arch/blackfin/kernel/ptrace.c28
-rw-r--r--arch/blackfin/kernel/setup.c90
-rw-r--r--arch/blackfin/kernel/traps.c296
-rw-r--r--arch/blackfin/kernel/vmlinux.lds.S40
-rw-r--r--arch/blackfin/mach-bf527/boards/Kconfig5
-rw-r--r--arch/blackfin/mach-bf527/boards/Makefile1
-rw-r--r--arch/blackfin/mach-bf527/boards/cm_bf527.c1011
-rw-r--r--arch/blackfin/mach-bf527/head.S12
-rw-r--r--arch/blackfin/mach-bf533/head.S12
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c88
-rw-r--r--arch/blackfin/mach-bf537/head.S12
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c44
-rw-r--r--arch/blackfin/mach-bf548/head.S6
-rw-r--r--arch/blackfin/mach-bf561/head.S6
-rw-r--r--arch/blackfin/mach-common/arch_checks.c6
-rw-r--r--arch/blackfin/mach-common/dpmc_modes.S607
-rw-r--r--arch/blackfin/mach-common/entry.S50
-rw-r--r--arch/blackfin/mach-common/ints-priority.c4
-rw-r--r--arch/blackfin/mach-common/pm.c225
-rw-r--r--arch/blackfin/mm/blackfin_sram.c543
-rw-r--r--arch/blackfin/mm/blackfin_sram.h4
-rw-r--r--arch/blackfin/mm/init.c39
-rw-r--r--arch/cris/arch-v10/kernel/kgdb.c79
-rw-r--r--arch/cris/arch-v32/kernel/kgdb.c60
-rw-r--r--arch/cris/mm/init.c30
-rw-r--r--arch/frv/kernel/gdb-stub.c88
-rw-r--r--arch/frv/mm/init.c31
-rw-r--r--arch/h8300/mm/init.c27
-rw-r--r--arch/ia64/hp/common/hwsw_iommu.c5
-rw-r--r--arch/ia64/hp/common/sba_iommu.c2
-rw-r--r--arch/ia64/kernel/perfmon.c4
-rw-r--r--arch/ia64/kvm/kvm-ia64.c5
-rw-r--r--arch/ia64/sn/pci/pci_dma.c2
-rw-r--r--arch/m32r/mm/init.c36
-rw-r--r--arch/m68k/mm/init.c30
-rw-r--r--arch/m68knommu/mm/init.c27
-rw-r--r--arch/mips/mm/Makefile3
-rw-r--r--arch/mips/mm/dma-default.c2
-rw-r--r--arch/mips/mm/pgtable.c36
-rw-r--r--arch/mn10300/kernel/gdb-stub.c108
-rw-r--r--arch/mn10300/mm/pgtable.c27
-rw-r--r--arch/parisc/hpux/sys_hpux.c10
-rw-r--r--arch/powerpc/kernel/machine_kexec.c2
-rw-r--r--arch/powerpc/kernel/rtas_flash.c2
-rw-r--r--arch/powerpc/kvm/44x_tlb.c5
-rw-r--r--arch/powerpc/kvm/emulate.c2
-rw-r--r--arch/powerpc/mm/hugetlbpage.c9
-rw-r--r--arch/powerpc/mm/init_64.c24
-rw-r--r--arch/powerpc/mm/mem.c39
-rw-r--r--arch/powerpc/platforms/cell/celleb_scc_pciex.c2
-rw-r--r--arch/powerpc/platforms/cell/spider-pci.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/inode.c2
-rw-r--r--arch/powerpc/platforms/iseries/mf.c2
-rw-r--r--arch/s390/kvm/gaccess.h62
-rw-r--r--arch/s390/kvm/intercept.c14
-rw-r--r--arch/s390/kvm/interrupt.c21
-rw-r--r--arch/s390/kvm/kvm-s390.c9
-rw-r--r--arch/s390/kvm/sigp.c5
-rw-r--r--arch/s390/mm/init.c32
-rw-r--r--arch/sh/kernel/machine_kexec.c2
-rw-r--r--arch/sh/mm/init.c41
-rw-r--r--arch/sh/mm/pmb.c2
-rw-r--r--arch/sparc64/mm/init.c45
-rw-r--r--arch/um/kernel/mem.c31
-rw-r--r--arch/x86/Kconfig35
-rw-r--r--arch/x86/Makefile5
-rw-r--r--arch/x86/ia32/ia32_aout.c6
-rw-r--r--arch/x86/kernel/amd_iommu.c4
-rw-r--r--arch/x86/kernel/amd_iommu_init.c4
-rw-r--r--arch/x86/kernel/head_32.S8
-rw-r--r--arch/x86/kernel/machine_kexec_32.c39
-rw-r--r--arch/x86/kernel/machine_kexec_64.c2
-rw-r--r--arch/x86/kernel/pci-calgary_64.c73
-rw-r--r--arch/x86/kernel/pci-dma.c27
-rw-r--r--arch/x86/kernel/pci-gart_64.c3
-rw-r--r--arch/x86/kernel/pci-nommu.c14
-rw-r--r--arch/x86/kernel/pci-swiotlb_64.c2
-rw-r--r--arch/x86/kernel/relocate_kernel_32.S174
-rw-r--r--arch/x86/kvm/mmu.c7
-rw-r--r--arch/x86/kvm/svm.c10
-rw-r--r--arch/x86/kvm/vmx.c22
-rw-r--r--arch/x86/kvm/x86.c109
-rw-r--r--arch/x86/mm/Makefile1
-rw-r--r--arch/x86/mm/gup.c295
-rw-r--r--arch/x86/mm/init_64.c37
-rw-r--r--arch/x86/mm/pgtable_32.c47
-rw-r--r--arch/xtensa/mm/init.c29
197 files changed, 6668 insertions, 3410 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index b0fabfa864ff..364c6dadde0a 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -59,6 +59,24 @@ config HAVE_KPROBES
59config HAVE_KRETPROBES 59config HAVE_KRETPROBES
60 def_bool n 60 def_bool n
61 61
62#
63# An arch should select this if it provides all these things:
64#
65# task_pt_regs() in asm/processor.h or asm/ptrace.h
66# arch_has_single_step() if there is hardware single-step support
67# arch_has_block_step() if there is hardware block-step support
68# arch_ptrace() and not #define __ARCH_SYS_PTRACE
69# compat_arch_ptrace() and #define __ARCH_WANT_COMPAT_SYS_PTRACE
70# asm/syscall.h supplying asm-generic/syscall.h interface
71# linux/regset.h user_regset interfaces
72# CORE_DUMP_USE_REGSET #define'd in linux/elf.h
73# TIF_SYSCALL_TRACE calls tracehook_report_syscall_{entry,exit}
74# TIF_NOTIFY_RESUME calls tracehook_notify_resume()
75# signal delivery calls tracehook_signal_handler()
76#
77config HAVE_ARCH_TRACEHOOK
78 def_bool n
79
62config HAVE_DMA_ATTRS 80config HAVE_DMA_ATTRS
63 def_bool n 81 def_bool n
64 82
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
index 32ca1b927307..6e943135f0e0 100644
--- a/arch/alpha/kernel/osf_sys.c
+++ b/arch/alpha/kernel/osf_sys.c
@@ -253,15 +253,15 @@ do_osf_statfs(struct dentry * dentry, struct osf_statfs __user *buffer,
253} 253}
254 254
255asmlinkage int 255asmlinkage int
256osf_statfs(char __user *path, struct osf_statfs __user *buffer, unsigned long bufsiz) 256osf_statfs(char __user *pathname, struct osf_statfs __user *buffer, unsigned long bufsiz)
257{ 257{
258 struct nameidata nd; 258 struct path path;
259 int retval; 259 int retval;
260 260
261 retval = user_path_walk(path, &nd); 261 retval = user_path(pathname, &path);
262 if (!retval) { 262 if (!retval) {
263 retval = do_osf_statfs(nd.path.dentry, buffer, bufsiz); 263 retval = do_osf_statfs(path.dentry, buffer, bufsiz);
264 path_put(&nd.path); 264 path_put(&path);
265 } 265 }
266 return retval; 266 return retval;
267} 267}
diff --git a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c
index 40c15e7301de..234e42b8ee74 100644
--- a/arch/alpha/mm/init.c
+++ b/arch/alpha/mm/init.c
@@ -94,36 +94,6 @@ __bad_page(void)
94 return pte_mkdirty(mk_pte(virt_to_page(EMPTY_PGE), PAGE_SHARED)); 94 return pte_mkdirty(mk_pte(virt_to_page(EMPTY_PGE), PAGE_SHARED));
95} 95}
96 96
97#ifndef CONFIG_DISCONTIGMEM
98void
99show_mem(void)
100{
101 long i,free = 0,total = 0,reserved = 0;
102 long shared = 0, cached = 0;
103
104 printk("\nMem-info:\n");
105 show_free_areas();
106 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
107 i = max_mapnr;
108 while (i-- > 0) {
109 total++;
110 if (PageReserved(mem_map+i))
111 reserved++;
112 else if (PageSwapCache(mem_map+i))
113 cached++;
114 else if (!page_count(mem_map+i))
115 free++;
116 else
117 shared += page_count(mem_map + i) - 1;
118 }
119 printk("%ld pages of RAM\n",total);
120 printk("%ld free pages\n",free);
121 printk("%ld reserved pages\n",reserved);
122 printk("%ld pages shared\n",shared);
123 printk("%ld pages swap cached\n",cached);
124}
125#endif
126
127static inline unsigned long 97static inline unsigned long
128load_PCB(struct pcb_struct *pcb) 98load_PCB(struct pcb_struct *pcb)
129{ 99{
diff --git a/arch/alpha/mm/numa.c b/arch/alpha/mm/numa.c
index d8c4ceaf00b9..a13de49d1265 100644
--- a/arch/alpha/mm/numa.c
+++ b/arch/alpha/mm/numa.c
@@ -359,38 +359,3 @@ void __init mem_init(void)
359 mem_stress(); 359 mem_stress();
360#endif 360#endif
361} 361}
362
363void
364show_mem(void)
365{
366 long i,free = 0,total = 0,reserved = 0;
367 long shared = 0, cached = 0;
368 int nid;
369
370 printk("\nMem-info:\n");
371 show_free_areas();
372 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
373 for_each_online_node(nid) {
374 unsigned long flags;
375 pgdat_resize_lock(NODE_DATA(nid), &flags);
376 i = node_spanned_pages(nid);
377 while (i-- > 0) {
378 struct page *page = nid_page_nr(nid, i);
379 total++;
380 if (PageReserved(page))
381 reserved++;
382 else if (PageSwapCache(page))
383 cached++;
384 else if (!page_count(page))
385 free++;
386 else
387 shared += page_count(page) - 1;
388 }
389 pgdat_resize_unlock(NODE_DATA(nid), &flags);
390 }
391 printk("%ld pages of RAM\n",total);
392 printk("%ld free pages\n",free);
393 printk("%ld reserved pages\n",reserved);
394 printk("%ld pages shared\n",shared);
395 printk("%ld pages swap cached\n",cached);
396}
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index dabb015aa40b..c8f528284a94 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -314,7 +314,7 @@ config ARCH_IOP32X
314 select PLAT_IOP 314 select PLAT_IOP
315 select PCI 315 select PCI
316 select GENERIC_GPIO 316 select GENERIC_GPIO
317 select HAVE_GPIO_LIB 317 select ARCH_REQUIRE_GPIOLIB
318 help 318 help
319 Support for Intel's 80219 and IOP32X (XScale) family of 319 Support for Intel's 80219 and IOP32X (XScale) family of
320 processors. 320 processors.
@@ -325,7 +325,7 @@ config ARCH_IOP33X
325 select PLAT_IOP 325 select PLAT_IOP
326 select PCI 326 select PCI
327 select GENERIC_GPIO 327 select GENERIC_GPIO
328 select HAVE_GPIO_LIB 328 select ARCH_REQUIRE_GPIOLIB
329 help 329 help
330 Support for Intel's IOP33X (XScale) family of processors. 330 Support for Intel's IOP33X (XScale) family of processors.
331 331
@@ -418,7 +418,7 @@ config ARCH_MXC
418 select GENERIC_CLOCKEVENTS 418 select GENERIC_CLOCKEVENTS
419 select ARCH_MTD_XIP 419 select ARCH_MTD_XIP
420 select GENERIC_GPIO 420 select GENERIC_GPIO
421 select HAVE_GPIO_LIB 421 select ARCH_REQUIRE_GPIOLIB
422 help 422 help
423 Support for Freescale MXC/iMX-based family of processors 423 Support for Freescale MXC/iMX-based family of processors
424 424
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index b20995a82e04..2f0747744236 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -67,7 +67,7 @@ tune-$(CONFIG_CPU_ARM720T) :=-mtune=arm7tdmi
67tune-$(CONFIG_CPU_ARM740T) :=-mtune=arm7tdmi 67tune-$(CONFIG_CPU_ARM740T) :=-mtune=arm7tdmi
68tune-$(CONFIG_CPU_ARM9TDMI) :=-mtune=arm9tdmi 68tune-$(CONFIG_CPU_ARM9TDMI) :=-mtune=arm9tdmi
69tune-$(CONFIG_CPU_ARM940T) :=-mtune=arm9tdmi 69tune-$(CONFIG_CPU_ARM940T) :=-mtune=arm9tdmi
70tune-$(CONFIG_CPU_ARM946T) :=$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi) 70tune-$(CONFIG_CPU_ARM946E) :=$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi)
71tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9tdmi 71tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9tdmi
72tune-$(CONFIG_CPU_ARM922T) :=-mtune=arm9tdmi 72tune-$(CONFIG_CPU_ARM922T) :=-mtune=arm9tdmi
73tune-$(CONFIG_CPU_ARM925T) :=-mtune=arm9tdmi 73tune-$(CONFIG_CPU_ARM925T) :=-mtune=arm9tdmi
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c
index dd2947342604..69130f365904 100644
--- a/arch/arm/common/dmabounce.c
+++ b/arch/arm/common/dmabounce.c
@@ -280,7 +280,7 @@ unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
280 /* 280 /*
281 * Trying to unmap an invalid mapping 281 * Trying to unmap an invalid mapping
282 */ 282 */
283 if (dma_mapping_error(dma_addr)) { 283 if (dma_mapping_error(dev, dma_addr)) {
284 dev_err(dev, "Trying to unmap invalid mapping\n"); 284 dev_err(dev, "Trying to unmap invalid mapping\n");
285 return; 285 return;
286 } 286 }
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index c3c3a3339049..85579654d3b7 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -331,17 +331,17 @@ static int locomo_gpio_type(unsigned int irq, unsigned int type)
331 331
332 mask = 1 << (irq - LOCOMO_IRQ_GPIO_START); 332 mask = 1 << (irq - LOCOMO_IRQ_GPIO_START);
333 333
334 if (type == IRQT_PROBE) { 334 if (type == IRQ_TYPE_PROBE) {
335 if ((GPIO_IRQ_rising_edge | GPIO_IRQ_falling_edge) & mask) 335 if ((GPIO_IRQ_rising_edge | GPIO_IRQ_falling_edge) & mask)
336 return 0; 336 return 0;
337 type = __IRQT_RISEDGE | __IRQT_FALEDGE; 337 type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING;
338 } 338 }
339 339
340 if (type & __IRQT_RISEDGE) 340 if (type & IRQ_TYPE_EDGE_RISING)
341 GPIO_IRQ_rising_edge |= mask; 341 GPIO_IRQ_rising_edge |= mask;
342 else 342 else
343 GPIO_IRQ_rising_edge &= ~mask; 343 GPIO_IRQ_rising_edge &= ~mask;
344 if (type & __IRQT_FALEDGE) 344 if (type & IRQ_TYPE_EDGE_FALLING)
345 GPIO_IRQ_falling_edge |= mask; 345 GPIO_IRQ_falling_edge |= mask;
346 else 346 else
347 GPIO_IRQ_falling_edge &= ~mask; 347 GPIO_IRQ_falling_edge &= ~mask;
@@ -473,7 +473,7 @@ static void locomo_setup_irq(struct locomo *lchip)
473 /* 473 /*
474 * Install handler for IRQ_LOCOMO_HW. 474 * Install handler for IRQ_LOCOMO_HW.
475 */ 475 */
476 set_irq_type(lchip->irq, IRQT_FALLING); 476 set_irq_type(lchip->irq, IRQ_TYPE_EDGE_FALLING);
477 set_irq_chip_data(lchip->irq, irqbase); 477 set_irq_chip_data(lchip->irq, irqbase);
478 set_irq_chained_handler(lchip->irq, locomo_handler); 478 set_irq_chained_handler(lchip->irq, locomo_handler);
479 479
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 0a8e1ff2af8a..f6d3fdda7067 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -241,14 +241,14 @@ static int sa1111_type_lowirq(unsigned int irq, unsigned int flags)
241 void __iomem *mapbase = get_irq_chip_data(irq); 241 void __iomem *mapbase = get_irq_chip_data(irq);
242 unsigned long ip0; 242 unsigned long ip0;
243 243
244 if (flags == IRQT_PROBE) 244 if (flags == IRQ_TYPE_PROBE)
245 return 0; 245 return 0;
246 246
247 if ((!(flags & __IRQT_RISEDGE) ^ !(flags & __IRQT_FALEDGE)) == 0) 247 if ((!(flags & IRQ_TYPE_EDGE_RISING) ^ !(flags & IRQ_TYPE_EDGE_FALLING)) == 0)
248 return -EINVAL; 248 return -EINVAL;
249 249
250 ip0 = sa1111_readl(mapbase + SA1111_INTPOL0); 250 ip0 = sa1111_readl(mapbase + SA1111_INTPOL0);
251 if (flags & __IRQT_RISEDGE) 251 if (flags & IRQ_TYPE_EDGE_RISING)
252 ip0 &= ~mask; 252 ip0 &= ~mask;
253 else 253 else
254 ip0 |= mask; 254 ip0 |= mask;
@@ -338,14 +338,14 @@ static int sa1111_type_highirq(unsigned int irq, unsigned int flags)
338 void __iomem *mapbase = get_irq_chip_data(irq); 338 void __iomem *mapbase = get_irq_chip_data(irq);
339 unsigned long ip1; 339 unsigned long ip1;
340 340
341 if (flags == IRQT_PROBE) 341 if (flags == IRQ_TYPE_PROBE)
342 return 0; 342 return 0;
343 343
344 if ((!(flags & __IRQT_RISEDGE) ^ !(flags & __IRQT_FALEDGE)) == 0) 344 if ((!(flags & IRQ_TYPE_EDGE_RISING) ^ !(flags & IRQ_TYPE_EDGE_FALLING)) == 0)
345 return -EINVAL; 345 return -EINVAL;
346 346
347 ip1 = sa1111_readl(mapbase + SA1111_INTPOL1); 347 ip1 = sa1111_readl(mapbase + SA1111_INTPOL1);
348 if (flags & __IRQT_RISEDGE) 348 if (flags & IRQ_TYPE_EDGE_RISING)
349 ip1 &= ~mask; 349 ip1 &= ~mask;
350 else 350 else
351 ip1 |= mask; 351 ip1 |= mask;
@@ -427,7 +427,7 @@ static void sa1111_setup_irq(struct sa1111 *sachip)
427 /* 427 /*
428 * Register SA1111 interrupt 428 * Register SA1111 interrupt
429 */ 429 */
430 set_irq_type(sachip->irq, IRQT_RISING); 430 set_irq_type(sachip->irq, IRQ_TYPE_EDGE_RISING);
431 set_irq_data(sachip->irq, irqbase); 431 set_irq_data(sachip->irq, irqbase);
432 set_irq_chained_handler(sachip->irq, sa1111_irq_handler); 432 set_irq_chained_handler(sachip->irq, sa1111_irq_handler);
433} 433}
diff --git a/arch/arm/configs/eseries_pxa_defconfig b/arch/arm/configs/eseries_pxa_defconfig
index 493ecee24f94..2307587a38a9 100644
--- a/arch/arm/configs/eseries_pxa_defconfig
+++ b/arch/arm/configs/eseries_pxa_defconfig
@@ -1,15 +1,19 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.21-hh17 3# Linux kernel version: 2.6.26
4# Fri Nov 9 20:23:03 2007 4# Sat Jul 26 22:28:46 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y 8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y 9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
10CONFIG_MMU=y 11CONFIG_MMU=y
11# CONFIG_NO_IOPORT is not set 12# CONFIG_NO_IOPORT is not set
12CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
16CONFIG_LOCKDEP_SUPPORT=y
13CONFIG_TRACE_IRQFLAGS_SUPPORT=y 17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
14CONFIG_HARDIRQS_SW_RESEND=y 18CONFIG_HARDIRQS_SW_RESEND=y
15CONFIG_GENERIC_IRQ_PROBE=y 19CONFIG_GENERIC_IRQ_PROBE=y
@@ -18,75 +22,90 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
18# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
19CONFIG_GENERIC_HWEIGHT=y 23CONFIG_GENERIC_HWEIGHT=y
20CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_SUPPORTS_AOUT=y
21CONFIG_ZONE_DMA=y 26CONFIG_ZONE_DMA=y
22CONFIG_ARCH_MTD_XIP=y 27CONFIG_ARCH_MTD_XIP=y
28CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
23CONFIG_VECTORS_BASE=0xffff0000 29CONFIG_VECTORS_BASE=0xffff0000
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 30CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25 31
26# 32#
27# Code maturity level options 33# General setup
28# 34#
29CONFIG_EXPERIMENTAL=y 35CONFIG_EXPERIMENTAL=y
30CONFIG_BROKEN_ON_SMP=y 36CONFIG_BROKEN_ON_SMP=y
31CONFIG_INIT_ENV_ARG_LIMIT=32 37CONFIG_INIT_ENV_ARG_LIMIT=32
32
33#
34# General setup
35#
36CONFIG_LOCALVERSION="" 38CONFIG_LOCALVERSION=""
37CONFIG_LOCALVERSION_AUTO=y 39CONFIG_LOCALVERSION_AUTO=y
38CONFIG_SWAP=y 40CONFIG_SWAP=y
39CONFIG_SYSVIPC=y 41CONFIG_SYSVIPC=y
40# CONFIG_IPC_NS is not set
41CONFIG_SYSVIPC_SYSCTL=y 42CONFIG_SYSVIPC_SYSCTL=y
42# CONFIG_POSIX_MQUEUE is not set 43# CONFIG_POSIX_MQUEUE is not set
43# CONFIG_BSD_PROCESS_ACCT is not set 44# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set 45# CONFIG_TASKSTATS is not set
45# CONFIG_UTS_NS is not set
46# CONFIG_AUDIT is not set 46# CONFIG_AUDIT is not set
47# CONFIG_IKCONFIG is not set 47# CONFIG_IKCONFIG is not set
48CONFIG_LOG_BUF_SHIFT=14
49# CONFIG_CGROUPS is not set
50# CONFIG_GROUP_SCHED is not set
48CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
49# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
50CONFIG_BLK_DEV_INITRD=y 54# CONFIG_NAMESPACES is not set
51CONFIG_INITRAMFS_SOURCE="" 55# CONFIG_BLK_DEV_INITRD is not set
52# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 56# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
53CONFIG_SYSCTL=y 57CONFIG_SYSCTL=y
54CONFIG_EMBEDDED=y 58CONFIG_EMBEDDED=y
55CONFIG_UID16=y 59CONFIG_UID16=y
56CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
61CONFIG_SYSCTL_SYSCALL_CHECK=y
57# CONFIG_KALLSYMS is not set 62# CONFIG_KALLSYMS is not set
58CONFIG_HOTPLUG=y 63CONFIG_HOTPLUG=y
59CONFIG_PRINTK=y 64CONFIG_PRINTK=y
60CONFIG_BUG=y 65CONFIG_BUG=y
61CONFIG_ELF_CORE=y 66CONFIG_ELF_CORE=y
67CONFIG_COMPAT_BRK=y
62CONFIG_BASE_FULL=y 68CONFIG_BASE_FULL=y
63CONFIG_FUTEX=y 69CONFIG_FUTEX=y
70CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 71CONFIG_EPOLL=y
72CONFIG_SIGNALFD=y
73CONFIG_TIMERFD=y
74CONFIG_EVENTFD=y
65CONFIG_SHMEM=y 75CONFIG_SHMEM=y
66CONFIG_SLAB=y
67CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_SLAB=y
78# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set
80# CONFIG_PROFILING is not set
81# CONFIG_MARKERS is not set
82CONFIG_HAVE_OPROFILE=y
83# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
84# CONFIG_HAVE_IOREMAP_PROT is not set
85CONFIG_HAVE_KPROBES=y
86CONFIG_HAVE_KRETPROBES=y
87# CONFIG_HAVE_ARCH_TRACEHOOK is not set
88# CONFIG_HAVE_DMA_ATTRS is not set
89# CONFIG_USE_GENERIC_SMP_HELPERS is not set
90CONFIG_HAVE_CLK=y
91CONFIG_PROC_PAGE_MONITOR=y
92CONFIG_SLABINFO=y
68CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
69# CONFIG_TINY_SHMEM is not set 94# CONFIG_TINY_SHMEM is not set
70CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
71# CONFIG_SLOB is not set
72
73#
74# Loadable module support
75#
76CONFIG_MODULES=y 96CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set
77CONFIG_MODULE_UNLOAD=y 98CONFIG_MODULE_UNLOAD=y
78CONFIG_MODULE_FORCE_UNLOAD=y 99CONFIG_MODULE_FORCE_UNLOAD=y
79# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
80# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
81CONFIG_KMOD=y 102CONFIG_KMOD=y
82
83#
84# Block layer
85#
86CONFIG_BLOCK=y 103CONFIG_BLOCK=y
87# CONFIG_LBD is not set 104# CONFIG_LBD is not set
88# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
89# CONFIG_LSF is not set 106# CONFIG_LSF is not set
107# CONFIG_BLK_DEV_BSG is not set
108# CONFIG_BLK_DEV_INTEGRITY is not set
90 109
91# 110#
92# IO Schedulers 111# IO Schedulers
@@ -100,6 +119,7 @@ CONFIG_DEFAULT_AS=y
100# CONFIG_DEFAULT_CFQ is not set 119# CONFIG_DEFAULT_CFQ is not set
101# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
102CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
122CONFIG_CLASSIC_RCU=y
103 123
104# 124#
105# System Type 125# System Type
@@ -111,21 +131,26 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
111# CONFIG_ARCH_AT91 is not set 131# CONFIG_ARCH_AT91 is not set
112# CONFIG_ARCH_CLPS7500 is not set 132# CONFIG_ARCH_CLPS7500 is not set
113# CONFIG_ARCH_CLPS711X is not set 133# CONFIG_ARCH_CLPS711X is not set
114# CONFIG_ARCH_CO285 is not set
115# CONFIG_ARCH_EBSA110 is not set 134# CONFIG_ARCH_EBSA110 is not set
116# CONFIG_ARCH_EP93XX is not set 135# CONFIG_ARCH_EP93XX is not set
117# CONFIG_ARCH_FOOTBRIDGE is not set 136# CONFIG_ARCH_FOOTBRIDGE is not set
118# CONFIG_ARCH_NETX is not set 137# CONFIG_ARCH_NETX is not set
119# CONFIG_ARCH_H720X is not set 138# CONFIG_ARCH_H720X is not set
120# CONFIG_ARCH_IMX is not set 139# CONFIG_ARCH_IMX is not set
140# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set 141# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set 142# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IOP13XX is not set
124# CONFIG_ARCH_IXP4XX is not set
125# CONFIG_ARCH_IXP2000 is not set
126# CONFIG_ARCH_IXP23XX is not set 143# CONFIG_ARCH_IXP23XX is not set
144# CONFIG_ARCH_IXP2000 is not set
145# CONFIG_ARCH_IXP4XX is not set
127# CONFIG_ARCH_L7200 is not set 146# CONFIG_ARCH_L7200 is not set
147# CONFIG_ARCH_KIRKWOOD is not set
148# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set 149# CONFIG_ARCH_NS9XXX is not set
150# CONFIG_ARCH_LOKI is not set
151# CONFIG_ARCH_MV78XX0 is not set
152# CONFIG_ARCH_MXC is not set
153# CONFIG_ARCH_ORION5X is not set
129# CONFIG_ARCH_PNX4008 is not set 154# CONFIG_ARCH_PNX4008 is not set
130CONFIG_ARCH_PXA=y 155CONFIG_ARCH_PXA=y
131# CONFIG_ARCH_RPC is not set 156# CONFIG_ARCH_RPC is not set
@@ -133,80 +158,48 @@ CONFIG_ARCH_PXA=y
133# CONFIG_ARCH_S3C2410 is not set 158# CONFIG_ARCH_S3C2410 is not set
134# CONFIG_ARCH_SHARK is not set 159# CONFIG_ARCH_SHARK is not set
135# CONFIG_ARCH_LH7A40X is not set 160# CONFIG_ARCH_LH7A40X is not set
161# CONFIG_ARCH_DAVINCI is not set
136# CONFIG_ARCH_OMAP is not set 162# CONFIG_ARCH_OMAP is not set
137# CONFIG_BOARD_IRQ_MAP_SMALL is not set 163# CONFIG_ARCH_MSM7X00A is not set
138CONFIG_BOARD_IRQ_MAP_BIG=y
139CONFIG_DMABOUNCE=y
140 164
141# 165#
142# Intel PXA2xx Implementations 166# Intel PXA2xx/PXA3xx Implementations
143# 167#
168# CONFIG_ARCH_GUMSTIX is not set
144# CONFIG_ARCH_LUBBOCK is not set 169# CONFIG_ARCH_LUBBOCK is not set
145# CONFIG_MACH_LOGICPD_PXA270 is not set 170# CONFIG_MACH_LOGICPD_PXA270 is not set
146# CONFIG_MACH_MAINSTONE is not set 171# CONFIG_MACH_MAINSTONE is not set
147# CONFIG_ARCH_PXA_IDP is not set 172# CONFIG_ARCH_PXA_IDP is not set
148CONFIG_TOSHIBA_TMIO_OHCI=y 173# CONFIG_PXA_SHARPSL is not set
149CONFIG_ARCH_ESERIES=y 174CONFIG_ARCH_PXA_ESERIES=y
150CONFIG_MACH_E330=y 175CONFIG_MACH_E330=y
176CONFIG_MACH_E350=y
151CONFIG_MACH_E740=y 177CONFIG_MACH_E740=y
152CONFIG_MACH_E750=y 178CONFIG_MACH_E750=y
153CONFIG_MACH_E400=y 179CONFIG_MACH_E400=y
154CONFIG_MACH_E800=y 180CONFIG_MACH_E800=y
155CONFIG_E330_LCD=y
156CONFIG_E740_LCD=y
157CONFIG_E750_LCD=y
158CONFIG_E400_LCD=y
159CONFIG_E800_LCD=y
160CONFIG_ESERIES_UDC=y
161CONFIG_E330_TC6387XB=y
162CONFIG_E740_T7L66XB=y
163CONFIG_E400_T7L66XB=y
164CONFIG_E750_E800_TC6393XB=y
165CONFIG_E740_PCMCIA=m
166CONFIG_E750_PCMCIA=m
167CONFIG_E800_PCMCIA=m
168# CONFIG_MACH_A620 is not set
169# CONFIG_MACH_A716 is not set
170# CONFIG_MACH_A730 is not set
171# CONFIG_ARCH_H1900 is not set
172# CONFIG_ARCH_H2200 is not set
173# CONFIG_MACH_H3900 is not set
174# CONFIG_MACH_H4000 is not set
175# CONFIG_MACH_H4700 is not set
176# CONFIG_MACH_HX2750 is not set
177# CONFIG_ARCH_H5400 is not set
178# CONFIG_MACH_HIMALAYA is not set
179# CONFIG_MACH_HTCUNIVERSAL is not set
180# CONFIG_MACH_HTCALPINE is not set
181# CONFIG_MACH_MAGICIAN is not set
182# CONFIG_MACH_HTCAPACHE is not set
183# CONFIG_MACH_BLUEANGEL is not set
184
185#
186# HTC_HW6X00
187#
188# CONFIG_MACH_HTCBEETLES is not set
189# CONFIG_MACH_HW6900 is not set
190# CONFIG_MACH_HTCATHENA is not set
191# CONFIG_ARCH_AXIMX3 is not set
192# CONFIG_ARCH_AXIMX5 is not set
193# CONFIG_MACH_X50 is not set
194# CONFIG_ARCH_ROVERP1 is not set
195# CONFIG_ARCH_ROVERP5P is not set
196# CONFIG_MACH_XSCALE_PALMLD is not set
197# CONFIG_MACH_T3XSCALE is not set
198# CONFIG_MACH_RECON is not set
199# CONFIG_MACH_GHI270HG is not set
200# CONFIG_MACH_GHI270 is not set
201# CONFIG_MACH_LOOXC550 is not set
202# CONFIG_PXA_SHARPSL is not set
203# CONFIG_MACH_TRIZEPS4 is not set 181# CONFIG_MACH_TRIZEPS4 is not set
182# CONFIG_MACH_EM_X270 is not set
183# CONFIG_MACH_COLIBRI is not set
184# CONFIG_MACH_ZYLONITE is not set
185# CONFIG_MACH_LITTLETON is not set
186# CONFIG_MACH_TAVOREVB is not set
187# CONFIG_MACH_SAAR is not set
188# CONFIG_MACH_ARMCORE is not set
189# CONFIG_MACH_MAGICIAN is not set
190# CONFIG_MACH_PCM027 is not set
191# CONFIG_ARCH_PXA_PALM is not set
192# CONFIG_PXA_EZX is not set
204CONFIG_PXA25x=y 193CONFIG_PXA25x=y
194# CONFIG_PXA_PWM is not set
195
196#
197# Boot options
198#
205 199
206# 200#
207# Linux As Bootloader 201# Power management
208# 202#
209# CONFIG_LAB is not set
210 203
211# 204#
212# Processor Type 205# Processor Type
@@ -215,6 +208,7 @@ CONFIG_CPU_32=y
215CONFIG_CPU_XSCALE=y 208CONFIG_CPU_XSCALE=y
216CONFIG_CPU_32v5=y 209CONFIG_CPU_32v5=y
217CONFIG_CPU_ABRT_EV5T=y 210CONFIG_CPU_ABRT_EV5T=y
211CONFIG_CPU_PABRT_NOIFAR=y
218CONFIG_CPU_CACHE_VIVT=y 212CONFIG_CPU_CACHE_VIVT=y
219CONFIG_CPU_TLB_V4WBI=y 213CONFIG_CPU_TLB_V4WBI=y
220CONFIG_CPU_CP15=y 214CONFIG_CPU_CP15=y
@@ -232,11 +226,9 @@ CONFIG_XSCALE_PMU=y
232# 226#
233# Bus support 227# Bus support
234# 228#
235 229# CONFIG_PCI_SYSCALL is not set
236# 230# CONFIG_ARCH_SUPPORTS_MSI is not set
237# PCCARD (PCMCIA/CardBus) support 231CONFIG_PCCARD=y
238#
239CONFIG_PCCARD=m
240# CONFIG_PCMCIA_DEBUG is not set 232# CONFIG_PCMCIA_DEBUG is not set
241CONFIG_PCMCIA=m 233CONFIG_PCMCIA=m
242CONFIG_PCMCIA_LOAD_CIS=y 234CONFIG_PCMCIA_LOAD_CIS=y
@@ -245,11 +237,14 @@ CONFIG_PCMCIA_IOCTL=y
245# 237#
246# PC-card bridges 238# PC-card bridges
247# 239#
248CONFIG_PCMCIA_PXA2XX=m
249 240
250# 241#
251# Kernel Features 242# Kernel Features
252# 243#
244CONFIG_TICK_ONESHOT=y
245# CONFIG_NO_HZ is not set
246# CONFIG_HIGH_RES_TIMERS is not set
247CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
253# CONFIG_PREEMPT is not set 248# CONFIG_PREEMPT is not set
254CONFIG_HZ=100 249CONFIG_HZ=100
255CONFIG_AEABI=y 250CONFIG_AEABI=y
@@ -262,9 +257,13 @@ CONFIG_FLATMEM_MANUAL=y
262CONFIG_FLATMEM=y 257CONFIG_FLATMEM=y
263CONFIG_FLAT_NODE_MEM_MAP=y 258CONFIG_FLAT_NODE_MEM_MAP=y
264# CONFIG_SPARSEMEM_STATIC is not set 259# CONFIG_SPARSEMEM_STATIC is not set
260# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
261CONFIG_PAGEFLAGS_EXTENDED=y
265CONFIG_SPLIT_PTLOCK_CPUS=4096 262CONFIG_SPLIT_PTLOCK_CPUS=4096
266# CONFIG_RESOURCES_64BIT is not set 263# CONFIG_RESOURCES_64BIT is not set
267CONFIG_ZONE_DMA_FLAG=1 264CONFIG_ZONE_DMA_FLAG=1
265CONFIG_BOUNCE=y
266CONFIG_VIRT_TO_BUS=y
268CONFIG_ALIGNMENT_TRAP=y 267CONFIG_ALIGNMENT_TRAP=y
269 268
270# 269#
@@ -275,7 +274,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0
275CONFIG_CMDLINE="" 274CONFIG_CMDLINE=""
276# CONFIG_XIP_KERNEL is not set 275# CONFIG_XIP_KERNEL is not set
277CONFIG_KEXEC=y 276CONFIG_KEXEC=y
278# CONFIG_TXTOFFSET_DELTA is not set 277CONFIG_ATAGS_PROC=y
279 278
280# 279#
281# CPU Frequency scaling 280# CPU Frequency scaling
@@ -304,11 +303,12 @@ CONFIG_BINFMT_MISC=y
304# Power management options 303# Power management options
305# 304#
306CONFIG_PM=y 305CONFIG_PM=y
307CONFIG_PM_LEGACY=y
308# CONFIG_PM_DEBUG is not set 306# CONFIG_PM_DEBUG is not set
309# CONFIG_DPM_DEBUG is not set 307CONFIG_PM_SLEEP=y
310# CONFIG_PM_SYSFS_DEPRECATED is not set 308CONFIG_SUSPEND=y
309CONFIG_SUSPEND_FREEZER=y
311# CONFIG_APM_EMULATION is not set 310# CONFIG_APM_EMULATION is not set
311CONFIG_ARCH_SUSPEND_POSSIBLE=y
312 312
313# 313#
314# Networking 314# Networking
@@ -318,13 +318,13 @@ CONFIG_NET=y
318# 318#
319# Networking options 319# Networking options
320# 320#
321# CONFIG_NETDEBUG is not set
322# CONFIG_PACKET is not set 321# CONFIG_PACKET is not set
323CONFIG_UNIX=y 322CONFIG_UNIX=y
324CONFIG_XFRM=y 323CONFIG_XFRM=y
325# CONFIG_XFRM_USER is not set 324# CONFIG_XFRM_USER is not set
326# CONFIG_XFRM_SUB_POLICY is not set 325# CONFIG_XFRM_SUB_POLICY is not set
327# CONFIG_XFRM_MIGRATE is not set 326# CONFIG_XFRM_MIGRATE is not set
327# CONFIG_XFRM_STATISTICS is not set
328# CONFIG_NET_KEY is not set 328# CONFIG_NET_KEY is not set
329CONFIG_INET=y 329CONFIG_INET=y
330# CONFIG_IP_MULTICAST is not set 330# CONFIG_IP_MULTICAST is not set
@@ -339,35 +339,40 @@ CONFIG_IP_FIB_HASH=y
339# CONFIG_INET_ESP is not set 339# CONFIG_INET_ESP is not set
340# CONFIG_INET_IPCOMP is not set 340# CONFIG_INET_IPCOMP is not set
341# CONFIG_INET_XFRM_TUNNEL is not set 341# CONFIG_INET_XFRM_TUNNEL is not set
342# CONFIG_INET_TUNNEL is not set 342CONFIG_INET_TUNNEL=y
343CONFIG_INET_XFRM_MODE_TRANSPORT=y 343CONFIG_INET_XFRM_MODE_TRANSPORT=y
344CONFIG_INET_XFRM_MODE_TUNNEL=y 344CONFIG_INET_XFRM_MODE_TUNNEL=y
345CONFIG_INET_XFRM_MODE_BEET=y 345CONFIG_INET_XFRM_MODE_BEET=y
346# CONFIG_INET_LRO is not set
346CONFIG_INET_DIAG=y 347CONFIG_INET_DIAG=y
347CONFIG_INET_TCP_DIAG=y 348CONFIG_INET_TCP_DIAG=y
348# CONFIG_TCP_CONG_ADVANCED is not set 349# CONFIG_TCP_CONG_ADVANCED is not set
349CONFIG_TCP_CONG_CUBIC=y 350CONFIG_TCP_CONG_CUBIC=y
350CONFIG_DEFAULT_TCP_CONG="cubic" 351CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_TCP_MD5SIG is not set 352# CONFIG_TCP_MD5SIG is not set
352# CONFIG_IPV6 is not set 353CONFIG_IPV6=y
354# CONFIG_IPV6_PRIVACY is not set
355# CONFIG_IPV6_ROUTER_PREF is not set
356# CONFIG_IPV6_OPTIMISTIC_DAD is not set
357# CONFIG_INET6_AH is not set
358# CONFIG_INET6_ESP is not set
359# CONFIG_INET6_IPCOMP is not set
360# CONFIG_IPV6_MIP6 is not set
353# CONFIG_INET6_XFRM_TUNNEL is not set 361# CONFIG_INET6_XFRM_TUNNEL is not set
354# CONFIG_INET6_TUNNEL is not set 362# CONFIG_INET6_TUNNEL is not set
363CONFIG_INET6_XFRM_MODE_TRANSPORT=y
364CONFIG_INET6_XFRM_MODE_TUNNEL=y
365CONFIG_INET6_XFRM_MODE_BEET=y
366# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
367CONFIG_IPV6_SIT=y
368CONFIG_IPV6_NDISC_NODETYPE=y
369# CONFIG_IPV6_TUNNEL is not set
370# CONFIG_IPV6_MULTIPLE_TABLES is not set
371# CONFIG_IPV6_MROUTE is not set
355# CONFIG_NETWORK_SECMARK is not set 372# CONFIG_NETWORK_SECMARK is not set
356# CONFIG_NETFILTER is not set 373# CONFIG_NETFILTER is not set
357
358#
359# DCCP Configuration (EXPERIMENTAL)
360#
361# CONFIG_IP_DCCP is not set 374# CONFIG_IP_DCCP is not set
362
363#
364# SCTP Configuration (EXPERIMENTAL)
365#
366# CONFIG_IP_SCTP is not set 375# CONFIG_IP_SCTP is not set
367
368#
369# TIPC Configuration (EXPERIMENTAL)
370#
371# CONFIG_TIPC is not set 376# CONFIG_TIPC is not set
372# CONFIG_ATM is not set 377# CONFIG_ATM is not set
373# CONFIG_BRIDGE is not set 378# CONFIG_BRIDGE is not set
@@ -380,10 +385,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
380# CONFIG_LAPB is not set 385# CONFIG_LAPB is not set
381# CONFIG_ECONET is not set 386# CONFIG_ECONET is not set
382# CONFIG_WAN_ROUTER is not set 387# CONFIG_WAN_ROUTER is not set
383
384#
385# QoS and/or fair queueing
386#
387# CONFIG_NET_SCHED is not set 388# CONFIG_NET_SCHED is not set
388 389
389# 390#
@@ -391,15 +392,74 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
391# 392#
392# CONFIG_NET_PKTGEN is not set 393# CONFIG_NET_PKTGEN is not set
393# CONFIG_HAMRADIO is not set 394# CONFIG_HAMRADIO is not set
394# CONFIG_IRDA is not set 395# CONFIG_CAN is not set
396CONFIG_IRDA=y
397
398#
399# IrDA protocols
400#
401CONFIG_IRLAN=m
402CONFIG_IRCOMM=m
403CONFIG_IRDA_ULTRA=y
404
405#
406# IrDA options
407#
408CONFIG_IRDA_CACHE_LAST_LSAP=y
409CONFIG_IRDA_FAST_RR=y
410# CONFIG_IRDA_DEBUG is not set
411
412#
413# Infrared-port device drivers
414#
415
416#
417# SIR device drivers
418#
419# CONFIG_IRTTY_SIR is not set
420
421#
422# Dongle support
423#
424# CONFIG_KINGSUN_DONGLE is not set
425# CONFIG_KSDAZZLE_DONGLE is not set
426# CONFIG_KS959_DONGLE is not set
427
428#
429# FIR device drivers
430#
431# CONFIG_USB_IRDA is not set
432# CONFIG_SIGMATEL_FIR is not set
433CONFIG_PXA_FICP=y
434# CONFIG_MCS_FIR is not set
395# CONFIG_BT is not set 435# CONFIG_BT is not set
436# CONFIG_AF_RXRPC is not set
437
438#
439# Wireless
440#
441CONFIG_CFG80211=m
442CONFIG_NL80211=y
443CONFIG_WIRELESS_EXT=y
444CONFIG_WIRELESS_EXT_SYSFS=y
445CONFIG_MAC80211=m
446
447#
448# Rate control algorithm selection
449#
450CONFIG_MAC80211_RC_PID=y
451CONFIG_MAC80211_RC_DEFAULT_PID=y
452CONFIG_MAC80211_RC_DEFAULT="pid"
453# CONFIG_MAC80211_MESH is not set
454# CONFIG_MAC80211_LEDS is not set
455# CONFIG_MAC80211_DEBUG_MENU is not set
396CONFIG_IEEE80211=m 456CONFIG_IEEE80211=m
397# CONFIG_IEEE80211_DEBUG is not set 457# CONFIG_IEEE80211_DEBUG is not set
398CONFIG_IEEE80211_CRYPT_WEP=m 458CONFIG_IEEE80211_CRYPT_WEP=m
399# CONFIG_IEEE80211_CRYPT_CCMP is not set 459CONFIG_IEEE80211_CRYPT_CCMP=m
400# CONFIG_IEEE80211_CRYPT_TKIP is not set 460CONFIG_IEEE80211_CRYPT_TKIP=m
401# CONFIG_IEEE80211_SOFTMAC is not set 461# CONFIG_RFKILL is not set
402CONFIG_WIRELESS_EXT=y 462# CONFIG_NET_9P is not set
403 463
404# 464#
405# Device Drivers 465# Device Drivers
@@ -408,38 +468,32 @@ CONFIG_WIRELESS_EXT=y
408# 468#
409# Generic Driver Options 469# Generic Driver Options
410# 470#
471CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
411# CONFIG_STANDALONE is not set 472# CONFIG_STANDALONE is not set
412CONFIG_PREVENT_FIRMWARE_BUILD=y 473CONFIG_PREVENT_FIRMWARE_BUILD=y
413CONFIG_FW_LOADER=y 474CONFIG_FW_LOADER=y
475CONFIG_FIRMWARE_IN_KERNEL=y
476CONFIG_EXTRA_FIRMWARE=""
414# CONFIG_SYS_HYPERVISOR is not set 477# CONFIG_SYS_HYPERVISOR is not set
415
416#
417# Connector - unified userspace <-> kernelspace linker
418#
419# CONFIG_CONNECTOR is not set 478# CONFIG_CONNECTOR is not set
420
421#
422# Memory Technology Devices (MTD)
423#
424CONFIG_MTD=m 479CONFIG_MTD=m
425# CONFIG_MTD_DEBUG is not set 480# CONFIG_MTD_DEBUG is not set
426# CONFIG_MTD_CONCAT is not set 481# CONFIG_MTD_CONCAT is not set
427CONFIG_MTD_PARTITIONS=y 482# CONFIG_MTD_PARTITIONS is not set
428# CONFIG_MTD_REDBOOT_PARTS is not set
429# CONFIG_MTD_AFS_PARTS is not set
430 483
431# 484#
432# User Modules And Translation Layers 485# User Modules And Translation Layers
433# 486#
434CONFIG_MTD_CHAR=m 487# CONFIG_MTD_CHAR is not set
435CONFIG_MTD_BLKDEVS=m 488# CONFIG_MTD_BLKDEVS is not set
436CONFIG_MTD_BLOCK=m 489# CONFIG_MTD_BLOCK is not set
437# CONFIG_MTD_BLOCK_RO is not set 490# CONFIG_MTD_BLOCK_RO is not set
438# CONFIG_FTL is not set 491# CONFIG_FTL is not set
439# CONFIG_NFTL is not set 492# CONFIG_NFTL is not set
440# CONFIG_INFTL is not set 493# CONFIG_INFTL is not set
441# CONFIG_RFD_FTL is not set 494# CONFIG_RFD_FTL is not set
442# CONFIG_SSFDC is not set 495# CONFIG_SSFDC is not set
496# CONFIG_MTD_OOPS is not set
443 497
444# 498#
445# RAM/ROM/Flash chip drivers 499# RAM/ROM/Flash chip drivers
@@ -459,7 +513,6 @@ CONFIG_MTD_CFI_I2=y
459# CONFIG_MTD_RAM is not set 513# CONFIG_MTD_RAM is not set
460# CONFIG_MTD_ROM is not set 514# CONFIG_MTD_ROM is not set
461# CONFIG_MTD_ABSENT is not set 515# CONFIG_MTD_ABSENT is not set
462# CONFIG_MTD_OBSOLETE_CHIPS is not set
463 516
464# 517#
465# Mapping drivers for chip access 518# Mapping drivers for chip access
@@ -482,82 +535,43 @@ CONFIG_MTD_CFI_I2=y
482# CONFIG_MTD_DOC2000 is not set 535# CONFIG_MTD_DOC2000 is not set
483# CONFIG_MTD_DOC2001 is not set 536# CONFIG_MTD_DOC2001 is not set
484# CONFIG_MTD_DOC2001PLUS is not set 537# CONFIG_MTD_DOC2001PLUS is not set
485
486#
487# NAND Flash Device Drivers
488#
489CONFIG_MTD_NAND=m 538CONFIG_MTD_NAND=m
490CONFIG_MTD_NAND_VERIFY_WRITE=y 539# CONFIG_MTD_NAND_VERIFY_WRITE is not set
491# CONFIG_MTD_NAND_ECC_SMC is not set 540# CONFIG_MTD_NAND_ECC_SMC is not set
492# CONFIG_MTD_NAND_H1900 is not set 541# CONFIG_MTD_NAND_MUSEUM_IDS is not set
493CONFIG_MTD_NAND_IDS=m 542CONFIG_MTD_NAND_IDS=m
494# CONFIG_MTD_NAND_DISKONCHIP is not set 543# CONFIG_MTD_NAND_DISKONCHIP is not set
495# CONFIG_MTD_NAND_SHARPSL is not set 544# CONFIG_MTD_NAND_SHARPSL is not set
496# CONFIG_MTD_NAND_NANDSIM is not set 545# CONFIG_MTD_NAND_PLATFORM is not set
497 546# CONFIG_MTD_ALAUDA is not set
498#
499# OneNAND Flash Device Drivers
500#
501# CONFIG_MTD_ONENAND is not set 547# CONFIG_MTD_ONENAND is not set
502 548
503# 549#
504# Parallel port support 550# UBI - Unsorted block images
505# 551#
552# CONFIG_MTD_UBI is not set
506# CONFIG_PARPORT is not set 553# CONFIG_PARPORT is not set
507 554CONFIG_BLK_DEV=y
508#
509# Plug and Play support
510#
511# CONFIG_PNPACPI is not set
512
513#
514# Block devices
515#
516# CONFIG_BLK_DEV_COW_COMMON is not set 555# CONFIG_BLK_DEV_COW_COMMON is not set
517CONFIG_BLK_DEV_LOOP=m 556CONFIG_BLK_DEV_LOOP=m
518# CONFIG_BLK_DEV_CRYPTOLOOP is not set 557# CONFIG_BLK_DEV_CRYPTOLOOP is not set
519# CONFIG_BLK_DEV_NBD is not set 558# CONFIG_BLK_DEV_NBD is not set
520# CONFIG_BLK_DEV_UB is not set 559# CONFIG_BLK_DEV_UB is not set
521CONFIG_BLK_DEV_RAM=y 560# CONFIG_BLK_DEV_RAM is not set
522CONFIG_BLK_DEV_RAM_COUNT=16
523CONFIG_BLK_DEV_RAM_SIZE=6144
524CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
525# CONFIG_CDROM_PKTCDVD is not set 561# CONFIG_CDROM_PKTCDVD is not set
526# CONFIG_ATA_OVER_ETH is not set 562# CONFIG_ATA_OVER_ETH is not set
527 563CONFIG_MISC_DEVICES=y
528# 564# CONFIG_EEPROM_93CX6 is not set
529# ATA/ATAPI/MFM/RLL support 565# CONFIG_ENCLOSURE_SERVICES is not set
530# 566CONFIG_HAVE_IDE=y
531CONFIG_IDE=m 567# CONFIG_IDE is not set
532CONFIG_IDE_MAX_HWIFS=4
533CONFIG_BLK_DEV_IDE=m
534
535#
536# Please see Documentation/ide.txt for help/info on IDE drives
537#
538# CONFIG_BLK_DEV_IDE_SATA is not set
539CONFIG_BLK_DEV_IDEDISK=m
540# CONFIG_IDEDISK_MULTI_MODE is not set
541# CONFIG_BLK_DEV_IDECS is not set
542# CONFIG_BLK_DEV_IDECD is not set
543# CONFIG_BLK_DEV_IDETAPE is not set
544# CONFIG_BLK_DEV_IDEFLOPPY is not set
545# CONFIG_BLK_DEV_IDESCSI is not set
546# CONFIG_IDE_TASK_IOCTL is not set
547
548#
549# IDE chipset support/bugfixes
550#
551# CONFIG_IDE_GENERIC is not set
552# CONFIG_IDE_ARM is not set
553# CONFIG_BLK_DEV_IDEDMA is not set
554# CONFIG_BLK_DEV_HD is not set
555 568
556# 569#
557# SCSI device support 570# SCSI device support
558# 571#
559# CONFIG_RAID_ATTRS is not set 572# CONFIG_RAID_ATTRS is not set
560CONFIG_SCSI=m 573CONFIG_SCSI=m
574CONFIG_SCSI_DMA=y
561# CONFIG_SCSI_TGT is not set 575# CONFIG_SCSI_TGT is not set
562# CONFIG_SCSI_NETLINK is not set 576# CONFIG_SCSI_NETLINK is not set
563# CONFIG_SCSI_PROC_FS is not set 577# CONFIG_SCSI_PROC_FS is not set
@@ -565,7 +579,7 @@ CONFIG_SCSI=m
565# 579#
566# SCSI support type (disk, tape, CD-ROM) 580# SCSI support type (disk, tape, CD-ROM)
567# 581#
568# CONFIG_BLK_DEV_SD is not set 582CONFIG_BLK_DEV_SD=m
569# CONFIG_CHR_DEV_ST is not set 583# CONFIG_CHR_DEV_ST is not set
570# CONFIG_CHR_DEV_OSST is not set 584# CONFIG_CHR_DEV_OSST is not set
571# CONFIG_BLK_DEV_SR is not set 585# CONFIG_BLK_DEV_SR is not set
@@ -579,6 +593,7 @@ CONFIG_SCSI=m
579# CONFIG_SCSI_CONSTANTS is not set 593# CONFIG_SCSI_CONSTANTS is not set
580# CONFIG_SCSI_LOGGING is not set 594# CONFIG_SCSI_LOGGING is not set
581# CONFIG_SCSI_SCAN_ASYNC is not set 595# CONFIG_SCSI_SCAN_ASYNC is not set
596CONFIG_SCSI_WAIT_SCAN=m
582 597
583# 598#
584# SCSI Transports 599# SCSI Transports
@@ -586,132 +601,78 @@ CONFIG_SCSI=m
586# CONFIG_SCSI_SPI_ATTRS is not set 601# CONFIG_SCSI_SPI_ATTRS is not set
587# CONFIG_SCSI_FC_ATTRS is not set 602# CONFIG_SCSI_FC_ATTRS is not set
588# CONFIG_SCSI_ISCSI_ATTRS is not set 603# CONFIG_SCSI_ISCSI_ATTRS is not set
589# CONFIG_SCSI_SAS_ATTRS is not set
590# CONFIG_SCSI_SAS_LIBSAS is not set 604# CONFIG_SCSI_SAS_LIBSAS is not set
591 605# CONFIG_SCSI_SRP_ATTRS is not set
592# 606# CONFIG_SCSI_LOWLEVEL is not set
593# SCSI low-level drivers 607# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
594# 608# CONFIG_SCSI_DH is not set
595# CONFIG_ISCSI_TCP is not set 609CONFIG_ATA=m
596# CONFIG_SCSI_DEBUG is not set 610# CONFIG_ATA_NONSTANDARD is not set
597 611# CONFIG_SATA_PMP is not set
598# 612CONFIG_ATA_SFF=y
599# PCMCIA SCSI adapter support 613# CONFIG_SATA_MV is not set
600# 614CONFIG_PATA_PCMCIA=m
601# CONFIG_PCMCIA_AHA152X is not set 615# CONFIG_PATA_PLATFORM is not set
602# CONFIG_PCMCIA_FDOMAIN is not set
603# CONFIG_PCMCIA_NINJA_SCSI is not set
604# CONFIG_PCMCIA_QLOGIC is not set
605# CONFIG_PCMCIA_SYM53C500 is not set
606
607#
608# Serial ATA (prod) and Parallel ATA (experimental) drivers
609#
610# CONFIG_ATA is not set
611
612#
613# Multi-device support (RAID and LVM)
614#
615# CONFIG_MD is not set 616# CONFIG_MD is not set
616
617#
618# Fusion MPT device support
619#
620# CONFIG_FUSION is not set
621
622#
623# IEEE 1394 (FireWire) support
624#
625
626#
627# I2O device support
628#
629
630#
631# Network device support
632#
633CONFIG_NETDEVICES=y 617CONFIG_NETDEVICES=y
634# CONFIG_DUMMY is not set 618# CONFIG_DUMMY is not set
635# CONFIG_BONDING is not set 619# CONFIG_BONDING is not set
620# CONFIG_MACVLAN is not set
636# CONFIG_EQUALIZER is not set 621# CONFIG_EQUALIZER is not set
637# CONFIG_TUN is not set 622# CONFIG_TUN is not set
638 623# CONFIG_VETH is not set
639#
640# PHY device support
641#
642
643#
644# Ethernet (10 or 100Mbit)
645#
646# CONFIG_NET_ETHERNET is not set 624# CONFIG_NET_ETHERNET is not set
625# CONFIG_NETDEV_1000 is not set
626# CONFIG_NETDEV_10000 is not set
647 627
648# 628#
649# Ethernet (1000 Mbit) 629# Wireless LAN
650#
651
652#
653# Ethernet (10000 Mbit)
654#
655
656#
657# Token Ring devices
658#
659
660#
661# Wireless LAN (non-hamradio)
662#
663CONFIG_NET_RADIO=y
664# CONFIG_NET_WIRELESS_RTNETLINK is not set
665
666#
667# Obsolete Wireless cards support (pre-802.11)
668#
669# CONFIG_STRIP is not set
670# CONFIG_PCMCIA_WAVELAN is not set
671# CONFIG_PCMCIA_NETWAVE is not set
672
673#
674# Wireless 802.11 Frequency Hopping cards support
675# 630#
631# CONFIG_WLAN_PRE80211 is not set
632CONFIG_WLAN_80211=y
676# CONFIG_PCMCIA_RAYCS is not set 633# CONFIG_PCMCIA_RAYCS is not set
677 634# CONFIG_LIBERTAS is not set
678# 635CONFIG_HERMES=m
679# Wireless 802.11b ISA/PCI cards support 636CONFIG_PCMCIA_HERMES=m
680# 637# CONFIG_PCMCIA_SPECTRUM is not set
681# CONFIG_HERMES is not set
682# CONFIG_ATMEL is not set 638# CONFIG_ATMEL is not set
683
684#
685# Wireless 802.11b Pcmcia/Cardbus cards support
686#
687# CONFIG_AIRO_CS is not set 639# CONFIG_AIRO_CS is not set
688# CONFIG_PCMCIA_WL3501 is not set 640# CONFIG_PCMCIA_WL3501 is not set
689# CONFIG_USB_ZD1201 is not set 641# CONFIG_USB_ZD1201 is not set
690CONFIG_HOSTAP=m 642# CONFIG_USB_NET_RNDIS_WLAN is not set
691# CONFIG_HOSTAP_FIRMWARE is not set 643# CONFIG_RTL8187 is not set
692# CONFIG_HOSTAP_CS is not set 644# CONFIG_MAC80211_HWSIM is not set
693# CONFIG_ACX is not set 645# CONFIG_P54_COMMON is not set
694CONFIG_NET_WIRELESS=y 646# CONFIG_IWLWIFI_LEDS is not set
695 647# CONFIG_HOSTAP is not set
696# 648# CONFIG_B43 is not set
697# PCMCIA network device support 649# CONFIG_B43LEGACY is not set
698# 650# CONFIG_ZD1211RW is not set
699# CONFIG_NET_PCMCIA is not set 651# CONFIG_RT2X00 is not set
700 652
701# 653#
702# Wan interfaces 654# USB Network Adapters
703# 655#
656# CONFIG_USB_CATC is not set
657# CONFIG_USB_KAWETH is not set
658# CONFIG_USB_PEGASUS is not set
659# CONFIG_USB_RTL8150 is not set
660# CONFIG_USB_USBNET is not set
661CONFIG_NET_PCMCIA=y
662# CONFIG_PCMCIA_3C589 is not set
663# CONFIG_PCMCIA_3C574 is not set
664# CONFIG_PCMCIA_FMVJ18X is not set
665CONFIG_PCMCIA_PCNET=m
666# CONFIG_PCMCIA_NMCLAN is not set
667# CONFIG_PCMCIA_SMC91C92 is not set
668# CONFIG_PCMCIA_XIRC2PS is not set
669# CONFIG_PCMCIA_AXNET is not set
704# CONFIG_WAN is not set 670# CONFIG_WAN is not set
705# CONFIG_PPP is not set 671# CONFIG_PPP is not set
706# CONFIG_SLIP is not set 672# CONFIG_SLIP is not set
707# CONFIG_SHAPER is not set
708# CONFIG_NETCONSOLE is not set 673# CONFIG_NETCONSOLE is not set
709# CONFIG_NETPOLL is not set 674# CONFIG_NETPOLL is not set
710# CONFIG_NET_POLL_CONTROLLER is not set 675# CONFIG_NET_POLL_CONTROLLER is not set
711
712#
713# ISDN subsystem
714#
715# CONFIG_ISDN is not set 676# CONFIG_ISDN is not set
716 677
717# 678#
@@ -719,38 +680,48 @@ CONFIG_NET_WIRELESS=y
719# 680#
720CONFIG_INPUT=y 681CONFIG_INPUT=y
721# CONFIG_INPUT_FF_MEMLESS is not set 682# CONFIG_INPUT_FF_MEMLESS is not set
683# CONFIG_INPUT_POLLDEV is not set
722 684
723# 685#
724# Userland interfaces 686# Userland interfaces
725# 687#
726# CONFIG_INPUT_MOUSEDEV is not set 688# CONFIG_INPUT_MOUSEDEV is not set
727# CONFIG_INPUT_JOYDEV is not set 689# CONFIG_INPUT_JOYDEV is not set
728CONFIG_INPUT_TSDEV=m
729CONFIG_INPUT_TSDEV_SCREEN_X=240
730CONFIG_INPUT_TSDEV_SCREEN_Y=320
731CONFIG_INPUT_EVDEV=m 690CONFIG_INPUT_EVDEV=m
732# CONFIG_INPUT_EVBUG is not set 691# CONFIG_INPUT_EVBUG is not set
733# CONFIG_INPUT_LED_TRIGGER is not set
734 692
735# 693#
736# Input Device Drivers 694# Input Device Drivers
737# 695#
738# CONFIG_INPUT_KEYBOARD is not set 696CONFIG_INPUT_KEYBOARD=y
697# CONFIG_KEYBOARD_ATKBD is not set
698# CONFIG_KEYBOARD_SUNKBD is not set
699# CONFIG_KEYBOARD_LKKBD is not set
700# CONFIG_KEYBOARD_XTKBD is not set
701# CONFIG_KEYBOARD_NEWTON is not set
702# CONFIG_KEYBOARD_STOWAWAY is not set
703CONFIG_KEYBOARD_GPIO=m
739# CONFIG_INPUT_MOUSE is not set 704# CONFIG_INPUT_MOUSE is not set
740# CONFIG_INPUT_JOYSTICK is not set 705# CONFIG_INPUT_JOYSTICK is not set
706# CONFIG_INPUT_TABLET is not set
741CONFIG_INPUT_TOUCHSCREEN=y 707CONFIG_INPUT_TOUCHSCREEN=y
708# CONFIG_TOUCHSCREEN_FUJITSU is not set
742# CONFIG_TOUCHSCREEN_GUNZE is not set 709# CONFIG_TOUCHSCREEN_GUNZE is not set
743# CONFIG_TOUCHSCREEN_ELO is not set 710# CONFIG_TOUCHSCREEN_ELO is not set
744# CONFIG_TOUCHSCREEN_MTOUCH is not set 711# CONFIG_TOUCHSCREEN_MTOUCH is not set
712# CONFIG_TOUCHSCREEN_INEXIO is not set
745# CONFIG_TOUCHSCREEN_MK712 is not set 713# CONFIG_TOUCHSCREEN_MK712 is not set
746CONFIG_TOUCHSCREEN_WM97XX=m
747CONFIG_TOUCHSCREEN_WM9705=y
748CONFIG_TOUCHSCREEN_WM9712=y
749CONFIG_TOUCHSCREEN_WM9713=y
750# CONFIG_TOUCHSCREEN_PENMOUNT is not set 714# CONFIG_TOUCHSCREEN_PENMOUNT is not set
751# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 715# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
752# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 716# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
753# CONFIG_TOUCHSCREEN_UCB1400 is not set 717# CONFIG_TOUCHSCREEN_UCB1400 is not set
718CONFIG_TOUCHSCREEN_WM97XX=m
719CONFIG_TOUCHSCREEN_WM9705=y
720CONFIG_TOUCHSCREEN_WM9712=y
721CONFIG_TOUCHSCREEN_WM9713=y
722# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set
723# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
724# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
754# CONFIG_INPUT_MISC is not set 725# CONFIG_INPUT_MISC is not set
755 726
756# 727#
@@ -763,9 +734,11 @@ CONFIG_TOUCHSCREEN_WM9713=y
763# Character devices 734# Character devices
764# 735#
765CONFIG_VT=y 736CONFIG_VT=y
737CONFIG_CONSOLE_TRANSLATIONS=y
766CONFIG_VT_CONSOLE=y 738CONFIG_VT_CONSOLE=y
767CONFIG_HW_CONSOLE=y 739CONFIG_HW_CONSOLE=y
768# CONFIG_VT_HW_CONSOLE_BINDING is not set 740# CONFIG_VT_HW_CONSOLE_BINDING is not set
741CONFIG_DEVKMEM=y
769# CONFIG_SERIAL_NONSTANDARD is not set 742# CONFIG_SERIAL_NONSTANDARD is not set
770 743
771# 744#
@@ -777,25 +750,12 @@ CONFIG_HW_CONSOLE=y
777# Non-8250 serial port support 750# Non-8250 serial port support
778# 751#
779# CONFIG_SERIAL_PXA is not set 752# CONFIG_SERIAL_PXA is not set
780# CONFIG_RS232_SERIAL is not set
781CONFIG_UNIX98_PTYS=y 753CONFIG_UNIX98_PTYS=y
782# CONFIG_LEGACY_PTYS is not set 754# CONFIG_LEGACY_PTYS is not set
783
784#
785# IPMI
786#
787# CONFIG_IPMI_HANDLER is not set 755# CONFIG_IPMI_HANDLER is not set
788
789#
790# Watchdog Cards
791#
792# CONFIG_WATCHDOG is not set
793CONFIG_HW_RANDOM=m 756CONFIG_HW_RANDOM=m
794# CONFIG_NVRAM is not set 757# CONFIG_NVRAM is not set
795# CONFIG_SA1100_RTC is not set
796# CONFIG_DTLK is not set
797# CONFIG_R3964 is not set 758# CONFIG_R3964 is not set
798# CONFIG_TIHTC is not set
799 759
800# 760#
801# PCMCIA character devices 761# PCMCIA character devices
@@ -803,117 +763,79 @@ CONFIG_HW_RANDOM=m
803# CONFIG_SYNCLINK_CS is not set 763# CONFIG_SYNCLINK_CS is not set
804# CONFIG_CARDMAN_4000 is not set 764# CONFIG_CARDMAN_4000 is not set
805# CONFIG_CARDMAN_4040 is not set 765# CONFIG_CARDMAN_4040 is not set
766# CONFIG_IPWIRELESS is not set
806# CONFIG_RAW_DRIVER is not set 767# CONFIG_RAW_DRIVER is not set
807
808#
809# TPM devices
810#
811# CONFIG_TCG_TPM is not set 768# CONFIG_TCG_TPM is not set
812
813#
814# I2C support
815#
816# CONFIG_I2C is not set 769# CONFIG_I2C is not set
817
818#
819# SPI support
820#
821# CONFIG_SPI is not set 770# CONFIG_SPI is not set
822# CONFIG_SPI_MASTER is not set 771CONFIG_ARCH_REQUIRE_GPIOLIB=y
823 772CONFIG_GPIOLIB=y
824# 773# CONFIG_GPIO_SYSFS is not set
825# Dallas's 1-wire bus
826#
827# CONFIG_W1 is not set
828 774
829# 775#
830# Hardware Monitoring support 776# I2C GPIO expanders:
831#
832# CONFIG_HWMON is not set
833# CONFIG_HWMON_VID is not set
834# CONFIG_POWER_SUPPLY is not set
835
836#
837# L3 serial bus support
838#
839# CONFIG_L3 is not set
840
841#
842# Misc devices
843# 777#
844 778
845# 779#
846# Multimedia Capabilities Port drivers 780# PCI GPIO expanders:
847# 781#
848# CONFIG_ADC is not set
849 782
850# 783#
851# Compaq/iPAQ Drivers 784# SPI GPIO expanders:
852# 785#
786# CONFIG_W1 is not set
787# CONFIG_POWER_SUPPLY is not set
788# CONFIG_HWMON is not set
789# CONFIG_WATCHDOG is not set
853 790
854# 791#
855# Compaq/HP iPAQ Drivers 792# Sonics Silicon Backplane
856# 793#
857# CONFIG_IPAQ_SLEEVE is not set 794CONFIG_SSB_POSSIBLE=y
858# CONFIG_SLEEVE_DEBUG is not set 795# CONFIG_SSB is not set
859 796
860# 797#
861# Multifunction device drivers 798# Multifunction device drivers
862# 799#
800CONFIG_MFD_CORE=y
863# CONFIG_MFD_SM501 is not set 801# CONFIG_MFD_SM501 is not set
864# CONFIG_HTC_ASIC2 is not set
865# CONFIG_HTC_ASIC3 is not set
866# CONFIG_HTC_PASIC3 is not set
867# CONFIG_HTC_EGPIO is not set 802# CONFIG_HTC_EGPIO is not set
868# CONFIG_HTC_BBKEYS is not set 803# CONFIG_HTC_PASIC3 is not set
869# CONFIG_HTC_ASIC3_DS1WM is not set 804CONFIG_MFD_TC6393XB=y
870# CONFIG_SOC_SAMCOP is not set
871# CONFIG_SOC_HAMCOP is not set
872# CONFIG_SOC_MQ11XX is not set
873CONFIG_SOC_T7L66XB=y
874# CONFIG_SOC_TC6387XB is not set
875CONFIG_SOC_TC6393XB=y
876# CONFIG_SOC_TSC2101 is not set
877# CONFIG_SOC_TSC2200 is not set
878
879#
880# LED devices
881#
882# CONFIG_NEW_LEDS is not set
883
884#
885# LED drivers
886#
887 805
888# 806#
889# LED Triggers 807# Multimedia devices
890# 808#
891# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
892 809
893# 810#
894# Multimedia devices 811# Multimedia core support
895# 812#
896# CONFIG_VIDEO_DEV is not set 813# CONFIG_VIDEO_DEV is not set
814# CONFIG_DVB_CORE is not set
815# CONFIG_VIDEO_MEDIA is not set
897 816
898# 817#
899# Digital Video Broadcasting Devices 818# Multimedia drivers
900# 819#
901# CONFIG_DVB is not set 820# CONFIG_DAB is not set
902# CONFIG_USB_DABUSB is not set
903 821
904# 822#
905# Graphics support 823# Graphics support
906# 824#
907CONFIG_BACKLIGHT_LCD_SUPPORT=y 825# CONFIG_VGASTATE is not set
908CONFIG_BACKLIGHT_CLASS_DEVICE=y 826# CONFIG_VIDEO_OUTPUT_CONTROL is not set
909CONFIG_LCD_CLASS_DEVICE=y
910CONFIG_BACKLIGHT_CORGI=y
911CONFIG_FB=y 827CONFIG_FB=y
912# CONFIG_FIRMWARE_EDID is not set 828# CONFIG_FIRMWARE_EDID is not set
913# CONFIG_FB_DDC is not set 829# CONFIG_FB_DDC is not set
914CONFIG_FB_CFB_FILLRECT=y 830CONFIG_FB_CFB_FILLRECT=y
915CONFIG_FB_CFB_COPYAREA=y 831CONFIG_FB_CFB_COPYAREA=y
916CONFIG_FB_CFB_IMAGEBLIT=y 832CONFIG_FB_CFB_IMAGEBLIT=y
833# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
834# CONFIG_FB_SYS_FILLRECT is not set
835# CONFIG_FB_SYS_COPYAREA is not set
836# CONFIG_FB_SYS_IMAGEBLIT is not set
837# CONFIG_FB_FOREIGN_ENDIAN is not set
838# CONFIG_FB_SYS_FOPS is not set
917# CONFIG_FB_SVGALIB is not set 839# CONFIG_FB_SVGALIB is not set
918# CONFIG_FB_MACMODES is not set 840# CONFIG_FB_MACMODES is not set
919# CONFIG_FB_BACKLIGHT is not set 841# CONFIG_FB_BACKLIGHT is not set
@@ -923,14 +845,25 @@ CONFIG_FB_CFB_IMAGEBLIT=y
923# 845#
924# Frame buffer hardware drivers 846# Frame buffer hardware drivers
925# 847#
926# CONFIG_FB_IMAGEON is not set
927# CONFIG_FB_S1D13XXX is not set 848# CONFIG_FB_S1D13XXX is not set
928CONFIG_FB_PXA=y 849CONFIG_FB_PXA=y
850# CONFIG_FB_PXA_SMARTPANEL is not set
929# CONFIG_FB_PXA_PARAMETERS is not set 851# CONFIG_FB_PXA_PARAMETERS is not set
930# CONFIG_FB_MBX is not set 852# CONFIG_FB_MBX is not set
931CONFIG_FB_W100=y 853CONFIG_FB_W100=y
854# CONFIG_FB_AM200EPD is not set
932# CONFIG_FB_VIRTUAL is not set 855# CONFIG_FB_VIRTUAL is not set
933# CONFIG_FB_VSFB is not set 856CONFIG_BACKLIGHT_LCD_SUPPORT=y
857CONFIG_LCD_CLASS_DEVICE=y
858# CONFIG_LCD_ILI9320 is not set
859# CONFIG_LCD_PLATFORM is not set
860CONFIG_BACKLIGHT_CLASS_DEVICE=y
861CONFIG_BACKLIGHT_CORGI=y
862
863#
864# Display device support
865#
866# CONFIG_DISPLAY_SUPPORT is not set
934 867
935# 868#
936# Console display driver support 869# Console display driver support
@@ -938,6 +871,7 @@ CONFIG_FB_W100=y
938# CONFIG_VGA_CONSOLE is not set 871# CONFIG_VGA_CONSOLE is not set
939CONFIG_DUMMY_CONSOLE=y 872CONFIG_DUMMY_CONSOLE=y
940CONFIG_FRAMEBUFFER_CONSOLE=y 873CONFIG_FRAMEBUFFER_CONSOLE=y
874# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
941# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 875# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
942CONFIG_FONTS=y 876CONFIG_FONTS=y
943# CONFIG_FONT_8x8 is not set 877# CONFIG_FONT_8x8 is not set
@@ -945,28 +879,13 @@ CONFIG_FONTS=y
945# CONFIG_FONT_6x11 is not set 879# CONFIG_FONT_6x11 is not set
946# CONFIG_FONT_7x14 is not set 880# CONFIG_FONT_7x14 is not set
947# CONFIG_FONT_PEARL_8x8 is not set 881# CONFIG_FONT_PEARL_8x8 is not set
948CONFIG_FONT_ACORN_8x8=y 882# CONFIG_FONT_ACORN_8x8 is not set
949# CONFIG_FONT_MINI_4x6 is not set 883CONFIG_FONT_MINI_4x6=y
950# CONFIG_FONT_SUN8x16 is not set 884# CONFIG_FONT_SUN8x16 is not set
951# CONFIG_FONT_SUN12x22 is not set 885# CONFIG_FONT_SUN12x22 is not set
952# CONFIG_FONT_10x18 is not set 886# CONFIG_FONT_10x18 is not set
953 887# CONFIG_LOGO is not set
954#
955# Logo configuration
956#
957CONFIG_LOGO=y
958# CONFIG_LOGO_LINUX_MONO is not set
959# CONFIG_LOGO_LINUX_VGA16 is not set
960CONFIG_LOGO_LINUX_CLUT224=y
961
962#
963# Sound
964#
965CONFIG_SOUND=y 888CONFIG_SOUND=y
966
967#
968# Advanced Linux Sound Architecture
969#
970CONFIG_SND=m 889CONFIG_SND=m
971CONFIG_SND_TIMER=m 890CONFIG_SND_TIMER=m
972CONFIG_SND_PCM=m 891CONFIG_SND_PCM=m
@@ -980,125 +899,75 @@ CONFIG_SND_SUPPORT_OLD_API=y
980CONFIG_SND_VERBOSE_PROCFS=y 899CONFIG_SND_VERBOSE_PROCFS=y
981CONFIG_SND_VERBOSE_PRINTK=y 900CONFIG_SND_VERBOSE_PRINTK=y
982# CONFIG_SND_DEBUG is not set 901# CONFIG_SND_DEBUG is not set
983 902CONFIG_SND_DRIVERS=y
984#
985# Generic devices
986#
987# CONFIG_SND_DUMMY is not set 903# CONFIG_SND_DUMMY is not set
988# CONFIG_SND_MTPAV is not set 904# CONFIG_SND_MTPAV is not set
989# CONFIG_SND_SERIAL_U16550 is not set 905# CONFIG_SND_SERIAL_U16550 is not set
990# CONFIG_SND_MPU401 is not set 906# CONFIG_SND_MPU401 is not set
991 907CONFIG_SND_ARM=y
992#
993# ALSA ARM devices
994#
995# CONFIG_SND_PXA2XX_AC97 is not set 908# CONFIG_SND_PXA2XX_AC97 is not set
996# CONFIG_SND_RECON is not set 909# CONFIG_SND_USB is not set
997 910# CONFIG_SND_PCMCIA is not set
998#
999# USB devices
1000#
1001# CONFIG_SND_USB_AUDIO is not set
1002
1003#
1004# PCMCIA devices
1005#
1006# CONFIG_SND_VXPOCKET is not set
1007# CONFIG_SND_PDAUDIOCF is not set
1008
1009#
1010# SoC audio support
1011#
1012CONFIG_SND_SOC_AC97_BUS=y
1013CONFIG_SND_SOC=m 911CONFIG_SND_SOC=m
1014 912CONFIG_SND_SOC_AC97_BUS=y
1015#
1016# SoC Platforms
1017#
1018
1019#
1020# SoC Audio for the Atmel AT91
1021#
1022
1023#
1024# SoC Audio for the Intel PXA2xx
1025#
1026CONFIG_SND_PXA2XX_SOC=m 913CONFIG_SND_PXA2XX_SOC=m
1027CONFIG_SND_PXA2XX_SOC_AC97=m 914CONFIG_SND_PXA2XX_SOC_AC97=m
1028CONFIG_SND_PXA2XX_SOC_E740_WM9705=m 915CONFIG_SND_PXA2XX_SOC_E800=m
1029CONFIG_SND_PXA2XX_SOC_E750_WM9705=m
1030CONFIG_SND_PXA2XX_SOC_E800_WM9712=m
1031# CONFIG_SND_PXA2XX_SOC_MAGICIAN is not set
1032# CONFIG_SND_PXA2XX_SOC_BLUEANGEL is not set
1033# CONFIG_SND_PXA2XX_SOC_H5000 is not set
1034
1035#
1036# SoC Audio for the Freescale i.MX
1037#
1038
1039#
1040# SoC Audio for the Samsung S3C24XX
1041#
1042# CONFIG_SND_SOC_AC97_CODEC is not set
1043# CONFIG_SND_SOC_WM8711 is not set
1044# CONFIG_SND_SOC_WM8510 is not set
1045# CONFIG_SND_SOC_WM8731 is not set
1046# CONFIG_SND_SOC_WM8750 is not set
1047# CONFIG_SND_SOC_WM8753 is not set
1048# CONFIG_SND_SOC_WM8772 is not set
1049# CONFIG_SND_SOC_WM8971 is not set
1050# CONFIG_SND_SOC_WM8956 is not set
1051# CONFIG_SND_SOC_WM8960 is not set
1052# CONFIG_SND_SOC_WM8976 is not set
1053# CONFIG_SND_SOC_WM8974 is not set
1054# CONFIG_SND_SOC_WM8980 is not set
1055CONFIG_SND_SOC_WM9705=m
1056# CONFIG_SND_SOC_WM9713 is not set
1057CONFIG_SND_SOC_WM9712=m 916CONFIG_SND_SOC_WM9712=m
1058# CONFIG_SND_SOC_UDA1380 is not set
1059# CONFIG_SND_SOC_AK4535 is not set
1060
1061#
1062# Open Sound System
1063#
1064# CONFIG_SOUND_PRIME is not set 917# CONFIG_SOUND_PRIME is not set
1065CONFIG_AC97_BUS=m 918CONFIG_AC97_BUS=m
919CONFIG_HID_SUPPORT=y
920CONFIG_HID=y
921# CONFIG_HID_DEBUG is not set
922# CONFIG_HIDRAW is not set
1066 923
1067# 924#
1068# HID Devices 925# USB Input Devices
1069# 926#
1070CONFIG_HID=y 927CONFIG_USB_HID=m
1071# CONFIG_HID_DEBUG is not set 928# CONFIG_USB_HIDINPUT_POWERBOOK is not set
929# CONFIG_HID_FF is not set
930# CONFIG_USB_HIDDEV is not set
1072 931
1073# 932#
1074# USB support 933# USB HID Boot Protocol drivers
1075# 934#
935# CONFIG_USB_KBD is not set
936# CONFIG_USB_MOUSE is not set
937CONFIG_USB_SUPPORT=y
1076CONFIG_USB_ARCH_HAS_HCD=y 938CONFIG_USB_ARCH_HAS_HCD=y
1077CONFIG_USB_ARCH_HAS_OHCI=y 939# CONFIG_USB_ARCH_HAS_OHCI is not set
1078# CONFIG_USB_ARCH_HAS_EHCI is not set 940# CONFIG_USB_ARCH_HAS_EHCI is not set
1079CONFIG_USB=m 941CONFIG_USB=m
1080CONFIG_USB_DEBUG=y 942# CONFIG_USB_DEBUG is not set
943# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1081 944
1082# 945#
1083# Miscellaneous USB options 946# Miscellaneous USB options
1084# 947#
1085CONFIG_USB_DEVICEFS=y 948# CONFIG_USB_DEVICEFS is not set
1086CONFIG_USB_DYNAMIC_MINORS=y 949CONFIG_USB_DEVICE_CLASS=y
950# CONFIG_USB_DYNAMIC_MINORS is not set
1087# CONFIG_USB_SUSPEND is not set 951# CONFIG_USB_SUSPEND is not set
1088# CONFIG_USB_OTG is not set 952# CONFIG_USB_OTG is not set
953# CONFIG_USB_OTG_WHITELIST is not set
954# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1089 955
1090# 956#
1091# USB Host Controller Drivers 957# USB Host Controller Drivers
1092# 958#
959# CONFIG_USB_C67X00_HCD is not set
1093# CONFIG_USB_ISP116X_HCD is not set 960# CONFIG_USB_ISP116X_HCD is not set
1094# CONFIG_USB_OHCI_HCD is not set 961# CONFIG_USB_ISP1760_HCD is not set
1095# CONFIG_USB_SL811_HCD is not set 962# CONFIG_USB_SL811_HCD is not set
963# CONFIG_USB_R8A66597_HCD is not set
1096 964
1097# 965#
1098# USB Device Class drivers 966# USB Device Class drivers
1099# 967#
1100# CONFIG_USB_ACM is not set 968# CONFIG_USB_ACM is not set
1101# CONFIG_USB_PRINTER is not set 969# CONFIG_USB_PRINTER is not set
970# CONFIG_USB_WDM is not set
1102 971
1103# 972#
1104# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1107,68 +976,19 @@ CONFIG_USB_DYNAMIC_MINORS=y
1107# 976#
1108# may also be needed; see USB_STORAGE Help for more information 977# may also be needed; see USB_STORAGE Help for more information
1109# 978#
1110CONFIG_USB_STORAGE=m 979# CONFIG_USB_STORAGE is not set
1111# CONFIG_USB_STORAGE_DEBUG is not set
1112# CONFIG_USB_STORAGE_DATAFAB is not set
1113# CONFIG_USB_STORAGE_FREECOM is not set
1114# CONFIG_USB_STORAGE_ISD200 is not set
1115# CONFIG_USB_STORAGE_DPCM is not set
1116# CONFIG_USB_STORAGE_USBAT is not set
1117# CONFIG_USB_STORAGE_SDDR09 is not set
1118# CONFIG_USB_STORAGE_SDDR55 is not set
1119# CONFIG_USB_STORAGE_JUMPSHOT is not set
1120# CONFIG_USB_STORAGE_ALAUDA is not set
1121# CONFIG_USB_STORAGE_KARMA is not set
1122# CONFIG_USB_LIBUSUAL is not set 980# CONFIG_USB_LIBUSUAL is not set
1123 981
1124# 982#
1125# USB Input Devices
1126#
1127# CONFIG_USB_HID is not set
1128
1129#
1130# USB HID Boot Protocol drivers
1131#
1132# CONFIG_USB_KBD is not set
1133# CONFIG_USB_MOUSE is not set
1134# CONFIG_USB_AIPTEK is not set
1135# CONFIG_USB_WACOM is not set
1136# CONFIG_USB_ACECAD is not set
1137# CONFIG_USB_KBTAB is not set
1138# CONFIG_USB_POWERMATE is not set
1139# CONFIG_USB_TOUCHSCREEN is not set
1140# CONFIG_USB_YEALINK is not set
1141# CONFIG_USB_XPAD is not set
1142# CONFIG_USB_ATI_REMOTE is not set
1143# CONFIG_USB_ATI_REMOTE2 is not set
1144# CONFIG_USB_KEYSPAN_REMOTE is not set
1145# CONFIG_USB_APPLETOUCH is not set
1146# CONFIG_USB_GTCO is not set
1147
1148#
1149# USB Imaging devices 983# USB Imaging devices
1150# 984#
1151# CONFIG_USB_MDC800 is not set 985# CONFIG_USB_MDC800 is not set
1152# CONFIG_USB_MICROTEK is not set 986# CONFIG_USB_MICROTEK is not set
1153 987CONFIG_USB_MON=y
1154#
1155# USB Network Adapters
1156#
1157# CONFIG_USB_CATC is not set
1158# CONFIG_USB_KAWETH is not set
1159# CONFIG_USB_PEGASUS is not set
1160# CONFIG_USB_RTL8150 is not set
1161# CONFIG_USB_USBNET_MII is not set
1162# CONFIG_USB_USBNET is not set
1163# CONFIG_USB_MON is not set
1164 988
1165# 989#
1166# USB port drivers 990# USB port drivers
1167# 991#
1168
1169#
1170# USB Serial Converter support
1171#
1172# CONFIG_USB_SERIAL is not set 992# CONFIG_USB_SERIAL is not set
1173 993
1174# 994#
@@ -1192,56 +1012,57 @@ CONFIG_USB_STORAGE=m
1192# CONFIG_USB_LD is not set 1012# CONFIG_USB_LD is not set
1193# CONFIG_USB_TRANCEVIBRATOR is not set 1013# CONFIG_USB_TRANCEVIBRATOR is not set
1194# CONFIG_USB_IOWARRIOR is not set 1014# CONFIG_USB_IOWARRIOR is not set
1195# CONFIG_USB_TEST is not set 1015# CONFIG_USB_ISIGHTFW is not set
1196
1197#
1198# USB DSL modem support
1199#
1200
1201#
1202# USB Gadget Support
1203#
1204CONFIG_USB_GADGET=y 1016CONFIG_USB_GADGET=y
1205# CONFIG_USB_GADGET_DEBUG_FILES is not set 1017# CONFIG_USB_GADGET_DEBUG_FILES is not set
1206CONFIG_USB_GADGET_SELECTED=y 1018CONFIG_USB_GADGET_SELECTED=y
1019# CONFIG_USB_GADGET_AMD5536UDC is not set
1020# CONFIG_USB_GADGET_ATMEL_USBA is not set
1021# CONFIG_USB_GADGET_FSL_USB2 is not set
1207# CONFIG_USB_GADGET_NET2280 is not set 1022# CONFIG_USB_GADGET_NET2280 is not set
1208CONFIG_USB_GADGET_PXA2XX=y 1023CONFIG_USB_GADGET_PXA25X=y
1209CONFIG_USB_PXA2XX=y 1024CONFIG_USB_PXA25X=y
1210# CONFIG_USB_PXA2XX_SMALL is not set 1025CONFIG_USB_PXA25X_SMALL=y
1026# CONFIG_USB_GADGET_M66592 is not set
1211# CONFIG_USB_GADGET_PXA27X is not set 1027# CONFIG_USB_GADGET_PXA27X is not set
1212# CONFIG_USB_GADGET_GOKU is not set 1028# CONFIG_USB_GADGET_GOKU is not set
1213# CONFIG_USB_GADGET_MQ11XX is not set
1214# CONFIG_USB_GADGET_LH7A40X is not set 1029# CONFIG_USB_GADGET_LH7A40X is not set
1215# CONFIG_USB_GADGET_S3C2410 is not set
1216# CONFIG_USB_GADGET_OMAP is not set 1030# CONFIG_USB_GADGET_OMAP is not set
1031# CONFIG_USB_GADGET_S3C2410 is not set
1217# CONFIG_USB_GADGET_AT91 is not set 1032# CONFIG_USB_GADGET_AT91 is not set
1218# CONFIG_USB_GADGET_DUMMY_HCD is not set 1033# CONFIG_USB_GADGET_DUMMY_HCD is not set
1219# CONFIG_USB_GADGET_DUALSPEED is not set 1034# CONFIG_USB_GADGET_DUALSPEED is not set
1220# CONFIG_USB_ZERO is not set 1035# CONFIG_USB_ZERO is not set
1221CONFIG_USB_ETH=y 1036CONFIG_USB_ETH=m
1222# CONFIG_USB_ETH_RNDIS is not set 1037# CONFIG_USB_ETH_RNDIS is not set
1223# CONFIG_USB_GADGETFS is not set 1038# CONFIG_USB_GADGETFS is not set
1224# CONFIG_USB_FILE_STORAGE is not set 1039# CONFIG_USB_FILE_STORAGE is not set
1225# CONFIG_USB_G_SERIAL is not set 1040# CONFIG_USB_G_SERIAL is not set
1226# CONFIG_USB_MIDI_GADGET is not set 1041# CONFIG_USB_MIDI_GADGET is not set
1227# CONFIG_USB_G_CHAR is not set 1042# CONFIG_USB_G_PRINTER is not set
1228# CONFIG_USB_PXA2XX_GPIO is not set 1043# CONFIG_USB_CDC_COMPOSITE is not set
1044CONFIG_MMC=y
1045# CONFIG_MMC_DEBUG is not set
1046CONFIG_MMC_UNSAFE_RESUME=y
1229 1047
1230# 1048#
1231# MMC/SD Card support 1049# MMC/SD Card Drivers
1232# 1050#
1233CONFIG_MMC=y
1234# CONFIG_MMC_DEBUG is not set
1235CONFIG_MMC_BLOCK=y 1051CONFIG_MMC_BLOCK=y
1236# CONFIG_MMC_PXA is not set 1052CONFIG_MMC_BLOCK_BOUNCE=y
1237CONFIG_MMC_TMIO=y 1053# CONFIG_SDIO_UART is not set
1238# CONFIG_MMC_SAMCOP is not set 1054# CONFIG_MMC_TEST is not set
1239 1055
1240# 1056#
1241# Real Time Clock 1057# MMC/SD Host Controller Drivers
1242# 1058#
1059# CONFIG_MMC_PXA is not set
1060# CONFIG_MMC_SDHCI is not set
1061# CONFIG_NEW_LEDS is not set
1243CONFIG_RTC_LIB=y 1062CONFIG_RTC_LIB=y
1244# CONFIG_RTC_CLASS is not set 1063# CONFIG_RTC_CLASS is not set
1064# CONFIG_DMADEVICES is not set
1065# CONFIG_UIO is not set
1245 1066
1246# 1067#
1247# File systems 1068# File systems
@@ -1255,14 +1076,11 @@ CONFIG_EXT2_FS=y
1255# CONFIG_JFS_FS is not set 1076# CONFIG_JFS_FS is not set
1256# CONFIG_FS_POSIX_ACL is not set 1077# CONFIG_FS_POSIX_ACL is not set
1257# CONFIG_XFS_FS is not set 1078# CONFIG_XFS_FS is not set
1258# CONFIG_GFS2_FS is not set
1259# CONFIG_OCFS2_FS is not set 1079# CONFIG_OCFS2_FS is not set
1260# CONFIG_MINIX_FS is not set 1080CONFIG_DNOTIFY=y
1261# CONFIG_ROMFS_FS is not set
1262CONFIG_INOTIFY=y 1081CONFIG_INOTIFY=y
1263CONFIG_INOTIFY_USER=y 1082CONFIG_INOTIFY_USER=y
1264# CONFIG_QUOTA is not set 1083# CONFIG_QUOTA is not set
1265CONFIG_DNOTIFY=y
1266# CONFIG_AUTOFS_FS is not set 1084# CONFIG_AUTOFS_FS is not set
1267# CONFIG_AUTOFS4_FS is not set 1085# CONFIG_AUTOFS4_FS is not set
1268# CONFIG_FUSE_FS is not set 1086# CONFIG_FUSE_FS is not set
@@ -1292,7 +1110,6 @@ CONFIG_SYSFS=y
1292CONFIG_TMPFS=y 1110CONFIG_TMPFS=y
1293# CONFIG_TMPFS_POSIX_ACL is not set 1111# CONFIG_TMPFS_POSIX_ACL is not set
1294# CONFIG_HUGETLB_PAGE is not set 1112# CONFIG_HUGETLB_PAGE is not set
1295CONFIG_RAMFS=y
1296# CONFIG_CONFIGFS_FS is not set 1113# CONFIG_CONFIGFS_FS is not set
1297 1114
1298# 1115#
@@ -1305,30 +1122,21 @@ CONFIG_RAMFS=y
1305# CONFIG_BEFS_FS is not set 1122# CONFIG_BEFS_FS is not set
1306# CONFIG_BFS_FS is not set 1123# CONFIG_BFS_FS is not set
1307# CONFIG_EFS_FS is not set 1124# CONFIG_EFS_FS is not set
1308CONFIG_JFFS2_FS=m 1125# CONFIG_JFFS2_FS is not set
1309CONFIG_JFFS2_FS_DEBUG=0
1310CONFIG_JFFS2_FS_WRITEBUFFER=y
1311# CONFIG_JFFS2_SUMMARY is not set
1312# CONFIG_JFFS2_FS_XATTR is not set
1313# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1314CONFIG_JFFS2_ZLIB=y
1315CONFIG_JFFS2_RTIME=y
1316# CONFIG_JFFS2_RUBIN is not set
1317# CONFIG_CRAMFS is not set 1126# CONFIG_CRAMFS is not set
1318# CONFIG_VXFS_FS is not set 1127# CONFIG_VXFS_FS is not set
1128# CONFIG_MINIX_FS is not set
1129# CONFIG_OMFS_FS is not set
1319# CONFIG_HPFS_FS is not set 1130# CONFIG_HPFS_FS is not set
1320# CONFIG_QNX4FS_FS is not set 1131# CONFIG_QNX4FS_FS is not set
1132# CONFIG_ROMFS_FS is not set
1321# CONFIG_SYSV_FS is not set 1133# CONFIG_SYSV_FS is not set
1322# CONFIG_UFS_FS is not set 1134# CONFIG_UFS_FS is not set
1323 1135CONFIG_NETWORK_FILESYSTEMS=y
1324#
1325# Network File Systems
1326#
1327CONFIG_NFS_FS=y 1136CONFIG_NFS_FS=y
1328CONFIG_NFS_V3=y 1137CONFIG_NFS_V3=y
1329# CONFIG_NFS_V3_ACL is not set 1138# CONFIG_NFS_V3_ACL is not set
1330# CONFIG_NFS_V4 is not set 1139# CONFIG_NFS_V4 is not set
1331# CONFIG_NFS_DIRECTIO is not set
1332# CONFIG_NFSD is not set 1140# CONFIG_NFSD is not set
1333CONFIG_LOCKD=y 1141CONFIG_LOCKD=y
1334CONFIG_LOCKD_V4=y 1142CONFIG_LOCKD_V4=y
@@ -1341,7 +1149,6 @@ CONFIG_SUNRPC=y
1341# CONFIG_NCP_FS is not set 1149# CONFIG_NCP_FS is not set
1342# CONFIG_CODA_FS is not set 1150# CONFIG_CODA_FS is not set
1343# CONFIG_AFS_FS is not set 1151# CONFIG_AFS_FS is not set
1344# CONFIG_9P_FS is not set
1345 1152
1346# 1153#
1347# Partition Types 1154# Partition Types
@@ -1363,10 +1170,7 @@ CONFIG_MSDOS_PARTITION=y
1363# CONFIG_SUN_PARTITION is not set 1170# CONFIG_SUN_PARTITION is not set
1364# CONFIG_KARMA_PARTITION is not set 1171# CONFIG_KARMA_PARTITION is not set
1365# CONFIG_EFI_PARTITION is not set 1172# CONFIG_EFI_PARTITION is not set
1366 1173# CONFIG_SYSV68_PARTITION is not set
1367#
1368# Native Language Support
1369#
1370CONFIG_NLS=y 1174CONFIG_NLS=y
1371CONFIG_NLS_DEFAULT="iso8859-1" 1175CONFIG_NLS_DEFAULT="iso8859-1"
1372CONFIG_NLS_CODEPAGE_437=y 1176CONFIG_NLS_CODEPAGE_437=y
@@ -1407,30 +1211,32 @@ CONFIG_NLS_ISO8859_1=y
1407# CONFIG_NLS_KOI8_R is not set 1211# CONFIG_NLS_KOI8_R is not set
1408# CONFIG_NLS_KOI8_U is not set 1212# CONFIG_NLS_KOI8_U is not set
1409# CONFIG_NLS_UTF8 is not set 1213# CONFIG_NLS_UTF8 is not set
1410
1411#
1412# Distributed Lock Manager
1413#
1414# CONFIG_DLM is not set 1214# CONFIG_DLM is not set
1415 1215
1416# 1216#
1417# Profiling support
1418#
1419# CONFIG_PROFILING is not set
1420
1421#
1422# Kernel hacking 1217# Kernel hacking
1423# 1218#
1424# CONFIG_PRINTK_TIME is not set 1219# CONFIG_PRINTK_TIME is not set
1425CONFIG_ENABLE_MUST_CHECK=y 1220# CONFIG_ENABLE_WARN_DEPRECATED is not set
1221# CONFIG_ENABLE_MUST_CHECK is not set
1222CONFIG_FRAME_WARN=1024
1426# CONFIG_MAGIC_SYSRQ is not set 1223# CONFIG_MAGIC_SYSRQ is not set
1427# CONFIG_UNUSED_SYMBOLS is not set 1224# CONFIG_UNUSED_SYMBOLS is not set
1428# CONFIG_DEBUG_FS is not set 1225# CONFIG_DEBUG_FS is not set
1429# CONFIG_HEADERS_CHECK is not set 1226# CONFIG_HEADERS_CHECK is not set
1430# CONFIG_DEBUG_KERNEL is not set 1227# CONFIG_DEBUG_KERNEL is not set
1431CONFIG_LOG_BUF_SHIFT=14
1432# CONFIG_DEBUG_BUGVERBOSE is not set 1228# CONFIG_DEBUG_BUGVERBOSE is not set
1229# CONFIG_DEBUG_MEMORY_INIT is not set
1433CONFIG_FRAME_POINTER=y 1230CONFIG_FRAME_POINTER=y
1231# CONFIG_LATENCYTOP is not set
1232CONFIG_HAVE_FTRACE=y
1233CONFIG_HAVE_DYNAMIC_FTRACE=y
1234# CONFIG_FTRACE is not set
1235# CONFIG_IRQSOFF_TRACER is not set
1236# CONFIG_SCHED_TRACER is not set
1237# CONFIG_CONTEXT_SWITCH_TRACER is not set
1238# CONFIG_SAMPLES is not set
1239CONFIG_HAVE_ARCH_KGDB=y
1434# CONFIG_DEBUG_USER is not set 1240# CONFIG_DEBUG_USER is not set
1435 1241
1436# 1242#
@@ -1438,61 +1244,102 @@ CONFIG_FRAME_POINTER=y
1438# 1244#
1439# CONFIG_KEYS is not set 1245# CONFIG_KEYS is not set
1440# CONFIG_SECURITY is not set 1246# CONFIG_SECURITY is not set
1247# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1248CONFIG_CRYPTO=y
1441 1249
1442# 1250#
1443# Cryptographic options 1251# Crypto core or helper
1444# 1252#
1445CONFIG_CRYPTO=y
1446CONFIG_CRYPTO_ALGAPI=m 1253CONFIG_CRYPTO_ALGAPI=m
1447CONFIG_CRYPTO_BLKCIPHER=m 1254CONFIG_CRYPTO_BLKCIPHER=m
1448CONFIG_CRYPTO_MANAGER=m 1255CONFIG_CRYPTO_MANAGER=m
1256# CONFIG_CRYPTO_GF128MUL is not set
1257# CONFIG_CRYPTO_NULL is not set
1258# CONFIG_CRYPTO_CRYPTD is not set
1259# CONFIG_CRYPTO_AUTHENC is not set
1260# CONFIG_CRYPTO_TEST is not set
1261
1262#
1263# Authenticated Encryption with Associated Data
1264#
1265# CONFIG_CRYPTO_CCM is not set
1266# CONFIG_CRYPTO_GCM is not set
1267# CONFIG_CRYPTO_SEQIV is not set
1268
1269#
1270# Block modes
1271#
1272CONFIG_CRYPTO_CBC=m
1273# CONFIG_CRYPTO_CTR is not set
1274# CONFIG_CRYPTO_CTS is not set
1275CONFIG_CRYPTO_ECB=m
1276# CONFIG_CRYPTO_LRW is not set
1277CONFIG_CRYPTO_PCBC=m
1278# CONFIG_CRYPTO_XTS is not set
1279
1280#
1281# Hash modes
1282#
1449# CONFIG_CRYPTO_HMAC is not set 1283# CONFIG_CRYPTO_HMAC is not set
1450# CONFIG_CRYPTO_XCBC is not set 1284# CONFIG_CRYPTO_XCBC is not set
1451# CONFIG_CRYPTO_NULL is not set 1285
1286#
1287# Digest
1288#
1289# CONFIG_CRYPTO_CRC32C is not set
1452# CONFIG_CRYPTO_MD4 is not set 1290# CONFIG_CRYPTO_MD4 is not set
1453# CONFIG_CRYPTO_MD5 is not set 1291# CONFIG_CRYPTO_MD5 is not set
1292CONFIG_CRYPTO_MICHAEL_MIC=m
1293# CONFIG_CRYPTO_RMD128 is not set
1294# CONFIG_CRYPTO_RMD160 is not set
1295# CONFIG_CRYPTO_RMD256 is not set
1296# CONFIG_CRYPTO_RMD320 is not set
1454# CONFIG_CRYPTO_SHA1 is not set 1297# CONFIG_CRYPTO_SHA1 is not set
1455# CONFIG_CRYPTO_SHA256 is not set 1298# CONFIG_CRYPTO_SHA256 is not set
1456# CONFIG_CRYPTO_SHA512 is not set 1299# CONFIG_CRYPTO_SHA512 is not set
1457# CONFIG_CRYPTO_WP512 is not set
1458# CONFIG_CRYPTO_TGR192 is not set 1300# CONFIG_CRYPTO_TGR192 is not set
1459# CONFIG_CRYPTO_GF128MUL is not set 1301# CONFIG_CRYPTO_WP512 is not set
1460CONFIG_CRYPTO_ECB=m 1302
1461CONFIG_CRYPTO_CBC=m 1303#
1462CONFIG_CRYPTO_PCBC=m 1304# Ciphers
1463# CONFIG_CRYPTO_LRW is not set 1305#
1464# CONFIG_CRYPTO_DES is not set 1306CONFIG_CRYPTO_AES=m
1465# CONFIG_CRYPTO_FCRYPT is not set 1307# CONFIG_CRYPTO_ANUBIS is not set
1308CONFIG_CRYPTO_ARC4=m
1466# CONFIG_CRYPTO_BLOWFISH is not set 1309# CONFIG_CRYPTO_BLOWFISH is not set
1467# CONFIG_CRYPTO_TWOFISH is not set 1310# CONFIG_CRYPTO_CAMELLIA is not set
1468# CONFIG_CRYPTO_SERPENT is not set
1469# CONFIG_CRYPTO_AES is not set
1470# CONFIG_CRYPTO_CAST5 is not set 1311# CONFIG_CRYPTO_CAST5 is not set
1471# CONFIG_CRYPTO_CAST6 is not set 1312# CONFIG_CRYPTO_CAST6 is not set
1472# CONFIG_CRYPTO_TEA is not set 1313# CONFIG_CRYPTO_DES is not set
1473CONFIG_CRYPTO_ARC4=m 1314# CONFIG_CRYPTO_FCRYPT is not set
1474# CONFIG_CRYPTO_KHAZAD is not set 1315# CONFIG_CRYPTO_KHAZAD is not set
1475# CONFIG_CRYPTO_ANUBIS is not set 1316# CONFIG_CRYPTO_SALSA20 is not set
1476# CONFIG_CRYPTO_DEFLATE is not set 1317# CONFIG_CRYPTO_SEED is not set
1477# CONFIG_CRYPTO_MICHAEL_MIC is not set 1318# CONFIG_CRYPTO_SERPENT is not set
1478# CONFIG_CRYPTO_CRC32C is not set 1319# CONFIG_CRYPTO_TEA is not set
1479# CONFIG_CRYPTO_CAMELLIA is not set 1320# CONFIG_CRYPTO_TWOFISH is not set
1480# CONFIG_CRYPTO_TEST is not set
1481 1321
1482# 1322#
1483# Hardware crypto devices 1323# Compression
1484# 1324#
1325# CONFIG_CRYPTO_DEFLATE is not set
1326# CONFIG_CRYPTO_LZO is not set
1327CONFIG_CRYPTO_HW=y
1485 1328
1486# 1329#
1487# Library routines 1330# Library routines
1488# 1331#
1489CONFIG_BITREVERSE=y 1332CONFIG_BITREVERSE=y
1490# CONFIG_CRC_CCITT is not set 1333# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1334# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1335CONFIG_CRC_CCITT=y
1491# CONFIG_CRC16 is not set 1336# CONFIG_CRC16 is not set
1337# CONFIG_CRC_T10DIF is not set
1338# CONFIG_CRC_ITU_T is not set
1492CONFIG_CRC32=y 1339CONFIG_CRC32=y
1340# CONFIG_CRC7 is not set
1493# CONFIG_LIBCRC32C is not set 1341# CONFIG_LIBCRC32C is not set
1494CONFIG_ZLIB_INFLATE=m
1495CONFIG_ZLIB_DEFLATE=m
1496CONFIG_PLIST=y 1342CONFIG_PLIST=y
1497CONFIG_HAS_IOMEM=y 1343CONFIG_HAS_IOMEM=y
1498CONFIG_HAS_IOPORT=y 1344CONFIG_HAS_IOPORT=y
1345CONFIG_HAS_DMA=y
diff --git a/arch/arm/mach-at91/at91cap9_devices.c b/arch/arm/mach-at91/at91cap9_devices.c
index 747b9dedab88..dc8b40783d94 100644
--- a/arch/arm/mach-at91/at91cap9_devices.c
+++ b/arch/arm/mach-at91/at91cap9_devices.c
@@ -377,7 +377,7 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
377 * -------------------------------------------------------------------- */ 377 * -------------------------------------------------------------------- */
378 378
379#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE) 379#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE)
380static struct at91_nand_data nand_data; 380static struct atmel_nand_data nand_data;
381 381
382#define NAND_BASE AT91_CHIPSELECT_3 382#define NAND_BASE AT91_CHIPSELECT_3
383 383
@@ -395,7 +395,7 @@ static struct resource nand_resources[] = {
395}; 395};
396 396
397static struct platform_device at91cap9_nand_device = { 397static struct platform_device at91cap9_nand_device = {
398 .name = "at91_nand", 398 .name = "atmel_nand",
399 .id = -1, 399 .id = -1,
400 .dev = { 400 .dev = {
401 .platform_data = &nand_data, 401 .platform_data = &nand_data,
@@ -404,7 +404,7 @@ static struct platform_device at91cap9_nand_device = {
404 .num_resources = ARRAY_SIZE(nand_resources), 404 .num_resources = ARRAY_SIZE(nand_resources),
405}; 405};
406 406
407void __init at91_add_device_nand(struct at91_nand_data *data) 407void __init at91_add_device_nand(struct atmel_nand_data *data)
408{ 408{
409 unsigned long csa, mode; 409 unsigned long csa, mode;
410 410
@@ -445,7 +445,7 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
445 platform_device_register(&at91cap9_nand_device); 445 platform_device_register(&at91cap9_nand_device);
446} 446}
447#else 447#else
448void __init at91_add_device_nand(struct at91_nand_data *data) {} 448void __init at91_add_device_nand(struct atmel_nand_data *data) {}
449#endif 449#endif
450 450
451 451
diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c
index de19bee83f75..8ced9bc82099 100644
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
@@ -369,7 +369,7 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
369 * -------------------------------------------------------------------- */ 369 * -------------------------------------------------------------------- */
370 370
371#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE) 371#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE)
372static struct at91_nand_data nand_data; 372static struct atmel_nand_data nand_data;
373 373
374#define NAND_BASE AT91_CHIPSELECT_3 374#define NAND_BASE AT91_CHIPSELECT_3
375 375
@@ -382,7 +382,7 @@ static struct resource nand_resources[] = {
382}; 382};
383 383
384static struct platform_device at91rm9200_nand_device = { 384static struct platform_device at91rm9200_nand_device = {
385 .name = "at91_nand", 385 .name = "atmel_nand",
386 .id = -1, 386 .id = -1,
387 .dev = { 387 .dev = {
388 .platform_data = &nand_data, 388 .platform_data = &nand_data,
@@ -391,7 +391,7 @@ static struct platform_device at91rm9200_nand_device = {
391 .num_resources = ARRAY_SIZE(nand_resources), 391 .num_resources = ARRAY_SIZE(nand_resources),
392}; 392};
393 393
394void __init at91_add_device_nand(struct at91_nand_data *data) 394void __init at91_add_device_nand(struct atmel_nand_data *data)
395{ 395{
396 unsigned int csa; 396 unsigned int csa;
397 397
@@ -429,7 +429,7 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
429 platform_device_register(&at91rm9200_nand_device); 429 platform_device_register(&at91rm9200_nand_device);
430} 430}
431#else 431#else
432void __init at91_add_device_nand(struct at91_nand_data *data) {} 432void __init at91_add_device_nand(struct atmel_nand_data *data) {}
433#endif 433#endif
434 434
435 435
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index 86cba4ac29b1..cae5f52f1278 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -284,7 +284,7 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
284 * -------------------------------------------------------------------- */ 284 * -------------------------------------------------------------------- */
285 285
286#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE) 286#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE)
287static struct at91_nand_data nand_data; 287static struct atmel_nand_data nand_data;
288 288
289#define NAND_BASE AT91_CHIPSELECT_3 289#define NAND_BASE AT91_CHIPSELECT_3
290 290
@@ -302,7 +302,7 @@ static struct resource nand_resources[] = {
302}; 302};
303 303
304static struct platform_device at91sam9260_nand_device = { 304static struct platform_device at91sam9260_nand_device = {
305 .name = "at91_nand", 305 .name = "atmel_nand",
306 .id = -1, 306 .id = -1,
307 .dev = { 307 .dev = {
308 .platform_data = &nand_data, 308 .platform_data = &nand_data,
@@ -311,7 +311,7 @@ static struct platform_device at91sam9260_nand_device = {
311 .num_resources = ARRAY_SIZE(nand_resources), 311 .num_resources = ARRAY_SIZE(nand_resources),
312}; 312};
313 313
314void __init at91_add_device_nand(struct at91_nand_data *data) 314void __init at91_add_device_nand(struct atmel_nand_data *data)
315{ 315{
316 unsigned long csa, mode; 316 unsigned long csa, mode;
317 317
@@ -373,7 +373,7 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
373 platform_device_register(&at91sam9260_nand_device); 373 platform_device_register(&at91sam9260_nand_device);
374} 374}
375#else 375#else
376void __init at91_add_device_nand(struct at91_nand_data *data) {} 376void __init at91_add_device_nand(struct atmel_nand_data *data) {}
377#endif 377#endif
378 378
379 379
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
index ec1891375dfb..483d436af22d 100644
--- a/arch/arm/mach-at91/at91sam9261_devices.c
+++ b/arch/arm/mach-at91/at91sam9261_devices.c
@@ -199,7 +199,7 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
199 * -------------------------------------------------------------------- */ 199 * -------------------------------------------------------------------- */
200 200
201#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE) 201#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE)
202static struct at91_nand_data nand_data; 202static struct atmel_nand_data nand_data;
203 203
204#define NAND_BASE AT91_CHIPSELECT_3 204#define NAND_BASE AT91_CHIPSELECT_3
205 205
@@ -211,8 +211,8 @@ static struct resource nand_resources[] = {
211 } 211 }
212}; 212};
213 213
214static struct platform_device at91_nand_device = { 214static struct platform_device atmel_nand_device = {
215 .name = "at91_nand", 215 .name = "atmel_nand",
216 .id = -1, 216 .id = -1,
217 .dev = { 217 .dev = {
218 .platform_data = &nand_data, 218 .platform_data = &nand_data,
@@ -221,7 +221,7 @@ static struct platform_device at91_nand_device = {
221 .num_resources = ARRAY_SIZE(nand_resources), 221 .num_resources = ARRAY_SIZE(nand_resources),
222}; 222};
223 223
224void __init at91_add_device_nand(struct at91_nand_data *data) 224void __init at91_add_device_nand(struct atmel_nand_data *data)
225{ 225{
226 unsigned long csa, mode; 226 unsigned long csa, mode;
227 227
@@ -262,11 +262,11 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
262 at91_set_A_periph(AT91_PIN_PC1, 0); /* NANDWE */ 262 at91_set_A_periph(AT91_PIN_PC1, 0); /* NANDWE */
263 263
264 nand_data = *data; 264 nand_data = *data;
265 platform_device_register(&at91_nand_device); 265 platform_device_register(&atmel_nand_device);
266} 266}
267 267
268#else 268#else
269void __init at91_add_device_nand(struct at91_nand_data *data) {} 269void __init at91_add_device_nand(struct atmel_nand_data *data) {}
270#endif 270#endif
271 271
272 272
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index 8a81f76f0200..9762b15f658a 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -353,7 +353,7 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
353 * -------------------------------------------------------------------- */ 353 * -------------------------------------------------------------------- */
354 354
355#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE) 355#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE)
356static struct at91_nand_data nand_data; 356static struct atmel_nand_data nand_data;
357 357
358#define NAND_BASE AT91_CHIPSELECT_3 358#define NAND_BASE AT91_CHIPSELECT_3
359 359
@@ -371,7 +371,7 @@ static struct resource nand_resources[] = {
371}; 371};
372 372
373static struct platform_device at91sam9263_nand_device = { 373static struct platform_device at91sam9263_nand_device = {
374 .name = "at91_nand", 374 .name = "atmel_nand",
375 .id = -1, 375 .id = -1,
376 .dev = { 376 .dev = {
377 .platform_data = &nand_data, 377 .platform_data = &nand_data,
@@ -380,7 +380,7 @@ static struct platform_device at91sam9263_nand_device = {
380 .num_resources = ARRAY_SIZE(nand_resources), 380 .num_resources = ARRAY_SIZE(nand_resources),
381}; 381};
382 382
383void __init at91_add_device_nand(struct at91_nand_data *data) 383void __init at91_add_device_nand(struct atmel_nand_data *data)
384{ 384{
385 unsigned long csa, mode; 385 unsigned long csa, mode;
386 386
@@ -421,7 +421,7 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
421 platform_device_register(&at91sam9263_nand_device); 421 platform_device_register(&at91sam9263_nand_device);
422} 422}
423#else 423#else
424void __init at91_add_device_nand(struct at91_nand_data *data) {} 424void __init at91_add_device_nand(struct atmel_nand_data *data) {}
425#endif 425#endif
426 426
427 427
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c
index ae28101e7542..5f3094870cad 100644
--- a/arch/arm/mach-at91/at91sam9rl_devices.c
+++ b/arch/arm/mach-at91/at91sam9rl_devices.c
@@ -195,7 +195,7 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
195 * -------------------------------------------------------------------- */ 195 * -------------------------------------------------------------------- */
196 196
197#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE) 197#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE)
198static struct at91_nand_data nand_data; 198static struct atmel_nand_data nand_data;
199 199
200#define NAND_BASE AT91_CHIPSELECT_3 200#define NAND_BASE AT91_CHIPSELECT_3
201 201
@@ -212,8 +212,8 @@ static struct resource nand_resources[] = {
212 } 212 }
213}; 213};
214 214
215static struct platform_device at91_nand_device = { 215static struct platform_device atmel_nand_device = {
216 .name = "at91_nand", 216 .name = "atmel_nand",
217 .id = -1, 217 .id = -1,
218 .dev = { 218 .dev = {
219 .platform_data = &nand_data, 219 .platform_data = &nand_data,
@@ -222,7 +222,7 @@ static struct platform_device at91_nand_device = {
222 .num_resources = ARRAY_SIZE(nand_resources), 222 .num_resources = ARRAY_SIZE(nand_resources),
223}; 223};
224 224
225void __init at91_add_device_nand(struct at91_nand_data *data) 225void __init at91_add_device_nand(struct atmel_nand_data *data)
226{ 226{
227 unsigned long csa; 227 unsigned long csa;
228 228
@@ -259,11 +259,11 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
259 at91_set_A_periph(AT91_PIN_PB5, 0); /* NANDWE */ 259 at91_set_A_periph(AT91_PIN_PB5, 0); /* NANDWE */
260 260
261 nand_data = *data; 261 nand_data = *data;
262 platform_device_register(&at91_nand_device); 262 platform_device_register(&atmel_nand_device);
263} 263}
264 264
265#else 265#else
266void __init at91_add_device_nand(struct at91_nand_data *data) {} 266void __init at91_add_device_nand(struct atmel_nand_data *data) {}
267#endif 267#endif
268 268
269 269
diff --git a/arch/arm/mach-at91/board-cam60.c b/arch/arm/mach-at91/board-cam60.c
index b22a1a004055..af2c33aff1a8 100644
--- a/arch/arm/mach-at91/board-cam60.c
+++ b/arch/arm/mach-at91/board-cam60.c
@@ -142,7 +142,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
142 return cam60_nand_partition; 142 return cam60_nand_partition;
143} 143}
144 144
145static struct at91_nand_data __initdata cam60_nand_data = { 145static struct atmel_nand_data __initdata cam60_nand_data = {
146 .ale = 21, 146 .ale = 21,
147 .cle = 22, 147 .cle = 22,
148 // .det_pin = ... not there 148 // .det_pin = ... not there
diff --git a/arch/arm/mach-at91/board-cap9adk.c b/arch/arm/mach-at91/board-cap9adk.c
index 8a2a958639db..117cf6c9afce 100644
--- a/arch/arm/mach-at91/board-cap9adk.c
+++ b/arch/arm/mach-at91/board-cap9adk.c
@@ -181,7 +181,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
181 return cap9adk_nand_partitions; 181 return cap9adk_nand_partitions;
182} 182}
183 183
184static struct at91_nand_data __initdata cap9adk_nand_data = { 184static struct atmel_nand_data __initdata cap9adk_nand_data = {
185 .ale = 21, 185 .ale = 21,
186 .cle = 22, 186 .cle = 22,
187// .det_pin = ... not connected 187// .det_pin = ... not connected
@@ -330,10 +330,10 @@ static void __init cap9adk_board_init(void)
330 /* Serial */ 330 /* Serial */
331 at91_add_device_serial(); 331 at91_add_device_serial();
332 /* USB Host */ 332 /* USB Host */
333 set_irq_type(AT91CAP9_ID_UHP, IRQT_HIGH); 333 set_irq_type(AT91CAP9_ID_UHP, IRQ_TYPE_LEVEL_HIGH);
334 at91_add_device_usbh(&cap9adk_usbh_data); 334 at91_add_device_usbh(&cap9adk_usbh_data);
335 /* USB HS */ 335 /* USB HS */
336 set_irq_type(AT91CAP9_ID_UDPHS, IRQT_HIGH); 336 set_irq_type(AT91CAP9_ID_UDPHS, IRQ_TYPE_LEVEL_HIGH);
337 at91_add_device_usba(&cap9adk_usba_udc_data); 337 at91_add_device_usba(&cap9adk_usba_udc_data);
338 /* SPI */ 338 /* SPI */
339 at91_add_device_spi(cap9adk_spi_devices, ARRAY_SIZE(cap9adk_spi_devices)); 339 at91_add_device_spi(cap9adk_spi_devices, ARRAY_SIZE(cap9adk_spi_devices));
@@ -350,7 +350,7 @@ static void __init cap9adk_board_init(void)
350 /* I2C */ 350 /* I2C */
351 at91_add_device_i2c(NULL, 0); 351 at91_add_device_i2c(NULL, 0);
352 /* LCD Controller */ 352 /* LCD Controller */
353 set_irq_type(AT91CAP9_ID_LCDC, IRQT_HIGH); 353 set_irq_type(AT91CAP9_ID_LCDC, IRQ_TYPE_LEVEL_HIGH);
354 at91_add_device_lcdc(&cap9adk_lcdc_data); 354 at91_add_device_lcdc(&cap9adk_lcdc_data);
355 /* AC97 */ 355 /* AC97 */
356 at91_add_device_ac97(&cap9adk_ac97_data); 356 at91_add_device_ac97(&cap9adk_ac97_data);
diff --git a/arch/arm/mach-at91/board-dk.c b/arch/arm/mach-at91/board-dk.c
index dab958d25926..02a70b2f355b 100644
--- a/arch/arm/mach-at91/board-dk.c
+++ b/arch/arm/mach-at91/board-dk.c
@@ -147,7 +147,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
147 return dk_nand_partition; 147 return dk_nand_partition;
148} 148}
149 149
150static struct at91_nand_data __initdata dk_nand_data = { 150static struct atmel_nand_data __initdata dk_nand_data = {
151 .ale = 22, 151 .ale = 22,
152 .cle = 21, 152 .cle = 21,
153 .det_pin = AT91_PIN_PB1, 153 .det_pin = AT91_PIN_PB1,
diff --git a/arch/arm/mach-at91/board-kb9202.c b/arch/arm/mach-at91/board-kb9202.c
index cb065febd95e..082ed59365a4 100644
--- a/arch/arm/mach-at91/board-kb9202.c
+++ b/arch/arm/mach-at91/board-kb9202.c
@@ -105,7 +105,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
105 return kb9202_nand_partition; 105 return kb9202_nand_partition;
106} 106}
107 107
108static struct at91_nand_data __initdata kb9202_nand_data = { 108static struct atmel_nand_data __initdata kb9202_nand_data = {
109 .ale = 22, 109 .ale = 22,
110 .cle = 21, 110 .cle = 21,
111 // .det_pin = ... not there 111 // .det_pin = ... not there
diff --git a/arch/arm/mach-at91/board-sam9-l9260.c b/arch/arm/mach-at91/board-sam9-l9260.c
index 8f76af5e219a..57a6221943ed 100644
--- a/arch/arm/mach-at91/board-sam9-l9260.c
+++ b/arch/arm/mach-at91/board-sam9-l9260.c
@@ -141,7 +141,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
141 return ek_nand_partition; 141 return ek_nand_partition;
142} 142}
143 143
144static struct at91_nand_data __initdata ek_nand_data = { 144static struct atmel_nand_data __initdata ek_nand_data = {
145 .ale = 21, 145 .ale = 21,
146 .cle = 22, 146 .cle = 22,
147// .det_pin = ... not connected 147// .det_pin = ... not connected
diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c
index 4d1d9c777084..6a680795c3c8 100644
--- a/arch/arm/mach-at91/board-sam9260ek.c
+++ b/arch/arm/mach-at91/board-sam9260ek.c
@@ -178,7 +178,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
178 return ek_nand_partition; 178 return ek_nand_partition;
179} 179}
180 180
181static struct at91_nand_data __initdata ek_nand_data = { 181static struct atmel_nand_data __initdata ek_nand_data = {
182 .ale = 21, 182 .ale = 21,
183 .cle = 22, 183 .cle = 22,
184// .det_pin = ... not connected 184// .det_pin = ... not connected
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
index 08382c0df221..43dfbd0d543a 100644
--- a/arch/arm/mach-at91/board-sam9261ek.c
+++ b/arch/arm/mach-at91/board-sam9261ek.c
@@ -183,7 +183,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
183 return ek_nand_partition; 183 return ek_nand_partition;
184} 184}
185 185
186static struct at91_nand_data __initdata ek_nand_data = { 186static struct atmel_nand_data __initdata ek_nand_data = {
187 .ale = 22, 187 .ale = 22,
188 .cle = 21, 188 .cle = 21,
189// .det_pin = ... not connected 189// .det_pin = ... not connected
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
index b4cd5d0ed597..6605a0980117 100644
--- a/arch/arm/mach-at91/board-sam9263ek.c
+++ b/arch/arm/mach-at91/board-sam9263ek.c
@@ -187,7 +187,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
187 return ek_nand_partition; 187 return ek_nand_partition;
188} 188}
189 189
190static struct at91_nand_data __initdata ek_nand_data = { 190static struct atmel_nand_data __initdata ek_nand_data = {
191 .ale = 21, 191 .ale = 21,
192 .cle = 22, 192 .cle = 22,
193// .det_pin = ... not connected 193// .det_pin = ... not connected
diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
index b6a70fc735c3..66e77bb2e079 100644
--- a/arch/arm/mach-at91/board-sam9rlek.c
+++ b/arch/arm/mach-at91/board-sam9rlek.c
@@ -96,7 +96,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
96 return ek_nand_partition; 96 return ek_nand_partition;
97} 97}
98 98
99static struct at91_nand_data __initdata ek_nand_data = { 99static struct atmel_nand_data __initdata ek_nand_data = {
100 .ale = 21, 100 .ale = 21,
101 .cle = 22, 101 .cle = 22,
102// .det_pin = ... not connected 102// .det_pin = ... not connected
diff --git a/arch/arm/mach-at91/board-yl-9200.c b/arch/arm/mach-at91/board-yl-9200.c
index 7079050ab88d..bbbfd06f5e0c 100755..100644
--- a/arch/arm/mach-at91/board-yl-9200.c
+++ b/arch/arm/mach-at91/board-yl-9200.c
@@ -180,7 +180,7 @@ static struct mtd_partition * __init nand_partitions(int size, int *num_partitio
180 return yl9200_nand_partition; 180 return yl9200_nand_partition;
181} 181}
182 182
183static struct at91_nand_data __initdata yl9200_nand_data = { 183static struct atmel_nand_data __initdata yl9200_nand_data = {
184 .ale = 6, 184 .ale = 6,
185 .cle = 7, 185 .cle = 7,
186 // .det_pin = ... not connected 186 // .det_pin = ... not connected
diff --git a/arch/arm/mach-at91/irq.c b/arch/arm/mach-at91/irq.c
index 78a5cdb746dc..ca87587b2b4b 100644
--- a/arch/arm/mach-at91/irq.c
+++ b/arch/arm/mach-at91/irq.c
@@ -56,19 +56,19 @@ static int at91_aic_set_type(unsigned irq, unsigned type)
56 unsigned int smr, srctype; 56 unsigned int smr, srctype;
57 57
58 switch (type) { 58 switch (type) {
59 case IRQT_HIGH: 59 case IRQ_TYPE_LEVEL_HIGH:
60 srctype = AT91_AIC_SRCTYPE_HIGH; 60 srctype = AT91_AIC_SRCTYPE_HIGH;
61 break; 61 break;
62 case IRQT_RISING: 62 case IRQ_TYPE_EDGE_RISING:
63 srctype = AT91_AIC_SRCTYPE_RISING; 63 srctype = AT91_AIC_SRCTYPE_RISING;
64 break; 64 break;
65 case IRQT_LOW: 65 case IRQ_TYPE_LEVEL_LOW:
66 if ((irq == AT91_ID_FIQ) || is_extern_irq(irq)) /* only supported on external interrupts */ 66 if ((irq == AT91_ID_FIQ) || is_extern_irq(irq)) /* only supported on external interrupts */
67 srctype = AT91_AIC_SRCTYPE_LOW; 67 srctype = AT91_AIC_SRCTYPE_LOW;
68 else 68 else
69 return -EINVAL; 69 return -EINVAL;
70 break; 70 break;
71 case IRQT_FALLING: 71 case IRQ_TYPE_EDGE_FALLING:
72 if ((irq == AT91_ID_FIQ) || is_extern_irq(irq)) /* only supported on external interrupts */ 72 if ((irq == AT91_ID_FIQ) || is_extern_irq(irq)) /* only supported on external interrupts */
73 srctype = AT91_AIC_SRCTYPE_FALLING; 73 srctype = AT91_AIC_SRCTYPE_FALLING;
74 else 74 else
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index 1d7bca6aa441..5fed57608507 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -226,7 +226,7 @@ static void ep93xx_gpio_irq_ack(unsigned int irq)
226 int port = line >> 3; 226 int port = line >> 3;
227 int port_mask = 1 << (line & 7); 227 int port_mask = 1 << (line & 7);
228 228
229 if ((irq_desc[irq].status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) { 229 if ((irq_desc[irq].status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
230 gpio_int_type2[port] ^= port_mask; /* switch edge direction */ 230 gpio_int_type2[port] ^= port_mask; /* switch edge direction */
231 ep93xx_gpio_update_int_params(port); 231 ep93xx_gpio_update_int_params(port);
232 } 232 }
@@ -240,7 +240,7 @@ static void ep93xx_gpio_irq_mask_ack(unsigned int irq)
240 int port = line >> 3; 240 int port = line >> 3;
241 int port_mask = 1 << (line & 7); 241 int port_mask = 1 << (line & 7);
242 242
243 if ((irq_desc[irq].status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) 243 if ((irq_desc[irq].status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
244 gpio_int_type2[port] ^= port_mask; /* switch edge direction */ 244 gpio_int_type2[port] ^= port_mask; /* switch edge direction */
245 245
246 gpio_int_unmasked[port] &= ~port_mask; 246 gpio_int_unmasked[port] &= ~port_mask;
@@ -283,27 +283,27 @@ static int ep93xx_gpio_irq_type(unsigned int irq, unsigned int type)
283 gpio_direction_input(gpio); 283 gpio_direction_input(gpio);
284 284
285 switch (type) { 285 switch (type) {
286 case IRQT_RISING: 286 case IRQ_TYPE_EDGE_RISING:
287 gpio_int_type1[port] |= port_mask; 287 gpio_int_type1[port] |= port_mask;
288 gpio_int_type2[port] |= port_mask; 288 gpio_int_type2[port] |= port_mask;
289 desc->handle_irq = handle_edge_irq; 289 desc->handle_irq = handle_edge_irq;
290 break; 290 break;
291 case IRQT_FALLING: 291 case IRQ_TYPE_EDGE_FALLING:
292 gpio_int_type1[port] |= port_mask; 292 gpio_int_type1[port] |= port_mask;
293 gpio_int_type2[port] &= ~port_mask; 293 gpio_int_type2[port] &= ~port_mask;
294 desc->handle_irq = handle_edge_irq; 294 desc->handle_irq = handle_edge_irq;
295 break; 295 break;
296 case IRQT_HIGH: 296 case IRQ_TYPE_LEVEL_HIGH:
297 gpio_int_type1[port] &= ~port_mask; 297 gpio_int_type1[port] &= ~port_mask;
298 gpio_int_type2[port] |= port_mask; 298 gpio_int_type2[port] |= port_mask;
299 desc->handle_irq = handle_level_irq; 299 desc->handle_irq = handle_level_irq;
300 break; 300 break;
301 case IRQT_LOW: 301 case IRQ_TYPE_LEVEL_LOW:
302 gpio_int_type1[port] &= ~port_mask; 302 gpio_int_type1[port] &= ~port_mask;
303 gpio_int_type2[port] &= ~port_mask; 303 gpio_int_type2[port] &= ~port_mask;
304 desc->handle_irq = handle_level_irq; 304 desc->handle_irq = handle_level_irq;
305 break; 305 break;
306 case IRQT_BOTHEDGE: 306 case IRQ_TYPE_EDGE_BOTH:
307 gpio_int_type1[port] |= port_mask; 307 gpio_int_type1[port] |= port_mask;
308 /* set initial polarity based on current input level */ 308 /* set initial polarity based on current input level */
309 if (gpio_get_value(gpio)) 309 if (gpio_get_value(gpio))
diff --git a/arch/arm/mach-imx/irq.c b/arch/arm/mach-imx/irq.c
index e6695c4e623b..e1b1f028b930 100644
--- a/arch/arm/mach-imx/irq.c
+++ b/arch/arm/mach-imx/irq.c
@@ -111,7 +111,7 @@ imx_gpio_irq_type(unsigned int _irq, unsigned int type)
111 reg = irq >> 5; 111 reg = irq >> 5;
112 bit = 1 << (irq % 32); 112 bit = 1 << (irq % 32);
113 113
114 if (type == IRQT_PROBE) { 114 if (type == IRQ_TYPE_PROBE) {
115 /* Don't mess with enabled GPIOs using preconfigured edges or 115 /* Don't mess with enabled GPIOs using preconfigured edges or
116 GPIOs set to alternate function during probe */ 116 GPIOs set to alternate function during probe */
117 /* TODO: support probe */ 117 /* TODO: support probe */
@@ -120,7 +120,7 @@ imx_gpio_irq_type(unsigned int _irq, unsigned int type)
120// return 0; 120// return 0;
121// if (GAFR(gpio) & (0x3 << (((gpio) & 0xf)*2))) 121// if (GAFR(gpio) & (0x3 << (((gpio) & 0xf)*2)))
122// return 0; 122// return 0;
123// type = __IRQT_RISEDGE | __IRQT_FALEDGE; 123// type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING;
124 } 124 }
125 125
126 GIUS(reg) |= bit; 126 GIUS(reg) |= bit;
@@ -128,19 +128,19 @@ imx_gpio_irq_type(unsigned int _irq, unsigned int type)
128 128
129 DEBUG_IRQ("setting type of irq %d to ", _irq); 129 DEBUG_IRQ("setting type of irq %d to ", _irq);
130 130
131 if (type & __IRQT_RISEDGE) { 131 if (type & IRQ_TYPE_EDGE_RISING) {
132 DEBUG_IRQ("rising edges\n"); 132 DEBUG_IRQ("rising edges\n");
133 irq_type = 0x0; 133 irq_type = 0x0;
134 } 134 }
135 if (type & __IRQT_FALEDGE) { 135 if (type & IRQ_TYPE_EDGE_FALLING) {
136 DEBUG_IRQ("falling edges\n"); 136 DEBUG_IRQ("falling edges\n");
137 irq_type = 0x1; 137 irq_type = 0x1;
138 } 138 }
139 if (type & __IRQT_LOWLVL) { 139 if (type & IRQ_TYPE_LEVEL_LOW) {
140 DEBUG_IRQ("low level\n"); 140 DEBUG_IRQ("low level\n");
141 irq_type = 0x3; 141 irq_type = 0x3;
142 } 142 }
143 if (type & __IRQT_HIGHLVL) { 143 if (type & IRQ_TYPE_LEVEL_HIGH) {
144 DEBUG_IRQ("high level\n"); 144 DEBUG_IRQ("high level\n");
145 irq_type = 0x2; 145 irq_type = 0x2;
146 } 146 }
diff --git a/arch/arm/mach-ixp2000/core.c b/arch/arm/mach-ixp2000/core.c
index 81cdc8267206..daf28074134b 100644
--- a/arch/arm/mach-ixp2000/core.c
+++ b/arch/arm/mach-ixp2000/core.c
@@ -329,19 +329,19 @@ static int ixp2000_GPIO_irq_type(unsigned int irq, unsigned int type)
329 /* 329 /*
330 * Then, set the proper trigger type. 330 * Then, set the proper trigger type.
331 */ 331 */
332 if (type & IRQT_FALLING) 332 if (type & IRQ_TYPE_EDGE_FALLING)
333 GPIO_IRQ_falling_edge |= 1 << line; 333 GPIO_IRQ_falling_edge |= 1 << line;
334 else 334 else
335 GPIO_IRQ_falling_edge &= ~(1 << line); 335 GPIO_IRQ_falling_edge &= ~(1 << line);
336 if (type & IRQT_RISING) 336 if (type & IRQ_TYPE_EDGE_RISING)
337 GPIO_IRQ_rising_edge |= 1 << line; 337 GPIO_IRQ_rising_edge |= 1 << line;
338 else 338 else
339 GPIO_IRQ_rising_edge &= ~(1 << line); 339 GPIO_IRQ_rising_edge &= ~(1 << line);
340 if (type & IRQT_LOW) 340 if (type & IRQ_TYPE_LEVEL_LOW)
341 GPIO_IRQ_level_low |= 1 << line; 341 GPIO_IRQ_level_low |= 1 << line;
342 else 342 else
343 GPIO_IRQ_level_low &= ~(1 << line); 343 GPIO_IRQ_level_low &= ~(1 << line);
344 if (type & IRQT_HIGH) 344 if (type & IRQ_TYPE_LEVEL_HIGH)
345 GPIO_IRQ_level_high |= 1 << line; 345 GPIO_IRQ_level_high |= 1 << line;
346 else 346 else
347 GPIO_IRQ_level_high &= ~(1 << line); 347 GPIO_IRQ_level_high &= ~(1 << line);
diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c
index 5fea5a132939..df16a4eac490 100644
--- a/arch/arm/mach-ixp23xx/core.c
+++ b/arch/arm/mach-ixp23xx/core.c
@@ -126,23 +126,23 @@ static int ixp23xx_irq_set_type(unsigned int irq, unsigned int type)
126 return -EINVAL; 126 return -EINVAL;
127 127
128 switch (type) { 128 switch (type) {
129 case IRQT_BOTHEDGE: 129 case IRQ_TYPE_EDGE_BOTH:
130 int_style = IXP23XX_GPIO_STYLE_TRANSITIONAL; 130 int_style = IXP23XX_GPIO_STYLE_TRANSITIONAL;
131 irq_type = IXP23XX_IRQ_EDGE; 131 irq_type = IXP23XX_IRQ_EDGE;
132 break; 132 break;
133 case IRQT_RISING: 133 case IRQ_TYPE_EDGE_RISING:
134 int_style = IXP23XX_GPIO_STYLE_RISING_EDGE; 134 int_style = IXP23XX_GPIO_STYLE_RISING_EDGE;
135 irq_type = IXP23XX_IRQ_EDGE; 135 irq_type = IXP23XX_IRQ_EDGE;
136 break; 136 break;
137 case IRQT_FALLING: 137 case IRQ_TYPE_EDGE_FALLING:
138 int_style = IXP23XX_GPIO_STYLE_FALLING_EDGE; 138 int_style = IXP23XX_GPIO_STYLE_FALLING_EDGE;
139 irq_type = IXP23XX_IRQ_EDGE; 139 irq_type = IXP23XX_IRQ_EDGE;
140 break; 140 break;
141 case IRQT_HIGH: 141 case IRQ_TYPE_LEVEL_HIGH:
142 int_style = IXP23XX_GPIO_STYLE_ACTIVE_HIGH; 142 int_style = IXP23XX_GPIO_STYLE_ACTIVE_HIGH;
143 irq_type = IXP23XX_IRQ_LEVEL; 143 irq_type = IXP23XX_IRQ_LEVEL;
144 break; 144 break;
145 case IRQT_LOW: 145 case IRQ_TYPE_LEVEL_LOW:
146 int_style = IXP23XX_GPIO_STYLE_ACTIVE_LOW; 146 int_style = IXP23XX_GPIO_STYLE_ACTIVE_LOW;
147 irq_type = IXP23XX_IRQ_LEVEL; 147 irq_type = IXP23XX_IRQ_LEVEL;
148 break; 148 break;
diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c
index f0f70ba1e46d..896ff9f840d9 100644
--- a/arch/arm/mach-ixp23xx/roadrunner.c
+++ b/arch/arm/mach-ixp23xx/roadrunner.c
@@ -110,8 +110,8 @@ static int __init roadrunner_map_irq(struct pci_dev *dev, u8 idsel, u8 pin)
110 110
111static void __init roadrunner_pci_preinit(void) 111static void __init roadrunner_pci_preinit(void)
112{ 112{
113 set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQT_LOW); 113 set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
114 set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQT_LOW); 114 set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQ_TYPE_LEVEL_LOW);
115 115
116 ixp23xx_pci_preinit(); 116 ixp23xx_pci_preinit();
117} 117}
diff --git a/arch/arm/mach-ixp4xx/avila-pci.c b/arch/arm/mach-ixp4xx/avila-pci.c
index 3f867691d9f2..c6e044befccb 100644
--- a/arch/arm/mach-ixp4xx/avila-pci.c
+++ b/arch/arm/mach-ixp4xx/avila-pci.c
@@ -30,10 +30,10 @@
30 30
31void __init avila_pci_preinit(void) 31void __init avila_pci_preinit(void)
32{ 32{
33 set_irq_type(IRQ_AVILA_PCI_INTA, IRQT_LOW); 33 set_irq_type(IRQ_AVILA_PCI_INTA, IRQ_TYPE_LEVEL_LOW);
34 set_irq_type(IRQ_AVILA_PCI_INTB, IRQT_LOW); 34 set_irq_type(IRQ_AVILA_PCI_INTB, IRQ_TYPE_LEVEL_LOW);
35 set_irq_type(IRQ_AVILA_PCI_INTC, IRQT_LOW); 35 set_irq_type(IRQ_AVILA_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
36 set_irq_type(IRQ_AVILA_PCI_INTD, IRQT_LOW); 36 set_irq_type(IRQ_AVILA_PCI_INTD, IRQ_TYPE_LEVEL_LOW);
37 37
38 ixp4xx_pci_preinit(); 38 ixp4xx_pci_preinit();
39} 39}
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index 3781b3db9f49..3947c506b4f3 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -142,23 +142,23 @@ static int ixp4xx_set_irq_type(unsigned int irq, unsigned int type)
142 return -EINVAL; 142 return -EINVAL;
143 143
144 switch (type){ 144 switch (type){
145 case IRQT_BOTHEDGE: 145 case IRQ_TYPE_EDGE_BOTH:
146 int_style = IXP4XX_GPIO_STYLE_TRANSITIONAL; 146 int_style = IXP4XX_GPIO_STYLE_TRANSITIONAL;
147 irq_type = IXP4XX_IRQ_EDGE; 147 irq_type = IXP4XX_IRQ_EDGE;
148 break; 148 break;
149 case IRQT_RISING: 149 case IRQ_TYPE_EDGE_RISING:
150 int_style = IXP4XX_GPIO_STYLE_RISING_EDGE; 150 int_style = IXP4XX_GPIO_STYLE_RISING_EDGE;
151 irq_type = IXP4XX_IRQ_EDGE; 151 irq_type = IXP4XX_IRQ_EDGE;
152 break; 152 break;
153 case IRQT_FALLING: 153 case IRQ_TYPE_EDGE_FALLING:
154 int_style = IXP4XX_GPIO_STYLE_FALLING_EDGE; 154 int_style = IXP4XX_GPIO_STYLE_FALLING_EDGE;
155 irq_type = IXP4XX_IRQ_EDGE; 155 irq_type = IXP4XX_IRQ_EDGE;
156 break; 156 break;
157 case IRQT_HIGH: 157 case IRQ_TYPE_LEVEL_HIGH:
158 int_style = IXP4XX_GPIO_STYLE_ACTIVE_HIGH; 158 int_style = IXP4XX_GPIO_STYLE_ACTIVE_HIGH;
159 irq_type = IXP4XX_IRQ_LEVEL; 159 irq_type = IXP4XX_IRQ_LEVEL;
160 break; 160 break;
161 case IRQT_LOW: 161 case IRQ_TYPE_LEVEL_LOW:
162 int_style = IXP4XX_GPIO_STYLE_ACTIVE_LOW; 162 int_style = IXP4XX_GPIO_STYLE_ACTIVE_LOW;
163 irq_type = IXP4XX_IRQ_LEVEL; 163 irq_type = IXP4XX_IRQ_LEVEL;
164 break; 164 break;
diff --git a/arch/arm/mach-ixp4xx/coyote-pci.c b/arch/arm/mach-ixp4xx/coyote-pci.c
index ad2e5b97966e..be4f4a208b90 100644
--- a/arch/arm/mach-ixp4xx/coyote-pci.c
+++ b/arch/arm/mach-ixp4xx/coyote-pci.c
@@ -27,8 +27,8 @@
27 27
28void __init coyote_pci_preinit(void) 28void __init coyote_pci_preinit(void)
29{ 29{
30 set_irq_type(IRQ_COYOTE_PCI_SLOT0, IRQT_LOW); 30 set_irq_type(IRQ_COYOTE_PCI_SLOT0, IRQ_TYPE_LEVEL_LOW);
31 set_irq_type(IRQ_COYOTE_PCI_SLOT1, IRQT_LOW); 31 set_irq_type(IRQ_COYOTE_PCI_SLOT1, IRQ_TYPE_LEVEL_LOW);
32 32
33 ixp4xx_pci_preinit(); 33 ixp4xx_pci_preinit();
34} 34}
diff --git a/arch/arm/mach-ixp4xx/dsmg600-pci.c b/arch/arm/mach-ixp4xx/dsmg600-pci.c
index 9db7e1f42011..926d15f885fb 100644
--- a/arch/arm/mach-ixp4xx/dsmg600-pci.c
+++ b/arch/arm/mach-ixp4xx/dsmg600-pci.c
@@ -25,12 +25,12 @@
25 25
26void __init dsmg600_pci_preinit(void) 26void __init dsmg600_pci_preinit(void)
27{ 27{
28 set_irq_type(IRQ_DSMG600_PCI_INTA, IRQT_LOW); 28 set_irq_type(IRQ_DSMG600_PCI_INTA, IRQ_TYPE_LEVEL_LOW);
29 set_irq_type(IRQ_DSMG600_PCI_INTB, IRQT_LOW); 29 set_irq_type(IRQ_DSMG600_PCI_INTB, IRQ_TYPE_LEVEL_LOW);
30 set_irq_type(IRQ_DSMG600_PCI_INTC, IRQT_LOW); 30 set_irq_type(IRQ_DSMG600_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
31 set_irq_type(IRQ_DSMG600_PCI_INTD, IRQT_LOW); 31 set_irq_type(IRQ_DSMG600_PCI_INTD, IRQ_TYPE_LEVEL_LOW);
32 set_irq_type(IRQ_DSMG600_PCI_INTE, IRQT_LOW); 32 set_irq_type(IRQ_DSMG600_PCI_INTE, IRQ_TYPE_LEVEL_LOW);
33 set_irq_type(IRQ_DSMG600_PCI_INTF, IRQT_LOW); 33 set_irq_type(IRQ_DSMG600_PCI_INTF, IRQ_TYPE_LEVEL_LOW);
34 34
35 ixp4xx_pci_preinit(); 35 ixp4xx_pci_preinit();
36} 36}
diff --git a/arch/arm/mach-ixp4xx/fsg-pci.c b/arch/arm/mach-ixp4xx/fsg-pci.c
index f19f3f6feda1..ca12a9ca0830 100644
--- a/arch/arm/mach-ixp4xx/fsg-pci.c
+++ b/arch/arm/mach-ixp4xx/fsg-pci.c
@@ -25,9 +25,9 @@
25 25
26void __init fsg_pci_preinit(void) 26void __init fsg_pci_preinit(void)
27{ 27{
28 set_irq_type(IRQ_FSG_PCI_INTA, IRQT_LOW); 28 set_irq_type(IRQ_FSG_PCI_INTA, IRQ_TYPE_LEVEL_LOW);
29 set_irq_type(IRQ_FSG_PCI_INTB, IRQT_LOW); 29 set_irq_type(IRQ_FSG_PCI_INTB, IRQ_TYPE_LEVEL_LOW);
30 set_irq_type(IRQ_FSG_PCI_INTC, IRQT_LOW); 30 set_irq_type(IRQ_FSG_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
31 31
32 ixp4xx_pci_preinit(); 32 ixp4xx_pci_preinit();
33} 33}
diff --git a/arch/arm/mach-ixp4xx/gateway7001-pci.c b/arch/arm/mach-ixp4xx/gateway7001-pci.c
index 6abf568322d3..afd1dc14e597 100644
--- a/arch/arm/mach-ixp4xx/gateway7001-pci.c
+++ b/arch/arm/mach-ixp4xx/gateway7001-pci.c
@@ -29,8 +29,8 @@
29 29
30void __init gateway7001_pci_preinit(void) 30void __init gateway7001_pci_preinit(void)
31{ 31{
32 set_irq_type(IRQ_IXP4XX_GPIO10, IRQT_LOW); 32 set_irq_type(IRQ_IXP4XX_GPIO10, IRQ_TYPE_LEVEL_LOW);
33 set_irq_type(IRQ_IXP4XX_GPIO11, IRQT_LOW); 33 set_irq_type(IRQ_IXP4XX_GPIO11, IRQ_TYPE_LEVEL_LOW);
34 34
35 ixp4xx_pci_preinit(); 35 ixp4xx_pci_preinit();
36} 36}
diff --git a/arch/arm/mach-ixp4xx/gtwx5715-pci.c b/arch/arm/mach-ixp4xx/gtwx5715-pci.c
index 49dec7868807..20960704183b 100644
--- a/arch/arm/mach-ixp4xx/gtwx5715-pci.c
+++ b/arch/arm/mach-ixp4xx/gtwx5715-pci.c
@@ -41,10 +41,10 @@
41 */ 41 */
42void __init gtwx5715_pci_preinit(void) 42void __init gtwx5715_pci_preinit(void)
43{ 43{
44 set_irq_type(GTWX5715_PCI_SLOT0_INTA_IRQ, IRQT_LOW); 44 set_irq_type(GTWX5715_PCI_SLOT0_INTA_IRQ, IRQ_TYPE_LEVEL_LOW);
45 set_irq_type(GTWX5715_PCI_SLOT0_INTB_IRQ, IRQT_LOW); 45 set_irq_type(GTWX5715_PCI_SLOT0_INTB_IRQ, IRQ_TYPE_LEVEL_LOW);
46 set_irq_type(GTWX5715_PCI_SLOT1_INTA_IRQ, IRQT_LOW); 46 set_irq_type(GTWX5715_PCI_SLOT1_INTA_IRQ, IRQ_TYPE_LEVEL_LOW);
47 set_irq_type(GTWX5715_PCI_SLOT1_INTB_IRQ, IRQT_LOW); 47 set_irq_type(GTWX5715_PCI_SLOT1_INTB_IRQ, IRQ_TYPE_LEVEL_LOW);
48 48
49 ixp4xx_pci_preinit(); 49 ixp4xx_pci_preinit();
50} 50}
diff --git a/arch/arm/mach-ixp4xx/ixdp425-pci.c b/arch/arm/mach-ixp4xx/ixdp425-pci.c
index 408796004812..7d9bb4d23104 100644
--- a/arch/arm/mach-ixp4xx/ixdp425-pci.c
+++ b/arch/arm/mach-ixp4xx/ixdp425-pci.c
@@ -27,10 +27,10 @@
27 27
28void __init ixdp425_pci_preinit(void) 28void __init ixdp425_pci_preinit(void)
29{ 29{
30 set_irq_type(IRQ_IXDP425_PCI_INTA, IRQT_LOW); 30 set_irq_type(IRQ_IXDP425_PCI_INTA, IRQ_TYPE_LEVEL_LOW);
31 set_irq_type(IRQ_IXDP425_PCI_INTB, IRQT_LOW); 31 set_irq_type(IRQ_IXDP425_PCI_INTB, IRQ_TYPE_LEVEL_LOW);
32 set_irq_type(IRQ_IXDP425_PCI_INTC, IRQT_LOW); 32 set_irq_type(IRQ_IXDP425_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
33 set_irq_type(IRQ_IXDP425_PCI_INTD, IRQT_LOW); 33 set_irq_type(IRQ_IXDP425_PCI_INTD, IRQ_TYPE_LEVEL_LOW);
34 34
35 ixp4xx_pci_preinit(); 35 ixp4xx_pci_preinit();
36} 36}
diff --git a/arch/arm/mach-ixp4xx/ixdpg425-pci.c b/arch/arm/mach-ixp4xx/ixdpg425-pci.c
index d1e75b7dc3b1..37d9f2e8f602 100644
--- a/arch/arm/mach-ixp4xx/ixdpg425-pci.c
+++ b/arch/arm/mach-ixp4xx/ixdpg425-pci.c
@@ -25,8 +25,8 @@
25 25
26void __init ixdpg425_pci_preinit(void) 26void __init ixdpg425_pci_preinit(void)
27{ 27{
28 set_irq_type(IRQ_IXP4XX_GPIO6, IRQT_LOW); 28 set_irq_type(IRQ_IXP4XX_GPIO6, IRQ_TYPE_LEVEL_LOW);
29 set_irq_type(IRQ_IXP4XX_GPIO7, IRQT_LOW); 29 set_irq_type(IRQ_IXP4XX_GPIO7, IRQ_TYPE_LEVEL_LOW);
30 30
31 ixp4xx_pci_preinit(); 31 ixp4xx_pci_preinit();
32} 32}
diff --git a/arch/arm/mach-ixp4xx/nas100d-pci.c b/arch/arm/mach-ixp4xx/nas100d-pci.c
index b8ebaf4a9c8e..1088426fdcee 100644
--- a/arch/arm/mach-ixp4xx/nas100d-pci.c
+++ b/arch/arm/mach-ixp4xx/nas100d-pci.c
@@ -24,11 +24,11 @@
24 24
25void __init nas100d_pci_preinit(void) 25void __init nas100d_pci_preinit(void)
26{ 26{
27 set_irq_type(IRQ_NAS100D_PCI_INTA, IRQT_LOW); 27 set_irq_type(IRQ_NAS100D_PCI_INTA, IRQ_TYPE_LEVEL_LOW);
28 set_irq_type(IRQ_NAS100D_PCI_INTB, IRQT_LOW); 28 set_irq_type(IRQ_NAS100D_PCI_INTB, IRQ_TYPE_LEVEL_LOW);
29 set_irq_type(IRQ_NAS100D_PCI_INTC, IRQT_LOW); 29 set_irq_type(IRQ_NAS100D_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
30 set_irq_type(IRQ_NAS100D_PCI_INTD, IRQT_LOW); 30 set_irq_type(IRQ_NAS100D_PCI_INTD, IRQ_TYPE_LEVEL_LOW);
31 set_irq_type(IRQ_NAS100D_PCI_INTE, IRQT_LOW); 31 set_irq_type(IRQ_NAS100D_PCI_INTE, IRQ_TYPE_LEVEL_LOW);
32 32
33 ixp4xx_pci_preinit(); 33 ixp4xx_pci_preinit();
34} 34}
diff --git a/arch/arm/mach-ixp4xx/nslu2-pci.c b/arch/arm/mach-ixp4xx/nslu2-pci.c
index 04661fef97f5..4429b8448b61 100644
--- a/arch/arm/mach-ixp4xx/nslu2-pci.c
+++ b/arch/arm/mach-ixp4xx/nslu2-pci.c
@@ -24,9 +24,9 @@
24 24
25void __init nslu2_pci_preinit(void) 25void __init nslu2_pci_preinit(void)
26{ 26{
27 set_irq_type(IRQ_NSLU2_PCI_INTA, IRQT_LOW); 27 set_irq_type(IRQ_NSLU2_PCI_INTA, IRQ_TYPE_LEVEL_LOW);
28 set_irq_type(IRQ_NSLU2_PCI_INTB, IRQT_LOW); 28 set_irq_type(IRQ_NSLU2_PCI_INTB, IRQ_TYPE_LEVEL_LOW);
29 set_irq_type(IRQ_NSLU2_PCI_INTC, IRQT_LOW); 29 set_irq_type(IRQ_NSLU2_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
30 30
31 ixp4xx_pci_preinit(); 31 ixp4xx_pci_preinit();
32} 32}
diff --git a/arch/arm/mach-ixp4xx/wg302v2-pci.c b/arch/arm/mach-ixp4xx/wg302v2-pci.c
index 6588f2c758e2..0f00feab67f8 100644
--- a/arch/arm/mach-ixp4xx/wg302v2-pci.c
+++ b/arch/arm/mach-ixp4xx/wg302v2-pci.c
@@ -29,8 +29,8 @@
29 29
30void __init wg302v2_pci_preinit(void) 30void __init wg302v2_pci_preinit(void)
31{ 31{
32 set_irq_type(IRQ_IXP4XX_GPIO8, IRQT_LOW); 32 set_irq_type(IRQ_IXP4XX_GPIO8, IRQ_TYPE_LEVEL_LOW);
33 set_irq_type(IRQ_IXP4XX_GPIO9, IRQT_LOW); 33 set_irq_type(IRQ_IXP4XX_GPIO9, IRQ_TYPE_LEVEL_LOW);
34 34
35 ixp4xx_pci_preinit(); 35 ixp4xx_pci_preinit();
36} 36}
diff --git a/arch/arm/mach-ks8695/irq.c b/arch/arm/mach-ks8695/irq.c
index 4c3ab43e1046..0b06941a1eed 100644
--- a/arch/arm/mach-ks8695/irq.c
+++ b/arch/arm/mach-ks8695/irq.c
@@ -72,21 +72,21 @@ static int ks8695_irq_set_type(unsigned int irqno, unsigned int type)
72 ctrl = __raw_readl(KS8695_GPIO_VA + KS8695_IOPC); 72 ctrl = __raw_readl(KS8695_GPIO_VA + KS8695_IOPC);
73 73
74 switch (type) { 74 switch (type) {
75 case IRQT_HIGH: 75 case IRQ_TYPE_LEVEL_HIGH:
76 mode = IOPC_TM_HIGH; 76 mode = IOPC_TM_HIGH;
77 level_triggered = 1; 77 level_triggered = 1;
78 break; 78 break;
79 case IRQT_LOW: 79 case IRQ_TYPE_LEVEL_LOW:
80 mode = IOPC_TM_LOW; 80 mode = IOPC_TM_LOW;
81 level_triggered = 1; 81 level_triggered = 1;
82 break; 82 break;
83 case IRQT_RISING: 83 case IRQ_TYPE_EDGE_RISING:
84 mode = IOPC_TM_RISING; 84 mode = IOPC_TM_RISING;
85 break; 85 break;
86 case IRQT_FALLING: 86 case IRQ_TYPE_EDGE_FALLING:
87 mode = IOPC_TM_FALLING; 87 mode = IOPC_TM_FALLING;
88 break; 88 break;
89 case IRQT_BOTHEDGE: 89 case IRQ_TYPE_EDGE_BOTH:
90 mode = IOPC_TM_EDGE; 90 mode = IOPC_TM_EDGE;
91 break; 91 break;
92 default: 92 default:
diff --git a/arch/arm/mach-netx/generic.c b/arch/arm/mach-netx/generic.c
index fd7537f7d11e..99d4fb19a08a 100644
--- a/arch/arm/mach-netx/generic.c
+++ b/arch/arm/mach-netx/generic.c
@@ -99,19 +99,19 @@ netx_hif_irq_type(unsigned int _irq, unsigned int type)
99 99
100 irq = _irq - NETX_IRQ_HIF_CHAINED(0); 100 irq = _irq - NETX_IRQ_HIF_CHAINED(0);
101 101
102 if (type & __IRQT_RISEDGE) { 102 if (type & IRQ_TYPE_EDGE_RISING) {
103 DEBUG_IRQ("rising edges\n"); 103 DEBUG_IRQ("rising edges\n");
104 val |= (1 << 26) << irq; 104 val |= (1 << 26) << irq;
105 } 105 }
106 if (type & __IRQT_FALEDGE) { 106 if (type & IRQ_TYPE_EDGE_FALLING) {
107 DEBUG_IRQ("falling edges\n"); 107 DEBUG_IRQ("falling edges\n");
108 val &= ~((1 << 26) << irq); 108 val &= ~((1 << 26) << irq);
109 } 109 }
110 if (type & __IRQT_LOWLVL) { 110 if (type & IRQ_TYPE_LEVEL_LOW) {
111 DEBUG_IRQ("low level\n"); 111 DEBUG_IRQ("low level\n");
112 val &= ~((1 << 26) << irq); 112 val &= ~((1 << 26) << irq);
113 } 113 }
114 if (type & __IRQT_HIGHLVL) { 114 if (type & IRQ_TYPE_LEVEL_HIGH) {
115 DEBUG_IRQ("high level\n"); 115 DEBUG_IRQ("high level\n");
116 val |= (1 << 26) << irq; 116 val |= (1 << 26) << irq;
117 } 117 }
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index 845c66371ca3..41f94f6fc15c 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -288,7 +288,7 @@ static void __init osk_init_cf(void)
288 return; 288 return;
289 } 289 }
290 /* the CF I/O IRQ is really active-low */ 290 /* the CF I/O IRQ is really active-low */
291 set_irq_type(OMAP_GPIO_IRQ(62), IRQT_FALLING); 291 set_irq_type(OMAP_GPIO_IRQ(62), IRQ_TYPE_EDGE_FALLING);
292} 292}
293 293
294static void __init osk_init_irq(void) 294static void __init osk_init_irq(void)
@@ -483,7 +483,7 @@ static void __init osk_mistral_init(void)
483 omap_cfg_reg(P20_1610_GPIO4); /* PENIRQ */ 483 omap_cfg_reg(P20_1610_GPIO4); /* PENIRQ */
484 gpio_request(4, "ts_int"); 484 gpio_request(4, "ts_int");
485 gpio_direction_input(4); 485 gpio_direction_input(4);
486 set_irq_type(OMAP_GPIO_IRQ(4), IRQT_FALLING); 486 set_irq_type(OMAP_GPIO_IRQ(4), IRQ_TYPE_EDGE_FALLING);
487 487
488 spi_register_board_info(mistral_boardinfo, 488 spi_register_board_info(mistral_boardinfo,
489 ARRAY_SIZE(mistral_boardinfo)); 489 ARRAY_SIZE(mistral_boardinfo));
@@ -494,7 +494,7 @@ static void __init osk_mistral_init(void)
494 int ret = 0; 494 int ret = 0;
495 495
496 gpio_direction_input(OMAP_MPUIO(2)); 496 gpio_direction_input(OMAP_MPUIO(2));
497 set_irq_type(OMAP_GPIO_IRQ(OMAP_MPUIO(2)), IRQT_RISING); 497 set_irq_type(OMAP_GPIO_IRQ(OMAP_MPUIO(2)), IRQ_TYPE_EDGE_RISING);
498#ifdef CONFIG_PM 498#ifdef CONFIG_PM
499 /* share the IRQ in case someone wants to use the 499 /* share the IRQ in case someone wants to use the
500 * button for more than wakeup from system sleep. 500 * button for more than wakeup from system sleep.
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c
index e020c2774606..34389b63b0ec 100644
--- a/arch/arm/mach-omap1/board-palmz71.c
+++ b/arch/arm/mach-omap1/board-palmz71.c
@@ -298,11 +298,11 @@ palmz71_powercable(int irq, void *dev_id)
298 if (omap_get_gpio_datain(PALMZ71_USBDETECT_GPIO)) { 298 if (omap_get_gpio_datain(PALMZ71_USBDETECT_GPIO)) {
299 printk(KERN_INFO "PM: Power cable connected\n"); 299 printk(KERN_INFO "PM: Power cable connected\n");
300 set_irq_type(OMAP_GPIO_IRQ(PALMZ71_USBDETECT_GPIO), 300 set_irq_type(OMAP_GPIO_IRQ(PALMZ71_USBDETECT_GPIO),
301 IRQT_FALLING); 301 IRQ_TYPE_EDGE_FALLING);
302 } else { 302 } else {
303 printk(KERN_INFO "PM: Power cable disconnected\n"); 303 printk(KERN_INFO "PM: Power cable disconnected\n");
304 set_irq_type(OMAP_GPIO_IRQ(PALMZ71_USBDETECT_GPIO), 304 set_irq_type(OMAP_GPIO_IRQ(PALMZ71_USBDETECT_GPIO),
305 IRQT_RISING); 305 IRQ_TYPE_EDGE_RISING);
306 } 306 }
307 return IRQ_HANDLED; 307 return IRQ_HANDLED;
308} 308}
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c
index 5c00b3f39cdd..8948d45a2769 100644
--- a/arch/arm/mach-omap1/board-voiceblue.c
+++ b/arch/arm/mach-omap1/board-voiceblue.c
@@ -186,10 +186,10 @@ static void __init voiceblue_init(void)
186 omap_request_gpio(13); 186 omap_request_gpio(13);
187 omap_request_gpio(14); 187 omap_request_gpio(14);
188 omap_request_gpio(15); 188 omap_request_gpio(15);
189 set_irq_type(OMAP_GPIO_IRQ(12), IRQT_RISING); 189 set_irq_type(OMAP_GPIO_IRQ(12), IRQ_TYPE_EDGE_RISING);
190 set_irq_type(OMAP_GPIO_IRQ(13), IRQT_RISING); 190 set_irq_type(OMAP_GPIO_IRQ(13), IRQ_TYPE_EDGE_RISING);
191 set_irq_type(OMAP_GPIO_IRQ(14), IRQT_RISING); 191 set_irq_type(OMAP_GPIO_IRQ(14), IRQ_TYPE_EDGE_RISING);
192 set_irq_type(OMAP_GPIO_IRQ(15), IRQT_RISING); 192 set_irq_type(OMAP_GPIO_IRQ(15), IRQ_TYPE_EDGE_RISING);
193 193
194 platform_add_devices(voiceblue_devices, ARRAY_SIZE(voiceblue_devices)); 194 platform_add_devices(voiceblue_devices, ARRAY_SIZE(voiceblue_devices));
195 omap_board_config = voiceblue_config; 195 omap_board_config = voiceblue_config;
diff --git a/arch/arm/mach-omap1/fpga.c b/arch/arm/mach-omap1/fpga.c
index 0cf62ef5ecb7..d963125ed755 100644
--- a/arch/arm/mach-omap1/fpga.c
+++ b/arch/arm/mach-omap1/fpga.c
@@ -181,7 +181,7 @@ void omap1510_fpga_init_irq(void)
181 */ 181 */
182 omap_request_gpio(13); 182 omap_request_gpio(13);
183 omap_set_gpio_direction(13, 1); 183 omap_set_gpio_direction(13, 1);
184 set_irq_type(OMAP_GPIO_IRQ(13), IRQT_RISING); 184 set_irq_type(OMAP_GPIO_IRQ(13), IRQ_TYPE_EDGE_RISING);
185 set_irq_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux); 185 set_irq_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux);
186} 186}
187 187
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
index 620fa0f120ee..870b34972d3b 100644
--- a/arch/arm/mach-omap2/board-apollon.c
+++ b/arch/arm/mach-omap2/board-apollon.c
@@ -337,17 +337,17 @@ static void __init apollon_sw_init(void)
337 omap_request_gpio(SW_DOWN_GPIO58); 337 omap_request_gpio(SW_DOWN_GPIO58);
338 omap_set_gpio_direction(SW_DOWN_GPIO58, 1); 338 omap_set_gpio_direction(SW_DOWN_GPIO58, 1);
339 339
340 set_irq_type(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), IRQT_RISING); 340 set_irq_type(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), IRQ_TYPE_EDGE_RISING);
341 if (request_irq(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), &apollon_sw_interrupt, 341 if (request_irq(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), &apollon_sw_interrupt,
342 IRQF_SHARED, "enter sw", 342 IRQF_SHARED, "enter sw",
343 &apollon_sw_interrupt)) 343 &apollon_sw_interrupt))
344 return; 344 return;
345 set_irq_type(OMAP_GPIO_IRQ(SW_UP_GPIO17), IRQT_RISING); 345 set_irq_type(OMAP_GPIO_IRQ(SW_UP_GPIO17), IRQ_TYPE_EDGE_RISING);
346 if (request_irq(OMAP_GPIO_IRQ(SW_UP_GPIO17), &apollon_sw_interrupt, 346 if (request_irq(OMAP_GPIO_IRQ(SW_UP_GPIO17), &apollon_sw_interrupt,
347 IRQF_SHARED, "up sw", 347 IRQF_SHARED, "up sw",
348 &apollon_sw_interrupt)) 348 &apollon_sw_interrupt))
349 return; 349 return;
350 set_irq_type(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), IRQT_RISING); 350 set_irq_type(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), IRQ_TYPE_EDGE_RISING);
351 if (request_irq(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), &apollon_sw_interrupt, 351 if (request_irq(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), &apollon_sw_interrupt,
352 IRQF_SHARED, "down sw", 352 IRQF_SHARED, "down sw",
353 &apollon_sw_interrupt)) 353 &apollon_sw_interrupt))
diff --git a/arch/arm/mach-orion5x/db88f5281-setup.c b/arch/arm/mach-orion5x/db88f5281-setup.c
index 88405e74e5e3..40a0bee4fbb3 100644
--- a/arch/arm/mach-orion5x/db88f5281-setup.c
+++ b/arch/arm/mach-orion5x/db88f5281-setup.c
@@ -213,7 +213,7 @@ void __init db88f5281_pci_preinit(void)
213 pin = DB88F5281_PCI_SLOT0_IRQ_PIN; 213 pin = DB88F5281_PCI_SLOT0_IRQ_PIN;
214 if (gpio_request(pin, "PCI Int1") == 0) { 214 if (gpio_request(pin, "PCI Int1") == 0) {
215 if (gpio_direction_input(pin) == 0) { 215 if (gpio_direction_input(pin) == 0) {
216 set_irq_type(gpio_to_irq(pin), IRQT_LOW); 216 set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
217 } else { 217 } else {
218 printk(KERN_ERR "db88f5281_pci_preinit faield to " 218 printk(KERN_ERR "db88f5281_pci_preinit faield to "
219 "set_irq_type pin %d\n", pin); 219 "set_irq_type pin %d\n", pin);
@@ -226,7 +226,7 @@ void __init db88f5281_pci_preinit(void)
226 pin = DB88F5281_PCI_SLOT1_SLOT2_IRQ_PIN; 226 pin = DB88F5281_PCI_SLOT1_SLOT2_IRQ_PIN;
227 if (gpio_request(pin, "PCI Int2") == 0) { 227 if (gpio_request(pin, "PCI Int2") == 0) {
228 if (gpio_direction_input(pin) == 0) { 228 if (gpio_direction_input(pin) == 0) {
229 set_irq_type(gpio_to_irq(pin), IRQT_LOW); 229 set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
230 } else { 230 } else {
231 printk(KERN_ERR "db88f5281_pci_preinit faield " 231 printk(KERN_ERR "db88f5281_pci_preinit faield "
232 "to set_irq_type pin %d\n", pin); 232 "to set_irq_type pin %d\n", pin);
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c
index e2a0084ab4a3..9ae3f6dc7839 100644
--- a/arch/arm/mach-orion5x/irq.c
+++ b/arch/arm/mach-orion5x/irq.c
@@ -91,27 +91,27 @@ static int orion5x_gpio_set_irq_type(u32 irq, u32 type)
91 desc = irq_desc + irq; 91 desc = irq_desc + irq;
92 92
93 switch (type) { 93 switch (type) {
94 case IRQT_HIGH: 94 case IRQ_TYPE_LEVEL_HIGH:
95 desc->handle_irq = handle_level_irq; 95 desc->handle_irq = handle_level_irq;
96 desc->status |= IRQ_LEVEL; 96 desc->status |= IRQ_LEVEL;
97 orion5x_clrbits(GPIO_IN_POL, (1 << pin)); 97 orion5x_clrbits(GPIO_IN_POL, (1 << pin));
98 break; 98 break;
99 case IRQT_LOW: 99 case IRQ_TYPE_LEVEL_LOW:
100 desc->handle_irq = handle_level_irq; 100 desc->handle_irq = handle_level_irq;
101 desc->status |= IRQ_LEVEL; 101 desc->status |= IRQ_LEVEL;
102 orion5x_setbits(GPIO_IN_POL, (1 << pin)); 102 orion5x_setbits(GPIO_IN_POL, (1 << pin));
103 break; 103 break;
104 case IRQT_RISING: 104 case IRQ_TYPE_EDGE_RISING:
105 desc->handle_irq = handle_edge_irq; 105 desc->handle_irq = handle_edge_irq;
106 desc->status &= ~IRQ_LEVEL; 106 desc->status &= ~IRQ_LEVEL;
107 orion5x_clrbits(GPIO_IN_POL, (1 << pin)); 107 orion5x_clrbits(GPIO_IN_POL, (1 << pin));
108 break; 108 break;
109 case IRQT_FALLING: 109 case IRQ_TYPE_EDGE_FALLING:
110 desc->handle_irq = handle_edge_irq; 110 desc->handle_irq = handle_edge_irq;
111 desc->status &= ~IRQ_LEVEL; 111 desc->status &= ~IRQ_LEVEL;
112 orion5x_setbits(GPIO_IN_POL, (1 << pin)); 112 orion5x_setbits(GPIO_IN_POL, (1 << pin));
113 break; 113 break;
114 case IRQT_BOTHEDGE: 114 case IRQ_TYPE_EDGE_BOTH:
115 desc->handle_irq = handle_edge_irq; 115 desc->handle_irq = handle_edge_irq;
116 desc->status &= ~IRQ_LEVEL; 116 desc->status &= ~IRQ_LEVEL;
117 /* 117 /*
@@ -156,7 +156,7 @@ static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
156 if (cause & (1 << pin)) { 156 if (cause & (1 << pin)) {
157 irq = gpio_to_irq(pin); 157 irq = gpio_to_irq(pin);
158 desc = irq_desc + irq; 158 desc = irq_desc + irq;
159 if ((desc->status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) { 159 if ((desc->status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
160 /* Swap polarity (race with GPIO line) */ 160 /* Swap polarity (race with GPIO line) */
161 u32 polarity = readl(GPIO_IN_POL); 161 u32 polarity = readl(GPIO_IN_POL);
162 polarity ^= 1 << pin; 162 polarity ^= 1 << pin;
diff --git a/arch/arm/mach-orion5x/rd88f5182-setup.c b/arch/arm/mach-orion5x/rd88f5182-setup.c
index 10ae62864269..2a46d27209c1 100644
--- a/arch/arm/mach-orion5x/rd88f5182-setup.c
+++ b/arch/arm/mach-orion5x/rd88f5182-setup.c
@@ -148,7 +148,7 @@ void __init rd88f5182_pci_preinit(void)
148 pin = RD88F5182_PCI_SLOT0_IRQ_A_PIN; 148 pin = RD88F5182_PCI_SLOT0_IRQ_A_PIN;
149 if (gpio_request(pin, "PCI IntA") == 0) { 149 if (gpio_request(pin, "PCI IntA") == 0) {
150 if (gpio_direction_input(pin) == 0) { 150 if (gpio_direction_input(pin) == 0) {
151 set_irq_type(gpio_to_irq(pin), IRQT_LOW); 151 set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
152 } else { 152 } else {
153 printk(KERN_ERR "rd88f5182_pci_preinit faield to " 153 printk(KERN_ERR "rd88f5182_pci_preinit faield to "
154 "set_irq_type pin %d\n", pin); 154 "set_irq_type pin %d\n", pin);
@@ -161,7 +161,7 @@ void __init rd88f5182_pci_preinit(void)
161 pin = RD88F5182_PCI_SLOT0_IRQ_B_PIN; 161 pin = RD88F5182_PCI_SLOT0_IRQ_B_PIN;
162 if (gpio_request(pin, "PCI IntB") == 0) { 162 if (gpio_request(pin, "PCI IntB") == 0) {
163 if (gpio_direction_input(pin) == 0) { 163 if (gpio_direction_input(pin) == 0) {
164 set_irq_type(gpio_to_irq(pin), IRQT_LOW); 164 set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
165 } else { 165 } else {
166 printk(KERN_ERR "rd88f5182_pci_preinit faield to " 166 printk(KERN_ERR "rd88f5182_pci_preinit faield to "
167 "set_irq_type pin %d\n", pin); 167 "set_irq_type pin %d\n", pin);
diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c
index a9cef9703d5b..f270ada2def9 100644
--- a/arch/arm/mach-orion5x/ts209-setup.c
+++ b/arch/arm/mach-orion5x/ts209-setup.c
@@ -117,7 +117,7 @@ void __init qnap_ts209_pci_preinit(void)
117 pin = QNAP_TS209_PCI_SLOT0_IRQ_PIN; 117 pin = QNAP_TS209_PCI_SLOT0_IRQ_PIN;
118 if (gpio_request(pin, "PCI Int1") == 0) { 118 if (gpio_request(pin, "PCI Int1") == 0) {
119 if (gpio_direction_input(pin) == 0) { 119 if (gpio_direction_input(pin) == 0) {
120 set_irq_type(gpio_to_irq(pin), IRQT_LOW); 120 set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
121 } else { 121 } else {
122 printk(KERN_ERR "qnap_ts209_pci_preinit failed to " 122 printk(KERN_ERR "qnap_ts209_pci_preinit failed to "
123 "set_irq_type pin %d\n", pin); 123 "set_irq_type pin %d\n", pin);
@@ -131,7 +131,7 @@ void __init qnap_ts209_pci_preinit(void)
131 pin = QNAP_TS209_PCI_SLOT1_IRQ_PIN; 131 pin = QNAP_TS209_PCI_SLOT1_IRQ_PIN;
132 if (gpio_request(pin, "PCI Int2") == 0) { 132 if (gpio_request(pin, "PCI Int2") == 0) {
133 if (gpio_direction_input(pin) == 0) { 133 if (gpio_direction_input(pin) == 0) {
134 set_irq_type(gpio_to_irq(pin), IRQT_LOW); 134 set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
135 } else { 135 } else {
136 printk(KERN_ERR "qnap_ts209_pci_preinit failed " 136 printk(KERN_ERR "qnap_ts209_pci_preinit failed "
137 "to set_irq_type pin %d\n", pin); 137 "to set_irq_type pin %d\n", pin);
diff --git a/arch/arm/mach-pnx4008/irq.c b/arch/arm/mach-pnx4008/irq.c
index 968d0b027597..5ed67e1947a8 100644
--- a/arch/arm/mach-pnx4008/irq.c
+++ b/arch/arm/mach-pnx4008/irq.c
@@ -56,28 +56,28 @@ static void pnx4008_mask_ack_irq(unsigned int irq)
56static int pnx4008_set_irq_type(unsigned int irq, unsigned int type) 56static int pnx4008_set_irq_type(unsigned int irq, unsigned int type)
57{ 57{
58 switch (type) { 58 switch (type) {
59 case IRQT_RISING: 59 case IRQ_TYPE_EDGE_RISING:
60 __raw_writel(__raw_readl(INTC_ATR(irq)) | INTC_BIT(irq), INTC_ATR(irq)); /*edge sensitive */ 60 __raw_writel(__raw_readl(INTC_ATR(irq)) | INTC_BIT(irq), INTC_ATR(irq)); /*edge sensitive */
61 __raw_writel(__raw_readl(INTC_APR(irq)) | INTC_BIT(irq), INTC_APR(irq)); /*rising edge */ 61 __raw_writel(__raw_readl(INTC_APR(irq)) | INTC_BIT(irq), INTC_APR(irq)); /*rising edge */
62 set_irq_handler(irq, handle_edge_irq); 62 set_irq_handler(irq, handle_edge_irq);
63 break; 63 break;
64 case IRQT_FALLING: 64 case IRQ_TYPE_EDGE_FALLING:
65 __raw_writel(__raw_readl(INTC_ATR(irq)) | INTC_BIT(irq), INTC_ATR(irq)); /*edge sensitive */ 65 __raw_writel(__raw_readl(INTC_ATR(irq)) | INTC_BIT(irq), INTC_ATR(irq)); /*edge sensitive */
66 __raw_writel(__raw_readl(INTC_APR(irq)) & ~INTC_BIT(irq), INTC_APR(irq)); /*falling edge */ 66 __raw_writel(__raw_readl(INTC_APR(irq)) & ~INTC_BIT(irq), INTC_APR(irq)); /*falling edge */
67 set_irq_handler(irq, handle_edge_irq); 67 set_irq_handler(irq, handle_edge_irq);
68 break; 68 break;
69 case IRQT_LOW: 69 case IRQ_TYPE_LEVEL_LOW:
70 __raw_writel(__raw_readl(INTC_ATR(irq)) & ~INTC_BIT(irq), INTC_ATR(irq)); /*level sensitive */ 70 __raw_writel(__raw_readl(INTC_ATR(irq)) & ~INTC_BIT(irq), INTC_ATR(irq)); /*level sensitive */
71 __raw_writel(__raw_readl(INTC_APR(irq)) & ~INTC_BIT(irq), INTC_APR(irq)); /*low level */ 71 __raw_writel(__raw_readl(INTC_APR(irq)) & ~INTC_BIT(irq), INTC_APR(irq)); /*low level */
72 set_irq_handler(irq, handle_level_irq); 72 set_irq_handler(irq, handle_level_irq);
73 break; 73 break;
74 case IRQT_HIGH: 74 case IRQ_TYPE_LEVEL_HIGH:
75 __raw_writel(__raw_readl(INTC_ATR(irq)) & ~INTC_BIT(irq), INTC_ATR(irq)); /*level sensitive */ 75 __raw_writel(__raw_readl(INTC_ATR(irq)) & ~INTC_BIT(irq), INTC_ATR(irq)); /*level sensitive */
76 __raw_writel(__raw_readl(INTC_APR(irq)) | INTC_BIT(irq), INTC_APR(irq)); /* high level */ 76 __raw_writel(__raw_readl(INTC_APR(irq)) | INTC_BIT(irq), INTC_APR(irq)); /* high level */
77 set_irq_handler(irq, handle_level_irq); 77 set_irq_handler(irq, handle_level_irq);
78 break; 78 break;
79 79
80 /* IRQT_BOTHEDGE is not supported */ 80 /* IRQ_TYPE_EDGE_BOTH is not supported */
81 default: 81 default:
82 printk(KERN_ERR "PNX4008 IRQ: Unsupported irq type %d\n", type); 82 printk(KERN_ERR "PNX4008 IRQ: Unsupported irq type %d\n", type);
83 return -1; 83 return -1;
diff --git a/arch/arm/mach-pxa/cm-x270-pci.c b/arch/arm/mach-pxa/cm-x270-pci.c
index bcf0cde6ccc9..31f5bd411ced 100644
--- a/arch/arm/mach-pxa/cm-x270-pci.c
+++ b/arch/arm/mach-pxa/cm-x270-pci.c
@@ -71,7 +71,7 @@ void __cmx270_pci_init_irq(int irq_gpio)
71 71
72 cmx270_it8152_irq_gpio = irq_gpio; 72 cmx270_it8152_irq_gpio = irq_gpio;
73 73
74 set_irq_type(gpio_to_irq(irq_gpio), IRQT_RISING); 74 set_irq_type(gpio_to_irq(irq_gpio), IRQ_TYPE_EDGE_RISING);
75 75
76 set_irq_chained_handler(gpio_to_irq(irq_gpio), cmx270_it8152_irq_demux); 76 set_irq_chained_handler(gpio_to_irq(irq_gpio), cmx270_it8152_irq_demux);
77} 77}
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c
index cc1c4fa06145..8d1ab54e7b20 100644
--- a/arch/arm/mach-pxa/lpd270.c
+++ b/arch/arm/mach-pxa/lpd270.c
@@ -113,7 +113,7 @@ static void __init lpd270_init_irq(void)
113 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 113 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
114 } 114 }
115 set_irq_chained_handler(IRQ_GPIO(0), lpd270_irq_handler); 115 set_irq_chained_handler(IRQ_GPIO(0), lpd270_irq_handler);
116 set_irq_type(IRQ_GPIO(0), IRQT_FALLING); 116 set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
117} 117}
118 118
119 119
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index ac26423cd20c..af7375bb46a4 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -152,7 +152,7 @@ static void __init lubbock_init_irq(void)
152 } 152 }
153 153
154 set_irq_chained_handler(IRQ_GPIO(0), lubbock_irq_handler); 154 set_irq_chained_handler(IRQ_GPIO(0), lubbock_irq_handler);
155 set_irq_type(IRQ_GPIO(0), IRQT_FALLING); 155 set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
156} 156}
157 157
158#ifdef CONFIG_PM 158#ifdef CONFIG_PM
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
index 851ec2d9b699..c8e38b5ff1c4 100644
--- a/arch/arm/mach-pxa/mainstone.c
+++ b/arch/arm/mach-pxa/mainstone.c
@@ -191,7 +191,7 @@ static void __init mainstone_init_irq(void)
191 MST_INTSETCLR = 0; 191 MST_INTSETCLR = 0;
192 192
193 set_irq_chained_handler(IRQ_GPIO(0), mainstone_irq_handler); 193 set_irq_chained_handler(IRQ_GPIO(0), mainstone_irq_handler);
194 set_irq_type(IRQ_GPIO(0), IRQT_FALLING); 194 set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
195} 195}
196 196
197#ifdef CONFIG_PM 197#ifdef CONFIG_PM
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index 34cd585075b0..23e9b9283301 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -146,18 +146,18 @@ void sharpsl_pm_pxa_init(void)
146 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr, IRQF_DISABLED, "AC Input Detect", sharpsl_ac_isr)) { 146 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr, IRQF_DISABLED, "AC Input Detect", sharpsl_ac_isr)) {
147 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_acin)); 147 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_acin));
148 } 148 }
149 else set_irq_type(IRQ_GPIO(sharpsl_pm.machinfo->gpio_acin),IRQT_BOTHEDGE); 149 else set_irq_type(IRQ_GPIO(sharpsl_pm.machinfo->gpio_acin),IRQ_TYPE_EDGE_BOTH);
150 150
151 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batlock), sharpsl_fatal_isr, IRQF_DISABLED, "Battery Cover", sharpsl_fatal_isr)) { 151 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batlock), sharpsl_fatal_isr, IRQF_DISABLED, "Battery Cover", sharpsl_fatal_isr)) {
152 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_batlock)); 152 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_batlock));
153 } 153 }
154 else set_irq_type(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batlock),IRQT_FALLING); 154 else set_irq_type(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batlock),IRQ_TYPE_EDGE_FALLING);
155 155
156 if (sharpsl_pm.machinfo->gpio_fatal) { 156 if (sharpsl_pm.machinfo->gpio_fatal) {
157 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_fatal), sharpsl_fatal_isr, IRQF_DISABLED, "Fatal Battery", sharpsl_fatal_isr)) { 157 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_fatal), sharpsl_fatal_isr, IRQF_DISABLED, "Fatal Battery", sharpsl_fatal_isr)) {
158 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_fatal)); 158 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_fatal));
159 } 159 }
160 else set_irq_type(IRQ_GPIO(sharpsl_pm.machinfo->gpio_fatal),IRQT_FALLING); 160 else set_irq_type(IRQ_GPIO(sharpsl_pm.machinfo->gpio_fatal),IRQ_TYPE_EDGE_FALLING);
161 } 161 }
162 162
163 if (sharpsl_pm.machinfo->batfull_irq) 163 if (sharpsl_pm.machinfo->batfull_irq)
@@ -166,7 +166,7 @@ void sharpsl_pm_pxa_init(void)
166 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr, IRQF_DISABLED, "CO", sharpsl_chrg_full_isr)) { 166 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr, IRQF_DISABLED, "CO", sharpsl_chrg_full_isr)) {
167 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull)); 167 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull));
168 } 168 }
169 else set_irq_type(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull),IRQT_RISING); 169 else set_irq_type(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull),IRQ_TYPE_EDGE_RISING);
170 } 170 }
171} 171}
172 172
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
index dee7bf36f013..12811b7aea07 100644
--- a/arch/arm/mach-pxa/trizeps4.c
+++ b/arch/arm/mach-pxa/trizeps4.c
@@ -122,7 +122,7 @@ static struct resource dm9000_resources[] = {
122 [2] = { 122 [2] = {
123 .start = TRIZEPS4_ETH_IRQ, 123 .start = TRIZEPS4_ETH_IRQ,
124 .end = TRIZEPS4_ETH_IRQ, 124 .end = TRIZEPS4_ETH_IRQ,
125 .flags = (IORESOURCE_IRQ | IRQT_RISING), 125 .flags = (IORESOURCE_IRQ | IRQ_TYPE_EDGE_RISING),
126 }, 126 },
127}; 127};
128 128
diff --git a/arch/arm/mach-sa1100/cerf.c b/arch/arm/mach-sa1100/cerf.c
index 31afe50d7cd5..56d3ee01baae 100644
--- a/arch/arm/mach-sa1100/cerf.c
+++ b/arch/arm/mach-sa1100/cerf.c
@@ -96,7 +96,7 @@ static struct resource cerf_flash_resource = {
96static void __init cerf_init_irq(void) 96static void __init cerf_init_irq(void)
97{ 97{
98 sa1100_init_irq(); 98 sa1100_init_irq();
99 set_irq_type(CERF_ETH_IRQ, IRQT_RISING); 99 set_irq_type(CERF_ETH_IRQ, IRQ_TYPE_EDGE_RISING);
100} 100}
101 101
102static struct map_desc cerf_io_desc[] __initdata = { 102static struct map_desc cerf_io_desc[] __initdata = {
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c
index 8473c37b77d6..b34ff42bbd75 100644
--- a/arch/arm/mach-sa1100/h3600.c
+++ b/arch/arm/mach-sa1100/h3600.c
@@ -834,7 +834,7 @@ static void __init h3800_init_irq(void)
834 set_irq_chip(irq, &h3800_gpio_irqchip); 834 set_irq_chip(irq, &h3800_gpio_irqchip);
835 } 835 }
836#endif 836#endif
837 set_irq_type(IRQ_GPIO_H3800_ASIC, IRQT_RISING); 837 set_irq_type(IRQ_GPIO_H3800_ASIC, IRQ_TYPE_EDGE_RISING);
838 set_irq_chained_handler(IRQ_GPIO_H3800_ASIC, h3800_IRQ_demux); 838 set_irq_chained_handler(IRQ_GPIO_H3800_ASIC, h3800_IRQ_demux);
839} 839}
840 840
diff --git a/arch/arm/mach-sa1100/irq.c b/arch/arm/mach-sa1100/irq.c
index fa0403af7eec..c5e438b12ec7 100644
--- a/arch/arm/mach-sa1100/irq.c
+++ b/arch/arm/mach-sa1100/irq.c
@@ -46,17 +46,17 @@ static int sa1100_gpio_type(unsigned int irq, unsigned int type)
46 else 46 else
47 mask = GPIO11_27_MASK(irq); 47 mask = GPIO11_27_MASK(irq);
48 48
49 if (type == IRQT_PROBE) { 49 if (type == IRQ_TYPE_PROBE) {
50 if ((GPIO_IRQ_rising_edge | GPIO_IRQ_falling_edge) & mask) 50 if ((GPIO_IRQ_rising_edge | GPIO_IRQ_falling_edge) & mask)
51 return 0; 51 return 0;
52 type = __IRQT_RISEDGE | __IRQT_FALEDGE; 52 type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING;
53 } 53 }
54 54
55 if (type & __IRQT_RISEDGE) { 55 if (type & IRQ_TYPE_EDGE_RISING) {
56 GPIO_IRQ_rising_edge |= mask; 56 GPIO_IRQ_rising_edge |= mask;
57 } else 57 } else
58 GPIO_IRQ_rising_edge &= ~mask; 58 GPIO_IRQ_rising_edge &= ~mask;
59 if (type & __IRQT_FALEDGE) { 59 if (type & IRQ_TYPE_EDGE_FALLING) {
60 GPIO_IRQ_falling_edge |= mask; 60 GPIO_IRQ_falling_edge |= mask;
61 } else 61 } else
62 GPIO_IRQ_falling_edge &= ~mask; 62 GPIO_IRQ_falling_edge &= ~mask;
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index 9f1ed1509301..967a48454f6b 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -151,7 +151,7 @@ static int __devinit neponset_probe(struct platform_device *dev)
151 /* 151 /*
152 * Install handler for GPIO25. 152 * Install handler for GPIO25.
153 */ 153 */
154 set_irq_type(IRQ_GPIO25, IRQT_RISING); 154 set_irq_type(IRQ_GPIO25, IRQ_TYPE_EDGE_RISING);
155 set_irq_chained_handler(IRQ_GPIO25, neponset_irq_handler); 155 set_irq_chained_handler(IRQ_GPIO25, neponset_irq_handler);
156 156
157 /* 157 /*
diff --git a/arch/arm/mach-sa1100/pleb.c b/arch/arm/mach-sa1100/pleb.c
index c7bf7e0038f0..69a71f11625e 100644
--- a/arch/arm/mach-sa1100/pleb.c
+++ b/arch/arm/mach-sa1100/pleb.c
@@ -143,7 +143,7 @@ static void __init pleb_map_io(void)
143 143
144 GPDR &= ~GPIO_ETH0_IRQ; 144 GPDR &= ~GPIO_ETH0_IRQ;
145 145
146 set_irq_type(GPIO_ETH0_IRQ, IRQT_FALLING); 146 set_irq_type(GPIO_ETH0_IRQ, IRQ_TYPE_EDGE_FALLING);
147} 147}
148 148
149MACHINE_START(PLEB, "PLEB") 149MACHINE_START(PLEB, "PLEB")
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
index fbfa26058442..a8ec97b4752e 100644
--- a/arch/arm/mm/fault-armv.c
+++ b/arch/arm/mm/fault-armv.c
@@ -37,7 +37,7 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address)
37 pgd_t *pgd; 37 pgd_t *pgd;
38 pmd_t *pmd; 38 pmd_t *pmd;
39 pte_t *pte, entry; 39 pte_t *pte, entry;
40 int ret = 0; 40 int ret;
41 41
42 pgd = pgd_offset(vma->vm_mm, address); 42 pgd = pgd_offset(vma->vm_mm, address);
43 if (pgd_none(*pgd)) 43 if (pgd_none(*pgd))
@@ -55,15 +55,19 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address)
55 entry = *pte; 55 entry = *pte;
56 56
57 /* 57 /*
58 * If this page is present, it's actually being shared.
59 */
60 ret = pte_present(entry);
61
62 /*
58 * If this page isn't present, or is already setup to 63 * If this page isn't present, or is already setup to
59 * fault (ie, is old), we can safely ignore any issues. 64 * fault (ie, is old), we can safely ignore any issues.
60 */ 65 */
61 if (pte_present(entry) && pte_val(entry) & shared_pte_mask) { 66 if (ret && pte_val(entry) & shared_pte_mask) {
62 flush_cache_page(vma, address, pte_pfn(entry)); 67 flush_cache_page(vma, address, pte_pfn(entry));
63 pte_val(entry) &= ~shared_pte_mask; 68 pte_val(entry) &= ~shared_pte_mask;
64 set_pte_at(vma->vm_mm, address, pte, entry); 69 set_pte_at(vma->vm_mm, address, pte, entry);
65 flush_tlb_page(vma, address); 70 flush_tlb_page(vma, address);
66 ret = 1;
67 } 71 }
68 pte_unmap(pte); 72 pte_unmap(pte);
69 return ret; 73 return ret;
diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c
index 4a7736717d86..318b268f938e 100644
--- a/arch/arm/plat-mxc/gpio.c
+++ b/arch/arm/plat-mxc/gpio.c
@@ -73,19 +73,19 @@ static int gpio_set_irq_type(u32 irq, u32 type)
73 void __iomem *reg = port->base; 73 void __iomem *reg = port->base;
74 74
75 switch (type) { 75 switch (type) {
76 case IRQT_RISING: 76 case IRQ_TYPE_EDGE_RISING:
77 edge = GPIO_INT_RISE_EDGE; 77 edge = GPIO_INT_RISE_EDGE;
78 break; 78 break;
79 case IRQT_FALLING: 79 case IRQ_TYPE_EDGE_FALLING:
80 edge = GPIO_INT_FALL_EDGE; 80 edge = GPIO_INT_FALL_EDGE;
81 break; 81 break;
82 case IRQT_LOW: 82 case IRQ_TYPE_LEVEL_LOW:
83 edge = GPIO_INT_LOW_LEV; 83 edge = GPIO_INT_LOW_LEV;
84 break; 84 break;
85 case IRQT_HIGH: 85 case IRQ_TYPE_LEVEL_HIGH:
86 edge = GPIO_INT_HIGH_LEV; 86 edge = GPIO_INT_HIGH_LEV;
87 break; 87 break;
88 default: /* this includes IRQT_BOTHEDGE */ 88 default: /* this includes IRQ_TYPE_EDGE_BOTH */
89 return -EINVAL; 89 return -EINVAL;
90 } 90 }
91 91
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index d8e9c2c3f0f6..63e094342ef6 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -517,13 +517,13 @@ static inline void set_24xx_gpio_triggering(struct gpio_bank *bank, int gpio,
517 u32 gpio_bit = 1 << gpio; 517 u32 gpio_bit = 1 << gpio;
518 518
519 MOD_REG_BIT(OMAP24XX_GPIO_LEVELDETECT0, gpio_bit, 519 MOD_REG_BIT(OMAP24XX_GPIO_LEVELDETECT0, gpio_bit,
520 trigger & __IRQT_LOWLVL); 520 trigger & IRQ_TYPE_LEVEL_LOW);
521 MOD_REG_BIT(OMAP24XX_GPIO_LEVELDETECT1, gpio_bit, 521 MOD_REG_BIT(OMAP24XX_GPIO_LEVELDETECT1, gpio_bit,
522 trigger & __IRQT_HIGHLVL); 522 trigger & IRQ_TYPE_LEVEL_HIGH);
523 MOD_REG_BIT(OMAP24XX_GPIO_RISINGDETECT, gpio_bit, 523 MOD_REG_BIT(OMAP24XX_GPIO_RISINGDETECT, gpio_bit,
524 trigger & __IRQT_RISEDGE); 524 trigger & IRQ_TYPE_EDGE_RISING);
525 MOD_REG_BIT(OMAP24XX_GPIO_FALLINGDETECT, gpio_bit, 525 MOD_REG_BIT(OMAP24XX_GPIO_FALLINGDETECT, gpio_bit,
526 trigger & __IRQT_FALEDGE); 526 trigger & IRQ_TYPE_EDGE_FALLING);
527 527
528 if (likely(!(bank->non_wakeup_gpios & gpio_bit))) { 528 if (likely(!(bank->non_wakeup_gpios & gpio_bit))) {
529 if (trigger != 0) 529 if (trigger != 0)
@@ -555,9 +555,9 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
555 case METHOD_MPUIO: 555 case METHOD_MPUIO:
556 reg += OMAP_MPUIO_GPIO_INT_EDGE; 556 reg += OMAP_MPUIO_GPIO_INT_EDGE;
557 l = __raw_readl(reg); 557 l = __raw_readl(reg);
558 if (trigger & __IRQT_RISEDGE) 558 if (trigger & IRQ_TYPE_EDGE_RISING)
559 l |= 1 << gpio; 559 l |= 1 << gpio;
560 else if (trigger & __IRQT_FALEDGE) 560 else if (trigger & IRQ_TYPE_EDGE_FALLING)
561 l &= ~(1 << gpio); 561 l &= ~(1 << gpio);
562 else 562 else
563 goto bad; 563 goto bad;
@@ -567,9 +567,9 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
567 case METHOD_GPIO_1510: 567 case METHOD_GPIO_1510:
568 reg += OMAP1510_GPIO_INT_CONTROL; 568 reg += OMAP1510_GPIO_INT_CONTROL;
569 l = __raw_readl(reg); 569 l = __raw_readl(reg);
570 if (trigger & __IRQT_RISEDGE) 570 if (trigger & IRQ_TYPE_EDGE_RISING)
571 l |= 1 << gpio; 571 l |= 1 << gpio;
572 else if (trigger & __IRQT_FALEDGE) 572 else if (trigger & IRQ_TYPE_EDGE_FALLING)
573 l &= ~(1 << gpio); 573 l &= ~(1 << gpio);
574 else 574 else
575 goto bad; 575 goto bad;
@@ -584,9 +584,9 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
584 gpio &= 0x07; 584 gpio &= 0x07;
585 l = __raw_readl(reg); 585 l = __raw_readl(reg);
586 l &= ~(3 << (gpio << 1)); 586 l &= ~(3 << (gpio << 1));
587 if (trigger & __IRQT_RISEDGE) 587 if (trigger & IRQ_TYPE_EDGE_RISING)
588 l |= 2 << (gpio << 1); 588 l |= 2 << (gpio << 1);
589 if (trigger & __IRQT_FALEDGE) 589 if (trigger & IRQ_TYPE_EDGE_FALLING)
590 l |= 1 << (gpio << 1); 590 l |= 1 << (gpio << 1);
591 if (trigger) 591 if (trigger)
592 /* Enable wake-up during idle for dynamic tick */ 592 /* Enable wake-up during idle for dynamic tick */
@@ -599,9 +599,9 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
599 case METHOD_GPIO_730: 599 case METHOD_GPIO_730:
600 reg += OMAP730_GPIO_INT_CONTROL; 600 reg += OMAP730_GPIO_INT_CONTROL;
601 l = __raw_readl(reg); 601 l = __raw_readl(reg);
602 if (trigger & __IRQT_RISEDGE) 602 if (trigger & IRQ_TYPE_EDGE_RISING)
603 l |= 1 << gpio; 603 l |= 1 << gpio;
604 else if (trigger & __IRQT_FALEDGE) 604 else if (trigger & IRQ_TYPE_EDGE_FALLING)
605 l &= ~(1 << gpio); 605 l &= ~(1 << gpio);
606 else 606 else
607 goto bad; 607 goto bad;
@@ -887,7 +887,7 @@ static void _reset_gpio(struct gpio_bank *bank, int gpio)
887 _set_gpio_direction(bank, get_gpio_index(gpio), 1); 887 _set_gpio_direction(bank, get_gpio_index(gpio), 1);
888 _set_gpio_irqenable(bank, gpio, 0); 888 _set_gpio_irqenable(bank, gpio, 0);
889 _clear_gpio_irqstatus(bank, gpio); 889 _clear_gpio_irqstatus(bank, gpio);
890 _set_gpio_triggering(bank, get_gpio_index(gpio), IRQT_NOEDGE); 890 _set_gpio_triggering(bank, get_gpio_index(gpio), IRQ_TYPE_NONE);
891} 891}
892 892
893/* Use disable_irq_wake() and enable_irq_wake() functions from drivers */ 893/* Use disable_irq_wake() and enable_irq_wake() functions from drivers */
@@ -924,7 +924,7 @@ int omap_request_gpio(int gpio)
924 /* Set trigger to none. You need to enable the desired trigger with 924 /* Set trigger to none. You need to enable the desired trigger with
925 * request_irq() or set_irq_type(). 925 * request_irq() or set_irq_type().
926 */ 926 */
927 _set_gpio_triggering(bank, get_gpio_index(gpio), IRQT_NOEDGE); 927 _set_gpio_triggering(bank, get_gpio_index(gpio), IRQ_TYPE_NONE);
928 928
929#ifdef CONFIG_ARCH_OMAP15XX 929#ifdef CONFIG_ARCH_OMAP15XX
930 if (bank->method == METHOD_GPIO_1510) { 930 if (bank->method == METHOD_GPIO_1510) {
diff --git a/arch/arm/plat-s3c24xx/Kconfig b/arch/arm/plat-s3c24xx/Kconfig
index 5e28c217b8c2..0af3872fb763 100644
--- a/arch/arm/plat-s3c24xx/Kconfig
+++ b/arch/arm/plat-s3c24xx/Kconfig
@@ -9,7 +9,7 @@ config PLAT_S3C24XX
9 depends on ARCH_S3C2410 9 depends on ARCH_S3C2410
10 default y if ARCH_S3C2410 10 default y if ARCH_S3C2410
11 select NO_IOPORT 11 select NO_IOPORT
12 select HAVE_GPIO_LIB 12 select ARCH_REQUIRE_GPIOLIB
13 help 13 help
14 Base platform code for any Samsung S3C24XX device 14 Base platform code for any Samsung S3C24XX device
15 15
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
index 60f162dc4fad..8c5e656d5d8c 100644
--- a/arch/arm/plat-s3c24xx/dma.c
+++ b/arch/arm/plat-s3c24xx/dma.c
@@ -1304,7 +1304,7 @@ struct sysdev_class dma_sysclass = {
1304 1304
1305/* kmem cache implementation */ 1305/* kmem cache implementation */
1306 1306
1307static void s3c2410_dma_cache_ctor(struct kmem_cache *c, void *p) 1307static void s3c2410_dma_cache_ctor(void *p)
1308{ 1308{
1309 memset(p, 0, sizeof(struct s3c2410_dma_buf)); 1309 memset(p, 0, sizeof(struct s3c2410_dma_buf));
1310} 1310}
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
index ae2c5d7efc9d..001436c04b13 100644
--- a/arch/arm/plat-s3c24xx/irq.c
+++ b/arch/arm/plat-s3c24xx/irq.c
@@ -292,27 +292,27 @@ s3c_irqext_type(unsigned int irq, unsigned int type)
292 /* Set the external interrupt to pointed trigger type */ 292 /* Set the external interrupt to pointed trigger type */
293 switch (type) 293 switch (type)
294 { 294 {
295 case IRQT_NOEDGE: 295 case IRQ_TYPE_NONE:
296 printk(KERN_WARNING "No edge setting!\n"); 296 printk(KERN_WARNING "No edge setting!\n");
297 break; 297 break;
298 298
299 case IRQT_RISING: 299 case IRQ_TYPE_EDGE_RISING:
300 newvalue = S3C2410_EXTINT_RISEEDGE; 300 newvalue = S3C2410_EXTINT_RISEEDGE;
301 break; 301 break;
302 302
303 case IRQT_FALLING: 303 case IRQ_TYPE_EDGE_FALLING:
304 newvalue = S3C2410_EXTINT_FALLEDGE; 304 newvalue = S3C2410_EXTINT_FALLEDGE;
305 break; 305 break;
306 306
307 case IRQT_BOTHEDGE: 307 case IRQ_TYPE_EDGE_BOTH:
308 newvalue = S3C2410_EXTINT_BOTHEDGE; 308 newvalue = S3C2410_EXTINT_BOTHEDGE;
309 break; 309 break;
310 310
311 case IRQT_LOW: 311 case IRQ_TYPE_LEVEL_LOW:
312 newvalue = S3C2410_EXTINT_LOWLEV; 312 newvalue = S3C2410_EXTINT_LOWLEV;
313 break; 313 break;
314 314
315 case IRQT_HIGH: 315 case IRQ_TYPE_LEVEL_HIGH:
316 newvalue = S3C2410_EXTINT_HILEV; 316 newvalue = S3C2410_EXTINT_HILEV;
317 break; 317 break;
318 318
diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig
index af90b00100fd..8dc48214f0b7 100644
--- a/arch/avr32/boards/atstk1000/Kconfig
+++ b/arch/avr32/boards/atstk1000/Kconfig
@@ -18,6 +18,10 @@ config BOARD_ATSTK1004
18 bool "ATSTK1004" 18 bool "ATSTK1004"
19 select CPU_AT32AP7002 19 select CPU_AT32AP7002
20 20
21config BOARD_ATSTK1006
22 bool "ATSTK1006"
23 select CPU_AT32AP7000
24
21endchoice 25endchoice
22 26
23 27
diff --git a/arch/avr32/boards/atstk1000/Makefile b/arch/avr32/boards/atstk1000/Makefile
index beead86462e8..edecee03742d 100644
--- a/arch/avr32/boards/atstk1000/Makefile
+++ b/arch/avr32/boards/atstk1000/Makefile
@@ -2,3 +2,4 @@ obj-y += setup.o flash.o
2obj-$(CONFIG_BOARD_ATSTK1002) += atstk1002.o 2obj-$(CONFIG_BOARD_ATSTK1002) += atstk1002.o
3obj-$(CONFIG_BOARD_ATSTK1003) += atstk1003.o 3obj-$(CONFIG_BOARD_ATSTK1003) += atstk1003.o
4obj-$(CONFIG_BOARD_ATSTK1004) += atstk1004.o 4obj-$(CONFIG_BOARD_ATSTK1004) += atstk1004.o
5obj-$(CONFIG_BOARD_ATSTK1006) += atstk1002.o
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c
index e11659b732fa..8538ba75ef92 100644
--- a/arch/avr32/boards/atstk1000/atstk1002.c
+++ b/arch/avr32/boards/atstk1000/atstk1002.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * ATSTK1002 daughterboard-specific init code 2 * ATSTK1002/ATSTK1006 daughterboard-specific init code
3 * 3 *
4 * Copyright (C) 2005-2006 Atmel Corporation 4 * Copyright (C) 2005-2007 Atmel Corporation
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
@@ -21,6 +21,8 @@
21 21
22#include <asm/io.h> 22#include <asm/io.h>
23#include <asm/setup.h> 23#include <asm/setup.h>
24#include <asm/atmel-mci.h>
25
24#include <asm/arch/at32ap700x.h> 26#include <asm/arch/at32ap700x.h>
25#include <asm/arch/board.h> 27#include <asm/arch/board.h>
26#include <asm/arch/init.h> 28#include <asm/arch/init.h>
@@ -35,6 +37,74 @@ unsigned long at32_board_osc_rates[3] = {
35 [2] = 12000000, /* 12 MHz on osc1 */ 37 [2] = 12000000, /* 12 MHz on osc1 */
36}; 38};
37 39
40/*
41 * The ATSTK1006 daughterboard is very similar to the ATSTK1002. Both
42 * have the AT32AP7000 chip on board; the difference is that the
43 * STK1006 has 128 MB SDRAM (the STK1002 uses the 8 MB SDRAM chip on
44 * the STK1000 motherboard) and 256 MB NAND flash (the STK1002 has
45 * none.)
46 *
47 * The RAM difference is handled by the boot loader, so the only
48 * difference we end up handling here is the NAND flash.
49 */
50#ifdef CONFIG_BOARD_ATSTK1006
51#include <linux/mtd/partitions.h>
52#include <asm/arch/smc.h>
53
54static struct smc_timing nand_timing __initdata = {
55 .ncs_read_setup = 0,
56 .nrd_setup = 10,
57 .ncs_write_setup = 0,
58 .nwe_setup = 10,
59
60 .ncs_read_pulse = 30,
61 .nrd_pulse = 15,
62 .ncs_write_pulse = 30,
63 .nwe_pulse = 15,
64
65 .read_cycle = 30,
66 .write_cycle = 30,
67
68 .ncs_read_recover = 0,
69 .nrd_recover = 15,
70 .ncs_write_recover = 0,
71 /* WE# high -> RE# low min 60 ns */
72 .nwe_recover = 50,
73};
74
75static struct smc_config nand_config __initdata = {
76 .bus_width = 1,
77 .nrd_controlled = 1,
78 .nwe_controlled = 1,
79 .nwait_mode = 0,
80 .byte_write = 0,
81 .tdf_cycles = 2,
82 .tdf_mode = 0,
83};
84
85static struct mtd_partition nand_partitions[] = {
86 {
87 .name = "main",
88 .offset = 0x00000000,
89 .size = MTDPART_SIZ_FULL,
90 },
91};
92
93static struct mtd_partition *nand_part_info(int size, int *num_partitions)
94{
95 *num_partitions = ARRAY_SIZE(nand_partitions);
96 return nand_partitions;
97}
98
99struct atmel_nand_data atstk1006_nand_data __initdata = {
100 .cle = 21,
101 .ale = 22,
102 .rdy_pin = GPIO_PIN_PB(30),
103 .enable_pin = GPIO_PIN_PB(29),
104 .partition_info = nand_part_info,
105};
106#endif
107
38struct eth_addr { 108struct eth_addr {
39 u8 addr[6]; 109 u8 addr[6];
40}; 110};
@@ -192,6 +262,21 @@ void __init setup_board(void)
192 at32_setup_serial_console(0); 262 at32_setup_serial_console(0);
193} 263}
194 264
265#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
266
267/* MMC card detect requires MACB0 *NOT* be used */
268#ifdef CONFIG_BOARD_ATSTK1002_SW6_CUSTOM
269static struct mci_platform_data __initdata mci0_data = {
270 .detect_pin = GPIO_PIN_PC(14), /* gpio30/sdcd */
271 .wp_pin = GPIO_PIN_PC(15), /* gpio31/sdwp */
272};
273#define MCI_PDATA &mci0_data
274#else
275#define MCI_PDATA NULL
276#endif /* SW6 for sd{cd,wp} routing */
277
278#endif /* SW2 for MMC signal routing */
279
195static int __init atstk1002_init(void) 280static int __init atstk1002_init(void)
196{ 281{
197 /* 282 /*
@@ -218,6 +303,12 @@ static int __init atstk1002_init(void)
218 303
219 at32_add_system_devices(); 304 at32_add_system_devices();
220 305
306#ifdef CONFIG_BOARD_ATSTK1006
307 smc_set_timing(&nand_config, &nand_timing);
308 smc_set_configuration(3, &nand_config);
309 at32_add_device_nand(0, &atstk1006_nand_data);
310#endif
311
221#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM 312#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
222 at32_add_device_usart(1); 313 at32_add_device_usart(1);
223#else 314#else
@@ -235,7 +326,7 @@ static int __init atstk1002_init(void)
235 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); 326 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
236#endif 327#endif
237#ifndef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM 328#ifndef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM
238 at32_add_device_mci(0, NULL); 329 at32_add_device_mci(0, MCI_PDATA);
239#endif 330#endif
240#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM 331#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM
241 set_hw_addr(at32_add_device_eth(1, &eth_data[1])); 332 set_hw_addr(at32_add_device_eth(1, &eth_data[1]));
diff --git a/arch/avr32/boards/atstk1000/atstk1003.c b/arch/avr32/boards/atstk1000/atstk1003.c
index ea109f435a83..591fc73b554a 100644
--- a/arch/avr32/boards/atstk1000/atstk1003.c
+++ b/arch/avr32/boards/atstk1000/atstk1003.c
@@ -154,7 +154,7 @@ static int __init atstk1003_init(void)
154 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); 154 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
155#endif 155#endif
156#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM 156#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
157 at32_add_device_mci(0); 157 at32_add_device_mci(0, NULL);
158#endif 158#endif
159 at32_add_device_usba(0, NULL); 159 at32_add_device_usba(0, NULL);
160#ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM 160#ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM
diff --git a/arch/avr32/boards/atstk1000/atstk1004.c b/arch/avr32/boards/atstk1000/atstk1004.c
index c7236df74d74..d9c5e0a21256 100644
--- a/arch/avr32/boards/atstk1000/atstk1004.c
+++ b/arch/avr32/boards/atstk1000/atstk1004.c
@@ -137,7 +137,7 @@ static int __init atstk1004_init(void)
137 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); 137 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
138#endif 138#endif
139#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM 139#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
140 at32_add_device_mci(0); 140 at32_add_device_mci(0, NULL);
141#endif 141#endif
142 at32_add_device_lcdc(0, &atstk1000_lcdc_data, 142 at32_add_device_lcdc(0, &atstk1000_lcdc_data,
143 fbmem_start, fbmem_size, 0); 143 fbmem_start, fbmem_size, 0);
diff --git a/arch/avr32/kernel/time.c b/arch/avr32/kernel/time.c
index abd954fb7ba0..7e7f32771ae1 100644
--- a/arch/avr32/kernel/time.c
+++ b/arch/avr32/kernel/time.c
@@ -43,6 +43,9 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
43{ 43{
44 struct clock_event_device *evdev = dev_id; 44 struct clock_event_device *evdev = dev_id;
45 45
46 if (unlikely(!(intc_get_pending(0) & 1)))
47 return IRQ_NONE;
48
46 /* 49 /*
47 * Disable the interrupt until the clockevent subsystem 50 * Disable the interrupt until the clockevent subsystem
48 * reprograms it. 51 * reprograms it.
@@ -55,7 +58,8 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
55 58
56static struct irqaction timer_irqaction = { 59static struct irqaction timer_irqaction = {
57 .handler = timer_interrupt, 60 .handler = timer_interrupt,
58 .flags = IRQF_TIMER | IRQF_DISABLED, 61 /* Oprofile uses the same irq as the timer, so allow it to be shared */
62 .flags = IRQF_TIMER | IRQF_DISABLED | IRQF_SHARED,
59 .name = "avr32_comparator", 63 .name = "avr32_comparator",
60}; 64};
61 65
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c
index 604f44f5dd16..1617048c86c5 100644
--- a/arch/avr32/mach-at32ap/at32ap700x.c
+++ b/arch/avr32/mach-at32ap/at32ap700x.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/dma-mapping.h> 14#include <linux/dma-mapping.h>
15#include <linux/gpio.h>
15#include <linux/spi/spi.h> 16#include <linux/spi/spi.h>
16#include <linux/usb/atmel_usba_udc.h> 17#include <linux/usb/atmel_usba_udc.h>
17 18
@@ -1285,7 +1286,6 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
1285{ 1286{
1286 struct mci_platform_data _data; 1287 struct mci_platform_data _data;
1287 struct platform_device *pdev; 1288 struct platform_device *pdev;
1288 struct dw_dma_slave *dws;
1289 1289
1290 if (id != 0) 1290 if (id != 0)
1291 return NULL; 1291 return NULL;
@@ -1300,7 +1300,9 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
1300 1300
1301 if (!data) { 1301 if (!data) {
1302 data = &_data; 1302 data = &_data;
1303 memset(data, 0, sizeof(struct mci_platform_data)); 1303 memset(data, -1, sizeof(struct mci_platform_data));
1304 data->detect_pin = GPIO_PIN_NONE;
1305 data->wp_pin = GPIO_PIN_NONE;
1304 } 1306 }
1305 1307
1306 if (platform_device_add_data(pdev, data, 1308 if (platform_device_add_data(pdev, data,
@@ -1314,12 +1316,10 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
1314 select_peripheral(PA(14), PERIPH_A, 0); /* DATA2 */ 1316 select_peripheral(PA(14), PERIPH_A, 0); /* DATA2 */
1315 select_peripheral(PA(15), PERIPH_A, 0); /* DATA3 */ 1317 select_peripheral(PA(15), PERIPH_A, 0); /* DATA3 */
1316 1318
1317 if (data) { 1319 if (gpio_is_valid(data->detect_pin))
1318 if (data->detect_pin != GPIO_PIN_NONE) 1320 at32_select_gpio(data->detect_pin, 0);
1319 at32_select_gpio(data->detect_pin, 0); 1321 if (gpio_is_valid(data->wp_pin))
1320 if (data->wp_pin != GPIO_PIN_NONE) 1322 at32_select_gpio(data->wp_pin, 0);
1321 at32_select_gpio(data->wp_pin, 0);
1322 }
1323 1323
1324 atmel_mci0_pclk.dev = &pdev->dev; 1324 atmel_mci0_pclk.dev = &pdev->dev;
1325 1325
@@ -1853,11 +1853,11 @@ at32_add_device_cf(unsigned int id, unsigned int extint,
1853 if (at32_init_ide_or_cf(pdev, data->cs, extint)) 1853 if (at32_init_ide_or_cf(pdev, data->cs, extint))
1854 goto fail; 1854 goto fail;
1855 1855
1856 if (data->detect_pin != GPIO_PIN_NONE) 1856 if (gpio_is_valid(data->detect_pin))
1857 at32_select_gpio(data->detect_pin, AT32_GPIOF_DEGLITCH); 1857 at32_select_gpio(data->detect_pin, AT32_GPIOF_DEGLITCH);
1858 if (data->reset_pin != GPIO_PIN_NONE) 1858 if (gpio_is_valid(data->reset_pin))
1859 at32_select_gpio(data->reset_pin, 0); 1859 at32_select_gpio(data->reset_pin, 0);
1860 if (data->vcc_pin != GPIO_PIN_NONE) 1860 if (gpio_is_valid(data->vcc_pin))
1861 at32_select_gpio(data->vcc_pin, 0); 1861 at32_select_gpio(data->vcc_pin, 0);
1862 /* READY is used as extint, so we can't select it as gpio */ 1862 /* READY is used as extint, so we can't select it as gpio */
1863 1863
@@ -1871,6 +1871,58 @@ fail:
1871#endif 1871#endif
1872 1872
1873/* -------------------------------------------------------------------- 1873/* --------------------------------------------------------------------
1874 * NAND Flash / SmartMedia
1875 * -------------------------------------------------------------------- */
1876static struct resource smc_cs3_resource[] __initdata = {
1877 {
1878 .start = 0x0c000000,
1879 .end = 0x0fffffff,
1880 .flags = IORESOURCE_MEM,
1881 }, {
1882 .start = 0xfff03c00,
1883 .end = 0xfff03fff,
1884 .flags = IORESOURCE_MEM,
1885 },
1886};
1887
1888struct platform_device *__init
1889at32_add_device_nand(unsigned int id, struct atmel_nand_data *data)
1890{
1891 struct platform_device *pdev;
1892
1893 if (id != 0 || !data)
1894 return NULL;
1895
1896 pdev = platform_device_alloc("atmel_nand", id);
1897 if (!pdev)
1898 goto fail;
1899
1900 if (platform_device_add_resources(pdev, smc_cs3_resource,
1901 ARRAY_SIZE(smc_cs3_resource)))
1902 goto fail;
1903
1904 if (platform_device_add_data(pdev, data,
1905 sizeof(struct atmel_nand_data)))
1906 goto fail;
1907
1908 set_ebi_sfr_bits(HMATRIX_BIT(CS3A));
1909 if (data->enable_pin)
1910 at32_select_gpio(data->enable_pin,
1911 AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
1912 if (data->rdy_pin)
1913 at32_select_gpio(data->rdy_pin, 0);
1914 if (data->det_pin)
1915 at32_select_gpio(data->det_pin, 0);
1916
1917 platform_device_add(pdev);
1918 return pdev;
1919
1920fail:
1921 platform_device_put(pdev);
1922 return NULL;
1923}
1924
1925/* --------------------------------------------------------------------
1874 * AC97C 1926 * AC97C
1875 * -------------------------------------------------------------------- */ 1927 * -------------------------------------------------------------------- */
1876static struct resource atmel_ac97c0_resource[] __initdata = { 1928static struct resource atmel_ac97c0_resource[] __initdata = {
@@ -1885,9 +1937,11 @@ static struct clk atmel_ac97c0_pclk = {
1885 .index = 10, 1937 .index = 10,
1886}; 1938};
1887 1939
1888struct platform_device *__init at32_add_device_ac97c(unsigned int id) 1940struct platform_device *__init
1941at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data)
1889{ 1942{
1890 struct platform_device *pdev; 1943 struct platform_device *pdev;
1944 struct ac97c_platform_data _data;
1891 1945
1892 if (id != 0) 1946 if (id != 0)
1893 return NULL; 1947 return NULL;
@@ -1898,19 +1952,37 @@ struct platform_device *__init at32_add_device_ac97c(unsigned int id)
1898 1952
1899 if (platform_device_add_resources(pdev, atmel_ac97c0_resource, 1953 if (platform_device_add_resources(pdev, atmel_ac97c0_resource,
1900 ARRAY_SIZE(atmel_ac97c0_resource))) 1954 ARRAY_SIZE(atmel_ac97c0_resource)))
1901 goto err_add_resources; 1955 goto fail;
1902 1956
1903 select_peripheral(PB(20), PERIPH_B, 0); /* SYNC */ 1957 if (!data) {
1904 select_peripheral(PB(21), PERIPH_B, 0); /* SDO */ 1958 data = &_data;
1905 select_peripheral(PB(22), PERIPH_B, 0); /* SDI */ 1959 memset(data, 0, sizeof(struct ac97c_platform_data));
1906 select_peripheral(PB(23), PERIPH_B, 0); /* SCLK */ 1960 data->reset_pin = GPIO_PIN_NONE;
1961 }
1962
1963 data->dma_rx_periph_id = 3;
1964 data->dma_tx_periph_id = 4;
1965 data->dma_controller_id = 0;
1966
1967 if (platform_device_add_data(pdev, data,
1968 sizeof(struct ac97c_platform_data)))
1969 goto fail;
1970
1971 select_peripheral(PB(20), PERIPH_B, 0); /* SDO */
1972 select_peripheral(PB(21), PERIPH_B, 0); /* SYNC */
1973 select_peripheral(PB(22), PERIPH_B, 0); /* SCLK */
1974 select_peripheral(PB(23), PERIPH_B, 0); /* SDI */
1975
1976 /* TODO: gpio_is_valid(data->reset_pin) with kernel 2.6.26. */
1977 if (data->reset_pin != GPIO_PIN_NONE)
1978 at32_select_gpio(data->reset_pin, 0);
1907 1979
1908 atmel_ac97c0_pclk.dev = &pdev->dev; 1980 atmel_ac97c0_pclk.dev = &pdev->dev;
1909 1981
1910 platform_device_add(pdev); 1982 platform_device_add(pdev);
1911 return pdev; 1983 return pdev;
1912 1984
1913err_add_resources: 1985fail:
1914 platform_device_put(pdev); 1986 platform_device_put(pdev);
1915 return NULL; 1987 return NULL;
1916} 1988}
diff --git a/arch/avr32/mach-at32ap/hsmc.c b/arch/avr32/mach-at32ap/hsmc.c
index fa427ed42787..b2d9bc61a35c 100644
--- a/arch/avr32/mach-at32ap/hsmc.c
+++ b/arch/avr32/mach-at32ap/hsmc.c
@@ -278,4 +278,4 @@ static int __init hsmc_init(void)
278{ 278{
279 return platform_driver_register(&hsmc_driver); 279 return platform_driver_register(&hsmc_driver);
280} 280}
281arch_initcall(hsmc_init); 281core_initcall(hsmc_init);
diff --git a/arch/avr32/mm/init.c b/arch/avr32/mm/init.c
index 3c85fdaa9487..fa92ff6d95f7 100644
--- a/arch/avr32/mm/init.c
+++ b/arch/avr32/mm/init.c
@@ -38,45 +38,6 @@ EXPORT_SYMBOL(empty_zero_page);
38 */ 38 */
39unsigned long mmu_context_cache = NO_CONTEXT; 39unsigned long mmu_context_cache = NO_CONTEXT;
40 40
41void show_mem(void)
42{
43 int total = 0, reserved = 0, cached = 0;
44 int slab = 0, free = 0, shared = 0;
45 pg_data_t *pgdat;
46
47 printk("Mem-info:\n");
48 show_free_areas();
49
50 for_each_online_pgdat(pgdat) {
51 struct page *page, *end;
52
53 page = pgdat->node_mem_map;
54 end = page + pgdat->node_spanned_pages;
55
56 do {
57 total++;
58 if (PageReserved(page))
59 reserved++;
60 else if (PageSwapCache(page))
61 cached++;
62 else if (PageSlab(page))
63 slab++;
64 else if (!page_count(page))
65 free++;
66 else
67 shared += page_count(page) - 1;
68 page++;
69 } while (page < end);
70 }
71
72 printk ("%d pages of RAM\n", total);
73 printk ("%d free pages\n", free);
74 printk ("%d reserved pages\n", reserved);
75 printk ("%d slab pages\n", slab);
76 printk ("%d pages shared\n", shared);
77 printk ("%d pages swap cached\n", cached);
78}
79
80/* 41/*
81 * paging_init() sets up the page tables 42 * paging_init() sets up the page tables
82 * 43 *
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index b83b8ef84e91..5a097c46bc46 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -234,7 +234,7 @@ config MEM_MT48LC16M16A2TG_75
234 bool 234 bool
235 depends on (BFIN533_EZKIT || BFIN561_EZKIT \ 235 depends on (BFIN533_EZKIT || BFIN561_EZKIT \
236 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \ 236 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \
237 || H8606_HVSISTEMAS) 237 || H8606_HVSISTEMAS || BFIN527_BLUETECHNIX_CM)
238 default y 238 default y
239 239
240config MEM_MT48LC32M8A2_75 240config MEM_MT48LC32M8A2_75
@@ -310,25 +310,6 @@ config BFIN_KERNEL_CLOCK
310 are also not changed, and the Bootloader does 100% of the hardware 310 are also not changed, and the Bootloader does 100% of the hardware
311 configuration. 311 configuration.
312 312
313config MEM_SIZE
314 int "SDRAM Memory Size in MBytes"
315 depends on BFIN_KERNEL_CLOCK
316 default 64
317
318config MEM_ADD_WIDTH
319 int "Memory Address Width"
320 depends on BFIN_KERNEL_CLOCK
321 depends on (!BF54x)
322 range 8 11
323 default 9 if BFIN533_EZKIT
324 default 9 if BFIN561_EZKIT
325 default 9 if H8606_HVSISTEMAS
326 default 10 if BFIN527_EZKIT
327 default 10 if BFIN537_STAMP
328 default 11 if BFIN533_STAMP
329 default 10 if PNAV10
330 default 10 if BFIN532_IP0X
331
332config PLL_BYPASS 313config PLL_BYPASS
333 bool "Bypass PLL" 314 bool "Bypass PLL"
334 depends on BFIN_KERNEL_CLOCK 315 depends on BFIN_KERNEL_CLOCK
@@ -349,8 +330,7 @@ config VCO_MULT
349 default "45" if BFIN533_STAMP 330 default "45" if BFIN533_STAMP
350 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM) 331 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM)
351 default "22" if BFIN533_BLUETECHNIX_CM 332 default "22" if BFIN533_BLUETECHNIX_CM
352 default "20" if BFIN537_BLUETECHNIX_CM 333 default "20" if (BFIN537_BLUETECHNIX_CM || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
353 default "20" if BFIN561_BLUETECHNIX_CM
354 default "20" if BFIN561_EZKIT 334 default "20" if BFIN561_EZKIT
355 default "16" if H8606_HVSISTEMAS 335 default "16" if H8606_HVSISTEMAS
356 help 336 help
@@ -390,7 +370,7 @@ config SCLK_DIV
390 370
391config MAX_MEM_SIZE 371config MAX_MEM_SIZE
392 int "Max SDRAM Memory Size in MBytes" 372 int "Max SDRAM Memory Size in MBytes"
393 depends on !BFIN_KERNEL_CLOCK && !MPU 373 depends on !MPU
394 default 512 374 default 512
395 help 375 help
396 This is the max memory size that the kernel will create CPLB 376 This is the max memory size that the kernel will create CPLB
@@ -748,14 +728,6 @@ config BFIN_WT
748 728
749endchoice 729endchoice
750 730
751config L1_MAX_PIECE
752 int "Set the max L1 SRAM pieces"
753 default 16
754 help
755 Set the max memory pieces for the L1 SRAM allocation algorithm.
756 Min value is 16. Max value is 1024.
757
758
759config MPU 731config MPU
760 bool "Enable the memory protection unit (EXPERIMENTAL)" 732 bool "Enable the memory protection unit (EXPERIMENTAL)"
761 default n 733 default n
@@ -899,7 +871,7 @@ config ARCH_SUSPEND_POSSIBLE
899 depends on !SMP 871 depends on !SMP
900 872
901choice 873choice
902 prompt "Default Power Saving Mode" 874 prompt "Standby Power Saving Mode"
903 depends on PM 875 depends on PM
904 default PM_BFIN_SLEEP_DEEPER 876 default PM_BFIN_SLEEP_DEEPER
905config PM_BFIN_SLEEP_DEEPER 877config PM_BFIN_SLEEP_DEEPER
@@ -918,6 +890,8 @@ config PM_BFIN_SLEEP_DEEPER
918 normal during Sleep Deeper, due to the reduced SCLK frequency. 890 normal during Sleep Deeper, due to the reduced SCLK frequency.
919 When in the sleep mode, system DMA access to L1 memory is not supported. 891 When in the sleep mode, system DMA access to L1 memory is not supported.
920 892
893 If unsure, select "Sleep Deeper".
894
921config PM_BFIN_SLEEP 895config PM_BFIN_SLEEP
922 bool "Sleep" 896 bool "Sleep"
923 help 897 help
@@ -925,15 +899,17 @@ config PM_BFIN_SLEEP
925 dissipation by disabling the clock to the processor core (CCLK). 899 dissipation by disabling the clock to the processor core (CCLK).
926 The PLL and system clock (SCLK), however, continue to operate in 900 The PLL and system clock (SCLK), however, continue to operate in
927 this mode. Typically an external event or RTC activity will wake 901 this mode. Typically an external event or RTC activity will wake
928 up the processor. When in the sleep mode, 902 up the processor. When in the sleep mode, system DMA access to L1
929 system DMA access to L1 memory is not supported. 903 memory is not supported.
904
905 If unsure, select "Sleep Deeper".
930endchoice 906endchoice
931 907
932config PM_WAKEUP_BY_GPIO 908config PM_WAKEUP_BY_GPIO
933 bool "Cause Wakeup Event by GPIO" 909 bool "Allow Wakeup from Standby by GPIO"
934 910
935config PM_WAKEUP_GPIO_NUMBER 911config PM_WAKEUP_GPIO_NUMBER
936 int "Wakeup GPIO number" 912 int "GPIO number"
937 range 0 47 913 range 0 47
938 depends on PM_WAKEUP_BY_GPIO 914 depends on PM_WAKEUP_BY_GPIO
939 default 2 if BFIN537_STAMP 915 default 2 if BFIN537_STAMP
@@ -954,6 +930,58 @@ config PM_WAKEUP_GPIO_POLAR_EDGE_B
954 bool "Both EDGE" 930 bool "Both EDGE"
955endchoice 931endchoice
956 932
933comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
934 depends on PM
935
936config PM_BFIN_WAKE_RTC
937 bool "Allow Wake-Up from RESET and on-chip RTC"
938 depends on PM
939 default n
940 help
941 Enable RTC Wake-Up (Voltage Regulator Power-Up)
942
943config PM_BFIN_WAKE_PH6
944 bool "Allow Wake-Up from on-chip PHY or PH6 GP"
945 depends on PM && (BF52x || BF534 || BF536 || BF537)
946 default n
947 help
948 Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
949
950config PM_BFIN_WAKE_CAN
951 bool "Allow Wake-Up from on-chip CAN0/1"
952 depends on PM && (BF54x || BF534 || BF536 || BF537)
953 default n
954 help
955 Enable CAN0/1 Wake-Up (Voltage Regulator Power-Up)
956
957config PM_BFIN_WAKE_GP
958 bool "Allow Wake-Up from GPIOs"
959 depends on PM && BF54x
960 default n
961 help
962 Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
963
964config PM_BFIN_WAKE_USB
965 bool "Allow Wake-Up from on-chip USB"
966 depends on PM && (BF54x || BF52x)
967 default n
968 help
969 Enable USB Wake-Up (Voltage Regulator Power-Up)
970
971config PM_BFIN_WAKE_KEYPAD
972 bool "Allow Wake-Up from on-chip Keypad"
973 depends on PM && BF54x
974 default n
975 help
976 Enable Keypad Wake-Up (Voltage Regulator Power-Up)
977
978config PM_BFIN_WAKE_ROTARY
979 bool "Allow Wake-Up from on-chip Rotary"
980 depends on PM && BF54x
981 default n
982 help
983 Enable Rotary Wake-Up (Voltage Regulator Power-Up)
984
957endmenu 985endmenu
958 986
959menu "CPU Frequency scaling" 987menu "CPU Frequency scaling"
diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
index c61bdebb9974..c468624d55f0 100644
--- a/arch/blackfin/Kconfig.debug
+++ b/arch/blackfin/Kconfig.debug
@@ -154,13 +154,6 @@ config EARLY_PRINTK
154 all of this lives in the init section and is thrown away after the 154 all of this lives in the init section and is thrown away after the
155 kernel boots completely. 155 kernel boots completely.
156 156
157config DUAL_CORE_TEST_MODULE
158 tristate "Dual Core Test Module"
159 depends on (BF561)
160 default n
161 help
162 Say Y here to build-in dual core test module for dual core test.
163
164config CPLB_INFO 157config CPLB_INFO
165 bool "Display the CPLB information" 158 bool "Display the CPLB information"
166 help 159 help
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index 3cbe16caad4b..9564731ad3a8 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -6,8 +6,9 @@
6# for more details. 6# for more details.
7# 7#
8 8
9 9ifeq ($(CROSS_COMPILE),)
10CROSS_COMPILE ?= bfin-uclinux- 10CROSS_COMPILE := bfin-uclinux-
11endif
11LDFLAGS_vmlinux := -X 12LDFLAGS_vmlinux := -X
12OBJCOPYFLAGS := -O binary -R .note -R .comment -S 13OBJCOPYFLAGS := -O binary -R .note -R .comment -S
13GZFLAGS := -9 14GZFLAGS := -9
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index 5e6fb9d8e50f..66854a83c0de 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -1,7 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24.7 3# Linux kernel version: 2.6.24.7
4# Fri May 16 10:02:29 2008
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -290,7 +289,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
290# CONFIG_RESOURCES_64BIT is not set 289# CONFIG_RESOURCES_64BIT is not set
291CONFIG_ZONE_DMA_FLAG=1 290CONFIG_ZONE_DMA_FLAG=1
292CONFIG_VIRT_TO_BUS=y 291CONFIG_VIRT_TO_BUS=y
293# CONFIG_BFIN_GPTIMERS is not set 292CONFIG_BFIN_GPTIMERS=y
294CONFIG_BFIN_DMA_5XX=y 293CONFIG_BFIN_DMA_5XX=y
295# CONFIG_DMA_UNCACHED_4M is not set 294# CONFIG_DMA_UNCACHED_4M is not set
296# CONFIG_DMA_UNCACHED_2M is not set 295# CONFIG_DMA_UNCACHED_2M is not set
@@ -430,7 +429,58 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
430# 429#
431# CONFIG_NET_PKTGEN is not set 430# CONFIG_NET_PKTGEN is not set
432# CONFIG_HAMRADIO is not set 431# CONFIG_HAMRADIO is not set
433# CONFIG_IRDA is not set 432CONFIG_IRDA=m
433
434#
435# IrDA protocols
436#
437CONFIG_IRLAN=m
438CONFIG_IRCOMM=m
439# CONFIG_IRDA_ULTRA is not set
440
441#
442# IrDA options
443#
444# CONFIG_IRDA_CACHE_LAST_LSAP is not set
445# CONFIG_IRDA_FAST_RR is not set
446# CONFIG_IRDA_DEBUG is not set
447
448#
449# Infrared-port device drivers
450#
451
452#
453# SIR device drivers
454#
455CONFIG_IRTTY_SIR=m
456CONFIG_BFIN_SIR=m
457CONFIG_BFIN_SIR0=y
458CONFIG_SIR_BFIN_DMA=y
459# CONFIG_SIR_BFIN_PIO is not set
460
461#
462# Dongle support
463#
464# CONFIG_DONGLE is not set
465# CONFIG_KINGSUN_DONGLE is not set
466# CONFIG_KSDAZZLE_DONGLE is not set
467# CONFIG_KS959_DONGLE is not set
468
469#
470# Old SIR device drivers
471#
472# CONFIG_IRPORT_SIR is not set
473
474#
475# Old Serial dongle support
476#
477
478#
479# FIR device drivers
480#
481# CONFIG_USB_IRDA is not set
482# CONFIG_SIGMATEL_FIR is not set
483# CONFIG_MCS_FIR is not set
434# CONFIG_BT is not set 484# CONFIG_BT is not set
435# CONFIG_AF_RXRPC is not set 485# CONFIG_AF_RXRPC is not set
436 486
@@ -689,8 +739,11 @@ CONFIG_BFIN_OTP=y
689# CONFIG_BFIN_SPORT is not set 739# CONFIG_BFIN_SPORT is not set
690# CONFIG_BFIN_TIMER_LATENCY is not set 740# CONFIG_BFIN_TIMER_LATENCY is not set
691# CONFIG_TWI_LCD is not set 741# CONFIG_TWI_LCD is not set
692# CONFIG_SIMPLE_GPIO is not set 742CONFIG_SIMPLE_GPIO=m
693# CONFIG_VT is not set 743CONFIG_VT=y
744CONFIG_VT_CONSOLE=y
745CONFIG_HW_CONSOLE=y
746# CONFIG_VT_HW_CONSOLE_BINDING is not set
694# CONFIG_SERIAL_NONSTANDARD is not set 747# CONFIG_SERIAL_NONSTANDARD is not set
695 748
696# 749#
@@ -872,8 +925,36 @@ CONFIG_SSB_POSSIBLE=y
872# 925#
873# CONFIG_VGASTATE is not set 926# CONFIG_VGASTATE is not set
874# CONFIG_VIDEO_OUTPUT_CONTROL is not set 927# CONFIG_VIDEO_OUTPUT_CONTROL is not set
875# CONFIG_FB is not set 928CONFIG_FB=y
876# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 929# CONFIG_FIRMWARE_EDID is not set
930# CONFIG_FB_DDC is not set
931CONFIG_FB_CFB_FILLRECT=y
932CONFIG_FB_CFB_COPYAREA=y
933CONFIG_FB_CFB_IMAGEBLIT=y
934# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
935# CONFIG_FB_SYS_FILLRECT is not set
936# CONFIG_FB_SYS_COPYAREA is not set
937# CONFIG_FB_SYS_IMAGEBLIT is not set
938# CONFIG_FB_SYS_FOPS is not set
939CONFIG_FB_DEFERRED_IO=y
940# CONFIG_FB_SVGALIB is not set
941# CONFIG_FB_MACMODES is not set
942# CONFIG_FB_BACKLIGHT is not set
943# CONFIG_FB_MODE_HELPERS is not set
944# CONFIG_FB_TILEBLITTING is not set
945
946#
947# Frame buffer hardware drivers
948#
949CONFIG_FB_BFIN_T350MCQB=y
950# CONFIG_FB_BFIN_7393 is not set
951# CONFIG_FB_S1D13XXX is not set
952# CONFIG_FB_VIRTUAL is not set
953CONFIG_BACKLIGHT_LCD_SUPPORT=y
954CONFIG_LCD_CLASS_DEVICE=m
955CONFIG_LCD_LTV350QV=m
956CONFIG_BACKLIGHT_CLASS_DEVICE=m
957# CONFIG_BACKLIGHT_CORGI is not set
877 958
878# 959#
879# Display device support 960# Display device support
@@ -881,9 +962,99 @@ CONFIG_SSB_POSSIBLE=y
881# CONFIG_DISPLAY_SUPPORT is not set 962# CONFIG_DISPLAY_SUPPORT is not set
882 963
883# 964#
965# Console display driver support
966#
967CONFIG_DUMMY_CONSOLE=y
968CONFIG_FRAMEBUFFER_CONSOLE=y
969# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
970# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
971# CONFIG_FONTS is not set
972CONFIG_FONT_8x8=y
973CONFIG_FONT_8x16=y
974CONFIG_LOGO=y
975# CONFIG_LOGO_LINUX_MONO is not set
976# CONFIG_LOGO_LINUX_VGA16 is not set
977# CONFIG_LOGO_LINUX_CLUT224 is not set
978# CONFIG_LOGO_BLACKFIN_VGA16 is not set
979CONFIG_LOGO_BLACKFIN_CLUT224=y
980
981#
884# Sound 982# Sound
885# 983#
886# CONFIG_SOUND is not set 984CONFIG_SOUND=m
985
986#
987# Advanced Linux Sound Architecture
988#
989CONFIG_SND=m
990CONFIG_SND_TIMER=m
991CONFIG_SND_PCM=m
992# CONFIG_SND_SEQUENCER is not set
993# CONFIG_SND_MIXER_OSS is not set
994# CONFIG_SND_PCM_OSS is not set
995# CONFIG_SND_DYNAMIC_MINORS is not set
996CONFIG_SND_SUPPORT_OLD_API=y
997CONFIG_SND_VERBOSE_PROCFS=y
998# CONFIG_SND_VERBOSE_PRINTK is not set
999# CONFIG_SND_DEBUG is not set
1000
1001#
1002# Generic devices
1003#
1004# CONFIG_SND_DUMMY is not set
1005# CONFIG_SND_MTPAV is not set
1006# CONFIG_SND_SERIAL_U16550 is not set
1007# CONFIG_SND_MPU401 is not set
1008
1009#
1010# SPI devices
1011#
1012
1013#
1014# ALSA Blackfin devices
1015#
1016# CONFIG_SND_BLACKFIN_AD1836 is not set
1017# CONFIG_SND_BLACKFIN_AD1836_TDM is not set
1018# CONFIG_SND_BLACKFIN_AD1836_I2S is not set
1019# CONFIG_SND_BLACKFIN_AD1836_MULSUB is not set
1020# CONFIG_SND_BLACKFIN_AD1836_5P1 is not set
1021# CONFIG_SND_BFIN_AD73311 is not set
1022# CONFIG_SND_BFIN_AD73322 is not set
1023
1024#
1025# USB devices
1026#
1027# CONFIG_SND_USB_AUDIO is not set
1028# CONFIG_SND_USB_CAIAQ is not set
1029
1030#
1031# System on Chip audio support
1032#
1033CONFIG_SND_SOC_AC97_BUS=y
1034CONFIG_SND_SOC=m
1035CONFIG_SND_BF5XX_SOC=m
1036CONFIG_SND_MMAP_SUPPORT=y
1037CONFIG_SND_BF5XX_SOC_I2S=m
1038CONFIG_SND_BF5XX_SOC_AC97=m
1039# CONFIG_SND_BF5XX_SOC_WM8750 is not set
1040# CONFIG_SND_BF5XX_SOC_WM8731 is not set
1041CONFIG_SND_BF5XX_SOC_SSM2602=m
1042CONFIG_SND_BF5XX_SOC_BF5xx=m
1043CONFIG_SND_BF5XX_SPORT_NUM=0
1044# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
1045
1046#
1047# SoC Audio support for SuperH
1048#
1049CONFIG_SND_SOC_SSM2602=m
1050# CONFIG_SND_SOC_SSM2602_SPI is not set
1051CONFIG_SND_SOC_AD1980=m
1052
1053#
1054# Open Sound System
1055#
1056# CONFIG_SOUND_PRIME is not set
1057CONFIG_AC97_BUS=m
887CONFIG_HID_SUPPORT=y 1058CONFIG_HID_SUPPORT=y
888CONFIG_HID=y 1059CONFIG_HID=y
889# CONFIG_HID_DEBUG is not set 1060# CONFIG_HID_DEBUG is not set
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index 8d817ba01945..6bc11db12690 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.16 3# Linux kernel version: 2.6.24.7
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -13,35 +13,34 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14 17CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y 18CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21 20
22# 21#
23# Code maturity level options 22# General setup
24# 23#
25CONFIG_EXPERIMENTAL=y 24CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y 25CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32 26CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION="" 27CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y 28CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
37# CONFIG_POSIX_MQUEUE is not set 31# CONFIG_POSIX_MQUEUE is not set
38# CONFIG_BSD_PROCESS_ACCT is not set 32# CONFIG_BSD_PROCESS_ACCT is not set
39# CONFIG_TASKSTATS is not set 33# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 34# CONFIG_USER_NS is not set
35# CONFIG_PID_NS is not set
41# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
42CONFIG_IKCONFIG=y 37CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y 38CONFIG_IKCONFIG_PROC=y
44CONFIG_LOG_BUF_SHIFT=14 39CONFIG_LOG_BUF_SHIFT=14
40# CONFIG_CGROUPS is not set
41CONFIG_FAIR_GROUP_SCHED=y
42CONFIG_FAIR_USER_SCHED=y
43# CONFIG_FAIR_CGROUP_SCHED is not set
45CONFIG_SYSFS_DEPRECATED=y 44CONFIG_SYSFS_DEPRECATED=y
46# CONFIG_RELAY is not set 45# CONFIG_RELAY is not set
47CONFIG_BLK_DEV_INITRD=y 46CONFIG_BLK_DEV_INITRD=y
@@ -64,32 +63,24 @@ CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 63CONFIG_SIGNALFD=y
65CONFIG_EVENTFD=y 64CONFIG_EVENTFD=y
66CONFIG_VM_EVENT_COUNTERS=y 65CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
68# CONFIG_NP2 is not set
69CONFIG_SLAB=y 66CONFIG_SLAB=y
70# CONFIG_SLUB is not set 67# CONFIG_SLUB is not set
71# CONFIG_SLOB is not set 68# CONFIG_SLOB is not set
69CONFIG_SLABINFO=y
72CONFIG_RT_MUTEXES=y 70CONFIG_RT_MUTEXES=y
73CONFIG_TINY_SHMEM=y 71CONFIG_TINY_SHMEM=y
74CONFIG_BASE_SMALL=0 72CONFIG_BASE_SMALL=0
75
76#
77# Loadable module support
78#
79CONFIG_MODULES=y 73CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y 74CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 75# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 76# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 77# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y 78CONFIG_KMOD=y
85
86#
87# Block layer
88#
89CONFIG_BLOCK=y 79CONFIG_BLOCK=y
90# CONFIG_LBD is not set 80# CONFIG_LBD is not set
91# CONFIG_BLK_DEV_IO_TRACE is not set 81# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_LSF is not set 82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set
93 84
94# 85#
95# IO Schedulers 86# IO Schedulers
@@ -141,12 +132,12 @@ CONFIG_BF_REV_0_3=y
141# CONFIG_BF_REV_ANY is not set 132# CONFIG_BF_REV_ANY is not set
142# CONFIG_BF_REV_NONE is not set 133# CONFIG_BF_REV_NONE is not set
143CONFIG_BF53x=y 134CONFIG_BF53x=y
144CONFIG_BFIN_SINGLE_CORE=y
145CONFIG_MEM_MT48LC16M16A2TG_75=y 135CONFIG_MEM_MT48LC16M16A2TG_75=y
146CONFIG_BFIN533_EZKIT=y 136CONFIG_BFIN533_EZKIT=y
147# CONFIG_BFIN533_STAMP is not set 137# CONFIG_BFIN533_STAMP is not set
148# CONFIG_BFIN533_BLUETECHNIX_CM is not set 138# CONFIG_BFIN533_BLUETECHNIX_CM is not set
149# CONFIG_H8606_HVSISTEMAS is not set 139# CONFIG_H8606_HVSISTEMAS is not set
140# CONFIG_BFIN532_IP0X is not set
150# CONFIG_GENERIC_BF533_BOARD is not set 141# CONFIG_GENERIC_BF533_BOARD is not set
151 142
152# 143#
@@ -189,12 +180,14 @@ CONFIG_WDTIMER=13
189# Board customizations 180# Board customizations
190# 181#
191# CONFIG_CMDLINE_BOOL is not set 182# CONFIG_CMDLINE_BOOL is not set
183CONFIG_BOOT_LOAD=0x1000
192 184
193# 185#
194# Clock/PLL Setup 186# Clock/PLL Setup
195# 187#
196CONFIG_CLKIN_HZ=27000000 188CONFIG_CLKIN_HZ=27000000
197# CONFIG_BFIN_KERNEL_CLOCK is not set 189# CONFIG_BFIN_KERNEL_CLOCK is not set
190CONFIG_MAX_MEM_SIZE=512
198CONFIG_MAX_VCO_HZ=750000000 191CONFIG_MAX_VCO_HZ=750000000
199CONFIG_MIN_VCO_HZ=50000000 192CONFIG_MIN_VCO_HZ=50000000
200CONFIG_MAX_SCLK_HZ=133333333 193CONFIG_MAX_SCLK_HZ=133333333
@@ -208,13 +201,17 @@ CONFIG_HZ_250=y
208# CONFIG_HZ_300 is not set 201# CONFIG_HZ_300 is not set
209# CONFIG_HZ_1000 is not set 202# CONFIG_HZ_1000 is not set
210CONFIG_HZ=250 203CONFIG_HZ=250
204CONFIG_GENERIC_TIME=y
205CONFIG_GENERIC_CLOCKEVENTS=y
206# CONFIG_CYCLES_CLOCKSOURCE is not set
207CONFIG_TICK_ONESHOT=y
208# CONFIG_NO_HZ is not set
209CONFIG_HIGH_RES_TIMERS=y
210CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
211 211
212# 212#
213# Memory Setup 213# Misc
214# 214#
215CONFIG_MAX_MEM_SIZE=512
216CONFIG_MEM_ADD_WIDTH=9
217CONFIG_BOOT_LOAD=0x1000
218CONFIG_BFIN_SCRATCH_REG_RETN=y 215CONFIG_BFIN_SCRATCH_REG_RETN=y
219# CONFIG_BFIN_SCRATCH_REG_RETE is not set 216# CONFIG_BFIN_SCRATCH_REG_RETE is not set
220# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set 217# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
@@ -250,12 +247,14 @@ CONFIG_FLATMEM_MANUAL=y
250CONFIG_FLATMEM=y 247CONFIG_FLATMEM=y
251CONFIG_FLAT_NODE_MEM_MAP=y 248CONFIG_FLAT_NODE_MEM_MAP=y
252# CONFIG_SPARSEMEM_STATIC is not set 249# CONFIG_SPARSEMEM_STATIC is not set
250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
253CONFIG_SPLIT_PTLOCK_CPUS=4 251CONFIG_SPLIT_PTLOCK_CPUS=4
254# CONFIG_RESOURCES_64BIT is not set 252# CONFIG_RESOURCES_64BIT is not set
255CONFIG_ZONE_DMA_FLAG=1 253CONFIG_ZONE_DMA_FLAG=1
256CONFIG_LARGE_ALLOCS=y 254CONFIG_VIRT_TO_BUS=y
257# CONFIG_BFIN_GPTIMERS is not set 255# CONFIG_BFIN_GPTIMERS is not set
258CONFIG_BFIN_DMA_5XX=y 256CONFIG_BFIN_DMA_5XX=y
257# CONFIG_DMA_UNCACHED_4M is not set
259# CONFIG_DMA_UNCACHED_2M is not set 258# CONFIG_DMA_UNCACHED_2M is not set
260CONFIG_DMA_UNCACHED_1M=y 259CONFIG_DMA_UNCACHED_1M=y
261# CONFIG_DMA_UNCACHED_NONE is not set 260# CONFIG_DMA_UNCACHED_NONE is not set
@@ -293,17 +292,13 @@ CONFIG_C_AMBEN_ALL=y
293CONFIG_BANK_0=0x7BB0 292CONFIG_BANK_0=0x7BB0
294CONFIG_BANK_1=0x7BB0 293CONFIG_BANK_1=0x7BB0
295CONFIG_BANK_2=0x7BB0 294CONFIG_BANK_2=0x7BB0
296CONFIG_BANK_3=0xAAC3 295CONFIG_BANK_3=0xAAC2
297 296
298# 297#
299# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 298# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
300# 299#
301# CONFIG_PCI is not set 300# CONFIG_PCI is not set
302# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
303
304#
305# PCCARD (PCMCIA/CardBus) support
306#
307# CONFIG_PCCARD is not set 302# CONFIG_PCCARD is not set
308 303
309# 304#
@@ -321,7 +316,9 @@ CONFIG_BINFMT_ZFLAT=y
321CONFIG_PM=y 316CONFIG_PM=y
322# CONFIG_PM_LEGACY is not set 317# CONFIG_PM_LEGACY is not set
323# CONFIG_PM_DEBUG is not set 318# CONFIG_PM_DEBUG is not set
324# CONFIG_PM_SYSFS_DEPRECATED is not set 319CONFIG_PM_SLEEP=y
320CONFIG_SUSPEND_UP_POSSIBLE=y
321CONFIG_SUSPEND=y
325CONFIG_PM_BFIN_SLEEP_DEEPER=y 322CONFIG_PM_BFIN_SLEEP_DEEPER=y
326# CONFIG_PM_BFIN_SLEEP is not set 323# CONFIG_PM_BFIN_SLEEP is not set
327# CONFIG_PM_WAKEUP_BY_GPIO is not set 324# CONFIG_PM_WAKEUP_BY_GPIO is not set
@@ -367,6 +364,7 @@ CONFIG_SYN_COOKIES=y
367CONFIG_INET_XFRM_MODE_TRANSPORT=y 364CONFIG_INET_XFRM_MODE_TRANSPORT=y
368CONFIG_INET_XFRM_MODE_TUNNEL=y 365CONFIG_INET_XFRM_MODE_TUNNEL=y
369CONFIG_INET_XFRM_MODE_BEET=y 366CONFIG_INET_XFRM_MODE_BEET=y
367# CONFIG_INET_LRO is not set
370CONFIG_INET_DIAG=y 368CONFIG_INET_DIAG=y
371CONFIG_INET_TCP_DIAG=y 369CONFIG_INET_TCP_DIAG=y
372# CONFIG_TCP_CONG_ADVANCED is not set 370# CONFIG_TCP_CONG_ADVANCED is not set
@@ -393,10 +391,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
393# CONFIG_LAPB is not set 391# CONFIG_LAPB is not set
394# CONFIG_ECONET is not set 392# CONFIG_ECONET is not set
395# CONFIG_WAN_ROUTER is not set 393# CONFIG_WAN_ROUTER is not set
396
397#
398# QoS and/or fair queueing
399#
400# CONFIG_NET_SCHED is not set 394# CONFIG_NET_SCHED is not set
401 395
402# 396#
@@ -428,6 +422,7 @@ CONFIG_IRDA_CACHE_LAST_LSAP=y
428# SIR device drivers 422# SIR device drivers
429# 423#
430CONFIG_IRTTY_SIR=m 424CONFIG_IRTTY_SIR=m
425# CONFIG_BFIN_SIR is not set
431 426
432# 427#
433# Dongle support 428# Dongle support
@@ -457,6 +452,7 @@ CONFIG_IRTTY_SIR=m
457# CONFIG_MAC80211 is not set 452# CONFIG_MAC80211 is not set
458# CONFIG_IEEE80211 is not set 453# CONFIG_IEEE80211 is not set
459# CONFIG_RFKILL is not set 454# CONFIG_RFKILL is not set
455# CONFIG_NET_9P is not set
460 456
461# 457#
462# Device Drivers 458# Device Drivers
@@ -465,14 +461,11 @@ CONFIG_IRTTY_SIR=m
465# 461#
466# Generic Driver Options 462# Generic Driver Options
467# 463#
464CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
468CONFIG_STANDALONE=y 465CONFIG_STANDALONE=y
469CONFIG_PREVENT_FIRMWARE_BUILD=y 466CONFIG_PREVENT_FIRMWARE_BUILD=y
470# CONFIG_FW_LOADER is not set 467# CONFIG_FW_LOADER is not set
471# CONFIG_SYS_HYPERVISOR is not set 468# CONFIG_SYS_HYPERVISOR is not set
472
473#
474# Connector - unified userspace <-> kernelspace linker
475#
476# CONFIG_CONNECTOR is not set 469# CONFIG_CONNECTOR is not set
477CONFIG_MTD=y 470CONFIG_MTD=y
478# CONFIG_MTD_DEBUG is not set 471# CONFIG_MTD_DEBUG is not set
@@ -492,6 +485,7 @@ CONFIG_MTD_BLOCK=y
492# CONFIG_INFTL is not set 485# CONFIG_INFTL is not set
493# CONFIG_RFD_FTL is not set 486# CONFIG_RFD_FTL is not set
494# CONFIG_SSFDC is not set 487# CONFIG_SSFDC is not set
488# CONFIG_MTD_OOPS is not set
495 489
496# 490#
497# RAM/ROM/Flash chip drivers 491# RAM/ROM/Flash chip drivers
@@ -548,20 +542,8 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
548# UBI - Unsorted block images 542# UBI - Unsorted block images
549# 543#
550# CONFIG_MTD_UBI is not set 544# CONFIG_MTD_UBI is not set
551
552#
553# Parallel port support
554#
555# CONFIG_PARPORT is not set 545# CONFIG_PARPORT is not set
556 546CONFIG_BLK_DEV=y
557#
558# Plug and Play support
559#
560# CONFIG_PNPACPI is not set
561
562#
563# Block devices
564#
565# CONFIG_BLK_DEV_COW_COMMON is not set 547# CONFIG_BLK_DEV_COW_COMMON is not set
566# CONFIG_BLK_DEV_LOOP is not set 548# CONFIG_BLK_DEV_LOOP is not set
567# CONFIG_BLK_DEV_NBD is not set 549# CONFIG_BLK_DEV_NBD is not set
@@ -571,10 +553,8 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
571CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 553CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
572# CONFIG_CDROM_PKTCDVD is not set 554# CONFIG_CDROM_PKTCDVD is not set
573# CONFIG_ATA_OVER_ETH is not set 555# CONFIG_ATA_OVER_ETH is not set
574 556CONFIG_MISC_DEVICES=y
575# 557# CONFIG_EEPROM_93CX6 is not set
576# Misc devices
577#
578# CONFIG_IDE is not set 558# CONFIG_IDE is not set
579 559
580# 560#
@@ -582,32 +562,29 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
582# 562#
583# CONFIG_RAID_ATTRS is not set 563# CONFIG_RAID_ATTRS is not set
584# CONFIG_SCSI is not set 564# CONFIG_SCSI is not set
565# CONFIG_SCSI_DMA is not set
585# CONFIG_SCSI_NETLINK is not set 566# CONFIG_SCSI_NETLINK is not set
586# CONFIG_ATA is not set 567# CONFIG_ATA is not set
587
588#
589# Multi-device support (RAID and LVM)
590#
591# CONFIG_MD is not set 568# CONFIG_MD is not set
592
593#
594# Network device support
595#
596CONFIG_NETDEVICES=y 569CONFIG_NETDEVICES=y
570# CONFIG_NETDEVICES_MULTIQUEUE is not set
597# CONFIG_DUMMY is not set 571# CONFIG_DUMMY is not set
598# CONFIG_BONDING is not set 572# CONFIG_BONDING is not set
573# CONFIG_MACVLAN is not set
599# CONFIG_EQUALIZER is not set 574# CONFIG_EQUALIZER is not set
600# CONFIG_TUN is not set 575# CONFIG_TUN is not set
576# CONFIG_VETH is not set
601# CONFIG_PHYLIB is not set 577# CONFIG_PHYLIB is not set
602
603#
604# Ethernet (10 or 100Mbit)
605#
606CONFIG_NET_ETHERNET=y 578CONFIG_NET_ETHERNET=y
607CONFIG_MII=y 579CONFIG_MII=y
608CONFIG_SMC91X=y 580CONFIG_SMC91X=y
609# CONFIG_SMSC911X is not set 581# CONFIG_SMSC911X is not set
610# CONFIG_DM9000 is not set 582# CONFIG_DM9000 is not set
583# CONFIG_IBM_NEW_EMAC_ZMII is not set
584# CONFIG_IBM_NEW_EMAC_RGMII is not set
585# CONFIG_IBM_NEW_EMAC_TAH is not set
586# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
587# CONFIG_B44 is not set
611CONFIG_NETDEV_1000=y 588CONFIG_NETDEV_1000=y
612# CONFIG_AX88180 is not set 589# CONFIG_AX88180 is not set
613CONFIG_NETDEV_10000=y 590CONFIG_NETDEV_10000=y
@@ -624,15 +601,7 @@ CONFIG_NETDEV_10000=y
624# CONFIG_NETCONSOLE is not set 601# CONFIG_NETCONSOLE is not set
625# CONFIG_NETPOLL is not set 602# CONFIG_NETPOLL is not set
626# CONFIG_NET_POLL_CONTROLLER is not set 603# CONFIG_NET_POLL_CONTROLLER is not set
627
628#
629# ISDN subsystem
630#
631# CONFIG_ISDN is not set 604# CONFIG_ISDN is not set
632
633#
634# Telephony Support
635#
636# CONFIG_PHONE is not set 605# CONFIG_PHONE is not set
637 606
638# 607#
@@ -647,7 +616,6 @@ CONFIG_INPUT=m
647# 616#
648# CONFIG_INPUT_MOUSEDEV is not set 617# CONFIG_INPUT_MOUSEDEV is not set
649# CONFIG_INPUT_JOYDEV is not set 618# CONFIG_INPUT_JOYDEV is not set
650# CONFIG_INPUT_TSDEV is not set
651CONFIG_INPUT_EVDEV=m 619CONFIG_INPUT_EVDEV=m
652# CONFIG_INPUT_EVBUG is not set 620# CONFIG_INPUT_EVBUG is not set
653 621
@@ -672,13 +640,12 @@ CONFIG_INPUT_EVDEV=m
672# 640#
673# CONFIG_AD9960 is not set 641# CONFIG_AD9960 is not set
674# CONFIG_SPI_ADC_BF533 is not set 642# CONFIG_SPI_ADC_BF533 is not set
675# CONFIG_BF5xx_PFLAGS is not set
676# CONFIG_BF5xx_PPIFCD is not set 643# CONFIG_BF5xx_PPIFCD is not set
677# CONFIG_BFIN_SIMPLE_TIMER is not set 644# CONFIG_BFIN_SIMPLE_TIMER is not set
678# CONFIG_BF5xx_PPI is not set 645# CONFIG_BF5xx_PPI is not set
679CONFIG_BFIN_SPORT=y 646CONFIG_BFIN_SPORT=y
680# CONFIG_BFIN_TIMER_LATENCY is not set 647# CONFIG_BFIN_TIMER_LATENCY is not set
681# CONFIG_AD5304 is not set 648CONFIG_SIMPLE_GPIO=m
682# CONFIG_VT is not set 649# CONFIG_VT is not set
683# CONFIG_SERIAL_NONSTANDARD is not set 650# CONFIG_SERIAL_NONSTANDARD is not set
684 651
@@ -706,28 +673,11 @@ CONFIG_UNIX98_PTYS=y
706# CAN, the car bus and industrial fieldbus 673# CAN, the car bus and industrial fieldbus
707# 674#
708# CONFIG_CAN4LINUX is not set 675# CONFIG_CAN4LINUX is not set
709
710#
711# IPMI
712#
713# CONFIG_IPMI_HANDLER is not set 676# CONFIG_IPMI_HANDLER is not set
714CONFIG_WATCHDOG=y
715# CONFIG_WATCHDOG_NOWAYOUT is not set
716
717#
718# Watchdog Device Drivers
719#
720# CONFIG_SOFT_WATCHDOG is not set
721CONFIG_BFIN_WDT=y
722CONFIG_HW_RANDOM=y 677CONFIG_HW_RANDOM=y
723# CONFIG_GEN_RTC is not set 678# CONFIG_GEN_RTC is not set
724CONFIG_BLACKFIN_DPMC=y
725# CONFIG_R3964 is not set 679# CONFIG_R3964 is not set
726# CONFIG_RAW_DRIVER is not set 680# CONFIG_RAW_DRIVER is not set
727
728#
729# TPM devices
730#
731# CONFIG_TCG_TPM is not set 681# CONFIG_TCG_TPM is not set
732# CONFIG_I2C is not set 682# CONFIG_I2C is not set
733 683
@@ -748,22 +698,37 @@ CONFIG_SPI_BFIN=y
748# 698#
749# CONFIG_SPI_AT25 is not set 699# CONFIG_SPI_AT25 is not set
750# CONFIG_SPI_SPIDEV is not set 700# CONFIG_SPI_SPIDEV is not set
751 701# CONFIG_SPI_TLE62X0 is not set
752#
753# Dallas's 1-wire bus
754#
755# CONFIG_W1 is not set 702# CONFIG_W1 is not set
703# CONFIG_POWER_SUPPLY is not set
756CONFIG_HWMON=y 704CONFIG_HWMON=y
757# CONFIG_HWMON_VID is not set 705# CONFIG_HWMON_VID is not set
758# CONFIG_SENSORS_ABITUGURU is not set
759# CONFIG_SENSORS_F71805F is not set 706# CONFIG_SENSORS_F71805F is not set
707# CONFIG_SENSORS_F71882FG is not set
708# CONFIG_SENSORS_IT87 is not set
760# CONFIG_SENSORS_LM70 is not set 709# CONFIG_SENSORS_LM70 is not set
710# CONFIG_SENSORS_PC87360 is not set
761# CONFIG_SENSORS_PC87427 is not set 711# CONFIG_SENSORS_PC87427 is not set
762# CONFIG_SENSORS_SMSC47M1 is not set 712# CONFIG_SENSORS_SMSC47M1 is not set
763# CONFIG_SENSORS_SMSC47B397 is not set 713# CONFIG_SENSORS_SMSC47B397 is not set
764# CONFIG_SENSORS_VT1211 is not set 714# CONFIG_SENSORS_VT1211 is not set
765# CONFIG_SENSORS_W83627HF is not set 715# CONFIG_SENSORS_W83627HF is not set
716# CONFIG_SENSORS_W83627EHF is not set
766# CONFIG_HWMON_DEBUG_CHIP is not set 717# CONFIG_HWMON_DEBUG_CHIP is not set
718CONFIG_WATCHDOG=y
719# CONFIG_WATCHDOG_NOWAYOUT is not set
720
721#
722# Watchdog Device Drivers
723#
724# CONFIG_SOFT_WATCHDOG is not set
725CONFIG_BFIN_WDT=y
726
727#
728# Sonics Silicon Backplane
729#
730CONFIG_SSB_POSSIBLE=y
731# CONFIG_SSB is not set
767 732
768# 733#
769# Multifunction device drivers 734# Multifunction device drivers
@@ -780,72 +745,27 @@ CONFIG_DAB=y
780# 745#
781# Graphics support 746# Graphics support
782# 747#
748# CONFIG_VGASTATE is not set
749# CONFIG_VIDEO_OUTPUT_CONTROL is not set
750# CONFIG_FB is not set
783# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 751# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
784 752
785# 753#
786# Display device support 754# Display device support
787# 755#
788# CONFIG_DISPLAY_SUPPORT is not set 756# CONFIG_DISPLAY_SUPPORT is not set
789# CONFIG_VGASTATE is not set
790# CONFIG_FB is not set
791 757
792# 758#
793# Sound 759# Sound
794# 760#
795# CONFIG_SOUND is not set 761# CONFIG_SOUND is not set
796 762CONFIG_HID_SUPPORT=y
797#
798# HID Devices
799#
800CONFIG_HID=m 763CONFIG_HID=m
801# CONFIG_HID_DEBUG is not set 764# CONFIG_HID_DEBUG is not set
802 765# CONFIG_HIDRAW is not set
803# 766# CONFIG_USB_SUPPORT is not set
804# USB support
805#
806CONFIG_USB_ARCH_HAS_HCD=y
807# CONFIG_USB_ARCH_HAS_OHCI is not set
808# CONFIG_USB_ARCH_HAS_EHCI is not set
809# CONFIG_USB is not set
810
811#
812# Enable Host or Gadget support to see Inventra options
813#
814
815#
816# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
817#
818
819#
820# USB Gadget Support
821#
822# CONFIG_USB_GADGET is not set
823# CONFIG_MMC is not set 767# CONFIG_MMC is not set
824
825#
826# LED devices
827#
828# CONFIG_NEW_LEDS is not set 768# CONFIG_NEW_LEDS is not set
829
830#
831# LED drivers
832#
833
834#
835# LED Triggers
836#
837
838#
839# InfiniBand support
840#
841
842#
843# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
844#
845
846#
847# Real Time Clock
848#
849CONFIG_RTC_LIB=y 769CONFIG_RTC_LIB=y
850CONFIG_RTC_CLASS=y 770CONFIG_RTC_CLASS=y
851CONFIG_RTC_HCTOSYS=y 771CONFIG_RTC_HCTOSYS=y
@@ -862,10 +782,6 @@ CONFIG_RTC_INTF_DEV=y
862# CONFIG_RTC_DRV_TEST is not set 782# CONFIG_RTC_DRV_TEST is not set
863 783
864# 784#
865# I2C RTC drivers
866#
867
868#
869# SPI RTC drivers 785# SPI RTC drivers
870# 786#
871# CONFIG_RTC_DRV_RS5C348 is not set 787# CONFIG_RTC_DRV_RS5C348 is not set
@@ -875,8 +791,10 @@ CONFIG_RTC_INTF_DEV=y
875# Platform RTC drivers 791# Platform RTC drivers
876# 792#
877# CONFIG_RTC_DRV_DS1553 is not set 793# CONFIG_RTC_DRV_DS1553 is not set
794# CONFIG_RTC_DRV_STK17TA8 is not set
878# CONFIG_RTC_DRV_DS1742 is not set 795# CONFIG_RTC_DRV_DS1742 is not set
879# CONFIG_RTC_DRV_M48T86 is not set 796# CONFIG_RTC_DRV_M48T86 is not set
797# CONFIG_RTC_DRV_M48T59 is not set
880# CONFIG_RTC_DRV_V3020 is not set 798# CONFIG_RTC_DRV_V3020 is not set
881 799
882# 800#
@@ -885,22 +803,9 @@ CONFIG_RTC_INTF_DEV=y
885CONFIG_RTC_DRV_BFIN=y 803CONFIG_RTC_DRV_BFIN=y
886 804
887# 805#
888# DMA Engine support 806# Userspace I/O
889#
890# CONFIG_DMA_ENGINE is not set
891
892#
893# DMA Clients
894#
895
896#
897# DMA Devices
898# 807#
899 808# CONFIG_UIO is not set
900#
901# PBX support
902#
903# CONFIG_PBX is not set
904 809
905# 810#
906# File systems 811# File systems
@@ -945,7 +850,6 @@ CONFIG_PROC_SYSCTL=y
945CONFIG_SYSFS=y 850CONFIG_SYSFS=y
946# CONFIG_TMPFS is not set 851# CONFIG_TMPFS is not set
947# CONFIG_HUGETLB_PAGE is not set 852# CONFIG_HUGETLB_PAGE is not set
948CONFIG_RAMFS=y
949# CONFIG_CONFIGFS_FS is not set 853# CONFIG_CONFIGFS_FS is not set
950 854
951# 855#
@@ -971,10 +875,12 @@ CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
971CONFIG_JFFS2_FS=m 875CONFIG_JFFS2_FS=m
972CONFIG_JFFS2_FS_DEBUG=0 876CONFIG_JFFS2_FS_DEBUG=0
973CONFIG_JFFS2_FS_WRITEBUFFER=y 877CONFIG_JFFS2_FS_WRITEBUFFER=y
878# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
974# CONFIG_JFFS2_SUMMARY is not set 879# CONFIG_JFFS2_SUMMARY is not set
975# CONFIG_JFFS2_FS_XATTR is not set 880# CONFIG_JFFS2_FS_XATTR is not set
976# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 881# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
977CONFIG_JFFS2_ZLIB=y 882CONFIG_JFFS2_ZLIB=y
883# CONFIG_JFFS2_LZO is not set
978CONFIG_JFFS2_RTIME=y 884CONFIG_JFFS2_RTIME=y
979# CONFIG_JFFS2_RUBIN is not set 885# CONFIG_JFFS2_RUBIN is not set
980# CONFIG_CRAMFS is not set 886# CONFIG_CRAMFS is not set
@@ -983,10 +889,7 @@ CONFIG_JFFS2_RTIME=y
983# CONFIG_QNX4FS_FS is not set 889# CONFIG_QNX4FS_FS is not set
984# CONFIG_SYSV_FS is not set 890# CONFIG_SYSV_FS is not set
985# CONFIG_UFS_FS is not set 891# CONFIG_UFS_FS is not set
986 892CONFIG_NETWORK_FILESYSTEMS=y
987#
988# Network File Systems
989#
990CONFIG_NFS_FS=m 893CONFIG_NFS_FS=m
991CONFIG_NFS_V3=y 894CONFIG_NFS_V3=y
992# CONFIG_NFS_V3_ACL is not set 895# CONFIG_NFS_V3_ACL is not set
@@ -1006,17 +909,12 @@ CONFIG_SMB_FS=m
1006# CONFIG_NCP_FS is not set 909# CONFIG_NCP_FS is not set
1007# CONFIG_CODA_FS is not set 910# CONFIG_CODA_FS is not set
1008# CONFIG_AFS_FS is not set 911# CONFIG_AFS_FS is not set
1009# CONFIG_9P_FS is not set
1010 912
1011# 913#
1012# Partition Types 914# Partition Types
1013# 915#
1014# CONFIG_PARTITION_ADVANCED is not set 916# CONFIG_PARTITION_ADVANCED is not set
1015CONFIG_MSDOS_PARTITION=y 917CONFIG_MSDOS_PARTITION=y
1016
1017#
1018# Native Language Support
1019#
1020CONFIG_NLS=m 918CONFIG_NLS=m
1021CONFIG_NLS_DEFAULT="iso8859-1" 919CONFIG_NLS_DEFAULT="iso8859-1"
1022# CONFIG_NLS_CODEPAGE_437 is not set 920# CONFIG_NLS_CODEPAGE_437 is not set
@@ -1057,21 +955,16 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1057# CONFIG_NLS_KOI8_R is not set 955# CONFIG_NLS_KOI8_R is not set
1058# CONFIG_NLS_KOI8_U is not set 956# CONFIG_NLS_KOI8_U is not set
1059# CONFIG_NLS_UTF8 is not set 957# CONFIG_NLS_UTF8 is not set
1060
1061#
1062# Distributed Lock Manager
1063#
1064# CONFIG_DLM is not set 958# CONFIG_DLM is not set
1065 959CONFIG_INSTRUMENTATION=y
1066#
1067# Profiling support
1068#
1069# CONFIG_PROFILING is not set 960# CONFIG_PROFILING is not set
961# CONFIG_MARKERS is not set
1070 962
1071# 963#
1072# Kernel hacking 964# Kernel hacking
1073# 965#
1074# CONFIG_PRINTK_TIME is not set 966# CONFIG_PRINTK_TIME is not set
967CONFIG_ENABLE_WARN_DEPRECATED=y
1075CONFIG_ENABLE_MUST_CHECK=y 968CONFIG_ENABLE_MUST_CHECK=y
1076# CONFIG_MAGIC_SYSRQ is not set 969# CONFIG_MAGIC_SYSRQ is not set
1077# CONFIG_UNUSED_SYMBOLS is not set 970# CONFIG_UNUSED_SYMBOLS is not set
@@ -1079,6 +972,7 @@ CONFIG_DEBUG_FS=y
1079# CONFIG_HEADERS_CHECK is not set 972# CONFIG_HEADERS_CHECK is not set
1080# CONFIG_DEBUG_KERNEL is not set 973# CONFIG_DEBUG_KERNEL is not set
1081# CONFIG_DEBUG_BUGVERBOSE is not set 974# CONFIG_DEBUG_BUGVERBOSE is not set
975# CONFIG_SAMPLES is not set
1082CONFIG_DEBUG_MMRS=y 976CONFIG_DEBUG_MMRS=y
1083CONFIG_DEBUG_HUNT_FOR_ZERO=y 977CONFIG_DEBUG_HUNT_FOR_ZERO=y
1084CONFIG_DEBUG_BFIN_HWTRACE_ON=y 978CONFIG_DEBUG_BFIN_HWTRACE_ON=y
@@ -1098,11 +992,7 @@ CONFIG_ACCESS_CHECK=y
1098# CONFIG_KEYS is not set 992# CONFIG_KEYS is not set
1099CONFIG_SECURITY=y 993CONFIG_SECURITY=y
1100# CONFIG_SECURITY_NETWORK is not set 994# CONFIG_SECURITY_NETWORK is not set
1101CONFIG_SECURITY_CAPABILITIES=m 995# CONFIG_SECURITY_CAPABILITIES is not set
1102
1103#
1104# Cryptographic options
1105#
1106# CONFIG_CRYPTO is not set 996# CONFIG_CRYPTO is not set
1107 997
1108# 998#
@@ -1113,6 +1003,7 @@ CONFIG_CRC_CCITT=m
1113# CONFIG_CRC16 is not set 1003# CONFIG_CRC16 is not set
1114# CONFIG_CRC_ITU_T is not set 1004# CONFIG_CRC_ITU_T is not set
1115CONFIG_CRC32=y 1005CONFIG_CRC32=y
1006# CONFIG_CRC7 is not set
1116# CONFIG_LIBCRC32C is not set 1007# CONFIG_LIBCRC32C is not set
1117CONFIG_ZLIB_INFLATE=y 1008CONFIG_ZLIB_INFLATE=y
1118CONFIG_ZLIB_DEFLATE=m 1009CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index 20d598d17bd1..d77d991a1f61 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.16 3# Linux kernel version: 2.6.24.7
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -13,35 +13,34 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14 17CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y 18CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21 20
22# 21#
23# Code maturity level options 22# General setup
24# 23#
25CONFIG_EXPERIMENTAL=y 24CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y 25CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32 26CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION="" 27CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y 28CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
37# CONFIG_POSIX_MQUEUE is not set 31# CONFIG_POSIX_MQUEUE is not set
38# CONFIG_BSD_PROCESS_ACCT is not set 32# CONFIG_BSD_PROCESS_ACCT is not set
39# CONFIG_TASKSTATS is not set 33# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 34# CONFIG_USER_NS is not set
35# CONFIG_PID_NS is not set
41# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
42CONFIG_IKCONFIG=y 37CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y 38CONFIG_IKCONFIG_PROC=y
44CONFIG_LOG_BUF_SHIFT=14 39CONFIG_LOG_BUF_SHIFT=14
40# CONFIG_CGROUPS is not set
41CONFIG_FAIR_GROUP_SCHED=y
42CONFIG_FAIR_USER_SCHED=y
43# CONFIG_FAIR_CGROUP_SCHED is not set
45CONFIG_SYSFS_DEPRECATED=y 44CONFIG_SYSFS_DEPRECATED=y
46# CONFIG_RELAY is not set 45# CONFIG_RELAY is not set
47CONFIG_BLK_DEV_INITRD=y 46CONFIG_BLK_DEV_INITRD=y
@@ -64,32 +63,24 @@ CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 63CONFIG_SIGNALFD=y
65CONFIG_EVENTFD=y 64CONFIG_EVENTFD=y
66CONFIG_VM_EVENT_COUNTERS=y 65CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
68# CONFIG_NP2 is not set
69CONFIG_SLAB=y 66CONFIG_SLAB=y
70# CONFIG_SLUB is not set 67# CONFIG_SLUB is not set
71# CONFIG_SLOB is not set 68# CONFIG_SLOB is not set
69CONFIG_SLABINFO=y
72CONFIG_RT_MUTEXES=y 70CONFIG_RT_MUTEXES=y
73CONFIG_TINY_SHMEM=y 71CONFIG_TINY_SHMEM=y
74CONFIG_BASE_SMALL=0 72CONFIG_BASE_SMALL=0
75
76#
77# Loadable module support
78#
79CONFIG_MODULES=y 73CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y 74CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 75# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 76# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 77# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y 78CONFIG_KMOD=y
85
86#
87# Block layer
88#
89CONFIG_BLOCK=y 79CONFIG_BLOCK=y
90# CONFIG_LBD is not set 80# CONFIG_LBD is not set
91# CONFIG_BLK_DEV_IO_TRACE is not set 81# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_LSF is not set 82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set
93 84
94# 85#
95# IO Schedulers 86# IO Schedulers
@@ -141,12 +132,12 @@ CONFIG_BF_REV_0_3=y
141# CONFIG_BF_REV_ANY is not set 132# CONFIG_BF_REV_ANY is not set
142# CONFIG_BF_REV_NONE is not set 133# CONFIG_BF_REV_NONE is not set
143CONFIG_BF53x=y 134CONFIG_BF53x=y
144CONFIG_BFIN_SINGLE_CORE=y
145CONFIG_MEM_MT48LC64M4A2FB_7E=y 135CONFIG_MEM_MT48LC64M4A2FB_7E=y
146# CONFIG_BFIN533_EZKIT is not set 136# CONFIG_BFIN533_EZKIT is not set
147CONFIG_BFIN533_STAMP=y 137CONFIG_BFIN533_STAMP=y
148# CONFIG_BFIN533_BLUETECHNIX_CM is not set 138# CONFIG_BFIN533_BLUETECHNIX_CM is not set
149# CONFIG_H8606_HVSISTEMAS is not set 139# CONFIG_H8606_HVSISTEMAS is not set
140# CONFIG_BFIN532_IP0X is not set
150# CONFIG_GENERIC_BF533_BOARD is not set 141# CONFIG_GENERIC_BF533_BOARD is not set
151 142
152# 143#
@@ -189,12 +180,14 @@ CONFIG_WDTIMER=13
189# Board customizations 180# Board customizations
190# 181#
191# CONFIG_CMDLINE_BOOL is not set 182# CONFIG_CMDLINE_BOOL is not set
183CONFIG_BOOT_LOAD=0x1000
192 184
193# 185#
194# Clock/PLL Setup 186# Clock/PLL Setup
195# 187#
196CONFIG_CLKIN_HZ=11059200 188CONFIG_CLKIN_HZ=11059200
197# CONFIG_BFIN_KERNEL_CLOCK is not set 189# CONFIG_BFIN_KERNEL_CLOCK is not set
190CONFIG_MAX_MEM_SIZE=512
198CONFIG_MAX_VCO_HZ=750000000 191CONFIG_MAX_VCO_HZ=750000000
199CONFIG_MIN_VCO_HZ=50000000 192CONFIG_MIN_VCO_HZ=50000000
200CONFIG_MAX_SCLK_HZ=133333333 193CONFIG_MAX_SCLK_HZ=133333333
@@ -208,14 +201,17 @@ CONFIG_HZ_250=y
208# CONFIG_HZ_300 is not set 201# CONFIG_HZ_300 is not set
209# CONFIG_HZ_1000 is not set 202# CONFIG_HZ_1000 is not set
210CONFIG_HZ=250 203CONFIG_HZ=250
204CONFIG_GENERIC_TIME=y
205CONFIG_GENERIC_CLOCKEVENTS=y
206# CONFIG_CYCLES_CLOCKSOURCE is not set
207CONFIG_TICK_ONESHOT=y
208# CONFIG_NO_HZ is not set
209CONFIG_HIGH_RES_TIMERS=y
210CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
211 211
212# 212#
213# Memory Setup 213# Misc
214# 214#
215CONFIG_MAX_MEM_SIZE=512
216CONFIG_MEM_ADD_WIDTH=11
217CONFIG_ENET_FLASH_PIN=0
218CONFIG_BOOT_LOAD=0x1000
219CONFIG_BFIN_SCRATCH_REG_RETN=y 215CONFIG_BFIN_SCRATCH_REG_RETN=y
220# CONFIG_BFIN_SCRATCH_REG_RETE is not set 216# CONFIG_BFIN_SCRATCH_REG_RETE is not set
221# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set 217# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
@@ -251,12 +247,14 @@ CONFIG_FLATMEM_MANUAL=y
251CONFIG_FLATMEM=y 247CONFIG_FLATMEM=y
252CONFIG_FLAT_NODE_MEM_MAP=y 248CONFIG_FLAT_NODE_MEM_MAP=y
253# CONFIG_SPARSEMEM_STATIC is not set 249# CONFIG_SPARSEMEM_STATIC is not set
250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
254CONFIG_SPLIT_PTLOCK_CPUS=4 251CONFIG_SPLIT_PTLOCK_CPUS=4
255# CONFIG_RESOURCES_64BIT is not set 252# CONFIG_RESOURCES_64BIT is not set
256CONFIG_ZONE_DMA_FLAG=1 253CONFIG_ZONE_DMA_FLAG=1
257CONFIG_LARGE_ALLOCS=y 254CONFIG_VIRT_TO_BUS=y
258# CONFIG_BFIN_GPTIMERS is not set 255# CONFIG_BFIN_GPTIMERS is not set
259CONFIG_BFIN_DMA_5XX=y 256CONFIG_BFIN_DMA_5XX=y
257# CONFIG_DMA_UNCACHED_4M is not set
260# CONFIG_DMA_UNCACHED_2M is not set 258# CONFIG_DMA_UNCACHED_2M is not set
261CONFIG_DMA_UNCACHED_1M=y 259CONFIG_DMA_UNCACHED_1M=y
262# CONFIG_DMA_UNCACHED_NONE is not set 260# CONFIG_DMA_UNCACHED_NONE is not set
@@ -294,17 +292,13 @@ CONFIG_C_AMBEN_ALL=y
294CONFIG_BANK_0=0x7BB0 292CONFIG_BANK_0=0x7BB0
295CONFIG_BANK_1=0x7BB0 293CONFIG_BANK_1=0x7BB0
296CONFIG_BANK_2=0x7BB0 294CONFIG_BANK_2=0x7BB0
297CONFIG_BANK_3=0xAAC3 295CONFIG_BANK_3=0xAAC2
298 296
299# 297#
300# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 298# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
301# 299#
302# CONFIG_PCI is not set 300# CONFIG_PCI is not set
303# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
304
305#
306# PCCARD (PCMCIA/CardBus) support
307#
308# CONFIG_PCCARD is not set 302# CONFIG_PCCARD is not set
309 303
310# 304#
@@ -322,7 +316,9 @@ CONFIG_BINFMT_ZFLAT=y
322CONFIG_PM=y 316CONFIG_PM=y
323# CONFIG_PM_LEGACY is not set 317# CONFIG_PM_LEGACY is not set
324# CONFIG_PM_DEBUG is not set 318# CONFIG_PM_DEBUG is not set
325# CONFIG_PM_SYSFS_DEPRECATED is not set 319CONFIG_PM_SLEEP=y
320CONFIG_SUSPEND_UP_POSSIBLE=y
321CONFIG_SUSPEND=y
326CONFIG_PM_BFIN_SLEEP_DEEPER=y 322CONFIG_PM_BFIN_SLEEP_DEEPER=y
327# CONFIG_PM_BFIN_SLEEP is not set 323# CONFIG_PM_BFIN_SLEEP is not set
328# CONFIG_PM_WAKEUP_BY_GPIO is not set 324# CONFIG_PM_WAKEUP_BY_GPIO is not set
@@ -368,6 +364,7 @@ CONFIG_SYN_COOKIES=y
368CONFIG_INET_XFRM_MODE_TRANSPORT=y 364CONFIG_INET_XFRM_MODE_TRANSPORT=y
369CONFIG_INET_XFRM_MODE_TUNNEL=y 365CONFIG_INET_XFRM_MODE_TUNNEL=y
370CONFIG_INET_XFRM_MODE_BEET=y 366CONFIG_INET_XFRM_MODE_BEET=y
367# CONFIG_INET_LRO is not set
371CONFIG_INET_DIAG=y 368CONFIG_INET_DIAG=y
372CONFIG_INET_TCP_DIAG=y 369CONFIG_INET_TCP_DIAG=y
373# CONFIG_TCP_CONG_ADVANCED is not set 370# CONFIG_TCP_CONG_ADVANCED is not set
@@ -394,10 +391,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
394# CONFIG_LAPB is not set 391# CONFIG_LAPB is not set
395# CONFIG_ECONET is not set 392# CONFIG_ECONET is not set
396# CONFIG_WAN_ROUTER is not set 393# CONFIG_WAN_ROUTER is not set
397
398#
399# QoS and/or fair queueing
400#
401# CONFIG_NET_SCHED is not set 394# CONFIG_NET_SCHED is not set
402 395
403# 396#
@@ -429,6 +422,9 @@ CONFIG_IRDA_CACHE_LAST_LSAP=y
429# SIR device drivers 422# SIR device drivers
430# 423#
431CONFIG_IRTTY_SIR=m 424CONFIG_IRTTY_SIR=m
425CONFIG_BFIN_SIR=m
426CONFIG_SIR_BFIN_DMA=y
427# CONFIG_SIR_BFIN_PIO is not set
432 428
433# 429#
434# Dongle support 430# Dongle support
@@ -458,6 +454,7 @@ CONFIG_IRTTY_SIR=m
458# CONFIG_MAC80211 is not set 454# CONFIG_MAC80211 is not set
459# CONFIG_IEEE80211 is not set 455# CONFIG_IEEE80211 is not set
460# CONFIG_RFKILL is not set 456# CONFIG_RFKILL is not set
457# CONFIG_NET_9P is not set
461 458
462# 459#
463# Device Drivers 460# Device Drivers
@@ -466,14 +463,11 @@ CONFIG_IRTTY_SIR=m
466# 463#
467# Generic Driver Options 464# Generic Driver Options
468# 465#
466CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
469CONFIG_STANDALONE=y 467CONFIG_STANDALONE=y
470CONFIG_PREVENT_FIRMWARE_BUILD=y 468CONFIG_PREVENT_FIRMWARE_BUILD=y
471# CONFIG_FW_LOADER is not set 469# CONFIG_FW_LOADER is not set
472# CONFIG_SYS_HYPERVISOR is not set 470# CONFIG_SYS_HYPERVISOR is not set
473
474#
475# Connector - unified userspace <-> kernelspace linker
476#
477# CONFIG_CONNECTOR is not set 471# CONFIG_CONNECTOR is not set
478CONFIG_MTD=y 472CONFIG_MTD=y
479# CONFIG_MTD_DEBUG is not set 473# CONFIG_MTD_DEBUG is not set
@@ -493,6 +487,7 @@ CONFIG_MTD_BLOCK=y
493# CONFIG_INFTL is not set 487# CONFIG_INFTL is not set
494# CONFIG_RFD_FTL is not set 488# CONFIG_RFD_FTL is not set
495# CONFIG_SSFDC is not set 489# CONFIG_SSFDC is not set
490# CONFIG_MTD_OOPS is not set
496 491
497# 492#
498# RAM/ROM/Flash chip drivers 493# RAM/ROM/Flash chip drivers
@@ -524,11 +519,7 @@ CONFIG_MTD_ROM=m
524# 519#
525CONFIG_MTD_COMPLEX_MAPPINGS=y 520CONFIG_MTD_COMPLEX_MAPPINGS=y
526# CONFIG_MTD_PHYSMAP is not set 521# CONFIG_MTD_PHYSMAP is not set
527CONFIG_MTD_BF5xx=m 522CONFIG_MTD_BFIN_ASYNC=m
528CONFIG_BFIN_FLASH_BANK_0=0x7BB0
529CONFIG_BFIN_FLASH_BANK_1=0x7BB0
530CONFIG_BFIN_FLASH_BANK_2=0x7BB0
531CONFIG_BFIN_FLASH_BANK_3=0x7BB0
532# CONFIG_MTD_UCLINUX is not set 523# CONFIG_MTD_UCLINUX is not set
533# CONFIG_MTD_PLATRAM is not set 524# CONFIG_MTD_PLATRAM is not set
534 525
@@ -555,20 +546,8 @@ CONFIG_BFIN_FLASH_BANK_3=0x7BB0
555# UBI - Unsorted block images 546# UBI - Unsorted block images
556# 547#
557# CONFIG_MTD_UBI is not set 548# CONFIG_MTD_UBI is not set
558
559#
560# Parallel port support
561#
562# CONFIG_PARPORT is not set 549# CONFIG_PARPORT is not set
563 550CONFIG_BLK_DEV=y
564#
565# Plug and Play support
566#
567# CONFIG_PNPACPI is not set
568
569#
570# Block devices
571#
572# CONFIG_BLK_DEV_COW_COMMON is not set 551# CONFIG_BLK_DEV_COW_COMMON is not set
573# CONFIG_BLK_DEV_LOOP is not set 552# CONFIG_BLK_DEV_LOOP is not set
574# CONFIG_BLK_DEV_NBD is not set 553# CONFIG_BLK_DEV_NBD is not set
@@ -578,10 +557,8 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
578CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 557CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
579# CONFIG_CDROM_PKTCDVD is not set 558# CONFIG_CDROM_PKTCDVD is not set
580# CONFIG_ATA_OVER_ETH is not set 559# CONFIG_ATA_OVER_ETH is not set
581 560CONFIG_MISC_DEVICES=y
582# 561# CONFIG_EEPROM_93CX6 is not set
583# Misc devices
584#
585# CONFIG_IDE is not set 562# CONFIG_IDE is not set
586 563
587# 564#
@@ -589,32 +566,29 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
589# 566#
590# CONFIG_RAID_ATTRS is not set 567# CONFIG_RAID_ATTRS is not set
591# CONFIG_SCSI is not set 568# CONFIG_SCSI is not set
569# CONFIG_SCSI_DMA is not set
592# CONFIG_SCSI_NETLINK is not set 570# CONFIG_SCSI_NETLINK is not set
593# CONFIG_ATA is not set 571# CONFIG_ATA is not set
594
595#
596# Multi-device support (RAID and LVM)
597#
598# CONFIG_MD is not set 572# CONFIG_MD is not set
599
600#
601# Network device support
602#
603CONFIG_NETDEVICES=y 573CONFIG_NETDEVICES=y
574# CONFIG_NETDEVICES_MULTIQUEUE is not set
604# CONFIG_DUMMY is not set 575# CONFIG_DUMMY is not set
605# CONFIG_BONDING is not set 576# CONFIG_BONDING is not set
577# CONFIG_MACVLAN is not set
606# CONFIG_EQUALIZER is not set 578# CONFIG_EQUALIZER is not set
607# CONFIG_TUN is not set 579# CONFIG_TUN is not set
580# CONFIG_VETH is not set
608# CONFIG_PHYLIB is not set 581# CONFIG_PHYLIB is not set
609
610#
611# Ethernet (10 or 100Mbit)
612#
613CONFIG_NET_ETHERNET=y 582CONFIG_NET_ETHERNET=y
614CONFIG_MII=y 583CONFIG_MII=y
615CONFIG_SMC91X=y 584CONFIG_SMC91X=y
616# CONFIG_SMSC911X is not set 585# CONFIG_SMSC911X is not set
617# CONFIG_DM9000 is not set 586# CONFIG_DM9000 is not set
587# CONFIG_IBM_NEW_EMAC_ZMII is not set
588# CONFIG_IBM_NEW_EMAC_RGMII is not set
589# CONFIG_IBM_NEW_EMAC_TAH is not set
590# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
591# CONFIG_B44 is not set
618CONFIG_NETDEV_1000=y 592CONFIG_NETDEV_1000=y
619# CONFIG_AX88180 is not set 593# CONFIG_AX88180 is not set
620CONFIG_NETDEV_10000=y 594CONFIG_NETDEV_10000=y
@@ -631,15 +605,7 @@ CONFIG_NETDEV_10000=y
631# CONFIG_NETCONSOLE is not set 605# CONFIG_NETCONSOLE is not set
632# CONFIG_NETPOLL is not set 606# CONFIG_NETPOLL is not set
633# CONFIG_NET_POLL_CONTROLLER is not set 607# CONFIG_NET_POLL_CONTROLLER is not set
634
635#
636# ISDN subsystem
637#
638# CONFIG_ISDN is not set 608# CONFIG_ISDN is not set
639
640#
641# Telephony Support
642#
643# CONFIG_PHONE is not set 609# CONFIG_PHONE is not set
644 610
645# 611#
@@ -654,7 +620,6 @@ CONFIG_INPUT=y
654# 620#
655# CONFIG_INPUT_MOUSEDEV is not set 621# CONFIG_INPUT_MOUSEDEV is not set
656# CONFIG_INPUT_JOYDEV is not set 622# CONFIG_INPUT_JOYDEV is not set
657# CONFIG_INPUT_TSDEV is not set
658CONFIG_INPUT_EVDEV=m 623CONFIG_INPUT_EVDEV=m
659# CONFIG_INPUT_EVBUG is not set 624# CONFIG_INPUT_EVBUG is not set
660 625
@@ -667,14 +632,8 @@ CONFIG_INPUT_EVDEV=m
667# CONFIG_INPUT_TABLET is not set 632# CONFIG_INPUT_TABLET is not set
668# CONFIG_INPUT_TOUCHSCREEN is not set 633# CONFIG_INPUT_TOUCHSCREEN is not set
669CONFIG_INPUT_MISC=y 634CONFIG_INPUT_MISC=y
670# CONFIG_INPUT_ATI_REMOTE is not set
671# CONFIG_INPUT_ATI_REMOTE2 is not set
672# CONFIG_INPUT_KEYSPAN_REMOTE is not set
673# CONFIG_INPUT_POWERMATE is not set
674# CONFIG_INPUT_YEALINK is not set
675# CONFIG_INPUT_UINPUT is not set 635# CONFIG_INPUT_UINPUT is not set
676CONFIG_TWI_KEYPAD=m 636CONFIG_TWI_KEYPAD=m
677CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=39
678 637
679# 638#
680# Hardware I/O ports 639# Hardware I/O ports
@@ -687,15 +646,13 @@ CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=39
687# 646#
688# CONFIG_AD9960 is not set 647# CONFIG_AD9960 is not set
689# CONFIG_SPI_ADC_BF533 is not set 648# CONFIG_SPI_ADC_BF533 is not set
690# CONFIG_BF5xx_PFLAGS is not set
691# CONFIG_BF5xx_PPIFCD is not set 649# CONFIG_BF5xx_PPIFCD is not set
692# CONFIG_BFIN_SIMPLE_TIMER is not set 650# CONFIG_BFIN_SIMPLE_TIMER is not set
693# CONFIG_BF5xx_PPI is not set 651# CONFIG_BF5xx_PPI is not set
694CONFIG_BFIN_SPORT=y 652CONFIG_BFIN_SPORT=y
695# CONFIG_BFIN_TIMER_LATENCY is not set 653# CONFIG_BFIN_TIMER_LATENCY is not set
696CONFIG_TWI_LCD=m 654CONFIG_TWI_LCD=m
697CONFIG_TWI_LCD_SLAVE_ADDR=34 655CONFIG_SIMPLE_GPIO=m
698# CONFIG_AD5304 is not set
699# CONFIG_VT is not set 656# CONFIG_VT is not set
700# CONFIG_SERIAL_NONSTANDARD is not set 657# CONFIG_SERIAL_NONSTANDARD is not set
701 658
@@ -723,28 +680,11 @@ CONFIG_UNIX98_PTYS=y
723# CAN, the car bus and industrial fieldbus 680# CAN, the car bus and industrial fieldbus
724# 681#
725# CONFIG_CAN4LINUX is not set 682# CONFIG_CAN4LINUX is not set
726
727#
728# IPMI
729#
730# CONFIG_IPMI_HANDLER is not set 683# CONFIG_IPMI_HANDLER is not set
731CONFIG_WATCHDOG=y
732# CONFIG_WATCHDOG_NOWAYOUT is not set
733
734#
735# Watchdog Device Drivers
736#
737# CONFIG_SOFT_WATCHDOG is not set
738CONFIG_BFIN_WDT=y
739CONFIG_HW_RANDOM=y 684CONFIG_HW_RANDOM=y
740# CONFIG_GEN_RTC is not set 685# CONFIG_GEN_RTC is not set
741CONFIG_BLACKFIN_DPMC=y
742# CONFIG_R3964 is not set 686# CONFIG_R3964 is not set
743# CONFIG_RAW_DRIVER is not set 687# CONFIG_RAW_DRIVER is not set
744
745#
746# TPM devices
747#
748# CONFIG_TCG_TPM is not set 688# CONFIG_TCG_TPM is not set
749CONFIG_I2C=m 689CONFIG_I2C=m
750CONFIG_I2C_BOARDINFO=y 690CONFIG_I2C_BOARDINFO=y
@@ -764,6 +704,7 @@ CONFIG_I2C_ALGOBIT=m
764# CONFIG_I2C_OCORES is not set 704# CONFIG_I2C_OCORES is not set
765# CONFIG_I2C_PARPORT_LIGHT is not set 705# CONFIG_I2C_PARPORT_LIGHT is not set
766# CONFIG_I2C_SIMTEC is not set 706# CONFIG_I2C_SIMTEC is not set
707# CONFIG_I2C_TAOS_EVM is not set
767# CONFIG_I2C_STUB is not set 708# CONFIG_I2C_STUB is not set
768 709
769# 710#
@@ -771,14 +712,15 @@ CONFIG_I2C_ALGOBIT=m
771# 712#
772# CONFIG_SENSORS_DS1337 is not set 713# CONFIG_SENSORS_DS1337 is not set
773# CONFIG_SENSORS_DS1374 is not set 714# CONFIG_SENSORS_DS1374 is not set
715# CONFIG_DS1682 is not set
774# CONFIG_SENSORS_AD5252 is not set 716# CONFIG_SENSORS_AD5252 is not set
775# CONFIG_SENSORS_EEPROM is not set 717# CONFIG_SENSORS_EEPROM is not set
776# CONFIG_SENSORS_PCF8574 is not set 718# CONFIG_SENSORS_PCF8574 is not set
777# CONFIG_SENSORS_PCF8575 is not set 719# CONFIG_SENSORS_PCF8575 is not set
778# CONFIG_SENSORS_PCA9543 is not set
779# CONFIG_SENSORS_PCA9539 is not set 720# CONFIG_SENSORS_PCA9539 is not set
780# CONFIG_SENSORS_PCF8591 is not set 721# CONFIG_SENSORS_PCF8591 is not set
781# CONFIG_SENSORS_MAX6875 is not set 722# CONFIG_SENSORS_MAX6875 is not set
723# CONFIG_SENSORS_TSL2550 is not set
782# CONFIG_I2C_DEBUG_CORE is not set 724# CONFIG_I2C_DEBUG_CORE is not set
783# CONFIG_I2C_DEBUG_ALGO is not set 725# CONFIG_I2C_DEBUG_ALGO is not set
784# CONFIG_I2C_DEBUG_BUS is not set 726# CONFIG_I2C_DEBUG_BUS is not set
@@ -801,14 +743,11 @@ CONFIG_SPI_BFIN=y
801# 743#
802# CONFIG_SPI_AT25 is not set 744# CONFIG_SPI_AT25 is not set
803# CONFIG_SPI_SPIDEV is not set 745# CONFIG_SPI_SPIDEV is not set
804 746# CONFIG_SPI_TLE62X0 is not set
805#
806# Dallas's 1-wire bus
807#
808# CONFIG_W1 is not set 747# CONFIG_W1 is not set
748# CONFIG_POWER_SUPPLY is not set
809CONFIG_HWMON=y 749CONFIG_HWMON=y
810# CONFIG_HWMON_VID is not set 750# CONFIG_HWMON_VID is not set
811# CONFIG_SENSORS_ABITUGURU is not set
812# CONFIG_SENSORS_AD7418 is not set 751# CONFIG_SENSORS_AD7418 is not set
813# CONFIG_SENSORS_ADM1021 is not set 752# CONFIG_SENSORS_ADM1021 is not set
814# CONFIG_SENSORS_ADM1025 is not set 753# CONFIG_SENSORS_ADM1025 is not set
@@ -816,12 +755,12 @@ CONFIG_HWMON=y
816# CONFIG_SENSORS_ADM1029 is not set 755# CONFIG_SENSORS_ADM1029 is not set
817# CONFIG_SENSORS_ADM1031 is not set 756# CONFIG_SENSORS_ADM1031 is not set
818# CONFIG_SENSORS_ADM9240 is not set 757# CONFIG_SENSORS_ADM9240 is not set
819# CONFIG_SENSORS_ASB100 is not set 758# CONFIG_SENSORS_ADT7470 is not set
820# CONFIG_SENSORS_ATXP1 is not set 759# CONFIG_SENSORS_ATXP1 is not set
821# CONFIG_SENSORS_DS1621 is not set 760# CONFIG_SENSORS_DS1621 is not set
822# CONFIG_SENSORS_F71805F is not set 761# CONFIG_SENSORS_F71805F is not set
823# CONFIG_SENSORS_FSCHER is not set 762# CONFIG_SENSORS_F71882FG is not set
824# CONFIG_SENSORS_FSCPOS is not set 763# CONFIG_SENSORS_F75375S is not set
825# CONFIG_SENSORS_GL518SM is not set 764# CONFIG_SENSORS_GL518SM is not set
826# CONFIG_SENSORS_GL520SM is not set 765# CONFIG_SENSORS_GL520SM is not set
827# CONFIG_SENSORS_IT87 is not set 766# CONFIG_SENSORS_IT87 is not set
@@ -836,13 +775,16 @@ CONFIG_HWMON=y
836# CONFIG_SENSORS_LM87 is not set 775# CONFIG_SENSORS_LM87 is not set
837# CONFIG_SENSORS_LM90 is not set 776# CONFIG_SENSORS_LM90 is not set
838# CONFIG_SENSORS_LM92 is not set 777# CONFIG_SENSORS_LM92 is not set
778# CONFIG_SENSORS_LM93 is not set
839# CONFIG_SENSORS_MAX1619 is not set 779# CONFIG_SENSORS_MAX1619 is not set
840# CONFIG_SENSORS_MAX6650 is not set 780# CONFIG_SENSORS_MAX6650 is not set
841# CONFIG_SENSORS_PC87360 is not set 781# CONFIG_SENSORS_PC87360 is not set
842# CONFIG_SENSORS_PC87427 is not set 782# CONFIG_SENSORS_PC87427 is not set
783# CONFIG_SENSORS_DME1737 is not set
843# CONFIG_SENSORS_SMSC47M1 is not set 784# CONFIG_SENSORS_SMSC47M1 is not set
844# CONFIG_SENSORS_SMSC47M192 is not set 785# CONFIG_SENSORS_SMSC47M192 is not set
845# CONFIG_SENSORS_SMSC47B397 is not set 786# CONFIG_SENSORS_SMSC47B397 is not set
787# CONFIG_SENSORS_THMC50 is not set
846# CONFIG_SENSORS_VT1211 is not set 788# CONFIG_SENSORS_VT1211 is not set
847# CONFIG_SENSORS_W83781D is not set 789# CONFIG_SENSORS_W83781D is not set
848# CONFIG_SENSORS_W83791D is not set 790# CONFIG_SENSORS_W83791D is not set
@@ -852,6 +794,20 @@ CONFIG_HWMON=y
852# CONFIG_SENSORS_W83627HF is not set 794# CONFIG_SENSORS_W83627HF is not set
853# CONFIG_SENSORS_W83627EHF is not set 795# CONFIG_SENSORS_W83627EHF is not set
854# CONFIG_HWMON_DEBUG_CHIP is not set 796# CONFIG_HWMON_DEBUG_CHIP is not set
797CONFIG_WATCHDOG=y
798# CONFIG_WATCHDOG_NOWAYOUT is not set
799
800#
801# Watchdog Device Drivers
802#
803# CONFIG_SOFT_WATCHDOG is not set
804CONFIG_BFIN_WDT=y
805
806#
807# Sonics Silicon Backplane
808#
809CONFIG_SSB_POSSIBLE=y
810# CONFIG_SSB is not set
855 811
856# 812#
857# Multifunction device drivers 813# Multifunction device drivers
@@ -863,24 +819,20 @@ CONFIG_HWMON=y
863# 819#
864# CONFIG_VIDEO_DEV is not set 820# CONFIG_VIDEO_DEV is not set
865# CONFIG_DVB_CORE is not set 821# CONFIG_DVB_CORE is not set
866CONFIG_DAB=y 822# CONFIG_DAB is not set
867 823
868# 824#
869# Graphics support 825# Graphics support
870# 826#
871# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
872
873#
874# Display device support
875#
876# CONFIG_DISPLAY_SUPPORT is not set
877# CONFIG_VGASTATE is not set 827# CONFIG_VGASTATE is not set
828# CONFIG_VIDEO_OUTPUT_CONTROL is not set
878CONFIG_FB=m 829CONFIG_FB=m
879CONFIG_FIRMWARE_EDID=y 830CONFIG_FIRMWARE_EDID=y
880# CONFIG_FB_DDC is not set 831# CONFIG_FB_DDC is not set
881CONFIG_FB_CFB_FILLRECT=m 832CONFIG_FB_CFB_FILLRECT=m
882CONFIG_FB_CFB_COPYAREA=m 833CONFIG_FB_CFB_COPYAREA=m
883CONFIG_FB_CFB_IMAGEBLIT=m 834CONFIG_FB_CFB_IMAGEBLIT=m
835# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
884# CONFIG_FB_SYS_FILLRECT is not set 836# CONFIG_FB_SYS_FILLRECT is not set
885# CONFIG_FB_SYS_COPYAREA is not set 837# CONFIG_FB_SYS_COPYAREA is not set
886# CONFIG_FB_SYS_IMAGEBLIT is not set 838# CONFIG_FB_SYS_IMAGEBLIT is not set
@@ -895,7 +847,7 @@ CONFIG_FB_DEFERRED_IO=y
895# 847#
896# Frame buffer hardware drivers 848# Frame buffer hardware drivers
897# 849#
898CONFIG_FB_BFIN_7171=m 850# CONFIG_FB_BFIN_T350MCQB is not set
899CONFIG_FB_BFIN_7393=m 851CONFIG_FB_BFIN_7393=m
900CONFIG_NTSC=y 852CONFIG_NTSC=y
901# CONFIG_PAL is not set 853# CONFIG_PAL is not set
@@ -905,9 +857,14 @@ CONFIG_NTSC=y
905# CONFIG_PAL_YCBCR is not set 857# CONFIG_PAL_YCBCR is not set
906CONFIG_ADV7393_1XMEM=y 858CONFIG_ADV7393_1XMEM=y
907# CONFIG_ADV7393_2XMEM is not set 859# CONFIG_ADV7393_2XMEM is not set
908# CONFIG_FB_BFIN_T350MCQB is not set
909# CONFIG_FB_S1D13XXX is not set 860# CONFIG_FB_S1D13XXX is not set
910# CONFIG_FB_VIRTUAL is not set 861# CONFIG_FB_VIRTUAL is not set
862# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
863
864#
865# Display device support
866#
867# CONFIG_DISPLAY_SUPPORT is not set
911# CONFIG_LOGO is not set 868# CONFIG_LOGO is not set
912 869
913# 870#
@@ -941,6 +898,10 @@ CONFIG_SND_VERBOSE_PROCFS=y
941# CONFIG_SND_MPU401 is not set 898# CONFIG_SND_MPU401 is not set
942 899
943# 900#
901# SPI devices
902#
903
904#
944# ALSA Blackfin devices 905# ALSA Blackfin devices
945# 906#
946CONFIG_SND_BLACKFIN_AD1836=m 907CONFIG_SND_BLACKFIN_AD1836=m
@@ -953,69 +914,43 @@ CONFIG_SND_BLACKFIN_SPI_PFBIT=4
953CONFIG_SND_BFIN_AD73311=m 914CONFIG_SND_BFIN_AD73311=m
954CONFIG_SND_BFIN_SPORT=0 915CONFIG_SND_BFIN_SPORT=0
955CONFIG_SND_BFIN_AD73311_SE=4 916CONFIG_SND_BFIN_AD73311_SE=4
917CONFIG_SND_BFIN_AD73322=m
918CONFIG_SND_BFIN_AD73322_SPORT0_SE=10
919CONFIG_SND_BFIN_AD73322_SPORT1_SE=14
920CONFIG_SND_BFIN_AD73322_RESET=12
956 921
957# 922#
958# System on Chip audio support 923# System on Chip audio support
959# 924#
960# CONFIG_SND_SOC is not set 925CONFIG_SND_SOC_AC97_BUS=y
926CONFIG_SND_SOC=m
927CONFIG_SND_BF5XX_SOC=m
928CONFIG_SND_MMAP_SUPPORT=y
929CONFIG_SND_BF5XX_SOC_AC97=m
930# CONFIG_SND_BF5XX_SOC_WM8750 is not set
931# CONFIG_SND_BF5XX_SOC_WM8731 is not set
932# CONFIG_SND_BF5XX_SOC_SSM2602 is not set
933CONFIG_SND_BF5XX_SOC_BF5xx=m
934CONFIG_SND_BF5XX_SPORT_NUM=0
935# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
961 936
962# 937#
963# Open Sound System 938# SoC Audio support for SuperH
964# 939#
965# CONFIG_SOUND_PRIME is not set 940CONFIG_SND_SOC_AD1980=m
966 941
967# 942#
968# HID Devices 943# Open Sound System
969# 944#
945# CONFIG_SOUND_PRIME is not set
946CONFIG_AC97_BUS=m
947CONFIG_HID_SUPPORT=y
970CONFIG_HID=y 948CONFIG_HID=y
971# CONFIG_HID_DEBUG is not set 949# CONFIG_HID_DEBUG is not set
972 950# CONFIG_HIDRAW is not set
973# 951# CONFIG_USB_SUPPORT is not set
974# USB support
975#
976CONFIG_USB_ARCH_HAS_HCD=y
977# CONFIG_USB_ARCH_HAS_OHCI is not set
978# CONFIG_USB_ARCH_HAS_EHCI is not set
979# CONFIG_USB is not set
980
981#
982# Enable Host or Gadget support to see Inventra options
983#
984
985#
986# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
987#
988
989#
990# USB Gadget Support
991#
992# CONFIG_USB_GADGET is not set
993# CONFIG_MMC is not set 952# CONFIG_MMC is not set
994
995#
996# LED devices
997#
998# CONFIG_NEW_LEDS is not set 953# CONFIG_NEW_LEDS is not set
999
1000#
1001# LED drivers
1002#
1003
1004#
1005# LED Triggers
1006#
1007
1008#
1009# InfiniBand support
1010#
1011
1012#
1013# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1014#
1015
1016#
1017# Real Time Clock
1018#
1019CONFIG_RTC_LIB=y 954CONFIG_RTC_LIB=y
1020CONFIG_RTC_CLASS=y 955CONFIG_RTC_CLASS=y
1021CONFIG_RTC_HCTOSYS=y 956CONFIG_RTC_HCTOSYS=y
@@ -1035,6 +970,7 @@ CONFIG_RTC_INTF_DEV=y
1035# I2C RTC drivers 970# I2C RTC drivers
1036# 971#
1037# CONFIG_RTC_DRV_DS1307 is not set 972# CONFIG_RTC_DRV_DS1307 is not set
973# CONFIG_RTC_DRV_DS1374 is not set
1038# CONFIG_RTC_DRV_DS1672 is not set 974# CONFIG_RTC_DRV_DS1672 is not set
1039# CONFIG_RTC_DRV_MAX6900 is not set 975# CONFIG_RTC_DRV_MAX6900 is not set
1040# CONFIG_RTC_DRV_RS5C372 is not set 976# CONFIG_RTC_DRV_RS5C372 is not set
@@ -1042,6 +978,7 @@ CONFIG_RTC_INTF_DEV=y
1042# CONFIG_RTC_DRV_X1205 is not set 978# CONFIG_RTC_DRV_X1205 is not set
1043# CONFIG_RTC_DRV_PCF8563 is not set 979# CONFIG_RTC_DRV_PCF8563 is not set
1044# CONFIG_RTC_DRV_PCF8583 is not set 980# CONFIG_RTC_DRV_PCF8583 is not set
981# CONFIG_RTC_DRV_M41T80 is not set
1045 982
1046# 983#
1047# SPI RTC drivers 984# SPI RTC drivers
@@ -1053,8 +990,10 @@ CONFIG_RTC_INTF_DEV=y
1053# Platform RTC drivers 990# Platform RTC drivers
1054# 991#
1055# CONFIG_RTC_DRV_DS1553 is not set 992# CONFIG_RTC_DRV_DS1553 is not set
993# CONFIG_RTC_DRV_STK17TA8 is not set
1056# CONFIG_RTC_DRV_DS1742 is not set 994# CONFIG_RTC_DRV_DS1742 is not set
1057# CONFIG_RTC_DRV_M48T86 is not set 995# CONFIG_RTC_DRV_M48T86 is not set
996# CONFIG_RTC_DRV_M48T59 is not set
1058# CONFIG_RTC_DRV_V3020 is not set 997# CONFIG_RTC_DRV_V3020 is not set
1059 998
1060# 999#
@@ -1063,22 +1002,9 @@ CONFIG_RTC_INTF_DEV=y
1063CONFIG_RTC_DRV_BFIN=y 1002CONFIG_RTC_DRV_BFIN=y
1064 1003
1065# 1004#
1066# DMA Engine support 1005# Userspace I/O
1067# 1006#
1068# CONFIG_DMA_ENGINE is not set 1007# CONFIG_UIO is not set
1069
1070#
1071# DMA Clients
1072#
1073
1074#
1075# DMA Devices
1076#
1077
1078#
1079# PBX support
1080#
1081# CONFIG_PBX is not set
1082 1008
1083# 1009#
1084# File systems 1010# File systems
@@ -1123,7 +1049,6 @@ CONFIG_PROC_SYSCTL=y
1123CONFIG_SYSFS=y 1049CONFIG_SYSFS=y
1124# CONFIG_TMPFS is not set 1050# CONFIG_TMPFS is not set
1125# CONFIG_HUGETLB_PAGE is not set 1051# CONFIG_HUGETLB_PAGE is not set
1126CONFIG_RAMFS=y
1127# CONFIG_CONFIGFS_FS is not set 1052# CONFIG_CONFIGFS_FS is not set
1128 1053
1129# 1054#
@@ -1149,10 +1074,12 @@ CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1149CONFIG_JFFS2_FS=m 1074CONFIG_JFFS2_FS=m
1150CONFIG_JFFS2_FS_DEBUG=0 1075CONFIG_JFFS2_FS_DEBUG=0
1151CONFIG_JFFS2_FS_WRITEBUFFER=y 1076CONFIG_JFFS2_FS_WRITEBUFFER=y
1077# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1152# CONFIG_JFFS2_SUMMARY is not set 1078# CONFIG_JFFS2_SUMMARY is not set
1153# CONFIG_JFFS2_FS_XATTR is not set 1079# CONFIG_JFFS2_FS_XATTR is not set
1154# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1080# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1155CONFIG_JFFS2_ZLIB=y 1081CONFIG_JFFS2_ZLIB=y
1082# CONFIG_JFFS2_LZO is not set
1156CONFIG_JFFS2_RTIME=y 1083CONFIG_JFFS2_RTIME=y
1157# CONFIG_JFFS2_RUBIN is not set 1084# CONFIG_JFFS2_RUBIN is not set
1158# CONFIG_CRAMFS is not set 1085# CONFIG_CRAMFS is not set
@@ -1161,10 +1088,7 @@ CONFIG_JFFS2_RTIME=y
1161# CONFIG_QNX4FS_FS is not set 1088# CONFIG_QNX4FS_FS is not set
1162# CONFIG_SYSV_FS is not set 1089# CONFIG_SYSV_FS is not set
1163# CONFIG_UFS_FS is not set 1090# CONFIG_UFS_FS is not set
1164 1091CONFIG_NETWORK_FILESYSTEMS=y
1165#
1166# Network File Systems
1167#
1168CONFIG_NFS_FS=m 1092CONFIG_NFS_FS=m
1169CONFIG_NFS_V3=y 1093CONFIG_NFS_V3=y
1170# CONFIG_NFS_V3_ACL is not set 1094# CONFIG_NFS_V3_ACL is not set
@@ -1184,17 +1108,12 @@ CONFIG_SMB_FS=m
1184# CONFIG_NCP_FS is not set 1108# CONFIG_NCP_FS is not set
1185# CONFIG_CODA_FS is not set 1109# CONFIG_CODA_FS is not set
1186# CONFIG_AFS_FS is not set 1110# CONFIG_AFS_FS is not set
1187# CONFIG_9P_FS is not set
1188 1111
1189# 1112#
1190# Partition Types 1113# Partition Types
1191# 1114#
1192# CONFIG_PARTITION_ADVANCED is not set 1115# CONFIG_PARTITION_ADVANCED is not set
1193CONFIG_MSDOS_PARTITION=y 1116CONFIG_MSDOS_PARTITION=y
1194
1195#
1196# Native Language Support
1197#
1198CONFIG_NLS=m 1117CONFIG_NLS=m
1199CONFIG_NLS_DEFAULT="iso8859-1" 1118CONFIG_NLS_DEFAULT="iso8859-1"
1200# CONFIG_NLS_CODEPAGE_437 is not set 1119# CONFIG_NLS_CODEPAGE_437 is not set
@@ -1235,21 +1154,16 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1235# CONFIG_NLS_KOI8_R is not set 1154# CONFIG_NLS_KOI8_R is not set
1236# CONFIG_NLS_KOI8_U is not set 1155# CONFIG_NLS_KOI8_U is not set
1237# CONFIG_NLS_UTF8 is not set 1156# CONFIG_NLS_UTF8 is not set
1238
1239#
1240# Distributed Lock Manager
1241#
1242# CONFIG_DLM is not set 1157# CONFIG_DLM is not set
1243 1158CONFIG_INSTRUMENTATION=y
1244#
1245# Profiling support
1246#
1247# CONFIG_PROFILING is not set 1159# CONFIG_PROFILING is not set
1160# CONFIG_MARKERS is not set
1248 1161
1249# 1162#
1250# Kernel hacking 1163# Kernel hacking
1251# 1164#
1252# CONFIG_PRINTK_TIME is not set 1165# CONFIG_PRINTK_TIME is not set
1166CONFIG_ENABLE_WARN_DEPRECATED=y
1253CONFIG_ENABLE_MUST_CHECK=y 1167CONFIG_ENABLE_MUST_CHECK=y
1254# CONFIG_MAGIC_SYSRQ is not set 1168# CONFIG_MAGIC_SYSRQ is not set
1255# CONFIG_UNUSED_SYMBOLS is not set 1169# CONFIG_UNUSED_SYMBOLS is not set
@@ -1257,6 +1171,7 @@ CONFIG_DEBUG_FS=y
1257# CONFIG_HEADERS_CHECK is not set 1171# CONFIG_HEADERS_CHECK is not set
1258# CONFIG_DEBUG_KERNEL is not set 1172# CONFIG_DEBUG_KERNEL is not set
1259# CONFIG_DEBUG_BUGVERBOSE is not set 1173# CONFIG_DEBUG_BUGVERBOSE is not set
1174# CONFIG_SAMPLES is not set
1260CONFIG_DEBUG_MMRS=y 1175CONFIG_DEBUG_MMRS=y
1261CONFIG_DEBUG_HUNT_FOR_ZERO=y 1176CONFIG_DEBUG_HUNT_FOR_ZERO=y
1262CONFIG_DEBUG_BFIN_HWTRACE_ON=y 1177CONFIG_DEBUG_BFIN_HWTRACE_ON=y
@@ -1276,11 +1191,7 @@ CONFIG_ACCESS_CHECK=y
1276# CONFIG_KEYS is not set 1191# CONFIG_KEYS is not set
1277CONFIG_SECURITY=y 1192CONFIG_SECURITY=y
1278# CONFIG_SECURITY_NETWORK is not set 1193# CONFIG_SECURITY_NETWORK is not set
1279CONFIG_SECURITY_CAPABILITIES=m 1194# CONFIG_SECURITY_CAPABILITIES is not set
1280
1281#
1282# Cryptographic options
1283#
1284# CONFIG_CRYPTO is not set 1195# CONFIG_CRYPTO is not set
1285 1196
1286# 1197#
@@ -1291,6 +1202,7 @@ CONFIG_CRC_CCITT=m
1291# CONFIG_CRC16 is not set 1202# CONFIG_CRC16 is not set
1292# CONFIG_CRC_ITU_T is not set 1203# CONFIG_CRC_ITU_T is not set
1293CONFIG_CRC32=y 1204CONFIG_CRC32=y
1205# CONFIG_CRC7 is not set
1294# CONFIG_LIBCRC32C is not set 1206# CONFIG_LIBCRC32C is not set
1295CONFIG_ZLIB_INFLATE=y 1207CONFIG_ZLIB_INFLATE=y
1296CONFIG_ZLIB_DEFLATE=m 1208CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index b5189c8ba263..5fd7c4b143df 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.16 3# Linux kernel version: 2.6.24.7
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -13,35 +13,34 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14 17CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y 18CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21 20
22# 21#
23# Code maturity level options 22# General setup
24# 23#
25CONFIG_EXPERIMENTAL=y 24CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y 25CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32 26CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION="" 27CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y 28CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
37# CONFIG_POSIX_MQUEUE is not set 31# CONFIG_POSIX_MQUEUE is not set
38# CONFIG_BSD_PROCESS_ACCT is not set 32# CONFIG_BSD_PROCESS_ACCT is not set
39# CONFIG_TASKSTATS is not set 33# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 34# CONFIG_USER_NS is not set
35# CONFIG_PID_NS is not set
41# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
42CONFIG_IKCONFIG=y 37CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y 38CONFIG_IKCONFIG_PROC=y
44CONFIG_LOG_BUF_SHIFT=14 39CONFIG_LOG_BUF_SHIFT=14
40# CONFIG_CGROUPS is not set
41CONFIG_FAIR_GROUP_SCHED=y
42CONFIG_FAIR_USER_SCHED=y
43# CONFIG_FAIR_CGROUP_SCHED is not set
45CONFIG_SYSFS_DEPRECATED=y 44CONFIG_SYSFS_DEPRECATED=y
46# CONFIG_RELAY is not set 45# CONFIG_RELAY is not set
47CONFIG_BLK_DEV_INITRD=y 46CONFIG_BLK_DEV_INITRD=y
@@ -64,32 +63,24 @@ CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 63CONFIG_SIGNALFD=y
65CONFIG_EVENTFD=y 64CONFIG_EVENTFD=y
66CONFIG_VM_EVENT_COUNTERS=y 65CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
68# CONFIG_NP2 is not set
69CONFIG_SLAB=y 66CONFIG_SLAB=y
70# CONFIG_SLUB is not set 67# CONFIG_SLUB is not set
71# CONFIG_SLOB is not set 68# CONFIG_SLOB is not set
69CONFIG_SLABINFO=y
72CONFIG_RT_MUTEXES=y 70CONFIG_RT_MUTEXES=y
73CONFIG_TINY_SHMEM=y 71CONFIG_TINY_SHMEM=y
74CONFIG_BASE_SMALL=0 72CONFIG_BASE_SMALL=0
75
76#
77# Loadable module support
78#
79CONFIG_MODULES=y 73CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y 74CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 75# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 76# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 77# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y 78CONFIG_KMOD=y
85
86#
87# Block layer
88#
89CONFIG_BLOCK=y 79CONFIG_BLOCK=y
90# CONFIG_LBD is not set 80# CONFIG_LBD is not set
91# CONFIG_BLK_DEV_IO_TRACE is not set 81# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_LSF is not set 82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set
93 84
94# 85#
95# IO Schedulers 86# IO Schedulers
@@ -141,7 +132,6 @@ CONFIG_BF_REV_0_2=y
141# CONFIG_BF_REV_ANY is not set 132# CONFIG_BF_REV_ANY is not set
142# CONFIG_BF_REV_NONE is not set 133# CONFIG_BF_REV_NONE is not set
143CONFIG_BF53x=y 134CONFIG_BF53x=y
144CONFIG_BFIN_SINGLE_CORE=y
145CONFIG_MEM_MT48LC32M8A2_75=y 135CONFIG_MEM_MT48LC32M8A2_75=y
146CONFIG_IRQ_PLL_WAKEUP=7 136CONFIG_IRQ_PLL_WAKEUP=7
147CONFIG_IRQ_RTC=8 137CONFIG_IRQ_RTC=8
@@ -197,12 +187,14 @@ CONFIG_IRQ_PROG_INTA=12
197# Board customizations 187# Board customizations
198# 188#
199# CONFIG_CMDLINE_BOOL is not set 189# CONFIG_CMDLINE_BOOL is not set
190CONFIG_BOOT_LOAD=0x1000
200 191
201# 192#
202# Clock/PLL Setup 193# Clock/PLL Setup
203# 194#
204CONFIG_CLKIN_HZ=25000000 195CONFIG_CLKIN_HZ=25000000
205# CONFIG_BFIN_KERNEL_CLOCK is not set 196# CONFIG_BFIN_KERNEL_CLOCK is not set
197CONFIG_MAX_MEM_SIZE=512
206CONFIG_MAX_VCO_HZ=600000000 198CONFIG_MAX_VCO_HZ=600000000
207CONFIG_MIN_VCO_HZ=50000000 199CONFIG_MIN_VCO_HZ=50000000
208CONFIG_MAX_SCLK_HZ=133333333 200CONFIG_MAX_SCLK_HZ=133333333
@@ -216,13 +208,17 @@ CONFIG_HZ_250=y
216# CONFIG_HZ_300 is not set 208# CONFIG_HZ_300 is not set
217# CONFIG_HZ_1000 is not set 209# CONFIG_HZ_1000 is not set
218CONFIG_HZ=250 210CONFIG_HZ=250
211CONFIG_GENERIC_TIME=y
212CONFIG_GENERIC_CLOCKEVENTS=y
213# CONFIG_CYCLES_CLOCKSOURCE is not set
214CONFIG_TICK_ONESHOT=y
215# CONFIG_NO_HZ is not set
216CONFIG_HIGH_RES_TIMERS=y
217CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
219 218
220# 219#
221# Memory Setup 220# Misc
222# 221#
223CONFIG_MAX_MEM_SIZE=512
224CONFIG_MEM_ADD_WIDTH=10
225CONFIG_BOOT_LOAD=0x1000
226CONFIG_BFIN_SCRATCH_REG_RETN=y 222CONFIG_BFIN_SCRATCH_REG_RETN=y
227# CONFIG_BFIN_SCRATCH_REG_RETE is not set 223# CONFIG_BFIN_SCRATCH_REG_RETE is not set
228# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set 224# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
@@ -258,12 +254,14 @@ CONFIG_FLATMEM_MANUAL=y
258CONFIG_FLATMEM=y 254CONFIG_FLATMEM=y
259CONFIG_FLAT_NODE_MEM_MAP=y 255CONFIG_FLAT_NODE_MEM_MAP=y
260# CONFIG_SPARSEMEM_STATIC is not set 256# CONFIG_SPARSEMEM_STATIC is not set
257# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
261CONFIG_SPLIT_PTLOCK_CPUS=4 258CONFIG_SPLIT_PTLOCK_CPUS=4
262# CONFIG_RESOURCES_64BIT is not set 259# CONFIG_RESOURCES_64BIT is not set
263CONFIG_ZONE_DMA_FLAG=1 260CONFIG_ZONE_DMA_FLAG=1
264CONFIG_LARGE_ALLOCS=y 261CONFIG_VIRT_TO_BUS=y
265# CONFIG_BFIN_GPTIMERS is not set 262# CONFIG_BFIN_GPTIMERS is not set
266CONFIG_BFIN_DMA_5XX=y 263CONFIG_BFIN_DMA_5XX=y
264# CONFIG_DMA_UNCACHED_4M is not set
267# CONFIG_DMA_UNCACHED_2M is not set 265# CONFIG_DMA_UNCACHED_2M is not set
268CONFIG_DMA_UNCACHED_1M=y 266CONFIG_DMA_UNCACHED_1M=y
269# CONFIG_DMA_UNCACHED_NONE is not set 267# CONFIG_DMA_UNCACHED_NONE is not set
@@ -301,17 +299,13 @@ CONFIG_C_AMBEN_ALL=y
301CONFIG_BANK_0=0x7BB0 299CONFIG_BANK_0=0x7BB0
302CONFIG_BANK_1=0x7BB0 300CONFIG_BANK_1=0x7BB0
303CONFIG_BANK_2=0x7BB0 301CONFIG_BANK_2=0x7BB0
304CONFIG_BANK_3=0x99B3 302CONFIG_BANK_3=0x99B2
305 303
306# 304#
307# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 305# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
308# 306#
309# CONFIG_PCI is not set 307# CONFIG_PCI is not set
310# CONFIG_ARCH_SUPPORTS_MSI is not set 308# CONFIG_ARCH_SUPPORTS_MSI is not set
311
312#
313# PCCARD (PCMCIA/CardBus) support
314#
315# CONFIG_PCCARD is not set 309# CONFIG_PCCARD is not set
316 310
317# 311#
@@ -329,7 +323,9 @@ CONFIG_BINFMT_ZFLAT=y
329CONFIG_PM=y 323CONFIG_PM=y
330# CONFIG_PM_LEGACY is not set 324# CONFIG_PM_LEGACY is not set
331# CONFIG_PM_DEBUG is not set 325# CONFIG_PM_DEBUG is not set
332# CONFIG_PM_SYSFS_DEPRECATED is not set 326CONFIG_PM_SLEEP=y
327CONFIG_SUSPEND_UP_POSSIBLE=y
328CONFIG_SUSPEND=y
333CONFIG_PM_BFIN_SLEEP_DEEPER=y 329CONFIG_PM_BFIN_SLEEP_DEEPER=y
334# CONFIG_PM_BFIN_SLEEP is not set 330# CONFIG_PM_BFIN_SLEEP is not set
335# CONFIG_PM_WAKEUP_BY_GPIO is not set 331# CONFIG_PM_WAKEUP_BY_GPIO is not set
@@ -375,6 +371,7 @@ CONFIG_SYN_COOKIES=y
375CONFIG_INET_XFRM_MODE_TRANSPORT=y 371CONFIG_INET_XFRM_MODE_TRANSPORT=y
376CONFIG_INET_XFRM_MODE_TUNNEL=y 372CONFIG_INET_XFRM_MODE_TUNNEL=y
377CONFIG_INET_XFRM_MODE_BEET=y 373CONFIG_INET_XFRM_MODE_BEET=y
374# CONFIG_INET_LRO is not set
378CONFIG_INET_DIAG=y 375CONFIG_INET_DIAG=y
379CONFIG_INET_TCP_DIAG=y 376CONFIG_INET_TCP_DIAG=y
380# CONFIG_TCP_CONG_ADVANCED is not set 377# CONFIG_TCP_CONG_ADVANCED is not set
@@ -401,10 +398,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
401# CONFIG_LAPB is not set 398# CONFIG_LAPB is not set
402# CONFIG_ECONET is not set 399# CONFIG_ECONET is not set
403# CONFIG_WAN_ROUTER is not set 400# CONFIG_WAN_ROUTER is not set
404
405#
406# QoS and/or fair queueing
407#
408# CONFIG_NET_SCHED is not set 401# CONFIG_NET_SCHED is not set
409 402
410# 403#
@@ -436,6 +429,10 @@ CONFIG_IRDA_CACHE_LAST_LSAP=y
436# SIR device drivers 429# SIR device drivers
437# 430#
438CONFIG_IRTTY_SIR=m 431CONFIG_IRTTY_SIR=m
432CONFIG_BFIN_SIR=m
433CONFIG_BFIN_SIR1=y
434CONFIG_SIR_BFIN_DMA=y
435# CONFIG_SIR_BFIN_PIO is not set
439 436
440# 437#
441# Dongle support 438# Dongle support
@@ -465,6 +462,7 @@ CONFIG_IRTTY_SIR=m
465# CONFIG_MAC80211 is not set 462# CONFIG_MAC80211 is not set
466# CONFIG_IEEE80211 is not set 463# CONFIG_IEEE80211 is not set
467# CONFIG_RFKILL is not set 464# CONFIG_RFKILL is not set
465# CONFIG_NET_9P is not set
468 466
469# 467#
470# Device Drivers 468# Device Drivers
@@ -473,14 +471,11 @@ CONFIG_IRTTY_SIR=m
473# 471#
474# Generic Driver Options 472# Generic Driver Options
475# 473#
474CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
476CONFIG_STANDALONE=y 475CONFIG_STANDALONE=y
477CONFIG_PREVENT_FIRMWARE_BUILD=y 476CONFIG_PREVENT_FIRMWARE_BUILD=y
478# CONFIG_FW_LOADER is not set 477# CONFIG_FW_LOADER is not set
479# CONFIG_SYS_HYPERVISOR is not set 478# CONFIG_SYS_HYPERVISOR is not set
480
481#
482# Connector - unified userspace <-> kernelspace linker
483#
484# CONFIG_CONNECTOR is not set 479# CONFIG_CONNECTOR is not set
485CONFIG_MTD=y 480CONFIG_MTD=y
486# CONFIG_MTD_DEBUG is not set 481# CONFIG_MTD_DEBUG is not set
@@ -500,6 +495,7 @@ CONFIG_MTD_BLOCK=y
500# CONFIG_INFTL is not set 495# CONFIG_INFTL is not set
501# CONFIG_RFD_FTL is not set 496# CONFIG_RFD_FTL is not set
502# CONFIG_SSFDC is not set 497# CONFIG_SSFDC is not set
498# CONFIG_MTD_OOPS is not set
503 499
504# 500#
505# RAM/ROM/Flash chip drivers 501# RAM/ROM/Flash chip drivers
@@ -572,20 +568,8 @@ CONFIG_MTD_NAND_IDS=m
572# UBI - Unsorted block images 568# UBI - Unsorted block images
573# 569#
574# CONFIG_MTD_UBI is not set 570# CONFIG_MTD_UBI is not set
575
576#
577# Parallel port support
578#
579# CONFIG_PARPORT is not set 571# CONFIG_PARPORT is not set
580 572CONFIG_BLK_DEV=y
581#
582# Plug and Play support
583#
584# CONFIG_PNPACPI is not set
585
586#
587# Block devices
588#
589# CONFIG_BLK_DEV_COW_COMMON is not set 573# CONFIG_BLK_DEV_COW_COMMON is not set
590# CONFIG_BLK_DEV_LOOP is not set 574# CONFIG_BLK_DEV_LOOP is not set
591# CONFIG_BLK_DEV_NBD is not set 575# CONFIG_BLK_DEV_NBD is not set
@@ -595,10 +579,8 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
595CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 579CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
596# CONFIG_CDROM_PKTCDVD is not set 580# CONFIG_CDROM_PKTCDVD is not set
597# CONFIG_ATA_OVER_ETH is not set 581# CONFIG_ATA_OVER_ETH is not set
598 582CONFIG_MISC_DEVICES=y
599# 583# CONFIG_EEPROM_93CX6 is not set
600# Misc devices
601#
602# CONFIG_IDE is not set 584# CONFIG_IDE is not set
603 585
604# 586#
@@ -606,22 +588,18 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
606# 588#
607# CONFIG_RAID_ATTRS is not set 589# CONFIG_RAID_ATTRS is not set
608# CONFIG_SCSI is not set 590# CONFIG_SCSI is not set
591# CONFIG_SCSI_DMA is not set
609# CONFIG_SCSI_NETLINK is not set 592# CONFIG_SCSI_NETLINK is not set
610# CONFIG_ATA is not set 593# CONFIG_ATA is not set
611
612#
613# Multi-device support (RAID and LVM)
614#
615# CONFIG_MD is not set 594# CONFIG_MD is not set
616
617#
618# Network device support
619#
620CONFIG_NETDEVICES=y 595CONFIG_NETDEVICES=y
596# CONFIG_NETDEVICES_MULTIQUEUE is not set
621# CONFIG_DUMMY is not set 597# CONFIG_DUMMY is not set
622# CONFIG_BONDING is not set 598# CONFIG_BONDING is not set
599# CONFIG_MACVLAN is not set
623# CONFIG_EQUALIZER is not set 600# CONFIG_EQUALIZER is not set
624# CONFIG_TUN is not set 601# CONFIG_TUN is not set
602# CONFIG_VETH is not set
625CONFIG_PHYLIB=y 603CONFIG_PHYLIB=y
626 604
627# 605#
@@ -635,21 +613,24 @@ CONFIG_PHYLIB=y
635# CONFIG_VITESSE_PHY is not set 613# CONFIG_VITESSE_PHY is not set
636CONFIG_SMSC_PHY=y 614CONFIG_SMSC_PHY=y
637# CONFIG_BROADCOM_PHY is not set 615# CONFIG_BROADCOM_PHY is not set
616# CONFIG_ICPLUS_PHY is not set
638# CONFIG_FIXED_PHY is not set 617# CONFIG_FIXED_PHY is not set
639 618# CONFIG_MDIO_BITBANG is not set
640#
641# Ethernet (10 or 100Mbit)
642#
643CONFIG_NET_ETHERNET=y 619CONFIG_NET_ETHERNET=y
644CONFIG_MII=y 620CONFIG_MII=y
645# CONFIG_SMC91X is not set
646CONFIG_BFIN_MAC=y 621CONFIG_BFIN_MAC=y
647CONFIG_BFIN_MAC_USE_L1=y 622CONFIG_BFIN_MAC_USE_L1=y
648CONFIG_BFIN_TX_DESC_NUM=10 623CONFIG_BFIN_TX_DESC_NUM=10
649CONFIG_BFIN_RX_DESC_NUM=20 624CONFIG_BFIN_RX_DESC_NUM=20
650# CONFIG_BFIN_MAC_RMII is not set 625# CONFIG_BFIN_MAC_RMII is not set
626# CONFIG_SMC91X is not set
651# CONFIG_SMSC911X is not set 627# CONFIG_SMSC911X is not set
652# CONFIG_DM9000 is not set 628# CONFIG_DM9000 is not set
629# CONFIG_IBM_NEW_EMAC_ZMII is not set
630# CONFIG_IBM_NEW_EMAC_RGMII is not set
631# CONFIG_IBM_NEW_EMAC_TAH is not set
632# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
633# CONFIG_B44 is not set
653CONFIG_NETDEV_1000=y 634CONFIG_NETDEV_1000=y
654# CONFIG_AX88180 is not set 635# CONFIG_AX88180 is not set
655CONFIG_NETDEV_10000=y 636CONFIG_NETDEV_10000=y
@@ -666,15 +647,7 @@ CONFIG_NETDEV_10000=y
666# CONFIG_NETCONSOLE is not set 647# CONFIG_NETCONSOLE is not set
667# CONFIG_NETPOLL is not set 648# CONFIG_NETPOLL is not set
668# CONFIG_NET_POLL_CONTROLLER is not set 649# CONFIG_NET_POLL_CONTROLLER is not set
669
670#
671# ISDN subsystem
672#
673# CONFIG_ISDN is not set 650# CONFIG_ISDN is not set
674
675#
676# Telephony Support
677#
678# CONFIG_PHONE is not set 651# CONFIG_PHONE is not set
679 652
680# 653#
@@ -689,7 +662,6 @@ CONFIG_INPUT=y
689# 662#
690# CONFIG_INPUT_MOUSEDEV is not set 663# CONFIG_INPUT_MOUSEDEV is not set
691# CONFIG_INPUT_JOYDEV is not set 664# CONFIG_INPUT_JOYDEV is not set
692# CONFIG_INPUT_TSDEV is not set
693CONFIG_INPUT_EVDEV=m 665CONFIG_INPUT_EVDEV=m
694# CONFIG_INPUT_EVBUG is not set 666# CONFIG_INPUT_EVBUG is not set
695 667
@@ -702,14 +674,8 @@ CONFIG_INPUT_EVDEV=m
702# CONFIG_INPUT_TABLET is not set 674# CONFIG_INPUT_TABLET is not set
703# CONFIG_INPUT_TOUCHSCREEN is not set 675# CONFIG_INPUT_TOUCHSCREEN is not set
704CONFIG_INPUT_MISC=y 676CONFIG_INPUT_MISC=y
705# CONFIG_INPUT_ATI_REMOTE is not set
706# CONFIG_INPUT_ATI_REMOTE2 is not set
707# CONFIG_INPUT_KEYSPAN_REMOTE is not set
708# CONFIG_INPUT_POWERMATE is not set
709# CONFIG_INPUT_YEALINK is not set
710# CONFIG_INPUT_UINPUT is not set 677# CONFIG_INPUT_UINPUT is not set
711CONFIG_TWI_KEYPAD=m 678CONFIG_TWI_KEYPAD=m
712CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=72
713 679
714# 680#
715# Hardware I/O ports 681# Hardware I/O ports
@@ -722,15 +688,13 @@ CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=72
722# 688#
723# CONFIG_AD9960 is not set 689# CONFIG_AD9960 is not set
724# CONFIG_SPI_ADC_BF533 is not set 690# CONFIG_SPI_ADC_BF533 is not set
725# CONFIG_BF5xx_PFLAGS is not set
726# CONFIG_BF5xx_PPIFCD is not set 691# CONFIG_BF5xx_PPIFCD is not set
727# CONFIG_BFIN_SIMPLE_TIMER is not set 692# CONFIG_BFIN_SIMPLE_TIMER is not set
728# CONFIG_BF5xx_PPI is not set 693# CONFIG_BF5xx_PPI is not set
729CONFIG_BFIN_SPORT=y 694CONFIG_BFIN_SPORT=y
730# CONFIG_BFIN_TIMER_LATENCY is not set 695# CONFIG_BFIN_TIMER_LATENCY is not set
731CONFIG_TWI_LCD=m 696CONFIG_TWI_LCD=m
732CONFIG_TWI_LCD_SLAVE_ADDR=34 697CONFIG_SIMPLE_GPIO=m
733# CONFIG_AD5304 is not set
734# CONFIG_VT is not set 698# CONFIG_VT is not set
735# CONFIG_SERIAL_NONSTANDARD is not set 699# CONFIG_SERIAL_NONSTANDARD is not set
736 700
@@ -766,28 +730,11 @@ CONFIG_CAN4LINUX=y
766# CONFIG_CAN_MCF5282 is not set 730# CONFIG_CAN_MCF5282 is not set
767# CONFIG_CAN_UNCTWINCAN is not set 731# CONFIG_CAN_UNCTWINCAN is not set
768CONFIG_CAN_BLACKFIN=m 732CONFIG_CAN_BLACKFIN=m
769
770#
771# IPMI
772#
773# CONFIG_IPMI_HANDLER is not set 733# CONFIG_IPMI_HANDLER is not set
774CONFIG_WATCHDOG=y
775# CONFIG_WATCHDOG_NOWAYOUT is not set
776
777#
778# Watchdog Device Drivers
779#
780# CONFIG_SOFT_WATCHDOG is not set
781CONFIG_BFIN_WDT=y
782CONFIG_HW_RANDOM=y 734CONFIG_HW_RANDOM=y
783# CONFIG_GEN_RTC is not set 735# CONFIG_GEN_RTC is not set
784CONFIG_BLACKFIN_DPMC=y
785# CONFIG_R3964 is not set 736# CONFIG_R3964 is not set
786# CONFIG_RAW_DRIVER is not set 737# CONFIG_RAW_DRIVER is not set
787
788#
789# TPM devices
790#
791# CONFIG_TCG_TPM is not set 738# CONFIG_TCG_TPM is not set
792CONFIG_I2C=m 739CONFIG_I2C=m
793CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
@@ -809,6 +756,7 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50
809# CONFIG_I2C_OCORES is not set 756# CONFIG_I2C_OCORES is not set
810# CONFIG_I2C_PARPORT_LIGHT is not set 757# CONFIG_I2C_PARPORT_LIGHT is not set
811# CONFIG_I2C_SIMTEC is not set 758# CONFIG_I2C_SIMTEC is not set
759# CONFIG_I2C_TAOS_EVM is not set
812# CONFIG_I2C_STUB is not set 760# CONFIG_I2C_STUB is not set
813 761
814# 762#
@@ -816,14 +764,15 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50
816# 764#
817# CONFIG_SENSORS_DS1337 is not set 765# CONFIG_SENSORS_DS1337 is not set
818# CONFIG_SENSORS_DS1374 is not set 766# CONFIG_SENSORS_DS1374 is not set
767# CONFIG_DS1682 is not set
819CONFIG_SENSORS_AD5252=m 768CONFIG_SENSORS_AD5252=m
820# CONFIG_SENSORS_EEPROM is not set 769# CONFIG_SENSORS_EEPROM is not set
821# CONFIG_SENSORS_PCF8574 is not set 770# CONFIG_SENSORS_PCF8574 is not set
822# CONFIG_SENSORS_PCF8575 is not set 771# CONFIG_SENSORS_PCF8575 is not set
823# CONFIG_SENSORS_PCA9543 is not set
824# CONFIG_SENSORS_PCA9539 is not set 772# CONFIG_SENSORS_PCA9539 is not set
825# CONFIG_SENSORS_PCF8591 is not set 773# CONFIG_SENSORS_PCF8591 is not set
826# CONFIG_SENSORS_MAX6875 is not set 774# CONFIG_SENSORS_MAX6875 is not set
775# CONFIG_SENSORS_TSL2550 is not set
827# CONFIG_I2C_DEBUG_CORE is not set 776# CONFIG_I2C_DEBUG_CORE is not set
828# CONFIG_I2C_DEBUG_ALGO is not set 777# CONFIG_I2C_DEBUG_ALGO is not set
829# CONFIG_I2C_DEBUG_BUS is not set 778# CONFIG_I2C_DEBUG_BUS is not set
@@ -846,14 +795,11 @@ CONFIG_SPI_BFIN=y
846# 795#
847# CONFIG_SPI_AT25 is not set 796# CONFIG_SPI_AT25 is not set
848# CONFIG_SPI_SPIDEV is not set 797# CONFIG_SPI_SPIDEV is not set
849 798# CONFIG_SPI_TLE62X0 is not set
850#
851# Dallas's 1-wire bus
852#
853# CONFIG_W1 is not set 799# CONFIG_W1 is not set
800# CONFIG_POWER_SUPPLY is not set
854CONFIG_HWMON=y 801CONFIG_HWMON=y
855# CONFIG_HWMON_VID is not set 802# CONFIG_HWMON_VID is not set
856# CONFIG_SENSORS_ABITUGURU is not set
857# CONFIG_SENSORS_AD7418 is not set 803# CONFIG_SENSORS_AD7418 is not set
858# CONFIG_SENSORS_ADM1021 is not set 804# CONFIG_SENSORS_ADM1021 is not set
859# CONFIG_SENSORS_ADM1025 is not set 805# CONFIG_SENSORS_ADM1025 is not set
@@ -861,12 +807,12 @@ CONFIG_HWMON=y
861# CONFIG_SENSORS_ADM1029 is not set 807# CONFIG_SENSORS_ADM1029 is not set
862# CONFIG_SENSORS_ADM1031 is not set 808# CONFIG_SENSORS_ADM1031 is not set
863# CONFIG_SENSORS_ADM9240 is not set 809# CONFIG_SENSORS_ADM9240 is not set
864# CONFIG_SENSORS_ASB100 is not set 810# CONFIG_SENSORS_ADT7470 is not set
865# CONFIG_SENSORS_ATXP1 is not set 811# CONFIG_SENSORS_ATXP1 is not set
866# CONFIG_SENSORS_DS1621 is not set 812# CONFIG_SENSORS_DS1621 is not set
867# CONFIG_SENSORS_F71805F is not set 813# CONFIG_SENSORS_F71805F is not set
868# CONFIG_SENSORS_FSCHER is not set 814# CONFIG_SENSORS_F71882FG is not set
869# CONFIG_SENSORS_FSCPOS is not set 815# CONFIG_SENSORS_F75375S is not set
870# CONFIG_SENSORS_GL518SM is not set 816# CONFIG_SENSORS_GL518SM is not set
871# CONFIG_SENSORS_GL520SM is not set 817# CONFIG_SENSORS_GL520SM is not set
872# CONFIG_SENSORS_IT87 is not set 818# CONFIG_SENSORS_IT87 is not set
@@ -881,13 +827,16 @@ CONFIG_HWMON=y
881# CONFIG_SENSORS_LM87 is not set 827# CONFIG_SENSORS_LM87 is not set
882# CONFIG_SENSORS_LM90 is not set 828# CONFIG_SENSORS_LM90 is not set
883# CONFIG_SENSORS_LM92 is not set 829# CONFIG_SENSORS_LM92 is not set
830# CONFIG_SENSORS_LM93 is not set
884# CONFIG_SENSORS_MAX1619 is not set 831# CONFIG_SENSORS_MAX1619 is not set
885# CONFIG_SENSORS_MAX6650 is not set 832# CONFIG_SENSORS_MAX6650 is not set
886# CONFIG_SENSORS_PC87360 is not set 833# CONFIG_SENSORS_PC87360 is not set
887# CONFIG_SENSORS_PC87427 is not set 834# CONFIG_SENSORS_PC87427 is not set
835# CONFIG_SENSORS_DME1737 is not set
888# CONFIG_SENSORS_SMSC47M1 is not set 836# CONFIG_SENSORS_SMSC47M1 is not set
889# CONFIG_SENSORS_SMSC47M192 is not set 837# CONFIG_SENSORS_SMSC47M192 is not set
890# CONFIG_SENSORS_SMSC47B397 is not set 838# CONFIG_SENSORS_SMSC47B397 is not set
839# CONFIG_SENSORS_THMC50 is not set
891# CONFIG_SENSORS_VT1211 is not set 840# CONFIG_SENSORS_VT1211 is not set
892# CONFIG_SENSORS_W83781D is not set 841# CONFIG_SENSORS_W83781D is not set
893# CONFIG_SENSORS_W83791D is not set 842# CONFIG_SENSORS_W83791D is not set
@@ -897,6 +846,20 @@ CONFIG_HWMON=y
897# CONFIG_SENSORS_W83627HF is not set 846# CONFIG_SENSORS_W83627HF is not set
898# CONFIG_SENSORS_W83627EHF is not set 847# CONFIG_SENSORS_W83627EHF is not set
899# CONFIG_HWMON_DEBUG_CHIP is not set 848# CONFIG_HWMON_DEBUG_CHIP is not set
849CONFIG_WATCHDOG=y
850# CONFIG_WATCHDOG_NOWAYOUT is not set
851
852#
853# Watchdog Device Drivers
854#
855# CONFIG_SOFT_WATCHDOG is not set
856CONFIG_BFIN_WDT=y
857
858#
859# Sonics Silicon Backplane
860#
861CONFIG_SSB_POSSIBLE=y
862# CONFIG_SSB is not set
900 863
901# 864#
902# Multifunction device drivers 865# Multifunction device drivers
@@ -913,21 +876,15 @@ CONFIG_DAB=y
913# 876#
914# Graphics support 877# Graphics support
915# 878#
916CONFIG_BACKLIGHT_LCD_SUPPORT=y
917CONFIG_BACKLIGHT_CLASS_DEVICE=m
918CONFIG_LCD_CLASS_DEVICE=m
919
920#
921# Display device support
922#
923# CONFIG_DISPLAY_SUPPORT is not set
924# CONFIG_VGASTATE is not set 879# CONFIG_VGASTATE is not set
880# CONFIG_VIDEO_OUTPUT_CONTROL is not set
925CONFIG_FB=m 881CONFIG_FB=m
926CONFIG_FIRMWARE_EDID=y 882CONFIG_FIRMWARE_EDID=y
927# CONFIG_FB_DDC is not set 883# CONFIG_FB_DDC is not set
928CONFIG_FB_CFB_FILLRECT=m 884CONFIG_FB_CFB_FILLRECT=m
929CONFIG_FB_CFB_COPYAREA=m 885CONFIG_FB_CFB_COPYAREA=m
930CONFIG_FB_CFB_IMAGEBLIT=m 886CONFIG_FB_CFB_IMAGEBLIT=m
887# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
931# CONFIG_FB_SYS_FILLRECT is not set 888# CONFIG_FB_SYS_FILLRECT is not set
932# CONFIG_FB_SYS_COPYAREA is not set 889# CONFIG_FB_SYS_COPYAREA is not set
933# CONFIG_FB_SYS_IMAGEBLIT is not set 890# CONFIG_FB_SYS_IMAGEBLIT is not set
@@ -942,7 +899,8 @@ CONFIG_FB_DEFERRED_IO=y
942# 899#
943# Frame buffer hardware drivers 900# Frame buffer hardware drivers
944# 901#
945CONFIG_FB_BFIN_7171=m 902# CONFIG_FB_HITACHI_TX09 is not set
903# CONFIG_FB_BFIN_T350MCQB is not set
946CONFIG_FB_BFIN_7393=m 904CONFIG_FB_BFIN_7393=m
947CONFIG_NTSC=y 905CONFIG_NTSC=y
948# CONFIG_PAL is not set 906# CONFIG_PAL is not set
@@ -956,10 +914,18 @@ CONFIG_FB_BF537_LQ035=m
956CONFIG_LQ035_SLAVE_ADDR=0x58 914CONFIG_LQ035_SLAVE_ADDR=0x58
957# CONFIG_FB_BFIN_LANDSCAPE is not set 915# CONFIG_FB_BFIN_LANDSCAPE is not set
958# CONFIG_FB_BFIN_BGR is not set 916# CONFIG_FB_BFIN_BGR is not set
959# CONFIG_FB_BFIN_T350MCQB is not set
960# CONFIG_FB_HITACHI_TX09 is not set
961# CONFIG_FB_S1D13XXX is not set 917# CONFIG_FB_S1D13XXX is not set
962# CONFIG_FB_VIRTUAL is not set 918# CONFIG_FB_VIRTUAL is not set
919CONFIG_BACKLIGHT_LCD_SUPPORT=y
920CONFIG_LCD_CLASS_DEVICE=m
921# CONFIG_LCD_LTV350QV is not set
922CONFIG_BACKLIGHT_CLASS_DEVICE=m
923CONFIG_BACKLIGHT_CORGI=m
924
925#
926# Display device support
927#
928# CONFIG_DISPLAY_SUPPORT is not set
963# CONFIG_LOGO is not set 929# CONFIG_LOGO is not set
964 930
965# 931#
@@ -993,6 +959,10 @@ CONFIG_SND_VERBOSE_PROCFS=y
993# CONFIG_SND_MPU401 is not set 959# CONFIG_SND_MPU401 is not set
994 960
995# 961#
962# SPI devices
963#
964
965#
996# ALSA Blackfin devices 966# ALSA Blackfin devices
997# 967#
998CONFIG_SND_BLACKFIN_AD1836=m 968CONFIG_SND_BLACKFIN_AD1836=m
@@ -1005,6 +975,10 @@ CONFIG_SND_BLACKFIN_SPI_PFBIT=4
1005CONFIG_SND_BFIN_AD73311=m 975CONFIG_SND_BFIN_AD73311=m
1006CONFIG_SND_BFIN_SPORT=0 976CONFIG_SND_BFIN_SPORT=0
1007CONFIG_SND_BFIN_AD73311_SE=4 977CONFIG_SND_BFIN_AD73311_SE=4
978CONFIG_SND_BFIN_AD73322=m
979CONFIG_SND_BFIN_AD73322_SPORT0_SE=10
980CONFIG_SND_BFIN_AD73322_SPORT1_SE=14
981CONFIG_SND_BFIN_AD73322_RESET=12
1008 982
1009# 983#
1010# System on Chip audio support 984# System on Chip audio support
@@ -1016,9 +990,14 @@ CONFIG_SND_MMAP_SUPPORT=y
1016CONFIG_SND_BF5XX_SOC_AC97=m 990CONFIG_SND_BF5XX_SOC_AC97=m
1017# CONFIG_SND_BF5XX_SOC_WM8750 is not set 991# CONFIG_SND_BF5XX_SOC_WM8750 is not set
1018# CONFIG_SND_BF5XX_SOC_WM8731 is not set 992# CONFIG_SND_BF5XX_SOC_WM8731 is not set
993# CONFIG_SND_BF5XX_SOC_SSM2602 is not set
1019CONFIG_SND_BF5XX_SOC_BF5xx=m 994CONFIG_SND_BF5XX_SOC_BF5xx=m
1020CONFIG_SND_BF5XX_SPORT_NUM=0 995CONFIG_SND_BF5XX_SPORT_NUM=0
1021# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set 996# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
997
998#
999# SoC Audio support for SuperH
1000#
1022CONFIG_SND_SOC_AD1980=m 1001CONFIG_SND_SOC_AD1980=m
1023 1002
1024# 1003#
@@ -1026,59 +1005,18 @@ CONFIG_SND_SOC_AD1980=m
1026# 1005#
1027# CONFIG_SOUND_PRIME is not set 1006# CONFIG_SOUND_PRIME is not set
1028CONFIG_AC97_BUS=m 1007CONFIG_AC97_BUS=m
1029 1008CONFIG_HID_SUPPORT=y
1030#
1031# HID Devices
1032#
1033CONFIG_HID=y 1009CONFIG_HID=y
1034# CONFIG_HID_DEBUG is not set 1010# CONFIG_HID_DEBUG is not set
1035 1011# CONFIG_HIDRAW is not set
1036# 1012# CONFIG_USB_SUPPORT is not set
1037# USB support 1013# CONFIG_NO_DUMMY_DELAY is not set
1038# 1014# CONFIG_DUMMY_DELAY_BANK0 is not set
1039CONFIG_USB_ARCH_HAS_HCD=y 1015# CONFIG_DUMMY_DELAY_BANK1 is not set
1040# CONFIG_USB_ARCH_HAS_OHCI is not set 1016# CONFIG_DUMMY_DELAY_BANK2 is not set
1041# CONFIG_USB_ARCH_HAS_EHCI is not set 1017# CONFIG_DUMMY_DELAY_BANK3 is not set
1042# CONFIG_USB is not set
1043
1044#
1045# Enable Host or Gadget support to see Inventra options
1046#
1047
1048#
1049# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1050#
1051
1052#
1053# USB Gadget Support
1054#
1055# CONFIG_USB_GADGET is not set
1056# CONFIG_MMC is not set 1018# CONFIG_MMC is not set
1057
1058#
1059# LED devices
1060#
1061# CONFIG_NEW_LEDS is not set 1019# CONFIG_NEW_LEDS is not set
1062
1063#
1064# LED drivers
1065#
1066
1067#
1068# LED Triggers
1069#
1070
1071#
1072# InfiniBand support
1073#
1074
1075#
1076# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1077#
1078
1079#
1080# Real Time Clock
1081#
1082CONFIG_RTC_LIB=y 1020CONFIG_RTC_LIB=y
1083CONFIG_RTC_CLASS=y 1021CONFIG_RTC_CLASS=y
1084CONFIG_RTC_HCTOSYS=y 1022CONFIG_RTC_HCTOSYS=y
@@ -1098,6 +1036,7 @@ CONFIG_RTC_INTF_DEV=y
1098# I2C RTC drivers 1036# I2C RTC drivers
1099# 1037#
1100# CONFIG_RTC_DRV_DS1307 is not set 1038# CONFIG_RTC_DRV_DS1307 is not set
1039# CONFIG_RTC_DRV_DS1374 is not set
1101# CONFIG_RTC_DRV_DS1672 is not set 1040# CONFIG_RTC_DRV_DS1672 is not set
1102# CONFIG_RTC_DRV_MAX6900 is not set 1041# CONFIG_RTC_DRV_MAX6900 is not set
1103# CONFIG_RTC_DRV_RS5C372 is not set 1042# CONFIG_RTC_DRV_RS5C372 is not set
@@ -1105,6 +1044,7 @@ CONFIG_RTC_INTF_DEV=y
1105# CONFIG_RTC_DRV_X1205 is not set 1044# CONFIG_RTC_DRV_X1205 is not set
1106# CONFIG_RTC_DRV_PCF8563 is not set 1045# CONFIG_RTC_DRV_PCF8563 is not set
1107# CONFIG_RTC_DRV_PCF8583 is not set 1046# CONFIG_RTC_DRV_PCF8583 is not set
1047# CONFIG_RTC_DRV_M41T80 is not set
1108 1048
1109# 1049#
1110# SPI RTC drivers 1050# SPI RTC drivers
@@ -1116,8 +1056,10 @@ CONFIG_RTC_INTF_DEV=y
1116# Platform RTC drivers 1056# Platform RTC drivers
1117# 1057#
1118# CONFIG_RTC_DRV_DS1553 is not set 1058# CONFIG_RTC_DRV_DS1553 is not set
1059# CONFIG_RTC_DRV_STK17TA8 is not set
1119# CONFIG_RTC_DRV_DS1742 is not set 1060# CONFIG_RTC_DRV_DS1742 is not set
1120# CONFIG_RTC_DRV_M48T86 is not set 1061# CONFIG_RTC_DRV_M48T86 is not set
1062# CONFIG_RTC_DRV_M48T59 is not set
1121# CONFIG_RTC_DRV_V3020 is not set 1063# CONFIG_RTC_DRV_V3020 is not set
1122 1064
1123# 1065#
@@ -1126,22 +1068,9 @@ CONFIG_RTC_INTF_DEV=y
1126CONFIG_RTC_DRV_BFIN=y 1068CONFIG_RTC_DRV_BFIN=y
1127 1069
1128# 1070#
1129# DMA Engine support 1071# Userspace I/O
1130# 1072#
1131# CONFIG_DMA_ENGINE is not set 1073# CONFIG_UIO is not set
1132
1133#
1134# DMA Clients
1135#
1136
1137#
1138# DMA Devices
1139#
1140
1141#
1142# PBX support
1143#
1144# CONFIG_PBX is not set
1145 1074
1146# 1075#
1147# File systems 1076# File systems
@@ -1186,7 +1115,6 @@ CONFIG_PROC_SYSCTL=y
1186CONFIG_SYSFS=y 1115CONFIG_SYSFS=y
1187# CONFIG_TMPFS is not set 1116# CONFIG_TMPFS is not set
1188# CONFIG_HUGETLB_PAGE is not set 1117# CONFIG_HUGETLB_PAGE is not set
1189CONFIG_RAMFS=y
1190# CONFIG_CONFIGFS_FS is not set 1118# CONFIG_CONFIGFS_FS is not set
1191 1119
1192# 1120#
@@ -1212,10 +1140,12 @@ CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1212CONFIG_JFFS2_FS=m 1140CONFIG_JFFS2_FS=m
1213CONFIG_JFFS2_FS_DEBUG=0 1141CONFIG_JFFS2_FS_DEBUG=0
1214CONFIG_JFFS2_FS_WRITEBUFFER=y 1142CONFIG_JFFS2_FS_WRITEBUFFER=y
1143# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1215# CONFIG_JFFS2_SUMMARY is not set 1144# CONFIG_JFFS2_SUMMARY is not set
1216# CONFIG_JFFS2_FS_XATTR is not set 1145# CONFIG_JFFS2_FS_XATTR is not set
1217# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1146# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1218CONFIG_JFFS2_ZLIB=y 1147CONFIG_JFFS2_ZLIB=y
1148# CONFIG_JFFS2_LZO is not set
1219CONFIG_JFFS2_RTIME=y 1149CONFIG_JFFS2_RTIME=y
1220# CONFIG_JFFS2_RUBIN is not set 1150# CONFIG_JFFS2_RUBIN is not set
1221# CONFIG_CRAMFS is not set 1151# CONFIG_CRAMFS is not set
@@ -1224,10 +1154,7 @@ CONFIG_JFFS2_RTIME=y
1224# CONFIG_QNX4FS_FS is not set 1154# CONFIG_QNX4FS_FS is not set
1225# CONFIG_SYSV_FS is not set 1155# CONFIG_SYSV_FS is not set
1226# CONFIG_UFS_FS is not set 1156# CONFIG_UFS_FS is not set
1227 1157CONFIG_NETWORK_FILESYSTEMS=y
1228#
1229# Network File Systems
1230#
1231CONFIG_NFS_FS=m 1158CONFIG_NFS_FS=m
1232CONFIG_NFS_V3=y 1159CONFIG_NFS_V3=y
1233# CONFIG_NFS_V3_ACL is not set 1160# CONFIG_NFS_V3_ACL is not set
@@ -1247,17 +1174,12 @@ CONFIG_SMB_FS=m
1247# CONFIG_NCP_FS is not set 1174# CONFIG_NCP_FS is not set
1248# CONFIG_CODA_FS is not set 1175# CONFIG_CODA_FS is not set
1249# CONFIG_AFS_FS is not set 1176# CONFIG_AFS_FS is not set
1250# CONFIG_9P_FS is not set
1251 1177
1252# 1178#
1253# Partition Types 1179# Partition Types
1254# 1180#
1255# CONFIG_PARTITION_ADVANCED is not set 1181# CONFIG_PARTITION_ADVANCED is not set
1256CONFIG_MSDOS_PARTITION=y 1182CONFIG_MSDOS_PARTITION=y
1257
1258#
1259# Native Language Support
1260#
1261CONFIG_NLS=m 1183CONFIG_NLS=m
1262CONFIG_NLS_DEFAULT="iso8859-1" 1184CONFIG_NLS_DEFAULT="iso8859-1"
1263# CONFIG_NLS_CODEPAGE_437 is not set 1185# CONFIG_NLS_CODEPAGE_437 is not set
@@ -1298,21 +1220,16 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1298# CONFIG_NLS_KOI8_R is not set 1220# CONFIG_NLS_KOI8_R is not set
1299# CONFIG_NLS_KOI8_U is not set 1221# CONFIG_NLS_KOI8_U is not set
1300# CONFIG_NLS_UTF8 is not set 1222# CONFIG_NLS_UTF8 is not set
1301
1302#
1303# Distributed Lock Manager
1304#
1305# CONFIG_DLM is not set 1223# CONFIG_DLM is not set
1306 1224CONFIG_INSTRUMENTATION=y
1307#
1308# Profiling support
1309#
1310# CONFIG_PROFILING is not set 1225# CONFIG_PROFILING is not set
1226# CONFIG_MARKERS is not set
1311 1227
1312# 1228#
1313# Kernel hacking 1229# Kernel hacking
1314# 1230#
1315# CONFIG_PRINTK_TIME is not set 1231# CONFIG_PRINTK_TIME is not set
1232CONFIG_ENABLE_WARN_DEPRECATED=y
1316CONFIG_ENABLE_MUST_CHECK=y 1233CONFIG_ENABLE_MUST_CHECK=y
1317# CONFIG_MAGIC_SYSRQ is not set 1234# CONFIG_MAGIC_SYSRQ is not set
1318# CONFIG_UNUSED_SYMBOLS is not set 1235# CONFIG_UNUSED_SYMBOLS is not set
@@ -1320,6 +1237,7 @@ CONFIG_DEBUG_FS=y
1320# CONFIG_HEADERS_CHECK is not set 1237# CONFIG_HEADERS_CHECK is not set
1321# CONFIG_DEBUG_KERNEL is not set 1238# CONFIG_DEBUG_KERNEL is not set
1322# CONFIG_DEBUG_BUGVERBOSE is not set 1239# CONFIG_DEBUG_BUGVERBOSE is not set
1240# CONFIG_SAMPLES is not set
1323CONFIG_DEBUG_MMRS=y 1241CONFIG_DEBUG_MMRS=y
1324CONFIG_DEBUG_HUNT_FOR_ZERO=y 1242CONFIG_DEBUG_HUNT_FOR_ZERO=y
1325CONFIG_DEBUG_BFIN_HWTRACE_ON=y 1243CONFIG_DEBUG_BFIN_HWTRACE_ON=y
@@ -1339,11 +1257,7 @@ CONFIG_ACCESS_CHECK=y
1339# CONFIG_KEYS is not set 1257# CONFIG_KEYS is not set
1340CONFIG_SECURITY=y 1258CONFIG_SECURITY=y
1341# CONFIG_SECURITY_NETWORK is not set 1259# CONFIG_SECURITY_NETWORK is not set
1342CONFIG_SECURITY_CAPABILITIES=m 1260# CONFIG_SECURITY_CAPABILITIES is not set
1343
1344#
1345# Cryptographic options
1346#
1347# CONFIG_CRYPTO is not set 1261# CONFIG_CRYPTO is not set
1348 1262
1349# 1263#
@@ -1354,6 +1268,7 @@ CONFIG_CRC_CCITT=m
1354# CONFIG_CRC16 is not set 1268# CONFIG_CRC16 is not set
1355# CONFIG_CRC_ITU_T is not set 1269# CONFIG_CRC_ITU_T is not set
1356CONFIG_CRC32=y 1270CONFIG_CRC32=y
1271# CONFIG_CRC7 is not set
1357# CONFIG_LIBCRC32C is not set 1272# CONFIG_LIBCRC32C is not set
1358CONFIG_ZLIB_INFLATE=y 1273CONFIG_ZLIB_INFLATE=y
1359CONFIG_ZLIB_DEFLATE=m 1274CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index 1ff2ff4b49aa..390669e8668e 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -365,7 +365,7 @@ CONFIG_C_AMBEN_ALL=y
365CONFIG_BANK_0=0x7BB0 365CONFIG_BANK_0=0x7BB0
366CONFIG_BANK_1=0x5554 366CONFIG_BANK_1=0x5554
367CONFIG_BANK_2=0x7BB0 367CONFIG_BANK_2=0x7BB0
368CONFIG_BANK_3=0x99B3 368CONFIG_BANK_3=0x99B2
369CONFIG_EBIU_MBSCTLVAL=0x0 369CONFIG_EBIU_MBSCTLVAL=0x0
370CONFIG_EBIU_MODEVAL=0x1 370CONFIG_EBIU_MODEVAL=0x1
371CONFIG_EBIU_FCTLVAL=0x6 371CONFIG_EBIU_FCTLVAL=0x6
@@ -468,7 +468,60 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
468# 468#
469# CONFIG_NET_PKTGEN is not set 469# CONFIG_NET_PKTGEN is not set
470# CONFIG_HAMRADIO is not set 470# CONFIG_HAMRADIO is not set
471# CONFIG_IRDA is not set 471CONFIG_IRDA=m
472
473#
474# IrDA protocols
475#
476CONFIG_IRLAN=m
477CONFIG_IRCOMM=m
478# CONFIG_IRDA_ULTRA is not set
479
480#
481# IrDA options
482#
483# CONFIG_IRDA_CACHE_LAST_LSAP is not set
484# CONFIG_IRDA_FAST_RR is not set
485# CONFIG_IRDA_DEBUG is not set
486
487#
488# Infrared-port device drivers
489#
490
491#
492# SIR device drivers
493#
494CONFIG_IRTTY_SIR=m
495CONFIG_BFIN_SIR=m
496# CONFIG_BFIN_SIR0 is not set
497# CONFIG_BFIN_SIR2 is not set
498CONFIG_BFIN_SIR3=y
499CONFIG_SIR_BFIN_DMA=y
500# CONFIG_SIR_BFIN_PIO is not set
501
502#
503# Dongle support
504#
505# CONFIG_DONGLE is not set
506# CONFIG_KINGSUN_DONGLE is not set
507# CONFIG_KSDAZZLE_DONGLE is not set
508# CONFIG_KS959_DONGLE is not set
509
510#
511# Old SIR device drivers
512#
513# CONFIG_IRPORT_SIR is not set
514
515#
516# Old Serial dongle support
517#
518
519#
520# FIR device drivers
521#
522# CONFIG_USB_IRDA is not set
523# CONFIG_SIGMATEL_FIR is not set
524# CONFIG_MCS_FIR is not set
472# CONFIG_BT is not set 525# CONFIG_BT is not set
473# CONFIG_AF_RXRPC is not set 526# CONFIG_AF_RXRPC is not set
474 527
@@ -575,6 +628,7 @@ CONFIG_MTD_NAND=y
575CONFIG_MTD_NAND_IDS=y 628CONFIG_MTD_NAND_IDS=y
576CONFIG_MTD_NAND_BF5XX=y 629CONFIG_MTD_NAND_BF5XX=y
577CONFIG_MTD_NAND_BF5XX_HWECC=y 630CONFIG_MTD_NAND_BF5XX_HWECC=y
631# CONFIG_MTD_NAND_BF5XX_BOOTROM_ECC is not set
578# CONFIG_MTD_NAND_DISKONCHIP is not set 632# CONFIG_MTD_NAND_DISKONCHIP is not set
579# CONFIG_MTD_NAND_NANDSIM is not set 633# CONFIG_MTD_NAND_NANDSIM is not set
580# CONFIG_MTD_NAND_PLATFORM is not set 634# CONFIG_MTD_NAND_PLATFORM is not set
@@ -766,7 +820,7 @@ CONFIG_BFIN_OTP=y
766# CONFIG_BFIN_SPORT is not set 820# CONFIG_BFIN_SPORT is not set
767# CONFIG_BFIN_TIMER_LATENCY is not set 821# CONFIG_BFIN_TIMER_LATENCY is not set
768# CONFIG_TWI_LCD is not set 822# CONFIG_TWI_LCD is not set
769# CONFIG_SIMPLE_GPIO is not set 823CONFIG_SIMPLE_GPIO=m
770CONFIG_VT=y 824CONFIG_VT=y
771CONFIG_VT_CONSOLE=y 825CONFIG_VT_CONSOLE=y
772CONFIG_HW_CONSOLE=y 826CONFIG_HW_CONSOLE=y
@@ -1071,6 +1125,7 @@ CONFIG_SND_BF5XX_SOC_AC97=y
1071CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y 1125CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y
1072# CONFIG_SND_BF5XX_SOC_WM8750 is not set 1126# CONFIG_SND_BF5XX_SOC_WM8750 is not set
1073# CONFIG_SND_BF5XX_SOC_WM8731 is not set 1127# CONFIG_SND_BF5XX_SOC_WM8731 is not set
1128# CONFIG_SND_BF5XX_SOC_SSM2602 is not set
1074CONFIG_SND_BF5XX_SPORT_NUM=0 1129CONFIG_SND_BF5XX_SPORT_NUM=0
1075CONFIG_SND_BF5XX_HAVE_COLD_RESET=y 1130CONFIG_SND_BF5XX_HAVE_COLD_RESET=y
1076CONFIG_SND_BF5XX_RESET_GPIO_NUM=19 1131CONFIG_SND_BF5XX_RESET_GPIO_NUM=19
@@ -1133,7 +1188,7 @@ CONFIG_USB_MUSB_HOST=y
1133# CONFIG_USB_MUSB_OTG is not set 1188# CONFIG_USB_MUSB_OTG is not set
1134CONFIG_USB_MUSB_HDRC_HCD=y 1189CONFIG_USB_MUSB_HDRC_HCD=y
1135# CONFIG_MUSB_PIO_ONLY is not set 1190# CONFIG_MUSB_PIO_ONLY is not set
1136# CONFIG_USB_INVENTRA_DMA is not set 1191CONFIG_USB_INVENTRA_DMA=y
1137# CONFIG_USB_TI_CPPI_DMA is not set 1192# CONFIG_USB_TI_CPPI_DMA is not set
1138CONFIG_USB_MUSB_LOGLEVEL=0 1193CONFIG_USB_MUSB_LOGLEVEL=0
1139 1194
@@ -1312,7 +1367,7 @@ CONFIG_FS_MBCACHE=y
1312CONFIG_INOTIFY=y 1367CONFIG_INOTIFY=y
1313CONFIG_INOTIFY_USER=y 1368CONFIG_INOTIFY_USER=y
1314# CONFIG_QUOTA is not set 1369# CONFIG_QUOTA is not set
1315CONFIG_DNOTIFY=y 1370# CONFIG_DNOTIFY is not set
1316# CONFIG_AUTOFS_FS is not set 1371# CONFIG_AUTOFS_FS is not set
1317# CONFIG_AUTOFS4_FS is not set 1372# CONFIG_AUTOFS4_FS is not set
1318# CONFIG_FUSE_FS is not set 1373# CONFIG_FUSE_FS is not set
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index b4a20c890816..976a4d7ba175 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.16 3# Linux kernel version: 2.6.24.7
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -13,35 +13,34 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14 17CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y 18CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21 20
22# 21#
23# Code maturity level options 22# General setup
24# 23#
25CONFIG_EXPERIMENTAL=y 24CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y 25CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32 26CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION="" 27CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y 28CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
37# CONFIG_POSIX_MQUEUE is not set 31# CONFIG_POSIX_MQUEUE is not set
38# CONFIG_BSD_PROCESS_ACCT is not set 32# CONFIG_BSD_PROCESS_ACCT is not set
39# CONFIG_TASKSTATS is not set 33# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 34# CONFIG_USER_NS is not set
35# CONFIG_PID_NS is not set
41# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
42CONFIG_IKCONFIG=y 37CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y 38CONFIG_IKCONFIG_PROC=y
44CONFIG_LOG_BUF_SHIFT=14 39CONFIG_LOG_BUF_SHIFT=14
40# CONFIG_CGROUPS is not set
41CONFIG_FAIR_GROUP_SCHED=y
42CONFIG_FAIR_USER_SCHED=y
43# CONFIG_FAIR_CGROUP_SCHED is not set
45CONFIG_SYSFS_DEPRECATED=y 44CONFIG_SYSFS_DEPRECATED=y
46# CONFIG_RELAY is not set 45# CONFIG_RELAY is not set
47CONFIG_BLK_DEV_INITRD=y 46CONFIG_BLK_DEV_INITRD=y
@@ -64,32 +63,24 @@ CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 63CONFIG_SIGNALFD=y
65CONFIG_EVENTFD=y 64CONFIG_EVENTFD=y
66CONFIG_VM_EVENT_COUNTERS=y 65CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
68# CONFIG_NP2 is not set
69CONFIG_SLAB=y 66CONFIG_SLAB=y
70# CONFIG_SLUB is not set 67# CONFIG_SLUB is not set
71# CONFIG_SLOB is not set 68# CONFIG_SLOB is not set
69CONFIG_SLABINFO=y
72CONFIG_RT_MUTEXES=y 70CONFIG_RT_MUTEXES=y
73CONFIG_TINY_SHMEM=y 71CONFIG_TINY_SHMEM=y
74CONFIG_BASE_SMALL=0 72CONFIG_BASE_SMALL=0
75
76#
77# Loadable module support
78#
79CONFIG_MODULES=y 73CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y 74CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 75# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 76# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 77# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y 78CONFIG_KMOD=y
85
86#
87# Block layer
88#
89CONFIG_BLOCK=y 79CONFIG_BLOCK=y
90# CONFIG_LBD is not set 80# CONFIG_LBD is not set
91# CONFIG_BLK_DEV_IO_TRACE is not set 81# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_LSF is not set 82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set
93 84
94# 85#
95# IO Schedulers 86# IO Schedulers
@@ -140,7 +131,6 @@ CONFIG_BF_REV_0_3=y
140# CONFIG_BF_REV_0_5 is not set 131# CONFIG_BF_REV_0_5 is not set
141# CONFIG_BF_REV_ANY is not set 132# CONFIG_BF_REV_ANY is not set
142# CONFIG_BF_REV_NONE is not set 133# CONFIG_BF_REV_NONE is not set
143CONFIG_BFIN_DUAL_CORE=y
144CONFIG_MEM_MT48LC16M16A2TG_75=y 134CONFIG_MEM_MT48LC16M16A2TG_75=y
145CONFIG_IRQ_PLL_WAKEUP=7 135CONFIG_IRQ_PLL_WAKEUP=7
146CONFIG_IRQ_SPORT0_ERROR=7 136CONFIG_IRQ_SPORT0_ERROR=7
@@ -233,12 +223,14 @@ CONFIG_IRQ_WDTIMER=13
233# Board customizations 223# Board customizations
234# 224#
235# CONFIG_CMDLINE_BOOL is not set 225# CONFIG_CMDLINE_BOOL is not set
226CONFIG_BOOT_LOAD=0x1000
236 227
237# 228#
238# Clock/PLL Setup 229# Clock/PLL Setup
239# 230#
240CONFIG_CLKIN_HZ=30000000 231CONFIG_CLKIN_HZ=30000000
241# CONFIG_BFIN_KERNEL_CLOCK is not set 232# CONFIG_BFIN_KERNEL_CLOCK is not set
233CONFIG_MAX_MEM_SIZE=512
242CONFIG_MAX_VCO_HZ=600000000 234CONFIG_MAX_VCO_HZ=600000000
243CONFIG_MIN_VCO_HZ=50000000 235CONFIG_MIN_VCO_HZ=50000000
244CONFIG_MAX_SCLK_HZ=133333333 236CONFIG_MAX_SCLK_HZ=133333333
@@ -252,13 +244,17 @@ CONFIG_HZ_250=y
252# CONFIG_HZ_300 is not set 244# CONFIG_HZ_300 is not set
253# CONFIG_HZ_1000 is not set 245# CONFIG_HZ_1000 is not set
254CONFIG_HZ=250 246CONFIG_HZ=250
247CONFIG_GENERIC_TIME=y
248CONFIG_GENERIC_CLOCKEVENTS=y
249# CONFIG_CYCLES_CLOCKSOURCE is not set
250CONFIG_TICK_ONESHOT=y
251# CONFIG_NO_HZ is not set
252CONFIG_HIGH_RES_TIMERS=y
253CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
255 254
256# 255#
257# Memory Setup 256# Misc
258# 257#
259CONFIG_MAX_MEM_SIZE=512
260CONFIG_MEM_ADD_WIDTH=9
261CONFIG_BOOT_LOAD=0x1000
262CONFIG_BFIN_SCRATCH_REG_RETN=y 258CONFIG_BFIN_SCRATCH_REG_RETN=y
263# CONFIG_BFIN_SCRATCH_REG_RETE is not set 259# CONFIG_BFIN_SCRATCH_REG_RETE is not set
264# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set 260# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
@@ -294,12 +290,14 @@ CONFIG_FLATMEM_MANUAL=y
294CONFIG_FLATMEM=y 290CONFIG_FLATMEM=y
295CONFIG_FLAT_NODE_MEM_MAP=y 291CONFIG_FLAT_NODE_MEM_MAP=y
296# CONFIG_SPARSEMEM_STATIC is not set 292# CONFIG_SPARSEMEM_STATIC is not set
293# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
297CONFIG_SPLIT_PTLOCK_CPUS=4 294CONFIG_SPLIT_PTLOCK_CPUS=4
298# CONFIG_RESOURCES_64BIT is not set 295# CONFIG_RESOURCES_64BIT is not set
299CONFIG_ZONE_DMA_FLAG=1 296CONFIG_ZONE_DMA_FLAG=1
300CONFIG_LARGE_ALLOCS=y 297CONFIG_VIRT_TO_BUS=y
301# CONFIG_BFIN_GPTIMERS is not set 298# CONFIG_BFIN_GPTIMERS is not set
302CONFIG_BFIN_DMA_5XX=y 299CONFIG_BFIN_DMA_5XX=y
300# CONFIG_DMA_UNCACHED_4M is not set
303# CONFIG_DMA_UNCACHED_2M is not set 301# CONFIG_DMA_UNCACHED_2M is not set
304CONFIG_DMA_UNCACHED_1M=y 302CONFIG_DMA_UNCACHED_1M=y
305# CONFIG_DMA_UNCACHED_NONE is not set 303# CONFIG_DMA_UNCACHED_NONE is not set
@@ -341,17 +339,13 @@ CONFIG_C_AMBEN_ALL=y
341CONFIG_BANK_0=0x7BB0 339CONFIG_BANK_0=0x7BB0
342CONFIG_BANK_1=0x7BB0 340CONFIG_BANK_1=0x7BB0
343CONFIG_BANK_2=0x7BB0 341CONFIG_BANK_2=0x7BB0
344CONFIG_BANK_3=0xAAC3 342CONFIG_BANK_3=0xAAC2
345 343
346# 344#
347# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 345# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
348# 346#
349# CONFIG_PCI is not set 347# CONFIG_PCI is not set
350# CONFIG_ARCH_SUPPORTS_MSI is not set 348# CONFIG_ARCH_SUPPORTS_MSI is not set
351
352#
353# PCCARD (PCMCIA/CardBus) support
354#
355# CONFIG_PCCARD is not set 349# CONFIG_PCCARD is not set
356 350
357# 351#
@@ -367,9 +361,15 @@ CONFIG_BINFMT_ZFLAT=y
367# Power management options 361# Power management options
368# 362#
369# CONFIG_PM is not set 363# CONFIG_PM is not set
364CONFIG_SUSPEND_UP_POSSIBLE=y
370# CONFIG_PM_WAKEUP_BY_GPIO is not set 365# CONFIG_PM_WAKEUP_BY_GPIO is not set
371 366
372# 367#
368# CPU Frequency scaling
369#
370# CONFIG_CPU_FREQ is not set
371
372#
373# Networking 373# Networking
374# 374#
375CONFIG_NET=y 375CONFIG_NET=y
@@ -405,6 +405,7 @@ CONFIG_SYN_COOKIES=y
405CONFIG_INET_XFRM_MODE_TRANSPORT=y 405CONFIG_INET_XFRM_MODE_TRANSPORT=y
406CONFIG_INET_XFRM_MODE_TUNNEL=y 406CONFIG_INET_XFRM_MODE_TUNNEL=y
407CONFIG_INET_XFRM_MODE_BEET=y 407CONFIG_INET_XFRM_MODE_BEET=y
408# CONFIG_INET_LRO is not set
408CONFIG_INET_DIAG=y 409CONFIG_INET_DIAG=y
409CONFIG_INET_TCP_DIAG=y 410CONFIG_INET_TCP_DIAG=y
410# CONFIG_TCP_CONG_ADVANCED is not set 411# CONFIG_TCP_CONG_ADVANCED is not set
@@ -431,10 +432,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
431# CONFIG_LAPB is not set 432# CONFIG_LAPB is not set
432# CONFIG_ECONET is not set 433# CONFIG_ECONET is not set
433# CONFIG_WAN_ROUTER is not set 434# CONFIG_WAN_ROUTER is not set
434
435#
436# QoS and/or fair queueing
437#
438# CONFIG_NET_SCHED is not set 435# CONFIG_NET_SCHED is not set
439 436
440# 437#
@@ -466,6 +463,7 @@ CONFIG_IRDA_CACHE_LAST_LSAP=y
466# SIR device drivers 463# SIR device drivers
467# 464#
468CONFIG_IRTTY_SIR=m 465CONFIG_IRTTY_SIR=m
466# CONFIG_BFIN_SIR is not set
469 467
470# 468#
471# Dongle support 469# Dongle support
@@ -495,6 +493,7 @@ CONFIG_IRTTY_SIR=m
495# CONFIG_MAC80211 is not set 493# CONFIG_MAC80211 is not set
496# CONFIG_IEEE80211 is not set 494# CONFIG_IEEE80211 is not set
497# CONFIG_RFKILL is not set 495# CONFIG_RFKILL is not set
496# CONFIG_NET_9P is not set
498 497
499# 498#
500# Device Drivers 499# Device Drivers
@@ -503,14 +502,11 @@ CONFIG_IRTTY_SIR=m
503# 502#
504# Generic Driver Options 503# Generic Driver Options
505# 504#
505CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
506CONFIG_STANDALONE=y 506CONFIG_STANDALONE=y
507CONFIG_PREVENT_FIRMWARE_BUILD=y 507CONFIG_PREVENT_FIRMWARE_BUILD=y
508# CONFIG_FW_LOADER is not set 508# CONFIG_FW_LOADER is not set
509# CONFIG_SYS_HYPERVISOR is not set 509# CONFIG_SYS_HYPERVISOR is not set
510
511#
512# Connector - unified userspace <-> kernelspace linker
513#
514# CONFIG_CONNECTOR is not set 510# CONFIG_CONNECTOR is not set
515CONFIG_MTD=y 511CONFIG_MTD=y
516# CONFIG_MTD_DEBUG is not set 512# CONFIG_MTD_DEBUG is not set
@@ -530,6 +526,7 @@ CONFIG_MTD_BLOCK=y
530# CONFIG_INFTL is not set 526# CONFIG_INFTL is not set
531# CONFIG_RFD_FTL is not set 527# CONFIG_RFD_FTL is not set
532# CONFIG_SSFDC is not set 528# CONFIG_SSFDC is not set
529# CONFIG_MTD_OOPS is not set
533 530
534# 531#
535# RAM/ROM/Flash chip drivers 532# RAM/ROM/Flash chip drivers
@@ -590,20 +587,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
590# UBI - Unsorted block images 587# UBI - Unsorted block images
591# 588#
592# CONFIG_MTD_UBI is not set 589# CONFIG_MTD_UBI is not set
593
594#
595# Parallel port support
596#
597# CONFIG_PARPORT is not set 590# CONFIG_PARPORT is not set
598 591CONFIG_BLK_DEV=y
599#
600# Plug and Play support
601#
602# CONFIG_PNPACPI is not set
603
604#
605# Block devices
606#
607# CONFIG_BLK_DEV_COW_COMMON is not set 592# CONFIG_BLK_DEV_COW_COMMON is not set
608# CONFIG_BLK_DEV_LOOP is not set 593# CONFIG_BLK_DEV_LOOP is not set
609# CONFIG_BLK_DEV_NBD is not set 594# CONFIG_BLK_DEV_NBD is not set
@@ -613,10 +598,8 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
613CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 598CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
614# CONFIG_CDROM_PKTCDVD is not set 599# CONFIG_CDROM_PKTCDVD is not set
615# CONFIG_ATA_OVER_ETH is not set 600# CONFIG_ATA_OVER_ETH is not set
616 601CONFIG_MISC_DEVICES=y
617# 602# CONFIG_EEPROM_93CX6 is not set
618# Misc devices
619#
620# CONFIG_IDE is not set 603# CONFIG_IDE is not set
621 604
622# 605#
@@ -624,32 +607,29 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
624# 607#
625# CONFIG_RAID_ATTRS is not set 608# CONFIG_RAID_ATTRS is not set
626# CONFIG_SCSI is not set 609# CONFIG_SCSI is not set
610# CONFIG_SCSI_DMA is not set
627# CONFIG_SCSI_NETLINK is not set 611# CONFIG_SCSI_NETLINK is not set
628# CONFIG_ATA is not set 612# CONFIG_ATA is not set
629
630#
631# Multi-device support (RAID and LVM)
632#
633# CONFIG_MD is not set 613# CONFIG_MD is not set
634
635#
636# Network device support
637#
638CONFIG_NETDEVICES=y 614CONFIG_NETDEVICES=y
615# CONFIG_NETDEVICES_MULTIQUEUE is not set
639# CONFIG_DUMMY is not set 616# CONFIG_DUMMY is not set
640# CONFIG_BONDING is not set 617# CONFIG_BONDING is not set
618# CONFIG_MACVLAN is not set
641# CONFIG_EQUALIZER is not set 619# CONFIG_EQUALIZER is not set
642# CONFIG_TUN is not set 620# CONFIG_TUN is not set
621# CONFIG_VETH is not set
643# CONFIG_PHYLIB is not set 622# CONFIG_PHYLIB is not set
644
645#
646# Ethernet (10 or 100Mbit)
647#
648CONFIG_NET_ETHERNET=y 623CONFIG_NET_ETHERNET=y
649CONFIG_MII=y 624CONFIG_MII=y
650CONFIG_SMC91X=y 625CONFIG_SMC91X=y
651# CONFIG_SMSC911X is not set 626# CONFIG_SMSC911X is not set
652# CONFIG_DM9000 is not set 627# CONFIG_DM9000 is not set
628# CONFIG_IBM_NEW_EMAC_ZMII is not set
629# CONFIG_IBM_NEW_EMAC_RGMII is not set
630# CONFIG_IBM_NEW_EMAC_TAH is not set
631# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
632# CONFIG_B44 is not set
653CONFIG_NETDEV_1000=y 633CONFIG_NETDEV_1000=y
654# CONFIG_AX88180 is not set 634# CONFIG_AX88180 is not set
655CONFIG_NETDEV_10000=y 635CONFIG_NETDEV_10000=y
@@ -666,15 +646,7 @@ CONFIG_NETDEV_10000=y
666# CONFIG_NETCONSOLE is not set 646# CONFIG_NETCONSOLE is not set
667# CONFIG_NETPOLL is not set 647# CONFIG_NETPOLL is not set
668# CONFIG_NET_POLL_CONTROLLER is not set 648# CONFIG_NET_POLL_CONTROLLER is not set
669
670#
671# ISDN subsystem
672#
673# CONFIG_ISDN is not set 649# CONFIG_ISDN is not set
674
675#
676# Telephony Support
677#
678# CONFIG_PHONE is not set 650# CONFIG_PHONE is not set
679 651
680# 652#
@@ -689,7 +661,6 @@ CONFIG_INPUT=m
689# 661#
690# CONFIG_INPUT_MOUSEDEV is not set 662# CONFIG_INPUT_MOUSEDEV is not set
691# CONFIG_INPUT_JOYDEV is not set 663# CONFIG_INPUT_JOYDEV is not set
692# CONFIG_INPUT_TSDEV is not set
693CONFIG_INPUT_EVDEV=m 664CONFIG_INPUT_EVDEV=m
694# CONFIG_INPUT_EVBUG is not set 665# CONFIG_INPUT_EVBUG is not set
695 666
@@ -714,13 +685,12 @@ CONFIG_INPUT_EVDEV=m
714# 685#
715# CONFIG_AD9960 is not set 686# CONFIG_AD9960 is not set
716# CONFIG_SPI_ADC_BF533 is not set 687# CONFIG_SPI_ADC_BF533 is not set
717# CONFIG_BF5xx_PFLAGS is not set
718# CONFIG_BF5xx_PPIFCD is not set 688# CONFIG_BF5xx_PPIFCD is not set
719# CONFIG_BFIN_SIMPLE_TIMER is not set 689# CONFIG_BFIN_SIMPLE_TIMER is not set
720# CONFIG_BF5xx_PPI is not set 690# CONFIG_BF5xx_PPI is not set
721# CONFIG_BFIN_SPORT is not set 691# CONFIG_BFIN_SPORT is not set
722# CONFIG_BFIN_TIMER_LATENCY is not set 692# CONFIG_BFIN_TIMER_LATENCY is not set
723# CONFIG_AD5304 is not set 693CONFIG_SIMPLE_GPIO=m
724# CONFIG_VT is not set 694# CONFIG_VT is not set
725# CONFIG_SERIAL_NONSTANDARD is not set 695# CONFIG_SERIAL_NONSTANDARD is not set
726 696
@@ -748,27 +718,11 @@ CONFIG_UNIX98_PTYS=y
748# CAN, the car bus and industrial fieldbus 718# CAN, the car bus and industrial fieldbus
749# 719#
750# CONFIG_CAN4LINUX is not set 720# CONFIG_CAN4LINUX is not set
751
752#
753# IPMI
754#
755# CONFIG_IPMI_HANDLER is not set 721# CONFIG_IPMI_HANDLER is not set
756CONFIG_WATCHDOG=y
757# CONFIG_WATCHDOG_NOWAYOUT is not set
758
759#
760# Watchdog Device Drivers
761#
762# CONFIG_SOFT_WATCHDOG is not set
763CONFIG_BFIN_WDT=y
764CONFIG_HW_RANDOM=y 722CONFIG_HW_RANDOM=y
765# CONFIG_GEN_RTC is not set 723# CONFIG_GEN_RTC is not set
766# CONFIG_R3964 is not set 724# CONFIG_R3964 is not set
767# CONFIG_RAW_DRIVER is not set 725# CONFIG_RAW_DRIVER is not set
768
769#
770# TPM devices
771#
772# CONFIG_TCG_TPM is not set 726# CONFIG_TCG_TPM is not set
773# CONFIG_I2C is not set 727# CONFIG_I2C is not set
774 728
@@ -789,22 +743,37 @@ CONFIG_SPI_BFIN=y
789# 743#
790# CONFIG_SPI_AT25 is not set 744# CONFIG_SPI_AT25 is not set
791# CONFIG_SPI_SPIDEV is not set 745# CONFIG_SPI_SPIDEV is not set
792 746# CONFIG_SPI_TLE62X0 is not set
793#
794# Dallas's 1-wire bus
795#
796# CONFIG_W1 is not set 747# CONFIG_W1 is not set
748# CONFIG_POWER_SUPPLY is not set
797CONFIG_HWMON=y 749CONFIG_HWMON=y
798# CONFIG_HWMON_VID is not set 750# CONFIG_HWMON_VID is not set
799# CONFIG_SENSORS_ABITUGURU is not set
800# CONFIG_SENSORS_F71805F is not set 751# CONFIG_SENSORS_F71805F is not set
752# CONFIG_SENSORS_F71882FG is not set
753# CONFIG_SENSORS_IT87 is not set
801# CONFIG_SENSORS_LM70 is not set 754# CONFIG_SENSORS_LM70 is not set
755# CONFIG_SENSORS_PC87360 is not set
802# CONFIG_SENSORS_PC87427 is not set 756# CONFIG_SENSORS_PC87427 is not set
803# CONFIG_SENSORS_SMSC47M1 is not set 757# CONFIG_SENSORS_SMSC47M1 is not set
804# CONFIG_SENSORS_SMSC47B397 is not set 758# CONFIG_SENSORS_SMSC47B397 is not set
805# CONFIG_SENSORS_VT1211 is not set 759# CONFIG_SENSORS_VT1211 is not set
806# CONFIG_SENSORS_W83627HF is not set 760# CONFIG_SENSORS_W83627HF is not set
761# CONFIG_SENSORS_W83627EHF is not set
807# CONFIG_HWMON_DEBUG_CHIP is not set 762# CONFIG_HWMON_DEBUG_CHIP is not set
763CONFIG_WATCHDOG=y
764# CONFIG_WATCHDOG_NOWAYOUT is not set
765
766#
767# Watchdog Device Drivers
768#
769# CONFIG_SOFT_WATCHDOG is not set
770CONFIG_BFIN_WDT=y
771
772#
773# Sonics Silicon Backplane
774#
775CONFIG_SSB_POSSIBLE=y
776# CONFIG_SSB is not set
808 777
809# 778#
810# Multifunction device drivers 779# Multifunction device drivers
@@ -821,91 +790,33 @@ CONFIG_DAB=y
821# 790#
822# Graphics support 791# Graphics support
823# 792#
793# CONFIG_VGASTATE is not set
794# CONFIG_VIDEO_OUTPUT_CONTROL is not set
795# CONFIG_FB is not set
824# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 796# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
825 797
826# 798#
827# Display device support 799# Display device support
828# 800#
829# CONFIG_DISPLAY_SUPPORT is not set 801# CONFIG_DISPLAY_SUPPORT is not set
830# CONFIG_VGASTATE is not set
831# CONFIG_FB is not set
832 802
833# 803#
834# Sound 804# Sound
835# 805#
836# CONFIG_SOUND is not set 806# CONFIG_SOUND is not set
837 807CONFIG_HID_SUPPORT=y
838#
839# HID Devices
840#
841CONFIG_HID=m 808CONFIG_HID=m
842# CONFIG_HID_DEBUG is not set 809# CONFIG_HID_DEBUG is not set
843 810# CONFIG_HIDRAW is not set
844# 811# CONFIG_USB_SUPPORT is not set
845# USB support
846#
847CONFIG_USB_ARCH_HAS_HCD=y
848# CONFIG_USB_ARCH_HAS_OHCI is not set
849# CONFIG_USB_ARCH_HAS_EHCI is not set
850# CONFIG_USB is not set
851
852#
853# Enable Host or Gadget support to see Inventra options
854#
855
856#
857# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
858#
859
860#
861# USB Gadget Support
862#
863# CONFIG_USB_GADGET is not set
864# CONFIG_MMC is not set 812# CONFIG_MMC is not set
865
866#
867# LED devices
868#
869# CONFIG_NEW_LEDS is not set 813# CONFIG_NEW_LEDS is not set
870
871#
872# LED drivers
873#
874
875#
876# LED Triggers
877#
878
879#
880# InfiniBand support
881#
882
883#
884# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
885#
886
887#
888# Real Time Clock
889#
890# CONFIG_RTC_CLASS is not set 814# CONFIG_RTC_CLASS is not set
891 815
892# 816#
893# DMA Engine support 817# Userspace I/O
894#
895# CONFIG_DMA_ENGINE is not set
896
897#
898# DMA Clients
899#
900
901#
902# DMA Devices
903# 818#
904 819# CONFIG_UIO is not set
905#
906# PBX support
907#
908# CONFIG_PBX is not set
909 820
910# 821#
911# File systems 822# File systems
@@ -950,7 +861,6 @@ CONFIG_PROC_SYSCTL=y
950CONFIG_SYSFS=y 861CONFIG_SYSFS=y
951# CONFIG_TMPFS is not set 862# CONFIG_TMPFS is not set
952# CONFIG_HUGETLB_PAGE is not set 863# CONFIG_HUGETLB_PAGE is not set
953CONFIG_RAMFS=y
954# CONFIG_CONFIGFS_FS is not set 864# CONFIG_CONFIGFS_FS is not set
955 865
956# 866#
@@ -976,10 +886,12 @@ CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
976CONFIG_JFFS2_FS=m 886CONFIG_JFFS2_FS=m
977CONFIG_JFFS2_FS_DEBUG=0 887CONFIG_JFFS2_FS_DEBUG=0
978CONFIG_JFFS2_FS_WRITEBUFFER=y 888CONFIG_JFFS2_FS_WRITEBUFFER=y
889# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
979# CONFIG_JFFS2_SUMMARY is not set 890# CONFIG_JFFS2_SUMMARY is not set
980# CONFIG_JFFS2_FS_XATTR is not set 891# CONFIG_JFFS2_FS_XATTR is not set
981# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 892# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
982CONFIG_JFFS2_ZLIB=y 893CONFIG_JFFS2_ZLIB=y
894# CONFIG_JFFS2_LZO is not set
983CONFIG_JFFS2_RTIME=y 895CONFIG_JFFS2_RTIME=y
984# CONFIG_JFFS2_RUBIN is not set 896# CONFIG_JFFS2_RUBIN is not set
985# CONFIG_CRAMFS is not set 897# CONFIG_CRAMFS is not set
@@ -988,10 +900,7 @@ CONFIG_JFFS2_RTIME=y
988# CONFIG_QNX4FS_FS is not set 900# CONFIG_QNX4FS_FS is not set
989# CONFIG_SYSV_FS is not set 901# CONFIG_SYSV_FS is not set
990# CONFIG_UFS_FS is not set 902# CONFIG_UFS_FS is not set
991 903CONFIG_NETWORK_FILESYSTEMS=y
992#
993# Network File Systems
994#
995CONFIG_NFS_FS=m 904CONFIG_NFS_FS=m
996CONFIG_NFS_V3=y 905CONFIG_NFS_V3=y
997# CONFIG_NFS_V3_ACL is not set 906# CONFIG_NFS_V3_ACL is not set
@@ -1011,17 +920,12 @@ CONFIG_SMB_FS=m
1011# CONFIG_NCP_FS is not set 920# CONFIG_NCP_FS is not set
1012# CONFIG_CODA_FS is not set 921# CONFIG_CODA_FS is not set
1013# CONFIG_AFS_FS is not set 922# CONFIG_AFS_FS is not set
1014# CONFIG_9P_FS is not set
1015 923
1016# 924#
1017# Partition Types 925# Partition Types
1018# 926#
1019# CONFIG_PARTITION_ADVANCED is not set 927# CONFIG_PARTITION_ADVANCED is not set
1020CONFIG_MSDOS_PARTITION=y 928CONFIG_MSDOS_PARTITION=y
1021
1022#
1023# Native Language Support
1024#
1025CONFIG_NLS=m 929CONFIG_NLS=m
1026CONFIG_NLS_DEFAULT="iso8859-1" 930CONFIG_NLS_DEFAULT="iso8859-1"
1027# CONFIG_NLS_CODEPAGE_437 is not set 931# CONFIG_NLS_CODEPAGE_437 is not set
@@ -1062,21 +966,16 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1062# CONFIG_NLS_KOI8_R is not set 966# CONFIG_NLS_KOI8_R is not set
1063# CONFIG_NLS_KOI8_U is not set 967# CONFIG_NLS_KOI8_U is not set
1064# CONFIG_NLS_UTF8 is not set 968# CONFIG_NLS_UTF8 is not set
1065
1066#
1067# Distributed Lock Manager
1068#
1069# CONFIG_DLM is not set 969# CONFIG_DLM is not set
1070 970CONFIG_INSTRUMENTATION=y
1071#
1072# Profiling support
1073#
1074# CONFIG_PROFILING is not set 971# CONFIG_PROFILING is not set
972# CONFIG_MARKERS is not set
1075 973
1076# 974#
1077# Kernel hacking 975# Kernel hacking
1078# 976#
1079# CONFIG_PRINTK_TIME is not set 977# CONFIG_PRINTK_TIME is not set
978CONFIG_ENABLE_WARN_DEPRECATED=y
1080CONFIG_ENABLE_MUST_CHECK=y 979CONFIG_ENABLE_MUST_CHECK=y
1081# CONFIG_MAGIC_SYSRQ is not set 980# CONFIG_MAGIC_SYSRQ is not set
1082# CONFIG_UNUSED_SYMBOLS is not set 981# CONFIG_UNUSED_SYMBOLS is not set
@@ -1084,6 +983,7 @@ CONFIG_DEBUG_FS=y
1084# CONFIG_HEADERS_CHECK is not set 983# CONFIG_HEADERS_CHECK is not set
1085# CONFIG_DEBUG_KERNEL is not set 984# CONFIG_DEBUG_KERNEL is not set
1086# CONFIG_DEBUG_BUGVERBOSE is not set 985# CONFIG_DEBUG_BUGVERBOSE is not set
986# CONFIG_SAMPLES is not set
1087CONFIG_DEBUG_MMRS=y 987CONFIG_DEBUG_MMRS=y
1088CONFIG_DEBUG_HUNT_FOR_ZERO=y 988CONFIG_DEBUG_HUNT_FOR_ZERO=y
1089CONFIG_DEBUG_BFIN_HWTRACE_ON=y 989CONFIG_DEBUG_BFIN_HWTRACE_ON=y
@@ -1104,11 +1004,7 @@ CONFIG_ACCESS_CHECK=y
1104# CONFIG_KEYS is not set 1004# CONFIG_KEYS is not set
1105CONFIG_SECURITY=y 1005CONFIG_SECURITY=y
1106# CONFIG_SECURITY_NETWORK is not set 1006# CONFIG_SECURITY_NETWORK is not set
1107CONFIG_SECURITY_CAPABILITIES=m 1007# CONFIG_SECURITY_CAPABILITIES is not set
1108
1109#
1110# Cryptographic options
1111#
1112# CONFIG_CRYPTO is not set 1008# CONFIG_CRYPTO is not set
1113 1009
1114# 1010#
@@ -1119,6 +1015,7 @@ CONFIG_CRC_CCITT=m
1119# CONFIG_CRC16 is not set 1015# CONFIG_CRC16 is not set
1120# CONFIG_CRC_ITU_T is not set 1016# CONFIG_CRC_ITU_T is not set
1121CONFIG_CRC32=y 1017CONFIG_CRC32=y
1018# CONFIG_CRC7 is not set
1122# CONFIG_LIBCRC32C is not set 1019# CONFIG_LIBCRC32C is not set
1123CONFIG_ZLIB_INFLATE=y 1020CONFIG_ZLIB_INFLATE=y
1124CONFIG_ZLIB_DEFLATE=m 1021CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/blackfin/configs/CM-BF527_defconfig b/arch/blackfin/configs/CM-BF527_defconfig
new file mode 100644
index 000000000000..0799aa9bba9d
--- /dev/null
+++ b/arch/blackfin/configs/CM-BF527_defconfig
@@ -0,0 +1,1185 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24.7
4# Fri Jul 18 18:00:41 2008
5#
6# CONFIG_MMU is not set
7# CONFIG_FPU is not set
8CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y
11CONFIG_ZONE_DMA=y
12CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_HARDIRQS=y
16CONFIG_GENERIC_IRQ_PROBE=y
17CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21
22#
23# General setup
24#
25CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32
28CONFIG_LOCALVERSION=""
29CONFIG_LOCALVERSION_AUTO=y
30CONFIG_SYSVIPC=y
31CONFIG_SYSVIPC_SYSCTL=y
32# CONFIG_POSIX_MQUEUE is not set
33# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set
35# CONFIG_USER_NS is not set
36# CONFIG_PID_NS is not set
37# CONFIG_AUDIT is not set
38CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=14
41# CONFIG_CGROUPS is not set
42CONFIG_FAIR_GROUP_SCHED=y
43CONFIG_FAIR_USER_SCHED=y
44# CONFIG_FAIR_CGROUP_SCHED is not set
45CONFIG_SYSFS_DEPRECATED=y
46# CONFIG_RELAY is not set
47CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE=""
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y
51CONFIG_EMBEDDED=y
52CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set
56CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y
58CONFIG_BUG=y
59CONFIG_ELF_CORE=y
60CONFIG_BASE_FULL=y
61CONFIG_FUTEX=y
62CONFIG_ANON_INODES=y
63CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y
65CONFIG_EVENTFD=y
66CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_SLAB=y
68# CONFIG_SLUB is not set
69# CONFIG_SLOB is not set
70CONFIG_SLABINFO=y
71CONFIG_RT_MUTEXES=y
72CONFIG_TINY_SHMEM=y
73CONFIG_BASE_SMALL=0
74CONFIG_MODULES=y
75CONFIG_MODULE_UNLOAD=y
76# CONFIG_MODULE_FORCE_UNLOAD is not set
77# CONFIG_MODVERSIONS is not set
78# CONFIG_MODULE_SRCVERSION_ALL is not set
79CONFIG_KMOD=y
80CONFIG_BLOCK=y
81# CONFIG_LBD is not set
82# CONFIG_BLK_DEV_IO_TRACE is not set
83# CONFIG_LSF is not set
84# CONFIG_BLK_DEV_BSG is not set
85
86#
87# IO Schedulers
88#
89CONFIG_IOSCHED_NOOP=y
90# CONFIG_IOSCHED_AS is not set
91# CONFIG_IOSCHED_DEADLINE is not set
92CONFIG_IOSCHED_CFQ=y
93# CONFIG_DEFAULT_AS is not set
94# CONFIG_DEFAULT_DEADLINE is not set
95CONFIG_DEFAULT_CFQ=y
96# CONFIG_DEFAULT_NOOP is not set
97CONFIG_DEFAULT_IOSCHED="cfq"
98# CONFIG_PREEMPT_NONE is not set
99CONFIG_PREEMPT_VOLUNTARY=y
100# CONFIG_PREEMPT is not set
101
102#
103# Blackfin Processor Options
104#
105
106#
107# Processor and Board Settings
108#
109# CONFIG_BF522 is not set
110# CONFIG_BF523 is not set
111# CONFIG_BF524 is not set
112# CONFIG_BF525 is not set
113# CONFIG_BF526 is not set
114CONFIG_BF527=y
115# CONFIG_BF531 is not set
116# CONFIG_BF532 is not set
117# CONFIG_BF533 is not set
118# CONFIG_BF534 is not set
119# CONFIG_BF536 is not set
120# CONFIG_BF537 is not set
121# CONFIG_BF542 is not set
122# CONFIG_BF544 is not set
123# CONFIG_BF547 is not set
124# CONFIG_BF548 is not set
125# CONFIG_BF549 is not set
126# CONFIG_BF561 is not set
127# CONFIG_BF_REV_0_0 is not set
128CONFIG_BF_REV_0_1=y
129# CONFIG_BF_REV_0_2 is not set
130# CONFIG_BF_REV_0_3 is not set
131# CONFIG_BF_REV_0_4 is not set
132# CONFIG_BF_REV_0_5 is not set
133# CONFIG_BF_REV_ANY is not set
134# CONFIG_BF_REV_NONE is not set
135CONFIG_BF52x=y
136CONFIG_MEM_MT48LC16M16A2TG_75=y
137# CONFIG_BFIN527_EZKIT is not set
138CONFIG_BFIN527_BLUETECHNIX_CM=y
139
140#
141# BF527 Specific Configuration
142#
143
144#
145# Alternative Multiplexing Scheme
146#
147# CONFIG_BF527_SPORT0_PORTF is not set
148CONFIG_BF527_SPORT0_PORTG=y
149CONFIG_BF527_SPORT0_TSCLK_PG10=y
150# CONFIG_BF527_SPORT0_TSCLK_PG14 is not set
151CONFIG_BF527_UART1_PORTF=y
152# CONFIG_BF527_UART1_PORTG is not set
153# CONFIG_BF527_NAND_D_PORTF is not set
154CONFIG_BF527_NAND_D_PORTH=y
155
156#
157# Interrupt Priority Assignment
158#
159
160#
161# Priority
162#
163CONFIG_IRQ_PLL_WAKEUP=7
164CONFIG_IRQ_DMA0_ERROR=7
165CONFIG_IRQ_DMAR0_BLK=7
166CONFIG_IRQ_DMAR1_BLK=7
167CONFIG_IRQ_DMAR0_OVR=7
168CONFIG_IRQ_DMAR1_OVR=7
169CONFIG_IRQ_PPI_ERROR=7
170CONFIG_IRQ_MAC_ERROR=7
171CONFIG_IRQ_SPORT0_ERROR=7
172CONFIG_IRQ_SPORT1_ERROR=7
173CONFIG_IRQ_UART0_ERROR=7
174CONFIG_IRQ_UART1_ERROR=7
175CONFIG_IRQ_RTC=8
176CONFIG_IRQ_PPI=8
177CONFIG_IRQ_SPORT0_RX=9
178CONFIG_IRQ_SPORT0_TX=9
179CONFIG_IRQ_SPORT1_RX=9
180CONFIG_IRQ_SPORT1_TX=9
181CONFIG_IRQ_TWI=10
182CONFIG_IRQ_SPI=10
183CONFIG_IRQ_UART0_RX=10
184CONFIG_IRQ_UART0_TX=10
185CONFIG_IRQ_UART1_RX=10
186CONFIG_IRQ_UART1_TX=10
187CONFIG_IRQ_OPTSEC=11
188CONFIG_IRQ_CNT=11
189CONFIG_IRQ_MAC_RX=11
190CONFIG_IRQ_PORTH_INTA=11
191CONFIG_IRQ_MAC_TX=11
192CONFIG_IRQ_PORTH_INTB=11
193CONFIG_IRQ_TMR0=12
194CONFIG_IRQ_TMR1=12
195CONFIG_IRQ_TMR2=12
196CONFIG_IRQ_TMR3=12
197CONFIG_IRQ_TMR4=12
198CONFIG_IRQ_TMR5=12
199CONFIG_IRQ_TMR6=12
200CONFIG_IRQ_TMR7=12
201CONFIG_IRQ_PORTG_INTA=12
202CONFIG_IRQ_PORTG_INTB=12
203CONFIG_IRQ_MEM_DMA0=13
204CONFIG_IRQ_MEM_DMA1=13
205CONFIG_IRQ_WATCH=13
206CONFIG_IRQ_PORTF_INTA=13
207CONFIG_IRQ_PORTF_INTB=13
208CONFIG_IRQ_SPI_ERROR=7
209CONFIG_IRQ_NFC_ERROR=7
210CONFIG_IRQ_HDMA_ERROR=7
211CONFIG_IRQ_HDMA=7
212CONFIG_IRQ_USB_EINT=10
213CONFIG_IRQ_USB_INT0=11
214CONFIG_IRQ_USB_INT1=11
215CONFIG_IRQ_USB_INT2=11
216CONFIG_IRQ_USB_DMA=11
217
218#
219# Board customizations
220#
221# CONFIG_CMDLINE_BOOL is not set
222CONFIG_BOOT_LOAD=0x1000
223
224#
225# Clock/PLL Setup
226#
227CONFIG_CLKIN_HZ=25000000
228# CONFIG_BFIN_KERNEL_CLOCK is not set
229CONFIG_MAX_MEM_SIZE=512
230CONFIG_MAX_VCO_HZ=600000000
231CONFIG_MIN_VCO_HZ=50000000
232CONFIG_MAX_SCLK_HZ=133333333
233CONFIG_MIN_SCLK_HZ=27000000
234
235#
236# Kernel Timer/Scheduler
237#
238# CONFIG_HZ_100 is not set
239CONFIG_HZ_250=y
240# CONFIG_HZ_300 is not set
241# CONFIG_HZ_1000 is not set
242CONFIG_HZ=250
243CONFIG_GENERIC_TIME=y
244CONFIG_GENERIC_CLOCKEVENTS=y
245# CONFIG_CYCLES_CLOCKSOURCE is not set
246# CONFIG_TICK_ONESHOT is not set
247# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
250
251#
252# Misc
253#
254CONFIG_BFIN_SCRATCH_REG_RETN=y
255# CONFIG_BFIN_SCRATCH_REG_RETE is not set
256# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
257
258#
259# Blackfin Kernel Optimizations
260#
261
262#
263# Memory Optimizations
264#
265CONFIG_I_ENTRY_L1=y
266CONFIG_EXCPT_IRQ_SYSC_L1=y
267CONFIG_DO_IRQ_L1=y
268CONFIG_CORE_TIMER_IRQ_L1=y
269CONFIG_IDLE_L1=y
270# CONFIG_SCHEDULE_L1 is not set
271CONFIG_ARITHMETIC_OPS_L1=y
272CONFIG_ACCESS_OK_L1=y
273# CONFIG_MEMSET_L1 is not set
274# CONFIG_MEMCPY_L1 is not set
275# CONFIG_SYS_BFIN_SPINLOCK_L1 is not set
276# CONFIG_IP_CHECKSUM_L1 is not set
277CONFIG_CACHELINE_ALIGNED_L1=y
278# CONFIG_SYSCALL_TAB_L1 is not set
279# CONFIG_CPLB_SWITCH_TAB_L1 is not set
280CONFIG_RAMKERNEL=y
281# CONFIG_ROMKERNEL is not set
282CONFIG_SELECT_MEMORY_MODEL=y
283CONFIG_FLATMEM_MANUAL=y
284# CONFIG_DISCONTIGMEM_MANUAL is not set
285# CONFIG_SPARSEMEM_MANUAL is not set
286CONFIG_FLATMEM=y
287CONFIG_FLAT_NODE_MEM_MAP=y
288# CONFIG_SPARSEMEM_STATIC is not set
289# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
290CONFIG_SPLIT_PTLOCK_CPUS=4
291# CONFIG_RESOURCES_64BIT is not set
292CONFIG_ZONE_DMA_FLAG=1
293CONFIG_VIRT_TO_BUS=y
294CONFIG_BFIN_GPTIMERS=y
295CONFIG_BFIN_DMA_5XX=y
296# CONFIG_DMA_UNCACHED_4M is not set
297# CONFIG_DMA_UNCACHED_2M is not set
298CONFIG_DMA_UNCACHED_1M=y
299# CONFIG_DMA_UNCACHED_NONE is not set
300
301#
302# Cache Support
303#
304CONFIG_BFIN_ICACHE=y
305CONFIG_BFIN_DCACHE=y
306# CONFIG_BFIN_DCACHE_BANKA is not set
307# CONFIG_BFIN_ICACHE_LOCK is not set
308# CONFIG_BFIN_WB is not set
309CONFIG_BFIN_WT=y
310# CONFIG_MPU is not set
311
312#
313# Asynchonous Memory Configuration
314#
315
316#
317# EBIU_AMGCTL Global Control
318#
319CONFIG_C_AMCKEN=y
320CONFIG_C_CDPRIO=y
321# CONFIG_C_AMBEN is not set
322# CONFIG_C_AMBEN_B0 is not set
323# CONFIG_C_AMBEN_B0_B1 is not set
324# CONFIG_C_AMBEN_B0_B1_B2 is not set
325CONFIG_C_AMBEN_ALL=y
326
327#
328# EBIU_AMBCTL Control
329#
330CONFIG_BANK_0=0x7BB0
331CONFIG_BANK_1=0x5554
332CONFIG_BANK_2=0x7BB0
333CONFIG_BANK_3=0xFFC0
334
335#
336# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
337#
338# CONFIG_PCI is not set
339# CONFIG_ARCH_SUPPORTS_MSI is not set
340# CONFIG_PCCARD is not set
341
342#
343# Executable file formats
344#
345CONFIG_BINFMT_ELF_FDPIC=y
346CONFIG_BINFMT_FLAT=y
347CONFIG_BINFMT_ZFLAT=y
348# CONFIG_BINFMT_SHARED_FLAT is not set
349# CONFIG_BINFMT_MISC is not set
350
351#
352# Power management options
353#
354# CONFIG_PM is not set
355CONFIG_SUSPEND_UP_POSSIBLE=y
356# CONFIG_PM_BFIN_SLEEP_DEEPER is not set
357# CONFIG_PM_BFIN_SLEEP is not set
358# CONFIG_PM_WAKEUP_BY_GPIO is not set
359
360#
361# CPU Frequency scaling
362#
363# CONFIG_CPU_FREQ is not set
364
365#
366# Networking
367#
368CONFIG_NET=y
369
370#
371# Networking options
372#
373CONFIG_PACKET=y
374# CONFIG_PACKET_MMAP is not set
375CONFIG_UNIX=y
376CONFIG_XFRM=y
377# CONFIG_XFRM_USER is not set
378# CONFIG_XFRM_SUB_POLICY is not set
379# CONFIG_XFRM_MIGRATE is not set
380# CONFIG_NET_KEY is not set
381CONFIG_INET=y
382# CONFIG_IP_MULTICAST is not set
383# CONFIG_IP_ADVANCED_ROUTER is not set
384CONFIG_IP_FIB_HASH=y
385CONFIG_IP_PNP=y
386# CONFIG_IP_PNP_DHCP is not set
387# CONFIG_IP_PNP_BOOTP is not set
388# CONFIG_IP_PNP_RARP is not set
389# CONFIG_NET_IPIP is not set
390# CONFIG_NET_IPGRE is not set
391# CONFIG_ARPD is not set
392CONFIG_SYN_COOKIES=y
393# CONFIG_INET_AH is not set
394# CONFIG_INET_ESP is not set
395# CONFIG_INET_IPCOMP is not set
396# CONFIG_INET_XFRM_TUNNEL is not set
397# CONFIG_INET_TUNNEL is not set
398CONFIG_INET_XFRM_MODE_TRANSPORT=y
399CONFIG_INET_XFRM_MODE_TUNNEL=y
400CONFIG_INET_XFRM_MODE_BEET=y
401# CONFIG_INET_LRO is not set
402CONFIG_INET_DIAG=y
403CONFIG_INET_TCP_DIAG=y
404# CONFIG_TCP_CONG_ADVANCED is not set
405CONFIG_TCP_CONG_CUBIC=y
406CONFIG_DEFAULT_TCP_CONG="cubic"
407# CONFIG_TCP_MD5SIG is not set
408# CONFIG_IPV6 is not set
409# CONFIG_INET6_XFRM_TUNNEL is not set
410# CONFIG_INET6_TUNNEL is not set
411# CONFIG_NETLABEL is not set
412# CONFIG_NETWORK_SECMARK is not set
413# CONFIG_NETFILTER is not set
414# CONFIG_IP_DCCP is not set
415# CONFIG_IP_SCTP is not set
416# CONFIG_TIPC is not set
417# CONFIG_ATM is not set
418# CONFIG_BRIDGE is not set
419# CONFIG_VLAN_8021Q is not set
420# CONFIG_DECNET is not set
421# CONFIG_LLC2 is not set
422# CONFIG_IPX is not set
423# CONFIG_ATALK is not set
424# CONFIG_X25 is not set
425# CONFIG_LAPB is not set
426# CONFIG_ECONET is not set
427# CONFIG_WAN_ROUTER is not set
428# CONFIG_NET_SCHED is not set
429
430#
431# Network testing
432#
433# CONFIG_NET_PKTGEN is not set
434# CONFIG_HAMRADIO is not set
435# CONFIG_IRDA is not set
436# CONFIG_BT is not set
437# CONFIG_AF_RXRPC is not set
438
439#
440# Wireless
441#
442# CONFIG_CFG80211 is not set
443# CONFIG_WIRELESS_EXT is not set
444# CONFIG_MAC80211 is not set
445# CONFIG_IEEE80211 is not set
446# CONFIG_RFKILL is not set
447# CONFIG_NET_9P is not set
448
449#
450# Device Drivers
451#
452
453#
454# Generic Driver Options
455#
456CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
457CONFIG_STANDALONE=y
458CONFIG_PREVENT_FIRMWARE_BUILD=y
459# CONFIG_FW_LOADER is not set
460# CONFIG_SYS_HYPERVISOR is not set
461# CONFIG_CONNECTOR is not set
462CONFIG_MTD=y
463# CONFIG_MTD_DEBUG is not set
464# CONFIG_MTD_CONCAT is not set
465CONFIG_MTD_PARTITIONS=y
466# CONFIG_MTD_REDBOOT_PARTS is not set
467# CONFIG_MTD_CMDLINE_PARTS is not set
468
469#
470# User Modules And Translation Layers
471#
472CONFIG_MTD_CHAR=m
473CONFIG_MTD_BLKDEVS=y
474CONFIG_MTD_BLOCK=y
475# CONFIG_FTL is not set
476# CONFIG_NFTL is not set
477# CONFIG_INFTL is not set
478# CONFIG_RFD_FTL is not set
479# CONFIG_SSFDC is not set
480# CONFIG_MTD_OOPS is not set
481
482#
483# RAM/ROM/Flash chip drivers
484#
485# CONFIG_MTD_CFI is not set
486CONFIG_MTD_JEDECPROBE=m
487CONFIG_MTD_GEN_PROBE=m
488# CONFIG_MTD_CFI_ADV_OPTIONS is not set
489CONFIG_MTD_MAP_BANK_WIDTH_1=y
490CONFIG_MTD_MAP_BANK_WIDTH_2=y
491CONFIG_MTD_MAP_BANK_WIDTH_4=y
492# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
493# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
494# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
495CONFIG_MTD_CFI_I1=y
496CONFIG_MTD_CFI_I2=y
497# CONFIG_MTD_CFI_I4 is not set
498# CONFIG_MTD_CFI_I8 is not set
499# CONFIG_MTD_CFI_INTELEXT is not set
500# CONFIG_MTD_CFI_AMDSTD is not set
501# CONFIG_MTD_CFI_STAA is not set
502CONFIG_MTD_RAM=y
503CONFIG_MTD_ROM=m
504# CONFIG_MTD_ABSENT is not set
505
506#
507# Mapping drivers for chip access
508#
509CONFIG_MTD_COMPLEX_MAPPINGS=y
510# CONFIG_MTD_PHYSMAP is not set
511# CONFIG_MTD_UCLINUX is not set
512# CONFIG_MTD_PLATRAM is not set
513
514#
515# Self-contained MTD device drivers
516#
517# CONFIG_MTD_DATAFLASH is not set
518# CONFIG_MTD_M25P80 is not set
519# CONFIG_MTD_SLRAM is not set
520# CONFIG_MTD_PHRAM is not set
521# CONFIG_MTD_MTDRAM is not set
522# CONFIG_MTD_BLOCK2MTD is not set
523
524#
525# Disk-On-Chip Device Drivers
526#
527# CONFIG_MTD_DOC2000 is not set
528# CONFIG_MTD_DOC2001 is not set
529# CONFIG_MTD_DOC2001PLUS is not set
530# CONFIG_MTD_NAND is not set
531# CONFIG_MTD_ONENAND is not set
532
533#
534# UBI - Unsorted block images
535#
536# CONFIG_MTD_UBI is not set
537# CONFIG_PARPORT is not set
538CONFIG_BLK_DEV=y
539# CONFIG_BLK_DEV_COW_COMMON is not set
540# CONFIG_BLK_DEV_LOOP is not set
541# CONFIG_BLK_DEV_NBD is not set
542# CONFIG_BLK_DEV_UB is not set
543CONFIG_BLK_DEV_RAM=y
544CONFIG_BLK_DEV_RAM_COUNT=16
545CONFIG_BLK_DEV_RAM_SIZE=4096
546CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
547# CONFIG_CDROM_PKTCDVD is not set
548# CONFIG_ATA_OVER_ETH is not set
549# CONFIG_MISC_DEVICES is not set
550# CONFIG_IDE is not set
551
552#
553# SCSI device support
554#
555# CONFIG_RAID_ATTRS is not set
556# CONFIG_SCSI is not set
557# CONFIG_SCSI_DMA is not set
558# CONFIG_SCSI_NETLINK is not set
559# CONFIG_ATA is not set
560# CONFIG_MD is not set
561CONFIG_NETDEVICES=y
562# CONFIG_NETDEVICES_MULTIQUEUE is not set
563# CONFIG_DUMMY is not set
564# CONFIG_BONDING is not set
565# CONFIG_MACVLAN is not set
566# CONFIG_EQUALIZER is not set
567# CONFIG_TUN is not set
568# CONFIG_VETH is not set
569CONFIG_PHYLIB=y
570
571#
572# MII PHY device drivers
573#
574# CONFIG_MARVELL_PHY is not set
575# CONFIG_DAVICOM_PHY is not set
576# CONFIG_QSEMI_PHY is not set
577# CONFIG_LXT_PHY is not set
578# CONFIG_CICADA_PHY is not set
579# CONFIG_VITESSE_PHY is not set
580# CONFIG_SMSC_PHY is not set
581# CONFIG_BROADCOM_PHY is not set
582# CONFIG_ICPLUS_PHY is not set
583# CONFIG_FIXED_PHY is not set
584# CONFIG_MDIO_BITBANG is not set
585CONFIG_NET_ETHERNET=y
586CONFIG_MII=y
587CONFIG_BFIN_MAC=y
588CONFIG_BFIN_MAC_USE_L1=y
589CONFIG_BFIN_TX_DESC_NUM=10
590CONFIG_BFIN_RX_DESC_NUM=20
591CONFIG_BFIN_MAC_RMII=y
592# CONFIG_SMC91X is not set
593# CONFIG_SMSC911X is not set
594# CONFIG_DM9000 is not set
595# CONFIG_IBM_NEW_EMAC_ZMII is not set
596# CONFIG_IBM_NEW_EMAC_RGMII is not set
597# CONFIG_IBM_NEW_EMAC_TAH is not set
598# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
599# CONFIG_B44 is not set
600# CONFIG_NETDEV_1000 is not set
601# CONFIG_NETDEV_10000 is not set
602
603#
604# Wireless LAN
605#
606# CONFIG_WLAN_PRE80211 is not set
607# CONFIG_WLAN_80211 is not set
608
609#
610# USB Network Adapters
611#
612# CONFIG_USB_CATC is not set
613# CONFIG_USB_KAWETH is not set
614# CONFIG_USB_PEGASUS is not set
615# CONFIG_USB_RTL8150 is not set
616# CONFIG_USB_USBNET is not set
617# CONFIG_WAN is not set
618# CONFIG_PPP is not set
619# CONFIG_SLIP is not set
620# CONFIG_SHAPER is not set
621# CONFIG_NETCONSOLE is not set
622# CONFIG_NETPOLL is not set
623# CONFIG_NET_POLL_CONTROLLER is not set
624# CONFIG_ISDN is not set
625# CONFIG_PHONE is not set
626
627#
628# Input device support
629#
630# CONFIG_INPUT is not set
631
632#
633# Hardware I/O ports
634#
635# CONFIG_SERIO is not set
636# CONFIG_GAMEPORT is not set
637
638#
639# Character devices
640#
641# CONFIG_AD9960 is not set
642# CONFIG_SPI_ADC_BF533 is not set
643# CONFIG_BF5xx_PPIFCD is not set
644# CONFIG_BFIN_SIMPLE_TIMER is not set
645# CONFIG_BF5xx_PPI is not set
646CONFIG_BFIN_OTP=y
647# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
648# CONFIG_BFIN_SPORT is not set
649# CONFIG_BFIN_TIMER_LATENCY is not set
650# CONFIG_TWI_LCD is not set
651CONFIG_SIMPLE_GPIO=m
652# CONFIG_VT is not set
653# CONFIG_SERIAL_NONSTANDARD is not set
654
655#
656# Serial drivers
657#
658# CONFIG_SERIAL_8250 is not set
659
660#
661# Non-8250 serial port support
662#
663CONFIG_SERIAL_BFIN=y
664CONFIG_SERIAL_BFIN_CONSOLE=y
665CONFIG_SERIAL_BFIN_DMA=y
666# CONFIG_SERIAL_BFIN_PIO is not set
667CONFIG_SERIAL_BFIN_UART0=y
668# CONFIG_BFIN_UART0_CTSRTS is not set
669CONFIG_SERIAL_BFIN_UART1=y
670# CONFIG_BFIN_UART1_CTSRTS is not set
671CONFIG_SERIAL_CORE=y
672CONFIG_SERIAL_CORE_CONSOLE=y
673# CONFIG_SERIAL_BFIN_SPORT is not set
674CONFIG_UNIX98_PTYS=y
675# CONFIG_LEGACY_PTYS is not set
676
677#
678# CAN, the car bus and industrial fieldbus
679#
680# CONFIG_CAN4LINUX is not set
681# CONFIG_IPMI_HANDLER is not set
682CONFIG_HW_RANDOM=y
683# CONFIG_GEN_RTC is not set
684# CONFIG_R3964 is not set
685# CONFIG_RAW_DRIVER is not set
686# CONFIG_TCG_TPM is not set
687CONFIG_I2C=y
688CONFIG_I2C_BOARDINFO=y
689CONFIG_I2C_CHARDEV=m
690
691#
692# I2C Algorithms
693#
694# CONFIG_I2C_ALGOBIT is not set
695# CONFIG_I2C_ALGOPCF is not set
696# CONFIG_I2C_ALGOPCA is not set
697
698#
699# I2C Hardware Bus support
700#
701CONFIG_I2C_BLACKFIN_TWI=m
702CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50
703# CONFIG_I2C_GPIO is not set
704# CONFIG_I2C_OCORES is not set
705# CONFIG_I2C_PARPORT_LIGHT is not set
706# CONFIG_I2C_SIMTEC is not set
707# CONFIG_I2C_TAOS_EVM is not set
708# CONFIG_I2C_STUB is not set
709# CONFIG_I2C_TINY_USB is not set
710
711#
712# Miscellaneous I2C Chip support
713#
714# CONFIG_SENSORS_DS1337 is not set
715# CONFIG_SENSORS_DS1374 is not set
716# CONFIG_DS1682 is not set
717# CONFIG_SENSORS_AD5252 is not set
718# CONFIG_SENSORS_EEPROM is not set
719# CONFIG_SENSORS_PCF8574 is not set
720# CONFIG_SENSORS_PCF8575 is not set
721# CONFIG_SENSORS_PCA9539 is not set
722# CONFIG_SENSORS_PCF8591 is not set
723# CONFIG_SENSORS_MAX6875 is not set
724# CONFIG_SENSORS_TSL2550 is not set
725# CONFIG_I2C_DEBUG_CORE is not set
726# CONFIG_I2C_DEBUG_ALGO is not set
727# CONFIG_I2C_DEBUG_BUS is not set
728# CONFIG_I2C_DEBUG_CHIP is not set
729
730#
731# SPI support
732#
733CONFIG_SPI=y
734CONFIG_SPI_MASTER=y
735
736#
737# SPI Master Controller Drivers
738#
739CONFIG_SPI_BFIN=y
740# CONFIG_SPI_BITBANG is not set
741
742#
743# SPI Protocol Masters
744#
745# CONFIG_SPI_AT25 is not set
746# CONFIG_SPI_SPIDEV is not set
747# CONFIG_SPI_TLE62X0 is not set
748# CONFIG_W1 is not set
749# CONFIG_POWER_SUPPLY is not set
750CONFIG_HWMON=y
751# CONFIG_HWMON_VID is not set
752# CONFIG_SENSORS_AD7418 is not set
753# CONFIG_SENSORS_ADM1021 is not set
754# CONFIG_SENSORS_ADM1025 is not set
755# CONFIG_SENSORS_ADM1026 is not set
756# CONFIG_SENSORS_ADM1029 is not set
757# CONFIG_SENSORS_ADM1031 is not set
758# CONFIG_SENSORS_ADM9240 is not set
759# CONFIG_SENSORS_ADT7470 is not set
760# CONFIG_SENSORS_ATXP1 is not set
761# CONFIG_SENSORS_DS1621 is not set
762# CONFIG_SENSORS_F71805F is not set
763# CONFIG_SENSORS_F71882FG is not set
764# CONFIG_SENSORS_F75375S is not set
765# CONFIG_SENSORS_GL518SM is not set
766# CONFIG_SENSORS_GL520SM is not set
767# CONFIG_SENSORS_IT87 is not set
768# CONFIG_SENSORS_LM63 is not set
769# CONFIG_SENSORS_LM70 is not set
770# CONFIG_SENSORS_LM75 is not set
771# CONFIG_SENSORS_LM77 is not set
772# CONFIG_SENSORS_LM78 is not set
773# CONFIG_SENSORS_LM80 is not set
774# CONFIG_SENSORS_LM83 is not set
775# CONFIG_SENSORS_LM85 is not set
776# CONFIG_SENSORS_LM87 is not set
777# CONFIG_SENSORS_LM90 is not set
778# CONFIG_SENSORS_LM92 is not set
779# CONFIG_SENSORS_LM93 is not set
780# CONFIG_SENSORS_MAX1619 is not set
781# CONFIG_SENSORS_MAX6650 is not set
782# CONFIG_SENSORS_PC87360 is not set
783# CONFIG_SENSORS_PC87427 is not set
784# CONFIG_SENSORS_DME1737 is not set
785# CONFIG_SENSORS_SMSC47M1 is not set
786# CONFIG_SENSORS_SMSC47M192 is not set
787# CONFIG_SENSORS_SMSC47B397 is not set
788# CONFIG_SENSORS_THMC50 is not set
789# CONFIG_SENSORS_VT1211 is not set
790# CONFIG_SENSORS_W83781D is not set
791# CONFIG_SENSORS_W83791D is not set
792# CONFIG_SENSORS_W83792D is not set
793# CONFIG_SENSORS_W83793 is not set
794# CONFIG_SENSORS_W83L785TS is not set
795# CONFIG_SENSORS_W83627HF is not set
796# CONFIG_SENSORS_W83627EHF is not set
797# CONFIG_HWMON_DEBUG_CHIP is not set
798CONFIG_WATCHDOG=y
799# CONFIG_WATCHDOG_NOWAYOUT is not set
800
801#
802# Watchdog Device Drivers
803#
804# CONFIG_SOFT_WATCHDOG is not set
805CONFIG_BFIN_WDT=y
806
807#
808# USB-based Watchdog Cards
809#
810# CONFIG_USBPCWATCHDOG is not set
811
812#
813# Sonics Silicon Backplane
814#
815CONFIG_SSB_POSSIBLE=y
816# CONFIG_SSB is not set
817
818#
819# Multifunction device drivers
820#
821# CONFIG_MFD_SM501 is not set
822
823#
824# Multimedia devices
825#
826# CONFIG_VIDEO_DEV is not set
827# CONFIG_DVB_CORE is not set
828# CONFIG_DAB is not set
829
830#
831# Graphics support
832#
833# CONFIG_VGASTATE is not set
834# CONFIG_VIDEO_OUTPUT_CONTROL is not set
835# CONFIG_FB is not set
836# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
837
838#
839# Display device support
840#
841# CONFIG_DISPLAY_SUPPORT is not set
842
843#
844# Sound
845#
846# CONFIG_SOUND is not set
847CONFIG_USB_SUPPORT=y
848CONFIG_USB_ARCH_HAS_HCD=y
849# CONFIG_USB_ARCH_HAS_OHCI is not set
850# CONFIG_USB_ARCH_HAS_EHCI is not set
851CONFIG_USB=y
852# CONFIG_USB_DEBUG is not set
853
854#
855# Miscellaneous USB options
856#
857# CONFIG_USB_DEVICEFS is not set
858CONFIG_USB_DEVICE_CLASS=y
859# CONFIG_USB_DYNAMIC_MINORS is not set
860# CONFIG_USB_OTG is not set
861# CONFIG_USB_OTG_WHITELIST is not set
862CONFIG_USB_OTG_BLACKLIST_HUB=y
863
864#
865# USB Host Controller Drivers
866#
867# CONFIG_USB_ISP116X_HCD is not set
868# CONFIG_USB_ISP1362_HCD is not set
869# CONFIG_USB_ISP1760_HCD is not set
870# CONFIG_USB_SL811_HCD is not set
871# CONFIG_USB_R8A66597_HCD is not set
872CONFIG_USB_MUSB_HDRC=y
873CONFIG_USB_MUSB_SOC=y
874
875#
876# Blackfin high speed USB support
877#
878CONFIG_USB_MUSB_HOST=y
879# CONFIG_USB_MUSB_PERIPHERAL is not set
880# CONFIG_USB_MUSB_OTG is not set
881CONFIG_USB_MUSB_HDRC_HCD=y
882CONFIG_MUSB_PIO_ONLY=y
883CONFIG_USB_MUSB_LOGLEVEL=0
884
885#
886# USB Device Class drivers
887#
888# CONFIG_USB_ACM is not set
889# CONFIG_USB_PRINTER is not set
890
891#
892# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
893#
894
895#
896# may also be needed; see USB_STORAGE Help for more information
897#
898# CONFIG_USB_LIBUSUAL is not set
899
900#
901# USB Imaging devices
902#
903# CONFIG_USB_MDC800 is not set
904CONFIG_USB_MON=y
905
906#
907# USB port drivers
908#
909
910#
911# USB Serial Converter support
912#
913# CONFIG_USB_SERIAL is not set
914
915#
916# USB Miscellaneous drivers
917#
918# CONFIG_USB_EMI62 is not set
919# CONFIG_USB_EMI26 is not set
920# CONFIG_USB_ADUTUX is not set
921# CONFIG_USB_AUERSWALD is not set
922# CONFIG_USB_RIO500 is not set
923# CONFIG_USB_LEGOTOWER is not set
924# CONFIG_USB_LCD is not set
925# CONFIG_USB_BERRY_CHARGE is not set
926# CONFIG_USB_LED is not set
927# CONFIG_USB_CYPRESS_CY7C63 is not set
928# CONFIG_USB_CYTHERM is not set
929# CONFIG_USB_PHIDGET is not set
930# CONFIG_USB_IDMOUSE is not set
931# CONFIG_USB_FTDI_ELAN is not set
932# CONFIG_USB_APPLEDISPLAY is not set
933# CONFIG_USB_SISUSBVGA is not set
934# CONFIG_USB_LD is not set
935# CONFIG_USB_TRANCEVIBRATOR is not set
936# CONFIG_USB_IOWARRIOR is not set
937
938#
939# USB DSL modem support
940#
941
942#
943# USB Gadget Support
944#
945# CONFIG_USB_GADGET is not set
946# CONFIG_MMC is not set
947# CONFIG_NEW_LEDS is not set
948CONFIG_RTC_LIB=y
949CONFIG_RTC_CLASS=y
950CONFIG_RTC_HCTOSYS=y
951CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
952# CONFIG_RTC_DEBUG is not set
953
954#
955# RTC interfaces
956#
957CONFIG_RTC_INTF_SYSFS=y
958CONFIG_RTC_INTF_PROC=y
959CONFIG_RTC_INTF_DEV=y
960# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
961# CONFIG_RTC_DRV_TEST is not set
962
963#
964# I2C RTC drivers
965#
966# CONFIG_RTC_DRV_DS1307 is not set
967# CONFIG_RTC_DRV_DS1374 is not set
968# CONFIG_RTC_DRV_DS1672 is not set
969# CONFIG_RTC_DRV_MAX6900 is not set
970# CONFIG_RTC_DRV_RS5C372 is not set
971# CONFIG_RTC_DRV_ISL1208 is not set
972# CONFIG_RTC_DRV_X1205 is not set
973# CONFIG_RTC_DRV_PCF8563 is not set
974# CONFIG_RTC_DRV_PCF8583 is not set
975# CONFIG_RTC_DRV_M41T80 is not set
976
977#
978# SPI RTC drivers
979#
980# CONFIG_RTC_DRV_RS5C348 is not set
981# CONFIG_RTC_DRV_MAX6902 is not set
982
983#
984# Platform RTC drivers
985#
986# CONFIG_RTC_DRV_DS1553 is not set
987# CONFIG_RTC_DRV_STK17TA8 is not set
988# CONFIG_RTC_DRV_DS1742 is not set
989# CONFIG_RTC_DRV_M48T86 is not set
990# CONFIG_RTC_DRV_M48T59 is not set
991# CONFIG_RTC_DRV_V3020 is not set
992
993#
994# on-CPU RTC drivers
995#
996CONFIG_RTC_DRV_BFIN=y
997
998#
999# Userspace I/O
1000#
1001# CONFIG_UIO is not set
1002
1003#
1004# File systems
1005#
1006# CONFIG_EXT2_FS is not set
1007# CONFIG_EXT3_FS is not set
1008# CONFIG_EXT4DEV_FS is not set
1009# CONFIG_REISERFS_FS is not set
1010# CONFIG_JFS_FS is not set
1011# CONFIG_FS_POSIX_ACL is not set
1012# CONFIG_XFS_FS is not set
1013# CONFIG_GFS2_FS is not set
1014# CONFIG_OCFS2_FS is not set
1015# CONFIG_MINIX_FS is not set
1016# CONFIG_ROMFS_FS is not set
1017CONFIG_INOTIFY=y
1018CONFIG_INOTIFY_USER=y
1019# CONFIG_QUOTA is not set
1020# CONFIG_DNOTIFY is not set
1021# CONFIG_AUTOFS_FS is not set
1022# CONFIG_AUTOFS4_FS is not set
1023# CONFIG_FUSE_FS is not set
1024
1025#
1026# CD-ROM/DVD Filesystems
1027#
1028# CONFIG_ISO9660_FS is not set
1029# CONFIG_UDF_FS is not set
1030
1031#
1032# DOS/FAT/NT Filesystems
1033#
1034# CONFIG_MSDOS_FS is not set
1035# CONFIG_VFAT_FS is not set
1036# CONFIG_NTFS_FS is not set
1037
1038#
1039# Pseudo filesystems
1040#
1041CONFIG_PROC_FS=y
1042CONFIG_PROC_SYSCTL=y
1043CONFIG_SYSFS=y
1044# CONFIG_TMPFS is not set
1045# CONFIG_HUGETLB_PAGE is not set
1046# CONFIG_CONFIGFS_FS is not set
1047
1048#
1049# Miscellaneous filesystems
1050#
1051# CONFIG_ADFS_FS is not set
1052# CONFIG_AFFS_FS is not set
1053# CONFIG_HFS_FS is not set
1054# CONFIG_HFSPLUS_FS is not set
1055# CONFIG_BEFS_FS is not set
1056# CONFIG_BFS_FS is not set
1057# CONFIG_EFS_FS is not set
1058# CONFIG_YAFFS_FS is not set
1059# CONFIG_JFFS2_FS is not set
1060# CONFIG_CRAMFS is not set
1061# CONFIG_VXFS_FS is not set
1062# CONFIG_HPFS_FS is not set
1063# CONFIG_QNX4FS_FS is not set
1064# CONFIG_SYSV_FS is not set
1065# CONFIG_UFS_FS is not set
1066CONFIG_NETWORK_FILESYSTEMS=y
1067CONFIG_NFS_FS=m
1068CONFIG_NFS_V3=y
1069# CONFIG_NFS_V3_ACL is not set
1070# CONFIG_NFS_V4 is not set
1071# CONFIG_NFS_DIRECTIO is not set
1072# CONFIG_NFSD is not set
1073CONFIG_LOCKD=m
1074CONFIG_LOCKD_V4=y
1075CONFIG_NFS_COMMON=y
1076CONFIG_SUNRPC=m
1077# CONFIG_SUNRPC_BIND34 is not set
1078# CONFIG_RPCSEC_GSS_KRB5 is not set
1079# CONFIG_RPCSEC_GSS_SPKM3 is not set
1080CONFIG_SMB_FS=m
1081# CONFIG_SMB_NLS_DEFAULT is not set
1082# CONFIG_CIFS is not set
1083# CONFIG_NCP_FS is not set
1084# CONFIG_CODA_FS is not set
1085# CONFIG_AFS_FS is not set
1086
1087#
1088# Partition Types
1089#
1090# CONFIG_PARTITION_ADVANCED is not set
1091CONFIG_MSDOS_PARTITION=y
1092CONFIG_NLS=m
1093CONFIG_NLS_DEFAULT="iso8859-1"
1094# CONFIG_NLS_CODEPAGE_437 is not set
1095# CONFIG_NLS_CODEPAGE_737 is not set
1096# CONFIG_NLS_CODEPAGE_775 is not set
1097# CONFIG_NLS_CODEPAGE_850 is not set
1098# CONFIG_NLS_CODEPAGE_852 is not set
1099# CONFIG_NLS_CODEPAGE_855 is not set
1100# CONFIG_NLS_CODEPAGE_857 is not set
1101# CONFIG_NLS_CODEPAGE_860 is not set
1102# CONFIG_NLS_CODEPAGE_861 is not set
1103# CONFIG_NLS_CODEPAGE_862 is not set
1104# CONFIG_NLS_CODEPAGE_863 is not set
1105# CONFIG_NLS_CODEPAGE_864 is not set
1106# CONFIG_NLS_CODEPAGE_865 is not set
1107# CONFIG_NLS_CODEPAGE_866 is not set
1108# CONFIG_NLS_CODEPAGE_869 is not set
1109# CONFIG_NLS_CODEPAGE_936 is not set
1110# CONFIG_NLS_CODEPAGE_950 is not set
1111# CONFIG_NLS_CODEPAGE_932 is not set
1112# CONFIG_NLS_CODEPAGE_949 is not set
1113# CONFIG_NLS_CODEPAGE_874 is not set
1114# CONFIG_NLS_ISO8859_8 is not set
1115# CONFIG_NLS_CODEPAGE_1250 is not set
1116# CONFIG_NLS_CODEPAGE_1251 is not set
1117# CONFIG_NLS_ASCII is not set
1118# CONFIG_NLS_ISO8859_1 is not set
1119# CONFIG_NLS_ISO8859_2 is not set
1120# CONFIG_NLS_ISO8859_3 is not set
1121# CONFIG_NLS_ISO8859_4 is not set
1122# CONFIG_NLS_ISO8859_5 is not set
1123# CONFIG_NLS_ISO8859_6 is not set
1124# CONFIG_NLS_ISO8859_7 is not set
1125# CONFIG_NLS_ISO8859_9 is not set
1126# CONFIG_NLS_ISO8859_13 is not set
1127# CONFIG_NLS_ISO8859_14 is not set
1128# CONFIG_NLS_ISO8859_15 is not set
1129# CONFIG_NLS_KOI8_R is not set
1130# CONFIG_NLS_KOI8_U is not set
1131# CONFIG_NLS_UTF8 is not set
1132# CONFIG_DLM is not set
1133# CONFIG_INSTRUMENTATION is not set
1134
1135#
1136# Kernel hacking
1137#
1138# CONFIG_PRINTK_TIME is not set
1139CONFIG_ENABLE_WARN_DEPRECATED=y
1140CONFIG_ENABLE_MUST_CHECK=y
1141# CONFIG_MAGIC_SYSRQ is not set
1142# CONFIG_UNUSED_SYMBOLS is not set
1143CONFIG_DEBUG_FS=y
1144# CONFIG_HEADERS_CHECK is not set
1145# CONFIG_DEBUG_KERNEL is not set
1146# CONFIG_DEBUG_BUGVERBOSE is not set
1147# CONFIG_SAMPLES is not set
1148CONFIG_DEBUG_MMRS=y
1149CONFIG_DEBUG_HUNT_FOR_ZERO=y
1150CONFIG_DEBUG_BFIN_HWTRACE_ON=y
1151CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
1152# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set
1153# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set
1154CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0
1155# CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set
1156# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1157CONFIG_EARLY_PRINTK=y
1158# CONFIG_CPLB_INFO is not set
1159CONFIG_ACCESS_CHECK=y
1160
1161#
1162# Security options
1163#
1164# CONFIG_KEYS is not set
1165CONFIG_SECURITY=y
1166# CONFIG_SECURITY_NETWORK is not set
1167# CONFIG_SECURITY_CAPABILITIES is not set
1168# CONFIG_SECURITY_ROOTPLUG is not set
1169# CONFIG_CRYPTO is not set
1170
1171#
1172# Library routines
1173#
1174CONFIG_BITREVERSE=y
1175CONFIG_CRC_CCITT=m
1176# CONFIG_CRC16 is not set
1177# CONFIG_CRC_ITU_T is not set
1178CONFIG_CRC32=y
1179# CONFIG_CRC7 is not set
1180# CONFIG_LIBCRC32C is not set
1181CONFIG_ZLIB_INFLATE=y
1182CONFIG_PLIST=y
1183CONFIG_HAS_IOMEM=y
1184CONFIG_HAS_IOPORT=y
1185CONFIG_HAS_DMA=y
diff --git a/arch/blackfin/configs/CM-BF533_defconfig b/arch/blackfin/configs/CM-BF533_defconfig
index 560890fe0d30..09deea44480b 100644
--- a/arch/blackfin/configs/CM-BF533_defconfig
+++ b/arch/blackfin/configs/CM-BF533_defconfig
@@ -39,7 +39,8 @@ CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_TASKSTATS is not set 39# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 40# CONFIG_UTS_NS is not set
41# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
42# CONFIG_IKCONFIG is not set 42CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y
43CONFIG_LOG_BUF_SHIFT=14 44CONFIG_LOG_BUF_SHIFT=14
44CONFIG_SYSFS_DEPRECATED=y 45CONFIG_SYSFS_DEPRECATED=y
45# CONFIG_RELAY is not set 46# CONFIG_RELAY is not set
@@ -291,7 +292,7 @@ CONFIG_C_AMBEN_ALL=y
291CONFIG_BANK_0=0x7BB0 292CONFIG_BANK_0=0x7BB0
292CONFIG_BANK_1=0x7BB0 293CONFIG_BANK_1=0x7BB0
293CONFIG_BANK_2=0x7BB0 294CONFIG_BANK_2=0x7BB0
294CONFIG_BANK_3=0xFFC3 295CONFIG_BANK_3=0xFFC2
295 296
296# 297#
297# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 298# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
@@ -617,8 +618,7 @@ CONFIG_SERIAL_CORE=y
617CONFIG_SERIAL_CORE_CONSOLE=y 618CONFIG_SERIAL_CORE_CONSOLE=y
618# CONFIG_SERIAL_BFIN_SPORT is not set 619# CONFIG_SERIAL_BFIN_SPORT is not set
619CONFIG_UNIX98_PTYS=y 620CONFIG_UNIX98_PTYS=y
620CONFIG_LEGACY_PTYS=y 621# CONFIG_LEGACY_PTYS is not set
621CONFIG_LEGACY_PTY_COUNT=256
622 622
623# 623#
624# CAN, the car bus and industrial fieldbus 624# CAN, the car bus and industrial fieldbus
@@ -778,7 +778,7 @@ CONFIG_FS_MBCACHE=y
778CONFIG_INOTIFY=y 778CONFIG_INOTIFY=y
779CONFIG_INOTIFY_USER=y 779CONFIG_INOTIFY_USER=y
780# CONFIG_QUOTA is not set 780# CONFIG_QUOTA is not set
781CONFIG_DNOTIFY=y 781# CONFIG_DNOTIFY is not set
782# CONFIG_AUTOFS_FS is not set 782# CONFIG_AUTOFS_FS is not set
783# CONFIG_AUTOFS4_FS is not set 783# CONFIG_AUTOFS4_FS is not set
784# CONFIG_FUSE_FS is not set 784# CONFIG_FUSE_FS is not set
@@ -866,11 +866,11 @@ CONFIG_MSDOS_PARTITION=y
866CONFIG_ENABLE_MUST_CHECK=y 866CONFIG_ENABLE_MUST_CHECK=y
867# CONFIG_MAGIC_SYSRQ is not set 867# CONFIG_MAGIC_SYSRQ is not set
868# CONFIG_UNUSED_SYMBOLS is not set 868# CONFIG_UNUSED_SYMBOLS is not set
869# CONFIG_DEBUG_FS is not set 869CONFIG_DEBUG_FS=y
870# CONFIG_HEADERS_CHECK is not set 870# CONFIG_HEADERS_CHECK is not set
871# CONFIG_DEBUG_KERNEL is not set 871# CONFIG_DEBUG_KERNEL is not set
872# CONFIG_DEBUG_BUGVERBOSE is not set 872# CONFIG_DEBUG_BUGVERBOSE is not set
873# CONFIG_DEBUG_MMRS is not set 873CONFIG_DEBUG_MMRS=y
874CONFIG_DEBUG_HUNT_FOR_ZERO=y 874CONFIG_DEBUG_HUNT_FOR_ZERO=y
875CONFIG_DEBUG_BFIN_HWTRACE_ON=y 875CONFIG_DEBUG_BFIN_HWTRACE_ON=y
876CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y 876CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
diff --git a/arch/blackfin/configs/CM-BF537E_defconfig b/arch/blackfin/configs/CM-BF537E_defconfig
index 9f66d2de1007..219fc345a5f5 100644
--- a/arch/blackfin/configs/CM-BF537E_defconfig
+++ b/arch/blackfin/configs/CM-BF537E_defconfig
@@ -39,7 +39,8 @@ CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_TASKSTATS is not set 39# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 40# CONFIG_UTS_NS is not set
41# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
42# CONFIG_IKCONFIG is not set 42CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y
43CONFIG_LOG_BUF_SHIFT=14 44CONFIG_LOG_BUF_SHIFT=14
44CONFIG_SYSFS_DEPRECATED=y 45CONFIG_SYSFS_DEPRECATED=y
45# CONFIG_RELAY is not set 46# CONFIG_RELAY is not set
@@ -299,7 +300,7 @@ CONFIG_C_AMBEN_ALL=y
299CONFIG_BANK_0=0x7BB0 300CONFIG_BANK_0=0x7BB0
300CONFIG_BANK_1=0x7BB0 301CONFIG_BANK_1=0x7BB0
301CONFIG_BANK_2=0x7BB0 302CONFIG_BANK_2=0x7BB0
302CONFIG_BANK_3=0xFFC3 303CONFIG_BANK_3=0xFFC2
303 304
304# 305#
305# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 306# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
@@ -351,7 +352,10 @@ CONFIG_INET=y
351# CONFIG_IP_MULTICAST is not set 352# CONFIG_IP_MULTICAST is not set
352# CONFIG_IP_ADVANCED_ROUTER is not set 353# CONFIG_IP_ADVANCED_ROUTER is not set
353CONFIG_IP_FIB_HASH=y 354CONFIG_IP_FIB_HASH=y
354# CONFIG_IP_PNP is not set 355CONFIG_IP_PNP=y
356# CONFIG_IP_PNP_DHCP is not set
357# CONFIG_IP_PNP_BOOTP is not set
358# CONFIG_IP_PNP_RARP is not set
355# CONFIG_NET_IPIP is not set 359# CONFIG_NET_IPIP is not set
356# CONFIG_NET_IPGRE is not set 360# CONFIG_NET_IPGRE is not set
357# CONFIG_ARPD is not set 361# CONFIG_ARPD is not set
@@ -645,8 +649,7 @@ CONFIG_SERIAL_CORE=y
645CONFIG_SERIAL_CORE_CONSOLE=y 649CONFIG_SERIAL_CORE_CONSOLE=y
646# CONFIG_SERIAL_BFIN_SPORT is not set 650# CONFIG_SERIAL_BFIN_SPORT is not set
647CONFIG_UNIX98_PTYS=y 651CONFIG_UNIX98_PTYS=y
648CONFIG_LEGACY_PTYS=y 652# CONFIG_LEGACY_PTYS is not set
649CONFIG_LEGACY_PTY_COUNT=256
650 653
651# 654#
652# CAN, the car bus and industrial fieldbus 655# CAN, the car bus and industrial fieldbus
@@ -806,7 +809,7 @@ CONFIG_FS_MBCACHE=y
806CONFIG_INOTIFY=y 809CONFIG_INOTIFY=y
807CONFIG_INOTIFY_USER=y 810CONFIG_INOTIFY_USER=y
808# CONFIG_QUOTA is not set 811# CONFIG_QUOTA is not set
809CONFIG_DNOTIFY=y 812# CONFIG_DNOTIFY is not set
810# CONFIG_AUTOFS_FS is not set 813# CONFIG_AUTOFS_FS is not set
811# CONFIG_AUTOFS4_FS is not set 814# CONFIG_AUTOFS4_FS is not set
812# CONFIG_FUSE_FS is not set 815# CONFIG_FUSE_FS is not set
@@ -894,12 +897,12 @@ CONFIG_MSDOS_PARTITION=y
894CONFIG_ENABLE_MUST_CHECK=y 897CONFIG_ENABLE_MUST_CHECK=y
895# CONFIG_MAGIC_SYSRQ is not set 898# CONFIG_MAGIC_SYSRQ is not set
896# CONFIG_UNUSED_SYMBOLS is not set 899# CONFIG_UNUSED_SYMBOLS is not set
897# CONFIG_DEBUG_FS is not set 900CONFIG_DEBUG_FS=y
898# CONFIG_HEADERS_CHECK is not set 901# CONFIG_HEADERS_CHECK is not set
899# CONFIG_DEBUG_KERNEL is not set 902# CONFIG_DEBUG_KERNEL is not set
900# CONFIG_DEBUG_BUGVERBOSE is not set 903# CONFIG_DEBUG_BUGVERBOSE is not set
901# CONFIG_DEBUG_MMRS is not set 904CONFIG_DEBUG_MMRS=y
902# CONFIG_DEBUG_HUNT_FOR_ZERO is not set 905CONFIG_DEBUG_HUNT_FOR_ZERO=y
903CONFIG_DEBUG_BFIN_HWTRACE_ON=y 906CONFIG_DEBUG_BFIN_HWTRACE_ON=y
904CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y 907CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
905# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set 908# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set
diff --git a/arch/blackfin/configs/CM-BF537U_defconfig b/arch/blackfin/configs/CM-BF537U_defconfig
index 2694d06c5bde..9873d586fc77 100644
--- a/arch/blackfin/configs/CM-BF537U_defconfig
+++ b/arch/blackfin/configs/CM-BF537U_defconfig
@@ -39,7 +39,8 @@ CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_TASKSTATS is not set 39# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 40# CONFIG_UTS_NS is not set
41# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
42# CONFIG_IKCONFIG is not set 42CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y
43CONFIG_LOG_BUF_SHIFT=14 44CONFIG_LOG_BUF_SHIFT=14
44CONFIG_SYSFS_DEPRECATED=y 45CONFIG_SYSFS_DEPRECATED=y
45# CONFIG_RELAY is not set 46# CONFIG_RELAY is not set
@@ -298,8 +299,8 @@ CONFIG_C_AMBEN_ALL=y
298# 299#
299CONFIG_BANK_0=0x7BB0 300CONFIG_BANK_0=0x7BB0
300CONFIG_BANK_1=0x7BB0 301CONFIG_BANK_1=0x7BB0
301CONFIG_BANK_2=0xFFC3 302CONFIG_BANK_2=0xFFC2
302CONFIG_BANK_3=0xFFC3 303CONFIG_BANK_3=0xFFC2
303 304
304# 305#
305# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 306# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
@@ -628,8 +629,7 @@ CONFIG_SERIAL_CORE=y
628CONFIG_SERIAL_CORE_CONSOLE=y 629CONFIG_SERIAL_CORE_CONSOLE=y
629# CONFIG_SERIAL_BFIN_SPORT is not set 630# CONFIG_SERIAL_BFIN_SPORT is not set
630CONFIG_UNIX98_PTYS=y 631CONFIG_UNIX98_PTYS=y
631CONFIG_LEGACY_PTYS=y 632# CONFIG_LEGACY_PTYS is not set
632CONFIG_LEGACY_PTY_COUNT=256
633 633
634# 634#
635# CAN, the car bus and industrial fieldbus 635# CAN, the car bus and industrial fieldbus
@@ -806,7 +806,7 @@ CONFIG_FS_MBCACHE=y
806CONFIG_INOTIFY=y 806CONFIG_INOTIFY=y
807CONFIG_INOTIFY_USER=y 807CONFIG_INOTIFY_USER=y
808# CONFIG_QUOTA is not set 808# CONFIG_QUOTA is not set
809CONFIG_DNOTIFY=y 809# CONFIG_DNOTIFY is not set
810# CONFIG_AUTOFS_FS is not set 810# CONFIG_AUTOFS_FS is not set
811# CONFIG_AUTOFS4_FS is not set 811# CONFIG_AUTOFS4_FS is not set
812# CONFIG_FUSE_FS is not set 812# CONFIG_FUSE_FS is not set
@@ -894,12 +894,12 @@ CONFIG_MSDOS_PARTITION=y
894CONFIG_ENABLE_MUST_CHECK=y 894CONFIG_ENABLE_MUST_CHECK=y
895# CONFIG_MAGIC_SYSRQ is not set 895# CONFIG_MAGIC_SYSRQ is not set
896# CONFIG_UNUSED_SYMBOLS is not set 896# CONFIG_UNUSED_SYMBOLS is not set
897# CONFIG_DEBUG_FS is not set 897CONFIG_DEBUG_FS=y
898# CONFIG_HEADERS_CHECK is not set 898# CONFIG_HEADERS_CHECK is not set
899# CONFIG_DEBUG_KERNEL is not set 899# CONFIG_DEBUG_KERNEL is not set
900# CONFIG_DEBUG_BUGVERBOSE is not set 900# CONFIG_DEBUG_BUGVERBOSE is not set
901# CONFIG_DEBUG_MMRS is not set 901CONFIG_DEBUG_MMRS=y
902# CONFIG_DEBUG_HUNT_FOR_ZERO is not set 902CONFIG_DEBUG_HUNT_FOR_ZERO=y
903CONFIG_DEBUG_BFIN_HWTRACE_ON=y 903CONFIG_DEBUG_BFIN_HWTRACE_ON=y
904CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y 904CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
905# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set 905# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set
diff --git a/arch/blackfin/configs/CM-BF548_defconfig b/arch/blackfin/configs/CM-BF548_defconfig
index 90207251c533..0e3605fdb7b0 100644
--- a/arch/blackfin/configs/CM-BF548_defconfig
+++ b/arch/blackfin/configs/CM-BF548_defconfig
@@ -363,7 +363,7 @@ CONFIG_C_AMBEN_ALL=y
363CONFIG_BANK_0=0x7BB0 363CONFIG_BANK_0=0x7BB0
364CONFIG_BANK_1=0x5554 364CONFIG_BANK_1=0x5554
365CONFIG_BANK_2=0x7BB0 365CONFIG_BANK_2=0x7BB0
366CONFIG_BANK_3=0x99B3 366CONFIG_BANK_3=0x99B2
367CONFIG_EBIU_MBSCTLVAL=0x0 367CONFIG_EBIU_MBSCTLVAL=0x0
368CONFIG_EBIU_MODEVAL=0x1 368CONFIG_EBIU_MODEVAL=0x1
369CONFIG_EBIU_FCTLVAL=0x6 369CONFIG_EBIU_FCTLVAL=0x6
@@ -744,8 +744,8 @@ CONFIG_BFIN_OTP=y
744# 744#
745CONFIG_SERIAL_BFIN=y 745CONFIG_SERIAL_BFIN=y
746CONFIG_SERIAL_BFIN_CONSOLE=y 746CONFIG_SERIAL_BFIN_CONSOLE=y
747# CONFIG_SERIAL_BFIN_DMA is not set 747CONFIG_SERIAL_BFIN_DMA=y
748CONFIG_SERIAL_BFIN_PIO=y 748# CONFIG_SERIAL_BFIN_PIO is not set
749# CONFIG_SERIAL_BFIN_UART0 is not set 749# CONFIG_SERIAL_BFIN_UART0 is not set
750CONFIG_SERIAL_BFIN_UART1=y 750CONFIG_SERIAL_BFIN_UART1=y
751# CONFIG_BFIN_UART1_CTSRTS is not set 751# CONFIG_BFIN_UART1_CTSRTS is not set
@@ -1149,7 +1149,7 @@ CONFIG_RTC_DRV_BFIN=y
1149CONFIG_INOTIFY=y 1149CONFIG_INOTIFY=y
1150CONFIG_INOTIFY_USER=y 1150CONFIG_INOTIFY_USER=y
1151# CONFIG_QUOTA is not set 1151# CONFIG_QUOTA is not set
1152CONFIG_DNOTIFY=y 1152# CONFIG_DNOTIFY is not set
1153# CONFIG_AUTOFS_FS is not set 1153# CONFIG_AUTOFS_FS is not set
1154# CONFIG_AUTOFS4_FS is not set 1154# CONFIG_AUTOFS4_FS is not set
1155# CONFIG_FUSE_FS is not set 1155# CONFIG_FUSE_FS is not set
@@ -1332,7 +1332,7 @@ CONFIG_DEBUG_FS=y
1332# CONFIG_DEBUG_KERNEL is not set 1332# CONFIG_DEBUG_KERNEL is not set
1333# CONFIG_DEBUG_BUGVERBOSE is not set 1333# CONFIG_DEBUG_BUGVERBOSE is not set
1334# CONFIG_SAMPLES is not set 1334# CONFIG_SAMPLES is not set
1335# CONFIG_DEBUG_MMRS is not set 1335CONFIG_DEBUG_MMRS=y
1336CONFIG_DEBUG_HUNT_FOR_ZERO=y 1336CONFIG_DEBUG_HUNT_FOR_ZERO=y
1337CONFIG_DEBUG_BFIN_HWTRACE_ON=y 1337CONFIG_DEBUG_BFIN_HWTRACE_ON=y
1338CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y 1338CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
diff --git a/arch/blackfin/configs/CM-BF561_defconfig b/arch/blackfin/configs/CM-BF561_defconfig
index daf00906c1ef..59c7cdbee904 100644
--- a/arch/blackfin/configs/CM-BF561_defconfig
+++ b/arch/blackfin/configs/CM-BF561_defconfig
@@ -35,7 +35,8 @@ CONFIG_SYSVIPC_SYSCTL=y
35# CONFIG_USER_NS is not set 35# CONFIG_USER_NS is not set
36# CONFIG_PID_NS is not set 36# CONFIG_PID_NS is not set
37# CONFIG_AUDIT is not set 37# CONFIG_AUDIT is not set
38# CONFIG_IKCONFIG is not set 38CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y
39CONFIG_LOG_BUF_SHIFT=14 40CONFIG_LOG_BUF_SHIFT=14
40# CONFIG_CGROUPS is not set 41# CONFIG_CGROUPS is not set
41CONFIG_FAIR_GROUP_SCHED=y 42CONFIG_FAIR_GROUP_SCHED=y
@@ -341,7 +342,7 @@ CONFIG_C_AMBEN_ALL=y
341CONFIG_BANK_0=0x7BB0 342CONFIG_BANK_0=0x7BB0
342CONFIG_BANK_1=0x7BB0 343CONFIG_BANK_1=0x7BB0
343CONFIG_BANK_2=0x7BB0 344CONFIG_BANK_2=0x7BB0
344CONFIG_BANK_3=0xFFC3 345CONFIG_BANK_3=0xFFC2
345 346
346# 347#
347# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 348# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
@@ -631,8 +632,7 @@ CONFIG_SERIAL_CORE=y
631CONFIG_SERIAL_CORE_CONSOLE=y 632CONFIG_SERIAL_CORE_CONSOLE=y
632# CONFIG_SERIAL_BFIN_SPORT is not set 633# CONFIG_SERIAL_BFIN_SPORT is not set
633CONFIG_UNIX98_PTYS=y 634CONFIG_UNIX98_PTYS=y
634CONFIG_LEGACY_PTYS=y 635# CONFIG_LEGACY_PTYS is not set
635CONFIG_LEGACY_PTY_COUNT=256
636 636
637# 637#
638# CAN, the car bus and industrial fieldbus 638# CAN, the car bus and industrial fieldbus
@@ -756,7 +756,7 @@ CONFIG_FS_MBCACHE=y
756CONFIG_INOTIFY=y 756CONFIG_INOTIFY=y
757CONFIG_INOTIFY_USER=y 757CONFIG_INOTIFY_USER=y
758# CONFIG_QUOTA is not set 758# CONFIG_QUOTA is not set
759CONFIG_DNOTIFY=y 759# CONFIG_DNOTIFY is not set
760# CONFIG_AUTOFS_FS is not set 760# CONFIG_AUTOFS_FS is not set
761# CONFIG_AUTOFS4_FS is not set 761# CONFIG_AUTOFS4_FS is not set
762# CONFIG_FUSE_FS is not set 762# CONFIG_FUSE_FS is not set
@@ -830,12 +830,12 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
830CONFIG_ENABLE_MUST_CHECK=y 830CONFIG_ENABLE_MUST_CHECK=y
831# CONFIG_MAGIC_SYSRQ is not set 831# CONFIG_MAGIC_SYSRQ is not set
832# CONFIG_UNUSED_SYMBOLS is not set 832# CONFIG_UNUSED_SYMBOLS is not set
833# CONFIG_DEBUG_FS is not set 833CONFIG_DEBUG_FS=y
834# CONFIG_HEADERS_CHECK is not set 834# CONFIG_HEADERS_CHECK is not set
835# CONFIG_DEBUG_KERNEL is not set 835# CONFIG_DEBUG_KERNEL is not set
836# CONFIG_DEBUG_BUGVERBOSE is not set 836# CONFIG_DEBUG_BUGVERBOSE is not set
837# CONFIG_SAMPLES is not set 837# CONFIG_SAMPLES is not set
838# CONFIG_DEBUG_MMRS is not set 838CONFIG_DEBUG_MMRS=y
839CONFIG_DEBUG_HUNT_FOR_ZERO=y 839CONFIG_DEBUG_HUNT_FOR_ZERO=y
840CONFIG_DEBUG_BFIN_HWTRACE_ON=y 840CONFIG_DEBUG_BFIN_HWTRACE_ON=y
841CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y 841CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig
index 679c7483ea71..ba0bee90b7e1 100644
--- a/arch/blackfin/configs/H8606_defconfig
+++ b/arch/blackfin/configs/H8606_defconfig
@@ -967,7 +967,7 @@ CONFIG_FS_MBCACHE=y
967CONFIG_INOTIFY=y 967CONFIG_INOTIFY=y
968CONFIG_INOTIFY_USER=y 968CONFIG_INOTIFY_USER=y
969# CONFIG_QUOTA is not set 969# CONFIG_QUOTA is not set
970CONFIG_DNOTIFY=y 970# CONFIG_DNOTIFY is not set
971# CONFIG_AUTOFS_FS is not set 971# CONFIG_AUTOFS_FS is not set
972# CONFIG_AUTOFS4_FS is not set 972# CONFIG_AUTOFS4_FS is not set
973# CONFIG_FUSE_FS is not set 973# CONFIG_FUSE_FS is not set
diff --git a/arch/blackfin/configs/IP0X_defconfig b/arch/blackfin/configs/IP0X_defconfig
index 4384a670a8b8..285d2241df26 100644
--- a/arch/blackfin/configs/IP0X_defconfig
+++ b/arch/blackfin/configs/IP0X_defconfig
@@ -1066,7 +1066,7 @@ CONFIG_FS_MBCACHE=y
1066CONFIG_INOTIFY=y 1066CONFIG_INOTIFY=y
1067CONFIG_INOTIFY_USER=y 1067CONFIG_INOTIFY_USER=y
1068# CONFIG_QUOTA is not set 1068# CONFIG_QUOTA is not set
1069CONFIG_DNOTIFY=y 1069# CONFIG_DNOTIFY is not set
1070# CONFIG_AUTOFS_FS is not set 1070# CONFIG_AUTOFS_FS is not set
1071# CONFIG_AUTOFS4_FS is not set 1071# CONFIG_AUTOFS4_FS is not set
1072# CONFIG_FUSE_FS is not set 1072# CONFIG_FUSE_FS is not set
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
index 87622ad9df47..bffca7de65d4 100644
--- a/arch/blackfin/configs/PNAV-10_defconfig
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -294,7 +294,7 @@ CONFIG_C_AMBEN_ALL=y
294CONFIG_BANK_0=0x7BB0 294CONFIG_BANK_0=0x7BB0
295CONFIG_BANK_1=0x33B0 295CONFIG_BANK_1=0x33B0
296CONFIG_BANK_2=0x33B0 296CONFIG_BANK_2=0x33B0
297CONFIG_BANK_3=0x99B3 297CONFIG_BANK_3=0x99B2
298 298
299# 299#
300# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 300# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
@@ -1080,7 +1080,7 @@ CONFIG_FS_MBCACHE=y
1080CONFIG_INOTIFY=y 1080CONFIG_INOTIFY=y
1081CONFIG_INOTIFY_USER=y 1081CONFIG_INOTIFY_USER=y
1082# CONFIG_QUOTA is not set 1082# CONFIG_QUOTA is not set
1083CONFIG_DNOTIFY=y 1083# CONFIG_DNOTIFY is not set
1084# CONFIG_AUTOFS_FS is not set 1084# CONFIG_AUTOFS_FS is not set
1085# CONFIG_AUTOFS4_FS is not set 1085# CONFIG_AUTOFS4_FS is not set
1086# CONFIG_FUSE_FS is not set 1086# CONFIG_FUSE_FS is not set
diff --git a/arch/blackfin/configs/SRV1_defconfig b/arch/blackfin/configs/SRV1_defconfig
index 951ea0412576..b1309f878fcd 100644
--- a/arch/blackfin/configs/SRV1_defconfig
+++ b/arch/blackfin/configs/SRV1_defconfig
@@ -1067,7 +1067,7 @@ CONFIG_FS_MBCACHE=y
1067CONFIG_INOTIFY=y 1067CONFIG_INOTIFY=y
1068CONFIG_INOTIFY_USER=y 1068CONFIG_INOTIFY_USER=y
1069# CONFIG_QUOTA is not set 1069# CONFIG_QUOTA is not set
1070CONFIG_DNOTIFY=y 1070# CONFIG_DNOTIFY is not set
1071# CONFIG_AUTOFS_FS is not set 1071# CONFIG_AUTOFS_FS is not set
1072# CONFIG_AUTOFS4_FS is not set 1072# CONFIG_AUTOFS4_FS is not set
1073# CONFIG_FUSE_FS is not set 1073# CONFIG_FUSE_FS is not set
diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile
index 6140cd69c782..606adc78aa85 100644
--- a/arch/blackfin/kernel/Makefile
+++ b/arch/blackfin/kernel/Makefile
@@ -18,6 +18,5 @@ endif
18obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o 18obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o
19obj-$(CONFIG_MODULES) += module.o 19obj-$(CONFIG_MODULES) += module.o
20obj-$(CONFIG_BFIN_DMA_5XX) += bfin_dma_5xx.o 20obj-$(CONFIG_BFIN_DMA_5XX) += bfin_dma_5xx.o
21obj-$(CONFIG_DUAL_CORE_TEST_MODULE) += dualcore_test.o
22obj-$(CONFIG_KGDB) += kgdb.o 21obj-$(CONFIG_KGDB) += kgdb.o
23obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 22obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index d54f19085f37..93229b3d6e3e 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -472,6 +472,40 @@ unsigned long get_dma_curr_addr(unsigned int channel)
472} 472}
473EXPORT_SYMBOL(get_dma_curr_addr); 473EXPORT_SYMBOL(get_dma_curr_addr);
474 474
475#ifdef CONFIG_PM
476int blackfin_dma_suspend(void)
477{
478 int i;
479
480#ifdef CONFIG_BF561 /* IMDMA channels doesn't have a PERIPHERAL_MAP */
481 for (i = 0; i <= CH_MEM_STREAM3_SRC; i++) {
482#else
483 for (i = 0; i < MAX_BLACKFIN_DMA_CHANNEL; i++) {
484#endif
485 if (dma_ch[i].chan_status == DMA_CHANNEL_ENABLED) {
486 printk(KERN_ERR "DMA Channel %d failed to suspend\n", i);
487 return -EBUSY;
488 }
489
490 dma_ch[i].saved_peripheral_map = dma_ch[i].regs->peripheral_map;
491 }
492
493 return 0;
494}
495
496void blackfin_dma_resume(void)
497{
498 int i;
499
500#ifdef CONFIG_BF561 /* IMDMA channels doesn't have a PERIPHERAL_MAP */
501 for (i = 0; i <= CH_MEM_STREAM3_SRC; i++)
502#else
503 for (i = 0; i < MAX_BLACKFIN_DMA_CHANNEL; i++)
504#endif
505 dma_ch[i].regs->peripheral_map = dma_ch[i].saved_peripheral_map;
506}
507#endif
508
475static void *__dma_memcpy(void *dest, const void *src, size_t size) 509static void *__dma_memcpy(void *dest, const void *src, size_t size)
476{ 510{
477 int direction; /* 1 - address decrease, 0 - address increase */ 511 int direction; /* 1 - address decrease, 0 - address increase */
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c
index b6d89d1644cc..ecbd141e0ef2 100644
--- a/arch/blackfin/kernel/bfin_gpio.c
+++ b/arch/blackfin/kernel/bfin_gpio.c
@@ -186,7 +186,10 @@ static struct str_ident {
186 char name[RESOURCE_LABEL_SIZE]; 186 char name[RESOURCE_LABEL_SIZE];
187} str_ident[MAX_RESOURCES]; 187} str_ident[MAX_RESOURCES];
188 188
189#if defined(CONFIG_PM) && !defined(CONFIG_BF54x) 189#if defined(CONFIG_PM)
190#if defined(CONFIG_BF54x)
191static struct gpio_port_s gpio_bank_saved[gpio_bank(MAX_BLACKFIN_GPIOS)];
192#else
190static unsigned short wakeup_map[gpio_bank(MAX_BLACKFIN_GPIOS)]; 193static unsigned short wakeup_map[gpio_bank(MAX_BLACKFIN_GPIOS)];
191static unsigned char wakeup_flags_map[MAX_BLACKFIN_GPIOS]; 194static unsigned char wakeup_flags_map[MAX_BLACKFIN_GPIOS];
192static struct gpio_port_s gpio_bank_saved[gpio_bank(MAX_BLACKFIN_GPIOS)]; 195static struct gpio_port_s gpio_bank_saved[gpio_bank(MAX_BLACKFIN_GPIOS)];
@@ -206,7 +209,7 @@ static unsigned int sic_iwr_irqs[gpio_bank(MAX_BLACKFIN_GPIOS)] = {IRQ_PORTF_INT
206#ifdef BF561_FAMILY 209#ifdef BF561_FAMILY
207static unsigned int sic_iwr_irqs[gpio_bank(MAX_BLACKFIN_GPIOS)] = {IRQ_PROG0_INTB, IRQ_PROG1_INTB, IRQ_PROG2_INTB}; 210static unsigned int sic_iwr_irqs[gpio_bank(MAX_BLACKFIN_GPIOS)] = {IRQ_PROG0_INTB, IRQ_PROG1_INTB, IRQ_PROG2_INTB};
208#endif 211#endif
209 212#endif
210#endif /* CONFIG_PM */ 213#endif /* CONFIG_PM */
211 214
212#if defined(BF548_FAMILY) 215#if defined(BF548_FAMILY)
@@ -667,7 +670,7 @@ static int bfin_gpio_wakeup_type(unsigned gpio, unsigned char type)
667 return 0; 670 return 0;
668} 671}
669 672
670u32 bfin_pm_setup(void) 673u32 bfin_pm_standby_setup(void)
671{ 674{
672 u16 bank, mask, i, gpio; 675 u16 bank, mask, i, gpio;
673 676
@@ -679,7 +682,7 @@ u32 bfin_pm_setup(void)
679 gpio_bankb[bank]->maskb = 0; 682 gpio_bankb[bank]->maskb = 0;
680 683
681 if (mask) { 684 if (mask) {
682#ifdef BF537_FAMILY 685#if defined(BF527_FAMILY) || defined(BF537_FAMILY)
683 gpio_bank_saved[bank].fer = *port_fer[bank]; 686 gpio_bank_saved[bank].fer = *port_fer[bank];
684#endif 687#endif
685 gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen; 688 gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen;
@@ -715,7 +718,7 @@ u32 bfin_pm_setup(void)
715 return 0; 718 return 0;
716} 719}
717 720
718void bfin_pm_restore(void) 721void bfin_pm_standby_restore(void)
719{ 722{
720 u16 bank, mask, i; 723 u16 bank, mask, i;
721 724
@@ -724,7 +727,7 @@ void bfin_pm_restore(void)
724 bank = gpio_bank(i); 727 bank = gpio_bank(i);
725 728
726 if (mask) { 729 if (mask) {
727#ifdef BF537_FAMILY 730#if defined(BF527_FAMILY) || defined(BF537_FAMILY)
728 *port_fer[bank] = gpio_bank_saved[bank].fer; 731 *port_fer[bank] = gpio_bank_saved[bank].fer;
729#endif 732#endif
730 gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen; 733 gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen;
@@ -743,8 +746,111 @@ void bfin_pm_restore(void)
743 AWA_DUMMY_READ(maskb); 746 AWA_DUMMY_READ(maskb);
744} 747}
745 748
749void bfin_gpio_pm_hibernate_suspend(void)
750{
751 int i, bank;
752
753 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
754 bank = gpio_bank(i);
755
756#if defined(BF527_FAMILY) || defined(BF537_FAMILY)
757 gpio_bank_saved[bank].fer = *port_fer[bank];
758#ifdef BF527_FAMILY
759 gpio_bank_saved[bank].mux = *port_mux[bank];
760#else
761 if (bank == 0)
762 gpio_bank_saved[bank].mux = bfin_read_PORT_MUX();
763#endif
764#endif
765 gpio_bank_saved[bank].data = gpio_bankb[bank]->data;
766 gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen;
767 gpio_bank_saved[bank].polar = gpio_bankb[bank]->polar;
768 gpio_bank_saved[bank].dir = gpio_bankb[bank]->dir;
769 gpio_bank_saved[bank].edge = gpio_bankb[bank]->edge;
770 gpio_bank_saved[bank].both = gpio_bankb[bank]->both;
771 gpio_bank_saved[bank].maska = gpio_bankb[bank]->maska;
772 }
773
774 AWA_DUMMY_READ(maska);
775}
776
777void bfin_gpio_pm_hibernate_restore(void)
778{
779 int i, bank;
780
781 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
782 bank = gpio_bank(i);
783
784#if defined(BF527_FAMILY) || defined(BF537_FAMILY)
785#ifdef BF527_FAMILY
786 *port_mux[bank] = gpio_bank_saved[bank].mux;
787#else
788 if (bank == 0)
789 bfin_write_PORT_MUX(gpio_bank_saved[bank].mux);
790#endif
791 *port_fer[bank] = gpio_bank_saved[bank].fer;
792#endif
793 gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen;
794 gpio_bankb[bank]->dir = gpio_bank_saved[bank].dir;
795 gpio_bankb[bank]->polar = gpio_bank_saved[bank].polar;
796 gpio_bankb[bank]->edge = gpio_bank_saved[bank].edge;
797 gpio_bankb[bank]->both = gpio_bank_saved[bank].both;
798
799 gpio_bankb[bank]->data_set = gpio_bank_saved[bank].data
800 | gpio_bank_saved[bank].dir;
801
802 gpio_bankb[bank]->maska = gpio_bank_saved[bank].maska;
803 }
804 AWA_DUMMY_READ(maska);
805}
806
807
746#endif 808#endif
747#else /* BF548_FAMILY */ 809#else /* BF548_FAMILY */
810#ifdef CONFIG_PM
811
812u32 bfin_pm_standby_setup(void)
813{
814 return 0;
815}
816
817void bfin_pm_standby_restore(void)
818{
819
820}
821
822void bfin_gpio_pm_hibernate_suspend(void)
823{
824 int i, bank;
825
826 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
827 bank = gpio_bank(i);
828
829 gpio_bank_saved[bank].fer = gpio_array[bank]->port_fer;
830 gpio_bank_saved[bank].mux = gpio_array[bank]->port_mux;
831 gpio_bank_saved[bank].data = gpio_array[bank]->port_data;
832 gpio_bank_saved[bank].data = gpio_array[bank]->port_data;
833 gpio_bank_saved[bank].inen = gpio_array[bank]->port_inen;
834 gpio_bank_saved[bank].dir = gpio_array[bank]->port_dir_set;
835 }
836}
837
838void bfin_gpio_pm_hibernate_restore(void)
839{
840 int i, bank;
841
842 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
843 bank = gpio_bank(i);
844
845 gpio_array[bank]->port_mux = gpio_bank_saved[bank].mux;
846 gpio_array[bank]->port_fer = gpio_bank_saved[bank].fer;
847 gpio_array[bank]->port_inen = gpio_bank_saved[bank].inen;
848 gpio_array[bank]->port_dir_set = gpio_bank_saved[bank].dir;
849 gpio_array[bank]->port_set = gpio_bank_saved[bank].data
850 | gpio_bank_saved[bank].dir;
851 }
852}
853#endif
748 854
749unsigned short get_gpio_dir(unsigned gpio) 855unsigned short get_gpio_dir(unsigned gpio)
750{ 856{
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbhdlr.S b/arch/blackfin/kernel/cplb-nompu/cplbhdlr.S
index 2788532de72b..ecbabc0a1fed 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbhdlr.S
+++ b/arch/blackfin/kernel/cplb-nompu/cplbhdlr.S
@@ -125,6 +125,6 @@ ENTRY(__cplb_hdr)
125 SP += -12; 125 SP += -12;
126 call _panic_cplb_error; 126 call _panic_cplb_error;
127 SP += 12; 127 SP += 12;
128 JUMP _handle_bad_cplb; 128 JUMP.L _handle_bad_cplb;
129 129
130ENDPROC(__cplb_hdr) 130ENDPROC(__cplb_hdr)
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
index 6be0c50122e8..224e7cc30bc5 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
@@ -26,11 +26,7 @@
26#include <asm/cplb.h> 26#include <asm/cplb.h>
27#include <asm/cplbinit.h> 27#include <asm/cplbinit.h>
28 28
29#ifdef CONFIG_MAX_MEM_SIZE 29#define CPLB_MEM CONFIG_MAX_MEM_SIZE
30# define CPLB_MEM CONFIG_MAX_MEM_SIZE
31#else
32# define CPLB_MEM CONFIG_MEM_SIZE
33#endif
34 30
35/* 31/*
36* Number of required data CPLB switchtable entries 32* Number of required data CPLB switchtable entries
diff --git a/arch/blackfin/kernel/dualcore_test.c b/arch/blackfin/kernel/dualcore_test.c
deleted file mode 100644
index 0fcba74840b7..000000000000
--- a/arch/blackfin/kernel/dualcore_test.c
+++ /dev/null
@@ -1,49 +0,0 @@
1/*
2 * File: arch/blackfin/kernel/dualcore_test.c
3 * Based on:
4 * Author:
5 *
6 * Created:
7 * Description: Small test code for CoreB on a BF561
8 *
9 * Modified:
10 * Copyright 2004-2006 Analog Devices Inc.
11 *
12 * Bugs: Enter bugs at http://blackfin.uclinux.org/
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 2 of the License, or
17 * (at your option) any later version.
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, see the file COPYING, or write
26 * to the Free Software Foundation, Inc.,
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */
29
30#include <linux/init.h>
31#include <linux/module.h>
32
33static int *testarg = (int *)0xfeb00000;
34
35static int test_init(void)
36{
37 *testarg = 1;
38 printk(KERN_INFO "Dual core test module inserted: set testarg = [%d]\n @ [%p]\n",
39 *testarg, testarg);
40 return 0;
41}
42
43static void test_exit(void)
44{
45 printk(KERN_INFO "Dual core test module removed: testarg = [%d]\n", *testarg);
46}
47
48module_init(test_init);
49module_exit(test_exit);
diff --git a/arch/blackfin/kernel/entry.S b/arch/blackfin/kernel/entry.S
index 65f4e67a65c4..31bd9bf3efae 100644
--- a/arch/blackfin/kernel/entry.S
+++ b/arch/blackfin/kernel/entry.S
@@ -64,6 +64,11 @@ ENDPROC(_ret_from_fork)
64 64
65ENTRY(_sys_fork) 65ENTRY(_sys_fork)
66 r0 = -EINVAL; 66 r0 = -EINVAL;
67#if (ANOMALY_05000371)
68 nop;
69 nop;
70 nop;
71#endif
67 rts; 72 rts;
68ENDPROC(_sys_fork) 73ENDPROC(_sys_fork)
69 74
diff --git a/arch/blackfin/kernel/kgdb.c b/arch/blackfin/kernel/kgdb.c
index a9c15515bfd7..a1f9641a6425 100644
--- a/arch/blackfin/kernel/kgdb.c
+++ b/arch/blackfin/kernel/kgdb.c
@@ -203,6 +203,8 @@ struct hw_breakpoint {
203 203
204int kgdb_arch_init(void) 204int kgdb_arch_init(void)
205{ 205{
206 debugger_step = 0;
207
206 kgdb_remove_all_hw_break(); 208 kgdb_remove_all_hw_break();
207 return 0; 209 return 0;
208} 210}
@@ -368,6 +370,7 @@ int kgdb_arch_handle_exception(int exceptionVector, int signo,
368 char *ptr; 370 char *ptr;
369 int newPC; 371 int newPC;
370 int wp_status; 372 int wp_status;
373 int i;
371 374
372 switch (remcom_in_buffer[0]) { 375 switch (remcom_in_buffer[0]) {
373 case 'c': 376 case 'c':
@@ -392,7 +395,18 @@ int kgdb_arch_handle_exception(int exceptionVector, int signo,
392 /* set the trace bit if we're stepping */ 395 /* set the trace bit if we're stepping */
393 if (remcom_in_buffer[0] == 's') { 396 if (remcom_in_buffer[0] == 's') {
394 linux_regs->syscfg |= 0x1; 397 linux_regs->syscfg |= 0x1;
395 debugger_step = 1; 398 debugger_step = linux_regs->ipend;
399 debugger_step >>= 6;
400 for (i = 10; i > 0; i--, debugger_step >>= 1)
401 if (debugger_step & 1)
402 break;
403 /* i indicate event priority of current stopped instruction
404 * user space instruction is 0, IVG15 is 1, IVTMR is 10.
405 * debugger_step > 0 means in single step mode
406 */
407 debugger_step = i + 1;
408 } else {
409 debugger_step = 0;
396 } 410 }
397 411
398 wp_status = bfin_read_WPSTAT(); 412 wp_status = bfin_read_WPSTAT();
diff --git a/arch/blackfin/kernel/module.c b/arch/blackfin/kernel/module.c
index 14a42848f37f..e1bebc80a5bf 100644
--- a/arch/blackfin/kernel/module.c
+++ b/arch/blackfin/kernel/module.c
@@ -173,7 +173,7 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
173 for (s = sechdrs; s < sechdrs_end; ++s) { 173 for (s = sechdrs; s < sechdrs_end; ++s) {
174 if ((strcmp(".l1.text", secstrings + s->sh_name) == 0) || 174 if ((strcmp(".l1.text", secstrings + s->sh_name) == 0) ||
175 ((strcmp(".text", secstrings + s->sh_name) == 0) && 175 ((strcmp(".text", secstrings + s->sh_name) == 0) &&
176 (hdr->e_flags & FLG_CODE_IN_L1) && (s->sh_size > 0))) { 176 (hdr->e_flags & EF_BFIN_CODE_IN_L1) && (s->sh_size > 0))) {
177 dest = l1_inst_sram_alloc(s->sh_size); 177 dest = l1_inst_sram_alloc(s->sh_size);
178 mod->arch.text_l1 = dest; 178 mod->arch.text_l1 = dest;
179 if (dest == NULL) { 179 if (dest == NULL) {
@@ -188,7 +188,7 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
188 } 188 }
189 if ((strcmp(".l1.data", secstrings + s->sh_name) == 0) || 189 if ((strcmp(".l1.data", secstrings + s->sh_name) == 0) ||
190 ((strcmp(".data", secstrings + s->sh_name) == 0) && 190 ((strcmp(".data", secstrings + s->sh_name) == 0) &&
191 (hdr->e_flags & FLG_DATA_IN_L1) && (s->sh_size > 0))) { 191 (hdr->e_flags & EF_BFIN_DATA_IN_L1) && (s->sh_size > 0))) {
192 dest = l1_data_sram_alloc(s->sh_size); 192 dest = l1_data_sram_alloc(s->sh_size);
193 mod->arch.data_a_l1 = dest; 193 mod->arch.data_a_l1 = dest;
194 if (dest == NULL) { 194 if (dest == NULL) {
@@ -203,7 +203,7 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
203 } 203 }
204 if (strcmp(".l1.bss", secstrings + s->sh_name) == 0 || 204 if (strcmp(".l1.bss", secstrings + s->sh_name) == 0 ||
205 ((strcmp(".bss", secstrings + s->sh_name) == 0) && 205 ((strcmp(".bss", secstrings + s->sh_name) == 0) &&
206 (hdr->e_flags & FLG_DATA_IN_L1) && (s->sh_size > 0))) { 206 (hdr->e_flags & EF_BFIN_DATA_IN_L1) && (s->sh_size > 0))) {
207 dest = l1_data_sram_alloc(s->sh_size); 207 dest = l1_data_sram_alloc(s->sh_size);
208 mod->arch.bss_a_l1 = dest; 208 mod->arch.bss_a_l1 = dest;
209 if (dest == NULL) { 209 if (dest == NULL) {
@@ -242,6 +242,51 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
242 s->sh_flags &= ~SHF_ALLOC; 242 s->sh_flags &= ~SHF_ALLOC;
243 s->sh_addr = (unsigned long)dest; 243 s->sh_addr = (unsigned long)dest;
244 } 244 }
245 if ((strcmp(".l2.text", secstrings + s->sh_name) == 0) ||
246 ((strcmp(".text", secstrings + s->sh_name) == 0) &&
247 (hdr->e_flags & EF_BFIN_CODE_IN_L2) && (s->sh_size > 0))) {
248 dest = l2_sram_alloc(s->sh_size);
249 mod->arch.text_l2 = dest;
250 if (dest == NULL) {
251 printk(KERN_ERR
252 "module %s: L2 SRAM allocation failed\n",
253 mod->name);
254 return -1;
255 }
256 memcpy(dest, (void *)s->sh_addr, s->sh_size);
257 s->sh_flags &= ~SHF_ALLOC;
258 s->sh_addr = (unsigned long)dest;
259 }
260 if ((strcmp(".l2.data", secstrings + s->sh_name) == 0) ||
261 ((strcmp(".data", secstrings + s->sh_name) == 0) &&
262 (hdr->e_flags & EF_BFIN_DATA_IN_L2) && (s->sh_size > 0))) {
263 dest = l2_sram_alloc(s->sh_size);
264 mod->arch.data_l2 = dest;
265 if (dest == NULL) {
266 printk(KERN_ERR
267 "module %s: L2 SRAM allocation failed\n",
268 mod->name);
269 return -1;
270 }
271 memcpy(dest, (void *)s->sh_addr, s->sh_size);
272 s->sh_flags &= ~SHF_ALLOC;
273 s->sh_addr = (unsigned long)dest;
274 }
275 if (strcmp(".l2.bss", secstrings + s->sh_name) == 0 ||
276 ((strcmp(".bss", secstrings + s->sh_name) == 0) &&
277 (hdr->e_flags & EF_BFIN_DATA_IN_L2) && (s->sh_size > 0))) {
278 dest = l2_sram_alloc(s->sh_size);
279 mod->arch.bss_l2 = dest;
280 if (dest == NULL) {
281 printk(KERN_ERR
282 "module %s: L2 SRAM allocation failed\n",
283 mod->name);
284 return -1;
285 }
286 memset(dest, 0, s->sh_size);
287 s->sh_flags &= ~SHF_ALLOC;
288 s->sh_addr = (unsigned long)dest;
289 }
245 } 290 }
246 return 0; 291 return 0;
247} 292}
@@ -411,9 +456,10 @@ module_finalize(const Elf_Ehdr * hdr,
411 continue; 456 continue;
412 457
413 if ((sechdrs[i].sh_type == SHT_RELA) && 458 if ((sechdrs[i].sh_type == SHT_RELA) &&
414 ((strcmp(".rela.l1.text", secstrings + sechdrs[i].sh_name) == 0) || 459 ((strcmp(".rela.l2.text", secstrings + sechdrs[i].sh_name) == 0) ||
460 (strcmp(".rela.l1.text", secstrings + sechdrs[i].sh_name) == 0) ||
415 ((strcmp(".rela.text", secstrings + sechdrs[i].sh_name) == 0) && 461 ((strcmp(".rela.text", secstrings + sechdrs[i].sh_name) == 0) &&
416 (hdr->e_flags & FLG_CODE_IN_L1)))) { 462 (hdr->e_flags & (EF_BFIN_CODE_IN_L1|EF_BFIN_CODE_IN_L2))))) {
417 apply_relocate_add((Elf_Shdr *) sechdrs, strtab, 463 apply_relocate_add((Elf_Shdr *) sechdrs, strtab,
418 symindex, i, mod); 464 symindex, i, mod);
419 } 465 }
@@ -423,14 +469,12 @@ module_finalize(const Elf_Ehdr * hdr,
423 469
424void module_arch_cleanup(struct module *mod) 470void module_arch_cleanup(struct module *mod)
425{ 471{
426 if (mod->arch.text_l1) 472 l1_inst_sram_free(mod->arch.text_l1);
427 l1_inst_sram_free((void *)mod->arch.text_l1); 473 l1_data_A_sram_free(mod->arch.data_a_l1);
428 if (mod->arch.data_a_l1) 474 l1_data_A_sram_free(mod->arch.bss_a_l1);
429 l1_data_sram_free((void *)mod->arch.data_a_l1); 475 l1_data_B_sram_free(mod->arch.data_b_l1);
430 if (mod->arch.bss_a_l1) 476 l1_data_B_sram_free(mod->arch.bss_b_l1);
431 l1_data_sram_free((void *)mod->arch.bss_a_l1); 477 l2_sram_free(mod->arch.text_l2);
432 if (mod->arch.data_b_l1) 478 l2_sram_free(mod->arch.data_l2);
433 l1_data_B_sram_free((void *)mod->arch.data_b_l1); 479 l2_sram_free(mod->arch.bss_l2);
434 if (mod->arch.bss_b_l1)
435 l1_data_B_sram_free((void *)mod->arch.bss_b_l1);
436} 480}
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c
index f51ab088098e..bf1a51d8e608 100644
--- a/arch/blackfin/kernel/ptrace.c
+++ b/arch/blackfin/kernel/ptrace.c
@@ -220,6 +220,20 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
220 copied = sizeof(tmp); 220 copied = sizeof(tmp);
221 } else 221 } else
222#endif 222#endif
223#if L1_DATA_A_LENGTH != 0
224 if (addr + add >= L1_DATA_A_START
225 && addr + add + sizeof(tmp) <= L1_DATA_A_START + L1_DATA_A_LENGTH) {
226 memcpy(&tmp, (const void *)(addr + add), sizeof(tmp));
227 copied = sizeof(tmp);
228 } else
229#endif
230#if L1_DATA_B_LENGTH != 0
231 if (addr + add >= L1_DATA_B_START
232 && addr + add + sizeof(tmp) <= L1_DATA_B_START + L1_DATA_B_LENGTH) {
233 memcpy(&tmp, (const void *)(addr + add), sizeof(tmp));
234 copied = sizeof(tmp);
235 } else
236#endif
223 if (addr + add >= FIXED_CODE_START 237 if (addr + add >= FIXED_CODE_START
224 && addr + add + sizeof(tmp) <= FIXED_CODE_END) { 238 && addr + add + sizeof(tmp) <= FIXED_CODE_END) {
225 memcpy(&tmp, (const void *)(addr + add), sizeof(tmp)); 239 memcpy(&tmp, (const void *)(addr + add), sizeof(tmp));
@@ -290,6 +304,20 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
290 copied = sizeof(data); 304 copied = sizeof(data);
291 } else 305 } else
292#endif 306#endif
307#if L1_DATA_A_LENGTH != 0
308 if (addr + add >= L1_DATA_A_START
309 && addr + add + sizeof(data) <= L1_DATA_A_START + L1_DATA_A_LENGTH) {
310 memcpy((void *)(addr + add), &data, sizeof(data));
311 copied = sizeof(data);
312 } else
313#endif
314#if L1_DATA_B_LENGTH != 0
315 if (addr + add >= L1_DATA_B_START
316 && addr + add + sizeof(data) <= L1_DATA_B_START + L1_DATA_B_LENGTH) {
317 memcpy((void *)(addr + add), &data, sizeof(data));
318 copied = sizeof(data);
319 } else
320#endif
293 if (addr + add >= FIXED_CODE_START 321 if (addr + add >= FIXED_CODE_START
294 && addr + add + sizeof(data) <= FIXED_CODE_END) { 322 && addr + add + sizeof(data) <= FIXED_CODE_END) {
295 memcpy((void *)(addr + add), &data, sizeof(data)); 323 memcpy((void *)(addr + add), &data, sizeof(data));
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 8efea004aecb..23e637eb78da 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -104,6 +104,7 @@ void __init bf53x_relocate_l1_mem(void)
104 unsigned long l1_code_length; 104 unsigned long l1_code_length;
105 unsigned long l1_data_a_length; 105 unsigned long l1_data_a_length;
106 unsigned long l1_data_b_length; 106 unsigned long l1_data_b_length;
107 unsigned long l2_length;
107 108
108 l1_code_length = _etext_l1 - _stext_l1; 109 l1_code_length = _etext_l1 - _stext_l1;
109 if (l1_code_length > L1_CODE_LENGTH) 110 if (l1_code_length > L1_CODE_LENGTH)
@@ -129,6 +130,15 @@ void __init bf53x_relocate_l1_mem(void)
129 /* Copy _sdata_b_l1 to _ebss_b_l1 to L1 data bank B SRAM */ 130 /* Copy _sdata_b_l1 to _ebss_b_l1 to L1 data bank B SRAM */
130 dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length + 131 dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length +
131 l1_data_a_length, l1_data_b_length); 132 l1_data_a_length, l1_data_b_length);
133
134#ifdef L2_LENGTH
135 l2_length = _ebss_l2 - _stext_l2;
136 if (l2_length > L2_LENGTH)
137 panic("L2 SRAM Overflow\n");
138
139 /* Copy _stext_l2 to _edata_l2 to L2 SRAM */
140 dma_memcpy(_stext_l2, _l2_lma_start, l2_length);
141#endif
132} 142}
133 143
134/* add_memory_region to memmap */ 144/* add_memory_region to memmap */
@@ -664,11 +674,8 @@ static __init void setup_bootmem_allocator(void)
664}) 674})
665static inline int __init get_mem_size(void) 675static inline int __init get_mem_size(void)
666{ 676{
667#ifdef CONFIG_MEM_SIZE 677#if defined(EBIU_SDBCTL)
668 return CONFIG_MEM_SIZE; 678# if defined(BF561_FAMILY)
669#else
670# if defined(EBIU_SDBCTL)
671# if defined(BF561_FAMILY)
672 int ret = 0; 679 int ret = 0;
673 u32 sdbctl = bfin_read_EBIU_SDBCTL(); 680 u32 sdbctl = bfin_read_EBIU_SDBCTL();
674 ret += EBSZ_TO_MEG(sdbctl >> 0); 681 ret += EBSZ_TO_MEG(sdbctl >> 0);
@@ -676,10 +683,10 @@ static inline int __init get_mem_size(void)
676 ret += EBSZ_TO_MEG(sdbctl >> 16); 683 ret += EBSZ_TO_MEG(sdbctl >> 16);
677 ret += EBSZ_TO_MEG(sdbctl >> 24); 684 ret += EBSZ_TO_MEG(sdbctl >> 24);
678 return ret; 685 return ret;
679# else 686# else
680 return EBSZ_TO_MEG(bfin_read_EBIU_SDBCTL()); 687 return EBSZ_TO_MEG(bfin_read_EBIU_SDBCTL());
681# endif 688# endif
682# elif defined(EBIU_DDRCTL1) 689#elif defined(EBIU_DDRCTL1)
683 u32 ddrctl = bfin_read_EBIU_DDRCTL1(); 690 u32 ddrctl = bfin_read_EBIU_DDRCTL1();
684 int ret = 0; 691 int ret = 0;
685 switch (ddrctl & 0xc0000) { 692 switch (ddrctl & 0xc0000) {
@@ -693,8 +700,9 @@ static inline int __init get_mem_size(void)
693 case DEVWD_8: ret *= 2; 700 case DEVWD_8: ret *= 2;
694 case DEVWD_16: break; 701 case DEVWD_16: break;
695 } 702 }
703 if ((ddrctl & 0xc000) == 0x4000)
704 ret *= 2;
696 return ret; 705 return ret;
697# endif
698#endif 706#endif
699 BUG(); 707 BUG();
700} 708}
@@ -763,6 +771,9 @@ void __init setup_arch(char **cmdline_p)
763 771
764 _bfin_swrst = bfin_read_SWRST(); 772 _bfin_swrst = bfin_read_SWRST();
765 773
774 /* If we double fault, reset the system - otherwise we hang forever */
775 bfin_write_SWRST(DOUBLE_FAULT);
776
766 if (_bfin_swrst & RESET_DOUBLE) 777 if (_bfin_swrst & RESET_DOUBLE)
767 printk(KERN_INFO "Recovering from Double Fault event\n"); 778 printk(KERN_INFO "Recovering from Double Fault event\n");
768 else if (_bfin_swrst & RESET_WDOG) 779 else if (_bfin_swrst & RESET_WDOG)
@@ -842,38 +853,55 @@ static int __init topology_init(void)
842 853
843subsys_initcall(topology_init); 854subsys_initcall(topology_init);
844 855
856/* Get the voltage input multiplier */
857static u_long cached_vco_pll_ctl, cached_vco;
845static u_long get_vco(void) 858static u_long get_vco(void)
846{ 859{
847 u_long msel; 860 u_long msel;
848 u_long vco;
849 861
850 msel = (bfin_read_PLL_CTL() >> 9) & 0x3F; 862 u_long pll_ctl = bfin_read_PLL_CTL();
863 if (pll_ctl == cached_vco_pll_ctl)
864 return cached_vco;
865 else
866 cached_vco_pll_ctl = pll_ctl;
867
868 msel = (pll_ctl >> 9) & 0x3F;
851 if (0 == msel) 869 if (0 == msel)
852 msel = 64; 870 msel = 64;
853 871
854 vco = CONFIG_CLKIN_HZ; 872 cached_vco = CONFIG_CLKIN_HZ;
855 vco >>= (1 & bfin_read_PLL_CTL()); /* DF bit */ 873 cached_vco >>= (1 & pll_ctl); /* DF bit */
856 vco = msel * vco; 874 cached_vco *= msel;
857 return vco; 875 return cached_vco;
858} 876}
859 877
860/* Get the Core clock */ 878/* Get the Core clock */
879static u_long cached_cclk_pll_div, cached_cclk;
861u_long get_cclk(void) 880u_long get_cclk(void)
862{ 881{
863 u_long csel, ssel; 882 u_long csel, ssel;
883
864 if (bfin_read_PLL_STAT() & 0x1) 884 if (bfin_read_PLL_STAT() & 0x1)
865 return CONFIG_CLKIN_HZ; 885 return CONFIG_CLKIN_HZ;
866 886
867 ssel = bfin_read_PLL_DIV(); 887 ssel = bfin_read_PLL_DIV();
888 if (ssel == cached_cclk_pll_div)
889 return cached_cclk;
890 else
891 cached_cclk_pll_div = ssel;
892
868 csel = ((ssel >> 4) & 0x03); 893 csel = ((ssel >> 4) & 0x03);
869 ssel &= 0xf; 894 ssel &= 0xf;
870 if (ssel && ssel < (1 << csel)) /* SCLK > CCLK */ 895 if (ssel && ssel < (1 << csel)) /* SCLK > CCLK */
871 return get_vco() / ssel; 896 cached_cclk = get_vco() / ssel;
872 return get_vco() >> csel; 897 else
898 cached_cclk = get_vco() >> csel;
899 return cached_cclk;
873} 900}
874EXPORT_SYMBOL(get_cclk); 901EXPORT_SYMBOL(get_cclk);
875 902
876/* Get the System clock */ 903/* Get the System clock */
904static u_long cached_sclk_pll_div, cached_sclk;
877u_long get_sclk(void) 905u_long get_sclk(void)
878{ 906{
879 u_long ssel; 907 u_long ssel;
@@ -881,13 +909,20 @@ u_long get_sclk(void)
881 if (bfin_read_PLL_STAT() & 0x1) 909 if (bfin_read_PLL_STAT() & 0x1)
882 return CONFIG_CLKIN_HZ; 910 return CONFIG_CLKIN_HZ;
883 911
884 ssel = (bfin_read_PLL_DIV() & 0xf); 912 ssel = bfin_read_PLL_DIV();
913 if (ssel == cached_sclk_pll_div)
914 return cached_sclk;
915 else
916 cached_sclk_pll_div = ssel;
917
918 ssel &= 0xf;
885 if (0 == ssel) { 919 if (0 == ssel) {
886 printk(KERN_WARNING "Invalid System Clock\n"); 920 printk(KERN_WARNING "Invalid System Clock\n");
887 ssel = 1; 921 ssel = 1;
888 } 922 }
889 923
890 return get_vco() / ssel; 924 cached_sclk = get_vco() / ssel;
925 return cached_sclk;
891} 926}
892EXPORT_SYMBOL(get_sclk); 927EXPORT_SYMBOL(get_sclk);
893 928
@@ -916,7 +951,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
916 uint32_t revid; 951 uint32_t revid;
917 952
918 u_long cclk = 0, sclk = 0; 953 u_long cclk = 0, sclk = 0;
919 u_int dcache_size = 0, dsup_banks = 0; 954 u_int icache_size = BFIN_ICACHESIZE / 1024, dcache_size = 0, dsup_banks = 0;
920 955
921 cpu = CPU; 956 cpu = CPU;
922 mmu = "none"; 957 mmu = "none";
@@ -985,12 +1020,15 @@ static int show_cpuinfo(struct seq_file *m, void *v)
985 } 1020 }
986 1021
987 /* Is it turned on? */ 1022 /* Is it turned on? */
988 if (!((bfin_read_DMEM_CONTROL()) & (ENDCPLB | DMC_ENABLE))) 1023 if ((bfin_read_DMEM_CONTROL() & (ENDCPLB | DMC_ENABLE)) != (ENDCPLB | DMC_ENABLE))
989 dcache_size = 0; 1024 dcache_size = 0;
990 1025
1026 if ((bfin_read_IMEM_CONTROL() & (IMC | ENICPLB)) == (IMC | ENICPLB))
1027 icache_size = 0;
1028
991 seq_printf(m, "cache size\t: %d KB(L1 icache) " 1029 seq_printf(m, "cache size\t: %d KB(L1 icache) "
992 "%d KB(L1 dcache-%s) %d KB(L2 cache)\n", 1030 "%d KB(L1 dcache-%s) %d KB(L2 cache)\n",
993 BFIN_ICACHESIZE / 1024, dcache_size, 1031 icache_size, dcache_size,
994#if defined CONFIG_BFIN_WB 1032#if defined CONFIG_BFIN_WB
995 "wb" 1033 "wb"
996#elif defined CONFIG_BFIN_WT 1034#elif defined CONFIG_BFIN_WT
@@ -1000,8 +1038,12 @@ static int show_cpuinfo(struct seq_file *m, void *v)
1000 1038
1001 seq_printf(m, "%s\n", cache); 1039 seq_printf(m, "%s\n", cache);
1002 1040
1003 seq_printf(m, "icache setup\t: %d Sub-banks/%d Ways, %d Lines/Way\n", 1041 if (icache_size)
1004 BFIN_ISUBBANKS, BFIN_IWAYS, BFIN_ILINES); 1042 seq_printf(m, "icache setup\t: %d Sub-banks/%d Ways, %d Lines/Way\n",
1043 BFIN_ISUBBANKS, BFIN_IWAYS, BFIN_ILINES);
1044 else
1045 seq_printf(m, "icache setup\t: off\n");
1046
1005 seq_printf(m, 1047 seq_printf(m,
1006 "dcache setup\t: %d Super-banks/%d Sub-banks/%d Ways, %d Lines/Way\n", 1048 "dcache setup\t: %d Super-banks/%d Sub-banks/%d Ways, %d Lines/Way\n",
1007 dsup_banks, BFIN_DSUBBANKS, BFIN_DWAYS, 1049 dsup_banks, BFIN_DSUBBANKS, BFIN_DWAYS,
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index f061f5181623..ad922ab91543 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -69,8 +69,6 @@ void __init trap_init(void)
69 69
70unsigned long saved_icplb_fault_addr, saved_dcplb_fault_addr; 70unsigned long saved_icplb_fault_addr, saved_dcplb_fault_addr;
71 71
72int kstack_depth_to_print = 48;
73
74static void decode_address(char *buf, unsigned long address) 72static void decode_address(char *buf, unsigned long address)
75{ 73{
76 struct vm_list_struct *vml; 74 struct vm_list_struct *vml;
@@ -163,6 +161,9 @@ static void decode_address(char *buf, unsigned long address)
163 if (!in_atomic) 161 if (!in_atomic)
164 mmput(mm); 162 mmput(mm);
165 163
164 if (!strlen(buf))
165 sprintf(buf, "<0x%p> [ %s ] dynamic memory", (void *)address, name);
166
166 goto done; 167 goto done;
167 } 168 }
168 169
@@ -173,7 +174,7 @@ static void decode_address(char *buf, unsigned long address)
173 } 174 }
174 175
175 /* we were unable to find this address anywhere */ 176 /* we were unable to find this address anywhere */
176 sprintf(buf, "<0x%p> /* unknown address */", (void *)address); 177 sprintf(buf, "<0x%p> /* kernel dynamic memory */", (void *)address);
177 178
178done: 179done:
179 write_unlock_irqrestore(&tasklist_lock, flags); 180 write_unlock_irqrestore(&tasklist_lock, flags);
@@ -494,7 +495,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
494 BUG_ON(sig == 0); 495 BUG_ON(sig == 0);
495 496
496 if (sig != SIGTRAP) { 497 if (sig != SIGTRAP) {
497 unsigned long stack; 498 unsigned long *stack;
498 dump_bfin_process(fp); 499 dump_bfin_process(fp);
499 dump_bfin_mem(fp); 500 dump_bfin_mem(fp);
500 show_regs(fp); 501 show_regs(fp);
@@ -508,14 +509,23 @@ asmlinkage void trap_c(struct pt_regs *fp)
508 else 509 else
509#endif 510#endif
510 dump_bfin_trace_buffer(); 511 dump_bfin_trace_buffer();
511 show_stack(current, &stack); 512
512 if (oops_in_progress) { 513 if (oops_in_progress) {
514 /* Dump the current kernel stack */
515 printk(KERN_NOTICE "\n" KERN_NOTICE "Kernel Stack\n");
516 show_stack(current, NULL);
517
513 print_modules(); 518 print_modules();
514#ifndef CONFIG_ACCESS_CHECK 519#ifndef CONFIG_ACCESS_CHECK
515 printk(KERN_EMERG "Please turn on " 520 printk(KERN_EMERG "Please turn on "
516 "CONFIG_ACCESS_CHECK\n"); 521 "CONFIG_ACCESS_CHECK\n");
517#endif 522#endif
518 panic("Kernel exception"); 523 panic("Kernel exception");
524 } else {
525 /* Dump the user space stack */
526 stack = (unsigned long *)rdusp();
527 printk(KERN_NOTICE "Userspace Stack\n");
528 show_stack(NULL, stack);
519 } 529 }
520 } 530 }
521 531
@@ -532,11 +542,71 @@ asmlinkage void trap_c(struct pt_regs *fp)
532 542
533#define EXPAND_LEN ((1 << CONFIG_DEBUG_BFIN_HWTRACE_EXPAND_LEN) * 256 - 1) 543#define EXPAND_LEN ((1 << CONFIG_DEBUG_BFIN_HWTRACE_EXPAND_LEN) * 256 - 1)
534 544
545/*
546 * Similar to get_user, do some address checking, then dereference
547 * Return true on sucess, false on bad address
548 */
549bool get_instruction(unsigned short *val, unsigned short *address)
550{
551
552 unsigned long addr;
553
554 addr = (unsigned long)address;
555
556 /* Check for odd addresses */
557 if (addr & 0x1)
558 return false;
559
560 /* Check that things do not wrap around */
561 if (addr > (addr + 2))
562 return false;
563
564 /*
565 * Since we are in exception context, we need to do a little address checking
566 * We need to make sure we are only accessing valid memory, and
567 * we don't read something in the async space that can hang forever
568 */
569 if ((addr >= FIXED_CODE_START && (addr + 2) <= physical_mem_end) ||
570#ifdef L2_START
571 (addr >= L2_START && (addr + 2) <= (L2_START + L2_LENGTH)) ||
572#endif
573 (addr >= BOOT_ROM_START && (addr + 2) <= (BOOT_ROM_START + BOOT_ROM_LENGTH)) ||
574#if L1_DATA_A_LENGTH != 0
575 (addr >= L1_DATA_A_START && (addr + 2) <= (L1_DATA_A_START + L1_DATA_A_LENGTH)) ||
576#endif
577#if L1_DATA_B_LENGTH != 0
578 (addr >= L1_DATA_B_START && (addr + 2) <= (L1_DATA_B_START + L1_DATA_B_LENGTH)) ||
579#endif
580 (addr >= L1_SCRATCH_START && (addr + 2) <= (L1_SCRATCH_START + L1_SCRATCH_LENGTH)) ||
581 (!(bfin_read_EBIU_AMBCTL0() & B0RDYEN) &&
582 addr >= ASYNC_BANK0_BASE && (addr + 2) <= (ASYNC_BANK0_BASE + ASYNC_BANK0_SIZE)) ||
583 (!(bfin_read_EBIU_AMBCTL0() & B1RDYEN) &&
584 addr >= ASYNC_BANK1_BASE && (addr + 2) <= (ASYNC_BANK1_BASE + ASYNC_BANK1_SIZE)) ||
585 (!(bfin_read_EBIU_AMBCTL1() & B2RDYEN) &&
586 addr >= ASYNC_BANK2_BASE && (addr + 2) <= (ASYNC_BANK2_BASE + ASYNC_BANK1_SIZE)) ||
587 (!(bfin_read_EBIU_AMBCTL1() & B3RDYEN) &&
588 addr >= ASYNC_BANK3_BASE && (addr + 2) <= (ASYNC_BANK3_BASE + ASYNC_BANK1_SIZE))) {
589 *val = *address;
590 return true;
591 }
592
593#if L1_CODE_LENGTH != 0
594 if (addr >= L1_CODE_START && (addr + 2) <= (L1_CODE_START + L1_CODE_LENGTH)) {
595 dma_memcpy(val, address, 2);
596 return true;
597 }
598#endif
599
600
601 return false;
602}
603
535void dump_bfin_trace_buffer(void) 604void dump_bfin_trace_buffer(void)
536{ 605{
537#ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON 606#ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON
538 int tflags, i = 0; 607 int tflags, i = 0;
539 char buf[150]; 608 char buf[150];
609 unsigned short val = 0, *addr;
540#ifdef CONFIG_DEBUG_BFIN_HWTRACE_EXPAND 610#ifdef CONFIG_DEBUG_BFIN_HWTRACE_EXPAND
541 int j, index; 611 int j, index;
542#endif 612#endif
@@ -549,8 +619,42 @@ void dump_bfin_trace_buffer(void)
549 for (; bfin_read_TBUFSTAT() & TBUFCNT; i++) { 619 for (; bfin_read_TBUFSTAT() & TBUFCNT; i++) {
550 decode_address(buf, (unsigned long)bfin_read_TBUF()); 620 decode_address(buf, (unsigned long)bfin_read_TBUF());
551 printk(KERN_NOTICE "%4i Target : %s\n", i, buf); 621 printk(KERN_NOTICE "%4i Target : %s\n", i, buf);
552 decode_address(buf, (unsigned long)bfin_read_TBUF()); 622 addr = (unsigned short *)bfin_read_TBUF();
553 printk(KERN_NOTICE " Source : %s\n", buf); 623 decode_address(buf, (unsigned long)addr);
624 printk(KERN_NOTICE " Source : %s ", buf);
625 if (get_instruction(&val, addr)) {
626 if (val == 0x0010)
627 printk("RTS");
628 else if (val == 0x0011)
629 printk("RTI");
630 else if (val == 0x0012)
631 printk("RTX");
632 else if (val >= 0x0050 && val <= 0x0057)
633 printk("JUMP (P%i)", val & 7);
634 else if (val >= 0x0060 && val <= 0x0067)
635 printk("CALL (P%i)", val & 7);
636 else if (val >= 0x0070 && val <= 0x0077)
637 printk("CALL (PC+P%i)", val & 7);
638 else if (val >= 0x0080 && val <= 0x0087)
639 printk("JUMP (PC+P%i)", val & 7);
640 else if ((val >= 0x1000 && val <= 0x13FF) ||
641 (val >= 0x1800 && val <= 0x1BFF))
642 printk("IF !CC JUMP");
643 else if ((val >= 0x1400 && val <= 0x17ff) ||
644 (val >= 0x1c00 && val <= 0x1fff))
645 printk("IF CC JUMP");
646 else if (val >= 0x2000 && val <= 0x2fff)
647 printk("JUMP.S");
648 else if (val >= 0xe080 && val <= 0xe0ff)
649 printk("LSETUP");
650 else if (val >= 0xe200 && val <= 0xe2ff)
651 printk("JUMP.L");
652 else if (val >= 0xe300 && val <= 0xe3ff)
653 printk("CALL pcrel");
654 else
655 printk("0x%04x", val);
656 }
657 printk("\n");
554 } 658 }
555 } 659 }
556 660
@@ -582,59 +686,151 @@ void dump_bfin_trace_buffer(void)
582} 686}
583EXPORT_SYMBOL(dump_bfin_trace_buffer); 687EXPORT_SYMBOL(dump_bfin_trace_buffer);
584 688
585static void show_trace(struct task_struct *tsk, unsigned long *sp) 689/*
690 * Checks to see if the address pointed to is either a
691 * 16-bit CALL instruction, or a 32-bit CALL instruction
692 */
693bool is_bfin_call(unsigned short *addr)
586{ 694{
587 unsigned long addr; 695 unsigned short opcode = 0, *ins_addr;
696 ins_addr = (unsigned short *)addr;
588 697
589 printk(KERN_NOTICE "\n" KERN_NOTICE "Call Trace:\n"); 698 if (!get_instruction(&opcode, ins_addr))
590 699 return false;
591 while (!kstack_end(sp)) {
592 addr = *sp++;
593 /*
594 * If the address is either in the text segment of the
595 * kernel, or in the region which contains vmalloc'ed
596 * memory, it *may* be the address of a calling
597 * routine; if so, print it so that someone tracing
598 * down the cause of the crash will be able to figure
599 * out the call path that was taken.
600 */
601 if (kernel_text_address(addr))
602 print_ip_sym(addr);
603 }
604 700
605 printk(KERN_NOTICE "\n"); 701 if ((opcode >= 0x0060 && opcode <= 0x0067) ||
606} 702 (opcode >= 0x0070 && opcode <= 0x0077))
703 return true;
704
705 ins_addr--;
706 if (!get_instruction(&opcode, ins_addr))
707 return false;
607 708
709 if (opcode >= 0xE300 && opcode <= 0xE3FF)
710 return true;
711
712 return false;
713
714}
608void show_stack(struct task_struct *task, unsigned long *stack) 715void show_stack(struct task_struct *task, unsigned long *stack)
609{ 716{
610 unsigned long *endstack, addr; 717 unsigned int *addr, *endstack, *fp = 0, *frame;
611 int i; 718 unsigned short *ins_addr;
719 char buf[150];
720 unsigned int i, j, ret_addr, frame_no = 0;
612 721
613 /* Cannot call dump_bfin_trace_buffer() here as show_stack() is 722 /*
614 * called externally in some places in the kernel. 723 * If we have been passed a specific stack, use that one otherwise
724 * if we have been passed a task structure, use that, otherwise
725 * use the stack of where the variable "stack" exists
615 */ 726 */
616 727
617 if (!stack) { 728 if (stack == NULL) {
618 if (task) 729 if (task) {
730 /* We know this is a kernel stack, so this is the start/end */
619 stack = (unsigned long *)task->thread.ksp; 731 stack = (unsigned long *)task->thread.ksp;
620 else 732 endstack = (unsigned int *)(((unsigned int)(stack) & ~(THREAD_SIZE - 1)) + THREAD_SIZE);
733 } else {
734 /* print out the existing stack info */
621 stack = (unsigned long *)&stack; 735 stack = (unsigned long *)&stack;
736 endstack = (unsigned int *)PAGE_ALIGN((unsigned int)stack);
737 }
738 } else
739 endstack = (unsigned int *)PAGE_ALIGN((unsigned int)stack);
740
741 decode_address(buf, (unsigned int)stack);
742 printk(KERN_NOTICE "Stack info:\n" KERN_NOTICE " SP: [0x%p] %s\n", stack, buf);
743 addr = (unsigned int *)((unsigned int)stack & ~0x3F);
744
745 /* First thing is to look for a frame pointer */
746 for (addr = (unsigned int *)((unsigned int)stack & ~0xF), i = 0;
747 addr < endstack; addr++, i++) {
748 if (*addr & 0x1)
749 continue;
750 ins_addr = (unsigned short *)*addr;
751 ins_addr--;
752 if (is_bfin_call(ins_addr))
753 fp = addr - 1;
754
755 if (fp) {
756 /* Let's check to see if it is a frame pointer */
757 while (fp >= (addr - 1) && fp < endstack && fp)
758 fp = (unsigned int *)*fp;
759 if (fp == 0 || fp == endstack) {
760 fp = addr - 1;
761 break;
762 }
763 fp = 0;
764 }
622 } 765 }
766 if (fp) {
767 frame = fp;
768 printk(" FP: (0x%p)\n", fp);
769 } else
770 frame = 0;
623 771
624 addr = (unsigned long)stack; 772 /*
625 endstack = (unsigned long *)PAGE_ALIGN(addr); 773 * Now that we think we know where things are, we
774 * walk the stack again, this time printing things out
775 * incase there is no frame pointer, we still look for
776 * valid return addresses
777 */
626 778
627 printk(KERN_NOTICE "Stack from %08lx:", (unsigned long)stack); 779 /* First time print out data, next time, print out symbols */
628 for (i = 0; i < kstack_depth_to_print; i++) { 780 for (j = 0; j <= 1; j++) {
629 if (stack + 1 > endstack) 781 if (j)
630 break; 782 printk(KERN_NOTICE "Return addresses in stack:\n");
631 if (i % 8 == 0) 783 else
632 printk("\n" KERN_NOTICE " "); 784 printk(KERN_NOTICE " Memory from 0x%08lx to %p", ((long unsigned int)stack & ~0xF), endstack);
633 printk(" %08lx", *stack++); 785
786 fp = frame;
787 frame_no = 0;
788
789 for (addr = (unsigned int *)((unsigned int)stack & ~0xF), i = 0;
790 addr <= endstack; addr++, i++) {
791
792 ret_addr = 0;
793 if (!j && i % 8 == 0)
794 printk("\n" KERN_NOTICE "%p:",addr);
795
796 /* if it is an odd address, or zero, just skip it */
797 if (*addr & 0x1 || !*addr)
798 goto print;
799
800 ins_addr = (unsigned short *)*addr;
801
802 /* Go back one instruction, and see if it is a CALL */
803 ins_addr--;
804 ret_addr = is_bfin_call(ins_addr);
805 print:
806 if (!j && stack == (unsigned long *)addr)
807 printk("[%08x]", *addr);
808 else if (ret_addr)
809 if (j) {
810 decode_address(buf, (unsigned int)*addr);
811 if (frame == addr) {
812 printk(KERN_NOTICE " frame %2i : %s\n", frame_no, buf);
813 continue;
814 }
815 printk(KERN_NOTICE " address : %s\n", buf);
816 } else
817 printk("<%08x>", *addr);
818 else if (fp == addr) {
819 if (j)
820 frame = addr+1;
821 else
822 printk("(%08x)", *addr);
823
824 fp = (unsigned int *)*addr;
825 frame_no++;
826
827 } else if (!j)
828 printk(" %08x ", *addr);
829 }
830 if (!j)
831 printk("\n");
634 } 832 }
635 printk("\n");
636 833
637 show_trace(task, stack);
638} 834}
639 835
640void dump_stack(void) 836void dump_stack(void)
@@ -715,19 +911,9 @@ void dump_bfin_mem(struct pt_regs *fp)
715 if (!((unsigned long)addr & 0xF)) 911 if (!((unsigned long)addr & 0xF))
716 printk("\n" KERN_NOTICE "0x%p: ", addr); 912 printk("\n" KERN_NOTICE "0x%p: ", addr);
717 913
718 if (get_user(val, addr)) { 914 if (get_instruction(&val, addr)) {
719 if (addr >= (unsigned short *)L1_CODE_START &&
720 addr < (unsigned short *)(L1_CODE_START + L1_CODE_LENGTH)) {
721 dma_memcpy(&val, addr, sizeof(val));
722 sprintf(buf, "%04x", val);
723 } else if (addr >= (unsigned short *)FIXED_CODE_START &&
724 addr <= (unsigned short *)memory_start) {
725 val = bfin_read16(addr);
726 sprintf(buf, "%04x", val);
727 } else {
728 val = 0; 915 val = 0;
729 sprintf(buf, "????"); 916 sprintf(buf, "????");
730 }
731 } else 917 } else
732 sprintf(buf, "%04x", val); 918 sprintf(buf, "%04x", val);
733 919
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S
index 3ecc64cab3be..0896e38d6108 100644
--- a/arch/blackfin/kernel/vmlinux.lds.S
+++ b/arch/blackfin/kernel/vmlinux.lds.S
@@ -101,6 +101,11 @@ SECTIONS
101#if !L1_DATA_B_LENGTH 101#if !L1_DATA_B_LENGTH
102 *(.l1.data.B) 102 *(.l1.data.B)
103#endif 103#endif
104#ifndef L2_LENGTH
105 . = ALIGN(32);
106 *(.data_l2.cacheline_aligned)
107 *(.l2.data)
108#endif
104 109
105 DATA_DATA 110 DATA_DATA
106 *(.data.*) 111 *(.data.*)
@@ -182,14 +187,13 @@ SECTIONS
182 *(.l1.data) 187 *(.l1.data)
183 __edata_l1 = .; 188 __edata_l1 = .;
184 189
185 . = ALIGN(4);
186 __sbss_l1 = .;
187 *(.l1.bss)
188
189 . = ALIGN(32); 190 . = ALIGN(32);
190 *(.data_l1.cacheline_aligned) 191 *(.data_l1.cacheline_aligned)
191 192
192 . = ALIGN(4); 193 . = ALIGN(4);
194 __sbss_l1 = .;
195 *(.l1.bss)
196 . = ALIGN(4);
193 __ebss_l1 = .; 197 __ebss_l1 = .;
194 } 198 }
195 199
@@ -203,11 +207,37 @@ SECTIONS
203 . = ALIGN(4); 207 . = ALIGN(4);
204 __sbss_b_l1 = .; 208 __sbss_b_l1 = .;
205 *(.l1.bss.B) 209 *(.l1.bss.B)
206
207 . = ALIGN(4); 210 . = ALIGN(4);
208 __ebss_b_l1 = .; 211 __ebss_b_l1 = .;
209 } 212 }
210 213
214#ifdef L2_LENGTH
215 __l2_lma_start = .;
216
217 .text_data_l2 L2_START : AT(LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1))
218 {
219 . = ALIGN(4);
220 __stext_l2 = .;
221 *(.l1.text)
222 . = ALIGN(4);
223 __etext_l2 = .;
224
225 . = ALIGN(4);
226 __sdata_l2 = .;
227 *(.l1.data)
228 __edata_l2 = .;
229
230 . = ALIGN(32);
231 *(.data_l2.cacheline_aligned)
232
233 . = ALIGN(4);
234 __sbss_l2 = .;
235 *(.l1.bss)
236 . = ALIGN(4);
237 __ebss_l2 = .;
238 }
239#endif
240
211 /* Force trailing alignment of our init section so that when we 241 /* Force trailing alignment of our init section so that when we
212 * free our init memory, we don't leave behind a partial page. 242 * free our init memory, we don't leave behind a partial page.
213 */ 243 */
diff --git a/arch/blackfin/mach-bf527/boards/Kconfig b/arch/blackfin/mach-bf527/boards/Kconfig
index 6a570ad03746..8bf9e58f0148 100644
--- a/arch/blackfin/mach-bf527/boards/Kconfig
+++ b/arch/blackfin/mach-bf527/boards/Kconfig
@@ -9,4 +9,9 @@ config BFIN527_EZKIT
9 help 9 help
10 BF527-EZKIT-LITE board support. 10 BF527-EZKIT-LITE board support.
11 11
12config BFIN527_BLUETECHNIX_CM
13 bool "Bluetechnix CM-BF527"
14 help
15 CM-BF527 support for EVAL- and DEV-Board.
16
12endchoice 17endchoice
diff --git a/arch/blackfin/mach-bf527/boards/Makefile b/arch/blackfin/mach-bf527/boards/Makefile
index 7277d35ef111..7ba7d256bbb8 100644
--- a/arch/blackfin/mach-bf527/boards/Makefile
+++ b/arch/blackfin/mach-bf527/boards/Makefile
@@ -3,3 +3,4 @@
3# 3#
4 4
5obj-$(CONFIG_BFIN527_EZKIT) += ezkit.o 5obj-$(CONFIG_BFIN527_EZKIT) += ezkit.o
6obj-$(CONFIG_BFIN527_BLUETECHNIX_CM) += cm_bf527.o
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c
new file mode 100644
index 000000000000..0b26ae2de5ee
--- /dev/null
+++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c
@@ -0,0 +1,1011 @@
1/*
2 * File: arch/blackfin/mach-bf527/boards/cm-bf527.c
3 * Based on: arch/blackfin/mach-bf537/boards/stamp.c
4 * Author: Aidan Williams <aidan@nicta.com.au>
5 *
6 * Created:
7 * Description:
8 *
9 * Modified:
10 * Copyright 2005 National ICT Australia (NICTA)
11 * Copyright 2004-2008 Analog Devices Inc.
12 *
13 * Bugs: Enter bugs at http://blackfin.uclinux.org/
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2 of the License, or
18 * (at your option) any later version.
19 *
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this program; if not, see the file COPYING, or write
27 * to the Free Software Foundation, Inc.,
28 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 */
30
31#include <linux/device.h>
32#include <linux/platform_device.h>
33#include <linux/mtd/mtd.h>
34#include <linux/mtd/partitions.h>
35#include <linux/mtd/physmap.h>
36#include <linux/spi/spi.h>
37#include <linux/spi/flash.h>
38#include <linux/etherdevice.h>
39#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
40#include <linux/usb/isp1362.h>
41#endif
42#include <linux/pata_platform.h>
43#include <linux/i2c.h>
44#include <linux/irq.h>
45#include <linux/interrupt.h>
46#include <linux/usb/sl811.h>
47#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
48#include <linux/usb/musb.h>
49#endif
50#include <asm/cplb.h>
51#include <asm/dma.h>
52#include <asm/bfin5xx_spi.h>
53#include <asm/reboot.h>
54#include <asm/nand.h>
55#include <asm/portmux.h>
56#include <asm/dpmc.h>
57#include <linux/spi/ad7877.h>
58
59/*
60 * Name the Board for the /proc/cpuinfo
61 */
62const char bfin_board_name[] = "Bluetechnix CM-BF527";
63
64/*
65 * Driver needs to know address, irq and flag pin.
66 */
67
68#define ISP1761_BASE 0x203C0000
69#define ISP1761_IRQ IRQ_PF7
70
71#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
72static struct resource bfin_isp1761_resources[] = {
73 [0] = {
74 .name = "isp1761-regs",
75 .start = ISP1761_BASE + 0x00000000,
76 .end = ISP1761_BASE + 0x000fffff,
77 .flags = IORESOURCE_MEM,
78 },
79 [1] = {
80 .start = ISP1761_IRQ,
81 .end = ISP1761_IRQ,
82 .flags = IORESOURCE_IRQ,
83 },
84};
85
86static struct platform_device bfin_isp1761_device = {
87 .name = "isp1761",
88 .id = 0,
89 .num_resources = ARRAY_SIZE(bfin_isp1761_resources),
90 .resource = bfin_isp1761_resources,
91};
92
93static struct platform_device *bfin_isp1761_devices[] = {
94 &bfin_isp1761_device,
95};
96
97int __init bfin_isp1761_init(void)
98{
99 unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices);
100
101 printk(KERN_INFO "%s(): registering device resources\n", __func__);
102 set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
103
104 return platform_add_devices(bfin_isp1761_devices, num_devices);
105}
106
107void __exit bfin_isp1761_exit(void)
108{
109 platform_device_unregister(&bfin_isp1761_device);
110}
111
112arch_initcall(bfin_isp1761_init);
113#endif
114
115#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
116static struct resource musb_resources[] = {
117 [0] = {
118 .start = 0xffc03800,
119 .end = 0xffc03cff,
120 .flags = IORESOURCE_MEM,
121 },
122 [1] = { /* general IRQ */
123 .start = IRQ_USB_INT0,
124 .end = IRQ_USB_INT0,
125 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
126 },
127 [2] = { /* DMA IRQ */
128 .start = IRQ_USB_DMA,
129 .end = IRQ_USB_DMA,
130 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
131 },
132};
133
134static struct musb_hdrc_platform_data musb_plat = {
135#if defined(CONFIG_USB_MUSB_OTG)
136 .mode = MUSB_OTG,
137#elif defined(CONFIG_USB_MUSB_HDRC_HCD)
138 .mode = MUSB_HOST,
139#elif defined(CONFIG_USB_GADGET_MUSB_HDRC)
140 .mode = MUSB_PERIPHERAL,
141#endif
142 .multipoint = 0,
143};
144
145static u64 musb_dmamask = ~(u32)0;
146
147static struct platform_device musb_device = {
148 .name = "musb_hdrc",
149 .id = 0,
150 .dev = {
151 .dma_mask = &musb_dmamask,
152 .coherent_dma_mask = 0xffffffff,
153 .platform_data = &musb_plat,
154 },
155 .num_resources = ARRAY_SIZE(musb_resources),
156 .resource = musb_resources,
157};
158#endif
159
160#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
161static struct mtd_partition ezkit_partitions[] = {
162 {
163 .name = "Bootloader",
164 .size = 0x40000,
165 .offset = 0,
166 }, {
167 .name = "Kernel",
168 .size = 0x1C0000,
169 .offset = MTDPART_OFS_APPEND,
170 }, {
171 .name = "RootFS",
172 .size = MTDPART_SIZ_FULL,
173 .offset = MTDPART_OFS_APPEND,
174 }
175};
176
177static struct physmap_flash_data ezkit_flash_data = {
178 .width = 2,
179 .parts = ezkit_partitions,
180 .nr_parts = ARRAY_SIZE(ezkit_partitions),
181};
182
183static struct resource ezkit_flash_resource = {
184 .start = 0x20000000,
185 .end = 0x201fffff,
186 .flags = IORESOURCE_MEM,
187};
188
189static struct platform_device ezkit_flash_device = {
190 .name = "physmap-flash",
191 .id = 0,
192 .dev = {
193 .platform_data = &ezkit_flash_data,
194 },
195 .num_resources = 1,
196 .resource = &ezkit_flash_resource,
197};
198#endif
199
200#if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
201static struct mtd_partition partition_info[] = {
202 {
203 .name = "Linux Kernel",
204 .offset = 0,
205 .size = 4 * SIZE_1M,
206 },
207 {
208 .name = "File System",
209 .offset = MTDPART_OFS_APPEND,
210 .size = MTDPART_SIZ_FULL,
211 },
212};
213
214static struct bf5xx_nand_platform bf5xx_nand_platform = {
215 .page_size = NFC_PG_SIZE_256,
216 .data_width = NFC_NWIDTH_8,
217 .partitions = partition_info,
218 .nr_partitions = ARRAY_SIZE(partition_info),
219 .rd_dly = 3,
220 .wr_dly = 3,
221};
222
223static struct resource bf5xx_nand_resources[] = {
224 {
225 .start = NFC_CTL,
226 .end = NFC_DATA_RD + 2,
227 .flags = IORESOURCE_MEM,
228 },
229 {
230 .start = CH_NFC,
231 .end = CH_NFC,
232 .flags = IORESOURCE_IRQ,
233 },
234};
235
236static struct platform_device bf5xx_nand_device = {
237 .name = "bf5xx-nand",
238 .id = 0,
239 .num_resources = ARRAY_SIZE(bf5xx_nand_resources),
240 .resource = bf5xx_nand_resources,
241 .dev = {
242 .platform_data = &bf5xx_nand_platform,
243 },
244};
245#endif
246
247#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
248static struct resource bfin_pcmcia_cf_resources[] = {
249 {
250 .start = 0x20310000, /* IO PORT */
251 .end = 0x20312000,
252 .flags = IORESOURCE_MEM,
253 }, {
254 .start = 0x20311000, /* Attribute Memory */
255 .end = 0x20311FFF,
256 .flags = IORESOURCE_MEM,
257 }, {
258 .start = IRQ_PF4,
259 .end = IRQ_PF4,
260 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
261 }, {
262 .start = 6, /* Card Detect PF6 */
263 .end = 6,
264 .flags = IORESOURCE_IRQ,
265 },
266};
267
268static struct platform_device bfin_pcmcia_cf_device = {
269 .name = "bfin_cf_pcmcia",
270 .id = -1,
271 .num_resources = ARRAY_SIZE(bfin_pcmcia_cf_resources),
272 .resource = bfin_pcmcia_cf_resources,
273};
274#endif
275
276#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
277static struct platform_device rtc_device = {
278 .name = "rtc-bfin",
279 .id = -1,
280};
281#endif
282
283#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
284static struct resource smc91x_resources[] = {
285 {
286 .name = "smc91x-regs",
287 .start = 0x20300300,
288 .end = 0x20300300 + 16,
289 .flags = IORESOURCE_MEM,
290 }, {
291
292 .start = IRQ_PF7,
293 .end = IRQ_PF7,
294 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
295 },
296};
297static struct platform_device smc91x_device = {
298 .name = "smc91x",
299 .id = 0,
300 .num_resources = ARRAY_SIZE(smc91x_resources),
301 .resource = smc91x_resources,
302};
303#endif
304
305#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
306static struct resource dm9000_resources[] = {
307 [0] = {
308 .start = 0x203FB800,
309 .end = 0x203FB800 + 8,
310 .flags = IORESOURCE_MEM,
311 },
312 [1] = {
313 .start = IRQ_PF9,
314 .end = IRQ_PF9,
315 .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE),
316 },
317};
318
319static struct platform_device dm9000_device = {
320 .name = "dm9000",
321 .id = -1,
322 .num_resources = ARRAY_SIZE(dm9000_resources),
323 .resource = dm9000_resources,
324};
325#endif
326
327#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
328static struct resource sl811_hcd_resources[] = {
329 {
330 .start = 0x20340000,
331 .end = 0x20340000,
332 .flags = IORESOURCE_MEM,
333 }, {
334 .start = 0x20340004,
335 .end = 0x20340004,
336 .flags = IORESOURCE_MEM,
337 }, {
338 .start = CONFIG_USB_SL811_BFIN_IRQ,
339 .end = CONFIG_USB_SL811_BFIN_IRQ,
340 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
341 },
342};
343
344#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
345void sl811_port_power(struct device *dev, int is_on)
346{
347 gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS");
348 gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on);
349}
350#endif
351
352static struct sl811_platform_data sl811_priv = {
353 .potpg = 10,
354 .power = 250, /* == 500mA */
355#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
356 .port_power = &sl811_port_power,
357#endif
358};
359
360static struct platform_device sl811_hcd_device = {
361 .name = "sl811-hcd",
362 .id = 0,
363 .dev = {
364 .platform_data = &sl811_priv,
365 },
366 .num_resources = ARRAY_SIZE(sl811_hcd_resources),
367 .resource = sl811_hcd_resources,
368};
369#endif
370
371#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
372static struct resource isp1362_hcd_resources[] = {
373 {
374 .start = 0x20360000,
375 .end = 0x20360000,
376 .flags = IORESOURCE_MEM,
377 }, {
378 .start = 0x20360004,
379 .end = 0x20360004,
380 .flags = IORESOURCE_MEM,
381 }, {
382 .start = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ,
383 .end = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ,
384 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
385 },
386};
387
388static struct isp1362_platform_data isp1362_priv = {
389 .sel15Kres = 1,
390 .clknotstop = 0,
391 .oc_enable = 0,
392 .int_act_high = 0,
393 .int_edge_triggered = 0,
394 .remote_wakeup_connected = 0,
395 .no_power_switching = 1,
396 .power_switching_mode = 0,
397};
398
399static struct platform_device isp1362_hcd_device = {
400 .name = "isp1362-hcd",
401 .id = 0,
402 .dev = {
403 .platform_data = &isp1362_priv,
404 },
405 .num_resources = ARRAY_SIZE(isp1362_hcd_resources),
406 .resource = isp1362_hcd_resources,
407};
408#endif
409
410#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
411static struct platform_device bfin_mac_device = {
412 .name = "bfin_mac",
413};
414#endif
415
416#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
417static struct resource net2272_bfin_resources[] = {
418 {
419 .start = 0x20300000,
420 .end = 0x20300000 + 0x100,
421 .flags = IORESOURCE_MEM,
422 }, {
423 .start = IRQ_PF7,
424 .end = IRQ_PF7,
425 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
426 },
427};
428
429static struct platform_device net2272_bfin_device = {
430 .name = "net2272",
431 .id = -1,
432 .num_resources = ARRAY_SIZE(net2272_bfin_resources),
433 .resource = net2272_bfin_resources,
434};
435#endif
436
437#if defined(CONFIG_MTD_M25P80) \
438 || defined(CONFIG_MTD_M25P80_MODULE)
439static struct mtd_partition bfin_spi_flash_partitions[] = {
440 {
441 .name = "bootloader",
442 .size = 0x00040000,
443 .offset = 0,
444 .mask_flags = MTD_CAP_ROM
445 }, {
446 .name = "linux kernel",
447 .size = MTDPART_SIZ_FULL,
448 .offset = MTDPART_OFS_APPEND,
449 }
450};
451
452static struct flash_platform_data bfin_spi_flash_data = {
453 .name = "m25p80",
454 .parts = bfin_spi_flash_partitions,
455 .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions),
456 .type = "m25p16",
457};
458
459/* SPI flash chip (m25p64) */
460static struct bfin5xx_spi_chip spi_flash_chip_info = {
461 .enable_dma = 0, /* use dma transfer with this chip*/
462 .bits_per_word = 8,
463};
464#endif
465
466#if defined(CONFIG_SPI_ADC_BF533) \
467 || defined(CONFIG_SPI_ADC_BF533_MODULE)
468/* SPI ADC chip */
469static struct bfin5xx_spi_chip spi_adc_chip_info = {
470 .enable_dma = 1, /* use dma transfer with this chip*/
471 .bits_per_word = 16,
472};
473#endif
474
475#if defined(CONFIG_SND_BLACKFIN_AD1836) \
476 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE)
477static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
478 .enable_dma = 0,
479 .bits_per_word = 16,
480};
481#endif
482
483#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE)
484static struct bfin5xx_spi_chip ad9960_spi_chip_info = {
485 .enable_dma = 0,
486 .bits_per_word = 16,
487};
488#endif
489
490#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
491static struct bfin5xx_spi_chip spi_mmc_chip_info = {
492 .enable_dma = 1,
493 .bits_per_word = 8,
494};
495#endif
496
497#if defined(CONFIG_PBX)
498static struct bfin5xx_spi_chip spi_si3xxx_chip_info = {
499 .ctl_reg = 0x4, /* send zero */
500 .enable_dma = 0,
501 .bits_per_word = 8,
502 .cs_change_per_word = 1,
503};
504#endif
505
506#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
507static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
508 .enable_dma = 0,
509 .bits_per_word = 16,
510};
511
512static const struct ad7877_platform_data bfin_ad7877_ts_info = {
513 .model = 7877,
514 .vref_delay_usecs = 50, /* internal, no capacitor */
515 .x_plate_ohms = 419,
516 .y_plate_ohms = 486,
517 .pressure_max = 1000,
518 .pressure_min = 0,
519 .stopacq_polarity = 1,
520 .first_conversion_delay = 3,
521 .acquisition_time = 1,
522 .averaging = 1,
523 .pen_down_acc_interval = 1,
524};
525#endif
526
527#if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
528 && defined(CONFIG_SND_SOC_WM8731_SPI)
529static struct bfin5xx_spi_chip spi_wm8731_chip_info = {
530 .enable_dma = 0,
531 .bits_per_word = 16,
532};
533#endif
534
535#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
536static struct bfin5xx_spi_chip spidev_chip_info = {
537 .enable_dma = 0,
538 .bits_per_word = 8,
539};
540#endif
541
542static struct spi_board_info bfin_spi_board_info[] __initdata = {
543#if defined(CONFIG_MTD_M25P80) \
544 || defined(CONFIG_MTD_M25P80_MODULE)
545 {
546 /* the modalias must be the same as spi device driver name */
547 .modalias = "m25p80", /* Name of spi_driver for this device */
548 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
549 .bus_num = 0, /* Framework bus number */
550 .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/
551 .platform_data = &bfin_spi_flash_data,
552 .controller_data = &spi_flash_chip_info,
553 .mode = SPI_MODE_3,
554 },
555#endif
556
557#if defined(CONFIG_SPI_ADC_BF533) \
558 || defined(CONFIG_SPI_ADC_BF533_MODULE)
559 {
560 .modalias = "bfin_spi_adc", /* Name of spi_driver for this device */
561 .max_speed_hz = 6250000, /* max spi clock (SCK) speed in HZ */
562 .bus_num = 0, /* Framework bus number */
563 .chip_select = 1, /* Framework chip select. */
564 .platform_data = NULL, /* No spi_driver specific config */
565 .controller_data = &spi_adc_chip_info,
566 },
567#endif
568
569#if defined(CONFIG_SND_BLACKFIN_AD1836) \
570 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE)
571 {
572 .modalias = "ad1836-spi",
573 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
574 .bus_num = 0,
575 .chip_select = CONFIG_SND_BLACKFIN_SPI_PFBIT,
576 .controller_data = &ad1836_spi_chip_info,
577 },
578#endif
579#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE)
580 {
581 .modalias = "ad9960-spi",
582 .max_speed_hz = 10000000, /* max spi clock (SCK) speed in HZ */
583 .bus_num = 0,
584 .chip_select = 1,
585 .controller_data = &ad9960_spi_chip_info,
586 },
587#endif
588#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
589 {
590 .modalias = "spi_mmc_dummy",
591 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
592 .bus_num = 0,
593 .chip_select = 0,
594 .platform_data = NULL,
595 .controller_data = &spi_mmc_chip_info,
596 .mode = SPI_MODE_3,
597 },
598 {
599 .modalias = "spi_mmc",
600 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
601 .bus_num = 0,
602 .chip_select = CONFIG_SPI_MMC_CS_CHAN,
603 .platform_data = NULL,
604 .controller_data = &spi_mmc_chip_info,
605 .mode = SPI_MODE_3,
606 },
607#endif
608#if defined(CONFIG_PBX)
609 {
610 .modalias = "fxs-spi",
611 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
612 .bus_num = 0,
613 .chip_select = 8 - CONFIG_J11_JUMPER,
614 .controller_data = &spi_si3xxx_chip_info,
615 .mode = SPI_MODE_3,
616 },
617 {
618 .modalias = "fxo-spi",
619 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
620 .bus_num = 0,
621 .chip_select = 8 - CONFIG_J19_JUMPER,
622 .controller_data = &spi_si3xxx_chip_info,
623 .mode = SPI_MODE_3,
624 },
625#endif
626#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
627 {
628 .modalias = "ad7877",
629 .platform_data = &bfin_ad7877_ts_info,
630 .irq = IRQ_PF8,
631 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
632 .bus_num = 0,
633 .chip_select = 2,
634 .controller_data = &spi_ad7877_chip_info,
635 },
636#endif
637#if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
638 && defined(CONFIG_SND_SOC_WM8731_SPI)
639 {
640 .modalias = "wm8731",
641 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
642 .bus_num = 0,
643 .chip_select = 5,
644 .controller_data = &spi_wm8731_chip_info,
645 .mode = SPI_MODE_0,
646 },
647#endif
648#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
649 {
650 .modalias = "spidev",
651 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
652 .bus_num = 0,
653 .chip_select = 1,
654 .controller_data = &spidev_chip_info,
655 },
656#endif
657};
658
659#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
660/* SPI controller data */
661static struct bfin5xx_spi_master bfin_spi0_info = {
662 .num_chipselect = 8,
663 .enable_dma = 1, /* master has the ability to do dma transfer */
664 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
665};
666
667/* SPI (0) */
668static struct resource bfin_spi0_resource[] = {
669 [0] = {
670 .start = SPI0_REGBASE,
671 .end = SPI0_REGBASE + 0xFF,
672 .flags = IORESOURCE_MEM,
673 },
674 [1] = {
675 .start = CH_SPI,
676 .end = CH_SPI,
677 .flags = IORESOURCE_IRQ,
678 },
679};
680
681static struct platform_device bfin_spi0_device = {
682 .name = "bfin-spi",
683 .id = 0, /* Bus number */
684 .num_resources = ARRAY_SIZE(bfin_spi0_resource),
685 .resource = bfin_spi0_resource,
686 .dev = {
687 .platform_data = &bfin_spi0_info, /* Passed to driver */
688 },
689};
690#endif /* spi master and devices */
691
692#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
693static struct platform_device bfin_fb_adv7393_device = {
694 .name = "bfin-adv7393",
695};
696#endif
697
698#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
699static struct resource bfin_uart_resources[] = {
700#ifdef CONFIG_SERIAL_BFIN_UART0
701 {
702 .start = 0xFFC00400,
703 .end = 0xFFC004FF,
704 .flags = IORESOURCE_MEM,
705 },
706#endif
707#ifdef CONFIG_SERIAL_BFIN_UART1
708 {
709 .start = 0xFFC02000,
710 .end = 0xFFC020FF,
711 .flags = IORESOURCE_MEM,
712 },
713#endif
714};
715
716static struct platform_device bfin_uart_device = {
717 .name = "bfin-uart",
718 .id = 1,
719 .num_resources = ARRAY_SIZE(bfin_uart_resources),
720 .resource = bfin_uart_resources,
721};
722#endif
723
724#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
725static struct resource bfin_sir_resources[] = {
726#ifdef CONFIG_BFIN_SIR0
727 {
728 .start = 0xFFC00400,
729 .end = 0xFFC004FF,
730 .flags = IORESOURCE_MEM,
731 },
732#endif
733#ifdef CONFIG_BFIN_SIR1
734 {
735 .start = 0xFFC02000,
736 .end = 0xFFC020FF,
737 .flags = IORESOURCE_MEM,
738 },
739#endif
740};
741
742static struct platform_device bfin_sir_device = {
743 .name = "bfin_sir",
744 .id = 0,
745 .num_resources = ARRAY_SIZE(bfin_sir_resources),
746 .resource = bfin_sir_resources,
747};
748#endif
749
750#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
751static struct resource bfin_twi0_resource[] = {
752 [0] = {
753 .start = TWI0_REGBASE,
754 .end = TWI0_REGBASE,
755 .flags = IORESOURCE_MEM,
756 },
757 [1] = {
758 .start = IRQ_TWI,
759 .end = IRQ_TWI,
760 .flags = IORESOURCE_IRQ,
761 },
762};
763
764static struct platform_device i2c_bfin_twi_device = {
765 .name = "i2c-bfin-twi",
766 .id = 0,
767 .num_resources = ARRAY_SIZE(bfin_twi0_resource),
768 .resource = bfin_twi0_resource,
769};
770#endif
771
772#ifdef CONFIG_I2C_BOARDINFO
773static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
774#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
775 {
776 I2C_BOARD_INFO("pcf8574_lcd", 0x22),
777 .type = "pcf8574_lcd",
778 },
779#endif
780#if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE)
781 {
782 I2C_BOARD_INFO("pcf8574_keypad", 0x27),
783 .type = "pcf8574_keypad",
784 .irq = IRQ_PF8,
785 },
786#endif
787};
788#endif
789
790#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
791static struct platform_device bfin_sport0_uart_device = {
792 .name = "bfin-sport-uart",
793 .id = 0,
794};
795
796static struct platform_device bfin_sport1_uart_device = {
797 .name = "bfin-sport-uart",
798 .id = 1,
799};
800#endif
801
802#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
803#define PATA_INT 55
804
805static struct pata_platform_info bfin_pata_platform_data = {
806 .ioport_shift = 1,
807 .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED,
808};
809
810static struct resource bfin_pata_resources[] = {
811 {
812 .start = 0x20314020,
813 .end = 0x2031403F,
814 .flags = IORESOURCE_MEM,
815 },
816 {
817 .start = 0x2031401C,
818 .end = 0x2031401F,
819 .flags = IORESOURCE_MEM,
820 },
821 {
822 .start = PATA_INT,
823 .end = PATA_INT,
824 .flags = IORESOURCE_IRQ,
825 },
826};
827
828static struct platform_device bfin_pata_device = {
829 .name = "pata_platform",
830 .id = -1,
831 .num_resources = ARRAY_SIZE(bfin_pata_resources),
832 .resource = bfin_pata_resources,
833 .dev = {
834 .platform_data = &bfin_pata_platform_data,
835 }
836};
837#endif
838
839#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
840#include <linux/input.h>
841#include <linux/gpio_keys.h>
842
843static struct gpio_keys_button bfin_gpio_keys_table[] = {
844 {BTN_0, GPIO_PF14, 1, "gpio-keys: BTN0"},
845};
846
847static struct gpio_keys_platform_data bfin_gpio_keys_data = {
848 .buttons = bfin_gpio_keys_table,
849 .nbuttons = ARRAY_SIZE(bfin_gpio_keys_table),
850};
851
852static struct platform_device bfin_device_gpiokeys = {
853 .name = "gpio-keys",
854 .dev = {
855 .platform_data = &bfin_gpio_keys_data,
856 },
857};
858#endif
859
860static struct resource bfin_gpios_resources = {
861 .start = 0,
862 .end = MAX_BLACKFIN_GPIOS - 1,
863 .flags = IORESOURCE_IRQ,
864};
865
866static struct platform_device bfin_gpios_device = {
867 .name = "simple-gpio",
868 .id = -1,
869 .num_resources = 1,
870 .resource = &bfin_gpios_resources,
871};
872
873static const unsigned int cclk_vlev_datasheet[] =
874{
875 VRPAIR(VLEV_100, 400000000),
876 VRPAIR(VLEV_105, 426000000),
877 VRPAIR(VLEV_110, 500000000),
878 VRPAIR(VLEV_115, 533000000),
879 VRPAIR(VLEV_120, 600000000),
880};
881
882static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
883 .tuple_tab = cclk_vlev_datasheet,
884 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
885 .vr_settling_time = 25 /* us */,
886};
887
888static struct platform_device bfin_dpmc = {
889 .name = "bfin dpmc",
890 .dev = {
891 .platform_data = &bfin_dmpc_vreg_data,
892 },
893};
894
895static struct platform_device *stamp_devices[] __initdata = {
896
897 &bfin_dpmc,
898
899#if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
900 &bf5xx_nand_device,
901#endif
902
903#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
904 &bfin_pcmcia_cf_device,
905#endif
906
907#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
908 &rtc_device,
909#endif
910
911#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
912 &sl811_hcd_device,
913#endif
914
915#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
916 &isp1362_hcd_device,
917#endif
918
919#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
920 &musb_device,
921#endif
922
923#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
924 &smc91x_device,
925#endif
926
927#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
928 &dm9000_device,
929#endif
930
931#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
932 &bfin_mac_device,
933#endif
934
935#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
936 &net2272_bfin_device,
937#endif
938
939#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
940 &bfin_spi0_device,
941#endif
942
943#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
944 &bfin_fb_adv7393_device,
945#endif
946
947#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
948 &bfin_uart_device,
949#endif
950
951#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
952 &bfin_sir_device,
953#endif
954
955#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
956 &i2c_bfin_twi_device,
957#endif
958
959#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
960 &bfin_sport0_uart_device,
961 &bfin_sport1_uart_device,
962#endif
963
964#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
965 &bfin_pata_device,
966#endif
967
968#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
969 &bfin_device_gpiokeys,
970#endif
971
972#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
973 &ezkit_flash_device,
974#endif
975
976 &bfin_gpios_device,
977};
978
979static int __init stamp_init(void)
980{
981 printk(KERN_INFO "%s(): registering device resources\n", __func__);
982
983#ifdef CONFIG_I2C_BOARDINFO
984 i2c_register_board_info(0, bfin_i2c_board_info,
985 ARRAY_SIZE(bfin_i2c_board_info));
986#endif
987
988 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
989 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
990
991#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
992 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN;
993#endif
994 return 0;
995}
996
997arch_initcall(stamp_init);
998
999void native_machine_restart(char *cmd)
1000{
1001 /* workaround reboot hang when booting from SPI */
1002 if ((bfin_read_SYSCR() & 0x7) == 0x3)
1003 bfin_gpio_reset_spi0_ssel1();
1004}
1005
1006void bfin_get_ether_addr(char *addr)
1007{
1008 random_ether_addr(addr);
1009 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
1010}
1011EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf527/head.S b/arch/blackfin/mach-bf527/head.S
index 57bdb3ba2fed..fe05cc1ef174 100644
--- a/arch/blackfin/mach-bf527/head.S
+++ b/arch/blackfin/mach-bf527/head.S
@@ -32,7 +32,7 @@
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#include <asm/trace.h> 33#include <asm/trace.h>
34 34
35#if CONFIG_BFIN_KERNEL_CLOCK 35#ifdef CONFIG_BFIN_KERNEL_CLOCK
36#include <asm/mach-common/clocks.h> 36#include <asm/mach-common/clocks.h>
37#include <asm/mach/mem_init.h> 37#include <asm/mach/mem_init.h>
38#endif 38#endif
@@ -185,7 +185,7 @@ ENTRY(__start)
185 185
186 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ 186 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */
187 call _bf53x_relocate_l1_mem; 187 call _bf53x_relocate_l1_mem;
188#if CONFIG_BFIN_KERNEL_CLOCK 188#ifdef CONFIG_BFIN_KERNEL_CLOCK
189 call _start_dma_code; 189 call _start_dma_code;
190#endif 190#endif
191 191
@@ -318,7 +318,7 @@ ENDPROC(_real_start)
318__FINIT 318__FINIT
319 319
320.section .l1.text 320.section .l1.text
321#if CONFIG_BFIN_KERNEL_CLOCK 321#ifdef CONFIG_BFIN_KERNEL_CLOCK
322ENTRY(_start_dma_code) 322ENTRY(_start_dma_code)
323 323
324 /* Enable PHY CLK buffer output */ 324 /* Enable PHY CLK buffer output */
@@ -398,12 +398,6 @@ ENTRY(_start_dma_code)
398 w[p0] = r0.l; 398 w[p0] = r0.l;
399 ssync; 399 ssync;
400 400
401 p0.l = LO(EBIU_SDBCTL);
402 p0.h = HI(EBIU_SDBCTL); /* SDRAM Memory Bank Control Register */
403 r0 = mem_SDBCTL;
404 w[p0] = r0.l;
405 ssync;
406
407 P2.H = hi(EBIU_SDGCTL); 401 P2.H = hi(EBIU_SDGCTL);
408 P2.L = lo(EBIU_SDGCTL); 402 P2.L = lo(EBIU_SDGCTL);
409 R0 = [P2]; 403 R0 = [P2];
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S
index 1295deac00a4..c671e8549b17 100644
--- a/arch/blackfin/mach-bf533/head.S
+++ b/arch/blackfin/mach-bf533/head.S
@@ -31,7 +31,7 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#include <asm/trace.h> 33#include <asm/trace.h>
34#if CONFIG_BFIN_KERNEL_CLOCK 34#ifdef CONFIG_BFIN_KERNEL_CLOCK
35#include <asm/mach-common/clocks.h> 35#include <asm/mach-common/clocks.h>
36#include <asm/mach/mem_init.h> 36#include <asm/mach/mem_init.h>
37#endif 37#endif
@@ -186,7 +186,7 @@ ENTRY(__start)
186 186
187 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ 187 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */
188 call _bf53x_relocate_l1_mem; 188 call _bf53x_relocate_l1_mem;
189#if CONFIG_BFIN_KERNEL_CLOCK 189#ifdef CONFIG_BFIN_KERNEL_CLOCK
190 call _start_dma_code; 190 call _start_dma_code;
191#endif 191#endif
192 192
@@ -319,7 +319,7 @@ ENDPROC(_real_start)
319__FINIT 319__FINIT
320 320
321.section .l1.text 321.section .l1.text
322#if CONFIG_BFIN_KERNEL_CLOCK 322#ifdef CONFIG_BFIN_KERNEL_CLOCK
323ENTRY(_start_dma_code) 323ENTRY(_start_dma_code)
324 p0.h = hi(SIC_IWR); 324 p0.h = hi(SIC_IWR);
325 p0.l = lo(SIC_IWR); 325 p0.l = lo(SIC_IWR);
@@ -390,12 +390,6 @@ ENTRY(_start_dma_code)
390 w[p0] = r0.l; 390 w[p0] = r0.l;
391 ssync; 391 ssync;
392 392
393 p0.l = LO(EBIU_SDBCTL);
394 p0.h = HI(EBIU_SDBCTL); /* SDRAM Memory Bank Control Register */
395 r0 = mem_SDBCTL;
396 w[p0] = r0.l;
397 ssync;
398
399 P2.H = hi(EBIU_SDGCTL); 393 P2.H = hi(EBIU_SDGCTL);
400 P2.L = lo(EBIU_SDGCTL); 394 P2.L = lo(EBIU_SDGCTL);
401 R0 = [P2]; 395 R0 = [P2];
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index 671f9d67f23a..6dbc76fb080b 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -29,9 +29,12 @@
29 */ 29 */
30 30
31#include <linux/device.h> 31#include <linux/device.h>
32#include <linux/kernel.h>
32#include <linux/platform_device.h> 33#include <linux/platform_device.h>
33#include <linux/mtd/mtd.h> 34#include <linux/mtd/mtd.h>
35#include <linux/mtd/nand.h>
34#include <linux/mtd/partitions.h> 36#include <linux/mtd/partitions.h>
37#include <linux/mtd/plat-ram.h>
35#include <linux/mtd/physmap.h> 38#include <linux/mtd/physmap.h>
36#include <linux/spi/spi.h> 39#include <linux/spi/spi.h>
37#include <linux/spi/flash.h> 40#include <linux/spi/flash.h>
@@ -355,6 +358,84 @@ static struct platform_device net2272_bfin_device = {
355}; 358};
356#endif 359#endif
357 360
361#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
362#ifdef CONFIG_MTD_PARTITIONS
363const char *part_probes[] = { "cmdlinepart", "RedBoot", NULL };
364
365static struct mtd_partition bfin_plat_nand_partitions[] = {
366 {
367 .name = "linux kernel",
368 .size = 0x400000,
369 .offset = 0,
370 }, {
371 .name = "file system",
372 .size = MTDPART_SIZ_FULL,
373 .offset = MTDPART_OFS_APPEND,
374 },
375};
376#endif
377
378#define BFIN_NAND_PLAT_CLE 2
379#define BFIN_NAND_PLAT_ALE 1
380static void bfin_plat_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
381{
382 struct nand_chip *this = mtd->priv;
383
384 if (cmd == NAND_CMD_NONE)
385 return;
386
387 if (ctrl & NAND_CLE)
388 writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_CLE));
389 else
390 writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_ALE));
391}
392
393#define BFIN_NAND_PLAT_READY GPIO_PF3
394static int bfin_plat_nand_dev_ready(struct mtd_info *mtd)
395{
396 return gpio_get_value(BFIN_NAND_PLAT_READY);
397}
398
399static struct platform_nand_data bfin_plat_nand_data = {
400 .chip = {
401 .chip_delay = 30,
402#ifdef CONFIG_MTD_PARTITIONS
403 .part_probe_types = part_probes,
404 .partitions = bfin_plat_nand_partitions,
405 .nr_partitions = ARRAY_SIZE(bfin_plat_nand_partitions),
406#endif
407 },
408 .ctrl = {
409 .cmd_ctrl = bfin_plat_nand_cmd_ctrl,
410 .dev_ready = bfin_plat_nand_dev_ready,
411 },
412};
413
414#define MAX(x, y) (x > y ? x : y)
415static struct resource bfin_plat_nand_resources = {
416 .start = 0x20212000,
417 .end = 0x20212000 + (1 << MAX(BFIN_NAND_PLAT_CLE, BFIN_NAND_PLAT_ALE)),
418 .flags = IORESOURCE_IO,
419};
420
421static struct platform_device bfin_async_nand_device = {
422 .name = "gen_nand",
423 .id = -1,
424 .num_resources = 1,
425 .resource = &bfin_plat_nand_resources,
426 .dev = {
427 .platform_data = &bfin_plat_nand_data,
428 },
429};
430
431static void bfin_plat_nand_init(void)
432{
433 gpio_request(BFIN_NAND_PLAT_READY, "bfin_nand_plat");
434}
435#else
436static void bfin_plat_nand_init(void) {}
437#endif
438
358#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) 439#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
359static struct mtd_partition stamp_partitions[] = { 440static struct mtd_partition stamp_partitions[] = {
360 { 441 {
@@ -780,7 +861,7 @@ static struct platform_device bfin_sport1_uart_device = {
780#endif 861#endif
781 862
782#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 863#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
783#define PATA_INT 55 864#define PATA_INT IRQ_PF5
784 865
785static struct pata_platform_info bfin_pata_platform_data = { 866static struct pata_platform_info bfin_pata_platform_data = {
786 .ioport_shift = 1, 867 .ioport_shift = 1,
@@ -922,6 +1003,10 @@ static struct platform_device *stamp_devices[] __initdata = {
922 1003
923 &bfin_gpios_device, 1004 &bfin_gpios_device,
924 1005
1006#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
1007 &bfin_async_nand_device,
1008#endif
1009
925#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) 1010#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
926 &stamp_flash_device, 1011 &stamp_flash_device,
927#endif 1012#endif
@@ -936,6 +1021,7 @@ static int __init stamp_init(void)
936 ARRAY_SIZE(bfin_i2c_board_info)); 1021 ARRAY_SIZE(bfin_i2c_board_info));
937#endif 1022#endif
938 1023
1024 bfin_plat_nand_init();
939 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 1025 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
940 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 1026 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
941 1027
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S
index 48cd58a410a0..6b019eaee0b6 100644
--- a/arch/blackfin/mach-bf537/head.S
+++ b/arch/blackfin/mach-bf537/head.S
@@ -32,7 +32,7 @@
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#include <asm/trace.h> 33#include <asm/trace.h>
34 34
35#if CONFIG_BFIN_KERNEL_CLOCK 35#ifdef CONFIG_BFIN_KERNEL_CLOCK
36#include <asm/mach-common/clocks.h> 36#include <asm/mach-common/clocks.h>
37#include <asm/mach/mem_init.h> 37#include <asm/mach/mem_init.h>
38#endif 38#endif
@@ -217,7 +217,7 @@ ENTRY(__start)
217 217
218 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ 218 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */
219 call _bf53x_relocate_l1_mem; 219 call _bf53x_relocate_l1_mem;
220#if CONFIG_BFIN_KERNEL_CLOCK 220#ifdef CONFIG_BFIN_KERNEL_CLOCK
221 call _start_dma_code; 221 call _start_dma_code;
222#endif 222#endif
223 223
@@ -350,7 +350,7 @@ ENDPROC(_real_start)
350__FINIT 350__FINIT
351 351
352.section .l1.text 352.section .l1.text
353#if CONFIG_BFIN_KERNEL_CLOCK 353#ifdef CONFIG_BFIN_KERNEL_CLOCK
354ENTRY(_start_dma_code) 354ENTRY(_start_dma_code)
355 355
356 /* Enable PHY CLK buffer output */ 356 /* Enable PHY CLK buffer output */
@@ -430,12 +430,6 @@ ENTRY(_start_dma_code)
430 w[p0] = r0.l; 430 w[p0] = r0.l;
431 ssync; 431 ssync;
432 432
433 p0.l = LO(EBIU_SDBCTL);
434 p0.h = HI(EBIU_SDBCTL); /* SDRAM Memory Bank Control Register */
435 r0 = mem_SDBCTL;
436 w[p0] = r0.l;
437 ssync;
438
439 P2.H = hi(EBIU_SDGCTL); 433 P2.H = hi(EBIU_SDGCTL);
440 P2.L = lo(EBIU_SDGCTL); 434 P2.L = lo(EBIU_SDGCTL);
441 R0 = [P2]; 435 R0 = [P2];
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index af7c211a580e..166fa2201ee7 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -61,6 +61,49 @@ const char bfin_board_name[] = "ADSP-BF548-EZKIT";
61 * Driver needs to know address, irq and flag pin. 61 * Driver needs to know address, irq and flag pin.
62 */ 62 */
63 63
64#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
65static struct resource bfin_isp1761_resources[] = {
66 [0] = {
67 .name = "isp1761-regs",
68 .start = 0x2C0C0000,
69 .end = 0x2C0C0000 + 0xfffff,
70 .flags = IORESOURCE_MEM,
71 },
72 [1] = {
73 .start = IRQ_PG7,
74 .end = IRQ_PG7,
75 .flags = IORESOURCE_IRQ,
76 },
77};
78
79static struct platform_device bfin_isp1761_device = {
80 .name = "isp1761",
81 .id = 0,
82 .num_resources = ARRAY_SIZE(bfin_isp1761_resources),
83 .resource = bfin_isp1761_resources,
84};
85
86static struct platform_device *bfin_isp1761_devices[] = {
87 &bfin_isp1761_device,
88};
89
90int __init bfin_isp1761_init(void)
91{
92 unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices);
93
94 printk(KERN_INFO "%s(): registering device resources\n", __func__);
95 set_irq_type(bfin_isp1761_resources[1].start, IRQF_TRIGGER_FALLING);
96
97 return platform_add_devices(bfin_isp1761_devices, num_devices);
98}
99
100void __exit bfin_isp1761_exit(void)
101{
102 platform_device_unregister(&bfin_isp1761_device);
103}
104arch_initcall(bfin_isp1761_init);
105#endif
106
64#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) 107#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE)
65 108
66#include <asm/mach/bf54x-lq043.h> 109#include <asm/mach/bf54x-lq043.h>
@@ -177,6 +220,7 @@ static struct resource bfin_uart_resources[] = {
177 { 220 {
178 .start = 0xFFC03100, 221 .start = 0xFFC03100,
179 .end = 0xFFC031FF, 222 .end = 0xFFC031FF,
223 .flags = IORESOURCE_MEM,
180 }, 224 },
181#endif 225#endif
182}; 226};
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S
index f7191141a3ce..06b9178cfcfe 100644
--- a/arch/blackfin/mach-bf548/head.S
+++ b/arch/blackfin/mach-bf548/head.S
@@ -31,7 +31,7 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#include <asm/trace.h> 33#include <asm/trace.h>
34#if CONFIG_BFIN_KERNEL_CLOCK 34#ifdef CONFIG_BFIN_KERNEL_CLOCK
35#include <asm/mach-common/clocks.h> 35#include <asm/mach-common/clocks.h>
36#include <asm/mach/mem_init.h> 36#include <asm/mach/mem_init.h>
37#endif 37#endif
@@ -130,7 +130,7 @@ ENTRY(__start)
130 130
131 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ 131 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */
132 call _bf53x_relocate_l1_mem; 132 call _bf53x_relocate_l1_mem;
133#if CONFIG_BFIN_KERNEL_CLOCK 133#ifdef CONFIG_BFIN_KERNEL_CLOCK
134 call _start_dma_code; 134 call _start_dma_code;
135#endif 135#endif
136 /* Code for initializing Async memory banks */ 136 /* Code for initializing Async memory banks */
@@ -288,7 +288,7 @@ ENDPROC(_real_start)
288__FINIT 288__FINIT
289 289
290.section .l1.text 290.section .l1.text
291#if CONFIG_BFIN_KERNEL_CLOCK 291#ifdef CONFIG_BFIN_KERNEL_CLOCK
292ENTRY(_start_dma_code) 292ENTRY(_start_dma_code)
293 293
294 /* Enable PHY CLK buffer output */ 294 /* Enable PHY CLK buffer output */
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S
index 5b8bd40851dd..cf1a2dff01e7 100644
--- a/arch/blackfin/mach-bf561/head.S
+++ b/arch/blackfin/mach-bf561/head.S
@@ -377,12 +377,6 @@ ENTRY(_start_dma_code)
377 w[p0] = r0.l; 377 w[p0] = r0.l;
378 ssync; 378 ssync;
379 379
380 p0.l = LO(EBIU_SDBCTL);
381 p0.h = HI(EBIU_SDBCTL); /* SDRAM Memory Bank Control Register */
382 r0 = mem_SDBCTL;
383 w[p0] = r0.l;
384 ssync;
385
386 P2.H = hi(EBIU_SDGCTL); 380 P2.H = hi(EBIU_SDGCTL);
387 P2.L = lo(EBIU_SDGCTL); 381 P2.L = lo(EBIU_SDGCTL);
388 R0 = [P2]; 382 R0 = [P2];
diff --git a/arch/blackfin/mach-common/arch_checks.c b/arch/blackfin/mach-common/arch_checks.c
index caaab49e9cfa..f9160d83b91f 100644
--- a/arch/blackfin/mach-common/arch_checks.c
+++ b/arch/blackfin/mach-common/arch_checks.c
@@ -53,9 +53,3 @@
53# endif 53# endif
54 54
55#endif /* CONFIG_BFIN_KERNEL_CLOCK */ 55#endif /* CONFIG_BFIN_KERNEL_CLOCK */
56
57#ifdef CONFIG_MEM_SIZE
58#if (CONFIG_MEM_SIZE % 4)
59#error "SDRAM mem size must be multible of 4MB"
60#endif
61#endif
diff --git a/arch/blackfin/mach-common/dpmc_modes.S b/arch/blackfin/mach-common/dpmc_modes.S
index b7981d31c392..5e3f1d8a4fb8 100644
--- a/arch/blackfin/mach-common/dpmc_modes.S
+++ b/arch/blackfin/mach-common/dpmc_modes.S
@@ -7,7 +7,7 @@
7#include <linux/linkage.h> 7#include <linux/linkage.h>
8#include <asm/blackfin.h> 8#include <asm/blackfin.h>
9#include <asm/mach/irq.h> 9#include <asm/mach/irq.h>
10 10#include <asm/dpmc.h>
11 11
12.section .l1.text 12.section .l1.text
13 13
@@ -51,31 +51,32 @@ ENTRY(_sleep_mode)
51 RETS = [SP++]; 51 RETS = [SP++];
52 ( R7:0, P5:0 ) = [SP++]; 52 ( R7:0, P5:0 ) = [SP++];
53 RTS; 53 RTS;
54ENDPROC(_sleep_mode)
54 55
55ENTRY(_hibernate_mode) 56ENTRY(_hibernate_mode)
56 [--SP] = ( R7:0, P5:0 ); 57 [--SP] = ( R7:0, P5:0 );
57 [--SP] = RETS; 58 [--SP] = RETS;
58 59
60 R3 = R0;
61 R0 = IWR_DISABLE_ALL;
62 R1 = IWR_DISABLE_ALL;
63 R2 = IWR_DISABLE_ALL;
59 call _set_sic_iwr; 64 call _set_sic_iwr;
65 call _set_dram_srfs;
66 SSYNC;
60 67
61 R0 = 0xFFFF (Z); 68 R0 = 0xFFFF (Z);
62 call _set_rtc_istat; 69 call _set_rtc_istat;
63 70
64 P0.H = hi(VR_CTL); 71 P0.H = hi(VR_CTL);
65 P0.L = lo(VR_CTL); 72 P0.L = lo(VR_CTL);
66 R1 = W[P0](z);
67 BITSET (R1, 8);
68 BITCLR (R1, 0);
69 BITCLR (R1, 1);
70 W[P0] = R1.L;
71 SSYNC;
72 73
74 W[P0] = R3.L;
73 CLI R2; 75 CLI R2;
74 IDLE; 76 IDLE;
75 77.Lforever:
76 /* Actually, adding anything may not be necessary...SDRAM contents 78 jump .Lforever;
77 * are lost 79ENDPROC(_hibernate_mode)
78 */
79 80
80ENTRY(_deep_sleep) 81ENTRY(_deep_sleep)
81 [--SP] = ( R7:0, P5:0 ); 82 [--SP] = ( R7:0, P5:0 );
@@ -131,6 +132,7 @@ ENTRY(_deep_sleep)
131 RETS = [SP++]; 132 RETS = [SP++];
132 ( R7:0, P5:0 ) = [SP++]; 133 ( R7:0, P5:0 ) = [SP++];
133 RTS; 134 RTS;
135ENDPROC(_deep_sleep)
134 136
135ENTRY(_sleep_deeper) 137ENTRY(_sleep_deeper)
136 [--SP] = ( R7:0, P5:0 ); 138 [--SP] = ( R7:0, P5:0 );
@@ -232,53 +234,73 @@ ENTRY(_sleep_deeper)
232 RETS = [SP++]; 234 RETS = [SP++];
233 ( R7:0, P5:0 ) = [SP++]; 235 ( R7:0, P5:0 ) = [SP++];
234 RTS; 236 RTS;
237ENDPROC(_sleep_deeper)
235 238
236ENTRY(_set_dram_srfs) 239ENTRY(_set_dram_srfs)
237 /* set the dram to self refresh mode */ 240 /* set the dram to self refresh mode */
238#if defined(CONFIG_BF54x) 241 SSYNC;
242#if defined(EBIU_RSTCTL) /* DDR */
239 P0.H = hi(EBIU_RSTCTL); 243 P0.H = hi(EBIU_RSTCTL);
240 P0.L = lo(EBIU_RSTCTL); 244 P0.L = lo(EBIU_RSTCTL);
241 R2 = [P0]; 245 R2 = [P0];
242 R3.H = hi(SRREQ); 246 BITSET(R2, 3); /* SRREQ enter self-refresh mode */
243 R3.L = lo(SRREQ); 247 [P0] = R2;
244#else 248 SSYNC;
245 P0.H = hi(EBIU_SDGCTL); 2491:
250 R2 = [P0];
251 CC = BITTST(R2, 4);
252 if !CC JUMP 1b;
253#else /* SDRAM */
246 P0.L = lo(EBIU_SDGCTL); 254 P0.L = lo(EBIU_SDGCTL);
255 P0.H = hi(EBIU_SDGCTL);
247 R2 = [P0]; 256 R2 = [P0];
248 R3.H = hi(SRFS); 257 BITSET(R2, 24); /* SRFS enter self-refresh mode */
249 R3.L = lo(SRFS);
250#endif
251 R2 = R2|R3;
252 [P0] = R2; 258 [P0] = R2;
253 ssync; 259 SSYNC;
254#if defined(CONFIG_BF54x) 260
255.LSRR_MODE: 261 P0.L = lo(EBIU_SDSTAT);
262 P0.H = hi(EBIU_SDSTAT);
2631:
264 R2 = w[P0];
265 SSYNC;
266 cc = BITTST(R2, 1); /* SDSRA poll self-refresh status */
267 if !cc jump 1b;
268
269 P0.L = lo(EBIU_SDGCTL);
270 P0.H = hi(EBIU_SDGCTL);
256 R2 = [P0]; 271 R2 = [P0];
257 CC = BITTST(R2, 4); 272 BITCLR(R2, 0); /* SCTLE disable CLKOUT */
258 if !CC JUMP .LSRR_MODE; 273 [P0] = R2;
259#endif 274#endif
260 RTS; 275 RTS;
276ENDPROC(_set_dram_srfs)
261 277
262ENTRY(_unset_dram_srfs) 278ENTRY(_unset_dram_srfs)
263 /* set the dram out of self refresh mode */ 279 /* set the dram out of self refresh mode */
264#if defined(CONFIG_BF54x) 280#if defined(EBIU_RSTCTL) /* DDR */
265 P0.H = hi(EBIU_RSTCTL); 281 P0.H = hi(EBIU_RSTCTL);
266 P0.L = lo(EBIU_RSTCTL); 282 P0.L = lo(EBIU_RSTCTL);
267 R2 = [P0]; 283 R2 = [P0];
268 R3.H = hi(SRREQ); 284 BITCLR(R2, 3); /* clear SRREQ bit */
269 R3.L = lo(SRREQ); 285 [P0] = R2;
270#else 286#elif defined(EBIU_SDGCTL) /* SDRAM */
287
288 P0.L = lo(EBIU_SDGCTL); /* release CLKOUT from self-refresh */
289 P0.H = hi(EBIU_SDGCTL);
290 R2 = [P0];
291 BITSET(R2, 0); /* SCTLE enable CLKOUT */
292 [P0] = R2
293 SSYNC;
294
295 P0.L = lo(EBIU_SDGCTL); /* release SDRAM from self-refresh */
271 P0.H = hi(EBIU_SDGCTL); 296 P0.H = hi(EBIU_SDGCTL);
272 P0.L = lo(EBIU_SDGCTL);
273 R2 = [P0]; 297 R2 = [P0];
274 R3.H = hi(SRFS); 298 BITCLR(R2, 24); /* clear SRFS bit */
275 R3.L = lo(SRFS); 299 [P0] = R2
276#endif 300#endif
277 R3 = ~R3; 301 SSYNC;
278 R2 = R2&R3;
279 [P0] = R2;
280 ssync;
281 RTS; 302 RTS;
303ENDPROC(_unset_dram_srfs)
282 304
283ENTRY(_set_sic_iwr) 305ENTRY(_set_sic_iwr)
284#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) 306#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561)
@@ -300,6 +322,7 @@ ENTRY(_set_sic_iwr)
300 322
301 SSYNC; 323 SSYNC;
302 RTS; 324 RTS;
325ENDPROC(_set_sic_iwr)
303 326
304ENTRY(_set_rtc_istat) 327ENTRY(_set_rtc_istat)
305#ifndef CONFIG_BF561 328#ifndef CONFIG_BF561
@@ -307,8 +330,14 @@ ENTRY(_set_rtc_istat)
307 P0.L = lo(RTC_ISTAT); 330 P0.L = lo(RTC_ISTAT);
308 w[P0] = R0.L; 331 w[P0] = R0.L;
309 SSYNC; 332 SSYNC;
333#elif (ANOMALY_05000371)
334 nop;
335 nop;
336 nop;
337 nop;
310#endif 338#endif
311 RTS; 339 RTS;
340ENDPROC(_set_rtc_istat)
312 341
313ENTRY(_test_pll_locked) 342ENTRY(_test_pll_locked)
314 P0.H = hi(PLL_STAT); 343 P0.H = hi(PLL_STAT);
@@ -318,3 +347,509 @@ ENTRY(_test_pll_locked)
318 CC = BITTST(R0,5); 347 CC = BITTST(R0,5);
319 IF !CC JUMP 1b; 348 IF !CC JUMP 1b;
320 RTS; 349 RTS;
350ENDPROC(_test_pll_locked)
351
352.section .text
353
354ENTRY(_do_hibernate)
355 [--SP] = ( R7:0, P5:0 );
356 [--SP] = RETS;
357 /* Save System MMRs */
358 R2 = R0;
359 P0.H = hi(PLL_CTL);
360 P0.L = lo(PLL_CTL);
361
362#ifdef SIC_IMASK0
363 PM_SYS_PUSH(SIC_IMASK0)
364#endif
365#ifdef SIC_IMASK1
366 PM_SYS_PUSH(SIC_IMASK1)
367#endif
368#ifdef SIC_IMASK2
369 PM_SYS_PUSH(SIC_IMASK2)
370#endif
371#ifdef SIC_IMASK
372 PM_SYS_PUSH(SIC_IMASK)
373#endif
374#ifdef SICA_IMASK0
375 PM_SYS_PUSH(SICA_IMASK0)
376#endif
377#ifdef SICA_IMASK1
378 PM_SYS_PUSH(SICA_IMASK1)
379#endif
380#ifdef SIC_IAR2
381 PM_SYS_PUSH(SIC_IAR0)
382 PM_SYS_PUSH(SIC_IAR1)
383 PM_SYS_PUSH(SIC_IAR2)
384#endif
385#ifdef SIC_IAR3
386 PM_SYS_PUSH(SIC_IAR3)
387#endif
388#ifdef SIC_IAR4
389 PM_SYS_PUSH(SIC_IAR4)
390 PM_SYS_PUSH(SIC_IAR5)
391 PM_SYS_PUSH(SIC_IAR6)
392#endif
393#ifdef SIC_IAR7
394 PM_SYS_PUSH(SIC_IAR7)
395#endif
396#ifdef SIC_IAR8
397 PM_SYS_PUSH(SIC_IAR8)
398 PM_SYS_PUSH(SIC_IAR9)
399 PM_SYS_PUSH(SIC_IAR10)
400 PM_SYS_PUSH(SIC_IAR11)
401#endif
402
403#ifdef SICA_IAR0
404 PM_SYS_PUSH(SICA_IAR0)
405 PM_SYS_PUSH(SICA_IAR1)
406 PM_SYS_PUSH(SICA_IAR2)
407 PM_SYS_PUSH(SICA_IAR3)
408 PM_SYS_PUSH(SICA_IAR4)
409 PM_SYS_PUSH(SICA_IAR5)
410 PM_SYS_PUSH(SICA_IAR6)
411 PM_SYS_PUSH(SICA_IAR7)
412#endif
413
414#ifdef SIC_IWR
415 PM_SYS_PUSH(SIC_IWR)
416#endif
417#ifdef SIC_IWR0
418 PM_SYS_PUSH(SIC_IWR0)
419#endif
420#ifdef SIC_IWR1
421 PM_SYS_PUSH(SIC_IWR1)
422#endif
423#ifdef SIC_IWR2
424 PM_SYS_PUSH(SIC_IWR2)
425#endif
426#ifdef SICA_IWR0
427 PM_SYS_PUSH(SICA_IWR0)
428#endif
429#ifdef SICA_IWR1
430 PM_SYS_PUSH(SICA_IWR1)
431#endif
432
433#ifdef PINT0_ASSIGN
434 PM_SYS_PUSH(PINT0_ASSIGN)
435 PM_SYS_PUSH(PINT1_ASSIGN)
436 PM_SYS_PUSH(PINT2_ASSIGN)
437 PM_SYS_PUSH(PINT3_ASSIGN)
438#endif
439
440 PM_SYS_PUSH(EBIU_AMBCTL0)
441 PM_SYS_PUSH(EBIU_AMBCTL1)
442 PM_SYS_PUSH16(EBIU_AMGCTL)
443
444#ifdef EBIU_FCTL
445 PM_SYS_PUSH(EBIU_MBSCTL)
446 PM_SYS_PUSH(EBIU_MODE)
447 PM_SYS_PUSH(EBIU_FCTL)
448#endif
449
450 PM_SYS_PUSH16(SYSCR)
451
452 /* Save Core MMRs */
453 P0.H = hi(SRAM_BASE_ADDRESS);
454 P0.L = lo(SRAM_BASE_ADDRESS);
455
456 PM_PUSH(DMEM_CONTROL)
457 PM_PUSH(DCPLB_ADDR0)
458 PM_PUSH(DCPLB_ADDR1)
459 PM_PUSH(DCPLB_ADDR2)
460 PM_PUSH(DCPLB_ADDR3)
461 PM_PUSH(DCPLB_ADDR4)
462 PM_PUSH(DCPLB_ADDR5)
463 PM_PUSH(DCPLB_ADDR6)
464 PM_PUSH(DCPLB_ADDR7)
465 PM_PUSH(DCPLB_ADDR8)
466 PM_PUSH(DCPLB_ADDR9)
467 PM_PUSH(DCPLB_ADDR10)
468 PM_PUSH(DCPLB_ADDR11)
469 PM_PUSH(DCPLB_ADDR12)
470 PM_PUSH(DCPLB_ADDR13)
471 PM_PUSH(DCPLB_ADDR14)
472 PM_PUSH(DCPLB_ADDR15)
473 PM_PUSH(DCPLB_DATA0)
474 PM_PUSH(DCPLB_DATA1)
475 PM_PUSH(DCPLB_DATA2)
476 PM_PUSH(DCPLB_DATA3)
477 PM_PUSH(DCPLB_DATA4)
478 PM_PUSH(DCPLB_DATA5)
479 PM_PUSH(DCPLB_DATA6)
480 PM_PUSH(DCPLB_DATA7)
481 PM_PUSH(DCPLB_DATA8)
482 PM_PUSH(DCPLB_DATA9)
483 PM_PUSH(DCPLB_DATA10)
484 PM_PUSH(DCPLB_DATA11)
485 PM_PUSH(DCPLB_DATA12)
486 PM_PUSH(DCPLB_DATA13)
487 PM_PUSH(DCPLB_DATA14)
488 PM_PUSH(DCPLB_DATA15)
489 PM_PUSH(IMEM_CONTROL)
490 PM_PUSH(ICPLB_ADDR0)
491 PM_PUSH(ICPLB_ADDR1)
492 PM_PUSH(ICPLB_ADDR2)
493 PM_PUSH(ICPLB_ADDR3)
494 PM_PUSH(ICPLB_ADDR4)
495 PM_PUSH(ICPLB_ADDR5)
496 PM_PUSH(ICPLB_ADDR6)
497 PM_PUSH(ICPLB_ADDR7)
498 PM_PUSH(ICPLB_ADDR8)
499 PM_PUSH(ICPLB_ADDR9)
500 PM_PUSH(ICPLB_ADDR10)
501 PM_PUSH(ICPLB_ADDR11)
502 PM_PUSH(ICPLB_ADDR12)
503 PM_PUSH(ICPLB_ADDR13)
504 PM_PUSH(ICPLB_ADDR14)
505 PM_PUSH(ICPLB_ADDR15)
506 PM_PUSH(ICPLB_DATA0)
507 PM_PUSH(ICPLB_DATA1)
508 PM_PUSH(ICPLB_DATA2)
509 PM_PUSH(ICPLB_DATA3)
510 PM_PUSH(ICPLB_DATA4)
511 PM_PUSH(ICPLB_DATA5)
512 PM_PUSH(ICPLB_DATA6)
513 PM_PUSH(ICPLB_DATA7)
514 PM_PUSH(ICPLB_DATA8)
515 PM_PUSH(ICPLB_DATA9)
516 PM_PUSH(ICPLB_DATA10)
517 PM_PUSH(ICPLB_DATA11)
518 PM_PUSH(ICPLB_DATA12)
519 PM_PUSH(ICPLB_DATA13)
520 PM_PUSH(ICPLB_DATA14)
521 PM_PUSH(ICPLB_DATA15)
522 PM_PUSH(EVT0)
523 PM_PUSH(EVT1)
524 PM_PUSH(EVT2)
525 PM_PUSH(EVT3)
526 PM_PUSH(EVT4)
527 PM_PUSH(EVT5)
528 PM_PUSH(EVT6)
529 PM_PUSH(EVT7)
530 PM_PUSH(EVT8)
531 PM_PUSH(EVT9)
532 PM_PUSH(EVT10)
533 PM_PUSH(EVT11)
534 PM_PUSH(EVT12)
535 PM_PUSH(EVT13)
536 PM_PUSH(EVT14)
537 PM_PUSH(EVT15)
538 PM_PUSH(IMASK)
539 PM_PUSH(ILAT)
540 PM_PUSH(IPRIO)
541 PM_PUSH(TCNTL)
542 PM_PUSH(TPERIOD)
543 PM_PUSH(TSCALE)
544 PM_PUSH(TCOUNT)
545 PM_PUSH(TBUFCTL)
546
547 /* Save Core Registers */
548 [--sp] = SYSCFG;
549 [--sp] = ( R7:0, P5:0 );
550 [--sp] = fp;
551 [--sp] = usp;
552
553 [--sp] = i0;
554 [--sp] = i1;
555 [--sp] = i2;
556 [--sp] = i3;
557
558 [--sp] = m0;
559 [--sp] = m1;
560 [--sp] = m2;
561 [--sp] = m3;
562
563 [--sp] = l0;
564 [--sp] = l1;
565 [--sp] = l2;
566 [--sp] = l3;
567
568 [--sp] = b0;
569 [--sp] = b1;
570 [--sp] = b2;
571 [--sp] = b3;
572 [--sp] = a0.x;
573 [--sp] = a0.w;
574 [--sp] = a1.x;
575 [--sp] = a1.w;
576
577 [--sp] = LC0;
578 [--sp] = LC1;
579 [--sp] = LT0;
580 [--sp] = LT1;
581 [--sp] = LB0;
582 [--sp] = LB1;
583
584 [--sp] = ASTAT;
585 [--sp] = CYCLES;
586 [--sp] = CYCLES2;
587
588 [--sp] = RETS;
589 r0 = RETI;
590 [--sp] = r0;
591 [--sp] = RETX;
592 [--sp] = RETN;
593 [--sp] = RETE;
594 [--sp] = SEQSTAT;
595
596 /* Save Magic, return address and Stack Pointer */
597 P0.H = 0;
598 P0.L = 0;
599 R0.H = 0xDEAD; /* Hibernate Magic */
600 R0.L = 0xBEEF;
601 [P0++] = R0; /* Store Hibernate Magic */
602 R0.H = .Lpm_resume_here;
603 R0.L = .Lpm_resume_here;
604 [P0++] = R0; /* Save Return Address */
605 [P0++] = SP; /* Save Stack Pointer */
606 P0.H = _hibernate_mode;
607 P0.L = _hibernate_mode;
608 R0 = R2;
609 call (P0); /* Goodbye */
610
611.Lpm_resume_here:
612
613 /* Restore Core Registers */
614 SEQSTAT = [sp++];
615 RETE = [sp++];
616 RETN = [sp++];
617 RETX = [sp++];
618 r0 = [sp++];
619 RETI = r0;
620 RETS = [sp++];
621
622 CYCLES2 = [sp++];
623 CYCLES = [sp++];
624 ASTAT = [sp++];
625
626 LB1 = [sp++];
627 LB0 = [sp++];
628 LT1 = [sp++];
629 LT0 = [sp++];
630 LC1 = [sp++];
631 LC0 = [sp++];
632
633 a1.w = [sp++];
634 a1.x = [sp++];
635 a0.w = [sp++];
636 a0.x = [sp++];
637 b3 = [sp++];
638 b2 = [sp++];
639 b1 = [sp++];
640 b0 = [sp++];
641
642 l3 = [sp++];
643 l2 = [sp++];
644 l1 = [sp++];
645 l0 = [sp++];
646
647 m3 = [sp++];
648 m2 = [sp++];
649 m1 = [sp++];
650 m0 = [sp++];
651
652 i3 = [sp++];
653 i2 = [sp++];
654 i1 = [sp++];
655 i0 = [sp++];
656
657 usp = [sp++];
658 fp = [sp++];
659
660 ( R7 : 0, P5 : 0) = [ SP ++ ];
661 SYSCFG = [sp++];
662
663 /* Restore Core MMRs */
664
665 PM_POP(TBUFCTL)
666 PM_POP(TCOUNT)
667 PM_POP(TSCALE)
668 PM_POP(TPERIOD)
669 PM_POP(TCNTL)
670 PM_POP(IPRIO)
671 PM_POP(ILAT)
672 PM_POP(IMASK)
673 PM_POP(EVT15)
674 PM_POP(EVT14)
675 PM_POP(EVT13)
676 PM_POP(EVT12)
677 PM_POP(EVT11)
678 PM_POP(EVT10)
679 PM_POP(EVT9)
680 PM_POP(EVT8)
681 PM_POP(EVT7)
682 PM_POP(EVT6)
683 PM_POP(EVT5)
684 PM_POP(EVT4)
685 PM_POP(EVT3)
686 PM_POP(EVT2)
687 PM_POP(EVT1)
688 PM_POP(EVT0)
689 PM_POP(ICPLB_DATA15)
690 PM_POP(ICPLB_DATA14)
691 PM_POP(ICPLB_DATA13)
692 PM_POP(ICPLB_DATA12)
693 PM_POP(ICPLB_DATA11)
694 PM_POP(ICPLB_DATA10)
695 PM_POP(ICPLB_DATA9)
696 PM_POP(ICPLB_DATA8)
697 PM_POP(ICPLB_DATA7)
698 PM_POP(ICPLB_DATA6)
699 PM_POP(ICPLB_DATA5)
700 PM_POP(ICPLB_DATA4)
701 PM_POP(ICPLB_DATA3)
702 PM_POP(ICPLB_DATA2)
703 PM_POP(ICPLB_DATA1)
704 PM_POP(ICPLB_DATA0)
705 PM_POP(ICPLB_ADDR15)
706 PM_POP(ICPLB_ADDR14)
707 PM_POP(ICPLB_ADDR13)
708 PM_POP(ICPLB_ADDR12)
709 PM_POP(ICPLB_ADDR11)
710 PM_POP(ICPLB_ADDR10)
711 PM_POP(ICPLB_ADDR9)
712 PM_POP(ICPLB_ADDR8)
713 PM_POP(ICPLB_ADDR7)
714 PM_POP(ICPLB_ADDR6)
715 PM_POP(ICPLB_ADDR5)
716 PM_POP(ICPLB_ADDR4)
717 PM_POP(ICPLB_ADDR3)
718 PM_POP(ICPLB_ADDR2)
719 PM_POP(ICPLB_ADDR1)
720 PM_POP(ICPLB_ADDR0)
721 PM_POP(IMEM_CONTROL)
722 PM_POP(DCPLB_DATA15)
723 PM_POP(DCPLB_DATA14)
724 PM_POP(DCPLB_DATA13)
725 PM_POP(DCPLB_DATA12)
726 PM_POP(DCPLB_DATA11)
727 PM_POP(DCPLB_DATA10)
728 PM_POP(DCPLB_DATA9)
729 PM_POP(DCPLB_DATA8)
730 PM_POP(DCPLB_DATA7)
731 PM_POP(DCPLB_DATA6)
732 PM_POP(DCPLB_DATA5)
733 PM_POP(DCPLB_DATA4)
734 PM_POP(DCPLB_DATA3)
735 PM_POP(DCPLB_DATA2)
736 PM_POP(DCPLB_DATA1)
737 PM_POP(DCPLB_DATA0)
738 PM_POP(DCPLB_ADDR15)
739 PM_POP(DCPLB_ADDR14)
740 PM_POP(DCPLB_ADDR13)
741 PM_POP(DCPLB_ADDR12)
742 PM_POP(DCPLB_ADDR11)
743 PM_POP(DCPLB_ADDR10)
744 PM_POP(DCPLB_ADDR9)
745 PM_POP(DCPLB_ADDR8)
746 PM_POP(DCPLB_ADDR7)
747 PM_POP(DCPLB_ADDR6)
748 PM_POP(DCPLB_ADDR5)
749 PM_POP(DCPLB_ADDR4)
750 PM_POP(DCPLB_ADDR3)
751 PM_POP(DCPLB_ADDR2)
752 PM_POP(DCPLB_ADDR1)
753 PM_POP(DCPLB_ADDR0)
754 PM_POP(DMEM_CONTROL)
755
756 /* Restore System MMRs */
757
758 P0.H = hi(PLL_CTL);
759 P0.L = lo(PLL_CTL);
760 PM_SYS_POP16(SYSCR)
761
762#ifdef EBIU_FCTL
763 PM_SYS_POP(EBIU_FCTL)
764 PM_SYS_POP(EBIU_MODE)
765 PM_SYS_POP(EBIU_MBSCTL)
766#endif
767 PM_SYS_POP16(EBIU_AMGCTL)
768 PM_SYS_POP(EBIU_AMBCTL1)
769 PM_SYS_POP(EBIU_AMBCTL0)
770
771#ifdef PINT0_ASSIGN
772 PM_SYS_POP(PINT3_ASSIGN)
773 PM_SYS_POP(PINT2_ASSIGN)
774 PM_SYS_POP(PINT1_ASSIGN)
775 PM_SYS_POP(PINT0_ASSIGN)
776#endif
777
778#ifdef SICA_IWR1
779 PM_SYS_POP(SICA_IWR1)
780#endif
781#ifdef SICA_IWR0
782 PM_SYS_POP(SICA_IWR0)
783#endif
784#ifdef SIC_IWR2
785 PM_SYS_POP(SIC_IWR2)
786#endif
787#ifdef SIC_IWR1
788 PM_SYS_POP(SIC_IWR1)
789#endif
790#ifdef SIC_IWR0
791 PM_SYS_POP(SIC_IWR0)
792#endif
793#ifdef SIC_IWR
794 PM_SYS_POP(SIC_IWR)
795#endif
796
797#ifdef SICA_IAR0
798 PM_SYS_POP(SICA_IAR7)
799 PM_SYS_POP(SICA_IAR6)
800 PM_SYS_POP(SICA_IAR5)
801 PM_SYS_POP(SICA_IAR4)
802 PM_SYS_POP(SICA_IAR3)
803 PM_SYS_POP(SICA_IAR2)
804 PM_SYS_POP(SICA_IAR1)
805 PM_SYS_POP(SICA_IAR0)
806#endif
807
808#ifdef SIC_IAR8
809 PM_SYS_POP(SIC_IAR11)
810 PM_SYS_POP(SIC_IAR10)
811 PM_SYS_POP(SIC_IAR9)
812 PM_SYS_POP(SIC_IAR8)
813#endif
814#ifdef SIC_IAR7
815 PM_SYS_POP(SIC_IAR7)
816#endif
817#ifdef SIC_IAR6
818 PM_SYS_POP(SIC_IAR6)
819 PM_SYS_POP(SIC_IAR5)
820 PM_SYS_POP(SIC_IAR4)
821#endif
822#ifdef SIC_IAR3
823 PM_SYS_POP(SIC_IAR3)
824#endif
825#ifdef SIC_IAR2
826 PM_SYS_POP(SIC_IAR2)
827 PM_SYS_POP(SIC_IAR1)
828 PM_SYS_POP(SIC_IAR0)
829#endif
830#ifdef SICA_IMASK1
831 PM_SYS_POP(SICA_IMASK1)
832#endif
833#ifdef SICA_IMASK0
834 PM_SYS_POP(SICA_IMASK0)
835#endif
836#ifdef SIC_IMASK
837 PM_SYS_POP(SIC_IMASK)
838#endif
839#ifdef SIC_IMASK2
840 PM_SYS_POP(SIC_IMASK2)
841#endif
842#ifdef SIC_IMASK1
843 PM_SYS_POP(SIC_IMASK1)
844#endif
845#ifdef SIC_IMASK0
846 PM_SYS_POP(SIC_IMASK0)
847#endif
848
849 [--sp] = RETI; /* Clear Global Interrupt Disable */
850 SP += 4;
851
852 RETS = [SP++];
853 ( R7:0, P5:0 ) = [SP++];
854 RTS;
855ENDPROC(_do_hibernate)
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index 038f70e0be65..eceb484d90f9 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -158,23 +158,45 @@ ENTRY(_ex_single_step)
158 cc = r7 == r6; 158 cc = r7 == r6;
159 if cc jump _bfin_return_from_exception; 159 if cc jump _bfin_return_from_exception;
160 160
161 /* Don't do single step in hardware exception handler */
162 p5.l = lo(IPEND);
163 p5.h = hi(IPEND);
164 r6 = [p5];
165 cc = bittst(r6, 5);
166 if cc jump _bfin_return_from_exception;
167
168#ifdef CONFIG_KGDB
169 /* skip single step if current interrupt priority is higher than
170 * that of the first instruction, from which gdb starts single step */
171 r6 >>= 6;
172 r7 = 10;
173.Lfind_priority_start:
174 cc = bittst(r6, 0);
175 if cc jump .Lfind_priority_done;
176 r6 >>= 1;
177 r7 += -1;
178 cc = r7 == 0;
179 if cc jump .Lfind_priority_done;
180 jump.s .Lfind_priority_start;
181.Lfind_priority_done:
182 p4.l = _debugger_step;
183 p4.h = _debugger_step;
184 r6 = [p4];
185 cc = r6 == 0;
186 if cc jump .Ldo_single_step;
187 r6 += -1;
188 cc = r6 < r7;
189 if cc jump _bfin_return_from_exception;
190.Ldo_single_step:
191#endif
192
161 /* If we were in user mode, do the single step normally. */ 193 /* If we were in user mode, do the single step normally. */
162 p5.l = lo(IPEND);
163 p5.h = hi(IPEND);
164 r6 = [p5]; 194 r6 = [p5];
165 r7 = 0xffe0 (z); 195 r7 = 0xffe0 (z);
166 r7 = r7 & r6; 196 r7 = r7 & r6;
167 cc = r7 == 0; 197 cc = r7 == 0;
168 if !cc jump 1f; 198 if cc jump 1f;
169
170 /* Single stepping only a single instruction, so clear the trace
171 * bit here. */
172 r7 = syscfg;
173 bitclr (r7, 0);
174 syscfg = R7;
175 jump _ex_trap_c;
176 199
1771:
178 /* 200 /*
179 * We were in an interrupt handler. By convention, all of them save 201 * We were in an interrupt handler. By convention, all of them save
180 * SYSCFG with their first instruction, so by checking whether our 202 * SYSCFG with their first instruction, so by checking whether our
@@ -202,11 +224,15 @@ ENTRY(_ex_single_step)
202 cc = R7 == R6; 224 cc = R7 == R6;
203 if !cc jump _bfin_return_from_exception; 225 if !cc jump _bfin_return_from_exception;
204 226
2271:
228 /* Single stepping only a single instruction, so clear the trace
229 * bit here. */
205 r7 = syscfg; 230 r7 = syscfg;
206 bitclr (r7, 0); 231 bitclr (r7, 0);
207 syscfg = R7; 232 syscfg = R7;
208 233
209 /* Fall through to _bfin_return_from_exception. */ 234 jump _ex_trap_c;
235
210ENDPROC(_ex_single_step) 236ENDPROC(_ex_single_step)
211 237
212ENTRY(_bfin_return_from_exception) 238ENTRY(_bfin_return_from_exception)
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index f5fd768022ea..64d746114e4b 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -459,6 +459,8 @@ static struct irq_chip bfin_gpio_irqchip = {
459 .mask = bfin_gpio_mask_irq, 459 .mask = bfin_gpio_mask_irq,
460 .mask_ack = bfin_gpio_mask_ack_irq, 460 .mask_ack = bfin_gpio_mask_ack_irq,
461 .unmask = bfin_gpio_unmask_irq, 461 .unmask = bfin_gpio_unmask_irq,
462 .disable = bfin_gpio_mask_irq,
463 .enable = bfin_gpio_unmask_irq,
462 .set_type = bfin_gpio_irq_type, 464 .set_type = bfin_gpio_irq_type,
463 .startup = bfin_gpio_irq_startup, 465 .startup = bfin_gpio_irq_startup,
464 .shutdown = bfin_gpio_irq_shutdown, 466 .shutdown = bfin_gpio_irq_shutdown,
@@ -846,6 +848,8 @@ static struct irq_chip bfin_gpio_irqchip = {
846 .mask = bfin_gpio_mask_irq, 848 .mask = bfin_gpio_mask_irq,
847 .mask_ack = bfin_gpio_mask_ack_irq, 849 .mask_ack = bfin_gpio_mask_ack_irq,
848 .unmask = bfin_gpio_unmask_irq, 850 .unmask = bfin_gpio_unmask_irq,
851 .disable = bfin_gpio_mask_irq,
852 .enable = bfin_gpio_unmask_irq,
849 .set_type = bfin_gpio_irq_type, 853 .set_type = bfin_gpio_irq_type,
850 .startup = bfin_gpio_irq_startup, 854 .startup = bfin_gpio_irq_startup,
851 .shutdown = bfin_gpio_irq_shutdown, 855 .shutdown = bfin_gpio_irq_shutdown,
diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c
index 0be805ca423f..4fe6a2366b13 100644
--- a/arch/blackfin/mach-common/pm.c
+++ b/arch/blackfin/mach-common/pm.c
@@ -38,8 +38,9 @@
38#include <linux/io.h> 38#include <linux/io.h>
39#include <linux/irq.h> 39#include <linux/irq.h>
40 40
41#include <asm/dpmc.h>
42#include <asm/gpio.h> 41#include <asm/gpio.h>
42#include <asm/dma.h>
43#include <asm/dpmc.h>
43 44
44#ifdef CONFIG_PM_WAKEUP_GPIO_POLAR_H 45#ifdef CONFIG_PM_WAKEUP_GPIO_POLAR_H
45#define WAKEUP_TYPE PM_WAKE_HIGH 46#define WAKEUP_TYPE PM_WAKE_HIGH
@@ -61,16 +62,17 @@
61#define WAKEUP_TYPE PM_WAKE_BOTH_EDGES 62#define WAKEUP_TYPE PM_WAKE_BOTH_EDGES
62#endif 63#endif
63 64
65
64void bfin_pm_suspend_standby_enter(void) 66void bfin_pm_suspend_standby_enter(void)
65{ 67{
68 unsigned long flags;
69
66#ifdef CONFIG_PM_WAKEUP_BY_GPIO 70#ifdef CONFIG_PM_WAKEUP_BY_GPIO
67 gpio_pm_wakeup_request(CONFIG_PM_WAKEUP_GPIO_NUMBER, WAKEUP_TYPE); 71 gpio_pm_wakeup_request(CONFIG_PM_WAKEUP_GPIO_NUMBER, WAKEUP_TYPE);
68#endif 72#endif
69 73
70 u32 flags;
71
72 local_irq_save(flags); 74 local_irq_save(flags);
73 bfin_pm_setup(); 75 bfin_pm_standby_setup();
74 76
75#ifdef CONFIG_PM_BFIN_SLEEP_DEEPER 77#ifdef CONFIG_PM_BFIN_SLEEP_DEEPER
76 sleep_deeper(bfin_sic_iwr[0], bfin_sic_iwr[1], bfin_sic_iwr[2]); 78 sleep_deeper(bfin_sic_iwr[0], bfin_sic_iwr[1], bfin_sic_iwr[2]);
@@ -78,7 +80,7 @@ void bfin_pm_suspend_standby_enter(void)
78 sleep_mode(bfin_sic_iwr[0], bfin_sic_iwr[1], bfin_sic_iwr[2]); 80 sleep_mode(bfin_sic_iwr[0], bfin_sic_iwr[1], bfin_sic_iwr[2]);
79#endif 81#endif
80 82
81 bfin_pm_restore(); 83 bfin_pm_standby_restore();
82 84
83#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) 85#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561)
84 bfin_write_SIC_IWR0(IWR_ENABLE_ALL); 86 bfin_write_SIC_IWR0(IWR_ENABLE_ALL);
@@ -93,6 +95,195 @@ void bfin_pm_suspend_standby_enter(void)
93 local_irq_restore(flags); 95 local_irq_restore(flags);
94} 96}
95 97
98int bf53x_suspend_l1_mem(unsigned char *memptr)
99{
100 dma_memcpy(memptr, (const void *) L1_CODE_START, L1_CODE_LENGTH);
101 dma_memcpy(memptr + L1_CODE_LENGTH, (const void *) L1_DATA_A_START,
102 L1_DATA_A_LENGTH);
103 dma_memcpy(memptr + L1_CODE_LENGTH + L1_DATA_A_LENGTH,
104 (const void *) L1_DATA_B_START, L1_DATA_B_LENGTH);
105 memcpy(memptr + L1_CODE_LENGTH + L1_DATA_A_LENGTH +
106 L1_DATA_B_LENGTH, (const void *) L1_SCRATCH_START,
107 L1_SCRATCH_LENGTH);
108
109 return 0;
110}
111
112int bf53x_resume_l1_mem(unsigned char *memptr)
113{
114 dma_memcpy((void *) L1_CODE_START, memptr, L1_CODE_LENGTH);
115 dma_memcpy((void *) L1_DATA_A_START, memptr + L1_CODE_LENGTH,
116 L1_DATA_A_LENGTH);
117 dma_memcpy((void *) L1_DATA_B_START, memptr + L1_CODE_LENGTH +
118 L1_DATA_A_LENGTH, L1_DATA_B_LENGTH);
119 memcpy((void *) L1_SCRATCH_START, memptr + L1_CODE_LENGTH +
120 L1_DATA_A_LENGTH + L1_DATA_B_LENGTH, L1_SCRATCH_LENGTH);
121
122 return 0;
123}
124
125#ifdef CONFIG_BFIN_WB
126static void flushinv_all_dcache(void)
127{
128 u32 way, bank, subbank, set;
129 u32 status, addr;
130 u32 dmem_ctl = bfin_read_DMEM_CONTROL();
131
132 for (bank = 0; bank < 2; ++bank) {
133 if (!(dmem_ctl & (1 << (DMC1_P - bank))))
134 continue;
135
136 for (way = 0; way < 2; ++way)
137 for (subbank = 0; subbank < 4; ++subbank)
138 for (set = 0; set < 64; ++set) {
139
140 bfin_write_DTEST_COMMAND(
141 way << 26 |
142 bank << 23 |
143 subbank << 16 |
144 set << 5
145 );
146 CSYNC();
147 status = bfin_read_DTEST_DATA0();
148
149 /* only worry about valid/dirty entries */
150 if ((status & 0x3) != 0x3)
151 continue;
152
153 /* construct the address using the tag */
154 addr = (status & 0xFFFFC800) | (subbank << 12) | (set << 5);
155
156 /* flush it */
157 __asm__ __volatile__("FLUSHINV[%0];" : : "a"(addr));
158 }
159 }
160}
161#endif
162
163static inline void dcache_disable(void)
164{
165#ifdef CONFIG_BFIN_DCACHE
166 unsigned long ctrl;
167
168#ifdef CONFIG_BFIN_WB
169 flushinv_all_dcache();
170#endif
171 SSYNC();
172 ctrl = bfin_read_DMEM_CONTROL();
173 ctrl &= ~ENDCPLB;
174 bfin_write_DMEM_CONTROL(ctrl);
175 SSYNC();
176#endif
177}
178
179static inline void dcache_enable(void)
180{
181#ifdef CONFIG_BFIN_DCACHE
182 unsigned long ctrl;
183 SSYNC();
184 ctrl = bfin_read_DMEM_CONTROL();
185 ctrl |= ENDCPLB;
186 bfin_write_DMEM_CONTROL(ctrl);
187 SSYNC();
188#endif
189}
190
191static inline void icache_disable(void)
192{
193#ifdef CONFIG_BFIN_ICACHE
194 unsigned long ctrl;
195 SSYNC();
196 ctrl = bfin_read_IMEM_CONTROL();
197 ctrl &= ~ENICPLB;
198 bfin_write_IMEM_CONTROL(ctrl);
199 SSYNC();
200#endif
201}
202
203static inline void icache_enable(void)
204{
205#ifdef CONFIG_BFIN_ICACHE
206 unsigned long ctrl;
207 SSYNC();
208 ctrl = bfin_read_IMEM_CONTROL();
209 ctrl |= ENICPLB;
210 bfin_write_IMEM_CONTROL(ctrl);
211 SSYNC();
212#endif
213}
214
215int bfin_pm_suspend_mem_enter(void)
216{
217 unsigned long flags;
218 int wakeup, ret;
219
220 unsigned char *memptr = kmalloc(L1_CODE_LENGTH + L1_DATA_A_LENGTH
221 + L1_DATA_B_LENGTH + L1_SCRATCH_LENGTH,
222 GFP_KERNEL);
223
224 if (memptr == NULL) {
225 panic("bf53x_suspend_l1_mem malloc failed");
226 return -ENOMEM;
227 }
228
229 wakeup = bfin_read_VR_CTL() & ~FREQ;
230 wakeup |= SCKELOW;
231
232 /* FIXME: merge this somehow with set_irq_wake */
233#ifdef CONFIG_PM_BFIN_WAKE_RTC
234 wakeup |= WAKE;
235#endif
236#ifdef CONFIG_PM_BFIN_WAKE_PH6
237 wakeup |= PHYWE;
238#endif
239#ifdef CONFIG_PM_BFIN_WAKE_CAN
240 wakeup |= CANWE;
241#endif
242#ifdef CONFIG_PM_BFIN_WAKE_GP
243 wakeup |= GPWE;
244#endif
245#ifdef CONFIG_PM_BFIN_WAKE_USB
246 wakeup |= USBWE;
247#endif
248#ifdef CONFIG_PM_BFIN_WAKE_KEYPAD
249 wakeup |= KPADWE;
250#endif
251#ifdef CONFIG_PM_BFIN_WAKE_ROTARY
252 wakeup |= ROTWE;
253#endif
254
255 local_irq_save(flags);
256
257 ret = blackfin_dma_suspend();
258
259 if (ret) {
260 local_irq_restore(flags);
261 kfree(memptr);
262 return ret;
263 }
264
265 bfin_gpio_pm_hibernate_suspend();
266
267 dcache_disable();
268 icache_disable();
269 bf53x_suspend_l1_mem(memptr);
270
271 do_hibernate(wakeup); /* Goodbye */
272
273 bf53x_resume_l1_mem(memptr);
274
275 icache_enable();
276 dcache_enable();
277
278 bfin_gpio_pm_hibernate_restore();
279 blackfin_dma_resume();
280
281 local_irq_restore(flags);
282 kfree(memptr);
283
284 return 0;
285}
286
96/* 287/*
97 * bfin_pm_valid - Tell the PM core that we only support the standby sleep 288 * bfin_pm_valid - Tell the PM core that we only support the standby sleep
98 * state 289 * state
@@ -101,7 +292,24 @@ void bfin_pm_suspend_standby_enter(void)
101 */ 292 */
102static int bfin_pm_valid(suspend_state_t state) 293static int bfin_pm_valid(suspend_state_t state)
103{ 294{
104 return (state == PM_SUSPEND_STANDBY); 295 return (state == PM_SUSPEND_STANDBY
296#ifndef BF533_FAMILY
297 /*
298 * On BF533/2/1:
299 * If we enter Hibernate the SCKE Pin is driven Low,
300 * so that the SDRAM enters Self Refresh Mode.
301 * However when the reset sequence that follows hibernate
302 * state is executed, SCKE is driven High, taking the
303 * SDRAM out of Self Refresh.
304 *
305 * If you reconfigure and access the SDRAM "very quickly",
306 * you are likely to avoid errors, otherwise the SDRAM
307 * start losing its contents.
308 * An external HW workaround is possible using logic gates.
309 */
310 || state == PM_SUSPEND_MEM
311#endif
312 );
105} 313}
106 314
107/* 315/*
@@ -115,10 +323,9 @@ static int bfin_pm_enter(suspend_state_t state)
115 case PM_SUSPEND_STANDBY: 323 case PM_SUSPEND_STANDBY:
116 bfin_pm_suspend_standby_enter(); 324 bfin_pm_suspend_standby_enter();
117 break; 325 break;
118
119 case PM_SUSPEND_MEM: 326 case PM_SUSPEND_MEM:
120 return -ENOTSUPP; 327 bfin_pm_suspend_mem_enter();
121 328 break;
122 default: 329 default:
123 return -EINVAL; 330 return -EINVAL;
124 } 331 }
diff --git a/arch/blackfin/mm/blackfin_sram.c b/arch/blackfin/mm/blackfin_sram.c
index 3246f91c7baa..5af3c31c9365 100644
--- a/arch/blackfin/mm/blackfin_sram.c
+++ b/arch/blackfin/mm/blackfin_sram.c
@@ -41,215 +41,309 @@
41#include <asm/blackfin.h> 41#include <asm/blackfin.h>
42#include "blackfin_sram.h" 42#include "blackfin_sram.h"
43 43
44spinlock_t l1sram_lock, l1_data_sram_lock, l1_inst_sram_lock; 44static spinlock_t l1sram_lock, l1_data_sram_lock, l1_inst_sram_lock;
45 45static spinlock_t l2_sram_lock;
46#if CONFIG_L1_MAX_PIECE < 16
47#undef CONFIG_L1_MAX_PIECE
48#define CONFIG_L1_MAX_PIECE 16
49#endif
50
51#if CONFIG_L1_MAX_PIECE > 1024
52#undef CONFIG_L1_MAX_PIECE
53#define CONFIG_L1_MAX_PIECE 1024
54#endif
55
56#define SRAM_SLT_NULL 0
57#define SRAM_SLT_FREE 1
58#define SRAM_SLT_ALLOCATED 2
59 46
60/* the data structure for L1 scratchpad and DATA SRAM */ 47/* the data structure for L1 scratchpad and DATA SRAM */
61struct l1_sram_piece { 48struct sram_piece {
62 void *paddr; 49 void *paddr;
63 int size; 50 int size;
64 int flag;
65 pid_t pid; 51 pid_t pid;
52 struct sram_piece *next;
66}; 53};
67 54
68static struct l1_sram_piece l1_ssram[CONFIG_L1_MAX_PIECE]; 55static struct sram_piece free_l1_ssram_head, used_l1_ssram_head;
69 56
70#if L1_DATA_A_LENGTH != 0 57#if L1_DATA_A_LENGTH != 0
71static struct l1_sram_piece l1_data_A_sram[CONFIG_L1_MAX_PIECE]; 58static struct sram_piece free_l1_data_A_sram_head, used_l1_data_A_sram_head;
72#endif 59#endif
73 60
74#if L1_DATA_B_LENGTH != 0 61#if L1_DATA_B_LENGTH != 0
75static struct l1_sram_piece l1_data_B_sram[CONFIG_L1_MAX_PIECE]; 62static struct sram_piece free_l1_data_B_sram_head, used_l1_data_B_sram_head;
76#endif 63#endif
77 64
78#if L1_CODE_LENGTH != 0 65#if L1_CODE_LENGTH != 0
79static struct l1_sram_piece l1_inst_sram[CONFIG_L1_MAX_PIECE]; 66static struct sram_piece free_l1_inst_sram_head, used_l1_inst_sram_head;
67#endif
68
69#ifdef L2_LENGTH
70static struct sram_piece free_l2_sram_head, used_l2_sram_head;
80#endif 71#endif
81 72
73static struct kmem_cache *sram_piece_cache;
74
82/* L1 Scratchpad SRAM initialization function */ 75/* L1 Scratchpad SRAM initialization function */
83void __init l1sram_init(void) 76static void __init l1sram_init(void)
84{ 77{
85 printk(KERN_INFO "Blackfin Scratchpad data SRAM: %d KB\n", 78 free_l1_ssram_head.next =
86 L1_SCRATCH_LENGTH >> 10); 79 kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
80 if (!free_l1_ssram_head.next) {
81 printk(KERN_INFO"Fail to initialize Scratchpad data SRAM.\n");
82 return;
83 }
84
85 free_l1_ssram_head.next->paddr = (void *)L1_SCRATCH_START;
86 free_l1_ssram_head.next->size = L1_SCRATCH_LENGTH;
87 free_l1_ssram_head.next->pid = 0;
88 free_l1_ssram_head.next->next = NULL;
87 89
88 memset(&l1_ssram, 0x00, sizeof(l1_ssram)); 90 used_l1_ssram_head.next = NULL;
89 l1_ssram[0].paddr = (void *)L1_SCRATCH_START;
90 l1_ssram[0].size = L1_SCRATCH_LENGTH;
91 l1_ssram[0].flag = SRAM_SLT_FREE;
92 91
93 /* mutex initialize */ 92 /* mutex initialize */
94 spin_lock_init(&l1sram_lock); 93 spin_lock_init(&l1sram_lock);
94
95 printk(KERN_INFO "Blackfin Scratchpad data SRAM: %d KB\n",
96 L1_SCRATCH_LENGTH >> 10);
95} 97}
96 98
97void __init l1_data_sram_init(void) 99static void __init l1_data_sram_init(void)
98{ 100{
99#if L1_DATA_A_LENGTH != 0 101#if L1_DATA_A_LENGTH != 0
100 memset(&l1_data_A_sram, 0x00, sizeof(l1_data_A_sram)); 102 free_l1_data_A_sram_head.next =
101 l1_data_A_sram[0].paddr = (void *)L1_DATA_A_START + 103 kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
102 (_ebss_l1 - _sdata_l1); 104 if (!free_l1_data_A_sram_head.next) {
103 l1_data_A_sram[0].size = L1_DATA_A_LENGTH - (_ebss_l1 - _sdata_l1); 105 printk(KERN_INFO"Fail to initialize L1 Data A SRAM.\n");
104 l1_data_A_sram[0].flag = SRAM_SLT_FREE; 106 return;
105 107 }
106 printk(KERN_INFO "Blackfin Data A SRAM: %d KB (%d KB free)\n", 108
107 L1_DATA_A_LENGTH >> 10, l1_data_A_sram[0].size >> 10); 109 free_l1_data_A_sram_head.next->paddr =
110 (void *)L1_DATA_A_START + (_ebss_l1 - _sdata_l1);
111 free_l1_data_A_sram_head.next->size =
112 L1_DATA_A_LENGTH - (_ebss_l1 - _sdata_l1);
113 free_l1_data_A_sram_head.next->pid = 0;
114 free_l1_data_A_sram_head.next->next = NULL;
115
116 used_l1_data_A_sram_head.next = NULL;
117
118 printk(KERN_INFO "Blackfin L1 Data A SRAM: %d KB (%d KB free)\n",
119 L1_DATA_A_LENGTH >> 10,
120 free_l1_data_A_sram_head.next->size >> 10);
108#endif 121#endif
109#if L1_DATA_B_LENGTH != 0 122#if L1_DATA_B_LENGTH != 0
110 memset(&l1_data_B_sram, 0x00, sizeof(l1_data_B_sram)); 123 free_l1_data_B_sram_head.next =
111 l1_data_B_sram[0].paddr = (void *)L1_DATA_B_START + 124 kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
112 (_ebss_b_l1 - _sdata_b_l1); 125 if (!free_l1_data_B_sram_head.next) {
113 l1_data_B_sram[0].size = L1_DATA_B_LENGTH - (_ebss_b_l1 - _sdata_b_l1); 126 printk(KERN_INFO"Fail to initialize L1 Data B SRAM.\n");
114 l1_data_B_sram[0].flag = SRAM_SLT_FREE; 127 return;
115 128 }
116 printk(KERN_INFO "Blackfin Data B SRAM: %d KB (%d KB free)\n", 129
117 L1_DATA_B_LENGTH >> 10, l1_data_B_sram[0].size >> 10); 130 free_l1_data_B_sram_head.next->paddr =
131 (void *)L1_DATA_B_START + (_ebss_b_l1 - _sdata_b_l1);
132 free_l1_data_B_sram_head.next->size =
133 L1_DATA_B_LENGTH - (_ebss_b_l1 - _sdata_b_l1);
134 free_l1_data_B_sram_head.next->pid = 0;
135 free_l1_data_B_sram_head.next->next = NULL;
136
137 used_l1_data_B_sram_head.next = NULL;
138
139 printk(KERN_INFO "Blackfin L1 Data B SRAM: %d KB (%d KB free)\n",
140 L1_DATA_B_LENGTH >> 10,
141 free_l1_data_B_sram_head.next->size >> 10);
118#endif 142#endif
119 143
120 /* mutex initialize */ 144 /* mutex initialize */
121 spin_lock_init(&l1_data_sram_lock); 145 spin_lock_init(&l1_data_sram_lock);
122} 146}
123 147
124void __init l1_inst_sram_init(void) 148static void __init l1_inst_sram_init(void)
125{ 149{
126#if L1_CODE_LENGTH != 0 150#if L1_CODE_LENGTH != 0
127 memset(&l1_inst_sram, 0x00, sizeof(l1_inst_sram)); 151 free_l1_inst_sram_head.next =
128 l1_inst_sram[0].paddr = (void *)L1_CODE_START + (_etext_l1 - _stext_l1); 152 kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
129 l1_inst_sram[0].size = L1_CODE_LENGTH - (_etext_l1 - _stext_l1); 153 if (!free_l1_inst_sram_head.next) {
130 l1_inst_sram[0].flag = SRAM_SLT_FREE; 154 printk(KERN_INFO"Fail to initialize L1 Instruction SRAM.\n");
155 return;
156 }
131 157
132 printk(KERN_INFO "Blackfin Instruction SRAM: %d KB (%d KB free)\n", 158 free_l1_inst_sram_head.next->paddr =
133 L1_CODE_LENGTH >> 10, l1_inst_sram[0].size >> 10); 159 (void *)L1_CODE_START + (_etext_l1 - _stext_l1);
160 free_l1_inst_sram_head.next->size =
161 L1_CODE_LENGTH - (_etext_l1 - _stext_l1);
162 free_l1_inst_sram_head.next->pid = 0;
163 free_l1_inst_sram_head.next->next = NULL;
164
165 used_l1_inst_sram_head.next = NULL;
166
167 printk(KERN_INFO "Blackfin L1 Instruction SRAM: %d KB (%d KB free)\n",
168 L1_CODE_LENGTH >> 10,
169 free_l1_inst_sram_head.next->size >> 10);
134#endif 170#endif
135 171
136 /* mutex initialize */ 172 /* mutex initialize */
137 spin_lock_init(&l1_inst_sram_lock); 173 spin_lock_init(&l1_inst_sram_lock);
138} 174}
139 175
140/* L1 memory allocate function */ 176static void __init l2_sram_init(void)
141static void *_l1_sram_alloc(size_t size, struct l1_sram_piece *pfree, int count)
142{ 177{
143 int i, index = 0; 178#ifdef L2_LENGTH
144 void *addr = NULL; 179 free_l2_sram_head.next =
180 kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
181 if (!free_l2_sram_head.next) {
182 printk(KERN_INFO"Fail to initialize L2 SRAM.\n");
183 return;
184 }
145 185
146 if (size <= 0) 186 free_l2_sram_head.next->paddr = (void *)L2_START +
187 (_etext_l2 - _stext_l2) + (_edata_l2 - _sdata_l2);
188 free_l2_sram_head.next->size = L2_LENGTH -
189 (_etext_l2 - _stext_l2) + (_edata_l2 - _sdata_l2);
190 free_l2_sram_head.next->pid = 0;
191 free_l2_sram_head.next->next = NULL;
192
193 used_l2_sram_head.next = NULL;
194
195 printk(KERN_INFO "Blackfin L2 SRAM: %d KB (%d KB free)\n",
196 L2_LENGTH >> 10,
197 free_l2_sram_head.next->size >> 10);
198#endif
199
200 /* mutex initialize */
201 spin_lock_init(&l2_sram_lock);
202}
203void __init bfin_sram_init(void)
204{
205 sram_piece_cache = kmem_cache_create("sram_piece_cache",
206 sizeof(struct sram_piece),
207 0, SLAB_PANIC, NULL);
208
209 l1sram_init();
210 l1_data_sram_init();
211 l1_inst_sram_init();
212 l2_sram_init();
213}
214
215/* SRAM allocate function */
216static void *_sram_alloc(size_t size, struct sram_piece *pfree_head,
217 struct sram_piece *pused_head)
218{
219 struct sram_piece *pslot, *plast, *pavail;
220
221 if (size <= 0 || !pfree_head || !pused_head)
147 return NULL; 222 return NULL;
148 223
149 /* Align the size */ 224 /* Align the size */
150 size = (size + 3) & ~3; 225 size = (size + 3) & ~3;
151 226
152 /* not use the good method to match the best slot !!! */ 227 pslot = pfree_head->next;
153 /* search an available memory slot */ 228 plast = pfree_head;
154 for (i = 0; i < count; i++) { 229
155 if ((pfree[i].flag == SRAM_SLT_FREE) 230 /* search an available piece slot */
156 && (pfree[i].size >= size)) { 231 while (pslot != NULL && size > pslot->size) {
157 addr = pfree[i].paddr; 232 plast = pslot;
158 pfree[i].flag = SRAM_SLT_ALLOCATED; 233 pslot = pslot->next;
159 pfree[i].pid = current->pid;
160 index = i;
161 break;
162 }
163 } 234 }
164 if (i >= count) 235
236 if (!pslot)
165 return NULL; 237 return NULL;
166 238
167 /* updated the NULL memory slot !!! */ 239 if (pslot->size == size) {
168 if (pfree[i].size > size) { 240 plast->next = pslot->next;
169 for (i = 0; i < count; i++) { 241 pavail = pslot;
170 if (pfree[i].flag == SRAM_SLT_NULL) { 242 } else {
171 pfree[i].pid = 0; 243 pavail = kmem_cache_alloc(sram_piece_cache, GFP_KERNEL);
172 pfree[i].flag = SRAM_SLT_FREE; 244
173 pfree[i].paddr = addr + size; 245 if (!pavail)
174 pfree[i].size = pfree[index].size - size; 246 return NULL;
175 pfree[index].size = size; 247
176 break; 248 pavail->paddr = pslot->paddr;
177 } 249 pavail->size = size;
178 } 250 pslot->paddr += size;
251 pslot->size -= size;
179 } 252 }
180 253
181 return addr; 254 pavail->pid = current->pid;
255
256 pslot = pused_head->next;
257 plast = pused_head;
258
259 /* insert new piece into used piece list !!! */
260 while (pslot != NULL && pavail->paddr < pslot->paddr) {
261 plast = pslot;
262 pslot = pslot->next;
263 }
264
265 pavail->next = pslot;
266 plast->next = pavail;
267
268 return pavail->paddr;
182} 269}
183 270
184/* Allocate the largest available block. */ 271/* Allocate the largest available block. */
185static void *_l1_sram_alloc_max(struct l1_sram_piece *pfree, int count, 272static void *_sram_alloc_max(struct sram_piece *pfree_head,
273 struct sram_piece *pused_head,
186 unsigned long *psize) 274 unsigned long *psize)
187{ 275{
188 unsigned long best = 0; 276 struct sram_piece *pslot, *pmax;
189 int i, index = -1;
190 void *addr = NULL;
191 277
192 /* search an available memory slot */ 278 if (!pfree_head || !pused_head)
193 for (i = 0; i < count; i++) { 279 return NULL;
194 if (pfree[i].flag == SRAM_SLT_FREE && pfree[i].size > best) { 280
195 addr = pfree[i].paddr; 281 pmax = pslot = pfree_head->next;
196 index = i; 282
197 best = pfree[i].size; 283 /* search an available piece slot */
198 } 284 while (pslot != NULL) {
285 if (pslot->size > pmax->size)
286 pmax = pslot;
287 pslot = pslot->next;
199 } 288 }
200 if (index < 0) 289
290 if (!pmax)
201 return NULL; 291 return NULL;
202 *psize = best;
203 292
204 pfree[index].pid = current->pid; 293 *psize = pmax->size;
205 pfree[index].flag = SRAM_SLT_ALLOCATED; 294
206 return addr; 295 return _sram_alloc(*psize, pfree_head, pused_head);
207} 296}
208 297
209/* L1 memory free function */ 298/* SRAM free function */
210static int _l1_sram_free(const void *addr, 299static int _sram_free(const void *addr,
211 struct l1_sram_piece *pfree, 300 struct sram_piece *pfree_head,
212 int count) 301 struct sram_piece *pused_head)
213{ 302{
214 int i, index = 0; 303 struct sram_piece *pslot, *plast, *pavail;
304
305 if (!pfree_head || !pused_head)
306 return -1;
215 307
216 /* search the relevant memory slot */ 308 /* search the relevant memory slot */
217 for (i = 0; i < count; i++) { 309 pslot = pused_head->next;
218 if (pfree[i].paddr == addr) { 310 plast = pused_head;
219 if (pfree[i].flag != SRAM_SLT_ALLOCATED) { 311
220 /* error log */ 312 /* search an available piece slot */
221 return -1; 313 while (pslot != NULL && pslot->paddr != addr) {
222 } 314 plast = pslot;
223 index = i; 315 pslot = pslot->next;
224 break;
225 }
226 } 316 }
227 if (i >= count) 317
318 if (!pslot)
228 return -1; 319 return -1;
229 320
230 pfree[index].pid = 0; 321 plast->next = pslot->next;
231 pfree[index].flag = SRAM_SLT_FREE; 322 pavail = pslot;
232 323 pavail->pid = 0;
233 /* link the next address slot */ 324
234 for (i = 0; i < count; i++) { 325 /* insert free pieces back to the free list */
235 if (((pfree[index].paddr + pfree[index].size) == pfree[i].paddr) 326 pslot = pfree_head->next;
236 && (pfree[i].flag == SRAM_SLT_FREE)) { 327 plast = pfree_head;
237 pfree[i].pid = 0; 328
238 pfree[i].flag = SRAM_SLT_NULL; 329 while (pslot != NULL && addr > pslot->paddr) {
239 pfree[index].size += pfree[i].size; 330 plast = pslot;
240 pfree[index].flag = SRAM_SLT_FREE; 331 pslot = pslot->next;
241 break; 332 }
242 } 333
334 if (plast != pfree_head && plast->paddr + plast->size == pavail->paddr) {
335 plast->size += pavail->size;
336 kmem_cache_free(sram_piece_cache, pavail);
337 } else {
338 pavail->next = plast;
339 plast->next = pavail;
340 plast = pavail;
243 } 341 }
244 342
245 /* link the last address slot */ 343 if (pslot && plast->paddr + plast->size == pslot->paddr) {
246 for (i = 0; i < count; i++) { 344 plast->size += pslot->size;
247 if (((pfree[i].paddr + pfree[i].size) == pfree[index].paddr) && 345 plast->next = pslot->next;
248 (pfree[i].flag == SRAM_SLT_FREE)) { 346 kmem_cache_free(sram_piece_cache, pslot);
249 pfree[index].flag = SRAM_SLT_NULL;
250 pfree[i].size += pfree[index].size;
251 break;
252 }
253 } 347 }
254 348
255 return 0; 349 return 0;
@@ -273,6 +367,11 @@ int sram_free(const void *addr)
273 && addr < (void *)(L1_DATA_B_START + L1_DATA_B_LENGTH)) 367 && addr < (void *)(L1_DATA_B_START + L1_DATA_B_LENGTH))
274 return l1_data_B_sram_free(addr); 368 return l1_data_B_sram_free(addr);
275#endif 369#endif
370#ifdef L2_LENGTH
371 else if (addr >= (void *)L2_START
372 && addr < (void *)(L2_START + L2_LENGTH))
373 return l2_sram_free(addr);
374#endif
276 else 375 else
277 return -1; 376 return -1;
278} 377}
@@ -287,7 +386,8 @@ void *l1_data_A_sram_alloc(size_t size)
287 spin_lock_irqsave(&l1_data_sram_lock, flags); 386 spin_lock_irqsave(&l1_data_sram_lock, flags);
288 387
289#if L1_DATA_A_LENGTH != 0 388#if L1_DATA_A_LENGTH != 0
290 addr = _l1_sram_alloc(size, l1_data_A_sram, ARRAY_SIZE(l1_data_A_sram)); 389 addr = _sram_alloc(size, &free_l1_data_A_sram_head,
390 &used_l1_data_A_sram_head);
291#endif 391#endif
292 392
293 /* add mutex operation */ 393 /* add mutex operation */
@@ -309,8 +409,8 @@ int l1_data_A_sram_free(const void *addr)
309 spin_lock_irqsave(&l1_data_sram_lock, flags); 409 spin_lock_irqsave(&l1_data_sram_lock, flags);
310 410
311#if L1_DATA_A_LENGTH != 0 411#if L1_DATA_A_LENGTH != 0
312 ret = _l1_sram_free(addr, 412 ret = _sram_free(addr, &free_l1_data_A_sram_head,
313 l1_data_A_sram, ARRAY_SIZE(l1_data_A_sram)); 413 &used_l1_data_A_sram_head);
314#else 414#else
315 ret = -1; 415 ret = -1;
316#endif 416#endif
@@ -331,7 +431,8 @@ void *l1_data_B_sram_alloc(size_t size)
331 /* add mutex operation */ 431 /* add mutex operation */
332 spin_lock_irqsave(&l1_data_sram_lock, flags); 432 spin_lock_irqsave(&l1_data_sram_lock, flags);
333 433
334 addr = _l1_sram_alloc(size, l1_data_B_sram, ARRAY_SIZE(l1_data_B_sram)); 434 addr = _sram_alloc(size, &free_l1_data_B_sram_head,
435 &used_l1_data_B_sram_head);
335 436
336 /* add mutex operation */ 437 /* add mutex operation */
337 spin_unlock_irqrestore(&l1_data_sram_lock, flags); 438 spin_unlock_irqrestore(&l1_data_sram_lock, flags);
@@ -355,7 +456,8 @@ int l1_data_B_sram_free(const void *addr)
355 /* add mutex operation */ 456 /* add mutex operation */
356 spin_lock_irqsave(&l1_data_sram_lock, flags); 457 spin_lock_irqsave(&l1_data_sram_lock, flags);
357 458
358 ret = _l1_sram_free(addr, l1_data_B_sram, ARRAY_SIZE(l1_data_B_sram)); 459 ret = _sram_free(addr, &free_l1_data_B_sram_head,
460 &used_l1_data_B_sram_head);
359 461
360 /* add mutex operation */ 462 /* add mutex operation */
361 spin_unlock_irqrestore(&l1_data_sram_lock, flags); 463 spin_unlock_irqrestore(&l1_data_sram_lock, flags);
@@ -408,7 +510,8 @@ void *l1_inst_sram_alloc(size_t size)
408 /* add mutex operation */ 510 /* add mutex operation */
409 spin_lock_irqsave(&l1_inst_sram_lock, flags); 511 spin_lock_irqsave(&l1_inst_sram_lock, flags);
410 512
411 addr = _l1_sram_alloc(size, l1_inst_sram, ARRAY_SIZE(l1_inst_sram)); 513 addr = _sram_alloc(size, &free_l1_inst_sram_head,
514 &used_l1_inst_sram_head);
412 515
413 /* add mutex operation */ 516 /* add mutex operation */
414 spin_unlock_irqrestore(&l1_inst_sram_lock, flags); 517 spin_unlock_irqrestore(&l1_inst_sram_lock, flags);
@@ -432,7 +535,8 @@ int l1_inst_sram_free(const void *addr)
432 /* add mutex operation */ 535 /* add mutex operation */
433 spin_lock_irqsave(&l1_inst_sram_lock, flags); 536 spin_lock_irqsave(&l1_inst_sram_lock, flags);
434 537
435 ret = _l1_sram_free(addr, l1_inst_sram, ARRAY_SIZE(l1_inst_sram)); 538 ret = _sram_free(addr, &free_l1_inst_sram_head,
539 &used_l1_inst_sram_head);
436 540
437 /* add mutex operation */ 541 /* add mutex operation */
438 spin_unlock_irqrestore(&l1_inst_sram_lock, flags); 542 spin_unlock_irqrestore(&l1_inst_sram_lock, flags);
@@ -453,7 +557,8 @@ void *l1sram_alloc(size_t size)
453 /* add mutex operation */ 557 /* add mutex operation */
454 spin_lock_irqsave(&l1sram_lock, flags); 558 spin_lock_irqsave(&l1sram_lock, flags);
455 559
456 addr = _l1_sram_alloc(size, l1_ssram, ARRAY_SIZE(l1_ssram)); 560 addr = _sram_alloc(size, &free_l1_ssram_head,
561 &used_l1_ssram_head);
457 562
458 /* add mutex operation */ 563 /* add mutex operation */
459 spin_unlock_irqrestore(&l1sram_lock, flags); 564 spin_unlock_irqrestore(&l1sram_lock, flags);
@@ -470,7 +575,8 @@ void *l1sram_alloc_max(size_t *psize)
470 /* add mutex operation */ 575 /* add mutex operation */
471 spin_lock_irqsave(&l1sram_lock, flags); 576 spin_lock_irqsave(&l1sram_lock, flags);
472 577
473 addr = _l1_sram_alloc_max(l1_ssram, ARRAY_SIZE(l1_ssram), psize); 578 addr = _sram_alloc_max(&free_l1_ssram_head,
579 &used_l1_ssram_head, psize);
474 580
475 /* add mutex operation */ 581 /* add mutex operation */
476 spin_unlock_irqrestore(&l1sram_lock, flags); 582 spin_unlock_irqrestore(&l1sram_lock, flags);
@@ -487,7 +593,8 @@ int l1sram_free(const void *addr)
487 /* add mutex operation */ 593 /* add mutex operation */
488 spin_lock_irqsave(&l1sram_lock, flags); 594 spin_lock_irqsave(&l1sram_lock, flags);
489 595
490 ret = _l1_sram_free(addr, l1_ssram, ARRAY_SIZE(l1_ssram)); 596 ret = _sram_free(addr, &free_l1_ssram_head,
597 &used_l1_ssram_head);
491 598
492 /* add mutex operation */ 599 /* add mutex operation */
493 spin_unlock_irqrestore(&l1sram_lock, flags); 600 spin_unlock_irqrestore(&l1sram_lock, flags);
@@ -495,6 +602,64 @@ int l1sram_free(const void *addr)
495 return ret; 602 return ret;
496} 603}
497 604
605void *l2_sram_alloc(size_t size)
606{
607#ifdef L2_LENGTH
608 unsigned flags;
609 void *addr;
610
611 /* add mutex operation */
612 spin_lock_irqsave(&l2_sram_lock, flags);
613
614 addr = _sram_alloc(size, &free_l2_sram_head,
615 &used_l2_sram_head);
616
617 /* add mutex operation */
618 spin_unlock_irqrestore(&l2_sram_lock, flags);
619
620 pr_debug("Allocated address in l2_sram_alloc is 0x%lx+0x%lx\n",
621 (long unsigned int)addr, size);
622
623 return addr;
624#else
625 return NULL;
626#endif
627}
628EXPORT_SYMBOL(l2_sram_alloc);
629
630void *l2_sram_zalloc(size_t size)
631{
632 void *addr = l2_sram_alloc(size);
633
634 if (addr)
635 memset(addr, 0x00, size);
636
637 return addr;
638}
639EXPORT_SYMBOL(l2_sram_zalloc);
640
641int l2_sram_free(const void *addr)
642{
643#ifdef L2_LENGTH
644 unsigned flags;
645 int ret;
646
647 /* add mutex operation */
648 spin_lock_irqsave(&l2_sram_lock, flags);
649
650 ret = _sram_free(addr, &free_l2_sram_head,
651 &used_l2_sram_head);
652
653 /* add mutex operation */
654 spin_unlock_irqrestore(&l2_sram_lock, flags);
655
656 return ret;
657#else
658 return -1;
659#endif
660}
661EXPORT_SYMBOL(l2_sram_free);
662
498int sram_free_with_lsl(const void *addr) 663int sram_free_with_lsl(const void *addr)
499{ 664{
500 struct sram_list_struct *lsl, **tmp; 665 struct sram_list_struct *lsl, **tmp;
@@ -533,6 +698,9 @@ void *sram_alloc_with_lsl(size_t size, unsigned long flags)
533 if (addr == NULL && (flags & L1_DATA_B_SRAM)) 698 if (addr == NULL && (flags & L1_DATA_B_SRAM))
534 addr = l1_data_B_sram_alloc(size); 699 addr = l1_data_B_sram_alloc(size);
535 700
701 if (addr == NULL && (flags & L2_SRAM))
702 addr = l2_sram_alloc(size);
703
536 if (addr == NULL) { 704 if (addr == NULL) {
537 kfree(lsl); 705 kfree(lsl);
538 return NULL; 706 return NULL;
@@ -549,49 +717,80 @@ EXPORT_SYMBOL(sram_alloc_with_lsl);
549/* Once we get a real allocator, we'll throw all of this away. 717/* Once we get a real allocator, we'll throw all of this away.
550 * Until then, we need some sort of visibility into the L1 alloc. 718 * Until then, we need some sort of visibility into the L1 alloc.
551 */ 719 */
552static void _l1sram_proc_read(char *buf, int *len, const char *desc, 720/* Need to keep line of output the same. Currently, that is 44 bytes
553 struct l1_sram_piece *pfree, const int array_size) 721 * (including newline).
722 */
723static int _sram_proc_read(char *buf, int *len, int count, const char *desc,
724 struct sram_piece *pfree_head,
725 struct sram_piece *pused_head)
554{ 726{
555 int i; 727 struct sram_piece *pslot;
556 728
557 *len += sprintf(&buf[*len], "--- L1 %-14s Size PID State\n", desc); 729 if (!pfree_head || !pused_head)
558 for (i = 0; i < array_size; ++i) { 730 return -1;
559 const char *alloc_type; 731
560 switch (pfree[i].flag) { 732 *len += sprintf(&buf[*len], "--- SRAM %-14s Size PID State \n", desc);
561 case SRAM_SLT_NULL: alloc_type = "NULL"; break; 733
562 case SRAM_SLT_FREE: alloc_type = "FREE"; break; 734 /* search the relevant memory slot */
563 case SRAM_SLT_ALLOCATED: alloc_type = "ALLOCATED"; break; 735 pslot = pused_head->next;
564 default: alloc_type = "????"; break; 736
565 } 737 while (pslot != NULL) {
566 *len += sprintf(&buf[*len], "%p-%p %8i %4i %s\n", 738 *len += sprintf(&buf[*len], "%p-%p %10i %5i %-10s\n",
567 pfree[i].paddr, pfree[i].paddr + pfree[i].size, 739 pslot->paddr, pslot->paddr + pslot->size,
568 pfree[i].size, pfree[i].pid, alloc_type); 740 pslot->size, pslot->pid, "ALLOCATED");
741
742 pslot = pslot->next;
569 } 743 }
744
745 pslot = pfree_head->next;
746
747 while (pslot != NULL) {
748 *len += sprintf(&buf[*len], "%p-%p %10i %5i %-10s\n",
749 pslot->paddr, pslot->paddr + pslot->size,
750 pslot->size, pslot->pid, "FREE");
751
752 pslot = pslot->next;
753 }
754
755 return 0;
570} 756}
571static int l1sram_proc_read(char *buf, char **start, off_t offset, int count, 757static int sram_proc_read(char *buf, char **start, off_t offset, int count,
572 int *eof, void *data) 758 int *eof, void *data)
573{ 759{
574 int len = 0; 760 int len = 0;
575 761
576 _l1sram_proc_read(buf, &len, "Scratchpad", 762 if (_sram_proc_read(buf, &len, count, "Scratchpad",
577 l1_ssram, ARRAY_SIZE(l1_ssram)); 763 &free_l1_ssram_head, &used_l1_ssram_head))
764 goto not_done;
578#if L1_DATA_A_LENGTH != 0 765#if L1_DATA_A_LENGTH != 0
579 _l1sram_proc_read(buf, &len, "Data A", 766 if (_sram_proc_read(buf, &len, count, "L1 Data A",
580 l1_data_A_sram, ARRAY_SIZE(l1_data_A_sram)); 767 &free_l1_data_A_sram_head,
768 &used_l1_data_A_sram_head))
769 goto not_done;
581#endif 770#endif
582#if L1_DATA_B_LENGTH != 0 771#if L1_DATA_B_LENGTH != 0
583 _l1sram_proc_read(buf, &len, "Data B", 772 if (_sram_proc_read(buf, &len, count, "L1 Data B",
584 l1_data_B_sram, ARRAY_SIZE(l1_data_B_sram)); 773 &free_l1_data_B_sram_head,
774 &used_l1_data_B_sram_head))
775 goto not_done;
585#endif 776#endif
586#if L1_CODE_LENGTH != 0 777#if L1_CODE_LENGTH != 0
587 _l1sram_proc_read(buf, &len, "Instruction", 778 if (_sram_proc_read(buf, &len, count, "L1 Instruction",
588 l1_inst_sram, ARRAY_SIZE(l1_inst_sram)); 779 &free_l1_inst_sram_head, &used_l1_inst_sram_head))
780 goto not_done;
781#endif
782#ifdef L2_LENGTH
783 if (_sram_proc_read(buf, &len, count, "L2",
784 &free_l2_sram_head, &used_l2_sram_head))
785 goto not_done;
589#endif 786#endif
590 787
788 *eof = 1;
789 not_done:
591 return len; 790 return len;
592} 791}
593 792
594static int __init l1sram_proc_init(void) 793static int __init sram_proc_init(void)
595{ 794{
596 struct proc_dir_entry *ptr; 795 struct proc_dir_entry *ptr;
597 ptr = create_proc_entry("sram", S_IFREG | S_IRUGO, NULL); 796 ptr = create_proc_entry("sram", S_IFREG | S_IRUGO, NULL);
@@ -600,8 +799,8 @@ static int __init l1sram_proc_init(void)
600 return -1; 799 return -1;
601 } 800 }
602 ptr->owner = THIS_MODULE; 801 ptr->owner = THIS_MODULE;
603 ptr->read_proc = l1sram_proc_read; 802 ptr->read_proc = sram_proc_read;
604 return 0; 803 return 0;
605} 804}
606late_initcall(l1sram_proc_init); 805late_initcall(sram_proc_init);
607#endif 806#endif
diff --git a/arch/blackfin/mm/blackfin_sram.h b/arch/blackfin/mm/blackfin_sram.h
index 0fb73b78dd60..8cb0945563f9 100644
--- a/arch/blackfin/mm/blackfin_sram.h
+++ b/arch/blackfin/mm/blackfin_sram.h
@@ -30,9 +30,7 @@
30#ifndef __BLACKFIN_SRAM_H__ 30#ifndef __BLACKFIN_SRAM_H__
31#define __BLACKFIN_SRAM_H__ 31#define __BLACKFIN_SRAM_H__
32 32
33extern void l1sram_init(void); 33extern void bfin_sram_init(void);
34extern void l1_inst_sram_init(void);
35extern void l1_data_sram_init(void);
36extern void *l1sram_alloc(size_t); 34extern void *l1sram_alloc(size_t);
37 35
38#endif 36#endif
diff --git a/arch/blackfin/mm/init.c b/arch/blackfin/mm/init.c
index ec3141fefd20..bc240abb8745 100644
--- a/arch/blackfin/mm/init.c
+++ b/arch/blackfin/mm/init.c
@@ -53,33 +53,6 @@ static unsigned long empty_bad_page;
53 53
54unsigned long empty_zero_page; 54unsigned long empty_zero_page;
55 55
56void show_mem(void)
57{
58 unsigned long i;
59 int free = 0, total = 0, reserved = 0, shared = 0;
60
61 int cached = 0;
62 printk(KERN_INFO "Mem-info:\n");
63 show_free_areas();
64 i = max_mapnr;
65 while (i-- > 0) {
66 total++;
67 if (PageReserved(mem_map + i))
68 reserved++;
69 else if (PageSwapCache(mem_map + i))
70 cached++;
71 else if (!page_count(mem_map + i))
72 free++;
73 else
74 shared += page_count(mem_map + i) - 1;
75 }
76 printk(KERN_INFO "%d pages of RAM\n", total);
77 printk(KERN_INFO "%d free pages\n", free);
78 printk(KERN_INFO "%d reserved pages\n", reserved);
79 printk(KERN_INFO "%d pages shared\n", shared);
80 printk(KERN_INFO "%d pages swap cached\n", cached);
81}
82
83/* 56/*
84 * paging_init() continues the virtual memory environment setup which 57 * paging_init() continues the virtual memory environment setup which
85 * was begun by the code in arch/head.S. 58 * was begun by the code in arch/head.S.
@@ -164,11 +137,14 @@ void __init mem_init(void)
164 "(%uk init code, %uk kernel code, %uk data, %uk dma, %uk reserved)\n", 137 "(%uk init code, %uk kernel code, %uk data, %uk dma, %uk reserved)\n",
165 (unsigned long) freepages << (PAGE_SHIFT-10), _ramend >> 10, 138 (unsigned long) freepages << (PAGE_SHIFT-10), _ramend >> 10,
166 initk, codek, datak, DMA_UNCACHED_REGION >> 10, (reservedpages << (PAGE_SHIFT-10))); 139 initk, codek, datak, DMA_UNCACHED_REGION >> 10, (reservedpages << (PAGE_SHIFT-10)));
140}
141
142static int __init sram_init(void)
143{
144 unsigned long tmp;
167 145
168 /* Initialize the blackfin L1 Memory. */ 146 /* Initialize the blackfin L1 Memory. */
169 l1sram_init(); 147 bfin_sram_init();
170 l1_data_sram_init();
171 l1_inst_sram_init();
172 148
173 /* Allocate this once; never free it. We assume this gives us a 149 /* Allocate this once; never free it. We assume this gives us a
174 pointer to the start of L1 scratchpad memory; panic if it 150 pointer to the start of L1 scratchpad memory; panic if it
@@ -179,7 +155,10 @@ void __init mem_init(void)
179 tmp, (unsigned long)L1_SCRATCH_TASK_INFO); 155 tmp, (unsigned long)L1_SCRATCH_TASK_INFO);
180 panic("No L1, time to give up\n"); 156 panic("No L1, time to give up\n");
181 } 157 }
158
159 return 0;
182} 160}
161pure_initcall(sram_init);
183 162
184static void __init free_init_pages(const char *what, unsigned long begin, unsigned long end) 163static void __init free_init_pages(const char *what, unsigned long begin, unsigned long end)
185{ 164{
diff --git a/arch/cris/arch-v10/kernel/kgdb.c b/arch/cris/arch-v10/kernel/kgdb.c
index a3ca55150745..6fea45f2e40c 100644
--- a/arch/cris/arch-v10/kernel/kgdb.c
+++ b/arch/cris/arch-v10/kernel/kgdb.c
@@ -278,14 +278,6 @@ void putDebugChar (int val);
278 278
279void enableDebugIRQ (void); 279void enableDebugIRQ (void);
280 280
281/* Returns the character equivalent of a nibble, bit 7, 6, 5, and 4 of a byte,
282 represented by int x. */
283static char highhex (int x);
284
285/* Returns the character equivalent of a nibble, bit 3, 2, 1, and 0 of a byte,
286 represented by int x. */
287static char lowhex (int x);
288
289/* Returns the integer equivalent of a hexadecimal character. */ 281/* Returns the integer equivalent of a hexadecimal character. */
290static int hex (char ch); 282static int hex (char ch);
291 283
@@ -356,9 +348,6 @@ extern unsigned char executing_task;
356/* Run-length encoding maximum length. Send 64 at most. */ 348/* Run-length encoding maximum length. Send 64 at most. */
357#define RUNLENMAX 64 349#define RUNLENMAX 64
358 350
359/* Definition of all valid hexadecimal characters */
360static const char hexchars[] = "0123456789abcdef";
361
362/* The inbound/outbound buffers used in packet I/O */ 351/* The inbound/outbound buffers used in packet I/O */
363static char remcomInBuffer[BUFMAX]; 352static char remcomInBuffer[BUFMAX];
364static char remcomOutBuffer[BUFMAX]; 353static char remcomOutBuffer[BUFMAX];
@@ -499,8 +488,8 @@ gdb_cris_strtol (const char *s, char **endptr, int base)
499 char *sd; 488 char *sd;
500 int x = 0; 489 int x = 0;
501 490
502 for (s1 = (char*)s; (sd = gdb_cris_memchr(hexchars, *s1, base)) != NULL; ++s1) 491 for (s1 = (char*)s; (sd = gdb_cris_memchr(hex_asc, *s1, base)) != NULL; ++s1)
503 x = x * base + (sd - hexchars); 492 x = x * base + (sd - hex_asc);
504 493
505 if (endptr) 494 if (endptr)
506 { 495 {
@@ -670,22 +659,6 @@ read_register (char regno, unsigned int *valptr)
670} 659}
671 660
672/********************************** Packet I/O ******************************/ 661/********************************** Packet I/O ******************************/
673/* Returns the character equivalent of a nibble, bit 7, 6, 5, and 4 of a byte,
674 represented by int x. */
675static inline char
676highhex(int x)
677{
678 return hexchars[(x >> 4) & 0xf];
679}
680
681/* Returns the character equivalent of a nibble, bit 3, 2, 1, and 0 of a byte,
682 represented by int x. */
683static inline char
684lowhex(int x)
685{
686 return hexchars[x & 0xf];
687}
688
689/* Returns the integer equivalent of a hexadecimal character. */ 662/* Returns the integer equivalent of a hexadecimal character. */
690static int 663static int
691hex (char ch) 664hex (char ch)
@@ -721,8 +694,7 @@ mem2hex(char *buf, unsigned char *mem, int count)
721 /* Valid mem address. */ 694 /* Valid mem address. */
722 for (i = 0; i < count; i++) { 695 for (i = 0; i < count; i++) {
723 ch = *mem++; 696 ch = *mem++;
724 *buf++ = highhex (ch); 697 buf = pack_hex_byte(buf, ch);
725 *buf++ = lowhex (ch);
726 } 698 }
727 } 699 }
728 700
@@ -857,9 +829,9 @@ putpacket(char *buffer)
857 src++; 829 src++;
858 } 830 }
859 } 831 }
860 putDebugChar ('#'); 832 putDebugChar('#');
861 putDebugChar (highhex (checksum)); 833 putDebugChar(hex_asc_hi(checksum));
862 putDebugChar (lowhex (checksum)); 834 putDebugChar(hex_asc_lo(checksum));
863 } while(kgdb_started && (getDebugChar() != '+')); 835 } while(kgdb_started && (getDebugChar() != '+'));
864} 836}
865 837
@@ -895,9 +867,8 @@ stub_is_stopped(int sigval)
895 867
896 /* Send trap type (converted to signal) */ 868 /* Send trap type (converted to signal) */
897 869
898 *ptr++ = 'T'; 870 *ptr++ = 'T';
899 *ptr++ = highhex (sigval); 871 ptr = pack_hex_byte(ptr, sigval);
900 *ptr++ = lowhex (sigval);
901 872
902 /* Send register contents. We probably only need to send the 873 /* Send register contents. We probably only need to send the
903 * PC, frame pointer and stack pointer here. Other registers will be 874 * PC, frame pointer and stack pointer here. Other registers will be
@@ -910,9 +881,7 @@ stub_is_stopped(int sigval)
910 status = read_register (regno, &reg_cont); 881 status = read_register (regno, &reg_cont);
911 882
912 if (status == SUCCESS) { 883 if (status == SUCCESS) {
913 884 ptr = pack_hex_byte(ptr, regno);
914 *ptr++ = highhex (regno);
915 *ptr++ = lowhex (regno);
916 *ptr++ = ':'; 885 *ptr++ = ':';
917 886
918 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, 887 ptr = mem2hex(ptr, (unsigned char *)&reg_cont,
@@ -937,8 +906,8 @@ stub_is_stopped(int sigval)
937 /* Store thread:r...; with the executing task TID. */ 906 /* Store thread:r...; with the executing task TID. */
938 gdb_cris_strcpy (&remcomOutBuffer[pos], "thread:"); 907 gdb_cris_strcpy (&remcomOutBuffer[pos], "thread:");
939 pos += gdb_cris_strlen ("thread:"); 908 pos += gdb_cris_strlen ("thread:");
940 remcomOutBuffer[pos++] = highhex (executing_task); 909 remcomOutBuffer[pos++] = hex_asc_hi(executing_task);
941 remcomOutBuffer[pos++] = lowhex (executing_task); 910 remcomOutBuffer[pos++] = hex_asc_lo(executing_task);
942 gdb_cris_strcpy (&remcomOutBuffer[pos], ";"); 911 gdb_cris_strcpy (&remcomOutBuffer[pos], ";");
943#endif 912#endif
944 913
@@ -1126,8 +1095,8 @@ handle_exception (int sigval)
1126 Success: SAA, where AA is the signal number. 1095 Success: SAA, where AA is the signal number.
1127 Failure: void. */ 1096 Failure: void. */
1128 remcomOutBuffer[0] = 'S'; 1097 remcomOutBuffer[0] = 'S';
1129 remcomOutBuffer[1] = highhex (sigval); 1098 remcomOutBuffer[1] = hex_asc_hi(sigval);
1130 remcomOutBuffer[2] = lowhex (sigval); 1099 remcomOutBuffer[2] = hex_asc_lo(sigval);
1131 remcomOutBuffer[3] = 0; 1100 remcomOutBuffer[3] = 0;
1132 break; 1101 break;
1133 1102
@@ -1224,23 +1193,23 @@ handle_exception (int sigval)
1224 case 'C': 1193 case 'C':
1225 /* Identify the remote current thread. */ 1194 /* Identify the remote current thread. */
1226 gdb_cris_strcpy (&remcomOutBuffer[0], "QC"); 1195 gdb_cris_strcpy (&remcomOutBuffer[0], "QC");
1227 remcomOutBuffer[2] = highhex (current_thread_c); 1196 remcomOutBuffer[2] = hex_asc_hi(current_thread_c);
1228 remcomOutBuffer[3] = lowhex (current_thread_c); 1197 remcomOutBuffer[3] = hex_asc_lo(current_thread_c);
1229 remcomOutBuffer[4] = '\0'; 1198 remcomOutBuffer[4] = '\0';
1230 break; 1199 break;
1231 case 'L': 1200 case 'L':
1232 gdb_cris_strcpy (&remcomOutBuffer[0], "QM"); 1201 gdb_cris_strcpy (&remcomOutBuffer[0], "QM");
1233 /* Reply with number of threads. */ 1202 /* Reply with number of threads. */
1234 if (os_is_started()) { 1203 if (os_is_started()) {
1235 remcomOutBuffer[2] = highhex (number_of_tasks); 1204 remcomOutBuffer[2] = hex_asc_hi(number_of_tasks);
1236 remcomOutBuffer[3] = lowhex (number_of_tasks); 1205 remcomOutBuffer[3] = hex_asc_lo(number_of_tasks);
1237 } 1206 }
1238 else { 1207 else {
1239 remcomOutBuffer[2] = highhex (0); 1208 remcomOutBuffer[2] = hex_asc_hi(0);
1240 remcomOutBuffer[3] = lowhex (1); 1209 remcomOutBuffer[3] = hex_asc_lo(1);
1241 } 1210 }
1242 /* Done with the reply. */ 1211 /* Done with the reply. */
1243 remcomOutBuffer[4] = lowhex (1); 1212 remcomOutBuffer[4] = hex_asc_lo(1);
1244 pos = 5; 1213 pos = 5;
1245 /* Expects the argument thread id. */ 1214 /* Expects the argument thread id. */
1246 for (; pos < (5 + HEXCHARS_IN_THREAD_ID); pos++) 1215 for (; pos < (5 + HEXCHARS_IN_THREAD_ID); pos++)
@@ -1251,16 +1220,16 @@ handle_exception (int sigval)
1251 for (thread_id = 0; thread_id < number_of_tasks; thread_id++) { 1220 for (thread_id = 0; thread_id < number_of_tasks; thread_id++) {
1252 nextpos = pos + HEXCHARS_IN_THREAD_ID - 1; 1221 nextpos = pos + HEXCHARS_IN_THREAD_ID - 1;
1253 for (; pos < nextpos; pos ++) 1222 for (; pos < nextpos; pos ++)
1254 remcomOutBuffer[pos] = lowhex (0); 1223 remcomOutBuffer[pos] = hex_asc_lo(0);
1255 remcomOutBuffer[pos++] = lowhex (thread_id); 1224 remcomOutBuffer[pos++] = hex_asc_lo(thread_id);
1256 } 1225 }
1257 } 1226 }
1258 else { 1227 else {
1259 /* Store the thread identifier of the boot task. */ 1228 /* Store the thread identifier of the boot task. */
1260 nextpos = pos + HEXCHARS_IN_THREAD_ID - 1; 1229 nextpos = pos + HEXCHARS_IN_THREAD_ID - 1;
1261 for (; pos < nextpos; pos ++) 1230 for (; pos < nextpos; pos ++)
1262 remcomOutBuffer[pos] = lowhex (0); 1231 remcomOutBuffer[pos] = hex_asc_lo(0);
1263 remcomOutBuffer[pos++] = lowhex (current_thread_c); 1232 remcomOutBuffer[pos++] = hex_asc_lo(current_thread_c);
1264 } 1233 }
1265 remcomOutBuffer[pos] = '\0'; 1234 remcomOutBuffer[pos] = '\0';
1266 break; 1235 break;
diff --git a/arch/cris/arch-v32/kernel/kgdb.c b/arch/cris/arch-v32/kernel/kgdb.c
index 4e2e2e271efb..8bd5a5bc0dc7 100644
--- a/arch/cris/arch-v32/kernel/kgdb.c
+++ b/arch/cris/arch-v32/kernel/kgdb.c
@@ -398,14 +398,6 @@ void putDebugChar(int val)
398} 398}
399#endif 399#endif
400 400
401/* Returns the character equivalent of a nibble, bit 7, 6, 5, and 4 of a byte,
402 represented by int x. */
403static char highhex(int x);
404
405/* Returns the character equivalent of a nibble, bit 3, 2, 1, and 0 of a byte,
406 represented by int x. */
407static char lowhex(int x);
408
409/* Returns the integer equivalent of a hexadecimal character. */ 401/* Returns the integer equivalent of a hexadecimal character. */
410static int hex(char ch); 402static int hex(char ch);
411 403
@@ -464,9 +456,6 @@ void breakpoint(void);
464/* Run-length encoding maximum length. Send 64 at most. */ 456/* Run-length encoding maximum length. Send 64 at most. */
465#define RUNLENMAX 64 457#define RUNLENMAX 64
466 458
467/* Definition of all valid hexadecimal characters */
468static const char hexchars[] = "0123456789abcdef";
469
470/* The inbound/outbound buffers used in packet I/O */ 459/* The inbound/outbound buffers used in packet I/O */
471static char input_buffer[BUFMAX]; 460static char input_buffer[BUFMAX];
472static char output_buffer[BUFMAX]; 461static char output_buffer[BUFMAX];
@@ -550,8 +539,8 @@ gdb_cris_strtol(const char *s, char **endptr, int base)
550 char *sd; 539 char *sd;
551 int x = 0; 540 int x = 0;
552 541
553 for (s1 = (char*)s; (sd = gdb_cris_memchr(hexchars, *s1, base)) != NULL; ++s1) 542 for (s1 = (char*)s; (sd = gdb_cris_memchr(hex_asc, *s1, base)) != NULL; ++s1)
554 x = x * base + (sd - hexchars); 543 x = x * base + (sd - hex_asc);
555 544
556 if (endptr) { 545 if (endptr) {
557 /* Unconverted suffix is stored in endptr unless endptr is NULL. */ 546 /* Unconverted suffix is stored in endptr unless endptr is NULL. */
@@ -655,22 +644,6 @@ read_register(char regno, unsigned int *valptr)
655} 644}
656 645
657/********************************** Packet I/O ******************************/ 646/********************************** Packet I/O ******************************/
658/* Returns the character equivalent of a nibble, bit 7, 6, 5, and 4 of a byte,
659 represented by int x. */
660static inline char
661highhex(int x)
662{
663 return hexchars[(x >> 4) & 0xf];
664}
665
666/* Returns the character equivalent of a nibble, bit 3, 2, 1, and 0 of a byte,
667 represented by int x. */
668static inline char
669lowhex(int x)
670{
671 return hexchars[x & 0xf];
672}
673
674/* Returns the integer equivalent of a hexadecimal character. */ 647/* Returns the integer equivalent of a hexadecimal character. */
675static int 648static int
676hex(char ch) 649hex(char ch)
@@ -704,8 +677,7 @@ mem2hex(char *buf, unsigned char *mem, int count)
704 /* Valid mem address. */ 677 /* Valid mem address. */
705 for (i = 0; i < count; i++) { 678 for (i = 0; i < count; i++) {
706 ch = *mem++; 679 ch = *mem++;
707 *buf++ = highhex (ch); 680 buf = pack_hex_byte(buf, ch);
708 *buf++ = lowhex (ch);
709 } 681 }
710 } 682 }
711 /* Terminate properly. */ 683 /* Terminate properly. */
@@ -723,8 +695,7 @@ mem2hex_nbo(char *buf, unsigned char *mem, int count)
723 mem += count - 1; 695 mem += count - 1;
724 for (i = 0; i < count; i++) { 696 for (i = 0; i < count; i++) {
725 ch = *mem--; 697 ch = *mem--;
726 *buf++ = highhex (ch); 698 buf = pack_hex_byte(buf, ch);
727 *buf++ = lowhex (ch);
728 } 699 }
729 700
730 /* Terminate properly. */ 701 /* Terminate properly. */
@@ -862,8 +833,8 @@ putpacket(char *buffer)
862 } 833 }
863 } 834 }
864 putDebugChar('#'); 835 putDebugChar('#');
865 putDebugChar(highhex (checksum)); 836 putDebugChar(hex_asc_hi(checksum));
866 putDebugChar(lowhex (checksum)); 837 putDebugChar(hex_asc_lo(checksum));
867 } while(kgdb_started && (getDebugChar() != '+')); 838 } while(kgdb_started && (getDebugChar() != '+'));
868} 839}
869 840
@@ -909,8 +880,7 @@ stub_is_stopped(int sigval)
909 /* Send trap type (converted to signal) */ 880 /* Send trap type (converted to signal) */
910 881
911 *ptr++ = 'T'; 882 *ptr++ = 'T';
912 *ptr++ = highhex(sigval); 883 ptr = pack_hex_byte(ptr, sigval);
913 *ptr++ = lowhex(sigval);
914 884
915 if (((reg.exs & 0xff00) >> 8) == 0xc) { 885 if (((reg.exs & 0xff00) >> 8) == 0xc) {
916 886
@@ -1018,30 +988,26 @@ stub_is_stopped(int sigval)
1018 } 988 }
1019 /* Only send PC, frame and stack pointer. */ 989 /* Only send PC, frame and stack pointer. */
1020 read_register(PC, &reg_cont); 990 read_register(PC, &reg_cont);
1021 *ptr++ = highhex(PC); 991 ptr = pack_hex_byte(PC);
1022 *ptr++ = lowhex(PC);
1023 *ptr++ = ':'; 992 *ptr++ = ':';
1024 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, register_size[PC]); 993 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, register_size[PC]);
1025 *ptr++ = ';'; 994 *ptr++ = ';';
1026 995
1027 read_register(R8, &reg_cont); 996 read_register(R8, &reg_cont);
1028 *ptr++ = highhex(R8); 997 ptr = pack_hex_byte(R8);
1029 *ptr++ = lowhex(R8);
1030 *ptr++ = ':'; 998 *ptr++ = ':';
1031 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, register_size[R8]); 999 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, register_size[R8]);
1032 *ptr++ = ';'; 1000 *ptr++ = ';';
1033 1001
1034 read_register(SP, &reg_cont); 1002 read_register(SP, &reg_cont);
1035 *ptr++ = highhex(SP); 1003 ptr = pack_hex_byte(SP);
1036 *ptr++ = lowhex(SP);
1037 *ptr++ = ':'; 1004 *ptr++ = ':';
1038 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, register_size[SP]); 1005 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, register_size[SP]);
1039 *ptr++ = ';'; 1006 *ptr++ = ';';
1040 1007
1041 /* Send ERP as well; this will save us an entire register fetch in some cases. */ 1008 /* Send ERP as well; this will save us an entire register fetch in some cases. */
1042 read_register(ERP, &reg_cont); 1009 read_register(ERP, &reg_cont);
1043 *ptr++ = highhex(ERP); 1010 ptr = pack_hex_byte(ERP);
1044 *ptr++ = lowhex(ERP);
1045 *ptr++ = ':'; 1011 *ptr++ = ':';
1046 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, register_size[ERP]); 1012 ptr = mem2hex(ptr, (unsigned char *)&reg_cont, register_size[ERP]);
1047 *ptr++ = ';'; 1013 *ptr++ = ';';
@@ -1533,8 +1499,8 @@ handle_exception(int sigval)
1533 Success: SAA, where AA is the signal number. 1499 Success: SAA, where AA is the signal number.
1534 Failure: void. */ 1500 Failure: void. */
1535 output_buffer[0] = 'S'; 1501 output_buffer[0] = 'S';
1536 output_buffer[1] = highhex(sigval); 1502 output_buffer[1] = hex_asc_hi(sigval);
1537 output_buffer[2] = lowhex(sigval); 1503 output_buffer[2] = hex_asc_lo(sigval);
1538 output_buffer[3] = 0; 1504 output_buffer[3] = 0;
1539 break; 1505 break;
1540 1506
diff --git a/arch/cris/mm/init.c b/arch/cris/mm/init.c
index 5b06ffa15e34..2fdd212eb250 100644
--- a/arch/cris/mm/init.c
+++ b/arch/cris/mm/init.c
@@ -19,36 +19,6 @@ unsigned long empty_zero_page;
19extern char _stext, _edata, _etext; /* From linkerscript */ 19extern char _stext, _edata, _etext; /* From linkerscript */
20extern char __init_begin, __init_end; 20extern char __init_begin, __init_end;
21 21
22void
23show_mem(void)
24{
25 int i,free = 0,total = 0,cached = 0, reserved = 0, nonshared = 0;
26 int shared = 0;
27
28 printk("\nMem-info:\n");
29 show_free_areas();
30 i = max_mapnr;
31 while (i-- > 0) {
32 total++;
33 if (PageReserved(mem_map+i))
34 reserved++;
35 else if (PageSwapCache(mem_map+i))
36 cached++;
37 else if (!page_count(mem_map+i))
38 free++;
39 else if (page_count(mem_map+i) == 1)
40 nonshared++;
41 else
42 shared += page_count(mem_map+i) - 1;
43 }
44 printk("%d pages of RAM\n",total);
45 printk("%d free pages\n",free);
46 printk("%d reserved pages\n",reserved);
47 printk("%d pages nonshared\n",nonshared);
48 printk("%d pages shared\n",shared);
49 printk("%d pages swap cached\n",cached);
50}
51
52void __init 22void __init
53mem_init(void) 23mem_init(void)
54{ 24{
diff --git a/arch/frv/kernel/gdb-stub.c b/arch/frv/kernel/gdb-stub.c
index 48a0393e7cee..7ca8a6b19ac9 100644
--- a/arch/frv/kernel/gdb-stub.c
+++ b/arch/frv/kernel/gdb-stub.c
@@ -182,8 +182,6 @@ extern volatile u32 __attribute__((section(".bss"))) gdbstub_trace_through_excep
182static char input_buffer[BUFMAX]; 182static char input_buffer[BUFMAX];
183static char output_buffer[BUFMAX]; 183static char output_buffer[BUFMAX];
184 184
185static const char hexchars[] = "0123456789abcdef";
186
187static const char *regnames[] = { 185static const char *regnames[] = {
188 "PSR ", "ISR ", "CCR ", "CCCR", 186 "PSR ", "ISR ", "CCR ", "CCCR",
189 "LR ", "LCR ", "PC ", "_stt", 187 "LR ", "LCR ", "PC ", "_stt",
@@ -383,8 +381,8 @@ static int gdbstub_send_packet(char *buffer)
383 } 381 }
384 382
385 gdbstub_tx_char('#'); 383 gdbstub_tx_char('#');
386 gdbstub_tx_char(hexchars[checksum >> 4]); 384 gdbstub_tx_char(hex_asc_hi(checksum));
387 gdbstub_tx_char(hexchars[checksum & 0xf]); 385 gdbstub_tx_char(hex_asc_lo(checksum));
388 386
389 } while (gdbstub_rx_char(&ch,0), 387 } while (gdbstub_rx_char(&ch,0),
390#ifdef GDBSTUB_DEBUG_PROTOCOL 388#ifdef GDBSTUB_DEBUG_PROTOCOL
@@ -674,8 +672,7 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fa
674 if ((uint32_t)mem&1 && count>=1) { 672 if ((uint32_t)mem&1 && count>=1) {
675 if (!gdbstub_read_byte(mem,ch)) 673 if (!gdbstub_read_byte(mem,ch))
676 return NULL; 674 return NULL;
677 *buf++ = hexchars[ch[0] >> 4]; 675 buf = pack_hex_byte(buf, ch[0]);
678 *buf++ = hexchars[ch[0] & 0xf];
679 mem++; 676 mem++;
680 count--; 677 count--;
681 } 678 }
@@ -683,10 +680,8 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fa
683 if ((uint32_t)mem&3 && count>=2) { 680 if ((uint32_t)mem&3 && count>=2) {
684 if (!gdbstub_read_word(mem,(uint16_t *)ch)) 681 if (!gdbstub_read_word(mem,(uint16_t *)ch))
685 return NULL; 682 return NULL;
686 *buf++ = hexchars[ch[0] >> 4]; 683 buf = pack_hex_byte(buf, ch[0]);
687 *buf++ = hexchars[ch[0] & 0xf]; 684 buf = pack_hex_byte(buf, ch[1]);
688 *buf++ = hexchars[ch[1] >> 4];
689 *buf++ = hexchars[ch[1] & 0xf];
690 mem += 2; 685 mem += 2;
691 count -= 2; 686 count -= 2;
692 } 687 }
@@ -694,14 +689,10 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fa
694 while (count>=4) { 689 while (count>=4) {
695 if (!gdbstub_read_dword(mem,(uint32_t *)ch)) 690 if (!gdbstub_read_dword(mem,(uint32_t *)ch))
696 return NULL; 691 return NULL;
697 *buf++ = hexchars[ch[0] >> 4]; 692 buf = pack_hex_byte(buf, ch[0]);
698 *buf++ = hexchars[ch[0] & 0xf]; 693 buf = pack_hex_byte(buf, ch[1]);
699 *buf++ = hexchars[ch[1] >> 4]; 694 buf = pack_hex_byte(buf, ch[2]);
700 *buf++ = hexchars[ch[1] & 0xf]; 695 buf = pack_hex_byte(buf, ch[3]);
701 *buf++ = hexchars[ch[2] >> 4];
702 *buf++ = hexchars[ch[2] & 0xf];
703 *buf++ = hexchars[ch[3] >> 4];
704 *buf++ = hexchars[ch[3] & 0xf];
705 mem += 4; 696 mem += 4;
706 count -= 4; 697 count -= 4;
707 } 698 }
@@ -709,10 +700,8 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fa
709 if (count>=2) { 700 if (count>=2) {
710 if (!gdbstub_read_word(mem,(uint16_t *)ch)) 701 if (!gdbstub_read_word(mem,(uint16_t *)ch))
711 return NULL; 702 return NULL;
712 *buf++ = hexchars[ch[0] >> 4]; 703 buf = pack_hex_byte(buf, ch[0]);
713 *buf++ = hexchars[ch[0] & 0xf]; 704 buf = pack_hex_byte(buf, ch[1]);
714 *buf++ = hexchars[ch[1] >> 4];
715 *buf++ = hexchars[ch[1] & 0xf];
716 mem += 2; 705 mem += 2;
717 count -= 2; 706 count -= 2;
718 } 707 }
@@ -720,8 +709,7 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fa
720 if (count>=1) { 709 if (count>=1) {
721 if (!gdbstub_read_byte(mem,ch)) 710 if (!gdbstub_read_byte(mem,ch))
722 return NULL; 711 return NULL;
723 *buf++ = hexchars[ch[0] >> 4]; 712 buf = pack_hex_byte(buf, ch[0]);
724 *buf++ = hexchars[ch[0] & 0xf];
725 } 713 }
726 714
727 *buf = 0; 715 *buf = 0;
@@ -1471,22 +1459,22 @@ void gdbstub(int sigval)
1471 *ptr++ = 'O'; 1459 *ptr++ = 'O';
1472 ptr = mem2hex(title, ptr, sizeof(title) - 1,0); 1460 ptr = mem2hex(title, ptr, sizeof(title) - 1,0);
1473 1461
1474 hx = hexchars[(brr & 0xf0000000) >> 28]; 1462 hx = hex_asc_hi(brr >> 24);
1475 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1463 ptr = pack_hex_byte(ptr, hx);
1476 hx = hexchars[(brr & 0x0f000000) >> 24]; 1464 hx = hex_asc_lo(brr >> 24);
1477 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1465 ptr = pack_hex_byte(ptr, hx);
1478 hx = hexchars[(brr & 0x00f00000) >> 20]; 1466 hx = hex_asc_hi(brr >> 16);
1479 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1467 ptr = pack_hex_byte(ptr, hx);
1480 hx = hexchars[(brr & 0x000f0000) >> 16]; 1468 hx = hex_asc_lo(brr >> 16);
1481 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1469 ptr = pack_hex_byte(ptr, hx);
1482 hx = hexchars[(brr & 0x0000f000) >> 12]; 1470 hx = hex_asc_hi(brr >> 8);
1483 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1471 ptr = pack_hex_byte(ptr, hx);
1484 hx = hexchars[(brr & 0x00000f00) >> 8]; 1472 hx = hex_asc_lo(brr >> 8);
1485 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1473 ptr = pack_hex_byte(ptr, hx);
1486 hx = hexchars[(brr & 0x000000f0) >> 4]; 1474 hx = hex_asc_hi(brr);
1487 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1475 ptr = pack_hex_byte(ptr, hx);
1488 hx = hexchars[(brr & 0x0000000f)]; 1476 hx = hex_asc_lo(brr);
1489 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1477 ptr = pack_hex_byte(ptr, hx);
1490 1478
1491 ptr = mem2hex(crlf, ptr, sizeof(crlf) - 1, 0); 1479 ptr = mem2hex(crlf, ptr, sizeof(crlf) - 1, 0);
1492 *ptr = 0; 1480 *ptr = 0;
@@ -1500,12 +1488,10 @@ void gdbstub(int sigval)
1500 1488
1501 /* Send trap type (converted to signal) */ 1489 /* Send trap type (converted to signal) */
1502 *ptr++ = 'T'; 1490 *ptr++ = 'T';
1503 *ptr++ = hexchars[sigval >> 4]; 1491 ptr = pack_hex_byte(ptr, sigval);
1504 *ptr++ = hexchars[sigval & 0xf];
1505 1492
1506 /* Send Error PC */ 1493 /* Send Error PC */
1507 *ptr++ = hexchars[GDB_REG_PC >> 4]; 1494 ptr = pack_hex_byte(ptr, GDB_REG_PC);
1508 *ptr++ = hexchars[GDB_REG_PC & 0xf];
1509 *ptr++ = ':'; 1495 *ptr++ = ':';
1510 ptr = mem2hex(&__debug_frame->pc, ptr, 4, 0); 1496 ptr = mem2hex(&__debug_frame->pc, ptr, 4, 0);
1511 *ptr++ = ';'; 1497 *ptr++ = ';';
@@ -1513,8 +1499,7 @@ void gdbstub(int sigval)
1513 /* 1499 /*
1514 * Send frame pointer 1500 * Send frame pointer
1515 */ 1501 */
1516 *ptr++ = hexchars[GDB_REG_FP >> 4]; 1502 ptr = pack_hex_byte(ptr, GDB_REG_FP);
1517 *ptr++ = hexchars[GDB_REG_FP & 0xf];
1518 *ptr++ = ':'; 1503 *ptr++ = ':';
1519 ptr = mem2hex(&__debug_frame->fp, ptr, 4, 0); 1504 ptr = mem2hex(&__debug_frame->fp, ptr, 4, 0);
1520 *ptr++ = ';'; 1505 *ptr++ = ';';
@@ -1522,8 +1507,7 @@ void gdbstub(int sigval)
1522 /* 1507 /*
1523 * Send stack pointer 1508 * Send stack pointer
1524 */ 1509 */
1525 *ptr++ = hexchars[GDB_REG_SP >> 4]; 1510 ptr = pack_hex_byte(ptr, GDB_REG_SP);
1526 *ptr++ = hexchars[GDB_REG_SP & 0xf];
1527 *ptr++ = ':'; 1511 *ptr++ = ':';
1528 ptr = mem2hex(&__debug_frame->sp, ptr, 4, 0); 1512 ptr = mem2hex(&__debug_frame->sp, ptr, 4, 0);
1529 *ptr++ = ';'; 1513 *ptr++ = ';';
@@ -1548,8 +1532,8 @@ void gdbstub(int sigval)
1548 /* request repeat of last signal number */ 1532 /* request repeat of last signal number */
1549 case '?': 1533 case '?':
1550 output_buffer[0] = 'S'; 1534 output_buffer[0] = 'S';
1551 output_buffer[1] = hexchars[sigval >> 4]; 1535 output_buffer[1] = hex_asc_hi(sigval);
1552 output_buffer[2] = hexchars[sigval & 0xf]; 1536 output_buffer[2] = hex_asc_lo(sigval);
1553 output_buffer[3] = 0; 1537 output_buffer[3] = 0;
1554 break; 1538 break;
1555 1539
@@ -2059,8 +2043,8 @@ void gdbstub_exit(int status)
2059 } 2043 }
2060 2044
2061 gdbstub_tx_char('#'); 2045 gdbstub_tx_char('#');
2062 gdbstub_tx_char(hexchars[checksum >> 4]); 2046 gdbstub_tx_char(hex_asc_hi(checksum));
2063 gdbstub_tx_char(hexchars[checksum & 0xf]); 2047 gdbstub_tx_char(hex_asc_lo(checksum));
2064 2048
2065 /* make sure the output is flushed, or else RedBoot might clobber it */ 2049 /* make sure the output is flushed, or else RedBoot might clobber it */
2066 gdbstub_tx_char('-'); 2050 gdbstub_tx_char('-');
diff --git a/arch/frv/mm/init.c b/arch/frv/mm/init.c
index 9af7740f32fb..1b851db34186 100644
--- a/arch/frv/mm/init.c
+++ b/arch/frv/mm/init.c
@@ -63,37 +63,6 @@ EXPORT_SYMBOL(empty_zero_page);
63 63
64/*****************************************************************************/ 64/*****************************************************************************/
65/* 65/*
66 *
67 */
68void show_mem(void)
69{
70 unsigned long i;
71 int free = 0, total = 0, reserved = 0, shared = 0;
72
73 printk("\nMem-info:\n");
74 show_free_areas();
75 i = max_mapnr;
76 while (i-- > 0) {
77 struct page *page = &mem_map[i];
78
79 total++;
80 if (PageReserved(page))
81 reserved++;
82 else if (!page_count(page))
83 free++;
84 else
85 shared += page_count(page) - 1;
86 }
87
88 printk("%d pages of RAM\n",total);
89 printk("%d free pages\n",free);
90 printk("%d reserved pages\n",reserved);
91 printk("%d pages shared\n",shared);
92
93} /* end show_mem() */
94
95/*****************************************************************************/
96/*
97 * paging_init() continues the virtual memory environment setup which 66 * paging_init() continues the virtual memory environment setup which
98 * was begun by the code in arch/head.S. 67 * was begun by the code in arch/head.S.
99 * The parameters are pointers to where to stick the starting and ending 68 * The parameters are pointers to where to stick the starting and ending
diff --git a/arch/h8300/mm/init.c b/arch/h8300/mm/init.c
index e4f4199f97ab..a1d228f5e4e6 100644
--- a/arch/h8300/mm/init.c
+++ b/arch/h8300/mm/init.c
@@ -64,33 +64,6 @@ unsigned long empty_zero_page;
64 64
65extern unsigned long rom_length; 65extern unsigned long rom_length;
66 66
67void show_mem(void)
68{
69 unsigned long i;
70 int free = 0, total = 0, reserved = 0, shared = 0;
71 int cached = 0;
72
73 printk("\nMem-info:\n");
74 show_free_areas();
75 i = max_mapnr;
76 while (i-- > 0) {
77 total++;
78 if (PageReserved(mem_map+i))
79 reserved++;
80 else if (PageSwapCache(mem_map+i))
81 cached++;
82 else if (!page_count(mem_map+i))
83 free++;
84 else
85 shared += page_count(mem_map+i) - 1;
86 }
87 printk("%d pages of RAM\n",total);
88 printk("%d free pages\n",free);
89 printk("%d reserved pages\n",reserved);
90 printk("%d pages shared\n",shared);
91 printk("%d pages swap cached\n",cached);
92}
93
94extern unsigned long memory_start; 67extern unsigned long memory_start;
95extern unsigned long memory_end; 68extern unsigned long memory_end;
96 69
diff --git a/arch/ia64/hp/common/hwsw_iommu.c b/arch/ia64/hp/common/hwsw_iommu.c
index 1c44ec2a1d58..88b6e6f3fd88 100644
--- a/arch/ia64/hp/common/hwsw_iommu.c
+++ b/arch/ia64/hp/common/hwsw_iommu.c
@@ -186,9 +186,10 @@ hwsw_dma_supported (struct device *dev, u64 mask)
186} 186}
187 187
188int 188int
189hwsw_dma_mapping_error (dma_addr_t dma_addr) 189hwsw_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
190{ 190{
191 return hwiommu_dma_mapping_error (dma_addr) || swiotlb_dma_mapping_error(dma_addr); 191 return hwiommu_dma_mapping_error(dev, dma_addr) ||
192 swiotlb_dma_mapping_error(dev, dma_addr);
192} 193}
193 194
194EXPORT_SYMBOL(hwsw_dma_mapping_error); 195EXPORT_SYMBOL(hwsw_dma_mapping_error);
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c
index 34421aed1e2a..4956be40d7b5 100644
--- a/arch/ia64/hp/common/sba_iommu.c
+++ b/arch/ia64/hp/common/sba_iommu.c
@@ -2147,7 +2147,7 @@ sba_dma_supported (struct device *dev, u64 mask)
2147} 2147}
2148 2148
2149int 2149int
2150sba_dma_mapping_error (dma_addr_t dma_addr) 2150sba_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
2151{ 2151{
2152 return 0; 2152 return 0;
2153} 2153}
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index 19d4493c6193..fc8f3509df27 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -2626,7 +2626,7 @@ pfm_task_incompatible(pfm_context_t *ctx, struct task_struct *task)
2626 /* 2626 /*
2627 * make sure the task is off any CPU 2627 * make sure the task is off any CPU
2628 */ 2628 */
2629 wait_task_inactive(task); 2629 wait_task_inactive(task, 0);
2630 2630
2631 /* more to come... */ 2631 /* more to come... */
2632 2632
@@ -4774,7 +4774,7 @@ recheck:
4774 4774
4775 UNPROTECT_CTX(ctx, flags); 4775 UNPROTECT_CTX(ctx, flags);
4776 4776
4777 wait_task_inactive(task); 4777 wait_task_inactive(task, 0);
4778 4778
4779 PROTECT_CTX(ctx, flags); 4779 PROTECT_CTX(ctx, flags);
4780 4780
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 2672f4d278ac..7a37d06376be 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -125,9 +125,9 @@ void kvm_arch_hardware_enable(void *garbage)
125 PAGE_KERNEL)); 125 PAGE_KERNEL));
126 local_irq_save(saved_psr); 126 local_irq_save(saved_psr);
127 slot = ia64_itr_entry(0x3, KVM_VMM_BASE, pte, KVM_VMM_SHIFT); 127 slot = ia64_itr_entry(0x3, KVM_VMM_BASE, pte, KVM_VMM_SHIFT);
128 local_irq_restore(saved_psr);
128 if (slot < 0) 129 if (slot < 0)
129 return; 130 return;
130 local_irq_restore(saved_psr);
131 131
132 spin_lock(&vp_lock); 132 spin_lock(&vp_lock);
133 status = ia64_pal_vp_init_env(kvm_vsa_base ? 133 status = ia64_pal_vp_init_env(kvm_vsa_base ?
@@ -160,9 +160,9 @@ void kvm_arch_hardware_disable(void *garbage)
160 160
161 local_irq_save(saved_psr); 161 local_irq_save(saved_psr);
162 slot = ia64_itr_entry(0x3, KVM_VMM_BASE, pte, KVM_VMM_SHIFT); 162 slot = ia64_itr_entry(0x3, KVM_VMM_BASE, pte, KVM_VMM_SHIFT);
163 local_irq_restore(saved_psr);
163 if (slot < 0) 164 if (slot < 0)
164 return; 165 return;
165 local_irq_restore(saved_psr);
166 166
167 status = ia64_pal_vp_exit_env(host_iva); 167 status = ia64_pal_vp_exit_env(host_iva);
168 if (status) 168 if (status)
@@ -1253,6 +1253,7 @@ static int vti_vcpu_setup(struct kvm_vcpu *vcpu, int id)
1253uninit: 1253uninit:
1254 kvm_vcpu_uninit(vcpu); 1254 kvm_vcpu_uninit(vcpu);
1255fail: 1255fail:
1256 local_irq_restore(psr);
1256 return r; 1257 return r;
1257} 1258}
1258 1259
diff --git a/arch/ia64/sn/pci/pci_dma.c b/arch/ia64/sn/pci/pci_dma.c
index 52175af299a0..53ebb6484495 100644
--- a/arch/ia64/sn/pci/pci_dma.c
+++ b/arch/ia64/sn/pci/pci_dma.c
@@ -350,7 +350,7 @@ void sn_dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg,
350} 350}
351EXPORT_SYMBOL(sn_dma_sync_sg_for_device); 351EXPORT_SYMBOL(sn_dma_sync_sg_for_device);
352 352
353int sn_dma_mapping_error(dma_addr_t dma_addr) 353int sn_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
354{ 354{
355 return 0; 355 return 0;
356} 356}
diff --git a/arch/m32r/mm/init.c b/arch/m32r/mm/init.c
index 2554eb59cfef..24d429f9358a 100644
--- a/arch/m32r/mm/init.c
+++ b/arch/m32r/mm/init.c
@@ -36,42 +36,6 @@ pgd_t swapper_pg_dir[1024];
36 36
37DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); 37DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
38 38
39void show_mem(void)
40{
41 int total = 0, reserved = 0;
42 int shared = 0, cached = 0;
43 int highmem = 0;
44 struct page *page;
45 pg_data_t *pgdat;
46 unsigned long i;
47
48 printk("Mem-info:\n");
49 show_free_areas();
50 printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10));
51 for_each_online_pgdat(pgdat) {
52 unsigned long flags;
53 pgdat_resize_lock(pgdat, &flags);
54 for (i = 0; i < pgdat->node_spanned_pages; ++i) {
55 page = pgdat_page_nr(pgdat, i);
56 total++;
57 if (PageHighMem(page))
58 highmem++;
59 if (PageReserved(page))
60 reserved++;
61 else if (PageSwapCache(page))
62 cached++;
63 else if (page_count(page))
64 shared += page_count(page) - 1;
65 }
66 pgdat_resize_unlock(pgdat, &flags);
67 }
68 printk("%d pages of RAM\n", total);
69 printk("%d pages of HIGHMEM\n",highmem);
70 printk("%d reserved pages\n",reserved);
71 printk("%d pages shared\n",shared);
72 printk("%d pages swap cached\n",cached);
73}
74
75/* 39/*
76 * Cache of MMU context last used. 40 * Cache of MMU context last used.
77 */ 41 */
diff --git a/arch/m68k/mm/init.c b/arch/m68k/mm/init.c
index 79f5f94d4800..81bb08ceec18 100644
--- a/arch/m68k/mm/init.c
+++ b/arch/m68k/mm/init.c
@@ -69,36 +69,6 @@ void __init m68k_setup_node(int node)
69void *empty_zero_page; 69void *empty_zero_page;
70EXPORT_SYMBOL(empty_zero_page); 70EXPORT_SYMBOL(empty_zero_page);
71 71
72void show_mem(void)
73{
74 pg_data_t *pgdat;
75 int free = 0, total = 0, reserved = 0, shared = 0;
76 int cached = 0;
77 int i;
78
79 printk("\nMem-info:\n");
80 show_free_areas();
81 for_each_online_pgdat(pgdat) {
82 for (i = 0; i < pgdat->node_spanned_pages; i++) {
83 struct page *page = pgdat->node_mem_map + i;
84 total++;
85 if (PageReserved(page))
86 reserved++;
87 else if (PageSwapCache(page))
88 cached++;
89 else if (!page_count(page))
90 free++;
91 else
92 shared += page_count(page) - 1;
93 }
94 }
95 printk("%d pages of RAM\n",total);
96 printk("%d free pages\n",free);
97 printk("%d reserved pages\n",reserved);
98 printk("%d pages shared\n",shared);
99 printk("%d pages swap cached\n",cached);
100}
101
102extern void init_pointer_table(unsigned long ptable); 72extern void init_pointer_table(unsigned long ptable);
103 73
104/* References to section boundaries */ 74/* References to section boundaries */
diff --git a/arch/m68knommu/mm/init.c b/arch/m68knommu/mm/init.c
index 22e2a0d02b81..3bf249c53e41 100644
--- a/arch/m68knommu/mm/init.c
+++ b/arch/m68knommu/mm/init.c
@@ -62,33 +62,6 @@ static unsigned long empty_bad_page;
62 62
63unsigned long empty_zero_page; 63unsigned long empty_zero_page;
64 64
65void show_mem(void)
66{
67 unsigned long i;
68 int free = 0, total = 0, reserved = 0, shared = 0;
69 int cached = 0;
70
71 printk(KERN_INFO "\nMem-info:\n");
72 show_free_areas();
73 i = max_mapnr;
74 while (i-- > 0) {
75 total++;
76 if (PageReserved(mem_map+i))
77 reserved++;
78 else if (PageSwapCache(mem_map+i))
79 cached++;
80 else if (!page_count(mem_map+i))
81 free++;
82 else
83 shared += page_count(mem_map+i) - 1;
84 }
85 printk(KERN_INFO "%d pages of RAM\n",total);
86 printk(KERN_INFO "%d free pages\n",free);
87 printk(KERN_INFO "%d reserved pages\n",reserved);
88 printk(KERN_INFO "%d pages shared\n",shared);
89 printk(KERN_INFO "%d pages swap cached\n",cached);
90}
91
92extern unsigned long memory_start; 65extern unsigned long memory_start;
93extern unsigned long memory_end; 66extern unsigned long memory_end;
94 67
diff --git a/arch/mips/mm/Makefile b/arch/mips/mm/Makefile
index 48731020ca0e..44e8dd8106bf 100644
--- a/arch/mips/mm/Makefile
+++ b/arch/mips/mm/Makefile
@@ -3,8 +3,7 @@
3# 3#
4 4
5obj-y += cache.o dma-default.o extable.o fault.o \ 5obj-y += cache.o dma-default.o extable.o fault.o \
6 init.o pgtable.o tlbex.o tlbex-fault.o \ 6 init.o tlbex.o tlbex-fault.o uasm.o page.o
7 uasm.o page.o
8 7
9obj-$(CONFIG_32BIT) += ioremap.o pgtable-32.o 8obj-$(CONFIG_32BIT) += ioremap.o pgtable-32.o
10obj-$(CONFIG_64BIT) += pgtable-64.o 9obj-$(CONFIG_64BIT) += pgtable-64.o
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c
index ae39dd88b9aa..891312f8e5a6 100644
--- a/arch/mips/mm/dma-default.c
+++ b/arch/mips/mm/dma-default.c
@@ -348,7 +348,7 @@ void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nele
348 348
349EXPORT_SYMBOL(dma_sync_sg_for_device); 349EXPORT_SYMBOL(dma_sync_sg_for_device);
350 350
351int dma_mapping_error(dma_addr_t dma_addr) 351int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
352{ 352{
353 return 0; 353 return 0;
354} 354}
diff --git a/arch/mips/mm/pgtable.c b/arch/mips/mm/pgtable.c
deleted file mode 100644
index 7dfa579ab24c..000000000000
--- a/arch/mips/mm/pgtable.c
+++ /dev/null
@@ -1,36 +0,0 @@
1#include <linux/kernel.h>
2#include <linux/mm.h>
3#include <linux/swap.h>
4
5void show_mem(void)
6{
7#ifndef CONFIG_NEED_MULTIPLE_NODES /* XXX(hch): later.. */
8 int pfn, total = 0, reserved = 0;
9 int shared = 0, cached = 0;
10 int highmem = 0;
11 struct page *page;
12
13 printk("Mem-info:\n");
14 show_free_areas();
15 pfn = max_mapnr;
16 while (pfn-- > 0) {
17 if (!pfn_valid(pfn))
18 continue;
19 page = pfn_to_page(pfn);
20 total++;
21 if (PageHighMem(page))
22 highmem++;
23 if (PageReserved(page))
24 reserved++;
25 else if (PageSwapCache(page))
26 cached++;
27 else if (page_count(page))
28 shared += page_count(page) - 1;
29 }
30 printk("%d pages of RAM\n", total);
31 printk("%d pages of HIGHMEM\n", highmem);
32 printk("%d reserved pages\n", reserved);
33 printk("%d pages shared\n", shared);
34 printk("%d pages swap cached\n", cached);
35#endif
36}
diff --git a/arch/mn10300/kernel/gdb-stub.c b/arch/mn10300/kernel/gdb-stub.c
index 21891c71d549..54be6afb5555 100644
--- a/arch/mn10300/kernel/gdb-stub.c
+++ b/arch/mn10300/kernel/gdb-stub.c
@@ -163,8 +163,6 @@ static char input_buffer[BUFMAX];
163static char output_buffer[BUFMAX]; 163static char output_buffer[BUFMAX];
164static char trans_buffer[BUFMAX]; 164static char trans_buffer[BUFMAX];
165 165
166static const char hexchars[] = "0123456789abcdef";
167
168struct gdbstub_bkpt { 166struct gdbstub_bkpt {
169 u8 *addr; /* address of breakpoint */ 167 u8 *addr; /* address of breakpoint */
170 u8 len; /* size of breakpoint */ 168 u8 len; /* size of breakpoint */
@@ -363,8 +361,8 @@ static int putpacket(char *buffer)
363 } 361 }
364 362
365 gdbstub_io_tx_char('#'); 363 gdbstub_io_tx_char('#');
366 gdbstub_io_tx_char(hexchars[checksum >> 4]); 364 gdbstub_io_tx_char(hex_asc_hi(checksum));
367 gdbstub_io_tx_char(hexchars[checksum & 0xf]); 365 gdbstub_io_tx_char(hex_asc_lo(checksum));
368 366
369 } while (gdbstub_io_rx_char(&ch, 0), 367 } while (gdbstub_io_rx_char(&ch, 0),
370 ch == '-' && (gdbstub_io("### GDB Rx NAK\n"), 0), 368 ch == '-' && (gdbstub_io("### GDB Rx NAK\n"), 0),
@@ -822,8 +820,7 @@ unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fault)
822 if ((u32) mem & 1 && count >= 1) { 820 if ((u32) mem & 1 && count >= 1) {
823 if (gdbstub_read_byte(mem, ch) != 0) 821 if (gdbstub_read_byte(mem, ch) != 0)
824 return 0; 822 return 0;
825 *buf++ = hexchars[ch[0] >> 4]; 823 buf = pack_hex_byte(buf, ch[0]);
826 *buf++ = hexchars[ch[0] & 0xf];
827 mem++; 824 mem++;
828 count--; 825 count--;
829 } 826 }
@@ -831,10 +828,8 @@ unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fault)
831 if ((u32) mem & 3 && count >= 2) { 828 if ((u32) mem & 3 && count >= 2) {
832 if (gdbstub_read_word(mem, ch) != 0) 829 if (gdbstub_read_word(mem, ch) != 0)
833 return 0; 830 return 0;
834 *buf++ = hexchars[ch[0] >> 4]; 831 buf = pack_hex_byte(buf, ch[0]);
835 *buf++ = hexchars[ch[0] & 0xf]; 832 buf = pack_hex_byte(buf, ch[1]);
836 *buf++ = hexchars[ch[1] >> 4];
837 *buf++ = hexchars[ch[1] & 0xf];
838 mem += 2; 833 mem += 2;
839 count -= 2; 834 count -= 2;
840 } 835 }
@@ -842,14 +837,10 @@ unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fault)
842 while (count >= 4) { 837 while (count >= 4) {
843 if (gdbstub_read_dword(mem, ch) != 0) 838 if (gdbstub_read_dword(mem, ch) != 0)
844 return 0; 839 return 0;
845 *buf++ = hexchars[ch[0] >> 4]; 840 buf = pack_hex_byte(buf, ch[0]);
846 *buf++ = hexchars[ch[0] & 0xf]; 841 buf = pack_hex_byte(buf, ch[1]);
847 *buf++ = hexchars[ch[1] >> 4]; 842 buf = pack_hex_byte(buf, ch[2]);
848 *buf++ = hexchars[ch[1] & 0xf]; 843 buf = pack_hex_byte(buf, ch[3]);
849 *buf++ = hexchars[ch[2] >> 4];
850 *buf++ = hexchars[ch[2] & 0xf];
851 *buf++ = hexchars[ch[3] >> 4];
852 *buf++ = hexchars[ch[3] & 0xf];
853 mem += 4; 844 mem += 4;
854 count -= 4; 845 count -= 4;
855 } 846 }
@@ -857,10 +848,8 @@ unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fault)
857 if (count >= 2) { 848 if (count >= 2) {
858 if (gdbstub_read_word(mem, ch) != 0) 849 if (gdbstub_read_word(mem, ch) != 0)
859 return 0; 850 return 0;
860 *buf++ = hexchars[ch[0] >> 4]; 851 buf = pack_hex_byte(buf, ch[0]);
861 *buf++ = hexchars[ch[0] & 0xf]; 852 buf = pack_hex_byte(buf, ch[1]);
862 *buf++ = hexchars[ch[1] >> 4];
863 *buf++ = hexchars[ch[1] & 0xf];
864 mem += 2; 853 mem += 2;
865 count -= 2; 854 count -= 2;
866 } 855 }
@@ -868,8 +857,7 @@ unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fault)
868 if (count >= 1) { 857 if (count >= 1) {
869 if (gdbstub_read_byte(mem, ch) != 0) 858 if (gdbstub_read_byte(mem, ch) != 0)
870 return 0; 859 return 0;
871 *buf++ = hexchars[ch[0] >> 4]; 860 buf = pack_hex_byte(buf, ch[0]);
872 *buf++ = hexchars[ch[0] & 0xf];
873 } 861 }
874 862
875 *buf = 0; 863 *buf = 0;
@@ -1304,14 +1292,14 @@ static int gdbstub(struct pt_regs *regs, enum exception_code excep)
1304 *ptr++ = 'O'; 1292 *ptr++ = 'O';
1305 ptr = mem2hex(title, ptr, sizeof(title) - 1, 0); 1293 ptr = mem2hex(title, ptr, sizeof(title) - 1, 0);
1306 1294
1307 hx = hexchars[(excep & 0xf000) >> 12]; 1295 hx = hex_asc_hi(excep >> 8);
1308 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1296 ptr = pack_hex_byte(ptr, hx);
1309 hx = hexchars[(excep & 0x0f00) >> 8]; 1297 hx = hex_asc_lo(excep >> 8);
1310 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1298 ptr = pack_hex_byte(ptr, hx);
1311 hx = hexchars[(excep & 0x00f0) >> 4]; 1299 hx = hex_asc_hi(excep);
1312 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1300 ptr = pack_hex_byte(ptr, hx);
1313 hx = hexchars[(excep & 0x000f)]; 1301 hx = hex_asc_lo(excep);
1314 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1302 ptr = pack_hex_byte(ptr, hx);
1315 1303
1316 ptr = mem2hex(crlf, ptr, sizeof(crlf) - 1, 0); 1304 ptr = mem2hex(crlf, ptr, sizeof(crlf) - 1, 0);
1317 *ptr = 0; 1305 *ptr = 0;
@@ -1322,22 +1310,22 @@ static int gdbstub(struct pt_regs *regs, enum exception_code excep)
1322 *ptr++ = 'O'; 1310 *ptr++ = 'O';
1323 ptr = mem2hex(tbcberr, ptr, sizeof(tbcberr) - 1, 0); 1311 ptr = mem2hex(tbcberr, ptr, sizeof(tbcberr) - 1, 0);
1324 1312
1325 hx = hexchars[(bcberr & 0xf0000000) >> 28]; 1313 hx = hex_asc_hi(bcberr >> 24);
1326 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1314 ptr = pack_hex_byte(ptr, hx);
1327 hx = hexchars[(bcberr & 0x0f000000) >> 24]; 1315 hx = hex_asc_lo(bcberr >> 24);
1328 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1316 ptr = pack_hex_byte(ptr, hx);
1329 hx = hexchars[(bcberr & 0x00f00000) >> 20]; 1317 hx = hex_asc_hi(bcberr >> 16);
1330 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1318 ptr = pack_hex_byte(ptr, hx);
1331 hx = hexchars[(bcberr & 0x000f0000) >> 16]; 1319 hx = hex_asc_lo(bcberr >> 16);
1332 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1320 ptr = pack_hex_byte(ptr, hx);
1333 hx = hexchars[(bcberr & 0x0000f000) >> 12]; 1321 hx = hex_asc_hi(bcberr >> 8);
1334 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1322 ptr = pack_hex_byte(ptr, hx);
1335 hx = hexchars[(bcberr & 0x00000f00) >> 8]; 1323 hx = hex_asc_lo(bcberr >> 8);
1336 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1324 ptr = pack_hex_byte(ptr, hx);
1337 hx = hexchars[(bcberr & 0x000000f0) >> 4]; 1325 hx = hex_asc_hi(bcberr);
1338 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1326 ptr = pack_hex_byte(ptr, hx);
1339 hx = hexchars[(bcberr & 0x0000000f)]; 1327 hx = hex_asc_lo(bcberr);
1340 *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; 1328 ptr = pack_hex_byte(ptr, hx);
1341 1329
1342 ptr = mem2hex(crlf, ptr, sizeof(crlf) - 1, 0); 1330 ptr = mem2hex(crlf, ptr, sizeof(crlf) - 1, 0);
1343 *ptr = 0; 1331 *ptr = 0;
@@ -1353,14 +1341,12 @@ static int gdbstub(struct pt_regs *regs, enum exception_code excep)
1353 * Send trap type (converted to signal) 1341 * Send trap type (converted to signal)
1354 */ 1342 */
1355 *ptr++ = 'T'; 1343 *ptr++ = 'T';
1356 *ptr++ = hexchars[sigval >> 4]; 1344 ptr = pack_hex_byte(ptr, sigval);
1357 *ptr++ = hexchars[sigval & 0xf];
1358 1345
1359 /* 1346 /*
1360 * Send Error PC 1347 * Send Error PC
1361 */ 1348 */
1362 *ptr++ = hexchars[GDB_REGID_PC >> 4]; 1349 ptr = pack_hex_byte(ptr, GDB_REGID_PC);
1363 *ptr++ = hexchars[GDB_REGID_PC & 0xf];
1364 *ptr++ = ':'; 1350 *ptr++ = ':';
1365 ptr = mem2hex(&regs->pc, ptr, 4, 0); 1351 ptr = mem2hex(&regs->pc, ptr, 4, 0);
1366 *ptr++ = ';'; 1352 *ptr++ = ';';
@@ -1368,8 +1354,7 @@ static int gdbstub(struct pt_regs *regs, enum exception_code excep)
1368 /* 1354 /*
1369 * Send frame pointer 1355 * Send frame pointer
1370 */ 1356 */
1371 *ptr++ = hexchars[GDB_REGID_FP >> 4]; 1357 ptr = pack_hex_byte(ptr, GDB_REGID_FP);
1372 *ptr++ = hexchars[GDB_REGID_FP & 0xf];
1373 *ptr++ = ':'; 1358 *ptr++ = ':';
1374 ptr = mem2hex(&regs->a3, ptr, 4, 0); 1359 ptr = mem2hex(&regs->a3, ptr, 4, 0);
1375 *ptr++ = ';'; 1360 *ptr++ = ';';
@@ -1378,8 +1363,7 @@ static int gdbstub(struct pt_regs *regs, enum exception_code excep)
1378 * Send stack pointer 1363 * Send stack pointer
1379 */ 1364 */
1380 ssp = (unsigned long) (regs + 1); 1365 ssp = (unsigned long) (regs + 1);
1381 *ptr++ = hexchars[GDB_REGID_SP >> 4]; 1366 ptr = pack_hex_byte(ptr, GDB_REGID_SP);
1382 *ptr++ = hexchars[GDB_REGID_SP & 0xf];
1383 *ptr++ = ':'; 1367 *ptr++ = ':';
1384 ptr = mem2hex(&ssp, ptr, 4, 0); 1368 ptr = mem2hex(&ssp, ptr, 4, 0);
1385 *ptr++ = ';'; 1369 *ptr++ = ';';
@@ -1399,8 +1383,8 @@ packet_waiting:
1399 /* request repeat of last signal number */ 1383 /* request repeat of last signal number */
1400 case '?': 1384 case '?':
1401 output_buffer[0] = 'S'; 1385 output_buffer[0] = 'S';
1402 output_buffer[1] = hexchars[sigval >> 4]; 1386 output_buffer[1] = hex_asc_hi(sigval);
1403 output_buffer[2] = hexchars[sigval & 0xf]; 1387 output_buffer[2] = hex_asc_lo(sigval);
1404 output_buffer[3] = 0; 1388 output_buffer[3] = 0;
1405 break; 1389 break;
1406 1390
@@ -1838,8 +1822,8 @@ void gdbstub_exit(int status)
1838 1822
1839 gdbstub_busy = 1; 1823 gdbstub_busy = 1;
1840 output_buffer[0] = 'W'; 1824 output_buffer[0] = 'W';
1841 output_buffer[1] = hexchars[(status >> 4) & 0x0F]; 1825 output_buffer[1] = hex_asc_hi(status);
1842 output_buffer[2] = hexchars[status & 0x0F]; 1826 output_buffer[2] = hex_asc_lo(status);
1843 output_buffer[3] = 0; 1827 output_buffer[3] = 0;
1844 1828
1845 gdbstub_io_tx_char('$'); 1829 gdbstub_io_tx_char('$');
@@ -1853,8 +1837,8 @@ void gdbstub_exit(int status)
1853 } 1837 }
1854 1838
1855 gdbstub_io_tx_char('#'); 1839 gdbstub_io_tx_char('#');
1856 gdbstub_io_tx_char(hexchars[checksum >> 4]); 1840 gdbstub_io_tx_char(hex_asc_hi(checksum));
1857 gdbstub_io_tx_char(hexchars[checksum & 0xf]); 1841 gdbstub_io_tx_char(hex_asc_lo(checksum));
1858 1842
1859 /* make sure the output is flushed, or else RedBoot might clobber it */ 1843 /* make sure the output is flushed, or else RedBoot might clobber it */
1860 gdbstub_io_tx_flush(); 1844 gdbstub_io_tx_flush();
diff --git a/arch/mn10300/mm/pgtable.c b/arch/mn10300/mm/pgtable.c
index a477038752ba..baffc581e031 100644
--- a/arch/mn10300/mm/pgtable.c
+++ b/arch/mn10300/mm/pgtable.c
@@ -27,33 +27,6 @@
27#include <asm/tlb.h> 27#include <asm/tlb.h>
28#include <asm/tlbflush.h> 28#include <asm/tlbflush.h>
29 29
30void show_mem(void)
31{
32 unsigned long i;
33 int free = 0, total = 0, reserved = 0, shared = 0;
34
35 int cached = 0;
36 printk(KERN_INFO "Mem-info:\n");
37 show_free_areas();
38 i = max_mapnr;
39 while (i-- > 0) {
40 total++;
41 if (PageReserved(mem_map + i))
42 reserved++;
43 else if (PageSwapCache(mem_map + i))
44 cached++;
45 else if (!page_count(mem_map + i))
46 free++;
47 else
48 shared += page_count(mem_map + i) - 1;
49 }
50 printk(KERN_INFO "%d pages of RAM\n", total);
51 printk(KERN_INFO "%d free pages\n", free);
52 printk(KERN_INFO "%d reserved pages\n", reserved);
53 printk(KERN_INFO "%d pages shared\n", shared);
54 printk(KERN_INFO "%d pages swap cached\n", cached);
55}
56
57/* 30/*
58 * Associate a large virtual page frame with a given physical page frame 31 * Associate a large virtual page frame with a given physical page frame
59 * and protection flags for that frame. pfn is for the base of the page, 32 * and protection flags for that frame. pfn is for the base of the page,
diff --git a/arch/parisc/hpux/sys_hpux.c b/arch/parisc/hpux/sys_hpux.c
index be255ebb609c..18072e03a019 100644
--- a/arch/parisc/hpux/sys_hpux.c
+++ b/arch/parisc/hpux/sys_hpux.c
@@ -210,19 +210,19 @@ static int vfs_statfs_hpux(struct dentry *dentry, struct hpux_statfs *buf)
210} 210}
211 211
212/* hpux statfs */ 212/* hpux statfs */
213asmlinkage long hpux_statfs(const char __user *path, 213asmlinkage long hpux_statfs(const char __user *pathname,
214 struct hpux_statfs __user *buf) 214 struct hpux_statfs __user *buf)
215{ 215{
216 struct nameidata nd; 216 struct path path;
217 int error; 217 int error;
218 218
219 error = user_path_walk(path, &nd); 219 error = user_path(pathname, &path);
220 if (!error) { 220 if (!error) {
221 struct hpux_statfs tmp; 221 struct hpux_statfs tmp;
222 error = vfs_statfs_hpux(nd.path.dentry, &tmp); 222 error = vfs_statfs_hpux(path.dentry, &tmp);
223 if (!error && copy_to_user(buf, &tmp, sizeof(tmp))) 223 if (!error && copy_to_user(buf, &tmp, sizeof(tmp)))
224 error = -EFAULT; 224 error = -EFAULT;
225 path_put(&nd.path); 225 path_put(&path);
226 } 226 }
227 return error; 227 return error;
228} 228}
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c
index 29a0e039d436..aab76887a842 100644
--- a/arch/powerpc/kernel/machine_kexec.c
+++ b/arch/powerpc/kernel/machine_kexec.c
@@ -48,7 +48,7 @@ void machine_kexec_cleanup(struct kimage *image)
48 * Do not allocate memory (or fail in any way) in machine_kexec(). 48 * Do not allocate memory (or fail in any way) in machine_kexec().
49 * We are past the point of no return, committed to rebooting now. 49 * We are past the point of no return, committed to rebooting now.
50 */ 50 */
51NORET_TYPE void machine_kexec(struct kimage *image) 51void machine_kexec(struct kimage *image)
52{ 52{
53 if (ppc_md.machine_kexec) 53 if (ppc_md.machine_kexec)
54 ppc_md.machine_kexec(image); 54 ppc_md.machine_kexec(image);
diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c
index 09ded5c424a9..149cb112cd1a 100644
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
@@ -286,7 +286,7 @@ static ssize_t rtas_flash_read(struct file *file, char __user *buf,
286} 286}
287 287
288/* constructor for flash_block_cache */ 288/* constructor for flash_block_cache */
289void rtas_block_ctor(struct kmem_cache *cache, void *ptr) 289void rtas_block_ctor(void *ptr)
290{ 290{
291 memset(ptr, 0, RTAS_BLK_SIZE); 291 memset(ptr, 0, RTAS_BLK_SIZE);
292} 292}
diff --git a/arch/powerpc/kvm/44x_tlb.c b/arch/powerpc/kvm/44x_tlb.c
index 75dff7cfa814..5a5602da5091 100644
--- a/arch/powerpc/kvm/44x_tlb.c
+++ b/arch/powerpc/kvm/44x_tlb.c
@@ -177,7 +177,8 @@ void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gfn_t gfn, u64 asid,
177 vcpu->arch.msr & MSR_PR); 177 vcpu->arch.msr & MSR_PR);
178} 178}
179 179
180void kvmppc_mmu_invalidate(struct kvm_vcpu *vcpu, u64 eaddr, u64 asid) 180void kvmppc_mmu_invalidate(struct kvm_vcpu *vcpu, gva_t eaddr,
181 gva_t eend, u32 asid)
181{ 182{
182 unsigned int pid = asid & 0xff; 183 unsigned int pid = asid & 0xff;
183 int i; 184 int i;
@@ -191,7 +192,7 @@ void kvmppc_mmu_invalidate(struct kvm_vcpu *vcpu, u64 eaddr, u64 asid)
191 if (!get_tlb_v(stlbe)) 192 if (!get_tlb_v(stlbe))
192 continue; 193 continue;
193 194
194 if (eaddr < get_tlb_eaddr(stlbe)) 195 if (eend < get_tlb_eaddr(stlbe))
195 continue; 196 continue;
196 197
197 if (eaddr > get_tlb_end(stlbe)) 198 if (eaddr > get_tlb_end(stlbe))
diff --git a/arch/powerpc/kvm/emulate.c b/arch/powerpc/kvm/emulate.c
index 000097461283..8c605d0a5488 100644
--- a/arch/powerpc/kvm/emulate.c
+++ b/arch/powerpc/kvm/emulate.c
@@ -137,7 +137,7 @@ static int kvmppc_emul_tlbwe(struct kvm_vcpu *vcpu, u32 inst)
137 if (tlbe->word0 & PPC44x_TLB_VALID) { 137 if (tlbe->word0 & PPC44x_TLB_VALID) {
138 eaddr = get_tlb_eaddr(tlbe); 138 eaddr = get_tlb_eaddr(tlbe);
139 asid = (tlbe->word0 & PPC44x_TLB_TS) | tlbe->tid; 139 asid = (tlbe->word0 & PPC44x_TLB_TS) | tlbe->tid;
140 kvmppc_mmu_invalidate(vcpu, eaddr, asid); 140 kvmppc_mmu_invalidate(vcpu, eaddr, get_tlb_end(tlbe), asid);
141 } 141 }
142 142
143 switch (ws) { 143 switch (ws) {
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index fb42c4dd3217..ed0aab0208a6 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -113,7 +113,7 @@ static inline pte_t *hugepte_offset(hugepd_t *hpdp, unsigned long addr,
113static int __hugepte_alloc(struct mm_struct *mm, hugepd_t *hpdp, 113static int __hugepte_alloc(struct mm_struct *mm, hugepd_t *hpdp,
114 unsigned long address, unsigned int psize) 114 unsigned long address, unsigned int psize)
115{ 115{
116 pte_t *new = kmem_cache_alloc(huge_pgtable_cache(psize), 116 pte_t *new = kmem_cache_zalloc(huge_pgtable_cache(psize),
117 GFP_KERNEL|__GFP_REPEAT); 117 GFP_KERNEL|__GFP_REPEAT);
118 118
119 if (! new) 119 if (! new)
@@ -730,11 +730,6 @@ static int __init hugepage_setup_sz(char *str)
730} 730}
731__setup("hugepagesz=", hugepage_setup_sz); 731__setup("hugepagesz=", hugepage_setup_sz);
732 732
733static void zero_ctor(struct kmem_cache *cache, void *addr)
734{
735 memset(addr, 0, kmem_cache_size(cache));
736}
737
738static int __init hugetlbpage_init(void) 733static int __init hugetlbpage_init(void)
739{ 734{
740 unsigned int psize; 735 unsigned int psize;
@@ -756,7 +751,7 @@ static int __init hugetlbpage_init(void)
756 HUGEPTE_TABLE_SIZE(psize), 751 HUGEPTE_TABLE_SIZE(psize),
757 HUGEPTE_TABLE_SIZE(psize), 752 HUGEPTE_TABLE_SIZE(psize),
758 0, 753 0,
759 zero_ctor); 754 NULL);
760 if (!huge_pgtable_cache(psize)) 755 if (!huge_pgtable_cache(psize))
761 panic("hugetlbpage_init(): could not create %s"\ 756 panic("hugetlbpage_init(): could not create %s"\
762 "\n", HUGEPTE_CACHE_NAME(psize)); 757 "\n", HUGEPTE_CACHE_NAME(psize));
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
index a41bc5aa2043..4f7df85129d8 100644
--- a/arch/powerpc/mm/init_64.c
+++ b/arch/powerpc/mm/init_64.c
@@ -136,9 +136,14 @@ static int __init setup_kcore(void)
136module_init(setup_kcore); 136module_init(setup_kcore);
137#endif 137#endif
138 138
139static void zero_ctor(struct kmem_cache *cache, void *addr) 139static void pgd_ctor(void *addr)
140{ 140{
141 memset(addr, 0, kmem_cache_size(cache)); 141 memset(addr, 0, PGD_TABLE_SIZE);
142}
143
144static void pmd_ctor(void *addr)
145{
146 memset(addr, 0, PMD_TABLE_SIZE);
142} 147}
143 148
144static const unsigned int pgtable_cache_size[2] = { 149static const unsigned int pgtable_cache_size[2] = {
@@ -163,19 +168,8 @@ struct kmem_cache *pgtable_cache[ARRAY_SIZE(pgtable_cache_size)];
163 168
164void pgtable_cache_init(void) 169void pgtable_cache_init(void)
165{ 170{
166 int i; 171 pgtable_cache[0] = kmem_cache_create(pgtable_cache_name[0], PGD_TABLE_SIZE, PGD_TABLE_SIZE, SLAB_PANIC, pgd_ctor);
167 172 pgtable_cache[1] = kmem_cache_create(pgtable_cache_name[1], PMD_TABLE_SIZE, PMD_TABLE_SIZE, SLAB_PANIC, pmd_ctor);
168 for (i = 0; i < ARRAY_SIZE(pgtable_cache_size); i++) {
169 int size = pgtable_cache_size[i];
170 const char *name = pgtable_cache_name[i];
171
172 pr_debug("Allocating page table cache %s (#%d) "
173 "for size: %08x...\n", name, i, size);
174 pgtable_cache[i] = kmem_cache_create(name,
175 size, size,
176 SLAB_PANIC,
177 zero_ctor);
178 }
179} 173}
180 174
181#ifdef CONFIG_SPARSEMEM_VMEMMAP 175#ifdef CONFIG_SPARSEMEM_VMEMMAP
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 1ca2235f0965..702691cb9e82 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -186,45 +186,6 @@ walk_memory_resource(unsigned long start_pfn, unsigned long nr_pages, void *arg,
186} 186}
187EXPORT_SYMBOL_GPL(walk_memory_resource); 187EXPORT_SYMBOL_GPL(walk_memory_resource);
188 188
189void show_mem(void)
190{
191 unsigned long total = 0, reserved = 0;
192 unsigned long shared = 0, cached = 0;
193 unsigned long highmem = 0;
194 struct page *page;
195 pg_data_t *pgdat;
196 unsigned long i;
197
198 printk("Mem-info:\n");
199 show_free_areas();
200 for_each_online_pgdat(pgdat) {
201 unsigned long flags;
202 pgdat_resize_lock(pgdat, &flags);
203 for (i = 0; i < pgdat->node_spanned_pages; i++) {
204 if (!pfn_valid(pgdat->node_start_pfn + i))
205 continue;
206 page = pgdat_page_nr(pgdat, i);
207 total++;
208 if (PageHighMem(page))
209 highmem++;
210 if (PageReserved(page))
211 reserved++;
212 else if (PageSwapCache(page))
213 cached++;
214 else if (page_count(page))
215 shared += page_count(page) - 1;
216 }
217 pgdat_resize_unlock(pgdat, &flags);
218 }
219 printk("%ld pages of RAM\n", total);
220#ifdef CONFIG_HIGHMEM
221 printk("%ld pages of HIGHMEM\n", highmem);
222#endif
223 printk("%ld reserved pages\n", reserved);
224 printk("%ld pages shared\n", shared);
225 printk("%ld pages swap cached\n", cached);
226}
227
228/* 189/*
229 * Initialize the bootmem system and give it all the memory we 190 * Initialize the bootmem system and give it all the memory we
230 * have available. If we are using highmem, we only put the 191 * have available. If we are using highmem, we only put the
diff --git a/arch/powerpc/platforms/cell/celleb_scc_pciex.c b/arch/powerpc/platforms/cell/celleb_scc_pciex.c
index 0e04f8fb152a..3e7e0f1568ef 100644
--- a/arch/powerpc/platforms/cell/celleb_scc_pciex.c
+++ b/arch/powerpc/platforms/cell/celleb_scc_pciex.c
@@ -281,7 +281,7 @@ static int __init scc_pciex_iowa_init(struct iowa_bus *bus, void *data)
281 281
282 dummy_page_da = dma_map_single(bus->phb->parent, dummy_page_va, 282 dummy_page_da = dma_map_single(bus->phb->parent, dummy_page_va,
283 PAGE_SIZE, DMA_FROM_DEVICE); 283 PAGE_SIZE, DMA_FROM_DEVICE);
284 if (dma_mapping_error(dummy_page_da)) { 284 if (dma_mapping_error(bus->phb->parent, dummy_page_da)) {
285 pr_err("PCIEX:Map dummy page failed.\n"); 285 pr_err("PCIEX:Map dummy page failed.\n");
286 kfree(dummy_page_va); 286 kfree(dummy_page_va);
287 return -1; 287 return -1;
diff --git a/arch/powerpc/platforms/cell/spider-pci.c b/arch/powerpc/platforms/cell/spider-pci.c
index 418b605ac35a..5122ec145271 100644
--- a/arch/powerpc/platforms/cell/spider-pci.c
+++ b/arch/powerpc/platforms/cell/spider-pci.c
@@ -111,7 +111,7 @@ static int __init spiderpci_pci_setup_chip(struct pci_controller *phb,
111 111
112 dummy_page_da = dma_map_single(phb->parent, dummy_page_va, 112 dummy_page_da = dma_map_single(phb->parent, dummy_page_va,
113 PAGE_SIZE, DMA_FROM_DEVICE); 113 PAGE_SIZE, DMA_FROM_DEVICE);
114 if (dma_mapping_error(dummy_page_da)) { 114 if (dma_mapping_error(phb->parent, dummy_page_da)) {
115 pr_err("SPIDER-IOWA:Map dummy page filed.\n"); 115 pr_err("SPIDER-IOWA:Map dummy page filed.\n");
116 kfree(dummy_page_va); 116 kfree(dummy_page_va);
117 return -1; 117 return -1;
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
index 7123472801d9..690ca7b0dcf6 100644
--- a/arch/powerpc/platforms/cell/spufs/inode.c
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
@@ -78,7 +78,7 @@ spufs_destroy_inode(struct inode *inode)
78} 78}
79 79
80static void 80static void
81spufs_init_once(struct kmem_cache *cachep, void *p) 81spufs_init_once(void *p)
82{ 82{
83 struct spufs_inode_info *ei = p; 83 struct spufs_inode_info *ei = p;
84 84
diff --git a/arch/powerpc/platforms/iseries/mf.c b/arch/powerpc/platforms/iseries/mf.c
index 1dc7295746da..731d7b157749 100644
--- a/arch/powerpc/platforms/iseries/mf.c
+++ b/arch/powerpc/platforms/iseries/mf.c
@@ -871,7 +871,7 @@ static int proc_mf_dump_cmdline(char *page, char **start, off_t off,
871 count = 256 - off; 871 count = 256 - off;
872 872
873 dma_addr = iseries_hv_map(page, off + count, DMA_FROM_DEVICE); 873 dma_addr = iseries_hv_map(page, off + count, DMA_FROM_DEVICE);
874 if (dma_mapping_error(dma_addr)) 874 if (dma_mapping_error(NULL, dma_addr))
875 return -ENOMEM; 875 return -ENOMEM;
876 memset(page, 0, off + count); 876 memset(page, 0, off + count);
877 memset(&vsp_cmd, 0, sizeof(vsp_cmd)); 877 memset(&vsp_cmd, 0, sizeof(vsp_cmd));
diff --git a/arch/s390/kvm/gaccess.h b/arch/s390/kvm/gaccess.h
index 4e0633c413f3..ed60f3a74a85 100644
--- a/arch/s390/kvm/gaccess.h
+++ b/arch/s390/kvm/gaccess.h
@@ -18,11 +18,11 @@
18#include <asm/uaccess.h> 18#include <asm/uaccess.h>
19 19
20static inline void __user *__guestaddr_to_user(struct kvm_vcpu *vcpu, 20static inline void __user *__guestaddr_to_user(struct kvm_vcpu *vcpu,
21 u64 guestaddr) 21 unsigned long guestaddr)
22{ 22{
23 u64 prefix = vcpu->arch.sie_block->prefix; 23 unsigned long prefix = vcpu->arch.sie_block->prefix;
24 u64 origin = vcpu->kvm->arch.guest_origin; 24 unsigned long origin = vcpu->kvm->arch.guest_origin;
25 u64 memsize = vcpu->kvm->arch.guest_memsize; 25 unsigned long memsize = vcpu->kvm->arch.guest_memsize;
26 26
27 if (guestaddr < 2 * PAGE_SIZE) 27 if (guestaddr < 2 * PAGE_SIZE)
28 guestaddr += prefix; 28 guestaddr += prefix;
@@ -37,7 +37,7 @@ static inline void __user *__guestaddr_to_user(struct kvm_vcpu *vcpu,
37 return (void __user *) guestaddr; 37 return (void __user *) guestaddr;
38} 38}
39 39
40static inline int get_guest_u64(struct kvm_vcpu *vcpu, u64 guestaddr, 40static inline int get_guest_u64(struct kvm_vcpu *vcpu, unsigned long guestaddr,
41 u64 *result) 41 u64 *result)
42{ 42{
43 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr); 43 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr);
@@ -47,10 +47,10 @@ static inline int get_guest_u64(struct kvm_vcpu *vcpu, u64 guestaddr,
47 if (IS_ERR((void __force *) uptr)) 47 if (IS_ERR((void __force *) uptr))
48 return PTR_ERR((void __force *) uptr); 48 return PTR_ERR((void __force *) uptr);
49 49
50 return get_user(*result, (u64 __user *) uptr); 50 return get_user(*result, (unsigned long __user *) uptr);
51} 51}
52 52
53static inline int get_guest_u32(struct kvm_vcpu *vcpu, u64 guestaddr, 53static inline int get_guest_u32(struct kvm_vcpu *vcpu, unsigned long guestaddr,
54 u32 *result) 54 u32 *result)
55{ 55{
56 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr); 56 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr);
@@ -63,7 +63,7 @@ static inline int get_guest_u32(struct kvm_vcpu *vcpu, u64 guestaddr,
63 return get_user(*result, (u32 __user *) uptr); 63 return get_user(*result, (u32 __user *) uptr);
64} 64}
65 65
66static inline int get_guest_u16(struct kvm_vcpu *vcpu, u64 guestaddr, 66static inline int get_guest_u16(struct kvm_vcpu *vcpu, unsigned long guestaddr,
67 u16 *result) 67 u16 *result)
68{ 68{
69 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr); 69 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr);
@@ -76,7 +76,7 @@ static inline int get_guest_u16(struct kvm_vcpu *vcpu, u64 guestaddr,
76 return get_user(*result, (u16 __user *) uptr); 76 return get_user(*result, (u16 __user *) uptr);
77} 77}
78 78
79static inline int get_guest_u8(struct kvm_vcpu *vcpu, u64 guestaddr, 79static inline int get_guest_u8(struct kvm_vcpu *vcpu, unsigned long guestaddr,
80 u8 *result) 80 u8 *result)
81{ 81{
82 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr); 82 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr);
@@ -87,7 +87,7 @@ static inline int get_guest_u8(struct kvm_vcpu *vcpu, u64 guestaddr,
87 return get_user(*result, (u8 __user *) uptr); 87 return get_user(*result, (u8 __user *) uptr);
88} 88}
89 89
90static inline int put_guest_u64(struct kvm_vcpu *vcpu, u64 guestaddr, 90static inline int put_guest_u64(struct kvm_vcpu *vcpu, unsigned long guestaddr,
91 u64 value) 91 u64 value)
92{ 92{
93 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr); 93 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr);
@@ -100,7 +100,7 @@ static inline int put_guest_u64(struct kvm_vcpu *vcpu, u64 guestaddr,
100 return put_user(value, (u64 __user *) uptr); 100 return put_user(value, (u64 __user *) uptr);
101} 101}
102 102
103static inline int put_guest_u32(struct kvm_vcpu *vcpu, u64 guestaddr, 103static inline int put_guest_u32(struct kvm_vcpu *vcpu, unsigned long guestaddr,
104 u32 value) 104 u32 value)
105{ 105{
106 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr); 106 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr);
@@ -113,7 +113,7 @@ static inline int put_guest_u32(struct kvm_vcpu *vcpu, u64 guestaddr,
113 return put_user(value, (u32 __user *) uptr); 113 return put_user(value, (u32 __user *) uptr);
114} 114}
115 115
116static inline int put_guest_u16(struct kvm_vcpu *vcpu, u64 guestaddr, 116static inline int put_guest_u16(struct kvm_vcpu *vcpu, unsigned long guestaddr,
117 u16 value) 117 u16 value)
118{ 118{
119 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr); 119 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr);
@@ -126,7 +126,7 @@ static inline int put_guest_u16(struct kvm_vcpu *vcpu, u64 guestaddr,
126 return put_user(value, (u16 __user *) uptr); 126 return put_user(value, (u16 __user *) uptr);
127} 127}
128 128
129static inline int put_guest_u8(struct kvm_vcpu *vcpu, u64 guestaddr, 129static inline int put_guest_u8(struct kvm_vcpu *vcpu, unsigned long guestaddr,
130 u8 value) 130 u8 value)
131{ 131{
132 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr); 132 void __user *uptr = __guestaddr_to_user(vcpu, guestaddr);
@@ -138,7 +138,8 @@ static inline int put_guest_u8(struct kvm_vcpu *vcpu, u64 guestaddr,
138} 138}
139 139
140 140
141static inline int __copy_to_guest_slow(struct kvm_vcpu *vcpu, u64 guestdest, 141static inline int __copy_to_guest_slow(struct kvm_vcpu *vcpu,
142 unsigned long guestdest,
142 const void *from, unsigned long n) 143 const void *from, unsigned long n)
143{ 144{
144 int rc; 145 int rc;
@@ -153,12 +154,12 @@ static inline int __copy_to_guest_slow(struct kvm_vcpu *vcpu, u64 guestdest,
153 return 0; 154 return 0;
154} 155}
155 156
156static inline int copy_to_guest(struct kvm_vcpu *vcpu, u64 guestdest, 157static inline int copy_to_guest(struct kvm_vcpu *vcpu, unsigned long guestdest,
157 const void *from, unsigned long n) 158 const void *from, unsigned long n)
158{ 159{
159 u64 prefix = vcpu->arch.sie_block->prefix; 160 unsigned long prefix = vcpu->arch.sie_block->prefix;
160 u64 origin = vcpu->kvm->arch.guest_origin; 161 unsigned long origin = vcpu->kvm->arch.guest_origin;
161 u64 memsize = vcpu->kvm->arch.guest_memsize; 162 unsigned long memsize = vcpu->kvm->arch.guest_memsize;
162 163
163 if ((guestdest < 2 * PAGE_SIZE) && (guestdest + n > 2 * PAGE_SIZE)) 164 if ((guestdest < 2 * PAGE_SIZE) && (guestdest + n > 2 * PAGE_SIZE))
164 goto slowpath; 165 goto slowpath;
@@ -189,7 +190,8 @@ slowpath:
189} 190}
190 191
191static inline int __copy_from_guest_slow(struct kvm_vcpu *vcpu, void *to, 192static inline int __copy_from_guest_slow(struct kvm_vcpu *vcpu, void *to,
192 u64 guestsrc, unsigned long n) 193 unsigned long guestsrc,
194 unsigned long n)
193{ 195{
194 int rc; 196 int rc;
195 unsigned long i; 197 unsigned long i;
@@ -204,11 +206,11 @@ static inline int __copy_from_guest_slow(struct kvm_vcpu *vcpu, void *to,
204} 206}
205 207
206static inline int copy_from_guest(struct kvm_vcpu *vcpu, void *to, 208static inline int copy_from_guest(struct kvm_vcpu *vcpu, void *to,
207 u64 guestsrc, unsigned long n) 209 unsigned long guestsrc, unsigned long n)
208{ 210{
209 u64 prefix = vcpu->arch.sie_block->prefix; 211 unsigned long prefix = vcpu->arch.sie_block->prefix;
210 u64 origin = vcpu->kvm->arch.guest_origin; 212 unsigned long origin = vcpu->kvm->arch.guest_origin;
211 u64 memsize = vcpu->kvm->arch.guest_memsize; 213 unsigned long memsize = vcpu->kvm->arch.guest_memsize;
212 214
213 if ((guestsrc < 2 * PAGE_SIZE) && (guestsrc + n > 2 * PAGE_SIZE)) 215 if ((guestsrc < 2 * PAGE_SIZE) && (guestsrc + n > 2 * PAGE_SIZE))
214 goto slowpath; 216 goto slowpath;
@@ -238,11 +240,12 @@ slowpath:
238 return __copy_from_guest_slow(vcpu, to, guestsrc, n); 240 return __copy_from_guest_slow(vcpu, to, guestsrc, n);
239} 241}
240 242
241static inline int copy_to_guest_absolute(struct kvm_vcpu *vcpu, u64 guestdest, 243static inline int copy_to_guest_absolute(struct kvm_vcpu *vcpu,
244 unsigned long guestdest,
242 const void *from, unsigned long n) 245 const void *from, unsigned long n)
243{ 246{
244 u64 origin = vcpu->kvm->arch.guest_origin; 247 unsigned long origin = vcpu->kvm->arch.guest_origin;
245 u64 memsize = vcpu->kvm->arch.guest_memsize; 248 unsigned long memsize = vcpu->kvm->arch.guest_memsize;
246 249
247 if (guestdest + n > memsize) 250 if (guestdest + n > memsize)
248 return -EFAULT; 251 return -EFAULT;
@@ -256,10 +259,11 @@ static inline int copy_to_guest_absolute(struct kvm_vcpu *vcpu, u64 guestdest,
256} 259}
257 260
258static inline int copy_from_guest_absolute(struct kvm_vcpu *vcpu, void *to, 261static inline int copy_from_guest_absolute(struct kvm_vcpu *vcpu, void *to,
259 u64 guestsrc, unsigned long n) 262 unsigned long guestsrc,
263 unsigned long n)
260{ 264{
261 u64 origin = vcpu->kvm->arch.guest_origin; 265 unsigned long origin = vcpu->kvm->arch.guest_origin;
262 u64 memsize = vcpu->kvm->arch.guest_memsize; 266 unsigned long memsize = vcpu->kvm->arch.guest_memsize;
263 267
264 if (guestsrc + n > memsize) 268 if (guestsrc + n > memsize)
265 return -EFAULT; 269 return -EFAULT;
diff --git a/arch/s390/kvm/intercept.c b/arch/s390/kvm/intercept.c
index 47a0b642174c..61236102203e 100644
--- a/arch/s390/kvm/intercept.c
+++ b/arch/s390/kvm/intercept.c
@@ -20,7 +20,7 @@
20#include "kvm-s390.h" 20#include "kvm-s390.h"
21#include "gaccess.h" 21#include "gaccess.h"
22 22
23static int handle_lctg(struct kvm_vcpu *vcpu) 23static int handle_lctlg(struct kvm_vcpu *vcpu)
24{ 24{
25 int reg1 = (vcpu->arch.sie_block->ipa & 0x00f0) >> 4; 25 int reg1 = (vcpu->arch.sie_block->ipa & 0x00f0) >> 4;
26 int reg3 = vcpu->arch.sie_block->ipa & 0x000f; 26 int reg3 = vcpu->arch.sie_block->ipa & 0x000f;
@@ -30,7 +30,7 @@ static int handle_lctg(struct kvm_vcpu *vcpu)
30 u64 useraddr; 30 u64 useraddr;
31 int reg, rc; 31 int reg, rc;
32 32
33 vcpu->stat.instruction_lctg++; 33 vcpu->stat.instruction_lctlg++;
34 if ((vcpu->arch.sie_block->ipb & 0xff) != 0x2f) 34 if ((vcpu->arch.sie_block->ipb & 0xff) != 0x2f)
35 return -ENOTSUPP; 35 return -ENOTSUPP;
36 36
@@ -38,9 +38,12 @@ static int handle_lctg(struct kvm_vcpu *vcpu)
38 if (base2) 38 if (base2)
39 useraddr += vcpu->arch.guest_gprs[base2]; 39 useraddr += vcpu->arch.guest_gprs[base2];
40 40
41 if (useraddr & 7)
42 return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
43
41 reg = reg1; 44 reg = reg1;
42 45
43 VCPU_EVENT(vcpu, 5, "lctg r1:%x, r3:%x,b2:%x,d2:%x", reg1, reg3, base2, 46 VCPU_EVENT(vcpu, 5, "lctlg r1:%x, r3:%x,b2:%x,d2:%x", reg1, reg3, base2,
44 disp2); 47 disp2);
45 48
46 do { 49 do {
@@ -74,6 +77,9 @@ static int handle_lctl(struct kvm_vcpu *vcpu)
74 if (base2) 77 if (base2)
75 useraddr += vcpu->arch.guest_gprs[base2]; 78 useraddr += vcpu->arch.guest_gprs[base2];
76 79
80 if (useraddr & 3)
81 return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
82
77 VCPU_EVENT(vcpu, 5, "lctl r1:%x, r3:%x,b2:%x,d2:%x", reg1, reg3, base2, 83 VCPU_EVENT(vcpu, 5, "lctl r1:%x, r3:%x,b2:%x,d2:%x", reg1, reg3, base2,
78 disp2); 84 disp2);
79 85
@@ -99,7 +105,7 @@ static intercept_handler_t instruction_handlers[256] = {
99 [0xae] = kvm_s390_handle_sigp, 105 [0xae] = kvm_s390_handle_sigp,
100 [0xb2] = kvm_s390_handle_priv, 106 [0xb2] = kvm_s390_handle_priv,
101 [0xb7] = handle_lctl, 107 [0xb7] = handle_lctl,
102 [0xeb] = handle_lctg, 108 [0xeb] = handle_lctlg,
103}; 109};
104 110
105static int handle_noop(struct kvm_vcpu *vcpu) 111static int handle_noop(struct kvm_vcpu *vcpu)
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index 11230b0db957..2960702b4824 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -13,6 +13,7 @@
13#include <asm/lowcore.h> 13#include <asm/lowcore.h>
14#include <asm/uaccess.h> 14#include <asm/uaccess.h>
15#include <linux/kvm_host.h> 15#include <linux/kvm_host.h>
16#include <linux/signal.h>
16#include "kvm-s390.h" 17#include "kvm-s390.h"
17#include "gaccess.h" 18#include "gaccess.h"
18 19
@@ -246,15 +247,10 @@ static void __do_deliver_interrupt(struct kvm_vcpu *vcpu,
246 default: 247 default:
247 BUG(); 248 BUG();
248 } 249 }
249
250 if (exception) { 250 if (exception) {
251 VCPU_EVENT(vcpu, 1, "%s", "program exception while delivering" 251 printk("kvm: The guest lowcore is not mapped during interrupt "
252 " interrupt"); 252 "delivery, killing userspace\n");
253 kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); 253 do_exit(SIGKILL);
254 if (inti->type == KVM_S390_PROGRAM_INT) {
255 printk(KERN_WARNING "kvm: recursive program check\n");
256 BUG();
257 }
258 } 254 }
259} 255}
260 256
@@ -277,14 +273,11 @@ static int __try_deliver_ckc_interrupt(struct kvm_vcpu *vcpu)
277 __LC_EXT_NEW_PSW, sizeof(psw_t)); 273 __LC_EXT_NEW_PSW, sizeof(psw_t));
278 if (rc == -EFAULT) 274 if (rc == -EFAULT)
279 exception = 1; 275 exception = 1;
280
281 if (exception) { 276 if (exception) {
282 VCPU_EVENT(vcpu, 1, "%s", "program exception while delivering" \ 277 printk("kvm: The guest lowcore is not mapped during interrupt "
283 " ckc interrupt"); 278 "delivery, killing userspace\n");
284 kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); 279 do_exit(SIGKILL);
285 return 0;
286 } 280 }
287
288 return 1; 281 return 1;
289} 282}
290 283
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 1782cbcd2829..8b00eb2ddf57 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -39,7 +39,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
39 { "exit_instruction", VCPU_STAT(exit_instruction) }, 39 { "exit_instruction", VCPU_STAT(exit_instruction) },
40 { "exit_program_interruption", VCPU_STAT(exit_program_interruption) }, 40 { "exit_program_interruption", VCPU_STAT(exit_program_interruption) },
41 { "exit_instr_and_program_int", VCPU_STAT(exit_instr_and_program) }, 41 { "exit_instr_and_program_int", VCPU_STAT(exit_instr_and_program) },
42 { "instruction_lctg", VCPU_STAT(instruction_lctg) }, 42 { "instruction_lctlg", VCPU_STAT(instruction_lctlg) },
43 { "instruction_lctl", VCPU_STAT(instruction_lctl) }, 43 { "instruction_lctl", VCPU_STAT(instruction_lctl) },
44 { "deliver_emergency_signal", VCPU_STAT(deliver_emergency_signal) }, 44 { "deliver_emergency_signal", VCPU_STAT(deliver_emergency_signal) },
45 { "deliver_service_signal", VCPU_STAT(deliver_service_signal) }, 45 { "deliver_service_signal", VCPU_STAT(deliver_service_signal) },
@@ -112,7 +112,12 @@ long kvm_arch_dev_ioctl(struct file *filp,
112 112
113int kvm_dev_ioctl_check_extension(long ext) 113int kvm_dev_ioctl_check_extension(long ext)
114{ 114{
115 return 0; 115 switch (ext) {
116 case KVM_CAP_USER_MEMORY:
117 return 1;
118 default:
119 return 0;
120 }
116} 121}
117 122
118/* Section: vm related */ 123/* Section: vm related */
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c
index 5a556114eaa5..170392687ce0 100644
--- a/arch/s390/kvm/sigp.c
+++ b/arch/s390/kvm/sigp.c
@@ -43,7 +43,8 @@
43#define SIGP_STAT_RECEIVER_CHECK 0x00000001UL 43#define SIGP_STAT_RECEIVER_CHECK 0x00000001UL
44 44
45 45
46static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr, u64 *reg) 46static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr,
47 unsigned long *reg)
47{ 48{
48 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; 49 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
49 int rc; 50 int rc;
@@ -167,7 +168,7 @@ static int __sigp_set_arch(struct kvm_vcpu *vcpu, u32 parameter)
167} 168}
168 169
169static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address, 170static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address,
170 u64 *reg) 171 unsigned long *reg)
171{ 172{
172 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; 173 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
173 struct kvm_s390_local_interrupt *li; 174 struct kvm_s390_local_interrupt *li;
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c
index 388cc7420055..4993b0f594eb 100644
--- a/arch/s390/mm/init.c
+++ b/arch/s390/mm/init.c
@@ -42,38 +42,6 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
42pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__((__aligned__(PAGE_SIZE))); 42pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__((__aligned__(PAGE_SIZE)));
43char empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE))); 43char empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE)));
44 44
45void show_mem(void)
46{
47 unsigned long i, total = 0, reserved = 0;
48 unsigned long shared = 0, cached = 0;
49 unsigned long flags;
50 struct page *page;
51 pg_data_t *pgdat;
52
53 printk("Mem-info:\n");
54 show_free_areas();
55 for_each_online_pgdat(pgdat) {
56 pgdat_resize_lock(pgdat, &flags);
57 for (i = 0; i < pgdat->node_spanned_pages; i++) {
58 if (!pfn_valid(pgdat->node_start_pfn + i))
59 continue;
60 page = pfn_to_page(pgdat->node_start_pfn + i);
61 total++;
62 if (PageReserved(page))
63 reserved++;
64 else if (PageSwapCache(page))
65 cached++;
66 else if (page_count(page))
67 shared += page_count(page) - 1;
68 }
69 pgdat_resize_unlock(pgdat, &flags);
70 }
71 printk("%ld pages of RAM\n", total);
72 printk("%ld reserved pages\n", reserved);
73 printk("%ld pages shared\n", shared);
74 printk("%ld pages swap cached\n", cached);
75}
76
77/* 45/*
78 * paging_init() sets up the page tables 46 * paging_init() sets up the page tables
79 */ 47 */
diff --git a/arch/sh/kernel/machine_kexec.c b/arch/sh/kernel/machine_kexec.c
index 5c17de51987e..ec1eadce4aaa 100644
--- a/arch/sh/kernel/machine_kexec.c
+++ b/arch/sh/kernel/machine_kexec.c
@@ -70,7 +70,7 @@ static void kexec_info(struct kimage *image)
70 * Do not allocate memory (or fail in any way) in machine_kexec(). 70 * Do not allocate memory (or fail in any way) in machine_kexec().
71 * We are past the point of no return, committed to rebooting now. 71 * We are past the point of no return, committed to rebooting now.
72 */ 72 */
73NORET_TYPE void machine_kexec(struct kimage *image) 73void machine_kexec(struct kimage *image)
74{ 74{
75 75
76 unsigned long page_list; 76 unsigned long page_list;
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
index d652d375eb1e..b75a7acd62fb 100644
--- a/arch/sh/mm/init.c
+++ b/arch/sh/mm/init.c
@@ -25,47 +25,6 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
25pgd_t swapper_pg_dir[PTRS_PER_PGD]; 25pgd_t swapper_pg_dir[PTRS_PER_PGD];
26unsigned long cached_to_uncached = 0; 26unsigned long cached_to_uncached = 0;
27 27
28void show_mem(void)
29{
30 int total = 0, reserved = 0, free = 0;
31 int shared = 0, cached = 0, slab = 0;
32 pg_data_t *pgdat;
33
34 printk("Mem-info:\n");
35 show_free_areas();
36
37 for_each_online_pgdat(pgdat) {
38 unsigned long flags, i;
39
40 pgdat_resize_lock(pgdat, &flags);
41 for (i = 0; i < pgdat->node_spanned_pages; i++) {
42 struct page *page = pgdat_page_nr(pgdat, i);
43 total++;
44 if (PageReserved(page))
45 reserved++;
46 else if (PageSwapCache(page))
47 cached++;
48 else if (PageSlab(page))
49 slab++;
50 else if (!page_count(page))
51 free++;
52 else
53 shared += page_count(page) - 1;
54 }
55 pgdat_resize_unlock(pgdat, &flags);
56 }
57
58 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
59 printk("%d pages of RAM\n", total);
60 printk("%d free pages\n", free);
61 printk("%d reserved pages\n", reserved);
62 printk("%d slab pages\n", slab);
63 printk("%d pages shared\n", shared);
64 printk("%d pages swap cached\n", cached);
65 printk(KERN_INFO "Total of %ld pages in page table cache\n",
66 quicklist_total_size());
67}
68
69#ifdef CONFIG_MMU 28#ifdef CONFIG_MMU
70static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot) 29static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot)
71{ 30{
diff --git a/arch/sh/mm/pmb.c b/arch/sh/mm/pmb.c
index 0b0ec6e04753..46911bcbf17b 100644
--- a/arch/sh/mm/pmb.c
+++ b/arch/sh/mm/pmb.c
@@ -293,7 +293,7 @@ void pmb_unmap(unsigned long addr)
293 } while (pmbe); 293 } while (pmbe);
294} 294}
295 295
296static void pmb_cache_ctor(struct kmem_cache *cachep, void *pmb) 296static void pmb_cache_ctor(void *pmb)
297{ 297{
298 struct pmb_entry *pmbe = pmb; 298 struct pmb_entry *pmbe = pmb;
299 299
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 713297473951..4e821b3ecb03 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -392,51 +392,6 @@ void __kprobes flush_icache_range(unsigned long start, unsigned long end)
392 } 392 }
393} 393}
394 394
395void show_mem(void)
396{
397 unsigned long total = 0, reserved = 0;
398 unsigned long shared = 0, cached = 0;
399 pg_data_t *pgdat;
400
401 printk(KERN_INFO "Mem-info:\n");
402 show_free_areas();
403 printk(KERN_INFO "Free swap: %6ldkB\n",
404 nr_swap_pages << (PAGE_SHIFT-10));
405 for_each_online_pgdat(pgdat) {
406 unsigned long i, flags;
407
408 pgdat_resize_lock(pgdat, &flags);
409 for (i = 0; i < pgdat->node_spanned_pages; i++) {
410 struct page *page = pgdat_page_nr(pgdat, i);
411 total++;
412 if (PageReserved(page))
413 reserved++;
414 else if (PageSwapCache(page))
415 cached++;
416 else if (page_count(page))
417 shared += page_count(page) - 1;
418 }
419 pgdat_resize_unlock(pgdat, &flags);
420 }
421
422 printk(KERN_INFO "%lu pages of RAM\n", total);
423 printk(KERN_INFO "%lu reserved pages\n", reserved);
424 printk(KERN_INFO "%lu pages shared\n", shared);
425 printk(KERN_INFO "%lu pages swap cached\n", cached);
426
427 printk(KERN_INFO "%lu pages dirty\n",
428 global_page_state(NR_FILE_DIRTY));
429 printk(KERN_INFO "%lu pages writeback\n",
430 global_page_state(NR_WRITEBACK));
431 printk(KERN_INFO "%lu pages mapped\n",
432 global_page_state(NR_FILE_MAPPED));
433 printk(KERN_INFO "%lu pages slab\n",
434 global_page_state(NR_SLAB_RECLAIMABLE) +
435 global_page_state(NR_SLAB_UNRECLAIMABLE));
436 printk(KERN_INFO "%lu pages pagetables\n",
437 global_page_state(NR_PAGETABLE));
438}
439
440void mmu_info(struct seq_file *m) 395void mmu_info(struct seq_file *m)
441{ 396{
442 if (tlb_type == cheetah) 397 if (tlb_type == cheetah)
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c
index e2274ef3155d..61d7e6138ff5 100644
--- a/arch/um/kernel/mem.c
+++ b/arch/um/kernel/mem.c
@@ -264,37 +264,6 @@ void free_initrd_mem(unsigned long start, unsigned long end)
264} 264}
265#endif 265#endif
266 266
267void show_mem(void)
268{
269 int pfn, total = 0, reserved = 0;
270 int shared = 0, cached = 0;
271 int high_mem = 0;
272 struct page *page;
273
274 printk(KERN_INFO "Mem-info:\n");
275 show_free_areas();
276 printk(KERN_INFO "Free swap: %6ldkB\n",
277 nr_swap_pages<<(PAGE_SHIFT-10));
278 pfn = max_mapnr;
279 while (pfn-- > 0) {
280 page = pfn_to_page(pfn);
281 total++;
282 if (PageHighMem(page))
283 high_mem++;
284 if (PageReserved(page))
285 reserved++;
286 else if (PageSwapCache(page))
287 cached++;
288 else if (page_count(page))
289 shared += page_count(page) - 1;
290 }
291 printk(KERN_INFO "%d pages of RAM\n", total);
292 printk(KERN_INFO "%d pages of HIGHMEM\n", high_mem);
293 printk(KERN_INFO "%d reserved pages\n", reserved);
294 printk(KERN_INFO "%d pages shared\n", shared);
295 printk(KERN_INFO "%d pages swap cached\n", cached);
296}
297
298/* Allocate and free page tables. */ 267/* Allocate and free page tables. */
299 268
300pgd_t *pgd_alloc(struct mm_struct *mm) 269pgd_t *pgd_alloc(struct mm_struct *mm)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index e3cba0b45600..b6fa2877b173 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -22,8 +22,9 @@ config X86
22 select HAVE_IDE 22 select HAVE_IDE
23 select HAVE_OPROFILE 23 select HAVE_OPROFILE
24 select HAVE_IOREMAP_PROT 24 select HAVE_IOREMAP_PROT
25 select HAVE_GET_USER_PAGES_FAST
25 select HAVE_KPROBES 26 select HAVE_KPROBES
26 select ARCH_WANT_OPTIONAL_GPIOLIB if !X86_RDC321X 27 select ARCH_WANT_OPTIONAL_GPIOLIB
27 select HAVE_KRETPROBES 28 select HAVE_KRETPROBES
28 select HAVE_DYNAMIC_FTRACE 29 select HAVE_DYNAMIC_FTRACE
29 select HAVE_FTRACE 30 select HAVE_FTRACE
@@ -332,20 +333,6 @@ config X86_BIGSMP
332 333
333endif 334endif
334 335
335config X86_RDC321X
336 bool "RDC R-321x SoC"
337 depends on X86_32
338 select M486
339 select X86_REBOOTFIXUPS
340 select GENERIC_GPIO
341 select LEDS_CLASS
342 select LEDS_GPIO
343 select NEW_LEDS
344 help
345 This option is needed for RDC R-321x system-on-chip, also known
346 as R-8610-(G).
347 If you don't have one of these chips, you should say N here.
348
349config X86_VSMP 336config X86_VSMP
350 bool "Support for ScaleMP vSMP" 337 bool "Support for ScaleMP vSMP"
351 select PARAVIRT 338 select PARAVIRT
@@ -369,6 +356,16 @@ config X86_VISWS
369 A kernel compiled for the Visual Workstation will run on general 356 A kernel compiled for the Visual Workstation will run on general
370 PCs as well. See <file:Documentation/sgi-visws.txt> for details. 357 PCs as well. See <file:Documentation/sgi-visws.txt> for details.
371 358
359config X86_RDC321X
360 bool "RDC R-321x SoC"
361 depends on X86_32
362 select M486
363 select X86_REBOOTFIXUPS
364 help
365 This option is needed for RDC R-321x system-on-chip, also known
366 as R-8610-(G).
367 If you don't have one of these chips, you should say N here.
368
372config SCHED_NO_NO_OMIT_FRAME_POINTER 369config SCHED_NO_NO_OMIT_FRAME_POINTER
373 def_bool y 370 def_bool y
374 prompt "Single-depth WCHAN output" 371 prompt "Single-depth WCHAN output"
@@ -1279,6 +1276,14 @@ config CRASH_DUMP
1279 (CONFIG_RELOCATABLE=y). 1276 (CONFIG_RELOCATABLE=y).
1280 For more details see Documentation/kdump/kdump.txt 1277 For more details see Documentation/kdump/kdump.txt
1281 1278
1279config KEXEC_JUMP
1280 bool "kexec jump (EXPERIMENTAL)"
1281 depends on EXPERIMENTAL
1282 depends on KEXEC && HIBERNATION && X86_32
1283 help
1284 Jump between original kernel and kexeced kernel and invoke
1285 code in physical address mode via KEXEC
1286
1282config PHYSICAL_START 1287config PHYSICAL_START
1283 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 1288 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
1284 default "0x1000000" if X86_NUMAQ 1289 default "0x1000000" if X86_NUMAQ
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 919ce21ea654..f5631da585b6 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -118,11 +118,6 @@ mflags-$(CONFIG_X86_GENERICARCH):= -Iinclude/asm-x86/mach-generic
118fcore-$(CONFIG_X86_GENERICARCH) += arch/x86/mach-generic/ 118fcore-$(CONFIG_X86_GENERICARCH) += arch/x86/mach-generic/
119mcore-$(CONFIG_X86_GENERICARCH) := arch/x86/mach-default/ 119mcore-$(CONFIG_X86_GENERICARCH) := arch/x86/mach-default/
120 120
121# RDC R-321x subarch support
122mflags-$(CONFIG_X86_RDC321X) := -Iinclude/asm-x86/mach-rdc321x
123mcore-$(CONFIG_X86_RDC321X) := arch/x86/mach-default/
124core-$(CONFIG_X86_RDC321X) += arch/x86/mach-rdc321x/
125
126# default subarch .h files 121# default subarch .h files
127mflags-y += -Iinclude/asm-x86/mach-default 122mflags-y += -Iinclude/asm-x86/mach-default
128 123
diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
index 58cccb6483b0..a0e1dbe67dc1 100644
--- a/arch/x86/ia32/ia32_aout.c
+++ b/arch/x86/ia32/ia32_aout.c
@@ -441,12 +441,6 @@ beyond_if:
441 regs->r8 = regs->r9 = regs->r10 = regs->r11 = 441 regs->r8 = regs->r9 = regs->r10 = regs->r11 =
442 regs->r12 = regs->r13 = regs->r14 = regs->r15 = 0; 442 regs->r12 = regs->r13 = regs->r14 = regs->r15 = 0;
443 set_fs(USER_DS); 443 set_fs(USER_DS);
444 if (unlikely(current->ptrace & PT_PTRACED)) {
445 if (current->ptrace & PT_TRACE_EXEC)
446 ptrace_notify((PTRACE_EVENT_EXEC << 8) | SIGTRAP);
447 else
448 send_sig(SIGTRAP, current, 0);
449 }
450 return 0; 444 return 0;
451} 445}
452 446
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index c25210e6ac88..74697408576f 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -667,7 +667,7 @@ static int get_device_resources(struct device *dev,
667 _bdf = calc_devid(pcidev->bus->number, pcidev->devfn); 667 _bdf = calc_devid(pcidev->bus->number, pcidev->devfn);
668 668
669 /* device not translated by any IOMMU in the system? */ 669 /* device not translated by any IOMMU in the system? */
670 if (_bdf >= amd_iommu_last_bdf) { 670 if (_bdf > amd_iommu_last_bdf) {
671 *iommu = NULL; 671 *iommu = NULL;
672 *domain = NULL; 672 *domain = NULL;
673 *bdf = 0xffff; 673 *bdf = 0xffff;
@@ -1085,7 +1085,7 @@ void prealloc_protection_domains(void)
1085 1085
1086 while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { 1086 while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
1087 devid = (dev->bus->number << 8) | dev->devfn; 1087 devid = (dev->bus->number << 8) | dev->devfn;
1088 if (devid >= amd_iommu_last_bdf) 1088 if (devid > amd_iommu_last_bdf)
1089 continue; 1089 continue;
1090 devid = amd_iommu_alias_table[devid]; 1090 devid = amd_iommu_alias_table[devid];
1091 if (domain_for_device(devid)) 1091 if (domain_for_device(devid))
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
index c9d8ff2eb130..d9a9da597e79 100644
--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -732,7 +732,7 @@ static int __init init_exclusion_range(struct ivmd_header *m)
732 set_device_exclusion_range(m->devid, m); 732 set_device_exclusion_range(m->devid, m);
733 break; 733 break;
734 case ACPI_IVMD_TYPE_ALL: 734 case ACPI_IVMD_TYPE_ALL:
735 for (i = 0; i < amd_iommu_last_bdf; ++i) 735 for (i = 0; i <= amd_iommu_last_bdf; ++i)
736 set_device_exclusion_range(i, m); 736 set_device_exclusion_range(i, m);
737 break; 737 break;
738 case ACPI_IVMD_TYPE_RANGE: 738 case ACPI_IVMD_TYPE_RANGE:
@@ -934,7 +934,7 @@ int __init amd_iommu_init(void)
934 /* 934 /*
935 * let all alias entries point to itself 935 * let all alias entries point to itself
936 */ 936 */
937 for (i = 0; i < amd_iommu_last_bdf; ++i) 937 for (i = 0; i <= amd_iommu_last_bdf; ++i)
938 amd_iommu_alias_table[i] = i; 938 amd_iommu_alias_table[i] = i;
939 939
940 /* 940 /*
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index f67e93441caf..a7010c3a377a 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -456,9 +456,6 @@ is386: movl $2,%ecx # set MP
4561: 4561:
457#endif /* CONFIG_SMP */ 457#endif /* CONFIG_SMP */
458 jmp *(initial_code) 458 jmp *(initial_code)
459.align 4
460ENTRY(initial_code)
461 .long i386_start_kernel
462 459
463/* 460/*
464 * We depend on ET to be correct. This checks for 287/387. 461 * We depend on ET to be correct. This checks for 287/387.
@@ -601,6 +598,11 @@ ignore_int:
601#endif 598#endif
602 iret 599 iret
603 600
601.section .cpuinit.data,"wa"
602.align 4
603ENTRY(initial_code)
604 .long i386_start_kernel
605
604.section .text 606.section .text
605/* 607/*
606 * Real beginning of normal "text" segment 608 * Real beginning of normal "text" segment
diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
index 8864230d55af..9fe478d98406 100644
--- a/arch/x86/kernel/machine_kexec_32.c
+++ b/arch/x86/kernel/machine_kexec_32.c
@@ -22,6 +22,7 @@
22#include <asm/cpufeature.h> 22#include <asm/cpufeature.h>
23#include <asm/desc.h> 23#include <asm/desc.h>
24#include <asm/system.h> 24#include <asm/system.h>
25#include <asm/cacheflush.h>
25 26
26#define PAGE_ALIGNED __attribute__ ((__aligned__(PAGE_SIZE))) 27#define PAGE_ALIGNED __attribute__ ((__aligned__(PAGE_SIZE)))
27static u32 kexec_pgd[1024] PAGE_ALIGNED; 28static u32 kexec_pgd[1024] PAGE_ALIGNED;
@@ -85,10 +86,12 @@ static void load_segments(void)
85 * reboot code buffer to allow us to avoid allocations 86 * reboot code buffer to allow us to avoid allocations
86 * later. 87 * later.
87 * 88 *
88 * Currently nothing. 89 * Make control page executable.
89 */ 90 */
90int machine_kexec_prepare(struct kimage *image) 91int machine_kexec_prepare(struct kimage *image)
91{ 92{
93 if (nx_enabled)
94 set_pages_x(image->control_code_page, 1);
92 return 0; 95 return 0;
93} 96}
94 97
@@ -98,27 +101,48 @@ int machine_kexec_prepare(struct kimage *image)
98 */ 101 */
99void machine_kexec_cleanup(struct kimage *image) 102void machine_kexec_cleanup(struct kimage *image)
100{ 103{
104 if (nx_enabled)
105 set_pages_nx(image->control_code_page, 1);
101} 106}
102 107
103/* 108/*
104 * Do not allocate memory (or fail in any way) in machine_kexec(). 109 * Do not allocate memory (or fail in any way) in machine_kexec().
105 * We are past the point of no return, committed to rebooting now. 110 * We are past the point of no return, committed to rebooting now.
106 */ 111 */
107NORET_TYPE void machine_kexec(struct kimage *image) 112void machine_kexec(struct kimage *image)
108{ 113{
109 unsigned long page_list[PAGES_NR]; 114 unsigned long page_list[PAGES_NR];
110 void *control_page; 115 void *control_page;
116 asmlinkage unsigned long
117 (*relocate_kernel_ptr)(unsigned long indirection_page,
118 unsigned long control_page,
119 unsigned long start_address,
120 unsigned int has_pae,
121 unsigned int preserve_context);
111 122
112 tracer_disable(); 123 tracer_disable();
113 124
114 /* Interrupts aren't acceptable while we reboot */ 125 /* Interrupts aren't acceptable while we reboot */
115 local_irq_disable(); 126 local_irq_disable();
116 127
128 if (image->preserve_context) {
129#ifdef CONFIG_X86_IO_APIC
130 /* We need to put APICs in legacy mode so that we can
131 * get timer interrupts in second kernel. kexec/kdump
132 * paths already have calls to disable_IO_APIC() in
133 * one form or other. kexec jump path also need
134 * one.
135 */
136 disable_IO_APIC();
137#endif
138 }
139
117 control_page = page_address(image->control_code_page); 140 control_page = page_address(image->control_code_page);
118 memcpy(control_page, relocate_kernel, PAGE_SIZE); 141 memcpy(control_page, relocate_kernel, PAGE_SIZE/2);
119 142
143 relocate_kernel_ptr = control_page;
120 page_list[PA_CONTROL_PAGE] = __pa(control_page); 144 page_list[PA_CONTROL_PAGE] = __pa(control_page);
121 page_list[VA_CONTROL_PAGE] = (unsigned long)relocate_kernel; 145 page_list[VA_CONTROL_PAGE] = (unsigned long)control_page;
122 page_list[PA_PGD] = __pa(kexec_pgd); 146 page_list[PA_PGD] = __pa(kexec_pgd);
123 page_list[VA_PGD] = (unsigned long)kexec_pgd; 147 page_list[VA_PGD] = (unsigned long)kexec_pgd;
124#ifdef CONFIG_X86_PAE 148#ifdef CONFIG_X86_PAE
@@ -131,6 +155,7 @@ NORET_TYPE void machine_kexec(struct kimage *image)
131 page_list[VA_PTE_0] = (unsigned long)kexec_pte0; 155 page_list[VA_PTE_0] = (unsigned long)kexec_pte0;
132 page_list[PA_PTE_1] = __pa(kexec_pte1); 156 page_list[PA_PTE_1] = __pa(kexec_pte1);
133 page_list[VA_PTE_1] = (unsigned long)kexec_pte1; 157 page_list[VA_PTE_1] = (unsigned long)kexec_pte1;
158 page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page) << PAGE_SHIFT);
134 159
135 /* The segment registers are funny things, they have both a 160 /* The segment registers are funny things, they have both a
136 * visible and an invisible part. Whenever the visible part is 161 * visible and an invisible part. Whenever the visible part is
@@ -149,8 +174,10 @@ NORET_TYPE void machine_kexec(struct kimage *image)
149 set_idt(phys_to_virt(0),0); 174 set_idt(phys_to_virt(0),0);
150 175
151 /* now call it */ 176 /* now call it */
152 relocate_kernel((unsigned long)image->head, (unsigned long)page_list, 177 image->start = relocate_kernel_ptr((unsigned long)image->head,
153 image->start, cpu_has_pae); 178 (unsigned long)page_list,
179 image->start, cpu_has_pae,
180 image->preserve_context);
154} 181}
155 182
156void arch_crash_save_vmcoreinfo(void) 183void arch_crash_save_vmcoreinfo(void)
diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
index 9dd9262693a3..c43caa3a91f3 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -181,7 +181,7 @@ void machine_kexec_cleanup(struct kimage *image)
181 * Do not allocate memory (or fail in any way) in machine_kexec(). 181 * Do not allocate memory (or fail in any way) in machine_kexec().
182 * We are past the point of no return, committed to rebooting now. 182 * We are past the point of no return, committed to rebooting now.
183 */ 183 */
184NORET_TYPE void machine_kexec(struct kimage *image) 184void machine_kexec(struct kimage *image)
185{ 185{
186 unsigned long page_list[PAGES_NR]; 186 unsigned long page_list[PAGES_NR];
187 void *control_page; 187 void *control_page;
diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
index 19e7fc7c2c4f..b67a4b1d4eae 100644
--- a/arch/x86/kernel/pci-calgary_64.c
+++ b/arch/x86/kernel/pci-calgary_64.c
@@ -37,6 +37,7 @@
37#include <linux/delay.h> 37#include <linux/delay.h>
38#include <linux/scatterlist.h> 38#include <linux/scatterlist.h>
39#include <linux/iommu-helper.h> 39#include <linux/iommu-helper.h>
40
40#include <asm/iommu.h> 41#include <asm/iommu.h>
41#include <asm/calgary.h> 42#include <asm/calgary.h>
42#include <asm/tce.h> 43#include <asm/tce.h>
@@ -413,22 +414,6 @@ static void calgary_unmap_sg(struct device *dev,
413 } 414 }
414} 415}
415 416
416static int calgary_nontranslate_map_sg(struct device* dev,
417 struct scatterlist *sg, int nelems, int direction)
418{
419 struct scatterlist *s;
420 int i;
421
422 for_each_sg(sg, s, nelems, i) {
423 struct page *p = sg_page(s);
424
425 BUG_ON(!p);
426 s->dma_address = virt_to_bus(sg_virt(s));
427 s->dma_length = s->length;
428 }
429 return nelems;
430}
431
432static int calgary_map_sg(struct device *dev, struct scatterlist *sg, 417static int calgary_map_sg(struct device *dev, struct scatterlist *sg,
433 int nelems, int direction) 418 int nelems, int direction)
434{ 419{
@@ -439,9 +424,6 @@ static int calgary_map_sg(struct device *dev, struct scatterlist *sg,
439 unsigned long entry; 424 unsigned long entry;
440 int i; 425 int i;
441 426
442 if (!translation_enabled(tbl))
443 return calgary_nontranslate_map_sg(dev, sg, nelems, direction);
444
445 for_each_sg(sg, s, nelems, i) { 427 for_each_sg(sg, s, nelems, i) {
446 BUG_ON(!sg_page(s)); 428 BUG_ON(!sg_page(s));
447 429
@@ -477,7 +459,6 @@ error:
477static dma_addr_t calgary_map_single(struct device *dev, phys_addr_t paddr, 459static dma_addr_t calgary_map_single(struct device *dev, phys_addr_t paddr,
478 size_t size, int direction) 460 size_t size, int direction)
479{ 461{
480 dma_addr_t dma_handle = bad_dma_address;
481 void *vaddr = phys_to_virt(paddr); 462 void *vaddr = phys_to_virt(paddr);
482 unsigned long uaddr; 463 unsigned long uaddr;
483 unsigned int npages; 464 unsigned int npages;
@@ -486,12 +467,7 @@ static dma_addr_t calgary_map_single(struct device *dev, phys_addr_t paddr,
486 uaddr = (unsigned long)vaddr; 467 uaddr = (unsigned long)vaddr;
487 npages = num_dma_pages(uaddr, size); 468 npages = num_dma_pages(uaddr, size);
488 469
489 if (translation_enabled(tbl)) 470 return iommu_alloc(dev, tbl, vaddr, npages, direction);
490 dma_handle = iommu_alloc(dev, tbl, vaddr, npages, direction);
491 else
492 dma_handle = virt_to_bus(vaddr);
493
494 return dma_handle;
495} 471}
496 472
497static void calgary_unmap_single(struct device *dev, dma_addr_t dma_handle, 473static void calgary_unmap_single(struct device *dev, dma_addr_t dma_handle,
@@ -500,9 +476,6 @@ static void calgary_unmap_single(struct device *dev, dma_addr_t dma_handle,
500 struct iommu_table *tbl = find_iommu_table(dev); 476 struct iommu_table *tbl = find_iommu_table(dev);
501 unsigned int npages; 477 unsigned int npages;
502 478
503 if (!translation_enabled(tbl))
504 return;
505
506 npages = num_dma_pages(dma_handle, size); 479 npages = num_dma_pages(dma_handle, size);
507 iommu_free(tbl, dma_handle, npages); 480 iommu_free(tbl, dma_handle, npages);
508} 481}
@@ -525,18 +498,12 @@ static void* calgary_alloc_coherent(struct device *dev, size_t size,
525 goto error; 498 goto error;
526 memset(ret, 0, size); 499 memset(ret, 0, size);
527 500
528 if (translation_enabled(tbl)) { 501 /* set up tces to cover the allocated range */
529 /* set up tces to cover the allocated range */ 502 mapping = iommu_alloc(dev, tbl, ret, npages, DMA_BIDIRECTIONAL);
530 mapping = iommu_alloc(dev, tbl, ret, npages, DMA_BIDIRECTIONAL); 503 if (mapping == bad_dma_address)
531 if (mapping == bad_dma_address) 504 goto free;
532 goto free; 505 *dma_handle = mapping;
533
534 *dma_handle = mapping;
535 } else /* non translated slot */
536 *dma_handle = virt_to_bus(ret);
537
538 return ret; 506 return ret;
539
540free: 507free:
541 free_pages((unsigned long)ret, get_order(size)); 508 free_pages((unsigned long)ret, get_order(size));
542 ret = NULL; 509 ret = NULL;
@@ -544,7 +511,7 @@ error:
544 return ret; 511 return ret;
545} 512}
546 513
547static const struct dma_mapping_ops calgary_dma_ops = { 514static struct dma_mapping_ops calgary_dma_ops = {
548 .alloc_coherent = calgary_alloc_coherent, 515 .alloc_coherent = calgary_alloc_coherent,
549 .map_single = calgary_map_single, 516 .map_single = calgary_map_single,
550 .unmap_single = calgary_unmap_single, 517 .unmap_single = calgary_unmap_single,
@@ -1241,6 +1208,16 @@ static int __init calgary_init(void)
1241 goto error; 1208 goto error;
1242 } while (1); 1209 } while (1);
1243 1210
1211 dev = NULL;
1212 for_each_pci_dev(dev) {
1213 struct iommu_table *tbl;
1214
1215 tbl = find_iommu_table(&dev->dev);
1216
1217 if (translation_enabled(tbl))
1218 dev->dev.archdata.dma_ops = &calgary_dma_ops;
1219 }
1220
1244 return ret; 1221 return ret;
1245 1222
1246error: 1223error:
@@ -1262,6 +1239,7 @@ error:
1262 calgary_disable_translation(dev); 1239 calgary_disable_translation(dev);
1263 calgary_free_bus(dev); 1240 calgary_free_bus(dev);
1264 pci_dev_put(dev); /* Undo calgary_init_one()'s pci_dev_get() */ 1241 pci_dev_put(dev); /* Undo calgary_init_one()'s pci_dev_get() */
1242 dev->dev.archdata.dma_ops = NULL;
1265 } while (1); 1243 } while (1);
1266 1244
1267 return ret; 1245 return ret;
@@ -1503,6 +1481,10 @@ void __init detect_calgary(void)
1503 printk(KERN_INFO "PCI-DMA: Calgary TCE table spec is %d, " 1481 printk(KERN_INFO "PCI-DMA: Calgary TCE table spec is %d, "
1504 "CONFIG_IOMMU_DEBUG is %s.\n", specified_table_size, 1482 "CONFIG_IOMMU_DEBUG is %s.\n", specified_table_size,
1505 debugging ? "enabled" : "disabled"); 1483 debugging ? "enabled" : "disabled");
1484
1485 /* swiotlb for devices that aren't behind the Calgary. */
1486 if (max_pfn > MAX_DMA32_PFN)
1487 swiotlb = 1;
1506 } 1488 }
1507 return; 1489 return;
1508 1490
@@ -1519,7 +1501,7 @@ int __init calgary_iommu_init(void)
1519{ 1501{
1520 int ret; 1502 int ret;
1521 1503
1522 if (no_iommu || swiotlb) 1504 if (no_iommu || (swiotlb && !calgary_detected))
1523 return -ENODEV; 1505 return -ENODEV;
1524 1506
1525 if (!calgary_detected) 1507 if (!calgary_detected)
@@ -1532,15 +1514,14 @@ int __init calgary_iommu_init(void)
1532 if (ret) { 1514 if (ret) {
1533 printk(KERN_ERR "PCI-DMA: Calgary init failed %d, " 1515 printk(KERN_ERR "PCI-DMA: Calgary init failed %d, "
1534 "falling back to no_iommu\n", ret); 1516 "falling back to no_iommu\n", ret);
1535 if (max_pfn > MAX_DMA32_PFN)
1536 printk(KERN_ERR "WARNING more than 4GB of memory, "
1537 "32bit PCI may malfunction.\n");
1538 return ret; 1517 return ret;
1539 } 1518 }
1540 1519
1541 force_iommu = 1; 1520 force_iommu = 1;
1542 bad_dma_address = 0x0; 1521 bad_dma_address = 0x0;
1543 dma_ops = &calgary_dma_ops; 1522 /* dma_ops is set to swiotlb or nommu */
1523 if (!dma_ops)
1524 dma_ops = &nommu_dma_ops;
1544 1525
1545 return 0; 1526 return 0;
1546} 1527}
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index cbecb05551bb..37544123896d 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -11,7 +11,7 @@
11 11
12static int forbid_dac __read_mostly; 12static int forbid_dac __read_mostly;
13 13
14const struct dma_mapping_ops *dma_ops; 14struct dma_mapping_ops *dma_ops;
15EXPORT_SYMBOL(dma_ops); 15EXPORT_SYMBOL(dma_ops);
16 16
17static int iommu_sac_force __read_mostly; 17static int iommu_sac_force __read_mostly;
@@ -312,6 +312,8 @@ static int dma_release_coherent(struct device *dev, int order, void *vaddr)
312 312
313int dma_supported(struct device *dev, u64 mask) 313int dma_supported(struct device *dev, u64 mask)
314{ 314{
315 struct dma_mapping_ops *ops = get_dma_ops(dev);
316
315#ifdef CONFIG_PCI 317#ifdef CONFIG_PCI
316 if (mask > 0xffffffff && forbid_dac > 0) { 318 if (mask > 0xffffffff && forbid_dac > 0) {
317 dev_info(dev, "PCI: Disallowing DAC for device\n"); 319 dev_info(dev, "PCI: Disallowing DAC for device\n");
@@ -319,8 +321,8 @@ int dma_supported(struct device *dev, u64 mask)
319 } 321 }
320#endif 322#endif
321 323
322 if (dma_ops->dma_supported) 324 if (ops->dma_supported)
323 return dma_ops->dma_supported(dev, mask); 325 return ops->dma_supported(dev, mask);
324 326
325 /* Copied from i386. Doesn't make much sense, because it will 327 /* Copied from i386. Doesn't make much sense, because it will
326 only work for pci_alloc_coherent. 328 only work for pci_alloc_coherent.
@@ -367,6 +369,7 @@ void *
367dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, 369dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
368 gfp_t gfp) 370 gfp_t gfp)
369{ 371{
372 struct dma_mapping_ops *ops = get_dma_ops(dev);
370 void *memory = NULL; 373 void *memory = NULL;
371 struct page *page; 374 struct page *page;
372 unsigned long dma_mask = 0; 375 unsigned long dma_mask = 0;
@@ -435,8 +438,8 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
435 /* Let low level make its own zone decisions */ 438 /* Let low level make its own zone decisions */
436 gfp &= ~(GFP_DMA32|GFP_DMA); 439 gfp &= ~(GFP_DMA32|GFP_DMA);
437 440
438 if (dma_ops->alloc_coherent) 441 if (ops->alloc_coherent)
439 return dma_ops->alloc_coherent(dev, size, 442 return ops->alloc_coherent(dev, size,
440 dma_handle, gfp); 443 dma_handle, gfp);
441 return NULL; 444 return NULL;
442 } 445 }
@@ -448,14 +451,14 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
448 } 451 }
449 } 452 }
450 453
451 if (dma_ops->alloc_coherent) { 454 if (ops->alloc_coherent) {
452 free_pages((unsigned long)memory, get_order(size)); 455 free_pages((unsigned long)memory, get_order(size));
453 gfp &= ~(GFP_DMA|GFP_DMA32); 456 gfp &= ~(GFP_DMA|GFP_DMA32);
454 return dma_ops->alloc_coherent(dev, size, dma_handle, gfp); 457 return ops->alloc_coherent(dev, size, dma_handle, gfp);
455 } 458 }
456 459
457 if (dma_ops->map_simple) { 460 if (ops->map_simple) {
458 *dma_handle = dma_ops->map_simple(dev, virt_to_phys(memory), 461 *dma_handle = ops->map_simple(dev, virt_to_phys(memory),
459 size, 462 size,
460 PCI_DMA_BIDIRECTIONAL); 463 PCI_DMA_BIDIRECTIONAL);
461 if (*dma_handle != bad_dma_address) 464 if (*dma_handle != bad_dma_address)
@@ -477,12 +480,14 @@ EXPORT_SYMBOL(dma_alloc_coherent);
477void dma_free_coherent(struct device *dev, size_t size, 480void dma_free_coherent(struct device *dev, size_t size,
478 void *vaddr, dma_addr_t bus) 481 void *vaddr, dma_addr_t bus)
479{ 482{
483 struct dma_mapping_ops *ops = get_dma_ops(dev);
484
480 int order = get_order(size); 485 int order = get_order(size);
481 WARN_ON(irqs_disabled()); /* for portability */ 486 WARN_ON(irqs_disabled()); /* for portability */
482 if (dma_release_coherent(dev, order, vaddr)) 487 if (dma_release_coherent(dev, order, vaddr))
483 return; 488 return;
484 if (dma_ops->unmap_single) 489 if (ops->unmap_single)
485 dma_ops->unmap_single(dev, bus, size, 0); 490 ops->unmap_single(dev, bus, size, 0);
486 free_pages((unsigned long)vaddr, order); 491 free_pages((unsigned long)vaddr, order);
487} 492}
488EXPORT_SYMBOL(dma_free_coherent); 493EXPORT_SYMBOL(dma_free_coherent);
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c
index df5f142657d2..744126e64950 100644
--- a/arch/x86/kernel/pci-gart_64.c
+++ b/arch/x86/kernel/pci-gart_64.c
@@ -692,8 +692,7 @@ static __init int init_k8_gatt(struct agp_kern_info *info)
692 692
693extern int agp_amd64_init(void); 693extern int agp_amd64_init(void);
694 694
695static const struct dma_mapping_ops gart_dma_ops = { 695static struct dma_mapping_ops gart_dma_ops = {
696 .mapping_error = NULL,
697 .map_single = gart_map_single, 696 .map_single = gart_map_single,
698 .map_simple = gart_map_simple, 697 .map_simple = gart_map_simple,
699 .unmap_single = gart_unmap_single, 698 .unmap_single = gart_unmap_single,
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
index 792b9179eff3..3f91f71cdc3e 100644
--- a/arch/x86/kernel/pci-nommu.c
+++ b/arch/x86/kernel/pci-nommu.c
@@ -72,21 +72,9 @@ static int nommu_map_sg(struct device *hwdev, struct scatterlist *sg,
72 return nents; 72 return nents;
73} 73}
74 74
75/* Make sure we keep the same behaviour */ 75struct dma_mapping_ops nommu_dma_ops = {
76static int nommu_mapping_error(dma_addr_t dma_addr)
77{
78#ifdef CONFIG_X86_32
79 return 0;
80#else
81 return (dma_addr == bad_dma_address);
82#endif
83}
84
85
86const struct dma_mapping_ops nommu_dma_ops = {
87 .map_single = nommu_map_single, 76 .map_single = nommu_map_single,
88 .map_sg = nommu_map_sg, 77 .map_sg = nommu_map_sg,
89 .mapping_error = nommu_mapping_error,
90 .is_phys = 1, 78 .is_phys = 1,
91}; 79};
92 80
diff --git a/arch/x86/kernel/pci-swiotlb_64.c b/arch/x86/kernel/pci-swiotlb_64.c
index 20df839b9c20..c4ce0332759e 100644
--- a/arch/x86/kernel/pci-swiotlb_64.c
+++ b/arch/x86/kernel/pci-swiotlb_64.c
@@ -18,7 +18,7 @@ swiotlb_map_single_phys(struct device *hwdev, phys_addr_t paddr, size_t size,
18 return swiotlb_map_single(hwdev, phys_to_virt(paddr), size, direction); 18 return swiotlb_map_single(hwdev, phys_to_virt(paddr), size, direction);
19} 19}
20 20
21const struct dma_mapping_ops swiotlb_dma_ops = { 21struct dma_mapping_ops swiotlb_dma_ops = {
22 .mapping_error = swiotlb_dma_mapping_error, 22 .mapping_error = swiotlb_dma_mapping_error,
23 .alloc_coherent = swiotlb_alloc_coherent, 23 .alloc_coherent = swiotlb_alloc_coherent,
24 .free_coherent = swiotlb_free_coherent, 24 .free_coherent = swiotlb_free_coherent,
diff --git a/arch/x86/kernel/relocate_kernel_32.S b/arch/x86/kernel/relocate_kernel_32.S
index c30fe25d470d..703310a99023 100644
--- a/arch/x86/kernel/relocate_kernel_32.S
+++ b/arch/x86/kernel/relocate_kernel_32.S
@@ -20,11 +20,44 @@
20#define PAGE_ATTR (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY) 20#define PAGE_ATTR (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY)
21#define PAE_PGD_ATTR (_PAGE_PRESENT) 21#define PAE_PGD_ATTR (_PAGE_PRESENT)
22 22
23/* control_page + PAGE_SIZE/2 ~ control_page + PAGE_SIZE * 3/4 are
24 * used to save some data for jumping back
25 */
26#define DATA(offset) (PAGE_SIZE/2+(offset))
27
28/* Minimal CPU state */
29#define ESP DATA(0x0)
30#define CR0 DATA(0x4)
31#define CR3 DATA(0x8)
32#define CR4 DATA(0xc)
33
34/* other data */
35#define CP_VA_CONTROL_PAGE DATA(0x10)
36#define CP_PA_PGD DATA(0x14)
37#define CP_PA_SWAP_PAGE DATA(0x18)
38#define CP_PA_BACKUP_PAGES_MAP DATA(0x1c)
39
23 .text 40 .text
24 .align PAGE_SIZE 41 .align PAGE_SIZE
25 .globl relocate_kernel 42 .globl relocate_kernel
26relocate_kernel: 43relocate_kernel:
27 movl 8(%esp), %ebp /* list of pages */ 44 /* Save the CPU context, used for jumping back */
45
46 pushl %ebx
47 pushl %esi
48 pushl %edi
49 pushl %ebp
50 pushf
51
52 movl 20+8(%esp), %ebp /* list of pages */
53 movl PTR(VA_CONTROL_PAGE)(%ebp), %edi
54 movl %esp, ESP(%edi)
55 movl %cr0, %eax
56 movl %eax, CR0(%edi)
57 movl %cr3, %eax
58 movl %eax, CR3(%edi)
59 movl %cr4, %eax
60 movl %eax, CR4(%edi)
28 61
29#ifdef CONFIG_X86_PAE 62#ifdef CONFIG_X86_PAE
30 /* map the control page at its virtual address */ 63 /* map the control page at its virtual address */
@@ -138,15 +171,25 @@ relocate_kernel:
138 171
139relocate_new_kernel: 172relocate_new_kernel:
140 /* read the arguments and say goodbye to the stack */ 173 /* read the arguments and say goodbye to the stack */
141 movl 4(%esp), %ebx /* page_list */ 174 movl 20+4(%esp), %ebx /* page_list */
142 movl 8(%esp), %ebp /* list of pages */ 175 movl 20+8(%esp), %ebp /* list of pages */
143 movl 12(%esp), %edx /* start address */ 176 movl 20+12(%esp), %edx /* start address */
144 movl 16(%esp), %ecx /* cpu_has_pae */ 177 movl 20+16(%esp), %ecx /* cpu_has_pae */
178 movl 20+20(%esp), %esi /* preserve_context */
145 179
146 /* zero out flags, and disable interrupts */ 180 /* zero out flags, and disable interrupts */
147 pushl $0 181 pushl $0
148 popfl 182 popfl
149 183
184 /* save some information for jumping back */
185 movl PTR(VA_CONTROL_PAGE)(%ebp), %edi
186 movl %edi, CP_VA_CONTROL_PAGE(%edi)
187 movl PTR(PA_PGD)(%ebp), %eax
188 movl %eax, CP_PA_PGD(%edi)
189 movl PTR(PA_SWAP_PAGE)(%ebp), %eax
190 movl %eax, CP_PA_SWAP_PAGE(%edi)
191 movl %ebx, CP_PA_BACKUP_PAGES_MAP(%edi)
192
150 /* get physical address of control page now */ 193 /* get physical address of control page now */
151 /* this is impossible after page table switch */ 194 /* this is impossible after page table switch */
152 movl PTR(PA_CONTROL_PAGE)(%ebp), %edi 195 movl PTR(PA_CONTROL_PAGE)(%ebp), %edi
@@ -197,8 +240,90 @@ identity_mapped:
197 xorl %eax, %eax 240 xorl %eax, %eax
198 movl %eax, %cr3 241 movl %eax, %cr3
199 242
243 movl CP_PA_SWAP_PAGE(%edi), %eax
244 pushl %eax
245 pushl %ebx
246 call swap_pages
247 addl $8, %esp
248
249 /* To be certain of avoiding problems with self-modifying code
250 * I need to execute a serializing instruction here.
251 * So I flush the TLB, it's handy, and not processor dependent.
252 */
253 xorl %eax, %eax
254 movl %eax, %cr3
255
256 /* set all of the registers to known values */
257 /* leave %esp alone */
258
259 testl %esi, %esi
260 jnz 1f
261 xorl %edi, %edi
262 xorl %eax, %eax
263 xorl %ebx, %ebx
264 xorl %ecx, %ecx
265 xorl %edx, %edx
266 xorl %esi, %esi
267 xorl %ebp, %ebp
268 ret
2691:
270 popl %edx
271 movl CP_PA_SWAP_PAGE(%edi), %esp
272 addl $PAGE_SIZE, %esp
2732:
274 call *%edx
275
276 /* get the re-entry point of the peer system */
277 movl 0(%esp), %ebp
278 call 1f
2791:
280 popl %ebx
281 subl $(1b - relocate_kernel), %ebx
282 movl CP_VA_CONTROL_PAGE(%ebx), %edi
283 lea PAGE_SIZE(%ebx), %esp
284 movl CP_PA_SWAP_PAGE(%ebx), %eax
285 movl CP_PA_BACKUP_PAGES_MAP(%ebx), %edx
286 pushl %eax
287 pushl %edx
288 call swap_pages
289 addl $8, %esp
290 movl CP_PA_PGD(%ebx), %eax
291 movl %eax, %cr3
292 movl %cr0, %eax
293 orl $(1<<31), %eax
294 movl %eax, %cr0
295 lea PAGE_SIZE(%edi), %esp
296 movl %edi, %eax
297 addl $(virtual_mapped - relocate_kernel), %eax
298 pushl %eax
299 ret
300
301virtual_mapped:
302 movl CR4(%edi), %eax
303 movl %eax, %cr4
304 movl CR3(%edi), %eax
305 movl %eax, %cr3
306 movl CR0(%edi), %eax
307 movl %eax, %cr0
308 movl ESP(%edi), %esp
309 movl %ebp, %eax
310
311 popf
312 popl %ebp
313 popl %edi
314 popl %esi
315 popl %ebx
316 ret
317
200 /* Do the copies */ 318 /* Do the copies */
201 movl %ebx, %ecx 319swap_pages:
320 movl 8(%esp), %edx
321 movl 4(%esp), %ecx
322 pushl %ebp
323 pushl %ebx
324 pushl %edi
325 pushl %esi
326 movl %ecx, %ebx
202 jmp 1f 327 jmp 1f
203 328
2040: /* top, read another word from the indirection page */ 3290: /* top, read another word from the indirection page */
@@ -226,27 +351,28 @@ identity_mapped:
226 movl %ecx, %esi /* For every source page do a copy */ 351 movl %ecx, %esi /* For every source page do a copy */
227 andl $0xfffff000, %esi 352 andl $0xfffff000, %esi
228 353
354 movl %edi, %eax
355 movl %esi, %ebp
356
357 movl %edx, %edi
229 movl $1024, %ecx 358 movl $1024, %ecx
230 rep ; movsl 359 rep ; movsl
231 jmp 0b
232 360
2333: 361 movl %ebp, %edi
234 362 movl %eax, %esi
235 /* To be certain of avoiding problems with self-modifying code 363 movl $1024, %ecx
236 * I need to execute a serializing instruction here. 364 rep ; movsl
237 * So I flush the TLB, it's handy, and not processor dependent.
238 */
239 xorl %eax, %eax
240 movl %eax, %cr3
241 365
242 /* set all of the registers to known values */ 366 movl %eax, %edi
243 /* leave %esp alone */ 367 movl %edx, %esi
368 movl $1024, %ecx
369 rep ; movsl
244 370
245 xorl %eax, %eax 371 lea PAGE_SIZE(%ebp), %esi
246 xorl %ebx, %ebx 372 jmp 0b
247 xorl %ecx, %ecx 3733:
248 xorl %edx, %edx 374 popl %esi
249 xorl %esi, %esi 375 popl %edi
250 xorl %edi, %edi 376 popl %ebx
251 xorl %ebp, %ebp 377 popl %ebp
252 ret 378 ret
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index b0e4ddca6c18..2fa231923cf7 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1814,6 +1814,7 @@ int kvm_mmu_unprotect_page_virt(struct kvm_vcpu *vcpu, gva_t gva)
1814 spin_unlock(&vcpu->kvm->mmu_lock); 1814 spin_unlock(&vcpu->kvm->mmu_lock);
1815 return r; 1815 return r;
1816} 1816}
1817EXPORT_SYMBOL_GPL(kvm_mmu_unprotect_page_virt);
1817 1818
1818void __kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu) 1819void __kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu)
1819{ 1820{
@@ -1870,6 +1871,12 @@ void kvm_enable_tdp(void)
1870} 1871}
1871EXPORT_SYMBOL_GPL(kvm_enable_tdp); 1872EXPORT_SYMBOL_GPL(kvm_enable_tdp);
1872 1873
1874void kvm_disable_tdp(void)
1875{
1876 tdp_enabled = false;
1877}
1878EXPORT_SYMBOL_GPL(kvm_disable_tdp);
1879
1873static void free_mmu_pages(struct kvm_vcpu *vcpu) 1880static void free_mmu_pages(struct kvm_vcpu *vcpu)
1874{ 1881{
1875 struct kvm_mmu_page *sp; 1882 struct kvm_mmu_page *sp;
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index b756e876dce3..e2ee264740c7 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -453,7 +453,8 @@ static __init int svm_hardware_setup(void)
453 if (npt_enabled) { 453 if (npt_enabled) {
454 printk(KERN_INFO "kvm: Nested Paging enabled\n"); 454 printk(KERN_INFO "kvm: Nested Paging enabled\n");
455 kvm_enable_tdp(); 455 kvm_enable_tdp();
456 } 456 } else
457 kvm_disable_tdp();
457 458
458 return 0; 459 return 0;
459 460
@@ -1007,10 +1008,13 @@ static int pf_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run)
1007 struct kvm *kvm = svm->vcpu.kvm; 1008 struct kvm *kvm = svm->vcpu.kvm;
1008 u64 fault_address; 1009 u64 fault_address;
1009 u32 error_code; 1010 u32 error_code;
1011 bool event_injection = false;
1010 1012
1011 if (!irqchip_in_kernel(kvm) && 1013 if (!irqchip_in_kernel(kvm) &&
1012 is_external_interrupt(exit_int_info)) 1014 is_external_interrupt(exit_int_info)) {
1015 event_injection = true;
1013 push_irq(&svm->vcpu, exit_int_info & SVM_EVTINJ_VEC_MASK); 1016 push_irq(&svm->vcpu, exit_int_info & SVM_EVTINJ_VEC_MASK);
1017 }
1014 1018
1015 fault_address = svm->vmcb->control.exit_info_2; 1019 fault_address = svm->vmcb->control.exit_info_2;
1016 error_code = svm->vmcb->control.exit_info_1; 1020 error_code = svm->vmcb->control.exit_info_1;
@@ -1024,6 +1028,8 @@ static int pf_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run)
1024 (u32)fault_address, (u32)(fault_address >> 32), 1028 (u32)fault_address, (u32)(fault_address >> 32),
1025 handler); 1029 handler);
1026 1030
1031 if (event_injection)
1032 kvm_mmu_unprotect_page_virt(&svm->vcpu, fault_address);
1027 return kvm_mmu_page_fault(&svm->vcpu, fault_address, error_code); 1033 return kvm_mmu_page_fault(&svm->vcpu, fault_address, error_code);
1028} 1034}
1029 1035
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 0cac63701719..2a69773e3b26 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -2298,6 +2298,8 @@ static int handle_exception(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
2298 cr2 = vmcs_readl(EXIT_QUALIFICATION); 2298 cr2 = vmcs_readl(EXIT_QUALIFICATION);
2299 KVMTRACE_3D(PAGE_FAULT, vcpu, error_code, (u32)cr2, 2299 KVMTRACE_3D(PAGE_FAULT, vcpu, error_code, (u32)cr2,
2300 (u32)((u64)cr2 >> 32), handler); 2300 (u32)((u64)cr2 >> 32), handler);
2301 if (vect_info & VECTORING_INFO_VALID_MASK)
2302 kvm_mmu_unprotect_page_virt(vcpu, cr2);
2301 return kvm_mmu_page_fault(vcpu, cr2, error_code); 2303 return kvm_mmu_page_fault(vcpu, cr2, error_code);
2302 } 2304 }
2303 2305
@@ -3116,15 +3118,6 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id)
3116 return ERR_PTR(-ENOMEM); 3118 return ERR_PTR(-ENOMEM);
3117 3119
3118 allocate_vpid(vmx); 3120 allocate_vpid(vmx);
3119 if (id == 0 && vm_need_ept()) {
3120 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
3121 VMX_EPT_WRITABLE_MASK |
3122 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT);
3123 kvm_mmu_set_mask_ptes(0ull, VMX_EPT_FAKE_ACCESSED_MASK,
3124 VMX_EPT_FAKE_DIRTY_MASK, 0ull,
3125 VMX_EPT_EXECUTABLE_MASK);
3126 kvm_enable_tdp();
3127 }
3128 3121
3129 err = kvm_vcpu_init(&vmx->vcpu, kvm, id); 3122 err = kvm_vcpu_init(&vmx->vcpu, kvm, id);
3130 if (err) 3123 if (err)
@@ -3303,8 +3296,17 @@ static int __init vmx_init(void)
3303 vmx_disable_intercept_for_msr(vmx_msr_bitmap, MSR_IA32_SYSENTER_ESP); 3296 vmx_disable_intercept_for_msr(vmx_msr_bitmap, MSR_IA32_SYSENTER_ESP);
3304 vmx_disable_intercept_for_msr(vmx_msr_bitmap, MSR_IA32_SYSENTER_EIP); 3297 vmx_disable_intercept_for_msr(vmx_msr_bitmap, MSR_IA32_SYSENTER_EIP);
3305 3298
3306 if (cpu_has_vmx_ept()) 3299 if (vm_need_ept()) {
3307 bypass_guest_pf = 0; 3300 bypass_guest_pf = 0;
3301 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
3302 VMX_EPT_WRITABLE_MASK |
3303 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT);
3304 kvm_mmu_set_mask_ptes(0ull, VMX_EPT_FAKE_ACCESSED_MASK,
3305 VMX_EPT_FAKE_DIRTY_MASK, 0ull,
3306 VMX_EPT_EXECUTABLE_MASK);
3307 kvm_enable_tdp();
3308 } else
3309 kvm_disable_tdp();
3308 3310
3309 if (bypass_guest_pf) 3311 if (bypass_guest_pf)
3310 kvm_mmu_set_nonpresent_ptes(~0xffeull, 0ull); 3312 kvm_mmu_set_nonpresent_ptes(~0xffeull, 0ull);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 9f1cdb011cff..5916191420c7 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3184,6 +3184,10 @@ static void seg_desct_to_kvm_desct(struct desc_struct *seg_desc, u16 selector,
3184 kvm_desct->base |= seg_desc->base2 << 24; 3184 kvm_desct->base |= seg_desc->base2 << 24;
3185 kvm_desct->limit = seg_desc->limit0; 3185 kvm_desct->limit = seg_desc->limit0;
3186 kvm_desct->limit |= seg_desc->limit << 16; 3186 kvm_desct->limit |= seg_desc->limit << 16;
3187 if (seg_desc->g) {
3188 kvm_desct->limit <<= 12;
3189 kvm_desct->limit |= 0xfff;
3190 }
3187 kvm_desct->selector = selector; 3191 kvm_desct->selector = selector;
3188 kvm_desct->type = seg_desc->type; 3192 kvm_desct->type = seg_desc->type;
3189 kvm_desct->present = seg_desc->p; 3193 kvm_desct->present = seg_desc->p;
@@ -3223,6 +3227,7 @@ static void get_segment_descritptor_dtable(struct kvm_vcpu *vcpu,
3223static int load_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector, 3227static int load_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector,
3224 struct desc_struct *seg_desc) 3228 struct desc_struct *seg_desc)
3225{ 3229{
3230 gpa_t gpa;
3226 struct descriptor_table dtable; 3231 struct descriptor_table dtable;
3227 u16 index = selector >> 3; 3232 u16 index = selector >> 3;
3228 3233
@@ -3232,13 +3237,16 @@ static int load_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector,
3232 kvm_queue_exception_e(vcpu, GP_VECTOR, selector & 0xfffc); 3237 kvm_queue_exception_e(vcpu, GP_VECTOR, selector & 0xfffc);
3233 return 1; 3238 return 1;
3234 } 3239 }
3235 return kvm_read_guest(vcpu->kvm, dtable.base + index * 8, seg_desc, 8); 3240 gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, dtable.base);
3241 gpa += index * 8;
3242 return kvm_read_guest(vcpu->kvm, gpa, seg_desc, 8);
3236} 3243}
3237 3244
3238/* allowed just for 8 bytes segments */ 3245/* allowed just for 8 bytes segments */
3239static int save_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector, 3246static int save_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector,
3240 struct desc_struct *seg_desc) 3247 struct desc_struct *seg_desc)
3241{ 3248{
3249 gpa_t gpa;
3242 struct descriptor_table dtable; 3250 struct descriptor_table dtable;
3243 u16 index = selector >> 3; 3251 u16 index = selector >> 3;
3244 3252
@@ -3246,7 +3254,9 @@ static int save_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector,
3246 3254
3247 if (dtable.limit < index * 8 + 7) 3255 if (dtable.limit < index * 8 + 7)
3248 return 1; 3256 return 1;
3249 return kvm_write_guest(vcpu->kvm, dtable.base + index * 8, seg_desc, 8); 3257 gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, dtable.base);
3258 gpa += index * 8;
3259 return kvm_write_guest(vcpu->kvm, gpa, seg_desc, 8);
3250} 3260}
3251 3261
3252static u32 get_tss_base_addr(struct kvm_vcpu *vcpu, 3262static u32 get_tss_base_addr(struct kvm_vcpu *vcpu,
@@ -3258,55 +3268,7 @@ static u32 get_tss_base_addr(struct kvm_vcpu *vcpu,
3258 base_addr |= (seg_desc->base1 << 16); 3268 base_addr |= (seg_desc->base1 << 16);
3259 base_addr |= (seg_desc->base2 << 24); 3269 base_addr |= (seg_desc->base2 << 24);
3260 3270
3261 return base_addr; 3271 return vcpu->arch.mmu.gva_to_gpa(vcpu, base_addr);
3262}
3263
3264static int load_tss_segment32(struct kvm_vcpu *vcpu,
3265 struct desc_struct *seg_desc,
3266 struct tss_segment_32 *tss)
3267{
3268 u32 base_addr;
3269
3270 base_addr = get_tss_base_addr(vcpu, seg_desc);
3271
3272 return kvm_read_guest(vcpu->kvm, base_addr, tss,
3273 sizeof(struct tss_segment_32));
3274}
3275
3276static int save_tss_segment32(struct kvm_vcpu *vcpu,
3277 struct desc_struct *seg_desc,
3278 struct tss_segment_32 *tss)
3279{
3280 u32 base_addr;
3281
3282 base_addr = get_tss_base_addr(vcpu, seg_desc);
3283
3284 return kvm_write_guest(vcpu->kvm, base_addr, tss,
3285 sizeof(struct tss_segment_32));
3286}
3287
3288static int load_tss_segment16(struct kvm_vcpu *vcpu,
3289 struct desc_struct *seg_desc,
3290 struct tss_segment_16 *tss)
3291{
3292 u32 base_addr;
3293
3294 base_addr = get_tss_base_addr(vcpu, seg_desc);
3295
3296 return kvm_read_guest(vcpu->kvm, base_addr, tss,
3297 sizeof(struct tss_segment_16));
3298}
3299
3300static int save_tss_segment16(struct kvm_vcpu *vcpu,
3301 struct desc_struct *seg_desc,
3302 struct tss_segment_16 *tss)
3303{
3304 u32 base_addr;
3305
3306 base_addr = get_tss_base_addr(vcpu, seg_desc);
3307
3308 return kvm_write_guest(vcpu->kvm, base_addr, tss,
3309 sizeof(struct tss_segment_16));
3310} 3272}
3311 3273
3312static u16 get_segment_selector(struct kvm_vcpu *vcpu, int seg) 3274static u16 get_segment_selector(struct kvm_vcpu *vcpu, int seg)
@@ -3466,20 +3428,26 @@ static int load_state_from_tss16(struct kvm_vcpu *vcpu,
3466} 3428}
3467 3429
3468static int kvm_task_switch_16(struct kvm_vcpu *vcpu, u16 tss_selector, 3430static int kvm_task_switch_16(struct kvm_vcpu *vcpu, u16 tss_selector,
3469 struct desc_struct *cseg_desc, 3431 u32 old_tss_base,
3470 struct desc_struct *nseg_desc) 3432 struct desc_struct *nseg_desc)
3471{ 3433{
3472 struct tss_segment_16 tss_segment_16; 3434 struct tss_segment_16 tss_segment_16;
3473 int ret = 0; 3435 int ret = 0;
3474 3436
3475 if (load_tss_segment16(vcpu, cseg_desc, &tss_segment_16)) 3437 if (kvm_read_guest(vcpu->kvm, old_tss_base, &tss_segment_16,
3438 sizeof tss_segment_16))
3476 goto out; 3439 goto out;
3477 3440
3478 save_state_to_tss16(vcpu, &tss_segment_16); 3441 save_state_to_tss16(vcpu, &tss_segment_16);
3479 save_tss_segment16(vcpu, cseg_desc, &tss_segment_16);
3480 3442
3481 if (load_tss_segment16(vcpu, nseg_desc, &tss_segment_16)) 3443 if (kvm_write_guest(vcpu->kvm, old_tss_base, &tss_segment_16,
3444 sizeof tss_segment_16))
3482 goto out; 3445 goto out;
3446
3447 if (kvm_read_guest(vcpu->kvm, get_tss_base_addr(vcpu, nseg_desc),
3448 &tss_segment_16, sizeof tss_segment_16))
3449 goto out;
3450
3483 if (load_state_from_tss16(vcpu, &tss_segment_16)) 3451 if (load_state_from_tss16(vcpu, &tss_segment_16))
3484 goto out; 3452 goto out;
3485 3453
@@ -3489,20 +3457,26 @@ out:
3489} 3457}
3490 3458
3491static int kvm_task_switch_32(struct kvm_vcpu *vcpu, u16 tss_selector, 3459static int kvm_task_switch_32(struct kvm_vcpu *vcpu, u16 tss_selector,
3492 struct desc_struct *cseg_desc, 3460 u32 old_tss_base,
3493 struct desc_struct *nseg_desc) 3461 struct desc_struct *nseg_desc)
3494{ 3462{
3495 struct tss_segment_32 tss_segment_32; 3463 struct tss_segment_32 tss_segment_32;
3496 int ret = 0; 3464 int ret = 0;
3497 3465
3498 if (load_tss_segment32(vcpu, cseg_desc, &tss_segment_32)) 3466 if (kvm_read_guest(vcpu->kvm, old_tss_base, &tss_segment_32,
3467 sizeof tss_segment_32))
3499 goto out; 3468 goto out;
3500 3469
3501 save_state_to_tss32(vcpu, &tss_segment_32); 3470 save_state_to_tss32(vcpu, &tss_segment_32);
3502 save_tss_segment32(vcpu, cseg_desc, &tss_segment_32);
3503 3471
3504 if (load_tss_segment32(vcpu, nseg_desc, &tss_segment_32)) 3472 if (kvm_write_guest(vcpu->kvm, old_tss_base, &tss_segment_32,
3473 sizeof tss_segment_32))
3474 goto out;
3475
3476 if (kvm_read_guest(vcpu->kvm, get_tss_base_addr(vcpu, nseg_desc),
3477 &tss_segment_32, sizeof tss_segment_32))
3505 goto out; 3478 goto out;
3479
3506 if (load_state_from_tss32(vcpu, &tss_segment_32)) 3480 if (load_state_from_tss32(vcpu, &tss_segment_32))
3507 goto out; 3481 goto out;
3508 3482
@@ -3517,16 +3491,20 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason)
3517 struct desc_struct cseg_desc; 3491 struct desc_struct cseg_desc;
3518 struct desc_struct nseg_desc; 3492 struct desc_struct nseg_desc;
3519 int ret = 0; 3493 int ret = 0;
3494 u32 old_tss_base = get_segment_base(vcpu, VCPU_SREG_TR);
3495 u16 old_tss_sel = get_segment_selector(vcpu, VCPU_SREG_TR);
3520 3496
3521 kvm_get_segment(vcpu, &tr_seg, VCPU_SREG_TR); 3497 old_tss_base = vcpu->arch.mmu.gva_to_gpa(vcpu, old_tss_base);
3522 3498
3499 /* FIXME: Handle errors. Failure to read either TSS or their
3500 * descriptors should generate a pagefault.
3501 */
3523 if (load_guest_segment_descriptor(vcpu, tss_selector, &nseg_desc)) 3502 if (load_guest_segment_descriptor(vcpu, tss_selector, &nseg_desc))
3524 goto out; 3503 goto out;
3525 3504
3526 if (load_guest_segment_descriptor(vcpu, tr_seg.selector, &cseg_desc)) 3505 if (load_guest_segment_descriptor(vcpu, old_tss_sel, &cseg_desc))
3527 goto out; 3506 goto out;
3528 3507
3529
3530 if (reason != TASK_SWITCH_IRET) { 3508 if (reason != TASK_SWITCH_IRET) {
3531 int cpl; 3509 int cpl;
3532 3510
@@ -3544,8 +3522,7 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason)
3544 3522
3545 if (reason == TASK_SWITCH_IRET || reason == TASK_SWITCH_JMP) { 3523 if (reason == TASK_SWITCH_IRET || reason == TASK_SWITCH_JMP) {
3546 cseg_desc.type &= ~(1 << 1); //clear the B flag 3524 cseg_desc.type &= ~(1 << 1); //clear the B flag
3547 save_guest_segment_descriptor(vcpu, tr_seg.selector, 3525 save_guest_segment_descriptor(vcpu, old_tss_sel, &cseg_desc);
3548 &cseg_desc);
3549 } 3526 }
3550 3527
3551 if (reason == TASK_SWITCH_IRET) { 3528 if (reason == TASK_SWITCH_IRET) {
@@ -3557,10 +3534,10 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason)
3557 kvm_x86_ops->cache_regs(vcpu); 3534 kvm_x86_ops->cache_regs(vcpu);
3558 3535
3559 if (nseg_desc.type & 8) 3536 if (nseg_desc.type & 8)
3560 ret = kvm_task_switch_32(vcpu, tss_selector, &cseg_desc, 3537 ret = kvm_task_switch_32(vcpu, tss_selector, old_tss_base,
3561 &nseg_desc); 3538 &nseg_desc);
3562 else 3539 else
3563 ret = kvm_task_switch_16(vcpu, tss_selector, &cseg_desc, 3540 ret = kvm_task_switch_16(vcpu, tss_selector, old_tss_base,
3564 &nseg_desc); 3541 &nseg_desc);
3565 3542
3566 if (reason == TASK_SWITCH_CALL || reason == TASK_SWITCH_GATE) { 3543 if (reason == TASK_SWITCH_CALL || reason == TASK_SWITCH_GATE) {
diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
index 1fbb844c3d7a..2977ea37791f 100644
--- a/arch/x86/mm/Makefile
+++ b/arch/x86/mm/Makefile
@@ -1,6 +1,7 @@
1obj-y := init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \ 1obj-y := init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \
2 pat.o pgtable.o 2 pat.o pgtable.o
3 3
4obj-$(CONFIG_HAVE_GET_USER_PAGES_FAST) += gup.o
4obj-$(CONFIG_X86_32) += pgtable_32.o 5obj-$(CONFIG_X86_32) += pgtable_32.o
5 6
6obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o 7obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
new file mode 100644
index 000000000000..3085f25b4355
--- /dev/null
+++ b/arch/x86/mm/gup.c
@@ -0,0 +1,295 @@
1/*
2 * Lockless get_user_pages_fast for x86
3 *
4 * Copyright (C) 2008 Nick Piggin
5 * Copyright (C) 2008 Novell Inc.
6 */
7#include <linux/sched.h>
8#include <linux/mm.h>
9#include <linux/vmstat.h>
10#include <linux/highmem.h>
11
12#include <asm/pgtable.h>
13
14static inline pte_t gup_get_pte(pte_t *ptep)
15{
16#ifndef CONFIG_X86_PAE
17 return *ptep;
18#else
19 /*
20 * With get_user_pages_fast, we walk down the pagetables without taking
21 * any locks. For this we would like to load the pointers atoimcally,
22 * but that is not possible (without expensive cmpxchg8b) on PAE. What
23 * we do have is the guarantee that a pte will only either go from not
24 * present to present, or present to not present or both -- it will not
25 * switch to a completely different present page without a TLB flush in
26 * between; something that we are blocking by holding interrupts off.
27 *
28 * Setting ptes from not present to present goes:
29 * ptep->pte_high = h;
30 * smp_wmb();
31 * ptep->pte_low = l;
32 *
33 * And present to not present goes:
34 * ptep->pte_low = 0;
35 * smp_wmb();
36 * ptep->pte_high = 0;
37 *
38 * We must ensure here that the load of pte_low sees l iff pte_high
39 * sees h. We load pte_high *after* loading pte_low, which ensures we
40 * don't see an older value of pte_high. *Then* we recheck pte_low,
41 * which ensures that we haven't picked up a changed pte high. We might
42 * have got rubbish values from pte_low and pte_high, but we are
43 * guaranteed that pte_low will not have the present bit set *unless*
44 * it is 'l'. And get_user_pages_fast only operates on present ptes, so
45 * we're safe.
46 *
47 * gup_get_pte should not be used or copied outside gup.c without being
48 * very careful -- it does not atomically load the pte or anything that
49 * is likely to be useful for you.
50 */
51 pte_t pte;
52
53retry:
54 pte.pte_low = ptep->pte_low;
55 smp_rmb();
56 pte.pte_high = ptep->pte_high;
57 smp_rmb();
58 if (unlikely(pte.pte_low != ptep->pte_low))
59 goto retry;
60
61 return pte;
62#endif
63}
64
65/*
66 * The performance critical leaf functions are made noinline otherwise gcc
67 * inlines everything into a single function which results in too much
68 * register pressure.
69 */
70static noinline int gup_pte_range(pmd_t pmd, unsigned long addr,
71 unsigned long end, int write, struct page **pages, int *nr)
72{
73 unsigned long mask;
74 pte_t *ptep;
75
76 mask = _PAGE_PRESENT|_PAGE_USER;
77 if (write)
78 mask |= _PAGE_RW;
79
80 ptep = pte_offset_map(&pmd, addr);
81 do {
82 pte_t pte = gup_get_pte(ptep);
83 struct page *page;
84
85 if ((pte_val(pte) & (mask | _PAGE_SPECIAL)) != mask) {
86 pte_unmap(ptep);
87 return 0;
88 }
89 VM_BUG_ON(!pfn_valid(pte_pfn(pte)));
90 page = pte_page(pte);
91 get_page(page);
92 pages[*nr] = page;
93 (*nr)++;
94
95 } while (ptep++, addr += PAGE_SIZE, addr != end);
96 pte_unmap(ptep - 1);
97
98 return 1;
99}
100
101static inline void get_head_page_multiple(struct page *page, int nr)
102{
103 VM_BUG_ON(page != compound_head(page));
104 VM_BUG_ON(page_count(page) == 0);
105 atomic_add(nr, &page->_count);
106}
107
108static noinline int gup_huge_pmd(pmd_t pmd, unsigned long addr,
109 unsigned long end, int write, struct page **pages, int *nr)
110{
111 unsigned long mask;
112 pte_t pte = *(pte_t *)&pmd;
113 struct page *head, *page;
114 int refs;
115
116 mask = _PAGE_PRESENT|_PAGE_USER;
117 if (write)
118 mask |= _PAGE_RW;
119 if ((pte_val(pte) & mask) != mask)
120 return 0;
121 /* hugepages are never "special" */
122 VM_BUG_ON(pte_val(pte) & _PAGE_SPECIAL);
123 VM_BUG_ON(!pfn_valid(pte_pfn(pte)));
124
125 refs = 0;
126 head = pte_page(pte);
127 page = head + ((addr & ~PMD_MASK) >> PAGE_SHIFT);
128 do {
129 VM_BUG_ON(compound_head(page) != head);
130 pages[*nr] = page;
131 (*nr)++;
132 page++;
133 refs++;
134 } while (addr += PAGE_SIZE, addr != end);
135 get_head_page_multiple(head, refs);
136
137 return 1;
138}
139
140static int gup_pmd_range(pud_t pud, unsigned long addr, unsigned long end,
141 int write, struct page **pages, int *nr)
142{
143 unsigned long next;
144 pmd_t *pmdp;
145
146 pmdp = pmd_offset(&pud, addr);
147 do {
148 pmd_t pmd = *pmdp;
149
150 next = pmd_addr_end(addr, end);
151 if (pmd_none(pmd))
152 return 0;
153 if (unlikely(pmd_large(pmd))) {
154 if (!gup_huge_pmd(pmd, addr, next, write, pages, nr))
155 return 0;
156 } else {
157 if (!gup_pte_range(pmd, addr, next, write, pages, nr))
158 return 0;
159 }
160 } while (pmdp++, addr = next, addr != end);
161
162 return 1;
163}
164
165static noinline int gup_huge_pud(pud_t pud, unsigned long addr,
166 unsigned long end, int write, struct page **pages, int *nr)
167{
168 unsigned long mask;
169 pte_t pte = *(pte_t *)&pud;
170 struct page *head, *page;
171 int refs;
172
173 mask = _PAGE_PRESENT|_PAGE_USER;
174 if (write)
175 mask |= _PAGE_RW;
176 if ((pte_val(pte) & mask) != mask)
177 return 0;
178 /* hugepages are never "special" */
179 VM_BUG_ON(pte_val(pte) & _PAGE_SPECIAL);
180 VM_BUG_ON(!pfn_valid(pte_pfn(pte)));
181
182 refs = 0;
183 head = pte_page(pte);
184 page = head + ((addr & ~PUD_MASK) >> PAGE_SHIFT);
185 do {
186 VM_BUG_ON(compound_head(page) != head);
187 pages[*nr] = page;
188 (*nr)++;
189 page++;
190 refs++;
191 } while (addr += PAGE_SIZE, addr != end);
192 get_head_page_multiple(head, refs);
193
194 return 1;
195}
196
197static int gup_pud_range(pgd_t pgd, unsigned long addr, unsigned long end,
198 int write, struct page **pages, int *nr)
199{
200 unsigned long next;
201 pud_t *pudp;
202
203 pudp = pud_offset(&pgd, addr);
204 do {
205 pud_t pud = *pudp;
206
207 next = pud_addr_end(addr, end);
208 if (pud_none(pud))
209 return 0;
210 if (unlikely(pud_large(pud))) {
211 if (!gup_huge_pud(pud, addr, next, write, pages, nr))
212 return 0;
213 } else {
214 if (!gup_pmd_range(pud, addr, next, write, pages, nr))
215 return 0;
216 }
217 } while (pudp++, addr = next, addr != end);
218
219 return 1;
220}
221
222int get_user_pages_fast(unsigned long start, int nr_pages, int write,
223 struct page **pages)
224{
225 struct mm_struct *mm = current->mm;
226 unsigned long end = start + (nr_pages << PAGE_SHIFT);
227 unsigned long addr = start;
228 unsigned long next;
229 pgd_t *pgdp;
230 int nr = 0;
231
232 if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ,
233 start, nr_pages*PAGE_SIZE)))
234 goto slow_irqon;
235
236 /*
237 * XXX: batch / limit 'nr', to avoid large irq off latency
238 * needs some instrumenting to determine the common sizes used by
239 * important workloads (eg. DB2), and whether limiting the batch size
240 * will decrease performance.
241 *
242 * It seems like we're in the clear for the moment. Direct-IO is
243 * the main guy that batches up lots of get_user_pages, and even
244 * they are limited to 64-at-a-time which is not so many.
245 */
246 /*
247 * This doesn't prevent pagetable teardown, but does prevent
248 * the pagetables and pages from being freed on x86.
249 *
250 * So long as we atomically load page table pointers versus teardown
251 * (which we do on x86, with the above PAE exception), we can follow the
252 * address down to the the page and take a ref on it.
253 */
254 local_irq_disable();
255 pgdp = pgd_offset(mm, addr);
256 do {
257 pgd_t pgd = *pgdp;
258
259 next = pgd_addr_end(addr, end);
260 if (pgd_none(pgd))
261 goto slow;
262 if (!gup_pud_range(pgd, addr, next, write, pages, &nr))
263 goto slow;
264 } while (pgdp++, addr = next, addr != end);
265 local_irq_enable();
266
267 VM_BUG_ON(nr != (end - start) >> PAGE_SHIFT);
268 return nr;
269
270 {
271 int ret;
272
273slow:
274 local_irq_enable();
275slow_irqon:
276 /* Try to get the remaining pages with get_user_pages */
277 start += nr << PAGE_SHIFT;
278 pages += nr;
279
280 down_read(&mm->mmap_sem);
281 ret = get_user_pages(current, mm, start,
282 (end - start) >> PAGE_SHIFT, write, 0, pages, NULL);
283 up_read(&mm->mmap_sem);
284
285 /* Have to be a bit careful with return values */
286 if (nr > 0) {
287 if (ret < 0)
288 ret = nr;
289 else
290 ret += nr;
291 }
292
293 return ret;
294 }
295}
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index ec37121f6709..129618ca0ea2 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -86,43 +86,6 @@ early_param("gbpages", parse_direct_gbpages_on);
86 * around without checking the pgd every time. 86 * around without checking the pgd every time.
87 */ 87 */
88 88
89void show_mem(void)
90{
91 long i, total = 0, reserved = 0;
92 long shared = 0, cached = 0;
93 struct page *page;
94 pg_data_t *pgdat;
95
96 printk(KERN_INFO "Mem-info:\n");
97 show_free_areas();
98 for_each_online_pgdat(pgdat) {
99 for (i = 0; i < pgdat->node_spanned_pages; ++i) {
100 /*
101 * This loop can take a while with 256 GB and
102 * 4k pages so defer the NMI watchdog:
103 */
104 if (unlikely(i % MAX_ORDER_NR_PAGES == 0))
105 touch_nmi_watchdog();
106
107 if (!pfn_valid(pgdat->node_start_pfn + i))
108 continue;
109
110 page = pfn_to_page(pgdat->node_start_pfn + i);
111 total++;
112 if (PageReserved(page))
113 reserved++;
114 else if (PageSwapCache(page))
115 cached++;
116 else if (page_count(page))
117 shared += page_count(page) - 1;
118 }
119 }
120 printk(KERN_INFO "%lu pages of RAM\n", total);
121 printk(KERN_INFO "%lu reserved pages\n", reserved);
122 printk(KERN_INFO "%lu pages shared\n", shared);
123 printk(KERN_INFO "%lu pages swap cached\n", cached);
124}
125
126int after_bootmem; 89int after_bootmem;
127 90
128static __init void *spp_getpage(void) 91static __init void *spp_getpage(void)
diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
index b4becbf8c570..cab0abbd1ebe 100644
--- a/arch/x86/mm/pgtable_32.c
+++ b/arch/x86/mm/pgtable_32.c
@@ -20,53 +20,6 @@
20#include <asm/tlb.h> 20#include <asm/tlb.h>
21#include <asm/tlbflush.h> 21#include <asm/tlbflush.h>
22 22
23void show_mem(void)
24{
25 int total = 0, reserved = 0;
26 int shared = 0, cached = 0;
27 int highmem = 0;
28 struct page *page;
29 pg_data_t *pgdat;
30 unsigned long i;
31 unsigned long flags;
32
33 printk(KERN_INFO "Mem-info:\n");
34 show_free_areas();
35 for_each_online_pgdat(pgdat) {
36 pgdat_resize_lock(pgdat, &flags);
37 for (i = 0; i < pgdat->node_spanned_pages; ++i) {
38 if (unlikely(i % MAX_ORDER_NR_PAGES == 0))
39 touch_nmi_watchdog();
40 page = pgdat_page_nr(pgdat, i);
41 total++;
42 if (PageHighMem(page))
43 highmem++;
44 if (PageReserved(page))
45 reserved++;
46 else if (PageSwapCache(page))
47 cached++;
48 else if (page_count(page))
49 shared += page_count(page) - 1;
50 }
51 pgdat_resize_unlock(pgdat, &flags);
52 }
53 printk(KERN_INFO "%d pages of RAM\n", total);
54 printk(KERN_INFO "%d pages of HIGHMEM\n", highmem);
55 printk(KERN_INFO "%d reserved pages\n", reserved);
56 printk(KERN_INFO "%d pages shared\n", shared);
57 printk(KERN_INFO "%d pages swap cached\n", cached);
58
59 printk(KERN_INFO "%lu pages dirty\n", global_page_state(NR_FILE_DIRTY));
60 printk(KERN_INFO "%lu pages writeback\n",
61 global_page_state(NR_WRITEBACK));
62 printk(KERN_INFO "%lu pages mapped\n", global_page_state(NR_FILE_MAPPED));
63 printk(KERN_INFO "%lu pages slab\n",
64 global_page_state(NR_SLAB_RECLAIMABLE) +
65 global_page_state(NR_SLAB_UNRECLAIMABLE));
66 printk(KERN_INFO "%lu pages pagetables\n",
67 global_page_state(NR_PAGETABLE));
68}
69
70/* 23/*
71 * Associate a virtual page frame with a given physical page frame 24 * Associate a virtual page frame with a given physical page frame
72 * and protection flags for that frame. 25 * and protection flags for that frame.
diff --git a/arch/xtensa/mm/init.c b/arch/xtensa/mm/init.c
index 81d0560eaea2..34163cfaaffc 100644
--- a/arch/xtensa/mm/init.c
+++ b/arch/xtensa/mm/init.c
@@ -280,36 +280,9 @@ void free_initmem(void)
280 (&__init_end - &__init_begin) >> 10); 280 (&__init_end - &__init_begin) >> 10);
281} 281}
282 282
283void show_mem(void)
284{
285 int i, free = 0, total = 0, reserved = 0;
286 int shared = 0, cached = 0;
287
288 printk("Mem-info:\n");
289 show_free_areas();
290 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
291 i = max_mapnr;
292 while (i-- > 0) {
293 total++;
294 if (PageReserved(mem_map+i))
295 reserved++;
296 else if (PageSwapCache(mem_map+i))
297 cached++;
298 else if (!page_count(mem_map + i))
299 free++;
300 else
301 shared += page_count(mem_map + i) - 1;
302 }
303 printk("%d pages of RAM\n", total);
304 printk("%d reserved pages\n", reserved);
305 printk("%d pages shared\n", shared);
306 printk("%d pages swap cached\n",cached);
307 printk("%d free pages\n", free);
308}
309
310struct kmem_cache *pgtable_cache __read_mostly; 283struct kmem_cache *pgtable_cache __read_mostly;
311 284
312static void pgd_ctor(struct kmem_cache *cache, void* addr) 285static void pgd_ctor(void* addr)
313{ 286{
314 pte_t* ptep = (pte_t*)addr; 287 pte_t* ptep = (pte_t*)addr;
315 int i; 288 int i;