aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/alpha/kernel/entry.S7
-rw-r--r--arch/alpha/kernel/pci_iommu.c3
-rw-r--r--arch/alpha/kernel/setup.c3
-rw-r--r--arch/alpha/kernel/signal.c110
-rw-r--r--arch/alpha/kernel/systbls.S32
-rw-r--r--arch/alpha/kernel/vmlinux.lds.S4
-rw-r--r--arch/alpha/lib/Makefile3
-rw-r--r--arch/alpha/lib/fls.c38
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/common/dmabounce.c2
-rw-r--r--arch/arm/common/gic.c22
-rw-r--r--arch/arm/common/sharpsl_param.c2
-rw-r--r--arch/arm/common/sharpsl_pm.c22
-rw-r--r--arch/arm/kernel/armksyms.c2
-rw-r--r--arch/arm/kernel/asm-offsets.c2
-rw-r--r--arch/arm/kernel/calls.S4
-rw-r--r--arch/arm/kernel/setup.c2
-rw-r--r--arch/arm/kernel/stacktrace.c2
-rw-r--r--arch/arm/kernel/sys_arm.c2
-rw-r--r--arch/arm/kernel/vmlinux.lds.S4
-rw-r--r--arch/arm/lib/bitops.h2
-rw-r--r--arch/arm/mach-at91/board-carmeva.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-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--arch/arm/mach-footbridge/cats-pci.c2
-rw-r--r--arch/arm/mach-h720x/cpu-h7202.c4
-rw-r--r--arch/arm/mach-imx/cpufreq.c2
-rw-r--r--arch/arm/mach-imx/dma.c8
-rw-r--r--arch/arm/mach-imx/generic.c1
-rw-r--r--arch/arm/mach-integrator/Makefile1
-rw-r--r--arch/arm/mach-integrator/core.c18
-rw-r--r--arch/arm/mach-integrator/headsmp.S37
-rw-r--r--arch/arm/mach-integrator/pci_v3.c1
-rw-r--r--arch/arm/mach-integrator/platsmp.c204
-rw-r--r--arch/arm/mach-iop13xx/irq.c54
-rw-r--r--arch/arm/mach-iop13xx/msi.c18
-rw-r--r--arch/arm/mach-iop13xx/pci.c13
-rw-r--r--arch/arm/mach-iop32x/glantank.c2
-rw-r--r--arch/arm/mach-iop32x/iq31244.c4
-rw-r--r--arch/arm/mach-iop32x/iq80321.c2
-rw-r--r--arch/arm/mach-iop32x/irq.c4
-rw-r--r--arch/arm/mach-iop32x/n2100.c2
-rw-r--r--arch/arm/mach-iop33x/iq80331.c2
-rw-r--r--arch/arm/mach-iop33x/iq80332.c2
-rw-r--r--arch/arm/mach-iop33x/irq.c12
-rw-r--r--arch/arm/mach-ixp2000/enp2611.c2
-rw-r--r--arch/arm/mach-ixp2000/ixdp2400.c2
-rw-r--r--arch/arm/mach-ixp2000/ixdp2800.c2
-rw-r--r--arch/arm/mach-ixp2000/ixdp2x00.c6
-rw-r--r--arch/arm/mach-ixp2000/ixdp2x01.c6
-rw-r--r--arch/arm/mach-ixp2000/pci.c2
-rw-r--r--arch/arm/mach-ixp23xx/core.c2
-rw-r--r--arch/arm/mach-ixp23xx/ixdp2351.c2
-rw-r--r--arch/arm/mach-ixp23xx/pci.c2
-rw-r--r--arch/arm/mach-ixp23xx/roadrunner.c2
-rw-r--r--arch/arm/mach-ixp4xx/Kconfig3
-rw-r--r--arch/arm/mach-ixp4xx/common.c2
-rw-r--r--arch/arm/mach-ixp4xx/coyote-pci.c4
-rw-r--r--arch/arm/mach-ixp4xx/dsmg600-setup.c24
-rw-r--r--arch/arm/mach-ixp4xx/gtwx5715-setup.c2
-rw-r--r--arch/arm/mach-ixp4xx/ixdpg425-pci.c4
-rw-r--r--arch/arm/mach-ixp4xx/nas100d-setup.c3
-rw-r--r--arch/arm/mach-ixp4xx/nslu2-setup.c37
-rw-r--r--arch/arm/mach-lh7a40x/lcd-panel.h6
-rw-r--r--arch/arm/mach-ns9xxx/time.c2
-rw-r--r--arch/arm/mach-omap1/Kconfig2
-rw-r--r--arch/arm/mach-omap1/board-osk.c2
-rw-r--r--arch/arm/mach-omap1/board-palmte.c2
-rw-r--r--arch/arm/mach-omap1/pm.c2
-rw-r--r--arch/arm/mach-omap2/clock.c2
-rw-r--r--arch/arm/mach-omap2/clock.h4
-rw-r--r--arch/arm/mach-pxa/corgi_lcd.c10
-rw-r--r--arch/arm/mach-pxa/corgi_ssp.c2
-rw-r--r--arch/arm/mach-realview/localtimer.c2
-rw-r--r--arch/arm/mach-s3c2410/bast.h2
-rw-r--r--arch/arm/mach-s3c2410/mach-amlm5900.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-h1940.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-qt2410.c1
-rw-r--r--arch/arm/mach-s3c2412/dma.c4
-rw-r--r--arch/arm/mach-s3c2412/s3c2412.c33
-rw-r--r--arch/arm/mach-s3c2440/mach-osiris.c2
-rw-r--r--arch/arm/mach-s3c2440/mach-rx3715.c1
-rw-r--r--arch/arm/mach-s3c2443/clock.c23
-rw-r--r--arch/arm/mach-s3c2443/mach-smdk2443.c1
-rw-r--r--arch/arm/mach-s3c2443/s3c2443.c4
-rw-r--r--arch/arm/mach-sa1100/neponset.c4
-rw-r--r--arch/arm/mach-sa1100/time.c2
-rw-r--r--arch/arm/mm/Kconfig13
-rw-r--r--arch/arm/mm/Makefile1
-rw-r--r--arch/arm/mm/alignment.c2
-rw-r--r--arch/arm/mm/ioremap.c2
-rw-r--r--arch/arm/mm/mmap.c2
-rw-r--r--arch/arm/mm/mmu.c2
-rw-r--r--arch/arm/mm/proc-v7.S2
-rw-r--r--arch/arm/mm/tlb-v7.S88
-rw-r--r--arch/arm/nwfpe/softfloat.h3
-rw-r--r--arch/arm/oprofile/op_model_mpcore.c9
-rw-r--r--arch/arm/plat-iop/pci.c7
-rw-r--r--arch/arm/plat-omap/common.c2
-rw-r--r--arch/arm/plat-omap/dma.c2
-rw-r--r--arch/arm/plat-omap/sram.c6
-rw-r--r--arch/arm/plat-omap/usb.c2
-rw-r--r--arch/arm/plat-s3c24xx/common-smdk.c5
-rw-r--r--arch/arm/plat-s3c24xx/devs.c35
-rw-r--r--arch/arm/plat-s3c24xx/dma.c2
-rw-r--r--arch/arm/plat-s3c24xx/pm-simtec.c1
-rw-r--r--arch/arm/plat-s3c24xx/pm.c2
-rw-r--r--arch/arm26/kernel/vmlinux-arm26-xip.lds.in4
-rw-r--r--arch/arm26/kernel/vmlinux-arm26.lds.in4
-rw-r--r--arch/avr32/boards/atstk1000/atstk1000.h15
-rw-r--r--arch/avr32/boards/atstk1000/atstk1002.c10
-rw-r--r--arch/avr32/boards/atstk1000/setup.c45
-rw-r--r--arch/avr32/kernel/irq.c9
-rw-r--r--arch/avr32/kernel/kprobes.c7
-rw-r--r--arch/avr32/kernel/syscall_table.S3
-rw-r--r--arch/avr32/kernel/vmlinux.lds.c4
-rw-r--r--arch/avr32/mach-at32ap/at32ap7000.c77
-rw-r--r--arch/avr32/mm/fault.c36
-rw-r--r--arch/blackfin/Kconfig20
-rw-r--r--arch/blackfin/Makefile1
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig1014
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig1296
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig1332
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig1073
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig1253
-rw-r--r--arch/blackfin/defconfig43
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c223
-rw-r--r--arch/blackfin/kernel/bfin_gpio.c11
-rw-r--r--arch/blackfin/kernel/setup.c32
-rw-r--r--arch/blackfin/kernel/traps.c18
-rw-r--r--arch/blackfin/kernel/vmlinux.lds.S4
-rw-r--r--arch/blackfin/lib/ins.S20
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c47
-rw-r--r--arch/blackfin/mach-bf533/head.S77
-rw-r--r--arch/blackfin/mach-bf537/cpu.c22
-rw-r--r--arch/blackfin/mach-bf537/head.S103
-rw-r--r--arch/blackfin/mach-bf561/boards/Makefile3
-rw-r--r--arch/blackfin/mach-bf561/boards/ezkit.c64
-rw-r--r--arch/blackfin/mach-bf561/boards/tepla.c61
-rw-r--r--arch/blackfin/mach-bf561/head.S79
-rw-r--r--arch/blackfin/mach-common/entry.S11
-rw-r--r--arch/blackfin/mach-common/pm.c12
-rw-r--r--arch/blackfin/mm/init.c3
-rw-r--r--arch/frv/Kconfig8
-rw-r--r--arch/frv/kernel/vmlinux.lds.S6
-rw-r--r--arch/h8300/kernel/vmlinux.lds.S4
-rw-r--r--arch/i386/Kconfig2
-rw-r--r--arch/i386/Makefile2
-rw-r--r--arch/i386/boot/setup.S2
-rw-r--r--arch/i386/defconfig249
-rw-r--r--arch/i386/kernel/cpu/amd.c4
-rw-r--r--arch/i386/kernel/cpu/cpufreq/speedstep-ich.c1
-rw-r--r--arch/i386/kernel/cpu/cyrix.c1
-rw-r--r--arch/i386/kernel/cpu/mcheck/k7.c6
-rw-r--r--arch/i386/kernel/cpu/mtrr/cyrix.c2
-rw-r--r--arch/i386/kernel/cpu/mtrr/generic.c2
-rw-r--r--arch/i386/kernel/cpu/mtrr/main.c2
-rw-r--r--arch/i386/kernel/cpu/mtrr/state.c2
-rw-r--r--arch/i386/kernel/smp.c2
-rw-r--r--arch/i386/kernel/verify_cpu.S27
-rw-r--r--arch/i386/kernel/vmlinux.lds.S4
-rw-r--r--arch/i386/mach-generic/bigsmp.c6
-rw-r--r--arch/i386/mm/mmap.c1
-rw-r--r--arch/i386/oprofile/nmi_int.c9
-rw-r--r--arch/ia64/kernel/acpi-processor.c2
-rw-r--r--arch/ia64/kernel/acpi.c5
-rw-r--r--arch/ia64/kernel/crash.c24
-rw-r--r--arch/ia64/kernel/entry.S3
-rw-r--r--arch/ia64/kernel/irq.c6
-rw-r--r--arch/ia64/kernel/irq_lsapic.c2
-rw-r--r--arch/ia64/kernel/kprobes.c15
-rw-r--r--arch/ia64/kernel/mca.c5
-rw-r--r--arch/ia64/kernel/mca_drv.c4
-rw-r--r--arch/ia64/kernel/module.c2
-rw-r--r--arch/ia64/kernel/perfmon.c18
-rw-r--r--arch/ia64/kernel/perfmon_mckinley.h2
-rw-r--r--arch/ia64/kernel/process.c5
-rw-r--r--arch/ia64/kernel/sal.c2
-rw-r--r--arch/ia64/kernel/salinfo.c2
-rw-r--r--arch/ia64/kernel/setup.c6
-rw-r--r--arch/ia64/kernel/smp.c12
-rw-r--r--arch/ia64/kernel/smpboot.c10
-rw-r--r--arch/ia64/kernel/traps.c2
-rw-r--r--arch/ia64/kernel/unwind.c23
-rw-r--r--arch/ia64/kernel/vmlinux.lds.S9
-rw-r--r--arch/ia64/mm/discontig.c2
-rw-r--r--arch/ia64/mm/fault.c41
-rw-r--r--arch/ia64/pci/pci.c11
-rw-r--r--arch/ia64/sn/kernel/bte.c12
-rw-r--r--arch/ia64/sn/kernel/bte_error.c4
-rw-r--r--arch/ia64/sn/kernel/io_common.c2
-rw-r--r--arch/ia64/sn/kernel/setup.c4
-rw-r--r--arch/ia64/sn/kernel/sn2/sn2_smp.c2
-rw-r--r--arch/ia64/sn/kernel/xpc_channel.c8
-rw-r--r--arch/ia64/sn/kernel/xpnet.c2
-rw-r--r--arch/ia64/sn/pci/pci_dma.c8
-rw-r--r--arch/ia64/sn/pci/pcibr/pcibr_ate.c6
-rw-r--r--arch/ia64/sn/pci/pcibr/pcibr_dma.c2
-rw-r--r--arch/ia64/sn/pci/tioca_provider.c6
-rw-r--r--arch/ia64/sn/pci/tioce_provider.c16
-rw-r--r--arch/m32r/kernel/vmlinux.lds.S4
-rw-r--r--arch/m68k/kernel/vmlinux-std.lds4
-rw-r--r--arch/m68k/kernel/vmlinux-sun3.lds4
-rw-r--r--arch/m68knommu/Kconfig8
-rw-r--r--arch/m68knommu/kernel/vmlinux.lds.S4
-rw-r--r--arch/mips/kernel/unaligned.c2
-rw-r--r--arch/mips/kernel/vmlinux.lds.S4
-rw-r--r--arch/mips/mm/ioremap.c2
-rw-r--r--arch/mips/sgi-ip32/Makefile2
-rw-r--r--arch/mips/sgi-ip32/ip32-platform.c20
-rw-r--r--arch/parisc/kernel/cache.c2
-rw-r--r--arch/parisc/kernel/processor.c2
-rw-r--r--arch/parisc/kernel/vmlinux.lds.S4
-rw-r--r--arch/powerpc/Kconfig1
-rw-r--r--arch/powerpc/Makefile3
-rw-r--r--arch/powerpc/boot/Makefile15
-rw-r--r--arch/powerpc/boot/dts/ebony.dts37
-rw-r--r--arch/powerpc/boot/dts/kuroboxHD.dts44
-rw-r--r--arch/powerpc/boot/dts/kuroboxHG.dts45
-rw-r--r--arch/powerpc/boot/dts/lite5200.dts67
-rw-r--r--arch/powerpc/boot/dts/lite5200b.dts75
-rw-r--r--arch/powerpc/boot/dts/mpc7448hpc2.dts72
-rw-r--r--arch/powerpc/boot/dts/mpc8540ads.dts16
-rw-r--r--arch/powerpc/boot/dts/mpc8541cds.dts16
-rw-r--r--arch/powerpc/boot/dts/mpc8544ds.dts16
-rw-r--r--arch/powerpc/boot/dts/mpc8548cds.dts16
-rw-r--r--arch/powerpc/boot/dts/mpc8555cds.dts16
-rw-r--r--arch/powerpc/boot/dts/mpc8560ads.dts18
-rw-r--r--arch/powerpc/boot/dts/mpc8568mds.dts16
-rw-r--r--arch/powerpc/boot/flatdevtree.c17
-rw-r--r--arch/powerpc/configs/cell_defconfig15
-rw-r--r--arch/powerpc/configs/iseries_defconfig209
-rw-r--r--arch/powerpc/configs/pasemi_defconfig383
-rw-r--r--arch/powerpc/kernel/cputable.c6
-rw-r--r--arch/powerpc/kernel/entry_32.S18
-rw-r--r--arch/powerpc/kernel/of_platform.c10
-rw-r--r--arch/powerpc/kernel/pci_64.c23
-rw-r--r--arch/powerpc/kernel/pmc.c6
-rw-r--r--arch/powerpc/kernel/prom.c5
-rw-r--r--arch/powerpc/kernel/rtas-proc.c2
-rw-r--r--arch/powerpc/kernel/smp.c34
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S4
-rw-r--r--arch/powerpc/lib/rheap.c22
-rw-r--r--arch/powerpc/mm/hash_low_32.S18
-rw-r--r--arch/powerpc/mm/hash_utils_64.c4
-rw-r--r--arch/powerpc/mm/mem.c9
-rw-r--r--arch/powerpc/mm/mmap.c1
-rw-r--r--arch/powerpc/mm/pgtable_32.c2
-rw-r--r--arch/powerpc/mm/pgtable_64.c4
-rw-r--r--arch/powerpc/platforms/44x/Kconfig3
-rw-r--r--arch/powerpc/platforms/44x/ebony.c6
-rw-r--r--arch/powerpc/platforms/cell/spufs/inode.c4
-rw-r--r--arch/powerpc/platforms/chrp/pegasos_eth.c2
-rw-r--r--arch/powerpc/platforms/iseries/viopath.c21
-rw-r--r--arch/powerpc/platforms/pasemi/Kconfig1
-rw-r--r--arch/powerpc/platforms/powermac/setup.c2
-rw-r--r--arch/powerpc/platforms/pseries/pseries.h4
-rw-r--r--arch/powerpc/sysdev/mpic.c12
-rw-r--r--arch/powerpc/sysdev/qe_lib/Kconfig4
-rw-r--r--arch/ppc/kernel/entry.S18
-rw-r--r--arch/ppc/kernel/ppc_ksyms.c2
-rw-r--r--arch/ppc/kernel/vmlinux.lds.S4
-rw-r--r--arch/ppc/mm/hashtable.S20
-rw-r--r--arch/ppc/mm/pgtable.c2
-rw-r--r--arch/ppc/syslib/pq2_sys.c36
-rw-r--r--arch/s390/kernel/compat_wrapper.S28
-rw-r--r--arch/s390/kernel/kprobes.c2
-rw-r--r--arch/s390/kernel/syscalls.S5
-rw-r--r--arch/s390/kernel/vmlinux.lds.S4
-rw-r--r--arch/s390/mm/init.c38
-rw-r--r--arch/sh/boards/landisk/gio.c2
-rw-r--r--arch/sh/boards/landisk/setup.c6
-rw-r--r--arch/sh/boards/renesas/r7780rp/Makefile5
-rw-r--r--arch/sh/boards/snapgear/rtc.c2
-rw-r--r--arch/sh/boards/superh/microdev/io.c6
-rw-r--r--arch/sh/boards/superh/microdev/irq.c6
-rw-r--r--arch/sh/boards/superh/microdev/setup.c2
-rw-r--r--arch/sh/boards/unknown/setup.c2
-rw-r--r--arch/sh/drivers/dma/dma-api.c2
-rw-r--r--arch/sh/drivers/dma/dma-isa.c2
-rw-r--r--arch/sh/drivers/dma/dmabrg.c2
-rw-r--r--arch/sh/drivers/pci/ops-dreamcast.c2
-rw-r--r--arch/sh/drivers/pci/pci-st40.c6
-rw-r--r--arch/sh/drivers/pci/pci-st40.h2
-rw-r--r--arch/sh/drivers/superhyway/ops-sh4-202.c2
-rw-r--r--arch/sh/kernel/cf-enabler.c2
-rw-r--r--arch/sh/kernel/cpu/clock.c7
-rw-r--r--arch/sh/kernel/cpu/irq/maskreg.c2
-rw-r--r--arch/sh/kernel/cpu/sh4/fpu.c2
-rw-r--r--arch/sh/kernel/cpu/sh4/setup-sh7750.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/clock-sh7722.c34
-rw-r--r--arch/sh/kernel/kgdb_stub.c4
-rw-r--r--arch/sh/kernel/process.c33
-rw-r--r--arch/sh/kernel/syscalls.S3
-rw-r--r--arch/sh/kernel/traps.c13
-rw-r--r--arch/sh/kernel/vmlinux.lds.S4
-rw-r--r--arch/sh/math-emu/math.c2
-rw-r--r--arch/sh/mm/copy_page.S1
-rw-r--r--arch/sh/mm/fault.c39
-rw-r--r--arch/sh/mm/init.c3
-rw-r--r--arch/sh/mm/pmb.c79
-rw-r--r--arch/sh/tools/mach-types5
-rw-r--r--arch/sh64/kernel/vmlinux.lds.S4
-rw-r--r--arch/sparc/Kconfig7
-rw-r--r--arch/sparc/kernel/time.c4
-rw-r--r--arch/sparc/kernel/vmlinux.lds.S4
-rw-r--r--arch/sparc/lib/atomic32.c15
-rw-r--r--arch/sparc64/Kconfig6
-rw-r--r--arch/sparc64/kernel/Makefile4
-rw-r--r--arch/sparc64/kernel/devices.c196
-rw-r--r--arch/sparc64/kernel/entry.S669
-rw-r--r--arch/sparc64/kernel/head.S31
-rw-r--r--arch/sparc64/kernel/hvapi.c192
-rw-r--r--arch/sparc64/kernel/irq.c83
-rw-r--r--arch/sparc64/kernel/itlb_miss.S4
-rw-r--r--arch/sparc64/kernel/mdesc.c619
-rw-r--r--arch/sparc64/kernel/pci.c54
-rw-r--r--arch/sparc64/kernel/pci_sabre.c7
-rw-r--r--arch/sparc64/kernel/pci_sun4v.c54
-rw-r--r--arch/sparc64/kernel/power.c2
-rw-r--r--arch/sparc64/kernel/process.c4
-rw-r--r--arch/sparc64/kernel/prom.c148
-rw-r--r--arch/sparc64/kernel/setup.c21
-rw-r--r--arch/sparc64/kernel/smp.c155
-rw-r--r--arch/sparc64/kernel/sstate.c104
-rw-r--r--arch/sparc64/kernel/sun4v_ivec.S30
-rw-r--r--arch/sparc64/kernel/time.c49
-rw-r--r--arch/sparc64/kernel/traps.c27
-rw-r--r--arch/sparc64/kernel/vmlinux.lds.S4
-rw-r--r--arch/sparc64/mm/init.c90
-rw-r--r--arch/sparc64/prom/misc.c19
-rw-r--r--arch/um/kernel/dyn.lds.S5
-rw-r--r--arch/um/kernel/uml.lds.S4
-rw-r--r--arch/um/os-Linux/start_up.c24
-rw-r--r--arch/v850/Kconfig8
-rw-r--r--arch/v850/kernel/vmlinux.lds.S4
-rw-r--r--arch/x86_64/Kconfig7
-rw-r--r--arch/x86_64/defconfig286
-rw-r--r--arch/x86_64/ia32/mmap32.c1
-rw-r--r--arch/x86_64/kernel/early_printk.c2
-rw-r--r--arch/x86_64/kernel/k8.c7
-rw-r--r--arch/x86_64/kernel/reboot.c1
-rw-r--r--arch/x86_64/kernel/vmlinux.lds.S4
-rw-r--r--arch/x86_64/kernel/vsyscall.c5
-rw-r--r--arch/xtensa/kernel/vmlinux.lds.S6
348 files changed, 10897 insertions, 2656 deletions
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
index c95e95e1ab04..debc8f03886c 100644
--- a/arch/alpha/kernel/entry.S
+++ b/arch/alpha/kernel/entry.S
@@ -391,11 +391,10 @@ $work_resched:
391 bne $2, $work_resched 391 bne $2, $work_resched
392 392
393$work_notifysig: 393$work_notifysig:
394 mov $sp, $17 394 mov $sp, $16
395 br $1, do_switch_stack 395 br $1, do_switch_stack
396 mov $5, $21 396 mov $sp, $17
397 mov $sp, $18 397 mov $5, $18
398 mov $31, $16
399 jsr $26, do_notify_resume 398 jsr $26, do_notify_resume
400 bsr $1, undo_switch_stack 399 bsr $1, undo_switch_stack
401 br restore_all 400 br restore_all
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c
index 6e7d1fe6e935..28c84e55feb9 100644
--- a/arch/alpha/kernel/pci_iommu.c
+++ b/arch/alpha/kernel/pci_iommu.c
@@ -7,6 +7,7 @@
7#include <linux/pci.h> 7#include <linux/pci.h>
8#include <linux/slab.h> 8#include <linux/slab.h>
9#include <linux/bootmem.h> 9#include <linux/bootmem.h>
10#include <linux/log2.h>
10 11
11#include <asm/io.h> 12#include <asm/io.h>
12#include <asm/hwrpb.h> 13#include <asm/hwrpb.h>
@@ -53,7 +54,7 @@ size_for_memory(unsigned long max)
53{ 54{
54 unsigned long mem = max_low_pfn << PAGE_SHIFT; 55 unsigned long mem = max_low_pfn << PAGE_SHIFT;
55 if (mem < max) 56 if (mem < max)
56 max = 1UL << ceil_log2(mem); 57 max = roundup_pow_of_two(mem);
57 return max; 58 return max;
58} 59}
59 60
diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
index 915f26345c45..bd5e68cd61e8 100644
--- a/arch/alpha/kernel/setup.c
+++ b/arch/alpha/kernel/setup.c
@@ -43,6 +43,7 @@
43#include <linux/notifier.h> 43#include <linux/notifier.h>
44#include <asm/setup.h> 44#include <asm/setup.h>
45#include <asm/io.h> 45#include <asm/io.h>
46#include <linux/log2.h>
46 47
47extern struct atomic_notifier_head panic_notifier_list; 48extern struct atomic_notifier_head panic_notifier_list;
48static int alpha_panic_event(struct notifier_block *, unsigned long, void *); 49static int alpha_panic_event(struct notifier_block *, unsigned long, void *);
@@ -1303,7 +1304,7 @@ external_cache_probe(int minsize, int width)
1303 long size = minsize, maxsize = MAX_BCACHE_SIZE * 2; 1304 long size = minsize, maxsize = MAX_BCACHE_SIZE * 2;
1304 1305
1305 if (maxsize > (max_low_pfn + 1) << PAGE_SHIFT) 1306 if (maxsize > (max_low_pfn + 1) << PAGE_SHIFT)
1306 maxsize = 1 << (floor_log2(max_low_pfn + 1) + PAGE_SHIFT); 1307 maxsize = 1 << (ilog2(max_low_pfn + 1) + PAGE_SHIFT);
1307 1308
1308 /* Get the first block cached. */ 1309 /* Get the first block cached. */
1309 read_mem_block(__va(0), stride, size); 1310 read_mem_block(__va(0), stride, size);
diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c
index 7f64aa767d5a..410af4f3140e 100644
--- a/arch/alpha/kernel/signal.c
+++ b/arch/alpha/kernel/signal.c
@@ -32,8 +32,8 @@
32#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 32#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
33 33
34asmlinkage void ret_from_sys_call(void); 34asmlinkage void ret_from_sys_call(void);
35static int do_signal(sigset_t *, struct pt_regs *, struct switch_stack *, 35static void do_signal(struct pt_regs *, struct switch_stack *,
36 unsigned long, unsigned long); 36 unsigned long, unsigned long);
37 37
38 38
39/* 39/*
@@ -146,11 +146,9 @@ sys_rt_sigaction(int sig, const struct sigaction __user *act,
146asmlinkage int 146asmlinkage int
147do_sigsuspend(old_sigset_t mask, struct pt_regs *regs, struct switch_stack *sw) 147do_sigsuspend(old_sigset_t mask, struct pt_regs *regs, struct switch_stack *sw)
148{ 148{
149 sigset_t oldset;
150
151 mask &= _BLOCKABLE; 149 mask &= _BLOCKABLE;
152 spin_lock_irq(&current->sighand->siglock); 150 spin_lock_irq(&current->sighand->siglock);
153 oldset = current->blocked; 151 current->saved_sigmask = current->blocked;
154 siginitset(&current->blocked, mask); 152 siginitset(&current->blocked, mask);
155 recalc_sigpending(); 153 recalc_sigpending();
156 spin_unlock_irq(&current->sighand->siglock); 154 spin_unlock_irq(&current->sighand->siglock);
@@ -160,19 +158,17 @@ do_sigsuspend(old_sigset_t mask, struct pt_regs *regs, struct switch_stack *sw)
160 regs->r0 = EINTR; 158 regs->r0 = EINTR;
161 regs->r19 = 1; 159 regs->r19 = 1;
162 160
163 while (1) { 161 current->state = TASK_INTERRUPTIBLE;
164 current->state = TASK_INTERRUPTIBLE; 162 schedule();
165 schedule(); 163 set_thread_flag(TIF_RESTORE_SIGMASK);
166 if (do_signal(&oldset, regs, sw, 0, 0)) 164 return -ERESTARTNOHAND;
167 return -EINTR;
168 }
169} 165}
170 166
171asmlinkage int 167asmlinkage int
172do_rt_sigsuspend(sigset_t __user *uset, size_t sigsetsize, 168do_rt_sigsuspend(sigset_t __user *uset, size_t sigsetsize,
173 struct pt_regs *regs, struct switch_stack *sw) 169 struct pt_regs *regs, struct switch_stack *sw)
174{ 170{
175 sigset_t oldset, set; 171 sigset_t set;
176 172
177 /* XXX: Don't preclude handling different sized sigset_t's. */ 173 /* XXX: Don't preclude handling different sized sigset_t's. */
178 if (sigsetsize != sizeof(sigset_t)) 174 if (sigsetsize != sizeof(sigset_t))
@@ -182,7 +178,7 @@ do_rt_sigsuspend(sigset_t __user *uset, size_t sigsetsize,
182 178
183 sigdelsetmask(&set, ~_BLOCKABLE); 179 sigdelsetmask(&set, ~_BLOCKABLE);
184 spin_lock_irq(&current->sighand->siglock); 180 spin_lock_irq(&current->sighand->siglock);
185 oldset = current->blocked; 181 current->saved_sigmask = current->blocked;
186 current->blocked = set; 182 current->blocked = set;
187 recalc_sigpending(); 183 recalc_sigpending();
188 spin_unlock_irq(&current->sighand->siglock); 184 spin_unlock_irq(&current->sighand->siglock);
@@ -192,12 +188,10 @@ do_rt_sigsuspend(sigset_t __user *uset, size_t sigsetsize,
192 regs->r0 = EINTR; 188 regs->r0 = EINTR;
193 regs->r19 = 1; 189 regs->r19 = 1;
194 190
195 while (1) { 191 current->state = TASK_INTERRUPTIBLE;
196 current->state = TASK_INTERRUPTIBLE; 192 schedule();
197 schedule(); 193 set_thread_flag(TIF_RESTORE_SIGMASK);
198 if (do_signal(&oldset, regs, sw, 0, 0)) 194 return -ERESTARTNOHAND;
199 return -EINTR;
200 }
201} 195}
202 196
203asmlinkage int 197asmlinkage int
@@ -436,7 +430,7 @@ setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
436 return err; 430 return err;
437} 431}
438 432
439static void 433static int
440setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, 434setup_frame(int sig, struct k_sigaction *ka, sigset_t *set,
441 struct pt_regs *regs, struct switch_stack * sw) 435 struct pt_regs *regs, struct switch_stack * sw)
442{ 436{
@@ -481,13 +475,14 @@ setup_frame(int sig, struct k_sigaction *ka, sigset_t *set,
481 current->comm, current->pid, frame, regs->pc, regs->r26); 475 current->comm, current->pid, frame, regs->pc, regs->r26);
482#endif 476#endif
483 477
484 return; 478 return 0;
485 479
486give_sigsegv: 480give_sigsegv:
487 force_sigsegv(sig, current); 481 force_sigsegv(sig, current);
482 return -EFAULT;
488} 483}
489 484
490static void 485static int
491setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, 486setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
492 sigset_t *set, struct pt_regs *regs, struct switch_stack * sw) 487 sigset_t *set, struct pt_regs *regs, struct switch_stack * sw)
493{ 488{
@@ -543,34 +538,38 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
543 current->comm, current->pid, frame, regs->pc, regs->r26); 538 current->comm, current->pid, frame, regs->pc, regs->r26);
544#endif 539#endif
545 540
546 return; 541 return 0;
547 542
548give_sigsegv: 543give_sigsegv:
549 force_sigsegv(sig, current); 544 force_sigsegv(sig, current);
545 return -EFAULT;
550} 546}
551 547
552 548
553/* 549/*
554 * OK, we're invoking a handler. 550 * OK, we're invoking a handler.
555 */ 551 */
556static inline void 552static inline int
557handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info, 553handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info,
558 sigset_t *oldset, struct pt_regs * regs, struct switch_stack *sw) 554 sigset_t *oldset, struct pt_regs * regs, struct switch_stack *sw)
559{ 555{
556 int ret;
557
560 if (ka->sa.sa_flags & SA_SIGINFO) 558 if (ka->sa.sa_flags & SA_SIGINFO)
561 setup_rt_frame(sig, ka, info, oldset, regs, sw); 559 ret = setup_rt_frame(sig, ka, info, oldset, regs, sw);
562 else 560 else
563 setup_frame(sig, ka, oldset, regs, sw); 561 ret = setup_frame(sig, ka, oldset, regs, sw);
564 562
565 if (ka->sa.sa_flags & SA_RESETHAND) 563 if (ret == 0) {
566 ka->sa.sa_handler = SIG_DFL; 564 spin_lock_irq(&current->sighand->siglock);
565 sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask);
566 if (!(ka->sa.sa_flags & SA_NODEFER))
567 sigaddset(&current->blocked,sig);
568 recalc_sigpending();
569 spin_unlock_irq(&current->sighand->siglock);
570 }
567 571
568 spin_lock_irq(&current->sighand->siglock); 572 return ret;
569 sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask);
570 if (!(ka->sa.sa_flags & SA_NODEFER))
571 sigaddset(&current->blocked,sig);
572 recalc_sigpending();
573 spin_unlock_irq(&current->sighand->siglock);
574} 573}
575 574
576static inline void 575static inline void
@@ -611,30 +610,42 @@ syscall_restart(unsigned long r0, unsigned long r19,
611 * restart. "r0" is also used as an indicator whether we can restart at 610 * restart. "r0" is also used as an indicator whether we can restart at
612 * all (if we get here from anything but a syscall return, it will be 0) 611 * all (if we get here from anything but a syscall return, it will be 0)
613 */ 612 */
614static int 613static void
615do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw, 614do_signal(struct pt_regs * regs, struct switch_stack * sw,
616 unsigned long r0, unsigned long r19) 615 unsigned long r0, unsigned long r19)
617{ 616{
618 siginfo_t info; 617 siginfo_t info;
619 int signr; 618 int signr;
620 unsigned long single_stepping = ptrace_cancel_bpt(current); 619 unsigned long single_stepping = ptrace_cancel_bpt(current);
621 struct k_sigaction ka; 620 struct k_sigaction ka;
621 sigset_t *oldset;
622 622
623 if (!oldset) 623 if (test_thread_flag(TIF_RESTORE_SIGMASK))
624 oldset = &current->saved_sigmask;
625 else
624 oldset = &current->blocked; 626 oldset = &current->blocked;
625 627
626 /* This lets the debugger run, ... */ 628 /* This lets the debugger run, ... */
627 signr = get_signal_to_deliver(&info, &ka, regs, NULL); 629 signr = get_signal_to_deliver(&info, &ka, regs, NULL);
630
628 /* ... so re-check the single stepping. */ 631 /* ... so re-check the single stepping. */
629 single_stepping |= ptrace_cancel_bpt(current); 632 single_stepping |= ptrace_cancel_bpt(current);
630 633
631 if (signr > 0) { 634 if (signr > 0) {
632 /* Whee! Actually deliver the signal. */ 635 /* Whee! Actually deliver the signal. */
633 if (r0) syscall_restart(r0, r19, regs, &ka); 636 if (r0)
634 handle_signal(signr, &ka, &info, oldset, regs, sw); 637 syscall_restart(r0, r19, regs, &ka);
638 if (handle_signal(signr, &ka, &info, oldset, regs, sw) == 0) {
639 /* A signal was successfully delivered, and the
640 saved sigmask was stored on the signal frame,
641 and will be restored by sigreturn. So we can
642 simply clear the restore sigmask flag. */
643 if (test_thread_flag(TIF_RESTORE_SIGMASK))
644 clear_thread_flag(TIF_RESTORE_SIGMASK);
645 }
635 if (single_stepping) 646 if (single_stepping)
636 ptrace_set_bpt(current); /* re-set bpt */ 647 ptrace_set_bpt(current); /* re-set bpt */
637 return 1; 648 return;
638 } 649 }
639 650
640 if (r0) { 651 if (r0) {
@@ -654,17 +665,22 @@ do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw,
654 break; 665 break;
655 } 666 }
656 } 667 }
668
669 /* If there's no signal to deliver, we just restore the saved mask. */
670 if (test_thread_flag(TIF_RESTORE_SIGMASK)) {
671 clear_thread_flag(TIF_RESTORE_SIGMASK);
672 sigprocmask(SIG_SETMASK, &current->saved_sigmask, NULL);
673 }
674
657 if (single_stepping) 675 if (single_stepping)
658 ptrace_set_bpt(current); /* re-set breakpoint */ 676 ptrace_set_bpt(current); /* re-set breakpoint */
659
660 return 0;
661} 677}
662 678
663void 679void
664do_notify_resume(sigset_t *oldset, struct pt_regs *regs, 680do_notify_resume(struct pt_regs *regs, struct switch_stack *sw,
665 struct switch_stack *sw, unsigned long r0, 681 unsigned long thread_info_flags,
666 unsigned long r19, unsigned long thread_info_flags) 682 unsigned long r0, unsigned long r19)
667{ 683{
668 if (thread_info_flags & _TIF_SIGPENDING) 684 if (thread_info_flags & (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK))
669 do_signal(oldset, regs, sw, r0, r19); 685 do_signal(regs, sw, r0, r19);
670} 686}
diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S
index f6cfe8ce3f96..79de99e32c35 100644
--- a/arch/alpha/kernel/systbls.S
+++ b/arch/alpha/kernel/systbls.S
@@ -465,6 +465,38 @@ sys_call_table:
465 .quad sys_inotify_init 465 .quad sys_inotify_init
466 .quad sys_inotify_add_watch /* 445 */ 466 .quad sys_inotify_add_watch /* 445 */
467 .quad sys_inotify_rm_watch 467 .quad sys_inotify_rm_watch
468 .quad sys_fdatasync
469 .quad sys_kexec_load
470 .quad sys_migrate_pages
471 .quad sys_openat /* 450 */
472 .quad sys_mkdirat
473 .quad sys_mknodat
474 .quad sys_fchownat
475 .quad sys_futimesat
476 .quad sys_fstatat64 /* 455 */
477 .quad sys_unlinkat
478 .quad sys_renameat
479 .quad sys_linkat
480 .quad sys_symlinkat
481 .quad sys_readlinkat /* 460 */
482 .quad sys_fchmodat
483 .quad sys_faccessat
484 .quad sys_pselect6
485 .quad sys_ppoll
486 .quad sys_unshare /* 465 */
487 .quad sys_set_robust_list
488 .quad sys_get_robust_list
489 .quad sys_splice
490 .quad sys_sync_file_range
491 .quad sys_tee /* 470 */
492 .quad sys_vmsplice
493 .quad sys_move_pages
494 .quad sys_getcpu
495 .quad sys_epoll_pwait
496 .quad sys_utimensat /* 475 */
497 .quad sys_signalfd
498 .quad sys_timerfd
499 .quad sys_eventfd
468 500
469 .size sys_call_table, . - sys_call_table 501 .size sys_call_table, . - sys_call_table
470 .type sys_call_table, @object 502 .type sys_call_table, @object
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S
index cf1e6fc6c686..449e76f118d3 100644
--- a/arch/alpha/kernel/vmlinux.lds.S
+++ b/arch/alpha/kernel/vmlinux.lds.S
@@ -15,7 +15,7 @@ SECTIONS
15 15
16 _text = .; /* Text and read-only data */ 16 _text = .; /* Text and read-only data */
17 .text : { 17 .text : {
18 *(.text) 18 TEXT_TEXT
19 SCHED_TEXT 19 SCHED_TEXT
20 LOCK_TEXT 20 LOCK_TEXT
21 *(.fixup) 21 *(.fixup)
@@ -89,7 +89,7 @@ SECTIONS
89 89
90 _data = .; 90 _data = .;
91 .data : { /* Data */ 91 .data : { /* Data */
92 *(.data) 92 DATA_DATA
93 CONSTRUCTORS 93 CONSTRUCTORS
94 } 94 }
95 95
diff --git a/arch/alpha/lib/Makefile b/arch/alpha/lib/Makefile
index ea098f3b629f..266f78e13076 100644
--- a/arch/alpha/lib/Makefile
+++ b/arch/alpha/lib/Makefile
@@ -37,7 +37,8 @@ lib-y = __divqu.o __remqu.o __divlu.o __remlu.o \
37 $(ev6-y)clear_page.o \ 37 $(ev6-y)clear_page.o \
38 $(ev6-y)copy_page.o \ 38 $(ev6-y)copy_page.o \
39 fpreg.o \ 39 fpreg.o \
40 callback_srm.o srm_puts.o srm_printk.o 40 callback_srm.o srm_puts.o srm_printk.o \
41 fls.o
41 42
42lib-$(CONFIG_SMP) += dec_and_lock.o 43lib-$(CONFIG_SMP) += dec_and_lock.o
43 44
diff --git a/arch/alpha/lib/fls.c b/arch/alpha/lib/fls.c
new file mode 100644
index 000000000000..7ad84ea0acf8
--- /dev/null
+++ b/arch/alpha/lib/fls.c
@@ -0,0 +1,38 @@
1/*
2 * arch/alpha/lib/fls.c
3 */
4
5#include <linux/module.h>
6#include <asm/bitops.h>
7
8/* This is fls(x)-1, except zero is held to zero. This allows most
9 efficent input into extbl, plus it allows easy handling of fls(0)=0. */
10
11const unsigned char __flsm1_tab[256] =
12{
13 0,
14 0,
15 1, 1,
16 2, 2, 2, 2,
17 3, 3, 3, 3, 3, 3, 3, 3,
18 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
19
20 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
21 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
22
23 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
24 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
25 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
26 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
27
28 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
29 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
30 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
31 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
32 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
33 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
34 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
35 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
36};
37
38EXPORT_SYMBOL(__flsm1_tab);
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e55bbd32dcac..50d9f3e4e0f1 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -287,6 +287,7 @@ config ARCH_IXP2000
287config ARCH_IXP4XX 287config ARCH_IXP4XX
288 bool "IXP4xx-based" 288 bool "IXP4xx-based"
289 depends on MMU 289 depends on MMU
290 select GENERIC_GPIO
290 select GENERIC_TIME 291 select GENERIC_TIME
291 select GENERIC_CLOCKEVENTS 292 select GENERIC_CLOCKEVENTS
292 help 293 help
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c
index 6fbe7722aa44..b36b1e8a105d 100644
--- a/arch/arm/common/dmabounce.c
+++ b/arch/arm/common/dmabounce.c
@@ -6,7 +6,7 @@
6 * copy data to/from buffers located outside the DMA region. This 6 * copy data to/from buffers located outside the DMA region. This
7 * only works for systems in which DMA memory is at the bottom of 7 * only works for systems in which DMA memory is at the bottom of
8 * RAM, the remainder of memory is at the top and the DMA memory 8 * RAM, the remainder of memory is at the top and the DMA memory
9 * can be marked as ZONE_DMA. Anything beyond that such as discontigous 9 * can be marked as ZONE_DMA. Anything beyond that such as discontiguous
10 * DMA windows will require custom implementations that reserve memory 10 * DMA windows will require custom implementations that reserve memory
11 * areas at early bootup. 11 * areas at early bootup.
12 * 12 *
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index 4deece5fbdf4..0c89bd35e06f 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -72,7 +72,7 @@ static inline unsigned int gic_irq(unsigned int irq)
72 * unmask it, in the same way we need to unmask an interrupt when 72 * unmask it, in the same way we need to unmask an interrupt when
73 * we first enable it. 73 * we first enable it.
74 * 74 *
75 * The GIC has a seperate notion of "end of interrupt" to re-enable 75 * The GIC has a separate notion of "end of interrupt" to re-enable
76 * an interrupt after handling, in order to support hardware 76 * an interrupt after handling, in order to support hardware
77 * prioritisation. 77 * prioritisation.
78 * 78 *
@@ -125,12 +125,11 @@ static void gic_set_cpu(unsigned int irq, cpumask_t mask_val)
125} 125}
126#endif 126#endif
127 127
128static void fastcall gic_handle_cascade_irq(unsigned int irq, 128static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
129 struct irq_desc *desc)
130{ 129{
131 struct gic_chip_data *chip_data = get_irq_data(irq); 130 struct gic_chip_data *chip_data = get_irq_data(irq);
132 struct irq_chip *chip = get_irq_chip(irq); 131 struct irq_chip *chip = get_irq_chip(irq);
133 unsigned int cascade_irq; 132 unsigned int cascade_irq, gic_irq;
134 unsigned long status; 133 unsigned long status;
135 134
136 /* primary controller ack'ing */ 135 /* primary controller ack'ing */
@@ -140,16 +139,15 @@ static void fastcall gic_handle_cascade_irq(unsigned int irq,
140 status = readl(chip_data->cpu_base + GIC_CPU_INTACK); 139 status = readl(chip_data->cpu_base + GIC_CPU_INTACK);
141 spin_unlock(&irq_controller_lock); 140 spin_unlock(&irq_controller_lock);
142 141
143 cascade_irq = (status & 0x3ff); 142 gic_irq = (status & 0x3ff);
144 if (cascade_irq > 1020) 143 if (gic_irq == 1023)
145 goto out; 144 goto out;
146 if (cascade_irq < 32 || cascade_irq >= NR_IRQS) {
147 do_bad_IRQ(cascade_irq, desc);
148 goto out;
149 }
150 145
151 cascade_irq += chip_data->irq_offset; 146 cascade_irq = gic_irq + chip_data->irq_offset;
152 generic_handle_irq(cascade_irq); 147 if (unlikely(gic_irq < 32 || gic_irq > 1020 || cascade_irq >= NR_IRQS))
148 do_bad_IRQ(cascade_irq, desc);
149 else
150 generic_handle_irq(cascade_irq);
153 151
154 out: 152 out:
155 /* primary controller unmasking */ 153 /* primary controller unmasking */
diff --git a/arch/arm/common/sharpsl_param.c b/arch/arm/common/sharpsl_param.c
index c94864c5b1af..aad4d94ba8f5 100644
--- a/arch/arm/common/sharpsl_param.c
+++ b/arch/arm/common/sharpsl_param.c
@@ -20,7 +20,7 @@
20 * typically including LCD parameters are loaded by the bootloader at the 20 * typically including LCD parameters are loaded by the bootloader at the
21 * address PARAM_BASE. As the kernel will overwrite them, we need to store 21 * address PARAM_BASE. As the kernel will overwrite them, we need to store
22 * them early in the boot process, then pass them to the appropriate drivers. 22 * them early in the boot process, then pass them to the appropriate drivers.
23 * Not all devices use all paramaters but the format is common to all. 23 * Not all devices use all parameters but the format is common to all.
24 */ 24 */
25#ifdef CONFIG_ARCH_SA1100 25#ifdef CONFIG_ARCH_SA1100
26#define PARAM_BASE 0xe8ffc000 26#define PARAM_BASE 0xe8ffc000
diff --git a/arch/arm/common/sharpsl_pm.c b/arch/arm/common/sharpsl_pm.c
index 5972df2b9af4..3bf3a927ae22 100644
--- a/arch/arm/common/sharpsl_pm.c
+++ b/arch/arm/common/sharpsl_pm.c
@@ -153,7 +153,7 @@ static void sharpsl_battery_thread(struct work_struct *private_)
153 sharpsl_pm.battstat.mainbat_percent = percent; 153 sharpsl_pm.battstat.mainbat_percent = percent;
154 } 154 }
155 155
156 dev_dbg(sharpsl_pm.dev, "Battery: voltage: %d, status: %d, percentage: %d, time: %d\n", voltage, 156 dev_dbg(sharpsl_pm.dev, "Battery: voltage: %d, status: %d, percentage: %d, time: %ld\n", voltage,
157 sharpsl_pm.battstat.mainbat_status, sharpsl_pm.battstat.mainbat_percent, jiffies); 157 sharpsl_pm.battstat.mainbat_status, sharpsl_pm.battstat.mainbat_percent, jiffies);
158 158
159 /* If battery is low. limit backlight intensity to save power. */ 159 /* If battery is low. limit backlight intensity to save power. */
@@ -291,7 +291,7 @@ static void sharpsl_chrg_full_timer(unsigned long data)
291} 291}
292 292
293/* Charging Finished Interrupt (Not present on Corgi) */ 293/* Charging Finished Interrupt (Not present on Corgi) */
294/* Can trigger at the same time as an AC staus change so 294/* Can trigger at the same time as an AC status change so
295 delay until after that has been processed */ 295 delay until after that has been processed */
296irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id) 296irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id)
297{ 297{
@@ -625,7 +625,7 @@ static int sharpsl_fatal_check(void)
625 } 625 }
626 626
627 temp = get_select_val(buff); 627 temp = get_select_val(buff);
628 dev_dbg(sharpsl_pm.dev, "sharpsl_fatal_check: acin: %d, discharge voltage: %d, no discharge: %d\n", acin, temp, sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT)); 628 dev_dbg(sharpsl_pm.dev, "sharpsl_fatal_check: acin: %d, discharge voltage: %d, no discharge: %ld\n", acin, temp, sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT));
629 629
630 if ((acin && (temp < sharpsl_pm.machinfo->fatal_acin_volt)) || 630 if ((acin && (temp < sharpsl_pm.machinfo->fatal_acin_volt)) ||
631 (!acin && (temp < sharpsl_pm.machinfo->fatal_noacin_volt))) 631 (!acin && (temp < sharpsl_pm.machinfo->fatal_noacin_volt)))
@@ -635,7 +635,7 @@ static int sharpsl_fatal_check(void)
635 635
636static int sharpsl_off_charge_error(void) 636static int sharpsl_off_charge_error(void)
637{ 637{
638 dev_err(sharpsl_pm.dev, "Offline Charger: Error occured.\n"); 638 dev_err(sharpsl_pm.dev, "Offline Charger: Error occurred.\n");
639 sharpsl_pm.machinfo->charge(0); 639 sharpsl_pm.machinfo->charge(0);
640 sharpsl_pm_led(SHARPSL_LED_ERROR); 640 sharpsl_pm_led(SHARPSL_LED_ERROR);
641 sharpsl_pm.charge_mode = CHRG_ERROR; 641 sharpsl_pm.charge_mode = CHRG_ERROR;
@@ -691,14 +691,14 @@ static int sharpsl_off_charge_battery(void)
691 691
692 time = RCNR; 692 time = RCNR;
693 while(1) { 693 while(1) {
694 /* Check if any wakeup event had occured */ 694 /* Check if any wakeup event had occurred */
695 if (sharpsl_pm.machinfo->charger_wakeup() != 0) 695 if (sharpsl_pm.machinfo->charger_wakeup() != 0)
696 return 0; 696 return 0;
697 /* Check for timeout */ 697 /* Check for timeout */
698 if ((RCNR - time) > SHARPSL_WAIT_CO_TIME) 698 if ((RCNR - time) > SHARPSL_WAIT_CO_TIME)
699 return 1; 699 return 1;
700 if (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_CHRGFULL)) { 700 if (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_CHRGFULL)) {
701 dev_dbg(sharpsl_pm.dev, "Offline Charger: Charge full occured. Retrying to check\n"); 701 dev_dbg(sharpsl_pm.dev, "Offline Charger: Charge full occurred. Retrying to check\n");
702 sharpsl_pm.full_count++; 702 sharpsl_pm.full_count++;
703 sharpsl_pm.machinfo->charge(0); 703 sharpsl_pm.machinfo->charge(0);
704 mdelay(SHARPSL_CHARGE_WAIT_TIME); 704 mdelay(SHARPSL_CHARGE_WAIT_TIME);
@@ -714,7 +714,7 @@ static int sharpsl_off_charge_battery(void)
714 714
715 time = RCNR; 715 time = RCNR;
716 while(1) { 716 while(1) {
717 /* Check if any wakeup event had occured */ 717 /* Check if any wakeup event had occurred */
718 if (sharpsl_pm.machinfo->charger_wakeup() != 0) 718 if (sharpsl_pm.machinfo->charger_wakeup() != 0)
719 return 0; 719 return 0;
720 /* Check for timeout */ 720 /* Check for timeout */
@@ -774,6 +774,8 @@ static struct pm_ops sharpsl_pm_ops = {
774 774
775static int __init sharpsl_pm_probe(struct platform_device *pdev) 775static int __init sharpsl_pm_probe(struct platform_device *pdev)
776{ 776{
777 int ret;
778
777 if (!pdev->dev.platform_data) 779 if (!pdev->dev.platform_data)
778 return -EINVAL; 780 return -EINVAL;
779 781
@@ -792,8 +794,10 @@ static int __init sharpsl_pm_probe(struct platform_device *pdev)
792 794
793 sharpsl_pm.machinfo->init(); 795 sharpsl_pm.machinfo->init();
794 796
795 device_create_file(&pdev->dev, &dev_attr_battery_percentage); 797 ret = device_create_file(&pdev->dev, &dev_attr_battery_percentage);
796 device_create_file(&pdev->dev, &dev_attr_battery_voltage); 798 ret |= device_create_file(&pdev->dev, &dev_attr_battery_voltage);
799 if (ret != 0)
800 dev_warn(&pdev->dev, "Failed to register attributes (%d)\n", ret);
797 801
798 apm_get_power_status = sharpsl_apm_get_power_status; 802 apm_get_power_status = sharpsl_apm_get_power_status;
799 803
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index 9179e8220314..f73d62e8ab60 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -57,7 +57,7 @@ extern void fp_enter(void);
57#define EXPORT_SYMBOL_ALIAS(sym,orig) \ 57#define EXPORT_SYMBOL_ALIAS(sym,orig) \
58 EXPORT_CRC_ALIAS(sym) \ 58 EXPORT_CRC_ALIAS(sym) \
59 static const struct kernel_symbol __ksymtab_##sym \ 59 static const struct kernel_symbol __ksymtab_##sym \
60 __attribute_used__ __attribute__((section("__ksymtab"))) = \ 60 __used __attribute__((section("__ksymtab"))) = \
61 { (unsigned long)&orig, #sym }; 61 { (unsigned long)&orig, #sym };
62 62
63/* 63/*
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c
index 3c078e346753..3278e713c32a 100644
--- a/arch/arm/kernel/asm-offsets.c
+++ b/arch/arm/kernel/asm-offsets.c
@@ -85,7 +85,7 @@ int main(void)
85 DEFINE(S_OLD_R0, offsetof(struct pt_regs, ARM_ORIG_r0)); 85 DEFINE(S_OLD_R0, offsetof(struct pt_regs, ARM_ORIG_r0));
86 DEFINE(S_FRAME_SIZE, sizeof(struct pt_regs)); 86 DEFINE(S_FRAME_SIZE, sizeof(struct pt_regs));
87 BLANK(); 87 BLANK();
88#if __LINUX_ARM_ARCH__ >= 6 88#ifdef CONFIG_CPU_HAS_ASID
89 DEFINE(MM_CONTEXT_ID, offsetof(struct mm_struct, context.id)); 89 DEFINE(MM_CONTEXT_ID, offsetof(struct mm_struct, context.id));
90 BLANK(); 90 BLANK();
91#endif 91#endif
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index ae89cdd82b16..19326d7cdeb3 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -357,6 +357,10 @@
357/* 345 */ CALL(sys_getcpu) 357/* 345 */ CALL(sys_getcpu)
358 CALL(sys_ni_syscall) /* eventually epoll_pwait */ 358 CALL(sys_ni_syscall) /* eventually epoll_pwait */
359 CALL(sys_kexec_load) 359 CALL(sys_kexec_load)
360 CALL(sys_utimensat)
361 CALL(sys_signalfd)
362/* 350 */ CALL(sys_timerfd)
363 CALL(sys_eventfd)
360#ifndef syscalls_counted 364#ifndef syscalls_counted
361.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls 365.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
362#define syscalls_counted 366#define syscalls_counted
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 0453dcc757b4..650eac1bc0a6 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -918,7 +918,7 @@ static int c_show(struct seq_file *m, void *v)
918 918
919 if ((processor_id & 0x0008f000) == 0x00000000) { 919 if ((processor_id & 0x0008f000) == 0x00000000) {
920 /* pre-ARM7 */ 920 /* pre-ARM7 */
921 seq_printf(m, "CPU part\t\t: %07x\n", processor_id >> 4); 921 seq_printf(m, "CPU part\t: %07x\n", processor_id >> 4);
922 } else { 922 } else {
923 if ((processor_id & 0x0008f000) == 0x00007000) { 923 if ((processor_id & 0x0008f000) == 0x00007000) {
924 /* ARM7 */ 924 /* ARM7 */
diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c
index 8b63ad89d0a8..ae31deb2d065 100644
--- a/arch/arm/kernel/stacktrace.c
+++ b/arch/arm/kernel/stacktrace.c
@@ -13,7 +13,7 @@ int walk_stackframe(unsigned long fp, unsigned long low, unsigned long high,
13 /* 13 /*
14 * Check current frame pointer is within bounds 14 * Check current frame pointer is within bounds
15 */ 15 */
16 if ((fp - 12) < low || fp + 4 >= high) 16 if (fp < (low + 12) || fp + 4 >= high)
17 break; 17 break;
18 18
19 frame = (struct stackframe *)(fp - 12); 19 frame = (struct stackframe *)(fp - 12);
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c
index 3d4fcbc16276..1ca2d5174fcb 100644
--- a/arch/arm/kernel/sys_arm.c
+++ b/arch/arm/kernel/sys_arm.c
@@ -320,7 +320,7 @@ int kernel_execve(const char *filename, char *const argv[], char *const envp[])
320EXPORT_SYMBOL(kernel_execve); 320EXPORT_SYMBOL(kernel_execve);
321 321
322/* 322/*
323 * Since loff_t is a 64 bit type we avoid a lot of ABI hastle 323 * Since loff_t is a 64 bit type we avoid a lot of ABI hassle
324 * with a different argument ordering. 324 * with a different argument ordering.
325 */ 325 */
326asmlinkage long sys_arm_fadvise64_64(int fd, int advice, 326asmlinkage long sys_arm_fadvise64_64(int fd, int advice,
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index e4156e7868ce..2b7a8f5d8cf2 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -90,7 +90,7 @@ SECTIONS
90 __exception_text_start = .; 90 __exception_text_start = .;
91 *(.exception.text) 91 *(.exception.text)
92 __exception_text_end = .; 92 __exception_text_end = .;
93 *(.text) 93 TEXT_TEXT
94 SCHED_TEXT 94 SCHED_TEXT
95 LOCK_TEXT 95 LOCK_TEXT
96#ifdef CONFIG_MMU 96#ifdef CONFIG_MMU
@@ -158,7 +158,7 @@ SECTIONS
158 /* 158 /*
159 * and the usual data section 159 * and the usual data section
160 */ 160 */
161 *(.data) 161 DATA_DATA
162 CONSTRUCTORS 162 CONSTRUCTORS
163 163
164 _edata = .; 164 _edata = .;
diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h
index 542251021744..2e787d40d599 100644
--- a/arch/arm/lib/bitops.h
+++ b/arch/arm/lib/bitops.h
@@ -47,7 +47,7 @@
47 * @store: store instruction 47 * @store: store instruction
48 * 48 *
49 * Note: we can trivially conditionalise the store instruction 49 * Note: we can trivially conditionalise the store instruction
50 * to avoid dirting the data cache. 50 * to avoid dirtying the data cache.
51 */ 51 */
52 .macro testop, instr, store 52 .macro testop, instr, store
53 add r1, r1, r0, lsr #3 53 add r1, r1, r0, lsr #3
diff --git a/arch/arm/mach-at91/board-carmeva.c b/arch/arm/mach-at91/board-carmeva.c
index b4518619063a..76ec856cd4f9 100644
--- a/arch/arm/mach-at91/board-carmeva.c
+++ b/arch/arm/mach-at91/board-carmeva.c
@@ -79,7 +79,7 @@ static struct at91_udc_data __initdata carmeva_udc_data = {
79 .pullup_pin = AT91_PIN_PD9, 79 .pullup_pin = AT91_PIN_PD9,
80}; 80};
81 81
82/* FIXME: user dependend */ 82/* FIXME: user dependant */
83// static struct at91_cf_data __initdata carmeva_cf_data = { 83// static struct at91_cf_data __initdata carmeva_cf_data = {
84// .det_pin = AT91_PIN_PB0, 84// .det_pin = AT91_PIN_PB0,
85// .rst_pin = AT91_PIN_PC5, 85// .rst_pin = AT91_PIN_PC5,
@@ -100,17 +100,17 @@ static struct spi_board_info carmeva_spi_devices[] = {
100 .chip_select = 0, 100 .chip_select = 0,
101 .max_speed_hz = 10 * 1000 * 1000, 101 .max_speed_hz = 10 * 1000 * 1000,
102 }, 102 },
103 { /* User accessable spi - cs1 (250KHz) */ 103 { /* User accessible spi - cs1 (250KHz) */
104 .modalias = "spi-cs1", 104 .modalias = "spi-cs1",
105 .chip_select = 1, 105 .chip_select = 1,
106 .max_speed_hz = 250 * 1000, 106 .max_speed_hz = 250 * 1000,
107 }, 107 },
108 { /* User accessable spi - cs2 (1MHz) */ 108 { /* User accessible spi - cs2 (1MHz) */
109 .modalias = "spi-cs2", 109 .modalias = "spi-cs2",
110 .chip_select = 2, 110 .chip_select = 2,
111 .max_speed_hz = 1 * 1000 * 1000, 111 .max_speed_hz = 1 * 1000 * 1000,
112 }, 112 },
113 { /* User accessable spi - cs3 (10MHz) */ 113 { /* User accessible spi - cs3 (10MHz) */
114 .modalias = "spi-cs3", 114 .modalias = "spi-cs3",
115 .chip_select = 3, 115 .chip_select = 3,
116 .max_speed_hz = 10 * 1000 * 1000, 116 .max_speed_hz = 10 * 1000 * 1000,
diff --git a/arch/arm/mach-at91/board-dk.c b/arch/arm/mach-at91/board-dk.c
index 6043c38c0a9e..af497896a96c 100644
--- a/arch/arm/mach-at91/board-dk.c
+++ b/arch/arm/mach-at91/board-dk.c
@@ -132,7 +132,7 @@ static struct mtd_partition __initdata dk_nand_partition[] = {
132 }, 132 },
133}; 133};
134 134
135static struct mtd_partition *nand_partitions(int size, int *num_partitions) 135static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
136{ 136{
137 *num_partitions = ARRAY_SIZE(dk_nand_partition); 137 *num_partitions = ARRAY_SIZE(dk_nand_partition);
138 return dk_nand_partition; 138 return dk_nand_partition;
diff --git a/arch/arm/mach-at91/board-kb9202.c b/arch/arm/mach-at91/board-kb9202.c
index 76f6e1e553ea..7d9b1a278fd6 100644
--- a/arch/arm/mach-at91/board-kb9202.c
+++ b/arch/arm/mach-at91/board-kb9202.c
@@ -96,7 +96,7 @@ static struct mtd_partition __initdata kb9202_nand_partition[] = {
96 }, 96 },
97}; 97};
98 98
99static struct mtd_partition *nand_partitions(int size, int *num_partitions) 99static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
100{ 100{
101 *num_partitions = ARRAY_SIZE(kb9202_nand_partition); 101 *num_partitions = ARRAY_SIZE(kb9202_nand_partition);
102 return kb9202_nand_partition; 102 return kb9202_nand_partition;
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
index 1f0c8a400b3a..26ca8ab3f62a 100644
--- a/arch/arm/mach-at91/board-sam9261ek.c
+++ b/arch/arm/mach-at91/board-sam9261ek.c
@@ -178,7 +178,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
178 }, 178 },
179}; 179};
180 180
181static struct mtd_partition *nand_partitions(int size, int *num_partitions) 181static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
182{ 182{
183 *num_partitions = ARRAY_SIZE(ek_nand_partition); 183 *num_partitions = ARRAY_SIZE(ek_nand_partition);
184 return ek_nand_partition; 184 return ek_nand_partition;
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
index f57458559fb6..c164c8e58ae6 100644
--- a/arch/arm/mach-at91/board-sam9263ek.c
+++ b/arch/arm/mach-at91/board-sam9263ek.c
@@ -180,7 +180,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
180 }, 180 },
181}; 181};
182 182
183static struct mtd_partition *nand_partitions(int size, int *num_partitions) 183static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
184{ 184{
185 *num_partitions = ARRAY_SIZE(ek_nand_partition); 185 *num_partitions = ARRAY_SIZE(ek_nand_partition);
186 return ek_nand_partition; 186 return ek_nand_partition;
diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
index 30c79aca84d4..9b61320f295a 100644
--- a/arch/arm/mach-at91/board-sam9rlek.c
+++ b/arch/arm/mach-at91/board-sam9rlek.c
@@ -87,7 +87,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
87 }, 87 },
88}; 88};
89 89
90static struct mtd_partition *nand_partitions(int size, int *num_partitions) 90static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
91{ 91{
92 *num_partitions = ARRAY_SIZE(ek_nand_partition); 92 *num_partitions = ARRAY_SIZE(ek_nand_partition);
93 return ek_nand_partition; 93 return ek_nand_partition;
diff --git a/arch/arm/mach-footbridge/cats-pci.c b/arch/arm/mach-footbridge/cats-pci.c
index 4f984fde7375..35eb232a649a 100644
--- a/arch/arm/mach-footbridge/cats-pci.c
+++ b/arch/arm/mach-footbridge/cats-pci.c
@@ -45,7 +45,7 @@ static struct hw_pci cats_pci __initdata = {
45 .postinit = dc21285_postinit, 45 .postinit = dc21285_postinit,
46}; 46};
47 47
48static int cats_pci_init(void) 48static int __init cats_pci_init(void)
49{ 49{
50 if (machine_is_cats()) 50 if (machine_is_cats())
51 pci_common_init(&cats_pci); 51 pci_common_init(&cats_pci);
diff --git a/arch/arm/mach-h720x/cpu-h7202.c b/arch/arm/mach-h720x/cpu-h7202.c
index 82e420d6fd19..0a1a25fb8ba8 100644
--- a/arch/arm/mach-h720x/cpu-h7202.c
+++ b/arch/arm/mach-h720x/cpu-h7202.c
@@ -143,7 +143,7 @@ h7202_timer_interrupt(int irq, void *dev_id)
143} 143}
144 144
145/* 145/*
146 * mask multiplexed timer irq's 146 * mask multiplexed timer IRQs
147 */ 147 */
148static void inline mask_timerx_irq (u32 irq) 148static void inline mask_timerx_irq (u32 irq)
149{ 149{
@@ -153,7 +153,7 @@ static void inline mask_timerx_irq (u32 irq)
153} 153}
154 154
155/* 155/*
156 * unmask multiplexed timer irq's 156 * unmask multiplexed timer IRQs
157 */ 157 */
158static void inline unmask_timerx_irq (u32 irq) 158static void inline unmask_timerx_irq (u32 irq)
159{ 159{
diff --git a/arch/arm/mach-imx/cpufreq.c b/arch/arm/mach-imx/cpufreq.c
index 7e70e0b0b989..467d899fbe75 100644
--- a/arch/arm/mach-imx/cpufreq.c
+++ b/arch/arm/mach-imx/cpufreq.c
@@ -245,7 +245,7 @@ static int imx_set_target(struct cpufreq_policy *policy,
245 if(mpctl0) { 245 if(mpctl0) {
246 CSCR |= CSCR_MPLL_RESTART; 246 CSCR |= CSCR_MPLL_RESTART;
247 247
248 /* Wait until MPLL is stablized */ 248 /* Wait until MPLL is stabilized */
249 while( CSCR & CSCR_MPLL_RESTART ); 249 while( CSCR & CSCR_MPLL_RESTART );
250 250
251 imx_set_async_mode(); 251 imx_set_async_mode();
diff --git a/arch/arm/mach-imx/dma.c b/arch/arm/mach-imx/dma.c
index 6d50d85a618c..bc6fb02d213b 100644
--- a/arch/arm/mach-imx/dma.c
+++ b/arch/arm/mach-imx/dma.c
@@ -131,7 +131,7 @@ imx_dma_setup_sg_base(imx_dmach_t dma_ch,
131 * The function setups DMA channel source and destination addresses for transfer 131 * The function setups DMA channel source and destination addresses for transfer
132 * specified by provided parameters. The scatter-gather emulation is disabled, 132 * specified by provided parameters. The scatter-gather emulation is disabled,
133 * because linear data block 133 * because linear data block
134 * form the physical address range is transfered. 134 * form the physical address range is transferred.
135 * Return value: if incorrect parameters are provided -%EINVAL. 135 * Return value: if incorrect parameters are provided -%EINVAL.
136 * Zero indicates success. 136 * Zero indicates success.
137 */ 137 */
@@ -192,7 +192,7 @@ imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address,
192 * @dmamode: DMA transfer mode, %DMA_MODE_READ from the device to the memory 192 * @dmamode: DMA transfer mode, %DMA_MODE_READ from the device to the memory
193 * or %DMA_MODE_WRITE from memory to the device 193 * or %DMA_MODE_WRITE from memory to the device
194 * 194 *
195 * The function setups DMA channel state and registers to be ready for transfer 195 * The function sets up DMA channel state and registers to be ready for transfer
196 * specified by provided parameters. The scatter-gather emulation is set up 196 * specified by provided parameters. The scatter-gather emulation is set up
197 * according to the parameters. 197 * according to the parameters.
198 * 198 *
@@ -212,7 +212,7 @@ imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address,
212 * 212 *
213 * %CCR_SMOD_LINEAR | %CCR_SSIZ_32 | %CCR_DMOD_FIFO | %CCR_DSIZ_x 213 * %CCR_SMOD_LINEAR | %CCR_SSIZ_32 | %CCR_DMOD_FIFO | %CCR_DSIZ_x
214 * 214 *
215 * Be carefull there and do not mistakenly mix source and target device 215 * Be careful here and do not mistakenly mix source and target device
216 * port sizes constants, they are really different: 216 * port sizes constants, they are really different:
217 * %CCR_SSIZ_8, %CCR_SSIZ_16, %CCR_SSIZ_32, 217 * %CCR_SSIZ_8, %CCR_SSIZ_16, %CCR_SSIZ_32,
218 * %CCR_DSIZ_8, %CCR_DSIZ_16, %CCR_DSIZ_32 218 * %CCR_DSIZ_8, %CCR_DSIZ_16, %CCR_DSIZ_32
@@ -495,7 +495,7 @@ static irqreturn_t dma_err_handler(int irq, void *dev_id)
495 /* 495 /*
496 * The cleaning of @sg field would be questionable 496 * The cleaning of @sg field would be questionable
497 * there, because its value can help to compute 497 * there, because its value can help to compute
498 * remaining/transfered bytes count in the handler 498 * remaining/transferred bytes count in the handler
499 */ 499 */
500 /*imx_dma_channels[i].sg = NULL;*/ 500 /*imx_dma_channels[i].sg = NULL;*/
501 501
diff --git a/arch/arm/mach-imx/generic.c b/arch/arm/mach-imx/generic.c
index 7a7fa51ec62c..1c474cf709ca 100644
--- a/arch/arm/mach-imx/generic.c
+++ b/arch/arm/mach-imx/generic.c
@@ -201,7 +201,6 @@ void __init imx_set_mmc_info(struct imxmmc_platform_data *info)
201{ 201{
202 imx_mmc_device.dev.platform_data = info; 202 imx_mmc_device.dev.platform_data = info;
203} 203}
204EXPORT_SYMBOL(imx_set_mmc_info);
205 204
206static struct imxfb_mach_info imx_fb_info; 205static struct imxfb_mach_info imx_fb_info;
207 206
diff --git a/arch/arm/mach-integrator/Makefile b/arch/arm/mach-integrator/Makefile
index ebb255bdce8a..158daaf9e3b0 100644
--- a/arch/arm/mach-integrator/Makefile
+++ b/arch/arm/mach-integrator/Makefile
@@ -12,4 +12,3 @@ obj-$(CONFIG_LEDS) += leds.o
12obj-$(CONFIG_PCI) += pci_v3.o pci.o 12obj-$(CONFIG_PCI) += pci_v3.o pci.o
13obj-$(CONFIG_CPU_FREQ_INTEGRATOR) += cpu.o 13obj-$(CONFIG_CPU_FREQ_INTEGRATOR) += cpu.o
14obj-$(CONFIG_INTEGRATOR_IMPD1) += impd1.o 14obj-$(CONFIG_INTEGRATOR_IMPD1) += impd1.o
15obj-$(CONFIG_SMP) += platsmp.o headsmp.o
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
index 897c21c2fb5b..e9c82deb791d 100644
--- a/arch/arm/mach-integrator/core.c
+++ b/arch/arm/mach-integrator/core.c
@@ -257,23 +257,7 @@ integrator_timer_interrupt(int irq, void *dev_id)
257 */ 257 */
258 writel(1, TIMER1_VA_BASE + TIMER_INTCLR); 258 writel(1, TIMER1_VA_BASE + TIMER_INTCLR);
259 259
260 /* 260 timer_tick();
261 * the clock tick routines are only processed on the
262 * primary CPU
263 */
264 if (hard_smp_processor_id() == 0) {
265 timer_tick();
266#ifdef CONFIG_SMP
267 smp_send_timer();
268#endif
269 }
270
271#ifdef CONFIG_SMP
272 /*
273 * this is the ARM equivalent of the APIC timer interrupt
274 */
275 update_process_times(user_mode(get_irq_regs()));
276#endif /* CONFIG_SMP */
277 261
278 write_sequnlock(&xtime_lock); 262 write_sequnlock(&xtime_lock);
279 263
diff --git a/arch/arm/mach-integrator/headsmp.S b/arch/arm/mach-integrator/headsmp.S
deleted file mode 100644
index ceaa88e30d70..000000000000
--- a/arch/arm/mach-integrator/headsmp.S
+++ /dev/null
@@ -1,37 +0,0 @@
1/*
2 * linux/arch/arm/mach-integrator/headsmp.S
3 *
4 * Copyright (c) 2003 ARM Limited
5 * All Rights Reserved
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11#include <linux/linkage.h>
12#include <linux/init.h>
13
14 __INIT
15
16/*
17 * Integrator specific entry point for secondary CPUs. This provides
18 * a "holding pen" into which all secondary cores are held until we're
19 * ready for them to initialise.
20 */
21ENTRY(integrator_secondary_startup)
22 adr r4, 1f
23 ldmia r4, {r5, r6}
24 sub r4, r4, r5
25 ldr r6, [r6, r4]
26pen: ldr r7, [r6]
27 cmp r7, r0
28 bne pen
29
30 /*
31 * we've been released from the holding pen: secondary_stack
32 * should now contain the SVC stack for this core
33 */
34 b secondary_startup
35
361: .long .
37 .long phys_pen_release
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c
index af9ebccac7c1..d4d8134ce567 100644
--- a/arch/arm/mach-integrator/pci_v3.c
+++ b/arch/arm/mach-integrator/pci_v3.c
@@ -33,6 +33,7 @@
33#include <asm/irq.h> 33#include <asm/irq.h>
34#include <asm/system.h> 34#include <asm/system.h>
35#include <asm/mach/pci.h> 35#include <asm/mach/pci.h>
36#include <asm/irq_regs.h>
36 37
37#include <asm/hardware/pci_v3.h> 38#include <asm/hardware/pci_v3.h>
38 39
diff --git a/arch/arm/mach-integrator/platsmp.c b/arch/arm/mach-integrator/platsmp.c
deleted file mode 100644
index 613b841a10f3..000000000000
--- a/arch/arm/mach-integrator/platsmp.c
+++ /dev/null
@@ -1,204 +0,0 @@
1/*
2 * linux/arch/arm/mach-cintegrator/platsmp.c
3 *
4 * Copyright (C) 2002 ARM Ltd.
5 * All Rights Reserved
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11#include <linux/init.h>
12#include <linux/kernel.h>
13#include <linux/sched.h>
14#include <linux/errno.h>
15#include <linux/mm.h>
16
17#include <asm/atomic.h>
18#include <asm/cacheflush.h>
19#include <asm/delay.h>
20#include <asm/mmu_context.h>
21#include <asm/ptrace.h>
22#include <asm/smp.h>
23
24extern void integrator_secondary_startup(void);
25
26/*
27 * control for which core is the next to come out of the secondary
28 * boot "holding pen"
29 */
30volatile int __cpuinitdata pen_release = -1;
31unsigned long __cpuinitdata phys_pen_release = 0;
32
33static DEFINE_SPINLOCK(boot_lock);
34
35void __cpuinit platform_secondary_init(unsigned int cpu)
36{
37 /*
38 * the primary core may have used a "cross call" soft interrupt
39 * to get this processor out of WFI in the BootMonitor - make
40 * sure that we are no longer being sent this soft interrupt
41 */
42 smp_cross_call_done(cpumask_of_cpu(cpu));
43
44 /*
45 * if any interrupts are already enabled for the primary
46 * core (e.g. timer irq), then they will not have been enabled
47 * for us: do so
48 */
49 secondary_scan_irqs();
50
51 /*
52 * let the primary processor know we're out of the
53 * pen, then head off into the C entry point
54 */
55 pen_release = -1;
56
57 /*
58 * Synchronise with the boot thread.
59 */
60 spin_lock(&boot_lock);
61 spin_unlock(&boot_lock);
62}
63
64int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
65{
66 unsigned long timeout;
67
68 /*
69 * set synchronisation state between this boot processor
70 * and the secondary one
71 */
72 spin_lock(&boot_lock);
73
74 /*
75 * The secondary processor is waiting to be released from
76 * the holding pen - release it, then wait for it to flag
77 * that it has been released by resetting pen_release.
78 *
79 * Note that "pen_release" is the hardware CPU ID, whereas
80 * "cpu" is Linux's internal ID.
81 */
82 pen_release = cpu;
83 flush_cache_all();
84
85 /*
86 * XXX
87 *
88 * This is a later addition to the booting protocol: the
89 * bootMonitor now puts secondary cores into WFI, so
90 * poke_milo() no longer gets the cores moving; we need
91 * to send a soft interrupt to wake the secondary core.
92 * Use smp_cross_call() for this, since there's little
93 * point duplicating the code here
94 */
95 smp_cross_call(cpumask_of_cpu(cpu));
96
97 timeout = jiffies + (1 * HZ);
98 while (time_before(jiffies, timeout)) {
99 if (pen_release == -1)
100 break;
101
102 udelay(10);
103 }
104
105 /*
106 * now the secondary core is starting up let it run its
107 * calibrations, then wait for it to finish
108 */
109 spin_unlock(&boot_lock);
110
111 return pen_release != -1 ? -ENOSYS : 0;
112}
113
114static void __init poke_milo(void)
115{
116 extern void secondary_startup(void);
117
118 /* nobody is to be released from the pen yet */
119 pen_release = -1;
120
121 phys_pen_release = virt_to_phys(&pen_release);
122
123 /*
124 * write the address of secondary startup into the system-wide
125 * flags register, then clear the bottom two bits, which is what
126 * BootMonitor is waiting for
127 */
128#if 1
129#define CINTEGRATOR_HDR_FLAGSS_OFFSET 0x30
130 __raw_writel(virt_to_phys(integrator_secondary_startup),
131 (IO_ADDRESS(INTEGRATOR_HDR_BASE) +
132 CINTEGRATOR_HDR_FLAGSS_OFFSET));
133#define CINTEGRATOR_HDR_FLAGSC_OFFSET 0x34
134 __raw_writel(3,
135 (IO_ADDRESS(INTEGRATOR_HDR_BASE) +
136 CINTEGRATOR_HDR_FLAGSC_OFFSET));
137#endif
138
139 mb();
140}
141
142/*
143 * Initialise the CPU possible map early - this describes the CPUs
144 * which may be present or become present in the system.
145 */
146void __init smp_init_cpus(void)
147{
148 unsigned int i, ncores = get_core_count();
149
150 for (i = 0; i < ncores; i++)
151 cpu_set(i, cpu_possible_map);
152}
153
154void __init smp_prepare_cpus(unsigned int max_cpus)
155{
156 unsigned int ncores = get_core_count();
157 unsigned int cpu = smp_processor_id();
158 int i;
159
160 /* sanity check */
161 if (ncores == 0) {
162 printk(KERN_ERR
163 "Integrator/CP: strange CM count of 0? Default to 1\n");
164
165 ncores = 1;
166 }
167
168 if (ncores > NR_CPUS) {
169 printk(KERN_WARNING
170 "Integrator/CP: no. of cores (%d) greater than configured "
171 "maximum of %d - clipping\n",
172 ncores, NR_CPUS);
173 ncores = NR_CPUS;
174 }
175
176 /*
177 * start with some more config for the Boot CPU, now that
178 * the world is a bit more alive (which was not the case
179 * when smp_prepare_boot_cpu() was called)
180 */
181 smp_store_cpu_info(cpu);
182
183 /*
184 * are we trying to boot more cores than exist?
185 */
186 if (max_cpus > ncores)
187 max_cpus = ncores;
188
189 /*
190 * Initialise the present map, which describes the set of CPUs
191 * actually populated at the present time.
192 */
193 for (i = 0; i < max_cpus; i++)
194 cpu_set(i, cpu_present_map);
195
196 /*
197 * Do we need any more CPUs? If so, then let them know where
198 * to start. Note that, on modern versions of MILO, the "poke"
199 * doesn't actually do anything until each individual core is
200 * sent a soft interrupt to get it out of WFI
201 */
202 if (max_cpus > 1)
203 poke_milo();
204}
diff --git a/arch/arm/mach-iop13xx/irq.c b/arch/arm/mach-iop13xx/irq.c
index 5791addd436b..69f07b25b3c9 100644
--- a/arch/arm/mach-iop13xx/irq.c
+++ b/arch/arm/mach-iop13xx/irq.c
@@ -30,77 +30,65 @@
30 30
31/* INTCTL0 CP6 R0 Page 4 31/* INTCTL0 CP6 R0 Page 4
32 */ 32 */
33static inline u32 read_intctl_0(void) 33static u32 read_intctl_0(void)
34{ 34{
35 u32 val; 35 u32 val;
36 asm volatile("mrc p6, 0, %0, c0, c4, 0":"=r" (val)); 36 asm volatile("mrc p6, 0, %0, c0, c4, 0":"=r" (val));
37 return val; 37 return val;
38} 38}
39static inline void write_intctl_0(u32 val) 39static void write_intctl_0(u32 val)
40{ 40{
41 asm volatile("mcr p6, 0, %0, c0, c4, 0"::"r" (val)); 41 asm volatile("mcr p6, 0, %0, c0, c4, 0"::"r" (val));
42} 42}
43 43
44/* INTCTL1 CP6 R1 Page 4 44/* INTCTL1 CP6 R1 Page 4
45 */ 45 */
46static inline u32 read_intctl_1(void) 46static u32 read_intctl_1(void)
47{ 47{
48 u32 val; 48 u32 val;
49 asm volatile("mrc p6, 0, %0, c1, c4, 0":"=r" (val)); 49 asm volatile("mrc p6, 0, %0, c1, c4, 0":"=r" (val));
50 return val; 50 return val;
51} 51}
52static inline void write_intctl_1(u32 val) 52static void write_intctl_1(u32 val)
53{ 53{
54 asm volatile("mcr p6, 0, %0, c1, c4, 0"::"r" (val)); 54 asm volatile("mcr p6, 0, %0, c1, c4, 0"::"r" (val));
55} 55}
56 56
57/* INTCTL2 CP6 R2 Page 4 57/* INTCTL2 CP6 R2 Page 4
58 */ 58 */
59static inline u32 read_intctl_2(void) 59static u32 read_intctl_2(void)
60{ 60{
61 u32 val; 61 u32 val;
62 asm volatile("mrc p6, 0, %0, c2, c4, 0":"=r" (val)); 62 asm volatile("mrc p6, 0, %0, c2, c4, 0":"=r" (val));
63 return val; 63 return val;
64} 64}
65static inline void write_intctl_2(u32 val) 65static void write_intctl_2(u32 val)
66{ 66{
67 asm volatile("mcr p6, 0, %0, c2, c4, 0"::"r" (val)); 67 asm volatile("mcr p6, 0, %0, c2, c4, 0"::"r" (val));
68} 68}
69 69
70/* INTCTL3 CP6 R3 Page 4 70/* INTCTL3 CP6 R3 Page 4
71 */ 71 */
72static inline u32 read_intctl_3(void) 72static u32 read_intctl_3(void)
73{ 73{
74 u32 val; 74 u32 val;
75 asm volatile("mrc p6, 0, %0, c3, c4, 0":"=r" (val)); 75 asm volatile("mrc p6, 0, %0, c3, c4, 0":"=r" (val));
76 return val; 76 return val;
77} 77}
78static inline void write_intctl_3(u32 val) 78static void write_intctl_3(u32 val)
79{ 79{
80 asm volatile("mcr p6, 0, %0, c3, c4, 0"::"r" (val)); 80 asm volatile("mcr p6, 0, %0, c3, c4, 0"::"r" (val));
81} 81}
82 82
83/* INTSTR0 CP6 R0 Page 5 83/* INTSTR0 CP6 R0 Page 5
84 */ 84 */
85static inline u32 read_intstr_0(void) 85static void write_intstr_0(u32 val)
86{
87 u32 val;
88 asm volatile("mrc p6, 0, %0, c0, c5, 0":"=r" (val));
89 return val;
90}
91static inline void write_intstr_0(u32 val)
92{ 86{
93 asm volatile("mcr p6, 0, %0, c0, c5, 0"::"r" (val)); 87 asm volatile("mcr p6, 0, %0, c0, c5, 0"::"r" (val));
94} 88}
95 89
96/* INTSTR1 CP6 R1 Page 5 90/* INTSTR1 CP6 R1 Page 5
97 */ 91 */
98static inline u32 read_intstr_1(void)
99{
100 u32 val;
101 asm volatile("mrc p6, 0, %0, c1, c5, 0":"=r" (val));
102 return val;
103}
104static void write_intstr_1(u32 val) 92static void write_intstr_1(u32 val)
105{ 93{
106 asm volatile("mcr p6, 0, %0, c1, c5, 0"::"r" (val)); 94 asm volatile("mcr p6, 0, %0, c1, c5, 0"::"r" (val));
@@ -108,12 +96,6 @@ static void write_intstr_1(u32 val)
108 96
109/* INTSTR2 CP6 R2 Page 5 97/* INTSTR2 CP6 R2 Page 5
110 */ 98 */
111static inline u32 read_intstr_2(void)
112{
113 u32 val;
114 asm volatile("mrc p6, 0, %0, c2, c5, 0":"=r" (val));
115 return val;
116}
117static void write_intstr_2(u32 val) 99static void write_intstr_2(u32 val)
118{ 100{
119 asm volatile("mcr p6, 0, %0, c2, c5, 0"::"r" (val)); 101 asm volatile("mcr p6, 0, %0, c2, c5, 0"::"r" (val));
@@ -121,12 +103,6 @@ static void write_intstr_2(u32 val)
121 103
122/* INTSTR3 CP6 R3 Page 5 104/* INTSTR3 CP6 R3 Page 5
123 */ 105 */
124static inline u32 read_intstr_3(void)
125{
126 u32 val;
127 asm volatile("mrc p6, 0, %0, c3, c5, 0":"=r" (val));
128 return val;
129}
130static void write_intstr_3(u32 val) 106static void write_intstr_3(u32 val)
131{ 107{
132 asm volatile("mcr p6, 0, %0, c3, c5, 0"::"r" (val)); 108 asm volatile("mcr p6, 0, %0, c3, c5, 0"::"r" (val));
@@ -134,12 +110,6 @@ static void write_intstr_3(u32 val)
134 110
135/* INTBASE CP6 R0 Page 2 111/* INTBASE CP6 R0 Page 2
136 */ 112 */
137static inline u32 read_intbase(void)
138{
139 u32 val;
140 asm volatile("mrc p6, 0, %0, c0, c2, 0":"=r" (val));
141 return val;
142}
143static void write_intbase(u32 val) 113static void write_intbase(u32 val)
144{ 114{
145 asm volatile("mcr p6, 0, %0, c0, c2, 0"::"r" (val)); 115 asm volatile("mcr p6, 0, %0, c0, c2, 0"::"r" (val));
@@ -147,12 +117,6 @@ static void write_intbase(u32 val)
147 117
148/* INTSIZE CP6 R2 Page 2 118/* INTSIZE CP6 R2 Page 2
149 */ 119 */
150static inline u32 read_intsize(void)
151{
152 u32 val;
153 asm volatile("mrc p6, 0, %0, c2, c2, 0":"=r" (val));
154 return val;
155}
156static void write_intsize(u32 val) 120static void write_intsize(u32 val)
157{ 121{
158 asm volatile("mcr p6, 0, %0, c2, c2, 0"::"r" (val)); 122 asm volatile("mcr p6, 0, %0, c2, c2, 0"::"r" (val));
diff --git a/arch/arm/mach-iop13xx/msi.c b/arch/arm/mach-iop13xx/msi.c
index 2d2369302220..63ef1124ca5c 100644
--- a/arch/arm/mach-iop13xx/msi.c
+++ b/arch/arm/mach-iop13xx/msi.c
@@ -30,52 +30,52 @@ static DECLARE_BITMAP(msi_irq_in_use, IOP13XX_NUM_MSI_IRQS);
30 30
31/* IMIPR0 CP6 R8 Page 1 31/* IMIPR0 CP6 R8 Page 1
32 */ 32 */
33static inline u32 read_imipr_0(void) 33static u32 read_imipr_0(void)
34{ 34{
35 u32 val; 35 u32 val;
36 asm volatile("mrc p6, 0, %0, c8, c1, 0":"=r" (val)); 36 asm volatile("mrc p6, 0, %0, c8, c1, 0":"=r" (val));
37 return val; 37 return val;
38} 38}
39static inline void write_imipr_0(u32 val) 39static void write_imipr_0(u32 val)
40{ 40{
41 asm volatile("mcr p6, 0, %0, c8, c1, 0"::"r" (val)); 41 asm volatile("mcr p6, 0, %0, c8, c1, 0"::"r" (val));
42} 42}
43 43
44/* IMIPR1 CP6 R9 Page 1 44/* IMIPR1 CP6 R9 Page 1
45 */ 45 */
46static inline u32 read_imipr_1(void) 46static u32 read_imipr_1(void)
47{ 47{
48 u32 val; 48 u32 val;
49 asm volatile("mrc p6, 0, %0, c9, c1, 0":"=r" (val)); 49 asm volatile("mrc p6, 0, %0, c9, c1, 0":"=r" (val));
50 return val; 50 return val;
51} 51}
52static inline void write_imipr_1(u32 val) 52static void write_imipr_1(u32 val)
53{ 53{
54 asm volatile("mcr p6, 0, %0, c9, c1, 0"::"r" (val)); 54 asm volatile("mcr p6, 0, %0, c9, c1, 0"::"r" (val));
55} 55}
56 56
57/* IMIPR2 CP6 R10 Page 1 57/* IMIPR2 CP6 R10 Page 1
58 */ 58 */
59static inline u32 read_imipr_2(void) 59static u32 read_imipr_2(void)
60{ 60{
61 u32 val; 61 u32 val;
62 asm volatile("mrc p6, 0, %0, c10, c1, 0":"=r" (val)); 62 asm volatile("mrc p6, 0, %0, c10, c1, 0":"=r" (val));
63 return val; 63 return val;
64} 64}
65static inline void write_imipr_2(u32 val) 65static void write_imipr_2(u32 val)
66{ 66{
67 asm volatile("mcr p6, 0, %0, c10, c1, 0"::"r" (val)); 67 asm volatile("mcr p6, 0, %0, c10, c1, 0"::"r" (val));
68} 68}
69 69
70/* IMIPR3 CP6 R11 Page 1 70/* IMIPR3 CP6 R11 Page 1
71 */ 71 */
72static inline u32 read_imipr_3(void) 72static u32 read_imipr_3(void)
73{ 73{
74 u32 val; 74 u32 val;
75 asm volatile("mrc p6, 0, %0, c11, c1, 0":"=r" (val)); 75 asm volatile("mrc p6, 0, %0, c11, c1, 0":"=r" (val));
76 return val; 76 return val;
77} 77}
78static inline void write_imipr_3(u32 val) 78static void write_imipr_3(u32 val)
79{ 79{
80 asm volatile("mcr p6, 0, %0, c11, c1, 0"::"r" (val)); 80 asm volatile("mcr p6, 0, %0, c11, c1, 0"::"r" (val));
81} 81}
@@ -190,5 +190,5 @@ int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc)
190 write_msi_msg(irq, &msg); 190 write_msi_msg(irq, &msg);
191 set_irq_chip_and_handler(irq, &iop13xx_msi_chip, handle_simple_irq); 191 set_irq_chip_and_handler(irq, &iop13xx_msi_chip, handle_simple_irq);
192 192
193 return irq; 193 return 0;
194} 194}
diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c
index 1c9e94c38b7e..9d63d7f260ca 100644
--- a/arch/arm/mach-iop13xx/pci.c
+++ b/arch/arm/mach-iop13xx/pci.c
@@ -19,10 +19,11 @@
19 19
20#include <linux/pci.h> 20#include <linux/pci.h>
21#include <linux/delay.h> 21#include <linux/delay.h>
22 22#include <linux/jiffies.h>
23#include <asm/irq.h> 23#include <asm/irq.h>
24#include <asm/hardware.h> 24#include <asm/hardware.h>
25#include <asm/sizes.h> 25#include <asm/sizes.h>
26#include <asm/signal.h>
26#include <asm/mach/pci.h> 27#include <asm/mach/pci.h>
27#include <asm/arch/pci.h> 28#include <asm/arch/pci.h>
28 29
@@ -144,7 +145,7 @@ void iop13xx_map_pci_memory(void)
144 } 145 }
145} 146}
146 147
147static inline int iop13xx_atu_function(int atu) 148static int iop13xx_atu_function(int atu)
148{ 149{
149 int func = 0; 150 int func = 0;
150 /* the function number depends on the value of the 151 /* the function number depends on the value of the
@@ -259,7 +260,7 @@ static int iop13xx_atux_pci_status(int clear)
259 * data. Note that the data dependency on %0 encourages an abort 260 * data. Note that the data dependency on %0 encourages an abort
260 * to be detected before we return. 261 * to be detected before we return.
261 */ 262 */
262static inline u32 iop13xx_atux_read(unsigned long addr) 263static u32 iop13xx_atux_read(unsigned long addr)
263{ 264{
264 u32 val; 265 u32 val;
265 266
@@ -387,7 +388,7 @@ static int iop13xx_atue_pci_status(int clear)
387 return err; 388 return err;
388} 389}
389 390
390static inline int __init 391static int
391iop13xx_pcie_map_irq(struct pci_dev *dev, u8 idsel, u8 pin) 392iop13xx_pcie_map_irq(struct pci_dev *dev, u8 idsel, u8 pin)
392{ 393{
393 WARN_ON(idsel != 0); 394 WARN_ON(idsel != 0);
@@ -401,7 +402,7 @@ iop13xx_pcie_map_irq(struct pci_dev *dev, u8 idsel, u8 pin)
401 } 402 }
402} 403}
403 404
404static inline u32 iop13xx_atue_read(unsigned long addr) 405static u32 iop13xx_atue_read(unsigned long addr)
405{ 406{
406 u32 val; 407 u32 val;
407 408
@@ -989,7 +990,7 @@ void __init iop13xx_pci_init(void)
989 "imprecise external abort"); 990 "imprecise external abort");
990} 991}
991 992
992/* intialize the pci memory space. handle any combination of 993/* initialize the pci memory space. handle any combination of
993 * atue and atux enabled/disabled 994 * atue and atux enabled/disabled
994 */ 995 */
995int iop13xx_pci_setup(int nr, struct pci_sys_data *sys) 996int iop13xx_pci_setup(int nr, struct pci_sys_data *sys)
diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c
index 45f4f13ae11b..5776fd884115 100644
--- a/arch/arm/mach-iop32x/glantank.c
+++ b/arch/arm/mach-iop32x/glantank.c
@@ -75,7 +75,7 @@ void __init glantank_map_io(void)
75#define INTC IRQ_IOP32X_XINT2 75#define INTC IRQ_IOP32X_XINT2
76#define INTD IRQ_IOP32X_XINT3 76#define INTD IRQ_IOP32X_XINT3
77 77
78static inline int __init 78static int __init
79glantank_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 79glantank_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
80{ 80{
81 static int pci_irq_table[][4] = { 81 static int pci_irq_table[][4] = {
diff --git a/arch/arm/mach-iop32x/iq31244.c b/arch/arm/mach-iop32x/iq31244.c
index 7b21c6e13e59..d4eefbea1fe6 100644
--- a/arch/arm/mach-iop32x/iq31244.c
+++ b/arch/arm/mach-iop32x/iq31244.c
@@ -104,7 +104,7 @@ void __init iq31244_map_io(void)
104/* 104/*
105 * EP80219/IQ31244 PCI. 105 * EP80219/IQ31244 PCI.
106 */ 106 */
107static inline int __init 107static int __init
108ep80219_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 108ep80219_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
109{ 109{
110 int irq; 110 int irq;
@@ -140,7 +140,7 @@ static struct hw_pci ep80219_pci __initdata = {
140 .map_irq = ep80219_pci_map_irq, 140 .map_irq = ep80219_pci_map_irq,
141}; 141};
142 142
143static inline int __init 143static int __init
144iq31244_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 144iq31244_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
145{ 145{
146 int irq; 146 int irq;
diff --git a/arch/arm/mach-iop32x/iq80321.c b/arch/arm/mach-iop32x/iq80321.c
index bc25fb91e7b9..8d9f49164a84 100644
--- a/arch/arm/mach-iop32x/iq80321.c
+++ b/arch/arm/mach-iop32x/iq80321.c
@@ -72,7 +72,7 @@ void __init iq80321_map_io(void)
72/* 72/*
73 * IQ80321 PCI. 73 * IQ80321 PCI.
74 */ 74 */
75static inline int __init 75static int __init
76iq80321_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 76iq80321_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
77{ 77{
78 int irq; 78 int irq;
diff --git a/arch/arm/mach-iop32x/irq.c b/arch/arm/mach-iop32x/irq.c
index 82598dc18d80..c971171c2905 100644
--- a/arch/arm/mach-iop32x/irq.c
+++ b/arch/arm/mach-iop32x/irq.c
@@ -21,12 +21,12 @@
21 21
22static u32 iop32x_mask; 22static u32 iop32x_mask;
23 23
24static inline void intctl_write(u32 val) 24static void intctl_write(u32 val)
25{ 25{
26 asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val)); 26 asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val));
27} 27}
28 28
29static inline void intstr_write(u32 val) 29static void intstr_write(u32 val)
30{ 30{
31 asm volatile("mcr p6, 0, %0, c4, c0, 0" : : "r" (val)); 31 asm volatile("mcr p6, 0, %0, c4, c0, 0" : : "r" (val));
32} 32}
diff --git a/arch/arm/mach-iop32x/n2100.c b/arch/arm/mach-iop32x/n2100.c
index 5f07344d96f3..d55005d64781 100644
--- a/arch/arm/mach-iop32x/n2100.c
+++ b/arch/arm/mach-iop32x/n2100.c
@@ -76,7 +76,7 @@ void __init n2100_map_io(void)
76/* 76/*
77 * N2100 PCI. 77 * N2100 PCI.
78 */ 78 */
79static inline int __init 79static int __init
80n2100_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 80n2100_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
81{ 81{
82 int irq; 82 int irq;
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c
index 376c932830be..2b063180687a 100644
--- a/arch/arm/mach-iop33x/iq80331.c
+++ b/arch/arm/mach-iop33x/iq80331.c
@@ -55,7 +55,7 @@ static struct sys_timer iq80331_timer = {
55/* 55/*
56 * IQ80331 PCI. 56 * IQ80331 PCI.
57 */ 57 */
58static inline int __init 58static int __init
59iq80331_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 59iq80331_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
60{ 60{
61 int irq; 61 int irq;
diff --git a/arch/arm/mach-iop33x/iq80332.c b/arch/arm/mach-iop33x/iq80332.c
index 58c81496c6f6..7889ce3cb08e 100644
--- a/arch/arm/mach-iop33x/iq80332.c
+++ b/arch/arm/mach-iop33x/iq80332.c
@@ -55,7 +55,7 @@ static struct sys_timer iq80332_timer = {
55/* 55/*
56 * IQ80332 PCI. 56 * IQ80332 PCI.
57 */ 57 */
58static inline int __init 58static int __init
59iq80332_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 59iq80332_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
60{ 60{
61 int irq; 61 int irq;
diff --git a/arch/arm/mach-iop33x/irq.c b/arch/arm/mach-iop33x/irq.c
index c65ea78a2427..f09dd054b9c0 100644
--- a/arch/arm/mach-iop33x/irq.c
+++ b/arch/arm/mach-iop33x/irq.c
@@ -22,32 +22,32 @@
22static u32 iop33x_mask0; 22static u32 iop33x_mask0;
23static u32 iop33x_mask1; 23static u32 iop33x_mask1;
24 24
25static inline void intctl0_write(u32 val) 25static void intctl0_write(u32 val)
26{ 26{
27 asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val)); 27 asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val));
28} 28}
29 29
30static inline void intctl1_write(u32 val) 30static void intctl1_write(u32 val)
31{ 31{
32 asm volatile("mcr p6, 0, %0, c1, c0, 0" : : "r" (val)); 32 asm volatile("mcr p6, 0, %0, c1, c0, 0" : : "r" (val));
33} 33}
34 34
35static inline void intstr0_write(u32 val) 35static void intstr0_write(u32 val)
36{ 36{
37 asm volatile("mcr p6, 0, %0, c2, c0, 0" : : "r" (val)); 37 asm volatile("mcr p6, 0, %0, c2, c0, 0" : : "r" (val));
38} 38}
39 39
40static inline void intstr1_write(u32 val) 40static void intstr1_write(u32 val)
41{ 41{
42 asm volatile("mcr p6, 0, %0, c3, c0, 0" : : "r" (val)); 42 asm volatile("mcr p6, 0, %0, c3, c0, 0" : : "r" (val));
43} 43}
44 44
45static inline void intbase_write(u32 val) 45static void intbase_write(u32 val)
46{ 46{
47 asm volatile("mcr p6, 0, %0, c12, c0, 0" : : "r" (val)); 47 asm volatile("mcr p6, 0, %0, c12, c0, 0" : : "r" (val));
48} 48}
49 49
50static inline void intsize_write(u32 val) 50static void intsize_write(u32 val)
51{ 51{
52 asm volatile("mcr p6, 0, %0, c13, c0, 0" : : "r" (val)); 52 asm volatile("mcr p6, 0, %0, c13, c0, 0" : : "r" (val));
53} 53}
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c
index 500e997ba7a4..9c49435d42c3 100644
--- a/arch/arm/mach-ixp2000/enp2611.c
+++ b/arch/arm/mach-ixp2000/enp2611.c
@@ -198,7 +198,7 @@ subsys_initcall(enp2611_pci_init);
198 198
199 199
200/************************************************************************* 200/*************************************************************************
201 * ENP-2611 Machine Intialization 201 * ENP-2611 Machine Initialization
202 *************************************************************************/ 202 *************************************************************************/
203static struct flash_platform_data enp2611_flash_platform_data = { 203static struct flash_platform_data enp2611_flash_platform_data = {
204 .map_name = "cfi_probe", 204 .map_name = "cfi_probe",
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c
index 0fdd03ab36e6..ce7c15c73004 100644
--- a/arch/arm/mach-ixp2000/ixdp2400.c
+++ b/arch/arm/mach-ixp2000/ixdp2400.c
@@ -164,7 +164,7 @@ int __init ixdp2400_pci_init(void)
164 164
165subsys_initcall(ixdp2400_pci_init); 165subsys_initcall(ixdp2400_pci_init);
166 166
167void ixdp2400_init_irq(void) 167void __init ixdp2400_init_irq(void)
168{ 168{
169 ixdp2x00_init_irq(IXDP2400_CPLD_INT_STAT, IXDP2400_CPLD_INT_MASK, IXDP2400_NR_IRQS); 169 ixdp2x00_init_irq(IXDP2400_CPLD_INT_STAT, IXDP2400_CPLD_INT_MASK, IXDP2400_NR_IRQS);
170} 170}
diff --git a/arch/arm/mach-ixp2000/ixdp2800.c b/arch/arm/mach-ixp2000/ixdp2800.c
index 70d247f09a7e..14f09b80ab77 100644
--- a/arch/arm/mach-ixp2000/ixdp2800.c
+++ b/arch/arm/mach-ixp2000/ixdp2800.c
@@ -279,7 +279,7 @@ int __init ixdp2800_pci_init(void)
279 279
280subsys_initcall(ixdp2800_pci_init); 280subsys_initcall(ixdp2800_pci_init);
281 281
282void ixdp2800_init_irq(void) 282void __init ixdp2800_init_irq(void)
283{ 283{
284 ixdp2x00_init_irq(IXDP2800_CPLD_INT_STAT, IXDP2800_CPLD_INT_MASK, IXDP2800_NR_IRQS); 284 ixdp2x00_init_irq(IXDP2800_CPLD_INT_STAT, IXDP2800_CPLD_INT_MASK, IXDP2800_NR_IRQS);
285} 285}
diff --git a/arch/arm/mach-ixp2000/ixdp2x00.c b/arch/arm/mach-ixp2000/ixdp2x00.c
index 52b368b34346..73c651e83d92 100644
--- a/arch/arm/mach-ixp2000/ixdp2x00.c
+++ b/arch/arm/mach-ixp2000/ixdp2x00.c
@@ -145,7 +145,7 @@ static struct irq_chip ixdp2x00_cpld_irq_chip = {
145 .unmask = ixdp2x00_irq_unmask 145 .unmask = ixdp2x00_irq_unmask
146}; 146};
147 147
148void ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_irqs) 148void __init ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_irqs)
149{ 149{
150 unsigned int irq; 150 unsigned int irq;
151 151
@@ -195,7 +195,7 @@ void __init ixdp2x00_map_io(void)
195 * instances of the kernel. So far so good. Peers on the PCI bus running 195 * instances of the kernel. So far so good. Peers on the PCI bus running
196 * Linux is a common design in telecom systems. The problem is that instead 196 * Linux is a common design in telecom systems. The problem is that instead
197 * of all the devices being controlled by a single host, different 197 * of all the devices being controlled by a single host, different
198 * devices are controlles by different NPUs on the same bus, leading to 198 * devices are controlled by different NPUs on the same bus, leading to
199 * multiple hosts on the bus. The exact bus layout looks like: 199 * multiple hosts on the bus. The exact bus layout looks like:
200 * 200 *
201 * Bus 0 201 * Bus 0
@@ -211,7 +211,7 @@ void __init ixdp2x00_map_io(void)
211 * | | | | | 211 * | | | | |
212 * ... Dev PMC Media Eth0 Eth1 ... 212 * ... Dev PMC Media Eth0 Eth1 ...
213 * 213 *
214 * The master controlls all but Eth1, which is controlled by the 214 * The master controls all but Eth1, which is controlled by the
215 * slave. What this means is that the both the master and the slave 215 * slave. What this means is that the both the master and the slave
216 * have to scan the bus, but only one of them can enumerate the bus. 216 * have to scan the bus, but only one of them can enumerate the bus.
217 * In addition, after the bus is scanned, each kernel must remove 217 * In addition, after the bus is scanned, each kernel must remove
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c
index 3084a5fa751c..d3d730d2fc2b 100644
--- a/arch/arm/mach-ixp2000/ixdp2x01.c
+++ b/arch/arm/mach-ixp2000/ixdp2x01.c
@@ -276,7 +276,7 @@ static int __init ixdp2x01_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
276 /* Device is located after first MB bridge */ 276 /* Device is located after first MB bridge */
277 case 0x0008: 277 case 0x0008:
278 if (tmp_bus == dev->bus) { 278 if (tmp_bus == dev->bus) {
279 /* Device is located directy after first MB bridge */ 279 /* Device is located directly after first MB bridge */
280 switch (devpin) { 280 switch (devpin) {
281 case DEVPIN(1, 1): /* Onboard 82546 ch 0 */ 281 case DEVPIN(1, 1): /* Onboard 82546 ch 0 */
282 if (machine_is_ixdp2401()) 282 if (machine_is_ixdp2401())
@@ -299,7 +299,7 @@ static int __init ixdp2x01_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
299 break; 299 break;
300 case 0x0010: 300 case 0x0010:
301 if (tmp_bus == dev->bus) { 301 if (tmp_bus == dev->bus) {
302 /* Device is located directy after second MB bridge */ 302 /* Device is located directly after second MB bridge */
303 /* Secondary bus of second bridge */ 303 /* Secondary bus of second bridge */
304 switch (devpin) { 304 switch (devpin) {
305 case DEVPIN(0, 1): /* DB#0 */ 305 case DEVPIN(0, 1): /* DB#0 */
@@ -348,7 +348,7 @@ int __init ixdp2x01_pci_init(void)
348subsys_initcall(ixdp2x01_pci_init); 348subsys_initcall(ixdp2x01_pci_init);
349 349
350/************************************************************************* 350/*************************************************************************
351 * IXDP2x01 Machine Intialization 351 * IXDP2x01 Machine Initialization
352 *************************************************************************/ 352 *************************************************************************/
353static struct flash_platform_data ixdp2x01_flash_platform_data = { 353static struct flash_platform_data ixdp2x01_flash_platform_data = {
354 .map_name = "cfi_probe", 354 .map_name = "cfi_probe",
diff --git a/arch/arm/mach-ixp2000/pci.c b/arch/arm/mach-ixp2000/pci.c
index 5a09a90c08fb..03f4cf7f9dec 100644
--- a/arch/arm/mach-ixp2000/pci.c
+++ b/arch/arm/mach-ixp2000/pci.c
@@ -102,7 +102,7 @@ int ixp2000_pci_read_config(struct pci_bus *bus, unsigned int devfn, int where,
102} 102}
103 103
104/* 104/*
105 * We don't do error checks by callling clear_master_aborts() b/c the 105 * We don't do error checks by calling clear_master_aborts() b/c the
106 * assumption is that the caller did a read first to make sure a device 106 * assumption is that the caller did a read first to make sure a device
107 * exists. 107 * exists.
108 */ 108 */
diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c
index b644bbab7d0a..16356ffc86ae 100644
--- a/arch/arm/mach-ixp23xx/core.c
+++ b/arch/arm/mach-ixp23xx/core.c
@@ -389,7 +389,7 @@ struct sys_timer ixp23xx_timer = {
389 389
390 390
391/************************************************************************* 391/*************************************************************************
392 * IXP23xx Platform Initializaion 392 * IXP23xx Platform Initialization
393 *************************************************************************/ 393 *************************************************************************/
394static struct resource ixp23xx_uart_resources[] = { 394static struct resource ixp23xx_uart_resources[] = {
395 { 395 {
diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c
index 7a86a2516eaa..c41a6b5a0acc 100644
--- a/arch/arm/mach-ixp23xx/ixdp2351.c
+++ b/arch/arm/mach-ixp23xx/ixdp2351.c
@@ -124,7 +124,7 @@ static struct irq_chip ixdp2351_intb_chip = {
124 .unmask = ixdp2351_intb_unmask 124 .unmask = ixdp2351_intb_unmask
125}; 125};
126 126
127void ixdp2351_init_irq(void) 127void __init ixdp2351_init_irq(void)
128{ 128{
129 int irq; 129 int irq;
130 130
diff --git a/arch/arm/mach-ixp23xx/pci.c b/arch/arm/mach-ixp23xx/pci.c
index ac7d43d23c28..227f808dc0ec 100644
--- a/arch/arm/mach-ixp23xx/pci.c
+++ b/arch/arm/mach-ixp23xx/pci.c
@@ -284,7 +284,7 @@ int ixp23xx_pci_setup(int nr, struct pci_sys_data *sys)
284 return 1; 284 return 1;
285} 285}
286 286
287void ixp23xx_pci_slave_init(void) 287void __init ixp23xx_pci_slave_init(void)
288{ 288{
289 ixp23xx_pci_common_init(); 289 ixp23xx_pci_common_init();
290} 290}
diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c
index d06e21b70de5..e35644961aa4 100644
--- a/arch/arm/mach-ixp23xx/roadrunner.c
+++ b/arch/arm/mach-ixp23xx/roadrunner.c
@@ -110,7 +110,7 @@ static int __init roadrunner_map_irq(struct pci_dev *dev, u8 idsel, u8 pin)
110 return NO_IRQ; 110 return NO_IRQ;
111} 111}
112 112
113static void roadrunner_pci_preinit(void) 113static void __init roadrunner_pci_preinit(void)
114{ 114{
115 set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQT_LOW); 115 set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQT_LOW);
116 set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQT_LOW); 116 set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQT_LOW);
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig
index 9715ef506c24..060909870b50 100644
--- a/arch/arm/mach-ixp4xx/Kconfig
+++ b/arch/arm/mach-ixp4xx/Kconfig
@@ -104,9 +104,6 @@ config MACH_DSMG600
104 DSM-G600 RevA device. For more information on this platform, 104 DSM-G600 RevA device. For more information on this platform,
105 see http://www.nslu2-linux.org/wiki/DSMG600/HomePage 105 see http://www.nslu2-linux.org/wiki/DSMG600/HomePage
106 106
107#
108# Avila and IXDP share the same source for now. Will change in future
109#
110config ARCH_IXDP4XX 107config ARCH_IXDP4XX
111 bool 108 bool
112 depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435 109 depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index 64685da1462d..8112f726ffa0 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -283,7 +283,7 @@ static struct irqaction ixp4xx_timer_irq = {
283 .handler = ixp4xx_timer_interrupt, 283 .handler = ixp4xx_timer_interrupt,
284}; 284};
285 285
286static void __init ixp4xx_timer_init(void) 286void __init ixp4xx_timer_init(void)
287{ 287{
288 /* Reset/disable counter */ 288 /* Reset/disable counter */
289 *IXP4XX_OSRT1 = 0; 289 *IXP4XX_OSRT1 = 0;
diff --git a/arch/arm/mach-ixp4xx/coyote-pci.c b/arch/arm/mach-ixp4xx/coyote-pci.c
index 7bc94f3def1c..ad2e5b97966e 100644
--- a/arch/arm/mach-ixp4xx/coyote-pci.c
+++ b/arch/arm/mach-ixp4xx/coyote-pci.c
@@ -25,10 +25,6 @@
25 25
26#include <asm/mach/pci.h> 26#include <asm/mach/pci.h>
27 27
28extern void ixp4xx_pci_preinit(void);
29extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
30extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys);
31
32void __init coyote_pci_preinit(void) 28void __init coyote_pci_preinit(void)
33{ 29{
34 set_irq_type(IRQ_COYOTE_PCI_SLOT0, IRQT_LOW); 30 set_irq_type(IRQ_COYOTE_PCI_SLOT0, IRQT_LOW);
diff --git a/arch/arm/mach-ixp4xx/dsmg600-setup.c b/arch/arm/mach-ixp4xx/dsmg600-setup.c
index 1caff65e22cc..1e75e105c4f7 100644
--- a/arch/arm/mach-ixp4xx/dsmg600-setup.c
+++ b/arch/arm/mach-ixp4xx/dsmg600-setup.c
@@ -18,6 +18,7 @@
18#include <asm/mach-types.h> 18#include <asm/mach-types.h>
19#include <asm/mach/arch.h> 19#include <asm/mach/arch.h>
20#include <asm/mach/flash.h> 20#include <asm/mach/flash.h>
21#include <asm/mach/time.h>
21 22
22static struct flash_platform_data dsmg600_flash_data = { 23static struct flash_platform_data dsmg600_flash_data = {
23 .map_name = "cfi_probe", 24 .map_name = "cfi_probe",
@@ -128,6 +129,19 @@ static void dsmg600_power_off(void)
128 gpio_line_set(DSMG600_PO_GPIO, IXP4XX_GPIO_HIGH); 129 gpio_line_set(DSMG600_PO_GPIO, IXP4XX_GPIO_HIGH);
129} 130}
130 131
132static void __init dsmg600_timer_init(void)
133{
134 /* The xtal on this machine is non-standard. */
135 ixp4xx_timer_freq = DSMG600_FREQ;
136
137 /* Call standard timer_init function. */
138 ixp4xx_timer_init();
139}
140
141static struct sys_timer dsmg600_timer = {
142 .init = dsmg600_timer_init,
143};
144
131static void __init dsmg600_init(void) 145static void __init dsmg600_init(void)
132{ 146{
133 ixp4xx_sys_init(); 147 ixp4xx_sys_init();
@@ -155,21 +169,13 @@ static void __init dsmg600_init(void)
155#endif 169#endif
156} 170}
157 171
158static void __init dsmg600_fixup(struct machine_desc *desc,
159 struct tag *tags, char **cmdline, struct meminfo *mi)
160{
161 /* The xtal on this machine is non-standard. */
162 ixp4xx_timer_freq = DSMG600_FREQ;
163}
164
165MACHINE_START(DSMG600, "D-Link DSM-G600 RevA") 172MACHINE_START(DSMG600, "D-Link DSM-G600 RevA")
166 /* Maintainer: www.nslu2-linux.org */ 173 /* Maintainer: www.nslu2-linux.org */
167 .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, 174 .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
168 .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, 175 .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC,
169 .boot_params = 0x00000100, 176 .boot_params = 0x00000100,
170 .fixup = dsmg600_fixup,
171 .map_io = ixp4xx_map_io, 177 .map_io = ixp4xx_map_io,
172 .init_irq = ixp4xx_init_irq, 178 .init_irq = ixp4xx_init_irq,
173 .timer = &ixp4xx_timer, 179 .timer = &dsmg600_timer,
174 .init_machine = dsmg600_init, 180 .init_machine = dsmg600_init,
175MACHINE_END 181MACHINE_END
diff --git a/arch/arm/mach-ixp4xx/gtwx5715-setup.c b/arch/arm/mach-ixp4xx/gtwx5715-setup.c
index 30f1300e0e21..dc6725bda3c4 100644
--- a/arch/arm/mach-ixp4xx/gtwx5715-setup.c
+++ b/arch/arm/mach-ixp4xx/gtwx5715-setup.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * arch/arm/mach-ixp4xx/gtwx5715-setup.c 2 * arch/arm/mach-ixp4xx/gtwx5715-setup.c
3 * 3 *
4 * Gemtek GTWX5715 (Linksys WRV54G) board settup 4 * Gemtek GTWX5715 (Linksys WRV54G) board setup
5 * 5 *
6 * Copyright (C) 2004 George T. Joseph 6 * Copyright (C) 2004 George T. Joseph
7 * Derived from Coyote 7 * Derived from Coyote
diff --git a/arch/arm/mach-ixp4xx/ixdpg425-pci.c b/arch/arm/mach-ixp4xx/ixdpg425-pci.c
index 509a95a692a4..d1e75b7dc3b1 100644
--- a/arch/arm/mach-ixp4xx/ixdpg425-pci.c
+++ b/arch/arm/mach-ixp4xx/ixdpg425-pci.c
@@ -23,10 +23,6 @@
23 23
24#include <asm/mach/pci.h> 24#include <asm/mach/pci.h>
25 25
26extern void ixp4xx_pci_preinit(void);
27extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
28extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys);
29
30void __init ixdpg425_pci_preinit(void) 26void __init ixdpg425_pci_preinit(void)
31{ 27{
32 set_irq_type(IRQ_IXP4XX_GPIO6, IRQT_LOW); 28 set_irq_type(IRQ_IXP4XX_GPIO6, IRQT_LOW);
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c
index 9a31444d9214..78a17413ceca 100644
--- a/arch/arm/mach-ixp4xx/nas100d-setup.c
+++ b/arch/arm/mach-ixp4xx/nas100d-setup.c
@@ -155,7 +155,8 @@ static void __init nas100d_init(void)
155 155
156 pm_power_off = nas100d_power_off; 156 pm_power_off = nas100d_power_off;
157 157
158 /* This is only useful on a modified machine, but it is valuable 158 /*
159 * This is only useful on a modified machine, but it is valuable
159 * to have it first in order to see debug messages, and so that 160 * to have it first in order to see debug messages, and so that
160 * it does *not* get removed if platform_add_devices fails! 161 * it does *not* get removed if platform_add_devices fails!
161 */ 162 */
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c
index 162c266e5f8f..9bf8ccbcaccf 100644
--- a/arch/arm/mach-ixp4xx/nslu2-setup.c
+++ b/arch/arm/mach-ixp4xx/nslu2-setup.c
@@ -22,6 +22,7 @@
22#include <asm/mach-types.h> 22#include <asm/mach-types.h>
23#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
24#include <asm/mach/flash.h> 24#include <asm/mach/flash.h>
25#include <asm/mach/time.h>
25 26
26static struct flash_platform_data nslu2_flash_data = { 27static struct flash_platform_data nslu2_flash_data = {
27 .map_name = "cfi_probe", 28 .map_name = "cfi_probe",
@@ -49,26 +50,26 @@ static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = {
49static struct resource nslu2_led_resources[] = { 50static struct resource nslu2_led_resources[] = {
50 { 51 {
51 .name = "ready", /* green led */ 52 .name = "ready", /* green led */
52 .start = NSLU2_LED_GRN, 53 .start = NSLU2_LED_GRN_GPIO,
53 .end = NSLU2_LED_GRN, 54 .end = NSLU2_LED_GRN_GPIO,
54 .flags = IXP4XX_GPIO_HIGH, 55 .flags = IXP4XX_GPIO_HIGH,
55 }, 56 },
56 { 57 {
57 .name = "status", /* red led */ 58 .name = "status", /* red led */
58 .start = NSLU2_LED_RED, 59 .start = NSLU2_LED_RED_GPIO,
59 .end = NSLU2_LED_RED, 60 .end = NSLU2_LED_RED_GPIO,
60 .flags = IXP4XX_GPIO_HIGH, 61 .flags = IXP4XX_GPIO_HIGH,
61 }, 62 },
62 { 63 {
63 .name = "disk-1", 64 .name = "disk-1",
64 .start = NSLU2_LED_DISK1, 65 .start = NSLU2_LED_DISK1_GPIO,
65 .end = NSLU2_LED_DISK1, 66 .end = NSLU2_LED_DISK1_GPIO,
66 .flags = IXP4XX_GPIO_LOW, 67 .flags = IXP4XX_GPIO_LOW,
67 }, 68 },
68 { 69 {
69 .name = "disk-2", 70 .name = "disk-2",
70 .start = NSLU2_LED_DISK2, 71 .start = NSLU2_LED_DISK2_GPIO,
71 .end = NSLU2_LED_DISK2, 72 .end = NSLU2_LED_DISK2_GPIO,
72 .flags = IXP4XX_GPIO_LOW, 73 .flags = IXP4XX_GPIO_LOW,
73 }, 74 },
74}; 75};
@@ -157,10 +158,21 @@ static void nslu2_power_off(void)
157 gpio_line_set(NSLU2_PO_GPIO, IXP4XX_GPIO_HIGH); 158 gpio_line_set(NSLU2_PO_GPIO, IXP4XX_GPIO_HIGH);
158} 159}
159 160
160static void __init nslu2_init(void) 161static void __init nslu2_timer_init(void)
161{ 162{
162 ixp4xx_timer_freq = NSLU2_FREQ; 163 /* The xtal on this machine is non-standard. */
164 ixp4xx_timer_freq = NSLU2_FREQ;
165
166 /* Call standard timer_init function. */
167 ixp4xx_timer_init();
168}
163 169
170static struct sys_timer nslu2_timer = {
171 .init = nslu2_timer_init,
172};
173
174static void __init nslu2_init(void)
175{
164 ixp4xx_sys_init(); 176 ixp4xx_sys_init();
165 177
166 nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); 178 nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
@@ -169,7 +181,8 @@ static void __init nslu2_init(void)
169 181
170 pm_power_off = nslu2_power_off; 182 pm_power_off = nslu2_power_off;
171 183
172 /* This is only useful on a modified machine, but it is valuable 184 /*
185 * This is only useful on a modified machine, but it is valuable
173 * to have it first in order to see debug messages, and so that 186 * to have it first in order to see debug messages, and so that
174 * it does *not* get removed if platform_add_devices fails! 187 * it does *not* get removed if platform_add_devices fails!
175 */ 188 */
@@ -185,6 +198,6 @@ MACHINE_START(NSLU2, "Linksys NSLU2")
185 .boot_params = 0x00000100, 198 .boot_params = 0x00000100,
186 .map_io = ixp4xx_map_io, 199 .map_io = ixp4xx_map_io,
187 .init_irq = ixp4xx_init_irq, 200 .init_irq = ixp4xx_init_irq,
188 .timer = &ixp4xx_timer, 201 .timer = &nslu2_timer,
189 .init_machine = nslu2_init, 202 .init_machine = nslu2_init,
190MACHINE_END 203MACHINE_END
diff --git a/arch/arm/mach-lh7a40x/lcd-panel.h b/arch/arm/mach-lh7a40x/lcd-panel.h
index 4fb2efc4950f..df6e38ed425b 100644
--- a/arch/arm/mach-lh7a40x/lcd-panel.h
+++ b/arch/arm/mach-lh7a40x/lcd-panel.h
@@ -126,7 +126,7 @@ static struct clcd_panel_extra lcd_panel_extra = {
126 126
127 */ 127 */
128 128
129/* The full horozontal cycle (Th) is clock/360/400/450. */ 129/* The full horizontal cycle (Th) is clock/360/400/450. */
130/* The full vertical cycle (Tv) is line/251/262/280. */ 130/* The full vertical cycle (Tv) is line/251/262/280. */
131 131
132#define PIX_CLOCK_TARGET (6300000) /* -/6.3/7 MHz */ 132#define PIX_CLOCK_TARGET (6300000) /* -/6.3/7 MHz */
@@ -162,7 +162,7 @@ static struct clcd_panel lcd_panel = {
162 /* Logic Product Development LCD 6.4" VGA -10 */ 162 /* Logic Product Development LCD 6.4" VGA -10 */
163 /* Sharp PN LQ64D343 */ 163 /* Sharp PN LQ64D343 */
164 164
165/* The full horozontal cycle (Th) is clock/750/800/900. */ 165/* The full horizontal cycle (Th) is clock/750/800/900. */
166/* The full vertical cycle (Tv) is line/515/525/560. */ 166/* The full vertical cycle (Tv) is line/515/525/560. */
167 167
168#define PIX_CLOCK_TARGET (28330000) 168#define PIX_CLOCK_TARGET (28330000)
@@ -243,7 +243,7 @@ static struct clcd_panel lcd_panel = {
243 * (fdisk, e2fsck). And, at that speed the display may have a visible 243 * (fdisk, e2fsck). And, at that speed the display may have a visible
244 * flicker. */ 244 * flicker. */
245 245
246/* The full horozontal cycle (Th) is clock/832/1056/1395. */ 246/* The full horizontal cycle (Th) is clock/832/1056/1395. */
247 247
248#define PIX_CLOCK_TARGET (20000000) 248#define PIX_CLOCK_TARGET (20000000)
249#define PIX_CLOCK_DIVIDER CLOCK_TO_DIV (PIX_CLOCK_TARGET, HCLK) 249#define PIX_CLOCK_DIVIDER CLOCK_TO_DIV (PIX_CLOCK_TARGET, HCLK)
diff --git a/arch/arm/mach-ns9xxx/time.c b/arch/arm/mach-ns9xxx/time.c
index dd257084441c..b97d0c54a388 100644
--- a/arch/arm/mach-ns9xxx/time.c
+++ b/arch/arm/mach-ns9xxx/time.c
@@ -35,7 +35,7 @@ static unsigned long ns9xxx_timer_gettimeoffset(void)
35{ 35{
36 /* return the microseconds which have passed since the last interrupt 36 /* return the microseconds which have passed since the last interrupt
37 * was _serviced_. That is, if an interrupt is pending or the counter 37 * was _serviced_. That is, if an interrupt is pending or the counter
38 * reloads, return one periode more. */ 38 * reloads, return one period more. */
39 39
40 u32 counter1 = SYS_TR(0); 40 u32 counter1 = SYS_TR(0);
41 int pending = SYS_ISR & (1 << IRQ_TIMER0); 41 int pending = SYS_ISR & (1 << IRQ_TIMER0);
diff --git a/arch/arm/mach-omap1/Kconfig b/arch/arm/mach-omap1/Kconfig
index 856c681ebbbc..f6ecdd3a2478 100644
--- a/arch/arm/mach-omap1/Kconfig
+++ b/arch/arm/mach-omap1/Kconfig
@@ -38,7 +38,7 @@ config MACH_OMAP_H2
38config MACH_OMAP_H3 38config MACH_OMAP_H3
39 bool "TI H3 Support" 39 bool "TI H3 Support"
40 depends on ARCH_OMAP1 && ARCH_OMAP16XX 40 depends on ARCH_OMAP1 && ARCH_OMAP16XX
41 select GPIOEXPANDER_OMAP 41# select GPIOEXPANDER_OMAP
42 help 42 help
43 TI OMAP 1710 H3 board support. Say Y here if you have such 43 TI OMAP 1710 H3 board support. Say Y here if you have such
44 a board. 44 a board.
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index 7d0cf7af88ce..e7130293a03f 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -385,7 +385,7 @@ static void __init osk_init(void)
385 /* Workaround for wrong CS3 (NOR flash) timing 385 /* Workaround for wrong CS3 (NOR flash) timing
386 * There are some U-Boot versions out there which configure 386 * There are some U-Boot versions out there which configure
387 * wrong CS3 memory timings. This mainly leads to CRC 387 * wrong CS3 memory timings. This mainly leads to CRC
388 * or similiar errors if you use NOR flash (e.g. with JFFS2) 388 * or similar errors if you use NOR flash (e.g. with JFFS2)
389 */ 389 */
390 if (EMIFS_CCS(3) != EMIFS_CS3_VAL) 390 if (EMIFS_CCS(3) != EMIFS_CS3_VAL)
391 EMIFS_CCS(3) = EMIFS_CS3_VAL; 391 EMIFS_CCS(3) = EMIFS_CS3_VAL;
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c
index 4bc8a62909b9..015824185629 100644
--- a/arch/arm/mach-omap1/board-palmte.c
+++ b/arch/arm/mach-omap1/board-palmte.c
@@ -7,7 +7,7 @@
7 * 7 *
8 * Original version : Laurent Gonzalez 8 * Original version : Laurent Gonzalez
9 * 9 *
10 * Maintainters : http://palmtelinux.sf.net 10 * Maintainers : http://palmtelinux.sf.net
11 * palmtelinux-developpers@lists.sf.net 11 * palmtelinux-developpers@lists.sf.net
12 * 12 *
13 * This program is free software; you can redistribute it and/or modify 13 * This program is free software; you can redistribute it and/or modify
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 8caee68aa090..5bb348e2e315 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -438,7 +438,7 @@ void omap_pm_suspend(void)
438 omap_writew(0, ULPD_SOFT_DISABLE_REQ_REG); 438 omap_writew(0, ULPD_SOFT_DISABLE_REQ_REG);
439 439
440 /* 440 /*
441 * Reenable interrupts 441 * Re-enable interrupts
442 */ 442 */
443 443
444 local_irq_enable(); 444 local_irq_enable();
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index 5170481afeab..588adb5ab47f 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -443,7 +443,7 @@ static long omap2_clk_round_rate(struct clk *clk, unsigned long rate)
443 443
444/* 444/*
445 * Check the DLL lock state, and return tue if running in unlock mode. 445 * Check the DLL lock state, and return tue if running in unlock mode.
446 * This is needed to compenste for the shifted DLL value in unlock mode. 446 * This is needed to compensate for the shifted DLL value in unlock mode.
447 */ 447 */
448static u32 omap2_dll_force_needed(void) 448static u32 omap2_dll_force_needed(void)
449{ 449{
diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
index 162978fd5359..4f791866b910 100644
--- a/arch/arm/mach-omap2/clock.h
+++ b/arch/arm/mach-omap2/clock.h
@@ -338,7 +338,7 @@ struct prcm_config {
338/* 338/*
339 * These represent optimal values for common parts, it won't work for all. 339 * These represent optimal values for common parts, it won't work for all.
340 * As long as you scale down, most parameters are still work, they just 340 * As long as you scale down, most parameters are still work, they just
341 * become sub-optimal. The RFR value goes in the oppisite direction. If you 341 * become sub-optimal. The RFR value goes in the opposite direction. If you
342 * don't adjust it down as your clock period increases the refresh interval 342 * don't adjust it down as your clock period increases the refresh interval
343 * will not be met. Setting all parameters for complete worst case may work, 343 * will not be met. Setting all parameters for complete worst case may work,
344 * but may cut memory performance by 2x. Due to errata the DLLs need to be 344 * but may cut memory performance by 2x. Due to errata the DLLs need to be
@@ -384,7 +384,7 @@ struct prcm_config {
384 * Filling in table based on H4 boards and 2430-SDPs variants available. 384 * Filling in table based on H4 boards and 2430-SDPs variants available.
385 * There are quite a few more rates combinations which could be defined. 385 * There are quite a few more rates combinations which could be defined.
386 * 386 *
387 * When multiple values are defiend the start up will try and choose the 387 * When multiple values are defined the start up will try and choose the
388 * fastest one. If a 'fast' value is defined, then automatically, the /2 388 * fastest one. If a 'fast' value is defined, then automatically, the /2
389 * one should be included as it can be used. Generally having more that 389 * one should be included as it can be used. Generally having more that
390 * one fast set does not make sense, as static timings need to be changed 390 * one fast set does not make sense, as static timings need to be changed
diff --git a/arch/arm/mach-pxa/corgi_lcd.c b/arch/arm/mach-pxa/corgi_lcd.c
index a72476c24621..365b9435f748 100644
--- a/arch/arm/mach-pxa/corgi_lcd.c
+++ b/arch/arm/mach-pxa/corgi_lcd.c
@@ -40,7 +40,7 @@
40#define PICTRL_ADRS 0x06 40#define PICTRL_ADRS 0x06
41#define POLCTRL_ADRS 0x07 41#define POLCTRL_ADRS 0x07
42 42
43/* Resgister Bit Definitions */ 43/* Register Bit Definitions */
44#define RESCTL_QVGA 0x01 44#define RESCTL_QVGA 0x01
45#define RESCTL_VGA 0x00 45#define RESCTL_VGA 0x00
46 46
@@ -55,11 +55,11 @@
55#define POWER0_COM_DCLK 0x01 /* COM Voltage DC Bias DAC Serial Data Clock */ 55#define POWER0_COM_DCLK 0x01 /* COM Voltage DC Bias DAC Serial Data Clock */
56#define POWER0_COM_DOUT 0x02 /* COM Voltage DC Bias DAC Serial Data Out */ 56#define POWER0_COM_DOUT 0x02 /* COM Voltage DC Bias DAC Serial Data Out */
57#define POWER0_DAC_ON 0x04 /* DAC Power Supply ON */ 57#define POWER0_DAC_ON 0x04 /* DAC Power Supply ON */
58#define POWER0_COM_ON 0x08 /* COM Powewr Supply ON */ 58#define POWER0_COM_ON 0x08 /* COM Power Supply ON */
59#define POWER0_VCC5_ON 0x10 /* VCC5 Power Supply ON */ 59#define POWER0_VCC5_ON 0x10 /* VCC5 Power Supply ON */
60 60
61#define POWER0_DAC_OFF 0x00 /* DAC Power Supply OFF */ 61#define POWER0_DAC_OFF 0x00 /* DAC Power Supply OFF */
62#define POWER0_COM_OFF 0x00 /* COM Powewr Supply OFF */ 62#define POWER0_COM_OFF 0x00 /* COM Power Supply OFF */
63#define POWER0_VCC5_OFF 0x00 /* VCC5 Power Supply OFF */ 63#define POWER0_VCC5_OFF 0x00 /* VCC5 Power Supply OFF */
64 64
65#define PICTRL_INIT_STATE 0x01 65#define PICTRL_INIT_STATE 0x01
@@ -145,7 +145,7 @@ static void lcdtg_set_common_voltage(u8 base_data, u8 data)
145 lcdtg_i2c_send_stop(base_data); 145 lcdtg_i2c_send_stop(base_data);
146} 146}
147 147
148/* Set Phase Adjuct */ 148/* Set Phase Adjust */
149static void lcdtg_set_phadadj(int mode) 149static void lcdtg_set_phadadj(int mode)
150{ 150{
151 int adj; 151 int adj;
@@ -226,7 +226,7 @@ static void lcdtg_hw_init(int mode)
226 /* Signals output enable */ 226 /* Signals output enable */
227 corgi_ssp_lcdtg_send(PICTRL_ADRS, 0); 227 corgi_ssp_lcdtg_send(PICTRL_ADRS, 0);
228 228
229 /* Set Phase Adjuct */ 229 /* Set Phase Adjust */
230 lcdtg_set_phadadj(mode); 230 lcdtg_set_phadadj(mode);
231 231
232 /* Initialize for Input Signals from ATI */ 232 /* Initialize for Input Signals from ATI */
diff --git a/arch/arm/mach-pxa/corgi_ssp.c b/arch/arm/mach-pxa/corgi_ssp.c
index ff6b4ee037f5..40dea3d5142b 100644
--- a/arch/arm/mach-pxa/corgi_ssp.c
+++ b/arch/arm/mach-pxa/corgi_ssp.c
@@ -32,7 +32,7 @@ static struct corgissp_machinfo *ssp_machinfo;
32 * There are three devices connected to the SSP interface: 32 * There are three devices connected to the SSP interface:
33 * 1. A touchscreen controller (TI ADS7846 compatible) 33 * 1. A touchscreen controller (TI ADS7846 compatible)
34 * 2. An LCD contoller (with some Backlight functionality) 34 * 2. An LCD contoller (with some Backlight functionality)
35 * 3. A battery moinitoring IC (Maxim MAX1111) 35 * 3. A battery monitoring IC (Maxim MAX1111)
36 * 36 *
37 * Each device uses a different speed/mode of communication. 37 * Each device uses a different speed/mode of communication.
38 * 38 *
diff --git a/arch/arm/mach-realview/localtimer.c b/arch/arm/mach-realview/localtimer.c
index caf6b8bb6c95..c7bdf04ab094 100644
--- a/arch/arm/mach-realview/localtimer.c
+++ b/arch/arm/mach-realview/localtimer.c
@@ -30,7 +30,7 @@ static unsigned long mpcore_timer_rate;
30/* 30/*
31 * local_timer_ack: checks for a local timer interrupt. 31 * local_timer_ack: checks for a local timer interrupt.
32 * 32 *
33 * If a local timer interrupt has occured, acknowledge and return 1. 33 * If a local timer interrupt has occurred, acknowledge and return 1.
34 * Otherwise, return 0. 34 * Otherwise, return 0.
35 */ 35 */
36int local_timer_ack(void) 36int local_timer_ack(void)
diff --git a/arch/arm/mach-s3c2410/bast.h b/arch/arm/mach-s3c2410/bast.h
deleted file mode 100644
index e98543742eb9..000000000000
--- a/arch/arm/mach-s3c2410/bast.h
+++ /dev/null
@@ -1,2 +0,0 @@
1/* linux/arch/arm/mach-s3c2410/bast.h
2extern void bast_init_irq(void);
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c
index bc308ceb91c3..435adcce6482 100644
--- a/arch/arm/mach-s3c2410/mach-amlm5900.c
+++ b/arch/arm/mach-s3c2410/mach-amlm5900.c
@@ -160,7 +160,7 @@ static struct platform_device *amlm5900_devices[] __initdata = {
160#endif 160#endif
161}; 161};
162 162
163void __init amlm5900_map_io(void) 163static void __init amlm5900_map_io(void)
164{ 164{
165 s3c24xx_init_io(amlm5900_iodesc, ARRAY_SIZE(amlm5900_iodesc)); 165 s3c24xx_init_io(amlm5900_iodesc, ARRAY_SIZE(amlm5900_iodesc));
166 s3c24xx_init_clocks(0); 166 s3c24xx_init_clocks(0);
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c
index 5ccd0be23a33..5c9bcea74767 100644
--- a/arch/arm/mach-s3c2410/mach-h1940.c
+++ b/arch/arm/mach-s3c2410/mach-h1940.c
@@ -17,6 +17,7 @@
17#include <linux/list.h> 17#include <linux/list.h>
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/sysdev.h>
20#include <linux/serial_core.h> 21#include <linux/serial_core.h>
21#include <linux/platform_device.h> 22#include <linux/platform_device.h>
22 23
diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c
index 9cc4253d7bbc..d86e6f18bac9 100644
--- a/arch/arm/mach-s3c2410/mach-qt2410.c
+++ b/arch/arm/mach-s3c2410/mach-qt2410.c
@@ -27,6 +27,7 @@
27#include <linux/list.h> 27#include <linux/list.h>
28#include <linux/timer.h> 28#include <linux/timer.h>
29#include <linux/init.h> 29#include <linux/init.h>
30#include <linux/sysdev.h>
30#include <linux/platform_device.h> 31#include <linux/platform_device.h>
31#include <linux/serial_core.h> 32#include <linux/serial_core.h>
32#include <linux/spi/spi.h> 33#include <linux/spi/spi.h>
diff --git a/arch/arm/mach-s3c2412/dma.c b/arch/arm/mach-s3c2412/dma.c
index d0f4695c09d9..668cccefe7b0 100644
--- a/arch/arm/mach-s3c2412/dma.c
+++ b/arch/arm/mach-s3c2412/dma.c
@@ -59,8 +59,8 @@ static struct s3c24xx_dma_map __initdata s3c2412_dma_mappings[] = {
59 [DMACH_SPI1] = { 59 [DMACH_SPI1] = {
60 .name = "spi1", 60 .name = "spi1",
61 .channels = MAP(S3C2412_DMAREQSEL_SPI1TX), 61 .channels = MAP(S3C2412_DMAREQSEL_SPI1TX),
62 .hw_addr.to = S3C2410_PA_SPI + 0x20 + S3C2410_SPTDAT, 62 .hw_addr.to = S3C2410_PA_SPI + S3C2412_SPI1 + S3C2410_SPTDAT,
63 .hw_addr.from = S3C2410_PA_SPI + 0x20 + S3C2410_SPRDAT, 63 .hw_addr.from = S3C2410_PA_SPI + S3C2412_SPI1 + S3C2410_SPRDAT,
64 }, 64 },
65 [DMACH_UART0] = { 65 [DMACH_UART0] = {
66 .name = "uart0", 66 .name = "uart0",
diff --git a/arch/arm/mach-s3c2412/s3c2412.c b/arch/arm/mach-s3c2412/s3c2412.c
index aafe0bc593f1..782b5814ced2 100644
--- a/arch/arm/mach-s3c2412/s3c2412.c
+++ b/arch/arm/mach-s3c2412/s3c2412.c
@@ -16,6 +16,7 @@
16#include <linux/list.h> 16#include <linux/list.h>
17#include <linux/timer.h> 17#include <linux/timer.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/delay.h>
19#include <linux/sysdev.h> 20#include <linux/sysdev.h>
20#include <linux/serial_core.h> 21#include <linux/serial_core.h>
21#include <linux/platform_device.h> 22#include <linux/platform_device.h>
@@ -29,6 +30,7 @@
29#include <asm/io.h> 30#include <asm/io.h>
30#include <asm/irq.h> 31#include <asm/irq.h>
31 32
33#include <asm/arch/reset.h>
32#include <asm/arch/idle.h> 34#include <asm/arch/idle.h>
33 35
34#include <asm/arch/regs-clock.h> 36#include <asm/arch/regs-clock.h>
@@ -37,6 +39,8 @@
37#include <asm/arch/regs-gpio.h> 39#include <asm/arch/regs-gpio.h>
38#include <asm/arch/regs-gpioj.h> 40#include <asm/arch/regs-gpioj.h>
39#include <asm/arch/regs-dsc.h> 41#include <asm/arch/regs-dsc.h>
42#include <asm/arch/regs-spi.h>
43#include <asm/arch/regs-s3c2412.h>
40 44
41#include <asm/plat-s3c24xx/s3c2412.h> 45#include <asm/plat-s3c24xx/s3c2412.h>
42#include <asm/plat-s3c24xx/cpu.h> 46#include <asm/plat-s3c24xx/cpu.h>
@@ -74,6 +78,14 @@ void __init s3c2412_init_uarts(struct s3c2410_uartcfg *cfg, int no)
74 s3c_device_sdi.name = "s3c2412-sdi"; 78 s3c_device_sdi.name = "s3c2412-sdi";
75 s3c_device_lcd.name = "s3c2412-lcd"; 79 s3c_device_lcd.name = "s3c2412-lcd";
76 s3c_device_nand.name = "s3c2412-nand"; 80 s3c_device_nand.name = "s3c2412-nand";
81
82 /* spi channel related changes, s3c2412/13 specific */
83 s3c_device_spi0.name = "s3c2412-spi";
84 s3c_device_spi0.resource[0].end = S3C24XX_PA_SPI + 0x24;
85 s3c_device_spi1.name = "s3c2412-spi";
86 s3c_device_spi1.resource[0].start = S3C24XX_PA_SPI + S3C2412_SPI1;
87 s3c_device_spi1.resource[0].end = S3C24XX_PA_SPI + S3C2412_SPI1 + 0x24;
88
77} 89}
78 90
79/* s3c2412_idle 91/* s3c2412_idle
@@ -97,6 +109,23 @@ static void s3c2412_idle(void)
97 cpu_do_idle(); 109 cpu_do_idle();
98} 110}
99 111
112static void s3c2412_hard_reset(void)
113{
114 /* errata "Watch-dog/Software Reset Problem" specifies that
115 * this reset must be done with the SYSCLK sourced from
116 * EXTCLK instead of FOUT to avoid a glitch in the reset
117 * mechanism.
118 *
119 * See the watchdog section of the S3C2412 manual for more
120 * information on this fix.
121 */
122
123 __raw_writel(0x00, S3C2412_CLKSRC);
124 __raw_writel(S3C2412_SWRST_RESET, S3C2412_SWRST);
125
126 mdelay(1);
127}
128
100/* s3c2412_map_io 129/* s3c2412_map_io
101 * 130 *
102 * register the standard cpu IO areas, and any passed in from the 131 * register the standard cpu IO areas, and any passed in from the
@@ -113,6 +142,10 @@ void __init s3c2412_map_io(struct map_desc *mach_desc, int mach_size)
113 142
114 s3c24xx_idle = s3c2412_idle; 143 s3c24xx_idle = s3c2412_idle;
115 144
145 /* set custom reset hook */
146
147 s3c24xx_reset_hook = s3c2412_hard_reset;
148
116 /* register our io-tables */ 149 /* register our io-tables */
117 150
118 iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc)); 151 iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc));
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c
index 324f5a237921..4d6c7a574c1a 100644
--- a/arch/arm/mach-s3c2440/mach-osiris.c
+++ b/arch/arm/mach-s3c2440/mach-osiris.c
@@ -45,7 +45,7 @@
45#include <asm/plat-s3c24xx/devs.h> 45#include <asm/plat-s3c24xx/devs.h>
46#include <asm/plat-s3c24xx/cpu.h> 46#include <asm/plat-s3c24xx/cpu.h>
47 47
48/* onboard perihpheral map */ 48/* onboard perihperal map */
49 49
50static struct map_desc osiris_iodesc[] __initdata = { 50static struct map_desc osiris_iodesc[] __initdata = {
51 /* ISA IO areas (may be over-written later) */ 51 /* ISA IO areas (may be over-written later) */
diff --git a/arch/arm/mach-s3c2440/mach-rx3715.c b/arch/arm/mach-s3c2440/mach-rx3715.c
index c3cc4bf158f6..866ff71c01dd 100644
--- a/arch/arm/mach-s3c2440/mach-rx3715.c
+++ b/arch/arm/mach-s3c2440/mach-rx3715.c
@@ -19,6 +19,7 @@
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/tty.h> 20#include <linux/tty.h>
21#include <linux/console.h> 21#include <linux/console.h>
22#include <linux/sysdev.h>
22#include <linux/platform_device.h> 23#include <linux/platform_device.h>
23#include <linux/serial_core.h> 24#include <linux/serial_core.h>
24#include <linux/serial.h> 25#include <linux/serial.h>
diff --git a/arch/arm/mach-s3c2443/clock.c b/arch/arm/mach-s3c2443/clock.c
index 0b6e360aeae7..58402948c47c 100644
--- a/arch/arm/mach-s3c2443/clock.c
+++ b/arch/arm/mach-s3c2443/clock.c
@@ -394,7 +394,7 @@ static int s3c2443_setrate_usbhost(struct clk *clk, unsigned long rate)
394 return 0; 394 return 0;
395} 395}
396 396
397struct clk clk_usb_bus_host = { 397static struct clk clk_usb_bus_host = {
398 .name = "usb-bus-host-parent", 398 .name = "usb-bus-host-parent",
399 .id = -1, 399 .id = -1,
400 .parent = &clk_esysclk, 400 .parent = &clk_esysclk,
@@ -747,6 +747,24 @@ static struct clk init_clocks[] = {
747 .enable = s3c2443_clkcon_enable_h, 747 .enable = s3c2443_clkcon_enable_h,
748 .ctrlbit = S3C2443_HCLKCON_USBD, 748 .ctrlbit = S3C2443_HCLKCON_USBD,
749 }, { 749 }, {
750 .name = "hsmmc",
751 .id = -1,
752 .parent = &clk_h,
753 .enable = s3c2443_clkcon_enable_h,
754 .ctrlbit = S3C2443_HCLKCON_HSMMC,
755 }, {
756 .name = "cfc",
757 .id = -1,
758 .parent = &clk_h,
759 .enable = s3c2443_clkcon_enable_h,
760 .ctrlbit = S3C2443_HCLKCON_CFC,
761 }, {
762 .name = "ssmc",
763 .id = -1,
764 .parent = &clk_h,
765 .enable = s3c2443_clkcon_enable_h,
766 .ctrlbit = S3C2443_HCLKCON_SSMC,
767 }, {
750 .name = "timers", 768 .name = "timers",
751 .id = -1, 769 .id = -1,
752 .parent = &clk_p, 770 .parent = &clk_p,
@@ -791,7 +809,8 @@ static struct clk init_clocks[] = {
791 .name = "usb-bus-host", 809 .name = "usb-bus-host",
792 .id = -1, 810 .id = -1,
793 .parent = &clk_usb_bus_host, 811 .parent = &clk_usb_bus_host,
794 }, { .name = "ac97", 812 }, {
813 .name = "ac97",
795 .id = -1, 814 .id = -1,
796 .parent = &clk_p, 815 .parent = &clk_p,
797 .ctrlbit = S3C2443_PCLKCON_AC97, 816 .ctrlbit = S3C2443_PCLKCON_AC97,
diff --git a/arch/arm/mach-s3c2443/mach-smdk2443.c b/arch/arm/mach-s3c2443/mach-smdk2443.c
index b71ee53c2865..b1eb709ee65a 100644
--- a/arch/arm/mach-s3c2443/mach-smdk2443.c
+++ b/arch/arm/mach-s3c2443/mach-smdk2443.c
@@ -104,6 +104,7 @@ static struct s3c2410_uartcfg smdk2443_uartcfgs[] __initdata = {
104static struct platform_device *smdk2443_devices[] __initdata = { 104static struct platform_device *smdk2443_devices[] __initdata = {
105 &s3c_device_wdt, 105 &s3c_device_wdt,
106 &s3c_device_i2c, 106 &s3c_device_i2c,
107 &s3c_device_hsmmc,
107}; 108};
108 109
109static void __init smdk2443_map_io(void) 110static void __init smdk2443_map_io(void)
diff --git a/arch/arm/mach-s3c2443/s3c2443.c b/arch/arm/mach-s3c2443/s3c2443.c
index 11b1d0b310c3..8d8117158d23 100644
--- a/arch/arm/mach-s3c2443/s3c2443.c
+++ b/arch/arm/mach-s3c2443/s3c2443.c
@@ -63,6 +63,10 @@ int __init s3c2443_init(void)
63 63
64 s3c_device_nand.name = "s3c2412-nand"; 64 s3c_device_nand.name = "s3c2412-nand";
65 65
66 /* change WDT IRQ number */
67 s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT;
68 s3c_device_wdt.resource[1].end = IRQ_S3C2443_WDT;
69
66 return sysdev_register(&s3c2443_sysdev); 70 return sysdev_register(&s3c2443_sysdev);
67} 71}
68 72
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index d7c038a0256b..4cbf9468f654 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -139,12 +139,12 @@ static u_int neponset_get_mctrl(struct uart_port *port)
139 return ret; 139 return ret;
140} 140}
141 141
142static struct sa1100_port_fns neponset_port_fns __initdata = { 142static struct sa1100_port_fns neponset_port_fns __devinitdata = {
143 .set_mctrl = neponset_set_mctrl, 143 .set_mctrl = neponset_set_mctrl,
144 .get_mctrl = neponset_get_mctrl, 144 .get_mctrl = neponset_get_mctrl,
145}; 145};
146 146
147static int neponset_probe(struct platform_device *dev) 147static int __devinit neponset_probe(struct platform_device *dev)
148{ 148{
149 sa1100_register_uart_fns(&neponset_port_fns); 149 sa1100_register_uart_fns(&neponset_port_fns);
150 150
diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c
index 416e277054c2..29cb0c1604ab 100644
--- a/arch/arm/mach-sa1100/time.c
+++ b/arch/arm/mach-sa1100/time.c
@@ -25,7 +25,7 @@ static unsigned long __init sa1100_get_rtc_time(void)
25{ 25{
26 /* 26 /*
27 * According to the manual we should be able to let RTTR be zero 27 * According to the manual we should be able to let RTTR be zero
28 * and then a default diviser for a 32.768KHz clock is used. 28 * and then a default divisor for a 32.768KHz clock is used.
29 * Apparently this doesn't work, at least for my SA1110 rev 5. 29 * Apparently this doesn't work, at least for my SA1110 rev 5.
30 * If the clock divider is uninitialized then reset it to the 30 * If the clock divider is uninitialized then reset it to the
31 * default value to get the 1Hz clock. 31 * default value to get the 1Hz clock.
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 15f0284010ca..e7904bc92c73 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -351,6 +351,7 @@ config CPU_V6
351 select CPU_CACHE_V6 351 select CPU_CACHE_V6
352 select CPU_CACHE_VIPT 352 select CPU_CACHE_VIPT
353 select CPU_CP15_MMU 353 select CPU_CP15_MMU
354 select CPU_HAS_ASID
354 select CPU_COPY_V6 if MMU 355 select CPU_COPY_V6 if MMU
355 select CPU_TLB_V6 if MMU 356 select CPU_TLB_V6 if MMU
356 357
@@ -376,8 +377,9 @@ config CPU_V7
376 select CPU_CACHE_V7 377 select CPU_CACHE_V7
377 select CPU_CACHE_VIPT 378 select CPU_CACHE_VIPT
378 select CPU_CP15_MMU 379 select CPU_CP15_MMU
380 select CPU_HAS_ASID
379 select CPU_COPY_V6 if MMU 381 select CPU_COPY_V6 if MMU
380 select CPU_TLB_V6 if MMU 382 select CPU_TLB_V7 if MMU
381 383
382# Figure out what processor architecture version we should be using. 384# Figure out what processor architecture version we should be using.
383# This defines the compiler instruction set which depends on the machine type. 385# This defines the compiler instruction set which depends on the machine type.
@@ -496,8 +498,17 @@ config CPU_TLB_V4WBI
496config CPU_TLB_V6 498config CPU_TLB_V6
497 bool 499 bool
498 500
501config CPU_TLB_V7
502 bool
503
499endif 504endif
500 505
506config CPU_HAS_ASID
507 bool
508 help
509 This indicates whether the CPU has the ASID register; used to
510 tag TLB and possibly cache entries.
511
501config CPU_CP15 512config CPU_CP15
502 bool 513 bool
503 help 514 help
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile
index b5bd335ff14a..762702765fc3 100644
--- a/arch/arm/mm/Makefile
+++ b/arch/arm/mm/Makefile
@@ -46,6 +46,7 @@ obj-$(CONFIG_CPU_TLB_V4WT) += tlb-v4.o
46obj-$(CONFIG_CPU_TLB_V4WB) += tlb-v4wb.o 46obj-$(CONFIG_CPU_TLB_V4WB) += tlb-v4wb.o
47obj-$(CONFIG_CPU_TLB_V4WBI) += tlb-v4wbi.o 47obj-$(CONFIG_CPU_TLB_V4WBI) += tlb-v4wbi.o
48obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o 48obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o
49obj-$(CONFIG_CPU_TLB_V7) += tlb-v7.o
49 50
50obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o 51obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o
51obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o 52obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
index 19ca333240ec..36440c899583 100644
--- a/arch/arm/mm/alignment.c
+++ b/arch/arm/mm/alignment.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Copyright (C) 1995 Linus Torvalds 4 * Copyright (C) 1995 Linus Torvalds
5 * Modifications for ARM processor (c) 1995-2001 Russell King 5 * Modifications for ARM processor (c) 1995-2001 Russell King
6 * Thumb aligment fault fixups (c) 2004 MontaVista Software, Inc. 6 * Thumb alignment fault fixups (c) 2004 MontaVista Software, Inc.
7 * - Adapted from gdb/sim/arm/thumbemu.c -- Thumb instruction emulation. 7 * - Adapted from gdb/sim/arm/thumbemu.c -- Thumb instruction emulation.
8 * Copyright (C) 1996, Cygnus Software Technologies Ltd. 8 * Copyright (C) 1996, Cygnus Software Technologies Ltd.
9 * 9 *
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index d6167ad4e011..f3ade18862aa 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -346,7 +346,7 @@ void __iounmap(volatile void __iomem *addr)
346#ifndef CONFIG_SMP 346#ifndef CONFIG_SMP
347 /* 347 /*
348 * If this is a section based mapping we need to handle it 348 * If this is a section based mapping we need to handle it
349 * specially as the VM subysystem does not know how to handle 349 * specially as the VM subsystem does not know how to handle
350 * such a beast. We need the lock here b/c we need to clear 350 * such a beast. We need the lock here b/c we need to clear
351 * all the mappings before the area can be reclaimed 351 * all the mappings before the area can be reclaimed
352 * by someone else. 352 * by someone else.
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
index 2c4c2422cd1e..2728b0e7d2bb 100644
--- a/arch/arm/mm/mmap.c
+++ b/arch/arm/mm/mmap.c
@@ -5,7 +5,7 @@
5#include <linux/mm.h> 5#include <linux/mm.h>
6#include <linux/mman.h> 6#include <linux/mman.h>
7#include <linux/shm.h> 7#include <linux/shm.h>
8 8#include <linux/sched.h>
9#include <asm/system.h> 9#include <asm/system.h>
10 10
11#define COLOUR_ALIGN(addr,pgoff) \ 11#define COLOUR_ALIGN(addr,pgoff) \
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 2ba1530d1ce1..02e050ae59f6 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -92,7 +92,7 @@ static struct cachepolicy cache_policies[] __initdata = {
92}; 92};
93 93
94/* 94/*
95 * These are useful for identifing cache coherency 95 * These are useful for identifying cache coherency
96 * problems by allowing the cache or the cache and 96 * problems by allowing the cache or the cache and
97 * writebuffer to be turned off. (Note: the write 97 * writebuffer to be turned off. (Note: the write
98 * buffer should not be on and the cache off). 98 * buffer should not be on and the cache off).
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index dd823dd4a374..718f4782ee8b 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -256,7 +256,7 @@ __v7_proc_info:
256 .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP 256 .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
257 .long cpu_v7_name 257 .long cpu_v7_name
258 .long v7_processor_functions 258 .long v7_processor_functions
259 .long v6wbi_tlb_fns 259 .long v7wbi_tlb_fns
260 .long v6_user_fns 260 .long v6_user_fns
261 .long v7_cache_fns 261 .long v7_cache_fns
262 .size __v7_proc_info, . - __v7_proc_info 262 .size __v7_proc_info, . - __v7_proc_info
diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S
new file mode 100644
index 000000000000..b56dda8052f7
--- /dev/null
+++ b/arch/arm/mm/tlb-v7.S
@@ -0,0 +1,88 @@
1/*
2 * linux/arch/arm/mm/tlb-v7.S
3 *
4 * Copyright (C) 1997-2002 Russell King
5 * Modified for ARMv7 by Catalin Marinas
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * ARM architecture version 6 TLB handling functions.
12 * These assume a split I/D TLB.
13 */
14#include <linux/linkage.h>
15#include <asm/asm-offsets.h>
16#include <asm/page.h>
17#include <asm/tlbflush.h>
18#include "proc-macros.S"
19
20/*
21 * v7wbi_flush_user_tlb_range(start, end, vma)
22 *
23 * Invalidate a range of TLB entries in the specified address space.
24 *
25 * - start - start address (may not be aligned)
26 * - end - end address (exclusive, may not be aligned)
27 * - vma - vma_struct describing address range
28 *
29 * It is assumed that:
30 * - the "Invalidate single entry" instruction will invalidate
31 * both the I and the D TLBs on Harvard-style TLBs
32 */
33ENTRY(v7wbi_flush_user_tlb_range)
34 vma_vm_mm r3, r2 @ get vma->vm_mm
35 mmid r3, r3 @ get vm_mm->context.id
36 dsb
37 mov r0, r0, lsr #PAGE_SHIFT @ align address
38 mov r1, r1, lsr #PAGE_SHIFT
39 asid r3, r3 @ mask ASID
40 orr r0, r3, r0, lsl #PAGE_SHIFT @ Create initial MVA
41 mov r1, r1, lsl #PAGE_SHIFT
42 vma_vm_flags r2, r2 @ get vma->vm_flags
431:
44 mcr p15, 0, r0, c8, c6, 1 @ TLB invalidate D MVA (was 1)
45 tst r2, #VM_EXEC @ Executable area ?
46 mcrne p15, 0, r0, c8, c5, 1 @ TLB invalidate I MVA (was 1)
47 add r0, r0, #PAGE_SZ
48 cmp r0, r1
49 blo 1b
50 mov ip, #0
51 mcr p15, 0, ip, c7, c5, 6 @ flush BTAC/BTB
52 dsb
53 mov pc, lr
54
55/*
56 * v7wbi_flush_kern_tlb_range(start,end)
57 *
58 * Invalidate a range of kernel TLB entries
59 *
60 * - start - start address (may not be aligned)
61 * - end - end address (exclusive, may not be aligned)
62 */
63ENTRY(v7wbi_flush_kern_tlb_range)
64 dsb
65 mov r0, r0, lsr #PAGE_SHIFT @ align address
66 mov r1, r1, lsr #PAGE_SHIFT
67 mov r0, r0, lsl #PAGE_SHIFT
68 mov r1, r1, lsl #PAGE_SHIFT
691:
70 mcr p15, 0, r0, c8, c6, 1 @ TLB invalidate D MVA
71 mcr p15, 0, r0, c8, c5, 1 @ TLB invalidate I MVA
72 add r0, r0, #PAGE_SZ
73 cmp r0, r1
74 blo 1b
75 mov r2, #0
76 mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB
77 dsb
78 isb
79 mov pc, lr
80
81 .section ".text.init", #alloc, #execinstr
82
83 .type v7wbi_tlb_fns, #object
84ENTRY(v7wbi_tlb_fns)
85 .long v7wbi_flush_user_tlb_range
86 .long v7wbi_flush_kern_tlb_range
87 .long v6wbi_tlb_flags
88 .size v7wbi_tlb_fns, . - v7wbi_tlb_fns
diff --git a/arch/arm/nwfpe/softfloat.h b/arch/arm/nwfpe/softfloat.h
index 0a3067452cd2..260fe29d73f5 100644
--- a/arch/arm/nwfpe/softfloat.h
+++ b/arch/arm/nwfpe/softfloat.h
@@ -273,4 +273,7 @@ static inline flag float64_lt_nocheck(float64 a, float64 b)
273extern flag float32_is_nan( float32 a ); 273extern flag float32_is_nan( float32 a );
274extern flag float64_is_nan( float64 a ); 274extern flag float64_is_nan( float64 a );
275 275
276extern int32 float64_to_uint32( struct roundingData *roundData, float64 a );
277extern int32 float64_to_uint32_round_to_zero( float64 a );
278
276#endif 279#endif
diff --git a/arch/arm/oprofile/op_model_mpcore.c b/arch/arm/oprofile/op_model_mpcore.c
index 898500718249..7791da791f5f 100644
--- a/arch/arm/oprofile/op_model_mpcore.c
+++ b/arch/arm/oprofile/op_model_mpcore.c
@@ -257,8 +257,13 @@ static void em_stop(void)
257 */ 257 */
258static void em_route_irq(int irq, unsigned int cpu) 258static void em_route_irq(int irq, unsigned int cpu)
259{ 259{
260 irq_desc[irq].affinity = cpumask_of_cpu(cpu); 260 struct irq_desc *desc = irq_desc + irq;
261 irq_desc[irq].chip->set_affinity(irq, cpumask_of_cpu(cpu)); 261 cpumask_t mask = cpumask_of_cpu(cpu);
262
263 spin_lock_irq(&desc->lock);
264 desc->affinity = mask;
265 desc->chip->set_affinity(irq, mask);
266 spin_unlock_irq(&desc->lock);
262} 267}
263 268
264static int em_setup(void) 269static int em_setup(void)
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c
index e2744b7227c5..2b5aa1135b11 100644
--- a/arch/arm/plat-iop/pci.c
+++ b/arch/arm/plat-iop/pci.c
@@ -19,6 +19,7 @@
19#include <linux/ioport.h> 19#include <linux/ioport.h>
20#include <asm/io.h> 20#include <asm/io.h>
21#include <asm/irq.h> 21#include <asm/irq.h>
22#include <asm/signal.h>
22#include <asm/system.h> 23#include <asm/system.h>
23#include <asm/hardware.h> 24#include <asm/hardware.h>
24#include <asm/mach/pci.h> 25#include <asm/mach/pci.h>
@@ -85,10 +86,10 @@ static int iop3xx_pci_status(void)
85 86
86/* 87/*
87 * Simply write the address register and read the configuration 88 * Simply write the address register and read the configuration
88 * data. Note that the 4 nop's ensure that we are able to handle 89 * data. Note that the 4 nops ensure that we are able to handle
89 * a delayed abort (in theory.) 90 * a delayed abort (in theory.)
90 */ 91 */
91static inline u32 iop3xx_read(unsigned long addr) 92static u32 iop3xx_read(unsigned long addr)
92{ 93{
93 u32 val; 94 u32 val;
94 95
@@ -321,7 +322,7 @@ void __init iop3xx_atu_disable(void)
321/* Flag to determine whether the ATU is initialized and the PCI bus scanned */ 322/* Flag to determine whether the ATU is initialized and the PCI bus scanned */
322int init_atu; 323int init_atu;
323 324
324void iop3xx_pci_preinit(void) 325void __init iop3xx_pci_preinit(void)
325{ 326{
326 if (iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE) { 327 if (iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE) {
327 iop3xx_atu_disable(); 328 iop3xx_atu_disable();
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index dd8708ad0a71..7987aa6e95f8 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -73,7 +73,7 @@ static const void *get_config(u16 tag, size_t len, int skip, size_t *len_out)
73 } 73 }
74 if (info != NULL) { 74 if (info != NULL) {
75 /* Check the length as a lame attempt to check for 75 /* Check the length as a lame attempt to check for
76 * binary inconsistancy. */ 76 * binary inconsistency. */
77 if (len != NO_LENGTH_CHECK) { 77 if (len != NO_LENGTH_CHECK) {
78 /* Word-align len */ 78 /* Word-align len */
79 if (len & 0x03) 79 if (len & 0x03)
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 55a4d3be16b6..88d5b6d9f950 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -1172,7 +1172,7 @@ static void set_b1_regs(void)
1172 break; 1172 break;
1173 default: 1173 default:
1174 BUG(); 1174 BUG();
1175 return; /* Supress warning about uninitialized vars */ 1175 return; /* Suppress warning about uninitialized vars */
1176 } 1176 }
1177 1177
1178 if (omap_dma_in_1510_mode()) { 1178 if (omap_dma_in_1510_mode()) {
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
index bc46f33aede3..1f23f0459e5f 100644
--- a/arch/arm/plat-omap/sram.c
+++ b/arch/arm/plat-omap/sram.c
@@ -59,8 +59,8 @@ extern unsigned long omapfb_reserve_sram(unsigned long sram_pstart,
59 59
60/* 60/*
61 * Depending on the target RAMFS firewall setup, the public usable amount of 61 * Depending on the target RAMFS firewall setup, the public usable amount of
62 * SRAM varies. The default accessable size for all device types is 2k. A GP 62 * SRAM varies. The default accessible size for all device types is 2k. A GP
63 * device allows ARM11 but not other initators for full size. This 63 * device allows ARM11 but not other initiators for full size. This
64 * functionality seems ok until some nice security API happens. 64 * functionality seems ok until some nice security API happens.
65 */ 65 */
66static int is_sram_locked(void) 66static int is_sram_locked(void)
@@ -71,7 +71,7 @@ static int is_sram_locked(void)
71 type = __raw_readl(VA_CONTROL_STAT) & TYPE_MASK; 71 type = __raw_readl(VA_CONTROL_STAT) & TYPE_MASK;
72 72
73 if (type == GP_DEVICE) { 73 if (type == GP_DEVICE) {
74 /* RAMFW: R/W access to all initators for all qualifier sets */ 74 /* RAMFW: R/W access to all initiators for all qualifier sets */
75 if (cpu_is_omap242x()) { 75 if (cpu_is_omap242x()) {
76 __raw_writel(0xFF, VA_REQINFOPERM0); /* all q-vects */ 76 __raw_writel(0xFF, VA_REQINFOPERM0); /* all q-vects */
77 __raw_writel(0xCFDE, VA_READPERM0); /* all i-read */ 77 __raw_writel(0xCFDE, VA_READPERM0); /* all i-read */
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c
index 25489aafb113..a5aedf964b88 100644
--- a/arch/arm/plat-omap/usb.c
+++ b/arch/arm/plat-omap/usb.c
@@ -177,7 +177,7 @@ static u32 __init omap_usb0_init(unsigned nwires, unsigned is_device)
177 177
178 /* NOTE: SPEED and SUSP aren't configured here. OTG hosts 178 /* NOTE: SPEED and SUSP aren't configured here. OTG hosts
179 * may be able to use I2C requests to set those bits along 179 * may be able to use I2C requests to set those bits along
180 * with VBUS switching and overcurrent detction. 180 * with VBUS switching and overcurrent detection.
181 */ 181 */
182 182
183 if (cpu_class_is_omap1() && nwires != 6) 183 if (cpu_class_is_omap1() && nwires != 6)
diff --git a/arch/arm/plat-s3c24xx/common-smdk.c b/arch/arm/plat-s3c24xx/common-smdk.c
index 908efa7d745f..7ed19b23ce56 100644
--- a/arch/arm/plat-s3c24xx/common-smdk.c
+++ b/arch/arm/plat-s3c24xx/common-smdk.c
@@ -18,6 +18,7 @@
18#include <linux/list.h> 18#include <linux/list.h>
19#include <linux/timer.h> 19#include <linux/timer.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/sysdev.h>
21#include <linux/platform_device.h> 22#include <linux/platform_device.h>
22 23
23#include <linux/mtd/mtd.h> 24#include <linux/mtd/mtd.h>
@@ -29,6 +30,7 @@
29#include <asm/mach/map.h> 30#include <asm/mach/map.h>
30#include <asm/mach/irq.h> 31#include <asm/mach/irq.h>
31 32
33#include <asm/mach-types.h>
32#include <asm/hardware.h> 34#include <asm/hardware.h>
33#include <asm/io.h> 35#include <asm/io.h>
34#include <asm/irq.h> 36#include <asm/irq.h>
@@ -192,6 +194,9 @@ void __init smdk_machine_init(void)
192 s3c2410_gpio_setpin(S3C2410_GPF6, 1); 194 s3c2410_gpio_setpin(S3C2410_GPF6, 1);
193 s3c2410_gpio_setpin(S3C2410_GPF7, 1); 195 s3c2410_gpio_setpin(S3C2410_GPF7, 1);
194 196
197 if (machine_is_smdk2443())
198 smdk_nand_info.twrph0 = 50;
199
195 s3c_device_nand.dev.platform_data = &smdk_nand_info; 200 s3c_device_nand.dev.platform_data = &smdk_nand_info;
196 201
197 platform_add_devices(smdk_devs, ARRAY_SIZE(smdk_devs)); 202 platform_add_devices(smdk_devs, ARRAY_SIZE(smdk_devs));
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
index 0fe53b39cb2f..5875da0ae0eb 100644
--- a/arch/arm/plat-s3c24xx/devs.c
+++ b/arch/arm/plat-s3c24xx/devs.c
@@ -33,6 +33,7 @@
33 33
34#include <asm/plat-s3c24xx/devs.h> 34#include <asm/plat-s3c24xx/devs.h>
35#include <asm/plat-s3c24xx/cpu.h> 35#include <asm/plat-s3c24xx/cpu.h>
36#include <asm/arch/regs-spi.h>
36 37
37/* Serial port registrations */ 38/* Serial port registrations */
38 39
@@ -402,6 +403,36 @@ struct platform_device s3c_device_sdi = {
402 403
403EXPORT_SYMBOL(s3c_device_sdi); 404EXPORT_SYMBOL(s3c_device_sdi);
404 405
406/* High-speed MMC/SD */
407
408static struct resource s3c_hsmmc_resource[] = {
409 [0] = {
410 .start = S3C2443_PA_HSMMC,
411 .end = S3C2443_PA_HSMMC + S3C2443_SZ_HSMMC - 1,
412 .flags = IORESOURCE_MEM,
413 },
414 [1] = {
415 .start = IRQ_S3C2443_HSMMC,
416 .end = IRQ_S3C2443_HSMMC,
417 .flags = IORESOURCE_IRQ,
418 }
419};
420
421static u64 s3c_device_hsmmc_dmamask = 0xffffffffUL;
422
423struct platform_device s3c_device_hsmmc = {
424 .name = "s3c-sdhci",
425 .id = -1,
426 .num_resources = ARRAY_SIZE(s3c_hsmmc_resource),
427 .resource = s3c_hsmmc_resource,
428 .dev = {
429 .dma_mask = &s3c_device_hsmmc_dmamask,
430 .coherent_dma_mask = 0xffffffffUL
431 }
432};
433
434
435
405/* SPI (0) */ 436/* SPI (0) */
406 437
407static struct resource s3c_spi0_resource[] = { 438static struct resource s3c_spi0_resource[] = {
@@ -437,8 +468,8 @@ EXPORT_SYMBOL(s3c_device_spi0);
437 468
438static struct resource s3c_spi1_resource[] = { 469static struct resource s3c_spi1_resource[] = {
439 [0] = { 470 [0] = {
440 .start = S3C24XX_PA_SPI + 0x20, 471 .start = S3C24XX_PA_SPI + S3C2410_SPI1,
441 .end = S3C24XX_PA_SPI + 0x20 + 0x1f, 472 .end = S3C24XX_PA_SPI + S3C2410_SPI1 + 0x1f,
442 .flags = IORESOURCE_MEM, 473 .flags = IORESOURCE_MEM,
443 }, 474 },
444 [1] = { 475 [1] = {
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
index 6f03c9370979..08d80f2f51f2 100644
--- a/arch/arm/plat-s3c24xx/dma.c
+++ b/arch/arm/plat-s3c24xx/dma.c
@@ -1153,7 +1153,7 @@ EXPORT_SYMBOL(s3c2410_dma_set_buffdone_fn);
1153 * 1153 *
1154 * hwcfg: the value for xxxSTCn register, 1154 * hwcfg: the value for xxxSTCn register,
1155 * bit 0: 0=increment pointer, 1=leave pointer 1155 * bit 0: 0=increment pointer, 1=leave pointer
1156 * bit 1: 0=soucre is AHB, 1=soucre is APB 1156 * bit 1: 0=source is AHB, 1=source is APB
1157 * 1157 *
1158 * devaddr: physical address of the source 1158 * devaddr: physical address of the source
1159*/ 1159*/
diff --git a/arch/arm/plat-s3c24xx/pm-simtec.c b/arch/arm/plat-s3c24xx/pm-simtec.c
index bd965f2feeca..cb0b3a4ccf1b 100644
--- a/arch/arm/plat-s3c24xx/pm-simtec.c
+++ b/arch/arm/plat-s3c24xx/pm-simtec.c
@@ -18,6 +18,7 @@
18#include <linux/list.h> 18#include <linux/list.h>
19#include <linux/timer.h> 19#include <linux/timer.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/sysdev.h>
21#include <linux/device.h> 22#include <linux/device.h>
22 23
23#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
diff --git a/arch/arm/plat-s3c24xx/pm.c b/arch/arm/plat-s3c24xx/pm.c
index c6b03f8ab260..5692eccdf4d1 100644
--- a/arch/arm/plat-s3c24xx/pm.c
+++ b/arch/arm/plat-s3c24xx/pm.c
@@ -555,7 +555,7 @@ static int s3c2410_pm_enter(suspend_state_t state)
555 __raw_writel(__raw_readl(S3C2410_INTPND), S3C2410_INTPND); 555 __raw_writel(__raw_readl(S3C2410_INTPND), S3C2410_INTPND);
556 __raw_writel(__raw_readl(S3C2410_SRCPND), S3C2410_SRCPND); 556 __raw_writel(__raw_readl(S3C2410_SRCPND), S3C2410_SRCPND);
557 557
558 /* call cpu specific preperation */ 558 /* call cpu specific preparation */
559 559
560 pm_cpu_prep(); 560 pm_cpu_prep();
561 561
diff --git a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in
index 046a85054018..4ec715c25dea 100644
--- a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in
+++ b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in
@@ -64,7 +64,7 @@ SECTIONS
64 64
65 .text : { /* Real text segment */ 65 .text : { /* Real text segment */
66 _text = .; /* Text and read-only data */ 66 _text = .; /* Text and read-only data */
67 *(.text) 67 TEXT_TEXT
68 SCHED_TEXT 68 SCHED_TEXT
69 LOCK_TEXT /* FIXME - borrowed from arm32 - check*/ 69 LOCK_TEXT /* FIXME - borrowed from arm32 - check*/
70 *(.fixup) 70 *(.fixup)
@@ -111,7 +111,7 @@ SECTIONS
111 /* 111 /*
112 * and the usual data section 112 * and the usual data section
113 */ 113 */
114 *(.data) 114 DATA_DATA
115 CONSTRUCTORS 115 CONSTRUCTORS
116 116
117 *(.init.data) 117 *(.init.data)
diff --git a/arch/arm26/kernel/vmlinux-arm26.lds.in b/arch/arm26/kernel/vmlinux-arm26.lds.in
index 1d2949e83be8..6c44f6a17bf7 100644
--- a/arch/arm26/kernel/vmlinux-arm26.lds.in
+++ b/arch/arm26/kernel/vmlinux-arm26.lds.in
@@ -65,7 +65,7 @@ SECTIONS
65 65
66 .text : { /* Real text segment */ 66 .text : { /* Real text segment */
67 _text = .; /* Text and read-only data */ 67 _text = .; /* Text and read-only data */
68 *(.text) 68 TEXT_TEXT
69 SCHED_TEXT 69 SCHED_TEXT
70 LOCK_TEXT 70 LOCK_TEXT
71 *(.fixup) 71 *(.fixup)
@@ -106,7 +106,7 @@ SECTIONS
106 /* 106 /*
107 * and the usual data section 107 * and the usual data section
108 */ 108 */
109 *(.data) 109 DATA_DATA
110 CONSTRUCTORS 110 CONSTRUCTORS
111 111
112 _edata = .; 112 _edata = .;
diff --git a/arch/avr32/boards/atstk1000/atstk1000.h b/arch/avr32/boards/atstk1000/atstk1000.h
new file mode 100644
index 000000000000..9a49ed036b72
--- /dev/null
+++ b/arch/avr32/boards/atstk1000/atstk1000.h
@@ -0,0 +1,15 @@
1/*
2 * ATSTK1000 setup code: Daughterboard interface
3 *
4 * Copyright (C) 2007 Atmel Corporation
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#ifndef __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H
11#define __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H
12
13extern struct atmel_lcdfb_info atstk1000_lcdc_data;
14
15#endif /* __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H */
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c
index abe6ca203fa7..fe1dbe2e28f4 100644
--- a/arch/avr32/boards/atstk1000/atstk1002.c
+++ b/arch/avr32/boards/atstk1000/atstk1002.c
@@ -16,6 +16,8 @@
16#include <linux/types.h> 16#include <linux/types.h>
17#include <linux/spi/spi.h> 17#include <linux/spi/spi.h>
18 18
19#include <video/atmel_lcdc.h>
20
19#include <asm/io.h> 21#include <asm/io.h>
20#include <asm/setup.h> 22#include <asm/setup.h>
21#include <asm/arch/at32ap7000.h> 23#include <asm/arch/at32ap7000.h>
@@ -23,6 +25,7 @@
23#include <asm/arch/init.h> 25#include <asm/arch/init.h>
24#include <asm/arch/portmux.h> 26#include <asm/arch/portmux.h>
25 27
28#include "atstk1000.h"
26 29
27#define SW2_DEFAULT /* MMCI and UART_A available */ 30#define SW2_DEFAULT /* MMCI and UART_A available */
28 31
@@ -31,9 +34,7 @@ struct eth_addr {
31}; 34};
32 35
33static struct eth_addr __initdata hw_addr[2]; 36static struct eth_addr __initdata hw_addr[2];
34
35static struct eth_platform_data __initdata eth_data[2]; 37static struct eth_platform_data __initdata eth_data[2];
36static struct lcdc_platform_data atstk1000_fb0_data;
37 38
38static struct spi_board_info spi0_board_info[] __initdata = { 39static struct spi_board_info spi0_board_info[] __initdata = {
39 { 40 {
@@ -148,9 +149,8 @@ static int __init atstk1002_init(void)
148 set_hw_addr(at32_add_device_eth(0, &eth_data[0])); 149 set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
149 150
150 at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); 151 at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
151 atstk1000_fb0_data.fbmem_start = fbmem_start; 152 at32_add_device_lcdc(0, &atstk1000_lcdc_data,
152 atstk1000_fb0_data.fbmem_size = fbmem_size; 153 fbmem_start, fbmem_size);
153 at32_add_device_lcdc(0, &atstk1000_fb0_data);
154 154
155 return 0; 155 return 0;
156} 156}
diff --git a/arch/avr32/boards/atstk1000/setup.c b/arch/avr32/boards/atstk1000/setup.c
index 2bc4b88d7edb..c9af409ada9a 100644
--- a/arch/avr32/boards/atstk1000/setup.c
+++ b/arch/avr32/boards/atstk1000/setup.c
@@ -8,13 +8,56 @@
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10#include <linux/bootmem.h> 10#include <linux/bootmem.h>
11#include <linux/fb.h>
11#include <linux/init.h> 12#include <linux/init.h>
12#include <linux/types.h> 13#include <linux/types.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14 15
15#include <asm/setup.h> 16#include <video/atmel_lcdc.h>
16 17
18#include <asm/setup.h>
17#include <asm/arch/board.h> 19#include <asm/arch/board.h>
18 20
21#include "atstk1000.h"
22
19/* Initialized by bootloader-specific startup code. */ 23/* Initialized by bootloader-specific startup code. */
20struct tag *bootloader_tags __initdata; 24struct tag *bootloader_tags __initdata;
25
26static struct fb_videomode __initdata ltv350qv_modes[] = {
27 {
28 .name = "320x240 @ 75",
29 .refresh = 75,
30 .xres = 320, .yres = 240,
31 .pixclock = KHZ2PICOS(6891),
32
33 .left_margin = 17, .right_margin = 33,
34 .upper_margin = 10, .lower_margin = 10,
35 .hsync_len = 16, .vsync_len = 1,
36
37 .sync = 0,
38 .vmode = FB_VMODE_NONINTERLACED,
39 },
40};
41
42static struct fb_monspecs __initdata atstk1000_default_monspecs = {
43 .manufacturer = "SNG",
44 .monitor = "LTV350QV",
45 .modedb = ltv350qv_modes,
46 .modedb_len = ARRAY_SIZE(ltv350qv_modes),
47 .hfmin = 14820,
48 .hfmax = 22230,
49 .vfmin = 60,
50 .vfmax = 90,
51 .dclkmax = 30000000,
52};
53
54struct atmel_lcdfb_info __initdata atstk1000_lcdc_data = {
55 .default_bpp = 24,
56 .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
57 .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT
58 | ATMEL_LCDC_INVCLK
59 | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
60 | ATMEL_LCDC_MEMOR_BIG),
61 .default_monspecs = &atstk1000_default_monspecs,
62 .guard_time = 2,
63};
diff --git a/arch/avr32/kernel/irq.c b/arch/avr32/kernel/irq.c
index fd311248c143..61f2de266f62 100644
--- a/arch/avr32/kernel/irq.c
+++ b/arch/avr32/kernel/irq.c
@@ -7,15 +7,6 @@
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as 8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 *
11 * This file contains the code used by various IRQ handling routines:
12 * asking for different IRQ's should be done through these routines
13 * instead of just grabbing them. Thus setups with different IRQ numbers
14 * shouldn't result in any weird surprises, and installing new handlers
15 * should be easier.
16 *
17 * IRQ's are in fact implemented a bit like signal handlers for the kernel.
18 * Naturally it's not a 1:1 relation, but there are similarities.
19 */ 10 */
20 11
21#include <linux/interrupt.h> 12#include <linux/interrupt.h>
diff --git a/arch/avr32/kernel/kprobes.c b/arch/avr32/kernel/kprobes.c
index 004c94b6fc1d..4942ee662e0b 100644
--- a/arch/avr32/kernel/kprobes.c
+++ b/arch/avr32/kernel/kprobes.c
@@ -179,7 +179,7 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs)
179 return 1; 179 return 1;
180} 180}
181 181
182static int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) 182int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr)
183{ 183{
184 struct kprobe *cur = kprobe_running(); 184 struct kprobe *cur = kprobe_running();
185 185
@@ -216,11 +216,6 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
216 if (post_kprobe_handler(args->regs)) 216 if (post_kprobe_handler(args->regs))
217 ret = NOTIFY_STOP; 217 ret = NOTIFY_STOP;
218 break; 218 break;
219 case DIE_FAULT:
220 if (kprobe_running()
221 && kprobe_fault_handler(args->regs, args->trapnr))
222 ret = NOTIFY_STOP;
223 break;
224 default: 219 default:
225 break; 220 break;
226 } 221 }
diff --git a/arch/avr32/kernel/syscall_table.S b/arch/avr32/kernel/syscall_table.S
index 07f6a6fa340d..75c81f2dd0b3 100644
--- a/arch/avr32/kernel/syscall_table.S
+++ b/arch/avr32/kernel/syscall_table.S
@@ -292,4 +292,7 @@ sys_call_table:
292 .long sys_shmdt 292 .long sys_shmdt
293 .long sys_shmctl 293 .long sys_shmctl
294 .long sys_utimensat 294 .long sys_utimensat
295 .long sys_signalfd
296 .long sys_timerfd /* 280 */
297 .long sys_eventfd
295 .long sys_ni_syscall /* r8 is saturated at nr_syscalls */ 298 .long sys_ni_syscall /* r8 is saturated at nr_syscalls */
diff --git a/arch/avr32/kernel/vmlinux.lds.c b/arch/avr32/kernel/vmlinux.lds.c
index e7f72c995a32..db0438f35c00 100644
--- a/arch/avr32/kernel/vmlinux.lds.c
+++ b/arch/avr32/kernel/vmlinux.lds.c
@@ -76,7 +76,7 @@ SECTIONS
76 . = 0x100; 76 . = 0x100;
77 *(.scall.text) 77 *(.scall.text)
78 *(.irq.text) 78 *(.irq.text)
79 *(.text) 79 TEXT_TEXT
80 SCHED_TEXT 80 SCHED_TEXT
81 LOCK_TEXT 81 LOCK_TEXT
82 KPROBES_TEXT 82 KPROBES_TEXT
@@ -112,7 +112,7 @@ SECTIONS
112 112
113 /* And the rest... */ 113 /* And the rest... */
114 *(.data.rel*) 114 *(.data.rel*)
115 *(.data) 115 DATA_DATA
116 CONSTRUCTORS 116 CONSTRUCTORS
117 117
118 _edata = .; 118 _edata = .;
diff --git a/arch/avr32/mach-at32ap/at32ap7000.c b/arch/avr32/mach-at32ap/at32ap7000.c
index 56db45b99a0f..1d2bf347a1d6 100644
--- a/arch/avr32/mach-at32ap/at32ap7000.c
+++ b/arch/avr32/mach-at32ap/at32ap7000.c
@@ -6,6 +6,7 @@
6 * published by the Free Software Foundation. 6 * published by the Free Software Foundation.
7 */ 7 */
8#include <linux/clk.h> 8#include <linux/clk.h>
9#include <linux/fb.h>
9#include <linux/init.h> 10#include <linux/init.h>
10#include <linux/platform_device.h> 11#include <linux/platform_device.h>
11#include <linux/spi/spi.h> 12#include <linux/spi/spi.h>
@@ -17,6 +18,8 @@
17#include <asm/arch/portmux.h> 18#include <asm/arch/portmux.h>
18#include <asm/arch/sm.h> 19#include <asm/arch/sm.h>
19 20
21#include <video/atmel_lcdc.h>
22
20#include "clock.h" 23#include "clock.h"
21#include "hmatrix.h" 24#include "hmatrix.h"
22#include "pio.h" 25#include "pio.h"
@@ -881,20 +884,26 @@ at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n)
881/* -------------------------------------------------------------------- 884/* --------------------------------------------------------------------
882 * LCDC 885 * LCDC
883 * -------------------------------------------------------------------- */ 886 * -------------------------------------------------------------------- */
884static struct lcdc_platform_data lcdc0_data; 887static struct atmel_lcdfb_info atmel_lcdfb0_data;
885static struct resource lcdc0_resource[] = { 888static struct resource atmel_lcdfb0_resource[] = {
886 { 889 {
887 .start = 0xff000000, 890 .start = 0xff000000,
888 .end = 0xff000fff, 891 .end = 0xff000fff,
889 .flags = IORESOURCE_MEM, 892 .flags = IORESOURCE_MEM,
890 }, 893 },
891 IRQ(1), 894 IRQ(1),
895 {
896 /* Placeholder for pre-allocated fb memory */
897 .start = 0x00000000,
898 .end = 0x00000000,
899 .flags = 0,
900 },
892}; 901};
893DEFINE_DEV_DATA(lcdc, 0); 902DEFINE_DEV_DATA(atmel_lcdfb, 0);
894DEV_CLK(hclk, lcdc0, hsb, 7); 903DEV_CLK(hck1, atmel_lcdfb0, hsb, 7);
895static struct clk lcdc0_pixclk = { 904static struct clk atmel_lcdfb0_pixclk = {
896 .name = "pixclk", 905 .name = "lcdc_clk",
897 .dev = &lcdc0_device.dev, 906 .dev = &atmel_lcdfb0_device.dev,
898 .mode = genclk_mode, 907 .mode = genclk_mode,
899 .get_rate = genclk_get_rate, 908 .get_rate = genclk_get_rate,
900 .set_rate = genclk_set_rate, 909 .set_rate = genclk_set_rate,
@@ -903,13 +912,34 @@ static struct clk lcdc0_pixclk = {
903}; 912};
904 913
905struct platform_device *__init 914struct platform_device *__init
906at32_add_device_lcdc(unsigned int id, struct lcdc_platform_data *data) 915at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
916 unsigned long fbmem_start, unsigned long fbmem_len)
907{ 917{
908 struct platform_device *pdev; 918 struct platform_device *pdev;
919 struct atmel_lcdfb_info *info;
920 struct fb_monspecs *monspecs;
921 struct fb_videomode *modedb;
922 unsigned int modedb_size;
923
924 /*
925 * Do a deep copy of the fb data, monspecs and modedb. Make
926 * sure all allocations are done before setting up the
927 * portmux.
928 */
929 monspecs = kmemdup(data->default_monspecs,
930 sizeof(struct fb_monspecs), GFP_KERNEL);
931 if (!monspecs)
932 return NULL;
933
934 modedb_size = sizeof(struct fb_videomode) * monspecs->modedb_len;
935 modedb = kmemdup(monspecs->modedb, modedb_size, GFP_KERNEL);
936 if (!modedb)
937 goto err_dup_modedb;
938 monspecs->modedb = modedb;
909 939
910 switch (id) { 940 switch (id) {
911 case 0: 941 case 0:
912 pdev = &lcdc0_device; 942 pdev = &atmel_lcdfb0_device;
913 select_peripheral(PC(19), PERIPH_A, 0); /* CC */ 943 select_peripheral(PC(19), PERIPH_A, 0); /* CC */
914 select_peripheral(PC(20), PERIPH_A, 0); /* HSYNC */ 944 select_peripheral(PC(20), PERIPH_A, 0); /* HSYNC */
915 select_peripheral(PC(21), PERIPH_A, 0); /* PCLK */ 945 select_peripheral(PC(21), PERIPH_A, 0); /* PCLK */
@@ -942,19 +972,32 @@ at32_add_device_lcdc(unsigned int id, struct lcdc_platform_data *data)
942 select_peripheral(PD(16), PERIPH_A, 0); /* DATA22 */ 972 select_peripheral(PD(16), PERIPH_A, 0); /* DATA22 */
943 select_peripheral(PD(17), PERIPH_A, 0); /* DATA23 */ 973 select_peripheral(PD(17), PERIPH_A, 0); /* DATA23 */
944 974
945 clk_set_parent(&lcdc0_pixclk, &pll0); 975 clk_set_parent(&atmel_lcdfb0_pixclk, &pll0);
946 clk_set_rate(&lcdc0_pixclk, clk_get_rate(&pll0)); 976 clk_set_rate(&atmel_lcdfb0_pixclk, clk_get_rate(&pll0));
947 break; 977 break;
948 978
949 default: 979 default:
950 return NULL; 980 goto err_invalid_id;
951 } 981 }
952 982
953 memcpy(pdev->dev.platform_data, data, 983 if (fbmem_len) {
954 sizeof(struct lcdc_platform_data)); 984 pdev->resource[2].start = fbmem_start;
985 pdev->resource[2].end = fbmem_start + fbmem_len - 1;
986 pdev->resource[2].flags = IORESOURCE_MEM;
987 }
988
989 info = pdev->dev.platform_data;
990 memcpy(info, data, sizeof(struct atmel_lcdfb_info));
991 info->default_monspecs = monspecs;
955 992
956 platform_device_register(pdev); 993 platform_device_register(pdev);
957 return pdev; 994 return pdev;
995
996err_invalid_id:
997 kfree(modedb);
998err_dup_modedb:
999 kfree(monspecs);
1000 return NULL;
958} 1001}
959 1002
960/* -------------------------------------------------------------------- 1003/* --------------------------------------------------------------------
@@ -1037,8 +1080,8 @@ struct clk *at32_clock_list[] = {
1037 &macb1_pclk, 1080 &macb1_pclk,
1038 &atmel_spi0_spi_clk, 1081 &atmel_spi0_spi_clk,
1039 &atmel_spi1_spi_clk, 1082 &atmel_spi1_spi_clk,
1040 &lcdc0_hclk, 1083 &atmel_lcdfb0_hck1,
1041 &lcdc0_pixclk, 1084 &atmel_lcdfb0_pixclk,
1042 &gclk0, 1085 &gclk0,
1043 &gclk1, 1086 &gclk1,
1044 &gclk2, 1087 &gclk2,
@@ -1077,7 +1120,7 @@ void __init at32_clock_init(void)
1077 genclk_init_parent(&gclk2); 1120 genclk_init_parent(&gclk2);
1078 genclk_init_parent(&gclk3); 1121 genclk_init_parent(&gclk3);
1079 genclk_init_parent(&gclk4); 1122 genclk_init_parent(&gclk4);
1080 genclk_init_parent(&lcdc0_pixclk); 1123 genclk_init_parent(&atmel_lcdfb0_pixclk);
1081 1124
1082 /* 1125 /*
1083 * Turn on all clocks that have at least one user already, and 1126 * Turn on all clocks that have at least one user already, and
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
index 88b00b15970f..e011f1ce1875 100644
--- a/arch/avr32/mm/fault.c
+++ b/arch/avr32/mm/fault.c
@@ -12,41 +12,30 @@
12#include <linux/mm.h> 12#include <linux/mm.h>
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/pagemap.h> 14#include <linux/pagemap.h>
15
16#include <linux/kdebug.h> 15#include <linux/kdebug.h>
16#include <linux/kprobes.h>
17
17#include <asm/mmu_context.h> 18#include <asm/mmu_context.h>
18#include <asm/sysreg.h> 19#include <asm/sysreg.h>
19#include <asm/tlb.h> 20#include <asm/tlb.h>
20#include <asm/uaccess.h> 21#include <asm/uaccess.h>
21 22
22#ifdef CONFIG_KPROBES 23#ifdef CONFIG_KPROBES
23ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain); 24static inline int notify_page_fault(struct pt_regs *regs, int trap)
24
25/* Hook to register for page fault notifications */
26int register_page_fault_notifier(struct notifier_block *nb)
27{ 25{
28 return atomic_notifier_chain_register(&notify_page_fault_chain, nb); 26 int ret = 0;
29}
30 27
31int unregister_page_fault_notifier(struct notifier_block *nb) 28 if (!user_mode(regs)) {
32{ 29 if (kprobe_running() && kprobe_fault_handler(regs, trap))
33 return atomic_notifier_chain_unregister(&notify_page_fault_chain, nb); 30 ret = 1;
34} 31 }
35 32
36static inline int notify_page_fault(enum die_val val, struct pt_regs *regs, 33 return ret;
37 int trap, int sig)
38{
39 struct die_args args = {
40 .regs = regs,
41 .trapnr = trap,
42 };
43 return atomic_notifier_call_chain(&notify_page_fault_chain, val, &args);
44} 34}
45#else 35#else
46static inline int notify_page_fault(enum die_val val, struct pt_regs *regs, 36static inline int notify_page_fault(struct pt_regs *regs, int trap)
47 int trap, int sig)
48{ 37{
49 return NOTIFY_DONE; 38 return 0;
50} 39}
51#endif 40#endif
52 41
@@ -76,8 +65,7 @@ asmlinkage void do_page_fault(unsigned long ecr, struct pt_regs *regs)
76 long signr; 65 long signr;
77 int code; 66 int code;
78 67
79 if (notify_page_fault(DIE_PAGE_FAULT, regs, 68 if (notify_page_fault(regs, ecr))
80 ecr, SIGSEGV) == NOTIFY_STOP)
81 return; 69 return;
82 70
83 address = sysreg_read(TLBEAR); 71 address = sysreg_read(TLBEAR);
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 1a4930509325..b1b111bb2f3a 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -25,6 +25,10 @@ config BLACKFIN
25 bool 25 bool
26 default y 26 default y
27 27
28config ZONE_DMA
29 bool
30 default y
31
28config BFIN 32config BFIN
29 bool 33 bool
30 default y 34 default y
@@ -189,7 +193,7 @@ config BFIN537_BLUETECHNIX_CM
189 CM-BF537 support for EVAL- and DEV-Board. 193 CM-BF537 support for EVAL- and DEV-Board.
190 194
191config BFIN561_BLUETECHNIX_CM 195config BFIN561_BLUETECHNIX_CM
192 bool "BF561-CM" 196 bool "Bluetechnix CM-BF561"
193 depends on (BF561) 197 depends on (BF561)
194 help 198 help
195 CM-BF561 support for EVAL- and DEV-Board. 199 CM-BF561 support for EVAL- and DEV-Board.
@@ -200,6 +204,12 @@ config BFIN561_EZKIT
200 help 204 help
201 BF561-EZKIT-LITE board Support. 205 BF561-EZKIT-LITE board Support.
202 206
207config BFIN561_TEPLA
208 bool "BF561-TEPLA"
209 depends on (BF561)
210 help
211 BF561-TEPLA board Support.
212
203config PNAV10 213config PNAV10
204 bool "PNAV 1.0 board" 214 bool "PNAV 1.0 board"
205 depends on (BF537) 215 depends on (BF537)
@@ -560,14 +570,6 @@ endchoice
560 570
561source "mm/Kconfig" 571source "mm/Kconfig"
562 572
563config LARGE_ALLOCS
564 bool "Allow allocating large blocks (> 1MB) of memory"
565 help
566 Allow the slab memory allocator to keep chains for very large
567 memory sizes - upto 32MB. You may need this if your system has
568 a lot of RAM, and you need to able to allocate very large
569 contiguous chunks. If unsure, say N.
570
571config BFIN_DMA_5XX 573config BFIN_DMA_5XX
572 bool "Enable DMA Support" 574 bool "Enable DMA Support"
573 depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) 575 depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561)
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index 52d4dbdb2b1a..75e89c324756 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -15,6 +15,7 @@ GZFLAGS := -9
15CFLAGS_MODULE += -mlong-calls 15CFLAGS_MODULE += -mlong-calls
16KALLSYMS += --symbol-prefix=_ 16KALLSYMS += --symbol-prefix=_
17 17
18KBUILD_DEFCONFIG := BF537-STAMP_defconfig
18 19
19# setup the machine name and the machine dependent settings 20# setup the machine name and the machine dependent settings
20machine-$(CONFIG_BF531) := bf533 21machine-$(CONFIG_BF531) := bf533
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
new file mode 100644
index 000000000000..377c8e05e4ab
--- /dev/null
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -0,0 +1,1014 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19.3
4#
5# CONFIG_MMU is not set
6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
10CONFIG_BFIN=y
11CONFIG_SEMAPHORE_SLEEPERS=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_UCLINUX=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_IRQCHIP_DEMUX_GPIO=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21
22#
23# Code maturity level options
24#
25CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36# CONFIG_POSIX_MQUEUE is not set
37# CONFIG_BSD_PROCESS_ACCT is not set
38# CONFIG_TASKSTATS is not set
39# CONFIG_UTS_NS is not set
40# CONFIG_AUDIT is not set
41# CONFIG_IKCONFIG is not set
42# CONFIG_RELAY is not set
43CONFIG_INITRAMFS_SOURCE=""
44# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
45CONFIG_SYSCTL=y
46CONFIG_EMBEDDED=y
47CONFIG_UID16=y
48CONFIG_SYSCTL_SYSCALL=y
49CONFIG_KALLSYMS=y
50# CONFIG_KALLSYMS_EXTRA_PASS is not set
51CONFIG_HOTPLUG=y
52CONFIG_PRINTK=y
53CONFIG_BUG=y
54CONFIG_ELF_CORE=y
55CONFIG_BASE_FULL=y
56CONFIG_FUTEX=y
57CONFIG_EPOLL=y
58CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
59# CONFIG_LIMIT_PAGECACHE is not set
60CONFIG_BUDDY=y
61# CONFIG_NP2 is not set
62CONFIG_SLAB=y
63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
65CONFIG_TINY_SHMEM=y
66CONFIG_BASE_SMALL=0
67# CONFIG_SLOB is not set
68
69#
70# Loadable module support
71#
72CONFIG_MODULES=y
73CONFIG_MODULE_UNLOAD=y
74# CONFIG_MODULE_FORCE_UNLOAD is not set
75# CONFIG_MODVERSIONS is not set
76# CONFIG_MODULE_SRCVERSION_ALL is not set
77CONFIG_KMOD=y
78
79#
80# Block layer
81#
82CONFIG_BLOCK=y
83# CONFIG_BLK_DEV_IO_TRACE is not set
84
85#
86# IO Schedulers
87#
88CONFIG_IOSCHED_NOOP=y
89CONFIG_IOSCHED_AS=y
90# CONFIG_IOSCHED_DEADLINE is not set
91CONFIG_IOSCHED_CFQ=y
92CONFIG_DEFAULT_AS=y
93# CONFIG_DEFAULT_DEADLINE is not set
94# CONFIG_DEFAULT_CFQ is not set
95# CONFIG_DEFAULT_NOOP is not set
96CONFIG_DEFAULT_IOSCHED="anticipatory"
97# CONFIG_PREEMPT_NONE is not set
98CONFIG_PREEMPT_VOLUNTARY=y
99# CONFIG_PREEMPT is not set
100
101#
102# Blackfin Processor Options
103#
104
105#
106# Processor and Board Settings
107#
108# CONFIG_BF531 is not set
109# CONFIG_BF532 is not set
110CONFIG_BF533=y
111# CONFIG_BF534 is not set
112# CONFIG_BF535 is not set
113# CONFIG_BF536 is not set
114# CONFIG_BF537 is not set
115# CONFIG_BF561 is not set
116# CONFIG_BF_REV_0_2 is not set
117CONFIG_BF_REV_0_3=y
118# CONFIG_BF_REV_0_4 is not set
119# CONFIG_BF_REV_0_5 is not set
120CONFIG_BFIN_SINGLE_CORE=y
121CONFIG_BFIN533_EZKIT=y
122# CONFIG_BFIN533_STAMP is not set
123# CONFIG_BFIN537_STAMP is not set
124# CONFIG_BFIN533_BLUETECHNIX_CM is not set
125# CONFIG_BFIN537_BLUETECHNIX_CM is not set
126# CONFIG_BFIN561_BLUETECHNIX_CM is not set
127# CONFIG_BFIN561_EZKIT is not set
128# CONFIG_PNAV10 is not set
129# CONFIG_GENERIC_BOARD is not set
130CONFIG_MEM_MT48LC16M16A2TG_75=y
131
132#
133# BF533/2/1 Specific Configuration
134#
135
136#
137# Interrupt Priority Assignment
138#
139
140#
141# Priority
142#
143CONFIG_UART_ERROR=7
144CONFIG_SPORT0_ERROR=7
145CONFIG_SPI_ERROR=7
146CONFIG_SPORT1_ERROR=7
147CONFIG_PPI_ERROR=7
148CONFIG_DMA_ERROR=7
149CONFIG_PLLWAKE_ERROR=7
150CONFIG_RTC_ERROR=8
151CONFIG_DMA0_PPI=8
152CONFIG_DMA1_SPORT0RX=9
153CONFIG_DMA2_SPORT0TX=9
154CONFIG_DMA3_SPORT1RX=9
155CONFIG_DMA4_SPORT1TX=9
156CONFIG_DMA5_SPI=10
157CONFIG_DMA6_UARTRX=10
158CONFIG_DMA7_UARTTX=10
159CONFIG_TIMER0=11
160CONFIG_TIMER1=11
161CONFIG_TIMER2=11
162CONFIG_PFA=12
163CONFIG_PFB=12
164CONFIG_MEMDMA0=13
165CONFIG_MEMDMA1=13
166CONFIG_WDTIMER=13
167
168#
169# Board customizations
170#
171
172#
173# Board Setup
174#
175CONFIG_CLKIN_HZ=27000000
176CONFIG_MEM_SIZE=32
177CONFIG_MEM_ADD_WIDTH=9
178CONFIG_BOOT_LOAD=0x1000
179
180#
181# Console UART Setup
182#
183# CONFIG_BAUD_9600 is not set
184# CONFIG_BAUD_19200 is not set
185# CONFIG_BAUD_38400 is not set
186CONFIG_BAUD_57600=y
187# CONFIG_BAUD_115200 is not set
188CONFIG_BAUD_NO_PARITY=y
189# CONFIG_BAUD_PARITY is not set
190CONFIG_BAUD_1_STOPBIT=y
191# CONFIG_BAUD_2_STOPBIT is not set
192
193#
194# Blackfin Kernel Optimizations
195#
196
197#
198# Timer Tick
199#
200# CONFIG_HZ_100 is not set
201CONFIG_HZ_250=y
202# CONFIG_HZ_1000 is not set
203CONFIG_HZ=250
204
205#
206# Memory Optimizations
207#
208CONFIG_I_ENTRY_L1=y
209CONFIG_EXCPT_IRQ_SYSC_L1=y
210CONFIG_DO_IRQ_L1=y
211CONFIG_CORE_TIMER_IRQ_L1=y
212CONFIG_IDLE_L1=y
213CONFIG_SCHEDULE_L1=y
214CONFIG_ARITHMETIC_OPS_L1=y
215CONFIG_ACCESS_OK_L1=y
216CONFIG_MEMSET_L1=y
217CONFIG_MEMCPY_L1=y
218CONFIG_SYS_BFIN_SPINLOCK_L1=y
219# CONFIG_IP_CHECKSUM_L1 is not set
220# CONFIG_SYSCALL_TAB_L1 is not set
221# CONFIG_CPLB_SWITCH_TAB_L1 is not set
222CONFIG_RAMKERNEL=y
223# CONFIG_ROMKERNEL is not set
224CONFIG_SELECT_MEMORY_MODEL=y
225CONFIG_FLATMEM_MANUAL=y
226# CONFIG_DISCONTIGMEM_MANUAL is not set
227# CONFIG_SPARSEMEM_MANUAL is not set
228CONFIG_FLATMEM=y
229CONFIG_FLAT_NODE_MEM_MAP=y
230# CONFIG_SPARSEMEM_STATIC is not set
231CONFIG_SPLIT_PTLOCK_CPUS=4
232# CONFIG_RESOURCES_64BIT is not set
233CONFIG_LARGE_ALLOCS=y
234CONFIG_BFIN_DMA_5XX=y
235# CONFIG_DMA_UNCACHED_2M is not set
236CONFIG_DMA_UNCACHED_1M=y
237# CONFIG_DMA_UNCACHED_NONE is not set
238
239#
240# Cache Support
241#
242CONFIG_BLKFIN_CACHE=y
243CONFIG_BLKFIN_DCACHE=y
244# CONFIG_BLKFIN_DCACHE_BANKA is not set
245# CONFIG_BLKFIN_CACHE_LOCK is not set
246# CONFIG_BLKFIN_WB is not set
247CONFIG_BLKFIN_WT=y
248CONFIG_L1_MAX_PIECE=16
249
250#
251# Clock Settings
252#
253# CONFIG_BFIN_KERNEL_CLOCK is not set
254
255#
256# Asynchonous Memory Configuration
257#
258
259#
260# EBIU_AMBCTL Global Control
261#
262CONFIG_C_AMCKEN=y
263CONFIG_C_CDPRIO=y
264# CONFIG_C_AMBEN is not set
265# CONFIG_C_AMBEN_B0 is not set
266# CONFIG_C_AMBEN_B0_B1 is not set
267# CONFIG_C_AMBEN_B0_B1_B2 is not set
268CONFIG_C_AMBEN_ALL=y
269
270#
271# EBIU_AMBCTL Control
272#
273CONFIG_BANK_0=0x7BB0
274CONFIG_BANK_1=0x7BB0
275CONFIG_BANK_2=0x7BB0
276CONFIG_BANK_3=0x99B3
277
278#
279# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
280#
281# CONFIG_PCI is not set
282
283#
284# PCCARD (PCMCIA/CardBus) support
285#
286# CONFIG_PCCARD is not set
287
288#
289# PCI Hotplug Support
290#
291
292#
293# Executable file formats
294#
295CONFIG_BINFMT_ELF_FDPIC=y
296CONFIG_BINFMT_FLAT=y
297CONFIG_BINFMT_ZFLAT=y
298# CONFIG_BINFMT_SHARED_FLAT is not set
299# CONFIG_BINFMT_MISC is not set
300
301#
302# Power management options
303#
304CONFIG_PM=y
305CONFIG_PM_LEGACY=y
306# CONFIG_PM_DEBUG is not set
307# CONFIG_PM_SYSFS_DEPRECATED is not set
308CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y
309# CONFIG_PM_WAKEUP_BY_GPIO is not set
310# CONFIG_PM_WAKEUP_GPIO_API is not set
311CONFIG_PM_WAKEUP_SIC_IWR=0x100000
312
313#
314# CPU Frequency scaling
315#
316# CONFIG_CPU_FREQ is not set
317
318#
319# Networking
320#
321CONFIG_NET=y
322
323#
324# Networking options
325#
326# CONFIG_NETDEBUG is not set
327CONFIG_PACKET=y
328# CONFIG_PACKET_MMAP is not set
329CONFIG_UNIX=y
330CONFIG_XFRM=y
331# CONFIG_XFRM_USER is not set
332# CONFIG_XFRM_SUB_POLICY is not set
333# CONFIG_NET_KEY is not set
334CONFIG_INET=y
335# CONFIG_IP_MULTICAST is not set
336# CONFIG_IP_ADVANCED_ROUTER is not set
337CONFIG_IP_FIB_HASH=y
338CONFIG_IP_PNP=y
339# CONFIG_IP_PNP_DHCP is not set
340# CONFIG_IP_PNP_BOOTP is not set
341# CONFIG_IP_PNP_RARP is not set
342# CONFIG_NET_IPIP is not set
343# CONFIG_NET_IPGRE is not set
344# CONFIG_ARPD is not set
345CONFIG_SYN_COOKIES=y
346# CONFIG_INET_AH is not set
347# CONFIG_INET_ESP is not set
348# CONFIG_INET_IPCOMP is not set
349# CONFIG_INET_XFRM_TUNNEL is not set
350# CONFIG_INET_TUNNEL is not set
351CONFIG_INET_XFRM_MODE_TRANSPORT=y
352CONFIG_INET_XFRM_MODE_TUNNEL=y
353CONFIG_INET_XFRM_MODE_BEET=y
354CONFIG_INET_DIAG=y
355CONFIG_INET_TCP_DIAG=y
356# CONFIG_TCP_CONG_ADVANCED is not set
357CONFIG_TCP_CONG_CUBIC=y
358CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_IPV6 is not set
360# CONFIG_INET6_XFRM_TUNNEL is not set
361# CONFIG_INET6_TUNNEL is not set
362# CONFIG_NETLABEL is not set
363# CONFIG_NETWORK_SECMARK is not set
364# CONFIG_NETFILTER is not set
365
366#
367# DCCP Configuration (EXPERIMENTAL)
368#
369# CONFIG_IP_DCCP is not set
370
371#
372# SCTP Configuration (EXPERIMENTAL)
373#
374# CONFIG_IP_SCTP is not set
375
376#
377# TIPC Configuration (EXPERIMENTAL)
378#
379# CONFIG_TIPC is not set
380# CONFIG_ATM is not set
381# CONFIG_BRIDGE is not set
382# CONFIG_VLAN_8021Q is not set
383# CONFIG_DECNET is not set
384# CONFIG_LLC2 is not set
385# CONFIG_IPX is not set
386# CONFIG_ATALK is not set
387# CONFIG_X25 is not set
388# CONFIG_LAPB is not set
389# CONFIG_ECONET is not set
390# CONFIG_WAN_ROUTER is not set
391
392#
393# QoS and/or fair queueing
394#
395# CONFIG_NET_SCHED is not set
396
397#
398# Network testing
399#
400# CONFIG_NET_PKTGEN is not set
401# CONFIG_HAMRADIO is not set
402# CONFIG_IRDA is not set
403# CONFIG_BT is not set
404# CONFIG_IEEE80211 is not set
405
406#
407# Device Drivers
408#
409
410#
411# Generic Driver Options
412#
413CONFIG_STANDALONE=y
414CONFIG_PREVENT_FIRMWARE_BUILD=y
415# CONFIG_FW_LOADER is not set
416# CONFIG_SYS_HYPERVISOR is not set
417
418#
419# Connector - unified userspace <-> kernelspace linker
420#
421# CONFIG_CONNECTOR is not set
422
423#
424# Memory Technology Devices (MTD)
425#
426CONFIG_MTD=y
427# CONFIG_MTD_DEBUG is not set
428# CONFIG_MTD_CONCAT is not set
429CONFIG_MTD_PARTITIONS=y
430# CONFIG_MTD_REDBOOT_PARTS is not set
431# CONFIG_MTD_CMDLINE_PARTS is not set
432
433#
434# User Modules And Translation Layers
435#
436CONFIG_MTD_CHAR=m
437CONFIG_MTD_BLOCK=y
438# CONFIG_FTL is not set
439# CONFIG_NFTL is not set
440# CONFIG_INFTL is not set
441# CONFIG_RFD_FTL is not set
442# CONFIG_SSFDC is not set
443
444#
445# RAM/ROM/Flash chip drivers
446#
447# CONFIG_MTD_CFI is not set
448CONFIG_MTD_JEDECPROBE=m
449CONFIG_MTD_GEN_PROBE=m
450# CONFIG_MTD_CFI_ADV_OPTIONS is not set
451CONFIG_MTD_MAP_BANK_WIDTH_1=y
452CONFIG_MTD_MAP_BANK_WIDTH_2=y
453CONFIG_MTD_MAP_BANK_WIDTH_4=y
454# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
455# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
456# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
457CONFIG_MTD_CFI_I1=y
458CONFIG_MTD_CFI_I2=y
459# CONFIG_MTD_CFI_I4 is not set
460# CONFIG_MTD_CFI_I8 is not set
461# CONFIG_MTD_CFI_INTELEXT is not set
462# CONFIG_MTD_CFI_AMDSTD is not set
463# CONFIG_MTD_CFI_STAA is not set
464CONFIG_MTD_MW320D=m
465CONFIG_MTD_RAM=y
466CONFIG_MTD_ROM=m
467# CONFIG_MTD_ABSENT is not set
468# CONFIG_MTD_OBSOLETE_CHIPS is not set
469
470#
471# Mapping drivers for chip access
472#
473CONFIG_MTD_COMPLEX_MAPPINGS=y
474# CONFIG_MTD_PHYSMAP is not set
475CONFIG_MTD_BF5xx=m
476CONFIG_BFIN_FLASH_SIZE=0x400000
477CONFIG_EBIU_FLASH_BASE=0x20000000
478
479#
480# FLASH_EBIU_AMBCTL Control
481#
482CONFIG_BFIN_FLASH_BANK_0=0x7BB0
483CONFIG_BFIN_FLASH_BANK_1=0x7BB0
484CONFIG_BFIN_FLASH_BANK_2=0x7BB0
485CONFIG_BFIN_FLASH_BANK_3=0x7BB0
486# CONFIG_MTD_UCLINUX is not set
487# CONFIG_MTD_PLATRAM is not set
488
489#
490# Self-contained MTD device drivers
491#
492# CONFIG_MTD_SLRAM is not set
493# CONFIG_MTD_PHRAM is not set
494# CONFIG_MTD_MTDRAM is not set
495# CONFIG_MTD_BLOCK2MTD is not set
496
497#
498# Disk-On-Chip Device Drivers
499#
500# CONFIG_MTD_DOC2000 is not set
501# CONFIG_MTD_DOC2001 is not set
502# CONFIG_MTD_DOC2001PLUS is not set
503
504#
505# NAND Flash Device Drivers
506#
507# CONFIG_MTD_NAND is not set
508
509#
510# OneNAND Flash Device Drivers
511#
512# CONFIG_MTD_ONENAND is not set
513
514#
515# Parallel port support
516#
517# CONFIG_PARPORT is not set
518
519#
520# Plug and Play support
521#
522
523#
524# Block devices
525#
526# CONFIG_BLK_DEV_COW_COMMON is not set
527# CONFIG_BLK_DEV_LOOP is not set
528# CONFIG_BLK_DEV_NBD is not set
529CONFIG_BLK_DEV_RAM=y
530CONFIG_BLK_DEV_RAM_COUNT=16
531CONFIG_BLK_DEV_RAM_SIZE=4096
532CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
533# CONFIG_BLK_DEV_INITRD is not set
534# CONFIG_CDROM_PKTCDVD is not set
535# CONFIG_ATA_OVER_ETH is not set
536
537#
538# Misc devices
539#
540# CONFIG_TIFM_CORE is not set
541
542#
543# ATA/ATAPI/MFM/RLL support
544#
545# CONFIG_IDE is not set
546
547#
548# SCSI device support
549#
550# CONFIG_RAID_ATTRS is not set
551# CONFIG_SCSI is not set
552# CONFIG_SCSI_NETLINK is not set
553
554#
555# Serial ATA (prod) and Parallel ATA (experimental) drivers
556#
557# CONFIG_ATA is not set
558
559#
560# Multi-device support (RAID and LVM)
561#
562# CONFIG_MD is not set
563
564#
565# Fusion MPT device support
566#
567# CONFIG_FUSION is not set
568
569#
570# IEEE 1394 (FireWire) support
571#
572
573#
574# I2O device support
575#
576
577#
578# Network device support
579#
580CONFIG_NETDEVICES=y
581# CONFIG_DUMMY is not set
582# CONFIG_BONDING is not set
583# CONFIG_EQUALIZER is not set
584# CONFIG_TUN is not set
585
586#
587# PHY device support
588#
589# CONFIG_PHYLIB is not set
590
591#
592# Ethernet (10 or 100Mbit)
593#
594CONFIG_NET_ETHERNET=y
595CONFIG_MII=y
596CONFIG_SMC91X=y
597
598#
599# Ethernet (1000 Mbit)
600#
601
602#
603# Ethernet (10000 Mbit)
604#
605
606#
607# Token Ring devices
608#
609
610#
611# Wireless LAN (non-hamradio)
612#
613# CONFIG_NET_RADIO is not set
614
615#
616# Wan interfaces
617#
618# CONFIG_WAN is not set
619# CONFIG_PPP is not set
620# CONFIG_SLIP is not set
621# CONFIG_SHAPER is not set
622# CONFIG_NETCONSOLE is not set
623# CONFIG_NETPOLL is not set
624# CONFIG_NET_POLL_CONTROLLER is not set
625
626#
627# ISDN subsystem
628#
629# CONFIG_ISDN is not set
630
631#
632# Telephony Support
633#
634# CONFIG_PHONE is not set
635
636#
637# Input device support
638#
639# CONFIG_INPUT is not set
640
641#
642# Hardware I/O ports
643#
644# CONFIG_SERIO is not set
645# CONFIG_GAMEPORT is not set
646
647#
648# Character devices
649#
650# CONFIG_AD9960 is not set
651# CONFIG_SPI_ADC_BF533 is not set
652# CONFIG_BF533_PFLAGS is not set
653# CONFIG_BF5xx_PPIFCD is not set
654# CONFIG_BF5xx_TIMERS is not set
655# CONFIG_BF5xx_PPI is not set
656# CONFIG_BFIN_SPORT is not set
657# CONFIG_BFIN_TIMER_LATENCY is not set
658# CONFIG_VT is not set
659# CONFIG_SERIAL_NONSTANDARD is not set
660
661#
662# Serial drivers
663#
664# CONFIG_SERIAL_8250 is not set
665
666#
667# Non-8250 serial port support
668#
669CONFIG_SERIAL_BFIN=y
670CONFIG_SERIAL_BFIN_CONSOLE=y
671CONFIG_SERIAL_BFIN_DMA=y
672# CONFIG_SERIAL_BFIN_PIO is not set
673CONFIG_SERIAL_BFIN_UART0=y
674# CONFIG_BFIN_UART0_CTSRTS is not set
675CONFIG_SERIAL_CORE=y
676CONFIG_SERIAL_CORE_CONSOLE=y
677# CONFIG_SERIAL_BFIN_SPORT is not set
678CONFIG_UNIX98_PTYS=y
679# CONFIG_LEGACY_PTYS is not set
680
681#
682# CAN, the car bus and industrial fieldbus
683#
684# CONFIG_CAN4LINUX is not set
685
686#
687# IPMI
688#
689# CONFIG_IPMI_HANDLER is not set
690
691#
692# Watchdog Cards
693#
694# CONFIG_WATCHDOG is not set
695CONFIG_HW_RANDOM=y
696# CONFIG_GEN_RTC is not set
697CONFIG_BLACKFIN_DPMC=y
698# CONFIG_DTLK is not set
699# CONFIG_R3964 is not set
700
701#
702# Ftape, the floppy tape device driver
703#
704# CONFIG_RAW_DRIVER is not set
705
706#
707# TPM devices
708#
709# CONFIG_TCG_TPM is not set
710
711#
712# I2C support
713#
714# CONFIG_I2C is not set
715
716#
717# SPI support
718#
719# CONFIG_SPI is not set
720# CONFIG_SPI_MASTER is not set
721
722#
723# Dallas's 1-wire bus
724#
725# CONFIG_W1 is not set
726
727#
728# Hardware Monitoring support
729#
730CONFIG_HWMON=y
731# CONFIG_HWMON_VID is not set
732# CONFIG_SENSORS_ABITUGURU is not set
733# CONFIG_SENSORS_F71805F is not set
734# CONFIG_SENSORS_VT1211 is not set
735# CONFIG_HWMON_DEBUG_CHIP is not set
736
737#
738# Multimedia devices
739#
740# CONFIG_VIDEO_DEV is not set
741
742#
743# Digital Video Broadcasting Devices
744#
745# CONFIG_DVB is not set
746
747#
748# Graphics support
749#
750CONFIG_FIRMWARE_EDID=y
751# CONFIG_FB is not set
752# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
753
754#
755# Sound
756#
757# CONFIG_SOUND is not set
758
759#
760# USB support
761#
762CONFIG_USB_ARCH_HAS_HCD=y
763# CONFIG_USB_ARCH_HAS_OHCI is not set
764# CONFIG_USB_ARCH_HAS_EHCI is not set
765# CONFIG_USB is not set
766
767#
768# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
769#
770
771#
772# USB Gadget Support
773#
774# CONFIG_USB_GADGET is not set
775
776#
777# MMC/SD Card support
778#
779# CONFIG_MMC is not set
780
781#
782# LED devices
783#
784# CONFIG_NEW_LEDS is not set
785
786#
787# LED drivers
788#
789
790#
791# LED Triggers
792#
793
794#
795# InfiniBand support
796#
797
798#
799# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
800#
801
802#
803# Real Time Clock
804#
805CONFIG_RTC_LIB=y
806CONFIG_RTC_CLASS=y
807CONFIG_RTC_HCTOSYS=y
808CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
809# CONFIG_RTC_DEBUG is not set
810
811#
812# RTC interfaces
813#
814CONFIG_RTC_INTF_SYSFS=y
815CONFIG_RTC_INTF_PROC=y
816CONFIG_RTC_INTF_DEV=y
817# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
818
819#
820# RTC drivers
821#
822# CONFIG_RTC_DRV_DS1553 is not set
823# CONFIG_RTC_DRV_DS1742 is not set
824# CONFIG_RTC_DRV_M48T86 is not set
825# CONFIG_RTC_DRV_TEST is not set
826# CONFIG_RTC_DRV_V3020 is not set
827CONFIG_RTC_DRV_BFIN=y
828
829#
830# DMA Engine support
831#
832# CONFIG_DMA_ENGINE is not set
833
834#
835# DMA Clients
836#
837
838#
839# DMA Devices
840#
841
842#
843# PBX support
844#
845# CONFIG_PBX is not set
846
847#
848# File systems
849#
850CONFIG_EXT2_FS=y
851CONFIG_EXT2_FS_XATTR=y
852# CONFIG_EXT2_FS_POSIX_ACL is not set
853# CONFIG_EXT2_FS_SECURITY is not set
854# CONFIG_EXT3_FS is not set
855# CONFIG_EXT4DEV_FS is not set
856CONFIG_FS_MBCACHE=y
857# CONFIG_REISERFS_FS is not set
858# CONFIG_JFS_FS is not set
859# CONFIG_FS_POSIX_ACL is not set
860# CONFIG_XFS_FS is not set
861# CONFIG_GFS2_FS is not set
862# CONFIG_OCFS2_FS is not set
863# CONFIG_MINIX_FS is not set
864# CONFIG_ROMFS_FS is not set
865# CONFIG_INOTIFY is not set
866# CONFIG_QUOTA is not set
867# CONFIG_DNOTIFY is not set
868# CONFIG_AUTOFS_FS is not set
869# CONFIG_AUTOFS4_FS is not set
870# CONFIG_FUSE_FS is not set
871
872#
873# CD-ROM/DVD Filesystems
874#
875# CONFIG_ISO9660_FS is not set
876# CONFIG_UDF_FS is not set
877
878#
879# DOS/FAT/NT Filesystems
880#
881# CONFIG_MSDOS_FS is not set
882# CONFIG_VFAT_FS is not set
883# CONFIG_NTFS_FS is not set
884
885#
886# Pseudo filesystems
887#
888CONFIG_PROC_FS=y
889CONFIG_PROC_SYSCTL=y
890CONFIG_SYSFS=y
891# CONFIG_TMPFS is not set
892# CONFIG_HUGETLB_PAGE is not set
893CONFIG_RAMFS=y
894# CONFIG_CONFIGFS_FS is not set
895
896#
897# Miscellaneous filesystems
898#
899# CONFIG_ADFS_FS is not set
900# CONFIG_AFFS_FS is not set
901# CONFIG_HFS_FS is not set
902# CONFIG_HFSPLUS_FS is not set
903# CONFIG_BEFS_FS is not set
904# CONFIG_BFS_FS is not set
905# CONFIG_EFS_FS is not set
906CONFIG_YAFFS_FS=m
907CONFIG_YAFFS_YAFFS1=y
908# CONFIG_YAFFS_DOES_ECC is not set
909CONFIG_YAFFS_YAFFS2=y
910CONFIG_YAFFS_AUTO_YAFFS2=y
911# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
912CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10
913# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
914# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
915CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
916# CONFIG_JFFS_FS is not set
917CONFIG_JFFS2_FS=m
918CONFIG_JFFS2_FS_DEBUG=0
919CONFIG_JFFS2_FS_WRITEBUFFER=y
920# CONFIG_JFFS2_SUMMARY is not set
921# CONFIG_JFFS2_FS_XATTR is not set
922# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
923CONFIG_JFFS2_ZLIB=y
924CONFIG_JFFS2_RTIME=y
925# CONFIG_JFFS2_RUBIN is not set
926# CONFIG_CRAMFS is not set
927# CONFIG_VXFS_FS is not set
928# CONFIG_HPFS_FS is not set
929# CONFIG_QNX4FS_FS is not set
930# CONFIG_SYSV_FS is not set
931# CONFIG_UFS_FS is not set
932
933#
934# Network File Systems
935#
936CONFIG_NFS_FS=m
937CONFIG_NFS_V3=y
938# CONFIG_NFS_V3_ACL is not set
939# CONFIG_NFS_V4 is not set
940# CONFIG_NFS_DIRECTIO is not set
941# CONFIG_NFSD is not set
942CONFIG_LOCKD=m
943CONFIG_LOCKD_V4=y
944CONFIG_NFS_COMMON=y
945CONFIG_SUNRPC=m
946# CONFIG_RPCSEC_GSS_KRB5 is not set
947# CONFIG_RPCSEC_GSS_SPKM3 is not set
948# CONFIG_SMB_FS is not set
949# CONFIG_CIFS is not set
950# CONFIG_NCP_FS is not set
951# CONFIG_CODA_FS is not set
952# CONFIG_AFS_FS is not set
953# CONFIG_9P_FS is not set
954
955#
956# Partition Types
957#
958# CONFIG_PARTITION_ADVANCED is not set
959CONFIG_MSDOS_PARTITION=y
960
961#
962# Native Language Support
963#
964# CONFIG_NLS is not set
965
966#
967# Profiling support
968#
969# CONFIG_PROFILING is not set
970
971#
972# Kernel hacking
973#
974# CONFIG_PRINTK_TIME is not set
975CONFIG_ENABLE_MUST_CHECK=y
976# CONFIG_MAGIC_SYSRQ is not set
977# CONFIG_UNUSED_SYMBOLS is not set
978# CONFIG_DEBUG_KERNEL is not set
979CONFIG_LOG_BUF_SHIFT=14
980# CONFIG_DEBUG_BUGVERBOSE is not set
981# CONFIG_DEBUG_FS is not set
982# CONFIG_UNWIND_INFO is not set
983# CONFIG_HEADERS_CHECK is not set
984# CONFIG_DEBUG_SERIAL_EARLY_INIT is not set
985CONFIG_DEBUG_HUNT_FOR_ZERO=y
986# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
987# CONFIG_BOOTPARAM is not set
988# CONFIG_NO_KERNEL_MSG is not set
989CONFIG_CPLB_INFO=y
990# CONFIG_NO_ACCESS_CHECK is not set
991
992#
993# Security options
994#
995# CONFIG_KEYS is not set
996CONFIG_SECURITY=y
997# CONFIG_SECURITY_NETWORK is not set
998CONFIG_SECURITY_CAPABILITIES=y
999
1000#
1001# Cryptographic options
1002#
1003# CONFIG_CRYPTO is not set
1004
1005#
1006# Library routines
1007#
1008# CONFIG_CRC_CCITT is not set
1009# CONFIG_CRC16 is not set
1010CONFIG_CRC32=y
1011# CONFIG_LIBCRC32C is not set
1012CONFIG_ZLIB_INFLATE=y
1013CONFIG_ZLIB_DEFLATE=m
1014CONFIG_PLIST=y
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
new file mode 100644
index 000000000000..14a948c288a5
--- /dev/null
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -0,0 +1,1296 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20.4
4#
5# CONFIG_MMU is not set
6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
10CONFIG_BFIN=y
11CONFIG_SEMAPHORE_SLEEPERS=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_TIME is not set
17CONFIG_GENERIC_CALIBRATE_DELAY=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_IRQCHIP_DEMUX_GPIO=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21
22#
23# Code maturity level options
24#
25CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36# CONFIG_POSIX_MQUEUE is not set
37# CONFIG_BSD_PROCESS_ACCT is not set
38# CONFIG_TASKSTATS is not set
39# CONFIG_UTS_NS is not set
40# CONFIG_AUDIT is not set
41# CONFIG_IKCONFIG is not set
42CONFIG_SYSFS_DEPRECATED=y
43# CONFIG_RELAY is not set
44CONFIG_INITRAMFS_SOURCE=""
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y
47CONFIG_EMBEDDED=y
48CONFIG_UID16=y
49CONFIG_SYSCTL_SYSCALL=y
50CONFIG_KALLSYMS=y
51# CONFIG_KALLSYMS_EXTRA_PASS is not set
52CONFIG_HOTPLUG=y
53CONFIG_PRINTK=y
54CONFIG_BUG=y
55CONFIG_ELF_CORE=y
56CONFIG_BASE_FULL=y
57CONFIG_FUTEX=y
58CONFIG_EPOLL=y
59CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
60# CONFIG_LIMIT_PAGECACHE is not set
61CONFIG_BUDDY=y
62# CONFIG_NP2 is not set
63CONFIG_SLAB=y
64CONFIG_VM_EVENT_COUNTERS=y
65CONFIG_RT_MUTEXES=y
66CONFIG_TINY_SHMEM=y
67CONFIG_BASE_SMALL=0
68# CONFIG_SLOB is not set
69
70#
71# Loadable module support
72#
73CONFIG_MODULES=y
74CONFIG_MODULE_UNLOAD=y
75# CONFIG_MODULE_FORCE_UNLOAD is not set
76# CONFIG_MODVERSIONS is not set
77# CONFIG_MODULE_SRCVERSION_ALL is not set
78CONFIG_KMOD=y
79
80#
81# Block layer
82#
83CONFIG_BLOCK=y
84# CONFIG_LBD is not set
85# CONFIG_BLK_DEV_IO_TRACE is not set
86# CONFIG_LSF is not set
87
88#
89# IO Schedulers
90#
91CONFIG_IOSCHED_NOOP=y
92CONFIG_IOSCHED_AS=y
93# CONFIG_IOSCHED_DEADLINE is not set
94CONFIG_IOSCHED_CFQ=y
95CONFIG_DEFAULT_AS=y
96# CONFIG_DEFAULT_DEADLINE is not set
97# CONFIG_DEFAULT_CFQ is not set
98# CONFIG_DEFAULT_NOOP is not set
99CONFIG_DEFAULT_IOSCHED="anticipatory"
100# CONFIG_PREEMPT_NONE is not set
101CONFIG_PREEMPT_VOLUNTARY=y
102# CONFIG_PREEMPT is not set
103
104#
105# Blackfin Processor Options
106#
107
108#
109# Processor and Board Settings
110#
111# CONFIG_BF531 is not set
112# CONFIG_BF532 is not set
113CONFIG_BF533=y
114# CONFIG_BF534 is not set
115# CONFIG_BF536 is not set
116# CONFIG_BF537 is not set
117# CONFIG_BF561 is not set
118# CONFIG_BF_REV_0_2 is not set
119CONFIG_BF_REV_0_3=y
120# CONFIG_BF_REV_0_4 is not set
121# CONFIG_BF_REV_0_5 is not set
122CONFIG_BFIN_SINGLE_CORE=y
123# CONFIG_BFIN533_EZKIT is not set
124CONFIG_BFIN533_STAMP=y
125# CONFIG_BFIN537_STAMP is not set
126# CONFIG_BFIN533_BLUETECHNIX_CM is not set
127# CONFIG_BFIN537_BLUETECHNIX_CM is not set
128# CONFIG_BFIN561_BLUETECHNIX_CM is not set
129# CONFIG_BFIN561_EZKIT is not set
130# CONFIG_PNAV10 is not set
131# CONFIG_GENERIC_BOARD is not set
132CONFIG_MEM_MT48LC64M4A2FB_7E=y
133CONFIG_BFIN_SHARED_FLASH_ENET=y
134
135#
136# BF533/2/1 Specific Configuration
137#
138
139#
140# Interrupt Priority Assignment
141#
142
143#
144# Priority
145#
146CONFIG_UART_ERROR=7
147CONFIG_SPORT0_ERROR=7
148CONFIG_SPI_ERROR=7
149CONFIG_SPORT1_ERROR=7
150CONFIG_PPI_ERROR=7
151CONFIG_DMA_ERROR=7
152CONFIG_PLLWAKE_ERROR=7
153CONFIG_RTC_ERROR=8
154CONFIG_DMA0_PPI=8
155CONFIG_DMA1_SPORT0RX=9
156CONFIG_DMA2_SPORT0TX=9
157CONFIG_DMA3_SPORT1RX=9
158CONFIG_DMA4_SPORT1TX=9
159CONFIG_DMA5_SPI=10
160CONFIG_DMA6_UARTRX=10
161CONFIG_DMA7_UARTTX=10
162CONFIG_TIMER0=11
163CONFIG_TIMER1=11
164CONFIG_TIMER2=11
165CONFIG_PFA=12
166CONFIG_PFB=12
167CONFIG_MEMDMA0=13
168CONFIG_MEMDMA1=13
169CONFIG_WDTIMER=13
170
171#
172# Board customizations
173#
174# CONFIG_CMDLINE_BOOL is not set
175
176#
177# Board Setup
178#
179CONFIG_CLKIN_HZ=11059200
180CONFIG_MEM_SIZE=128
181CONFIG_MEM_ADD_WIDTH=11
182CONFIG_ENET_FLASH_PIN=0
183CONFIG_BOOT_LOAD=0x1000
184
185#
186# LED Status Indicators
187#
188# CONFIG_BFIN_ALIVE_LED is not set
189# CONFIG_BFIN_IDLE_LED is not set
190CONFIG_BFIN_ALIVE_LED_PORT=0xFFC00700
191CONFIG_BFIN_ALIVE_LED_DPORT=0xFFC00730
192CONFIG_BFIN_IDLE_LED_PORT=0xFFC00700
193CONFIG_BFIN_IDLE_LED_DPORT=0xFFC00730
194
195#
196# Console UART Setup
197#
198# CONFIG_BAUD_9600 is not set
199# CONFIG_BAUD_19200 is not set
200# CONFIG_BAUD_38400 is not set
201CONFIG_BAUD_57600=y
202# CONFIG_BAUD_115200 is not set
203CONFIG_BAUD_NO_PARITY=y
204# CONFIG_BAUD_PARITY is not set
205CONFIG_BAUD_1_STOPBIT=y
206# CONFIG_BAUD_2_STOPBIT is not set
207
208#
209# Blackfin Kernel Optimizations
210#
211
212#
213# Timer Tick
214#
215# CONFIG_HZ_100 is not set
216CONFIG_HZ_250=y
217# CONFIG_HZ_300 is not set
218# CONFIG_HZ_1000 is not set
219CONFIG_HZ=250
220
221#
222# Memory Optimizations
223#
224CONFIG_I_ENTRY_L1=y
225CONFIG_EXCPT_IRQ_SYSC_L1=y
226CONFIG_DO_IRQ_L1=y
227CONFIG_CORE_TIMER_IRQ_L1=y
228CONFIG_IDLE_L1=y
229CONFIG_SCHEDULE_L1=y
230CONFIG_ARITHMETIC_OPS_L1=y
231CONFIG_ACCESS_OK_L1=y
232CONFIG_MEMSET_L1=y
233CONFIG_MEMCPY_L1=y
234CONFIG_SYS_BFIN_SPINLOCK_L1=y
235# CONFIG_IP_CHECKSUM_L1 is not set
236# CONFIG_SYSCALL_TAB_L1 is not set
237# CONFIG_CPLB_SWITCH_TAB_L1 is not set
238CONFIG_RAMKERNEL=y
239# CONFIG_ROMKERNEL is not set
240CONFIG_SELECT_MEMORY_MODEL=y
241CONFIG_FLATMEM_MANUAL=y
242# CONFIG_DISCONTIGMEM_MANUAL is not set
243# CONFIG_SPARSEMEM_MANUAL is not set
244CONFIG_FLATMEM=y
245CONFIG_FLAT_NODE_MEM_MAP=y
246# CONFIG_SPARSEMEM_STATIC is not set
247CONFIG_SPLIT_PTLOCK_CPUS=4
248# CONFIG_RESOURCES_64BIT is not set
249CONFIG_LARGE_ALLOCS=y
250CONFIG_BFIN_DMA_5XX=y
251# CONFIG_DMA_UNCACHED_2M is not set
252CONFIG_DMA_UNCACHED_1M=y
253# CONFIG_DMA_UNCACHED_NONE is not set
254
255#
256# Cache Support
257#
258CONFIG_BLKFIN_CACHE=y
259CONFIG_BLKFIN_DCACHE=y
260# CONFIG_BLKFIN_DCACHE_BANKA is not set
261# CONFIG_BLKFIN_CACHE_LOCK is not set
262# CONFIG_BLKFIN_WB is not set
263CONFIG_BLKFIN_WT=y
264CONFIG_L1_MAX_PIECE=16
265
266#
267# Clock Settings
268#
269# CONFIG_BFIN_KERNEL_CLOCK is not set
270
271#
272# Asynchonous Memory Configuration
273#
274
275#
276# EBIU_AMBCTL Global Control
277#
278CONFIG_C_AMCKEN=y
279CONFIG_C_CDPRIO=y
280# CONFIG_C_AMBEN is not set
281# CONFIG_C_AMBEN_B0 is not set
282# CONFIG_C_AMBEN_B0_B1 is not set
283# CONFIG_C_AMBEN_B0_B1_B2 is not set
284CONFIG_C_AMBEN_ALL=y
285
286#
287# EBIU_AMBCTL Control
288#
289CONFIG_BANK_0=0x7BB0
290CONFIG_BANK_1=0x7BB0
291CONFIG_BANK_2=0x7BB0
292CONFIG_BANK_3=0x99B3
293
294#
295# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
296#
297# CONFIG_PCI is not set
298
299#
300# PCCARD (PCMCIA/CardBus) support
301#
302# CONFIG_PCCARD is not set
303
304#
305# PCI Hotplug Support
306#
307
308#
309# Executable file formats
310#
311CONFIG_BINFMT_ELF_FDPIC=y
312CONFIG_BINFMT_FLAT=y
313CONFIG_BINFMT_ZFLAT=y
314# CONFIG_BINFMT_SHARED_FLAT is not set
315# CONFIG_BINFMT_MISC is not set
316
317#
318# Power management options
319#
320CONFIG_PM=y
321CONFIG_PM_LEGACY=y
322# CONFIG_PM_DEBUG is not set
323# CONFIG_PM_SYSFS_DEPRECATED is not set
324CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y
325# CONFIG_PM_WAKEUP_BY_GPIO is not set
326# CONFIG_PM_WAKEUP_GPIO_API is not set
327CONFIG_PM_WAKEUP_SIC_IWR=0x100000
328
329#
330# CPU Frequency scaling
331#
332# CONFIG_CPU_FREQ is not set
333
334#
335# Networking
336#
337CONFIG_NET=y
338
339#
340# Networking options
341#
342# CONFIG_NETDEBUG is not set
343CONFIG_PACKET=y
344# CONFIG_PACKET_MMAP is not set
345CONFIG_UNIX=y
346CONFIG_XFRM=y
347# CONFIG_XFRM_USER is not set
348# CONFIG_XFRM_SUB_POLICY is not set
349# CONFIG_NET_KEY is not set
350CONFIG_INET=y
351# CONFIG_IP_MULTICAST is not set
352# CONFIG_IP_ADVANCED_ROUTER is not set
353CONFIG_IP_FIB_HASH=y
354CONFIG_IP_PNP=y
355# CONFIG_IP_PNP_DHCP is not set
356# CONFIG_IP_PNP_BOOTP is not set
357# CONFIG_IP_PNP_RARP is not set
358# CONFIG_NET_IPIP is not set
359# CONFIG_NET_IPGRE is not set
360# CONFIG_ARPD is not set
361CONFIG_SYN_COOKIES=y
362# CONFIG_INET_AH is not set
363# CONFIG_INET_ESP is not set
364# CONFIG_INET_IPCOMP is not set
365# CONFIG_INET_XFRM_TUNNEL is not set
366# CONFIG_INET_TUNNEL is not set
367CONFIG_INET_XFRM_MODE_TRANSPORT=y
368CONFIG_INET_XFRM_MODE_TUNNEL=y
369CONFIG_INET_XFRM_MODE_BEET=y
370CONFIG_INET_DIAG=y
371CONFIG_INET_TCP_DIAG=y
372# CONFIG_TCP_CONG_ADVANCED is not set
373CONFIG_TCP_CONG_CUBIC=y
374CONFIG_DEFAULT_TCP_CONG="cubic"
375# CONFIG_TCP_MD5SIG is not set
376# CONFIG_IPV6 is not set
377# CONFIG_INET6_XFRM_TUNNEL is not set
378# CONFIG_INET6_TUNNEL is not set
379# CONFIG_NETLABEL is not set
380# CONFIG_NETWORK_SECMARK is not set
381# CONFIG_NETFILTER is not set
382
383#
384# DCCP Configuration (EXPERIMENTAL)
385#
386# CONFIG_IP_DCCP is not set
387
388#
389# SCTP Configuration (EXPERIMENTAL)
390#
391# CONFIG_IP_SCTP is not set
392
393#
394# TIPC Configuration (EXPERIMENTAL)
395#
396# CONFIG_TIPC is not set
397# CONFIG_ATM is not set
398# CONFIG_BRIDGE is not set
399# CONFIG_VLAN_8021Q is not set
400# CONFIG_DECNET is not set
401# CONFIG_LLC2 is not set
402# CONFIG_IPX is not set
403# CONFIG_ATALK is not set
404# CONFIG_X25 is not set
405# CONFIG_LAPB is not set
406# CONFIG_ECONET is not set
407# CONFIG_WAN_ROUTER is not set
408
409#
410# QoS and/or fair queueing
411#
412# CONFIG_NET_SCHED is not set
413
414#
415# Network testing
416#
417# CONFIG_NET_PKTGEN is not set
418# CONFIG_HAMRADIO is not set
419CONFIG_IRDA=m
420
421#
422# IrDA protocols
423#
424CONFIG_IRLAN=m
425CONFIG_IRCOMM=m
426# CONFIG_IRDA_ULTRA is not set
427
428#
429# IrDA options
430#
431CONFIG_IRDA_CACHE_LAST_LSAP=y
432# CONFIG_IRDA_FAST_RR is not set
433# CONFIG_IRDA_DEBUG is not set
434
435#
436# Infrared-port device drivers
437#
438
439#
440# SIR device drivers
441#
442CONFIG_IRTTY_SIR=m
443
444#
445# Dongle support
446#
447# CONFIG_DONGLE is not set
448
449#
450# Old SIR device drivers
451#
452# CONFIG_IRPORT_SIR is not set
453
454#
455# Old Serial dongle support
456#
457
458#
459# FIR device drivers
460#
461# CONFIG_BT is not set
462# CONFIG_IEEE80211 is not set
463
464#
465# Device Drivers
466#
467
468#
469# Generic Driver Options
470#
471CONFIG_STANDALONE=y
472CONFIG_PREVENT_FIRMWARE_BUILD=y
473# CONFIG_FW_LOADER is not set
474# CONFIG_SYS_HYPERVISOR is not set
475
476#
477# Connector - unified userspace <-> kernelspace linker
478#
479# CONFIG_CONNECTOR is not set
480
481#
482# Memory Technology Devices (MTD)
483#
484CONFIG_MTD=y
485# CONFIG_MTD_DEBUG is not set
486# CONFIG_MTD_CONCAT is not set
487CONFIG_MTD_PARTITIONS=y
488# CONFIG_MTD_REDBOOT_PARTS is not set
489# CONFIG_MTD_CMDLINE_PARTS is not set
490
491#
492# User Modules And Translation Layers
493#
494CONFIG_MTD_CHAR=m
495CONFIG_MTD_BLKDEVS=y
496CONFIG_MTD_BLOCK=y
497# CONFIG_FTL is not set
498# CONFIG_NFTL is not set
499# CONFIG_INFTL is not set
500# CONFIG_RFD_FTL is not set
501# CONFIG_SSFDC is not set
502
503#
504# RAM/ROM/Flash chip drivers
505#
506# CONFIG_MTD_CFI is not set
507CONFIG_MTD_JEDECPROBE=m
508CONFIG_MTD_GEN_PROBE=m
509# CONFIG_MTD_CFI_ADV_OPTIONS is not set
510CONFIG_MTD_MAP_BANK_WIDTH_1=y
511CONFIG_MTD_MAP_BANK_WIDTH_2=y
512CONFIG_MTD_MAP_BANK_WIDTH_4=y
513# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
514# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
515# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
516CONFIG_MTD_CFI_I1=y
517CONFIG_MTD_CFI_I2=y
518# CONFIG_MTD_CFI_I4 is not set
519# CONFIG_MTD_CFI_I8 is not set
520# CONFIG_MTD_CFI_INTELEXT is not set
521# CONFIG_MTD_CFI_AMDSTD is not set
522# CONFIG_MTD_CFI_STAA is not set
523CONFIG_MTD_MW320D=m
524CONFIG_MTD_RAM=y
525CONFIG_MTD_ROM=m
526# CONFIG_MTD_ABSENT is not set
527# CONFIG_MTD_OBSOLETE_CHIPS is not set
528
529#
530# Mapping drivers for chip access
531#
532CONFIG_MTD_COMPLEX_MAPPINGS=y
533# CONFIG_MTD_PHYSMAP is not set
534CONFIG_MTD_BF5xx=m
535CONFIG_BFIN_FLASH_SIZE=0x400000
536CONFIG_EBIU_FLASH_BASE=0x20000000
537
538#
539# FLASH_EBIU_AMBCTL Control
540#
541CONFIG_BFIN_FLASH_BANK_0=0x7BB0
542CONFIG_BFIN_FLASH_BANK_1=0x7BB0
543CONFIG_BFIN_FLASH_BANK_2=0x7BB0
544CONFIG_BFIN_FLASH_BANK_3=0x7BB0
545# CONFIG_MTD_UCLINUX is not set
546# CONFIG_MTD_PLATRAM is not set
547
548#
549# Self-contained MTD device drivers
550#
551# CONFIG_MTD_DATAFLASH is not set
552# CONFIG_MTD_M25P80 is not set
553# CONFIG_MTD_SLRAM is not set
554# CONFIG_MTD_PHRAM is not set
555# CONFIG_MTD_MTDRAM is not set
556# CONFIG_MTD_BLOCK2MTD is not set
557
558#
559# Disk-On-Chip Device Drivers
560#
561# CONFIG_MTD_DOC2000 is not set
562# CONFIG_MTD_DOC2001 is not set
563# CONFIG_MTD_DOC2001PLUS is not set
564
565#
566# NAND Flash Device Drivers
567#
568# CONFIG_MTD_NAND is not set
569
570#
571# OneNAND Flash Device Drivers
572#
573# CONFIG_MTD_ONENAND is not set
574
575#
576# Parallel port support
577#
578# CONFIG_PARPORT is not set
579
580#
581# Plug and Play support
582#
583
584#
585# Block devices
586#
587# CONFIG_BLK_DEV_COW_COMMON is not set
588# CONFIG_BLK_DEV_LOOP is not set
589# CONFIG_BLK_DEV_NBD is not set
590CONFIG_BLK_DEV_RAM=y
591CONFIG_BLK_DEV_RAM_COUNT=16
592CONFIG_BLK_DEV_RAM_SIZE=4096
593CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
594# CONFIG_BLK_DEV_INITRD is not set
595# CONFIG_CDROM_PKTCDVD is not set
596# CONFIG_ATA_OVER_ETH is not set
597
598#
599# Misc devices
600#
601# CONFIG_TIFM_CORE is not set
602
603#
604# ATA/ATAPI/MFM/RLL support
605#
606# CONFIG_IDE is not set
607
608#
609# SCSI device support
610#
611# CONFIG_RAID_ATTRS is not set
612# CONFIG_SCSI is not set
613# CONFIG_SCSI_NETLINK is not set
614
615#
616# Serial ATA (prod) and Parallel ATA (experimental) drivers
617#
618# CONFIG_ATA is not set
619
620#
621# Multi-device support (RAID and LVM)
622#
623# CONFIG_MD is not set
624
625#
626# Fusion MPT device support
627#
628# CONFIG_FUSION is not set
629
630#
631# IEEE 1394 (FireWire) support
632#
633
634#
635# I2O device support
636#
637
638#
639# Network device support
640#
641CONFIG_NETDEVICES=y
642# CONFIG_DUMMY is not set
643# CONFIG_BONDING is not set
644# CONFIG_EQUALIZER is not set
645# CONFIG_TUN is not set
646
647#
648# PHY device support
649#
650# CONFIG_PHYLIB is not set
651
652#
653# Ethernet (10 or 100Mbit)
654#
655CONFIG_NET_ETHERNET=y
656CONFIG_MII=y
657CONFIG_SMC91X=y
658
659#
660# Ethernet (1000 Mbit)
661#
662
663#
664# Ethernet (10000 Mbit)
665#
666
667#
668# Token Ring devices
669#
670
671#
672# Wireless LAN (non-hamradio)
673#
674# CONFIG_NET_RADIO is not set
675
676#
677# Wan interfaces
678#
679# CONFIG_WAN is not set
680# CONFIG_PPP is not set
681# CONFIG_SLIP is not set
682# CONFIG_SHAPER is not set
683# CONFIG_NETCONSOLE is not set
684# CONFIG_NETPOLL is not set
685# CONFIG_NET_POLL_CONTROLLER is not set
686
687#
688# ISDN subsystem
689#
690# CONFIG_ISDN is not set
691
692#
693# Telephony Support
694#
695# CONFIG_PHONE is not set
696
697#
698# Input device support
699#
700CONFIG_INPUT=y
701# CONFIG_INPUT_FF_MEMLESS is not set
702
703#
704# Userland interfaces
705#
706# CONFIG_INPUT_MOUSEDEV is not set
707# CONFIG_INPUT_JOYDEV is not set
708# CONFIG_INPUT_TSDEV is not set
709CONFIG_INPUT_EVDEV=m
710# CONFIG_INPUT_EVBUG is not set
711
712#
713# Input Device Drivers
714#
715# CONFIG_INPUT_KEYBOARD is not set
716# CONFIG_INPUT_MOUSE is not set
717# CONFIG_INPUT_JOYSTICK is not set
718# CONFIG_INPUT_TOUCHSCREEN is not set
719CONFIG_INPUT_MISC=y
720# CONFIG_INPUT_UINPUT is not set
721# CONFIG_BF53X_PFBUTTONS is not set
722CONFIG_TWI_KEYPAD=m
723CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=39
724
725#
726# Hardware I/O ports
727#
728# CONFIG_SERIO is not set
729# CONFIG_GAMEPORT is not set
730
731#
732# Character devices
733#
734# CONFIG_AD9960 is not set
735# CONFIG_SPI_ADC_BF533 is not set
736# CONFIG_BF533_PFLAGS is not set
737# CONFIG_BF5xx_PPIFCD is not set
738# CONFIG_BF5xx_TIMERS is not set
739# CONFIG_BF5xx_PPI is not set
740CONFIG_BFIN_SPORT=y
741# CONFIG_BFIN_TIMER_LATENCY is not set
742CONFIG_TWI_LCD=m
743CONFIG_TWI_LCD_SLAVE_ADDR=34
744# CONFIG_AD5304 is not set
745# CONFIG_VT is not set
746# CONFIG_SERIAL_NONSTANDARD is not set
747
748#
749# Serial drivers
750#
751# CONFIG_SERIAL_8250 is not set
752
753#
754# Non-8250 serial port support
755#
756CONFIG_SERIAL_BFIN=y
757CONFIG_SERIAL_BFIN_CONSOLE=y
758CONFIG_SERIAL_BFIN_DMA=y
759# CONFIG_SERIAL_BFIN_PIO is not set
760CONFIG_SERIAL_BFIN_UART0=y
761# CONFIG_BFIN_UART0_CTSRTS is not set
762CONFIG_SERIAL_CORE=y
763CONFIG_SERIAL_CORE_CONSOLE=y
764# CONFIG_SERIAL_BFIN_SPORT is not set
765CONFIG_UNIX98_PTYS=y
766# CONFIG_LEGACY_PTYS is not set
767
768#
769# CAN, the car bus and industrial fieldbus
770#
771# CONFIG_CAN4LINUX is not set
772
773#
774# IPMI
775#
776# CONFIG_IPMI_HANDLER is not set
777
778#
779# Watchdog Cards
780#
781# CONFIG_WATCHDOG is not set
782CONFIG_HW_RANDOM=y
783# CONFIG_GEN_RTC is not set
784CONFIG_BLACKFIN_DPMC=y
785# CONFIG_DTLK is not set
786# CONFIG_R3964 is not set
787# CONFIG_RAW_DRIVER is not set
788
789#
790# TPM devices
791#
792# CONFIG_TCG_TPM is not set
793
794#
795# I2C support
796#
797CONFIG_I2C=m
798CONFIG_I2C_CHARDEV=m
799
800#
801# I2C Algorithms
802#
803CONFIG_I2C_ALGOBIT=m
804# CONFIG_I2C_ALGOPCF is not set
805# CONFIG_I2C_ALGOPCA is not set
806
807#
808# I2C Hardware Bus support
809#
810# CONFIG_I2C_BLACKFIN_GPIO is not set
811# CONFIG_I2C_OCORES is not set
812# CONFIG_I2C_PARPORT_LIGHT is not set
813# CONFIG_I2C_STUB is not set
814# CONFIG_I2C_PCA_ISA is not set
815
816#
817# Miscellaneous I2C Chip support
818#
819# CONFIG_SENSORS_DS1337 is not set
820# CONFIG_SENSORS_DS1374 is not set
821# CONFIG_SENSORS_AD5252 is not set
822# CONFIG_SENSORS_EEPROM is not set
823# CONFIG_SENSORS_PCF8574 is not set
824# CONFIG_SENSORS_PCF8575 is not set
825# CONFIG_SENSORS_PCA9543 is not set
826# CONFIG_SENSORS_PCA9539 is not set
827# CONFIG_SENSORS_PCF8591 is not set
828# CONFIG_SENSORS_MAX6875 is not set
829# CONFIG_I2C_DEBUG_CORE is not set
830# CONFIG_I2C_DEBUG_ALGO is not set
831# CONFIG_I2C_DEBUG_BUS is not set
832# CONFIG_I2C_DEBUG_CHIP is not set
833
834#
835# SPI support
836#
837CONFIG_SPI=y
838CONFIG_SPI_MASTER=y
839
840#
841# SPI Master Controller Drivers
842#
843# CONFIG_SPI_BITBANG is not set
844
845#
846# SPI Protocol Masters
847#
848CONFIG_SPI_BFIN=y
849
850#
851# Dallas's 1-wire bus
852#
853# CONFIG_W1 is not set
854
855#
856# Hardware Monitoring support
857#
858CONFIG_HWMON=y
859# CONFIG_HWMON_VID is not set
860# CONFIG_SENSORS_ABITUGURU is not set
861# CONFIG_SENSORS_ADM1021 is not set
862# CONFIG_SENSORS_ADM1025 is not set
863# CONFIG_SENSORS_ADM1026 is not set
864# CONFIG_SENSORS_ADM1031 is not set
865# CONFIG_SENSORS_ADM9240 is not set
866# CONFIG_SENSORS_ASB100 is not set
867# CONFIG_SENSORS_ATXP1 is not set
868# CONFIG_SENSORS_DS1621 is not set
869# CONFIG_SENSORS_F71805F is not set
870# CONFIG_SENSORS_FSCHER is not set
871# CONFIG_SENSORS_FSCPOS is not set
872# CONFIG_SENSORS_GL518SM is not set
873# CONFIG_SENSORS_GL520SM is not set
874# CONFIG_SENSORS_IT87 is not set
875# CONFIG_SENSORS_LM63 is not set
876# CONFIG_SENSORS_LM70 is not set
877# CONFIG_SENSORS_LM75 is not set
878# CONFIG_SENSORS_LM77 is not set
879# CONFIG_SENSORS_LM78 is not set
880# CONFIG_SENSORS_LM80 is not set
881# CONFIG_SENSORS_LM83 is not set
882# CONFIG_SENSORS_LM85 is not set
883# CONFIG_SENSORS_LM87 is not set
884# CONFIG_SENSORS_LM90 is not set
885# CONFIG_SENSORS_LM92 is not set
886# CONFIG_SENSORS_MAX1619 is not set
887# CONFIG_SENSORS_PC87360 is not set
888# CONFIG_SENSORS_PC87427 is not set
889# CONFIG_SENSORS_SMSC47M1 is not set
890# CONFIG_SENSORS_SMSC47M192 is not set
891# CONFIG_SENSORS_SMSC47B397 is not set
892# CONFIG_SENSORS_VT1211 is not set
893# CONFIG_SENSORS_W83781D is not set
894# CONFIG_SENSORS_W83791D is not set
895# CONFIG_SENSORS_W83792D is not set
896# CONFIG_SENSORS_W83793 is not set
897# CONFIG_SENSORS_W83L785TS is not set
898# CONFIG_SENSORS_W83627HF is not set
899# CONFIG_SENSORS_W83627EHF is not set
900# CONFIG_HWMON_DEBUG_CHIP is not set
901
902#
903# Multimedia devices
904#
905# CONFIG_VIDEO_DEV is not set
906
907#
908# Digital Video Broadcasting Devices
909#
910# CONFIG_DVB is not set
911
912#
913# Graphics support
914#
915CONFIG_FIRMWARE_EDID=y
916CONFIG_FB=m
917CONFIG_FB_CFB_FILLRECT=m
918CONFIG_FB_CFB_COPYAREA=m
919CONFIG_FB_CFB_IMAGEBLIT=m
920# CONFIG_FB_MACMODES is not set
921# CONFIG_FB_BACKLIGHT is not set
922# CONFIG_FB_MODE_HELPERS is not set
923# CONFIG_FB_TILEBLITTING is not set
924CONFIG_FB_BFIN_7171=m
925CONFIG_FB_BFIN_7393=m
926CONFIG_NTSC=y
927# CONFIG_PAL is not set
928# CONFIG_NTSC_640x480 is not set
929# CONFIG_PAL_640x480 is not set
930# CONFIG_NTSC_YCBCR is not set
931# CONFIG_PAL_YCBCR is not set
932CONFIG_ADV7393_1XMEM=y
933# CONFIG_ADV7393_2XMEM is not set
934# CONFIG_FB_S1D13XXX is not set
935# CONFIG_FB_VIRTUAL is not set
936
937#
938# Logo configuration
939#
940# CONFIG_LOGO is not set
941# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
942
943#
944# Sound
945#
946CONFIG_SOUND=m
947
948#
949# Advanced Linux Sound Architecture
950#
951CONFIG_SND=m
952CONFIG_SND_TIMER=m
953CONFIG_SND_PCM=m
954# CONFIG_SND_SEQUENCER is not set
955CONFIG_SND_OSSEMUL=y
956CONFIG_SND_MIXER_OSS=m
957CONFIG_SND_PCM_OSS=m
958CONFIG_SND_PCM_OSS_PLUGINS=y
959# CONFIG_SND_DYNAMIC_MINORS is not set
960CONFIG_SND_SUPPORT_OLD_API=y
961CONFIG_SND_VERBOSE_PROCFS=y
962# CONFIG_SND_VERBOSE_PRINTK is not set
963# CONFIG_SND_DEBUG is not set
964
965#
966# Generic devices
967#
968# CONFIG_SND_DUMMY is not set
969# CONFIG_SND_MTPAV is not set
970# CONFIG_SND_SERIAL_U16550 is not set
971# CONFIG_SND_MPU401 is not set
972
973#
974# Open Sound System
975#
976# CONFIG_SOUND_PRIME is not set
977
978#
979# HID Devices
980#
981CONFIG_HID=y
982
983#
984# USB support
985#
986CONFIG_USB_ARCH_HAS_HCD=y
987# CONFIG_USB_ARCH_HAS_OHCI is not set
988# CONFIG_USB_ARCH_HAS_EHCI is not set
989# CONFIG_USB is not set
990
991#
992# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
993#
994
995#
996# USB Gadget Support
997#
998# CONFIG_USB_GADGET is not set
999
1000#
1001# MMC/SD Card support
1002#
1003# CONFIG_SPI_MMC is not set
1004# CONFIG_MMC is not set
1005
1006#
1007# LED devices
1008#
1009# CONFIG_NEW_LEDS is not set
1010
1011#
1012# LED drivers
1013#
1014
1015#
1016# LED Triggers
1017#
1018
1019#
1020# InfiniBand support
1021#
1022
1023#
1024# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1025#
1026
1027#
1028# Real Time Clock
1029#
1030CONFIG_RTC_LIB=y
1031CONFIG_RTC_CLASS=y
1032CONFIG_RTC_HCTOSYS=y
1033CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1034# CONFIG_RTC_DEBUG is not set
1035
1036#
1037# RTC interfaces
1038#
1039CONFIG_RTC_INTF_SYSFS=y
1040CONFIG_RTC_INTF_PROC=y
1041CONFIG_RTC_INTF_DEV=y
1042# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1043
1044#
1045# RTC drivers
1046#
1047# CONFIG_RTC_DRV_X1205 is not set
1048# CONFIG_RTC_DRV_DS1307 is not set
1049# CONFIG_RTC_DRV_DS1553 is not set
1050# CONFIG_RTC_DRV_ISL1208 is not set
1051# CONFIG_RTC_DRV_DS1672 is not set
1052# CONFIG_RTC_DRV_DS1742 is not set
1053# CONFIG_RTC_DRV_PCF8563 is not set
1054# CONFIG_RTC_DRV_PCF8583 is not set
1055# CONFIG_RTC_DRV_RS5C348 is not set
1056# CONFIG_RTC_DRV_RS5C372 is not set
1057# CONFIG_RTC_DRV_M48T86 is not set
1058# CONFIG_RTC_DRV_TEST is not set
1059# CONFIG_RTC_DRV_MAX6902 is not set
1060# CONFIG_RTC_DRV_V3020 is not set
1061CONFIG_RTC_DRV_BFIN=y
1062
1063#
1064# DMA Engine support
1065#
1066# CONFIG_DMA_ENGINE is not set
1067
1068#
1069# DMA Clients
1070#
1071
1072#
1073# DMA Devices
1074#
1075
1076#
1077# Virtualization
1078#
1079
1080#
1081# PBX support
1082#
1083# CONFIG_PBX is not set
1084
1085#
1086# File systems
1087#
1088CONFIG_EXT2_FS=y
1089CONFIG_EXT2_FS_XATTR=y
1090# CONFIG_EXT2_FS_POSIX_ACL is not set
1091# CONFIG_EXT2_FS_SECURITY is not set
1092# CONFIG_EXT3_FS is not set
1093# CONFIG_EXT4DEV_FS is not set
1094CONFIG_FS_MBCACHE=y
1095# CONFIG_REISERFS_FS is not set
1096# CONFIG_JFS_FS is not set
1097# CONFIG_FS_POSIX_ACL is not set
1098# CONFIG_XFS_FS is not set
1099# CONFIG_GFS2_FS is not set
1100# CONFIG_OCFS2_FS is not set
1101# CONFIG_MINIX_FS is not set
1102# CONFIG_ROMFS_FS is not set
1103CONFIG_INOTIFY=y
1104CONFIG_INOTIFY_USER=y
1105# CONFIG_QUOTA is not set
1106CONFIG_DNOTIFY=y
1107# CONFIG_AUTOFS_FS is not set
1108# CONFIG_AUTOFS4_FS is not set
1109# CONFIG_FUSE_FS is not set
1110
1111#
1112# CD-ROM/DVD Filesystems
1113#
1114# CONFIG_ISO9660_FS is not set
1115# CONFIG_UDF_FS is not set
1116
1117#
1118# DOS/FAT/NT Filesystems
1119#
1120# CONFIG_MSDOS_FS is not set
1121# CONFIG_VFAT_FS is not set
1122# CONFIG_NTFS_FS is not set
1123
1124#
1125# Pseudo filesystems
1126#
1127CONFIG_PROC_FS=y
1128CONFIG_PROC_SYSCTL=y
1129CONFIG_SYSFS=y
1130# CONFIG_TMPFS is not set
1131# CONFIG_HUGETLB_PAGE is not set
1132CONFIG_RAMFS=y
1133# CONFIG_CONFIGFS_FS is not set
1134
1135#
1136# Miscellaneous filesystems
1137#
1138# CONFIG_ADFS_FS is not set
1139# CONFIG_AFFS_FS is not set
1140# CONFIG_HFS_FS is not set
1141# CONFIG_HFSPLUS_FS is not set
1142# CONFIG_BEFS_FS is not set
1143# CONFIG_BFS_FS is not set
1144# CONFIG_EFS_FS is not set
1145CONFIG_YAFFS_FS=m
1146CONFIG_YAFFS_YAFFS1=y
1147# CONFIG_YAFFS_DOES_ECC is not set
1148CONFIG_YAFFS_YAFFS2=y
1149CONFIG_YAFFS_AUTO_YAFFS2=y
1150# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1151CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10
1152# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1153# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1154CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1155CONFIG_JFFS2_FS=m
1156CONFIG_JFFS2_FS_DEBUG=0
1157CONFIG_JFFS2_FS_WRITEBUFFER=y
1158# CONFIG_JFFS2_SUMMARY is not set
1159# CONFIG_JFFS2_FS_XATTR is not set
1160# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1161CONFIG_JFFS2_ZLIB=y
1162CONFIG_JFFS2_RTIME=y
1163# CONFIG_JFFS2_RUBIN is not set
1164# CONFIG_CRAMFS is not set
1165# CONFIG_VXFS_FS is not set
1166# CONFIG_HPFS_FS is not set
1167# CONFIG_QNX4FS_FS is not set
1168# CONFIG_SYSV_FS is not set
1169# CONFIG_UFS_FS is not set
1170
1171#
1172# Network File Systems
1173#
1174CONFIG_NFS_FS=m
1175CONFIG_NFS_V3=y
1176# CONFIG_NFS_V3_ACL is not set
1177# CONFIG_NFS_V4 is not set
1178# CONFIG_NFS_DIRECTIO is not set
1179# CONFIG_NFSD is not set
1180CONFIG_LOCKD=m
1181CONFIG_LOCKD_V4=y
1182CONFIG_NFS_COMMON=y
1183CONFIG_SUNRPC=m
1184# CONFIG_RPCSEC_GSS_KRB5 is not set
1185# CONFIG_RPCSEC_GSS_SPKM3 is not set
1186CONFIG_SMB_FS=m
1187# CONFIG_SMB_NLS_DEFAULT is not set
1188# CONFIG_CIFS is not set
1189# CONFIG_NCP_FS is not set
1190# CONFIG_CODA_FS is not set
1191# CONFIG_AFS_FS is not set
1192# CONFIG_9P_FS is not set
1193
1194#
1195# Partition Types
1196#
1197# CONFIG_PARTITION_ADVANCED is not set
1198CONFIG_MSDOS_PARTITION=y
1199
1200#
1201# Native Language Support
1202#
1203CONFIG_NLS=m
1204CONFIG_NLS_DEFAULT="iso8859-1"
1205# CONFIG_NLS_CODEPAGE_437 is not set
1206# CONFIG_NLS_CODEPAGE_737 is not set
1207# CONFIG_NLS_CODEPAGE_775 is not set
1208# CONFIG_NLS_CODEPAGE_850 is not set
1209# CONFIG_NLS_CODEPAGE_852 is not set
1210# CONFIG_NLS_CODEPAGE_855 is not set
1211# CONFIG_NLS_CODEPAGE_857 is not set
1212# CONFIG_NLS_CODEPAGE_860 is not set
1213# CONFIG_NLS_CODEPAGE_861 is not set
1214# CONFIG_NLS_CODEPAGE_862 is not set
1215# CONFIG_NLS_CODEPAGE_863 is not set
1216# CONFIG_NLS_CODEPAGE_864 is not set
1217# CONFIG_NLS_CODEPAGE_865 is not set
1218# CONFIG_NLS_CODEPAGE_866 is not set
1219# CONFIG_NLS_CODEPAGE_869 is not set
1220# CONFIG_NLS_CODEPAGE_936 is not set
1221# CONFIG_NLS_CODEPAGE_950 is not set
1222# CONFIG_NLS_CODEPAGE_932 is not set
1223# CONFIG_NLS_CODEPAGE_949 is not set
1224# CONFIG_NLS_CODEPAGE_874 is not set
1225# CONFIG_NLS_ISO8859_8 is not set
1226# CONFIG_NLS_CODEPAGE_1250 is not set
1227# CONFIG_NLS_CODEPAGE_1251 is not set
1228# CONFIG_NLS_ASCII is not set
1229# CONFIG_NLS_ISO8859_1 is not set
1230# CONFIG_NLS_ISO8859_2 is not set
1231# CONFIG_NLS_ISO8859_3 is not set
1232# CONFIG_NLS_ISO8859_4 is not set
1233# CONFIG_NLS_ISO8859_5 is not set
1234# CONFIG_NLS_ISO8859_6 is not set
1235# CONFIG_NLS_ISO8859_7 is not set
1236# CONFIG_NLS_ISO8859_9 is not set
1237# CONFIG_NLS_ISO8859_13 is not set
1238# CONFIG_NLS_ISO8859_14 is not set
1239# CONFIG_NLS_ISO8859_15 is not set
1240# CONFIG_NLS_KOI8_R is not set
1241# CONFIG_NLS_KOI8_U is not set
1242# CONFIG_NLS_UTF8 is not set
1243
1244#
1245# Distributed Lock Manager
1246#
1247# CONFIG_DLM is not set
1248
1249#
1250# Profiling support
1251#
1252# CONFIG_PROFILING is not set
1253
1254#
1255# Kernel hacking
1256#
1257# CONFIG_PRINTK_TIME is not set
1258CONFIG_ENABLE_MUST_CHECK=y
1259# CONFIG_MAGIC_SYSRQ is not set
1260# CONFIG_UNUSED_SYMBOLS is not set
1261# CONFIG_DEBUG_FS is not set
1262# CONFIG_HEADERS_CHECK is not set
1263# CONFIG_DEBUG_KERNEL is not set
1264CONFIG_LOG_BUF_SHIFT=14
1265# CONFIG_DEBUG_BUGVERBOSE is not set
1266# CONFIG_DEBUG_SERIAL_EARLY_INIT is not set
1267CONFIG_DEBUG_HUNT_FOR_ZERO=y
1268# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1269CONFIG_CPLB_INFO=y
1270CONFIG_ACCESS_CHECK=y
1271
1272#
1273# Security options
1274#
1275# CONFIG_KEYS is not set
1276CONFIG_SECURITY=y
1277# CONFIG_SECURITY_NETWORK is not set
1278CONFIG_SECURITY_CAPABILITIES=y
1279
1280#
1281# Cryptographic options
1282#
1283# CONFIG_CRYPTO is not set
1284
1285#
1286# Library routines
1287#
1288CONFIG_BITREVERSE=y
1289CONFIG_CRC_CCITT=m
1290# CONFIG_CRC16 is not set
1291CONFIG_CRC32=y
1292# CONFIG_LIBCRC32C is not set
1293CONFIG_ZLIB_INFLATE=y
1294CONFIG_ZLIB_DEFLATE=m
1295CONFIG_PLIST=y
1296CONFIG_IOMAP_COPY=y
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
new file mode 100644
index 000000000000..8ed67dc450fd
--- /dev/null
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -0,0 +1,1332 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20.4
4#
5# CONFIG_MMU is not set
6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
10CONFIG_BFIN=y
11CONFIG_SEMAPHORE_SLEEPERS=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_TIME is not set
17CONFIG_GENERIC_CALIBRATE_DELAY=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_IRQCHIP_DEMUX_GPIO=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21
22#
23# Code maturity level options
24#
25CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36# CONFIG_POSIX_MQUEUE is not set
37# CONFIG_BSD_PROCESS_ACCT is not set
38# CONFIG_TASKSTATS is not set
39# CONFIG_UTS_NS is not set
40# CONFIG_AUDIT is not set
41# CONFIG_IKCONFIG is not set
42CONFIG_SYSFS_DEPRECATED=y
43# CONFIG_RELAY is not set
44CONFIG_INITRAMFS_SOURCE=""
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y
47CONFIG_EMBEDDED=y
48CONFIG_UID16=y
49CONFIG_SYSCTL_SYSCALL=y
50CONFIG_KALLSYMS=y
51# CONFIG_KALLSYMS_EXTRA_PASS is not set
52CONFIG_HOTPLUG=y
53CONFIG_PRINTK=y
54CONFIG_BUG=y
55CONFIG_ELF_CORE=y
56CONFIG_BASE_FULL=y
57CONFIG_FUTEX=y
58CONFIG_EPOLL=y
59CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
60# CONFIG_LIMIT_PAGECACHE is not set
61CONFIG_BUDDY=y
62# CONFIG_NP2 is not set
63CONFIG_SLAB=y
64CONFIG_VM_EVENT_COUNTERS=y
65CONFIG_RT_MUTEXES=y
66CONFIG_TINY_SHMEM=y
67CONFIG_BASE_SMALL=0
68# CONFIG_SLOB is not set
69
70#
71# Loadable module support
72#
73CONFIG_MODULES=y
74CONFIG_MODULE_UNLOAD=y
75# CONFIG_MODULE_FORCE_UNLOAD is not set
76# CONFIG_MODVERSIONS is not set
77# CONFIG_MODULE_SRCVERSION_ALL is not set
78CONFIG_KMOD=y
79
80#
81# Block layer
82#
83CONFIG_BLOCK=y
84# CONFIG_LBD is not set
85# CONFIG_BLK_DEV_IO_TRACE is not set
86# CONFIG_LSF is not set
87
88#
89# IO Schedulers
90#
91CONFIG_IOSCHED_NOOP=y
92CONFIG_IOSCHED_AS=y
93# CONFIG_IOSCHED_DEADLINE is not set
94CONFIG_IOSCHED_CFQ=y
95CONFIG_DEFAULT_AS=y
96# CONFIG_DEFAULT_DEADLINE is not set
97# CONFIG_DEFAULT_CFQ is not set
98# CONFIG_DEFAULT_NOOP is not set
99CONFIG_DEFAULT_IOSCHED="anticipatory"
100# CONFIG_PREEMPT_NONE is not set
101CONFIG_PREEMPT_VOLUNTARY=y
102# CONFIG_PREEMPT is not set
103
104#
105# Blackfin Processor Options
106#
107
108#
109# Processor and Board Settings
110#
111# CONFIG_BF531 is not set
112# CONFIG_BF532 is not set
113# CONFIG_BF533 is not set
114# CONFIG_BF534 is not set
115# CONFIG_BF536 is not set
116CONFIG_BF537=y
117# CONFIG_BF561 is not set
118CONFIG_BF_REV_0_2=y
119# CONFIG_BF_REV_0_3 is not set
120# CONFIG_BF_REV_0_4 is not set
121# CONFIG_BF_REV_0_5 is not set
122CONFIG_BFIN_SINGLE_CORE=y
123# CONFIG_BFIN533_EZKIT is not set
124# CONFIG_BFIN533_STAMP is not set
125CONFIG_BFIN537_STAMP=y
126# CONFIG_BFIN533_BLUETECHNIX_CM is not set
127# CONFIG_BFIN537_BLUETECHNIX_CM is not set
128# CONFIG_BFIN561_BLUETECHNIX_CM is not set
129# CONFIG_BFIN561_EZKIT is not set
130# CONFIG_PNAV10 is not set
131# CONFIG_GENERIC_BOARD is not set
132CONFIG_MEM_MT48LC32M8A2_75=y
133CONFIG_IRQ_PLL_WAKEUP=7
134
135#
136# BF537 Specific Configuration
137#
138
139#
140# PORT F/G Selection
141#
142CONFIG_BF537_PORT_F=y
143# CONFIG_BF537_PORT_G is not set
144# CONFIG_BF537_PORT_H is not set
145
146#
147# Interrupt Priority Assignment
148#
149
150#
151# Priority
152#
153CONFIG_IRQ_DMA_ERROR=7
154CONFIG_IRQ_ERROR=7
155CONFIG_IRQ_RTC=8
156CONFIG_IRQ_PPI=8
157CONFIG_IRQ_SPORT0_RX=9
158CONFIG_IRQ_SPORT0_TX=9
159CONFIG_IRQ_SPORT1_RX=9
160CONFIG_IRQ_SPORT1_TX=9
161CONFIG_IRQ_TWI=10
162CONFIG_IRQ_SPI=10
163CONFIG_IRQ_UART0_RX=10
164CONFIG_IRQ_UART0_TX=10
165CONFIG_IRQ_UART1_RX=10
166CONFIG_IRQ_UART1_TX=10
167CONFIG_IRQ_CAN_RX=11
168CONFIG_IRQ_CAN_TX=11
169CONFIG_IRQ_MAC_RX=11
170CONFIG_IRQ_MAC_TX=11
171CONFIG_IRQ_TMR0=12
172CONFIG_IRQ_TMR1=12
173CONFIG_IRQ_TMR2=12
174CONFIG_IRQ_TMR3=12
175CONFIG_IRQ_TMR4=12
176CONFIG_IRQ_TMR5=12
177CONFIG_IRQ_TMR6=12
178CONFIG_IRQ_TMR7=12
179CONFIG_IRQ_PROG_INTA=12
180CONFIG_IRQ_PORTG_INTB=12
181CONFIG_IRQ_MEM_DMA0=13
182CONFIG_IRQ_MEM_DMA1=13
183CONFIG_IRQ_WATCH=13
184
185#
186# Board customizations
187#
188# CONFIG_CMDLINE_BOOL is not set
189
190#
191# Board Setup
192#
193CONFIG_CLKIN_HZ=25000000
194CONFIG_MEM_SIZE=64
195CONFIG_MEM_ADD_WIDTH=10
196CONFIG_BOOT_LOAD=0x1000
197
198#
199# Console UART Setup
200#
201# CONFIG_BAUD_9600 is not set
202# CONFIG_BAUD_19200 is not set
203# CONFIG_BAUD_38400 is not set
204CONFIG_BAUD_57600=y
205# CONFIG_BAUD_115200 is not set
206CONFIG_BAUD_NO_PARITY=y
207# CONFIG_BAUD_PARITY is not set
208CONFIG_BAUD_1_STOPBIT=y
209# CONFIG_BAUD_2_STOPBIT is not set
210
211#
212# Blackfin Kernel Optimizations
213#
214
215#
216# Timer Tick
217#
218# CONFIG_HZ_100 is not set
219CONFIG_HZ_250=y
220# CONFIG_HZ_300 is not set
221# CONFIG_HZ_1000 is not set
222CONFIG_HZ=250
223
224#
225# Memory Optimizations
226#
227CONFIG_I_ENTRY_L1=y
228CONFIG_EXCPT_IRQ_SYSC_L1=y
229CONFIG_DO_IRQ_L1=y
230CONFIG_CORE_TIMER_IRQ_L1=y
231CONFIG_IDLE_L1=y
232CONFIG_SCHEDULE_L1=y
233CONFIG_ARITHMETIC_OPS_L1=y
234CONFIG_ACCESS_OK_L1=y
235CONFIG_MEMSET_L1=y
236CONFIG_MEMCPY_L1=y
237CONFIG_SYS_BFIN_SPINLOCK_L1=y
238# CONFIG_IP_CHECKSUM_L1 is not set
239# CONFIG_SYSCALL_TAB_L1 is not set
240# CONFIG_CPLB_SWITCH_TAB_L1 is not set
241CONFIG_RAMKERNEL=y
242# CONFIG_ROMKERNEL is not set
243CONFIG_SELECT_MEMORY_MODEL=y
244CONFIG_FLATMEM_MANUAL=y
245# CONFIG_DISCONTIGMEM_MANUAL is not set
246# CONFIG_SPARSEMEM_MANUAL is not set
247CONFIG_FLATMEM=y
248CONFIG_FLAT_NODE_MEM_MAP=y
249# CONFIG_SPARSEMEM_STATIC is not set
250CONFIG_SPLIT_PTLOCK_CPUS=4
251# CONFIG_RESOURCES_64BIT is not set
252CONFIG_LARGE_ALLOCS=y
253CONFIG_BFIN_DMA_5XX=y
254# CONFIG_DMA_UNCACHED_2M is not set
255CONFIG_DMA_UNCACHED_1M=y
256# CONFIG_DMA_UNCACHED_NONE is not set
257
258#
259# Cache Support
260#
261CONFIG_BLKFIN_CACHE=y
262CONFIG_BLKFIN_DCACHE=y
263# CONFIG_BLKFIN_DCACHE_BANKA is not set
264# CONFIG_BLKFIN_CACHE_LOCK is not set
265# CONFIG_BLKFIN_WB is not set
266CONFIG_BLKFIN_WT=y
267CONFIG_L1_MAX_PIECE=16
268
269#
270# Clock Settings
271#
272# CONFIG_BFIN_KERNEL_CLOCK is not set
273
274#
275# Asynchonous Memory Configuration
276#
277
278#
279# EBIU_AMBCTL Global Control
280#
281CONFIG_C_AMCKEN=y
282CONFIG_C_CDPRIO=y
283# CONFIG_C_AMBEN is not set
284# CONFIG_C_AMBEN_B0 is not set
285# CONFIG_C_AMBEN_B0_B1 is not set
286# CONFIG_C_AMBEN_B0_B1_B2 is not set
287CONFIG_C_AMBEN_ALL=y
288
289#
290# EBIU_AMBCTL Control
291#
292CONFIG_BANK_0=0x7BB0
293CONFIG_BANK_1=0x7BB0
294CONFIG_BANK_2=0x7BB0
295CONFIG_BANK_3=0x99B3
296
297#
298# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
299#
300# CONFIG_PCI is not set
301
302#
303# PCCARD (PCMCIA/CardBus) support
304#
305# CONFIG_PCCARD is not set
306
307#
308# PCI Hotplug Support
309#
310
311#
312# Executable file formats
313#
314CONFIG_BINFMT_ELF_FDPIC=y
315CONFIG_BINFMT_FLAT=y
316CONFIG_BINFMT_ZFLAT=y
317# CONFIG_BINFMT_SHARED_FLAT is not set
318# CONFIG_BINFMT_MISC is not set
319
320#
321# Power management options
322#
323CONFIG_PM=y
324CONFIG_PM_LEGACY=y
325# CONFIG_PM_DEBUG is not set
326# CONFIG_PM_SYSFS_DEPRECATED is not set
327CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y
328# CONFIG_PM_WAKEUP_BY_GPIO is not set
329# CONFIG_PM_WAKEUP_GPIO_API is not set
330CONFIG_PM_WAKEUP_SIC_IWR=0x80000000
331
332#
333# CPU Frequency scaling
334#
335# CONFIG_CPU_FREQ is not set
336
337#
338# Networking
339#
340CONFIG_NET=y
341
342#
343# Networking options
344#
345# CONFIG_NETDEBUG is not set
346CONFIG_PACKET=y
347# CONFIG_PACKET_MMAP is not set
348CONFIG_UNIX=y
349CONFIG_XFRM=y
350# CONFIG_XFRM_USER is not set
351# CONFIG_XFRM_SUB_POLICY is not set
352# CONFIG_NET_KEY is not set
353CONFIG_INET=y
354# CONFIG_IP_MULTICAST is not set
355# CONFIG_IP_ADVANCED_ROUTER is not set
356CONFIG_IP_FIB_HASH=y
357CONFIG_IP_PNP=y
358# CONFIG_IP_PNP_DHCP is not set
359# CONFIG_IP_PNP_BOOTP is not set
360# CONFIG_IP_PNP_RARP is not set
361# CONFIG_NET_IPIP is not set
362# CONFIG_NET_IPGRE is not set
363# CONFIG_ARPD is not set
364CONFIG_SYN_COOKIES=y
365# CONFIG_INET_AH is not set
366# CONFIG_INET_ESP is not set
367# CONFIG_INET_IPCOMP is not set
368# CONFIG_INET_XFRM_TUNNEL is not set
369# CONFIG_INET_TUNNEL is not set
370CONFIG_INET_XFRM_MODE_TRANSPORT=y
371CONFIG_INET_XFRM_MODE_TUNNEL=y
372CONFIG_INET_XFRM_MODE_BEET=y
373CONFIG_INET_DIAG=y
374CONFIG_INET_TCP_DIAG=y
375# CONFIG_TCP_CONG_ADVANCED is not set
376CONFIG_TCP_CONG_CUBIC=y
377CONFIG_DEFAULT_TCP_CONG="cubic"
378# CONFIG_TCP_MD5SIG is not set
379# CONFIG_IPV6 is not set
380# CONFIG_INET6_XFRM_TUNNEL is not set
381# CONFIG_INET6_TUNNEL is not set
382# CONFIG_NETLABEL is not set
383# CONFIG_NETWORK_SECMARK is not set
384# CONFIG_NETFILTER is not set
385
386#
387# DCCP Configuration (EXPERIMENTAL)
388#
389# CONFIG_IP_DCCP is not set
390
391#
392# SCTP Configuration (EXPERIMENTAL)
393#
394# CONFIG_IP_SCTP is not set
395
396#
397# TIPC Configuration (EXPERIMENTAL)
398#
399# CONFIG_TIPC is not set
400# CONFIG_ATM is not set
401# CONFIG_BRIDGE is not set
402# CONFIG_VLAN_8021Q is not set
403# CONFIG_DECNET is not set
404# CONFIG_LLC2 is not set
405# CONFIG_IPX is not set
406# CONFIG_ATALK is not set
407# CONFIG_X25 is not set
408# CONFIG_LAPB is not set
409# CONFIG_ECONET is not set
410# CONFIG_WAN_ROUTER is not set
411
412#
413# QoS and/or fair queueing
414#
415# CONFIG_NET_SCHED is not set
416
417#
418# Network testing
419#
420# CONFIG_NET_PKTGEN is not set
421# CONFIG_HAMRADIO is not set
422CONFIG_IRDA=m
423
424#
425# IrDA protocols
426#
427CONFIG_IRLAN=m
428CONFIG_IRCOMM=m
429# CONFIG_IRDA_ULTRA is not set
430
431#
432# IrDA options
433#
434CONFIG_IRDA_CACHE_LAST_LSAP=y
435# CONFIG_IRDA_FAST_RR is not set
436# CONFIG_IRDA_DEBUG is not set
437
438#
439# Infrared-port device drivers
440#
441
442#
443# SIR device drivers
444#
445CONFIG_IRTTY_SIR=m
446
447#
448# Dongle support
449#
450# CONFIG_DONGLE is not set
451
452#
453# Old SIR device drivers
454#
455# CONFIG_IRPORT_SIR is not set
456
457#
458# Old Serial dongle support
459#
460
461#
462# FIR device drivers
463#
464# CONFIG_BT is not set
465# CONFIG_IEEE80211 is not set
466
467#
468# Device Drivers
469#
470
471#
472# Generic Driver Options
473#
474CONFIG_STANDALONE=y
475CONFIG_PREVENT_FIRMWARE_BUILD=y
476# CONFIG_FW_LOADER is not set
477# CONFIG_SYS_HYPERVISOR is not set
478
479#
480# Connector - unified userspace <-> kernelspace linker
481#
482# CONFIG_CONNECTOR is not set
483
484#
485# Memory Technology Devices (MTD)
486#
487CONFIG_MTD=y
488# CONFIG_MTD_DEBUG is not set
489# CONFIG_MTD_CONCAT is not set
490CONFIG_MTD_PARTITIONS=y
491# CONFIG_MTD_REDBOOT_PARTS is not set
492# CONFIG_MTD_CMDLINE_PARTS is not set
493
494#
495# User Modules And Translation Layers
496#
497CONFIG_MTD_CHAR=m
498CONFIG_MTD_BLKDEVS=y
499CONFIG_MTD_BLOCK=y
500# CONFIG_FTL is not set
501# CONFIG_NFTL is not set
502# CONFIG_INFTL is not set
503# CONFIG_RFD_FTL is not set
504# CONFIG_SSFDC is not set
505
506#
507# RAM/ROM/Flash chip drivers
508#
509# CONFIG_MTD_CFI is not set
510CONFIG_MTD_JEDECPROBE=m
511CONFIG_MTD_GEN_PROBE=m
512# CONFIG_MTD_CFI_ADV_OPTIONS is not set
513CONFIG_MTD_MAP_BANK_WIDTH_1=y
514CONFIG_MTD_MAP_BANK_WIDTH_2=y
515CONFIG_MTD_MAP_BANK_WIDTH_4=y
516# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
517# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
518# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
519CONFIG_MTD_CFI_I1=y
520CONFIG_MTD_CFI_I2=y
521# CONFIG_MTD_CFI_I4 is not set
522# CONFIG_MTD_CFI_I8 is not set
523# CONFIG_MTD_CFI_INTELEXT is not set
524# CONFIG_MTD_CFI_AMDSTD is not set
525# CONFIG_MTD_CFI_STAA is not set
526CONFIG_MTD_MW320D=m
527CONFIG_MTD_RAM=y
528CONFIG_MTD_ROM=m
529# CONFIG_MTD_ABSENT is not set
530# CONFIG_MTD_OBSOLETE_CHIPS is not set
531
532#
533# Mapping drivers for chip access
534#
535CONFIG_MTD_COMPLEX_MAPPINGS=y
536# CONFIG_MTD_PHYSMAP is not set
537CONFIG_MTD_BF5xx=m
538CONFIG_BFIN_FLASH_SIZE=0x400000
539CONFIG_EBIU_FLASH_BASE=0x20000000
540
541#
542# FLASH_EBIU_AMBCTL Control
543#
544CONFIG_BFIN_FLASH_BANK_0=0x7BB0
545CONFIG_BFIN_FLASH_BANK_1=0x7BB0
546CONFIG_BFIN_FLASH_BANK_2=0x7BB0
547CONFIG_BFIN_FLASH_BANK_3=0x7BB0
548# CONFIG_MTD_UCLINUX is not set
549# CONFIG_MTD_PLATRAM is not set
550
551#
552# Self-contained MTD device drivers
553#
554# CONFIG_MTD_DATAFLASH is not set
555# CONFIG_MTD_M25P80 is not set
556# CONFIG_MTD_SLRAM is not set
557# CONFIG_MTD_PHRAM is not set
558# CONFIG_MTD_MTDRAM is not set
559# CONFIG_MTD_BLOCK2MTD is not set
560
561#
562# Disk-On-Chip Device Drivers
563#
564# CONFIG_MTD_DOC2000 is not set
565# CONFIG_MTD_DOC2001 is not set
566# CONFIG_MTD_DOC2001PLUS is not set
567
568#
569# NAND Flash Device Drivers
570#
571CONFIG_MTD_NAND=m
572# CONFIG_MTD_NAND_VERIFY_WRITE is not set
573# CONFIG_MTD_NAND_ECC_SMC is not set
574CONFIG_MTD_NAND_BFIN=m
575CONFIG_BFIN_NAND_BASE=0x20212000
576CONFIG_BFIN_NAND_CLE=2
577CONFIG_BFIN_NAND_ALE=1
578CONFIG_BFIN_NAND_READY=3
579CONFIG_MTD_NAND_IDS=m
580# CONFIG_MTD_NAND_DISKONCHIP is not set
581# CONFIG_MTD_NAND_NANDSIM is not set
582
583#
584# OneNAND Flash Device Drivers
585#
586# CONFIG_MTD_ONENAND is not set
587
588#
589# Parallel port support
590#
591# CONFIG_PARPORT is not set
592
593#
594# Plug and Play support
595#
596
597#
598# Block devices
599#
600# CONFIG_BLK_DEV_COW_COMMON is not set
601# CONFIG_BLK_DEV_LOOP is not set
602# CONFIG_BLK_DEV_NBD is not set
603CONFIG_BLK_DEV_RAM=y
604CONFIG_BLK_DEV_RAM_COUNT=16
605CONFIG_BLK_DEV_RAM_SIZE=4096
606CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
607# CONFIG_BLK_DEV_INITRD is not set
608# CONFIG_CDROM_PKTCDVD is not set
609# CONFIG_ATA_OVER_ETH is not set
610
611#
612# Misc devices
613#
614# CONFIG_TIFM_CORE is not set
615
616#
617# ATA/ATAPI/MFM/RLL support
618#
619# CONFIG_IDE is not set
620
621#
622# SCSI device support
623#
624# CONFIG_RAID_ATTRS is not set
625# CONFIG_SCSI is not set
626# CONFIG_SCSI_NETLINK is not set
627
628#
629# Serial ATA (prod) and Parallel ATA (experimental) drivers
630#
631# CONFIG_ATA is not set
632
633#
634# Multi-device support (RAID and LVM)
635#
636# CONFIG_MD is not set
637
638#
639# Fusion MPT device support
640#
641# CONFIG_FUSION is not set
642
643#
644# IEEE 1394 (FireWire) support
645#
646
647#
648# I2O device support
649#
650
651#
652# Network device support
653#
654CONFIG_NETDEVICES=y
655# CONFIG_DUMMY is not set
656# CONFIG_BONDING is not set
657# CONFIG_EQUALIZER is not set
658# CONFIG_TUN is not set
659
660#
661# PHY device support
662#
663# CONFIG_PHYLIB is not set
664
665#
666# Ethernet (10 or 100Mbit)
667#
668CONFIG_NET_ETHERNET=y
669CONFIG_MII=y
670# CONFIG_SMC91X is not set
671CONFIG_BFIN_MAC=y
672CONFIG_BFIN_MAC_USE_L1=y
673CONFIG_BFIN_TX_DESC_NUM=10
674CONFIG_BFIN_RX_DESC_NUM=20
675# CONFIG_BFIN_MAC_RMII is not set
676
677#
678# Ethernet (1000 Mbit)
679#
680
681#
682# Ethernet (10000 Mbit)
683#
684
685#
686# Token Ring devices
687#
688
689#
690# Wireless LAN (non-hamradio)
691#
692# CONFIG_NET_RADIO is not set
693
694#
695# Wan interfaces
696#
697# CONFIG_WAN is not set
698# CONFIG_PPP is not set
699# CONFIG_SLIP is not set
700# CONFIG_SHAPER is not set
701# CONFIG_NETCONSOLE is not set
702# CONFIG_NETPOLL is not set
703# CONFIG_NET_POLL_CONTROLLER is not set
704
705#
706# ISDN subsystem
707#
708# CONFIG_ISDN is not set
709
710#
711# Telephony Support
712#
713# CONFIG_PHONE is not set
714
715#
716# Input device support
717#
718CONFIG_INPUT=y
719# CONFIG_INPUT_FF_MEMLESS is not set
720
721#
722# Userland interfaces
723#
724# CONFIG_INPUT_MOUSEDEV is not set
725# CONFIG_INPUT_JOYDEV is not set
726# CONFIG_INPUT_TSDEV is not set
727CONFIG_INPUT_EVDEV=m
728# CONFIG_INPUT_EVBUG is not set
729
730#
731# Input Device Drivers
732#
733# CONFIG_INPUT_KEYBOARD is not set
734# CONFIG_INPUT_MOUSE is not set
735# CONFIG_INPUT_JOYSTICK is not set
736# CONFIG_INPUT_TOUCHSCREEN is not set
737CONFIG_INPUT_MISC=y
738# CONFIG_INPUT_UINPUT is not set
739# CONFIG_BF53X_PFBUTTONS is not set
740CONFIG_TWI_KEYPAD=m
741CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=72
742
743#
744# Hardware I/O ports
745#
746# CONFIG_SERIO is not set
747# CONFIG_GAMEPORT is not set
748
749#
750# Character devices
751#
752# CONFIG_AD9960 is not set
753# CONFIG_SPI_ADC_BF533 is not set
754# CONFIG_BF533_PFLAGS is not set
755# CONFIG_BF5xx_PPIFCD is not set
756# CONFIG_BF5xx_TIMERS is not set
757# CONFIG_BF5xx_PPI is not set
758CONFIG_BFIN_SPORT=y
759# CONFIG_BFIN_TIMER_LATENCY is not set
760CONFIG_TWI_LCD=m
761CONFIG_TWI_LCD_SLAVE_ADDR=34
762# CONFIG_AD5304 is not set
763# CONFIG_VT is not set
764# CONFIG_SERIAL_NONSTANDARD is not set
765
766#
767# Serial drivers
768#
769# CONFIG_SERIAL_8250 is not set
770
771#
772# Non-8250 serial port support
773#
774CONFIG_SERIAL_BFIN=y
775CONFIG_SERIAL_BFIN_CONSOLE=y
776CONFIG_SERIAL_BFIN_DMA=y
777# CONFIG_SERIAL_BFIN_PIO is not set
778CONFIG_SERIAL_BFIN_UART0=y
779# CONFIG_BFIN_UART0_CTSRTS is not set
780# CONFIG_SERIAL_BFIN_UART1 is not set
781CONFIG_SERIAL_CORE=y
782CONFIG_SERIAL_CORE_CONSOLE=y
783# CONFIG_SERIAL_BFIN_SPORT is not set
784CONFIG_UNIX98_PTYS=y
785# CONFIG_LEGACY_PTYS is not set
786
787#
788# CAN, the car bus and industrial fieldbus
789#
790CONFIG_CAN4LINUX=y
791
792#
793# linux embedded drivers
794#
795# CONFIG_CAN_MCF5282 is not set
796# CONFIG_CAN_UNCTWINCAN is not set
797CONFIG_CAN_BLACKFIN=m
798
799#
800# IPMI
801#
802# CONFIG_IPMI_HANDLER is not set
803
804#
805# Watchdog Cards
806#
807# CONFIG_WATCHDOG is not set
808CONFIG_HW_RANDOM=y
809# CONFIG_GEN_RTC is not set
810CONFIG_BLACKFIN_DPMC=y
811# CONFIG_DTLK is not set
812# CONFIG_R3964 is not set
813# CONFIG_RAW_DRIVER is not set
814
815#
816# TPM devices
817#
818# CONFIG_TCG_TPM is not set
819
820#
821# I2C support
822#
823CONFIG_I2C=m
824CONFIG_I2C_CHARDEV=m
825
826#
827# I2C Algorithms
828#
829# CONFIG_I2C_ALGOBIT is not set
830# CONFIG_I2C_ALGOPCF is not set
831# CONFIG_I2C_ALGOPCA is not set
832
833#
834# I2C Hardware Bus support
835#
836# CONFIG_I2C_BLACKFIN_GPIO is not set
837CONFIG_I2C_BLACKFIN_TWI=m
838CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50
839# CONFIG_I2C_OCORES is not set
840# CONFIG_I2C_PARPORT_LIGHT is not set
841# CONFIG_I2C_STUB is not set
842# CONFIG_I2C_PCA_ISA is not set
843
844#
845# Miscellaneous I2C Chip support
846#
847# CONFIG_SENSORS_DS1337 is not set
848# CONFIG_SENSORS_DS1374 is not set
849CONFIG_SENSORS_AD5252=m
850# CONFIG_SENSORS_EEPROM is not set
851# CONFIG_SENSORS_PCF8574 is not set
852# CONFIG_SENSORS_PCF8575 is not set
853# CONFIG_SENSORS_PCA9543 is not set
854# CONFIG_SENSORS_PCA9539 is not set
855# CONFIG_SENSORS_PCF8591 is not set
856# CONFIG_SENSORS_MAX6875 is not set
857# CONFIG_I2C_DEBUG_CORE is not set
858# CONFIG_I2C_DEBUG_ALGO is not set
859# CONFIG_I2C_DEBUG_BUS is not set
860# CONFIG_I2C_DEBUG_CHIP is not set
861
862#
863# SPI support
864#
865CONFIG_SPI=y
866CONFIG_SPI_MASTER=y
867
868#
869# SPI Master Controller Drivers
870#
871# CONFIG_SPI_BITBANG is not set
872
873#
874# SPI Protocol Masters
875#
876CONFIG_SPI_BFIN=y
877
878#
879# Dallas's 1-wire bus
880#
881# CONFIG_W1 is not set
882
883#
884# Hardware Monitoring support
885#
886CONFIG_HWMON=y
887# CONFIG_HWMON_VID is not set
888# CONFIG_SENSORS_ABITUGURU is not set
889# CONFIG_SENSORS_ADM1021 is not set
890# CONFIG_SENSORS_ADM1025 is not set
891# CONFIG_SENSORS_ADM1026 is not set
892# CONFIG_SENSORS_ADM1031 is not set
893# CONFIG_SENSORS_ADM9240 is not set
894# CONFIG_SENSORS_ASB100 is not set
895# CONFIG_SENSORS_ATXP1 is not set
896# CONFIG_SENSORS_DS1621 is not set
897# CONFIG_SENSORS_F71805F is not set
898# CONFIG_SENSORS_FSCHER is not set
899# CONFIG_SENSORS_FSCPOS is not set
900# CONFIG_SENSORS_GL518SM is not set
901# CONFIG_SENSORS_GL520SM is not set
902# CONFIG_SENSORS_IT87 is not set
903# CONFIG_SENSORS_LM63 is not set
904# CONFIG_SENSORS_LM70 is not set
905# CONFIG_SENSORS_LM75 is not set
906# CONFIG_SENSORS_LM77 is not set
907# CONFIG_SENSORS_LM78 is not set
908# CONFIG_SENSORS_LM80 is not set
909# CONFIG_SENSORS_LM83 is not set
910# CONFIG_SENSORS_LM85 is not set
911# CONFIG_SENSORS_LM87 is not set
912# CONFIG_SENSORS_LM90 is not set
913# CONFIG_SENSORS_LM92 is not set
914# CONFIG_SENSORS_MAX1619 is not set
915# CONFIG_SENSORS_PC87360 is not set
916# CONFIG_SENSORS_PC87427 is not set
917# CONFIG_SENSORS_SMSC47M1 is not set
918# CONFIG_SENSORS_SMSC47M192 is not set
919# CONFIG_SENSORS_SMSC47B397 is not set
920# CONFIG_SENSORS_VT1211 is not set
921# CONFIG_SENSORS_W83781D is not set
922# CONFIG_SENSORS_W83791D is not set
923# CONFIG_SENSORS_W83792D is not set
924# CONFIG_SENSORS_W83793 is not set
925# CONFIG_SENSORS_W83L785TS is not set
926# CONFIG_SENSORS_W83627HF is not set
927# CONFIG_SENSORS_W83627EHF is not set
928# CONFIG_HWMON_DEBUG_CHIP is not set
929
930#
931# Multimedia devices
932#
933# CONFIG_VIDEO_DEV is not set
934
935#
936# Digital Video Broadcasting Devices
937#
938# CONFIG_DVB is not set
939
940#
941# Graphics support
942#
943CONFIG_FIRMWARE_EDID=y
944CONFIG_FB=m
945CONFIG_FB_CFB_FILLRECT=m
946CONFIG_FB_CFB_COPYAREA=m
947CONFIG_FB_CFB_IMAGEBLIT=m
948# CONFIG_FB_MACMODES is not set
949# CONFIG_FB_BACKLIGHT is not set
950# CONFIG_FB_MODE_HELPERS is not set
951# CONFIG_FB_TILEBLITTING is not set
952CONFIG_FB_BFIN_7171=m
953CONFIG_FB_BFIN_7393=m
954CONFIG_NTSC=y
955# CONFIG_PAL is not set
956# CONFIG_NTSC_640x480 is not set
957# CONFIG_PAL_640x480 is not set
958# CONFIG_NTSC_YCBCR is not set
959# CONFIG_PAL_YCBCR is not set
960CONFIG_ADV7393_1XMEM=y
961# CONFIG_ADV7393_2XMEM is not set
962CONFIG_FB_BF537_LQ035=m
963CONFIG_LQ035_SLAVE_ADDR=0x58
964# CONFIG_FB_BFIN_LANDSCAPE is not set
965# CONFIG_FB_BFIN_BGR is not set
966# CONFIG_FB_S1D13XXX is not set
967# CONFIG_FB_VIRTUAL is not set
968
969#
970# Logo configuration
971#
972# CONFIG_LOGO is not set
973CONFIG_BACKLIGHT_LCD_SUPPORT=y
974CONFIG_BACKLIGHT_CLASS_DEVICE=m
975CONFIG_BACKLIGHT_DEVICE=y
976CONFIG_LCD_CLASS_DEVICE=m
977CONFIG_LCD_DEVICE=y
978
979#
980# Sound
981#
982CONFIG_SOUND=m
983
984#
985# Advanced Linux Sound Architecture
986#
987CONFIG_SND=m
988CONFIG_SND_TIMER=m
989CONFIG_SND_PCM=m
990# CONFIG_SND_SEQUENCER is not set
991CONFIG_SND_OSSEMUL=y
992CONFIG_SND_MIXER_OSS=m
993CONFIG_SND_PCM_OSS=m
994CONFIG_SND_PCM_OSS_PLUGINS=y
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# Open Sound System
1011#
1012# CONFIG_SOUND_PRIME is not set
1013
1014#
1015# HID Devices
1016#
1017CONFIG_HID=y
1018
1019#
1020# USB support
1021#
1022CONFIG_USB_ARCH_HAS_HCD=y
1023# CONFIG_USB_ARCH_HAS_OHCI is not set
1024# CONFIG_USB_ARCH_HAS_EHCI is not set
1025# CONFIG_USB is not set
1026
1027#
1028# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1029#
1030
1031#
1032# USB Gadget Support
1033#
1034# CONFIG_USB_GADGET is not set
1035
1036#
1037# MMC/SD Card support
1038#
1039# CONFIG_SPI_MMC is not set
1040# CONFIG_MMC is not set
1041
1042#
1043# LED devices
1044#
1045# CONFIG_NEW_LEDS is not set
1046
1047#
1048# LED drivers
1049#
1050
1051#
1052# LED Triggers
1053#
1054
1055#
1056# InfiniBand support
1057#
1058
1059#
1060# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1061#
1062
1063#
1064# Real Time Clock
1065#
1066CONFIG_RTC_LIB=y
1067CONFIG_RTC_CLASS=y
1068CONFIG_RTC_HCTOSYS=y
1069CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1070# CONFIG_RTC_DEBUG is not set
1071
1072#
1073# RTC interfaces
1074#
1075CONFIG_RTC_INTF_SYSFS=y
1076CONFIG_RTC_INTF_PROC=y
1077CONFIG_RTC_INTF_DEV=y
1078# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1079
1080#
1081# RTC drivers
1082#
1083# CONFIG_RTC_DRV_X1205 is not set
1084# CONFIG_RTC_DRV_DS1307 is not set
1085# CONFIG_RTC_DRV_DS1553 is not set
1086# CONFIG_RTC_DRV_ISL1208 is not set
1087# CONFIG_RTC_DRV_DS1672 is not set
1088# CONFIG_RTC_DRV_DS1742 is not set
1089# CONFIG_RTC_DRV_PCF8563 is not set
1090# CONFIG_RTC_DRV_PCF8583 is not set
1091# CONFIG_RTC_DRV_RS5C348 is not set
1092# CONFIG_RTC_DRV_RS5C372 is not set
1093# CONFIG_RTC_DRV_M48T86 is not set
1094# CONFIG_RTC_DRV_TEST is not set
1095# CONFIG_RTC_DRV_MAX6902 is not set
1096# CONFIG_RTC_DRV_V3020 is not set
1097CONFIG_RTC_DRV_BFIN=y
1098
1099#
1100# DMA Engine support
1101#
1102# CONFIG_DMA_ENGINE is not set
1103
1104#
1105# DMA Clients
1106#
1107
1108#
1109# DMA Devices
1110#
1111
1112#
1113# Virtualization
1114#
1115
1116#
1117# PBX support
1118#
1119# CONFIG_PBX is not set
1120
1121#
1122# File systems
1123#
1124CONFIG_EXT2_FS=y
1125CONFIG_EXT2_FS_XATTR=y
1126# CONFIG_EXT2_FS_POSIX_ACL is not set
1127# CONFIG_EXT2_FS_SECURITY is not set
1128# CONFIG_EXT3_FS is not set
1129# CONFIG_EXT4DEV_FS is not set
1130CONFIG_FS_MBCACHE=y
1131# CONFIG_REISERFS_FS is not set
1132# CONFIG_JFS_FS is not set
1133# CONFIG_FS_POSIX_ACL is not set
1134# CONFIG_XFS_FS is not set
1135# CONFIG_GFS2_FS is not set
1136# CONFIG_OCFS2_FS is not set
1137# CONFIG_MINIX_FS is not set
1138# CONFIG_ROMFS_FS is not set
1139CONFIG_INOTIFY=y
1140CONFIG_INOTIFY_USER=y
1141# CONFIG_QUOTA is not set
1142CONFIG_DNOTIFY=y
1143# CONFIG_AUTOFS_FS is not set
1144# CONFIG_AUTOFS4_FS is not set
1145# CONFIG_FUSE_FS is not set
1146
1147#
1148# CD-ROM/DVD Filesystems
1149#
1150# CONFIG_ISO9660_FS is not set
1151# CONFIG_UDF_FS is not set
1152
1153#
1154# DOS/FAT/NT Filesystems
1155#
1156# CONFIG_MSDOS_FS is not set
1157# CONFIG_VFAT_FS is not set
1158# CONFIG_NTFS_FS is not set
1159
1160#
1161# Pseudo filesystems
1162#
1163CONFIG_PROC_FS=y
1164CONFIG_PROC_SYSCTL=y
1165CONFIG_SYSFS=y
1166# CONFIG_TMPFS is not set
1167# CONFIG_HUGETLB_PAGE is not set
1168CONFIG_RAMFS=y
1169# CONFIG_CONFIGFS_FS is not set
1170
1171#
1172# Miscellaneous filesystems
1173#
1174# CONFIG_ADFS_FS is not set
1175# CONFIG_AFFS_FS is not set
1176# CONFIG_HFS_FS is not set
1177# CONFIG_HFSPLUS_FS is not set
1178# CONFIG_BEFS_FS is not set
1179# CONFIG_BFS_FS is not set
1180# CONFIG_EFS_FS is not set
1181CONFIG_YAFFS_FS=m
1182CONFIG_YAFFS_YAFFS1=y
1183# CONFIG_YAFFS_DOES_ECC is not set
1184CONFIG_YAFFS_YAFFS2=y
1185CONFIG_YAFFS_AUTO_YAFFS2=y
1186# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1187CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10
1188# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1189# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1190CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1191CONFIG_JFFS2_FS=m
1192CONFIG_JFFS2_FS_DEBUG=0
1193CONFIG_JFFS2_FS_WRITEBUFFER=y
1194# CONFIG_JFFS2_SUMMARY is not set
1195# CONFIG_JFFS2_FS_XATTR is not set
1196# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1197CONFIG_JFFS2_ZLIB=y
1198CONFIG_JFFS2_RTIME=y
1199# CONFIG_JFFS2_RUBIN is not set
1200# CONFIG_CRAMFS is not set
1201# CONFIG_VXFS_FS is not set
1202# CONFIG_HPFS_FS is not set
1203# CONFIG_QNX4FS_FS is not set
1204# CONFIG_SYSV_FS is not set
1205# CONFIG_UFS_FS is not set
1206
1207#
1208# Network File Systems
1209#
1210CONFIG_NFS_FS=m
1211CONFIG_NFS_V3=y
1212# CONFIG_NFS_V3_ACL is not set
1213# CONFIG_NFS_V4 is not set
1214# CONFIG_NFS_DIRECTIO is not set
1215# CONFIG_NFSD is not set
1216CONFIG_LOCKD=m
1217CONFIG_LOCKD_V4=y
1218CONFIG_NFS_COMMON=y
1219CONFIG_SUNRPC=m
1220# CONFIG_RPCSEC_GSS_KRB5 is not set
1221# CONFIG_RPCSEC_GSS_SPKM3 is not set
1222CONFIG_SMB_FS=m
1223# CONFIG_SMB_NLS_DEFAULT is not set
1224# CONFIG_CIFS is not set
1225# CONFIG_NCP_FS is not set
1226# CONFIG_CODA_FS is not set
1227# CONFIG_AFS_FS is not set
1228# CONFIG_9P_FS is not set
1229
1230#
1231# Partition Types
1232#
1233# CONFIG_PARTITION_ADVANCED is not set
1234CONFIG_MSDOS_PARTITION=y
1235
1236#
1237# Native Language Support
1238#
1239CONFIG_NLS=m
1240CONFIG_NLS_DEFAULT="iso8859-1"
1241# CONFIG_NLS_CODEPAGE_437 is not set
1242# CONFIG_NLS_CODEPAGE_737 is not set
1243# CONFIG_NLS_CODEPAGE_775 is not set
1244# CONFIG_NLS_CODEPAGE_850 is not set
1245# CONFIG_NLS_CODEPAGE_852 is not set
1246# CONFIG_NLS_CODEPAGE_855 is not set
1247# CONFIG_NLS_CODEPAGE_857 is not set
1248# CONFIG_NLS_CODEPAGE_860 is not set
1249# CONFIG_NLS_CODEPAGE_861 is not set
1250# CONFIG_NLS_CODEPAGE_862 is not set
1251# CONFIG_NLS_CODEPAGE_863 is not set
1252# CONFIG_NLS_CODEPAGE_864 is not set
1253# CONFIG_NLS_CODEPAGE_865 is not set
1254# CONFIG_NLS_CODEPAGE_866 is not set
1255# CONFIG_NLS_CODEPAGE_869 is not set
1256# CONFIG_NLS_CODEPAGE_936 is not set
1257# CONFIG_NLS_CODEPAGE_950 is not set
1258# CONFIG_NLS_CODEPAGE_932 is not set
1259# CONFIG_NLS_CODEPAGE_949 is not set
1260# CONFIG_NLS_CODEPAGE_874 is not set
1261# CONFIG_NLS_ISO8859_8 is not set
1262# CONFIG_NLS_CODEPAGE_1250 is not set
1263# CONFIG_NLS_CODEPAGE_1251 is not set
1264# CONFIG_NLS_ASCII is not set
1265# CONFIG_NLS_ISO8859_1 is not set
1266# CONFIG_NLS_ISO8859_2 is not set
1267# CONFIG_NLS_ISO8859_3 is not set
1268# CONFIG_NLS_ISO8859_4 is not set
1269# CONFIG_NLS_ISO8859_5 is not set
1270# CONFIG_NLS_ISO8859_6 is not set
1271# CONFIG_NLS_ISO8859_7 is not set
1272# CONFIG_NLS_ISO8859_9 is not set
1273# CONFIG_NLS_ISO8859_13 is not set
1274# CONFIG_NLS_ISO8859_14 is not set
1275# CONFIG_NLS_ISO8859_15 is not set
1276# CONFIG_NLS_KOI8_R is not set
1277# CONFIG_NLS_KOI8_U is not set
1278# CONFIG_NLS_UTF8 is not set
1279
1280#
1281# Distributed Lock Manager
1282#
1283# CONFIG_DLM is not set
1284
1285#
1286# Profiling support
1287#
1288# CONFIG_PROFILING is not set
1289
1290#
1291# Kernel hacking
1292#
1293# CONFIG_PRINTK_TIME is not set
1294CONFIG_ENABLE_MUST_CHECK=y
1295# CONFIG_MAGIC_SYSRQ is not set
1296# CONFIG_UNUSED_SYMBOLS is not set
1297# CONFIG_DEBUG_FS is not set
1298# CONFIG_HEADERS_CHECK is not set
1299# CONFIG_DEBUG_KERNEL is not set
1300CONFIG_LOG_BUF_SHIFT=14
1301# CONFIG_DEBUG_BUGVERBOSE is not set
1302# CONFIG_DEBUG_SERIAL_EARLY_INIT is not set
1303CONFIG_DEBUG_HUNT_FOR_ZERO=y
1304# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1305CONFIG_CPLB_INFO=y
1306CONFIG_ACCESS_CHECK=y
1307
1308#
1309# Security options
1310#
1311# CONFIG_KEYS is not set
1312CONFIG_SECURITY=y
1313# CONFIG_SECURITY_NETWORK is not set
1314CONFIG_SECURITY_CAPABILITIES=y
1315
1316#
1317# Cryptographic options
1318#
1319# CONFIG_CRYPTO is not set
1320
1321#
1322# Library routines
1323#
1324CONFIG_BITREVERSE=y
1325CONFIG_CRC_CCITT=m
1326# CONFIG_CRC16 is not set
1327CONFIG_CRC32=y
1328# CONFIG_LIBCRC32C is not set
1329CONFIG_ZLIB_INFLATE=y
1330CONFIG_ZLIB_DEFLATE=m
1331CONFIG_PLIST=y
1332CONFIG_IOMAP_COPY=y
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
new file mode 100644
index 000000000000..e32ca2072cbf
--- /dev/null
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -0,0 +1,1073 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19.3
4#
5# CONFIG_MMU is not set
6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
10CONFIG_BFIN=y
11CONFIG_SEMAPHORE_SLEEPERS=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_UCLINUX=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_IRQCHIP_DEMUX_GPIO=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21
22#
23# Code maturity level options
24#
25CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36# CONFIG_POSIX_MQUEUE is not set
37# CONFIG_BSD_PROCESS_ACCT is not set
38# CONFIG_TASKSTATS is not set
39# CONFIG_UTS_NS is not set
40# CONFIG_AUDIT is not set
41# CONFIG_IKCONFIG is not set
42# CONFIG_RELAY is not set
43CONFIG_INITRAMFS_SOURCE=""
44# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
45CONFIG_SYSCTL=y
46CONFIG_EMBEDDED=y
47# CONFIG_UID16 is not set
48CONFIG_SYSCTL_SYSCALL=y
49CONFIG_KALLSYMS=y
50# CONFIG_KALLSYMS_EXTRA_PASS is not set
51CONFIG_HOTPLUG=y
52CONFIG_PRINTK=y
53CONFIG_BUG=y
54CONFIG_ELF_CORE=y
55CONFIG_BASE_FULL=y
56CONFIG_FUTEX=y
57CONFIG_EPOLL=y
58CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
59# CONFIG_LIMIT_PAGECACHE is not set
60CONFIG_BUDDY=y
61# CONFIG_NP2 is not set
62CONFIG_SLAB=y
63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
65CONFIG_TINY_SHMEM=y
66CONFIG_BASE_SMALL=0
67# CONFIG_SLOB is not set
68
69#
70# Loadable module support
71#
72CONFIG_MODULES=y
73CONFIG_MODULE_UNLOAD=y
74# CONFIG_MODULE_FORCE_UNLOAD is not set
75# CONFIG_MODVERSIONS is not set
76# CONFIG_MODULE_SRCVERSION_ALL is not set
77CONFIG_KMOD=y
78
79#
80# Block layer
81#
82CONFIG_BLOCK=y
83# CONFIG_BLK_DEV_IO_TRACE is not set
84
85#
86# IO Schedulers
87#
88CONFIG_IOSCHED_NOOP=y
89CONFIG_IOSCHED_AS=y
90# CONFIG_IOSCHED_DEADLINE is not set
91CONFIG_IOSCHED_CFQ=y
92CONFIG_DEFAULT_AS=y
93# CONFIG_DEFAULT_DEADLINE is not set
94# CONFIG_DEFAULT_CFQ is not set
95# CONFIG_DEFAULT_NOOP is not set
96CONFIG_DEFAULT_IOSCHED="anticipatory"
97# CONFIG_PREEMPT_NONE is not set
98CONFIG_PREEMPT_VOLUNTARY=y
99# CONFIG_PREEMPT is not set
100
101#
102# Blackfin Processor Options
103#
104
105#
106# Processor and Board Settings
107#
108# CONFIG_BF531 is not set
109# CONFIG_BF532 is not set
110# CONFIG_BF533 is not set
111# CONFIG_BF534 is not set
112# CONFIG_BF535 is not set
113# CONFIG_BF536 is not set
114# CONFIG_BF537 is not set
115CONFIG_BF561=y
116# CONFIG_BF_REV_0_2 is not set
117CONFIG_BF_REV_0_3=y
118# CONFIG_BF_REV_0_4 is not set
119# CONFIG_BF_REV_0_5 is not set
120CONFIG_BFIN_DUAL_CORE=y
121# CONFIG_BFIN533_EZKIT is not set
122# CONFIG_BFIN533_STAMP is not set
123# CONFIG_BFIN537_STAMP is not set
124# CONFIG_BFIN533_BLUETECHNIX_CM is not set
125# CONFIG_BFIN537_BLUETECHNIX_CM is not set
126# CONFIG_BFIN561_BLUETECHNIX_CM is not set
127CONFIG_BFIN561_EZKIT=y
128# CONFIG_PNAV10 is not set
129# CONFIG_GENERIC_BOARD is not set
130CONFIG_MEM_MT48LC16M16A2TG_75=y
131
132#
133# BF561 Specific Configuration
134#
135
136#
137# Core B Support
138#
139
140#
141# Core B Support
142#
143CONFIG_BF561_COREB=y
144CONFIG_BF561_COREB_RESET=y
145
146#
147# Interrupt Priority Assignment
148#
149
150#
151# Priority
152#
153CONFIG_IRQ_PLL_WAKEUP=7
154CONFIG_IRQ_DMA1_ERROR=7
155CONFIG_IRQ_DMA2_ERROR=7
156CONFIG_IRQ_IMDMA_ERROR=7
157CONFIG_IRQ_PPI0_ERROR=7
158CONFIG_IRQ_PPI1_ERROR=7
159CONFIG_IRQ_SPORT0_ERROR=7
160CONFIG_IRQ_SPORT1_ERROR=7
161CONFIG_IRQ_SPI_ERROR=7
162CONFIG_IRQ_UART_ERROR=7
163CONFIG_IRQ_RESERVED_ERROR=7
164CONFIG_IRQ_DMA1_0=8
165CONFIG_IRQ_DMA1_1=8
166CONFIG_IRQ_DMA1_2=8
167CONFIG_IRQ_DMA1_3=8
168CONFIG_IRQ_DMA1_4=8
169CONFIG_IRQ_DMA1_5=8
170CONFIG_IRQ_DMA1_6=8
171CONFIG_IRQ_DMA1_7=8
172CONFIG_IRQ_DMA1_8=8
173CONFIG_IRQ_DMA1_9=8
174CONFIG_IRQ_DMA1_10=8
175CONFIG_IRQ_DMA1_11=8
176CONFIG_IRQ_DMA2_0=9
177CONFIG_IRQ_DMA2_1=9
178CONFIG_IRQ_DMA2_2=9
179CONFIG_IRQ_DMA2_3=9
180CONFIG_IRQ_DMA2_4=9
181CONFIG_IRQ_DMA2_5=9
182CONFIG_IRQ_DMA2_6=9
183CONFIG_IRQ_DMA2_7=9
184CONFIG_IRQ_DMA2_8=9
185CONFIG_IRQ_DMA2_9=9
186CONFIG_IRQ_DMA2_10=9
187CONFIG_IRQ_DMA2_11=9
188CONFIG_IRQ_TIMER0=10
189CONFIG_IRQ_TIMER1=10
190CONFIG_IRQ_TIMER2=10
191CONFIG_IRQ_TIMER3=10
192CONFIG_IRQ_TIMER4=10
193CONFIG_IRQ_TIMER5=10
194CONFIG_IRQ_TIMER6=10
195CONFIG_IRQ_TIMER7=10
196CONFIG_IRQ_TIMER8=10
197CONFIG_IRQ_TIMER9=10
198CONFIG_IRQ_TIMER10=10
199CONFIG_IRQ_TIMER11=10
200CONFIG_IRQ_PROG0_INTA=11
201CONFIG_IRQ_PROG0_INTB=11
202CONFIG_IRQ_PROG1_INTA=11
203CONFIG_IRQ_PROG1_INTB=11
204CONFIG_IRQ_PROG2_INTA=11
205CONFIG_IRQ_PROG2_INTB=11
206CONFIG_IRQ_DMA1_WRRD0=8
207CONFIG_IRQ_DMA1_WRRD1=8
208CONFIG_IRQ_DMA2_WRRD0=9
209CONFIG_IRQ_DMA2_WRRD1=9
210CONFIG_IRQ_IMDMA_WRRD0=12
211CONFIG_IRQ_IMDMA_WRRD1=12
212CONFIG_IRQ_WDTIMER=13
213
214#
215# Board customizations
216#
217
218#
219# Board Setup
220#
221CONFIG_CLKIN_HZ=30000000
222CONFIG_MEM_SIZE=64
223CONFIG_MEM_ADD_WIDTH=9
224CONFIG_BOOT_LOAD=0x1000
225
226#
227# Console UART Setup
228#
229# CONFIG_BAUD_9600 is not set
230# CONFIG_BAUD_19200 is not set
231# CONFIG_BAUD_38400 is not set
232CONFIG_BAUD_57600=y
233# CONFIG_BAUD_115200 is not set
234CONFIG_BAUD_NO_PARITY=y
235# CONFIG_BAUD_PARITY is not set
236CONFIG_BAUD_1_STOPBIT=y
237# CONFIG_BAUD_2_STOPBIT is not set
238
239#
240# Blackfin Kernel Optimizations
241#
242
243#
244# Timer Tick
245#
246# CONFIG_HZ_100 is not set
247CONFIG_HZ_250=y
248# CONFIG_HZ_1000 is not set
249CONFIG_HZ=250
250
251#
252# Memory Optimizations
253#
254CONFIG_I_ENTRY_L1=y
255CONFIG_EXCPT_IRQ_SYSC_L1=y
256CONFIG_DO_IRQ_L1=y
257CONFIG_CORE_TIMER_IRQ_L1=y
258CONFIG_IDLE_L1=y
259CONFIG_SCHEDULE_L1=y
260CONFIG_ARITHMETIC_OPS_L1=y
261CONFIG_ACCESS_OK_L1=y
262CONFIG_MEMSET_L1=y
263CONFIG_MEMCPY_L1=y
264CONFIG_SYS_BFIN_SPINLOCK_L1=y
265# CONFIG_IP_CHECKSUM_L1 is not set
266# CONFIG_SYSCALL_TAB_L1 is not set
267# CONFIG_CPLB_SWITCH_TAB_L1 is not set
268CONFIG_RAMKERNEL=y
269# CONFIG_ROMKERNEL is not set
270CONFIG_SELECT_MEMORY_MODEL=y
271CONFIG_FLATMEM_MANUAL=y
272# CONFIG_DISCONTIGMEM_MANUAL is not set
273# CONFIG_SPARSEMEM_MANUAL is not set
274CONFIG_FLATMEM=y
275CONFIG_FLAT_NODE_MEM_MAP=y
276# CONFIG_SPARSEMEM_STATIC is not set
277CONFIG_SPLIT_PTLOCK_CPUS=4
278# CONFIG_RESOURCES_64BIT is not set
279CONFIG_LARGE_ALLOCS=y
280CONFIG_BFIN_DMA_5XX=y
281# CONFIG_DMA_UNCACHED_2M is not set
282CONFIG_DMA_UNCACHED_1M=y
283# CONFIG_DMA_UNCACHED_NONE is not set
284
285#
286# Cache Support
287#
288CONFIG_BLKFIN_CACHE=y
289CONFIG_BLKFIN_DCACHE=y
290# CONFIG_BLKFIN_DCACHE_BANKA is not set
291# CONFIG_BLKFIN_CACHE_LOCK is not set
292# CONFIG_BLKFIN_WB is not set
293CONFIG_BLKFIN_WT=y
294CONFIG_L1_MAX_PIECE=16
295
296#
297# Clock Settings
298#
299# CONFIG_BFIN_KERNEL_CLOCK is not set
300
301#
302# Asynchonous Memory Configuration
303#
304
305#
306# EBIU_AMBCTL Global Control
307#
308CONFIG_C_AMCKEN=y
309CONFIG_C_CDPRIO=y
310CONFIG_C_B0PEN=y
311CONFIG_C_B1PEN=y
312CONFIG_C_B2PEN=y
313# CONFIG_C_B3PEN is not set
314# CONFIG_C_AMBEN is not set
315# CONFIG_C_AMBEN_B0 is not set
316# CONFIG_C_AMBEN_B0_B1 is not set
317# CONFIG_C_AMBEN_B0_B1_B2 is not set
318CONFIG_C_AMBEN_ALL=y
319
320#
321# EBIU_AMBCTL Control
322#
323CONFIG_BANK_0=0x7BB0
324CONFIG_BANK_1=0x7BB0
325CONFIG_BANK_2=0x7BB0
326CONFIG_BANK_3=0x99B3
327
328#
329# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
330#
331# CONFIG_PCI is not set
332
333#
334# PCCARD (PCMCIA/CardBus) support
335#
336# CONFIG_PCCARD is not set
337
338#
339# PCI Hotplug Support
340#
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
355
356#
357# Networking
358#
359CONFIG_NET=y
360
361#
362# Networking options
363#
364# CONFIG_NETDEBUG is not set
365CONFIG_PACKET=y
366# CONFIG_PACKET_MMAP is not set
367CONFIG_UNIX=y
368CONFIG_XFRM=y
369# CONFIG_XFRM_USER is not set
370# CONFIG_XFRM_SUB_POLICY is not set
371# CONFIG_NET_KEY is not set
372CONFIG_INET=y
373# CONFIG_IP_MULTICAST is not set
374# CONFIG_IP_ADVANCED_ROUTER is not set
375CONFIG_IP_FIB_HASH=y
376CONFIG_IP_PNP=y
377# CONFIG_IP_PNP_DHCP is not set
378# CONFIG_IP_PNP_BOOTP is not set
379# CONFIG_IP_PNP_RARP is not set
380# CONFIG_NET_IPIP is not set
381# CONFIG_NET_IPGRE is not set
382# CONFIG_ARPD is not set
383CONFIG_SYN_COOKIES=y
384# CONFIG_INET_AH is not set
385# CONFIG_INET_ESP is not set
386# CONFIG_INET_IPCOMP is not set
387# CONFIG_INET_XFRM_TUNNEL is not set
388# CONFIG_INET_TUNNEL is not set
389CONFIG_INET_XFRM_MODE_TRANSPORT=y
390CONFIG_INET_XFRM_MODE_TUNNEL=y
391CONFIG_INET_XFRM_MODE_BEET=y
392CONFIG_INET_DIAG=y
393CONFIG_INET_TCP_DIAG=y
394# CONFIG_TCP_CONG_ADVANCED is not set
395CONFIG_TCP_CONG_CUBIC=y
396CONFIG_DEFAULT_TCP_CONG="cubic"
397# CONFIG_IPV6 is not set
398# CONFIG_INET6_XFRM_TUNNEL is not set
399# CONFIG_INET6_TUNNEL is not set
400# CONFIG_NETLABEL is not set
401# CONFIG_NETWORK_SECMARK is not set
402# CONFIG_NETFILTER is not set
403
404#
405# DCCP Configuration (EXPERIMENTAL)
406#
407# CONFIG_IP_DCCP is not set
408
409#
410# SCTP Configuration (EXPERIMENTAL)
411#
412# CONFIG_IP_SCTP is not set
413
414#
415# TIPC Configuration (EXPERIMENTAL)
416#
417# CONFIG_TIPC is not set
418# CONFIG_ATM is not set
419# CONFIG_BRIDGE is not set
420# CONFIG_VLAN_8021Q is not set
421# CONFIG_DECNET is not set
422# CONFIG_LLC2 is not set
423# CONFIG_IPX is not set
424# CONFIG_ATALK is not set
425# CONFIG_X25 is not set
426# CONFIG_LAPB is not set
427# CONFIG_ECONET is not set
428# CONFIG_WAN_ROUTER is not set
429
430#
431# QoS and/or fair queueing
432#
433# CONFIG_NET_SCHED is not set
434
435#
436# Network testing
437#
438# CONFIG_NET_PKTGEN is not set
439# CONFIG_HAMRADIO is not set
440# CONFIG_IRDA is not set
441# CONFIG_BT is not set
442# CONFIG_IEEE80211 is not set
443
444#
445# Device Drivers
446#
447
448#
449# Generic Driver Options
450#
451CONFIG_STANDALONE=y
452CONFIG_PREVENT_FIRMWARE_BUILD=y
453# CONFIG_FW_LOADER is not set
454# CONFIG_SYS_HYPERVISOR is not set
455
456#
457# Connector - unified userspace <-> kernelspace linker
458#
459# CONFIG_CONNECTOR is not set
460
461#
462# Memory Technology Devices (MTD)
463#
464CONFIG_MTD=y
465# CONFIG_MTD_DEBUG is not set
466# CONFIG_MTD_CONCAT is not set
467CONFIG_MTD_PARTITIONS=y
468# CONFIG_MTD_REDBOOT_PARTS is not set
469# CONFIG_MTD_CMDLINE_PARTS is not set
470
471#
472# User Modules And Translation Layers
473#
474CONFIG_MTD_CHAR=m
475CONFIG_MTD_BLOCK=y
476# CONFIG_FTL is not set
477# CONFIG_NFTL is not set
478# CONFIG_INFTL is not set
479# CONFIG_RFD_FTL is not set
480# CONFIG_SSFDC 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_MW320D=m
503CONFIG_MTD_RAM=y
504CONFIG_MTD_ROM=m
505# CONFIG_MTD_ABSENT is not set
506# CONFIG_MTD_OBSOLETE_CHIPS is not set
507
508#
509# Mapping drivers for chip access
510#
511CONFIG_MTD_COMPLEX_MAPPINGS=y
512# CONFIG_MTD_PHYSMAP is not set
513# CONFIG_MTD_EZKIT561 is not set
514CONFIG_MTD_BF5xx=m
515CONFIG_BFIN_FLASH_SIZE=0x0400000
516CONFIG_EBIU_FLASH_BASE=0x20000000
517
518#
519# FLASH_EBIU_AMBCTL Control
520#
521CONFIG_BFIN_FLASH_BANK_0=0x7BB0
522CONFIG_BFIN_FLASH_BANK_1=0x7BB0
523CONFIG_BFIN_FLASH_BANK_2=0x7BB0
524CONFIG_BFIN_FLASH_BANK_3=0x7BB0
525# CONFIG_MTD_UCLINUX is not set
526# CONFIG_MTD_PLATRAM is not set
527
528#
529# Self-contained MTD device drivers
530#
531# CONFIG_MTD_SLRAM is not set
532# CONFIG_MTD_PHRAM is not set
533# CONFIG_MTD_MTDRAM is not set
534# CONFIG_MTD_BLOCK2MTD is not set
535
536#
537# Disk-On-Chip Device Drivers
538#
539# CONFIG_MTD_DOC2000 is not set
540# CONFIG_MTD_DOC2001 is not set
541# CONFIG_MTD_DOC2001PLUS is not set
542
543#
544# NAND Flash Device Drivers
545#
546# CONFIG_MTD_NAND is not set
547
548#
549# OneNAND Flash Device Drivers
550#
551# CONFIG_MTD_ONENAND is not set
552
553#
554# Parallel port support
555#
556# CONFIG_PARPORT is not set
557
558#
559# Plug and Play support
560#
561
562#
563# Block devices
564#
565# CONFIG_BLK_DEV_COW_COMMON is not set
566# CONFIG_BLK_DEV_LOOP is not set
567# CONFIG_BLK_DEV_NBD is not set
568CONFIG_BLK_DEV_RAM=y
569CONFIG_BLK_DEV_RAM_COUNT=16
570CONFIG_BLK_DEV_RAM_SIZE=4096
571CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
572# CONFIG_BLK_DEV_INITRD is not set
573# CONFIG_CDROM_PKTCDVD is not set
574# CONFIG_ATA_OVER_ETH is not set
575
576#
577# Misc devices
578#
579# CONFIG_TIFM_CORE is not set
580
581#
582# ATA/ATAPI/MFM/RLL support
583#
584# CONFIG_IDE is not set
585
586#
587# SCSI device support
588#
589# CONFIG_RAID_ATTRS is not set
590# CONFIG_SCSI is not set
591# CONFIG_SCSI_NETLINK is not set
592
593#
594# Serial ATA (prod) and Parallel ATA (experimental) drivers
595#
596# CONFIG_ATA is not set
597
598#
599# Multi-device support (RAID and LVM)
600#
601# CONFIG_MD is not set
602
603#
604# Fusion MPT device support
605#
606# CONFIG_FUSION is not set
607
608#
609# IEEE 1394 (FireWire) support
610#
611
612#
613# I2O device support
614#
615
616#
617# Network device support
618#
619CONFIG_NETDEVICES=y
620# CONFIG_DUMMY is not set
621# CONFIG_BONDING is not set
622# CONFIG_EQUALIZER is not set
623# CONFIG_TUN is not set
624
625#
626# PHY device support
627#
628# CONFIG_PHYLIB is not set
629
630#
631# Ethernet (10 or 100Mbit)
632#
633CONFIG_NET_ETHERNET=y
634CONFIG_MII=y
635CONFIG_SMC91X=y
636
637#
638# Ethernet (1000 Mbit)
639#
640
641#
642# Ethernet (10000 Mbit)
643#
644
645#
646# Token Ring devices
647#
648
649#
650# Wireless LAN (non-hamradio)
651#
652# CONFIG_NET_RADIO is not set
653
654#
655# Wan interfaces
656#
657# CONFIG_WAN is not set
658# CONFIG_PPP is not set
659# CONFIG_SLIP is not set
660# CONFIG_SHAPER is not set
661# CONFIG_NETCONSOLE is not set
662# CONFIG_NETPOLL is not set
663# CONFIG_NET_POLL_CONTROLLER is not set
664
665#
666# ISDN subsystem
667#
668# CONFIG_ISDN is not set
669
670#
671# Telephony Support
672#
673# CONFIG_PHONE is not set
674
675#
676# Input device support
677#
678# CONFIG_INPUT is not set
679
680#
681# Hardware I/O ports
682#
683# CONFIG_SERIO is not set
684# CONFIG_GAMEPORT is not set
685
686#
687# Character devices
688#
689# CONFIG_AD9960 is not set
690# CONFIG_SPI_ADC_BF533 is not set
691# CONFIG_BF533_PFLAGS is not set
692# CONFIG_BF5xx_PPIFCD is not set
693# CONFIG_BF5xx_TIMERS is not set
694# CONFIG_BF5xx_PPI is not set
695# CONFIG_BFIN_SPORT is not set
696# CONFIG_BFIN_TIMER_LATENCY is not set
697# CONFIG_VT is not set
698# CONFIG_SERIAL_NONSTANDARD is not set
699
700#
701# Serial drivers
702#
703# CONFIG_SERIAL_8250 is not set
704
705#
706# Non-8250 serial port support
707#
708CONFIG_SERIAL_BFIN=y
709CONFIG_SERIAL_BFIN_CONSOLE=y
710CONFIG_SERIAL_BFIN_DMA=y
711# CONFIG_SERIAL_BFIN_PIO is not set
712CONFIG_SERIAL_BFIN_UART0=y
713# CONFIG_BFIN_UART0_CTSRTS is not set
714CONFIG_SERIAL_CORE=y
715CONFIG_SERIAL_CORE_CONSOLE=y
716# CONFIG_SERIAL_BFIN_SPORT is not set
717CONFIG_UNIX98_PTYS=y
718# CONFIG_LEGACY_PTYS is not set
719
720#
721# CAN, the car bus and industrial fieldbus
722#
723# CONFIG_CAN4LINUX is not set
724
725#
726# IPMI
727#
728# CONFIG_IPMI_HANDLER is not set
729
730#
731# Watchdog Cards
732#
733# CONFIG_WATCHDOG is not set
734CONFIG_HW_RANDOM=y
735# CONFIG_GEN_RTC is not set
736# CONFIG_BLACKFIN_DPMC is not set
737# CONFIG_DTLK is not set
738# CONFIG_R3964 is not set
739
740#
741# Ftape, the floppy tape device driver
742#
743# CONFIG_RAW_DRIVER is not set
744
745#
746# TPM devices
747#
748# CONFIG_TCG_TPM is not set
749
750#
751# I2C support
752#
753# CONFIG_I2C is not set
754
755#
756# SPI support
757#
758# CONFIG_SPI is not set
759# CONFIG_SPI_MASTER is not set
760
761#
762# Dallas's 1-wire bus
763#
764# CONFIG_W1 is not set
765
766#
767# Hardware Monitoring support
768#
769CONFIG_HWMON=y
770# CONFIG_HWMON_VID is not set
771# CONFIG_SENSORS_ABITUGURU is not set
772# CONFIG_SENSORS_F71805F is not set
773# CONFIG_SENSORS_VT1211 is not set
774# CONFIG_HWMON_DEBUG_CHIP is not set
775
776#
777# Multimedia devices
778#
779# CONFIG_VIDEO_DEV is not set
780
781#
782# Digital Video Broadcasting Devices
783#
784# CONFIG_DVB is not set
785
786#
787# Graphics support
788#
789CONFIG_FIRMWARE_EDID=y
790# CONFIG_FB is not set
791# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
792
793#
794# Sound
795#
796# CONFIG_SOUND is not set
797
798#
799# USB support
800#
801CONFIG_USB_ARCH_HAS_HCD=y
802# CONFIG_USB_ARCH_HAS_OHCI is not set
803# CONFIG_USB_ARCH_HAS_EHCI is not set
804# CONFIG_USB is not set
805
806#
807# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
808#
809
810#
811# USB Gadget Support
812#
813# CONFIG_USB_GADGET is not set
814
815#
816# MMC/SD Card support
817#
818# CONFIG_MMC is not set
819
820#
821# LED devices
822#
823# CONFIG_NEW_LEDS is not set
824
825#
826# LED drivers
827#
828
829#
830# LED Triggers
831#
832
833#
834# InfiniBand support
835#
836
837#
838# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
839#
840
841#
842# Real Time Clock
843#
844# CONFIG_RTC_CLASS is not set
845
846#
847# DMA Engine support
848#
849# CONFIG_DMA_ENGINE is not set
850
851#
852# DMA Clients
853#
854
855#
856# DMA Devices
857#
858
859#
860# PBX support
861#
862# CONFIG_PBX is not set
863
864#
865# File systems
866#
867CONFIG_EXT2_FS=y
868CONFIG_EXT2_FS_XATTR=y
869# CONFIG_EXT2_FS_POSIX_ACL is not set
870# CONFIG_EXT2_FS_SECURITY is not set
871# CONFIG_EXT3_FS is not set
872# CONFIG_EXT4DEV_FS is not set
873CONFIG_FS_MBCACHE=y
874# CONFIG_REISERFS_FS is not set
875# CONFIG_JFS_FS is not set
876# CONFIG_FS_POSIX_ACL is not set
877# CONFIG_XFS_FS is not set
878# CONFIG_GFS2_FS is not set
879# CONFIG_OCFS2_FS is not set
880# CONFIG_MINIX_FS is not set
881# CONFIG_ROMFS_FS is not set
882CONFIG_INOTIFY=y
883CONFIG_INOTIFY_USER=y
884# CONFIG_QUOTA is not set
885CONFIG_DNOTIFY=y
886# CONFIG_AUTOFS_FS is not set
887# CONFIG_AUTOFS4_FS is not set
888# CONFIG_FUSE_FS is not set
889
890#
891# CD-ROM/DVD Filesystems
892#
893# CONFIG_ISO9660_FS is not set
894# CONFIG_UDF_FS is not set
895
896#
897# DOS/FAT/NT Filesystems
898#
899# CONFIG_MSDOS_FS is not set
900# CONFIG_VFAT_FS is not set
901# CONFIG_NTFS_FS is not set
902
903#
904# Pseudo filesystems
905#
906CONFIG_PROC_FS=y
907CONFIG_PROC_SYSCTL=y
908CONFIG_SYSFS=y
909# CONFIG_TMPFS is not set
910# CONFIG_HUGETLB_PAGE is not set
911CONFIG_RAMFS=y
912# CONFIG_CONFIGFS_FS is not set
913
914#
915# Miscellaneous filesystems
916#
917# CONFIG_ADFS_FS is not set
918# CONFIG_AFFS_FS is not set
919# CONFIG_HFS_FS is not set
920# CONFIG_HFSPLUS_FS is not set
921# CONFIG_BEFS_FS is not set
922# CONFIG_BFS_FS is not set
923# CONFIG_EFS_FS is not set
924CONFIG_YAFFS_FS=m
925CONFIG_YAFFS_YAFFS1=y
926# CONFIG_YAFFS_DOES_ECC is not set
927CONFIG_YAFFS_YAFFS2=y
928CONFIG_YAFFS_AUTO_YAFFS2=y
929# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
930CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10
931# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
932# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
933CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
934# CONFIG_JFFS_FS is not set
935CONFIG_JFFS2_FS=m
936CONFIG_JFFS2_FS_DEBUG=0
937CONFIG_JFFS2_FS_WRITEBUFFER=y
938# CONFIG_JFFS2_SUMMARY is not set
939# CONFIG_JFFS2_FS_XATTR is not set
940# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
941CONFIG_JFFS2_ZLIB=y
942CONFIG_JFFS2_RTIME=y
943# CONFIG_JFFS2_RUBIN is not set
944# CONFIG_CRAMFS is not set
945# CONFIG_VXFS_FS is not set
946# CONFIG_HPFS_FS is not set
947# CONFIG_QNX4FS_FS is not set
948# CONFIG_SYSV_FS is not set
949# CONFIG_UFS_FS is not set
950
951#
952# Network File Systems
953#
954CONFIG_NFS_FS=m
955CONFIG_NFS_V3=y
956# CONFIG_NFS_V3_ACL is not set
957# CONFIG_NFS_V4 is not set
958# CONFIG_NFS_DIRECTIO is not set
959# CONFIG_NFSD is not set
960CONFIG_LOCKD=m
961CONFIG_LOCKD_V4=y
962CONFIG_NFS_COMMON=y
963CONFIG_SUNRPC=m
964# CONFIG_RPCSEC_GSS_KRB5 is not set
965# CONFIG_RPCSEC_GSS_SPKM3 is not set
966CONFIG_SMB_FS=m
967# CONFIG_SMB_NLS_DEFAULT is not set
968# CONFIG_CIFS is not set
969# CONFIG_NCP_FS is not set
970# CONFIG_CODA_FS is not set
971# CONFIG_AFS_FS is not set
972# CONFIG_9P_FS is not set
973
974#
975# Partition Types
976#
977# CONFIG_PARTITION_ADVANCED is not set
978CONFIG_MSDOS_PARTITION=y
979
980#
981# Native Language Support
982#
983CONFIG_NLS=m
984CONFIG_NLS_DEFAULT="iso8859-1"
985# CONFIG_NLS_CODEPAGE_437 is not set
986# CONFIG_NLS_CODEPAGE_737 is not set
987# CONFIG_NLS_CODEPAGE_775 is not set
988# CONFIG_NLS_CODEPAGE_850 is not set
989# CONFIG_NLS_CODEPAGE_852 is not set
990# CONFIG_NLS_CODEPAGE_855 is not set
991# CONFIG_NLS_CODEPAGE_857 is not set
992# CONFIG_NLS_CODEPAGE_860 is not set
993# CONFIG_NLS_CODEPAGE_861 is not set
994# CONFIG_NLS_CODEPAGE_862 is not set
995# CONFIG_NLS_CODEPAGE_863 is not set
996# CONFIG_NLS_CODEPAGE_864 is not set
997# CONFIG_NLS_CODEPAGE_865 is not set
998# CONFIG_NLS_CODEPAGE_866 is not set
999# CONFIG_NLS_CODEPAGE_869 is not set
1000# CONFIG_NLS_CODEPAGE_936 is not set
1001# CONFIG_NLS_CODEPAGE_950 is not set
1002# CONFIG_NLS_CODEPAGE_932 is not set
1003# CONFIG_NLS_CODEPAGE_949 is not set
1004# CONFIG_NLS_CODEPAGE_874 is not set
1005# CONFIG_NLS_ISO8859_8 is not set
1006# CONFIG_NLS_CODEPAGE_1250 is not set
1007# CONFIG_NLS_CODEPAGE_1251 is not set
1008# CONFIG_NLS_ASCII is not set
1009# CONFIG_NLS_ISO8859_1 is not set
1010# CONFIG_NLS_ISO8859_2 is not set
1011# CONFIG_NLS_ISO8859_3 is not set
1012# CONFIG_NLS_ISO8859_4 is not set
1013# CONFIG_NLS_ISO8859_5 is not set
1014# CONFIG_NLS_ISO8859_6 is not set
1015# CONFIG_NLS_ISO8859_7 is not set
1016# CONFIG_NLS_ISO8859_9 is not set
1017# CONFIG_NLS_ISO8859_13 is not set
1018# CONFIG_NLS_ISO8859_14 is not set
1019# CONFIG_NLS_ISO8859_15 is not set
1020# CONFIG_NLS_KOI8_R is not set
1021# CONFIG_NLS_KOI8_U is not set
1022# CONFIG_NLS_UTF8 is not set
1023
1024#
1025# Profiling support
1026#
1027# CONFIG_PROFILING is not set
1028
1029#
1030# Kernel hacking
1031#
1032# CONFIG_PRINTK_TIME is not set
1033CONFIG_ENABLE_MUST_CHECK=y
1034# CONFIG_MAGIC_SYSRQ is not set
1035# CONFIG_UNUSED_SYMBOLS is not set
1036# CONFIG_DEBUG_KERNEL is not set
1037CONFIG_LOG_BUF_SHIFT=14
1038# CONFIG_DEBUG_BUGVERBOSE is not set
1039# CONFIG_DEBUG_FS is not set
1040# CONFIG_UNWIND_INFO is not set
1041# CONFIG_HEADERS_CHECK is not set
1042# CONFIG_DEBUG_SERIAL_EARLY_INIT is not set
1043CONFIG_DEBUG_HUNT_FOR_ZERO=y
1044# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1045# CONFIG_DUAL_CORE_TEST_MODULE is not set
1046# CONFIG_BOOTPARAM is not set
1047# CONFIG_NO_KERNEL_MSG is not set
1048CONFIG_CPLB_INFO=y
1049# CONFIG_NO_ACCESS_CHECK is not set
1050
1051#
1052# Security options
1053#
1054# CONFIG_KEYS is not set
1055CONFIG_SECURITY=y
1056# CONFIG_SECURITY_NETWORK is not set
1057CONFIG_SECURITY_CAPABILITIES=y
1058
1059#
1060# Cryptographic options
1061#
1062# CONFIG_CRYPTO is not set
1063
1064#
1065# Library routines
1066#
1067# CONFIG_CRC_CCITT is not set
1068# CONFIG_CRC16 is not set
1069CONFIG_CRC32=y
1070# CONFIG_LIBCRC32C is not set
1071CONFIG_ZLIB_INFLATE=y
1072CONFIG_ZLIB_DEFLATE=m
1073CONFIG_PLIST=y
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
new file mode 100644
index 000000000000..97b4ffa2b4ac
--- /dev/null
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -0,0 +1,1253 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19.3
4#
5# CONFIG_MMU is not set
6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
10CONFIG_BFIN=y
11CONFIG_SEMAPHORE_SLEEPERS=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_UCLINUX=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_IRQCHIP_DEMUX_GPIO=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21
22#
23# Code maturity level options
24#
25CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36# CONFIG_POSIX_MQUEUE is not set
37# CONFIG_BSD_PROCESS_ACCT is not set
38# CONFIG_TASKSTATS is not set
39# CONFIG_UTS_NS is not set
40# CONFIG_AUDIT is not set
41# CONFIG_IKCONFIG is not set
42# CONFIG_RELAY is not set
43CONFIG_INITRAMFS_SOURCE=""
44# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
45CONFIG_SYSCTL=y
46CONFIG_EMBEDDED=y
47CONFIG_UID16=y
48CONFIG_SYSCTL_SYSCALL=y
49CONFIG_KALLSYMS=y
50# CONFIG_KALLSYMS_EXTRA_PASS is not set
51CONFIG_HOTPLUG=y
52CONFIG_PRINTK=y
53CONFIG_BUG=y
54CONFIG_ELF_CORE=y
55CONFIG_BASE_FULL=y
56CONFIG_FUTEX=y
57CONFIG_EPOLL=y
58CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=9
59# CONFIG_LIMIT_PAGECACHE is not set
60CONFIG_BUDDY=y
61# CONFIG_NP2 is not set
62CONFIG_SLAB=y
63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
65CONFIG_TINY_SHMEM=y
66CONFIG_BASE_SMALL=0
67# CONFIG_SLOB is not set
68
69#
70# Loadable module support
71#
72CONFIG_MODULES=y
73CONFIG_MODULE_UNLOAD=y
74# CONFIG_MODULE_FORCE_UNLOAD is not set
75# CONFIG_MODVERSIONS is not set
76# CONFIG_MODULE_SRCVERSION_ALL is not set
77CONFIG_KMOD=y
78
79#
80# Block layer
81#
82CONFIG_BLOCK=y
83# CONFIG_BLK_DEV_IO_TRACE is not set
84
85#
86# IO Schedulers
87#
88CONFIG_IOSCHED_NOOP=y
89CONFIG_IOSCHED_AS=y
90# CONFIG_IOSCHED_DEADLINE is not set
91CONFIG_IOSCHED_CFQ=y
92CONFIG_DEFAULT_AS=y
93# CONFIG_DEFAULT_DEADLINE is not set
94# CONFIG_DEFAULT_CFQ is not set
95# CONFIG_DEFAULT_NOOP is not set
96CONFIG_DEFAULT_IOSCHED="anticipatory"
97# CONFIG_PREEMPT_NONE is not set
98CONFIG_PREEMPT_VOLUNTARY=y
99# CONFIG_PREEMPT is not set
100
101#
102# Blackfin Processor Options
103#
104
105#
106# Processor and Board Settings
107#
108# CONFIG_BF531 is not set
109# CONFIG_BF532 is not set
110# CONFIG_BF533 is not set
111# CONFIG_BF534 is not set
112# CONFIG_BF535 is not set
113# CONFIG_BF536 is not set
114CONFIG_BF537=y
115# CONFIG_BF561 is not set
116CONFIG_BF_REV_0_2=y
117# CONFIG_BF_REV_0_3 is not set
118# CONFIG_BF_REV_0_4 is not set
119# CONFIG_BF_REV_0_5 is not set
120CONFIG_BFIN_SINGLE_CORE=y
121# CONFIG_BFIN533_EZKIT is not set
122# CONFIG_BFIN533_STAMP is not set
123# CONFIG_BFIN537_STAMP is not set
124# CONFIG_BFIN533_BLUETECHNIX_CM is not set
125# CONFIG_BFIN537_BLUETECHNIX_CM is not set
126# CONFIG_BFIN561_BLUETECHNIX_CM is not set
127# CONFIG_BFIN561_EZKIT is not set
128CONFIG_PNAV10=y
129# CONFIG_GENERIC_BOARD is not set
130CONFIG_MEM_MT48LC32M8A2_75=y
131CONFIG_IRQ_PLL_WAKEUP=7
132
133#
134# BF537 Specific Configuration
135#
136
137#
138# PORT F/G Selection
139#
140CONFIG_BF537_PORT_F=y
141# CONFIG_BF537_PORT_G is not set
142# CONFIG_BF537_PORT_H is not set
143
144#
145# Interrupt Priority Assignment
146#
147
148#
149# Priority
150#
151CONFIG_IRQ_DMA_ERROR=7
152CONFIG_IRQ_ERROR=7
153CONFIG_IRQ_RTC=8
154CONFIG_IRQ_PPI=8
155CONFIG_IRQ_SPORT0_RX=9
156CONFIG_IRQ_SPORT0_TX=9
157CONFIG_IRQ_SPORT1_RX=9
158CONFIG_IRQ_SPORT1_TX=9
159CONFIG_IRQ_TWI=10
160CONFIG_IRQ_SPI=10
161CONFIG_IRQ_UART0_RX=10
162CONFIG_IRQ_UART0_TX=10
163CONFIG_IRQ_UART1_RX=10
164CONFIG_IRQ_UART1_TX=10
165CONFIG_IRQ_CAN_RX=11
166CONFIG_IRQ_CAN_TX=11
167CONFIG_IRQ_MAC_RX=11
168CONFIG_IRQ_MAC_TX=11
169CONFIG_IRQ_TMR0=12
170CONFIG_IRQ_TMR1=12
171CONFIG_IRQ_TMR2=12
172CONFIG_IRQ_TMR3=12
173CONFIG_IRQ_TMR4=12
174CONFIG_IRQ_TMR5=12
175CONFIG_IRQ_TMR6=12
176CONFIG_IRQ_TMR7=12
177CONFIG_IRQ_PROG_INTA=12
178CONFIG_IRQ_PORTG_INTB=12
179CONFIG_IRQ_MEM_DMA0=13
180CONFIG_IRQ_MEM_DMA1=13
181CONFIG_IRQ_WATCH=13
182
183#
184# Board customizations
185#
186
187#
188# Board Setup
189#
190CONFIG_CLKIN_HZ=24576000
191CONFIG_MEM_SIZE=64
192CONFIG_MEM_ADD_WIDTH=10
193CONFIG_BOOT_LOAD=0x1000
194
195#
196# Console UART Setup
197#
198# CONFIG_BAUD_9600 is not set
199# CONFIG_BAUD_19200 is not set
200# CONFIG_BAUD_38400 is not set
201# CONFIG_BAUD_57600 is not set
202CONFIG_BAUD_115200=y
203CONFIG_BAUD_NO_PARITY=y
204# CONFIG_BAUD_PARITY is not set
205CONFIG_BAUD_1_STOPBIT=y
206# CONFIG_BAUD_2_STOPBIT is not set
207
208#
209# Blackfin Kernel Optimizations
210#
211
212#
213# Timer Tick
214#
215# CONFIG_HZ_100 is not set
216CONFIG_HZ_250=y
217# CONFIG_HZ_1000 is not set
218CONFIG_HZ=250
219
220#
221# Memory Optimizations
222#
223CONFIG_I_ENTRY_L1=y
224CONFIG_EXCPT_IRQ_SYSC_L1=y
225CONFIG_DO_IRQ_L1=y
226CONFIG_CORE_TIMER_IRQ_L1=y
227CONFIG_IDLE_L1=y
228CONFIG_SCHEDULE_L1=y
229CONFIG_ARITHMETIC_OPS_L1=y
230CONFIG_ACCESS_OK_L1=y
231CONFIG_MEMSET_L1=y
232CONFIG_MEMCPY_L1=y
233CONFIG_SYS_BFIN_SPINLOCK_L1=y
234CONFIG_IP_CHECKSUM_L1=y
235CONFIG_SYSCALL_TAB_L1=y
236CONFIG_CPLB_SWITCH_TAB_L1=y
237CONFIG_RAMKERNEL=y
238# CONFIG_ROMKERNEL is not set
239CONFIG_SELECT_MEMORY_MODEL=y
240CONFIG_FLATMEM_MANUAL=y
241# CONFIG_DISCONTIGMEM_MANUAL is not set
242# CONFIG_SPARSEMEM_MANUAL is not set
243CONFIG_FLATMEM=y
244CONFIG_FLAT_NODE_MEM_MAP=y
245# CONFIG_SPARSEMEM_STATIC is not set
246CONFIG_SPLIT_PTLOCK_CPUS=4
247# CONFIG_RESOURCES_64BIT is not set
248CONFIG_LARGE_ALLOCS=y
249CONFIG_BFIN_DMA_5XX=y
250# CONFIG_DMA_UNCACHED_2M is not set
251CONFIG_DMA_UNCACHED_1M=y
252# CONFIG_DMA_UNCACHED_NONE is not set
253
254#
255# Cache Support
256#
257CONFIG_BLKFIN_CACHE=y
258CONFIG_BLKFIN_DCACHE=y
259# CONFIG_BLKFIN_DCACHE_BANKA is not set
260# CONFIG_BLKFIN_CACHE_LOCK is not set
261CONFIG_BLKFIN_WB=y
262# CONFIG_BLKFIN_WT is not set
263CONFIG_L1_MAX_PIECE=16
264
265#
266# Clock Settings
267#
268# CONFIG_BFIN_KERNEL_CLOCK is not set
269
270#
271# Asynchonous Memory Configuration
272#
273
274#
275# EBIU_AMBCTL Global Control
276#
277CONFIG_C_AMCKEN=y
278CONFIG_C_CDPRIO=y
279# CONFIG_C_AMBEN is not set
280# CONFIG_C_AMBEN_B0 is not set
281# CONFIG_C_AMBEN_B0_B1 is not set
282# CONFIG_C_AMBEN_B0_B1_B2 is not set
283CONFIG_C_AMBEN_ALL=y
284
285#
286# EBIU_AMBCTL Control
287#
288CONFIG_BANK_0=0x7BB0
289CONFIG_BANK_1=0x33B0
290CONFIG_BANK_2=0x33B0
291CONFIG_BANK_3=0x99B3
292
293#
294# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
295#
296# CONFIG_PCI is not set
297
298#
299# PCCARD (PCMCIA/CardBus) support
300#
301# CONFIG_PCCARD is not set
302
303#
304# PCI Hotplug Support
305#
306
307#
308# Executable file formats
309#
310CONFIG_BINFMT_ELF_FDPIC=y
311CONFIG_BINFMT_FLAT=y
312CONFIG_BINFMT_ZFLAT=y
313# CONFIG_BINFMT_SHARED_FLAT is not set
314# CONFIG_BINFMT_MISC is not set
315
316#
317# Power management options
318#
319# CONFIG_PM is not set
320
321#
322# CPU Frequency scaling
323#
324# CONFIG_CPU_FREQ is not set
325
326#
327# Networking
328#
329CONFIG_NET=y
330
331#
332# Networking options
333#
334# CONFIG_NETDEBUG is not set
335CONFIG_PACKET=y
336# CONFIG_PACKET_MMAP is not set
337CONFIG_UNIX=y
338CONFIG_XFRM=y
339# CONFIG_XFRM_USER is not set
340# CONFIG_XFRM_SUB_POLICY is not set
341# CONFIG_NET_KEY is not set
342CONFIG_INET=y
343# CONFIG_IP_MULTICAST is not set
344# CONFIG_IP_ADVANCED_ROUTER is not set
345CONFIG_IP_FIB_HASH=y
346CONFIG_IP_PNP=y
347# CONFIG_IP_PNP_DHCP is not set
348# CONFIG_IP_PNP_BOOTP is not set
349# CONFIG_IP_PNP_RARP is not set
350# CONFIG_NET_IPIP is not set
351# CONFIG_NET_IPGRE is not set
352# CONFIG_ARPD is not set
353CONFIG_SYN_COOKIES=y
354# CONFIG_INET_AH is not set
355# CONFIG_INET_ESP is not set
356# CONFIG_INET_IPCOMP is not set
357# CONFIG_INET_XFRM_TUNNEL is not set
358# CONFIG_INET_TUNNEL is not set
359CONFIG_INET_XFRM_MODE_TRANSPORT=y
360CONFIG_INET_XFRM_MODE_TUNNEL=y
361CONFIG_INET_XFRM_MODE_BEET=y
362CONFIG_INET_DIAG=y
363CONFIG_INET_TCP_DIAG=y
364# CONFIG_TCP_CONG_ADVANCED is not set
365CONFIG_TCP_CONG_CUBIC=y
366CONFIG_DEFAULT_TCP_CONG="cubic"
367# CONFIG_IPV6 is not set
368# CONFIG_INET6_XFRM_TUNNEL is not set
369# CONFIG_INET6_TUNNEL is not set
370# CONFIG_NETLABEL is not set
371# CONFIG_NETWORK_SECMARK is not set
372# CONFIG_NETFILTER is not set
373
374#
375# DCCP Configuration (EXPERIMENTAL)
376#
377# CONFIG_IP_DCCP is not set
378
379#
380# SCTP Configuration (EXPERIMENTAL)
381#
382# CONFIG_IP_SCTP is not set
383
384#
385# TIPC Configuration (EXPERIMENTAL)
386#
387# CONFIG_TIPC is not set
388# CONFIG_ATM is not set
389# CONFIG_BRIDGE is not set
390# CONFIG_VLAN_8021Q is not set
391# CONFIG_DECNET is not set
392# CONFIG_LLC2 is not set
393# CONFIG_IPX is not set
394# CONFIG_ATALK is not set
395# CONFIG_X25 is not set
396# CONFIG_LAPB is not set
397# CONFIG_ECONET is not set
398# CONFIG_WAN_ROUTER is not set
399
400#
401# QoS and/or fair queueing
402#
403# CONFIG_NET_SCHED is not set
404
405#
406# Network testing
407#
408# CONFIG_NET_PKTGEN is not set
409# CONFIG_HAMRADIO is not set
410# CONFIG_IRDA is not set
411# CONFIG_BT is not set
412# CONFIG_IEEE80211 is not set
413
414#
415# Device Drivers
416#
417
418#
419# Generic Driver Options
420#
421CONFIG_STANDALONE=y
422CONFIG_PREVENT_FIRMWARE_BUILD=y
423# CONFIG_FW_LOADER is not set
424# CONFIG_SYS_HYPERVISOR is not set
425
426#
427# Connector - unified userspace <-> kernelspace linker
428#
429# CONFIG_CONNECTOR is not set
430
431#
432# Memory Technology Devices (MTD)
433#
434CONFIG_MTD=y
435# CONFIG_MTD_DEBUG is not set
436# CONFIG_MTD_CONCAT is not set
437CONFIG_MTD_PARTITIONS=y
438# CONFIG_MTD_REDBOOT_PARTS is not set
439# CONFIG_MTD_CMDLINE_PARTS is not set
440
441#
442# User Modules And Translation Layers
443#
444CONFIG_MTD_CHAR=m
445CONFIG_MTD_BLOCK=y
446# CONFIG_FTL is not set
447# CONFIG_NFTL is not set
448# CONFIG_INFTL is not set
449# CONFIG_RFD_FTL is not set
450# CONFIG_SSFDC is not set
451
452#
453# RAM/ROM/Flash chip drivers
454#
455# CONFIG_MTD_CFI is not set
456# CONFIG_MTD_JEDECPROBE is not set
457CONFIG_MTD_MAP_BANK_WIDTH_1=y
458CONFIG_MTD_MAP_BANK_WIDTH_2=y
459CONFIG_MTD_MAP_BANK_WIDTH_4=y
460# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
461# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
462# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
463CONFIG_MTD_CFI_I1=y
464CONFIG_MTD_CFI_I2=y
465# CONFIG_MTD_CFI_I4 is not set
466# CONFIG_MTD_CFI_I8 is not set
467CONFIG_MTD_RAM=y
468# CONFIG_MTD_ROM is not set
469# CONFIG_MTD_ABSENT is not set
470# CONFIG_MTD_OBSOLETE_CHIPS is not set
471
472#
473# Mapping drivers for chip access
474#
475CONFIG_MTD_COMPLEX_MAPPINGS=y
476# CONFIG_MTD_BF5xx is not set
477CONFIG_MTD_UCLINUX=y
478# CONFIG_MTD_PLATRAM is not set
479
480#
481# Self-contained MTD device drivers
482#
483# CONFIG_MTD_DATAFLASH is not set
484# CONFIG_MTD_M25P80 is not set
485# CONFIG_MTD_SLRAM is not set
486# CONFIG_MTD_PHRAM is not set
487# CONFIG_MTD_MTDRAM is not set
488# CONFIG_MTD_BLOCK2MTD is not set
489
490#
491# Disk-On-Chip Device Drivers
492#
493# CONFIG_MTD_DOC2000 is not set
494# CONFIG_MTD_DOC2001 is not set
495# CONFIG_MTD_DOC2001PLUS is not set
496
497#
498# NAND Flash Device Drivers
499#
500CONFIG_MTD_NAND=y
501# CONFIG_MTD_NAND_VERIFY_WRITE is not set
502# CONFIG_MTD_NAND_ECC_SMC is not set
503CONFIG_MTD_NAND_BFIN=y
504CONFIG_BFIN_NAND_BASE=0x20100000
505CONFIG_BFIN_NAND_CLE=2
506CONFIG_BFIN_NAND_ALE=1
507CONFIG_BFIN_NAND_READY=44
508CONFIG_MTD_NAND_IDS=y
509# CONFIG_MTD_NAND_DISKONCHIP is not set
510# CONFIG_MTD_NAND_NANDSIM is not set
511
512#
513# OneNAND Flash Device Drivers
514#
515# CONFIG_MTD_ONENAND is not set
516
517#
518# Parallel port support
519#
520# CONFIG_PARPORT is not set
521
522#
523# Plug and Play support
524#
525
526#
527# Block devices
528#
529# CONFIG_BLK_DEV_COW_COMMON is not set
530# CONFIG_BLK_DEV_LOOP is not set
531# CONFIG_BLK_DEV_NBD is not set
532CONFIG_BLK_DEV_RAM=y
533CONFIG_BLK_DEV_RAM_COUNT=16
534CONFIG_BLK_DEV_RAM_SIZE=4096
535CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
536# CONFIG_BLK_DEV_INITRD is not set
537# CONFIG_CDROM_PKTCDVD is not set
538# CONFIG_ATA_OVER_ETH is not set
539
540#
541# Misc devices
542#
543# CONFIG_TIFM_CORE is not set
544
545#
546# ATA/ATAPI/MFM/RLL support
547#
548# CONFIG_IDE is not set
549
550#
551# SCSI device support
552#
553# CONFIG_RAID_ATTRS is not set
554# CONFIG_SCSI is not set
555# CONFIG_SCSI_NETLINK is not set
556
557#
558# Serial ATA (prod) and Parallel ATA (experimental) drivers
559#
560# CONFIG_ATA is not set
561
562#
563# Multi-device support (RAID and LVM)
564#
565# CONFIG_MD is not set
566
567#
568# Fusion MPT device support
569#
570# CONFIG_FUSION is not set
571
572#
573# IEEE 1394 (FireWire) support
574#
575
576#
577# I2O device support
578#
579
580#
581# Network device support
582#
583CONFIG_NETDEVICES=y
584# CONFIG_DUMMY is not set
585# CONFIG_BONDING is not set
586# CONFIG_EQUALIZER is not set
587# CONFIG_TUN is not set
588
589#
590# PHY device support
591#
592# CONFIG_PHYLIB is not set
593
594#
595# Ethernet (10 or 100Mbit)
596#
597CONFIG_NET_ETHERNET=y
598CONFIG_MII=y
599# CONFIG_SMC91X is not set
600CONFIG_BFIN_MAC=y
601# CONFIG_BFIN_MAC_USE_L1 is not set
602CONFIG_BFIN_TX_DESC_NUM=100
603CONFIG_BFIN_RX_DESC_NUM=100
604CONFIG_BFIN_MAC_RMII=y
605
606#
607# Ethernet (1000 Mbit)
608#
609
610#
611# Ethernet (10000 Mbit)
612#
613
614#
615# Token Ring devices
616#
617
618#
619# Wireless LAN (non-hamradio)
620#
621# CONFIG_NET_RADIO is not set
622
623#
624# Wan interfaces
625#
626# CONFIG_WAN is not set
627# CONFIG_PPP is not set
628# CONFIG_SLIP is not set
629# CONFIG_SHAPER is not set
630# CONFIG_NETCONSOLE is not set
631# CONFIG_NETPOLL is not set
632# CONFIG_NET_POLL_CONTROLLER is not set
633
634#
635# ISDN subsystem
636#
637# CONFIG_ISDN is not set
638
639#
640# Telephony Support
641#
642# CONFIG_PHONE is not set
643
644#
645# Input device support
646#
647CONFIG_INPUT=y
648# CONFIG_INPUT_FF_MEMLESS is not set
649
650#
651# Userland interfaces
652#
653# CONFIG_INPUT_MOUSEDEV is not set
654# CONFIG_INPUT_JOYDEV is not set
655CONFIG_INPUT_TSDEV=y
656CONFIG_INPUT_TSDEV_SCREEN_X=240
657CONFIG_INPUT_TSDEV_SCREEN_Y=320
658CONFIG_INPUT_EVDEV=y
659# CONFIG_INPUT_EVBUG is not set
660
661#
662# Input Device Drivers
663#
664# CONFIG_INPUT_KEYBOARD is not set
665# CONFIG_INPUT_MOUSE is not set
666# CONFIG_INPUT_JOYSTICK is not set
667CONFIG_INPUT_TOUCHSCREEN=y
668# CONFIG_TOUCHSCREEN_ADS7846 is not set
669CONFIG_TOUCHSCREEN_AD7877=y
670# CONFIG_TOUCHSCREEN_GUNZE is not set
671# CONFIG_TOUCHSCREEN_ELO is not set
672# CONFIG_TOUCHSCREEN_MTOUCH is not set
673# CONFIG_TOUCHSCREEN_MK712 is not set
674# CONFIG_TOUCHSCREEN_PENMOUNT is not set
675# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
676# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
677CONFIG_INPUT_MISC=y
678CONFIG_INPUT_UINPUT=y
679# CONFIG_BF53X_PFBUTTONS is not set
680# CONFIG_TWI_KEYPAD is not set
681
682#
683# Hardware I/O ports
684#
685# CONFIG_SERIO is not set
686# CONFIG_GAMEPORT is not set
687
688#
689# Character devices
690#
691# CONFIG_AD9960 is not set
692# CONFIG_SPI_ADC_BF533 is not set
693# CONFIG_BF533_PFLAGS is not set
694# CONFIG_BF5xx_PPIFCD is not set
695# CONFIG_BF5xx_TIMERS is not set
696# CONFIG_BF5xx_PPI is not set
697CONFIG_BFIN_SPORT=y
698# CONFIG_BFIN_TIMER_LATENCY is not set
699CONFIG_TWI_LCD=m
700CONFIG_TWI_LCD_SLAVE_ADDR=34
701# CONFIG_AD5304 is not set
702# CONFIG_VT is not set
703# CONFIG_SERIAL_NONSTANDARD is not set
704
705#
706# Serial drivers
707#
708# CONFIG_SERIAL_8250 is not set
709
710#
711# Non-8250 serial port support
712#
713CONFIG_SERIAL_BFIN=y
714CONFIG_SERIAL_BFIN_CONSOLE=y
715CONFIG_SERIAL_BFIN_DMA=y
716# CONFIG_SERIAL_BFIN_PIO is not set
717CONFIG_SERIAL_BFIN_UART0=y
718# CONFIG_BFIN_UART0_CTSRTS is not set
719CONFIG_SERIAL_BFIN_UART1=y
720# CONFIG_BFIN_UART1_CTSRTS is not set
721CONFIG_SERIAL_CORE=y
722CONFIG_SERIAL_CORE_CONSOLE=y
723# CONFIG_SERIAL_BFIN_SPORT is not set
724CONFIG_UNIX98_PTYS=y
725# CONFIG_LEGACY_PTYS is not set
726
727#
728# CAN, the car bus and industrial fieldbus
729#
730CONFIG_CAN4LINUX=y
731
732#
733# linux embedded drivers
734#
735# CONFIG_CAN_MCF5282 is not set
736# CONFIG_CAN_UNCTWINCAN is not set
737CONFIG_CAN_BLACKFIN=m
738
739#
740# IPMI
741#
742# CONFIG_IPMI_HANDLER is not set
743
744#
745# Watchdog Cards
746#
747# CONFIG_WATCHDOG is not set
748CONFIG_HW_RANDOM=y
749# CONFIG_GEN_RTC is not set
750CONFIG_BLACKFIN_DPMC=y
751# CONFIG_DTLK is not set
752# CONFIG_R3964 is not set
753
754#
755# Ftape, the floppy tape device driver
756#
757# CONFIG_RAW_DRIVER is not set
758
759#
760# TPM devices
761#
762# CONFIG_TCG_TPM is not set
763
764#
765# I2C support
766#
767CONFIG_I2C=y
768CONFIG_I2C_CHARDEV=y
769
770#
771# I2C Algorithms
772#
773# CONFIG_I2C_ALGOBIT is not set
774# CONFIG_I2C_ALGOPCF is not set
775# CONFIG_I2C_ALGOPCA is not set
776
777#
778# I2C Hardware Bus support
779#
780# CONFIG_I2C_BFIN_GPIO is not set
781CONFIG_I2C_BFIN_TWI=y
782CONFIG_TWICLK_KHZ=50
783# CONFIG_I2C_OCORES is not set
784# CONFIG_I2C_PARPORT_LIGHT is not set
785# CONFIG_I2C_STUB is not set
786# CONFIG_I2C_PCA_ISA is not set
787
788#
789# Miscellaneous I2C Chip support
790#
791# CONFIG_SENSORS_DS1337 is not set
792# CONFIG_SENSORS_DS1374 is not set
793# CONFIG_SENSORS_AD5252 is not set
794# CONFIG_SENSORS_EEPROM is not set
795CONFIG_SENSORS_PCF8574=m
796CONFIG_SENSORS_PCF8575=y
797# CONFIG_SENSORS_PCA9543 is not set
798# CONFIG_SENSORS_PCA9539 is not set
799# CONFIG_SENSORS_PCF8591 is not set
800# CONFIG_SENSORS_MAX6875 is not set
801# CONFIG_I2C_DEBUG_CORE is not set
802# CONFIG_I2C_DEBUG_ALGO is not set
803# CONFIG_I2C_DEBUG_BUS is not set
804# CONFIG_I2C_DEBUG_CHIP is not set
805
806#
807# SPI support
808#
809CONFIG_SPI=y
810CONFIG_SPI_MASTER=y
811
812#
813# SPI Master Controller Drivers
814#
815# CONFIG_SPI_BITBANG is not set
816CONFIG_SPI_BFIN=y
817
818#
819# SPI Protocol Masters
820#
821
822#
823# Dallas's 1-wire bus
824#
825# CONFIG_W1 is not set
826
827#
828# Hardware Monitoring support
829#
830CONFIG_HWMON=y
831# CONFIG_HWMON_VID is not set
832# CONFIG_SENSORS_ABITUGURU is not set
833# CONFIG_SENSORS_ADM1021 is not set
834# CONFIG_SENSORS_ADM1025 is not set
835# CONFIG_SENSORS_ADM1026 is not set
836# CONFIG_SENSORS_ADM1031 is not set
837# CONFIG_SENSORS_ADM9240 is not set
838# CONFIG_SENSORS_ASB100 is not set
839# CONFIG_SENSORS_ATXP1 is not set
840# CONFIG_SENSORS_DS1621 is not set
841# CONFIG_SENSORS_F71805F is not set
842# CONFIG_SENSORS_FSCHER is not set
843# CONFIG_SENSORS_FSCPOS is not set
844# CONFIG_SENSORS_GL518SM is not set
845# CONFIG_SENSORS_GL520SM is not set
846# CONFIG_SENSORS_IT87 is not set
847# CONFIG_SENSORS_LM63 is not set
848# CONFIG_SENSORS_LM70 is not set
849# CONFIG_SENSORS_LM75 is not set
850# CONFIG_SENSORS_LM77 is not set
851# CONFIG_SENSORS_LM78 is not set
852# CONFIG_SENSORS_LM80 is not set
853# CONFIG_SENSORS_LM83 is not set
854# CONFIG_SENSORS_LM85 is not set
855# CONFIG_SENSORS_LM87 is not set
856# CONFIG_SENSORS_LM90 is not set
857# CONFIG_SENSORS_LM92 is not set
858# CONFIG_SENSORS_MAX1619 is not set
859# CONFIG_SENSORS_PC87360 is not set
860# CONFIG_SENSORS_SMSC47M1 is not set
861# CONFIG_SENSORS_SMSC47M192 is not set
862# CONFIG_SENSORS_SMSC47B397 is not set
863# CONFIG_SENSORS_VT1211 is not set
864# CONFIG_SENSORS_W83781D is not set
865# CONFIG_SENSORS_W83791D is not set
866# CONFIG_SENSORS_W83792D is not set
867# CONFIG_SENSORS_W83L785TS is not set
868# CONFIG_SENSORS_W83627HF is not set
869# CONFIG_SENSORS_W83627EHF is not set
870# CONFIG_HWMON_DEBUG_CHIP is not set
871
872#
873# Multimedia devices
874#
875# CONFIG_VIDEO_DEV is not set
876
877#
878# Digital Video Broadcasting Devices
879#
880# CONFIG_DVB is not set
881
882#
883# Graphics support
884#
885CONFIG_FIRMWARE_EDID=y
886CONFIG_FB=y
887CONFIG_FB_CFB_FILLRECT=y
888CONFIG_FB_CFB_COPYAREA=y
889CONFIG_FB_CFB_IMAGEBLIT=y
890# CONFIG_FB_MACMODES is not set
891# CONFIG_FB_BACKLIGHT is not set
892# CONFIG_FB_MODE_HELPERS is not set
893# CONFIG_FB_TILEBLITTING is not set
894# CONFIG_FB_BFIN_7171 is not set
895# CONFIG_FB_BFIN_7393 is not set
896CONFIG_FB_BF537_LQ035=y
897CONFIG_LQ035_SLAVE_ADDR=0x58
898CONFIG_FB_BFIN_LANDSCAPE=y
899# CONFIG_FB_BFIN_BGR is not set
900# CONFIG_FB_S1D13XXX is not set
901# CONFIG_FB_VIRTUAL is not set
902
903#
904# Logo configuration
905#
906# CONFIG_LOGO is not set
907CONFIG_BACKLIGHT_LCD_SUPPORT=y
908CONFIG_BACKLIGHT_CLASS_DEVICE=y
909CONFIG_BACKLIGHT_DEVICE=y
910CONFIG_LCD_CLASS_DEVICE=y
911CONFIG_LCD_DEVICE=y
912
913#
914# Sound
915#
916CONFIG_SOUND=y
917
918#
919# Advanced Linux Sound Architecture
920#
921CONFIG_SND=m
922CONFIG_SND_TIMER=m
923CONFIG_SND_PCM=m
924# CONFIG_SND_SEQUENCER is not set
925# CONFIG_SND_MIXER_OSS is not set
926# CONFIG_SND_PCM_OSS is not set
927# CONFIG_SND_DYNAMIC_MINORS is not set
928# CONFIG_SND_SUPPORT_OLD_API is not set
929# CONFIG_SND_VERBOSE_PROCFS is not set
930# CONFIG_SND_VERBOSE_PRINTK is not set
931# CONFIG_SND_DEBUG is not set
932
933#
934# Generic devices
935#
936# CONFIG_SND_DUMMY is not set
937# CONFIG_SND_MTPAV is not set
938# CONFIG_SND_SERIAL_U16550 is not set
939# CONFIG_SND_MPU401 is not set
940
941#
942# ALSA Blackfin devices
943#
944# CONFIG_SND_BLACKFIN_AD1836 is not set
945CONFIG_SND_BLACKFIN_AD1981B=m
946# CONFIG_SND_BFIN_AD73311 is not set
947
948#
949# Open Sound System
950#
951CONFIG_SOUND_PRIME=y
952CONFIG_OSS_OBSOLETE_DRIVER=y
953# CONFIG_SOUND_MSNDCLAS is not set
954# CONFIG_SOUND_MSNDPIN is not set
955
956#
957# USB support
958#
959CONFIG_USB_ARCH_HAS_HCD=y
960# CONFIG_USB_ARCH_HAS_OHCI is not set
961# CONFIG_USB_ARCH_HAS_EHCI is not set
962# CONFIG_USB is not set
963
964#
965# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
966#
967
968#
969# USB Gadget Support
970#
971# CONFIG_USB_GADGET is not set
972
973#
974# MMC/SD Card support
975#
976# CONFIG_SPI_MMC is not set
977# CONFIG_MMC is not set
978
979#
980# LED devices
981#
982# CONFIG_NEW_LEDS is not set
983
984#
985# LED drivers
986#
987
988#
989# LED Triggers
990#
991
992#
993# InfiniBand support
994#
995
996#
997# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
998#
999
1000#
1001# Real Time Clock
1002#
1003CONFIG_RTC_LIB=y
1004CONFIG_RTC_CLASS=y
1005CONFIG_RTC_HCTOSYS=y
1006CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1007# CONFIG_RTC_DEBUG is not set
1008
1009#
1010# RTC interfaces
1011#
1012CONFIG_RTC_INTF_SYSFS=y
1013CONFIG_RTC_INTF_PROC=y
1014CONFIG_RTC_INTF_DEV=y
1015# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1016
1017#
1018# RTC drivers
1019#
1020# CONFIG_RTC_DRV_X1205 is not set
1021# CONFIG_RTC_DRV_DS1307 is not set
1022# CONFIG_RTC_DRV_DS1553 is not set
1023# CONFIG_RTC_DRV_ISL1208 is not set
1024# CONFIG_RTC_DRV_DS1672 is not set
1025# CONFIG_RTC_DRV_DS1742 is not set
1026# CONFIG_RTC_DRV_PCF8563 is not set
1027# CONFIG_RTC_DRV_PCF8583 is not set
1028# CONFIG_RTC_DRV_RS5C348 is not set
1029# CONFIG_RTC_DRV_RS5C372 is not set
1030# CONFIG_RTC_DRV_M48T86 is not set
1031# CONFIG_RTC_DRV_TEST is not set
1032# CONFIG_RTC_DRV_MAX6902 is not set
1033# CONFIG_RTC_DRV_V3020 is not set
1034CONFIG_RTC_DRV_BFIN=y
1035
1036#
1037# DMA Engine support
1038#
1039# CONFIG_DMA_ENGINE is not set
1040
1041#
1042# DMA Clients
1043#
1044
1045#
1046# DMA Devices
1047#
1048
1049#
1050# PBX support
1051#
1052# CONFIG_PBX is not set
1053
1054#
1055# File systems
1056#
1057CONFIG_EXT2_FS=y
1058CONFIG_EXT2_FS_XATTR=y
1059# CONFIG_EXT2_FS_POSIX_ACL is not set
1060# CONFIG_EXT2_FS_SECURITY is not set
1061# CONFIG_EXT3_FS is not set
1062# CONFIG_EXT4DEV_FS is not set
1063CONFIG_FS_MBCACHE=y
1064# CONFIG_REISERFS_FS is not set
1065# CONFIG_JFS_FS is not set
1066# CONFIG_FS_POSIX_ACL is not set
1067# CONFIG_XFS_FS is not set
1068# CONFIG_GFS2_FS is not set
1069# CONFIG_OCFS2_FS is not set
1070# CONFIG_MINIX_FS is not set
1071# CONFIG_ROMFS_FS is not set
1072CONFIG_INOTIFY=y
1073CONFIG_INOTIFY_USER=y
1074# CONFIG_QUOTA is not set
1075CONFIG_DNOTIFY=y
1076# CONFIG_AUTOFS_FS is not set
1077# CONFIG_AUTOFS4_FS is not set
1078# CONFIG_FUSE_FS is not set
1079
1080#
1081# CD-ROM/DVD Filesystems
1082#
1083# CONFIG_ISO9660_FS is not set
1084# CONFIG_UDF_FS is not set
1085
1086#
1087# DOS/FAT/NT Filesystems
1088#
1089# CONFIG_MSDOS_FS is not set
1090# CONFIG_VFAT_FS is not set
1091# CONFIG_NTFS_FS is not set
1092
1093#
1094# Pseudo filesystems
1095#
1096CONFIG_PROC_FS=y
1097CONFIG_PROC_SYSCTL=y
1098CONFIG_SYSFS=y
1099# CONFIG_TMPFS is not set
1100# CONFIG_HUGETLB_PAGE is not set
1101CONFIG_RAMFS=y
1102# CONFIG_CONFIGFS_FS is not set
1103
1104#
1105# Miscellaneous filesystems
1106#
1107# CONFIG_ADFS_FS is not set
1108# CONFIG_AFFS_FS is not set
1109# CONFIG_HFS_FS is not set
1110# CONFIG_HFSPLUS_FS is not set
1111# CONFIG_BEFS_FS is not set
1112# CONFIG_BFS_FS is not set
1113# CONFIG_EFS_FS is not set
1114CONFIG_YAFFS_FS=y
1115CONFIG_YAFFS_YAFFS1=y
1116# CONFIG_YAFFS_DOES_ECC is not set
1117CONFIG_YAFFS_YAFFS2=y
1118CONFIG_YAFFS_AUTO_YAFFS2=y
1119# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1120CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10
1121# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1122# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1123CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1124# CONFIG_JFFS_FS is not set
1125# CONFIG_JFFS2_FS is not set
1126# CONFIG_CRAMFS is not set
1127# CONFIG_VXFS_FS is not set
1128# CONFIG_HPFS_FS is not set
1129# CONFIG_QNX4FS_FS is not set
1130# CONFIG_SYSV_FS is not set
1131# CONFIG_UFS_FS is not set
1132
1133#
1134# Network File Systems
1135#
1136CONFIG_NFS_FS=m
1137CONFIG_NFS_V3=y
1138# CONFIG_NFS_V3_ACL is not set
1139# CONFIG_NFS_V4 is not set
1140# CONFIG_NFS_DIRECTIO is not set
1141# CONFIG_NFSD is not set
1142CONFIG_LOCKD=m
1143CONFIG_LOCKD_V4=y
1144CONFIG_NFS_COMMON=y
1145CONFIG_SUNRPC=m
1146# CONFIG_RPCSEC_GSS_KRB5 is not set
1147# CONFIG_RPCSEC_GSS_SPKM3 is not set
1148CONFIG_SMB_FS=m
1149# CONFIG_SMB_NLS_DEFAULT is not set
1150# CONFIG_CIFS is not set
1151# CONFIG_NCP_FS is not set
1152# CONFIG_CODA_FS is not set
1153# CONFIG_AFS_FS is not set
1154# CONFIG_9P_FS is not set
1155
1156#
1157# Partition Types
1158#
1159# CONFIG_PARTITION_ADVANCED is not set
1160CONFIG_MSDOS_PARTITION=y
1161
1162#
1163# Native Language Support
1164#
1165CONFIG_NLS=m
1166CONFIG_NLS_DEFAULT="iso8859-1"
1167# CONFIG_NLS_CODEPAGE_437 is not set
1168# CONFIG_NLS_CODEPAGE_737 is not set
1169# CONFIG_NLS_CODEPAGE_775 is not set
1170# CONFIG_NLS_CODEPAGE_850 is not set
1171# CONFIG_NLS_CODEPAGE_852 is not set
1172# CONFIG_NLS_CODEPAGE_855 is not set
1173# CONFIG_NLS_CODEPAGE_857 is not set
1174# CONFIG_NLS_CODEPAGE_860 is not set
1175# CONFIG_NLS_CODEPAGE_861 is not set
1176# CONFIG_NLS_CODEPAGE_862 is not set
1177# CONFIG_NLS_CODEPAGE_863 is not set
1178# CONFIG_NLS_CODEPAGE_864 is not set
1179# CONFIG_NLS_CODEPAGE_865 is not set
1180# CONFIG_NLS_CODEPAGE_866 is not set
1181# CONFIG_NLS_CODEPAGE_869 is not set
1182# CONFIG_NLS_CODEPAGE_936 is not set
1183# CONFIG_NLS_CODEPAGE_950 is not set
1184# CONFIG_NLS_CODEPAGE_932 is not set
1185# CONFIG_NLS_CODEPAGE_949 is not set
1186# CONFIG_NLS_CODEPAGE_874 is not set
1187# CONFIG_NLS_ISO8859_8 is not set
1188# CONFIG_NLS_CODEPAGE_1250 is not set
1189# CONFIG_NLS_CODEPAGE_1251 is not set
1190# CONFIG_NLS_ASCII is not set
1191# CONFIG_NLS_ISO8859_1 is not set
1192# CONFIG_NLS_ISO8859_2 is not set
1193# CONFIG_NLS_ISO8859_3 is not set
1194# CONFIG_NLS_ISO8859_4 is not set
1195# CONFIG_NLS_ISO8859_5 is not set
1196# CONFIG_NLS_ISO8859_6 is not set
1197# CONFIG_NLS_ISO8859_7 is not set
1198# CONFIG_NLS_ISO8859_9 is not set
1199# CONFIG_NLS_ISO8859_13 is not set
1200# CONFIG_NLS_ISO8859_14 is not set
1201# CONFIG_NLS_ISO8859_15 is not set
1202# CONFIG_NLS_KOI8_R is not set
1203# CONFIG_NLS_KOI8_U is not set
1204# CONFIG_NLS_UTF8 is not set
1205
1206#
1207# Profiling support
1208#
1209# CONFIG_PROFILING is not set
1210
1211#
1212# Kernel hacking
1213#
1214# CONFIG_PRINTK_TIME is not set
1215CONFIG_ENABLE_MUST_CHECK=y
1216# CONFIG_MAGIC_SYSRQ is not set
1217# CONFIG_UNUSED_SYMBOLS is not set
1218# CONFIG_DEBUG_KERNEL is not set
1219CONFIG_LOG_BUF_SHIFT=14
1220# CONFIG_DEBUG_BUGVERBOSE is not set
1221# CONFIG_DEBUG_FS is not set
1222# CONFIG_UNWIND_INFO is not set
1223# CONFIG_HEADERS_CHECK is not set
1224# CONFIG_DEBUG_SERIAL_EARLY_INIT is not set
1225# CONFIG_DEBUG_HUNT_FOR_ZERO is not set
1226# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1227# CONFIG_BOOTPARAM is not set
1228# CONFIG_NO_KERNEL_MSG is not set
1229# CONFIG_CPLB_INFO is not set
1230# CONFIG_NO_ACCESS_CHECK is not set
1231
1232#
1233# Security options
1234#
1235# CONFIG_KEYS is not set
1236CONFIG_SECURITY=y
1237# CONFIG_SECURITY_NETWORK is not set
1238CONFIG_SECURITY_CAPABILITIES=y
1239
1240#
1241# Cryptographic options
1242#
1243# CONFIG_CRYPTO is not set
1244
1245#
1246# Library routines
1247#
1248CONFIG_CRC_CCITT=m
1249# CONFIG_CRC16 is not set
1250CONFIG_CRC32=y
1251# CONFIG_LIBCRC32C is not set
1252CONFIG_ZLIB_INFLATE=y
1253CONFIG_PLIST=y
diff --git a/arch/blackfin/defconfig b/arch/blackfin/defconfig
index d5904ca994cf..a513fbe39567 100644
--- a/arch/blackfin/defconfig
+++ b/arch/blackfin/defconfig
@@ -1,19 +1,20 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.20.4
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
7CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
9CONFIG_BFIN=y 10CONFIG_BFIN=y
10CONFIG_SEMAPHORE_SLEEPERS=y 11CONFIG_SEMAPHORE_SLEEPERS=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_TIME is not set
15CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_UCLINUX=y
17CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_IRQCHIP_DEMUX_GPIO=y 19CONFIG_IRQCHIP_DEMUX_GPIO=y
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -55,6 +56,7 @@ CONFIG_ELF_CORE=y
55CONFIG_BASE_FULL=y 56CONFIG_BASE_FULL=y
56CONFIG_FUTEX=y 57CONFIG_FUTEX=y
57CONFIG_EPOLL=y 58CONFIG_EPOLL=y
59CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
58# CONFIG_LIMIT_PAGECACHE is not set 60# CONFIG_LIMIT_PAGECACHE is not set
59CONFIG_BUDDY=y 61CONFIG_BUDDY=y
60# CONFIG_NP2 is not set 62# CONFIG_NP2 is not set
@@ -95,6 +97,9 @@ CONFIG_DEFAULT_AS=y
95# CONFIG_DEFAULT_CFQ is not set 97# CONFIG_DEFAULT_CFQ is not set
96# CONFIG_DEFAULT_NOOP is not set 98# CONFIG_DEFAULT_NOOP is not set
97CONFIG_DEFAULT_IOSCHED="anticipatory" 99CONFIG_DEFAULT_IOSCHED="anticipatory"
100# CONFIG_PREEMPT_NONE is not set
101CONFIG_PREEMPT_VOLUNTARY=y
102# CONFIG_PREEMPT is not set
98 103
99# 104#
100# Blackfin Processor Options 105# Blackfin Processor Options
@@ -107,7 +112,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
107# CONFIG_BF532 is not set 112# CONFIG_BF532 is not set
108# CONFIG_BF533 is not set 113# CONFIG_BF533 is not set
109# CONFIG_BF534 is not set 114# CONFIG_BF534 is not set
110# CONFIG_BF535 is not set
111# CONFIG_BF536 is not set 115# CONFIG_BF536 is not set
112CONFIG_BF537=y 116CONFIG_BF537=y
113# CONFIG_BF561 is not set 117# CONFIG_BF561 is not set
@@ -115,7 +119,6 @@ CONFIG_BF_REV_0_2=y
115# CONFIG_BF_REV_0_3 is not set 119# CONFIG_BF_REV_0_3 is not set
116# CONFIG_BF_REV_0_4 is not set 120# CONFIG_BF_REV_0_4 is not set
117# CONFIG_BF_REV_0_5 is not set 121# CONFIG_BF_REV_0_5 is not set
118CONFIG_BLACKFIN=y
119CONFIG_BFIN_SINGLE_CORE=y 122CONFIG_BFIN_SINGLE_CORE=y
120# CONFIG_BFIN533_EZKIT is not set 123# CONFIG_BFIN533_EZKIT is not set
121# CONFIG_BFIN533_STAMP is not set 124# CONFIG_BFIN533_STAMP is not set
@@ -182,6 +185,7 @@ CONFIG_IRQ_WATCH=13
182# 185#
183# Board customizations 186# Board customizations
184# 187#
188# CONFIG_CMDLINE_BOOL is not set
185 189
186# 190#
187# Board Setup 191# Board Setup
@@ -221,6 +225,19 @@ CONFIG_HZ=250
221# Memory Optimizations 225# Memory Optimizations
222# 226#
223CONFIG_I_ENTRY_L1=y 227CONFIG_I_ENTRY_L1=y
228CONFIG_EXCPT_IRQ_SYSC_L1=y
229CONFIG_DO_IRQ_L1=y
230CONFIG_CORE_TIMER_IRQ_L1=y
231CONFIG_IDLE_L1=y
232CONFIG_SCHEDULE_L1=y
233CONFIG_ARITHMETIC_OPS_L1=y
234CONFIG_ACCESS_OK_L1=y
235CONFIG_MEMSET_L1=y
236CONFIG_MEMCPY_L1=y
237CONFIG_SYS_BFIN_SPINLOCK_L1=y
238# CONFIG_IP_CHECKSUM_L1 is not set
239# CONFIG_SYSCALL_TAB_L1 is not set
240# CONFIG_CPLB_SWITCH_TAB_L1 is not set
224CONFIG_RAMKERNEL=y 241CONFIG_RAMKERNEL=y
225# CONFIG_ROMKERNEL is not set 242# CONFIG_ROMKERNEL is not set
226CONFIG_SELECT_MEMORY_MODEL=y 243CONFIG_SELECT_MEMORY_MODEL=y
@@ -243,6 +260,7 @@ CONFIG_DMA_UNCACHED_1M=y
243# 260#
244CONFIG_BLKFIN_CACHE=y 261CONFIG_BLKFIN_CACHE=y
245CONFIG_BLKFIN_DCACHE=y 262CONFIG_BLKFIN_DCACHE=y
263# CONFIG_BLKFIN_DCACHE_BANKA is not set
246# CONFIG_BLKFIN_CACHE_LOCK is not set 264# CONFIG_BLKFIN_CACHE_LOCK is not set
247# CONFIG_BLKFIN_WB is not set 265# CONFIG_BLKFIN_WB is not set
248CONFIG_BLKFIN_WT=y 266CONFIG_BLKFIN_WT=y
@@ -815,9 +833,8 @@ CONFIG_I2C_CHARDEV=m
815# 833#
816# I2C Hardware Bus support 834# I2C Hardware Bus support
817# 835#
818# CONFIG_I2C_BFIN_GPIO is not set 836# CONFIG_I2C_BLACKFIN_GPIO is not set
819CONFIG_I2C_BFIN_TWI=m 837# CONFIG_I2C_BLACKFIN_TWI is not set
820CONFIG_TWICLK_KHZ=50
821# CONFIG_I2C_OCORES is not set 838# CONFIG_I2C_OCORES is not set
822# CONFIG_I2C_PARPORT_LIGHT is not set 839# CONFIG_I2C_PARPORT_LIGHT is not set
823# CONFIG_I2C_STUB is not set 840# CONFIG_I2C_STUB is not set
@@ -832,6 +849,7 @@ CONFIG_SENSORS_AD5252=m
832# CONFIG_SENSORS_EEPROM is not set 849# CONFIG_SENSORS_EEPROM is not set
833# CONFIG_SENSORS_PCF8574 is not set 850# CONFIG_SENSORS_PCF8574 is not set
834# CONFIG_SENSORS_PCF8575 is not set 851# CONFIG_SENSORS_PCF8575 is not set
852# CONFIG_SENSORS_PCA9543 is not set
835# CONFIG_SENSORS_PCA9539 is not set 853# CONFIG_SENSORS_PCA9539 is not set
836# CONFIG_SENSORS_PCF8591 is not set 854# CONFIG_SENSORS_PCF8591 is not set
837# CONFIG_SENSORS_MAX6875 is not set 855# CONFIG_SENSORS_MAX6875 is not set
@@ -850,11 +868,11 @@ CONFIG_SPI_MASTER=y
850# SPI Master Controller Drivers 868# SPI Master Controller Drivers
851# 869#
852# CONFIG_SPI_BITBANG is not set 870# CONFIG_SPI_BITBANG is not set
853CONFIG_SPI_BFIN=y
854 871
855# 872#
856# SPI Protocol Masters 873# SPI Protocol Masters
857# 874#
875CONFIG_SPI_BFIN=y
858 876
859# 877#
860# Dallas's 1-wire bus 878# Dallas's 1-wire bus
@@ -940,10 +958,6 @@ CONFIG_NTSC=y
940# CONFIG_PAL_YCBCR is not set 958# CONFIG_PAL_YCBCR is not set
941CONFIG_ADV7393_1XMEM=y 959CONFIG_ADV7393_1XMEM=y
942# CONFIG_ADV7393_2XMEM is not set 960# CONFIG_ADV7393_2XMEM is not set
943CONFIG_FB_BF537_LQ035=m
944CONFIG_LQ035_SLAVE_ADDR=0x58
945# CONFIG_FB_BFIN_LANDSCAPE is not set
946# CONFIG_FB_BFIN_BGR is not set
947# CONFIG_FB_S1D13XXX is not set 961# CONFIG_FB_S1D13XXX is not set
948# CONFIG_FB_VIRTUAL is not set 962# CONFIG_FB_VIRTUAL is not set
949 963
@@ -1280,12 +1294,11 @@ CONFIG_ENABLE_MUST_CHECK=y
1280# CONFIG_DEBUG_KERNEL is not set 1294# CONFIG_DEBUG_KERNEL is not set
1281CONFIG_LOG_BUF_SHIFT=14 1295CONFIG_LOG_BUF_SHIFT=14
1282# CONFIG_DEBUG_BUGVERBOSE is not set 1296# CONFIG_DEBUG_BUGVERBOSE is not set
1297# CONFIG_DEBUG_SERIAL_EARLY_INIT is not set
1283CONFIG_DEBUG_HUNT_FOR_ZERO=y 1298CONFIG_DEBUG_HUNT_FOR_ZERO=y
1284# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 1299# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1285# CONFIG_BOOTPARAM is not set
1286# CONFIG_NO_KERNEL_MSG is not set
1287CONFIG_CPLB_INFO=y 1300CONFIG_CPLB_INFO=y
1288# CONFIG_NO_ACCESS_CHECK is not set 1301CONFIG_ACCESS_CHECK=y
1289 1302
1290# 1303#
1291# Security options 1304# Security options
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 8ea079ebecb5..0ccb0dc3f833 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -119,7 +119,7 @@ static void clear_dma_buffer(unsigned int channel)
119 SSYNC(); 119 SSYNC();
120} 120}
121 121
122int __init blackfin_dma_init(void) 122static int __init blackfin_dma_init(void)
123{ 123{
124 int i; 124 int i;
125 125
@@ -130,7 +130,9 @@ int __init blackfin_dma_init(void)
130 dma_ch[i].regs = base_addr[i]; 130 dma_ch[i].regs = base_addr[i];
131 mutex_init(&(dma_ch[i].dmalock)); 131 mutex_init(&(dma_ch[i].dmalock));
132 } 132 }
133 133 /* Mark MEMDMA Channel 0 as requested since we're using it internally */
134 dma_ch[CH_MEM_STREAM0_DEST].chan_status = DMA_CHANNEL_REQUESTED;
135 dma_ch[CH_MEM_STREAM0_SRC].chan_status = DMA_CHANNEL_REQUESTED;
134 return 0; 136 return 0;
135} 137}
136 138
@@ -593,14 +595,17 @@ unsigned short get_dma_curr_ycount(unsigned int channel)
593} 595}
594EXPORT_SYMBOL(get_dma_curr_ycount); 596EXPORT_SYMBOL(get_dma_curr_ycount);
595 597
596void *dma_memcpy(void *dest, const void *src, size_t size) 598void *_dma_memcpy(void *dest, const void *src, size_t size)
597{ 599{
598 int direction; /* 1 - address decrease, 0 - address increase */ 600 int direction; /* 1 - address decrease, 0 - address increase */
599 int flag_align; /* 1 - address aligned, 0 - address unaligned */ 601 int flag_align; /* 1 - address aligned, 0 - address unaligned */
600 int flag_2D; /* 1 - 2D DMA needed, 0 - 1D DMA needed */ 602 int flag_2D; /* 1 - 2D DMA needed, 0 - 1D DMA needed */
603 unsigned long flags;
601 604
602 if (size <= 0) 605 if (size <= 0)
603 return NULL; 606 return NULL;
607
608 local_irq_save(flags);
604 609
605 if ((unsigned long)src < memory_end) 610 if ((unsigned long)src < memory_end)
606 blackfin_dcache_flush_range((unsigned int)src, 611 blackfin_dcache_flush_range((unsigned int)src,
@@ -725,18 +730,224 @@ void *dma_memcpy(void *dest, const void *src, size_t size)
725 if ((unsigned long)dest < memory_end) 730 if ((unsigned long)dest < memory_end)
726 blackfin_dcache_invalidate_range((unsigned int)dest, 731 blackfin_dcache_invalidate_range((unsigned int)dest,
727 (unsigned int)(dest + size)); 732 (unsigned int)(dest + size));
733 local_irq_restore(flags);
728 734
729 return dest; 735 return dest;
730} 736}
737
738void *dma_memcpy(void *dest, const void *src, size_t size)
739{
740 size_t bulk;
741 size_t rest;
742 void * addr;
743
744 bulk = (size >> 16) << 16;
745 rest = size - bulk;
746 if (bulk)
747 _dma_memcpy(dest, src, bulk);
748 addr = _dma_memcpy(dest+bulk, src+bulk, rest);
749 return addr;
750}
751
731EXPORT_SYMBOL(dma_memcpy); 752EXPORT_SYMBOL(dma_memcpy);
732 753
733void *safe_dma_memcpy(void *dest, const void *src, size_t size) 754void *safe_dma_memcpy(void *dest, const void *src, size_t size)
734{ 755{
735 int flags = 0;
736 void *addr; 756 void *addr;
737 local_irq_save(flags);
738 addr = dma_memcpy(dest, src, size); 757 addr = dma_memcpy(dest, src, size);
739 local_irq_restore(flags);
740 return addr; 758 return addr;
741} 759}
742EXPORT_SYMBOL(safe_dma_memcpy); 760EXPORT_SYMBOL(safe_dma_memcpy);
761
762void dma_outsb(void __iomem *addr, const void *buf, unsigned short len)
763{
764
765 unsigned long flags;
766
767 local_irq_save(flags);
768
769 blackfin_dcache_flush_range((unsigned int)buf,(unsigned int)(buf) + len);
770
771 bfin_write_MDMA_D0_START_ADDR(addr);
772 bfin_write_MDMA_D0_X_COUNT(len);
773 bfin_write_MDMA_D0_X_MODIFY(0);
774 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
775
776 bfin_write_MDMA_S0_START_ADDR(buf);
777 bfin_write_MDMA_S0_X_COUNT(len);
778 bfin_write_MDMA_S0_X_MODIFY(1);
779 bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR);
780
781 bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_8);
782 bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_8);
783
784 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE));
785
786 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
787
788 bfin_write_MDMA_S0_CONFIG(0);
789 bfin_write_MDMA_D0_CONFIG(0);
790 local_irq_restore(flags);
791
792}
793EXPORT_SYMBOL(dma_outsb);
794
795
796void dma_insb(const void __iomem *addr, void *buf, unsigned short len)
797{
798 unsigned long flags;
799
800 local_irq_save(flags);
801 bfin_write_MDMA_D0_START_ADDR(buf);
802 bfin_write_MDMA_D0_X_COUNT(len);
803 bfin_write_MDMA_D0_X_MODIFY(1);
804 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
805
806 bfin_write_MDMA_S0_START_ADDR(addr);
807 bfin_write_MDMA_S0_X_COUNT(len);
808 bfin_write_MDMA_S0_X_MODIFY(0);
809 bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR);
810
811 bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_8);
812 bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_8);
813
814 blackfin_dcache_invalidate_range((unsigned int)buf, (unsigned int)(buf) + len);
815
816 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE));
817
818 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
819
820 bfin_write_MDMA_S0_CONFIG(0);
821 bfin_write_MDMA_D0_CONFIG(0);
822 local_irq_restore(flags);
823
824}
825EXPORT_SYMBOL(dma_insb);
826
827void dma_outsw(void __iomem *addr, const void *buf, unsigned short len)
828{
829 unsigned long flags;
830
831 local_irq_save(flags);
832
833 blackfin_dcache_flush_range((unsigned int)buf,(unsigned int)(buf) + len);
834
835 bfin_write_MDMA_D0_START_ADDR(addr);
836 bfin_write_MDMA_D0_X_COUNT(len);
837 bfin_write_MDMA_D0_X_MODIFY(0);
838 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
839
840 bfin_write_MDMA_S0_START_ADDR(buf);
841 bfin_write_MDMA_S0_X_COUNT(len);
842 bfin_write_MDMA_S0_X_MODIFY(2);
843 bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR);
844
845 bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_16);
846 bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_16);
847
848 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE));
849
850 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
851
852 bfin_write_MDMA_S0_CONFIG(0);
853 bfin_write_MDMA_D0_CONFIG(0);
854 local_irq_restore(flags);
855
856}
857EXPORT_SYMBOL(dma_outsw);
858
859void dma_insw(const void __iomem *addr, void *buf, unsigned short len)
860{
861 unsigned long flags;
862
863 local_irq_save(flags);
864
865 bfin_write_MDMA_D0_START_ADDR(buf);
866 bfin_write_MDMA_D0_X_COUNT(len);
867 bfin_write_MDMA_D0_X_MODIFY(2);
868 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
869
870 bfin_write_MDMA_S0_START_ADDR(addr);
871 bfin_write_MDMA_S0_X_COUNT(len);
872 bfin_write_MDMA_S0_X_MODIFY(0);
873 bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR);
874
875 bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_16);
876 bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_16);
877
878 blackfin_dcache_invalidate_range((unsigned int)buf, (unsigned int)(buf) + len);
879
880 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE));
881
882 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
883
884 bfin_write_MDMA_S0_CONFIG(0);
885 bfin_write_MDMA_D0_CONFIG(0);
886 local_irq_restore(flags);
887
888}
889EXPORT_SYMBOL(dma_insw);
890
891void dma_outsl(void __iomem *addr, const void *buf, unsigned short len)
892{
893 unsigned long flags;
894
895 local_irq_save(flags);
896
897 blackfin_dcache_flush_range((unsigned int)buf,(unsigned int)(buf) + len);
898
899 bfin_write_MDMA_D0_START_ADDR(addr);
900 bfin_write_MDMA_D0_X_COUNT(len);
901 bfin_write_MDMA_D0_X_MODIFY(0);
902 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
903
904 bfin_write_MDMA_S0_START_ADDR(buf);
905 bfin_write_MDMA_S0_X_COUNT(len);
906 bfin_write_MDMA_S0_X_MODIFY(4);
907 bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR);
908
909 bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_32);
910 bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_32);
911
912 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE));
913
914 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
915
916 bfin_write_MDMA_S0_CONFIG(0);
917 bfin_write_MDMA_D0_CONFIG(0);
918 local_irq_restore(flags);
919
920}
921EXPORT_SYMBOL(dma_outsl);
922
923void dma_insl(const void __iomem *addr, void *buf, unsigned short len)
924{
925 unsigned long flags;
926
927 local_irq_save(flags);
928
929 bfin_write_MDMA_D0_START_ADDR(buf);
930 bfin_write_MDMA_D0_X_COUNT(len);
931 bfin_write_MDMA_D0_X_MODIFY(4);
932 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
933
934 bfin_write_MDMA_S0_START_ADDR(addr);
935 bfin_write_MDMA_S0_X_COUNT(len);
936 bfin_write_MDMA_S0_X_MODIFY(0);
937 bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR);
938
939 bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_32);
940 bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_32);
941
942 blackfin_dcache_invalidate_range((unsigned int)buf, (unsigned int)(buf) + len);
943
944 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE));
945
946 bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR);
947
948 bfin_write_MDMA_S0_CONFIG(0);
949 bfin_write_MDMA_D0_CONFIG(0);
950 local_irq_restore(flags);
951
952}
953EXPORT_SYMBOL(dma_insl);
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c
index e9f24a9a46ba..3f49fae1cb1f 100644
--- a/arch/blackfin/kernel/bfin_gpio.c
+++ b/arch/blackfin/kernel/bfin_gpio.c
@@ -144,7 +144,7 @@ inline int check_gpio(unsigned short gpio)
144} 144}
145 145
146#ifdef BF537_FAMILY 146#ifdef BF537_FAMILY
147void port_setup(unsigned short gpio, unsigned short usage) 147static void port_setup(unsigned short gpio, unsigned short usage)
148{ 148{
149 if (usage == GPIO_USAGE) { 149 if (usage == GPIO_USAGE) {
150 if (*port_fer[gpio_bank(gpio)] & gpio_bit(gpio)) 150 if (*port_fer[gpio_bank(gpio)] & gpio_bit(gpio))
@@ -160,7 +160,7 @@ void port_setup(unsigned short gpio, unsigned short usage)
160#endif 160#endif
161 161
162 162
163void default_gpio(unsigned short gpio) 163static void default_gpio(unsigned short gpio)
164{ 164{
165 unsigned short bank,bitmask; 165 unsigned short bank,bitmask;
166 166
@@ -177,8 +177,7 @@ void default_gpio(unsigned short gpio)
177 gpio_bankb[bank]->edge &= ~bitmask; 177 gpio_bankb[bank]->edge &= ~bitmask;
178} 178}
179 179
180 180static int __init bfin_gpio_init(void)
181int __init bfin_gpio_init(void)
182{ 181{
183 int i; 182 int i;
184 183
@@ -189,9 +188,9 @@ int __init bfin_gpio_init(void)
189 188
190#if defined(BF537_FAMILY) && (defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) 189#if defined(BF537_FAMILY) && (defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE))
191# if defined(CONFIG_BFIN_MAC_RMII) 190# if defined(CONFIG_BFIN_MAC_RMII)
192 reserved_map[PORT_H] = 0xC373; 191 reserved_map[gpio_bank(PORT_H)] = 0xC373;
193# else 192# else
194 reserved_map[PORT_H] = 0xFFFF; 193 reserved_map[gpio_bank(PORT_H)] = 0xFFFF;
195# endif 194# endif
196#endif 195#endif
197 196
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 342bb8dd56ac..02dc74301920 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -33,7 +33,6 @@
33#include <linux/seq_file.h> 33#include <linux/seq_file.h>
34#include <linux/cpu.h> 34#include <linux/cpu.h>
35#include <linux/module.h> 35#include <linux/module.h>
36#include <linux/console.h>
37#include <linux/tty.h> 36#include <linux/tty.h>
38 37
39#include <linux/ext2_fs.h> 38#include <linux/ext2_fs.h>
@@ -44,6 +43,8 @@
44#include <asm/blackfin.h> 43#include <asm/blackfin.h>
45#include <asm/cplbinit.h> 44#include <asm/cplbinit.h>
46 45
46u16 _bfin_swrst;
47
47unsigned long memory_start, memory_end, physical_mem_end; 48unsigned long memory_start, memory_end, physical_mem_end;
48unsigned long reserved_mem_dcache_on; 49unsigned long reserved_mem_dcache_on;
49unsigned long reserved_mem_icache_on; 50unsigned long reserved_mem_icache_on;
@@ -175,6 +176,9 @@ void __init setup_arch(char **cmdline_p)
175 unsigned long mtd_phys = 0; 176 unsigned long mtd_phys = 0;
176#endif 177#endif
177 178
179#ifdef CONFIG_DUMMY_CONSOLE
180 conswitchp = &dummy_con;
181#endif
178 cclk = get_cclk(); 182 cclk = get_cclk();
179 sclk = get_sclk(); 183 sclk = get_sclk();
180 184
@@ -379,37 +383,27 @@ void __init setup_arch(char **cmdline_p)
379 if (l1_length > L1_DATA_A_LENGTH) 383 if (l1_length > L1_DATA_A_LENGTH)
380 panic("L1 memory overflow\n"); 384 panic("L1 memory overflow\n");
381 385
382 bf53x_cache_init(); 386#ifdef BF561_FAMILY
383 387 _bfin_swrst = bfin_read_SICA_SWRST();
384#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 388#else
385# if defined(CONFIG_BFIN_SHARED_FLASH_ENET) && defined(CONFIG_BFIN533_STAMP) 389 _bfin_swrst = bfin_read_SWRST();
386 /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */
387 bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (1 << CONFIG_ENET_FLASH_PIN));
388 bfin_write_FIO_FLAG_S(1 << CONFIG_ENET_FLASH_PIN);
389 SSYNC();
390# endif
391# if defined (CONFIG_BFIN561_EZKIT)
392 bfin_write_FIO0_DIR(bfin_read_FIO0_DIR() | (1 << 12));
393 SSYNC();
394# endif /* defined (CONFIG_BFIN561_EZKIT) */
395#endif 390#endif
396 391
392 bf53x_cache_init();
393
397 printk(KERN_INFO "Hardware Trace Enabled\n"); 394 printk(KERN_INFO "Hardware Trace Enabled\n");
398 bfin_write_TBUFCTL(0x03); 395 bfin_write_TBUFCTL(0x03);
399} 396}
400 397
401#if defined(CONFIG_BF561)
402static struct cpu cpu[2];
403#else
404static struct cpu cpu[1];
405#endif
406static int __init topology_init(void) 398static int __init topology_init(void)
407{ 399{
408#if defined (CONFIG_BF561) 400#if defined (CONFIG_BF561)
401 static struct cpu cpu[2];
409 register_cpu(&cpu[0], 0); 402 register_cpu(&cpu[0], 0);
410 register_cpu(&cpu[1], 1); 403 register_cpu(&cpu[1], 1);
411 return 0; 404 return 0;
412#else 405#else
406 static struct cpu cpu[1];
413 return register_cpu(cpu, 0); 407 return register_cpu(cpu, 0);
414#endif 408#endif
415} 409}
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index 9556b73de808..9932edee8cb4 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -59,9 +59,10 @@ static int printk_address(unsigned long address)
59 struct vm_list_struct *vml; 59 struct vm_list_struct *vml;
60 struct task_struct *p; 60 struct task_struct *p;
61 struct mm_struct *mm; 61 struct mm_struct *mm;
62 unsigned long offset;
62 63
63#ifdef CONFIG_KALLSYMS 64#ifdef CONFIG_KALLSYMS
64 unsigned long offset = 0, symsize; 65 unsigned long symsize;
65 const char *symname; 66 const char *symname;
66 char *modname; 67 char *modname;
67 char *delim = ":"; 68 char *delim = ":";
@@ -106,12 +107,19 @@ static int printk_address(unsigned long address)
106 sizeof(_tmpbuf)); 107 sizeof(_tmpbuf));
107 } 108 }
108 109
110 /* FLAT does not have its text aligned to the start of
111 * the map while FDPIC ELF does ...
112 */
113 if (current->mm &&
114 (address > current->mm->start_code) &&
115 (address < current->mm->end_code))
116 offset = address - current->mm->start_code;
117 else
118 offset = (address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT);
119
109 write_unlock_irq(&tasklist_lock); 120 write_unlock_irq(&tasklist_lock);
110 return printk("<0x%p> [ %s + 0x%lx ]", 121 return printk("<0x%p> [ %s + 0x%lx ]",
111 (void*)address, name, 122 (void*)address, name, offset);
112 (unsigned long)
113 ((address - vma->vm_start) +
114 (vma->vm_pgoff << PAGE_SHIFT)));
115 } 123 }
116 124
117 vml = vml->next; 125 vml = vml->next;
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S
index 6ae9ebbd8e58..86fe67995802 100644
--- a/arch/blackfin/kernel/vmlinux.lds.S
+++ b/arch/blackfin/kernel/vmlinux.lds.S
@@ -54,7 +54,7 @@ SECTIONS
54 { 54 {
55 _text = .; 55 _text = .;
56 __stext = .; 56 __stext = .;
57 *(.text) 57 TEXT_TEXT
58 SCHED_TEXT 58 SCHED_TEXT
59 *(.text.lock) 59 *(.text.lock)
60 . = ALIGN(16); 60 . = ALIGN(16);
@@ -200,7 +200,7 @@ SECTIONS
200 __sdata = .; 200 __sdata = .;
201 . = ALIGN(0x2000); 201 . = ALIGN(0x2000);
202 *(.data.init_task) 202 *(.data.init_task)
203 *(.data) 203 DATA_DATA
204 204
205 . = ALIGN(32); 205 . = ALIGN(32);
206 *(.data.cacheline_aligned) 206 *(.data.cacheline_aligned)
diff --git a/arch/blackfin/lib/ins.S b/arch/blackfin/lib/ins.S
index 730d2b427538..7d5e9846311d 100644
--- a/arch/blackfin/lib/ins.S
+++ b/arch/blackfin/lib/ins.S
@@ -29,6 +29,7 @@
29 */ 29 */
30 30
31#include <linux/linkage.h> 31#include <linux/linkage.h>
32#include <asm/blackfin.h>
32 33
33.align 2 34.align 2
34 35
@@ -39,11 +40,14 @@ ENTRY(_insl)
39 P2 = R2; /* P2 = count */ 40 P2 = R2; /* P2 = count */
40 SSYNC; 41 SSYNC;
41 LSETUP( .Llong_loop_s, .Llong_loop_e) LC0 = P2; 42 LSETUP( .Llong_loop_s, .Llong_loop_e) LC0 = P2;
42.Llong_loop_s: R0 = [P0]; 43.Llong_loop_s: R0 = [P0];
43.Llong_loop_e: [P1++] = R0; 44 [P1++] = R0;
45 NOP;
46.Llong_loop_e: NOP;
44 sti R3; 47 sti R3;
45 RTS; 48 RTS;
46 49
50
47ENTRY(_insw) 51ENTRY(_insw)
48 P0 = R0; /* P0 = port */ 52 P0 = R0; /* P0 = port */
49 cli R3; 53 cli R3;
@@ -51,8 +55,10 @@ ENTRY(_insw)
51 P2 = R2; /* P2 = count */ 55 P2 = R2; /* P2 = count */
52 SSYNC; 56 SSYNC;
53 LSETUP( .Lword_loop_s, .Lword_loop_e) LC0 = P2; 57 LSETUP( .Lword_loop_s, .Lword_loop_e) LC0 = P2;
54.Lword_loop_s: R0 = W[P0]; 58.Lword_loop_s: R0 = W[P0];
55.Lword_loop_e: W[P1++] = R0; 59 W[P1++] = R0;
60 NOP;
61.Lword_loop_e: NOP;
56 sti R3; 62 sti R3;
57 RTS; 63 RTS;
58 64
@@ -63,7 +69,9 @@ ENTRY(_insb)
63 P2 = R2; /* P2 = count */ 69 P2 = R2; /* P2 = count */
64 SSYNC; 70 SSYNC;
65 LSETUP( .Lbyte_loop_s, .Lbyte_loop_e) LC0 = P2; 71 LSETUP( .Lbyte_loop_s, .Lbyte_loop_e) LC0 = P2;
66.Lbyte_loop_s: R0 = B[P0]; 72.Lbyte_loop_s: R0 = B[P0];
67.Lbyte_loop_e: B[P1++] = R0; 73 B[P1++] = R0;
74 NOP;
75.Lbyte_loop_e: NOP;
68 sti R3; 76 sti R3;
69 RTS; 77 RTS;
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index d7b3a5d74e8c..9a472fe15833 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -164,6 +164,13 @@ static struct bfin5xx_spi_chip ad5304_chip_info = {
164}; 164};
165#endif 165#endif
166 166
167#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
168static struct bfin5xx_spi_chip spi_mmc_chip_info = {
169 .enable_dma = 1,
170 .bits_per_word = 8,
171};
172#endif
173
167static struct spi_board_info bfin_spi_board_info[] __initdata = { 174static struct spi_board_info bfin_spi_board_info[] __initdata = {
168#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) 175#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE)
169 { 176 {
@@ -199,6 +206,27 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
199 }, 206 },
200#endif 207#endif
201 208
209#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
210 {
211 .modalias = "spi_mmc_dummy",
212 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
213 .bus_num = 1,
214 .chip_select = 0,
215 .platform_data = NULL,
216 .controller_data = &spi_mmc_chip_info,
217 .mode = SPI_MODE_3,
218 },
219 {
220 .modalias = "spi_mmc",
221 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
222 .bus_num = 1,
223 .chip_select = CONFIG_SPI_MMC_CS_CHAN,
224 .platform_data = NULL,
225 .controller_data = &spi_mmc_chip_info,
226 .mode = SPI_MODE_3,
227 },
228#endif
229
202#if defined(CONFIG_PBX) 230#if defined(CONFIG_PBX)
203 { 231 {
204 .modalias = "fxs-spi", 232 .modalias = "fxs-spi",
@@ -310,12 +338,25 @@ static struct platform_device *stamp_devices[] __initdata = {
310 338
311static int __init stamp_init(void) 339static int __init stamp_init(void)
312{ 340{
341 int ret;
342
313 printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); 343 printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__);
314 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 344 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
345 if (ret < 0)
346 return ret;
347
348#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
349# if defined(CONFIG_BFIN_SHARED_FLASH_ENET)
350 /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */
351 bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (1 << CONFIG_ENET_FLASH_PIN));
352 bfin_write_FIO_FLAG_S(1 << CONFIG_ENET_FLASH_PIN);
353 SSYNC();
354# endif
355#endif
356
315#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 357#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
316 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 358 return spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
317#endif 359#endif
318 return 0;
319} 360}
320 361
321arch_initcall(stamp_init); 362arch_initcall(stamp_init);
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S
index 4808edb0680f..4db9e6240906 100644
--- a/arch/blackfin/mach-bf533/head.S
+++ b/arch/blackfin/mach-bf533/head.S
@@ -173,7 +173,8 @@ ENTRY(__stext)
173 STI R2; 173 STI R2;
174#endif 174#endif
175 175
176 /* Initialise UART */ 176 /* Initialise UART - when booting from u-boot, the UART is not disabled
177 * so if we dont initalize here, our serial console gets hosed */
177 p0.h = hi(UART_LCR); 178 p0.h = hi(UART_LCR);
178 p0.l = lo(UART_LCR); 179 p0.l = lo(UART_LCR);
179 r0 = 0x0(Z); 180 r0 = 0x0(Z);
@@ -468,12 +469,6 @@ ENTRY(_bfin_reset)
468 w[p0] = r0.l; 469 w[p0] = r0.l;
469#endif 470#endif
470 471
471 /* Clear the bits 13-15 in SWRST if they werent cleared */
472 p0.h = hi(SWRST);
473 p0.l = lo(SWRST);
474 csync;
475 r0.l = w[p0];
476
477 /* Clear the IMASK register */ 472 /* Clear the IMASK register */
478 p0.h = hi(IMASK); 473 p0.h = hi(IMASK);
479 p0.l = lo(IMASK); 474 p0.l = lo(IMASK);
@@ -487,66 +482,30 @@ ENTRY(_bfin_reset)
487 [p0] = r0; 482 [p0] = r0;
488 SSYNC; 483 SSYNC;
489 484
490 /* Disable the WDOG TIMER */ 485 /* make sure SYSCR is set to use BMODE */
491 p0.h = hi(WDOG_CTL); 486 P0.h = hi(SYSCR);
492 p0.l = lo(WDOG_CTL); 487 P0.l = lo(SYSCR);
493 r0.l = 0xAD6; 488 R0.l = 0x0;
494 w[p0] = r0.l; 489 W[P0] = R0.l;
495 SSYNC;
496
497 /* Clear the sticky bit incase it is already set */
498 p0.h = hi(WDOG_CTL);
499 p0.l = lo(WDOG_CTL);
500 r0.l = 0x8AD6;
501 w[p0] = r0.l;
502 SSYNC;
503
504 /* Program the count value */
505 R0.l = 0x100;
506 R0.h = 0x0;
507 P0.h = hi(WDOG_CNT);
508 P0.l = lo(WDOG_CNT);
509 [P0] = R0;
510 SSYNC; 490 SSYNC;
511 491
512 /* Program WDOG_STAT if necessary */ 492 /* issue a system soft reset */
513 P0.h = hi(WDOG_CTL); 493 P1.h = hi(SWRST);
514 P0.l = lo(WDOG_CTL); 494 P1.l = lo(SWRST);
515 R0 = W[P0](Z); 495 R1.l = 0x0007;
516 CC = BITTST(R0,1); 496 W[P1] = R1;
517 if !CC JUMP .LWRITESTAT;
518 CC = BITTST(R0,2);
519 if !CC JUMP .LWRITESTAT;
520 JUMP .LSKIP_WRITE;
521
522.LWRITESTAT:
523 /* When watch dog timer is enabled, a write to STAT will load the contents of CNT to STAT */
524 R0 = 0x0000(z);
525 P0.h = hi(WDOG_STAT);
526 P0.l = lo(WDOG_STAT)
527 [P0] = R0;
528 SSYNC; 497 SSYNC;
529 498
530.LSKIP_WRITE: 499 /* clear system soft reset */
531 /* Enable the reset event */ 500 R0.l = 0x0000;
532 P0.h = hi(WDOG_CTL); 501 W[P0] = R0;
533 P0.l = lo(WDOG_CTL);
534 R0 = W[P0](Z);
535 BITCLR(R0,1);
536 BITCLR(R0,2);
537 W[P0] = R0.L;
538 SSYNC;
539 NOP;
540
541 /* Enable the wdog counter */
542 R0 = W[P0](Z);
543 BITCLR(R0,4);
544 W[P0] = R0.L;
545 SSYNC; 502 SSYNC;
546 503
547 IDLE; 504 /* issue core reset */
505 raise 1;
548 506
549 RTS; 507 RTS;
508ENDPROC(_bfin_reset)
550 509
551#if CONFIG_DEBUG_KERNEL_START 510#if CONFIG_DEBUG_KERNEL_START
552debug_kernel_start_trap: 511debug_kernel_start_trap:
diff --git a/arch/blackfin/mach-bf537/cpu.c b/arch/blackfin/mach-bf537/cpu.c
index 2d83b7e35469..0442c4c7f723 100644
--- a/arch/blackfin/mach-bf537/cpu.c
+++ b/arch/blackfin/mach-bf537/cpu.c
@@ -43,13 +43,13 @@
43#define VCO1 (CONFIG_CLKIN_HZ*9) /*99532800 */ 43#define VCO1 (CONFIG_CLKIN_HZ*9) /*99532800 */
44#define VCO(x) VCO##x 44#define VCO(x) VCO##x
45 45
46#define FREQ(x) {VCO(x),VCO(x)/4},{VCO(x),VCO(x)/2},{VCO(x),VCO(x)} 46#define MFREQ(x) {VCO(x),VCO(x)/4},{VCO(x),VCO(x)/2},{VCO(x),VCO(x)}
47/* frequency */ 47/* frequency */
48static struct cpufreq_frequency_table bf537_freq_table[] = { 48static struct cpufreq_frequency_table bf537_freq_table[] = {
49 FREQ(1), 49 MFREQ(1),
50 FREQ(3), 50 MFREQ(3),
51 {VCO4, VCO4 / 2}, {VCO4, VCO4}, 51 {VCO4, VCO4 / 2}, {VCO4, VCO4},
52 FREQ(5), 52 MFREQ(5),
53 {0, CPUFREQ_TABLE_END}, 53 {0, CPUFREQ_TABLE_END},
54}; 54};
55 55
@@ -59,13 +59,14 @@ static struct cpufreq_frequency_table bf537_freq_table[] = {
59 */ 59 */
60static int bf537_getfreq(unsigned int cpu) 60static int bf537_getfreq(unsigned int cpu)
61{ 61{
62 unsigned long cclk_mhz, vco_mhz; 62 unsigned long cclk_mhz;
63 63
64 /* The driver only support single cpu */ 64 /* The driver only support single cpu */
65 if (cpu == 0) 65 if (cpu == 0)
66 dpmc_fops.ioctl(NULL, NULL, IOCTL_GET_CORECLOCK, &cclk_mhz); 66 dpmc_fops.ioctl(NULL, NULL, IOCTL_GET_CORECLOCK, &cclk_mhz);
67 else 67 else
68 cclk_mhz = -1; 68 cclk_mhz = -1;
69
69 return cclk_mhz; 70 return cclk_mhz;
70} 71}
71 72
@@ -75,13 +76,12 @@ static int bf537_target(struct cpufreq_policy *policy,
75 unsigned long cclk_mhz; 76 unsigned long cclk_mhz;
76 unsigned long vco_mhz; 77 unsigned long vco_mhz;
77 unsigned long flags; 78 unsigned long flags;
78 unsigned int index, vco_index; 79 unsigned int index;
79 int i;
80
81 struct cpufreq_freqs freqs; 80 struct cpufreq_freqs freqs;
82 if (cpufreq_frequency_table_target 81
83 (policy, bf537_freq_table, target_freq, relation, &index)) 82 if (cpufreq_frequency_table_target(policy, bf537_freq_table, target_freq, relation, &index))
84 return -EINVAL; 83 return -EINVAL;
84
85 cclk_mhz = bf537_freq_table[index].frequency; 85 cclk_mhz = bf537_freq_table[index].frequency;
86 vco_mhz = bf537_freq_table[index].index; 86 vco_mhz = bf537_freq_table[index].index;
87 87
@@ -114,8 +114,6 @@ static int bf537_verify_speed(struct cpufreq_policy *policy)
114 114
115static int __init __bf537_cpu_init(struct cpufreq_policy *policy) 115static int __init __bf537_cpu_init(struct cpufreq_policy *policy)
116{ 116{
117 int result;
118
119 if (policy->cpu != 0) 117 if (policy->cpu != 0)
120 return -EINVAL; 118 return -EINVAL;
121 119
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S
index d104e1d8e07a..2c2652bee7e5 100644
--- a/arch/blackfin/mach-bf537/head.S
+++ b/arch/blackfin/mach-bf537/head.S
@@ -181,7 +181,8 @@ ENTRY(__stext)
181 SSYNC; 181 SSYNC;
182#endif 182#endif
183 183
184 /*Initialise UART*/ 184 /* Initialise UART - when booting from u-boot, the UART is not disabled
185 * so if we dont initalize here, our serial console gets hosed */
185 p0.h = hi(UART_LCR); 186 p0.h = hi(UART_LCR);
186 p0.l = lo(UART_LCR); 187 p0.l = lo(UART_LCR);
187 r0 = 0x0(Z); 188 r0 = 0x0(Z);
@@ -469,47 +470,41 @@ ENTRY(_bfin_reset)
469 SSYNC; 470 SSYNC;
470 471
471#if defined(CONFIG_MTD_M25P80) 472#if defined(CONFIG_MTD_M25P80)
472/* 473 /*
473 * The following code fix the SPI flash reboot issue, 474 * The following code fix the SPI flash reboot issue,
474 * /CS signal of the chip which is using PF10 return to GPIO mode 475 * /CS signal of the chip which is using PF10 return to GPIO mode
475 */ 476 */
476 p0.h = hi(PORTF_FER); 477 p0.h = hi(PORTF_FER);
477 p0.l = lo(PORTF_FER); 478 p0.l = lo(PORTF_FER);
478 r0.l = 0x0000; 479 r0.l = 0x0000;
479 w[p0] = r0.l; 480 w[p0] = r0.l;
480 SSYNC; 481 SSYNC;
481 482
482/* /CS return to high */ 483 /* /CS return to high */
483 p0.h = hi(PORTFIO); 484 p0.h = hi(PORTFIO);
484 p0.l = lo(PORTFIO); 485 p0.l = lo(PORTFIO);
485 r0.l = 0xFFFF; 486 r0.l = 0xFFFF;
486 w[p0] = r0.l; 487 w[p0] = r0.l;
487 SSYNC; 488 SSYNC;
488 489
489/* Delay some time, This is necessary */ 490 /* Delay some time, This is necessary */
490 r1.h = 0; 491 r1.h = 0;
491 r1.l = 0x400; 492 r1.l = 0x400;
492 p1 = r1; 493 p1 = r1;
493 lsetup (_delay_lab1,_delay_lab1_end ) lc1 = p1; 494 lsetup (.L_delay_lab1, .L_delay_lab1_end) lc1 = p1;
494_delay_lab1: 495.L_delay_lab1:
495 r0.h = 0; 496 r0.h = 0;
496 r0.l = 0x8000; 497 r0.l = 0x8000;
497 p0 = r0; 498 p0 = r0;
498 lsetup (_delay_lab0,_delay_lab0_end ) lc0 = p0; 499 lsetup (.L_delay_lab0, .L_delay_lab0_end) lc0 = p0;
499_delay_lab0: 500.L_delay_lab0:
500 nop; 501 nop;
501_delay_lab0_end: 502.L_delay_lab0_end:
502 nop; 503 nop;
503_delay_lab1_end: 504.L_delay_lab1_end:
504 nop; 505 nop;
505#endif 506#endif
506 507
507 /* Clear the bits 13-15 in SWRST if they werent cleared */
508 p0.h = hi(SWRST);
509 p0.l = lo(SWRST);
510 csync;
511 r0.l = w[p0];
512
513 /* Clear the IMASK register */ 508 /* Clear the IMASK register */
514 p0.h = hi(IMASK); 509 p0.h = hi(IMASK);
515 p0.l = lo(IMASK); 510 p0.l = lo(IMASK);
@@ -523,68 +518,30 @@ _delay_lab1_end:
523 [p0] = r0; 518 [p0] = r0;
524 SSYNC; 519 SSYNC;
525 520
526 /* Disable the WDOG TIMER */ 521 /* make sure SYSCR is set to use BMODE */
527 p0.h = hi(WDOG_CTL); 522 P0.h = hi(SYSCR);
528 p0.l = lo(WDOG_CTL); 523 P0.l = lo(SYSCR);
529 r0.l = 0xAD6; 524 R0.l = 0x0;
530 w[p0] = r0.l; 525 W[P0] = R0.l;
531 SSYNC;
532
533 /* Clear the sticky bit incase it is already set */
534 p0.h = hi(WDOG_CTL);
535 p0.l = lo(WDOG_CTL);
536 r0.l = 0x8AD6;
537 w[p0] = r0.l;
538 SSYNC;
539
540 /* Program the count value */
541 R0.l = 0x100;
542 R0.h = 0x0;
543 P0.h = hi(WDOG_CNT);
544 P0.l = lo(WDOG_CNT);
545 [P0] = R0;
546 SSYNC;
547
548 /* Program WDOG_STAT if necessary */
549 P0.h = hi(WDOG_CTL);
550 P0.l = lo(WDOG_CTL);
551 R0 = W[P0](Z);
552 CC = BITTST(R0,1);
553 if !CC JUMP .LWRITESTAT;
554 CC = BITTST(R0,2);
555 if !CC JUMP .LWRITESTAT;
556 JUMP .LSKIP_WRITE;
557
558.LWRITESTAT:
559 /* When watch dog timer is enabled,
560 * a write to STAT will load the contents of CNT to STAT
561 */
562 R0 = 0x0000(z);
563 P0.h = hi(WDOG_STAT);
564 P0.l = lo(WDOG_STAT)
565 [P0] = R0;
566 SSYNC; 526 SSYNC;
567 527
568.LSKIP_WRITE: 528 /* issue a system soft reset */
569 /* Enable the reset event */ 529 P1.h = hi(SWRST);
570 P0.h = hi(WDOG_CTL); 530 P1.l = lo(SWRST);
571 P0.l = lo(WDOG_CTL); 531 R1.l = 0x0007;
572 R0 = W[P0](Z); 532 W[P1] = R1;
573 BITCLR(R0,1);
574 BITCLR(R0,2);
575 W[P0] = R0.L;
576 SSYNC; 533 SSYNC;
577 NOP;
578 534
579 /* Enable the wdog counter */ 535 /* clear system soft reset */
580 R0 = W[P0](Z); 536 R0.l = 0x0000;
581 BITCLR(R0,4); 537 W[P0] = R0;
582 W[P0] = R0.L;
583 SSYNC; 538 SSYNC;
584 539
585 IDLE; 540 /* issue core reset */
541 raise 1;
586 542
587 RTS; 543 RTS;
544ENDPROC(_bfin_reset)
588 545
589.data 546.data
590 547
diff --git a/arch/blackfin/mach-bf561/boards/Makefile b/arch/blackfin/mach-bf561/boards/Makefile
index 886edc739ab4..495a1cf9d452 100644
--- a/arch/blackfin/mach-bf561/boards/Makefile
+++ b/arch/blackfin/mach-bf561/boards/Makefile
@@ -3,5 +3,6 @@
3# 3#
4 4
5obj-$(CONFIG_GENERIC_BOARD) += generic_board.o 5obj-$(CONFIG_GENERIC_BOARD) += generic_board.o
6obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o
7obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o 6obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o
7obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o
8obj-$(CONFIG_BFIN561_TEPLA) += tepla.o
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c
index 14eb4f9a68ea..9720b5c307ab 100644
--- a/arch/blackfin/mach-bf561/boards/ezkit.c
+++ b/arch/blackfin/mach-bf561/boards/ezkit.c
@@ -32,12 +32,61 @@
32#include <linux/spi/spi.h> 32#include <linux/spi/spi.h>
33#include <asm/irq.h> 33#include <asm/irq.h>
34#include <asm/bfin5xx_spi.h> 34#include <asm/bfin5xx_spi.h>
35#include <linux/interrupt.h>
36#include <linux/irq.h>
35 37
36/* 38/*
37 * Name the Board for the /proc/cpuinfo 39 * Name the Board for the /proc/cpuinfo
38 */ 40 */
39char *bfin_board_name = "ADDS-BF561-EZKIT"; 41char *bfin_board_name = "ADDS-BF561-EZKIT";
40 42
43#define ISP1761_BASE 0x2C0F0000
44#define ISP1761_IRQ IRQ_PF10
45
46#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
47static struct resource bfin_isp1761_resources[] = {
48 [0] = {
49 .name = "isp1761-regs",
50 .start = ISP1761_BASE + 0x00000000,
51 .end = ISP1761_BASE + 0x000fffff,
52 .flags = IORESOURCE_MEM,
53 },
54 [1] = {
55 .start = ISP1761_IRQ,
56 .end = ISP1761_IRQ,
57 .flags = IORESOURCE_IRQ,
58 },
59};
60
61static struct platform_device bfin_isp1761_device = {
62 .name = "isp1761",
63 .id = 0,
64 .num_resources = ARRAY_SIZE(bfin_isp1761_resources),
65 .resource = bfin_isp1761_resources,
66};
67
68static struct platform_device *bfin_isp1761_devices[] = {
69 &bfin_isp1761_device,
70};
71
72int __init bfin_isp1761_init(void)
73{
74 unsigned int num_devices=ARRAY_SIZE(bfin_isp1761_devices);
75
76 printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__);
77 set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
78
79 return platform_add_devices(bfin_isp1761_devices, num_devices);
80}
81
82void __exit bfin_isp1761_exit(void)
83{
84 platform_device_unregister(&bfin_isp1761_device);
85}
86
87arch_initcall(bfin_isp1761_init);
88#endif
89
41/* 90/*
42 * USB-LAN EzExtender board 91 * USB-LAN EzExtender board
43 * Driver needs to know address, irq and flag pin. 92 * Driver needs to know address, irq and flag pin.
@@ -135,13 +184,18 @@ static int __init ezkit_init(void)
135{ 184{
136 int ret; 185 int ret;
137 186
138 printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); 187 printk(KERN_INFO "%s(): registering device resources\n", __func__);
139 ret = platform_add_devices(ezkit_devices, 188
140 ARRAY_SIZE(ezkit_devices)); 189 ret = platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices));
141 if (ret < 0) 190 if (ret < 0)
142 return ret; 191 return ret;
143 return spi_register_board_info(bfin_spi_board_info, 192
144 ARRAY_SIZE(bfin_spi_board_info)); 193#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
194 bfin_write_FIO0_DIR(bfin_read_FIO0_DIR() | (1 << 12));
195 SSYNC();
196#endif
197
198 return spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
145} 199}
146 200
147arch_initcall(ezkit_init); 201arch_initcall(ezkit_init);
diff --git a/arch/blackfin/mach-bf561/boards/tepla.c b/arch/blackfin/mach-bf561/boards/tepla.c
new file mode 100644
index 000000000000..db308c7ccabb
--- /dev/null
+++ b/arch/blackfin/mach-bf561/boards/tepla.c
@@ -0,0 +1,61 @@
1/*
2 * File: arch/blackfin/mach-bf561/tepla.c
3 *
4 * Copyright 2004-2007 Analog Devices Inc.
5 * Only SMSC91C1111 was registered, may do more later.
6 *
7 * Copyright 2005 National ICT Australia (NICTA), Aidan Williams <aidan@nicta.com.au>
8 * Thanks to Jamey Hicks.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 */
14
15#include <linux/device.h>
16#include <linux/platform_device.h>
17#include <asm/irq.h>
18
19char *bfin_board_name = "Tepla-BF561";
20
21/*
22 * Driver needs to know address, irq and flag pin.
23 */
24static struct resource smc91x_resources[] = {
25 {
26 .start = 0x2C000300,
27 .end = 0x2C000320,
28 .flags = IORESOURCE_MEM,
29 },{
30 .start = IRQ_PROG_INTB,
31 .end = IRQ_PROG_INTB,
32 .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL,
33 },{
34 /*
35 * denotes the flag pin and is used directly if
36 * CONFIG_IRQCHIP_DEMUX_GPIO is defined.
37 */
38 .start = IRQ_PF7,
39 .end = IRQ_PF7,
40 .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL,
41 },
42};
43
44static struct platform_device smc91x_device = {
45 .name = "smc91x",
46 .id = 0,
47 .num_resources = ARRAY_SIZE(smc91x_resources),
48 .resource = smc91x_resources,
49};
50
51static struct platform_device *tepla_devices[] __initdata = {
52 &smc91x_device,
53};
54
55static int __init tepla_init(void)
56{
57 printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__);
58 return platform_add_devices(tepla_devices, ARRAY_SIZE(tepla_devices));
59}
60
61arch_initcall(tepla_init);
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S
index 7bca478526b9..ad9187a866a5 100644
--- a/arch/blackfin/mach-bf561/head.S
+++ b/arch/blackfin/mach-bf561/head.S
@@ -127,7 +127,8 @@ ENTRY(__stext)
127 STI R2; 127 STI R2;
128#endif 128#endif
129 129
130 /* Initialise UART*/ 130 /* Initialise UART - when booting from u-boot, the UART is not disabled
131 * so if we dont initalize here, our serial console gets hosed */
131 p0.h = hi(UART_LCR); 132 p0.h = hi(UART_LCR);
132 p0.l = lo(UART_LCR); 133 p0.l = lo(UART_LCR);
133 r0 = 0x0(Z); 134 r0 = 0x0(Z);
@@ -414,12 +415,6 @@ ENTRY(_bfin_reset)
414 w[p0] = r0.l; 415 w[p0] = r0.l;
415#endif 416#endif
416 417
417 /* Clear the bits 13-15 in SWRST if they werent cleared */
418 p0.h = hi(SICA_SWRST);
419 p0.l = lo(SICA_SWRST);
420 csync;
421 r0.l = w[p0];
422
423 /* Clear the IMASK register */ 418 /* Clear the IMASK register */
424 p0.h = hi(IMASK); 419 p0.h = hi(IMASK);
425 p0.l = lo(IMASK); 420 p0.l = lo(IMASK);
@@ -433,68 +428,30 @@ ENTRY(_bfin_reset)
433 [p0] = r0; 428 [p0] = r0;
434 SSYNC; 429 SSYNC;
435 430
436 /* Disable the WDOG TIMER */ 431 /* make sure SYSCR is set to use BMODE */
437 p0.h = hi(WDOGA_CTL); 432 P0.h = hi(SICA_SYSCR);
438 p0.l = lo(WDOGA_CTL); 433 P0.l = lo(SICA_SYSCR);
439 r0.l = 0xAD6; 434 R0.l = 0x20;
440 w[p0] = r0.l; 435 W[P0] = R0.l;
441 SSYNC;
442
443 /* Clear the sticky bit incase it is already set */
444 p0.h = hi(WDOGA_CTL);
445 p0.l = lo(WDOGA_CTL);
446 r0.l = 0x8AD6;
447 w[p0] = r0.l;
448 SSYNC; 436 SSYNC;
449 437
450 /* Program the count value */ 438 /* issue a system soft reset */
451 R0.l = 0x100; 439 P1.h = hi(SICA_SWRST);
452 R0.h = 0x0; 440 P1.l = lo(SICA_SWRST);
453 P0.h = hi(WDOGA_CNT); 441 R1.l = 0x0007;
454 P0.l = lo(WDOGA_CNT); 442 W[P1] = R1;
455 [P0] = R0;
456 SSYNC; 443 SSYNC;
457 444
458 /* Program WDOG_STAT if necessary */ 445 /* clear system soft reset */
459 P0.h = hi(WDOGA_CTL); 446 R0.l = 0x0000;
460 P0.l = lo(WDOGA_CTL); 447 W[P0] = R0;
461 R0 = W[P0](Z);
462 CC = BITTST(R0,1);
463 if !CC JUMP .LWRITESTAT;
464 CC = BITTST(R0,2);
465 if !CC JUMP .LWRITESTAT;
466 JUMP .LSKIP_WRITE;
467
468.LWRITESTAT:
469 /* When watch dog timer is enabled,
470 * a write to STAT will load the contents of CNT to STAT
471 */
472 R0 = 0x0000(z);
473 P0.h = hi(WDOGA_STAT);
474 P0.l = lo(WDOGA_STAT)
475 [P0] = R0;
476 SSYNC;
477
478.LSKIP_WRITE:
479 /* Enable the reset event */
480 P0.h = hi(WDOGA_CTL);
481 P0.l = lo(WDOGA_CTL);
482 R0 = W[P0](Z);
483 BITCLR(R0,1);
484 BITCLR(R0,2);
485 W[P0] = R0.L;
486 SSYNC;
487 NOP;
488
489 /* Enable the wdog counter */
490 R0 = W[P0](Z);
491 BITCLR(R0,4);
492 W[P0] = R0.L;
493 SSYNC; 448 SSYNC;
494 449
495 IDLE; 450 /* issue core reset */
451 raise 1;
496 452
497 RTS; 453 RTS;
454ENDPROC(_bfin_reset)
498 455
499.data 456.data
500 457
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index 8eb0a9023482..7d0368772cda 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -181,6 +181,12 @@ ENTRY(_ex_single_step)
181 181
182_return_from_exception: 182_return_from_exception:
183 DEBUG_START_HWTRACE 183 DEBUG_START_HWTRACE
184#ifdef ANOMALY_05000257
185 R7=LC0;
186 LC0=R7;
187 R7=LC1;
188 LC1=R7;
189#endif
184 (R7:6,P5:4) = [sp++]; 190 (R7:6,P5:4) = [sp++];
185 ASTAT = [sp++]; 191 ASTAT = [sp++];
186 sp = retn; 192 sp = retn;
@@ -706,6 +712,11 @@ _schedule_and_signal_from_int:
706 p1.h = _evt_system_call; 712 p1.h = _evt_system_call;
707 [p0] = p1; 713 [p0] = p1;
708 csync; 714 csync;
715
716 /* Set orig_p0 to -1 to indicate this isn't the end of a syscall. */
717 r0 = -1 (x);
718 [sp + PT_ORIG_P0] = r0;
719
709 p1 = rets; 720 p1 = rets;
710 [sp + PT_RESERVED] = p1; 721 [sp + PT_RESERVED] = p1;
711 722
diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c
index deb27272c658..afed5246dd9e 100644
--- a/arch/blackfin/mach-common/pm.c
+++ b/arch/blackfin/mach-common/pm.c
@@ -102,10 +102,8 @@ static int bfin_pm_prepare(suspend_state_t state)
102 switch (state) { 102 switch (state) {
103 case PM_SUSPEND_STANDBY: 103 case PM_SUSPEND_STANDBY:
104 break; 104 break;
105 case PM_SUSPEND_MEM:
106 return -ENOTSUPP;
107 105
108 case PM_SUSPEND_DISK: 106 case PM_SUSPEND_MEM:
109 return -ENOTSUPP; 107 return -ENOTSUPP;
110 108
111 default: 109 default:
@@ -126,10 +124,8 @@ static int bfin_pm_enter(suspend_state_t state)
126 case PM_SUSPEND_STANDBY: 124 case PM_SUSPEND_STANDBY:
127 bfin_pm_suspend_standby_enter(); 125 bfin_pm_suspend_standby_enter();
128 break; 126 break;
129 case PM_SUSPEND_MEM:
130 return -ENOTSUPP;
131 127
132 case PM_SUSPEND_DISK: 128 case PM_SUSPEND_MEM:
133 return -ENOTSUPP; 129 return -ENOTSUPP;
134 130
135 default: 131 default:
@@ -155,9 +151,6 @@ static int bfin_pm_finish(suspend_state_t state)
155 case PM_SUSPEND_MEM: 151 case PM_SUSPEND_MEM:
156 return -ENOTSUPP; 152 return -ENOTSUPP;
157 153
158 case PM_SUSPEND_DISK:
159 return -ENOTSUPP;
160
161 default: 154 default:
162 return -EINVAL; 155 return -EINVAL;
163 } 156 }
@@ -166,7 +159,6 @@ static int bfin_pm_finish(suspend_state_t state)
166} 159}
167 160
168struct pm_ops bfin_pm_ops = { 161struct pm_ops bfin_pm_ops = {
169 .pm_disk_mode = PM_DISK_PLATFORM,
170 .prepare = bfin_pm_prepare, 162 .prepare = bfin_pm_prepare,
171 .enter = bfin_pm_enter, 163 .enter = bfin_pm_enter,
172 .finish = bfin_pm_finish, 164 .finish = bfin_pm_finish,
diff --git a/arch/blackfin/mm/init.c b/arch/blackfin/mm/init.c
index 73f72abed432..d6cf1059560d 100644
--- a/arch/blackfin/mm/init.c
+++ b/arch/blackfin/mm/init.c
@@ -116,7 +116,8 @@ void paging_init(void)
116 { 116 {
117 unsigned long zones_size[MAX_NR_ZONES] = { 0, }; 117 unsigned long zones_size[MAX_NR_ZONES] = { 0, };
118 118
119 zones_size[ZONE_NORMAL] = (end_mem - PAGE_OFFSET) >> PAGE_SHIFT; 119 zones_size[ZONE_DMA] = (end_mem - PAGE_OFFSET) >> PAGE_SHIFT;
120 zones_size[ZONE_NORMAL] = 0;
120#ifdef CONFIG_HIGHMEM 121#ifdef CONFIG_HIGHMEM
121 zones_size[ZONE_HIGHMEM] = 0; 122 zones_size[ZONE_HIGHMEM] = 0;
122#endif 123#endif
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index 114738a45582..74eef7111f2b 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -102,14 +102,6 @@ config HIGHPTE
102 with a lot of RAM, this can be wasteful of precious low memory. 102 with a lot of RAM, this can be wasteful of precious low memory.
103 Setting this option will put user-space page tables in high memory. 103 Setting this option will put user-space page tables in high memory.
104 104
105config LARGE_ALLOCS
106 bool "Allow allocating large blocks (> 1MB) of memory"
107 help
108 Allow the slab memory allocator to keep chains for very large memory
109 sizes - up to 32MB. You may need this if your system has a lot of
110 RAM, and you need to able to allocate very large contiguous chunks.
111 If unsure, say N.
112
113source "mm/Kconfig" 105source "mm/Kconfig"
114 106
115choice 107choice
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S
index 28eae9735ad6..481dc1374640 100644
--- a/arch/frv/kernel/vmlinux.lds.S
+++ b/arch/frv/kernel/vmlinux.lds.S
@@ -101,13 +101,14 @@ SECTIONS
101 _stext = .; 101 _stext = .;
102 .text : { 102 .text : {
103 *( 103 *(
104 .text.start .text .text.* 104 .text.start .text.*
105#ifdef CONFIG_DEBUG_INFO 105#ifdef CONFIG_DEBUG_INFO
106 .init.text 106 .init.text
107 .exit.text 107 .exit.text
108 .exitcall.exit 108 .exitcall.exit
109#endif 109#endif
110 ) 110 )
111 TEXT_TEXT
111 SCHED_TEXT 112 SCHED_TEXT
112 LOCK_TEXT 113 LOCK_TEXT
113 *(.fixup) 114 *(.fixup)
@@ -135,7 +136,8 @@ SECTIONS
135 136
136 _sdata = .; 137 _sdata = .;
137 .data : { /* Data */ 138 .data : { /* Data */
138 *(.data .data.*) 139 DATA_DATA
140 *(.data.*)
139 *(.exit.data) 141 *(.exit.data)
140 CONSTRUCTORS 142 CONSTRUCTORS
141 } 143 }
diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S
index 65f1cdc5ee04..a2e72d495551 100644
--- a/arch/h8300/kernel/vmlinux.lds.S
+++ b/arch/h8300/kernel/vmlinux.lds.S
@@ -75,7 +75,7 @@ SECTIONS
75 *(.int_redirect) 75 *(.int_redirect)
76#endif 76#endif
77 __stext = . ; 77 __stext = . ;
78 *(.text) 78 TEXT_TEXT
79 SCHED_TEXT 79 SCHED_TEXT
80 LOCK_TEXT 80 LOCK_TEXT
81 __etext = . ; 81 __etext = . ;
@@ -103,7 +103,7 @@ SECTIONS
103 . = ALIGN(0x2000) ; 103 . = ALIGN(0x2000) ;
104 *(.data.init_task) 104 *(.data.init_task)
105 . = ALIGN(0x4) ; 105 . = ALIGN(0x4) ;
106 *(.data) 106 DATA_DATA
107 . = ALIGN(0x4) ; 107 . = ALIGN(0x4) ;
108 *(.data.*) 108 *(.data.*)
109 109
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
index c2d54b802232..8770a5d0b143 100644
--- a/arch/i386/Kconfig
+++ b/arch/i386/Kconfig
@@ -891,7 +891,7 @@ config PHYSICAL_ALIGN
891 Don't change this unless you know what you are doing. 891 Don't change this unless you know what you are doing.
892 892
893config HOTPLUG_CPU 893config HOTPLUG_CPU
894 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" 894 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
895 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER 895 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
896 ---help--- 896 ---help---
897 Say Y here to experiment with turning CPUs off and on, and to 897 Say Y here to experiment with turning CPUs off and on, and to
diff --git a/arch/i386/Makefile b/arch/i386/Makefile
index 6dc5e5d90fec..bd28f9f9b4b7 100644
--- a/arch/i386/Makefile
+++ b/arch/i386/Makefile
@@ -34,7 +34,7 @@ CHECKFLAGS += -D__i386__
34CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return 34CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return
35 35
36# prevent gcc from keeping the stack 16 byte aligned 36# prevent gcc from keeping the stack 16 byte aligned
37CFLAGS += -mpreferred-stack-boundary=4 37CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2)
38 38
39# CPU-specific tuning. Anything which can be shared with UML should go here. 39# CPU-specific tuning. Anything which can be shared with UML should go here.
40include $(srctree)/arch/i386/Makefile.cpu 40include $(srctree)/arch/i386/Makefile.cpu
diff --git a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S
index f8b3b9cda2b1..6dbcc95b2120 100644
--- a/arch/i386/boot/setup.S
+++ b/arch/i386/boot/setup.S
@@ -310,6 +310,8 @@ loader_ok:
310 call verify_cpu 310 call verify_cpu
311 testl %eax,%eax 311 testl %eax,%eax
312 jz cpu_ok 312 jz cpu_ok
313 movw %cs,%ax # aka SETUPSEG
314 movw %ax,%ds
313 lea cpu_panic_mess,%si 315 lea cpu_panic_mess,%si
314 call prtstr 316 call prtstr
3151: jmp 1b 3171: jmp 1b
diff --git a/arch/i386/defconfig b/arch/i386/defconfig
index 9da84412a831..1a3a2217b7c2 100644
--- a/arch/i386/defconfig
+++ b/arch/i386/defconfig
@@ -1,7 +1,7 @@
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-git3 3# Linux kernel version: 2.6.22-rc2
4# Tue May 1 07:30:51 2007 4# Mon May 21 13:23:44 2007
5# 5#
6CONFIG_X86_32=y 6CONFIG_X86_32=y
7CONFIG_GENERIC_TIME=y 7CONFIG_GENERIC_TIME=y
@@ -14,6 +14,7 @@ CONFIG_SEMAPHORE_SLEEPERS=y
14CONFIG_X86=y 14CONFIG_X86=y
15CONFIG_MMU=y 15CONFIG_MMU=y
16CONFIG_ZONE_DMA=y 16CONFIG_ZONE_DMA=y
17CONFIG_QUICKLIST=y
17CONFIG_GENERIC_ISA_DMA=y 18CONFIG_GENERIC_ISA_DMA=y
18CONFIG_GENERIC_IOMAP=y 19CONFIG_GENERIC_IOMAP=y
19CONFIG_GENERIC_BUG=y 20CONFIG_GENERIC_BUG=y
@@ -45,6 +46,7 @@ CONFIG_POSIX_MQUEUE=y
45# CONFIG_AUDIT is not set 46# CONFIG_AUDIT is not set
46CONFIG_IKCONFIG=y 47CONFIG_IKCONFIG=y
47CONFIG_IKCONFIG_PROC=y 48CONFIG_IKCONFIG_PROC=y
49CONFIG_LOG_BUF_SHIFT=18
48# CONFIG_CPUSETS is not set 50# CONFIG_CPUSETS is not set
49CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
50# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
@@ -64,14 +66,19 @@ CONFIG_BUG=y
64CONFIG_ELF_CORE=y 66CONFIG_ELF_CORE=y
65CONFIG_BASE_FULL=y 67CONFIG_BASE_FULL=y
66CONFIG_FUTEX=y 68CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y
67CONFIG_EPOLL=y 70CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y
72CONFIG_TIMERFD=y
73CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 74CONFIG_SHMEM=y
69CONFIG_SLAB=y
70CONFIG_VM_EVENT_COUNTERS=y 75CONFIG_VM_EVENT_COUNTERS=y
76CONFIG_SLAB=y
77# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set
71CONFIG_RT_MUTEXES=y 79CONFIG_RT_MUTEXES=y
72# CONFIG_TINY_SHMEM is not set 80# CONFIG_TINY_SHMEM is not set
73CONFIG_BASE_SMALL=0 81CONFIG_BASE_SMALL=0
74# CONFIG_SLOB is not set
75 82
76# 83#
77# Loadable module support 84# Loadable module support
@@ -165,7 +172,7 @@ CONFIG_X86_INTEL_USERCOPY=y
165CONFIG_X86_USE_PPRO_CHECKSUM=y 172CONFIG_X86_USE_PPRO_CHECKSUM=y
166CONFIG_X86_TSC=y 173CONFIG_X86_TSC=y
167CONFIG_X86_CMOV=y 174CONFIG_X86_CMOV=y
168CONFIG_X86_MINIMUM_CPU_MODEL=4 175CONFIG_X86_MINIMUM_CPU_FAMILY=4
169CONFIG_HPET_TIMER=y 176CONFIG_HPET_TIMER=y
170CONFIG_HPET_EMULATE_RTC=y 177CONFIG_HPET_EMULATE_RTC=y
171CONFIG_NR_CPUS=32 178CONFIG_NR_CPUS=32
@@ -211,6 +218,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
211CONFIG_SPLIT_PTLOCK_CPUS=4 218CONFIG_SPLIT_PTLOCK_CPUS=4
212CONFIG_RESOURCES_64BIT=y 219CONFIG_RESOURCES_64BIT=y
213CONFIG_ZONE_DMA_FLAG=1 220CONFIG_ZONE_DMA_FLAG=1
221CONFIG_NR_QUICK=1
214# CONFIG_HIGHPTE is not set 222# CONFIG_HIGHPTE is not set
215# CONFIG_MATH_EMULATION is not set 223# CONFIG_MATH_EMULATION is not set
216CONFIG_MTRR=y 224CONFIG_MTRR=y
@@ -237,7 +245,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
237CONFIG_PM=y 245CONFIG_PM=y
238CONFIG_PM_LEGACY=y 246CONFIG_PM_LEGACY=y
239# CONFIG_PM_DEBUG is not set 247# CONFIG_PM_DEBUG is not set
240CONFIG_PM_SYSFS_DEPRECATED=y 248# CONFIG_PM_SYSFS_DEPRECATED is not set
241 249
242# 250#
243# ACPI (Advanced Configuration and Power Interface) Support 251# ACPI (Advanced Configuration and Power Interface) Support
@@ -277,7 +285,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
277# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set 285# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
278CONFIG_CPU_FREQ_GOV_USERSPACE=y 286CONFIG_CPU_FREQ_GOV_USERSPACE=y
279CONFIG_CPU_FREQ_GOV_ONDEMAND=y 287CONFIG_CPU_FREQ_GOV_ONDEMAND=y
280CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y 288# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
281 289
282# 290#
283# CPUFreq processor drivers 291# CPUFreq processor drivers
@@ -315,9 +323,10 @@ CONFIG_PCI_BIOS=y
315CONFIG_PCI_DIRECT=y 323CONFIG_PCI_DIRECT=y
316CONFIG_PCI_MMCONFIG=y 324CONFIG_PCI_MMCONFIG=y
317# CONFIG_PCIEPORTBUS is not set 325# CONFIG_PCIEPORTBUS is not set
326CONFIG_ARCH_SUPPORTS_MSI=y
318CONFIG_PCI_MSI=y 327CONFIG_PCI_MSI=y
319# CONFIG_PCI_DEBUG is not set 328# CONFIG_PCI_DEBUG is not set
320# CONFIG_HT_IRQ is not set 329CONFIG_HT_IRQ=y
321CONFIG_ISA_DMA_API=y 330CONFIG_ISA_DMA_API=y
322# CONFIG_ISA is not set 331# CONFIG_ISA is not set
323# CONFIG_MCA is not set 332# CONFIG_MCA is not set
@@ -328,10 +337,6 @@ CONFIG_K8_NB=y
328# PCCARD (PCMCIA/CardBus) support 337# PCCARD (PCMCIA/CardBus) support
329# 338#
330# CONFIG_PCCARD is not set 339# CONFIG_PCCARD is not set
331
332#
333# PCI Hotplug Support
334#
335# CONFIG_HOTPLUG_PCI is not set 340# CONFIG_HOTPLUG_PCI is not set
336 341
337# 342#
@@ -377,7 +382,7 @@ CONFIG_IP_PNP_DHCP=y
377CONFIG_INET_TUNNEL=y 382CONFIG_INET_TUNNEL=y
378CONFIG_INET_XFRM_MODE_TRANSPORT=y 383CONFIG_INET_XFRM_MODE_TRANSPORT=y
379CONFIG_INET_XFRM_MODE_TUNNEL=y 384CONFIG_INET_XFRM_MODE_TUNNEL=y
380# CONFIG_INET_XFRM_MODE_BEET is not set 385CONFIG_INET_XFRM_MODE_BEET=y
381CONFIG_INET_DIAG=y 386CONFIG_INET_DIAG=y
382CONFIG_INET_TCP_DIAG=y 387CONFIG_INET_TCP_DIAG=y
383# CONFIG_TCP_CONG_ADVANCED is not set 388# CONFIG_TCP_CONG_ADVANCED is not set
@@ -396,7 +401,7 @@ CONFIG_IPV6=y
396# CONFIG_INET6_TUNNEL is not set 401# CONFIG_INET6_TUNNEL is not set
397CONFIG_INET6_XFRM_MODE_TRANSPORT=y 402CONFIG_INET6_XFRM_MODE_TRANSPORT=y
398CONFIG_INET6_XFRM_MODE_TUNNEL=y 403CONFIG_INET6_XFRM_MODE_TUNNEL=y
399# CONFIG_INET6_XFRM_MODE_BEET is not set 404CONFIG_INET6_XFRM_MODE_BEET=y
400# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 405# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
401CONFIG_IPV6_SIT=y 406CONFIG_IPV6_SIT=y
402# CONFIG_IPV6_TUNNEL is not set 407# CONFIG_IPV6_TUNNEL is not set
@@ -450,7 +455,9 @@ CONFIG_IPV6_SIT=y
450# 455#
451# CONFIG_CFG80211 is not set 456# CONFIG_CFG80211 is not set
452# CONFIG_WIRELESS_EXT is not set 457# CONFIG_WIRELESS_EXT is not set
458# CONFIG_MAC80211 is not set
453# CONFIG_IEEE80211 is not set 459# CONFIG_IEEE80211 is not set
460# CONFIG_RFKILL is not set
454 461
455# 462#
456# Device Drivers 463# Device Drivers
@@ -513,14 +520,12 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
513# Misc devices 520# Misc devices
514# 521#
515# CONFIG_IBM_ASM is not set 522# CONFIG_IBM_ASM is not set
523# CONFIG_PHANTOM is not set
516# CONFIG_SGI_IOC4 is not set 524# CONFIG_SGI_IOC4 is not set
517# CONFIG_TIFM_CORE is not set 525# CONFIG_TIFM_CORE is not set
518# CONFIG_SONY_LAPTOP is not set 526# CONFIG_SONY_LAPTOP is not set
519# CONFIG_THINKPAD_ACPI is not set 527# CONFIG_THINKPAD_ACPI is not set
520 528# CONFIG_BLINK is not set
521#
522# ATA/ATAPI/MFM/RLL support
523#
524CONFIG_IDE=y 529CONFIG_IDE=y
525CONFIG_BLK_DEV_IDE=y 530CONFIG_BLK_DEV_IDE=y
526 531
@@ -537,6 +542,7 @@ CONFIG_BLK_DEV_IDECD=y
537# CONFIG_BLK_DEV_IDESCSI is not set 542# CONFIG_BLK_DEV_IDESCSI is not set
538CONFIG_BLK_DEV_IDEACPI=y 543CONFIG_BLK_DEV_IDEACPI=y
539# CONFIG_IDE_TASK_IOCTL is not set 544# CONFIG_IDE_TASK_IOCTL is not set
545CONFIG_IDE_PROC_FS=y
540 546
541# 547#
542# IDE chipset support/bugfixes 548# IDE chipset support/bugfixes
@@ -546,6 +552,7 @@ CONFIG_IDE_GENERIC=y
546# CONFIG_BLK_DEV_IDEPNP is not set 552# CONFIG_BLK_DEV_IDEPNP is not set
547CONFIG_BLK_DEV_IDEPCI=y 553CONFIG_BLK_DEV_IDEPCI=y
548# CONFIG_IDEPCI_SHARE_IRQ is not set 554# CONFIG_IDEPCI_SHARE_IRQ is not set
555CONFIG_IDEPCI_PCIBUS_ORDER=y
549# CONFIG_BLK_DEV_OFFBOARD is not set 556# CONFIG_BLK_DEV_OFFBOARD is not set
550# CONFIG_BLK_DEV_GENERIC is not set 557# CONFIG_BLK_DEV_GENERIC is not set
551# CONFIG_BLK_DEV_OPTI621 is not set 558# CONFIG_BLK_DEV_OPTI621 is not set
@@ -600,9 +607,8 @@ CONFIG_SCSI_NETLINK=y
600CONFIG_BLK_DEV_SD=y 607CONFIG_BLK_DEV_SD=y
601# CONFIG_CHR_DEV_ST is not set 608# CONFIG_CHR_DEV_ST is not set
602# CONFIG_CHR_DEV_OSST is not set 609# CONFIG_CHR_DEV_OSST is not set
603CONFIG_BLK_DEV_SR=y 610# CONFIG_BLK_DEV_SR is not set
604# CONFIG_BLK_DEV_SR_VENDOR is not set 611# CONFIG_CHR_DEV_SG is not set
605CONFIG_CHR_DEV_SG=y
606# CONFIG_CHR_DEV_SCH is not set 612# CONFIG_CHR_DEV_SCH is not set
607 613
608# 614#
@@ -612,6 +618,7 @@ CONFIG_CHR_DEV_SG=y
612# CONFIG_SCSI_CONSTANTS is not set 618# CONFIG_SCSI_CONSTANTS is not set
613# CONFIG_SCSI_LOGGING is not set 619# CONFIG_SCSI_LOGGING is not set
614# CONFIG_SCSI_SCAN_ASYNC is not set 620# CONFIG_SCSI_SCAN_ASYNC is not set
621CONFIG_SCSI_WAIT_SCAN=m
615 622
616# 623#
617# SCSI Transports 624# SCSI Transports
@@ -640,7 +647,6 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
640CONFIG_SCSI_AIC79XX=y 647CONFIG_SCSI_AIC79XX=y
641CONFIG_AIC79XX_CMDS_PER_DEVICE=32 648CONFIG_AIC79XX_CMDS_PER_DEVICE=32
642CONFIG_AIC79XX_RESET_DELAY_MS=4000 649CONFIG_AIC79XX_RESET_DELAY_MS=4000
643# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
644# CONFIG_AIC79XX_DEBUG_ENABLE is not set 650# CONFIG_AIC79XX_DEBUG_ENABLE is not set
645CONFIG_AIC79XX_DEBUG_MASK=0 651CONFIG_AIC79XX_DEBUG_MASK=0
646# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set 652# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
@@ -662,7 +668,6 @@ CONFIG_AIC79XX_DEBUG_MASK=0
662# CONFIG_SCSI_INIA100 is not set 668# CONFIG_SCSI_INIA100 is not set
663# CONFIG_SCSI_STEX is not set 669# CONFIG_SCSI_STEX is not set
664# CONFIG_SCSI_SYM53C8XX_2 is not set 670# CONFIG_SCSI_SYM53C8XX_2 is not set
665# CONFIG_SCSI_IPR is not set
666# CONFIG_SCSI_QLOGIC_1280 is not set 671# CONFIG_SCSI_QLOGIC_1280 is not set
667# CONFIG_SCSI_QLA_FC is not set 672# CONFIG_SCSI_QLA_FC is not set
668# CONFIG_SCSI_QLA_ISCSI is not set 673# CONFIG_SCSI_QLA_ISCSI is not set
@@ -673,79 +678,12 @@ CONFIG_AIC79XX_DEBUG_MASK=0
673# CONFIG_SCSI_DEBUG is not set 678# CONFIG_SCSI_DEBUG is not set
674# CONFIG_SCSI_ESP_CORE is not set 679# CONFIG_SCSI_ESP_CORE is not set
675# CONFIG_SCSI_SRP is not set 680# CONFIG_SCSI_SRP is not set
676 681# CONFIG_ATA is not set
677#
678# Serial ATA (prod) and Parallel ATA (experimental) drivers
679#
680CONFIG_ATA=y
681# CONFIG_ATA_NONSTANDARD is not set
682CONFIG_SATA_AHCI=y
683CONFIG_SATA_SVW=y
684CONFIG_ATA_PIIX=y
685# CONFIG_SATA_MV is not set
686CONFIG_SATA_NV=y
687# CONFIG_PDC_ADMA is not set
688# CONFIG_SATA_QSTOR is not set
689# CONFIG_SATA_PROMISE is not set
690# CONFIG_SATA_SX4 is not set
691CONFIG_SATA_SIL=y
692# CONFIG_SATA_SIL24 is not set
693# CONFIG_SATA_SIS is not set
694# CONFIG_SATA_ULI is not set
695CONFIG_SATA_VIA=y
696# CONFIG_SATA_VITESSE is not set
697# CONFIG_SATA_INIC162X is not set
698CONFIG_SATA_ACPI=y
699# CONFIG_PATA_ALI is not set
700# CONFIG_PATA_AMD is not set
701# CONFIG_PATA_ARTOP is not set
702# CONFIG_PATA_ATIIXP is not set
703# CONFIG_PATA_CMD640_PCI is not set
704# CONFIG_PATA_CMD64X is not set
705# CONFIG_PATA_CS5520 is not set
706# CONFIG_PATA_CS5530 is not set
707# CONFIG_PATA_CS5535 is not set
708# CONFIG_PATA_CYPRESS is not set
709# CONFIG_PATA_EFAR is not set
710# CONFIG_ATA_GENERIC is not set
711# CONFIG_PATA_HPT366 is not set
712# CONFIG_PATA_HPT37X is not set
713# CONFIG_PATA_HPT3X2N is not set
714# CONFIG_PATA_HPT3X3 is not set
715# CONFIG_PATA_IT821X is not set
716# CONFIG_PATA_IT8213 is not set
717# CONFIG_PATA_JMICRON is not set
718# CONFIG_PATA_TRIFLEX is not set
719# CONFIG_PATA_MARVELL is not set
720# CONFIG_PATA_MPIIX is not set
721# CONFIG_PATA_OLDPIIX is not set
722# CONFIG_PATA_NETCELL is not set
723# CONFIG_PATA_NS87410 is not set
724# CONFIG_PATA_OPTI is not set
725# CONFIG_PATA_OPTIDMA is not set
726# CONFIG_PATA_PDC_OLD is not set
727# CONFIG_PATA_RADISYS is not set
728# CONFIG_PATA_RZ1000 is not set
729# CONFIG_PATA_SC1200 is not set
730# CONFIG_PATA_SERVERWORKS is not set
731# CONFIG_PATA_PDC2027X is not set
732# CONFIG_PATA_SIL680 is not set
733# CONFIG_PATA_SIS is not set
734# CONFIG_PATA_VIA is not set
735# CONFIG_PATA_WINBOND is not set
736 682
737# 683#
738# Multi-device support (RAID and LVM) 684# Multi-device support (RAID and LVM)
739# 685#
740CONFIG_MD=y 686# CONFIG_MD is not set
741# CONFIG_BLK_DEV_MD is not set
742CONFIG_BLK_DEV_DM=y
743# CONFIG_DM_DEBUG is not set
744# CONFIG_DM_CRYPT is not set
745# CONFIG_DM_SNAPSHOT is not set
746# CONFIG_DM_MIRROR is not set
747# CONFIG_DM_ZERO is not set
748# CONFIG_DM_MULTIPATH is not set
749 687
750# 688#
751# Fusion MPT device support 689# Fusion MPT device support
@@ -760,6 +698,7 @@ CONFIG_FUSION_MAX_SGE=128
760# 698#
761# IEEE 1394 (FireWire) support 699# IEEE 1394 (FireWire) support
762# 700#
701# CONFIG_FIREWIRE is not set
763CONFIG_IEEE1394=y 702CONFIG_IEEE1394=y
764 703
765# 704#
@@ -790,11 +729,7 @@ CONFIG_IEEE1394_RAWIO=y
790# I2O device support 729# I2O device support
791# 730#
792# CONFIG_I2O is not set 731# CONFIG_I2O is not set
793 732# CONFIG_MACINTOSH_DRIVERS is not set
794#
795# Macintosh device drivers
796#
797# CONFIG_MAC_EMUMOUSEBTN is not set
798 733
799# 734#
800# Network device support 735# Network device support
@@ -810,10 +745,6 @@ CONFIG_NETDEVICES=y
810# ARCnet devices 745# ARCnet devices
811# 746#
812# CONFIG_ARCNET is not set 747# CONFIG_ARCNET is not set
813
814#
815# PHY device support
816#
817# CONFIG_PHYLIB is not set 748# CONFIG_PHYLIB is not set
818 749
819# 750#
@@ -824,9 +755,7 @@ CONFIG_MII=y
824# CONFIG_HAPPYMEAL is not set 755# CONFIG_HAPPYMEAL is not set
825# CONFIG_SUNGEM is not set 756# CONFIG_SUNGEM is not set
826# CONFIG_CASSINI is not set 757# CONFIG_CASSINI is not set
827CONFIG_NET_VENDOR_3COM=y 758# CONFIG_NET_VENDOR_3COM is not set
828CONFIG_VORTEX=y
829# CONFIG_TYPHOON is not set
830 759
831# 760#
832# Tulip family network device support 761# Tulip family network device support
@@ -867,10 +796,7 @@ CONFIG_8139TOO=y
867# CONFIG_TLAN is not set 796# CONFIG_TLAN is not set
868# CONFIG_VIA_RHINE is not set 797# CONFIG_VIA_RHINE is not set
869# CONFIG_SC92031 is not set 798# CONFIG_SC92031 is not set
870 799CONFIG_NETDEV_1000=y
871#
872# Ethernet (1000 Mbit)
873#
874# CONFIG_ACENIC is not set 800# CONFIG_ACENIC is not set
875# CONFIG_DL2K is not set 801# CONFIG_DL2K is not set
876CONFIG_E1000=y 802CONFIG_E1000=y
@@ -890,16 +816,14 @@ CONFIG_TIGON3=y
890CONFIG_BNX2=y 816CONFIG_BNX2=y
891# CONFIG_QLA3XXX is not set 817# CONFIG_QLA3XXX is not set
892# CONFIG_ATL1 is not set 818# CONFIG_ATL1 is not set
893 819CONFIG_NETDEV_10000=y
894#
895# Ethernet (10000 Mbit)
896#
897# CONFIG_CHELSIO_T1 is not set 820# CONFIG_CHELSIO_T1 is not set
898# CONFIG_CHELSIO_T3 is not set 821# CONFIG_CHELSIO_T3 is not set
899# CONFIG_IXGB is not set 822# CONFIG_IXGB is not set
900# CONFIG_S2IO is not set 823# CONFIG_S2IO is not set
901# CONFIG_MYRI10GE is not set 824# CONFIG_MYRI10GE is not set
902# CONFIG_NETXEN_NIC is not set 825# CONFIG_NETXEN_NIC is not set
826# CONFIG_MLX4_CORE is not set
903 827
904# 828#
905# Token Ring devices 829# Token Ring devices
@@ -913,8 +837,14 @@ CONFIG_BNX2=y
913# CONFIG_WLAN_80211 is not set 837# CONFIG_WLAN_80211 is not set
914 838
915# 839#
916# Wan interfaces 840# USB Network Adapters
917# 841#
842# CONFIG_USB_CATC is not set
843# CONFIG_USB_KAWETH is not set
844# CONFIG_USB_PEGASUS is not set
845# CONFIG_USB_RTL8150 is not set
846# CONFIG_USB_USBNET_MII is not set
847# CONFIG_USB_USBNET is not set
918# CONFIG_WAN is not set 848# CONFIG_WAN is not set
919# CONFIG_FDDI is not set 849# CONFIG_FDDI is not set
920# CONFIG_HIPPI is not set 850# CONFIG_HIPPI is not set
@@ -967,9 +897,17 @@ CONFIG_KEYBOARD_ATKBD=y
967# CONFIG_KEYBOARD_STOWAWAY is not set 897# CONFIG_KEYBOARD_STOWAWAY is not set
968CONFIG_INPUT_MOUSE=y 898CONFIG_INPUT_MOUSE=y
969CONFIG_MOUSE_PS2=y 899CONFIG_MOUSE_PS2=y
900CONFIG_MOUSE_PS2_ALPS=y
901CONFIG_MOUSE_PS2_LOGIPS2PP=y
902CONFIG_MOUSE_PS2_SYNAPTICS=y
903CONFIG_MOUSE_PS2_LIFEBOOK=y
904CONFIG_MOUSE_PS2_TRACKPOINT=y
905# CONFIG_MOUSE_PS2_TOUCHKIT is not set
970# CONFIG_MOUSE_SERIAL is not set 906# CONFIG_MOUSE_SERIAL is not set
907# CONFIG_MOUSE_APPLETOUCH is not set
971# CONFIG_MOUSE_VSXXXAA is not set 908# CONFIG_MOUSE_VSXXXAA is not set
972# CONFIG_INPUT_JOYSTICK is not set 909# CONFIG_INPUT_JOYSTICK is not set
910# CONFIG_INPUT_TABLET is not set
973# CONFIG_INPUT_TOUCHSCREEN is not set 911# CONFIG_INPUT_TOUCHSCREEN is not set
974# CONFIG_INPUT_MISC is not set 912# CONFIG_INPUT_MISC is not set
975 913
@@ -1019,10 +957,6 @@ CONFIG_LEGACY_PTY_COUNT=256
1019# IPMI 957# IPMI
1020# 958#
1021# CONFIG_IPMI_HANDLER is not set 959# CONFIG_IPMI_HANDLER is not set
1022
1023#
1024# Watchdog Cards
1025#
1026# CONFIG_WATCHDOG is not set 960# CONFIG_WATCHDOG is not set
1027CONFIG_HW_RANDOM=y 961CONFIG_HW_RANDOM=y
1028CONFIG_HW_RANDOM_INTEL=y 962CONFIG_HW_RANDOM_INTEL=y
@@ -1031,7 +965,6 @@ CONFIG_HW_RANDOM_GEODE=y
1031CONFIG_HW_RANDOM_VIA=y 965CONFIG_HW_RANDOM_VIA=y
1032# CONFIG_NVRAM is not set 966# CONFIG_NVRAM is not set
1033CONFIG_RTC=y 967CONFIG_RTC=y
1034# CONFIG_DTLK is not set
1035# CONFIG_R3964 is not set 968# CONFIG_R3964 is not set
1036# CONFIG_APPLICOM is not set 969# CONFIG_APPLICOM is not set
1037# CONFIG_SONYPI is not set 970# CONFIG_SONYPI is not set
@@ -1056,17 +989,14 @@ CONFIG_MAX_RAW_DEVS=256
1056CONFIG_HPET=y 989CONFIG_HPET=y
1057# CONFIG_HPET_RTC_IRQ is not set 990# CONFIG_HPET_RTC_IRQ is not set
1058CONFIG_HPET_MMAP=y 991CONFIG_HPET_MMAP=y
1059# CONFIG_HANGCHECK_TIMER is not set 992CONFIG_HANGCHECK_TIMER=y
1060 993
1061# 994#
1062# TPM devices 995# TPM devices
1063# 996#
1064# CONFIG_TCG_TPM is not set 997# CONFIG_TCG_TPM is not set
1065# CONFIG_TELCLOCK is not set 998# CONFIG_TELCLOCK is not set
1066 999CONFIG_DEVPORT=y
1067#
1068# I2C support
1069#
1070# CONFIG_I2C is not set 1000# CONFIG_I2C is not set
1071 1001
1072# 1002#
@@ -1079,12 +1009,7 @@ CONFIG_HPET_MMAP=y
1079# Dallas's 1-wire bus 1009# Dallas's 1-wire bus
1080# 1010#
1081# CONFIG_W1 is not set 1011# CONFIG_W1 is not set
1082
1083#
1084# Hardware Monitoring support
1085#
1086# CONFIG_HWMON is not set 1012# CONFIG_HWMON is not set
1087# CONFIG_HWMON_VID is not set
1088 1013
1089# 1014#
1090# Multifunction device drivers 1015# Multifunction device drivers
@@ -1095,17 +1020,20 @@ CONFIG_HPET_MMAP=y
1095# Multimedia devices 1020# Multimedia devices
1096# 1021#
1097# CONFIG_VIDEO_DEV is not set 1022# CONFIG_VIDEO_DEV is not set
1098 1023# CONFIG_DVB_CORE is not set
1099# 1024CONFIG_DAB=y
1100# Digital Video Broadcasting Devices
1101#
1102# CONFIG_DVB is not set
1103# CONFIG_USB_DABUSB is not set 1025# CONFIG_USB_DABUSB is not set
1104 1026
1105# 1027#
1106# Graphics support 1028# Graphics support
1107# 1029#
1108# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1030# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1031
1032#
1033# Display device support
1034#
1035# CONFIG_DISPLAY_SUPPORT is not set
1036# CONFIG_VGASTATE is not set
1109# CONFIG_FB is not set 1037# CONFIG_FB is not set
1110 1038
1111# 1039#
@@ -1114,7 +1042,7 @@ CONFIG_HPET_MMAP=y
1114CONFIG_VGA_CONSOLE=y 1042CONFIG_VGA_CONSOLE=y
1115CONFIG_VGACON_SOFT_SCROLLBACK=y 1043CONFIG_VGACON_SOFT_SCROLLBACK=y
1116CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128 1044CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128
1117CONFIG_VIDEO_SELECT=y 1045# CONFIG_VIDEO_SELECT is not set
1118CONFIG_DUMMY_CONSOLE=y 1046CONFIG_DUMMY_CONSOLE=y
1119 1047
1120# 1048#
@@ -1131,14 +1059,10 @@ CONFIG_SOUND=y
1131# Open Sound System 1059# Open Sound System
1132# 1060#
1133CONFIG_SOUND_PRIME=y 1061CONFIG_SOUND_PRIME=y
1134CONFIG_OBSOLETE_OSS=y 1062# CONFIG_OSS_OBSOLETE is not set
1135# CONFIG_SOUND_BT878 is not set
1136# CONFIG_SOUND_ES1371 is not set
1137CONFIG_SOUND_ICH=y
1138# CONFIG_SOUND_TRIDENT is not set 1063# CONFIG_SOUND_TRIDENT is not set
1139# CONFIG_SOUND_MSNDCLAS is not set 1064# CONFIG_SOUND_MSNDCLAS is not set
1140# CONFIG_SOUND_MSNDPIN is not set 1065# CONFIG_SOUND_MSNDPIN is not set
1141# CONFIG_SOUND_VIA82CXXX is not set
1142# CONFIG_SOUND_OSS is not set 1066# CONFIG_SOUND_OSS is not set
1143 1067
1144# 1068#
@@ -1217,37 +1141,10 @@ CONFIG_USB_STORAGE=y
1217# CONFIG_USB_LIBUSUAL is not set 1141# CONFIG_USB_LIBUSUAL is not set
1218 1142
1219# 1143#
1220# USB Input Devices
1221#
1222# CONFIG_USB_AIPTEK is not set
1223# CONFIG_USB_WACOM is not set
1224# CONFIG_USB_ACECAD is not set
1225# CONFIG_USB_KBTAB is not set
1226# CONFIG_USB_POWERMATE is not set
1227# CONFIG_USB_TOUCHSCREEN is not set
1228# CONFIG_USB_YEALINK is not set
1229# CONFIG_USB_XPAD is not set
1230# CONFIG_USB_ATI_REMOTE is not set
1231# CONFIG_USB_ATI_REMOTE2 is not set
1232# CONFIG_USB_KEYSPAN_REMOTE is not set
1233# CONFIG_USB_APPLETOUCH is not set
1234# CONFIG_USB_GTCO is not set
1235
1236#
1237# USB Imaging devices 1144# USB Imaging devices
1238# 1145#
1239# CONFIG_USB_MDC800 is not set 1146# CONFIG_USB_MDC800 is not set
1240# CONFIG_USB_MICROTEK is not set 1147# CONFIG_USB_MICROTEK is not set
1241
1242#
1243# USB Network Adapters
1244#
1245# CONFIG_USB_CATC is not set
1246# CONFIG_USB_KAWETH is not set
1247# CONFIG_USB_PEGASUS is not set
1248# CONFIG_USB_RTL8150 is not set
1249# CONFIG_USB_USBNET_MII is not set
1250# CONFIG_USB_USBNET is not set
1251CONFIG_USB_MON=y 1148CONFIG_USB_MON=y
1252 1149
1253# 1150#
@@ -1291,10 +1188,6 @@ CONFIG_USB_MON=y
1291# USB Gadget Support 1188# USB Gadget Support
1292# 1189#
1293# CONFIG_USB_GADGET is not set 1190# CONFIG_USB_GADGET is not set
1294
1295#
1296# MMC/SD Card support
1297#
1298# CONFIG_MMC is not set 1191# CONFIG_MMC is not set
1299 1192
1300# 1193#
@@ -1339,10 +1232,6 @@ CONFIG_USB_MON=y
1339# 1232#
1340 1233
1341# 1234#
1342# Auxiliary Display support
1343#
1344
1345#
1346# Virtualization 1235# Virtualization
1347# 1236#
1348# CONFIG_KVM is not set 1237# CONFIG_KVM is not set
@@ -1383,7 +1272,6 @@ CONFIG_DNOTIFY=y
1383# CONFIG_AUTOFS_FS is not set 1272# CONFIG_AUTOFS_FS is not set
1384CONFIG_AUTOFS4_FS=y 1273CONFIG_AUTOFS4_FS=y
1385# CONFIG_FUSE_FS is not set 1274# CONFIG_FUSE_FS is not set
1386CONFIG_GENERIC_ACL=y
1387 1275
1388# 1276#
1389# CD-ROM/DVD Filesystems 1277# CD-ROM/DVD Filesystems
@@ -1411,7 +1299,7 @@ CONFIG_PROC_KCORE=y
1411CONFIG_PROC_SYSCTL=y 1299CONFIG_PROC_SYSCTL=y
1412CONFIG_SYSFS=y 1300CONFIG_SYSFS=y
1413CONFIG_TMPFS=y 1301CONFIG_TMPFS=y
1414CONFIG_TMPFS_POSIX_ACL=y 1302# CONFIG_TMPFS_POSIX_ACL is not set
1415CONFIG_HUGETLBFS=y 1303CONFIG_HUGETLBFS=y
1416CONFIG_HUGETLB_PAGE=y 1304CONFIG_HUGETLB_PAGE=y
1417CONFIG_RAMFS=y 1305CONFIG_RAMFS=y
@@ -1453,6 +1341,7 @@ CONFIG_LOCKD_V4=y
1453CONFIG_EXPORTFS=y 1341CONFIG_EXPORTFS=y
1454CONFIG_NFS_COMMON=y 1342CONFIG_NFS_COMMON=y
1455CONFIG_SUNRPC=y 1343CONFIG_SUNRPC=y
1344# CONFIG_SUNRPC_BIND34 is not set
1456# CONFIG_RPCSEC_GSS_KRB5 is not set 1345# CONFIG_RPCSEC_GSS_KRB5 is not set
1457# CONFIG_RPCSEC_GSS_SPKM3 is not set 1346# CONFIG_RPCSEC_GSS_SPKM3 is not set
1458# CONFIG_SMB_FS is not set 1347# CONFIG_SMB_FS is not set
@@ -1529,17 +1418,16 @@ CONFIG_KPROBES=y
1529# 1418#
1530CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1419CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1531# CONFIG_PRINTK_TIME is not set 1420# CONFIG_PRINTK_TIME is not set
1532# CONFIG_ENABLE_MUST_CHECK is not set 1421CONFIG_ENABLE_MUST_CHECK=y
1533CONFIG_MAGIC_SYSRQ=y 1422CONFIG_MAGIC_SYSRQ=y
1534CONFIG_UNUSED_SYMBOLS=y 1423CONFIG_UNUSED_SYMBOLS=y
1535# CONFIG_DEBUG_FS is not set 1424# CONFIG_DEBUG_FS is not set
1536# CONFIG_HEADERS_CHECK is not set 1425# CONFIG_HEADERS_CHECK is not set
1537CONFIG_DEBUG_KERNEL=y 1426CONFIG_DEBUG_KERNEL=y
1538# CONFIG_DEBUG_SHIRQ is not set 1427# CONFIG_DEBUG_SHIRQ is not set
1539CONFIG_LOG_BUF_SHIFT=18
1540CONFIG_DETECT_SOFTLOCKUP=y 1428CONFIG_DETECT_SOFTLOCKUP=y
1541# CONFIG_SCHEDSTATS is not set 1429# CONFIG_SCHEDSTATS is not set
1542CONFIG_TIMER_STATS=y 1430# CONFIG_TIMER_STATS is not set
1543# CONFIG_DEBUG_SLAB is not set 1431# CONFIG_DEBUG_SLAB is not set
1544# CONFIG_DEBUG_RT_MUTEXES is not set 1432# CONFIG_DEBUG_RT_MUTEXES is not set
1545# CONFIG_RT_MUTEX_TESTER is not set 1433# CONFIG_RT_MUTEX_TESTER is not set
@@ -1556,6 +1444,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1556# CONFIG_DEBUG_VM is not set 1444# CONFIG_DEBUG_VM is not set
1557# CONFIG_DEBUG_LIST is not set 1445# CONFIG_DEBUG_LIST is not set
1558# CONFIG_FRAME_POINTER is not set 1446# CONFIG_FRAME_POINTER is not set
1447# CONFIG_UNWIND_INFO is not set
1559# CONFIG_FORCED_INLINING is not set 1448# CONFIG_FORCED_INLINING is not set
1560# CONFIG_RCU_TORTURE_TEST is not set 1449# CONFIG_RCU_TORTURE_TEST is not set
1561# CONFIG_LKDTM is not set 1450# CONFIG_LKDTM is not set
@@ -1586,12 +1475,14 @@ CONFIG_DOUBLEFAULT=y
1586CONFIG_BITREVERSE=y 1475CONFIG_BITREVERSE=y
1587# CONFIG_CRC_CCITT is not set 1476# CONFIG_CRC_CCITT is not set
1588# CONFIG_CRC16 is not set 1477# CONFIG_CRC16 is not set
1478# CONFIG_CRC_ITU_T is not set
1589CONFIG_CRC32=y 1479CONFIG_CRC32=y
1590# CONFIG_LIBCRC32C is not set 1480# CONFIG_LIBCRC32C is not set
1591CONFIG_ZLIB_INFLATE=y 1481CONFIG_ZLIB_INFLATE=y
1592CONFIG_PLIST=y 1482CONFIG_PLIST=y
1593CONFIG_HAS_IOMEM=y 1483CONFIG_HAS_IOMEM=y
1594CONFIG_HAS_IOPORT=y 1484CONFIG_HAS_IOPORT=y
1485CONFIG_HAS_DMA=y
1595CONFIG_GENERIC_HARDIRQS=y 1486CONFIG_GENERIC_HARDIRQS=y
1596CONFIG_GENERIC_IRQ_PROBE=y 1487CONFIG_GENERIC_IRQ_PROBE=y
1597CONFIG_GENERIC_PENDING_IRQ=y 1488CONFIG_GENERIC_PENDING_IRQ=y
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c
index 4fec702afd7e..6f47eeeb93ea 100644
--- a/arch/i386/kernel/cpu/amd.c
+++ b/arch/i386/kernel/cpu/amd.c
@@ -280,6 +280,10 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
280 280
281 if (c->x86 == 0x10 && !force_mwait) 281 if (c->x86 == 0x10 && !force_mwait)
282 clear_bit(X86_FEATURE_MWAIT, c->x86_capability); 282 clear_bit(X86_FEATURE_MWAIT, c->x86_capability);
283
284 /* K6s reports MCEs but don't actually have all the MSRs */
285 if (c->x86 < 6)
286 clear_bit(X86_FEATURE_MCE, c->x86_capability);
283} 287}
284 288
285static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 * c, unsigned int size) 289static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 * c, unsigned int size)
diff --git a/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c b/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c
index b425cd3d1838..698f980eb443 100644
--- a/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c
+++ b/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c
@@ -24,6 +24,7 @@
24#include <linux/cpufreq.h> 24#include <linux/cpufreq.h>
25#include <linux/pci.h> 25#include <linux/pci.h>
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/sched.h>
27 28
28#include "speedstep-lib.h" 29#include "speedstep-lib.h"
29 30
diff --git a/arch/i386/kernel/cpu/cyrix.c b/arch/i386/kernel/cpu/cyrix.c
index 0b8411a864fb..e88d2fba156b 100644
--- a/arch/i386/kernel/cpu/cyrix.c
+++ b/arch/i386/kernel/cpu/cyrix.c
@@ -7,6 +7,7 @@
7#include <asm/processor.h> 7#include <asm/processor.h>
8#include <asm/timer.h> 8#include <asm/timer.h>
9#include <asm/pci-direct.h> 9#include <asm/pci-direct.h>
10#include <asm/tsc.h>
10 11
11#include "cpu.h" 12#include "cpu.h"
12 13
diff --git a/arch/i386/kernel/cpu/mcheck/k7.c b/arch/i386/kernel/cpu/mcheck/k7.c
index f9fa4142551e..eef63e3630c2 100644
--- a/arch/i386/kernel/cpu/mcheck/k7.c
+++ b/arch/i386/kernel/cpu/mcheck/k7.c
@@ -72,12 +72,12 @@ void amd_mcheck_init(struct cpuinfo_x86 *c)
72 u32 l, h; 72 u32 l, h;
73 int i; 73 int i;
74 74
75 machine_check_vector = k7_machine_check;
76 wmb();
77
78 if (!cpu_has(c, X86_FEATURE_MCE)) 75 if (!cpu_has(c, X86_FEATURE_MCE))
79 return; 76 return;
80 77
78 machine_check_vector = k7_machine_check;
79 wmb();
80
81 printk (KERN_INFO "Intel machine check architecture supported.\n"); 81 printk (KERN_INFO "Intel machine check architecture supported.\n");
82 rdmsr (MSR_IA32_MCG_CAP, l, h); 82 rdmsr (MSR_IA32_MCG_CAP, l, h);
83 if (l & (1<<8)) /* Control register present ? */ 83 if (l & (1<<8)) /* Control register present ? */
diff --git a/arch/i386/kernel/cpu/mtrr/cyrix.c b/arch/i386/kernel/cpu/mtrr/cyrix.c
index 0737a596db43..9edf5625584f 100644
--- a/arch/i386/kernel/cpu/mtrr/cyrix.c
+++ b/arch/i386/kernel/cpu/mtrr/cyrix.c
@@ -136,7 +136,7 @@ static void prepare_set(void)
136 /* Save value of CR4 and clear Page Global Enable (bit 7) */ 136 /* Save value of CR4 and clear Page Global Enable (bit 7) */
137 if ( cpu_has_pge ) { 137 if ( cpu_has_pge ) {
138 cr4 = read_cr4(); 138 cr4 = read_cr4();
139 write_cr4(cr4 & (unsigned char) ~(1 << 7)); 139 write_cr4(cr4 & ~X86_CR4_PGE);
140 } 140 }
141 141
142 /* Disable and flush caches. Note that wbinvd flushes the TLBs as 142 /* Disable and flush caches. Note that wbinvd flushes the TLBs as
diff --git a/arch/i386/kernel/cpu/mtrr/generic.c b/arch/i386/kernel/cpu/mtrr/generic.c
index 5367e32e0403..c4ebb5126ef7 100644
--- a/arch/i386/kernel/cpu/mtrr/generic.c
+++ b/arch/i386/kernel/cpu/mtrr/generic.c
@@ -78,7 +78,7 @@ static void __cpuinit print_fixed(unsigned base, unsigned step, const mtrr_type*
78} 78}
79 79
80/* Grab all of the MTRR state for this CPU into *state */ 80/* Grab all of the MTRR state for this CPU into *state */
81void __init get_mtrr_state(void) 81void get_mtrr_state(void)
82{ 82{
83 unsigned int i; 83 unsigned int i;
84 struct mtrr_var_range *vrs; 84 struct mtrr_var_range *vrs;
diff --git a/arch/i386/kernel/cpu/mtrr/main.c b/arch/i386/kernel/cpu/mtrr/main.c
index 02a2f39e5e0a..1cf466df330a 100644
--- a/arch/i386/kernel/cpu/mtrr/main.c
+++ b/arch/i386/kernel/cpu/mtrr/main.c
@@ -639,7 +639,7 @@ static struct sysdev_driver mtrr_sysdev_driver = {
639 * initialized (i.e. before smp_init()). 639 * initialized (i.e. before smp_init()).
640 * 640 *
641 */ 641 */
642void __init mtrr_bp_init(void) 642void mtrr_bp_init(void)
643{ 643{
644 init_ifs(); 644 init_ifs();
645 645
diff --git a/arch/i386/kernel/cpu/mtrr/state.c b/arch/i386/kernel/cpu/mtrr/state.c
index f62ecd15811a..7b39a2f954d9 100644
--- a/arch/i386/kernel/cpu/mtrr/state.c
+++ b/arch/i386/kernel/cpu/mtrr/state.c
@@ -19,7 +19,7 @@ void set_mtrr_prepare_save(struct set_mtrr_context *ctxt)
19 /* Save value of CR4 and clear Page Global Enable (bit 7) */ 19 /* Save value of CR4 and clear Page Global Enable (bit 7) */
20 if ( cpu_has_pge ) { 20 if ( cpu_has_pge ) {
21 ctxt->cr4val = read_cr4(); 21 ctxt->cr4val = read_cr4();
22 write_cr4(ctxt->cr4val & (unsigned char) ~(1 << 7)); 22 write_cr4(ctxt->cr4val & ~X86_CR4_PGE);
23 } 23 }
24 24
25 /* Disable and flush caches. Note that wbinvd flushes the TLBs as 25 /* Disable and flush caches. Note that wbinvd flushes the TLBs as
diff --git a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c
index c9a7c9835aba..6299c080f6e2 100644
--- a/arch/i386/kernel/smp.c
+++ b/arch/i386/kernel/smp.c
@@ -421,7 +421,7 @@ void flush_tlb_mm (struct mm_struct * mm)
421 } 421 }
422 if (!cpus_empty(cpu_mask)) 422 if (!cpus_empty(cpu_mask))
423 flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL); 423 flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL);
424 check_pgt_cache(); 424
425 preempt_enable(); 425 preempt_enable();
426} 426}
427 427
diff --git a/arch/i386/kernel/verify_cpu.S b/arch/i386/kernel/verify_cpu.S
index b2a9d80b6421..f1d1eacf4ab0 100644
--- a/arch/i386/kernel/verify_cpu.S
+++ b/arch/i386/kernel/verify_cpu.S
@@ -2,6 +2,7 @@
2 This runs in 16bit mode so that the caller can still use the BIOS 2 This runs in 16bit mode so that the caller can still use the BIOS
3 to output errors on the screen */ 3 to output errors on the screen */
4#include <asm/cpufeature.h> 4#include <asm/cpufeature.h>
5#include <asm/msr.h>
5 6
6verify_cpu: 7verify_cpu:
7 pushfl # Save caller passed flags 8 pushfl # Save caller passed flags
@@ -45,6 +46,32 @@ verify_cpu:
45 cmpl $0x1,%eax 46 cmpl $0x1,%eax
46 jb bad # no cpuid 1 47 jb bad # no cpuid 1
47 48
49#if REQUIRED_MASK1 & NEED_CMPXCHG64
50 /* Some VIA C3s need magic MSRs to enable CX64. Do this here */
51 cmpl $0x746e6543,%ebx # Cent
52 jne 1f
53 cmpl $0x48727561,%edx # aurH
54 jne 1f
55 cmpl $0x736c7561,%ecx # auls
56 jne 1f
57 movl $1,%eax # check model
58 cpuid
59 movl %eax,%ebx
60 shr $8,%ebx
61 andl $0xf,%ebx
62 cmp $6,%ebx # check family == 6
63 jne 1f
64 shr $4,%eax
65 andl $0xf,%eax
66 cmpl $6,%eax # check model >= 6
67 jb 1f
68 # assume models >= 6 all support this MSR
69 movl $MSR_VIA_FCR,%ecx
70 rdmsr
71 orl $((1<<1)|(1<<7)),%eax # enable CMPXCHG64 and PGE
72 wrmsr
731:
74#endif
48 movl $0x1,%eax # Does the cpu have what it takes 75 movl $0x1,%eax # Does the cpu have what it takes
49 cpuid 76 cpuid
50 77
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S
index 80bec6640230..aa87b06c7c82 100644
--- a/arch/i386/kernel/vmlinux.lds.S
+++ b/arch/i386/kernel/vmlinux.lds.S
@@ -44,7 +44,7 @@ SECTIONS
44 44
45 /* read-only */ 45 /* read-only */
46 .text : AT(ADDR(.text) - LOAD_OFFSET) { 46 .text : AT(ADDR(.text) - LOAD_OFFSET) {
47 *(.text) 47 TEXT_TEXT
48 SCHED_TEXT 48 SCHED_TEXT
49 LOCK_TEXT 49 LOCK_TEXT
50 KPROBES_TEXT 50 KPROBES_TEXT
@@ -74,7 +74,7 @@ SECTIONS
74 /* writeable */ 74 /* writeable */
75 . = ALIGN(4096); 75 . = ALIGN(4096);
76 .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ 76 .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */
77 *(.data) 77 DATA_DATA
78 CONSTRUCTORS 78 CONSTRUCTORS
79 } :data 79 } :data
80 80
diff --git a/arch/i386/mach-generic/bigsmp.c b/arch/i386/mach-generic/bigsmp.c
index e932d3485ae2..58a477baec30 100644
--- a/arch/i386/mach-generic/bigsmp.c
+++ b/arch/i386/mach-generic/bigsmp.c
@@ -21,7 +21,7 @@
21 21
22static int dmi_bigsmp; /* can be set by dmi scanners */ 22static int dmi_bigsmp; /* can be set by dmi scanners */
23 23
24static __init int hp_ht_bigsmp(struct dmi_system_id *d) 24static int hp_ht_bigsmp(struct dmi_system_id *d)
25{ 25{
26#ifdef CONFIG_X86_GENERICARCH 26#ifdef CONFIG_X86_GENERICARCH
27 printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident); 27 printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident);
@@ -31,7 +31,7 @@ static __init int hp_ht_bigsmp(struct dmi_system_id *d)
31} 31}
32 32
33 33
34static struct dmi_system_id __initdata bigsmp_dmi_table[] = { 34static struct dmi_system_id bigsmp_dmi_table[] = {
35 { hp_ht_bigsmp, "HP ProLiant DL760 G2", { 35 { hp_ht_bigsmp, "HP ProLiant DL760 G2", {
36 DMI_MATCH(DMI_BIOS_VENDOR, "HP"), 36 DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
37 DMI_MATCH(DMI_BIOS_VERSION, "P44-"), 37 DMI_MATCH(DMI_BIOS_VERSION, "P44-"),
@@ -45,7 +45,7 @@ static struct dmi_system_id __initdata bigsmp_dmi_table[] = {
45}; 45};
46 46
47 47
48static int __init probe_bigsmp(void) 48static int probe_bigsmp(void)
49{ 49{
50 if (def_to_bigsmp) 50 if (def_to_bigsmp)
51 dmi_bigsmp = 1; 51 dmi_bigsmp = 1;
diff --git a/arch/i386/mm/mmap.c b/arch/i386/mm/mmap.c
index e4730a1a43dd..552e08473755 100644
--- a/arch/i386/mm/mmap.c
+++ b/arch/i386/mm/mmap.c
@@ -27,6 +27,7 @@
27#include <linux/personality.h> 27#include <linux/personality.h>
28#include <linux/mm.h> 28#include <linux/mm.h>
29#include <linux/random.h> 29#include <linux/random.h>
30#include <linux/sched.h>
30 31
31/* 32/*
32 * Top of mmap area (just below the process stack). 33 * Top of mmap area (just below the process stack).
diff --git a/arch/i386/oprofile/nmi_int.c b/arch/i386/oprofile/nmi_int.c
index 8e185208dfd4..a7c0783b269a 100644
--- a/arch/i386/oprofile/nmi_int.c
+++ b/arch/i386/oprofile/nmi_int.c
@@ -131,7 +131,6 @@ static void nmi_save_registers(void * dummy)
131{ 131{
132 int cpu = smp_processor_id(); 132 int cpu = smp_processor_id();
133 struct op_msrs * msrs = &cpu_msrs[cpu]; 133 struct op_msrs * msrs = &cpu_msrs[cpu];
134 model->fill_in_addresses(msrs);
135 nmi_cpu_save_registers(msrs); 134 nmi_cpu_save_registers(msrs);
136} 135}
137 136
@@ -195,6 +194,7 @@ static struct notifier_block profile_exceptions_nb = {
195static int nmi_setup(void) 194static int nmi_setup(void)
196{ 195{
197 int err=0; 196 int err=0;
197 int cpu;
198 198
199 if (!allocate_msrs()) 199 if (!allocate_msrs())
200 return -ENOMEM; 200 return -ENOMEM;
@@ -207,6 +207,13 @@ static int nmi_setup(void)
207 /* We need to serialize save and setup for HT because the subset 207 /* We need to serialize save and setup for HT because the subset
208 * of msrs are distinct for save and setup operations 208 * of msrs are distinct for save and setup operations
209 */ 209 */
210
211 /* Assume saved/restored counters are the same on all CPUs */
212 model->fill_in_addresses(&cpu_msrs[0]);
213 for_each_possible_cpu (cpu) {
214 if (cpu != 0)
215 cpu_msrs[cpu] = cpu_msrs[0];
216 }
210 on_each_cpu(nmi_save_registers, NULL, 0, 1); 217 on_each_cpu(nmi_save_registers, NULL, 0, 1);
211 on_each_cpu(nmi_cpu_setup, NULL, 0, 1); 218 on_each_cpu(nmi_cpu_setup, NULL, 0, 1);
212 nmi_enabled = 1; 219 nmi_enabled = 1;
diff --git a/arch/ia64/kernel/acpi-processor.c b/arch/ia64/kernel/acpi-processor.c
index 4d4993a47e55..5a216c019924 100644
--- a/arch/ia64/kernel/acpi-processor.c
+++ b/arch/ia64/kernel/acpi-processor.c
@@ -44,7 +44,7 @@ static void init_intel_pdc(struct acpi_processor *pr)
44 44
45 buf[0] = ACPI_PDC_REVISION_ID; 45 buf[0] = ACPI_PDC_REVISION_ID;
46 buf[1] = 1; 46 buf[1] = 1;
47 buf[2] |= ACPI_PDC_EST_CAPABILITY_SMP; 47 buf[2] = ACPI_PDC_EST_CAPABILITY_SMP;
48 48
49 obj->type = ACPI_TYPE_BUFFER; 49 obj->type = ACPI_TYPE_BUFFER;
50 obj->buffer.length = 12; 50 obj->buffer.length = 12;
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 3549c94467b8..103dd8edda71 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -67,7 +67,8 @@ EXPORT_SYMBOL(pm_power_off);
67unsigned int acpi_cpei_override; 67unsigned int acpi_cpei_override;
68unsigned int acpi_cpei_phys_cpuid; 68unsigned int acpi_cpei_phys_cpuid;
69 69
70const char *acpi_get_sysname(void) 70const char __init *
71acpi_get_sysname(void)
71{ 72{
72#ifdef CONFIG_IA64_GENERIC 73#ifdef CONFIG_IA64_GENERIC
73 unsigned long rsdp_phys; 74 unsigned long rsdp_phys;
@@ -791,7 +792,7 @@ static __init int setup_additional_cpus(char *s)
791early_param("additional_cpus", setup_additional_cpus); 792early_param("additional_cpus", setup_additional_cpus);
792 793
793/* 794/*
794 * cpu_possible_map should be static, it cannot change as cpu's 795 * cpu_possible_map should be static, it cannot change as CPUs
795 * are onlined, or offlined. The reason is per-cpu data-structures 796 * are onlined, or offlined. The reason is per-cpu data-structures
796 * are allocated by some modules at init time, and dont expect to 797 * are allocated by some modules at init time, and dont expect to
797 * do this dynamically on cpu arrival/departure. 798 * do this dynamically on cpu arrival/departure.
diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c
index aeb79fb28f0b..1d64ef478dde 100644
--- a/arch/ia64/kernel/crash.c
+++ b/arch/ia64/kernel/crash.c
@@ -156,24 +156,30 @@ kdump_init_notifier(struct notifier_block *self, unsigned long val, void *data)
156 if (!kdump_on_init) 156 if (!kdump_on_init)
157 return NOTIFY_DONE; 157 return NOTIFY_DONE;
158 158
159 if (val != DIE_INIT_MONARCH_ENTER && 159 if (val != DIE_INIT_MONARCH_LEAVE &&
160 val != DIE_INIT_SLAVE_ENTER && 160 val != DIE_INIT_SLAVE_LEAVE &&
161 val != DIE_INIT_MONARCH_PROCESS &&
161 val != DIE_MCA_RENDZVOUS_LEAVE && 162 val != DIE_MCA_RENDZVOUS_LEAVE &&
162 val != DIE_MCA_MONARCH_LEAVE) 163 val != DIE_MCA_MONARCH_LEAVE)
163 return NOTIFY_DONE; 164 return NOTIFY_DONE;
164 165
165 nd = (struct ia64_mca_notify_die *)args->err; 166 nd = (struct ia64_mca_notify_die *)args->err;
166 /* Reason code 1 means machine check rendezous*/ 167 /* Reason code 1 means machine check rendezvous*/
167 if ((val == DIE_INIT_MONARCH_ENTER || val == DIE_INIT_SLAVE_ENTER) && 168 if ((val == DIE_INIT_MONARCH_LEAVE || val == DIE_INIT_SLAVE_LEAVE
168 nd->sos->rv_rc == 1) 169 || val == DIE_INIT_MONARCH_PROCESS) && nd->sos->rv_rc == 1)
169 return NOTIFY_DONE; 170 return NOTIFY_DONE;
170 171
171 switch (val) { 172 switch (val) {
172 case DIE_INIT_MONARCH_ENTER: 173 case DIE_INIT_MONARCH_PROCESS:
174 atomic_set(&kdump_in_progress, 1);
175 *(nd->monarch_cpu) = -1;
176 break;
177 case DIE_INIT_MONARCH_LEAVE:
173 machine_kdump_on_init(); 178 machine_kdump_on_init();
174 break; 179 break;
175 case DIE_INIT_SLAVE_ENTER: 180 case DIE_INIT_SLAVE_LEAVE:
176 unw_init_running(kdump_cpu_freeze, NULL); 181 if (atomic_read(&kdump_in_progress))
182 unw_init_running(kdump_cpu_freeze, NULL);
177 break; 183 break;
178 case DIE_MCA_RENDZVOUS_LEAVE: 184 case DIE_MCA_RENDZVOUS_LEAVE:
179 if (atomic_read(&kdump_in_progress)) 185 if (atomic_read(&kdump_in_progress))
@@ -215,8 +221,10 @@ static ctl_table sys_table[] = {
215static int 221static int
216machine_crash_setup(void) 222machine_crash_setup(void)
217{ 223{
224 /* be notified before default_monarch_init_process */
218 static struct notifier_block kdump_init_notifier_nb = { 225 static struct notifier_block kdump_init_notifier_nb = {
219 .notifier_call = kdump_init_notifier, 226 .notifier_call = kdump_init_notifier,
227 .priority = 1,
220 }; 228 };
221 int ret; 229 int ret;
222 if((ret = register_die_notifier(&kdump_init_notifier_nb)) != 0) 230 if((ret = register_die_notifier(&kdump_init_notifier_nb)) != 0)
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index 144b056282af..95f517515235 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -1585,5 +1585,8 @@ sys_call_table:
1585 data8 sys_getcpu 1585 data8 sys_getcpu
1586 data8 sys_epoll_pwait // 1305 1586 data8 sys_epoll_pwait // 1305
1587 data8 sys_utimensat 1587 data8 sys_utimensat
1588 data8 sys_signalfd
1589 data8 sys_timerfd
1590 data8 sys_eventfd
1588 1591
1589 .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls 1592 .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
index b4c239685d2e..407b45870489 100644
--- a/arch/ia64/kernel/irq.c
+++ b/arch/ia64/kernel/irq.c
@@ -4,7 +4,7 @@
4 * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar 4 * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar
5 * 5 *
6 * This file contains the code used by various IRQ handling routines: 6 * This file contains the code used by various IRQ handling routines:
7 * asking for different IRQ's should be done through these routines 7 * asking for different IRQs should be done through these routines
8 * instead of just grabbing them. Thus setups with different IRQ numbers 8 * instead of just grabbing them. Thus setups with different IRQ numbers
9 * shouldn't result in any weird surprises, and installing new handlers 9 * shouldn't result in any weird surprises, and installing new handlers
10 * should be easier. 10 * should be easier.
@@ -12,7 +12,7 @@
12 * Copyright (C) Ashok Raj<ashok.raj@intel.com>, Intel Corporation 2004 12 * Copyright (C) Ashok Raj<ashok.raj@intel.com>, Intel Corporation 2004
13 * 13 *
14 * 4/14/2004: Added code to handle cpu migration and do safe irq 14 * 4/14/2004: Added code to handle cpu migration and do safe irq
15 * migration without lossing interrupts for iosapic 15 * migration without losing interrupts for iosapic
16 * architecture. 16 * architecture.
17 */ 17 */
18 18
@@ -190,7 +190,7 @@ void fixup_irqs(void)
190 } 190 }
191 191
192 /* 192 /*
193 * Phase 1: Locate irq's bound to this cpu and 193 * Phase 1: Locate IRQs bound to this cpu and
194 * relocate them for cpu removal. 194 * relocate them for cpu removal.
195 */ 195 */
196 migrate_irqs(); 196 migrate_irqs();
diff --git a/arch/ia64/kernel/irq_lsapic.c b/arch/ia64/kernel/irq_lsapic.c
index c2f07beb1759..e56a7a36aca3 100644
--- a/arch/ia64/kernel/irq_lsapic.c
+++ b/arch/ia64/kernel/irq_lsapic.c
@@ -23,7 +23,7 @@ lsapic_noop_startup (unsigned int irq)
23static void 23static void
24lsapic_noop (unsigned int irq) 24lsapic_noop (unsigned int irq)
25{ 25{
26 /* nuthing to do... */ 26 /* nothing to do... */
27} 27}
28 28
29static int lsapic_retrigger(unsigned int irq) 29static int lsapic_retrigger(unsigned int irq)
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c
index 72e593e94053..5bc46f151344 100644
--- a/arch/ia64/kernel/kprobes.c
+++ b/arch/ia64/kernel/kprobes.c
@@ -151,12 +151,12 @@ static uint __kprobes is_cmp_ctype_unc_inst(uint template, uint slot,
151 151
152 cmp_inst.l = kprobe_inst; 152 cmp_inst.l = kprobe_inst;
153 if ((cmp_inst.f.x2 == 0) || (cmp_inst.f.x2 == 1)) { 153 if ((cmp_inst.f.x2 == 0) || (cmp_inst.f.x2 == 1)) {
154 /* Integere compare - Register Register (A6 type)*/ 154 /* Integer compare - Register Register (A6 type)*/
155 if ((cmp_inst.f.tb == 0) && (cmp_inst.f.ta == 0) 155 if ((cmp_inst.f.tb == 0) && (cmp_inst.f.ta == 0)
156 &&(cmp_inst.f.c == 1)) 156 &&(cmp_inst.f.c == 1))
157 ctype_unc = 1; 157 ctype_unc = 1;
158 } else if ((cmp_inst.f.x2 == 2)||(cmp_inst.f.x2 == 3)) { 158 } else if ((cmp_inst.f.x2 == 2)||(cmp_inst.f.x2 == 3)) {
159 /* Integere compare - Immediate Register (A8 type)*/ 159 /* Integer compare - Immediate Register (A8 type)*/
160 if ((cmp_inst.f.ta == 0) &&(cmp_inst.f.c == 1)) 160 if ((cmp_inst.f.ta == 0) &&(cmp_inst.f.c == 1))
161 ctype_unc = 1; 161 ctype_unc = 1;
162 } 162 }
@@ -820,7 +820,7 @@ out:
820 return 1; 820 return 1;
821} 821}
822 822
823static int __kprobes kprobes_fault_handler(struct pt_regs *regs, int trapnr) 823int __kprobes kprobes_fault_handler(struct pt_regs *regs, int trapnr)
824{ 824{
825 struct kprobe *cur = kprobe_running(); 825 struct kprobe *cur = kprobe_running();
826 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); 826 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
@@ -904,13 +904,6 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
904 if (post_kprobes_handler(args->regs)) 904 if (post_kprobes_handler(args->regs))
905 ret = NOTIFY_STOP; 905 ret = NOTIFY_STOP;
906 break; 906 break;
907 case DIE_PAGE_FAULT:
908 /* kprobe_running() needs smp_processor_id() */
909 preempt_disable();
910 if (kprobe_running() &&
911 kprobes_fault_handler(args->regs, args->trapnr))
912 ret = NOTIFY_STOP;
913 preempt_enable();
914 default: 907 default:
915 break; 908 break;
916 } 909 }
@@ -954,7 +947,7 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs)
954 /* 947 /*
955 * Callee owns the argument space and could overwrite it, eg 948 * Callee owns the argument space and could overwrite it, eg
956 * tail call optimization. So to be absolutely safe 949 * tail call optimization. So to be absolutely safe
957 * we save the argument space before transfering the control 950 * we save the argument space before transferring the control
958 * to instrumented jprobe function which runs in 951 * to instrumented jprobe function which runs in
959 * the process context 952 * the process context
960 */ 953 */
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 26814de6c29a..1ead5ea6c5ce 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -273,7 +273,6 @@ static void ia64_mlogbuf_finish(int wait)
273 273
274 mlogbuf_finished = 1; 274 mlogbuf_finished = 1;
275} 275}
276EXPORT_SYMBOL(ia64_mlogbuf_finish);
277 276
278/* 277/*
279 * Print buffered messages from INIT context. 278 * Print buffered messages from INIT context.
@@ -1477,6 +1476,10 @@ default_monarch_init_process(struct notifier_block *self, unsigned long val, voi
1477 struct task_struct *g, *t; 1476 struct task_struct *g, *t;
1478 if (val != DIE_INIT_MONARCH_PROCESS) 1477 if (val != DIE_INIT_MONARCH_PROCESS)
1479 return NOTIFY_DONE; 1478 return NOTIFY_DONE;
1479#ifdef CONFIG_KEXEC
1480 if (atomic_read(&kdump_in_progress))
1481 return NOTIFY_DONE;
1482#endif
1480 1483
1481 /* 1484 /*
1482 * FIXME: mlogbuf will brim over with INIT stack dumps. 1485 * FIXME: mlogbuf will brim over with INIT stack dumps.
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c
index 70b8bdbb7e6f..aba813c2c150 100644
--- a/arch/ia64/kernel/mca_drv.c
+++ b/arch/ia64/kernel/mca_drv.c
@@ -438,7 +438,7 @@ is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci,
438 * @peidx: pointer of index of processor error section 438 * @peidx: pointer of index of processor error section
439 * 439 *
440 * Return value: 440 * Return value:
441 * target address on Success / 0 on Failue 441 * target address on Success / 0 on Failure
442 */ 442 */
443static u64 443static u64
444get_target_identifier(peidx_table_t *peidx) 444get_target_identifier(peidx_table_t *peidx)
@@ -701,7 +701,7 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
701 return fatal_mca("External bus check fatal status"); 701 return fatal_mca("External bus check fatal status");
702 702
703 /* 703 /*
704 * This is a local MCA and estimated as a recoverble error. 704 * This is a local MCA and estimated as a recoverable error.
705 */ 705 */
706 if (platform) 706 if (platform)
707 return recover_from_platform_error(slidx, peidx, pbci, sos); 707 return recover_from_platform_error(slidx, peidx, pbci, sos);
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
index 158e3c51bb77..196287928bae 100644
--- a/arch/ia64/kernel/module.c
+++ b/arch/ia64/kernel/module.c
@@ -861,7 +861,7 @@ apply_relocate (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symindex,
861/* 861/*
862 * Modules contain a single unwind table which covers both the core and the init text 862 * Modules contain a single unwind table which covers both the core and the init text
863 * sections but since the two are not contiguous, we need to split this table up such that 863 * sections but since the two are not contiguous, we need to split this table up such that
864 * we can register (and unregister) each "segment" seperately. Fortunately, this sounds 864 * we can register (and unregister) each "segment" separately. Fortunately, this sounds
865 * more complicated than it really is. 865 * more complicated than it really is.
866 */ 866 */
867static void 867static void
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index e7191ca30b16..b7133cabdbea 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -1318,7 +1318,7 @@ pfm_reserve_session(struct task_struct *task, int is_syswide, unsigned int cpu)
1318{ 1318{
1319 unsigned long flags; 1319 unsigned long flags;
1320 /* 1320 /*
1321 * validy checks on cpu_mask have been done upstream 1321 * validity checks on cpu_mask have been done upstream
1322 */ 1322 */
1323 LOCK_PFS(flags); 1323 LOCK_PFS(flags);
1324 1324
@@ -1384,7 +1384,7 @@ pfm_unreserve_session(pfm_context_t *ctx, int is_syswide, unsigned int cpu)
1384{ 1384{
1385 unsigned long flags; 1385 unsigned long flags;
1386 /* 1386 /*
1387 * validy checks on cpu_mask have been done upstream 1387 * validity checks on cpu_mask have been done upstream
1388 */ 1388 */
1389 LOCK_PFS(flags); 1389 LOCK_PFS(flags);
1390 1390
@@ -1835,7 +1835,7 @@ pfm_flush(struct file *filp, fl_owner_t id)
1835 /* 1835 /*
1836 * remove our file from the async queue, if we use this mode. 1836 * remove our file from the async queue, if we use this mode.
1837 * This can be done without the context being protected. We come 1837 * This can be done without the context being protected. We come
1838 * here when the context has become unreacheable by other tasks. 1838 * here when the context has become unreachable by other tasks.
1839 * 1839 *
1840 * We may still have active monitoring at this point and we may 1840 * We may still have active monitoring at this point and we may
1841 * end up in pfm_overflow_handler(). However, fasync_helper() 1841 * end up in pfm_overflow_handler(). However, fasync_helper()
@@ -2132,7 +2132,7 @@ doit:
2132 filp->private_data = NULL; 2132 filp->private_data = NULL;
2133 2133
2134 /* 2134 /*
2135 * if we free on the spot, the context is now completely unreacheable 2135 * if we free on the spot, the context is now completely unreachable
2136 * from the callers side. The monitored task side is also cut, so we 2136 * from the callers side. The monitored task side is also cut, so we
2137 * can freely cut. 2137 * can freely cut.
2138 * 2138 *
@@ -2562,7 +2562,7 @@ pfm_reset_pmu_state(pfm_context_t *ctx)
2562 ctx->ctx_all_pmcs[0] = pmu_conf->impl_pmcs[0] & ~0x1; 2562 ctx->ctx_all_pmcs[0] = pmu_conf->impl_pmcs[0] & ~0x1;
2563 2563
2564 /* 2564 /*
2565 * bitmask of all PMDs that are accesible to this context 2565 * bitmask of all PMDs that are accessible to this context
2566 */ 2566 */
2567 ctx->ctx_all_pmds[0] = pmu_conf->impl_pmds[0]; 2567 ctx->ctx_all_pmds[0] = pmu_conf->impl_pmds[0];
2568 2568
@@ -3395,7 +3395,7 @@ pfm_read_pmds(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
3395 if (unlikely(!PMD_IS_IMPL(cnum))) goto error; 3395 if (unlikely(!PMD_IS_IMPL(cnum))) goto error;
3396 /* 3396 /*
3397 * we can only read the register that we use. That includes 3397 * we can only read the register that we use. That includes
3398 * the one we explicitely initialize AND the one we want included 3398 * the one we explicitly initialize AND the one we want included
3399 * in the sampling buffer (smpl_regs). 3399 * in the sampling buffer (smpl_regs).
3400 * 3400 *
3401 * Having this restriction allows optimization in the ctxsw routine 3401 * Having this restriction allows optimization in the ctxsw routine
@@ -3715,7 +3715,7 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
3715 * if non-blocking, then we ensure that the task will go into 3715 * if non-blocking, then we ensure that the task will go into
3716 * pfm_handle_work() before returning to user mode. 3716 * pfm_handle_work() before returning to user mode.
3717 * 3717 *
3718 * We cannot explicitely reset another task, it MUST always 3718 * We cannot explicitly reset another task, it MUST always
3719 * be done by the task itself. This works for system wide because 3719 * be done by the task itself. This works for system wide because
3720 * the tool that is controlling the session is logically doing 3720 * the tool that is controlling the session is logically doing
3721 * "self-monitoring". 3721 * "self-monitoring".
@@ -4644,7 +4644,7 @@ pfm_exit_thread(struct task_struct *task)
4644 switch(state) { 4644 switch(state) {
4645 case PFM_CTX_UNLOADED: 4645 case PFM_CTX_UNLOADED:
4646 /* 4646 /*
4647 * only comes to thios function if pfm_context is not NULL, i.e., cannot 4647 * only comes to this function if pfm_context is not NULL, i.e., cannot
4648 * be in unloaded state 4648 * be in unloaded state
4649 */ 4649 */
4650 printk(KERN_ERR "perfmon: pfm_exit_thread [%d] ctx unloaded\n", task->pid); 4650 printk(KERN_ERR "perfmon: pfm_exit_thread [%d] ctx unloaded\n", task->pid);
@@ -5247,7 +5247,7 @@ pfm_end_notify_user(pfm_context_t *ctx)
5247 5247
5248/* 5248/*
5249 * main overflow processing routine. 5249 * main overflow processing routine.
5250 * it can be called from the interrupt path or explicitely during the context switch code 5250 * it can be called from the interrupt path or explicitly during the context switch code
5251 */ 5251 */
5252static void 5252static void
5253pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, struct pt_regs *regs) 5253pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, struct pt_regs *regs)
diff --git a/arch/ia64/kernel/perfmon_mckinley.h b/arch/ia64/kernel/perfmon_mckinley.h
index 9becccda2897..c4bec7a9d18f 100644
--- a/arch/ia64/kernel/perfmon_mckinley.h
+++ b/arch/ia64/kernel/perfmon_mckinley.h
@@ -181,7 +181,7 @@ static pmu_config_t pmu_conf_mck={
181 .pmc_desc = pfm_mck_pmc_desc, 181 .pmc_desc = pfm_mck_pmc_desc,
182 .num_ibrs = 8, 182 .num_ibrs = 8,
183 .num_dbrs = 8, 183 .num_dbrs = 8,
184 .use_rr_dbregs = 1 /* debug register are use for range retrictions */ 184 .use_rr_dbregs = 1 /* debug register are use for range restrictions */
185}; 185};
186 186
187 187
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index d1c3ed9943e5..af73b8dfde28 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -763,6 +763,9 @@ get_wchan (struct task_struct *p)
763 unsigned long ip; 763 unsigned long ip;
764 int count = 0; 764 int count = 0;
765 765
766 if (!p || p == current || p->state == TASK_RUNNING)
767 return 0;
768
766 /* 769 /*
767 * Note: p may not be a blocked task (it could be current or 770 * Note: p may not be a blocked task (it could be current or
768 * another process running on some other CPU. Rather than 771 * another process running on some other CPU. Rather than
@@ -773,6 +776,8 @@ get_wchan (struct task_struct *p)
773 */ 776 */
774 unw_init_from_blocked_task(&info, p); 777 unw_init_from_blocked_task(&info, p);
775 do { 778 do {
779 if (p->state == TASK_RUNNING)
780 return 0;
776 if (unw_unwind(&info) < 0) 781 if (unw_unwind(&info) < 0)
777 return 0; 782 return 0;
778 unw_get_ip(&info, &ip); 783 unw_get_ip(&info, &ip);
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c
index 37c876f95dba..27c2ef445a56 100644
--- a/arch/ia64/kernel/sal.c
+++ b/arch/ia64/kernel/sal.c
@@ -134,7 +134,7 @@ set_smp_redirect (int flag)
134 * interrupt redirection. The reason is this would require that 134 * interrupt redirection. The reason is this would require that
135 * All interrupts be stopped and hard bind the irq to a cpu. 135 * All interrupts be stopped and hard bind the irq to a cpu.
136 * Later when the interrupt is fired we need to set the redir hint 136 * Later when the interrupt is fired we need to set the redir hint
137 * on again in the vector. This is combersome for something that the 137 * on again in the vector. This is cumbersome for something that the
138 * user mode irq balancer will solve anyways. 138 * user mode irq balancer will solve anyways.
139 */ 139 */
140 no_int_routing=1; 140 no_int_routing=1;
diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c
index 89f6b138a62c..25cd75f50ab1 100644
--- a/arch/ia64/kernel/salinfo.c
+++ b/arch/ia64/kernel/salinfo.c
@@ -162,7 +162,7 @@ static DEFINE_SPINLOCK(data_saved_lock);
162/** salinfo_platform_oemdata - optional callback to decode oemdata from an error 162/** salinfo_platform_oemdata - optional callback to decode oemdata from an error
163 * record. 163 * record.
164 * @sect_header: pointer to the start of the section to decode. 164 * @sect_header: pointer to the start of the section to decode.
165 * @oemdata: returns vmalloc area containing the decded output. 165 * @oemdata: returns vmalloc area containing the decoded output.
166 * @oemdata_size: returns length of decoded output (strlen). 166 * @oemdata_size: returns length of decoded output (strlen).
167 * 167 *
168 * Description: If user space asks for oem data to be decoded by the kernel 168 * Description: If user space asks for oem data to be decoded by the kernel
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index 9df1efe7487d..eaa6a24bc0b6 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -576,7 +576,7 @@ setup_arch (char **cmdline_p)
576} 576}
577 577
578/* 578/*
579 * Display cpu info for all cpu's. 579 * Display cpu info for all CPUs.
580 */ 580 */
581static int 581static int
582show_cpuinfo (struct seq_file *m, void *v) 582show_cpuinfo (struct seq_file *m, void *v)
@@ -761,7 +761,7 @@ identify_cpu (struct cpuinfo_ia64 *c)
761 c->cpu = smp_processor_id(); 761 c->cpu = smp_processor_id();
762 762
763 /* below default values will be overwritten by identify_siblings() 763 /* below default values will be overwritten by identify_siblings()
764 * for Multi-Threading/Multi-Core capable cpu's 764 * for Multi-Threading/Multi-Core capable CPUs
765 */ 765 */
766 c->threads_per_core = c->cores_per_socket = c->num_log = 1; 766 c->threads_per_core = c->cores_per_socket = c->num_log = 1;
767 c->socket_id = -1; 767 c->socket_id = -1;
@@ -947,7 +947,7 @@ cpu_init (void)
947 ia32_cpu_init(); 947 ia32_cpu_init();
948#endif 948#endif
949 949
950 /* Clear ITC to eliminiate sched_clock() overflows in human time. */ 950 /* Clear ITC to eliminate sched_clock() overflows in human time. */
951 ia64_set_itc(0); 951 ia64_set_itc(0);
952 952
953 /* disable all local interrupt sources: */ 953 /* disable all local interrupt sources: */
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c
index 221de3804560..b3a47f986e1e 100644
--- a/arch/ia64/kernel/smp.c
+++ b/arch/ia64/kernel/smp.c
@@ -186,7 +186,7 @@ handle_IPI (int irq, void *dev_id)
186} 186}
187 187
188/* 188/*
189 * Called with preeemption disabled. 189 * Called with preemption disabled.
190 */ 190 */
191static inline void 191static inline void
192send_IPI_single (int dest_cpu, int op) 192send_IPI_single (int dest_cpu, int op)
@@ -196,7 +196,7 @@ send_IPI_single (int dest_cpu, int op)
196} 196}
197 197
198/* 198/*
199 * Called with preeemption disabled. 199 * Called with preemption disabled.
200 */ 200 */
201static inline void 201static inline void
202send_IPI_allbutself (int op) 202send_IPI_allbutself (int op)
@@ -210,7 +210,7 @@ send_IPI_allbutself (int op)
210} 210}
211 211
212/* 212/*
213 * Called with preeemption disabled. 213 * Called with preemption disabled.
214 */ 214 */
215static inline void 215static inline void
216send_IPI_all (int op) 216send_IPI_all (int op)
@@ -223,7 +223,7 @@ send_IPI_all (int op)
223} 223}
224 224
225/* 225/*
226 * Called with preeemption disabled. 226 * Called with preemption disabled.
227 */ 227 */
228static inline void 228static inline void
229send_IPI_self (int op) 229send_IPI_self (int op)
@@ -252,7 +252,7 @@ kdump_smp_send_init(void)
252} 252}
253#endif 253#endif
254/* 254/*
255 * Called with preeemption disabled. 255 * Called with preemption disabled.
256 */ 256 */
257void 257void
258smp_send_reschedule (int cpu) 258smp_send_reschedule (int cpu)
@@ -261,7 +261,7 @@ smp_send_reschedule (int cpu)
261} 261}
262 262
263/* 263/*
264 * Called with preeemption disabled. 264 * Called with preemption disabled.
265 */ 265 */
266static void 266static void
267smp_send_local_flush_tlb (int cpu) 267smp_send_local_flush_tlb (int cpu)
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index a44792d0f3a9..3c9d8e6089cf 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -370,7 +370,7 @@ smp_setup_percpu_timer (void)
370{ 370{
371} 371}
372 372
373static void __devinit 373static void __cpuinit
374smp_callin (void) 374smp_callin (void)
375{ 375{
376 int cpuid, phys_id, itc_master; 376 int cpuid, phys_id, itc_master;
@@ -456,7 +456,7 @@ smp_callin (void)
456/* 456/*
457 * Activate a secondary processor. head.S calls this. 457 * Activate a secondary processor. head.S calls this.
458 */ 458 */
459int __devinit 459int __cpuinit
460start_secondary (void *unused) 460start_secondary (void *unused)
461{ 461{
462 /* Early console may use I/O ports */ 462 /* Early console may use I/O ports */
@@ -694,7 +694,7 @@ int migrate_platform_irqs(unsigned int cpu)
694 set_cpei_target_cpu(new_cpei_cpu); 694 set_cpei_target_cpu(new_cpei_cpu);
695 desc = irq_desc + ia64_cpe_irq; 695 desc = irq_desc + ia64_cpe_irq;
696 /* 696 /*
697 * Switch for now, immediatly, we need to do fake intr 697 * Switch for now, immediately, we need to do fake intr
698 * as other interrupts, but need to study CPEI behaviour with 698 * as other interrupts, but need to study CPEI behaviour with
699 * polling before making changes. 699 * polling before making changes.
700 */ 700 */
@@ -840,7 +840,7 @@ __cpu_up (unsigned int cpu)
840} 840}
841 841
842/* 842/*
843 * Assume that CPU's have been discovered by some platform-dependent interface. For 843 * Assume that CPUs have been discovered by some platform-dependent interface. For
844 * SoftSDV/Lion, that would be ACPI. 844 * SoftSDV/Lion, that would be ACPI.
845 * 845 *
846 * Setup of the IPI irq handler is done in irq.c:init_IRQ_SMP(). 846 * Setup of the IPI irq handler is done in irq.c:init_IRQ_SMP().
@@ -854,7 +854,7 @@ init_smp_config(void)
854 } *ap_startup; 854 } *ap_startup;
855 long sal_ret; 855 long sal_ret;
856 856
857 /* Tell SAL where to drop the AP's. */ 857 /* Tell SAL where to drop the APs. */
858 ap_startup = (struct fptr *) start_ap; 858 ap_startup = (struct fptr *) start_ap;
859 sal_ret = ia64_sal_set_vectors(SAL_VECTOR_OS_BOOT_RENDEZ, 859 sal_ret = ia64_sal_set_vectors(SAL_VECTOR_OS_BOOT_RENDEZ,
860 ia64_tpa(ap_startup->fp), ia64_tpa(ap_startup->gp), 0, 0, 0, 0); 860 ia64_tpa(ap_startup->fp), ia64_tpa(ap_startup->gp), 0, 0, 0, 0);
diff --git a/arch/ia64/kernel/traps.c b/arch/ia64/kernel/traps.c
index b8e0d70bf989..15ad85da15a9 100644
--- a/arch/ia64/kernel/traps.c
+++ b/arch/ia64/kernel/traps.c
@@ -304,7 +304,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
304 * Lower 4 bits are used as a count. Upper bits are a sequence 304 * Lower 4 bits are used as a count. Upper bits are a sequence
305 * number that is updated when count is reset. The cmpxchg will 305 * number that is updated when count is reset. The cmpxchg will
306 * fail is seqno has changed. This minimizes mutiple cpus 306 * fail is seqno has changed. This minimizes mutiple cpus
307 * reseting the count. 307 * resetting the count.
308 */ 308 */
309 if (current_jiffies > last.time) 309 if (current_jiffies > last.time)
310 (void) cmpxchg_acq(&last.count, count, 16 + (count & ~15)); 310 (void) cmpxchg_acq(&last.count, count, 16 + (count & ~15));
diff --git a/arch/ia64/kernel/unwind.c b/arch/ia64/kernel/unwind.c
index fe1426266b9b..b0b08b5f3eca 100644
--- a/arch/ia64/kernel/unwind.c
+++ b/arch/ia64/kernel/unwind.c
@@ -2,7 +2,7 @@
2 * Copyright (C) 1999-2004 Hewlett-Packard Co 2 * Copyright (C) 1999-2004 Hewlett-Packard Co
3 * David Mosberger-Tang <davidm@hpl.hp.com> 3 * David Mosberger-Tang <davidm@hpl.hp.com>
4 * Copyright (C) 2003 Fenghua Yu <fenghua.yu@intel.com> 4 * Copyright (C) 2003 Fenghua Yu <fenghua.yu@intel.com>
5 * - Change pt_regs_off() to make it less dependant on pt_regs structure. 5 * - Change pt_regs_off() to make it less dependent on pt_regs structure.
6 */ 6 */
7/* 7/*
8 * This file implements call frame unwind support for the Linux 8 * This file implements call frame unwind support for the Linux
@@ -1860,7 +1860,7 @@ int
1860unw_unwind (struct unw_frame_info *info) 1860unw_unwind (struct unw_frame_info *info)
1861{ 1861{
1862 unsigned long prev_ip, prev_sp, prev_bsp; 1862 unsigned long prev_ip, prev_sp, prev_bsp;
1863 unsigned long ip, pr, num_regs; 1863 unsigned long ip, pr, num_regs, rp_loc, pfs_loc;
1864 STAT(unsigned long start, flags;) 1864 STAT(unsigned long start, flags;)
1865 int retval; 1865 int retval;
1866 1866
@@ -1870,14 +1870,16 @@ unw_unwind (struct unw_frame_info *info)
1870 prev_sp = info->sp; 1870 prev_sp = info->sp;
1871 prev_bsp = info->bsp; 1871 prev_bsp = info->bsp;
1872 1872
1873 /* restore the ip */ 1873 /* validate the return IP pointer */
1874 if (!info->rp_loc) { 1874 rp_loc = (unsigned long) info->rp_loc;
1875 if ((rp_loc < info->regstk.limit) || (rp_loc > info->regstk.top)) {
1875 /* FIXME: should really be level 0 but it occurs too often. KAO */ 1876 /* FIXME: should really be level 0 but it occurs too often. KAO */
1876 UNW_DPRINT(1, "unwind.%s: failed to locate return link (ip=0x%lx)!\n", 1877 UNW_DPRINT(1, "unwind.%s: failed to locate return link (ip=0x%lx)!\n",
1877 __FUNCTION__, info->ip); 1878 __FUNCTION__, info->ip);
1878 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); 1879 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags));
1879 return -1; 1880 return -1;
1880 } 1881 }
1882 /* restore the ip */
1881 ip = info->ip = *info->rp_loc; 1883 ip = info->ip = *info->rp_loc;
1882 if (ip < GATE_ADDR) { 1884 if (ip < GATE_ADDR) {
1883 UNW_DPRINT(2, "unwind.%s: reached user-space (ip=0x%lx)\n", __FUNCTION__, ip); 1885 UNW_DPRINT(2, "unwind.%s: reached user-space (ip=0x%lx)\n", __FUNCTION__, ip);
@@ -1885,12 +1887,14 @@ unw_unwind (struct unw_frame_info *info)
1885 return -1; 1887 return -1;
1886 } 1888 }
1887 1889
1888 /* restore the cfm: */ 1890 /* validate the previous stack frame pointer */
1889 if (!info->pfs_loc) { 1891 pfs_loc = (unsigned long) info->pfs_loc;
1892 if ((pfs_loc < info->regstk.limit) || (pfs_loc > info->regstk.top)) {
1890 UNW_DPRINT(0, "unwind.%s: failed to locate ar.pfs!\n", __FUNCTION__); 1893 UNW_DPRINT(0, "unwind.%s: failed to locate ar.pfs!\n", __FUNCTION__);
1891 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); 1894 STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags));
1892 return -1; 1895 return -1;
1893 } 1896 }
1897 /* restore the cfm: */
1894 info->cfm_loc = info->pfs_loc; 1898 info->cfm_loc = info->pfs_loc;
1895 1899
1896 /* restore the bsp: */ 1900 /* restore the bsp: */
@@ -1992,13 +1996,16 @@ init_frame_info (struct unw_frame_info *info, struct task_struct *t,
1992 memset(info, 0, sizeof(*info)); 1996 memset(info, 0, sizeof(*info));
1993 1997
1994 rbslimit = (unsigned long) t + IA64_RBS_OFFSET; 1998 rbslimit = (unsigned long) t + IA64_RBS_OFFSET;
1999 stklimit = (unsigned long) t + IA64_STK_OFFSET;
2000
1995 rbstop = sw->ar_bspstore; 2001 rbstop = sw->ar_bspstore;
1996 if (rbstop - (unsigned long) t >= IA64_STK_OFFSET) 2002 if (rbstop > stklimit || rbstop < rbslimit)
1997 rbstop = rbslimit; 2003 rbstop = rbslimit;
1998 2004
1999 stklimit = (unsigned long) t + IA64_STK_OFFSET;
2000 if (stktop <= rbstop) 2005 if (stktop <= rbstop)
2001 stktop = rbstop; 2006 stktop = rbstop;
2007 if (stktop > stklimit)
2008 stktop = stklimit;
2002 2009
2003 info->regstk.limit = rbslimit; 2010 info->regstk.limit = rbslimit;
2004 info->regstk.top = rbstop; 2011 info->regstk.top = rbstop;
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
index 692382642118..5a65965c8b53 100644
--- a/arch/ia64/kernel/vmlinux.lds.S
+++ b/arch/ia64/kernel/vmlinux.lds.S
@@ -44,7 +44,7 @@ SECTIONS
44 .text : AT(ADDR(.text) - LOAD_OFFSET) 44 .text : AT(ADDR(.text) - LOAD_OFFSET)
45 { 45 {
46 IVT_TEXT 46 IVT_TEXT
47 *(.text) 47 TEXT_TEXT
48 SCHED_TEXT 48 SCHED_TEXT
49 LOCK_TEXT 49 LOCK_TEXT
50 KPROBES_TEXT 50 KPROBES_TEXT
@@ -214,7 +214,12 @@ SECTIONS
214 214
215 data : { } :data 215 data : { } :data
216 .data : AT(ADDR(.data) - LOAD_OFFSET) 216 .data : AT(ADDR(.data) - LOAD_OFFSET)
217 { *(.data) *(.data1) *(.gnu.linkonce.d*) CONSTRUCTORS } 217 {
218 DATA_DATA
219 *(.data1)
220 *(.gnu.linkonce.d*)
221 CONSTRUCTORS
222 }
218 223
219 . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */ 224 . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */
220 .got : AT(ADDR(.got) - LOAD_OFFSET) 225 .got : AT(ADDR(.got) - LOAD_OFFSET)
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
index 38085ac18338..0dbf0e81f8c0 100644
--- a/arch/ia64/mm/discontig.c
+++ b/arch/ia64/mm/discontig.c
@@ -317,7 +317,7 @@ static void __meminit scatter_node_data(void)
317 * node_online_map is not set for hot-added nodes at this time, 317 * node_online_map is not set for hot-added nodes at this time,
318 * because we are halfway through initialization of the new node's 318 * because we are halfway through initialization of the new node's
319 * structures. If for_each_online_node() is used, a new node's 319 * structures. If for_each_online_node() is used, a new node's
320 * pg_data_ptrs will be not initialized. Insted of using it, 320 * pg_data_ptrs will be not initialized. Instead of using it,
321 * pgdat_list[] is checked. 321 * pgdat_list[] is checked.
322 */ 322 */
323 for_each_node(node) { 323 for_each_node(node) {
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index 21658e02116c..b87f785c2416 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -19,36 +19,24 @@
19extern void die (char *, struct pt_regs *, long); 19extern void die (char *, struct pt_regs *, long);
20 20
21#ifdef CONFIG_KPROBES 21#ifdef CONFIG_KPROBES
22ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain); 22static inline int notify_page_fault(struct pt_regs *regs, int trap)
23
24/* Hook to register for page fault notifications */
25int register_page_fault_notifier(struct notifier_block *nb)
26{
27 return atomic_notifier_chain_register(&notify_page_fault_chain, nb);
28}
29
30int unregister_page_fault_notifier(struct notifier_block *nb)
31{ 23{
32 return atomic_notifier_chain_unregister(&notify_page_fault_chain, nb); 24 int ret = 0;
33} 25
26 if (!user_mode(regs)) {
27 /* kprobe_running() needs smp_processor_id() */
28 preempt_disable();
29 if (kprobe_running() && kprobes_fault_handler(regs, trap))
30 ret = 1;
31 preempt_enable();
32 }
34 33
35static inline int notify_page_fault(enum die_val val, const char *str, 34 return ret;
36 struct pt_regs *regs, long err, int trap, int sig)
37{
38 struct die_args args = {
39 .regs = regs,
40 .str = str,
41 .err = err,
42 .trapnr = trap,
43 .signr = sig
44 };
45 return atomic_notifier_call_chain(&notify_page_fault_chain, val, &args);
46} 35}
47#else 36#else
48static inline int notify_page_fault(enum die_val val, const char *str, 37static inline int notify_page_fault(struct pt_regs *regs, int trap)
49 struct pt_regs *regs, long err, int trap, int sig)
50{ 38{
51 return NOTIFY_DONE; 39 return 0;
52} 40}
53#endif 41#endif
54 42
@@ -117,8 +105,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
117 /* 105 /*
118 * This is to handle the kprobes on user space access instructions 106 * This is to handle the kprobes on user space access instructions
119 */ 107 */
120 if (notify_page_fault(DIE_PAGE_FAULT, "page fault", regs, code, TRAP_BRKPT, 108 if (notify_page_fault(regs, TRAP_BRKPT))
121 SIGSEGV) == NOTIFY_STOP)
122 return; 109 return;
123 110
124 down_read(&mm->mmap_sem); 111 down_read(&mm->mmap_sem);
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 3549f3b42592..73696b4a2eed 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -354,10 +354,13 @@ pci_acpi_scan_root(struct acpi_device *device, int domain, int bus)
354 354
355 acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window, 355 acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window,
356 &windows); 356 &windows);
357 controller->window = kmalloc_node(sizeof(*controller->window) * windows, 357 if (windows) {
358 GFP_KERNEL, controller->node); 358 controller->window =
359 if (!controller->window) 359 kmalloc_node(sizeof(*controller->window) * windows,
360 goto out2; 360 GFP_KERNEL, controller->node);
361 if (!controller->window)
362 goto out2;
363 }
361 364
362 name = kmalloc(16, GFP_KERNEL); 365 name = kmalloc(16, GFP_KERNEL);
363 if (!name) 366 if (!name)
diff --git a/arch/ia64/sn/kernel/bte.c b/arch/ia64/sn/kernel/bte.c
index ff1c55601178..b362d6d6a8c8 100644
--- a/arch/ia64/sn/kernel/bte.c
+++ b/arch/ia64/sn/kernel/bte.c
@@ -63,7 +63,7 @@ static inline void bte_start_transfer(struct bteinfo_s *bte, u64 len, u64 mode)
63 * Use the block transfer engine to move kernel memory from src to dest 63 * Use the block transfer engine to move kernel memory from src to dest
64 * using the assigned mode. 64 * using the assigned mode.
65 * 65 *
66 * Paramaters: 66 * Parameters:
67 * src - physical address of the transfer source. 67 * src - physical address of the transfer source.
68 * dest - physical address of the transfer destination. 68 * dest - physical address of the transfer destination.
69 * len - number of bytes to transfer from source to dest. 69 * len - number of bytes to transfer from source to dest.
@@ -247,7 +247,7 @@ EXPORT_SYMBOL(bte_copy);
247 * use the block transfer engine to move kernel 247 * use the block transfer engine to move kernel
248 * memory from src to dest using the assigned mode. 248 * memory from src to dest using the assigned mode.
249 * 249 *
250 * Paramaters: 250 * Parameters:
251 * src - physical address of the transfer source. 251 * src - physical address of the transfer source.
252 * dest - physical address of the transfer destination. 252 * dest - physical address of the transfer destination.
253 * len - number of bytes to transfer from source to dest. 253 * len - number of bytes to transfer from source to dest.
@@ -255,7 +255,7 @@ EXPORT_SYMBOL(bte_copy);
255 * for IBCT0/1 in the SGI documentation. 255 * for IBCT0/1 in the SGI documentation.
256 * 256 *
257 * NOTE: If the source, dest, and len are all cache line aligned, 257 * NOTE: If the source, dest, and len are all cache line aligned,
258 * then it would be _FAR_ preferrable to use bte_copy instead. 258 * then it would be _FAR_ preferable to use bte_copy instead.
259 */ 259 */
260bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode) 260bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
261{ 261{
@@ -300,7 +300,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
300 * a standard bte copy. 300 * a standard bte copy.
301 * 301 *
302 * One nasty exception to the above rule is when the 302 * One nasty exception to the above rule is when the
303 * source and destination are not symetrically 303 * source and destination are not symmetrically
304 * mis-aligned. If the source offset from the first 304 * mis-aligned. If the source offset from the first
305 * cache line is different from the destination offset, 305 * cache line is different from the destination offset,
306 * we make the first section be the entire transfer 306 * we make the first section be the entire transfer
@@ -337,7 +337,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
337 337
338 if (footBcopyDest == (headBcopyDest + headBcopyLen)) { 338 if (footBcopyDest == (headBcopyDest + headBcopyLen)) {
339 /* 339 /*
340 * We have two contigous bcopy 340 * We have two contiguous bcopy
341 * blocks. Merge them. 341 * blocks. Merge them.
342 */ 342 */
343 headBcopyLen += footBcopyLen; 343 headBcopyLen += footBcopyLen;
@@ -375,7 +375,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
375 } else { 375 } else {
376 376
377 /* 377 /*
378 * The transfer is not symetric, we will 378 * The transfer is not symmetric, we will
379 * allocate a buffer large enough for all the 379 * allocate a buffer large enough for all the
380 * data, bte_copy into that buffer and then 380 * data, bte_copy into that buffer and then
381 * bcopy to the destination. 381 * bcopy to the destination.
diff --git a/arch/ia64/sn/kernel/bte_error.c b/arch/ia64/sn/kernel/bte_error.c
index b6fcf8164f2b..27c5936ccfe9 100644
--- a/arch/ia64/sn/kernel/bte_error.c
+++ b/arch/ia64/sn/kernel/bte_error.c
@@ -105,7 +105,7 @@ int shub1_bte_error_handler(unsigned long _nodepda)
105 } 105 }
106 106
107 BTE_PRINTK(("eh:%p:%d Cleaning up\n", err_nodepda, smp_processor_id())); 107 BTE_PRINTK(("eh:%p:%d Cleaning up\n", err_nodepda, smp_processor_id()));
108 /* Reenable both bte interfaces */ 108 /* Re-enable both bte interfaces */
109 imem.ii_imem_regval = REMOTE_HUB_L(nasid, IIO_IMEM); 109 imem.ii_imem_regval = REMOTE_HUB_L(nasid, IIO_IMEM);
110 imem.ii_imem_fld_s.i_b0_esd = imem.ii_imem_fld_s.i_b1_esd = 1; 110 imem.ii_imem_fld_s.i_b0_esd = imem.ii_imem_fld_s.i_b1_esd = 1;
111 REMOTE_HUB_S(nasid, IIO_IMEM, imem.ii_imem_regval); 111 REMOTE_HUB_S(nasid, IIO_IMEM, imem.ii_imem_regval);
@@ -243,7 +243,7 @@ bte_crb_error_handler(cnodeid_t cnode, int btenum,
243 243
244 /* 244 /*
245 * The caller has already figured out the error type, we save that 245 * The caller has already figured out the error type, we save that
246 * in the bte handle structure for the thread excercising the 246 * in the bte handle structure for the thread exercising the
247 * interface to consume. 247 * interface to consume.
248 */ 248 */
249 bte->bh_error = ioe->ie_errortype + BTEFAIL_OFFSET; 249 bte->bh_error = ioe->ie_errortype + BTEFAIL_OFFSET;
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c
index 7ed72d3faf73..787ed642dd49 100644
--- a/arch/ia64/sn/kernel/io_common.c
+++ b/arch/ia64/sn/kernel/io_common.c
@@ -479,7 +479,7 @@ sn_io_early_init(void)
479 } 479 }
480 480
481 /* 481 /*
482 * prime sn_pci_provider[]. Individial provider init routines will 482 * prime sn_pci_provider[]. Individual provider init routines will
483 * override their respective default entries. 483 * override their respective default entries.
484 */ 484 */
485 485
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c
index a9bed5ca2ed8..684b1c984a44 100644
--- a/arch/ia64/sn/kernel/setup.c
+++ b/arch/ia64/sn/kernel/setup.c
@@ -167,7 +167,7 @@ void __init early_sn_setup(void)
167 * IO on SN2 is done via SAL calls, early_printk won't work without this. 167 * IO on SN2 is done via SAL calls, early_printk won't work without this.
168 * 168 *
169 * This code duplicates some of the ACPI table parsing that is in efi.c & sal.c. 169 * This code duplicates some of the ACPI table parsing that is in efi.c & sal.c.
170 * Any changes to those file may have to be made hereas well. 170 * Any changes to those file may have to be made here as well.
171 */ 171 */
172 efi_systab = (efi_system_table_t *) __va(ia64_boot_param->efi_systab); 172 efi_systab = (efi_system_table_t *) __va(ia64_boot_param->efi_systab);
173 config_tables = __va(efi_systab->tables); 173 config_tables = __va(efi_systab->tables);
@@ -194,7 +194,7 @@ void __init early_sn_setup(void)
194} 194}
195 195
196extern int platform_intr_list[]; 196extern int platform_intr_list[];
197static int __initdata shub_1_1_found; 197static int __cpuinitdata shub_1_1_found;
198 198
199/* 199/*
200 * sn_check_for_wars 200 * sn_check_for_wars
diff --git a/arch/ia64/sn/kernel/sn2/sn2_smp.c b/arch/ia64/sn/kernel/sn2/sn2_smp.c
index 5d318b579fb1..033c8a9f000e 100644
--- a/arch/ia64/sn/kernel/sn2/sn2_smp.c
+++ b/arch/ia64/sn/kernel/sn2/sn2_smp.c
@@ -104,7 +104,7 @@ static inline unsigned long wait_piowc(void)
104 * 104 *
105 * SN2 PIO writes from separate CPUs are not guaranteed to arrive in order. 105 * SN2 PIO writes from separate CPUs are not guaranteed to arrive in order.
106 * Context switching user threads which have memory-mapped MMIO may cause 106 * Context switching user threads which have memory-mapped MMIO may cause
107 * PIOs to issue from seperate CPUs, thus the PIO writes must be drained 107 * PIOs to issue from separate CPUs, thus the PIO writes must be drained
108 * from the previous CPU's Shub before execution resumes on the new CPU. 108 * from the previous CPU's Shub before execution resumes on the new CPU.
109 */ 109 */
110void sn_migrate(struct task_struct *task) 110void sn_migrate(struct task_struct *task)
diff --git a/arch/ia64/sn/kernel/xpc_channel.c b/arch/ia64/sn/kernel/xpc_channel.c
index c08db9c2375d..44ccc0d789c9 100644
--- a/arch/ia64/sn/kernel/xpc_channel.c
+++ b/arch/ia64/sn/kernel/xpc_channel.c
@@ -293,7 +293,7 @@ xpc_pull_remote_cachelines(struct xpc_partition *part, void *dst,
293 293
294 294
295/* 295/*
296 * Pull the remote per partititon specific variables from the specified 296 * Pull the remote per partition specific variables from the specified
297 * partition. 297 * partition.
298 */ 298 */
299enum xpc_retval 299enum xpc_retval
@@ -461,7 +461,7 @@ xpc_allocate_local_msgqueue(struct xpc_channel *ch)
461 // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between 461 // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between
462 // >>> iterations of the for-loop, bail if set? 462 // >>> iterations of the for-loop, bail if set?
463 463
464 // >>> should we impose a minumum #of entries? like 4 or 8? 464 // >>> should we impose a minimum #of entries? like 4 or 8?
465 for (nentries = ch->local_nentries; nentries > 0; nentries--) { 465 for (nentries = ch->local_nentries; nentries > 0; nentries--) {
466 466
467 nbytes = nentries * ch->msg_size; 467 nbytes = nentries * ch->msg_size;
@@ -514,7 +514,7 @@ xpc_allocate_remote_msgqueue(struct xpc_channel *ch)
514 // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between 514 // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between
515 // >>> iterations of the for-loop, bail if set? 515 // >>> iterations of the for-loop, bail if set?
516 516
517 // >>> should we impose a minumum #of entries? like 4 or 8? 517 // >>> should we impose a minimum #of entries? like 4 or 8?
518 for (nentries = ch->remote_nentries; nentries > 0; nentries--) { 518 for (nentries = ch->remote_nentries; nentries > 0; nentries--) {
519 519
520 nbytes = nentries * ch->msg_size; 520 nbytes = nentries * ch->msg_size;
@@ -1478,7 +1478,7 @@ xpc_teardown_infrastructure(struct xpc_partition *part)
1478 1478
1479 1479
1480 /* 1480 /*
1481 * Before proceding with the teardown we have to wait until all 1481 * Before proceeding with the teardown we have to wait until all
1482 * existing references cease. 1482 * existing references cease.
1483 */ 1483 */
1484 wait_event(part->teardown_wq, (atomic_read(&part->references) == 0)); 1484 wait_event(part->teardown_wq, (atomic_read(&part->references) == 0));
diff --git a/arch/ia64/sn/kernel/xpnet.c b/arch/ia64/sn/kernel/xpnet.c
index da7213530972..e58fcadff2e9 100644
--- a/arch/ia64/sn/kernel/xpnet.c
+++ b/arch/ia64/sn/kernel/xpnet.c
@@ -531,7 +531,7 @@ xpnet_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
531 dev_dbg(xpnet, "destination Partitions mask (dp) = 0x%lx\n", dp); 531 dev_dbg(xpnet, "destination Partitions mask (dp) = 0x%lx\n", dp);
532 532
533 /* 533 /*
534 * If we wanted to allow promiscous mode to work like an 534 * If we wanted to allow promiscuous mode to work like an
535 * unswitched network, this would be a good point to OR in a 535 * unswitched network, this would be a good point to OR in a
536 * mask of partitions which should be receiving all packets. 536 * mask of partitions which should be receiving all packets.
537 */ 537 */
diff --git a/arch/ia64/sn/pci/pci_dma.c b/arch/ia64/sn/pci/pci_dma.c
index 7a291a271511..d79ddacfba2d 100644
--- a/arch/ia64/sn/pci/pci_dma.c
+++ b/arch/ia64/sn/pci/pci_dma.c
@@ -333,7 +333,7 @@ int sn_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size)
333 /* 333 /*
334 * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work 334 * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work
335 * around hw issues at the pci bus level. SGI proms older than 335 * around hw issues at the pci bus level. SGI proms older than
336 * 4.10 don't implment this. 336 * 4.10 don't implement this.
337 */ 337 */
338 338
339 SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, 339 SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE,
@@ -348,7 +348,7 @@ int sn_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size)
348 /* 348 /*
349 * If the above failed, retry using the SAL_PROBE call which should 349 * If the above failed, retry using the SAL_PROBE call which should
350 * be present in all proms (but which cannot work round PCI chipset 350 * be present in all proms (but which cannot work round PCI chipset
351 * bugs). This code is retained for compatability with old 351 * bugs). This code is retained for compatibility with old
352 * pre-4.10 proms, and should be removed at some point in the future. 352 * pre-4.10 proms, and should be removed at some point in the future.
353 */ 353 */
354 354
@@ -379,7 +379,7 @@ int sn_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size)
379 /* 379 /*
380 * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work 380 * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work
381 * around hw issues at the pci bus level. SGI proms older than 381 * around hw issues at the pci bus level. SGI proms older than
382 * 4.10 don't implment this. 382 * 4.10 don't implement this.
383 */ 383 */
384 384
385 SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, 385 SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE,
@@ -394,7 +394,7 @@ int sn_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size)
394 /* 394 /*
395 * If the above failed, retry using the SAL_PROBE call which should 395 * If the above failed, retry using the SAL_PROBE call which should
396 * be present in all proms (but which cannot work round PCI chipset 396 * be present in all proms (but which cannot work round PCI chipset
397 * bugs). This code is retained for compatability with old 397 * bugs). This code is retained for compatibility with old
398 * pre-4.10 proms, and should be removed at some point in the future. 398 * pre-4.10 proms, and should be removed at some point in the future.
399 */ 399 */
400 400
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_ate.c b/arch/ia64/sn/pci/pcibr/pcibr_ate.c
index 935029fc400d..239b3cedcf2b 100644
--- a/arch/ia64/sn/pci/pcibr/pcibr_ate.c
+++ b/arch/ia64/sn/pci/pcibr/pcibr_ate.c
@@ -30,7 +30,7 @@ static void mark_ate(struct ate_resource *ate_resource, int start, int number,
30 30
31/* 31/*
32 * find_free_ate: Find the first free ate index starting from the given 32 * find_free_ate: Find the first free ate index starting from the given
33 * index for the desired consequtive count. 33 * index for the desired consecutive count.
34 */ 34 */
35static int find_free_ate(struct ate_resource *ate_resource, int start, 35static int find_free_ate(struct ate_resource *ate_resource, int start,
36 int count) 36 int count)
@@ -88,7 +88,7 @@ static inline int alloc_ate_resource(struct ate_resource *ate_resource,
88 return -1; 88 return -1;
89 89
90 /* 90 /*
91 * Find the required number of free consequtive ates. 91 * Find the required number of free consecutive ates.
92 */ 92 */
93 start_index = 93 start_index =
94 find_free_ate(ate_resource, ate_resource->lowest_free_index, 94 find_free_ate(ate_resource, ate_resource->lowest_free_index,
@@ -105,7 +105,7 @@ static inline int alloc_ate_resource(struct ate_resource *ate_resource,
105/* 105/*
106 * Allocate "count" contiguous Bridge Address Translation Entries 106 * Allocate "count" contiguous Bridge Address Translation Entries
107 * on the specified bridge to be used for PCI to XTALK mappings. 107 * on the specified bridge to be used for PCI to XTALK mappings.
108 * Indices in rm map range from 1..num_entries. Indicies returned 108 * Indices in rm map range from 1..num_entries. Indices returned
109 * to caller range from 0..num_entries-1. 109 * to caller range from 0..num_entries-1.
110 * 110 *
111 * Return the start index on success, -1 on failure. 111 * Return the start index on success, -1 on failure.
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_dma.c b/arch/ia64/sn/pci/pcibr/pcibr_dma.c
index 95af40cb22f2..e626e50a938a 100644
--- a/arch/ia64/sn/pci/pcibr/pcibr_dma.c
+++ b/arch/ia64/sn/pci/pcibr/pcibr_dma.c
@@ -201,7 +201,7 @@ pcibr_dmatrans_direct32(struct pcidev_info * info,
201} 201}
202 202
203/* 203/*
204 * Wrapper routine for free'ing DMA maps 204 * Wrapper routine for freeing DMA maps
205 * DMA mappings for Direct 64 and 32 do not have any DMA maps. 205 * DMA mappings for Direct 64 and 32 do not have any DMA maps.
206 */ 206 */
207void 207void
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c
index 8a2cb4e691fd..b9bedbd6e1d6 100644
--- a/arch/ia64/sn/pci/tioca_provider.c
+++ b/arch/ia64/sn/pci/tioca_provider.c
@@ -223,7 +223,7 @@ tioca_fastwrite_enable(struct tioca_kernel *tioca_kern)
223 223
224 /* 224 /*
225 * Scan all vga controllers on this bus making sure they all 225 * Scan all vga controllers on this bus making sure they all
226 * suport FW. If not, return. 226 * support FW. If not, return.
227 */ 227 */
228 228
229 list_for_each_entry(pdev, tioca_kern->ca_devices, bus_list) { 229 list_for_each_entry(pdev, tioca_kern->ca_devices, bus_list) {
@@ -364,7 +364,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr)
364 * @req_size: len (bytes) to map 364 * @req_size: len (bytes) to map
365 * 365 *
366 * Map @paddr into CA address space using the GART mechanism. The mapped 366 * Map @paddr into CA address space using the GART mechanism. The mapped
367 * dma_addr_t is guarenteed to be contiguous in CA bus space. 367 * dma_addr_t is guaranteed to be contiguous in CA bus space.
368 */ 368 */
369static dma_addr_t 369static dma_addr_t
370tioca_dma_mapped(struct pci_dev *pdev, u64 paddr, size_t req_size) 370tioca_dma_mapped(struct pci_dev *pdev, u64 paddr, size_t req_size)
@@ -526,7 +526,7 @@ tioca_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags)
526 return 0; 526 return 0;
527 527
528 /* 528 /*
529 * If card is 64 or 48 bit addresable, use a direct mapping. 32 529 * If card is 64 or 48 bit addressable, use a direct mapping. 32
530 * bit direct is so restrictive w.r.t. where the memory resides that 530 * bit direct is so restrictive w.r.t. where the memory resides that
531 * we don't use it even though CA has some support. 531 * we don't use it even though CA has some support.
532 */ 532 */
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c
index 35f854fb6120..f4c0b961a939 100644
--- a/arch/ia64/sn/pci/tioce_provider.c
+++ b/arch/ia64/sn/pci/tioce_provider.c
@@ -256,9 +256,9 @@ pcidev_to_tioce(struct pci_dev *pdev, struct tioce __iomem **base,
256 * @ct_addr: the coretalk address to map 256 * @ct_addr: the coretalk address to map
257 * @len: number of bytes to map 257 * @len: number of bytes to map
258 * 258 *
259 * Given the addressing type, set up various paramaters that define the 259 * Given the addressing type, set up various parameters that define the
260 * ATE pool to use. Search for a contiguous block of entries to cover the 260 * ATE pool to use. Search for a contiguous block of entries to cover the
261 * length, and if enough resources exist, fill in the ATE's and construct a 261 * length, and if enough resources exist, fill in the ATEs and construct a
262 * tioce_dmamap struct to track the mapping. 262 * tioce_dmamap struct to track the mapping.
263 */ 263 */
264static u64 264static u64
@@ -581,8 +581,8 @@ tioce_do_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count,
581 */ 581 */
582 if (!mapaddr && !barrier && dma_mask >= 0xffffffffffUL) { 582 if (!mapaddr && !barrier && dma_mask >= 0xffffffffffUL) {
583 /* 583 /*
584 * We have two options for 40-bit mappings: 16GB "super" ATE's 584 * We have two options for 40-bit mappings: 16GB "super" ATEs
585 * and 64MB "regular" ATE's. We'll try both if needed for a 585 * and 64MB "regular" ATEs. We'll try both if needed for a
586 * given mapping but which one we try first depends on the 586 * given mapping but which one we try first depends on the
587 * size. For requests >64MB, prefer to use a super page with 587 * size. For requests >64MB, prefer to use a super page with
588 * regular as the fallback. Otherwise, try in the reverse order. 588 * regular as the fallback. Otherwise, try in the reverse order.
@@ -687,8 +687,8 @@ tioce_error_intr_handler(int irq, void *arg)
687} 687}
688 688
689/** 689/**
690 * tioce_reserve_m32 - reserve M32 ate's for the indicated address range 690 * tioce_reserve_m32 - reserve M32 ATEs for the indicated address range
691 * @tioce_kernel: TIOCE context to reserve ate's for 691 * @tioce_kernel: TIOCE context to reserve ATEs for
692 * @base: starting bus address to reserve 692 * @base: starting bus address to reserve
693 * @limit: last bus address to reserve 693 * @limit: last bus address to reserve
694 * 694 *
@@ -763,7 +763,7 @@ tioce_kern_init(struct tioce_common *tioce_common)
763 763
764 /* 764 /*
765 * Set PMU pagesize to the largest size available, and zero out 765 * Set PMU pagesize to the largest size available, and zero out
766 * the ate's. 766 * the ATEs.
767 */ 767 */
768 768
769 tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base; 769 tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base;
@@ -784,7 +784,7 @@ tioce_kern_init(struct tioce_common *tioce_common)
784 } 784 }
785 785
786 /* 786 /*
787 * Reserve ATE's corresponding to reserved address ranges. These 787 * Reserve ATEs corresponding to reserved address ranges. These
788 * include: 788 * include:
789 * 789 *
790 * Memory space covered by each PPB mem base/limit register 790 * Memory space covered by each PPB mem base/limit register
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index 6c73bca3f478..4e2d5b9f0a9a 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -27,7 +27,7 @@ SECTIONS
27 _text = .; /* Text and read-only data */ 27 _text = .; /* Text and read-only data */
28 .boot : { *(.boot) } = 0 28 .boot : { *(.boot) } = 0
29 .text : { 29 .text : {
30 *(.text) 30 TEXT_TEXT
31 SCHED_TEXT 31 SCHED_TEXT
32 LOCK_TEXT 32 LOCK_TEXT
33 *(.fixup) 33 *(.fixup)
@@ -50,7 +50,7 @@ SECTIONS
50 .data : { /* Data */ 50 .data : { /* Data */
51 *(.spu) 51 *(.spu)
52 *(.spi) 52 *(.spi)
53 *(.data) 53 DATA_DATA
54 CONSTRUCTORS 54 CONSTRUCTORS
55 } 55 }
56 56
diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index 437b4f8d86c5..78f139226a1b 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -11,7 +11,7 @@ SECTIONS
11 . = 0x1000; 11 . = 0x1000;
12 _text = .; /* Text and read-only data */ 12 _text = .; /* Text and read-only data */
13 .text : { 13 .text : {
14 *(.text) 14 TEXT_TEXT
15 SCHED_TEXT 15 SCHED_TEXT
16 LOCK_TEXT 16 LOCK_TEXT
17 *(.fixup) 17 *(.fixup)
@@ -28,7 +28,7 @@ SECTIONS
28 _etext = .; /* End of text section */ 28 _etext = .; /* End of text section */
29 29
30 .data : { /* Data */ 30 .data : { /* Data */
31 *(.data) 31 DATA_DATA
32 CONSTRUCTORS 32 CONSTRUCTORS
33 } 33 }
34 34
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index 2868e206fc76..c8999b2db23b 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -12,7 +12,7 @@ SECTIONS
12 _text = .; /* Text and read-only data */ 12 _text = .; /* Text and read-only data */
13 .text : { 13 .text : {
14 *(.head) 14 *(.head)
15 *(.text) 15 TEXT_TEXT
16 SCHED_TEXT 16 SCHED_TEXT
17 LOCK_TEXT 17 LOCK_TEXT
18 *(.fixup) 18 *(.fixup)
@@ -23,7 +23,7 @@ SECTIONS
23 _etext = .; /* End of text section */ 23 _etext = .; /* End of text section */
24 24
25 .data : { /* Data */ 25 .data : { /* Data */
26 *(.data) 26 DATA_DATA
27 CONSTRUCTORS 27 CONSTRUCTORS
28 . = ALIGN(16); /* Exception table */ 28 . = ALIGN(16); /* Exception table */
29 __start___ex_table = .; 29 __start___ex_table = .;
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 823f73736bb5..adc64a2bafbb 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -470,14 +470,6 @@ config AVNET
470 default y 470 default y
471 depends on (AVNET5282) 471 depends on (AVNET5282)
472 472
473config LARGE_ALLOCS
474 bool "Allow allocating large blocks (> 1MB) of memory"
475 help
476 Allow the slab memory allocator to keep chains for very large
477 memory sizes - upto 32MB. You may need this if your system has
478 a lot of RAM, and you need to able to allocate very large
479 contiguous chunks. If unsure, say N.
480
481config 4KSTACKS 473config 4KSTACKS
482 bool "Use 4Kb for kernel stacks instead of 8Kb" 474 bool "Use 4Kb for kernel stacks instead of 8Kb"
483 default y 475 default y
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S
index c86a1bf589d4..07a0055602f4 100644
--- a/arch/m68knommu/kernel/vmlinux.lds.S
+++ b/arch/m68knommu/kernel/vmlinux.lds.S
@@ -62,7 +62,7 @@ SECTIONS {
62 .text : { 62 .text : {
63 _text = .; 63 _text = .;
64 _stext = . ; 64 _stext = . ;
65 *(.text) 65 TEXT_TEXT
66 SCHED_TEXT 66 SCHED_TEXT
67 *(.text.lock) 67 *(.text.lock)
68 68
@@ -133,7 +133,7 @@ SECTIONS {
133 .data DATA_ADDR : { 133 .data DATA_ADDR : {
134 . = ALIGN(4); 134 . = ALIGN(4);
135 _sdata = . ; 135 _sdata = . ;
136 *(.data) 136 DATA_DATA
137 . = ALIGN(8192) ; 137 . = ALIGN(8192) ;
138 *(.data.init_task) 138 *(.data.init_task)
139 _edata = . ; 139 _edata = . ;
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
index a7d49ae805b4..18c4a3c45a31 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -76,7 +76,7 @@
76#include <linux/module.h> 76#include <linux/module.h>
77#include <linux/signal.h> 77#include <linux/signal.h>
78#include <linux/smp.h> 78#include <linux/smp.h>
79 79#include <linux/sched.h>
80#include <asm/asm.h> 80#include <asm/asm.h>
81#include <asm/branch.h> 81#include <asm/branch.h>
82#include <asm/byteorder.h> 82#include <asm/byteorder.h>
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
index 043f637e3d10..9b9992cd562a 100644
--- a/arch/mips/kernel/vmlinux.lds.S
+++ b/arch/mips/kernel/vmlinux.lds.S
@@ -27,7 +27,7 @@ SECTIONS
27 /* read-only */ 27 /* read-only */
28 _text = .; /* Text and read-only data */ 28 _text = .; /* Text and read-only data */
29 .text : { 29 .text : {
30 *(.text) 30 TEXT_TEXT
31 SCHED_TEXT 31 SCHED_TEXT
32 LOCK_TEXT 32 LOCK_TEXT
33 *(.fixup) 33 *(.fixup)
@@ -62,7 +62,7 @@ SECTIONS
62 . = ALIGN(_PAGE_SIZE); 62 . = ALIGN(_PAGE_SIZE);
63 *(.data.init_task) 63 *(.data.init_task)
64 64
65 *(.data) 65 DATA_DATA
66 66
67 CONSTRUCTORS 67 CONSTRUCTORS
68 } 68 }
diff --git a/arch/mips/mm/ioremap.c b/arch/mips/mm/ioremap.c
index cea7d0ea36e4..59945b9ee23c 100644
--- a/arch/mips/mm/ioremap.c
+++ b/arch/mips/mm/ioremap.c
@@ -9,7 +9,7 @@
9#include <linux/module.h> 9#include <linux/module.h>
10#include <asm/addrspace.h> 10#include <asm/addrspace.h>
11#include <asm/byteorder.h> 11#include <asm/byteorder.h>
12 12#include <linux/sched.h>
13#include <linux/vmalloc.h> 13#include <linux/vmalloc.h>
14#include <asm/cacheflush.h> 14#include <asm/cacheflush.h>
15#include <asm/io.h> 15#include <asm/io.h>
diff --git a/arch/mips/sgi-ip32/Makefile b/arch/mips/sgi-ip32/Makefile
index 7e1416768a60..60f0227425e7 100644
--- a/arch/mips/sgi-ip32/Makefile
+++ b/arch/mips/sgi-ip32/Makefile
@@ -3,5 +3,5 @@
3# under Linux. 3# under Linux.
4# 4#
5 5
6obj-y += ip32-berr.o ip32-irq.o ip32-setup.o ip32-reset.o \ 6obj-y += ip32-berr.o ip32-irq.o ip32-platform.o ip32-setup.o ip32-reset.o \
7 crime.o ip32-memory.o 7 crime.o ip32-memory.o
diff --git a/arch/mips/sgi-ip32/ip32-platform.c b/arch/mips/sgi-ip32/ip32-platform.c
new file mode 100644
index 000000000000..120b15932caf
--- /dev/null
+++ b/arch/mips/sgi-ip32/ip32-platform.c
@@ -0,0 +1,20 @@
1#include <linux/init.h>
2#include <linux/platform_device.h>
3
4static __init int meth_devinit(void)
5{
6 struct platform_device *pd;
7 int ret;
8
9 pd = platform_device_alloc("meth", -1);
10 if (!pd)
11 return -ENOMEM;
12
13 ret = platform_device_add(pd);
14 if (ret)
15 platform_device_put(pd);
16
17 return ret;
18}
19
20device_initcall(meth_devinit);
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
index 0dc924ccceb5..395bbce64993 100644
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -18,7 +18,7 @@
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/seq_file.h> 19#include <linux/seq_file.h>
20#include <linux/pagemap.h> 20#include <linux/pagemap.h>
21 21#include <linux/sched.h>
22#include <asm/pdc.h> 22#include <asm/pdc.h>
23#include <asm/cache.h> 23#include <asm/cache.h>
24#include <asm/cacheflush.h> 24#include <asm/cacheflush.h>
diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c
index dd5d0cb6b347..566226d78bc9 100644
--- a/arch/parisc/kernel/processor.c
+++ b/arch/parisc/kernel/processor.c
@@ -33,7 +33,7 @@
33#include <linux/seq_file.h> 33#include <linux/seq_file.h>
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/cpu.h> 35#include <linux/cpu.h>
36 36#include <asm/param.h>
37#include <asm/cache.h> 37#include <asm/cache.h>
38#include <asm/hardware.h> /* for register_parisc_driver() stuff */ 38#include <asm/hardware.h> /* for register_parisc_driver() stuff */
39#include <asm/processor.h> 39#include <asm/processor.h>
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
index c74585990598..4d96ba4b9849 100644
--- a/arch/parisc/kernel/vmlinux.lds.S
+++ b/arch/parisc/kernel/vmlinux.lds.S
@@ -51,7 +51,7 @@ SECTIONS
51 51
52 _text = .; /* Text and read-only data */ 52 _text = .; /* Text and read-only data */
53 .text ALIGN(16) : { 53 .text ALIGN(16) : {
54 *(.text) 54 TEXT_TEXT
55 SCHED_TEXT 55 SCHED_TEXT
56 LOCK_TEXT 56 LOCK_TEXT
57 *(.text.do_softirq) 57 *(.text.do_softirq)
@@ -91,7 +91,7 @@ SECTIONS
91 91
92 . = ALIGN(L1_CACHE_BYTES); 92 . = ALIGN(L1_CACHE_BYTES);
93 .data : { /* Data */ 93 .data : { /* Data */
94 *(.data) 94 DATA_DATA
95 CONSTRUCTORS 95 CONSTRUCTORS
96 } 96 }
97 97
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 56d3c0dcd2b8..5eaeafd30bdf 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -118,6 +118,7 @@ config GENERIC_BUG
118 depends on BUG 118 depends on BUG
119 119
120config SYS_SUPPORTS_APM_EMULATION 120config SYS_SUPPORTS_APM_EMULATION
121 default y if PMAC_APM_EMU
121 bool 122 bool
122 123
123config DEFAULT_UIMAGE 124config DEFAULT_UIMAGE
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index d6014a67694b..6238b5875fd1 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -29,7 +29,7 @@ CROSS32CC := $(CC) -m32
29CROSS32AS := $(AS) -a32 29CROSS32AS := $(AS) -a32
30CROSS32LD := $(LD) -m elf32ppc 30CROSS32LD := $(LD) -m elf32ppc
31CROSS32OBJCOPY := $(OBJCOPY) 31CROSS32OBJCOPY := $(OBJCOPY)
32CROSS32AR := $(AR) 32CROSS32AR := GNUTARGET=elf32-powerpc $(AR)
33endif 33endif
34endif 34endif
35 35
@@ -58,6 +58,7 @@ ifeq ($(HAS_BIARCH),y)
58override AS += -a$(SZ) 58override AS += -a$(SZ)
59override LD += -m elf$(SZ)ppc 59override LD += -m elf$(SZ)ppc
60override CC += -m$(SZ) 60override CC += -m$(SZ)
61override AR := GNUTARGET=elf$(SZ)-powerpc $(AR)
61endif 62endif
62 63
63LDFLAGS_vmlinux := -Bstatic 64LDFLAGS_vmlinux := -Bstatic
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index d4f9fef7f9e9..83788986b93b 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -33,6 +33,9 @@ endif
33 33
34BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) 34BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj)
35 35
36$(obj)/44x.o: BOOTCFLAGS += -Wa,-mbooke
37$(obj)/ebony.o: BOOTCFLAGS += -Wa,-mbooke
38
36zlib := inffast.c inflate.c inftrees.c 39zlib := inffast.c inflate.c inftrees.c
37zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h 40zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h
38zliblinuxheader := zlib.h zconf.h zutil.h 41zliblinuxheader := zlib.h zconf.h zutil.h
@@ -54,13 +57,13 @@ obj-wlib := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-wlib))))
54obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat)))) 57obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat))))
55 58
56quiet_cmd_copy_zlib = COPY $@ 59quiet_cmd_copy_zlib = COPY $@
57 cmd_copy_zlib = sed "s@__attribute_used__@@;s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ 60 cmd_copy_zlib = sed "s@__attribute_used__@@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@
58 61
59quiet_cmd_copy_zlibheader = COPY $@ 62quiet_cmd_copy_zlibheader = COPY $@
60 cmd_copy_zlibheader = sed "s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ 63 cmd_copy_zlibheader = sed "s@<linux/\([^>]*\).*@\"\1\"@" $< > $@
61# stddef.h for NULL 64# stddef.h for NULL
62quiet_cmd_copy_zliblinuxheader = COPY $@ 65quiet_cmd_copy_zliblinuxheader = COPY $@
63 cmd_copy_zliblinuxheader = sed "s@<linux/string.h>@\"string.h\"@;s@<linux/kernel.h>@<stddef.h>@;s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ 66 cmd_copy_zliblinuxheader = sed "s@<linux/string.h>@\"string.h\"@;s@<linux/kernel.h>@<stddef.h>@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@
64 67
65$(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/% 68$(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/%
66 $(call cmd,copy_zlib) 69 $(call cmd,copy_zlib)
@@ -204,12 +207,12 @@ dts = $(if $(shell echo $(CONFIG_DEVICE_TREE) | grep '^/'),\
204$(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits) 207$(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits)
205 $(call if_changed,wrap,cuboot-$*,$(dts)) 208 $(call if_changed,wrap,cuboot-$*,$(dts))
206 209
207$(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits)
208 $(call if_changed,wrap,treeboot-$*,$(dts))
209
210$(obj)/treeImage.initrd.%: vmlinux $(dts) $(wrapperbits) 210$(obj)/treeImage.initrd.%: vmlinux $(dts) $(wrapperbits)
211 $(call if_changed,wrap,treeboot-$*,$(dts),,$(obj)/ramdisk.image.gz) 211 $(call if_changed,wrap,treeboot-$*,$(dts),,$(obj)/ramdisk.image.gz)
212 212
213$(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits)
214 $(call if_changed,wrap,treeboot-$*,$(dts))
215
213$(obj)/zImage: $(addprefix $(obj)/, $(image-y)) 216$(obj)/zImage: $(addprefix $(obj)/, $(image-y))
214 @rm -f $@; ln $< $@ 217 @rm -f $@; ln $< $@
215$(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y)) 218$(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y))
diff --git a/arch/powerpc/boot/dts/ebony.dts b/arch/powerpc/boot/dts/ebony.dts
index b67918651c48..0ec02f4726b5 100644
--- a/arch/powerpc/boot/dts/ebony.dts
+++ b/arch/powerpc/boot/dts/ebony.dts
@@ -33,8 +33,8 @@
33 timebase-frequency = <0>; // Filled in by zImage 33 timebase-frequency = <0>; // Filled in by zImage
34 i-cache-line-size = <32>; 34 i-cache-line-size = <32>;
35 d-cache-line-size = <32>; 35 d-cache-line-size = <32>;
36 i-cache-size = <0>; 36 i-cache-size = <8000>; /* 32 kB */
37 d-cache-size = <0>; 37 d-cache-size = <8000>; /* 32 kB */
38 dcr-controller; 38 dcr-controller;
39 dcr-access-method = "native"; 39 dcr-access-method = "native";
40 }; 40 };
@@ -46,7 +46,6 @@
46 }; 46 };
47 47
48 UIC0: interrupt-controller0 { 48 UIC0: interrupt-controller0 {
49 device_type = "ibm,uic";
50 compatible = "ibm,uic-440gp", "ibm,uic"; 49 compatible = "ibm,uic-440gp", "ibm,uic";
51 interrupt-controller; 50 interrupt-controller;
52 cell-index = <0>; 51 cell-index = <0>;
@@ -58,7 +57,6 @@
58 }; 57 };
59 58
60 UIC1: interrupt-controller1 { 59 UIC1: interrupt-controller1 {
61 device_type = "ibm,uic";
62 compatible = "ibm,uic-440gp", "ibm,uic"; 60 compatible = "ibm,uic-440gp", "ibm,uic";
63 interrupt-controller; 61 interrupt-controller;
64 cell-index = <1>; 62 cell-index = <1>;
@@ -71,36 +69,36 @@
71 }; 69 };
72 70
73 CPC0: cpc { 71 CPC0: cpc {
74 device_type = "ibm,cpc";
75 compatible = "ibm,cpc-440gp"; 72 compatible = "ibm,cpc-440gp";
76 dcr-reg = <0b0 003 0e0 010>; 73 dcr-reg = <0b0 003 0e0 010>;
77 // FIXME: anything else? 74 // FIXME: anything else?
78 }; 75 };
79 76
80 plb { 77 plb {
81 device_type = "ibm,plb";
82 compatible = "ibm,plb-440gp", "ibm,plb4"; 78 compatible = "ibm,plb-440gp", "ibm,plb4";
83 #address-cells = <2>; 79 #address-cells = <2>;
84 #size-cells = <1>; 80 #size-cells = <1>;
85 ranges; 81 ranges;
86 clock-frequency = <0>; // Filled in by zImage 82 clock-frequency = <0>; // Filled in by zImage
87 83
88 SDRAM0: sdram { 84 SDRAM0: memory-controller {
89 device_type = "memory-controller"; 85 compatible = "ibm,sdram-440gp";
90 compatible = "ibm,sdram-440gp", "ibm,sdram";
91 dcr-reg = <010 2>; 86 dcr-reg = <010 2>;
92 // FIXME: anything else? 87 // FIXME: anything else?
93 }; 88 };
94 89
90 SRAM0: sram {
91 compatible = "ibm,sram-440gp";
92 dcr-reg = <020 8 00a 1>;
93 };
94
95 DMA0: dma { 95 DMA0: dma {
96 // FIXME: ??? 96 // FIXME: ???
97 device_type = "ibm,dma-4xx"; 97 compatible = "ibm,dma-440gp";
98 compatible = "ibm,dma-440gp", "ibm,dma-4xx";
99 dcr-reg = <100 027>; 98 dcr-reg = <100 027>;
100 }; 99 };
101 100
102 MAL0: mcmal { 101 MAL0: mcmal {
103 device_type = "mcmal-dma";
104 compatible = "ibm,mcmal-440gp", "ibm,mcmal"; 102 compatible = "ibm,mcmal-440gp", "ibm,mcmal";
105 dcr-reg = <180 62>; 103 dcr-reg = <180 62>;
106 num-tx-chans = <4>; 104 num-tx-chans = <4>;
@@ -119,7 +117,6 @@
119 }; 117 };
120 118
121 POB0: opb { 119 POB0: opb {
122 device_type = "ibm,opb";
123 compatible = "ibm,opb-440gp", "ibm,opb"; 120 compatible = "ibm,opb-440gp", "ibm,opb";
124 #address-cells = <1>; 121 #address-cells = <1>;
125 #size-cells = <1>; 122 #size-cells = <1>;
@@ -133,8 +130,7 @@
133 clock-frequency = <0>; // Filled in by zImage 130 clock-frequency = <0>; // Filled in by zImage
134 131
135 EBC0: ebc { 132 EBC0: ebc {
136 device_type = "ibm,ebc"; 133 compatible = "ibm,ebc-440gp", "ibm,ebc";
137 compatible = "ibm,ebc-440gp";
138 dcr-reg = <012 2>; 134 dcr-reg = <012 2>;
139 #address-cells = <2>; 135 #address-cells = <2>;
140 #size-cells = <1>; 136 #size-cells = <1>;
@@ -147,7 +143,7 @@
147 interrupts = <5 4>; 143 interrupts = <5 4>;
148 interrupt-parent = <&UIC1>; 144 interrupt-parent = <&UIC1>;
149 145
150 small-flash@0,0 { 146 small-flash@0,80000 {
151 device_type = "rom"; 147 device_type = "rom";
152 compatible = "direct-mapped"; 148 compatible = "direct-mapped";
153 probe-type = "JEDEC"; 149 probe-type = "JEDEC";
@@ -159,7 +155,6 @@
159 155
160 ds1743@1,0 { 156 ds1743@1,0 {
161 /* NVRAM & RTC */ 157 /* NVRAM & RTC */
162 device_type = "nvram";
163 compatible = "ds1743"; 158 compatible = "ds1743";
164 reg = <1 0 2000>; 159 reg = <1 0 2000>;
165 }; 160 };
@@ -170,7 +165,7 @@
170 probe-type = "JEDEC"; 165 probe-type = "JEDEC";
171 bank-width = <1>; 166 bank-width = <1>;
172 partitions = <0 380000 167 partitions = <0 380000
173 280000 80000>; 168 380000 80000>;
174 partition-names = "fs", "firmware"; 169 partition-names = "fs", "firmware";
175 reg = <2 0 400000>; 170 reg = <2 0 400000>;
176 }; 171 };
@@ -226,13 +221,11 @@
226 221
227 GPIO0: gpio@40000700 { 222 GPIO0: gpio@40000700 {
228 /* FIXME */ 223 /* FIXME */
229 device_type = "gpio";
230 compatible = "ibm,gpio-440gp"; 224 compatible = "ibm,gpio-440gp";
231 reg = <40000700 20>; 225 reg = <40000700 20>;
232 }; 226 };
233 227
234 ZMII0: emac-zmii@40000780 { 228 ZMII0: emac-zmii@40000780 {
235 device_type = "emac-zmii";
236 compatible = "ibm,zmii-440gp", "ibm,zmii"; 229 compatible = "ibm,zmii-440gp", "ibm,zmii";
237 reg = <40000780 c>; 230 reg = <40000780 c>;
238 }; 231 };
@@ -299,9 +292,5 @@
299 292
300 chosen { 293 chosen {
301 linux,stdout-path = "/plb/opb/serial@40000200"; 294 linux,stdout-path = "/plb/opb/serial@40000200";
302// linux,initrd-start = <0>; /* FIXME */
303// linux,initrd-end = <0>;
304// bootargs = "";
305 }; 295 };
306}; 296};
307
diff --git a/arch/powerpc/boot/dts/kuroboxHD.dts b/arch/powerpc/boot/dts/kuroboxHD.dts
index 157dc98d3988..a983680c3263 100644
--- a/arch/powerpc/boot/dts/kuroboxHD.dts
+++ b/arch/powerpc/boot/dts/kuroboxHD.dts
@@ -21,19 +21,16 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts"
21 */ 21 */
22 22
23/ { 23/ {
24 linux,phandle = <1000>;
25 model = "KuroboxHD"; 24 model = "KuroboxHD";
26 compatible = "linkstation"; 25 compatible = "linkstation";
27 #address-cells = <1>; 26 #address-cells = <1>;
28 #size-cells = <1>; 27 #size-cells = <1>;
29 28
30 cpus { 29 cpus {
31 linux,phandle = <2000>;
32 #address-cells = <1>; 30 #address-cells = <1>;
33 #size-cells = <0>; 31 #size-cells = <0>;
34 32
35 PowerPC,603e { /* Really 8241 */ 33 PowerPC,603e { /* Really 8241 */
36 linux,phandle = <2100>;
37 device_type = "cpu"; 34 device_type = "cpu";
38 reg = <0>; 35 reg = <0>;
39 clock-frequency = <bebc200>; /* Fixed by bootwrapper */ 36 clock-frequency = <bebc200>; /* Fixed by bootwrapper */
@@ -48,13 +45,11 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts"
48 }; 45 };
49 46
50 memory { 47 memory {
51 linux,phandle = <3000>;
52 device_type = "memory"; 48 device_type = "memory";
53 reg = <00000000 04000000>; 49 reg = <00000000 04000000>;
54 }; 50 };
55 51
56 soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ 52 soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */
57 linux,phandle = <4000>;
58 #address-cells = <1>; 53 #address-cells = <1>;
59 #size-cells = <1>; 54 #size-cells = <1>;
60 #interrupt-cells = <2>; 55 #interrupt-cells = <2>;
@@ -69,38 +64,34 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts"
69 fef00000 fef00000 00100000>; /* pci iack */ 64 fef00000 fef00000 00100000>; /* pci iack */
70 65
71 i2c@80003000 { 66 i2c@80003000 {
72 linux,phandle = <4300>;
73 device_type = "i2c"; 67 device_type = "i2c";
74 compatible = "fsl-i2c"; 68 compatible = "fsl-i2c";
75 reg = <80003000 1000>; 69 reg = <80003000 1000>;
76 interrupts = <5 2>; 70 interrupts = <5 2>;
77 interrupt-parent = <4400>; 71 interrupt-parent = <&mpic>;
78 }; 72 };
79 73
80 serial@80004500 { 74 serial@80004500 {
81 linux,phandle = <4511>;
82 device_type = "serial"; 75 device_type = "serial";
83 compatible = "ns16550"; 76 compatible = "ns16550";
84 reg = <80004500 8>; 77 reg = <80004500 8>;
85 clock-frequency = <5d08d88>; 78 clock-frequency = <5d08d88>;
86 current-speed = <2580>; 79 current-speed = <2580>;
87 interrupts = <9 2>; 80 interrupts = <9 2>;
88 interrupt-parent = <4400>; 81 interrupt-parent = <&mpic>;
89 }; 82 };
90 83
91 serial@80004600 { 84 serial@80004600 {
92 linux,phandle = <4512>;
93 device_type = "serial"; 85 device_type = "serial";
94 compatible = "ns16550"; 86 compatible = "ns16550";
95 reg = <80004600 8>; 87 reg = <80004600 8>;
96 clock-frequency = <5d08d88>; 88 clock-frequency = <5d08d88>;
97 current-speed = <e100>; 89 current-speed = <e100>;
98 interrupts = <a 0>; 90 interrupts = <a 0>;
99 interrupt-parent = <4400>; 91 interrupt-parent = <&mpic>;
100 }; 92 };
101 93
102 pic@80040000 { 94 mpic: pic@80040000 {
103 linux,phandle = <4400>;
104 #interrupt-cells = <2>; 95 #interrupt-cells = <2>;
105 #address-cells = <0>; 96 #address-cells = <0>;
106 device_type = "open-pic"; 97 device_type = "open-pic";
@@ -111,7 +102,6 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts"
111 }; 102 };
112 103
113 pci@fec00000 { 104 pci@fec00000 {
114 linux,phandle = <4500>;
115 #address-cells = <3>; 105 #address-cells = <3>;
116 #size-cells = <2>; 106 #size-cells = <2>;
117 #interrupt-cells = <1>; 107 #interrupt-cells = <1>;
@@ -122,24 +112,24 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts"
122 02000000 0 80000000 80000000 0 70000000>; 112 02000000 0 80000000 80000000 0 70000000>;
123 bus-range = <0 ff>; 113 bus-range = <0 ff>;
124 clock-frequency = <7f28155>; 114 clock-frequency = <7f28155>;
125 interrupt-parent = <4400>; 115 interrupt-parent = <&mpic>;
126 interrupt-map-mask = <f800 0 0 7>; 116 interrupt-map-mask = <f800 0 0 7>;
127 interrupt-map = < 117 interrupt-map = <
128 /* IDSEL 11 - IRQ0 ETH */ 118 /* IDSEL 11 - IRQ0 ETH */
129 5800 0 0 1 4400 0 1 119 5800 0 0 1 &mpic 0 1
130 5800 0 0 2 4400 1 1 120 5800 0 0 2 &mpic 1 1
131 5800 0 0 3 4400 2 1 121 5800 0 0 3 &mpic 2 1
132 5800 0 0 4 4400 3 1 122 5800 0 0 4 &mpic 3 1
133 /* IDSEL 12 - IRQ1 IDE0 */ 123 /* IDSEL 12 - IRQ1 IDE0 */
134 6000 0 0 1 4400 1 1 124 6000 0 0 1 &mpic 1 1
135 6000 0 0 2 4400 2 1 125 6000 0 0 2 &mpic 2 1
136 6000 0 0 3 4400 3 1 126 6000 0 0 3 &mpic 3 1
137 6000 0 0 4 4400 0 1 127 6000 0 0 4 &mpic 0 1
138 /* IDSEL 14 - IRQ3 USB2.0 */ 128 /* IDSEL 14 - IRQ3 USB2.0 */
139 7000 0 0 1 4400 3 1 129 7000 0 0 1 &mpic 3 1
140 7000 0 0 2 4400 3 1 130 7000 0 0 2 &mpic 3 1
141 7000 0 0 3 4400 3 1 131 7000 0 0 3 &mpic 3 1
142 7000 0 0 4 4400 3 1 132 7000 0 0 4 &mpic 3 1
143 >; 133 >;
144 }; 134 };
145 }; 135 };
diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts b/arch/powerpc/boot/dts/kuroboxHG.dts
index 919eb29097db..5cf42dc022df 100644
--- a/arch/powerpc/boot/dts/kuroboxHG.dts
+++ b/arch/powerpc/boot/dts/kuroboxHG.dts
@@ -21,19 +21,16 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts"
21 */ 21 */
22 22
23/ { 23/ {
24 linux,phandle = <1000>;
25 model = "KuroboxHG"; 24 model = "KuroboxHG";
26 compatible = "linkstation"; 25 compatible = "linkstation";
27 #address-cells = <1>; 26 #address-cells = <1>;
28 #size-cells = <1>; 27 #size-cells = <1>;
29 28
30 cpus { 29 cpus {
31 linux,phandle = <2000>;
32 #address-cells = <1>; 30 #address-cells = <1>;
33 #size-cells = <0>; 31 #size-cells = <0>;
34 32
35 PowerPC,603e { /* Really 8241 */ 33 PowerPC,603e { /* Really 8241 */
36 linux,phandle = <2100>;
37 device_type = "cpu"; 34 device_type = "cpu";
38 reg = <0>; 35 reg = <0>;
39 clock-frequency = <fdad680>; /* Fixed by bootwrapper */ 36 clock-frequency = <fdad680>; /* Fixed by bootwrapper */
@@ -48,13 +45,11 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts"
48 }; 45 };
49 46
50 memory { 47 memory {
51 linux,phandle = <3000>;
52 device_type = "memory"; 48 device_type = "memory";
53 reg = <00000000 08000000>; 49 reg = <00000000 08000000>;
54 }; 50 };
55 51
56 soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ 52 soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */
57 linux,phandle = <4000>;
58 #address-cells = <1>; 53 #address-cells = <1>;
59 #size-cells = <1>; 54 #size-cells = <1>;
60 #interrupt-cells = <2>; 55 #interrupt-cells = <2>;
@@ -69,38 +64,35 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts"
69 fef00000 fef00000 00100000>; /* pci iack */ 64 fef00000 fef00000 00100000>; /* pci iack */
70 65
71 i2c@80003000 { 66 i2c@80003000 {
72 linux,phandle = <4300>;
73 device_type = "i2c"; 67 device_type = "i2c";
74 compatible = "fsl-i2c"; 68 compatible = "fsl-i2c";
75 reg = <80003000 1000>; 69 reg = <80003000 1000>;
76 interrupts = <5 2>; 70 interrupts = <5 2>;
77 interrupt-parent = <4400>; 71 interrupt-parent = <&mpic>;
78 }; 72 };
79 73
80 serial@80004500 { 74 serial@80004500 {
81 linux,phandle = <4511>;
82 device_type = "serial"; 75 device_type = "serial";
83 compatible = "ns16550"; 76 compatible = "ns16550";
84 reg = <80004500 8>; 77 reg = <80004500 8>;
85 clock-frequency = <7c044a8>; 78 clock-frequency = <7c044a8>;
86 current-speed = <2580>; 79 current-speed = <2580>;
87 interrupts = <9 2>; 80 interrupts = <9 2>;
88 interrupt-parent = <4400>; 81 interrupt-parent = <&mpic>;
89 }; 82 };
90 83
91 serial@80004600 { 84 serial@80004600 {
92 linux,phandle = <4512>;
93 device_type = "serial"; 85 device_type = "serial";
94 compatible = "ns16550"; 86 compatible = "ns16550";
95 reg = <80004600 8>; 87 reg = <80004600 8>;
96 clock-frequency = <7c044a8>; 88 clock-frequency = <7c044a8>;
97 current-speed = <e100>; 89 current-speed = <e100>;
98 interrupts = <a 0>; 90 interrupts = <a 0>;
99 interrupt-parent = <4400>; 91 interrupt-parent = <&mpic>;
100 }; 92 };
101 93
102 pic@80040000 { 94 mpic: pic@80040000 {
103 linux,phandle = <4400>; 95 interrupt-parent = <&mpic>;
104 #interrupt-cells = <2>; 96 #interrupt-cells = <2>;
105 #address-cells = <0>; 97 #address-cells = <0>;
106 device_type = "open-pic"; 98 device_type = "open-pic";
@@ -111,7 +103,6 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts"
111 }; 103 };
112 104
113 pci@fec00000 { 105 pci@fec00000 {
114 linux,phandle = <4500>;
115 #address-cells = <3>; 106 #address-cells = <3>;
116 #size-cells = <2>; 107 #size-cells = <2>;
117 #interrupt-cells = <1>; 108 #interrupt-cells = <1>;
@@ -122,24 +113,24 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts"
122 02000000 0 80000000 80000000 0 70000000>; 113 02000000 0 80000000 80000000 0 70000000>;
123 bus-range = <0 ff>; 114 bus-range = <0 ff>;
124 clock-frequency = <7f28155>; 115 clock-frequency = <7f28155>;
125 interrupt-parent = <4400>; 116 interrupt-parent = <&mpic>;
126 interrupt-map-mask = <f800 0 0 7>; 117 interrupt-map-mask = <f800 0 0 7>;
127 interrupt-map = < 118 interrupt-map = <
128 /* IDSEL 11 - IRQ0 ETH */ 119 /* IDSEL 11 - IRQ0 ETH */
129 5800 0 0 1 4400 0 1 120 5800 0 0 1 &mpic 0 1
130 5800 0 0 2 4400 1 1 121 5800 0 0 2 &mpic 1 1
131 5800 0 0 3 4400 2 1 122 5800 0 0 3 &mpic 2 1
132 5800 0 0 4 4400 3 1 123 5800 0 0 4 &mpic 3 1
133 /* IDSEL 12 - IRQ1 IDE0 */ 124 /* IDSEL 12 - IRQ1 IDE0 */
134 6000 0 0 1 4400 1 1 125 6000 0 0 1 &mpic 1 1
135 6000 0 0 2 4400 2 1 126 6000 0 0 2 &mpic 2 1
136 6000 0 0 3 4400 3 1 127 6000 0 0 3 &mpic 3 1
137 6000 0 0 4 4400 0 1 128 6000 0 0 4 &mpic 0 1
138 /* IDSEL 14 - IRQ3 USB2.0 */ 129 /* IDSEL 14 - IRQ3 USB2.0 */
139 7000 0 0 1 4400 3 1 130 7000 0 0 1 &mpic 3 1
140 7000 0 0 2 4400 3 1 131 7000 0 0 2 &mpic 3 1
141 7000 0 0 3 4400 3 1 132 7000 0 0 3 &mpic 3 1
142 7000 0 0 4 4400 3 1 133 7000 0 0 4 &mpic 3 1
143 >; 134 >;
144 }; 135 };
145 }; 136 };
diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts
index e13ac6ef05a9..d29308fe4c24 100644
--- a/arch/powerpc/boot/dts/lite5200.dts
+++ b/arch/powerpc/boot/dts/lite5200.dts
@@ -49,7 +49,7 @@
49 soc5200@f0000000 { 49 soc5200@f0000000 {
50 model = "fsl,mpc5200"; 50 model = "fsl,mpc5200";
51 compatible = "mpc5200"; 51 compatible = "mpc5200";
52 revision = "" // from bootloader 52 revision = ""; // from bootloader
53 #interrupt-cells = <3>; 53 #interrupt-cells = <3>;
54 device_type = "soc"; 54 device_type = "soc";
55 ranges = <0 f0000000 f0010000>; 55 ranges = <0 f0000000 f0010000>;
@@ -62,9 +62,8 @@
62 reg = <200 38>; 62 reg = <200 38>;
63 }; 63 };
64 64
65 pic@500 { 65 mpc5200_pic: pic@500 {
66 // 5200 interrupts are encoded into two levels; 66 // 5200 interrupts are encoded into two levels;
67 linux,phandle = <500>;
68 interrupt-controller; 67 interrupt-controller;
69 #interrupt-cells = <3>; 68 #interrupt-cells = <3>;
70 device_type = "interrupt-controller"; 69 device_type = "interrupt-controller";
@@ -79,7 +78,7 @@
79 cell-index = <0>; 78 cell-index = <0>;
80 reg = <600 10>; 79 reg = <600 10>;
81 interrupts = <1 9 0>; 80 interrupts = <1 9 0>;
82 interrupt-parent = <500>; 81 interrupt-parent = <&mpc5200_pic>;
83 has-wdt; 82 has-wdt;
84 }; 83 };
85 84
@@ -89,7 +88,7 @@
89 cell-index = <1>; 88 cell-index = <1>;
90 reg = <610 10>; 89 reg = <610 10>;
91 interrupts = <1 a 0>; 90 interrupts = <1 a 0>;
92 interrupt-parent = <500>; 91 interrupt-parent = <&mpc5200_pic>;
93 }; 92 };
94 93
95 gpt@620 { // General Purpose Timer 94 gpt@620 { // General Purpose Timer
@@ -98,7 +97,7 @@
98 cell-index = <2>; 97 cell-index = <2>;
99 reg = <620 10>; 98 reg = <620 10>;
100 interrupts = <1 b 0>; 99 interrupts = <1 b 0>;
101 interrupt-parent = <500>; 100 interrupt-parent = <&mpc5200_pic>;
102 }; 101 };
103 102
104 gpt@630 { // General Purpose Timer 103 gpt@630 { // General Purpose Timer
@@ -107,7 +106,7 @@
107 cell-index = <3>; 106 cell-index = <3>;
108 reg = <630 10>; 107 reg = <630 10>;
109 interrupts = <1 c 0>; 108 interrupts = <1 c 0>;
110 interrupt-parent = <500>; 109 interrupt-parent = <&mpc5200_pic>;
111 }; 110 };
112 111
113 gpt@640 { // General Purpose Timer 112 gpt@640 { // General Purpose Timer
@@ -116,7 +115,7 @@
116 cell-index = <4>; 115 cell-index = <4>;
117 reg = <640 10>; 116 reg = <640 10>;
118 interrupts = <1 d 0>; 117 interrupts = <1 d 0>;
119 interrupt-parent = <500>; 118 interrupt-parent = <&mpc5200_pic>;
120 }; 119 };
121 120
122 gpt@650 { // General Purpose Timer 121 gpt@650 { // General Purpose Timer
@@ -125,7 +124,7 @@
125 cell-index = <5>; 124 cell-index = <5>;
126 reg = <650 10>; 125 reg = <650 10>;
127 interrupts = <1 e 0>; 126 interrupts = <1 e 0>;
128 interrupt-parent = <500>; 127 interrupt-parent = <&mpc5200_pic>;
129 }; 128 };
130 129
131 gpt@660 { // General Purpose Timer 130 gpt@660 { // General Purpose Timer
@@ -134,7 +133,7 @@
134 cell-index = <6>; 133 cell-index = <6>;
135 reg = <660 10>; 134 reg = <660 10>;
136 interrupts = <1 f 0>; 135 interrupts = <1 f 0>;
137 interrupt-parent = <500>; 136 interrupt-parent = <&mpc5200_pic>;
138 }; 137 };
139 138
140 gpt@670 { // General Purpose Timer 139 gpt@670 { // General Purpose Timer
@@ -143,7 +142,7 @@
143 cell-index = <7>; 142 cell-index = <7>;
144 reg = <670 10>; 143 reg = <670 10>;
145 interrupts = <1 10 0>; 144 interrupts = <1 10 0>;
146 interrupt-parent = <500>; 145 interrupt-parent = <&mpc5200_pic>;
147 }; 146 };
148 147
149 rtc@800 { // Real time clock 148 rtc@800 { // Real time clock
@@ -151,7 +150,7 @@
151 device_type = "rtc"; 150 device_type = "rtc";
152 reg = <800 100>; 151 reg = <800 100>;
153 interrupts = <1 5 0 1 6 0>; 152 interrupts = <1 5 0 1 6 0>;
154 interrupt-parent = <500>; 153 interrupt-parent = <&mpc5200_pic>;
155 }; 154 };
156 155
157 mscan@900 { 156 mscan@900 {
@@ -159,7 +158,7 @@
159 compatible = "mpc5200-mscan"; 158 compatible = "mpc5200-mscan";
160 cell-index = <0>; 159 cell-index = <0>;
161 interrupts = <2 11 0>; 160 interrupts = <2 11 0>;
162 interrupt-parent = <500>; 161 interrupt-parent = <&mpc5200_pic>;
163 reg = <900 80>; 162 reg = <900 80>;
164 }; 163 };
165 164
@@ -168,7 +167,7 @@
168 compatible = "mpc5200-mscan"; 167 compatible = "mpc5200-mscan";
169 cell-index = <1>; 168 cell-index = <1>;
170 interrupts = <2 12 0>; 169 interrupts = <2 12 0>;
171 interrupt-parent = <500>; 170 interrupt-parent = <&mpc5200_pic>;
172 reg = <980 80>; 171 reg = <980 80>;
173 }; 172 };
174 173
@@ -176,14 +175,14 @@
176 compatible = "mpc5200-gpio"; 175 compatible = "mpc5200-gpio";
177 reg = <b00 40>; 176 reg = <b00 40>;
178 interrupts = <1 7 0>; 177 interrupts = <1 7 0>;
179 interrupt-parent = <500>; 178 interrupt-parent = <&mpc5200_pic>;
180 }; 179 };
181 180
182 gpio-wkup@c00 { 181 gpio-wkup@c00 {
183 compatible = "mpc5200-gpio-wkup"; 182 compatible = "mpc5200-gpio-wkup";
184 reg = <c00 40>; 183 reg = <c00 40>;
185 interrupts = <1 8 0 0 3 0>; 184 interrupts = <1 8 0 0 3 0>;
186 interrupt-parent = <500>; 185 interrupt-parent = <&mpc5200_pic>;
187 }; 186 };
188 187
189 pci@0d00 { 188 pci@0d00 {
@@ -194,13 +193,13 @@
194 compatible = "mpc5200-pci"; 193 compatible = "mpc5200-pci";
195 reg = <d00 100>; 194 reg = <d00 100>;
196 interrupt-map-mask = <f800 0 0 7>; 195 interrupt-map-mask = <f800 0 0 7>;
197 interrupt-map = <c000 0 0 1 500 0 0 3 196 interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3
198 c000 0 0 2 500 0 0 3 197 c000 0 0 2 &mpc5200_pic 0 0 3
199 c000 0 0 3 500 0 0 3 198 c000 0 0 3 &mpc5200_pic 0 0 3
200 c000 0 0 4 500 0 0 3>; 199 c000 0 0 4 &mpc5200_pic 0 0 3>;
201 clock-frequency = <0>; // From boot loader 200 clock-frequency = <0>; // From boot loader
202 interrupts = <2 8 0 2 9 0 2 a 0>; 201 interrupts = <2 8 0 2 9 0 2 a 0>;
203 interrupt-parent = <500>; 202 interrupt-parent = <&mpc5200_pic>;
204 bus-range = <0 0>; 203 bus-range = <0 0>;
205 ranges = <42000000 0 80000000 80000000 0 20000000 204 ranges = <42000000 0 80000000 80000000 0 20000000
206 02000000 0 a0000000 a0000000 0 10000000 205 02000000 0 a0000000 a0000000 0 10000000
@@ -212,7 +211,7 @@
212 compatible = "mpc5200-spi"; 211 compatible = "mpc5200-spi";
213 reg = <f00 20>; 212 reg = <f00 20>;
214 interrupts = <2 d 0 2 e 0>; 213 interrupts = <2 d 0 2 e 0>;
215 interrupt-parent = <500>; 214 interrupt-parent = <&mpc5200_pic>;
216 }; 215 };
217 216
218 usb@1000 { 217 usb@1000 {
@@ -220,7 +219,7 @@
220 compatible = "mpc5200-ohci\0ohci-be"; 219 compatible = "mpc5200-ohci\0ohci-be";
221 reg = <1000 ff>; 220 reg = <1000 ff>;
222 interrupts = <2 6 0>; 221 interrupts = <2 6 0>;
223 interrupt-parent = <500>; 222 interrupt-parent = <&mpc5200_pic>;
224 }; 223 };
225 224
226 bestcomm@1200 { 225 bestcomm@1200 {
@@ -231,7 +230,7 @@
231 3 4 0 3 5 0 3 6 0 3 7 0 230 3 4 0 3 5 0 3 6 0 3 7 0
232 3 8 0 3 9 0 3 a 0 3 b 0 231 3 8 0 3 9 0 3 a 0 3 b 0
233 3 c 0 3 d 0 3 e 0 3 f 0>; 232 3 c 0 3 d 0 3 e 0 3 f 0>;
234 interrupt-parent = <500>; 233 interrupt-parent = <&mpc5200_pic>;
235 }; 234 };
236 235
237 xlb@1f00 { 236 xlb@1f00 {
@@ -246,7 +245,7 @@
246 cell-index = <0>; 245 cell-index = <0>;
247 reg = <2000 100>; 246 reg = <2000 100>;
248 interrupts = <2 1 0>; 247 interrupts = <2 1 0>;
249 interrupt-parent = <500>; 248 interrupt-parent = <&mpc5200_pic>;
250 }; 249 };
251 250
252 // PSC2 in ac97 mode example 251 // PSC2 in ac97 mode example
@@ -256,7 +255,7 @@
256 // cell-index = <1>; 255 // cell-index = <1>;
257 // reg = <2200 100>; 256 // reg = <2200 100>;
258 // interrupts = <2 2 0>; 257 // interrupts = <2 2 0>;
259 // interrupt-parent = <500>; 258 // interrupt-parent = <&mpc5200_pic>;
260 //}; 259 //};
261 260
262 // PSC3 in CODEC mode example 261 // PSC3 in CODEC mode example
@@ -266,7 +265,7 @@
266 // cell-index = <2>; 265 // cell-index = <2>;
267 // reg = <2400 100>; 266 // reg = <2400 100>;
268 // interrupts = <2 3 0>; 267 // interrupts = <2 3 0>;
269 // interrupt-parent = <500>; 268 // interrupt-parent = <&mpc5200_pic>;
270 //}; 269 //};
271 270
272 // PSC4 in uart mode example 271 // PSC4 in uart mode example
@@ -276,7 +275,7 @@
276 // cell-index = <3>; 275 // cell-index = <3>;
277 // reg = <2600 100>; 276 // reg = <2600 100>;
278 // interrupts = <2 b 0>; 277 // interrupts = <2 b 0>;
279 // interrupt-parent = <500>; 278 // interrupt-parent = <&mpc5200_pic>;
280 //}; 279 //};
281 280
282 // PSC5 in uart mode example 281 // PSC5 in uart mode example
@@ -286,7 +285,7 @@
286 // cell-index = <4>; 285 // cell-index = <4>;
287 // reg = <2800 100>; 286 // reg = <2800 100>;
288 // interrupts = <2 c 0>; 287 // interrupts = <2 c 0>;
289 // interrupt-parent = <500>; 288 // interrupt-parent = <&mpc5200_pic>;
290 //}; 289 //};
291 290
292 // PSC6 in spi mode example 291 // PSC6 in spi mode example
@@ -296,7 +295,7 @@
296 // cell-index = <5>; 295 // cell-index = <5>;
297 // reg = <2c00 100>; 296 // reg = <2c00 100>;
298 // interrupts = <2 4 0>; 297 // interrupts = <2 4 0>;
299 // interrupt-parent = <500>; 298 // interrupt-parent = <&mpc5200_pic>;
300 //}; 299 //};
301 300
302 ethernet@3000 { 301 ethernet@3000 {
@@ -305,7 +304,7 @@
305 reg = <3000 800>; 304 reg = <3000 800>;
306 mac-address = [ 02 03 04 05 06 07 ]; // Bad! 305 mac-address = [ 02 03 04 05 06 07 ]; // Bad!
307 interrupts = <2 5 0>; 306 interrupts = <2 5 0>;
308 interrupt-parent = <500>; 307 interrupt-parent = <&mpc5200_pic>;
309 }; 308 };
310 309
311 ata@3a00 { 310 ata@3a00 {
@@ -313,7 +312,7 @@
313 compatible = "mpc5200-ata"; 312 compatible = "mpc5200-ata";
314 reg = <3a00 100>; 313 reg = <3a00 100>;
315 interrupts = <2 7 0>; 314 interrupts = <2 7 0>;
316 interrupt-parent = <500>; 315 interrupt-parent = <&mpc5200_pic>;
317 }; 316 };
318 317
319 i2c@3d00 { 318 i2c@3d00 {
@@ -322,7 +321,7 @@
322 cell-index = <0>; 321 cell-index = <0>;
323 reg = <3d00 40>; 322 reg = <3d00 40>;
324 interrupts = <2 f 0>; 323 interrupts = <2 f 0>;
325 interrupt-parent = <500>; 324 interrupt-parent = <&mpc5200_pic>;
326 fsl5200-clocking; 325 fsl5200-clocking;
327 }; 326 };
328 327
@@ -332,7 +331,7 @@
332 cell-index = <1>; 331 cell-index = <1>;
333 reg = <3d40 40>; 332 reg = <3d40 40>;
334 interrupts = <2 10 0>; 333 interrupts = <2 10 0>;
335 interrupt-parent = <500>; 334 interrupt-parent = <&mpc5200_pic>;
336 fsl5200-clocking; 335 fsl5200-clocking;
337 }; 336 };
338 sram@8000 { 337 sram@8000 {
diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts
index 00211b39a342..f242531f0451 100644
--- a/arch/powerpc/boot/dts/lite5200b.dts
+++ b/arch/powerpc/boot/dts/lite5200b.dts
@@ -62,9 +62,8 @@
62 reg = <200 38>; 62 reg = <200 38>;
63 }; 63 };
64 64
65 pic@500 { 65 mpc5200_pic: pic@500 {
66 // 5200 interrupts are encoded into two levels; 66 // 5200 interrupts are encoded into two levels;
67 linux,phandle = <500>;
68 interrupt-controller; 67 interrupt-controller;
69 #interrupt-cells = <3>; 68 #interrupt-cells = <3>;
70 device_type = "interrupt-controller"; 69 device_type = "interrupt-controller";
@@ -79,7 +78,7 @@
79 cell-index = <0>; 78 cell-index = <0>;
80 reg = <600 10>; 79 reg = <600 10>;
81 interrupts = <1 9 0>; 80 interrupts = <1 9 0>;
82 interrupt-parent = <500>; 81 interrupt-parent = <&mpc5200_pic>;
83 has-wdt; 82 has-wdt;
84 }; 83 };
85 84
@@ -89,7 +88,7 @@
89 cell-index = <1>; 88 cell-index = <1>;
90 reg = <610 10>; 89 reg = <610 10>;
91 interrupts = <1 a 0>; 90 interrupts = <1 a 0>;
92 interrupt-parent = <500>; 91 interrupt-parent = <&mpc5200_pic>;
93 }; 92 };
94 93
95 gpt@620 { // General Purpose Timer 94 gpt@620 { // General Purpose Timer
@@ -98,7 +97,7 @@
98 cell-index = <2>; 97 cell-index = <2>;
99 reg = <620 10>; 98 reg = <620 10>;
100 interrupts = <1 b 0>; 99 interrupts = <1 b 0>;
101 interrupt-parent = <500>; 100 interrupt-parent = <&mpc5200_pic>;
102 }; 101 };
103 102
104 gpt@630 { // General Purpose Timer 103 gpt@630 { // General Purpose Timer
@@ -107,7 +106,7 @@
107 cell-index = <3>; 106 cell-index = <3>;
108 reg = <630 10>; 107 reg = <630 10>;
109 interrupts = <1 c 0>; 108 interrupts = <1 c 0>;
110 interrupt-parent = <500>; 109 interrupt-parent = <&mpc5200_pic>;
111 }; 110 };
112 111
113 gpt@640 { // General Purpose Timer 112 gpt@640 { // General Purpose Timer
@@ -116,7 +115,7 @@
116 cell-index = <4>; 115 cell-index = <4>;
117 reg = <640 10>; 116 reg = <640 10>;
118 interrupts = <1 d 0>; 117 interrupts = <1 d 0>;
119 interrupt-parent = <500>; 118 interrupt-parent = <&mpc5200_pic>;
120 }; 119 };
121 120
122 gpt@650 { // General Purpose Timer 121 gpt@650 { // General Purpose Timer
@@ -125,7 +124,7 @@
125 cell-index = <5>; 124 cell-index = <5>;
126 reg = <650 10>; 125 reg = <650 10>;
127 interrupts = <1 e 0>; 126 interrupts = <1 e 0>;
128 interrupt-parent = <500>; 127 interrupt-parent = <&mpc5200_pic>;
129 }; 128 };
130 129
131 gpt@660 { // General Purpose Timer 130 gpt@660 { // General Purpose Timer
@@ -134,7 +133,7 @@
134 cell-index = <6>; 133 cell-index = <6>;
135 reg = <660 10>; 134 reg = <660 10>;
136 interrupts = <1 f 0>; 135 interrupts = <1 f 0>;
137 interrupt-parent = <500>; 136 interrupt-parent = <&mpc5200_pic>;
138 }; 137 };
139 138
140 gpt@670 { // General Purpose Timer 139 gpt@670 { // General Purpose Timer
@@ -143,7 +142,7 @@
143 cell-index = <7>; 142 cell-index = <7>;
144 reg = <670 10>; 143 reg = <670 10>;
145 interrupts = <1 10 0>; 144 interrupts = <1 10 0>;
146 interrupt-parent = <500>; 145 interrupt-parent = <&mpc5200_pic>;
147 }; 146 };
148 147
149 rtc@800 { // Real time clock 148 rtc@800 { // Real time clock
@@ -151,7 +150,7 @@
151 device_type = "rtc"; 150 device_type = "rtc";
152 reg = <800 100>; 151 reg = <800 100>;
153 interrupts = <1 5 0 1 6 0>; 152 interrupts = <1 5 0 1 6 0>;
154 interrupt-parent = <500>; 153 interrupt-parent = <&mpc5200_pic>;
155 }; 154 };
156 155
157 mscan@900 { 156 mscan@900 {
@@ -159,7 +158,7 @@
159 compatible = "mpc5200b-mscan\0mpc5200-mscan"; 158 compatible = "mpc5200b-mscan\0mpc5200-mscan";
160 cell-index = <0>; 159 cell-index = <0>;
161 interrupts = <2 11 0>; 160 interrupts = <2 11 0>;
162 interrupt-parent = <500>; 161 interrupt-parent = <&mpc5200_pic>;
163 reg = <900 80>; 162 reg = <900 80>;
164 }; 163 };
165 164
@@ -168,7 +167,7 @@
168 compatible = "mpc5200b-mscan\0mpc5200-mscan"; 167 compatible = "mpc5200b-mscan\0mpc5200-mscan";
169 cell-index = <1>; 168 cell-index = <1>;
170 interrupts = <2 12 0>; 169 interrupts = <2 12 0>;
171 interrupt-parent = <500>; 170 interrupt-parent = <&mpc5200_pic>;
172 reg = <980 80>; 171 reg = <980 80>;
173 }; 172 };
174 173
@@ -176,14 +175,14 @@
176 compatible = "mpc5200b-gpio\0mpc5200-gpio"; 175 compatible = "mpc5200b-gpio\0mpc5200-gpio";
177 reg = <b00 40>; 176 reg = <b00 40>;
178 interrupts = <1 7 0>; 177 interrupts = <1 7 0>;
179 interrupt-parent = <500>; 178 interrupt-parent = <&mpc5200_pic>;
180 }; 179 };
181 180
182 gpio-wkup@c00 { 181 gpio-wkup@c00 {
183 compatible = "mpc5200b-gpio-wkup\0mpc5200-gpio-wkup"; 182 compatible = "mpc5200b-gpio-wkup\0mpc5200-gpio-wkup";
184 reg = <c00 40>; 183 reg = <c00 40>;
185 interrupts = <1 8 0 0 3 0>; 184 interrupts = <1 8 0 0 3 0>;
186 interrupt-parent = <500>; 185 interrupt-parent = <&mpc5200_pic>;
187 }; 186 };
188 187
189 pci@0d00 { 188 pci@0d00 {
@@ -194,18 +193,18 @@
194 compatible = "mpc5200b-pci\0mpc5200-pci"; 193 compatible = "mpc5200b-pci\0mpc5200-pci";
195 reg = <d00 100>; 194 reg = <d00 100>;
196 interrupt-map-mask = <f800 0 0 7>; 195 interrupt-map-mask = <f800 0 0 7>;
197 interrupt-map = <c000 0 0 1 500 0 0 3 // 1st slot 196 interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot
198 c000 0 0 2 500 1 1 3 197 c000 0 0 2 &mpc5200_pic 1 1 3
199 c000 0 0 3 500 1 2 3 198 c000 0 0 3 &mpc5200_pic 1 2 3
200 c000 0 0 4 500 1 3 3 199 c000 0 0 4 &mpc5200_pic 1 3 3
201 200
202 c800 0 0 1 500 1 1 3 // 2nd slot 201 c800 0 0 1 &mpc5200_pic 1 1 3 // 2nd slot
203 c800 0 0 2 500 1 2 3 202 c800 0 0 2 &mpc5200_pic 1 2 3
204 c800 0 0 3 500 1 3 3 203 c800 0 0 3 &mpc5200_pic 1 3 3
205 c800 0 0 4 500 0 0 3>; 204 c800 0 0 4 &mpc5200_pic 0 0 3>;
206 clock-frequency = <0>; // From boot loader 205 clock-frequency = <0>; // From boot loader
207 interrupts = <2 8 0 2 9 0 2 a 0>; 206 interrupts = <2 8 0 2 9 0 2 a 0>;
208 interrupt-parent = <500>; 207 interrupt-parent = <&mpc5200_pic>;
209 bus-range = <0 0>; 208 bus-range = <0 0>;
210 ranges = <42000000 0 80000000 80000000 0 20000000 209 ranges = <42000000 0 80000000 80000000 0 20000000
211 02000000 0 a0000000 a0000000 0 10000000 210 02000000 0 a0000000 a0000000 0 10000000
@@ -217,7 +216,7 @@
217 compatible = "mpc5200b-spi\0mpc5200-spi"; 216 compatible = "mpc5200b-spi\0mpc5200-spi";
218 reg = <f00 20>; 217 reg = <f00 20>;
219 interrupts = <2 d 0 2 e 0>; 218 interrupts = <2 d 0 2 e 0>;
220 interrupt-parent = <500>; 219 interrupt-parent = <&mpc5200_pic>;
221 }; 220 };
222 221
223 usb@1000 { 222 usb@1000 {
@@ -225,7 +224,7 @@
225 compatible = "mpc5200b-ohci\0mpc5200-ohci\0ohci-be"; 224 compatible = "mpc5200b-ohci\0mpc5200-ohci\0ohci-be";
226 reg = <1000 ff>; 225 reg = <1000 ff>;
227 interrupts = <2 6 0>; 226 interrupts = <2 6 0>;
228 interrupt-parent = <500>; 227 interrupt-parent = <&mpc5200_pic>;
229 }; 228 };
230 229
231 bestcomm@1200 { 230 bestcomm@1200 {
@@ -236,7 +235,7 @@
236 3 4 0 3 5 0 3 6 0 3 7 0 235 3 4 0 3 5 0 3 6 0 3 7 0
237 3 8 0 3 9 0 3 a 0 3 b 0 236 3 8 0 3 9 0 3 a 0 3 b 0
238 3 c 0 3 d 0 3 e 0 3 f 0>; 237 3 c 0 3 d 0 3 e 0 3 f 0>;
239 interrupt-parent = <500>; 238 interrupt-parent = <&mpc5200_pic>;
240 }; 239 };
241 240
242 xlb@1f00 { 241 xlb@1f00 {
@@ -251,7 +250,7 @@
251 cell-index = <0>; 250 cell-index = <0>;
252 reg = <2000 100>; 251 reg = <2000 100>;
253 interrupts = <2 1 0>; 252 interrupts = <2 1 0>;
254 interrupt-parent = <500>; 253 interrupt-parent = <&mpc5200_pic>;
255 }; 254 };
256 255
257 // PSC2 in ac97 mode example 256 // PSC2 in ac97 mode example
@@ -261,7 +260,7 @@
261 // cell-index = <1>; 260 // cell-index = <1>;
262 // reg = <2200 100>; 261 // reg = <2200 100>;
263 // interrupts = <2 2 0>; 262 // interrupts = <2 2 0>;
264 // interrupt-parent = <500>; 263 // interrupt-parent = <&mpc5200_pic>;
265 //}; 264 //};
266 265
267 // PSC3 in CODEC mode example 266 // PSC3 in CODEC mode example
@@ -271,7 +270,7 @@
271 // cell-index = <2>; 270 // cell-index = <2>;
272 // reg = <2400 100>; 271 // reg = <2400 100>;
273 // interrupts = <2 3 0>; 272 // interrupts = <2 3 0>;
274 // interrupt-parent = <500>; 273 // interrupt-parent = <&mpc5200_pic>;
275 //}; 274 //};
276 275
277 // PSC4 in uart mode example 276 // PSC4 in uart mode example
@@ -281,7 +280,7 @@
281 // cell-index = <3>; 280 // cell-index = <3>;
282 // reg = <2600 100>; 281 // reg = <2600 100>;
283 // interrupts = <2 b 0>; 282 // interrupts = <2 b 0>;
284 // interrupt-parent = <500>; 283 // interrupt-parent = <&mpc5200_pic>;
285 //}; 284 //};
286 285
287 // PSC5 in uart mode example 286 // PSC5 in uart mode example
@@ -291,7 +290,7 @@
291 // cell-index = <4>; 290 // cell-index = <4>;
292 // reg = <2800 100>; 291 // reg = <2800 100>;
293 // interrupts = <2 c 0>; 292 // interrupts = <2 c 0>;
294 // interrupt-parent = <500>; 293 // interrupt-parent = <&mpc5200_pic>;
295 //}; 294 //};
296 295
297 // PSC6 in spi mode example 296 // PSC6 in spi mode example
@@ -301,7 +300,7 @@
301 // cell-index = <5>; 300 // cell-index = <5>;
302 // reg = <2c00 100>; 301 // reg = <2c00 100>;
303 // interrupts = <2 4 0>; 302 // interrupts = <2 4 0>;
304 // interrupt-parent = <500>; 303 // interrupt-parent = <&mpc5200_pic>;
305 //}; 304 //};
306 305
307 ethernet@3000 { 306 ethernet@3000 {
@@ -310,7 +309,7 @@
310 reg = <3000 800>; 309 reg = <3000 800>;
311 mac-address = [ 02 03 04 05 06 07 ]; // Bad! 310 mac-address = [ 02 03 04 05 06 07 ]; // Bad!
312 interrupts = <2 5 0>; 311 interrupts = <2 5 0>;
313 interrupt-parent = <500>; 312 interrupt-parent = <&mpc5200_pic>;
314 }; 313 };
315 314
316 ata@3a00 { 315 ata@3a00 {
@@ -318,7 +317,7 @@
318 compatible = "mpc5200b-ata\0mpc5200-ata"; 317 compatible = "mpc5200b-ata\0mpc5200-ata";
319 reg = <3a00 100>; 318 reg = <3a00 100>;
320 interrupts = <2 7 0>; 319 interrupts = <2 7 0>;
321 interrupt-parent = <500>; 320 interrupt-parent = <&mpc5200_pic>;
322 }; 321 };
323 322
324 i2c@3d00 { 323 i2c@3d00 {
@@ -327,7 +326,7 @@
327 cell-index = <0>; 326 cell-index = <0>;
328 reg = <3d00 40>; 327 reg = <3d00 40>;
329 interrupts = <2 f 0>; 328 interrupts = <2 f 0>;
330 interrupt-parent = <500>; 329 interrupt-parent = <&mpc5200_pic>;
331 fsl5200-clocking; 330 fsl5200-clocking;
332 }; 331 };
333 332
@@ -337,7 +336,7 @@
337 cell-index = <1>; 336 cell-index = <1>;
338 reg = <3d40 40>; 337 reg = <3d40 40>;
339 interrupts = <2 10 0>; 338 interrupts = <2 10 0>;
340 interrupt-parent = <500>; 339 interrupt-parent = <&mpc5200_pic>;
341 fsl5200-clocking; 340 fsl5200-clocking;
342 }; 341 };
343 sram@8000 { 342 sram@8000 {
diff --git a/arch/powerpc/boot/dts/mpc7448hpc2.dts b/arch/powerpc/boot/dts/mpc7448hpc2.dts
index 6fa3754f293a..765c306ecf80 100644
--- a/arch/powerpc/boot/dts/mpc7448hpc2.dts
+++ b/arch/powerpc/boot/dts/mpc7448hpc2.dts
@@ -16,12 +16,10 @@
16 compatible = "mpc74xx"; 16 compatible = "mpc74xx";
17 #address-cells = <1>; 17 #address-cells = <1>;
18 #size-cells = <1>; 18 #size-cells = <1>;
19 linux,phandle = <100>;
20 19
21 cpus { 20 cpus {
22 #address-cells = <1>; 21 #address-cells = <1>;
23 #size-cells =<0>; 22 #size-cells =<0>;
24 linux,phandle = <200>;
25 23
26 PowerPC,7448@0 { 24 PowerPC,7448@0 {
27 device_type = "cpu"; 25 device_type = "cpu";
@@ -34,13 +32,11 @@
34 clock-frequency = <0>; // From U-Boot 32 clock-frequency = <0>; // From U-Boot
35 bus-frequency = <0>; // From U-Boot 33 bus-frequency = <0>; // From U-Boot
36 32-bit; 34 32-bit;
37 linux,phandle = <201>;
38 }; 35 };
39 }; 36 };
40 37
41 memory { 38 memory {
42 device_type = "memory"; 39 device_type = "memory";
43 linux,phandle = <300>;
44 reg = <00000000 20000000 // DDR2 512M at 0 40 reg = <00000000 20000000 // DDR2 512M at 0
45 >; 41 >;
46 }; 42 };
@@ -55,7 +51,7 @@
55 bus-frequency = <0>; 51 bus-frequency = <0>;
56 52
57 i2c@7000 { 53 i2c@7000 {
58 interrupt-parent = <7400>; 54 interrupt-parent = <&mpic>;
59 interrupts = <E 0>; 55 interrupts = <E 0>;
60 reg = <7000 400>; 56 reg = <7000 400>;
61 device_type = "i2c"; 57 device_type = "i2c";
@@ -66,18 +62,16 @@
66 device_type = "mdio"; 62 device_type = "mdio";
67 compatible = "tsi-ethernet"; 63 compatible = "tsi-ethernet";
68 64
69 ethernet-phy@6000 { 65 phy8: ethernet-phy@6000 {
70 linux,phandle = <6000>; 66 interrupt-parent = <&mpic>;
71 interrupt-parent = <7400>;
72 interrupts = <2 1>; 67 interrupts = <2 1>;
73 reg = <6000 50>; 68 reg = <6000 50>;
74 phy-id = <8>; 69 phy-id = <8>;
75 device_type = "ethernet-phy"; 70 device_type = "ethernet-phy";
76 }; 71 };
77 72
78 ethernet-phy@6400 { 73 phy9: ethernet-phy@6400 {
79 linux,phandle = <6400>; 74 interrupt-parent = <&mpic>;
80 interrupt-parent = <7400>;
81 interrupts = <2 1>; 75 interrupts = <2 1>;
82 reg = <6000 50>; 76 reg = <6000 50>;
83 phy-id = <9>; 77 phy-id = <9>;
@@ -94,8 +88,8 @@
94 reg = <6000 200>; 88 reg = <6000 200>;
95 address = [ 00 06 D2 00 00 01 ]; 89 address = [ 00 06 D2 00 00 01 ];
96 interrupts = <10 2>; 90 interrupts = <10 2>;
97 interrupt-parent = <7400>; 91 interrupt-parent = <&mpic>;
98 phy-handle = <6000>; 92 phy-handle = <&phy8>;
99 }; 93 };
100 94
101 ethernet@6600 { 95 ethernet@6600 {
@@ -107,8 +101,8 @@
107 reg = <6400 200>; 101 reg = <6400 200>;
108 address = [ 00 06 D2 00 00 02 ]; 102 address = [ 00 06 D2 00 00 02 ];
109 interrupts = <11 2>; 103 interrupts = <11 2>;
110 interrupt-parent = <7400>; 104 interrupt-parent = <&mpic>;
111 phy-handle = <6400>; 105 phy-handle = <&phy9>;
112 }; 106 };
113 107
114 serial@7808 { 108 serial@7808 {
@@ -117,7 +111,7 @@
117 reg = <7808 200>; 111 reg = <7808 200>;
118 clock-frequency = <3f6b5a00>; 112 clock-frequency = <3f6b5a00>;
119 interrupts = <c 0>; 113 interrupts = <c 0>;
120 interrupt-parent = <7400>; 114 interrupt-parent = <&mpic>;
121 }; 115 };
122 116
123 serial@7c08 { 117 serial@7c08 {
@@ -126,11 +120,10 @@
126 reg = <7c08 200>; 120 reg = <7c08 200>;
127 clock-frequency = <3f6b5a00>; 121 clock-frequency = <3f6b5a00>;
128 interrupts = <d 0>; 122 interrupts = <d 0>;
129 interrupt-parent = <7400>; 123 interrupt-parent = <&mpic>;
130 }; 124 };
131 125
132 pic@7400 { 126 mpic: pic@7400 {
133 linux,phandle = <7400>;
134 clock-frequency = <0>; 127 clock-frequency = <0>;
135 interrupt-controller; 128 interrupt-controller;
136 #address-cells = <0>; 129 #address-cells = <0>;
@@ -144,7 +137,6 @@
144 pci@1000 { 137 pci@1000 {
145 compatible = "tsi10x"; 138 compatible = "tsi10x";
146 device_type = "pci"; 139 device_type = "pci";
147 linux,phandle = <1000>;
148 #interrupt-cells = <1>; 140 #interrupt-cells = <1>;
149 #size-cells = <2>; 141 #size-cells = <2>;
150 #address-cells = <3>; 142 #address-cells = <3>;
@@ -153,37 +145,37 @@
153 ranges = <02000000 0 e0000000 e0000000 0 1A000000 145 ranges = <02000000 0 e0000000 e0000000 0 1A000000
154 01000000 0 00000000 fa000000 0 00010000>; 146 01000000 0 00000000 fa000000 0 00010000>;
155 clock-frequency = <7f28154>; 147 clock-frequency = <7f28154>;
156 interrupt-parent = <7400>; 148 interrupt-parent = <&mpic>;
157 interrupts = <17 2>; 149 interrupts = <17 2>;
158 interrupt-map-mask = <f800 0 0 7>; 150 interrupt-map-mask = <f800 0 0 7>;
159 interrupt-map = < 151 interrupt-map = <
160 152
161 /* IDSEL 0x11 */ 153 /* IDSEL 0x11 */
162 0800 0 0 1 1180 24 0 154 0800 0 0 1 &RT0 24 0
163 0800 0 0 2 1180 25 0 155 0800 0 0 2 &RT0 25 0
164 0800 0 0 3 1180 26 0 156 0800 0 0 3 &RT0 26 0
165 0800 0 0 4 1180 27 0 157 0800 0 0 4 &RT0 27 0
166 158
167 /* IDSEL 0x12 */ 159 /* IDSEL 0x12 */
168 1000 0 0 1 1180 25 0 160 1000 0 0 1 &RT0 25 0
169 1000 0 0 2 1180 26 0 161 1000 0 0 2 &RT0 26 0
170 1000 0 0 3 1180 27 0 162 1000 0 0 3 &RT0 27 0
171 1000 0 0 4 1180 24 0 163 1000 0 0 4 &RT0 24 0
172 164
173 /* IDSEL 0x13 */ 165 /* IDSEL 0x13 */
174 1800 0 0 1 1180 26 0 166 1800 0 0 1 &RT0 26 0
175 1800 0 0 2 1180 27 0 167 1800 0 0 2 &RT0 27 0
176 1800 0 0 3 1180 24 0 168 1800 0 0 3 &RT0 24 0
177 1800 0 0 4 1180 25 0 169 1800 0 0 4 &RT0 25 0
178 170
179 /* IDSEL 0x14 */ 171 /* IDSEL 0x14 */
180 2000 0 0 1 1180 27 0 172 2000 0 0 1 &RT0 27 0
181 2000 0 0 2 1180 24 0 173 2000 0 0 2 &RT0 24 0
182 2000 0 0 3 1180 25 0 174 2000 0 0 3 &RT0 25 0
183 2000 0 0 4 1180 26 0 175 2000 0 0 4 &RT0 26 0
184 >; 176 >;
185 router@1180 { 177
186 linux,phandle = <1180>; 178 RT0: router@1180 {
187 clock-frequency = <0>; 179 clock-frequency = <0>;
188 interrupt-controller; 180 interrupt-controller;
189 device_type = "pic-router"; 181 device_type = "pic-router";
@@ -192,7 +184,7 @@
192 built-in; 184 built-in;
193 big-endian; 185 big-endian;
194 interrupts = <17 2>; 186 interrupts = <17 2>;
195 interrupt-parent = <7400>; 187 interrupt-parent = <&mpic>;
196 }; 188 };
197 }; 189 };
198 }; 190 };
diff --git a/arch/powerpc/boot/dts/mpc8540ads.dts b/arch/powerpc/boot/dts/mpc8540ads.dts
index f261d647ac85..d91e81c009f5 100644
--- a/arch/powerpc/boot/dts/mpc8540ads.dts
+++ b/arch/powerpc/boot/dts/mpc8540ads.dts
@@ -48,6 +48,22 @@
48 reg = <e0000000 00100000>; // CCSRBAR 1M 48 reg = <e0000000 00100000>; // CCSRBAR 1M
49 bus-frequency = <0>; 49 bus-frequency = <0>;
50 50
51 memory-controller@2000 {
52 compatible = "fsl,8540-memory-controller";
53 reg = <2000 1000>;
54 interrupt-parent = <&mpic>;
55 interrupts = <2 2>;
56 };
57
58 l2-cache-controller@20000 {
59 compatible = "fsl,8540-l2-cache-controller";
60 reg = <20000 1000>;
61 cache-line-size = <20>; // 32 bytes
62 cache-size = <40000>; // L2, 256K
63 interrupt-parent = <&mpic>;
64 interrupts = <0 2>;
65 };
66
51 i2c@3000 { 67 i2c@3000 {
52 device_type = "i2c"; 68 device_type = "i2c";
53 compatible = "fsl-i2c"; 69 compatible = "fsl-i2c";
diff --git a/arch/powerpc/boot/dts/mpc8541cds.dts b/arch/powerpc/boot/dts/mpc8541cds.dts
index 5fdcb69554f2..4f2c3af2e052 100644
--- a/arch/powerpc/boot/dts/mpc8541cds.dts
+++ b/arch/powerpc/boot/dts/mpc8541cds.dts
@@ -48,6 +48,22 @@
48 reg = <e0000000 00100000>; // CCSRBAR 1M 48 reg = <e0000000 00100000>; // CCSRBAR 1M
49 bus-frequency = <0>; 49 bus-frequency = <0>;
50 50
51 memory-controller@2000 {
52 compatible = "fsl,8541-memory-controller";
53 reg = <2000 1000>;
54 interrupt-parent = <&mpic>;
55 interrupts = <2 2>;
56 };
57
58 l2-cache-controller@20000 {
59 compatible = "fsl,8541-l2-cache-controller";
60 reg = <20000 1000>;
61 cache-line-size = <20>; // 32 bytes
62 cache-size = <40000>; // L2, 256K
63 interrupt-parent = <&mpic>;
64 interrupts = <0 2>;
65 };
66
51 i2c@3000 { 67 i2c@3000 {
52 device_type = "i2c"; 68 device_type = "i2c";
53 compatible = "fsl-i2c"; 69 compatible = "fsl-i2c";
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts
index 6b084605bb4b..3033599e74e8 100644
--- a/arch/powerpc/boot/dts/mpc8544ds.dts
+++ b/arch/powerpc/boot/dts/mpc8544ds.dts
@@ -48,6 +48,22 @@
48 reg = <e0000000 00100000>; // CCSRBAR 1M 48 reg = <e0000000 00100000>; // CCSRBAR 1M
49 bus-frequency = <0>; // Filled out by uboot. 49 bus-frequency = <0>; // Filled out by uboot.
50 50
51 memory-controller@2000 {
52 compatible = "fsl,8544-memory-controller";
53 reg = <2000 1000>;
54 interrupt-parent = <&mpic>;
55 interrupts = <2 2>;
56 };
57
58 l2-cache-controller@20000 {
59 compatible = "fsl,8544-l2-cache-controller";
60 reg = <20000 1000>;
61 cache-line-size = <20>; // 32 bytes
62 cache-size = <40000>; // L2, 256K
63 interrupt-parent = <&mpic>;
64 interrupts = <0 2>;
65 };
66
51 i2c@3000 { 67 i2c@3000 {
52 device_type = "i2c"; 68 device_type = "i2c";
53 compatible = "fsl-i2c"; 69 compatible = "fsl-i2c";
diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts
index b2b2200d0425..ad96381033c0 100644
--- a/arch/powerpc/boot/dts/mpc8548cds.dts
+++ b/arch/powerpc/boot/dts/mpc8548cds.dts
@@ -48,6 +48,22 @@
48 reg = <e0000000 00100000>; // CCSRBAR 1M 48 reg = <e0000000 00100000>; // CCSRBAR 1M
49 bus-frequency = <0>; 49 bus-frequency = <0>;
50 50
51 memory-controller@2000 {
52 compatible = "fsl,8548-memory-controller";
53 reg = <2000 1000>;
54 interrupt-parent = <&mpic>;
55 interrupts = <2 2>;
56 };
57
58 l2-cache-controller@20000 {
59 compatible = "fsl,8548-l2-cache-controller";
60 reg = <20000 1000>;
61 cache-line-size = <20>; // 32 bytes
62 cache-size = <80000>; // L2, 512K
63 interrupt-parent = <&mpic>;
64 interrupts = <0 2>;
65 };
66
51 i2c@3000 { 67 i2c@3000 {
52 device_type = "i2c"; 68 device_type = "i2c";
53 compatible = "fsl-i2c"; 69 compatible = "fsl-i2c";
diff --git a/arch/powerpc/boot/dts/mpc8555cds.dts b/arch/powerpc/boot/dts/mpc8555cds.dts
index 68a4795720dc..951ed92f1154 100644
--- a/arch/powerpc/boot/dts/mpc8555cds.dts
+++ b/arch/powerpc/boot/dts/mpc8555cds.dts
@@ -48,6 +48,22 @@
48 reg = <e0000000 00100000>; // CCSRBAR 1M 48 reg = <e0000000 00100000>; // CCSRBAR 1M
49 bus-frequency = <0>; 49 bus-frequency = <0>;
50 50
51 memory-controller@2000 {
52 compatible = "fsl,8555-memory-controller";
53 reg = <2000 1000>;
54 interrupt-parent = <&mpic>;
55 interrupts = <2 2>;
56 };
57
58 l2-cache-controller@20000 {
59 compatible = "fsl,8555-l2-cache-controller";
60 reg = <20000 1000>;
61 cache-line-size = <20>; // 32 bytes
62 cache-size = <40000>; // L2, 256K
63 interrupt-parent = <&mpic>;
64 interrupts = <0 2>;
65 };
66
51 i2c@3000 { 67 i2c@3000 {
52 device_type = "i2c"; 68 device_type = "i2c";
53 compatible = "fsl-i2c"; 69 compatible = "fsl-i2c";
diff --git a/arch/powerpc/boot/dts/mpc8560ads.dts b/arch/powerpc/boot/dts/mpc8560ads.dts
index 1f2afe9291d2..80682152b0cf 100644
--- a/arch/powerpc/boot/dts/mpc8560ads.dts
+++ b/arch/powerpc/boot/dts/mpc8560ads.dts
@@ -48,6 +48,22 @@
48 reg = <e0000000 00000200>; 48 reg = <e0000000 00000200>;
49 bus-frequency = <13ab6680>; 49 bus-frequency = <13ab6680>;
50 50
51 memory-controller@2000 {
52 compatible = "fsl,8540-memory-controller";
53 reg = <2000 1000>;
54 interrupt-parent = <&mpic>;
55 interrupts = <2 2>;
56 };
57
58 l2-cache-controller@20000 {
59 compatible = "fsl,8540-l2-cache-controller";
60 reg = <20000 1000>;
61 cache-line-size = <20>; // 32 bytes
62 cache-size = <40000>; // L2, 256K
63 interrupt-parent = <&mpic>;
64 interrupts = <0 2>;
65 };
66
51 mdio@24520 { 67 mdio@24520 {
52 device_type = "mdio"; 68 device_type = "mdio";
53 compatible = "gianfar"; 69 compatible = "gianfar";
@@ -110,7 +126,7 @@
110 #address-cells = <3>; 126 #address-cells = <3>;
111 compatible = "85xx"; 127 compatible = "85xx";
112 device_type = "pci"; 128 device_type = "pci";
113 reg = <8000 400>; 129 reg = <8000 1000>;
114 clock-frequency = <3f940aa>; 130 clock-frequency = <3f940aa>;
115 interrupt-map-mask = <f800 0 0 7>; 131 interrupt-map-mask = <f800 0 0 7>;
116 interrupt-map = < 132 interrupt-map = <
diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts
index 948a3b61bd4a..a123ec9456bc 100644
--- a/arch/powerpc/boot/dts/mpc8568mds.dts
+++ b/arch/powerpc/boot/dts/mpc8568mds.dts
@@ -57,6 +57,22 @@
57 reg = <e0000000 00100000>; 57 reg = <e0000000 00100000>;
58 bus-frequency = <0>; 58 bus-frequency = <0>;
59 59
60 memory-controller@2000 {
61 compatible = "fsl,8568-memory-controller";
62 reg = <2000 1000>;
63 interrupt-parent = <&mpic>;
64 interrupts = <2 2>;
65 };
66
67 l2-cache-controller@20000 {
68 compatible = "fsl,8568-l2-cache-controller";
69 reg = <20000 1000>;
70 cache-line-size = <20>; // 32 bytes
71 cache-size = <80000>; // L2, 512K
72 interrupt-parent = <&mpic>;
73 interrupts = <0 2>;
74 };
75
60 i2c@3000 { 76 i2c@3000 {
61 device_type = "i2c"; 77 device_type = "i2c";
62 compatible = "fsl-i2c"; 78 compatible = "fsl-i2c";
diff --git a/arch/powerpc/boot/flatdevtree.c b/arch/powerpc/boot/flatdevtree.c
index d00fbd92a458..b732644788db 100644
--- a/arch/powerpc/boot/flatdevtree.c
+++ b/arch/powerpc/boot/flatdevtree.c
@@ -891,28 +891,27 @@ int ft_set_prop(struct ft_cxt *cxt, const void *phandle, const char *propname,
891 struct ft_atom atom; 891 struct ft_atom atom;
892 void *node; 892 void *node;
893 char *p, *next; 893 char *p, *next;
894 int nextra, depth; 894 int nextra;
895 895
896 node = ft_node_ph2node(cxt, phandle); 896 node = ft_node_ph2node(cxt, phandle);
897 if (node == NULL) 897 if (node == NULL)
898 return -1; 898 return -1;
899 899
900 depth = 0; 900 next = ft_next(cxt, node, &atom);
901 p = node; 901 if (atom.tag != OF_DT_BEGIN_NODE)
902 /* phandle didn't point to a node */
903 return -1;
904 p = next;
902 905
903 while ((next = ft_next(cxt, p, &atom)) != NULL) { 906 while ((next = ft_next(cxt, p, &atom)) != NULL) {
904 switch (atom.tag) { 907 switch (atom.tag) {
905 case OF_DT_BEGIN_NODE: 908 case OF_DT_BEGIN_NODE: /* properties must go before subnodes */
906 ++depth;
907 break;
908 case OF_DT_END_NODE: 909 case OF_DT_END_NODE:
909 if (--depth > 0)
910 break;
911 /* haven't found the property, insert here */ 910 /* haven't found the property, insert here */
912 cxt->p = p; 911 cxt->p = p;
913 return ft_prop(cxt, propname, buf, buflen); 912 return ft_prop(cxt, propname, buf, buflen);
914 case OF_DT_PROP: 913 case OF_DT_PROP:
915 if ((depth != 1) || strcmp(atom.name, propname)) 914 if (strcmp(atom.name, propname))
916 break; 915 break;
917 /* found an existing property, overwrite it */ 916 /* found an existing property, overwrite it */
918 nextra = _ALIGN(buflen, 4) - _ALIGN(atom.size, 4); 917 nextra = _ALIGN(buflen, 4) - _ALIGN(atom.size, 4);
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index 6061e5f7696e..02c428affc8f 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -163,7 +163,6 @@ CONFIG_SPU_FS=m
163CONFIG_SPU_BASE=y 163CONFIG_SPU_BASE=y
164CONFIG_CBE_RAS=y 164CONFIG_CBE_RAS=y
165CONFIG_CBE_THERM=m 165CONFIG_CBE_THERM=m
166CONFIG_CBE_CPUFREQ=m
167CONFIG_PPC_NATIVE=y 166CONFIG_PPC_NATIVE=y
168CONFIG_UDBG_RTAS_CONSOLE=y 167CONFIG_UDBG_RTAS_CONSOLE=y
169CONFIG_PPC_UDBG_BEAT=y 168CONFIG_PPC_UDBG_BEAT=y
@@ -172,24 +171,12 @@ CONFIG_PPC_RTAS=y
172# CONFIG_RTAS_ERROR_LOGGING is not set 171# CONFIG_RTAS_ERROR_LOGGING is not set
173CONFIG_RTAS_PROC=y 172CONFIG_RTAS_PROC=y
174CONFIG_RTAS_FLASH=y 173CONFIG_RTAS_FLASH=y
175CONFIG_PPC_PMI=m 174# CONFIG_PPC_PMI is not set
176CONFIG_MMIO_NVRAM=y 175CONFIG_MMIO_NVRAM=y
177# CONFIG_PPC_MPC106 is not set 176# CONFIG_PPC_MPC106 is not set
178# CONFIG_PPC_970_NAP is not set 177# CONFIG_PPC_970_NAP is not set
179CONFIG_PPC_INDIRECT_IO=y 178CONFIG_PPC_INDIRECT_IO=y
180CONFIG_GENERIC_IOMAP=y 179CONFIG_GENERIC_IOMAP=y
181CONFIG_CPU_FREQ=y
182CONFIG_CPU_FREQ_TABLE=y
183CONFIG_CPU_FREQ_DEBUG=y
184CONFIG_CPU_FREQ_STAT=y
185# CONFIG_CPU_FREQ_STAT_DETAILS is not set
186CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
187# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
188CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
189CONFIG_CPU_FREQ_GOV_POWERSAVE=y
190CONFIG_CPU_FREQ_GOV_USERSPACE=y
191CONFIG_CPU_FREQ_GOV_ONDEMAND=y
192CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
193# CONFIG_CPU_FREQ_PMAC64 is not set 180# CONFIG_CPU_FREQ_PMAC64 is not set
194# CONFIG_WANT_EARLY_SERIAL is not set 181# CONFIG_WANT_EARLY_SERIAL is not set
195CONFIG_MPIC=y 182CONFIG_MPIC=y
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index 5fc87448704c..af25118c8f24 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20-rc5 3# Linux kernel version: 2.6.22-rc1
4# Mon Jan 22 22:16:44 2007 4# Mon May 14 14:27:46 2007
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -40,6 +40,7 @@ CONFIG_PPC_FPU=y
40# CONFIG_PPC_OF_PLATFORM_PCI is not set 40# CONFIG_PPC_OF_PLATFORM_PCI is not set
41# CONFIG_ALTIVEC is not set 41# CONFIG_ALTIVEC is not set
42CONFIG_PPC_STD_MMU=y 42CONFIG_PPC_STD_MMU=y
43# CONFIG_PPC_MM_SLICES is not set
43CONFIG_VIRT_CPU_ACCOUNTING=y 44CONFIG_VIRT_CPU_ACCOUNTING=y
44CONFIG_SMP=y 45CONFIG_SMP=y
45CONFIG_NR_CPUS=32 46CONFIG_NR_CPUS=32
@@ -60,6 +61,7 @@ CONFIG_LOCALVERSION_AUTO=y
60CONFIG_SWAP=y 61CONFIG_SWAP=y
61CONFIG_SYSVIPC=y 62CONFIG_SYSVIPC=y
62# CONFIG_IPC_NS is not set 63# CONFIG_IPC_NS is not set
64CONFIG_SYSVIPC_SYSCTL=y
63CONFIG_POSIX_MQUEUE=y 65CONFIG_POSIX_MQUEUE=y
64# CONFIG_BSD_PROCESS_ACCT is not set 66# CONFIG_BSD_PROCESS_ACCT is not set
65# CONFIG_TASKSTATS is not set 67# CONFIG_TASKSTATS is not set
@@ -68,9 +70,11 @@ CONFIG_AUDIT=y
68CONFIG_AUDITSYSCALL=y 70CONFIG_AUDITSYSCALL=y
69CONFIG_IKCONFIG=y 71CONFIG_IKCONFIG=y
70CONFIG_IKCONFIG_PROC=y 72CONFIG_IKCONFIG_PROC=y
73CONFIG_LOG_BUF_SHIFT=17
71# CONFIG_CPUSETS is not set 74# CONFIG_CPUSETS is not set
72CONFIG_SYSFS_DEPRECATED=y 75CONFIG_SYSFS_DEPRECATED=y
73# CONFIG_RELAY is not set 76# CONFIG_RELAY is not set
77CONFIG_BLK_DEV_INITRD=y
74CONFIG_INITRAMFS_SOURCE="" 78CONFIG_INITRAMFS_SOURCE=""
75CONFIG_CC_OPTIMIZE_FOR_SIZE=y 79CONFIG_CC_OPTIMIZE_FOR_SIZE=y
76CONFIG_SYSCTL=y 80CONFIG_SYSCTL=y
@@ -85,14 +89,19 @@ CONFIG_BUG=y
85CONFIG_ELF_CORE=y 89CONFIG_ELF_CORE=y
86CONFIG_BASE_FULL=y 90CONFIG_BASE_FULL=y
87CONFIG_FUTEX=y 91CONFIG_FUTEX=y
92CONFIG_ANON_INODES=y
88CONFIG_EPOLL=y 93CONFIG_EPOLL=y
94CONFIG_SIGNALFD=y
95CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y
89CONFIG_SHMEM=y 97CONFIG_SHMEM=y
90CONFIG_SLAB=y
91CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
99CONFIG_SLAB=y
100# CONFIG_SLUB is not set
101# CONFIG_SLOB is not set
92CONFIG_RT_MUTEXES=y 102CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set 103# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
95# CONFIG_SLOB is not set
96 105
97# 106#
98# Loadable module support 107# Loadable module support
@@ -131,15 +140,30 @@ CONFIG_PPC_MULTIPLATFORM=y
131# CONFIG_EMBEDDED6xx is not set 140# CONFIG_EMBEDDED6xx is not set
132# CONFIG_APUS is not set 141# CONFIG_APUS is not set
133# CONFIG_PPC_PSERIES is not set 142# CONFIG_PPC_PSERIES is not set
143CONFIG_LPARCFG=y
134CONFIG_PPC_ISERIES=y 144CONFIG_PPC_ISERIES=y
145
146#
147# iSeries device drivers
148#
149CONFIG_VIODASD=y
150CONFIG_VIOCD=m
151CONFIG_VIOTAPE=m
152CONFIG_VIOPATH=y
135# CONFIG_PPC_MPC52xx is not set 153# CONFIG_PPC_MPC52xx is not set
154# CONFIG_PPC_MPC5200 is not set
136# CONFIG_PPC_PMAC is not set 155# CONFIG_PPC_PMAC is not set
137# CONFIG_PPC_MAPLE is not set 156# CONFIG_PPC_MAPLE is not set
138# CONFIG_PPC_PASEMI is not set 157# CONFIG_PPC_PASEMI is not set
158# CONFIG_PPC_CELLEB is not set
159# CONFIG_PPC_PS3 is not set
139# CONFIG_PPC_CELL is not set 160# CONFIG_PPC_CELL is not set
140# CONFIG_PPC_CELL_NATIVE is not set 161# CONFIG_PPC_CELL_NATIVE is not set
141# CONFIG_PPC_IBM_CELL_BLADE is not set 162# CONFIG_PPC_IBM_CELL_BLADE is not set
142# CONFIG_PPC_PS3 is not set 163# CONFIG_PQ2ADS is not set
164# CONFIG_MPIC is not set
165# CONFIG_MPIC_WEIRD is not set
166# CONFIG_PPC_I8259 is not set
143# CONFIG_U3_DART is not set 167# CONFIG_U3_DART is not set
144# CONFIG_PPC_RTAS is not set 168# CONFIG_PPC_RTAS is not set
145# CONFIG_MMIO_NVRAM is not set 169# CONFIG_MMIO_NVRAM is not set
@@ -149,8 +173,7 @@ CONFIG_IBMVIO=y
149CONFIG_PPC_INDIRECT_IO=y 173CONFIG_PPC_INDIRECT_IO=y
150CONFIG_GENERIC_IOMAP=y 174CONFIG_GENERIC_IOMAP=y
151# CONFIG_CPU_FREQ is not set 175# CONFIG_CPU_FREQ is not set
152# CONFIG_WANT_EARLY_SERIAL is not set 176# CONFIG_CPM2 is not set
153# CONFIG_MPIC is not set
154 177
155# 178#
156# Kernel options 179# Kernel options
@@ -172,7 +195,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
172# CONFIG_KEXEC is not set 195# CONFIG_KEXEC is not set
173# CONFIG_CRASH_DUMP is not set 196# CONFIG_CRASH_DUMP is not set
174CONFIG_IRQ_ALL_CPUS=y 197CONFIG_IRQ_ALL_CPUS=y
175CONFIG_LPARCFG=y
176# CONFIG_NUMA is not set 198# CONFIG_NUMA is not set
177CONFIG_ARCH_SELECT_MEMORY_MODEL=y 199CONFIG_ARCH_SELECT_MEMORY_MODEL=y
178CONFIG_ARCH_FLATMEM_ENABLE=y 200CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -187,34 +209,34 @@ CONFIG_FLAT_NODE_MEM_MAP=y
187# CONFIG_SPARSEMEM_STATIC is not set 209# CONFIG_SPARSEMEM_STATIC is not set
188CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
189CONFIG_RESOURCES_64BIT=y 211CONFIG_RESOURCES_64BIT=y
212CONFIG_ZONE_DMA_FLAG=1
213# CONFIG_PPC_HAS_HASH_64K is not set
190# CONFIG_PPC_64K_PAGES is not set 214# CONFIG_PPC_64K_PAGES is not set
191# CONFIG_SCHED_SMT is not set 215# CONFIG_SCHED_SMT is not set
192CONFIG_PROC_DEVICETREE=y 216CONFIG_PROC_DEVICETREE=y
193# CONFIG_CMDLINE_BOOL is not set 217# CONFIG_CMDLINE_BOOL is not set
194# CONFIG_PM is not set 218# CONFIG_PM is not set
195CONFIG_SECCOMP=y 219CONFIG_SECCOMP=y
220# CONFIG_WANT_DEVICE_TREE is not set
196CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
197 222
198# 223#
199# Bus options 224# Bus options
200# 225#
226CONFIG_ZONE_DMA=y
201CONFIG_GENERIC_ISA_DMA=y 227CONFIG_GENERIC_ISA_DMA=y
202# CONFIG_MPIC_WEIRD is not set
203# CONFIG_PPC_I8259 is not set
204# CONFIG_PPC_INDIRECT_PCI is not set 228# CONFIG_PPC_INDIRECT_PCI is not set
205CONFIG_PCI=y 229CONFIG_PCI=y
206CONFIG_PCI_DOMAINS=y 230CONFIG_PCI_DOMAINS=y
207# CONFIG_PCIEPORTBUS is not set 231# CONFIG_PCIEPORTBUS is not set
232CONFIG_ARCH_SUPPORTS_MSI=y
233# CONFIG_PCI_MSI is not set
208# CONFIG_PCI_DEBUG is not set 234# CONFIG_PCI_DEBUG is not set
209 235
210# 236#
211# PCCARD (PCMCIA/CardBus) support 237# PCCARD (PCMCIA/CardBus) support
212# 238#
213# CONFIG_PCCARD is not set 239# CONFIG_PCCARD is not set
214
215#
216# PCI Hotplug Support
217#
218# CONFIG_HOTPLUG_PCI is not set 240# CONFIG_HOTPLUG_PCI is not set
219CONFIG_KERNEL_START=0xc000000000000000 241CONFIG_KERNEL_START=0xc000000000000000
220 242
@@ -226,14 +248,15 @@ CONFIG_NET=y
226# 248#
227# Networking options 249# Networking options
228# 250#
229# CONFIG_NETDEBUG is not set
230CONFIG_PACKET=y 251CONFIG_PACKET=y
231# CONFIG_PACKET_MMAP is not set 252# CONFIG_PACKET_MMAP is not set
232CONFIG_UNIX=y 253CONFIG_UNIX=y
233CONFIG_XFRM=y 254CONFIG_XFRM=y
234CONFIG_XFRM_USER=m 255CONFIG_XFRM_USER=m
235CONFIG_XFRM_SUB_POLICY=y 256CONFIG_XFRM_SUB_POLICY=y
257# CONFIG_XFRM_MIGRATE is not set
236CONFIG_NET_KEY=m 258CONFIG_NET_KEY=m
259# CONFIG_NET_KEY_MIGRATE is not set
237CONFIG_INET=y 260CONFIG_INET=y
238CONFIG_IP_MULTICAST=y 261CONFIG_IP_MULTICAST=y
239# CONFIG_IP_ADVANCED_ROUTER is not set 262# CONFIG_IP_ADVANCED_ROUTER is not set
@@ -275,8 +298,6 @@ CONFIG_NETFILTER=y
275# 298#
276# CONFIG_NETFILTER_NETLINK is not set 299# CONFIG_NETFILTER_NETLINK is not set
277CONFIG_NF_CONNTRACK_ENABLED=m 300CONFIG_NF_CONNTRACK_ENABLED=m
278CONFIG_NF_CONNTRACK_SUPPORT=y
279# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
280CONFIG_NF_CONNTRACK=m 301CONFIG_NF_CONNTRACK=m
281# CONFIG_NF_CT_ACCT is not set 302# CONFIG_NF_CT_ACCT is not set
282CONFIG_NF_CONNTRACK_MARK=y 303CONFIG_NF_CONNTRACK_MARK=y
@@ -288,6 +309,7 @@ CONFIG_NF_CONNTRACK_FTP=m
288CONFIG_NF_CONNTRACK_IRC=m 309CONFIG_NF_CONNTRACK_IRC=m
289# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set 310# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
290# CONFIG_NF_CONNTRACK_PPTP is not set 311# CONFIG_NF_CONNTRACK_PPTP is not set
312# CONFIG_NF_CONNTRACK_SANE is not set
291# CONFIG_NF_CONNTRACK_SIP is not set 313# CONFIG_NF_CONNTRACK_SIP is not set
292CONFIG_NF_CONNTRACK_TFTP=m 314CONFIG_NF_CONNTRACK_TFTP=m
293CONFIG_NETFILTER_XTABLES=m 315CONFIG_NETFILTER_XTABLES=m
@@ -298,7 +320,9 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
298CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 320CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
299# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 321# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
300# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set 322# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
323# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
301CONFIG_NETFILTER_XT_MATCH_COMMENT=m 324CONFIG_NETFILTER_XT_MATCH_COMMENT=m
325# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
302CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 326CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
303CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 327CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
304# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 328# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
@@ -340,7 +364,6 @@ CONFIG_IP_NF_FILTER=m
340CONFIG_IP_NF_TARGET_REJECT=m 364CONFIG_IP_NF_TARGET_REJECT=m
341CONFIG_IP_NF_TARGET_LOG=m 365CONFIG_IP_NF_TARGET_LOG=m
342CONFIG_IP_NF_TARGET_ULOG=m 366CONFIG_IP_NF_TARGET_ULOG=m
343CONFIG_IP_NF_TARGET_TCPMSS=m
344CONFIG_NF_NAT=m 367CONFIG_NF_NAT=m
345CONFIG_NF_NAT_NEEDED=y 368CONFIG_NF_NAT_NEEDED=y
346CONFIG_IP_NF_TARGET_MASQUERADE=m 369CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -373,7 +396,12 @@ CONFIG_IP_NF_ARP_MANGLE=m
373# 396#
374# SCTP Configuration (EXPERIMENTAL) 397# SCTP Configuration (EXPERIMENTAL)
375# 398#
376# CONFIG_IP_SCTP is not set 399CONFIG_IP_SCTP=m
400# CONFIG_SCTP_DBG_MSG is not set
401# CONFIG_SCTP_DBG_OBJCNT is not set
402# CONFIG_SCTP_HMAC_NONE is not set
403# CONFIG_SCTP_HMAC_SHA1 is not set
404CONFIG_SCTP_HMAC_MD5=y
377 405
378# 406#
379# TIPC Configuration (EXPERIMENTAL) 407# TIPC Configuration (EXPERIMENTAL)
@@ -405,7 +433,16 @@ CONFIG_NET_CLS_ROUTE=y
405# CONFIG_HAMRADIO is not set 433# CONFIG_HAMRADIO is not set
406# CONFIG_IRDA is not set 434# CONFIG_IRDA is not set
407# CONFIG_BT is not set 435# CONFIG_BT is not set
436# CONFIG_AF_RXRPC is not set
437
438#
439# Wireless
440#
441# CONFIG_CFG80211 is not set
442# CONFIG_WIRELESS_EXT is not set
443# CONFIG_MAC80211 is not set
408# CONFIG_IEEE80211 is not set 444# CONFIG_IEEE80211 is not set
445# CONFIG_RFKILL is not set
409 446
410# 447#
411# Device Drivers 448# Device Drivers
@@ -418,16 +455,13 @@ CONFIG_STANDALONE=y
418CONFIG_PREVENT_FIRMWARE_BUILD=y 455CONFIG_PREVENT_FIRMWARE_BUILD=y
419CONFIG_FW_LOADER=m 456CONFIG_FW_LOADER=m
420# CONFIG_DEBUG_DRIVER is not set 457# CONFIG_DEBUG_DRIVER is not set
458# CONFIG_DEBUG_DEVRES is not set
421# CONFIG_SYS_HYPERVISOR is not set 459# CONFIG_SYS_HYPERVISOR is not set
422 460
423# 461#
424# Connector - unified userspace <-> kernelspace linker 462# Connector - unified userspace <-> kernelspace linker
425# 463#
426# CONFIG_CONNECTOR is not set 464# CONFIG_CONNECTOR is not set
427
428#
429# Memory Technology Devices (MTD)
430#
431# CONFIG_MTD is not set 465# CONFIG_MTD is not set
432 466
433# 467#
@@ -438,6 +472,7 @@ CONFIG_FW_LOADER=m
438# 472#
439# Plug and Play support 473# Plug and Play support
440# 474#
475# CONFIG_PNPACPI is not set
441 476
442# 477#
443# Block devices 478# Block devices
@@ -456,15 +491,16 @@ CONFIG_BLK_DEV_RAM=y
456CONFIG_BLK_DEV_RAM_COUNT=16 491CONFIG_BLK_DEV_RAM_COUNT=16
457CONFIG_BLK_DEV_RAM_SIZE=65536 492CONFIG_BLK_DEV_RAM_SIZE=65536
458CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 493CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
459CONFIG_BLK_DEV_INITRD=y
460# CONFIG_CDROM_PKTCDVD is not set 494# CONFIG_CDROM_PKTCDVD is not set
461# CONFIG_ATA_OVER_ETH is not set 495# CONFIG_ATA_OVER_ETH is not set
462 496
463# 497#
464# Misc devices 498# Misc devices
465# 499#
500# CONFIG_PHANTOM is not set
466# CONFIG_SGI_IOC4 is not set 501# CONFIG_SGI_IOC4 is not set
467# CONFIG_TIFM_CORE is not set 502# CONFIG_TIFM_CORE is not set
503# CONFIG_BLINK is not set
468 504
469# 505#
470# ATA/ATAPI/MFM/RLL support 506# ATA/ATAPI/MFM/RLL support
@@ -498,6 +534,7 @@ CONFIG_SCSI_MULTI_LUN=y
498CONFIG_SCSI_CONSTANTS=y 534CONFIG_SCSI_CONSTANTS=y
499# CONFIG_SCSI_LOGGING is not set 535# CONFIG_SCSI_LOGGING is not set
500# CONFIG_SCSI_SCAN_ASYNC is not set 536# CONFIG_SCSI_SCAN_ASYNC is not set
537CONFIG_SCSI_WAIT_SCAN=m
501 538
502# 539#
503# SCSI Transports 540# SCSI Transports
@@ -544,11 +581,8 @@ CONFIG_SCSI_IBMVSCSI=m
544# CONFIG_SCSI_DC395x is not set 581# CONFIG_SCSI_DC395x is not set
545# CONFIG_SCSI_DC390T is not set 582# CONFIG_SCSI_DC390T is not set
546# CONFIG_SCSI_DEBUG is not set 583# CONFIG_SCSI_DEBUG is not set
584# CONFIG_SCSI_ESP_CORE is not set
547# CONFIG_SCSI_SRP is not set 585# CONFIG_SCSI_SRP is not set
548
549#
550# Serial ATA (prod) and Parallel ATA (experimental) drivers
551#
552# CONFIG_ATA is not set 586# CONFIG_ATA is not set
553 587
554# 588#
@@ -570,6 +604,7 @@ CONFIG_DM_SNAPSHOT=m
570CONFIG_DM_MIRROR=m 604CONFIG_DM_MIRROR=m
571CONFIG_DM_ZERO=m 605CONFIG_DM_ZERO=m
572# CONFIG_DM_MULTIPATH is not set 606# CONFIG_DM_MULTIPATH is not set
607# CONFIG_DM_DELAY is not set
573 608
574# 609#
575# Fusion MPT device support 610# Fusion MPT device support
@@ -582,18 +617,14 @@ CONFIG_DM_ZERO=m
582# 617#
583# IEEE 1394 (FireWire) support 618# IEEE 1394 (FireWire) support
584# 619#
620# CONFIG_FIREWIRE is not set
585# CONFIG_IEEE1394 is not set 621# CONFIG_IEEE1394 is not set
586 622
587# 623#
588# I2O device support 624# I2O device support
589# 625#
590# CONFIG_I2O is not set 626# CONFIG_I2O is not set
591 627# CONFIG_MACINTOSH_DRIVERS is not set
592#
593# Macintosh device drivers
594#
595# CONFIG_MAC_EMUMOUSEBTN is not set
596# CONFIG_WINDFARM is not set
597 628
598# 629#
599# Network device support 630# Network device support
@@ -608,10 +639,6 @@ CONFIG_TUN=m
608# ARCnet devices 639# ARCnet devices
609# 640#
610# CONFIG_ARCNET is not set 641# CONFIG_ARCNET is not set
611
612#
613# PHY device support
614#
615# CONFIG_PHYLIB is not set 642# CONFIG_PHYLIB is not set
616 643
617# 644#
@@ -648,10 +675,8 @@ CONFIG_E100=y
648# CONFIG_EPIC100 is not set 675# CONFIG_EPIC100 is not set
649# CONFIG_SUNDANCE is not set 676# CONFIG_SUNDANCE is not set
650# CONFIG_VIA_RHINE is not set 677# CONFIG_VIA_RHINE is not set
651 678# CONFIG_SC92031 is not set
652# 679CONFIG_NETDEV_1000=y
653# Ethernet (1000 Mbit)
654#
655CONFIG_ACENIC=m 680CONFIG_ACENIC=m
656# CONFIG_ACENIC_OMIT_TIGON_I is not set 681# CONFIG_ACENIC_OMIT_TIGON_I is not set
657# CONFIG_DL2K is not set 682# CONFIG_DL2K is not set
@@ -670,15 +695,17 @@ CONFIG_E1000=m
670# CONFIG_TIGON3 is not set 695# CONFIG_TIGON3 is not set
671# CONFIG_BNX2 is not set 696# CONFIG_BNX2 is not set
672# CONFIG_QLA3XXX is not set 697# CONFIG_QLA3XXX is not set
673 698# CONFIG_ATL1 is not set
674# 699CONFIG_NETDEV_10000=y
675# Ethernet (10000 Mbit)
676#
677# CONFIG_CHELSIO_T1 is not set 700# CONFIG_CHELSIO_T1 is not set
701# CONFIG_CHELSIO_T3 is not set
678# CONFIG_IXGB is not set 702# CONFIG_IXGB is not set
679# CONFIG_S2IO is not set 703# CONFIG_S2IO is not set
680# CONFIG_MYRI10GE is not set 704# CONFIG_MYRI10GE is not set
681# CONFIG_NETXEN_NIC is not set 705# CONFIG_NETXEN_NIC is not set
706# CONFIG_PASEMI_MAC is not set
707# CONFIG_MLX4_CORE is not set
708CONFIG_MLX4_DEBUG=y
682 709
683# 710#
684# Token Ring devices 711# Token Ring devices
@@ -689,13 +716,10 @@ CONFIG_IBMOL=y
689# CONFIG_TMS380TR is not set 716# CONFIG_TMS380TR is not set
690 717
691# 718#
692# Wireless LAN (non-hamradio) 719# Wireless LAN
693#
694# CONFIG_NET_RADIO is not set
695
696#
697# Wan interfaces
698# 720#
721# CONFIG_WLAN_PRE80211 is not set
722# CONFIG_WLAN_80211 is not set
699# CONFIG_WAN is not set 723# CONFIG_WAN is not set
700CONFIG_ISERIES_VETH=y 724CONFIG_ISERIES_VETH=y
701# CONFIG_FDDI is not set 725# CONFIG_FDDI is not set
@@ -715,7 +739,6 @@ CONFIG_SLHC=m
715# CONFIG_SHAPER is not set 739# CONFIG_SHAPER is not set
716CONFIG_NETCONSOLE=y 740CONFIG_NETCONSOLE=y
717CONFIG_NETPOLL=y 741CONFIG_NETPOLL=y
718CONFIG_NETPOLL_RX=y
719CONFIG_NETPOLL_TRAP=y 742CONFIG_NETPOLL_TRAP=y
720CONFIG_NET_POLL_CONTROLLER=y 743CONFIG_NET_POLL_CONTROLLER=y
721 744
@@ -753,6 +776,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
753# CONFIG_INPUT_KEYBOARD is not set 776# CONFIG_INPUT_KEYBOARD is not set
754# CONFIG_INPUT_MOUSE is not set 777# CONFIG_INPUT_MOUSE is not set
755# CONFIG_INPUT_JOYSTICK is not set 778# CONFIG_INPUT_JOYSTICK is not set
779# CONFIG_INPUT_TABLET is not set
756# CONFIG_INPUT_TOUCHSCREEN is not set 780# CONFIG_INPUT_TOUCHSCREEN is not set
757# CONFIG_INPUT_MISC is not set 781# CONFIG_INPUT_MISC is not set
758 782
@@ -765,6 +789,10 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
765# 789#
766# Character devices 790# Character devices
767# 791#
792CONFIG_VT=y
793CONFIG_VT_CONSOLE=y
794CONFIG_HW_CONSOLE=y
795# CONFIG_VT_HW_CONSOLE_BINDING is not set
768# CONFIG_SERIAL_NONSTANDARD is not set 796# CONFIG_SERIAL_NONSTANDARD is not set
769 797
770# 798#
@@ -781,20 +809,17 @@ CONFIG_SERIAL_ICOM=m
781CONFIG_UNIX98_PTYS=y 809CONFIG_UNIX98_PTYS=y
782CONFIG_LEGACY_PTYS=y 810CONFIG_LEGACY_PTYS=y
783CONFIG_LEGACY_PTY_COUNT=256 811CONFIG_LEGACY_PTY_COUNT=256
812CONFIG_HVC_DRIVER=y
813CONFIG_HVC_ISERIES=y
784 814
785# 815#
786# IPMI 816# IPMI
787# 817#
788# CONFIG_IPMI_HANDLER is not set 818# CONFIG_IPMI_HANDLER is not set
789
790#
791# Watchdog Cards
792#
793# CONFIG_WATCHDOG is not set 819# CONFIG_WATCHDOG is not set
794# CONFIG_HW_RANDOM is not set 820# CONFIG_HW_RANDOM is not set
795CONFIG_GEN_RTC=y 821CONFIG_GEN_RTC=y
796# CONFIG_GEN_RTC_X is not set 822# CONFIG_GEN_RTC_X is not set
797# CONFIG_DTLK is not set
798# CONFIG_R3964 is not set 823# CONFIG_R3964 is not set
799# CONFIG_APPLICOM is not set 824# CONFIG_APPLICOM is not set
800# CONFIG_AGP is not set 825# CONFIG_AGP is not set
@@ -807,10 +832,7 @@ CONFIG_MAX_RAW_DEVS=256
807# TPM devices 832# TPM devices
808# 833#
809# CONFIG_TCG_TPM is not set 834# CONFIG_TCG_TPM is not set
810 835CONFIG_DEVPORT=y
811#
812# I2C support
813#
814# CONFIG_I2C is not set 836# CONFIG_I2C is not set
815 837
816# 838#
@@ -823,30 +845,39 @@ CONFIG_MAX_RAW_DEVS=256
823# Dallas's 1-wire bus 845# Dallas's 1-wire bus
824# 846#
825# CONFIG_W1 is not set 847# CONFIG_W1 is not set
848# CONFIG_HWMON is not set
826 849
827# 850#
828# Hardware Monitoring support 851# Multifunction device drivers
829# 852#
830# CONFIG_HWMON is not set 853# CONFIG_MFD_SM501 is not set
831# CONFIG_HWMON_VID is not set
832 854
833# 855#
834# Multimedia devices 856# Multimedia devices
835# 857#
836# CONFIG_VIDEO_DEV is not set 858# CONFIG_VIDEO_DEV is not set
859# CONFIG_DVB_CORE is not set
860# CONFIG_DAB is not set
837 861
838# 862#
839# Digital Video Broadcasting Devices 863# Graphics support
840# 864#
841# CONFIG_DVB is not set 865# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
842 866
843# 867#
844# Graphics support 868# Display device support
845# 869#
846CONFIG_FIRMWARE_EDID=y 870# CONFIG_DISPLAY_SUPPORT is not set
871# CONFIG_VGASTATE is not set
847# CONFIG_FB is not set 872# CONFIG_FB is not set
848# CONFIG_FB_IBM_GXT4500 is not set 873# CONFIG_FB_IBM_GXT4500 is not set
849# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 874
875#
876# Console display driver support
877#
878CONFIG_VGA_CONSOLE=y
879# CONFIG_VGACON_SOFT_SCROLLBACK is not set
880CONFIG_DUMMY_CONSOLE=y
850 881
851# 882#
852# Sound 883# Sound
@@ -874,10 +905,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y
874# USB Gadget Support 905# USB Gadget Support
875# 906#
876# CONFIG_USB_GADGET is not set 907# CONFIG_USB_GADGET is not set
877
878#
879# MMC/SD Card support
880#
881# CONFIG_MMC is not set 908# CONFIG_MMC is not set
882 909
883# 910#
@@ -921,10 +948,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y
921# 948#
922 949
923# 950#
924# Virtualization
925#
926
927#
928# File systems 951# File systems
929# 952#
930CONFIG_EXT2_FS=y 953CONFIG_EXT2_FS=y
@@ -979,7 +1002,6 @@ CONFIG_GENERIC_ACL=y
979CONFIG_ISO9660_FS=y 1002CONFIG_ISO9660_FS=y
980CONFIG_JOLIET=y 1003CONFIG_JOLIET=y
981CONFIG_ZISOFS=y 1004CONFIG_ZISOFS=y
982CONFIG_ZISOFS_FS=y
983CONFIG_UDF_FS=m 1005CONFIG_UDF_FS=m
984CONFIG_UDF_NLS=y 1006CONFIG_UDF_NLS=y
985 1007
@@ -1045,6 +1067,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1045CONFIG_NFS_COMMON=y 1067CONFIG_NFS_COMMON=y
1046CONFIG_SUNRPC=y 1068CONFIG_SUNRPC=y
1047CONFIG_SUNRPC_GSS=y 1069CONFIG_SUNRPC_GSS=y
1070# CONFIG_SUNRPC_BIND34 is not set
1048CONFIG_RPCSEC_GSS_KRB5=y 1071CONFIG_RPCSEC_GSS_KRB5=y
1049CONFIG_RPCSEC_GSS_SPKM3=m 1072CONFIG_RPCSEC_GSS_SPKM3=m
1050# CONFIG_SMB_FS is not set 1073# CONFIG_SMB_FS is not set
@@ -1114,18 +1137,9 @@ CONFIG_NLS_ISO8859_1=y
1114# Distributed Lock Manager 1137# Distributed Lock Manager
1115# 1138#
1116CONFIG_DLM=m 1139CONFIG_DLM=m
1117CONFIG_DLM_TCP=y
1118# CONFIG_DLM_SCTP is not set
1119# CONFIG_DLM_DEBUG is not set 1140# CONFIG_DLM_DEBUG is not set
1120 1141# CONFIG_UCC_SLOW is not set
1121# 1142# CONFIG_UCC_FAST is not set
1122# iSeries device drivers
1123#
1124CONFIG_VIOCONS=y
1125CONFIG_VIODASD=y
1126CONFIG_VIOCD=m
1127CONFIG_VIOTAPE=m
1128CONFIG_VIOPATH=y
1129 1143
1130# 1144#
1131# Library routines 1145# Library routines
@@ -1133,6 +1147,7 @@ CONFIG_VIOPATH=y
1133CONFIG_BITREVERSE=y 1147CONFIG_BITREVERSE=y
1134CONFIG_CRC_CCITT=m 1148CONFIG_CRC_CCITT=m
1135# CONFIG_CRC16 is not set 1149# CONFIG_CRC16 is not set
1150# CONFIG_CRC_ITU_T is not set
1136CONFIG_CRC32=y 1151CONFIG_CRC32=y
1137CONFIG_LIBCRC32C=m 1152CONFIG_LIBCRC32C=m
1138CONFIG_ZLIB_INFLATE=y 1153CONFIG_ZLIB_INFLATE=y
@@ -1142,7 +1157,9 @@ CONFIG_TEXTSEARCH_KMP=m
1142CONFIG_TEXTSEARCH_BM=m 1157CONFIG_TEXTSEARCH_BM=m
1143CONFIG_TEXTSEARCH_FSM=m 1158CONFIG_TEXTSEARCH_FSM=m
1144CONFIG_PLIST=y 1159CONFIG_PLIST=y
1145CONFIG_IOMAP_COPY=y 1160CONFIG_HAS_IOMEM=y
1161CONFIG_HAS_IOPORT=y
1162CONFIG_HAS_DMA=y
1146 1163
1147# 1164#
1148# Instrumentation Support 1165# Instrumentation Support
@@ -1160,15 +1177,15 @@ CONFIG_MAGIC_SYSRQ=y
1160CONFIG_DEBUG_FS=y 1177CONFIG_DEBUG_FS=y
1161# CONFIG_HEADERS_CHECK is not set 1178# CONFIG_HEADERS_CHECK is not set
1162CONFIG_DEBUG_KERNEL=y 1179CONFIG_DEBUG_KERNEL=y
1163CONFIG_LOG_BUF_SHIFT=17 1180# CONFIG_DEBUG_SHIRQ is not set
1164CONFIG_DETECT_SOFTLOCKUP=y 1181CONFIG_DETECT_SOFTLOCKUP=y
1165# CONFIG_SCHEDSTATS is not set 1182# CONFIG_SCHEDSTATS is not set
1183# CONFIG_TIMER_STATS is not set
1166# CONFIG_DEBUG_SLAB is not set 1184# CONFIG_DEBUG_SLAB is not set
1167# CONFIG_DEBUG_RT_MUTEXES is not set 1185# CONFIG_DEBUG_RT_MUTEXES is not set
1168# CONFIG_RT_MUTEX_TESTER is not set 1186# CONFIG_RT_MUTEX_TESTER is not set
1169# CONFIG_DEBUG_SPINLOCK is not set 1187# CONFIG_DEBUG_SPINLOCK is not set
1170# CONFIG_DEBUG_MUTEXES is not set 1188# CONFIG_DEBUG_MUTEXES is not set
1171# CONFIG_DEBUG_RWSEMS is not set
1172# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1189# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1173# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1190# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1174# CONFIG_DEBUG_KOBJECT is not set 1191# CONFIG_DEBUG_KOBJECT is not set
@@ -1178,8 +1195,10 @@ CONFIG_DEBUG_BUGVERBOSE=y
1178# CONFIG_DEBUG_LIST is not set 1195# CONFIG_DEBUG_LIST is not set
1179# CONFIG_FORCED_INLINING is not set 1196# CONFIG_FORCED_INLINING is not set
1180# CONFIG_RCU_TORTURE_TEST is not set 1197# CONFIG_RCU_TORTURE_TEST is not set
1198# CONFIG_FAULT_INJECTION is not set
1181CONFIG_DEBUG_STACKOVERFLOW=y 1199CONFIG_DEBUG_STACKOVERFLOW=y
1182CONFIG_DEBUG_STACK_USAGE=y 1200CONFIG_DEBUG_STACK_USAGE=y
1201# CONFIG_DEBUG_PAGEALLOC is not set
1183# CONFIG_DEBUGGER is not set 1202# CONFIG_DEBUGGER is not set
1184CONFIG_IRQSTACKS=y 1203CONFIG_IRQSTACKS=y
1185# CONFIG_BOOTX_TEXT is not set 1204# CONFIG_BOOTX_TEXT is not set
@@ -1212,8 +1231,11 @@ CONFIG_CRYPTO_TGR192=m
1212# CONFIG_CRYPTO_GF128MUL is not set 1231# CONFIG_CRYPTO_GF128MUL is not set
1213CONFIG_CRYPTO_ECB=m 1232CONFIG_CRYPTO_ECB=m
1214CONFIG_CRYPTO_CBC=y 1233CONFIG_CRYPTO_CBC=y
1234CONFIG_CRYPTO_PCBC=m
1215# CONFIG_CRYPTO_LRW is not set 1235# CONFIG_CRYPTO_LRW is not set
1236# CONFIG_CRYPTO_CRYPTD is not set
1216CONFIG_CRYPTO_DES=y 1237CONFIG_CRYPTO_DES=y
1238# CONFIG_CRYPTO_FCRYPT is not set
1217CONFIG_CRYPTO_BLOWFISH=m 1239CONFIG_CRYPTO_BLOWFISH=m
1218CONFIG_CRYPTO_TWOFISH=m 1240CONFIG_CRYPTO_TWOFISH=m
1219CONFIG_CRYPTO_TWOFISH_COMMON=m 1241CONFIG_CRYPTO_TWOFISH_COMMON=m
@@ -1228,6 +1250,7 @@ CONFIG_CRYPTO_ANUBIS=m
1228CONFIG_CRYPTO_DEFLATE=m 1250CONFIG_CRYPTO_DEFLATE=m
1229CONFIG_CRYPTO_MICHAEL_MIC=m 1251CONFIG_CRYPTO_MICHAEL_MIC=m
1230CONFIG_CRYPTO_CRC32C=m 1252CONFIG_CRYPTO_CRC32C=m
1253# CONFIG_CRYPTO_CAMELLIA is not set
1231CONFIG_CRYPTO_TEST=m 1254CONFIG_CRYPTO_TEST=m
1232 1255
1233# 1256#
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig
index 97a57e996663..0507c8f7bfbc 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20-rc6 3# Linux kernel version: 2.6.21
4# Thu Feb 1 22:54:15 2007 4# Mon May 14 12:55:04 2007
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -23,7 +23,7 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
23CONFIG_ARCH_MAY_HAVE_PC_FDC=y 23CONFIG_ARCH_MAY_HAVE_PC_FDC=y
24CONFIG_PPC_OF=y 24CONFIG_PPC_OF=y
25CONFIG_PPC_UDBG_16550=y 25CONFIG_PPC_UDBG_16550=y
26CONFIG_GENERIC_TBSYNC=y 26# CONFIG_GENERIC_TBSYNC is not set
27CONFIG_AUDIT_ARCH=y 27CONFIG_AUDIT_ARCH=y
28CONFIG_GENERIC_BUG=y 28CONFIG_GENERIC_BUG=y
29# CONFIG_DEFAULT_UIMAGE is not set 29# CONFIG_DEFAULT_UIMAGE is not set
@@ -39,6 +39,7 @@ CONFIG_PPC_FPU=y
39# CONFIG_PPC_OF_PLATFORM_PCI is not set 39# CONFIG_PPC_OF_PLATFORM_PCI is not set
40CONFIG_ALTIVEC=y 40CONFIG_ALTIVEC=y
41CONFIG_PPC_STD_MMU=y 41CONFIG_PPC_STD_MMU=y
42CONFIG_PPC_MM_SLICES=y
42# CONFIG_VIRT_CPU_ACCOUNTING is not set 43# CONFIG_VIRT_CPU_ACCOUNTING is not set
43CONFIG_SMP=y 44CONFIG_SMP=y
44CONFIG_NR_CPUS=2 45CONFIG_NR_CPUS=2
@@ -59,15 +60,18 @@ CONFIG_LOCALVERSION_AUTO=y
59CONFIG_SWAP=y 60CONFIG_SWAP=y
60CONFIG_SYSVIPC=y 61CONFIG_SYSVIPC=y
61# CONFIG_IPC_NS is not set 62# CONFIG_IPC_NS is not set
63CONFIG_SYSVIPC_SYSCTL=y
62# CONFIG_POSIX_MQUEUE is not set 64# CONFIG_POSIX_MQUEUE is not set
63# CONFIG_BSD_PROCESS_ACCT is not set 65# CONFIG_BSD_PROCESS_ACCT is not set
64# CONFIG_TASKSTATS is not set 66# CONFIG_TASKSTATS is not set
65# CONFIG_UTS_NS is not set 67# CONFIG_UTS_NS is not set
66# CONFIG_AUDIT is not set 68# CONFIG_AUDIT is not set
67# CONFIG_IKCONFIG is not set 69# CONFIG_IKCONFIG is not set
70CONFIG_LOG_BUF_SHIFT=17
68# CONFIG_CPUSETS is not set 71# CONFIG_CPUSETS is not set
69CONFIG_SYSFS_DEPRECATED=y 72CONFIG_SYSFS_DEPRECATED=y
70# CONFIG_RELAY is not set 73# CONFIG_RELAY is not set
74CONFIG_BLK_DEV_INITRD=y
71CONFIG_INITRAMFS_SOURCE="" 75CONFIG_INITRAMFS_SOURCE=""
72# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 76# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
73CONFIG_SYSCTL=y 77CONFIG_SYSCTL=y
@@ -82,14 +86,19 @@ CONFIG_BUG=y
82CONFIG_ELF_CORE=y 86CONFIG_ELF_CORE=y
83CONFIG_BASE_FULL=y 87CONFIG_BASE_FULL=y
84CONFIG_FUTEX=y 88CONFIG_FUTEX=y
89CONFIG_ANON_INODES=y
85CONFIG_EPOLL=y 90CONFIG_EPOLL=y
91CONFIG_SIGNALFD=y
92CONFIG_TIMERFD=y
93CONFIG_EVENTFD=y
86CONFIG_SHMEM=y 94CONFIG_SHMEM=y
87CONFIG_SLAB=y
88CONFIG_VM_EVENT_COUNTERS=y 95CONFIG_VM_EVENT_COUNTERS=y
96CONFIG_SLAB=y
97# CONFIG_SLUB is not set
98# CONFIG_SLOB is not set
89CONFIG_RT_MUTEXES=y 99CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set 100# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 101CONFIG_BASE_SMALL=0
92# CONFIG_SLOB is not set
93 102
94# 103#
95# Loadable module support 104# Loadable module support
@@ -127,39 +136,38 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
127CONFIG_PPC_MULTIPLATFORM=y 136CONFIG_PPC_MULTIPLATFORM=y
128# CONFIG_EMBEDDED6xx is not set 137# CONFIG_EMBEDDED6xx is not set
129# CONFIG_APUS is not set 138# CONFIG_APUS is not set
130CONFIG_PPC_PSERIES=y 139# CONFIG_PPC_PSERIES is not set
131# CONFIG_PPC_ISERIES is not set 140# CONFIG_PPC_ISERIES is not set
132# CONFIG_PPC_MPC52xx is not set 141# CONFIG_PPC_MPC52xx is not set
142# CONFIG_PPC_MPC5200 is not set
133# CONFIG_PPC_PMAC is not set 143# CONFIG_PPC_PMAC is not set
134# CONFIG_PPC_MAPLE is not set 144# CONFIG_PPC_MAPLE is not set
135CONFIG_PPC_PASEMI=y 145CONFIG_PPC_PASEMI=y
146
147#
148# PA Semi PWRficient options
149#
150CONFIG_PPC_PASEMI_IOMMU=y
151CONFIG_PPC_PASEMI_MDIO=y
152# CONFIG_PPC_CELLEB is not set
153# CONFIG_PPC_PS3 is not set
136# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
137# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
138# CONFIG_PPC_IBM_CELL_BLADE is not set 156# CONFIG_PPC_IBM_CELL_BLADE is not set
139# CONFIG_PPC_PS3 is not set 157# CONFIG_PQ2ADS is not set
140CONFIG_PPC_NATIVE=y 158CONFIG_PPC_NATIVE=y
141# CONFIG_UDBG_RTAS_CONSOLE is not set 159CONFIG_MPIC=y
142CONFIG_XICS=y 160# CONFIG_MPIC_WEIRD is not set
161# CONFIG_PPC_I8259 is not set
143# CONFIG_U3_DART is not set 162# CONFIG_U3_DART is not set
144CONFIG_PPC_RTAS=y 163# CONFIG_PPC_RTAS is not set
145CONFIG_RTAS_ERROR_LOGGING=y
146CONFIG_RTAS_PROC=y
147# CONFIG_RTAS_FLASH is not set
148# CONFIG_MMIO_NVRAM is not set 164# CONFIG_MMIO_NVRAM is not set
149CONFIG_IBMVIO=y
150# CONFIG_IBMEBUS is not set
151# CONFIG_PPC_MPC106 is not set 165# CONFIG_PPC_MPC106 is not set
152# CONFIG_PPC_970_NAP is not set 166# CONFIG_PPC_970_NAP is not set
153# CONFIG_PPC_INDIRECT_IO is not set 167# CONFIG_PPC_INDIRECT_IO is not set
154# CONFIG_GENERIC_IOMAP is not set 168# CONFIG_GENERIC_IOMAP is not set
155# CONFIG_CPU_FREQ is not set 169# CONFIG_CPU_FREQ is not set
156# CONFIG_WANT_EARLY_SERIAL is not set 170# CONFIG_CPM2 is not set
157CONFIG_MPIC=y
158
159#
160# PA Semi PWRficient options
161#
162CONFIG_PPC_PASEMI_IOMMU=y
163 171
164# 172#
165# Kernel options 173# Kernel options
@@ -177,20 +185,14 @@ CONFIG_BINFMT_ELF=y
177# CONFIG_BINFMT_MISC is not set 185# CONFIG_BINFMT_MISC is not set
178CONFIG_FORCE_MAX_ZONEORDER=13 186CONFIG_FORCE_MAX_ZONEORDER=13
179CONFIG_IOMMU_VMERGE=y 187CONFIG_IOMMU_VMERGE=y
180# CONFIG_HOTPLUG_CPU is not set
181CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 188CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
182# CONFIG_KEXEC is not set 189# CONFIG_KEXEC is not set
183# CONFIG_CRASH_DUMP is not set 190# CONFIG_CRASH_DUMP is not set
184# CONFIG_IRQ_ALL_CPUS is not set 191# CONFIG_IRQ_ALL_CPUS is not set
185# CONFIG_PPC_SPLPAR is not set
186CONFIG_EEH=y
187# CONFIG_SCANLOG is not set
188# CONFIG_LPARCFG is not set
189# CONFIG_NUMA is not set 192# CONFIG_NUMA is not set
190CONFIG_ARCH_SELECT_MEMORY_MODEL=y 193CONFIG_ARCH_SELECT_MEMORY_MODEL=y
191CONFIG_ARCH_FLATMEM_ENABLE=y 194CONFIG_ARCH_FLATMEM_ENABLE=y
192CONFIG_ARCH_SPARSEMEM_ENABLE=y 195CONFIG_ARCH_SPARSEMEM_ENABLE=y
193CONFIG_ARCH_SPARSEMEM_DEFAULT=y
194CONFIG_ARCH_POPULATES_NODE_MAP=y 196CONFIG_ARCH_POPULATES_NODE_MAP=y
195CONFIG_SELECT_MEMORY_MODEL=y 197CONFIG_SELECT_MEMORY_MODEL=y
196CONFIG_FLATMEM_MANUAL=y 198CONFIG_FLATMEM_MANUAL=y
@@ -201,24 +203,28 @@ CONFIG_FLAT_NODE_MEM_MAP=y
201# CONFIG_SPARSEMEM_STATIC is not set 203# CONFIG_SPARSEMEM_STATIC is not set
202CONFIG_SPLIT_PTLOCK_CPUS=4 204CONFIG_SPLIT_PTLOCK_CPUS=4
203CONFIG_RESOURCES_64BIT=y 205CONFIG_RESOURCES_64BIT=y
206CONFIG_ZONE_DMA_FLAG=1
207# CONFIG_PPC_HAS_HASH_64K is not set
204# CONFIG_PPC_64K_PAGES is not set 208# CONFIG_PPC_64K_PAGES is not set
205# CONFIG_SCHED_SMT is not set 209# CONFIG_SCHED_SMT is not set
206CONFIG_PROC_DEVICETREE=y 210CONFIG_PROC_DEVICETREE=y
207# CONFIG_CMDLINE_BOOL is not set 211# CONFIG_CMDLINE_BOOL is not set
208# CONFIG_PM is not set 212# CONFIG_PM is not set
209# CONFIG_SECCOMP is not set 213# CONFIG_SECCOMP is not set
214# CONFIG_WANT_DEVICE_TREE is not set
210CONFIG_ISA_DMA_API=y 215CONFIG_ISA_DMA_API=y
211 216
212# 217#
213# Bus options 218# Bus options
214# 219#
220CONFIG_ZONE_DMA=y
215CONFIG_GENERIC_ISA_DMA=y 221CONFIG_GENERIC_ISA_DMA=y
216# CONFIG_MPIC_WEIRD is not set
217CONFIG_PPC_I8259=y
218# CONFIG_PPC_INDIRECT_PCI is not set 222# CONFIG_PPC_INDIRECT_PCI is not set
219CONFIG_PCI=y 223CONFIG_PCI=y
220CONFIG_PCI_DOMAINS=y 224CONFIG_PCI_DOMAINS=y
221# CONFIG_PCIEPORTBUS is not set 225# CONFIG_PCIEPORTBUS is not set
226CONFIG_ARCH_SUPPORTS_MSI=y
227# CONFIG_PCI_MSI is not set
222# CONFIG_PCI_DEBUG is not set 228# CONFIG_PCI_DEBUG is not set
223 229
224# 230#
@@ -237,10 +243,6 @@ CONFIG_CARDBUS=y
237# CONFIG_YENTA is not set 243# CONFIG_YENTA is not set
238# CONFIG_PD6729 is not set 244# CONFIG_PD6729 is not set
239# CONFIG_I82092 is not set 245# CONFIG_I82092 is not set
240
241#
242# PCI Hotplug Support
243#
244# CONFIG_HOTPLUG_PCI is not set 246# CONFIG_HOTPLUG_PCI is not set
245CONFIG_KERNEL_START=0xc000000000000000 247CONFIG_KERNEL_START=0xc000000000000000
246 248
@@ -252,14 +254,15 @@ CONFIG_NET=y
252# 254#
253# Networking options 255# Networking options
254# 256#
255# CONFIG_NETDEBUG is not set
256CONFIG_PACKET=y 257CONFIG_PACKET=y
257# CONFIG_PACKET_MMAP is not set 258# CONFIG_PACKET_MMAP is not set
258CONFIG_UNIX=y 259CONFIG_UNIX=y
259CONFIG_XFRM=y 260CONFIG_XFRM=y
260# CONFIG_XFRM_USER is not set 261# CONFIG_XFRM_USER is not set
261# CONFIG_XFRM_SUB_POLICY is not set 262# CONFIG_XFRM_SUB_POLICY is not set
263# CONFIG_XFRM_MIGRATE is not set
262CONFIG_NET_KEY=y 264CONFIG_NET_KEY=y
265# CONFIG_NET_KEY_MIGRATE is not set
263CONFIG_INET=y 266CONFIG_INET=y
264CONFIG_IP_MULTICAST=y 267CONFIG_IP_MULTICAST=y
265# CONFIG_IP_ADVANCED_ROUTER is not set 268# CONFIG_IP_ADVANCED_ROUTER is not set
@@ -331,7 +334,16 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_HAMRADIO is not set 334# CONFIG_HAMRADIO is not set
332# CONFIG_IRDA is not set 335# CONFIG_IRDA is not set
333# CONFIG_BT is not set 336# CONFIG_BT is not set
337# CONFIG_AF_RXRPC is not set
338
339#
340# Wireless
341#
342# CONFIG_CFG80211 is not set
343# CONFIG_WIRELESS_EXT is not set
344# CONFIG_MAC80211 is not set
334# CONFIG_IEEE80211 is not set 345# CONFIG_IEEE80211 is not set
346# CONFIG_RFKILL is not set
335 347
336# 348#
337# Device Drivers 349# Device Drivers
@@ -344,16 +356,13 @@ CONFIG_STANDALONE=y
344CONFIG_PREVENT_FIRMWARE_BUILD=y 356CONFIG_PREVENT_FIRMWARE_BUILD=y
345CONFIG_FW_LOADER=y 357CONFIG_FW_LOADER=y
346# CONFIG_DEBUG_DRIVER is not set 358# CONFIG_DEBUG_DRIVER is not set
359# CONFIG_DEBUG_DEVRES is not set
347# CONFIG_SYS_HYPERVISOR is not set 360# CONFIG_SYS_HYPERVISOR is not set
348 361
349# 362#
350# Connector - unified userspace <-> kernelspace linker 363# Connector - unified userspace <-> kernelspace linker
351# 364#
352# CONFIG_CONNECTOR is not set 365# CONFIG_CONNECTOR is not set
353
354#
355# Memory Technology Devices (MTD)
356#
357CONFIG_MTD=y 366CONFIG_MTD=y
358# CONFIG_MTD_DEBUG is not set 367# CONFIG_MTD_DEBUG is not set
359CONFIG_MTD_CONCAT=y 368CONFIG_MTD_CONCAT=y
@@ -389,7 +398,6 @@ CONFIG_MTD_CFI_I2=y
389# CONFIG_MTD_RAM is not set 398# CONFIG_MTD_RAM is not set
390# CONFIG_MTD_ROM is not set 399# CONFIG_MTD_ROM is not set
391# CONFIG_MTD_ABSENT is not set 400# CONFIG_MTD_ABSENT is not set
392# CONFIG_MTD_OBSOLETE_CHIPS is not set
393 401
394# 402#
395# Mapping drivers for chip access 403# Mapping drivers for chip access
@@ -412,17 +420,13 @@ CONFIG_MTD_PHRAM=y
412# CONFIG_MTD_DOC2000 is not set 420# CONFIG_MTD_DOC2000 is not set
413# CONFIG_MTD_DOC2001 is not set 421# CONFIG_MTD_DOC2001 is not set
414# CONFIG_MTD_DOC2001PLUS is not set 422# CONFIG_MTD_DOC2001PLUS is not set
415
416#
417# NAND Flash Device Drivers
418#
419# CONFIG_MTD_NAND is not set 423# CONFIG_MTD_NAND is not set
420# CONFIG_MTD_NAND_CAFE is not set 424# CONFIG_MTD_ONENAND is not set
421 425
422# 426#
423# OneNAND Flash Device Drivers 427# UBI - Unsorted block images
424# 428#
425# CONFIG_MTD_ONENAND is not set 429# CONFIG_MTD_UBI is not set
426 430
427# 431#
428# Parallel port support 432# Parallel port support
@@ -432,6 +436,7 @@ CONFIG_MTD_PHRAM=y
432# 436#
433# Plug and Play support 437# Plug and Play support
434# 438#
439# CONFIG_PNPACPI is not set
435 440
436# 441#
437# Block devices 442# Block devices
@@ -451,15 +456,16 @@ CONFIG_BLK_DEV_RAM=y
451CONFIG_BLK_DEV_RAM_COUNT=16 456CONFIG_BLK_DEV_RAM_COUNT=16
452CONFIG_BLK_DEV_RAM_SIZE=16384 457CONFIG_BLK_DEV_RAM_SIZE=16384
453CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 458CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
454CONFIG_BLK_DEV_INITRD=y
455# CONFIG_CDROM_PKTCDVD is not set 459# CONFIG_CDROM_PKTCDVD is not set
456# CONFIG_ATA_OVER_ETH is not set 460# CONFIG_ATA_OVER_ETH is not set
457 461
458# 462#
459# Misc devices 463# Misc devices
460# 464#
465# CONFIG_PHANTOM is not set
461# CONFIG_SGI_IOC4 is not set 466# CONFIG_SGI_IOC4 is not set
462# CONFIG_TIFM_CORE is not set 467# CONFIG_TIFM_CORE is not set
468# CONFIG_BLINK is not set
463 469
464# 470#
465# ATA/ATAPI/MFM/RLL support 471# ATA/ATAPI/MFM/RLL support
@@ -474,20 +480,22 @@ CONFIG_BLK_DEV_IDE=y
474CONFIG_BLK_DEV_IDEDISK=y 480CONFIG_BLK_DEV_IDEDISK=y
475CONFIG_IDEDISK_MULTI_MODE=y 481CONFIG_IDEDISK_MULTI_MODE=y
476# CONFIG_BLK_DEV_IDECS is not set 482# CONFIG_BLK_DEV_IDECS is not set
483# CONFIG_BLK_DEV_DELKIN is not set
477CONFIG_BLK_DEV_IDECD=y 484CONFIG_BLK_DEV_IDECD=y
478# CONFIG_BLK_DEV_IDETAPE is not set 485# CONFIG_BLK_DEV_IDETAPE is not set
479# CONFIG_BLK_DEV_IDEFLOPPY is not set 486# CONFIG_BLK_DEV_IDEFLOPPY is not set
480CONFIG_BLK_DEV_IDESCSI=y 487CONFIG_BLK_DEV_IDESCSI=y
481CONFIG_IDE_TASK_IOCTL=y 488CONFIG_IDE_TASK_IOCTL=y
489CONFIG_IDE_PROC_FS=y
482 490
483# 491#
484# IDE chipset support/bugfixes 492# IDE chipset support/bugfixes
485# 493#
486# CONFIG_IDE_GENERIC is not set 494# CONFIG_IDE_GENERIC is not set
487# CONFIG_BLK_DEV_IDEPCI is not set 495# CONFIG_BLK_DEV_IDEPCI is not set
496# CONFIG_IDEPCI_PCIBUS_ORDER is not set
488# CONFIG_IDE_ARM is not set 497# CONFIG_IDE_ARM is not set
489# CONFIG_BLK_DEV_IDEDMA is not set 498# CONFIG_BLK_DEV_IDEDMA is not set
490# CONFIG_IDEDMA_AUTO is not set
491# CONFIG_BLK_DEV_HD is not set 499# CONFIG_BLK_DEV_HD is not set
492 500
493# 501#
@@ -517,6 +525,7 @@ CONFIG_SCSI_MULTI_LUN=y
517CONFIG_SCSI_CONSTANTS=y 525CONFIG_SCSI_CONSTANTS=y
518CONFIG_SCSI_LOGGING=y 526CONFIG_SCSI_LOGGING=y
519# CONFIG_SCSI_SCAN_ASYNC is not set 527# CONFIG_SCSI_SCAN_ASYNC is not set
528CONFIG_SCSI_WAIT_SCAN=m
520 529
521# 530#
522# SCSI Transports 531# SCSI Transports
@@ -550,7 +559,6 @@ CONFIG_SCSI_3W_9XXX=y
550# CONFIG_SCSI_FUTURE_DOMAIN is not set 559# CONFIG_SCSI_FUTURE_DOMAIN is not set
551# CONFIG_SCSI_GDTH is not set 560# CONFIG_SCSI_GDTH is not set
552# CONFIG_SCSI_IPS is not set 561# CONFIG_SCSI_IPS is not set
553# CONFIG_SCSI_IBMVSCSI is not set
554# CONFIG_SCSI_INITIO is not set 562# CONFIG_SCSI_INITIO is not set
555# CONFIG_SCSI_INIA100 is not set 563# CONFIG_SCSI_INIA100 is not set
556# CONFIG_SCSI_STEX is not set 564# CONFIG_SCSI_STEX is not set
@@ -563,6 +571,7 @@ CONFIG_SCSI_3W_9XXX=y
563# CONFIG_SCSI_DC395x is not set 571# CONFIG_SCSI_DC395x is not set
564# CONFIG_SCSI_DC390T is not set 572# CONFIG_SCSI_DC390T is not set
565# CONFIG_SCSI_DEBUG is not set 573# CONFIG_SCSI_DEBUG is not set
574# CONFIG_SCSI_ESP_CORE is not set
566# CONFIG_SCSI_SRP is not set 575# CONFIG_SCSI_SRP is not set
567 576
568# 577#
@@ -578,7 +587,7 @@ CONFIG_SCSI_3W_9XXX=y
578CONFIG_ATA=y 587CONFIG_ATA=y
579# CONFIG_ATA_NONSTANDARD is not set 588# CONFIG_ATA_NONSTANDARD is not set
580# CONFIG_SATA_AHCI is not set 589# CONFIG_SATA_AHCI is not set
581CONFIG_SATA_SVW=y 590# CONFIG_SATA_SVW is not set
582# CONFIG_ATA_PIIX is not set 591# CONFIG_ATA_PIIX is not set
583CONFIG_SATA_MV=y 592CONFIG_SATA_MV=y
584# CONFIG_SATA_NV is not set 593# CONFIG_SATA_NV is not set
@@ -586,16 +595,18 @@ CONFIG_SATA_MV=y
586# CONFIG_SATA_QSTOR is not set 595# CONFIG_SATA_QSTOR is not set
587# CONFIG_SATA_PROMISE is not set 596# CONFIG_SATA_PROMISE is not set
588# CONFIG_SATA_SX4 is not set 597# CONFIG_SATA_SX4 is not set
589CONFIG_SATA_SIL=y 598# CONFIG_SATA_SIL is not set
590CONFIG_SATA_SIL24=y 599CONFIG_SATA_SIL24=y
591# CONFIG_SATA_SIS is not set 600# CONFIG_SATA_SIS is not set
592# CONFIG_SATA_ULI is not set 601# CONFIG_SATA_ULI is not set
593# CONFIG_SATA_VIA is not set 602# CONFIG_SATA_VIA is not set
594# CONFIG_SATA_VITESSE is not set 603# CONFIG_SATA_VITESSE is not set
604# CONFIG_SATA_INIC162X is not set
595# CONFIG_PATA_ALI is not set 605# CONFIG_PATA_ALI is not set
596# CONFIG_PATA_AMD is not set 606# CONFIG_PATA_AMD is not set
597# CONFIG_PATA_ARTOP is not set 607# CONFIG_PATA_ARTOP is not set
598# CONFIG_PATA_ATIIXP is not set 608# CONFIG_PATA_ATIIXP is not set
609# CONFIG_PATA_CMD640_PCI is not set
599# CONFIG_PATA_CMD64X is not set 610# CONFIG_PATA_CMD64X is not set
600# CONFIG_PATA_CS5520 is not set 611# CONFIG_PATA_CS5520 is not set
601# CONFIG_PATA_CS5530 is not set 612# CONFIG_PATA_CS5530 is not set
@@ -607,6 +618,7 @@ CONFIG_ATA_GENERIC=y
607# CONFIG_PATA_HPT3X2N is not set 618# CONFIG_PATA_HPT3X2N is not set
608# CONFIG_PATA_HPT3X3 is not set 619# CONFIG_PATA_HPT3X3 is not set
609# CONFIG_PATA_IT821X is not set 620# CONFIG_PATA_IT821X is not set
621# CONFIG_PATA_IT8213 is not set
610# CONFIG_PATA_JMICRON is not set 622# CONFIG_PATA_JMICRON is not set
611# CONFIG_PATA_TRIFLEX is not set 623# CONFIG_PATA_TRIFLEX is not set
612# CONFIG_PATA_MARVELL is not set 624# CONFIG_PATA_MARVELL is not set
@@ -644,27 +656,26 @@ CONFIG_ATA_GENERIC=y
644# 656#
645# IEEE 1394 (FireWire) support 657# IEEE 1394 (FireWire) support
646# 658#
659# CONFIG_FIREWIRE is not set
647CONFIG_IEEE1394=y 660CONFIG_IEEE1394=y
648 661
649# 662#
650# Subsystem Options 663# Subsystem Options
651# 664#
652# CONFIG_IEEE1394_VERBOSEDEBUG is not set 665# CONFIG_IEEE1394_VERBOSEDEBUG is not set
653# CONFIG_IEEE1394_OUI_DB is not set
654# CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set
655# CONFIG_IEEE1394_EXPORT_FULL_API is not set
656 666
657# 667#
658# Device Drivers 668# Controllers
659# 669#
660CONFIG_IEEE1394_PCILYNX=y 670CONFIG_IEEE1394_PCILYNX=y
661CONFIG_IEEE1394_OHCI1394=y 671CONFIG_IEEE1394_OHCI1394=y
662 672
663# 673#
664# Protocol Drivers 674# Protocols
665# 675#
666# CONFIG_IEEE1394_VIDEO1394 is not set 676# CONFIG_IEEE1394_VIDEO1394 is not set
667CONFIG_IEEE1394_SBP2=y 677CONFIG_IEEE1394_SBP2=y
678# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set
668# CONFIG_IEEE1394_ETH1394 is not set 679# CONFIG_IEEE1394_ETH1394 is not set
669# CONFIG_IEEE1394_DV1394 is not set 680# CONFIG_IEEE1394_DV1394 is not set
670CONFIG_IEEE1394_RAWIO=y 681CONFIG_IEEE1394_RAWIO=y
@@ -673,12 +684,7 @@ CONFIG_IEEE1394_RAWIO=y
673# I2O device support 684# I2O device support
674# 685#
675# CONFIG_I2O is not set 686# CONFIG_I2O is not set
676 687# CONFIG_MACINTOSH_DRIVERS is not set
677#
678# Macintosh device drivers
679#
680# CONFIG_MAC_EMUMOUSEBTN is not set
681# CONFIG_WINDFARM is not set
682 688
683# 689#
684# Network device support 690# Network device support
@@ -697,7 +703,20 @@ CONFIG_DUMMY=y
697# 703#
698# PHY device support 704# PHY device support
699# 705#
700# CONFIG_PHYLIB is not set 706CONFIG_PHYLIB=y
707
708#
709# MII PHY device drivers
710#
711CONFIG_MARVELL_PHY=y
712# CONFIG_DAVICOM_PHY is not set
713# CONFIG_QSEMI_PHY is not set
714# CONFIG_LXT_PHY is not set
715# CONFIG_CICADA_PHY is not set
716# CONFIG_VITESSE_PHY is not set
717# CONFIG_SMSC_PHY is not set
718# CONFIG_BROADCOM_PHY is not set
719# CONFIG_FIXED_PHY is not set
701 720
702# 721#
703# Ethernet (10 or 100Mbit) 722# Ethernet (10 or 100Mbit)
@@ -714,7 +733,6 @@ CONFIG_MII=y
714# 733#
715# CONFIG_NET_TULIP is not set 734# CONFIG_NET_TULIP is not set
716# CONFIG_HP100 is not set 735# CONFIG_HP100 is not set
717CONFIG_IBMVETH=y
718CONFIG_NET_PCI=y 736CONFIG_NET_PCI=y
719# CONFIG_PCNET32 is not set 737# CONFIG_PCNET32 is not set
720# CONFIG_AMD8111_ETH is not set 738# CONFIG_AMD8111_ETH is not set
@@ -722,7 +740,7 @@ CONFIG_NET_PCI=y
722# CONFIG_B44 is not set 740# CONFIG_B44 is not set
723# CONFIG_FORCEDETH is not set 741# CONFIG_FORCEDETH is not set
724# CONFIG_DGRS is not set 742# CONFIG_DGRS is not set
725CONFIG_EEPRO100=y 743# CONFIG_EEPRO100 is not set
726# CONFIG_E100 is not set 744# CONFIG_E100 is not set
727# CONFIG_FEALNX is not set 745# CONFIG_FEALNX is not set
728# CONFIG_NATSEMI is not set 746# CONFIG_NATSEMI is not set
@@ -733,6 +751,7 @@ CONFIG_EEPRO100=y
733# CONFIG_EPIC100 is not set 751# CONFIG_EPIC100 is not set
734# CONFIG_SUNDANCE is not set 752# CONFIG_SUNDANCE is not set
735# CONFIG_VIA_RHINE is not set 753# CONFIG_VIA_RHINE is not set
754# CONFIG_SC92031 is not set
736 755
737# 756#
738# Ethernet (1000 Mbit) 757# Ethernet (1000 Mbit)
@@ -754,15 +773,20 @@ CONFIG_E1000_NAPI=y
754CONFIG_TIGON3=y 773CONFIG_TIGON3=y
755# CONFIG_BNX2 is not set 774# CONFIG_BNX2 is not set
756# CONFIG_QLA3XXX is not set 775# CONFIG_QLA3XXX is not set
776# CONFIG_ATL1 is not set
757 777
758# 778#
759# Ethernet (10000 Mbit) 779# Ethernet (10000 Mbit)
760# 780#
761# CONFIG_CHELSIO_T1 is not set 781# CONFIG_CHELSIO_T1 is not set
782# CONFIG_CHELSIO_T3 is not set
762# CONFIG_IXGB is not set 783# CONFIG_IXGB is not set
763# CONFIG_S2IO is not set 784# CONFIG_S2IO is not set
764# CONFIG_MYRI10GE is not set 785# CONFIG_MYRI10GE is not set
765# CONFIG_NETXEN_NIC is not set 786# CONFIG_NETXEN_NIC is not set
787CONFIG_PASEMI_MAC=y
788# CONFIG_MLX4_CORE is not set
789CONFIG_MLX4_DEBUG=y
766 790
767# 791#
768# Token Ring devices 792# Token Ring devices
@@ -770,9 +794,20 @@ CONFIG_TIGON3=y
770# CONFIG_TR is not set 794# CONFIG_TR is not set
771 795
772# 796#
773# Wireless LAN (non-hamradio) 797# Wireless LAN
798#
799# CONFIG_WLAN_PRE80211 is not set
800# CONFIG_WLAN_80211 is not set
801
802#
803# USB Network Adapters
774# 804#
775# CONFIG_NET_RADIO is not set 805# CONFIG_USB_CATC is not set
806# CONFIG_USB_KAWETH is not set
807# CONFIG_USB_PEGASUS is not set
808# CONFIG_USB_RTL8150 is not set
809# CONFIG_USB_USBNET_MII is not set
810# CONFIG_USB_USBNET is not set
776 811
777# 812#
778# PCMCIA network device support 813# PCMCIA network device support
@@ -834,8 +869,10 @@ CONFIG_INPUT_KEYBOARD=y
834CONFIG_INPUT_MOUSE=y 869CONFIG_INPUT_MOUSE=y
835# CONFIG_MOUSE_PS2 is not set 870# CONFIG_MOUSE_PS2 is not set
836# CONFIG_MOUSE_SERIAL is not set 871# CONFIG_MOUSE_SERIAL is not set
872# CONFIG_MOUSE_APPLETOUCH is not set
837# CONFIG_MOUSE_VSXXXAA is not set 873# CONFIG_MOUSE_VSXXXAA is not set
838# CONFIG_INPUT_JOYSTICK is not set 874# CONFIG_INPUT_JOYSTICK is not set
875# CONFIG_INPUT_TABLET is not set
839# CONFIG_INPUT_TOUCHSCREEN is not set 876# CONFIG_INPUT_TOUCHSCREEN is not set
840# CONFIG_INPUT_MISC is not set 877# CONFIG_INPUT_MISC is not set
841 878
@@ -870,29 +907,21 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
870# 907#
871CONFIG_SERIAL_CORE=y 908CONFIG_SERIAL_CORE=y
872CONFIG_SERIAL_CORE_CONSOLE=y 909CONFIG_SERIAL_CORE_CONSOLE=y
873# CONFIG_SERIAL_ICOM is not set
874# CONFIG_SERIAL_JSM is not set 910# CONFIG_SERIAL_JSM is not set
911# CONFIG_SERIAL_OF_PLATFORM is not set
875CONFIG_UNIX98_PTYS=y 912CONFIG_UNIX98_PTYS=y
876CONFIG_LEGACY_PTYS=y 913CONFIG_LEGACY_PTYS=y
877CONFIG_LEGACY_PTY_COUNT=4 914CONFIG_LEGACY_PTY_COUNT=4
878CONFIG_HVC_DRIVER=y
879CONFIG_HVC_CONSOLE=y
880CONFIG_HVC_RTAS=y
881# CONFIG_HVCS is not set
882 915
883# 916#
884# IPMI 917# IPMI
885# 918#
886# CONFIG_IPMI_HANDLER is not set 919# CONFIG_IPMI_HANDLER is not set
887
888#
889# Watchdog Cards
890#
891# CONFIG_WATCHDOG is not set 920# CONFIG_WATCHDOG is not set
892CONFIG_HW_RANDOM=y 921CONFIG_HW_RANDOM=y
922CONFIG_HW_RANDOM_PASEMI=y
893CONFIG_GEN_RTC=y 923CONFIG_GEN_RTC=y
894CONFIG_GEN_RTC_X=y 924CONFIG_GEN_RTC_X=y
895# CONFIG_DTLK is not set
896# CONFIG_R3964 is not set 925# CONFIG_R3964 is not set
897# CONFIG_APPLICOM is not set 926# CONFIG_APPLICOM is not set
898# CONFIG_AGP is not set 927# CONFIG_AGP is not set
@@ -912,11 +941,9 @@ CONFIG_MAX_RAW_DEVS=256
912# TPM devices 941# TPM devices
913# 942#
914# CONFIG_TCG_TPM is not set 943# CONFIG_TCG_TPM is not set
915 944CONFIG_DEVPORT=y
916#
917# I2C support
918#
919CONFIG_I2C=y 945CONFIG_I2C=y
946CONFIG_I2C_BOARDINFO=y
920CONFIG_I2C_CHARDEV=y 947CONFIG_I2C_CHARDEV=y
921 948
922# 949#
@@ -940,16 +967,18 @@ CONFIG_I2C_ALGOPCA=y
940# CONFIG_I2C_NFORCE2 is not set 967# CONFIG_I2C_NFORCE2 is not set
941# CONFIG_I2C_OCORES is not set 968# CONFIG_I2C_OCORES is not set
942# CONFIG_I2C_PARPORT_LIGHT is not set 969# CONFIG_I2C_PARPORT_LIGHT is not set
970CONFIG_I2C_PASEMI=y
943# CONFIG_I2C_PROSAVAGE is not set 971# CONFIG_I2C_PROSAVAGE is not set
944# CONFIG_I2C_SAVAGE4 is not set 972# CONFIG_I2C_SAVAGE4 is not set
973# CONFIG_I2C_SIMTEC is not set
945# CONFIG_I2C_SIS5595 is not set 974# CONFIG_I2C_SIS5595 is not set
946# CONFIG_I2C_SIS630 is not set 975# CONFIG_I2C_SIS630 is not set
947# CONFIG_I2C_SIS96X is not set 976# CONFIG_I2C_SIS96X is not set
948# CONFIG_I2C_STUB is not set 977# CONFIG_I2C_STUB is not set
978# CONFIG_I2C_TINY_USB is not set
949# CONFIG_I2C_VIA is not set 979# CONFIG_I2C_VIA is not set
950# CONFIG_I2C_VIAPRO is not set 980# CONFIG_I2C_VIAPRO is not set
951# CONFIG_I2C_VOODOO3 is not set 981# CONFIG_I2C_VOODOO3 is not set
952# CONFIG_I2C_PCA_ISA is not set
953 982
954# 983#
955# Miscellaneous I2C Chip support 984# Miscellaneous I2C Chip support
@@ -963,7 +992,7 @@ CONFIG_SENSORS_EEPROM=y
963# CONFIG_SENSORS_MAX6875 is not set 992# CONFIG_SENSORS_MAX6875 is not set
964# CONFIG_I2C_DEBUG_CORE is not set 993# CONFIG_I2C_DEBUG_CORE is not set
965# CONFIG_I2C_DEBUG_ALGO is not set 994# CONFIG_I2C_DEBUG_ALGO is not set
966CONFIG_I2C_DEBUG_BUS=y 995# CONFIG_I2C_DEBUG_BUS is not set
967# CONFIG_I2C_DEBUG_CHIP is not set 996# CONFIG_I2C_DEBUG_CHIP is not set
968 997
969# 998#
@@ -976,16 +1005,14 @@ CONFIG_I2C_DEBUG_BUS=y
976# Dallas's 1-wire bus 1005# Dallas's 1-wire bus
977# 1006#
978# CONFIG_W1 is not set 1007# CONFIG_W1 is not set
979
980#
981# Hardware Monitoring support
982#
983CONFIG_HWMON=y 1008CONFIG_HWMON=y
984CONFIG_HWMON_VID=y 1009CONFIG_HWMON_VID=y
985# CONFIG_SENSORS_ABITUGURU is not set 1010# CONFIG_SENSORS_ABITUGURU is not set
1011# CONFIG_SENSORS_AD7418 is not set
986# CONFIG_SENSORS_ADM1021 is not set 1012# CONFIG_SENSORS_ADM1021 is not set
987# CONFIG_SENSORS_ADM1025 is not set 1013# CONFIG_SENSORS_ADM1025 is not set
988# CONFIG_SENSORS_ADM1026 is not set 1014# CONFIG_SENSORS_ADM1026 is not set
1015# CONFIG_SENSORS_ADM1029 is not set
989# CONFIG_SENSORS_ADM1031 is not set 1016# CONFIG_SENSORS_ADM1031 is not set
990# CONFIG_SENSORS_ADM9240 is not set 1017# CONFIG_SENSORS_ADM9240 is not set
991# CONFIG_SENSORS_ASB100 is not set 1018# CONFIG_SENSORS_ASB100 is not set
@@ -1008,6 +1035,7 @@ CONFIG_SENSORS_LM85=y
1008CONFIG_SENSORS_LM90=y 1035CONFIG_SENSORS_LM90=y
1009# CONFIG_SENSORS_LM92 is not set 1036# CONFIG_SENSORS_LM92 is not set
1010# CONFIG_SENSORS_MAX1619 is not set 1037# CONFIG_SENSORS_MAX1619 is not set
1038# CONFIG_SENSORS_MAX6650 is not set
1011# CONFIG_SENSORS_PC87360 is not set 1039# CONFIG_SENSORS_PC87360 is not set
1012# CONFIG_SENSORS_PC87427 is not set 1040# CONFIG_SENSORS_PC87427 is not set
1013# CONFIG_SENSORS_SIS5595 is not set 1041# CONFIG_SENSORS_SIS5595 is not set
@@ -1027,29 +1055,50 @@ CONFIG_SENSORS_LM90=y
1027# CONFIG_HWMON_DEBUG_CHIP is not set 1055# CONFIG_HWMON_DEBUG_CHIP is not set
1028 1056
1029# 1057#
1030# Multimedia devices 1058# Multifunction device drivers
1031# 1059#
1032# CONFIG_VIDEO_DEV is not set 1060# CONFIG_MFD_SM501 is not set
1033 1061
1034# 1062#
1035# Digital Video Broadcasting Devices 1063# Multimedia devices
1036# 1064#
1037# CONFIG_DVB is not set 1065# CONFIG_VIDEO_DEV is not set
1066# CONFIG_DVB_CORE is not set
1067CONFIG_DAB=y
1038# CONFIG_USB_DABUSB is not set 1068# CONFIG_USB_DABUSB is not set
1039 1069
1040# 1070#
1041# Graphics support 1071# Graphics support
1042# 1072#
1043CONFIG_FIRMWARE_EDID=y 1073CONFIG_BACKLIGHT_LCD_SUPPORT=y
1074CONFIG_BACKLIGHT_CLASS_DEVICE=y
1075CONFIG_LCD_CLASS_DEVICE=m
1076
1077#
1078# Display device support
1079#
1080# CONFIG_DISPLAY_SUPPORT is not set
1081CONFIG_VGASTATE=y
1044CONFIG_FB=y 1082CONFIG_FB=y
1083CONFIG_FIRMWARE_EDID=y
1045CONFIG_FB_DDC=y 1084CONFIG_FB_DDC=y
1046CONFIG_FB_CFB_FILLRECT=y 1085CONFIG_FB_CFB_FILLRECT=y
1047CONFIG_FB_CFB_COPYAREA=y 1086CONFIG_FB_CFB_COPYAREA=y
1048CONFIG_FB_CFB_IMAGEBLIT=y 1087CONFIG_FB_CFB_IMAGEBLIT=y
1088# CONFIG_FB_SYS_FILLRECT is not set
1089# CONFIG_FB_SYS_COPYAREA is not set
1090# CONFIG_FB_SYS_IMAGEBLIT is not set
1091# CONFIG_FB_SYS_FOPS is not set
1092CONFIG_FB_DEFERRED_IO=y
1093# CONFIG_FB_SVGALIB is not set
1049CONFIG_FB_MACMODES=y 1094CONFIG_FB_MACMODES=y
1050# CONFIG_FB_BACKLIGHT is not set 1095CONFIG_FB_BACKLIGHT=y
1051CONFIG_FB_MODE_HELPERS=y 1096CONFIG_FB_MODE_HELPERS=y
1052CONFIG_FB_TILEBLITTING=y 1097CONFIG_FB_TILEBLITTING=y
1098
1099#
1100# Frame buffer hardware drivers
1101#
1053# CONFIG_FB_CIRRUS is not set 1102# CONFIG_FB_CIRRUS is not set
1054# CONFIG_FB_PM2 is not set 1103# CONFIG_FB_PM2 is not set
1055# CONFIG_FB_CYBER2000 is not set 1104# CONFIG_FB_CYBER2000 is not set
@@ -1060,28 +1109,27 @@ CONFIG_FB_VGA16=y
1060# CONFIG_FB_S1D13XXX is not set 1109# CONFIG_FB_S1D13XXX is not set
1061CONFIG_FB_NVIDIA=y 1110CONFIG_FB_NVIDIA=y
1062CONFIG_FB_NVIDIA_I2C=y 1111CONFIG_FB_NVIDIA_I2C=y
1063CONFIG_FB_RIVA=y 1112# CONFIG_FB_NVIDIA_DEBUG is not set
1064CONFIG_FB_RIVA_I2C=y 1113CONFIG_FB_NVIDIA_BACKLIGHT=y
1065# CONFIG_FB_RIVA_DEBUG is not set 1114# CONFIG_FB_RIVA is not set
1066CONFIG_FB_MATROX=y 1115# CONFIG_FB_MATROX is not set
1067CONFIG_FB_MATROX_MILLENIUM=y
1068CONFIG_FB_MATROX_MYSTIQUE=y
1069CONFIG_FB_MATROX_G=y
1070CONFIG_FB_MATROX_I2C=y
1071CONFIG_FB_MATROX_MAVEN=y
1072CONFIG_FB_MATROX_MULTIHEAD=y
1073CONFIG_FB_RADEON=y 1116CONFIG_FB_RADEON=y
1074CONFIG_FB_RADEON_I2C=y 1117CONFIG_FB_RADEON_I2C=y
1118CONFIG_FB_RADEON_BACKLIGHT=y
1075# CONFIG_FB_RADEON_DEBUG is not set 1119# CONFIG_FB_RADEON_DEBUG is not set
1076# CONFIG_FB_ATY128 is not set 1120# CONFIG_FB_ATY128 is not set
1077# CONFIG_FB_ATY is not set 1121# CONFIG_FB_ATY is not set
1122# CONFIG_FB_S3 is not set
1078# CONFIG_FB_SAVAGE is not set 1123# CONFIG_FB_SAVAGE is not set
1079# CONFIG_FB_SIS is not set 1124# CONFIG_FB_SIS is not set
1080# CONFIG_FB_NEOMAGIC is not set 1125# CONFIG_FB_NEOMAGIC is not set
1081# CONFIG_FB_KYRO is not set 1126# CONFIG_FB_KYRO is not set
1082# CONFIG_FB_3DFX is not set 1127# CONFIG_FB_3DFX is not set
1083# CONFIG_FB_VOODOO1 is not set 1128# CONFIG_FB_VOODOO1 is not set
1129# CONFIG_FB_VT8623 is not set
1084# CONFIG_FB_TRIDENT is not set 1130# CONFIG_FB_TRIDENT is not set
1131# CONFIG_FB_ARK is not set
1132# CONFIG_FB_PM3 is not set
1085# CONFIG_FB_IBM_GXT4500 is not set 1133# CONFIG_FB_IBM_GXT4500 is not set
1086# CONFIG_FB_VIRTUAL is not set 1134# CONFIG_FB_VIRTUAL is not set
1087 1135
@@ -1097,15 +1145,10 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
1097# CONFIG_FONTS is not set 1145# CONFIG_FONTS is not set
1098CONFIG_FONT_8x8=y 1146CONFIG_FONT_8x8=y
1099CONFIG_FONT_8x16=y 1147CONFIG_FONT_8x16=y
1100
1101#
1102# Logo configuration
1103#
1104CONFIG_LOGO=y 1148CONFIG_LOGO=y
1105CONFIG_LOGO_LINUX_MONO=y 1149CONFIG_LOGO_LINUX_MONO=y
1106CONFIG_LOGO_LINUX_VGA16=y 1150CONFIG_LOGO_LINUX_VGA16=y
1107CONFIG_LOGO_LINUX_CLUT224=y 1151CONFIG_LOGO_LINUX_CLUT224=y
1108# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1109 1152
1110# 1153#
1111# Sound 1154# Sound
@@ -1211,6 +1254,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1211# 1254#
1212CONFIG_SND_USB_AUDIO=y 1255CONFIG_SND_USB_AUDIO=y
1213CONFIG_SND_USB_USX2Y=y 1256CONFIG_SND_USB_USX2Y=y
1257# CONFIG_SND_USB_CAIAQ is not set
1214 1258
1215# 1259#
1216# PCMCIA devices 1260# PCMCIA devices
@@ -1219,6 +1263,11 @@ CONFIG_SND_USB_USX2Y=y
1219# CONFIG_SND_PDAUDIOCF is not set 1263# CONFIG_SND_PDAUDIOCF is not set
1220 1264
1221# 1265#
1266# System on Chip audio support
1267#
1268# CONFIG_SND_SOC is not set
1269
1270#
1222# Open Sound System 1271# Open Sound System
1223# 1272#
1224# CONFIG_SOUND_PRIME is not set 1273# CONFIG_SOUND_PRIME is not set
@@ -1227,6 +1276,15 @@ CONFIG_SND_USB_USX2Y=y
1227# HID Devices 1276# HID Devices
1228# 1277#
1229CONFIG_HID=y 1278CONFIG_HID=y
1279# CONFIG_HID_DEBUG is not set
1280
1281#
1282# USB Input Devices
1283#
1284CONFIG_USB_HID=y
1285# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1286# CONFIG_HID_FF is not set
1287# CONFIG_USB_HIDDEV is not set
1230 1288
1231# 1289#
1232# USB support 1290# USB support
@@ -1241,7 +1299,7 @@ CONFIG_USB=y
1241# Miscellaneous USB options 1299# Miscellaneous USB options
1242# 1300#
1243CONFIG_USB_DEVICEFS=y 1301CONFIG_USB_DEVICEFS=y
1244# CONFIG_USB_BANDWIDTH is not set 1302# CONFIG_USB_DEVICE_CLASS is not set
1245# CONFIG_USB_DYNAMIC_MINORS is not set 1303# CONFIG_USB_DYNAMIC_MINORS is not set
1246# CONFIG_USB_OTG is not set 1304# CONFIG_USB_OTG is not set
1247 1305
@@ -1252,9 +1310,15 @@ CONFIG_USB_EHCI_HCD=y
1252# CONFIG_USB_EHCI_SPLIT_ISO is not set 1310# CONFIG_USB_EHCI_SPLIT_ISO is not set
1253# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1311# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1254# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1312# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1313# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
1255# CONFIG_USB_ISP116X_HCD is not set 1314# CONFIG_USB_ISP116X_HCD is not set
1256CONFIG_USB_OHCI_HCD=y 1315CONFIG_USB_OHCI_HCD=y
1257# CONFIG_USB_OHCI_BIG_ENDIAN is not set 1316CONFIG_USB_OHCI_HCD_PPC_OF=y
1317CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
1318# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
1319CONFIG_USB_OHCI_HCD_PCI=y
1320CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1321CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1258CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1322CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1259CONFIG_USB_UHCI_HCD=y 1323CONFIG_USB_UHCI_HCD=y
1260CONFIG_USB_SL811_HCD=y 1324CONFIG_USB_SL811_HCD=y
@@ -1289,41 +1353,11 @@ CONFIG_USB_STORAGE=y
1289CONFIG_USB_LIBUSUAL=y 1353CONFIG_USB_LIBUSUAL=y
1290 1354
1291# 1355#
1292# USB Input Devices
1293#
1294CONFIG_USB_HID=y
1295# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1296# CONFIG_HID_FF is not set
1297# CONFIG_USB_HIDDEV is not set
1298# CONFIG_USB_AIPTEK is not set
1299# CONFIG_USB_WACOM is not set
1300# CONFIG_USB_ACECAD is not set
1301# CONFIG_USB_KBTAB is not set
1302# CONFIG_USB_POWERMATE is not set
1303# CONFIG_USB_TOUCHSCREEN is not set
1304# CONFIG_USB_YEALINK is not set
1305# CONFIG_USB_XPAD is not set
1306# CONFIG_USB_ATI_REMOTE is not set
1307# CONFIG_USB_ATI_REMOTE2 is not set
1308# CONFIG_USB_KEYSPAN_REMOTE is not set
1309# CONFIG_USB_APPLETOUCH is not set
1310
1311#
1312# USB Imaging devices 1356# USB Imaging devices
1313# 1357#
1314# CONFIG_USB_MDC800 is not set 1358# CONFIG_USB_MDC800 is not set
1315# CONFIG_USB_MICROTEK is not set 1359# CONFIG_USB_MICROTEK is not set
1316 1360# CONFIG_USB_MON is not set
1317#
1318# USB Network Adapters
1319#
1320# CONFIG_USB_CATC is not set
1321# CONFIG_USB_KAWETH is not set
1322# CONFIG_USB_PEGASUS is not set
1323# CONFIG_USB_RTL8150 is not set
1324# CONFIG_USB_USBNET_MII is not set
1325# CONFIG_USB_USBNET is not set
1326CONFIG_USB_MON=y
1327 1361
1328# 1362#
1329# USB port drivers 1363# USB port drivers
@@ -1344,6 +1378,7 @@ CONFIG_USB_MON=y
1344# CONFIG_USB_RIO500 is not set 1378# CONFIG_USB_RIO500 is not set
1345# CONFIG_USB_LEGOTOWER is not set 1379# CONFIG_USB_LEGOTOWER is not set
1346# CONFIG_USB_LCD is not set 1380# CONFIG_USB_LCD is not set
1381# CONFIG_USB_BERRY_CHARGE is not set
1347# CONFIG_USB_LED is not set 1382# CONFIG_USB_LED is not set
1348# CONFIG_USB_CYPRESS_CY7C63 is not set 1383# CONFIG_USB_CYPRESS_CY7C63 is not set
1349# CONFIG_USB_CYTHERM is not set 1384# CONFIG_USB_CYTHERM is not set
@@ -1354,6 +1389,7 @@ CONFIG_USB_MON=y
1354# CONFIG_USB_SISUSBVGA is not set 1389# CONFIG_USB_SISUSBVGA is not set
1355# CONFIG_USB_LD is not set 1390# CONFIG_USB_LD is not set
1356# CONFIG_USB_TRANCEVIBRATOR is not set 1391# CONFIG_USB_TRANCEVIBRATOR is not set
1392# CONFIG_USB_IOWARRIOR is not set
1357# CONFIG_USB_TEST is not set 1393# CONFIG_USB_TEST is not set
1358 1394
1359# 1395#
@@ -1364,10 +1400,6 @@ CONFIG_USB_MON=y
1364# USB Gadget Support 1400# USB Gadget Support
1365# 1401#
1366# CONFIG_USB_GADGET is not set 1402# CONFIG_USB_GADGET is not set
1367
1368#
1369# MMC/SD Card support
1370#
1371# CONFIG_MMC is not set 1403# CONFIG_MMC is not set
1372 1404
1373# 1405#
@@ -1408,24 +1440,37 @@ CONFIG_RTC_INTF_SYSFS=y
1408CONFIG_RTC_INTF_PROC=y 1440CONFIG_RTC_INTF_PROC=y
1409CONFIG_RTC_INTF_DEV=y 1441CONFIG_RTC_INTF_DEV=y
1410# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set 1442# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1443# CONFIG_RTC_DRV_TEST is not set
1411 1444
1412# 1445#
1413# RTC drivers 1446# I2C RTC drivers
1414# 1447#
1415# CONFIG_RTC_DRV_X1205 is not set
1416CONFIG_RTC_DRV_DS1307=y 1448CONFIG_RTC_DRV_DS1307=y
1417# CONFIG_RTC_DRV_DS1553 is not set
1418# CONFIG_RTC_DRV_ISL1208 is not set
1419# CONFIG_RTC_DRV_DS1672 is not set 1449# CONFIG_RTC_DRV_DS1672 is not set
1420# CONFIG_RTC_DRV_DS1742 is not set 1450# CONFIG_RTC_DRV_MAX6900 is not set
1451# CONFIG_RTC_DRV_RS5C372 is not set
1452# CONFIG_RTC_DRV_ISL1208 is not set
1453# CONFIG_RTC_DRV_X1205 is not set
1421# CONFIG_RTC_DRV_PCF8563 is not set 1454# CONFIG_RTC_DRV_PCF8563 is not set
1422# CONFIG_RTC_DRV_PCF8583 is not set 1455# CONFIG_RTC_DRV_PCF8583 is not set
1423# CONFIG_RTC_DRV_RS5C372 is not set 1456
1457#
1458# SPI RTC drivers
1459#
1460
1461#
1462# Platform RTC drivers
1463#
1464# CONFIG_RTC_DRV_DS1553 is not set
1465# CONFIG_RTC_DRV_DS1742 is not set
1424# CONFIG_RTC_DRV_M48T86 is not set 1466# CONFIG_RTC_DRV_M48T86 is not set
1425# CONFIG_RTC_DRV_TEST is not set
1426# CONFIG_RTC_DRV_V3020 is not set 1467# CONFIG_RTC_DRV_V3020 is not set
1427 1468
1428# 1469#
1470# on-CPU RTC drivers
1471#
1472
1473#
1429# DMA Engine support 1474# DMA Engine support
1430# 1475#
1431# CONFIG_DMA_ENGINE is not set 1476# CONFIG_DMA_ENGINE is not set
@@ -1439,10 +1484,6 @@ CONFIG_RTC_DRV_DS1307=y
1439# 1484#
1440 1485
1441# 1486#
1442# Virtualization
1443#
1444
1445#
1446# File systems 1487# File systems
1447# 1488#
1448CONFIG_EXT2_FS=y 1489CONFIG_EXT2_FS=y
@@ -1466,7 +1507,8 @@ CONFIG_FS_POSIX_ACL=y
1466# CONFIG_OCFS2_FS is not set 1507# CONFIG_OCFS2_FS is not set
1467# CONFIG_MINIX_FS is not set 1508# CONFIG_MINIX_FS is not set
1468# CONFIG_ROMFS_FS is not set 1509# CONFIG_ROMFS_FS is not set
1469# CONFIG_INOTIFY is not set 1510CONFIG_INOTIFY=y
1511CONFIG_INOTIFY_USER=y
1470# CONFIG_QUOTA is not set 1512# CONFIG_QUOTA is not set
1471CONFIG_DNOTIFY=y 1513CONFIG_DNOTIFY=y
1472CONFIG_AUTOFS_FS=y 1514CONFIG_AUTOFS_FS=y
@@ -1538,6 +1580,7 @@ CONFIG_LOCKD=y
1538CONFIG_LOCKD_V4=y 1580CONFIG_LOCKD_V4=y
1539CONFIG_NFS_COMMON=y 1581CONFIG_NFS_COMMON=y
1540CONFIG_SUNRPC=y 1582CONFIG_SUNRPC=y
1583# CONFIG_SUNRPC_BIND34 is not set
1541# CONFIG_RPCSEC_GSS_KRB5 is not set 1584# CONFIG_RPCSEC_GSS_KRB5 is not set
1542# CONFIG_RPCSEC_GSS_SPKM3 is not set 1585# CONFIG_RPCSEC_GSS_SPKM3 is not set
1543# CONFIG_SMB_FS is not set 1586# CONFIG_SMB_FS is not set
@@ -1567,6 +1610,7 @@ CONFIG_MSDOS_PARTITION=y
1567# CONFIG_SUN_PARTITION is not set 1610# CONFIG_SUN_PARTITION is not set
1568# CONFIG_KARMA_PARTITION is not set 1611# CONFIG_KARMA_PARTITION is not set
1569# CONFIG_EFI_PARTITION is not set 1612# CONFIG_EFI_PARTITION is not set
1613# CONFIG_SYSV68_PARTITION is not set
1570 1614
1571# 1615#
1572# Native Language Support 1616# Native Language Support
@@ -1616,6 +1660,8 @@ CONFIG_NLS_ISO8859_1=y
1616# Distributed Lock Manager 1660# Distributed Lock Manager
1617# 1661#
1618# CONFIG_DLM is not set 1662# CONFIG_DLM is not set
1663# CONFIG_UCC_SLOW is not set
1664# CONFIG_UCC_FAST is not set
1619 1665
1620# 1666#
1621# Library routines 1667# Library routines
@@ -1623,10 +1669,13 @@ CONFIG_NLS_ISO8859_1=y
1623CONFIG_BITREVERSE=y 1669CONFIG_BITREVERSE=y
1624CONFIG_CRC_CCITT=y 1670CONFIG_CRC_CCITT=y
1625# CONFIG_CRC16 is not set 1671# CONFIG_CRC16 is not set
1672# CONFIG_CRC_ITU_T is not set
1626CONFIG_CRC32=y 1673CONFIG_CRC32=y
1627# CONFIG_LIBCRC32C is not set 1674# CONFIG_LIBCRC32C is not set
1628CONFIG_PLIST=y 1675CONFIG_PLIST=y
1629CONFIG_IOMAP_COPY=y 1676CONFIG_HAS_IOMEM=y
1677CONFIG_HAS_IOPORT=y
1678CONFIG_HAS_DMA=y
1630 1679
1631# 1680#
1632# Instrumentation Support 1681# Instrumentation Support
@@ -1645,32 +1694,34 @@ CONFIG_MAGIC_SYSRQ=y
1645# CONFIG_DEBUG_FS is not set 1694# CONFIG_DEBUG_FS is not set
1646# CONFIG_HEADERS_CHECK is not set 1695# CONFIG_HEADERS_CHECK is not set
1647CONFIG_DEBUG_KERNEL=y 1696CONFIG_DEBUG_KERNEL=y
1648CONFIG_LOG_BUF_SHIFT=17 1697# CONFIG_DEBUG_SHIRQ is not set
1649CONFIG_DETECT_SOFTLOCKUP=y 1698CONFIG_DETECT_SOFTLOCKUP=y
1650# CONFIG_SCHEDSTATS is not set 1699# CONFIG_SCHEDSTATS is not set
1700# CONFIG_TIMER_STATS is not set
1651# CONFIG_DEBUG_SLAB is not set 1701# CONFIG_DEBUG_SLAB is not set
1652# CONFIG_DEBUG_RT_MUTEXES is not set 1702# CONFIG_DEBUG_RT_MUTEXES is not set
1653# CONFIG_RT_MUTEX_TESTER is not set 1703# CONFIG_RT_MUTEX_TESTER is not set
1654# CONFIG_DEBUG_SPINLOCK is not set 1704# CONFIG_DEBUG_SPINLOCK is not set
1655# CONFIG_DEBUG_MUTEXES is not set 1705# CONFIG_DEBUG_MUTEXES is not set
1656# CONFIG_DEBUG_RWSEMS is not set
1657# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1706# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1658# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1707# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1659# CONFIG_DEBUG_KOBJECT is not set 1708# CONFIG_DEBUG_KOBJECT is not set
1660CONFIG_DEBUG_BUGVERBOSE=y 1709CONFIG_DEBUG_BUGVERBOSE=y
1661CONFIG_DEBUG_INFO=y 1710# CONFIG_DEBUG_INFO is not set
1662# CONFIG_DEBUG_VM is not set 1711# CONFIG_DEBUG_VM is not set
1663# CONFIG_DEBUG_LIST is not set 1712# CONFIG_DEBUG_LIST is not set
1664CONFIG_FORCED_INLINING=y 1713# CONFIG_FORCED_INLINING is not set
1665# CONFIG_RCU_TORTURE_TEST is not set 1714# CONFIG_RCU_TORTURE_TEST is not set
1715# CONFIG_FAULT_INJECTION is not set
1666# CONFIG_DEBUG_STACKOVERFLOW is not set 1716# CONFIG_DEBUG_STACKOVERFLOW is not set
1667# CONFIG_DEBUG_STACK_USAGE is not set 1717# CONFIG_DEBUG_STACK_USAGE is not set
1718# CONFIG_DEBUG_PAGEALLOC is not set
1668CONFIG_DEBUGGER=y 1719CONFIG_DEBUGGER=y
1669CONFIG_XMON=y 1720CONFIG_XMON=y
1670CONFIG_XMON_DEFAULT=y 1721CONFIG_XMON_DEFAULT=y
1671CONFIG_XMON_DISASSEMBLY=y 1722CONFIG_XMON_DISASSEMBLY=y
1672# CONFIG_IRQSTACKS is not set 1723# CONFIG_IRQSTACKS is not set
1673CONFIG_BOOTX_TEXT=y 1724# CONFIG_BOOTX_TEXT is not set
1674# CONFIG_PPC_EARLY_DEBUG is not set 1725# CONFIG_PPC_EARLY_DEBUG is not set
1675 1726
1676# 1727#
@@ -1700,8 +1751,11 @@ CONFIG_CRYPTO_SHA1=y
1700# CONFIG_CRYPTO_GF128MUL is not set 1751# CONFIG_CRYPTO_GF128MUL is not set
1701CONFIG_CRYPTO_ECB=m 1752CONFIG_CRYPTO_ECB=m
1702CONFIG_CRYPTO_CBC=y 1753CONFIG_CRYPTO_CBC=y
1754CONFIG_CRYPTO_PCBC=m
1703# CONFIG_CRYPTO_LRW is not set 1755# CONFIG_CRYPTO_LRW is not set
1756# CONFIG_CRYPTO_CRYPTD is not set
1704CONFIG_CRYPTO_DES=y 1757CONFIG_CRYPTO_DES=y
1758# CONFIG_CRYPTO_FCRYPT is not set
1705# CONFIG_CRYPTO_BLOWFISH is not set 1759# CONFIG_CRYPTO_BLOWFISH is not set
1706# CONFIG_CRYPTO_TWOFISH is not set 1760# CONFIG_CRYPTO_TWOFISH is not set
1707# CONFIG_CRYPTO_SERPENT is not set 1761# CONFIG_CRYPTO_SERPENT is not set
@@ -1715,6 +1769,7 @@ CONFIG_CRYPTO_DES=y
1715# CONFIG_CRYPTO_DEFLATE is not set 1769# CONFIG_CRYPTO_DEFLATE is not set
1716# CONFIG_CRYPTO_MICHAEL_MIC is not set 1770# CONFIG_CRYPTO_MICHAEL_MIC is not set
1717# CONFIG_CRYPTO_CRC32C is not set 1771# CONFIG_CRYPTO_CRC32C is not set
1772# CONFIG_CRYPTO_CAMELLIA is not set
1718# CONFIG_CRYPTO_TEST is not set 1773# CONFIG_CRYPTO_TEST is not set
1719 1774
1720# 1775#
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 9cb24d20f0f9..b2b5d664d328 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -235,6 +235,7 @@ static struct cpu_spec cpu_specs[] = {
235 .icache_bsize = 128, 235 .icache_bsize = 128,
236 .dcache_bsize = 128, 236 .dcache_bsize = 128,
237 .num_pmcs = 8, 237 .num_pmcs = 8,
238 .pmc_type = PPC_PMC_IBM,
238 .cpu_setup = __setup_cpu_ppc970, 239 .cpu_setup = __setup_cpu_ppc970,
239 .cpu_restore = __restore_cpu_ppc970, 240 .cpu_restore = __restore_cpu_ppc970,
240 .oprofile_cpu_type = "ppc64/970MP", 241 .oprofile_cpu_type = "ppc64/970MP",
@@ -251,6 +252,7 @@ static struct cpu_spec cpu_specs[] = {
251 .icache_bsize = 128, 252 .icache_bsize = 128,
252 .dcache_bsize = 128, 253 .dcache_bsize = 128,
253 .num_pmcs = 8, 254 .num_pmcs = 8,
255 .pmc_type = PPC_PMC_IBM,
254 .cpu_setup = __setup_cpu_ppc970MP, 256 .cpu_setup = __setup_cpu_ppc970MP,
255 .cpu_restore = __restore_cpu_ppc970, 257 .cpu_restore = __restore_cpu_ppc970,
256 .oprofile_cpu_type = "ppc64/970MP", 258 .oprofile_cpu_type = "ppc64/970MP",
@@ -317,6 +319,7 @@ static struct cpu_spec cpu_specs[] = {
317 .icache_bsize = 128, 319 .icache_bsize = 128,
318 .dcache_bsize = 128, 320 .dcache_bsize = 128,
319 .num_pmcs = 6, 321 .num_pmcs = 6,
322 .pmc_type = PPC_PMC_IBM,
320 .oprofile_cpu_type = "ppc64/power6", 323 .oprofile_cpu_type = "ppc64/power6",
321 .oprofile_type = PPC_OPROFILE_POWER4, 324 .oprofile_type = PPC_OPROFILE_POWER4,
322 .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV, 325 .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV,
@@ -335,6 +338,7 @@ static struct cpu_spec cpu_specs[] = {
335 .icache_bsize = 128, 338 .icache_bsize = 128,
336 .dcache_bsize = 128, 339 .dcache_bsize = 128,
337 .num_pmcs = 6, 340 .num_pmcs = 6,
341 .pmc_type = PPC_PMC_IBM,
338 .oprofile_cpu_type = "ppc64/power6", 342 .oprofile_cpu_type = "ppc64/power6",
339 .oprofile_type = PPC_OPROFILE_POWER4, 343 .oprofile_type = PPC_OPROFILE_POWER4,
340 .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV, 344 .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV,
@@ -836,7 +840,7 @@ static struct cpu_spec cpu_specs[] = {
836 .pvr_mask = 0xffff0000, 840 .pvr_mask = 0xffff0000,
837 .pvr_value = 0x80040000, 841 .pvr_value = 0x80040000,
838 .cpu_name = "7448", 842 .cpu_name = "7448",
839 .cpu_features = CPU_FTRS_7447A, 843 .cpu_features = CPU_FTRS_7448,
840 .cpu_user_features = COMMON_USER | 844 .cpu_user_features = COMMON_USER |
841 PPC_FEATURE_HAS_ALTIVEC_COMP | PPC_FEATURE_PPC_LE, 845 PPC_FEATURE_HAS_ALTIVEC_COMP | PPC_FEATURE_PPC_LE,
842 .icache_bsize = 32, 846 .icache_bsize = 32,
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index c29d1652a421..4074c0b31453 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -596,7 +596,11 @@ fast_exception_return:
596 mr r12,r4 /* restart at exc_exit_restart */ 596 mr r12,r4 /* restart at exc_exit_restart */
597 b 2b 597 b 2b
598 598
599 .comm fee_restarts,4 599 .section .bss
600 .align 2
601fee_restarts:
602 .space 4
603 .previous
600 604
601/* aargh, a nonrecoverable interrupt, panic */ 605/* aargh, a nonrecoverable interrupt, panic */
602/* aargh, we don't know which trap this is */ 606/* aargh, we don't know which trap this is */
@@ -851,7 +855,11 @@ load_dbcr0:
851 mtspr SPRN_DBSR,r11 /* clear all pending debug events */ 855 mtspr SPRN_DBSR,r11 /* clear all pending debug events */
852 blr 856 blr
853 857
854 .comm global_dbcr0,8 858 .section .bss
859 .align 4
860global_dbcr0:
861 .space 8
862 .previous
855#endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ 863#endif /* !(CONFIG_4xx || CONFIG_BOOKE) */
856 864
857do_work: /* r10 contains MSR_KERNEL here */ 865do_work: /* r10 contains MSR_KERNEL here */
@@ -926,7 +934,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_601)
926 /* shouldn't return */ 934 /* shouldn't return */
927 b 4b 935 b 4b
928 936
929 .comm ee_restarts,4 937 .section .bss
938 .align 2
939ee_restarts:
940 .space 4
941 .previous
930 942
931/* 943/*
932 * PROM code for specific machines follows. Put it 944 * PROM code for specific machines follows. Put it
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c
index 84c34d979a88..d501c23e5159 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -427,11 +427,13 @@ static int __devinit of_pci_phb_probe(struct of_device *dev,
427 /* Process "ranges" property */ 427 /* Process "ranges" property */
428 pci_process_bridge_OF_ranges(phb, dev->node, 0); 428 pci_process_bridge_OF_ranges(phb, dev->node, 0);
429 429
430 /* Setup IO space. 430 /* Setup IO space. We use the non-dynamic version of that code here,
431 * This will not work properly for ISA IOs, something needs to be done 431 * which doesn't quite support unplugging. Next kernel release will
432 * about it if we ever generalize that way of probing PCI brigdes 432 * have a better fix for this.
433 * Note also that we don't do ISA, this will also be fixed with a
434 * more massive rework.
433 */ 435 */
434 pci_setup_phb_io_dynamic(phb, 0); 436 pci_setup_phb_io(phb, 0);
435 437
436 /* Init pci_dn data structures */ 438 /* Init pci_dn data structures */
437 pci_devs_phb_init_dynamic(phb); 439 pci_devs_phb_init_dynamic(phb);
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index b0409e19b1c1..249cca27a9b8 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -41,6 +41,7 @@
41 41
42unsigned long pci_probe_only = 1; 42unsigned long pci_probe_only = 1;
43int pci_assign_all_buses = 0; 43int pci_assign_all_buses = 0;
44static int pci_initial_scan_done;
44 45
45static void fixup_resource(struct resource *res, struct pci_dev *dev); 46static void fixup_resource(struct resource *res, struct pci_dev *dev);
46static void do_bus_setup(struct pci_bus *bus); 47static void do_bus_setup(struct pci_bus *bus);
@@ -604,6 +605,8 @@ static int __init pcibios_init(void)
604 /* map in PCI I/O space */ 605 /* map in PCI I/O space */
605 phbs_remap_io(); 606 phbs_remap_io();
606 607
608 pci_initial_scan_done = 1;
609
607 printk(KERN_DEBUG "PCI: Probing PCI hardware done\n"); 610 printk(KERN_DEBUG "PCI: Probing PCI hardware done\n");
608 611
609 return 0; 612 return 0;
@@ -1042,13 +1045,16 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
1042 } 1045 }
1043} 1046}
1044 1047
1045void __init pci_setup_phb_io(struct pci_controller *hose, int primary) 1048void __devinit pci_setup_phb_io(struct pci_controller *hose, int primary)
1046{ 1049{
1047 unsigned long size = hose->pci_io_size; 1050 unsigned long size = hose->pci_io_size;
1048 unsigned long io_virt_offset; 1051 unsigned long io_virt_offset;
1049 struct resource *res; 1052 struct resource *res;
1050 struct device_node *isa_dn; 1053 struct device_node *isa_dn;
1051 1054
1055 if (size == 0)
1056 return;
1057
1052 hose->io_base_virt = reserve_phb_iospace(size); 1058 hose->io_base_virt = reserve_phb_iospace(size);
1053 DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", 1059 DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n",
1054 hose->global_number, hose->io_base_phys, 1060 hose->global_number, hose->io_base_phys,
@@ -1069,6 +1075,15 @@ void __init pci_setup_phb_io(struct pci_controller *hose, int primary)
1069 res = &hose->io_resource; 1075 res = &hose->io_resource;
1070 res->start += io_virt_offset; 1076 res->start += io_virt_offset;
1071 res->end += io_virt_offset; 1077 res->end += io_virt_offset;
1078
1079 /* If this is called after the initial PCI scan, then we need to
1080 * proceed to IO mappings now
1081 */
1082 if (pci_initial_scan_done)
1083 __ioremap_explicit(hose->io_base_phys,
1084 (unsigned long)hose->io_base_virt,
1085 hose->pci_io_size,
1086 _PAGE_NO_CACHE | _PAGE_GUARDED);
1072} 1087}
1073 1088
1074void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, 1089void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose,
@@ -1078,6 +1093,9 @@ void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose,
1078 unsigned long io_virt_offset; 1093 unsigned long io_virt_offset;
1079 struct resource *res; 1094 struct resource *res;
1080 1095
1096 if (size == 0)
1097 return;
1098
1081 hose->io_base_virt = __ioremap(hose->io_base_phys, size, 1099 hose->io_base_virt = __ioremap(hose->io_base_phys, size,
1082 _PAGE_NO_CACHE | _PAGE_GUARDED); 1100 _PAGE_NO_CACHE | _PAGE_GUARDED);
1083 DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", 1101 DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n",
@@ -1106,6 +1124,9 @@ static int get_bus_io_range(struct pci_bus *bus, unsigned long *start_phys,
1106 /* Root Bus */ 1124 /* Root Bus */
1107 res = &hose->io_resource; 1125 res = &hose->io_resource;
1108 1126
1127 if (res->end == 0 && res->start == 0)
1128 return 1;
1129
1109 *start_virt = pci_io_base + res->start; 1130 *start_virt = pci_io_base + res->start;
1110 *start_phys = *start_virt + hose->io_base_phys 1131 *start_phys = *start_virt + hose->io_base_phys
1111 - (unsigned long) hose->io_base_virt; 1132 - (unsigned long) hose->io_base_virt;
diff --git a/arch/powerpc/kernel/pmc.c b/arch/powerpc/kernel/pmc.c
index 24d7b7c99bb9..ea04e0ab3f2f 100644
--- a/arch/powerpc/kernel/pmc.c
+++ b/arch/powerpc/kernel/pmc.c
@@ -20,8 +20,8 @@
20#include <asm/cputable.h> 20#include <asm/cputable.h>
21#include <asm/pmc.h> 21#include <asm/pmc.h>
22 22
23#ifndef MMCR0_PMA0 23#ifndef MMCR0_PMAO
24#define MMCR0_PMA0 0 24#define MMCR0_PMAO 0
25#endif 25#endif
26 26
27static void dummy_perf(struct pt_regs *regs) 27static void dummy_perf(struct pt_regs *regs)
@@ -30,7 +30,7 @@ static void dummy_perf(struct pt_regs *regs)
30 mtpmr(PMRN_PMGC0, mfpmr(PMRN_PMGC0) & ~PMGC0_PMIE); 30 mtpmr(PMRN_PMGC0, mfpmr(PMRN_PMGC0) & ~PMGC0_PMIE);
31#elif defined(CONFIG_PPC64) || defined(CONFIG_6xx) 31#elif defined(CONFIG_PPC64) || defined(CONFIG_6xx)
32 if (cur_cpu_spec->pmc_type == PPC_PMC_IBM) 32 if (cur_cpu_spec->pmc_type == PPC_PMC_IBM)
33 mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~(MMCR0_PMXE|MMCR0_PMA0)); 33 mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~(MMCR0_PMXE|MMCR0_PMAO));
34#else 34#else
35 mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~MMCR0_PMXE); 35 mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~MMCR0_PMXE);
36#endif 36#endif
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index c065b5550368..066a6a7a25b8 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -1472,6 +1472,11 @@ static int of_finish_dynamic_node(struct device_node *node)
1472 node->name = of_get_property(node, "name", NULL); 1472 node->name = of_get_property(node, "name", NULL);
1473 node->type = of_get_property(node, "device_type", NULL); 1473 node->type = of_get_property(node, "device_type", NULL);
1474 1474
1475 if (!node->name)
1476 node->name = "<NULL>";
1477 if (!node->type)
1478 node->type = "<NULL>";
1479
1475 if (!parent) { 1480 if (!parent) {
1476 err = -ENODEV; 1481 err = -ENODEV;
1477 goto out; 1482 goto out;
diff --git a/arch/powerpc/kernel/rtas-proc.c b/arch/powerpc/kernel/rtas-proc.c
index 190b7ed1dbfb..f2e3bc714d76 100644
--- a/arch/powerpc/kernel/rtas-proc.c
+++ b/arch/powerpc/kernel/rtas-proc.c
@@ -379,7 +379,7 @@ static ssize_t ppc_rtas_progress_write(struct file *file,
379/* ****************************************************************** */ 379/* ****************************************************************** */
380static int ppc_rtas_progress_show(struct seq_file *m, void *v) 380static int ppc_rtas_progress_show(struct seq_file *m, void *v)
381{ 381{
382 if (progress_led) 382 if (progress_led[0])
383 seq_printf(m, "%s\n", progress_led); 383 seq_printf(m, "%s\n", progress_led);
384 return 0; 384 return 0;
385} 385}
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 22f1ef1b3100..d577b71db375 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -201,13 +201,6 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic,
201 /* Can deadlock when called with interrupts disabled */ 201 /* Can deadlock when called with interrupts disabled */
202 WARN_ON(irqs_disabled()); 202 WARN_ON(irqs_disabled());
203 203
204 /* remove 'self' from the map */
205 if (cpu_isset(smp_processor_id(), map))
206 cpu_clear(smp_processor_id(), map);
207
208 /* sanity check the map, remove any non-online processors. */
209 cpus_and(map, map, cpu_online_map);
210
211 if (unlikely(smp_ops == NULL)) 204 if (unlikely(smp_ops == NULL))
212 return ret; 205 return ret;
213 206
@@ -222,10 +215,17 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic,
222 /* Must grab online cpu count with preempt disabled, otherwise 215 /* Must grab online cpu count with preempt disabled, otherwise
223 * it can change. */ 216 * it can change. */
224 num_cpus = num_online_cpus() - 1; 217 num_cpus = num_online_cpus() - 1;
225 if (!num_cpus || cpus_empty(map)) { 218 if (!num_cpus)
226 ret = 0; 219 goto done;
227 goto out; 220
228 } 221 /* remove 'self' from the map */
222 if (cpu_isset(smp_processor_id(), map))
223 cpu_clear(smp_processor_id(), map);
224
225 /* sanity check the map, remove any non-online processors. */
226 cpus_and(map, map, cpu_online_map);
227 if (cpus_empty(map))
228 goto done;
229 229
230 call_data = &data; 230 call_data = &data;
231 smp_wmb(); 231 smp_wmb();
@@ -263,6 +263,7 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic,
263 } 263 }
264 } 264 }
265 265
266 done:
266 ret = 0; 267 ret = 0;
267 268
268 out: 269 out:
@@ -282,16 +283,17 @@ EXPORT_SYMBOL(smp_call_function);
282int smp_call_function_single(int cpu, void (*func) (void *info), void *info, int nonatomic, 283int smp_call_function_single(int cpu, void (*func) (void *info), void *info, int nonatomic,
283 int wait) 284 int wait)
284{ 285{
285 cpumask_t map=CPU_MASK_NONE; 286 cpumask_t map = CPU_MASK_NONE;
287 int ret = -EBUSY;
286 288
287 if (!cpu_online(cpu)) 289 if (!cpu_online(cpu))
288 return -EINVAL; 290 return -EINVAL;
289 291
290 if (cpu == smp_processor_id())
291 return -EBUSY;
292
293 cpu_set(cpu, map); 292 cpu_set(cpu, map);
294 return smp_call_function_map(func,info,nonatomic,wait,map); 293 if (cpu != get_cpu())
294 ret = smp_call_function_map(func,info,nonatomic,wait,map);
295 put_cpu();
296 return ret;
295} 297}
296EXPORT_SYMBOL(smp_call_function_single); 298EXPORT_SYMBOL(smp_call_function_single);
297 299
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 132067313147..21c39ff2dc39 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -34,7 +34,7 @@ SECTIONS
34 /* Text and gots */ 34 /* Text and gots */
35 .text : { 35 .text : {
36 _text = .; 36 _text = .;
37 *(.text .text.*) 37 TEXT_TEXT
38 SCHED_TEXT 38 SCHED_TEXT
39 LOCK_TEXT 39 LOCK_TEXT
40 KPROBES_TEXT 40 KPROBES_TEXT
@@ -167,7 +167,7 @@ SECTIONS
167#ifdef CONFIG_PPC32 167#ifdef CONFIG_PPC32
168 .data : 168 .data :
169 { 169 {
170 *(.data) 170 DATA_DATA
171 *(.sdata) 171 *(.sdata)
172 *(.got.plt) *(.got) 172 *(.got.plt) *(.got)
173 } 173 }
diff --git a/arch/powerpc/lib/rheap.c b/arch/powerpc/lib/rheap.c
index b2f6dcc59600..180ee2933ab9 100644
--- a/arch/powerpc/lib/rheap.c
+++ b/arch/powerpc/lib/rheap.c
@@ -468,25 +468,19 @@ unsigned long rh_alloc_align(rh_info_t * info, int size, int alignment, const ch
468 if (blk->size == size) { 468 if (blk->size == size) {
469 /* Move from free list to taken list */ 469 /* Move from free list to taken list */
470 list_del(&blk->list); 470 list_del(&blk->list);
471 blk->owner = owner; 471 newblk = blk;
472 start = blk->start; 472 } else {
473 473 newblk = get_slot(info);
474 attach_taken_block(info, blk); 474 newblk->start = blk->start;
475 newblk->size = size;
475 476
476 return start; 477 /* blk still in free list, with updated start, size */
478 blk->start += size;
479 blk->size -= size;
477 } 480 }
478 481
479 newblk = get_slot(info);
480 newblk->start = blk->start;
481 newblk->size = size;
482 newblk->owner = owner; 482 newblk->owner = owner;
483
484 /* blk still in free list, with updated start, size */
485 blk->start += size;
486 blk->size -= size;
487
488 start = newblk->start; 483 start = newblk->start;
489
490 attach_taken_block(info, newblk); 484 attach_taken_block(info, newblk);
491 485
492 /* for larger alignment return fixed up pointer */ 486 /* for larger alignment return fixed up pointer */
diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S
index ddceefc06ecc..7f830a4888d6 100644
--- a/arch/powerpc/mm/hash_low_32.S
+++ b/arch/powerpc/mm/hash_low_32.S
@@ -30,7 +30,11 @@
30#include <asm/asm-offsets.h> 30#include <asm/asm-offsets.h>
31 31
32#ifdef CONFIG_SMP 32#ifdef CONFIG_SMP
33 .comm mmu_hash_lock,4 33 .section .bss
34 .align 2
35 .globl mmu_hash_lock
36mmu_hash_lock:
37 .space 4
34#endif /* CONFIG_SMP */ 38#endif /* CONFIG_SMP */
35 39
36/* 40/*
@@ -455,9 +459,15 @@ found_slot:
455 sync /* make sure pte updates get to memory */ 459 sync /* make sure pte updates get to memory */
456 blr 460 blr
457 461
458 .comm next_slot,4 462 .section .bss
459 .comm primary_pteg_full,4 463 .align 2
460 .comm htab_hash_searches,4 464next_slot:
465 .space 4
466primary_pteg_full:
467 .space 4
468htab_hash_searches:
469 .space 4
470 .previous
461 471
462/* 472/*
463 * Flush the entry for a particular page from the hash table. 473 * Flush the entry for a particular page from the hash table.
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 028ba4ed03d2..4f2f4534a9d8 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -430,7 +430,7 @@ static void __init htab_finish_init(void)
430 make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert); 430 make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert);
431 make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove); 431 make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove);
432 make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp); 432 make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp);
433#endif /* CONFIG_PPC_64K_PAGES */ 433#endif /* CONFIG_PPC_HAS_HASH_64K */
434 434
435 make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert); 435 make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert);
436 make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert); 436 make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert);
@@ -837,7 +837,7 @@ void hash_preload(struct mm_struct *mm, unsigned long ea,
837 if (mm->context.user_psize == MMU_PAGE_64K) 837 if (mm->context.user_psize == MMU_PAGE_64K)
838 __hash_page_64K(ea, access, vsid, ptep, trap, local); 838 __hash_page_64K(ea, access, vsid, ptep, trap, local);
839 else 839 else
840#endif /* CONFIG_PPC_64K_PAGES */ 840#endif /* CONFIG_PPC_HAS_HASH_64K */
841 __hash_page_4K(ea, access, vsid, ptep, trap, local); 841 __hash_page_4K(ea, access, vsid, ptep, trap, local);
842 842
843 local_irq_restore(flags); 843 local_irq_restore(flags);
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 246eeea40ece..0266a94d83b6 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -310,11 +310,12 @@ void __init paging_init(void)
310 310
311#ifdef CONFIG_HIGHMEM 311#ifdef CONFIG_HIGHMEM
312 map_page(PKMAP_BASE, 0, 0); /* XXX gross */ 312 map_page(PKMAP_BASE, 0, 0); /* XXX gross */
313 pkmap_page_table = pte_offset_kernel(pmd_offset(pgd_offset_k 313 pkmap_page_table = pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k
314 (PKMAP_BASE), PKMAP_BASE), PKMAP_BASE); 314 (PKMAP_BASE), PKMAP_BASE), PKMAP_BASE), PKMAP_BASE);
315 map_page(KMAP_FIX_BEGIN, 0, 0); /* XXX gross */ 315 map_page(KMAP_FIX_BEGIN, 0, 0); /* XXX gross */
316 kmap_pte = pte_offset_kernel(pmd_offset(pgd_offset_k 316 kmap_pte = pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k
317 (KMAP_FIX_BEGIN), KMAP_FIX_BEGIN), KMAP_FIX_BEGIN); 317 (KMAP_FIX_BEGIN), KMAP_FIX_BEGIN), KMAP_FIX_BEGIN),
318 KMAP_FIX_BEGIN);
318 kmap_prot = PAGE_KERNEL; 319 kmap_prot = PAGE_KERNEL;
319#endif /* CONFIG_HIGHMEM */ 320#endif /* CONFIG_HIGHMEM */
320 321
diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c
index 972a8e884b9a..86010fc7d3b1 100644
--- a/arch/powerpc/mm/mmap.c
+++ b/arch/powerpc/mm/mmap.c
@@ -24,6 +24,7 @@
24 24
25#include <linux/personality.h> 25#include <linux/personality.h>
26#include <linux/mm.h> 26#include <linux/mm.h>
27#include <linux/sched.h>
27 28
28/* 29/*
29 * Top of mmap area (just below the process stack). 30 * Top of mmap area (just below the process stack).
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index d8232b7a08f7..f6ae1a57d652 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -93,7 +93,7 @@ void pgd_free(pgd_t *pgd)
93 free_pages((unsigned long)pgd, PGDIR_ORDER); 93 free_pages((unsigned long)pgd, PGDIR_ORDER);
94} 94}
95 95
96pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) 96__init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
97{ 97{
98 pte_t *pte; 98 pte_t *pte;
99 extern int mem_init_done; 99 extern int mem_init_done;
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 1d443407423c..ad6e135bf212 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -322,6 +322,8 @@ EXPORT_SYMBOL(__ioremap);
322EXPORT_SYMBOL(iounmap); 322EXPORT_SYMBOL(iounmap);
323EXPORT_SYMBOL(__iounmap); 323EXPORT_SYMBOL(__iounmap);
324 324
325static DEFINE_SPINLOCK(phb_io_lock);
326
325void __iomem * reserve_phb_iospace(unsigned long size) 327void __iomem * reserve_phb_iospace(unsigned long size)
326{ 328{
327 void __iomem *virt_addr; 329 void __iomem *virt_addr;
@@ -329,8 +331,10 @@ void __iomem * reserve_phb_iospace(unsigned long size)
329 if (phbs_io_bot >= IMALLOC_BASE) 331 if (phbs_io_bot >= IMALLOC_BASE)
330 panic("reserve_phb_iospace(): phb io space overflow\n"); 332 panic("reserve_phb_iospace(): phb io space overflow\n");
331 333
334 spin_lock(&phb_io_lock);
332 virt_addr = (void __iomem *) phbs_io_bot; 335 virt_addr = (void __iomem *) phbs_io_bot;
333 phbs_io_bot += size; 336 phbs_io_bot += size;
337 spin_unlock(&phb_io_lock);
334 338
335 return virt_addr; 339 return virt_addr;
336} 340}
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index 8e66949e7c67..1b3e008fd148 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -38,7 +38,8 @@ config 440EP
38 38
39config 440GP 39config 440GP
40 bool 40 bool
41 select IBM_NEW_EMAC_ZMII 41# Disabled until the new EMAC Driver is merged.
42# select IBM_NEW_EMAC_ZMII
42 43
43config 440GX 44config 440GX
44 bool 45 bool
diff --git a/arch/powerpc/platforms/44x/ebony.c b/arch/powerpc/platforms/44x/ebony.c
index ad526eafc90b..5a7fec8d10d3 100644
--- a/arch/powerpc/platforms/44x/ebony.c
+++ b/arch/powerpc/platforms/44x/ebony.c
@@ -27,9 +27,9 @@
27#include "44x.h" 27#include "44x.h"
28 28
29static struct of_device_id ebony_of_bus[] = { 29static struct of_device_id ebony_of_bus[] = {
30 { .type = "ibm,plb", }, 30 { .compatible = "ibm,plb4", },
31 { .type = "ibm,opb", }, 31 { .compatible = "ibm,opb", },
32 { .type = "ibm,ebc", }, 32 { .compatible = "ibm,ebc", },
33 {}, 33 {},
34}; 34};
35 35
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
index a93f328a7317..7150730e2ff1 100644
--- a/arch/powerpc/platforms/cell/spufs/inode.c
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
@@ -71,9 +71,7 @@ spufs_init_once(void *p, struct kmem_cache * cachep, unsigned long flags)
71{ 71{
72 struct spufs_inode_info *ei = p; 72 struct spufs_inode_info *ei = p;
73 73
74 if (flags & SLAB_CTOR_CONSTRUCTOR) { 74 inode_init_once(&ei->vfs_inode);
75 inode_init_once(&ei->vfs_inode);
76 }
77} 75}
78 76
79static struct inode * 77static struct inode *
diff --git a/arch/powerpc/platforms/chrp/pegasos_eth.c b/arch/powerpc/platforms/chrp/pegasos_eth.c
index 71045677559a..5bcc58d9a4dd 100644
--- a/arch/powerpc/platforms/chrp/pegasos_eth.c
+++ b/arch/powerpc/platforms/chrp/pegasos_eth.c
@@ -169,7 +169,7 @@ static int Enable_SRAM(void)
169 169
170/***********/ 170/***********/
171/***********/ 171/***********/
172int mv643xx_eth_add_pds(void) 172static int __init mv643xx_eth_add_pds(void)
173{ 173{
174 int ret = 0; 174 int ret = 0;
175 static struct pci_device_id pci_marvell_mv64360[] = { 175 static struct pci_device_id pci_marvell_mv64360[] = {
diff --git a/arch/powerpc/platforms/iseries/viopath.c b/arch/powerpc/platforms/iseries/viopath.c
index 354b8dd2a2c1..6a0060a5f2ec 100644
--- a/arch/powerpc/platforms/iseries/viopath.c
+++ b/arch/powerpc/platforms/iseries/viopath.c
@@ -37,6 +37,7 @@
37#include <linux/wait.h> 37#include <linux/wait.h>
38#include <linux/seq_file.h> 38#include <linux/seq_file.h>
39#include <linux/interrupt.h> 39#include <linux/interrupt.h>
40#include <linux/completion.h>
40 41
41#include <asm/system.h> 42#include <asm/system.h>
42#include <asm/uaccess.h> 43#include <asm/uaccess.h>
@@ -81,7 +82,7 @@ static void handleMonitorEvent(struct HvLpEvent *event);
81 * if system_state is not SYSTEM_RUNNING, then wait_atomic is used ... 82 * if system_state is not SYSTEM_RUNNING, then wait_atomic is used ...
82 */ 83 */
83struct alloc_parms { 84struct alloc_parms {
84 struct semaphore sem; 85 struct completion done;
85 int number; 86 int number;
86 atomic_t wait_atomic; 87 atomic_t wait_atomic;
87 int used_wait_atomic; 88 int used_wait_atomic;
@@ -115,7 +116,7 @@ static int proc_viopath_show(struct seq_file *m, void *v)
115 u16 vlanMap; 116 u16 vlanMap;
116 dma_addr_t handle; 117 dma_addr_t handle;
117 HvLpEvent_Rc hvrc; 118 HvLpEvent_Rc hvrc;
118 DECLARE_MUTEX_LOCKED(Semaphore); 119 DECLARE_COMPLETION(done);
119 struct device_node *node; 120 struct device_node *node;
120 const char *sysid; 121 const char *sysid;
121 122
@@ -132,13 +133,13 @@ static int proc_viopath_show(struct seq_file *m, void *v)
132 HvLpEvent_AckInd_DoAck, HvLpEvent_AckType_ImmediateAck, 133 HvLpEvent_AckInd_DoAck, HvLpEvent_AckType_ImmediateAck,
133 viopath_sourceinst(viopath_hostLp), 134 viopath_sourceinst(viopath_hostLp),
134 viopath_targetinst(viopath_hostLp), 135 viopath_targetinst(viopath_hostLp),
135 (u64)(unsigned long)&Semaphore, VIOVERSION << 16, 136 (u64)(unsigned long)&done, VIOVERSION << 16,
136 ((u64)handle) << 32, HW_PAGE_SIZE, 0, 0); 137 ((u64)handle) << 32, HW_PAGE_SIZE, 0, 0);
137 138
138 if (hvrc != HvLpEvent_Rc_Good) 139 if (hvrc != HvLpEvent_Rc_Good)
139 printk(VIOPATH_KERN_WARN "hv error on op %d\n", (int)hvrc); 140 printk(VIOPATH_KERN_WARN "hv error on op %d\n", (int)hvrc);
140 141
141 down(&Semaphore); 142 wait_for_completion(&done);
142 143
143 vlanMap = HvLpConfig_getVirtualLanIndexMap(); 144 vlanMap = HvLpConfig_getVirtualLanIndexMap();
144 145
@@ -353,7 +354,7 @@ static void handleConfig(struct HvLpEvent *event)
353 return; 354 return;
354 } 355 }
355 356
356 up((struct semaphore *)event->xCorrelationToken); 357 complete((struct completion *)event->xCorrelationToken);
357} 358}
358 359
359/* 360/*
@@ -464,7 +465,7 @@ static void viopath_donealloc(void *parm, int number)
464 if (parmsp->used_wait_atomic) 465 if (parmsp->used_wait_atomic)
465 atomic_set(&parmsp->wait_atomic, 0); 466 atomic_set(&parmsp->wait_atomic, 0);
466 else 467 else
467 up(&parmsp->sem); 468 complete(&parmsp->done);
468} 469}
469 470
470static int allocateEvents(HvLpIndex remoteLp, int numEvents) 471static int allocateEvents(HvLpIndex remoteLp, int numEvents)
@@ -476,7 +477,7 @@ static int allocateEvents(HvLpIndex remoteLp, int numEvents)
476 atomic_set(&parms.wait_atomic, 1); 477 atomic_set(&parms.wait_atomic, 1);
477 } else { 478 } else {
478 parms.used_wait_atomic = 0; 479 parms.used_wait_atomic = 0;
479 init_MUTEX_LOCKED(&parms.sem); 480 init_completion(&parms.done);
480 } 481 }
481 mf_allocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 250, /* It would be nice to put a real number here! */ 482 mf_allocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 250, /* It would be nice to put a real number here! */
482 numEvents, &viopath_donealloc, &parms); 483 numEvents, &viopath_donealloc, &parms);
@@ -484,7 +485,7 @@ static int allocateEvents(HvLpIndex remoteLp, int numEvents)
484 while (atomic_read(&parms.wait_atomic)) 485 while (atomic_read(&parms.wait_atomic))
485 mb(); 486 mb();
486 } else 487 } else
487 down(&parms.sem); 488 wait_for_completion(&parms.done);
488 return parms.number; 489 return parms.number;
489} 490}
490 491
@@ -585,10 +586,10 @@ int viopath_close(HvLpIndex remoteLp, int subtype, int numReq)
585 spin_unlock_irqrestore(&statuslock, flags); 586 spin_unlock_irqrestore(&statuslock, flags);
586 587
587 parms.used_wait_atomic = 0; 588 parms.used_wait_atomic = 0;
588 init_MUTEX_LOCKED(&parms.sem); 589 init_completion(&parms.done);
589 mf_deallocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 590 mf_deallocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo,
590 numReq, &viopath_donealloc, &parms); 591 numReq, &viopath_donealloc, &parms);
591 down(&parms.sem); 592 wait_for_completion(&parms.done);
592 593
593 spin_lock_irqsave(&statuslock, flags); 594 spin_lock_irqsave(&statuslock, flags);
594 for (i = 0, numOpen = 0; i < VIO_MAX_SUBTYPES; i++) 595 for (i = 0, numOpen = 0; i < VIO_MAX_SUBTYPES; i++)
diff --git a/arch/powerpc/platforms/pasemi/Kconfig b/arch/powerpc/platforms/pasemi/Kconfig
index eb4dbc705b06..7c5076e38ea1 100644
--- a/arch/powerpc/platforms/pasemi/Kconfig
+++ b/arch/powerpc/platforms/pasemi/Kconfig
@@ -4,7 +4,6 @@ config PPC_PASEMI
4 default n 4 default n
5 select MPIC 5 select MPIC
6 select PPC_UDBG_16550 6 select PPC_UDBG_16550
7 select GENERIC_TBSYNC
8 select PPC_NATIVE 7 select PPC_NATIVE
9 help 8 help
10 This option enables support for PA Semi's PWRficient line 9 This option enables support for PA Semi's PWRficient line
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index a410bc76a8a8..07b1c4ec428d 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -384,7 +384,7 @@ int boot_part;
384static dev_t boot_dev; 384static dev_t boot_dev;
385 385
386#ifdef CONFIG_SCSI 386#ifdef CONFIG_SCSI
387void __init note_scsi_host(struct device_node *node, void *host) 387void note_scsi_host(struct device_node *node, void *host)
388{ 388{
389 int l; 389 int l;
390 char *p; 390 char *p;
diff --git a/arch/powerpc/platforms/pseries/pseries.h b/arch/powerpc/platforms/pseries/pseries.h
index 22bc01989749..2729d559fd91 100644
--- a/arch/powerpc/platforms/pseries/pseries.h
+++ b/arch/powerpc/platforms/pseries/pseries.h
@@ -21,8 +21,8 @@ extern int pSeries_machine_check_exception(struct pt_regs *regs);
21extern void smp_init_pseries_mpic(void); 21extern void smp_init_pseries_mpic(void);
22extern void smp_init_pseries_xics(void); 22extern void smp_init_pseries_xics(void);
23#else 23#else
24static inline smp_init_pseries_mpic(void) { }; 24static inline void smp_init_pseries_mpic(void) { };
25static inline smp_init_pseries_xics(void) { }; 25static inline void smp_init_pseries_xics(void) { };
26#endif 26#endif
27 27
28#ifdef CONFIG_KEXEC 28#ifdef CONFIG_KEXEC
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 4fd2bec89916..75aad38179f0 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1424,7 +1424,7 @@ unsigned int mpic_get_irq(void)
1424void mpic_request_ipis(void) 1424void mpic_request_ipis(void)
1425{ 1425{
1426 struct mpic *mpic = mpic_primary; 1426 struct mpic *mpic = mpic_primary;
1427 int i; 1427 int i, err;
1428 static char *ipi_names[] = { 1428 static char *ipi_names[] = {
1429 "IPI0 (call function)", 1429 "IPI0 (call function)",
1430 "IPI1 (reschedule)", 1430 "IPI1 (reschedule)",
@@ -1442,8 +1442,14 @@ void mpic_request_ipis(void)
1442 printk(KERN_ERR "Failed to map IPI %d\n", i); 1442 printk(KERN_ERR "Failed to map IPI %d\n", i);
1443 break; 1443 break;
1444 } 1444 }
1445 request_irq(vipi, mpic_ipi_action, IRQF_DISABLED|IRQF_PERCPU, 1445 err = request_irq(vipi, mpic_ipi_action,
1446 ipi_names[i], mpic); 1446 IRQF_DISABLED|IRQF_PERCPU,
1447 ipi_names[i], mpic);
1448 if (err) {
1449 printk(KERN_ERR "Request of irq %d for IPI %d failed\n",
1450 vipi, i);
1451 break;
1452 }
1447 } 1453 }
1448} 1454}
1449 1455
diff --git a/arch/powerpc/sysdev/qe_lib/Kconfig b/arch/powerpc/sysdev/qe_lib/Kconfig
index 887739f3badc..f611d344a126 100644
--- a/arch/powerpc/sysdev/qe_lib/Kconfig
+++ b/arch/powerpc/sysdev/qe_lib/Kconfig
@@ -5,15 +5,13 @@
5config UCC_SLOW 5config UCC_SLOW
6 bool 6 bool
7 default n 7 default n
8 select UCC
9 help 8 help
10 This option provides qe_lib support to UCC slow 9 This option provides qe_lib support to UCC slow
11 protocols: UART, BISYNC, QMC 10 protocols: UART, BISYNC, QMC
12 11
13config UCC_FAST 12config UCC_FAST
14 bool 13 bool
15 default n 14 default y if UCC_GETH
16 select UCC
17 help 15 help
18 This option provides qe_lib support to UCC fast 16 This option provides qe_lib support to UCC fast
19 protocols: HDLC, Ethernet, ATM, transparent 17 protocols: HDLC, Ethernet, ATM, transparent
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S
index ab64256110bd..fba7ca17a67e 100644
--- a/arch/ppc/kernel/entry.S
+++ b/arch/ppc/kernel/entry.S
@@ -596,7 +596,11 @@ fast_exception_return:
596 mr r12,r4 /* restart at exc_exit_restart */ 596 mr r12,r4 /* restart at exc_exit_restart */
597 b 2b 597 b 2b
598 598
599 .comm fee_restarts,4 599 .section .bss
600 .align 2
601fee_restarts:
602 .space 4
603 .previous
600 604
601/* aargh, a nonrecoverable interrupt, panic */ 605/* aargh, a nonrecoverable interrupt, panic */
602/* aargh, we don't know which trap this is */ 606/* aargh, we don't know which trap this is */
@@ -851,7 +855,11 @@ load_dbcr0:
851 mtspr SPRN_DBSR,r11 /* clear all pending debug events */ 855 mtspr SPRN_DBSR,r11 /* clear all pending debug events */
852 blr 856 blr
853 857
854 .comm global_dbcr0,8 858 .section .bss
859 .align 4
860global_dbcr0:
861 .space 8
862 .previous
855#endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ 863#endif /* !(CONFIG_4xx || CONFIG_BOOKE) */
856 864
857do_work: /* r10 contains MSR_KERNEL here */ 865do_work: /* r10 contains MSR_KERNEL here */
@@ -926,4 +934,8 @@ END_FTR_SECTION_IFSET(CPU_FTR_601)
926 /* shouldn't return */ 934 /* shouldn't return */
927 b 4b 935 b 4b
928 936
929 .comm ee_restarts,4 937 .section .bss
938 .align 2
939ee_restarts:
940 .space 4
941 .previous
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c
index 4ad499605d05..a4165209ac7c 100644
--- a/arch/ppc/kernel/ppc_ksyms.c
+++ b/arch/ppc/kernel/ppc_ksyms.c
@@ -40,7 +40,6 @@
40#include <asm/time.h> 40#include <asm/time.h>
41#include <asm/cputable.h> 41#include <asm/cputable.h>
42#include <asm/btext.h> 42#include <asm/btext.h>
43#include <asm/div64.h>
44#include <asm/xmon.h> 43#include <asm/xmon.h>
45#include <asm/signal.h> 44#include <asm/signal.h>
46#include <asm/dcr.h> 45#include <asm/dcr.h>
@@ -93,7 +92,6 @@ EXPORT_SYMBOL(strncpy);
93EXPORT_SYMBOL(strcat); 92EXPORT_SYMBOL(strcat);
94EXPORT_SYMBOL(strlen); 93EXPORT_SYMBOL(strlen);
95EXPORT_SYMBOL(strcmp); 94EXPORT_SYMBOL(strcmp);
96EXPORT_SYMBOL(__div64_32);
97 95
98EXPORT_SYMBOL(csum_partial); 96EXPORT_SYMBOL(csum_partial);
99EXPORT_SYMBOL(csum_partial_copy_generic); 97EXPORT_SYMBOL(csum_partial_copy_generic);
diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S
index 44cd128fb719..19db8746ff14 100644
--- a/arch/ppc/kernel/vmlinux.lds.S
+++ b/arch/ppc/kernel/vmlinux.lds.S
@@ -32,7 +32,7 @@ SECTIONS
32 .text : 32 .text :
33 { 33 {
34 _text = .; 34 _text = .;
35 *(.text) 35 TEXT_TEXT
36 SCHED_TEXT 36 SCHED_TEXT
37 LOCK_TEXT 37 LOCK_TEXT
38 *(.fixup) 38 *(.fixup)
@@ -67,7 +67,7 @@ SECTIONS
67 . = ALIGN(4096); 67 . = ALIGN(4096);
68 .data : 68 .data :
69 { 69 {
70 *(.data) 70 DATA_DATA
71 *(.data1) 71 *(.data1)
72 *(.sdata) 72 *(.sdata)
73 *(.sdata2) 73 *(.sdata2)
diff --git a/arch/ppc/mm/hashtable.S b/arch/ppc/mm/hashtable.S
index e756942e65c4..5f364dc50154 100644
--- a/arch/ppc/mm/hashtable.S
+++ b/arch/ppc/mm/hashtable.S
@@ -30,7 +30,11 @@
30#include <asm/asm-offsets.h> 30#include <asm/asm-offsets.h>
31 31
32#ifdef CONFIG_SMP 32#ifdef CONFIG_SMP
33 .comm mmu_hash_lock,4 33 .section .bss
34 .align 2
35 .globl mmu_hash_lock
36mmu_hash_lock:
37 .space 4
34#endif /* CONFIG_SMP */ 38#endif /* CONFIG_SMP */
35 39
36/* 40/*
@@ -461,9 +465,17 @@ found_slot:
461 sync /* make sure pte updates get to memory */ 465 sync /* make sure pte updates get to memory */
462 blr 466 blr
463 467
464 .comm next_slot,4 468 .section .bss
465 .comm primary_pteg_full,4 469 .align 2
466 .comm htab_hash_searches,4 470next_slot:
471 .space 4
472 .globl primary_pteg_full
473primary_pteg_full:
474 .space 4
475 .globl htab_hash_searches
476htab_hash_searches:
477 .space 4
478 .previous
467 479
468/* 480/*
469 * Flush the entry for a particular page from the hash table. 481 * Flush the entry for a particular page from the hash table.
diff --git a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c
index c023b7298809..35ebb6395ae3 100644
--- a/arch/ppc/mm/pgtable.c
+++ b/arch/ppc/mm/pgtable.c
@@ -92,7 +92,7 @@ void pgd_free(pgd_t *pgd)
92 free_pages((unsigned long)pgd, PGDIR_ORDER); 92 free_pages((unsigned long)pgd, PGDIR_ORDER);
93} 93}
94 94
95pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) 95__init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
96{ 96{
97 pte_t *pte; 97 pte_t *pte;
98 extern int mem_init_done; 98 extern int mem_init_done;
diff --git a/arch/ppc/syslib/pq2_sys.c b/arch/ppc/syslib/pq2_sys.c
index f52600c0db20..9c85300846c7 100644
--- a/arch/ppc/syslib/pq2_sys.c
+++ b/arch/ppc/syslib/pq2_sys.c
@@ -26,7 +26,7 @@ struct ppc_sys_spec ppc_sys_specs[] = {
26 { 26 {
27 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, 27 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
28 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, 28 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
29 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, 29 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1,
30 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 30 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
31 } 31 }
32 }, 32 },
@@ -39,7 +39,7 @@ struct ppc_sys_spec ppc_sys_specs[] = {
39 { 39 {
40 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1, 40 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1,
41 MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4, 41 MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4,
42 MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, 42 MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2,
43 MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 43 MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
44 } 44 }
45 }, 45 },
@@ -47,52 +47,56 @@ struct ppc_sys_spec ppc_sys_specs[] = {
47 .ppc_sys_name = "8260", 47 .ppc_sys_name = "8260",
48 .mask = 0x0000ff00, 48 .mask = 0x0000ff00,
49 .value = 0x00000000, 49 .value = 0x00000000,
50 .num_devices = 12, 50 .num_devices = 13,
51 .device_list = (enum ppc_sys_devices[]) 51 .device_list = (enum ppc_sys_devices[])
52 { 52 {
53 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, 53 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
54 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, 54 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
55 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, 55 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
56 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 56 MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
57 MPC82xx_CPM_I2C,
57 } 58 }
58 }, 59 },
59 { 60 {
60 .ppc_sys_name = "8264", 61 .ppc_sys_name = "8264",
61 .mask = 0x0000ff00, 62 .mask = 0x0000ff00,
62 .value = 0x00000000, 63 .value = 0x00000000,
63 .num_devices = 12, 64 .num_devices = 13,
64 .device_list = (enum ppc_sys_devices[]) 65 .device_list = (enum ppc_sys_devices[])
65 { 66 {
66 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, 67 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
67 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, 68 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
68 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, 69 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
69 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 70 MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
71 MPC82xx_CPM_I2C,
70 } 72 }
71 }, 73 },
72 { 74 {
73 .ppc_sys_name = "8265", 75 .ppc_sys_name = "8265",
74 .mask = 0x0000ff00, 76 .mask = 0x0000ff00,
75 .value = 0x00000000, 77 .value = 0x00000000,
76 .num_devices = 12, 78 .num_devices = 13,
77 .device_list = (enum ppc_sys_devices[]) 79 .device_list = (enum ppc_sys_devices[])
78 { 80 {
79 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, 81 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
80 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, 82 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
81 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, 83 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
82 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 84 MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
85 MPC82xx_CPM_I2C,
83 } 86 }
84 }, 87 },
85 { 88 {
86 .ppc_sys_name = "8266", 89 .ppc_sys_name = "8266",
87 .mask = 0x0000ff00, 90 .mask = 0x0000ff00,
88 .value = 0x00000000, 91 .value = 0x00000000,
89 .num_devices = 12, 92 .num_devices = 13,
90 .device_list = (enum ppc_sys_devices[]) 93 .device_list = (enum ppc_sys_devices[])
91 { 94 {
92 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, 95 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
93 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, 96 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
94 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, 97 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
95 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 98 MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
99 MPC82xx_CPM_I2C,
96 } 100 }
97 }, 101 },
98 /* below is a list of the 8272 family of processors */ 102 /* below is a list of the 8272 family of processors */
@@ -159,7 +163,7 @@ struct ppc_sys_spec ppc_sys_specs[] = {
159 { 163 {
160 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, 164 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
161 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, 165 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
162 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, 166 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1,
163 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 167 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
164 }, 168 },
165 }, 169 },
@@ -172,7 +176,7 @@ struct ppc_sys_spec ppc_sys_specs[] = {
172 { 176 {
173 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, 177 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
174 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, 178 MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
175 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, 179 MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1,
176 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 180 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
177 }, 181 },
178 }, 182 },
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index 32a69a18a796..acc415457b45 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -1682,3 +1682,31 @@ compat_sys_utimes_wrapper:
1682 llgtr %r2,%r2 # char * 1682 llgtr %r2,%r2 # char *
1683 llgtr %r3,%r3 # struct compat_timeval * 1683 llgtr %r3,%r3 # struct compat_timeval *
1684 jg compat_sys_utimes 1684 jg compat_sys_utimes
1685
1686 .globl compat_sys_utimensat_wrapper
1687compat_sys_utimensat_wrapper:
1688 llgfr %r2,%r2 # unsigned int
1689 llgtr %r3,%r3 # char *
1690 llgtr %r4,%r4 # struct compat_timespec *
1691 lgfr %r5,%r5 # int
1692 jg compat_sys_utimensat
1693
1694 .globl compat_sys_signalfd_wrapper
1695compat_sys_signalfd_wrapper:
1696 lgfr %r2,%r2 # int
1697 llgtr %r3,%r3 # compat_sigset_t *
1698 llgfr %r4,%r4 # compat_size_t
1699 jg compat_sys_signalfd
1700
1701 .globl compat_sys_timerfd_wrapper
1702compat_sys_timerfd_wrapper:
1703 lgfr %r2,%r2 # int
1704 lgfr %r3,%r3 # int
1705 lgfr %r4,%r4 # int
1706 llgtr %r5,%r5 # struct compat_itimerspec *
1707 jg compat_sys_timerfd
1708
1709 .globl sys_eventfd_wrapper
1710sys_eventfd_wrapper:
1711 llgfr %r2,%r2 # unsigned int
1712 jg sys_eventfd
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c
index e39333ae0fcf..358d2bbbc481 100644
--- a/arch/s390/kernel/kprobes.c
+++ b/arch/s390/kernel/kprobes.c
@@ -413,7 +413,7 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p,
413 break; 413 break;
414 } 414 }
415 } 415 }
416 BUG_ON(!orig_ret_address || (orig_ret_address == trampoline_address)); 416 kretprobe_assert(ri, orig_ret_address, trampoline_address);
417 regs->psw.addr = orig_ret_address | PSW_ADDR_AMODE; 417 regs->psw.addr = orig_ret_address | PSW_ADDR_AMODE;
418 418
419 reset_current_kprobe(); 419 reset_current_kprobe();
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index cd8d321cd0c2..738feb4a0aad 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -322,3 +322,8 @@ NI_SYSCALL /* 310 sys_move_pages */
322SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) 322SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper)
323SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) 323SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper)
324SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) 324SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper)
325NI_SYSCALL /* 314 sys_fallocate */
326SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */
327SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper)
328SYSCALL(sys_timerfd,sys_timerfd,compat_sys_timerfd_wrapper)
329SYSCALL(sys_eventfd,sys_eventfd,sys_eventfd_wrapper)
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index e9d3432aba60..7158a804a5e4 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -21,7 +21,7 @@ SECTIONS
21 . = 0x00000000; 21 . = 0x00000000;
22 _text = .; /* Text and read-only data */ 22 _text = .; /* Text and read-only data */
23 .text : { 23 .text : {
24 *(.text) 24 TEXT_TEXT
25 SCHED_TEXT 25 SCHED_TEXT
26 LOCK_TEXT 26 LOCK_TEXT
27 KPROBES_TEXT 27 KPROBES_TEXT
@@ -48,7 +48,7 @@ SECTIONS
48 BUG_TABLE 48 BUG_TABLE
49 49
50 .data : { /* Data */ 50 .data : { /* Data */
51 *(.data) 51 DATA_DATA
52 CONSTRUCTORS 52 CONSTRUCTORS
53 } 53 }
54 54
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c
index 916b72a8cde8..9098531a2671 100644
--- a/arch/s390/mm/init.c
+++ b/arch/s390/mm/init.c
@@ -61,30 +61,38 @@ void diag10(unsigned long addr)
61 61
62void show_mem(void) 62void show_mem(void)
63{ 63{
64 int i, total = 0, reserved = 0; 64 int i, total = 0, reserved = 0;
65 int shared = 0, cached = 0; 65 int shared = 0, cached = 0;
66 struct page *page; 66 struct page *page;
67 67
68 printk("Mem-info:\n"); 68 printk("Mem-info:\n");
69 show_free_areas(); 69 show_free_areas();
70 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); 70 printk("Free swap: %6ldkB\n", nr_swap_pages << (PAGE_SHIFT - 10));
71 i = max_mapnr; 71 i = max_mapnr;
72 while (i-- > 0) { 72 while (i-- > 0) {
73 if (!pfn_valid(i)) 73 if (!pfn_valid(i))
74 continue; 74 continue;
75 page = pfn_to_page(i); 75 page = pfn_to_page(i);
76 total++; 76 total++;
77 if (PageReserved(page)) 77 if (PageReserved(page))
78 reserved++; 78 reserved++;
79 else if (PageSwapCache(page)) 79 else if (PageSwapCache(page))
80 cached++; 80 cached++;
81 else if (page_count(page)) 81 else if (page_count(page))
82 shared += page_count(page) - 1; 82 shared += page_count(page) - 1;
83 } 83 }
84 printk("%d pages of RAM\n",total); 84 printk("%d pages of RAM\n", total);
85 printk("%d reserved pages\n",reserved); 85 printk("%d reserved pages\n", reserved);
86 printk("%d pages shared\n",shared); 86 printk("%d pages shared\n", shared);
87 printk("%d pages swap cached\n",cached); 87 printk("%d pages swap cached\n", cached);
88
89 printk("%lu pages dirty\n", global_page_state(NR_FILE_DIRTY));
90 printk("%lu pages writeback\n", global_page_state(NR_WRITEBACK));
91 printk("%lu pages mapped\n", global_page_state(NR_FILE_MAPPED));
92 printk("%lu pages slab\n",
93 global_page_state(NR_SLAB_RECLAIMABLE) +
94 global_page_state(NR_SLAB_UNRECLAIMABLE));
95 printk("%lu pages pagetables\n", global_page_state(NR_PAGETABLE));
88} 96}
89 97
90static void __init setup_ro_region(void) 98static void __init setup_ro_region(void)
diff --git a/arch/sh/boards/landisk/gio.c b/arch/sh/boards/landisk/gio.c
index 50d38be62f01..a37643d002b2 100644
--- a/arch/sh/boards/landisk/gio.c
+++ b/arch/sh/boards/landisk/gio.c
@@ -69,7 +69,7 @@ static int gio_ioctl(struct inode *inode, struct file *filp,
69 } 69 }
70 70
71 switch (cmd) { 71 switch (cmd) {
72 case GIODRV_IOCSGIOSETADDR: /* addres set */ 72 case GIODRV_IOCSGIOSETADDR: /* address set */
73 addr = data; 73 addr = data;
74 break; 74 break;
75 75
diff --git a/arch/sh/boards/landisk/setup.c b/arch/sh/boards/landisk/setup.c
index 4058b4f50d44..f953c7427769 100644
--- a/arch/sh/boards/landisk/setup.c
+++ b/arch/sh/boards/landisk/setup.c
@@ -44,8 +44,14 @@ static struct platform_device cf_ide_device = {
44 }, 44 },
45}; 45};
46 46
47static struct platform_device rtc_device = {
48 .name = "rs5c313",
49 .id = -1,
50};
51
47static struct platform_device *landisk_devices[] __initdata = { 52static struct platform_device *landisk_devices[] __initdata = {
48 &cf_ide_device, 53 &cf_ide_device,
54 &rtc_device,
49}; 55};
50 56
51static int __init landisk_devices_setup(void) 57static int __init landisk_devices_setup(void)
diff --git a/arch/sh/boards/renesas/r7780rp/Makefile b/arch/sh/boards/renesas/r7780rp/Makefile
index 609e5d50dde8..b1d20afb4eb3 100644
--- a/arch/sh/boards/renesas/r7780rp/Makefile
+++ b/arch/sh/boards/renesas/r7780rp/Makefile
@@ -3,5 +3,8 @@
3# 3#
4irqinit-y := irq-r7780rp.o 4irqinit-y := irq-r7780rp.o
5irqinit-$(CONFIG_SH_R7785RP) := irq-r7785rp.o 5irqinit-$(CONFIG_SH_R7785RP) := irq-r7785rp.o
6obj-y := setup.o irq.o $(irqinit-y)
7
8ifneq ($(CONFIG_SH_R7785RP),y)
6obj-$(CONFIG_PUSH_SWITCH) += psw.o 9obj-$(CONFIG_PUSH_SWITCH) += psw.o
7obj-y := setup.o irq.o $(irqinit-y) 10endif
diff --git a/arch/sh/boards/snapgear/rtc.c b/arch/sh/boards/snapgear/rtc.c
index 1659fdd6695a..edb3dd936cbb 100644
--- a/arch/sh/boards/snapgear/rtc.c
+++ b/arch/sh/boards/snapgear/rtc.c
@@ -108,7 +108,7 @@ static void ds1302_writebyte(unsigned int addr, unsigned int val)
108static void ds1302_reset(void) 108static void ds1302_reset(void)
109{ 109{
110 unsigned long flags; 110 unsigned long flags;
111 /* Hardware dependant reset/init */ 111 /* Hardware dependent reset/init */
112 local_irq_save(flags); 112 local_irq_save(flags);
113 set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK); 113 set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK);
114 set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK)); 114 set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK));
diff --git a/arch/sh/boards/superh/microdev/io.c b/arch/sh/boards/superh/microdev/io.c
index 83419bf4c834..b704e20d7e4d 100644
--- a/arch/sh/boards/superh/microdev/io.c
+++ b/arch/sh/boards/superh/microdev/io.c
@@ -198,12 +198,12 @@ void microdev_outb(unsigned char b, unsigned long port)
198 /* 198 /*
199 * There is a board feature with the current SH4-202 MicroDev in 199 * There is a board feature with the current SH4-202 MicroDev in
200 * that the 2 byte enables (nBE0 and nBE1) are tied together (and 200 * that the 2 byte enables (nBE0 and nBE1) are tied together (and
201 * to the Chip Select Line (Ethernet_CS)). Due to this conectivity, 201 * to the Chip Select Line (Ethernet_CS)). Due to this connectivity,
202 * it is not possible to safely perform 8-bit writes to the 202 * it is not possible to safely perform 8-bit writes to the
203 * Ethernet registers, as 16-bits will be consumed from the Data 203 * Ethernet registers, as 16-bits will be consumed from the Data
204 * lines (corrupting the other byte). Hence, this function is 204 * lines (corrupting the other byte). Hence, this function is
205 * written to impliment 16-bit read/modify/write for all byte-wide 205 * written to implement 16-bit read/modify/write for all byte-wide
206 * acceses. 206 * accesses.
207 * 207 *
208 * Note: there is no problem with byte READS (even or odd). 208 * Note: there is no problem with byte READS (even or odd).
209 * 209 *
diff --git a/arch/sh/boards/superh/microdev/irq.c b/arch/sh/boards/superh/microdev/irq.c
index 8c64baa30364..cc1cb04fa618 100644
--- a/arch/sh/boards/superh/microdev/irq.c
+++ b/arch/sh/boards/superh/microdev/irq.c
@@ -100,7 +100,7 @@ static void disable_microdev_irq(unsigned int irq)
100 100
101 fpgaIrq = fpgaIrqTable[irq].fpgaIrq; 101 fpgaIrq = fpgaIrqTable[irq].fpgaIrq;
102 102
103 /* disable interupts on the FPGA INTC register */ 103 /* disable interrupts on the FPGA INTC register */
104 ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTDSB_REG); 104 ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTDSB_REG);
105} 105}
106 106
@@ -125,7 +125,7 @@ static void enable_microdev_irq(unsigned int irq)
125 priorities |= MICRODEV_FPGA_INTPRI_LEVEL(fpgaIrq, pri); 125 priorities |= MICRODEV_FPGA_INTPRI_LEVEL(fpgaIrq, pri);
126 ctrl_outl(priorities, priorityReg); 126 ctrl_outl(priorities, priorityReg);
127 127
128 /* enable interupts on the FPGA INTC register */ 128 /* enable interrupts on the FPGA INTC register */
129 ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTENB_REG); 129 ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTENB_REG);
130} 130}
131 131
@@ -152,7 +152,7 @@ extern void __init init_microdev_irq(void)
152{ 152{
153 int i; 153 int i;
154 154
155 /* disable interupts on the FPGA INTC register */ 155 /* disable interrupts on the FPGA INTC register */
156 ctrl_outl(~0ul, MICRODEV_FPGA_INTDSB_REG); 156 ctrl_outl(~0ul, MICRODEV_FPGA_INTDSB_REG);
157 157
158 for (i = 0; i < NUM_EXTERNAL_IRQS; i++) 158 for (i = 0; i < NUM_EXTERNAL_IRQS; i++)
diff --git a/arch/sh/boards/superh/microdev/setup.c b/arch/sh/boards/superh/microdev/setup.c
index 031c814e6e76..6396cea1c896 100644
--- a/arch/sh/boards/superh/microdev/setup.c
+++ b/arch/sh/boards/superh/microdev/setup.c
@@ -349,7 +349,7 @@ static int __init smsc_superio_setup(void)
349 SMSC_WRITE_INDEXED(0x00, 0xc7); /* GP47 = nIOWOP */ 349 SMSC_WRITE_INDEXED(0x00, 0xc7); /* GP47 = nIOWOP */
350 SMSC_WRITE_INDEXED(0x08, 0xe8); /* GP20 = nIDE2_OE */ 350 SMSC_WRITE_INDEXED(0x08, 0xe8); /* GP20 = nIDE2_OE */
351 351
352 /* Exit the configuraton state */ 352 /* Exit the configuration state */
353 outb(SMSC_EXIT_CONFIG_KEY, SMSC_CONFIG_PORT_ADDR); 353 outb(SMSC_EXIT_CONFIG_KEY, SMSC_CONFIG_PORT_ADDR);
354 354
355 return 0; 355 return 0;
diff --git a/arch/sh/boards/unknown/setup.c b/arch/sh/boards/unknown/setup.c
index 1c941370a2e3..bee4612de59b 100644
--- a/arch/sh/boards/unknown/setup.c
+++ b/arch/sh/boards/unknown/setup.c
@@ -6,7 +6,7 @@
6 * May be copied or modified under the terms of the GNU General Public 6 * May be copied or modified under the terms of the GNU General Public
7 * License. See linux/COPYING for more information. 7 * License. See linux/COPYING for more information.
8 * 8 *
9 * Setup code for an unknown machine (internal peripherials only) 9 * Setup code for an unknown machine (internal peripherals only)
10 * 10 *
11 * This is the simplest of all boards, and serves only as a quick and dirty 11 * This is the simplest of all boards, and serves only as a quick and dirty
12 * method to start debugging a new board during bring-up until proper board 12 * method to start debugging a new board during bring-up until proper board
diff --git a/arch/sh/drivers/dma/dma-api.c b/arch/sh/drivers/dma/dma-api.c
index e062067edd24..8057a27a1bc6 100644
--- a/arch/sh/drivers/dma/dma-api.c
+++ b/arch/sh/drivers/dma/dma-api.c
@@ -115,7 +115,7 @@ static int search_cap(const char **haystack, const char *needle)
115/** 115/**
116 * request_dma_bycap - Allocate a DMA channel based on its capabilities 116 * request_dma_bycap - Allocate a DMA channel based on its capabilities
117 * @dmac: List of DMA controllers to search 117 * @dmac: List of DMA controllers to search
118 * @caps: List of capabilites 118 * @caps: List of capabilities
119 * 119 *
120 * Search all channels of all DMA controllers to find a channel which 120 * Search all channels of all DMA controllers to find a channel which
121 * matches the requested capabilities. The result is the channel 121 * matches the requested capabilities. The result is the channel
diff --git a/arch/sh/drivers/dma/dma-isa.c b/arch/sh/drivers/dma/dma-isa.c
index 05a74ffdb68d..5fb044b791c3 100644
--- a/arch/sh/drivers/dma/dma-isa.c
+++ b/arch/sh/drivers/dma/dma-isa.c
@@ -28,7 +28,7 @@
28 * NOTE: ops->xfer() is the preferred way of doing things. However, there 28 * NOTE: ops->xfer() is the preferred way of doing things. However, there
29 * are some users of the ISA DMA API that exist in common code that we 29 * are some users of the ISA DMA API that exist in common code that we
30 * don't necessarily want to go out of our way to break, so we still 30 * don't necessarily want to go out of our way to break, so we still
31 * allow for some compatability at that level. Any new code is strongly 31 * allow for some compatibility at that level. Any new code is strongly
32 * advised to run far away from the ISA DMA API and use the SH DMA API 32 * advised to run far away from the ISA DMA API and use the SH DMA API
33 * directly. 33 * directly.
34 */ 34 */
diff --git a/arch/sh/drivers/dma/dmabrg.c b/arch/sh/drivers/dma/dmabrg.c
index 9d0a29370f21..5e22689c2fcf 100644
--- a/arch/sh/drivers/dma/dmabrg.c
+++ b/arch/sh/drivers/dma/dmabrg.c
@@ -33,7 +33,7 @@
33 * 9 | HAC1/SSI1 | rec | half done | DMABRGI2 33 * 9 | HAC1/SSI1 | rec | half done | DMABRGI2
34 * 34 *
35 * all can be enabled/disabled in the DMABRGCR register, 35 * all can be enabled/disabled in the DMABRGCR register,
36 * as well as checked if they occured. 36 * as well as checked if they occurred.
37 * 37 *
38 * DMABRGI0 services USB DMA Address errors, but it still must be 38 * DMABRGI0 services USB DMA Address errors, but it still must be
39 * enabled/acked in the DMABRGCR register. USB-DMA complete indicator 39 * enabled/acked in the DMABRGCR register. USB-DMA complete indicator
diff --git a/arch/sh/drivers/pci/ops-dreamcast.c b/arch/sh/drivers/pci/ops-dreamcast.c
index 381306cf5425..e1284fc69361 100644
--- a/arch/sh/drivers/pci/ops-dreamcast.c
+++ b/arch/sh/drivers/pci/ops-dreamcast.c
@@ -57,7 +57,7 @@ struct pci_channel board_pci_channels[] = {
57 * 57 *
58 * Also, we could very easily support both Type 0 and Type 1 configurations 58 * Also, we could very easily support both Type 0 and Type 1 configurations
59 * here, but since it doesn't seem that there is any such implementation in 59 * here, but since it doesn't seem that there is any such implementation in
60 * existance, we don't bother. 60 * existence, we don't bother.
61 * 61 *
62 * I suppose if someone actually gets around to ripping the chip out of 62 * I suppose if someone actually gets around to ripping the chip out of
63 * the BBA and hanging some more devices off of it, then this might be 63 * the BBA and hanging some more devices off of it, then this might be
diff --git a/arch/sh/drivers/pci/pci-st40.c b/arch/sh/drivers/pci/pci-st40.c
index d67656a44b15..543417ff8314 100644
--- a/arch/sh/drivers/pci/pci-st40.c
+++ b/arch/sh/drivers/pci/pci-st40.c
@@ -292,7 +292,7 @@ int __init st40pci_init(unsigned memStart, unsigned memSize)
292 PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | 292 PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER |
293 PCI_COMMAND_IO); 293 PCI_COMMAND_IO);
294 294
295 /* Accesse to the 0xb0000000 -> 0xb6000000 area will go through to 0x10000000 -> 0x16000000 295 /* Access to the 0xb0000000 -> 0xb6000000 area will go through to 0x10000000 -> 0x16000000
296 * on the PCI bus. This allows a nice 1-1 bus to phys mapping. 296 * on the PCI bus. This allows a nice 1-1 bus to phys mapping.
297 */ 297 */
298 298
@@ -315,7 +315,7 @@ int __init st40pci_init(unsigned memStart, unsigned memSize)
315 ST40PCI_WRITE(CSR_MBAR0, 0); 315 ST40PCI_WRITE(CSR_MBAR0, 0);
316 ST40PCI_WRITE(LSR0, 0x0fff0001); 316 ST40PCI_WRITE(LSR0, 0x0fff0001);
317 317
318 /* ... and set up the initial incomming window to expose all of RAM */ 318 /* ... and set up the initial incoming window to expose all of RAM */
319 pci_set_rbar_region(7, memStart, memStart, memSize); 319 pci_set_rbar_region(7, memStart, memStart, memSize);
320 320
321 /* Maximise timeout values */ 321 /* Maximise timeout values */
@@ -473,7 +473,7 @@ static void pci_set_rbar_region(unsigned int region, unsigned long localAddr
473 473
474 mask = r2p2(regionSize) - 0x10000; 474 mask = r2p2(regionSize) - 0x10000;
475 475
476 /* Diable the region (in case currently in use, should never happen) */ 476 /* Disable the region (in case currently in use, should never happen) */
477 ST40PCI_WRITE_INDEXED(RSR, region, 0); 477 ST40PCI_WRITE_INDEXED(RSR, region, 0);
478 478
479 /* Start of local address space to publish */ 479 /* Start of local address space to publish */
diff --git a/arch/sh/drivers/pci/pci-st40.h b/arch/sh/drivers/pci/pci-st40.h
index d729e0c2d5fe..cf0d35bd135c 100644
--- a/arch/sh/drivers/pci/pci-st40.h
+++ b/arch/sh/drivers/pci/pci-st40.h
@@ -4,7 +4,7 @@
4 * May be copied or modified under the terms of the GNU General Public 4 * May be copied or modified under the terms of the GNU General Public
5 * License. See linux/COPYING for more information. 5 * License. See linux/COPYING for more information.
6 * 6 *
7 * Defintions for the ST40 PCI hardware. 7 * Definitions for the ST40 PCI hardware.
8 */ 8 */
9 9
10#ifndef __PCI_ST40_H__ 10#ifndef __PCI_ST40_H__
diff --git a/arch/sh/drivers/superhyway/ops-sh4-202.c b/arch/sh/drivers/superhyway/ops-sh4-202.c
index a55c98a9052b..3b14bf860db6 100644
--- a/arch/sh/drivers/superhyway/ops-sh4-202.c
+++ b/arch/sh/drivers/superhyway/ops-sh4-202.c
@@ -130,7 +130,7 @@ static int sh4202_read_vcr(unsigned long base, struct superhyway_vcr_info *vcr)
130 * Some modules (PBR and ePBR for instance) also appear to have 130 * Some modules (PBR and ePBR for instance) also appear to have
131 * VCRL/VCRH flipped in the documentation, but on the SH4-202 131 * VCRL/VCRH flipped in the documentation, but on the SH4-202
132 * itself it appears that these are all consistently mapped with 132 * itself it appears that these are all consistently mapped with
133 * VCRH preceeding VCRL. 133 * VCRH preceding VCRL.
134 * 134 *
135 * Do not trust the documentation, for it is evil. 135 * Do not trust the documentation, for it is evil.
136 */ 136 */
diff --git a/arch/sh/kernel/cf-enabler.c b/arch/sh/kernel/cf-enabler.c
index 0758d48147a0..849a9e191391 100644
--- a/arch/sh/kernel/cf-enabler.c
+++ b/arch/sh/kernel/cf-enabler.c
@@ -31,7 +31,7 @@
31 */ 31 */
32#if defined(CONFIG_CPU_SH4) 32#if defined(CONFIG_CPU_SH4)
33/* SH4 can't access PCMCIA interface through P2 area. 33/* SH4 can't access PCMCIA interface through P2 area.
34 * we must remap it with appropreate attribute bit of the page set. 34 * we must remap it with appropriate attribute bit of the page set.
35 * this part is based on Greg Banks' hd64465_ss.c implementation - Masahiro Abe */ 35 * this part is based on Greg Banks' hd64465_ss.c implementation - Masahiro Abe */
36 36
37#if defined(CONFIG_CF_AREA6) 37#if defined(CONFIG_CF_AREA6)
diff --git a/arch/sh/kernel/cpu/clock.c b/arch/sh/kernel/cpu/clock.c
index 014f318f5a05..63251549e9a8 100644
--- a/arch/sh/kernel/cpu/clock.c
+++ b/arch/sh/kernel/cpu/clock.c
@@ -278,6 +278,11 @@ arch_init_clk_ops(struct clk_ops **ops, int type)
278{ 278{
279} 279}
280 280
281void __init __attribute__ ((weak))
282arch_clk_init(void)
283{
284}
285
281static int show_clocks(char *buf, char **start, off_t off, 286static int show_clocks(char *buf, char **start, off_t off,
282 int len, int *eof, void *data) 287 int len, int *eof, void *data)
283{ 288{
@@ -314,6 +319,8 @@ int __init clk_init(void)
314 ret |= clk_register(clk); 319 ret |= clk_register(clk);
315 } 320 }
316 321
322 arch_clk_init();
323
317 /* Kick the child clocks.. */ 324 /* Kick the child clocks.. */
318 propagate_rate(&master_clk); 325 propagate_rate(&master_clk);
319 propagate_rate(&bus_clk); 326 propagate_rate(&bus_clk);
diff --git a/arch/sh/kernel/cpu/irq/maskreg.c b/arch/sh/kernel/cpu/irq/maskreg.c
index 492db31b3cab..978992e367a5 100644
--- a/arch/sh/kernel/cpu/irq/maskreg.c
+++ b/arch/sh/kernel/cpu/irq/maskreg.c
@@ -38,7 +38,7 @@ static struct hw_interrupt_type maskreg_irq_type = {
38 .end = end_maskreg_irq 38 .end = end_maskreg_irq
39}; 39};
40 40
41/* actual implementatin */ 41/* actual implementation */
42static unsigned int startup_maskreg_irq(unsigned int irq) 42static unsigned int startup_maskreg_irq(unsigned int irq)
43{ 43{
44 enable_maskreg_irq(irq); 44 enable_maskreg_irq(irq);
diff --git a/arch/sh/kernel/cpu/sh4/fpu.c b/arch/sh/kernel/cpu/sh4/fpu.c
index d61dd599169f..c5a4fc77fa06 100644
--- a/arch/sh/kernel/cpu/sh4/fpu.c
+++ b/arch/sh/kernel/cpu/sh4/fpu.c
@@ -138,7 +138,7 @@ restore_fpu(struct task_struct *tsk)
138/* 138/*
139 * Load the FPU with signalling NANS. This bit pattern we're using 139 * Load the FPU with signalling NANS. This bit pattern we're using
140 * has the property that no matter wether considered as single or as 140 * has the property that no matter wether considered as single or as
141 * double precission represents signaling NANS. 141 * double precision represents signaling NANS.
142 */ 142 */
143 143
144static void 144static void
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7750.c b/arch/sh/kernel/cpu/sh4/setup-sh7750.c
index 6f8f458912c7..03b14cf78ddf 100644
--- a/arch/sh/kernel/cpu/sh4/setup-sh7750.c
+++ b/arch/sh/kernel/cpu/sh4/setup-sh7750.c
@@ -106,6 +106,7 @@ static struct ipr_data sh7750_ipr_map[] = {
106 { 38, 2, 8, 7 }, /* DMAC DMAE */ 106 { 38, 2, 8, 7 }, /* DMAC DMAE */
107}; 107};
108 108
109#ifdef CONFIG_CPU_SUBTYPE_SH7751
109static struct ipr_data sh7751_ipr_map[] = { 110static struct ipr_data sh7751_ipr_map[] = {
110 { 44, 2, 8, 7 }, /* DMAC DMTE4 */ 111 { 44, 2, 8, 7 }, /* DMAC DMTE4 */
111 { 45, 2, 8, 7 }, /* DMAC DMTE5 */ 112 { 45, 2, 8, 7 }, /* DMAC DMTE5 */
@@ -117,6 +118,7 @@ static struct ipr_data sh7751_ipr_map[] = {
117 /*{ 72, INTPRI00, 8, ? },*/ /* TMU3 TUNI */ 118 /*{ 72, INTPRI00, 8, ? },*/ /* TMU3 TUNI */
118 /*{ 76, INTPRI00, 12, ? },*/ /* TMU4 TUNI */ 119 /*{ 76, INTPRI00, 12, ? },*/ /* TMU4 TUNI */
119}; 120};
121#endif
120 122
121static unsigned long ipr_offsets[] = { 123static unsigned long ipr_offsets[] = {
122 0xffd00004UL, /* 0: IPRA */ 124 0xffd00004UL, /* 0: IPRA */
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c
index 29090035bc5b..51b386d454de 100644
--- a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c
+++ b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c
@@ -17,7 +17,6 @@
17#include <asm/clock.h> 17#include <asm/clock.h>
18#include <asm/freq.h> 18#include <asm/freq.h>
19 19
20#define SH7722_PLL_FREQ (32000000/8)
21#define N (-1) 20#define N (-1)
22#define NM (-2) 21#define NM (-2)
23#define ROUND_NEAREST 0 22#define ROUND_NEAREST 0
@@ -141,28 +140,36 @@ static void adjust_clocks(int originate, int *l, unsigned long v[],
141*/ 140*/
142static int divisors2[] = { 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 40 }; 141static int divisors2[] = { 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 40 };
143 142
143static void master_clk_recalc(struct clk *clk)
144{
145 unsigned frqcr = ctrl_inl(FRQCR);
146
147 clk->rate = CONFIG_SH_PCLK_FREQ * (((frqcr >> 24) & 0x1f) + 1);
148}
149
144static void master_clk_init(struct clk *clk) 150static void master_clk_init(struct clk *clk)
145{ 151{
146 clk_set_rate(clk, clk_get_rate(clk)); 152 clk->parent = NULL;
153 clk->flags |= CLK_RATE_PROPAGATES;
154 clk->rate = CONFIG_SH_PCLK_FREQ;
155 master_clk_recalc(clk);
147} 156}
148 157
149static void master_clk_recalc(struct clk *clk) 158
159static void module_clk_recalc(struct clk *clk)
150{ 160{
151 unsigned long frqcr = ctrl_inl(FRQCR); 161 unsigned long frqcr = ctrl_inl(FRQCR);
152 162
153 clk->rate = CONFIG_SH_PCLK_FREQ * (1 + (frqcr >> 24 & 0xF)); 163 clk->rate = clk->parent->rate / (((frqcr >> 24) & 0x1f) + 1);
154} 164}
155 165
156static int master_clk_setrate(struct clk *clk, unsigned long rate, int id) 166static int master_clk_setrate(struct clk *clk, unsigned long rate, int id)
157{ 167{
158 int div = rate / SH7722_PLL_FREQ; 168 int div = rate / clk->rate;
159 int master_divs[] = { 2, 3, 4, 6, 8, 16 }; 169 int master_divs[] = { 2, 3, 4, 6, 8, 16 };
160 int index; 170 int index;
161 unsigned long frqcr; 171 unsigned long frqcr;
162 172
163 if (rate < SH7722_PLL_FREQ * 2)
164 return -EINVAL;
165
166 for (index = 1; index < ARRAY_SIZE(master_divs); index++) 173 for (index = 1; index < ARRAY_SIZE(master_divs); index++)
167 if (div >= master_divs[index - 1] && div < master_divs[index]) 174 if (div >= master_divs[index - 1] && div < master_divs[index])
168 break; 175 break;
@@ -185,6 +192,10 @@ static struct clk_ops sh7722_master_clk_ops = {
185 .set_rate = master_clk_setrate, 192 .set_rate = master_clk_setrate,
186}; 193};
187 194
195static struct clk_ops sh7722_module_clk_ops = {
196 .recalc = module_clk_recalc,
197};
198
188struct frqcr_context { 199struct frqcr_context {
189 unsigned mask; 200 unsigned mask;
190 unsigned shift; 201 unsigned shift;
@@ -489,7 +500,7 @@ static void sh7722_siu_recalc(struct clk *clk)
489 500
490 if (siu < 0) 501 if (siu < 0)
491 return /* siu */ ; 502 return /* siu */ ;
492 BUG_ON(siu > 1); 503 BUG_ON(siu > 2);
493 r = ctrl_inl(sh7722_siu_regs[siu]); 504 r = ctrl_inl(sh7722_siu_regs[siu]);
494 clk->rate = clk->parent->rate * 2 / divisors2[r & 0xF]; 505 clk->rate = clk->parent->rate * 2 / divisors2[r & 0xF];
495} 506}
@@ -571,7 +582,7 @@ static struct clk *sh7722_clocks[] = {
571 */ 582 */
572struct clk_ops *onchip_ops[] = { 583struct clk_ops *onchip_ops[] = {
573 &sh7722_master_clk_ops, 584 &sh7722_master_clk_ops,
574 &sh7722_frqcr_clk_ops, 585 &sh7722_module_clk_ops,
575 &sh7722_frqcr_clk_ops, 586 &sh7722_frqcr_clk_ops,
576 &sh7722_frqcr_clk_ops, 587 &sh7722_frqcr_clk_ops,
577}; 588};
@@ -583,7 +594,7 @@ arch_init_clk_ops(struct clk_ops **ops, int type)
583 *ops = onchip_ops[type]; 594 *ops = onchip_ops[type];
584} 595}
585 596
586int __init sh7722_clock_init(void) 597int __init arch_clk_init(void)
587{ 598{
588 struct clk *master; 599 struct clk *master;
589 int i; 600 int i;
@@ -597,4 +608,3 @@ int __init sh7722_clock_init(void)
597 clk_put(master); 608 clk_put(master);
598 return 0; 609 return 0;
599} 610}
600arch_initcall(sh7722_clock_init);
diff --git a/arch/sh/kernel/kgdb_stub.c b/arch/sh/kernel/kgdb_stub.c
index a5323364cbca..edd1ec214e6d 100644
--- a/arch/sh/kernel/kgdb_stub.c
+++ b/arch/sh/kernel/kgdb_stub.c
@@ -2,7 +2,7 @@
2 * May be copied or modified under the terms of the GNU General Public 2 * May be copied or modified under the terms of the GNU General Public
3 * License. See linux/COPYING for more information. 3 * License. See linux/COPYING for more information.
4 * 4 *
5 * Containes extracts from code by Glenn Engel, Jim Kingdon, 5 * Contains extracts from code by Glenn Engel, Jim Kingdon,
6 * David Grothe <dave@gcom.com>, Tigran Aivazian <tigran@sco.com>, 6 * David Grothe <dave@gcom.com>, Tigran Aivazian <tigran@sco.com>,
7 * Amit S. Kale <akale@veritas.com>, William Gatliff <bgat@open-widgets.com>, 7 * Amit S. Kale <akale@veritas.com>, William Gatliff <bgat@open-widgets.com>,
8 * Ben Lee, Steve Chamberlain and Benoit Miller <fulg@iname.com>. 8 * Ben Lee, Steve Chamberlain and Benoit Miller <fulg@iname.com>.
@@ -85,7 +85,7 @@
85 * 85 *
86 * Responses can be run-length encoded to save space. A '*' means that 86 * Responses can be run-length encoded to save space. A '*' means that
87 * the next character is an ASCII encoding giving a repeat count which 87 * the next character is an ASCII encoding giving a repeat count which
88 * stands for that many repititions of the character preceding the '*'. 88 * stands for that many repetitions of the character preceding the '*'.
89 * The encoding is n+29, yielding a printable character where n >=3 89 * The encoding is n+29, yielding a printable character where n >=3
90 * (which is where RLE starts to win). Don't use an n > 126. 90 * (which is where RLE starts to win). Don't use an n > 126.
91 * 91 *
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
index 6b4f5748d0be..a11e2aa73cbc 100644
--- a/arch/sh/kernel/process.c
+++ b/arch/sh/kernel/process.c
@@ -26,8 +26,6 @@
26static int hlt_counter; 26static int hlt_counter;
27int ubc_usercnt = 0; 27int ubc_usercnt = 0;
28 28
29#define HARD_IDLE_TIMEOUT (HZ / 3)
30
31void (*pm_idle)(void); 29void (*pm_idle)(void);
32void (*pm_power_off)(void); 30void (*pm_power_off)(void);
33EXPORT_SYMBOL(pm_power_off); 31EXPORT_SYMBOL(pm_power_off);
@@ -44,16 +42,39 @@ void enable_hlt(void)
44} 42}
45EXPORT_SYMBOL(enable_hlt); 43EXPORT_SYMBOL(enable_hlt);
46 44
45static int __init nohlt_setup(char *__unused)
46{
47 hlt_counter = 1;
48 return 1;
49}
50__setup("nohlt", nohlt_setup);
51
52static int __init hlt_setup(char *__unused)
53{
54 hlt_counter = 0;
55 return 1;
56}
57__setup("hlt", hlt_setup);
58
47void default_idle(void) 59void default_idle(void)
48{ 60{
49 if (!hlt_counter) 61 if (!hlt_counter) {
50 cpu_sleep(); 62 clear_thread_flag(TIF_POLLING_NRFLAG);
51 else 63 smp_mb__after_clear_bit();
52 cpu_relax(); 64 set_bl_bit();
65 while (!need_resched())
66 cpu_sleep();
67 clear_bl_bit();
68 set_thread_flag(TIF_POLLING_NRFLAG);
69 } else
70 while (!need_resched())
71 cpu_relax();
53} 72}
54 73
55void cpu_idle(void) 74void cpu_idle(void)
56{ 75{
76 set_thread_flag(TIF_POLLING_NRFLAG);
77
57 /* endless idle loop with no priority at all */ 78 /* endless idle loop with no priority at all */
58 while (1) { 79 while (1) {
59 void (*idle)(void) = pm_idle; 80 void (*idle)(void) = pm_idle;
diff --git a/arch/sh/kernel/syscalls.S b/arch/sh/kernel/syscalls.S
index 4357d1a6358f..7db1c2dc5992 100644
--- a/arch/sh/kernel/syscalls.S
+++ b/arch/sh/kernel/syscalls.S
@@ -355,3 +355,6 @@ ENTRY(sys_call_table)
355 .long sys_getcpu 355 .long sys_getcpu
356 .long sys_epoll_pwait 356 .long sys_epoll_pwait
357 .long sys_utimensat /* 320 */ 357 .long sys_utimensat /* 320 */
358 .long sys_signalfd
359 .long sys_timerfd
360 .long sys_eventfd
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c
index 3a197649cd83..5b75cb6f8f9b 100644
--- a/arch/sh/kernel/traps.c
+++ b/arch/sh/kernel/traps.c
@@ -21,6 +21,7 @@
21#include <linux/bug.h> 21#include <linux/bug.h>
22#include <linux/debug_locks.h> 22#include <linux/debug_locks.h>
23#include <linux/kdebug.h> 23#include <linux/kdebug.h>
24#include <linux/kexec.h>
24#include <linux/limits.h> 25#include <linux/limits.h>
25#include <asm/system.h> 26#include <asm/system.h>
26#include <asm/uaccess.h> 27#include <asm/uaccess.h>
@@ -101,6 +102,16 @@ void die(const char * str, struct pt_regs * regs, long err)
101 102
102 bust_spinlocks(0); 103 bust_spinlocks(0);
103 spin_unlock_irq(&die_lock); 104 spin_unlock_irq(&die_lock);
105
106 if (kexec_should_crash(current))
107 crash_kexec(regs);
108
109 if (in_interrupt())
110 panic("Fatal exception in interrupt");
111
112 if (panic_on_oops)
113 panic("Fatal exception");
114
104 do_exit(SIGSEGV); 115 do_exit(SIGSEGV);
105} 116}
106 117
@@ -513,7 +524,7 @@ static int handle_unaligned_access(u16 instruction, struct pt_regs *regs)
513 * misaligned data access 524 * misaligned data access
514 * access to >= 0x80000000 is user mode 525 * access to >= 0x80000000 is user mode
515 * Unfortuntaly we can't distinguish between instruction address error 526 * Unfortuntaly we can't distinguish between instruction address error
516 * and data address errors caused by read acceses. 527 * and data address errors caused by read accesses.
517 */ 528 */
518asmlinkage void do_address_error(struct pt_regs *regs, 529asmlinkage void do_address_error(struct pt_regs *regs,
519 unsigned long writeaccess, 530 unsigned long writeaccess,
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S
index d83143cc5ca9..4c5b57e9c3c1 100644
--- a/arch/sh/kernel/vmlinux.lds.S
+++ b/arch/sh/kernel/vmlinux.lds.S
@@ -22,7 +22,7 @@ SECTIONS
22 *(.empty_zero_page) 22 *(.empty_zero_page)
23 } = 0 23 } = 0
24 .text : { 24 .text : {
25 *(.text) 25 TEXT_TEXT
26 SCHED_TEXT 26 SCHED_TEXT
27 LOCK_TEXT 27 LOCK_TEXT
28 *(.fixup) 28 *(.fixup)
@@ -41,7 +41,7 @@ SECTIONS
41 BUG_TABLE 41 BUG_TABLE
42 42
43 .data : { /* Data */ 43 .data : { /* Data */
44 *(.data) 44 DATA_DATA
45 45
46 /* Align the initial ramdisk image (INITRD) on page boundaries. */ 46 /* Align the initial ramdisk image (INITRD) on page boundaries. */
47 . = ALIGN(PAGE_SIZE); 47 . = ALIGN(PAGE_SIZE);
diff --git a/arch/sh/math-emu/math.c b/arch/sh/math-emu/math.c
index 1efbac15ff4e..a38e1eed9e77 100644
--- a/arch/sh/math-emu/math.c
+++ b/arch/sh/math-emu/math.c
@@ -148,7 +148,7 @@ fmac(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
148 return 0; 148 return 0;
149} 149}
150 150
151// to process fmov's extention (odd n for DR access XD). 151// to process fmov's extension (odd n for DR access XD).
152#define FMOV_EXT(x) if(x&1) x+=16-1 152#define FMOV_EXT(x) if(x&1) x+=16-1
153 153
154static int 154static int
diff --git a/arch/sh/mm/copy_page.S b/arch/sh/mm/copy_page.S
index 397c94c97315..ae039f2da162 100644
--- a/arch/sh/mm/copy_page.S
+++ b/arch/sh/mm/copy_page.S
@@ -129,6 +129,7 @@ ENTRY(__copy_user_page)
129 rts 129 rts
130 nop 130 nop
131#endif 131#endif
132 .align 2
132.Lpsz: .long PAGE_SIZE 133.Lpsz: .long PAGE_SIZE
133/* 134/*
134 * __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n); 135 * __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n);
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 9207da67ff8a..c878faa4ae46 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -15,43 +15,11 @@
15#include <linux/mm.h> 15#include <linux/mm.h>
16#include <linux/hardirq.h> 16#include <linux/hardirq.h>
17#include <linux/kprobes.h> 17#include <linux/kprobes.h>
18#include <linux/kdebug.h>
19#include <asm/system.h> 18#include <asm/system.h>
20#include <asm/mmu_context.h> 19#include <asm/mmu_context.h>
21#include <asm/tlbflush.h> 20#include <asm/tlbflush.h>
22#include <asm/kgdb.h> 21#include <asm/kgdb.h>
23 22
24#ifdef CONFIG_KPROBES
25ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain);
26
27/* Hook to register for page fault notifications */
28int register_page_fault_notifier(struct notifier_block *nb)
29{
30 return atomic_notifier_chain_register(&notify_page_fault_chain, nb);
31}
32
33int unregister_page_fault_notifier(struct notifier_block *nb)
34{
35 return atomic_notifier_chain_unregister(&notify_page_fault_chain, nb);
36}
37
38static inline int notify_page_fault(enum die_val val, struct pt_regs *regs,
39 int trap, int sig)
40{
41 struct die_args args = {
42 .regs = regs,
43 .trapnr = trap,
44 };
45 return atomic_notifier_call_chain(&notify_page_fault_chain, val, &args);
46}
47#else
48static inline int notify_page_fault(enum die_val val, struct pt_regs *regs,
49 int trap, int sig)
50{
51 return NOTIFY_DONE;
52}
53#endif
54
55/* 23/*
56 * This routine handles page faults. It determines the address, 24 * This routine handles page faults. It determines the address,
57 * and the problem, and then passes it off to one of the appropriate 25 * and the problem, and then passes it off to one of the appropriate
@@ -69,11 +37,6 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
69 siginfo_t info; 37 siginfo_t info;
70 38
71 trace_hardirqs_on(); 39 trace_hardirqs_on();
72
73 if (notify_page_fault(DIE_PAGE_FAULT, regs,
74 writeaccess, SIGSEGV) == NOTIFY_STOP)
75 return;
76
77 local_irq_enable(); 40 local_irq_enable();
78 41
79#ifdef CONFIG_SH_KGDB 42#ifdef CONFIG_SH_KGDB
@@ -285,7 +248,7 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs,
285 pte_t *pte; 248 pte_t *pte;
286 pte_t entry; 249 pte_t entry;
287 struct mm_struct *mm = current->mm; 250 struct mm_struct *mm = current->mm;
288 spinlock_t *ptl; 251 spinlock_t *ptl = NULL;
289 int ret = 1; 252 int ret = 1;
290 253
291#ifdef CONFIG_SH_KGDB 254#ifdef CONFIG_SH_KGDB
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
index 8fe223a890ed..e0e644ff3204 100644
--- a/arch/sh/mm/init.c
+++ b/arch/sh/mm/init.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/bootmem.h> 13#include <linux/bootmem.h>
14#include <linux/proc_fs.h> 14#include <linux/proc_fs.h>
15#include <linux/pagemap.h>
15#include <linux/percpu.h> 16#include <linux/percpu.h>
16#include <linux/io.h> 17#include <linux/io.h>
17#include <asm/mmu_context.h> 18#include <asm/mmu_context.h>
@@ -112,7 +113,7 @@ static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot)
112 * As a performance optimization, other platforms preserve the fixmap mapping 113 * As a performance optimization, other platforms preserve the fixmap mapping
113 * across a context switch, we don't presently do this, but this could be done 114 * across a context switch, we don't presently do this, but this could be done
114 * in a similar fashion as to the wired TLB interface that sh64 uses (by way 115 * in a similar fashion as to the wired TLB interface that sh64 uses (by way
115 * of the memorry mapped UTLB configuration) -- this unfortunately forces us to 116 * of the memory mapped UTLB configuration) -- this unfortunately forces us to
116 * give up a TLB entry for each mapping we want to preserve. While this may be 117 * give up a TLB entry for each mapping we want to preserve. While this may be
117 * viable for a small number of fixmaps, it's not particularly useful for 118 * viable for a small number of fixmaps, it's not particularly useful for
118 * everything and needs to be carefully evaluated. (ie, we may want this for 119 * everything and needs to be carefully evaluated. (ie, we may want this for
diff --git a/arch/sh/mm/pmb.c b/arch/sh/mm/pmb.c
index 02aae06527dc..b6a5a338145b 100644
--- a/arch/sh/mm/pmb.c
+++ b/arch/sh/mm/pmb.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Privileged Space Mapping Buffer (PMB) Support. 4 * Privileged Space Mapping Buffer (PMB) Support.
5 * 5 *
6 * Copyright (C) 2005, 2006 Paul Mundt 6 * Copyright (C) 2005, 2006, 2007 Paul Mundt
7 * 7 *
8 * P1/P2 Section mapping definitions from map32.h, which was: 8 * P1/P2 Section mapping definitions from map32.h, which was:
9 * 9 *
@@ -68,6 +68,32 @@ static inline unsigned long mk_pmb_data(unsigned int entry)
68 return mk_pmb_entry(entry) | PMB_DATA; 68 return mk_pmb_entry(entry) | PMB_DATA;
69} 69}
70 70
71static DEFINE_SPINLOCK(pmb_list_lock);
72static struct pmb_entry *pmb_list;
73
74static inline void pmb_list_add(struct pmb_entry *pmbe)
75{
76 struct pmb_entry **p, *tmp;
77
78 p = &pmb_list;
79 while ((tmp = *p) != NULL)
80 p = &tmp->next;
81
82 pmbe->next = tmp;
83 *p = pmbe;
84}
85
86static inline void pmb_list_del(struct pmb_entry *pmbe)
87{
88 struct pmb_entry **p, *tmp;
89
90 for (p = &pmb_list; (tmp = *p); p = &tmp->next)
91 if (tmp == pmbe) {
92 *p = tmp->next;
93 return;
94 }
95}
96
71struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn, 97struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn,
72 unsigned long flags) 98 unsigned long flags)
73{ 99{
@@ -81,11 +107,19 @@ struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn,
81 pmbe->ppn = ppn; 107 pmbe->ppn = ppn;
82 pmbe->flags = flags; 108 pmbe->flags = flags;
83 109
110 spin_lock_irq(&pmb_list_lock);
111 pmb_list_add(pmbe);
112 spin_unlock_irq(&pmb_list_lock);
113
84 return pmbe; 114 return pmbe;
85} 115}
86 116
87void pmb_free(struct pmb_entry *pmbe) 117void pmb_free(struct pmb_entry *pmbe)
88{ 118{
119 spin_lock_irq(&pmb_list_lock);
120 pmb_list_del(pmbe);
121 spin_unlock_irq(&pmb_list_lock);
122
89 kmem_cache_free(pmb_cache, pmbe); 123 kmem_cache_free(pmb_cache, pmbe);
90} 124}
91 125
@@ -167,31 +201,6 @@ void clear_pmb_entry(struct pmb_entry *pmbe)
167 clear_bit(entry, &pmb_map); 201 clear_bit(entry, &pmb_map);
168} 202}
169 203
170static DEFINE_SPINLOCK(pmb_list_lock);
171static struct pmb_entry *pmb_list;
172
173static inline void pmb_list_add(struct pmb_entry *pmbe)
174{
175 struct pmb_entry **p, *tmp;
176
177 p = &pmb_list;
178 while ((tmp = *p) != NULL)
179 p = &tmp->next;
180
181 pmbe->next = tmp;
182 *p = pmbe;
183}
184
185static inline void pmb_list_del(struct pmb_entry *pmbe)
186{
187 struct pmb_entry **p, *tmp;
188
189 for (p = &pmb_list; (tmp = *p); p = &tmp->next)
190 if (tmp == pmbe) {
191 *p = tmp->next;
192 return;
193 }
194}
195 204
196static struct { 205static struct {
197 unsigned long size; 206 unsigned long size;
@@ -283,25 +292,14 @@ void pmb_unmap(unsigned long addr)
283 } while (pmbe); 292 } while (pmbe);
284} 293}
285 294
286static void pmb_cache_ctor(void *pmb, struct kmem_cache *cachep, unsigned long flags) 295static void pmb_cache_ctor(void *pmb, struct kmem_cache *cachep,
296 unsigned long flags)
287{ 297{
288 struct pmb_entry *pmbe = pmb; 298 struct pmb_entry *pmbe = pmb;
289 299
290 memset(pmb, 0, sizeof(struct pmb_entry)); 300 memset(pmb, 0, sizeof(struct pmb_entry));
291 301
292 spin_lock_irq(&pmb_list_lock);
293
294 pmbe->entry = PMB_NO_ENTRY; 302 pmbe->entry = PMB_NO_ENTRY;
295 pmb_list_add(pmbe);
296
297 spin_unlock_irq(&pmb_list_lock);
298}
299
300static void pmb_cache_dtor(void *pmb, struct kmem_cache *cachep, unsigned long flags)
301{
302 spin_lock_irq(&pmb_list_lock);
303 pmb_list_del(pmb);
304 spin_unlock_irq(&pmb_list_lock);
305} 303}
306 304
307static int __init pmb_init(void) 305static int __init pmb_init(void)
@@ -312,8 +310,7 @@ static int __init pmb_init(void)
312 BUG_ON(unlikely(nr_entries >= NR_PMB_ENTRIES)); 310 BUG_ON(unlikely(nr_entries >= NR_PMB_ENTRIES));
313 311
314 pmb_cache = kmem_cache_create("pmb", sizeof(struct pmb_entry), 0, 312 pmb_cache = kmem_cache_create("pmb", sizeof(struct pmb_entry), 0,
315 SLAB_PANIC, pmb_cache_ctor, 313 SLAB_PANIC, pmb_cache_ctor, NULL);
316 pmb_cache_dtor);
317 314
318 jump_to_P2(); 315 jump_to_P2();
319 316
diff --git a/arch/sh/tools/mach-types b/arch/sh/tools/mach-types
index 554f801db67b..fb40f188aff9 100644
--- a/arch/sh/tools/mach-types
+++ b/arch/sh/tools/mach-types
@@ -7,8 +7,11 @@
7# 7#
8SE SH_SOLUTION_ENGINE 8SE SH_SOLUTION_ENGINE
97751SE SH_7751_SOLUTION_ENGINE 97751SE SH_7751_SOLUTION_ENGINE
107722SE SH_7722_SOLUTION_ENGINE
107300SE SH_7300_SOLUTION_ENGINE 117300SE SH_7300_SOLUTION_ENGINE
117343SE SH_7343_SOLUTION_ENGINE 127343SE SH_7343_SOLUTION_ENGINE
137206SE SH_7206_SOLUTION_ENGINE
147619SE SH_7619_SOLUTION_ENGINE
127780SE SH_7780_SOLUTION_ENGINE 157780SE SH_7780_SOLUTION_ENGINE
1373180SE SH_73180_SOLUTION_ENGINE 1673180SE SH_73180_SOLUTION_ENGINE
147751SYSTEMH SH_7751_SYSTEMH 177751SYSTEMH SH_7751_SYSTEMH
@@ -31,5 +34,3 @@ R7785RP SH_R7785RP
31TITAN SH_TITAN 34TITAN SH_TITAN
32SHMIN SH_SHMIN 35SHMIN SH_SHMIN
337710VOIPGW SH_7710VOIPGW 367710VOIPGW SH_7710VOIPGW
347206SE SH_7206_SOLUTION_ENGINE
357619SE SH_7619_SOLUTION_ENGINE
diff --git a/arch/sh64/kernel/vmlinux.lds.S b/arch/sh64/kernel/vmlinux.lds.S
index 4f9616f39830..02aea86c5907 100644
--- a/arch/sh64/kernel/vmlinux.lds.S
+++ b/arch/sh64/kernel/vmlinux.lds.S
@@ -54,7 +54,7 @@ SECTIONS
54 } = 0 54 } = 0
55 55
56 .text : C_PHYS(.text) { 56 .text : C_PHYS(.text) {
57 *(.text) 57 TEXT_TEXT
58 *(.text64) 58 *(.text64)
59 *(.text..SHmedia32) 59 *(.text..SHmedia32)
60 SCHED_TEXT 60 SCHED_TEXT
@@ -78,7 +78,7 @@ SECTIONS
78 _etext = .; /* End of text section */ 78 _etext = .; /* End of text section */
79 79
80 .data : C_PHYS(.data) { /* Data */ 80 .data : C_PHYS(.data) { /* Data */
81 *(.data) 81 DATA_DATA
82 CONSTRUCTORS 82 CONSTRUCTORS
83 } 83 }
84 84
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index bd992c0048f0..fbcc00c6c06e 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -178,6 +178,13 @@ config ARCH_HAS_ILOG2_U64
178 bool 178 bool
179 default n 179 default n
180 180
181config EMULATED_CMPXCHG
182 bool
183 default y
184 help
185 Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
186 is emulated, and therefore it is not completely atomic.
187
181config SUN_PM 188config SUN_PM
182 bool 189 bool
183 default y 190 default y
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c
index f1401b57ccc7..7b4612da74a6 100644
--- a/arch/sparc/kernel/time.c
+++ b/arch/sparc/kernel/time.c
@@ -148,7 +148,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id)
148} 148}
149 149
150/* Kick start a stopped clock (procedure from the Sun NVRAM/hostid FAQ). */ 150/* Kick start a stopped clock (procedure from the Sun NVRAM/hostid FAQ). */
151static void __init kick_start_clock(void) 151static void __devinit kick_start_clock(void)
152{ 152{
153 struct mostek48t02 *regs = (struct mostek48t02 *)mstk48t02_regs; 153 struct mostek48t02 *regs = (struct mostek48t02 *)mstk48t02_regs;
154 unsigned char sec; 154 unsigned char sec;
@@ -223,7 +223,7 @@ static __inline__ int has_low_battery(void)
223 return (data1 == data2); /* Was the write blocked? */ 223 return (data1 == data2); /* Was the write blocked? */
224} 224}
225 225
226static void __init mostek_set_system_time(void) 226static void __devinit mostek_set_system_time(void)
227{ 227{
228 unsigned int year, mon, day, hour, min, sec; 228 unsigned int year, mon, day, hour, min, sec;
229 struct mostek48t02 *mregs; 229 struct mostek48t02 *mregs;
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S
index f0bb6e60e620..f75a1b822789 100644
--- a/arch/sparc/kernel/vmlinux.lds.S
+++ b/arch/sparc/kernel/vmlinux.lds.S
@@ -12,7 +12,7 @@ SECTIONS
12 .text 0xf0004000 : 12 .text 0xf0004000 :
13 { 13 {
14 _text = .; 14 _text = .;
15 *(.text) 15 TEXT_TEXT
16 SCHED_TEXT 16 SCHED_TEXT
17 LOCK_TEXT 17 LOCK_TEXT
18 *(.gnu.warning) 18 *(.gnu.warning)
@@ -22,7 +22,7 @@ SECTIONS
22 RODATA 22 RODATA
23 .data : 23 .data :
24 { 24 {
25 *(.data) 25 DATA_DATA
26 CONSTRUCTORS 26 CONSTRUCTORS
27 } 27 }
28 .data1 : { *(.data1) } 28 .data1 : { *(.data1) }
diff --git a/arch/sparc/lib/atomic32.c b/arch/sparc/lib/atomic32.c
index 559335f4917d..617d29832e19 100644
--- a/arch/sparc/lib/atomic32.c
+++ b/arch/sparc/lib/atomic32.c
@@ -2,6 +2,7 @@
2 * atomic32.c: 32-bit atomic_t implementation 2 * atomic32.c: 32-bit atomic_t implementation
3 * 3 *
4 * Copyright (C) 2004 Keith M Wesolowski 4 * Copyright (C) 2004 Keith M Wesolowski
5 * Copyright (C) 2007 Kyle McMartin
5 * 6 *
6 * Based on asm-parisc/atomic.h Copyright (C) 2000 Philipp Rumpf 7 * Based on asm-parisc/atomic.h Copyright (C) 2000 Philipp Rumpf
7 */ 8 */
@@ -117,3 +118,17 @@ unsigned long ___change_bit(unsigned long *addr, unsigned long mask)
117 return old & mask; 118 return old & mask;
118} 119}
119EXPORT_SYMBOL(___change_bit); 120EXPORT_SYMBOL(___change_bit);
121
122unsigned long __cmpxchg_u32(volatile u32 *ptr, u32 old, u32 new)
123{
124 unsigned long flags;
125 u32 prev;
126
127 spin_lock_irqsave(ATOMIC_HASH(addr), flags);
128 if ((prev = *ptr) == old)
129 *ptr = new;
130 spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
131
132 return (unsigned long)prev;
133}
134EXPORT_SYMBOL(__cmpxchg_u32);
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index 831781cab271..bd00f89eed1e 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -147,10 +147,10 @@ config SMP
147 If you don't know what to do here, say N. 147 If you don't know what to do here, say N.
148 148
149config NR_CPUS 149config NR_CPUS
150 int "Maximum number of CPUs (2-64)" 150 int "Maximum number of CPUs (2-1024)"
151 range 2 64 151 range 2 1024
152 depends on SMP 152 depends on SMP
153 default "32" 153 default "64"
154 154
155source "drivers/cpufreq/Kconfig" 155source "drivers/cpufreq/Kconfig"
156 156
diff --git a/arch/sparc64/kernel/Makefile b/arch/sparc64/kernel/Makefile
index 6bf6fb65bc20..d8d19093d12f 100644
--- a/arch/sparc64/kernel/Makefile
+++ b/arch/sparc64/kernel/Makefile
@@ -8,11 +8,11 @@ EXTRA_CFLAGS := -Werror
8extra-y := head.o init_task.o vmlinux.lds 8extra-y := head.o init_task.o vmlinux.lds
9 9
10obj-y := process.o setup.o cpu.o idprom.o \ 10obj-y := process.o setup.o cpu.o idprom.o \
11 traps.o devices.o auxio.o una_asm.o \ 11 traps.o auxio.o una_asm.o \
12 irq.o ptrace.o time.o sys_sparc.o signal.o \ 12 irq.o ptrace.o time.o sys_sparc.o signal.o \
13 unaligned.o central.o pci.o starfire.o semaphore.o \ 13 unaligned.o central.o pci.o starfire.o semaphore.o \
14 power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o \ 14 power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o \
15 visemul.o prom.o of_device.o 15 visemul.o prom.o of_device.o hvapi.o sstate.o mdesc.o
16 16
17obj-$(CONFIG_STACKTRACE) += stacktrace.o 17obj-$(CONFIG_STACKTRACE) += stacktrace.o
18obj-$(CONFIG_PCI) += ebus.o isa.o pci_common.o pci_iommu.o \ 18obj-$(CONFIG_PCI) += ebus.o isa.o pci_common.o pci_iommu.o \
diff --git a/arch/sparc64/kernel/devices.c b/arch/sparc64/kernel/devices.c
deleted file mode 100644
index 0e03c8e218cd..000000000000
--- a/arch/sparc64/kernel/devices.c
+++ /dev/null
@@ -1,196 +0,0 @@
1/* devices.c: Initial scan of the prom device tree for important
2 * Sparc device nodes which we need to find.
3 *
4 * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
5 */
6
7#include <linux/kernel.h>
8#include <linux/threads.h>
9#include <linux/init.h>
10#include <linux/ioport.h>
11#include <linux/string.h>
12#include <linux/spinlock.h>
13#include <linux/errno.h>
14#include <linux/bootmem.h>
15
16#include <asm/page.h>
17#include <asm/oplib.h>
18#include <asm/system.h>
19#include <asm/smp.h>
20#include <asm/spitfire.h>
21#include <asm/timer.h>
22#include <asm/cpudata.h>
23
24/* Used to synchronize accesses to NatSemi SUPER I/O chip configure
25 * operations in asm/ns87303.h
26 */
27DEFINE_SPINLOCK(ns87303_lock);
28
29extern void cpu_probe(void);
30extern void central_probe(void);
31
32static const char *cpu_mid_prop(void)
33{
34 if (tlb_type == spitfire)
35 return "upa-portid";
36 return "portid";
37}
38
39static int get_cpu_mid(struct device_node *dp)
40{
41 struct property *prop;
42
43 if (tlb_type == hypervisor) {
44 struct linux_prom64_registers *reg;
45 int len;
46
47 prop = of_find_property(dp, "cpuid", &len);
48 if (prop && len == 4)
49 return *(int *) prop->value;
50
51 prop = of_find_property(dp, "reg", NULL);
52 reg = prop->value;
53 return (reg[0].phys_addr >> 32) & 0x0fffffffUL;
54 } else {
55 const char *prop_name = cpu_mid_prop();
56
57 prop = of_find_property(dp, prop_name, NULL);
58 if (prop)
59 return *(int *) prop->value;
60 return 0;
61 }
62}
63
64static int check_cpu_node(struct device_node *dp, int *cur_inst,
65 int (*compare)(struct device_node *, int, void *),
66 void *compare_arg,
67 struct device_node **dev_node, int *mid)
68{
69 if (!compare(dp, *cur_inst, compare_arg)) {
70 if (dev_node)
71 *dev_node = dp;
72 if (mid)
73 *mid = get_cpu_mid(dp);
74 return 0;
75 }
76
77 (*cur_inst)++;
78
79 return -ENODEV;
80}
81
82static int __cpu_find_by(int (*compare)(struct device_node *, int, void *),
83 void *compare_arg,
84 struct device_node **dev_node, int *mid)
85{
86 struct device_node *dp;
87 int cur_inst;
88
89 cur_inst = 0;
90 for_each_node_by_type(dp, "cpu") {
91 int err = check_cpu_node(dp, &cur_inst,
92 compare, compare_arg,
93 dev_node, mid);
94 if (err == 0)
95 return 0;
96 }
97
98 return -ENODEV;
99}
100
101static int cpu_instance_compare(struct device_node *dp, int instance, void *_arg)
102{
103 int desired_instance = (int) (long) _arg;
104
105 if (instance == desired_instance)
106 return 0;
107 return -ENODEV;
108}
109
110int cpu_find_by_instance(int instance, struct device_node **dev_node, int *mid)
111{
112 return __cpu_find_by(cpu_instance_compare, (void *)(long)instance,
113 dev_node, mid);
114}
115
116static int cpu_mid_compare(struct device_node *dp, int instance, void *_arg)
117{
118 int desired_mid = (int) (long) _arg;
119 int this_mid;
120
121 this_mid = get_cpu_mid(dp);
122 if (this_mid == desired_mid)
123 return 0;
124 return -ENODEV;
125}
126
127int cpu_find_by_mid(int mid, struct device_node **dev_node)
128{
129 return __cpu_find_by(cpu_mid_compare, (void *)(long)mid,
130 dev_node, NULL);
131}
132
133void __init device_scan(void)
134{
135 /* FIX ME FAST... -DaveM */
136 ioport_resource.end = 0xffffffffffffffffUL;
137
138 prom_printf("Booting Linux...\n");
139
140#ifndef CONFIG_SMP
141 {
142 struct device_node *dp;
143 int err, def;
144
145 err = cpu_find_by_instance(0, &dp, NULL);
146 if (err) {
147 prom_printf("No cpu nodes, cannot continue\n");
148 prom_halt();
149 }
150 cpu_data(0).clock_tick =
151 of_getintprop_default(dp, "clock-frequency", 0);
152
153 def = ((tlb_type == hypervisor) ?
154 (8 * 1024) :
155 (16 * 1024));
156 cpu_data(0).dcache_size = of_getintprop_default(dp,
157 "dcache-size",
158 def);
159
160 def = 32;
161 cpu_data(0).dcache_line_size =
162 of_getintprop_default(dp, "dcache-line-size", def);
163
164 def = 16 * 1024;
165 cpu_data(0).icache_size = of_getintprop_default(dp,
166 "icache-size",
167 def);
168
169 def = 32;
170 cpu_data(0).icache_line_size =
171 of_getintprop_default(dp, "icache-line-size", def);
172
173 def = ((tlb_type == hypervisor) ?
174 (3 * 1024 * 1024) :
175 (4 * 1024 * 1024));
176 cpu_data(0).ecache_size = of_getintprop_default(dp,
177 "ecache-size",
178 def);
179
180 def = 64;
181 cpu_data(0).ecache_line_size =
182 of_getintprop_default(dp, "ecache-line-size", def);
183 printk("CPU[0]: Caches "
184 "D[sz(%d):line_sz(%d)] "
185 "I[sz(%d):line_sz(%d)] "
186 "E[sz(%d):line_sz(%d)]\n",
187 cpu_data(0).dcache_size, cpu_data(0).dcache_line_size,
188 cpu_data(0).icache_size, cpu_data(0).icache_line_size,
189 cpu_data(0).ecache_size, cpu_data(0).ecache_line_size);
190 }
191#endif
192
193 central_probe();
194
195 cpu_probe();
196}
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S
index c15a3edcb826..8f10dda0f5c0 100644
--- a/arch/sparc64/kernel/entry.S
+++ b/arch/sparc64/kernel/entry.S
@@ -1725,96 +1725,142 @@ real_hard_smp_processor_id:
1725 * returns %o0: sysino 1725 * returns %o0: sysino
1726 */ 1726 */
1727 .globl sun4v_devino_to_sysino 1727 .globl sun4v_devino_to_sysino
1728 .type sun4v_devino_to_sysino,#function
1728sun4v_devino_to_sysino: 1729sun4v_devino_to_sysino:
1729 mov HV_FAST_INTR_DEVINO2SYSINO, %o5 1730 mov HV_FAST_INTR_DEVINO2SYSINO, %o5
1730 ta HV_FAST_TRAP 1731 ta HV_FAST_TRAP
1731 retl 1732 retl
1732 mov %o1, %o0 1733 mov %o1, %o0
1734 .size sun4v_devino_to_sysino, .-sun4v_devino_to_sysino
1733 1735
1734 /* %o0: sysino 1736 /* %o0: sysino
1735 * 1737 *
1736 * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED}) 1738 * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED})
1737 */ 1739 */
1738 .globl sun4v_intr_getenabled 1740 .globl sun4v_intr_getenabled
1741 .type sun4v_intr_getenabled,#function
1739sun4v_intr_getenabled: 1742sun4v_intr_getenabled:
1740 mov HV_FAST_INTR_GETENABLED, %o5 1743 mov HV_FAST_INTR_GETENABLED, %o5
1741 ta HV_FAST_TRAP 1744 ta HV_FAST_TRAP
1742 retl 1745 retl
1743 mov %o1, %o0 1746 mov %o1, %o0
1747 .size sun4v_intr_getenabled, .-sun4v_intr_getenabled
1744 1748
1745 /* %o0: sysino 1749 /* %o0: sysino
1746 * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED}) 1750 * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED})
1747 */ 1751 */
1748 .globl sun4v_intr_setenabled 1752 .globl sun4v_intr_setenabled
1753 .type sun4v_intr_setenabled,#function
1749sun4v_intr_setenabled: 1754sun4v_intr_setenabled:
1750 mov HV_FAST_INTR_SETENABLED, %o5 1755 mov HV_FAST_INTR_SETENABLED, %o5
1751 ta HV_FAST_TRAP 1756 ta HV_FAST_TRAP
1752 retl 1757 retl
1753 nop 1758 nop
1759 .size sun4v_intr_setenabled, .-sun4v_intr_setenabled
1754 1760
1755 /* %o0: sysino 1761 /* %o0: sysino
1756 * 1762 *
1757 * returns %o0: intr_state (HV_INTR_STATE_*) 1763 * returns %o0: intr_state (HV_INTR_STATE_*)
1758 */ 1764 */
1759 .globl sun4v_intr_getstate 1765 .globl sun4v_intr_getstate
1766 .type sun4v_intr_getstate,#function
1760sun4v_intr_getstate: 1767sun4v_intr_getstate:
1761 mov HV_FAST_INTR_GETSTATE, %o5 1768 mov HV_FAST_INTR_GETSTATE, %o5
1762 ta HV_FAST_TRAP 1769 ta HV_FAST_TRAP
1763 retl 1770 retl
1764 mov %o1, %o0 1771 mov %o1, %o0
1772 .size sun4v_intr_getstate, .-sun4v_intr_getstate
1765 1773
1766 /* %o0: sysino 1774 /* %o0: sysino
1767 * %o1: intr_state (HV_INTR_STATE_*) 1775 * %o1: intr_state (HV_INTR_STATE_*)
1768 */ 1776 */
1769 .globl sun4v_intr_setstate 1777 .globl sun4v_intr_setstate
1778 .type sun4v_intr_setstate,#function
1770sun4v_intr_setstate: 1779sun4v_intr_setstate:
1771 mov HV_FAST_INTR_SETSTATE, %o5 1780 mov HV_FAST_INTR_SETSTATE, %o5
1772 ta HV_FAST_TRAP 1781 ta HV_FAST_TRAP
1773 retl 1782 retl
1774 nop 1783 nop
1784 .size sun4v_intr_setstate, .-sun4v_intr_setstate
1775 1785
1776 /* %o0: sysino 1786 /* %o0: sysino
1777 * 1787 *
1778 * returns %o0: cpuid 1788 * returns %o0: cpuid
1779 */ 1789 */
1780 .globl sun4v_intr_gettarget 1790 .globl sun4v_intr_gettarget
1791 .type sun4v_intr_gettarget,#function
1781sun4v_intr_gettarget: 1792sun4v_intr_gettarget:
1782 mov HV_FAST_INTR_GETTARGET, %o5 1793 mov HV_FAST_INTR_GETTARGET, %o5
1783 ta HV_FAST_TRAP 1794 ta HV_FAST_TRAP
1784 retl 1795 retl
1785 mov %o1, %o0 1796 mov %o1, %o0
1797 .size sun4v_intr_gettarget, .-sun4v_intr_gettarget
1786 1798
1787 /* %o0: sysino 1799 /* %o0: sysino
1788 * %o1: cpuid 1800 * %o1: cpuid
1789 */ 1801 */
1790 .globl sun4v_intr_settarget 1802 .globl sun4v_intr_settarget
1803 .type sun4v_intr_settarget,#function
1791sun4v_intr_settarget: 1804sun4v_intr_settarget:
1792 mov HV_FAST_INTR_SETTARGET, %o5 1805 mov HV_FAST_INTR_SETTARGET, %o5
1793 ta HV_FAST_TRAP 1806 ta HV_FAST_TRAP
1794 retl 1807 retl
1795 nop 1808 nop
1809 .size sun4v_intr_settarget, .-sun4v_intr_settarget
1796 1810
1797 /* %o0: type 1811 /* %o0: cpuid
1798 * %o1: queue paddr 1812 * %o1: pc
1799 * %o2: num queue entries 1813 * %o2: rtba
1814 * %o3: arg0
1800 * 1815 *
1801 * returns %o0: status 1816 * returns %o0: status
1802 */ 1817 */
1803 .globl sun4v_cpu_qconf 1818 .globl sun4v_cpu_start
1804sun4v_cpu_qconf: 1819 .type sun4v_cpu_start,#function
1805 mov HV_FAST_CPU_QCONF, %o5 1820sun4v_cpu_start:
1821 mov HV_FAST_CPU_START, %o5
1806 ta HV_FAST_TRAP 1822 ta HV_FAST_TRAP
1807 retl 1823 retl
1808 nop 1824 nop
1825 .size sun4v_cpu_start, .-sun4v_cpu_start
1809 1826
1810 /* returns %o0: status 1827 /* %o0: cpuid
1828 *
1829 * returns %o0: status
1811 */ 1830 */
1831 .globl sun4v_cpu_stop
1832 .type sun4v_cpu_stop,#function
1833sun4v_cpu_stop:
1834 mov HV_FAST_CPU_STOP, %o5
1835 ta HV_FAST_TRAP
1836 retl
1837 nop
1838 .size sun4v_cpu_stop, .-sun4v_cpu_stop
1839
1840 /* returns %o0: status */
1812 .globl sun4v_cpu_yield 1841 .globl sun4v_cpu_yield
1842 .type sun4v_cpu_yield, #function
1813sun4v_cpu_yield: 1843sun4v_cpu_yield:
1814 mov HV_FAST_CPU_YIELD, %o5 1844 mov HV_FAST_CPU_YIELD, %o5
1815 ta HV_FAST_TRAP 1845 ta HV_FAST_TRAP
1816 retl 1846 retl
1817 nop 1847 nop
1848 .size sun4v_cpu_yield, .-sun4v_cpu_yield
1849
1850 /* %o0: type
1851 * %o1: queue paddr
1852 * %o2: num queue entries
1853 *
1854 * returns %o0: status
1855 */
1856 .globl sun4v_cpu_qconf
1857 .type sun4v_cpu_qconf,#function
1858sun4v_cpu_qconf:
1859 mov HV_FAST_CPU_QCONF, %o5
1860 ta HV_FAST_TRAP
1861 retl
1862 nop
1863 .size sun4v_cpu_qconf, .-sun4v_cpu_qconf
1818 1864
1819 /* %o0: num cpus in cpu list 1865 /* %o0: num cpus in cpu list
1820 * %o1: cpu list paddr 1866 * %o1: cpu list paddr
@@ -1823,11 +1869,13 @@ sun4v_cpu_yield:
1823 * returns %o0: status 1869 * returns %o0: status
1824 */ 1870 */
1825 .globl sun4v_cpu_mondo_send 1871 .globl sun4v_cpu_mondo_send
1872 .type sun4v_cpu_mondo_send,#function
1826sun4v_cpu_mondo_send: 1873sun4v_cpu_mondo_send:
1827 mov HV_FAST_CPU_MONDO_SEND, %o5 1874 mov HV_FAST_CPU_MONDO_SEND, %o5
1828 ta HV_FAST_TRAP 1875 ta HV_FAST_TRAP
1829 retl 1876 retl
1830 nop 1877 nop
1878 .size sun4v_cpu_mondo_send, .-sun4v_cpu_mondo_send
1831 1879
1832 /* %o0: CPU ID 1880 /* %o0: CPU ID
1833 * 1881 *
@@ -1835,6 +1883,7 @@ sun4v_cpu_mondo_send:
1835 * %o0: cpu state as HV_CPU_STATE_* 1883 * %o0: cpu state as HV_CPU_STATE_*
1836 */ 1884 */
1837 .globl sun4v_cpu_state 1885 .globl sun4v_cpu_state
1886 .type sun4v_cpu_state,#function
1838sun4v_cpu_state: 1887sun4v_cpu_state:
1839 mov HV_FAST_CPU_STATE, %o5 1888 mov HV_FAST_CPU_STATE, %o5
1840 ta HV_FAST_TRAP 1889 ta HV_FAST_TRAP
@@ -1843,3 +1892,609 @@ sun4v_cpu_state:
1843 mov %o1, %o0 1892 mov %o1, %o0
18441: retl 18931: retl
1845 nop 1894 nop
1895 .size sun4v_cpu_state, .-sun4v_cpu_state
1896
1897 /* %o0: virtual address
1898 * %o1: must be zero
1899 * %o2: TTE
1900 * %o3: HV_MMU_* flags
1901 *
1902 * returns %o0: status
1903 */
1904 .globl sun4v_mmu_map_perm_addr
1905 .type sun4v_mmu_map_perm_addr,#function
1906sun4v_mmu_map_perm_addr:
1907 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5
1908 ta HV_FAST_TRAP
1909 retl
1910 nop
1911 .size sun4v_mmu_map_perm_addr, .-sun4v_mmu_map_perm_addr
1912
1913 /* %o0: number of TSB descriptions
1914 * %o1: TSB descriptions real address
1915 *
1916 * returns %o0: status
1917 */
1918 .globl sun4v_mmu_tsb_ctx0
1919 .type sun4v_mmu_tsb_ctx0,#function
1920sun4v_mmu_tsb_ctx0:
1921 mov HV_FAST_MMU_TSB_CTX0, %o5
1922 ta HV_FAST_TRAP
1923 retl
1924 nop
1925 .size sun4v_mmu_tsb_ctx0, .-sun4v_mmu_tsb_ctx0
1926
1927 /* %o0: API group number
1928 * %o1: pointer to unsigned long major number storage
1929 * %o2: pointer to unsigned long minor number storage
1930 *
1931 * returns %o0: status
1932 */
1933 .globl sun4v_get_version
1934 .type sun4v_get_version,#function
1935sun4v_get_version:
1936 mov HV_CORE_GET_VER, %o5
1937 mov %o1, %o3
1938 mov %o2, %o4
1939 ta HV_CORE_TRAP
1940 stx %o1, [%o3]
1941 retl
1942 stx %o2, [%o4]
1943 .size sun4v_get_version, .-sun4v_get_version
1944
1945 /* %o0: API group number
1946 * %o1: desired major number
1947 * %o2: desired minor number
1948 * %o3: pointer to unsigned long actual minor number storage
1949 *
1950 * returns %o0: status
1951 */
1952 .globl sun4v_set_version
1953 .type sun4v_set_version,#function
1954sun4v_set_version:
1955 mov HV_CORE_SET_VER, %o5
1956 mov %o3, %o4
1957 ta HV_CORE_TRAP
1958 retl
1959 stx %o1, [%o4]
1960 .size sun4v_set_version, .-sun4v_set_version
1961
1962 /* %o0: pointer to unsigned long time
1963 *
1964 * returns %o0: status
1965 */
1966 .globl sun4v_tod_get
1967 .type sun4v_tod_get,#function
1968sun4v_tod_get:
1969 mov %o0, %o4
1970 mov HV_FAST_TOD_GET, %o5
1971 ta HV_FAST_TRAP
1972 stx %o1, [%o4]
1973 retl
1974 nop
1975 .size sun4v_tod_get, .-sun4v_tod_get
1976
1977 /* %o0: time
1978 *
1979 * returns %o0: status
1980 */
1981 .globl sun4v_tod_set
1982 .type sun4v_tod_set,#function
1983sun4v_tod_set:
1984 mov HV_FAST_TOD_SET, %o5
1985 ta HV_FAST_TRAP
1986 retl
1987 nop
1988 .size sun4v_tod_set, .-sun4v_tod_set
1989
1990 /* %o0: pointer to unsigned long status
1991 *
1992 * returns %o0: signed character
1993 */
1994 .globl sun4v_con_getchar
1995 .type sun4v_con_getchar,#function
1996sun4v_con_getchar:
1997 mov %o0, %o4
1998 mov HV_FAST_CONS_GETCHAR, %o5
1999 clr %o0
2000 clr %o1
2001 ta HV_FAST_TRAP
2002 stx %o0, [%o4]
2003 retl
2004 sra %o1, 0, %o0
2005 .size sun4v_con_getchar, .-sun4v_con_getchar
2006
2007 /* %o0: signed long character
2008 *
2009 * returns %o0: status
2010 */
2011 .globl sun4v_con_putchar
2012 .type sun4v_con_putchar,#function
2013sun4v_con_putchar:
2014 mov HV_FAST_CONS_PUTCHAR, %o5
2015 ta HV_FAST_TRAP
2016 retl
2017 sra %o0, 0, %o0
2018 .size sun4v_con_putchar, .-sun4v_con_putchar
2019
2020 /* %o0: buffer real address
2021 * %o1: buffer size
2022 * %o2: pointer to unsigned long bytes_read
2023 *
2024 * returns %o0: status
2025 */
2026 .globl sun4v_con_read
2027 .type sun4v_con_read,#function
2028sun4v_con_read:
2029 mov %o2, %o4
2030 mov HV_FAST_CONS_READ, %o5
2031 ta HV_FAST_TRAP
2032 brnz %o0, 1f
2033 cmp %o1, -1 /* break */
2034 be,a,pn %icc, 1f
2035 mov %o1, %o0
2036 cmp %o1, -2 /* hup */
2037 be,a,pn %icc, 1f
2038 mov %o1, %o0
2039 stx %o1, [%o4]
20401: retl
2041 nop
2042 .size sun4v_con_read, .-sun4v_con_read
2043
2044 /* %o0: buffer real address
2045 * %o1: buffer size
2046 * %o2: pointer to unsigned long bytes_written
2047 *
2048 * returns %o0: status
2049 */
2050 .globl sun4v_con_write
2051 .type sun4v_con_write,#function
2052sun4v_con_write:
2053 mov %o2, %o4
2054 mov HV_FAST_CONS_WRITE, %o5
2055 ta HV_FAST_TRAP
2056 stx %o1, [%o4]
2057 retl
2058 nop
2059 .size sun4v_con_write, .-sun4v_con_write
2060
2061 /* %o0: soft state
2062 * %o1: address of description string
2063 *
2064 * returns %o0: status
2065 */
2066 .globl sun4v_mach_set_soft_state
2067 .type sun4v_mach_set_soft_state,#function
2068sun4v_mach_set_soft_state:
2069 mov HV_FAST_MACH_SET_SOFT_STATE, %o5
2070 ta HV_FAST_TRAP
2071 retl
2072 nop
2073 .size sun4v_mach_set_soft_state, .-sun4v_mach_set_soft_state
2074
2075 /* %o0: exit code
2076 *
2077 * Does not return.
2078 */
2079 .globl sun4v_mach_exit
2080 .type sun4v_mach_exit,#function
2081sun4v_mach_exit:
2082 mov HV_FAST_MACH_EXIT, %o5
2083 ta HV_FAST_TRAP
2084 retl
2085 nop
2086 .size sun4v_mach_exit, .-sun4v_mach_exit
2087
2088 /* %o0: buffer real address
2089 * %o1: buffer length
2090 * %o2: pointer to unsigned long real_buf_len
2091 *
2092 * returns %o0: status
2093 */
2094 .globl sun4v_mach_desc
2095 .type sun4v_mach_desc,#function
2096sun4v_mach_desc:
2097 mov %o2, %o4
2098 mov HV_FAST_MACH_DESC, %o5
2099 ta HV_FAST_TRAP
2100 stx %o1, [%o4]
2101 retl
2102 nop
2103 .size sun4v_mach_desc, .-sun4v_mach_desc
2104
2105 /* %o0: new timeout in milliseconds
2106 * %o1: pointer to unsigned long orig_timeout
2107 *
2108 * returns %o0: status
2109 */
2110 .globl sun4v_mach_set_watchdog
2111 .type sun4v_mach_set_watchdog,#function
2112sun4v_mach_set_watchdog:
2113 mov %o1, %o4
2114 mov HV_FAST_MACH_SET_WATCHDOG, %o5
2115 ta HV_FAST_TRAP
2116 stx %o1, [%o4]
2117 retl
2118 nop
2119 .size sun4v_mach_set_watchdog, .-sun4v_mach_set_watchdog
2120
2121 /* No inputs and does not return. */
2122 .globl sun4v_mach_sir
2123 .type sun4v_mach_sir,#function
2124sun4v_mach_sir:
2125 mov %o1, %o4
2126 mov HV_FAST_MACH_SIR, %o5
2127 ta HV_FAST_TRAP
2128 stx %o1, [%o4]
2129 retl
2130 nop
2131 .size sun4v_mach_sir, .-sun4v_mach_sir
2132
2133 /* %o0: channel
2134 * %o1: ra
2135 * %o2: num_entries
2136 *
2137 * returns %o0: status
2138 */
2139 .globl sun4v_ldc_tx_qconf
2140 .type sun4v_ldc_tx_qconf,#function
2141sun4v_ldc_tx_qconf:
2142 mov HV_FAST_LDC_TX_QCONF, %o5
2143 ta HV_FAST_TRAP
2144 retl
2145 nop
2146 .size sun4v_ldc_tx_qconf, .-sun4v_ldc_tx_qconf
2147
2148 /* %o0: channel
2149 * %o1: pointer to unsigned long ra
2150 * %o2: pointer to unsigned long num_entries
2151 *
2152 * returns %o0: status
2153 */
2154 .globl sun4v_ldc_tx_qinfo
2155 .type sun4v_ldc_tx_qinfo,#function
2156sun4v_ldc_tx_qinfo:
2157 mov %o1, %g1
2158 mov %o2, %g2
2159 mov HV_FAST_LDC_TX_QINFO, %o5
2160 ta HV_FAST_TRAP
2161 stx %o1, [%g1]
2162 stx %o2, [%g2]
2163 retl
2164 nop
2165 .size sun4v_ldc_tx_qinfo, .-sun4v_ldc_tx_qinfo
2166
2167 /* %o0: channel
2168 * %o1: pointer to unsigned long head_off
2169 * %o2: pointer to unsigned long tail_off
2170 * %o2: pointer to unsigned long chan_state
2171 *
2172 * returns %o0: status
2173 */
2174 .globl sun4v_ldc_tx_get_state
2175 .type sun4v_ldc_tx_get_state,#function
2176sun4v_ldc_tx_get_state:
2177 mov %o1, %g1
2178 mov %o2, %g2
2179 mov %o3, %g3
2180 mov HV_FAST_LDC_TX_GET_STATE, %o5
2181 ta HV_FAST_TRAP
2182 stx %o1, [%g1]
2183 stx %o2, [%g2]
2184 stx %o3, [%g3]
2185 retl
2186 nop
2187 .size sun4v_ldc_tx_get_state, .-sun4v_ldc_tx_get_state
2188
2189 /* %o0: channel
2190 * %o1: tail_off
2191 *
2192 * returns %o0: status
2193 */
2194 .globl sun4v_ldc_tx_set_qtail
2195 .type sun4v_ldc_tx_set_qtail,#function
2196sun4v_ldc_tx_set_qtail:
2197 mov HV_FAST_LDC_TX_SET_QTAIL, %o5
2198 ta HV_FAST_TRAP
2199 retl
2200 nop
2201 .size sun4v_ldc_tx_set_qtail, .-sun4v_ldc_tx_set_qtail
2202
2203 /* %o0: channel
2204 * %o1: ra
2205 * %o2: num_entries
2206 *
2207 * returns %o0: status
2208 */
2209 .globl sun4v_ldc_rx_qconf
2210 .type sun4v_ldc_rx_qconf,#function
2211sun4v_ldc_rx_qconf:
2212 mov HV_FAST_LDC_RX_QCONF, %o5
2213 ta HV_FAST_TRAP
2214 retl
2215 nop
2216 .size sun4v_ldc_rx_qconf, .-sun4v_ldc_rx_qconf
2217
2218 /* %o0: channel
2219 * %o1: pointer to unsigned long ra
2220 * %o2: pointer to unsigned long num_entries
2221 *
2222 * returns %o0: status
2223 */
2224 .globl sun4v_ldc_rx_qinfo
2225 .type sun4v_ldc_rx_qinfo,#function
2226sun4v_ldc_rx_qinfo:
2227 mov %o1, %g1
2228 mov %o2, %g2
2229 mov HV_FAST_LDC_RX_QINFO, %o5
2230 ta HV_FAST_TRAP
2231 stx %o1, [%g1]
2232 stx %o2, [%g2]
2233 retl
2234 nop
2235 .size sun4v_ldc_rx_qinfo, .-sun4v_ldc_rx_qinfo
2236
2237 /* %o0: channel
2238 * %o1: pointer to unsigned long head_off
2239 * %o2: pointer to unsigned long tail_off
2240 * %o2: pointer to unsigned long chan_state
2241 *
2242 * returns %o0: status
2243 */
2244 .globl sun4v_ldc_rx_get_state
2245 .type sun4v_ldc_rx_get_state,#function
2246sun4v_ldc_rx_get_state:
2247 mov %o1, %g1
2248 mov %o2, %g2
2249 mov %o3, %g3
2250 mov HV_FAST_LDC_RX_GET_STATE, %o5
2251 ta HV_FAST_TRAP
2252 stx %o1, [%g1]
2253 stx %o2, [%g2]
2254 stx %o3, [%g3]
2255 retl
2256 nop
2257 .size sun4v_ldc_rx_get_state, .-sun4v_ldc_rx_get_state
2258
2259 /* %o0: channel
2260 * %o1: head_off
2261 *
2262 * returns %o0: status
2263 */
2264 .globl sun4v_ldc_rx_set_qhead
2265 .type sun4v_ldc_rx_set_qhead,#function
2266sun4v_ldc_rx_set_qhead:
2267 mov HV_FAST_LDC_RX_SET_QHEAD, %o5
2268 ta HV_FAST_TRAP
2269 retl
2270 nop
2271 .size sun4v_ldc_rx_set_qhead, .-sun4v_ldc_rx_set_qhead
2272
2273 /* %o0: channel
2274 * %o1: ra
2275 * %o2: num_entries
2276 *
2277 * returns %o0: status
2278 */
2279 .globl sun4v_ldc_set_map_table
2280 .type sun4v_ldc_set_map_table,#function
2281sun4v_ldc_set_map_table:
2282 mov HV_FAST_LDC_SET_MAP_TABLE, %o5
2283 ta HV_FAST_TRAP
2284 retl
2285 nop
2286 .size sun4v_ldc_set_map_table, .-sun4v_ldc_set_map_table
2287
2288 /* %o0: channel
2289 * %o1: pointer to unsigned long ra
2290 * %o2: pointer to unsigned long num_entries
2291 *
2292 * returns %o0: status
2293 */
2294 .globl sun4v_ldc_get_map_table
2295 .type sun4v_ldc_get_map_table,#function
2296sun4v_ldc_get_map_table:
2297 mov %o1, %g1
2298 mov %o2, %g2
2299 mov HV_FAST_LDC_GET_MAP_TABLE, %o5
2300 ta HV_FAST_TRAP
2301 stx %o1, [%g1]
2302 stx %o2, [%g2]
2303 retl
2304 nop
2305 .size sun4v_ldc_get_map_table, .-sun4v_ldc_get_map_table
2306
2307 /* %o0: channel
2308 * %o1: dir_code
2309 * %o2: tgt_raddr
2310 * %o3: lcl_raddr
2311 * %o4: len
2312 * %o5: pointer to unsigned long actual_len
2313 *
2314 * returns %o0: status
2315 */
2316 .globl sun4v_ldc_copy
2317 .type sun4v_ldc_copy,#function
2318sun4v_ldc_copy:
2319 mov %o5, %g1
2320 mov HV_FAST_LDC_COPY, %o5
2321 ta HV_FAST_TRAP
2322 stx %o1, [%g1]
2323 retl
2324 nop
2325 .size sun4v_ldc_copy, .-sun4v_ldc_copy
2326
2327 /* %o0: channel
2328 * %o1: cookie
2329 * %o2: pointer to unsigned long ra
2330 * %o3: pointer to unsigned long perm
2331 *
2332 * returns %o0: status
2333 */
2334 .globl sun4v_ldc_mapin
2335 .type sun4v_ldc_mapin,#function
2336sun4v_ldc_mapin:
2337 mov %o2, %g1
2338 mov %o3, %g2
2339 mov HV_FAST_LDC_MAPIN, %o5
2340 ta HV_FAST_TRAP
2341 stx %o1, [%g1]
2342 stx %o2, [%g2]
2343 retl
2344 nop
2345 .size sun4v_ldc_mapin, .-sun4v_ldc_mapin
2346
2347 /* %o0: ra
2348 *
2349 * returns %o0: status
2350 */
2351 .globl sun4v_ldc_unmap
2352 .type sun4v_ldc_unmap,#function
2353sun4v_ldc_unmap:
2354 mov HV_FAST_LDC_UNMAP, %o5
2355 ta HV_FAST_TRAP
2356 retl
2357 nop
2358 .size sun4v_ldc_unmap, .-sun4v_ldc_unmap
2359
2360 /* %o0: cookie
2361 * %o1: mte_cookie
2362 *
2363 * returns %o0: status
2364 */
2365 .globl sun4v_ldc_revoke
2366 .type sun4v_ldc_revoke,#function
2367sun4v_ldc_revoke:
2368 mov HV_FAST_LDC_REVOKE, %o5
2369 ta HV_FAST_TRAP
2370 retl
2371 nop
2372 .size sun4v_ldc_revoke, .-sun4v_ldc_revoke
2373
2374 /* %o0: device handle
2375 * %o1: device INO
2376 * %o2: pointer to unsigned long cookie
2377 *
2378 * returns %o0: status
2379 */
2380 .globl sun4v_vintr_get_cookie
2381 .type sun4v_vintr_get_cookie,#function
2382sun4v_vintr_get_cookie:
2383 mov %o2, %g1
2384 mov HV_FAST_VINTR_GET_COOKIE, %o5
2385 ta HV_FAST_TRAP
2386 stx %o1, [%g1]
2387 retl
2388 nop
2389 .size sun4v_vintr_get_cookie, .-sun4v_vintr_get_cookie
2390
2391 /* %o0: device handle
2392 * %o1: device INO
2393 * %o2: cookie
2394 *
2395 * returns %o0: status
2396 */
2397 .globl sun4v_vintr_set_cookie
2398 .type sun4v_vintr_set_cookie,#function
2399sun4v_vintr_set_cookie:
2400 mov HV_FAST_VINTR_SET_COOKIE, %o5
2401 ta HV_FAST_TRAP
2402 retl
2403 nop
2404 .size sun4v_vintr_set_cookie, .-sun4v_vintr_set_cookie
2405
2406 /* %o0: device handle
2407 * %o1: device INO
2408 * %o2: pointer to unsigned long valid_state
2409 *
2410 * returns %o0: status
2411 */
2412 .globl sun4v_vintr_get_valid
2413 .type sun4v_vintr_get_valid,#function
2414sun4v_vintr_get_valid:
2415 mov %o2, %g1
2416 mov HV_FAST_VINTR_GET_VALID, %o5
2417 ta HV_FAST_TRAP
2418 stx %o1, [%g1]
2419 retl
2420 nop
2421 .size sun4v_vintr_get_valid, .-sun4v_vintr_get_valid
2422
2423 /* %o0: device handle
2424 * %o1: device INO
2425 * %o2: valid_state
2426 *
2427 * returns %o0: status
2428 */
2429 .globl sun4v_vintr_set_valid
2430 .type sun4v_vintr_set_valid,#function
2431sun4v_vintr_set_valid:
2432 mov HV_FAST_VINTR_SET_VALID, %o5
2433 ta HV_FAST_TRAP
2434 retl
2435 nop
2436 .size sun4v_vintr_set_valid, .-sun4v_vintr_set_valid
2437
2438 /* %o0: device handle
2439 * %o1: device INO
2440 * %o2: pointer to unsigned long state
2441 *
2442 * returns %o0: status
2443 */
2444 .globl sun4v_vintr_get_state
2445 .type sun4v_vintr_get_state,#function
2446sun4v_vintr_get_state:
2447 mov %o2, %g1
2448 mov HV_FAST_VINTR_GET_STATE, %o5
2449 ta HV_FAST_TRAP
2450 stx %o1, [%g1]
2451 retl
2452 nop
2453 .size sun4v_vintr_get_state, .-sun4v_vintr_get_state
2454
2455 /* %o0: device handle
2456 * %o1: device INO
2457 * %o2: state
2458 *
2459 * returns %o0: status
2460 */
2461 .globl sun4v_vintr_set_state
2462 .type sun4v_vintr_set_state,#function
2463sun4v_vintr_set_state:
2464 mov HV_FAST_VINTR_SET_STATE, %o5
2465 ta HV_FAST_TRAP
2466 retl
2467 nop
2468 .size sun4v_vintr_set_state, .-sun4v_vintr_set_state
2469
2470 /* %o0: device handle
2471 * %o1: device INO
2472 * %o2: pointer to unsigned long cpuid
2473 *
2474 * returns %o0: status
2475 */
2476 .globl sun4v_vintr_get_target
2477 .type sun4v_vintr_get_target,#function
2478sun4v_vintr_get_target:
2479 mov %o2, %g1
2480 mov HV_FAST_VINTR_GET_TARGET, %o5
2481 ta HV_FAST_TRAP
2482 stx %o1, [%g1]
2483 retl
2484 nop
2485 .size sun4v_vintr_get_target, .-sun4v_vintr_get_target
2486
2487 /* %o0: device handle
2488 * %o1: device INO
2489 * %o2: cpuid
2490 *
2491 * returns %o0: status
2492 */
2493 .globl sun4v_vintr_set_target
2494 .type sun4v_vintr_set_target,#function
2495sun4v_vintr_set_target:
2496 mov HV_FAST_VINTR_SET_TARGET, %o5
2497 ta HV_FAST_TRAP
2498 retl
2499 nop
2500 .size sun4v_vintr_set_target, .-sun4v_vintr_set_target
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S
index baea10a98196..77259526cb15 100644
--- a/arch/sparc64/kernel/head.S
+++ b/arch/sparc64/kernel/head.S
@@ -523,7 +523,7 @@ tlb_fixup_done:
523#else 523#else
524 mov 0, %o0 524 mov 0, %o0
525#endif 525#endif
526 stb %o0, [%g6 + TI_CPU] 526 sth %o0, [%g6 + TI_CPU]
527 527
528 /* Off we go.... */ 528 /* Off we go.... */
529 call start_kernel 529 call start_kernel
@@ -653,33 +653,54 @@ setup_tba:
653 restore 653 restore
654sparc64_boot_end: 654sparc64_boot_end:
655 655
656#include "ktlb.S"
657#include "tsb.S"
658#include "etrap.S" 656#include "etrap.S"
659#include "rtrap.S" 657#include "rtrap.S"
660#include "winfixup.S" 658#include "winfixup.S"
661#include "entry.S" 659#include "entry.S"
662#include "sun4v_tlb_miss.S" 660#include "sun4v_tlb_miss.S"
663#include "sun4v_ivec.S" 661#include "sun4v_ivec.S"
662#include "ktlb.S"
663#include "tsb.S"
664 664
665/* 665/*
666 * The following skip makes sure the trap table in ttable.S is aligned 666 * The following skip makes sure the trap table in ttable.S is aligned
667 * on a 32K boundary as required by the v9 specs for TBA register. 667 * on a 32K boundary as required by the v9 specs for TBA register.
668 * 668 *
669 * We align to a 32K boundary, then we have the 32K kernel TSB, 669 * We align to a 32K boundary, then we have the 32K kernel TSB,
670 * then the 32K aligned trap table. 670 * the 64K kernel 4MB TSB, and then the 32K aligned trap table.
671 */ 671 */
6721: 6721:
673 .skip 0x4000 + _start - 1b 673 .skip 0x4000 + _start - 1b
674 674
675! 0x0000000000408000
676
675 .globl swapper_tsb 677 .globl swapper_tsb
676swapper_tsb: 678swapper_tsb:
677 .skip (32 * 1024) 679 .skip (32 * 1024)
678 680
679! 0x0000000000408000 681 .globl swapper_4m_tsb
682swapper_4m_tsb:
683 .skip (64 * 1024)
684
685! 0x0000000000420000
680 686
687 /* Some care needs to be exercised if you try to move the
688 * location of the trap table relative to other things. For
689 * one thing there are br* instructions in some of the
690 * trap table entires which branch back to code in ktlb.S
691 * Those instructions can only handle a signed 16-bit
692 * displacement.
693 *
694 * There is a binutils bug (bugzilla #4558) which causes
695 * the relocation overflow checks for such instructions to
696 * not be done correctly. So bintuils will not notice the
697 * error and will instead write junk into the relocation and
698 * you'll have an unbootable kernel.
699 */
681#include "ttable.S" 700#include "ttable.S"
682 701
702! 0x0000000000428000
703
683#include "systbls.S" 704#include "systbls.S"
684 705
685 .data 706 .data
diff --git a/arch/sparc64/kernel/hvapi.c b/arch/sparc64/kernel/hvapi.c
new file mode 100644
index 000000000000..f34f5d6181ef
--- /dev/null
+++ b/arch/sparc64/kernel/hvapi.c
@@ -0,0 +1,192 @@
1/* hvapi.c: Hypervisor API management.
2 *
3 * Copyright (C) 2007 David S. Miller <davem@davemloft.net>
4 */
5#include <linux/kernel.h>
6#include <linux/module.h>
7#include <linux/init.h>
8#include <linux/slab.h>
9
10#include <asm/hypervisor.h>
11#include <asm/oplib.h>
12#include <asm/sstate.h>
13
14/* If the hypervisor indicates that the API setting
15 * calls are unsupported, by returning HV_EBADTRAP or
16 * HV_ENOTSUPPORTED, we assume that API groups with the
17 * PRE_API flag set are major 1 minor 0.
18 */
19struct api_info {
20 unsigned long group;
21 unsigned long major;
22 unsigned long minor;
23 unsigned int refcnt;
24 unsigned int flags;
25#define FLAG_PRE_API 0x00000001
26};
27
28static struct api_info api_table[] = {
29 { .group = HV_GRP_SUN4V, .flags = FLAG_PRE_API },
30 { .group = HV_GRP_CORE, .flags = FLAG_PRE_API },
31 { .group = HV_GRP_INTR, },
32 { .group = HV_GRP_SOFT_STATE, },
33 { .group = HV_GRP_PCI, .flags = FLAG_PRE_API },
34 { .group = HV_GRP_LDOM, },
35 { .group = HV_GRP_SVC_CHAN, .flags = FLAG_PRE_API },
36 { .group = HV_GRP_NCS, .flags = FLAG_PRE_API },
37 { .group = HV_GRP_NIAG_PERF, .flags = FLAG_PRE_API },
38 { .group = HV_GRP_FIRE_PERF, },
39 { .group = HV_GRP_DIAG, .flags = FLAG_PRE_API },
40};
41
42static DEFINE_SPINLOCK(hvapi_lock);
43
44static struct api_info *__get_info(unsigned long group)
45{
46 int i;
47
48 for (i = 0; i < ARRAY_SIZE(api_table); i++) {
49 if (api_table[i].group == group)
50 return &api_table[i];
51 }
52 return NULL;
53}
54
55static void __get_ref(struct api_info *p)
56{
57 p->refcnt++;
58}
59
60static void __put_ref(struct api_info *p)
61{
62 if (--p->refcnt == 0) {
63 unsigned long ignore;
64
65 sun4v_set_version(p->group, 0, 0, &ignore);
66 p->major = p->minor = 0;
67 }
68}
69
70/* Register a hypervisor API specification. It indicates the
71 * API group and desired major+minor.
72 *
73 * If an existing API registration exists '0' (success) will
74 * be returned if it is compatible with the one being registered.
75 * Otherwise a negative error code will be returned.
76 *
77 * Otherwise an attempt will be made to negotiate the requested
78 * API group/major/minor with the hypervisor, and errors returned
79 * if that does not succeed.
80 */
81int sun4v_hvapi_register(unsigned long group, unsigned long major,
82 unsigned long *minor)
83{
84 struct api_info *p;
85 unsigned long flags;
86 int ret;
87
88 spin_lock_irqsave(&hvapi_lock, flags);
89 p = __get_info(group);
90 ret = -EINVAL;
91 if (p) {
92 if (p->refcnt) {
93 ret = -EINVAL;
94 if (p->major == major) {
95 *minor = p->minor;
96 ret = 0;
97 }
98 } else {
99 unsigned long actual_minor;
100 unsigned long hv_ret;
101
102 hv_ret = sun4v_set_version(group, major, *minor,
103 &actual_minor);
104 ret = -EINVAL;
105 if (hv_ret == HV_EOK) {
106 *minor = actual_minor;
107 p->major = major;
108 p->minor = actual_minor;
109 ret = 0;
110 } else if (hv_ret == HV_EBADTRAP ||
111 hv_ret == HV_ENOTSUPPORTED) {
112 if (p->flags & FLAG_PRE_API) {
113 if (major == 1) {
114 p->major = 1;
115 p->minor = 0;
116 *minor = 0;
117 ret = 0;
118 }
119 }
120 }
121 }
122
123 if (ret == 0)
124 __get_ref(p);
125 }
126 spin_unlock_irqrestore(&hvapi_lock, flags);
127
128 return ret;
129}
130EXPORT_SYMBOL(sun4v_hvapi_register);
131
132void sun4v_hvapi_unregister(unsigned long group)
133{
134 struct api_info *p;
135 unsigned long flags;
136
137 spin_lock_irqsave(&hvapi_lock, flags);
138 p = __get_info(group);
139 if (p)
140 __put_ref(p);
141 spin_unlock_irqrestore(&hvapi_lock, flags);
142}
143EXPORT_SYMBOL(sun4v_hvapi_unregister);
144
145int sun4v_hvapi_get(unsigned long group,
146 unsigned long *major,
147 unsigned long *minor)
148{
149 struct api_info *p;
150 unsigned long flags;
151 int ret;
152
153 spin_lock_irqsave(&hvapi_lock, flags);
154 ret = -EINVAL;
155 p = __get_info(group);
156 if (p && p->refcnt) {
157 *major = p->major;
158 *minor = p->minor;
159 ret = 0;
160 }
161 spin_unlock_irqrestore(&hvapi_lock, flags);
162
163 return ret;
164}
165EXPORT_SYMBOL(sun4v_hvapi_get);
166
167void __init sun4v_hvapi_init(void)
168{
169 unsigned long group, major, minor;
170
171 group = HV_GRP_SUN4V;
172 major = 1;
173 minor = 0;
174 if (sun4v_hvapi_register(group, major, &minor))
175 goto bad;
176
177 group = HV_GRP_CORE;
178 major = 1;
179 minor = 1;
180 if (sun4v_hvapi_register(group, major, &minor))
181 goto bad;
182
183 sun4v_sstate_init();
184
185 return;
186
187bad:
188 prom_printf("HVAPI: Cannot register API group "
189 "%lx with major(%u) minor(%u)\n",
190 group, major, minor);
191 prom_halt();
192}
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index 3edc18e1b818..a36f8dd0c021 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -171,8 +171,6 @@ skip:
171 return 0; 171 return 0;
172} 172}
173 173
174extern unsigned long real_hard_smp_processor_id(void);
175
176static unsigned int sun4u_compute_tid(unsigned long imap, unsigned long cpuid) 174static unsigned int sun4u_compute_tid(unsigned long imap, unsigned long cpuid)
177{ 175{
178 unsigned int tid; 176 unsigned int tid;
@@ -694,9 +692,20 @@ void init_irqwork_curcpu(void)
694 trap_block[cpu].irq_worklist = 0; 692 trap_block[cpu].irq_worklist = 0;
695} 693}
696 694
697static void __cpuinit register_one_mondo(unsigned long paddr, unsigned long type) 695/* Please be very careful with register_one_mondo() and
696 * sun4v_register_mondo_queues().
697 *
698 * On SMP this gets invoked from the CPU trampoline before
699 * the cpu has fully taken over the trap table from OBP,
700 * and it's kernel stack + %g6 thread register state is
701 * not fully cooked yet.
702 *
703 * Therefore you cannot make any OBP calls, not even prom_printf,
704 * from these two routines.
705 */
706static void __cpuinit register_one_mondo(unsigned long paddr, unsigned long type, unsigned long qmask)
698{ 707{
699 unsigned long num_entries = 128; 708 unsigned long num_entries = (qmask + 1) / 64;
700 unsigned long status; 709 unsigned long status;
701 710
702 status = sun4v_cpu_qconf(type, paddr, num_entries); 711 status = sun4v_cpu_qconf(type, paddr, num_entries);
@@ -711,44 +720,58 @@ static void __cpuinit sun4v_register_mondo_queues(int this_cpu)
711{ 720{
712 struct trap_per_cpu *tb = &trap_block[this_cpu]; 721 struct trap_per_cpu *tb = &trap_block[this_cpu];
713 722
714 register_one_mondo(tb->cpu_mondo_pa, HV_CPU_QUEUE_CPU_MONDO); 723 register_one_mondo(tb->cpu_mondo_pa, HV_CPU_QUEUE_CPU_MONDO,
715 register_one_mondo(tb->dev_mondo_pa, HV_CPU_QUEUE_DEVICE_MONDO); 724 tb->cpu_mondo_qmask);
716 register_one_mondo(tb->resum_mondo_pa, HV_CPU_QUEUE_RES_ERROR); 725 register_one_mondo(tb->dev_mondo_pa, HV_CPU_QUEUE_DEVICE_MONDO,
717 register_one_mondo(tb->nonresum_mondo_pa, HV_CPU_QUEUE_NONRES_ERROR); 726 tb->dev_mondo_qmask);
727 register_one_mondo(tb->resum_mondo_pa, HV_CPU_QUEUE_RES_ERROR,
728 tb->resum_qmask);
729 register_one_mondo(tb->nonresum_mondo_pa, HV_CPU_QUEUE_NONRES_ERROR,
730 tb->nonresum_qmask);
718} 731}
719 732
720static void __cpuinit alloc_one_mondo(unsigned long *pa_ptr, int use_bootmem) 733static void __cpuinit alloc_one_mondo(unsigned long *pa_ptr, unsigned long qmask, int use_bootmem)
721{ 734{
722 void *page; 735 unsigned long size = PAGE_ALIGN(qmask + 1);
736 unsigned long order = get_order(size);
737 void *p = NULL;
723 738
724 if (use_bootmem) 739 if (use_bootmem) {
725 page = alloc_bootmem_low_pages(PAGE_SIZE); 740 p = __alloc_bootmem_low(size, size, 0);
726 else 741 } else {
727 page = (void *) get_zeroed_page(GFP_ATOMIC); 742 struct page *page = alloc_pages(GFP_ATOMIC | __GFP_ZERO, order);
743 if (page)
744 p = page_address(page);
745 }
728 746
729 if (!page) { 747 if (!p) {
730 prom_printf("SUN4V: Error, cannot allocate mondo queue.\n"); 748 prom_printf("SUN4V: Error, cannot allocate mondo queue.\n");
731 prom_halt(); 749 prom_halt();
732 } 750 }
733 751
734 *pa_ptr = __pa(page); 752 *pa_ptr = __pa(p);
735} 753}
736 754
737static void __cpuinit alloc_one_kbuf(unsigned long *pa_ptr, int use_bootmem) 755static void __cpuinit alloc_one_kbuf(unsigned long *pa_ptr, unsigned long qmask, int use_bootmem)
738{ 756{
739 void *page; 757 unsigned long size = PAGE_ALIGN(qmask + 1);
758 unsigned long order = get_order(size);
759 void *p = NULL;
740 760
741 if (use_bootmem) 761 if (use_bootmem) {
742 page = alloc_bootmem_low_pages(PAGE_SIZE); 762 p = __alloc_bootmem_low(size, size, 0);
743 else 763 } else {
744 page = (void *) get_zeroed_page(GFP_ATOMIC); 764 struct page *page = alloc_pages(GFP_ATOMIC | __GFP_ZERO, order);
765 if (page)
766 p = page_address(page);
767 }
745 768
746 if (!page) { 769 if (!p) {
747 prom_printf("SUN4V: Error, cannot allocate kbuf page.\n"); 770 prom_printf("SUN4V: Error, cannot allocate kbuf page.\n");
748 prom_halt(); 771 prom_halt();
749 } 772 }
750 773
751 *pa_ptr = __pa(page); 774 *pa_ptr = __pa(p);
752} 775}
753 776
754static void __cpuinit init_cpu_send_mondo_info(struct trap_per_cpu *tb, int use_bootmem) 777static void __cpuinit init_cpu_send_mondo_info(struct trap_per_cpu *tb, int use_bootmem)
@@ -779,12 +802,12 @@ void __cpuinit sun4v_init_mondo_queues(int use_bootmem, int cpu, int alloc, int
779 struct trap_per_cpu *tb = &trap_block[cpu]; 802 struct trap_per_cpu *tb = &trap_block[cpu];
780 803
781 if (alloc) { 804 if (alloc) {
782 alloc_one_mondo(&tb->cpu_mondo_pa, use_bootmem); 805 alloc_one_mondo(&tb->cpu_mondo_pa, tb->cpu_mondo_qmask, use_bootmem);
783 alloc_one_mondo(&tb->dev_mondo_pa, use_bootmem); 806 alloc_one_mondo(&tb->dev_mondo_pa, tb->dev_mondo_qmask, use_bootmem);
784 alloc_one_mondo(&tb->resum_mondo_pa, use_bootmem); 807 alloc_one_mondo(&tb->resum_mondo_pa, tb->resum_qmask, use_bootmem);
785 alloc_one_kbuf(&tb->resum_kernel_buf_pa, use_bootmem); 808 alloc_one_kbuf(&tb->resum_kernel_buf_pa, tb->resum_qmask, use_bootmem);
786 alloc_one_mondo(&tb->nonresum_mondo_pa, use_bootmem); 809 alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask, use_bootmem);
787 alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, use_bootmem); 810 alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, tb->nonresum_qmask, use_bootmem);
788 811
789 init_cpu_send_mondo_info(tb, use_bootmem); 812 init_cpu_send_mondo_info(tb, use_bootmem);
790 } 813 }
diff --git a/arch/sparc64/kernel/itlb_miss.S b/arch/sparc64/kernel/itlb_miss.S
index ad46e2024f4b..5a8377b54955 100644
--- a/arch/sparc64/kernel/itlb_miss.S
+++ b/arch/sparc64/kernel/itlb_miss.S
@@ -11,12 +11,12 @@
11/* ITLB ** ICACHE line 2: TSB compare and TLB load */ 11/* ITLB ** ICACHE line 2: TSB compare and TLB load */
12 bne,pn %xcc, tsb_miss_itlb ! Miss 12 bne,pn %xcc, tsb_miss_itlb ! Miss
13 mov FAULT_CODE_ITLB, %g3 13 mov FAULT_CODE_ITLB, %g3
14 andcc %g5, _PAGE_EXEC_4U, %g0 ! Executable? 14 sethi %hi(_PAGE_EXEC_4U), %g4
15 andcc %g5, %g4, %g0 ! Executable?
15 be,pn %xcc, tsb_do_fault 16 be,pn %xcc, tsb_do_fault
16 nop ! Delay slot, fill me 17 nop ! Delay slot, fill me
17 stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load TLB 18 stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load TLB
18 retry ! Trap done 19 retry ! Trap done
19 nop
20 20
21/* ITLB ** ICACHE line 3: */ 21/* ITLB ** ICACHE line 3: */
22 nop 22 nop
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c
new file mode 100644
index 000000000000..9246c2cf9574
--- /dev/null
+++ b/arch/sparc64/kernel/mdesc.c
@@ -0,0 +1,619 @@
1/* mdesc.c: Sun4V machine description handling.
2 *
3 * Copyright (C) 2007 David S. Miller <davem@davemloft.net>
4 */
5#include <linux/kernel.h>
6#include <linux/types.h>
7#include <linux/bootmem.h>
8#include <linux/log2.h>
9
10#include <asm/hypervisor.h>
11#include <asm/mdesc.h>
12#include <asm/prom.h>
13#include <asm/oplib.h>
14#include <asm/smp.h>
15
16/* Unlike the OBP device tree, the machine description is a full-on
17 * DAG. An arbitrary number of ARCs are possible from one
18 * node to other nodes and thus we can't use the OBP device_node
19 * data structure to represent these nodes inside of the kernel.
20 *
21 * Actually, it isn't even a DAG, because there are back pointers
22 * which create cycles in the graph.
23 *
24 * mdesc_hdr and mdesc_elem describe the layout of the data structure
25 * we get from the Hypervisor.
26 */
27struct mdesc_hdr {
28 u32 version; /* Transport version */
29 u32 node_sz; /* node block size */
30 u32 name_sz; /* name block size */
31 u32 data_sz; /* data block size */
32};
33
34struct mdesc_elem {
35 u8 tag;
36#define MD_LIST_END 0x00
37#define MD_NODE 0x4e
38#define MD_NODE_END 0x45
39#define MD_NOOP 0x20
40#define MD_PROP_ARC 0x61
41#define MD_PROP_VAL 0x76
42#define MD_PROP_STR 0x73
43#define MD_PROP_DATA 0x64
44 u8 name_len;
45 u16 resv;
46 u32 name_offset;
47 union {
48 struct {
49 u32 data_len;
50 u32 data_offset;
51 } data;
52 u64 val;
53 } d;
54};
55
56static struct mdesc_hdr *main_mdesc;
57static struct mdesc_node *allnodes;
58
59static struct mdesc_node *allnodes_tail;
60static unsigned int unique_id;
61
62static struct mdesc_node **mdesc_hash;
63static unsigned int mdesc_hash_size;
64
65static inline unsigned int node_hashfn(u64 node)
66{
67 return ((unsigned int) (node ^ (node >> 8) ^ (node >> 16)))
68 & (mdesc_hash_size - 1);
69}
70
71static inline void hash_node(struct mdesc_node *mp)
72{
73 struct mdesc_node **head = &mdesc_hash[node_hashfn(mp->node)];
74
75 mp->hash_next = *head;
76 *head = mp;
77
78 if (allnodes_tail) {
79 allnodes_tail->allnodes_next = mp;
80 allnodes_tail = mp;
81 } else {
82 allnodes = allnodes_tail = mp;
83 }
84}
85
86static struct mdesc_node *find_node(u64 node)
87{
88 struct mdesc_node *mp = mdesc_hash[node_hashfn(node)];
89
90 while (mp) {
91 if (mp->node == node)
92 return mp;
93
94 mp = mp->hash_next;
95 }
96 return NULL;
97}
98
99struct property *md_find_property(const struct mdesc_node *mp,
100 const char *name,
101 int *lenp)
102{
103 struct property *pp;
104
105 for (pp = mp->properties; pp != 0; pp = pp->next) {
106 if (strcasecmp(pp->name, name) == 0) {
107 if (lenp)
108 *lenp = pp->length;
109 break;
110 }
111 }
112 return pp;
113}
114EXPORT_SYMBOL(md_find_property);
115
116/*
117 * Find a property with a given name for a given node
118 * and return the value.
119 */
120const void *md_get_property(const struct mdesc_node *mp, const char *name,
121 int *lenp)
122{
123 struct property *pp = md_find_property(mp, name, lenp);
124 return pp ? pp->value : NULL;
125}
126EXPORT_SYMBOL(md_get_property);
127
128struct mdesc_node *md_find_node_by_name(struct mdesc_node *from,
129 const char *name)
130{
131 struct mdesc_node *mp;
132
133 mp = from ? from->allnodes_next : allnodes;
134 for (; mp != NULL; mp = mp->allnodes_next) {
135 if (strcmp(mp->name, name) == 0)
136 break;
137 }
138 return mp;
139}
140EXPORT_SYMBOL(md_find_node_by_name);
141
142static unsigned int mdesc_early_allocated;
143
144static void * __init mdesc_early_alloc(unsigned long size)
145{
146 void *ret;
147
148 ret = __alloc_bootmem(size, SMP_CACHE_BYTES, 0UL);
149 if (ret == NULL) {
150 prom_printf("MDESC: alloc of %lu bytes failed.\n", size);
151 prom_halt();
152 }
153
154 memset(ret, 0, size);
155
156 mdesc_early_allocated += size;
157
158 return ret;
159}
160
161static unsigned int __init count_arcs(struct mdesc_elem *ep)
162{
163 unsigned int ret = 0;
164
165 ep++;
166 while (ep->tag != MD_NODE_END) {
167 if (ep->tag == MD_PROP_ARC)
168 ret++;
169 ep++;
170 }
171 return ret;
172}
173
174static void __init mdesc_node_alloc(u64 node, struct mdesc_elem *ep, const char *names)
175{
176 unsigned int num_arcs = count_arcs(ep);
177 struct mdesc_node *mp;
178
179 mp = mdesc_early_alloc(sizeof(*mp) +
180 (num_arcs * sizeof(struct mdesc_arc)));
181 mp->name = names + ep->name_offset;
182 mp->node = node;
183 mp->unique_id = unique_id++;
184 mp->num_arcs = num_arcs;
185
186 hash_node(mp);
187}
188
189static inline struct mdesc_elem *node_block(struct mdesc_hdr *mdesc)
190{
191 return (struct mdesc_elem *) (mdesc + 1);
192}
193
194static inline void *name_block(struct mdesc_hdr *mdesc)
195{
196 return ((void *) node_block(mdesc)) + mdesc->node_sz;
197}
198
199static inline void *data_block(struct mdesc_hdr *mdesc)
200{
201 return ((void *) name_block(mdesc)) + mdesc->name_sz;
202}
203
204/* In order to avoid recursion (the graph can be very deep) we use a
205 * two pass algorithm. First we allocate all the nodes and hash them.
206 * Then we iterate over each node, filling in the arcs and properties.
207 */
208static void __init build_all_nodes(struct mdesc_hdr *mdesc)
209{
210 struct mdesc_elem *start, *ep;
211 struct mdesc_node *mp;
212 const char *names;
213 void *data;
214 u64 last_node;
215
216 start = ep = node_block(mdesc);
217 last_node = mdesc->node_sz / 16;
218
219 names = name_block(mdesc);
220
221 while (1) {
222 u64 node = ep - start;
223
224 if (ep->tag == MD_LIST_END)
225 break;
226
227 if (ep->tag != MD_NODE) {
228 prom_printf("MDESC: Inconsistent element list.\n");
229 prom_halt();
230 }
231
232 mdesc_node_alloc(node, ep, names);
233
234 if (ep->d.val >= last_node) {
235 printk("MDESC: Warning, early break out of node scan.\n");
236 printk("MDESC: Next node [%lu] last_node [%lu].\n",
237 node, last_node);
238 break;
239 }
240
241 ep = start + ep->d.val;
242 }
243
244 data = data_block(mdesc);
245 for (mp = allnodes; mp; mp = mp->allnodes_next) {
246 struct mdesc_elem *ep = start + mp->node;
247 struct property **link = &mp->properties;
248 unsigned int this_arc = 0;
249
250 ep++;
251 while (ep->tag != MD_NODE_END) {
252 switch (ep->tag) {
253 case MD_PROP_ARC: {
254 struct mdesc_node *target;
255
256 if (this_arc >= mp->num_arcs) {
257 prom_printf("MDESC: ARC overrun [%u:%u]\n",
258 this_arc, mp->num_arcs);
259 prom_halt();
260 }
261 target = find_node(ep->d.val);
262 if (!target) {
263 printk("MDESC: Warning, arc points to "
264 "missing node, ignoring.\n");
265 break;
266 }
267 mp->arcs[this_arc].name =
268 (names + ep->name_offset);
269 mp->arcs[this_arc].arc = target;
270 this_arc++;
271 break;
272 }
273
274 case MD_PROP_VAL:
275 case MD_PROP_STR:
276 case MD_PROP_DATA: {
277 struct property *p = mdesc_early_alloc(sizeof(*p));
278
279 p->unique_id = unique_id++;
280 p->name = (char *) names + ep->name_offset;
281 if (ep->tag == MD_PROP_VAL) {
282 p->value = &ep->d.val;
283 p->length = 8;
284 } else {
285 p->value = data + ep->d.data.data_offset;
286 p->length = ep->d.data.data_len;
287 }
288 *link = p;
289 link = &p->next;
290 break;
291 }
292
293 case MD_NOOP:
294 break;
295
296 default:
297 printk("MDESC: Warning, ignoring unknown tag type %02x\n",
298 ep->tag);
299 }
300 ep++;
301 }
302 }
303}
304
305static unsigned int __init count_nodes(struct mdesc_hdr *mdesc)
306{
307 struct mdesc_elem *ep = node_block(mdesc);
308 struct mdesc_elem *end;
309 unsigned int cnt = 0;
310
311 end = ((void *)ep) + mdesc->node_sz;
312 while (ep < end) {
313 if (ep->tag == MD_NODE)
314 cnt++;
315 ep++;
316 }
317 return cnt;
318}
319
320static void __init report_platform_properties(void)
321{
322 struct mdesc_node *pn = md_find_node_by_name(NULL, "platform");
323 const char *s;
324 const u64 *v;
325
326 if (!pn) {
327 prom_printf("No platform node in machine-description.\n");
328 prom_halt();
329 }
330
331 s = md_get_property(pn, "banner-name", NULL);
332 printk("PLATFORM: banner-name [%s]\n", s);
333 s = md_get_property(pn, "name", NULL);
334 printk("PLATFORM: name [%s]\n", s);
335
336 v = md_get_property(pn, "hostid", NULL);
337 if (v)
338 printk("PLATFORM: hostid [%08lx]\n", *v);
339 v = md_get_property(pn, "serial#", NULL);
340 if (v)
341 printk("PLATFORM: serial# [%08lx]\n", *v);
342 v = md_get_property(pn, "stick-frequency", NULL);
343 printk("PLATFORM: stick-frequency [%08lx]\n", *v);
344 v = md_get_property(pn, "mac-address", NULL);
345 if (v)
346 printk("PLATFORM: mac-address [%lx]\n", *v);
347 v = md_get_property(pn, "watchdog-resolution", NULL);
348 if (v)
349 printk("PLATFORM: watchdog-resolution [%lu ms]\n", *v);
350 v = md_get_property(pn, "watchdog-max-timeout", NULL);
351 if (v)
352 printk("PLATFORM: watchdog-max-timeout [%lu ms]\n", *v);
353 v = md_get_property(pn, "max-cpus", NULL);
354 if (v)
355 printk("PLATFORM: max-cpus [%lu]\n", *v);
356}
357
358static int inline find_in_proplist(const char *list, const char *match, int len)
359{
360 while (len > 0) {
361 int l;
362
363 if (!strcmp(list, match))
364 return 1;
365 l = strlen(list) + 1;
366 list += l;
367 len -= l;
368 }
369 return 0;
370}
371
372static void __init fill_in_one_cache(cpuinfo_sparc *c, struct mdesc_node *mp)
373{
374 const u64 *level = md_get_property(mp, "level", NULL);
375 const u64 *size = md_get_property(mp, "size", NULL);
376 const u64 *line_size = md_get_property(mp, "line-size", NULL);
377 const char *type;
378 int type_len;
379
380 type = md_get_property(mp, "type", &type_len);
381
382 switch (*level) {
383 case 1:
384 if (find_in_proplist(type, "instn", type_len)) {
385 c->icache_size = *size;
386 c->icache_line_size = *line_size;
387 } else if (find_in_proplist(type, "data", type_len)) {
388 c->dcache_size = *size;
389 c->dcache_line_size = *line_size;
390 }
391 break;
392
393 case 2:
394 c->ecache_size = *size;
395 c->ecache_line_size = *line_size;
396 break;
397
398 default:
399 break;
400 }
401
402 if (*level == 1) {
403 unsigned int i;
404
405 for (i = 0; i < mp->num_arcs; i++) {
406 struct mdesc_node *t = mp->arcs[i].arc;
407
408 if (strcmp(mp->arcs[i].name, "fwd"))
409 continue;
410
411 if (!strcmp(t->name, "cache"))
412 fill_in_one_cache(c, t);
413 }
414 }
415}
416
417static void __init mark_core_ids(struct mdesc_node *mp, int core_id)
418{
419 unsigned int i;
420
421 for (i = 0; i < mp->num_arcs; i++) {
422 struct mdesc_node *t = mp->arcs[i].arc;
423 const u64 *id;
424
425 if (strcmp(mp->arcs[i].name, "back"))
426 continue;
427
428 if (!strcmp(t->name, "cpu")) {
429 id = md_get_property(t, "id", NULL);
430 if (*id < NR_CPUS)
431 cpu_data(*id).core_id = core_id;
432 } else {
433 unsigned int j;
434
435 for (j = 0; j < t->num_arcs; j++) {
436 struct mdesc_node *n = t->arcs[j].arc;
437
438 if (strcmp(t->arcs[j].name, "back"))
439 continue;
440
441 if (strcmp(n->name, "cpu"))
442 continue;
443
444 id = md_get_property(n, "id", NULL);
445 if (*id < NR_CPUS)
446 cpu_data(*id).core_id = core_id;
447 }
448 }
449 }
450}
451
452static void __init set_core_ids(void)
453{
454 struct mdesc_node *mp;
455 int idx;
456
457 idx = 1;
458 md_for_each_node_by_name(mp, "cache") {
459 const u64 *level = md_get_property(mp, "level", NULL);
460 const char *type;
461 int len;
462
463 if (*level != 1)
464 continue;
465
466 type = md_get_property(mp, "type", &len);
467 if (!find_in_proplist(type, "instn", len))
468 continue;
469
470 mark_core_ids(mp, idx);
471
472 idx++;
473 }
474}
475
476static void __init get_one_mondo_bits(const u64 *p, unsigned int *mask, unsigned char def)
477{
478 u64 val;
479
480 if (!p)
481 goto use_default;
482 val = *p;
483
484 if (!val || val >= 64)
485 goto use_default;
486
487 *mask = ((1U << val) * 64U) - 1U;
488 return;
489
490use_default:
491 *mask = ((1U << def) * 64U) - 1U;
492}
493
494static void __init get_mondo_data(struct mdesc_node *mp, struct trap_per_cpu *tb)
495{
496 const u64 *val;
497
498 val = md_get_property(mp, "q-cpu-mondo-#bits", NULL);
499 get_one_mondo_bits(val, &tb->cpu_mondo_qmask, 7);
500
501 val = md_get_property(mp, "q-dev-mondo-#bits", NULL);
502 get_one_mondo_bits(val, &tb->dev_mondo_qmask, 7);
503
504 val = md_get_property(mp, "q-resumable-#bits", NULL);
505 get_one_mondo_bits(val, &tb->resum_qmask, 6);
506
507 val = md_get_property(mp, "q-nonresumable-#bits", NULL);
508 get_one_mondo_bits(val, &tb->nonresum_qmask, 2);
509}
510
511static void __init mdesc_fill_in_cpu_data(void)
512{
513 struct mdesc_node *mp;
514
515 ncpus_probed = 0;
516 md_for_each_node_by_name(mp, "cpu") {
517 const u64 *id = md_get_property(mp, "id", NULL);
518 const u64 *cfreq = md_get_property(mp, "clock-frequency", NULL);
519 struct trap_per_cpu *tb;
520 cpuinfo_sparc *c;
521 unsigned int i;
522 int cpuid;
523
524 ncpus_probed++;
525
526 cpuid = *id;
527
528#ifdef CONFIG_SMP
529 if (cpuid >= NR_CPUS)
530 continue;
531#else
532 /* On uniprocessor we only want the values for the
533 * real physical cpu the kernel booted onto, however
534 * cpu_data() only has one entry at index 0.
535 */
536 if (cpuid != real_hard_smp_processor_id())
537 continue;
538 cpuid = 0;
539#endif
540
541 c = &cpu_data(cpuid);
542 c->clock_tick = *cfreq;
543
544 tb = &trap_block[cpuid];
545 get_mondo_data(mp, tb);
546
547 for (i = 0; i < mp->num_arcs; i++) {
548 struct mdesc_node *t = mp->arcs[i].arc;
549 unsigned int j;
550
551 if (strcmp(mp->arcs[i].name, "fwd"))
552 continue;
553
554 if (!strcmp(t->name, "cache")) {
555 fill_in_one_cache(c, t);
556 continue;
557 }
558
559 for (j = 0; j < t->num_arcs; j++) {
560 struct mdesc_node *n;
561
562 n = t->arcs[j].arc;
563 if (strcmp(t->arcs[j].name, "fwd"))
564 continue;
565
566 if (!strcmp(n->name, "cache"))
567 fill_in_one_cache(c, n);
568 }
569 }
570
571#ifdef CONFIG_SMP
572 cpu_set(cpuid, cpu_present_map);
573 cpu_set(cpuid, phys_cpu_present_map);
574#endif
575
576 c->core_id = 0;
577 }
578
579 set_core_ids();
580
581 smp_fill_in_sib_core_maps();
582}
583
584void __init sun4v_mdesc_init(void)
585{
586 unsigned long len, real_len, status;
587
588 (void) sun4v_mach_desc(0UL, 0UL, &len);
589
590 printk("MDESC: Size is %lu bytes.\n", len);
591
592 main_mdesc = mdesc_early_alloc(len);
593
594 status = sun4v_mach_desc(__pa(main_mdesc), len, &real_len);
595 if (status != HV_EOK || real_len > len) {
596 prom_printf("sun4v_mach_desc fails, err(%lu), "
597 "len(%lu), real_len(%lu)\n",
598 status, len, real_len);
599 prom_halt();
600 }
601
602 len = count_nodes(main_mdesc);
603 printk("MDESC: %lu nodes.\n", len);
604
605 len = roundup_pow_of_two(len);
606
607 mdesc_hash = mdesc_early_alloc(len * sizeof(struct mdesc_node *));
608 mdesc_hash_size = len;
609
610 printk("MDESC: Hash size %lu entries.\n", len);
611
612 build_all_nodes(main_mdesc);
613
614 printk("MDESC: Built graph with %u bytes of memory.\n",
615 mdesc_early_allocated);
616
617 report_platform_properties();
618 mdesc_fill_in_cpu_data();
619}
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index d4c077dc5e85..38a32bc95d22 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -306,6 +306,20 @@ static void __init pci_controller_probe(void)
306 pci_controller_scan(pci_controller_init); 306 pci_controller_scan(pci_controller_init);
307} 307}
308 308
309static int ofpci_verbose;
310
311static int __init ofpci_debug(char *str)
312{
313 int val = 0;
314
315 get_option(&str, &val);
316 if (val)
317 ofpci_verbose = 1;
318 return 1;
319}
320
321__setup("ofpci_debug=", ofpci_debug);
322
309static unsigned long pci_parse_of_flags(u32 addr0) 323static unsigned long pci_parse_of_flags(u32 addr0)
310{ 324{
311 unsigned long flags = 0; 325 unsigned long flags = 0;
@@ -337,7 +351,9 @@ static void pci_parse_of_addrs(struct of_device *op,
337 addrs = of_get_property(node, "assigned-addresses", &proplen); 351 addrs = of_get_property(node, "assigned-addresses", &proplen);
338 if (!addrs) 352 if (!addrs)
339 return; 353 return;
340 printk(" parse addresses (%d bytes) @ %p\n", proplen, addrs); 354 if (ofpci_verbose)
355 printk(" parse addresses (%d bytes) @ %p\n",
356 proplen, addrs);
341 op_res = &op->resource[0]; 357 op_res = &op->resource[0];
342 for (; proplen >= 20; proplen -= 20, addrs += 5, op_res++) { 358 for (; proplen >= 20; proplen -= 20, addrs += 5, op_res++) {
343 struct resource *res; 359 struct resource *res;
@@ -348,8 +364,9 @@ static void pci_parse_of_addrs(struct of_device *op,
348 if (!flags) 364 if (!flags)
349 continue; 365 continue;
350 i = addrs[0] & 0xff; 366 i = addrs[0] & 0xff;
351 printk(" start: %lx, end: %lx, i: %x\n", 367 if (ofpci_verbose)
352 op_res->start, op_res->end, i); 368 printk(" start: %lx, end: %lx, i: %x\n",
369 op_res->start, op_res->end, i);
353 370
354 if (PCI_BASE_ADDRESS_0 <= i && i <= PCI_BASE_ADDRESS_5) { 371 if (PCI_BASE_ADDRESS_0 <= i && i <= PCI_BASE_ADDRESS_5) {
355 res = &dev->resource[(i - PCI_BASE_ADDRESS_0) >> 2]; 372 res = &dev->resource[(i - PCI_BASE_ADDRESS_0) >> 2];
@@ -393,8 +410,9 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
393 if (type == NULL) 410 if (type == NULL)
394 type = ""; 411 type = "";
395 412
396 printk(" create device, devfn: %x, type: %s hostcontroller(%d)\n", 413 if (ofpci_verbose)
397 devfn, type, host_controller); 414 printk(" create device, devfn: %x, type: %s\n",
415 devfn, type);
398 416
399 dev->bus = bus; 417 dev->bus = bus;
400 dev->sysdata = node; 418 dev->sysdata = node;
@@ -434,8 +452,9 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
434 sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus), 452 sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus),
435 dev->bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn)); 453 dev->bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn));
436 } 454 }
437 printk(" class: 0x%x device name: %s\n", 455 if (ofpci_verbose)
438 dev->class, pci_name(dev)); 456 printk(" class: 0x%x device name: %s\n",
457 dev->class, pci_name(dev));
439 458
440 /* I have seen IDE devices which will not respond to 459 /* I have seen IDE devices which will not respond to
441 * the bmdma simplex check reads if bus mastering is 460 * the bmdma simplex check reads if bus mastering is
@@ -469,7 +488,8 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
469 } 488 }
470 pci_parse_of_addrs(sd->op, node, dev); 489 pci_parse_of_addrs(sd->op, node, dev);
471 490
472 printk(" adding to system ...\n"); 491 if (ofpci_verbose)
492 printk(" adding to system ...\n");
473 493
474 pci_device_add(dev, bus); 494 pci_device_add(dev, bus);
475 495
@@ -547,7 +567,8 @@ static void __devinit of_scan_pci_bridge(struct pci_pbm_info *pbm,
547 unsigned int flags; 567 unsigned int flags;
548 u64 size; 568 u64 size;
549 569
550 printk("of_scan_pci_bridge(%s)\n", node->full_name); 570 if (ofpci_verbose)
571 printk("of_scan_pci_bridge(%s)\n", node->full_name);
551 572
552 /* parse bus-range property */ 573 /* parse bus-range property */
553 busrange = of_get_property(node, "bus-range", &len); 574 busrange = of_get_property(node, "bus-range", &len);
@@ -632,7 +653,8 @@ static void __devinit of_scan_pci_bridge(struct pci_pbm_info *pbm,
632simba_cont: 653simba_cont:
633 sprintf(bus->name, "PCI Bus %04x:%02x", pci_domain_nr(bus), 654 sprintf(bus->name, "PCI Bus %04x:%02x", pci_domain_nr(bus),
634 bus->number); 655 bus->number);
635 printk(" bus name: %s\n", bus->name); 656 if (ofpci_verbose)
657 printk(" bus name: %s\n", bus->name);
636 658
637 pci_of_scan_bus(pbm, node, bus); 659 pci_of_scan_bus(pbm, node, bus);
638} 660}
@@ -646,12 +668,14 @@ static void __devinit pci_of_scan_bus(struct pci_pbm_info *pbm,
646 int reglen, devfn; 668 int reglen, devfn;
647 struct pci_dev *dev; 669 struct pci_dev *dev;
648 670
649 printk("PCI: scan_bus[%s] bus no %d\n", 671 if (ofpci_verbose)
650 node->full_name, bus->number); 672 printk("PCI: scan_bus[%s] bus no %d\n",
673 node->full_name, bus->number);
651 674
652 child = NULL; 675 child = NULL;
653 while ((child = of_get_next_child(node, child)) != NULL) { 676 while ((child = of_get_next_child(node, child)) != NULL) {
654 printk(" * %s\n", child->full_name); 677 if (ofpci_verbose)
678 printk(" * %s\n", child->full_name);
655 reg = of_get_property(child, "reg", &reglen); 679 reg = of_get_property(child, "reg", &reglen);
656 if (reg == NULL || reglen < 20) 680 if (reg == NULL || reglen < 20)
657 continue; 681 continue;
@@ -661,7 +685,9 @@ static void __devinit pci_of_scan_bus(struct pci_pbm_info *pbm,
661 dev = of_create_pci_dev(pbm, child, bus, devfn, 0); 685 dev = of_create_pci_dev(pbm, child, bus, devfn, 0);
662 if (!dev) 686 if (!dev)
663 continue; 687 continue;
664 printk("PCI: dev header type: %x\n", dev->hdr_type); 688 if (ofpci_verbose)
689 printk("PCI: dev header type: %x\n",
690 dev->hdr_type);
665 691
666 if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE || 692 if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE ||
667 dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) 693 dev->hdr_type == PCI_HEADER_TYPE_CARDBUS)
diff --git a/arch/sparc64/kernel/pci_sabre.c b/arch/sparc64/kernel/pci_sabre.c
index e2377796de89..323d6c278518 100644
--- a/arch/sparc64/kernel/pci_sabre.c
+++ b/arch/sparc64/kernel/pci_sabre.c
@@ -762,9 +762,10 @@ void sabre_init(struct device_node *dp, char *model_name)
762 /* Of course, Sun has to encode things a thousand 762 /* Of course, Sun has to encode things a thousand
763 * different ways, inconsistently. 763 * different ways, inconsistently.
764 */ 764 */
765 cpu_find_by_instance(0, &dp, NULL); 765 for_each_node_by_type(dp, "cpu") {
766 if (!strcmp(dp->name, "SUNW,UltraSPARC-IIe")) 766 if (!strcmp(dp->name, "SUNW,UltraSPARC-IIe"))
767 hummingbird_p = 1; 767 hummingbird_p = 1;
768 }
768 } 769 }
769 } 770 }
770 771
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c
index 044e8ec4c0f5..6b3fe2c1d65e 100644
--- a/arch/sparc64/kernel/pci_sun4v.c
+++ b/arch/sparc64/kernel/pci_sun4v.c
@@ -12,6 +12,7 @@
12#include <linux/percpu.h> 12#include <linux/percpu.h>
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <linux/msi.h> 14#include <linux/msi.h>
15#include <linux/log2.h>
15 16
16#include <asm/iommu.h> 17#include <asm/iommu.h>
17#include <asm/irq.h> 18#include <asm/irq.h>
@@ -26,6 +27,9 @@
26 27
27#include "pci_sun4v.h" 28#include "pci_sun4v.h"
28 29
30static unsigned long vpci_major = 1;
31static unsigned long vpci_minor = 1;
32
29#define PGLIST_NENTS (PAGE_SIZE / sizeof(u64)) 33#define PGLIST_NENTS (PAGE_SIZE / sizeof(u64))
30 34
31struct iommu_batch { 35struct iommu_batch {
@@ -638,9 +642,8 @@ static void pci_sun4v_iommu_init(struct pci_pbm_info *pbm)
638{ 642{
639 struct iommu *iommu = pbm->iommu; 643 struct iommu *iommu = pbm->iommu;
640 struct property *prop; 644 struct property *prop;
641 unsigned long num_tsb_entries, sz; 645 unsigned long num_tsb_entries, sz, tsbsize;
642 u32 vdma[2], dma_mask, dma_offset; 646 u32 vdma[2], dma_mask, dma_offset;
643 int tsbsize;
644 647
645 prop = of_find_property(pbm->prom_node, "virtual-dma", NULL); 648 prop = of_find_property(pbm->prom_node, "virtual-dma", NULL);
646 if (prop) { 649 if (prop) {
@@ -654,31 +657,15 @@ static void pci_sun4v_iommu_init(struct pci_pbm_info *pbm)
654 vdma[1] = 0x80000000; 657 vdma[1] = 0x80000000;
655 } 658 }
656 659
657 dma_mask = vdma[0]; 660 if ((vdma[0] | vdma[1]) & ~IO_PAGE_MASK) {
658 switch (vdma[1]) { 661 prom_printf("PCI-SUN4V: strange virtual-dma[%08x:%08x].\n",
659 case 0x20000000: 662 vdma[0], vdma[1]);
660 dma_mask |= 0x1fffffff; 663 prom_halt();
661 tsbsize = 64;
662 break;
663
664 case 0x40000000:
665 dma_mask |= 0x3fffffff;
666 tsbsize = 128;
667 break;
668
669 case 0x80000000:
670 dma_mask |= 0x7fffffff;
671 tsbsize = 256;
672 break;
673
674 default:
675 prom_printf("PCI-SUN4V: strange virtual-dma size.\n");
676 prom_halt();
677 }; 664 };
678 665
679 tsbsize *= (8 * 1024); 666 dma_mask = (roundup_pow_of_two(vdma[1]) - 1UL);
680 667 num_tsb_entries = vdma[1] / IO_PAGE_SIZE;
681 num_tsb_entries = tsbsize / sizeof(iopte_t); 668 tsbsize = num_tsb_entries * sizeof(iopte_t);
682 669
683 dma_offset = vdma[0]; 670 dma_offset = vdma[0];
684 671
@@ -689,7 +676,7 @@ static void pci_sun4v_iommu_init(struct pci_pbm_info *pbm)
689 iommu->dma_addr_mask = dma_mask; 676 iommu->dma_addr_mask = dma_mask;
690 677
691 /* Allocate and initialize the free area map. */ 678 /* Allocate and initialize the free area map. */
692 sz = num_tsb_entries / 8; 679 sz = (num_tsb_entries + 7) / 8;
693 sz = (sz + 7UL) & ~7UL; 680 sz = (sz + 7UL) & ~7UL;
694 iommu->arena.map = kzalloc(sz, GFP_KERNEL); 681 iommu->arena.map = kzalloc(sz, GFP_KERNEL);
695 if (!iommu->arena.map) { 682 if (!iommu->arena.map) {
@@ -1178,6 +1165,7 @@ static void pci_sun4v_pbm_init(struct pci_controller_info *p, struct device_node
1178 1165
1179void sun4v_pci_init(struct device_node *dp, char *model_name) 1166void sun4v_pci_init(struct device_node *dp, char *model_name)
1180{ 1167{
1168 static int hvapi_negotiated = 0;
1181 struct pci_controller_info *p; 1169 struct pci_controller_info *p;
1182 struct pci_pbm_info *pbm; 1170 struct pci_pbm_info *pbm;
1183 struct iommu *iommu; 1171 struct iommu *iommu;
@@ -1186,6 +1174,20 @@ void sun4v_pci_init(struct device_node *dp, char *model_name)
1186 u32 devhandle; 1174 u32 devhandle;
1187 int i; 1175 int i;
1188 1176
1177 if (!hvapi_negotiated++) {
1178 int err = sun4v_hvapi_register(HV_GRP_PCI,
1179 vpci_major,
1180 &vpci_minor);
1181
1182 if (err) {
1183 prom_printf("SUN4V_PCI: Could not register hvapi, "
1184 "err=%d\n", err);
1185 prom_halt();
1186 }
1187 printk("SUN4V_PCI: Registered hvapi major[%lu] minor[%lu]\n",
1188 vpci_major, vpci_minor);
1189 }
1190
1189 prop = of_find_property(dp, "reg", NULL); 1191 prop = of_find_property(dp, "reg", NULL);
1190 regs = prop->value; 1192 regs = prop->value;
1191 1193
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c
index 699b24b890df..5d6adea3967f 100644
--- a/arch/sparc64/kernel/power.c
+++ b/arch/sparc64/kernel/power.c
@@ -19,6 +19,7 @@
19#include <asm/prom.h> 19#include <asm/prom.h>
20#include <asm/of_device.h> 20#include <asm/of_device.h>
21#include <asm/io.h> 21#include <asm/io.h>
22#include <asm/sstate.h>
22 23
23#include <linux/unistd.h> 24#include <linux/unistd.h>
24 25
@@ -53,6 +54,7 @@ static void (*poweroff_method)(void) = machine_alt_power_off;
53 54
54void machine_power_off(void) 55void machine_power_off(void)
55{ 56{
57 sstate_poweroff();
56 if (!serial_console || scons_pwroff) { 58 if (!serial_console || scons_pwroff) {
57#ifdef CONFIG_PCI 59#ifdef CONFIG_PCI
58 if (power_reg) { 60 if (power_reg) {
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c
index 952762bfb4c0..f5f97e2c669c 100644
--- a/arch/sparc64/kernel/process.c
+++ b/arch/sparc64/kernel/process.c
@@ -45,6 +45,7 @@
45#include <asm/mmu_context.h> 45#include <asm/mmu_context.h>
46#include <asm/unistd.h> 46#include <asm/unistd.h>
47#include <asm/hypervisor.h> 47#include <asm/hypervisor.h>
48#include <asm/sstate.h>
48 49
49/* #define VERBOSE_SHOWREGS */ 50/* #define VERBOSE_SHOWREGS */
50 51
@@ -106,6 +107,7 @@ extern void (*prom_keyboard)(void);
106 107
107void machine_halt(void) 108void machine_halt(void)
108{ 109{
110 sstate_halt();
109 if (!serial_console && prom_palette) 111 if (!serial_console && prom_palette)
110 prom_palette (1); 112 prom_palette (1);
111 if (prom_keyboard) 113 if (prom_keyboard)
@@ -116,6 +118,7 @@ void machine_halt(void)
116 118
117void machine_alt_power_off(void) 119void machine_alt_power_off(void)
118{ 120{
121 sstate_poweroff();
119 if (!serial_console && prom_palette) 122 if (!serial_console && prom_palette)
120 prom_palette(1); 123 prom_palette(1);
121 if (prom_keyboard) 124 if (prom_keyboard)
@@ -128,6 +131,7 @@ void machine_restart(char * cmd)
128{ 131{
129 char *p; 132 char *p;
130 133
134 sstate_reboot();
131 p = strchr (reboot_command, '\n'); 135 p = strchr (reboot_command, '\n');
132 if (p) *p = 0; 136 if (p) *p = 0;
133 if (!serial_console && prom_palette) 137 if (!serial_console && prom_palette)
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index 02830e4671f5..dad4b3ba705f 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -28,6 +28,7 @@
28#include <asm/irq.h> 28#include <asm/irq.h>
29#include <asm/asi.h> 29#include <asm/asi.h>
30#include <asm/upa.h> 30#include <asm/upa.h>
31#include <asm/smp.h>
31 32
32static struct device_node *allnodes; 33static struct device_node *allnodes;
33 34
@@ -1665,6 +1666,150 @@ static struct device_node * __init build_tree(struct device_node *parent, phandl
1665 return ret; 1666 return ret;
1666} 1667}
1667 1668
1669static const char *get_mid_prop(void)
1670{
1671 return (tlb_type == spitfire ? "upa-portid" : "portid");
1672}
1673
1674struct device_node *of_find_node_by_cpuid(int cpuid)
1675{
1676 struct device_node *dp;
1677 const char *mid_prop = get_mid_prop();
1678
1679 for_each_node_by_type(dp, "cpu") {
1680 int id = of_getintprop_default(dp, mid_prop, -1);
1681 const char *this_mid_prop = mid_prop;
1682
1683 if (id < 0) {
1684 this_mid_prop = "cpuid";
1685 id = of_getintprop_default(dp, this_mid_prop, -1);
1686 }
1687
1688 if (id < 0) {
1689 prom_printf("OF: Serious problem, cpu lacks "
1690 "%s property", this_mid_prop);
1691 prom_halt();
1692 }
1693 if (cpuid == id)
1694 return dp;
1695 }
1696 return NULL;
1697}
1698
1699static void __init of_fill_in_cpu_data(void)
1700{
1701 struct device_node *dp;
1702 const char *mid_prop = get_mid_prop();
1703
1704 ncpus_probed = 0;
1705 for_each_node_by_type(dp, "cpu") {
1706 int cpuid = of_getintprop_default(dp, mid_prop, -1);
1707 const char *this_mid_prop = mid_prop;
1708 struct device_node *portid_parent;
1709 int portid = -1;
1710
1711 portid_parent = NULL;
1712 if (cpuid < 0) {
1713 this_mid_prop = "cpuid";
1714 cpuid = of_getintprop_default(dp, this_mid_prop, -1);
1715 if (cpuid >= 0) {
1716 int limit = 2;
1717
1718 portid_parent = dp;
1719 while (limit--) {
1720 portid_parent = portid_parent->parent;
1721 if (!portid_parent)
1722 break;
1723 portid = of_getintprop_default(portid_parent,
1724 "portid", -1);
1725 if (portid >= 0)
1726 break;
1727 }
1728 }
1729 }
1730
1731 if (cpuid < 0) {
1732 prom_printf("OF: Serious problem, cpu lacks "
1733 "%s property", this_mid_prop);
1734 prom_halt();
1735 }
1736
1737 ncpus_probed++;
1738
1739#ifdef CONFIG_SMP
1740 if (cpuid >= NR_CPUS)
1741 continue;
1742#else
1743 /* On uniprocessor we only want the values for the
1744 * real physical cpu the kernel booted onto, however
1745 * cpu_data() only has one entry at index 0.
1746 */
1747 if (cpuid != real_hard_smp_processor_id())
1748 continue;
1749 cpuid = 0;
1750#endif
1751
1752 cpu_data(cpuid).clock_tick =
1753 of_getintprop_default(dp, "clock-frequency", 0);
1754
1755 if (portid_parent) {
1756 cpu_data(cpuid).dcache_size =
1757 of_getintprop_default(dp, "l1-dcache-size",
1758 16 * 1024);
1759 cpu_data(cpuid).dcache_line_size =
1760 of_getintprop_default(dp, "l1-dcache-line-size",
1761 32);
1762 cpu_data(cpuid).icache_size =
1763 of_getintprop_default(dp, "l1-icache-size",
1764 8 * 1024);
1765 cpu_data(cpuid).icache_line_size =
1766 of_getintprop_default(dp, "l1-icache-line-size",
1767 32);
1768 cpu_data(cpuid).ecache_size =
1769 of_getintprop_default(dp, "l2-cache-size", 0);
1770 cpu_data(cpuid).ecache_line_size =
1771 of_getintprop_default(dp, "l2-cache-line-size", 0);
1772 if (!cpu_data(cpuid).ecache_size ||
1773 !cpu_data(cpuid).ecache_line_size) {
1774 cpu_data(cpuid).ecache_size =
1775 of_getintprop_default(portid_parent,
1776 "l2-cache-size",
1777 (4 * 1024 * 1024));
1778 cpu_data(cpuid).ecache_line_size =
1779 of_getintprop_default(portid_parent,
1780 "l2-cache-line-size", 64);
1781 }
1782
1783 cpu_data(cpuid).core_id = portid + 1;
1784 } else {
1785 cpu_data(cpuid).dcache_size =
1786 of_getintprop_default(dp, "dcache-size", 16 * 1024);
1787 cpu_data(cpuid).dcache_line_size =
1788 of_getintprop_default(dp, "dcache-line-size", 32);
1789
1790 cpu_data(cpuid).icache_size =
1791 of_getintprop_default(dp, "icache-size", 16 * 1024);
1792 cpu_data(cpuid).icache_line_size =
1793 of_getintprop_default(dp, "icache-line-size", 32);
1794
1795 cpu_data(cpuid).ecache_size =
1796 of_getintprop_default(dp, "ecache-size",
1797 (4 * 1024 * 1024));
1798 cpu_data(cpuid).ecache_line_size =
1799 of_getintprop_default(dp, "ecache-line-size", 64);
1800
1801 cpu_data(cpuid).core_id = 0;
1802 }
1803
1804#ifdef CONFIG_SMP
1805 cpu_set(cpuid, cpu_present_map);
1806 cpu_set(cpuid, phys_cpu_present_map);
1807#endif
1808 }
1809
1810 smp_fill_in_sib_core_maps();
1811}
1812
1668void __init prom_build_devicetree(void) 1813void __init prom_build_devicetree(void)
1669{ 1814{
1670 struct device_node **nextp; 1815 struct device_node **nextp;
@@ -1679,4 +1824,7 @@ void __init prom_build_devicetree(void)
1679 &nextp); 1824 &nextp);
1680 printk("PROM: Built device tree with %u bytes of memory.\n", 1825 printk("PROM: Built device tree with %u bytes of memory.\n",
1681 prom_early_allocated); 1826 prom_early_allocated);
1827
1828 if (tlb_type != hypervisor)
1829 of_fill_in_cpu_data();
1682} 1830}
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index 451028341c75..de9b4c13f1c7 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -46,11 +46,17 @@
46#include <asm/sections.h> 46#include <asm/sections.h>
47#include <asm/setup.h> 47#include <asm/setup.h>
48#include <asm/mmu.h> 48#include <asm/mmu.h>
49#include <asm/ns87303.h>
49 50
50#ifdef CONFIG_IP_PNP 51#ifdef CONFIG_IP_PNP
51#include <net/ipconfig.h> 52#include <net/ipconfig.h>
52#endif 53#endif
53 54
55/* Used to synchronize accesses to NatSemi SUPER I/O chip configure
56 * operations in asm/ns87303.h
57 */
58DEFINE_SPINLOCK(ns87303_lock);
59
54struct screen_info screen_info = { 60struct screen_info screen_info = {
55 0, 0, /* orig-x, orig-y */ 61 0, 0, /* orig-x, orig-y */
56 0, /* unused */ 62 0, /* unused */
@@ -269,6 +275,7 @@ void __init per_cpu_patch(void)
269 275
270void __init sun4v_patch(void) 276void __init sun4v_patch(void)
271{ 277{
278 extern void sun4v_hvapi_init(void);
272 struct sun4v_1insn_patch_entry *p1; 279 struct sun4v_1insn_patch_entry *p1;
273 struct sun4v_2insn_patch_entry *p2; 280 struct sun4v_2insn_patch_entry *p2;
274 281
@@ -300,6 +307,8 @@ void __init sun4v_patch(void)
300 307
301 p2++; 308 p2++;
302 } 309 }
310
311 sun4v_hvapi_init();
303} 312}
304 313
305#ifdef CONFIG_SMP 314#ifdef CONFIG_SMP
@@ -367,8 +376,6 @@ void __init setup_arch(char **cmdline_p)
367 init_cur_cpu_trap(current_thread_info()); 376 init_cur_cpu_trap(current_thread_info());
368 377
369 paging_init(); 378 paging_init();
370
371 smp_setup_cpu_possible_map();
372} 379}
373 380
374static int __init set_preferred_console(void) 381static int __init set_preferred_console(void)
@@ -421,7 +428,7 @@ extern void mmu_info(struct seq_file *);
421unsigned int dcache_parity_tl1_occurred; 428unsigned int dcache_parity_tl1_occurred;
422unsigned int icache_parity_tl1_occurred; 429unsigned int icache_parity_tl1_occurred;
423 430
424static int ncpus_probed; 431int ncpus_probed;
425 432
426static int show_cpuinfo(struct seq_file *m, void *__unused) 433static int show_cpuinfo(struct seq_file *m, void *__unused)
427{ 434{
@@ -513,14 +520,6 @@ static int __init topology_init(void)
513 520
514 err = -ENOMEM; 521 err = -ENOMEM;
515 522
516 /* Count the number of physically present processors in
517 * the machine, even on uniprocessor, so that /proc/cpuinfo
518 * output is consistent with 2.4.x
519 */
520 ncpus_probed = 0;
521 while (!cpu_find_by_instance(ncpus_probed, NULL, NULL))
522 ncpus_probed++;
523
524 for_each_possible_cpu(i) { 523 for_each_possible_cpu(i) {
525 struct cpu *p = kzalloc(sizeof(*p), GFP_KERNEL); 524 struct cpu *p = kzalloc(sizeof(*p), GFP_KERNEL);
526 if (p) { 525 if (p) {
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 24fdf1d0adc5..c550bba3490a 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -40,6 +40,7 @@
40#include <asm/tlb.h> 40#include <asm/tlb.h>
41#include <asm/sections.h> 41#include <asm/sections.h>
42#include <asm/prom.h> 42#include <asm/prom.h>
43#include <asm/mdesc.h>
43 44
44extern void calibrate_delay(void); 45extern void calibrate_delay(void);
45 46
@@ -75,53 +76,6 @@ void smp_bogo(struct seq_file *m)
75 i, cpu_data(i).clock_tick); 76 i, cpu_data(i).clock_tick);
76} 77}
77 78
78void __init smp_store_cpu_info(int id)
79{
80 struct device_node *dp;
81 int def;
82
83 cpu_data(id).udelay_val = loops_per_jiffy;
84
85 cpu_find_by_mid(id, &dp);
86 cpu_data(id).clock_tick =
87 of_getintprop_default(dp, "clock-frequency", 0);
88
89 def = ((tlb_type == hypervisor) ? (8 * 1024) : (16 * 1024));
90 cpu_data(id).dcache_size =
91 of_getintprop_default(dp, "dcache-size", def);
92
93 def = 32;
94 cpu_data(id).dcache_line_size =
95 of_getintprop_default(dp, "dcache-line-size", def);
96
97 def = 16 * 1024;
98 cpu_data(id).icache_size =
99 of_getintprop_default(dp, "icache-size", def);
100
101 def = 32;
102 cpu_data(id).icache_line_size =
103 of_getintprop_default(dp, "icache-line-size", def);
104
105 def = ((tlb_type == hypervisor) ?
106 (3 * 1024 * 1024) :
107 (4 * 1024 * 1024));
108 cpu_data(id).ecache_size =
109 of_getintprop_default(dp, "ecache-size", def);
110
111 def = 64;
112 cpu_data(id).ecache_line_size =
113 of_getintprop_default(dp, "ecache-line-size", def);
114
115 printk("CPU[%d]: Caches "
116 "D[sz(%d):line_sz(%d)] "
117 "I[sz(%d):line_sz(%d)] "
118 "E[sz(%d):line_sz(%d)]\n",
119 id,
120 cpu_data(id).dcache_size, cpu_data(id).dcache_line_size,
121 cpu_data(id).icache_size, cpu_data(id).icache_line_size,
122 cpu_data(id).ecache_size, cpu_data(id).ecache_line_size);
123}
124
125extern void setup_sparc64_timer(void); 79extern void setup_sparc64_timer(void);
126 80
127static volatile unsigned long callin_flag = 0; 81static volatile unsigned long callin_flag = 0;
@@ -145,7 +99,7 @@ void __init smp_callin(void)
145 local_irq_enable(); 99 local_irq_enable();
146 100
147 calibrate_delay(); 101 calibrate_delay();
148 smp_store_cpu_info(cpuid); 102 cpu_data(cpuid).udelay_val = loops_per_jiffy;
149 callin_flag = 1; 103 callin_flag = 1;
150 __asm__ __volatile__("membar #Sync\n\t" 104 __asm__ __volatile__("membar #Sync\n\t"
151 "flush %%g6" : : : "memory"); 105 "flush %%g6" : : : "memory");
@@ -340,9 +294,8 @@ static int __devinit smp_boot_one_cpu(unsigned int cpu)
340 294
341 prom_startcpu_cpuid(cpu, entry, cookie); 295 prom_startcpu_cpuid(cpu, entry, cookie);
342 } else { 296 } else {
343 struct device_node *dp; 297 struct device_node *dp = of_find_node_by_cpuid(cpu);
344 298
345 cpu_find_by_mid(cpu, &dp);
346 prom_startcpu(dp->node, entry, cookie); 299 prom_startcpu(dp->node, entry, cookie);
347 } 300 }
348 301
@@ -447,7 +400,7 @@ static __inline__ void spitfire_xcall_deliver(u64 data0, u64 data1, u64 data2, c
447static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mask) 400static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mask)
448{ 401{
449 u64 pstate, ver; 402 u64 pstate, ver;
450 int nack_busy_id, is_jbus; 403 int nack_busy_id, is_jbus, need_more;
451 404
452 if (cpus_empty(mask)) 405 if (cpus_empty(mask))
453 return; 406 return;
@@ -463,6 +416,7 @@ static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mas
463 __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate)); 416 __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate));
464 417
465retry: 418retry:
419 need_more = 0;
466 __asm__ __volatile__("wrpr %0, %1, %%pstate\n\t" 420 __asm__ __volatile__("wrpr %0, %1, %%pstate\n\t"
467 : : "r" (pstate), "i" (PSTATE_IE)); 421 : : "r" (pstate), "i" (PSTATE_IE));
468 422
@@ -491,6 +445,10 @@ retry:
491 : /* no outputs */ 445 : /* no outputs */
492 : "r" (target), "i" (ASI_INTR_W)); 446 : "r" (target), "i" (ASI_INTR_W));
493 nack_busy_id++; 447 nack_busy_id++;
448 if (nack_busy_id == 32) {
449 need_more = 1;
450 break;
451 }
494 } 452 }
495 } 453 }
496 454
@@ -507,6 +465,16 @@ retry:
507 if (dispatch_stat == 0UL) { 465 if (dispatch_stat == 0UL) {
508 __asm__ __volatile__("wrpr %0, 0x0, %%pstate" 466 __asm__ __volatile__("wrpr %0, 0x0, %%pstate"
509 : : "r" (pstate)); 467 : : "r" (pstate));
468 if (unlikely(need_more)) {
469 int i, cnt = 0;
470 for_each_cpu_mask(i, mask) {
471 cpu_clear(i, mask);
472 cnt++;
473 if (cnt == 32)
474 break;
475 }
476 goto retry;
477 }
510 return; 478 return;
511 } 479 }
512 if (!--stuck) 480 if (!--stuck)
@@ -544,6 +512,8 @@ retry:
544 if ((dispatch_stat & check_mask) == 0) 512 if ((dispatch_stat & check_mask) == 0)
545 cpu_clear(i, mask); 513 cpu_clear(i, mask);
546 this_busy_nack += 2; 514 this_busy_nack += 2;
515 if (this_busy_nack == 64)
516 break;
547 } 517 }
548 518
549 goto retry; 519 goto retry;
@@ -1191,23 +1161,14 @@ int setup_profiling_timer(unsigned int multiplier)
1191 1161
1192static void __init smp_tune_scheduling(void) 1162static void __init smp_tune_scheduling(void)
1193{ 1163{
1194 struct device_node *dp; 1164 unsigned int smallest = ~0U;
1195 int instance; 1165 int i;
1196 unsigned int def, smallest = ~0U;
1197
1198 def = ((tlb_type == hypervisor) ?
1199 (3 * 1024 * 1024) :
1200 (4 * 1024 * 1024));
1201 1166
1202 instance = 0; 1167 for (i = 0; i < NR_CPUS; i++) {
1203 while (!cpu_find_by_instance(instance, &dp, NULL)) { 1168 unsigned int val = cpu_data(i).ecache_size;
1204 unsigned int val;
1205 1169
1206 val = of_getintprop_default(dp, "ecache-size", def); 1170 if (val && val < smallest)
1207 if (val < smallest)
1208 smallest = val; 1171 smallest = val;
1209
1210 instance++;
1211 } 1172 }
1212 1173
1213 /* Any value less than 256K is nonsense. */ 1174 /* Any value less than 256K is nonsense. */
@@ -1230,58 +1191,42 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
1230 int i; 1191 int i;
1231 1192
1232 if (num_possible_cpus() > max_cpus) { 1193 if (num_possible_cpus() > max_cpus) {
1233 int instance, mid; 1194 for_each_possible_cpu(i) {
1234 1195 if (i != boot_cpu_id) {
1235 instance = 0; 1196 cpu_clear(i, phys_cpu_present_map);
1236 while (!cpu_find_by_instance(instance, NULL, &mid)) { 1197 cpu_clear(i, cpu_present_map);
1237 if (mid != boot_cpu_id) {
1238 cpu_clear(mid, phys_cpu_present_map);
1239 cpu_clear(mid, cpu_present_map);
1240 if (num_possible_cpus() <= max_cpus) 1198 if (num_possible_cpus() <= max_cpus)
1241 break; 1199 break;
1242 } 1200 }
1243 instance++;
1244 } 1201 }
1245 } 1202 }
1246 1203
1247 for_each_possible_cpu(i) { 1204 cpu_data(boot_cpu_id).udelay_val = loops_per_jiffy;
1248 if (tlb_type == hypervisor) {
1249 int j;
1250
1251 /* XXX get this mapping from machine description */
1252 for_each_possible_cpu(j) {
1253 if ((j >> 2) == (i >> 2))
1254 cpu_set(j, cpu_sibling_map[i]);
1255 }
1256 } else {
1257 cpu_set(i, cpu_sibling_map[i]);
1258 }
1259 }
1260
1261 smp_store_cpu_info(boot_cpu_id);
1262 smp_tune_scheduling(); 1205 smp_tune_scheduling();
1263} 1206}
1264 1207
1265/* Set this up early so that things like the scheduler can init 1208void __devinit smp_prepare_boot_cpu(void)
1266 * properly. We use the same cpu mask for both the present and
1267 * possible cpu map.
1268 */
1269void __init smp_setup_cpu_possible_map(void)
1270{ 1209{
1271 int instance, mid;
1272
1273 instance = 0;
1274 while (!cpu_find_by_instance(instance, NULL, &mid)) {
1275 if (mid < NR_CPUS) {
1276 cpu_set(mid, phys_cpu_present_map);
1277 cpu_set(mid, cpu_present_map);
1278 }
1279 instance++;
1280 }
1281} 1210}
1282 1211
1283void __devinit smp_prepare_boot_cpu(void) 1212void __devinit smp_fill_in_sib_core_maps(void)
1284{ 1213{
1214 unsigned int i;
1215
1216 for_each_possible_cpu(i) {
1217 unsigned int j;
1218
1219 if (cpu_data(i).core_id == 0) {
1220 cpu_set(i, cpu_sibling_map[i]);
1221 continue;
1222 }
1223
1224 for_each_possible_cpu(j) {
1225 if (cpu_data(i).core_id ==
1226 cpu_data(j).core_id)
1227 cpu_set(j, cpu_sibling_map[i]);
1228 }
1229 }
1285} 1230}
1286 1231
1287int __cpuinit __cpu_up(unsigned int cpu) 1232int __cpuinit __cpu_up(unsigned int cpu)
@@ -1337,7 +1282,7 @@ unsigned long __per_cpu_shift __read_mostly;
1337EXPORT_SYMBOL(__per_cpu_base); 1282EXPORT_SYMBOL(__per_cpu_base);
1338EXPORT_SYMBOL(__per_cpu_shift); 1283EXPORT_SYMBOL(__per_cpu_shift);
1339 1284
1340void __init setup_per_cpu_areas(void) 1285void __init real_setup_per_cpu_areas(void)
1341{ 1286{
1342 unsigned long goal, size, i; 1287 unsigned long goal, size, i;
1343 char *ptr; 1288 char *ptr;
diff --git a/arch/sparc64/kernel/sstate.c b/arch/sparc64/kernel/sstate.c
new file mode 100644
index 000000000000..5b6e75b7f052
--- /dev/null
+++ b/arch/sparc64/kernel/sstate.c
@@ -0,0 +1,104 @@
1/* sstate.c: System soft state support.
2 *
3 * Copyright (C) 2007 David S. Miller <davem@davemloft.net>
4 */
5
6#include <linux/kernel.h>
7#include <linux/notifier.h>
8#include <linux/init.h>
9
10#include <asm/hypervisor.h>
11#include <asm/sstate.h>
12#include <asm/oplib.h>
13#include <asm/head.h>
14#include <asm/io.h>
15
16static int hv_supports_soft_state;
17
18static unsigned long kimage_addr_to_ra(const char *p)
19{
20 unsigned long val = (unsigned long) p;
21
22 return kern_base + (val - KERNBASE);
23}
24
25static void do_set_sstate(unsigned long state, const char *msg)
26{
27 unsigned long err;
28
29 if (!hv_supports_soft_state)
30 return;
31
32 err = sun4v_mach_set_soft_state(state, kimage_addr_to_ra(msg));
33 if (err) {
34 printk(KERN_WARNING "SSTATE: Failed to set soft-state to "
35 "state[%lx] msg[%s], err=%lu\n",
36 state, msg, err);
37 }
38}
39
40static const char booting_msg[32] __attribute__((aligned(32))) =
41 "Linux booting";
42static const char running_msg[32] __attribute__((aligned(32))) =
43 "Linux running";
44static const char halting_msg[32] __attribute__((aligned(32))) =
45 "Linux halting";
46static const char poweroff_msg[32] __attribute__((aligned(32))) =
47 "Linux powering off";
48static const char rebooting_msg[32] __attribute__((aligned(32))) =
49 "Linux rebooting";
50static const char panicing_msg[32] __attribute__((aligned(32))) =
51 "Linux panicing";
52
53void sstate_booting(void)
54{
55 do_set_sstate(HV_SOFT_STATE_TRANSITION, booting_msg);
56}
57
58void sstate_running(void)
59{
60 do_set_sstate(HV_SOFT_STATE_NORMAL, running_msg);
61}
62
63void sstate_halt(void)
64{
65 do_set_sstate(HV_SOFT_STATE_TRANSITION, halting_msg);
66}
67
68void sstate_poweroff(void)
69{
70 do_set_sstate(HV_SOFT_STATE_TRANSITION, poweroff_msg);
71}
72
73void sstate_reboot(void)
74{
75 do_set_sstate(HV_SOFT_STATE_TRANSITION, rebooting_msg);
76}
77
78static int sstate_panic_event(struct notifier_block *n, unsigned long event, void *ptr)
79{
80 do_set_sstate(HV_SOFT_STATE_TRANSITION, panicing_msg);
81
82 return NOTIFY_DONE;
83}
84
85static struct notifier_block sstate_panic_block = {
86 .notifier_call = sstate_panic_event,
87 .priority = INT_MAX,
88};
89
90void __init sun4v_sstate_init(void)
91{
92 unsigned long major, minor;
93
94 major = 1;
95 minor = 0;
96 if (sun4v_hvapi_register(HV_GRP_SOFT_STATE, major, &minor))
97 return;
98
99 hv_supports_soft_state = 1;
100
101 prom_sun4v_guest_soft_state();
102 atomic_notifier_chain_register(&panic_notifier_list,
103 &sstate_panic_block);
104}
diff --git a/arch/sparc64/kernel/sun4v_ivec.S b/arch/sparc64/kernel/sun4v_ivec.S
index 405855dd886b..574bc248bca6 100644
--- a/arch/sparc64/kernel/sun4v_ivec.S
+++ b/arch/sparc64/kernel/sun4v_ivec.S
@@ -22,12 +22,12 @@ sun4v_cpu_mondo:
22 be,pn %xcc, sun4v_cpu_mondo_queue_empty 22 be,pn %xcc, sun4v_cpu_mondo_queue_empty
23 nop 23 nop
24 24
25 /* Get &trap_block[smp_processor_id()] into %g3. */ 25 /* Get &trap_block[smp_processor_id()] into %g4. */
26 ldxa [%g0] ASI_SCRATCHPAD, %g3 26 ldxa [%g0] ASI_SCRATCHPAD, %g4
27 sub %g3, TRAP_PER_CPU_FAULT_INFO, %g3 27 sub %g4, TRAP_PER_CPU_FAULT_INFO, %g4
28 28
29 /* Get CPU mondo queue base phys address into %g7. */ 29 /* Get CPU mondo queue base phys address into %g7. */
30 ldx [%g3 + TRAP_PER_CPU_CPU_MONDO_PA], %g7 30 ldx [%g4 + TRAP_PER_CPU_CPU_MONDO_PA], %g7
31 31
32 /* Now get the cross-call arguments and handler PC, same 32 /* Now get the cross-call arguments and handler PC, same
33 * layout as sun4u: 33 * layout as sun4u:
@@ -47,8 +47,7 @@ sun4v_cpu_mondo:
47 add %g2, 0x40 - 0x8 - 0x8, %g2 47 add %g2, 0x40 - 0x8 - 0x8, %g2
48 48
49 /* Update queue head pointer. */ 49 /* Update queue head pointer. */
50 sethi %hi(8192 - 1), %g4 50 lduw [%g4 + TRAP_PER_CPU_CPU_MONDO_QMASK], %g4
51 or %g4, %lo(8192 - 1), %g4
52 and %g2, %g4, %g2 51 and %g2, %g4, %g2
53 52
54 mov INTRQ_CPU_MONDO_HEAD, %g4 53 mov INTRQ_CPU_MONDO_HEAD, %g4
@@ -71,12 +70,12 @@ sun4v_dev_mondo:
71 be,pn %xcc, sun4v_dev_mondo_queue_empty 70 be,pn %xcc, sun4v_dev_mondo_queue_empty
72 nop 71 nop
73 72
74 /* Get &trap_block[smp_processor_id()] into %g3. */ 73 /* Get &trap_block[smp_processor_id()] into %g4. */
75 ldxa [%g0] ASI_SCRATCHPAD, %g3 74 ldxa [%g0] ASI_SCRATCHPAD, %g4
76 sub %g3, TRAP_PER_CPU_FAULT_INFO, %g3 75 sub %g4, TRAP_PER_CPU_FAULT_INFO, %g4
77 76
78 /* Get DEV mondo queue base phys address into %g5. */ 77 /* Get DEV mondo queue base phys address into %g5. */
79 ldx [%g3 + TRAP_PER_CPU_DEV_MONDO_PA], %g5 78 ldx [%g4 + TRAP_PER_CPU_DEV_MONDO_PA], %g5
80 79
81 /* Load IVEC into %g3. */ 80 /* Load IVEC into %g3. */
82 ldxa [%g5 + %g2] ASI_PHYS_USE_EC, %g3 81 ldxa [%g5 + %g2] ASI_PHYS_USE_EC, %g3
@@ -90,8 +89,7 @@ sun4v_dev_mondo:
90 */ 89 */
91 90
92 /* Update queue head pointer, this frees up some registers. */ 91 /* Update queue head pointer, this frees up some registers. */
93 sethi %hi(8192 - 1), %g4 92 lduw [%g4 + TRAP_PER_CPU_DEV_MONDO_QMASK], %g4
94 or %g4, %lo(8192 - 1), %g4
95 and %g2, %g4, %g2 93 and %g2, %g4, %g2
96 94
97 mov INTRQ_DEVICE_MONDO_HEAD, %g4 95 mov INTRQ_DEVICE_MONDO_HEAD, %g4
@@ -143,6 +141,8 @@ sun4v_res_mondo:
143 brnz,pn %g1, sun4v_res_mondo_queue_full 141 brnz,pn %g1, sun4v_res_mondo_queue_full
144 nop 142 nop
145 143
144 lduw [%g3 + TRAP_PER_CPU_RESUM_QMASK], %g4
145
146 /* Remember this entry's offset in %g1. */ 146 /* Remember this entry's offset in %g1. */
147 mov %g2, %g1 147 mov %g2, %g1
148 148
@@ -173,8 +173,6 @@ sun4v_res_mondo:
173 add %g2, 0x08, %g2 173 add %g2, 0x08, %g2
174 174
175 /* Update queue head pointer. */ 175 /* Update queue head pointer. */
176 sethi %hi(8192 - 1), %g4
177 or %g4, %lo(8192 - 1), %g4
178 and %g2, %g4, %g2 176 and %g2, %g4, %g2
179 177
180 mov INTRQ_RESUM_MONDO_HEAD, %g4 178 mov INTRQ_RESUM_MONDO_HEAD, %g4
@@ -254,6 +252,8 @@ sun4v_nonres_mondo:
254 brnz,pn %g1, sun4v_nonres_mondo_queue_full 252 brnz,pn %g1, sun4v_nonres_mondo_queue_full
255 nop 253 nop
256 254
255 lduw [%g3 + TRAP_PER_CPU_NONRESUM_QMASK], %g4
256
257 /* Remember this entry's offset in %g1. */ 257 /* Remember this entry's offset in %g1. */
258 mov %g2, %g1 258 mov %g2, %g1
259 259
@@ -284,8 +284,6 @@ sun4v_nonres_mondo:
284 add %g2, 0x08, %g2 284 add %g2, 0x08, %g2
285 285
286 /* Update queue head pointer. */ 286 /* Update queue head pointer. */
287 sethi %hi(8192 - 1), %g4
288 or %g4, %lo(8192 - 1), %g4
289 and %g2, %g4, %g2 287 and %g2, %g4, %g2
290 288
291 mov INTRQ_NONRESUM_MONDO_HEAD, %g4 289 mov INTRQ_NONRESUM_MONDO_HEAD, %g4
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c
index 6b9a06e42542..a31a0439244f 100644
--- a/arch/sparc64/kernel/time.c
+++ b/arch/sparc64/kernel/time.c
@@ -680,22 +680,14 @@ static int starfire_set_time(u32 val)
680 680
681static u32 hypervisor_get_time(void) 681static u32 hypervisor_get_time(void)
682{ 682{
683 register unsigned long func asm("%o5"); 683 unsigned long ret, time;
684 register unsigned long arg0 asm("%o0");
685 register unsigned long arg1 asm("%o1");
686 int retries = 10000; 684 int retries = 10000;
687 685
688retry: 686retry:
689 func = HV_FAST_TOD_GET; 687 ret = sun4v_tod_get(&time);
690 arg0 = 0; 688 if (ret == HV_EOK)
691 arg1 = 0; 689 return time;
692 __asm__ __volatile__("ta %6" 690 if (ret == HV_EWOULDBLOCK) {
693 : "=&r" (func), "=&r" (arg0), "=&r" (arg1)
694 : "0" (func), "1" (arg0), "2" (arg1),
695 "i" (HV_FAST_TRAP));
696 if (arg0 == HV_EOK)
697 return arg1;
698 if (arg0 == HV_EWOULDBLOCK) {
699 if (--retries > 0) { 691 if (--retries > 0) {
700 udelay(100); 692 udelay(100);
701 goto retry; 693 goto retry;
@@ -709,20 +701,14 @@ retry:
709 701
710static int hypervisor_set_time(u32 secs) 702static int hypervisor_set_time(u32 secs)
711{ 703{
712 register unsigned long func asm("%o5"); 704 unsigned long ret;
713 register unsigned long arg0 asm("%o0");
714 int retries = 10000; 705 int retries = 10000;
715 706
716retry: 707retry:
717 func = HV_FAST_TOD_SET; 708 ret = sun4v_tod_set(secs);
718 arg0 = secs; 709 if (ret == HV_EOK)
719 __asm__ __volatile__("ta %4"
720 : "=&r" (func), "=&r" (arg0)
721 : "0" (func), "1" (arg0),
722 "i" (HV_FAST_TRAP));
723 if (arg0 == HV_EOK)
724 return 0; 710 return 0;
725 if (arg0 == HV_EWOULDBLOCK) { 711 if (ret == HV_EWOULDBLOCK) {
726 if (--retries > 0) { 712 if (--retries > 0) {
727 udelay(100); 713 udelay(100);
728 goto retry; 714 goto retry;
@@ -862,7 +848,6 @@ fs_initcall(clock_init);
862static unsigned long sparc64_init_timers(void) 848static unsigned long sparc64_init_timers(void)
863{ 849{
864 struct device_node *dp; 850 struct device_node *dp;
865 struct property *prop;
866 unsigned long clock; 851 unsigned long clock;
867#ifdef CONFIG_SMP 852#ifdef CONFIG_SMP
868 extern void smp_tick_init(void); 853 extern void smp_tick_init(void);
@@ -879,17 +864,15 @@ static unsigned long sparc64_init_timers(void)
879 if (manuf == 0x17 && impl == 0x13) { 864 if (manuf == 0x17 && impl == 0x13) {
880 /* Hummingbird, aka Ultra-IIe */ 865 /* Hummingbird, aka Ultra-IIe */
881 tick_ops = &hbtick_operations; 866 tick_ops = &hbtick_operations;
882 prop = of_find_property(dp, "stick-frequency", NULL); 867 clock = of_getintprop_default(dp, "stick-frequency", 0);
883 } else { 868 } else {
884 tick_ops = &tick_operations; 869 tick_ops = &tick_operations;
885 cpu_find_by_instance(0, &dp, NULL); 870 clock = local_cpu_data().clock_tick;
886 prop = of_find_property(dp, "clock-frequency", NULL);
887 } 871 }
888 } else { 872 } else {
889 tick_ops = &stick_operations; 873 tick_ops = &stick_operations;
890 prop = of_find_property(dp, "stick-frequency", NULL); 874 clock = of_getintprop_default(dp, "stick-frequency", 0);
891 } 875 }
892 clock = *(unsigned int *) prop->value;
893 876
894#ifdef CONFIG_SMP 877#ifdef CONFIG_SMP
895 smp_tick_init(); 878 smp_tick_init();
@@ -1030,7 +1013,7 @@ void __devinit setup_sparc64_timer(void)
1030 clockevents_register_device(sevt); 1013 clockevents_register_device(sevt);
1031} 1014}
1032 1015
1033#define SPARC64_NSEC_PER_CYC_SHIFT 32UL 1016#define SPARC64_NSEC_PER_CYC_SHIFT 10UL
1034 1017
1035static struct clocksource clocksource_tick = { 1018static struct clocksource clocksource_tick = {
1036 .rating = 100, 1019 .rating = 100,
@@ -1365,6 +1348,7 @@ static int hypervisor_set_rtc_time(struct rtc_time *time)
1365 return hypervisor_set_time(seconds); 1348 return hypervisor_set_time(seconds);
1366} 1349}
1367 1350
1351#ifdef CONFIG_PCI
1368static void bq4802_get_rtc_time(struct rtc_time *time) 1352static void bq4802_get_rtc_time(struct rtc_time *time)
1369{ 1353{
1370 unsigned char val = readb(bq4802_regs + 0x0e); 1354 unsigned char val = readb(bq4802_regs + 0x0e);
@@ -1436,6 +1420,7 @@ static int bq4802_set_rtc_time(struct rtc_time *time)
1436 1420
1437 return 0; 1421 return 0;
1438} 1422}
1423#endif /* CONFIG_PCI */
1439 1424
1440struct mini_rtc_ops { 1425struct mini_rtc_ops {
1441 void (*get_rtc_time)(struct rtc_time *); 1426 void (*get_rtc_time)(struct rtc_time *);
@@ -1452,10 +1437,12 @@ static struct mini_rtc_ops hypervisor_rtc_ops = {
1452 .set_rtc_time = hypervisor_set_rtc_time, 1437 .set_rtc_time = hypervisor_set_rtc_time,
1453}; 1438};
1454 1439
1440#ifdef CONFIG_PCI
1455static struct mini_rtc_ops bq4802_rtc_ops = { 1441static struct mini_rtc_ops bq4802_rtc_ops = {
1456 .get_rtc_time = bq4802_get_rtc_time, 1442 .get_rtc_time = bq4802_get_rtc_time,
1457 .set_rtc_time = bq4802_set_rtc_time, 1443 .set_rtc_time = bq4802_set_rtc_time,
1458}; 1444};
1445#endif /* CONFIG_PCI */
1459 1446
1460static struct mini_rtc_ops *mini_rtc_ops; 1447static struct mini_rtc_ops *mini_rtc_ops;
1461 1448
@@ -1579,8 +1566,10 @@ static int __init rtc_mini_init(void)
1579 mini_rtc_ops = &hypervisor_rtc_ops; 1566 mini_rtc_ops = &hypervisor_rtc_ops;
1580 else if (this_is_starfire) 1567 else if (this_is_starfire)
1581 mini_rtc_ops = &starfire_rtc_ops; 1568 mini_rtc_ops = &starfire_rtc_ops;
1569#ifdef CONFIG_PCI
1582 else if (bq4802_regs) 1570 else if (bq4802_regs)
1583 mini_rtc_ops = &bq4802_rtc_ops; 1571 mini_rtc_ops = &bq4802_rtc_ops;
1572#endif /* CONFIG_PCI */
1584 else 1573 else
1585 return -ENODEV; 1574 return -ENODEV;
1586 1575
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c
index d0fde36395b4..00a9e3286c83 100644
--- a/arch/sparc64/kernel/traps.c
+++ b/arch/sparc64/kernel/traps.c
@@ -795,8 +795,7 @@ extern unsigned int cheetah_deferred_trap_vector[], cheetah_deferred_trap_vector
795void __init cheetah_ecache_flush_init(void) 795void __init cheetah_ecache_flush_init(void)
796{ 796{
797 unsigned long largest_size, smallest_linesize, order, ver; 797 unsigned long largest_size, smallest_linesize, order, ver;
798 struct device_node *dp; 798 int i, sz;
799 int i, instance, sz;
800 799
801 /* Scan all cpu device tree nodes, note two values: 800 /* Scan all cpu device tree nodes, note two values:
802 * 1) largest E-cache size 801 * 1) largest E-cache size
@@ -805,18 +804,20 @@ void __init cheetah_ecache_flush_init(void)
805 largest_size = 0UL; 804 largest_size = 0UL;
806 smallest_linesize = ~0UL; 805 smallest_linesize = ~0UL;
807 806
808 instance = 0; 807 for (i = 0; i < NR_CPUS; i++) {
809 while (!cpu_find_by_instance(instance, &dp, NULL)) {
810 unsigned long val; 808 unsigned long val;
811 809
812 val = of_getintprop_default(dp, "ecache-size", 810 val = cpu_data(i).ecache_size;
813 (2 * 1024 * 1024)); 811 if (!val)
812 continue;
813
814 if (val > largest_size) 814 if (val > largest_size)
815 largest_size = val; 815 largest_size = val;
816 val = of_getintprop_default(dp, "ecache-line-size", 64); 816
817 val = cpu_data(i).ecache_line_size;
817 if (val < smallest_linesize) 818 if (val < smallest_linesize)
818 smallest_linesize = val; 819 smallest_linesize = val;
819 instance++; 820
820 } 821 }
821 822
822 if (largest_size == 0UL || smallest_linesize == ~0UL) { 823 if (largest_size == 0UL || smallest_linesize == ~0UL) {
@@ -2564,7 +2565,15 @@ void __init trap_init(void)
2564 (TRAP_PER_CPU_TSB_HUGE_TEMP != 2565 (TRAP_PER_CPU_TSB_HUGE_TEMP !=
2565 offsetof(struct trap_per_cpu, tsb_huge_temp)) || 2566 offsetof(struct trap_per_cpu, tsb_huge_temp)) ||
2566 (TRAP_PER_CPU_IRQ_WORKLIST != 2567 (TRAP_PER_CPU_IRQ_WORKLIST !=
2567 offsetof(struct trap_per_cpu, irq_worklist))) 2568 offsetof(struct trap_per_cpu, irq_worklist)) ||
2569 (TRAP_PER_CPU_CPU_MONDO_QMASK !=
2570 offsetof(struct trap_per_cpu, cpu_mondo_qmask)) ||
2571 (TRAP_PER_CPU_DEV_MONDO_QMASK !=
2572 offsetof(struct trap_per_cpu, dev_mondo_qmask)) ||
2573 (TRAP_PER_CPU_RESUM_QMASK !=
2574 offsetof(struct trap_per_cpu, resum_qmask)) ||
2575 (TRAP_PER_CPU_NONRESUM_QMASK !=
2576 offsetof(struct trap_per_cpu, nonresum_qmask)))
2568 trap_per_cpu_offsets_are_bolixed_dave(); 2577 trap_per_cpu_offsets_are_bolixed_dave();
2569 2578
2570 if ((TSB_CONFIG_TSB != 2579 if ((TSB_CONFIG_TSB !=
diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S
index 13fa2a2e4513..fb648de18a8d 100644
--- a/arch/sparc64/kernel/vmlinux.lds.S
+++ b/arch/sparc64/kernel/vmlinux.lds.S
@@ -14,7 +14,7 @@ SECTIONS
14 .text 0x0000000000404000 : 14 .text 0x0000000000404000 :
15 { 15 {
16 _text = .; 16 _text = .;
17 *(.text) 17 TEXT_TEXT
18 SCHED_TEXT 18 SCHED_TEXT
19 LOCK_TEXT 19 LOCK_TEXT
20 KPROBES_TEXT 20 KPROBES_TEXT
@@ -27,7 +27,7 @@ SECTIONS
27 27
28 .data : 28 .data :
29 { 29 {
30 *(.data) 30 DATA_DATA
31 CONSTRUCTORS 31 CONSTRUCTORS
32 } 32 }
33 .data1 : { *(.data1) } 33 .data1 : { *(.data1) }
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 6e5b01d779d2..3010227fe243 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -23,6 +23,7 @@
23#include <linux/kprobes.h> 23#include <linux/kprobes.h>
24#include <linux/cache.h> 24#include <linux/cache.h>
25#include <linux/sort.h> 25#include <linux/sort.h>
26#include <linux/percpu.h>
26 27
27#include <asm/head.h> 28#include <asm/head.h>
28#include <asm/system.h> 29#include <asm/system.h>
@@ -43,8 +44,8 @@
43#include <asm/tsb.h> 44#include <asm/tsb.h>
44#include <asm/hypervisor.h> 45#include <asm/hypervisor.h>
45#include <asm/prom.h> 46#include <asm/prom.h>
46 47#include <asm/sstate.h>
47extern void device_scan(void); 48#include <asm/mdesc.h>
48 49
49#define MAX_PHYS_ADDRESS (1UL << 42UL) 50#define MAX_PHYS_ADDRESS (1UL << 42UL)
50#define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL) 51#define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL)
@@ -60,8 +61,11 @@ unsigned long kern_linear_pte_xor[2] __read_mostly;
60unsigned long kpte_linear_bitmap[KPTE_BITMAP_BYTES / sizeof(unsigned long)]; 61unsigned long kpte_linear_bitmap[KPTE_BITMAP_BYTES / sizeof(unsigned long)];
61 62
62#ifndef CONFIG_DEBUG_PAGEALLOC 63#ifndef CONFIG_DEBUG_PAGEALLOC
63/* A special kernel TSB for 4MB and 256MB linear mappings. */ 64/* A special kernel TSB for 4MB and 256MB linear mappings.
64struct tsb swapper_4m_tsb[KERNEL_TSB4M_NENTRIES]; 65 * Space is allocated for this right after the trap table
66 * in arch/sparc64/kernel/head.S
67 */
68extern struct tsb swapper_4m_tsb[KERNEL_TSB4M_NENTRIES];
65#endif 69#endif
66 70
67#define MAX_BANKS 32 71#define MAX_BANKS 32
@@ -190,12 +194,9 @@ inline void flush_dcache_page_impl(struct page *page)
190} 194}
191 195
192#define PG_dcache_dirty PG_arch_1 196#define PG_dcache_dirty PG_arch_1
193#define PG_dcache_cpu_shift 24UL 197#define PG_dcache_cpu_shift 32UL
194#define PG_dcache_cpu_mask (256UL - 1UL) 198#define PG_dcache_cpu_mask \
195 199 ((1UL<<ilog2(roundup_pow_of_two(NR_CPUS)))-1UL)
196#if NR_CPUS > 256
197#error D-cache dirty tracking and thread_info->cpu need fixing for > 256 cpus
198#endif
199 200
200#define dcache_dirty_cpu(page) \ 201#define dcache_dirty_cpu(page) \
201 (((page)->flags >> PG_dcache_cpu_shift) & PG_dcache_cpu_mask) 202 (((page)->flags >> PG_dcache_cpu_shift) & PG_dcache_cpu_mask)
@@ -557,26 +558,11 @@ static void __init hypervisor_tlb_lock(unsigned long vaddr,
557 unsigned long pte, 558 unsigned long pte,
558 unsigned long mmu) 559 unsigned long mmu)
559{ 560{
560 register unsigned long func asm("%o5"); 561 unsigned long ret = sun4v_mmu_map_perm_addr(vaddr, 0, pte, mmu);
561 register unsigned long arg0 asm("%o0"); 562
562 register unsigned long arg1 asm("%o1"); 563 if (ret != 0) {
563 register unsigned long arg2 asm("%o2");
564 register unsigned long arg3 asm("%o3");
565
566 func = HV_FAST_MMU_MAP_PERM_ADDR;
567 arg0 = vaddr;
568 arg1 = 0;
569 arg2 = pte;
570 arg3 = mmu;
571 __asm__ __volatile__("ta 0x80"
572 : "=&r" (func), "=&r" (arg0),
573 "=&r" (arg1), "=&r" (arg2),
574 "=&r" (arg3)
575 : "0" (func), "1" (arg0), "2" (arg1),
576 "3" (arg2), "4" (arg3));
577 if (arg0 != 0) {
578 prom_printf("hypervisor_tlb_lock[%lx:%lx:%lx:%lx]: " 564 prom_printf("hypervisor_tlb_lock[%lx:%lx:%lx:%lx]: "
579 "errors with %lx\n", vaddr, 0, pte, mmu, arg0); 565 "errors with %lx\n", vaddr, 0, pte, mmu, ret);
580 prom_halt(); 566 prom_halt();
581 } 567 }
582} 568}
@@ -1313,20 +1299,16 @@ static void __init sun4v_ktsb_init(void)
1313 1299
1314void __cpuinit sun4v_ktsb_register(void) 1300void __cpuinit sun4v_ktsb_register(void)
1315{ 1301{
1316 register unsigned long func asm("%o5"); 1302 unsigned long pa, ret;
1317 register unsigned long arg0 asm("%o0");
1318 register unsigned long arg1 asm("%o1");
1319 unsigned long pa;
1320 1303
1321 pa = kern_base + ((unsigned long)&ktsb_descr[0] - KERNBASE); 1304 pa = kern_base + ((unsigned long)&ktsb_descr[0] - KERNBASE);
1322 1305
1323 func = HV_FAST_MMU_TSB_CTX0; 1306 ret = sun4v_mmu_tsb_ctx0(NUM_KTSB_DESCR, pa);
1324 arg0 = NUM_KTSB_DESCR; 1307 if (ret != 0) {
1325 arg1 = pa; 1308 prom_printf("hypervisor_mmu_tsb_ctx0[%lx]: "
1326 __asm__ __volatile__("ta %6" 1309 "errors with %lx\n", pa, ret);
1327 : "=&r" (func), "=&r" (arg0), "=&r" (arg1) 1310 prom_halt();
1328 : "0" (func), "1" (arg0), "2" (arg1), 1311 }
1329 "i" (HV_FAST_TRAP));
1330} 1312}
1331 1313
1332/* paging_init() sets up the page tables */ 1314/* paging_init() sets up the page tables */
@@ -1334,6 +1316,9 @@ void __cpuinit sun4v_ktsb_register(void)
1334extern void cheetah_ecache_flush_init(void); 1316extern void cheetah_ecache_flush_init(void);
1335extern void sun4v_patch_tlb_handlers(void); 1317extern void sun4v_patch_tlb_handlers(void);
1336 1318
1319extern void cpu_probe(void);
1320extern void central_probe(void);
1321
1337static unsigned long last_valid_pfn; 1322static unsigned long last_valid_pfn;
1338pgd_t swapper_pg_dir[2048]; 1323pgd_t swapper_pg_dir[2048];
1339 1324
@@ -1345,9 +1330,24 @@ void __init paging_init(void)
1345 unsigned long end_pfn, pages_avail, shift, phys_base; 1330 unsigned long end_pfn, pages_avail, shift, phys_base;
1346 unsigned long real_end, i; 1331 unsigned long real_end, i;
1347 1332
1333 /* These build time checkes make sure that the dcache_dirty_cpu()
1334 * page->flags usage will work.
1335 *
1336 * When a page gets marked as dcache-dirty, we store the
1337 * cpu number starting at bit 32 in the page->flags. Also,
1338 * functions like clear_dcache_dirty_cpu use the cpu mask
1339 * in 13-bit signed-immediate instruction fields.
1340 */
1341 BUILD_BUG_ON(FLAGS_RESERVED != 32);
1342 BUILD_BUG_ON(SECTIONS_WIDTH + NODES_WIDTH + ZONES_WIDTH +
1343 ilog2(roundup_pow_of_two(NR_CPUS)) > FLAGS_RESERVED);
1344 BUILD_BUG_ON(NR_CPUS > 4096);
1345
1348 kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL; 1346 kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL;
1349 kern_size = (unsigned long)&_end - (unsigned long)KERNBASE; 1347 kern_size = (unsigned long)&_end - (unsigned long)KERNBASE;
1350 1348
1349 sstate_booting();
1350
1351 /* Invalidate both kernel TSBs. */ 1351 /* Invalidate both kernel TSBs. */
1352 memset(swapper_tsb, 0x40, sizeof(swapper_tsb)); 1352 memset(swapper_tsb, 0x40, sizeof(swapper_tsb));
1353#ifndef CONFIG_DEBUG_PAGEALLOC 1353#ifndef CONFIG_DEBUG_PAGEALLOC
@@ -1416,8 +1416,13 @@ void __init paging_init(void)
1416 1416
1417 kernel_physical_mapping_init(); 1417 kernel_physical_mapping_init();
1418 1418
1419 real_setup_per_cpu_areas();
1420
1419 prom_build_devicetree(); 1421 prom_build_devicetree();
1420 1422
1423 if (tlb_type == hypervisor)
1424 sun4v_mdesc_init();
1425
1421 { 1426 {
1422 unsigned long zones_size[MAX_NR_ZONES]; 1427 unsigned long zones_size[MAX_NR_ZONES];
1423 unsigned long zholes_size[MAX_NR_ZONES]; 1428 unsigned long zholes_size[MAX_NR_ZONES];
@@ -1434,7 +1439,10 @@ void __init paging_init(void)
1434 zholes_size); 1439 zholes_size);
1435 } 1440 }
1436 1441
1437 device_scan(); 1442 prom_printf("Booting Linux...\n");
1443
1444 central_probe();
1445 cpu_probe();
1438} 1446}
1439 1447
1440static void __init taint_real_pages(void) 1448static void __init taint_real_pages(void)
diff --git a/arch/sparc64/prom/misc.c b/arch/sparc64/prom/misc.c
index 0b4213720d43..f3e0c14e9eef 100644
--- a/arch/sparc64/prom/misc.c
+++ b/arch/sparc64/prom/misc.c
@@ -15,6 +15,25 @@
15#include <asm/oplib.h> 15#include <asm/oplib.h>
16#include <asm/system.h> 16#include <asm/system.h>
17 17
18int prom_service_exists(const char *service_name)
19{
20 int err = p1275_cmd("test", P1275_ARG(0, P1275_ARG_IN_STRING) |
21 P1275_INOUT(1, 1), service_name);
22
23 if (err)
24 return 0;
25 return 1;
26}
27
28void prom_sun4v_guest_soft_state(void)
29{
30 const char *svc = "SUNW,soft-state-supported";
31
32 if (!prom_service_exists(svc))
33 return;
34 p1275_cmd(svc, P1275_INOUT(0, 0));
35}
36
18/* Reset and reboot the machine with the command 'bcommand'. */ 37/* Reset and reboot the machine with the command 'bcommand'. */
19void prom_reboot(const char *bcommand) 38void prom_reboot(const char *bcommand)
20{ 39{
diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S
index 87a4e4427d8d..24547741b205 100644
--- a/arch/um/kernel/dyn.lds.S
+++ b/arch/um/kernel/dyn.lds.S
@@ -62,7 +62,7 @@ SECTIONS
62 } =0x90909090 62 } =0x90909090
63 .plt : { *(.plt) } 63 .plt : { *(.plt) }
64 .text : { 64 .text : {
65 *(.text) 65 TEXT_TEXT
66 SCHED_TEXT 66 SCHED_TEXT
67 LOCK_TEXT 67 LOCK_TEXT
68 *(.fixup) 68 *(.fixup)
@@ -99,7 +99,8 @@ SECTIONS
99 *(.data.init_task) 99 *(.data.init_task)
100 . = ALIGN(KERNEL_STACK_SIZE); 100 . = ALIGN(KERNEL_STACK_SIZE);
101 *(.data.init_irqstack) 101 *(.data.init_irqstack)
102 *(.data .data.* .gnu.linkonce.d.*) 102 DATA_DATA
103 *(.data.* .gnu.linkonce.d.*)
103 SORT(CONSTRUCTORS) 104 SORT(CONSTRUCTORS)
104 } 105 }
105 .data1 : { *(.data1) } 106 .data1 : { *(.data1) }
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
index bc59f97e34d0..307b9373676b 100644
--- a/arch/um/kernel/uml.lds.S
+++ b/arch/um/kernel/uml.lds.S
@@ -37,7 +37,7 @@ SECTIONS
37 37
38 .text : 38 .text :
39 { 39 {
40 *(.text) 40 TEXT_TEXT
41 SCHED_TEXT 41 SCHED_TEXT
42 LOCK_TEXT 42 LOCK_TEXT
43 *(.fixup) 43 *(.fixup)
@@ -61,7 +61,7 @@ SECTIONS
61 *(.data.init_task) 61 *(.data.init_task)
62 . = ALIGN(KERNEL_STACK_SIZE); 62 . = ALIGN(KERNEL_STACK_SIZE);
63 *(.data.init_irqstack) 63 *(.data.init_irqstack)
64 *(.data) 64 DATA_DATA
65 *(.gnu.linkonce.d*) 65 *(.gnu.linkonce.d*)
66 CONSTRUCTORS 66 CONSTRUCTORS
67 } 67 }
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index 79471f85eb89..3fc13fa8729d 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -144,9 +144,7 @@ static int stop_ptraced_child(int pid, void *stack, int exitcode,
144 int exit_with = WEXITSTATUS(status); 144 int exit_with = WEXITSTATUS(status);
145 if (exit_with == 2) 145 if (exit_with == 2)
146 non_fatal("check_ptrace : child exited with status 2. " 146 non_fatal("check_ptrace : child exited with status 2. "
147 "Serious trouble happening! Try updating " 147 "\nDisabling SYSEMU support.\n");
148 "your host skas patch!\nDisabling SYSEMU "
149 "support.");
150 non_fatal("check_ptrace : child exited with exitcode %d, while " 148 non_fatal("check_ptrace : child exited with exitcode %d, while "
151 "expecting %d; status 0x%x\n", exit_with, 149 "expecting %d; status 0x%x\n", exit_with,
152 exitcode, status); 150 exitcode, status);
@@ -209,6 +207,7 @@ __uml_setup("nosysemu", nosysemu_cmd_param,
209static void __init check_sysemu(void) 207static void __init check_sysemu(void)
210{ 208{
211 void *stack; 209 void *stack;
210 unsigned long regs[MAX_REG_NR];
212 int pid, n, status, count=0; 211 int pid, n, status, count=0;
213 212
214 non_fatal("Checking syscall emulation patch for ptrace..."); 213 non_fatal("Checking syscall emulation patch for ptrace...");
@@ -225,11 +224,20 @@ static void __init check_sysemu(void)
225 fatal("check_sysemu : expected SIGTRAP, got status = %d", 224 fatal("check_sysemu : expected SIGTRAP, got status = %d",
226 status); 225 status);
227 226
228 n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET, 227 if(ptrace(PTRACE_GETREGS, pid, 0, regs) < 0)
229 os_getpid()); 228 fatal_perror("check_sysemu : PTRACE_GETREGS failed");
230 if(n < 0) 229 if(PT_SYSCALL_NR(regs) != __NR_getpid){
231 fatal_perror("check_sysemu : failed to modify system call " 230 non_fatal("check_sysemu got system call number %d, "
232 "return"); 231 "expected %d...", PT_SYSCALL_NR(regs), __NR_getpid);
232 goto fail;
233 }
234
235 n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET, os_getpid());
236 if(n < 0){
237 non_fatal("check_sysemu : failed to modify system call "
238 "return");
239 goto fail;
240 }
233 241
234 if (stop_ptraced_child(pid, stack, 0, 0) < 0) 242 if (stop_ptraced_child(pid, stack, 0, 0) < 0)
235 goto fail_stopped; 243 goto fail_stopped;
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig
index 5f54c1236c18..ace479ab273f 100644
--- a/arch/v850/Kconfig
+++ b/arch/v850/Kconfig
@@ -240,14 +240,6 @@ menu "Processor type and features"
240 config RESET_GUARD 240 config RESET_GUARD
241 bool "Reset Guard" 241 bool "Reset Guard"
242 242
243 config LARGE_ALLOCS
244 bool "Allow allocating large blocks (> 1MB) of memory"
245 help
246 Allow the slab memory allocator to keep chains for very large
247 memory sizes - upto 32MB. You may need this if your system has
248 a lot of RAM, and you need to able to allocate very large
249 contiguous chunks. If unsure, say N.
250
251source "mm/Kconfig" 243source "mm/Kconfig"
252 244
253endmenu 245endmenu
diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S
index 356308221251..6172599b4ce2 100644
--- a/arch/v850/kernel/vmlinux.lds.S
+++ b/arch/v850/kernel/vmlinux.lds.S
@@ -92,7 +92,7 @@
92#define TEXT_CONTENTS \ 92#define TEXT_CONTENTS \
93 _text = .; \ 93 _text = .; \
94 __stext = . ; \ 94 __stext = . ; \
95 *(.text) \ 95 TEXT_TEXT \
96 SCHED_TEXT \ 96 SCHED_TEXT \
97 *(.exit.text) /* 2.5 convention */ \ 97 *(.exit.text) /* 2.5 convention */ \
98 *(.text.exit) /* 2.4 convention */ \ 98 *(.text.exit) /* 2.4 convention */ \
@@ -113,7 +113,7 @@
113/* Kernel data segment. */ 113/* Kernel data segment. */
114#define DATA_CONTENTS \ 114#define DATA_CONTENTS \
115 __sdata = . ; \ 115 __sdata = . ; \
116 *(.data) \ 116 DATA_DATA \
117 *(.exit.data) /* 2.5 convention */ \ 117 *(.exit.data) /* 2.5 convention */ \
118 *(.data.exit) /* 2.4 convention */ \ 118 *(.data.exit) /* 2.4 convention */ \
119 . = ALIGN (16) ; \ 119 . = ALIGN (16) ; \
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig
index 145bb824b2a8..5ce94430c019 100644
--- a/arch/x86_64/Kconfig
+++ b/arch/x86_64/Kconfig
@@ -428,12 +428,15 @@ config NR_CPUS
428 memory in the static kernel configuration. 428 memory in the static kernel configuration.
429 429
430config HOTPLUG_CPU 430config HOTPLUG_CPU
431 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" 431 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
432 depends on SMP && HOTPLUG && EXPERIMENTAL 432 depends on SMP && HOTPLUG && EXPERIMENTAL
433 help 433 help
434 Say Y here to experiment with turning CPUs off and on. CPUs 434 Say Y here to experiment with turning CPUs off and on. CPUs
435 can be controlled through /sys/devices/system/cpu/cpu#. 435 can be controlled through /sys/devices/system/cpu/cpu#.
436 Say N if you want to disable CPU hotplug. 436 This is also required for suspend/hibernation on SMP systems.
437
438 Say N if you want to disable CPU hotplug and don't need to
439 suspend.
437 440
438config ARCH_ENABLE_MEMORY_HOTPLUG 441config ARCH_ENABLE_MEMORY_HOTPLUG
439 def_bool y 442 def_bool y
diff --git a/arch/x86_64/defconfig b/arch/x86_64/defconfig
index 941a7e3aa5fb..40178e5c3104 100644
--- a/arch/x86_64/defconfig
+++ b/arch/x86_64/defconfig
@@ -1,7 +1,7 @@
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-git3 3# Linux kernel version: 2.6.22-rc2
4# Tue May 1 07:30:48 2007 4# Mon May 21 13:23:40 2007
5# 5#
6CONFIG_X86_64=y 6CONFIG_X86_64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -53,6 +53,7 @@ CONFIG_POSIX_MQUEUE=y
53# CONFIG_AUDIT is not set 53# CONFIG_AUDIT is not set
54CONFIG_IKCONFIG=y 54CONFIG_IKCONFIG=y
55CONFIG_IKCONFIG_PROC=y 55CONFIG_IKCONFIG_PROC=y
56CONFIG_LOG_BUF_SHIFT=18
56# CONFIG_CPUSETS is not set 57# CONFIG_CPUSETS is not set
57CONFIG_SYSFS_DEPRECATED=y 58CONFIG_SYSFS_DEPRECATED=y
58# CONFIG_RELAY is not set 59# CONFIG_RELAY is not set
@@ -72,14 +73,19 @@ CONFIG_BUG=y
72CONFIG_ELF_CORE=y 73CONFIG_ELF_CORE=y
73CONFIG_BASE_FULL=y 74CONFIG_BASE_FULL=y
74CONFIG_FUTEX=y 75CONFIG_FUTEX=y
76CONFIG_ANON_INODES=y
75CONFIG_EPOLL=y 77CONFIG_EPOLL=y
78CONFIG_SIGNALFD=y
79CONFIG_TIMERFD=y
80CONFIG_EVENTFD=y
76CONFIG_SHMEM=y 81CONFIG_SHMEM=y
77CONFIG_SLAB=y
78CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_SLAB=y
84# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set
79CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
80# CONFIG_TINY_SHMEM is not set 87# CONFIG_TINY_SHMEM is not set
81CONFIG_BASE_SMALL=0 88CONFIG_BASE_SMALL=0
82# CONFIG_SLOB is not set
83 89
84# 90#
85# Loadable module support 91# Loadable module support
@@ -118,11 +124,11 @@ CONFIG_X86_PC=y
118# CONFIG_X86_VSMP is not set 124# CONFIG_X86_VSMP is not set
119# CONFIG_MK8 is not set 125# CONFIG_MK8 is not set
120# CONFIG_MPSC is not set 126# CONFIG_MPSC is not set
121CONFIG_MCORE2=y 127# CONFIG_MCORE2 is not set
122# CONFIG_GENERIC_CPU is not set 128CONFIG_GENERIC_CPU=y
123CONFIG_X86_L1_CACHE_BYTES=64 129CONFIG_X86_L1_CACHE_BYTES=128
124CONFIG_X86_L1_CACHE_SHIFT=6 130CONFIG_X86_L1_CACHE_SHIFT=7
125CONFIG_X86_INTERNODE_CACHE_BYTES=64 131CONFIG_X86_INTERNODE_CACHE_BYTES=128
126CONFIG_X86_TSC=y 132CONFIG_X86_TSC=y
127CONFIG_X86_GOOD_APIC=y 133CONFIG_X86_GOOD_APIC=y
128# CONFIG_MICROCODE is not set 134# CONFIG_MICROCODE is not set
@@ -174,7 +180,7 @@ CONFIG_X86_MCE_INTEL=y
174CONFIG_X86_MCE_AMD=y 180CONFIG_X86_MCE_AMD=y
175# CONFIG_KEXEC is not set 181# CONFIG_KEXEC is not set
176# CONFIG_CRASH_DUMP is not set 182# CONFIG_CRASH_DUMP is not set
177# CONFIG_RELOCATABLE is not set 183CONFIG_RELOCATABLE=y
178CONFIG_PHYSICAL_START=0x200000 184CONFIG_PHYSICAL_START=0x200000
179CONFIG_SECCOMP=y 185CONFIG_SECCOMP=y
180# CONFIG_CC_STACKPROTECTOR is not set 186# CONFIG_CC_STACKPROTECTOR is not set
@@ -242,7 +248,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
242# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set 248# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
243CONFIG_CPU_FREQ_GOV_USERSPACE=y 249CONFIG_CPU_FREQ_GOV_USERSPACE=y
244CONFIG_CPU_FREQ_GOV_ONDEMAND=y 250CONFIG_CPU_FREQ_GOV_ONDEMAND=y
245CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y 251# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
246 252
247# 253#
248# CPUFreq processor drivers 254# CPUFreq processor drivers
@@ -266,6 +272,7 @@ CONFIG_PCI_DIRECT=y
266CONFIG_PCI_MMCONFIG=y 272CONFIG_PCI_MMCONFIG=y
267CONFIG_PCIEPORTBUS=y 273CONFIG_PCIEPORTBUS=y
268CONFIG_PCIEAER=y 274CONFIG_PCIEAER=y
275CONFIG_ARCH_SUPPORTS_MSI=y
269CONFIG_PCI_MSI=y 276CONFIG_PCI_MSI=y
270# CONFIG_PCI_DEBUG is not set 277# CONFIG_PCI_DEBUG is not set
271# CONFIG_HT_IRQ is not set 278# CONFIG_HT_IRQ is not set
@@ -274,10 +281,6 @@ CONFIG_PCI_MSI=y
274# PCCARD (PCMCIA/CardBus) support 281# PCCARD (PCMCIA/CardBus) support
275# 282#
276# CONFIG_PCCARD is not set 283# CONFIG_PCCARD is not set
277
278#
279# PCI Hotplug Support
280#
281# CONFIG_HOTPLUG_PCI is not set 284# CONFIG_HOTPLUG_PCI is not set
282 285
283# 286#
@@ -395,7 +398,9 @@ CONFIG_IPV6_SIT=y
395# 398#
396# CONFIG_CFG80211 is not set 399# CONFIG_CFG80211 is not set
397# CONFIG_WIRELESS_EXT is not set 400# CONFIG_WIRELESS_EXT is not set
401# CONFIG_MAC80211 is not set
398# CONFIG_IEEE80211 is not set 402# CONFIG_IEEE80211 is not set
403# CONFIG_RFKILL is not set
399 404
400# 405#
401# Device Drivers 406# Device Drivers
@@ -458,14 +463,12 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
458# Misc devices 463# Misc devices
459# 464#
460# CONFIG_IBM_ASM is not set 465# CONFIG_IBM_ASM is not set
466# CONFIG_PHANTOM is not set
461# CONFIG_SGI_IOC4 is not set 467# CONFIG_SGI_IOC4 is not set
462# CONFIG_TIFM_CORE is not set 468# CONFIG_TIFM_CORE is not set
463# CONFIG_SONY_LAPTOP is not set 469# CONFIG_SONY_LAPTOP is not set
464# CONFIG_THINKPAD_ACPI is not set 470# CONFIG_THINKPAD_ACPI is not set
465 471# CONFIG_BLINK is not set
466#
467# ATA/ATAPI/MFM/RLL support
468#
469CONFIG_IDE=y 472CONFIG_IDE=y
470CONFIG_BLK_DEV_IDE=y 473CONFIG_BLK_DEV_IDE=y
471 474
@@ -482,6 +485,7 @@ CONFIG_BLK_DEV_IDECD=y
482# CONFIG_BLK_DEV_IDESCSI is not set 485# CONFIG_BLK_DEV_IDESCSI is not set
483CONFIG_BLK_DEV_IDEACPI=y 486CONFIG_BLK_DEV_IDEACPI=y
484# CONFIG_IDE_TASK_IOCTL is not set 487# CONFIG_IDE_TASK_IOCTL is not set
488CONFIG_IDE_PROC_FS=y
485 489
486# 490#
487# IDE chipset support/bugfixes 491# IDE chipset support/bugfixes
@@ -491,6 +495,7 @@ CONFIG_IDE_GENERIC=y
491# CONFIG_BLK_DEV_IDEPNP is not set 495# CONFIG_BLK_DEV_IDEPNP is not set
492CONFIG_BLK_DEV_IDEPCI=y 496CONFIG_BLK_DEV_IDEPCI=y
493# CONFIG_IDEPCI_SHARE_IRQ is not set 497# CONFIG_IDEPCI_SHARE_IRQ is not set
498CONFIG_IDEPCI_PCIBUS_ORDER=y
494# CONFIG_BLK_DEV_OFFBOARD is not set 499# CONFIG_BLK_DEV_OFFBOARD is not set
495# CONFIG_BLK_DEV_GENERIC is not set 500# CONFIG_BLK_DEV_GENERIC is not set
496# CONFIG_BLK_DEV_OPTI621 is not set 501# CONFIG_BLK_DEV_OPTI621 is not set
@@ -556,6 +561,7 @@ CONFIG_CHR_DEV_SG=y
556CONFIG_SCSI_CONSTANTS=y 561CONFIG_SCSI_CONSTANTS=y
557# CONFIG_SCSI_LOGGING is not set 562# CONFIG_SCSI_LOGGING is not set
558# CONFIG_SCSI_SCAN_ASYNC is not set 563# CONFIG_SCSI_SCAN_ASYNC is not set
564CONFIG_SCSI_WAIT_SCAN=m
559 565
560# 566#
561# SCSI Transports 567# SCSI Transports
@@ -579,15 +585,16 @@ CONFIG_SCSI_SAS_ATTRS=y
579CONFIG_SCSI_AIC79XX=y 585CONFIG_SCSI_AIC79XX=y
580CONFIG_AIC79XX_CMDS_PER_DEVICE=32 586CONFIG_AIC79XX_CMDS_PER_DEVICE=32
581CONFIG_AIC79XX_RESET_DELAY_MS=4000 587CONFIG_AIC79XX_RESET_DELAY_MS=4000
582# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
583# CONFIG_AIC79XX_DEBUG_ENABLE is not set 588# CONFIG_AIC79XX_DEBUG_ENABLE is not set
584CONFIG_AIC79XX_DEBUG_MASK=0 589CONFIG_AIC79XX_DEBUG_MASK=0
585# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set 590# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
586# CONFIG_SCSI_AIC94XX is not set 591# CONFIG_SCSI_AIC94XX is not set
587# CONFIG_SCSI_ARCMSR is not set 592# CONFIG_SCSI_ARCMSR is not set
588# CONFIG_MEGARAID_NEWGEN is not set 593CONFIG_MEGARAID_NEWGEN=y
594CONFIG_MEGARAID_MM=y
595CONFIG_MEGARAID_MAILBOX=y
589# CONFIG_MEGARAID_LEGACY is not set 596# CONFIG_MEGARAID_LEGACY is not set
590# CONFIG_MEGARAID_SAS is not set 597CONFIG_MEGARAID_SAS=y
591# CONFIG_SCSI_HPTIOP is not set 598# CONFIG_SCSI_HPTIOP is not set
592# CONFIG_SCSI_BUSLOGIC is not set 599# CONFIG_SCSI_BUSLOGIC is not set
593# CONFIG_SCSI_DMX3191D is not set 600# CONFIG_SCSI_DMX3191D is not set
@@ -609,12 +616,9 @@ CONFIG_AIC79XX_DEBUG_MASK=0
609# CONFIG_SCSI_DEBUG is not set 616# CONFIG_SCSI_DEBUG is not set
610# CONFIG_SCSI_ESP_CORE is not set 617# CONFIG_SCSI_ESP_CORE is not set
611# CONFIG_SCSI_SRP is not set 618# CONFIG_SCSI_SRP is not set
612
613#
614# Serial ATA (prod) and Parallel ATA (experimental) drivers
615#
616CONFIG_ATA=y 619CONFIG_ATA=y
617# CONFIG_ATA_NONSTANDARD is not set 620# CONFIG_ATA_NONSTANDARD is not set
621CONFIG_ATA_ACPI=y
618CONFIG_SATA_AHCI=y 622CONFIG_SATA_AHCI=y
619CONFIG_SATA_SVW=y 623CONFIG_SATA_SVW=y
620CONFIG_ATA_PIIX=y 624CONFIG_ATA_PIIX=y
@@ -631,7 +635,6 @@ CONFIG_SATA_SIL=y
631CONFIG_SATA_VIA=y 635CONFIG_SATA_VIA=y
632# CONFIG_SATA_VITESSE is not set 636# CONFIG_SATA_VITESSE is not set
633# CONFIG_SATA_INIC162X is not set 637# CONFIG_SATA_INIC162X is not set
634CONFIG_SATA_ACPI=y
635# CONFIG_PATA_ALI is not set 638# CONFIG_PATA_ALI is not set
636# CONFIG_PATA_AMD is not set 639# CONFIG_PATA_AMD is not set
637# CONFIG_PATA_ARTOP is not set 640# CONFIG_PATA_ARTOP is not set
@@ -681,6 +684,7 @@ CONFIG_BLK_DEV_DM=y
681# CONFIG_DM_MIRROR is not set 684# CONFIG_DM_MIRROR is not set
682# CONFIG_DM_ZERO is not set 685# CONFIG_DM_ZERO is not set
683# CONFIG_DM_MULTIPATH is not set 686# CONFIG_DM_MULTIPATH is not set
687# CONFIG_DM_DELAY is not set
684 688
685# 689#
686# Fusion MPT device support 690# Fusion MPT device support
@@ -688,13 +692,14 @@ CONFIG_BLK_DEV_DM=y
688CONFIG_FUSION=y 692CONFIG_FUSION=y
689CONFIG_FUSION_SPI=y 693CONFIG_FUSION_SPI=y
690# CONFIG_FUSION_FC is not set 694# CONFIG_FUSION_FC is not set
691# CONFIG_FUSION_SAS is not set 695CONFIG_FUSION_SAS=y
692CONFIG_FUSION_MAX_SGE=128 696CONFIG_FUSION_MAX_SGE=128
693# CONFIG_FUSION_CTL is not set 697# CONFIG_FUSION_CTL is not set
694 698
695# 699#
696# IEEE 1394 (FireWire) support 700# IEEE 1394 (FireWire) support
697# 701#
702# CONFIG_FIREWIRE is not set
698CONFIG_IEEE1394=y 703CONFIG_IEEE1394=y
699 704
700# 705#
@@ -705,10 +710,7 @@ CONFIG_IEEE1394=y
705# 710#
706# Controllers 711# Controllers
707# 712#
708 713# CONFIG_IEEE1394_PCILYNX is not set
709#
710# Texas Instruments PCILynx requires I2C
711#
712CONFIG_IEEE1394_OHCI1394=y 714CONFIG_IEEE1394_OHCI1394=y
713 715
714# 716#
@@ -725,11 +727,7 @@ CONFIG_IEEE1394_RAWIO=y
725# I2O device support 727# I2O device support
726# 728#
727# CONFIG_I2O is not set 729# CONFIG_I2O is not set
728 730# CONFIG_MACINTOSH_DRIVERS is not set
729#
730# Macintosh device drivers
731#
732# CONFIG_MAC_EMUMOUSEBTN is not set
733 731
734# 732#
735# Network device support 733# Network device support
@@ -745,10 +743,6 @@ CONFIG_TUN=y
745# ARCnet devices 743# ARCnet devices
746# 744#
747# CONFIG_ARCNET is not set 745# CONFIG_ARCNET is not set
748
749#
750# PHY device support
751#
752# CONFIG_PHYLIB is not set 746# CONFIG_PHYLIB is not set
753 747
754# 748#
@@ -779,8 +773,7 @@ CONFIG_TULIP=y
779# CONFIG_HP100 is not set 773# CONFIG_HP100 is not set
780CONFIG_NET_PCI=y 774CONFIG_NET_PCI=y
781# CONFIG_PCNET32 is not set 775# CONFIG_PCNET32 is not set
782CONFIG_AMD8111_ETH=y 776# CONFIG_AMD8111_ETH is not set
783# CONFIG_AMD8111E_NAPI is not set
784# CONFIG_ADAPTEC_STARFIRE is not set 777# CONFIG_ADAPTEC_STARFIRE is not set
785CONFIG_B44=y 778CONFIG_B44=y
786CONFIG_FORCEDETH=y 779CONFIG_FORCEDETH=y
@@ -802,10 +795,7 @@ CONFIG_8139TOO=y
802# CONFIG_SUNDANCE is not set 795# CONFIG_SUNDANCE is not set
803# CONFIG_VIA_RHINE is not set 796# CONFIG_VIA_RHINE is not set
804# CONFIG_SC92031 is not set 797# CONFIG_SC92031 is not set
805 798CONFIG_NETDEV_1000=y
806#
807# Ethernet (1000 Mbit)
808#
809# CONFIG_ACENIC is not set 799# CONFIG_ACENIC is not set
810# CONFIG_DL2K is not set 800# CONFIG_DL2K is not set
811CONFIG_E1000=y 801CONFIG_E1000=y
@@ -824,10 +814,7 @@ CONFIG_TIGON3=y
824CONFIG_BNX2=y 814CONFIG_BNX2=y
825# CONFIG_QLA3XXX is not set 815# CONFIG_QLA3XXX is not set
826# CONFIG_ATL1 is not set 816# CONFIG_ATL1 is not set
827 817CONFIG_NETDEV_10000=y
828#
829# Ethernet (10000 Mbit)
830#
831# CONFIG_CHELSIO_T1 is not set 818# CONFIG_CHELSIO_T1 is not set
832# CONFIG_CHELSIO_T3 is not set 819# CONFIG_CHELSIO_T3 is not set
833# CONFIG_IXGB is not set 820# CONFIG_IXGB is not set
@@ -835,6 +822,7 @@ CONFIG_S2IO=m
835# CONFIG_S2IO_NAPI is not set 822# CONFIG_S2IO_NAPI is not set
836# CONFIG_MYRI10GE is not set 823# CONFIG_MYRI10GE is not set
837# CONFIG_NETXEN_NIC is not set 824# CONFIG_NETXEN_NIC is not set
825# CONFIG_MLX4_CORE is not set
838 826
839# 827#
840# Token Ring devices 828# Token Ring devices
@@ -848,8 +836,14 @@ CONFIG_S2IO=m
848# CONFIG_WLAN_80211 is not set 836# CONFIG_WLAN_80211 is not set
849 837
850# 838#
851# Wan interfaces 839# USB Network Adapters
852# 840#
841# CONFIG_USB_CATC is not set
842# CONFIG_USB_KAWETH is not set
843# CONFIG_USB_PEGASUS is not set
844# CONFIG_USB_RTL8150 is not set
845# CONFIG_USB_USBNET_MII is not set
846# CONFIG_USB_USBNET is not set
853# CONFIG_WAN is not set 847# CONFIG_WAN is not set
854# CONFIG_FDDI is not set 848# CONFIG_FDDI is not set
855# CONFIG_HIPPI is not set 849# CONFIG_HIPPI is not set
@@ -902,9 +896,17 @@ CONFIG_KEYBOARD_ATKBD=y
902# CONFIG_KEYBOARD_STOWAWAY is not set 896# CONFIG_KEYBOARD_STOWAWAY is not set
903CONFIG_INPUT_MOUSE=y 897CONFIG_INPUT_MOUSE=y
904CONFIG_MOUSE_PS2=y 898CONFIG_MOUSE_PS2=y
899CONFIG_MOUSE_PS2_ALPS=y
900CONFIG_MOUSE_PS2_LOGIPS2PP=y
901CONFIG_MOUSE_PS2_SYNAPTICS=y
902CONFIG_MOUSE_PS2_LIFEBOOK=y
903CONFIG_MOUSE_PS2_TRACKPOINT=y
904# CONFIG_MOUSE_PS2_TOUCHKIT is not set
905# CONFIG_MOUSE_SERIAL is not set 905# CONFIG_MOUSE_SERIAL is not set
906# CONFIG_MOUSE_APPLETOUCH is not set
906# CONFIG_MOUSE_VSXXXAA is not set 907# CONFIG_MOUSE_VSXXXAA is not set
907# CONFIG_INPUT_JOYSTICK is not set 908# CONFIG_INPUT_JOYSTICK is not set
909# CONFIG_INPUT_TABLET is not set
908# CONFIG_INPUT_TOUCHSCREEN is not set 910# CONFIG_INPUT_TOUCHSCREEN is not set
909# CONFIG_INPUT_MISC is not set 911# CONFIG_INPUT_MISC is not set
910 912
@@ -954,10 +956,6 @@ CONFIG_LEGACY_PTY_COUNT=256
954# IPMI 956# IPMI
955# 957#
956# CONFIG_IPMI_HANDLER is not set 958# CONFIG_IPMI_HANDLER is not set
957
958#
959# Watchdog Cards
960#
961# CONFIG_WATCHDOG is not set 959# CONFIG_WATCHDOG is not set
962CONFIG_HW_RANDOM=y 960CONFIG_HW_RANDOM=y
963CONFIG_HW_RANDOM_INTEL=y 961CONFIG_HW_RANDOM_INTEL=y
@@ -965,7 +963,6 @@ CONFIG_HW_RANDOM_AMD=y
965# CONFIG_HW_RANDOM_GEODE is not set 963# CONFIG_HW_RANDOM_GEODE is not set
966# CONFIG_NVRAM is not set 964# CONFIG_NVRAM is not set
967CONFIG_RTC=y 965CONFIG_RTC=y
968# CONFIG_DTLK is not set
969# CONFIG_R3964 is not set 966# CONFIG_R3964 is not set
970# CONFIG_APPLICOM is not set 967# CONFIG_APPLICOM is not set
971CONFIG_AGP=y 968CONFIG_AGP=y
@@ -988,11 +985,58 @@ CONFIG_HPET_MMAP=y
988# 985#
989# CONFIG_TCG_TPM is not set 986# CONFIG_TCG_TPM is not set
990# CONFIG_TELCLOCK is not set 987# CONFIG_TELCLOCK is not set
991 988CONFIG_DEVPORT=y
992# 989CONFIG_I2C=m
993# I2C support 990CONFIG_I2C_BOARDINFO=y
994# 991CONFIG_I2C_CHARDEV=m
995# CONFIG_I2C is not set 992
993#
994# I2C Algorithms
995#
996# CONFIG_I2C_ALGOBIT is not set
997# CONFIG_I2C_ALGOPCF is not set
998# CONFIG_I2C_ALGOPCA is not set
999
1000#
1001# I2C Hardware Bus support
1002#
1003# CONFIG_I2C_ALI1535 is not set
1004# CONFIG_I2C_ALI1563 is not set
1005# CONFIG_I2C_ALI15X3 is not set
1006# CONFIG_I2C_AMD756 is not set
1007# CONFIG_I2C_AMD8111 is not set
1008# CONFIG_I2C_I801 is not set
1009# CONFIG_I2C_I810 is not set
1010# CONFIG_I2C_PIIX4 is not set
1011# CONFIG_I2C_NFORCE2 is not set
1012# CONFIG_I2C_OCORES is not set
1013# CONFIG_I2C_PARPORT_LIGHT is not set
1014# CONFIG_I2C_PROSAVAGE is not set
1015# CONFIG_I2C_SAVAGE4 is not set
1016# CONFIG_I2C_SIMTEC is not set
1017# CONFIG_I2C_SIS5595 is not set
1018# CONFIG_I2C_SIS630 is not set
1019# CONFIG_I2C_SIS96X is not set
1020# CONFIG_I2C_STUB is not set
1021# CONFIG_I2C_TINY_USB is not set
1022# CONFIG_I2C_VIA is not set
1023# CONFIG_I2C_VIAPRO is not set
1024# CONFIG_I2C_VOODOO3 is not set
1025
1026#
1027# Miscellaneous I2C Chip support
1028#
1029# CONFIG_SENSORS_DS1337 is not set
1030# CONFIG_SENSORS_DS1374 is not set
1031# CONFIG_SENSORS_EEPROM is not set
1032# CONFIG_SENSORS_PCF8574 is not set
1033# CONFIG_SENSORS_PCA9539 is not set
1034# CONFIG_SENSORS_PCF8591 is not set
1035# CONFIG_SENSORS_MAX6875 is not set
1036# CONFIG_I2C_DEBUG_CORE is not set
1037# CONFIG_I2C_DEBUG_ALGO is not set
1038# CONFIG_I2C_DEBUG_BUS is not set
1039# CONFIG_I2C_DEBUG_CHIP is not set
996 1040
997# 1041#
998# SPI support 1042# SPI support
@@ -1004,12 +1048,58 @@ CONFIG_HPET_MMAP=y
1004# Dallas's 1-wire bus 1048# Dallas's 1-wire bus
1005# 1049#
1006# CONFIG_W1 is not set 1050# CONFIG_W1 is not set
1007 1051CONFIG_HWMON=y
1008#
1009# Hardware Monitoring support
1010#
1011# CONFIG_HWMON is not set
1012# CONFIG_HWMON_VID is not set 1052# CONFIG_HWMON_VID is not set
1053# CONFIG_SENSORS_ABITUGURU is not set
1054# CONFIG_SENSORS_AD7418 is not set
1055# CONFIG_SENSORS_ADM1021 is not set
1056# CONFIG_SENSORS_ADM1025 is not set
1057# CONFIG_SENSORS_ADM1026 is not set
1058# CONFIG_SENSORS_ADM1029 is not set
1059# CONFIG_SENSORS_ADM1031 is not set
1060# CONFIG_SENSORS_ADM9240 is not set
1061# CONFIG_SENSORS_K8TEMP is not set
1062# CONFIG_SENSORS_ASB100 is not set
1063# CONFIG_SENSORS_ATXP1 is not set
1064# CONFIG_SENSORS_DS1621 is not set
1065# CONFIG_SENSORS_F71805F is not set
1066# CONFIG_SENSORS_FSCHER is not set
1067# CONFIG_SENSORS_FSCPOS is not set
1068# CONFIG_SENSORS_GL518SM is not set
1069# CONFIG_SENSORS_GL520SM is not set
1070CONFIG_SENSORS_CORETEMP=y
1071# CONFIG_SENSORS_IT87 is not set
1072# CONFIG_SENSORS_LM63 is not set
1073# CONFIG_SENSORS_LM75 is not set
1074# CONFIG_SENSORS_LM77 is not set
1075# CONFIG_SENSORS_LM78 is not set
1076# CONFIG_SENSORS_LM80 is not set
1077# CONFIG_SENSORS_LM83 is not set
1078# CONFIG_SENSORS_LM85 is not set
1079# CONFIG_SENSORS_LM87 is not set
1080# CONFIG_SENSORS_LM90 is not set
1081# CONFIG_SENSORS_LM92 is not set
1082# CONFIG_SENSORS_MAX1619 is not set
1083# CONFIG_SENSORS_MAX6650 is not set
1084# CONFIG_SENSORS_PC87360 is not set
1085# CONFIG_SENSORS_PC87427 is not set
1086# CONFIG_SENSORS_SIS5595 is not set
1087# CONFIG_SENSORS_SMSC47M1 is not set
1088# CONFIG_SENSORS_SMSC47M192 is not set
1089CONFIG_SENSORS_SMSC47B397=m
1090# CONFIG_SENSORS_VIA686A is not set
1091# CONFIG_SENSORS_VT1211 is not set
1092# CONFIG_SENSORS_VT8231 is not set
1093# CONFIG_SENSORS_W83781D is not set
1094# CONFIG_SENSORS_W83791D is not set
1095# CONFIG_SENSORS_W83792D is not set
1096# CONFIG_SENSORS_W83793 is not set
1097# CONFIG_SENSORS_W83L785TS is not set
1098# CONFIG_SENSORS_W83627HF is not set
1099# CONFIG_SENSORS_W83627EHF is not set
1100# CONFIG_SENSORS_HDAPS is not set
1101# CONFIG_SENSORS_APPLESMC is not set
1102# CONFIG_HWMON_DEBUG_CHIP is not set
1013 1103
1014# 1104#
1015# Multifunction device drivers 1105# Multifunction device drivers
@@ -1020,17 +1110,20 @@ CONFIG_HPET_MMAP=y
1020# Multimedia devices 1110# Multimedia devices
1021# 1111#
1022# CONFIG_VIDEO_DEV is not set 1112# CONFIG_VIDEO_DEV is not set
1023 1113# CONFIG_DVB_CORE is not set
1024# 1114CONFIG_DAB=y
1025# Digital Video Broadcasting Devices
1026#
1027# CONFIG_DVB is not set
1028# CONFIG_USB_DABUSB is not set 1115# CONFIG_USB_DABUSB is not set
1029 1116
1030# 1117#
1031# Graphics support 1118# Graphics support
1032# 1119#
1033# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1120# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1121
1122#
1123# Display device support
1124#
1125# CONFIG_DISPLAY_SUPPORT is not set
1126# CONFIG_VGASTATE is not set
1034# CONFIG_FB is not set 1127# CONFIG_FB is not set
1035 1128
1036# 1129#
@@ -1056,14 +1149,10 @@ CONFIG_SOUND=y
1056# Open Sound System 1149# Open Sound System
1057# 1150#
1058CONFIG_SOUND_PRIME=y 1151CONFIG_SOUND_PRIME=y
1059CONFIG_OBSOLETE_OSS=y 1152# CONFIG_OSS_OBSOLETE is not set
1060# CONFIG_SOUND_BT878 is not set
1061# CONFIG_SOUND_ES1371 is not set
1062CONFIG_SOUND_ICH=y
1063# CONFIG_SOUND_TRIDENT is not set 1153# CONFIG_SOUND_TRIDENT is not set
1064# CONFIG_SOUND_MSNDCLAS is not set 1154# CONFIG_SOUND_MSNDCLAS is not set
1065# CONFIG_SOUND_MSNDPIN is not set 1155# CONFIG_SOUND_MSNDPIN is not set
1066# CONFIG_SOUND_VIA82CXXX is not set
1067# CONFIG_SOUND_OSS is not set 1156# CONFIG_SOUND_OSS is not set
1068 1157
1069# 1158#
@@ -1142,37 +1231,10 @@ CONFIG_USB_STORAGE=y
1142# CONFIG_USB_LIBUSUAL is not set 1231# CONFIG_USB_LIBUSUAL is not set
1143 1232
1144# 1233#
1145# USB Input Devices
1146#
1147# CONFIG_USB_AIPTEK is not set
1148# CONFIG_USB_WACOM is not set
1149# CONFIG_USB_ACECAD is not set
1150# CONFIG_USB_KBTAB is not set
1151# CONFIG_USB_POWERMATE is not set
1152# CONFIG_USB_TOUCHSCREEN is not set
1153# CONFIG_USB_YEALINK is not set
1154# CONFIG_USB_XPAD is not set
1155# CONFIG_USB_ATI_REMOTE is not set
1156# CONFIG_USB_ATI_REMOTE2 is not set
1157# CONFIG_USB_KEYSPAN_REMOTE is not set
1158# CONFIG_USB_APPLETOUCH is not set
1159# CONFIG_USB_GTCO is not set
1160
1161#
1162# USB Imaging devices 1234# USB Imaging devices
1163# 1235#
1164# CONFIG_USB_MDC800 is not set 1236# CONFIG_USB_MDC800 is not set
1165# CONFIG_USB_MICROTEK is not set 1237# CONFIG_USB_MICROTEK is not set
1166
1167#
1168# USB Network Adapters
1169#
1170# CONFIG_USB_CATC is not set
1171# CONFIG_USB_KAWETH is not set
1172# CONFIG_USB_PEGASUS is not set
1173# CONFIG_USB_RTL8150 is not set
1174# CONFIG_USB_USBNET_MII is not set
1175# CONFIG_USB_USBNET is not set
1176CONFIG_USB_MON=y 1238CONFIG_USB_MON=y
1177 1239
1178# 1240#
@@ -1216,10 +1278,6 @@ CONFIG_USB_MON=y
1216# USB Gadget Support 1278# USB Gadget Support
1217# 1279#
1218# CONFIG_USB_GADGET is not set 1280# CONFIG_USB_GADGET is not set
1219
1220#
1221# MMC/SD Card support
1222#
1223# CONFIG_MMC is not set 1281# CONFIG_MMC is not set
1224 1282
1225# 1283#
@@ -1264,10 +1322,6 @@ CONFIG_USB_MON=y
1264# 1322#
1265 1323
1266# 1324#
1267# Auxiliary Display support
1268#
1269
1270#
1271# Virtualization 1325# Virtualization
1272# 1326#
1273# CONFIG_KVM is not set 1327# CONFIG_KVM is not set
@@ -1385,6 +1439,7 @@ CONFIG_LOCKD_V4=y
1385CONFIG_EXPORTFS=y 1439CONFIG_EXPORTFS=y
1386CONFIG_NFS_COMMON=y 1440CONFIG_NFS_COMMON=y
1387CONFIG_SUNRPC=y 1441CONFIG_SUNRPC=y
1442# CONFIG_SUNRPC_BIND34 is not set
1388# CONFIG_RPCSEC_GSS_KRB5 is not set 1443# CONFIG_RPCSEC_GSS_KRB5 is not set
1389# CONFIG_RPCSEC_GSS_SPKM3 is not set 1444# CONFIG_RPCSEC_GSS_SPKM3 is not set
1390# CONFIG_SMB_FS is not set 1445# CONFIG_SMB_FS is not set
@@ -1468,10 +1523,9 @@ CONFIG_DEBUG_FS=y
1468# CONFIG_HEADERS_CHECK is not set 1523# CONFIG_HEADERS_CHECK is not set
1469CONFIG_DEBUG_KERNEL=y 1524CONFIG_DEBUG_KERNEL=y
1470# CONFIG_DEBUG_SHIRQ is not set 1525# CONFIG_DEBUG_SHIRQ is not set
1471CONFIG_LOG_BUF_SHIFT=18
1472CONFIG_DETECT_SOFTLOCKUP=y 1526CONFIG_DETECT_SOFTLOCKUP=y
1473# CONFIG_SCHEDSTATS is not set 1527# CONFIG_SCHEDSTATS is not set
1474CONFIG_TIMER_STATS=y 1528# CONFIG_TIMER_STATS is not set
1475# CONFIG_DEBUG_SLAB is not set 1529# CONFIG_DEBUG_SLAB is not set
1476# CONFIG_DEBUG_RT_MUTEXES is not set 1530# CONFIG_DEBUG_RT_MUTEXES is not set
1477# CONFIG_RT_MUTEX_TESTER is not set 1531# CONFIG_RT_MUTEX_TESTER is not set
@@ -1487,6 +1541,8 @@ CONFIG_DEBUG_BUGVERBOSE=y
1487# CONFIG_DEBUG_VM is not set 1541# CONFIG_DEBUG_VM is not set
1488# CONFIG_DEBUG_LIST is not set 1542# CONFIG_DEBUG_LIST is not set
1489# CONFIG_FRAME_POINTER is not set 1543# CONFIG_FRAME_POINTER is not set
1544CONFIG_UNWIND_INFO=y
1545CONFIG_STACK_UNWIND=y
1490# CONFIG_FORCED_INLINING is not set 1546# CONFIG_FORCED_INLINING is not set
1491# CONFIG_RCU_TORTURE_TEST is not set 1547# CONFIG_RCU_TORTURE_TEST is not set
1492# CONFIG_LKDTM is not set 1548# CONFIG_LKDTM is not set
@@ -1513,9 +1569,11 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1513CONFIG_BITREVERSE=y 1569CONFIG_BITREVERSE=y
1514# CONFIG_CRC_CCITT is not set 1570# CONFIG_CRC_CCITT is not set
1515# CONFIG_CRC16 is not set 1571# CONFIG_CRC16 is not set
1572# CONFIG_CRC_ITU_T is not set
1516CONFIG_CRC32=y 1573CONFIG_CRC32=y
1517# CONFIG_LIBCRC32C is not set 1574# CONFIG_LIBCRC32C is not set
1518CONFIG_ZLIB_INFLATE=y 1575CONFIG_ZLIB_INFLATE=y
1519CONFIG_PLIST=y 1576CONFIG_PLIST=y
1520CONFIG_HAS_IOMEM=y 1577CONFIG_HAS_IOMEM=y
1521CONFIG_HAS_IOPORT=y 1578CONFIG_HAS_IOPORT=y
1579CONFIG_HAS_DMA=y
diff --git a/arch/x86_64/ia32/mmap32.c b/arch/x86_64/ia32/mmap32.c
index 079f4132575c..e4b84b4a417a 100644
--- a/arch/x86_64/ia32/mmap32.c
+++ b/arch/x86_64/ia32/mmap32.c
@@ -29,6 +29,7 @@
29#include <linux/personality.h> 29#include <linux/personality.h>
30#include <linux/mm.h> 30#include <linux/mm.h>
31#include <linux/random.h> 31#include <linux/random.h>
32#include <linux/sched.h>
32 33
33/* 34/*
34 * Top of mmap area (just below the process stack). 35 * Top of mmap area (just below the process stack).
diff --git a/arch/x86_64/kernel/early_printk.c b/arch/x86_64/kernel/early_printk.c
index 56eaa259782b..296d2b0c5d88 100644
--- a/arch/x86_64/kernel/early_printk.c
+++ b/arch/x86_64/kernel/early_printk.c
@@ -91,9 +91,9 @@ static int early_serial_putc(unsigned char ch)
91static void early_serial_write(struct console *con, const char *s, unsigned n) 91static void early_serial_write(struct console *con, const char *s, unsigned n)
92{ 92{
93 while (*s && n-- > 0) { 93 while (*s && n-- > 0) {
94 early_serial_putc(*s);
95 if (*s == '\n') 94 if (*s == '\n')
96 early_serial_putc('\r'); 95 early_serial_putc('\r');
96 early_serial_putc(*s);
97 s++; 97 s++;
98 } 98 }
99} 99}
diff --git a/arch/x86_64/kernel/k8.c b/arch/x86_64/kernel/k8.c
index bc11b32e8b4d..7377ccb21335 100644
--- a/arch/x86_64/kernel/k8.c
+++ b/arch/x86_64/kernel/k8.c
@@ -39,10 +39,10 @@ int cache_k8_northbridges(void)
39{ 39{
40 int i; 40 int i;
41 struct pci_dev *dev; 41 struct pci_dev *dev;
42
42 if (num_k8_northbridges) 43 if (num_k8_northbridges)
43 return 0; 44 return 0;
44 45
45 num_k8_northbridges = 0;
46 dev = NULL; 46 dev = NULL;
47 while ((dev = next_k8_northbridge(dev)) != NULL) 47 while ((dev = next_k8_northbridge(dev)) != NULL)
48 num_k8_northbridges++; 48 num_k8_northbridges++;
@@ -52,6 +52,11 @@ int cache_k8_northbridges(void)
52 if (!k8_northbridges) 52 if (!k8_northbridges)
53 return -ENOMEM; 53 return -ENOMEM;
54 54
55 if (!num_k8_northbridges) {
56 k8_northbridges[0] = NULL;
57 return 0;
58 }
59
55 flush_words = kmalloc(num_k8_northbridges * sizeof(u32), GFP_KERNEL); 60 flush_words = kmalloc(num_k8_northbridges * sizeof(u32), GFP_KERNEL);
56 if (!flush_words) { 61 if (!flush_words) {
57 kfree(k8_northbridges); 62 kfree(k8_northbridges);
diff --git a/arch/x86_64/kernel/reboot.c b/arch/x86_64/kernel/reboot.c
index c116b54d422e..7503068e788d 100644
--- a/arch/x86_64/kernel/reboot.c
+++ b/arch/x86_64/kernel/reboot.c
@@ -8,6 +8,7 @@
8#include <linux/string.h> 8#include <linux/string.h>
9#include <linux/pm.h> 9#include <linux/pm.h>
10#include <linux/kdebug.h> 10#include <linux/kdebug.h>
11#include <linux/sched.h>
11#include <asm/io.h> 12#include <asm/io.h>
12#include <asm/delay.h> 13#include <asm/delay.h>
13#include <asm/hw_irq.h> 14#include <asm/hw_irq.h>
diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S
index 88cfa50b424d..dbccfda8364f 100644
--- a/arch/x86_64/kernel/vmlinux.lds.S
+++ b/arch/x86_64/kernel/vmlinux.lds.S
@@ -31,7 +31,7 @@ SECTIONS
31 *(.bootstrap.text) 31 *(.bootstrap.text)
32 _stext = .; 32 _stext = .;
33 /* Then the rest */ 33 /* Then the rest */
34 *(.text) 34 TEXT_TEXT
35 SCHED_TEXT 35 SCHED_TEXT
36 LOCK_TEXT 36 LOCK_TEXT
37 KPROBES_TEXT 37 KPROBES_TEXT
@@ -55,7 +55,7 @@ SECTIONS
55 . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ 55 . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */
56 /* Data */ 56 /* Data */
57 .data : AT(ADDR(.data) - LOAD_OFFSET) { 57 .data : AT(ADDR(.data) - LOAD_OFFSET) {
58 *(.data) 58 DATA_DATA
59 CONSTRUCTORS 59 CONSTRUCTORS
60 } :data 60 } :data
61 61
diff --git a/arch/x86_64/kernel/vsyscall.c b/arch/x86_64/kernel/vsyscall.c
index 51d4c6fa88c8..57660d58d500 100644
--- a/arch/x86_64/kernel/vsyscall.c
+++ b/arch/x86_64/kernel/vsyscall.c
@@ -175,10 +175,13 @@ int __vsyscall(0) vgettimeofday(struct timeval * tv, struct timezone * tz)
175 * unlikely */ 175 * unlikely */
176time_t __vsyscall(1) vtime(time_t *t) 176time_t __vsyscall(1) vtime(time_t *t)
177{ 177{
178 struct timeval tv;
178 time_t result; 179 time_t result;
179 if (unlikely(!__vsyscall_gtod_data.sysctl_enabled)) 180 if (unlikely(!__vsyscall_gtod_data.sysctl_enabled))
180 return time_syscall(t); 181 return time_syscall(t);
181 result = __vsyscall_gtod_data.wall_time_sec; 182
183 vgettimeofday(&tv, 0);
184 result = tv.tv_sec;
182 if (t) 185 if (t)
183 *t = result; 186 *t = result;
184 return result; 187 return result;
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S
index 4fbd66a52a88..4b7b4ff79973 100644
--- a/arch/xtensa/kernel/vmlinux.lds.S
+++ b/arch/xtensa/kernel/vmlinux.lds.S
@@ -84,7 +84,8 @@ SECTIONS
84 { 84 {
85 /* The .head.text section must be the first section! */ 85 /* The .head.text section must be the first section! */
86 *(.head.text) 86 *(.head.text)
87 *(.literal .text) 87 *(.literal)
88 TEXT_TEXT
88 *(.srom.text) 89 *(.srom.text)
89 VMLINUX_SYMBOL(__sched_text_start) = .; 90 VMLINUX_SYMBOL(__sched_text_start) = .;
90 *(.sched.literal .sched.text) 91 *(.sched.literal .sched.text)
@@ -144,7 +145,8 @@ SECTIONS
144 _fdata = .; 145 _fdata = .;
145 .data : 146 .data :
146 { 147 {
147 *(.data) CONSTRUCTORS 148 DATA_DATA
149 CONSTRUCTORS
148 . = ALIGN(XCHAL_ICACHE_LINESIZE); 150 . = ALIGN(XCHAL_ICACHE_LINESIZE);
149 *(.data.cacheline_aligned) 151 *(.data.cacheline_aligned)
150 } 152 }