aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-11 05:49:34 -0400
committerIngo Molnar <mingo@elte.hu>2009-03-11 05:49:34 -0400
commitd95c3578120e5bc4784069439f00ccb1b5f87717 (patch)
treec819de31de3983f3d69f223ede07667ff23bf7da /arch
parentba1d755a36f66101aa88ac9ebb54694def6ec38d (diff)
parent78b020d035074fc3aa4d017353bb2c32e2aff56f (diff)
Merge branch 'x86/core' into cpus4096
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig3
-rw-r--r--arch/alpha/Kconfig1
-rw-r--r--arch/alpha/include/asm/Kbuild1
-rw-r--r--arch/alpha/include/asm/bug.h17
-rw-r--r--arch/alpha/include/asm/byteorder.h1
-rw-r--r--arch/alpha/include/asm/dma-mapping.h2
-rw-r--r--arch/alpha/include/asm/machvec.h4
-rw-r--r--arch/alpha/include/asm/pgalloc.h7
-rw-r--r--arch/alpha/include/asm/rtc.h12
-rw-r--r--arch/alpha/include/asm/statfs.h2
-rw-r--r--arch/alpha/include/asm/swab.h2
-rw-r--r--arch/alpha/kernel/.gitignore1
-rw-r--r--arch/alpha/kernel/core_marvel.c10
-rw-r--r--arch/alpha/kernel/entry.S10
-rw-r--r--arch/alpha/kernel/irq_srm.c2
-rw-r--r--arch/alpha/kernel/machvec_impl.h5
-rw-r--r--arch/alpha/kernel/osf_sys.c113
-rw-r--r--arch/alpha/kernel/pci-noop.c3
-rw-r--r--arch/alpha/kernel/process.c8
-rw-r--r--arch/alpha/kernel/proto.h2
-rw-r--r--arch/alpha/kernel/signal.c18
-rw-r--r--arch/alpha/kernel/smp.c11
-rw-r--r--arch/alpha/kernel/sys_jensen.c2
-rw-r--r--arch/alpha/kernel/sys_marvel.c56
-rw-r--r--arch/alpha/kernel/sys_nautilus.c4
-rw-r--r--arch/alpha/kernel/systbls.S54
-rw-r--r--arch/alpha/kernel/time.c10
-rw-r--r--arch/alpha/mm/init.c27
-rw-r--r--arch/arm/common/clkdev.c25
-rw-r--r--arch/arm/configs/afeb9260_defconfig6
-rw-r--r--arch/arm/configs/ams_delta_defconfig2
-rw-r--r--arch/arm/configs/at91cap9adk_defconfig4
-rw-r--r--arch/arm/configs/at91rm9200dk_defconfig2
-rw-r--r--arch/arm/configs/at91rm9200ek_defconfig2
-rw-r--r--arch/arm/configs/at91sam9260ek_defconfig4
-rw-r--r--arch/arm/configs/at91sam9261ek_defconfig6
-rw-r--r--arch/arm/configs/at91sam9263ek_defconfig6
-rw-r--r--arch/arm/configs/at91sam9g20ek_defconfig2
-rw-r--r--arch/arm/configs/at91sam9rlek_defconfig6
-rw-r--r--arch/arm/configs/ateb9200_defconfig2
-rw-r--r--arch/arm/configs/badge4_defconfig2
-rw-r--r--arch/arm/configs/cam60_defconfig4
-rw-r--r--arch/arm/configs/cm_x300_defconfig4
-rw-r--r--arch/arm/configs/colibri_defconfig2
-rw-r--r--arch/arm/configs/corgi_defconfig6
-rw-r--r--arch/arm/configs/csb337_defconfig2
-rw-r--r--arch/arm/configs/csb637_defconfig2
-rw-r--r--arch/arm/configs/ecbat91_defconfig4
-rw-r--r--arch/arm/configs/ep93xx_defconfig2
-rw-r--r--arch/arm/configs/ezx_defconfig4
-rw-r--r--arch/arm/configs/footbridge_defconfig2
-rw-r--r--arch/arm/configs/iop13xx_defconfig2
-rw-r--r--arch/arm/configs/iop32x_defconfig2
-rw-r--r--arch/arm/configs/iop33x_defconfig2
-rw-r--r--arch/arm/configs/ixp2000_defconfig2
-rw-r--r--arch/arm/configs/ixp23xx_defconfig2
-rw-r--r--arch/arm/configs/ixp4xx_defconfig2
-rw-r--r--arch/arm/configs/kafa_defconfig2
-rw-r--r--arch/arm/configs/kirkwood_defconfig6
-rw-r--r--arch/arm/configs/loki_defconfig4
-rw-r--r--arch/arm/configs/magician_defconfig2
-rw-r--r--arch/arm/configs/msm_defconfig2
-rw-r--r--arch/arm/configs/mv78xx0_defconfig2
-rw-r--r--arch/arm/configs/n770_defconfig4
-rw-r--r--arch/arm/configs/neocore926_defconfig6
-rw-r--r--arch/arm/configs/neponset_defconfig2
-rw-r--r--arch/arm/configs/omap3_beagle_defconfig4
-rw-r--r--arch/arm/configs/omap3_pandora_defconfig6
-rw-r--r--arch/arm/configs/omap_2430sdp_defconfig4
-rw-r--r--arch/arm/configs/omap_apollon_2420_defconfig2
-rw-r--r--arch/arm/configs/omap_generic_1510_defconfig2
-rw-r--r--arch/arm/configs/omap_generic_1610_defconfig2
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig4
-rw-r--r--arch/arm/configs/omap_h4_2420_defconfig2
-rw-r--r--arch/arm/configs/omap_innovator_1510_defconfig2
-rw-r--r--arch/arm/configs/omap_ldp_defconfig6
-rw-r--r--arch/arm/configs/omap_osk_5912_defconfig2
-rw-r--r--arch/arm/configs/onearm_defconfig2
-rw-r--r--arch/arm/configs/orion5x_defconfig4
-rw-r--r--arch/arm/configs/overo_defconfig6
-rw-r--r--arch/arm/configs/palmz71_defconfig2
-rw-r--r--arch/arm/configs/palmz72_defconfig6
-rw-r--r--arch/arm/configs/pcm027_defconfig2
-rw-r--r--arch/arm/configs/pcm038_defconfig4
-rw-r--r--arch/arm/configs/picotux200_defconfig2
-rw-r--r--arch/arm/configs/pnx4008_defconfig2
-rw-r--r--arch/arm/configs/qil-a9260_defconfig6
-rw-r--r--arch/arm/configs/rpc_defconfig2
-rw-r--r--arch/arm/configs/s3c2410_defconfig4
-rw-r--r--arch/arm/configs/s3c6400_defconfig4
-rw-r--r--arch/arm/configs/spitz_defconfig6
-rw-r--r--arch/arm/configs/sx1_defconfig2
-rw-r--r--arch/arm/configs/trizeps4_defconfig2
-rw-r--r--arch/arm/configs/usb-a9260_defconfig2
-rw-r--r--arch/arm/configs/usb-a9263_defconfig2
-rw-r--r--arch/arm/configs/versatile_defconfig2
-rw-r--r--arch/arm/configs/viper_defconfig4
-rw-r--r--arch/arm/configs/xm_x2xx_defconfig4
-rw-r--r--arch/arm/configs/yl9200_defconfig2
-rw-r--r--arch/arm/include/asm/Kbuild1
-rw-r--r--arch/arm/include/asm/a.out.h2
-rw-r--r--arch/arm/include/asm/byteorder.h2
-rw-r--r--arch/arm/include/asm/setup.h2
-rw-r--r--arch/arm/include/asm/swab.h2
-rw-r--r--arch/arm/kernel/calls.S2
-rw-r--r--arch/arm/kernel/elf.c4
-rw-r--r--arch/arm/kernel/entry-armv.S1
-rw-r--r--arch/arm/kernel/entry-common.S2
-rw-r--r--arch/arm/kernel/irq.c2
-rw-r--r--arch/arm/kernel/machine_kexec.c4
-rw-r--r--arch/arm/kernel/setup.c13
-rw-r--r--arch/arm/kernel/vmlinux.lds.S1
-rw-r--r--arch/arm/mach-at91/at91cap9_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9261_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c107
-rw-r--r--arch/arm/mach-at91/at91sam9rl_devices.c2
-rw-r--r--arch/arm/mach-at91/gpio.c15
-rw-r--r--arch/arm/mach-at91/include/mach/board.h4
-rw-r--r--arch/arm/mach-at91/pm.c1
-rw-r--r--arch/arm/mach-davinci/board-evm.c6
-rw-r--r--arch/arm/mach-davinci/clock.c5
-rw-r--r--arch/arm/mach-davinci/usb.c25
-rw-r--r--arch/arm/mach-ep93xx/include/mach/gesbc9312.h3
-rw-r--r--arch/arm/mach-ep93xx/include/mach/hardware.h1
-rw-r--r--arch/arm/mach-integrator/clock.h0
-rw-r--r--arch/arm/mach-kirkwood/irq.c2
-rw-r--r--arch/arm/mach-msm/board-halibut.c1
-rw-r--r--arch/arm/mach-mv78xx0/irq.c2
-rw-r--r--arch/arm/mach-omap1/board-h2.c45
-rw-r--r--arch/arm/mach-omap1/board-h3.c50
-rw-r--r--arch/arm/mach-omap1/board-innovator.c39
-rw-r--r--arch/arm/mach-omap1/board-nokia770.c8
-rw-r--r--arch/arm/mach-omap1/board-osk.c43
-rw-r--r--arch/arm/mach-omap1/board-palmte.c29
-rw-r--r--arch/arm/mach-omap1/board-palmtt.c41
-rw-r--r--arch/arm/mach-omap1/board-palmz71.c37
-rw-r--r--arch/arm/mach-omap1/board-sx1.c39
-rw-r--r--arch/arm/mach-omap1/board-voiceblue.c1
-rw-r--r--arch/arm/mach-omap1/devices.c2
-rw-r--r--arch/arm/mach-omap1/mcbsp.c99
-rw-r--r--arch/arm/mach-omap2/board-apollon.c64
-rw-r--r--arch/arm/mach-omap2/board-ldp.c4
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c9
-rw-r--r--arch/arm/mach-omap2/clock.c16
-rw-r--r--arch/arm/mach-omap2/devices.c11
-rw-r--r--arch/arm/mach-omap2/id.c6
-rw-r--r--arch/arm/mach-omap2/irq.c1
-rw-r--r--arch/arm/mach-omap2/mcbsp.c146
-rw-r--r--arch/arm/mach-omap2/sleep24xx.S3
-rw-r--r--arch/arm/mach-omap2/timer-gp.c3
-rw-r--r--arch/arm/mach-orion5x/irq.c2
-rw-r--r--arch/arm/mach-pxa/dma.c18
-rw-r--r--arch/arm/mach-pxa/include/mach/regs-ac97.h2
-rw-r--r--arch/arm/mach-pxa/include/mach/regs-ssp.h3
-rw-r--r--arch/arm/mach-pxa/pxa300.c4
-rw-r--r--arch/arm/mach-pxa/pxa320.c2
-rw-r--r--arch/arm/mach-rpc/riscpc.c6
-rw-r--r--arch/arm/mach-sa1100/generic.c2
-rw-r--r--arch/arm/mm/abort-ev6.S3
-rw-r--r--arch/arm/mm/copypage-v4mc.c2
-rw-r--r--arch/arm/mm/fault-armv.c5
-rw-r--r--arch/arm/mm/ioremap.c11
-rw-r--r--arch/arm/mm/mmu.c3
-rw-r--r--arch/arm/plat-mxc/include/mach/ipu.h181
-rw-r--r--arch/arm/plat-mxc/include/mach/irqs.h10
-rw-r--r--arch/arm/plat-mxc/include/mach/mmc.h36
-rw-r--r--arch/arm/plat-mxc/include/mach/mx3fb.h38
-rw-r--r--arch/arm/plat-omap/devices.c7
-rw-r--r--arch/arm/plat-omap/dma.c16
-rw-r--r--arch/arm/plat-omap/gpio.c3
-rw-r--r--arch/arm/plat-omap/include/mach/aic23.h116
-rw-r--r--arch/arm/plat-omap/include/mach/board-h3.h4
-rw-r--r--arch/arm/plat-omap/include/mach/cpu.h1
-rw-r--r--arch/arm/plat-omap/include/mach/gpio.h10
-rw-r--r--arch/arm/plat-omap/include/mach/mcbsp.h17
-rw-r--r--arch/arm/plat-omap/include/mach/mmc.h10
-rw-r--r--arch/arm/plat-omap/mcbsp.c56
-rw-r--r--arch/arm/plat-omap/usb.c14
-rw-r--r--arch/arm/plat-orion/gpio.c73
-rw-r--r--arch/arm/plat-orion/include/plat/gpio.h3
-rw-r--r--arch/arm/plat-s3c64xx/irq-eint.c2
-rw-r--r--arch/avr32/Kconfig2
-rw-r--r--arch/avr32/configs/atngw100_defconfig6
-rw-r--r--arch/avr32/configs/atngw100_evklcd100_defconfig4
-rw-r--r--arch/avr32/configs/atngw100_evklcd101_defconfig4
-rw-r--r--arch/avr32/configs/atstk1002_defconfig6
-rw-r--r--arch/avr32/configs/atstk1003_defconfig6
-rw-r--r--arch/avr32/configs/atstk1004_defconfig2
-rw-r--r--arch/avr32/configs/atstk1006_defconfig6
-rw-r--r--arch/avr32/configs/favr-32_defconfig6
-rw-r--r--arch/avr32/configs/hammerhead_defconfig6
-rw-r--r--arch/avr32/configs/mimc200_defconfig6
-rw-r--r--arch/avr32/include/asm/Kbuild1
-rw-r--r--arch/avr32/include/asm/byteorder.h1
-rw-r--r--arch/avr32/include/asm/swab.h2
-rw-r--r--arch/avr32/mach-at32ap/include/mach/board.h1
-rw-r--r--arch/blackfin/Kconfig59
-rw-r--r--arch/blackfin/Kconfig.debug6
-rw-r--r--arch/blackfin/Makefile106
-rw-r--r--arch/blackfin/configs/BF518F-EZBRD_defconfig74
-rw-r--r--arch/blackfin/configs/BF526-EZBRD_defconfig8
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig12
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig8
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig12
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig22
-rw-r--r--arch/blackfin/configs/BF538-EZKIT_defconfig12
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig14
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig8
-rw-r--r--arch/blackfin/configs/BlackStamp_defconfig8
-rw-r--r--arch/blackfin/configs/CM-BF527_defconfig445
-rw-r--r--arch/blackfin/configs/CM-BF548_defconfig10
-rw-r--r--arch/blackfin/configs/H8606_defconfig2
-rw-r--r--arch/blackfin/configs/IP0X_defconfig4
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig6
-rw-r--r--arch/blackfin/configs/SRV1_defconfig8
-rw-r--r--arch/blackfin/configs/TCM-BF537_defconfig2
-rw-r--r--arch/blackfin/include/asm/Kbuild2
-rw-r--r--arch/blackfin/include/asm/bfin_sport.h45
-rw-r--r--arch/blackfin/include/asm/byteorder.h1
-rw-r--r--arch/blackfin/include/asm/checksum.h34
-rw-r--r--arch/blackfin/include/asm/delay.h35
-rw-r--r--arch/blackfin/include/asm/gpio.h58
-rw-r--r--arch/blackfin/include/asm/ipipe.h100
-rw-r--r--arch/blackfin/include/asm/ipipe_base.h12
-rw-r--r--arch/blackfin/include/asm/irq.h36
-rw-r--r--arch/blackfin/include/asm/kgdb.h53
-rw-r--r--arch/blackfin/include/asm/mem_init.h2
-rw-r--r--arch/blackfin/include/asm/pda.h1
-rw-r--r--arch/blackfin/include/asm/percpu.h10
-rw-r--r--arch/blackfin/include/asm/reboot.h2
-rw-r--r--arch/blackfin/include/asm/swab.h2
-rw-r--r--arch/blackfin/include/asm/thread_info.h2
-rw-r--r--arch/blackfin/kernel/Makefile6
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c7
-rw-r--r--arch/blackfin/kernel/bfin_gpio.c578
-rw-r--r--arch/blackfin/kernel/cplb-mpu/cplbinit.c4
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbinit.c4
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbmgr.c12
-rw-r--r--arch/blackfin/kernel/ipipe.c176
-rw-r--r--arch/blackfin/kernel/irqchip.c22
-rw-r--r--arch/blackfin/kernel/kgdb_test.c9
-rw-r--r--arch/blackfin/kernel/ptrace.c5
-rw-r--r--arch/blackfin/kernel/reboot.c30
-rw-r--r--arch/blackfin/kernel/setup.c22
-rw-r--r--arch/blackfin/kernel/time.c5
-rw-r--r--arch/blackfin/kernel/traps.c39
-rw-r--r--arch/blackfin/mach-bf518/boards/ezbrd.c76
-rw-r--r--arch/blackfin/mach-bf518/include/mach/anomaly.h17
-rw-r--r--arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h4
-rw-r--r--arch/blackfin/mach-bf518/include/mach/portmux.h2
-rw-r--r--arch/blackfin/mach-bf527/boards/cm_bf527.c44
-rw-r--r--arch/blackfin/mach-bf527/boards/ezbrd.c42
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c18
-rw-r--r--arch/blackfin/mach-bf527/include/mach/anomaly.h6
-rw-r--r--arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h4
-rw-r--r--arch/blackfin/mach-bf527/include/mach/portmux.h2
-rw-r--r--arch/blackfin/mach-bf533/boards/Kconfig5
-rw-r--r--arch/blackfin/mach-bf533/boards/Makefile1
-rw-r--r--arch/blackfin/mach-bf533/boards/blackstamp.c28
-rw-r--r--arch/blackfin/mach-bf533/boards/cm_bf533.c24
-rw-r--r--arch/blackfin/mach-bf533/boards/generic_board.c126
-rw-r--r--arch/blackfin/mach-bf533/boards/ip0x.c13
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c4
-rw-r--r--arch/blackfin/mach-bf533/include/mach/anomaly.h7
-rw-r--r--arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h2
-rw-r--r--arch/blackfin/mach-bf533/include/mach/portmux.h5
-rw-r--r--arch/blackfin/mach-bf537/boards/Kconfig5
-rw-r--r--arch/blackfin/mach-bf537/boards/Makefile1
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537.c32
-rw-r--r--arch/blackfin/mach-bf537/boards/generic_board.c739
-rw-r--r--arch/blackfin/mach-bf537/boards/minotaur.c32
-rw-r--r--arch/blackfin/mach-bf537/boards/pnav10.c34
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c14
-rw-r--r--arch/blackfin/mach-bf537/boards/tcm_bf537.c34
-rw-r--r--arch/blackfin/mach-bf537/include/mach/anomaly.h7
-rw-r--r--arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h4
-rw-r--r--arch/blackfin/mach-bf537/include/mach/portmux.h1
-rw-r--r--arch/blackfin/mach-bf538/include/mach/anomaly.h6
-rw-r--r--arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h4
-rw-r--r--arch/blackfin/mach-bf538/include/mach/portmux.h1
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c4
-rw-r--r--arch/blackfin/mach-bf548/include/mach/anomaly.h23
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bf548.h12
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h22
-rw-r--r--arch/blackfin/mach-bf548/include/mach/gpio.h12
-rw-r--r--arch/blackfin/mach-bf548/include/mach/irq.h8
-rw-r--r--arch/blackfin/mach-bf548/include/mach/portmux.h1
-rw-r--r--arch/blackfin/mach-bf561/boards/Kconfig5
-rw-r--r--arch/blackfin/mach-bf561/boards/Makefile1
-rw-r--r--arch/blackfin/mach-bf561/boards/cm_bf561.c15
-rw-r--r--arch/blackfin/mach-bf561/boards/generic_board.c113
-rw-r--r--arch/blackfin/mach-bf561/include/mach/anomaly.h7
-rw-r--r--arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h2
-rw-r--r--arch/blackfin/mach-bf561/include/mach/defBF561.h2
-rw-r--r--arch/blackfin/mach-bf561/include/mach/portmux.h1
-rw-r--r--arch/blackfin/mach-common/arch_checks.c9
-rw-r--r--arch/blackfin/mach-common/cache.S22
-rw-r--r--arch/blackfin/mach-common/clocks-init.c5
-rw-r--r--arch/blackfin/mach-common/dpmc_modes.S24
-rw-r--r--arch/blackfin/mach-common/entry.S70
-rw-r--r--arch/blackfin/mach-common/head.S84
-rw-r--r--arch/blackfin/mach-common/interrupt.S14
-rw-r--r--arch/blackfin/mach-common/ints-priority.c137
-rw-r--r--arch/blackfin/mach-common/pm.c11
-rw-r--r--arch/blackfin/mach-common/smp.c6
-rw-r--r--arch/blackfin/mm/init.c2
-rw-r--r--arch/cris/arch-v10/kernel/entry.S2
-rw-r--r--arch/cris/arch-v32/kernel/entry.S2
-rw-r--r--arch/cris/include/arch-v10/arch/swab.h (renamed from arch/cris/include/arch-v10/arch/byteorder.h)16
-rw-r--r--arch/cris/include/arch-v32/arch/byteorder.h20
-rw-r--r--arch/cris/include/arch-v32/arch/swab.h24
-rw-r--r--arch/cris/include/asm/byteorder.h19
-rw-r--r--arch/cris/include/asm/swab.h8
-rw-r--r--arch/frv/mm/dma-alloc.c2
-rw-r--r--arch/h8300/include/asm/Kbuild1
-rw-r--r--arch/h8300/include/asm/byteorder.h1
-rw-r--r--arch/h8300/include/asm/swab.h2
-rw-r--r--arch/h8300/kernel/syscalls.S2
-rw-r--r--arch/ia64/Kconfig19
-rw-r--r--arch/ia64/configs/bigsur_defconfig2
-rw-r--r--arch/ia64/configs/generic_defconfig2
-rw-r--r--arch/ia64/configs/xen_domu_defconfig1601
-rw-r--r--arch/ia64/configs/zx1_defconfig2
-rw-r--r--arch/ia64/hp/common/sba_iommu.c12
-rw-r--r--arch/ia64/ia32/ia32_entry.S2
-rw-r--r--arch/ia64/include/asm/Kbuild1
-rw-r--r--arch/ia64/include/asm/byteorder.h1
-rw-r--r--arch/ia64/include/asm/dma-mapping.h2
-rw-r--r--arch/ia64/include/asm/fpu.h2
-rw-r--r--arch/ia64/include/asm/gcc_intrin.h1
-rw-r--r--arch/ia64/include/asm/intrinsics.h1
-rw-r--r--arch/ia64/include/asm/kvm.h7
-rw-r--r--arch/ia64/include/asm/machvec.h7
-rw-r--r--arch/ia64/include/asm/machvec_init.h1
-rw-r--r--arch/ia64/include/asm/machvec_sn2.h2
-rw-r--r--arch/ia64/include/asm/mmzone.h4
-rw-r--r--arch/ia64/include/asm/percpu.h4
-rw-r--r--arch/ia64/include/asm/sn/bte.h2
-rw-r--r--arch/ia64/include/asm/swab.h2
-rw-r--r--arch/ia64/include/asm/unistd.h2
-rw-r--r--arch/ia64/include/asm/uv/uv.h13
-rw-r--r--arch/ia64/kernel/acpi.c4
-rw-r--r--arch/ia64/kernel/entry.S2
-rw-r--r--arch/ia64/kernel/iosapic.c2
-rw-r--r--arch/ia64/kernel/kprobes.c2
-rw-r--r--arch/ia64/kernel/smpboot.c5
-rw-r--r--arch/ia64/kernel/sys_ia64.c2
-rw-r--r--arch/ia64/kernel/unaligned.c6
-rw-r--r--arch/ia64/kernel/unwind.c2
-rw-r--r--arch/ia64/kernel/vmlinux.lds.S1
-rw-r--r--arch/ia64/kvm/kvm-ia64.c4
-rw-r--r--arch/ia64/kvm/process.c17
-rw-r--r--arch/ia64/mm/numa.c4
-rw-r--r--arch/ia64/pci/pci.c27
-rw-r--r--arch/ia64/sn/kernel/bte.c7
-rw-r--r--arch/ia64/sn/kernel/io_acpi_init.c2
-rw-r--r--arch/ia64/sn/kernel/io_init.c2
-rw-r--r--arch/ia64/sn/pci/pci_dma.c6
-rw-r--r--arch/ia64/sn/pci/pcibr/pcibr_dma.c7
-rw-r--r--arch/ia64/xen/Kconfig3
-rw-r--r--arch/ia64/xen/time.c4
-rw-r--r--arch/ia64/xen/xen_pv_ops.c4
-rw-r--r--arch/m32r/configs/m32104ut_defconfig2
-rw-r--r--arch/m68k/atari/ataints.c16
-rw-r--r--arch/m68k/atari/atakeyb.c4
-rw-r--r--arch/m68k/atari/config.c2
-rw-r--r--arch/m68k/atari/debug.c22
-rw-r--r--arch/m68k/atari/time.c8
-rw-r--r--arch/m68k/include/asm/Kbuild (renamed from arch/m68knommu/include/asm/Kbuild)3
-rw-r--r--arch/m68k/include/asm/MC68328.h (renamed from arch/m68knommu/include/asm/MC68328.h)0
-rw-r--r--arch/m68k/include/asm/MC68332.h (renamed from arch/m68knommu/include/asm/MC68332.h)0
-rw-r--r--arch/m68k/include/asm/MC68EZ328.h (renamed from arch/m68knommu/include/asm/MC68EZ328.h)0
-rw-r--r--arch/m68k/include/asm/MC68VZ328.h (renamed from arch/m68knommu/include/asm/MC68VZ328.h)0
-rw-r--r--arch/m68k/include/asm/a.out-core.h67
-rw-r--r--arch/m68k/include/asm/a.out.h20
-rw-r--r--arch/m68k/include/asm/adb_iop.h44
-rw-r--r--arch/m68k/include/asm/amigahw.h350
-rw-r--r--arch/m68k/include/asm/amigaints.h113
-rw-r--r--arch/m68k/include/asm/amigayle.h107
-rw-r--r--arch/m68k/include/asm/amipcmcia.h110
-rw-r--r--arch/m68k/include/asm/anchor.h (renamed from arch/m68knommu/include/asm/anchor.h)0
-rw-r--r--arch/m68k/include/asm/apollodma.h248
-rw-r--r--arch/m68k/include/asm/apollohw.h108
-rw-r--r--arch/m68k/include/asm/atafd.h12
-rw-r--r--arch/m68k/include/asm/atafdreg.h79
-rw-r--r--arch/m68k/include/asm/atari_joystick.h22
-rw-r--r--arch/m68k/include/asm/atari_stdma.h22
-rw-r--r--arch/m68k/include/asm/atari_stram.h17
-rw-r--r--arch/m68k/include/asm/atarihw.h807
-rw-r--r--arch/m68k/include/asm/atariints.h204
-rw-r--r--arch/m68k/include/asm/atarikb.h46
-rw-r--r--arch/m68k/include/asm/atomic.h5
-rw-r--r--arch/m68k/include/asm/atomic_mm.h196
-rw-r--r--arch/m68k/include/asm/atomic_no.h (renamed from arch/m68knommu/include/asm/atomic.h)0
-rw-r--r--arch/m68k/include/asm/auxvec.h (renamed from arch/m68knommu/include/asm/auxvec.h)0
-rw-r--r--arch/m68k/include/asm/bitops.h5
-rw-r--r--arch/m68k/include/asm/bitops_mm.h464
-rw-r--r--arch/m68k/include/asm/bitops_no.h (renamed from arch/m68knommu/include/asm/bitops.h)0
-rw-r--r--arch/m68k/include/asm/blinken.h32
-rw-r--r--arch/m68k/include/asm/bootinfo.h5
-rw-r--r--arch/m68k/include/asm/bootinfo_mm.h378
-rw-r--r--arch/m68k/include/asm/bootinfo_no.h (renamed from arch/m68knommu/include/asm/bootinfo.h)0
-rw-r--r--arch/m68k/include/asm/bootstd.h (renamed from arch/m68knommu/include/asm/bootstd.h)0
-rw-r--r--arch/m68k/include/asm/bug.h5
-rw-r--r--arch/m68k/include/asm/bug_mm.h29
-rw-r--r--arch/m68k/include/asm/bug_no.h (renamed from arch/m68knommu/include/asm/bug.h)0
-rw-r--r--arch/m68k/include/asm/bugs.h5
-rw-r--r--arch/m68k/include/asm/bugs_mm.h14
-rw-r--r--arch/m68k/include/asm/bugs_no.h (renamed from arch/m68knommu/include/asm/bugs.h)0
-rw-r--r--arch/m68k/include/asm/bvme6000hw.h150
-rw-r--r--arch/m68k/include/asm/byteorder.h6
-rw-r--r--arch/m68k/include/asm/cache.h5
-rw-r--r--arch/m68k/include/asm/cache_mm.h11
-rw-r--r--arch/m68k/include/asm/cache_no.h (renamed from arch/m68knommu/include/asm/cache.h)0
-rw-r--r--arch/m68k/include/asm/cachectl.h14
-rw-r--r--arch/m68k/include/asm/cacheflush.h5
-rw-r--r--arch/m68k/include/asm/cacheflush_mm.h156
-rw-r--r--arch/m68k/include/asm/cacheflush_no.h (renamed from arch/m68knommu/include/asm/cacheflush.h)11
-rw-r--r--arch/m68k/include/asm/checksum.h5
-rw-r--r--arch/m68k/include/asm/checksum_mm.h148
-rw-r--r--arch/m68k/include/asm/checksum_no.h (renamed from arch/m68knommu/include/asm/checksum.h)0
-rw-r--r--arch/m68k/include/asm/coldfire.h (renamed from arch/m68knommu/include/asm/coldfire.h)0
-rw-r--r--arch/m68k/include/asm/commproc.h (renamed from arch/m68knommu/include/asm/commproc.h)0
-rw-r--r--arch/m68k/include/asm/contregs.h53
-rw-r--r--arch/m68k/include/asm/cputime.h6
-rw-r--r--arch/m68k/include/asm/current.h5
-rw-r--r--arch/m68k/include/asm/current_mm.h6
-rw-r--r--arch/m68k/include/asm/current_no.h (renamed from arch/m68knommu/include/asm/current.h)0
-rw-r--r--arch/m68k/include/asm/dbg.h (renamed from arch/m68knommu/include/asm/dbg.h)0
-rw-r--r--arch/m68k/include/asm/delay.h5
-rw-r--r--arch/m68k/include/asm/delay_mm.h57
-rw-r--r--arch/m68k/include/asm/delay_no.h (renamed from arch/m68knommu/include/asm/delay.h)0
-rw-r--r--arch/m68k/include/asm/device.h (renamed from arch/m68knommu/include/asm/device.h)0
-rw-r--r--arch/m68k/include/asm/div64.h5
-rw-r--r--arch/m68k/include/asm/div64_mm.h28
-rw-r--r--arch/m68k/include/asm/div64_no.h (renamed from arch/m68knommu/include/asm/div64.h)0
-rw-r--r--arch/m68k/include/asm/dma-mapping.h5
-rw-r--r--arch/m68k/include/asm/dma-mapping_mm.h112
-rw-r--r--arch/m68k/include/asm/dma-mapping_no.h (renamed from arch/m68knommu/include/asm/dma-mapping.h)4
-rw-r--r--arch/m68k/include/asm/dma.h5
-rw-r--r--arch/m68k/include/asm/dma_mm.h16
-rw-r--r--arch/m68k/include/asm/dma_no.h (renamed from arch/m68knommu/include/asm/dma.h)0
-rw-r--r--arch/m68k/include/asm/dsp56k.h35
-rw-r--r--arch/m68k/include/asm/dvma.h240
-rw-r--r--arch/m68k/include/asm/elf.h5
-rw-r--r--arch/m68k/include/asm/elf_mm.h119
-rw-r--r--arch/m68k/include/asm/elf_no.h (renamed from arch/m68knommu/include/asm/elf.h)0
-rw-r--r--arch/m68k/include/asm/elia.h (renamed from arch/m68knommu/include/asm/elia.h)0
-rw-r--r--arch/m68k/include/asm/emergency-restart.h (renamed from arch/m68knommu/include/asm/emergency-restart.h)0
-rw-r--r--arch/m68k/include/asm/entry.h5
-rw-r--r--arch/m68k/include/asm/entry_mm.h137
-rw-r--r--arch/m68k/include/asm/entry_no.h (renamed from arch/m68knommu/include/asm/entry.h)0
-rw-r--r--arch/m68k/include/asm/errno.h6
-rw-r--r--arch/m68k/include/asm/fb.h5
-rw-r--r--arch/m68k/include/asm/fb_mm.h34
-rw-r--r--arch/m68k/include/asm/fb_no.h (renamed from arch/m68knommu/include/asm/fb.h)0
-rw-r--r--arch/m68k/include/asm/fbio.h330
-rw-r--r--arch/m68k/include/asm/fcntl.h11
-rw-r--r--arch/m68k/include/asm/flat.h (renamed from arch/m68knommu/include/asm/flat.h)0
-rw-r--r--arch/m68k/include/asm/floppy.h254
-rw-r--r--arch/m68k/include/asm/fpu.h5
-rw-r--r--arch/m68k/include/asm/fpu_mm.h21
-rw-r--r--arch/m68k/include/asm/fpu_no.h (renamed from arch/m68knommu/include/asm/fpu.h)0
-rw-r--r--arch/m68k/include/asm/futex.h (renamed from arch/m68knommu/include/asm/futex.h)0
-rw-r--r--arch/m68k/include/asm/hardirq.h5
-rw-r--r--arch/m68k/include/asm/hardirq_mm.h16
-rw-r--r--arch/m68k/include/asm/hardirq_no.h (renamed from arch/m68knommu/include/asm/hardirq.h)0
-rw-r--r--arch/m68k/include/asm/hp300hw.h25
-rw-r--r--arch/m68k/include/asm/hw_irq.h5
-rw-r--r--arch/m68k/include/asm/hw_irq_mm.h6
-rw-r--r--arch/m68k/include/asm/hw_irq_no.h (renamed from arch/m68knommu/include/asm/hw_irq.h)0
-rw-r--r--arch/m68k/include/asm/hwtest.h15
-rw-r--r--arch/m68k/include/asm/ide.h130
-rw-r--r--arch/m68k/include/asm/idprom.h27
-rw-r--r--arch/m68k/include/asm/intersil.h48
-rw-r--r--arch/m68k/include/asm/io.h5
-rw-r--r--arch/m68k/include/asm/io_mm.h369
-rw-r--r--arch/m68k/include/asm/io_no.h (renamed from arch/m68knommu/include/asm/io.h)0
-rw-r--r--arch/m68k/include/asm/ioctl.h (renamed from arch/m68knommu/include/asm/ioctl.h)0
-rw-r--r--arch/m68k/include/asm/ioctls.h84
-rw-r--r--arch/m68k/include/asm/ipcbuf.h29
-rw-r--r--arch/m68k/include/asm/irq.h5
-rw-r--r--arch/m68k/include/asm/irq_mm.h125
-rw-r--r--arch/m68k/include/asm/irq_no.h (renamed from arch/m68knommu/include/asm/irq.h)0
-rw-r--r--arch/m68k/include/asm/irq_regs.h (renamed from arch/m68knommu/include/asm/irq_regs.h)0
-rw-r--r--arch/m68k/include/asm/kdebug.h (renamed from arch/m68knommu/include/asm/kdebug.h)0
-rw-r--r--arch/m68k/include/asm/kmap_types.h5
-rw-r--r--arch/m68k/include/asm/kmap_types_mm.h21
-rw-r--r--arch/m68k/include/asm/kmap_types_no.h (renamed from arch/m68knommu/include/asm/kmap_types.h)0
-rw-r--r--arch/m68k/include/asm/linkage.h7
-rw-r--r--arch/m68k/include/asm/local.h6
-rw-r--r--arch/m68k/include/asm/m5206sim.h (renamed from arch/m68knommu/include/asm/m5206sim.h)0
-rw-r--r--arch/m68k/include/asm/m520xsim.h (renamed from arch/m68knommu/include/asm/m520xsim.h)0
-rw-r--r--arch/m68k/include/asm/m523xsim.h (renamed from arch/m68knommu/include/asm/m523xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5249sim.h (renamed from arch/m68knommu/include/asm/m5249sim.h)0
-rw-r--r--arch/m68k/include/asm/m5272sim.h (renamed from arch/m68knommu/include/asm/m5272sim.h)0
-rw-r--r--arch/m68k/include/asm/m527xsim.h (renamed from arch/m68knommu/include/asm/m527xsim.h)0
-rw-r--r--arch/m68k/include/asm/m528xsim.h (renamed from arch/m68knommu/include/asm/m528xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5307sim.h (renamed from arch/m68knommu/include/asm/m5307sim.h)0
-rw-r--r--arch/m68k/include/asm/m532xsim.h (renamed from arch/m68knommu/include/asm/m532xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5407sim.h (renamed from arch/m68knommu/include/asm/m5407sim.h)0
-rw-r--r--arch/m68k/include/asm/m68360.h (renamed from arch/m68knommu/include/asm/m68360.h)0
-rw-r--r--arch/m68k/include/asm/m68360_enet.h (renamed from arch/m68knommu/include/asm/m68360_enet.h)0
-rw-r--r--arch/m68k/include/asm/m68360_pram.h (renamed from arch/m68knommu/include/asm/m68360_pram.h)0
-rw-r--r--arch/m68k/include/asm/m68360_quicc.h (renamed from arch/m68knommu/include/asm/m68360_quicc.h)0
-rw-r--r--arch/m68k/include/asm/m68360_regs.h (renamed from arch/m68knommu/include/asm/m68360_regs.h)0
-rw-r--r--arch/m68k/include/asm/mac_asc.h27
-rw-r--r--arch/m68k/include/asm/mac_baboon.h32
-rw-r--r--arch/m68k/include/asm/mac_iop.h162
-rw-r--r--arch/m68k/include/asm/mac_mouse.h23
-rw-r--r--arch/m68k/include/asm/mac_oss.h94
-rw-r--r--arch/m68k/include/asm/mac_psc.h248
-rw-r--r--arch/m68k/include/asm/mac_via.h267
-rw-r--r--arch/m68k/include/asm/machdep.h5
-rw-r--r--arch/m68k/include/asm/machdep_mm.h35
-rw-r--r--arch/m68k/include/asm/machdep_no.h (renamed from arch/m68knommu/include/asm/machdep.h)0
-rw-r--r--arch/m68k/include/asm/machines.h85
-rw-r--r--arch/m68k/include/asm/machw.h49
-rw-r--r--arch/m68k/include/asm/macintosh.h135
-rw-r--r--arch/m68k/include/asm/macints.h155
-rw-r--r--arch/m68k/include/asm/math-emu.h315
-rw-r--r--arch/m68k/include/asm/mc146818rtc.h5
-rw-r--r--arch/m68k/include/asm/mc146818rtc_mm.h26
-rw-r--r--arch/m68k/include/asm/mc146818rtc_no.h (renamed from arch/m68knommu/include/asm/mc146818rtc.h)0
-rw-r--r--arch/m68k/include/asm/mcfcache.h (renamed from arch/m68knommu/include/asm/mcfcache.h)0
-rw-r--r--arch/m68k/include/asm/mcfdma.h (renamed from arch/m68knommu/include/asm/mcfdma.h)0
-rw-r--r--arch/m68k/include/asm/mcfmbus.h (renamed from arch/m68knommu/include/asm/mcfmbus.h)0
-rw-r--r--arch/m68k/include/asm/mcfne.h (renamed from arch/m68knommu/include/asm/mcfne.h)0
-rw-r--r--arch/m68k/include/asm/mcfpci.h (renamed from arch/m68knommu/include/asm/mcfpci.h)0
-rw-r--r--arch/m68k/include/asm/mcfpit.h (renamed from arch/m68knommu/include/asm/mcfpit.h)0
-rw-r--r--arch/m68k/include/asm/mcfsim.h (renamed from arch/m68knommu/include/asm/mcfsim.h)0
-rw-r--r--arch/m68k/include/asm/mcfsmc.h (renamed from arch/m68knommu/include/asm/mcfsmc.h)0
-rw-r--r--arch/m68k/include/asm/mcftimer.h (renamed from arch/m68knommu/include/asm/mcftimer.h)0
-rw-r--r--arch/m68k/include/asm/mcfuart.h (renamed from arch/m68knommu/include/asm/mcfuart.h)0
-rw-r--r--arch/m68k/include/asm/mcfwdebug.h (renamed from arch/m68knommu/include/asm/mcfwdebug.h)0
-rw-r--r--arch/m68k/include/asm/md.h13
-rw-r--r--arch/m68k/include/asm/mman.h17
-rw-r--r--arch/m68k/include/asm/mmu.h5
-rw-r--r--arch/m68k/include/asm/mmu_context.h5
-rw-r--r--arch/m68k/include/asm/mmu_context_mm.h154
-rw-r--r--arch/m68k/include/asm/mmu_context_no.h (renamed from arch/m68knommu/include/asm/mmu_context.h)0
-rw-r--r--arch/m68k/include/asm/mmu_mm.h7
-rw-r--r--arch/m68k/include/asm/mmu_no.h (renamed from arch/m68knommu/include/asm/mmu.h)0
-rw-r--r--arch/m68k/include/asm/mmzone.h9
-rw-r--r--arch/m68k/include/asm/module.h5
-rw-r--r--arch/m68k/include/asm/module_mm.h39
-rw-r--r--arch/m68k/include/asm/module_no.h (renamed from arch/m68knommu/include/asm/module.h)0
-rw-r--r--arch/m68k/include/asm/motorola_pgalloc.h109
-rw-r--r--arch/m68k/include/asm/motorola_pgtable.h291
-rw-r--r--arch/m68k/include/asm/movs.h55
-rw-r--r--arch/m68k/include/asm/msgbuf.h31
-rw-r--r--arch/m68k/include/asm/mutex.h (renamed from arch/m68knommu/include/asm/mutex.h)0
-rw-r--r--arch/m68k/include/asm/mvme147hw.h113
-rw-r--r--arch/m68k/include/asm/mvme16xhw.h111
-rw-r--r--arch/m68k/include/asm/nettel.h (renamed from arch/m68knommu/include/asm/nettel.h)0
-rw-r--r--arch/m68k/include/asm/nubus.h46
-rw-r--r--arch/m68k/include/asm/openprom.h312
-rw-r--r--arch/m68k/include/asm/oplib.h291
-rw-r--r--arch/m68k/include/asm/page.h5
-rw-r--r--arch/m68k/include/asm/page_mm.h228
-rw-r--r--arch/m68k/include/asm/page_no.h (renamed from arch/m68knommu/include/asm/page.h)0
-rw-r--r--arch/m68k/include/asm/page_offset.h5
-rw-r--r--arch/m68k/include/asm/page_offset_mm.h8
-rw-r--r--arch/m68k/include/asm/page_offset_no.h (renamed from arch/m68knommu/include/asm/page_offset.h)0
-rw-r--r--arch/m68k/include/asm/param.h5
-rw-r--r--arch/m68k/include/asm/param_mm.h22
-rw-r--r--arch/m68k/include/asm/param_no.h (renamed from arch/m68knommu/include/asm/param.h)0
-rw-r--r--arch/m68k/include/asm/parport.h26
-rw-r--r--arch/m68k/include/asm/pci.h5
-rw-r--r--arch/m68k/include/asm/pci_mm.h12
-rw-r--r--arch/m68k/include/asm/pci_no.h (renamed from arch/m68knommu/include/asm/pci.h)2
-rw-r--r--arch/m68k/include/asm/percpu.h6
-rw-r--r--arch/m68k/include/asm/pgalloc.h5
-rw-r--r--arch/m68k/include/asm/pgalloc_mm.h19
-rw-r--r--arch/m68k/include/asm/pgalloc_no.h (renamed from arch/m68knommu/include/asm/pgalloc.h)0
-rw-r--r--arch/m68k/include/asm/pgtable.h5
-rw-r--r--arch/m68k/include/asm/pgtable_mm.h166
-rw-r--r--arch/m68k/include/asm/pgtable_no.h (renamed from arch/m68knommu/include/asm/pgtable.h)0
-rw-r--r--arch/m68k/include/asm/poll.h9
-rw-r--r--arch/m68k/include/asm/posix_types.h61
-rw-r--r--arch/m68k/include/asm/processor.h5
-rw-r--r--arch/m68k/include/asm/processor_mm.h130
-rw-r--r--arch/m68k/include/asm/processor_no.h (renamed from arch/m68knommu/include/asm/processor.h)0
-rw-r--r--arch/m68k/include/asm/ptrace.h5
-rw-r--r--arch/m68k/include/asm/ptrace_mm.h80
-rw-r--r--arch/m68k/include/asm/ptrace_no.h (renamed from arch/m68knommu/include/asm/ptrace.h)0
-rw-r--r--arch/m68k/include/asm/q40_master.h69
-rw-r--r--arch/m68k/include/asm/q40ints.h29
-rw-r--r--arch/m68k/include/asm/quicc_simple.h (renamed from arch/m68knommu/include/asm/quicc_simple.h)0
-rw-r--r--arch/m68k/include/asm/raw_io.h347
-rw-r--r--arch/m68k/include/asm/resource.h6
-rw-r--r--arch/m68k/include/asm/rtc.h76
-rw-r--r--arch/m68k/include/asm/sbus.h45
-rw-r--r--arch/m68k/include/asm/scatterlist.h5
-rw-r--r--arch/m68k/include/asm/scatterlist_mm.h23
-rw-r--r--arch/m68k/include/asm/scatterlist_no.h (renamed from arch/m68knommu/include/asm/scatterlist.h)0
-rw-r--r--arch/m68k/include/asm/sections.h6
-rw-r--r--arch/m68k/include/asm/segment.h5
-rw-r--r--arch/m68k/include/asm/segment_mm.h57
-rw-r--r--arch/m68k/include/asm/segment_no.h (renamed from arch/m68knommu/include/asm/segment.h)0
-rw-r--r--arch/m68k/include/asm/sembuf.h25
-rw-r--r--arch/m68k/include/asm/serial.h33
-rw-r--r--arch/m68k/include/asm/setup.h5
-rw-r--r--arch/m68k/include/asm/setup_mm.h376
-rw-r--r--arch/m68k/include/asm/setup_no.h (renamed from arch/m68knommu/include/asm/setup.h)2
-rw-r--r--arch/m68k/include/asm/shm.h31
-rw-r--r--arch/m68k/include/asm/shmbuf.h42
-rw-r--r--arch/m68k/include/asm/shmparam.h6
-rw-r--r--arch/m68k/include/asm/sigcontext.h5
-rw-r--r--arch/m68k/include/asm/sigcontext_mm.h19
-rw-r--r--arch/m68k/include/asm/sigcontext_no.h (renamed from arch/m68knommu/include/asm/sigcontext.h)0
-rw-r--r--arch/m68k/include/asm/siginfo.h5
-rw-r--r--arch/m68k/include/asm/siginfo_mm.h92
-rw-r--r--arch/m68k/include/asm/siginfo_no.h (renamed from arch/m68knommu/include/asm/siginfo.h)0
-rw-r--r--arch/m68k/include/asm/signal.h5
-rw-r--r--arch/m68k/include/asm/signal_mm.h206
-rw-r--r--arch/m68k/include/asm/signal_no.h (renamed from arch/m68knommu/include/asm/signal.h)0
-rw-r--r--arch/m68k/include/asm/smp.h (renamed from arch/m68knommu/include/asm/smp.h)0
-rw-r--r--arch/m68k/include/asm/socket.h57
-rw-r--r--arch/m68k/include/asm/sockios.h13
-rw-r--r--arch/m68k/include/asm/spinlock.h6
-rw-r--r--arch/m68k/include/asm/stat.h77
-rw-r--r--arch/m68k/include/asm/statfs.h6
-rw-r--r--arch/m68k/include/asm/string.h5
-rw-r--r--arch/m68k/include/asm/string_mm.h131
-rw-r--r--arch/m68k/include/asm/string_no.h (renamed from arch/m68knommu/include/asm/string.h)0
-rw-r--r--arch/m68k/include/asm/sun3-head.h10
-rw-r--r--arch/m68k/include/asm/sun3_pgalloc.h102
-rw-r--r--arch/m68k/include/asm/sun3_pgtable.h234
-rw-r--r--arch/m68k/include/asm/sun3ints.h37
-rw-r--r--arch/m68k/include/asm/sun3mmu.h171
-rw-r--r--arch/m68k/include/asm/sun3x.h27
-rw-r--r--arch/m68k/include/asm/sun3xflop.h263
-rw-r--r--arch/m68k/include/asm/sun3xprom.h43
-rw-r--r--arch/m68k/include/asm/suspend.h6
-rw-r--r--arch/m68k/include/asm/swab.h5
-rw-r--r--arch/m68k/include/asm/swab_mm.h16
-rw-r--r--arch/m68k/include/asm/swab_no.h (renamed from arch/m68knommu/include/asm/swab.h)0
-rw-r--r--arch/m68k/include/asm/system.h5
-rw-r--r--arch/m68k/include/asm/system_mm.h218
-rw-r--r--arch/m68k/include/asm/system_no.h (renamed from arch/m68knommu/include/asm/system.h)2
-rw-r--r--arch/m68k/include/asm/termbits.h200
-rw-r--r--arch/m68k/include/asm/termios.h92
-rw-r--r--arch/m68k/include/asm/thread_info.h5
-rw-r--r--arch/m68k/include/asm/thread_info_mm.h57
-rw-r--r--arch/m68k/include/asm/thread_info_no.h (renamed from arch/m68knommu/include/asm/thread_info.h)0
-rw-r--r--arch/m68k/include/asm/timex.h5
-rw-r--r--arch/m68k/include/asm/timex_mm.h18
-rw-r--r--arch/m68k/include/asm/timex_no.h (renamed from arch/m68knommu/include/asm/timex.h)0
-rw-r--r--arch/m68k/include/asm/tlb.h20
-rw-r--r--arch/m68k/include/asm/tlbflush.h5
-rw-r--r--arch/m68k/include/asm/tlbflush_mm.h219
-rw-r--r--arch/m68k/include/asm/tlbflush_no.h (renamed from arch/m68knommu/include/asm/tlbflush.h)0
-rw-r--r--arch/m68k/include/asm/topology.h (renamed from arch/m68knommu/include/asm/topology.h)0
-rw-r--r--arch/m68k/include/asm/traps.h5
-rw-r--r--arch/m68k/include/asm/traps_mm.h272
-rw-r--r--arch/m68k/include/asm/traps_no.h (renamed from arch/m68knommu/include/asm/traps.h)0
-rw-r--r--arch/m68k/include/asm/types.h37
-rw-r--r--arch/m68k/include/asm/uaccess.h5
-rw-r--r--arch/m68k/include/asm/uaccess_mm.h374
-rw-r--r--arch/m68k/include/asm/uaccess_no.h (renamed from arch/m68knommu/include/asm/uaccess.h)0
-rw-r--r--arch/m68k/include/asm/ucontext.h5
-rw-r--r--arch/m68k/include/asm/ucontext_mm.h30
-rw-r--r--arch/m68k/include/asm/ucontext_no.h (renamed from arch/m68knommu/include/asm/ucontext.h)0
-rw-r--r--arch/m68k/include/asm/unaligned.h5
-rw-r--r--arch/m68k/include/asm/unaligned_mm.h13
-rw-r--r--arch/m68k/include/asm/unaligned_no.h (renamed from arch/m68knommu/include/asm/unaligned.h)0
-rw-r--r--arch/m68k/include/asm/unistd.h5
-rw-r--r--arch/m68k/include/asm/unistd_mm.h372
-rw-r--r--arch/m68k/include/asm/unistd_no.h (renamed from arch/m68knommu/include/asm/unistd.h)0
-rw-r--r--arch/m68k/include/asm/user.h86
-rw-r--r--arch/m68k/include/asm/virtconvert.h48
-rw-r--r--arch/m68k/include/asm/xor.h1
-rw-r--r--arch/m68k/include/asm/zorro.h45
-rw-r--r--arch/m68k/kernel/entry.S2
-rw-r--r--arch/m68knommu/Kconfig27
-rw-r--r--arch/m68knommu/Makefile1
-rw-r--r--arch/m68knommu/include/asm/byteorder.h7
-rw-r--r--arch/m68knommu/include/asm/cachectl.h1
-rw-r--r--arch/m68knommu/include/asm/cputime.h6
-rw-r--r--arch/m68knommu/include/asm/errno.h1
-rw-r--r--arch/m68knommu/include/asm/fcntl.h1
-rw-r--r--arch/m68knommu/include/asm/hwtest.h1
-rw-r--r--arch/m68knommu/include/asm/ioctls.h1
-rw-r--r--arch/m68knommu/include/asm/ipcbuf.h1
-rw-r--r--arch/m68knommu/include/asm/linkage.h1
-rw-r--r--arch/m68knommu/include/asm/local.h6
-rw-r--r--arch/m68knommu/include/asm/math-emu.h1
-rw-r--r--arch/m68knommu/include/asm/md.h1
-rw-r--r--arch/m68knommu/include/asm/mman.h1
-rw-r--r--arch/m68knommu/include/asm/movs.h1
-rw-r--r--arch/m68knommu/include/asm/msgbuf.h1
-rw-r--r--arch/m68knommu/include/asm/openprom.h1
-rw-r--r--arch/m68knommu/include/asm/oplib.h1
-rw-r--r--arch/m68knommu/include/asm/percpu.h6
-rw-r--r--arch/m68knommu/include/asm/poll.h1
-rw-r--r--arch/m68knommu/include/asm/posix_types.h1
-rw-r--r--arch/m68knommu/include/asm/resource.h1
-rw-r--r--arch/m68knommu/include/asm/rtc.h1
-rw-r--r--arch/m68knommu/include/asm/sections.h7
-rw-r--r--arch/m68knommu/include/asm/sembuf.h1
-rw-r--r--arch/m68knommu/include/asm/shm.h1
-rw-r--r--arch/m68knommu/include/asm/shmbuf.h1
-rw-r--r--arch/m68knommu/include/asm/shmparam.h1
-rw-r--r--arch/m68knommu/include/asm/socket.h1
-rw-r--r--arch/m68knommu/include/asm/sockios.h1
-rw-r--r--arch/m68knommu/include/asm/spinlock.h1
-rw-r--r--arch/m68knommu/include/asm/stat.h1
-rw-r--r--arch/m68knommu/include/asm/statfs.h1
-rw-r--r--arch/m68knommu/include/asm/termbits.h1
-rw-r--r--arch/m68knommu/include/asm/termios.h1
-rw-r--r--arch/m68knommu/include/asm/tlb.h1
-rw-r--r--arch/m68knommu/include/asm/types.h1
-rw-r--r--arch/m68knommu/include/asm/user.h1
-rw-r--r--arch/m68knommu/kernel/Makefile1
-rw-r--r--arch/m68knommu/kernel/comempci.c980
-rw-r--r--arch/m68knommu/kernel/signal.c15
-rw-r--r--arch/m68knommu/kernel/syscalltable.S4
-rw-r--r--arch/m68knommu/platform/5206e/config.c1
-rw-r--r--arch/m68knommu/platform/528x/config.c228
-rw-r--r--arch/m68knommu/platform/5307/config.c2
-rw-r--r--arch/m68knommu/platform/532x/config.c8
-rw-r--r--arch/m68knommu/platform/coldfire/entry.S15
-rw-r--r--arch/mips/Kconfig16
-rw-r--r--arch/mips/alchemy/common/time.c8
-rw-r--r--arch/mips/cavium-octeon/setup.c2
-rw-r--r--arch/mips/configs/bigsur_defconfig2
-rw-r--r--arch/mips/configs/emma2rh_defconfig2
-rw-r--r--arch/mips/configs/fulong_defconfig4
-rw-r--r--arch/mips/configs/ip27_defconfig2
-rw-r--r--arch/mips/configs/msp71xx_defconfig2
-rw-r--r--arch/mips/configs/mtx1_defconfig4
-rw-r--r--arch/mips/configs/pnx8335-stb225_defconfig4
-rw-r--r--arch/mips/configs/rbtx49xx_defconfig2
-rw-r--r--arch/mips/include/asm/Kbuild1
-rw-r--r--arch/mips/include/asm/atomic.h52
-rw-r--r--arch/mips/include/asm/byteorder.h2
-rw-r--r--arch/mips/include/asm/compat.h7
-rw-r--r--arch/mips/include/asm/mach-rc32434/gpio.h5
-rw-r--r--arch/mips/include/asm/mach-rc32434/irq.h3
-rw-r--r--arch/mips/include/asm/mach-rc32434/rb.h3
-rw-r--r--arch/mips/include/asm/ptrace.h2
-rw-r--r--arch/mips/include/asm/seccomp.h1
-rw-r--r--arch/mips/include/asm/sigcontext.h1
-rw-r--r--arch/mips/include/asm/spinlock.h1
-rw-r--r--arch/mips/include/asm/swab.h2
-rw-r--r--arch/mips/include/asm/termios.h100
-rw-r--r--arch/mips/include/asm/txx9/tx4939.h1
-rw-r--r--arch/mips/kernel/genex.S6
-rw-r--r--arch/mips/kernel/irq.c1
-rw-r--r--arch/mips/kernel/linux32.c69
-rw-r--r--arch/mips/kernel/mips-mt-fpaff.c3
-rw-r--r--arch/mips/kernel/scall32-o32.S6
-rw-r--r--arch/mips/kernel/scall64-64.S2
-rw-r--r--arch/mips/kernel/scall64-n32.S28
-rw-r--r--arch/mips/kernel/scall64-o32.S40
-rw-r--r--arch/mips/kernel/signal.c5
-rw-r--r--arch/mips/kernel/signal32.c28
-rw-r--r--arch/mips/kernel/syscall.c26
-rw-r--r--arch/mips/kernel/traps.c16
-rw-r--r--arch/mips/lib/memcpy-inatomic.S2
-rw-r--r--arch/mips/lib/memcpy.S2
-rw-r--r--arch/mips/mm/c-r4k.c22
-rw-r--r--arch/mips/mm/cache.c5
-rw-r--r--arch/mips/mm/fault.c21
-rw-r--r--arch/mips/pci/pci-rc32434.c11
-rw-r--r--arch/mips/rb532/devices.c57
-rw-r--r--arch/mips/rb532/gpio.c90
-rw-r--r--arch/mips/rb532/irq.c27
-rw-r--r--arch/mips/rb532/serial.c2
-rw-r--r--arch/mips/txx9/generic/setup_tx4939.c22
-rw-r--r--arch/mips/txx9/rbtx4939/setup.c1
-rw-r--r--arch/mn10300/Kconfig1
-rw-r--r--arch/mn10300/kernel/entry.S2
-rw-r--r--arch/mn10300/unit-asb2305/pci.c2
-rw-r--r--arch/parisc/include/asm/Kbuild1
-rw-r--r--arch/parisc/include/asm/byteorder.h1
-rw-r--r--arch/parisc/include/asm/dma-mapping.h2
-rw-r--r--arch/parisc/include/asm/pdc.h3
-rw-r--r--arch/parisc/include/asm/swab.h2
-rw-r--r--arch/parisc/kernel/pci-dma.c2
-rw-r--r--arch/powerpc/Kconfig5
-rw-r--r--arch/powerpc/boot/cuboot-warp.c43
-rw-r--r--arch/powerpc/boot/dts/haleakala.dts5
-rw-r--r--arch/powerpc/boot/dts/kilauea.dts5
-rw-r--r--arch/powerpc/boot/dts/makalu.dts5
-rw-r--r--arch/powerpc/boot/dts/mpc8313erdb.dts13
-rw-r--r--arch/powerpc/boot/dts/mpc8315erdb.dts4
-rw-r--r--arch/powerpc/boot/dts/mpc8544ds.dts4
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds.dts6
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts2
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts2
-rw-r--r--arch/powerpc/boot/dts/warp.dts42
-rw-r--r--arch/powerpc/configs/40x/acadia_defconfig76
-rw-r--r--arch/powerpc/configs/40x/ep405_defconfig87
-rw-r--r--arch/powerpc/configs/40x/hcu4_defconfig78
-rw-r--r--arch/powerpc/configs/40x/kilauea_defconfig76
-rw-r--r--arch/powerpc/configs/40x/makalu_defconfig76
-rw-r--r--arch/powerpc/configs/40x/virtex_defconfig53
-rw-r--r--arch/powerpc/configs/40x/walnut_defconfig84
-rw-r--r--arch/powerpc/configs/44x/arches_defconfig60
-rw-r--r--arch/powerpc/configs/44x/bamboo_defconfig76
-rw-r--r--arch/powerpc/configs/44x/canyonlands_defconfig60
-rw-r--r--arch/powerpc/configs/44x/ebony_defconfig84
-rw-r--r--arch/powerpc/configs/44x/katmai_defconfig76
-rw-r--r--arch/powerpc/configs/44x/rainier_defconfig83
-rw-r--r--arch/powerpc/configs/44x/sam440ep_defconfig81
-rw-r--r--arch/powerpc/configs/44x/sequoia_defconfig83
-rw-r--r--arch/powerpc/configs/44x/taishan_defconfig83
-rw-r--r--arch/powerpc/configs/44x/virtex5_defconfig53
-rw-r--r--arch/powerpc/configs/44x/warp_defconfig140
-rw-r--r--arch/powerpc/configs/52xx/cm5200_defconfig83
-rw-r--r--arch/powerpc/configs/52xx/lite5200b_defconfig86
-rw-r--r--arch/powerpc/configs/52xx/motionpro_defconfig85
-rw-r--r--arch/powerpc/configs/52xx/pcm030_defconfig82
-rw-r--r--arch/powerpc/configs/52xx/tqm5200_defconfig89
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig95
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig111
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig109
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig90
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig95
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig106
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig104
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig88
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig97
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig94
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig88
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig94
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig78
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig79
-rw-r--r--arch/powerpc/configs/85xx/mpc8536_ds_defconfig115
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig66
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig115
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig73
-rw-r--r--arch/powerpc/configs/85xx/mpc8568mds_defconfig90
-rw-r--r--arch/powerpc/configs/85xx/mpc8572_ds_defconfig84
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig69
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig60
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig66
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig92
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig85
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig92
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig88
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig92
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig92
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig140
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig87
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig115
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig106
-rw-r--r--arch/powerpc/configs/adder875_defconfig65
-rw-r--r--arch/powerpc/configs/c2k_defconfig122
-rw-r--r--arch/powerpc/configs/cell_defconfig2
-rw-r--r--arch/powerpc/configs/celleb_defconfig2
-rw-r--r--arch/powerpc/configs/chrp32_defconfig4
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig77
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig65
-rw-r--r--arch/powerpc/configs/g5_defconfig4
-rw-r--r--arch/powerpc/configs/linkstation_defconfig114
-rw-r--r--arch/powerpc/configs/maple_defconfig4
-rw-r--r--arch/powerpc/configs/mgcoge_defconfig74
-rw-r--r--arch/powerpc/configs/mgsuvd_defconfig63
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig104
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig71
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig77
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig111
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig124
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig64
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig147
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig65
-rw-r--r--arch/powerpc/configs/pasemi_defconfig2
-rw-r--r--arch/powerpc/configs/pmac32_defconfig4
-rw-r--r--arch/powerpc/configs/ppc40x_defconfig81
-rw-r--r--arch/powerpc/configs/ppc44x_defconfig83
-rw-r--r--arch/powerpc/configs/ppc64_defconfig30
-rw-r--r--arch/powerpc/configs/ppc6xx_defconfig4
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig87
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig100
-rw-r--r--arch/powerpc/configs/pseries_defconfig4
-rw-r--r--arch/powerpc/configs/storcenter_defconfig89
-rw-r--r--arch/powerpc/include/asm/Kbuild1
-rw-r--r--arch/powerpc/include/asm/bootx.h2
-rw-r--r--arch/powerpc/include/asm/byteorder.h2
-rw-r--r--arch/powerpc/include/asm/compat.h5
-rw-r--r--arch/powerpc/include/asm/elf.h2
-rw-r--r--arch/powerpc/include/asm/kvm.h2
-rw-r--r--arch/powerpc/include/asm/pgtable-4k.h2
-rw-r--r--arch/powerpc/include/asm/pgtable-64k.h2
-rw-r--r--arch/powerpc/include/asm/pgtable-ppc32.h3
-rw-r--r--arch/powerpc/include/asm/ps3.h8
-rw-r--r--arch/powerpc/include/asm/ps3fb.h1
-rw-r--r--arch/powerpc/include/asm/qe.h19
-rw-r--r--arch/powerpc/include/asm/rtas.h2
-rw-r--r--arch/powerpc/include/asm/seccomp.h4
-rw-r--r--arch/powerpc/include/asm/spu_info.h3
-rw-r--r--arch/powerpc/include/asm/swab.h2
-rw-r--r--arch/powerpc/include/asm/systbl.h2
-rw-r--r--arch/powerpc/include/asm/types.h7
-rw-r--r--arch/powerpc/kernel/align.c36
-rw-r--r--arch/powerpc/kernel/asm-offsets.c7
-rw-r--r--arch/powerpc/kernel/cacheinfo.c10
-rw-r--r--arch/powerpc/kernel/dma-iommu.c4
-rw-r--r--arch/powerpc/kernel/ftrace.c5
-rw-r--r--arch/powerpc/kernel/head_64.S9
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S8
-rw-r--r--arch/powerpc/kernel/iommu.c12
-rw-r--r--arch/powerpc/kernel/lparcfg.c10
-rw-r--r--arch/powerpc/kernel/machine_kexec.c25
-rw-r--r--arch/powerpc/kernel/pci-common.c22
-rw-r--r--arch/powerpc/kernel/pci_64.c6
-rw-r--r--arch/powerpc/kernel/prom.c5
-rw-r--r--arch/powerpc/kernel/setup_64.c6
-rw-r--r--arch/powerpc/kernel/vio.c7
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S5
-rw-r--r--arch/powerpc/kvm/powerpc.c4
-rw-r--r--arch/powerpc/lib/copyuser_64.S38
-rw-r--r--arch/powerpc/lib/memcpy_64.S26
-rw-r--r--arch/powerpc/lib/sstep.c2
-rw-r--r--arch/powerpc/mm/fsl_booke_mmu.c13
-rw-r--r--arch/powerpc/mm/hash_low_32.S2
-rw-r--r--arch/powerpc/mm/mmu_decl.h11
-rw-r--r--arch/powerpc/mm/numa.c5
-rw-r--r--arch/powerpc/mm/pgtable_32.c4
-rw-r--r--arch/powerpc/mm/ppc_mmu_32.c6
-rw-r--r--arch/powerpc/mm/slice.c11
-rw-r--r--arch/powerpc/mm/stab.c4
-rw-r--r--arch/powerpc/oprofile/cell/spu_profiler.c1
-rw-r--r--arch/powerpc/oprofile/op_model_pa6t.c6
-rw-r--r--arch/powerpc/platforms/44x/Makefile1
-rw-r--r--arch/powerpc/platforms/44x/warp-nand.c135
-rw-r--r--arch/powerpc/platforms/512x/clock.c4
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpio.c3
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_pci.c24
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_pic.c8
-rw-r--r--arch/powerpc/platforms/82xx/pq2ads-pci-pic.c2
-rw-r--r--arch/powerpc/platforms/83xx/Makefile1
-rw-r--r--arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c209
-rw-r--r--arch/powerpc/platforms/83xx/mpc831x_rdb.c1
-rw-r--r--arch/powerpc/platforms/86xx/gef_sbc610.c4
-rw-r--r--arch/powerpc/platforms/Kconfig11
-rw-r--r--arch/powerpc/platforms/cell/beat_interrupt.c2
-rw-r--r--arch/powerpc/platforms/cell/celleb_scc_epci.c4
-rw-r--r--arch/powerpc/platforms/cell/iommu.c4
-rw-r--r--arch/powerpc/platforms/cell/ras.c8
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c4
-rw-r--r--arch/powerpc/platforms/cell/spu_callbacks.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/coredump.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/fault.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/file.c6
-rw-r--r--arch/powerpc/platforms/fsl_uli1575.c1
-rw-r--r--arch/powerpc/platforms/iseries/iommu.c4
-rw-r--r--arch/powerpc/platforms/powermac/smp.c2
-rw-r--r--arch/powerpc/platforms/ps3/device-init.c26
-rw-r--r--arch/powerpc/platforms/ps3/htab.c2
-rw-r--r--arch/powerpc/platforms/ps3/interrupt.c28
-rw-r--r--arch/powerpc/platforms/ps3/mm.c99
-rw-r--r--arch/powerpc/platforms/ps3/os-area.c2
-rw-r--r--arch/powerpc/platforms/ps3/repository.c22
-rw-r--r--arch/powerpc/platforms/ps3/setup.c2
-rw-r--r--arch/powerpc/platforms/ps3/spu.c12
-rw-r--r--arch/powerpc/platforms/ps3/system-bus.c14
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-memory.c1
-rw-r--r--arch/powerpc/platforms/pseries/iommu.c35
-rw-r--r--arch/powerpc/platforms/pseries/phyp_dump.c26
-rw-r--r--arch/powerpc/sysdev/cpm2_pic.c2
-rw-r--r--arch/powerpc/sysdev/fsl_pci.c107
-rw-r--r--arch/powerpc/sysdev/ipic.c2
-rw-r--r--arch/powerpc/sysdev/mpic.c2
-rw-r--r--arch/powerpc/sysdev/ppc4xx_pci.c17
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/s390/crypto/aes_s390.c2
-rw-r--r--arch/s390/defconfig87
-rw-r--r--arch/s390/include/asm/Kbuild1
-rw-r--r--arch/s390/include/asm/byteorder.h1
-rw-r--r--arch/s390/include/asm/cputime.h2
-rw-r--r--arch/s390/include/asm/elf.h16
-rw-r--r--arch/s390/include/asm/lowcore.h4
-rw-r--r--arch/s390/include/asm/setup.h2
-rw-r--r--arch/s390/kernel/compat_wrapper.S42
-rw-r--r--arch/s390/kernel/entry.h16
-rw-r--r--arch/s390/kernel/irq.c2
-rw-r--r--arch/s390/kernel/process.c9
-rw-r--r--arch/s390/kernel/setup.c9
-rw-r--r--arch/s390/kernel/signal.c19
-rw-r--r--arch/s390/kernel/sys_s390.c35
-rw-r--r--arch/s390/kernel/syscalls.S24
-rw-r--r--arch/s390/kernel/time.c6
-rw-r--r--arch/s390/kernel/vtime.c4
-rw-r--r--arch/s390/kvm/kvm-s390.c4
-rw-r--r--arch/sh/Kconfig63
-rw-r--r--arch/sh/boards/board-ap325rxa.c64
-rw-r--r--arch/sh/boards/board-magicpanelr2.c23
-rw-r--r--arch/sh/boards/board-sh7785lcr.c1
-rw-r--r--arch/sh/boards/mach-highlander/setup.c1
-rw-r--r--arch/sh/boards/mach-hp6xx/setup.c2
-rw-r--r--arch/sh/boards/mach-migor/setup.c171
-rw-r--r--arch/sh/boards/mach-rsk/devices-rsk7203.c24
-rw-r--r--arch/sh/boards/mach-x3proto/setup.c1
-rw-r--r--arch/sh/configs/ap325rxa_defconfig376
-rw-r--r--arch/sh/configs/cayman_defconfig4
-rw-r--r--arch/sh/configs/dreamcast_defconfig60
-rw-r--r--arch/sh/configs/edosk7705_defconfig18
-rw-r--r--arch/sh/configs/edosk7760_defconfig87
-rw-r--r--arch/sh/configs/hp6xx_defconfig88
-rw-r--r--arch/sh/configs/landisk_defconfig76
-rw-r--r--arch/sh/configs/lboxre2_defconfig63
-rw-r--r--arch/sh/configs/magicpanelr2_defconfig119
-rw-r--r--arch/sh/configs/microdev_defconfig63
-rw-r--r--arch/sh/configs/migor_defconfig133
-rw-r--r--arch/sh/configs/r7780mp_defconfig89
-rw-r--r--arch/sh/configs/r7785rp_defconfig134
-rw-r--r--arch/sh/configs/rsk7201_defconfig26
-rw-r--r--arch/sh/configs/rsk7203_defconfig88
-rw-r--r--arch/sh/configs/rts7751r2d1_defconfig89
-rw-r--r--arch/sh/configs/rts7751r2dplus_defconfig89
-rw-r--r--arch/sh/configs/sdk7780_defconfig101
-rw-r--r--arch/sh/configs/se7206_defconfig75
-rw-r--r--arch/sh/configs/se7343_defconfig65
-rw-r--r--arch/sh/configs/se7619_defconfig47
-rw-r--r--arch/sh/configs/se7705_defconfig60
-rw-r--r--arch/sh/configs/se7712_defconfig79
-rw-r--r--arch/sh/configs/se7721_defconfig85
-rw-r--r--arch/sh/configs/se7722_defconfig61
-rw-r--r--arch/sh/configs/se7750_defconfig61
-rw-r--r--arch/sh/configs/se7751_defconfig56
-rw-r--r--arch/sh/configs/se7780_defconfig87
-rw-r--r--arch/sh/configs/sh03_defconfig82
-rw-r--r--arch/sh/configs/sh7710voipgw_defconfig55
-rw-r--r--arch/sh/configs/sh7763rdp_defconfig71
-rw-r--r--arch/sh/configs/sh7785lcr_defconfig96
-rw-r--r--arch/sh/configs/shmin_defconfig54
-rw-r--r--arch/sh/configs/shx3_defconfig83
-rw-r--r--arch/sh/configs/snapgear_defconfig53
-rw-r--r--arch/sh/configs/systemh_defconfig50
-rw-r--r--arch/sh/configs/titan_defconfig90
-rw-r--r--arch/sh/configs/ul2_defconfig69
-rw-r--r--arch/sh/include/asm/Kbuild1
-rw-r--r--arch/sh/include/asm/byteorder.h2
-rw-r--r--arch/sh/include/asm/mutex-llsc.h21
-rw-r--r--arch/sh/include/asm/posix_types_32.h8
-rw-r--r--arch/sh/include/asm/posix_types_64.h8
-rw-r--r--arch/sh/include/asm/syscall_32.h22
-rw-r--r--arch/sh/include/asm/syscall_64.h22
-rw-r--r--arch/sh/include/asm/syscalls_32.h6
-rw-r--r--arch/sh/kernel/cpu/sh2a/clock-sh7201.c4
-rw-r--r--arch/sh/kernel/cpu/sh4/fpu.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7343.c31
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7722.c2
-rw-r--r--arch/sh/kernel/process_64.c2
-rw-r--r--arch/sh/kernel/setup.c8
-rw-r--r--arch/sh/kernel/signal_32.c4
-rw-r--r--arch/sh/kernel/signal_64.c4
-rw-r--r--arch/sh/kernel/sys_sh32.c2
-rw-r--r--arch/sh/kernel/syscalls_32.S4
-rw-r--r--arch/sh/kernel/syscalls_64.S2
-rw-r--r--arch/sh/kernel/traps_32.c9
-rw-r--r--arch/sh/lib/checksum.S69
-rw-r--r--arch/sh/mm/ioremap_64.c2
-rw-r--r--arch/sparc/Kconfig1
-rw-r--r--arch/sparc/configs/sparc64_defconfig4
-rw-r--r--arch/sparc/include/asm/Kbuild1
-rw-r--r--arch/sparc/include/asm/byteorder.h1
-rw-r--r--arch/sparc/include/asm/compat.h5
-rw-r--r--arch/sparc/include/asm/cpudata_64.h2
-rw-r--r--arch/sparc/include/asm/irq_64.h4
-rw-r--r--arch/sparc/include/asm/kdebug_64.h2
-rw-r--r--arch/sparc/include/asm/nmi.h10
-rw-r--r--arch/sparc/include/asm/pcr.h46
-rw-r--r--arch/sparc/include/asm/pil.h1
-rw-r--r--arch/sparc/include/asm/seccomp.h6
-rw-r--r--arch/sparc/kernel/Makefile2
-rw-r--r--arch/sparc/kernel/central.c2
-rw-r--r--arch/sparc/kernel/chmc.c1
-rw-r--r--arch/sparc/kernel/cpu.c51
-rw-r--r--arch/sparc/kernel/entry.S4
-rw-r--r--arch/sparc/kernel/head_64.S31
-rw-r--r--arch/sparc/kernel/irq_64.c68
-rw-r--r--arch/sparc/kernel/kernel.h1
-rw-r--r--arch/sparc/kernel/nmi.c225
-rw-r--r--arch/sparc/kernel/pcr.c158
-rw-r--r--arch/sparc/kernel/process_64.c5
-rw-r--r--arch/sparc/kernel/setup_64.c2
-rw-r--r--arch/sparc/kernel/sparc_ksyms_64.c11
-rw-r--r--arch/sparc/kernel/sys_sparc_64.c48
-rw-r--r--arch/sparc/kernel/syscalls.S4
-rw-r--r--arch/sparc/kernel/systbls.h3
-rw-r--r--arch/sparc/kernel/systbls_32.S4
-rw-r--r--arch/sparc/kernel/systbls_64.S20
-rw-r--r--arch/sparc/kernel/traps_64.c17
-rw-r--r--arch/sparc/kernel/ttable.S3
-rw-r--r--arch/sparc/lib/GENbzero.S6
-rw-r--r--arch/sparc/lib/GENcopy_from_user.S8
-rw-r--r--arch/sparc/lib/GENcopy_to_user.S8
-rw-r--r--arch/sparc/lib/Makefile3
-rw-r--r--arch/sparc/lib/NG2copy_from_user.S9
-rw-r--r--arch/sparc/lib/NG2copy_to_user.S9
-rw-r--r--arch/sparc/lib/NGbzero.S6
-rw-r--r--arch/sparc/lib/NGcopy_from_user.S9
-rw-r--r--arch/sparc/lib/NGcopy_to_user.S9
-rw-r--r--arch/sparc/lib/U1copy_from_user.S8
-rw-r--r--arch/sparc/lib/U1copy_to_user.S8
-rw-r--r--arch/sparc/lib/U3copy_from_user.S6
-rw-r--r--arch/sparc/lib/U3copy_to_user.S8
-rw-r--r--arch/sparc/lib/bzero.S6
-rw-r--r--arch/sparc/lib/copy_in_user.S61
-rw-r--r--arch/sparc/mm/fault_64.c44
-rw-r--r--arch/sparc/oprofile/init.c232
-rw-r--r--arch/um/drivers/vde_user.c6
-rw-r--r--arch/x86/Kconfig675
-rw-r--r--arch/x86/Kconfig.cpu108
-rw-r--r--arch/x86/Kconfig.debug74
-rw-r--r--arch/x86/Makefile43
-rw-r--r--arch/x86/boot/Makefile1
-rw-r--r--arch/x86/boot/a20.c79
-rw-r--r--arch/x86/boot/boot.h3
-rw-r--r--arch/x86/boot/compressed/Makefile21
-rw-r--r--arch/x86/boot/compressed/head_32.S8
-rw-r--r--arch/x86/boot/compressed/head_64.S10
-rw-r--r--arch/x86/boot/compressed/misc.c118
-rw-r--r--arch/x86/boot/copy.S40
-rw-r--r--arch/x86/boot/header.S2
-rw-r--r--arch/x86/boot/main.c5
-rw-r--r--arch/x86/boot/pmjump.S16
-rw-r--r--arch/x86/boot/video-vesa.c11
-rw-r--r--arch/x86/boot/voyager.c40
-rw-r--r--arch/x86/configs/i386_defconfig419
-rw-r--r--arch/x86/configs/x86_64_defconfig425
-rw-r--r--arch/x86/ia32/ia32_signal.c405
-rw-r--r--arch/x86/ia32/ia32entry.S16
-rw-r--r--arch/x86/include/asm/Kbuild1
-rw-r--r--arch/x86/include/asm/a.out-core.h4
-rw-r--r--arch/x86/include/asm/acpi.h3
-rw-r--r--arch/x86/include/asm/apic.h444
-rw-r--r--arch/x86/include/asm/apicdef.h1
-rw-r--r--arch/x86/include/asm/apm.h (renamed from arch/x86/include/asm/mach-default/apm.h)0
-rw-r--r--arch/x86/include/asm/arch_hooks.h26
-rw-r--r--arch/x86/include/asm/bigsmp/apic.h155
-rw-r--r--arch/x86/include/asm/bigsmp/apicdef.h13
-rw-r--r--arch/x86/include/asm/bigsmp/ipi.h22
-rw-r--r--arch/x86/include/asm/bitops.h14
-rw-r--r--arch/x86/include/asm/boot.h16
-rw-r--r--arch/x86/include/asm/byteorder.h1
-rw-r--r--arch/x86/include/asm/cacheflush.h53
-rw-r--r--arch/x86/include/asm/calling.h56
-rw-r--r--arch/x86/include/asm/cpu.h17
-rw-r--r--arch/x86/include/asm/cpufeature.h1
-rw-r--r--arch/x86/include/asm/cpumask.h32
-rw-r--r--arch/x86/include/asm/current.h24
-rw-r--r--arch/x86/include/asm/dma-mapping.h4
-rw-r--r--arch/x86/include/asm/do_timer.h (renamed from arch/x86/include/asm/mach-default/do_timer.h)0
-rw-r--r--arch/x86/include/asm/e820.h1
-rw-r--r--arch/x86/include/asm/efi.h2
-rw-r--r--arch/x86/include/asm/elf.h15
-rw-r--r--arch/x86/include/asm/entry_arch.h (renamed from arch/x86/include/asm/mach-default/entry_arch.h)27
-rw-r--r--arch/x86/include/asm/es7000/apic.h242
-rw-r--r--arch/x86/include/asm/es7000/apicdef.h13
-rw-r--r--arch/x86/include/asm/es7000/ipi.h22
-rw-r--r--arch/x86/include/asm/es7000/mpparse.h29
-rw-r--r--arch/x86/include/asm/es7000/wakecpu.h37
-rw-r--r--arch/x86/include/asm/fixmap.h139
-rw-r--r--arch/x86/include/asm/fixmap_32.h119
-rw-r--r--arch/x86/include/asm/fixmap_64.h83
-rw-r--r--arch/x86/include/asm/genapic.h6
-rw-r--r--arch/x86/include/asm/genapic_32.h148
-rw-r--r--arch/x86/include/asm/genapic_64.h66
-rw-r--r--arch/x86/include/asm/hardirq.h50
-rw-r--r--arch/x86/include/asm/hardirq_32.h30
-rw-r--r--arch/x86/include/asm/hardirq_64.h25
-rw-r--r--arch/x86/include/asm/hw_irq.h25
-rw-r--r--arch/x86/include/asm/i387.h8
-rw-r--r--arch/x86/include/asm/i8259.h4
-rw-r--r--arch/x86/include/asm/init.h18
-rw-r--r--arch/x86/include/asm/io.h98
-rw-r--r--arch/x86/include/asm/io_32.h88
-rw-r--r--arch/x86/include/asm/io_64.h61
-rw-r--r--arch/x86/include/asm/io_apic.h41
-rw-r--r--arch/x86/include/asm/iomap.h3
-rw-r--r--arch/x86/include/asm/ipi.h75
-rw-r--r--arch/x86/include/asm/irq.h5
-rw-r--r--arch/x86/include/asm/irq_regs.h36
-rw-r--r--arch/x86/include/asm/irq_regs_32.h31
-rw-r--r--arch/x86/include/asm/irq_regs_64.h1
-rw-r--r--arch/x86/include/asm/irq_vectors.h217
-rw-r--r--arch/x86/include/asm/kexec.h34
-rw-r--r--arch/x86/include/asm/kvm.h9
-rw-r--r--arch/x86/include/asm/linkage.h76
-rw-r--r--arch/x86/include/asm/mach-default/mach_apic.h168
-rw-r--r--arch/x86/include/asm/mach-default/mach_apicdef.h24
-rw-r--r--arch/x86/include/asm/mach-default/mach_ipi.h64
-rw-r--r--arch/x86/include/asm/mach-default/mach_mpparse.h17
-rw-r--r--arch/x86/include/asm/mach-default/mach_mpspec.h12
-rw-r--r--arch/x86/include/asm/mach-default/mach_wakecpu.h41
-rw-r--r--arch/x86/include/asm/mach-generic/gpio.h15
-rw-r--r--arch/x86/include/asm/mach-generic/mach_apic.h35
-rw-r--r--arch/x86/include/asm/mach-generic/mach_apicdef.h11
-rw-r--r--arch/x86/include/asm/mach-generic/mach_ipi.h10
-rw-r--r--arch/x86/include/asm/mach-generic/mach_mpparse.h9
-rw-r--r--arch/x86/include/asm/mach-generic/mach_mpspec.h12
-rw-r--r--arch/x86/include/asm/mach-generic/mach_wakecpu.h12
-rw-r--r--arch/x86/include/asm/mach-rdc321x/gpio.h60
-rw-r--r--arch/x86/include/asm/mach-voyager/do_timer.h17
-rw-r--r--arch/x86/include/asm/mach-voyager/entry_arch.h26
-rw-r--r--arch/x86/include/asm/mach-voyager/setup_arch.h12
-rw-r--r--arch/x86/include/asm/mach_timer.h (renamed from arch/x86/include/asm/mach-default/mach_timer.h)0
-rw-r--r--arch/x86/include/asm/mach_traps.h (renamed from arch/x86/include/asm/mach-default/mach_traps.h)0
-rw-r--r--arch/x86/include/asm/math_emu.h29
-rw-r--r--arch/x86/include/asm/mce.h40
-rw-r--r--arch/x86/include/asm/mmu_context.h63
-rw-r--r--arch/x86/include/asm/mmu_context_32.h55
-rw-r--r--arch/x86/include/asm/mmu_context_64.h54
-rw-r--r--arch/x86/include/asm/mmzone_32.h45
-rw-r--r--arch/x86/include/asm/mmzone_64.h2
-rw-r--r--arch/x86/include/asm/mpspec.h39
-rw-r--r--arch/x86/include/asm/mpspec_def.h23
-rw-r--r--arch/x86/include/asm/msr-index.h34
-rw-r--r--arch/x86/include/asm/mtrr.h1
-rw-r--r--arch/x86/include/asm/numa_32.h6
-rw-r--r--arch/x86/include/asm/numaq.h2
-rw-r--r--arch/x86/include/asm/numaq/apic.h142
-rw-r--r--arch/x86/include/asm/numaq/apicdef.h14
-rw-r--r--arch/x86/include/asm/numaq/ipi.h22
-rw-r--r--arch/x86/include/asm/numaq/mpparse.h6
-rw-r--r--arch/x86/include/asm/numaq/wakecpu.h45
-rw-r--r--arch/x86/include/asm/page.h153
-rw-r--r--arch/x86/include/asm/page_32.h87
-rw-r--r--arch/x86/include/asm/page_32_types.h60
-rw-r--r--arch/x86/include/asm/page_64.h101
-rw-r--r--arch/x86/include/asm/page_64_types.h89
-rw-r--r--arch/x86/include/asm/page_types.h51
-rw-r--r--arch/x86/include/asm/paravirt.h475
-rw-r--r--arch/x86/include/asm/pat.h10
-rw-r--r--arch/x86/include/asm/pci-functions.h (renamed from arch/x86/include/asm/mach-default/pci-functions.h)0
-rw-r--r--arch/x86/include/asm/pda.h137
-rw-r--r--arch/x86/include/asm/percpu.h177
-rw-r--r--arch/x86/include/asm/pgalloc.h1
-rw-r--r--arch/x86/include/asm/pgtable-2level.h2
-rw-r--r--arch/x86/include/asm/pgtable-2level_types.h (renamed from arch/x86/include/asm/pgtable-2level-defs.h)17
-rw-r--r--arch/x86/include/asm/pgtable-3level.h35
-rw-r--r--arch/x86/include/asm/pgtable-3level_types.h (renamed from arch/x86/include/asm/pgtable-3level-defs.h)20
-rw-r--r--arch/x86/include/asm/pgtable.h533
-rw-r--r--arch/x86/include/asm/pgtable_32.h88
-rw-r--r--arch/x86/include/asm/pgtable_32_types.h51
-rw-r--r--arch/x86/include/asm/pgtable_64.h113
-rw-r--r--arch/x86/include/asm/pgtable_64_types.h63
-rw-r--r--arch/x86/include/asm/pgtable_types.h329
-rw-r--r--arch/x86/include/asm/prctl.h4
-rw-r--r--arch/x86/include/asm/processor.h47
-rw-r--r--arch/x86/include/asm/proto.h4
-rw-r--r--arch/x86/include/asm/ptrace-abi.h2
-rw-r--r--arch/x86/include/asm/ptrace.h4
-rw-r--r--arch/x86/include/asm/rdc321x_defs.h (renamed from arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h)0
-rw-r--r--arch/x86/include/asm/seccomp_32.h6
-rw-r--r--arch/x86/include/asm/seccomp_64.h8
-rw-r--r--arch/x86/include/asm/segment.h9
-rw-r--r--arch/x86/include/asm/setup.h62
-rw-r--r--arch/x86/include/asm/setup_arch.h (renamed from arch/x86/include/asm/mach-default/setup_arch.h)0
-rw-r--r--arch/x86/include/asm/sigcontext.h2
-rw-r--r--arch/x86/include/asm/sigcontext32.h2
-rw-r--r--arch/x86/include/asm/smp.h69
-rw-r--r--arch/x86/include/asm/smpboot_hooks.h (renamed from arch/x86/include/asm/mach-default/smpboot_hooks.h)6
-rw-r--r--arch/x86/include/asm/spinlock.h70
-rw-r--r--arch/x86/include/asm/stackprotector.h124
-rw-r--r--arch/x86/include/asm/summit/apic.h202
-rw-r--r--arch/x86/include/asm/summit/apicdef.h13
-rw-r--r--arch/x86/include/asm/summit/ipi.h26
-rw-r--r--arch/x86/include/asm/summit/mpparse.h109
-rw-r--r--arch/x86/include/asm/swab.h2
-rw-r--r--arch/x86/include/asm/syscalls.h23
-rw-r--r--arch/x86/include/asm/system.h70
-rw-r--r--arch/x86/include/asm/thread_info.h21
-rw-r--r--arch/x86/include/asm/timer.h2
-rw-r--r--arch/x86/include/asm/timex.h13
-rw-r--r--arch/x86/include/asm/tlbflush.h9
-rw-r--r--arch/x86/include/asm/topology.h14
-rw-r--r--arch/x86/include/asm/trampoline.h1
-rw-r--r--arch/x86/include/asm/traps.h2
-rw-r--r--arch/x86/include/asm/uaccess.h138
-rw-r--r--arch/x86/include/asm/uaccess_64.h10
-rw-r--r--arch/x86/include/asm/uv/uv.h33
-rw-r--r--arch/x86/include/asm/uv/uv_bau.h2
-rw-r--r--arch/x86/include/asm/uv/uv_hub.h4
-rw-r--r--arch/x86/include/asm/vic.h61
-rw-r--r--arch/x86/include/asm/voyager.h529
-rw-r--r--arch/x86/include/asm/xen/events.h6
-rw-r--r--arch/x86/include/asm/xen/hypervisor.h28
-rw-r--r--arch/x86/include/asm/xen/page.h3
-rw-r--r--arch/x86/kernel/Makefile42
-rw-r--r--arch/x86/kernel/acpi/boot.c192
-rw-r--r--arch/x86/kernel/acpi/realmode/wakeup.S4
-rw-r--r--arch/x86/kernel/acpi/sleep.c5
-rw-r--r--arch/x86/kernel/acpi/wakeup_32.S2
-rw-r--r--arch/x86/kernel/acpi/wakeup_64.S34
-rw-r--r--arch/x86/kernel/alternative.c23
-rw-r--r--arch/x86/kernel/apic/Makefile19
-rw-r--r--arch/x86/kernel/apic/apic.c (renamed from arch/x86/kernel/apic.c)322
-rw-r--r--arch/x86/kernel/apic/apic_flat_64.c (renamed from arch/x86/kernel/genapic_flat_64.c)192
-rw-r--r--arch/x86/kernel/apic/bigsmp_32.c267
-rw-r--r--arch/x86/kernel/apic/es7000_32.c780
-rw-r--r--arch/x86/kernel/apic/io_apic.c (renamed from arch/x86/kernel/io_apic.c)440
-rw-r--r--arch/x86/kernel/apic/ipi.c164
-rw-r--r--arch/x86/kernel/apic/nmi.c (renamed from arch/x86/kernel/nmi.c)12
-rw-r--r--arch/x86/kernel/apic/numaq_32.c557
-rw-r--r--arch/x86/kernel/apic/probe_32.c284
-rw-r--r--arch/x86/kernel/apic/probe_64.c (renamed from arch/x86/kernel/genapic_64.c)55
-rw-r--r--arch/x86/kernel/apic/summit_32.c579
-rw-r--r--arch/x86/kernel/apic/x2apic_cluster.c (renamed from arch/x86/kernel/genx2apic_cluster.c)153
-rw-r--r--arch/x86/kernel/apic/x2apic_phys.c (renamed from arch/x86/kernel/genx2apic_phys.c)150
-rw-r--r--arch/x86/kernel/apic/x2apic_uv_x.c (renamed from arch/x86/kernel/genx2apic_uv_x.c)161
-rw-r--r--arch/x86/kernel/apm_32.c6
-rw-r--r--arch/x86/kernel/asm-offsets_32.c1
-rw-r--r--arch/x86/kernel/asm-offsets_64.c11
-rw-r--r--arch/x86/kernel/cpu/addon_cpuid_features.c54
-rw-r--r--arch/x86/kernel/cpu/amd.c54
-rw-r--r--arch/x86/kernel/cpu/common.c257
-rw-r--r--arch/x86/kernel/cpu/cpufreq/Kconfig11
-rw-r--r--arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c2
-rw-r--r--arch/x86/kernel/cpu/cpufreq/e_powersaver.c6
-rw-r--r--arch/x86/kernel/cpu/cpufreq/p4-clockmod.c1
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k8.c40
-rw-r--r--arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c6
-rw-r--r--arch/x86/kernel/cpu/intel.c58
-rw-r--r--arch/x86/kernel/cpu/intel_cacheinfo.c15
-rw-r--r--arch/x86/kernel/cpu/mcheck/Makefile1
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_32.c14
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_64.c537
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_amd_64.c24
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_intel_64.c218
-rw-r--r--arch/x86/kernel/cpu/mcheck/p4.c4
-rw-r--r--arch/x86/kernel/cpu/mcheck/threshold.c29
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c12
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c3
-rw-r--r--arch/x86/kernel/cpu/perfctr-watchdog.c2
-rw-r--r--arch/x86/kernel/cpu/proc.c20
-rw-r--r--arch/x86/kernel/crash.c4
-rw-r--r--arch/x86/kernel/ds.c34
-rw-r--r--arch/x86/kernel/dumpstack.c2
-rw-r--r--arch/x86/kernel/dumpstack_64.c35
-rw-r--r--arch/x86/kernel/e820.c3
-rw-r--r--arch/x86/kernel/early_printk.c2
-rw-r--r--arch/x86/kernel/efi.c9
-rw-r--r--arch/x86/kernel/efi_64.c22
-rw-r--r--arch/x86/kernel/efi_stub_32.S3
-rw-r--r--arch/x86/kernel/efi_stub_64.S7
-rw-r--r--arch/x86/kernel/entry_32.S455
-rw-r--r--arch/x86/kernel/entry_64.S75
-rw-r--r--arch/x86/kernel/es7000_32.c378
-rw-r--r--arch/x86/kernel/ftrace.c17
-rw-r--r--arch/x86/kernel/head64.c23
-rw-r--r--arch/x86/kernel/head_32.S44
-rw-r--r--arch/x86/kernel/head_64.S23
-rw-r--r--arch/x86/kernel/hpet.c17
-rw-r--r--arch/x86/kernel/i387.c2
-rw-r--r--arch/x86/kernel/i8237.c17
-rw-r--r--arch/x86/kernel/i8259.c1
-rw-r--r--arch/x86/kernel/ioport.c14
-rw-r--r--arch/x86/kernel/ipi.c190
-rw-r--r--arch/x86/kernel/irq.c78
-rw-r--r--arch/x86/kernel/irq_32.c59
-rw-r--r--arch/x86/kernel/irq_64.c41
-rw-r--r--arch/x86/kernel/irqinit_32.c27
-rw-r--r--arch/x86/kernel/irqinit_64.c3
-rw-r--r--arch/x86/kernel/kgdb.c4
-rw-r--r--arch/x86/kernel/kprobes.c2
-rw-r--r--arch/x86/kernel/kvmclock.c1
-rw-r--r--arch/x86/kernel/machine_kexec_32.c19
-rw-r--r--arch/x86/kernel/machine_kexec_64.c179
-rw-r--r--arch/x86/kernel/mca_32.c5
-rw-r--r--arch/x86/kernel/microcode_intel.c10
-rw-r--r--arch/x86/kernel/module_32.c6
-rw-r--r--arch/x86/kernel/module_64.c32
-rw-r--r--arch/x86/kernel/mpparse.c212
-rw-r--r--arch/x86/kernel/msr.c2
-rw-r--r--arch/x86/kernel/numaq_32.c293
-rw-r--r--arch/x86/kernel/olpc.c2
-rw-r--r--arch/x86/kernel/paravirt-spinlocks.c10
-rw-r--r--arch/x86/kernel/paravirt.c82
-rw-r--r--arch/x86/kernel/paravirt_patch_32.c12
-rw-r--r--arch/x86/kernel/paravirt_patch_64.c15
-rw-r--r--arch/x86/kernel/pci-gart_64.c2
-rw-r--r--arch/x86/kernel/probe_roms_32.c2
-rw-r--r--arch/x86/kernel/process.c199
-rw-r--r--arch/x86/kernel/process_32.c244
-rw-r--r--arch/x86/kernel/process_64.c239
-rw-r--r--arch/x86/kernel/ptrace.c39
-rw-r--r--arch/x86/kernel/reboot.c13
-rw-r--r--arch/x86/kernel/relocate_kernel_32.S26
-rw-r--r--arch/x86/kernel/relocate_kernel_64.S312
-rw-r--r--arch/x86/kernel/setup.c150
-rw-r--r--arch/x86/kernel/setup_percpu.c704
-rw-r--r--arch/x86/kernel/signal.c456
-rw-r--r--arch/x86/kernel/smp.c15
-rw-r--r--arch/x86/kernel/smpboot.c225
-rw-r--r--arch/x86/kernel/smpcommon.c30
-rw-r--r--arch/x86/kernel/stacktrace.c2
-rw-r--r--arch/x86/kernel/summit_32.c188
-rw-r--r--arch/x86/kernel/syscall_table_32.S22
-rw-r--r--arch/x86/kernel/time_32.c8
-rw-r--r--arch/x86/kernel/time_64.c2
-rw-r--r--arch/x86/kernel/tlb_32.c250
-rw-r--r--arch/x86/kernel/tlb_uv.c73
-rw-r--r--arch/x86/kernel/trampoline_32.S2
-rw-r--r--arch/x86/kernel/trampoline_64.S23
-rw-r--r--arch/x86/kernel/traps.c75
-rw-r--r--arch/x86/kernel/tsc.c2
-rw-r--r--arch/x86/kernel/uv_time.c393
-rw-r--r--arch/x86/kernel/visws_quirks.c12
-rw-r--r--arch/x86/kernel/vm86_32.c20
-rw-r--r--arch/x86/kernel/vmi_32.c26
-rw-r--r--arch/x86/kernel/vmiclock_32.c9
-rw-r--r--arch/x86/kernel/vmlinux_32.lds.S11
-rw-r--r--arch/x86/kernel/vmlinux_64.lds.S44
-rw-r--r--arch/x86/kernel/vsmp_64.c24
-rw-r--r--arch/x86/kernel/x8664_ksyms_64.c2
-rw-r--r--arch/x86/kvm/i8254.c2
-rw-r--r--arch/x86/kvm/irq.c7
-rw-r--r--arch/x86/kvm/irq.h1
-rw-r--r--arch/x86/kvm/lapic.c66
-rw-r--r--arch/x86/kvm/lapic.h2
-rw-r--r--arch/x86/kvm/mmu.c9
-rw-r--r--arch/x86/kvm/svm.c1
-rw-r--r--arch/x86/kvm/vmx.c5
-rw-r--r--arch/x86/kvm/x86.c10
-rw-r--r--arch/x86/lguest/Kconfig1
-rw-r--r--arch/x86/lguest/boot.c57
-rw-r--r--arch/x86/lib/getuser.S2
-rw-r--r--arch/x86/lib/usercopy_32.c4
-rw-r--r--arch/x86/lib/usercopy_64.c4
-rw-r--r--arch/x86/mach-default/Makefile5
-rw-r--r--arch/x86/mach-default/setup.c162
-rw-r--r--arch/x86/mach-generic/Makefile11
-rw-r--r--arch/x86/mach-generic/bigsmp.c60
-rw-r--r--arch/x86/mach-generic/default.c27
-rw-r--r--arch/x86/mach-generic/es7000.c103
-rw-r--r--arch/x86/mach-generic/numaq.c53
-rw-r--r--arch/x86/mach-generic/probe.c152
-rw-r--r--arch/x86/mach-generic/summit.c40
-rw-r--r--arch/x86/mach-rdc321x/Makefile5
-rw-r--r--arch/x86/mach-rdc321x/gpio.c194
-rw-r--r--arch/x86/mach-rdc321x/platform.c69
-rw-r--r--arch/x86/mach-voyager/Makefile8
-rw-r--r--arch/x86/mach-voyager/setup.c108
-rw-r--r--arch/x86/mach-voyager/voyager_basic.c317
-rw-r--r--arch/x86/mach-voyager/voyager_cat.c1197
-rw-r--r--arch/x86/mach-voyager/voyager_smp.c1808
-rw-r--r--arch/x86/mach-voyager/voyager_thread.c128
-rw-r--r--arch/x86/math-emu/fpu_aux.c31
-rw-r--r--arch/x86/math-emu/fpu_entry.c6
-rw-r--r--arch/x86/math-emu/fpu_proto.h4
-rw-r--r--arch/x86/math-emu/fpu_system.h16
-rw-r--r--arch/x86/math-emu/get_address.c75
-rw-r--r--arch/x86/mm/Makefile4
-rw-r--r--arch/x86/mm/extable.c6
-rw-r--r--arch/x86/mm/fault.c1335
-rw-r--r--arch/x86/mm/highmem_32.c25
-rw-r--r--arch/x86/mm/init.c393
-rw-r--r--arch/x86/mm/init_32.c501
-rw-r--r--arch/x86/mm/init_64.c387
-rw-r--r--arch/x86/mm/iomap_32.c21
-rw-r--r--arch/x86/mm/ioremap.c81
-rw-r--r--arch/x86/mm/kmmio.c164
-rw-r--r--arch/x86/mm/memtest.c159
-rw-r--r--arch/x86/mm/mmap.c2
-rw-r--r--arch/x86/mm/numa_32.c33
-rw-r--r--arch/x86/mm/numa_64.c219
-rw-r--r--arch/x86/mm/pageattr.c88
-rw-r--r--arch/x86/mm/pat.c160
-rw-r--r--arch/x86/mm/pgtable.c18
-rw-r--r--arch/x86/mm/pgtable_32.c18
-rw-r--r--arch/x86/mm/srat_64.c3
-rw-r--r--arch/x86/mm/testmmiotrace.c70
-rw-r--r--arch/x86/mm/tlb.c (renamed from arch/x86/kernel/tlb_64.c)80
-rw-r--r--arch/x86/oprofile/op_model_ppro.c14
-rw-r--r--arch/x86/pci/irq.c1
-rw-r--r--arch/x86/pci/numaq_32.c6
-rw-r--r--arch/x86/pci/pcbios.c2
-rw-r--r--arch/x86/power/hibernate_asm_32.S2
-rw-r--r--arch/x86/power/hibernate_asm_64.S2
-rw-r--r--arch/x86/scripts/strip-symbols1
-rw-r--r--arch/x86/vdso/Makefile2
-rw-r--r--arch/x86/vdso/vma.c4
-rw-r--r--arch/x86/xen/Kconfig2
-rw-r--r--arch/x86/xen/Makefile3
-rw-r--r--arch/x86/xen/enlighten.c812
-rw-r--r--arch/x86/xen/irq.c39
-rw-r--r--arch/x86/xen/mmu.c757
-rw-r--r--arch/x86/xen/mmu.h3
-rw-r--r--arch/x86/xen/multicalls.c15
-rw-r--r--arch/x86/xen/multicalls.h6
-rw-r--r--arch/x86/xen/smp.c47
-rw-r--r--arch/x86/xen/suspend.c1
-rw-r--r--arch/x86/xen/xen-asm.S142
-rw-r--r--arch/x86/xen/xen-asm.h12
-rw-r--r--arch/x86/xen/xen-asm_32.S343
-rw-r--r--arch/x86/xen/xen-asm_64.S252
-rw-r--r--arch/x86/xen/xen-head.S2
-rw-r--r--arch/x86/xen/xen-ops.h10
-rw-r--r--arch/xtensa/Kconfig3
-rw-r--r--arch/xtensa/include/asm/Kbuild2
-rw-r--r--arch/xtensa/include/asm/byteorder.h2
-rw-r--r--arch/xtensa/include/asm/swab.h2
-rw-r--r--arch/xtensa/kernel/setup.c2
-rw-r--r--arch/xtensa/kernel/traps.c1
-rw-r--r--arch/xtensa/mm/fault.c1
-rw-r--r--arch/xtensa/platforms/iss/console.c6
1504 files changed, 44976 insertions, 28048 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index 2e13aa261929..550dab22daa1 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -62,6 +62,9 @@ config HAVE_EFFICIENT_UNALIGNED_ACCESS
62 See Documentation/unaligned-memory-access.txt for more 62 See Documentation/unaligned-memory-access.txt for more
63 information on the topic of unaligned memory accesses. 63 information on the topic of unaligned memory accesses.
64 64
65config HAVE_SYSCALL_WRAPPERS
66 bool
67
65config KRETPROBES 68config KRETPROBES
66 def_bool y 69 def_bool y
67 depends on KPROBES && HAVE_KRETPROBES 70 depends on KPROBES && HAVE_KRETPROBES
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 6110197757a3..9fb8aae5c391 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -8,6 +8,7 @@ config ALPHA
8 select HAVE_AOUT 8 select HAVE_AOUT
9 select HAVE_IDE 9 select HAVE_IDE
10 select HAVE_OPROFILE 10 select HAVE_OPROFILE
11 select HAVE_SYSCALL_WRAPPERS
11 help 12 help
12 The Alpha is a 64-bit general-purpose processor designed and 13 The Alpha is a 64-bit general-purpose processor designed and
13 marketed by the Digital Equipment Corporation of blessed memory, 14 marketed by the Digital Equipment Corporation of blessed memory,
diff --git a/arch/alpha/include/asm/Kbuild b/arch/alpha/include/asm/Kbuild
index 4dad27360576..b7c8f188b313 100644
--- a/arch/alpha/include/asm/Kbuild
+++ b/arch/alpha/include/asm/Kbuild
@@ -9,4 +9,3 @@ unifdef-y += console.h
9unifdef-y += fpu.h 9unifdef-y += fpu.h
10unifdef-y += sysinfo.h 10unifdef-y += sysinfo.h
11unifdef-y += compiler.h 11unifdef-y += compiler.h
12unifdef-y += swab.h
diff --git a/arch/alpha/include/asm/bug.h b/arch/alpha/include/asm/bug.h
index 695a5ee4b5d3..1720c8ad86fe 100644
--- a/arch/alpha/include/asm/bug.h
+++ b/arch/alpha/include/asm/bug.h
@@ -8,17 +8,12 @@
8 8
9/* ??? Would be nice to use .gprel32 here, but we can't be sure that the 9/* ??? Would be nice to use .gprel32 here, but we can't be sure that the
10 function loaded the GP, so this could fail in modules. */ 10 function loaded the GP, so this could fail in modules. */
11static inline void ATTRIB_NORET __BUG(const char *file, int line) 11#define BUG() do { \
12{ 12 __asm__ __volatile__( \
13 __asm__ __volatile__( 13 "call_pal %0 # bugchk\n\t" \
14 "call_pal %0 # bugchk\n\t" 14 ".long %1\n\t.8byte %2" \
15 ".long %1\n\t.8byte %2" 15 : : "i"(PAL_bugchk), "i"(__LINE__), "i"(__FILE__)); \
16 : : "i" (PAL_bugchk), "i"(line), "i"(file)); 16 for ( ; ; ); } while (0)
17 for ( ; ; )
18 ;
19}
20
21#define BUG() __BUG(__FILE__, __LINE__)
22 17
23#define HAVE_ARCH_BUG 18#define HAVE_ARCH_BUG
24#endif 19#endif
diff --git a/arch/alpha/include/asm/byteorder.h b/arch/alpha/include/asm/byteorder.h
index 6772f3168701..73683093202d 100644
--- a/arch/alpha/include/asm/byteorder.h
+++ b/arch/alpha/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _ALPHA_BYTEORDER_H 1#ifndef _ALPHA_BYTEORDER_H
2#define _ALPHA_BYTEORDER_H 2#define _ALPHA_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
6 5
7#endif /* _ALPHA_BYTEORDER_H */ 6#endif /* _ALPHA_BYTEORDER_H */
diff --git a/arch/alpha/include/asm/dma-mapping.h b/arch/alpha/include/asm/dma-mapping.h
index a5801ae02e4b..04eb5681448c 100644
--- a/arch/alpha/include/asm/dma-mapping.h
+++ b/arch/alpha/include/asm/dma-mapping.h
@@ -29,6 +29,8 @@
29 29
30#else /* no PCI - no IOMMU. */ 30#else /* no PCI - no IOMMU. */
31 31
32#include <asm/io.h> /* for virt_to_phys() */
33
32struct scatterlist; 34struct scatterlist;
33void *dma_alloc_coherent(struct device *dev, size_t size, 35void *dma_alloc_coherent(struct device *dev, size_t size,
34 dma_addr_t *dma_handle, gfp_t gfp); 36 dma_addr_t *dma_handle, gfp_t gfp);
diff --git a/arch/alpha/include/asm/machvec.h b/arch/alpha/include/asm/machvec.h
index a86c083cdf7f..fea4ea75b79d 100644
--- a/arch/alpha/include/asm/machvec.h
+++ b/arch/alpha/include/asm/machvec.h
@@ -21,6 +21,7 @@ struct pci_dev;
21struct pci_ops; 21struct pci_ops;
22struct pci_controller; 22struct pci_controller;
23struct _alpha_agp_info; 23struct _alpha_agp_info;
24struct rtc_time;
24 25
25struct alpha_machine_vector 26struct alpha_machine_vector
26{ 27{
@@ -94,6 +95,9 @@ struct alpha_machine_vector
94 95
95 struct _alpha_agp_info *(*agp_info)(void); 96 struct _alpha_agp_info *(*agp_info)(void);
96 97
98 unsigned int (*rtc_get_time)(struct rtc_time *);
99 int (*rtc_set_time)(struct rtc_time *);
100
97 const char *vector_name; 101 const char *vector_name;
98 102
99 /* NUMA information */ 103 /* NUMA information */
diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
index fd090155dccd..bc2a0daf2d92 100644
--- a/arch/alpha/include/asm/pgalloc.h
+++ b/arch/alpha/include/asm/pgalloc.h
@@ -50,7 +50,12 @@ pmd_free(struct mm_struct *mm, pmd_t *pmd)
50 free_page((unsigned long)pmd); 50 free_page((unsigned long)pmd);
51} 51}
52 52
53extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr); 53static inline pte_t *
54pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
55{
56 pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
57 return pte;
58}
54 59
55static inline void 60static inline void
56pte_free_kernel(struct mm_struct *mm, pte_t *pte) 61pte_free_kernel(struct mm_struct *mm, pte_t *pte)
diff --git a/arch/alpha/include/asm/rtc.h b/arch/alpha/include/asm/rtc.h
index 4e854b1333eb..1f7fba671ae6 100644
--- a/arch/alpha/include/asm/rtc.h
+++ b/arch/alpha/include/asm/rtc.h
@@ -1,9 +1,15 @@
1#ifndef _ALPHA_RTC_H 1#ifndef _ALPHA_RTC_H
2#define _ALPHA_RTC_H 2#define _ALPHA_RTC_H
3 3
4/* 4#if defined(CONFIG_ALPHA_GENERIC)
5 * Alpha uses the default access methods for the RTC. 5# define get_rtc_time alpha_mv.rtc_get_time
6 */ 6# define set_rtc_time alpha_mv.rtc_set_time
7#else
8# if defined(CONFIG_ALPHA_MARVEL) && defined(CONFIG_SMP)
9# define get_rtc_time marvel_get_rtc_time
10# define set_rtc_time marvel_set_rtc_time
11# endif
12#endif
7 13
8#include <asm-generic/rtc.h> 14#include <asm-generic/rtc.h>
9 15
diff --git a/arch/alpha/include/asm/statfs.h b/arch/alpha/include/asm/statfs.h
index de35cd438a10..ccd2e186bfd8 100644
--- a/arch/alpha/include/asm/statfs.h
+++ b/arch/alpha/include/asm/statfs.h
@@ -1,6 +1,8 @@
1#ifndef _ALPHA_STATFS_H 1#ifndef _ALPHA_STATFS_H
2#define _ALPHA_STATFS_H 2#define _ALPHA_STATFS_H
3 3
4#include <linux/types.h>
5
4/* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't 6/* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't
5 even seem to implement statfs64 */ 7 even seem to implement statfs64 */
6#define __statfs_word __u32 8#define __statfs_word __u32
diff --git a/arch/alpha/include/asm/swab.h b/arch/alpha/include/asm/swab.h
index 68e7089e02d5..4d682b16c7c4 100644
--- a/arch/alpha/include/asm/swab.h
+++ b/arch/alpha/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _ALPHA_SWAB_H 1#ifndef _ALPHA_SWAB_H
2#define _ALPHA_SWAB_H 2#define _ALPHA_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6#include <asm/compiler.h> 6#include <asm/compiler.h>
7 7
diff --git a/arch/alpha/kernel/.gitignore b/arch/alpha/kernel/.gitignore
new file mode 100644
index 000000000000..c5f676c3c224
--- /dev/null
+++ b/arch/alpha/kernel/.gitignore
@@ -0,0 +1 @@
vmlinux.lds
diff --git a/arch/alpha/kernel/core_marvel.c b/arch/alpha/kernel/core_marvel.c
index 9cd8dca742a7..e302daecbe56 100644
--- a/arch/alpha/kernel/core_marvel.c
+++ b/arch/alpha/kernel/core_marvel.c
@@ -658,16 +658,8 @@ __marvel_rtc_io(u8 b, unsigned long addr, int write)
658 rtc_access.data = bcd2bin(b); 658 rtc_access.data = bcd2bin(b);
659 rtc_access.function = 0x48 + !write; /* GET/PUT_TOY */ 659 rtc_access.function = 0x48 + !write; /* GET/PUT_TOY */
660 660
661#ifdef CONFIG_SMP
662 if (smp_processor_id() != boot_cpuid)
663 smp_call_function_single(boot_cpuid,
664 __marvel_access_rtc,
665 &rtc_access, 1);
666 else
667 __marvel_access_rtc(&rtc_access);
668#else
669 __marvel_access_rtc(&rtc_access); 661 __marvel_access_rtc(&rtc_access);
670#endif 662
671 ret = bin2bcd(rtc_access.data); 663 ret = bin2bcd(rtc_access.data);
672 break; 664 break;
673 665
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
index f77345bc66a9..e4a54b615894 100644
--- a/arch/alpha/kernel/entry.S
+++ b/arch/alpha/kernel/entry.S
@@ -896,9 +896,9 @@ sys_getxpid:
896.end sys_getxpid 896.end sys_getxpid
897 897
898 .align 4 898 .align 4
899 .globl sys_pipe 899 .globl sys_alpha_pipe
900 .ent sys_pipe 900 .ent sys_alpha_pipe
901sys_pipe: 901sys_alpha_pipe:
902 lda $sp, -16($sp) 902 lda $sp, -16($sp)
903 stq $26, 0($sp) 903 stq $26, 0($sp)
904 .prologue 0 904 .prologue 0
@@ -916,7 +916,7 @@ sys_pipe:
916 stq $1, 80+16($sp) 916 stq $1, 80+16($sp)
9171: lda $sp, 16($sp) 9171: lda $sp, 16($sp)
918 ret 918 ret
919.end sys_pipe 919.end sys_alpha_pipe
920 920
921 .align 4 921 .align 4
922 .globl sys_execve 922 .globl sys_execve
@@ -933,7 +933,7 @@ sys_execve:
933osf_sigprocmask: 933osf_sigprocmask:
934 .prologue 0 934 .prologue 0
935 mov $sp, $18 935 mov $sp, $18
936 jmp $31, do_osf_sigprocmask 936 jmp $31, sys_osf_sigprocmask
937.end osf_sigprocmask 937.end osf_sigprocmask
938 938
939 .align 4 939 .align 4
diff --git a/arch/alpha/kernel/irq_srm.c b/arch/alpha/kernel/irq_srm.c
index 32212014fbe9..a03fbca4940e 100644
--- a/arch/alpha/kernel/irq_srm.c
+++ b/arch/alpha/kernel/irq_srm.c
@@ -63,6 +63,8 @@ init_srm_irqs(long max, unsigned long ignore_mask)
63{ 63{
64 long i; 64 long i;
65 65
66 if (NR_IRQS <= 16)
67 return;
66 for (i = 16; i < max; ++i) { 68 for (i = 16; i < max; ++i) {
67 if (i < 64 && ((ignore_mask >> i) & 1)) 69 if (i < 64 && ((ignore_mask >> i) & 1))
68 continue; 70 continue;
diff --git a/arch/alpha/kernel/machvec_impl.h b/arch/alpha/kernel/machvec_impl.h
index 466c9dff8181..512685f78097 100644
--- a/arch/alpha/kernel/machvec_impl.h
+++ b/arch/alpha/kernel/machvec_impl.h
@@ -40,7 +40,10 @@
40#define CAT1(x,y) x##y 40#define CAT1(x,y) x##y
41#define CAT(x,y) CAT1(x,y) 41#define CAT(x,y) CAT1(x,y)
42 42
43#define DO_DEFAULT_RTC .rtc_port = 0x70 43#define DO_DEFAULT_RTC \
44 .rtc_port = 0x70, \
45 .rtc_get_time = common_get_rtc_time, \
46 .rtc_set_time = common_set_rtc_time
44 47
45#define DO_EV4_MMU \ 48#define DO_EV4_MMU \
46 .max_asn = EV4_MAX_ASN, \ 49 .max_asn = EV4_MAX_ASN, \
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
index 18a3ea1aac51..ae41f097864b 100644
--- a/arch/alpha/kernel/osf_sys.c
+++ b/arch/alpha/kernel/osf_sys.c
@@ -54,8 +54,7 @@ extern int do_pipe(int *);
54 * identical to OSF as we don't return 0 on success, but doing otherwise 54 * identical to OSF as we don't return 0 on success, but doing otherwise
55 * would require changes to libc. Hopefully this is good enough. 55 * would require changes to libc. Hopefully this is good enough.
56 */ 56 */
57asmlinkage unsigned long 57SYSCALL_DEFINE1(osf_brk, unsigned long, brk)
58osf_brk(unsigned long brk)
59{ 58{
60 unsigned long retval = sys_brk(brk); 59 unsigned long retval = sys_brk(brk);
61 if (brk && brk != retval) 60 if (brk && brk != retval)
@@ -66,9 +65,9 @@ osf_brk(unsigned long brk)
66/* 65/*
67 * This is pure guess-work.. 66 * This is pure guess-work..
68 */ 67 */
69asmlinkage int 68SYSCALL_DEFINE4(osf_set_program_attributes, unsigned long, text_start,
70osf_set_program_attributes(unsigned long text_start, unsigned long text_len, 69 unsigned long, text_len, unsigned long, bss_start,
71 unsigned long bss_start, unsigned long bss_len) 70 unsigned long, bss_len)
72{ 71{
73 struct mm_struct *mm; 72 struct mm_struct *mm;
74 73
@@ -146,9 +145,9 @@ Efault:
146 return -EFAULT; 145 return -EFAULT;
147} 146}
148 147
149asmlinkage int 148SYSCALL_DEFINE4(osf_getdirentries, unsigned int, fd,
150osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent, 149 struct osf_dirent __user *, dirent, unsigned int, count,
151 unsigned int count, long __user *basep) 150 long __user *, basep)
152{ 151{
153 int error; 152 int error;
154 struct file *file; 153 struct file *file;
@@ -177,9 +176,9 @@ osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent,
177 176
178#undef NAME_OFFSET 177#undef NAME_OFFSET
179 178
180asmlinkage unsigned long 179SYSCALL_DEFINE6(osf_mmap, unsigned long, addr, unsigned long, len,
181osf_mmap(unsigned long addr, unsigned long len, unsigned long prot, 180 unsigned long, prot, unsigned long, flags, unsigned long, fd,
182 unsigned long flags, unsigned long fd, unsigned long off) 181 unsigned long, off)
183{ 182{
184 struct file *file = NULL; 183 struct file *file = NULL;
185 unsigned long ret = -EBADF; 184 unsigned long ret = -EBADF;
@@ -254,8 +253,8 @@ do_osf_statfs(struct dentry * dentry, struct osf_statfs __user *buffer,
254 return error; 253 return error;
255} 254}
256 255
257asmlinkage int 256SYSCALL_DEFINE3(osf_statfs, char __user *, pathname,
258osf_statfs(char __user *pathname, struct osf_statfs __user *buffer, unsigned long bufsiz) 257 struct osf_statfs __user *, buffer, unsigned long, bufsiz)
259{ 258{
260 struct path path; 259 struct path path;
261 int retval; 260 int retval;
@@ -268,8 +267,8 @@ osf_statfs(char __user *pathname, struct osf_statfs __user *buffer, unsigned lon
268 return retval; 267 return retval;
269} 268}
270 269
271asmlinkage int 270SYSCALL_DEFINE3(osf_fstatfs, unsigned long, fd,
272osf_fstatfs(unsigned long fd, struct osf_statfs __user *buffer, unsigned long bufsiz) 271 struct osf_statfs __user *, buffer, unsigned long, bufsiz)
273{ 272{
274 struct file *file; 273 struct file *file;
275 int retval; 274 int retval;
@@ -368,8 +367,8 @@ osf_procfs_mount(char *dirname, struct procfs_args __user *args, int flags)
368 return do_mount("", dirname, "proc", flags, NULL); 367 return do_mount("", dirname, "proc", flags, NULL);
369} 368}
370 369
371asmlinkage int 370SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, char __user *, path,
372osf_mount(unsigned long typenr, char __user *path, int flag, void __user *data) 371 int, flag, void __user *, data)
373{ 372{
374 int retval = -EINVAL; 373 int retval = -EINVAL;
375 char *name; 374 char *name;
@@ -399,8 +398,7 @@ osf_mount(unsigned long typenr, char __user *path, int flag, void __user *data)
399 return retval; 398 return retval;
400} 399}
401 400
402asmlinkage int 401SYSCALL_DEFINE1(osf_utsname, char __user *, name)
403osf_utsname(char __user *name)
404{ 402{
405 int error; 403 int error;
406 404
@@ -423,14 +421,12 @@ osf_utsname(char __user *name)
423 return error; 421 return error;
424} 422}
425 423
426asmlinkage unsigned long 424SYSCALL_DEFINE0(getpagesize)
427sys_getpagesize(void)
428{ 425{
429 return PAGE_SIZE; 426 return PAGE_SIZE;
430} 427}
431 428
432asmlinkage unsigned long 429SYSCALL_DEFINE0(getdtablesize)
433sys_getdtablesize(void)
434{ 430{
435 return sysctl_nr_open; 431 return sysctl_nr_open;
436} 432}
@@ -438,8 +434,7 @@ sys_getdtablesize(void)
438/* 434/*
439 * For compatibility with OSF/1 only. Use utsname(2) instead. 435 * For compatibility with OSF/1 only. Use utsname(2) instead.
440 */ 436 */
441asmlinkage int 437SYSCALL_DEFINE2(osf_getdomainname, char __user *, name, int, namelen)
442osf_getdomainname(char __user *name, int namelen)
443{ 438{
444 unsigned len; 439 unsigned len;
445 int i; 440 int i;
@@ -527,8 +522,8 @@ enum pl_code {
527 PL_DEL = 5, PL_FDEL = 6 522 PL_DEL = 5, PL_FDEL = 6
528}; 523};
529 524
530asmlinkage long 525SYSCALL_DEFINE2(osf_proplist_syscall, enum pl_code, code,
531osf_proplist_syscall(enum pl_code code, union pl_args __user *args) 526 union pl_args __user *, args)
532{ 527{
533 long error; 528 long error;
534 int __user *min_buf_size_ptr; 529 int __user *min_buf_size_ptr;
@@ -567,8 +562,8 @@ osf_proplist_syscall(enum pl_code code, union pl_args __user *args)
567 return error; 562 return error;
568} 563}
569 564
570asmlinkage int 565SYSCALL_DEFINE2(osf_sigstack, struct sigstack __user *, uss,
571osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss) 566 struct sigstack __user *, uoss)
572{ 567{
573 unsigned long usp = rdusp(); 568 unsigned long usp = rdusp();
574 unsigned long oss_sp = current->sas_ss_sp + current->sas_ss_size; 569 unsigned long oss_sp = current->sas_ss_sp + current->sas_ss_size;
@@ -608,8 +603,7 @@ osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss)
608 return error; 603 return error;
609} 604}
610 605
611asmlinkage long 606SYSCALL_DEFINE3(osf_sysinfo, int, command, char __user *, buf, long, count)
612osf_sysinfo(int command, char __user *buf, long count)
613{ 607{
614 char *sysinfo_table[] = { 608 char *sysinfo_table[] = {
615 utsname()->sysname, 609 utsname()->sysname,
@@ -647,9 +641,8 @@ osf_sysinfo(int command, char __user *buf, long count)
647 return err; 641 return err;
648} 642}
649 643
650asmlinkage unsigned long 644SYSCALL_DEFINE5(osf_getsysinfo, unsigned long, op, void __user *, buffer,
651osf_getsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, 645 unsigned long, nbytes, int __user *, start, void __user *, arg)
652 int __user *start, void __user *arg)
653{ 646{
654 unsigned long w; 647 unsigned long w;
655 struct percpu_struct *cpu; 648 struct percpu_struct *cpu;
@@ -705,9 +698,8 @@ osf_getsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes,
705 return -EOPNOTSUPP; 698 return -EOPNOTSUPP;
706} 699}
707 700
708asmlinkage unsigned long 701SYSCALL_DEFINE5(osf_setsysinfo, unsigned long, op, void __user *, buffer,
709osf_setsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, 702 unsigned long, nbytes, int __user *, start, void __user *, arg)
710 int __user *start, void __user *arg)
711{ 703{
712 switch (op) { 704 switch (op) {
713 case SSI_IEEE_FP_CONTROL: { 705 case SSI_IEEE_FP_CONTROL: {
@@ -880,8 +872,8 @@ jiffies_to_timeval32(unsigned long jiffies, struct timeval32 *value)
880 value->tv_sec = jiffies / HZ; 872 value->tv_sec = jiffies / HZ;
881} 873}
882 874
883asmlinkage int 875SYSCALL_DEFINE2(osf_gettimeofday, struct timeval32 __user *, tv,
884osf_gettimeofday(struct timeval32 __user *tv, struct timezone __user *tz) 876 struct timezone __user *, tz)
885{ 877{
886 if (tv) { 878 if (tv) {
887 struct timeval ktv; 879 struct timeval ktv;
@@ -896,8 +888,8 @@ osf_gettimeofday(struct timeval32 __user *tv, struct timezone __user *tz)
896 return 0; 888 return 0;
897} 889}
898 890
899asmlinkage int 891SYSCALL_DEFINE2(osf_settimeofday, struct timeval32 __user *, tv,
900osf_settimeofday(struct timeval32 __user *tv, struct timezone __user *tz) 892 struct timezone __user *, tz)
901{ 893{
902 struct timespec kts; 894 struct timespec kts;
903 struct timezone ktz; 895 struct timezone ktz;
@@ -916,8 +908,7 @@ osf_settimeofday(struct timeval32 __user *tv, struct timezone __user *tz)
916 return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL); 908 return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL);
917} 909}
918 910
919asmlinkage int 911SYSCALL_DEFINE2(osf_getitimer, int, which, struct itimerval32 __user *, it)
920osf_getitimer(int which, struct itimerval32 __user *it)
921{ 912{
922 struct itimerval kit; 913 struct itimerval kit;
923 int error; 914 int error;
@@ -929,8 +920,8 @@ osf_getitimer(int which, struct itimerval32 __user *it)
929 return error; 920 return error;
930} 921}
931 922
932asmlinkage int 923SYSCALL_DEFINE3(osf_setitimer, int, which, struct itimerval32 __user *, in,
933osf_setitimer(int which, struct itimerval32 __user *in, struct itimerval32 __user *out) 924 struct itimerval32 __user *, out)
934{ 925{
935 struct itimerval kin, kout; 926 struct itimerval kin, kout;
936 int error; 927 int error;
@@ -952,8 +943,8 @@ osf_setitimer(int which, struct itimerval32 __user *in, struct itimerval32 __use
952 943
953} 944}
954 945
955asmlinkage int 946SYSCALL_DEFINE2(osf_utimes, char __user *, filename,
956osf_utimes(char __user *filename, struct timeval32 __user *tvs) 947 struct timeval32 __user *, tvs)
957{ 948{
958 struct timespec tv[2]; 949 struct timespec tv[2];
959 950
@@ -979,9 +970,8 @@ osf_utimes(char __user *filename, struct timeval32 __user *tvs)
979#define MAX_SELECT_SECONDS \ 970#define MAX_SELECT_SECONDS \
980 ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1) 971 ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1)
981 972
982asmlinkage int 973SYSCALL_DEFINE5(osf_select, int, n, fd_set __user *, inp, fd_set __user *, outp,
983osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, 974 fd_set __user *, exp, struct timeval32 __user *, tvp)
984 struct timeval32 __user *tvp)
985{ 975{
986 struct timespec end_time, *to = NULL; 976 struct timespec end_time, *to = NULL;
987 if (tvp) { 977 if (tvp) {
@@ -1026,8 +1016,7 @@ struct rusage32 {
1026 long ru_nivcsw; /* involuntary " */ 1016 long ru_nivcsw; /* involuntary " */
1027}; 1017};
1028 1018
1029asmlinkage int 1019SYSCALL_DEFINE2(osf_getrusage, int, who, struct rusage32 __user *, ru)
1030osf_getrusage(int who, struct rusage32 __user *ru)
1031{ 1020{
1032 struct rusage32 r; 1021 struct rusage32 r;
1033 1022
@@ -1053,9 +1042,8 @@ osf_getrusage(int who, struct rusage32 __user *ru)
1053 return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0; 1042 return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0;
1054} 1043}
1055 1044
1056asmlinkage long 1045SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, ustatus, int, options,
1057osf_wait4(pid_t pid, int __user *ustatus, int options, 1046 struct rusage32 __user *, ur)
1058 struct rusage32 __user *ur)
1059{ 1047{
1060 struct rusage r; 1048 struct rusage r;
1061 long ret, err; 1049 long ret, err;
@@ -1101,8 +1089,8 @@ osf_wait4(pid_t pid, int __user *ustatus, int options,
1101 * seems to be a timeval pointer, and I suspect the second 1089 * seems to be a timeval pointer, and I suspect the second
1102 * one is the time remaining.. Ho humm.. No documentation. 1090 * one is the time remaining.. Ho humm.. No documentation.
1103 */ 1091 */
1104asmlinkage int 1092SYSCALL_DEFINE2(osf_usleep_thread, struct timeval32 __user *, sleep,
1105osf_usleep_thread(struct timeval32 __user *sleep, struct timeval32 __user *remain) 1093 struct timeval32 __user *, remain)
1106{ 1094{
1107 struct timeval tmp; 1095 struct timeval tmp;
1108 unsigned long ticks; 1096 unsigned long ticks;
@@ -1155,8 +1143,7 @@ struct timex32 {
1155 int :32; int :32; int :32; int :32; 1143 int :32; int :32; int :32; int :32;
1156}; 1144};
1157 1145
1158asmlinkage int 1146SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
1159sys_old_adjtimex(struct timex32 __user *txc_p)
1160{ 1147{
1161 struct timex txc; 1148 struct timex txc;
1162 int ret; 1149 int ret;
@@ -1267,8 +1254,8 @@ osf_fix_iov_len(const struct iovec __user *iov, unsigned long count)
1267 return 0; 1254 return 0;
1268} 1255}
1269 1256
1270asmlinkage ssize_t 1257SYSCALL_DEFINE3(osf_readv, unsigned long, fd,
1271osf_readv(unsigned long fd, const struct iovec __user * vector, unsigned long count) 1258 const struct iovec __user *, vector, unsigned long, count)
1272{ 1259{
1273 if (unlikely(personality(current->personality) == PER_OSF4)) 1260 if (unlikely(personality(current->personality) == PER_OSF4))
1274 if (osf_fix_iov_len(vector, count)) 1261 if (osf_fix_iov_len(vector, count))
@@ -1276,8 +1263,8 @@ osf_readv(unsigned long fd, const struct iovec __user * vector, unsigned long co
1276 return sys_readv(fd, vector, count); 1263 return sys_readv(fd, vector, count);
1277} 1264}
1278 1265
1279asmlinkage ssize_t 1266SYSCALL_DEFINE3(osf_writev, unsigned long, fd,
1280osf_writev(unsigned long fd, const struct iovec __user * vector, unsigned long count) 1267 const struct iovec __user *, vector, unsigned long, count)
1281{ 1268{
1282 if (unlikely(personality(current->personality) == PER_OSF4)) 1269 if (unlikely(personality(current->personality) == PER_OSF4))
1283 if (osf_fix_iov_len(vector, count)) 1270 if (osf_fix_iov_len(vector, count))
diff --git a/arch/alpha/kernel/pci-noop.c b/arch/alpha/kernel/pci-noop.c
index 8ac08311f5a5..c19a376520f4 100644
--- a/arch/alpha/kernel/pci-noop.c
+++ b/arch/alpha/kernel/pci-noop.c
@@ -109,7 +109,8 @@ sys_pciconfig_write(unsigned long bus, unsigned long dfn,
109/* Stubs for the routines in pci_iommu.c: */ 109/* Stubs for the routines in pci_iommu.c: */
110 110
111void * 111void *
112pci_alloc_consistent(struct pci_dev *pdev, size_t size, dma_addr_t *dma_addrp) 112__pci_alloc_consistent(struct pci_dev *pdev, size_t size,
113 dma_addr_t *dma_addrp, gfp_t gfp)
113{ 114{
114 return NULL; 115 return NULL;
115} 116}
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c
index f238370c907d..8d0097f10208 100644
--- a/arch/alpha/kernel/process.c
+++ b/arch/alpha/kernel/process.c
@@ -93,8 +93,8 @@ common_shutdown_1(void *generic_ptr)
93 if (cpuid != boot_cpuid) { 93 if (cpuid != boot_cpuid) {
94 flags |= 0x00040000UL; /* "remain halted" */ 94 flags |= 0x00040000UL; /* "remain halted" */
95 *pflags = flags; 95 *pflags = flags;
96 cpu_clear(cpuid, cpu_present_map); 96 set_cpu_present(cpuid, false);
97 cpu_clear(cpuid, cpu_possible_map); 97 set_cpu_possible(cpuid, false);
98 halt(); 98 halt();
99 } 99 }
100#endif 100#endif
@@ -120,8 +120,8 @@ common_shutdown_1(void *generic_ptr)
120 120
121#ifdef CONFIG_SMP 121#ifdef CONFIG_SMP
122 /* Wait for the secondaries to halt. */ 122 /* Wait for the secondaries to halt. */
123 cpu_clear(boot_cpuid, cpu_present_map); 123 set_cpu_present(boot_cpuid, false);
124 cpu_clear(boot_cpuid, cpu_possible_map); 124 set_cpu_possible(boot_cpuid, false);
125 while (cpus_weight(cpu_present_map)) 125 while (cpus_weight(cpu_present_map))
126 barrier(); 126 barrier();
127#endif 127#endif
diff --git a/arch/alpha/kernel/proto.h b/arch/alpha/kernel/proto.h
index 708d5ca87782..fe14c6747cd6 100644
--- a/arch/alpha/kernel/proto.h
+++ b/arch/alpha/kernel/proto.h
@@ -145,6 +145,8 @@ extern void smp_percpu_timer_interrupt(struct pt_regs *);
145extern irqreturn_t timer_interrupt(int irq, void *dev); 145extern irqreturn_t timer_interrupt(int irq, void *dev);
146extern void common_init_rtc(void); 146extern void common_init_rtc(void);
147extern unsigned long est_cycle_freq; 147extern unsigned long est_cycle_freq;
148extern unsigned int common_get_rtc_time(struct rtc_time *time);
149extern int common_set_rtc_time(struct rtc_time *time);
148 150
149/* smc37c93x.c */ 151/* smc37c93x.c */
150extern void SMC93x_Init(void); 152extern void SMC93x_Init(void);
diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c
index 410af4f3140e..df65eaa84c4c 100644
--- a/arch/alpha/kernel/signal.c
+++ b/arch/alpha/kernel/signal.c
@@ -19,6 +19,7 @@
19#include <linux/tty.h> 19#include <linux/tty.h>
20#include <linux/binfmts.h> 20#include <linux/binfmts.h>
21#include <linux/bitops.h> 21#include <linux/bitops.h>
22#include <linux/syscalls.h>
22 23
23#include <asm/uaccess.h> 24#include <asm/uaccess.h>
24#include <asm/sigcontext.h> 25#include <asm/sigcontext.h>
@@ -51,8 +52,8 @@ static void do_signal(struct pt_regs *, struct switch_stack *,
51 * Note that we don't need to acquire the kernel lock for SMP 52 * Note that we don't need to acquire the kernel lock for SMP
52 * operation, as all of this is local to this thread. 53 * operation, as all of this is local to this thread.
53 */ 54 */
54asmlinkage unsigned long 55SYSCALL_DEFINE3(osf_sigprocmask, int, how, unsigned long, newmask,
55do_osf_sigprocmask(int how, unsigned long newmask, struct pt_regs *regs) 56 struct pt_regs *, regs)
56{ 57{
57 unsigned long oldmask = -EINVAL; 58 unsigned long oldmask = -EINVAL;
58 59
@@ -81,9 +82,9 @@ do_osf_sigprocmask(int how, unsigned long newmask, struct pt_regs *regs)
81 return oldmask; 82 return oldmask;
82} 83}
83 84
84asmlinkage int 85SYSCALL_DEFINE3(osf_sigaction, int, sig,
85osf_sigaction(int sig, const struct osf_sigaction __user *act, 86 const struct osf_sigaction __user *, act,
86 struct osf_sigaction __user *oact) 87 struct osf_sigaction __user *, oact)
87{ 88{
88 struct k_sigaction new_ka, old_ka; 89 struct k_sigaction new_ka, old_ka;
89 int ret; 90 int ret;
@@ -112,10 +113,9 @@ osf_sigaction(int sig, const struct osf_sigaction __user *act,
112 return ret; 113 return ret;
113} 114}
114 115
115asmlinkage long 116SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act,
116sys_rt_sigaction(int sig, const struct sigaction __user *act, 117 struct sigaction __user *, oact,
117 struct sigaction __user *oact, 118 size_t, sigsetsize, void __user *, restorer)
118 size_t sigsetsize, void __user *restorer)
119{ 119{
120 struct k_sigaction new_ka, old_ka; 120 struct k_sigaction new_ka, old_ka;
121 int ret; 121 int ret;
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c
index d953e510f68d..b1fe5674c3a1 100644
--- a/arch/alpha/kernel/smp.c
+++ b/arch/alpha/kernel/smp.c
@@ -121,10 +121,11 @@ smp_callin(void)
121{ 121{
122 int cpuid = hard_smp_processor_id(); 122 int cpuid = hard_smp_processor_id();
123 123
124 if (cpu_test_and_set(cpuid, cpu_online_map)) { 124 if (cpu_online(cpuid)) {
125 printk("??, cpu 0x%x already present??\n", cpuid); 125 printk("??, cpu 0x%x already present??\n", cpuid);
126 BUG(); 126 BUG();
127 } 127 }
128 set_cpu_online(cpuid, true);
128 129
129 /* Turn on machine checks. */ 130 /* Turn on machine checks. */
130 wrmces(7); 131 wrmces(7);
@@ -435,8 +436,8 @@ setup_smp(void)
435 ((char *)cpubase + i*hwrpb->processor_size); 436 ((char *)cpubase + i*hwrpb->processor_size);
436 if ((cpu->flags & 0x1cc) == 0x1cc) { 437 if ((cpu->flags & 0x1cc) == 0x1cc) {
437 smp_num_probed++; 438 smp_num_probed++;
438 cpu_set(i, cpu_possible_map); 439 set_cpu_possible(i, true);
439 cpu_set(i, cpu_present_map); 440 set_cpu_present(i, true);
440 cpu->pal_revision = boot_cpu_palrev; 441 cpu->pal_revision = boot_cpu_palrev;
441 } 442 }
442 443
@@ -469,8 +470,8 @@ smp_prepare_cpus(unsigned int max_cpus)
469 470
470 /* Nothing to do on a UP box, or when told not to. */ 471 /* Nothing to do on a UP box, or when told not to. */
471 if (smp_num_probed == 1 || max_cpus == 0) { 472 if (smp_num_probed == 1 || max_cpus == 0) {
472 cpu_possible_map = cpumask_of_cpu(boot_cpuid); 473 init_cpu_possible(cpumask_of(boot_cpuid));
473 cpu_present_map = cpumask_of_cpu(boot_cpuid); 474 init_cpu_present(cpumask_of(boot_cpuid));
474 printk(KERN_INFO "SMP mode deactivated.\n"); 475 printk(KERN_INFO "SMP mode deactivated.\n");
475 return; 476 return;
476 } 477 }
diff --git a/arch/alpha/kernel/sys_jensen.c b/arch/alpha/kernel/sys_jensen.c
index 2c3de97de46c..e2516f9a8967 100644
--- a/arch/alpha/kernel/sys_jensen.c
+++ b/arch/alpha/kernel/sys_jensen.c
@@ -261,6 +261,8 @@ struct alpha_machine_vector jensen_mv __initmv = {
261 .machine_check = jensen_machine_check, 261 .machine_check = jensen_machine_check,
262 .max_isa_dma_address = ALPHA_MAX_ISA_DMA_ADDRESS, 262 .max_isa_dma_address = ALPHA_MAX_ISA_DMA_ADDRESS,
263 .rtc_port = 0x170, 263 .rtc_port = 0x170,
264 .rtc_get_time = common_get_rtc_time,
265 .rtc_set_time = common_set_rtc_time,
264 266
265 .nr_irqs = 16, 267 .nr_irqs = 16,
266 .device_interrupt = jensen_device_interrupt, 268 .device_interrupt = jensen_device_interrupt,
diff --git a/arch/alpha/kernel/sys_marvel.c b/arch/alpha/kernel/sys_marvel.c
index 828449cd2636..c5a1a2438c67 100644
--- a/arch/alpha/kernel/sys_marvel.c
+++ b/arch/alpha/kernel/sys_marvel.c
@@ -23,6 +23,7 @@
23#include <asm/hwrpb.h> 23#include <asm/hwrpb.h>
24#include <asm/tlbflush.h> 24#include <asm/tlbflush.h>
25#include <asm/vga.h> 25#include <asm/vga.h>
26#include <asm/rtc.h>
26 27
27#include "proto.h" 28#include "proto.h"
28#include "err_impl.h" 29#include "err_impl.h"
@@ -426,6 +427,57 @@ marvel_init_rtc(void)
426 init_rtc_irq(); 427 init_rtc_irq();
427} 428}
428 429
430struct marvel_rtc_time {
431 struct rtc_time *time;
432 int retval;
433};
434
435#ifdef CONFIG_SMP
436static void
437smp_get_rtc_time(void *data)
438{
439 struct marvel_rtc_time *mrt = data;
440 mrt->retval = __get_rtc_time(mrt->time);
441}
442
443static void
444smp_set_rtc_time(void *data)
445{
446 struct marvel_rtc_time *mrt = data;
447 mrt->retval = __set_rtc_time(mrt->time);
448}
449#endif
450
451static unsigned int
452marvel_get_rtc_time(struct rtc_time *time)
453{
454#ifdef CONFIG_SMP
455 struct marvel_rtc_time mrt;
456
457 if (smp_processor_id() != boot_cpuid) {
458 mrt.time = time;
459 smp_call_function_single(boot_cpuid, smp_get_rtc_time, &mrt, 1);
460 return mrt.retval;
461 }
462#endif
463 return __get_rtc_time(time);
464}
465
466static int
467marvel_set_rtc_time(struct rtc_time *time)
468{
469#ifdef CONFIG_SMP
470 struct marvel_rtc_time mrt;
471
472 if (smp_processor_id() != boot_cpuid) {
473 mrt.time = time;
474 smp_call_function_single(boot_cpuid, smp_set_rtc_time, &mrt, 1);
475 return mrt.retval;
476 }
477#endif
478 return __set_rtc_time(time);
479}
480
429static void 481static void
430marvel_smp_callin(void) 482marvel_smp_callin(void)
431{ 483{
@@ -466,7 +518,9 @@ marvel_smp_callin(void)
466struct alpha_machine_vector marvel_ev7_mv __initmv = { 518struct alpha_machine_vector marvel_ev7_mv __initmv = {
467 .vector_name = "MARVEL/EV7", 519 .vector_name = "MARVEL/EV7",
468 DO_EV7_MMU, 520 DO_EV7_MMU,
469 DO_DEFAULT_RTC, 521 .rtc_port = 0x70,
522 .rtc_get_time = marvel_get_rtc_time,
523 .rtc_set_time = marvel_set_rtc_time,
470 DO_MARVEL_IO, 524 DO_MARVEL_IO,
471 .machine_check = marvel_machine_check, 525 .machine_check = marvel_machine_check,
472 .max_isa_dma_address = ALPHA_MAX_ISA_DMA_ADDRESS, 526 .max_isa_dma_address = ALPHA_MAX_ISA_DMA_ADDRESS,
diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c
index a7f23b5ab814..99c0f46f6b9c 100644
--- a/arch/alpha/kernel/sys_nautilus.c
+++ b/arch/alpha/kernel/sys_nautilus.c
@@ -245,6 +245,10 @@ nautilus_init_pci(void)
245 IRONGATE0->pci_mem = pci_mem; 245 IRONGATE0->pci_mem = pci_mem;
246 246
247 pci_bus_assign_resources(bus); 247 pci_bus_assign_resources(bus);
248
249 /* pci_common_swizzle() relies on bus->self being NULL
250 for the root bus, so just clear it. */
251 bus->self = NULL;
248 pci_fixup_irqs(alpha_mv.pci_swizzle, alpha_mv.pci_map_irq); 252 pci_fixup_irqs(alpha_mv.pci_swizzle, alpha_mv.pci_map_irq);
249} 253}
250 254
diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S
index ba914af18c4f..95c9aef1c106 100644
--- a/arch/alpha/kernel/systbls.S
+++ b/arch/alpha/kernel/systbls.S
@@ -17,7 +17,7 @@ sys_call_table:
17 .quad sys_write 17 .quad sys_write
18 .quad alpha_ni_syscall /* 5 */ 18 .quad alpha_ni_syscall /* 5 */
19 .quad sys_close 19 .quad sys_close
20 .quad osf_wait4 20 .quad sys_osf_wait4
21 .quad alpha_ni_syscall 21 .quad alpha_ni_syscall
22 .quad sys_link 22 .quad sys_link
23 .quad sys_unlink /* 10 */ 23 .quad sys_unlink /* 10 */
@@ -27,11 +27,11 @@ sys_call_table:
27 .quad sys_mknod 27 .quad sys_mknod
28 .quad sys_chmod /* 15 */ 28 .quad sys_chmod /* 15 */
29 .quad sys_chown 29 .quad sys_chown
30 .quad osf_brk 30 .quad sys_osf_brk
31 .quad alpha_ni_syscall 31 .quad alpha_ni_syscall
32 .quad sys_lseek 32 .quad sys_lseek
33 .quad sys_getxpid /* 20 */ 33 .quad sys_getxpid /* 20 */
34 .quad osf_mount 34 .quad sys_osf_mount
35 .quad sys_umount 35 .quad sys_umount
36 .quad sys_setuid 36 .quad sys_setuid
37 .quad sys_getxuid 37 .quad sys_getxuid
@@ -52,8 +52,8 @@ sys_call_table:
52 .quad sys_setpgid 52 .quad sys_setpgid
53 .quad alpha_ni_syscall /* 40 */ 53 .quad alpha_ni_syscall /* 40 */
54 .quad sys_dup 54 .quad sys_dup
55 .quad sys_pipe 55 .quad sys_alpha_pipe
56 .quad osf_set_program_attributes 56 .quad sys_osf_set_program_attributes
57 .quad alpha_ni_syscall 57 .quad alpha_ni_syscall
58 .quad sys_open /* 45 */ 58 .quad sys_open /* 45 */
59 .quad alpha_ni_syscall 59 .quad alpha_ni_syscall
@@ -81,7 +81,7 @@ sys_call_table:
81 .quad sys_newlstat 81 .quad sys_newlstat
82 .quad alpha_ni_syscall 82 .quad alpha_ni_syscall
83 .quad alpha_ni_syscall /* 70 */ 83 .quad alpha_ni_syscall /* 70 */
84 .quad osf_mmap 84 .quad sys_osf_mmap
85 .quad alpha_ni_syscall 85 .quad alpha_ni_syscall
86 .quad sys_munmap 86 .quad sys_munmap
87 .quad sys_mprotect 87 .quad sys_mprotect
@@ -94,17 +94,17 @@ sys_call_table:
94 .quad sys_setgroups /* 80 */ 94 .quad sys_setgroups /* 80 */
95 .quad alpha_ni_syscall 95 .quad alpha_ni_syscall
96 .quad sys_setpgid 96 .quad sys_setpgid
97 .quad osf_setitimer 97 .quad sys_osf_setitimer
98 .quad alpha_ni_syscall 98 .quad alpha_ni_syscall
99 .quad alpha_ni_syscall /* 85 */ 99 .quad alpha_ni_syscall /* 85 */
100 .quad osf_getitimer 100 .quad sys_osf_getitimer
101 .quad sys_gethostname 101 .quad sys_gethostname
102 .quad sys_sethostname 102 .quad sys_sethostname
103 .quad sys_getdtablesize 103 .quad sys_getdtablesize
104 .quad sys_dup2 /* 90 */ 104 .quad sys_dup2 /* 90 */
105 .quad sys_newfstat 105 .quad sys_newfstat
106 .quad sys_fcntl 106 .quad sys_fcntl
107 .quad osf_select 107 .quad sys_osf_select
108 .quad sys_poll 108 .quad sys_poll
109 .quad sys_fsync /* 95 */ 109 .quad sys_fsync /* 95 */
110 .quad sys_setpriority 110 .quad sys_setpriority
@@ -123,22 +123,22 @@ sys_call_table:
123 .quad alpha_ni_syscall 123 .quad alpha_ni_syscall
124 .quad alpha_ni_syscall /* 110 */ 124 .quad alpha_ni_syscall /* 110 */
125 .quad sys_sigsuspend 125 .quad sys_sigsuspend
126 .quad osf_sigstack 126 .quad sys_osf_sigstack
127 .quad sys_recvmsg 127 .quad sys_recvmsg
128 .quad sys_sendmsg 128 .quad sys_sendmsg
129 .quad alpha_ni_syscall /* 115 */ 129 .quad alpha_ni_syscall /* 115 */
130 .quad osf_gettimeofday 130 .quad sys_osf_gettimeofday
131 .quad osf_getrusage 131 .quad sys_osf_getrusage
132 .quad sys_getsockopt 132 .quad sys_getsockopt
133 .quad alpha_ni_syscall 133 .quad alpha_ni_syscall
134#ifdef CONFIG_OSF4_COMPAT 134#ifdef CONFIG_OSF4_COMPAT
135 .quad osf_readv /* 120 */ 135 .quad sys_osf_readv /* 120 */
136 .quad osf_writev 136 .quad sys_osf_writev
137#else 137#else
138 .quad sys_readv /* 120 */ 138 .quad sys_readv /* 120 */
139 .quad sys_writev 139 .quad sys_writev
140#endif 140#endif
141 .quad osf_settimeofday 141 .quad sys_osf_settimeofday
142 .quad sys_fchown 142 .quad sys_fchown
143 .quad sys_fchmod 143 .quad sys_fchmod
144 .quad sys_recvfrom /* 125 */ 144 .quad sys_recvfrom /* 125 */
@@ -154,7 +154,7 @@ sys_call_table:
154 .quad sys_socketpair /* 135 */ 154 .quad sys_socketpair /* 135 */
155 .quad sys_mkdir 155 .quad sys_mkdir
156 .quad sys_rmdir 156 .quad sys_rmdir
157 .quad osf_utimes 157 .quad sys_osf_utimes
158 .quad alpha_ni_syscall 158 .quad alpha_ni_syscall
159 .quad alpha_ni_syscall /* 140 */ 159 .quad alpha_ni_syscall /* 140 */
160 .quad sys_getpeername 160 .quad sys_getpeername
@@ -172,16 +172,16 @@ sys_call_table:
172 .quad alpha_ni_syscall 172 .quad alpha_ni_syscall
173 .quad alpha_ni_syscall 173 .quad alpha_ni_syscall
174 .quad alpha_ni_syscall /* 155 */ 174 .quad alpha_ni_syscall /* 155 */
175 .quad osf_sigaction 175 .quad sys_osf_sigaction
176 .quad alpha_ni_syscall 176 .quad alpha_ni_syscall
177 .quad alpha_ni_syscall 177 .quad alpha_ni_syscall
178 .quad osf_getdirentries 178 .quad sys_osf_getdirentries
179 .quad osf_statfs /* 160 */ 179 .quad sys_osf_statfs /* 160 */
180 .quad osf_fstatfs 180 .quad sys_osf_fstatfs
181 .quad alpha_ni_syscall 181 .quad alpha_ni_syscall
182 .quad alpha_ni_syscall 182 .quad alpha_ni_syscall
183 .quad alpha_ni_syscall 183 .quad alpha_ni_syscall
184 .quad osf_getdomainname /* 165 */ 184 .quad sys_osf_getdomainname /* 165 */
185 .quad sys_setdomainname 185 .quad sys_setdomainname
186 .quad alpha_ni_syscall 186 .quad alpha_ni_syscall
187 .quad alpha_ni_syscall 187 .quad alpha_ni_syscall
@@ -224,7 +224,7 @@ sys_call_table:
224 .quad sys_semctl 224 .quad sys_semctl
225 .quad sys_semget /* 205 */ 225 .quad sys_semget /* 205 */
226 .quad sys_semop 226 .quad sys_semop
227 .quad osf_utsname 227 .quad sys_osf_utsname
228 .quad sys_lchown 228 .quad sys_lchown
229 .quad sys_shmat 229 .quad sys_shmat
230 .quad sys_shmctl /* 210 */ 230 .quad sys_shmctl /* 210 */
@@ -258,23 +258,23 @@ sys_call_table:
258 .quad alpha_ni_syscall 258 .quad alpha_ni_syscall
259 .quad alpha_ni_syscall 259 .quad alpha_ni_syscall
260 .quad alpha_ni_syscall /* 240 */ 260 .quad alpha_ni_syscall /* 240 */
261 .quad osf_sysinfo 261 .quad sys_osf_sysinfo
262 .quad alpha_ni_syscall 262 .quad alpha_ni_syscall
263 .quad alpha_ni_syscall 263 .quad alpha_ni_syscall
264 .quad osf_proplist_syscall 264 .quad sys_osf_proplist_syscall
265 .quad alpha_ni_syscall /* 245 */ 265 .quad alpha_ni_syscall /* 245 */
266 .quad alpha_ni_syscall 266 .quad alpha_ni_syscall
267 .quad alpha_ni_syscall 267 .quad alpha_ni_syscall
268 .quad alpha_ni_syscall 268 .quad alpha_ni_syscall
269 .quad alpha_ni_syscall 269 .quad alpha_ni_syscall
270 .quad alpha_ni_syscall /* 250 */ 270 .quad alpha_ni_syscall /* 250 */
271 .quad osf_usleep_thread 271 .quad sys_osf_usleep_thread
272 .quad alpha_ni_syscall 272 .quad alpha_ni_syscall
273 .quad alpha_ni_syscall 273 .quad alpha_ni_syscall
274 .quad sys_sysfs 274 .quad sys_sysfs
275 .quad alpha_ni_syscall /* 255 */ 275 .quad alpha_ni_syscall /* 255 */
276 .quad osf_getsysinfo 276 .quad sys_osf_getsysinfo
277 .quad osf_setsysinfo 277 .quad sys_osf_setsysinfo
278 .quad alpha_ni_syscall 278 .quad alpha_ni_syscall
279 .quad alpha_ni_syscall 279 .quad alpha_ni_syscall
280 .quad alpha_ni_syscall /* 260 */ 280 .quad alpha_ni_syscall /* 260 */
diff --git a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c
index e6a231435cba..b04e2cbf23a4 100644
--- a/arch/alpha/kernel/time.c
+++ b/arch/alpha/kernel/time.c
@@ -46,6 +46,7 @@
46#include <asm/io.h> 46#include <asm/io.h>
47#include <asm/hwrpb.h> 47#include <asm/hwrpb.h>
48#include <asm/8253pit.h> 48#include <asm/8253pit.h>
49#include <asm/rtc.h>
49 50
50#include <linux/mc146818rtc.h> 51#include <linux/mc146818rtc.h>
51#include <linux/time.h> 52#include <linux/time.h>
@@ -180,6 +181,15 @@ common_init_rtc(void)
180 init_rtc_irq(); 181 init_rtc_irq();
181} 182}
182 183
184unsigned int common_get_rtc_time(struct rtc_time *time)
185{
186 return __get_rtc_time(time);
187}
188
189int common_set_rtc_time(struct rtc_time *time)
190{
191 return __set_rtc_time(time);
192}
183 193
184/* Validate a computed cycle counter result against the known bounds for 194/* Validate a computed cycle counter result against the known bounds for
185 the given processor core. There's too much brokenness in the way of 195 the given processor core. There's too much brokenness in the way of
diff --git a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c
index 234e42b8ee74..af71d38c8e41 100644
--- a/arch/alpha/mm/init.c
+++ b/arch/alpha/mm/init.c
@@ -59,13 +59,6 @@ pgd_alloc(struct mm_struct *mm)
59 return ret; 59 return ret;
60} 60}
61 61
62pte_t *
63pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
64{
65 pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
66 return pte;
67}
68
69 62
70/* 63/*
71 * BAD_PAGE is the page that is used for page faults when linux 64 * BAD_PAGE is the page that is used for page faults when linux
@@ -196,9 +189,21 @@ callback_init(void * kernel_end)
196 189
197 if (alpha_using_srm) { 190 if (alpha_using_srm) {
198 static struct vm_struct console_remap_vm; 191 static struct vm_struct console_remap_vm;
199 unsigned long vaddr = VMALLOC_START; 192 unsigned long nr_pages = 0;
193 unsigned long vaddr;
200 unsigned long i, j; 194 unsigned long i, j;
201 195
196 /* calculate needed size */
197 for (i = 0; i < crb->map_entries; ++i)
198 nr_pages += crb->map[i].count;
199
200 /* register the vm area */
201 console_remap_vm.flags = VM_ALLOC;
202 console_remap_vm.size = nr_pages << PAGE_SHIFT;
203 vm_area_register_early(&console_remap_vm, PAGE_SIZE);
204
205 vaddr = (unsigned long)console_remap_vm.addr;
206
202 /* Set up the third level PTEs and update the virtual 207 /* Set up the third level PTEs and update the virtual
203 addresses of the CRB entries. */ 208 addresses of the CRB entries. */
204 for (i = 0; i < crb->map_entries; ++i) { 209 for (i = 0; i < crb->map_entries; ++i) {
@@ -220,12 +225,6 @@ callback_init(void * kernel_end)
220 vaddr += PAGE_SIZE; 225 vaddr += PAGE_SIZE;
221 } 226 }
222 } 227 }
223
224 /* Let vmalloc know that we've allocated some space. */
225 console_remap_vm.flags = VM_ALLOC;
226 console_remap_vm.addr = (void *) VMALLOC_START;
227 console_remap_vm.size = vaddr - VMALLOC_START;
228 vmlist = &console_remap_vm;
229 } 228 }
230 229
231 callback_init_done = 1; 230 callback_init_done = 1;
diff --git a/arch/arm/common/clkdev.c b/arch/arm/common/clkdev.c
index 17a17b49a45b..1037bba18329 100644
--- a/arch/arm/common/clkdev.c
+++ b/arch/arm/common/clkdev.c
@@ -24,6 +24,15 @@
24static LIST_HEAD(clocks); 24static LIST_HEAD(clocks);
25static DEFINE_MUTEX(clocks_mutex); 25static DEFINE_MUTEX(clocks_mutex);
26 26
27/*
28 * Find the correct struct clk for the device and connection ID.
29 * We do slightly fuzzy matching here:
30 * An entry with a NULL ID is assumed to be a wildcard.
31 * If an entry has a device ID, it must match
32 * If an entry has a connection ID, it must match
33 * Then we take the most specific entry - with the following
34 * order of precidence: dev+con > dev only > con only.
35 */
27static struct clk *clk_find(const char *dev_id, const char *con_id) 36static struct clk *clk_find(const char *dev_id, const char *con_id)
28{ 37{
29 struct clk_lookup *p; 38 struct clk_lookup *p;
@@ -31,13 +40,17 @@ static struct clk *clk_find(const char *dev_id, const char *con_id)
31 int match, best = 0; 40 int match, best = 0;
32 41
33 list_for_each_entry(p, &clocks, node) { 42 list_for_each_entry(p, &clocks, node) {
34 if ((p->dev_id && !dev_id) || (p->con_id && !con_id))
35 continue;
36 match = 0; 43 match = 0;
37 if (p->dev_id) 44 if (p->dev_id) {
38 match += 2 * (strcmp(p->dev_id, dev_id) == 0); 45 if (!dev_id || strcmp(p->dev_id, dev_id))
39 if (p->con_id) 46 continue;
40 match += 1 * (strcmp(p->con_id, con_id) == 0); 47 match += 2;
48 }
49 if (p->con_id) {
50 if (!con_id || strcmp(p->con_id, con_id))
51 continue;
52 match += 1;
53 }
41 if (match == 0) 54 if (match == 0)
42 continue; 55 continue;
43 56
diff --git a/arch/arm/configs/afeb9260_defconfig b/arch/arm/configs/afeb9260_defconfig
index ce909586a34f..f7a272cb3da0 100644
--- a/arch/arm/configs/afeb9260_defconfig
+++ b/arch/arm/configs/afeb9260_defconfig
@@ -719,8 +719,8 @@ CONFIG_I2C_GPIO=y
719# Miscellaneous I2C Chip support 719# Miscellaneous I2C Chip support
720# 720#
721# CONFIG_DS1682 is not set 721# CONFIG_DS1682 is not set
722CONFIG_AT24=y 722CONFIG_EEPROM_AT24=y
723# CONFIG_SENSORS_EEPROM is not set 723# CONFIG_EEPROM_LEGACY is not set
724# CONFIG_SENSORS_PCF8574 is not set 724# CONFIG_SENSORS_PCF8574 is not set
725# CONFIG_PCF8575 is not set 725# CONFIG_PCF8575 is not set
726# CONFIG_SENSORS_PCA9539 is not set 726# CONFIG_SENSORS_PCA9539 is not set
@@ -744,7 +744,7 @@ CONFIG_SPI_ATMEL=y
744# 744#
745# SPI Protocol Masters 745# SPI Protocol Masters
746# 746#
747# CONFIG_SPI_AT25 is not set 747# CONFIG_EEPROM_AT25 is not set
748CONFIG_SPI_SPIDEV=y 748CONFIG_SPI_SPIDEV=y
749# CONFIG_SPI_TLE62X0 is not set 749# CONFIG_SPI_TLE62X0 is not set
750# CONFIG_W1 is not set 750# CONFIG_W1 is not set
diff --git a/arch/arm/configs/ams_delta_defconfig b/arch/arm/configs/ams_delta_defconfig
index 2c4aa11f0b0d..764732529ea3 100644
--- a/arch/arm/configs/ams_delta_defconfig
+++ b/arch/arm/configs/ams_delta_defconfig
@@ -767,7 +767,7 @@ CONFIG_I2C_OMAP=y
767# 767#
768# CONFIG_SENSORS_DS1337 is not set 768# CONFIG_SENSORS_DS1337 is not set
769# CONFIG_SENSORS_DS1374 is not set 769# CONFIG_SENSORS_DS1374 is not set
770# CONFIG_SENSORS_EEPROM is not set 770# CONFIG_EEPROM_LEGACY is not set
771# CONFIG_SENSORS_PCF8574 is not set 771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set 772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set 773# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91cap9adk_defconfig b/arch/arm/configs/at91cap9adk_defconfig
index bf97801a1068..bc6bd9f6174d 100644
--- a/arch/arm/configs/at91cap9adk_defconfig
+++ b/arch/arm/configs/at91cap9adk_defconfig
@@ -676,7 +676,7 @@ CONFIG_I2C_CHARDEV=y
676# CONFIG_SENSORS_DS1337 is not set 676# CONFIG_SENSORS_DS1337 is not set
677# CONFIG_SENSORS_DS1374 is not set 677# CONFIG_SENSORS_DS1374 is not set
678# CONFIG_DS1682 is not set 678# CONFIG_DS1682 is not set
679# CONFIG_SENSORS_EEPROM is not set 679# CONFIG_EEPROM_LEGACY is not set
680# CONFIG_SENSORS_PCF8574 is not set 680# CONFIG_SENSORS_PCF8574 is not set
681# CONFIG_SENSORS_PCA9539 is not set 681# CONFIG_SENSORS_PCA9539 is not set
682# CONFIG_SENSORS_PCF8591 is not set 682# CONFIG_SENSORS_PCF8591 is not set
@@ -703,7 +703,7 @@ CONFIG_SPI_ATMEL=y
703# 703#
704# SPI Protocol Masters 704# SPI Protocol Masters
705# 705#
706# CONFIG_SPI_AT25 is not set 706# CONFIG_EEPROM_AT25 is not set
707# CONFIG_SPI_SPIDEV is not set 707# CONFIG_SPI_SPIDEV is not set
708# CONFIG_SPI_TLE62X0 is not set 708# CONFIG_SPI_TLE62X0 is not set
709# CONFIG_W1 is not set 709# CONFIG_W1 is not set
diff --git a/arch/arm/configs/at91rm9200dk_defconfig b/arch/arm/configs/at91rm9200dk_defconfig
index 868fb7b9530b..238b218394e3 100644
--- a/arch/arm/configs/at91rm9200dk_defconfig
+++ b/arch/arm/configs/at91rm9200dk_defconfig
@@ -636,7 +636,7 @@ CONFIG_I2C_GPIO=y
636# 636#
637# CONFIG_SENSORS_DS1337 is not set 637# CONFIG_SENSORS_DS1337 is not set
638# CONFIG_SENSORS_DS1374 is not set 638# CONFIG_SENSORS_DS1374 is not set
639# CONFIG_SENSORS_EEPROM is not set 639# CONFIG_EEPROM_LEGACY is not set
640# CONFIG_SENSORS_PCF8574 is not set 640# CONFIG_SENSORS_PCF8574 is not set
641# CONFIG_SENSORS_PCA9539 is not set 641# CONFIG_SENSORS_PCA9539 is not set
642# CONFIG_SENSORS_PCF8591 is not set 642# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91rm9200ek_defconfig b/arch/arm/configs/at91rm9200ek_defconfig
index de43fc675616..9f7a99ace514 100644
--- a/arch/arm/configs/at91rm9200ek_defconfig
+++ b/arch/arm/configs/at91rm9200ek_defconfig
@@ -610,7 +610,7 @@ CONFIG_I2C_GPIO=y
610# 610#
611# CONFIG_SENSORS_DS1337 is not set 611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set 612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_SENSORS_EEPROM is not set 613# CONFIG_EEPROM_LEGACY is not set
614# CONFIG_SENSORS_PCF8574 is not set 614# CONFIG_SENSORS_PCF8574 is not set
615# CONFIG_SENSORS_PCA9539 is not set 615# CONFIG_SENSORS_PCA9539 is not set
616# CONFIG_SENSORS_PCF8591 is not set 616# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91sam9260ek_defconfig b/arch/arm/configs/at91sam9260ek_defconfig
index 38e6a0abeb4e..98e2f3de4bc5 100644
--- a/arch/arm/configs/at91sam9260ek_defconfig
+++ b/arch/arm/configs/at91sam9260ek_defconfig
@@ -582,7 +582,7 @@ CONFIG_I2C_GPIO=y
582# CONFIG_SENSORS_DS1337 is not set 582# CONFIG_SENSORS_DS1337 is not set
583# CONFIG_SENSORS_DS1374 is not set 583# CONFIG_SENSORS_DS1374 is not set
584# CONFIG_DS1682 is not set 584# CONFIG_DS1682 is not set
585# CONFIG_SENSORS_EEPROM is not set 585# CONFIG_EEPROM_LEGACY is not set
586# CONFIG_SENSORS_PCF8574 is not set 586# CONFIG_SENSORS_PCF8574 is not set
587# CONFIG_SENSORS_PCA9539 is not set 587# CONFIG_SENSORS_PCA9539 is not set
588# CONFIG_SENSORS_PCF8591 is not set 588# CONFIG_SENSORS_PCF8591 is not set
@@ -608,7 +608,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
608# Watchdog Device Drivers 608# Watchdog Device Drivers
609# 609#
610# CONFIG_SOFT_WATCHDOG is not set 610# CONFIG_SOFT_WATCHDOG is not set
611CONFIG_AT91SAM9_WATCHDOG=y 611CONFIG_AT91SAM9X_WATCHDOG=y
612 612
613# 613#
614# USB-based Watchdog Cards 614# USB-based Watchdog Cards
diff --git a/arch/arm/configs/at91sam9261ek_defconfig b/arch/arm/configs/at91sam9261ek_defconfig
index 93b779f94b41..149456142392 100644
--- a/arch/arm/configs/at91sam9261ek_defconfig
+++ b/arch/arm/configs/at91sam9261ek_defconfig
@@ -660,7 +660,7 @@ CONFIG_I2C_GPIO=y
660# CONFIG_SENSORS_DS1337 is not set 660# CONFIG_SENSORS_DS1337 is not set
661# CONFIG_SENSORS_DS1374 is not set 661# CONFIG_SENSORS_DS1374 is not set
662# CONFIG_DS1682 is not set 662# CONFIG_DS1682 is not set
663# CONFIG_SENSORS_EEPROM is not set 663# CONFIG_EEPROM_LEGACY is not set
664# CONFIG_SENSORS_PCF8574 is not set 664# CONFIG_SENSORS_PCF8574 is not set
665# CONFIG_SENSORS_PCA9539 is not set 665# CONFIG_SENSORS_PCA9539 is not set
666# CONFIG_SENSORS_PCF8591 is not set 666# CONFIG_SENSORS_PCF8591 is not set
@@ -687,7 +687,7 @@ CONFIG_SPI_ATMEL=y
687# 687#
688# SPI Protocol Masters 688# SPI Protocol Masters
689# 689#
690# CONFIG_SPI_AT25 is not set 690# CONFIG_EEPROM_AT25 is not set
691# CONFIG_SPI_SPIDEV is not set 691# CONFIG_SPI_SPIDEV is not set
692# CONFIG_SPI_TLE62X0 is not set 692# CONFIG_SPI_TLE62X0 is not set
693# CONFIG_W1 is not set 693# CONFIG_W1 is not set
@@ -700,7 +700,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
700# Watchdog Device Drivers 700# Watchdog Device Drivers
701# 701#
702# CONFIG_SOFT_WATCHDOG is not set 702# CONFIG_SOFT_WATCHDOG is not set
703CONFIG_AT91SAM9_WATCHDOG=y 703CONFIG_AT91SAM9X_WATCHDOG=y
704 704
705# 705#
706# USB-based Watchdog Cards 706# USB-based Watchdog Cards
diff --git a/arch/arm/configs/at91sam9263ek_defconfig b/arch/arm/configs/at91sam9263ek_defconfig
index a7ddd94363ca..21599f3c6275 100644
--- a/arch/arm/configs/at91sam9263ek_defconfig
+++ b/arch/arm/configs/at91sam9263ek_defconfig
@@ -670,7 +670,7 @@ CONFIG_I2C_GPIO=y
670# CONFIG_SENSORS_DS1337 is not set 670# CONFIG_SENSORS_DS1337 is not set
671# CONFIG_SENSORS_DS1374 is not set 671# CONFIG_SENSORS_DS1374 is not set
672# CONFIG_DS1682 is not set 672# CONFIG_DS1682 is not set
673# CONFIG_SENSORS_EEPROM is not set 673# CONFIG_EEPROM_LEGACY is not set
674# CONFIG_SENSORS_PCF8574 is not set 674# CONFIG_SENSORS_PCF8574 is not set
675# CONFIG_SENSORS_PCA9539 is not set 675# CONFIG_SENSORS_PCA9539 is not set
676# CONFIG_SENSORS_PCF8591 is not set 676# CONFIG_SENSORS_PCF8591 is not set
@@ -697,7 +697,7 @@ CONFIG_SPI_ATMEL=y
697# 697#
698# SPI Protocol Masters 698# SPI Protocol Masters
699# 699#
700# CONFIG_SPI_AT25 is not set 700# CONFIG_EEPROM_AT25 is not set
701# CONFIG_SPI_SPIDEV is not set 701# CONFIG_SPI_SPIDEV is not set
702# CONFIG_SPI_TLE62X0 is not set 702# CONFIG_SPI_TLE62X0 is not set
703# CONFIG_W1 is not set 703# CONFIG_W1 is not set
@@ -710,7 +710,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
710# Watchdog Device Drivers 710# Watchdog Device Drivers
711# 711#
712# CONFIG_SOFT_WATCHDOG is not set 712# CONFIG_SOFT_WATCHDOG is not set
713CONFIG_AT91SAM9_WATCHDOG=y 713CONFIG_AT91SAM9X_WATCHDOG=y
714 714
715# 715#
716# USB-based Watchdog Cards 716# USB-based Watchdog Cards
diff --git a/arch/arm/configs/at91sam9g20ek_defconfig b/arch/arm/configs/at91sam9g20ek_defconfig
index df0d6ee672b3..7e018a04c31b 100644
--- a/arch/arm/configs/at91sam9g20ek_defconfig
+++ b/arch/arm/configs/at91sam9g20ek_defconfig
@@ -665,7 +665,7 @@ CONFIG_SPI_ATMEL=y
665# 665#
666# SPI Protocol Masters 666# SPI Protocol Masters
667# 667#
668# CONFIG_SPI_AT25 is not set 668# CONFIG_EEPROM_AT25 is not set
669CONFIG_SPI_SPIDEV=y 669CONFIG_SPI_SPIDEV=y
670# CONFIG_SPI_TLE62X0 is not set 670# CONFIG_SPI_TLE62X0 is not set
671# CONFIG_W1 is not set 671# CONFIG_W1 is not set
diff --git a/arch/arm/configs/at91sam9rlek_defconfig b/arch/arm/configs/at91sam9rlek_defconfig
index 811bebbdc784..e2df81a3e804 100644
--- a/arch/arm/configs/at91sam9rlek_defconfig
+++ b/arch/arm/configs/at91sam9rlek_defconfig
@@ -566,7 +566,7 @@ CONFIG_I2C_GPIO=y
566# CONFIG_SENSORS_DS1337 is not set 566# CONFIG_SENSORS_DS1337 is not set
567# CONFIG_SENSORS_DS1374 is not set 567# CONFIG_SENSORS_DS1374 is not set
568# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
569# CONFIG_SENSORS_EEPROM is not set 569# CONFIG_EEPROM_LEGACY is not set
570# CONFIG_SENSORS_PCF8574 is not set 570# CONFIG_SENSORS_PCF8574 is not set
571# CONFIG_SENSORS_PCA9539 is not set 571# CONFIG_SENSORS_PCA9539 is not set
572# CONFIG_SENSORS_PCF8591 is not set 572# CONFIG_SENSORS_PCF8591 is not set
@@ -593,7 +593,7 @@ CONFIG_SPI_ATMEL=y
593# 593#
594# SPI Protocol Masters 594# SPI Protocol Masters
595# 595#
596# CONFIG_SPI_AT25 is not set 596# CONFIG_EEPROM_AT25 is not set
597# CONFIG_SPI_SPIDEV is not set 597# CONFIG_SPI_SPIDEV is not set
598# CONFIG_SPI_TLE62X0 is not set 598# CONFIG_SPI_TLE62X0 is not set
599# CONFIG_W1 is not set 599# CONFIG_W1 is not set
@@ -606,7 +606,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
606# Watchdog Device Drivers 606# Watchdog Device Drivers
607# 607#
608# CONFIG_SOFT_WATCHDOG is not set 608# CONFIG_SOFT_WATCHDOG is not set
609CONFIG_AT91SAM9_WATCHDOG=y 609CONFIG_AT91SAM9X_WATCHDOG=y
610 610
611# 611#
612# Sonics Silicon Backplane 612# Sonics Silicon Backplane
diff --git a/arch/arm/configs/ateb9200_defconfig b/arch/arm/configs/ateb9200_defconfig
index 85c80f723d8e..a19e824cf7f8 100644
--- a/arch/arm/configs/ateb9200_defconfig
+++ b/arch/arm/configs/ateb9200_defconfig
@@ -723,7 +723,7 @@ CONFIG_I2C_GPIO=m
723# 723#
724# CONFIG_SENSORS_DS1337 is not set 724# CONFIG_SENSORS_DS1337 is not set
725# CONFIG_SENSORS_DS1374 is not set 725# CONFIG_SENSORS_DS1374 is not set
726# CONFIG_SENSORS_EEPROM is not set 726# CONFIG_EEPROM_LEGACY is not set
727# CONFIG_SENSORS_PCF8574 is not set 727# CONFIG_SENSORS_PCF8574 is not set
728# CONFIG_SENSORS_PCA9539 is not set 728# CONFIG_SENSORS_PCA9539 is not set
729# CONFIG_SENSORS_PCF8591 is not set 729# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/badge4_defconfig b/arch/arm/configs/badge4_defconfig
index b2bbf217c707..80222feb7dad 100644
--- a/arch/arm/configs/badge4_defconfig
+++ b/arch/arm/configs/badge4_defconfig
@@ -750,7 +750,7 @@ CONFIG_I2C_ELEKTOR=m
750# Other I2C Chip support 750# Other I2C Chip support
751# 751#
752# CONFIG_SENSORS_DS1337 is not set 752# CONFIG_SENSORS_DS1337 is not set
753# CONFIG_SENSORS_EEPROM is not set 753# CONFIG_EEPROM_LEGACY is not set
754# CONFIG_SENSORS_PCF8574 is not set 754# CONFIG_SENSORS_PCF8574 is not set
755# CONFIG_SENSORS_PCF8591 is not set 755# CONFIG_SENSORS_PCF8591 is not set
756# CONFIG_SENSORS_RTC8564 is not set 756# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/cam60_defconfig b/arch/arm/configs/cam60_defconfig
index f945105d6cd6..8448108347cf 100644
--- a/arch/arm/configs/cam60_defconfig
+++ b/arch/arm/configs/cam60_defconfig
@@ -722,7 +722,7 @@ CONFIG_I2C_ALGOBIT=y
722# CONFIG_SENSORS_DS1337 is not set 722# CONFIG_SENSORS_DS1337 is not set
723# CONFIG_SENSORS_DS1374 is not set 723# CONFIG_SENSORS_DS1374 is not set
724# CONFIG_DS1682 is not set 724# CONFIG_DS1682 is not set
725# CONFIG_SENSORS_EEPROM is not set 725# CONFIG_EEPROM_LEGACY is not set
726# CONFIG_SENSORS_PCF8574 is not set 726# CONFIG_SENSORS_PCF8574 is not set
727# CONFIG_SENSORS_PCA9539 is not set 727# CONFIG_SENSORS_PCA9539 is not set
728# CONFIG_SENSORS_PCF8591 is not set 728# CONFIG_SENSORS_PCF8591 is not set
@@ -749,7 +749,7 @@ CONFIG_SPI_ATMEL=y
749# 749#
750# SPI Protocol Masters 750# SPI Protocol Masters
751# 751#
752# CONFIG_SPI_AT25 is not set 752# CONFIG_EEPROM_AT25 is not set
753# CONFIG_SPI_SPIDEV is not set 753# CONFIG_SPI_SPIDEV is not set
754# CONFIG_SPI_TLE62X0 is not set 754# CONFIG_SPI_TLE62X0 is not set
755# CONFIG_W1 is not set 755# CONFIG_W1 is not set
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
index 46f1c9dc350c..227da0843ead 100644
--- a/arch/arm/configs/cm_x300_defconfig
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -763,8 +763,8 @@ CONFIG_I2C_PXA=y
763# Miscellaneous I2C Chip support 763# Miscellaneous I2C Chip support
764# 764#
765# CONFIG_DS1682 is not set 765# CONFIG_DS1682 is not set
766# CONFIG_AT24 is not set 766# CONFIG_EEPROM_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 767# CONFIG_EEPROM_LEGACY is not set
768# CONFIG_SENSORS_PCF8574 is not set 768# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 769# CONFIG_PCF8575 is not set
770# CONFIG_SENSORS_PCF8591 is not set 770# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/colibri_defconfig b/arch/arm/configs/colibri_defconfig
index c3e3418ed4fe..744086fff414 100644
--- a/arch/arm/configs/colibri_defconfig
+++ b/arch/arm/configs/colibri_defconfig
@@ -801,7 +801,7 @@ CONFIG_I2C_CHARDEV=y
801# CONFIG_SENSORS_DS1337 is not set 801# CONFIG_SENSORS_DS1337 is not set
802# CONFIG_SENSORS_DS1374 is not set 802# CONFIG_SENSORS_DS1374 is not set
803# CONFIG_DS1682 is not set 803# CONFIG_DS1682 is not set
804# CONFIG_SENSORS_EEPROM is not set 804# CONFIG_EEPROM_LEGACY is not set
805# CONFIG_SENSORS_PCF8574 is not set 805# CONFIG_SENSORS_PCF8574 is not set
806# CONFIG_SENSORS_PCA9539 is not set 806# CONFIG_SENSORS_PCA9539 is not set
807# CONFIG_SENSORS_PCF8591 is not set 807# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig
index 98765438048d..d6cd165e9310 100644
--- a/arch/arm/configs/corgi_defconfig
+++ b/arch/arm/configs/corgi_defconfig
@@ -982,8 +982,8 @@ CONFIG_I2C_PXA=y
982# Miscellaneous I2C Chip support 982# Miscellaneous I2C Chip support
983# 983#
984# CONFIG_DS1682 is not set 984# CONFIG_DS1682 is not set
985# CONFIG_AT24 is not set 985# CONFIG_EEPROM_AT24 is not set
986# CONFIG_SENSORS_EEPROM is not set 986# CONFIG_EEPROM_LEGACY is not set
987# CONFIG_SENSORS_PCF8574 is not set 987# CONFIG_SENSORS_PCF8574 is not set
988# CONFIG_PCF8575 is not set 988# CONFIG_PCF8575 is not set
989# CONFIG_SENSORS_PCA9539 is not set 989# CONFIG_SENSORS_PCA9539 is not set
@@ -1008,7 +1008,7 @@ CONFIG_SPI_PXA2XX=y
1008# 1008#
1009# SPI Protocol Masters 1009# SPI Protocol Masters
1010# 1010#
1011# CONFIG_SPI_AT25 is not set 1011# CONFIG_EEPROM_AT25 is not set
1012# CONFIG_SPI_SPIDEV is not set 1012# CONFIG_SPI_SPIDEV is not set
1013# CONFIG_SPI_TLE62X0 is not set 1013# CONFIG_SPI_TLE62X0 is not set
1014CONFIG_ARCH_REQUIRE_GPIOLIB=y 1014CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/csb337_defconfig b/arch/arm/configs/csb337_defconfig
index 67e65e4f0cdc..29f68c2effe6 100644
--- a/arch/arm/configs/csb337_defconfig
+++ b/arch/arm/configs/csb337_defconfig
@@ -679,7 +679,7 @@ CONFIG_I2C_GPIO=y
679# CONFIG_SENSORS_DS1337 is not set 679# CONFIG_SENSORS_DS1337 is not set
680# CONFIG_SENSORS_DS1374 is not set 680# CONFIG_SENSORS_DS1374 is not set
681# CONFIG_DS1682 is not set 681# CONFIG_DS1682 is not set
682# CONFIG_SENSORS_EEPROM is not set 682# CONFIG_EEPROM_LEGACY is not set
683# CONFIG_SENSORS_PCF8574 is not set 683# CONFIG_SENSORS_PCF8574 is not set
684# CONFIG_SENSORS_PCA9539 is not set 684# CONFIG_SENSORS_PCA9539 is not set
685# CONFIG_SENSORS_PCF8591 is not set 685# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/csb637_defconfig b/arch/arm/configs/csb637_defconfig
index 99702146c9fc..f7b60ceed6c7 100644
--- a/arch/arm/configs/csb637_defconfig
+++ b/arch/arm/configs/csb637_defconfig
@@ -704,7 +704,7 @@ CONFIG_I2C_CHARDEV=y
704# Miscellaneous I2C Chip support 704# Miscellaneous I2C Chip support
705# 705#
706# CONFIG_DS1682 is not set 706# CONFIG_DS1682 is not set
707# CONFIG_SENSORS_EEPROM is not set 707# CONFIG_EEPROM_LEGACY is not set
708# CONFIG_SENSORS_PCF8574 is not set 708# CONFIG_SENSORS_PCF8574 is not set
709# CONFIG_PCF8575 is not set 709# CONFIG_PCF8575 is not set
710# CONFIG_SENSORS_PCF8591 is not set 710# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ecbat91_defconfig b/arch/arm/configs/ecbat91_defconfig
index cfeb817ad21a..ca520733bdb0 100644
--- a/arch/arm/configs/ecbat91_defconfig
+++ b/arch/arm/configs/ecbat91_defconfig
@@ -721,7 +721,7 @@ CONFIG_I2C_GPIO=y
721# 721#
722# CONFIG_SENSORS_DS1337 is not set 722# CONFIG_SENSORS_DS1337 is not set
723# CONFIG_SENSORS_DS1374 is not set 723# CONFIG_SENSORS_DS1374 is not set
724# CONFIG_SENSORS_EEPROM is not set 724# CONFIG_EEPROM_LEGACY is not set
725# CONFIG_SENSORS_PCF8574 is not set 725# CONFIG_SENSORS_PCF8574 is not set
726# CONFIG_SENSORS_PCA9539 is not set 726# CONFIG_SENSORS_PCA9539 is not set
727# CONFIG_SENSORS_PCF8591 is not set 727# CONFIG_SENSORS_PCF8591 is not set
@@ -747,7 +747,7 @@ CONFIG_SPI_AT91=y
747# 747#
748# SPI Protocol Masters 748# SPI Protocol Masters
749# 749#
750# CONFIG_SPI_AT25 is not set 750# CONFIG_EEPROM_AT25 is not set
751# CONFIG_SPI_SPIDEV is not set 751# CONFIG_SPI_SPIDEV is not set
752 752
753# 753#
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index 21aa013793c6..3f89d5f25bce 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -681,7 +681,7 @@ CONFIG_I2C_ALGOBIT=y
681# 681#
682# CONFIG_SENSORS_DS1337 is not set 682# CONFIG_SENSORS_DS1337 is not set
683# CONFIG_SENSORS_DS1374 is not set 683# CONFIG_SENSORS_DS1374 is not set
684CONFIG_SENSORS_EEPROM=y 684CONFIG_EEPROM_LEGACY=y
685# CONFIG_SENSORS_PCF8574 is not set 685# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_SENSORS_PCA9539 is not set 686# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set 687# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig
index 2a84d557adc2..d5ee16e6abf3 100644
--- a/arch/arm/configs/ezx_defconfig
+++ b/arch/arm/configs/ezx_defconfig
@@ -877,7 +877,7 @@ CONFIG_I2C_PXA=y
877# Miscellaneous I2C Chip support 877# Miscellaneous I2C Chip support
878# 878#
879# CONFIG_DS1682 is not set 879# CONFIG_DS1682 is not set
880# CONFIG_SENSORS_EEPROM is not set 880# CONFIG_EEPROM_LEGACY is not set
881# CONFIG_SENSORS_PCF8574 is not set 881# CONFIG_SENSORS_PCF8574 is not set
882# CONFIG_PCF8575 is not set 882# CONFIG_PCF8575 is not set
883# CONFIG_SENSORS_PCF8591 is not set 883# CONFIG_SENSORS_PCF8591 is not set
@@ -900,7 +900,7 @@ CONFIG_SPI_PXA2XX=m
900# 900#
901# SPI Protocol Masters 901# SPI Protocol Masters
902# 902#
903# CONFIG_SPI_AT25 is not set 903# CONFIG_EEPROM_AT25 is not set
904# CONFIG_SPI_SPIDEV is not set 904# CONFIG_SPI_SPIDEV is not set
905# CONFIG_SPI_TLE62X0 is not set 905# CONFIG_SPI_TLE62X0 is not set
906CONFIG_HAVE_GPIO_LIB=y 906CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig
index 299dc22294a0..6ace512fa101 100644
--- a/arch/arm/configs/footbridge_defconfig
+++ b/arch/arm/configs/footbridge_defconfig
@@ -801,7 +801,7 @@ CONFIG_I2C=m
801# 801#
802# Other I2C Chip support 802# Other I2C Chip support
803# 803#
804# CONFIG_SENSORS_EEPROM is not set 804# CONFIG_EEPROM_LEGACY is not set
805# CONFIG_SENSORS_PCF8574 is not set 805# CONFIG_SENSORS_PCF8574 is not set
806# CONFIG_SENSORS_PCF8591 is not set 806# CONFIG_SENSORS_PCF8591 is not set
807# CONFIG_SENSORS_RTC8564 is not set 807# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/iop13xx_defconfig b/arch/arm/configs/iop13xx_defconfig
index 482e57061053..89c17761726b 100644
--- a/arch/arm/configs/iop13xx_defconfig
+++ b/arch/arm/configs/iop13xx_defconfig
@@ -744,7 +744,7 @@ CONFIG_I2C_IOP3XX=y
744# CONFIG_SENSORS_DS1337 is not set 744# CONFIG_SENSORS_DS1337 is not set
745# CONFIG_SENSORS_DS1374 is not set 745# CONFIG_SENSORS_DS1374 is not set
746# CONFIG_DS1682 is not set 746# CONFIG_DS1682 is not set
747# CONFIG_SENSORS_EEPROM is not set 747# CONFIG_EEPROM_LEGACY is not set
748# CONFIG_SENSORS_PCF8574 is not set 748# CONFIG_SENSORS_PCF8574 is not set
749# CONFIG_SENSORS_PCA9539 is not set 749# CONFIG_SENSORS_PCA9539 is not set
750# CONFIG_SENSORS_PCF8591 is not set 750# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/iop32x_defconfig b/arch/arm/configs/iop32x_defconfig
index 8612f58e1056..d70177b38f5f 100644
--- a/arch/arm/configs/iop32x_defconfig
+++ b/arch/arm/configs/iop32x_defconfig
@@ -847,7 +847,7 @@ CONFIG_I2C_IOP3XX=y
847# CONFIG_SENSORS_DS1337 is not set 847# CONFIG_SENSORS_DS1337 is not set
848# CONFIG_SENSORS_DS1374 is not set 848# CONFIG_SENSORS_DS1374 is not set
849# CONFIG_DS1682 is not set 849# CONFIG_DS1682 is not set
850# CONFIG_SENSORS_EEPROM is not set 850# CONFIG_EEPROM_LEGACY is not set
851# CONFIG_SENSORS_PCF8574 is not set 851# CONFIG_SENSORS_PCF8574 is not set
852# CONFIG_SENSORS_PCA9539 is not set 852# CONFIG_SENSORS_PCA9539 is not set
853# CONFIG_SENSORS_PCF8591 is not set 853# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/iop33x_defconfig b/arch/arm/configs/iop33x_defconfig
index 8b0098d19d08..eec488298267 100644
--- a/arch/arm/configs/iop33x_defconfig
+++ b/arch/arm/configs/iop33x_defconfig
@@ -746,7 +746,7 @@ CONFIG_I2C_IOP3XX=y
746# CONFIG_SENSORS_DS1337 is not set 746# CONFIG_SENSORS_DS1337 is not set
747# CONFIG_SENSORS_DS1374 is not set 747# CONFIG_SENSORS_DS1374 is not set
748# CONFIG_DS1682 is not set 748# CONFIG_DS1682 is not set
749# CONFIG_SENSORS_EEPROM is not set 749# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 750# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_SENSORS_PCA9539 is not set 751# CONFIG_SENSORS_PCA9539 is not set
752# CONFIG_SENSORS_PCF8591 is not set 752# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig
index 84680db6c615..57526c15e854 100644
--- a/arch/arm/configs/ixp2000_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -768,7 +768,7 @@ CONFIG_I2C_IXP2000=y
768# 768#
769# CONFIG_SENSORS_DS1337 is not set 769# CONFIG_SENSORS_DS1337 is not set
770# CONFIG_SENSORS_DS1374 is not set 770# CONFIG_SENSORS_DS1374 is not set
771CONFIG_SENSORS_EEPROM=y 771CONFIG_EEPROM_LEGACY=y
772# CONFIG_SENSORS_PCF8574 is not set 772# CONFIG_SENSORS_PCF8574 is not set
773# CONFIG_SENSORS_PCA9539 is not set 773# CONFIG_SENSORS_PCA9539 is not set
774# CONFIG_SENSORS_PCF8591 is not set 774# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig
index 4a2f7b2372db..ef97561ed75b 100644
--- a/arch/arm/configs/ixp23xx_defconfig
+++ b/arch/arm/configs/ixp23xx_defconfig
@@ -900,7 +900,7 @@ CONFIG_I2C_ALGOBIT=y
900# 900#
901# CONFIG_SENSORS_DS1337 is not set 901# CONFIG_SENSORS_DS1337 is not set
902# CONFIG_SENSORS_DS1374 is not set 902# CONFIG_SENSORS_DS1374 is not set
903CONFIG_SENSORS_EEPROM=y 903CONFIG_EEPROM_LEGACY=y
904# CONFIG_SENSORS_PCF8574 is not set 904# CONFIG_SENSORS_PCF8574 is not set
905# CONFIG_SENSORS_PCA9539 is not set 905# CONFIG_SENSORS_PCA9539 is not set
906# CONFIG_SENSORS_PCF8591 is not set 906# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig
index fc14932e3abd..95cd8dfb5f1e 100644
--- a/arch/arm/configs/ixp4xx_defconfig
+++ b/arch/arm/configs/ixp4xx_defconfig
@@ -1083,7 +1083,7 @@ CONFIG_I2C_IXP4XX=y
1083# CONFIG_SENSORS_DS1337 is not set 1083# CONFIG_SENSORS_DS1337 is not set
1084# CONFIG_SENSORS_DS1374 is not set 1084# CONFIG_SENSORS_DS1374 is not set
1085# CONFIG_DS1682 is not set 1085# CONFIG_DS1682 is not set
1086CONFIG_SENSORS_EEPROM=y 1086CONFIG_EEPROM_LEGACY=y
1087# CONFIG_SENSORS_PCF8574 is not set 1087# CONFIG_SENSORS_PCF8574 is not set
1088# CONFIG_SENSORS_PCA9539 is not set 1088# CONFIG_SENSORS_PCA9539 is not set
1089# CONFIG_SENSORS_PCF8591 is not set 1089# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/kafa_defconfig b/arch/arm/configs/kafa_defconfig
index 6dd95a2c8d5d..9f92fc527f59 100644
--- a/arch/arm/configs/kafa_defconfig
+++ b/arch/arm/configs/kafa_defconfig
@@ -603,7 +603,7 @@ CONFIG_I2C_GPIO=y
603# 603#
604# CONFIG_SENSORS_DS1337 is not set 604# CONFIG_SENSORS_DS1337 is not set
605# CONFIG_SENSORS_DS1374 is not set 605# CONFIG_SENSORS_DS1374 is not set
606# CONFIG_SENSORS_EEPROM is not set 606# CONFIG_EEPROM_LEGACY is not set
607# CONFIG_SENSORS_PCF8574 is not set 607# CONFIG_SENSORS_PCF8574 is not set
608# CONFIG_SENSORS_PCA9539 is not set 608# CONFIG_SENSORS_PCA9539 is not set
609# CONFIG_SENSORS_PCF8591 is not set 609# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig
index ab8b1e0d0dac..4bc38078d580 100644
--- a/arch/arm/configs/kirkwood_defconfig
+++ b/arch/arm/configs/kirkwood_defconfig
@@ -905,8 +905,8 @@ CONFIG_I2C_MV64XXX=y
905# Miscellaneous I2C Chip support 905# Miscellaneous I2C Chip support
906# 906#
907# CONFIG_DS1682 is not set 907# CONFIG_DS1682 is not set
908# CONFIG_AT24 is not set 908# CONFIG_EEPROM_AT24 is not set
909# CONFIG_SENSORS_EEPROM is not set 909# CONFIG_EEPROM_LEGACY is not set
910# CONFIG_SENSORS_PCF8574 is not set 910# CONFIG_SENSORS_PCF8574 is not set
911# CONFIG_PCF8575 is not set 911# CONFIG_PCF8575 is not set
912# CONFIG_SENSORS_PCA9539 is not set 912# CONFIG_SENSORS_PCA9539 is not set
@@ -930,7 +930,7 @@ CONFIG_SPI_ORION=y
930# 930#
931# SPI Protocol Masters 931# SPI Protocol Masters
932# 932#
933# CONFIG_SPI_AT25 is not set 933# CONFIG_EEPROM_AT25 is not set
934# CONFIG_SPI_SPIDEV is not set 934# CONFIG_SPI_SPIDEV is not set
935# CONFIG_SPI_TLE62X0 is not set 935# CONFIG_SPI_TLE62X0 is not set
936# CONFIG_W1 is not set 936# CONFIG_W1 is not set
diff --git a/arch/arm/configs/loki_defconfig b/arch/arm/configs/loki_defconfig
index 17da7c3b3d53..b720fcffbcd4 100644
--- a/arch/arm/configs/loki_defconfig
+++ b/arch/arm/configs/loki_defconfig
@@ -654,7 +654,7 @@ CONFIG_I2C_MV64XXX=y
654# Miscellaneous I2C Chip support 654# Miscellaneous I2C Chip support
655# 655#
656# CONFIG_DS1682 is not set 656# CONFIG_DS1682 is not set
657# CONFIG_SENSORS_EEPROM is not set 657# CONFIG_EEPROM_LEGACY is not set
658# CONFIG_SENSORS_PCF8574 is not set 658# CONFIG_SENSORS_PCF8574 is not set
659# CONFIG_PCF8575 is not set 659# CONFIG_PCF8575 is not set
660# CONFIG_SENSORS_PCF8591 is not set 660# CONFIG_SENSORS_PCF8591 is not set
@@ -675,7 +675,7 @@ CONFIG_SPI_MASTER=y
675# 675#
676# SPI Protocol Masters 676# SPI Protocol Masters
677# 677#
678# CONFIG_SPI_AT25 is not set 678# CONFIG_EEPROM_AT25 is not set
679# CONFIG_SPI_SPIDEV is not set 679# CONFIG_SPI_SPIDEV is not set
680# CONFIG_SPI_TLE62X0 is not set 680# CONFIG_SPI_TLE62X0 is not set
681# CONFIG_W1 is not set 681# CONFIG_W1 is not set
diff --git a/arch/arm/configs/magician_defconfig b/arch/arm/configs/magician_defconfig
index 4d11678584db..73ba62b71063 100644
--- a/arch/arm/configs/magician_defconfig
+++ b/arch/arm/configs/magician_defconfig
@@ -678,7 +678,7 @@ CONFIG_I2C_PXA=m
678# CONFIG_SENSORS_DS1337 is not set 678# CONFIG_SENSORS_DS1337 is not set
679# CONFIG_SENSORS_DS1374 is not set 679# CONFIG_SENSORS_DS1374 is not set
680# CONFIG_DS1682 is not set 680# CONFIG_DS1682 is not set
681# CONFIG_SENSORS_EEPROM is not set 681# CONFIG_EEPROM_LEGACY is not set
682# CONFIG_SENSORS_PCF8574 is not set 682# CONFIG_SENSORS_PCF8574 is not set
683# CONFIG_SENSORS_PCA9539 is not set 683# CONFIG_SENSORS_PCA9539 is not set
684# CONFIG_SENSORS_PCF8591 is not set 684# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/msm_defconfig b/arch/arm/configs/msm_defconfig
index 3b4ecf2a90dd..cc3b06ee24f9 100644
--- a/arch/arm/configs/msm_defconfig
+++ b/arch/arm/configs/msm_defconfig
@@ -580,7 +580,7 @@ CONFIG_I2C_MSM=y
580# CONFIG_SENSORS_DS1337 is not set 580# CONFIG_SENSORS_DS1337 is not set
581# CONFIG_SENSORS_DS1374 is not set 581# CONFIG_SENSORS_DS1374 is not set
582# CONFIG_DS1682 is not set 582# CONFIG_DS1682 is not set
583# CONFIG_SENSORS_EEPROM is not set 583# CONFIG_EEPROM_LEGACY is not set
584# CONFIG_SENSORS_PCF8574 is not set 584# CONFIG_SENSORS_PCF8574 is not set
585# CONFIG_SENSORS_PCA9539 is not set 585# CONFIG_SENSORS_PCA9539 is not set
586CONFIG_SENSORS_PCA9633=y 586CONFIG_SENSORS_PCA9633=y
diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig
index d38ebf8721a4..83c817f31bcc 100644
--- a/arch/arm/configs/mv78xx0_defconfig
+++ b/arch/arm/configs/mv78xx0_defconfig
@@ -832,7 +832,7 @@ CONFIG_I2C_MV64XXX=y
832# Miscellaneous I2C Chip support 832# Miscellaneous I2C Chip support
833# 833#
834# CONFIG_DS1682 is not set 834# CONFIG_DS1682 is not set
835# CONFIG_SENSORS_EEPROM is not set 835# CONFIG_EEPROM_LEGACY is not set
836# CONFIG_SENSORS_PCF8574 is not set 836# CONFIG_SENSORS_PCF8574 is not set
837# CONFIG_PCF8575 is not set 837# CONFIG_PCF8575 is not set
838# CONFIG_SENSORS_PCF8591 is not set 838# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/n770_defconfig b/arch/arm/configs/n770_defconfig
index 568ef1770d5f..672f6db06a52 100644
--- a/arch/arm/configs/n770_defconfig
+++ b/arch/arm/configs/n770_defconfig
@@ -767,7 +767,7 @@ CONFIG_I2C_OMAP=y
767# CONFIG_SENSORS_DS1337 is not set 767# CONFIG_SENSORS_DS1337 is not set
768# CONFIG_SENSORS_DS1374 is not set 768# CONFIG_SENSORS_DS1374 is not set
769# CONFIG_DS1682 is not set 769# CONFIG_DS1682 is not set
770# CONFIG_SENSORS_EEPROM is not set 770# CONFIG_EEPROM_LEGACY is not set
771# CONFIG_SENSORS_PCF8574 is not set 771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set 772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set 773# CONFIG_SENSORS_PCF8591 is not set
@@ -798,7 +798,7 @@ CONFIG_SPI_OMAP_UWIRE=y
798# 798#
799# SPI Protocol Masters 799# SPI Protocol Masters
800# 800#
801# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
802# CONFIG_SPI_TSC2101 is not set 802# CONFIG_SPI_TSC2101 is not set
803# CONFIG_SPI_TSC2102 is not set 803# CONFIG_SPI_TSC2102 is not set
804# CONFIG_SPI_TSC210X is not set 804# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/neocore926_defconfig b/arch/arm/configs/neocore926_defconfig
index 325f1e105f69..e0e4e98b5aa2 100644
--- a/arch/arm/configs/neocore926_defconfig
+++ b/arch/arm/configs/neocore926_defconfig
@@ -774,8 +774,8 @@ CONFIG_I2C_CHARDEV=y
774# Miscellaneous I2C Chip support 774# Miscellaneous I2C Chip support
775# 775#
776# CONFIG_DS1682 is not set 776# CONFIG_DS1682 is not set
777# CONFIG_AT24 is not set 777# CONFIG_EEPROM_AT24 is not set
778# CONFIG_SENSORS_EEPROM is not set 778# CONFIG_EEPROM_LEGACY is not set
779# CONFIG_SENSORS_PCF8574 is not set 779# CONFIG_SENSORS_PCF8574 is not set
780# CONFIG_PCF8575 is not set 780# CONFIG_PCF8575 is not set
781# CONFIG_SENSORS_PCA9539 is not set 781# CONFIG_SENSORS_PCA9539 is not set
@@ -798,7 +798,7 @@ CONFIG_SPI_ATMEL=y
798# 798#
799# SPI Protocol Masters 799# SPI Protocol Masters
800# 800#
801# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
802# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
803# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
804# CONFIG_W1 is not set 804# CONFIG_W1 is not set
diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig
index 92ccdc6492f7..d81ea219c934 100644
--- a/arch/arm/configs/neponset_defconfig
+++ b/arch/arm/configs/neponset_defconfig
@@ -737,7 +737,7 @@ CONFIG_I2C_ALGOBIT=y
737# 737#
738# Other I2C Chip support 738# Other I2C Chip support
739# 739#
740# CONFIG_SENSORS_EEPROM is not set 740# CONFIG_EEPROM_LEGACY is not set
741# CONFIG_SENSORS_PCF8574 is not set 741# CONFIG_SENSORS_PCF8574 is not set
742# CONFIG_SENSORS_PCF8591 is not set 742# CONFIG_SENSORS_PCF8591 is not set
743# CONFIG_SENSORS_RTC8564 is not set 743# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig
index e042d27eae16..4c6fb7e959df 100644
--- a/arch/arm/configs/omap3_beagle_defconfig
+++ b/arch/arm/configs/omap3_beagle_defconfig
@@ -687,8 +687,8 @@ CONFIG_I2C_OMAP=y
687# Miscellaneous I2C Chip support 687# Miscellaneous I2C Chip support
688# 688#
689# CONFIG_DS1682 is not set 689# CONFIG_DS1682 is not set
690# CONFIG_AT24 is not set 690# CONFIG_EEPROM_AT24 is not set
691# CONFIG_SENSORS_EEPROM is not set 691# CONFIG_EEPROM_LEGACY is not set
692# CONFIG_SENSORS_PCF8574 is not set 692# CONFIG_SENSORS_PCF8574 is not set
693# CONFIG_PCF8575 is not set 693# CONFIG_PCF8575 is not set
694# CONFIG_SENSORS_PCA9539 is not set 694# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/omap3_pandora_defconfig b/arch/arm/configs/omap3_pandora_defconfig
index 09543f4de5bc..b54ad2e2da36 100644
--- a/arch/arm/configs/omap3_pandora_defconfig
+++ b/arch/arm/configs/omap3_pandora_defconfig
@@ -713,8 +713,8 @@ CONFIG_I2C_OMAP=y
713# Miscellaneous I2C Chip support 713# Miscellaneous I2C Chip support
714# 714#
715# CONFIG_DS1682 is not set 715# CONFIG_DS1682 is not set
716# CONFIG_AT24 is not set 716# CONFIG_EEPROM_AT24 is not set
717# CONFIG_SENSORS_EEPROM is not set 717# CONFIG_EEPROM_LEGACY is not set
718# CONFIG_SENSORS_PCF8574 is not set 718# CONFIG_SENSORS_PCF8574 is not set
719# CONFIG_PCF8575 is not set 719# CONFIG_PCF8575 is not set
720# CONFIG_SENSORS_PCA9539 is not set 720# CONFIG_SENSORS_PCA9539 is not set
@@ -740,7 +740,7 @@ CONFIG_SPI_OMAP24XX=y
740# 740#
741# SPI Protocol Masters 741# SPI Protocol Masters
742# 742#
743# CONFIG_SPI_AT25 is not set 743# CONFIG_EEPROM_AT25 is not set
744# CONFIG_SPI_SPIDEV is not set 744# CONFIG_SPI_SPIDEV is not set
745# CONFIG_SPI_TLE62X0 is not set 745# CONFIG_SPI_TLE62X0 is not set
746CONFIG_ARCH_REQUIRE_GPIOLIB=y 746CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/omap_2430sdp_defconfig b/arch/arm/configs/omap_2430sdp_defconfig
index b0617c0da2a1..640e9afc4630 100644
--- a/arch/arm/configs/omap_2430sdp_defconfig
+++ b/arch/arm/configs/omap_2430sdp_defconfig
@@ -710,7 +710,7 @@ CONFIG_I2C_OMAP=y
710# CONFIG_SENSORS_DS1337 is not set 710# CONFIG_SENSORS_DS1337 is not set
711# CONFIG_SENSORS_DS1374 is not set 711# CONFIG_SENSORS_DS1374 is not set
712# CONFIG_DS1682 is not set 712# CONFIG_DS1682 is not set
713# CONFIG_SENSORS_EEPROM is not set 713# CONFIG_EEPROM_LEGACY is not set
714# CONFIG_SENSORS_PCF8574 is not set 714# CONFIG_SENSORS_PCF8574 is not set
715# CONFIG_SENSORS_PCA9539 is not set 715# CONFIG_SENSORS_PCA9539 is not set
716# CONFIG_SENSORS_PCF8591 is not set 716# CONFIG_SENSORS_PCF8591 is not set
@@ -743,7 +743,7 @@ CONFIG_SPI_MASTER=y
743# 743#
744# SPI Protocol Masters 744# SPI Protocol Masters
745# 745#
746# CONFIG_SPI_AT25 is not set 746# CONFIG_EEPROM_AT25 is not set
747# CONFIG_SPI_TSC2101 is not set 747# CONFIG_SPI_TSC2101 is not set
748# CONFIG_SPI_TSC2102 is not set 748# CONFIG_SPI_TSC2102 is not set
749# CONFIG_SPI_TSC210X is not set 749# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_apollon_2420_defconfig b/arch/arm/configs/omap_apollon_2420_defconfig
index bb39dfc72d69..ac7adf34c54a 100644
--- a/arch/arm/configs/omap_apollon_2420_defconfig
+++ b/arch/arm/configs/omap_apollon_2420_defconfig
@@ -612,7 +612,7 @@ CONFIG_SPI_OMAP24XX=y
612# 612#
613# SPI Protocol Masters 613# SPI Protocol Masters
614# 614#
615# CONFIG_SPI_AT25 is not set 615# CONFIG_EEPROM_AT25 is not set
616# CONFIG_SPI_TSC2101 is not set 616# CONFIG_SPI_TSC2101 is not set
617# CONFIG_SPI_TSC2102 is not set 617# CONFIG_SPI_TSC2102 is not set
618# CONFIG_SPI_TSC210X is not set 618# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_generic_1510_defconfig b/arch/arm/configs/omap_generic_1510_defconfig
index 4b1c252f2091..ccdc661b5856 100644
--- a/arch/arm/configs/omap_generic_1510_defconfig
+++ b/arch/arm/configs/omap_generic_1510_defconfig
@@ -637,7 +637,7 @@ CONFIG_I2C_ALGOBIT=y
637# CONFIG_SENSORS_DS1337 is not set 637# CONFIG_SENSORS_DS1337 is not set
638# CONFIG_SENSORS_DS1374 is not set 638# CONFIG_SENSORS_DS1374 is not set
639# CONFIG_DS1682 is not set 639# CONFIG_DS1682 is not set
640# CONFIG_SENSORS_EEPROM is not set 640# CONFIG_EEPROM_LEGACY is not set
641# CONFIG_SENSORS_PCF8574 is not set 641# CONFIG_SENSORS_PCF8574 is not set
642# CONFIG_SENSORS_PCA9539 is not set 642# CONFIG_SENSORS_PCA9539 is not set
643# CONFIG_SENSORS_PCF8591 is not set 643# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_generic_1610_defconfig b/arch/arm/configs/omap_generic_1610_defconfig
index fc66f019d56c..0c42c8955047 100644
--- a/arch/arm/configs/omap_generic_1610_defconfig
+++ b/arch/arm/configs/omap_generic_1610_defconfig
@@ -641,7 +641,7 @@ CONFIG_I2C_ALGOBIT=y
641# CONFIG_SENSORS_DS1337 is not set 641# CONFIG_SENSORS_DS1337 is not set
642# CONFIG_SENSORS_DS1374 is not set 642# CONFIG_SENSORS_DS1374 is not set
643# CONFIG_DS1682 is not set 643# CONFIG_DS1682 is not set
644# CONFIG_SENSORS_EEPROM is not set 644# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_SENSORS_PCA9539 is not set 646# CONFIG_SENSORS_PCA9539 is not set
647# CONFIG_SENSORS_PCF8591 is not set 647# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index c03507202f3c..74dbdc644d32 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_defconfig
@@ -700,7 +700,7 @@ CONFIG_I2C_OMAP=y
700# Miscellaneous I2C Chip support 700# Miscellaneous I2C Chip support
701# 701#
702# CONFIG_DS1682 is not set 702# CONFIG_DS1682 is not set
703# CONFIG_SENSORS_EEPROM is not set 703# CONFIG_EEPROM_LEGACY is not set
704# CONFIG_SENSORS_PCF8574 is not set 704# CONFIG_SENSORS_PCF8574 is not set
705# CONFIG_PCF8575 is not set 705# CONFIG_PCF8575 is not set
706# CONFIG_SENSORS_PCF8591 is not set 706# CONFIG_SENSORS_PCF8591 is not set
@@ -731,7 +731,7 @@ CONFIG_SPI_OMAP_UWIRE=y
731# 731#
732# SPI Protocol Masters 732# SPI Protocol Masters
733# 733#
734# CONFIG_SPI_AT25 is not set 734# CONFIG_EEPROM_AT25 is not set
735CONFIG_SPI_TSC2101=y 735CONFIG_SPI_TSC2101=y
736# CONFIG_SPI_TSC2102 is not set 736# CONFIG_SPI_TSC2102 is not set
737# CONFIG_SPI_TSC210X is not set 737# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_h4_2420_defconfig b/arch/arm/configs/omap_h4_2420_defconfig
index 5bc89185a64f..a4aab8e4c29b 100644
--- a/arch/arm/configs/omap_h4_2420_defconfig
+++ b/arch/arm/configs/omap_h4_2420_defconfig
@@ -681,7 +681,7 @@ CONFIG_I2C_OMAP=y
681# CONFIG_SENSORS_DS1337 is not set 681# CONFIG_SENSORS_DS1337 is not set
682# CONFIG_SENSORS_DS1374 is not set 682# CONFIG_SENSORS_DS1374 is not set
683# CONFIG_DS1682 is not set 683# CONFIG_DS1682 is not set
684# CONFIG_SENSORS_EEPROM is not set 684# CONFIG_EEPROM_LEGACY is not set
685# CONFIG_SENSORS_PCF8574 is not set 685# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_SENSORS_PCA9539 is not set 686# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set 687# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_innovator_1510_defconfig b/arch/arm/configs/omap_innovator_1510_defconfig
index 55b2611bd90a..0cfe363e3365 100644
--- a/arch/arm/configs/omap_innovator_1510_defconfig
+++ b/arch/arm/configs/omap_innovator_1510_defconfig
@@ -631,7 +631,7 @@ CONFIG_I2C_BOARDINFO=y
631# CONFIG_SENSORS_DS1337 is not set 631# CONFIG_SENSORS_DS1337 is not set
632# CONFIG_SENSORS_DS1374 is not set 632# CONFIG_SENSORS_DS1374 is not set
633# CONFIG_DS1682 is not set 633# CONFIG_DS1682 is not set
634# CONFIG_SENSORS_EEPROM is not set 634# CONFIG_EEPROM_LEGACY is not set
635# CONFIG_SENSORS_PCF8574 is not set 635# CONFIG_SENSORS_PCF8574 is not set
636# CONFIG_SENSORS_PCA9539 is not set 636# CONFIG_SENSORS_PCA9539 is not set
637# CONFIG_SENSORS_PCF8591 is not set 637# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_ldp_defconfig b/arch/arm/configs/omap_ldp_defconfig
index b77d054169ee..aa9d34feddc6 100644
--- a/arch/arm/configs/omap_ldp_defconfig
+++ b/arch/arm/configs/omap_ldp_defconfig
@@ -629,8 +629,8 @@ CONFIG_I2C_OMAP=y
629# Miscellaneous I2C Chip support 629# Miscellaneous I2C Chip support
630# 630#
631# CONFIG_DS1682 is not set 631# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set 632# CONFIG_EEPROM_AT24 is not set
633# CONFIG_SENSORS_EEPROM is not set 633# CONFIG_EEPROM_LEGACY is not set
634# CONFIG_SENSORS_PCF8574 is not set 634# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 635# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 636# CONFIG_SENSORS_PCA9539 is not set
@@ -656,7 +656,7 @@ CONFIG_SPI_OMAP24XX=y
656# 656#
657# SPI Protocol Masters 657# SPI Protocol Masters
658# 658#
659# CONFIG_SPI_AT25 is not set 659# CONFIG_EEPROM_AT25 is not set
660# CONFIG_SPI_SPIDEV is not set 660# CONFIG_SPI_SPIDEV is not set
661# CONFIG_SPI_TLE62X0 is not set 661# CONFIG_SPI_TLE62X0 is not set
662CONFIG_ARCH_REQUIRE_GPIOLIB=y 662CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig
index b68e0144cab5..6b3b5c610da0 100644
--- a/arch/arm/configs/omap_osk_5912_defconfig
+++ b/arch/arm/configs/omap_osk_5912_defconfig
@@ -711,7 +711,7 @@ CONFIG_I2C_OMAP=y
711# CONFIG_SENSORS_DS1337 is not set 711# CONFIG_SENSORS_DS1337 is not set
712# CONFIG_SENSORS_DS1374 is not set 712# CONFIG_SENSORS_DS1374 is not set
713# CONFIG_DS1682 is not set 713# CONFIG_DS1682 is not set
714# CONFIG_SENSORS_EEPROM is not set 714# CONFIG_EEPROM_LEGACY is not set
715# CONFIG_SENSORS_PCF8574 is not set 715# CONFIG_SENSORS_PCF8574 is not set
716# CONFIG_SENSORS_PCA9539 is not set 716# CONFIG_SENSORS_PCA9539 is not set
717# CONFIG_SENSORS_PCF8591 is not set 717# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/onearm_defconfig b/arch/arm/configs/onearm_defconfig
index 418ca2febbe3..f8701fadb600 100644
--- a/arch/arm/configs/onearm_defconfig
+++ b/arch/arm/configs/onearm_defconfig
@@ -698,7 +698,7 @@ CONFIG_I2C_CHARDEV=y
698# 698#
699# CONFIG_SENSORS_DS1337 is not set 699# CONFIG_SENSORS_DS1337 is not set
700# CONFIG_SENSORS_DS1374 is not set 700# CONFIG_SENSORS_DS1374 is not set
701# CONFIG_SENSORS_EEPROM is not set 701# CONFIG_EEPROM_LEGACY is not set
702# CONFIG_SENSORS_PCF8574 is not set 702# CONFIG_SENSORS_PCF8574 is not set
703# CONFIG_SENSORS_PCA9539 is not set 703# CONFIG_SENSORS_PCA9539 is not set
704# CONFIG_SENSORS_PCF8591 is not set 704# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index b2456ca544c9..a8ee6984a09e 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -886,8 +886,8 @@ CONFIG_I2C_MV64XXX=y
886# Miscellaneous I2C Chip support 886# Miscellaneous I2C Chip support
887# 887#
888# CONFIG_DS1682 is not set 888# CONFIG_DS1682 is not set
889# CONFIG_AT24 is not set 889# CONFIG_EEPROM_AT24 is not set
890# CONFIG_SENSORS_EEPROM is not set 890# CONFIG_EEPROM_LEGACY is not set
891# CONFIG_SENSORS_PCF8574 is not set 891# CONFIG_SENSORS_PCF8574 is not set
892# CONFIG_PCF8575 is not set 892# CONFIG_PCF8575 is not set
893# CONFIG_SENSORS_PCA9539 is not set 893# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/overo_defconfig b/arch/arm/configs/overo_defconfig
index 49200967a153..a57f9e4124fa 100644
--- a/arch/arm/configs/overo_defconfig
+++ b/arch/arm/configs/overo_defconfig
@@ -858,8 +858,8 @@ CONFIG_I2C_OMAP=y
858# Miscellaneous I2C Chip support 858# Miscellaneous I2C Chip support
859# 859#
860# CONFIG_DS1682 is not set 860# CONFIG_DS1682 is not set
861# CONFIG_AT24 is not set 861# CONFIG_EEPROM_AT24 is not set
862CONFIG_SENSORS_EEPROM=y 862CONFIG_EEPROM_LEGACY=y
863# CONFIG_SENSORS_PCF8574 is not set 863# CONFIG_SENSORS_PCF8574 is not set
864# CONFIG_PCF8575 is not set 864# CONFIG_PCF8575 is not set
865# CONFIG_SENSORS_PCA9539 is not set 865# CONFIG_SENSORS_PCA9539 is not set
@@ -885,7 +885,7 @@ CONFIG_SPI_OMAP24XX=y
885# 885#
886# SPI Protocol Masters 886# SPI Protocol Masters
887# 887#
888# CONFIG_SPI_AT25 is not set 888# CONFIG_EEPROM_AT25 is not set
889# CONFIG_SPI_SPIDEV is not set 889# CONFIG_SPI_SPIDEV is not set
890# CONFIG_SPI_TLE62X0 is not set 890# CONFIG_SPI_TLE62X0 is not set
891CONFIG_ARCH_REQUIRE_GPIOLIB=y 891CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/palmz71_defconfig b/arch/arm/configs/palmz71_defconfig
index 6361922e71c1..08e14068fff7 100644
--- a/arch/arm/configs/palmz71_defconfig
+++ b/arch/arm/configs/palmz71_defconfig
@@ -554,7 +554,7 @@ CONFIG_SPI_OMAP_UWIRE=y
554# 554#
555# SPI Protocol Masters 555# SPI Protocol Masters
556# 556#
557# CONFIG_SPI_AT25 is not set 557# CONFIG_EEPROM_AT25 is not set
558# CONFIG_SPI_TSC2101 is not set 558# CONFIG_SPI_TSC2101 is not set
559# CONFIG_SPI_TSC2102 is not set 559# CONFIG_SPI_TSC2102 is not set
560# CONFIG_SPI_TSC210X is not set 560# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/palmz72_defconfig b/arch/arm/configs/palmz72_defconfig
index 3245f8f33e0a..a0dc37c05dea 100644
--- a/arch/arm/configs/palmz72_defconfig
+++ b/arch/arm/configs/palmz72_defconfig
@@ -527,8 +527,8 @@ CONFIG_I2C_PXA=y
527# Miscellaneous I2C Chip support 527# Miscellaneous I2C Chip support
528# 528#
529# CONFIG_DS1682 is not set 529# CONFIG_DS1682 is not set
530# CONFIG_AT24 is not set 530# CONFIG_EEPROM_AT24 is not set
531# CONFIG_SENSORS_EEPROM is not set 531# CONFIG_EEPROM_LEGACY is not set
532# CONFIG_SENSORS_PCF8574 is not set 532# CONFIG_SENSORS_PCF8574 is not set
533# CONFIG_PCF8575 is not set 533# CONFIG_PCF8575 is not set
534# CONFIG_SENSORS_PCA9539 is not set 534# CONFIG_SENSORS_PCA9539 is not set
@@ -552,7 +552,7 @@ CONFIG_SPI_MASTER=y
552# 552#
553# SPI Protocol Masters 553# SPI Protocol Masters
554# 554#
555# CONFIG_SPI_AT25 is not set 555# CONFIG_EEPROM_AT25 is not set
556CONFIG_SPI_SPIDEV=y 556CONFIG_SPI_SPIDEV=y
557# CONFIG_SPI_TLE62X0 is not set 557# CONFIG_SPI_TLE62X0 is not set
558CONFIG_ARCH_REQUIRE_GPIOLIB=y 558CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/pcm027_defconfig b/arch/arm/configs/pcm027_defconfig
index 17b9b2469570..05ad96a43b1d 100644
--- a/arch/arm/configs/pcm027_defconfig
+++ b/arch/arm/configs/pcm027_defconfig
@@ -606,7 +606,7 @@ CONFIG_I2C_PXA=y
606# CONFIG_SENSORS_DS1337 is not set 606# CONFIG_SENSORS_DS1337 is not set
607# CONFIG_SENSORS_DS1374 is not set 607# CONFIG_SENSORS_DS1374 is not set
608# CONFIG_DS1682 is not set 608# CONFIG_DS1682 is not set
609CONFIG_SENSORS_EEPROM=y 609CONFIG_EEPROM_LEGACY=y
610# CONFIG_SENSORS_PCF8574 is not set 610# CONFIG_SENSORS_PCF8574 is not set
611# CONFIG_SENSORS_PCA9539 is not set 611# CONFIG_SENSORS_PCA9539 is not set
612# CONFIG_SENSORS_PCF8591 is not set 612# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/pcm038_defconfig b/arch/arm/configs/pcm038_defconfig
index 6b798c215ca8..41429a00f58c 100644
--- a/arch/arm/configs/pcm038_defconfig
+++ b/arch/arm/configs/pcm038_defconfig
@@ -604,7 +604,7 @@ CONFIG_I2C_BOARDINFO=y
604# Miscellaneous I2C Chip support 604# Miscellaneous I2C Chip support
605# 605#
606# CONFIG_DS1682 is not set 606# CONFIG_DS1682 is not set
607# CONFIG_SENSORS_EEPROM is not set 607# CONFIG_EEPROM_LEGACY is not set
608# CONFIG_SENSORS_PCF8574 is not set 608# CONFIG_SENSORS_PCF8574 is not set
609# CONFIG_PCF8575 is not set 609# CONFIG_PCF8575 is not set
610# CONFIG_SENSORS_PCF8591 is not set 610# CONFIG_SENSORS_PCF8591 is not set
@@ -626,7 +626,7 @@ CONFIG_SPI_BITBANG=y
626# 626#
627# SPI Protocol Masters 627# SPI Protocol Masters
628# 628#
629# CONFIG_SPI_AT25 is not set 629# CONFIG_EEPROM_AT25 is not set
630# CONFIG_SPI_SPIDEV is not set 630# CONFIG_SPI_SPIDEV is not set
631# CONFIG_SPI_TLE62X0 is not set 631# CONFIG_SPI_TLE62X0 is not set
632CONFIG_HAVE_GPIO_LIB=y 632CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/picotux200_defconfig b/arch/arm/configs/picotux200_defconfig
index 59e4463c2da2..9018f0f298aa 100644
--- a/arch/arm/configs/picotux200_defconfig
+++ b/arch/arm/configs/picotux200_defconfig
@@ -744,7 +744,7 @@ CONFIG_I2C_GPIO=m
744# 744#
745CONFIG_SENSORS_DS1337=m 745CONFIG_SENSORS_DS1337=m
746CONFIG_SENSORS_DS1374=m 746CONFIG_SENSORS_DS1374=m
747CONFIG_SENSORS_EEPROM=m 747CONFIG_EEPROM_LEGACY=m
748CONFIG_SENSORS_PCF8574=m 748CONFIG_SENSORS_PCF8574=m
749CONFIG_SENSORS_PCA9539=m 749CONFIG_SENSORS_PCA9539=m
750CONFIG_SENSORS_PCF8591=m 750CONFIG_SENSORS_PCF8591=m
diff --git a/arch/arm/configs/pnx4008_defconfig b/arch/arm/configs/pnx4008_defconfig
index 811b8f60d19d..67b5f1e15f4a 100644
--- a/arch/arm/configs/pnx4008_defconfig
+++ b/arch/arm/configs/pnx4008_defconfig
@@ -915,7 +915,7 @@ CONFIG_I2C_ALGOPCA=m
915# 915#
916# CONFIG_SENSORS_DS1337 is not set 916# CONFIG_SENSORS_DS1337 is not set
917# CONFIG_SENSORS_DS1374 is not set 917# CONFIG_SENSORS_DS1374 is not set
918CONFIG_SENSORS_EEPROM=m 918CONFIG_EEPROM_LEGACY=m
919CONFIG_SENSORS_PCF8574=m 919CONFIG_SENSORS_PCF8574=m
920# CONFIG_SENSORS_PCA9539 is not set 920# CONFIG_SENSORS_PCA9539 is not set
921CONFIG_SENSORS_PCF8591=m 921CONFIG_SENSORS_PCF8591=m
diff --git a/arch/arm/configs/qil-a9260_defconfig b/arch/arm/configs/qil-a9260_defconfig
index 5cbd81589647..9b32d0eb89ba 100644
--- a/arch/arm/configs/qil-a9260_defconfig
+++ b/arch/arm/configs/qil-a9260_defconfig
@@ -687,7 +687,7 @@ CONFIG_I2C_CHARDEV=y
687# CONFIG_SENSORS_DS1337 is not set 687# CONFIG_SENSORS_DS1337 is not set
688# CONFIG_SENSORS_DS1374 is not set 688# CONFIG_SENSORS_DS1374 is not set
689# CONFIG_DS1682 is not set 689# CONFIG_DS1682 is not set
690# CONFIG_SENSORS_EEPROM is not set 690# CONFIG_EEPROM_LEGACY is not set
691# CONFIG_SENSORS_PCF8574 is not set 691# CONFIG_SENSORS_PCF8574 is not set
692# CONFIG_SENSORS_PCA9539 is not set 692# CONFIG_SENSORS_PCA9539 is not set
693# CONFIG_SENSORS_PCF8591 is not set 693# CONFIG_SENSORS_PCF8591 is not set
@@ -714,7 +714,7 @@ CONFIG_SPI_ATMEL=y
714# 714#
715# SPI Protocol Masters 715# SPI Protocol Masters
716# 716#
717# CONFIG_SPI_AT25 is not set 717# CONFIG_EEPROM_AT25 is not set
718# CONFIG_SPI_SPIDEV is not set 718# CONFIG_SPI_SPIDEV is not set
719# CONFIG_SPI_TLE62X0 is not set 719# CONFIG_SPI_TLE62X0 is not set
720# CONFIG_W1 is not set 720# CONFIG_W1 is not set
@@ -727,7 +727,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
727# Watchdog Device Drivers 727# Watchdog Device Drivers
728# 728#
729# CONFIG_SOFT_WATCHDOG is not set 729# CONFIG_SOFT_WATCHDOG is not set
730# CONFIG_AT91SAM9_WATCHDOG is not set 730# CONFIG_AT91SAM9X_WATCHDOG is not set
731 731
732# 732#
733# USB-based Watchdog Cards 733# USB-based Watchdog Cards
diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig
index f62d1817d2c6..a29d61fe4c6a 100644
--- a/arch/arm/configs/rpc_defconfig
+++ b/arch/arm/configs/rpc_defconfig
@@ -590,7 +590,7 @@ CONFIG_I2C_ACORN=y
590# CONFIG_SENSORS_DS1337 is not set 590# CONFIG_SENSORS_DS1337 is not set
591# CONFIG_SENSORS_DS1374 is not set 591# CONFIG_SENSORS_DS1374 is not set
592# CONFIG_DS1682 is not set 592# CONFIG_DS1682 is not set
593# CONFIG_SENSORS_EEPROM is not set 593# CONFIG_EEPROM_LEGACY is not set
594# CONFIG_SENSORS_PCF8574 is not set 594# CONFIG_SENSORS_PCF8574 is not set
595# CONFIG_SENSORS_PCA9539 is not set 595# CONFIG_SENSORS_PCA9539 is not set
596# CONFIG_SENSORS_PCF8591 is not set 596# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index 35faaea8623e..65a583ee5df8 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_defconfig
@@ -923,7 +923,7 @@ CONFIG_I2C_SIMTEC=y
923# Miscellaneous I2C Chip support 923# Miscellaneous I2C Chip support
924# 924#
925# CONFIG_DS1682 is not set 925# CONFIG_DS1682 is not set
926CONFIG_SENSORS_EEPROM=m 926CONFIG_EEPROM_LEGACY=m
927# CONFIG_SENSORS_PCF8574 is not set 927# CONFIG_SENSORS_PCF8574 is not set
928# CONFIG_PCF8575 is not set 928# CONFIG_PCF8575 is not set
929# CONFIG_SENSORS_PCF8591 is not set 929# CONFIG_SENSORS_PCF8591 is not set
@@ -950,7 +950,7 @@ CONFIG_SPI_S3C24XX_GPIO=m
950# 950#
951# SPI Protocol Masters 951# SPI Protocol Masters
952# 952#
953# CONFIG_SPI_AT25 is not set 953# CONFIG_EEPROM_AT25 is not set
954# CONFIG_SPI_SPIDEV is not set 954# CONFIG_SPI_SPIDEV is not set
955# CONFIG_SPI_TLE62X0 is not set 955# CONFIG_SPI_TLE62X0 is not set
956CONFIG_HAVE_GPIO_LIB=y 956CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig
index cf3c1b5d7048..2e8fa50e9a09 100644
--- a/arch/arm/configs/s3c6400_defconfig
+++ b/arch/arm/configs/s3c6400_defconfig
@@ -465,8 +465,8 @@ CONFIG_I2C_S3C2410=y
465# Miscellaneous I2C Chip support 465# Miscellaneous I2C Chip support
466# 466#
467# CONFIG_DS1682 is not set 467# CONFIG_DS1682 is not set
468CONFIG_AT24=y 468CONFIG_EEPROM_AT24=y
469# CONFIG_SENSORS_EEPROM is not set 469# CONFIG_EEPROM_LEGACY is not set
470# CONFIG_SENSORS_PCF8574 is not set 470# CONFIG_SENSORS_PCF8574 is not set
471# CONFIG_PCF8575 is not set 471# CONFIG_PCF8575 is not set
472# CONFIG_SENSORS_PCA9539 is not set 472# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig
index 4df5b4db2aa0..745c68ffb885 100644
--- a/arch/arm/configs/spitz_defconfig
+++ b/arch/arm/configs/spitz_defconfig
@@ -977,8 +977,8 @@ CONFIG_I2C_PXA=y
977# Miscellaneous I2C Chip support 977# Miscellaneous I2C Chip support
978# 978#
979# CONFIG_DS1682 is not set 979# CONFIG_DS1682 is not set
980# CONFIG_AT24 is not set 980# CONFIG_EEPROM_AT24 is not set
981# CONFIG_SENSORS_EEPROM is not set 981# CONFIG_EEPROM_LEGACY is not set
982# CONFIG_SENSORS_PCF8574 is not set 982# CONFIG_SENSORS_PCF8574 is not set
983# CONFIG_PCF8575 is not set 983# CONFIG_PCF8575 is not set
984# CONFIG_SENSORS_PCA9539 is not set 984# CONFIG_SENSORS_PCA9539 is not set
@@ -1003,7 +1003,7 @@ CONFIG_SPI_PXA2XX=y
1003# 1003#
1004# SPI Protocol Masters 1004# SPI Protocol Masters
1005# 1005#
1006# CONFIG_SPI_AT25 is not set 1006# CONFIG_EEPROM_AT25 is not set
1007# CONFIG_SPI_SPIDEV is not set 1007# CONFIG_SPI_SPIDEV is not set
1008# CONFIG_SPI_TLE62X0 is not set 1008# CONFIG_SPI_TLE62X0 is not set
1009CONFIG_ARCH_REQUIRE_GPIOLIB=y 1009CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/sx1_defconfig b/arch/arm/configs/sx1_defconfig
index 853dcdd9f2e0..25b007ff8bab 100644
--- a/arch/arm/configs/sx1_defconfig
+++ b/arch/arm/configs/sx1_defconfig
@@ -610,7 +610,7 @@ CONFIG_I2C_OMAP=y
610# 610#
611# CONFIG_SENSORS_DS1337 is not set 611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set 612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_SENSORS_EEPROM is not set 613# CONFIG_EEPROM_LEGACY is not set
614# CONFIG_SENSORS_PCF8574 is not set 614# CONFIG_SENSORS_PCF8574 is not set
615# CONFIG_SENSORS_PCA9539 is not set 615# CONFIG_SENSORS_PCA9539 is not set
616# CONFIG_SENSORS_PCF8591 is not set 616# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig
index 9033d147f052..b6f838197816 100644
--- a/arch/arm/configs/trizeps4_defconfig
+++ b/arch/arm/configs/trizeps4_defconfig
@@ -948,7 +948,7 @@ CONFIG_I2C_PXA_SLAVE=y
948# 948#
949# CONFIG_SENSORS_DS1337 is not set 949# CONFIG_SENSORS_DS1337 is not set
950# CONFIG_SENSORS_DS1374 is not set 950# CONFIG_SENSORS_DS1374 is not set
951# CONFIG_SENSORS_EEPROM is not set 951# CONFIG_EEPROM_LEGACY is not set
952# CONFIG_SENSORS_PCF8574 is not set 952# CONFIG_SENSORS_PCF8574 is not set
953# CONFIG_SENSORS_PCA9539 is not set 953# CONFIG_SENSORS_PCA9539 is not set
954# CONFIG_SENSORS_PCF8591 is not set 954# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/usb-a9260_defconfig b/arch/arm/configs/usb-a9260_defconfig
index fcb4aaabd439..fd7774033d64 100644
--- a/arch/arm/configs/usb-a9260_defconfig
+++ b/arch/arm/configs/usb-a9260_defconfig
@@ -676,7 +676,7 @@ CONFIG_SPI_ATMEL=y
676# 676#
677# SPI Protocol Masters 677# SPI Protocol Masters
678# 678#
679# CONFIG_SPI_AT25 is not set 679# CONFIG_EEPROM_AT25 is not set
680# CONFIG_SPI_SPIDEV is not set 680# CONFIG_SPI_SPIDEV is not set
681# CONFIG_SPI_TLE62X0 is not set 681# CONFIG_SPI_TLE62X0 is not set
682# CONFIG_W1 is not set 682# CONFIG_W1 is not set
diff --git a/arch/arm/configs/usb-a9263_defconfig b/arch/arm/configs/usb-a9263_defconfig
index b786e0407e8e..e7c19dd92557 100644
--- a/arch/arm/configs/usb-a9263_defconfig
+++ b/arch/arm/configs/usb-a9263_defconfig
@@ -668,7 +668,7 @@ CONFIG_SPI_ATMEL=y
668# 668#
669# SPI Protocol Masters 669# SPI Protocol Masters
670# 670#
671# CONFIG_SPI_AT25 is not set 671# CONFIG_EEPROM_AT25 is not set
672# CONFIG_SPI_SPIDEV is not set 672# CONFIG_SPI_SPIDEV is not set
673# CONFIG_SPI_TLE62X0 is not set 673# CONFIG_SPI_TLE62X0 is not set
674# CONFIG_W1 is not set 674# CONFIG_W1 is not set
diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig
index 8355f88f7292..b11c5da3996c 100644
--- a/arch/arm/configs/versatile_defconfig
+++ b/arch/arm/configs/versatile_defconfig
@@ -611,7 +611,7 @@ CONFIG_I2C_ALGOBIT=y
611# 611#
612# CONFIG_SENSORS_DS1337 is not set 612# CONFIG_SENSORS_DS1337 is not set
613# CONFIG_SENSORS_DS1374 is not set 613# CONFIG_SENSORS_DS1374 is not set
614CONFIG_SENSORS_EEPROM=m 614CONFIG_EEPROM_LEGACY=m
615# CONFIG_SENSORS_PCF8574 is not set 615# CONFIG_SENSORS_PCF8574 is not set
616# CONFIG_SENSORS_PCA9539 is not set 616# CONFIG_SENSORS_PCA9539 is not set
617# CONFIG_SENSORS_PCF8591 is not set 617# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/viper_defconfig b/arch/arm/configs/viper_defconfig
index d01fecb8673e..30f463d2fa8a 100644
--- a/arch/arm/configs/viper_defconfig
+++ b/arch/arm/configs/viper_defconfig
@@ -860,8 +860,8 @@ CONFIG_I2C_PXA=y
860# Miscellaneous I2C Chip support 860# Miscellaneous I2C Chip support
861# 861#
862# CONFIG_DS1682 is not set 862# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set 863# CONFIG_EEPROM_AT24 is not set
864# CONFIG_SENSORS_EEPROM is not set 864# CONFIG_EEPROM_LEGACY is not set
865# CONFIG_SENSORS_PCF8574 is not set 865# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set 866# CONFIG_PCF8575 is not set
867# CONFIG_SENSORS_PCA9539 is not set 867# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/xm_x2xx_defconfig b/arch/arm/configs/xm_x2xx_defconfig
index f891364deceb..1039f366bf8d 100644
--- a/arch/arm/configs/xm_x2xx_defconfig
+++ b/arch/arm/configs/xm_x2xx_defconfig
@@ -1009,8 +1009,8 @@ CONFIG_I2C_PXA=y
1009# Miscellaneous I2C Chip support 1009# Miscellaneous I2C Chip support
1010# 1010#
1011# CONFIG_DS1682 is not set 1011# CONFIG_DS1682 is not set
1012# CONFIG_AT24 is not set 1012# CONFIG_EEPROM_AT24 is not set
1013# CONFIG_SENSORS_EEPROM is not set 1013# CONFIG_EEPROM_LEGACY is not set
1014# CONFIG_SENSORS_PCF8574 is not set 1014# CONFIG_SENSORS_PCF8574 is not set
1015# CONFIG_PCF8575 is not set 1015# CONFIG_PCF8575 is not set
1016# CONFIG_SENSORS_PCA9539 is not set 1016# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/yl9200_defconfig b/arch/arm/configs/yl9200_defconfig
index a9f41c24c9dc..9192e5977674 100644
--- a/arch/arm/configs/yl9200_defconfig
+++ b/arch/arm/configs/yl9200_defconfig
@@ -682,7 +682,7 @@ CONFIG_SPI_ATMEL=y
682# 682#
683# SPI Protocol Masters 683# SPI Protocol Masters
684# 684#
685# CONFIG_SPI_AT25 is not set 685# CONFIG_EEPROM_AT25 is not set
686# CONFIG_SPI_TLE62X0 is not set 686# CONFIG_SPI_TLE62X0 is not set
687# CONFIG_W1 is not set 687# CONFIG_W1 is not set
688# CONFIG_POWER_SUPPLY is not set 688# CONFIG_POWER_SUPPLY is not set
diff --git a/arch/arm/include/asm/Kbuild b/arch/arm/include/asm/Kbuild
index 43b0b2ba392f..73237bd130a2 100644
--- a/arch/arm/include/asm/Kbuild
+++ b/arch/arm/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3unifdef-y += hwcap.h 3unifdef-y += hwcap.h
4unifdef-y += swab.h
diff --git a/arch/arm/include/asm/a.out.h b/arch/arm/include/asm/a.out.h
index 79489fdcc8b8..083894b2e3bc 100644
--- a/arch/arm/include/asm/a.out.h
+++ b/arch/arm/include/asm/a.out.h
@@ -2,7 +2,7 @@
2#define __ARM_A_OUT_H__ 2#define __ARM_A_OUT_H__
3 3
4#include <linux/personality.h> 4#include <linux/personality.h>
5#include <asm/types.h> 5#include <linux/types.h>
6 6
7struct exec 7struct exec
8{ 8{
diff --git a/arch/arm/include/asm/byteorder.h b/arch/arm/include/asm/byteorder.h
index c02b6fc28e1a..77379748b171 100644
--- a/arch/arm/include/asm/byteorder.h
+++ b/arch/arm/include/asm/byteorder.h
@@ -15,8 +15,6 @@
15#ifndef __ASM_ARM_BYTEORDER_H 15#ifndef __ASM_ARM_BYTEORDER_H
16#define __ASM_ARM_BYTEORDER_H 16#define __ASM_ARM_BYTEORDER_H
17 17
18#include <asm/swab.h>
19
20#ifdef __ARMEB__ 18#ifdef __ARMEB__
21#include <linux/byteorder/big_endian.h> 19#include <linux/byteorder/big_endian.h>
22#else 20#else
diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h
index f2cd18a0932b..ee1304f22f94 100644
--- a/arch/arm/include/asm/setup.h
+++ b/arch/arm/include/asm/setup.h
@@ -14,7 +14,7 @@
14#ifndef __ASMARM_SETUP_H 14#ifndef __ASMARM_SETUP_H
15#define __ASMARM_SETUP_H 15#define __ASMARM_SETUP_H
16 16
17#include <asm/types.h> 17#include <linux/types.h>
18 18
19#define COMMAND_LINE_SIZE 1024 19#define COMMAND_LINE_SIZE 1024
20 20
diff --git a/arch/arm/include/asm/swab.h b/arch/arm/include/asm/swab.h
index 27a689be0856..ca2bf2f6d6ea 100644
--- a/arch/arm/include/asm/swab.h
+++ b/arch/arm/include/asm/swab.h
@@ -16,7 +16,7 @@
16#define __ASM_ARM_SWAB_H 16#define __ASM_ARM_SWAB_H
17 17
18#include <linux/compiler.h> 18#include <linux/compiler.h>
19#include <asm/types.h> 19#include <linux/types.h>
20 20
21#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) 21#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
22# define __SWAB_64_THRU_32__ 22# define __SWAB_64_THRU_32__
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 09a061cb7838..9ca8d13f05f7 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -98,7 +98,7 @@
98 CALL(sys_uselib) 98 CALL(sys_uselib)
99 CALL(sys_swapon) 99 CALL(sys_swapon)
100 CALL(sys_reboot) 100 CALL(sys_reboot)
101 CALL(OBSOLETE(old_readdir)) /* used by libc4 */ 101 CALL(OBSOLETE(sys_old_readdir)) /* used by libc4 */
102/* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */ 102/* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */
103 CALL(sys_munmap) 103 CALL(sys_munmap)
104 CALL(sys_truncate) 104 CALL(sys_truncate)
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c
index 84849098c8e8..d4a0da1e48f4 100644
--- a/arch/arm/kernel/elf.c
+++ b/arch/arm/kernel/elf.c
@@ -74,9 +74,9 @@ EXPORT_SYMBOL(elf_set_personality);
74 */ 74 */
75int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack) 75int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
76{ 76{
77 if (executable_stack != EXSTACK_ENABLE_X) 77 if (executable_stack != EXSTACK_DISABLE_X)
78 return 1; 78 return 1;
79 if (cpu_architecture() <= CPU_ARCH_ARMv6) 79 if (cpu_architecture() < CPU_ARCH_ARMv6)
80 return 1; 80 return 1;
81 return 0; 81 return 0;
82} 82}
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 77b047475539..85040cfeb5e5 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -650,6 +650,7 @@ ENTRY(fp_enter)
650no_fp: mov pc, lr 650no_fp: mov pc, lr
651 651
652__und_usr_unknown: 652__und_usr_unknown:
653 enable_irq
653 mov r0, sp 654 mov r0, sp
654 adr lr, ret_from_exception 655 adr lr, ret_from_exception
655 b do_undefinstr 656 b do_undefinstr
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 06269ea375c5..49a6ba926c2b 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -136,7 +136,7 @@ ENTRY(mcount)
136 ldmia sp!, {r0-r3, pc} 136 ldmia sp!, {r0-r3, pc}
137 137
138trace: 138trace:
139 ldr r1, [fp, #-4] 139 ldr r1, [fp, #-4] @ lr of instrumented routine
140 mov r0, lr 140 mov r0, lr
141 sub r0, r0, #MCOUNT_INSN_SIZE 141 sub r0, r0, #MCOUNT_INSN_SIZE
142 mov lr, pc 142 mov lr, pc
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index 4bb723eadad1..45eacb5a2ecd 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -101,7 +101,7 @@ unlock:
101/* Handle bad interrupts */ 101/* Handle bad interrupts */
102static struct irq_desc bad_irq_desc = { 102static struct irq_desc bad_irq_desc = {
103 .handle_irq = handle_bad_irq, 103 .handle_irq = handle_bad_irq,
104 .lock = SPIN_LOCK_UNLOCKED 104 .lock = __SPIN_LOCK_UNLOCKED(bad_irq_desc.lock),
105}; 105};
106 106
107#ifdef CONFIG_CPUMASK_OFFSTACK 107#ifdef CONFIG_CPUMASK_OFFSTACK
diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
index 440dc62cdc3a..598ca61e7bca 100644
--- a/arch/arm/kernel/machine_kexec.c
+++ b/arch/arm/kernel/machine_kexec.c
@@ -13,8 +13,8 @@
13#include <asm/cacheflush.h> 13#include <asm/cacheflush.h>
14#include <asm/mach-types.h> 14#include <asm/mach-types.h>
15 15
16const extern unsigned char relocate_new_kernel[]; 16extern const unsigned char relocate_new_kernel[];
17const extern unsigned int relocate_new_kernel_size; 17extern const unsigned int relocate_new_kernel_size;
18 18
19extern void setup_mm_for_reboot(char mode); 19extern void setup_mm_for_reboot(char mode);
20 20
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 7049815d66d5..68d6494c0389 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -233,12 +233,13 @@ static void __init cacheid_init(void)
233 unsigned int cachetype = read_cpuid_cachetype(); 233 unsigned int cachetype = read_cpuid_cachetype();
234 unsigned int arch = cpu_architecture(); 234 unsigned int arch = cpu_architecture();
235 235
236 if (arch >= CPU_ARCH_ARMv7) { 236 if (arch >= CPU_ARCH_ARMv6) {
237 cacheid = CACHEID_VIPT_NONALIASING; 237 if ((cachetype & (7 << 29)) == 4 << 29) {
238 if ((cachetype & (3 << 14)) == 1 << 14) 238 /* ARMv7 register format */
239 cacheid |= CACHEID_ASID_TAGGED; 239 cacheid = CACHEID_VIPT_NONALIASING;
240 } else if (arch >= CPU_ARCH_ARMv6) { 240 if ((cachetype & (3 << 14)) == 1 << 14)
241 if (cachetype & (1 << 23)) 241 cacheid |= CACHEID_ASID_TAGGED;
242 } else if (cachetype & (1 << 23))
242 cacheid = CACHEID_VIPT_ALIASING; 243 cacheid = CACHEID_VIPT_ALIASING;
243 else 244 else
244 cacheid = CACHEID_VIPT_NONALIASING; 245 cacheid = CACHEID_VIPT_NONALIASING;
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 00216071eaf7..85598f7da407 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -65,6 +65,7 @@ SECTIONS
65#endif 65#endif
66 . = ALIGN(4096); 66 . = ALIGN(4096);
67 __per_cpu_start = .; 67 __per_cpu_start = .;
68 *(.data.percpu.page_aligned)
68 *(.data.percpu) 69 *(.data.percpu)
69 *(.data.percpu.shared_aligned) 70 *(.data.percpu.shared_aligned)
70 __per_cpu_end = .; 71 __per_cpu_end = .;
diff --git a/arch/arm/mach-at91/at91cap9_devices.c b/arch/arm/mach-at91/at91cap9_devices.c
index 9eca2209cde6..412aa49ad2fb 100644
--- a/arch/arm/mach-at91/at91cap9_devices.c
+++ b/arch/arm/mach-at91/at91cap9_devices.c
@@ -697,7 +697,7 @@ static void __init at91_add_device_rtt(void)
697 * Watchdog 697 * Watchdog
698 * -------------------------------------------------------------------- */ 698 * -------------------------------------------------------------------- */
699 699
700#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 700#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
701static struct platform_device at91cap9_wdt_device = { 701static struct platform_device at91cap9_wdt_device = {
702 .name = "at91_wdt", 702 .name = "at91_wdt",
703 .id = -1, 703 .id = -1,
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index fdde1ea21b07..d74c9ac007e7 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -643,7 +643,7 @@ static void __init at91_add_device_rtt(void)
643 * Watchdog 643 * Watchdog
644 * -------------------------------------------------------------------- */ 644 * -------------------------------------------------------------------- */
645 645
646#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 646#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
647static struct platform_device at91sam9260_wdt_device = { 647static struct platform_device at91sam9260_wdt_device = {
648 .name = "at91_wdt", 648 .name = "at91_wdt",
649 .id = -1, 649 .id = -1,
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
index 17289756f80f..59fc48311fb0 100644
--- a/arch/arm/mach-at91/at91sam9261_devices.c
+++ b/arch/arm/mach-at91/at91sam9261_devices.c
@@ -621,7 +621,7 @@ static void __init at91_add_device_rtt(void)
621 * Watchdog 621 * Watchdog
622 * -------------------------------------------------------------------- */ 622 * -------------------------------------------------------------------- */
623 623
624#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 624#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
625static struct platform_device at91sam9261_wdt_device = { 625static struct platform_device at91sam9261_wdt_device = {
626 .name = "at91_wdt", 626 .name = "at91_wdt",
627 .id = -1, 627 .id = -1,
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index b753cb879d8e..b7f233242315 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -347,6 +347,111 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data)
347void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {} 347void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
348#endif 348#endif
349 349
350/* --------------------------------------------------------------------
351 * Compact Flash (PCMCIA or IDE)
352 * -------------------------------------------------------------------- */
353
354#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \
355 defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE)
356
357static struct at91_cf_data cf0_data;
358
359static struct resource cf0_resources[] = {
360 [0] = {
361 .start = AT91_CHIPSELECT_4,
362 .end = AT91_CHIPSELECT_4 + SZ_256M - 1,
363 .flags = IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
364 }
365};
366
367static struct platform_device cf0_device = {
368 .id = 0,
369 .dev = {
370 .platform_data = &cf0_data,
371 },
372 .resource = cf0_resources,
373 .num_resources = ARRAY_SIZE(cf0_resources),
374};
375
376static struct at91_cf_data cf1_data;
377
378static struct resource cf1_resources[] = {
379 [0] = {
380 .start = AT91_CHIPSELECT_5,
381 .end = AT91_CHIPSELECT_5 + SZ_256M - 1,
382 .flags = IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
383 }
384};
385
386static struct platform_device cf1_device = {
387 .id = 1,
388 .dev = {
389 .platform_data = &cf1_data,
390 },
391 .resource = cf1_resources,
392 .num_resources = ARRAY_SIZE(cf1_resources),
393};
394
395void __init at91_add_device_cf(struct at91_cf_data *data)
396{
397 unsigned long ebi0_csa;
398 struct platform_device *pdev;
399
400 if (!data)
401 return;
402
403 /*
404 * assign CS4 or CS5 to SMC with Compact Flash logic support,
405 * we assume SMC timings are configured by board code,
406 * except True IDE where timings are controlled by driver
407 */
408 ebi0_csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
409 switch (data->chipselect) {
410 case 4:
411 at91_set_A_periph(AT91_PIN_PD6, 0); /* EBI0_NCS4/CFCS0 */
412 ebi0_csa |= AT91_MATRIX_EBI0_CS4A_SMC_CF1;
413 cf0_data = *data;
414 pdev = &cf0_device;
415 break;
416 case 5:
417 at91_set_A_periph(AT91_PIN_PD7, 0); /* EBI0_NCS5/CFCS1 */
418 ebi0_csa |= AT91_MATRIX_EBI0_CS5A_SMC_CF2;
419 cf1_data = *data;
420 pdev = &cf1_device;
421 break;
422 default:
423 printk(KERN_ERR "AT91 CF: bad chip-select requested (%u)\n",
424 data->chipselect);
425 return;
426 }
427 at91_sys_write(AT91_MATRIX_EBI0CSA, ebi0_csa);
428
429 if (data->det_pin) {
430 at91_set_gpio_input(data->det_pin, 1);
431 at91_set_deglitch(data->det_pin, 1);
432 }
433
434 if (data->irq_pin) {
435 at91_set_gpio_input(data->irq_pin, 1);
436 at91_set_deglitch(data->irq_pin, 1);
437 }
438
439 if (data->vcc_pin)
440 /* initially off */
441 at91_set_gpio_output(data->vcc_pin, 0);
442
443 /* enable EBI controlled pins */
444 at91_set_A_periph(AT91_PIN_PD5, 1); /* NWAIT */
445 at91_set_A_periph(AT91_PIN_PD8, 0); /* CFCE1 */
446 at91_set_A_periph(AT91_PIN_PD9, 0); /* CFCE2 */
447 at91_set_A_periph(AT91_PIN_PD14, 0); /* CFNRW */
448
449 pdev->name = (data->flags & AT91_CF_TRUE_IDE) ? "at91_ide" : "at91_cf";
450 platform_device_register(pdev);
451}
452#else
453void __init at91_add_device_cf(struct at91_cf_data *data) {}
454#endif
350 455
351/* -------------------------------------------------------------------- 456/* --------------------------------------------------------------------
352 * NAND / SmartMedia 457 * NAND / SmartMedia
@@ -854,7 +959,7 @@ static void __init at91_add_device_rtt(void)
854 * Watchdog 959 * Watchdog
855 * -------------------------------------------------------------------- */ 960 * -------------------------------------------------------------------- */
856 961
857#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 962#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
858static struct platform_device at91sam9263_wdt_device = { 963static struct platform_device at91sam9263_wdt_device = {
859 .name = "at91_wdt", 964 .name = "at91_wdt",
860 .id = -1, 965 .id = -1,
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c
index 145324f4ec56..728186515cdf 100644
--- a/arch/arm/mach-at91/at91sam9rl_devices.c
+++ b/arch/arm/mach-at91/at91sam9rl_devices.c
@@ -609,7 +609,7 @@ static void __init at91_add_device_rtt(void)
609 * Watchdog 609 * Watchdog
610 * -------------------------------------------------------------------- */ 610 * -------------------------------------------------------------------- */
611 611
612#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE) 612#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
613static struct platform_device at91sam9rl_wdt_device = { 613static struct platform_device at91sam9rl_wdt_device = {
614 .name = "at91_wdt", 614 .name = "at91_wdt",
615 .id = -1, 615 .id = -1,
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index 9b0447c3d59b..2f7d4977dce9 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -490,7 +490,8 @@ postcore_initcall(at91_gpio_debugfs_init);
490 490
491/*--------------------------------------------------------------------------*/ 491/*--------------------------------------------------------------------------*/
492 492
493/* This lock class tells lockdep that GPIO irqs are in a different 493/*
494 * This lock class tells lockdep that GPIO irqs are in a different
494 * category than their parents, so it won't report false recursion. 495 * category than their parents, so it won't report false recursion.
495 */ 496 */
496static struct lock_class_key gpio_lock_class; 497static struct lock_class_key gpio_lock_class;
@@ -509,9 +510,6 @@ void __init at91_gpio_irq_setup(void)
509 unsigned id = this->id; 510 unsigned id = this->id;
510 unsigned i; 511 unsigned i;
511 512
512 /* enable PIO controller's clock */
513 clk_enable(this->clock);
514
515 __raw_writel(~0, this->regbase + PIO_IDR); 513 __raw_writel(~0, this->regbase + PIO_IDR);
516 514
517 for (i = 0, pin = this->chipbase; i < 32; i++, pin++) { 515 for (i = 0, pin = this->chipbase; i < 32; i++, pin++) {
@@ -556,7 +554,14 @@ void __init at91_gpio_init(struct at91_gpio_bank *data, int nr_banks)
556 data->chipbase = PIN_BASE + i * 32; 554 data->chipbase = PIN_BASE + i * 32;
557 data->regbase = data->offset + (void __iomem *)AT91_VA_BASE_SYS; 555 data->regbase = data->offset + (void __iomem *)AT91_VA_BASE_SYS;
558 556
559 /* AT91SAM9263_ID_PIOCDE groups PIOC, PIOD, PIOE */ 557 /* enable PIO controller's clock */
558 clk_enable(data->clock);
559
560 /*
561 * Some processors share peripheral ID between multiple GPIO banks.
562 * SAM9263 (PIOC, PIOD, PIOE)
563 * CAP9 (PIOA, PIOB, PIOC, PIOD)
564 */
560 if (last && last->id == data->id) 565 if (last && last->id == data->id)
561 last->next = data; 566 last->next = data;
562 } 567 }
diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h
index fb51f0e0a83f..793fe7b25f36 100644
--- a/arch/arm/mach-at91/include/mach/board.h
+++ b/arch/arm/mach-at91/include/mach/board.h
@@ -56,6 +56,9 @@ struct at91_cf_data {
56 u8 vcc_pin; /* power switching */ 56 u8 vcc_pin; /* power switching */
57 u8 rst_pin; /* card reset */ 57 u8 rst_pin; /* card reset */
58 u8 chipselect; /* EBI Chip Select number */ 58 u8 chipselect; /* EBI Chip Select number */
59 u8 flags;
60#define AT91_CF_TRUE_IDE 0x01
61#define AT91_IDE_SWAP_A0_A2 0x02
59}; 62};
60extern void __init at91_add_device_cf(struct at91_cf_data *data); 63extern void __init at91_add_device_cf(struct at91_cf_data *data);
61 64
@@ -93,6 +96,7 @@ struct atmel_nand_data {
93 u8 enable_pin; /* chip enable */ 96 u8 enable_pin; /* chip enable */
94 u8 det_pin; /* card detect */ 97 u8 det_pin; /* card detect */
95 u8 rdy_pin; /* ready/busy */ 98 u8 rdy_pin; /* ready/busy */
99 u8 rdy_pin_active_low; /* rdy_pin value is inverted */
96 u8 ale; /* address line number connected to ALE */ 100 u8 ale; /* address line number connected to ALE */
97 u8 cle; /* address line number connected to CLE */ 101 u8 cle; /* address line number connected to CLE */
98 u8 bus_width_16; /* buswidth is 16 bit */ 102 u8 bus_width_16; /* buswidth is 16 bit */
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index 9bb4f043aa22..7ac812dc055a 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -332,7 +332,6 @@ static int at91_pm_enter(suspend_state_t state)
332 at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR)); 332 at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR));
333 333
334error: 334error:
335 sdram_selfrefresh_disable();
336 target_state = PM_SUSPEND_ON; 335 target_state = PM_SUSPEND_ON;
337 at91_irq_resume(); 336 at91_irq_resume();
338 at91_gpio_resume(); 337 at91_gpio_resume();
diff --git a/arch/arm/mach-davinci/board-evm.c b/arch/arm/mach-davinci/board-evm.c
index a957d239a683..38b6a9ce2a93 100644
--- a/arch/arm/mach-davinci/board-evm.c
+++ b/arch/arm/mach-davinci/board-evm.c
@@ -311,6 +311,9 @@ evm_u35_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
311 gpio_request(gpio + 7, "nCF_SEL"); 311 gpio_request(gpio + 7, "nCF_SEL");
312 gpio_direction_output(gpio + 7, 1); 312 gpio_direction_output(gpio + 7, 1);
313 313
314 /* irlml6401 sustains over 3A, switches 5V in under 8 msec */
315 setup_usb(500, 8);
316
314 return 0; 317 return 0;
315} 318}
316 319
@@ -417,9 +420,6 @@ static __init void davinci_evm_init(void)
417 platform_add_devices(davinci_evm_devices, 420 platform_add_devices(davinci_evm_devices,
418 ARRAY_SIZE(davinci_evm_devices)); 421 ARRAY_SIZE(davinci_evm_devices));
419 evm_init_i2c(); 422 evm_init_i2c();
420
421 /* irlml6401 sustains over 3A, switches 5V in under 8 msec */
422 setup_usb(500, 8);
423} 423}
424 424
425static __init void davinci_evm_irq_init(void) 425static __init void davinci_evm_irq_init(void)
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c
index 28f6dbc95bd7..abb92b7eca0c 100644
--- a/arch/arm/mach-davinci/clock.c
+++ b/arch/arm/mach-davinci/clock.c
@@ -231,6 +231,11 @@ static struct clk davinci_clks[] = {
231 .lpsc = DAVINCI_LPSC_GPIO, 231 .lpsc = DAVINCI_LPSC_GPIO,
232 }, 232 },
233 { 233 {
234 .name = "usb",
235 .rate = &commonrate,
236 .lpsc = DAVINCI_LPSC_USB,
237 },
238 {
234 .name = "AEMIFCLK", 239 .name = "AEMIFCLK",
235 .rate = &commonrate, 240 .rate = &commonrate,
236 .lpsc = DAVINCI_LPSC_AEMIF, 241 .lpsc = DAVINCI_LPSC_AEMIF,
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c
index fe182a85159c..69680784448a 100644
--- a/arch/arm/mach-davinci/usb.c
+++ b/arch/arm/mach-davinci/usb.c
@@ -12,6 +12,7 @@
12 12
13#include <mach/common.h> 13#include <mach/common.h>
14#include <mach/hardware.h> 14#include <mach/hardware.h>
15#include <mach/irqs.h>
15 16
16#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) 17#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
17static struct musb_hdrc_eps_bits musb_eps[] = { 18static struct musb_hdrc_eps_bits musb_eps[] = {
@@ -46,6 +47,7 @@ static struct musb_hdrc_platform_data usb_data = {
46#elif defined(CONFIG_USB_MUSB_HOST) 47#elif defined(CONFIG_USB_MUSB_HOST)
47 .mode = MUSB_HOST, 48 .mode = MUSB_HOST,
48#endif 49#endif
50 .clock = "usb",
49 .config = &musb_config, 51 .config = &musb_config,
50}; 52};
51 53
@@ -76,29 +78,6 @@ static struct platform_device usb_dev = {
76 .num_resources = ARRAY_SIZE(usb_resources), 78 .num_resources = ARRAY_SIZE(usb_resources),
77}; 79};
78 80
79#ifdef CONFIG_USB_MUSB_OTG
80
81static struct otg_transceiver *xceiv;
82
83struct otg_transceiver *otg_get_transceiver(void)
84{
85 if (xceiv)
86 get_device(xceiv->dev);
87 return xceiv;
88}
89EXPORT_SYMBOL(otg_get_transceiver);
90
91int otg_set_transceiver(struct otg_transceiver *x)
92{
93 if (xceiv && x)
94 return -EBUSY;
95 xceiv = x;
96 return 0;
97}
98EXPORT_SYMBOL(otg_set_transceiver);
99
100#endif
101
102void __init setup_usb(unsigned mA, unsigned potpgt_msec) 81void __init setup_usb(unsigned mA, unsigned potpgt_msec)
103{ 82{
104 usb_data.power = mA / 2; 83 usb_data.power = mA / 2;
diff --git a/arch/arm/mach-ep93xx/include/mach/gesbc9312.h b/arch/arm/mach-ep93xx/include/mach/gesbc9312.h
deleted file mode 100644
index 21fe2b922aa5..000000000000
--- a/arch/arm/mach-ep93xx/include/mach/gesbc9312.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * arch/arm/mach-ep93xx/include/mach/gesbc9312.h
3 */
diff --git a/arch/arm/mach-ep93xx/include/mach/hardware.h b/arch/arm/mach-ep93xx/include/mach/hardware.h
index 529807d182bf..2866297310b7 100644
--- a/arch/arm/mach-ep93xx/include/mach/hardware.h
+++ b/arch/arm/mach-ep93xx/include/mach/hardware.h
@@ -10,7 +10,6 @@
10 10
11#include "platform.h" 11#include "platform.h"
12 12
13#include "gesbc9312.h"
14#include "ts72xx.h" 13#include "ts72xx.h"
15 14
16#endif 15#endif
diff --git a/arch/arm/mach-integrator/clock.h b/arch/arm/mach-integrator/clock.h
deleted file mode 100644
index e69de29bb2d1..000000000000
--- a/arch/arm/mach-integrator/clock.h
+++ /dev/null
diff --git a/arch/arm/mach-kirkwood/irq.c b/arch/arm/mach-kirkwood/irq.c
index efb86b700276..06083b23bb44 100644
--- a/arch/arm/mach-kirkwood/irq.c
+++ b/arch/arm/mach-kirkwood/irq.c
@@ -42,7 +42,7 @@ void __init kirkwood_init_irq(void)
42 writel(0, GPIO_EDGE_CAUSE(32)); 42 writel(0, GPIO_EDGE_CAUSE(32));
43 43
44 for (i = IRQ_KIRKWOOD_GPIO_START; i < NR_IRQS; i++) { 44 for (i = IRQ_KIRKWOOD_GPIO_START; i < NR_IRQS; i++) {
45 set_irq_chip(i, &orion_gpio_irq_level_chip); 45 set_irq_chip(i, &orion_gpio_irq_chip);
46 set_irq_handler(i, handle_level_irq); 46 set_irq_handler(i, handle_level_irq);
47 irq_desc[i].status |= IRQ_LEVEL; 47 irq_desc[i].status |= IRQ_LEVEL;
48 set_irq_flags(i, IRQF_VALID); 48 set_irq_flags(i, IRQF_VALID);
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c
index c2a96e3965a6..e61967dde9a1 100644
--- a/arch/arm/mach-msm/board-halibut.c
+++ b/arch/arm/mach-msm/board-halibut.c
@@ -27,6 +27,7 @@
27#include <asm/mach/map.h> 27#include <asm/mach/map.h>
28#include <asm/mach/flash.h> 28#include <asm/mach/flash.h>
29 29
30#include <mach/irqs.h>
30#include <mach/board.h> 31#include <mach/board.h>
31#include <mach/msm_iomap.h> 32#include <mach/msm_iomap.h>
32 33
diff --git a/arch/arm/mach-mv78xx0/irq.c b/arch/arm/mach-mv78xx0/irq.c
index e273418797b4..30b7e4bcdbc7 100644
--- a/arch/arm/mach-mv78xx0/irq.c
+++ b/arch/arm/mach-mv78xx0/irq.c
@@ -40,7 +40,7 @@ void __init mv78xx0_init_irq(void)
40 writel(0, GPIO_EDGE_CAUSE(0)); 40 writel(0, GPIO_EDGE_CAUSE(0));
41 41
42 for (i = IRQ_MV78XX0_GPIO_START; i < NR_IRQS; i++) { 42 for (i = IRQ_MV78XX0_GPIO_START; i < NR_IRQS; i++) {
43 set_irq_chip(i, &orion_gpio_irq_level_chip); 43 set_irq_chip(i, &orion_gpio_irq_chip);
44 set_irq_handler(i, handle_level_irq); 44 set_irq_handler(i, handle_level_irq);
45 irq_desc[i].status |= IRQ_LEVEL; 45 irq_desc[i].status |= IRQ_LEVEL;
46 set_irq_flags(i, IRQF_VALID); 46 set_irq_flags(i, IRQF_VALID);
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index b240c5f861da..0d784a795092 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -37,16 +37,14 @@
37#include <asm/mach/flash.h> 37#include <asm/mach/flash.h>
38#include <asm/mach/map.h> 38#include <asm/mach/map.h>
39 39
40#include <mach/gpio-switch.h>
41#include <mach/mux.h> 40#include <mach/mux.h>
41#include <mach/dma.h>
42#include <mach/tc.h> 42#include <mach/tc.h>
43#include <mach/nand.h> 43#include <mach/nand.h>
44#include <mach/irda.h> 44#include <mach/irda.h>
45#include <mach/usb.h> 45#include <mach/usb.h>
46#include <mach/keypad.h> 46#include <mach/keypad.h>
47#include <mach/common.h> 47#include <mach/common.h>
48#include <mach/mcbsp.h>
49#include <mach/omap-alsa.h>
50 48
51static int h2_keymap[] = { 49static int h2_keymap[] = {
52 KEY(0, 0, KEY_LEFT), 50 KEY(0, 0, KEY_LEFT),
@@ -292,41 +290,6 @@ static struct platform_device h2_lcd_device = {
292 .id = -1, 290 .id = -1,
293}; 291};
294 292
295static struct omap_mcbsp_reg_cfg mcbsp_regs = {
296 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
297 .spcr1 = RINTM(3) | RRST,
298 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
299 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
300 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
301 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
302 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
303 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
304 .srgr1 = FWID(15),
305 .srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
306
307 .pcr0 = CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
308 /*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */
309};
310
311static struct omap_alsa_codec_config alsa_config = {
312 .name = "H2 TSC2101",
313 .mcbsp_regs_alsa = &mcbsp_regs,
314 .codec_configure_dev = NULL, /* tsc2101_configure, */
315 .codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */
316 .codec_clock_setup = NULL, /* tsc2101_clock_setup, */
317 .codec_clock_on = NULL, /* tsc2101_clock_on, */
318 .codec_clock_off = NULL, /* tsc2101_clock_off, */
319 .get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
320};
321
322static struct platform_device h2_mcbsp1_device = {
323 .name = "omap_alsa_mcbsp",
324 .id = 1,
325 .dev = {
326 .platform_data = &alsa_config,
327 },
328};
329
330static struct platform_device *h2_devices[] __initdata = { 293static struct platform_device *h2_devices[] __initdata = {
331 &h2_nor_device, 294 &h2_nor_device,
332 &h2_nand_device, 295 &h2_nand_device,
@@ -334,7 +297,6 @@ static struct platform_device *h2_devices[] __initdata = {
334 &h2_irda_device, 297 &h2_irda_device,
335 &h2_kp_device, 298 &h2_kp_device,
336 &h2_lcd_device, 299 &h2_lcd_device,
337 &h2_mcbsp1_device,
338}; 300};
339 301
340static void __init h2_init_smc91x(void) 302static void __init h2_init_smc91x(void)
@@ -409,11 +371,6 @@ static struct omap_board_config_kernel h2_config[] __initdata = {
409 371
410#define H2_NAND_RB_GPIO_PIN 62 372#define H2_NAND_RB_GPIO_PIN 62
411 373
412static int h2_nand_dev_ready(struct omap_nand_platform_data *data)
413{
414 return gpio_get_value(H2_NAND_RB_GPIO_PIN);
415}
416
417static void __init h2_init(void) 374static void __init h2_init(void)
418{ 375{
419 /* Here we assume the NOR boot config: NOR on CS3 (possibly swapped 376 /* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 5157eea9be35..bf08b6ad22ee 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -49,8 +49,6 @@
49#include <mach/keypad.h> 49#include <mach/keypad.h>
50#include <mach/dma.h> 50#include <mach/dma.h>
51#include <mach/common.h> 51#include <mach/common.h>
52#include <mach/mcbsp.h>
53#include <mach/omap-alsa.h>
54 52
55#define H3_TS_GPIO 48 53#define H3_TS_GPIO 48
56 54
@@ -387,41 +385,6 @@ static struct spi_board_info h3_spi_board_info[] __initdata = {
387 }, 385 },
388}; 386};
389 387
390static struct omap_mcbsp_reg_cfg mcbsp_regs = {
391 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
392 .spcr1 = RINTM(3) | RRST,
393 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
394 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
395 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
396 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
397 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
398 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
399 .srgr1 = FWID(15),
400 .srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
401
402 .pcr0 = CLKRM | SCLKME | FSXP | FSRP | CLKXP | CLKRP,
403 /*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */
404};
405
406static struct omap_alsa_codec_config alsa_config = {
407 .name = "H3 TSC2101",
408 .mcbsp_regs_alsa = &mcbsp_regs,
409 .codec_configure_dev = NULL, /* tsc2101_configure, */
410 .codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */
411 .codec_clock_setup = NULL, /* tsc2101_clock_setup, */
412 .codec_clock_on = NULL, /* tsc2101_clock_on, */
413 .codec_clock_off = NULL, /* tsc2101_clock_off, */
414 .get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
415};
416
417static struct platform_device h3_mcbsp1_device = {
418 .name = "omap_alsa_mcbsp",
419 .id = 1,
420 .dev = {
421 .platform_data = &alsa_config,
422 },
423};
424
425static struct platform_device *devices[] __initdata = { 388static struct platform_device *devices[] __initdata = {
426 &nor_device, 389 &nor_device,
427 &nand_device, 390 &nand_device,
@@ -430,7 +393,6 @@ static struct platform_device *devices[] __initdata = {
430 &h3_irda_device, 393 &h3_irda_device,
431 &h3_kp_device, 394 &h3_kp_device,
432 &h3_lcd_device, 395 &h3_lcd_device,
433 &h3_mcbsp1_device,
434}; 396};
435 397
436static struct omap_usb_config h3_usb_config __initdata = { 398static struct omap_usb_config h3_usb_config __initdata = {
@@ -472,18 +434,6 @@ static struct i2c_board_info __initdata h3_i2c_board_info[] = {
472 }, 434 },
473}; 435};
474 436
475static struct omap_gpio_switch h3_gpio_switches[] __initdata = {
476 {
477 .name = "mmc_slot",
478 .gpio = OMAP_MPUIO(1),
479 .type = OMAP_GPIO_SWITCH_TYPE_COVER,
480 .debounce_rising = 100,
481 .debounce_falling = 0,
482 .notify = h3_mmc_slot_cover_handler,
483 .notify_data = NULL,
484 },
485};
486
487#define H3_NAND_RB_GPIO_PIN 10 437#define H3_NAND_RB_GPIO_PIN 10
488 438
489static int nand_dev_ready(struct omap_nand_platform_data *data) 439static int nand_dev_ready(struct omap_nand_platform_data *data)
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c
index af2fb9070083..071cd02a734e 100644
--- a/arch/arm/mach-omap1/board-innovator.c
+++ b/arch/arm/mach-omap1/board-innovator.c
@@ -37,8 +37,6 @@
37#include <mach/usb.h> 37#include <mach/usb.h>
38#include <mach/keypad.h> 38#include <mach/keypad.h>
39#include <mach/common.h> 39#include <mach/common.h>
40#include <mach/mcbsp.h>
41#include <mach/omap-alsa.h>
42#include <mach/mmc.h> 40#include <mach/mmc.h>
43 41
44static int innovator_keymap[] = { 42static int innovator_keymap[] = {
@@ -115,42 +113,6 @@ static struct platform_device innovator_flash_device = {
115 .resource = &innovator_flash_resource, 113 .resource = &innovator_flash_resource,
116}; 114};
117 115
118#define DEFAULT_BITPERSAMPLE 16
119
120static struct omap_mcbsp_reg_cfg mcbsp_regs = {
121 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
122 .spcr1 = RINTM(3) | RRST,
123 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
124 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
125 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
126 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
127 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
128 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
129 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
130 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
131 /*.pcr0 = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,*/ /* mcbsp: master */
132 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
133};
134
135static struct omap_alsa_codec_config alsa_config = {
136 .name = "OMAP Innovator AIC23",
137 .mcbsp_regs_alsa = &mcbsp_regs,
138 .codec_configure_dev = NULL, /* aic23_configure, */
139 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
140 .codec_clock_setup = NULL, /* aic23_clock_setup, */
141 .codec_clock_on = NULL, /* aic23_clock_on, */
142 .codec_clock_off = NULL, /* aic23_clock_off, */
143 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
144};
145
146static struct platform_device innovator_mcbsp1_device = {
147 .name = "omap_alsa_mcbsp",
148 .id = 1,
149 .dev = {
150 .platform_data = &alsa_config,
151 },
152};
153
154static struct resource innovator_kp_resources[] = { 116static struct resource innovator_kp_resources[] = {
155 [0] = { 117 [0] = {
156 .start = INT_KEYBOARD, 118 .start = INT_KEYBOARD,
@@ -227,7 +189,6 @@ static struct platform_device innovator1510_spi_device = {
227static struct platform_device *innovator1510_devices[] __initdata = { 189static struct platform_device *innovator1510_devices[] __initdata = {
228 &innovator_flash_device, 190 &innovator_flash_device,
229 &innovator1510_smc91x_device, 191 &innovator1510_smc91x_device,
230 &innovator_mcbsp1_device,
231 &innovator_kp_device, 192 &innovator_kp_device,
232 &innovator1510_lcd_device, 193 &innovator1510_lcd_device,
233 &innovator1510_spi_device, 194 &innovator1510_spi_device,
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c
index 4970c402a594..af51e0b180f2 100644
--- a/arch/arm/mach-omap1/board-nokia770.c
+++ b/arch/arm/mach-omap1/board-nokia770.c
@@ -32,7 +32,6 @@
32#include <mach/keypad.h> 32#include <mach/keypad.h>
33#include <mach/common.h> 33#include <mach/common.h>
34#include <mach/dsp_common.h> 34#include <mach/dsp_common.h>
35#include <mach/aic23.h>
36#include <mach/omapfb.h> 35#include <mach/omapfb.h>
37#include <mach/lcd_mipid.h> 36#include <mach/lcd_mipid.h>
38#include <mach/mmc.h> 37#include <mach/mmc.h>
@@ -261,6 +260,13 @@ static DEFINE_MUTEX(audio_pwr_lock);
261 */ 260 */
262static int audio_pwr_state = -1; 261static int audio_pwr_state = -1;
263 262
263static inline void aic23_power_up(void)
264{
265}
266static inline void aic23_power_down(void)
267{
268}
269
264/* 270/*
265 * audio_pwr_up / down should be called under audio_pwr_lock 271 * audio_pwr_up / down should be called under audio_pwr_lock
266 */ 272 */
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index ff9e67baa5c9..1a16ecb2ccc8 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -51,8 +51,6 @@
51#include <mach/mux.h> 51#include <mach/mux.h>
52#include <mach/tc.h> 52#include <mach/tc.h>
53#include <mach/common.h> 53#include <mach/common.h>
54#include <mach/mcbsp.h>
55#include <mach/omap-alsa.h>
56 54
57static struct mtd_partition osk_partitions[] = { 55static struct mtd_partition osk_partitions[] = {
58 /* bootloader (U-Boot, etc) in first sector */ 56 /* bootloader (U-Boot, etc) in first sector */
@@ -141,47 +139,10 @@ static struct platform_device osk5912_cf_device = {
141 .resource = osk5912_cf_resources, 139 .resource = osk5912_cf_resources,
142}; 140};
143 141
144#define DEFAULT_BITPERSAMPLE 16
145
146static struct omap_mcbsp_reg_cfg mcbsp_regs = {
147 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
148 .spcr1 = RINTM(3) | RRST,
149 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
150 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
151 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
152 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
153 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
154 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
155 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
156 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
157 /*.pcr0 = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,*/ /* mcbsp: master */
158 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
159};
160
161static struct omap_alsa_codec_config alsa_config = {
162 .name = "OSK AIC23",
163 .mcbsp_regs_alsa = &mcbsp_regs,
164 .codec_configure_dev = NULL, /* aic23_configure, */
165 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
166 .codec_clock_setup = NULL, /* aic23_clock_setup, */
167 .codec_clock_on = NULL, /* aic23_clock_on, */
168 .codec_clock_off = NULL, /* aic23_clock_off, */
169 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
170};
171
172static struct platform_device osk5912_mcbsp1_device = {
173 .name = "omap_alsa_mcbsp",
174 .id = 1,
175 .dev = {
176 .platform_data = &alsa_config,
177 },
178};
179
180static struct platform_device *osk5912_devices[] __initdata = { 142static struct platform_device *osk5912_devices[] __initdata = {
181 &osk5912_flash_device, 143 &osk5912_flash_device,
182 &osk5912_smc91x_device, 144 &osk5912_smc91x_device,
183 &osk5912_cf_device, 145 &osk5912_cf_device,
184 &osk5912_mcbsp1_device,
185}; 146};
186 147
187static struct gpio_led tps_leds[] = { 148static struct gpio_led tps_leds[] = {
@@ -259,8 +220,10 @@ static struct i2c_board_info __initdata osk_i2c_board_info[] = {
259 .platform_data = &tps_board, 220 .platform_data = &tps_board,
260 221
261 }, 222 },
223 {
224 I2C_BOARD_INFO("tlv320aic23", 0x1B),
225 },
262 /* TODO when driver support is ready: 226 /* TODO when driver support is ready:
263 * - aic23 audio chip at 0x1a
264 * - optionally on Mistral, ov9640 camera sensor at 0x30 227 * - optionally on Mistral, ov9640 camera sensor at 0x30
265 */ 228 */
266}; 229};
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c
index 75e32d35afd9..99f2b43f2541 100644
--- a/arch/arm/mach-omap1/board-palmte.c
+++ b/arch/arm/mach-omap1/board-palmte.c
@@ -42,8 +42,6 @@
42#include <mach/irda.h> 42#include <mach/irda.h>
43#include <mach/keypad.h> 43#include <mach/keypad.h>
44#include <mach/common.h> 44#include <mach/common.h>
45#include <mach/mcbsp.h>
46#include <mach/omap-alsa.h>
47 45
48static void __init omap_palmte_init_irq(void) 46static void __init omap_palmte_init_irq(void)
49{ 47{
@@ -195,15 +193,6 @@ static struct omap_usb_config palmte_usb_config __initdata = {
195 .pins[0] = 2, 193 .pins[0] = 2,
196}; 194};
197 195
198static struct omap_mmc_config palmte_mmc_config __initdata = {
199 .mmc[0] = {
200 .enabled = 1,
201 .wp_pin = PALMTE_MMC_WP_GPIO,
202 .power_pin = PALMTE_MMC_POWER_GPIO,
203 .switch_pin = PALMTE_MMC_SWITCH_GPIO,
204 },
205};
206
207static struct omap_lcd_config palmte_lcd_config __initdata = { 196static struct omap_lcd_config palmte_lcd_config __initdata = {
208 .ctrl_name = "internal", 197 .ctrl_name = "internal",
209}; 198};
@@ -212,24 +201,6 @@ static struct omap_uart_config palmte_uart_config __initdata = {
212 .enabled_uarts = (1 << 0) | (1 << 1) | (0 << 2), 201 .enabled_uarts = (1 << 0) | (1 << 1) | (0 << 2),
213}; 202};
214 203
215static struct omap_mcbsp_reg_cfg palmte_mcbsp1_regs = {
216 .spcr2 = FRST | GRST | XRST | XINTM(3),
217 .xcr2 = XDATDLY(1) | XFIG,
218 .xcr1 = XWDLEN1(OMAP_MCBSP_WORD_32),
219 .pcr0 = SCLKME | FSXP | CLKXP,
220};
221
222static struct omap_alsa_codec_config palmte_alsa_config = {
223 .name = "TSC2102 audio",
224 .mcbsp_regs_alsa = &palmte_mcbsp1_regs,
225 .codec_configure_dev = NULL, /* tsc2102_configure, */
226 .codec_set_samplerate = NULL, /* tsc2102_set_samplerate, */
227 .codec_clock_setup = NULL, /* tsc2102_clock_setup, */
228 .codec_clock_on = NULL, /* tsc2102_clock_on, */
229 .codec_clock_off = NULL, /* tsc2102_clock_off, */
230 .get_default_samplerate = NULL, /* tsc2102_get_default_samplerate, */
231};
232
233#ifdef CONFIG_APM 204#ifdef CONFIG_APM
234/* 205/*
235 * Values measured in 10 minute intervals averaged over 10 samples. 206 * Values measured in 10 minute intervals averaged over 10 samples.
diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c
index 5c001afe8062..1cbc1275c95f 100644
--- a/arch/arm/mach-omap1/board-palmtt.c
+++ b/arch/arm/mach-omap1/board-palmtt.c
@@ -30,7 +30,6 @@
30#include <asm/mach/flash.h> 30#include <asm/mach/flash.h>
31 31
32#include <mach/led.h> 32#include <mach/led.h>
33#include <mach/mcbsp.h>
34#include <mach/gpio.h> 33#include <mach/gpio.h>
35#include <mach/mux.h> 34#include <mach/mux.h>
36#include <mach/usb.h> 35#include <mach/usb.h>
@@ -40,7 +39,6 @@
40#include <mach/irda.h> 39#include <mach/irda.h>
41#include <mach/keypad.h> 40#include <mach/keypad.h>
42#include <mach/common.h> 41#include <mach/common.h>
43#include <mach/omap-alsa.h>
44 42
45#include <linux/spi/spi.h> 43#include <linux/spi/spi.h>
46#include <linux/spi/ads7846.h> 44#include <linux/spi/ads7846.h>
@@ -122,44 +120,6 @@ static struct platform_device palmtt_flash_device = {
122 .resource = &palmtt_flash_resource, 120 .resource = &palmtt_flash_resource,
123}; 121};
124 122
125#define DEFAULT_BITPERSAMPLE 16
126
127static struct omap_mcbsp_reg_cfg mcbsp_regs = {
128 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
129 .spcr1 = RINTM(3) | RRST,
130 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
131 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
132 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) |
133 RWDLEN1(OMAP_MCBSP_WORD_16),
134 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
135 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
136 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) |
137 XWDLEN1(OMAP_MCBSP_WORD_16),
138 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
139 .srgr2 = GSYNC | CLKSP | FSGM |
140 FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
141 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
142};
143
144static struct omap_alsa_codec_config alsa_config = {
145 .name = "PalmTT AIC23",
146 .mcbsp_regs_alsa = &mcbsp_regs,
147 .codec_configure_dev = NULL, /* aic23_configure, */
148 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
149 .codec_clock_setup = NULL, /* aic23_clock_setup, */
150 .codec_clock_on = NULL, /* aic23_clock_on, */
151 .codec_clock_off = NULL, /* aic23_clock_off, */
152 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
153};
154
155static struct platform_device palmtt_mcbsp1_device = {
156 .name = "omap_alsa_mcbsp",
157 .id = 1,
158 .dev = {
159 .platform_data = &alsa_config,
160 },
161};
162
163static struct resource palmtt_kp_resources[] = { 123static struct resource palmtt_kp_resources[] = {
164 [0] = { 124 [0] = {
165 .start = INT_KEYBOARD, 125 .start = INT_KEYBOARD,
@@ -257,7 +217,6 @@ static struct platform_device palmtt_led_device = {
257 217
258static struct platform_device *palmtt_devices[] __initdata = { 218static struct platform_device *palmtt_devices[] __initdata = {
259 &palmtt_flash_device, 219 &palmtt_flash_device,
260 &palmtt_mcbsp1_device,
261 &palmtt_kp_device, 220 &palmtt_kp_device,
262 &palmtt_lcd_device, 221 &palmtt_lcd_device,
263 &palmtt_irda_device, 222 &palmtt_irda_device,
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c
index cc05257eb1cd..baf5efbfe3e8 100644
--- a/arch/arm/mach-omap1/board-palmz71.c
+++ b/arch/arm/mach-omap1/board-palmz71.c
@@ -32,7 +32,6 @@
32#include <asm/mach/map.h> 32#include <asm/mach/map.h>
33#include <asm/mach/flash.h> 33#include <asm/mach/flash.h>
34 34
35#include <mach/mcbsp.h>
36#include <mach/gpio.h> 35#include <mach/gpio.h>
37#include <mach/mux.h> 36#include <mach/mux.h>
38#include <mach/usb.h> 37#include <mach/usb.h>
@@ -179,41 +178,6 @@ static struct platform_device palmz71_spi_device = {
179 .id = -1, 178 .id = -1,
180}; 179};
181 180
182#define DEFAULT_BITPERSAMPLE 16
183
184static struct omap_mcbsp_reg_cfg mcbsp_regs = {
185 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
186 .spcr1 = RINTM(3) | RRST,
187 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
188 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
189 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
190 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
191 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
192 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
193 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
194 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
195 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
196};
197
198static struct omap_alsa_codec_config alsa_config = {
199 .name = "PalmZ71 AIC23",
200 .mcbsp_regs_alsa = &mcbsp_regs,
201 .codec_configure_dev = NULL, /* aic23_configure */
202 .codec_set_samplerate = NULL, /* aic23_set_samplerate */
203 .codec_clock_setup = NULL, /* aic23_clock_setup */
204 .codec_clock_on = NULL, /* aic23_clock_on */
205 .codec_clock_off = NULL, /* aic23_clock_off */
206 .get_default_samplerate = NULL, /* aic23_get_default_samplerate */
207};
208
209static struct platform_device palmz71_mcbsp1_device = {
210 .name = "omap_alsa_mcbsp",
211 .id = 1,
212 .dev = {
213 .platform_data = &alsa_config,
214 },
215};
216
217static struct omap_backlight_config palmz71_backlight_config = { 181static struct omap_backlight_config palmz71_backlight_config = {
218 .default_intensity = 0xa0, 182 .default_intensity = 0xa0,
219}; 183};
@@ -229,7 +193,6 @@ static struct platform_device palmz71_backlight_device = {
229static struct platform_device *devices[] __initdata = { 193static struct platform_device *devices[] __initdata = {
230 &palmz71_rom_device, 194 &palmz71_rom_device,
231 &palmz71_kp_device, 195 &palmz71_kp_device,
232 &palmz71_mcbsp1_device,
233 &palmz71_lcd_device, 196 &palmz71_lcd_device,
234 &palmz71_irda_device, 197 &palmz71_irda_device,
235 &palmz71_spi_device, 198 &palmz71_spi_device,
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c
index 8171fe0ca082..28c76a1e71c0 100644
--- a/arch/arm/mach-omap1/board-sx1.c
+++ b/arch/arm/mach-omap1/board-sx1.c
@@ -34,13 +34,12 @@
34 34
35#include <mach/gpio.h> 35#include <mach/gpio.h>
36#include <mach/mux.h> 36#include <mach/mux.h>
37#include <mach/dma.h>
37#include <mach/irda.h> 38#include <mach/irda.h>
38#include <mach/usb.h> 39#include <mach/usb.h>
39#include <mach/tc.h> 40#include <mach/tc.h>
40#include <mach/board.h> 41#include <mach/board.h>
41#include <mach/common.h> 42#include <mach/common.h>
42#include <mach/mcbsp.h>
43#include <mach/omap-alsa.h>
44#include <mach/keypad.h> 43#include <mach/keypad.h>
45 44
46/* Write to I2C device */ 45/* Write to I2C device */
@@ -254,35 +253,6 @@ static struct platform_device sx1_irda_device = {
254 .resource = sx1_irda_resources, 253 .resource = sx1_irda_resources,
255}; 254};
256 255
257/*----------- McBSP & Sound -------------------------*/
258
259/* Playback interface - McBSP1 */
260static struct omap_mcbsp_reg_cfg mcbsp1_regs = {
261 .spcr2 = XINTM(3), /* SPCR2=30 */
262 .spcr1 = RINTM(3), /* SPCR1=30 */
263 .rcr2 = 0, /* RCR2 =00 */
264 .rcr1 = RFRLEN1(1) | RWDLEN1(OMAP_MCBSP_WORD_16), /* RCR1=140 */
265 .xcr2 = 0, /* XCR2 = 0 */
266 .xcr1 = XFRLEN1(1) | XWDLEN1(OMAP_MCBSP_WORD_16), /* XCR1 = 140 */
267 .srgr1 = FWID(15) | CLKGDV(12), /* SRGR1=0f0c */
268 .srgr2 = FSGM | FPER(31), /* SRGR2=101f */
269 .pcr0 = FSXM | FSRM | CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
270 /* PCR0 =0f0f */
271};
272
273static struct omap_alsa_codec_config sx1_alsa_config = {
274 .name = "SX1 EGold",
275 .mcbsp_regs_alsa = &mcbsp1_regs,
276};
277
278static struct platform_device sx1_mcbsp1_device = {
279 .name = "omap_alsa_mcbsp",
280 .id = 1,
281 .dev = {
282 .platform_data = &sx1_alsa_config,
283 },
284};
285
286/*----------- MTD -------------------------*/ 256/*----------- MTD -------------------------*/
287 257
288static struct mtd_partition sx1_partitions[] = { 258static struct mtd_partition sx1_partitions[] = {
@@ -394,7 +364,6 @@ static struct platform_device *sx1_devices[] __initdata = {
394 &sx1_flash_device, 364 &sx1_flash_device,
395 &sx1_kp_device, 365 &sx1_kp_device,
396 &sx1_lcd_device, 366 &sx1_lcd_device,
397 &sx1_mcbsp1_device,
398 &sx1_irda_device, 367 &sx1_irda_device,
399}; 368};
400/*-----------------------------------------*/ 369/*-----------------------------------------*/
@@ -423,9 +392,9 @@ static void __init omap_sx1_init(void)
423 392
424 /* turn on USB power */ 393 /* turn on USB power */
425 /* sx1_setusbpower(1); cant do it here because i2c is not ready */ 394 /* sx1_setusbpower(1); cant do it here because i2c is not ready */
426 omap_request_gpio(1); /* A_IRDA_OFF */ 395 gpio_request(1, "A_IRDA_OFF");
427 omap_request_gpio(11); /* A_SWITCH */ 396 gpio_request(11, "A_SWITCH");
428 omap_request_gpio(15); /* A_USB_ON */ 397 gpio_request(15, "A_USB_ON");
429 gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */ 398 gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */
430 gpio_direction_output(11, 0); /*A_SWITCH = 0 */ 399 gpio_direction_output(11, 0); /*A_SWITCH = 0 */
431 gpio_direction_output(15, 0); /*A_USB_ON = 0 */ 400 gpio_direction_output(15, 0); /*A_USB_ON = 0 */
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c
index c224f3c64235..a7653542a2b0 100644
--- a/arch/arm/mach-omap1/board-voiceblue.c
+++ b/arch/arm/mach-omap1/board-voiceblue.c
@@ -22,7 +22,6 @@
22#include <linux/reboot.h> 22#include <linux/reboot.h>
23#include <linux/serial_8250.h> 23#include <linux/serial_8250.h>
24#include <linux/serial_reg.h> 24#include <linux/serial_reg.h>
25#include <linux/irq.h>
26 25
27#include <mach/hardware.h> 26#include <mach/hardware.h>
28#include <asm/mach-types.h> 27#include <asm/mach-types.h>
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c
index 77382d8b6b2f..ba5d7c08dc17 100644
--- a/arch/arm/mach-omap1/devices.c
+++ b/arch/arm/mach-omap1/devices.c
@@ -181,7 +181,7 @@ void __init omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
181 } 181 }
182 size = OMAP1_MMC_SIZE; 182 size = OMAP1_MMC_SIZE;
183 183
184 omap_mmc_add(i, base, size, irq, mmc_data[i]); 184 omap_mmc_add("mmci-omap", i, base, size, irq, mmc_data[i]);
185 }; 185 };
186} 186}
187 187
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index 4474da7bc88a..575ba31295cf 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -17,6 +17,7 @@
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19 19
20#include <mach/irqs.h>
20#include <mach/dma.h> 21#include <mach/dma.h>
21#include <mach/irqs.h> 22#include <mach/irqs.h>
22#include <mach/mux.h> 23#include <mach/mux.h>
@@ -27,81 +28,8 @@
27#define DPS_RSTCT2_PER_EN (1 << 0) 28#define DPS_RSTCT2_PER_EN (1 << 0)
28#define DSP_RSTCT2_WD_PER_EN (1 << 1) 29#define DSP_RSTCT2_WD_PER_EN (1 << 1)
29 30
30struct mcbsp_internal_clk {
31 struct clk clk;
32 struct clk **childs;
33 int n_childs;
34};
35
36#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) 31#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX)
37static void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk) 32const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" };
38{
39 const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" };
40 int i;
41
42 mclk->n_childs = ARRAY_SIZE(clk_names);
43 mclk->childs = kzalloc(mclk->n_childs * sizeof(struct clk *),
44 GFP_KERNEL);
45
46 for (i = 0; i < mclk->n_childs; i++) {
47 /* We fake a platform device to get correct device id */
48 struct platform_device pdev;
49
50 pdev.dev.bus = &platform_bus_type;
51 pdev.id = mclk->clk.id;
52 mclk->childs[i] = clk_get(&pdev.dev, clk_names[i]);
53 if (IS_ERR(mclk->childs[i]))
54 printk(KERN_ERR "Could not get clock %s (%d).\n",
55 clk_names[i], mclk->clk.id);
56 }
57}
58
59static int omap_mcbsp_clk_enable(struct clk *clk)
60{
61 struct mcbsp_internal_clk *mclk = container_of(clk,
62 struct mcbsp_internal_clk, clk);
63 int i;
64
65 for (i = 0; i < mclk->n_childs; i++)
66 clk_enable(mclk->childs[i]);
67 return 0;
68}
69
70static void omap_mcbsp_clk_disable(struct clk *clk)
71{
72 struct mcbsp_internal_clk *mclk = container_of(clk,
73 struct mcbsp_internal_clk, clk);
74 int i;
75
76 for (i = 0; i < mclk->n_childs; i++)
77 clk_disable(mclk->childs[i]);
78}
79
80static struct mcbsp_internal_clk omap_mcbsp_clks[] = {
81 {
82 .clk = {
83 .name = "mcbsp_clk",
84 .id = 1,
85 .enable = omap_mcbsp_clk_enable,
86 .disable = omap_mcbsp_clk_disable,
87 },
88 },
89 {
90 .clk = {
91 .name = "mcbsp_clk",
92 .id = 3,
93 .enable = omap_mcbsp_clk_enable,
94 .disable = omap_mcbsp_clk_disable,
95 },
96 },
97};
98
99#define omap_mcbsp_clks_size ARRAY_SIZE(omap_mcbsp_clks)
100#else
101#define omap_mcbsp_clks_size 0
102static struct mcbsp_internal_clk __initdata *omap_mcbsp_clks;
103static inline void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk)
104{ }
105#endif 33#endif
106 34
107static void omap1_mcbsp_request(unsigned int id) 35static void omap1_mcbsp_request(unsigned int id)
@@ -166,8 +94,9 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
166 .rx_irq = INT_McBSP1RX, 94 .rx_irq = INT_McBSP1RX,
167 .tx_irq = INT_McBSP1TX, 95 .tx_irq = INT_McBSP1TX,
168 .ops = &omap1_mcbsp_ops, 96 .ops = &omap1_mcbsp_ops,
169 .clk_name = "mcbsp_clk", 97 .clk_names = clk_names,
170 }, 98 .num_clks = 3,
99 },
171 { 100 {
172 .phys_base = OMAP1510_MCBSP2_BASE, 101 .phys_base = OMAP1510_MCBSP2_BASE,
173 .dma_rx_sync = OMAP_DMA_MCBSP2_RX, 102 .dma_rx_sync = OMAP_DMA_MCBSP2_RX,
@@ -183,7 +112,8 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
183 .rx_irq = INT_McBSP3RX, 112 .rx_irq = INT_McBSP3RX,
184 .tx_irq = INT_McBSP3TX, 113 .tx_irq = INT_McBSP3TX,
185 .ops = &omap1_mcbsp_ops, 114 .ops = &omap1_mcbsp_ops,
186 .clk_name = "mcbsp_clk", 115 .clk_names = clk_names,
116 .num_clks = 3,
187 }, 117 },
188}; 118};
189#define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata) 119#define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata)
@@ -201,7 +131,8 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
201 .rx_irq = INT_McBSP1RX, 131 .rx_irq = INT_McBSP1RX,
202 .tx_irq = INT_McBSP1TX, 132 .tx_irq = INT_McBSP1TX,
203 .ops = &omap1_mcbsp_ops, 133 .ops = &omap1_mcbsp_ops,
204 .clk_name = "mcbsp_clk", 134 .clk_names = clk_names,
135 .num_clks = 3,
205 }, 136 },
206 { 137 {
207 .phys_base = OMAP1610_MCBSP2_BASE, 138 .phys_base = OMAP1610_MCBSP2_BASE,
@@ -218,7 +149,8 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
218 .rx_irq = INT_McBSP3RX, 149 .rx_irq = INT_McBSP3RX,
219 .tx_irq = INT_McBSP3TX, 150 .tx_irq = INT_McBSP3TX,
220 .ops = &omap1_mcbsp_ops, 151 .ops = &omap1_mcbsp_ops,
221 .clk_name = "mcbsp_clk", 152 .clk_names = clk_names,
153 .num_clks = 3,
222 }, 154 },
223}; 155};
224#define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata) 156#define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata)
@@ -229,15 +161,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
229 161
230int __init omap1_mcbsp_init(void) 162int __init omap1_mcbsp_init(void)
231{ 163{
232 int i;
233
234 for (i = 0; i < omap_mcbsp_clks_size; i++) {
235 if (cpu_is_omap15xx() || cpu_is_omap16xx()) {
236 omap_mcbsp_clk_init(&omap_mcbsp_clks[i]);
237 clk_register(&omap_mcbsp_clks[i].clk);
238 }
239 }
240
241 if (cpu_is_omap730()) 164 if (cpu_is_omap730())
242 omap_mcbsp_count = OMAP730_MCBSP_PDATA_SZ; 165 omap_mcbsp_count = OMAP730_MCBSP_PDATA_SZ;
243 if (cpu_is_omap15xx()) 166 if (cpu_is_omap15xx())
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
index bf1e5d32c2a3..0a7b24ba1652 100644
--- a/arch/arm/mach-omap2/board-apollon.c
+++ b/arch/arm/mach-omap2/board-apollon.c
@@ -22,8 +22,6 @@
22#include <linux/mtd/mtd.h> 22#include <linux/mtd/mtd.h>
23#include <linux/mtd/partitions.h> 23#include <linux/mtd/partitions.h>
24#include <linux/mtd/onenand.h> 24#include <linux/mtd/onenand.h>
25#include <linux/irq.h>
26#include <linux/interrupt.h>
27#include <linux/delay.h> 25#include <linux/delay.h>
28#include <linux/leds.h> 26#include <linux/leds.h>
29#include <linux/err.h> 27#include <linux/err.h>
@@ -282,65 +280,16 @@ static void __init apollon_led_init(void)
282{ 280{
283 /* LED0 - AA10 */ 281 /* LED0 - AA10 */
284 omap_cfg_reg(AA10_242X_GPIO13); 282 omap_cfg_reg(AA10_242X_GPIO13);
285 omap_request_gpio(LED0_GPIO13); 283 gpio_request(LED0_GPIO13, "LED0");
286 omap_set_gpio_direction(LED0_GPIO13, 0); 284 gpio_direction_output(LED0_GPIO13, 0);
287 omap_set_gpio_dataout(LED0_GPIO13, 0);
288 /* LED1 - AA6 */ 285 /* LED1 - AA6 */
289 omap_cfg_reg(AA6_242X_GPIO14); 286 omap_cfg_reg(AA6_242X_GPIO14);
290 omap_request_gpio(LED1_GPIO14); 287 gpio_request(LED1_GPIO14, "LED1");
291 omap_set_gpio_direction(LED1_GPIO14, 0); 288 gpio_direction_output(LED1_GPIO14, 0);
292 omap_set_gpio_dataout(LED1_GPIO14, 0);
293 /* LED2 - AA4 */ 289 /* LED2 - AA4 */
294 omap_cfg_reg(AA4_242X_GPIO15); 290 omap_cfg_reg(AA4_242X_GPIO15);
295 omap_request_gpio(LED2_GPIO15); 291 gpio_request(LED2_GPIO15, "LED2");
296 omap_set_gpio_direction(LED2_GPIO15, 0); 292 gpio_direction_output(LED2_GPIO15, 0);
297 omap_set_gpio_dataout(LED2_GPIO15, 0);
298}
299
300static irqreturn_t apollon_sw_interrupt(int irq, void *ignored)
301{
302 static unsigned int led0, led1, led2;
303
304 if (irq == OMAP_GPIO_IRQ(SW_ENTER_GPIO16))
305 omap_set_gpio_dataout(LED0_GPIO13, led0 ^= 1);
306 else if (irq == OMAP_GPIO_IRQ(SW_UP_GPIO17))
307 omap_set_gpio_dataout(LED1_GPIO14, led1 ^= 1);
308 else if (irq == OMAP_GPIO_IRQ(SW_DOWN_GPIO58))
309 omap_set_gpio_dataout(LED2_GPIO15, led2 ^= 1);
310
311 return IRQ_HANDLED;
312}
313
314static void __init apollon_sw_init(void)
315{
316 /* Enter SW - Y11 */
317 omap_cfg_reg(Y11_242X_GPIO16);
318 omap_request_gpio(SW_ENTER_GPIO16);
319 gpio_direction_input(SW_ENTER_GPIO16);
320 /* Up SW - AA12 */
321 omap_cfg_reg(AA12_242X_GPIO17);
322 omap_request_gpio(SW_UP_GPIO17);
323 gpio_direction_input(SW_UP_GPIO17);
324 /* Down SW - AA8 */
325 omap_cfg_reg(AA8_242X_GPIO58);
326 omap_request_gpio(SW_DOWN_GPIO58);
327 gpio_direction_input(SW_DOWN_GPIO58);
328
329 set_irq_type(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), IRQ_TYPE_EDGE_RISING);
330 if (request_irq(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), &apollon_sw_interrupt,
331 IRQF_SHARED, "enter sw",
332 &apollon_sw_interrupt))
333 return;
334 set_irq_type(OMAP_GPIO_IRQ(SW_UP_GPIO17), IRQ_TYPE_EDGE_RISING);
335 if (request_irq(OMAP_GPIO_IRQ(SW_UP_GPIO17), &apollon_sw_interrupt,
336 IRQF_SHARED, "up sw",
337 &apollon_sw_interrupt))
338 return;
339 set_irq_type(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), IRQ_TYPE_EDGE_RISING);
340 if (request_irq(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), &apollon_sw_interrupt,
341 IRQF_SHARED, "down sw",
342 &apollon_sw_interrupt))
343 return;
344} 293}
345 294
346static void __init apollon_usb_init(void) 295static void __init apollon_usb_init(void)
@@ -357,7 +306,6 @@ static void __init omap_apollon_init(void)
357 u32 v; 306 u32 v;
358 307
359 apollon_led_init(); 308 apollon_led_init();
360 apollon_sw_init();
361 apollon_flash_init(); 309 apollon_flash_init();
362 apollon_usb_init(); 310 apollon_usb_init();
363 311
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index aa6972781e4a..6031e179926b 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -81,14 +81,14 @@ static inline void __init ldp_init_smc911x(void)
81 } 81 }
82 82
83 ldp_smc911x_resources[0].start = cs_mem_base + 0x0; 83 ldp_smc911x_resources[0].start = cs_mem_base + 0x0;
84 ldp_smc911x_resources[0].end = cs_mem_base + 0xf; 84 ldp_smc911x_resources[0].end = cs_mem_base + 0xff;
85 udelay(100); 85 udelay(100);
86 86
87 eth_gpio = LDP_SMC911X_GPIO; 87 eth_gpio = LDP_SMC911X_GPIO;
88 88
89 ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio); 89 ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio);
90 90
91 if (omap_request_gpio(eth_gpio) < 0) { 91 if (gpio_request(eth_gpio, "smc911x irq") < 0) {
92 printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n", 92 printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
93 eth_gpio); 93 eth_gpio);
94 return; 94 return;
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 9e5ada01b5fa..38c88fbe658d 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -28,6 +28,8 @@
28#include <linux/mtd/partitions.h> 28#include <linux/mtd/partitions.h>
29#include <linux/mtd/nand.h> 29#include <linux/mtd/nand.h>
30 30
31#include <linux/i2c/twl4030.h>
32
31#include <mach/hardware.h> 33#include <mach/hardware.h>
32#include <asm/mach-types.h> 34#include <asm/mach-types.h>
33#include <asm/mach/arch.h> 35#include <asm/mach/arch.h>
@@ -120,6 +122,9 @@ static int beagle_twl_gpio_setup(struct device *dev,
120 unsigned gpio, unsigned ngpio) 122 unsigned gpio, unsigned ngpio)
121{ 123{
122 /* gpio + 0 is "mmc0_cd" (input/IRQ) */ 124 /* gpio + 0 is "mmc0_cd" (input/IRQ) */
125 omap_cfg_reg(AH8_34XX_GPIO29);
126 mmc[0].gpio_cd = gpio + 0;
127 twl4030_mmc_init(mmc);
123 128
124 /* REVISIT: need ehci-omap hooks for external VBUS 129 /* REVISIT: need ehci-omap hooks for external VBUS
125 * power switch and overcurrent detect 130 * power switch and overcurrent detect
@@ -304,10 +309,6 @@ static void __init omap3_beagle_init(void)
304 omap_board_config_size = ARRAY_SIZE(omap3_beagle_config); 309 omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
305 omap_serial_init(); 310 omap_serial_init();
306 311
307 omap_cfg_reg(AH8_34XX_GPIO29);
308 mmc[0].gpio_cd = gpio + 0;
309 twl4030_mmc_init(mmc);
310
311 omap_cfg_reg(J25_34XX_GPIO170); 312 omap_cfg_reg(J25_34XX_GPIO170);
312 gpio_request(170, "DVI_nPD"); 313 gpio_request(170, "DVI_nPD");
313 /* REVISIT leave DVI powered down until it's needed ... */ 314 /* REVISIT leave DVI powered down until it's needed ... */
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index ad721e0cbf7a..ce4d46a4a838 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -565,7 +565,7 @@ u32 omap2_clksel_to_divisor(struct clk *clk, u32 field_val)
565 * 565 *
566 * Given a struct clk of a rate-selectable clksel clock, and a clock divisor, 566 * Given a struct clk of a rate-selectable clksel clock, and a clock divisor,
567 * find the corresponding register field value. The return register value is 567 * find the corresponding register field value. The return register value is
568 * the value before left-shifting. Returns 0xffffffff on error 568 * the value before left-shifting. Returns ~0 on error
569 */ 569 */
570u32 omap2_divisor_to_clksel(struct clk *clk, u32 div) 570u32 omap2_divisor_to_clksel(struct clk *clk, u32 div)
571{ 571{
@@ -577,7 +577,7 @@ u32 omap2_divisor_to_clksel(struct clk *clk, u32 div)
577 577
578 clks = omap2_get_clksel_by_parent(clk, clk->parent); 578 clks = omap2_get_clksel_by_parent(clk, clk->parent);
579 if (clks == NULL) 579 if (clks == NULL)
580 return 0; 580 return ~0;
581 581
582 for (clkr = clks->rates; clkr->div; clkr++) { 582 for (clkr = clks->rates; clkr->div; clkr++) {
583 if ((clkr->flags & cpu_mask) && (clkr->div == div)) 583 if ((clkr->flags & cpu_mask) && (clkr->div == div))
@@ -588,7 +588,7 @@ u32 omap2_divisor_to_clksel(struct clk *clk, u32 div)
588 printk(KERN_ERR "clock: Could not find divisor %d for " 588 printk(KERN_ERR "clock: Could not find divisor %d for "
589 "clock %s parent %s\n", div, clk->name, 589 "clock %s parent %s\n", div, clk->name,
590 clk->parent->name); 590 clk->parent->name);
591 return 0; 591 return ~0;
592 } 592 }
593 593
594 return clkr->val; 594 return clkr->val;
@@ -708,7 +708,7 @@ static u32 omap2_clksel_get_src_field(void __iomem **src_addr,
708 return 0; 708 return 0;
709 709
710 for (clkr = clks->rates; clkr->div; clkr++) { 710 for (clkr = clks->rates; clkr->div; clkr++) {
711 if (clkr->flags & (cpu_mask | DEFAULT_RATE)) 711 if (clkr->flags & cpu_mask && clkr->flags & DEFAULT_RATE)
712 break; /* Found the default rate for this platform */ 712 break; /* Found the default rate for this platform */
713 } 713 }
714 714
@@ -746,7 +746,7 @@ int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent)
746 return -EINVAL; 746 return -EINVAL;
747 747
748 if (clk->usecount > 0) 748 if (clk->usecount > 0)
749 _omap2_clk_disable(clk); 749 omap2_clk_disable(clk);
750 750
751 /* Set new source value (previous dividers if any in effect) */ 751 /* Set new source value (previous dividers if any in effect) */
752 reg_val = __raw_readl(src_addr) & ~field_mask; 752 reg_val = __raw_readl(src_addr) & ~field_mask;
@@ -759,11 +759,11 @@ int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent)
759 wmb(); 759 wmb();
760 } 760 }
761 761
762 if (clk->usecount > 0)
763 _omap2_clk_enable(clk);
764
765 clk->parent = new_parent; 762 clk->parent = new_parent;
766 763
764 if (clk->usecount > 0)
765 omap2_clk_enable(clk);
766
767 /* CLKSEL clocks follow their parents' rates, divided by a divisor */ 767 /* CLKSEL clocks follow their parents' rates, divided by a divisor */
768 clk->rate = new_parent->rate; 768 clk->rate = new_parent->rate;
769 769
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 9d7216ff6c9f..ce03fa750775 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -421,6 +421,7 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
421 int nr_controllers) 421 int nr_controllers)
422{ 422{
423 int i; 423 int i;
424 char *name;
424 425
425 for (i = 0; i < nr_controllers; i++) { 426 for (i = 0; i < nr_controllers; i++) {
426 unsigned long base, size; 427 unsigned long base, size;
@@ -450,12 +451,14 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
450 continue; 451 continue;
451 } 452 }
452 453
453 if (cpu_is_omap2420()) 454 if (cpu_is_omap2420()) {
454 size = OMAP2420_MMC_SIZE; 455 size = OMAP2420_MMC_SIZE;
455 else 456 name = "mmci-omap";
457 } else {
456 size = HSMMC_SIZE; 458 size = HSMMC_SIZE;
457 459 name = "mmci-omap-hs";
458 omap_mmc_add(i, base, size, irq, mmc_data[i]); 460 }
461 omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
459 }; 462 };
460} 463}
461 464
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index b0f8e7d62798..b52a02fc7cd6 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -172,9 +172,13 @@ void __init omap34xx_check_revision(void)
172 omap_revision = OMAP3430_REV_ES3_0; 172 omap_revision = OMAP3430_REV_ES3_0;
173 rev_name = "ES3.0"; 173 rev_name = "ES3.0";
174 break; 174 break;
175 case 4:
176 omap_revision = OMAP3430_REV_ES3_1;
177 rev_name = "ES3.1";
178 break;
175 default: 179 default:
176 /* Use the latest known revision as default */ 180 /* Use the latest known revision as default */
177 omap_revision = OMAP3430_REV_ES3_0; 181 omap_revision = OMAP3430_REV_ES3_1;
178 rev_name = "Unknown revision\n"; 182 rev_name = "Unknown revision\n";
179 } 183 }
180 } 184 }
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 636e2821af7d..9ba20d985dda 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -134,6 +134,7 @@ static struct irq_chip omap_irq_chip = {
134 .ack = omap_mask_ack_irq, 134 .ack = omap_mask_ack_irq,
135 .mask = omap_mask_irq, 135 .mask = omap_mask_irq,
136 .unmask = omap_unmask_irq, 136 .unmask = omap_unmask_irq,
137 .disable = omap_mask_irq,
137}; 138};
138 139
139static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank) 140static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank)
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c
index acdc709901cd..a9e631fc1134 100644
--- a/arch/arm/mach-omap2/mcbsp.c
+++ b/arch/arm/mach-omap2/mcbsp.c
@@ -17,112 +17,14 @@
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19 19
20#include <mach/irqs.h>
20#include <mach/dma.h> 21#include <mach/dma.h>
21#include <mach/irqs.h> 22#include <mach/irqs.h>
22#include <mach/mux.h> 23#include <mach/mux.h>
23#include <mach/cpu.h> 24#include <mach/cpu.h>
24#include <mach/mcbsp.h> 25#include <mach/mcbsp.h>
25 26
26struct mcbsp_internal_clk { 27const char *clk_names[] = { "mcbsp_ick", "mcbsp_fck" };
27 struct clk clk;
28 struct clk **childs;
29 int n_childs;
30};
31
32#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
33static void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk)
34{
35 const char *clk_names[] = { "mcbsp_ick", "mcbsp_fck" };
36 int i;
37
38 mclk->n_childs = ARRAY_SIZE(clk_names);
39 mclk->childs = kzalloc(mclk->n_childs * sizeof(struct clk *),
40 GFP_KERNEL);
41
42 for (i = 0; i < mclk->n_childs; i++) {
43 /* We fake a platform device to get correct device id */
44 struct platform_device pdev;
45
46 pdev.dev.bus = &platform_bus_type;
47 pdev.id = mclk->clk.id;
48 mclk->childs[i] = clk_get(&pdev.dev, clk_names[i]);
49 if (IS_ERR(mclk->childs[i]))
50 printk(KERN_ERR "Could not get clock %s (%d).\n",
51 clk_names[i], mclk->clk.id);
52 }
53}
54
55static int omap_mcbsp_clk_enable(struct clk *clk)
56{
57 struct mcbsp_internal_clk *mclk = container_of(clk,
58 struct mcbsp_internal_clk, clk);
59 int i;
60
61 for (i = 0; i < mclk->n_childs; i++)
62 clk_enable(mclk->childs[i]);
63 return 0;
64}
65
66static void omap_mcbsp_clk_disable(struct clk *clk)
67{
68 struct mcbsp_internal_clk *mclk = container_of(clk,
69 struct mcbsp_internal_clk, clk);
70 int i;
71
72 for (i = 0; i < mclk->n_childs; i++)
73 clk_disable(mclk->childs[i]);
74}
75
76static struct mcbsp_internal_clk omap_mcbsp_clks[] = {
77 {
78 .clk = {
79 .name = "mcbsp_clk",
80 .id = 1,
81 .enable = omap_mcbsp_clk_enable,
82 .disable = omap_mcbsp_clk_disable,
83 },
84 },
85 {
86 .clk = {
87 .name = "mcbsp_clk",
88 .id = 2,
89 .enable = omap_mcbsp_clk_enable,
90 .disable = omap_mcbsp_clk_disable,
91 },
92 },
93 {
94 .clk = {
95 .name = "mcbsp_clk",
96 .id = 3,
97 .enable = omap_mcbsp_clk_enable,
98 .disable = omap_mcbsp_clk_disable,
99 },
100 },
101 {
102 .clk = {
103 .name = "mcbsp_clk",
104 .id = 4,
105 .enable = omap_mcbsp_clk_enable,
106 .disable = omap_mcbsp_clk_disable,
107 },
108 },
109 {
110 .clk = {
111 .name = "mcbsp_clk",
112 .id = 5,
113 .enable = omap_mcbsp_clk_enable,
114 .disable = omap_mcbsp_clk_disable,
115 },
116 },
117};
118
119#define omap_mcbsp_clks_size ARRAY_SIZE(omap_mcbsp_clks)
120#else
121#define omap_mcbsp_clks_size 0
122static struct mcbsp_internal_clk __initdata *omap_mcbsp_clks;
123static inline void omap_mcbsp_clk_init(struct clk *clk)
124{ }
125#endif
126 28
127static void omap2_mcbsp2_mux_setup(void) 29static void omap2_mcbsp2_mux_setup(void)
128{ 30{
@@ -155,7 +57,8 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
155 .rx_irq = INT_24XX_MCBSP1_IRQ_RX, 57 .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
156 .tx_irq = INT_24XX_MCBSP1_IRQ_TX, 58 .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
157 .ops = &omap2_mcbsp_ops, 59 .ops = &omap2_mcbsp_ops,
158 .clk_name = "mcbsp_clk", 60 .clk_names = clk_names,
61 .num_clks = 2,
159 }, 62 },
160 { 63 {
161 .phys_base = OMAP24XX_MCBSP2_BASE, 64 .phys_base = OMAP24XX_MCBSP2_BASE,
@@ -164,7 +67,8 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
164 .rx_irq = INT_24XX_MCBSP2_IRQ_RX, 67 .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
165 .tx_irq = INT_24XX_MCBSP2_IRQ_TX, 68 .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
166 .ops = &omap2_mcbsp_ops, 69 .ops = &omap2_mcbsp_ops,
167 .clk_name = "mcbsp_clk", 70 .clk_names = clk_names,
71 .num_clks = 2,
168 }, 72 },
169}; 73};
170#define OMAP2420_MCBSP_PDATA_SZ ARRAY_SIZE(omap2420_mcbsp_pdata) 74#define OMAP2420_MCBSP_PDATA_SZ ARRAY_SIZE(omap2420_mcbsp_pdata)
@@ -182,7 +86,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
182 .rx_irq = INT_24XX_MCBSP1_IRQ_RX, 86 .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
183 .tx_irq = INT_24XX_MCBSP1_IRQ_TX, 87 .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
184 .ops = &omap2_mcbsp_ops, 88 .ops = &omap2_mcbsp_ops,
185 .clk_name = "mcbsp_clk", 89 .clk_names = clk_names,
90 .num_clks = 2,
186 }, 91 },
187 { 92 {
188 .phys_base = OMAP24XX_MCBSP2_BASE, 93 .phys_base = OMAP24XX_MCBSP2_BASE,
@@ -191,7 +96,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
191 .rx_irq = INT_24XX_MCBSP2_IRQ_RX, 96 .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
192 .tx_irq = INT_24XX_MCBSP2_IRQ_TX, 97 .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
193 .ops = &omap2_mcbsp_ops, 98 .ops = &omap2_mcbsp_ops,
194 .clk_name = "mcbsp_clk", 99 .clk_names = clk_names,
100 .num_clks = 2,
195 }, 101 },
196 { 102 {
197 .phys_base = OMAP2430_MCBSP3_BASE, 103 .phys_base = OMAP2430_MCBSP3_BASE,
@@ -200,7 +106,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
200 .rx_irq = INT_24XX_MCBSP3_IRQ_RX, 106 .rx_irq = INT_24XX_MCBSP3_IRQ_RX,
201 .tx_irq = INT_24XX_MCBSP3_IRQ_TX, 107 .tx_irq = INT_24XX_MCBSP3_IRQ_TX,
202 .ops = &omap2_mcbsp_ops, 108 .ops = &omap2_mcbsp_ops,
203 .clk_name = "mcbsp_clk", 109 .clk_names = clk_names,
110 .num_clks = 2,
204 }, 111 },
205 { 112 {
206 .phys_base = OMAP2430_MCBSP4_BASE, 113 .phys_base = OMAP2430_MCBSP4_BASE,
@@ -209,7 +116,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
209 .rx_irq = INT_24XX_MCBSP4_IRQ_RX, 116 .rx_irq = INT_24XX_MCBSP4_IRQ_RX,
210 .tx_irq = INT_24XX_MCBSP4_IRQ_TX, 117 .tx_irq = INT_24XX_MCBSP4_IRQ_TX,
211 .ops = &omap2_mcbsp_ops, 118 .ops = &omap2_mcbsp_ops,
212 .clk_name = "mcbsp_clk", 119 .clk_names = clk_names,
120 .num_clks = 2,
213 }, 121 },
214 { 122 {
215 .phys_base = OMAP2430_MCBSP5_BASE, 123 .phys_base = OMAP2430_MCBSP5_BASE,
@@ -218,7 +126,8 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
218 .rx_irq = INT_24XX_MCBSP5_IRQ_RX, 126 .rx_irq = INT_24XX_MCBSP5_IRQ_RX,
219 .tx_irq = INT_24XX_MCBSP5_IRQ_TX, 127 .tx_irq = INT_24XX_MCBSP5_IRQ_TX,
220 .ops = &omap2_mcbsp_ops, 128 .ops = &omap2_mcbsp_ops,
221 .clk_name = "mcbsp_clk", 129 .clk_names = clk_names,
130 .num_clks = 2,
222 }, 131 },
223}; 132};
224#define OMAP2430_MCBSP_PDATA_SZ ARRAY_SIZE(omap2430_mcbsp_pdata) 133#define OMAP2430_MCBSP_PDATA_SZ ARRAY_SIZE(omap2430_mcbsp_pdata)
@@ -236,7 +145,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
236 .rx_irq = INT_24XX_MCBSP1_IRQ_RX, 145 .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
237 .tx_irq = INT_24XX_MCBSP1_IRQ_TX, 146 .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
238 .ops = &omap2_mcbsp_ops, 147 .ops = &omap2_mcbsp_ops,
239 .clk_name = "mcbsp_clk", 148 .clk_names = clk_names,
149 .num_clks = 2,
240 }, 150 },
241 { 151 {
242 .phys_base = OMAP34XX_MCBSP2_BASE, 152 .phys_base = OMAP34XX_MCBSP2_BASE,
@@ -245,7 +155,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
245 .rx_irq = INT_24XX_MCBSP2_IRQ_RX, 155 .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
246 .tx_irq = INT_24XX_MCBSP2_IRQ_TX, 156 .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
247 .ops = &omap2_mcbsp_ops, 157 .ops = &omap2_mcbsp_ops,
248 .clk_name = "mcbsp_clk", 158 .clk_names = clk_names,
159 .num_clks = 2,
249 }, 160 },
250 { 161 {
251 .phys_base = OMAP34XX_MCBSP3_BASE, 162 .phys_base = OMAP34XX_MCBSP3_BASE,
@@ -254,7 +165,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
254 .rx_irq = INT_24XX_MCBSP3_IRQ_RX, 165 .rx_irq = INT_24XX_MCBSP3_IRQ_RX,
255 .tx_irq = INT_24XX_MCBSP3_IRQ_TX, 166 .tx_irq = INT_24XX_MCBSP3_IRQ_TX,
256 .ops = &omap2_mcbsp_ops, 167 .ops = &omap2_mcbsp_ops,
257 .clk_name = "mcbsp_clk", 168 .clk_names = clk_names,
169 .num_clks = 2,
258 }, 170 },
259 { 171 {
260 .phys_base = OMAP34XX_MCBSP4_BASE, 172 .phys_base = OMAP34XX_MCBSP4_BASE,
@@ -263,7 +175,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
263 .rx_irq = INT_24XX_MCBSP4_IRQ_RX, 175 .rx_irq = INT_24XX_MCBSP4_IRQ_RX,
264 .tx_irq = INT_24XX_MCBSP4_IRQ_TX, 176 .tx_irq = INT_24XX_MCBSP4_IRQ_TX,
265 .ops = &omap2_mcbsp_ops, 177 .ops = &omap2_mcbsp_ops,
266 .clk_name = "mcbsp_clk", 178 .clk_names = clk_names,
179 .num_clks = 2,
267 }, 180 },
268 { 181 {
269 .phys_base = OMAP34XX_MCBSP5_BASE, 182 .phys_base = OMAP34XX_MCBSP5_BASE,
@@ -272,7 +185,8 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
272 .rx_irq = INT_24XX_MCBSP5_IRQ_RX, 185 .rx_irq = INT_24XX_MCBSP5_IRQ_RX,
273 .tx_irq = INT_24XX_MCBSP5_IRQ_TX, 186 .tx_irq = INT_24XX_MCBSP5_IRQ_TX,
274 .ops = &omap2_mcbsp_ops, 187 .ops = &omap2_mcbsp_ops,
275 .clk_name = "mcbsp_clk", 188 .clk_names = clk_names,
189 .num_clks = 2,
276 }, 190 },
277}; 191};
278#define OMAP34XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap34xx_mcbsp_pdata) 192#define OMAP34XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap34xx_mcbsp_pdata)
@@ -283,14 +197,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
283 197
284static int __init omap2_mcbsp_init(void) 198static int __init omap2_mcbsp_init(void)
285{ 199{
286 int i;
287
288 for (i = 0; i < omap_mcbsp_clks_size; i++) {
289 /* Once we call clk_get inside init, we do not register it */
290 omap_mcbsp_clk_init(&omap_mcbsp_clks[i]);
291 clk_register(&omap_mcbsp_clks[i].clk);
292 }
293
294 if (cpu_is_omap2420()) 200 if (cpu_is_omap2420())
295 omap_mcbsp_count = OMAP2420_MCBSP_PDATA_SZ; 201 omap_mcbsp_count = OMAP2420_MCBSP_PDATA_SZ;
296 if (cpu_is_omap2430()) 202 if (cpu_is_omap2430())
diff --git a/arch/arm/mach-omap2/sleep24xx.S b/arch/arm/mach-omap2/sleep24xx.S
index 43336b93b21c..bf9e96105e11 100644
--- a/arch/arm/mach-omap2/sleep24xx.S
+++ b/arch/arm/mach-omap2/sleep24xx.S
@@ -93,9 +93,8 @@ ENTRY(omap24xx_cpu_suspend)
93 orr r4, r4, #0x40 @ enable self refresh on idle req 93 orr r4, r4, #0x40 @ enable self refresh on idle req
94 mov r5, #0x2000 @ set delay (DPLL relock + DLL relock) 94 mov r5, #0x2000 @ set delay (DPLL relock + DLL relock)
95 str r4, [r2] @ make it so 95 str r4, [r2] @ make it so
96 mov r2, #0
97 nop 96 nop
98 mcr p15, 0, r2, c7, c0, 4 @ wait for interrupt 97 mcr p15, 0, r3, c7, c0, 4 @ wait for interrupt
99 nop 98 nop
100loop: 99loop:
101 subs r5, r5, #0x1 @ awake, wait just a bit 100 subs r5, r5, #0x1 @ awake, wait just a bit
diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c
index ae6036300f60..9fc13a2cc3f4 100644
--- a/arch/arm/mach-omap2/timer-gp.c
+++ b/arch/arm/mach-omap2/timer-gp.c
@@ -118,7 +118,8 @@ static void __init omap2_gp_clockevent_init(void)
118 clockevent_gpt.max_delta_ns = 118 clockevent_gpt.max_delta_ns =
119 clockevent_delta2ns(0xffffffff, &clockevent_gpt); 119 clockevent_delta2ns(0xffffffff, &clockevent_gpt);
120 clockevent_gpt.min_delta_ns = 120 clockevent_gpt.min_delta_ns =
121 clockevent_delta2ns(1, &clockevent_gpt); 121 clockevent_delta2ns(3, &clockevent_gpt);
122 /* Timer internal resynch latency. */
122 123
123 clockevent_gpt.cpumask = cpumask_of(0); 124 clockevent_gpt.cpumask = cpumask_of(0);
124 clockevents_register_device(&clockevent_gpt); 125 clockevents_register_device(&clockevent_gpt);
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c
index 0caae43301e5..e03f7b45cb0d 100644
--- a/arch/arm/mach-orion5x/irq.c
+++ b/arch/arm/mach-orion5x/irq.c
@@ -44,7 +44,7 @@ void __init orion5x_init_irq(void)
44 * User can use set_type() if he wants to use edge types handlers. 44 * User can use set_type() if he wants to use edge types handlers.
45 */ 45 */
46 for (i = IRQ_ORION5X_GPIO_START; i < NR_IRQS; i++) { 46 for (i = IRQ_ORION5X_GPIO_START; i < NR_IRQS; i++) {
47 set_irq_chip(i, &orion_gpio_irq_level_chip); 47 set_irq_chip(i, &orion_gpio_irq_chip);
48 set_irq_handler(i, handle_level_irq); 48 set_irq_handler(i, handle_level_irq);
49 irq_desc[i].status |= IRQ_LEVEL; 49 irq_desc[i].status |= IRQ_LEVEL;
50 set_irq_flags(i, IRQF_VALID); 50 set_irq_flags(i, IRQF_VALID);
diff --git a/arch/arm/mach-pxa/dma.c b/arch/arm/mach-pxa/dma.c
index b1514fb20d3a..7de17fc5d54b 100644
--- a/arch/arm/mach-pxa/dma.c
+++ b/arch/arm/mach-pxa/dma.c
@@ -121,20 +121,22 @@ int __init pxa_init_dma(int num_ch)
121 if (dma_channels == NULL) 121 if (dma_channels == NULL)
122 return -ENOMEM; 122 return -ENOMEM;
123 123
124 ret = request_irq(IRQ_DMA, dma_irq_handler, IRQF_DISABLED, "DMA", NULL);
125 if (ret) {
126 printk (KERN_CRIT "Wow! Can't register IRQ for DMA\n");
127 kfree(dma_channels);
128 return ret;
129 }
130
131 /* dma channel priorities on pxa2xx processors: 124 /* dma channel priorities on pxa2xx processors:
132 * ch 0 - 3, 16 - 19 <--> (0) DMA_PRIO_HIGH 125 * ch 0 - 3, 16 - 19 <--> (0) DMA_PRIO_HIGH
133 * ch 4 - 7, 20 - 23 <--> (1) DMA_PRIO_MEDIUM 126 * ch 4 - 7, 20 - 23 <--> (1) DMA_PRIO_MEDIUM
134 * ch 8 - 15, 24 - 31 <--> (2) DMA_PRIO_LOW 127 * ch 8 - 15, 24 - 31 <--> (2) DMA_PRIO_LOW
135 */ 128 */
136 for (i = 0; i < num_ch; i++) 129 for (i = 0; i < num_ch; i++) {
130 DCSR(i) = 0;
137 dma_channels[i].prio = min((i & 0xf) >> 2, DMA_PRIO_LOW); 131 dma_channels[i].prio = min((i & 0xf) >> 2, DMA_PRIO_LOW);
132 }
133
134 ret = request_irq(IRQ_DMA, dma_irq_handler, IRQF_DISABLED, "DMA", NULL);
135 if (ret) {
136 printk (KERN_CRIT "Wow! Can't register IRQ for DMA\n");
137 kfree(dma_channels);
138 return ret;
139 }
138 140
139 num_dma_channels = num_ch; 141 num_dma_channels = num_ch;
140 return 0; 142 return 0;
diff --git a/arch/arm/mach-pxa/include/mach/regs-ac97.h b/arch/arm/mach-pxa/include/mach/regs-ac97.h
index e41b9d202b8c..b8d14bd9ae59 100644
--- a/arch/arm/mach-pxa/include/mach/regs-ac97.h
+++ b/arch/arm/mach-pxa/include/mach/regs-ac97.h
@@ -1,6 +1,8 @@
1#ifndef __ASM_ARCH_REGS_AC97_H 1#ifndef __ASM_ARCH_REGS_AC97_H
2#define __ASM_ARCH_REGS_AC97_H 2#define __ASM_ARCH_REGS_AC97_H
3 3
4#include <mach/hardware.h>
5
4/* 6/*
5 * AC97 Controller registers 7 * AC97 Controller registers
6 */ 8 */
diff --git a/arch/arm/mach-pxa/include/mach/regs-ssp.h b/arch/arm/mach-pxa/include/mach/regs-ssp.h
index 3c04cde2cf1f..cf31986f6f05 100644
--- a/arch/arm/mach-pxa/include/mach/regs-ssp.h
+++ b/arch/arm/mach-pxa/include/mach/regs-ssp.h
@@ -41,6 +41,9 @@
41#elif defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) 41#elif defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
42#define SSCR0_SCR (0x000fff00) /* Serial Clock Rate (mask) */ 42#define SSCR0_SCR (0x000fff00) /* Serial Clock Rate (mask) */
43#define SSCR0_SerClkDiv(x) (((x) - 1) << 8) /* Divisor [1..4096] */ 43#define SSCR0_SerClkDiv(x) (((x) - 1) << 8) /* Divisor [1..4096] */
44#endif
45
46#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
44#define SSCR0_EDSS (1 << 20) /* Extended data size select */ 47#define SSCR0_EDSS (1 << 20) /* Extended data size select */
45#define SSCR0_NCS (1 << 21) /* Network clock select */ 48#define SSCR0_NCS (1 << 21) /* Network clock select */
46#define SSCR0_RIM (1 << 22) /* Receive FIFO overrrun interrupt mask */ 49#define SSCR0_RIM (1 << 22) /* Receive FIFO overrrun interrupt mask */
diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
index f735e58e6669..83fb609b6eb7 100644
--- a/arch/arm/mach-pxa/pxa300.c
+++ b/arch/arm/mach-pxa/pxa300.c
@@ -88,13 +88,13 @@ static struct pxa3xx_mfp_addr_map pxa310_mfp_addr_map[] __initdata = {
88static DEFINE_PXA3_CKEN(common_nand, NAND, 156000000, 0); 88static DEFINE_PXA3_CKEN(common_nand, NAND, 156000000, 0);
89 89
90static struct clk_lookup common_clkregs[] = { 90static struct clk_lookup common_clkregs[] = {
91 INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", "NANDCLK"), 91 INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", NULL),
92}; 92};
93 93
94static DEFINE_PXA3_CKEN(pxa310_mmc3, MMC3, 19500000, 0); 94static DEFINE_PXA3_CKEN(pxa310_mmc3, MMC3, 19500000, 0);
95 95
96static struct clk_lookup pxa310_clkregs[] = { 96static struct clk_lookup pxa310_clkregs[] = {
97 INIT_CLKREG(&clk_pxa310_mmc3, "pxa2xx-mci.2", "MMCCLK"), 97 INIT_CLKREG(&clk_pxa310_mmc3, "pxa2xx-mci.2", NULL),
98}; 98};
99 99
100static int __init pxa300_init(void) 100static int __init pxa300_init(void)
diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c
index effe408c186f..36f066196fa2 100644
--- a/arch/arm/mach-pxa/pxa320.c
+++ b/arch/arm/mach-pxa/pxa320.c
@@ -83,7 +83,7 @@ static struct pxa3xx_mfp_addr_map pxa320_mfp_addr_map[] __initdata = {
83static DEFINE_PXA3_CKEN(pxa320_nand, NAND, 104000000, 0); 83static DEFINE_PXA3_CKEN(pxa320_nand, NAND, 104000000, 0);
84 84
85static struct clk_lookup pxa320_clkregs[] = { 85static struct clk_lookup pxa320_clkregs[] = {
86 INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", "NANDCLK"), 86 INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", NULL),
87}; 87};
88 88
89static int __init pxa320_init(void) 89static int __init pxa320_init(void)
diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c
index e88d417736af..c7fc01e9d1f6 100644
--- a/arch/arm/mach-rpc/riscpc.c
+++ b/arch/arm/mach-rpc/riscpc.c
@@ -19,6 +19,7 @@
19#include <linux/serial_8250.h> 19#include <linux/serial_8250.h>
20#include <linux/ata_platform.h> 20#include <linux/ata_platform.h>
21#include <linux/io.h> 21#include <linux/io.h>
22#include <linux/i2c.h>
22 23
23#include <asm/elf.h> 24#include <asm/elf.h>
24#include <asm/mach-types.h> 25#include <asm/mach-types.h>
@@ -201,8 +202,13 @@ static struct platform_device *devs[] __initdata = {
201 &pata_device, 202 &pata_device,
202}; 203};
203 204
205static struct i2c_board_info i2c_rtc = {
206 I2C_BOARD_INFO("pcf8583", 0x50)
207};
208
204static int __init rpc_init(void) 209static int __init rpc_init(void)
205{ 210{
211 i2c_register_board_info(0, &i2c_rtc, 1);
206 return platform_add_devices(devs, ARRAY_SIZE(devs)); 212 return platform_add_devices(devs, ARRAY_SIZE(devs));
207} 213}
208 214
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index c1fbd5b5f9c4..23cfdd593954 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -289,7 +289,7 @@ static struct platform_device sa11x0pcmcia_device = {
289}; 289};
290 290
291static struct platform_device sa11x0mtd_device = { 291static struct platform_device sa11x0mtd_device = {
292 .name = "flash", 292 .name = "sa1100-mtd",
293 .id = -1, 293 .id = -1,
294}; 294};
295 295
diff --git a/arch/arm/mm/abort-ev6.S b/arch/arm/mm/abort-ev6.S
index 8a7f65ba14b7..94077fbd96b7 100644
--- a/arch/arm/mm/abort-ev6.S
+++ b/arch/arm/mm/abort-ev6.S
@@ -23,7 +23,8 @@ ENTRY(v6_early_abort)
23#ifdef CONFIG_CPU_32v6K 23#ifdef CONFIG_CPU_32v6K
24 clrex 24 clrex
25#else 25#else
26 strex r0, r1, [sp] @ Clear the exclusive monitor 26 sub r1, sp, #4 @ Get unused stack location
27 strex r0, r1, [r1] @ Clear the exclusive monitor
27#endif 28#endif
28 mrc p15, 0, r1, c5, c0, 0 @ get FSR 29 mrc p15, 0, r1, c5, c0, 0 @ get FSR
29 mrc p15, 0, r0, c6, c0, 0 @ get FAR 30 mrc p15, 0, r0, c6, c0, 0 @ get FAR
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c
index bdb5fd983b15..1601698b9800 100644
--- a/arch/arm/mm/copypage-v4mc.c
+++ b/arch/arm/mm/copypage-v4mc.c
@@ -68,7 +68,7 @@ mc_copy_user_page(void *from, void *to)
68 : "r" (from), "r" (to), "I" (PAGE_SIZE / 64)); 68 : "r" (from), "r" (to), "I" (PAGE_SIZE / 64));
69} 69}
70 70
71void v4_mc_copy_user_highpage(struct page *from, struct page *to, 71void v4_mc_copy_user_highpage(struct page *to, struct page *from,
72 unsigned long vaddr) 72 unsigned long vaddr)
73{ 73{
74 void *kto = kmap_atomic(to, KM_USER1); 74 void *kto = kmap_atomic(to, KM_USER1);
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
index 81d0b8772de3..bc0099d5ae85 100644
--- a/arch/arm/mm/fault-armv.c
+++ b/arch/arm/mm/fault-armv.c
@@ -66,7 +66,10 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address)
66 * fault (ie, is old), we can safely ignore any issues. 66 * fault (ie, is old), we can safely ignore any issues.
67 */ 67 */
68 if (ret && (pte_val(entry) & L_PTE_MT_MASK) != shared_pte_mask) { 68 if (ret && (pte_val(entry) & L_PTE_MT_MASK) != shared_pte_mask) {
69 flush_cache_page(vma, address, pte_pfn(entry)); 69 unsigned long pfn = pte_pfn(entry);
70 flush_cache_page(vma, address, pfn);
71 outer_flush_range((pfn << PAGE_SHIFT),
72 (pfn << PAGE_SHIFT) + PAGE_SIZE);
70 pte_val(entry) &= ~L_PTE_MT_MASK; 73 pte_val(entry) &= ~L_PTE_MT_MASK;
71 pte_val(entry) |= shared_pte_mask; 74 pte_val(entry) |= shared_pte_mask;
72 set_pte_at(vma->vm_mm, address, pte, entry); 75 set_pte_at(vma->vm_mm, address, pte, entry);
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index 18373f73f2fc..9f88dd3be601 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -138,7 +138,7 @@ void __check_kvm_seq(struct mm_struct *mm)
138 */ 138 */
139static void unmap_area_sections(unsigned long virt, unsigned long size) 139static void unmap_area_sections(unsigned long virt, unsigned long size)
140{ 140{
141 unsigned long addr = virt, end = virt + (size & ~SZ_1M); 141 unsigned long addr = virt, end = virt + (size & ~(SZ_1M - 1));
142 pgd_t *pgd; 142 pgd_t *pgd;
143 143
144 flush_cache_vunmap(addr, end); 144 flush_cache_vunmap(addr, end);
@@ -337,10 +337,7 @@ void __iounmap(volatile void __iomem *io_addr)
337 void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr); 337 void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr);
338#ifndef CONFIG_SMP 338#ifndef CONFIG_SMP
339 struct vm_struct **p, *tmp; 339 struct vm_struct **p, *tmp;
340#endif
341 unsigned int section_mapping = 0;
342 340
343#ifndef CONFIG_SMP
344 /* 341 /*
345 * If this is a section based mapping we need to handle it 342 * If this is a section based mapping we need to handle it
346 * specially as the VM subsystem does not know how to handle 343 * specially as the VM subsystem does not know how to handle
@@ -352,11 +349,8 @@ void __iounmap(volatile void __iomem *io_addr)
352 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { 349 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) {
353 if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { 350 if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) {
354 if (tmp->flags & VM_ARM_SECTION_MAPPING) { 351 if (tmp->flags & VM_ARM_SECTION_MAPPING) {
355 *p = tmp->next;
356 unmap_area_sections((unsigned long)tmp->addr, 352 unmap_area_sections((unsigned long)tmp->addr,
357 tmp->size); 353 tmp->size);
358 kfree(tmp);
359 section_mapping = 1;
360 } 354 }
361 break; 355 break;
362 } 356 }
@@ -364,7 +358,6 @@ void __iounmap(volatile void __iomem *io_addr)
364 write_unlock(&vmlist_lock); 358 write_unlock(&vmlist_lock);
365#endif 359#endif
366 360
367 if (!section_mapping) 361 vunmap(addr);
368 vunmap(addr);
369} 362}
370EXPORT_SYMBOL(__iounmap); 363EXPORT_SYMBOL(__iounmap);
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 9b36c5cb5e9f..d4d082c5c2d4 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -693,7 +693,8 @@ static void __init sanity_check_meminfo(void)
693 * Check whether this memory bank would entirely overlap 693 * Check whether this memory bank would entirely overlap
694 * the vmalloc area. 694 * the vmalloc area.
695 */ 695 */
696 if (__va(bank->start) >= VMALLOC_MIN) { 696 if (__va(bank->start) >= VMALLOC_MIN ||
697 __va(bank->start) < PAGE_OFFSET) {
697 printk(KERN_NOTICE "Ignoring RAM at %.8lx-%.8lx " 698 printk(KERN_NOTICE "Ignoring RAM at %.8lx-%.8lx "
698 "(vmalloc region overlap).\n", 699 "(vmalloc region overlap).\n",
699 bank->start, bank->start + bank->size - 1); 700 bank->start, bank->start + bank->size - 1);
diff --git a/arch/arm/plat-mxc/include/mach/ipu.h b/arch/arm/plat-mxc/include/mach/ipu.h
new file mode 100644
index 000000000000..a9221f1cc1a0
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/ipu.h
@@ -0,0 +1,181 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * Copyright (C) 2005-2007 Freescale Semiconductor, Inc.
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
12#ifndef _IPU_H_
13#define _IPU_H_
14
15#include <linux/types.h>
16#include <linux/dmaengine.h>
17
18/* IPU DMA Controller channel definitions. */
19enum ipu_channel {
20 IDMAC_IC_0 = 0, /* IC (encoding task) to memory */
21 IDMAC_IC_1 = 1, /* IC (viewfinder task) to memory */
22 IDMAC_ADC_0 = 1,
23 IDMAC_IC_2 = 2,
24 IDMAC_ADC_1 = 2,
25 IDMAC_IC_3 = 3,
26 IDMAC_IC_4 = 4,
27 IDMAC_IC_5 = 5,
28 IDMAC_IC_6 = 6,
29 IDMAC_IC_7 = 7, /* IC (sensor data) to memory */
30 IDMAC_IC_8 = 8,
31 IDMAC_IC_9 = 9,
32 IDMAC_IC_10 = 10,
33 IDMAC_IC_11 = 11,
34 IDMAC_IC_12 = 12,
35 IDMAC_IC_13 = 13,
36 IDMAC_SDC_0 = 14, /* Background synchronous display data */
37 IDMAC_SDC_1 = 15, /* Foreground data (overlay) */
38 IDMAC_SDC_2 = 16,
39 IDMAC_SDC_3 = 17,
40 IDMAC_ADC_2 = 18,
41 IDMAC_ADC_3 = 19,
42 IDMAC_ADC_4 = 20,
43 IDMAC_ADC_5 = 21,
44 IDMAC_ADC_6 = 22,
45 IDMAC_ADC_7 = 23,
46 IDMAC_PF_0 = 24,
47 IDMAC_PF_1 = 25,
48 IDMAC_PF_2 = 26,
49 IDMAC_PF_3 = 27,
50 IDMAC_PF_4 = 28,
51 IDMAC_PF_5 = 29,
52 IDMAC_PF_6 = 30,
53 IDMAC_PF_7 = 31,
54};
55
56/* Order significant! */
57enum ipu_channel_status {
58 IPU_CHANNEL_FREE,
59 IPU_CHANNEL_INITIALIZED,
60 IPU_CHANNEL_READY,
61 IPU_CHANNEL_ENABLED,
62};
63
64#define IPU_CHANNELS_NUM 32
65
66enum pixel_fmt {
67 /* 1 byte */
68 IPU_PIX_FMT_GENERIC,
69 IPU_PIX_FMT_RGB332,
70 IPU_PIX_FMT_YUV420P,
71 IPU_PIX_FMT_YUV422P,
72 IPU_PIX_FMT_YUV420P2,
73 IPU_PIX_FMT_YVU422P,
74 /* 2 bytes */
75 IPU_PIX_FMT_RGB565,
76 IPU_PIX_FMT_RGB666,
77 IPU_PIX_FMT_BGR666,
78 IPU_PIX_FMT_YUYV,
79 IPU_PIX_FMT_UYVY,
80 /* 3 bytes */
81 IPU_PIX_FMT_RGB24,
82 IPU_PIX_FMT_BGR24,
83 /* 4 bytes */
84 IPU_PIX_FMT_GENERIC_32,
85 IPU_PIX_FMT_RGB32,
86 IPU_PIX_FMT_BGR32,
87 IPU_PIX_FMT_ABGR32,
88 IPU_PIX_FMT_BGRA32,
89 IPU_PIX_FMT_RGBA32,
90};
91
92enum ipu_color_space {
93 IPU_COLORSPACE_RGB,
94 IPU_COLORSPACE_YCBCR,
95 IPU_COLORSPACE_YUV
96};
97
98/*
99 * Enumeration of IPU rotation modes
100 */
101enum ipu_rotate_mode {
102 /* Note the enum values correspond to BAM value */
103 IPU_ROTATE_NONE = 0,
104 IPU_ROTATE_VERT_FLIP = 1,
105 IPU_ROTATE_HORIZ_FLIP = 2,
106 IPU_ROTATE_180 = 3,
107 IPU_ROTATE_90_RIGHT = 4,
108 IPU_ROTATE_90_RIGHT_VFLIP = 5,
109 IPU_ROTATE_90_RIGHT_HFLIP = 6,
110 IPU_ROTATE_90_LEFT = 7,
111};
112
113struct ipu_platform_data {
114 unsigned int irq_base;
115};
116
117/*
118 * Enumeration of DI ports for ADC.
119 */
120enum display_port {
121 DISP0,
122 DISP1,
123 DISP2,
124 DISP3
125};
126
127struct idmac_video_param {
128 unsigned short in_width;
129 unsigned short in_height;
130 uint32_t in_pixel_fmt;
131 unsigned short out_width;
132 unsigned short out_height;
133 uint32_t out_pixel_fmt;
134 unsigned short out_stride;
135 bool graphics_combine_en;
136 bool global_alpha_en;
137 bool key_color_en;
138 enum display_port disp;
139 unsigned short out_left;
140 unsigned short out_top;
141};
142
143/*
144 * Union of initialization parameters for a logical channel. So far only video
145 * parameters are used.
146 */
147union ipu_channel_param {
148 struct idmac_video_param video;
149};
150
151struct idmac_tx_desc {
152 struct dma_async_tx_descriptor txd;
153 struct scatterlist *sg; /* scatterlist for this */
154 unsigned int sg_len; /* tx-descriptor. */
155 struct list_head list;
156};
157
158struct idmac_channel {
159 struct dma_chan dma_chan;
160 dma_cookie_t completed; /* last completed cookie */
161 union ipu_channel_param params;
162 enum ipu_channel link; /* input channel, linked to the output */
163 enum ipu_channel_status status;
164 void *client; /* Only one client per channel */
165 unsigned int n_tx_desc;
166 struct idmac_tx_desc *desc; /* allocated tx-descriptors */
167 struct scatterlist *sg[2]; /* scatterlist elements in buffer-0 and -1 */
168 struct list_head free_list; /* free tx-descriptors */
169 struct list_head queue; /* queued tx-descriptors */
170 spinlock_t lock; /* protects sg[0,1], queue */
171 struct mutex chan_mutex; /* protects status, cookie, free_list */
172 bool sec_chan_en;
173 int active_buffer;
174 unsigned int eof_irq;
175 char eof_name[16]; /* EOF IRQ name for request_irq() */
176};
177
178#define to_tx_desc(tx) container_of(tx, struct idmac_tx_desc, txd)
179#define to_idmac_chan(c) container_of(c, struct idmac_channel, dma_chan)
180
181#endif
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h
index e06d3cb0ee11..c02b8fc2d821 100644
--- a/arch/arm/plat-mxc/include/mach/irqs.h
+++ b/arch/arm/plat-mxc/include/mach/irqs.h
@@ -35,7 +35,15 @@
35#define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS) 35#define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS)
36#define MXC_BOARD_IRQS 16 36#define MXC_BOARD_IRQS 16
37 37
38#define NR_IRQS (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS) 38#define MXC_IPU_IRQ_START (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS)
39
40#ifdef CONFIG_MX3_IPU_IRQS
41#define MX3_IPU_IRQS CONFIG_MX3_IPU_IRQS
42#else
43#define MX3_IPU_IRQS 0
44#endif
45
46#define NR_IRQS (MXC_IPU_IRQ_START + MX3_IPU_IRQS)
39 47
40extern void imx_irq_set_priority(unsigned char irq, unsigned char prio); 48extern void imx_irq_set_priority(unsigned char irq, unsigned char prio);
41 49
diff --git a/arch/arm/plat-mxc/include/mach/mmc.h b/arch/arm/plat-mxc/include/mach/mmc.h
new file mode 100644
index 000000000000..de2128dada5c
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/mmc.h
@@ -0,0 +1,36 @@
1#ifndef ASMARM_ARCH_MMC_H
2#define ASMARM_ARCH_MMC_H
3
4#include <linux/mmc/host.h>
5
6struct device;
7
8/* board specific SDHC data, optional.
9 * If not present, a writable card with 3,3V is assumed.
10 */
11struct imxmmc_platform_data {
12 /* Return values for the get_ro callback should be:
13 * 0 for a read/write card
14 * 1 for a read-only card
15 * -ENOSYS when not supported (equal to NULL callback)
16 * or a negative errno value when something bad happened
17 */
18 int (*get_ro)(struct device *);
19
20 /* board specific hook to (de)initialize the SD slot.
21 * The board code can call 'handler' on a card detection
22 * change giving data as argument.
23 */
24 int (*init)(struct device *dev, irq_handler_t handler, void *data);
25 void (*exit)(struct device *dev, void *data);
26
27 /* available voltages. If not given, assume
28 * MMC_VDD_32_33 | MMC_VDD_33_34
29 */
30 unsigned int ocr_avail;
31
32 /* adjust slot voltage */
33 void (*setpower)(struct device *, unsigned int vdd);
34};
35
36#endif
diff --git a/arch/arm/plat-mxc/include/mach/mx3fb.h b/arch/arm/plat-mxc/include/mach/mx3fb.h
new file mode 100644
index 000000000000..e391a76ca87d
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/mx3fb.h
@@ -0,0 +1,38 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9
10#ifndef __ASM_ARCH_MX3FB_H__
11#define __ASM_ARCH_MX3FB_H__
12
13#include <linux/device.h>
14#include <linux/fb.h>
15
16/* Proprietary FB_SYNC_ flags */
17#define FB_SYNC_OE_ACT_HIGH 0x80000000
18#define FB_SYNC_CLK_INVERT 0x40000000
19#define FB_SYNC_DATA_INVERT 0x20000000
20#define FB_SYNC_CLK_IDLE_EN 0x10000000
21#define FB_SYNC_SHARP_MODE 0x08000000
22#define FB_SYNC_SWAP_RGB 0x04000000
23#define FB_SYNC_CLK_SEL_EN 0x02000000
24
25/**
26 * struct mx3fb_platform_data - mx3fb platform data
27 *
28 * @dma_dev: pointer to the dma-device, used for dma-slave connection
29 * @mode: pointer to a platform-provided per mxc_register_fb() videomode
30 */
31struct mx3fb_platform_data {
32 struct device *dma_dev;
33 const char *name;
34 const struct fb_videomode *mode;
35 int num_modes;
36};
37
38#endif
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index ac15c23fd5da..208dbb121f47 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -200,14 +200,15 @@ void omap_mcbsp_register_board_cfg(struct omap_mcbsp_platform_data *config,
200/* 200/*
201 * Register MMC devices. Called from mach-omap1 and mach-omap2 device init. 201 * Register MMC devices. Called from mach-omap1 and mach-omap2 device init.
202 */ 202 */
203int __init omap_mmc_add(int id, unsigned long base, unsigned long size, 203int __init omap_mmc_add(const char *name, int id, unsigned long base,
204 unsigned int irq, struct omap_mmc_platform_data *data) 204 unsigned long size, unsigned int irq,
205 struct omap_mmc_platform_data *data)
205{ 206{
206 struct platform_device *pdev; 207 struct platform_device *pdev;
207 struct resource res[OMAP_MMC_NR_RES]; 208 struct resource res[OMAP_MMC_NR_RES];
208 int ret; 209 int ret;
209 210
210 pdev = platform_device_alloc("mmci-omap", id); 211 pdev = platform_device_alloc(name, id);
211 if (!pdev) 212 if (!pdev)
212 return -ENOMEM; 213 return -ENOMEM;
213 214
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 692d2b495af3..47ec77af4ccb 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -278,14 +278,11 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count,
278 u32 val; 278 u32 val;
279 279
280 val = dma_read(CCR(lch)); 280 val = dma_read(CCR(lch));
281 val &= ~(3 << 19);
282 if (dma_trigger > 63)
283 val |= 1 << 20;
284 if (dma_trigger > 31)
285 val |= 1 << 19;
286 281
287 val &= ~(0x1f); 282 /* DMA_SYNCHRO_CONTROL_UPPER depends on the channel number */
288 val |= (dma_trigger & 0x1f); 283 val &= ~((3 << 19) | 0x1f);
284 val |= (dma_trigger & ~0x1f) << 14;
285 val |= dma_trigger & 0x1f;
289 286
290 if (sync_mode & OMAP_DMA_SYNC_FRAME) 287 if (sync_mode & OMAP_DMA_SYNC_FRAME)
291 val |= 1 << 5; 288 val |= 1 << 5;
@@ -712,6 +709,7 @@ int omap_request_dma(int dev_id, const char *dev_name,
712 chan->dev_name = dev_name; 709 chan->dev_name = dev_name;
713 chan->callback = callback; 710 chan->callback = callback;
714 chan->data = data; 711 chan->data = data;
712 chan->flags = 0;
715 713
716#ifndef CONFIG_ARCH_OMAP1 714#ifndef CONFIG_ARCH_OMAP1
717 if (cpu_class_is_omap2()) { 715 if (cpu_class_is_omap2()) {
@@ -1891,11 +1889,11 @@ static int omap2_dma_handle_ch(int ch)
1891 status = dma_read(CSR(ch)); 1889 status = dma_read(CSR(ch));
1892 } 1890 }
1893 1891
1892 dma_write(status, CSR(ch));
1893
1894 if (likely(dma_chan[ch].callback != NULL)) 1894 if (likely(dma_chan[ch].callback != NULL))
1895 dma_chan[ch].callback(ch, status, dma_chan[ch].data); 1895 dma_chan[ch].callback(ch, status, dma_chan[ch].data);
1896 1896
1897 dma_write(status, CSR(ch));
1898
1899 return 0; 1897 return 0;
1900} 1898}
1901 1899
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 07b6968a7d16..f856a90b264e 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -1789,6 +1789,8 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
1789/* FIXME for at least omap2, show pullup/pulldown state */ 1789/* FIXME for at least omap2, show pullup/pulldown state */
1790 1790
1791 irqstat = irq_desc[irq].status; 1791 irqstat = irq_desc[irq].status;
1792#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP24XX) || \
1793 defined(CONFIG_ARCH_OMAP34XX)
1792 if (is_in && ((bank->suspend_wakeup & mask) 1794 if (is_in && ((bank->suspend_wakeup & mask)
1793 || irqstat & IRQ_TYPE_SENSE_MASK)) { 1795 || irqstat & IRQ_TYPE_SENSE_MASK)) {
1794 char *trigger = NULL; 1796 char *trigger = NULL;
@@ -1818,6 +1820,7 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
1818 (bank->suspend_wakeup & mask) 1820 (bank->suspend_wakeup & mask)
1819 ? " wakeup" : ""); 1821 ? " wakeup" : "");
1820 } 1822 }
1823#endif
1821 seq_printf(s, "\n"); 1824 seq_printf(s, "\n");
1822 } 1825 }
1823 1826
diff --git a/arch/arm/plat-omap/include/mach/aic23.h b/arch/arm/plat-omap/include/mach/aic23.h
deleted file mode 100644
index 5ccedac77526..000000000000
--- a/arch/arm/plat-omap/include/mach/aic23.h
+++ /dev/null
@@ -1,116 +0,0 @@
1/*
2 * arch/arm/plat-omap/include/mach/aic23.h
3 *
4 * Hardware definitions for TI TLV320AIC23 audio codec
5 *
6 * Copyright (C) 2002 RidgeRun, Inc.
7 * Author: Steve Johnson
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29
30#ifndef __ASM_ARCH_AIC23_H
31#define __ASM_ARCH_AIC23_H
32
33// Codec TLV320AIC23
34#define LEFT_LINE_VOLUME_ADDR 0x00
35#define RIGHT_LINE_VOLUME_ADDR 0x01
36#define LEFT_CHANNEL_VOLUME_ADDR 0x02
37#define RIGHT_CHANNEL_VOLUME_ADDR 0x03
38#define ANALOG_AUDIO_CONTROL_ADDR 0x04
39#define DIGITAL_AUDIO_CONTROL_ADDR 0x05
40#define POWER_DOWN_CONTROL_ADDR 0x06
41#define DIGITAL_AUDIO_FORMAT_ADDR 0x07
42#define SAMPLE_RATE_CONTROL_ADDR 0x08
43#define DIGITAL_INTERFACE_ACT_ADDR 0x09
44#define RESET_CONTROL_ADDR 0x0F
45
46// Left (right) line input volume control register
47#define LRS_ENABLED 0x0100
48#define LIM_MUTED 0x0080
49#define LIV_DEFAULT 0x0017
50#define LIV_MAX 0x001f
51#define LIV_MIN 0x0000
52
53// Left (right) channel headphone volume control register
54#define LZC_ON 0x0080
55#define LHV_DEFAULT 0x0079
56#define LHV_MAX 0x007f
57#define LHV_MIN 0x0000
58
59// Analog audio path control register
60#define STA_REG(x) ((x)<<6)
61#define STE_ENABLED 0x0020
62#define DAC_SELECTED 0x0010
63#define BYPASS_ON 0x0008
64#define INSEL_MIC 0x0004
65#define MICM_MUTED 0x0002
66#define MICB_20DB 0x0001
67
68// Digital audio path control register
69#define DACM_MUTE 0x0008
70#define DEEMP_32K 0x0002
71#define DEEMP_44K 0x0004
72#define DEEMP_48K 0x0006
73#define ADCHP_ON 0x0001
74
75// Power control down register
76#define DEVICE_POWER_OFF 0x0080
77#define CLK_OFF 0x0040
78#define OSC_OFF 0x0020
79#define OUT_OFF 0x0010
80#define DAC_OFF 0x0008
81#define ADC_OFF 0x0004
82#define MIC_OFF 0x0002
83#define LINE_OFF 0x0001
84
85// Digital audio interface register
86#define MS_MASTER 0x0040
87#define LRSWAP_ON 0x0020
88#define LRP_ON 0x0010
89#define IWL_16 0x0000
90#define IWL_20 0x0004
91#define IWL_24 0x0008
92#define IWL_32 0x000C
93#define FOR_I2S 0x0002
94#define FOR_DSP 0x0003
95
96// Sample rate control register
97#define CLKOUT_HALF 0x0080
98#define CLKIN_HALF 0x0040
99#define BOSR_384fs 0x0002 // BOSR_272fs when in USB mode
100#define USB_CLK_ON 0x0001
101#define SR_MASK 0xf
102#define CLKOUT_SHIFT 7
103#define CLKIN_SHIFT 6
104#define SR_SHIFT 2
105#define BOSR_SHIFT 1
106
107// Digital interface register
108#define ACT_ON 0x0001
109
110#define TLV320AIC23ID1 (0x1a) // cs low
111#define TLV320AIC23ID2 (0x1b) // cs high
112
113void aic23_power_up(void);
114void aic23_power_down(void);
115
116#endif /* __ASM_ARCH_AIC23_H */
diff --git a/arch/arm/plat-omap/include/mach/board-h3.h b/arch/arm/plat-omap/include/mach/board-h3.h
index 14909dc7858a..1888326da7ea 100644
--- a/arch/arm/plat-omap/include/mach/board-h3.h
+++ b/arch/arm/plat-omap/include/mach/board-h3.h
@@ -30,7 +30,9 @@
30/* In OMAP1710 H3 the Ethernet is directly connected to CS1 */ 30/* In OMAP1710 H3 the Ethernet is directly connected to CS1 */
31#define OMAP1710_ETHR_START 0x04000300 31#define OMAP1710_ETHR_START 0x04000300
32 32
33#define H3_TPS_GPIO_BASE (OMAP_MAX_GPIO_LINES + 16 /* MPUIO */)
34# define H3_TPS_GPIO_MMC_PWR_EN (H3_TPS_GPIO_BASE + 4)
35
33extern void h3_mmc_init(void); 36extern void h3_mmc_init(void);
34extern void h3_mmc_slot_cover_handler(void *arg, int state);
35 37
36#endif /* __ASM_ARCH_OMAP_H3_H */ 38#endif /* __ASM_ARCH_OMAP_H3_H */
diff --git a/arch/arm/plat-omap/include/mach/cpu.h b/arch/arm/plat-omap/include/mach/cpu.h
index b2062f1175de..a8e1178a9468 100644
--- a/arch/arm/plat-omap/include/mach/cpu.h
+++ b/arch/arm/plat-omap/include/mach/cpu.h
@@ -339,6 +339,7 @@ IS_OMAP_TYPE(3430, 0x3430)
339#define OMAP3430_REV_ES2_0 0x34301034 339#define OMAP3430_REV_ES2_0 0x34301034
340#define OMAP3430_REV_ES2_1 0x34302034 340#define OMAP3430_REV_ES2_1 0x34302034
341#define OMAP3430_REV_ES3_0 0x34303034 341#define OMAP3430_REV_ES3_0 0x34303034
342#define OMAP3430_REV_ES3_1 0x34304034
342 343
343/* 344/*
344 * omap_chip bits 345 * omap_chip bits
diff --git a/arch/arm/plat-omap/include/mach/gpio.h b/arch/arm/plat-omap/include/mach/gpio.h
index 04e68e88f134..8d9dfe314387 100644
--- a/arch/arm/plat-omap/include/mach/gpio.h
+++ b/arch/arm/plat-omap/include/mach/gpio.h
@@ -87,16 +87,6 @@ extern void omap_set_gpio_debounce_time(int gpio, int enable);
87#include <linux/errno.h> 87#include <linux/errno.h>
88#include <asm-generic/gpio.h> 88#include <asm-generic/gpio.h>
89 89
90static inline int omap_request_gpio(int gpio)
91{
92 return gpio_request(gpio, "FIXME");
93}
94
95static inline void omap_free_gpio(int gpio)
96{
97 gpio_free(gpio);
98}
99
100static inline int gpio_get_value(unsigned gpio) 90static inline int gpio_get_value(unsigned gpio)
101{ 91{
102 return __gpio_get_value(gpio); 92 return __gpio_get_value(gpio);
diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h
index 6a0d1a0a24a7..113c2466c86a 100644
--- a/arch/arm/plat-omap/include/mach/mcbsp.h
+++ b/arch/arm/plat-omap/include/mach/mcbsp.h
@@ -87,6 +87,10 @@
87#define OMAP_MCBSP_REG_XCERG 0x3A 87#define OMAP_MCBSP_REG_XCERG 0x3A
88#define OMAP_MCBSP_REG_XCERH 0x3C 88#define OMAP_MCBSP_REG_XCERH 0x3C
89 89
90/* Dummy defines, these are not available on omap1 */
91#define OMAP_MCBSP_REG_XCCR 0x00
92#define OMAP_MCBSP_REG_RCCR 0x00
93
90#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1) 94#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1)
91#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1) 95#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1)
92 96
@@ -231,11 +235,16 @@
231#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */ 235#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */
232 236
233/*********************** McBSP XCCR bit definitions *************************/ 237/*********************** McBSP XCCR bit definitions *************************/
238#define EXTCLKGATE 0x8000
239#define PPCONNECT 0x4000
240#define DXENDLY(value) ((value)<<12) /* Bits 12:13 */
241#define XFULL_CYCLE 0x0800
234#define DILB 0x0020 242#define DILB 0x0020
235#define XDMAEN 0x0008 243#define XDMAEN 0x0008
236#define XDISABLE 0x0001 244#define XDISABLE 0x0001
237 245
238/********************** McBSP RCCR bit definitions *************************/ 246/********************** McBSP RCCR bit definitions *************************/
247#define RFULL_CYCLE 0x0800
239#define RDMAEN 0x0008 248#define RDMAEN 0x0008
240#define RDISABLE 0x0001 249#define RDISABLE 0x0001
241 250
@@ -267,6 +276,8 @@ struct omap_mcbsp_reg_cfg {
267 u16 rcerh; 276 u16 rcerh;
268 u16 xcerg; 277 u16 xcerg;
269 u16 xcerh; 278 u16 xcerh;
279 u16 xccr;
280 u16 rccr;
270}; 281};
271 282
272typedef enum { 283typedef enum {
@@ -333,7 +344,8 @@ struct omap_mcbsp_platform_data {
333 u8 dma_rx_sync, dma_tx_sync; 344 u8 dma_rx_sync, dma_tx_sync;
334 u16 rx_irq, tx_irq; 345 u16 rx_irq, tx_irq;
335 struct omap_mcbsp_ops *ops; 346 struct omap_mcbsp_ops *ops;
336 char const *clk_name; 347 char const **clk_names;
348 int num_clks;
337}; 349};
338 350
339struct omap_mcbsp { 351struct omap_mcbsp {
@@ -365,7 +377,8 @@ struct omap_mcbsp {
365 /* Protect the field .free, while checking if the mcbsp is in use */ 377 /* Protect the field .free, while checking if the mcbsp is in use */
366 spinlock_t lock; 378 spinlock_t lock;
367 struct omap_mcbsp_platform_data *pdata; 379 struct omap_mcbsp_platform_data *pdata;
368 struct clk *clk; 380 struct clk **clks;
381 int num_clks;
369}; 382};
370extern struct omap_mcbsp **mcbsp_ptr; 383extern struct omap_mcbsp **mcbsp_ptr;
371extern int omap_mcbsp_count; 384extern int omap_mcbsp_count;
diff --git a/arch/arm/plat-omap/include/mach/mmc.h b/arch/arm/plat-omap/include/mach/mmc.h
index 031250f02805..73a9e15031b1 100644
--- a/arch/arm/plat-omap/include/mach/mmc.h
+++ b/arch/arm/plat-omap/include/mach/mmc.h
@@ -115,8 +115,9 @@ void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
115 int nr_controllers); 115 int nr_controllers);
116void omap2_init_mmc(struct omap_mmc_platform_data **mmc_data, 116void omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
117 int nr_controllers); 117 int nr_controllers);
118int omap_mmc_add(int id, unsigned long base, unsigned long size, 118int omap_mmc_add(const char *name, int id, unsigned long base,
119 unsigned int irq, struct omap_mmc_platform_data *data); 119 unsigned long size, unsigned int irq,
120 struct omap_mmc_platform_data *data);
120#else 121#else
121static inline void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data, 122static inline void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
122 int nr_controllers) 123 int nr_controllers)
@@ -126,8 +127,9 @@ static inline void omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
126 int nr_controllers) 127 int nr_controllers)
127{ 128{
128} 129}
129static inline int omap_mmc_add(int id, unsigned long base, unsigned long size, 130static inline int omap_mmc_add(const char *name, int id, unsigned long base,
130 unsigned int irq, struct omap_mmc_platform_data *data) 131 unsigned long size, unsigned int irq,
132 struct omap_mmc_platform_data *data)
131{ 133{
132 return 0; 134 return 0;
133} 135}
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index af33fc713e1a..e5842e30e534 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -173,6 +173,10 @@ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config)
173 OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2); 173 OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2);
174 OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1); 174 OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1);
175 OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0); 175 OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0);
176 if (cpu_is_omap2430() || cpu_is_omap34xx()) {
177 OMAP_MCBSP_WRITE(io_base, XCCR, config->xccr);
178 OMAP_MCBSP_WRITE(io_base, RCCR, config->rccr);
179 }
176} 180}
177EXPORT_SYMBOL(omap_mcbsp_config); 181EXPORT_SYMBOL(omap_mcbsp_config);
178 182
@@ -210,6 +214,7 @@ EXPORT_SYMBOL(omap_mcbsp_set_io_type);
210int omap_mcbsp_request(unsigned int id) 214int omap_mcbsp_request(unsigned int id)
211{ 215{
212 struct omap_mcbsp *mcbsp; 216 struct omap_mcbsp *mcbsp;
217 int i;
213 int err; 218 int err;
214 219
215 if (!omap_mcbsp_check_valid_id(id)) { 220 if (!omap_mcbsp_check_valid_id(id)) {
@@ -221,7 +226,8 @@ int omap_mcbsp_request(unsigned int id)
221 if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->request) 226 if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->request)
222 mcbsp->pdata->ops->request(id); 227 mcbsp->pdata->ops->request(id);
223 228
224 clk_enable(mcbsp->clk); 229 for (i = 0; i < mcbsp->num_clks; i++)
230 clk_enable(mcbsp->clks[i]);
225 231
226 spin_lock(&mcbsp->lock); 232 spin_lock(&mcbsp->lock);
227 if (!mcbsp->free) { 233 if (!mcbsp->free) {
@@ -272,6 +278,7 @@ EXPORT_SYMBOL(omap_mcbsp_request);
272void omap_mcbsp_free(unsigned int id) 278void omap_mcbsp_free(unsigned int id)
273{ 279{
274 struct omap_mcbsp *mcbsp; 280 struct omap_mcbsp *mcbsp;
281 int i;
275 282
276 if (!omap_mcbsp_check_valid_id(id)) { 283 if (!omap_mcbsp_check_valid_id(id)) {
277 printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); 284 printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
@@ -282,7 +289,8 @@ void omap_mcbsp_free(unsigned int id)
282 if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free) 289 if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free)
283 mcbsp->pdata->ops->free(id); 290 mcbsp->pdata->ops->free(id);
284 291
285 clk_disable(mcbsp->clk); 292 for (i = mcbsp->num_clks - 1; i >= 0; i--)
293 clk_disable(mcbsp->clks[i]);
286 294
287 spin_lock(&mcbsp->lock); 295 spin_lock(&mcbsp->lock);
288 if (mcbsp->free) { 296 if (mcbsp->free) {
@@ -868,6 +876,7 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
868 struct omap_mcbsp_platform_data *pdata = pdev->dev.platform_data; 876 struct omap_mcbsp_platform_data *pdata = pdev->dev.platform_data;
869 struct omap_mcbsp *mcbsp; 877 struct omap_mcbsp *mcbsp;
870 int id = pdev->id - 1; 878 int id = pdev->id - 1;
879 int i;
871 int ret = 0; 880 int ret = 0;
872 881
873 if (!pdata) { 882 if (!pdata) {
@@ -912,14 +921,25 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
912 mcbsp->dma_rx_sync = pdata->dma_rx_sync; 921 mcbsp->dma_rx_sync = pdata->dma_rx_sync;
913 mcbsp->dma_tx_sync = pdata->dma_tx_sync; 922 mcbsp->dma_tx_sync = pdata->dma_tx_sync;
914 923
915 if (pdata->clk_name) 924 if (pdata->num_clks) {
916 mcbsp->clk = clk_get(&pdev->dev, pdata->clk_name); 925 mcbsp->num_clks = pdata->num_clks;
917 if (IS_ERR(mcbsp->clk)) { 926 mcbsp->clks = kzalloc(mcbsp->num_clks * sizeof(struct clk *),
918 dev_err(&pdev->dev, 927 GFP_KERNEL);
919 "Invalid clock configuration for McBSP%d.\n", 928 if (!mcbsp->clks) {
920 mcbsp->id); 929 ret = -ENOMEM;
921 ret = PTR_ERR(mcbsp->clk); 930 goto exit;
922 goto err_clk; 931 }
932 for (i = 0; i < mcbsp->num_clks; i++) {
933 mcbsp->clks[i] = clk_get(&pdev->dev, pdata->clk_names[i]);
934 if (IS_ERR(mcbsp->clks[i])) {
935 dev_err(&pdev->dev,
936 "Invalid %s configuration for McBSP%d.\n",
937 pdata->clk_names[i], mcbsp->id);
938 ret = PTR_ERR(mcbsp->clks[i]);
939 goto err_clk;
940 }
941 }
942
923 } 943 }
924 944
925 mcbsp->pdata = pdata; 945 mcbsp->pdata = pdata;
@@ -928,6 +948,9 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev)
928 return 0; 948 return 0;
929 949
930err_clk: 950err_clk:
951 while (i--)
952 clk_put(mcbsp->clks[i]);
953 kfree(mcbsp->clks);
931 iounmap(mcbsp->io_base); 954 iounmap(mcbsp->io_base);
932err_ioremap: 955err_ioremap:
933 mcbsp->free = 0; 956 mcbsp->free = 0;
@@ -938,6 +961,7 @@ exit:
938static int __devexit omap_mcbsp_remove(struct platform_device *pdev) 961static int __devexit omap_mcbsp_remove(struct platform_device *pdev)
939{ 962{
940 struct omap_mcbsp *mcbsp = platform_get_drvdata(pdev); 963 struct omap_mcbsp *mcbsp = platform_get_drvdata(pdev);
964 int i;
941 965
942 platform_set_drvdata(pdev, NULL); 966 platform_set_drvdata(pdev, NULL);
943 if (mcbsp) { 967 if (mcbsp) {
@@ -946,12 +970,18 @@ static int __devexit omap_mcbsp_remove(struct platform_device *pdev)
946 mcbsp->pdata->ops->free) 970 mcbsp->pdata->ops->free)
947 mcbsp->pdata->ops->free(mcbsp->id); 971 mcbsp->pdata->ops->free(mcbsp->id);
948 972
949 clk_disable(mcbsp->clk); 973 for (i = mcbsp->num_clks - 1; i >= 0; i--) {
950 clk_put(mcbsp->clk); 974 clk_disable(mcbsp->clks[i]);
975 clk_put(mcbsp->clks[i]);
976 }
951 977
952 iounmap(mcbsp->io_base); 978 iounmap(mcbsp->io_base);
953 979
954 mcbsp->clk = NULL; 980 if (mcbsp->num_clks) {
981 kfree(mcbsp->clks);
982 mcbsp->clks = NULL;
983 mcbsp->num_clks = 0;
984 }
955 mcbsp->free = 0; 985 mcbsp->free = 0;
956 mcbsp->dev = NULL; 986 mcbsp->dev = NULL;
957 } 987 }
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c
index add0485703b5..e278de6862ae 100644
--- a/arch/arm/plat-omap/usb.c
+++ b/arch/arm/plat-omap/usb.c
@@ -431,15 +431,6 @@ bad:
431 431
432/*-------------------------------------------------------------------------*/ 432/*-------------------------------------------------------------------------*/
433 433
434#if defined(CONFIG_USB_GADGET_OMAP) || \
435 defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) || \
436 (defined(CONFIG_USB_OTG) && defined(CONFIG_ARCH_OMAP_OTG))
437static void usb_release(struct device *dev)
438{
439 /* normally not freed */
440}
441#endif
442
443#ifdef CONFIG_USB_GADGET_OMAP 434#ifdef CONFIG_USB_GADGET_OMAP
444 435
445static struct resource udc_resources[] = { 436static struct resource udc_resources[] = {
@@ -466,7 +457,6 @@ static struct platform_device udc_device = {
466 .name = "omap_udc", 457 .name = "omap_udc",
467 .id = -1, 458 .id = -1,
468 .dev = { 459 .dev = {
469 .release = usb_release,
470 .dma_mask = &udc_dmamask, 460 .dma_mask = &udc_dmamask,
471 .coherent_dma_mask = 0xffffffff, 461 .coherent_dma_mask = 0xffffffff,
472 }, 462 },
@@ -497,7 +487,6 @@ static struct platform_device ohci_device = {
497 .name = "ohci", 487 .name = "ohci",
498 .id = -1, 488 .id = -1,
499 .dev = { 489 .dev = {
500 .release = usb_release,
501 .dma_mask = &ohci_dmamask, 490 .dma_mask = &ohci_dmamask,
502 .coherent_dma_mask = 0xffffffff, 491 .coherent_dma_mask = 0xffffffff,
503 }, 492 },
@@ -524,9 +513,6 @@ static struct resource otg_resources[] = {
524static struct platform_device otg_device = { 513static struct platform_device otg_device = {
525 .name = "omap_otg", 514 .name = "omap_otg",
526 .id = -1, 515 .id = -1,
527 .dev = {
528 .release = usb_release,
529 },
530 .num_resources = ARRAY_SIZE(otg_resources), 516 .num_resources = ARRAY_SIZE(otg_resources),
531 .resource = otg_resources, 517 .resource = otg_resources,
532}; 518};
diff --git a/arch/arm/plat-orion/gpio.c b/arch/arm/plat-orion/gpio.c
index 967186425ca1..0d12c2164766 100644
--- a/arch/arm/plat-orion/gpio.c
+++ b/arch/arm/plat-orion/gpio.c
@@ -265,51 +265,36 @@ EXPORT_SYMBOL(orion_gpio_set_blink);
265 * polarity LEVEL mask 265 * polarity LEVEL mask
266 * 266 *
267 ****************************************************************************/ 267 ****************************************************************************/
268static void gpio_irq_edge_ack(u32 irq)
269{
270 int pin = irq_to_gpio(irq);
271
272 writel(~(1 << (pin & 31)), GPIO_EDGE_CAUSE(pin));
273}
274
275static void gpio_irq_edge_mask(u32 irq)
276{
277 int pin = irq_to_gpio(irq);
278 u32 u;
279
280 u = readl(GPIO_EDGE_MASK(pin));
281 u &= ~(1 << (pin & 31));
282 writel(u, GPIO_EDGE_MASK(pin));
283}
284 268
285static void gpio_irq_edge_unmask(u32 irq) 269static void gpio_irq_ack(u32 irq)
286{ 270{
287 int pin = irq_to_gpio(irq); 271 int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK;
288 u32 u; 272 if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) {
289 273 int pin = irq_to_gpio(irq);
290 u = readl(GPIO_EDGE_MASK(pin)); 274 writel(~(1 << (pin & 31)), GPIO_EDGE_CAUSE(pin));
291 u |= 1 << (pin & 31); 275 }
292 writel(u, GPIO_EDGE_MASK(pin));
293} 276}
294 277
295static void gpio_irq_level_mask(u32 irq) 278static void gpio_irq_mask(u32 irq)
296{ 279{
297 int pin = irq_to_gpio(irq); 280 int pin = irq_to_gpio(irq);
298 u32 u; 281 int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK;
299 282 u32 reg = (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) ?
300 u = readl(GPIO_LEVEL_MASK(pin)); 283 GPIO_EDGE_MASK(pin) : GPIO_LEVEL_MASK(pin);
284 u32 u = readl(reg);
301 u &= ~(1 << (pin & 31)); 285 u &= ~(1 << (pin & 31));
302 writel(u, GPIO_LEVEL_MASK(pin)); 286 writel(u, reg);
303} 287}
304 288
305static void gpio_irq_level_unmask(u32 irq) 289static void gpio_irq_unmask(u32 irq)
306{ 290{
307 int pin = irq_to_gpio(irq); 291 int pin = irq_to_gpio(irq);
308 u32 u; 292 int type = irq_desc[irq].status & IRQ_TYPE_SENSE_MASK;
309 293 u32 reg = (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) ?
310 u = readl(GPIO_LEVEL_MASK(pin)); 294 GPIO_EDGE_MASK(pin) : GPIO_LEVEL_MASK(pin);
295 u32 u = readl(reg);
311 u |= 1 << (pin & 31); 296 u |= 1 << (pin & 31);
312 writel(u, GPIO_LEVEL_MASK(pin)); 297 writel(u, reg);
313} 298}
314 299
315static int gpio_irq_set_type(u32 irq, u32 type) 300static int gpio_irq_set_type(u32 irq, u32 type)
@@ -331,9 +316,9 @@ static int gpio_irq_set_type(u32 irq, u32 type)
331 * Set edge/level type. 316 * Set edge/level type.
332 */ 317 */
333 if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) { 318 if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) {
334 desc->chip = &orion_gpio_irq_edge_chip; 319 desc->handle_irq = handle_edge_irq;
335 } else if (type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) { 320 } else if (type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) {
336 desc->chip = &orion_gpio_irq_level_chip; 321 desc->handle_irq = handle_level_irq;
337 } else { 322 } else {
338 printk(KERN_ERR "failed to set irq=%d (type=%d)\n", irq, type); 323 printk(KERN_ERR "failed to set irq=%d (type=%d)\n", irq, type);
339 return -EINVAL; 324 return -EINVAL;
@@ -371,19 +356,11 @@ static int gpio_irq_set_type(u32 irq, u32 type)
371 return 0; 356 return 0;
372} 357}
373 358
374struct irq_chip orion_gpio_irq_edge_chip = { 359struct irq_chip orion_gpio_irq_chip = {
375 .name = "orion_gpio_irq_edge", 360 .name = "orion_gpio",
376 .ack = gpio_irq_edge_ack, 361 .ack = gpio_irq_ack,
377 .mask = gpio_irq_edge_mask, 362 .mask = gpio_irq_mask,
378 .unmask = gpio_irq_edge_unmask, 363 .unmask = gpio_irq_unmask,
379 .set_type = gpio_irq_set_type,
380};
381
382struct irq_chip orion_gpio_irq_level_chip = {
383 .name = "orion_gpio_irq_level",
384 .mask = gpio_irq_level_mask,
385 .mask_ack = gpio_irq_level_mask,
386 .unmask = gpio_irq_level_unmask,
387 .set_type = gpio_irq_set_type, 364 .set_type = gpio_irq_set_type,
388}; 365};
389 366
diff --git a/arch/arm/plat-orion/include/plat/gpio.h b/arch/arm/plat-orion/include/plat/gpio.h
index 54deaf274b52..ec743e82c876 100644
--- a/arch/arm/plat-orion/include/plat/gpio.h
+++ b/arch/arm/plat-orion/include/plat/gpio.h
@@ -31,8 +31,7 @@ void orion_gpio_set_blink(unsigned pin, int blink);
31/* 31/*
32 * GPIO interrupt handling. 32 * GPIO interrupt handling.
33 */ 33 */
34extern struct irq_chip orion_gpio_irq_edge_chip; 34extern struct irq_chip orion_gpio_irq_chip;
35extern struct irq_chip orion_gpio_irq_level_chip;
36void orion_gpio_irq_handler(int irqoff); 35void orion_gpio_irq_handler(int irqoff);
37 36
38 37
diff --git a/arch/arm/plat-s3c64xx/irq-eint.c b/arch/arm/plat-s3c64xx/irq-eint.c
index 1f7cc0067f5c..ebb305ce7689 100644
--- a/arch/arm/plat-s3c64xx/irq-eint.c
+++ b/arch/arm/plat-s3c64xx/irq-eint.c
@@ -55,7 +55,7 @@ static void s3c_irq_eint_unmask(unsigned int irq)
55 u32 mask; 55 u32 mask;
56 56
57 mask = __raw_readl(S3C64XX_EINT0MASK); 57 mask = __raw_readl(S3C64XX_EINT0MASK);
58 mask |= eint_irq_to_bit(irq); 58 mask &= ~eint_irq_to_bit(irq);
59 __raw_writel(mask, S3C64XX_EINT0MASK); 59 __raw_writel(mask, S3C64XX_EINT0MASK);
60} 60}
61 61
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index b189680d18b0..05fe3053dcae 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -181,7 +181,7 @@ source "kernel/Kconfig.preempt"
181config QUICKLIST 181config QUICKLIST
182 def_bool y 182 def_bool y
183 183
184config HAVE_ARCH_BOOTMEM_NODE 184config HAVE_ARCH_BOOTMEM
185 def_bool n 185 def_bool n
186 186
187config ARCH_HAVE_MEMORY_PRESENT 187config ARCH_HAVE_MEMORY_PRESENT
diff --git a/arch/avr32/configs/atngw100_defconfig b/arch/avr32/configs/atngw100_defconfig
index 164e2814ae78..574aca975334 100644
--- a/arch/avr32/configs/atngw100_defconfig
+++ b/arch/avr32/configs/atngw100_defconfig
@@ -644,8 +644,8 @@ CONFIG_I2C_GPIO=m
644# Miscellaneous I2C Chip support 644# Miscellaneous I2C Chip support
645# 645#
646# CONFIG_DS1682 is not set 646# CONFIG_DS1682 is not set
647CONFIG_AT24=m 647CONFIG_EEPROM_AT24=m
648# CONFIG_SENSORS_EEPROM is not set 648# CONFIG_EEPROM_LEGACY is not set
649# CONFIG_SENSORS_PCF8574 is not set 649# CONFIG_SENSORS_PCF8574 is not set
650# CONFIG_PCF8575 is not set 650# CONFIG_PCF8575 is not set
651# CONFIG_SENSORS_PCA9539 is not set 651# CONFIG_SENSORS_PCA9539 is not set
@@ -670,7 +670,7 @@ CONFIG_SPI_ATMEL=y
670# 670#
671# SPI Protocol Masters 671# SPI Protocol Masters
672# 672#
673# CONFIG_SPI_AT25 is not set 673# CONFIG_EEPROM_AT25 is not set
674CONFIG_SPI_SPIDEV=m 674CONFIG_SPI_SPIDEV=m
675# CONFIG_SPI_TLE62X0 is not set 675# CONFIG_SPI_TLE62X0 is not set
676CONFIG_ARCH_REQUIRE_GPIOLIB=y 676CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atngw100_evklcd100_defconfig b/arch/avr32/configs/atngw100_evklcd100_defconfig
index b0572d213826..86a45b5c9d0d 100644
--- a/arch/avr32/configs/atngw100_evklcd100_defconfig
+++ b/arch/avr32/configs/atngw100_evklcd100_defconfig
@@ -671,7 +671,7 @@ CONFIG_I2C_GPIO=m
671# Miscellaneous I2C Chip support 671# Miscellaneous I2C Chip support
672# 672#
673# CONFIG_DS1682 is not set 673# CONFIG_DS1682 is not set
674# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
675# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
676# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
677# CONFIG_SENSORS_PCF8591 is not set 677# CONFIG_SENSORS_PCF8591 is not set
@@ -699,7 +699,7 @@ CONFIG_SPI_ATMEL=y
699# 699#
700# SPI Protocol Masters 700# SPI Protocol Masters
701# 701#
702# CONFIG_SPI_AT25 is not set 702# CONFIG_EEPROM_AT25 is not set
703CONFIG_SPI_SPIDEV=m 703CONFIG_SPI_SPIDEV=m
704# CONFIG_SPI_TLE62X0 is not set 704# CONFIG_SPI_TLE62X0 is not set
705CONFIG_HAVE_GPIO_LIB=y 705CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/avr32/configs/atngw100_evklcd101_defconfig b/arch/avr32/configs/atngw100_evklcd101_defconfig
index c5b898d21075..a96b68ea5e83 100644
--- a/arch/avr32/configs/atngw100_evklcd101_defconfig
+++ b/arch/avr32/configs/atngw100_evklcd101_defconfig
@@ -671,7 +671,7 @@ CONFIG_I2C_GPIO=m
671# Miscellaneous I2C Chip support 671# Miscellaneous I2C Chip support
672# 672#
673# CONFIG_DS1682 is not set 673# CONFIG_DS1682 is not set
674# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
675# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
676# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
677# CONFIG_SENSORS_PCF8591 is not set 677# CONFIG_SENSORS_PCF8591 is not set
@@ -699,7 +699,7 @@ CONFIG_SPI_ATMEL=y
699# 699#
700# SPI Protocol Masters 700# SPI Protocol Masters
701# 701#
702# CONFIG_SPI_AT25 is not set 702# CONFIG_EEPROM_AT25 is not set
703CONFIG_SPI_SPIDEV=m 703CONFIG_SPI_SPIDEV=m
704# CONFIG_SPI_TLE62X0 is not set 704# CONFIG_SPI_TLE62X0 is not set
705CONFIG_HAVE_GPIO_LIB=y 705CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/avr32/configs/atstk1002_defconfig b/arch/avr32/configs/atstk1002_defconfig
index c9dc64832a19..0abe90adb1a4 100644
--- a/arch/avr32/configs/atstk1002_defconfig
+++ b/arch/avr32/configs/atstk1002_defconfig
@@ -663,8 +663,8 @@ CONFIG_I2C_GPIO=m
663# Miscellaneous I2C Chip support 663# Miscellaneous I2C Chip support
664# 664#
665# CONFIG_DS1682 is not set 665# CONFIG_DS1682 is not set
666CONFIG_AT24=m 666CONFIG_EEPROM_AT24=m
667# CONFIG_SENSORS_EEPROM is not set 667# CONFIG_EEPROM_LEGACY is not set
668# CONFIG_SENSORS_PCF8574 is not set 668# CONFIG_SENSORS_PCF8574 is not set
669# CONFIG_PCF8575 is not set 669# CONFIG_PCF8575 is not set
670# CONFIG_SENSORS_PCA9539 is not set 670# CONFIG_SENSORS_PCA9539 is not set
@@ -689,7 +689,7 @@ CONFIG_SPI_ATMEL=y
689# 689#
690# SPI Protocol Masters 690# SPI Protocol Masters
691# 691#
692# CONFIG_SPI_AT25 is not set 692# CONFIG_EEPROM_AT25 is not set
693CONFIG_SPI_SPIDEV=m 693CONFIG_SPI_SPIDEV=m
694# CONFIG_SPI_TLE62X0 is not set 694# CONFIG_SPI_TLE62X0 is not set
695CONFIG_ARCH_REQUIRE_GPIOLIB=y 695CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1003_defconfig b/arch/avr32/configs/atstk1003_defconfig
index 29ea1327b498..101972f40f07 100644
--- a/arch/avr32/configs/atstk1003_defconfig
+++ b/arch/avr32/configs/atstk1003_defconfig
@@ -611,8 +611,8 @@ CONFIG_I2C_GPIO=m
611# Miscellaneous I2C Chip support 611# Miscellaneous I2C Chip support
612# 612#
613# CONFIG_DS1682 is not set 613# CONFIG_DS1682 is not set
614CONFIG_AT24=m 614CONFIG_EEPROM_AT24=m
615# CONFIG_SENSORS_EEPROM is not set 615# CONFIG_EEPROM_LEGACY is not set
616# CONFIG_SENSORS_PCF8574 is not set 616# CONFIG_SENSORS_PCF8574 is not set
617# CONFIG_PCF8575 is not set 617# CONFIG_PCF8575 is not set
618# CONFIG_SENSORS_PCA9539 is not set 618# CONFIG_SENSORS_PCA9539 is not set
@@ -637,7 +637,7 @@ CONFIG_SPI_ATMEL=y
637# 637#
638# SPI Protocol Masters 638# SPI Protocol Masters
639# 639#
640# CONFIG_SPI_AT25 is not set 640# CONFIG_EEPROM_AT25 is not set
641CONFIG_SPI_SPIDEV=m 641CONFIG_SPI_SPIDEV=m
642# CONFIG_SPI_TLE62X0 is not set 642# CONFIG_SPI_TLE62X0 is not set
643CONFIG_ARCH_REQUIRE_GPIOLIB=y 643CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1004_defconfig b/arch/avr32/configs/atstk1004_defconfig
index 69e6c0d08ce8..518f7898df75 100644
--- a/arch/avr32/configs/atstk1004_defconfig
+++ b/arch/avr32/configs/atstk1004_defconfig
@@ -394,7 +394,7 @@ CONFIG_SPI_ATMEL=y
394# 394#
395# SPI Protocol Masters 395# SPI Protocol Masters
396# 396#
397# CONFIG_SPI_AT25 is not set 397# CONFIG_EEPROM_AT25 is not set
398# CONFIG_SPI_SPIDEV is not set 398# CONFIG_SPI_SPIDEV is not set
399# CONFIG_SPI_TLE62X0 is not set 399# CONFIG_SPI_TLE62X0 is not set
400CONFIG_ARCH_REQUIRE_GPIOLIB=y 400CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1006_defconfig b/arch/avr32/configs/atstk1006_defconfig
index 361c31c2af10..c1603c4860e0 100644
--- a/arch/avr32/configs/atstk1006_defconfig
+++ b/arch/avr32/configs/atstk1006_defconfig
@@ -684,8 +684,8 @@ CONFIG_I2C_GPIO=m
684# Miscellaneous I2C Chip support 684# Miscellaneous I2C Chip support
685# 685#
686# CONFIG_DS1682 is not set 686# CONFIG_DS1682 is not set
687# CONFIG_AT24 is not set 687# CONFIG_EEPROM_AT24 is not set
688# CONFIG_SENSORS_EEPROM is not set 688# CONFIG_EEPROM_LEGACY is not set
689# CONFIG_SENSORS_PCF8574 is not set 689# CONFIG_SENSORS_PCF8574 is not set
690# CONFIG_PCF8575 is not set 690# CONFIG_PCF8575 is not set
691# CONFIG_SENSORS_PCA9539 is not set 691# CONFIG_SENSORS_PCA9539 is not set
@@ -710,7 +710,7 @@ CONFIG_SPI_ATMEL=y
710# 710#
711# SPI Protocol Masters 711# SPI Protocol Masters
712# 712#
713# CONFIG_SPI_AT25 is not set 713# CONFIG_EEPROM_AT25 is not set
714CONFIG_SPI_SPIDEV=m 714CONFIG_SPI_SPIDEV=m
715# CONFIG_SPI_TLE62X0 is not set 715# CONFIG_SPI_TLE62X0 is not set
716CONFIG_ARCH_REQUIRE_GPIOLIB=y 716CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/favr-32_defconfig b/arch/avr32/configs/favr-32_defconfig
index e2bd9982e2af..4c3ac0643e4a 100644
--- a/arch/avr32/configs/favr-32_defconfig
+++ b/arch/avr32/configs/favr-32_defconfig
@@ -633,8 +633,8 @@ CONFIG_I2C_GPIO=m
633# Miscellaneous I2C Chip support 633# Miscellaneous I2C Chip support
634# 634#
635# CONFIG_DS1682 is not set 635# CONFIG_DS1682 is not set
636# CONFIG_AT24 is not set 636# CONFIG_EEPROM_AT24 is not set
637# CONFIG_SENSORS_EEPROM is not set 637# CONFIG_EEPROM_LEGACY is not set
638# CONFIG_SENSORS_PCF8574 is not set 638# CONFIG_SENSORS_PCF8574 is not set
639# CONFIG_PCF8575 is not set 639# CONFIG_PCF8575 is not set
640# CONFIG_SENSORS_PCA9539 is not set 640# CONFIG_SENSORS_PCA9539 is not set
@@ -659,7 +659,7 @@ CONFIG_SPI_ATMEL=y
659# 659#
660# SPI Protocol Masters 660# SPI Protocol Masters
661# 661#
662# CONFIG_SPI_AT25 is not set 662# CONFIG_EEPROM_AT25 is not set
663CONFIG_SPI_SPIDEV=m 663CONFIG_SPI_SPIDEV=m
664# CONFIG_SPI_TLE62X0 is not set 664# CONFIG_SPI_TLE62X0 is not set
665CONFIG_ARCH_REQUIRE_GPIOLIB=y 665CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/hammerhead_defconfig b/arch/avr32/configs/hammerhead_defconfig
index 0d3d2982c8f5..3970fcc4d76e 100644
--- a/arch/avr32/configs/hammerhead_defconfig
+++ b/arch/avr32/configs/hammerhead_defconfig
@@ -716,8 +716,8 @@ CONFIG_I2C_GPIO=m
716# Miscellaneous I2C Chip support 716# Miscellaneous I2C Chip support
717# 717#
718# CONFIG_DS1682 is not set 718# CONFIG_DS1682 is not set
719# CONFIG_AT24 is not set 719# CONFIG_EEPROM_AT24 is not set
720# CONFIG_SENSORS_EEPROM is not set 720# CONFIG_EEPROM_LEGACY is not set
721# CONFIG_SENSORS_PCF8574 is not set 721# CONFIG_SENSORS_PCF8574 is not set
722# CONFIG_PCF8575 is not set 722# CONFIG_PCF8575 is not set
723# CONFIG_SENSORS_PCA9539 is not set 723# CONFIG_SENSORS_PCA9539 is not set
@@ -742,7 +742,7 @@ CONFIG_SPI_ATMEL=y
742# 742#
743# SPI Protocol Masters 743# SPI Protocol Masters
744# 744#
745# CONFIG_SPI_AT25 is not set 745# CONFIG_EEPROM_AT25 is not set
746CONFIG_SPI_SPIDEV=m 746CONFIG_SPI_SPIDEV=m
747# CONFIG_SPI_TLE62X0 is not set 747# CONFIG_SPI_TLE62X0 is not set
748CONFIG_ARCH_REQUIRE_GPIOLIB=y 748CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/mimc200_defconfig b/arch/avr32/configs/mimc200_defconfig
index 981e4f8b8aeb..1a58ffbc752d 100644
--- a/arch/avr32/configs/mimc200_defconfig
+++ b/arch/avr32/configs/mimc200_defconfig
@@ -565,8 +565,8 @@ CONFIG_I2C_GPIO=y
565# Miscellaneous I2C Chip support 565# Miscellaneous I2C Chip support
566# 566#
567# CONFIG_DS1682 is not set 567# CONFIG_DS1682 is not set
568CONFIG_AT24=y 568CONFIG_EEPROM_AT24=y
569# CONFIG_SENSORS_EEPROM is not set 569# CONFIG_EEPROM_LEGACY is not set
570# CONFIG_SENSORS_PCF8574 is not set 570# CONFIG_SENSORS_PCF8574 is not set
571# CONFIG_PCF8575 is not set 571# CONFIG_PCF8575 is not set
572# CONFIG_SENSORS_PCA9539 is not set 572# CONFIG_SENSORS_PCA9539 is not set
@@ -592,7 +592,7 @@ CONFIG_SPI_ATMEL=y
592# 592#
593# SPI Protocol Masters 593# SPI Protocol Masters
594# 594#
595CONFIG_SPI_AT25=y 595CONFIG_EEPROM_AT25=y
596# CONFIG_SPI_SPIDEV is not set 596# CONFIG_SPI_SPIDEV is not set
597# CONFIG_SPI_TLE62X0 is not set 597# CONFIG_SPI_TLE62X0 is not set
598CONFIG_ARCH_REQUIRE_GPIOLIB=y 598CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/include/asm/Kbuild b/arch/avr32/include/asm/Kbuild
index 219822c8ad18..3136628ba8d2 100644
--- a/arch/avr32/include/asm/Kbuild
+++ b/arch/avr32/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3header-y += swab.h
4header-y += cachectl.h 3header-y += cachectl.h
diff --git a/arch/avr32/include/asm/byteorder.h b/arch/avr32/include/asm/byteorder.h
index 2aba64b4e122..50abc21619a8 100644
--- a/arch/avr32/include/asm/byteorder.h
+++ b/arch/avr32/include/asm/byteorder.h
@@ -4,7 +4,6 @@
4#ifndef __ASM_AVR32_BYTEORDER_H 4#ifndef __ASM_AVR32_BYTEORDER_H
5#define __ASM_AVR32_BYTEORDER_H 5#define __ASM_AVR32_BYTEORDER_H
6 6
7#include <asm/swab.h>
8#include <linux/byteorder/big_endian.h> 7#include <linux/byteorder/big_endian.h>
9 8
10#endif /* __ASM_AVR32_BYTEORDER_H */ 9#endif /* __ASM_AVR32_BYTEORDER_H */
diff --git a/arch/avr32/include/asm/swab.h b/arch/avr32/include/asm/swab.h
index a14aa5b46d98..14cc737bbca6 100644
--- a/arch/avr32/include/asm/swab.h
+++ b/arch/avr32/include/asm/swab.h
@@ -4,7 +4,7 @@
4#ifndef __ASM_AVR32_SWAB_H 4#ifndef __ASM_AVR32_SWAB_H
5#define __ASM_AVR32_SWAB_H 5#define __ASM_AVR32_SWAB_H
6 6
7#include <asm/types.h> 7#include <linux/types.h>
8#include <linux/compiler.h> 8#include <linux/compiler.h>
9 9
10#define __SWAB_64_THRU_32__ 10#define __SWAB_64_THRU_32__
diff --git a/arch/avr32/mach-at32ap/include/mach/board.h b/arch/avr32/mach-at32ap/include/mach/board.h
index aafaf7a78886..cff8e84f78f2 100644
--- a/arch/avr32/mach-at32ap/include/mach/board.h
+++ b/arch/avr32/mach-at32ap/include/mach/board.h
@@ -116,6 +116,7 @@ struct atmel_nand_data {
116 int enable_pin; /* chip enable */ 116 int enable_pin; /* chip enable */
117 int det_pin; /* card detect */ 117 int det_pin; /* card detect */
118 int rdy_pin; /* ready/busy */ 118 int rdy_pin; /* ready/busy */
119 u8 rdy_pin_active_low; /* rdy_pin value is inverted */
119 u8 ale; /* address line number connected to ALE */ 120 u8 ale; /* address line number connected to ALE */
120 u8 cle; /* address line number connected to CLE */ 121 u8 cle; /* address line number connected to CLE */
121 u8 bus_width_16; /* buswidth is 16 bit */ 122 u8 bus_width_16; /* buswidth is 16 bit */
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index a949c4fbbddd..0c1f86e3e44a 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -169,26 +169,51 @@ config BF542
169 help 169 help
170 BF542 Processor Support. 170 BF542 Processor Support.
171 171
172config BF542M
173 bool "BF542m"
174 help
175 BF542 Processor Support.
176
172config BF544 177config BF544
173 bool "BF544" 178 bool "BF544"
174 help 179 help
175 BF544 Processor Support. 180 BF544 Processor Support.
176 181
182config BF544M
183 bool "BF544m"
184 help
185 BF544 Processor Support.
186
177config BF547 187config BF547
178 bool "BF547" 188 bool "BF547"
179 help 189 help
180 BF547 Processor Support. 190 BF547 Processor Support.
181 191
192config BF547M
193 bool "BF547m"
194 help
195 BF547 Processor Support.
196
182config BF548 197config BF548
183 bool "BF548" 198 bool "BF548"
184 help 199 help
185 BF548 Processor Support. 200 BF548 Processor Support.
186 201
202config BF548M
203 bool "BF548m"
204 help
205 BF548 Processor Support.
206
187config BF549 207config BF549
188 bool "BF549" 208 bool "BF549"
189 help 209 help
190 BF549 Processor Support. 210 BF549 Processor Support.
191 211
212config BF549M
213 bool "BF549m"
214 help
215 BF549 Processor Support.
216
192config BF561 217config BF561
193 bool "BF561" 218 bool "BF561"
194 help 219 help
@@ -224,39 +249,39 @@ config TICK_SOURCE_SYSTMR0
224 249
225config BF_REV_MIN 250config BF_REV_MIN
226 int 251 int
227 default 0 if (BF51x || BF52x || BF54x) 252 default 0 if (BF51x || BF52x || (BF54x && !BF54xM))
228 default 2 if (BF537 || BF536 || BF534) 253 default 2 if (BF537 || BF536 || BF534)
229 default 3 if (BF561 ||BF533 || BF532 || BF531) 254 default 3 if (BF561 || BF533 || BF532 || BF531 || BF54xM)
230 default 4 if (BF538 || BF539) 255 default 4 if (BF538 || BF539)
231 256
232config BF_REV_MAX 257config BF_REV_MAX
233 int 258 int
234 default 2 if (BF51x || BF52x || BF54x) 259 default 2 if (BF51x || BF52x || (BF54x && !BF54xM))
235 default 3 if (BF537 || BF536 || BF534) 260 default 3 if (BF537 || BF536 || BF534 || BF54xM)
236 default 5 if (BF561 || BF538 || BF539) 261 default 5 if (BF561 || BF538 || BF539)
237 default 6 if (BF533 || BF532 || BF531) 262 default 6 if (BF533 || BF532 || BF531)
238 263
239choice 264choice
240 prompt "Silicon Rev" 265 prompt "Silicon Rev"
241 default BF_REV_0_1 if (BF51x || BF52x || BF54x) 266 default BF_REV_0_1 if (BF51x || BF52x || (BF54x && !BF54xM))
242 default BF_REV_0_2 if (BF534 || BF536 || BF537) 267 default BF_REV_0_2 if (BF534 || BF536 || BF537)
243 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF561) 268 default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF54xM || BF561)
244 269
245config BF_REV_0_0 270config BF_REV_0_0
246 bool "0.0" 271 bool "0.0"
247 depends on (BF51x || BF52x || BF54x) 272 depends on (BF51x || BF52x || (BF54x && !BF54xM))
248 273
249config BF_REV_0_1 274config BF_REV_0_1
250 bool "0.1" 275 bool "0.1"
251 depends on (BF52x || BF54x) 276 depends on (BF52x || (BF54x && !BF54xM))
252 277
253config BF_REV_0_2 278config BF_REV_0_2
254 bool "0.2" 279 bool "0.2"
255 depends on (BF52x || BF537 || BF536 || BF534 || BF54x) 280 depends on (BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
256 281
257config BF_REV_0_3 282config BF_REV_0_3
258 bool "0.3" 283 bool "0.3"
259 depends on (BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531) 284 depends on (BF54xM || BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
260 285
261config BF_REV_0_4 286config BF_REV_0_4
262 bool "0.4" 287 bool "0.4"
@@ -293,9 +318,14 @@ config BF53x
293 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537) 318 depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
294 default y 319 default y
295 320
321config BF54xM
322 bool
323 depends on (BF542M || BF544M || BF547M || BF548M || BF549M)
324 default y
325
296config BF54x 326config BF54x
297 bool 327 bool
298 depends on (BF542 || BF544 || BF547 || BF548 || BF549) 328 depends on (BF542 || BF544 || BF547 || BF548 || BF549 || BF54xM)
299 default y 329 default y
300 330
301config MEM_GENERIC_BOARD 331config MEM_GENERIC_BOARD
@@ -1099,6 +1129,7 @@ endchoice
1099 1129
1100config PM_WAKEUP_BY_GPIO 1130config PM_WAKEUP_BY_GPIO
1101 bool "Allow Wakeup from Standby by GPIO" 1131 bool "Allow Wakeup from Standby by GPIO"
1132 depends on PM && !BF54x
1102 1133
1103config PM_WAKEUP_GPIO_NUMBER 1134config PM_WAKEUP_GPIO_NUMBER
1104 int "GPIO number" 1135 int "GPIO number"
@@ -1138,6 +1169,12 @@ config PM_BFIN_WAKE_GP
1138 default n 1169 default n
1139 help 1170 help
1140 Enable General-Purpose Wake-Up (Voltage Regulator Power-Up) 1171 Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
1172 (all processors, except ADSP-BF549). This option sets
1173 the general-purpose wake-up enable (GPWE) control bit to enable
1174 wake-up upon detection of an active low signal on the /GPW (PH7) pin.
1175 On ADSP-BF549 this option enables the the same functionality on the
1176 /MRXON pin also PH7.
1177
1141endmenu 1178endmenu
1142 1179
1143menu "CPU Frequency scaling" 1180menu "CPU Frequency scaling"
diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
index 5f981d9ca625..79e7e63ab709 100644
--- a/arch/blackfin/Kconfig.debug
+++ b/arch/blackfin/Kconfig.debug
@@ -21,12 +21,6 @@ config DEBUG_STACK_USAGE
21config HAVE_ARCH_KGDB 21config HAVE_ARCH_KGDB
22 def_bool y 22 def_bool y
23 23
24config KGDB_TESTCASE
25 tristate "KGDB: for test case in expect"
26 default n
27 help
28 This is a kgdb test case for automated testing.
29
30config DEBUG_VERBOSE 24config DEBUG_VERBOSE
31 bool "Verbose fault messages" 25 bool "Verbose fault messages"
32 default y 26 default y
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index e550c8d46066..d54c8283825c 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -21,57 +21,67 @@ KALLSYMS += --symbol-prefix=_
21KBUILD_DEFCONFIG := BF537-STAMP_defconfig 21KBUILD_DEFCONFIG := BF537-STAMP_defconfig
22 22
23# setup the machine name and the machine dependent settings 23# setup the machine name and the machine dependent settings
24machine-$(CONFIG_BF512) := bf518 24machine-$(CONFIG_BF512) := bf518
25machine-$(CONFIG_BF514) := bf518 25machine-$(CONFIG_BF514) := bf518
26machine-$(CONFIG_BF516) := bf518 26machine-$(CONFIG_BF516) := bf518
27machine-$(CONFIG_BF518) := bf518 27machine-$(CONFIG_BF518) := bf518
28machine-$(CONFIG_BF522) := bf527 28machine-$(CONFIG_BF522) := bf527
29machine-$(CONFIG_BF523) := bf527 29machine-$(CONFIG_BF523) := bf527
30machine-$(CONFIG_BF524) := bf527 30machine-$(CONFIG_BF524) := bf527
31machine-$(CONFIG_BF525) := bf527 31machine-$(CONFIG_BF525) := bf527
32machine-$(CONFIG_BF526) := bf527 32machine-$(CONFIG_BF526) := bf527
33machine-$(CONFIG_BF527) := bf527 33machine-$(CONFIG_BF527) := bf527
34machine-$(CONFIG_BF531) := bf533 34machine-$(CONFIG_BF531) := bf533
35machine-$(CONFIG_BF532) := bf533 35machine-$(CONFIG_BF532) := bf533
36machine-$(CONFIG_BF533) := bf533 36machine-$(CONFIG_BF533) := bf533
37machine-$(CONFIG_BF534) := bf537 37machine-$(CONFIG_BF534) := bf537
38machine-$(CONFIG_BF536) := bf537 38machine-$(CONFIG_BF536) := bf537
39machine-$(CONFIG_BF537) := bf537 39machine-$(CONFIG_BF537) := bf537
40machine-$(CONFIG_BF538) := bf538 40machine-$(CONFIG_BF538) := bf538
41machine-$(CONFIG_BF539) := bf538 41machine-$(CONFIG_BF539) := bf538
42machine-$(CONFIG_BF542) := bf548 42machine-$(CONFIG_BF542) := bf548
43machine-$(CONFIG_BF544) := bf548 43machine-$(CONFIG_BF542M) := bf548
44machine-$(CONFIG_BF547) := bf548 44machine-$(CONFIG_BF544) := bf548
45machine-$(CONFIG_BF548) := bf548 45machine-$(CONFIG_BF544M) := bf548
46machine-$(CONFIG_BF549) := bf548 46machine-$(CONFIG_BF547) := bf548
47machine-$(CONFIG_BF561) := bf561 47machine-$(CONFIG_BF547M) := bf548
48machine-$(CONFIG_BF548) := bf548
49machine-$(CONFIG_BF548M) := bf548
50machine-$(CONFIG_BF549) := bf548
51machine-$(CONFIG_BF549M) := bf548
52machine-$(CONFIG_BF561) := bf561
48MACHINE := $(machine-y) 53MACHINE := $(machine-y)
49export MACHINE 54export MACHINE
50 55
51cpu-$(CONFIG_BF512) := bf512 56cpu-$(CONFIG_BF512) := bf512
52cpu-$(CONFIG_BF514) := bf514 57cpu-$(CONFIG_BF514) := bf514
53cpu-$(CONFIG_BF516) := bf516 58cpu-$(CONFIG_BF516) := bf516
54cpu-$(CONFIG_BF518) := bf518 59cpu-$(CONFIG_BF518) := bf518
55cpu-$(CONFIG_BF522) := bf522 60cpu-$(CONFIG_BF522) := bf522
56cpu-$(CONFIG_BF523) := bf523 61cpu-$(CONFIG_BF523) := bf523
57cpu-$(CONFIG_BF524) := bf524 62cpu-$(CONFIG_BF524) := bf524
58cpu-$(CONFIG_BF525) := bf525 63cpu-$(CONFIG_BF525) := bf525
59cpu-$(CONFIG_BF526) := bf526 64cpu-$(CONFIG_BF526) := bf526
60cpu-$(CONFIG_BF527) := bf527 65cpu-$(CONFIG_BF527) := bf527
61cpu-$(CONFIG_BF531) := bf531 66cpu-$(CONFIG_BF531) := bf531
62cpu-$(CONFIG_BF532) := bf532 67cpu-$(CONFIG_BF532) := bf532
63cpu-$(CONFIG_BF533) := bf533 68cpu-$(CONFIG_BF533) := bf533
64cpu-$(CONFIG_BF534) := bf534 69cpu-$(CONFIG_BF534) := bf534
65cpu-$(CONFIG_BF536) := bf536 70cpu-$(CONFIG_BF536) := bf536
66cpu-$(CONFIG_BF537) := bf537 71cpu-$(CONFIG_BF537) := bf537
67cpu-$(CONFIG_BF538) := bf538 72cpu-$(CONFIG_BF538) := bf538
68cpu-$(CONFIG_BF539) := bf539 73cpu-$(CONFIG_BF539) := bf539
69cpu-$(CONFIG_BF542) := bf542 74cpu-$(CONFIG_BF542) := bf542
70cpu-$(CONFIG_BF544) := bf544 75cpu-$(CONFIG_BF542M) := bf542m
71cpu-$(CONFIG_BF547) := bf547 76cpu-$(CONFIG_BF544) := bf544
72cpu-$(CONFIG_BF548) := bf548 77cpu-$(CONFIG_BF544M) := bf544m
73cpu-$(CONFIG_BF549) := bf549 78cpu-$(CONFIG_BF547) := bf547
74cpu-$(CONFIG_BF561) := bf561 79cpu-$(CONFIG_BF547M) := bf547m
80cpu-$(CONFIG_BF548) := bf548
81cpu-$(CONFIG_BF548M) := bf548m
82cpu-$(CONFIG_BF549) := bf549
83cpu-$(CONFIG_BF549M) := bf549m
84cpu-$(CONFIG_BF561) := bf561
75 85
76rev-$(CONFIG_BF_REV_0_0) := 0.0 86rev-$(CONFIG_BF_REV_0_0) := 0.0
77rev-$(CONFIG_BF_REV_0_1) := 0.1 87rev-$(CONFIG_BF_REV_0_1) := 0.1
diff --git a/arch/blackfin/configs/BF518F-EZBRD_defconfig b/arch/blackfin/configs/BF518F-EZBRD_defconfig
index e0b3f242b555..281f4b60e603 100644
--- a/arch/blackfin/configs/BF518F-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF518F-EZBRD_defconfig
@@ -1,6 +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.28-rc2 3# Linux kernel version: 2.6.28
4# Fri Feb 20 10:01:44 2009
4# 5#
5# CONFIG_MMU is not set 6# CONFIG_MMU is not set
6# CONFIG_FPU is not set 7# CONFIG_FPU is not set
@@ -132,10 +133,15 @@ CONFIG_BF518=y
132# CONFIG_BF538 is not set 133# CONFIG_BF538 is not set
133# CONFIG_BF539 is not set 134# CONFIG_BF539 is not set
134# CONFIG_BF542 is not set 135# CONFIG_BF542 is not set
136# CONFIG_BF542M is not set
135# CONFIG_BF544 is not set 137# CONFIG_BF544 is not set
138# CONFIG_BF544M is not set
136# CONFIG_BF547 is not set 139# CONFIG_BF547 is not set
140# CONFIG_BF547M is not set
137# CONFIG_BF548 is not set 141# CONFIG_BF548 is not set
142# CONFIG_BF548M is not set
138# CONFIG_BF549 is not set 143# CONFIG_BF549 is not set
144# CONFIG_BF549M is not set
139# CONFIG_BF561 is not set 145# CONFIG_BF561 is not set
140CONFIG_BF_REV_MIN=0 146CONFIG_BF_REV_MIN=0
141CONFIG_BF_REV_MAX=2 147CONFIG_BF_REV_MAX=2
@@ -149,6 +155,7 @@ CONFIG_BF_REV_0_0=y
149# CONFIG_BF_REV_ANY is not set 155# CONFIG_BF_REV_ANY is not set
150# CONFIG_BF_REV_NONE is not set 156# CONFIG_BF_REV_NONE is not set
151CONFIG_BF51x=y 157CONFIG_BF51x=y
158CONFIG_MEM_MT48LC32M8A2_75=y
152CONFIG_BFIN518F_EZBRD=y 159CONFIG_BFIN518F_EZBRD=y
153 160
154# 161#
@@ -424,7 +431,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
424# CONFIG_TIPC is not set 431# CONFIG_TIPC is not set
425# CONFIG_ATM is not set 432# CONFIG_ATM is not set
426# CONFIG_BRIDGE is not set 433# CONFIG_BRIDGE is not set
427# CONFIG_NET_DSA is not set 434CONFIG_NET_DSA=y
435# CONFIG_NET_DSA_TAG_DSA is not set
436# CONFIG_NET_DSA_TAG_EDSA is not set
437# CONFIG_NET_DSA_TAG_TRAILER is not set
438CONFIG_NET_DSA_TAG_STPID=y
439# CONFIG_NET_DSA_MV88E6XXX is not set
440# CONFIG_NET_DSA_MV88E6060 is not set
441# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
442# CONFIG_NET_DSA_MV88E6131 is not set
443# CONFIG_NET_DSA_MV88E6123_61_65 is not set
444CONFIG_NET_DSA_KSZ8893M=y
428# CONFIG_VLAN_8021Q is not set 445# CONFIG_VLAN_8021Q is not set
429# CONFIG_DECNET is not set 446# CONFIG_DECNET is not set
430# CONFIG_LLC2 is not set 447# CONFIG_LLC2 is not set
@@ -527,6 +544,8 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
527# 544#
528# Self-contained MTD device drivers 545# Self-contained MTD device drivers
529# 546#
547# CONFIG_MTD_DATAFLASH is not set
548# CONFIG_MTD_M25P80 is not set
530# CONFIG_MTD_SLRAM is not set 549# CONFIG_MTD_SLRAM is not set
531# CONFIG_MTD_PHRAM is not set 550# CONFIG_MTD_PHRAM is not set
532# CONFIG_MTD_MTDRAM is not set 551# CONFIG_MTD_MTDRAM is not set
@@ -559,7 +578,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
559# CONFIG_BLK_DEV_HD is not set 578# CONFIG_BLK_DEV_HD is not set
560CONFIG_MISC_DEVICES=y 579CONFIG_MISC_DEVICES=y
561# CONFIG_EEPROM_93CX6 is not set 580# CONFIG_EEPROM_93CX6 is not set
581# CONFIG_ICS932S401 is not set
562# CONFIG_ENCLOSURE_SERVICES is not set 582# CONFIG_ENCLOSURE_SERVICES is not set
583# CONFIG_C2PORT is not set
563CONFIG_HAVE_IDE=y 584CONFIG_HAVE_IDE=y
564# CONFIG_IDE is not set 585# CONFIG_IDE is not set
565 586
@@ -598,10 +619,14 @@ CONFIG_PHYLIB=y
598# CONFIG_MDIO_BITBANG is not set 619# CONFIG_MDIO_BITBANG is not set
599CONFIG_NET_ETHERNET=y 620CONFIG_NET_ETHERNET=y
600CONFIG_MII=y 621CONFIG_MII=y
601# CONFIG_BFIN_MAC is not set 622CONFIG_BFIN_MAC=y
623CONFIG_BFIN_TX_DESC_NUM=10
624CONFIG_BFIN_RX_DESC_NUM=20
625# CONFIG_BFIN_MAC_RMII is not set
602# CONFIG_SMC91X is not set 626# CONFIG_SMC91X is not set
603# CONFIG_SMSC911X is not set 627# CONFIG_SMSC911X is not set
604# CONFIG_DM9000 is not set 628# CONFIG_DM9000 is not set
629# CONFIG_ENC28J60 is not set
605# CONFIG_IBM_NEW_EMAC_ZMII is not set 630# CONFIG_IBM_NEW_EMAC_ZMII is not set
606# CONFIG_IBM_NEW_EMAC_RGMII is not set 631# CONFIG_IBM_NEW_EMAC_RGMII is not set
607# CONFIG_IBM_NEW_EMAC_TAH is not set 632# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -679,7 +704,7 @@ CONFIG_VT_CONSOLE=y
679CONFIG_HW_CONSOLE=y 704CONFIG_HW_CONSOLE=y
680# CONFIG_VT_HW_CONSOLE_BINDING is not set 705# CONFIG_VT_HW_CONSOLE_BINDING is not set
681# CONFIG_DEVKMEM is not set 706# CONFIG_DEVKMEM is not set
682# CONFIG_BFIN_JTAG_COMM is not set 707CONFIG_BFIN_JTAG_COMM=m
683# CONFIG_SERIAL_NONSTANDARD is not set 708# CONFIG_SERIAL_NONSTANDARD is not set
684 709
685# 710#
@@ -746,9 +771,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
746# Miscellaneous I2C Chip support 771# Miscellaneous I2C Chip support
747# 772#
748# CONFIG_DS1682 is not set 773# CONFIG_DS1682 is not set
749# CONFIG_AT24 is not set 774# CONFIG_EEPROM_AT24 is not set
750# CONFIG_SENSORS_AD5252 is not set 775# CONFIG_SENSORS_AD5252 is not set
751# CONFIG_SENSORS_EEPROM is not set 776# CONFIG_EEPROM_LEGACY is not set
752# CONFIG_SENSORS_PCF8574 is not set 777# CONFIG_SENSORS_PCF8574 is not set
753# CONFIG_PCF8575 is not set 778# CONFIG_PCF8575 is not set
754# CONFIG_SENSORS_PCA9539 is not set 779# CONFIG_SENSORS_PCA9539 is not set
@@ -759,7 +784,23 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
759# CONFIG_I2C_DEBUG_ALGO is not set 784# CONFIG_I2C_DEBUG_ALGO is not set
760# CONFIG_I2C_DEBUG_BUS is not set 785# CONFIG_I2C_DEBUG_BUS is not set
761# CONFIG_I2C_DEBUG_CHIP is not set 786# CONFIG_I2C_DEBUG_CHIP is not set
762# CONFIG_SPI is not set 787CONFIG_SPI=y
788# CONFIG_SPI_DEBUG is not set
789CONFIG_SPI_MASTER=y
790
791#
792# SPI Master Controller Drivers
793#
794CONFIG_SPI_BFIN=y
795# CONFIG_SPI_BFIN_LOCK is not set
796# CONFIG_SPI_BITBANG is not set
797
798#
799# SPI Protocol Masters
800#
801# CONFIG_SPI_AT25 is not set
802# CONFIG_SPI_SPIDEV is not set
803# CONFIG_SPI_TLE62X0 is not set
763CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 804CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
764# CONFIG_GPIOLIB is not set 805# CONFIG_GPIOLIB is not set
765# CONFIG_W1 is not set 806# CONFIG_W1 is not set
@@ -783,8 +824,10 @@ CONFIG_BFIN_WDT=y
783# CONFIG_MFD_SM501 is not set 824# CONFIG_MFD_SM501 is not set
784# CONFIG_HTC_PASIC3 is not set 825# CONFIG_HTC_PASIC3 is not set
785# CONFIG_MFD_TMIO is not set 826# CONFIG_MFD_TMIO is not set
827# CONFIG_PMIC_DA903X is not set
786# CONFIG_MFD_WM8400 is not set 828# CONFIG_MFD_WM8400 is not set
787# CONFIG_MFD_WM8350_I2C is not set 829# CONFIG_MFD_WM8350_I2C is not set
830# CONFIG_REGULATOR is not set
788 831
789# 832#
790# Multimedia devices 833# Multimedia devices
@@ -856,10 +899,18 @@ CONFIG_RTC_INTF_DEV=y
856# CONFIG_RTC_DRV_M41T80 is not set 899# CONFIG_RTC_DRV_M41T80 is not set
857# CONFIG_RTC_DRV_S35390A is not set 900# CONFIG_RTC_DRV_S35390A is not set
858# CONFIG_RTC_DRV_FM3130 is not set 901# CONFIG_RTC_DRV_FM3130 is not set
902# CONFIG_RTC_DRV_RX8581 is not set
859 903
860# 904#
861# SPI RTC drivers 905# SPI RTC drivers
862# 906#
907# CONFIG_RTC_DRV_M41T94 is not set
908# CONFIG_RTC_DRV_DS1305 is not set
909# CONFIG_RTC_DRV_DS1390 is not set
910# CONFIG_RTC_DRV_MAX6902 is not set
911# CONFIG_RTC_DRV_R9701 is not set
912# CONFIG_RTC_DRV_RS5C348 is not set
913# CONFIG_RTC_DRV_DS3234 is not set
863 914
864# 915#
865# Platform RTC drivers 916# Platform RTC drivers
@@ -1057,12 +1108,20 @@ CONFIG_DEBUG_INFO=y
1057# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1108# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1058# CONFIG_FAULT_INJECTION is not set 1109# CONFIG_FAULT_INJECTION is not set
1059CONFIG_SYSCTL_SYSCALL_CHECK=y 1110CONFIG_SYSCTL_SYSCALL_CHECK=y
1111
1112#
1113# Tracers
1114#
1115# CONFIG_SCHED_TRACER is not set
1116# CONFIG_CONTEXT_SWITCH_TRACER is not set
1117# CONFIG_BOOT_TRACER is not set
1060# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1118# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1061# CONFIG_SAMPLES is not set 1119# CONFIG_SAMPLES is not set
1062CONFIG_HAVE_ARCH_KGDB=y 1120CONFIG_HAVE_ARCH_KGDB=y
1063# CONFIG_KGDB is not set 1121# CONFIG_KGDB is not set
1064# CONFIG_DEBUG_STACKOVERFLOW is not set 1122# CONFIG_DEBUG_STACKOVERFLOW is not set
1065# CONFIG_DEBUG_STACK_USAGE is not set 1123# CONFIG_DEBUG_STACK_USAGE is not set
1124# CONFIG_KGDB_TESTCASE is not set
1066CONFIG_DEBUG_VERBOSE=y 1125CONFIG_DEBUG_VERBOSE=y
1067CONFIG_DEBUG_MMRS=y 1126CONFIG_DEBUG_MMRS=y
1068# CONFIG_DEBUG_HWERR is not set 1127# CONFIG_DEBUG_HWERR is not set
@@ -1095,6 +1154,7 @@ CONFIG_CRYPTO=y
1095# 1154#
1096# CONFIG_CRYPTO_FIPS is not set 1155# CONFIG_CRYPTO_FIPS is not set
1097# CONFIG_CRYPTO_MANAGER is not set 1156# CONFIG_CRYPTO_MANAGER is not set
1157# CONFIG_CRYPTO_MANAGER2 is not set
1098# CONFIG_CRYPTO_GF128MUL is not set 1158# CONFIG_CRYPTO_GF128MUL is not set
1099# CONFIG_CRYPTO_NULL is not set 1159# CONFIG_CRYPTO_NULL is not set
1100# CONFIG_CRYPTO_CRYPTD is not set 1160# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/blackfin/configs/BF526-EZBRD_defconfig b/arch/blackfin/configs/BF526-EZBRD_defconfig
index 69f66c35b2a5..8e2b855b8db7 100644
--- a/arch/blackfin/configs/BF526-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF526-EZBRD_defconfig
@@ -723,7 +723,7 @@ CONFIG_VT_CONSOLE=y
723CONFIG_HW_CONSOLE=y 723CONFIG_HW_CONSOLE=y
724# CONFIG_VT_HW_CONSOLE_BINDING is not set 724# CONFIG_VT_HW_CONSOLE_BINDING is not set
725# CONFIG_DEVKMEM is not set 725# CONFIG_DEVKMEM is not set
726# CONFIG_BFIN_JTAG_COMM is not set 726CONFIG_BFIN_JTAG_COMM=m
727# CONFIG_SERIAL_NONSTANDARD is not set 727# CONFIG_SERIAL_NONSTANDARD is not set
728 728
729# 729#
@@ -793,9 +793,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
793# Miscellaneous I2C Chip support 793# Miscellaneous I2C Chip support
794# 794#
795# CONFIG_DS1682 is not set 795# CONFIG_DS1682 is not set
796# CONFIG_AT24 is not set 796# CONFIG_EEPROM_AT24 is not set
797# CONFIG_SENSORS_AD5252 is not set 797# CONFIG_SENSORS_AD5252 is not set
798# CONFIG_SENSORS_EEPROM is not set 798# CONFIG_EEPROM_LEGACY is not set
799# CONFIG_SENSORS_PCF8574 is not set 799# CONFIG_SENSORS_PCF8574 is not set
800# CONFIG_PCF8575 is not set 800# CONFIG_PCF8575 is not set
801# CONFIG_SENSORS_PCA9539 is not set 801# CONFIG_SENSORS_PCA9539 is not set
@@ -820,7 +820,7 @@ CONFIG_SPI_BFIN=y
820# 820#
821# SPI Protocol Masters 821# SPI Protocol Masters
822# 822#
823# CONFIG_SPI_AT25 is not set 823# CONFIG_EEPROM_AT25 is not set
824# CONFIG_SPI_SPIDEV is not set 824# CONFIG_SPI_SPIDEV is not set
825# CONFIG_SPI_TLE62X0 is not set 825# CONFIG_SPI_TLE62X0 is not set
826CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 826CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index f92668af00b0..a50050f17706 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -327,8 +327,8 @@ CONFIG_BFIN_ICACHE=y
327CONFIG_BFIN_DCACHE=y 327CONFIG_BFIN_DCACHE=y
328# CONFIG_BFIN_DCACHE_BANKA is not set 328# CONFIG_BFIN_DCACHE_BANKA is not set
329# CONFIG_BFIN_ICACHE_LOCK is not set 329# CONFIG_BFIN_ICACHE_LOCK is not set
330# CONFIG_BFIN_WB is not set 330CONFIG_BFIN_WB=y
331CONFIG_BFIN_WT=y 331# CONFIG_BFIN_WT is not set
332# CONFIG_MPU is not set 332# CONFIG_MPU is not set
333 333
334# 334#
@@ -767,7 +767,7 @@ CONFIG_VT_CONSOLE=y
767CONFIG_HW_CONSOLE=y 767CONFIG_HW_CONSOLE=y
768# CONFIG_VT_HW_CONSOLE_BINDING is not set 768# CONFIG_VT_HW_CONSOLE_BINDING is not set
769# CONFIG_DEVKMEM is not set 769# CONFIG_DEVKMEM is not set
770# CONFIG_BFIN_JTAG_COMM is not set 770CONFIG_BFIN_JTAG_COMM=m
771# CONFIG_SERIAL_NONSTANDARD is not set 771# CONFIG_SERIAL_NONSTANDARD is not set
772 772
773# 773#
@@ -837,9 +837,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
837# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
838# 838#
839# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
840# CONFIG_AT24 is not set 840# CONFIG_EEPROM_AT24 is not set
841# CONFIG_SENSORS_AD5252 is not set 841# CONFIG_SENSORS_AD5252 is not set
842# CONFIG_SENSORS_EEPROM is not set 842# CONFIG_EEPROM_LEGACY is not set
843# CONFIG_SENSORS_PCF8574 is not set 843# CONFIG_SENSORS_PCF8574 is not set
844# CONFIG_PCF8575 is not set 844# CONFIG_PCF8575 is not set
845# CONFIG_SENSORS_PCA9539 is not set 845# CONFIG_SENSORS_PCA9539 is not set
@@ -864,7 +864,7 @@ CONFIG_SPI_BFIN=y
864# 864#
865# SPI Protocol Masters 865# SPI Protocol Masters
866# 866#
867# CONFIG_SPI_AT25 is not set 867# CONFIG_EEPROM_AT25 is not set
868# CONFIG_SPI_SPIDEV is not set 868# CONFIG_SPI_SPIDEV is not set
869# CONFIG_SPI_TLE62X0 is not set 869# CONFIG_SPI_TLE62X0 is not set
870CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 870CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index 92afd988449b..0a2a00d63887 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -290,8 +290,8 @@ CONFIG_BFIN_ICACHE=y
290CONFIG_BFIN_DCACHE=y 290CONFIG_BFIN_DCACHE=y
291# CONFIG_BFIN_DCACHE_BANKA is not set 291# CONFIG_BFIN_DCACHE_BANKA is not set
292# CONFIG_BFIN_ICACHE_LOCK is not set 292# CONFIG_BFIN_ICACHE_LOCK is not set
293# CONFIG_BFIN_WB is not set 293CONFIG_BFIN_WB=y
294CONFIG_BFIN_WT=y 294# CONFIG_BFIN_WT is not set
295# CONFIG_MPU is not set 295# CONFIG_MPU is not set
296 296
297# 297#
@@ -672,7 +672,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
672CONFIG_SIMPLE_GPIO=m 672CONFIG_SIMPLE_GPIO=m
673# CONFIG_VT is not set 673# CONFIG_VT is not set
674# CONFIG_DEVKMEM is not set 674# CONFIG_DEVKMEM is not set
675# CONFIG_BFIN_JTAG_COMM is not set 675CONFIG_BFIN_JTAG_COMM=m
676# CONFIG_SERIAL_NONSTANDARD is not set 676# CONFIG_SERIAL_NONSTANDARD is not set
677 677
678# 678#
@@ -719,7 +719,7 @@ CONFIG_SPI_BFIN=y
719# 719#
720# SPI Protocol Masters 720# SPI Protocol Masters
721# 721#
722# CONFIG_SPI_AT25 is not set 722# CONFIG_EEPROM_AT25 is not set
723# CONFIG_SPI_SPIDEV is not set 723# CONFIG_SPI_SPIDEV is not set
724# CONFIG_SPI_TLE62X0 is not set 724# CONFIG_SPI_TLE62X0 is not set
725CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 725CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index 49eabb41e9e5..eb027587a355 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -290,8 +290,8 @@ CONFIG_BFIN_ICACHE=y
290CONFIG_BFIN_DCACHE=y 290CONFIG_BFIN_DCACHE=y
291# CONFIG_BFIN_DCACHE_BANKA is not set 291# CONFIG_BFIN_DCACHE_BANKA is not set
292# CONFIG_BFIN_ICACHE_LOCK is not set 292# CONFIG_BFIN_ICACHE_LOCK is not set
293# CONFIG_BFIN_WB is not set 293CONFIG_BFIN_WB=y
294CONFIG_BFIN_WT=y 294# CONFIG_BFIN_WT is not set
295# CONFIG_MPU is not set 295# CONFIG_MPU is not set
296 296
297# 297#
@@ -679,7 +679,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
679CONFIG_SIMPLE_GPIO=m 679CONFIG_SIMPLE_GPIO=m
680# CONFIG_VT is not set 680# CONFIG_VT is not set
681# CONFIG_DEVKMEM is not set 681# CONFIG_DEVKMEM is not set
682# CONFIG_BFIN_JTAG_COMM is not set 682CONFIG_BFIN_JTAG_COMM=m
683# CONFIG_SERIAL_NONSTANDARD is not set 683# CONFIG_SERIAL_NONSTANDARD is not set
684 684
685# 685#
@@ -743,9 +743,9 @@ CONFIG_I2C_HELPER_AUTO=y
743# Miscellaneous I2C Chip support 743# Miscellaneous I2C Chip support
744# 744#
745# CONFIG_DS1682 is not set 745# CONFIG_DS1682 is not set
746# CONFIG_AT24 is not set 746# CONFIG_EEPROM_AT24 is not set
747# CONFIG_SENSORS_AD5252 is not set 747# CONFIG_SENSORS_AD5252 is not set
748# CONFIG_SENSORS_EEPROM is not set 748# CONFIG_EEPROM_LEGACY is not set
749# CONFIG_SENSORS_PCF8574 is not set 749# CONFIG_SENSORS_PCF8574 is not set
750# CONFIG_PCF8575 is not set 750# CONFIG_PCF8575 is not set
751# CONFIG_SENSORS_PCA9539 is not set 751# CONFIG_SENSORS_PCA9539 is not set
@@ -770,7 +770,7 @@ CONFIG_SPI_BFIN=y
770# 770#
771# SPI Protocol Masters 771# SPI Protocol Masters
772# 772#
773# CONFIG_SPI_AT25 is not set 773# CONFIG_EEPROM_AT25 is not set
774# CONFIG_SPI_SPIDEV is not set 774# CONFIG_SPI_SPIDEV is not set
775# CONFIG_SPI_TLE62X0 is not set 775# CONFIG_SPI_TLE62X0 is not set
776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index 332142f7f9b4..9e62b9f40eb1 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -298,8 +298,8 @@ CONFIG_BFIN_ICACHE=y
298CONFIG_BFIN_DCACHE=y 298CONFIG_BFIN_DCACHE=y
299# CONFIG_BFIN_DCACHE_BANKA is not set 299# CONFIG_BFIN_DCACHE_BANKA is not set
300# CONFIG_BFIN_ICACHE_LOCK is not set 300# CONFIG_BFIN_ICACHE_LOCK is not set
301# CONFIG_BFIN_WB is not set 301CONFIG_BFIN_WB=y
302CONFIG_BFIN_WT=y 302# CONFIG_BFIN_WT is not set
303# CONFIG_MPU is not set 303# CONFIG_MPU is not set
304 304
305# 305#
@@ -568,15 +568,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
568# CONFIG_MTD_DOC2000 is not set 568# CONFIG_MTD_DOC2000 is not set
569# CONFIG_MTD_DOC2001 is not set 569# CONFIG_MTD_DOC2001 is not set
570# CONFIG_MTD_DOC2001PLUS is not set 570# CONFIG_MTD_DOC2001PLUS is not set
571CONFIG_MTD_NAND=m 571# CONFIG_MTD_NAND is not set
572# CONFIG_MTD_NAND_VERIFY_WRITE is not set
573# CONFIG_MTD_NAND_ECC_SMC is not set
574# CONFIG_MTD_NAND_MUSEUM_IDS is not set
575# CONFIG_MTD_NAND_BFIN is not set
576CONFIG_MTD_NAND_IDS=m
577# CONFIG_MTD_NAND_DISKONCHIP is not set
578# CONFIG_MTD_NAND_NANDSIM is not set
579CONFIG_MTD_NAND_PLATFORM=m
580# CONFIG_MTD_ONENAND is not set 572# CONFIG_MTD_ONENAND is not set
581 573
582# 574#
@@ -722,7 +714,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
722CONFIG_SIMPLE_GPIO=m 714CONFIG_SIMPLE_GPIO=m
723# CONFIG_VT is not set 715# CONFIG_VT is not set
724# CONFIG_DEVKMEM is not set 716# CONFIG_DEVKMEM is not set
725# CONFIG_BFIN_JTAG_COMM is not set 717CONFIG_BFIN_JTAG_COMM=m
726# CONFIG_SERIAL_NONSTANDARD is not set 718# CONFIG_SERIAL_NONSTANDARD is not set
727 719
728# 720#
@@ -794,9 +786,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
794# Miscellaneous I2C Chip support 786# Miscellaneous I2C Chip support
795# 787#
796# CONFIG_DS1682 is not set 788# CONFIG_DS1682 is not set
797# CONFIG_AT24 is not set 789# CONFIG_EEPROM_AT24 is not set
798CONFIG_SENSORS_AD5252=m 790CONFIG_SENSORS_AD5252=m
799# CONFIG_SENSORS_EEPROM is not set 791# CONFIG_EEPROM_LEGACY is not set
800# CONFIG_SENSORS_PCF8574 is not set 792# CONFIG_SENSORS_PCF8574 is not set
801# CONFIG_PCF8575 is not set 793# CONFIG_PCF8575 is not set
802# CONFIG_SENSORS_PCA9539 is not set 794# CONFIG_SENSORS_PCA9539 is not set
@@ -821,7 +813,7 @@ CONFIG_SPI_BFIN=y
821# 813#
822# SPI Protocol Masters 814# SPI Protocol Masters
823# 815#
824# CONFIG_SPI_AT25 is not set 816# CONFIG_EEPROM_AT25 is not set
825# CONFIG_SPI_SPIDEV is not set 817# CONFIG_SPI_SPIDEV is not set
826# CONFIG_SPI_TLE62X0 is not set 818# CONFIG_SPI_TLE62X0 is not set
827CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 819CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF538-EZKIT_defconfig b/arch/blackfin/configs/BF538-EZKIT_defconfig
index ed15934c67c2..dd6ad6be1c87 100644
--- a/arch/blackfin/configs/BF538-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF538-EZKIT_defconfig
@@ -306,8 +306,8 @@ CONFIG_BFIN_ICACHE=y
306CONFIG_BFIN_DCACHE=y 306CONFIG_BFIN_DCACHE=y
307# CONFIG_BFIN_DCACHE_BANKA is not set 307# CONFIG_BFIN_DCACHE_BANKA is not set
308# CONFIG_BFIN_ICACHE_LOCK is not set 308# CONFIG_BFIN_ICACHE_LOCK is not set
309# CONFIG_BFIN_WB is not set 309CONFIG_BFIN_WB=y
310CONFIG_BFIN_WT=y 310# CONFIG_BFIN_WT is not set
311# CONFIG_MPU is not set 311# CONFIG_MPU is not set
312 312
313# 313#
@@ -726,7 +726,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
726CONFIG_SIMPLE_GPIO=m 726CONFIG_SIMPLE_GPIO=m
727# CONFIG_VT is not set 727# CONFIG_VT is not set
728# CONFIG_DEVKMEM is not set 728# CONFIG_DEVKMEM is not set
729# CONFIG_BFIN_JTAG_COMM is not set 729CONFIG_BFIN_JTAG_COMM=m
730# CONFIG_SERIAL_NONSTANDARD is not set 730# CONFIG_SERIAL_NONSTANDARD is not set
731 731
732# 732#
@@ -796,9 +796,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
796# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
797# 797#
798# CONFIG_DS1682 is not set 798# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 799# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_PCF8575 is not set 803# CONFIG_PCF8575 is not set
804# CONFIG_SENSORS_PCA9539 is not set 804# CONFIG_SENSORS_PCA9539 is not set
@@ -823,7 +823,7 @@ CONFIG_SPI_BFIN=y
823# 823#
824# SPI Protocol Masters 824# SPI Protocol Masters
825# 825#
826# CONFIG_SPI_AT25 is not set 826# CONFIG_EEPROM_AT25 is not set
827# CONFIG_SPI_SPIDEV is not set 827# CONFIG_SPI_SPIDEV is not set
828# CONFIG_SPI_TLE62X0 is not set 828# CONFIG_SPI_TLE62X0 is not set
829CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 829CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index d4ed9ce1f62f..6bc2fb1b2a70 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -361,8 +361,8 @@ CONFIG_BFIN_ICACHE=y
361CONFIG_BFIN_DCACHE=y 361CONFIG_BFIN_DCACHE=y
362# CONFIG_BFIN_DCACHE_BANKA is not set 362# CONFIG_BFIN_DCACHE_BANKA is not set
363# CONFIG_BFIN_ICACHE_LOCK is not set 363# CONFIG_BFIN_ICACHE_LOCK is not set
364# CONFIG_BFIN_WB is not set 364CONFIG_BFIN_WB=y
365CONFIG_BFIN_WT=y 365# CONFIG_BFIN_WT is not set
366# CONFIG_BFIN_L2_CACHEABLE is not set 366# CONFIG_BFIN_L2_CACHEABLE is not set
367# CONFIG_MPU is not set 367# CONFIG_MPU is not set
368 368
@@ -680,7 +680,7 @@ CONFIG_SCSI=y
680CONFIG_SCSI_DMA=y 680CONFIG_SCSI_DMA=y
681# CONFIG_SCSI_TGT is not set 681# CONFIG_SCSI_TGT is not set
682# CONFIG_SCSI_NETLINK is not set 682# CONFIG_SCSI_NETLINK is not set
683CONFIG_SCSI_PROC_FS=y 683# CONFIG_SCSI_PROC_FS is not set
684 684
685# 685#
686# SCSI support type (disk, tape, CD-ROM) 686# SCSI support type (disk, tape, CD-ROM)
@@ -856,7 +856,7 @@ CONFIG_VT_CONSOLE=y
856CONFIG_HW_CONSOLE=y 856CONFIG_HW_CONSOLE=y
857# CONFIG_VT_HW_CONSOLE_BINDING is not set 857# CONFIG_VT_HW_CONSOLE_BINDING is not set
858# CONFIG_DEVKMEM is not set 858# CONFIG_DEVKMEM is not set
859# CONFIG_BFIN_JTAG_COMM is not set 859CONFIG_BFIN_JTAG_COMM=m
860# CONFIG_SERIAL_NONSTANDARD is not set 860# CONFIG_SERIAL_NONSTANDARD is not set
861 861
862# 862#
@@ -928,9 +928,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
928# Miscellaneous I2C Chip support 928# Miscellaneous I2C Chip support
929# 929#
930# CONFIG_DS1682 is not set 930# CONFIG_DS1682 is not set
931# CONFIG_AT24 is not set 931# CONFIG_EEPROM_AT24 is not set
932# CONFIG_SENSORS_AD5252 is not set 932# CONFIG_SENSORS_AD5252 is not set
933# CONFIG_SENSORS_EEPROM is not set 933# CONFIG_EEPROM_LEGACY is not set
934# CONFIG_SENSORS_PCF8574 is not set 934# CONFIG_SENSORS_PCF8574 is not set
935# CONFIG_PCF8575 is not set 935# CONFIG_PCF8575 is not set
936# CONFIG_SENSORS_PCA9539 is not set 936# CONFIG_SENSORS_PCA9539 is not set
@@ -955,7 +955,7 @@ CONFIG_SPI_BFIN=y
955# 955#
956# SPI Protocol Masters 956# SPI Protocol Masters
957# 957#
958# CONFIG_SPI_AT25 is not set 958# CONFIG_EEPROM_AT25 is not set
959# CONFIG_SPI_SPIDEV is not set 959# CONFIG_SPI_SPIDEV is not set
960# CONFIG_SPI_TLE62X0 is not set 960# CONFIG_SPI_TLE62X0 is not set
961CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 961CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index 1ecb7a38c905..69714fb3e608 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -329,8 +329,8 @@ CONFIG_BFIN_ICACHE=y
329CONFIG_BFIN_DCACHE=y 329CONFIG_BFIN_DCACHE=y
330# CONFIG_BFIN_DCACHE_BANKA is not set 330# CONFIG_BFIN_DCACHE_BANKA is not set
331# CONFIG_BFIN_ICACHE_LOCK is not set 331# CONFIG_BFIN_ICACHE_LOCK is not set
332# CONFIG_BFIN_WB is not set 332CONFIG_BFIN_WB=y
333CONFIG_BFIN_WT=y 333# CONFIG_BFIN_WT is not set
334# CONFIG_BFIN_L2_CACHEABLE is not set 334# CONFIG_BFIN_L2_CACHEABLE is not set
335# CONFIG_MPU is not set 335# CONFIG_MPU is not set
336 336
@@ -709,7 +709,7 @@ CONFIG_BFIN_DMA_INTERFACE=m
709CONFIG_SIMPLE_GPIO=m 709CONFIG_SIMPLE_GPIO=m
710# CONFIG_VT is not set 710# CONFIG_VT is not set
711# CONFIG_DEVKMEM is not set 711# CONFIG_DEVKMEM is not set
712# CONFIG_BFIN_JTAG_COMM is not set 712CONFIG_BFIN_JTAG_COMM=m
713# CONFIG_SERIAL_NONSTANDARD is not set 713# CONFIG_SERIAL_NONSTANDARD is not set
714 714
715# 715#
@@ -756,7 +756,7 @@ CONFIG_SPI_BFIN=y
756# 756#
757# SPI Protocol Masters 757# SPI Protocol Masters
758# 758#
759# CONFIG_SPI_AT25 is not set 759# CONFIG_EEPROM_AT25 is not set
760# CONFIG_SPI_SPIDEV is not set 760# CONFIG_SPI_SPIDEV is not set
761# CONFIG_SPI_TLE62X0 is not set 761# CONFIG_SPI_TLE62X0 is not set
762CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 762CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BlackStamp_defconfig b/arch/blackfin/configs/BlackStamp_defconfig
index 9683b2e13097..017c6ea071b5 100644
--- a/arch/blackfin/configs/BlackStamp_defconfig
+++ b/arch/blackfin/configs/BlackStamp_defconfig
@@ -288,8 +288,8 @@ CONFIG_BFIN_ICACHE=y
288CONFIG_BFIN_DCACHE=y 288CONFIG_BFIN_DCACHE=y
289# CONFIG_BFIN_DCACHE_BANKA is not set 289# CONFIG_BFIN_DCACHE_BANKA is not set
290# CONFIG_BFIN_ICACHE_LOCK is not set 290# CONFIG_BFIN_ICACHE_LOCK is not set
291# CONFIG_BFIN_WB is not set 291CONFIG_BFIN_WB=y
292CONFIG_BFIN_WT=y 292# CONFIG_BFIN_WT is not set
293# CONFIG_MPU is not set 293# CONFIG_MPU is not set
294 294
295# 295#
@@ -691,7 +691,7 @@ CONFIG_I2C_GPIO=m
691# 691#
692# CONFIG_DS1682 is not set 692# CONFIG_DS1682 is not set
693# CONFIG_SENSORS_AD5252 is not set 693# CONFIG_SENSORS_AD5252 is not set
694# CONFIG_SENSORS_EEPROM is not set 694# CONFIG_EEPROM_LEGACY is not set
695# CONFIG_SENSORS_PCF8574 is not set 695# CONFIG_SENSORS_PCF8574 is not set
696# CONFIG_PCF8575 is not set 696# CONFIG_PCF8575 is not set
697# CONFIG_SENSORS_PCF8591 is not set 697# CONFIG_SENSORS_PCF8591 is not set
@@ -713,7 +713,7 @@ CONFIG_SPI_BFIN=y
713# 713#
714# SPI Protocol Masters 714# SPI Protocol Masters
715# 715#
716CONFIG_SPI_AT25=y 716CONFIG_EEPROM_AT25=y
717CONFIG_SPI_SPIDEV=m 717CONFIG_SPI_SPIDEV=m
718# CONFIG_SPI_TLE62X0 is not set 718# CONFIG_SPI_TLE62X0 is not set
719# CONFIG_W1 is not set 719# CONFIG_W1 is not set
diff --git a/arch/blackfin/configs/CM-BF527_defconfig b/arch/blackfin/configs/CM-BF527_defconfig
index a041e7eba770..d880ef786770 100644
--- a/arch/blackfin/configs/CM-BF527_defconfig
+++ b/arch/blackfin/configs/CM-BF527_defconfig
@@ -1,7 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24.7 3# Linux kernel version: 2.6.28
4# Fri Jul 18 18:00:41 2008
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -9,7 +8,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
11CONFIG_ZONE_DMA=y 10CONFIG_ZONE_DMA=y
12CONFIG_SEMAPHORE_SLEEPERS=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
@@ -32,18 +30,16 @@ CONFIG_SYSVIPC_SYSCTL=y
32# CONFIG_POSIX_MQUEUE is not set 30# CONFIG_POSIX_MQUEUE is not set
33# CONFIG_BSD_PROCESS_ACCT is not set 31# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set 32# CONFIG_TASKSTATS is not set
35# CONFIG_USER_NS is not set
36# CONFIG_PID_NS is not set
37# CONFIG_AUDIT is not set 33# CONFIG_AUDIT is not set
38CONFIG_IKCONFIG=y 34CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 35CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=14 36CONFIG_LOG_BUF_SHIFT=14
41# CONFIG_CGROUPS is not set 37# CONFIG_CGROUPS is not set
42CONFIG_FAIR_GROUP_SCHED=y 38# CONFIG_GROUP_SCHED is not set
43CONFIG_FAIR_USER_SCHED=y 39CONFIG_SYSFS_DEPRECATED=y
44# CONFIG_FAIR_CGROUP_SCHED is not set 40CONFIG_SYSFS_DEPRECATED_V2=y
45# CONFIG_SYSFS_DEPRECATED is not set
46# CONFIG_RELAY is not set 41# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set
47CONFIG_BLK_DEV_INITRD=y 43CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 44CONFIG_INITRAMFS_SOURCE=""
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -52,26 +48,35 @@ CONFIG_EMBEDDED=y
52CONFIG_UID16=y 48CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 49CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 50CONFIG_KALLSYMS=y
51# CONFIG_KALLSYMS_ALL is not set
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 52# CONFIG_KALLSYMS_EXTRA_PASS is not set
56CONFIG_HOTPLUG=y 53CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 54CONFIG_PRINTK=y
58CONFIG_BUG=y 55CONFIG_BUG=y
59# CONFIG_ELF_CORE is not set 56# CONFIG_ELF_CORE is not set
57CONFIG_COMPAT_BRK=y
60CONFIG_BASE_FULL=y 58CONFIG_BASE_FULL=y
61CONFIG_FUTEX=y 59CONFIG_FUTEX=y
62CONFIG_ANON_INODES=y 60CONFIG_ANON_INODES=y
63CONFIG_EPOLL=y 61CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 62CONFIG_SIGNALFD=y
63CONFIG_TIMERFD=y
65CONFIG_EVENTFD=y 64CONFIG_EVENTFD=y
65CONFIG_AIO=y
66CONFIG_VM_EVENT_COUNTERS=y 66CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_SLAB=y 67CONFIG_SLAB=y
68# CONFIG_SLUB is not set 68# CONFIG_SLUB is not set
69# CONFIG_SLOB is not set 69# CONFIG_SLOB is not set
70# CONFIG_PROFILING is not set
71# CONFIG_MARKERS is not set
72CONFIG_HAVE_OPROFILE=y
73# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
70CONFIG_SLABINFO=y 74CONFIG_SLABINFO=y
71CONFIG_RT_MUTEXES=y 75CONFIG_RT_MUTEXES=y
72CONFIG_TINY_SHMEM=y 76CONFIG_TINY_SHMEM=y
73CONFIG_BASE_SMALL=0 77CONFIG_BASE_SMALL=0
74CONFIG_MODULES=y 78CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set
75CONFIG_MODULE_UNLOAD=y 80CONFIG_MODULE_UNLOAD=y
76# CONFIG_MODULE_FORCE_UNLOAD is not set 81# CONFIG_MODULE_FORCE_UNLOAD is not set
77# CONFIG_MODVERSIONS is not set 82# CONFIG_MODVERSIONS is not set
@@ -82,6 +87,7 @@ CONFIG_BLOCK=y
82# CONFIG_BLK_DEV_IO_TRACE is not set 87# CONFIG_BLK_DEV_IO_TRACE is not set
83# CONFIG_LSF is not set 88# CONFIG_LSF is not set
84# CONFIG_BLK_DEV_BSG is not set 89# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set
85 91
86# 92#
87# IO Schedulers 93# IO Schedulers
@@ -95,9 +101,11 @@ CONFIG_IOSCHED_CFQ=y
95CONFIG_DEFAULT_CFQ=y 101CONFIG_DEFAULT_CFQ=y
96# CONFIG_DEFAULT_NOOP is not set 102# CONFIG_DEFAULT_NOOP is not set
97CONFIG_DEFAULT_IOSCHED="cfq" 103CONFIG_DEFAULT_IOSCHED="cfq"
104CONFIG_CLASSIC_RCU=y
98# CONFIG_PREEMPT_NONE is not set 105# CONFIG_PREEMPT_NONE is not set
99CONFIG_PREEMPT_VOLUNTARY=y 106CONFIG_PREEMPT_VOLUNTARY=y
100# CONFIG_PREEMPT is not set 107# CONFIG_PREEMPT is not set
108# CONFIG_FREEZER is not set
101 109
102# 110#
103# Blackfin Processor Options 111# Blackfin Processor Options
@@ -106,6 +114,10 @@ CONFIG_PREEMPT_VOLUNTARY=y
106# 114#
107# Processor and Board Settings 115# Processor and Board Settings
108# 116#
117# CONFIG_BF512 is not set
118# CONFIG_BF514 is not set
119# CONFIG_BF516 is not set
120# CONFIG_BF518 is not set
109# CONFIG_BF522 is not set 121# CONFIG_BF522 is not set
110# CONFIG_BF523 is not set 122# CONFIG_BF523 is not set
111# CONFIG_BF524 is not set 123# CONFIG_BF524 is not set
@@ -118,48 +130,32 @@ CONFIG_BF527=y
118# CONFIG_BF534 is not set 130# CONFIG_BF534 is not set
119# CONFIG_BF536 is not set 131# CONFIG_BF536 is not set
120# CONFIG_BF537 is not set 132# CONFIG_BF537 is not set
133# CONFIG_BF538 is not set
134# CONFIG_BF539 is not set
121# CONFIG_BF542 is not set 135# CONFIG_BF542 is not set
136# CONFIG_BF542M is not set
122# CONFIG_BF544 is not set 137# CONFIG_BF544 is not set
138# CONFIG_BF544M is not set
123# CONFIG_BF547 is not set 139# CONFIG_BF547 is not set
140# CONFIG_BF547M is not set
124# CONFIG_BF548 is not set 141# CONFIG_BF548 is not set
142# CONFIG_BF548M is not set
125# CONFIG_BF549 is not set 143# CONFIG_BF549 is not set
144# CONFIG_BF549M is not set
126# CONFIG_BF561 is not set 145# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=0
147CONFIG_BF_REV_MAX=2
127# CONFIG_BF_REV_0_0 is not set 148# CONFIG_BF_REV_0_0 is not set
128CONFIG_BF_REV_0_1=y 149CONFIG_BF_REV_0_1=y
129# CONFIG_BF_REV_0_2 is not set 150# CONFIG_BF_REV_0_2 is not set
130# CONFIG_BF_REV_0_3 is not set 151# CONFIG_BF_REV_0_3 is not set
131# CONFIG_BF_REV_0_4 is not set 152# CONFIG_BF_REV_0_4 is not set
132# CONFIG_BF_REV_0_5 is not set 153# CONFIG_BF_REV_0_5 is not set
154# CONFIG_BF_REV_0_6 is not set
133# CONFIG_BF_REV_ANY is not set 155# CONFIG_BF_REV_ANY is not set
134# CONFIG_BF_REV_NONE is not set 156# CONFIG_BF_REV_NONE is not set
135CONFIG_BF52x=y 157CONFIG_BF52x=y
136CONFIG_MEM_MT48LC16M16A2TG_75=y 158CONFIG_MEM_MT48LC16M16A2TG_75=y
137# CONFIG_BFIN527_EZKIT is not set
138CONFIG_BFIN527_BLUETECHNIX_CM=y
139
140#
141# BF527 Specific Configuration
142#
143
144#
145# Alternative Multiplexing Scheme
146#
147# CONFIG_BF527_SPORT0_PORTF is not set
148CONFIG_BF527_SPORT0_PORTG=y
149CONFIG_BF527_SPORT0_TSCLK_PG10=y
150# CONFIG_BF527_SPORT0_TSCLK_PG14 is not set
151CONFIG_BF527_UART1_PORTF=y
152# CONFIG_BF527_UART1_PORTG is not set
153# CONFIG_BF527_NAND_D_PORTF is not set
154CONFIG_BF527_NAND_D_PORTH=y
155
156#
157# Interrupt Priority Assignment
158#
159
160#
161# Priority
162#
163CONFIG_IRQ_PLL_WAKEUP=7 159CONFIG_IRQ_PLL_WAKEUP=7
164CONFIG_IRQ_DMA0_ERROR=7 160CONFIG_IRQ_DMA0_ERROR=7
165CONFIG_IRQ_DMAR0_BLK=7 161CONFIG_IRQ_DMAR0_BLK=7
@@ -179,7 +175,6 @@ CONFIG_IRQ_SPORT0_TX=9
179CONFIG_IRQ_SPORT1_RX=9 175CONFIG_IRQ_SPORT1_RX=9
180CONFIG_IRQ_SPORT1_TX=9 176CONFIG_IRQ_SPORT1_TX=9
181CONFIG_IRQ_TWI=10 177CONFIG_IRQ_TWI=10
182CONFIG_IRQ_SPI=10
183CONFIG_IRQ_UART0_RX=10 178CONFIG_IRQ_UART0_RX=10
184CONFIG_IRQ_UART0_TX=10 179CONFIG_IRQ_UART0_TX=10
185CONFIG_IRQ_UART1_RX=10 180CONFIG_IRQ_UART1_RX=10
@@ -205,6 +200,34 @@ CONFIG_IRQ_MEM_DMA1=13
205CONFIG_IRQ_WATCH=13 200CONFIG_IRQ_WATCH=13
206CONFIG_IRQ_PORTF_INTA=13 201CONFIG_IRQ_PORTF_INTA=13
207CONFIG_IRQ_PORTF_INTB=13 202CONFIG_IRQ_PORTF_INTB=13
203# CONFIG_BFIN527_EZKIT is not set
204CONFIG_BFIN527_BLUETECHNIX_CM=y
205# CONFIG_BFIN526_EZBRD is not set
206
207#
208# BF527 Specific Configuration
209#
210
211#
212# Alternative Multiplexing Scheme
213#
214# CONFIG_BF527_SPORT0_PORTF is not set
215CONFIG_BF527_SPORT0_PORTG=y
216CONFIG_BF527_SPORT0_TSCLK_PG10=y
217# CONFIG_BF527_SPORT0_TSCLK_PG14 is not set
218CONFIG_BF527_UART1_PORTF=y
219# CONFIG_BF527_UART1_PORTG is not set
220# CONFIG_BF527_NAND_D_PORTF is not set
221CONFIG_BF527_NAND_D_PORTH=y
222
223#
224# Interrupt Priority Assignment
225#
226
227#
228# Priority
229#
230CONFIG_IRQ_SPI=10
208CONFIG_IRQ_SPI_ERROR=7 231CONFIG_IRQ_SPI_ERROR=7
209CONFIG_IRQ_NFC_ERROR=7 232CONFIG_IRQ_NFC_ERROR=7
210CONFIG_IRQ_HDMA_ERROR=7 233CONFIG_IRQ_HDMA_ERROR=7
@@ -226,7 +249,6 @@ CONFIG_BOOT_LOAD=0x1000
226# 249#
227CONFIG_CLKIN_HZ=25000000 250CONFIG_CLKIN_HZ=25000000
228# CONFIG_BFIN_KERNEL_CLOCK is not set 251# CONFIG_BFIN_KERNEL_CLOCK is not set
229CONFIG_MAX_MEM_SIZE=512
230CONFIG_MAX_VCO_HZ=600000000 252CONFIG_MAX_VCO_HZ=600000000
231CONFIG_MIN_VCO_HZ=50000000 253CONFIG_MIN_VCO_HZ=50000000
232CONFIG_MAX_SCLK_HZ=133333333 254CONFIG_MAX_SCLK_HZ=133333333
@@ -240,10 +262,10 @@ CONFIG_HZ_250=y
240# CONFIG_HZ_300 is not set 262# CONFIG_HZ_300 is not set
241# CONFIG_HZ_1000 is not set 263# CONFIG_HZ_1000 is not set
242CONFIG_HZ=250 264CONFIG_HZ=250
265# CONFIG_SCHED_HRTICK is not set
243CONFIG_GENERIC_TIME=y 266CONFIG_GENERIC_TIME=y
244CONFIG_GENERIC_CLOCKEVENTS=y 267CONFIG_GENERIC_CLOCKEVENTS=y
245# CONFIG_CYCLES_CLOCKSOURCE is not set 268# CONFIG_CYCLES_CLOCKSOURCE is not set
246# CONFIG_TICK_ONESHOT is not set
247# CONFIG_NO_HZ is not set 269# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set 270# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 271CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -277,6 +299,12 @@ CONFIG_ACCESS_OK_L1=y
277CONFIG_CACHELINE_ALIGNED_L1=y 299CONFIG_CACHELINE_ALIGNED_L1=y
278# CONFIG_SYSCALL_TAB_L1 is not set 300# CONFIG_SYSCALL_TAB_L1 is not set
279# CONFIG_CPLB_SWITCH_TAB_L1 is not set 301# CONFIG_CPLB_SWITCH_TAB_L1 is not set
302CONFIG_APP_STACK_L1=y
303
304#
305# Speed Optimizations
306#
307CONFIG_BFIN_INS_LOWOVERHEAD=y
280CONFIG_RAMKERNEL=y 308CONFIG_RAMKERNEL=y
281# CONFIG_ROMKERNEL is not set 309# CONFIG_ROMKERNEL is not set
282CONFIG_SELECT_MEMORY_MODEL=y 310CONFIG_SELECT_MEMORY_MODEL=y
@@ -285,10 +313,10 @@ CONFIG_FLATMEM_MANUAL=y
285# CONFIG_SPARSEMEM_MANUAL is not set 313# CONFIG_SPARSEMEM_MANUAL is not set
286CONFIG_FLATMEM=y 314CONFIG_FLATMEM=y
287CONFIG_FLAT_NODE_MEM_MAP=y 315CONFIG_FLAT_NODE_MEM_MAP=y
288# CONFIG_SPARSEMEM_STATIC is not set 316CONFIG_PAGEFLAGS_EXTENDED=y
289# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
290CONFIG_SPLIT_PTLOCK_CPUS=4 317CONFIG_SPLIT_PTLOCK_CPUS=4
291# CONFIG_RESOURCES_64BIT is not set 318# CONFIG_RESOURCES_64BIT is not set
319# CONFIG_PHYS_ADDR_T_64BIT is not set
292CONFIG_ZONE_DMA_FLAG=1 320CONFIG_ZONE_DMA_FLAG=1
293CONFIG_VIRT_TO_BUS=y 321CONFIG_VIRT_TO_BUS=y
294CONFIG_BFIN_GPTIMERS=y 322CONFIG_BFIN_GPTIMERS=y
@@ -304,8 +332,8 @@ CONFIG_BFIN_ICACHE=y
304CONFIG_BFIN_DCACHE=y 332CONFIG_BFIN_DCACHE=y
305# CONFIG_BFIN_DCACHE_BANKA is not set 333# CONFIG_BFIN_DCACHE_BANKA is not set
306# CONFIG_BFIN_ICACHE_LOCK is not set 334# CONFIG_BFIN_ICACHE_LOCK is not set
307# CONFIG_BFIN_WB is not set 335CONFIG_BFIN_WB=y
308CONFIG_BFIN_WT=y 336# CONFIG_BFIN_WT is not set
309# CONFIG_MPU is not set 337# CONFIG_MPU is not set
310 338
311# 339#
@@ -334,7 +362,6 @@ CONFIG_BANK_3=0xFFC0
334# 362#
335# Bus options (PCI, PCMCIA, EISA, MCA, ISA) 363# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
336# 364#
337# CONFIG_PCI is not set
338# CONFIG_ARCH_SUPPORTS_MSI is not set 365# CONFIG_ARCH_SUPPORTS_MSI is not set
339# CONFIG_PCCARD is not set 366# CONFIG_PCCARD is not set
340 367
@@ -345,25 +372,20 @@ CONFIG_BINFMT_ELF_FDPIC=y
345CONFIG_BINFMT_FLAT=y 372CONFIG_BINFMT_FLAT=y
346CONFIG_BINFMT_ZFLAT=y 373CONFIG_BINFMT_ZFLAT=y
347# CONFIG_BINFMT_SHARED_FLAT is not set 374# CONFIG_BINFMT_SHARED_FLAT is not set
375# CONFIG_HAVE_AOUT is not set
348# CONFIG_BINFMT_MISC is not set 376# CONFIG_BINFMT_MISC is not set
349 377
350# 378#
351# Power management options 379# Power management options
352# 380#
353# CONFIG_PM is not set 381# CONFIG_PM is not set
354CONFIG_SUSPEND_UP_POSSIBLE=y 382CONFIG_ARCH_SUSPEND_POSSIBLE=y
355# CONFIG_PM_BFIN_SLEEP_DEEPER is not set
356# CONFIG_PM_BFIN_SLEEP is not set
357# CONFIG_PM_WAKEUP_BY_GPIO is not set 383# CONFIG_PM_WAKEUP_BY_GPIO is not set
358 384
359# 385#
360# CPU Frequency scaling 386# CPU Frequency scaling
361# 387#
362# CONFIG_CPU_FREQ is not set 388# CONFIG_CPU_FREQ is not set
363
364#
365# Networking
366#
367CONFIG_NET=y 389CONFIG_NET=y
368 390
369# 391#
@@ -376,6 +398,7 @@ CONFIG_XFRM=y
376# CONFIG_XFRM_USER is not set 398# CONFIG_XFRM_USER is not set
377# CONFIG_XFRM_SUB_POLICY is not set 399# CONFIG_XFRM_SUB_POLICY is not set
378# CONFIG_XFRM_MIGRATE is not set 400# CONFIG_XFRM_MIGRATE is not set
401# CONFIG_XFRM_STATISTICS is not set
379# CONFIG_NET_KEY is not set 402# CONFIG_NET_KEY is not set
380CONFIG_INET=y 403CONFIG_INET=y
381# CONFIG_IP_MULTICAST is not set 404# CONFIG_IP_MULTICAST is not set
@@ -405,8 +428,6 @@ CONFIG_TCP_CONG_CUBIC=y
405CONFIG_DEFAULT_TCP_CONG="cubic" 428CONFIG_DEFAULT_TCP_CONG="cubic"
406# CONFIG_TCP_MD5SIG is not set 429# CONFIG_TCP_MD5SIG is not set
407# CONFIG_IPV6 is not set 430# CONFIG_IPV6 is not set
408# CONFIG_INET6_XFRM_TUNNEL is not set
409# CONFIG_INET6_TUNNEL is not set
410# CONFIG_NETLABEL is not set 431# CONFIG_NETLABEL is not set
411# CONFIG_NETWORK_SECMARK is not set 432# CONFIG_NETWORK_SECMARK is not set
412# CONFIG_NETFILTER is not set 433# CONFIG_NETFILTER is not set
@@ -415,6 +436,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
415# CONFIG_TIPC is not set 436# CONFIG_TIPC is not set
416# CONFIG_ATM is not set 437# CONFIG_ATM is not set
417# CONFIG_BRIDGE is not set 438# CONFIG_BRIDGE is not set
439# CONFIG_NET_DSA is not set
418# CONFIG_VLAN_8021Q is not set 440# CONFIG_VLAN_8021Q is not set
419# CONFIG_DECNET is not set 441# CONFIG_DECNET is not set
420# CONFIG_LLC2 is not set 442# CONFIG_LLC2 is not set
@@ -431,14 +453,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
431# 453#
432# CONFIG_NET_PKTGEN is not set 454# CONFIG_NET_PKTGEN is not set
433# CONFIG_HAMRADIO is not set 455# CONFIG_HAMRADIO is not set
456# CONFIG_CAN is not set
434# CONFIG_IRDA is not set 457# CONFIG_IRDA is not set
435# CONFIG_BT is not set 458# CONFIG_BT is not set
436# CONFIG_AF_RXRPC is not set 459# CONFIG_AF_RXRPC is not set
437 460# CONFIG_PHONET is not set
438# 461CONFIG_WIRELESS=y
439# Wireless
440#
441# CONFIG_CFG80211 is not set 462# CONFIG_CFG80211 is not set
463CONFIG_WIRELESS_OLD_REGULATORY=y
442# CONFIG_WIRELESS_EXT is not set 464# CONFIG_WIRELESS_EXT is not set
443# CONFIG_MAC80211 is not set 465# CONFIG_MAC80211 is not set
444# CONFIG_IEEE80211 is not set 466# CONFIG_IEEE80211 is not set
@@ -456,6 +478,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
456CONFIG_STANDALONE=y 478CONFIG_STANDALONE=y
457CONFIG_PREVENT_FIRMWARE_BUILD=y 479CONFIG_PREVENT_FIRMWARE_BUILD=y
458# CONFIG_FW_LOADER is not set 480# CONFIG_FW_LOADER is not set
481# CONFIG_DEBUG_DRIVER is not set
482# CONFIG_DEBUG_DEVRES is not set
459# CONFIG_SYS_HYPERVISOR is not set 483# CONFIG_SYS_HYPERVISOR is not set
460# CONFIG_CONNECTOR is not set 484# CONFIG_CONNECTOR is not set
461CONFIG_MTD=y 485CONFIG_MTD=y
@@ -464,6 +488,7 @@ CONFIG_MTD=y
464CONFIG_MTD_PARTITIONS=y 488CONFIG_MTD_PARTITIONS=y
465# CONFIG_MTD_REDBOOT_PARTS is not set 489# CONFIG_MTD_REDBOOT_PARTS is not set
466# CONFIG_MTD_CMDLINE_PARTS is not set 490# CONFIG_MTD_CMDLINE_PARTS is not set
491# CONFIG_MTD_AR7_PARTS is not set
467 492
468# 493#
469# User Modules And Translation Layers 494# User Modules And Translation Layers
@@ -507,6 +532,7 @@ CONFIG_MTD_ROM=m
507# 532#
508CONFIG_MTD_COMPLEX_MAPPINGS=y 533CONFIG_MTD_COMPLEX_MAPPINGS=y
509# CONFIG_MTD_PHYSMAP is not set 534# CONFIG_MTD_PHYSMAP is not set
535# CONFIG_MTD_GPIO_ADDR is not set
510# CONFIG_MTD_UCLINUX is not set 536# CONFIG_MTD_UCLINUX is not set
511# CONFIG_MTD_PLATRAM is not set 537# CONFIG_MTD_PLATRAM is not set
512 538
@@ -542,10 +568,12 @@ CONFIG_BLK_DEV=y
542CONFIG_BLK_DEV_RAM=y 568CONFIG_BLK_DEV_RAM=y
543CONFIG_BLK_DEV_RAM_COUNT=16 569CONFIG_BLK_DEV_RAM_COUNT=16
544CONFIG_BLK_DEV_RAM_SIZE=4096 570CONFIG_BLK_DEV_RAM_SIZE=4096
545CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 571# CONFIG_BLK_DEV_XIP is not set
546# CONFIG_CDROM_PKTCDVD is not set 572# CONFIG_CDROM_PKTCDVD is not set
547# CONFIG_ATA_OVER_ETH is not set 573# CONFIG_ATA_OVER_ETH is not set
574# CONFIG_BLK_DEV_HD is not set
548# CONFIG_MISC_DEVICES is not set 575# CONFIG_MISC_DEVICES is not set
576CONFIG_HAVE_IDE=y
549# CONFIG_IDE is not set 577# CONFIG_IDE is not set
550 578
551# 579#
@@ -558,7 +586,6 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
558# CONFIG_ATA is not set 586# CONFIG_ATA is not set
559# CONFIG_MD is not set 587# CONFIG_MD is not set
560CONFIG_NETDEVICES=y 588CONFIG_NETDEVICES=y
561# CONFIG_NETDEVICES_MULTIQUEUE is not set
562# CONFIG_DUMMY is not set 589# CONFIG_DUMMY is not set
563# CONFIG_BONDING is not set 590# CONFIG_BONDING is not set
564# CONFIG_MACVLAN is not set 591# CONFIG_MACVLAN is not set
@@ -579,6 +606,7 @@ CONFIG_PHYLIB=y
579# CONFIG_SMSC_PHY is not set 606# CONFIG_SMSC_PHY is not set
580# CONFIG_BROADCOM_PHY is not set 607# CONFIG_BROADCOM_PHY is not set
581# CONFIG_ICPLUS_PHY is not set 608# CONFIG_ICPLUS_PHY is not set
609# CONFIG_REALTEK_PHY is not set
582# CONFIG_FIXED_PHY is not set 610# CONFIG_FIXED_PHY is not set
583# CONFIG_MDIO_BITBANG is not set 611# CONFIG_MDIO_BITBANG is not set
584CONFIG_NET_ETHERNET=y 612CONFIG_NET_ETHERNET=y
@@ -591,11 +619,14 @@ CONFIG_BFIN_MAC_RMII=y
591# CONFIG_SMC91X is not set 619# CONFIG_SMC91X is not set
592# CONFIG_SMSC911X is not set 620# CONFIG_SMSC911X is not set
593# CONFIG_DM9000 is not set 621# CONFIG_DM9000 is not set
622# CONFIG_ENC28J60 is not set
594# CONFIG_IBM_NEW_EMAC_ZMII is not set 623# CONFIG_IBM_NEW_EMAC_ZMII is not set
595# CONFIG_IBM_NEW_EMAC_RGMII is not set 624# CONFIG_IBM_NEW_EMAC_RGMII is not set
596# CONFIG_IBM_NEW_EMAC_TAH is not set 625# CONFIG_IBM_NEW_EMAC_TAH is not set
597# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 626# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
598# CONFIG_B44 is not set 627# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
628# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
629# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
599# CONFIG_NETDEV_1000 is not set 630# CONFIG_NETDEV_1000 is not set
600# CONFIG_NETDEV_10000 is not set 631# CONFIG_NETDEV_10000 is not set
601 632
@@ -604,6 +635,7 @@ CONFIG_BFIN_MAC_RMII=y
604# 635#
605# CONFIG_WLAN_PRE80211 is not set 636# CONFIG_WLAN_PRE80211 is not set
606# CONFIG_WLAN_80211 is not set 637# CONFIG_WLAN_80211 is not set
638# CONFIG_IWLWIFI_LEDS is not set
607 639
608# 640#
609# USB Network Adapters 641# USB Network Adapters
@@ -616,7 +648,6 @@ CONFIG_BFIN_MAC_RMII=y
616# CONFIG_WAN is not set 648# CONFIG_WAN is not set
617# CONFIG_PPP is not set 649# CONFIG_PPP is not set
618# CONFIG_SLIP is not set 650# CONFIG_SLIP is not set
619# CONFIG_SHAPER is not set
620# CONFIG_NETCONSOLE is not set 651# CONFIG_NETCONSOLE is not set
621# CONFIG_NETPOLL is not set 652# CONFIG_NETPOLL is not set
622# CONFIG_NET_POLL_CONTROLLER is not set 653# CONFIG_NET_POLL_CONTROLLER is not set
@@ -642,14 +673,15 @@ CONFIG_BFIN_MAC_RMII=y
642# CONFIG_BF5xx_PPIFCD is not set 673# CONFIG_BF5xx_PPIFCD is not set
643# CONFIG_BFIN_SIMPLE_TIMER is not set 674# CONFIG_BFIN_SIMPLE_TIMER is not set
644# CONFIG_BF5xx_PPI is not set 675# CONFIG_BF5xx_PPI is not set
645CONFIG_BFIN_OTP=y 676# CONFIG_BF5xx_EPPI is not set
646# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
647# CONFIG_BFIN_SPORT is not set 677# CONFIG_BFIN_SPORT is not set
648# CONFIG_BFIN_TIMER_LATENCY is not set 678# CONFIG_BFIN_TIMER_LATENCY is not set
649# CONFIG_TWI_LCD is not set 679# CONFIG_TWI_LCD is not set
680CONFIG_BFIN_DMA_INTERFACE=m
650CONFIG_SIMPLE_GPIO=m 681CONFIG_SIMPLE_GPIO=m
651# CONFIG_VT is not set 682# CONFIG_VT is not set
652# CONFIG_DEVKMEM is not set 683# CONFIG_DEVKMEM is not set
684# CONFIG_BFIN_JTAG_COMM is not set
653# CONFIG_SERIAL_NONSTANDARD is not set 685# CONFIG_SERIAL_NONSTANDARD is not set
654 686
655# 687#
@@ -673,6 +705,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y
673# CONFIG_SERIAL_BFIN_SPORT is not set 705# CONFIG_SERIAL_BFIN_SPORT is not set
674CONFIG_UNIX98_PTYS=y 706CONFIG_UNIX98_PTYS=y
675# CONFIG_LEGACY_PTYS is not set 707# CONFIG_LEGACY_PTYS is not set
708CONFIG_BFIN_OTP=y
709# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
676 710
677# 711#
678# CAN, the car bus and industrial fieldbus 712# CAN, the car bus and industrial fieldbus
@@ -680,44 +714,49 @@ CONFIG_UNIX98_PTYS=y
680# CONFIG_CAN4LINUX is not set 714# CONFIG_CAN4LINUX is not set
681# CONFIG_IPMI_HANDLER is not set 715# CONFIG_IPMI_HANDLER is not set
682# CONFIG_HW_RANDOM is not set 716# CONFIG_HW_RANDOM is not set
683# CONFIG_GEN_RTC is not set
684# CONFIG_R3964 is not set 717# CONFIG_R3964 is not set
685# CONFIG_RAW_DRIVER is not set 718# CONFIG_RAW_DRIVER is not set
686# CONFIG_TCG_TPM is not set 719# CONFIG_TCG_TPM is not set
687CONFIG_I2C=y 720CONFIG_I2C=y
688CONFIG_I2C_BOARDINFO=y 721CONFIG_I2C_BOARDINFO=y
689CONFIG_I2C_CHARDEV=m 722CONFIG_I2C_CHARDEV=m
723CONFIG_I2C_HELPER_AUTO=y
690 724
691# 725#
692# I2C Algorithms 726# I2C Hardware Bus support
693# 727#
694# CONFIG_I2C_ALGOBIT is not set
695# CONFIG_I2C_ALGOPCF is not set
696# CONFIG_I2C_ALGOPCA is not set
697 728
698# 729#
699# I2C Hardware Bus support 730# I2C system bus drivers (mostly embedded / system-on-chip)
700# 731#
701CONFIG_I2C_BLACKFIN_TWI=m 732CONFIG_I2C_BLACKFIN_TWI=m
702CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100 733CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
703# CONFIG_I2C_GPIO is not set 734# CONFIG_I2C_GPIO is not set
704# CONFIG_I2C_OCORES is not set 735# CONFIG_I2C_OCORES is not set
705# CONFIG_I2C_PARPORT_LIGHT is not set
706# CONFIG_I2C_SIMTEC is not set 736# CONFIG_I2C_SIMTEC is not set
737
738#
739# External I2C/SMBus adapter drivers
740#
741# CONFIG_I2C_PARPORT_LIGHT is not set
707# CONFIG_I2C_TAOS_EVM is not set 742# CONFIG_I2C_TAOS_EVM is not set
708# CONFIG_I2C_STUB is not set
709# CONFIG_I2C_TINY_USB is not set 743# CONFIG_I2C_TINY_USB is not set
710 744
711# 745#
746# Other I2C/SMBus bus drivers
747#
748# CONFIG_I2C_PCA_PLATFORM is not set
749# CONFIG_I2C_STUB is not set
750
751#
712# Miscellaneous I2C Chip support 752# Miscellaneous I2C Chip support
713# 753#
714# CONFIG_SENSORS_DS1337 is not set
715# CONFIG_SENSORS_DS1374 is not set
716# CONFIG_DS1682 is not set 754# CONFIG_DS1682 is not set
755# CONFIG_AT24 is not set
717# CONFIG_SENSORS_AD5252 is not set 756# CONFIG_SENSORS_AD5252 is not set
718# CONFIG_SENSORS_EEPROM is not set 757# CONFIG_SENSORS_EEPROM is not set
719# CONFIG_SENSORS_PCF8574 is not set 758# CONFIG_SENSORS_PCF8574 is not set
720# CONFIG_SENSORS_PCF8575 is not set 759# CONFIG_PCF8575 is not set
721# CONFIG_SENSORS_PCA9539 is not set 760# CONFIG_SENSORS_PCA9539 is not set
722# CONFIG_SENSORS_PCF8591 is not set 761# CONFIG_SENSORS_PCF8591 is not set
723# CONFIG_SENSORS_MAX6875 is not set 762# CONFIG_SENSORS_MAX6875 is not set
@@ -726,17 +765,15 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
726# CONFIG_I2C_DEBUG_ALGO is not set 765# CONFIG_I2C_DEBUG_ALGO is not set
727# CONFIG_I2C_DEBUG_BUS is not set 766# CONFIG_I2C_DEBUG_BUS is not set
728# CONFIG_I2C_DEBUG_CHIP is not set 767# CONFIG_I2C_DEBUG_CHIP is not set
729
730#
731# SPI support
732#
733CONFIG_SPI=y 768CONFIG_SPI=y
769# CONFIG_SPI_DEBUG is not set
734CONFIG_SPI_MASTER=y 770CONFIG_SPI_MASTER=y
735 771
736# 772#
737# SPI Master Controller Drivers 773# SPI Master Controller Drivers
738# 774#
739CONFIG_SPI_BFIN=y 775CONFIG_SPI_BFIN=y
776# CONFIG_SPI_BFIN_LOCK is not set
740# CONFIG_SPI_BITBANG is not set 777# CONFIG_SPI_BITBANG is not set
741 778
742# 779#
@@ -745,18 +782,24 @@ CONFIG_SPI_BFIN=y
745# CONFIG_SPI_AT25 is not set 782# CONFIG_SPI_AT25 is not set
746# CONFIG_SPI_SPIDEV is not set 783# CONFIG_SPI_SPIDEV is not set
747# CONFIG_SPI_TLE62X0 is not set 784# CONFIG_SPI_TLE62X0 is not set
785CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
786# CONFIG_GPIOLIB is not set
748# CONFIG_W1 is not set 787# CONFIG_W1 is not set
749# CONFIG_POWER_SUPPLY is not set 788# CONFIG_POWER_SUPPLY is not set
750CONFIG_HWMON=y 789CONFIG_HWMON=y
751# CONFIG_HWMON_VID is not set 790# CONFIG_HWMON_VID is not set
791# CONFIG_SENSORS_AD7414 is not set
752# CONFIG_SENSORS_AD7418 is not set 792# CONFIG_SENSORS_AD7418 is not set
793# CONFIG_SENSORS_ADCXX is not set
753# CONFIG_SENSORS_ADM1021 is not set 794# CONFIG_SENSORS_ADM1021 is not set
754# CONFIG_SENSORS_ADM1025 is not set 795# CONFIG_SENSORS_ADM1025 is not set
755# CONFIG_SENSORS_ADM1026 is not set 796# CONFIG_SENSORS_ADM1026 is not set
756# CONFIG_SENSORS_ADM1029 is not set 797# CONFIG_SENSORS_ADM1029 is not set
757# CONFIG_SENSORS_ADM1031 is not set 798# CONFIG_SENSORS_ADM1031 is not set
758# CONFIG_SENSORS_ADM9240 is not set 799# CONFIG_SENSORS_ADM9240 is not set
800# CONFIG_SENSORS_ADT7462 is not set
759# CONFIG_SENSORS_ADT7470 is not set 801# CONFIG_SENSORS_ADT7470 is not set
802# CONFIG_SENSORS_ADT7473 is not set
760# CONFIG_SENSORS_ATXP1 is not set 803# CONFIG_SENSORS_ATXP1 is not set
761# CONFIG_SENSORS_DS1621 is not set 804# CONFIG_SENSORS_DS1621 is not set
762# CONFIG_SENSORS_F71805F is not set 805# CONFIG_SENSORS_F71805F is not set
@@ -777,6 +820,7 @@ CONFIG_HWMON=y
777# CONFIG_SENSORS_LM90 is not set 820# CONFIG_SENSORS_LM90 is not set
778# CONFIG_SENSORS_LM92 is not set 821# CONFIG_SENSORS_LM92 is not set
779# CONFIG_SENSORS_LM93 is not set 822# CONFIG_SENSORS_LM93 is not set
823# CONFIG_SENSORS_MAX1111 is not set
780# CONFIG_SENSORS_MAX1619 is not set 824# CONFIG_SENSORS_MAX1619 is not set
781# CONFIG_SENSORS_MAX6650 is not set 825# CONFIG_SENSORS_MAX6650 is not set
782# CONFIG_SENSORS_PC87360 is not set 826# CONFIG_SENSORS_PC87360 is not set
@@ -785,6 +829,7 @@ CONFIG_HWMON=y
785# CONFIG_SENSORS_SMSC47M1 is not set 829# CONFIG_SENSORS_SMSC47M1 is not set
786# CONFIG_SENSORS_SMSC47M192 is not set 830# CONFIG_SENSORS_SMSC47M192 is not set
787# CONFIG_SENSORS_SMSC47B397 is not set 831# CONFIG_SENSORS_SMSC47B397 is not set
832# CONFIG_SENSORS_ADS7828 is not set
788# CONFIG_SENSORS_THMC50 is not set 833# CONFIG_SENSORS_THMC50 is not set
789# CONFIG_SENSORS_VT1211 is not set 834# CONFIG_SENSORS_VT1211 is not set
790# CONFIG_SENSORS_W83781D is not set 835# CONFIG_SENSORS_W83781D is not set
@@ -792,9 +837,12 @@ CONFIG_HWMON=y
792# CONFIG_SENSORS_W83792D is not set 837# CONFIG_SENSORS_W83792D is not set
793# CONFIG_SENSORS_W83793 is not set 838# CONFIG_SENSORS_W83793 is not set
794# CONFIG_SENSORS_W83L785TS is not set 839# CONFIG_SENSORS_W83L785TS is not set
840# CONFIG_SENSORS_W83L786NG is not set
795# CONFIG_SENSORS_W83627HF is not set 841# CONFIG_SENSORS_W83627HF is not set
796# CONFIG_SENSORS_W83627EHF is not set 842# CONFIG_SENSORS_W83627EHF is not set
797# CONFIG_HWMON_DEBUG_CHIP is not set 843# CONFIG_HWMON_DEBUG_CHIP is not set
844# CONFIG_THERMAL is not set
845# CONFIG_THERMAL_HWMON is not set
798CONFIG_WATCHDOG=y 846CONFIG_WATCHDOG=y
799# CONFIG_WATCHDOG_NOWAYOUT is not set 847# CONFIG_WATCHDOG_NOWAYOUT is not set
800 848
@@ -810,21 +858,31 @@ CONFIG_BFIN_WDT=y
810# CONFIG_USBPCWATCHDOG is not set 858# CONFIG_USBPCWATCHDOG is not set
811 859
812# 860#
813# Sonics Silicon Backplane
814#
815CONFIG_SSB_POSSIBLE=y
816# CONFIG_SSB is not set
817
818#
819# Multifunction device drivers 861# Multifunction device drivers
820# 862#
863# CONFIG_MFD_CORE is not set
821# CONFIG_MFD_SM501 is not set 864# CONFIG_MFD_SM501 is not set
865# CONFIG_HTC_PASIC3 is not set
866# CONFIG_MFD_TMIO is not set
867# CONFIG_PMIC_DA903X is not set
868# CONFIG_MFD_WM8400 is not set
869# CONFIG_MFD_WM8350_I2C is not set
870# CONFIG_REGULATOR is not set
822 871
823# 872#
824# Multimedia devices 873# Multimedia devices
825# 874#
875
876#
877# Multimedia core support
878#
826# CONFIG_VIDEO_DEV is not set 879# CONFIG_VIDEO_DEV is not set
827# CONFIG_DVB_CORE is not set 880# CONFIG_DVB_CORE is not set
881# CONFIG_VIDEO_MEDIA is not set
882
883#
884# Multimedia drivers
885#
828# CONFIG_DAB is not set 886# CONFIG_DAB is not set
829 887
830# 888#
@@ -839,10 +897,6 @@ CONFIG_SSB_POSSIBLE=y
839# Display device support 897# Display device support
840# 898#
841# CONFIG_DISPLAY_SUPPORT is not set 899# CONFIG_DISPLAY_SUPPORT is not set
842
843#
844# Sound
845#
846# CONFIG_SOUND is not set 900# CONFIG_SOUND is not set
847CONFIG_USB_SUPPORT=y 901CONFIG_USB_SUPPORT=y
848CONFIG_USB_ARCH_HAS_HCD=y 902CONFIG_USB_ARCH_HAS_HCD=y
@@ -850,6 +904,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
850# CONFIG_USB_ARCH_HAS_EHCI is not set 904# CONFIG_USB_ARCH_HAS_EHCI is not set
851CONFIG_USB=y 905CONFIG_USB=y
852# CONFIG_USB_DEBUG is not set 906# CONFIG_USB_DEBUG is not set
907# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
853 908
854# 909#
855# Miscellaneous USB options 910# Miscellaneous USB options
@@ -860,40 +915,48 @@ CONFIG_USB_DEVICE_CLASS=y
860# CONFIG_USB_OTG is not set 915# CONFIG_USB_OTG is not set
861# CONFIG_USB_OTG_WHITELIST is not set 916# CONFIG_USB_OTG_WHITELIST is not set
862CONFIG_USB_OTG_BLACKLIST_HUB=y 917CONFIG_USB_OTG_BLACKLIST_HUB=y
918CONFIG_USB_MON=y
919# CONFIG_USB_WUSB is not set
920# CONFIG_USB_WUSB_CBAF is not set
863 921
864# 922#
865# USB Host Controller Drivers 923# USB Host Controller Drivers
866# 924#
925# CONFIG_USB_C67X00_HCD is not set
867# CONFIG_USB_ISP116X_HCD is not set 926# CONFIG_USB_ISP116X_HCD is not set
868# CONFIG_USB_ISP1362_HCD is not set
869# CONFIG_USB_ISP1760_HCD is not set 927# CONFIG_USB_ISP1760_HCD is not set
928# CONFIG_USB_ISP1362_HCD is not set
870# CONFIG_USB_SL811_HCD is not set 929# CONFIG_USB_SL811_HCD is not set
871# CONFIG_USB_R8A66597_HCD is not set 930# CONFIG_USB_R8A66597_HCD is not set
931# CONFIG_USB_HWA_HCD is not set
872CONFIG_USB_MUSB_HDRC=y 932CONFIG_USB_MUSB_HDRC=y
873CONFIG_USB_MUSB_SOC=y 933CONFIG_USB_MUSB_SOC=y
874 934
875# 935#
876# Blackfin high speed USB support 936# Blackfin high speed USB Support
877# 937#
878CONFIG_USB_MUSB_HOST=y 938CONFIG_USB_MUSB_HOST=y
879# CONFIG_USB_MUSB_PERIPHERAL is not set 939# CONFIG_USB_MUSB_PERIPHERAL is not set
880# CONFIG_USB_MUSB_OTG is not set 940# CONFIG_USB_MUSB_OTG is not set
881CONFIG_USB_MUSB_HDRC_HCD=y 941CONFIG_USB_MUSB_HDRC_HCD=y
882CONFIG_MUSB_PIO_ONLY=y 942CONFIG_MUSB_PIO_ONLY=y
883CONFIG_USB_MUSB_LOGLEVEL=0 943CONFIG_MUSB_DMA_POLL=y
944# CONFIG_USB_MUSB_DEBUG is not set
884 945
885# 946#
886# USB Device Class drivers 947# USB Device Class drivers
887# 948#
888# CONFIG_USB_ACM is not set 949# CONFIG_USB_ACM is not set
889# CONFIG_USB_PRINTER is not set 950# CONFIG_USB_PRINTER is not set
951# CONFIG_USB_WDM is not set
952# CONFIG_USB_TMC is not set
890 953
891# 954#
892# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 955# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
893# 956#
894 957
895# 958#
896# may also be needed; see USB_STORAGE Help for more information 959# see USB_STORAGE Help for more information
897# 960#
898# CONFIG_USB_LIBUSUAL is not set 961# CONFIG_USB_LIBUSUAL is not set
899 962
@@ -901,15 +964,10 @@ CONFIG_USB_MUSB_LOGLEVEL=0
901# USB Imaging devices 964# USB Imaging devices
902# 965#
903# CONFIG_USB_MDC800 is not set 966# CONFIG_USB_MDC800 is not set
904CONFIG_USB_MON=y
905 967
906# 968#
907# USB port drivers 969# USB port drivers
908# 970#
909
910#
911# USB Serial Converter support
912#
913# CONFIG_USB_SERIAL is not set 971# CONFIG_USB_SERIAL is not set
914 972
915# 973#
@@ -918,7 +976,7 @@ CONFIG_USB_MON=y
918# CONFIG_USB_EMI62 is not set 976# CONFIG_USB_EMI62 is not set
919# CONFIG_USB_EMI26 is not set 977# CONFIG_USB_EMI26 is not set
920# CONFIG_USB_ADUTUX is not set 978# CONFIG_USB_ADUTUX is not set
921# CONFIG_USB_AUERSWALD is not set 979# CONFIG_USB_SEVSEG is not set
922# CONFIG_USB_RIO500 is not set 980# CONFIG_USB_RIO500 is not set
923# CONFIG_USB_LEGOTOWER is not set 981# CONFIG_USB_LEGOTOWER is not set
924# CONFIG_USB_LCD is not set 982# CONFIG_USB_LCD is not set
@@ -934,17 +992,13 @@ CONFIG_USB_MON=y
934# CONFIG_USB_LD is not set 992# CONFIG_USB_LD is not set
935# CONFIG_USB_TRANCEVIBRATOR is not set 993# CONFIG_USB_TRANCEVIBRATOR is not set
936# CONFIG_USB_IOWARRIOR is not set 994# CONFIG_USB_IOWARRIOR is not set
937 995# CONFIG_USB_ISIGHTFW is not set
938# 996# CONFIG_USB_VST is not set
939# USB DSL modem support
940#
941
942#
943# USB Gadget Support
944#
945# CONFIG_USB_GADGET is not set 997# CONFIG_USB_GADGET is not set
946# CONFIG_MMC is not set 998# CONFIG_MMC is not set
999# CONFIG_MEMSTICK is not set
947# CONFIG_NEW_LEDS is not set 1000# CONFIG_NEW_LEDS is not set
1001# CONFIG_ACCESSIBILITY is not set
948CONFIG_RTC_LIB=y 1002CONFIG_RTC_LIB=y
949CONFIG_RTC_CLASS=y 1003CONFIG_RTC_CLASS=y
950CONFIG_RTC_HCTOSYS=y 1004CONFIG_RTC_HCTOSYS=y
@@ -973,51 +1027,59 @@ CONFIG_RTC_INTF_DEV=y
973# CONFIG_RTC_DRV_PCF8563 is not set 1027# CONFIG_RTC_DRV_PCF8563 is not set
974# CONFIG_RTC_DRV_PCF8583 is not set 1028# CONFIG_RTC_DRV_PCF8583 is not set
975# CONFIG_RTC_DRV_M41T80 is not set 1029# CONFIG_RTC_DRV_M41T80 is not set
1030# CONFIG_RTC_DRV_S35390A is not set
1031# CONFIG_RTC_DRV_FM3130 is not set
1032# CONFIG_RTC_DRV_RX8581 is not set
976 1033
977# 1034#
978# SPI RTC drivers 1035# SPI RTC drivers
979# 1036#
980# CONFIG_RTC_DRV_RS5C348 is not set 1037# CONFIG_RTC_DRV_M41T94 is not set
1038# CONFIG_RTC_DRV_DS1305 is not set
1039# CONFIG_RTC_DRV_DS1390 is not set
981# CONFIG_RTC_DRV_MAX6902 is not set 1040# CONFIG_RTC_DRV_MAX6902 is not set
1041# CONFIG_RTC_DRV_R9701 is not set
1042# CONFIG_RTC_DRV_RS5C348 is not set
1043# CONFIG_RTC_DRV_DS3234 is not set
982 1044
983# 1045#
984# Platform RTC drivers 1046# Platform RTC drivers
985# 1047#
1048# CONFIG_RTC_DRV_DS1286 is not set
1049# CONFIG_RTC_DRV_DS1511 is not set
986# CONFIG_RTC_DRV_DS1553 is not set 1050# CONFIG_RTC_DRV_DS1553 is not set
987# CONFIG_RTC_DRV_STK17TA8 is not set
988# CONFIG_RTC_DRV_DS1742 is not set 1051# CONFIG_RTC_DRV_DS1742 is not set
1052# CONFIG_RTC_DRV_STK17TA8 is not set
989# CONFIG_RTC_DRV_M48T86 is not set 1053# CONFIG_RTC_DRV_M48T86 is not set
1054# CONFIG_RTC_DRV_M48T35 is not set
990# CONFIG_RTC_DRV_M48T59 is not set 1055# CONFIG_RTC_DRV_M48T59 is not set
1056# CONFIG_RTC_DRV_BQ4802 is not set
991# CONFIG_RTC_DRV_V3020 is not set 1057# CONFIG_RTC_DRV_V3020 is not set
992 1058
993# 1059#
994# on-CPU RTC drivers 1060# on-CPU RTC drivers
995# 1061#
996CONFIG_RTC_DRV_BFIN=y 1062CONFIG_RTC_DRV_BFIN=y
997 1063# CONFIG_DMADEVICES is not set
998#
999# Userspace I/O
1000#
1001# CONFIG_UIO is not set 1064# CONFIG_UIO is not set
1065# CONFIG_STAGING is not set
1002 1066
1003# 1067#
1004# File systems 1068# File systems
1005# 1069#
1006# CONFIG_EXT2_FS is not set 1070# CONFIG_EXT2_FS is not set
1007# CONFIG_EXT3_FS is not set 1071# CONFIG_EXT3_FS is not set
1008# CONFIG_EXT4DEV_FS is not set 1072# CONFIG_EXT4_FS is not set
1009# CONFIG_REISERFS_FS is not set 1073# CONFIG_REISERFS_FS is not set
1010# CONFIG_JFS_FS is not set 1074# CONFIG_JFS_FS is not set
1011# CONFIG_FS_POSIX_ACL is not set 1075# CONFIG_FS_POSIX_ACL is not set
1076CONFIG_FILE_LOCKING=y
1012# CONFIG_XFS_FS is not set 1077# CONFIG_XFS_FS is not set
1013# CONFIG_GFS2_FS is not set
1014# CONFIG_OCFS2_FS is not set 1078# CONFIG_OCFS2_FS is not set
1015# CONFIG_MINIX_FS is not set 1079# CONFIG_DNOTIFY is not set
1016# CONFIG_ROMFS_FS is not set
1017CONFIG_INOTIFY=y 1080CONFIG_INOTIFY=y
1018CONFIG_INOTIFY_USER=y 1081CONFIG_INOTIFY_USER=y
1019# CONFIG_QUOTA is not set 1082# CONFIG_QUOTA is not set
1020# CONFIG_DNOTIFY is not set
1021# CONFIG_AUTOFS_FS is not set 1083# CONFIG_AUTOFS_FS is not set
1022# CONFIG_AUTOFS4_FS is not set 1084# CONFIG_AUTOFS4_FS is not set
1023# CONFIG_FUSE_FS is not set 1085# CONFIG_FUSE_FS is not set
@@ -1059,8 +1121,11 @@ CONFIG_SYSFS=y
1059# CONFIG_JFFS2_FS is not set 1121# CONFIG_JFFS2_FS is not set
1060# CONFIG_CRAMFS is not set 1122# CONFIG_CRAMFS is not set
1061# CONFIG_VXFS_FS is not set 1123# CONFIG_VXFS_FS is not set
1124# CONFIG_MINIX_FS is not set
1125# CONFIG_OMFS_FS is not set
1062# CONFIG_HPFS_FS is not set 1126# CONFIG_HPFS_FS is not set
1063# CONFIG_QNX4FS_FS is not set 1127# CONFIG_QNX4FS_FS is not set
1128# CONFIG_ROMFS_FS is not set
1064# CONFIG_SYSV_FS is not set 1129# CONFIG_SYSV_FS is not set
1065# CONFIG_UFS_FS is not set 1130# CONFIG_UFS_FS is not set
1066CONFIG_NETWORK_FILESYSTEMS=y 1131CONFIG_NETWORK_FILESYSTEMS=y
@@ -1068,13 +1133,12 @@ CONFIG_NFS_FS=m
1068CONFIG_NFS_V3=y 1133CONFIG_NFS_V3=y
1069# CONFIG_NFS_V3_ACL is not set 1134# CONFIG_NFS_V3_ACL is not set
1070# CONFIG_NFS_V4 is not set 1135# CONFIG_NFS_V4 is not set
1071# CONFIG_NFS_DIRECTIO is not set
1072# CONFIG_NFSD is not set 1136# CONFIG_NFSD is not set
1073CONFIG_LOCKD=m 1137CONFIG_LOCKD=m
1074CONFIG_LOCKD_V4=y 1138CONFIG_LOCKD_V4=y
1075CONFIG_NFS_COMMON=y 1139CONFIG_NFS_COMMON=y
1076CONFIG_SUNRPC=m 1140CONFIG_SUNRPC=m
1077# CONFIG_SUNRPC_BIND34 is not set 1141# CONFIG_SUNRPC_REGISTER_V4 is not set
1078# CONFIG_RPCSEC_GSS_KRB5 is not set 1142# CONFIG_RPCSEC_GSS_KRB5 is not set
1079# CONFIG_RPCSEC_GSS_SPKM3 is not set 1143# CONFIG_RPCSEC_GSS_SPKM3 is not set
1080CONFIG_SMB_FS=m 1144CONFIG_SMB_FS=m
@@ -1130,7 +1194,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1130# CONFIG_NLS_KOI8_U is not set 1194# CONFIG_NLS_KOI8_U is not set
1131# CONFIG_NLS_UTF8 is not set 1195# CONFIG_NLS_UTF8 is not set
1132# CONFIG_DLM is not set 1196# CONFIG_DLM is not set
1133# CONFIG_INSTRUMENTATION is not set
1134 1197
1135# 1198#
1136# Kernel hacking 1199# Kernel hacking
@@ -1138,14 +1201,61 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1138# CONFIG_PRINTK_TIME is not set 1201# CONFIG_PRINTK_TIME is not set
1139CONFIG_ENABLE_WARN_DEPRECATED=y 1202CONFIG_ENABLE_WARN_DEPRECATED=y
1140CONFIG_ENABLE_MUST_CHECK=y 1203CONFIG_ENABLE_MUST_CHECK=y
1204CONFIG_FRAME_WARN=1024
1141# CONFIG_MAGIC_SYSRQ is not set 1205# CONFIG_MAGIC_SYSRQ is not set
1142# CONFIG_UNUSED_SYMBOLS is not set 1206# CONFIG_UNUSED_SYMBOLS is not set
1143CONFIG_DEBUG_FS=y 1207CONFIG_DEBUG_FS=y
1144# CONFIG_HEADERS_CHECK is not set 1208# CONFIG_HEADERS_CHECK is not set
1145# CONFIG_DEBUG_KERNEL is not set 1209CONFIG_DEBUG_KERNEL=y
1210# CONFIG_DEBUG_SHIRQ is not set
1211CONFIG_DETECT_SOFTLOCKUP=y
1212# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1213CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1214# CONFIG_SCHED_DEBUG is not set
1215# CONFIG_SCHEDSTATS is not set
1216# CONFIG_TIMER_STATS is not set
1217# CONFIG_DEBUG_OBJECTS is not set
1218# CONFIG_DEBUG_SLAB is not set
1219# CONFIG_DEBUG_RT_MUTEXES is not set
1220# CONFIG_RT_MUTEX_TESTER is not set
1221# CONFIG_DEBUG_SPINLOCK is not set
1222# CONFIG_DEBUG_MUTEXES is not set
1223# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1224# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1225# CONFIG_DEBUG_KOBJECT is not set
1146# CONFIG_DEBUG_BUGVERBOSE is not set 1226# CONFIG_DEBUG_BUGVERBOSE is not set
1227# CONFIG_DEBUG_INFO is not set
1228# CONFIG_DEBUG_VM is not set
1229# CONFIG_DEBUG_WRITECOUNT is not set
1230# CONFIG_DEBUG_MEMORY_INIT is not set
1231# CONFIG_DEBUG_LIST is not set
1232# CONFIG_DEBUG_SG is not set
1233# CONFIG_FRAME_POINTER is not set
1234# CONFIG_BOOT_PRINTK_DELAY is not set
1235# CONFIG_RCU_TORTURE_TEST is not set
1236# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1237# CONFIG_BACKTRACE_SELF_TEST is not set
1238# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1239# CONFIG_FAULT_INJECTION is not set
1240# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1241
1242#
1243# Tracers
1244#
1245# CONFIG_SCHED_TRACER is not set
1246# CONFIG_CONTEXT_SWITCH_TRACER is not set
1247# CONFIG_BOOT_TRACER is not set
1248# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1147# CONFIG_SAMPLES is not set 1249# CONFIG_SAMPLES is not set
1250CONFIG_HAVE_ARCH_KGDB=y
1251# CONFIG_KGDB is not set
1252# CONFIG_DEBUG_STACKOVERFLOW is not set
1253# CONFIG_DEBUG_STACK_USAGE is not set
1254# CONFIG_KGDB_TESTCASE is not set
1255CONFIG_DEBUG_VERBOSE=y
1148CONFIG_DEBUG_MMRS=y 1256CONFIG_DEBUG_MMRS=y
1257# CONFIG_DEBUG_HWERR is not set
1258# CONFIG_DEBUG_DOUBLEFAULT is not set
1149CONFIG_DEBUG_HUNT_FOR_ZERO=y 1259CONFIG_DEBUG_HUNT_FOR_ZERO=y
1150CONFIG_DEBUG_BFIN_HWTRACE_ON=y 1260CONFIG_DEBUG_BFIN_HWTRACE_ON=y
1151CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y 1261CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
@@ -1154,7 +1264,7 @@ CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y
1154CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 1264CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0
1155# CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set 1265# CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set
1156# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 1266# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
1157CONFIG_EARLY_PRINTK=y 1267# CONFIG_EARLY_PRINTK is not set
1158# CONFIG_CPLB_INFO is not set 1268# CONFIG_CPLB_INFO is not set
1159CONFIG_ACCESS_CHECK=y 1269CONFIG_ACCESS_CHECK=y
1160 1270
@@ -1163,10 +1273,96 @@ CONFIG_ACCESS_CHECK=y
1163# 1273#
1164# CONFIG_KEYS is not set 1274# CONFIG_KEYS is not set
1165CONFIG_SECURITY=y 1275CONFIG_SECURITY=y
1276# CONFIG_SECURITYFS is not set
1166# CONFIG_SECURITY_NETWORK is not set 1277# CONFIG_SECURITY_NETWORK is not set
1167# CONFIG_SECURITY_CAPABILITIES is not set 1278# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1168# CONFIG_SECURITY_ROOTPLUG is not set 1279# CONFIG_SECURITY_ROOTPLUG is not set
1169# CONFIG_CRYPTO is not set 1280CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1281CONFIG_CRYPTO=y
1282
1283#
1284# Crypto core or helper
1285#
1286# CONFIG_CRYPTO_FIPS is not set
1287# CONFIG_CRYPTO_MANAGER is not set
1288# CONFIG_CRYPTO_MANAGER2 is not set
1289# CONFIG_CRYPTO_GF128MUL is not set
1290# CONFIG_CRYPTO_NULL is not set
1291# CONFIG_CRYPTO_CRYPTD is not set
1292# CONFIG_CRYPTO_AUTHENC is not set
1293# CONFIG_CRYPTO_TEST is not set
1294
1295#
1296# Authenticated Encryption with Associated Data
1297#
1298# CONFIG_CRYPTO_CCM is not set
1299# CONFIG_CRYPTO_GCM is not set
1300# CONFIG_CRYPTO_SEQIV is not set
1301
1302#
1303# Block modes
1304#
1305# CONFIG_CRYPTO_CBC is not set
1306# CONFIG_CRYPTO_CTR is not set
1307# CONFIG_CRYPTO_CTS is not set
1308# CONFIG_CRYPTO_ECB is not set
1309# CONFIG_CRYPTO_LRW is not set
1310# CONFIG_CRYPTO_PCBC is not set
1311# CONFIG_CRYPTO_XTS is not set
1312
1313#
1314# Hash modes
1315#
1316# CONFIG_CRYPTO_HMAC is not set
1317# CONFIG_CRYPTO_XCBC is not set
1318
1319#
1320# Digest
1321#
1322# CONFIG_CRYPTO_CRC32C is not set
1323# CONFIG_CRYPTO_MD4 is not set
1324# CONFIG_CRYPTO_MD5 is not set
1325# CONFIG_CRYPTO_MICHAEL_MIC is not set
1326# CONFIG_CRYPTO_RMD128 is not set
1327# CONFIG_CRYPTO_RMD160 is not set
1328# CONFIG_CRYPTO_RMD256 is not set
1329# CONFIG_CRYPTO_RMD320 is not set
1330# CONFIG_CRYPTO_SHA1 is not set
1331# CONFIG_CRYPTO_SHA256 is not set
1332# CONFIG_CRYPTO_SHA512 is not set
1333# CONFIG_CRYPTO_TGR192 is not set
1334# CONFIG_CRYPTO_WP512 is not set
1335
1336#
1337# Ciphers
1338#
1339# CONFIG_CRYPTO_AES is not set
1340# CONFIG_CRYPTO_ANUBIS is not set
1341# CONFIG_CRYPTO_ARC4 is not set
1342# CONFIG_CRYPTO_BLOWFISH is not set
1343# CONFIG_CRYPTO_CAMELLIA is not set
1344# CONFIG_CRYPTO_CAST5 is not set
1345# CONFIG_CRYPTO_CAST6 is not set
1346# CONFIG_CRYPTO_DES is not set
1347# CONFIG_CRYPTO_FCRYPT is not set
1348# CONFIG_CRYPTO_KHAZAD is not set
1349# CONFIG_CRYPTO_SALSA20 is not set
1350# CONFIG_CRYPTO_SEED is not set
1351# CONFIG_CRYPTO_SERPENT is not set
1352# CONFIG_CRYPTO_TEA is not set
1353# CONFIG_CRYPTO_TWOFISH is not set
1354
1355#
1356# Compression
1357#
1358# CONFIG_CRYPTO_DEFLATE is not set
1359# CONFIG_CRYPTO_LZO is not set
1360
1361#
1362# Random Number Generation
1363#
1364# CONFIG_CRYPTO_ANSI_CPRNG is not set
1365CONFIG_CRYPTO_HW=y
1170 1366
1171# 1367#
1172# Library routines 1368# Library routines
@@ -1174,6 +1370,7 @@ CONFIG_SECURITY=y
1174CONFIG_BITREVERSE=y 1370CONFIG_BITREVERSE=y
1175CONFIG_CRC_CCITT=m 1371CONFIG_CRC_CCITT=m
1176# CONFIG_CRC16 is not set 1372# CONFIG_CRC16 is not set
1373# CONFIG_CRC_T10DIF is not set
1177# CONFIG_CRC_ITU_T is not set 1374# CONFIG_CRC_ITU_T is not set
1178CONFIG_CRC32=y 1375CONFIG_CRC32=y
1179# CONFIG_CRC7 is not set 1376# CONFIG_CRC7 is not set
diff --git a/arch/blackfin/configs/CM-BF548_defconfig b/arch/blackfin/configs/CM-BF548_defconfig
index efd68bc78f35..f410430b4e3d 100644
--- a/arch/blackfin/configs/CM-BF548_defconfig
+++ b/arch/blackfin/configs/CM-BF548_defconfig
@@ -336,8 +336,8 @@ CONFIG_BFIN_ICACHE=y
336CONFIG_BFIN_DCACHE=y 336CONFIG_BFIN_DCACHE=y
337# CONFIG_BFIN_DCACHE_BANKA is not set 337# CONFIG_BFIN_DCACHE_BANKA is not set
338# CONFIG_BFIN_ICACHE_LOCK is not set 338# CONFIG_BFIN_ICACHE_LOCK is not set
339# CONFIG_BFIN_WB is not set 339CONFIG_BFIN_WB=y
340CONFIG_BFIN_WT=y 340# CONFIG_BFIN_WT is not set
341CONFIG_L1_MAX_PIECE=16 341CONFIG_L1_MAX_PIECE=16
342# CONFIG_MPU is not set 342# CONFIG_MPU is not set
343 343
@@ -595,7 +595,7 @@ CONFIG_SCSI=y
595CONFIG_SCSI_DMA=y 595CONFIG_SCSI_DMA=y
596# CONFIG_SCSI_TGT is not set 596# CONFIG_SCSI_TGT is not set
597# CONFIG_SCSI_NETLINK is not set 597# CONFIG_SCSI_NETLINK is not set
598CONFIG_SCSI_PROC_FS=y 598# CONFIG_SCSI_PROC_FS is not set
599 599
600# 600#
601# SCSI support type (disk, tape, CD-ROM) 601# SCSI support type (disk, tape, CD-ROM)
@@ -798,7 +798,7 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
798# CONFIG_SENSORS_DS1374 is not set 798# CONFIG_SENSORS_DS1374 is not set
799# CONFIG_DS1682 is not set 799# CONFIG_DS1682 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_SENSORS_PCF8575 is not set 803# CONFIG_SENSORS_PCF8575 is not set
804# CONFIG_SENSORS_PCA9543 is not set 804# CONFIG_SENSORS_PCA9543 is not set
@@ -826,7 +826,7 @@ CONFIG_SPI_BFIN=y
826# 826#
827# SPI Protocol Masters 827# SPI Protocol Masters
828# 828#
829# CONFIG_SPI_AT25 is not set 829# CONFIG_EEPROM_AT25 is not set
830# CONFIG_SPI_SPIDEV is not set 830# CONFIG_SPI_SPIDEV is not set
831# CONFIG_SPI_TLE62X0 is not set 831# CONFIG_SPI_TLE62X0 is not set
832# CONFIG_W1 is not set 832# CONFIG_W1 is not set
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig
index 5d3901d23fd1..bd553da15db8 100644
--- a/arch/blackfin/configs/H8606_defconfig
+++ b/arch/blackfin/configs/H8606_defconfig
@@ -750,7 +750,7 @@ CONFIG_SPI_BFIN=y
750# 750#
751# SPI Protocol Masters 751# SPI Protocol Masters
752# 752#
753CONFIG_SPI_AT25=y 753CONFIG_EEPROM_AT25=y
754CONFIG_SPI_SPIDEV=y 754CONFIG_SPI_SPIDEV=y
755 755
756# 756#
diff --git a/arch/blackfin/configs/IP0X_defconfig b/arch/blackfin/configs/IP0X_defconfig
index e66f5daaa828..7db93874c987 100644
--- a/arch/blackfin/configs/IP0X_defconfig
+++ b/arch/blackfin/configs/IP0X_defconfig
@@ -612,7 +612,7 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
612CONFIG_SCSI=y 612CONFIG_SCSI=y
613# CONFIG_SCSI_TGT is not set 613# CONFIG_SCSI_TGT is not set
614# CONFIG_SCSI_NETLINK is not set 614# CONFIG_SCSI_NETLINK is not set
615CONFIG_SCSI_PROC_FS=y 615# CONFIG_SCSI_PROC_FS is not set
616 616
617# 617#
618# SCSI support type (disk, tape, CD-ROM) 618# SCSI support type (disk, tape, CD-ROM)
@@ -803,7 +803,7 @@ CONFIG_SPI_BFIN=y
803# 803#
804# SPI Protocol Masters 804# SPI Protocol Masters
805# 805#
806# CONFIG_SPI_AT25 is not set 806# CONFIG_EEPROM_AT25 is not set
807# CONFIG_SPI_SPIDEV is not set 807# CONFIG_SPI_SPIDEV is not set
808 808
809# 809#
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
index ce5dde9de9db..ad096702ac16 100644
--- a/arch/blackfin/configs/PNAV-10_defconfig
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -755,9 +755,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
755# Miscellaneous I2C Chip support 755# Miscellaneous I2C Chip support
756# 756#
757# CONFIG_DS1682 is not set 757# CONFIG_DS1682 is not set
758# CONFIG_AT24 is not set 758# CONFIG_EEPROM_AT24 is not set
759# CONFIG_SENSORS_AD5252 is not set 759# CONFIG_SENSORS_AD5252 is not set
760# CONFIG_SENSORS_EEPROM is not set 760# CONFIG_EEPROM_LEGACY is not set
761CONFIG_SENSORS_PCF8574=m 761CONFIG_SENSORS_PCF8574=m
762# CONFIG_PCF8575 is not set 762# CONFIG_PCF8575 is not set
763# CONFIG_SENSORS_PCA9539 is not set 763# CONFIG_SENSORS_PCA9539 is not set
@@ -781,7 +781,7 @@ CONFIG_SPI_BFIN=y
781# 781#
782# SPI Protocol Masters 782# SPI Protocol Masters
783# 783#
784# CONFIG_SPI_AT25 is not set 784# CONFIG_EEPROM_AT25 is not set
785# CONFIG_SPI_SPIDEV is not set 785# CONFIG_SPI_SPIDEV is not set
786# CONFIG_SPI_TLE62X0 is not set 786# CONFIG_SPI_TLE62X0 is not set
787CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 787CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/SRV1_defconfig b/arch/blackfin/configs/SRV1_defconfig
index 7c8250d6fa66..a46529c6ade3 100644
--- a/arch/blackfin/configs/SRV1_defconfig
+++ b/arch/blackfin/configs/SRV1_defconfig
@@ -282,8 +282,8 @@ CONFIG_BFIN_ICACHE=y
282CONFIG_BFIN_DCACHE=y 282CONFIG_BFIN_DCACHE=y
283# CONFIG_BFIN_DCACHE_BANKA is not set 283# CONFIG_BFIN_DCACHE_BANKA is not set
284# CONFIG_BFIN_ICACHE_LOCK is not set 284# CONFIG_BFIN_ICACHE_LOCK is not set
285# CONFIG_BFIN_WB is not set 285CONFIG_BFIN_WB=y
286CONFIG_BFIN_WT=y 286# CONFIG_BFIN_WT is not set
287CONFIG_L1_MAX_PIECE=16 287CONFIG_L1_MAX_PIECE=16
288 288
289# 289#
@@ -798,7 +798,7 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
798# CONFIG_SENSORS_DS1337 is not set 798# CONFIG_SENSORS_DS1337 is not set
799# CONFIG_SENSORS_DS1374 is not set 799# CONFIG_SENSORS_DS1374 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_SENSORS_PCF8575 is not set 803# CONFIG_SENSORS_PCF8575 is not set
804# CONFIG_SENSORS_PCA9543 is not set 804# CONFIG_SENSORS_PCA9543 is not set
@@ -826,7 +826,7 @@ CONFIG_SPI_BFIN=y
826# 826#
827# SPI Protocol Masters 827# SPI Protocol Masters
828# 828#
829CONFIG_SPI_AT25=m 829CONFIG_EEPROM_AT25=m
830# CONFIG_SPI_SPIDEV is not set 830# CONFIG_SPI_SPIDEV is not set
831 831
832# 832#
diff --git a/arch/blackfin/configs/TCM-BF537_defconfig b/arch/blackfin/configs/TCM-BF537_defconfig
index 9af522c7dadf..97a1f1d20dcf 100644
--- a/arch/blackfin/configs/TCM-BF537_defconfig
+++ b/arch/blackfin/configs/TCM-BF537_defconfig
@@ -533,7 +533,7 @@ CONFIG_SPI_BFIN=y
533# 533#
534# SPI Protocol Masters 534# SPI Protocol Masters
535# 535#
536# CONFIG_SPI_AT25 is not set 536# CONFIG_EEPROM_AT25 is not set
537# CONFIG_SPI_SPIDEV is not set 537# CONFIG_SPI_SPIDEV is not set
538# CONFIG_SPI_TLE62X0 is not set 538# CONFIG_SPI_TLE62X0 is not set
539CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 539CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/include/asm/Kbuild b/arch/blackfin/include/asm/Kbuild
index d0d1ac435544..09c31418cc08 100644
--- a/arch/blackfin/include/asm/Kbuild
+++ b/arch/blackfin/include/asm/Kbuild
@@ -1,4 +1,4 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3unifdef-y += bfin_sport.h
3unifdef-y += fixed_code.h 4unifdef-y += fixed_code.h
4unifdef-y += swab.h
diff --git a/arch/blackfin/include/asm/bfin_sport.h b/arch/blackfin/include/asm/bfin_sport.h
index fe88a2c19213..65a651db5b07 100644
--- a/arch/blackfin/include/asm/bfin_sport.h
+++ b/arch/blackfin/include/asm/bfin_sport.h
@@ -1,30 +1,9 @@
1/* 1/*
2 * File: include/asm-blackfin/bfin_sport.h 2 * bfin_sport.h - userspace header for bfin sport driver
3 * Based on:
4 * Author: Roy Huang (roy.huang@analog.com)
5 * 3 *
6 * Created: Thu Aug. 24 2006 4 * Copyright 2004-2008 Analog Devices Inc.
7 * Description:
8 * 5 *
9 * Modified: 6 * Licensed under the GPL-2 or later.
10 * Copyright 2004-2006 Analog Devices Inc.
11 *
12 * Bugs: Enter bugs at http://blackfin.uclinux.org/
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 2 of the License, or
17 * (at your option) any later version.
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, see the file COPYING, or write
26 * to the Free Software Foundation, Inc.,
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 7 */
29 8
30#ifndef __BFIN_SPORT_H__ 9#ifndef __BFIN_SPORT_H__
@@ -42,11 +21,10 @@
42#define NORM_FORMAT 0x0 21#define NORM_FORMAT 0x0
43#define ALAW_FORMAT 0x2 22#define ALAW_FORMAT 0x2
44#define ULAW_FORMAT 0x3 23#define ULAW_FORMAT 0x3
45struct sport_register;
46 24
47/* Function driver which use sport must initialize the structure */ 25/* Function driver which use sport must initialize the structure */
48struct sport_config { 26struct sport_config {
49 /*TDM (multichannels), I2S or other mode */ 27 /* TDM (multichannels), I2S or other mode */
50 unsigned int mode:3; 28 unsigned int mode:3;
51 29
52 /* if TDM mode is selected, channels must be set */ 30 /* if TDM mode is selected, channels must be set */
@@ -72,12 +50,18 @@ struct sport_config {
72 int serial_clk; 50 int serial_clk;
73 int fsync_clk; 51 int fsync_clk;
74 52
75 unsigned int data_format:2; /*Normal, u-law or a-law */ 53 unsigned int data_format:2; /* Normal, u-law or a-law */
76 54
77 int word_len; /* How length of the word in bits, 3-32 bits */ 55 int word_len; /* How length of the word in bits, 3-32 bits */
78 int dma_enabled; 56 int dma_enabled;
79}; 57};
80 58
59/* Userspace interface */
60#define SPORT_IOC_MAGIC 'P'
61#define SPORT_IOC_CONFIG _IOWR('P', 0x01, struct sport_config)
62
63#ifdef __KERNEL__
64
81struct sport_register { 65struct sport_register {
82 unsigned short tcr1; 66 unsigned short tcr1;
83 unsigned short reserved0; 67 unsigned short reserved0;
@@ -117,9 +101,6 @@ struct sport_register {
117 unsigned long mrcs3; 101 unsigned long mrcs3;
118}; 102};
119 103
120#define SPORT_IOC_MAGIC 'P'
121#define SPORT_IOC_CONFIG _IOWR('P', 0x01, struct sport_config)
122
123struct sport_dev { 104struct sport_dev {
124 struct cdev cdev; /* Char device structure */ 105 struct cdev cdev; /* Char device structure */
125 106
@@ -149,6 +130,8 @@ struct sport_dev {
149 struct sport_config config; 130 struct sport_config config;
150}; 131};
151 132
133#endif
134
152#define SPORT_TCR1 0 135#define SPORT_TCR1 0
153#define SPORT_TCR2 1 136#define SPORT_TCR2 1
154#define SPORT_TCLKDIV 2 137#define SPORT_TCLKDIV 2
@@ -169,4 +152,4 @@ struct sport_dev {
169#define SPORT_MRCS2 22 152#define SPORT_MRCS2 22
170#define SPORT_MRCS3 23 153#define SPORT_MRCS3 23
171 154
172#endif /*__BFIN_SPORT_H__*/ 155#endif
diff --git a/arch/blackfin/include/asm/byteorder.h b/arch/blackfin/include/asm/byteorder.h
index b9e797a497b4..3e69106a4d37 100644
--- a/arch/blackfin/include/asm/byteorder.h
+++ b/arch/blackfin/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _BLACKFIN_BYTEORDER_H 1#ifndef _BLACKFIN_BYTEORDER_H
2#define _BLACKFIN_BYTEORDER_H 2#define _BLACKFIN_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
6 5
7#endif /* _BLACKFIN_BYTEORDER_H */ 6#endif /* _BLACKFIN_BYTEORDER_H */
diff --git a/arch/blackfin/include/asm/checksum.h b/arch/blackfin/include/asm/checksum.h
index f67289a0d8d2..793581fc9556 100644
--- a/arch/blackfin/include/asm/checksum.h
+++ b/arch/blackfin/include/asm/checksum.h
@@ -63,23 +63,23 @@ static inline __wsum
63csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 63csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
64 unsigned short proto, __wsum sum) 64 unsigned short proto, __wsum sum)
65{ 65{
66 66 unsigned int carry;
67 __asm__ ("%0 = %0 + %1;\n\t" 67
68 "CC = AC0;\n\t" 68 __asm__ ("%0 = %0 + %2;\n\t"
69 "if !CC jump 4;\n\t" 69 "CC = AC0;\n\t"
70 "%0 = %0 + %4;\n\t" 70 "%1 = CC;\n\t"
71 "%0 = %0 + %2;\n\t" 71 "%0 = %0 + %1;\n\t"
72 "CC = AC0;\n\t" 72 "%0 = %0 + %3;\n\t"
73 "if !CC jump 4;\n\t" 73 "CC = AC0;\n\t"
74 "%0 = %0 + %4;\n\t" 74 "%1 = CC;\n\t"
75 "%0 = %0 + %3;\n\t" 75 "%0 = %0 + %1;\n\t"
76 "CC = AC0;\n\t" 76 "%0 = %0 + %4;\n\t"
77 "if !CC jump 4;\n\t" 77 "CC = AC0;\n\t"
78 "%0 = %0 + %4;\n\t" 78 "%1 = CC;\n\t"
79 "NOP;\n\t" 79 "%0 = %0 + %1;\n\t"
80 : "=d" (sum) 80 : "=d" (sum), "=&d" (carry)
81 : "d" (daddr), "d" (saddr), "d" ((ntohs(len)<<16)+proto*256), "d" (1), "0"(sum) 81 : "d" (daddr), "d" (saddr), "d" ((len + proto) << 8), "0"(sum)
82 : "CC"); 82 : "CC");
83 83
84 return (sum); 84 return (sum);
85} 85}
diff --git a/arch/blackfin/include/asm/delay.h b/arch/blackfin/include/asm/delay.h
index 0889c3abb593..c31f91cc1d5d 100644
--- a/arch/blackfin/include/asm/delay.h
+++ b/arch/blackfin/include/asm/delay.h
@@ -13,29 +13,7 @@
13 13
14static inline void __delay(unsigned long loops) 14static inline void __delay(unsigned long loops)
15{ 15{
16 if (ANOMALY_05000312) { 16__asm__ __volatile__ (
17 /* Interrupted loads to loop registers -> bad */
18 unsigned long tmp;
19 __asm__ __volatile__(
20 "[--SP] = LC0;"
21 "[--SP] = LT0;"
22 "[--SP] = LB0;"
23 "LSETUP (1f,1f) LC0 = %1;"
24 "1: NOP;"
25 /* We take advantage of the fact that LC0 is 0 at
26 * the end of the loop. Otherwise we'd need some
27 * NOPs after the CLI here.
28 */
29 "CLI %0;"
30 "LB0 = [SP++];"
31 "LT0 = [SP++];"
32 "LC0 = [SP++];"
33 "STI %0;"
34 : "=d" (tmp)
35 : "a" (loops)
36 );
37 } else
38 __asm__ __volatile__ (
39 "LSETUP(1f, 1f) LC0 = %0;" 17 "LSETUP(1f, 1f) LC0 = %0;"
40 "1: NOP;" 18 "1: NOP;"
41 : 19 :
@@ -47,16 +25,15 @@ static inline void __delay(unsigned long loops)
47#include <linux/param.h> /* needed for HZ */ 25#include <linux/param.h> /* needed for HZ */
48 26
49/* 27/*
50 * Use only for very small delays ( < 1 msec). Should probably use a 28 * close approximation borrowed from m68knommu to avoid 64-bit math
51 * lookup table, really, as the multiplications take much too long with
52 * short delays. This is a "reasonable" implementation, though (and the
53 * first constant multiplications gets optimized away if the delay is
54 * a constant)
55 */ 29 */
30
31#define HZSCALE (268435456 / (1000000/HZ))
32
56static inline void udelay(unsigned long usecs) 33static inline void udelay(unsigned long usecs)
57{ 34{
58 extern unsigned long loops_per_jiffy; 35 extern unsigned long loops_per_jiffy;
59 __delay(usecs * loops_per_jiffy / (1000000 / HZ)); 36 __delay((((usecs * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6);
60} 37}
61 38
62#endif 39#endif
diff --git a/arch/blackfin/include/asm/gpio.h b/arch/blackfin/include/asm/gpio.h
index 9477d82fcad2..d4a082ef75b4 100644
--- a/arch/blackfin/include/asm/gpio.h
+++ b/arch/blackfin/include/asm/gpio.h
@@ -27,60 +27,6 @@
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 28 */
29 29
30/*
31* Number BF537/6/4 BF561 BF533/2/1
32* BF527/5/2
33*
34* GPIO_0 PF0 PF0 PF0
35* GPIO_1 PF1 PF1 PF1
36* GPIO_2 PF2 PF2 PF2
37* GPIO_3 PF3 PF3 PF3
38* GPIO_4 PF4 PF4 PF4
39* GPIO_5 PF5 PF5 PF5
40* GPIO_6 PF6 PF6 PF6
41* GPIO_7 PF7 PF7 PF7
42* GPIO_8 PF8 PF8 PF8
43* GPIO_9 PF9 PF9 PF9
44* GPIO_10 PF10 PF10 PF10
45* GPIO_11 PF11 PF11 PF11
46* GPIO_12 PF12 PF12 PF12
47* GPIO_13 PF13 PF13 PF13
48* GPIO_14 PF14 PF14 PF14
49* GPIO_15 PF15 PF15 PF15
50* GPIO_16 PG0 PF16
51* GPIO_17 PG1 PF17
52* GPIO_18 PG2 PF18
53* GPIO_19 PG3 PF19
54* GPIO_20 PG4 PF20
55* GPIO_21 PG5 PF21
56* GPIO_22 PG6 PF22
57* GPIO_23 PG7 PF23
58* GPIO_24 PG8 PF24
59* GPIO_25 PG9 PF25
60* GPIO_26 PG10 PF26
61* GPIO_27 PG11 PF27
62* GPIO_28 PG12 PF28
63* GPIO_29 PG13 PF29
64* GPIO_30 PG14 PF30
65* GPIO_31 PG15 PF31
66* GPIO_32 PH0 PF32
67* GPIO_33 PH1 PF33
68* GPIO_34 PH2 PF34
69* GPIO_35 PH3 PF35
70* GPIO_36 PH4 PF36
71* GPIO_37 PH5 PF37
72* GPIO_38 PH6 PF38
73* GPIO_39 PH7 PF39
74* GPIO_40 PH8 PF40
75* GPIO_41 PH9 PF41
76* GPIO_42 PH10 PF42
77* GPIO_43 PH11 PF43
78* GPIO_44 PH12 PF44
79* GPIO_45 PH13 PF45
80* GPIO_46 PH14 PF46
81* GPIO_47 PH15 PF47
82*/
83
84#ifndef __ARCH_BLACKFIN_GPIO_H__ 30#ifndef __ARCH_BLACKFIN_GPIO_H__
85#define __ARCH_BLACKFIN_GPIO_H__ 31#define __ARCH_BLACKFIN_GPIO_H__
86 32
@@ -295,10 +241,6 @@ int bfin_gpio_direction_output(unsigned gpio, int value);
295int bfin_gpio_get_value(unsigned gpio); 241int bfin_gpio_get_value(unsigned gpio);
296void bfin_gpio_set_value(unsigned gpio, int value); 242void bfin_gpio_set_value(unsigned gpio, int value);
297 243
298#ifndef BF548_FAMILY
299#define bfin_gpio_set_value(gpio, value) set_gpio_data(gpio, value)
300#endif
301
302#ifdef CONFIG_GPIOLIB 244#ifdef CONFIG_GPIOLIB
303#include <asm-generic/gpio.h> /* cansleep wrappers */ 245#include <asm-generic/gpio.h> /* cansleep wrappers */
304 246
diff --git a/arch/blackfin/include/asm/ipipe.h b/arch/blackfin/include/asm/ipipe.h
index 76f53d8b9a0d..343b56361ec9 100644
--- a/arch/blackfin/include/asm/ipipe.h
+++ b/arch/blackfin/include/asm/ipipe.h
@@ -35,9 +35,9 @@
35#include <asm/atomic.h> 35#include <asm/atomic.h>
36#include <asm/traps.h> 36#include <asm/traps.h>
37 37
38#define IPIPE_ARCH_STRING "1.8-00" 38#define IPIPE_ARCH_STRING "1.9-00"
39#define IPIPE_MAJOR_NUMBER 1 39#define IPIPE_MAJOR_NUMBER 1
40#define IPIPE_MINOR_NUMBER 8 40#define IPIPE_MINOR_NUMBER 9
41#define IPIPE_PATCH_NUMBER 0 41#define IPIPE_PATCH_NUMBER 0
42 42
43#ifdef CONFIG_SMP 43#ifdef CONFIG_SMP
@@ -83,9 +83,9 @@ struct ipipe_sysinfo {
83 "%2 = CYCLES2\n" \ 83 "%2 = CYCLES2\n" \
84 "CC = %2 == %0\n" \ 84 "CC = %2 == %0\n" \
85 "if ! CC jump 1b\n" \ 85 "if ! CC jump 1b\n" \
86 : "=r" (((unsigned long *)&t)[1]), \ 86 : "=d,a" (((unsigned long *)&t)[1]), \
87 "=r" (((unsigned long *)&t)[0]), \ 87 "=d,a" (((unsigned long *)&t)[0]), \
88 "=r" (__cy2) \ 88 "=d,a" (__cy2) \
89 : /*no input*/ : "CC"); \ 89 : /*no input*/ : "CC"); \
90 t; \ 90 t; \
91 }) 91 })
@@ -118,35 +118,40 @@ void __ipipe_disable_irqdesc(struct ipipe_domain *ipd,
118 118
119#define __ipipe_disable_irq(irq) (irq_desc[irq].chip->mask(irq)) 119#define __ipipe_disable_irq(irq) (irq_desc[irq].chip->mask(irq))
120 120
121#define __ipipe_lock_root() \ 121static inline int __ipipe_check_tickdev(const char *devname)
122 set_bit(IPIPE_ROOTLOCK_FLAG, &ipipe_root_domain->flags) 122{
123 return 1;
124}
123 125
124#define __ipipe_unlock_root() \ 126static inline void __ipipe_lock_root(void)
125 clear_bit(IPIPE_ROOTLOCK_FLAG, &ipipe_root_domain->flags) 127{
128 set_bit(IPIPE_SYNCDEFER_FLAG, &ipipe_root_cpudom_var(status));
129}
130
131static inline void __ipipe_unlock_root(void)
132{
133 clear_bit(IPIPE_SYNCDEFER_FLAG, &ipipe_root_cpudom_var(status));
134}
126 135
127void __ipipe_enable_pipeline(void); 136void __ipipe_enable_pipeline(void);
128 137
129#define __ipipe_hook_critical_ipi(ipd) do { } while (0) 138#define __ipipe_hook_critical_ipi(ipd) do { } while (0)
130 139
131#define __ipipe_sync_pipeline(syncmask) \ 140#define __ipipe_sync_pipeline ___ipipe_sync_pipeline
132 do { \ 141void ___ipipe_sync_pipeline(unsigned long syncmask);
133 struct ipipe_domain *ipd = ipipe_current_domain; \
134 if (likely(ipd != ipipe_root_domain || !test_bit(IPIPE_ROOTLOCK_FLAG, &ipd->flags))) \
135 __ipipe_sync_stage(syncmask); \
136 } while (0)
137 142
138void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs); 143void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs);
139 144
140int __ipipe_get_irq_priority(unsigned irq); 145int __ipipe_get_irq_priority(unsigned irq);
141 146
142int __ipipe_get_irqthread_priority(unsigned irq);
143
144void __ipipe_stall_root_raw(void); 147void __ipipe_stall_root_raw(void);
145 148
146void __ipipe_unstall_root_raw(void); 149void __ipipe_unstall_root_raw(void);
147 150
148void __ipipe_serial_debug(const char *fmt, ...); 151void __ipipe_serial_debug(const char *fmt, ...);
149 152
153asmlinkage void __ipipe_call_irqtail(unsigned long addr);
154
150DECLARE_PER_CPU(struct pt_regs, __ipipe_tick_regs); 155DECLARE_PER_CPU(struct pt_regs, __ipipe_tick_regs);
151 156
152extern unsigned long __ipipe_core_clock; 157extern unsigned long __ipipe_core_clock;
@@ -162,42 +167,25 @@ static inline unsigned long __ipipe_ffnz(unsigned long ul)
162 167
163#define __ipipe_run_irqtail() /* Must be a macro */ \ 168#define __ipipe_run_irqtail() /* Must be a macro */ \
164 do { \ 169 do { \
165 asmlinkage void __ipipe_call_irqtail(void); \
166 unsigned long __pending; \ 170 unsigned long __pending; \
167 CSYNC(); \ 171 CSYNC(); \
168 __pending = bfin_read_IPEND(); \ 172 __pending = bfin_read_IPEND(); \
169 if (__pending & 0x8000) { \ 173 if (__pending & 0x8000) { \
170 __pending &= ~0x8010; \ 174 __pending &= ~0x8010; \
171 if (__pending && (__pending & (__pending - 1)) == 0) \ 175 if (__pending && (__pending & (__pending - 1)) == 0) \
172 __ipipe_call_irqtail(); \ 176 __ipipe_call_irqtail(__ipipe_irq_tail_hook); \
173 } \ 177 } \
174 } while (0) 178 } while (0)
175 179
176#define __ipipe_run_isr(ipd, irq) \ 180#define __ipipe_run_isr(ipd, irq) \
177 do { \ 181 do { \
178 if (ipd == ipipe_root_domain) { \ 182 if (ipd == ipipe_root_domain) { \
179 /* \ 183 local_irq_enable_hw(); \
180 * Note: the I-pipe implements a threaded interrupt model on \ 184 if (ipipe_virtual_irq_p(irq)) \
181 * this arch for Linux external IRQs. The interrupt handler we \
182 * call here only wakes up the associated IRQ thread. \
183 */ \
184 if (ipipe_virtual_irq_p(irq)) { \
185 /* No irqtail here; virtual interrupts have no effect \
186 on IPEND so there is no need for processing \
187 deferral. */ \
188 local_irq_enable_nohead(ipd); \
189 ipd->irqs[irq].handler(irq, ipd->irqs[irq].cookie); \ 185 ipd->irqs[irq].handler(irq, ipd->irqs[irq].cookie); \
190 local_irq_disable_nohead(ipd); \ 186 else \
191 } else \
192 /* \
193 * No need to run the irqtail here either; \
194 * we can't be preempted by hw IRQs, so \
195 * non-Linux IRQs cannot stack over the short \
196 * thread wakeup code. Which in turn means \
197 * that no irqtail condition could be pending \
198 * for domains above Linux in the pipeline. \
199 */ \
200 ipd->irqs[irq].handler(irq, &__raw_get_cpu_var(__ipipe_tick_regs)); \ 187 ipd->irqs[irq].handler(irq, &__raw_get_cpu_var(__ipipe_tick_regs)); \
188 local_irq_disable_hw(); \
201 } else { \ 189 } else { \
202 __clear_bit(IPIPE_SYNC_FLAG, &ipipe_cpudom_var(ipd, status)); \ 190 __clear_bit(IPIPE_SYNC_FLAG, &ipipe_cpudom_var(ipd, status)); \
203 local_irq_enable_nohead(ipd); \ 191 local_irq_enable_nohead(ipd); \
@@ -217,42 +205,24 @@ void ipipe_init_irq_threads(void);
217 205
218int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc); 206int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc);
219 207
220#define IS_SYSIRQ(irq) ((irq) > IRQ_CORETMR && (irq) <= SYS_IRQS) 208#ifdef CONFIG_GENERIC_CLOCKEVENTS
221#define IS_GPIOIRQ(irq) ((irq) >= GPIO_IRQ_BASE && (irq) < NR_IRQS) 209#define IRQ_SYSTMR IRQ_CORETMR
222 210#define IRQ_PRIOTMR IRQ_CORETMR
211#else
223#define IRQ_SYSTMR IRQ_TIMER0 212#define IRQ_SYSTMR IRQ_TIMER0
224#define IRQ_PRIOTMR CONFIG_IRQ_TIMER0 213#define IRQ_PRIOTMR CONFIG_IRQ_TIMER0
214#endif
225 215
226#if defined(CONFIG_BF531) || defined(CONFIG_BF532) || defined(CONFIG_BF533) 216#ifdef CONFIG_BF561
227#define PRIO_GPIODEMUX(irq) CONFIG_PFA
228#elif defined(CONFIG_BF534) || defined(CONFIG_BF536) || defined(CONFIG_BF537)
229#define PRIO_GPIODEMUX(irq) CONFIG_IRQ_PROG_INTA
230#elif defined(CONFIG_BF52x)
231#define PRIO_GPIODEMUX(irq) ((irq) == IRQ_PORTF_INTA ? CONFIG_IRQ_PORTF_INTA : \
232 (irq) == IRQ_PORTG_INTA ? CONFIG_IRQ_PORTG_INTA : \
233 (irq) == IRQ_PORTH_INTA ? CONFIG_IRQ_PORTH_INTA : \
234 -1)
235#elif defined(CONFIG_BF561)
236#define PRIO_GPIODEMUX(irq) ((irq) == IRQ_PROG0_INTA ? CONFIG_IRQ_PROG0_INTA : \
237 (irq) == IRQ_PROG1_INTA ? CONFIG_IRQ_PROG1_INTA : \
238 (irq) == IRQ_PROG2_INTA ? CONFIG_IRQ_PROG2_INTA : \
239 -1)
240#define bfin_write_TIMER_DISABLE(val) bfin_write_TMRS8_DISABLE(val) 217#define bfin_write_TIMER_DISABLE(val) bfin_write_TMRS8_DISABLE(val)
241#define bfin_write_TIMER_ENABLE(val) bfin_write_TMRS8_ENABLE(val) 218#define bfin_write_TIMER_ENABLE(val) bfin_write_TMRS8_ENABLE(val)
242#define bfin_write_TIMER_STATUS(val) bfin_write_TMRS8_STATUS(val) 219#define bfin_write_TIMER_STATUS(val) bfin_write_TMRS8_STATUS(val)
243#define bfin_read_TIMER_STATUS() bfin_read_TMRS8_STATUS() 220#define bfin_read_TIMER_STATUS() bfin_read_TMRS8_STATUS()
244#elif defined(CONFIG_BF54x) 221#elif defined(CONFIG_BF54x)
245#define PRIO_GPIODEMUX(irq) ((irq) == IRQ_PINT0 ? CONFIG_IRQ_PINT0 : \
246 (irq) == IRQ_PINT1 ? CONFIG_IRQ_PINT1 : \
247 (irq) == IRQ_PINT2 ? CONFIG_IRQ_PINT2 : \
248 (irq) == IRQ_PINT3 ? CONFIG_IRQ_PINT3 : \
249 -1)
250#define bfin_write_TIMER_DISABLE(val) bfin_write_TIMER_DISABLE0(val) 222#define bfin_write_TIMER_DISABLE(val) bfin_write_TIMER_DISABLE0(val)
251#define bfin_write_TIMER_ENABLE(val) bfin_write_TIMER_ENABLE0(val) 223#define bfin_write_TIMER_ENABLE(val) bfin_write_TIMER_ENABLE0(val)
252#define bfin_write_TIMER_STATUS(val) bfin_write_TIMER_STATUS0(val) 224#define bfin_write_TIMER_STATUS(val) bfin_write_TIMER_STATUS0(val)
253#define bfin_read_TIMER_STATUS(val) bfin_read_TIMER_STATUS0(val) 225#define bfin_read_TIMER_STATUS(val) bfin_read_TIMER_STATUS0(val)
254#else
255# error "no PRIO_GPIODEMUX() for this part"
256#endif 226#endif
257 227
258#define __ipipe_root_tick_p(regs) ((regs->ipend & 0x10) != 0) 228#define __ipipe_root_tick_p(regs) ((regs->ipend & 0x10) != 0)
@@ -275,4 +245,6 @@ int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc);
275 245
276#endif /* !CONFIG_IPIPE */ 246#endif /* !CONFIG_IPIPE */
277 247
248#define ipipe_update_tick_evtdev(evtdev) do { } while (0)
249
278#endif /* !__ASM_BLACKFIN_IPIPE_H */ 250#endif /* !__ASM_BLACKFIN_IPIPE_H */
diff --git a/arch/blackfin/include/asm/ipipe_base.h b/arch/blackfin/include/asm/ipipe_base.h
index cb1025aeabcf..3e8acbd1a3be 100644
--- a/arch/blackfin/include/asm/ipipe_base.h
+++ b/arch/blackfin/include/asm/ipipe_base.h
@@ -1,5 +1,5 @@
1/* -*- linux-c -*- 1/* -*- linux-c -*-
2 * include/asm-blackfin/_baseipipe.h 2 * include/asm-blackfin/ipipe_base.h
3 * 3 *
4 * Copyright (C) 2007 Philippe Gerum. 4 * Copyright (C) 2007 Philippe Gerum.
5 * 5 *
@@ -27,8 +27,9 @@
27#define IPIPE_NR_XIRQS NR_IRQS 27#define IPIPE_NR_XIRQS NR_IRQS
28#define IPIPE_IRQ_ISHIFT 5 /* 2^5 for 32bits arch. */ 28#define IPIPE_IRQ_ISHIFT 5 /* 2^5 for 32bits arch. */
29 29
30/* Blackfin-specific, global domain flags */ 30/* Blackfin-specific, per-cpu pipeline status */
31#define IPIPE_ROOTLOCK_FLAG 1 /* Lock pipeline for root */ 31#define IPIPE_SYNCDEFER_FLAG 15
32#define IPIPE_SYNCDEFER_MASK (1L << IPIPE_SYNCDEFER_MASK)
32 33
33 /* Blackfin traps -- i.e. exception vector numbers */ 34 /* Blackfin traps -- i.e. exception vector numbers */
34#define IPIPE_NR_FAULTS 52 /* We leave a gap after VEC_ILL_RES. */ 35#define IPIPE_NR_FAULTS 52 /* We leave a gap after VEC_ILL_RES. */
@@ -48,11 +49,6 @@
48 49
49#ifndef __ASSEMBLY__ 50#ifndef __ASSEMBLY__
50 51
51#include <linux/bitops.h>
52
53extern int test_bit(int nr, const void *addr);
54
55
56extern unsigned long __ipipe_root_status; /* Alias to ipipe_root_cpudom_var(status) */ 52extern unsigned long __ipipe_root_status; /* Alias to ipipe_root_cpudom_var(status) */
57 53
58static inline void __ipipe_stall_root(void) 54static inline void __ipipe_stall_root(void)
diff --git a/arch/blackfin/include/asm/irq.h b/arch/blackfin/include/asm/irq.h
index 3d977909ce7d..7645e85a5f6f 100644
--- a/arch/blackfin/include/asm/irq.h
+++ b/arch/blackfin/include/asm/irq.h
@@ -61,20 +61,38 @@ void __ipipe_restore_root(unsigned long flags);
61#define raw_irqs_disabled_flags(flags) (!irqs_enabled_from_flags_hw(flags)) 61#define raw_irqs_disabled_flags(flags) (!irqs_enabled_from_flags_hw(flags))
62#define local_test_iflag_hw(x) irqs_enabled_from_flags_hw(x) 62#define local_test_iflag_hw(x) irqs_enabled_from_flags_hw(x)
63 63
64#define local_save_flags(x) \ 64#define local_save_flags(x) \
65 do { \ 65 do { \
66 (x) = __ipipe_test_root() ? \ 66 (x) = __ipipe_test_root() ? \
67 __all_masked_irq_flags : bfin_irq_flags; \ 67 __all_masked_irq_flags : bfin_irq_flags; \
68 barrier(); \
68 } while (0) 69 } while (0)
69 70
70#define local_irq_save(x) \ 71#define local_irq_save(x) \
71 do { \ 72 do { \
72 (x) = __ipipe_test_and_stall_root(); \ 73 (x) = __ipipe_test_and_stall_root() ? \
74 __all_masked_irq_flags : bfin_irq_flags; \
75 barrier(); \
76 } while (0)
77
78static inline void local_irq_restore(unsigned long x)
79{
80 barrier();
81 __ipipe_restore_root(x == __all_masked_irq_flags);
82}
83
84#define local_irq_disable() \
85 do { \
86 __ipipe_stall_root(); \
87 barrier(); \
73 } while (0) 88 } while (0)
74 89
75#define local_irq_restore(x) __ipipe_restore_root(x) 90static inline void local_irq_enable(void)
76#define local_irq_disable() __ipipe_stall_root() 91{
77#define local_irq_enable() __ipipe_unstall_root() 92 barrier();
93 __ipipe_unstall_root();
94}
95
78#define irqs_disabled() __ipipe_test_root() 96#define irqs_disabled() __ipipe_test_root()
79 97
80#define local_save_flags_hw(x) \ 98#define local_save_flags_hw(x) \
diff --git a/arch/blackfin/include/asm/kgdb.h b/arch/blackfin/include/asm/kgdb.h
index 26ebac6646d8..c8b256d2ea30 100644
--- a/arch/blackfin/include/asm/kgdb.h
+++ b/arch/blackfin/include/asm/kgdb.h
@@ -1,32 +1,8 @@
1/* 1/* Blackfin KGDB header
2 * File: include/asm-blackfin/kgdb.h
3 * Based on:
4 * Author: Sonic Zhang
5 *
6 * Created:
7 * Description:
8 *
9 * Rev: $Id: kgdb_bfin_linux-2.6.x.patch 4934 2007-02-13 09:32:11Z sonicz $
10 *
11 * Modified:
12 * Copyright 2005-2006 Analog Devices Inc.
13 *
14 * Bugs: Enter bugs at http://blackfin.uclinux.org/
15 * 2 *
16 * This program is free software; you can redistribute it and/or modify 3 * Copyright 2005-2009 Analog Devices Inc.
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation; either version 2 of the License, or
19 * (at your option) any later version.
20 * 4 *
21 * This program is distributed in the hope that it will be useful, 5 * Licensed under the GPL-2 or later.
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * You should have received a copy of the GNU General Public License
27 * along with this program; if not, see the file COPYING, or write
28 * to the Free Software Foundation, Inc.,
29 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
30 */ 6 */
31 7
32#ifndef __ASM_BLACKFIN_KGDB_H__ 8#ifndef __ASM_BLACKFIN_KGDB_H__
@@ -37,17 +13,18 @@
37/* gdb locks */ 13/* gdb locks */
38#define KGDB_MAX_NO_CPUS 8 14#define KGDB_MAX_NO_CPUS 8
39 15
40/************************************************************************/ 16/*
41/* BUFMAX defines the maximum number of characters in inbound/outbound buffers*/ 17 * BUFMAX defines the maximum number of characters in inbound/outbound buffers.
42/* at least NUMREGBYTES*2 are needed for register packets */ 18 * At least NUMREGBYTES*2 are needed for register packets.
43/* Longer buffer is needed to list all threads */ 19 * Longer buffer is needed to list all threads.
20 */
44#define BUFMAX 2048 21#define BUFMAX 2048
45 22
46/* 23/*
47 * Note that this register image is different from 24 * Note that this register image is different from
48 * the register image that Linux produces at interrupt time. 25 * the register image that Linux produces at interrupt time.
49 * 26 *
50 * Linux's register image is defined by struct pt_regs in ptrace.h. 27 * Linux's register image is defined by struct pt_regs in ptrace.h.
51 */ 28 */
52enum regnames { 29enum regnames {
53 /* Core Registers */ 30 /* Core Registers */
@@ -104,14 +81,14 @@ enum regnames {
104 BFIN_RETX, 81 BFIN_RETX,
105 BFIN_RETN, 82 BFIN_RETN,
106 BFIN_RETE, 83 BFIN_RETE,
107 84
108 /* Pseudo Registers */ 85 /* Pseudo Registers */
109 BFIN_PC, 86 BFIN_PC,
110 BFIN_CC, 87 BFIN_CC,
111 BFIN_EXTRA1, /* Address of .text section. */ 88 BFIN_EXTRA1, /* Address of .text section. */
112 BFIN_EXTRA2, /* Address of .data section. */ 89 BFIN_EXTRA2, /* Address of .data section. */
113 BFIN_EXTRA3, /* Address of .bss section. */ 90 BFIN_EXTRA3, /* Address of .bss section. */
114 BFIN_FDPIC_EXEC, 91 BFIN_FDPIC_EXEC,
115 BFIN_FDPIC_INTERP, 92 BFIN_FDPIC_INTERP,
116 93
117 /* MMRs */ 94 /* MMRs */
@@ -126,7 +103,7 @@ enum regnames {
126 103
127static inline void arch_kgdb_breakpoint(void) 104static inline void arch_kgdb_breakpoint(void)
128{ 105{
129 asm(" EXCPT 2;"); 106 asm("EXCPT 2;");
130} 107}
131#define BREAK_INSTR_SIZE 2 108#define BREAK_INSTR_SIZE 2
132#define CACHE_FLUSH_IS_SAFE 1 109#define CACHE_FLUSH_IS_SAFE 1
diff --git a/arch/blackfin/include/asm/mem_init.h b/arch/blackfin/include/asm/mem_init.h
index 255a9316ad36..61f7487fbf12 100644
--- a/arch/blackfin/include/asm/mem_init.h
+++ b/arch/blackfin/include/asm/mem_init.h
@@ -115,7 +115,7 @@
115#define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) 115#define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num)
116 116
117/* Enable SCLK Out */ 117/* Enable SCLK Out */
118#define mem_SDGCTL (0x80000000 | SCTLE | SDRAM_CL | SDRAM_tRAS | SDRAM_tRP | SDRAM_tRCD | SDRAM_tWR | PSS) 118#define mem_SDGCTL (SCTLE | SDRAM_CL | SDRAM_tRAS | SDRAM_tRP | SDRAM_tRCD | SDRAM_tWR | PSS)
119#else 119#else
120#define mem_SDRRC CONFIG_MEM_SDRRC 120#define mem_SDRRC CONFIG_MEM_SDRRC
121#define mem_SDGCTL CONFIG_MEM_SDGCTL 121#define mem_SDGCTL CONFIG_MEM_SDGCTL
diff --git a/arch/blackfin/include/asm/pda.h b/arch/blackfin/include/asm/pda.h
index bd8d4a7efeb2..a67142740df0 100644
--- a/arch/blackfin/include/asm/pda.h
+++ b/arch/blackfin/include/asm/pda.h
@@ -59,6 +59,7 @@ struct blackfin_pda { /* Per-processor Data Area */
59 unsigned long icplb_fault_addr; 59 unsigned long icplb_fault_addr;
60 unsigned long retx; 60 unsigned long retx;
61 unsigned long seqstat; 61 unsigned long seqstat;
62 unsigned int __nmi_count; /* number of times NMI asserted on this CPU */
62}; 63};
63 64
64extern struct blackfin_pda cpu_pda[]; 65extern struct blackfin_pda cpu_pda[];
diff --git a/arch/blackfin/include/asm/percpu.h b/arch/blackfin/include/asm/percpu.h
index 797c0c165069..c94c7bc88c71 100644
--- a/arch/blackfin/include/asm/percpu.h
+++ b/arch/blackfin/include/asm/percpu.h
@@ -3,14 +3,4 @@
3 3
4#include <asm-generic/percpu.h> 4#include <asm-generic/percpu.h>
5 5
6#ifdef CONFIG_MODULES
7#define PERCPU_MODULE_RESERVE 8192
8#else
9#define PERCPU_MODULE_RESERVE 0
10#endif
11
12#define PERCPU_ENOUGH_ROOM \
13 (ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES) + \
14 PERCPU_MODULE_RESERVE)
15
16#endif /* __ARCH_BLACKFIN_PERCPU__ */ 6#endif /* __ARCH_BLACKFIN_PERCPU__ */
diff --git a/arch/blackfin/include/asm/reboot.h b/arch/blackfin/include/asm/reboot.h
index 4856d62b7467..ae1e36329bec 100644
--- a/arch/blackfin/include/asm/reboot.h
+++ b/arch/blackfin/include/asm/reboot.h
@@ -15,6 +15,6 @@ extern void native_machine_halt(void);
15extern void native_machine_power_off(void); 15extern void native_machine_power_off(void);
16 16
17/* common reboot workarounds */ 17/* common reboot workarounds */
18extern void bfin_gpio_reset_spi0_ssel1(void); 18extern void bfin_reset_boot_spi_cs(unsigned short pin);
19 19
20#endif 20#endif
diff --git a/arch/blackfin/include/asm/swab.h b/arch/blackfin/include/asm/swab.h
index 69a051b612bd..6403ad2932eb 100644
--- a/arch/blackfin/include/asm/swab.h
+++ b/arch/blackfin/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _BLACKFIN_SWAB_H 1#ifndef _BLACKFIN_SWAB_H
2#define _BLACKFIN_SWAB_H 2#define _BLACKFIN_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6 6
7#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) 7#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
diff --git a/arch/blackfin/include/asm/thread_info.h b/arch/blackfin/include/asm/thread_info.h
index e721ce55956c..2920087516f2 100644
--- a/arch/blackfin/include/asm/thread_info.h
+++ b/arch/blackfin/include/asm/thread_info.h
@@ -122,6 +122,7 @@ static inline struct thread_info *current_thread_info(void)
122#define TIF_MEMDIE 4 122#define TIF_MEMDIE 4
123#define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */ 123#define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */
124#define TIF_FREEZE 6 /* is freezing for suspend */ 124#define TIF_FREEZE 6 /* is freezing for suspend */
125#define TIF_IRQ_SYNC 7 /* sync pipeline stage */
125 126
126/* as above, but as bit values */ 127/* as above, but as bit values */
127#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 128#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
@@ -130,6 +131,7 @@ static inline struct thread_info *current_thread_info(void)
130#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) 131#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
131#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) 132#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
132#define _TIF_FREEZE (1<<TIF_FREEZE) 133#define _TIF_FREEZE (1<<TIF_FREEZE)
134#define _TIF_IRQ_SYNC (1<<TIF_IRQ_SYNC)
133 135
134#define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */ 136#define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */
135 137
diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile
index 38a233374f07..fd4d4328a0f2 100644
--- a/arch/blackfin/kernel/Makefile
+++ b/arch/blackfin/kernel/Makefile
@@ -21,5 +21,9 @@ obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o
21obj-$(CONFIG_CPLB_INFO) += cplbinfo.o 21obj-$(CONFIG_CPLB_INFO) += cplbinfo.o
22obj-$(CONFIG_MODULES) += module.o 22obj-$(CONFIG_MODULES) += module.o
23obj-$(CONFIG_KGDB) += kgdb.o 23obj-$(CONFIG_KGDB) += kgdb.o
24obj-$(CONFIG_KGDB_TESTCASE) += kgdb_test.o 24obj-$(CONFIG_KGDB_TESTS) += kgdb_test.o
25obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 25obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
26
27# the kgdb test puts code into L2 and without linker
28# relaxation, we need to force long calls to/from it
29CFLAGS_kgdb_test.o := -mlong-calls -O0
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 07e02c0d1c07..8531693fb48d 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -249,6 +249,13 @@ static void __dma_memcpy(u32 daddr, s16 dmod, u32 saddr, s16 smod, size_t cnt, u
249 249
250 spin_lock_irqsave(&mdma_lock, flags); 250 spin_lock_irqsave(&mdma_lock, flags);
251 251
252 /* Force a sync in case a previous config reset on this channel
253 * occurred. This is needed so subsequent writes to DMA registers
254 * are not spuriously lost/corrupted. Do it under irq lock and
255 * without the anomaly version (because we are atomic already).
256 */
257 __builtin_bfin_ssync();
258
252 if (bfin_read_MDMA_S0_CONFIG()) 259 if (bfin_read_MDMA_S0_CONFIG())
253 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE)) 260 while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE))
254 continue; 261 continue;
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c
index 4c14331978f6..51dac55c524a 100644
--- a/arch/blackfin/kernel/bfin_gpio.c
+++ b/arch/blackfin/kernel/bfin_gpio.c
@@ -27,59 +27,6 @@
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 28 */
29 29
30/*
31* Number BF537/6/4 BF561 BF533/2/1 BF549/8/4/2
32*
33* GPIO_0 PF0 PF0 PF0 PA0...PJ13
34* GPIO_1 PF1 PF1 PF1
35* GPIO_2 PF2 PF2 PF2
36* GPIO_3 PF3 PF3 PF3
37* GPIO_4 PF4 PF4 PF4
38* GPIO_5 PF5 PF5 PF5
39* GPIO_6 PF6 PF6 PF6
40* GPIO_7 PF7 PF7 PF7
41* GPIO_8 PF8 PF8 PF8
42* GPIO_9 PF9 PF9 PF9
43* GPIO_10 PF10 PF10 PF10
44* GPIO_11 PF11 PF11 PF11
45* GPIO_12 PF12 PF12 PF12
46* GPIO_13 PF13 PF13 PF13
47* GPIO_14 PF14 PF14 PF14
48* GPIO_15 PF15 PF15 PF15
49* GPIO_16 PG0 PF16
50* GPIO_17 PG1 PF17
51* GPIO_18 PG2 PF18
52* GPIO_19 PG3 PF19
53* GPIO_20 PG4 PF20
54* GPIO_21 PG5 PF21
55* GPIO_22 PG6 PF22
56* GPIO_23 PG7 PF23
57* GPIO_24 PG8 PF24
58* GPIO_25 PG9 PF25
59* GPIO_26 PG10 PF26
60* GPIO_27 PG11 PF27
61* GPIO_28 PG12 PF28
62* GPIO_29 PG13 PF29
63* GPIO_30 PG14 PF30
64* GPIO_31 PG15 PF31
65* GPIO_32 PH0 PF32
66* GPIO_33 PH1 PF33
67* GPIO_34 PH2 PF34
68* GPIO_35 PH3 PF35
69* GPIO_36 PH4 PF36
70* GPIO_37 PH5 PF37
71* GPIO_38 PH6 PF38
72* GPIO_39 PH7 PF39
73* GPIO_40 PH8 PF40
74* GPIO_41 PH9 PF41
75* GPIO_42 PH10 PF42
76* GPIO_43 PH11 PF43
77* GPIO_44 PH12 PF44
78* GPIO_45 PH13 PF45
79* GPIO_46 PH14 PF46
80* GPIO_47 PH15 PF47
81*/
82
83#include <linux/delay.h> 30#include <linux/delay.h>
84#include <linux/module.h> 31#include <linux/module.h>
85#include <linux/err.h> 32#include <linux/err.h>
@@ -119,62 +66,61 @@ enum {
119#define AWA_DUMMY_READ(...) do { } while (0) 66#define AWA_DUMMY_READ(...) do { } while (0)
120#endif 67#endif
121 68
69static struct gpio_port_t * const gpio_array[] = {
122#if defined(BF533_FAMILY) || defined(BF538_FAMILY) 70#if defined(BF533_FAMILY) || defined(BF538_FAMILY)
123static struct gpio_port_t *gpio_bankb[] = {
124 (struct gpio_port_t *) FIO_FLAG_D, 71 (struct gpio_port_t *) FIO_FLAG_D,
125}; 72#elif defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
126#endif
127
128#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
129static struct gpio_port_t *gpio_bankb[] = {
130 (struct gpio_port_t *) PORTFIO, 73 (struct gpio_port_t *) PORTFIO,
131 (struct gpio_port_t *) PORTGIO, 74 (struct gpio_port_t *) PORTGIO,
132 (struct gpio_port_t *) PORTHIO, 75 (struct gpio_port_t *) PORTHIO,
76#elif defined(BF561_FAMILY)
77 (struct gpio_port_t *) FIO0_FLAG_D,
78 (struct gpio_port_t *) FIO1_FLAG_D,
79 (struct gpio_port_t *) FIO2_FLAG_D,
80#elif defined(BF548_FAMILY)
81 (struct gpio_port_t *)PORTA_FER,
82 (struct gpio_port_t *)PORTB_FER,
83 (struct gpio_port_t *)PORTC_FER,
84 (struct gpio_port_t *)PORTD_FER,
85 (struct gpio_port_t *)PORTE_FER,
86 (struct gpio_port_t *)PORTF_FER,
87 (struct gpio_port_t *)PORTG_FER,
88 (struct gpio_port_t *)PORTH_FER,
89 (struct gpio_port_t *)PORTI_FER,
90 (struct gpio_port_t *)PORTJ_FER,
91#else
92# error no gpio arrays defined
93#endif
133}; 94};
134 95
135static unsigned short *port_fer[] = { 96#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
97static unsigned short * const port_fer[] = {
136 (unsigned short *) PORTF_FER, 98 (unsigned short *) PORTF_FER,
137 (unsigned short *) PORTG_FER, 99 (unsigned short *) PORTG_FER,
138 (unsigned short *) PORTH_FER, 100 (unsigned short *) PORTH_FER,
139}; 101};
140#endif
141 102
142#if defined(BF527_FAMILY) || defined(BF518_FAMILY) 103# if !defined(BF537_FAMILY)
143static unsigned short *port_mux[] = { 104static unsigned short * const port_mux[] = {
144 (unsigned short *) PORTF_MUX, 105 (unsigned short *) PORTF_MUX,
145 (unsigned short *) PORTG_MUX, 106 (unsigned short *) PORTG_MUX,
146 (unsigned short *) PORTH_MUX, 107 (unsigned short *) PORTH_MUX,
147}; 108};
148 109
149static const 110static const
150u8 pmux_offset[][16] = 111u8 pmux_offset[][16] = {
151 {{ 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4, 6, 8, 8, 10, 10 }, /* PORTF */ 112# if defined(BF527_FAMILY)
152 { 0, 0, 0, 0, 0, 2, 2, 4, 4, 6, 8, 10, 10, 10, 12, 12 }, /* PORTG */ 113 { 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 4, 6, 8, 8, 10, 10 }, /* PORTF */
153 { 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, 4 }, /* PORTH */ 114 { 0, 0, 0, 0, 0, 2, 2, 4, 4, 6, 8, 10, 10, 10, 12, 12 }, /* PORTG */
154 }; 115 { 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, 4 }, /* PORTH */
155#endif 116# elif defined(BF518_FAMILY)
156 117 { 0, 2, 2, 2, 2, 2, 2, 4, 6, 6, 6, 8, 8, 8, 8, 10 }, /* PORTF */
157#ifdef BF561_FAMILY 118 { 0, 0, 0, 2, 4, 6, 6, 6, 8, 10, 10, 12, 14, 14, 14, 14 }, /* PORTG */
158static struct gpio_port_t *gpio_bankb[] = { 119 { 0, 0, 0, 0, 2, 2, 4, 6, 10, 10, 10, 10, 10, 10, 10, 10 }, /* PORTH */
159 (struct gpio_port_t *) FIO0_FLAG_D, 120# endif
160 (struct gpio_port_t *) FIO1_FLAG_D,
161 (struct gpio_port_t *) FIO2_FLAG_D,
162}; 121};
163#endif 122# endif
164 123
165#ifdef BF548_FAMILY
166static struct gpio_port_t *gpio_array[] = {
167 (struct gpio_port_t *)PORTA_FER,
168 (struct gpio_port_t *)PORTB_FER,
169 (struct gpio_port_t *)PORTC_FER,
170 (struct gpio_port_t *)PORTD_FER,
171 (struct gpio_port_t *)PORTE_FER,
172 (struct gpio_port_t *)PORTF_FER,
173 (struct gpio_port_t *)PORTG_FER,
174 (struct gpio_port_t *)PORTH_FER,
175 (struct gpio_port_t *)PORTI_FER,
176 (struct gpio_port_t *)PORTJ_FER,
177};
178#endif 124#endif
179 125
180static unsigned short reserved_gpio_map[GPIO_BANK_NUM]; 126static unsigned short reserved_gpio_map[GPIO_BANK_NUM];
@@ -188,35 +134,9 @@ static struct str_ident {
188} str_ident[MAX_RESOURCES]; 134} str_ident[MAX_RESOURCES];
189 135
190#if defined(CONFIG_PM) 136#if defined(CONFIG_PM)
191#if defined(CONFIG_BF54x)
192static struct gpio_port_s gpio_bank_saved[GPIO_BANK_NUM];
193#else
194static unsigned short wakeup_map[GPIO_BANK_NUM];
195static unsigned char wakeup_flags_map[MAX_BLACKFIN_GPIOS];
196static struct gpio_port_s gpio_bank_saved[GPIO_BANK_NUM]; 137static struct gpio_port_s gpio_bank_saved[GPIO_BANK_NUM];
197
198#ifdef BF533_FAMILY
199static unsigned int sic_iwr_irqs[] = {IRQ_PROG_INTB};
200#endif
201
202#ifdef BF537_FAMILY
203static unsigned int sic_iwr_irqs[] = {IRQ_PROG_INTB, IRQ_PORTG_INTB, IRQ_MAC_TX};
204#endif
205
206#ifdef BF538_FAMILY
207static unsigned int sic_iwr_irqs[] = {IRQ_PORTF_INTB};
208#endif 138#endif
209 139
210#if defined(BF527_FAMILY) || defined(BF518_FAMILY)
211static unsigned int sic_iwr_irqs[] = {IRQ_PORTF_INTB, IRQ_PORTG_INTB, IRQ_PORTH_INTB};
212#endif
213
214#ifdef BF561_FAMILY
215static unsigned int sic_iwr_irqs[] = {IRQ_PROG0_INTB, IRQ_PROG1_INTB, IRQ_PROG2_INTB};
216#endif
217#endif
218#endif /* CONFIG_PM */
219
220inline int check_gpio(unsigned gpio) 140inline int check_gpio(unsigned gpio)
221{ 141{
222#if defined(BF548_FAMILY) 142#if defined(BF548_FAMILY)
@@ -330,9 +250,10 @@ static struct {
330 {.res = P_SPI0_SSEL3, .offset = 0}, 250 {.res = P_SPI0_SSEL3, .offset = 0},
331}; 251};
332 252
333static void portmux_setup(unsigned short per, unsigned short function) 253static void portmux_setup(unsigned short per)
334{ 254{
335 u16 y, offset, muxreg; 255 u16 y, offset, muxreg;
256 u16 function = P_FUNCT2MUX(per);
336 257
337 for (y = 0; y < ARRAY_SIZE(port_mux_lut); y++) { 258 for (y = 0; y < ARRAY_SIZE(port_mux_lut); y++) {
338 if (port_mux_lut[y].res == per) { 259 if (port_mux_lut[y].res == per) {
@@ -353,30 +274,33 @@ static void portmux_setup(unsigned short per, unsigned short function)
353 } 274 }
354} 275}
355#elif defined(BF548_FAMILY) 276#elif defined(BF548_FAMILY)
356inline void portmux_setup(unsigned short portno, unsigned short function) 277inline void portmux_setup(unsigned short per)
357{ 278{
358 u32 pmux; 279 u32 pmux;
280 u16 ident = P_IDENT(per);
281 u16 function = P_FUNCT2MUX(per);
359 282
360 pmux = gpio_array[gpio_bank(portno)]->port_mux; 283 pmux = gpio_array[gpio_bank(ident)]->port_mux;
361 284
362 pmux &= ~(0x3 << (2 * gpio_sub_n(portno))); 285 pmux &= ~(0x3 << (2 * gpio_sub_n(ident)));
363 pmux |= (function & 0x3) << (2 * gpio_sub_n(portno)); 286 pmux |= (function & 0x3) << (2 * gpio_sub_n(ident));
364 287
365 gpio_array[gpio_bank(portno)]->port_mux = pmux; 288 gpio_array[gpio_bank(ident)]->port_mux = pmux;
366} 289}
367 290
368inline u16 get_portmux(unsigned short portno) 291inline u16 get_portmux(unsigned short per)
369{ 292{
370 u32 pmux; 293 u32 pmux;
294 u16 ident = P_IDENT(per);
371 295
372 pmux = gpio_array[gpio_bank(portno)]->port_mux; 296 pmux = gpio_array[gpio_bank(ident)]->port_mux;
373 297
374 return (pmux >> (2 * gpio_sub_n(portno)) & 0x3); 298 return (pmux >> (2 * gpio_sub_n(ident)) & 0x3);
375} 299}
376#elif defined(BF527_FAMILY) || defined(BF518_FAMILY) 300#elif defined(BF527_FAMILY) || defined(BF518_FAMILY)
377inline void portmux_setup(unsigned short portno, unsigned short function) 301inline void portmux_setup(unsigned short per)
378{ 302{
379 u16 pmux, ident = P_IDENT(portno); 303 u16 pmux, ident = P_IDENT(per), function = P_FUNCT2MUX(per);
380 u8 offset = pmux_offset[gpio_bank(ident)][gpio_sub_n(ident)]; 304 u8 offset = pmux_offset[gpio_bank(ident)][gpio_sub_n(ident)];
381 305
382 pmux = *port_mux[gpio_bank(ident)]; 306 pmux = *port_mux[gpio_bank(ident)];
@@ -424,90 +348,71 @@ void set_gpio_ ## name(unsigned gpio, unsigned short arg) \
424 unsigned long flags; \ 348 unsigned long flags; \
425 local_irq_save_hw(flags); \ 349 local_irq_save_hw(flags); \
426 if (arg) \ 350 if (arg) \
427 gpio_bankb[gpio_bank(gpio)]->name |= gpio_bit(gpio); \ 351 gpio_array[gpio_bank(gpio)]->name |= gpio_bit(gpio); \
428 else \ 352 else \
429 gpio_bankb[gpio_bank(gpio)]->name &= ~gpio_bit(gpio); \ 353 gpio_array[gpio_bank(gpio)]->name &= ~gpio_bit(gpio); \
430 AWA_DUMMY_READ(name); \ 354 AWA_DUMMY_READ(name); \
431 local_irq_restore_hw(flags); \ 355 local_irq_restore_hw(flags); \
432} \ 356} \
433EXPORT_SYMBOL(set_gpio_ ## name); 357EXPORT_SYMBOL(set_gpio_ ## name);
434 358
435SET_GPIO(dir) 359SET_GPIO(dir) /* set_gpio_dir() */
436SET_GPIO(inen) 360SET_GPIO(inen) /* set_gpio_inen() */
437SET_GPIO(polar) 361SET_GPIO(polar) /* set_gpio_polar() */
438SET_GPIO(edge) 362SET_GPIO(edge) /* set_gpio_edge() */
439SET_GPIO(both) 363SET_GPIO(both) /* set_gpio_both() */
440 364
441 365
442#if ANOMALY_05000311 || ANOMALY_05000323
443#define SET_GPIO_SC(name) \ 366#define SET_GPIO_SC(name) \
444void set_gpio_ ## name(unsigned gpio, unsigned short arg) \ 367void set_gpio_ ## name(unsigned gpio, unsigned short arg) \
445{ \ 368{ \
446 unsigned long flags; \ 369 unsigned long flags; \
447 local_irq_save_hw(flags); \ 370 if (ANOMALY_05000311 || ANOMALY_05000323) \
448 if (arg) \ 371 local_irq_save_hw(flags); \
449 gpio_bankb[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \
450 else \
451 gpio_bankb[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \
452 AWA_DUMMY_READ(name); \
453 local_irq_restore_hw(flags); \
454} \
455EXPORT_SYMBOL(set_gpio_ ## name);
456#else
457#define SET_GPIO_SC(name) \
458void set_gpio_ ## name(unsigned gpio, unsigned short arg) \
459{ \
460 if (arg) \ 372 if (arg) \
461 gpio_bankb[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \ 373 gpio_array[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \
462 else \ 374 else \
463 gpio_bankb[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \ 375 gpio_array[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \
376 if (ANOMALY_05000311 || ANOMALY_05000323) { \
377 AWA_DUMMY_READ(name); \
378 local_irq_restore_hw(flags); \
379 } \
464} \ 380} \
465EXPORT_SYMBOL(set_gpio_ ## name); 381EXPORT_SYMBOL(set_gpio_ ## name);
466#endif
467 382
468SET_GPIO_SC(maska) 383SET_GPIO_SC(maska)
469SET_GPIO_SC(maskb) 384SET_GPIO_SC(maskb)
470SET_GPIO_SC(data) 385SET_GPIO_SC(data)
471 386
472#if ANOMALY_05000311 || ANOMALY_05000323
473void set_gpio_toggle(unsigned gpio) 387void set_gpio_toggle(unsigned gpio)
474{ 388{
475 unsigned long flags; 389 unsigned long flags;
476 local_irq_save_hw(flags); 390 if (ANOMALY_05000311 || ANOMALY_05000323)
477 gpio_bankb[gpio_bank(gpio)]->toggle = gpio_bit(gpio); 391 local_irq_save_hw(flags);
478 AWA_DUMMY_READ(toggle); 392 gpio_array[gpio_bank(gpio)]->toggle = gpio_bit(gpio);
479 local_irq_restore_hw(flags); 393 if (ANOMALY_05000311 || ANOMALY_05000323) {
480} 394 AWA_DUMMY_READ(toggle);
481#else 395 local_irq_restore_hw(flags);
482void set_gpio_toggle(unsigned gpio) 396 }
483{
484 gpio_bankb[gpio_bank(gpio)]->toggle = gpio_bit(gpio);
485} 397}
486#endif
487EXPORT_SYMBOL(set_gpio_toggle); 398EXPORT_SYMBOL(set_gpio_toggle);
488 399
489 400
490/*Set current PORT date (16-bit word)*/ 401/*Set current PORT date (16-bit word)*/
491 402
492#if ANOMALY_05000311 || ANOMALY_05000323
493#define SET_GPIO_P(name) \ 403#define SET_GPIO_P(name) \
494void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \ 404void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \
495{ \ 405{ \
496 unsigned long flags; \ 406 unsigned long flags; \
497 local_irq_save_hw(flags); \ 407 if (ANOMALY_05000311 || ANOMALY_05000323) \
498 gpio_bankb[gpio_bank(gpio)]->name = arg; \ 408 local_irq_save_hw(flags); \
499 AWA_DUMMY_READ(name); \ 409 gpio_array[gpio_bank(gpio)]->name = arg; \
500 local_irq_restore_hw(flags); \ 410 if (ANOMALY_05000311 || ANOMALY_05000323) { \
411 AWA_DUMMY_READ(name); \
412 local_irq_restore_hw(flags); \
413 } \
501} \ 414} \
502EXPORT_SYMBOL(set_gpiop_ ## name); 415EXPORT_SYMBOL(set_gpiop_ ## name);
503#else
504#define SET_GPIO_P(name) \
505void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \
506{ \
507 gpio_bankb[gpio_bank(gpio)]->name = arg; \
508} \
509EXPORT_SYMBOL(set_gpiop_ ## name);
510#endif
511 416
512SET_GPIO_P(data) 417SET_GPIO_P(data)
513SET_GPIO_P(dir) 418SET_GPIO_P(dir)
@@ -519,27 +424,21 @@ SET_GPIO_P(maska)
519SET_GPIO_P(maskb) 424SET_GPIO_P(maskb)
520 425
521/* Get a specific bit */ 426/* Get a specific bit */
522#if ANOMALY_05000311 || ANOMALY_05000323
523#define GET_GPIO(name) \ 427#define GET_GPIO(name) \
524unsigned short get_gpio_ ## name(unsigned gpio) \ 428unsigned short get_gpio_ ## name(unsigned gpio) \
525{ \ 429{ \
526 unsigned long flags; \ 430 unsigned long flags; \
527 unsigned short ret; \ 431 unsigned short ret; \
528 local_irq_save_hw(flags); \ 432 if (ANOMALY_05000311 || ANOMALY_05000323) \
529 ret = 0x01 & (gpio_bankb[gpio_bank(gpio)]->name >> gpio_sub_n(gpio)); \ 433 local_irq_save_hw(flags); \
530 AWA_DUMMY_READ(name); \ 434 ret = 0x01 & (gpio_array[gpio_bank(gpio)]->name >> gpio_sub_n(gpio)); \
531 local_irq_restore_hw(flags); \ 435 if (ANOMALY_05000311 || ANOMALY_05000323) { \
436 AWA_DUMMY_READ(name); \
437 local_irq_restore_hw(flags); \
438 } \
532 return ret; \ 439 return ret; \
533} \ 440} \
534EXPORT_SYMBOL(get_gpio_ ## name); 441EXPORT_SYMBOL(get_gpio_ ## name);
535#else
536#define GET_GPIO(name) \
537unsigned short get_gpio_ ## name(unsigned gpio) \
538{ \
539 return (0x01 & (gpio_bankb[gpio_bank(gpio)]->name >> gpio_sub_n(gpio))); \
540} \
541EXPORT_SYMBOL(get_gpio_ ## name);
542#endif
543 442
544GET_GPIO(data) 443GET_GPIO(data)
545GET_GPIO(dir) 444GET_GPIO(dir)
@@ -552,27 +451,21 @@ GET_GPIO(maskb)
552 451
553/*Get current PORT date (16-bit word)*/ 452/*Get current PORT date (16-bit word)*/
554 453
555#if ANOMALY_05000311 || ANOMALY_05000323
556#define GET_GPIO_P(name) \ 454#define GET_GPIO_P(name) \
557unsigned short get_gpiop_ ## name(unsigned gpio) \ 455unsigned short get_gpiop_ ## name(unsigned gpio) \
558{ \ 456{ \
559 unsigned long flags; \ 457 unsigned long flags; \
560 unsigned short ret; \ 458 unsigned short ret; \
561 local_irq_save_hw(flags); \ 459 if (ANOMALY_05000311 || ANOMALY_05000323) \
562 ret = (gpio_bankb[gpio_bank(gpio)]->name); \ 460 local_irq_save_hw(flags); \
563 AWA_DUMMY_READ(name); \ 461 ret = (gpio_array[gpio_bank(gpio)]->name); \
564 local_irq_restore_hw(flags); \ 462 if (ANOMALY_05000311 || ANOMALY_05000323) { \
463 AWA_DUMMY_READ(name); \
464 local_irq_restore_hw(flags); \
465 } \
565 return ret; \ 466 return ret; \
566} \ 467} \
567EXPORT_SYMBOL(get_gpiop_ ## name); 468EXPORT_SYMBOL(get_gpiop_ ## name);
568#else
569#define GET_GPIO_P(name) \
570unsigned short get_gpiop_ ## name(unsigned gpio) \
571{ \
572 return (gpio_bankb[gpio_bank(gpio)]->name);\
573} \
574EXPORT_SYMBOL(get_gpiop_ ## name);
575#endif
576 469
577GET_GPIO_P(data) 470GET_GPIO_P(data)
578GET_GPIO_P(dir) 471GET_GPIO_P(dir)
@@ -585,6 +478,26 @@ GET_GPIO_P(maskb)
585 478
586 479
587#ifdef CONFIG_PM 480#ifdef CONFIG_PM
481
482static unsigned short wakeup_map[GPIO_BANK_NUM];
483static unsigned char wakeup_flags_map[MAX_BLACKFIN_GPIOS];
484
485static const unsigned int sic_iwr_irqs[] = {
486#if defined(BF533_FAMILY)
487 IRQ_PROG_INTB
488#elif defined(BF537_FAMILY)
489 IRQ_PROG_INTB, IRQ_PORTG_INTB, IRQ_MAC_TX
490#elif defined(BF538_FAMILY)
491 IRQ_PORTF_INTB
492#elif defined(BF527_FAMILY) || defined(BF518_FAMILY)
493 IRQ_PORTF_INTB, IRQ_PORTG_INTB, IRQ_PORTH_INTB
494#elif defined(BF561_FAMILY)
495 IRQ_PROG0_INTB, IRQ_PROG1_INTB, IRQ_PROG2_INTB
496#else
497# error no SIC_IWR defined
498#endif
499};
500
588/*********************************************************** 501/***********************************************************
589* 502*
590* FUNCTIONS: Blackfin PM Setup API 503* FUNCTIONS: Blackfin PM Setup API
@@ -669,18 +582,18 @@ u32 bfin_pm_standby_setup(void)
669 mask = wakeup_map[gpio_bank(i)]; 582 mask = wakeup_map[gpio_bank(i)];
670 bank = gpio_bank(i); 583 bank = gpio_bank(i);
671 584
672 gpio_bank_saved[bank].maskb = gpio_bankb[bank]->maskb; 585 gpio_bank_saved[bank].maskb = gpio_array[bank]->maskb;
673 gpio_bankb[bank]->maskb = 0; 586 gpio_array[bank]->maskb = 0;
674 587
675 if (mask) { 588 if (mask) {
676#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) 589#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
677 gpio_bank_saved[bank].fer = *port_fer[bank]; 590 gpio_bank_saved[bank].fer = *port_fer[bank];
678#endif 591#endif
679 gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen; 592 gpio_bank_saved[bank].inen = gpio_array[bank]->inen;
680 gpio_bank_saved[bank].polar = gpio_bankb[bank]->polar; 593 gpio_bank_saved[bank].polar = gpio_array[bank]->polar;
681 gpio_bank_saved[bank].dir = gpio_bankb[bank]->dir; 594 gpio_bank_saved[bank].dir = gpio_array[bank]->dir;
682 gpio_bank_saved[bank].edge = gpio_bankb[bank]->edge; 595 gpio_bank_saved[bank].edge = gpio_array[bank]->edge;
683 gpio_bank_saved[bank].both = gpio_bankb[bank]->both; 596 gpio_bank_saved[bank].both = gpio_array[bank]->both;
684 gpio_bank_saved[bank].reserved = 597 gpio_bank_saved[bank].reserved =
685 reserved_gpio_map[bank]; 598 reserved_gpio_map[bank];
686 599
@@ -700,7 +613,7 @@ u32 bfin_pm_standby_setup(void)
700 } 613 }
701 614
702 bfin_internal_set_wake(sic_iwr_irqs[bank], 1); 615 bfin_internal_set_wake(sic_iwr_irqs[bank], 1);
703 gpio_bankb[bank]->maskb_set = wakeup_map[gpio_bank(i)]; 616 gpio_array[bank]->maskb_set = wakeup_map[gpio_bank(i)];
704 } 617 }
705 } 618 }
706 619
@@ -721,18 +634,18 @@ void bfin_pm_standby_restore(void)
721#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) 634#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
722 *port_fer[bank] = gpio_bank_saved[bank].fer; 635 *port_fer[bank] = gpio_bank_saved[bank].fer;
723#endif 636#endif
724 gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen; 637 gpio_array[bank]->inen = gpio_bank_saved[bank].inen;
725 gpio_bankb[bank]->dir = gpio_bank_saved[bank].dir; 638 gpio_array[bank]->dir = gpio_bank_saved[bank].dir;
726 gpio_bankb[bank]->polar = gpio_bank_saved[bank].polar; 639 gpio_array[bank]->polar = gpio_bank_saved[bank].polar;
727 gpio_bankb[bank]->edge = gpio_bank_saved[bank].edge; 640 gpio_array[bank]->edge = gpio_bank_saved[bank].edge;
728 gpio_bankb[bank]->both = gpio_bank_saved[bank].both; 641 gpio_array[bank]->both = gpio_bank_saved[bank].both;
729 642
730 reserved_gpio_map[bank] = 643 reserved_gpio_map[bank] =
731 gpio_bank_saved[bank].reserved; 644 gpio_bank_saved[bank].reserved;
732 bfin_internal_set_wake(sic_iwr_irqs[bank], 0); 645 bfin_internal_set_wake(sic_iwr_irqs[bank], 0);
733 } 646 }
734 647
735 gpio_bankb[bank]->maskb = gpio_bank_saved[bank].maskb; 648 gpio_array[bank]->maskb = gpio_bank_saved[bank].maskb;
736 } 649 }
737 AWA_DUMMY_READ(maskb); 650 AWA_DUMMY_READ(maskb);
738} 651}
@@ -745,21 +658,21 @@ void bfin_gpio_pm_hibernate_suspend(void)
745 bank = gpio_bank(i); 658 bank = gpio_bank(i);
746 659
747#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) 660#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
748 gpio_bank_saved[bank].fer = *port_fer[bank]; 661 gpio_bank_saved[bank].fer = *port_fer[bank];
749#if defined(BF527_FAMILY) || defined(BF518_FAMILY) 662#if defined(BF527_FAMILY) || defined(BF518_FAMILY)
750 gpio_bank_saved[bank].mux = *port_mux[bank]; 663 gpio_bank_saved[bank].mux = *port_mux[bank];
751#else 664#else
752 if (bank == 0) 665 if (bank == 0)
753 gpio_bank_saved[bank].mux = bfin_read_PORT_MUX(); 666 gpio_bank_saved[bank].mux = bfin_read_PORT_MUX();
754#endif 667#endif
755#endif 668#endif
756 gpio_bank_saved[bank].data = gpio_bankb[bank]->data; 669 gpio_bank_saved[bank].data = gpio_array[bank]->data;
757 gpio_bank_saved[bank].inen = gpio_bankb[bank]->inen; 670 gpio_bank_saved[bank].inen = gpio_array[bank]->inen;
758 gpio_bank_saved[bank].polar = gpio_bankb[bank]->polar; 671 gpio_bank_saved[bank].polar = gpio_array[bank]->polar;
759 gpio_bank_saved[bank].dir = gpio_bankb[bank]->dir; 672 gpio_bank_saved[bank].dir = gpio_array[bank]->dir;
760 gpio_bank_saved[bank].edge = gpio_bankb[bank]->edge; 673 gpio_bank_saved[bank].edge = gpio_array[bank]->edge;
761 gpio_bank_saved[bank].both = gpio_bankb[bank]->both; 674 gpio_bank_saved[bank].both = gpio_array[bank]->both;
762 gpio_bank_saved[bank].maska = gpio_bankb[bank]->maska; 675 gpio_bank_saved[bank].maska = gpio_array[bank]->maska;
763 } 676 }
764 677
765 AWA_DUMMY_READ(maska); 678 AWA_DUMMY_READ(maska);
@@ -770,27 +683,27 @@ void bfin_gpio_pm_hibernate_restore(void)
770 int i, bank; 683 int i, bank;
771 684
772 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { 685 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
773 bank = gpio_bank(i); 686 bank = gpio_bank(i);
774 687
775#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY) 688#if defined(BF527_FAMILY) || defined(BF537_FAMILY) || defined(BF518_FAMILY)
776#if defined(BF527_FAMILY) || defined(BF518_FAMILY) 689#if defined(BF527_FAMILY) || defined(BF518_FAMILY)
777 *port_mux[bank] = gpio_bank_saved[bank].mux; 690 *port_mux[bank] = gpio_bank_saved[bank].mux;
778#else 691#else
779 if (bank == 0) 692 if (bank == 0)
780 bfin_write_PORT_MUX(gpio_bank_saved[bank].mux); 693 bfin_write_PORT_MUX(gpio_bank_saved[bank].mux);
781#endif 694#endif
782 *port_fer[bank] = gpio_bank_saved[bank].fer; 695 *port_fer[bank] = gpio_bank_saved[bank].fer;
783#endif 696#endif
784 gpio_bankb[bank]->inen = gpio_bank_saved[bank].inen; 697 gpio_array[bank]->inen = gpio_bank_saved[bank].inen;
785 gpio_bankb[bank]->dir = gpio_bank_saved[bank].dir; 698 gpio_array[bank]->dir = gpio_bank_saved[bank].dir;
786 gpio_bankb[bank]->polar = gpio_bank_saved[bank].polar; 699 gpio_array[bank]->polar = gpio_bank_saved[bank].polar;
787 gpio_bankb[bank]->edge = gpio_bank_saved[bank].edge; 700 gpio_array[bank]->edge = gpio_bank_saved[bank].edge;
788 gpio_bankb[bank]->both = gpio_bank_saved[bank].both; 701 gpio_array[bank]->both = gpio_bank_saved[bank].both;
789 702
790 gpio_bankb[bank]->data_set = gpio_bank_saved[bank].data 703 gpio_array[bank]->data_set = gpio_bank_saved[bank].data
791 | gpio_bank_saved[bank].dir; 704 | gpio_bank_saved[bank].dir;
792 705
793 gpio_bankb[bank]->maska = gpio_bank_saved[bank].maska; 706 gpio_array[bank]->maska = gpio_bank_saved[bank].maska;
794 } 707 }
795 AWA_DUMMY_READ(maska); 708 AWA_DUMMY_READ(maska);
796} 709}
@@ -817,12 +730,12 @@ void bfin_gpio_pm_hibernate_suspend(void)
817 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { 730 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
818 bank = gpio_bank(i); 731 bank = gpio_bank(i);
819 732
820 gpio_bank_saved[bank].fer = gpio_array[bank]->port_fer; 733 gpio_bank_saved[bank].fer = gpio_array[bank]->port_fer;
821 gpio_bank_saved[bank].mux = gpio_array[bank]->port_mux; 734 gpio_bank_saved[bank].mux = gpio_array[bank]->port_mux;
822 gpio_bank_saved[bank].data = gpio_array[bank]->port_data; 735 gpio_bank_saved[bank].data = gpio_array[bank]->data;
823 gpio_bank_saved[bank].data = gpio_array[bank]->port_data; 736 gpio_bank_saved[bank].data = gpio_array[bank]->data;
824 gpio_bank_saved[bank].inen = gpio_array[bank]->port_inen; 737 gpio_bank_saved[bank].inen = gpio_array[bank]->inen;
825 gpio_bank_saved[bank].dir = gpio_array[bank]->port_dir_set; 738 gpio_bank_saved[bank].dir = gpio_array[bank]->dir_set;
826 } 739 }
827} 740}
828 741
@@ -831,21 +744,21 @@ void bfin_gpio_pm_hibernate_restore(void)
831 int i, bank; 744 int i, bank;
832 745
833 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) { 746 for (i = 0; i < MAX_BLACKFIN_GPIOS; i += GPIO_BANKSIZE) {
834 bank = gpio_bank(i); 747 bank = gpio_bank(i);
835 748
836 gpio_array[bank]->port_mux = gpio_bank_saved[bank].mux; 749 gpio_array[bank]->port_mux = gpio_bank_saved[bank].mux;
837 gpio_array[bank]->port_fer = gpio_bank_saved[bank].fer; 750 gpio_array[bank]->port_fer = gpio_bank_saved[bank].fer;
838 gpio_array[bank]->port_inen = gpio_bank_saved[bank].inen; 751 gpio_array[bank]->inen = gpio_bank_saved[bank].inen;
839 gpio_array[bank]->port_dir_set = gpio_bank_saved[bank].dir; 752 gpio_array[bank]->dir_set = gpio_bank_saved[bank].dir;
840 gpio_array[bank]->port_set = gpio_bank_saved[bank].data 753 gpio_array[bank]->data_set = gpio_bank_saved[bank].data
841 | gpio_bank_saved[bank].dir; 754 | gpio_bank_saved[bank].dir;
842 } 755 }
843} 756}
844#endif 757#endif
845 758
846unsigned short get_gpio_dir(unsigned gpio) 759unsigned short get_gpio_dir(unsigned gpio)
847{ 760{
848 return (0x01 & (gpio_array[gpio_bank(gpio)]->port_dir_clear >> gpio_sub_n(gpio))); 761 return (0x01 & (gpio_array[gpio_bank(gpio)]->dir_clear >> gpio_sub_n(gpio)));
849} 762}
850EXPORT_SYMBOL(get_gpio_dir); 763EXPORT_SYMBOL(get_gpio_dir);
851 764
@@ -905,9 +818,7 @@ int peripheral_request(unsigned short per, const char *label)
905 */ 818 */
906 819
907#ifdef BF548_FAMILY 820#ifdef BF548_FAMILY
908 u16 funct = get_portmux(ident); 821 if (!((per & P_MAYSHARE) && get_portmux(per) == P_FUNCT2MUX(per))) {
909
910 if (!((per & P_MAYSHARE) && (funct == P_FUNCT2MUX(per)))) {
911#else 822#else
912 if (!(per & P_MAYSHARE)) { 823 if (!(per & P_MAYSHARE)) {
913#endif 824#endif
@@ -931,11 +842,7 @@ int peripheral_request(unsigned short per, const char *label)
931 anyway: 842 anyway:
932 reserved_peri_map[gpio_bank(ident)] |= gpio_bit(ident); 843 reserved_peri_map[gpio_bank(ident)] |= gpio_bit(ident);
933 844
934#ifdef BF548_FAMILY 845 portmux_setup(per);
935 portmux_setup(ident, P_FUNCT2MUX(per));
936#else
937 portmux_setup(per, P_FUNCT2MUX(per));
938#endif
939 port_setup(ident, PERIPHERAL_USAGE); 846 port_setup(ident, PERIPHERAL_USAGE);
940 847
941 local_irq_restore_hw(flags); 848 local_irq_restore_hw(flags);
@@ -977,9 +884,6 @@ void peripheral_free(unsigned short per)
977 if (!(per & P_DEFINED)) 884 if (!(per & P_DEFINED))
978 return; 885 return;
979 886
980 if (check_gpio(ident) < 0)
981 return;
982
983 local_irq_save_hw(flags); 887 local_irq_save_hw(flags);
984 888
985 if (unlikely(!(reserved_peri_map[gpio_bank(ident)] & gpio_bit(ident)))) { 889 if (unlikely(!(reserved_peri_map[gpio_bank(ident)] & gpio_bit(ident)))) {
@@ -1056,9 +960,15 @@ int bfin_gpio_request(unsigned gpio, const char *label)
1056 local_irq_restore_hw(flags); 960 local_irq_restore_hw(flags);
1057 return -EBUSY; 961 return -EBUSY;
1058 } 962 }
1059 if (unlikely(reserved_gpio_irq_map[gpio_bank(gpio)] & gpio_bit(gpio))) 963 if (unlikely(reserved_gpio_irq_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
1060 printk(KERN_NOTICE "bfin-gpio: GPIO %d is already reserved as gpio-irq!" 964 printk(KERN_NOTICE "bfin-gpio: GPIO %d is already reserved as gpio-irq!"
1061 " (Documentation/blackfin/bfin-gpio-notes.txt)\n", gpio); 965 " (Documentation/blackfin/bfin-gpio-notes.txt)\n", gpio);
966 }
967#ifndef BF548_FAMILY
968 else { /* Reset POLAR setting when acquiring a gpio for the first time */
969 set_gpio_polar(gpio, 0);
970 }
971#endif
1062 972
1063 reserved_gpio_map[gpio_bank(gpio)] |= gpio_bit(gpio); 973 reserved_gpio_map[gpio_bank(gpio)] |= gpio_bit(gpio);
1064 set_label(gpio, label); 974 set_label(gpio, label);
@@ -1078,6 +988,8 @@ void bfin_gpio_free(unsigned gpio)
1078 if (check_gpio(gpio) < 0) 988 if (check_gpio(gpio) < 0)
1079 return; 989 return;
1080 990
991 might_sleep();
992
1081 local_irq_save_hw(flags); 993 local_irq_save_hw(flags);
1082 994
1083 if (unlikely(!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio)))) { 995 if (unlikely(!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio)))) {
@@ -1158,8 +1070,16 @@ void bfin_gpio_irq_free(unsigned gpio)
1158 local_irq_restore_hw(flags); 1070 local_irq_restore_hw(flags);
1159} 1071}
1160 1072
1161 1073static inline void __bfin_gpio_direction_input(unsigned gpio)
1074{
1162#ifdef BF548_FAMILY 1075#ifdef BF548_FAMILY
1076 gpio_array[gpio_bank(gpio)]->dir_clear = gpio_bit(gpio);
1077#else
1078 gpio_array[gpio_bank(gpio)]->dir &= ~gpio_bit(gpio);
1079#endif
1080 gpio_array[gpio_bank(gpio)]->inen |= gpio_bit(gpio);
1081}
1082
1163int bfin_gpio_direction_input(unsigned gpio) 1083int bfin_gpio_direction_input(unsigned gpio)
1164{ 1084{
1165 unsigned long flags; 1085 unsigned long flags;
@@ -1170,125 +1090,85 @@ int bfin_gpio_direction_input(unsigned gpio)
1170 } 1090 }
1171 1091
1172 local_irq_save_hw(flags); 1092 local_irq_save_hw(flags);
1173 gpio_array[gpio_bank(gpio)]->port_dir_clear = gpio_bit(gpio); 1093 __bfin_gpio_direction_input(gpio);
1174 gpio_array[gpio_bank(gpio)]->port_inen |= gpio_bit(gpio); 1094 AWA_DUMMY_READ(inen);
1175 local_irq_restore_hw(flags); 1095 local_irq_restore_hw(flags);
1176 1096
1177 return 0; 1097 return 0;
1178} 1098}
1179EXPORT_SYMBOL(bfin_gpio_direction_input); 1099EXPORT_SYMBOL(bfin_gpio_direction_input);
1180 1100
1181int bfin_gpio_direction_output(unsigned gpio, int value) 1101void bfin_gpio_irq_prepare(unsigned gpio)
1182{ 1102{
1103#ifdef BF548_FAMILY
1183 unsigned long flags; 1104 unsigned long flags;
1105#endif
1184 1106
1185 if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) { 1107 port_setup(gpio, GPIO_USAGE);
1186 gpio_error(gpio);
1187 return -EINVAL;
1188 }
1189 1108
1109#ifdef BF548_FAMILY
1190 local_irq_save_hw(flags); 1110 local_irq_save_hw(flags);
1191 gpio_array[gpio_bank(gpio)]->port_inen &= ~gpio_bit(gpio); 1111 __bfin_gpio_direction_input(gpio);
1192 gpio_set_value(gpio, value);
1193 gpio_array[gpio_bank(gpio)]->port_dir_set = gpio_bit(gpio);
1194 local_irq_restore_hw(flags); 1112 local_irq_restore_hw(flags);
1195 1113#endif
1196 return 0;
1197} 1114}
1198EXPORT_SYMBOL(bfin_gpio_direction_output);
1199 1115
1200void bfin_gpio_set_value(unsigned gpio, int arg) 1116void bfin_gpio_set_value(unsigned gpio, int arg)
1201{ 1117{
1202 if (arg) 1118 if (arg)
1203 gpio_array[gpio_bank(gpio)]->port_set = gpio_bit(gpio); 1119 gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio);
1204 else 1120 else
1205 gpio_array[gpio_bank(gpio)]->port_clear = gpio_bit(gpio); 1121 gpio_array[gpio_bank(gpio)]->data_clear = gpio_bit(gpio);
1206} 1122}
1207EXPORT_SYMBOL(bfin_gpio_set_value); 1123EXPORT_SYMBOL(bfin_gpio_set_value);
1208 1124
1209int bfin_gpio_get_value(unsigned gpio) 1125int bfin_gpio_direction_output(unsigned gpio, int value)
1210{
1211 return (1 & (gpio_array[gpio_bank(gpio)]->port_data >> gpio_sub_n(gpio)));
1212}
1213EXPORT_SYMBOL(bfin_gpio_get_value);
1214
1215void bfin_gpio_irq_prepare(unsigned gpio)
1216{ 1126{
1217 unsigned long flags; 1127 unsigned long flags;
1218 1128
1219 port_setup(gpio, GPIO_USAGE); 1129 if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
1130 gpio_error(gpio);
1131 return -EINVAL;
1132 }
1220 1133
1221 local_irq_save_hw(flags); 1134 local_irq_save_hw(flags);
1222 gpio_array[gpio_bank(gpio)]->port_dir_clear = gpio_bit(gpio);
1223 gpio_array[gpio_bank(gpio)]->port_inen |= gpio_bit(gpio);
1224 local_irq_restore_hw(flags);
1225}
1226 1135
1136 gpio_array[gpio_bank(gpio)]->inen &= ~gpio_bit(gpio);
1137 gpio_set_value(gpio, value);
1138#ifdef BF548_FAMILY
1139 gpio_array[gpio_bank(gpio)]->dir_set = gpio_bit(gpio);
1227#else 1140#else
1141 gpio_array[gpio_bank(gpio)]->dir |= gpio_bit(gpio);
1142#endif
1143
1144 AWA_DUMMY_READ(dir);
1145 local_irq_restore_hw(flags);
1146
1147 return 0;
1148}
1149EXPORT_SYMBOL(bfin_gpio_direction_output);
1228 1150
1229int bfin_gpio_get_value(unsigned gpio) 1151int bfin_gpio_get_value(unsigned gpio)
1230{ 1152{
1153#ifdef BF548_FAMILY
1154 return (1 & (gpio_array[gpio_bank(gpio)]->data >> gpio_sub_n(gpio)));
1155#else
1231 unsigned long flags; 1156 unsigned long flags;
1232 int ret;
1233 1157
1234 if (unlikely(get_gpio_edge(gpio))) { 1158 if (unlikely(get_gpio_edge(gpio))) {
1159 int ret;
1235 local_irq_save_hw(flags); 1160 local_irq_save_hw(flags);
1236 set_gpio_edge(gpio, 0); 1161 set_gpio_edge(gpio, 0);
1237 ret = get_gpio_data(gpio); 1162 ret = get_gpio_data(gpio);
1238 set_gpio_edge(gpio, 1); 1163 set_gpio_edge(gpio, 1);
1239 local_irq_restore_hw(flags); 1164 local_irq_restore_hw(flags);
1240
1241 return ret; 1165 return ret;
1242 } else 1166 } else
1243 return get_gpio_data(gpio); 1167 return get_gpio_data(gpio);
1168#endif
1244} 1169}
1245EXPORT_SYMBOL(bfin_gpio_get_value); 1170EXPORT_SYMBOL(bfin_gpio_get_value);
1246 1171
1247
1248int bfin_gpio_direction_input(unsigned gpio)
1249{
1250 unsigned long flags;
1251
1252 if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
1253 gpio_error(gpio);
1254 return -EINVAL;
1255 }
1256
1257 local_irq_save_hw(flags);
1258 gpio_bankb[gpio_bank(gpio)]->dir &= ~gpio_bit(gpio);
1259 gpio_bankb[gpio_bank(gpio)]->inen |= gpio_bit(gpio);
1260 AWA_DUMMY_READ(inen);
1261 local_irq_restore_hw(flags);
1262
1263 return 0;
1264}
1265EXPORT_SYMBOL(bfin_gpio_direction_input);
1266
1267int bfin_gpio_direction_output(unsigned gpio, int value)
1268{
1269 unsigned long flags;
1270
1271 if (!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
1272 gpio_error(gpio);
1273 return -EINVAL;
1274 }
1275
1276 local_irq_save_hw(flags);
1277 gpio_bankb[gpio_bank(gpio)]->inen &= ~gpio_bit(gpio);
1278
1279 if (value)
1280 gpio_bankb[gpio_bank(gpio)]->data_set = gpio_bit(gpio);
1281 else
1282 gpio_bankb[gpio_bank(gpio)]->data_clear = gpio_bit(gpio);
1283
1284 gpio_bankb[gpio_bank(gpio)]->dir |= gpio_bit(gpio);
1285 AWA_DUMMY_READ(dir);
1286 local_irq_restore_hw(flags);
1287
1288 return 0;
1289}
1290EXPORT_SYMBOL(bfin_gpio_direction_output);
1291
1292/* If we are booting from SPI and our board lacks a strong enough pull up, 1172/* If we are booting from SPI and our board lacks a strong enough pull up,
1293 * the core can reset and execute the bootrom faster than the resistor can 1173 * the core can reset and execute the bootrom faster than the resistor can
1294 * pull the signal logically high. To work around this (common) error in 1174 * pull the signal logically high. To work around this (common) error in
@@ -1299,23 +1179,15 @@ EXPORT_SYMBOL(bfin_gpio_direction_output);
1299 * lives here as we need to force all the GPIO states w/out going through 1179 * lives here as we need to force all the GPIO states w/out going through
1300 * BUG() checks and such. 1180 * BUG() checks and such.
1301 */ 1181 */
1302void bfin_gpio_reset_spi0_ssel1(void) 1182void bfin_reset_boot_spi_cs(unsigned short pin)
1303{ 1183{
1304 u16 gpio = P_IDENT(P_SPI0_SSEL1); 1184 unsigned short gpio = P_IDENT(pin);
1305
1306 port_setup(gpio, GPIO_USAGE); 1185 port_setup(gpio, GPIO_USAGE);
1307 gpio_bankb[gpio_bank(gpio)]->data_set = gpio_bit(gpio); 1186 gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio);
1308 AWA_DUMMY_READ(data_set); 1187 AWA_DUMMY_READ(data_set);
1309 udelay(1); 1188 udelay(1);
1310} 1189}
1311 1190
1312void bfin_gpio_irq_prepare(unsigned gpio)
1313{
1314 port_setup(gpio, GPIO_USAGE);
1315}
1316
1317#endif /*BF548_FAMILY */
1318
1319#if defined(CONFIG_PROC_FS) 1191#if defined(CONFIG_PROC_FS)
1320static int gpio_proc_read(char *buf, char **start, off_t offset, 1192static int gpio_proc_read(char *buf, char **start, off_t offset,
1321 int len, int *unused_i, void *unused_v) 1193 int len, int *unused_i, void *unused_v)
@@ -1369,11 +1241,7 @@ int bfin_gpiolib_get_value(struct gpio_chip *chip, unsigned gpio)
1369 1241
1370void bfin_gpiolib_set_value(struct gpio_chip *chip, unsigned gpio, int value) 1242void bfin_gpiolib_set_value(struct gpio_chip *chip, unsigned gpio, int value)
1371{ 1243{
1372#ifdef BF548_FAMILY
1373 return bfin_gpio_set_value(gpio, value); 1244 return bfin_gpio_set_value(gpio, value);
1374#else
1375 return set_gpio_data(gpio, value);
1376#endif
1377} 1245}
1378 1246
1379int bfin_gpiolib_gpio_request(struct gpio_chip *chip, unsigned gpio) 1247int bfin_gpiolib_gpio_request(struct gpio_chip *chip, unsigned gpio)
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbinit.c b/arch/blackfin/kernel/cplb-mpu/cplbinit.c
index bdb958486e76..3e329a6ce041 100644
--- a/arch/blackfin/kernel/cplb-mpu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-mpu/cplbinit.c
@@ -63,10 +63,8 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
63 dcplb_tbl[cpu][i_d].addr = 0; 63 dcplb_tbl[cpu][i_d].addr = 0;
64 dcplb_tbl[cpu][i_d++].data = SDRAM_OOPS | PAGE_SIZE_1KB; 64 dcplb_tbl[cpu][i_d++].data = SDRAM_OOPS | PAGE_SIZE_1KB;
65 65
66#if 0
67 icplb_tbl[cpu][i_i].addr = 0; 66 icplb_tbl[cpu][i_i].addr = 0;
68 icplb_tbl[cpu][i_i++].data = i_cache | CPLB_USER_RD | PAGE_SIZE_4KB; 67 icplb_tbl[cpu][i_i++].data = i_cache | CPLB_USER_RD | PAGE_SIZE_1KB;
69#endif
70 68
71 /* Cover kernel memory with 4M pages. */ 69 /* Cover kernel memory with 4M pages. */
72 addr = 0; 70 addr = 0;
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
index 0e28f7595733..d6c067782e63 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
@@ -53,9 +53,13 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
53 53
54 i_d = i_i = 0; 54 i_d = i_i = 0;
55 55
56#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
56 /* Set up the zero page. */ 57 /* Set up the zero page. */
57 d_tbl[i_d].addr = 0; 58 d_tbl[i_d].addr = 0;
58 d_tbl[i_d++].data = SDRAM_OOPS | PAGE_SIZE_1KB; 59 d_tbl[i_d++].data = SDRAM_OOPS | PAGE_SIZE_1KB;
60 i_tbl[i_i].addr = 0;
61 i_tbl[i_i++].data = SDRAM_OOPS | PAGE_SIZE_1KB;
62#endif
59 63
60 /* Cover kernel memory with 4M pages. */ 64 /* Cover kernel memory with 4M pages. */
61 addr = 0; 65 addr = 0;
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbmgr.c b/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
index 376249ab2694..8cbb47c7b663 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
@@ -163,12 +163,14 @@ MGR_ATTR static int icplb_miss(int cpu)
163 nr_icplb_supv_miss[cpu]++; 163 nr_icplb_supv_miss[cpu]++;
164 164
165 base = 0; 165 base = 0;
166 for (idx = 0; idx < icplb_nr_bounds; idx++) { 166 idx = 0;
167 do {
167 eaddr = icplb_bounds[idx].eaddr; 168 eaddr = icplb_bounds[idx].eaddr;
168 if (addr < eaddr) 169 if (addr < eaddr)
169 break; 170 break;
170 base = eaddr; 171 base = eaddr;
171 } 172 } while (++idx < icplb_nr_bounds);
173
172 if (unlikely(idx == icplb_nr_bounds)) 174 if (unlikely(idx == icplb_nr_bounds))
173 return CPLB_NO_ADDR_MATCH; 175 return CPLB_NO_ADDR_MATCH;
174 176
@@ -208,12 +210,14 @@ MGR_ATTR static int dcplb_miss(int cpu)
208 nr_dcplb_supv_miss[cpu]++; 210 nr_dcplb_supv_miss[cpu]++;
209 211
210 base = 0; 212 base = 0;
211 for (idx = 0; idx < dcplb_nr_bounds; idx++) { 213 idx = 0;
214 do {
212 eaddr = dcplb_bounds[idx].eaddr; 215 eaddr = dcplb_bounds[idx].eaddr;
213 if (addr < eaddr) 216 if (addr < eaddr)
214 break; 217 break;
215 base = eaddr; 218 base = eaddr;
216 } 219 } while (++idx < dcplb_nr_bounds);
220
217 if (unlikely(idx == dcplb_nr_bounds)) 221 if (unlikely(idx == dcplb_nr_bounds))
218 return CPLB_NO_ADDR_MATCH; 222 return CPLB_NO_ADDR_MATCH;
219 223
diff --git a/arch/blackfin/kernel/ipipe.c b/arch/blackfin/kernel/ipipe.c
index 339be5a3ae6a..a5de8d45424c 100644
--- a/arch/blackfin/kernel/ipipe.c
+++ b/arch/blackfin/kernel/ipipe.c
@@ -35,14 +35,8 @@
35#include <asm/atomic.h> 35#include <asm/atomic.h>
36#include <asm/io.h> 36#include <asm/io.h>
37 37
38static int create_irq_threads;
39
40DEFINE_PER_CPU(struct pt_regs, __ipipe_tick_regs); 38DEFINE_PER_CPU(struct pt_regs, __ipipe_tick_regs);
41 39
42static DEFINE_PER_CPU(unsigned long, pending_irqthread_mask);
43
44static DEFINE_PER_CPU(int [IVG13 + 1], pending_irq_count);
45
46asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs); 40asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs);
47 41
48static void __ipipe_no_irqtail(void); 42static void __ipipe_no_irqtail(void);
@@ -93,6 +87,7 @@ void __ipipe_enable_pipeline(void)
93 */ 87 */
94void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs) 88void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs)
95{ 89{
90 struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr();
96 struct ipipe_domain *this_domain, *next_domain; 91 struct ipipe_domain *this_domain, *next_domain;
97 struct list_head *head, *pos; 92 struct list_head *head, *pos;
98 int m_ack, s = -1; 93 int m_ack, s = -1;
@@ -104,7 +99,6 @@ void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs)
104 * interrupt. 99 * interrupt.
105 */ 100 */
106 m_ack = (regs == NULL || irq == IRQ_SYSTMR || irq == IRQ_CORETMR); 101 m_ack = (regs == NULL || irq == IRQ_SYSTMR || irq == IRQ_CORETMR);
107
108 this_domain = ipipe_current_domain; 102 this_domain = ipipe_current_domain;
109 103
110 if (unlikely(test_bit(IPIPE_STICKY_FLAG, &this_domain->irqs[irq].control))) 104 if (unlikely(test_bit(IPIPE_STICKY_FLAG, &this_domain->irqs[irq].control)))
@@ -114,49 +108,28 @@ void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs)
114 next_domain = list_entry(head, struct ipipe_domain, p_link); 108 next_domain = list_entry(head, struct ipipe_domain, p_link);
115 if (likely(test_bit(IPIPE_WIRED_FLAG, &next_domain->irqs[irq].control))) { 109 if (likely(test_bit(IPIPE_WIRED_FLAG, &next_domain->irqs[irq].control))) {
116 if (!m_ack && next_domain->irqs[irq].acknowledge != NULL) 110 if (!m_ack && next_domain->irqs[irq].acknowledge != NULL)
117 next_domain->irqs[irq].acknowledge(irq, irq_desc + irq); 111 next_domain->irqs[irq].acknowledge(irq, irq_to_desc(irq));
118 if (test_bit(IPIPE_ROOTLOCK_FLAG, &ipipe_root_domain->flags)) 112 if (test_bit(IPIPE_SYNCDEFER_FLAG, &p->status))
119 s = __test_and_set_bit(IPIPE_STALL_FLAG, 113 s = __test_and_set_bit(IPIPE_STALL_FLAG, &p->status);
120 &ipipe_root_cpudom_var(status));
121 __ipipe_dispatch_wired(next_domain, irq); 114 __ipipe_dispatch_wired(next_domain, irq);
122 goto finalize; 115 goto out;
123 return;
124 } 116 }
125 } 117 }
126 118
127 /* Ack the interrupt. */ 119 /* Ack the interrupt. */
128 120
129 pos = head; 121 pos = head;
130
131 while (pos != &__ipipe_pipeline) { 122 while (pos != &__ipipe_pipeline) {
132 next_domain = list_entry(pos, struct ipipe_domain, p_link); 123 next_domain = list_entry(pos, struct ipipe_domain, p_link);
133 /*
134 * For each domain handling the incoming IRQ, mark it
135 * as pending in its log.
136 */
137 if (test_bit(IPIPE_HANDLE_FLAG, &next_domain->irqs[irq].control)) { 124 if (test_bit(IPIPE_HANDLE_FLAG, &next_domain->irqs[irq].control)) {
138 /*
139 * Domains that handle this IRQ are polled for
140 * acknowledging it by decreasing priority
141 * order. The interrupt must be made pending
142 * _first_ in the domain's status flags before
143 * the PIC is unlocked.
144 */
145 __ipipe_set_irq_pending(next_domain, irq); 125 __ipipe_set_irq_pending(next_domain, irq);
146
147 if (!m_ack && next_domain->irqs[irq].acknowledge != NULL) { 126 if (!m_ack && next_domain->irqs[irq].acknowledge != NULL) {
148 next_domain->irqs[irq].acknowledge(irq, irq_desc + irq); 127 next_domain->irqs[irq].acknowledge(irq, irq_to_desc(irq));
149 m_ack = 1; 128 m_ack = 1;
150 } 129 }
151 } 130 }
152
153 /*
154 * If the domain does not want the IRQ to be passed
155 * down the interrupt pipe, exit the loop now.
156 */
157 if (!test_bit(IPIPE_PASS_FLAG, &next_domain->irqs[irq].control)) 131 if (!test_bit(IPIPE_PASS_FLAG, &next_domain->irqs[irq].control))
158 break; 132 break;
159
160 pos = next_domain->p_link.next; 133 pos = next_domain->p_link.next;
161 } 134 }
162 135
@@ -166,18 +139,24 @@ void __ipipe_handle_irq(unsigned irq, struct pt_regs *regs)
166 * immediately to the current domain if the interrupt has been 139 * immediately to the current domain if the interrupt has been
167 * marked as 'sticky'. This search does not go beyond the 140 * marked as 'sticky'. This search does not go beyond the
168 * current domain in the pipeline. We also enforce the 141 * current domain in the pipeline. We also enforce the
169 * additional root stage lock (blackfin-specific). */ 142 * additional root stage lock (blackfin-specific).
143 */
144 if (test_bit(IPIPE_SYNCDEFER_FLAG, &p->status))
145 s = __test_and_set_bit(IPIPE_STALL_FLAG, &p->status);
170 146
171 if (test_bit(IPIPE_ROOTLOCK_FLAG, &ipipe_root_domain->flags)) 147 /*
172 s = __test_and_set_bit(IPIPE_STALL_FLAG, 148 * If the interrupt preempted the head domain, then do not
173 &ipipe_root_cpudom_var(status)); 149 * even try to walk the pipeline, unless an interrupt is
174finalize: 150 * pending for it.
151 */
152 if (test_bit(IPIPE_AHEAD_FLAG, &this_domain->flags) &&
153 ipipe_head_cpudom_var(irqpend_himask) == 0)
154 goto out;
175 155
176 __ipipe_walk_pipeline(head); 156 __ipipe_walk_pipeline(head);
177 157out:
178 if (!s) 158 if (!s)
179 __clear_bit(IPIPE_STALL_FLAG, 159 __clear_bit(IPIPE_STALL_FLAG, &p->status);
180 &ipipe_root_cpudom_var(status));
181} 160}
182 161
183int __ipipe_check_root(void) 162int __ipipe_check_root(void)
@@ -187,7 +166,7 @@ int __ipipe_check_root(void)
187 166
188void __ipipe_enable_irqdesc(struct ipipe_domain *ipd, unsigned irq) 167void __ipipe_enable_irqdesc(struct ipipe_domain *ipd, unsigned irq)
189{ 168{
190 struct irq_desc *desc = irq_desc + irq; 169 struct irq_desc *desc = irq_to_desc(irq);
191 int prio = desc->ic_prio; 170 int prio = desc->ic_prio;
192 171
193 desc->depth = 0; 172 desc->depth = 0;
@@ -199,7 +178,7 @@ EXPORT_SYMBOL(__ipipe_enable_irqdesc);
199 178
200void __ipipe_disable_irqdesc(struct ipipe_domain *ipd, unsigned irq) 179void __ipipe_disable_irqdesc(struct ipipe_domain *ipd, unsigned irq)
201{ 180{
202 struct irq_desc *desc = irq_desc + irq; 181 struct irq_desc *desc = irq_to_desc(irq);
203 int prio = desc->ic_prio; 182 int prio = desc->ic_prio;
204 183
205 if (ipd != &ipipe_root && 184 if (ipd != &ipipe_root &&
@@ -236,15 +215,18 @@ int __ipipe_syscall_root(struct pt_regs *regs)
236{ 215{
237 unsigned long flags; 216 unsigned long flags;
238 217
239 /* We need to run the IRQ tail hook whenever we don't 218 /*
219 * We need to run the IRQ tail hook whenever we don't
240 * propagate a syscall to higher domains, because we know that 220 * propagate a syscall to higher domains, because we know that
241 * important operations might be pending there (e.g. Xenomai 221 * important operations might be pending there (e.g. Xenomai
242 * deferred rescheduling). */ 222 * deferred rescheduling).
223 */
243 224
244 if (!__ipipe_syscall_watched_p(current, regs->orig_p0)) { 225 if (regs->orig_p0 < NR_syscalls) {
245 void (*hook)(void) = (void (*)(void))__ipipe_irq_tail_hook; 226 void (*hook)(void) = (void (*)(void))__ipipe_irq_tail_hook;
246 hook(); 227 hook();
247 return 0; 228 if ((current->flags & PF_EVNOTIFY) == 0)
229 return 0;
248 } 230 }
249 231
250 /* 232 /*
@@ -312,112 +294,46 @@ int ipipe_trigger_irq(unsigned irq)
312{ 294{
313 unsigned long flags; 295 unsigned long flags;
314 296
297#ifdef CONFIG_IPIPE_DEBUG
315 if (irq >= IPIPE_NR_IRQS || 298 if (irq >= IPIPE_NR_IRQS ||
316 (ipipe_virtual_irq_p(irq) 299 (ipipe_virtual_irq_p(irq)
317 && !test_bit(irq - IPIPE_VIRQ_BASE, &__ipipe_virtual_irq_map))) 300 && !test_bit(irq - IPIPE_VIRQ_BASE, &__ipipe_virtual_irq_map)))
318 return -EINVAL; 301 return -EINVAL;
302#endif
319 303
320 local_irq_save_hw(flags); 304 local_irq_save_hw(flags);
321
322 __ipipe_handle_irq(irq, NULL); 305 __ipipe_handle_irq(irq, NULL);
323
324 local_irq_restore_hw(flags); 306 local_irq_restore_hw(flags);
325 307
326 return 1; 308 return 1;
327} 309}
328 310
329/* Move Linux IRQ to threads. */ 311asmlinkage void __ipipe_sync_root(void)
330
331static int do_irqd(void *__desc)
332{ 312{
333 struct irq_desc *desc = __desc; 313 unsigned long flags;
334 unsigned irq = desc - irq_desc;
335 int thrprio = desc->thr_prio;
336 int thrmask = 1 << thrprio;
337 int cpu = smp_processor_id();
338 cpumask_t cpumask;
339
340 sigfillset(&current->blocked);
341 current->flags |= PF_NOFREEZE;
342 cpumask = cpumask_of_cpu(cpu);
343 set_cpus_allowed(current, cpumask);
344 ipipe_setscheduler_root(current, SCHED_FIFO, 50 + thrprio);
345
346 while (!kthread_should_stop()) {
347 local_irq_disable();
348 if (!(desc->status & IRQ_SCHEDULED)) {
349 set_current_state(TASK_INTERRUPTIBLE);
350resched:
351 local_irq_enable();
352 schedule();
353 local_irq_disable();
354 }
355 __set_current_state(TASK_RUNNING);
356 /*
357 * If higher priority interrupt servers are ready to
358 * run, reschedule immediately. We need this for the
359 * GPIO demux IRQ handler to unmask the interrupt line
360 * _last_, after all GPIO IRQs have run.
361 */
362 if (per_cpu(pending_irqthread_mask, cpu) & ~(thrmask|(thrmask-1)))
363 goto resched;
364 if (--per_cpu(pending_irq_count[thrprio], cpu) == 0)
365 per_cpu(pending_irqthread_mask, cpu) &= ~thrmask;
366 desc->status &= ~IRQ_SCHEDULED;
367 desc->thr_handler(irq, &__raw_get_cpu_var(__ipipe_tick_regs));
368 local_irq_enable();
369 }
370 __set_current_state(TASK_RUNNING);
371 return 0;
372}
373 314
374static void kick_irqd(unsigned irq, void *cookie) 315 BUG_ON(irqs_disabled());
375{
376 struct irq_desc *desc = irq_desc + irq;
377 int thrprio = desc->thr_prio;
378 int thrmask = 1 << thrprio;
379 int cpu = smp_processor_id();
380
381 if (!(desc->status & IRQ_SCHEDULED)) {
382 desc->status |= IRQ_SCHEDULED;
383 per_cpu(pending_irqthread_mask, cpu) |= thrmask;
384 ++per_cpu(pending_irq_count[thrprio], cpu);
385 wake_up_process(desc->thread);
386 }
387}
388 316
389int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc) 317 local_irq_save_hw(flags);
390{
391 if (desc->thread || !create_irq_threads)
392 return 0;
393
394 desc->thread = kthread_create(do_irqd, desc, "IRQ %d", irq);
395 if (desc->thread == NULL) {
396 printk(KERN_ERR "irqd: could not create IRQ thread %d!\n", irq);
397 return -ENOMEM;
398 }
399 318
400 wake_up_process(desc->thread); 319 clear_thread_flag(TIF_IRQ_SYNC);
401 320
402 desc->thr_handler = ipipe_root_domain->irqs[irq].handler; 321 if (ipipe_root_cpudom_var(irqpend_himask) != 0)
403 ipipe_root_domain->irqs[irq].handler = &kick_irqd; 322 __ipipe_sync_pipeline(IPIPE_IRQMASK_ANY);
404 323
405 return 0; 324 local_irq_restore_hw(flags);
406} 325}
407 326
408void __init ipipe_init_irq_threads(void) 327void ___ipipe_sync_pipeline(unsigned long syncmask)
409{ 328{
410 unsigned irq; 329 struct ipipe_domain *ipd = ipipe_current_domain;
411 struct irq_desc *desc;
412
413 create_irq_threads = 1;
414 330
415 for (irq = 0; irq < NR_IRQS; irq++) { 331 if (ipd == ipipe_root_domain) {
416 desc = irq_desc + irq; 332 if (test_bit(IPIPE_SYNCDEFER_FLAG, &ipipe_root_cpudom_var(status)))
417 if (desc->action != NULL || 333 return;
418 (desc->status & IRQ_NOREQUEST) != 0)
419 ipipe_start_irq_thread(irq, desc);
420 } 334 }
335
336 __ipipe_sync_stage(syncmask);
421} 337}
422 338
423EXPORT_SYMBOL(show_stack); 339EXPORT_SYMBOL(show_stack);
diff --git a/arch/blackfin/kernel/irqchip.c b/arch/blackfin/kernel/irqchip.c
index 5780d6df1542..1ab5b532ec72 100644
--- a/arch/blackfin/kernel/irqchip.c
+++ b/arch/blackfin/kernel/irqchip.c
@@ -35,6 +35,7 @@
35#include <linux/interrupt.h> 35#include <linux/interrupt.h>
36#include <linux/irq.h> 36#include <linux/irq.h>
37#include <asm/trace.h> 37#include <asm/trace.h>
38#include <asm/pda.h>
38 39
39static atomic_t irq_err_count; 40static atomic_t irq_err_count;
40static spinlock_t irq_controller_lock; 41static spinlock_t irq_controller_lock;
@@ -96,8 +97,13 @@ int show_interrupts(struct seq_file *p, void *v)
96 seq_putc(p, '\n'); 97 seq_putc(p, '\n');
97 skip: 98 skip:
98 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 99 spin_unlock_irqrestore(&irq_desc[i].lock, flags);
99 } else if (i == NR_IRQS) 100 } else if (i == NR_IRQS) {
101 seq_printf(p, "NMI: ");
102 for_each_online_cpu(j)
103 seq_printf(p, "%10u ", cpu_pda[j].__nmi_count);
104 seq_printf(p, " CORE Non Maskable Interrupt\n");
100 seq_printf(p, "Err: %10u\n", atomic_read(&irq_err_count)); 105 seq_printf(p, "Err: %10u\n", atomic_read(&irq_err_count));
106 }
101 return 0; 107 return 0;
102} 108}
103 109
@@ -143,11 +149,15 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
143#endif 149#endif
144 generic_handle_irq(irq); 150 generic_handle_irq(irq);
145 151
146#ifndef CONFIG_IPIPE /* Useless and bugous over the I-pipe: IRQs are threaded. */ 152#ifndef CONFIG_IPIPE
147 /* If we're the only interrupt running (ignoring IRQ15 which is for 153 /*
148 syscalls), lower our priority to IRQ14 so that softirqs run at 154 * If we're the only interrupt running (ignoring IRQ15 which
149 that level. If there's another, lower-level interrupt, irq_exit 155 * is for syscalls), lower our priority to IRQ14 so that
150 will defer softirqs to that. */ 156 * softirqs run at that level. If there's another,
157 * lower-level interrupt, irq_exit will defer softirqs to
158 * that. If the interrupt pipeline is enabled, we are already
159 * running at IRQ14 priority, so we don't need this code.
160 */
151 CSYNC(); 161 CSYNC();
152 pending = bfin_read_IPEND() & ~0x8000; 162 pending = bfin_read_IPEND() & ~0x8000;
153 other_ints = pending & (pending - 1); 163 other_ints = pending & (pending - 1);
diff --git a/arch/blackfin/kernel/kgdb_test.c b/arch/blackfin/kernel/kgdb_test.c
index 3dba9c17304a..dbcf3e45cb0b 100644
--- a/arch/blackfin/kernel/kgdb_test.c
+++ b/arch/blackfin/kernel/kgdb_test.c
@@ -20,6 +20,7 @@
20static char cmdline[256]; 20static char cmdline[256];
21static unsigned long len; 21static unsigned long len;
22 22
23#ifndef CONFIG_SMP
23static int num1 __attribute__((l1_data)); 24static int num1 __attribute__((l1_data));
24 25
25void kgdb_l1_test(void) __attribute__((l1_text)); 26void kgdb_l1_test(void) __attribute__((l1_text));
@@ -32,6 +33,8 @@ void kgdb_l1_test(void)
32 printk(KERN_ALERT "L1(after change) : data variable addr = 0x%p, data value is %d\n", &num1, num1); 33 printk(KERN_ALERT "L1(after change) : data variable addr = 0x%p, data value is %d\n", &num1, num1);
33 return ; 34 return ;
34} 35}
36#endif
37
35#if L2_LENGTH 38#if L2_LENGTH
36 39
37static int num2 __attribute__((l2)); 40static int num2 __attribute__((l2));
@@ -59,10 +62,12 @@ int kgdb_test(char *name, int len, int count, int z)
59static int test_proc_output(char *buf) 62static int test_proc_output(char *buf)
60{ 63{
61 kgdb_test("hello world!", 12, 0x55, 0x10); 64 kgdb_test("hello world!", 12, 0x55, 0x10);
65#ifndef CONFIG_SMP
62 kgdb_l1_test(); 66 kgdb_l1_test();
63 #if L2_LENGTH 67#endif
68#if L2_LENGTH
64 kgdb_l2_test(); 69 kgdb_l2_test();
65 #endif 70#endif
66 71
67 return 0; 72 return 0;
68} 73}
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c
index 594e325b40e4..d76618db50df 100644
--- a/arch/blackfin/kernel/ptrace.c
+++ b/arch/blackfin/kernel/ptrace.c
@@ -45,6 +45,7 @@
45#include <asm/asm-offsets.h> 45#include <asm/asm-offsets.h>
46#include <asm/dma.h> 46#include <asm/dma.h>
47#include <asm/fixed_code.h> 47#include <asm/fixed_code.h>
48#include <asm/cacheflush.h>
48#include <asm/mem_map.h> 49#include <asm/mem_map.h>
49 50
50#define TEXT_OFFSET 0 51#define TEXT_OFFSET 0
@@ -240,7 +241,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
240 241
241 } else if (addr >= FIXED_CODE_START 242 } else if (addr >= FIXED_CODE_START
242 && addr + sizeof(tmp) <= FIXED_CODE_END) { 243 && addr + sizeof(tmp) <= FIXED_CODE_END) {
243 memcpy(&tmp, (const void *)(addr), sizeof(tmp)); 244 copy_from_user_page(0, 0, 0, &tmp, (const void *)(addr), sizeof(tmp));
244 copied = sizeof(tmp); 245 copied = sizeof(tmp);
245 246
246 } else 247 } else
@@ -320,7 +321,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
320 321
321 } else if (addr >= FIXED_CODE_START 322 } else if (addr >= FIXED_CODE_START
322 && addr + sizeof(data) <= FIXED_CODE_END) { 323 && addr + sizeof(data) <= FIXED_CODE_END) {
323 memcpy((void *)(addr), &data, sizeof(data)); 324 copy_to_user_page(0, 0, 0, (void *)(addr), &data, sizeof(data));
324 copied = sizeof(data); 325 copied = sizeof(data);
325 326
326 } else 327 } else
diff --git a/arch/blackfin/kernel/reboot.c b/arch/blackfin/kernel/reboot.c
index eeee8cb43360..53d08dee8531 100644
--- a/arch/blackfin/kernel/reboot.c
+++ b/arch/blackfin/kernel/reboot.c
@@ -20,8 +20,8 @@
20 * reset while the Core B bit (on dual core parts) is cleared by 20 * reset while the Core B bit (on dual core parts) is cleared by
21 * the core reset. 21 * the core reset.
22 */ 22 */
23__attribute__((l1_text)) 23__attribute__ ((__l1_text__, __noreturn__))
24static void _bfin_reset(void) 24static void bfin_reset(void)
25{ 25{
26 /* Wait for completion of "system" events such as cache line 26 /* Wait for completion of "system" events such as cache line
27 * line fills so that we avoid infinite stalls later on as 27 * line fills so that we avoid infinite stalls later on as
@@ -30,7 +30,11 @@ static void _bfin_reset(void)
30 */ 30 */
31 __builtin_bfin_ssync(); 31 __builtin_bfin_ssync();
32 32
33 while (1) { 33 /* The bootrom checks to see how it was reset and will
34 * automatically perform a software reset for us when
35 * it starts executing after the core reset.
36 */
37 if (ANOMALY_05000353 || ANOMALY_05000386) {
34 /* Initiate System software reset. */ 38 /* Initiate System software reset. */
35 bfin_write_SWRST(0x7); 39 bfin_write_SWRST(0x7);
36 40
@@ -50,6 +54,11 @@ static void _bfin_reset(void)
50 /* Clear System software reset */ 54 /* Clear System software reset */
51 bfin_write_SWRST(0); 55 bfin_write_SWRST(0);
52 56
57 /* The BF526 ROM will crash during reset */
58#if defined(__ADSPBF522__) || defined(__ADSPBF524__) || defined(__ADSPBF526__)
59 bfin_read_SWRST();
60#endif
61
53 /* Wait for the SWRST write to complete. Cannot rely on SSYNC 62 /* Wait for the SWRST write to complete. Cannot rely on SSYNC
54 * though as the System state is all reset now. 63 * though as the System state is all reset now.
55 */ 64 */
@@ -60,22 +69,11 @@ static void _bfin_reset(void)
60 : "a" (15 * 1) 69 : "a" (15 * 1)
61 : "LC1", "LB1", "LT1" 70 : "LC1", "LB1", "LT1"
62 ); 71 );
72 }
63 73
74 while (1)
64 /* Issue core reset */ 75 /* Issue core reset */
65 asm("raise 1"); 76 asm("raise 1");
66 }
67}
68
69static void bfin_reset(void)
70{
71 if (ANOMALY_05000353 || ANOMALY_05000386)
72 _bfin_reset();
73 else
74 /* the bootrom checks to see how it was reset and will
75 * automatically perform a software reset for us when
76 * it starts executing boot
77 */
78 asm("raise 1;");
79} 77}
80 78
81__attribute__((weak)) 79__attribute__((weak))
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index b2a811347b65..a58687bdee6a 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -60,7 +60,7 @@ void __initdata *init_retx, *init_saved_retx, *init_saved_seqstat,
60#define BFIN_MEMMAP_MAX 128 /* number of entries in bfin_memmap */ 60#define BFIN_MEMMAP_MAX 128 /* number of entries in bfin_memmap */
61#define BFIN_MEMMAP_RAM 1 61#define BFIN_MEMMAP_RAM 1
62#define BFIN_MEMMAP_RESERVED 2 62#define BFIN_MEMMAP_RESERVED 2
63struct bfin_memmap { 63static struct bfin_memmap {
64 int nr_map; 64 int nr_map;
65 struct bfin_memmap_entry { 65 struct bfin_memmap_entry {
66 unsigned long long addr; /* start of memory segment */ 66 unsigned long long addr; /* start of memory segment */
@@ -824,7 +824,15 @@ void __init setup_arch(char **cmdline_p)
824 flash_probe(); 824 flash_probe();
825#endif 825#endif
826 826
827 printk(KERN_INFO "Boot Mode: %i\n", bfin_read_SYSCR() & 0xF);
828
829 /* Newer parts mirror SWRST bits in SYSCR */
830#if defined(CONFIG_BF53x) || defined(CONFIG_BF561) || \
831 defined(CONFIG_BF538) || defined(CONFIG_BF539)
827 _bfin_swrst = bfin_read_SWRST(); 832 _bfin_swrst = bfin_read_SWRST();
833#else
834 _bfin_swrst = bfin_read_SYSCR();
835#endif
828 836
829#ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT 837#ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT
830 bfin_write_SWRST(_bfin_swrst & ~DOUBLE_FAULT); 838 bfin_write_SWRST(_bfin_swrst & ~DOUBLE_FAULT);
@@ -853,7 +861,7 @@ void __init setup_arch(char **cmdline_p)
853 else if (_bfin_swrst & RESET_SOFTWARE) 861 else if (_bfin_swrst & RESET_SOFTWARE)
854 printk(KERN_NOTICE "Reset caused by Software reset\n"); 862 printk(KERN_NOTICE "Reset caused by Software reset\n");
855 863
856 printk(KERN_INFO "Blackfin support (C) 2004-2008 Analog Devices, Inc.\n"); 864 printk(KERN_INFO "Blackfin support (C) 2004-2009 Analog Devices, Inc.\n");
857 if (bfin_compiled_revid() == 0xffff) 865 if (bfin_compiled_revid() == 0xffff)
858 printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU); 866 printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU);
859 else if (bfin_compiled_revid() == -1) 867 else if (bfin_compiled_revid() == -1)
@@ -881,6 +889,10 @@ void __init setup_arch(char **cmdline_p)
881 CPU, bfin_revid()); 889 CPU, bfin_revid());
882 } 890 }
883 891
892 /* We can't run on BF548-0.1 due to ANOMALY 05000448 */
893 if (bfin_cpuid() == 0x27de && bfin_revid() == 1)
894 panic("You can't run on this processor due to 05000448\n");
895
884 printk(KERN_INFO "Blackfin Linux support by http://blackfin.uclinux.org/\n"); 896 printk(KERN_INFO "Blackfin Linux support by http://blackfin.uclinux.org/\n");
885 897
886 printk(KERN_INFO "Processor Speed: %lu MHz core clock and %lu MHz System Clock\n", 898 printk(KERN_INFO "Processor Speed: %lu MHz core clock and %lu MHz System Clock\n",
@@ -1133,12 +1145,12 @@ static int show_cpuinfo(struct seq_file *m, void *v)
1133 icache_size = 0; 1145 icache_size = 0;
1134 1146
1135 seq_printf(m, "cache size\t: %d KB(L1 icache) " 1147 seq_printf(m, "cache size\t: %d KB(L1 icache) "
1136 "%d KB(L1 dcache-%s) %d KB(L2 cache)\n", 1148 "%d KB(L1 dcache%s) %d KB(L2 cache)\n",
1137 icache_size, dcache_size, 1149 icache_size, dcache_size,
1138#if defined CONFIG_BFIN_WB 1150#if defined CONFIG_BFIN_WB
1139 "wb" 1151 "-wb"
1140#elif defined CONFIG_BFIN_WT 1152#elif defined CONFIG_BFIN_WT
1141 "wt" 1153 "-wt"
1142#endif 1154#endif
1143 "", 0); 1155 "", 0);
1144 1156
diff --git a/arch/blackfin/kernel/time.c b/arch/blackfin/kernel/time.c
index 172b4c588467..1bbacfbd4c5d 100644
--- a/arch/blackfin/kernel/time.c
+++ b/arch/blackfin/kernel/time.c
@@ -134,7 +134,10 @@ irqreturn_t timer_interrupt(int irq, void *dummy)
134 134
135 write_seqlock(&xtime_lock); 135 write_seqlock(&xtime_lock);
136#if defined(CONFIG_TICK_SOURCE_SYSTMR0) && !defined(CONFIG_IPIPE) 136#if defined(CONFIG_TICK_SOURCE_SYSTMR0) && !defined(CONFIG_IPIPE)
137/* FIXME: Here TIMIL0 is not set when IPIPE enabled, why? */ 137 /*
138 * TIMIL0 is latched in __ipipe_grab_irq() when the I-Pipe is
139 * enabled.
140 */
138 if (get_gptimer_status(0) & TIMER_STATUS_TIMIL0) { 141 if (get_gptimer_status(0) & TIMER_STATUS_TIMIL0) {
139#endif 142#endif
140 do_timer(1); 143 do_timer(1);
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index 5b0667da8d05..ffe7fb53eccb 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -673,6 +673,14 @@ static void decode_instruction(unsigned short *address)
673 verbose_printk("RTI"); 673 verbose_printk("RTI");
674 else if (opcode == 0x0012) 674 else if (opcode == 0x0012)
675 verbose_printk("RTX"); 675 verbose_printk("RTX");
676 else if (opcode == 0x0013)
677 verbose_printk("RTN");
678 else if (opcode == 0x0014)
679 verbose_printk("RTE");
680 else if (opcode == 0x0025)
681 verbose_printk("EMUEXCPT");
682 else if (opcode == 0x0040 && opcode <= 0x0047)
683 verbose_printk("STI R%i", opcode & 7);
676 else if (opcode >= 0x0050 && opcode <= 0x0057) 684 else if (opcode >= 0x0050 && opcode <= 0x0057)
677 verbose_printk("JUMP (P%i)", opcode & 7); 685 verbose_printk("JUMP (P%i)", opcode & 7);
678 else if (opcode >= 0x0060 && opcode <= 0x0067) 686 else if (opcode >= 0x0060 && opcode <= 0x0067)
@@ -681,6 +689,10 @@ static void decode_instruction(unsigned short *address)
681 verbose_printk("CALL (PC+P%i)", opcode & 7); 689 verbose_printk("CALL (PC+P%i)", opcode & 7);
682 else if (opcode >= 0x0080 && opcode <= 0x0087) 690 else if (opcode >= 0x0080 && opcode <= 0x0087)
683 verbose_printk("JUMP (PC+P%i)", opcode & 7); 691 verbose_printk("JUMP (PC+P%i)", opcode & 7);
692 else if (opcode >= 0x0090 && opcode <= 0x009F)
693 verbose_printk("RAISE 0x%x", opcode & 0xF);
694 else if (opcode >= 0x00A0 && opcode <= 0x00AF)
695 verbose_printk("EXCPT 0x%x", opcode & 0xF);
684 else if ((opcode >= 0x1000 && opcode <= 0x13FF) || (opcode >= 0x1800 && opcode <= 0x1BFF)) 696 else if ((opcode >= 0x1000 && opcode <= 0x13FF) || (opcode >= 0x1800 && opcode <= 0x1BFF))
685 verbose_printk("IF !CC JUMP"); 697 verbose_printk("IF !CC JUMP");
686 else if ((opcode >= 0x1400 && opcode <= 0x17ff) || (opcode >= 0x1c00 && opcode <= 0x1fff)) 698 else if ((opcode >= 0x1400 && opcode <= 0x17ff) || (opcode >= 0x1c00 && opcode <= 0x1fff))
@@ -820,11 +832,8 @@ void show_stack(struct task_struct *task, unsigned long *stack)
820 decode_address(buf, (unsigned int)stack); 832 decode_address(buf, (unsigned int)stack);
821 printk(KERN_NOTICE " SP: [0x%p] %s\n", stack, buf); 833 printk(KERN_NOTICE " SP: [0x%p] %s\n", stack, buf);
822 834
823 addr = (unsigned int *)((unsigned int)stack & ~0x3F);
824
825 /* First thing is to look for a frame pointer */ 835 /* First thing is to look for a frame pointer */
826 for (addr = (unsigned int *)((unsigned int)stack & ~0xF), i = 0; 836 for (addr = (unsigned int *)((unsigned int)stack & ~0xF); addr < endstack; addr++) {
827 addr < endstack; addr++, i++) {
828 if (*addr & 0x1) 837 if (*addr & 0x1)
829 continue; 838 continue;
830 ins_addr = (unsigned short *)*addr; 839 ins_addr = (unsigned short *)*addr;
@@ -834,7 +843,8 @@ void show_stack(struct task_struct *task, unsigned long *stack)
834 843
835 if (fp) { 844 if (fp) {
836 /* Let's check to see if it is a frame pointer */ 845 /* Let's check to see if it is a frame pointer */
837 while (fp >= (addr - 1) && fp < endstack && fp) 846 while (fp >= (addr - 1) && fp < endstack
847 && fp && ((unsigned int) fp & 0x3) == 0)
838 fp = (unsigned int *)*fp; 848 fp = (unsigned int *)*fp;
839 if (fp == 0 || fp == endstack) { 849 if (fp == 0 || fp == endstack) {
840 fp = addr - 1; 850 fp = addr - 1;
@@ -1052,8 +1062,9 @@ void show_regs(struct pt_regs *fp)
1052 char buf [150]; 1062 char buf [150];
1053 struct irqaction *action; 1063 struct irqaction *action;
1054 unsigned int i; 1064 unsigned int i;
1055 unsigned long flags; 1065 unsigned long flags = 0;
1056 unsigned int cpu = smp_processor_id(); 1066 unsigned int cpu = smp_processor_id();
1067 unsigned char in_atomic = (bfin_read_IPEND() & 0x10) || in_atomic();
1057 1068
1058 verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n", print_tainted()); 1069 verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n", print_tainted());
1059 verbose_printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n", 1070 verbose_printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n",
@@ -1073,17 +1084,22 @@ void show_regs(struct pt_regs *fp)
1073 } 1084 }
1074 verbose_printk(KERN_NOTICE " EXCAUSE : 0x%lx\n", 1085 verbose_printk(KERN_NOTICE " EXCAUSE : 0x%lx\n",
1075 fp->seqstat & SEQSTAT_EXCAUSE); 1086 fp->seqstat & SEQSTAT_EXCAUSE);
1076 for (i = 6; i <= 15 ; i++) { 1087 for (i = 2; i <= 15 ; i++) {
1077 if (fp->ipend & (1 << i)) { 1088 if (fp->ipend & (1 << i)) {
1078 decode_address(buf, bfin_read32(EVT0 + 4*i)); 1089 if (i != 4) {
1079 verbose_printk(KERN_NOTICE " physical IVG%i asserted : %s\n", i, buf); 1090 decode_address(buf, bfin_read32(EVT0 + 4*i));
1091 verbose_printk(KERN_NOTICE " physical IVG%i asserted : %s\n", i, buf);
1092 } else
1093 verbose_printk(KERN_NOTICE " interrupts disabled\n");
1080 } 1094 }
1081 } 1095 }
1082 1096
1083 /* if no interrupts are going off, don't print this out */ 1097 /* if no interrupts are going off, don't print this out */
1084 if (fp->ipend & ~0x3F) { 1098 if (fp->ipend & ~0x3F) {
1085 for (i = 0; i < (NR_IRQS - 1); i++) { 1099 for (i = 0; i < (NR_IRQS - 1); i++) {
1086 spin_lock_irqsave(&irq_desc[i].lock, flags); 1100 if (!in_atomic)
1101 spin_lock_irqsave(&irq_desc[i].lock, flags);
1102
1087 action = irq_desc[i].action; 1103 action = irq_desc[i].action;
1088 if (!action) 1104 if (!action)
1089 goto unlock; 1105 goto unlock;
@@ -1096,7 +1112,8 @@ void show_regs(struct pt_regs *fp)
1096 } 1112 }
1097 verbose_printk("\n"); 1113 verbose_printk("\n");
1098unlock: 1114unlock:
1099 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 1115 if (!in_atomic)
1116 spin_unlock_irqrestore(&irq_desc[i].lock, flags);
1100 } 1117 }
1101 } 1118 }
1102 1119
diff --git a/arch/blackfin/mach-bf518/boards/ezbrd.c b/arch/blackfin/mach-bf518/boards/ezbrd.c
index 15f1351c8645..41f2eacfef20 100644
--- a/arch/blackfin/mach-bf518/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf518/boards/ezbrd.c
@@ -46,6 +46,7 @@
46#include <asm/dpmc.h> 46#include <asm/dpmc.h>
47#include <asm/bfin_sdh.h> 47#include <asm/bfin_sdh.h>
48#include <linux/spi/ad7877.h> 48#include <linux/spi/ad7877.h>
49#include <net/dsa.h>
49 50
50/* 51/*
51 * Name the Board for the /proc/cpuinfo 52 * Name the Board for the /proc/cpuinfo
@@ -104,9 +105,32 @@ static struct platform_device rtc_device = {
104#endif 105#endif
105 106
106#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 107#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
108static struct platform_device bfin_mii_bus = {
109 .name = "bfin_mii_bus",
110};
111
107static struct platform_device bfin_mac_device = { 112static struct platform_device bfin_mac_device = {
108 .name = "bfin_mac", 113 .name = "bfin_mac",
114 .dev.platform_data = &bfin_mii_bus,
115};
116
117#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
118static struct dsa_platform_data ksz8893m_switch_data = {
119 .mii_bus = &bfin_mii_bus.dev,
120 .netdev = &bfin_mac_device.dev,
121 .port_names[0] = NULL,
122 .port_names[1] = "eth%d",
123 .port_names[2] = "eth%d",
124 .port_names[3] = "cpu",
109}; 125};
126
127static struct platform_device ksz8893m_switch_device = {
128 .name = "dsa",
129 .id = 0,
130 .num_resources = 0,
131 .dev.platform_data = &ksz8893m_switch_data,
132};
133#endif
110#endif 134#endif
111 135
112#if defined(CONFIG_MTD_M25P80) \ 136#if defined(CONFIG_MTD_M25P80) \
@@ -147,9 +171,20 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
147}; 171};
148#endif 172#endif
149 173
150#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 174#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
151static struct bfin5xx_spi_chip spi_mmc_chip_info = { 175#if defined(CONFIG_NET_DSA_KSZ8893M) \
152 .enable_dma = 1, 176 || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
177/* SPI SWITCH CHIP */
178static struct bfin5xx_spi_chip spi_switch_info = {
179 .enable_dma = 0,
180 .bits_per_word = 8,
181};
182#endif
183#endif
184
185#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
186static struct bfin5xx_spi_chip mmc_spi_chip_info = {
187 .enable_dma = 0,
153 .bits_per_word = 8, 188 .bits_per_word = 8,
154}; 189};
155#endif 190#endif
@@ -226,23 +261,28 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
226 }, 261 },
227#endif 262#endif
228 263
229#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 264#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
265#if defined(CONFIG_NET_DSA_KSZ8893M) \
266 || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
230 { 267 {
231 .modalias = "spi_mmc_dummy", 268 .modalias = "ksz8893m",
232 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 269 .max_speed_hz = 5000000,
233 .bus_num = 0, 270 .bus_num = 0,
234 .chip_select = 0, 271 .chip_select = 1,
235 .platform_data = NULL, 272 .platform_data = NULL,
236 .controller_data = &spi_mmc_chip_info, 273 .controller_data = &spi_switch_info,
237 .mode = SPI_MODE_3, 274 .mode = SPI_MODE_3,
238 }, 275 },
276#endif
277#endif
278
279#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
239 { 280 {
240 .modalias = "spi_mmc", 281 .modalias = "mmc_spi",
241 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 282 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
242 .bus_num = 0, 283 .bus_num = 0,
243 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 284 .chip_select = 5,
244 .platform_data = NULL, 285 .controller_data = &mmc_spi_chip_info,
245 .controller_data = &spi_mmc_chip_info,
246 .mode = SPI_MODE_3, 286 .mode = SPI_MODE_3,
247 }, 287 },
248#endif 288#endif
@@ -473,7 +513,6 @@ static struct platform_device i2c_bfin_twi_device = {
473}; 513};
474#endif 514#endif
475 515
476#ifdef CONFIG_I2C_BOARDINFO
477static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 516static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
478#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 517#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
479 { 518 {
@@ -487,7 +526,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
487 }, 526 },
488#endif 527#endif
489}; 528};
490#endif
491 529
492#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 530#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
493static struct platform_device bfin_sport0_uart_device = { 531static struct platform_device bfin_sport0_uart_device = {
@@ -584,7 +622,11 @@ static struct platform_device *stamp_devices[] __initdata = {
584#endif 622#endif
585 623
586#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 624#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
625 &bfin_mii_bus,
587 &bfin_mac_device, 626 &bfin_mac_device,
627#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
628 &ksz8893m_switch_device,
629#endif
588#endif 630#endif
589 631
590#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 632#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
@@ -632,12 +674,8 @@ static struct platform_device *stamp_devices[] __initdata = {
632static int __init ezbrd_init(void) 674static int __init ezbrd_init(void)
633{ 675{
634 printk(KERN_INFO "%s(): registering device resources\n", __func__); 676 printk(KERN_INFO "%s(): registering device resources\n", __func__);
635
636#ifdef CONFIG_I2C_BOARDINFO
637 i2c_register_board_info(0, bfin_i2c_board_info, 677 i2c_register_board_info(0, bfin_i2c_board_info,
638 ARRAY_SIZE(bfin_i2c_board_info)); 678 ARRAY_SIZE(bfin_i2c_board_info));
639#endif
640
641 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 679 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
642 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 680 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
643 return 0; 681 return 0;
@@ -649,7 +687,7 @@ void native_machine_restart(char *cmd)
649{ 687{
650 /* workaround reboot hang when booting from SPI */ 688 /* workaround reboot hang when booting from SPI */
651 if ((bfin_read_SYSCR() & 0x7) == 0x3) 689 if ((bfin_read_SYSCR() & 0x7) == 0x3)
652 bfin_gpio_reset_spi0_ssel1(); 690 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
653} 691}
654 692
655void bfin_get_ether_addr(char *addr) 693void bfin_get_ether_addr(char *addr)
diff --git a/arch/blackfin/mach-bf518/include/mach/anomaly.h b/arch/blackfin/mach-bf518/include/mach/anomaly.h
index e5b4bef0edae..c847bb101076 100644
--- a/arch/blackfin/mach-bf518/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf518/include/mach/anomaly.h
@@ -2,12 +2,12 @@
2 * File: include/asm-blackfin/mach-bf518/anomaly.h 2 * File: include/asm-blackfin/mach-bf518/anomaly.h
3 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 3 * Bugs: Enter bugs at http://blackfin.uclinux.org/
4 * 4 *
5 * Copyright (C) 2004-2008 Analog Devices Inc. 5 * Copyright (C) 2004-2009 Analog Devices Inc.
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
8 8
9/* This file shoule be up to date with: 9/* This file shoule be up to date with:
10 * - ???? 10 * - Revision B, 02/03/2009; ADSP-BF512/BF514/BF516/BF518 Blackfin Processor Anomaly List
11 */ 11 */
12 12
13#ifndef _MACH_ANOMALY_H_ 13#ifndef _MACH_ANOMALY_H_
@@ -19,6 +19,8 @@
19#define ANOMALY_05000122 (1) 19#define ANOMALY_05000122 (1)
20/* False Hardware Error from an Access in the Shadow of a Conditional Branch */ 20/* False Hardware Error from an Access in the Shadow of a Conditional Branch */
21#define ANOMALY_05000245 (1) 21#define ANOMALY_05000245 (1)
22/* Incorrect Timer Pulse Width in Single-Shot PWM_OUT Mode with External Clock */
23#define ANOMALY_05000254 (1)
22/* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ 24/* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */
23#define ANOMALY_05000265 (1) 25#define ANOMALY_05000265 (1)
24/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 26/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */
@@ -53,6 +55,12 @@
53#define ANOMALY_05000443 (1) 55#define ANOMALY_05000443 (1)
54/* Incorrect L1 Instruction Bank B Memory Map Location */ 56/* Incorrect L1 Instruction Bank B Memory Map Location */
55#define ANOMALY_05000444 (1) 57#define ANOMALY_05000444 (1)
58/* Incorrect Default Hysteresis Setting for RESET, NMI, and BMODE Signals */
59#define ANOMALY_05000452 (1)
60/* PWM_TRIPB Signal Not Available on PG10 */
61#define ANOMALY_05000453 (1)
62/* PPI_FS3 is Driven One Half Cycle Later Than PPI Data */
63#define ANOMALY_05000455 (1)
56 64
57/* Anomalies that don't exist on this proc */ 65/* Anomalies that don't exist on this proc */
58#define ANOMALY_05000125 (0) 66#define ANOMALY_05000125 (0)
@@ -65,15 +73,20 @@
65#define ANOMALY_05000263 (0) 73#define ANOMALY_05000263 (0)
66#define ANOMALY_05000266 (0) 74#define ANOMALY_05000266 (0)
67#define ANOMALY_05000273 (0) 75#define ANOMALY_05000273 (0)
76#define ANOMALY_05000278 (0)
68#define ANOMALY_05000285 (0) 77#define ANOMALY_05000285 (0)
78#define ANOMALY_05000305 (0)
69#define ANOMALY_05000307 (0) 79#define ANOMALY_05000307 (0)
70#define ANOMALY_05000311 (0) 80#define ANOMALY_05000311 (0)
71#define ANOMALY_05000312 (0) 81#define ANOMALY_05000312 (0)
72#define ANOMALY_05000323 (0) 82#define ANOMALY_05000323 (0)
73#define ANOMALY_05000353 (0) 83#define ANOMALY_05000353 (0)
74#define ANOMALY_05000363 (0) 84#define ANOMALY_05000363 (0)
85#define ANOMALY_05000380 (0)
75#define ANOMALY_05000386 (0) 86#define ANOMALY_05000386 (0)
76#define ANOMALY_05000412 (0) 87#define ANOMALY_05000412 (0)
77#define ANOMALY_05000432 (0) 88#define ANOMALY_05000432 (0)
89#define ANOMALY_05000447 (0)
90#define ANOMALY_05000448 (0)
78 91
79#endif 92#endif
diff --git a/arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h
index b50a63b975a2..e21c1c3e4ec7 100644
--- a/arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h
@@ -144,7 +144,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
144 CH_UART0_TX, 144 CH_UART0_TX,
145 CH_UART0_RX, 145 CH_UART0_RX,
146#endif 146#endif
147#ifdef CONFIG_BFIN_UART0_CTSRTS 147#ifdef CONFIG_SERIAL_BFIN_CTSRTS
148 CONFIG_UART0_CTS_PIN, 148 CONFIG_UART0_CTS_PIN,
149 CONFIG_UART0_RTS_PIN, 149 CONFIG_UART0_RTS_PIN,
150#endif 150#endif
@@ -158,7 +158,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
158 CH_UART1_TX, 158 CH_UART1_TX,
159 CH_UART1_RX, 159 CH_UART1_RX,
160#endif 160#endif
161#ifdef CONFIG_BFIN_UART1_CTSRTS 161#ifdef CONFIG_SERIAL_BFIN_CTSRTS
162 CONFIG_UART1_CTS_PIN, 162 CONFIG_UART1_CTS_PIN,
163 CONFIG_UART1_RTS_PIN, 163 CONFIG_UART1_RTS_PIN,
164#endif 164#endif
diff --git a/arch/blackfin/mach-bf518/include/mach/portmux.h b/arch/blackfin/mach-bf518/include/mach/portmux.h
index ac16d54734d4..f618b487b2b0 100644
--- a/arch/blackfin/mach-bf518/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf518/include/mach/portmux.h
@@ -103,6 +103,8 @@
103#define P_SPI1_SSEL4 (P_DEFINED | P_IDENT(GPIO_PF8) | P_FUNCT(2)) 103#define P_SPI1_SSEL4 (P_DEFINED | P_IDENT(GPIO_PF8) | P_FUNCT(2))
104#define P_SPI1_SSEL5 (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(2)) 104#define P_SPI1_SSEL5 (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(2))
105 105
106#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2
107
106/* SPORT Port Mux */ 108/* SPORT Port Mux */
107#define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(GPIO_PG3) | P_FUNCT(0)) 109#define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(GPIO_PG3) | P_FUNCT(0))
108#define P_SPORT0_RSCLK (P_DEFINED | P_IDENT(GPIO_PG4) | P_FUNCT(0)) 110#define P_SPORT0_RSCLK (P_DEFINED | P_IDENT(GPIO_PG4) | P_FUNCT(0))
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c
index a2c3578f4b6c..48e69eecdba4 100644
--- a/arch/blackfin/mach-bf527/boards/cm_bf527.c
+++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c
@@ -403,8 +403,13 @@ static struct platform_device isp1362_hcd_device = {
403#endif 403#endif
404 404
405#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 405#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
406static struct platform_device bfin_mii_bus = {
407 .name = "bfin_mii_bus",
408};
409
406static struct platform_device bfin_mac_device = { 410static struct platform_device bfin_mac_device = {
407 .name = "bfin_mac", 411 .name = "bfin_mac",
412 .dev.platform_data = &bfin_mii_bus,
408}; 413};
409#endif 414#endif
410 415
@@ -482,9 +487,9 @@ static struct bfin5xx_spi_chip ad9960_spi_chip_info = {
482}; 487};
483#endif 488#endif
484 489
485#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 490#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
486static struct bfin5xx_spi_chip spi_mmc_chip_info = { 491static struct bfin5xx_spi_chip mmc_spi_chip_info = {
487 .enable_dma = 1, 492 .enable_dma = 0,
488 .bits_per_word = 8, 493 .bits_per_word = 8,
489}; 494};
490#endif 495#endif
@@ -580,23 +585,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
580 .controller_data = &ad9960_spi_chip_info, 585 .controller_data = &ad9960_spi_chip_info,
581 }, 586 },
582#endif 587#endif
583#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 588#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
584 { 589 {
585 .modalias = "spi_mmc_dummy", 590 .modalias = "mmc_spi",
586 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 591 .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */
587 .bus_num = 0, 592 .bus_num = 0,
588 .chip_select = 0, 593 .chip_select = 5,
589 .platform_data = NULL, 594 .controller_data = &mmc_spi_chip_info,
590 .controller_data = &spi_mmc_chip_info,
591 .mode = SPI_MODE_3,
592 },
593 {
594 .modalias = "spi_mmc",
595 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
596 .bus_num = 0,
597 .chip_select = CONFIG_SPI_MMC_CS_CHAN,
598 .platform_data = NULL,
599 .controller_data = &spi_mmc_chip_info,
600 .mode = SPI_MODE_3, 595 .mode = SPI_MODE_3,
601 }, 596 },
602#endif 597#endif
@@ -793,7 +788,6 @@ static struct platform_device i2c_bfin_twi_device = {
793}; 788};
794#endif 789#endif
795 790
796#ifdef CONFIG_I2C_BOARDINFO
797static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 791static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
798#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 792#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
799 { 793 {
@@ -809,7 +803,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
809 }, 803 },
810#endif 804#endif
811}; 805};
812#endif
813 806
814#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 807#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
815static struct platform_device bfin_sport0_uart_device = { 808static struct platform_device bfin_sport0_uart_device = {
@@ -920,6 +913,7 @@ static struct platform_device *stamp_devices[] __initdata = {
920#endif 913#endif
921 914
922#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 915#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
916 &bfin_mii_bus,
923 &bfin_mac_device, 917 &bfin_mac_device,
924#endif 918#endif
925 919
@@ -968,27 +962,23 @@ static struct platform_device *stamp_devices[] __initdata = {
968 &bfin_gpios_device, 962 &bfin_gpios_device,
969}; 963};
970 964
971static int __init stamp_init(void) 965static int __init cm_init(void)
972{ 966{
973 printk(KERN_INFO "%s(): registering device resources\n", __func__); 967 printk(KERN_INFO "%s(): registering device resources\n", __func__);
974
975#ifdef CONFIG_I2C_BOARDINFO
976 i2c_register_board_info(0, bfin_i2c_board_info, 968 i2c_register_board_info(0, bfin_i2c_board_info,
977 ARRAY_SIZE(bfin_i2c_board_info)); 969 ARRAY_SIZE(bfin_i2c_board_info));
978#endif
979
980 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 970 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
981 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 971 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
982 return 0; 972 return 0;
983} 973}
984 974
985arch_initcall(stamp_init); 975arch_initcall(cm_init);
986 976
987void native_machine_restart(char *cmd) 977void native_machine_restart(char *cmd)
988{ 978{
989 /* workaround reboot hang when booting from SPI */ 979 /* workaround reboot hang when booting from SPI */
990 if ((bfin_read_SYSCR() & 0x7) == 0x3) 980 if ((bfin_read_SYSCR() & 0x7) == 0x3)
991 bfin_gpio_reset_spi0_ssel1(); 981 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
992} 982}
993 983
994void bfin_get_ether_addr(char *addr) 984void bfin_get_ether_addr(char *addr)
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c
index 0314bd3355eb..7fe480e4ebe8 100644
--- a/arch/blackfin/mach-bf527/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf527/boards/ezbrd.c
@@ -208,8 +208,13 @@ static struct platform_device rtc_device = {
208 208
209 209
210#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 210#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
211static struct platform_device bfin_mii_bus = {
212 .name = "bfin_mii_bus",
213};
214
211static struct platform_device bfin_mac_device = { 215static struct platform_device bfin_mac_device = {
212 .name = "bfin_mac", 216 .name = "bfin_mac",
217 .dev.platform_data = &bfin_mii_bus,
213}; 218};
214#endif 219#endif
215 220
@@ -251,9 +256,9 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
251}; 256};
252#endif 257#endif
253 258
254#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 259#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
255static struct bfin5xx_spi_chip spi_mmc_chip_info = { 260static struct bfin5xx_spi_chip mmc_spi_chip_info = {
256 .enable_dma = 1, 261 .enable_dma = 0,
257 .bits_per_word = 8, 262 .bits_per_word = 8,
258}; 263};
259#endif 264#endif
@@ -361,23 +366,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
361 }, 366 },
362#endif 367#endif
363 368
364#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 369#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
365 { 370 {
366 .modalias = "spi_mmc_dummy", 371 .modalias = "mmc_spi",
367 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 372 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
368 .bus_num = 0, 373 .bus_num = 0,
369 .chip_select = 0, 374 .chip_select = 5,
370 .platform_data = NULL, 375 .controller_data = &mmc_spi_chip_info,
371 .controller_data = &spi_mmc_chip_info,
372 .mode = SPI_MODE_3,
373 },
374 {
375 .modalias = "spi_mmc",
376 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
377 .bus_num = 0,
378 .chip_select = CONFIG_SPI_MMC_CS_CHAN,
379 .platform_data = NULL,
380 .controller_data = &spi_mmc_chip_info,
381 .mode = SPI_MODE_3, 376 .mode = SPI_MODE_3,
382 }, 377 },
383#endif 378#endif
@@ -590,7 +585,6 @@ static struct platform_device i2c_bfin_twi_device = {
590}; 585};
591#endif 586#endif
592 587
593#ifdef CONFIG_I2C_BOARDINFO
594static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 588static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
595#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 589#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
596 { 590 {
@@ -604,7 +598,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
604 }, 598 },
605#endif 599#endif
606}; 600};
607#endif
608 601
609#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 602#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
610static struct platform_device bfin_sport0_uart_device = { 603static struct platform_device bfin_sport0_uart_device = {
@@ -720,6 +713,7 @@ static struct platform_device *stamp_devices[] __initdata = {
720#endif 713#endif
721 714
722#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 715#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
716 &bfin_mii_bus,
723 &bfin_mac_device, 717 &bfin_mac_device,
724#endif 718#endif
725 719
@@ -764,27 +758,23 @@ static struct platform_device *stamp_devices[] __initdata = {
764 &bfin_gpios_device, 758 &bfin_gpios_device,
765}; 759};
766 760
767static int __init stamp_init(void) 761static int __init ezbrd_init(void)
768{ 762{
769 printk(KERN_INFO "%s(): registering device resources\n", __func__); 763 printk(KERN_INFO "%s(): registering device resources\n", __func__);
770
771#ifdef CONFIG_I2C_BOARDINFO
772 i2c_register_board_info(0, bfin_i2c_board_info, 764 i2c_register_board_info(0, bfin_i2c_board_info,
773 ARRAY_SIZE(bfin_i2c_board_info)); 765 ARRAY_SIZE(bfin_i2c_board_info));
774#endif
775
776 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 766 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
777 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 767 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
778 return 0; 768 return 0;
779} 769}
780 770
781arch_initcall(stamp_init); 771arch_initcall(ezbrd_init);
782 772
783void native_machine_restart(char *cmd) 773void native_machine_restart(char *cmd)
784{ 774{
785 /* workaround reboot hang when booting from SPI */ 775 /* workaround reboot hang when booting from SPI */
786 if ((bfin_read_SYSCR() & 0x7) == 0x3) 776 if ((bfin_read_SYSCR() & 0x7) == 0x3)
787 bfin_gpio_reset_spi0_ssel1(); 777 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
788} 778}
789 779
790void bfin_get_ether_addr(char *addr) 780void bfin_get_ether_addr(char *addr)
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index 9454fb7b18c3..d0864111ef59 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -425,8 +425,13 @@ static struct platform_device isp1362_hcd_device = {
425#endif 425#endif
426 426
427#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 427#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
428static struct platform_device bfin_mii_bus = {
429 .name = "bfin_mii_bus",
430};
431
428static struct platform_device bfin_mac_device = { 432static struct platform_device bfin_mac_device = {
429 .name = "bfin_mac", 433 .name = "bfin_mac",
434 .dev.platform_data = &bfin_mii_bus,
430}; 435};
431#endif 436#endif
432 437
@@ -830,7 +835,6 @@ static struct platform_device i2c_bfin_twi_device = {
830}; 835};
831#endif 836#endif
832 837
833#ifdef CONFIG_I2C_BOARDINFO
834static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 838static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
835#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 839#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
836 { 840 {
@@ -844,7 +848,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
844 }, 848 },
845#endif 849#endif
846}; 850};
847#endif
848 851
849#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 852#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
850static struct platform_device bfin_sport0_uart_device = { 853static struct platform_device bfin_sport0_uart_device = {
@@ -988,6 +991,7 @@ static struct platform_device *stamp_devices[] __initdata = {
988#endif 991#endif
989 992
990#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 993#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
994 &bfin_mii_bus,
991 &bfin_mac_device, 995 &bfin_mac_device,
992#endif 996#endif
993 997
@@ -1048,27 +1052,23 @@ static struct platform_device *stamp_devices[] __initdata = {
1048 &bfin_gpios_device, 1052 &bfin_gpios_device,
1049}; 1053};
1050 1054
1051static int __init stamp_init(void) 1055static int __init ezkit_init(void)
1052{ 1056{
1053 printk(KERN_INFO "%s(): registering device resources\n", __func__); 1057 printk(KERN_INFO "%s(): registering device resources\n", __func__);
1054
1055#ifdef CONFIG_I2C_BOARDINFO
1056 i2c_register_board_info(0, bfin_i2c_board_info, 1058 i2c_register_board_info(0, bfin_i2c_board_info,
1057 ARRAY_SIZE(bfin_i2c_board_info)); 1059 ARRAY_SIZE(bfin_i2c_board_info));
1058#endif
1059
1060 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 1060 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
1061 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 1061 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
1062 return 0; 1062 return 0;
1063} 1063}
1064 1064
1065arch_initcall(stamp_init); 1065arch_initcall(ezkit_init);
1066 1066
1067void native_machine_restart(char *cmd) 1067void native_machine_restart(char *cmd)
1068{ 1068{
1069 /* workaround reboot hang when booting from SPI */ 1069 /* workaround reboot hang when booting from SPI */
1070 if ((bfin_read_SYSCR() & 0x7) == 0x3) 1070 if ((bfin_read_SYSCR() & 0x7) == 0x3)
1071 bfin_gpio_reset_spi0_ssel1(); 1071 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
1072} 1072}
1073 1073
1074void bfin_get_ether_addr(char *addr) 1074void bfin_get_ether_addr(char *addr)
diff --git a/arch/blackfin/mach-bf527/include/mach/anomaly.h b/arch/blackfin/mach-bf527/include/mach/anomaly.h
index 035e8d835058..df6808d8a6ef 100644
--- a/arch/blackfin/mach-bf527/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf527/include/mach/anomaly.h
@@ -2,7 +2,7 @@
2 * File: include/asm-blackfin/mach-bf527/anomaly.h 2 * File: include/asm-blackfin/mach-bf527/anomaly.h
3 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 3 * Bugs: Enter bugs at http://blackfin.uclinux.org/
4 * 4 *
5 * Copyright (C) 2004-2008 Analog Devices Inc. 5 * Copyright (C) 2004-2009 Analog Devices Inc.
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
8 8
@@ -167,12 +167,16 @@
167#define ANOMALY_05000263 (0) 167#define ANOMALY_05000263 (0)
168#define ANOMALY_05000266 (0) 168#define ANOMALY_05000266 (0)
169#define ANOMALY_05000273 (0) 169#define ANOMALY_05000273 (0)
170#define ANOMALY_05000278 (0)
170#define ANOMALY_05000285 (0) 171#define ANOMALY_05000285 (0)
172#define ANOMALY_05000305 (0)
171#define ANOMALY_05000307 (0) 173#define ANOMALY_05000307 (0)
172#define ANOMALY_05000311 (0) 174#define ANOMALY_05000311 (0)
173#define ANOMALY_05000312 (0) 175#define ANOMALY_05000312 (0)
174#define ANOMALY_05000323 (0) 176#define ANOMALY_05000323 (0)
175#define ANOMALY_05000363 (0) 177#define ANOMALY_05000363 (0)
176#define ANOMALY_05000412 (0) 178#define ANOMALY_05000412 (0)
179#define ANOMALY_05000447 (0)
180#define ANOMALY_05000448 (0)
177 181
178#endif 182#endif
diff --git a/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
index 75722d6008b0..e8c41fd842b5 100644
--- a/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
@@ -144,7 +144,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
144 CH_UART0_TX, 144 CH_UART0_TX,
145 CH_UART0_RX, 145 CH_UART0_RX,
146#endif 146#endif
147#ifdef CONFIG_BFIN_UART0_CTSRTS 147#ifdef CONFIG_SERIAL_BFIN_CTSRTS
148 CONFIG_UART0_CTS_PIN, 148 CONFIG_UART0_CTS_PIN,
149 CONFIG_UART0_RTS_PIN, 149 CONFIG_UART0_RTS_PIN,
150#endif 150#endif
@@ -158,7 +158,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
158 CH_UART1_TX, 158 CH_UART1_TX,
159 CH_UART1_RX, 159 CH_UART1_RX,
160#endif 160#endif
161#ifdef CONFIG_BFIN_UART1_CTSRTS 161#ifdef CONFIG_SERIAL_BFIN_CTSRTS
162 CONFIG_UART1_CTS_PIN, 162 CONFIG_UART1_CTS_PIN,
163 CONFIG_UART1_RTS_PIN, 163 CONFIG_UART1_RTS_PIN,
164#endif 164#endif
diff --git a/arch/blackfin/mach-bf527/include/mach/portmux.h b/arch/blackfin/mach-bf527/include/mach/portmux.h
index 7f6da2c386bb..72b1652be4da 100644
--- a/arch/blackfin/mach-bf527/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf527/include/mach/portmux.h
@@ -73,6 +73,8 @@
73 73
74#define P_HWAIT (P_DONTCARE) 74#define P_HWAIT (P_DONTCARE)
75 75
76#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1
77
76#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0)) 78#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0))
77#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(2)) 79#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(2))
78#define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PG2) | P_FUNCT(2)) 80#define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PG2) | P_FUNCT(2))
diff --git a/arch/blackfin/mach-bf533/boards/Kconfig b/arch/blackfin/mach-bf533/boards/Kconfig
index 308c98dc5aba..8d8b3e7321e6 100644
--- a/arch/blackfin/mach-bf533/boards/Kconfig
+++ b/arch/blackfin/mach-bf533/boards/Kconfig
@@ -38,9 +38,4 @@ config BFIN532_IP0X
38 help 38 help
39 Core support for IP04/IP04 open hardware IP-PBX. 39 Core support for IP04/IP04 open hardware IP-PBX.
40 40
41config GENERIC_BF533_BOARD
42 bool "Generic"
43 help
44 Generic or Custom board support.
45
46endchoice 41endchoice
diff --git a/arch/blackfin/mach-bf533/boards/Makefile b/arch/blackfin/mach-bf533/boards/Makefile
index 9afbe72b484f..ff1e832f80d2 100644
--- a/arch/blackfin/mach-bf533/boards/Makefile
+++ b/arch/blackfin/mach-bf533/boards/Makefile
@@ -2,7 +2,6 @@
2# arch/blackfin/mach-bf533/boards/Makefile 2# arch/blackfin/mach-bf533/boards/Makefile
3# 3#
4 4
5obj-$(CONFIG_GENERIC_BF533_BOARD) += generic_board.o
6obj-$(CONFIG_BFIN533_STAMP) += stamp.o 5obj-$(CONFIG_BFIN533_STAMP) += stamp.o
7obj-$(CONFIG_BFIN532_IP0X) += ip0x.o 6obj-$(CONFIG_BFIN532_IP0X) += ip0x.o
8obj-$(CONFIG_BFIN533_EZKIT) += ezkit.o 7obj-$(CONFIG_BFIN533_EZKIT) += ezkit.o
diff --git a/arch/blackfin/mach-bf533/boards/blackstamp.c b/arch/blackfin/mach-bf533/boards/blackstamp.c
index 6ee607c259ac..0765872a8ada 100644
--- a/arch/blackfin/mach-bf533/boards/blackstamp.c
+++ b/arch/blackfin/mach-bf533/boards/blackstamp.c
@@ -101,9 +101,9 @@ static struct bfin5xx_spi_chip spi_flash_chip_info = {
101}; 101};
102#endif 102#endif
103 103
104#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 104#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
105static struct bfin5xx_spi_chip spi_mmc_chip_info = { 105static struct bfin5xx_spi_chip mmc_spi_chip_info = {
106 .enable_dma = 1, 106 .enable_dma = 0,
107 .bits_per_word = 8, 107 .bits_per_word = 8,
108}; 108};
109#endif 109#endif
@@ -129,23 +129,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
129 }, 129 },
130#endif 130#endif
131 131
132#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 132#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
133 {
134 .modalias = "spi_mmc_dummy",
135 .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */
136 .bus_num = 0,
137 .chip_select = 0,
138 .platform_data = NULL,
139 .controller_data = &spi_mmc_chip_info,
140 .mode = SPI_MODE_3,
141 },
142 { 133 {
143 .modalias = "spi_mmc", 134 .modalias = "mmc_spi",
144 .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ 135 .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */
145 .bus_num = 0, 136 .bus_num = 0,
146 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 137 .chip_select = 5,
147 .platform_data = NULL, 138 .controller_data = &mmc_spi_chip_info,
148 .controller_data = &spi_mmc_chip_info,
149 .mode = SPI_MODE_3, 139 .mode = SPI_MODE_3,
150 }, 140 },
151#endif 141#endif
@@ -309,10 +299,8 @@ static struct platform_device i2c_gpio_device = {
309}; 299};
310#endif 300#endif
311 301
312#ifdef CONFIG_I2C_BOARDINFO
313static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 302static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
314}; 303};
315#endif
316 304
317static const unsigned int cclk_vlev_datasheet[] = 305static const unsigned int cclk_vlev_datasheet[] =
318{ 306{
@@ -390,10 +378,8 @@ static int __init blackstamp_init(void)
390 378
391 printk(KERN_INFO "%s(): registering device resources\n", __func__); 379 printk(KERN_INFO "%s(): registering device resources\n", __func__);
392 380
393#ifdef CONFIG_I2C_BOARDINFO
394 i2c_register_board_info(0, bfin_i2c_board_info, 381 i2c_register_board_info(0, bfin_i2c_board_info,
395 ARRAY_SIZE(bfin_i2c_board_info)); 382 ARRAY_SIZE(bfin_i2c_board_info));
396#endif
397 383
398 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 384 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
399 if (ret < 0) 385 if (ret < 0)
diff --git a/arch/blackfin/mach-bf533/boards/cm_bf533.c b/arch/blackfin/mach-bf533/boards/cm_bf533.c
index e7061c7e8c42..e8974878d8c2 100644
--- a/arch/blackfin/mach-bf533/boards/cm_bf533.c
+++ b/arch/blackfin/mach-bf533/boards/cm_bf533.c
@@ -96,9 +96,9 @@ static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
96}; 96};
97#endif 97#endif
98 98
99#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 99#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
100static struct bfin5xx_spi_chip spi_mmc_chip_info = { 100static struct bfin5xx_spi_chip mmc_spi_chip_info = {
101 .enable_dma = 1, 101 .enable_dma = 0,
102 .bits_per_word = 8, 102 .bits_per_word = 8,
103}; 103};
104#endif 104#endif
@@ -138,23 +138,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
138 }, 138 },
139#endif 139#endif
140 140
141#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 141#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
142 {
143 .modalias = "spi_mmc_dummy",
144 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
145 .bus_num = 0,
146 .chip_select = 0,
147 .platform_data = NULL,
148 .controller_data = &spi_mmc_chip_info,
149 .mode = SPI_MODE_3,
150 },
151 { 142 {
152 .modalias = "spi_mmc", 143 .modalias = "mmc_spi",
153 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 144 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
154 .bus_num = 0, 145 .bus_num = 0,
155 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 146 .chip_select = 5,
156 .platform_data = NULL, 147 .controller_data = &mmc_spi_chip_info,
157 .controller_data = &spi_mmc_chip_info,
158 .mode = SPI_MODE_3, 148 .mode = SPI_MODE_3,
159 }, 149 },
160#endif 150#endif
diff --git a/arch/blackfin/mach-bf533/boards/generic_board.c b/arch/blackfin/mach-bf533/boards/generic_board.c
deleted file mode 100644
index 986eeec53b1f..000000000000
--- a/arch/blackfin/mach-bf533/boards/generic_board.c
+++ /dev/null
@@ -1,126 +0,0 @@
1/*
2 * File: arch/blackfin/mach-bf533/generic_board.c
3 * Based on: arch/blackfin/mach-bf533/ezkit.c
4 * Author: Aidan Williams <aidan@nicta.com.au>
5 *
6 * Created: 2005
7 * Description:
8 *
9 * Modified:
10 * Copyright 2005 National ICT Australia (NICTA)
11 * Copyright 2004-2006 Analog Devices Inc.
12 *
13 * Bugs: Enter bugs at http://blackfin.uclinux.org/
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2 of the License, or
18 * (at your option) any later version.
19 *
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this program; if not, see the file COPYING, or write
27 * to the Free Software Foundation, Inc.,
28 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 */
30
31#include <linux/device.h>
32#include <linux/platform_device.h>
33#include <linux/irq.h>
34
35/*
36 * Name the Board for the /proc/cpuinfo
37 */
38const char bfin_board_name[] = "UNKNOWN BOARD";
39
40#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
41static struct platform_device rtc_device = {
42 .name = "rtc-bfin",
43 .id = -1,
44};
45#endif
46
47/*
48 * Driver needs to know address, irq and flag pin.
49 */
50#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
51static struct resource smc91x_resources[] = {
52 {
53 .start = 0x20300300,
54 .end = 0x20300300 + 16,
55 .flags = IORESOURCE_MEM,
56 }, {
57 .start = IRQ_PROG_INTB,
58 .end = IRQ_PROG_INTB,
59 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
60 }, {
61 .start = IRQ_PF7,
62 .end = IRQ_PF7,
63 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
64 },
65};
66
67static struct platform_device smc91x_device = {
68 .name = "smc91x",
69 .id = 0,
70 .num_resources = ARRAY_SIZE(smc91x_resources),
71 .resource = smc91x_resources,
72};
73#endif
74
75#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
76#ifdef CONFIG_BFIN_SIR0
77static struct resource bfin_sir0_resources[] = {
78 {
79 .start = 0xFFC00400,
80 .end = 0xFFC004FF,
81 .flags = IORESOURCE_MEM,
82 },
83 {
84 .start = IRQ_UART0_RX,
85 .end = IRQ_UART0_RX+1,
86 .flags = IORESOURCE_IRQ,
87 },
88 {
89 .start = CH_UART0_RX,
90 .end = CH_UART0_RX+1,
91 .flags = IORESOURCE_DMA,
92 },
93};
94
95static struct platform_device bfin_sir0_device = {
96 .name = "bfin_sir",
97 .id = 0,
98 .num_resources = ARRAY_SIZE(bfin_sir0_resources),
99 .resource = bfin_sir0_resources,
100};
101#endif
102#endif
103
104static struct platform_device *generic_board_devices[] __initdata = {
105#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
106 &rtc_device,
107#endif
108
109#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
110 &smc91x_device,
111#endif
112
113#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
114#ifdef CONFIG_BFIN_SIR0
115 &bfin_sir0_device,
116#endif
117#endif
118};
119
120static int __init generic_board_init(void)
121{
122 printk(KERN_INFO "%s(): registering device resources\n", __func__);
123 return platform_add_devices(generic_board_devices, ARRAY_SIZE(generic_board_devices));
124}
125
126arch_initcall(generic_board_init);
diff --git a/arch/blackfin/mach-bf533/boards/ip0x.c b/arch/blackfin/mach-bf533/boards/ip0x.c
index e30b1b7d1442..f19b63378b12 100644
--- a/arch/blackfin/mach-bf533/boards/ip0x.c
+++ b/arch/blackfin/mach-bf533/boards/ip0x.c
@@ -127,8 +127,8 @@ static struct platform_device dm9000_device2 = {
127#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 127#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
128/* all SPI peripherals info goes here */ 128/* all SPI peripherals info goes here */
129 129
130#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 130#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
131static struct bfin5xx_spi_chip spi_mmc_chip_info = { 131static struct bfin5xx_spi_chip mmc_spi_chip_info = {
132/* 132/*
133 * CPOL (Clock Polarity) 133 * CPOL (Clock Polarity)
134 * 0 - Active high SCK 134 * 0 - Active high SCK
@@ -152,14 +152,13 @@ static struct bfin5xx_spi_chip spi_mmc_chip_info = {
152/* Notice: for blackfin, the speed_hz is the value of register 152/* Notice: for blackfin, the speed_hz is the value of register
153 * SPI_BAUD, not the real baudrate */ 153 * SPI_BAUD, not the real baudrate */
154static struct spi_board_info bfin_spi_board_info[] __initdata = { 154static struct spi_board_info bfin_spi_board_info[] __initdata = {
155#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 155#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
156 { 156 {
157 .modalias = "spi_mmc", 157 .modalias = "mmc_spi",
158 .max_speed_hz = 2, 158 .max_speed_hz = 2,
159 .bus_num = 1, 159 .bus_num = 1,
160 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 160 .chip_select = 5,
161 .platform_data = NULL, 161 .controller_data = &mmc_spi_chip_info,
162 .controller_data = &spi_mmc_chip_info,
163 }, 162 },
164#endif 163#endif
165}; 164};
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index 07f9ad1e189c..db96f33f72e2 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -441,7 +441,6 @@ static struct platform_device i2c_gpio_device = {
441}; 441};
442#endif 442#endif
443 443
444#ifdef CONFIG_I2C_BOARDINFO
445static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 444static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
446#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE) 445#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE)
447 { 446 {
@@ -461,7 +460,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
461 }, 460 },
462#endif 461#endif
463}; 462};
464#endif
465 463
466static const unsigned int cclk_vlev_datasheet[] = 464static const unsigned int cclk_vlev_datasheet[] =
467{ 465{
@@ -550,10 +548,8 @@ static int __init stamp_init(void)
550 548
551 printk(KERN_INFO "%s(): registering device resources\n", __func__); 549 printk(KERN_INFO "%s(): registering device resources\n", __func__);
552 550
553#ifdef CONFIG_I2C_BOARDINFO
554 i2c_register_board_info(0, bfin_i2c_board_info, 551 i2c_register_board_info(0, bfin_i2c_board_info,
555 ARRAY_SIZE(bfin_i2c_board_info)); 552 ARRAY_SIZE(bfin_i2c_board_info));
556#endif
557 553
558 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 554 ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
559 if (ret < 0) 555 if (ret < 0)
diff --git a/arch/blackfin/mach-bf533/include/mach/anomaly.h b/arch/blackfin/mach-bf533/include/mach/anomaly.h
index 0d3a03429fb9..1cf893e2e55b 100644
--- a/arch/blackfin/mach-bf533/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf533/include/mach/anomaly.h
@@ -2,7 +2,7 @@
2 * File: include/asm-blackfin/mach-bf533/anomaly.h 2 * File: include/asm-blackfin/mach-bf533/anomaly.h
3 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 3 * Bugs: Enter bugs at http://blackfin.uclinux.org/
4 * 4 *
5 * Copyright (C) 2004-2008 Analog Devices Inc. 5 * Copyright (C) 2004-2009 Analog Devices Inc.
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
8 8
@@ -160,7 +160,7 @@
160#define ANOMALY_05000301 (__SILICON_REVISION__ < 6) 160#define ANOMALY_05000301 (__SILICON_REVISION__ < 6)
161/* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ 161/* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */
162#define ANOMALY_05000302 (__SILICON_REVISION__ < 5) 162#define ANOMALY_05000302 (__SILICON_REVISION__ < 5)
163/* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ 163/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */
164#define ANOMALY_05000305 (__SILICON_REVISION__ < 5) 164#define ANOMALY_05000305 (__SILICON_REVISION__ < 5)
165/* New Feature: Additional PPI Frame Sync Sampling Options (Not Available On Older Silicon) */ 165/* New Feature: Additional PPI Frame Sync Sampling Options (Not Available On Older Silicon) */
166#define ANOMALY_05000306 (__SILICON_REVISION__ < 5) 166#define ANOMALY_05000306 (__SILICON_REVISION__ < 5)
@@ -278,9 +278,12 @@
278#define ANOMALY_05000266 (0) 278#define ANOMALY_05000266 (0)
279#define ANOMALY_05000323 (0) 279#define ANOMALY_05000323 (0)
280#define ANOMALY_05000353 (1) 280#define ANOMALY_05000353 (1)
281#define ANOMALY_05000380 (0)
281#define ANOMALY_05000386 (1) 282#define ANOMALY_05000386 (1)
282#define ANOMALY_05000412 (0) 283#define ANOMALY_05000412 (0)
283#define ANOMALY_05000432 (0) 284#define ANOMALY_05000432 (0)
284#define ANOMALY_05000435 (0) 285#define ANOMALY_05000435 (0)
286#define ANOMALY_05000447 (0)
287#define ANOMALY_05000448 (0)
285 288
286#endif 289#endif
diff --git a/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
index f3d9e495230c..5f517f53b0fd 100644
--- a/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
@@ -134,7 +134,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
134 CH_UART_TX, 134 CH_UART_TX,
135 CH_UART_RX, 135 CH_UART_RX,
136#endif 136#endif
137#ifdef CONFIG_BFIN_UART0_CTSRTS 137#ifdef CONFIG_SERIAL_BFIN_CTSRTS
138 CONFIG_UART0_CTS_PIN, 138 CONFIG_UART0_CTS_PIN,
139 CONFIG_UART0_RTS_PIN, 139 CONFIG_UART0_RTS_PIN,
140#endif 140#endif
diff --git a/arch/blackfin/mach-bf533/include/mach/portmux.h b/arch/blackfin/mach-bf533/include/mach/portmux.h
index 685a2651dcda..2f59ce0b0cb5 100644
--- a/arch/blackfin/mach-bf533/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf533/include/mach/portmux.h
@@ -54,14 +54,11 @@
54#define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2)) 54#define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2))
55#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1)) 55#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1))
56#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0)) 56#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0))
57#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2
57 58
58#define P_TMR2 (P_DONTCARE) 59#define P_TMR2 (P_DONTCARE)
59#define P_TMR1 (P_DONTCARE) 60#define P_TMR1 (P_DONTCARE)
60#define P_TMR0 (P_DONTCARE) 61#define P_TMR0 (P_DONTCARE)
61#define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF1)) 62#define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF1))
62 63
63
64
65
66
67#endif /* _MACH_PORTMUX_H_ */ 64#endif /* _MACH_PORTMUX_H_ */
diff --git a/arch/blackfin/mach-bf537/boards/Kconfig b/arch/blackfin/mach-bf537/boards/Kconfig
index 42a57b0acb29..77c59da87e85 100644
--- a/arch/blackfin/mach-bf537/boards/Kconfig
+++ b/arch/blackfin/mach-bf537/boards/Kconfig
@@ -33,9 +33,4 @@ config CAMSIG_MINOTAUR
33 help 33 help
34 Board supply package for CSP Minotaur 34 Board supply package for CSP Minotaur
35 35
36config GENERIC_BF537_BOARD
37 bool "Generic"
38 help
39 Generic or Custom board support.
40
41endchoice 36endchoice
diff --git a/arch/blackfin/mach-bf537/boards/Makefile b/arch/blackfin/mach-bf537/boards/Makefile
index 7168cc14afd8..68b98a7af6a6 100644
--- a/arch/blackfin/mach-bf537/boards/Makefile
+++ b/arch/blackfin/mach-bf537/boards/Makefile
@@ -2,7 +2,6 @@
2# arch/blackfin/mach-bf537/boards/Makefile 2# arch/blackfin/mach-bf537/boards/Makefile
3# 3#
4 4
5obj-$(CONFIG_GENERIC_BF537_BOARD) += generic_board.o
6obj-$(CONFIG_BFIN537_STAMP) += stamp.o 5obj-$(CONFIG_BFIN537_STAMP) += stamp.o
7obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o 6obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o
8obj-$(CONFIG_BFIN537_BLUETECHNIX_TCM) += tcm_bf537.o 7obj-$(CONFIG_BFIN537_BLUETECHNIX_TCM) += tcm_bf537.o
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537.c b/arch/blackfin/mach-bf537/boards/cm_bf537.c
index 6ac8e4d5bd38..41c75b9bfac0 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537.c
@@ -108,9 +108,9 @@ static struct bfin5xx_spi_chip ad9960_spi_chip_info = {
108}; 108};
109#endif 109#endif
110 110
111#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 111#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
112static struct bfin5xx_spi_chip spi_mmc_chip_info = { 112static struct bfin5xx_spi_chip mmc_spi_chip_info = {
113 .enable_dma = 1, 113 .enable_dma = 0,
114 .bits_per_word = 8, 114 .bits_per_word = 8,
115}; 115};
116#endif 116#endif
@@ -160,23 +160,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
160 }, 160 },
161#endif 161#endif
162 162
163#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 163#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
164 {
165 .modalias = "spi_mmc_dummy",
166 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
167 .bus_num = 0,
168 .chip_select = 7,
169 .platform_data = NULL,
170 .controller_data = &spi_mmc_chip_info,
171 .mode = SPI_MODE_3,
172 },
173 { 164 {
174 .modalias = "spi_mmc", 165 .modalias = "mmc_spi",
175 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 166 .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */
176 .bus_num = 0, 167 .bus_num = 0,
177 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 168 .chip_select = 1,
178 .platform_data = NULL, 169 .controller_data = &mmc_spi_chip_info,
179 .controller_data = &spi_mmc_chip_info,
180 .mode = SPI_MODE_3, 170 .mode = SPI_MODE_3,
181 }, 171 },
182#endif 172#endif
@@ -479,8 +469,13 @@ static struct platform_device bfin_sport1_uart_device = {
479#endif 469#endif
480 470
481#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 471#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
472static struct platform_device bfin_mii_bus = {
473 .name = "bfin_mii_bus",
474};
475
482static struct platform_device bfin_mac_device = { 476static struct platform_device bfin_mac_device = {
483 .name = "bfin_mac", 477 .name = "bfin_mac",
478 .dev.platform_data = &bfin_mii_bus,
484}; 479};
485#endif 480#endif
486 481
@@ -591,6 +586,7 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
591#endif 586#endif
592 587
593#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 588#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
589 &bfin_mii_bus,
594 &bfin_mac_device, 590 &bfin_mac_device,
595#endif 591#endif
596 592
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c
deleted file mode 100644
index dd6e6bfb98ea..000000000000
--- a/arch/blackfin/mach-bf537/boards/generic_board.c
+++ /dev/null
@@ -1,739 +0,0 @@
1/*
2 * File: arch/blackfin/mach-bf537/boards/generic_board.c
3 * Based on: arch/blackfin/mach-bf533/boards/ezkit.c
4 * Author: Aidan Williams <aidan@nicta.com.au>
5 *
6 * Created:
7 * Description:
8 *
9 * Modified:
10 * Copyright 2005 National ICT Australia (NICTA)
11 * Copyright 2004-2008 Analog Devices Inc.
12 *
13 * Bugs: Enter bugs at http://blackfin.uclinux.org/
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2 of the License, or
18 * (at your option) any later version.
19 *
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this program; if not, see the file COPYING, or write
27 * to the Free Software Foundation, Inc.,
28 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 */
30
31#include <linux/device.h>
32#include <linux/etherdevice.h>
33#include <linux/platform_device.h>
34#include <linux/mtd/mtd.h>
35#include <linux/mtd/partitions.h>
36#include <linux/spi/spi.h>
37#include <linux/spi/flash.h>
38#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
39#include <linux/usb/isp1362.h>
40#endif
41#include <linux/irq.h>
42#include <linux/interrupt.h>
43#include <linux/usb/sl811.h>
44#include <asm/dma.h>
45#include <asm/bfin5xx_spi.h>
46#include <asm/reboot.h>
47#include <asm/portmux.h>
48#include <linux/spi/ad7877.h>
49
50/*
51 * Name the Board for the /proc/cpuinfo
52 */
53const char bfin_board_name[] = "UNKNOWN BOARD";
54
55/*
56 * Driver needs to know address, irq and flag pin.
57 */
58
59#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
60#include <linux/usb/isp1760.h>
61static struct resource bfin_isp1760_resources[] = {
62 [0] = {
63 .start = 0x203C0000,
64 .end = 0x203C0000 + 0x000fffff,
65 .flags = IORESOURCE_MEM,
66 },
67 [1] = {
68 .start = IRQ_PF7,
69 .end = IRQ_PF7,
70 .flags = IORESOURCE_IRQ,
71 },
72};
73
74static struct isp1760_platform_data isp1760_priv = {
75 .is_isp1761 = 0,
76 .port1_disable = 0,
77 .bus_width_16 = 1,
78 .port1_otg = 0,
79 .analog_oc = 0,
80 .dack_polarity_high = 0,
81 .dreq_polarity_high = 0,
82};
83
84static struct platform_device bfin_isp1760_device = {
85 .name = "isp1760-hcd",
86 .id = 0,
87 .dev = {
88 .platform_data = &isp1760_priv,
89 },
90 .num_resources = ARRAY_SIZE(bfin_isp1760_resources),
91 .resource = bfin_isp1760_resources,
92};
93#endif
94
95#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
96static struct resource bfin_pcmcia_cf_resources[] = {
97 {
98 .start = 0x20310000, /* IO PORT */
99 .end = 0x20312000,
100 .flags = IORESOURCE_MEM,
101 }, {
102 .start = 0x20311000, /* Attribute Memory */
103 .end = 0x20311FFF,
104 .flags = IORESOURCE_MEM,
105 }, {
106 .start = IRQ_PF4,
107 .end = IRQ_PF4,
108 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
109 }, {
110 .start = 6, /* Card Detect PF6 */
111 .end = 6,
112 .flags = IORESOURCE_IRQ,
113 },
114};
115
116static struct platform_device bfin_pcmcia_cf_device = {
117 .name = "bfin_cf_pcmcia",
118 .id = -1,
119 .num_resources = ARRAY_SIZE(bfin_pcmcia_cf_resources),
120 .resource = bfin_pcmcia_cf_resources,
121};
122#endif
123
124#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
125static struct platform_device rtc_device = {
126 .name = "rtc-bfin",
127 .id = -1,
128};
129#endif
130
131#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
132static struct resource smc91x_resources[] = {
133 {
134 .name = "smc91x-regs",
135 .start = 0x20300300,
136 .end = 0x20300300 + 16,
137 .flags = IORESOURCE_MEM,
138 }, {
139
140 .start = IRQ_PF7,
141 .end = IRQ_PF7,
142 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
143 },
144};
145static struct platform_device smc91x_device = {
146 .name = "smc91x",
147 .id = 0,
148 .num_resources = ARRAY_SIZE(smc91x_resources),
149 .resource = smc91x_resources,
150};
151#endif
152
153#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
154static struct resource dm9000_resources[] = {
155 [0] = {
156 .start = 0x203FB800,
157 .end = 0x203FB800 + 1,
158 .flags = IORESOURCE_MEM,
159 },
160 [1] = {
161 .start = 0x203FB800 + 4,
162 .end = 0x203FB800 + 5,
163 .flags = IORESOURCE_MEM,
164 },
165 [2] = {
166 .start = IRQ_PF9,
167 .end = IRQ_PF9,
168 .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE),
169 },
170};
171
172static struct platform_device dm9000_device = {
173 .name = "dm9000",
174 .id = -1,
175 .num_resources = ARRAY_SIZE(dm9000_resources),
176 .resource = dm9000_resources,
177};
178#endif
179
180#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
181static struct resource sl811_hcd_resources[] = {
182 {
183 .start = 0x20340000,
184 .end = 0x20340000,
185 .flags = IORESOURCE_MEM,
186 }, {
187 .start = 0x20340004,
188 .end = 0x20340004,
189 .flags = IORESOURCE_MEM,
190 }, {
191 .start = CONFIG_USB_SL811_BFIN_IRQ,
192 .end = CONFIG_USB_SL811_BFIN_IRQ,
193 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
194 },
195};
196
197#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
198void sl811_port_power(struct device *dev, int is_on)
199{
200 gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS");
201 gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on);
202
203}
204#endif
205
206static struct sl811_platform_data sl811_priv = {
207 .potpg = 10,
208 .power = 250, /* == 500mA */
209#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
210 .port_power = &sl811_port_power,
211#endif
212};
213
214static struct platform_device sl811_hcd_device = {
215 .name = "sl811-hcd",
216 .id = 0,
217 .dev = {
218 .platform_data = &sl811_priv,
219 },
220 .num_resources = ARRAY_SIZE(sl811_hcd_resources),
221 .resource = sl811_hcd_resources,
222};
223#endif
224
225#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
226static struct resource isp1362_hcd_resources[] = {
227 {
228 .start = 0x20360000,
229 .end = 0x20360000,
230 .flags = IORESOURCE_MEM,
231 }, {
232 .start = 0x20360004,
233 .end = 0x20360004,
234 .flags = IORESOURCE_MEM,
235 }, {
236 .start = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ,
237 .end = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ,
238 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
239 },
240};
241
242static struct isp1362_platform_data isp1362_priv = {
243 .sel15Kres = 1,
244 .clknotstop = 0,
245 .oc_enable = 0,
246 .int_act_high = 0,
247 .int_edge_triggered = 0,
248 .remote_wakeup_connected = 0,
249 .no_power_switching = 1,
250 .power_switching_mode = 0,
251};
252
253static struct platform_device isp1362_hcd_device = {
254 .name = "isp1362-hcd",
255 .id = 0,
256 .dev = {
257 .platform_data = &isp1362_priv,
258 },
259 .num_resources = ARRAY_SIZE(isp1362_hcd_resources),
260 .resource = isp1362_hcd_resources,
261};
262#endif
263
264#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
265static struct platform_device bfin_mac_device = {
266 .name = "bfin_mac",
267};
268#endif
269
270#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
271static struct resource net2272_bfin_resources[] = {
272 {
273 .start = 0x20300000,
274 .end = 0x20300000 + 0x100,
275 .flags = IORESOURCE_MEM,
276 }, {
277 .start = IRQ_PF7,
278 .end = IRQ_PF7,
279 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
280 },
281};
282
283static struct platform_device net2272_bfin_device = {
284 .name = "net2272",
285 .id = -1,
286 .num_resources = ARRAY_SIZE(net2272_bfin_resources),
287 .resource = net2272_bfin_resources,
288};
289#endif
290
291#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
292/* all SPI peripherals info goes here */
293
294#if defined(CONFIG_MTD_M25P80) \
295 || defined(CONFIG_MTD_M25P80_MODULE)
296static struct mtd_partition bfin_spi_flash_partitions[] = {
297 {
298 .name = "bootloader(spi)",
299 .size = 0x00020000,
300 .offset = 0,
301 .mask_flags = MTD_CAP_ROM
302 }, {
303 .name = "linux kernel(spi)",
304 .size = 0xe0000,
305 .offset = 0x20000
306 }, {
307 .name = "file system(spi)",
308 .size = 0x700000,
309 .offset = 0x00100000,
310 }
311};
312
313static struct flash_platform_data bfin_spi_flash_data = {
314 .name = "m25p80",
315 .parts = bfin_spi_flash_partitions,
316 .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions),
317 .type = "m25p64",
318};
319
320/* SPI flash chip (m25p64) */
321static struct bfin5xx_spi_chip spi_flash_chip_info = {
322 .enable_dma = 0, /* use dma transfer with this chip*/
323 .bits_per_word = 8,
324};
325#endif
326
327#if defined(CONFIG_SPI_ADC_BF533) \
328 || defined(CONFIG_SPI_ADC_BF533_MODULE)
329/* SPI ADC chip */
330static struct bfin5xx_spi_chip spi_adc_chip_info = {
331 .enable_dma = 1, /* use dma transfer with this chip*/
332 .bits_per_word = 16,
333};
334#endif
335
336#if defined(CONFIG_SND_BLACKFIN_AD1836) \
337 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE)
338static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
339 .enable_dma = 0,
340 .bits_per_word = 16,
341};
342#endif
343
344#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE)
345static struct bfin5xx_spi_chip ad9960_spi_chip_info = {
346 .enable_dma = 0,
347 .bits_per_word = 16,
348};
349#endif
350
351#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
352static struct bfin5xx_spi_chip spi_mmc_chip_info = {
353 .enable_dma = 1,
354 .bits_per_word = 8,
355};
356#endif
357
358#if defined(CONFIG_PBX)
359static struct bfin5xx_spi_chip spi_si3xxx_chip_info = {
360 .ctl_reg = 0x4, /* send zero */
361 .enable_dma = 0,
362 .bits_per_word = 8,
363 .cs_change_per_word = 1,
364};
365#endif
366
367#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
368static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
369 .enable_dma = 0,
370 .bits_per_word = 16,
371};
372
373static const struct ad7877_platform_data bfin_ad7877_ts_info = {
374 .model = 7877,
375 .vref_delay_usecs = 50, /* internal, no capacitor */
376 .x_plate_ohms = 419,
377 .y_plate_ohms = 486,
378 .pressure_max = 1000,
379 .pressure_min = 0,
380 .stopacq_polarity = 1,
381 .first_conversion_delay = 3,
382 .acquisition_time = 1,
383 .averaging = 1,
384 .pen_down_acc_interval = 1,
385};
386#endif
387
388static struct spi_board_info bfin_spi_board_info[] __initdata = {
389#if defined(CONFIG_MTD_M25P80) \
390 || defined(CONFIG_MTD_M25P80_MODULE)
391 {
392 /* the modalias must be the same as spi device driver name */
393 .modalias = "m25p80", /* Name of spi_driver for this device */
394 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
395 .bus_num = 0, /* Framework bus number */
396 .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/
397 .platform_data = &bfin_spi_flash_data,
398 .controller_data = &spi_flash_chip_info,
399 .mode = SPI_MODE_3,
400 },
401#endif
402
403#if defined(CONFIG_SPI_ADC_BF533) \
404 || defined(CONFIG_SPI_ADC_BF533_MODULE)
405 {
406 .modalias = "bfin_spi_adc", /* Name of spi_driver for this device */
407 .max_speed_hz = 6250000, /* max spi clock (SCK) speed in HZ */
408 .bus_num = 0, /* Framework bus number */
409 .chip_select = 1, /* Framework chip select. */
410 .platform_data = NULL, /* No spi_driver specific config */
411 .controller_data = &spi_adc_chip_info,
412 },
413#endif
414
415#if defined(CONFIG_SND_BLACKFIN_AD1836) \
416 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE)
417 {
418 .modalias = "ad1836-spi",
419 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
420 .bus_num = 0,
421 .chip_select = CONFIG_SND_BLACKFIN_SPI_PFBIT,
422 .controller_data = &ad1836_spi_chip_info,
423 },
424#endif
425#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE)
426 {
427 .modalias = "ad9960-spi",
428 .max_speed_hz = 10000000, /* max spi clock (SCK) speed in HZ */
429 .bus_num = 0,
430 .chip_select = 1,
431 .controller_data = &ad9960_spi_chip_info,
432 },
433#endif
434#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
435 {
436 .modalias = "spi_mmc_dummy",
437 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
438 .bus_num = 0,
439 .chip_select = 0,
440 .platform_data = NULL,
441 .controller_data = &spi_mmc_chip_info,
442 .mode = SPI_MODE_3,
443 },
444 {
445 .modalias = "spi_mmc",
446 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
447 .bus_num = 0,
448 .chip_select = CONFIG_SPI_MMC_CS_CHAN,
449 .platform_data = NULL,
450 .controller_data = &spi_mmc_chip_info,
451 .mode = SPI_MODE_3,
452 },
453#endif
454#if defined(CONFIG_PBX)
455 {
456 .modalias = "fxs-spi",
457 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
458 .bus_num = 0,
459 .chip_select = 8 - CONFIG_J11_JUMPER,
460 .controller_data = &spi_si3xxx_chip_info,
461 .mode = SPI_MODE_3,
462 },
463 {
464 .modalias = "fxo-spi",
465 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
466 .bus_num = 0,
467 .chip_select = 8 - CONFIG_J19_JUMPER,
468 .controller_data = &spi_si3xxx_chip_info,
469 .mode = SPI_MODE_3,
470 },
471#endif
472#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
473 {
474 .modalias = "ad7877",
475 .platform_data = &bfin_ad7877_ts_info,
476 .irq = IRQ_PF6,
477 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
478 .bus_num = 0,
479 .chip_select = 1,
480 .controller_data = &spi_ad7877_chip_info,
481 },
482#endif
483};
484
485/* SPI controller data */
486static struct bfin5xx_spi_master bfin_spi0_info = {
487 .num_chipselect = 8,
488 .enable_dma = 1, /* master has the ability to do dma transfer */
489 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
490};
491
492/* SPI (0) */
493static struct resource bfin_spi0_resource[] = {
494 [0] = {
495 .start = SPI0_REGBASE,
496 .end = SPI0_REGBASE + 0xFF,
497 .flags = IORESOURCE_MEM,
498 },
499 [1] = {
500 .start = CH_SPI,
501 .end = CH_SPI,
502 .flags = IORESOURCE_IRQ,
503 },
504};
505
506static struct platform_device bfin_spi0_device = {
507 .name = "bfin-spi",
508 .id = 0, /* Bus number */
509 .num_resources = ARRAY_SIZE(bfin_spi0_resource),
510 .resource = bfin_spi0_resource,
511 .dev = {
512 .platform_data = &bfin_spi0_info, /* Passed to driver */
513 },
514};
515#endif /* spi master and devices */
516
517#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
518static struct platform_device bfin_fb_device = {
519 .name = "bf537-lq035",
520};
521#endif
522
523#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
524static struct platform_device bfin_fb_adv7393_device = {
525 .name = "bfin-adv7393",
526};
527#endif
528
529#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
530static struct resource bfin_uart_resources[] = {
531 {
532 .start = 0xFFC00400,
533 .end = 0xFFC004FF,
534 .flags = IORESOURCE_MEM,
535 }, {
536 .start = 0xFFC02000,
537 .end = 0xFFC020FF,
538 .flags = IORESOURCE_MEM,
539 },
540};
541
542static struct platform_device bfin_uart_device = {
543 .name = "bfin-uart",
544 .id = 1,
545 .num_resources = ARRAY_SIZE(bfin_uart_resources),
546 .resource = bfin_uart_resources,
547};
548#endif
549
550#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
551#ifdef CONFIG_BFIN_SIR0
552static struct resource bfin_sir0_resources[] = {
553 {
554 .start = 0xFFC00400,
555 .end = 0xFFC004FF,
556 .flags = IORESOURCE_MEM,
557 },
558 {
559 .start = IRQ_UART0_RX,
560 .end = IRQ_UART0_RX+1,
561 .flags = IORESOURCE_IRQ,
562 },
563 {
564 .start = CH_UART0_RX,
565 .end = CH_UART0_RX+1,
566 .flags = IORESOURCE_DMA,
567 },
568};
569
570static struct platform_device bfin_sir0_device = {
571 .name = "bfin_sir",
572 .id = 0,
573 .num_resources = ARRAY_SIZE(bfin_sir0_resources),
574 .resource = bfin_sir0_resources,
575};
576#endif
577#ifdef CONFIG_BFIN_SIR1
578static struct resource bfin_sir1_resources[] = {
579 {
580 .start = 0xFFC02000,
581 .end = 0xFFC020FF,
582 .flags = IORESOURCE_MEM,
583 },
584 {
585 .start = IRQ_UART1_RX,
586 .end = IRQ_UART1_RX+1,
587 .flags = IORESOURCE_IRQ,
588 },
589 {
590 .start = CH_UART1_RX,
591 .end = CH_UART1_RX+1,
592 .flags = IORESOURCE_DMA,
593 },
594};
595
596static struct platform_device bfin_sir1_device = {
597 .name = "bfin_sir",
598 .id = 1,
599 .num_resources = ARRAY_SIZE(bfin_sir1_resources),
600 .resource = bfin_sir1_resources,
601};
602#endif
603#endif
604
605#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
606static struct resource bfin_twi0_resource[] = {
607 [0] = {
608 .start = TWI0_REGBASE,
609 .end = TWI0_REGBASE + 0xFF,
610 .flags = IORESOURCE_MEM,
611 },
612 [1] = {
613 .start = IRQ_TWI,
614 .end = IRQ_TWI,
615 .flags = IORESOURCE_IRQ,
616 },
617};
618
619static struct platform_device i2c_bfin_twi_device = {
620 .name = "i2c-bfin-twi",
621 .id = 0,
622 .num_resources = ARRAY_SIZE(bfin_twi0_resource),
623 .resource = bfin_twi0_resource,
624};
625#endif
626
627#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
628static struct platform_device bfin_sport0_uart_device = {
629 .name = "bfin-sport-uart",
630 .id = 0,
631};
632
633static struct platform_device bfin_sport1_uart_device = {
634 .name = "bfin-sport-uart",
635 .id = 1,
636};
637#endif
638
639static struct platform_device *stamp_devices[] __initdata = {
640#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
641 &bfin_pcmcia_cf_device,
642#endif
643
644#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
645 &rtc_device,
646#endif
647
648#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
649 &sl811_hcd_device,
650#endif
651
652#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
653 &isp1362_hcd_device,
654#endif
655
656#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
657 &smc91x_device,
658#endif
659
660#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
661 &dm9000_device,
662#endif
663
664#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
665 &bfin_mac_device,
666#endif
667
668#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
669 &net2272_bfin_device,
670#endif
671
672#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
673 &bfin_isp1760_device,
674#endif
675
676#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
677 &bfin_spi0_device,
678#endif
679
680#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
681 &bfin_fb_device,
682#endif
683
684#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
685 &bfin_fb_adv7393_device,
686#endif
687
688#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
689 &bfin_uart_device,
690#endif
691
692#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
693#ifdef CONFIG_BFIN_SIR0
694 &bfin_sir0_device,
695#endif
696#ifdef CONFIG_BFIN_SIR1
697 &bfin_sir1_device,
698#endif
699#endif
700
701#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
702 &i2c_bfin_twi_device,
703#endif
704
705#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
706 &bfin_sport0_uart_device,
707 &bfin_sport1_uart_device,
708#endif
709};
710
711static int __init stamp_init(void)
712{
713 printk(KERN_INFO "%s(): registering device resources\n", __func__);
714 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
715#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
716 spi_register_board_info(bfin_spi_board_info,
717 ARRAY_SIZE(bfin_spi_board_info));
718#endif
719
720 return 0;
721}
722
723arch_initcall(stamp_init);
724
725void native_machine_restart(char *cmd)
726{
727 /* workaround reboot hang when booting from SPI */
728 if ((bfin_read_SYSCR() & 0x7) == 0x3)
729 bfin_gpio_reset_spi0_ssel1();
730}
731
732#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
733void bfin_get_ether_addr(char *addr)
734{
735 random_ether_addr(addr);
736 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
737}
738EXPORT_SYMBOL(bfin_get_ether_addr);
739#endif
diff --git a/arch/blackfin/mach-bf537/boards/minotaur.c b/arch/blackfin/mach-bf537/boards/minotaur.c
index bb795341cb17..3c159819e555 100644
--- a/arch/blackfin/mach-bf537/boards/minotaur.c
+++ b/arch/blackfin/mach-bf537/boards/minotaur.c
@@ -61,8 +61,13 @@ static struct platform_device rtc_device = {
61#endif 61#endif
62 62
63#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 63#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
64static struct platform_device bfin_mii_bus = {
65 .name = "bfin_mii_bus",
66};
67
64static struct platform_device bfin_mac_device = { 68static struct platform_device bfin_mac_device = {
65 .name = "bfin_mac", 69 .name = "bfin_mac",
70 .dev.platform_data = &bfin_mii_bus,
66}; 71};
67#endif 72#endif
68 73
@@ -129,9 +134,9 @@ static struct bfin5xx_spi_chip spi_flash_chip_info = {
129}; 134};
130#endif 135#endif
131 136
132#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 137#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
133static struct bfin5xx_spi_chip spi_mmc_chip_info = { 138static struct bfin5xx_spi_chip mmc_spi_chip_info = {
134 .enable_dma = 1, 139 .enable_dma = 0,
135 .bits_per_word = 8, 140 .bits_per_word = 8,
136}; 141};
137#endif 142#endif
@@ -151,23 +156,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
151 }, 156 },
152#endif 157#endif
153 158
154#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 159#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
155 {
156 .modalias = "spi_mmc_dummy",
157 .max_speed_hz = 5000000, /* max spi clock (SCK) speed in HZ */
158 .bus_num = 0,
159 .chip_select = 0,
160 .platform_data = NULL,
161 .controller_data = &spi_mmc_chip_info,
162 .mode = SPI_MODE_3,
163 },
164 { 160 {
165 .modalias = "spi_mmc", 161 .modalias = "mmc_spi",
166 .max_speed_hz = 5000000, /* max spi clock (SCK) speed in HZ */ 162 .max_speed_hz = 5000000, /* max spi clock (SCK) speed in HZ */
167 .bus_num = 0, 163 .bus_num = 0,
168 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 164 .chip_select = 5,
169 .platform_data = NULL, 165 .controller_data = &mmc_spi_chip_info,
170 .controller_data = &spi_mmc_chip_info,
171 .mode = SPI_MODE_3, 166 .mode = SPI_MODE_3,
172 }, 167 },
173#endif 168#endif
@@ -324,6 +319,7 @@ static struct platform_device *minotaur_devices[] __initdata = {
324#endif 319#endif
325 320
326#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 321#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
322 &bfin_mii_bus,
327 &bfin_mac_device, 323 &bfin_mac_device,
328#endif 324#endif
329 325
@@ -377,5 +373,5 @@ void native_machine_restart(char *cmd)
377{ 373{
378 /* workaround reboot hang when booting from SPI */ 374 /* workaround reboot hang when booting from SPI */
379 if ((bfin_read_SYSCR() & 0x7) == 0x3) 375 if ((bfin_read_SYSCR() & 0x7) == 0x3)
380 bfin_gpio_reset_spi0_ssel1(); 376 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
381} 377}
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c
index 89de94f4545d..4e1de1e53f89 100644
--- a/arch/blackfin/mach-bf537/boards/pnav10.c
+++ b/arch/blackfin/mach-bf537/boards/pnav10.c
@@ -198,8 +198,13 @@ static struct platform_device isp1362_hcd_device = {
198#endif 198#endif
199 199
200#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 200#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
201static struct platform_device bfin_mii_bus = {
202 .name = "bfin_mii_bus",
203};
204
201static struct platform_device bfin_mac_device = { 205static struct platform_device bfin_mac_device = {
202 .name = "bfin_mac", 206 .name = "bfin_mac",
207 .dev.platform_data = &bfin_mii_bus,
203}; 208};
204#endif 209#endif
205 210
@@ -284,9 +289,9 @@ static struct bfin5xx_spi_chip ad9960_spi_chip_info = {
284}; 289};
285#endif 290#endif
286 291
287#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 292#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
288static struct bfin5xx_spi_chip spi_mmc_chip_info = { 293static struct bfin5xx_spi_chip mmc_spi_chip_info = {
289 .enable_dma = 1, 294 .enable_dma = 0,
290 .bits_per_word = 8, 295 .bits_per_word = 8,
291}; 296};
292#endif 297#endif
@@ -359,23 +364,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
359 .controller_data = &ad9960_spi_chip_info, 364 .controller_data = &ad9960_spi_chip_info,
360 }, 365 },
361#endif 366#endif
362#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 367#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
363 {
364 .modalias = "spi_mmc_dummy",
365 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
366 .bus_num = 0,
367 .chip_select = 7,
368 .platform_data = NULL,
369 .controller_data = &spi_mmc_chip_info,
370 .mode = SPI_MODE_3,
371 },
372 { 368 {
373 .modalias = "spi_mmc", 369 .modalias = "mmc_spi",
374 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 370 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
375 .bus_num = 0, 371 .bus_num = 0,
376 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 372 .chip_select = 5,
377 .platform_data = NULL, 373 .controller_data = &mmc_spi_chip_info,
378 .controller_data = &spi_mmc_chip_info,
379 .mode = SPI_MODE_3, 374 .mode = SPI_MODE_3,
380 }, 375 },
381#endif 376#endif
@@ -529,6 +524,7 @@ static struct platform_device *stamp_devices[] __initdata = {
529#endif 524#endif
530 525
531#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 526#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
527 &bfin_mii_bus,
532 &bfin_mac_device, 528 &bfin_mac_device,
533#endif 529#endif
534 530
@@ -558,7 +554,7 @@ static struct platform_device *stamp_devices[] __initdata = {
558#endif 554#endif
559}; 555};
560 556
561static int __init stamp_init(void) 557static int __init pnav_init(void)
562{ 558{
563 printk(KERN_INFO "%s(): registering device resources\n", __func__); 559 printk(KERN_INFO "%s(): registering device resources\n", __func__);
564 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 560 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
@@ -569,7 +565,7 @@ static int __init stamp_init(void)
569 return 0; 565 return 0;
570} 566}
571 567
572arch_initcall(stamp_init); 568arch_initcall(pnav_init);
573 569
574void bfin_get_ether_addr(char *addr) 570void bfin_get_ether_addr(char *addr)
575{ 571{
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index d812e2514a2f..cd04c5e44878 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -321,8 +321,13 @@ static struct platform_device isp1362_hcd_device = {
321#endif 321#endif
322 322
323#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 323#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
324static struct platform_device bfin_mii_bus = {
325 .name = "bfin_mii_bus",
326};
327
324static struct platform_device bfin_mac_device = { 328static struct platform_device bfin_mac_device = {
325 .name = "bfin_mac", 329 .name = "bfin_mac",
330 .dev.platform_data = &bfin_mii_bus,
326}; 331};
327#endif 332#endif
328 333
@@ -1068,7 +1073,6 @@ static struct adp5588_kpad_platform_data adp5588_kpad_data = {
1068}; 1073};
1069#endif 1074#endif
1070 1075
1071#ifdef CONFIG_I2C_BOARDINFO
1072static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 1076static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
1073#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE) 1077#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE)
1074 { 1078 {
@@ -1102,7 +1106,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
1102 }, 1106 },
1103#endif 1107#endif
1104}; 1108};
1105#endif
1106 1109
1107#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 1110#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
1108static struct platform_device bfin_sport0_uart_device = { 1111static struct platform_device bfin_sport0_uart_device = {
@@ -1217,6 +1220,7 @@ static struct platform_device *stamp_devices[] __initdata = {
1217#endif 1220#endif
1218 1221
1219#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 1222#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
1223 &bfin_mii_bus,
1220 &bfin_mac_device, 1224 &bfin_mac_device,
1221#endif 1225#endif
1222 1226
@@ -1284,12 +1288,8 @@ static struct platform_device *stamp_devices[] __initdata = {
1284static int __init stamp_init(void) 1288static int __init stamp_init(void)
1285{ 1289{
1286 printk(KERN_INFO "%s(): registering device resources\n", __func__); 1290 printk(KERN_INFO "%s(): registering device resources\n", __func__);
1287
1288#ifdef CONFIG_I2C_BOARDINFO
1289 i2c_register_board_info(0, bfin_i2c_board_info, 1291 i2c_register_board_info(0, bfin_i2c_board_info,
1290 ARRAY_SIZE(bfin_i2c_board_info)); 1292 ARRAY_SIZE(bfin_i2c_board_info));
1291#endif
1292
1293 bfin_plat_nand_init(); 1293 bfin_plat_nand_init();
1294 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 1294 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
1295 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 1295 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
@@ -1307,7 +1307,7 @@ void native_machine_restart(char *cmd)
1307{ 1307{
1308 /* workaround reboot hang when booting from SPI */ 1308 /* workaround reboot hang when booting from SPI */
1309 if ((bfin_read_SYSCR() & 0x7) == 0x3) 1309 if ((bfin_read_SYSCR() & 0x7) == 0x3)
1310 bfin_gpio_reset_spi0_ssel1(); 1310 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
1311} 1311}
1312 1312
1313/* 1313/*
diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c
index 2f4b066153c5..53ad10f3cd76 100644
--- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c
@@ -108,9 +108,9 @@ static struct bfin5xx_spi_chip ad9960_spi_chip_info = {
108}; 108};
109#endif 109#endif
110 110
111#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 111#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
112static struct bfin5xx_spi_chip spi_mmc_chip_info = { 112static struct bfin5xx_spi_chip mmc_spi_chip_info = {
113 .enable_dma = 1, 113 .enable_dma = 0,
114 .bits_per_word = 8, 114 .bits_per_word = 8,
115}; 115};
116#endif 116#endif
@@ -160,23 +160,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
160 }, 160 },
161#endif 161#endif
162 162
163#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 163#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
164 {
165 .modalias = "spi_mmc_dummy",
166 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
167 .bus_num = 0,
168 .chip_select = 7,
169 .platform_data = NULL,
170 .controller_data = &spi_mmc_chip_info,
171 .mode = SPI_MODE_3,
172 },
173 { 164 {
174 .modalias = "spi_mmc", 165 .modalias = "mmc_spi",
175 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 166 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
176 .bus_num = 0, 167 .bus_num = 0,
177 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 168 .chip_select = 5,
178 .platform_data = NULL, 169 .controller_data = &mmc_spi_chip_info,
179 .controller_data = &spi_mmc_chip_info,
180 .mode = SPI_MODE_3, 170 .mode = SPI_MODE_3,
181 }, 171 },
182#endif 172#endif
@@ -481,8 +471,13 @@ static struct platform_device bfin_sport1_uart_device = {
481#endif 471#endif
482 472
483#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 473#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
474static struct platform_device bfin_mii_bus = {
475 .name = "bfin_mii_bus",
476};
477
484static struct platform_device bfin_mac_device = { 478static struct platform_device bfin_mac_device = {
485 .name = "bfin_mac", 479 .name = "bfin_mac",
480 .dev.platform_data = &bfin_mii_bus,
486}; 481};
487#endif 482#endif
488 483
@@ -593,6 +588,7 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
593#endif 588#endif
594 589
595#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 590#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
591 &bfin_mii_bus,
596 &bfin_mac_device, 592 &bfin_mac_device,
597#endif 593#endif
598 594
@@ -615,7 +611,7 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
615 &bfin_gpios_device, 611 &bfin_gpios_device,
616}; 612};
617 613
618static int __init cm_bf537_init(void) 614static int __init tcm_bf537_init(void)
619{ 615{
620 printk(KERN_INFO "%s(): registering device resources\n", __func__); 616 printk(KERN_INFO "%s(): registering device resources\n", __func__);
621 platform_add_devices(cm_bf537_devices, ARRAY_SIZE(cm_bf537_devices)); 617 platform_add_devices(cm_bf537_devices, ARRAY_SIZE(cm_bf537_devices));
@@ -629,7 +625,7 @@ static int __init cm_bf537_init(void)
629 return 0; 625 return 0;
630} 626}
631 627
632arch_initcall(cm_bf537_init); 628arch_initcall(tcm_bf537_init);
633 629
634void bfin_get_ether_addr(char *addr) 630void bfin_get_ether_addr(char *addr)
635{ 631{
diff --git a/arch/blackfin/mach-bf537/include/mach/anomaly.h b/arch/blackfin/mach-bf537/include/mach/anomaly.h
index 9cb39121d1cb..1bfd80c26c90 100644
--- a/arch/blackfin/mach-bf537/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf537/include/mach/anomaly.h
@@ -2,7 +2,7 @@
2 * File: include/asm-blackfin/mach-bf537/anomaly.h 2 * File: include/asm-blackfin/mach-bf537/anomaly.h
3 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 3 * Bugs: Enter bugs at http://blackfin.uclinux.org/
4 * 4 *
5 * Copyright (C) 2004-2008 Analog Devices Inc. 5 * Copyright (C) 2004-2009 Analog Devices Inc.
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
8 8
@@ -110,7 +110,7 @@
110#define ANOMALY_05000301 (1) 110#define ANOMALY_05000301 (1)
111/* SSYNCs After Writes To CAN/DMA MMR Registers Are Not Always Handled Correctly */ 111/* SSYNCs After Writes To CAN/DMA MMR Registers Are Not Always Handled Correctly */
112#define ANOMALY_05000304 (__SILICON_REVISION__ < 3) 112#define ANOMALY_05000304 (__SILICON_REVISION__ < 3)
113/* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ 113/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */
114#define ANOMALY_05000305 (__SILICON_REVISION__ < 3) 114#define ANOMALY_05000305 (__SILICON_REVISION__ < 3)
115/* SCKELOW Bit Does Not Maintain State Through Hibernate */ 115/* SCKELOW Bit Does Not Maintain State Through Hibernate */
116#define ANOMALY_05000307 (__SILICON_REVISION__ < 3) 116#define ANOMALY_05000307 (__SILICON_REVISION__ < 3)
@@ -168,9 +168,12 @@
168#define ANOMALY_05000323 (0) 168#define ANOMALY_05000323 (0)
169#define ANOMALY_05000353 (1) 169#define ANOMALY_05000353 (1)
170#define ANOMALY_05000363 (0) 170#define ANOMALY_05000363 (0)
171#define ANOMALY_05000380 (0)
171#define ANOMALY_05000386 (1) 172#define ANOMALY_05000386 (1)
172#define ANOMALY_05000412 (0) 173#define ANOMALY_05000412 (0)
173#define ANOMALY_05000432 (0) 174#define ANOMALY_05000432 (0)
174#define ANOMALY_05000435 (0) 175#define ANOMALY_05000435 (0)
176#define ANOMALY_05000447 (0)
177#define ANOMALY_05000448 (0)
175 178
176#endif 179#endif
diff --git a/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
index b3f87e1d16a2..9e34700844a2 100644
--- a/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
@@ -144,7 +144,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
144 CH_UART0_TX, 144 CH_UART0_TX,
145 CH_UART0_RX, 145 CH_UART0_RX,
146#endif 146#endif
147#ifdef CONFIG_BFIN_UART0_CTSRTS 147#ifdef CONFIG_SERIAL_BFIN_CTSRTS
148 CONFIG_UART0_CTS_PIN, 148 CONFIG_UART0_CTS_PIN,
149 CONFIG_UART0_RTS_PIN, 149 CONFIG_UART0_RTS_PIN,
150#endif 150#endif
@@ -158,7 +158,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
158 CH_UART1_TX, 158 CH_UART1_TX,
159 CH_UART1_RX, 159 CH_UART1_RX,
160#endif 160#endif
161#ifdef CONFIG_BFIN_UART1_CTSRTS 161#ifdef CONFIG_SERIAL_BFIN_CTSRTS
162 CONFIG_UART1_CTS_PIN, 162 CONFIG_UART1_CTS_PIN,
163 CONFIG_UART1_RTS_PIN, 163 CONFIG_UART1_RTS_PIN,
164#endif 164#endif
diff --git a/arch/blackfin/mach-bf537/include/mach/portmux.h b/arch/blackfin/mach-bf537/include/mach/portmux.h
index 78fee6e0f237..87285e75e903 100644
--- a/arch/blackfin/mach-bf537/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf537/include/mach/portmux.h
@@ -31,6 +31,7 @@
31#define P_PPI0_FS1 (P_DEFINED | P_IDENT(GPIO_PF9) | P_FUNCT(1)) 31#define P_PPI0_FS1 (P_DEFINED | P_IDENT(GPIO_PF9) | P_FUNCT(1))
32#define P_TACLK0 (P_DEFINED | P_IDENT(GPIO_PF14) | P_FUNCT(1)) 32#define P_TACLK0 (P_DEFINED | P_IDENT(GPIO_PF14) | P_FUNCT(1))
33#define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF15) | P_FUNCT(1)) 33#define P_TMRCLK (P_DEFINED | P_IDENT(GPIO_PF15) | P_FUNCT(1))
34#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1
34 35
35#define P_PPI0_D0 (P_DEFINED | P_IDENT(GPIO_PG0) | P_FUNCT(0)) 36#define P_PPI0_D0 (P_DEFINED | P_IDENT(GPIO_PG0) | P_FUNCT(0))
36#define P_PPI0_D1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0)) 37#define P_PPI0_D1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0))
diff --git a/arch/blackfin/mach-bf538/include/mach/anomaly.h b/arch/blackfin/mach-bf538/include/mach/anomaly.h
index e130b4f8a05d..3a5699827363 100644
--- a/arch/blackfin/mach-bf538/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf538/include/mach/anomaly.h
@@ -2,7 +2,7 @@
2 * File: include/asm-blackfin/mach-bf538/anomaly.h 2 * File: include/asm-blackfin/mach-bf538/anomaly.h
3 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 3 * Bugs: Enter bugs at http://blackfin.uclinux.org/
4 * 4 *
5 * Copyright (C) 2004-2008 Analog Devices Inc. 5 * Copyright (C) 2004-2009 Analog Devices Inc.
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
8 8
@@ -120,13 +120,17 @@
120#define ANOMALY_05000198 (0) 120#define ANOMALY_05000198 (0)
121#define ANOMALY_05000230 (0) 121#define ANOMALY_05000230 (0)
122#define ANOMALY_05000263 (0) 122#define ANOMALY_05000263 (0)
123#define ANOMALY_05000305 (0)
123#define ANOMALY_05000311 (0) 124#define ANOMALY_05000311 (0)
124#define ANOMALY_05000323 (0) 125#define ANOMALY_05000323 (0)
125#define ANOMALY_05000353 (1) 126#define ANOMALY_05000353 (1)
126#define ANOMALY_05000363 (0) 127#define ANOMALY_05000363 (0)
128#define ANOMALY_05000380 (0)
127#define ANOMALY_05000386 (1) 129#define ANOMALY_05000386 (1)
128#define ANOMALY_05000412 (0) 130#define ANOMALY_05000412 (0)
129#define ANOMALY_05000432 (0) 131#define ANOMALY_05000432 (0)
130#define ANOMALY_05000435 (0) 132#define ANOMALY_05000435 (0)
133#define ANOMALY_05000447 (0)
134#define ANOMALY_05000448 (0)
131 135
132#endif 136#endif
diff --git a/arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h
index 40503b6b89a3..3c2811ebecdd 100644
--- a/arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h
@@ -144,7 +144,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
144 CH_UART0_TX, 144 CH_UART0_TX,
145 CH_UART0_RX, 145 CH_UART0_RX,
146#endif 146#endif
147#ifdef CONFIG_BFIN_UART0_CTSRTS 147#ifdef CONFIG_SERIAL_BFIN_CTSRTS
148 CONFIG_UART0_CTS_PIN, 148 CONFIG_UART0_CTS_PIN,
149 CONFIG_UART0_RTS_PIN, 149 CONFIG_UART0_RTS_PIN,
150#endif 150#endif
@@ -158,7 +158,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
158 CH_UART1_TX, 158 CH_UART1_TX,
159 CH_UART1_RX, 159 CH_UART1_RX,
160#endif 160#endif
161#ifdef CONFIG_BFIN_UART1_CTSRTS 161#ifdef CONFIG_SERIAL_BFIN_CTSRTS
162 CONFIG_UART1_CTS_PIN, 162 CONFIG_UART1_CTS_PIN,
163 CONFIG_UART1_RTS_PIN, 163 CONFIG_UART1_RTS_PIN,
164#endif 164#endif
diff --git a/arch/blackfin/mach-bf538/include/mach/portmux.h b/arch/blackfin/mach-bf538/include/mach/portmux.h
index 1e031b588b47..c8db264e3e4d 100644
--- a/arch/blackfin/mach-bf538/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf538/include/mach/portmux.h
@@ -102,5 +102,6 @@
102#define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2)) 102#define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF2))
103#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1)) 103#define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PF1))
104#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0)) 104#define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PF0))
105#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2
105 106
106#endif /* _MACH_PORTMUX_H_ */ 107#endif /* _MACH_PORTMUX_H_ */
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index 309c16014cae..096e661700a7 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -781,7 +781,6 @@ static struct platform_device i2c_bfin_twi1_device = {
781#endif 781#endif
782#endif 782#endif
783 783
784#ifdef CONFIG_I2C_BOARDINFO
785static struct i2c_board_info __initdata bfin_i2c_board_info0[] = { 784static struct i2c_board_info __initdata bfin_i2c_board_info0[] = {
786}; 785};
787 786
@@ -800,7 +799,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info1[] = {
800#endif 799#endif
801}; 800};
802#endif 801#endif
803#endif
804 802
805#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 803#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
806#include <linux/gpio_keys.h> 804#include <linux/gpio_keys.h>
@@ -956,14 +954,12 @@ static int __init ezkit_init(void)
956{ 954{
957 printk(KERN_INFO "%s(): registering device resources\n", __func__); 955 printk(KERN_INFO "%s(): registering device resources\n", __func__);
958 956
959#ifdef CONFIG_I2C_BOARDINFO
960 i2c_register_board_info(0, bfin_i2c_board_info0, 957 i2c_register_board_info(0, bfin_i2c_board_info0,
961 ARRAY_SIZE(bfin_i2c_board_info0)); 958 ARRAY_SIZE(bfin_i2c_board_info0));
962#if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */ 959#if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */
963 i2c_register_board_info(1, bfin_i2c_board_info1, 960 i2c_register_board_info(1, bfin_i2c_board_info1,
964 ARRAY_SIZE(bfin_i2c_board_info1)); 961 ARRAY_SIZE(bfin_i2c_board_info1));
965#endif 962#endif
966#endif
967 963
968 platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); 964 platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices));
969 965
diff --git a/arch/blackfin/mach-bf548/include/mach/anomaly.h b/arch/blackfin/mach-bf548/include/mach/anomaly.h
index 3b5430999f4f..882e40ccf0d1 100644
--- a/arch/blackfin/mach-bf548/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf548/include/mach/anomaly.h
@@ -2,12 +2,12 @@
2 * File: include/asm-blackfin/mach-bf548/anomaly.h 2 * File: include/asm-blackfin/mach-bf548/anomaly.h
3 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 3 * Bugs: Enter bugs at http://blackfin.uclinux.org/
4 * 4 *
5 * Copyright (C) 2004-2008 Analog Devices Inc. 5 * Copyright (C) 2004-2009 Analog Devices Inc.
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
8 8
9/* This file shoule be up to date with: 9/* This file shoule be up to date with:
10 * - Revision G, 08/07/2008; ADSP-BF542/BF544/BF547/BF548/BF549 Blackfin Processor Anomaly List 10 * - Revision H, 01/16/2009; ADSP-BF542/BF544/BF547/BF548/BF549 Blackfin Processor Anomaly List
11 */ 11 */
12 12
13#ifndef _MACH_ANOMALY_H_ 13#ifndef _MACH_ANOMALY_H_
@@ -91,8 +91,6 @@
91#define ANOMALY_05000371 (__SILICON_REVISION__ < 2) 91#define ANOMALY_05000371 (__SILICON_REVISION__ < 2)
92/* USB DP/DM Data Pins May Lose State When Entering Hibernate */ 92/* USB DP/DM Data Pins May Lose State When Entering Hibernate */
93#define ANOMALY_05000372 (__SILICON_REVISION__ < 1) 93#define ANOMALY_05000372 (__SILICON_REVISION__ < 1)
94/* Mobile DDR Operation Not Functional */
95#define ANOMALY_05000377 (1)
96/* Security/Authentication Speedpath Causes Authentication To Fail To Initiate */ 94/* Security/Authentication Speedpath Causes Authentication To Fail To Initiate */
97#define ANOMALY_05000378 (__SILICON_REVISION__ < 2) 95#define ANOMALY_05000378 (__SILICON_REVISION__ < 2)
98/* 16-Bit NAND FLASH Boot Mode Is Not Functional */ 96/* 16-Bit NAND FLASH Boot Mode Is Not Functional */
@@ -157,8 +155,22 @@
157#define ANOMALY_05000429 (__SILICON_REVISION__ < 2) 155#define ANOMALY_05000429 (__SILICON_REVISION__ < 2)
158/* Software System Reset Corrupts PLL_LOCKCNT Register */ 156/* Software System Reset Corrupts PLL_LOCKCNT Register */
159#define ANOMALY_05000430 (__SILICON_REVISION__ >= 2) 157#define ANOMALY_05000430 (__SILICON_REVISION__ >= 2)
158/* Incorrect Use of Stack in Lockbox Firmware During Authentication */
159#define ANOMALY_05000431 (__SILICON_REVISION__ < 3)
160/* OTP Write Accesses Not Supported */
161#define ANOMALY_05000442 (__SILICON_REVISION__ < 1)
160/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 162/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */
161#define ANOMALY_05000443 (1) 163#define ANOMALY_05000443 (1)
164/* CDMAPRIO and L2DMAPRIO Bits in the SYSCR Register Are Not Functional */
165#define ANOMALY_05000446 (1)
166/* UART IrDA Receiver Fails on Extended Bit Pulses */
167#define ANOMALY_05000447 (1)
168/* DDR Clock Duty Cycle Spec Violation (tCH, tCL) */
169#define ANOMALY_05000448 (__SILICON_REVISION__ == 1)
170/* Reduced Timing Margins on DDR Output Setup and Hold (tDS and tDH) */
171#define ANOMALY_05000449 (__SILICON_REVISION__ == 1)
172/* USB DMA Mode 1 Short Packet Data Corruption */
173#define ANOMALY_05000450 (1
162 174
163/* Anomalies that don't exist on this proc */ 175/* Anomalies that don't exist on this proc */
164#define ANOMALY_05000125 (0) 176#define ANOMALY_05000125 (0)
@@ -171,10 +183,13 @@
171#define ANOMALY_05000263 (0) 183#define ANOMALY_05000263 (0)
172#define ANOMALY_05000266 (0) 184#define ANOMALY_05000266 (0)
173#define ANOMALY_05000273 (0) 185#define ANOMALY_05000273 (0)
186#define ANOMALY_05000278 (0)
187#define ANOMALY_05000305 (0)
174#define ANOMALY_05000307 (0) 188#define ANOMALY_05000307 (0)
175#define ANOMALY_05000311 (0) 189#define ANOMALY_05000311 (0)
176#define ANOMALY_05000323 (0) 190#define ANOMALY_05000323 (0)
177#define ANOMALY_05000363 (0) 191#define ANOMALY_05000363 (0)
192#define ANOMALY_05000380 (0)
178#define ANOMALY_05000412 (0) 193#define ANOMALY_05000412 (0)
179#define ANOMALY_05000432 (0) 194#define ANOMALY_05000432 (0)
180#define ANOMALY_05000435 (0) 195#define ANOMALY_05000435 (0)
diff --git a/arch/blackfin/mach-bf548/include/mach/bf548.h b/arch/blackfin/mach-bf548/include/mach/bf548.h
index f0e569984810..cd31f72bdd82 100644
--- a/arch/blackfin/mach-bf548/include/mach/bf548.h
+++ b/arch/blackfin/mach-bf548/include/mach/bf548.h
@@ -104,6 +104,18 @@
104 104
105#define AMGCTLVAL (V_AMBEN | V_AMCKEN) 105#define AMGCTLVAL (V_AMBEN | V_AMCKEN)
106 106
107#if defined(CONFIG_BF542M)
108# define CONFIG_BF542
109#elif defined(CONFIG_BF544M)
110# define CONFIG_BF544
111#elif defined(CONFIG_BF547M)
112# define CONFIG_BF547
113#elif defined(CONFIG_BF548M)
114# define CONFIG_BF548
115#elif defined(CONFIG_BF549M)
116# define CONFIG_BF549
117#endif
118
107#if defined(CONFIG_BF542) 119#if defined(CONFIG_BF542)
108# define CPU "BF542" 120# define CPU "BF542"
109# define CPUID 0x27de 121# define CPUID 0x27de
diff --git a/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
index e4cf35e7ab9f..c05e79cba257 100644
--- a/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
@@ -63,7 +63,7 @@
63#define UART_ENABLE_INTS(x, v) UART_SET_IER(x, v) 63#define UART_ENABLE_INTS(x, v) UART_SET_IER(x, v)
64#define UART_DISABLE_INTS(x) UART_CLEAR_IER(x, 0xF) 64#define UART_DISABLE_INTS(x) UART_CLEAR_IER(x, 0xF)
65 65
66#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS) 66#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART2_CTSRTS)
67# define CONFIG_SERIAL_BFIN_CTSRTS 67# define CONFIG_SERIAL_BFIN_CTSRTS
68 68
69# ifndef CONFIG_UART0_CTS_PIN 69# ifndef CONFIG_UART0_CTS_PIN
@@ -74,12 +74,12 @@
74# define CONFIG_UART0_RTS_PIN -1 74# define CONFIG_UART0_RTS_PIN -1
75# endif 75# endif
76 76
77# ifndef CONFIG_UART1_CTS_PIN 77# ifndef CONFIG_UART2_CTS_PIN
78# define CONFIG_UART1_CTS_PIN -1 78# define CONFIG_UART2_CTS_PIN -1
79# endif 79# endif
80 80
81# ifndef CONFIG_UART1_RTS_PIN 81# ifndef CONFIG_UART2_RTS_PIN
82# define CONFIG_UART1_RTS_PIN -1 82# define CONFIG_UART2_RTS_PIN -1
83# endif 83# endif
84#endif 84#endif
85 85
@@ -130,7 +130,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
130 CH_UART0_TX, 130 CH_UART0_TX,
131 CH_UART0_RX, 131 CH_UART0_RX,
132#endif 132#endif
133#ifdef CONFIG_BFIN_UART0_CTSRTS 133#ifdef CONFIG_SERIAL_BFIN_CTSRTS
134 CONFIG_UART0_CTS_PIN, 134 CONFIG_UART0_CTS_PIN,
135 CONFIG_UART0_RTS_PIN, 135 CONFIG_UART0_RTS_PIN,
136#endif 136#endif
@@ -144,6 +144,10 @@ struct bfin_serial_res bfin_serial_resource[] = {
144 CH_UART1_TX, 144 CH_UART1_TX,
145 CH_UART1_RX, 145 CH_UART1_RX,
146#endif 146#endif
147#ifdef CONFIG_SERIAL_BFIN_CTSRTS
148 0,
149 0,
150#endif
147 }, 151 },
148#endif 152#endif
149#ifdef CONFIG_SERIAL_BFIN_UART2 153#ifdef CONFIG_SERIAL_BFIN_UART2
@@ -154,7 +158,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
154 CH_UART2_TX, 158 CH_UART2_TX,
155 CH_UART2_RX, 159 CH_UART2_RX,
156#endif 160#endif
157#ifdef CONFIG_BFIN_UART2_CTSRTS 161#ifdef CONFIG_SERIAL_BFIN_CTSRTS
158 CONFIG_UART2_CTS_PIN, 162 CONFIG_UART2_CTS_PIN,
159 CONFIG_UART2_RTS_PIN, 163 CONFIG_UART2_RTS_PIN,
160#endif 164#endif
@@ -168,6 +172,10 @@ struct bfin_serial_res bfin_serial_resource[] = {
168 CH_UART3_TX, 172 CH_UART3_TX,
169 CH_UART3_RX, 173 CH_UART3_RX,
170#endif 174#endif
175#ifdef CONFIG_SERIAL_BFIN_CTSRTS
176 0,
177 0,
178#endif
171 }, 179 },
172#endif 180#endif
173}; 181};
diff --git a/arch/blackfin/mach-bf548/include/mach/gpio.h b/arch/blackfin/mach-bf548/include/mach/gpio.h
index bba82dc75f16..3a2051709787 100644
--- a/arch/blackfin/mach-bf548/include/mach/gpio.h
+++ b/arch/blackfin/mach-bf548/include/mach/gpio.h
@@ -195,17 +195,17 @@
195struct gpio_port_t { 195struct gpio_port_t {
196 unsigned short port_fer; 196 unsigned short port_fer;
197 unsigned short dummy1; 197 unsigned short dummy1;
198 unsigned short port_data; 198 unsigned short data;
199 unsigned short dummy2; 199 unsigned short dummy2;
200 unsigned short port_set; 200 unsigned short data_set;
201 unsigned short dummy3; 201 unsigned short dummy3;
202 unsigned short port_clear; 202 unsigned short data_clear;
203 unsigned short dummy4; 203 unsigned short dummy4;
204 unsigned short port_dir_set; 204 unsigned short dir_set;
205 unsigned short dummy5; 205 unsigned short dummy5;
206 unsigned short port_dir_clear; 206 unsigned short dir_clear;
207 unsigned short dummy6; 207 unsigned short dummy6;
208 unsigned short port_inen; 208 unsigned short inen;
209 unsigned short dummy7; 209 unsigned short dummy7;
210 unsigned int port_mux; 210 unsigned int port_mux;
211}; 211};
diff --git a/arch/blackfin/mach-bf548/include/mach/irq.h b/arch/blackfin/mach-bf548/include/mach/irq.h
index 60299a71e090..f194625f6821 100644
--- a/arch/blackfin/mach-bf548/include/mach/irq.h
+++ b/arch/blackfin/mach-bf548/include/mach/irq.h
@@ -123,8 +123,8 @@ Events (highest priority) EMU 0
123#define IRQ_MXVR_ERROR BFIN_IRQ(51) /* MXVR Status (Error) Interrupt */ 123#define IRQ_MXVR_ERROR BFIN_IRQ(51) /* MXVR Status (Error) Interrupt */
124#define IRQ_MXVR_MSG BFIN_IRQ(52) /* MXVR Message Interrupt */ 124#define IRQ_MXVR_MSG BFIN_IRQ(52) /* MXVR Message Interrupt */
125#define IRQ_MXVR_PKT BFIN_IRQ(53) /* MXVR Packet Interrupt */ 125#define IRQ_MXVR_PKT BFIN_IRQ(53) /* MXVR Packet Interrupt */
126#define IRQ_EPP1_ERROR BFIN_IRQ(54) /* EPPI1 Error Interrupt */ 126#define IRQ_EPPI1_ERROR BFIN_IRQ(54) /* EPPI1 Error Interrupt */
127#define IRQ_EPP2_ERROR BFIN_IRQ(55) /* EPPI2 Error Interrupt */ 127#define IRQ_EPPI2_ERROR BFIN_IRQ(55) /* EPPI2 Error Interrupt */
128#define IRQ_UART3_ERROR BFIN_IRQ(56) /* UART3 Status (Error) Interrupt */ 128#define IRQ_UART3_ERROR BFIN_IRQ(56) /* UART3 Status (Error) Interrupt */
129#define IRQ_HOST_ERROR BFIN_IRQ(57) /* HOST Status (Error) Interrupt */ 129#define IRQ_HOST_ERROR BFIN_IRQ(57) /* HOST Status (Error) Interrupt */
130#define IRQ_PIXC_ERROR BFIN_IRQ(59) /* PIXC Status (Error) Interrupt */ 130#define IRQ_PIXC_ERROR BFIN_IRQ(59) /* PIXC Status (Error) Interrupt */
@@ -361,8 +361,8 @@ Events (highest priority) EMU 0
361#define IRQ_UART2_ERR IRQ_UART2_ERROR 361#define IRQ_UART2_ERR IRQ_UART2_ERROR
362#define IRQ_CAN0_ERR IRQ_CAN0_ERROR 362#define IRQ_CAN0_ERR IRQ_CAN0_ERROR
363#define IRQ_MXVR_ERR IRQ_MXVR_ERROR 363#define IRQ_MXVR_ERR IRQ_MXVR_ERROR
364#define IRQ_EPP1_ERR IRQ_EPP1_ERROR 364#define IRQ_EPPI1_ERR IRQ_EPPI1_ERROR
365#define IRQ_EPP2_ERR IRQ_EPP2_ERROR 365#define IRQ_EPPI2_ERR IRQ_EPPI2_ERROR
366#define IRQ_UART3_ERR IRQ_UART3_ERROR 366#define IRQ_UART3_ERR IRQ_UART3_ERROR
367#define IRQ_HOST_ERR IRQ_HOST_ERROR 367#define IRQ_HOST_ERR IRQ_HOST_ERROR
368#define IRQ_PIXC_ERR IRQ_PIXC_ERROR 368#define IRQ_PIXC_ERR IRQ_PIXC_ERROR
diff --git a/arch/blackfin/mach-bf548/include/mach/portmux.h b/arch/blackfin/mach-bf548/include/mach/portmux.h
index 8177a567dcdb..ffb1d0a44b4d 100644
--- a/arch/blackfin/mach-bf548/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf548/include/mach/portmux.h
@@ -125,6 +125,7 @@
125#define P_KEY_COL2 (P_DEFINED | P_IDENT(GPIO_PD14) | P_FUNCT(3)) 125#define P_KEY_COL2 (P_DEFINED | P_IDENT(GPIO_PD14) | P_FUNCT(3))
126#define P_KEY_COL3 (P_DEFINED | P_IDENT(GPIO_PD15) | P_FUNCT(3)) 126#define P_KEY_COL3 (P_DEFINED | P_IDENT(GPIO_PD15) | P_FUNCT(3))
127 127
128#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL1
128#define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PE0) | P_FUNCT(0)) 129#define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PE0) | P_FUNCT(0))
129#define P_SPI0_MISO (P_DEFINED | P_IDENT(GPIO_PE1) | P_FUNCT(0)) 130#define P_SPI0_MISO (P_DEFINED | P_IDENT(GPIO_PE1) | P_FUNCT(0))
130#define P_SPI0_MOSI (P_DEFINED | P_IDENT(GPIO_PE2) | P_FUNCT(0)) 131#define P_SPI0_MOSI (P_DEFINED | P_IDENT(GPIO_PE2) | P_FUNCT(0))
diff --git a/arch/blackfin/mach-bf561/boards/Kconfig b/arch/blackfin/mach-bf561/boards/Kconfig
index e41a67b1fb53..e4bc6d7c5a6a 100644
--- a/arch/blackfin/mach-bf561/boards/Kconfig
+++ b/arch/blackfin/mach-bf561/boards/Kconfig
@@ -19,9 +19,4 @@ config BFIN561_BLUETECHNIX_CM
19 help 19 help
20 CM-BF561 support for EVAL- and DEV-Board. 20 CM-BF561 support for EVAL- and DEV-Board.
21 21
22config GENERIC_BF561_BOARD
23 bool "Generic"
24 help
25 Generic or Custom board support.
26
27endchoice 22endchoice
diff --git a/arch/blackfin/mach-bf561/boards/Makefile b/arch/blackfin/mach-bf561/boards/Makefile
index 04add010b568..3a152559e957 100644
--- a/arch/blackfin/mach-bf561/boards/Makefile
+++ b/arch/blackfin/mach-bf561/boards/Makefile
@@ -2,7 +2,6 @@
2# arch/blackfin/mach-bf561/boards/Makefile 2# arch/blackfin/mach-bf561/boards/Makefile
3# 3#
4 4
5obj-$(CONFIG_GENERIC_BF561_BOARD) += generic_board.o
6obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o 5obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o
7obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o 6obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o
8obj-$(CONFIG_BFIN561_TEPLA) += tepla.o 7obj-$(CONFIG_BFIN561_TEPLA) += tepla.o
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c
index 6880d1ebfe60..f623c6b0719f 100644
--- a/arch/blackfin/mach-bf561/boards/cm_bf561.c
+++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c
@@ -105,9 +105,9 @@ static struct bfin5xx_spi_chip ad9960_spi_chip_info = {
105}; 105};
106#endif 106#endif
107 107
108#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 108#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
109static struct bfin5xx_spi_chip spi_mmc_chip_info = { 109static struct bfin5xx_spi_chip mmc_spi_chip_info = {
110 .enable_dma = 1, 110 .enable_dma = 0,
111 .bits_per_word = 8, 111 .bits_per_word = 8,
112}; 112};
113#endif 113#endif
@@ -155,14 +155,13 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
155 .controller_data = &ad9960_spi_chip_info, 155 .controller_data = &ad9960_spi_chip_info,
156 }, 156 },
157#endif 157#endif
158#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 158#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
159 { 159 {
160 .modalias = "spi_mmc", 160 .modalias = "mmc_spi",
161 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 161 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
162 .bus_num = 0, 162 .bus_num = 0,
163 .chip_select = CONFIG_SPI_MMC_CS_CHAN, 163 .chip_select = 5,
164 .platform_data = NULL, 164 .controller_data = &mmc_spi_chip_info,
165 .controller_data = &spi_mmc_chip_info,
166 .mode = SPI_MODE_3, 165 .mode = SPI_MODE_3,
167 }, 166 },
168#endif 167#endif
diff --git a/arch/blackfin/mach-bf561/boards/generic_board.c b/arch/blackfin/mach-bf561/boards/generic_board.c
deleted file mode 100644
index 0ba366a0e696..000000000000
--- a/arch/blackfin/mach-bf561/boards/generic_board.c
+++ /dev/null
@@ -1,113 +0,0 @@
1/*
2 * File: arch/blackfin/mach-bf561/generic_board.c
3 * Based on: arch/blackfin/mach-bf533/ezkit.c
4 * Author: Aidan Williams <aidan@nicta.com.au>
5 *
6 * Created:
7 * Description:
8 *
9 * Modified:
10 * Copyright 2005 National ICT Australia (NICTA)
11 * Copyright 2004-2006 Analog Devices Inc.
12 *
13 * Bugs: Enter bugs at http://blackfin.uclinux.org/
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2 of the License, or
18 * (at your option) any later version.
19 *
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this program; if not, see the file COPYING, or write
27 * to the Free Software Foundation, Inc.,
28 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 */
30
31#include <linux/device.h>
32#include <linux/platform_device.h>
33#include <linux/irq.h>
34
35const char bfin_board_name[] = "UNKNOWN BOARD";
36
37/*
38 * Driver needs to know address, irq and flag pin.
39 */
40#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
41static struct resource smc91x_resources[] = {
42 {
43 .start = 0x2C010300,
44 .end = 0x2C010300 + 16,
45 .flags = IORESOURCE_MEM,
46 }, {
47 .start = IRQ_PROG_INTB,
48 .end = IRQ_PROG_INTB,
49 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
50 }, {
51 .start = IRQ_PF9,
52 .end = IRQ_PF9,
53 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
54 },
55};
56
57static struct platform_device smc91x_device = {
58 .name = "smc91x",
59 .id = 0,
60 .num_resources = ARRAY_SIZE(smc91x_resources),
61 .resource = smc91x_resources,
62};
63#endif
64
65#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
66#ifdef CONFIG_BFIN_SIR0
67static struct resource bfin_sir0_resources[] = {
68 {
69 .start = 0xFFC00400,
70 .end = 0xFFC004FF,
71 .flags = IORESOURCE_MEM,
72 },
73 {
74 .start = IRQ_UART0_RX,
75 .end = IRQ_UART0_RX+1,
76 .flags = IORESOURCE_IRQ,
77 },
78 {
79 .start = CH_UART0_RX,
80 .end = CH_UART0_RX+1,
81 .flags = IORESOURCE_DMA,
82 },
83};
84
85static struct platform_device bfin_sir0_device = {
86 .name = "bfin_sir",
87 .id = 0,
88 .num_resources = ARRAY_SIZE(bfin_sir0_resources),
89 .resource = bfin_sir0_resources,
90};
91#endif
92#endif
93
94static struct platform_device *generic_board_devices[] __initdata = {
95#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
96 &smc91x_device,
97#endif
98
99#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
100#ifdef CONFIG_BFIN_SIR0
101 &bfin_sir0_device,
102#endif
103#endif
104};
105
106static int __init generic_board_init(void)
107{
108 printk(KERN_INFO "%s(): registering device resources\n", __func__);
109 return platform_add_devices(generic_board_devices,
110 ARRAY_SIZE(generic_board_devices));
111}
112
113arch_initcall(generic_board_init);
diff --git a/arch/blackfin/mach-bf561/include/mach/anomaly.h b/arch/blackfin/mach-bf561/include/mach/anomaly.h
index 1a9e17562821..d0b0b3506440 100644
--- a/arch/blackfin/mach-bf561/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf561/include/mach/anomaly.h
@@ -2,7 +2,7 @@
2 * File: include/asm-blackfin/mach-bf561/anomaly.h 2 * File: include/asm-blackfin/mach-bf561/anomaly.h
3 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 3 * Bugs: Enter bugs at http://blackfin.uclinux.org/
4 * 4 *
5 * Copyright (C) 2004-2008 Analog Devices Inc. 5 * Copyright (C) 2004-2009 Analog Devices Inc.
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
8 8
@@ -224,7 +224,7 @@
224#define ANOMALY_05000301 (1) 224#define ANOMALY_05000301 (1)
225/* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ 225/* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */
226#define ANOMALY_05000302 (1) 226#define ANOMALY_05000302 (1)
227/* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ 227/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */
228#define ANOMALY_05000305 (__SILICON_REVISION__ < 5) 228#define ANOMALY_05000305 (__SILICON_REVISION__ < 5)
229/* SCKELOW Bit Does Not Maintain State Through Hibernate */ 229/* SCKELOW Bit Does Not Maintain State Through Hibernate */
230#define ANOMALY_05000307 (__SILICON_REVISION__ < 5) 230#define ANOMALY_05000307 (__SILICON_REVISION__ < 5)
@@ -283,8 +283,11 @@
283#define ANOMALY_05000273 (0) 283#define ANOMALY_05000273 (0)
284#define ANOMALY_05000311 (0) 284#define ANOMALY_05000311 (0)
285#define ANOMALY_05000353 (1) 285#define ANOMALY_05000353 (1)
286#define ANOMALY_05000380 (0)
286#define ANOMALY_05000386 (1) 287#define ANOMALY_05000386 (1)
287#define ANOMALY_05000432 (0) 288#define ANOMALY_05000432 (0)
288#define ANOMALY_05000435 (0) 289#define ANOMALY_05000435 (0)
290#define ANOMALY_05000447 (0)
291#define ANOMALY_05000448 (0)
289 292
290#endif 293#endif
diff --git a/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h b/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
index 043bfcf26c52..ca8c5f645209 100644
--- a/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
@@ -134,7 +134,7 @@ struct bfin_serial_res bfin_serial_resource[] = {
134 CH_UART_TX, 134 CH_UART_TX,
135 CH_UART_RX, 135 CH_UART_RX,
136#endif 136#endif
137#ifdef CONFIG_BFIN_UART0_CTSRTS 137#ifdef CONFIG_SERIAL_BFIN_CTSRTS
138 CONFIG_UART0_CTS_PIN, 138 CONFIG_UART0_CTS_PIN,
139 CONFIG_UART0_RTS_PIN, 139 CONFIG_UART0_RTS_PIN,
140#endif 140#endif
diff --git a/arch/blackfin/mach-bf561/include/mach/defBF561.h b/arch/blackfin/mach-bf561/include/mach/defBF561.h
index d7c509759659..cf922295f4ce 100644
--- a/arch/blackfin/mach-bf561/include/mach/defBF561.h
+++ b/arch/blackfin/mach-bf561/include/mach/defBF561.h
@@ -1106,6 +1106,8 @@
1106#define DLEN_8 0x0 /* PPI Data Length mask for DLEN=8 */ 1106#define DLEN_8 0x0 /* PPI Data Length mask for DLEN=8 */
1107#define DLEN(x) (((x-9) & 0x07) << 11) /* PPI Data Length (only works for x=10-->x=16) */ 1107#define DLEN(x) (((x-9) & 0x07) << 11) /* PPI Data Length (only works for x=10-->x=16) */
1108#define POL 0x0000C000 /* PPI Signal Polarities */ 1108#define POL 0x0000C000 /* PPI Signal Polarities */
1109#define POLC 0x4000 /* PPI Clock Polarity */
1110#define POLS 0x8000 /* PPI Frame Sync Polarity */
1109 1111
1110/* PPI_STATUS Masks */ 1112/* PPI_STATUS Masks */
1111#define FLD 0x00000400 /* Field Indicator */ 1113#define FLD 0x00000400 /* Field Indicator */
diff --git a/arch/blackfin/mach-bf561/include/mach/portmux.h b/arch/blackfin/mach-bf561/include/mach/portmux.h
index a6ee8206efb6..2e5ad6347dea 100644
--- a/arch/blackfin/mach-bf561/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf561/include/mach/portmux.h
@@ -85,5 +85,6 @@
85#define P_SPI0_MOSI (P_DONTCARE) 85#define P_SPI0_MOSI (P_DONTCARE)
86#define P_SPI0_MISO (P_DONTCARE) 86#define P_SPI0_MISO (P_DONTCARE)
87#define P_SPI0_SCK (P_DONTCARE) 87#define P_SPI0_SCK (P_DONTCARE)
88#define P_DEFAULT_BOOT_SPI_CS P_SPI0_SSEL2
88 89
89#endif /* _MACH_PORTMUX_H_ */ 90#endif /* _MACH_PORTMUX_H_ */
diff --git a/arch/blackfin/mach-common/arch_checks.c b/arch/blackfin/mach-common/arch_checks.c
index 98133b968f7b..80d39b2f9db2 100644
--- a/arch/blackfin/mach-common/arch_checks.c
+++ b/arch/blackfin/mach-common/arch_checks.c
@@ -62,3 +62,12 @@
62#if (CONFIG_BOOT_LOAD & 0x3) 62#if (CONFIG_BOOT_LOAD & 0x3)
63# error "The kernel load address must be 4 byte aligned" 63# error "The kernel load address must be 4 byte aligned"
64#endif 64#endif
65
66/* The entire kernel must be able to make a 24bit pcrel call to start of L1 */
67#if ((0xffffffff - L1_CODE_START + 1) + CONFIG_BOOT_LOAD) > 0x1000000
68# error "The kernel load address is too high; keep it below 10meg for safety"
69#endif
70
71#if ANOMALY_05000448
72# error You are using a part with anomaly 05000448, this issue causes random memory read/write failures - that means random crashes.
73#endif
diff --git a/arch/blackfin/mach-common/cache.S b/arch/blackfin/mach-common/cache.S
index 3c98dacbf289..aa0648c6a9fe 100644
--- a/arch/blackfin/mach-common/cache.S
+++ b/arch/blackfin/mach-common/cache.S
@@ -66,11 +66,33 @@
66 66
67/* Invalidate all instruction cache lines assocoiated with this memory area */ 67/* Invalidate all instruction cache lines assocoiated with this memory area */
68ENTRY(_blackfin_icache_flush_range) 68ENTRY(_blackfin_icache_flush_range)
69/*
70 * Walkaround to avoid loading wrong instruction after invalidating icache
71 * and following sequence is met.
72 *
73 * 1) One instruction address is cached in the instruction cache.
74 * 2) This instruction in SDRAM is changed.
75 * 3) IFLASH[P0] is executed only once in blackfin_icache_flush_range().
76 * 4) This instruction is executed again, but the old one is loaded.
77 */
78 P0 = R0;
79 IFLUSH[P0];
69 do_flush IFLUSH, , nop 80 do_flush IFLUSH, , nop
70ENDPROC(_blackfin_icache_flush_range) 81ENDPROC(_blackfin_icache_flush_range)
71 82
72/* Flush all cache lines assocoiated with this area of memory. */ 83/* Flush all cache lines assocoiated with this area of memory. */
73ENTRY(_blackfin_icache_dcache_flush_range) 84ENTRY(_blackfin_icache_dcache_flush_range)
85/*
86 * Walkaround to avoid loading wrong instruction after invalidating icache
87 * and following sequence is met.
88 *
89 * 1) One instruction address is cached in the instruction cache.
90 * 2) This instruction in SDRAM is changed.
91 * 3) IFLASH[P0] is executed only once in blackfin_icache_flush_range().
92 * 4) This instruction is executed again, but the old one is loaded.
93 */
94 P0 = R0;
95 IFLUSH[P0];
74 do_flush FLUSH, IFLUSH 96 do_flush FLUSH, IFLUSH
75ENDPROC(_blackfin_icache_dcache_flush_range) 97ENDPROC(_blackfin_icache_dcache_flush_range)
76 98
diff --git a/arch/blackfin/mach-common/clocks-init.c b/arch/blackfin/mach-common/clocks-init.c
index 5d182abefc7b..35393651359b 100644
--- a/arch/blackfin/mach-common/clocks-init.c
+++ b/arch/blackfin/mach-common/clocks-init.c
@@ -14,9 +14,10 @@
14#include <asm/clocks.h> 14#include <asm/clocks.h>
15#include <asm/mem_init.h> 15#include <asm/mem_init.h>
16 16
17#define SDGCTL_WIDTH (1 << 31) /* SDRAM external data path width */
17#define PLL_CTL_VAL \ 18#define PLL_CTL_VAL \
18 (((CONFIG_VCO_MULT & 63) << 9) | CLKIN_HALF | \ 19 (((CONFIG_VCO_MULT & 63) << 9) | CLKIN_HALF | \
19 (PLL_BYPASS << 8) | (ANOMALY_05000265 ? 0x8000 : 0)) 20 (PLL_BYPASS << 8) | (ANOMALY_05000305 ? 0 : 0x8000))
20 21
21__attribute__((l1_text)) 22__attribute__((l1_text))
22static void do_sync(void) 23static void do_sync(void)
@@ -76,7 +77,7 @@ void init_clocks(void)
76 bfin_write_PLL_DIV(CONFIG_CCLK_ACT_DIV | CONFIG_SCLK_DIV); 77 bfin_write_PLL_DIV(CONFIG_CCLK_ACT_DIV | CONFIG_SCLK_DIV);
77#ifdef EBIU_SDGCTL 78#ifdef EBIU_SDGCTL
78 bfin_write_EBIU_SDRRC(mem_SDRRC); 79 bfin_write_EBIU_SDRRC(mem_SDRRC);
79 bfin_write_EBIU_SDGCTL(mem_SDGCTL); 80 bfin_write_EBIU_SDGCTL((bfin_read_EBIU_SDGCTL() & SDGCTL_WIDTH) | mem_SDGCTL);
80#else 81#else
81 bfin_write_EBIU_RSTCTL(bfin_read_EBIU_RSTCTL() & ~(SRREQ)); 82 bfin_write_EBIU_RSTCTL(bfin_read_EBIU_RSTCTL() & ~(SRREQ));
82 do_sync(); 83 do_sync();
diff --git a/arch/blackfin/mach-common/dpmc_modes.S b/arch/blackfin/mach-common/dpmc_modes.S
index 4da50bcd9300..8009a512fb11 100644
--- a/arch/blackfin/mach-common/dpmc_modes.S
+++ b/arch/blackfin/mach-common/dpmc_modes.S
@@ -376,10 +376,22 @@ ENTRY(_do_hibernate)
376#endif 376#endif
377 377
378#ifdef PINT0_ASSIGN 378#ifdef PINT0_ASSIGN
379 PM_SYS_PUSH(PINT0_MASK_SET)
380 PM_SYS_PUSH(PINT1_MASK_SET)
381 PM_SYS_PUSH(PINT2_MASK_SET)
382 PM_SYS_PUSH(PINT3_MASK_SET)
379 PM_SYS_PUSH(PINT0_ASSIGN) 383 PM_SYS_PUSH(PINT0_ASSIGN)
380 PM_SYS_PUSH(PINT1_ASSIGN) 384 PM_SYS_PUSH(PINT1_ASSIGN)
381 PM_SYS_PUSH(PINT2_ASSIGN) 385 PM_SYS_PUSH(PINT2_ASSIGN)
382 PM_SYS_PUSH(PINT3_ASSIGN) 386 PM_SYS_PUSH(PINT3_ASSIGN)
387 PM_SYS_PUSH(PINT0_INVERT_SET)
388 PM_SYS_PUSH(PINT1_INVERT_SET)
389 PM_SYS_PUSH(PINT2_INVERT_SET)
390 PM_SYS_PUSH(PINT3_INVERT_SET)
391 PM_SYS_PUSH(PINT0_EDGE_SET)
392 PM_SYS_PUSH(PINT1_EDGE_SET)
393 PM_SYS_PUSH(PINT2_EDGE_SET)
394 PM_SYS_PUSH(PINT3_EDGE_SET)
383#endif 395#endif
384 396
385 PM_SYS_PUSH(EBIU_AMBCTL0) 397 PM_SYS_PUSH(EBIU_AMBCTL0)
@@ -714,10 +726,22 @@ ENTRY(_do_hibernate)
714 PM_SYS_POP(EBIU_AMBCTL0) 726 PM_SYS_POP(EBIU_AMBCTL0)
715 727
716#ifdef PINT0_ASSIGN 728#ifdef PINT0_ASSIGN
729 PM_SYS_POP(PINT3_EDGE_SET)
730 PM_SYS_POP(PINT2_EDGE_SET)
731 PM_SYS_POP(PINT1_EDGE_SET)
732 PM_SYS_POP(PINT0_EDGE_SET)
733 PM_SYS_POP(PINT3_INVERT_SET)
734 PM_SYS_POP(PINT2_INVERT_SET)
735 PM_SYS_POP(PINT1_INVERT_SET)
736 PM_SYS_POP(PINT0_INVERT_SET)
717 PM_SYS_POP(PINT3_ASSIGN) 737 PM_SYS_POP(PINT3_ASSIGN)
718 PM_SYS_POP(PINT2_ASSIGN) 738 PM_SYS_POP(PINT2_ASSIGN)
719 PM_SYS_POP(PINT1_ASSIGN) 739 PM_SYS_POP(PINT1_ASSIGN)
720 PM_SYS_POP(PINT0_ASSIGN) 740 PM_SYS_POP(PINT0_ASSIGN)
741 PM_SYS_POP(PINT3_MASK_SET)
742 PM_SYS_POP(PINT2_MASK_SET)
743 PM_SYS_POP(PINT1_MASK_SET)
744 PM_SYS_POP(PINT0_MASK_SET)
721#endif 745#endif
722 746
723#ifdef SICA_IWR1 747#ifdef SICA_IWR1
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index fae774651374..21e65a339a22 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -151,13 +151,6 @@ ENTRY(_ex_syscall)
151 jump.s _bfin_return_from_exception; 151 jump.s _bfin_return_from_exception;
152ENDPROC(_ex_syscall) 152ENDPROC(_ex_syscall)
153 153
154ENTRY(_ex_soft_bp)
155 r7 = retx;
156 r7 += -2;
157 retx = r7;
158 jump.s _ex_trap_c;
159ENDPROC(_ex_soft_bp)
160
161ENTRY(_ex_single_step) 154ENTRY(_ex_single_step)
162 /* If we just returned from an interrupt, the single step event is 155 /* If we just returned from an interrupt, the single step event is
163 for the RTI instruction. */ 156 for the RTI instruction. */
@@ -607,6 +600,19 @@ ENTRY(_system_call)
607 p2 = [p2]; 600 p2 = [p2];
608 601
609 [p2+(TASK_THREAD+THREAD_KSP)] = sp; 602 [p2+(TASK_THREAD+THREAD_KSP)] = sp;
603#ifdef CONFIG_IPIPE
604 r0 = sp;
605 SP += -12;
606 call ___ipipe_syscall_root;
607 SP += 12;
608 cc = r0 == 1;
609 if cc jump .Lsyscall_really_exit;
610 cc = r0 == -1;
611 if cc jump .Lresume_userspace;
612 r3 = [sp + PT_R3];
613 r4 = [sp + PT_R4];
614 p0 = [sp + PT_ORIG_P0];
615#endif /* CONFIG_IPIPE */
610 616
611 /* Check the System Call */ 617 /* Check the System Call */
612 r7 = __NR_syscall; 618 r7 = __NR_syscall;
@@ -661,6 +667,17 @@ ENTRY(_system_call)
661 r7 = r7 & r4; 667 r7 = r7 & r4;
662 668
663.Lsyscall_resched: 669.Lsyscall_resched:
670#ifdef CONFIG_IPIPE
671 cc = BITTST(r7, TIF_IRQ_SYNC);
672 if !cc jump .Lsyscall_no_irqsync;
673 [--sp] = reti;
674 r0 = [sp++];
675 SP += -12;
676 call ___ipipe_sync_root;
677 SP += 12;
678 jump .Lresume_userspace_1;
679.Lsyscall_no_irqsync:
680#endif
664 cc = BITTST(r7, TIF_NEED_RESCHED); 681 cc = BITTST(r7, TIF_NEED_RESCHED);
665 if !cc jump .Lsyscall_sigpending; 682 if !cc jump .Lsyscall_sigpending;
666 683
@@ -692,6 +709,10 @@ ENTRY(_system_call)
692.Lsyscall_really_exit: 709.Lsyscall_really_exit:
693 r5 = [sp + PT_RESERVED]; 710 r5 = [sp + PT_RESERVED];
694 rets = r5; 711 rets = r5;
712#ifdef CONFIG_IPIPE
713 [--sp] = reti;
714 r5 = [sp++];
715#endif /* CONFIG_IPIPE */
695 rts; 716 rts;
696ENDPROC(_system_call) 717ENDPROC(_system_call)
697 718
@@ -778,6 +799,15 @@ _new_old_task:
778ENDPROC(_resume) 799ENDPROC(_resume)
779 800
780ENTRY(_ret_from_exception) 801ENTRY(_ret_from_exception)
802#ifdef CONFIG_IPIPE
803 [--sp] = rets;
804 SP += -12;
805 call ___ipipe_check_root
806 SP += 12
807 rets = [sp++];
808 cc = r0 == 0;
809 if cc jump 4f; /* not on behalf of Linux, get out */
810#endif /* CONFIG_IPIPE */
781 p2.l = lo(IPEND); 811 p2.l = lo(IPEND);
782 p2.h = hi(IPEND); 812 p2.h = hi(IPEND);
783 813
@@ -834,6 +864,28 @@ ENTRY(_ret_from_exception)
834 rts; 864 rts;
835ENDPROC(_ret_from_exception) 865ENDPROC(_ret_from_exception)
836 866
867#ifdef CONFIG_IPIPE
868
869_sync_root_irqs:
870 [--sp] = reti; /* Reenable interrupts */
871 r0 = [sp++];
872 jump.l ___ipipe_sync_root
873
874_resume_kernel_from_int:
875 r0.l = _sync_root_irqs
876 r0.h = _sync_root_irqs
877 [--sp] = rets;
878 [--sp] = ( r7:4, p5:3 );
879 SP += -12;
880 call ___ipipe_call_irqtail
881 SP += 12;
882 ( r7:4, p5:3 ) = [sp++];
883 rets = [sp++];
884 rts
885#else
886#define _resume_kernel_from_int 2f
887#endif
888
837ENTRY(_return_from_int) 889ENTRY(_return_from_int)
838 /* If someone else already raised IRQ 15, do nothing. */ 890 /* If someone else already raised IRQ 15, do nothing. */
839 csync; 891 csync;
@@ -855,7 +907,7 @@ ENTRY(_return_from_int)
855 r1 = r0 - r1; 907 r1 = r0 - r1;
856 r2 = r0 & r1; 908 r2 = r0 & r1;
857 cc = r2 == 0; 909 cc = r2 == 0;
858 if !cc jump 2f; 910 if !cc jump _resume_kernel_from_int;
859 911
860 /* Lower the interrupt level to 15. */ 912 /* Lower the interrupt level to 15. */
861 p0.l = lo(EVT15); 913 p0.l = lo(EVT15);
@@ -1087,7 +1139,7 @@ ENTRY(_ex_table)
1087 * EXCPT instruction can provide 4 bits of EXCAUSE, allowing 16 to be user defined 1139 * EXCPT instruction can provide 4 bits of EXCAUSE, allowing 16 to be user defined
1088 */ 1140 */
1089 .long _ex_syscall /* 0x00 - User Defined - Linux Syscall */ 1141 .long _ex_syscall /* 0x00 - User Defined - Linux Syscall */
1090 .long _ex_soft_bp /* 0x01 - User Defined - Software breakpoint */ 1142 .long _ex_trap_c /* 0x01 - User Defined - Software breakpoint */
1091#ifdef CONFIG_KGDB 1143#ifdef CONFIG_KGDB
1092 .long _ex_trap_c /* 0x02 - User Defined - KGDB initial connection 1144 .long _ex_trap_c /* 0x02 - User Defined - KGDB initial connection
1093 and break signal trap */ 1145 and break signal trap */
diff --git a/arch/blackfin/mach-common/head.S b/arch/blackfin/mach-common/head.S
index e1e42c029e15..698d4c05947e 100644
--- a/arch/blackfin/mach-common/head.S
+++ b/arch/blackfin/mach-common/head.S
@@ -17,6 +17,19 @@
17 17
18__INIT 18__INIT
19 19
20ENTRY(__init_clear_bss)
21 r2 = r2 - r1;
22 cc = r2 == 0;
23 if cc jump .L_bss_done;
24 r2 >>= 2;
25 p1 = r1;
26 p2 = r2;
27 lsetup (1f, 1f) lc0 = p2;
281: [p1++] = r0;
29.L_bss_done:
30 rts;
31ENDPROC(__init_clear_bss)
32
20#define INITIAL_STACK (L1_SCRATCH_START + L1_SCRATCH_LENGTH - 12) 33#define INITIAL_STACK (L1_SCRATCH_START + L1_SCRATCH_LENGTH - 12)
21 34
22ENTRY(__start) 35ENTRY(__start)
@@ -144,6 +157,35 @@ ENTRY(__start)
144 call _init_early_exception_vectors; 157 call _init_early_exception_vectors;
145#endif 158#endif
146 159
160 r0 = 0 (x);
161 /* Zero out all of the fun bss regions */
162#if L1_DATA_A_LENGTH > 0
163 r1.l = __sbss_l1;
164 r1.h = __sbss_l1;
165 r2.l = __ebss_l1;
166 r2.h = __ebss_l1;
167 call __init_clear_bss
168#endif
169#if L1_DATA_B_LENGTH > 0
170 r1.l = __sbss_b_l1;
171 r1.h = __sbss_b_l1;
172 r2.l = __ebss_b_l1;
173 r2.h = __ebss_b_l1;
174 call __init_clear_bss
175#endif
176#if L2_LENGTH > 0
177 r1.l = __sbss_l2;
178 r1.h = __sbss_l2;
179 r2.l = __ebss_l2;
180 r2.h = __ebss_l2;
181 call __init_clear_bss
182#endif
183 r1.l = ___bss_start;
184 r1.h = ___bss_start;
185 r2.l = ___bss_stop;
186 r2.h = ___bss_stop;
187 call __init_clear_bss
188
147 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ 189 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */
148 call _bfin_relocate_l1_mem; 190 call _bfin_relocate_l1_mem;
149#ifdef CONFIG_BFIN_KERNEL_CLOCK 191#ifdef CONFIG_BFIN_KERNEL_CLOCK
@@ -185,19 +227,6 @@ ENDPROC(__start)
185# define WDOG_CTL WDOGA_CTL 227# define WDOG_CTL WDOGA_CTL
186#endif 228#endif
187 229
188ENTRY(__init_clear_bss)
189 r2 = r2 - r1;
190 cc = r2 == 0;
191 if cc jump .L_bss_done;
192 r2 >>= 2;
193 p1 = r1;
194 p2 = r2;
195 lsetup (1f, 1f) lc0 = p2;
1961: [p1++] = r0;
197.L_bss_done:
198 rts;
199ENDPROC(__init_clear_bss)
200
201ENTRY(_real_start) 230ENTRY(_real_start)
202 /* Enable nested interrupts */ 231 /* Enable nested interrupts */
203 [--sp] = reti; 232 [--sp] = reti;
@@ -209,35 +238,6 @@ ENTRY(_real_start)
209 w[p0] = r0; 238 w[p0] = r0;
210 ssync; 239 ssync;
211 240
212 r0 = 0 (x);
213 /* Zero out all of the fun bss regions */
214#if L1_DATA_A_LENGTH > 0
215 r1.l = __sbss_l1;
216 r1.h = __sbss_l1;
217 r2.l = __ebss_l1;
218 r2.h = __ebss_l1;
219 call __init_clear_bss
220#endif
221#if L1_DATA_B_LENGTH > 0
222 r1.l = __sbss_b_l1;
223 r1.h = __sbss_b_l1;
224 r2.l = __ebss_b_l1;
225 r2.h = __ebss_b_l1;
226 call __init_clear_bss
227#endif
228#if L2_LENGTH > 0
229 r1.l = __sbss_l2;
230 r1.h = __sbss_l2;
231 r2.l = __ebss_l2;
232 r2.h = __ebss_l2;
233 call __init_clear_bss
234#endif
235 r1.l = ___bss_start;
236 r1.h = ___bss_start;
237 r2.l = ___bss_stop;
238 r2.h = ___bss_stop;
239 call __init_clear_bss
240
241 /* Pass the u-boot arguments to the global value command line */ 241 /* Pass the u-boot arguments to the global value command line */
242 R0 = R7; 242 R0 = R7;
243 call _cmdline_init; 243 call _cmdline_init;
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S
index 473df0f7fa78..0069c2dd4625 100644
--- a/arch/blackfin/mach-common/interrupt.S
+++ b/arch/blackfin/mach-common/interrupt.S
@@ -195,7 +195,7 @@ ENDPROC(_evt_ivhw)
195/* Interrupt routine for evt2 (NMI). 195/* Interrupt routine for evt2 (NMI).
196 * We don't actually use this, so just return. 196 * We don't actually use this, so just return.
197 * For inner circle type details, please see: 197 * For inner circle type details, please see:
198 * http://docs.blackfin.uclinux.org/doku.php?id=linux:nmi 198 * http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:nmi
199 */ 199 */
200ENTRY(_evt_nmi) 200ENTRY(_evt_nmi)
201.weak _evt_nmi 201.weak _evt_nmi
@@ -235,6 +235,7 @@ ENDPROC(_evt_system_call)
235 235
236#ifdef CONFIG_IPIPE 236#ifdef CONFIG_IPIPE
237ENTRY(___ipipe_call_irqtail) 237ENTRY(___ipipe_call_irqtail)
238 p0 = r0;
238 r0.l = 1f; 239 r0.l = 1f;
239 r0.h = 1f; 240 r0.h = 1f;
240 reti = r0; 241 reti = r0;
@@ -242,9 +243,6 @@ ENTRY(___ipipe_call_irqtail)
2421: 2431:
243 [--sp] = rets; 244 [--sp] = rets;
244 [--sp] = ( r7:4, p5:3 ); 245 [--sp] = ( r7:4, p5:3 );
245 p0.l = ___ipipe_irq_tail_hook;
246 p0.h = ___ipipe_irq_tail_hook;
247 p0 = [p0];
248 sp += -12; 246 sp += -12;
249 call (p0); 247 call (p0);
250 sp += 12; 248 sp += 12;
@@ -259,7 +257,7 @@ ENTRY(___ipipe_call_irqtail)
259 p0.h = hi(EVT14); 257 p0.h = hi(EVT14);
260 [p0] = r0; 258 [p0] = r0;
261 csync; 259 csync;
262 r0 = 0x401f; 260 r0 = 0x401f (z);
263 sti r0; 261 sti r0;
264 raise 14; 262 raise 14;
265 [--sp] = reti; /* IRQs on. */ 263 [--sp] = reti; /* IRQs on. */
@@ -277,11 +275,7 @@ ENTRY(___ipipe_call_irqtail)
277 p0.h = _bfin_irq_flags; 275 p0.h = _bfin_irq_flags;
278 r0 = [p0]; 276 r0 = [p0];
279 sti r0; 277 sti r0;
280#if 0 /* FIXME: this actually raises scheduling latencies */
281 /* Reenable interrupts */
282 [--sp] = reti;
283 r0 = [sp++];
284#endif
285 rts; 278 rts;
286ENDPROC(___ipipe_call_irqtail) 279ENDPROC(___ipipe_call_irqtail)
280
287#endif /* CONFIG_IPIPE */ 281#endif /* CONFIG_IPIPE */
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index 1bba6030dce9..a7d7b2dd4059 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -161,11 +161,15 @@ static void bfin_core_unmask_irq(unsigned int irq)
161 161
162static void bfin_internal_mask_irq(unsigned int irq) 162static void bfin_internal_mask_irq(unsigned int irq)
163{ 163{
164 unsigned long flags;
165
164#ifdef CONFIG_BF53x 166#ifdef CONFIG_BF53x
167 local_irq_save_hw(flags);
165 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() & 168 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() &
166 ~(1 << SIC_SYSIRQ(irq))); 169 ~(1 << SIC_SYSIRQ(irq)));
167#else 170#else
168 unsigned mask_bank, mask_bit; 171 unsigned mask_bank, mask_bit;
172 local_irq_save_hw(flags);
169 mask_bank = SIC_SYSIRQ(irq) / 32; 173 mask_bank = SIC_SYSIRQ(irq) / 32;
170 mask_bit = SIC_SYSIRQ(irq) % 32; 174 mask_bit = SIC_SYSIRQ(irq) % 32;
171 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) & 175 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) &
@@ -175,15 +179,20 @@ static void bfin_internal_mask_irq(unsigned int irq)
175 ~(1 << mask_bit)); 179 ~(1 << mask_bit));
176#endif 180#endif
177#endif 181#endif
182 local_irq_restore_hw(flags);
178} 183}
179 184
180static void bfin_internal_unmask_irq(unsigned int irq) 185static void bfin_internal_unmask_irq(unsigned int irq)
181{ 186{
187 unsigned long flags;
188
182#ifdef CONFIG_BF53x 189#ifdef CONFIG_BF53x
190 local_irq_save_hw(flags);
183 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() | 191 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() |
184 (1 << SIC_SYSIRQ(irq))); 192 (1 << SIC_SYSIRQ(irq)));
185#else 193#else
186 unsigned mask_bank, mask_bit; 194 unsigned mask_bank, mask_bit;
195 local_irq_save_hw(flags);
187 mask_bank = SIC_SYSIRQ(irq) / 32; 196 mask_bank = SIC_SYSIRQ(irq) / 32;
188 mask_bit = SIC_SYSIRQ(irq) % 32; 197 mask_bit = SIC_SYSIRQ(irq) % 32;
189 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) | 198 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) |
@@ -193,6 +202,7 @@ static void bfin_internal_unmask_irq(unsigned int irq)
193 (1 << mask_bit)); 202 (1 << mask_bit));
194#endif 203#endif
195#endif 204#endif
205 local_irq_restore_hw(flags);
196} 206}
197 207
198#ifdef CONFIG_PM 208#ifdef CONFIG_PM
@@ -390,7 +400,7 @@ static void bfin_demux_error_irq(unsigned int int_err_irq,
390static inline void bfin_set_irq_handler(unsigned irq, irq_flow_handler_t handle) 400static inline void bfin_set_irq_handler(unsigned irq, irq_flow_handler_t handle)
391{ 401{
392#ifdef CONFIG_IPIPE 402#ifdef CONFIG_IPIPE
393 _set_irq_handler(irq, handle_edge_irq); 403 _set_irq_handler(irq, handle_level_irq);
394#else 404#else
395 struct irq_desc *desc = irq_desc + irq; 405 struct irq_desc *desc = irq_desc + irq;
396 /* May not call generic set_irq_handler() due to spinlock 406 /* May not call generic set_irq_handler() due to spinlock
@@ -1055,13 +1065,18 @@ int __init init_arch_irq(void)
1055#endif 1065#endif
1056 default: 1066 default:
1057#ifdef CONFIG_IPIPE 1067#ifdef CONFIG_IPIPE
1058 /* 1068 /*
1059 * We want internal interrupt sources to be masked, because 1069 * We want internal interrupt sources to be
1060 * ISRs may trigger interrupts recursively (e.g. DMA), but 1070 * masked, because ISRs may trigger interrupts
1061 * interrupts are _not_ masked at CPU level. So let's handle 1071 * recursively (e.g. DMA), but interrupts are
1062 * them as level interrupts. 1072 * _not_ masked at CPU level. So let's handle
1063 */ 1073 * most of them as level interrupts, except
1064 set_irq_handler(irq, handle_level_irq); 1074 * the timer interrupt which is special.
1075 */
1076 if (irq == IRQ_SYSTMR || irq == IRQ_CORETMR)
1077 set_irq_handler(irq, handle_simple_irq);
1078 else
1079 set_irq_handler(irq, handle_level_irq);
1065#else /* !CONFIG_IPIPE */ 1080#else /* !CONFIG_IPIPE */
1066 set_irq_handler(irq, handle_simple_irq); 1081 set_irq_handler(irq, handle_simple_irq);
1067#endif /* !CONFIG_IPIPE */ 1082#endif /* !CONFIG_IPIPE */
@@ -1101,10 +1116,9 @@ int __init init_arch_irq(void)
1101 IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | 1116 IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 |
1102 IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; 1117 IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW;
1103 1118
1104#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) \ 1119#ifdef SIC_IWR0
1105 || defined(BF538_FAMILY) || defined(CONFIG_BF51x)
1106 bfin_write_SIC_IWR0(IWR_DISABLE_ALL); 1120 bfin_write_SIC_IWR0(IWR_DISABLE_ALL);
1107#if defined(CONFIG_BF52x) || defined(CONFIG_BF51x) 1121# ifdef SIC_IWR1
1108 /* BF52x/BF51x system reset does not properly reset SIC_IWR1 which 1122 /* BF52x/BF51x system reset does not properly reset SIC_IWR1 which
1109 * will screw up the bootrom as it relies on MDMA0/1 waking it 1123 * will screw up the bootrom as it relies on MDMA0/1 waking it
1110 * up from IDLE instructions. See this report for more info: 1124 * up from IDLE instructions. See this report for more info:
@@ -1114,10 +1128,8 @@ int __init init_arch_irq(void)
1114 bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11)); 1128 bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11));
1115 else 1129 else
1116 bfin_write_SIC_IWR1(IWR_DISABLE_ALL); 1130 bfin_write_SIC_IWR1(IWR_DISABLE_ALL);
1117#else 1131# endif
1118 bfin_write_SIC_IWR1(IWR_DISABLE_ALL); 1132# ifdef SIC_IWR2
1119#endif
1120# ifdef CONFIG_BF54x
1121 bfin_write_SIC_IWR2(IWR_DISABLE_ALL); 1133 bfin_write_SIC_IWR2(IWR_DISABLE_ALL);
1122# endif 1134# endif
1123#else 1135#else
@@ -1126,9 +1138,8 @@ int __init init_arch_irq(void)
1126 1138
1127#ifdef CONFIG_IPIPE 1139#ifdef CONFIG_IPIPE
1128 for (irq = 0; irq < NR_IRQS; irq++) { 1140 for (irq = 0; irq < NR_IRQS; irq++) {
1129 struct irq_desc *desc = irq_desc + irq; 1141 struct irq_desc *desc = irq_to_desc(irq);
1130 desc->ic_prio = __ipipe_get_irq_priority(irq); 1142 desc->ic_prio = __ipipe_get_irq_priority(irq);
1131 desc->thr_prio = __ipipe_get_irqthread_priority(irq);
1132 } 1143 }
1133#endif /* CONFIG_IPIPE */ 1144#endif /* CONFIG_IPIPE */
1134 1145
@@ -1211,76 +1222,21 @@ int __ipipe_get_irq_priority(unsigned irq)
1211 return IVG15; 1222 return IVG15;
1212} 1223}
1213 1224
1214int __ipipe_get_irqthread_priority(unsigned irq)
1215{
1216 int ient, prio;
1217 int demux_irq;
1218
1219 /* The returned priority value is rescaled to [0..IVG13+1]
1220 * with 0 being the lowest effective priority level. */
1221
1222 if (irq <= IRQ_CORETMR)
1223 return IVG13 - irq + 1;
1224
1225 /* GPIO IRQs are given the priority of the demux
1226 * interrupt. */
1227 if (IS_GPIOIRQ(irq)) {
1228#if defined(CONFIG_BF54x)
1229 u32 bank = PINT_2_BANK(irq2pint_lut[irq - SYS_IRQS]);
1230 demux_irq = (bank == 0 ? IRQ_PINT0 :
1231 bank == 1 ? IRQ_PINT1 :
1232 bank == 2 ? IRQ_PINT2 :
1233 IRQ_PINT3);
1234#elif defined(CONFIG_BF561)
1235 demux_irq = (irq >= IRQ_PF32 ? IRQ_PROG2_INTA :
1236 irq >= IRQ_PF16 ? IRQ_PROG1_INTA :
1237 IRQ_PROG0_INTA);
1238#elif defined(CONFIG_BF52x)
1239 demux_irq = (irq >= IRQ_PH0 ? IRQ_PORTH_INTA :
1240 irq >= IRQ_PG0 ? IRQ_PORTG_INTA :
1241 IRQ_PORTF_INTA);
1242#else
1243 demux_irq = irq;
1244#endif
1245 return IVG13 - PRIO_GPIODEMUX(demux_irq) + 1;
1246 }
1247
1248 /* The GPIO demux interrupt is given a lower priority
1249 * than the GPIO IRQs, so that its threaded handler
1250 * unmasks the interrupt line after the decoded IRQs
1251 * have been processed. */
1252 prio = PRIO_GPIODEMUX(irq);
1253 /* demux irq? */
1254 if (prio != -1)
1255 return IVG13 - prio;
1256
1257 for (ient = 0; ient < NR_PERI_INTS; ient++) {
1258 struct ivgx *ivg = ivg_table + ient;
1259 if (ivg->irqno == irq) {
1260 for (prio = 0; prio <= IVG13-IVG7; prio++) {
1261 if (ivg7_13[prio].ifirst <= ivg &&
1262 ivg7_13[prio].istop > ivg)
1263 return IVG7 - prio;
1264 }
1265 }
1266 }
1267
1268 return 0;
1269}
1270
1271/* Hw interrupts are disabled on entry (check SAVE_CONTEXT). */ 1225/* Hw interrupts are disabled on entry (check SAVE_CONTEXT). */
1272#ifdef CONFIG_DO_IRQ_L1 1226#ifdef CONFIG_DO_IRQ_L1
1273__attribute__((l1_text)) 1227__attribute__((l1_text))
1274#endif 1228#endif
1275asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs) 1229asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs)
1276{ 1230{
1231 struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr();
1232 struct ipipe_domain *this_domain = ipipe_current_domain;
1277 struct ivgx *ivg_stop = ivg7_13[vec-IVG7].istop; 1233 struct ivgx *ivg_stop = ivg7_13[vec-IVG7].istop;
1278 struct ivgx *ivg = ivg7_13[vec-IVG7].ifirst; 1234 struct ivgx *ivg = ivg7_13[vec-IVG7].ifirst;
1279 int irq; 1235 int irq, s;
1280 1236
1281 if (likely(vec == EVT_IVTMR_P)) { 1237 if (likely(vec == EVT_IVTMR_P)) {
1282 irq = IRQ_CORETMR; 1238 irq = IRQ_CORETMR;
1283 goto handle_irq; 1239 goto core_tick;
1284 } 1240 }
1285 1241
1286 SSYNC(); 1242 SSYNC();
@@ -1322,24 +1278,39 @@ asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs)
1322 irq = ivg->irqno; 1278 irq = ivg->irqno;
1323 1279
1324 if (irq == IRQ_SYSTMR) { 1280 if (irq == IRQ_SYSTMR) {
1281#ifdef CONFIG_GENERIC_CLOCKEVENTS
1282core_tick:
1283#else
1325 bfin_write_TIMER_STATUS(1); /* Latch TIMIL0 */ 1284 bfin_write_TIMER_STATUS(1); /* Latch TIMIL0 */
1285#endif
1326 /* This is basically what we need from the register frame. */ 1286 /* This is basically what we need from the register frame. */
1327 __raw_get_cpu_var(__ipipe_tick_regs).ipend = regs->ipend; 1287 __raw_get_cpu_var(__ipipe_tick_regs).ipend = regs->ipend;
1328 __raw_get_cpu_var(__ipipe_tick_regs).pc = regs->pc; 1288 __raw_get_cpu_var(__ipipe_tick_regs).pc = regs->pc;
1329 if (!ipipe_root_domain_p) 1289 if (this_domain != ipipe_root_domain)
1330 __raw_get_cpu_var(__ipipe_tick_regs).ipend |= 0x10;
1331 else
1332 __raw_get_cpu_var(__ipipe_tick_regs).ipend &= ~0x10; 1290 __raw_get_cpu_var(__ipipe_tick_regs).ipend &= ~0x10;
1291 else
1292 __raw_get_cpu_var(__ipipe_tick_regs).ipend |= 0x10;
1333 } 1293 }
1334 1294
1335handle_irq: 1295#ifndef CONFIG_GENERIC_CLOCKEVENTS
1296core_tick:
1297#endif
1298 if (this_domain == ipipe_root_domain) {
1299 s = __test_and_set_bit(IPIPE_SYNCDEFER_FLAG, &p->status);
1300 barrier();
1301 }
1336 1302
1337 ipipe_trace_irq_entry(irq); 1303 ipipe_trace_irq_entry(irq);
1338 __ipipe_handle_irq(irq, regs); 1304 __ipipe_handle_irq(irq, regs);
1339 ipipe_trace_irq_exit(irq); 1305 ipipe_trace_irq_exit(irq);
1340 1306
1341 if (ipipe_root_domain_p) 1307 if (this_domain == ipipe_root_domain) {
1342 return !test_bit(IPIPE_STALL_FLAG, &ipipe_root_cpudom_var(status)); 1308 set_thread_flag(TIF_IRQ_SYNC);
1309 if (!s) {
1310 __clear_bit(IPIPE_SYNCDEFER_FLAG, &p->status);
1311 return !test_bit(IPIPE_STALL_FLAG, &p->status);
1312 }
1313 }
1343 1314
1344 return 0; 1315 return 0;
1345} 1316}
diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c
index d3d70fd67c16..f48a6aebb49b 100644
--- a/arch/blackfin/mach-common/pm.c
+++ b/arch/blackfin/mach-common/pm.c
@@ -82,10 +82,9 @@ void bfin_pm_suspend_standby_enter(void)
82 82
83 bfin_pm_standby_restore(); 83 bfin_pm_standby_restore();
84 84
85#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) || \ 85#ifdef SIC_IWR0
86 defined(CONFIG_BF538) || defined(CONFIG_BF539) || defined(CONFIG_BF51x)
87 bfin_write_SIC_IWR0(IWR_DISABLE_ALL); 86 bfin_write_SIC_IWR0(IWR_DISABLE_ALL);
88#if defined(CONFIG_BF52x) || defined(CONFIG_BF51x) 87# ifdef SIC_IWR1
89 /* BF52x system reset does not properly reset SIC_IWR1 which 88 /* BF52x system reset does not properly reset SIC_IWR1 which
90 * will screw up the bootrom as it relies on MDMA0/1 waking it 89 * will screw up the bootrom as it relies on MDMA0/1 waking it
91 * up from IDLE instructions. See this report for more info: 90 * up from IDLE instructions. See this report for more info:
@@ -95,10 +94,8 @@ void bfin_pm_suspend_standby_enter(void)
95 bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11)); 94 bfin_write_SIC_IWR1(IWR_ENABLE(10) | IWR_ENABLE(11));
96 else 95 else
97 bfin_write_SIC_IWR1(IWR_DISABLE_ALL); 96 bfin_write_SIC_IWR1(IWR_DISABLE_ALL);
98#else 97# endif
99 bfin_write_SIC_IWR1(IWR_DISABLE_ALL); 98# ifdef SIC_IWR2
100#endif
101# ifdef CONFIG_BF54x
102 bfin_write_SIC_IWR2(IWR_DISABLE_ALL); 99 bfin_write_SIC_IWR2(IWR_DISABLE_ALL);
103# endif 100# endif
104#else 101#else
diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c
index 77c992847094..93eab6146079 100644
--- a/arch/blackfin/mach-common/smp.c
+++ b/arch/blackfin/mach-common/smp.c
@@ -158,10 +158,14 @@ static irqreturn_t ipi_handler(int irq, void *dev_instance)
158 kfree(msg); 158 kfree(msg);
159 break; 159 break;
160 case BFIN_IPI_CALL_FUNC: 160 case BFIN_IPI_CALL_FUNC:
161 spin_unlock(&msg_queue->lock);
161 ipi_call_function(cpu, msg); 162 ipi_call_function(cpu, msg);
163 spin_lock(&msg_queue->lock);
162 break; 164 break;
163 case BFIN_IPI_CPU_STOP: 165 case BFIN_IPI_CPU_STOP:
166 spin_unlock(&msg_queue->lock);
164 ipi_cpu_stop(cpu); 167 ipi_cpu_stop(cpu);
168 spin_lock(&msg_queue->lock);
165 kfree(msg); 169 kfree(msg);
166 break; 170 break;
167 default: 171 default:
@@ -457,7 +461,7 @@ void smp_icache_flush_range_others(unsigned long start, unsigned long end)
457 smp_flush_data.start = start; 461 smp_flush_data.start = start;
458 smp_flush_data.end = end; 462 smp_flush_data.end = end;
459 463
460 if (smp_call_function(&ipi_flush_icache, &smp_flush_data, 1)) 464 if (smp_call_function(&ipi_flush_icache, &smp_flush_data, 0))
461 printk(KERN_WARNING "SMP: failed to run I-cache flush request on other CPUs\n"); 465 printk(KERN_WARNING "SMP: failed to run I-cache flush request on other CPUs\n");
462} 466}
463EXPORT_SYMBOL_GPL(smp_icache_flush_range_others); 467EXPORT_SYMBOL_GPL(smp_icache_flush_range_others);
diff --git a/arch/blackfin/mm/init.c b/arch/blackfin/mm/init.c
index d0532b72bba5..9c3629b9a689 100644
--- a/arch/blackfin/mm/init.c
+++ b/arch/blackfin/mm/init.c
@@ -104,7 +104,7 @@ void __init paging_init(void)
104 } 104 }
105} 105}
106 106
107asmlinkage void init_pda(void) 107asmlinkage void __init init_pda(void)
108{ 108{
109 unsigned int cpu = raw_smp_processor_id(); 109 unsigned int cpu = raw_smp_processor_id();
110 110
diff --git a/arch/cris/arch-v10/kernel/entry.S b/arch/cris/arch-v10/kernel/entry.S
index ed171d389e65..72f5cd319b97 100644
--- a/arch/cris/arch-v10/kernel/entry.S
+++ b/arch/cris/arch-v10/kernel/entry.S
@@ -691,7 +691,7 @@ sys_call_table:
691 .long sys_uselib 691 .long sys_uselib
692 .long sys_swapon 692 .long sys_swapon
693 .long sys_reboot 693 .long sys_reboot
694 .long old_readdir 694 .long sys_old_readdir
695 .long old_mmap /* 90 */ 695 .long old_mmap /* 90 */
696 .long sys_munmap 696 .long sys_munmap
697 .long sys_truncate 697 .long sys_truncate
diff --git a/arch/cris/arch-v32/kernel/entry.S b/arch/cris/arch-v32/kernel/entry.S
index 7f6f93e6b70e..5e674c8f7c51 100644
--- a/arch/cris/arch-v32/kernel/entry.S
+++ b/arch/cris/arch-v32/kernel/entry.S
@@ -614,7 +614,7 @@ sys_call_table:
614 .long sys_uselib 614 .long sys_uselib
615 .long sys_swapon 615 .long sys_swapon
616 .long sys_reboot 616 .long sys_reboot
617 .long old_readdir 617 .long sys_old_readdir
618 .long old_mmap /* 90 */ 618 .long old_mmap /* 90 */
619 .long sys_munmap 619 .long sys_munmap
620 .long sys_truncate 620 .long sys_truncate
diff --git a/arch/cris/include/arch-v10/arch/byteorder.h b/arch/cris/include/arch-v10/arch/swab.h
index 255b646b7fa8..e4e847d8a05e 100644
--- a/arch/cris/include/arch-v10/arch/byteorder.h
+++ b/arch/cris/include/arch-v10/arch/swab.h
@@ -1,26 +1,30 @@
1#ifndef _CRIS_ARCH_BYTEORDER_H 1#ifndef _CRIS_ARCH_SWAB_H
2#define _CRIS_ARCH_BYTEORDER_H 2#define _CRIS_ARCH_SWAB_H
3 3
4#include <asm/types.h> 4#include <asm/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6 6
7#define __SWAB_64_THRU_32__
8
7/* we just define these two (as we can do the swap in a single 9/* we just define these two (as we can do the swap in a single
8 * asm instruction in CRIS) and the arch-independent files will put 10 * asm instruction in CRIS) and the arch-independent files will put
9 * them together into ntohl etc. 11 * them together into ntohl etc.
10 */ 12 */
11 13
12static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) 14static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
13{ 15{
14 __asm__ ("swapwb %0" : "=r" (x) : "0" (x)); 16 __asm__ ("swapwb %0" : "=r" (x) : "0" (x));
15 17
16 return(x); 18 return(x);
17} 19}
20#define __arch_swab32 __arch_swab32
18 21
19static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) 22static inline __attribute_const__ __u16 __arch_swab16(__u16 x)
20{ 23{
21 __asm__ ("swapb %0" : "=r" (x) : "0" (x)); 24 __asm__ ("swapb %0" : "=r" (x) : "0" (x));
22 25
23 return(x); 26 return(x);
24} 27}
28#define __arch_swab16 __arch_swab16
25 29
26#endif 30#endif
diff --git a/arch/cris/include/arch-v32/arch/byteorder.h b/arch/cris/include/arch-v32/arch/byteorder.h
deleted file mode 100644
index 6ef8fb4a35f2..000000000000
--- a/arch/cris/include/arch-v32/arch/byteorder.h
+++ /dev/null
@@ -1,20 +0,0 @@
1#ifndef _ASM_CRIS_ARCH_BYTEORDER_H
2#define _ASM_CRIS_ARCH_BYTEORDER_H
3
4#include <asm/types.h>
5
6static inline __const__ __u32
7___arch__swab32(__u32 x)
8{
9 __asm__ __volatile__ ("swapwb %0" : "=r" (x) : "0" (x));
10 return (x);
11}
12
13static inline __const__ __u16
14___arch__swab16(__u16 x)
15{
16 __asm__ __volatile__ ("swapb %0" : "=r" (x) : "0" (x));
17 return (x);
18}
19
20#endif /* _ASM_CRIS_ARCH_BYTEORDER_H */
diff --git a/arch/cris/include/arch-v32/arch/swab.h b/arch/cris/include/arch-v32/arch/swab.h
new file mode 100644
index 000000000000..9a4ea5e209c2
--- /dev/null
+++ b/arch/cris/include/arch-v32/arch/swab.h
@@ -0,0 +1,24 @@
1#ifndef _ASM_CRIS_ARCH_SWAB_H
2#define _ASM_CRIS_ARCH_SWAB_H
3
4#include <asm/types.h>
5
6#define __SWAB_64_THRU_32__
7
8static inline __const__ __u32
9__arch_swab32(__u32 x)
10{
11 __asm__ __volatile__ ("swapwb %0" : "=r" (x) : "0" (x));
12 return (x);
13}
14#define __arch_swab32 __arch_swab32
15
16static inline __const__ __u16
17__arch_swab16(__u16 x)
18{
19 __asm__ __volatile__ ("swapb %0" : "=r" (x) : "0" (x));
20 return (x);
21}
22#define __arch_swab16 __arch_swab16
23
24#endif /* _ASM_CRIS_ARCH_SWAB_H */
diff --git a/arch/cris/include/asm/byteorder.h b/arch/cris/include/asm/byteorder.h
index cc8e418cfd14..bcd189798e26 100644
--- a/arch/cris/include/asm/byteorder.h
+++ b/arch/cris/include/asm/byteorder.h
@@ -1,25 +1,6 @@
1#ifndef _CRIS_BYTEORDER_H 1#ifndef _CRIS_BYTEORDER_H
2#define _CRIS_BYTEORDER_H 2#define _CRIS_BYTEORDER_H
3 3
4#ifdef __GNUC__
5
6#ifdef __KERNEL__
7#include <arch/byteorder.h>
8
9/* defines are necessary because the other files detect the presence
10 * of a defined __arch_swab32, not an inline
11 */
12#define __arch__swab32(x) ___arch__swab32(x)
13#define __arch__swab16(x) ___arch__swab16(x)
14#endif /* __KERNEL__ */
15
16#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
17# define __BYTEORDER_HAS_U64__
18# define __SWAB_64_THRU_32__
19#endif
20
21#endif /* __GNUC__ */
22
23#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
24 5
25#endif 6#endif
diff --git a/arch/cris/include/asm/swab.h b/arch/cris/include/asm/swab.h
new file mode 100644
index 000000000000..80668e88419c
--- /dev/null
+++ b/arch/cris/include/asm/swab.h
@@ -0,0 +1,8 @@
1#ifndef _CRIS_SWAB_H
2#define _CRIS_SWAB_H
3
4#ifdef __KERNEL__
5#include <arch/swab.h>
6#endif /* __KERNEL__ */
7
8#endif /* _CRIS_SWAB_H */
diff --git a/arch/frv/mm/dma-alloc.c b/arch/frv/mm/dma-alloc.c
index dc6522c464d4..44840e73e907 100644
--- a/arch/frv/mm/dma-alloc.c
+++ b/arch/frv/mm/dma-alloc.c
@@ -36,10 +36,10 @@
36#include <linux/vmalloc.h> 36#include <linux/vmalloc.h>
37#include <linux/init.h> 37#include <linux/init.h>
38#include <linux/pci.h> 38#include <linux/pci.h>
39#include <linux/hardirq.h>
39 40
40#include <asm/pgalloc.h> 41#include <asm/pgalloc.h>
41#include <asm/io.h> 42#include <asm/io.h>
42#include <asm/hardirq.h>
43#include <asm/mmu_context.h> 43#include <asm/mmu_context.h>
44#include <asm/pgtable.h> 44#include <asm/pgtable.h>
45#include <asm/mmu.h> 45#include <asm/mmu.h>
diff --git a/arch/h8300/include/asm/Kbuild b/arch/h8300/include/asm/Kbuild
index 27b108a86b39..c68e1680da01 100644
--- a/arch/h8300/include/asm/Kbuild
+++ b/arch/h8300/include/asm/Kbuild
@@ -1,2 +1 @@
1include include/asm-generic/Kbuild.asm include include/asm-generic/Kbuild.asm
2unifdef-y += swab.h
diff --git a/arch/h8300/include/asm/byteorder.h b/arch/h8300/include/asm/byteorder.h
index c36b80a3dd84..13539da99efd 100644
--- a/arch/h8300/include/asm/byteorder.h
+++ b/arch/h8300/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _H8300_BYTEORDER_H 1#ifndef _H8300_BYTEORDER_H
2#define _H8300_BYTEORDER_H 2#define _H8300_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h> 4#include <linux/byteorder/big_endian.h>
6 5
7#endif /* _H8300_BYTEORDER_H */ 6#endif /* _H8300_BYTEORDER_H */
diff --git a/arch/h8300/include/asm/swab.h b/arch/h8300/include/asm/swab.h
index c108f39b8bc4..39abbf52807d 100644
--- a/arch/h8300/include/asm/swab.h
+++ b/arch/h8300/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _H8300_SWAB_H 1#ifndef _H8300_SWAB_H
2#define _H8300_SWAB_H 2#define _H8300_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5 5
6#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) 6#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
7# define __SWAB_64_THRU_32__ 7# define __SWAB_64_THRU_32__
diff --git a/arch/h8300/kernel/syscalls.S b/arch/h8300/kernel/syscalls.S
index 54e21c3f2057..4eb67faac633 100644
--- a/arch/h8300/kernel/syscalls.S
+++ b/arch/h8300/kernel/syscalls.S
@@ -103,7 +103,7 @@ SYMBOL_NAME_LABEL(sys_call_table)
103 .long SYMBOL_NAME(sys_uselib) 103 .long SYMBOL_NAME(sys_uselib)
104 .long SYMBOL_NAME(sys_swapon) 104 .long SYMBOL_NAME(sys_swapon)
105 .long SYMBOL_NAME(sys_reboot) 105 .long SYMBOL_NAME(sys_reboot)
106 .long SYMBOL_NAME(old_readdir) 106 .long SYMBOL_NAME(sys_old_readdir)
107 .long SYMBOL_NAME(old_mmap) /* 90 */ 107 .long SYMBOL_NAME(old_mmap) /* 90 */
108 .long SYMBOL_NAME(sys_munmap) 108 .long SYMBOL_NAME(sys_munmap)
109 .long SYMBOL_NAME(sys_truncate) 109 .long SYMBOL_NAME(sys_truncate)
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 3d31636cbafb..153e727a6e8e 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -17,6 +17,7 @@ config IA64
17 select ACPI if (!IA64_HP_SIM) 17 select ACPI if (!IA64_HP_SIM)
18 select PM if (!IA64_HP_SIM) 18 select PM if (!IA64_HP_SIM)
19 select ARCH_SUPPORTS_MSI 19 select ARCH_SUPPORTS_MSI
20 select HAVE_UNSTABLE_SCHED_CLOCK
20 select HAVE_IDE 21 select HAVE_IDE
21 select HAVE_OPROFILE 22 select HAVE_OPROFILE
22 select HAVE_KPROBES 23 select HAVE_KPROBES
@@ -220,7 +221,11 @@ config IA64_HP_SIM
220 221
221config IA64_XEN_GUEST 222config IA64_XEN_GUEST
222 bool "Xen guest" 223 bool "Xen guest"
224 select SWIOTLB
223 depends on XEN 225 depends on XEN
226 help
227 Build a kernel that runs on Xen guest domain. At this moment only
228 16KB page size in supported.
224 229
225endchoice 230endchoice
226 231
@@ -478,8 +483,7 @@ config HOLES_IN_ZONE
478 default y if VIRTUAL_MEM_MAP 483 default y if VIRTUAL_MEM_MAP
479 484
480config HAVE_ARCH_EARLY_PFN_TO_NID 485config HAVE_ARCH_EARLY_PFN_TO_NID
481 def_bool y 486 def_bool NUMA && SPARSEMEM
482 depends on NEED_MULTIPLE_NODES
483 487
484config HAVE_ARCH_NODEDATA_EXTENSION 488config HAVE_ARCH_NODEDATA_EXTENSION
485 def_bool y 489 def_bool y
@@ -634,6 +638,17 @@ config DMAR
634 and include PCI device scope covered by these DMA 638 and include PCI device scope covered by these DMA
635 remapping devices. 639 remapping devices.
636 640
641config DMAR_DEFAULT_ON
642 def_bool y
643 prompt "Enable DMA Remapping Devices by default"
644 depends on DMAR
645 help
646 Selecting this option will enable a DMAR device at boot time if
647 one is found. If this option is not selected, DMAR support can
648 be enabled by passing intel_iommu=on to the kernel. It is
649 recommended you say N here while the DMAR code remains
650 experimental.
651
637endmenu 652endmenu
638 653
639endif 654endif
diff --git a/arch/ia64/configs/bigsur_defconfig b/arch/ia64/configs/bigsur_defconfig
index 6dd8655664f3..ace41096b47b 100644
--- a/arch/ia64/configs/bigsur_defconfig
+++ b/arch/ia64/configs/bigsur_defconfig
@@ -752,7 +752,7 @@ CONFIG_I2C_ALGOBIT=y
752# 752#
753# CONFIG_SENSORS_DS1337 is not set 753# CONFIG_SENSORS_DS1337 is not set
754# CONFIG_SENSORS_DS1374 is not set 754# CONFIG_SENSORS_DS1374 is not set
755# CONFIG_SENSORS_EEPROM is not set 755# CONFIG_EEPROM_LEGACY is not set
756# CONFIG_SENSORS_PCF8574 is not set 756# CONFIG_SENSORS_PCF8574 is not set
757# CONFIG_SENSORS_PCA9539 is not set 757# CONFIG_SENSORS_PCA9539 is not set
758# CONFIG_SENSORS_PCF8591 is not set 758# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/ia64/configs/generic_defconfig b/arch/ia64/configs/generic_defconfig
index 27eb67604c53..a109db30ce55 100644
--- a/arch/ia64/configs/generic_defconfig
+++ b/arch/ia64/configs/generic_defconfig
@@ -578,7 +578,7 @@ CONFIG_ATA_PIIX=y
578# CONFIG_SATA_SIS is not set 578# CONFIG_SATA_SIS is not set
579# CONFIG_SATA_ULI is not set 579# CONFIG_SATA_ULI is not set
580# CONFIG_SATA_VIA is not set 580# CONFIG_SATA_VIA is not set
581# CONFIG_SATA_VITESSE is not set 581CONFIG_SATA_VITESSE=y
582# CONFIG_SATA_INIC162X is not set 582# CONFIG_SATA_INIC162X is not set
583# CONFIG_PATA_ACPI is not set 583# CONFIG_PATA_ACPI is not set
584# CONFIG_PATA_ALI is not set 584# CONFIG_PATA_ALI is not set
diff --git a/arch/ia64/configs/xen_domu_defconfig b/arch/ia64/configs/xen_domu_defconfig
new file mode 100644
index 000000000000..0bb0714dc19d
--- /dev/null
+++ b/arch/ia64/configs/xen_domu_defconfig
@@ -0,0 +1,1601 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc1
4# Fri Jan 16 11:49:59 2009
5#
6CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
7
8#
9# General setup
10#
11CONFIG_EXPERIMENTAL=y
12CONFIG_LOCK_KERNEL=y
13CONFIG_INIT_ENV_ARG_LIMIT=32
14CONFIG_LOCALVERSION=""
15CONFIG_LOCALVERSION_AUTO=y
16CONFIG_SWAP=y
17CONFIG_SYSVIPC=y
18CONFIG_SYSVIPC_SYSCTL=y
19CONFIG_POSIX_MQUEUE=y
20# CONFIG_BSD_PROCESS_ACCT is not set
21# CONFIG_TASKSTATS is not set
22# CONFIG_AUDIT is not set
23CONFIG_IKCONFIG=y
24CONFIG_IKCONFIG_PROC=y
25CONFIG_LOG_BUF_SHIFT=20
26CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
27# CONFIG_GROUP_SCHED is not set
28
29#
30# Control Group support
31#
32# CONFIG_CGROUPS is not set
33CONFIG_SYSFS_DEPRECATED=y
34CONFIG_SYSFS_DEPRECATED_V2=y
35# CONFIG_RELAY is not set
36CONFIG_NAMESPACES=y
37# CONFIG_UTS_NS is not set
38# CONFIG_IPC_NS is not set
39# CONFIG_USER_NS is not set
40# CONFIG_PID_NS is not set
41CONFIG_BLK_DEV_INITRD=y
42CONFIG_INITRAMFS_SOURCE=""
43CONFIG_CC_OPTIMIZE_FOR_SIZE=y
44CONFIG_SYSCTL=y
45# CONFIG_EMBEDDED is not set
46CONFIG_SYSCTL_SYSCALL=y
47CONFIG_KALLSYMS=y
48CONFIG_KALLSYMS_ALL=y
49CONFIG_KALLSYMS_STRIP_GENERATED=y
50# CONFIG_KALLSYMS_EXTRA_PASS is not set
51CONFIG_HOTPLUG=y
52CONFIG_PRINTK=y
53CONFIG_BUG=y
54CONFIG_ELF_CORE=y
55CONFIG_COMPAT_BRK=y
56CONFIG_BASE_FULL=y
57CONFIG_FUTEX=y
58CONFIG_ANON_INODES=y
59CONFIG_EPOLL=y
60CONFIG_SIGNALFD=y
61CONFIG_TIMERFD=y
62CONFIG_EVENTFD=y
63CONFIG_SHMEM=y
64CONFIG_AIO=y
65CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_PCI_QUIRKS=y
67CONFIG_SLUB_DEBUG=y
68# CONFIG_SLAB is not set
69CONFIG_SLUB=y
70# CONFIG_SLOB is not set
71# CONFIG_PROFILING is not set
72CONFIG_HAVE_OPROFILE=y
73# CONFIG_KPROBES is not set
74CONFIG_HAVE_KPROBES=y
75CONFIG_HAVE_KRETPROBES=y
76CONFIG_HAVE_ARCH_TRACEHOOK=y
77CONFIG_HAVE_DMA_ATTRS=y
78CONFIG_USE_GENERIC_SMP_HELPERS=y
79# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
80CONFIG_SLABINFO=y
81CONFIG_RT_MUTEXES=y
82CONFIG_BASE_SMALL=0
83CONFIG_MODULES=y
84# CONFIG_MODULE_FORCE_LOAD is not set
85CONFIG_MODULE_UNLOAD=y
86# CONFIG_MODULE_FORCE_UNLOAD is not set
87CONFIG_MODVERSIONS=y
88CONFIG_MODULE_SRCVERSION_ALL=y
89CONFIG_STOP_MACHINE=y
90CONFIG_BLOCK=y
91# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_BLK_DEV_BSG is not set
93# CONFIG_BLK_DEV_INTEGRITY is not set
94
95#
96# IO Schedulers
97#
98CONFIG_IOSCHED_NOOP=y
99CONFIG_IOSCHED_AS=y
100CONFIG_IOSCHED_DEADLINE=y
101CONFIG_IOSCHED_CFQ=y
102CONFIG_DEFAULT_AS=y
103# CONFIG_DEFAULT_DEADLINE is not set
104# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_TREE_RCU is not set
109# CONFIG_PREEMPT_RCU is not set
110# CONFIG_TREE_RCU_TRACE is not set
111# CONFIG_PREEMPT_RCU_TRACE is not set
112CONFIG_FREEZER=y
113
114#
115# Processor type and features
116#
117CONFIG_IA64=y
118CONFIG_64BIT=y
119CONFIG_ZONE_DMA=y
120CONFIG_QUICKLIST=y
121CONFIG_MMU=y
122CONFIG_SWIOTLB=y
123CONFIG_IOMMU_HELPER=y
124CONFIG_RWSEM_XCHGADD_ALGORITHM=y
125CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
126CONFIG_GENERIC_FIND_NEXT_BIT=y
127CONFIG_GENERIC_CALIBRATE_DELAY=y
128CONFIG_GENERIC_TIME=y
129CONFIG_GENERIC_TIME_VSYSCALL=y
130CONFIG_HAVE_SETUP_PER_CPU_AREA=y
131CONFIG_DMI=y
132CONFIG_EFI=y
133CONFIG_GENERIC_IOMAP=y
134CONFIG_SCHED_OMIT_FRAME_POINTER=y
135CONFIG_AUDIT_ARCH=y
136CONFIG_PARAVIRT_GUEST=y
137CONFIG_PARAVIRT=y
138CONFIG_XEN=y
139CONFIG_XEN_XENCOMM=y
140CONFIG_NO_IDLE_HZ=y
141# CONFIG_IA64_GENERIC is not set
142# CONFIG_IA64_DIG is not set
143# CONFIG_IA64_DIG_VTD is not set
144# CONFIG_IA64_HP_ZX1 is not set
145# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
146# CONFIG_IA64_SGI_SN2 is not set
147# CONFIG_IA64_SGI_UV is not set
148# CONFIG_IA64_HP_SIM is not set
149CONFIG_IA64_XEN_GUEST=y
150# CONFIG_ITANIUM is not set
151CONFIG_MCKINLEY=y
152# CONFIG_IA64_PAGE_SIZE_4KB is not set
153# CONFIG_IA64_PAGE_SIZE_8KB is not set
154CONFIG_IA64_PAGE_SIZE_16KB=y
155# CONFIG_IA64_PAGE_SIZE_64KB is not set
156CONFIG_PGTABLE_3=y
157# CONFIG_PGTABLE_4 is not set
158CONFIG_HZ=250
159# CONFIG_HZ_100 is not set
160CONFIG_HZ_250=y
161# CONFIG_HZ_300 is not set
162# CONFIG_HZ_1000 is not set
163# CONFIG_SCHED_HRTICK is not set
164CONFIG_IA64_L1_CACHE_SHIFT=7
165CONFIG_IA64_CYCLONE=y
166CONFIG_IOSAPIC=y
167CONFIG_FORCE_MAX_ZONEORDER=17
168# CONFIG_VIRT_CPU_ACCOUNTING is not set
169CONFIG_SMP=y
170CONFIG_NR_CPUS=16
171CONFIG_HOTPLUG_CPU=y
172CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
173CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
174# CONFIG_SCHED_SMT is not set
175CONFIG_PERMIT_BSP_REMOVE=y
176CONFIG_FORCE_CPEI_RETARGET=y
177CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set
180CONFIG_SELECT_MEMORY_MODEL=y
181CONFIG_FLATMEM_MANUAL=y
182# CONFIG_DISCONTIGMEM_MANUAL is not set
183# CONFIG_SPARSEMEM_MANUAL is not set
184CONFIG_FLATMEM=y
185CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
187CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4
189CONFIG_MIGRATION=y
190CONFIG_PHYS_ADDR_T_64BIT=y
191CONFIG_ZONE_DMA_FLAG=1
192CONFIG_BOUNCE=y
193CONFIG_NR_QUICK=1
194CONFIG_VIRT_TO_BUS=y
195CONFIG_UNEVICTABLE_LRU=y
196CONFIG_ARCH_SELECT_MEMORY_MODEL=y
197CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
198CONFIG_ARCH_FLATMEM_ENABLE=y
199CONFIG_ARCH_SPARSEMEM_ENABLE=y
200CONFIG_ARCH_POPULATES_NODE_MAP=y
201CONFIG_VIRTUAL_MEM_MAP=y
202CONFIG_HOLES_IN_ZONE=y
203# CONFIG_IA32_SUPPORT is not set
204# CONFIG_COMPAT_FOR_U64_ALIGNMENT is not set
205CONFIG_IA64_MCA_RECOVERY=y
206CONFIG_PERFMON=y
207CONFIG_IA64_PALINFO=y
208# CONFIG_IA64_MC_ERR_INJECT is not set
209# CONFIG_IA64_ESI is not set
210# CONFIG_IA64_HP_AML_NFW is not set
211CONFIG_KEXEC=y
212# CONFIG_CRASH_DUMP is not set
213
214#
215# Firmware Drivers
216#
217# CONFIG_FIRMWARE_MEMMAP is not set
218CONFIG_EFI_VARS=y
219CONFIG_EFI_PCDP=y
220CONFIG_DMIID=y
221CONFIG_BINFMT_ELF=y
222# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
223# CONFIG_HAVE_AOUT is not set
224CONFIG_BINFMT_MISC=m
225
226#
227# Power management and ACPI options
228#
229CONFIG_PM=y
230# CONFIG_PM_DEBUG is not set
231CONFIG_PM_SLEEP=y
232CONFIG_SUSPEND=y
233CONFIG_SUSPEND_FREEZER=y
234CONFIG_ACPI=y
235CONFIG_ACPI_SLEEP=y
236CONFIG_ACPI_PROCFS=y
237CONFIG_ACPI_PROCFS_POWER=y
238CONFIG_ACPI_SYSFS_POWER=y
239CONFIG_ACPI_PROC_EVENT=y
240CONFIG_ACPI_BUTTON=m
241CONFIG_ACPI_FAN=m
242# CONFIG_ACPI_DOCK is not set
243CONFIG_ACPI_PROCESSOR=m
244CONFIG_ACPI_HOTPLUG_CPU=y
245CONFIG_ACPI_THERMAL=m
246# CONFIG_ACPI_CUSTOM_DSDT is not set
247CONFIG_ACPI_BLACKLIST_YEAR=0
248# CONFIG_ACPI_DEBUG is not set
249# CONFIG_ACPI_PCI_SLOT is not set
250CONFIG_ACPI_SYSTEM=y
251CONFIG_ACPI_CONTAINER=m
252
253#
254# CPU Frequency scaling
255#
256# CONFIG_CPU_FREQ is not set
257
258#
259# Bus options (PCI, PCMCIA)
260#
261CONFIG_PCI=y
262CONFIG_PCI_DOMAINS=y
263CONFIG_PCI_SYSCALL=y
264# CONFIG_PCIEPORTBUS is not set
265CONFIG_ARCH_SUPPORTS_MSI=y
266# CONFIG_PCI_MSI is not set
267CONFIG_PCI_LEGACY=y
268# CONFIG_PCI_DEBUG is not set
269# CONFIG_PCI_STUB is not set
270CONFIG_HOTPLUG_PCI=m
271# CONFIG_HOTPLUG_PCI_FAKE is not set
272CONFIG_HOTPLUG_PCI_ACPI=m
273# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
274# CONFIG_HOTPLUG_PCI_CPCI is not set
275# CONFIG_HOTPLUG_PCI_SHPC is not set
276# CONFIG_PCCARD is not set
277CONFIG_NET=y
278
279#
280# Networking options
281#
282# CONFIG_NET_NS is not set
283CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y
287CONFIG_XFRM=y
288# CONFIG_XFRM_USER is not set
289# CONFIG_XFRM_SUB_POLICY is not set
290# CONFIG_XFRM_MIGRATE is not set
291# CONFIG_XFRM_STATISTICS is not set
292# CONFIG_NET_KEY is not set
293CONFIG_INET=y
294CONFIG_IP_MULTICAST=y
295# CONFIG_IP_ADVANCED_ROUTER is not set
296CONFIG_IP_FIB_HASH=y
297# CONFIG_IP_PNP is not set
298# CONFIG_NET_IPIP is not set
299# CONFIG_NET_IPGRE is not set
300# CONFIG_IP_MROUTE is not set
301CONFIG_ARPD=y
302CONFIG_SYN_COOKIES=y
303# CONFIG_INET_AH is not set
304# CONFIG_INET_ESP is not set
305# CONFIG_INET_IPCOMP is not set
306# CONFIG_INET_XFRM_TUNNEL is not set
307# CONFIG_INET_TUNNEL is not set
308CONFIG_INET_XFRM_MODE_TRANSPORT=y
309CONFIG_INET_XFRM_MODE_TUNNEL=y
310CONFIG_INET_XFRM_MODE_BEET=y
311# CONFIG_INET_LRO is not set
312CONFIG_INET_DIAG=y
313CONFIG_INET_TCP_DIAG=y
314# CONFIG_TCP_CONG_ADVANCED is not set
315CONFIG_TCP_CONG_CUBIC=y
316CONFIG_DEFAULT_TCP_CONG="cubic"
317# CONFIG_TCP_MD5SIG is not set
318# CONFIG_IPV6 is not set
319# CONFIG_NETWORK_SECMARK is not set
320# CONFIG_NETFILTER is not set
321# CONFIG_IP_DCCP is not set
322# CONFIG_IP_SCTP is not set
323# CONFIG_TIPC is not set
324# CONFIG_ATM is not set
325# CONFIG_BRIDGE is not set
326# CONFIG_NET_DSA is not set
327# CONFIG_VLAN_8021Q is not set
328# CONFIG_DECNET is not set
329# CONFIG_LLC2 is not set
330# CONFIG_IPX is not set
331# CONFIG_ATALK is not set
332# CONFIG_X25 is not set
333# CONFIG_LAPB is not set
334# CONFIG_ECONET is not set
335# CONFIG_WAN_ROUTER is not set
336# CONFIG_NET_SCHED is not set
337# CONFIG_DCB is not set
338
339#
340# Network testing
341#
342# CONFIG_NET_PKTGEN is not set
343# CONFIG_HAMRADIO is not set
344# CONFIG_CAN is not set
345# CONFIG_IRDA is not set
346# CONFIG_BT is not set
347# CONFIG_AF_RXRPC is not set
348# CONFIG_PHONET is not set
349# CONFIG_WIRELESS is not set
350# CONFIG_WIMAX is not set
351# CONFIG_RFKILL is not set
352# CONFIG_NET_9P is not set
353
354#
355# Device Drivers
356#
357
358#
359# Generic Driver Options
360#
361CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
362CONFIG_STANDALONE=y
363CONFIG_PREVENT_FIRMWARE_BUILD=y
364CONFIG_FW_LOADER=y
365CONFIG_FIRMWARE_IN_KERNEL=y
366CONFIG_EXTRA_FIRMWARE=""
367# CONFIG_DEBUG_DRIVER is not set
368# CONFIG_DEBUG_DEVRES is not set
369# CONFIG_SYS_HYPERVISOR is not set
370# CONFIG_CONNECTOR is not set
371# CONFIG_MTD is not set
372# CONFIG_PARPORT is not set
373CONFIG_PNP=y
374CONFIG_PNP_DEBUG_MESSAGES=y
375
376#
377# Protocols
378#
379CONFIG_PNPACPI=y
380CONFIG_BLK_DEV=y
381# CONFIG_BLK_CPQ_DA is not set
382# CONFIG_BLK_CPQ_CISS_DA is not set
383# CONFIG_BLK_DEV_DAC960 is not set
384# CONFIG_BLK_DEV_UMEM is not set
385# CONFIG_BLK_DEV_COW_COMMON is not set
386CONFIG_BLK_DEV_LOOP=m
387CONFIG_BLK_DEV_CRYPTOLOOP=m
388CONFIG_BLK_DEV_NBD=m
389# CONFIG_BLK_DEV_SX8 is not set
390# CONFIG_BLK_DEV_UB is not set
391CONFIG_BLK_DEV_RAM=y
392CONFIG_BLK_DEV_RAM_COUNT=16
393CONFIG_BLK_DEV_RAM_SIZE=4096
394# CONFIG_BLK_DEV_XIP is not set
395# CONFIG_CDROM_PKTCDVD is not set
396# CONFIG_ATA_OVER_ETH is not set
397CONFIG_XEN_BLKDEV_FRONTEND=y
398# CONFIG_BLK_DEV_HD is not set
399CONFIG_MISC_DEVICES=y
400# CONFIG_PHANTOM is not set
401# CONFIG_EEPROM_93CX6 is not set
402# CONFIG_SGI_IOC4 is not set
403# CONFIG_TIFM_CORE is not set
404# CONFIG_ICS932S401 is not set
405# CONFIG_ENCLOSURE_SERVICES is not set
406# CONFIG_HP_ILO is not set
407# CONFIG_C2PORT is not set
408CONFIG_HAVE_IDE=y
409CONFIG_IDE=y
410
411#
412# Please see Documentation/ide/ide.txt for help/info on IDE drives
413#
414CONFIG_IDE_TIMINGS=y
415CONFIG_IDE_ATAPI=y
416# CONFIG_BLK_DEV_IDE_SATA is not set
417CONFIG_IDE_GD=y
418CONFIG_IDE_GD_ATA=y
419# CONFIG_IDE_GD_ATAPI is not set
420CONFIG_BLK_DEV_IDECD=y
421CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
422# CONFIG_BLK_DEV_IDETAPE is not set
423# CONFIG_BLK_DEV_IDEACPI is not set
424# CONFIG_IDE_TASK_IOCTL is not set
425CONFIG_IDE_PROC_FS=y
426
427#
428# IDE chipset support/bugfixes
429#
430# CONFIG_IDE_GENERIC is not set
431# CONFIG_BLK_DEV_PLATFORM is not set
432# CONFIG_BLK_DEV_IDEPNP is not set
433CONFIG_BLK_DEV_IDEDMA_SFF=y
434
435#
436# PCI IDE chipsets support
437#
438CONFIG_BLK_DEV_IDEPCI=y
439CONFIG_IDEPCI_PCIBUS_ORDER=y
440# CONFIG_BLK_DEV_OFFBOARD is not set
441CONFIG_BLK_DEV_GENERIC=y
442# CONFIG_BLK_DEV_OPTI621 is not set
443CONFIG_BLK_DEV_IDEDMA_PCI=y
444# CONFIG_BLK_DEV_AEC62XX is not set
445# CONFIG_BLK_DEV_ALI15X3 is not set
446# CONFIG_BLK_DEV_AMD74XX is not set
447CONFIG_BLK_DEV_CMD64X=y
448# CONFIG_BLK_DEV_TRIFLEX is not set
449# CONFIG_BLK_DEV_CS5520 is not set
450# CONFIG_BLK_DEV_CS5530 is not set
451# CONFIG_BLK_DEV_HPT366 is not set
452# CONFIG_BLK_DEV_JMICRON is not set
453# CONFIG_BLK_DEV_SC1200 is not set
454CONFIG_BLK_DEV_PIIX=y
455# CONFIG_BLK_DEV_IT8172 is not set
456# CONFIG_BLK_DEV_IT8213 is not set
457# CONFIG_BLK_DEV_IT821X is not set
458# CONFIG_BLK_DEV_NS87415 is not set
459# CONFIG_BLK_DEV_PDC202XX_OLD is not set
460# CONFIG_BLK_DEV_PDC202XX_NEW is not set
461# CONFIG_BLK_DEV_SVWKS is not set
462# CONFIG_BLK_DEV_SIIMAGE is not set
463# CONFIG_BLK_DEV_SLC90E66 is not set
464# CONFIG_BLK_DEV_TRM290 is not set
465# CONFIG_BLK_DEV_VIA82CXXX is not set
466# CONFIG_BLK_DEV_TC86C001 is not set
467CONFIG_BLK_DEV_IDEDMA=y
468
469#
470# SCSI device support
471#
472# CONFIG_RAID_ATTRS is not set
473CONFIG_SCSI=y
474CONFIG_SCSI_DMA=y
475# CONFIG_SCSI_TGT is not set
476CONFIG_SCSI_NETLINK=y
477CONFIG_SCSI_PROC_FS=y
478
479#
480# SCSI support type (disk, tape, CD-ROM)
481#
482CONFIG_BLK_DEV_SD=y
483CONFIG_CHR_DEV_ST=m
484# CONFIG_CHR_DEV_OSST is not set
485CONFIG_BLK_DEV_SR=m
486# CONFIG_BLK_DEV_SR_VENDOR is not set
487CONFIG_CHR_DEV_SG=m
488# CONFIG_CHR_DEV_SCH is not set
489
490#
491# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
492#
493# CONFIG_SCSI_MULTI_LUN is not set
494# CONFIG_SCSI_CONSTANTS is not set
495# CONFIG_SCSI_LOGGING is not set
496# CONFIG_SCSI_SCAN_ASYNC is not set
497CONFIG_SCSI_WAIT_SCAN=m
498
499#
500# SCSI Transports
501#
502CONFIG_SCSI_SPI_ATTRS=y
503CONFIG_SCSI_FC_ATTRS=y
504# CONFIG_SCSI_ISCSI_ATTRS is not set
505# CONFIG_SCSI_SAS_LIBSAS is not set
506# CONFIG_SCSI_SRP_ATTRS is not set
507CONFIG_SCSI_LOWLEVEL=y
508# CONFIG_ISCSI_TCP is not set
509# CONFIG_SCSI_CXGB3_ISCSI is not set
510# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
511# CONFIG_SCSI_3W_9XXX is not set
512# CONFIG_SCSI_ACARD is not set
513# CONFIG_SCSI_AACRAID is not set
514# CONFIG_SCSI_AIC7XXX is not set
515# CONFIG_SCSI_AIC7XXX_OLD is not set
516# CONFIG_SCSI_AIC79XX is not set
517# CONFIG_SCSI_AIC94XX is not set
518# CONFIG_SCSI_DPT_I2O is not set
519# CONFIG_SCSI_ADVANSYS is not set
520# CONFIG_SCSI_ARCMSR is not set
521# CONFIG_MEGARAID_NEWGEN is not set
522# CONFIG_MEGARAID_LEGACY is not set
523# CONFIG_MEGARAID_SAS is not set
524# CONFIG_SCSI_HPTIOP is not set
525# CONFIG_LIBFC is not set
526# CONFIG_FCOE is not set
527# CONFIG_SCSI_DMX3191D is not set
528# CONFIG_SCSI_FUTURE_DOMAIN is not set
529# CONFIG_SCSI_IPS is not set
530# CONFIG_SCSI_INITIO is not set
531# CONFIG_SCSI_INIA100 is not set
532# CONFIG_SCSI_MVSAS is not set
533# CONFIG_SCSI_STEX is not set
534CONFIG_SCSI_SYM53C8XX_2=y
535CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
536CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
537CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
538CONFIG_SCSI_SYM53C8XX_MMIO=y
539CONFIG_SCSI_QLOGIC_1280=y
540# CONFIG_SCSI_QLA_FC is not set
541# CONFIG_SCSI_QLA_ISCSI is not set
542# CONFIG_SCSI_LPFC is not set
543# CONFIG_SCSI_DC395x is not set
544# CONFIG_SCSI_DC390T is not set
545# CONFIG_SCSI_DEBUG is not set
546# CONFIG_SCSI_SRP is not set
547# CONFIG_SCSI_DH is not set
548# CONFIG_ATA is not set
549CONFIG_MD=y
550CONFIG_BLK_DEV_MD=m
551CONFIG_MD_LINEAR=m
552CONFIG_MD_RAID0=m
553CONFIG_MD_RAID1=m
554# CONFIG_MD_RAID10 is not set
555# CONFIG_MD_RAID456 is not set
556CONFIG_MD_MULTIPATH=m
557# CONFIG_MD_FAULTY is not set
558CONFIG_BLK_DEV_DM=m
559# CONFIG_DM_DEBUG is not set
560CONFIG_DM_CRYPT=m
561CONFIG_DM_SNAPSHOT=m
562CONFIG_DM_MIRROR=m
563CONFIG_DM_ZERO=m
564# CONFIG_DM_MULTIPATH is not set
565# CONFIG_DM_DELAY is not set
566# CONFIG_DM_UEVENT is not set
567CONFIG_FUSION=y
568CONFIG_FUSION_SPI=y
569CONFIG_FUSION_FC=y
570# CONFIG_FUSION_SAS is not set
571CONFIG_FUSION_MAX_SGE=128
572CONFIG_FUSION_CTL=y
573# CONFIG_FUSION_LOGGING is not set
574
575#
576# IEEE 1394 (FireWire) support
577#
578
579#
580# Enable only one of the two stacks, unless you know what you are doing
581#
582# CONFIG_FIREWIRE is not set
583# CONFIG_IEEE1394 is not set
584# CONFIG_I2O is not set
585CONFIG_NETDEVICES=y
586CONFIG_DUMMY=m
587# CONFIG_BONDING is not set
588# CONFIG_MACVLAN is not set
589# CONFIG_EQUALIZER is not set
590# CONFIG_TUN is not set
591# CONFIG_VETH is not set
592# CONFIG_NET_SB1000 is not set
593# CONFIG_ARCNET is not set
594CONFIG_PHYLIB=y
595
596#
597# MII PHY device drivers
598#
599# CONFIG_MARVELL_PHY is not set
600# CONFIG_DAVICOM_PHY is not set
601# CONFIG_QSEMI_PHY is not set
602# CONFIG_LXT_PHY is not set
603# CONFIG_CICADA_PHY is not set
604# CONFIG_VITESSE_PHY is not set
605# CONFIG_SMSC_PHY is not set
606# CONFIG_BROADCOM_PHY is not set
607# CONFIG_ICPLUS_PHY is not set
608# CONFIG_REALTEK_PHY is not set
609# CONFIG_NATIONAL_PHY is not set
610# CONFIG_STE10XP is not set
611# CONFIG_LSI_ET1011C_PHY is not set
612# CONFIG_FIXED_PHY is not set
613# CONFIG_MDIO_BITBANG is not set
614CONFIG_NET_ETHERNET=y
615CONFIG_MII=m
616# CONFIG_HAPPYMEAL is not set
617# CONFIG_SUNGEM is not set
618# CONFIG_CASSINI is not set
619# CONFIG_NET_VENDOR_3COM is not set
620CONFIG_NET_TULIP=y
621# CONFIG_DE2104X is not set
622CONFIG_TULIP=m
623# CONFIG_TULIP_MWI is not set
624# CONFIG_TULIP_MMIO is not set
625# CONFIG_TULIP_NAPI is not set
626# CONFIG_DE4X5 is not set
627# CONFIG_WINBOND_840 is not set
628# CONFIG_DM9102 is not set
629# CONFIG_ULI526X is not set
630# CONFIG_HP100 is not set
631# CONFIG_IBM_NEW_EMAC_ZMII is not set
632# CONFIG_IBM_NEW_EMAC_RGMII is not set
633# CONFIG_IBM_NEW_EMAC_TAH is not set
634# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
635# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
636# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
637# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
638CONFIG_NET_PCI=y
639# CONFIG_PCNET32 is not set
640# CONFIG_AMD8111_ETH is not set
641# CONFIG_ADAPTEC_STARFIRE is not set
642# CONFIG_B44 is not set
643# CONFIG_FORCEDETH is not set
644CONFIG_E100=m
645# CONFIG_FEALNX is not set
646# CONFIG_NATSEMI is not set
647# CONFIG_NE2K_PCI is not set
648# CONFIG_8139CP is not set
649# CONFIG_8139TOO is not set
650# CONFIG_R6040 is not set
651# CONFIG_SIS900 is not set
652# CONFIG_EPIC100 is not set
653# CONFIG_SMSC9420 is not set
654# CONFIG_SUNDANCE is not set
655# CONFIG_TLAN is not set
656# CONFIG_VIA_RHINE is not set
657# CONFIG_SC92031 is not set
658# CONFIG_ATL2 is not set
659CONFIG_NETDEV_1000=y
660# CONFIG_ACENIC is not set
661# CONFIG_DL2K is not set
662CONFIG_E1000=y
663# CONFIG_E1000E is not set
664# CONFIG_IP1000 is not set
665# CONFIG_IGB is not set
666# CONFIG_NS83820 is not set
667# CONFIG_HAMACHI is not set
668# CONFIG_YELLOWFIN is not set
669# CONFIG_R8169 is not set
670# CONFIG_SIS190 is not set
671# CONFIG_SKGE is not set
672# CONFIG_SKY2 is not set
673# CONFIG_VIA_VELOCITY is not set
674CONFIG_TIGON3=y
675# CONFIG_BNX2 is not set
676# CONFIG_QLA3XXX is not set
677# CONFIG_ATL1 is not set
678# CONFIG_ATL1E is not set
679# CONFIG_JME is not set
680CONFIG_NETDEV_10000=y
681# CONFIG_CHELSIO_T1 is not set
682CONFIG_CHELSIO_T3_DEPENDS=y
683# CONFIG_CHELSIO_T3 is not set
684# CONFIG_ENIC is not set
685# CONFIG_IXGBE is not set
686# CONFIG_IXGB is not set
687# CONFIG_S2IO is not set
688# CONFIG_MYRI10GE is not set
689# CONFIG_NETXEN_NIC is not set
690# CONFIG_NIU is not set
691# CONFIG_MLX4_EN is not set
692# CONFIG_MLX4_CORE is not set
693# CONFIG_TEHUTI is not set
694# CONFIG_BNX2X is not set
695# CONFIG_QLGE is not set
696# CONFIG_SFC is not set
697# CONFIG_TR is not set
698
699#
700# Wireless LAN
701#
702# CONFIG_WLAN_PRE80211 is not set
703# CONFIG_WLAN_80211 is not set
704# CONFIG_IWLWIFI_LEDS is not set
705
706#
707# Enable WiMAX (Networking options) to see the WiMAX drivers
708#
709
710#
711# USB Network Adapters
712#
713# CONFIG_USB_CATC is not set
714# CONFIG_USB_KAWETH is not set
715# CONFIG_USB_PEGASUS is not set
716# CONFIG_USB_RTL8150 is not set
717# CONFIG_USB_USBNET is not set
718# CONFIG_WAN is not set
719CONFIG_XEN_NETDEV_FRONTEND=y
720# CONFIG_FDDI is not set
721# CONFIG_HIPPI is not set
722# CONFIG_PPP is not set
723# CONFIG_SLIP is not set
724# CONFIG_NET_FC is not set
725CONFIG_NETCONSOLE=y
726# CONFIG_NETCONSOLE_DYNAMIC is not set
727CONFIG_NETPOLL=y
728# CONFIG_NETPOLL_TRAP is not set
729CONFIG_NET_POLL_CONTROLLER=y
730# CONFIG_ISDN is not set
731# CONFIG_PHONE is not set
732
733#
734# Input device support
735#
736CONFIG_INPUT=y
737# CONFIG_INPUT_FF_MEMLESS is not set
738# CONFIG_INPUT_POLLDEV is not set
739
740#
741# Userland interfaces
742#
743CONFIG_INPUT_MOUSEDEV=y
744CONFIG_INPUT_MOUSEDEV_PSAUX=y
745CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
746CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
747# CONFIG_INPUT_JOYDEV is not set
748# CONFIG_INPUT_EVDEV is not set
749# CONFIG_INPUT_EVBUG is not set
750
751#
752# Input Device Drivers
753#
754CONFIG_INPUT_KEYBOARD=y
755CONFIG_KEYBOARD_ATKBD=y
756# CONFIG_KEYBOARD_SUNKBD is not set
757# CONFIG_KEYBOARD_LKKBD is not set
758# CONFIG_KEYBOARD_XTKBD is not set
759# CONFIG_KEYBOARD_NEWTON is not set
760# CONFIG_KEYBOARD_STOWAWAY is not set
761CONFIG_INPUT_MOUSE=y
762CONFIG_MOUSE_PS2=y
763CONFIG_MOUSE_PS2_ALPS=y
764CONFIG_MOUSE_PS2_LOGIPS2PP=y
765CONFIG_MOUSE_PS2_SYNAPTICS=y
766CONFIG_MOUSE_PS2_LIFEBOOK=y
767CONFIG_MOUSE_PS2_TRACKPOINT=y
768# CONFIG_MOUSE_PS2_ELANTECH is not set
769# CONFIG_MOUSE_PS2_TOUCHKIT is not set
770# CONFIG_MOUSE_SERIAL is not set
771# CONFIG_MOUSE_APPLETOUCH is not set
772# CONFIG_MOUSE_BCM5974 is not set
773# CONFIG_MOUSE_VSXXXAA is not set
774# CONFIG_INPUT_JOYSTICK is not set
775# CONFIG_INPUT_TABLET is not set
776# CONFIG_INPUT_TOUCHSCREEN is not set
777# CONFIG_INPUT_MISC is not set
778
779#
780# Hardware I/O ports
781#
782CONFIG_SERIO=y
783CONFIG_SERIO_I8042=y
784# CONFIG_SERIO_SERPORT is not set
785# CONFIG_SERIO_PCIPS2 is not set
786CONFIG_SERIO_LIBPS2=y
787# CONFIG_SERIO_RAW is not set
788CONFIG_GAMEPORT=m
789# CONFIG_GAMEPORT_NS558 is not set
790# CONFIG_GAMEPORT_L4 is not set
791# CONFIG_GAMEPORT_EMU10K1 is not set
792# CONFIG_GAMEPORT_FM801 is not set
793
794#
795# Character devices
796#
797CONFIG_VT=y
798CONFIG_CONSOLE_TRANSLATIONS=y
799CONFIG_VT_CONSOLE=y
800CONFIG_HW_CONSOLE=y
801# CONFIG_VT_HW_CONSOLE_BINDING is not set
802CONFIG_DEVKMEM=y
803CONFIG_SERIAL_NONSTANDARD=y
804# CONFIG_COMPUTONE is not set
805# CONFIG_ROCKETPORT is not set
806# CONFIG_CYCLADES is not set
807# CONFIG_DIGIEPCA is not set
808# CONFIG_MOXA_INTELLIO is not set
809# CONFIG_MOXA_SMARTIO is not set
810# CONFIG_ISI is not set
811# CONFIG_SYNCLINKMP is not set
812# CONFIG_SYNCLINK_GT is not set
813# CONFIG_N_HDLC is not set
814# CONFIG_RISCOM8 is not set
815# CONFIG_SPECIALIX is not set
816# CONFIG_SX is not set
817# CONFIG_RIO is not set
818# CONFIG_STALDRV is not set
819# CONFIG_NOZOMI is not set
820
821#
822# Serial drivers
823#
824CONFIG_SERIAL_8250=y
825CONFIG_SERIAL_8250_CONSOLE=y
826CONFIG_SERIAL_8250_PCI=y
827CONFIG_SERIAL_8250_PNP=y
828CONFIG_SERIAL_8250_NR_UARTS=6
829CONFIG_SERIAL_8250_RUNTIME_UARTS=4
830CONFIG_SERIAL_8250_EXTENDED=y
831CONFIG_SERIAL_8250_SHARE_IRQ=y
832# CONFIG_SERIAL_8250_DETECT_IRQ is not set
833# CONFIG_SERIAL_8250_RSA is not set
834
835#
836# Non-8250 serial port support
837#
838CONFIG_SERIAL_CORE=y
839CONFIG_SERIAL_CORE_CONSOLE=y
840# CONFIG_SERIAL_JSM is not set
841CONFIG_UNIX98_PTYS=y
842# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
843CONFIG_LEGACY_PTYS=y
844CONFIG_LEGACY_PTY_COUNT=256
845CONFIG_HVC_DRIVER=y
846CONFIG_HVC_IRQ=y
847CONFIG_HVC_XEN=y
848# CONFIG_IPMI_HANDLER is not set
849# CONFIG_HW_RANDOM is not set
850CONFIG_EFI_RTC=y
851# CONFIG_R3964 is not set
852# CONFIG_APPLICOM is not set
853CONFIG_RAW_DRIVER=m
854CONFIG_MAX_RAW_DEVS=256
855CONFIG_HPET=y
856CONFIG_HPET_MMAP=y
857# CONFIG_HANGCHECK_TIMER is not set
858# CONFIG_TCG_TPM is not set
859CONFIG_DEVPORT=y
860CONFIG_I2C=m
861CONFIG_I2C_BOARDINFO=y
862# CONFIG_I2C_CHARDEV is not set
863CONFIG_I2C_HELPER_AUTO=y
864CONFIG_I2C_ALGOBIT=m
865
866#
867# I2C Hardware Bus support
868#
869
870#
871# PC SMBus host controller drivers
872#
873# CONFIG_I2C_ALI1535 is not set
874# CONFIG_I2C_ALI1563 is not set
875# CONFIG_I2C_ALI15X3 is not set
876# CONFIG_I2C_AMD756 is not set
877# CONFIG_I2C_AMD8111 is not set
878# CONFIG_I2C_I801 is not set
879# CONFIG_I2C_ISCH is not set
880# CONFIG_I2C_PIIX4 is not set
881# CONFIG_I2C_NFORCE2 is not set
882# CONFIG_I2C_SIS5595 is not set
883# CONFIG_I2C_SIS630 is not set
884# CONFIG_I2C_SIS96X is not set
885# CONFIG_I2C_VIA is not set
886# CONFIG_I2C_VIAPRO is not set
887
888#
889# I2C system bus drivers (mostly embedded / system-on-chip)
890#
891# CONFIG_I2C_OCORES is not set
892# CONFIG_I2C_SIMTEC is not set
893
894#
895# External I2C/SMBus adapter drivers
896#
897# CONFIG_I2C_PARPORT_LIGHT is not set
898# CONFIG_I2C_TAOS_EVM is not set
899# CONFIG_I2C_TINY_USB is not set
900
901#
902# Graphics adapter I2C/DDC channel drivers
903#
904# CONFIG_I2C_VOODOO3 is not set
905
906#
907# Other I2C/SMBus bus drivers
908#
909# CONFIG_I2C_PCA_PLATFORM is not set
910# CONFIG_I2C_STUB is not set
911
912#
913# Miscellaneous I2C Chip support
914#
915# CONFIG_DS1682 is not set
916# CONFIG_AT24 is not set
917# CONFIG_SENSORS_EEPROM is not set
918# CONFIG_SENSORS_PCF8574 is not set
919# CONFIG_PCF8575 is not set
920# CONFIG_SENSORS_PCA9539 is not set
921# CONFIG_SENSORS_PCF8591 is not set
922# CONFIG_SENSORS_MAX6875 is not set
923# CONFIG_SENSORS_TSL2550 is not set
924# CONFIG_I2C_DEBUG_CORE is not set
925# CONFIG_I2C_DEBUG_ALGO is not set
926# CONFIG_I2C_DEBUG_BUS is not set
927# CONFIG_I2C_DEBUG_CHIP is not set
928# CONFIG_SPI is not set
929# CONFIG_W1 is not set
930CONFIG_POWER_SUPPLY=y
931# CONFIG_POWER_SUPPLY_DEBUG is not set
932# CONFIG_PDA_POWER is not set
933# CONFIG_BATTERY_DS2760 is not set
934# CONFIG_BATTERY_BQ27x00 is not set
935CONFIG_HWMON=y
936# CONFIG_HWMON_VID is not set
937# CONFIG_SENSORS_AD7414 is not set
938# CONFIG_SENSORS_AD7418 is not set
939# CONFIG_SENSORS_ADM1021 is not set
940# CONFIG_SENSORS_ADM1025 is not set
941# CONFIG_SENSORS_ADM1026 is not set
942# CONFIG_SENSORS_ADM1029 is not set
943# CONFIG_SENSORS_ADM1031 is not set
944# CONFIG_SENSORS_ADM9240 is not set
945# CONFIG_SENSORS_ADT7462 is not set
946# CONFIG_SENSORS_ADT7470 is not set
947# CONFIG_SENSORS_ADT7473 is not set
948# CONFIG_SENSORS_ATXP1 is not set
949# CONFIG_SENSORS_DS1621 is not set
950# CONFIG_SENSORS_I5K_AMB is not set
951# CONFIG_SENSORS_F71805F is not set
952# CONFIG_SENSORS_F71882FG is not set
953# CONFIG_SENSORS_F75375S is not set
954# CONFIG_SENSORS_GL518SM is not set
955# CONFIG_SENSORS_GL520SM is not set
956# CONFIG_SENSORS_IT87 is not set
957# CONFIG_SENSORS_LM63 is not set
958# CONFIG_SENSORS_LM75 is not set
959# CONFIG_SENSORS_LM77 is not set
960# CONFIG_SENSORS_LM78 is not set
961# CONFIG_SENSORS_LM80 is not set
962# CONFIG_SENSORS_LM83 is not set
963# CONFIG_SENSORS_LM85 is not set
964# CONFIG_SENSORS_LM87 is not set
965# CONFIG_SENSORS_LM90 is not set
966# CONFIG_SENSORS_LM92 is not set
967# CONFIG_SENSORS_LM93 is not set
968# CONFIG_SENSORS_LTC4245 is not set
969# CONFIG_SENSORS_MAX1619 is not set
970# CONFIG_SENSORS_MAX6650 is not set
971# CONFIG_SENSORS_PC87360 is not set
972# CONFIG_SENSORS_PC87427 is not set
973# CONFIG_SENSORS_SIS5595 is not set
974# CONFIG_SENSORS_DME1737 is not set
975# CONFIG_SENSORS_SMSC47M1 is not set
976# CONFIG_SENSORS_SMSC47M192 is not set
977# CONFIG_SENSORS_SMSC47B397 is not set
978# CONFIG_SENSORS_ADS7828 is not set
979# CONFIG_SENSORS_THMC50 is not set
980# CONFIG_SENSORS_VIA686A is not set
981# CONFIG_SENSORS_VT1211 is not set
982# CONFIG_SENSORS_VT8231 is not set
983# CONFIG_SENSORS_W83781D is not set
984# CONFIG_SENSORS_W83791D is not set
985# CONFIG_SENSORS_W83792D is not set
986# CONFIG_SENSORS_W83793 is not set
987# CONFIG_SENSORS_W83L785TS is not set
988# CONFIG_SENSORS_W83L786NG is not set
989# CONFIG_SENSORS_W83627HF is not set
990# CONFIG_SENSORS_W83627EHF is not set
991# CONFIG_SENSORS_LIS3LV02D is not set
992# CONFIG_HWMON_DEBUG_CHIP is not set
993CONFIG_THERMAL=m
994# CONFIG_THERMAL_HWMON is not set
995# CONFIG_WATCHDOG is not set
996CONFIG_SSB_POSSIBLE=y
997
998#
999# Sonics Silicon Backplane
1000#
1001# CONFIG_SSB is not set
1002
1003#
1004# Multifunction device drivers
1005#
1006# CONFIG_MFD_CORE is not set
1007# CONFIG_MFD_SM501 is not set
1008# CONFIG_HTC_PASIC3 is not set
1009# CONFIG_MFD_TMIO is not set
1010# CONFIG_MFD_WM8400 is not set
1011# CONFIG_MFD_WM8350_I2C is not set
1012# CONFIG_MFD_PCF50633 is not set
1013# CONFIG_REGULATOR is not set
1014
1015#
1016# Multimedia devices
1017#
1018
1019#
1020# Multimedia core support
1021#
1022# CONFIG_VIDEO_DEV is not set
1023# CONFIG_DVB_CORE is not set
1024# CONFIG_VIDEO_MEDIA is not set
1025
1026#
1027# Multimedia drivers
1028#
1029CONFIG_DAB=y
1030# CONFIG_USB_DABUSB is not set
1031
1032#
1033# Graphics support
1034#
1035CONFIG_AGP=m
1036CONFIG_DRM=m
1037CONFIG_DRM_TDFX=m
1038CONFIG_DRM_R128=m
1039CONFIG_DRM_RADEON=m
1040CONFIG_DRM_MGA=m
1041CONFIG_DRM_SIS=m
1042# CONFIG_DRM_VIA is not set
1043# CONFIG_DRM_SAVAGE is not set
1044# CONFIG_VGASTATE is not set
1045# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1046# CONFIG_FB is not set
1047# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1048
1049#
1050# Display device support
1051#
1052# CONFIG_DISPLAY_SUPPORT is not set
1053
1054#
1055# Console display driver support
1056#
1057CONFIG_VGA_CONSOLE=y
1058# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1059CONFIG_DUMMY_CONSOLE=y
1060# CONFIG_SOUND is not set
1061CONFIG_HID_SUPPORT=y
1062CONFIG_HID=y
1063# CONFIG_HID_DEBUG is not set
1064# CONFIG_HIDRAW is not set
1065
1066#
1067# USB Input Devices
1068#
1069CONFIG_USB_HID=y
1070# CONFIG_HID_PID is not set
1071# CONFIG_USB_HIDDEV is not set
1072
1073#
1074# Special HID drivers
1075#
1076CONFIG_HID_COMPAT=y
1077CONFIG_HID_A4TECH=y
1078CONFIG_HID_APPLE=y
1079CONFIG_HID_BELKIN=y
1080CONFIG_HID_CHERRY=y
1081CONFIG_HID_CHICONY=y
1082CONFIG_HID_CYPRESS=y
1083CONFIG_HID_EZKEY=y
1084CONFIG_HID_GYRATION=y
1085CONFIG_HID_LOGITECH=y
1086# CONFIG_LOGITECH_FF is not set
1087# CONFIG_LOGIRUMBLEPAD2_FF is not set
1088CONFIG_HID_MICROSOFT=y
1089CONFIG_HID_MONTEREY=y
1090CONFIG_HID_NTRIG=y
1091CONFIG_HID_PANTHERLORD=y
1092# CONFIG_PANTHERLORD_FF is not set
1093CONFIG_HID_PETALYNX=y
1094CONFIG_HID_SAMSUNG=y
1095CONFIG_HID_SONY=y
1096CONFIG_HID_SUNPLUS=y
1097# CONFIG_GREENASIA_FF is not set
1098CONFIG_HID_TOPSEED=y
1099# CONFIG_THRUSTMASTER_FF is not set
1100# CONFIG_ZEROPLUS_FF is not set
1101CONFIG_USB_SUPPORT=y
1102CONFIG_USB_ARCH_HAS_HCD=y
1103CONFIG_USB_ARCH_HAS_OHCI=y
1104CONFIG_USB_ARCH_HAS_EHCI=y
1105CONFIG_USB=y
1106# CONFIG_USB_DEBUG is not set
1107# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1108
1109#
1110# Miscellaneous USB options
1111#
1112CONFIG_USB_DEVICEFS=y
1113CONFIG_USB_DEVICE_CLASS=y
1114# CONFIG_USB_DYNAMIC_MINORS is not set
1115# CONFIG_USB_SUSPEND is not set
1116# CONFIG_USB_OTG is not set
1117# CONFIG_USB_MON is not set
1118# CONFIG_USB_WUSB is not set
1119# CONFIG_USB_WUSB_CBAF is not set
1120
1121#
1122# USB Host Controller Drivers
1123#
1124# CONFIG_USB_C67X00_HCD is not set
1125CONFIG_USB_EHCI_HCD=m
1126# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1127# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1128# CONFIG_USB_OXU210HP_HCD is not set
1129# CONFIG_USB_ISP116X_HCD is not set
1130# CONFIG_USB_ISP1760_HCD is not set
1131CONFIG_USB_OHCI_HCD=m
1132# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1133# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1134CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1135CONFIG_USB_UHCI_HCD=y
1136# CONFIG_USB_SL811_HCD is not set
1137# CONFIG_USB_R8A66597_HCD is not set
1138# CONFIG_USB_WHCI_HCD is not set
1139# CONFIG_USB_HWA_HCD is not set
1140
1141#
1142# USB Device Class drivers
1143#
1144# CONFIG_USB_ACM is not set
1145# CONFIG_USB_PRINTER is not set
1146# CONFIG_USB_WDM is not set
1147# CONFIG_USB_TMC is not set
1148
1149#
1150# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1151#
1152
1153#
1154# see USB_STORAGE Help for more information
1155#
1156CONFIG_USB_STORAGE=m
1157# CONFIG_USB_STORAGE_DEBUG is not set
1158# CONFIG_USB_STORAGE_DATAFAB is not set
1159# CONFIG_USB_STORAGE_FREECOM is not set
1160# CONFIG_USB_STORAGE_ISD200 is not set
1161# CONFIG_USB_STORAGE_USBAT is not set
1162# CONFIG_USB_STORAGE_SDDR09 is not set
1163# CONFIG_USB_STORAGE_SDDR55 is not set
1164# CONFIG_USB_STORAGE_JUMPSHOT is not set
1165# CONFIG_USB_STORAGE_ALAUDA is not set
1166# CONFIG_USB_STORAGE_ONETOUCH is not set
1167# CONFIG_USB_STORAGE_KARMA is not set
1168# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1169# CONFIG_USB_LIBUSUAL is not set
1170
1171#
1172# USB Imaging devices
1173#
1174# CONFIG_USB_MDC800 is not set
1175# CONFIG_USB_MICROTEK is not set
1176
1177#
1178# USB port drivers
1179#
1180# CONFIG_USB_SERIAL is not set
1181
1182#
1183# USB Miscellaneous drivers
1184#
1185# CONFIG_USB_EMI62 is not set
1186# CONFIG_USB_EMI26 is not set
1187# CONFIG_USB_ADUTUX is not set
1188# CONFIG_USB_SEVSEG is not set
1189# CONFIG_USB_RIO500 is not set
1190# CONFIG_USB_LEGOTOWER is not set
1191# CONFIG_USB_LCD is not set
1192# CONFIG_USB_BERRY_CHARGE is not set
1193# CONFIG_USB_LED is not set
1194# CONFIG_USB_CYPRESS_CY7C63 is not set
1195# CONFIG_USB_CYTHERM is not set
1196# CONFIG_USB_PHIDGET is not set
1197# CONFIG_USB_IDMOUSE is not set
1198# CONFIG_USB_FTDI_ELAN is not set
1199# CONFIG_USB_APPLEDISPLAY is not set
1200# CONFIG_USB_SISUSBVGA is not set
1201# CONFIG_USB_LD is not set
1202# CONFIG_USB_TRANCEVIBRATOR is not set
1203# CONFIG_USB_IOWARRIOR is not set
1204# CONFIG_USB_TEST is not set
1205# CONFIG_USB_ISIGHTFW is not set
1206# CONFIG_USB_VST is not set
1207# CONFIG_USB_GADGET is not set
1208
1209#
1210# OTG and related infrastructure
1211#
1212# CONFIG_UWB is not set
1213# CONFIG_MMC is not set
1214# CONFIG_MEMSTICK is not set
1215# CONFIG_NEW_LEDS is not set
1216# CONFIG_ACCESSIBILITY is not set
1217# CONFIG_INFINIBAND is not set
1218# CONFIG_RTC_CLASS is not set
1219# CONFIG_DMADEVICES is not set
1220# CONFIG_UIO is not set
1221CONFIG_XEN_BALLOON=y
1222CONFIG_XEN_SCRUB_PAGES=y
1223CONFIG_XENFS=y
1224CONFIG_XEN_COMPAT_XENFS=y
1225# CONFIG_STAGING is not set
1226# CONFIG_MSPEC is not set
1227
1228#
1229# File systems
1230#
1231CONFIG_EXT2_FS=y
1232CONFIG_EXT2_FS_XATTR=y
1233CONFIG_EXT2_FS_POSIX_ACL=y
1234CONFIG_EXT2_FS_SECURITY=y
1235# CONFIG_EXT2_FS_XIP is not set
1236CONFIG_EXT3_FS=y
1237CONFIG_EXT3_FS_XATTR=y
1238CONFIG_EXT3_FS_POSIX_ACL=y
1239CONFIG_EXT3_FS_SECURITY=y
1240# CONFIG_EXT4_FS is not set
1241CONFIG_JBD=y
1242CONFIG_FS_MBCACHE=y
1243CONFIG_REISERFS_FS=y
1244# CONFIG_REISERFS_CHECK is not set
1245# CONFIG_REISERFS_PROC_INFO is not set
1246CONFIG_REISERFS_FS_XATTR=y
1247CONFIG_REISERFS_FS_POSIX_ACL=y
1248CONFIG_REISERFS_FS_SECURITY=y
1249# CONFIG_JFS_FS is not set
1250CONFIG_FS_POSIX_ACL=y
1251CONFIG_FILE_LOCKING=y
1252CONFIG_XFS_FS=y
1253# CONFIG_XFS_QUOTA is not set
1254# CONFIG_XFS_POSIX_ACL is not set
1255# CONFIG_XFS_RT is not set
1256# CONFIG_XFS_DEBUG is not set
1257# CONFIG_GFS2_FS is not set
1258# CONFIG_OCFS2_FS is not set
1259# CONFIG_BTRFS_FS is not set
1260CONFIG_DNOTIFY=y
1261CONFIG_INOTIFY=y
1262CONFIG_INOTIFY_USER=y
1263# CONFIG_QUOTA is not set
1264CONFIG_AUTOFS_FS=y
1265CONFIG_AUTOFS4_FS=y
1266# CONFIG_FUSE_FS is not set
1267
1268#
1269# CD-ROM/DVD Filesystems
1270#
1271CONFIG_ISO9660_FS=m
1272CONFIG_JOLIET=y
1273# CONFIG_ZISOFS is not set
1274CONFIG_UDF_FS=m
1275CONFIG_UDF_NLS=y
1276
1277#
1278# DOS/FAT/NT Filesystems
1279#
1280CONFIG_FAT_FS=y
1281# CONFIG_MSDOS_FS is not set
1282CONFIG_VFAT_FS=y
1283CONFIG_FAT_DEFAULT_CODEPAGE=437
1284CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1285CONFIG_NTFS_FS=m
1286# CONFIG_NTFS_DEBUG is not set
1287# CONFIG_NTFS_RW is not set
1288
1289#
1290# Pseudo filesystems
1291#
1292CONFIG_PROC_FS=y
1293CONFIG_PROC_KCORE=y
1294CONFIG_PROC_SYSCTL=y
1295CONFIG_PROC_PAGE_MONITOR=y
1296CONFIG_SYSFS=y
1297CONFIG_TMPFS=y
1298# CONFIG_TMPFS_POSIX_ACL is not set
1299CONFIG_HUGETLBFS=y
1300CONFIG_HUGETLB_PAGE=y
1301# CONFIG_CONFIGFS_FS is not set
1302CONFIG_MISC_FILESYSTEMS=y
1303# CONFIG_ADFS_FS is not set
1304# CONFIG_AFFS_FS is not set
1305# CONFIG_HFS_FS is not set
1306# CONFIG_HFSPLUS_FS is not set
1307# CONFIG_BEFS_FS is not set
1308# CONFIG_BFS_FS is not set
1309# CONFIG_EFS_FS is not set
1310# CONFIG_CRAMFS is not set
1311# CONFIG_SQUASHFS is not set
1312# CONFIG_VXFS_FS is not set
1313# CONFIG_MINIX_FS is not set
1314# CONFIG_OMFS_FS is not set
1315# CONFIG_HPFS_FS is not set
1316# CONFIG_QNX4FS_FS is not set
1317# CONFIG_ROMFS_FS is not set
1318# CONFIG_SYSV_FS is not set
1319# CONFIG_UFS_FS is not set
1320CONFIG_NETWORK_FILESYSTEMS=y
1321CONFIG_NFS_FS=m
1322CONFIG_NFS_V3=y
1323# CONFIG_NFS_V3_ACL is not set
1324CONFIG_NFS_V4=y
1325CONFIG_NFSD=m
1326CONFIG_NFSD_V3=y
1327# CONFIG_NFSD_V3_ACL is not set
1328CONFIG_NFSD_V4=y
1329CONFIG_LOCKD=m
1330CONFIG_LOCKD_V4=y
1331CONFIG_EXPORTFS=m
1332CONFIG_NFS_COMMON=y
1333CONFIG_SUNRPC=m
1334CONFIG_SUNRPC_GSS=m
1335# CONFIG_SUNRPC_REGISTER_V4 is not set
1336CONFIG_RPCSEC_GSS_KRB5=m
1337# CONFIG_RPCSEC_GSS_SPKM3 is not set
1338CONFIG_SMB_FS=m
1339CONFIG_SMB_NLS_DEFAULT=y
1340CONFIG_SMB_NLS_REMOTE="cp437"
1341CONFIG_CIFS=m
1342# CONFIG_CIFS_STATS is not set
1343# CONFIG_CIFS_WEAK_PW_HASH is not set
1344# CONFIG_CIFS_XATTR is not set
1345# CONFIG_CIFS_DEBUG2 is not set
1346# CONFIG_CIFS_EXPERIMENTAL is not set
1347# CONFIG_NCP_FS is not set
1348# CONFIG_CODA_FS is not set
1349# CONFIG_AFS_FS is not set
1350
1351#
1352# Partition Types
1353#
1354CONFIG_PARTITION_ADVANCED=y
1355# CONFIG_ACORN_PARTITION is not set
1356# CONFIG_OSF_PARTITION is not set
1357# CONFIG_AMIGA_PARTITION is not set
1358# CONFIG_ATARI_PARTITION is not set
1359# CONFIG_MAC_PARTITION is not set
1360CONFIG_MSDOS_PARTITION=y
1361# CONFIG_BSD_DISKLABEL is not set
1362# CONFIG_MINIX_SUBPARTITION is not set
1363# CONFIG_SOLARIS_X86_PARTITION is not set
1364# CONFIG_UNIXWARE_DISKLABEL is not set
1365# CONFIG_LDM_PARTITION is not set
1366CONFIG_SGI_PARTITION=y
1367# CONFIG_ULTRIX_PARTITION is not set
1368# CONFIG_SUN_PARTITION is not set
1369# CONFIG_KARMA_PARTITION is not set
1370CONFIG_EFI_PARTITION=y
1371# CONFIG_SYSV68_PARTITION is not set
1372CONFIG_NLS=y
1373CONFIG_NLS_DEFAULT="iso8859-1"
1374CONFIG_NLS_CODEPAGE_437=y
1375CONFIG_NLS_CODEPAGE_737=m
1376CONFIG_NLS_CODEPAGE_775=m
1377CONFIG_NLS_CODEPAGE_850=m
1378CONFIG_NLS_CODEPAGE_852=m
1379CONFIG_NLS_CODEPAGE_855=m
1380CONFIG_NLS_CODEPAGE_857=m
1381CONFIG_NLS_CODEPAGE_860=m
1382CONFIG_NLS_CODEPAGE_861=m
1383CONFIG_NLS_CODEPAGE_862=m
1384CONFIG_NLS_CODEPAGE_863=m
1385CONFIG_NLS_CODEPAGE_864=m
1386CONFIG_NLS_CODEPAGE_865=m
1387CONFIG_NLS_CODEPAGE_866=m
1388CONFIG_NLS_CODEPAGE_869=m
1389CONFIG_NLS_CODEPAGE_936=m
1390CONFIG_NLS_CODEPAGE_950=m
1391CONFIG_NLS_CODEPAGE_932=m
1392CONFIG_NLS_CODEPAGE_949=m
1393CONFIG_NLS_CODEPAGE_874=m
1394CONFIG_NLS_ISO8859_8=m
1395CONFIG_NLS_CODEPAGE_1250=m
1396CONFIG_NLS_CODEPAGE_1251=m
1397# CONFIG_NLS_ASCII is not set
1398CONFIG_NLS_ISO8859_1=y
1399CONFIG_NLS_ISO8859_2=m
1400CONFIG_NLS_ISO8859_3=m
1401CONFIG_NLS_ISO8859_4=m
1402CONFIG_NLS_ISO8859_5=m
1403CONFIG_NLS_ISO8859_6=m
1404CONFIG_NLS_ISO8859_7=m
1405CONFIG_NLS_ISO8859_9=m
1406CONFIG_NLS_ISO8859_13=m
1407CONFIG_NLS_ISO8859_14=m
1408CONFIG_NLS_ISO8859_15=m
1409CONFIG_NLS_KOI8_R=m
1410CONFIG_NLS_KOI8_U=m
1411CONFIG_NLS_UTF8=m
1412# CONFIG_DLM is not set
1413
1414#
1415# Kernel hacking
1416#
1417# CONFIG_PRINTK_TIME is not set
1418CONFIG_ENABLE_WARN_DEPRECATED=y
1419CONFIG_ENABLE_MUST_CHECK=y
1420CONFIG_FRAME_WARN=2048
1421CONFIG_MAGIC_SYSRQ=y
1422# CONFIG_UNUSED_SYMBOLS is not set
1423# CONFIG_DEBUG_FS is not set
1424# CONFIG_HEADERS_CHECK is not set
1425CONFIG_DEBUG_KERNEL=y
1426# CONFIG_DEBUG_SHIRQ is not set
1427CONFIG_DETECT_SOFTLOCKUP=y
1428# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1429CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1430CONFIG_SCHED_DEBUG=y
1431# CONFIG_SCHEDSTATS is not set
1432# CONFIG_TIMER_STATS is not set
1433# CONFIG_DEBUG_OBJECTS is not set
1434# CONFIG_SLUB_DEBUG_ON is not set
1435# CONFIG_SLUB_STATS is not set
1436# CONFIG_DEBUG_RT_MUTEXES is not set
1437# CONFIG_RT_MUTEX_TESTER is not set
1438# CONFIG_DEBUG_SPINLOCK is not set
1439CONFIG_DEBUG_MUTEXES=y
1440# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1441# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1442# CONFIG_DEBUG_KOBJECT is not set
1443# CONFIG_DEBUG_INFO is not set
1444# CONFIG_DEBUG_VM is not set
1445# CONFIG_DEBUG_WRITECOUNT is not set
1446CONFIG_DEBUG_MEMORY_INIT=y
1447# CONFIG_DEBUG_LIST is not set
1448# CONFIG_DEBUG_SG is not set
1449# CONFIG_DEBUG_NOTIFIERS is not set
1450# CONFIG_BOOT_PRINTK_DELAY is not set
1451# CONFIG_RCU_TORTURE_TEST is not set
1452# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1453# CONFIG_BACKTRACE_SELF_TEST is not set
1454# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1455# CONFIG_FAULT_INJECTION is not set
1456# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1457
1458#
1459# Tracers
1460#
1461# CONFIG_SCHED_TRACER is not set
1462# CONFIG_CONTEXT_SWITCH_TRACER is not set
1463# CONFIG_BOOT_TRACER is not set
1464# CONFIG_TRACE_BRANCH_PROFILING is not set
1465# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1466# CONFIG_SAMPLES is not set
1467CONFIG_IA64_GRANULE_16MB=y
1468# CONFIG_IA64_GRANULE_64MB is not set
1469# CONFIG_IA64_PRINT_HAZARDS is not set
1470# CONFIG_DISABLE_VHPT is not set
1471# CONFIG_IA64_DEBUG_CMPXCHG is not set
1472# CONFIG_IA64_DEBUG_IRQ is not set
1473
1474#
1475# Security options
1476#
1477# CONFIG_KEYS is not set
1478# CONFIG_SECURITY is not set
1479# CONFIG_SECURITYFS is not set
1480# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1481CONFIG_CRYPTO=y
1482
1483#
1484# Crypto core or helper
1485#
1486# CONFIG_CRYPTO_FIPS is not set
1487CONFIG_CRYPTO_ALGAPI=y
1488CONFIG_CRYPTO_ALGAPI2=y
1489CONFIG_CRYPTO_AEAD2=y
1490CONFIG_CRYPTO_BLKCIPHER=m
1491CONFIG_CRYPTO_BLKCIPHER2=y
1492CONFIG_CRYPTO_HASH=y
1493CONFIG_CRYPTO_HASH2=y
1494CONFIG_CRYPTO_RNG2=y
1495CONFIG_CRYPTO_MANAGER=m
1496CONFIG_CRYPTO_MANAGER2=y
1497# CONFIG_CRYPTO_GF128MUL is not set
1498# CONFIG_CRYPTO_NULL is not set
1499# CONFIG_CRYPTO_CRYPTD is not set
1500# CONFIG_CRYPTO_AUTHENC is not set
1501# CONFIG_CRYPTO_TEST is not set
1502
1503#
1504# Authenticated Encryption with Associated Data
1505#
1506# CONFIG_CRYPTO_CCM is not set
1507# CONFIG_CRYPTO_GCM is not set
1508# CONFIG_CRYPTO_SEQIV is not set
1509
1510#
1511# Block modes
1512#
1513CONFIG_CRYPTO_CBC=m
1514# CONFIG_CRYPTO_CTR is not set
1515# CONFIG_CRYPTO_CTS is not set
1516CONFIG_CRYPTO_ECB=m
1517# CONFIG_CRYPTO_LRW is not set
1518CONFIG_CRYPTO_PCBC=m
1519# CONFIG_CRYPTO_XTS is not set
1520
1521#
1522# Hash modes
1523#
1524# CONFIG_CRYPTO_HMAC is not set
1525# CONFIG_CRYPTO_XCBC is not set
1526
1527#
1528# Digest
1529#
1530# CONFIG_CRYPTO_CRC32C is not set
1531# CONFIG_CRYPTO_MD4 is not set
1532CONFIG_CRYPTO_MD5=y
1533# CONFIG_CRYPTO_MICHAEL_MIC is not set
1534# CONFIG_CRYPTO_RMD128 is not set
1535# CONFIG_CRYPTO_RMD160 is not set
1536# CONFIG_CRYPTO_RMD256 is not set
1537# CONFIG_CRYPTO_RMD320 is not set
1538# CONFIG_CRYPTO_SHA1 is not set
1539# CONFIG_CRYPTO_SHA256 is not set
1540# CONFIG_CRYPTO_SHA512 is not set
1541# CONFIG_CRYPTO_TGR192 is not set
1542# CONFIG_CRYPTO_WP512 is not set
1543
1544#
1545# Ciphers
1546#
1547# CONFIG_CRYPTO_AES is not set
1548# CONFIG_CRYPTO_ANUBIS is not set
1549# CONFIG_CRYPTO_ARC4 is not set
1550# CONFIG_CRYPTO_BLOWFISH is not set
1551# CONFIG_CRYPTO_CAMELLIA is not set
1552# CONFIG_CRYPTO_CAST5 is not set
1553# CONFIG_CRYPTO_CAST6 is not set
1554CONFIG_CRYPTO_DES=m
1555# CONFIG_CRYPTO_FCRYPT is not set
1556# CONFIG_CRYPTO_KHAZAD is not set
1557# CONFIG_CRYPTO_SALSA20 is not set
1558# CONFIG_CRYPTO_SEED is not set
1559# CONFIG_CRYPTO_SERPENT is not set
1560# CONFIG_CRYPTO_TEA is not set
1561# CONFIG_CRYPTO_TWOFISH is not set
1562
1563#
1564# Compression
1565#
1566# CONFIG_CRYPTO_DEFLATE is not set
1567# CONFIG_CRYPTO_LZO is not set
1568
1569#
1570# Random Number Generation
1571#
1572# CONFIG_CRYPTO_ANSI_CPRNG is not set
1573CONFIG_CRYPTO_HW=y
1574# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1575CONFIG_HAVE_KVM=y
1576CONFIG_VIRTUALIZATION=y
1577# CONFIG_KVM is not set
1578# CONFIG_VIRTIO_PCI is not set
1579# CONFIG_VIRTIO_BALLOON is not set
1580
1581#
1582# Library routines
1583#
1584CONFIG_BITREVERSE=y
1585CONFIG_GENERIC_FIND_LAST_BIT=y
1586# CONFIG_CRC_CCITT is not set
1587# CONFIG_CRC16 is not set
1588# CONFIG_CRC_T10DIF is not set
1589CONFIG_CRC_ITU_T=m
1590CONFIG_CRC32=y
1591# CONFIG_CRC7 is not set
1592# CONFIG_LIBCRC32C is not set
1593CONFIG_PLIST=y
1594CONFIG_HAS_IOMEM=y
1595CONFIG_HAS_IOPORT=y
1596CONFIG_HAS_DMA=y
1597CONFIG_GENERIC_HARDIRQS=y
1598CONFIG_GENERIC_IRQ_PROBE=y
1599CONFIG_GENERIC_PENDING_IRQ=y
1600CONFIG_IRQ_PER_CPU=y
1601# CONFIG_IOMMU_API is not set
diff --git a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig
index 0a06b1333c95..514f0635dafe 100644
--- a/arch/ia64/configs/zx1_defconfig
+++ b/arch/ia64/configs/zx1_defconfig
@@ -841,7 +841,7 @@ CONFIG_I2C_ALGOPCF=y
841# 841#
842# CONFIG_SENSORS_DS1337 is not set 842# CONFIG_SENSORS_DS1337 is not set
843# CONFIG_SENSORS_DS1374 is not set 843# CONFIG_SENSORS_DS1374 is not set
844# CONFIG_SENSORS_EEPROM is not set 844# CONFIG_EEPROM_LEGACY is not set
845# CONFIG_SENSORS_PCF8574 is not set 845# CONFIG_SENSORS_PCF8574 is not set
846# CONFIG_SENSORS_PCA9539 is not set 846# CONFIG_SENSORS_PCA9539 is not set
847# CONFIG_SENSORS_PCF8591 is not set 847# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c
index d98f0f4ff83f..6d5e6c5630e3 100644
--- a/arch/ia64/hp/common/sba_iommu.c
+++ b/arch/ia64/hp/common/sba_iommu.c
@@ -906,7 +906,7 @@ sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
906 * @dir: R/W or both. 906 * @dir: R/W or both.
907 * @attrs: optional dma attributes 907 * @attrs: optional dma attributes
908 * 908 *
909 * See Documentation/DMA-mapping.txt 909 * See Documentation/PCI/PCI-DMA-mapping.txt
910 */ 910 */
911dma_addr_t 911dma_addr_t
912sba_map_single_attrs(struct device *dev, void *addr, size_t size, int dir, 912sba_map_single_attrs(struct device *dev, void *addr, size_t size, int dir,
@@ -1024,7 +1024,7 @@ sba_mark_clean(struct ioc *ioc, dma_addr_t iova, size_t size)
1024 * @dir: R/W or both. 1024 * @dir: R/W or both.
1025 * @attrs: optional dma attributes 1025 * @attrs: optional dma attributes
1026 * 1026 *
1027 * See Documentation/DMA-mapping.txt 1027 * See Documentation/PCI/PCI-DMA-mapping.txt
1028 */ 1028 */
1029void sba_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size, 1029void sba_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size,
1030 int dir, struct dma_attrs *attrs) 1030 int dir, struct dma_attrs *attrs)
@@ -1102,7 +1102,7 @@ EXPORT_SYMBOL(sba_unmap_single_attrs);
1102 * @size: number of bytes mapped in driver buffer. 1102 * @size: number of bytes mapped in driver buffer.
1103 * @dma_handle: IOVA of new buffer. 1103 * @dma_handle: IOVA of new buffer.
1104 * 1104 *
1105 * See Documentation/DMA-mapping.txt 1105 * See Documentation/PCI/PCI-DMA-mapping.txt
1106 */ 1106 */
1107void * 1107void *
1108sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flags) 1108sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flags)
@@ -1165,7 +1165,7 @@ sba_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp
1165 * @vaddr: virtual address IOVA of "consistent" buffer. 1165 * @vaddr: virtual address IOVA of "consistent" buffer.
1166 * @dma_handler: IO virtual address of "consistent" buffer. 1166 * @dma_handler: IO virtual address of "consistent" buffer.
1167 * 1167 *
1168 * See Documentation/DMA-mapping.txt 1168 * See Documentation/PCI/PCI-DMA-mapping.txt
1169 */ 1169 */
1170void sba_free_coherent (struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle) 1170void sba_free_coherent (struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle)
1171{ 1171{
@@ -1420,7 +1420,7 @@ sba_coalesce_chunks(struct ioc *ioc, struct device *dev,
1420 * @dir: R/W or both. 1420 * @dir: R/W or both.
1421 * @attrs: optional dma attributes 1421 * @attrs: optional dma attributes
1422 * 1422 *
1423 * See Documentation/DMA-mapping.txt 1423 * See Documentation/PCI/PCI-DMA-mapping.txt
1424 */ 1424 */
1425int sba_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents, 1425int sba_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents,
1426 int dir, struct dma_attrs *attrs) 1426 int dir, struct dma_attrs *attrs)
@@ -1512,7 +1512,7 @@ EXPORT_SYMBOL(sba_map_sg_attrs);
1512 * @dir: R/W or both. 1512 * @dir: R/W or both.
1513 * @attrs: optional dma attributes 1513 * @attrs: optional dma attributes
1514 * 1514 *
1515 * See Documentation/DMA-mapping.txt 1515 * See Documentation/PCI/PCI-DMA-mapping.txt
1516 */ 1516 */
1517void sba_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist, 1517void sba_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist,
1518 int nents, int dir, struct dma_attrs *attrs) 1518 int nents, int dir, struct dma_attrs *attrs)
diff --git a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S
index a8cf19958850..a46f8395e9a5 100644
--- a/arch/ia64/ia32/ia32_entry.S
+++ b/arch/ia64/ia32/ia32_entry.S
@@ -220,7 +220,7 @@ ia32_syscall_table:
220 data8 sys_mkdir 220 data8 sys_mkdir
221 data8 sys_rmdir /* 40 */ 221 data8 sys_rmdir /* 40 */
222 data8 sys_dup 222 data8 sys_dup
223 data8 sys_pipe 223 data8 sys_ia64_pipe
224 data8 compat_sys_times 224 data8 compat_sys_times
225 data8 sys_ni_syscall /* old prof syscall holder */ 225 data8 sys_ni_syscall /* old prof syscall holder */
226 data8 sys32_brk /* 45 */ 226 data8 sys32_brk /* 45 */
diff --git a/arch/ia64/include/asm/Kbuild b/arch/ia64/include/asm/Kbuild
index 3b25bd9dca91..ccbe8ae47a61 100644
--- a/arch/ia64/include/asm/Kbuild
+++ b/arch/ia64/include/asm/Kbuild
@@ -14,4 +14,3 @@ unifdef-y += gcc_intrin.h
14unifdef-y += intrinsics.h 14unifdef-y += intrinsics.h
15unifdef-y += perfmon.h 15unifdef-y += perfmon.h
16unifdef-y += ustack.h 16unifdef-y += ustack.h
17unifdef-y += swab.h
diff --git a/arch/ia64/include/asm/byteorder.h b/arch/ia64/include/asm/byteorder.h
index 0f84c5cb703d..a8dd73558150 100644
--- a/arch/ia64/include/asm/byteorder.h
+++ b/arch/ia64/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _ASM_IA64_BYTEORDER_H 1#ifndef _ASM_IA64_BYTEORDER_H
2#define _ASM_IA64_BYTEORDER_H 2#define _ASM_IA64_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
6 5
7#endif /* _ASM_IA64_BYTEORDER_H */ 6#endif /* _ASM_IA64_BYTEORDER_H */
diff --git a/arch/ia64/include/asm/dma-mapping.h b/arch/ia64/include/asm/dma-mapping.h
index bbab7e2b0fc9..1f912d927585 100644
--- a/arch/ia64/include/asm/dma-mapping.h
+++ b/arch/ia64/include/asm/dma-mapping.h
@@ -9,6 +9,8 @@
9#include <linux/scatterlist.h> 9#include <linux/scatterlist.h>
10#include <asm/swiotlb.h> 10#include <asm/swiotlb.h>
11 11
12#define ARCH_HAS_DMA_GET_REQUIRED_MASK
13
12struct dma_mapping_ops { 14struct dma_mapping_ops {
13 int (*mapping_error)(struct device *dev, 15 int (*mapping_error)(struct device *dev,
14 dma_addr_t dma_addr); 16 dma_addr_t dma_addr);
diff --git a/arch/ia64/include/asm/fpu.h b/arch/ia64/include/asm/fpu.h
index 3859558ff0a4..0c26157cffa5 100644
--- a/arch/ia64/include/asm/fpu.h
+++ b/arch/ia64/include/asm/fpu.h
@@ -6,8 +6,6 @@
6 * David Mosberger-Tang <davidm@hpl.hp.com> 6 * David Mosberger-Tang <davidm@hpl.hp.com>
7 */ 7 */
8 8
9#include <asm/types.h>
10
11/* floating point status register: */ 9/* floating point status register: */
12#define FPSR_TRAP_VD (1 << 0) /* invalid op trap disabled */ 10#define FPSR_TRAP_VD (1 << 0) /* invalid op trap disabled */
13#define FPSR_TRAP_DD (1 << 1) /* denormal trap disabled */ 11#define FPSR_TRAP_DD (1 << 1) /* denormal trap disabled */
diff --git a/arch/ia64/include/asm/gcc_intrin.h b/arch/ia64/include/asm/gcc_intrin.h
index 0f5b55921758..c2c5fd8fcac4 100644
--- a/arch/ia64/include/asm/gcc_intrin.h
+++ b/arch/ia64/include/asm/gcc_intrin.h
@@ -6,6 +6,7 @@
6 * Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com> 6 * Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com>
7 */ 7 */
8 8
9#include <linux/types.h>
9#include <linux/compiler.h> 10#include <linux/compiler.h>
10 11
11/* define this macro to get some asm stmts included in 'c' files */ 12/* define this macro to get some asm stmts included in 'c' files */
diff --git a/arch/ia64/include/asm/intrinsics.h b/arch/ia64/include/asm/intrinsics.h
index a3e44a5ed497..c47830e26cb7 100644
--- a/arch/ia64/include/asm/intrinsics.h
+++ b/arch/ia64/include/asm/intrinsics.h
@@ -10,6 +10,7 @@
10 10
11#ifndef __ASSEMBLY__ 11#ifndef __ASSEMBLY__
12 12
13#include <linux/types.h>
13/* include compiler specific intrinsics */ 14/* include compiler specific intrinsics */
14#include <asm/ia64regs.h> 15#include <asm/ia64regs.h>
15#ifdef __INTEL_COMPILER 16#ifdef __INTEL_COMPILER
diff --git a/arch/ia64/include/asm/kvm.h b/arch/ia64/include/asm/kvm.h
index 68aa6da807c1..2b0a38e84705 100644
--- a/arch/ia64/include/asm/kvm.h
+++ b/arch/ia64/include/asm/kvm.h
@@ -21,10 +21,13 @@
21 * 21 *
22 */ 22 */
23 23
24#include <asm/types.h> 24#include <linux/types.h>
25
26#include <linux/ioctl.h> 25#include <linux/ioctl.h>
27 26
27/* Select x86 specific features in <linux/kvm.h> */
28#define __KVM_HAVE_IOAPIC
29#define __KVM_HAVE_DEVICE_ASSIGNMENT
30
28/* Architectural interrupt line count. */ 31/* Architectural interrupt line count. */
29#define KVM_NR_INTERRUPTS 256 32#define KVM_NR_INTERRUPTS 256
30 33
diff --git a/arch/ia64/include/asm/machvec.h b/arch/ia64/include/asm/machvec.h
index 59c17e446683..fe87b2121707 100644
--- a/arch/ia64/include/asm/machvec.h
+++ b/arch/ia64/include/asm/machvec.h
@@ -62,6 +62,7 @@ typedef dma_addr_t ia64_mv_dma_map_single_attrs (struct device *, void *, size_t
62typedef void ia64_mv_dma_unmap_single_attrs (struct device *, dma_addr_t, size_t, int, struct dma_attrs *); 62typedef void ia64_mv_dma_unmap_single_attrs (struct device *, dma_addr_t, size_t, int, struct dma_attrs *);
63typedef int ia64_mv_dma_map_sg_attrs (struct device *, struct scatterlist *, int, int, struct dma_attrs *); 63typedef int ia64_mv_dma_map_sg_attrs (struct device *, struct scatterlist *, int, int, struct dma_attrs *);
64typedef void ia64_mv_dma_unmap_sg_attrs (struct device *, struct scatterlist *, int, int, struct dma_attrs *); 64typedef void ia64_mv_dma_unmap_sg_attrs (struct device *, struct scatterlist *, int, int, struct dma_attrs *);
65typedef u64 ia64_mv_dma_get_required_mask (struct device *);
65 66
66/* 67/*
67 * WARNING: The legacy I/O space is _architected_. Platforms are 68 * WARNING: The legacy I/O space is _architected_. Platforms are
@@ -159,6 +160,7 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *);
159# define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device 160# define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device
160# define platform_dma_mapping_error ia64_mv.dma_mapping_error 161# define platform_dma_mapping_error ia64_mv.dma_mapping_error
161# define platform_dma_supported ia64_mv.dma_supported 162# define platform_dma_supported ia64_mv.dma_supported
163# define platform_dma_get_required_mask ia64_mv.dma_get_required_mask
162# define platform_irq_to_vector ia64_mv.irq_to_vector 164# define platform_irq_to_vector ia64_mv.irq_to_vector
163# define platform_local_vector_to_irq ia64_mv.local_vector_to_irq 165# define platform_local_vector_to_irq ia64_mv.local_vector_to_irq
164# define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem 166# define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem
@@ -213,6 +215,7 @@ struct ia64_machine_vector {
213 ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; 215 ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device;
214 ia64_mv_dma_mapping_error *dma_mapping_error; 216 ia64_mv_dma_mapping_error *dma_mapping_error;
215 ia64_mv_dma_supported *dma_supported; 217 ia64_mv_dma_supported *dma_supported;
218 ia64_mv_dma_get_required_mask *dma_get_required_mask;
216 ia64_mv_irq_to_vector *irq_to_vector; 219 ia64_mv_irq_to_vector *irq_to_vector;
217 ia64_mv_local_vector_to_irq *local_vector_to_irq; 220 ia64_mv_local_vector_to_irq *local_vector_to_irq;
218 ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; 221 ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem;
@@ -263,6 +266,7 @@ struct ia64_machine_vector {
263 platform_dma_sync_sg_for_device, \ 266 platform_dma_sync_sg_for_device, \
264 platform_dma_mapping_error, \ 267 platform_dma_mapping_error, \
265 platform_dma_supported, \ 268 platform_dma_supported, \
269 platform_dma_get_required_mask, \
266 platform_irq_to_vector, \ 270 platform_irq_to_vector, \
267 platform_local_vector_to_irq, \ 271 platform_local_vector_to_irq, \
268 platform_pci_get_legacy_mem, \ 272 platform_pci_get_legacy_mem, \
@@ -366,6 +370,9 @@ extern void machvec_init_from_cmdline(const char *cmdline);
366#ifndef platform_dma_supported 370#ifndef platform_dma_supported
367# define platform_dma_supported swiotlb_dma_supported 371# define platform_dma_supported swiotlb_dma_supported
368#endif 372#endif
373#ifndef platform_dma_get_required_mask
374# define platform_dma_get_required_mask ia64_dma_get_required_mask
375#endif
369#ifndef platform_irq_to_vector 376#ifndef platform_irq_to_vector
370# define platform_irq_to_vector __ia64_irq_to_vector 377# define platform_irq_to_vector __ia64_irq_to_vector
371#endif 378#endif
diff --git a/arch/ia64/include/asm/machvec_init.h b/arch/ia64/include/asm/machvec_init.h
index ef964b286842..37a469849ab9 100644
--- a/arch/ia64/include/asm/machvec_init.h
+++ b/arch/ia64/include/asm/machvec_init.h
@@ -3,6 +3,7 @@
3 3
4extern ia64_mv_send_ipi_t ia64_send_ipi; 4extern ia64_mv_send_ipi_t ia64_send_ipi;
5extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge; 5extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge;
6extern ia64_mv_dma_get_required_mask ia64_dma_get_required_mask;
6extern ia64_mv_irq_to_vector __ia64_irq_to_vector; 7extern ia64_mv_irq_to_vector __ia64_irq_to_vector;
7extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq; 8extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq;
8extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem; 9extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem;
diff --git a/arch/ia64/include/asm/machvec_sn2.h b/arch/ia64/include/asm/machvec_sn2.h
index 781308ea7b88..f1a6e0d6dfa5 100644
--- a/arch/ia64/include/asm/machvec_sn2.h
+++ b/arch/ia64/include/asm/machvec_sn2.h
@@ -67,6 +67,7 @@ extern ia64_mv_dma_sync_single_for_device sn_dma_sync_single_for_device;
67extern ia64_mv_dma_sync_sg_for_device sn_dma_sync_sg_for_device; 67extern ia64_mv_dma_sync_sg_for_device sn_dma_sync_sg_for_device;
68extern ia64_mv_dma_mapping_error sn_dma_mapping_error; 68extern ia64_mv_dma_mapping_error sn_dma_mapping_error;
69extern ia64_mv_dma_supported sn_dma_supported; 69extern ia64_mv_dma_supported sn_dma_supported;
70extern ia64_mv_dma_get_required_mask sn_dma_get_required_mask;
70extern ia64_mv_migrate_t sn_migrate; 71extern ia64_mv_migrate_t sn_migrate;
71extern ia64_mv_kernel_launch_event_t sn_kernel_launch_event; 72extern ia64_mv_kernel_launch_event_t sn_kernel_launch_event;
72extern ia64_mv_setup_msi_irq_t sn_setup_msi_irq; 73extern ia64_mv_setup_msi_irq_t sn_setup_msi_irq;
@@ -123,6 +124,7 @@ extern ia64_mv_pci_fixup_bus_t sn_pci_fixup_bus;
123#define platform_dma_sync_sg_for_device sn_dma_sync_sg_for_device 124#define platform_dma_sync_sg_for_device sn_dma_sync_sg_for_device
124#define platform_dma_mapping_error sn_dma_mapping_error 125#define platform_dma_mapping_error sn_dma_mapping_error
125#define platform_dma_supported sn_dma_supported 126#define platform_dma_supported sn_dma_supported
127#define platform_dma_get_required_mask sn_dma_get_required_mask
126#define platform_migrate sn_migrate 128#define platform_migrate sn_migrate
127#define platform_kernel_launch_event sn_kernel_launch_event 129#define platform_kernel_launch_event sn_kernel_launch_event
128#ifdef CONFIG_PCI_MSI 130#ifdef CONFIG_PCI_MSI
diff --git a/arch/ia64/include/asm/mmzone.h b/arch/ia64/include/asm/mmzone.h
index 34efe88eb849..f2ca32069b3f 100644
--- a/arch/ia64/include/asm/mmzone.h
+++ b/arch/ia64/include/asm/mmzone.h
@@ -31,10 +31,6 @@ static inline int pfn_to_nid(unsigned long pfn)
31#endif 31#endif
32} 32}
33 33
34#ifdef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
35extern int early_pfn_to_nid(unsigned long pfn);
36#endif
37
38#ifdef CONFIG_IA64_DIG /* DIG systems are small */ 34#ifdef CONFIG_IA64_DIG /* DIG systems are small */
39# define MAX_PHYSNODE_ID 8 35# define MAX_PHYSNODE_ID 8
40# define NR_NODE_MEMBLKS (MAX_NUMNODES * 8) 36# define NR_NODE_MEMBLKS (MAX_NUMNODES * 8)
diff --git a/arch/ia64/include/asm/percpu.h b/arch/ia64/include/asm/percpu.h
index 77f30b664b4e..30cf46534dd2 100644
--- a/arch/ia64/include/asm/percpu.h
+++ b/arch/ia64/include/asm/percpu.h
@@ -27,12 +27,12 @@ extern void *per_cpu_init(void);
27 27
28#else /* ! SMP */ 28#else /* ! SMP */
29 29
30#define PER_CPU_ATTRIBUTES __attribute__((__section__(".data.percpu")))
31
32#define per_cpu_init() (__phys_per_cpu_start) 30#define per_cpu_init() (__phys_per_cpu_start)
33 31
34#endif /* SMP */ 32#endif /* SMP */
35 33
34#define PER_CPU_BASE_SECTION ".data.percpu"
35
36/* 36/*
37 * Be extremely careful when taking the address of this variable! Due to virtual 37 * Be extremely careful when taking the address of this variable! Due to virtual
38 * remapping, it is different from the canonical address returned by __get_cpu_var(var)! 38 * remapping, it is different from the canonical address returned by __get_cpu_var(var)!
diff --git a/arch/ia64/include/asm/sn/bte.h b/arch/ia64/include/asm/sn/bte.h
index 5efecf06c9a4..96798d2da7c2 100644
--- a/arch/ia64/include/asm/sn/bte.h
+++ b/arch/ia64/include/asm/sn/bte.h
@@ -39,7 +39,7 @@
39/* BTE status register only supports 16 bits for length field */ 39/* BTE status register only supports 16 bits for length field */
40#define BTE_LEN_BITS (16) 40#define BTE_LEN_BITS (16)
41#define BTE_LEN_MASK ((1 << BTE_LEN_BITS) - 1) 41#define BTE_LEN_MASK ((1 << BTE_LEN_BITS) - 1)
42#define BTE_MAX_XFER ((1 << BTE_LEN_BITS) * L1_CACHE_BYTES) 42#define BTE_MAX_XFER (BTE_LEN_MASK << L1_CACHE_SHIFT)
43 43
44 44
45/* Define hardware */ 45/* Define hardware */
diff --git a/arch/ia64/include/asm/swab.h b/arch/ia64/include/asm/swab.h
index 6aa58b699eea..c89a8cb5d8a5 100644
--- a/arch/ia64/include/asm/swab.h
+++ b/arch/ia64/include/asm/swab.h
@@ -6,7 +6,7 @@
6 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co. 6 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co.
7 */ 7 */
8 8
9#include <asm/types.h> 9#include <linux/types.h>
10#include <asm/intrinsics.h> 10#include <asm/intrinsics.h>
11#include <linux/compiler.h> 11#include <linux/compiler.h>
12 12
diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h
index f791576355ad..9015979ebe0f 100644
--- a/arch/ia64/include/asm/unistd.h
+++ b/arch/ia64/include/asm/unistd.h
@@ -364,7 +364,7 @@ struct pt_regs;
364struct sigaction; 364struct sigaction;
365long sys_execve(char __user *filename, char __user * __user *argv, 365long sys_execve(char __user *filename, char __user * __user *argv,
366 char __user * __user *envp, struct pt_regs *regs); 366 char __user * __user *envp, struct pt_regs *regs);
367asmlinkage long sys_pipe(void); 367asmlinkage long sys_ia64_pipe(void);
368asmlinkage long sys_rt_sigaction(int sig, 368asmlinkage long sys_rt_sigaction(int sig,
369 const struct sigaction __user *act, 369 const struct sigaction __user *act,
370 struct sigaction __user *oact, 370 struct sigaction __user *oact,
diff --git a/arch/ia64/include/asm/uv/uv.h b/arch/ia64/include/asm/uv/uv.h
new file mode 100644
index 000000000000..61b5bdfd980e
--- /dev/null
+++ b/arch/ia64/include/asm/uv/uv.h
@@ -0,0 +1,13 @@
1#ifndef _ASM_IA64_UV_UV_H
2#define _ASM_IA64_UV_UV_H
3
4#include <asm/system.h>
5#include <asm/sn/simulator.h>
6
7static inline int is_uv_system(void)
8{
9 /* temporary support for running on hardware simulator */
10 return IS_MEDUSA() || ia64_platform_is("uv");
11}
12
13#endif /* _ASM_IA64_UV_UV_H */
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index d541671caf4a..bdef2ce38c8b 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -199,6 +199,10 @@ char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size)
199 return __va(phys_addr); 199 return __va(phys_addr);
200} 200}
201 201
202void __init __acpi_unmap_table(char *map, unsigned long size)
203{
204}
205
202/* -------------------------------------------------------------------------- 206/* --------------------------------------------------------------------------
203 Boot-time Table Parsing 207 Boot-time Table Parsing
204 -------------------------------------------------------------------------- */ 208 -------------------------------------------------------------------------- */
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index d435f4a7a96c..e5341e2c1175 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -1442,7 +1442,7 @@ sys_call_table:
1442 data8 sys_mkdir // 1055 1442 data8 sys_mkdir // 1055
1443 data8 sys_rmdir 1443 data8 sys_rmdir
1444 data8 sys_dup 1444 data8 sys_dup
1445 data8 sys_pipe 1445 data8 sys_ia64_pipe
1446 data8 sys_times 1446 data8 sys_times
1447 data8 ia64_brk // 1060 1447 data8 ia64_brk // 1060
1448 data8 sys_setgid 1448 data8 sys_setgid
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c
index 006ad366a454..166e0d839fa0 100644
--- a/arch/ia64/kernel/iosapic.c
+++ b/arch/ia64/kernel/iosapic.c
@@ -507,7 +507,7 @@ static int iosapic_find_sharable_irq(unsigned long trigger, unsigned long pol)
507 if (trigger == IOSAPIC_EDGE) 507 if (trigger == IOSAPIC_EDGE)
508 return -EINVAL; 508 return -EINVAL;
509 509
510 for (i = 0; i <= NR_IRQS; i++) { 510 for (i = 0; i < NR_IRQS; i++) {
511 info = &iosapic_intr_info[i]; 511 info = &iosapic_intr_info[i];
512 if (info->trigger == trigger && info->polarity == pol && 512 if (info->trigger == trigger && info->polarity == pol &&
513 (info->dmode == IOSAPIC_FIXED || 513 (info->dmode == IOSAPIC_FIXED ||
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c
index f90be51b1123..9adac441ac9b 100644
--- a/arch/ia64/kernel/kprobes.c
+++ b/arch/ia64/kernel/kprobes.c
@@ -870,7 +870,7 @@ static int __kprobes pre_kprobes_handler(struct die_args *args)
870 return 1; 870 return 1;
871 871
872ss_probe: 872ss_probe:
873#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PM) 873#if !defined(CONFIG_PREEMPT) || defined(CONFIG_FREEZER)
874 if (p->ainsn.inst_flag == INST_FLAG_BOOSTABLE && !p->post_handler) { 874 if (p->ainsn.inst_flag == INST_FLAG_BOOSTABLE && !p->post_handler) {
875 /* Boost up -- we can execute copied instructions directly */ 875 /* Boost up -- we can execute copied instructions directly */
876 ia64_psr(regs)->ri = p->ainsn.slot; 876 ia64_psr(regs)->ri = p->ainsn.slot;
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index 11463994a7d5..52290547c85b 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -736,14 +736,15 @@ int __cpu_disable(void)
736 return -EBUSY; 736 return -EBUSY;
737 } 737 }
738 738
739 cpu_clear(cpu, cpu_online_map);
740
739 if (migrate_platform_irqs(cpu)) { 741 if (migrate_platform_irqs(cpu)) {
740 cpu_set(cpu, cpu_online_map); 742 cpu_set(cpu, cpu_online_map);
741 return (-EBUSY); 743 return -EBUSY;
742 } 744 }
743 745
744 remove_siblinginfo(cpu); 746 remove_siblinginfo(cpu);
745 fixup_irqs(); 747 fixup_irqs();
746 cpu_clear(cpu, cpu_online_map);
747 local_flush_tlb_all(); 748 local_flush_tlb_all();
748 cpu_clear(cpu, cpu_callin_map); 749 cpu_clear(cpu, cpu_callin_map);
749 return 0; 750 return 0;
diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c
index bcbb6d8792d3..92ed83f34036 100644
--- a/arch/ia64/kernel/sys_ia64.c
+++ b/arch/ia64/kernel/sys_ia64.c
@@ -154,7 +154,7 @@ out:
154 * and r9) as this is faster than doing a copy_to_user(). 154 * and r9) as this is faster than doing a copy_to_user().
155 */ 155 */
156asmlinkage long 156asmlinkage long
157sys_pipe (void) 157sys_ia64_pipe (void)
158{ 158{
159 struct pt_regs *regs = task_pt_regs(current); 159 struct pt_regs *regs = task_pt_regs(current);
160 int fd[2]; 160 int fd[2];
diff --git a/arch/ia64/kernel/unaligned.c b/arch/ia64/kernel/unaligned.c
index ff0e7c10faa7..6db08599ebbc 100644
--- a/arch/ia64/kernel/unaligned.c
+++ b/arch/ia64/kernel/unaligned.c
@@ -59,6 +59,7 @@ dump (const char *str, void *vp, size_t len)
59 * (i.e. don't allow attacker to fill up logs with unaligned accesses). 59 * (i.e. don't allow attacker to fill up logs with unaligned accesses).
60 */ 60 */
61int no_unaligned_warning; 61int no_unaligned_warning;
62int unaligned_dump_stack;
62static int noprint_warning; 63static int noprint_warning;
63 64
64/* 65/*
@@ -1371,9 +1372,12 @@ ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs)
1371 } 1372 }
1372 } 1373 }
1373 } else { 1374 } else {
1374 if (within_logging_rate_limit()) 1375 if (within_logging_rate_limit()) {
1375 printk(KERN_WARNING "kernel unaligned access to 0x%016lx, ip=0x%016lx\n", 1376 printk(KERN_WARNING "kernel unaligned access to 0x%016lx, ip=0x%016lx\n",
1376 ifa, regs->cr_iip + ipsr->ri); 1377 ifa, regs->cr_iip + ipsr->ri);
1378 if (unaligned_dump_stack)
1379 dump_stack();
1380 }
1377 set_fs(KERNEL_DS); 1381 set_fs(KERNEL_DS);
1378 } 1382 }
1379 1383
diff --git a/arch/ia64/kernel/unwind.c b/arch/ia64/kernel/unwind.c
index 67810b77d998..b6c0e63a0bf6 100644
--- a/arch/ia64/kernel/unwind.c
+++ b/arch/ia64/kernel/unwind.c
@@ -2149,7 +2149,7 @@ unw_remove_unwind_table (void *handle)
2149 2149
2150 /* next, remove hash table entries for this table */ 2150 /* next, remove hash table entries for this table */
2151 2151
2152 for (index = 0; index <= UNW_HASH_SIZE; ++index) { 2152 for (index = 0; index < UNW_HASH_SIZE; ++index) {
2153 tmp = unw.cache + unw.hash[index]; 2153 tmp = unw.cache + unw.hash[index];
2154 if (unw.hash[index] >= UNW_CACHE_SIZE 2154 if (unw.hash[index] >= UNW_CACHE_SIZE
2155 || tmp->ip < table->start || tmp->ip >= table->end) 2155 || tmp->ip < table->start || tmp->ip >= table->end)
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
index 10a7d47e8510..f45e4e508eca 100644
--- a/arch/ia64/kernel/vmlinux.lds.S
+++ b/arch/ia64/kernel/vmlinux.lds.S
@@ -219,6 +219,7 @@ SECTIONS
219 .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET) 219 .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET)
220 { 220 {
221 __per_cpu_start = .; 221 __per_cpu_start = .;
222 *(.data.percpu.page_aligned)
222 *(.data.percpu) 223 *(.data.percpu)
223 *(.data.percpu.shared_aligned) 224 *(.data.percpu.shared_aligned)
224 __per_cpu_end = .; 225 __per_cpu_end = .;
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 4e586f6110aa..28f982045f29 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -1337,6 +1337,10 @@ static void kvm_release_vm_pages(struct kvm *kvm)
1337 } 1337 }
1338} 1338}
1339 1339
1340void kvm_arch_sync_events(struct kvm *kvm)
1341{
1342}
1343
1340void kvm_arch_destroy_vm(struct kvm *kvm) 1344void kvm_arch_destroy_vm(struct kvm *kvm)
1341{ 1345{
1342 kvm_iommu_unmap_guest(kvm); 1346 kvm_iommu_unmap_guest(kvm);
diff --git a/arch/ia64/kvm/process.c b/arch/ia64/kvm/process.c
index 552d07724207..230eae482f32 100644
--- a/arch/ia64/kvm/process.c
+++ b/arch/ia64/kvm/process.c
@@ -455,13 +455,18 @@ fpswa_ret_t vmm_fp_emulate(int fp_fault, void *bundle, unsigned long *ipsr,
455 if (!vmm_fpswa_interface) 455 if (!vmm_fpswa_interface)
456 return (fpswa_ret_t) {-1, 0, 0, 0}; 456 return (fpswa_ret_t) {-1, 0, 0, 0};
457 457
458 /*
459 * Just let fpswa driver to use hardware fp registers.
460 * No fp register is valid in memory.
461 */
462 memset(&fp_state, 0, sizeof(fp_state_t)); 458 memset(&fp_state, 0, sizeof(fp_state_t));
463 459
464 /* 460 /*
461 * compute fp_state. only FP registers f6 - f11 are used by the
462 * vmm, so set those bits in the mask and set the low volatile
463 * pointer to point to these registers.
464 */
465 fp_state.bitmask_low64 = 0xfc0; /* bit6..bit11 */
466
467 fp_state.fp_state_low_volatile = (fp_state_low_volatile_t *) &regs->f6;
468
469 /*
465 * unsigned long (*EFI_FPSWA) ( 470 * unsigned long (*EFI_FPSWA) (
466 * unsigned long trap_type, 471 * unsigned long trap_type,
467 * void *Bundle, 472 * void *Bundle,
@@ -545,10 +550,6 @@ void reflect_interruption(u64 ifa, u64 isr, u64 iim,
545 status = vmm_handle_fpu_swa(0, regs, isr); 550 status = vmm_handle_fpu_swa(0, regs, isr);
546 if (!status) 551 if (!status)
547 return ; 552 return ;
548 else if (-EAGAIN == status) {
549 vcpu_decrement_iip(vcpu);
550 return ;
551 }
552 break; 553 break;
553 } 554 }
554 555
diff --git a/arch/ia64/mm/numa.c b/arch/ia64/mm/numa.c
index b73bf1838e57..3efea7d0a351 100644
--- a/arch/ia64/mm/numa.c
+++ b/arch/ia64/mm/numa.c
@@ -58,7 +58,7 @@ paddr_to_nid(unsigned long paddr)
58 * SPARSEMEM to allocate the SPARSEMEM sectionmap on the NUMA node where 58 * SPARSEMEM to allocate the SPARSEMEM sectionmap on the NUMA node where
59 * the section resides. 59 * the section resides.
60 */ 60 */
61int early_pfn_to_nid(unsigned long pfn) 61int __meminit __early_pfn_to_nid(unsigned long pfn)
62{ 62{
63 int i, section = pfn >> PFN_SECTION_SHIFT, ssec, esec; 63 int i, section = pfn >> PFN_SECTION_SHIFT, ssec, esec;
64 64
@@ -70,7 +70,7 @@ int early_pfn_to_nid(unsigned long pfn)
70 return node_memblk[i].nid; 70 return node_memblk[i].nid;
71 } 71 }
72 72
73 return 0; 73 return -1;
74} 74}
75 75
76#ifdef CONFIG_MEMORY_HOTPLUG 76#ifdef CONFIG_MEMORY_HOTPLUG
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 211fcfd115f9..61f1af5c23c1 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -19,6 +19,7 @@
19#include <linux/ioport.h> 19#include <linux/ioport.h>
20#include <linux/slab.h> 20#include <linux/slab.h>
21#include <linux/spinlock.h> 21#include <linux/spinlock.h>
22#include <linux/bootmem.h>
22 23
23#include <asm/machvec.h> 24#include <asm/machvec.h>
24#include <asm/page.h> 25#include <asm/page.h>
@@ -748,6 +749,32 @@ static void __init set_pci_cacheline_size(void)
748 pci_cache_line_size = (1 << cci.pcci_line_size) / 4; 749 pci_cache_line_size = (1 << cci.pcci_line_size) / 4;
749} 750}
750 751
752u64 ia64_dma_get_required_mask(struct device *dev)
753{
754 u32 low_totalram = ((max_pfn - 1) << PAGE_SHIFT);
755 u32 high_totalram = ((max_pfn - 1) >> (32 - PAGE_SHIFT));
756 u64 mask;
757
758 if (!high_totalram) {
759 /* convert to mask just covering totalram */
760 low_totalram = (1 << (fls(low_totalram) - 1));
761 low_totalram += low_totalram - 1;
762 mask = low_totalram;
763 } else {
764 high_totalram = (1 << (fls(high_totalram) - 1));
765 high_totalram += high_totalram - 1;
766 mask = (((u64)high_totalram) << 32) + 0xffffffff;
767 }
768 return mask;
769}
770EXPORT_SYMBOL_GPL(ia64_dma_get_required_mask);
771
772u64 dma_get_required_mask(struct device *dev)
773{
774 return platform_dma_get_required_mask(dev);
775}
776EXPORT_SYMBOL_GPL(dma_get_required_mask);
777
751static int __init pcibios_init(void) 778static int __init pcibios_init(void)
752{ 779{
753 set_pci_cacheline_size(); 780 set_pci_cacheline_size();
diff --git a/arch/ia64/sn/kernel/bte.c b/arch/ia64/sn/kernel/bte.c
index 9456d4034024..c6d6b62db66c 100644
--- a/arch/ia64/sn/kernel/bte.c
+++ b/arch/ia64/sn/kernel/bte.c
@@ -97,9 +97,10 @@ bte_result_t bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
97 return BTE_SUCCESS; 97 return BTE_SUCCESS;
98 } 98 }
99 99
100 BUG_ON((len & L1_CACHE_MASK) || 100 BUG_ON(len & L1_CACHE_MASK);
101 (src & L1_CACHE_MASK) || (dest & L1_CACHE_MASK)); 101 BUG_ON(src & L1_CACHE_MASK);
102 BUG_ON(!(len < ((BTE_LEN_MASK + 1) << L1_CACHE_SHIFT))); 102 BUG_ON(dest & L1_CACHE_MASK);
103 BUG_ON(len > BTE_MAX_XFER);
103 104
104 /* 105 /*
105 * Start with interface corresponding to cpu number 106 * Start with interface corresponding to cpu number
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c
index c5a214026a77..d0223abbbbd4 100644
--- a/arch/ia64/sn/kernel/io_acpi_init.c
+++ b/arch/ia64/sn/kernel/io_acpi_init.c
@@ -443,7 +443,7 @@ sn_acpi_slot_fixup(struct pci_dev *dev)
443 size = pci_resource_len(dev, PCI_ROM_RESOURCE); 443 size = pci_resource_len(dev, PCI_ROM_RESOURCE);
444 addr = ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE], 444 addr = ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE],
445 size); 445 size);
446 image_size = pci_get_rom_size(addr, size); 446 image_size = pci_get_rom_size(dev, addr, size);
447 dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr; 447 dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr;
448 dev->resource[PCI_ROM_RESOURCE].end = 448 dev->resource[PCI_ROM_RESOURCE].end =
449 (unsigned long) addr + image_size - 1; 449 (unsigned long) addr + image_size - 1;
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
index 4e1801bad83a..e2eb2da60f96 100644
--- a/arch/ia64/sn/kernel/io_init.c
+++ b/arch/ia64/sn/kernel/io_init.c
@@ -269,7 +269,7 @@ sn_io_slot_fixup(struct pci_dev *dev)
269 269
270 rom = ioremap(pci_resource_start(dev, PCI_ROM_RESOURCE), 270 rom = ioremap(pci_resource_start(dev, PCI_ROM_RESOURCE),
271 size + 1); 271 size + 1);
272 image_size = pci_get_rom_size(rom, size + 1); 272 image_size = pci_get_rom_size(dev, rom, size + 1);
273 dev->resource[PCI_ROM_RESOURCE].end = 273 dev->resource[PCI_ROM_RESOURCE].end =
274 dev->resource[PCI_ROM_RESOURCE].start + 274 dev->resource[PCI_ROM_RESOURCE].start +
275 image_size - 1; 275 image_size - 1;
diff --git a/arch/ia64/sn/pci/pci_dma.c b/arch/ia64/sn/pci/pci_dma.c
index 53ebb6484495..863f5017baae 100644
--- a/arch/ia64/sn/pci/pci_dma.c
+++ b/arch/ia64/sn/pci/pci_dma.c
@@ -356,6 +356,12 @@ int sn_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
356} 356}
357EXPORT_SYMBOL(sn_dma_mapping_error); 357EXPORT_SYMBOL(sn_dma_mapping_error);
358 358
359u64 sn_dma_get_required_mask(struct device *dev)
360{
361 return DMA_64BIT_MASK;
362}
363EXPORT_SYMBOL_GPL(sn_dma_get_required_mask);
364
359char *sn_pci_get_legacy_mem(struct pci_bus *bus) 365char *sn_pci_get_legacy_mem(struct pci_bus *bus)
360{ 366{
361 if (!SN_PCIBUS_BUSSOFT(bus)) 367 if (!SN_PCIBUS_BUSSOFT(bus))
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_dma.c b/arch/ia64/sn/pci/pcibr/pcibr_dma.c
index e626e50a938a..060df4aa9916 100644
--- a/arch/ia64/sn/pci/pcibr/pcibr_dma.c
+++ b/arch/ia64/sn/pci/pcibr/pcibr_dma.c
@@ -135,11 +135,10 @@ pcibr_dmatrans_direct64(struct pcidev_info * info, u64 paddr,
135 if (SN_DMA_ADDRTYPE(dma_flags) == SN_DMA_ADDR_PHYS) 135 if (SN_DMA_ADDRTYPE(dma_flags) == SN_DMA_ADDR_PHYS)
136 pci_addr = IS_PIC_SOFT(pcibus_info) ? 136 pci_addr = IS_PIC_SOFT(pcibus_info) ?
137 PHYS_TO_DMA(paddr) : 137 PHYS_TO_DMA(paddr) :
138 PHYS_TO_TIODMA(paddr) | dma_attributes; 138 PHYS_TO_TIODMA(paddr);
139 else 139 else
140 pci_addr = IS_PIC_SOFT(pcibus_info) ? 140 pci_addr = paddr;
141 paddr : 141 pci_addr |= dma_attributes;
142 paddr | dma_attributes;
143 142
144 /* Handle Bus mode */ 143 /* Handle Bus mode */
145 if (IS_PCIX(pcibus_info)) 144 if (IS_PCIX(pcibus_info))
diff --git a/arch/ia64/xen/Kconfig b/arch/ia64/xen/Kconfig
index f1683a20275b..515e0826803a 100644
--- a/arch/ia64/xen/Kconfig
+++ b/arch/ia64/xen/Kconfig
@@ -8,8 +8,7 @@ config XEN
8 depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB && EXPERIMENTAL 8 depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB && EXPERIMENTAL
9 select XEN_XENCOMM 9 select XEN_XENCOMM
10 select NO_IDLE_HZ 10 select NO_IDLE_HZ
11 11 # followings are required to save/restore.
12 # those are required to save/restore.
13 select ARCH_SUSPEND_POSSIBLE 12 select ARCH_SUSPEND_POSSIBLE
14 select SUSPEND 13 select SUSPEND
15 select PM_SLEEP 14 select PM_SLEEP
diff --git a/arch/ia64/xen/time.c b/arch/ia64/xen/time.c
index d15a94c330fb..68d6204c3f16 100644
--- a/arch/ia64/xen/time.c
+++ b/arch/ia64/xen/time.c
@@ -129,8 +129,8 @@ consider_steal_time(unsigned long new_itm)
129 blocked = stolentick; 129 blocked = stolentick;
130 130
131 if (stolen > 0 || blocked > 0) { 131 if (stolen > 0 || blocked > 0) {
132 account_steal_time(NULL, jiffies_to_cputime(stolen)); 132 account_steal_ticks(stolen);
133 account_steal_time(idle_task(cpu), jiffies_to_cputime(blocked)); 133 account_idle_ticks(blocked);
134 run_local_timers(); 134 run_local_timers();
135 135
136 if (rcu_pending(cpu)) 136 if (rcu_pending(cpu))
diff --git a/arch/ia64/xen/xen_pv_ops.c b/arch/ia64/xen/xen_pv_ops.c
index 04cd12350455..936cff3c96e0 100644
--- a/arch/ia64/xen/xen_pv_ops.c
+++ b/arch/ia64/xen/xen_pv_ops.c
@@ -153,7 +153,7 @@ xen_post_smp_prepare_boot_cpu(void)
153 xen_setup_vcpu_info_placement(); 153 xen_setup_vcpu_info_placement();
154} 154}
155 155
156static const struct pv_init_ops xen_init_ops __initdata = { 156static const struct pv_init_ops xen_init_ops __initconst = {
157 .banner = xen_banner, 157 .banner = xen_banner,
158 158
159 .reserve_memory = xen_reserve_memory, 159 .reserve_memory = xen_reserve_memory,
@@ -337,7 +337,7 @@ xen_iosapic_write(char __iomem *iosapic, unsigned int reg, u32 val)
337 HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op); 337 HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op);
338} 338}
339 339
340static const struct pv_iosapic_ops xen_iosapic_ops __initdata = { 340static const struct pv_iosapic_ops xen_iosapic_ops __initconst = {
341 .pcat_compat_init = xen_pcat_compat_init, 341 .pcat_compat_init = xen_pcat_compat_init,
342 .__get_irq_chip = xen_iosapic_get_irq_chip, 342 .__get_irq_chip = xen_iosapic_get_irq_chip,
343 343
diff --git a/arch/m32r/configs/m32104ut_defconfig b/arch/m32r/configs/m32104ut_defconfig
index 9b5af6cd2e0b..6f54b00b3838 100644
--- a/arch/m32r/configs/m32104ut_defconfig
+++ b/arch/m32r/configs/m32104ut_defconfig
@@ -621,7 +621,7 @@ CONFIG_I2C_ELEKTOR=m
621# CONFIG_SENSORS_DS1337 is not set 621# CONFIG_SENSORS_DS1337 is not set
622# CONFIG_SENSORS_DS1374 is not set 622# CONFIG_SENSORS_DS1374 is not set
623# CONFIG_DS1682 is not set 623# CONFIG_DS1682 is not set
624# CONFIG_SENSORS_EEPROM is not set 624# CONFIG_EEPROM_LEGACY is not set
625# CONFIG_SENSORS_PCF8574 is not set 625# CONFIG_SENSORS_PCF8574 is not set
626# CONFIG_SENSORS_PCA9539 is not set 626# CONFIG_SENSORS_PCA9539 is not set
627# CONFIG_SENSORS_PCF8591 is not set 627# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/m68k/atari/ataints.c b/arch/m68k/atari/ataints.c
index dba4afabb444..39478dd08e67 100644
--- a/arch/m68k/atari/ataints.c
+++ b/arch/m68k/atari/ataints.c
@@ -187,8 +187,8 @@ __asm__ (__ALIGN_STR "\n" \
187" jbra ret_from_interrupt\n" \ 187" jbra ret_from_interrupt\n" \
188 : : "i" (&kstat_cpu(0).irqs[n+8]), "i" (&irq_handler[n+8]), \ 188 : : "i" (&kstat_cpu(0).irqs[n+8]), "i" (&irq_handler[n+8]), \
189 "n" (PT_OFF_SR), "n" (n), \ 189 "n" (PT_OFF_SR), "n" (n), \
190 "i" (n & 8 ? (n & 16 ? &tt_mfp.int_mk_a : &mfp.int_mk_a) \ 190 "i" (n & 8 ? (n & 16 ? &tt_mfp.int_mk_a : &st_mfp.int_mk_a) \
191 : (n & 16 ? &tt_mfp.int_mk_b : &mfp.int_mk_b)), \ 191 : (n & 16 ? &tt_mfp.int_mk_b : &st_mfp.int_mk_b)), \
192 "m" (preempt_count()), "di" (HARDIRQ_OFFSET) \ 192 "m" (preempt_count()), "di" (HARDIRQ_OFFSET) \
193); \ 193); \
194 for (;;); /* fake noreturn */ \ 194 for (;;); /* fake noreturn */ \
@@ -366,14 +366,14 @@ void __init atari_init_IRQ(void)
366 /* Initialize the MFP(s) */ 366 /* Initialize the MFP(s) */
367 367
368#ifdef ATARI_USE_SOFTWARE_EOI 368#ifdef ATARI_USE_SOFTWARE_EOI
369 mfp.vec_adr = 0x48; /* Software EOI-Mode */ 369 st_mfp.vec_adr = 0x48; /* Software EOI-Mode */
370#else 370#else
371 mfp.vec_adr = 0x40; /* Automatic EOI-Mode */ 371 st_mfp.vec_adr = 0x40; /* Automatic EOI-Mode */
372#endif 372#endif
373 mfp.int_en_a = 0x00; /* turn off MFP-Ints */ 373 st_mfp.int_en_a = 0x00; /* turn off MFP-Ints */
374 mfp.int_en_b = 0x00; 374 st_mfp.int_en_b = 0x00;
375 mfp.int_mk_a = 0xff; /* no Masking */ 375 st_mfp.int_mk_a = 0xff; /* no Masking */
376 mfp.int_mk_b = 0xff; 376 st_mfp.int_mk_b = 0xff;
377 377
378 if (ATARIHW_PRESENT(TT_MFP)) { 378 if (ATARIHW_PRESENT(TT_MFP)) {
379#ifdef ATARI_USE_SOFTWARE_EOI 379#ifdef ATARI_USE_SOFTWARE_EOI
diff --git a/arch/m68k/atari/atakeyb.c b/arch/m68k/atari/atakeyb.c
index a5f33c059979..4add96d13b19 100644
--- a/arch/m68k/atari/atakeyb.c
+++ b/arch/m68k/atari/atakeyb.c
@@ -609,10 +609,10 @@ int atari_keyb_init(void)
609 ACIA_RHTID : 0); 609 ACIA_RHTID : 0);
610 610
611 /* make sure the interrupt line is up */ 611 /* make sure the interrupt line is up */
612 } while ((mfp.par_dt_reg & 0x10) == 0); 612 } while ((st_mfp.par_dt_reg & 0x10) == 0);
613 613
614 /* enable ACIA Interrupts */ 614 /* enable ACIA Interrupts */
615 mfp.active_edge &= ~0x10; 615 st_mfp.active_edge &= ~0x10;
616 atari_turnon_irq(IRQ_MFP_ACIA); 616 atari_turnon_irq(IRQ_MFP_ACIA);
617 617
618 ikbd_self_test = 1; 618 ikbd_self_test = 1;
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index 49c28cdbea5c..ae2d96e5d618 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -258,7 +258,7 @@ void __init config_atari(void)
258 printk("STND_SHIFTER "); 258 printk("STND_SHIFTER ");
259 } 259 }
260 } 260 }
261 if (hwreg_present(&mfp.par_dt_reg)) { 261 if (hwreg_present(&st_mfp.par_dt_reg)) {
262 ATARIHW_SET(ST_MFP); 262 ATARIHW_SET(ST_MFP);
263 printk("ST_MFP "); 263 printk("ST_MFP ");
264 } 264 }
diff --git a/arch/m68k/atari/debug.c b/arch/m68k/atari/debug.c
index 702b15ccfab7..28efdc33c1ae 100644
--- a/arch/m68k/atari/debug.c
+++ b/arch/m68k/atari/debug.c
@@ -34,9 +34,9 @@ static struct console atari_console_driver = {
34 34
35static inline void ata_mfp_out(char c) 35static inline void ata_mfp_out(char c)
36{ 36{
37 while (!(mfp.trn_stat & 0x80)) /* wait for tx buf empty */ 37 while (!(st_mfp.trn_stat & 0x80)) /* wait for tx buf empty */
38 barrier(); 38 barrier();
39 mfp.usart_dta = c; 39 st_mfp.usart_dta = c;
40} 40}
41 41
42static void atari_mfp_console_write(struct console *co, const char *str, 42static void atari_mfp_console_write(struct console *co, const char *str,
@@ -91,7 +91,7 @@ static int ata_par_out(char c)
91 /* This a some-seconds timeout in case no printer is connected */ 91 /* This a some-seconds timeout in case no printer is connected */
92 unsigned long i = loops_per_jiffy > 1 ? loops_per_jiffy : 10000000/HZ; 92 unsigned long i = loops_per_jiffy > 1 ? loops_per_jiffy : 10000000/HZ;
93 93
94 while ((mfp.par_dt_reg & 1) && --i) /* wait for BUSY == L */ 94 while ((st_mfp.par_dt_reg & 1) && --i) /* wait for BUSY == L */
95 ; 95 ;
96 if (!i) 96 if (!i)
97 return 0; 97 return 0;
@@ -131,9 +131,9 @@ static void atari_par_console_write(struct console *co, const char *str,
131#if 0 131#if 0
132int atari_mfp_console_wait_key(struct console *co) 132int atari_mfp_console_wait_key(struct console *co)
133{ 133{
134 while (!(mfp.rcv_stat & 0x80)) /* wait for rx buf filled */ 134 while (!(st_mfp.rcv_stat & 0x80)) /* wait for rx buf filled */
135 barrier(); 135 barrier();
136 return mfp.usart_dta; 136 return st_mfp.usart_dta;
137} 137}
138 138
139int atari_scc_console_wait_key(struct console *co) 139int atari_scc_console_wait_key(struct console *co)
@@ -175,12 +175,12 @@ static void __init atari_init_mfp_port(int cflag)
175 baud = B9600; /* use default 9600bps for non-implemented rates */ 175 baud = B9600; /* use default 9600bps for non-implemented rates */
176 baud -= B1200; /* baud_table[] starts at 1200bps */ 176 baud -= B1200; /* baud_table[] starts at 1200bps */
177 177
178 mfp.trn_stat &= ~0x01; /* disable TX */ 178 st_mfp.trn_stat &= ~0x01; /* disable TX */
179 mfp.usart_ctr = parity | csize | 0x88; /* 1:16 clk mode, 1 stop bit */ 179 st_mfp.usart_ctr = parity | csize | 0x88; /* 1:16 clk mode, 1 stop bit */
180 mfp.tim_ct_cd &= 0x70; /* stop timer D */ 180 st_mfp.tim_ct_cd &= 0x70; /* stop timer D */
181 mfp.tim_dt_d = baud_table[baud]; 181 st_mfp.tim_dt_d = baud_table[baud];
182 mfp.tim_ct_cd |= 0x01; /* start timer D, 1:4 */ 182 st_mfp.tim_ct_cd |= 0x01; /* start timer D, 1:4 */
183 mfp.trn_stat |= 0x01; /* enable TX */ 183 st_mfp.trn_stat |= 0x01; /* enable TX */
184} 184}
185 185
186#define SCC_WRITE(reg, val) \ 186#define SCC_WRITE(reg, val) \
diff --git a/arch/m68k/atari/time.c b/arch/m68k/atari/time.c
index d076ff8d1b39..a0531f34c617 100644
--- a/arch/m68k/atari/time.c
+++ b/arch/m68k/atari/time.c
@@ -27,9 +27,9 @@ void __init
27atari_sched_init(irq_handler_t timer_routine) 27atari_sched_init(irq_handler_t timer_routine)
28{ 28{
29 /* set Timer C data Register */ 29 /* set Timer C data Register */
30 mfp.tim_dt_c = INT_TICKS; 30 st_mfp.tim_dt_c = INT_TICKS;
31 /* start timer C, div = 1:100 */ 31 /* start timer C, div = 1:100 */
32 mfp.tim_ct_cd = (mfp.tim_ct_cd & 15) | 0x60; 32 st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60;
33 /* install interrupt service routine for MFP Timer C */ 33 /* install interrupt service routine for MFP Timer C */
34 if (request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW, 34 if (request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW,
35 "timer", timer_routine)) 35 "timer", timer_routine))
@@ -46,11 +46,11 @@ unsigned long atari_gettimeoffset (void)
46 unsigned long ticks, offset = 0; 46 unsigned long ticks, offset = 0;
47 47
48 /* read MFP timer C current value */ 48 /* read MFP timer C current value */
49 ticks = mfp.tim_dt_c; 49 ticks = st_mfp.tim_dt_c;
50 /* The probability of underflow is less than 2% */ 50 /* The probability of underflow is less than 2% */
51 if (ticks > INT_TICKS - INT_TICKS / 50) 51 if (ticks > INT_TICKS - INT_TICKS / 50)
52 /* Check for pending timer interrupt */ 52 /* Check for pending timer interrupt */
53 if (mfp.int_pn_b & (1 << 5)) 53 if (st_mfp.int_pn_b & (1 << 5))
54 offset = TICK_SIZE; 54 offset = TICK_SIZE;
55 55
56 ticks = INT_TICKS - ticks; 56 ticks = INT_TICKS - ticks;
diff --git a/arch/m68knommu/include/asm/Kbuild b/arch/m68k/include/asm/Kbuild
index 58c02a454130..1a922fad76f7 100644
--- a/arch/m68knommu/include/asm/Kbuild
+++ b/arch/m68k/include/asm/Kbuild
@@ -1,3 +1,2 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2header-y += cachectl.h
3unifdef-y += swab.h
diff --git a/arch/m68knommu/include/asm/MC68328.h b/arch/m68k/include/asm/MC68328.h
index a337e56d09bf..a337e56d09bf 100644
--- a/arch/m68knommu/include/asm/MC68328.h
+++ b/arch/m68k/include/asm/MC68328.h
diff --git a/arch/m68knommu/include/asm/MC68332.h b/arch/m68k/include/asm/MC68332.h
index 6bb8f02685a2..6bb8f02685a2 100644
--- a/arch/m68knommu/include/asm/MC68332.h
+++ b/arch/m68k/include/asm/MC68332.h
diff --git a/arch/m68knommu/include/asm/MC68EZ328.h b/arch/m68k/include/asm/MC68EZ328.h
index 69b7f9139e5e..69b7f9139e5e 100644
--- a/arch/m68knommu/include/asm/MC68EZ328.h
+++ b/arch/m68k/include/asm/MC68EZ328.h
diff --git a/arch/m68knommu/include/asm/MC68VZ328.h b/arch/m68k/include/asm/MC68VZ328.h
index 2b9bf626a0a5..2b9bf626a0a5 100644
--- a/arch/m68knommu/include/asm/MC68VZ328.h
+++ b/arch/m68k/include/asm/MC68VZ328.h
diff --git a/arch/m68k/include/asm/a.out-core.h b/arch/m68k/include/asm/a.out-core.h
new file mode 100644
index 000000000000..f6bfc1d63ff6
--- /dev/null
+++ b/arch/m68k/include/asm/a.out-core.h
@@ -0,0 +1,67 @@
1/* a.out coredump register dumper
2 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */
11
12#ifndef _ASM_A_OUT_CORE_H
13#define _ASM_A_OUT_CORE_H
14
15#ifdef __KERNEL__
16
17#include <linux/user.h>
18#include <linux/elfcore.h>
19
20/*
21 * fill in the user structure for an a.out core dump
22 */
23static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump)
24{
25 struct switch_stack *sw;
26
27/* changed the size calculations - should hopefully work better. lbt */
28 dump->magic = CMAGIC;
29 dump->start_code = 0;
30 dump->start_stack = rdusp() & ~(PAGE_SIZE - 1);
31 dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT;
32 dump->u_dsize = ((unsigned long) (current->mm->brk +
33 (PAGE_SIZE-1))) >> PAGE_SHIFT;
34 dump->u_dsize -= dump->u_tsize;
35 dump->u_ssize = 0;
36
37 if (dump->start_stack < TASK_SIZE)
38 dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> PAGE_SHIFT;
39
40 dump->u_ar0 = offsetof(struct user, regs);
41 sw = ((struct switch_stack *)regs) - 1;
42 dump->regs.d1 = regs->d1;
43 dump->regs.d2 = regs->d2;
44 dump->regs.d3 = regs->d3;
45 dump->regs.d4 = regs->d4;
46 dump->regs.d5 = regs->d5;
47 dump->regs.d6 = sw->d6;
48 dump->regs.d7 = sw->d7;
49 dump->regs.a0 = regs->a0;
50 dump->regs.a1 = regs->a1;
51 dump->regs.a2 = regs->a2;
52 dump->regs.a3 = sw->a3;
53 dump->regs.a4 = sw->a4;
54 dump->regs.a5 = sw->a5;
55 dump->regs.a6 = sw->a6;
56 dump->regs.d0 = regs->d0;
57 dump->regs.orig_d0 = regs->orig_d0;
58 dump->regs.stkadj = regs->stkadj;
59 dump->regs.sr = regs->sr;
60 dump->regs.pc = regs->pc;
61 dump->regs.fmtvec = (regs->format << 12) | regs->vector;
62 /* dump floating point stuff */
63 dump->u_fpvalid = dump_fpu (regs, &dump->m68kfp);
64}
65
66#endif /* __KERNEL__ */
67#endif /* _ASM_A_OUT_CORE_H */
diff --git a/arch/m68k/include/asm/a.out.h b/arch/m68k/include/asm/a.out.h
new file mode 100644
index 000000000000..3885fe43432a
--- /dev/null
+++ b/arch/m68k/include/asm/a.out.h
@@ -0,0 +1,20 @@
1#ifndef __M68K_A_OUT_H__
2#define __M68K_A_OUT_H__
3
4struct exec
5{
6 unsigned long a_info; /* Use macros N_MAGIC, etc for access */
7 unsigned a_text; /* length of text, in bytes */
8 unsigned a_data; /* length of data, in bytes */
9 unsigned a_bss; /* length of uninitialized data area for file, in bytes */
10 unsigned a_syms; /* length of symbol table data in file, in bytes */
11 unsigned a_entry; /* start address */
12 unsigned a_trsize; /* length of relocation info for text, in bytes */
13 unsigned a_drsize; /* length of relocation info for data, in bytes */
14};
15
16#define N_TRSIZE(a) ((a).a_trsize)
17#define N_DRSIZE(a) ((a).a_drsize)
18#define N_SYMSIZE(a) ((a).a_syms)
19
20#endif /* __M68K_A_OUT_H__ */
diff --git a/arch/m68k/include/asm/adb_iop.h b/arch/m68k/include/asm/adb_iop.h
new file mode 100644
index 000000000000..8a48e56f2d62
--- /dev/null
+++ b/arch/m68k/include/asm/adb_iop.h
@@ -0,0 +1,44 @@
1/*
2 * ADB through the IOP
3 * Written by Joshua M. Thompson
4 */
5
6/* IOP number and channel number for ADB */
7
8#define ADB_IOP IOP_NUM_ISM
9#define ADB_CHAN 2
10
11/* From the A/UX headers...maybe important, maybe not */
12
13#define ADB_IOP_LISTEN 0x01
14#define ADB_IOP_TALK 0x02
15#define ADB_IOP_EXISTS 0x04
16#define ADB_IOP_FLUSH 0x08
17#define ADB_IOP_RESET 0x10
18#define ADB_IOP_INT 0x20
19#define ADB_IOP_POLL 0x40
20#define ADB_IOP_UNINT 0x80
21
22#define AIF_RESET 0x00
23#define AIF_FLUSH 0x01
24#define AIF_LISTEN 0x08
25#define AIF_TALK 0x0C
26
27/* Flag bits in struct adb_iopmsg */
28
29#define ADB_IOP_EXPLICIT 0x80 /* nonzero if explicit command */
30#define ADB_IOP_AUTOPOLL 0x40 /* auto/SRQ polling enabled */
31#define ADB_IOP_SRQ 0x04 /* SRQ detected */
32#define ADB_IOP_TIMEOUT 0x02 /* nonzero if timeout */
33
34#ifndef __ASSEMBLY__
35
36struct adb_iopmsg {
37 __u8 flags; /* ADB flags */
38 __u8 count; /* no. of data bytes */
39 __u8 cmd; /* ADB command */
40 __u8 data[8]; /* ADB data */
41 __u8 spare[21]; /* spare */
42};
43
44#endif /* __ASSEMBLY__ */
diff --git a/arch/m68k/include/asm/amigahw.h b/arch/m68k/include/asm/amigahw.h
new file mode 100644
index 000000000000..5ca5dd951a4a
--- /dev/null
+++ b/arch/m68k/include/asm/amigahw.h
@@ -0,0 +1,350 @@
1/*
2** asm-m68k/amigahw.h -- This header defines some macros and pointers for
3** the various Amiga custom hardware registers.
4** The naming conventions used here conform to those
5** used in the Amiga Hardware Reference Manual, 3rd Edition
6**
7** Copyright 1992 by Greg Harp
8**
9** This file is subject to the terms and conditions of the GNU General Public
10** License. See the file COPYING in the main directory of this archive
11** for more details.
12**
13** Created: 9/24/92 by Greg Harp
14*/
15
16#ifndef _M68K_AMIGAHW_H
17#define _M68K_AMIGAHW_H
18
19#include <linux/ioport.h>
20
21 /*
22 * Different Amiga models
23 */
24
25#define AMI_UNKNOWN (0)
26#define AMI_500 (1)
27#define AMI_500PLUS (2)
28#define AMI_600 (3)
29#define AMI_1000 (4)
30#define AMI_1200 (5)
31#define AMI_2000 (6)
32#define AMI_2500 (7)
33#define AMI_3000 (8)
34#define AMI_3000T (9)
35#define AMI_3000PLUS (10)
36#define AMI_4000 (11)
37#define AMI_4000T (12)
38#define AMI_CDTV (13)
39#define AMI_CD32 (14)
40#define AMI_DRACO (15)
41
42
43 /*
44 * Chipsets
45 */
46
47extern unsigned long amiga_chipset;
48
49#define CS_STONEAGE (0)
50#define CS_OCS (1)
51#define CS_ECS (2)
52#define CS_AGA (3)
53
54
55 /*
56 * Miscellaneous
57 */
58
59extern unsigned long amiga_eclock; /* 700 kHz E Peripheral Clock */
60extern unsigned long amiga_colorclock; /* 3.5 MHz Color Clock */
61extern unsigned long amiga_chip_size; /* Chip RAM Size (bytes) */
62extern unsigned char amiga_vblank; /* VBLANK Frequency */
63
64
65#define AMIGAHW_DECLARE(name) unsigned name : 1
66#define AMIGAHW_SET(name) (amiga_hw_present.name = 1)
67#define AMIGAHW_PRESENT(name) (amiga_hw_present.name)
68
69struct amiga_hw_present {
70 /* video hardware */
71 AMIGAHW_DECLARE(AMI_VIDEO); /* Amiga Video */
72 AMIGAHW_DECLARE(AMI_BLITTER); /* Amiga Blitter */
73 AMIGAHW_DECLARE(AMBER_FF); /* Amber Flicker Fixer */
74 /* sound hardware */
75 AMIGAHW_DECLARE(AMI_AUDIO); /* Amiga Audio */
76 /* disk storage interfaces */
77 AMIGAHW_DECLARE(AMI_FLOPPY); /* Amiga Floppy */
78 AMIGAHW_DECLARE(A3000_SCSI); /* SCSI (wd33c93, A3000 alike) */
79 AMIGAHW_DECLARE(A4000_SCSI); /* SCSI (ncr53c710, A4000T alike) */
80 AMIGAHW_DECLARE(A1200_IDE); /* IDE (A1200 alike) */
81 AMIGAHW_DECLARE(A4000_IDE); /* IDE (A4000 alike) */
82 AMIGAHW_DECLARE(CD_ROM); /* CD ROM drive */
83 /* other I/O hardware */
84 AMIGAHW_DECLARE(AMI_KEYBOARD); /* Amiga Keyboard */
85 AMIGAHW_DECLARE(AMI_MOUSE); /* Amiga Mouse */
86 AMIGAHW_DECLARE(AMI_SERIAL); /* Amiga Serial */
87 AMIGAHW_DECLARE(AMI_PARALLEL); /* Amiga Parallel */
88 /* real time clocks */
89 AMIGAHW_DECLARE(A2000_CLK); /* Hardware Clock (A2000 alike) */
90 AMIGAHW_DECLARE(A3000_CLK); /* Hardware Clock (A3000 alike) */
91 /* supporting hardware */
92 AMIGAHW_DECLARE(CHIP_RAM); /* Chip RAM */
93 AMIGAHW_DECLARE(PAULA); /* Paula (8364) */
94 AMIGAHW_DECLARE(DENISE); /* Denise (8362) */
95 AMIGAHW_DECLARE(DENISE_HR); /* Denise (8373) */
96 AMIGAHW_DECLARE(LISA); /* Lisa (8375) */
97 AMIGAHW_DECLARE(AGNUS_PAL); /* Normal/Fat PAL Agnus (8367/8371) */
98 AMIGAHW_DECLARE(AGNUS_NTSC); /* Normal/Fat NTSC Agnus (8361/8370) */
99 AMIGAHW_DECLARE(AGNUS_HR_PAL); /* Fat Hires PAL Agnus (8372) */
100 AMIGAHW_DECLARE(AGNUS_HR_NTSC); /* Fat Hires NTSC Agnus (8372) */
101 AMIGAHW_DECLARE(ALICE_PAL); /* PAL Alice (8374) */
102 AMIGAHW_DECLARE(ALICE_NTSC); /* NTSC Alice (8374) */
103 AMIGAHW_DECLARE(MAGIC_REKICK); /* A3000 Magic Hard Rekick */
104 AMIGAHW_DECLARE(PCMCIA); /* PCMCIA Slot */
105 AMIGAHW_DECLARE(GG2_ISA); /* GG2 Zorro2ISA Bridge */
106 AMIGAHW_DECLARE(ZORRO); /* Zorro AutoConfig */
107 AMIGAHW_DECLARE(ZORRO3); /* Zorro III */
108};
109
110extern struct amiga_hw_present amiga_hw_present;
111
112struct CUSTOM {
113 unsigned short bltddat;
114 unsigned short dmaconr;
115 unsigned short vposr;
116 unsigned short vhposr;
117 unsigned short dskdatr;
118 unsigned short joy0dat;
119 unsigned short joy1dat;
120 unsigned short clxdat;
121 unsigned short adkconr;
122 unsigned short pot0dat;
123 unsigned short pot1dat;
124 unsigned short potgor;
125 unsigned short serdatr;
126 unsigned short dskbytr;
127 unsigned short intenar;
128 unsigned short intreqr;
129 unsigned char *dskptr;
130 unsigned short dsklen;
131 unsigned short dskdat;
132 unsigned short refptr;
133 unsigned short vposw;
134 unsigned short vhposw;
135 unsigned short copcon;
136 unsigned short serdat;
137 unsigned short serper;
138 unsigned short potgo;
139 unsigned short joytest;
140 unsigned short strequ;
141 unsigned short strvbl;
142 unsigned short strhor;
143 unsigned short strlong;
144 unsigned short bltcon0;
145 unsigned short bltcon1;
146 unsigned short bltafwm;
147 unsigned short bltalwm;
148 unsigned char *bltcpt;
149 unsigned char *bltbpt;
150 unsigned char *bltapt;
151 unsigned char *bltdpt;
152 unsigned short bltsize;
153 unsigned char pad2d;
154 unsigned char bltcon0l;
155 unsigned short bltsizv;
156 unsigned short bltsizh;
157 unsigned short bltcmod;
158 unsigned short bltbmod;
159 unsigned short bltamod;
160 unsigned short bltdmod;
161 unsigned short spare2[4];
162 unsigned short bltcdat;
163 unsigned short bltbdat;
164 unsigned short bltadat;
165 unsigned short spare3[3];
166 unsigned short deniseid;
167 unsigned short dsksync;
168 unsigned short *cop1lc;
169 unsigned short *cop2lc;
170 unsigned short copjmp1;
171 unsigned short copjmp2;
172 unsigned short copins;
173 unsigned short diwstrt;
174 unsigned short diwstop;
175 unsigned short ddfstrt;
176 unsigned short ddfstop;
177 unsigned short dmacon;
178 unsigned short clxcon;
179 unsigned short intena;
180 unsigned short intreq;
181 unsigned short adkcon;
182 struct {
183 unsigned short *audlc;
184 unsigned short audlen;
185 unsigned short audper;
186 unsigned short audvol;
187 unsigned short auddat;
188 unsigned short audspare[2];
189 } aud[4];
190 unsigned char *bplpt[8];
191 unsigned short bplcon0;
192 unsigned short bplcon1;
193 unsigned short bplcon2;
194 unsigned short bplcon3;
195 unsigned short bpl1mod;
196 unsigned short bpl2mod;
197 unsigned short bplcon4;
198 unsigned short clxcon2;
199 unsigned short bpldat[8];
200 unsigned char *sprpt[8];
201 struct {
202 unsigned short pos;
203 unsigned short ctl;
204 unsigned short dataa;
205 unsigned short datab;
206 } spr[8];
207 unsigned short color[32];
208 unsigned short htotal;
209 unsigned short hsstop;
210 unsigned short hbstrt;
211 unsigned short hbstop;
212 unsigned short vtotal;
213 unsigned short vsstop;
214 unsigned short vbstrt;
215 unsigned short vbstop;
216 unsigned short sprhstrt;
217 unsigned short sprhstop;
218 unsigned short bplhstrt;
219 unsigned short bplhstop;
220 unsigned short hhposw;
221 unsigned short hhposr;
222 unsigned short beamcon0;
223 unsigned short hsstrt;
224 unsigned short vsstrt;
225 unsigned short hcenter;
226 unsigned short diwhigh;
227 unsigned short spare4[11];
228 unsigned short fmode;
229};
230
231/*
232 * DMA register bits
233 */
234#define DMAF_SETCLR (0x8000)
235#define DMAF_AUD0 (0x0001)
236#define DMAF_AUD1 (0x0002)
237#define DMAF_AUD2 (0x0004)
238#define DMAF_AUD3 (0x0008)
239#define DMAF_DISK (0x0010)
240#define DMAF_SPRITE (0x0020)
241#define DMAF_BLITTER (0x0040)
242#define DMAF_COPPER (0x0080)
243#define DMAF_RASTER (0x0100)
244#define DMAF_MASTER (0x0200)
245#define DMAF_BLITHOG (0x0400)
246#define DMAF_BLTNZERO (0x2000)
247#define DMAF_BLTDONE (0x4000)
248#define DMAF_ALL (0x01FF)
249
250struct CIA {
251 unsigned char pra; char pad0[0xff];
252 unsigned char prb; char pad1[0xff];
253 unsigned char ddra; char pad2[0xff];
254 unsigned char ddrb; char pad3[0xff];
255 unsigned char talo; char pad4[0xff];
256 unsigned char tahi; char pad5[0xff];
257 unsigned char tblo; char pad6[0xff];
258 unsigned char tbhi; char pad7[0xff];
259 unsigned char todlo; char pad8[0xff];
260 unsigned char todmid; char pad9[0xff];
261 unsigned char todhi; char pada[0x1ff];
262 unsigned char sdr; char padb[0xff];
263 unsigned char icr; char padc[0xff];
264 unsigned char cra; char padd[0xff];
265 unsigned char crb; char pade[0xff];
266};
267
268#define zTwoBase (0x80000000)
269#define ZTWO_PADDR(x) (((unsigned long)(x))-zTwoBase)
270#define ZTWO_VADDR(x) (((unsigned long)(x))+zTwoBase)
271
272#define CUSTOM_PHYSADDR (0xdff000)
273#define amiga_custom ((*(volatile struct CUSTOM *)(zTwoBase+CUSTOM_PHYSADDR)))
274
275#define CIAA_PHYSADDR (0xbfe001)
276#define CIAB_PHYSADDR (0xbfd000)
277#define ciaa ((*(volatile struct CIA *)(zTwoBase + CIAA_PHYSADDR)))
278#define ciab ((*(volatile struct CIA *)(zTwoBase + CIAB_PHYSADDR)))
279
280#define CHIP_PHYSADDR (0x000000)
281
282void amiga_chip_init (void);
283void *amiga_chip_alloc(unsigned long size, const char *name);
284void *amiga_chip_alloc_res(unsigned long size, struct resource *res);
285void amiga_chip_free(void *ptr);
286unsigned long amiga_chip_avail( void ); /*MILAN*/
287extern volatile unsigned short amiga_audio_min_period;
288
289static inline void amifb_video_off(void)
290{
291 if (amiga_chipset == CS_ECS || amiga_chipset == CS_AGA) {
292 /* program Denise/Lisa for a higher maximum play rate */
293 amiga_custom.htotal = 113; /* 31 kHz */
294 amiga_custom.vtotal = 223; /* 70 Hz */
295 amiga_custom.beamcon0 = 0x4390; /* HARDDIS, VAR{BEAM,VSY,HSY,CSY}EN */
296 /* suspend the monitor */
297 amiga_custom.hsstrt = amiga_custom.hsstop = 116;
298 amiga_custom.vsstrt = amiga_custom.vsstop = 226;
299 amiga_audio_min_period = 57;
300 }
301}
302
303struct tod3000 {
304 unsigned int :28, second2:4; /* lower digit */
305 unsigned int :28, second1:4; /* upper digit */
306 unsigned int :28, minute2:4; /* lower digit */
307 unsigned int :28, minute1:4; /* upper digit */
308 unsigned int :28, hour2:4; /* lower digit */
309 unsigned int :28, hour1:4; /* upper digit */
310 unsigned int :28, weekday:4;
311 unsigned int :28, day2:4; /* lower digit */
312 unsigned int :28, day1:4; /* upper digit */
313 unsigned int :28, month2:4; /* lower digit */
314 unsigned int :28, month1:4; /* upper digit */
315 unsigned int :28, year2:4; /* lower digit */
316 unsigned int :28, year1:4; /* upper digit */
317 unsigned int :28, cntrl1:4; /* control-byte 1 */
318 unsigned int :28, cntrl2:4; /* control-byte 2 */
319 unsigned int :28, cntrl3:4; /* control-byte 3 */
320};
321#define TOD3000_CNTRL1_HOLD 0
322#define TOD3000_CNTRL1_FREE 9
323#define tod_3000 ((*(volatile struct tod3000 *)(zTwoBase+0xDC0000)))
324
325struct tod2000 {
326 unsigned int :28, second2:4; /* lower digit */
327 unsigned int :28, second1:4; /* upper digit */
328 unsigned int :28, minute2:4; /* lower digit */
329 unsigned int :28, minute1:4; /* upper digit */
330 unsigned int :28, hour2:4; /* lower digit */
331 unsigned int :28, hour1:4; /* upper digit */
332 unsigned int :28, day2:4; /* lower digit */
333 unsigned int :28, day1:4; /* upper digit */
334 unsigned int :28, month2:4; /* lower digit */
335 unsigned int :28, month1:4; /* upper digit */
336 unsigned int :28, year2:4; /* lower digit */
337 unsigned int :28, year1:4; /* upper digit */
338 unsigned int :28, weekday:4;
339 unsigned int :28, cntrl1:4; /* control-byte 1 */
340 unsigned int :28, cntrl2:4; /* control-byte 2 */
341 unsigned int :28, cntrl3:4; /* control-byte 3 */
342};
343
344#define TOD2000_CNTRL1_HOLD (1<<0)
345#define TOD2000_CNTRL1_BUSY (1<<1)
346#define TOD2000_CNTRL3_24HMODE (1<<2)
347#define TOD2000_HOUR1_PM (1<<2)
348#define tod_2000 ((*(volatile struct tod2000 *)(zTwoBase+0xDC0000)))
349
350#endif /* _M68K_AMIGAHW_H */
diff --git a/arch/m68k/include/asm/amigaints.h b/arch/m68k/include/asm/amigaints.h
new file mode 100644
index 000000000000..b1bcdb835ab9
--- /dev/null
+++ b/arch/m68k/include/asm/amigaints.h
@@ -0,0 +1,113 @@
1/*
2** amigaints.h -- Amiga Linux interrupt handling structs and prototypes
3**
4** Copyright 1992 by Greg Harp
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10** Created 10/2/92 by Greg Harp
11*/
12
13#ifndef _ASMm68k_AMIGAINTS_H_
14#define _ASMm68k_AMIGAINTS_H_
15
16#include <asm/irq.h>
17
18/*
19** Amiga Interrupt sources.
20**
21*/
22
23#define AUTO_IRQS (8)
24#define AMI_STD_IRQS (14)
25#define CIA_IRQS (5)
26#define AMI_IRQS (32) /* AUTO_IRQS+AMI_STD_IRQS+2*CIA_IRQS */
27
28/* builtin serial port interrupts */
29#define IRQ_AMIGA_TBE (IRQ_USER+0)
30#define IRQ_AMIGA_RBF (IRQ_USER+11)
31
32/* floppy disk interrupts */
33#define IRQ_AMIGA_DSKBLK (IRQ_USER+1)
34#define IRQ_AMIGA_DSKSYN (IRQ_USER+12)
35
36/* software interrupts */
37#define IRQ_AMIGA_SOFT (IRQ_USER+2)
38
39/* interrupts from external hardware */
40#define IRQ_AMIGA_PORTS IRQ_AUTO_2
41#define IRQ_AMIGA_EXTER IRQ_AUTO_6
42
43/* copper interrupt */
44#define IRQ_AMIGA_COPPER (IRQ_USER+4)
45
46/* vertical blanking interrupt */
47#define IRQ_AMIGA_VERTB (IRQ_USER+5)
48
49/* Blitter done interrupt */
50#define IRQ_AMIGA_BLIT (IRQ_USER+6)
51
52/* Audio interrupts */
53#define IRQ_AMIGA_AUD0 (IRQ_USER+7)
54#define IRQ_AMIGA_AUD1 (IRQ_USER+8)
55#define IRQ_AMIGA_AUD2 (IRQ_USER+9)
56#define IRQ_AMIGA_AUD3 (IRQ_USER+10)
57
58/* CIA interrupt sources */
59#define IRQ_AMIGA_CIAA (IRQ_USER+14)
60#define IRQ_AMIGA_CIAA_TA (IRQ_USER+14)
61#define IRQ_AMIGA_CIAA_TB (IRQ_USER+15)
62#define IRQ_AMIGA_CIAA_ALRM (IRQ_USER+16)
63#define IRQ_AMIGA_CIAA_SP (IRQ_USER+17)
64#define IRQ_AMIGA_CIAA_FLG (IRQ_USER+18)
65#define IRQ_AMIGA_CIAB (IRQ_USER+19)
66#define IRQ_AMIGA_CIAB_TA (IRQ_USER+19)
67#define IRQ_AMIGA_CIAB_TB (IRQ_USER+20)
68#define IRQ_AMIGA_CIAB_ALRM (IRQ_USER+21)
69#define IRQ_AMIGA_CIAB_SP (IRQ_USER+22)
70#define IRQ_AMIGA_CIAB_FLG (IRQ_USER+23)
71
72
73/* INTREQR masks */
74#define IF_SETCLR 0x8000 /* set/clr bit */
75#define IF_INTEN 0x4000 /* master interrupt bit in INT* registers */
76#define IF_EXTER 0x2000 /* external level 6 and CIA B interrupt */
77#define IF_DSKSYN 0x1000 /* disk sync interrupt */
78#define IF_RBF 0x0800 /* serial receive buffer full interrupt */
79#define IF_AUD3 0x0400 /* audio channel 3 done interrupt */
80#define IF_AUD2 0x0200 /* audio channel 2 done interrupt */
81#define IF_AUD1 0x0100 /* audio channel 1 done interrupt */
82#define IF_AUD0 0x0080 /* audio channel 0 done interrupt */
83#define IF_BLIT 0x0040 /* blitter done interrupt */
84#define IF_VERTB 0x0020 /* vertical blanking interrupt */
85#define IF_COPER 0x0010 /* copper interrupt */
86#define IF_PORTS 0x0008 /* external level 2 and CIA A interrupt */
87#define IF_SOFT 0x0004 /* software initiated interrupt */
88#define IF_DSKBLK 0x0002 /* diskblock DMA finished */
89#define IF_TBE 0x0001 /* serial transmit buffer empty interrupt */
90
91/* CIA interrupt control register bits */
92
93#define CIA_ICR_TA 0x01
94#define CIA_ICR_TB 0x02
95#define CIA_ICR_ALRM 0x04
96#define CIA_ICR_SP 0x08
97#define CIA_ICR_FLG 0x10
98#define CIA_ICR_ALL 0x1f
99#define CIA_ICR_SETCLR 0x80
100
101extern void amiga_init_IRQ(void);
102
103/* to access the interrupt control registers of CIA's use only
104** these functions, they behave exactly like the amiga os routines
105*/
106
107extern struct ciabase ciaa_base, ciab_base;
108
109extern void cia_init_IRQ(struct ciabase *base);
110extern unsigned char cia_set_irq(struct ciabase *base, unsigned char mask);
111extern unsigned char cia_able_irq(struct ciabase *base, unsigned char mask);
112
113#endif /* asm-m68k/amigaints.h */
diff --git a/arch/m68k/include/asm/amigayle.h b/arch/m68k/include/asm/amigayle.h
new file mode 100644
index 000000000000..bb5a6aa329f3
--- /dev/null
+++ b/arch/m68k/include/asm/amigayle.h
@@ -0,0 +1,107 @@
1/*
2** asm-m68k/amigayle.h -- This header defines the registers of the gayle chip
3** found on the Amiga 1200
4** This information was found by disassembling card.resource,
5** so the definitions may not be 100% correct
6** anyone has an official doc ?
7**
8** Copyright 1997 by Alain Malek
9**
10** This file is subject to the terms and conditions of the GNU General Public
11** License. See the file COPYING in the main directory of this archive
12** for more details.
13**
14** Created: 11/28/97 by Alain Malek
15*/
16
17#ifndef _M68K_AMIGAYLE_H_
18#define _M68K_AMIGAYLE_H_
19
20#include <linux/types.h>
21#include <asm/amigahw.h>
22
23/* memory layout */
24
25#define GAYLE_RAM (0x600000+zTwoBase)
26#define GAYLE_RAMSIZE (0x400000)
27#define GAYLE_ATTRIBUTE (0xa00000+zTwoBase)
28#define GAYLE_ATTRIBUTESIZE (0x020000)
29#define GAYLE_IO (0xa20000+zTwoBase) /* 16bit and even 8bit registers */
30#define GAYLE_IOSIZE (0x010000)
31#define GAYLE_IO_8BITODD (0xa30000+zTwoBase) /* odd 8bit registers */
32
33/* offset for accessing odd IO registers */
34#define GAYLE_ODD (GAYLE_IO_8BITODD-GAYLE_IO-1)
35
36/* GAYLE registers */
37
38struct GAYLE {
39 u_char cardstatus;
40 u_char pad0[0x1000-1];
41
42 u_char intreq;
43 u_char pad1[0x1000-1];
44
45 u_char inten;
46 u_char pad2[0x1000-1];
47
48 u_char config;
49 u_char pad3[0x1000-1];
50};
51
52#define GAYLE_ADDRESS (0xda8000) /* gayle main registers base address */
53
54#define GAYLE_RESET (0xa40000) /* write 0x00 to start reset,
55 read 1 byte to stop reset */
56
57#define gayle (*(volatile struct GAYLE *)(zTwoBase+GAYLE_ADDRESS))
58#define gayle_reset (*(volatile u_char *)(zTwoBase+GAYLE_RESET))
59
60#define gayle_attribute ((volatile u_char *)(GAYLE_ATTRIBUTE))
61
62#if 0
63#define gayle_inb(a) readb( GAYLE_IO+(a)+(((a)&1)*GAYLE_ODD) )
64#define gayle_outb(v,a) writeb( v, GAYLE_IO+(a)+(((a)&1)*GAYLE_ODD) )
65
66#define gayle_inw(a) readw( GAYLE_IO+(a) )
67#define gayle_outw(v,a) writew( v, GAYLE_IO+(a) )
68#endif
69
70/* GAYLE_CARDSTATUS bit def */
71
72#define GAYLE_CS_CCDET 0x40 /* credit card detect */
73#define GAYLE_CS_BVD1 0x20 /* battery voltage detect 1 */
74#define GAYLE_CS_SC 0x20 /* credit card status change */
75#define GAYLE_CS_BVD2 0x10 /* battery voltage detect 2 */
76#define GAYLE_CS_DA 0x10 /* digital audio */
77#define GAYLE_CS_WR 0x08 /* write enable (1 == enabled) */
78#define GAYLE_CS_BSY 0x04 /* credit card busy */
79#define GAYLE_CS_IRQ 0x04 /* interrupt request */
80
81/* GAYLE_IRQ bit def */
82
83#define GAYLE_IRQ_IDE 0x80
84#define GAYLE_IRQ_CCDET 0x40
85#define GAYLE_IRQ_BVD1 0x20
86#define GAYLE_IRQ_SC 0x20
87#define GAYLE_IRQ_BVD2 0x10
88#define GAYLE_IRQ_DA 0x10
89#define GAYLE_IRQ_WR 0x08
90#define GAYLE_IRQ_BSY 0x04
91#define GAYLE_IRQ_IRQ 0x04
92#define GAYLE_IRQ_IDEACK1 0x02
93#define GAYLE_IRQ_IDEACK0 0x01
94
95/* GAYLE_CONFIG bit def
96 (bit 0-1 for program voltage, bit 2-3 for access speed */
97
98#define GAYLE_CFG_0V 0x00
99#define GAYLE_CFG_5V 0x01
100#define GAYLE_CFG_12V 0x02
101
102#define GAYLE_CFG_100NS 0x08
103#define GAYLE_CFG_150NS 0x04
104#define GAYLE_CFG_250NS 0x00
105#define GAYLE_CFG_720NS 0x0c
106
107#endif /* asm-m68k/amigayle.h */
diff --git a/arch/m68k/include/asm/amipcmcia.h b/arch/m68k/include/asm/amipcmcia.h
new file mode 100644
index 000000000000..6f1ec1887d82
--- /dev/null
+++ b/arch/m68k/include/asm/amipcmcia.h
@@ -0,0 +1,110 @@
1/*
2** asm-m68k/pcmcia.h -- Amiga Linux PCMCIA Definitions
3**
4** Copyright 1997 by Alain Malek
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10** Created: 12/10/97 by Alain Malek
11*/
12
13#ifndef __AMIGA_PCMCIA_H__
14#define __AMIGA_PCMCIA_H__
15
16#include <asm/amigayle.h>
17
18/* prototypes */
19
20void pcmcia_reset(void);
21int pcmcia_copy_tuple(unsigned char tuple_id, void *tuple, int max_len);
22void pcmcia_program_voltage(int voltage);
23void pcmcia_access_speed(int speed);
24void pcmcia_write_enable(void);
25void pcmcia_write_disable(void);
26
27static inline u_char pcmcia_read_status(void)
28{
29 return (gayle.cardstatus & 0x7c);
30}
31
32static inline u_char pcmcia_get_intreq(void)
33{
34 return (gayle.intreq);
35}
36
37static inline void pcmcia_ack_int(u_char intreq)
38{
39 gayle.intreq = 0xf8;
40}
41
42static inline void pcmcia_enable_irq(void)
43{
44 gayle.inten |= GAYLE_IRQ_IRQ;
45}
46
47static inline void pcmcia_disable_irq(void)
48{
49 gayle.inten &= ~GAYLE_IRQ_IRQ;
50}
51
52#define PCMCIA_INSERTED (gayle.cardstatus & GAYLE_CS_CCDET)
53
54/* valid voltages for pcmcia_ProgramVoltage */
55
56#define PCMCIA_0V 0
57#define PCMCIA_5V 5
58#define PCMCIA_12V 12
59
60/* valid speeds for pcmcia_AccessSpeed */
61
62#define PCMCIA_SPEED_100NS 100
63#define PCMCIA_SPEED_150NS 150
64#define PCMCIA_SPEED_250NS 250
65#define PCMCIA_SPEED_720NS 720
66
67/* PCMCIA Tuple codes */
68
69#define CISTPL_NULL 0x00
70#define CISTPL_DEVICE 0x01
71#define CISTPL_LONGLINK_CB 0x02
72#define CISTPL_CONFIG_CB 0x04
73#define CISTPL_CFTABLE_ENTRY_CB 0x05
74#define CISTPL_LONGLINK_MFC 0x06
75#define CISTPL_BAR 0x07
76#define CISTPL_CHECKSUM 0x10
77#define CISTPL_LONGLINK_A 0x11
78#define CISTPL_LONGLINK_C 0x12
79#define CISTPL_LINKTARGET 0x13
80#define CISTPL_NO_LINK 0x14
81#define CISTPL_VERS_1 0x15
82#define CISTPL_ALTSTR 0x16
83#define CISTPL_DEVICE_A 0x17
84#define CISTPL_JEDEC_C 0x18
85#define CISTPL_JEDEC_A 0x19
86#define CISTPL_CONFIG 0x1a
87#define CISTPL_CFTABLE_ENTRY 0x1b
88#define CISTPL_DEVICE_OC 0x1c
89#define CISTPL_DEVICE_OA 0x1d
90#define CISTPL_DEVICE_GEO 0x1e
91#define CISTPL_DEVICE_GEO_A 0x1f
92#define CISTPL_MANFID 0x20
93#define CISTPL_FUNCID 0x21
94#define CISTPL_FUNCE 0x22
95#define CISTPL_SWIL 0x23
96#define CISTPL_END 0xff
97
98/* FUNCID */
99
100#define CISTPL_FUNCID_MULTI 0x00
101#define CISTPL_FUNCID_MEMORY 0x01
102#define CISTPL_FUNCID_SERIAL 0x02
103#define CISTPL_FUNCID_PARALLEL 0x03
104#define CISTPL_FUNCID_FIXED 0x04
105#define CISTPL_FUNCID_VIDEO 0x05
106#define CISTPL_FUNCID_NETWORK 0x06
107#define CISTPL_FUNCID_AIMS 0x07
108#define CISTPL_FUNCID_SCSI 0x08
109
110#endif
diff --git a/arch/m68knommu/include/asm/anchor.h b/arch/m68k/include/asm/anchor.h
index 871c0d5cfc3d..871c0d5cfc3d 100644
--- a/arch/m68knommu/include/asm/anchor.h
+++ b/arch/m68k/include/asm/anchor.h
diff --git a/arch/m68k/include/asm/apollodma.h b/arch/m68k/include/asm/apollodma.h
new file mode 100644
index 000000000000..954adc851adb
--- /dev/null
+++ b/arch/m68k/include/asm/apollodma.h
@@ -0,0 +1,248 @@
1/*
2 * linux/include/asm/dma.h: Defines for using and allocating dma channels.
3 * Written by Hennus Bergman, 1992.
4 * High DMA channel support & info by Hannu Savolainen
5 * and John Boyd, Nov. 1992.
6 */
7
8#ifndef _ASM_APOLLO_DMA_H
9#define _ASM_APOLLO_DMA_H
10
11#include <asm/apollohw.h> /* need byte IO */
12#include <linux/spinlock.h> /* And spinlocks */
13#include <linux/delay.h>
14
15
16#define dma_outb(val,addr) (*((volatile unsigned char *)(addr+IO_BASE)) = (val))
17#define dma_inb(addr) (*((volatile unsigned char *)(addr+IO_BASE)))
18
19/*
20 * NOTES about DMA transfers:
21 *
22 * controller 1: channels 0-3, byte operations, ports 00-1F
23 * controller 2: channels 4-7, word operations, ports C0-DF
24 *
25 * - ALL registers are 8 bits only, regardless of transfer size
26 * - channel 4 is not used - cascades 1 into 2.
27 * - channels 0-3 are byte - addresses/counts are for physical bytes
28 * - channels 5-7 are word - addresses/counts are for physical words
29 * - transfers must not cross physical 64K (0-3) or 128K (5-7) boundaries
30 * - transfer count loaded to registers is 1 less than actual count
31 * - controller 2 offsets are all even (2x offsets for controller 1)
32 * - page registers for 5-7 don't use data bit 0, represent 128K pages
33 * - page registers for 0-3 use bit 0, represent 64K pages
34 *
35 * DMA transfers are limited to the lower 16MB of _physical_ memory.
36 * Note that addresses loaded into registers must be _physical_ addresses,
37 * not logical addresses (which may differ if paging is active).
38 *
39 * Address mapping for channels 0-3:
40 *
41 * A23 ... A16 A15 ... A8 A7 ... A0 (Physical addresses)
42 * | ... | | ... | | ... |
43 * | ... | | ... | | ... |
44 * | ... | | ... | | ... |
45 * P7 ... P0 A7 ... A0 A7 ... A0
46 * | Page | Addr MSB | Addr LSB | (DMA registers)
47 *
48 * Address mapping for channels 5-7:
49 *
50 * A23 ... A17 A16 A15 ... A9 A8 A7 ... A1 A0 (Physical addresses)
51 * | ... | \ \ ... \ \ \ ... \ \
52 * | ... | \ \ ... \ \ \ ... \ (not used)
53 * | ... | \ \ ... \ \ \ ... \
54 * P7 ... P1 (0) A7 A6 ... A0 A7 A6 ... A0
55 * | Page | Addr MSB | Addr LSB | (DMA registers)
56 *
57 * Again, channels 5-7 transfer _physical_ words (16 bits), so addresses
58 * and counts _must_ be word-aligned (the lowest address bit is _ignored_ at
59 * the hardware level, so odd-byte transfers aren't possible).
60 *
61 * Transfer count (_not # bytes_) is limited to 64K, represented as actual
62 * count - 1 : 64K => 0xFFFF, 1 => 0x0000. Thus, count is always 1 or more,
63 * and up to 128K bytes may be transferred on channels 5-7 in one operation.
64 *
65 */
66
67#define MAX_DMA_CHANNELS 8
68
69/* The maximum address that we can perform a DMA transfer to on this platform */#define MAX_DMA_ADDRESS (PAGE_OFFSET+0x1000000)
70
71/* 8237 DMA controllers */
72#define IO_DMA1_BASE 0x10C00 /* 8 bit slave DMA, channels 0..3 */
73#define IO_DMA2_BASE 0x10D00 /* 16 bit master DMA, ch 4(=slave input)..7 */
74
75/* DMA controller registers */
76#define DMA1_CMD_REG (IO_DMA1_BASE+0x08) /* command register (w) */
77#define DMA1_STAT_REG (IO_DMA1_BASE+0x08) /* status register (r) */
78#define DMA1_REQ_REG (IO_DMA1_BASE+0x09) /* request register (w) */
79#define DMA1_MASK_REG (IO_DMA1_BASE+0x0A) /* single-channel mask (w) */
80#define DMA1_MODE_REG (IO_DMA1_BASE+0x0B) /* mode register (w) */
81#define DMA1_CLEAR_FF_REG (IO_DMA1_BASE+0x0C) /* clear pointer flip-flop (w) */
82#define DMA1_TEMP_REG (IO_DMA1_BASE+0x0D) /* Temporary Register (r) */
83#define DMA1_RESET_REG (IO_DMA1_BASE+0x0D) /* Master Clear (w) */
84#define DMA1_CLR_MASK_REG (IO_DMA1_BASE+0x0E) /* Clear Mask */
85#define DMA1_MASK_ALL_REG (IO_DMA1_BASE+0x0F) /* all-channels mask (w) */
86
87#define DMA2_CMD_REG (IO_DMA2_BASE+0x10) /* command register (w) */
88#define DMA2_STAT_REG (IO_DMA2_BASE+0x10) /* status register (r) */
89#define DMA2_REQ_REG (IO_DMA2_BASE+0x12) /* request register (w) */
90#define DMA2_MASK_REG (IO_DMA2_BASE+0x14) /* single-channel mask (w) */
91#define DMA2_MODE_REG (IO_DMA2_BASE+0x16) /* mode register (w) */
92#define DMA2_CLEAR_FF_REG (IO_DMA2_BASE+0x18) /* clear pointer flip-flop (w) */
93#define DMA2_TEMP_REG (IO_DMA2_BASE+0x1A) /* Temporary Register (r) */
94#define DMA2_RESET_REG (IO_DMA2_BASE+0x1A) /* Master Clear (w) */
95#define DMA2_CLR_MASK_REG (IO_DMA2_BASE+0x1C) /* Clear Mask */
96#define DMA2_MASK_ALL_REG (IO_DMA2_BASE+0x1E) /* all-channels mask (w) */
97
98#define DMA_ADDR_0 (IO_DMA1_BASE+0x00) /* DMA address registers */
99#define DMA_ADDR_1 (IO_DMA1_BASE+0x02)
100#define DMA_ADDR_2 (IO_DMA1_BASE+0x04)
101#define DMA_ADDR_3 (IO_DMA1_BASE+0x06)
102#define DMA_ADDR_4 (IO_DMA2_BASE+0x00)
103#define DMA_ADDR_5 (IO_DMA2_BASE+0x04)
104#define DMA_ADDR_6 (IO_DMA2_BASE+0x08)
105#define DMA_ADDR_7 (IO_DMA2_BASE+0x0C)
106
107#define DMA_CNT_0 (IO_DMA1_BASE+0x01) /* DMA count registers */
108#define DMA_CNT_1 (IO_DMA1_BASE+0x03)
109#define DMA_CNT_2 (IO_DMA1_BASE+0x05)
110#define DMA_CNT_3 (IO_DMA1_BASE+0x07)
111#define DMA_CNT_4 (IO_DMA2_BASE+0x02)
112#define DMA_CNT_5 (IO_DMA2_BASE+0x06)
113#define DMA_CNT_6 (IO_DMA2_BASE+0x0A)
114#define DMA_CNT_7 (IO_DMA2_BASE+0x0E)
115
116#define DMA_MODE_READ 0x44 /* I/O to memory, no autoinit, increment, single mode */
117#define DMA_MODE_WRITE 0x48 /* memory to I/O, no autoinit, increment, single mode */
118#define DMA_MODE_CASCADE 0xC0 /* pass thru DREQ->HRQ, DACK<-HLDA only */
119
120#define DMA_AUTOINIT 0x10
121
122#define DMA_8BIT 0
123#define DMA_16BIT 1
124#define DMA_BUSMASTER 2
125
126extern spinlock_t dma_spin_lock;
127
128static __inline__ unsigned long claim_dma_lock(void)
129{
130 unsigned long flags;
131 spin_lock_irqsave(&dma_spin_lock, flags);
132 return flags;
133}
134
135static __inline__ void release_dma_lock(unsigned long flags)
136{
137 spin_unlock_irqrestore(&dma_spin_lock, flags);
138}
139
140/* enable/disable a specific DMA channel */
141static __inline__ void enable_dma(unsigned int dmanr)
142{
143 if (dmanr<=3)
144 dma_outb(dmanr, DMA1_MASK_REG);
145 else
146 dma_outb(dmanr & 3, DMA2_MASK_REG);
147}
148
149static __inline__ void disable_dma(unsigned int dmanr)
150{
151 if (dmanr<=3)
152 dma_outb(dmanr | 4, DMA1_MASK_REG);
153 else
154 dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
155}
156
157/* Clear the 'DMA Pointer Flip Flop'.
158 * Write 0 for LSB/MSB, 1 for MSB/LSB access.
159 * Use this once to initialize the FF to a known state.
160 * After that, keep track of it. :-)
161 * --- In order to do that, the DMA routines below should ---
162 * --- only be used while holding the DMA lock ! ---
163 */
164static __inline__ void clear_dma_ff(unsigned int dmanr)
165{
166 if (dmanr<=3)
167 dma_outb(0, DMA1_CLEAR_FF_REG);
168 else
169 dma_outb(0, DMA2_CLEAR_FF_REG);
170}
171
172/* set mode (above) for a specific DMA channel */
173static __inline__ void set_dma_mode(unsigned int dmanr, char mode)
174{
175 if (dmanr<=3)
176 dma_outb(mode | dmanr, DMA1_MODE_REG);
177 else
178 dma_outb(mode | (dmanr&3), DMA2_MODE_REG);
179}
180
181/* Set transfer address & page bits for specific DMA channel.
182 * Assumes dma flipflop is clear.
183 */
184static __inline__ void set_dma_addr(unsigned int dmanr, unsigned int a)
185{
186 if (dmanr <= 3) {
187 dma_outb( a & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
188 dma_outb( (a>>8) & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
189 } else {
190 dma_outb( (a>>1) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
191 dma_outb( (a>>9) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
192 }
193}
194
195
196/* Set transfer size (max 64k for DMA1..3, 128k for DMA5..7) for
197 * a specific DMA channel.
198 * You must ensure the parameters are valid.
199 * NOTE: from a manual: "the number of transfers is one more
200 * than the initial word count"! This is taken into account.
201 * Assumes dma flip-flop is clear.
202 * NOTE 2: "count" represents _bytes_ and must be even for channels 5-7.
203 */
204static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count)
205{
206 count--;
207 if (dmanr <= 3) {
208 dma_outb( count & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
209 dma_outb( (count>>8) & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
210 } else {
211 dma_outb( (count>>1) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
212 dma_outb( (count>>9) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
213 }
214}
215
216
217/* Get DMA residue count. After a DMA transfer, this
218 * should return zero. Reading this while a DMA transfer is
219 * still in progress will return unpredictable results.
220 * If called before the channel has been used, it may return 1.
221 * Otherwise, it returns the number of _bytes_ left to transfer.
222 *
223 * Assumes DMA flip-flop is clear.
224 */
225static __inline__ int get_dma_residue(unsigned int dmanr)
226{
227 unsigned int io_port = (dmanr<=3)? ((dmanr&3)<<1) + 1 + IO_DMA1_BASE
228 : ((dmanr&3)<<2) + 2 + IO_DMA2_BASE;
229
230 /* using short to get 16-bit wrap around */
231 unsigned short count;
232
233 count = 1 + dma_inb(io_port);
234 count += dma_inb(io_port) << 8;
235
236 return (dmanr<=3)? count : (count<<1);
237}
238
239
240/* These are in kernel/dma.c: */
241extern int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */
242extern void free_dma(unsigned int dmanr); /* release it again */
243
244/* These are in arch/m68k/apollo/dma.c: */
245extern unsigned short dma_map_page(unsigned long phys_addr,int count,int type);
246extern void dma_unmap_page(unsigned short dma_addr);
247
248#endif /* _ASM_APOLLO_DMA_H */
diff --git a/arch/m68k/include/asm/apollohw.h b/arch/m68k/include/asm/apollohw.h
new file mode 100644
index 000000000000..a1373b9aa281
--- /dev/null
+++ b/arch/m68k/include/asm/apollohw.h
@@ -0,0 +1,108 @@
1/* apollohw.h : some structures to access apollo HW */
2
3#ifndef _ASMm68k_APOLLOHW_H_
4#define _ASMm68k_APOLLOHW_H_
5
6#include <linux/types.h>
7
8/*
9 apollo models
10*/
11
12extern u_long apollo_model;
13
14#define APOLLO_UNKNOWN (0)
15#define APOLLO_DN3000 (1)
16#define APOLLO_DN3010 (2)
17#define APOLLO_DN3500 (3)
18#define APOLLO_DN4000 (4)
19#define APOLLO_DN4500 (5)
20
21/*
22 see scn2681 data sheet for more info.
23 member names are read_write.
24*/
25
26#define DECLARE_2681_FIELD(x) unsigned char x; unsigned char dummy##x
27
28struct SCN2681 {
29
30 DECLARE_2681_FIELD(mra);
31 DECLARE_2681_FIELD(sra_csra);
32 DECLARE_2681_FIELD(BRGtest_cra);
33 DECLARE_2681_FIELD(rhra_thra);
34 DECLARE_2681_FIELD(ipcr_acr);
35 DECLARE_2681_FIELD(isr_imr);
36 DECLARE_2681_FIELD(ctu_ctur);
37 DECLARE_2681_FIELD(ctl_ctlr);
38 DECLARE_2681_FIELD(mrb);
39 DECLARE_2681_FIELD(srb_csrb);
40 DECLARE_2681_FIELD(tst_crb);
41 DECLARE_2681_FIELD(rhrb_thrb);
42 DECLARE_2681_FIELD(reserved);
43 DECLARE_2681_FIELD(ip_opcr);
44 DECLARE_2681_FIELD(startCnt_setOutBit);
45 DECLARE_2681_FIELD(stopCnt_resetOutBit);
46
47};
48
49#if 0
50struct mc146818 {
51
52 unsigned int second1:4, second2:4, alarm_second1:4, alarm_second2:4,
53 minute1:4, minute2:4, alarm_minute1:4, alarm_minute2:4;
54 unsigned int hours1:4, hours2:4, alarm_hours1:4, alarm_hours2:4,
55 day_of_week1:4, day_of_week2:4, day_of_month1:4, day_of_month2:4;
56 unsigned int month1:4, month2:4, year1:4, year2:4, :16;
57
58};
59#endif
60
61struct mc146818 {
62 unsigned char second, alarm_second;
63 unsigned char minute, alarm_minute;
64 unsigned char hours, alarm_hours;
65 unsigned char day_of_week, day_of_month;
66 unsigned char month, year;
67};
68
69
70#define IO_BASE 0x80000000
71
72extern u_long sio01_physaddr;
73extern u_long sio23_physaddr;
74extern u_long rtc_physaddr;
75extern u_long pica_physaddr;
76extern u_long picb_physaddr;
77extern u_long cpuctrl_physaddr;
78extern u_long timer_physaddr;
79
80#define SAU7_SIO01_PHYSADDR 0x10400
81#define SAU7_SIO23_PHYSADDR 0x10500
82#define SAU7_RTC_PHYSADDR 0x10900
83#define SAU7_PICA 0x11000
84#define SAU7_PICB 0x11100
85#define SAU7_CPUCTRL 0x10100
86#define SAU7_TIMER 0x010800
87
88#define SAU8_SIO01_PHYSADDR 0x8400
89#define SAU8_RTC_PHYSADDR 0x8900
90#define SAU8_PICA 0x9400
91#define SAU8_PICB 0x9500
92#define SAU8_CPUCTRL 0x8100
93#define SAU8_TIMER 0x8800
94
95#define sio01 ((*(volatile struct SCN2681 *)(IO_BASE + sio01_physaddr)))
96#define sio23 ((*(volatile struct SCN2681 *)(IO_BASE + sio23_physaddr)))
97#define rtc (((volatile struct mc146818 *)(IO_BASE + rtc_physaddr)))
98#define cpuctrl (*(volatile unsigned int *)(IO_BASE + cpuctrl_physaddr))
99#define pica (IO_BASE + pica_physaddr)
100#define picb (IO_BASE + picb_physaddr)
101#define timer (IO_BASE + timer_physaddr)
102#define addr_xlat_map ((unsigned short *)(IO_BASE + 0x17000))
103
104#define isaIO2mem(x) (((((x) & 0x3f8) << 7) | (((x) & 0xfc00) >> 6) | ((x) & 0x7)) + 0x40000 + IO_BASE)
105
106#define IRQ_APOLLO IRQ_USER
107
108#endif
diff --git a/arch/m68k/include/asm/atafd.h b/arch/m68k/include/asm/atafd.h
new file mode 100644
index 000000000000..8456889ee7da
--- /dev/null
+++ b/arch/m68k/include/asm/atafd.h
@@ -0,0 +1,12 @@
1#ifndef _ASM_M68K_FD_H
2#define _ASM_M68K_FD_H
3
4/* Definitions for the Atari Floppy driver */
5
6struct atari_format_descr {
7 int track; /* to be formatted */
8 int head; /* "" "" */
9 int sect_offset; /* offset of first sector */
10};
11
12#endif
diff --git a/arch/m68k/include/asm/atafdreg.h b/arch/m68k/include/asm/atafdreg.h
new file mode 100644
index 000000000000..bbf80949fd9f
--- /dev/null
+++ b/arch/m68k/include/asm/atafdreg.h
@@ -0,0 +1,79 @@
1#ifndef _LINUX_FDREG_H
2#define _LINUX_FDREG_H
3
4/*
5** WD1772 stuff
6 */
7
8/* register codes */
9
10#define FDCSELREG_STP (0x80) /* command/status register */
11#define FDCSELREG_TRA (0x82) /* track register */
12#define FDCSELREG_SEC (0x84) /* sector register */
13#define FDCSELREG_DTA (0x86) /* data register */
14
15/* register names for FDC_READ/WRITE macros */
16
17#define FDCREG_CMD 0
18#define FDCREG_STATUS 0
19#define FDCREG_TRACK 2
20#define FDCREG_SECTOR 4
21#define FDCREG_DATA 6
22
23/* command opcodes */
24
25#define FDCCMD_RESTORE (0x00) /* - */
26#define FDCCMD_SEEK (0x10) /* | */
27#define FDCCMD_STEP (0x20) /* | TYP 1 Commands */
28#define FDCCMD_STIN (0x40) /* | */
29#define FDCCMD_STOT (0x60) /* - */
30#define FDCCMD_RDSEC (0x80) /* - TYP 2 Commands */
31#define FDCCMD_WRSEC (0xa0) /* - " */
32#define FDCCMD_RDADR (0xc0) /* - */
33#define FDCCMD_RDTRA (0xe0) /* | TYP 3 Commands */
34#define FDCCMD_WRTRA (0xf0) /* - */
35#define FDCCMD_FORCI (0xd0) /* - TYP 4 Command */
36
37/* command modifier bits */
38
39#define FDCCMDADD_SR6 (0x00) /* step rate settings */
40#define FDCCMDADD_SR12 (0x01)
41#define FDCCMDADD_SR2 (0x02)
42#define FDCCMDADD_SR3 (0x03)
43#define FDCCMDADD_V (0x04) /* verify */
44#define FDCCMDADD_H (0x08) /* wait for spin-up */
45#define FDCCMDADD_U (0x10) /* update track register */
46#define FDCCMDADD_M (0x10) /* multiple sector access */
47#define FDCCMDADD_E (0x04) /* head settling flag */
48#define FDCCMDADD_P (0x02) /* precompensation off */
49#define FDCCMDADD_A0 (0x01) /* DAM flag */
50
51/* status register bits */
52
53#define FDCSTAT_MOTORON (0x80) /* motor on */
54#define FDCSTAT_WPROT (0x40) /* write protected (FDCCMD_WR*) */
55#define FDCSTAT_SPINUP (0x20) /* motor speed stable (Type I) */
56#define FDCSTAT_DELDAM (0x20) /* sector has deleted DAM (Type II+III) */
57#define FDCSTAT_RECNF (0x10) /* record not found */
58#define FDCSTAT_CRC (0x08) /* CRC error */
59#define FDCSTAT_TR00 (0x04) /* Track 00 flag (Type I) */
60#define FDCSTAT_LOST (0x04) /* Lost Data (Type II+III) */
61#define FDCSTAT_IDX (0x02) /* Index status (Type I) */
62#define FDCSTAT_DRQ (0x02) /* DRQ status (Type II+III) */
63#define FDCSTAT_BUSY (0x01) /* FDC is busy */
64
65
66/* PSG Port A Bit Nr 0 .. Side Sel .. 0 -> Side 1 1 -> Side 2 */
67#define DSKSIDE (0x01)
68
69#define DSKDRVNONE (0x06)
70#define DSKDRV0 (0x02)
71#define DSKDRV1 (0x04)
72
73/* step rates */
74#define FDCSTEP_6 0x00
75#define FDCSTEP_12 0x01
76#define FDCSTEP_2 0x02
77#define FDCSTEP_3 0x03
78
79#endif
diff --git a/arch/m68k/include/asm/atari_joystick.h b/arch/m68k/include/asm/atari_joystick.h
new file mode 100644
index 000000000000..93be7da9f2c7
--- /dev/null
+++ b/arch/m68k/include/asm/atari_joystick.h
@@ -0,0 +1,22 @@
1#ifndef _LINUX_ATARI_JOYSTICK_H
2#define _LINUX_ATARI_JOYSTICK_H
3
4/*
5 * linux/include/linux/atari_joystick.h
6 * header file for Atari Joystick driver
7 * by Robert de Vries (robert@and.nl) on 19Jul93
8 */
9
10void atari_joystick_interrupt(char*);
11int atari_joystick_init(void);
12extern int atari_mouse_buttons;
13
14struct joystick_status {
15 char fire;
16 char dir;
17 int ready;
18 int active;
19 wait_queue_head_t wait;
20};
21
22#endif
diff --git a/arch/m68k/include/asm/atari_stdma.h b/arch/m68k/include/asm/atari_stdma.h
new file mode 100644
index 000000000000..8e389b7fa70c
--- /dev/null
+++ b/arch/m68k/include/asm/atari_stdma.h
@@ -0,0 +1,22 @@
1
2#ifndef _atari_stdma_h
3#define _atari_stdma_h
4
5
6#include <linux/interrupt.h>
7
8
9/***************************** Prototypes *****************************/
10
11void stdma_lock(irq_handler_t handler, void *data);
12void stdma_release( void );
13int stdma_others_waiting( void );
14int stdma_islocked( void );
15void *stdma_locked_by( void );
16void stdma_init( void );
17
18/************************* End of Prototypes **************************/
19
20
21
22#endif /* _atari_stdma_h */
diff --git a/arch/m68k/include/asm/atari_stram.h b/arch/m68k/include/asm/atari_stram.h
new file mode 100644
index 000000000000..7546d13963be
--- /dev/null
+++ b/arch/m68k/include/asm/atari_stram.h
@@ -0,0 +1,17 @@
1#ifndef _M68K_ATARI_STRAM_H
2#define _M68K_ATARI_STRAM_H
3
4/*
5 * Functions for Atari ST-RAM management
6 */
7
8/* public interface */
9void *atari_stram_alloc(long size, const char *owner);
10void atari_stram_free(void *);
11
12/* functions called internally by other parts of the kernel */
13void atari_stram_init(void);
14void atari_stram_reserve_pages(void *start_mem);
15void atari_stram_mem_init_hook (void);
16
17#endif /*_M68K_ATARI_STRAM_H */
diff --git a/arch/m68k/include/asm/atarihw.h b/arch/m68k/include/asm/atarihw.h
new file mode 100644
index 000000000000..a714e1aa072a
--- /dev/null
+++ b/arch/m68k/include/asm/atarihw.h
@@ -0,0 +1,807 @@
1/*
2** linux/atarihw.h -- This header defines some macros and pointers for
3** the various Atari custom hardware registers.
4**
5** Copyright 1994 by Björn Brauel
6**
7** 5/1/94 Roman Hodek:
8** Added definitions for TT specific chips.
9**
10** 1996-09-13 lars brinkhoff <f93labr@dd.chalmers.se>:
11** Finally added definitions for the matrix/codec and the DSP56001 host
12** interface.
13**
14** This file is subject to the terms and conditions of the GNU General Public
15** License. See the file COPYING in the main directory of this archive
16** for more details.
17**
18*/
19
20#ifndef _LINUX_ATARIHW_H_
21#define _LINUX_ATARIHW_H_
22
23#include <linux/types.h>
24#include <asm/bootinfo.h>
25#include <asm/raw_io.h>
26
27extern u_long atari_mch_cookie;
28extern u_long atari_mch_type;
29extern u_long atari_switches;
30extern int atari_rtc_year_offset;
31extern int atari_dont_touch_floppy_select;
32
33/* convenience macros for testing machine type */
34#define MACH_IS_ST ((atari_mch_cookie >> 16) == ATARI_MCH_ST)
35#define MACH_IS_STE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \
36 (atari_mch_cookie & 0xffff) == 0)
37#define MACH_IS_MSTE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \
38 (atari_mch_cookie & 0xffff) == 0x10)
39#define MACH_IS_TT ((atari_mch_cookie >> 16) == ATARI_MCH_TT)
40#define MACH_IS_FALCON ((atari_mch_cookie >> 16) == ATARI_MCH_FALCON)
41#define MACH_IS_MEDUSA (atari_mch_type == ATARI_MACH_MEDUSA)
42#define MACH_IS_AB40 (atari_mch_type == ATARI_MACH_AB40)
43
44/* values for atari_switches */
45#define ATARI_SWITCH_IKBD 0x01
46#define ATARI_SWITCH_MIDI 0x02
47#define ATARI_SWITCH_SND6 0x04
48#define ATARI_SWITCH_SND7 0x08
49#define ATARI_SWITCH_OVSC_SHIFT 16
50#define ATARI_SWITCH_OVSC_IKBD (ATARI_SWITCH_IKBD << ATARI_SWITCH_OVSC_SHIFT)
51#define ATARI_SWITCH_OVSC_MIDI (ATARI_SWITCH_MIDI << ATARI_SWITCH_OVSC_SHIFT)
52#define ATARI_SWITCH_OVSC_SND6 (ATARI_SWITCH_SND6 << ATARI_SWITCH_OVSC_SHIFT)
53#define ATARI_SWITCH_OVSC_SND7 (ATARI_SWITCH_SND7 << ATARI_SWITCH_OVSC_SHIFT)
54#define ATARI_SWITCH_OVSC_MASK 0xffff0000
55
56/*
57 * Define several Hardware-Chips for indication so that for the ATARI we do
58 * no longer decide whether it is a Falcon or other machine . It's just
59 * important what hardware the machine uses
60 */
61
62/* ++roman 08/08/95: rewritten from ORing constants to a C bitfield */
63
64#define ATARIHW_DECLARE(name) unsigned name : 1
65#define ATARIHW_SET(name) (atari_hw_present.name = 1)
66#define ATARIHW_PRESENT(name) (atari_hw_present.name)
67
68struct atari_hw_present {
69 /* video hardware */
70 ATARIHW_DECLARE(STND_SHIFTER); /* ST-Shifter - no base low ! */
71 ATARIHW_DECLARE(EXTD_SHIFTER); /* STe-Shifter - 24 bit address */
72 ATARIHW_DECLARE(TT_SHIFTER); /* TT-Shifter */
73 ATARIHW_DECLARE(VIDEL_SHIFTER); /* Falcon-Shifter */
74 /* sound hardware */
75 ATARIHW_DECLARE(YM_2149); /* Yamaha YM 2149 */
76 ATARIHW_DECLARE(PCM_8BIT); /* PCM-Sound in STe-ATARI */
77 ATARIHW_DECLARE(CODEC); /* CODEC Sound (Falcon) */
78 /* disk storage interfaces */
79 ATARIHW_DECLARE(TT_SCSI); /* Directly mapped NCR5380 */
80 ATARIHW_DECLARE(ST_SCSI); /* NCR5380 via ST-DMA (Falcon) */
81 ATARIHW_DECLARE(ACSI); /* Standard ACSI like in STs */
82 ATARIHW_DECLARE(IDE); /* IDE Interface */
83 ATARIHW_DECLARE(FDCSPEED); /* 8/16 MHz switch for FDC */
84 /* other I/O hardware */
85 ATARIHW_DECLARE(ST_MFP); /* The ST-MFP (there should be no Atari
86 without it... but who knows?) */
87 ATARIHW_DECLARE(TT_MFP); /* 2nd MFP */
88 ATARIHW_DECLARE(SCC); /* Serial Communications Contr. */
89 ATARIHW_DECLARE(ST_ESCC); /* SCC Z83230 in an ST */
90 ATARIHW_DECLARE(ANALOG_JOY); /* Paddle Interface for STe
91 and Falcon */
92 ATARIHW_DECLARE(MICROWIRE); /* Microwire Interface */
93 /* DMA */
94 ATARIHW_DECLARE(STND_DMA); /* 24 Bit limited ST-DMA */
95 ATARIHW_DECLARE(EXTD_DMA); /* 32 Bit ST-DMA */
96 ATARIHW_DECLARE(SCSI_DMA); /* DMA for the NCR5380 */
97 ATARIHW_DECLARE(SCC_DMA); /* DMA for the SCC */
98 /* real time clocks */
99 ATARIHW_DECLARE(TT_CLK); /* TT compatible clock chip */
100 ATARIHW_DECLARE(MSTE_CLK); /* Mega ST(E) clock chip */
101 /* supporting hardware */
102 ATARIHW_DECLARE(SCU); /* System Control Unit */
103 ATARIHW_DECLARE(BLITTER); /* Blitter */
104 ATARIHW_DECLARE(VME); /* VME Bus */
105 ATARIHW_DECLARE(DSP56K); /* DSP56k processor in Falcon */
106};
107
108extern struct atari_hw_present atari_hw_present;
109
110
111/* Reading the MFP port register gives a machine independent delay, since the
112 * MFP always has a 8 MHz clock. This avoids problems with the varying length
113 * of nops on various machines. Somebody claimed that the tstb takes 600 ns.
114 */
115#define MFPDELAY() \
116 __asm__ __volatile__ ( "tstb %0" : : "m" (st_mfp.par_dt_reg) : "cc" );
117
118/* Do cache push/invalidate for DMA read/write. This function obeys the
119 * snooping on some machines (Medusa) and processors: The Medusa itself can
120 * snoop, but only the '040 can source data from its cache to DMA writes i.e.,
121 * reads from memory). Both '040 and '060 invalidate cache entries on snooped
122 * DMA reads (i.e., writes to memory).
123 */
124
125
126#define atari_readb raw_inb
127#define atari_writeb raw_outb
128
129#define atari_inb_p raw_inb
130#define atari_outb_p raw_outb
131
132
133
134#include <linux/mm.h>
135#include <asm/cacheflush.h>
136
137static inline void dma_cache_maintenance( unsigned long paddr,
138 unsigned long len,
139 int writeflag )
140
141{
142 if (writeflag) {
143 if (!MACH_IS_MEDUSA || CPU_IS_060)
144 cache_push( paddr, len );
145 }
146 else {
147 if (!MACH_IS_MEDUSA)
148 cache_clear( paddr, len );
149 }
150}
151
152
153/*
154** Shifter
155 */
156#define ST_LOW 0
157#define ST_MID 1
158#define ST_HIGH 2
159#define TT_LOW 7
160#define TT_MID 4
161#define TT_HIGH 6
162
163#define SHF_BAS (0xffff8200)
164struct SHIFTER
165 {
166 u_char pad1;
167 u_char bas_hi;
168 u_char pad2;
169 u_char bas_md;
170 u_char pad3;
171 u_char volatile vcounthi;
172 u_char pad4;
173 u_char volatile vcountmid;
174 u_char pad5;
175 u_char volatile vcountlow;
176 u_char volatile syncmode;
177 u_char pad6;
178 u_char pad7;
179 u_char bas_lo;
180 };
181# define shifter ((*(volatile struct SHIFTER *)SHF_BAS))
182
183#define SHF_FBAS (0xffff820e)
184struct SHIFTER_F030
185 {
186 u_short off_next;
187 u_short scn_width;
188 };
189# define shifter_f030 ((*(volatile struct SHIFTER_F030 *)SHF_FBAS))
190
191
192#define SHF_TBAS (0xffff8200)
193struct SHIFTER_TT {
194 u_char char_dummy0;
195 u_char bas_hi; /* video mem base addr, high and mid byte */
196 u_char char_dummy1;
197 u_char bas_md;
198 u_char char_dummy2;
199 u_char vcount_hi; /* pointer to currently displayed byte */
200 u_char char_dummy3;
201 u_char vcount_md;
202 u_char char_dummy4;
203 u_char vcount_lo;
204 u_short st_sync; /* ST compatible sync mode register, unused */
205 u_char char_dummy5;
206 u_char bas_lo; /* video mem addr, low byte */
207 u_char char_dummy6[2+3*16];
208 /* $ffff8240: */
209 u_short color_reg[16]; /* 16 color registers */
210 u_char st_shiftmode; /* ST compatible shift mode register, unused */
211 u_char char_dummy7;
212 u_short tt_shiftmode; /* TT shift mode register */
213
214
215};
216#define shifter_tt ((*(volatile struct SHIFTER_TT *)SHF_TBAS))
217
218/* values for shifter_tt->tt_shiftmode */
219#define TT_SHIFTER_STLOW 0x0000
220#define TT_SHIFTER_STMID 0x0100
221#define TT_SHIFTER_STHIGH 0x0200
222#define TT_SHIFTER_TTLOW 0x0700
223#define TT_SHIFTER_TTMID 0x0400
224#define TT_SHIFTER_TTHIGH 0x0600
225#define TT_SHIFTER_MODEMASK 0x0700
226#define TT_SHIFTER_NUMMODE 0x0008
227#define TT_SHIFTER_PALETTE_MASK 0x000f
228#define TT_SHIFTER_GRAYMODE 0x1000
229
230/* 256 TT palette registers */
231#define TT_PALETTE_BASE (0xffff8400)
232#define tt_palette ((volatile u_short *)TT_PALETTE_BASE)
233
234#define TT_PALETTE_RED_MASK 0x0f00
235#define TT_PALETTE_GREEN_MASK 0x00f0
236#define TT_PALETTE_BLUE_MASK 0x000f
237
238/*
239** Falcon030 VIDEL Video Controller
240** for description see File 'linux\tools\atari\hardware.txt
241 */
242#define f030_col ((u_long *) 0xffff9800)
243#define f030_xreg ((u_short*) 0xffff8282)
244#define f030_yreg ((u_short*) 0xffff82a2)
245#define f030_creg ((u_short*) 0xffff82c0)
246#define f030_sreg ((u_short*) 0xffff8260)
247#define f030_mreg ((u_short*) 0xffff820a)
248#define f030_linewidth ((u_short*) 0xffff820e)
249#define f030_hscroll ((u_char*) 0xffff8265)
250
251#define VIDEL_BAS (0xffff8260)
252struct VIDEL {
253 u_short st_shift;
254 u_short pad1;
255 u_char xoffset_s;
256 u_char xoffset;
257 u_short f_shift;
258 u_char pad2[0x1a];
259 u_short hht;
260 u_short hbb;
261 u_short hbe;
262 u_short hdb;
263 u_short hde;
264 u_short hss;
265 u_char pad3[0x14];
266 u_short vft;
267 u_short vbb;
268 u_short vbe;
269 u_short vdb;
270 u_short vde;
271 u_short vss;
272 u_char pad4[0x12];
273 u_short control;
274 u_short mode;
275};
276#define videl ((*(volatile struct VIDEL *)VIDEL_BAS))
277
278/*
279** DMA/WD1772 Disk Controller
280 */
281
282#define FWD_BAS (0xffff8604)
283struct DMA_WD
284 {
285 u_short fdc_acces_seccount;
286 u_short dma_mode_status;
287 u_char dma_vhi; /* Some extended ST-DMAs can handle 32 bit addresses */
288 u_char dma_hi;
289 u_char char_dummy2;
290 u_char dma_md;
291 u_char char_dummy3;
292 u_char dma_lo;
293 u_short fdc_speed;
294 };
295# define dma_wd ((*(volatile struct DMA_WD *)FWD_BAS))
296/* alias */
297#define st_dma dma_wd
298/* The two highest bytes of an extended DMA as a short; this is a must
299 * for the Medusa.
300 */
301#define st_dma_ext_dmahi (*((volatile unsigned short *)0xffff8608))
302
303/*
304** YM2149 Sound Chip
305** access in bytes
306 */
307
308#define YM_BAS (0xffff8800)
309struct SOUND_YM
310 {
311 u_char rd_data_reg_sel;
312 u_char char_dummy1;
313 u_char wd_data;
314 };
315#define sound_ym ((*(volatile struct SOUND_YM *)YM_BAS))
316
317/* TT SCSI DMA */
318
319#define TT_SCSI_DMA_BAS (0xffff8700)
320struct TT_DMA {
321 u_char char_dummy0;
322 u_char dma_addr_hi;
323 u_char char_dummy1;
324 u_char dma_addr_hmd;
325 u_char char_dummy2;
326 u_char dma_addr_lmd;
327 u_char char_dummy3;
328 u_char dma_addr_lo;
329 u_char char_dummy4;
330 u_char dma_cnt_hi;
331 u_char char_dummy5;
332 u_char dma_cnt_hmd;
333 u_char char_dummy6;
334 u_char dma_cnt_lmd;
335 u_char char_dummy7;
336 u_char dma_cnt_lo;
337 u_long dma_restdata;
338 u_short dma_ctrl;
339};
340#define tt_scsi_dma ((*(volatile struct TT_DMA *)TT_SCSI_DMA_BAS))
341
342/* TT SCSI Controller 5380 */
343
344#define TT_5380_BAS (0xffff8781)
345struct TT_5380 {
346 u_char scsi_data;
347 u_char char_dummy1;
348 u_char scsi_icr;
349 u_char char_dummy2;
350 u_char scsi_mode;
351 u_char char_dummy3;
352 u_char scsi_tcr;
353 u_char char_dummy4;
354 u_char scsi_idstat;
355 u_char char_dummy5;
356 u_char scsi_dmastat;
357 u_char char_dummy6;
358 u_char scsi_targrcv;
359 u_char char_dummy7;
360 u_char scsi_inircv;
361};
362#define tt_scsi ((*(volatile struct TT_5380 *)TT_5380_BAS))
363#define tt_scsi_regp ((volatile char *)TT_5380_BAS)
364
365
366/*
367** Falcon DMA Sound Subsystem
368 */
369
370#define MATRIX_BASE (0xffff8930)
371struct MATRIX
372{
373 u_short source;
374 u_short destination;
375 u_char external_frequency_divider;
376 u_char internal_frequency_divider;
377};
378#define falcon_matrix (*(volatile struct MATRIX *)MATRIX_BASE)
379
380#define CODEC_BASE (0xffff8936)
381struct CODEC
382{
383 u_char tracks;
384 u_char input_source;
385#define CODEC_SOURCE_ADC 1
386#define CODEC_SOURCE_MATRIX 2
387 u_char adc_source;
388#define ADC_SOURCE_RIGHT_PSG 1
389#define ADC_SOURCE_LEFT_PSG 2
390 u_char gain;
391#define CODEC_GAIN_RIGHT 0x0f
392#define CODEC_GAIN_LEFT 0xf0
393 u_char attenuation;
394#define CODEC_ATTENUATION_RIGHT 0x0f
395#define CODEC_ATTENUATION_LEFT 0xf0
396 u_char unused1;
397 u_char status;
398#define CODEC_OVERFLOW_RIGHT 1
399#define CODEC_OVERFLOW_LEFT 2
400 u_char unused2, unused3, unused4, unused5;
401 u_char gpio_directions;
402#define GPIO_IN 0
403#define GPIO_OUT 1
404 u_char unused6;
405 u_char gpio_data;
406};
407#define falcon_codec (*(volatile struct CODEC *)CODEC_BASE)
408
409/*
410** Falcon Blitter
411*/
412
413#define BLT_BAS (0xffff8a00)
414
415struct BLITTER
416 {
417 u_short halftone[16];
418 u_short src_x_inc;
419 u_short src_y_inc;
420 u_long src_address;
421 u_short endmask1;
422 u_short endmask2;
423 u_short endmask3;
424 u_short dst_x_inc;
425 u_short dst_y_inc;
426 u_long dst_address;
427 u_short wd_per_line;
428 u_short ln_per_bb;
429 u_short hlf_op_reg;
430 u_short log_op_reg;
431 u_short lin_nm_reg;
432 u_short skew_reg;
433 };
434# define blitter ((*(volatile struct BLITTER *)BLT_BAS))
435
436
437/*
438** SCC Z8530
439 */
440
441#define SCC_BAS (0xffff8c81)
442struct SCC
443 {
444 u_char cha_a_ctrl;
445 u_char char_dummy1;
446 u_char cha_a_data;
447 u_char char_dummy2;
448 u_char cha_b_ctrl;
449 u_char char_dummy3;
450 u_char cha_b_data;
451 };
452# define scc ((*(volatile struct SCC*)SCC_BAS))
453
454/* The ESCC (Z85230) in an Atari ST. The channels are reversed! */
455# define st_escc ((*(volatile struct SCC*)0xfffffa31))
456# define st_escc_dsr ((*(volatile char *)0xfffffa39))
457
458/* TT SCC DMA Controller (same chip as SCSI DMA) */
459
460#define TT_SCC_DMA_BAS (0xffff8c00)
461#define tt_scc_dma ((*(volatile struct TT_DMA *)TT_SCC_DMA_BAS))
462
463/*
464** VIDEL Palette Register
465 */
466
467#define FPL_BAS (0xffff9800)
468struct VIDEL_PALETTE
469 {
470 u_long reg[256];
471 };
472# define videl_palette ((*(volatile struct VIDEL_PALETTE*)FPL_BAS))
473
474
475/*
476** Falcon DSP Host Interface
477 */
478
479#define DSP56K_HOST_INTERFACE_BASE (0xffffa200)
480struct DSP56K_HOST_INTERFACE {
481 u_char icr;
482#define DSP56K_ICR_RREQ 0x01
483#define DSP56K_ICR_TREQ 0x02
484#define DSP56K_ICR_HF0 0x08
485#define DSP56K_ICR_HF1 0x10
486#define DSP56K_ICR_HM0 0x20
487#define DSP56K_ICR_HM1 0x40
488#define DSP56K_ICR_INIT 0x80
489
490 u_char cvr;
491#define DSP56K_CVR_HV_MASK 0x1f
492#define DSP56K_CVR_HC 0x80
493
494 u_char isr;
495#define DSP56K_ISR_RXDF 0x01
496#define DSP56K_ISR_TXDE 0x02
497#define DSP56K_ISR_TRDY 0x04
498#define DSP56K_ISR_HF2 0x08
499#define DSP56K_ISR_HF3 0x10
500#define DSP56K_ISR_DMA 0x40
501#define DSP56K_ISR_HREQ 0x80
502
503 u_char ivr;
504
505 union {
506 u_char b[4];
507 u_short w[2];
508 u_long l;
509 } data;
510};
511#define dsp56k_host_interface ((*(volatile struct DSP56K_HOST_INTERFACE *)DSP56K_HOST_INTERFACE_BASE))
512
513/*
514** MFP 68901
515 */
516
517#define MFP_BAS (0xfffffa01)
518struct MFP
519 {
520 u_char par_dt_reg;
521 u_char char_dummy1;
522 u_char active_edge;
523 u_char char_dummy2;
524 u_char data_dir;
525 u_char char_dummy3;
526 u_char int_en_a;
527 u_char char_dummy4;
528 u_char int_en_b;
529 u_char char_dummy5;
530 u_char int_pn_a;
531 u_char char_dummy6;
532 u_char int_pn_b;
533 u_char char_dummy7;
534 u_char int_sv_a;
535 u_char char_dummy8;
536 u_char int_sv_b;
537 u_char char_dummy9;
538 u_char int_mk_a;
539 u_char char_dummy10;
540 u_char int_mk_b;
541 u_char char_dummy11;
542 u_char vec_adr;
543 u_char char_dummy12;
544 u_char tim_ct_a;
545 u_char char_dummy13;
546 u_char tim_ct_b;
547 u_char char_dummy14;
548 u_char tim_ct_cd;
549 u_char char_dummy15;
550 u_char tim_dt_a;
551 u_char char_dummy16;
552 u_char tim_dt_b;
553 u_char char_dummy17;
554 u_char tim_dt_c;
555 u_char char_dummy18;
556 u_char tim_dt_d;
557 u_char char_dummy19;
558 u_char sync_char;
559 u_char char_dummy20;
560 u_char usart_ctr;
561 u_char char_dummy21;
562 u_char rcv_stat;
563 u_char char_dummy22;
564 u_char trn_stat;
565 u_char char_dummy23;
566 u_char usart_dta;
567 };
568# define st_mfp ((*(volatile struct MFP*)MFP_BAS))
569
570/* TT's second MFP */
571
572#define TT_MFP_BAS (0xfffffa81)
573# define tt_mfp ((*(volatile struct MFP*)TT_MFP_BAS))
574
575
576/* TT System Control Unit */
577
578#define TT_SCU_BAS (0xffff8e01)
579struct TT_SCU {
580 u_char sys_mask;
581 u_char char_dummy1;
582 u_char sys_stat;
583 u_char char_dummy2;
584 u_char softint;
585 u_char char_dummy3;
586 u_char vmeint;
587 u_char char_dummy4;
588 u_char gp_reg1;
589 u_char char_dummy5;
590 u_char gp_reg2;
591 u_char char_dummy6;
592 u_char vme_mask;
593 u_char char_dummy7;
594 u_char vme_stat;
595};
596#define tt_scu ((*(volatile struct TT_SCU *)TT_SCU_BAS))
597
598/* TT real time clock */
599
600#define TT_RTC_BAS (0xffff8961)
601struct TT_RTC {
602 u_char regsel;
603 u_char dummy;
604 u_char data;
605};
606#define tt_rtc ((*(volatile struct TT_RTC *)TT_RTC_BAS))
607
608
609/*
610** ACIA 6850
611 */
612/* constants for the ACIA registers */
613
614/* baudrate selection and reset (Baudrate = clock/factor) */
615#define ACIA_DIV1 0
616#define ACIA_DIV16 1
617#define ACIA_DIV64 2
618#define ACIA_RESET 3
619
620/* character format */
621#define ACIA_D7E2S (0<<2) /* 7 data, even parity, 2 stop */
622#define ACIA_D7O2S (1<<2) /* 7 data, odd parity, 2 stop */
623#define ACIA_D7E1S (2<<2) /* 7 data, even parity, 1 stop */
624#define ACIA_D7O1S (3<<2) /* 7 data, odd parity, 1 stop */
625#define ACIA_D8N2S (4<<2) /* 8 data, no parity, 2 stop */
626#define ACIA_D8N1S (5<<2) /* 8 data, no parity, 1 stop */
627#define ACIA_D8E1S (6<<2) /* 8 data, even parity, 1 stop */
628#define ACIA_D8O1S (7<<2) /* 8 data, odd parity, 1 stop */
629
630/* transmit control */
631#define ACIA_RLTID (0<<5) /* RTS low, TxINT disabled */
632#define ACIA_RLTIE (1<<5) /* RTS low, TxINT enabled */
633#define ACIA_RHTID (2<<5) /* RTS high, TxINT disabled */
634#define ACIA_RLTIDSB (3<<5) /* RTS low, TxINT disabled, send break */
635
636/* receive control */
637#define ACIA_RID (0<<7) /* RxINT disabled */
638#define ACIA_RIE (1<<7) /* RxINT enabled */
639
640/* status fields of the ACIA */
641#define ACIA_RDRF 1 /* Receive Data Register Full */
642#define ACIA_TDRE (1<<1) /* Transmit Data Register Empty */
643#define ACIA_DCD (1<<2) /* Data Carrier Detect */
644#define ACIA_CTS (1<<3) /* Clear To Send */
645#define ACIA_FE (1<<4) /* Framing Error */
646#define ACIA_OVRN (1<<5) /* Receiver Overrun */
647#define ACIA_PE (1<<6) /* Parity Error */
648#define ACIA_IRQ (1<<7) /* Interrupt Request */
649
650#define ACIA_BAS (0xfffffc00)
651struct ACIA
652 {
653 u_char key_ctrl;
654 u_char char_dummy1;
655 u_char key_data;
656 u_char char_dummy2;
657 u_char mid_ctrl;
658 u_char char_dummy3;
659 u_char mid_data;
660 };
661# define acia ((*(volatile struct ACIA*)ACIA_BAS))
662
663#define TT_DMASND_BAS (0xffff8900)
664struct TT_DMASND {
665 u_char int_ctrl; /* Falcon: Interrupt control */
666 u_char ctrl;
667 u_char pad2;
668 u_char bas_hi;
669 u_char pad3;
670 u_char bas_mid;
671 u_char pad4;
672 u_char bas_low;
673 u_char pad5;
674 u_char addr_hi;
675 u_char pad6;
676 u_char addr_mid;
677 u_char pad7;
678 u_char addr_low;
679 u_char pad8;
680 u_char end_hi;
681 u_char pad9;
682 u_char end_mid;
683 u_char pad10;
684 u_char end_low;
685 u_char pad11[12];
686 u_char track_select; /* Falcon */
687 u_char mode;
688 u_char pad12[14];
689 /* Falcon only: */
690 u_short cbar_src;
691 u_short cbar_dst;
692 u_char ext_div;
693 u_char int_div;
694 u_char rec_track_select;
695 u_char dac_src;
696 u_char adc_src;
697 u_char input_gain;
698 u_short output_atten;
699};
700# define tt_dmasnd ((*(volatile struct TT_DMASND *)TT_DMASND_BAS))
701
702#define DMASND_MFP_INT_REPLAY 0x01
703#define DMASND_MFP_INT_RECORD 0x02
704#define DMASND_TIMERA_INT_REPLAY 0x04
705#define DMASND_TIMERA_INT_RECORD 0x08
706
707#define DMASND_CTRL_OFF 0x00
708#define DMASND_CTRL_ON 0x01
709#define DMASND_CTRL_REPEAT 0x02
710#define DMASND_CTRL_RECORD_ON 0x10
711#define DMASND_CTRL_RECORD_OFF 0x00
712#define DMASND_CTRL_RECORD_REPEAT 0x20
713#define DMASND_CTRL_SELECT_REPLAY 0x00
714#define DMASND_CTRL_SELECT_RECORD 0x80
715#define DMASND_MODE_MONO 0x80
716#define DMASND_MODE_STEREO 0x00
717#define DMASND_MODE_8BIT 0x00
718#define DMASND_MODE_16BIT 0x40 /* Falcon only */
719#define DMASND_MODE_6KHZ 0x00 /* Falcon: mute */
720#define DMASND_MODE_12KHZ 0x01
721#define DMASND_MODE_25KHZ 0x02
722#define DMASND_MODE_50KHZ 0x03
723
724
725#define DMASNDSetBase(bufstart) \
726 do { \
727 tt_dmasnd.bas_hi = (unsigned char)(((bufstart) & 0xff0000) >> 16); \
728 tt_dmasnd.bas_mid = (unsigned char)(((bufstart) & 0x00ff00) >> 8); \
729 tt_dmasnd.bas_low = (unsigned char) ((bufstart) & 0x0000ff); \
730 } while( 0 )
731
732#define DMASNDGetAdr() ((tt_dmasnd.addr_hi << 16) + \
733 (tt_dmasnd.addr_mid << 8) + \
734 (tt_dmasnd.addr_low))
735
736#define DMASNDSetEnd(bufend) \
737 do { \
738 tt_dmasnd.end_hi = (unsigned char)(((bufend) & 0xff0000) >> 16); \
739 tt_dmasnd.end_mid = (unsigned char)(((bufend) & 0x00ff00) >> 8); \
740 tt_dmasnd.end_low = (unsigned char) ((bufend) & 0x0000ff); \
741 } while( 0 )
742
743
744#define TT_MICROWIRE_BAS (0xffff8922)
745struct TT_MICROWIRE {
746 u_short data;
747 u_short mask;
748};
749# define tt_microwire ((*(volatile struct TT_MICROWIRE *)TT_MICROWIRE_BAS))
750
751#define MW_LM1992_ADDR 0x0400
752
753#define MW_LM1992_VOLUME(dB) \
754 (0x0c0 | ((dB) < -80 ? 0 : (dB) > 0 ? 40 : (((dB) + 80) / 2)))
755#define MW_LM1992_BALLEFT(dB) \
756 (0x140 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2)))
757#define MW_LM1992_BALRIGHT(dB) \
758 (0x100 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2)))
759#define MW_LM1992_TREBLE(dB) \
760 (0x080 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6)))
761#define MW_LM1992_BASS(dB) \
762 (0x040 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6)))
763
764#define MW_LM1992_PSG_LOW 0x000
765#define MW_LM1992_PSG_HIGH 0x001
766#define MW_LM1992_PSG_OFF 0x002
767
768#define MSTE_RTC_BAS (0xfffffc21)
769
770struct MSTE_RTC {
771 u_char sec_ones;
772 u_char dummy1;
773 u_char sec_tens;
774 u_char dummy2;
775 u_char min_ones;
776 u_char dummy3;
777 u_char min_tens;
778 u_char dummy4;
779 u_char hr_ones;
780 u_char dummy5;
781 u_char hr_tens;
782 u_char dummy6;
783 u_char weekday;
784 u_char dummy7;
785 u_char day_ones;
786 u_char dummy8;
787 u_char day_tens;
788 u_char dummy9;
789 u_char mon_ones;
790 u_char dummy10;
791 u_char mon_tens;
792 u_char dummy11;
793 u_char year_ones;
794 u_char dummy12;
795 u_char year_tens;
796 u_char dummy13;
797 u_char mode;
798 u_char dummy14;
799 u_char test;
800 u_char dummy15;
801 u_char reset;
802};
803
804#define mste_rtc ((*(volatile struct MSTE_RTC *)MSTE_RTC_BAS))
805
806#endif /* linux/atarihw.h */
807
diff --git a/arch/m68k/include/asm/atariints.h b/arch/m68k/include/asm/atariints.h
new file mode 100644
index 000000000000..f597892e43a0
--- /dev/null
+++ b/arch/m68k/include/asm/atariints.h
@@ -0,0 +1,204 @@
1/*
2** atariints.h -- Atari Linux interrupt handling structs and prototypes
3**
4** Copyright 1994 by Björn Brauel
5**
6** 5/2/94 Roman Hodek:
7** TT interrupt definitions added.
8**
9** 12/02/96: (Roman)
10** Adapted to new int handling scheme (see ataints.c); revised numbering
11**
12** This file is subject to the terms and conditions of the GNU General Public
13** License. See the file COPYING in the main directory of this archive
14** for more details.
15**
16*/
17
18#ifndef _LINUX_ATARIINTS_H_
19#define _LINUX_ATARIINTS_H_
20
21#include <asm/irq.h>
22#include <asm/atarihw.h>
23
24/*
25** Atari Interrupt sources.
26**
27*/
28
29#define STMFP_SOURCE_BASE 8
30#define TTMFP_SOURCE_BASE 24
31#define SCC_SOURCE_BASE 40
32#define VME_SOURCE_BASE 56
33#define VME_MAX_SOURCES 16
34
35#define NUM_ATARI_SOURCES (VME_SOURCE_BASE+VME_MAX_SOURCES-STMFP_SOURCE_BASE)
36
37/* convert vector number to int source number */
38#define IRQ_VECTOR_TO_SOURCE(v) ((v) - ((v) < 0x20 ? 0x18 : (0x40-8)))
39
40/* convert irq_handler index to vector number */
41#define IRQ_SOURCE_TO_VECTOR(i) ((i) + ((i) < 8 ? 0x18 : (0x40-8)))
42
43/* interrupt service types */
44#define IRQ_TYPE_SLOW 0
45#define IRQ_TYPE_FAST 1
46#define IRQ_TYPE_PRIO 2
47
48/* ST-MFP interrupts */
49#define IRQ_MFP_BUSY (8)
50#define IRQ_MFP_DCD (9)
51#define IRQ_MFP_CTS (10)
52#define IRQ_MFP_GPU (11)
53#define IRQ_MFP_TIMD (12)
54#define IRQ_MFP_TIMC (13)
55#define IRQ_MFP_ACIA (14)
56#define IRQ_MFP_FDC (15)
57#define IRQ_MFP_ACSI IRQ_MFP_FDC
58#define IRQ_MFP_FSCSI IRQ_MFP_FDC
59#define IRQ_MFP_IDE IRQ_MFP_FDC
60#define IRQ_MFP_TIMB (16)
61#define IRQ_MFP_SERERR (17)
62#define IRQ_MFP_SEREMPT (18)
63#define IRQ_MFP_RECERR (19)
64#define IRQ_MFP_RECFULL (20)
65#define IRQ_MFP_TIMA (21)
66#define IRQ_MFP_RI (22)
67#define IRQ_MFP_MMD (23)
68
69/* TT-MFP interrupts */
70#define IRQ_TT_MFP_IO0 (24)
71#define IRQ_TT_MFP_IO1 (25)
72#define IRQ_TT_MFP_SCC (26)
73#define IRQ_TT_MFP_RI (27)
74#define IRQ_TT_MFP_TIMD (28)
75#define IRQ_TT_MFP_TIMC (29)
76#define IRQ_TT_MFP_DRVRDY (30)
77#define IRQ_TT_MFP_SCSIDMA (31)
78#define IRQ_TT_MFP_TIMB (32)
79#define IRQ_TT_MFP_SERERR (33)
80#define IRQ_TT_MFP_SEREMPT (34)
81#define IRQ_TT_MFP_RECERR (35)
82#define IRQ_TT_MFP_RECFULL (36)
83#define IRQ_TT_MFP_TIMA (37)
84#define IRQ_TT_MFP_RTC (38)
85#define IRQ_TT_MFP_SCSI (39)
86
87/* SCC interrupts */
88#define IRQ_SCCB_TX (40)
89#define IRQ_SCCB_STAT (42)
90#define IRQ_SCCB_RX (44)
91#define IRQ_SCCB_SPCOND (46)
92#define IRQ_SCCA_TX (48)
93#define IRQ_SCCA_STAT (50)
94#define IRQ_SCCA_RX (52)
95#define IRQ_SCCA_SPCOND (54)
96
97
98#define INT_CLK 24576 /* CLK while int_clk =2.456MHz and divide = 100 */
99#define INT_TICKS 246 /* to make sched_time = 99.902... HZ */
100
101
102#define MFP_ENABLE 0
103#define MFP_PENDING 1
104#define MFP_SERVICE 2
105#define MFP_MASK 3
106
107/* Utility functions for setting/clearing bits in the interrupt registers of
108 * the MFP. 'type' should be constant, if 'irq' is constant, too, code size is
109 * reduced. set_mfp_bit() is nonsense for PENDING and SERVICE registers. */
110
111static inline int get_mfp_bit( unsigned irq, int type )
112
113{ unsigned char mask, *reg;
114
115 mask = 1 << (irq & 7);
116 reg = (unsigned char *)&st_mfp.int_en_a + type*4 +
117 ((irq & 8) >> 2) + (((irq-8) & 16) << 3);
118 return( *reg & mask );
119}
120
121static inline void set_mfp_bit( unsigned irq, int type )
122
123{ unsigned char mask, *reg;
124
125 mask = 1 << (irq & 7);
126 reg = (unsigned char *)&st_mfp.int_en_a + type*4 +
127 ((irq & 8) >> 2) + (((irq-8) & 16) << 3);
128 __asm__ __volatile__ ( "orb %0,%1"
129 : : "di" (mask), "m" (*reg) : "memory" );
130}
131
132static inline void clear_mfp_bit( unsigned irq, int type )
133
134{ unsigned char mask, *reg;
135
136 mask = ~(1 << (irq & 7));
137 reg = (unsigned char *)&st_mfp.int_en_a + type*4 +
138 ((irq & 8) >> 2) + (((irq-8) & 16) << 3);
139 if (type == MFP_PENDING || type == MFP_SERVICE)
140 __asm__ __volatile__ ( "moveb %0,%1"
141 : : "di" (mask), "m" (*reg) : "memory" );
142 else
143 __asm__ __volatile__ ( "andb %0,%1"
144 : : "di" (mask), "m" (*reg) : "memory" );
145}
146
147/*
148 * {en,dis}able_irq have the usual semantics of temporary blocking the
149 * interrupt, but not loosing requests that happen between disabling and
150 * enabling. This is done with the MFP mask registers.
151 */
152
153static inline void atari_enable_irq( unsigned irq )
154
155{
156 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
157 set_mfp_bit( irq, MFP_MASK );
158}
159
160static inline void atari_disable_irq( unsigned irq )
161
162{
163 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
164 clear_mfp_bit( irq, MFP_MASK );
165}
166
167/*
168 * In opposite to {en,dis}able_irq, requests between turn{off,on}_irq are not
169 * "stored"
170 */
171
172static inline void atari_turnon_irq( unsigned irq )
173
174{
175 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
176 set_mfp_bit( irq, MFP_ENABLE );
177}
178
179static inline void atari_turnoff_irq( unsigned irq )
180
181{
182 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
183 clear_mfp_bit( irq, MFP_ENABLE );
184 clear_mfp_bit( irq, MFP_PENDING );
185}
186
187static inline void atari_clear_pending_irq( unsigned irq )
188
189{
190 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return;
191 clear_mfp_bit( irq, MFP_PENDING );
192}
193
194static inline int atari_irq_pending( unsigned irq )
195
196{
197 if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return( 0 );
198 return( get_mfp_bit( irq, MFP_PENDING ) );
199}
200
201unsigned long atari_register_vme_int( void );
202void atari_unregister_vme_int( unsigned long );
203
204#endif /* linux/atariints.h */
diff --git a/arch/m68k/include/asm/atarikb.h b/arch/m68k/include/asm/atarikb.h
new file mode 100644
index 000000000000..546e7da5804f
--- /dev/null
+++ b/arch/m68k/include/asm/atarikb.h
@@ -0,0 +1,46 @@
1/*
2** atarikb.h -- This header contains the prototypes of functions of
3** the intelligent keyboard of the Atari needed by the
4** mouse and joystick drivers.
5**
6** Copyright 1994 by Robert de Vries
7**
8** This file is subject to the terms and conditions of the GNU General Public
9** License. See the file COPYING in the main directory of this archive
10** for more details.
11**
12** Created: 20 Feb 1994 by Robert de Vries
13*/
14
15#ifndef _LINUX_ATARIKB_H
16#define _LINUX_ATARIKB_H
17
18void ikbd_write(const char *, int);
19void ikbd_mouse_button_action(int mode);
20void ikbd_mouse_rel_pos(void);
21void ikbd_mouse_abs_pos(int xmax, int ymax);
22void ikbd_mouse_kbd_mode(int dx, int dy);
23void ikbd_mouse_thresh(int x, int y);
24void ikbd_mouse_scale(int x, int y);
25void ikbd_mouse_pos_get(int *x, int *y);
26void ikbd_mouse_pos_set(int x, int y);
27void ikbd_mouse_y0_bot(void);
28void ikbd_mouse_y0_top(void);
29void ikbd_mouse_disable(void);
30void ikbd_joystick_event_on(void);
31void ikbd_joystick_event_off(void);
32void ikbd_joystick_get_state(void);
33void ikbd_joystick_disable(void);
34
35/* Hook for MIDI serial driver */
36extern void (*atari_MIDI_interrupt_hook) (void);
37/* Hook for mouse driver */
38extern void (*atari_mouse_interrupt_hook) (char *);
39/* Hook for keyboard inputdev driver */
40extern void (*atari_input_keyboard_interrupt_hook) (unsigned char, char);
41/* Hook for mouse inputdev driver */
42extern void (*atari_input_mouse_interrupt_hook) (char *);
43
44int atari_keyb_init(void);
45
46#endif /* _LINUX_ATARIKB_H */
diff --git a/arch/m68k/include/asm/atomic.h b/arch/m68k/include/asm/atomic.h
new file mode 100644
index 000000000000..8d29145ebb27
--- /dev/null
+++ b/arch/m68k/include/asm/atomic.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "atomic_no.h"
3#else
4#include "atomic_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/atomic_mm.h b/arch/m68k/include/asm/atomic_mm.h
new file mode 100644
index 000000000000..eb0ab9d4ee77
--- /dev/null
+++ b/arch/m68k/include/asm/atomic_mm.h
@@ -0,0 +1,196 @@
1#ifndef __ARCH_M68K_ATOMIC__
2#define __ARCH_M68K_ATOMIC__
3
4#include <linux/types.h>
5#include <asm/system.h>
6
7/*
8 * Atomic operations that C can't guarantee us. Useful for
9 * resource counting etc..
10 */
11
12/*
13 * We do not have SMP m68k systems, so we don't have to deal with that.
14 */
15
16#define ATOMIC_INIT(i) { (i) }
17
18#define atomic_read(v) ((v)->counter)
19#define atomic_set(v, i) (((v)->counter) = i)
20
21static inline void atomic_add(int i, atomic_t *v)
22{
23 __asm__ __volatile__("addl %1,%0" : "+m" (*v) : "id" (i));
24}
25
26static inline void atomic_sub(int i, atomic_t *v)
27{
28 __asm__ __volatile__("subl %1,%0" : "+m" (*v) : "id" (i));
29}
30
31static inline void atomic_inc(atomic_t *v)
32{
33 __asm__ __volatile__("addql #1,%0" : "+m" (*v));
34}
35
36static inline void atomic_dec(atomic_t *v)
37{
38 __asm__ __volatile__("subql #1,%0" : "+m" (*v));
39}
40
41static inline int atomic_dec_and_test(atomic_t *v)
42{
43 char c;
44 __asm__ __volatile__("subql #1,%1; seq %0" : "=d" (c), "+m" (*v));
45 return c != 0;
46}
47
48static inline int atomic_inc_and_test(atomic_t *v)
49{
50 char c;
51 __asm__ __volatile__("addql #1,%1; seq %0" : "=d" (c), "+m" (*v));
52 return c != 0;
53}
54
55#ifdef CONFIG_RMW_INSNS
56
57static inline int atomic_add_return(int i, atomic_t *v)
58{
59 int t, tmp;
60
61 __asm__ __volatile__(
62 "1: movel %2,%1\n"
63 " addl %3,%1\n"
64 " casl %2,%1,%0\n"
65 " jne 1b"
66 : "+m" (*v), "=&d" (t), "=&d" (tmp)
67 : "g" (i), "2" (atomic_read(v)));
68 return t;
69}
70
71static inline int atomic_sub_return(int i, atomic_t *v)
72{
73 int t, tmp;
74
75 __asm__ __volatile__(
76 "1: movel %2,%1\n"
77 " subl %3,%1\n"
78 " casl %2,%1,%0\n"
79 " jne 1b"
80 : "+m" (*v), "=&d" (t), "=&d" (tmp)
81 : "g" (i), "2" (atomic_read(v)));
82 return t;
83}
84
85#define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n)))
86#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
87
88#else /* !CONFIG_RMW_INSNS */
89
90static inline int atomic_add_return(int i, atomic_t * v)
91{
92 unsigned long flags;
93 int t;
94
95 local_irq_save(flags);
96 t = atomic_read(v);
97 t += i;
98 atomic_set(v, t);
99 local_irq_restore(flags);
100
101 return t;
102}
103
104static inline int atomic_sub_return(int i, atomic_t * v)
105{
106 unsigned long flags;
107 int t;
108
109 local_irq_save(flags);
110 t = atomic_read(v);
111 t -= i;
112 atomic_set(v, t);
113 local_irq_restore(flags);
114
115 return t;
116}
117
118static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
119{
120 unsigned long flags;
121 int prev;
122
123 local_irq_save(flags);
124 prev = atomic_read(v);
125 if (prev == old)
126 atomic_set(v, new);
127 local_irq_restore(flags);
128 return prev;
129}
130
131static inline int atomic_xchg(atomic_t *v, int new)
132{
133 unsigned long flags;
134 int prev;
135
136 local_irq_save(flags);
137 prev = atomic_read(v);
138 atomic_set(v, new);
139 local_irq_restore(flags);
140 return prev;
141}
142
143#endif /* !CONFIG_RMW_INSNS */
144
145#define atomic_dec_return(v) atomic_sub_return(1, (v))
146#define atomic_inc_return(v) atomic_add_return(1, (v))
147
148static inline int atomic_sub_and_test(int i, atomic_t *v)
149{
150 char c;
151 __asm__ __volatile__("subl %2,%1; seq %0" : "=d" (c), "+m" (*v): "g" (i));
152 return c != 0;
153}
154
155static inline int atomic_add_negative(int i, atomic_t *v)
156{
157 char c;
158 __asm__ __volatile__("addl %2,%1; smi %0" : "=d" (c), "+m" (*v): "g" (i));
159 return c != 0;
160}
161
162static inline void atomic_clear_mask(unsigned long mask, unsigned long *v)
163{
164 __asm__ __volatile__("andl %1,%0" : "+m" (*v) : "id" (~(mask)));
165}
166
167static inline void atomic_set_mask(unsigned long mask, unsigned long *v)
168{
169 __asm__ __volatile__("orl %1,%0" : "+m" (*v) : "id" (mask));
170}
171
172static __inline__ int atomic_add_unless(atomic_t *v, int a, int u)
173{
174 int c, old;
175 c = atomic_read(v);
176 for (;;) {
177 if (unlikely(c == (u)))
178 break;
179 old = atomic_cmpxchg((v), c, c + (a));
180 if (likely(old == c))
181 break;
182 c = old;
183 }
184 return c != (u);
185}
186
187#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
188
189/* Atomic operations are already serializing */
190#define smp_mb__before_atomic_dec() barrier()
191#define smp_mb__after_atomic_dec() barrier()
192#define smp_mb__before_atomic_inc() barrier()
193#define smp_mb__after_atomic_inc() barrier()
194
195#include <asm-generic/atomic.h>
196#endif /* __ARCH_M68K_ATOMIC __ */
diff --git a/arch/m68knommu/include/asm/atomic.h b/arch/m68k/include/asm/atomic_no.h
index 6bb674855a3f..6bb674855a3f 100644
--- a/arch/m68knommu/include/asm/atomic.h
+++ b/arch/m68k/include/asm/atomic_no.h
diff --git a/arch/m68knommu/include/asm/auxvec.h b/arch/m68k/include/asm/auxvec.h
index 844d6d52204b..844d6d52204b 100644
--- a/arch/m68knommu/include/asm/auxvec.h
+++ b/arch/m68k/include/asm/auxvec.h
diff --git a/arch/m68k/include/asm/bitops.h b/arch/m68k/include/asm/bitops.h
new file mode 100644
index 000000000000..ce163abddaba
--- /dev/null
+++ b/arch/m68k/include/asm/bitops.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bitops_no.h"
3#else
4#include "bitops_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/bitops_mm.h b/arch/m68k/include/asm/bitops_mm.h
new file mode 100644
index 000000000000..9bde784e7bad
--- /dev/null
+++ b/arch/m68k/include/asm/bitops_mm.h
@@ -0,0 +1,464 @@
1#ifndef _M68K_BITOPS_H
2#define _M68K_BITOPS_H
3/*
4 * Copyright 1992, Linus Torvalds.
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive
8 * for more details.
9 */
10
11#ifndef _LINUX_BITOPS_H
12#error only <linux/bitops.h> can be included directly
13#endif
14
15#include <linux/compiler.h>
16
17/*
18 * Require 68020 or better.
19 *
20 * They use the standard big-endian m680x0 bit ordering.
21 */
22
23#define test_and_set_bit(nr,vaddr) \
24 (__builtin_constant_p(nr) ? \
25 __constant_test_and_set_bit(nr, vaddr) : \
26 __generic_test_and_set_bit(nr, vaddr))
27
28#define __test_and_set_bit(nr,vaddr) test_and_set_bit(nr,vaddr)
29
30static inline int __constant_test_and_set_bit(int nr, unsigned long *vaddr)
31{
32 char *p = (char *)vaddr + (nr ^ 31) / 8;
33 char retval;
34
35 __asm__ __volatile__ ("bset %2,%1; sne %0"
36 : "=d" (retval), "+m" (*p)
37 : "di" (nr & 7));
38
39 return retval;
40}
41
42static inline int __generic_test_and_set_bit(int nr, unsigned long *vaddr)
43{
44 char retval;
45
46 __asm__ __volatile__ ("bfset %2{%1:#1}; sne %0"
47 : "=d" (retval) : "d" (nr^31), "o" (*vaddr) : "memory");
48
49 return retval;
50}
51
52#define set_bit(nr,vaddr) \
53 (__builtin_constant_p(nr) ? \
54 __constant_set_bit(nr, vaddr) : \
55 __generic_set_bit(nr, vaddr))
56
57#define __set_bit(nr,vaddr) set_bit(nr,vaddr)
58
59static inline void __constant_set_bit(int nr, volatile unsigned long *vaddr)
60{
61 char *p = (char *)vaddr + (nr ^ 31) / 8;
62 __asm__ __volatile__ ("bset %1,%0"
63 : "+m" (*p) : "di" (nr & 7));
64}
65
66static inline void __generic_set_bit(int nr, volatile unsigned long *vaddr)
67{
68 __asm__ __volatile__ ("bfset %1{%0:#1}"
69 : : "d" (nr^31), "o" (*vaddr) : "memory");
70}
71
72#define test_and_clear_bit(nr,vaddr) \
73 (__builtin_constant_p(nr) ? \
74 __constant_test_and_clear_bit(nr, vaddr) : \
75 __generic_test_and_clear_bit(nr, vaddr))
76
77#define __test_and_clear_bit(nr,vaddr) test_and_clear_bit(nr,vaddr)
78
79static inline int __constant_test_and_clear_bit(int nr, unsigned long *vaddr)
80{
81 char *p = (char *)vaddr + (nr ^ 31) / 8;
82 char retval;
83
84 __asm__ __volatile__ ("bclr %2,%1; sne %0"
85 : "=d" (retval), "+m" (*p)
86 : "di" (nr & 7));
87
88 return retval;
89}
90
91static inline int __generic_test_and_clear_bit(int nr, unsigned long *vaddr)
92{
93 char retval;
94
95 __asm__ __volatile__ ("bfclr %2{%1:#1}; sne %0"
96 : "=d" (retval) : "d" (nr^31), "o" (*vaddr) : "memory");
97
98 return retval;
99}
100
101/*
102 * clear_bit() doesn't provide any barrier for the compiler.
103 */
104#define smp_mb__before_clear_bit() barrier()
105#define smp_mb__after_clear_bit() barrier()
106
107#define clear_bit(nr,vaddr) \
108 (__builtin_constant_p(nr) ? \
109 __constant_clear_bit(nr, vaddr) : \
110 __generic_clear_bit(nr, vaddr))
111#define __clear_bit(nr,vaddr) clear_bit(nr,vaddr)
112
113static inline void __constant_clear_bit(int nr, volatile unsigned long *vaddr)
114{
115 char *p = (char *)vaddr + (nr ^ 31) / 8;
116 __asm__ __volatile__ ("bclr %1,%0"
117 : "+m" (*p) : "di" (nr & 7));
118}
119
120static inline void __generic_clear_bit(int nr, volatile unsigned long *vaddr)
121{
122 __asm__ __volatile__ ("bfclr %1{%0:#1}"
123 : : "d" (nr^31), "o" (*vaddr) : "memory");
124}
125
126#define test_and_change_bit(nr,vaddr) \
127 (__builtin_constant_p(nr) ? \
128 __constant_test_and_change_bit(nr, vaddr) : \
129 __generic_test_and_change_bit(nr, vaddr))
130
131#define __test_and_change_bit(nr,vaddr) test_and_change_bit(nr,vaddr)
132#define __change_bit(nr,vaddr) change_bit(nr,vaddr)
133
134static inline int __constant_test_and_change_bit(int nr, unsigned long *vaddr)
135{
136 char *p = (char *)vaddr + (nr ^ 31) / 8;
137 char retval;
138
139 __asm__ __volatile__ ("bchg %2,%1; sne %0"
140 : "=d" (retval), "+m" (*p)
141 : "di" (nr & 7));
142
143 return retval;
144}
145
146static inline int __generic_test_and_change_bit(int nr, unsigned long *vaddr)
147{
148 char retval;
149
150 __asm__ __volatile__ ("bfchg %2{%1:#1}; sne %0"
151 : "=d" (retval) : "d" (nr^31), "o" (*vaddr) : "memory");
152
153 return retval;
154}
155
156#define change_bit(nr,vaddr) \
157 (__builtin_constant_p(nr) ? \
158 __constant_change_bit(nr, vaddr) : \
159 __generic_change_bit(nr, vaddr))
160
161static inline void __constant_change_bit(int nr, unsigned long *vaddr)
162{
163 char *p = (char *)vaddr + (nr ^ 31) / 8;
164 __asm__ __volatile__ ("bchg %1,%0"
165 : "+m" (*p) : "di" (nr & 7));
166}
167
168static inline void __generic_change_bit(int nr, unsigned long *vaddr)
169{
170 __asm__ __volatile__ ("bfchg %1{%0:#1}"
171 : : "d" (nr^31), "o" (*vaddr) : "memory");
172}
173
174static inline int test_bit(int nr, const unsigned long *vaddr)
175{
176 return (vaddr[nr >> 5] & (1UL << (nr & 31))) != 0;
177}
178
179static inline int find_first_zero_bit(const unsigned long *vaddr,
180 unsigned size)
181{
182 const unsigned long *p = vaddr;
183 int res = 32;
184 unsigned long num;
185
186 if (!size)
187 return 0;
188
189 size = (size + 31) >> 5;
190 while (!(num = ~*p++)) {
191 if (!--size)
192 goto out;
193 }
194
195 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
196 : "=d" (res) : "d" (num & -num));
197 res ^= 31;
198out:
199 return ((long)p - (long)vaddr - 4) * 8 + res;
200}
201
202static inline int find_next_zero_bit(const unsigned long *vaddr, int size,
203 int offset)
204{
205 const unsigned long *p = vaddr + (offset >> 5);
206 int bit = offset & 31UL, res;
207
208 if (offset >= size)
209 return size;
210
211 if (bit) {
212 unsigned long num = ~*p++ & (~0UL << bit);
213 offset -= bit;
214
215 /* Look for zero in first longword */
216 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
217 : "=d" (res) : "d" (num & -num));
218 if (res < 32)
219 return offset + (res ^ 31);
220 offset += 32;
221 }
222 /* No zero yet, search remaining full bytes for a zero */
223 res = find_first_zero_bit(p, size - ((long)p - (long)vaddr) * 8);
224 return offset + res;
225}
226
227static inline int find_first_bit(const unsigned long *vaddr, unsigned size)
228{
229 const unsigned long *p = vaddr;
230 int res = 32;
231 unsigned long num;
232
233 if (!size)
234 return 0;
235
236 size = (size + 31) >> 5;
237 while (!(num = *p++)) {
238 if (!--size)
239 goto out;
240 }
241
242 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
243 : "=d" (res) : "d" (num & -num));
244 res ^= 31;
245out:
246 return ((long)p - (long)vaddr - 4) * 8 + res;
247}
248
249static inline int find_next_bit(const unsigned long *vaddr, int size,
250 int offset)
251{
252 const unsigned long *p = vaddr + (offset >> 5);
253 int bit = offset & 31UL, res;
254
255 if (offset >= size)
256 return size;
257
258 if (bit) {
259 unsigned long num = *p++ & (~0UL << bit);
260 offset -= bit;
261
262 /* Look for one in first longword */
263 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
264 : "=d" (res) : "d" (num & -num));
265 if (res < 32)
266 return offset + (res ^ 31);
267 offset += 32;
268 }
269 /* No one yet, search remaining full bytes for a one */
270 res = find_first_bit(p, size - ((long)p - (long)vaddr) * 8);
271 return offset + res;
272}
273
274/*
275 * ffz = Find First Zero in word. Undefined if no zero exists,
276 * so code should check against ~0UL first..
277 */
278static inline unsigned long ffz(unsigned long word)
279{
280 int res;
281
282 __asm__ __volatile__ ("bfffo %1{#0,#0},%0"
283 : "=d" (res) : "d" (~word & -~word));
284 return res ^ 31;
285}
286
287#ifdef __KERNEL__
288
289/*
290 * ffs: find first bit set. This is defined the same way as
291 * the libc and compiler builtin ffs routines, therefore
292 * differs in spirit from the above ffz (man ffs).
293 */
294
295static inline int ffs(int x)
296{
297 int cnt;
298
299 asm ("bfffo %1{#0:#0},%0" : "=d" (cnt) : "dm" (x & -x));
300
301 return 32 - cnt;
302}
303#define __ffs(x) (ffs(x) - 1)
304
305/*
306 * fls: find last bit set.
307 */
308
309static inline int fls(int x)
310{
311 int cnt;
312
313 asm ("bfffo %1{#0,#0},%0" : "=d" (cnt) : "dm" (x));
314
315 return 32 - cnt;
316}
317
318static inline int __fls(int x)
319{
320 return fls(x) - 1;
321}
322
323#include <asm-generic/bitops/fls64.h>
324#include <asm-generic/bitops/sched.h>
325#include <asm-generic/bitops/hweight.h>
326#include <asm-generic/bitops/lock.h>
327
328/* Bitmap functions for the minix filesystem */
329
330static inline int minix_find_first_zero_bit(const void *vaddr, unsigned size)
331{
332 const unsigned short *p = vaddr, *addr = vaddr;
333 int res;
334 unsigned short num;
335
336 if (!size)
337 return 0;
338
339 size = (size >> 4) + ((size & 15) > 0);
340 while (*p++ == 0xffff)
341 {
342 if (--size == 0)
343 return (p - addr) << 4;
344 }
345
346 num = ~*--p;
347 __asm__ __volatile__ ("bfffo %1{#16,#16},%0"
348 : "=d" (res) : "d" (num & -num));
349 return ((p - addr) << 4) + (res ^ 31);
350}
351
352#define minix_test_and_set_bit(nr, addr) __test_and_set_bit((nr) ^ 16, (unsigned long *)(addr))
353#define minix_set_bit(nr,addr) __set_bit((nr) ^ 16, (unsigned long *)(addr))
354#define minix_test_and_clear_bit(nr, addr) __test_and_clear_bit((nr) ^ 16, (unsigned long *)(addr))
355
356static inline int minix_test_bit(int nr, const void *vaddr)
357{
358 const unsigned short *p = vaddr;
359 return (p[nr >> 4] & (1U << (nr & 15))) != 0;
360}
361
362/* Bitmap functions for the ext2 filesystem. */
363
364#define ext2_set_bit(nr, addr) __test_and_set_bit((nr) ^ 24, (unsigned long *)(addr))
365#define ext2_set_bit_atomic(lock, nr, addr) test_and_set_bit((nr) ^ 24, (unsigned long *)(addr))
366#define ext2_clear_bit(nr, addr) __test_and_clear_bit((nr) ^ 24, (unsigned long *)(addr))
367#define ext2_clear_bit_atomic(lock, nr, addr) test_and_clear_bit((nr) ^ 24, (unsigned long *)(addr))
368
369static inline int ext2_test_bit(int nr, const void *vaddr)
370{
371 const unsigned char *p = vaddr;
372 return (p[nr >> 3] & (1U << (nr & 7))) != 0;
373}
374
375static inline int ext2_find_first_zero_bit(const void *vaddr, unsigned size)
376{
377 const unsigned long *p = vaddr, *addr = vaddr;
378 int res;
379
380 if (!size)
381 return 0;
382
383 size = (size >> 5) + ((size & 31) > 0);
384 while (*p++ == ~0UL)
385 {
386 if (--size == 0)
387 return (p - addr) << 5;
388 }
389
390 --p;
391 for (res = 0; res < 32; res++)
392 if (!ext2_test_bit (res, p))
393 break;
394 return (p - addr) * 32 + res;
395}
396
397static inline int ext2_find_next_zero_bit(const void *vaddr, unsigned size,
398 unsigned offset)
399{
400 const unsigned long *addr = vaddr;
401 const unsigned long *p = addr + (offset >> 5);
402 int bit = offset & 31UL, res;
403
404 if (offset >= size)
405 return size;
406
407 if (bit) {
408 /* Look for zero in first longword */
409 for (res = bit; res < 32; res++)
410 if (!ext2_test_bit (res, p))
411 return (p - addr) * 32 + res;
412 p++;
413 }
414 /* No zero yet, search remaining full bytes for a zero */
415 res = ext2_find_first_zero_bit (p, size - 32 * (p - addr));
416 return (p - addr) * 32 + res;
417}
418
419static inline int ext2_find_first_bit(const void *vaddr, unsigned size)
420{
421 const unsigned long *p = vaddr, *addr = vaddr;
422 int res;
423
424 if (!size)
425 return 0;
426
427 size = (size >> 5) + ((size & 31) > 0);
428 while (*p++ == 0UL) {
429 if (--size == 0)
430 return (p - addr) << 5;
431 }
432
433 --p;
434 for (res = 0; res < 32; res++)
435 if (ext2_test_bit(res, p))
436 break;
437 return (p - addr) * 32 + res;
438}
439
440static inline int ext2_find_next_bit(const void *vaddr, unsigned size,
441 unsigned offset)
442{
443 const unsigned long *addr = vaddr;
444 const unsigned long *p = addr + (offset >> 5);
445 int bit = offset & 31UL, res;
446
447 if (offset >= size)
448 return size;
449
450 if (bit) {
451 /* Look for one in first longword */
452 for (res = bit; res < 32; res++)
453 if (ext2_test_bit(res, p))
454 return (p - addr) * 32 + res;
455 p++;
456 }
457 /* No set bit yet, search remaining full bytes for a set bit */
458 res = ext2_find_first_bit(p, size - 32 * (p - addr));
459 return (p - addr) * 32 + res;
460}
461
462#endif /* __KERNEL__ */
463
464#endif /* _M68K_BITOPS_H */
diff --git a/arch/m68knommu/include/asm/bitops.h b/arch/m68k/include/asm/bitops_no.h
index 9d3cbe5fad1e..9d3cbe5fad1e 100644
--- a/arch/m68knommu/include/asm/bitops.h
+++ b/arch/m68k/include/asm/bitops_no.h
diff --git a/arch/m68k/include/asm/blinken.h b/arch/m68k/include/asm/blinken.h
new file mode 100644
index 000000000000..1a749cf7b06d
--- /dev/null
+++ b/arch/m68k/include/asm/blinken.h
@@ -0,0 +1,32 @@
1/*
2** asm/blinken.h -- m68k blinkenlights support (currently hp300 only)
3**
4** (c) 1998 Phil Blundell <philb@gnu.org>
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10*/
11
12#ifndef _M68K_BLINKEN_H
13#define _M68K_BLINKEN_H
14
15#include <asm/setup.h>
16#include <asm/io.h>
17
18#define HP300_LEDS 0xf001ffff
19
20extern unsigned char ledstate;
21
22static __inline__ void blinken_leds(int on, int off)
23{
24 if (MACH_IS_HP300)
25 {
26 ledstate |= on;
27 ledstate &= ~off;
28 out_8(HP300_LEDS, ~ledstate);
29 }
30}
31
32#endif
diff --git a/arch/m68k/include/asm/bootinfo.h b/arch/m68k/include/asm/bootinfo.h
new file mode 100644
index 000000000000..fedf3e326121
--- /dev/null
+++ b/arch/m68k/include/asm/bootinfo.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bootinfo_no.h"
3#else
4#include "bootinfo_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/bootinfo_mm.h b/arch/m68k/include/asm/bootinfo_mm.h
new file mode 100644
index 000000000000..fb8a06b9ab6a
--- /dev/null
+++ b/arch/m68k/include/asm/bootinfo_mm.h
@@ -0,0 +1,378 @@
1/*
2** asm/bootinfo.h -- Definition of the Linux/m68k boot information structure
3**
4** Copyright 1992 by Greg Harp
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10** Created 09/29/92 by Greg Harp
11**
12** 5/2/94 Roman Hodek:
13** Added bi_atari part of the machine dependent union bi_un; for now it
14** contains just a model field to distinguish between TT and Falcon.
15** 26/7/96 Roman Zippel:
16** Renamed to setup.h; added some useful macros to allow gcc some
17** optimizations if possible.
18** 5/10/96 Geert Uytterhoeven:
19** Redesign of the boot information structure; renamed to bootinfo.h again
20** 27/11/96 Geert Uytterhoeven:
21** Backwards compatibility with bootinfo interface version 1.0
22*/
23
24#ifndef _M68K_BOOTINFO_H
25#define _M68K_BOOTINFO_H
26
27
28 /*
29 * Bootinfo definitions
30 *
31 * This is an easily parsable and extendable structure containing all
32 * information to be passed from the bootstrap to the kernel.
33 *
34 * This way I hope to keep all future changes back/forewards compatible.
35 * Thus, keep your fingers crossed...
36 *
37 * This structure is copied right after the kernel bss by the bootstrap
38 * routine.
39 */
40
41#ifndef __ASSEMBLY__
42
43struct bi_record {
44 unsigned short tag; /* tag ID */
45 unsigned short size; /* size of record (in bytes) */
46 unsigned long data[0]; /* data */
47};
48
49#endif /* __ASSEMBLY__ */
50
51
52 /*
53 * Tag Definitions
54 *
55 * Machine independent tags start counting from 0x0000
56 * Machine dependent tags start counting from 0x8000
57 */
58
59#define BI_LAST 0x0000 /* last record (sentinel) */
60#define BI_MACHTYPE 0x0001 /* machine type (u_long) */
61#define BI_CPUTYPE 0x0002 /* cpu type (u_long) */
62#define BI_FPUTYPE 0x0003 /* fpu type (u_long) */
63#define BI_MMUTYPE 0x0004 /* mmu type (u_long) */
64#define BI_MEMCHUNK 0x0005 /* memory chunk address and size */
65 /* (struct mem_info) */
66#define BI_RAMDISK 0x0006 /* ramdisk address and size */
67 /* (struct mem_info) */
68#define BI_COMMAND_LINE 0x0007 /* kernel command line parameters */
69 /* (string) */
70
71 /*
72 * Amiga-specific tags
73 */
74
75#define BI_AMIGA_MODEL 0x8000 /* model (u_long) */
76#define BI_AMIGA_AUTOCON 0x8001 /* AutoConfig device */
77 /* (struct ConfigDev) */
78#define BI_AMIGA_CHIP_SIZE 0x8002 /* size of Chip RAM (u_long) */
79#define BI_AMIGA_VBLANK 0x8003 /* VBLANK frequency (u_char) */
80#define BI_AMIGA_PSFREQ 0x8004 /* power supply frequency (u_char) */
81#define BI_AMIGA_ECLOCK 0x8005 /* EClock frequency (u_long) */
82#define BI_AMIGA_CHIPSET 0x8006 /* native chipset present (u_long) */
83#define BI_AMIGA_SERPER 0x8007 /* serial port period (u_short) */
84
85 /*
86 * Atari-specific tags
87 */
88
89#define BI_ATARI_MCH_COOKIE 0x8000 /* _MCH cookie from TOS (u_long) */
90#define BI_ATARI_MCH_TYPE 0x8001 /* special machine type (u_long) */
91 /* (values are ATARI_MACH_* defines */
92
93/* mch_cookie values (upper word) */
94#define ATARI_MCH_ST 0
95#define ATARI_MCH_STE 1
96#define ATARI_MCH_TT 2
97#define ATARI_MCH_FALCON 3
98
99/* mch_type values */
100#define ATARI_MACH_NORMAL 0 /* no special machine type */
101#define ATARI_MACH_MEDUSA 1 /* Medusa 040 */
102#define ATARI_MACH_HADES 2 /* Hades 040 or 060 */
103#define ATARI_MACH_AB40 3 /* Afterburner040 on Falcon */
104
105 /*
106 * VME-specific tags
107 */
108
109#define BI_VME_TYPE 0x8000 /* VME sub-architecture (u_long) */
110#define BI_VME_BRDINFO 0x8001 /* VME board information (struct) */
111
112/* BI_VME_TYPE codes */
113#define VME_TYPE_TP34V 0x0034 /* Tadpole TP34V */
114#define VME_TYPE_MVME147 0x0147 /* Motorola MVME147 */
115#define VME_TYPE_MVME162 0x0162 /* Motorola MVME162 */
116#define VME_TYPE_MVME166 0x0166 /* Motorola MVME166 */
117#define VME_TYPE_MVME167 0x0167 /* Motorola MVME167 */
118#define VME_TYPE_MVME172 0x0172 /* Motorola MVME172 */
119#define VME_TYPE_MVME177 0x0177 /* Motorola MVME177 */
120#define VME_TYPE_BVME4000 0x4000 /* BVM Ltd. BVME4000 */
121#define VME_TYPE_BVME6000 0x6000 /* BVM Ltd. BVME6000 */
122
123/* BI_VME_BRDINFO is a 32 byte struct as returned by the Bug code on
124 * Motorola VME boards. Contains board number, Bug version, board
125 * configuration options, etc. See include/asm/mvme16xhw.h for details.
126 */
127
128
129 /*
130 * Macintosh-specific tags (all u_long)
131 */
132
133#define BI_MAC_MODEL 0x8000 /* Mac Gestalt ID (model type) */
134#define BI_MAC_VADDR 0x8001 /* Mac video base address */
135#define BI_MAC_VDEPTH 0x8002 /* Mac video depth */
136#define BI_MAC_VROW 0x8003 /* Mac video rowbytes */
137#define BI_MAC_VDIM 0x8004 /* Mac video dimensions */
138#define BI_MAC_VLOGICAL 0x8005 /* Mac video logical base */
139#define BI_MAC_SCCBASE 0x8006 /* Mac SCC base address */
140#define BI_MAC_BTIME 0x8007 /* Mac boot time */
141#define BI_MAC_GMTBIAS 0x8008 /* Mac GMT timezone offset */
142#define BI_MAC_MEMSIZE 0x8009 /* Mac RAM size (sanity check) */
143#define BI_MAC_CPUID 0x800a /* Mac CPU type (sanity check) */
144#define BI_MAC_ROMBASE 0x800b /* Mac system ROM base address */
145
146 /*
147 * Macintosh hardware profile data - unused, see macintosh.h for
148 * resonable type values
149 */
150
151#define BI_MAC_VIA1BASE 0x8010 /* Mac VIA1 base address (always present) */
152#define BI_MAC_VIA2BASE 0x8011 /* Mac VIA2 base address (type varies) */
153#define BI_MAC_VIA2TYPE 0x8012 /* Mac VIA2 type (VIA, RBV, OSS) */
154#define BI_MAC_ADBTYPE 0x8013 /* Mac ADB interface type */
155#define BI_MAC_ASCBASE 0x8014 /* Mac Apple Sound Chip base address */
156#define BI_MAC_SCSI5380 0x8015 /* Mac NCR 5380 SCSI (base address, multi) */
157#define BI_MAC_SCSIDMA 0x8016 /* Mac SCSI DMA (base address) */
158#define BI_MAC_SCSI5396 0x8017 /* Mac NCR 53C96 SCSI (base address, multi) */
159#define BI_MAC_IDETYPE 0x8018 /* Mac IDE interface type */
160#define BI_MAC_IDEBASE 0x8019 /* Mac IDE interface base address */
161#define BI_MAC_NUBUS 0x801a /* Mac Nubus type (none, regular, pseudo) */
162#define BI_MAC_SLOTMASK 0x801b /* Mac Nubus slots present */
163#define BI_MAC_SCCTYPE 0x801c /* Mac SCC serial type (normal, IOP) */
164#define BI_MAC_ETHTYPE 0x801d /* Mac builtin ethernet type (Sonic, MACE */
165#define BI_MAC_ETHBASE 0x801e /* Mac builtin ethernet base address */
166#define BI_MAC_PMU 0x801f /* Mac power management / poweroff hardware */
167#define BI_MAC_IOP_SWIM 0x8020 /* Mac SWIM floppy IOP */
168#define BI_MAC_IOP_ADB 0x8021 /* Mac ADB IOP */
169
170 /*
171 * Mac: compatibility with old booter data format (temporarily)
172 * Fields unused with the new bootinfo can be deleted now; instead of
173 * adding new fields the struct might be splitted into a hardware address
174 * part and a hardware type part
175 */
176
177#ifndef __ASSEMBLY__
178
179struct mac_booter_data
180{
181 unsigned long videoaddr;
182 unsigned long videorow;
183 unsigned long videodepth;
184 unsigned long dimensions;
185 unsigned long args;
186 unsigned long boottime;
187 unsigned long gmtbias;
188 unsigned long bootver;
189 unsigned long videological;
190 unsigned long sccbase;
191 unsigned long id;
192 unsigned long memsize;
193 unsigned long serialmf;
194 unsigned long serialhsk;
195 unsigned long serialgpi;
196 unsigned long printmf;
197 unsigned long printhsk;
198 unsigned long printgpi;
199 unsigned long cpuid;
200 unsigned long rombase;
201 unsigned long adbdelay;
202 unsigned long timedbra;
203};
204
205extern struct mac_booter_data
206 mac_bi_data;
207
208#endif
209
210 /*
211 * Apollo-specific tags
212 */
213
214#define BI_APOLLO_MODEL 0x8000 /* model (u_long) */
215
216 /*
217 * HP300-specific tags
218 */
219
220#define BI_HP300_MODEL 0x8000 /* model (u_long) */
221#define BI_HP300_UART_SCODE 0x8001 /* UART select code (u_long) */
222#define BI_HP300_UART_ADDR 0x8002 /* phys. addr of UART (u_long) */
223
224 /*
225 * Stuff for bootinfo interface versioning
226 *
227 * At the start of kernel code, a 'struct bootversion' is located.
228 * bootstrap checks for a matching version of the interface before booting
229 * a kernel, to avoid user confusion if kernel and bootstrap don't work
230 * together :-)
231 *
232 * If incompatible changes are made to the bootinfo interface, the major
233 * number below should be stepped (and the minor reset to 0) for the
234 * appropriate machine. If a change is backward-compatible, the minor
235 * should be stepped. "Backwards-compatible" means that booting will work,
236 * but certain features may not.
237 */
238
239#define BOOTINFOV_MAGIC 0x4249561A /* 'BIV^Z' */
240#define MK_BI_VERSION(major,minor) (((major)<<16)+(minor))
241#define BI_VERSION_MAJOR(v) (((v) >> 16) & 0xffff)
242#define BI_VERSION_MINOR(v) ((v) & 0xffff)
243
244#ifndef __ASSEMBLY__
245
246struct bootversion {
247 unsigned short branch;
248 unsigned long magic;
249 struct {
250 unsigned long machtype;
251 unsigned long version;
252 } machversions[0];
253};
254
255#endif /* __ASSEMBLY__ */
256
257#define AMIGA_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
258#define ATARI_BOOTI_VERSION MK_BI_VERSION( 2, 1 )
259#define MAC_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
260#define MVME147_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
261#define MVME16x_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
262#define BVME6000_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
263#define Q40_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
264#define HP300_BOOTI_VERSION MK_BI_VERSION( 2, 0 )
265
266#ifdef BOOTINFO_COMPAT_1_0
267
268 /*
269 * Backwards compatibility with bootinfo interface version 1.0
270 */
271
272#define COMPAT_AMIGA_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
273#define COMPAT_ATARI_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
274#define COMPAT_MAC_BOOTI_VERSION MK_BI_VERSION( 1, 0 )
275
276#include <linux/zorro.h>
277
278#define COMPAT_NUM_AUTO 16
279
280struct compat_bi_Amiga {
281 int model;
282 int num_autocon;
283 struct ConfigDev autocon[COMPAT_NUM_AUTO];
284 unsigned long chip_size;
285 unsigned char vblank;
286 unsigned char psfreq;
287 unsigned long eclock;
288 unsigned long chipset;
289 unsigned long hw_present;
290};
291
292struct compat_bi_Atari {
293 unsigned long hw_present;
294 unsigned long mch_cookie;
295};
296
297#ifndef __ASSEMBLY__
298
299struct compat_bi_Macintosh
300{
301 unsigned long videoaddr;
302 unsigned long videorow;
303 unsigned long videodepth;
304 unsigned long dimensions;
305 unsigned long args;
306 unsigned long boottime;
307 unsigned long gmtbias;
308 unsigned long bootver;
309 unsigned long videological;
310 unsigned long sccbase;
311 unsigned long id;
312 unsigned long memsize;
313 unsigned long serialmf;
314 unsigned long serialhsk;
315 unsigned long serialgpi;
316 unsigned long printmf;
317 unsigned long printhsk;
318 unsigned long printgpi;
319 unsigned long cpuid;
320 unsigned long rombase;
321 unsigned long adbdelay;
322 unsigned long timedbra;
323};
324
325#endif
326
327struct compat_mem_info {
328 unsigned long addr;
329 unsigned long size;
330};
331
332#define COMPAT_NUM_MEMINFO 4
333
334#define COMPAT_CPUB_68020 0
335#define COMPAT_CPUB_68030 1
336#define COMPAT_CPUB_68040 2
337#define COMPAT_CPUB_68060 3
338#define COMPAT_FPUB_68881 5
339#define COMPAT_FPUB_68882 6
340#define COMPAT_FPUB_68040 7
341#define COMPAT_FPUB_68060 8
342
343#define COMPAT_CPU_68020 (1<<COMPAT_CPUB_68020)
344#define COMPAT_CPU_68030 (1<<COMPAT_CPUB_68030)
345#define COMPAT_CPU_68040 (1<<COMPAT_CPUB_68040)
346#define COMPAT_CPU_68060 (1<<COMPAT_CPUB_68060)
347#define COMPAT_CPU_MASK (31)
348#define COMPAT_FPU_68881 (1<<COMPAT_FPUB_68881)
349#define COMPAT_FPU_68882 (1<<COMPAT_FPUB_68882)
350#define COMPAT_FPU_68040 (1<<COMPAT_FPUB_68040)
351#define COMPAT_FPU_68060 (1<<COMPAT_FPUB_68060)
352#define COMPAT_FPU_MASK (0xfe0)
353
354#define COMPAT_CL_SIZE (256)
355
356struct compat_bootinfo {
357 unsigned long machtype;
358 unsigned long cputype;
359 struct compat_mem_info memory[COMPAT_NUM_MEMINFO];
360 int num_memory;
361 unsigned long ramdisk_size;
362 unsigned long ramdisk_addr;
363 char command_line[COMPAT_CL_SIZE];
364 union {
365 struct compat_bi_Amiga bi_ami;
366 struct compat_bi_Atari bi_ata;
367 struct compat_bi_Macintosh bi_mac;
368 } bi_un;
369};
370
371#define bi_amiga bi_un.bi_ami
372#define bi_atari bi_un.bi_ata
373#define bi_mac bi_un.bi_mac
374
375#endif /* BOOTINFO_COMPAT_1_0 */
376
377
378#endif /* _M68K_BOOTINFO_H */
diff --git a/arch/m68knommu/include/asm/bootinfo.h b/arch/m68k/include/asm/bootinfo_no.h
index c12e526f5189..c12e526f5189 100644
--- a/arch/m68knommu/include/asm/bootinfo.h
+++ b/arch/m68k/include/asm/bootinfo_no.h
diff --git a/arch/m68knommu/include/asm/bootstd.h b/arch/m68k/include/asm/bootstd.h
index bdc1a4ac4fe9..bdc1a4ac4fe9 100644
--- a/arch/m68knommu/include/asm/bootstd.h
+++ b/arch/m68k/include/asm/bootstd.h
diff --git a/arch/m68k/include/asm/bug.h b/arch/m68k/include/asm/bug.h
new file mode 100644
index 000000000000..997e0944ebc1
--- /dev/null
+++ b/arch/m68k/include/asm/bug.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bug_no.h"
3#else
4#include "bug_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/bug_mm.h b/arch/m68k/include/asm/bug_mm.h
new file mode 100644
index 000000000000..e5b528deb8a8
--- /dev/null
+++ b/arch/m68k/include/asm/bug_mm.h
@@ -0,0 +1,29 @@
1#ifndef _M68K_BUG_H
2#define _M68K_BUG_H
3
4
5#ifdef CONFIG_BUG
6#ifdef CONFIG_DEBUG_BUGVERBOSE
7#ifndef CONFIG_SUN3
8#define BUG() do { \
9 printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
10 __builtin_trap(); \
11} while (0)
12#else
13#define BUG() do { \
14 printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
15 panic("BUG!"); \
16} while (0)
17#endif
18#else
19#define BUG() do { \
20 __builtin_trap(); \
21} while (0)
22#endif
23
24#define HAVE_ARCH_BUG
25#endif
26
27#include <asm-generic/bug.h>
28
29#endif
diff --git a/arch/m68knommu/include/asm/bug.h b/arch/m68k/include/asm/bug_no.h
index 70e7dc0af21a..70e7dc0af21a 100644
--- a/arch/m68knommu/include/asm/bug.h
+++ b/arch/m68k/include/asm/bug_no.h
diff --git a/arch/m68k/include/asm/bugs.h b/arch/m68k/include/asm/bugs.h
new file mode 100644
index 000000000000..01f047d784ec
--- /dev/null
+++ b/arch/m68k/include/asm/bugs.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bugs_no.h"
3#else
4#include "bugs_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/bugs_mm.h b/arch/m68k/include/asm/bugs_mm.h
new file mode 100644
index 000000000000..d01935592410
--- /dev/null
+++ b/arch/m68k/include/asm/bugs_mm.h
@@ -0,0 +1,14 @@
1/*
2 * include/asm-m68k/bugs.h
3 *
4 * Copyright (C) 1994 Linus Torvalds
5 */
6
7/*
8 * This is included by init/main.c to check for architecture-dependent bugs.
9 *
10 * Needs:
11 * void check_bugs(void);
12 */
13
14extern void check_bugs(void); /* in arch/m68k/kernel/setup.c */
diff --git a/arch/m68knommu/include/asm/bugs.h b/arch/m68k/include/asm/bugs_no.h
index 5f382dac3a60..5f382dac3a60 100644
--- a/arch/m68knommu/include/asm/bugs.h
+++ b/arch/m68k/include/asm/bugs_no.h
diff --git a/arch/m68k/include/asm/bvme6000hw.h b/arch/m68k/include/asm/bvme6000hw.h
new file mode 100644
index 000000000000..f40d2f8510ee
--- /dev/null
+++ b/arch/m68k/include/asm/bvme6000hw.h
@@ -0,0 +1,150 @@
1#ifndef _M68K_BVME6000HW_H_
2#define _M68K_BVME6000HW_H_
3
4#include <asm/irq.h>
5
6/*
7 * PIT structure
8 */
9
10#define BVME_PIT_BASE 0xffa00000
11
12typedef struct {
13 unsigned char
14 pad_a[3], pgcr,
15 pad_b[3], psrr,
16 pad_c[3], paddr,
17 pad_d[3], pbddr,
18 pad_e[3], pcddr,
19 pad_f[3], pivr,
20 pad_g[3], pacr,
21 pad_h[3], pbcr,
22 pad_i[3], padr,
23 pad_j[3], pbdr,
24 pad_k[3], paar,
25 pad_l[3], pbar,
26 pad_m[3], pcdr,
27 pad_n[3], psr,
28 pad_o[3], res1,
29 pad_p[3], res2,
30 pad_q[3], tcr,
31 pad_r[3], tivr,
32 pad_s[3], res3,
33 pad_t[3], cprh,
34 pad_u[3], cprm,
35 pad_v[3], cprl,
36 pad_w[3], res4,
37 pad_x[3], crh,
38 pad_y[3], crm,
39 pad_z[3], crl,
40 pad_A[3], tsr,
41 pad_B[3], res5;
42} PitRegs_t, *PitRegsPtr;
43
44#define bvmepit ((*(volatile PitRegsPtr)(BVME_PIT_BASE)))
45
46#define BVME_RTC_BASE 0xff900000
47
48typedef struct {
49 unsigned char
50 pad_a[3], msr,
51 pad_b[3], t0cr_rtmr,
52 pad_c[3], t1cr_omr,
53 pad_d[3], pfr_icr0,
54 pad_e[3], irr_icr1,
55 pad_f[3], bcd_tenms,
56 pad_g[3], bcd_sec,
57 pad_h[3], bcd_min,
58 pad_i[3], bcd_hr,
59 pad_j[3], bcd_dom,
60 pad_k[3], bcd_mth,
61 pad_l[3], bcd_year,
62 pad_m[3], bcd_ujcc,
63 pad_n[3], bcd_hjcc,
64 pad_o[3], bcd_dow,
65 pad_p[3], t0lsb,
66 pad_q[3], t0msb,
67 pad_r[3], t1lsb,
68 pad_s[3], t1msb,
69 pad_t[3], cmp_sec,
70 pad_u[3], cmp_min,
71 pad_v[3], cmp_hr,
72 pad_w[3], cmp_dom,
73 pad_x[3], cmp_mth,
74 pad_y[3], cmp_dow,
75 pad_z[3], sav_sec,
76 pad_A[3], sav_min,
77 pad_B[3], sav_hr,
78 pad_C[3], sav_dom,
79 pad_D[3], sav_mth,
80 pad_E[3], ram,
81 pad_F[3], test;
82} RtcRegs_t, *RtcPtr_t;
83
84
85#define BVME_I596_BASE 0xff100000
86
87#define BVME_ETHIRQ_REG 0xff20000b
88
89#define BVME_LOCAL_IRQ_STAT 0xff20000f
90
91#define BVME_ETHERR 0x02
92#define BVME_ABORT_STATUS 0x08
93
94#define BVME_NCR53C710_BASE 0xff000000
95
96#define BVME_SCC_A_ADDR 0xffb0000b
97#define BVME_SCC_B_ADDR 0xffb00003
98#define BVME_SCC_RTxC 7372800
99
100#define BVME_CONFIG_REG 0xff500003
101
102#define config_reg_ptr (volatile unsigned char *)BVME_CONFIG_REG
103
104#define BVME_CONFIG_SW1 0x08
105#define BVME_CONFIG_SW2 0x04
106#define BVME_CONFIG_SW3 0x02
107#define BVME_CONFIG_SW4 0x01
108
109
110#define BVME_IRQ_TYPE_PRIO 0
111
112#define BVME_IRQ_PRN (IRQ_USER+20)
113#define BVME_IRQ_TIMER (IRQ_USER+25)
114#define BVME_IRQ_I596 IRQ_AUTO_2
115#define BVME_IRQ_SCSI IRQ_AUTO_3
116#define BVME_IRQ_RTC IRQ_AUTO_6
117#define BVME_IRQ_ABORT IRQ_AUTO_7
118
119/* SCC interrupts */
120#define BVME_IRQ_SCC_BASE IRQ_USER
121#define BVME_IRQ_SCCB_TX IRQ_USER
122#define BVME_IRQ_SCCB_STAT (IRQ_USER+2)
123#define BVME_IRQ_SCCB_RX (IRQ_USER+4)
124#define BVME_IRQ_SCCB_SPCOND (IRQ_USER+6)
125#define BVME_IRQ_SCCA_TX (IRQ_USER+8)
126#define BVME_IRQ_SCCA_STAT (IRQ_USER+10)
127#define BVME_IRQ_SCCA_RX (IRQ_USER+12)
128#define BVME_IRQ_SCCA_SPCOND (IRQ_USER+14)
129
130/* Address control registers */
131
132#define BVME_ACR_A32VBA 0xff400003
133#define BVME_ACR_A32MSK 0xff410003
134#define BVME_ACR_A24VBA 0xff420003
135#define BVME_ACR_A24MSK 0xff430003
136#define BVME_ACR_A16VBA 0xff440003
137#define BVME_ACR_A32LBA 0xff450003
138#define BVME_ACR_A24LBA 0xff460003
139#define BVME_ACR_ADDRCTL 0xff470003
140
141#define bvme_acr_a32vba *(volatile unsigned char *)BVME_ACR_A32VBA
142#define bvme_acr_a32msk *(volatile unsigned char *)BVME_ACR_A32MSK
143#define bvme_acr_a24vba *(volatile unsigned char *)BVME_ACR_A24VBA
144#define bvme_acr_a24msk *(volatile unsigned char *)BVME_ACR_A24MSK
145#define bvme_acr_a16vba *(volatile unsigned char *)BVME_ACR_A16VBA
146#define bvme_acr_a32lba *(volatile unsigned char *)BVME_ACR_A32LBA
147#define bvme_acr_a24lba *(volatile unsigned char *)BVME_ACR_A24LBA
148#define bvme_acr_addrctl *(volatile unsigned char *)BVME_ACR_ADDRCTL
149
150#endif
diff --git a/arch/m68k/include/asm/byteorder.h b/arch/m68k/include/asm/byteorder.h
new file mode 100644
index 000000000000..31b260a88803
--- /dev/null
+++ b/arch/m68k/include/asm/byteorder.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_BYTEORDER_H
2#define _M68K_BYTEORDER_H
3
4#include <linux/byteorder/big_endian.h>
5
6#endif /* _M68K_BYTEORDER_H */
diff --git a/arch/m68k/include/asm/cache.h b/arch/m68k/include/asm/cache.h
new file mode 100644
index 000000000000..599c29bc8f40
--- /dev/null
+++ b/arch/m68k/include/asm/cache.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "cache_no.h"
3#else
4#include "cache_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/cache_mm.h b/arch/m68k/include/asm/cache_mm.h
new file mode 100644
index 000000000000..fed3fd30de7e
--- /dev/null
+++ b/arch/m68k/include/asm/cache_mm.h
@@ -0,0 +1,11 @@
1/*
2 * include/asm-m68k/cache.h
3 */
4#ifndef __ARCH_M68K_CACHE_H
5#define __ARCH_M68K_CACHE_H
6
7/* bytes per L1 cache line */
8#define L1_CACHE_SHIFT 4
9#define L1_CACHE_BYTES (1<< L1_CACHE_SHIFT)
10
11#endif
diff --git a/arch/m68knommu/include/asm/cache.h b/arch/m68k/include/asm/cache_no.h
index 24e9eace5f8c..24e9eace5f8c 100644
--- a/arch/m68knommu/include/asm/cache.h
+++ b/arch/m68k/include/asm/cache_no.h
diff --git a/arch/m68k/include/asm/cachectl.h b/arch/m68k/include/asm/cachectl.h
new file mode 100644
index 000000000000..525978e959e3
--- /dev/null
+++ b/arch/m68k/include/asm/cachectl.h
@@ -0,0 +1,14 @@
1#ifndef _M68K_CACHECTL_H
2#define _M68K_CACHECTL_H
3
4/* Definitions for the cacheflush system call. */
5
6#define FLUSH_SCOPE_LINE 1 /* Flush a cache line */
7#define FLUSH_SCOPE_PAGE 2 /* Flush a page */
8#define FLUSH_SCOPE_ALL 3 /* Flush the whole cache -- superuser only */
9
10#define FLUSH_CACHE_DATA 1 /* Writeback and flush data cache */
11#define FLUSH_CACHE_INSN 2 /* Flush instruction cache */
12#define FLUSH_CACHE_BOTH 3 /* Flush both caches */
13
14#endif /* _M68K_CACHECTL_H */
diff --git a/arch/m68k/include/asm/cacheflush.h b/arch/m68k/include/asm/cacheflush.h
new file mode 100644
index 000000000000..a70d7319630a
--- /dev/null
+++ b/arch/m68k/include/asm/cacheflush.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "cacheflush_no.h"
3#else
4#include "cacheflush_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/cacheflush_mm.h b/arch/m68k/include/asm/cacheflush_mm.h
new file mode 100644
index 000000000000..16bf375fdbe1
--- /dev/null
+++ b/arch/m68k/include/asm/cacheflush_mm.h
@@ -0,0 +1,156 @@
1#ifndef _M68K_CACHEFLUSH_H
2#define _M68K_CACHEFLUSH_H
3
4#include <linux/mm.h>
5
6/* cache code */
7#define FLUSH_I_AND_D (0x00000808)
8#define FLUSH_I (0x00000008)
9
10/*
11 * Cache handling functions
12 */
13
14static inline void flush_icache(void)
15{
16 if (CPU_IS_040_OR_060)
17 asm volatile ( "nop\n"
18 " .chip 68040\n"
19 " cpusha %bc\n"
20 " .chip 68k");
21 else {
22 unsigned long tmp;
23 asm volatile ( "movec %%cacr,%0\n"
24 " or.w %1,%0\n"
25 " movec %0,%%cacr"
26 : "=&d" (tmp)
27 : "id" (FLUSH_I));
28 }
29}
30
31/*
32 * invalidate the cache for the specified memory range.
33 * It starts at the physical address specified for
34 * the given number of bytes.
35 */
36extern void cache_clear(unsigned long paddr, int len);
37/*
38 * push any dirty cache in the specified memory range.
39 * It starts at the physical address specified for
40 * the given number of bytes.
41 */
42extern void cache_push(unsigned long paddr, int len);
43
44/*
45 * push and invalidate pages in the specified user virtual
46 * memory range.
47 */
48extern void cache_push_v(unsigned long vaddr, int len);
49
50/* This is needed whenever the virtual mapping of the current
51 process changes. */
52#define __flush_cache_all() \
53({ \
54 if (CPU_IS_040_OR_060) \
55 __asm__ __volatile__("nop\n\t" \
56 ".chip 68040\n\t" \
57 "cpusha %dc\n\t" \
58 ".chip 68k"); \
59 else { \
60 unsigned long _tmp; \
61 __asm__ __volatile__("movec %%cacr,%0\n\t" \
62 "orw %1,%0\n\t" \
63 "movec %0,%%cacr" \
64 : "=&d" (_tmp) \
65 : "di" (FLUSH_I_AND_D)); \
66 } \
67})
68
69#define __flush_cache_030() \
70({ \
71 if (CPU_IS_020_OR_030) { \
72 unsigned long _tmp; \
73 __asm__ __volatile__("movec %%cacr,%0\n\t" \
74 "orw %1,%0\n\t" \
75 "movec %0,%%cacr" \
76 : "=&d" (_tmp) \
77 : "di" (FLUSH_I_AND_D)); \
78 } \
79})
80
81#define flush_cache_all() __flush_cache_all()
82
83#define flush_cache_vmap(start, end) flush_cache_all()
84#define flush_cache_vunmap(start, end) flush_cache_all()
85
86static inline void flush_cache_mm(struct mm_struct *mm)
87{
88 if (mm == current->mm)
89 __flush_cache_030();
90}
91
92#define flush_cache_dup_mm(mm) flush_cache_mm(mm)
93
94/* flush_cache_range/flush_cache_page must be macros to avoid
95 a dependency on linux/mm.h, which includes this file... */
96static inline void flush_cache_range(struct vm_area_struct *vma,
97 unsigned long start,
98 unsigned long end)
99{
100 if (vma->vm_mm == current->mm)
101 __flush_cache_030();
102}
103
104static inline void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long pfn)
105{
106 if (vma->vm_mm == current->mm)
107 __flush_cache_030();
108}
109
110
111/* Push the page at kernel virtual address and clear the icache */
112/* RZ: use cpush %bc instead of cpush %dc, cinv %ic */
113static inline void __flush_page_to_ram(void *vaddr)
114{
115 if (CPU_IS_040_OR_060) {
116 __asm__ __volatile__("nop\n\t"
117 ".chip 68040\n\t"
118 "cpushp %%bc,(%0)\n\t"
119 ".chip 68k"
120 : : "a" (__pa(vaddr)));
121 } else {
122 unsigned long _tmp;
123 __asm__ __volatile__("movec %%cacr,%0\n\t"
124 "orw %1,%0\n\t"
125 "movec %0,%%cacr"
126 : "=&d" (_tmp)
127 : "di" (FLUSH_I));
128 }
129}
130
131#define flush_dcache_page(page) __flush_page_to_ram(page_address(page))
132#define flush_dcache_mmap_lock(mapping) do { } while (0)
133#define flush_dcache_mmap_unlock(mapping) do { } while (0)
134#define flush_icache_page(vma, page) __flush_page_to_ram(page_address(page))
135
136extern void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
137 unsigned long addr, int len);
138extern void flush_icache_range(unsigned long address, unsigned long endaddr);
139
140static inline void copy_to_user_page(struct vm_area_struct *vma,
141 struct page *page, unsigned long vaddr,
142 void *dst, void *src, int len)
143{
144 flush_cache_page(vma, vaddr, page_to_pfn(page));
145 memcpy(dst, src, len);
146 flush_icache_user_range(vma, page, vaddr, len);
147}
148static inline void copy_from_user_page(struct vm_area_struct *vma,
149 struct page *page, unsigned long vaddr,
150 void *dst, void *src, int len)
151{
152 flush_cache_page(vma, vaddr, page_to_pfn(page));
153 memcpy(dst, src, len);
154}
155
156#endif /* _M68K_CACHEFLUSH_H */
diff --git a/arch/m68knommu/include/asm/cacheflush.h b/arch/m68k/include/asm/cacheflush_no.h
index 87e5dc0413b4..c65f00a94553 100644
--- a/arch/m68knommu/include/asm/cacheflush.h
+++ b/arch/m68k/include/asm/cacheflush_no.h
@@ -51,13 +51,20 @@ static inline void __flush_cache_all(void)
51 "movec %%d0,%%CACR\n\t" 51 "movec %%d0,%%CACR\n\t"
52 : : : "d0", "a0" ); 52 : : : "d0", "a0" );
53#endif /* CONFIG_M5407 */ 53#endif /* CONFIG_M5407 */
54#if defined(CONFIG_M527x) || defined(CONFIG_M528x) 54#if defined(CONFIG_M523x) || defined(CONFIG_M527x)
55 __asm__ __volatile__ (
56 "movel #0x81400100, %%d0\n\t"
57 "movec %%d0, %%CACR\n\t"
58 "nop\n\t"
59 : : : "d0" );
60#endif /* CONFIG_M523x || CONFIG_M527x */
61#if defined(CONFIG_M528x)
55 __asm__ __volatile__ ( 62 __asm__ __volatile__ (
56 "movel #0x81000200, %%d0\n\t" 63 "movel #0x81000200, %%d0\n\t"
57 "movec %%d0, %%CACR\n\t" 64 "movec %%d0, %%CACR\n\t"
58 "nop\n\t" 65 "nop\n\t"
59 : : : "d0" ); 66 : : : "d0" );
60#endif /* CONFIG_M527x || CONFIG_M528x */ 67#endif /* CONFIG_M528x */
61#if defined(CONFIG_M5206) || defined(CONFIG_M5206e) || defined(CONFIG_M5272) 68#if defined(CONFIG_M5206) || defined(CONFIG_M5206e) || defined(CONFIG_M5272)
62 __asm__ __volatile__ ( 69 __asm__ __volatile__ (
63 "movel #0x81000100, %%d0\n\t" 70 "movel #0x81000100, %%d0\n\t"
diff --git a/arch/m68k/include/asm/checksum.h b/arch/m68k/include/asm/checksum.h
new file mode 100644
index 000000000000..1cf544767453
--- /dev/null
+++ b/arch/m68k/include/asm/checksum.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "checksum_no.h"
3#else
4#include "checksum_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/checksum_mm.h b/arch/m68k/include/asm/checksum_mm.h
new file mode 100644
index 000000000000..494f9aec37ea
--- /dev/null
+++ b/arch/m68k/include/asm/checksum_mm.h
@@ -0,0 +1,148 @@
1#ifndef _M68K_CHECKSUM_H
2#define _M68K_CHECKSUM_H
3
4#include <linux/in6.h>
5
6/*
7 * computes the checksum of a memory block at buff, length len,
8 * and adds in "sum" (32-bit)
9 *
10 * returns a 32-bit number suitable for feeding into itself
11 * or csum_tcpudp_magic
12 *
13 * this function must be called with even lengths, except
14 * for the last fragment, which may be odd
15 *
16 * it's best to have buff aligned on a 32-bit boundary
17 */
18__wsum csum_partial(const void *buff, int len, __wsum sum);
19
20/*
21 * the same as csum_partial, but copies from src while it
22 * checksums
23 *
24 * here even more important to align src and dst on a 32-bit (or even
25 * better 64-bit) boundary
26 */
27
28extern __wsum csum_partial_copy_from_user(const void __user *src,
29 void *dst,
30 int len, __wsum sum,
31 int *csum_err);
32
33extern __wsum csum_partial_copy_nocheck(const void *src,
34 void *dst, int len,
35 __wsum sum);
36
37/*
38 * This is a version of ip_compute_csum() optimized for IP headers,
39 * which always checksum on 4 octet boundaries.
40 *
41 */
42static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
43{
44 unsigned int sum = 0;
45 unsigned long tmp;
46
47 __asm__ ("subqw #1,%2\n"
48 "1:\t"
49 "movel %1@+,%3\n\t"
50 "addxl %3,%0\n\t"
51 "dbra %2,1b\n\t"
52 "movel %0,%3\n\t"
53 "swap %3\n\t"
54 "addxw %3,%0\n\t"
55 "clrw %3\n\t"
56 "addxw %3,%0\n\t"
57 : "=d" (sum), "=&a" (iph), "=&d" (ihl), "=&d" (tmp)
58 : "0" (sum), "1" (iph), "2" (ihl)
59 : "memory");
60 return (__force __sum16)~sum;
61}
62
63/*
64 * Fold a partial checksum
65 */
66
67static inline __sum16 csum_fold(__wsum sum)
68{
69 unsigned int tmp = (__force u32)sum;
70 __asm__("swap %1\n\t"
71 "addw %1, %0\n\t"
72 "clrw %1\n\t"
73 "addxw %1, %0"
74 : "=&d" (sum), "=&d" (tmp)
75 : "0" (sum), "1" (tmp));
76 return (__force __sum16)~sum;
77}
78
79
80static inline __wsum
81csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
82 unsigned short proto, __wsum sum)
83{
84 __asm__ ("addl %2,%0\n\t"
85 "addxl %3,%0\n\t"
86 "addxl %4,%0\n\t"
87 "clrl %1\n\t"
88 "addxl %1,%0"
89 : "=&d" (sum), "=d" (saddr)
90 : "g" (daddr), "1" (saddr), "d" (len + proto),
91 "0" (sum));
92 return sum;
93}
94
95
96/*
97 * computes the checksum of the TCP/UDP pseudo-header
98 * returns a 16-bit checksum, already complemented
99 */
100static inline __sum16
101csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len,
102 unsigned short proto, __wsum sum)
103{
104 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
105}
106
107/*
108 * this routine is used for miscellaneous IP-like checksums, mainly
109 * in icmp.c
110 */
111
112static inline __sum16 ip_compute_csum(const void *buff, int len)
113{
114 return csum_fold (csum_partial(buff, len, 0));
115}
116
117#define _HAVE_ARCH_IPV6_CSUM
118static __inline__ __sum16
119csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr,
120 __u32 len, unsigned short proto, __wsum sum)
121{
122 register unsigned long tmp;
123 __asm__("addl %2@,%0\n\t"
124 "movel %2@(4),%1\n\t"
125 "addxl %1,%0\n\t"
126 "movel %2@(8),%1\n\t"
127 "addxl %1,%0\n\t"
128 "movel %2@(12),%1\n\t"
129 "addxl %1,%0\n\t"
130 "movel %3@,%1\n\t"
131 "addxl %1,%0\n\t"
132 "movel %3@(4),%1\n\t"
133 "addxl %1,%0\n\t"
134 "movel %3@(8),%1\n\t"
135 "addxl %1,%0\n\t"
136 "movel %3@(12),%1\n\t"
137 "addxl %1,%0\n\t"
138 "addxl %4,%0\n\t"
139 "clrl %1\n\t"
140 "addxl %1,%0"
141 : "=&d" (sum), "=&d" (tmp)
142 : "a" (saddr), "a" (daddr), "d" (len + proto),
143 "0" (sum));
144
145 return csum_fold(sum);
146}
147
148#endif /* _M68K_CHECKSUM_H */
diff --git a/arch/m68knommu/include/asm/checksum.h b/arch/m68k/include/asm/checksum_no.h
index 81883482ffb1..81883482ffb1 100644
--- a/arch/m68knommu/include/asm/checksum.h
+++ b/arch/m68k/include/asm/checksum_no.h
diff --git a/arch/m68knommu/include/asm/coldfire.h b/arch/m68k/include/asm/coldfire.h
index 83a9fa4e618a..83a9fa4e618a 100644
--- a/arch/m68knommu/include/asm/coldfire.h
+++ b/arch/m68k/include/asm/coldfire.h
diff --git a/arch/m68knommu/include/asm/commproc.h b/arch/m68k/include/asm/commproc.h
index edf5eb6c08d2..edf5eb6c08d2 100644
--- a/arch/m68knommu/include/asm/commproc.h
+++ b/arch/m68k/include/asm/commproc.h
diff --git a/arch/m68k/include/asm/contregs.h b/arch/m68k/include/asm/contregs.h
new file mode 100644
index 000000000000..d1ea750bddfe
--- /dev/null
+++ b/arch/m68k/include/asm/contregs.h
@@ -0,0 +1,53 @@
1#ifndef _M68K_CONTREGS_H
2#define _M68K_CONTREGS_H
3
4/* contregs.h: Addresses of registers in the ASI_CONTROL alternate address
5 * space. These are for the mmu's context register, etc.
6 *
7 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
8 */
9
10/* 3=sun3
11 4=sun4 (as in sun4 sysmaint student book)
12 c=sun4c (according to davem) */
13
14#define AC_IDPROM 0x00000000 /* 34 ID PROM, R/O, byte, 32 bytes */
15#define AC_PAGEMAP 0x10000000 /* 3 Pagemap R/W, long */
16#define AC_SEGMAP 0x20000000 /* 3 Segment map, byte */
17#define AC_CONTEXT 0x30000000 /* 34c current mmu-context */
18#define AC_SENABLE 0x40000000 /* 34c system dvma/cache/reset enable reg*/
19#define AC_UDVMA_ENB 0x50000000 /* 34 Not used on Sun boards, byte */
20#define AC_BUS_ERROR 0x60000000 /* 34 Not cleared on read, byte. */
21#define AC_SYNC_ERR 0x60000000 /* c fault type */
22#define AC_SYNC_VA 0x60000004 /* c fault virtual address */
23#define AC_ASYNC_ERR 0x60000008 /* c asynchronous fault type */
24#define AC_ASYNC_VA 0x6000000c /* c async fault virtual address */
25#define AC_LEDS 0x70000000 /* 34 Zero turns on LEDs, byte */
26#define AC_CACHETAGS 0x80000000 /* 34c direct access to the VAC tags */
27#define AC_CACHEDDATA 0x90000000 /* 3 c direct access to the VAC data */
28#define AC_UDVMA_MAP 0xD0000000 /* 4 Not used on Sun boards, byte */
29#define AC_VME_VECTOR 0xE0000000 /* 4 For non-Autovector VME, byte */
30#define AC_BOOT_SCC 0xF0000000 /* 34 bypass to access Zilog 8530. byte.*/
31
32/* s=Swift, h=Ross_HyperSPARC, v=TI_Viking, t=Tsunami, r=Ross_Cypress */
33#define AC_M_PCR 0x0000 /* shv Processor Control Reg */
34#define AC_M_CTPR 0x0100 /* shv Context Table Pointer Reg */
35#define AC_M_CXR 0x0200 /* shv Context Register */
36#define AC_M_SFSR 0x0300 /* shv Synchronous Fault Status Reg */
37#define AC_M_SFAR 0x0400 /* shv Synchronous Fault Address Reg */
38#define AC_M_AFSR 0x0500 /* hv Asynchronous Fault Status Reg */
39#define AC_M_AFAR 0x0600 /* hv Asynchronous Fault Address Reg */
40#define AC_M_RESET 0x0700 /* hv Reset Reg */
41#define AC_M_RPR 0x1000 /* hv Root Pointer Reg */
42#define AC_M_TSUTRCR 0x1000 /* s TLB Replacement Ctrl Reg */
43#define AC_M_IAPTP 0x1100 /* hv Instruction Access PTP */
44#define AC_M_DAPTP 0x1200 /* hv Data Access PTP */
45#define AC_M_ITR 0x1300 /* hv Index Tag Register */
46#define AC_M_TRCR 0x1400 /* hv TLB Replacement Control Reg */
47#define AC_M_SFSRX 0x1300 /* s Synch Fault Status Reg prim */
48#define AC_M_SFARX 0x1400 /* s Synch Fault Address Reg prim */
49#define AC_M_RPR1 0x1500 /* h Root Pointer Reg (entry 2) */
50#define AC_M_IAPTP1 0x1600 /* h Instruction Access PTP (entry 2) */
51#define AC_M_DAPTP1 0x1700 /* h Data Access PTP (entry 2) */
52
53#endif /* _M68K_CONTREGS_H */
diff --git a/arch/m68k/include/asm/cputime.h b/arch/m68k/include/asm/cputime.h
new file mode 100644
index 000000000000..c79c5e892305
--- /dev/null
+++ b/arch/m68k/include/asm/cputime.h
@@ -0,0 +1,6 @@
1#ifndef __M68K_CPUTIME_H
2#define __M68K_CPUTIME_H
3
4#include <asm-generic/cputime.h>
5
6#endif /* __M68K_CPUTIME_H */
diff --git a/arch/m68k/include/asm/current.h b/arch/m68k/include/asm/current.h
new file mode 100644
index 000000000000..51b056dfaedd
--- /dev/null
+++ b/arch/m68k/include/asm/current.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "current_no.h"
3#else
4#include "current_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/current_mm.h b/arch/m68k/include/asm/current_mm.h
new file mode 100644
index 000000000000..8de8f8ceda61
--- /dev/null
+++ b/arch/m68k/include/asm/current_mm.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_CURRENT_H
2#define _M68K_CURRENT_H
3
4register struct task_struct *current __asm__("%a2");
5
6#endif /* !(_M68K_CURRENT_H) */
diff --git a/arch/m68knommu/include/asm/current.h b/arch/m68k/include/asm/current_no.h
index 53ee0f9f7cef..53ee0f9f7cef 100644
--- a/arch/m68knommu/include/asm/current.h
+++ b/arch/m68k/include/asm/current_no.h
diff --git a/arch/m68knommu/include/asm/dbg.h b/arch/m68k/include/asm/dbg.h
index 27af3270f671..27af3270f671 100644
--- a/arch/m68knommu/include/asm/dbg.h
+++ b/arch/m68k/include/asm/dbg.h
diff --git a/arch/m68k/include/asm/delay.h b/arch/m68k/include/asm/delay.h
new file mode 100644
index 000000000000..d2598e3dd7b2
--- /dev/null
+++ b/arch/m68k/include/asm/delay.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "delay_no.h"
3#else
4#include "delay_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/delay_mm.h b/arch/m68k/include/asm/delay_mm.h
new file mode 100644
index 000000000000..5ed92851bc6f
--- /dev/null
+++ b/arch/m68k/include/asm/delay_mm.h
@@ -0,0 +1,57 @@
1#ifndef _M68K_DELAY_H
2#define _M68K_DELAY_H
3
4#include <asm/param.h>
5
6/*
7 * Copyright (C) 1994 Hamish Macdonald
8 *
9 * Delay routines, using a pre-computed "loops_per_jiffy" value.
10 */
11
12static inline void __delay(unsigned long loops)
13{
14 __asm__ __volatile__ ("1: subql #1,%0; jcc 1b"
15 : "=d" (loops) : "0" (loops));
16}
17
18extern void __bad_udelay(void);
19
20/*
21 * Use only for very small delays ( < 1 msec). Should probably use a
22 * lookup table, really, as the multiplications take much too long with
23 * short delays. This is a "reasonable" implementation, though (and the
24 * first constant multiplications gets optimized away if the delay is
25 * a constant)
26 */
27static inline void __const_udelay(unsigned long xloops)
28{
29 unsigned long tmp;
30
31 __asm__ ("mulul %2,%0:%1"
32 : "=d" (xloops), "=d" (tmp)
33 : "d" (xloops), "1" (loops_per_jiffy));
34 __delay(xloops * HZ);
35}
36
37static inline void __udelay(unsigned long usecs)
38{
39 __const_udelay(usecs * 4295); /* 2**32 / 1000000 */
40}
41
42#define udelay(n) (__builtin_constant_p(n) ? \
43 ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 4295)) : \
44 __udelay(n))
45
46static inline unsigned long muldiv(unsigned long a, unsigned long b,
47 unsigned long c)
48{
49 unsigned long tmp;
50
51 __asm__ ("mulul %2,%0:%1; divul %3,%0:%1"
52 : "=d" (tmp), "=d" (a)
53 : "d" (b), "d" (c), "1" (a));
54 return a;
55}
56
57#endif /* defined(_M68K_DELAY_H) */
diff --git a/arch/m68knommu/include/asm/delay.h b/arch/m68k/include/asm/delay_no.h
index 55cbd6294ab6..55cbd6294ab6 100644
--- a/arch/m68knommu/include/asm/delay.h
+++ b/arch/m68k/include/asm/delay_no.h
diff --git a/arch/m68knommu/include/asm/device.h b/arch/m68k/include/asm/device.h
index d8f9872b0e2d..d8f9872b0e2d 100644
--- a/arch/m68knommu/include/asm/device.h
+++ b/arch/m68k/include/asm/device.h
diff --git a/arch/m68k/include/asm/div64.h b/arch/m68k/include/asm/div64.h
new file mode 100644
index 000000000000..d211d9f54276
--- /dev/null
+++ b/arch/m68k/include/asm/div64.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "div64_no.h"
3#else
4#include "div64_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/div64_mm.h b/arch/m68k/include/asm/div64_mm.h
new file mode 100644
index 000000000000..8243c931b5c0
--- /dev/null
+++ b/arch/m68k/include/asm/div64_mm.h
@@ -0,0 +1,28 @@
1#ifndef _M68K_DIV64_H
2#define _M68K_DIV64_H
3
4#include <linux/types.h>
5
6/* n = n / base; return rem; */
7
8#define do_div(n, base) ({ \
9 union { \
10 unsigned long n32[2]; \
11 unsigned long long n64; \
12 } __n; \
13 unsigned long __rem, __upper; \
14 \
15 __n.n64 = (n); \
16 if ((__upper = __n.n32[0])) { \
17 asm ("divul.l %2,%1:%0" \
18 : "=d" (__n.n32[0]), "=d" (__upper) \
19 : "d" (base), "0" (__n.n32[0])); \
20 } \
21 asm ("divu.l %2,%1:%0" \
22 : "=d" (__n.n32[1]), "=d" (__rem) \
23 : "d" (base), "1" (__upper), "0" (__n.n32[1])); \
24 (n) = __n.n64; \
25 __rem; \
26})
27
28#endif /* _M68K_DIV64_H */
diff --git a/arch/m68knommu/include/asm/div64.h b/arch/m68k/include/asm/div64_no.h
index 6cd978cefb28..6cd978cefb28 100644
--- a/arch/m68knommu/include/asm/div64.h
+++ b/arch/m68k/include/asm/div64_no.h
diff --git a/arch/m68k/include/asm/dma-mapping.h b/arch/m68k/include/asm/dma-mapping.h
new file mode 100644
index 000000000000..f4a4c7638f89
--- /dev/null
+++ b/arch/m68k/include/asm/dma-mapping.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "dma-mapping_no.h"
3#else
4#include "dma-mapping_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/dma-mapping_mm.h b/arch/m68k/include/asm/dma-mapping_mm.h
new file mode 100644
index 000000000000..26f505488c11
--- /dev/null
+++ b/arch/m68k/include/asm/dma-mapping_mm.h
@@ -0,0 +1,112 @@
1#ifndef _M68K_DMA_MAPPING_H
2#define _M68K_DMA_MAPPING_H
3
4#include <asm/cache.h>
5
6struct scatterlist;
7
8#ifndef CONFIG_MMU_SUN3
9static inline int dma_supported(struct device *dev, u64 mask)
10{
11 return 1;
12}
13
14static inline int dma_set_mask(struct device *dev, u64 mask)
15{
16 return 0;
17}
18
19static inline int dma_get_cache_alignment(void)
20{
21 return 1 << L1_CACHE_SHIFT;
22}
23
24static inline int dma_is_consistent(struct device *dev, dma_addr_t dma_addr)
25{
26 return 0;
27}
28
29extern void *dma_alloc_coherent(struct device *, size_t,
30 dma_addr_t *, gfp_t);
31extern void dma_free_coherent(struct device *, size_t,
32 void *, dma_addr_t);
33
34static inline void *dma_alloc_noncoherent(struct device *dev, size_t size,
35 dma_addr_t *handle, gfp_t flag)
36{
37 return dma_alloc_coherent(dev, size, handle, flag);
38}
39static inline void dma_free_noncoherent(struct device *dev, size_t size,
40 void *addr, dma_addr_t handle)
41{
42 dma_free_coherent(dev, size, addr, handle);
43}
44static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
45 enum dma_data_direction dir)
46{
47 /* we use coherent allocation, so not much to do here. */
48}
49
50extern dma_addr_t dma_map_single(struct device *, void *, size_t,
51 enum dma_data_direction);
52static inline void dma_unmap_single(struct device *dev, dma_addr_t addr,
53 size_t size, enum dma_data_direction dir)
54{
55}
56
57extern dma_addr_t dma_map_page(struct device *, struct page *,
58 unsigned long, size_t size,
59 enum dma_data_direction);
60static inline void dma_unmap_page(struct device *dev, dma_addr_t address,
61 size_t size, enum dma_data_direction dir)
62{
63}
64
65extern int dma_map_sg(struct device *, struct scatterlist *, int,
66 enum dma_data_direction);
67static inline void dma_unmap_sg(struct device *dev, struct scatterlist *sg,
68 int nhwentries, enum dma_data_direction dir)
69{
70}
71
72extern void dma_sync_single_for_device(struct device *, dma_addr_t, size_t,
73 enum dma_data_direction);
74extern void dma_sync_sg_for_device(struct device *, struct scatterlist *, int,
75 enum dma_data_direction);
76
77static inline void dma_sync_single_range_for_device(struct device *dev,
78 dma_addr_t dma_handle, unsigned long offset, size_t size,
79 enum dma_data_direction direction)
80{
81 /* just sync everything for now */
82 dma_sync_single_for_device(dev, dma_handle, offset + size, direction);
83}
84
85static inline void dma_sync_single_for_cpu(struct device *dev, dma_addr_t handle,
86 size_t size, enum dma_data_direction dir)
87{
88}
89
90static inline void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg,
91 int nents, enum dma_data_direction dir)
92{
93}
94
95static inline void dma_sync_single_range_for_cpu(struct device *dev,
96 dma_addr_t dma_handle, unsigned long offset, size_t size,
97 enum dma_data_direction direction)
98{
99 /* just sync everything for now */
100 dma_sync_single_for_cpu(dev, dma_handle, offset + size, direction);
101}
102
103static inline int dma_mapping_error(struct device *dev, dma_addr_t handle)
104{
105 return 0;
106}
107
108#else
109#include <asm-generic/dma-mapping-broken.h>
110#endif
111
112#endif /* _M68K_DMA_MAPPING_H */
diff --git a/arch/m68knommu/include/asm/dma-mapping.h b/arch/m68k/include/asm/dma-mapping_no.h
index 6aeab18e58bd..1748f2bca940 100644
--- a/arch/m68knommu/include/asm/dma-mapping.h
+++ b/arch/m68k/include/asm/dma-mapping_no.h
@@ -1,10 +1,6 @@
1#ifndef _M68KNOMMU_DMA_MAPPING_H 1#ifndef _M68KNOMMU_DMA_MAPPING_H
2#define _M68KNOMMU_DMA_MAPPING_H 2#define _M68KNOMMU_DMA_MAPPING_H
3 3
4#ifdef CONFIG_PCI
5#include <asm-generic/dma-mapping.h>
6#else
7#include <asm-generic/dma-mapping-broken.h> 4#include <asm-generic/dma-mapping-broken.h>
8#endif
9 5
10#endif /* _M68KNOMMU_DMA_MAPPING_H */ 6#endif /* _M68KNOMMU_DMA_MAPPING_H */
diff --git a/arch/m68k/include/asm/dma.h b/arch/m68k/include/asm/dma.h
new file mode 100644
index 000000000000..b82e660cf1c2
--- /dev/null
+++ b/arch/m68k/include/asm/dma.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "dma_no.h"
3#else
4#include "dma_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/dma_mm.h b/arch/m68k/include/asm/dma_mm.h
new file mode 100644
index 000000000000..4240fbc946f8
--- /dev/null
+++ b/arch/m68k/include/asm/dma_mm.h
@@ -0,0 +1,16 @@
1#ifndef _M68K_DMA_H
2#define _M68K_DMA_H 1
3
4
5/* it's useless on the m68k, but unfortunately needed by the new
6 bootmem allocator (but this should do it for this) */
7#define MAX_DMA_ADDRESS PAGE_OFFSET
8
9#define MAX_DMA_CHANNELS 8
10
11extern int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */
12extern void free_dma(unsigned int dmanr); /* release it again */
13
14#define isa_dma_bridge_buggy (0)
15
16#endif /* _M68K_DMA_H */
diff --git a/arch/m68knommu/include/asm/dma.h b/arch/m68k/include/asm/dma_no.h
index 939a02056217..939a02056217 100644
--- a/arch/m68knommu/include/asm/dma.h
+++ b/arch/m68k/include/asm/dma_no.h
diff --git a/arch/m68k/include/asm/dsp56k.h b/arch/m68k/include/asm/dsp56k.h
new file mode 100644
index 000000000000..2d8c0c9f794b
--- /dev/null
+++ b/arch/m68k/include/asm/dsp56k.h
@@ -0,0 +1,35 @@
1/*
2 * linux/include/asm-m68k/dsp56k.h - defines and declarations for
3 * DSP56k device driver
4 *
5 * Copyright (C) 1996,1997 Fredrik Noring, lars brinkhoff & Tomas Berndtsson
6 *
7 * This file is subject to the terms and conditions of the GNU General Public
8 * License. See the file COPYING in the main directory of this archive
9 * for more details.
10 */
11
12
13/* Used for uploading DSP binary code */
14struct dsp56k_upload {
15 int len;
16 char __user *bin;
17};
18
19/* For the DSP host flags */
20struct dsp56k_host_flags {
21 int dir; /* Bit field. 1 = write output bit, 0 = do nothing.
22 * 0x0000 means reading only, 0x0011 means
23 * writing the bits stored in `out' on HF0 and HF1.
24 * Note that HF2 and HF3 can only be read.
25 */
26 int out; /* Bit field like above. */
27 int status; /* Host register's current state is returned */
28};
29
30/* ioctl command codes */
31#define DSP56K_UPLOAD 1 /* Upload DSP binary program */
32#define DSP56K_SET_TX_WSIZE 2 /* Host transmit word size (1-4) */
33#define DSP56K_SET_RX_WSIZE 3 /* Host receive word size (1-4) */
34#define DSP56K_HOST_FLAGS 4 /* Host flag registers */
35#define DSP56K_HOST_CMD 5 /* Trig Host Command (0-31) */
diff --git a/arch/m68k/include/asm/dvma.h b/arch/m68k/include/asm/dvma.h
new file mode 100644
index 000000000000..890bbf7e7758
--- /dev/null
+++ b/arch/m68k/include/asm/dvma.h
@@ -0,0 +1,240 @@
1/*
2 * include/asm-m68k/dma.h
3 *
4 * Copyright 1995 (C) David S. Miller (davem@caip.rutgers.edu)
5 *
6 * Hacked to fit Sun3x needs by Thomas Bogendoerfer
7 */
8
9#ifndef __M68K_DVMA_H
10#define __M68K_DVMA_H
11
12
13#define DVMA_PAGE_SHIFT 13
14#define DVMA_PAGE_SIZE (1UL << DVMA_PAGE_SHIFT)
15#define DVMA_PAGE_MASK (~(DVMA_PAGE_SIZE-1))
16#define DVMA_PAGE_ALIGN(addr) ALIGN(addr, DVMA_PAGE_SIZE)
17
18extern void dvma_init(void);
19extern int dvma_map_iommu(unsigned long kaddr, unsigned long baddr,
20 int len);
21
22#define dvma_malloc(x) dvma_malloc_align(x, 0)
23#define dvma_map(x, y) dvma_map_align(x, y, 0)
24#define dvma_map_vme(x, y) (dvma_map(x, y) & 0xfffff)
25#define dvma_map_align_vme(x, y, z) (dvma_map_align (x, y, z) & 0xfffff)
26extern unsigned long dvma_map_align(unsigned long kaddr, int len,
27 int align);
28extern void *dvma_malloc_align(unsigned long len, unsigned long align);
29
30extern void dvma_unmap(void *baddr);
31extern void dvma_free(void *vaddr);
32
33
34#ifdef CONFIG_SUN3
35/* sun3 dvma page support */
36
37/* memory and pmegs potentially reserved for dvma */
38#define DVMA_PMEG_START 10
39#define DVMA_PMEG_END 16
40#define DVMA_START 0xf00000
41#define DVMA_END 0xfe0000
42#define DVMA_SIZE (DVMA_END-DVMA_START)
43#define IOMMU_TOTAL_ENTRIES 128
44#define IOMMU_ENTRIES 120
45
46/* empirical kludge -- dvma regions only seem to work right on 0x10000
47 byte boundaries */
48#define DVMA_REGION_SIZE 0x10000
49#define DVMA_ALIGN(addr) (((addr)+DVMA_REGION_SIZE-1) & \
50 ~(DVMA_REGION_SIZE-1))
51
52/* virt <-> phys conversions */
53#define dvma_vtop(x) ((unsigned long)(x) & 0xffffff)
54#define dvma_ptov(x) ((unsigned long)(x) | 0xf000000)
55#define dvma_vtovme(x) ((unsigned long)(x) & 0x00fffff)
56#define dvma_vmetov(x) ((unsigned long)(x) | 0xff00000)
57#define dvma_vtob(x) dvma_vtop(x)
58#define dvma_btov(x) dvma_ptov(x)
59
60static inline int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr,
61 int len)
62{
63 return 0;
64}
65
66#else /* Sun3x */
67
68/* sun3x dvma page support */
69
70#define DVMA_START 0x0
71#define DVMA_END 0xf00000
72#define DVMA_SIZE (DVMA_END-DVMA_START)
73#define IOMMU_TOTAL_ENTRIES 2048
74/* the prom takes the top meg */
75#define IOMMU_ENTRIES (IOMMU_TOTAL_ENTRIES - 0x80)
76
77#define dvma_vtob(x) ((unsigned long)(x) & 0x00ffffff)
78#define dvma_btov(x) ((unsigned long)(x) | 0xff000000)
79
80extern int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr, int len);
81
82
83
84/* everything below this line is specific to dma used for the onboard
85 ESP scsi on sun3x */
86
87/* Structure to describe the current status of DMA registers on the Sparc */
88struct sparc_dma_registers {
89 __volatile__ unsigned long cond_reg; /* DMA condition register */
90 __volatile__ unsigned long st_addr; /* Start address of this transfer */
91 __volatile__ unsigned long cnt; /* How many bytes to transfer */
92 __volatile__ unsigned long dma_test; /* DMA test register */
93};
94
95/* DVMA chip revisions */
96enum dvma_rev {
97 dvmarev0,
98 dvmaesc1,
99 dvmarev1,
100 dvmarev2,
101 dvmarev3,
102 dvmarevplus,
103 dvmahme
104};
105
106#define DMA_HASCOUNT(rev) ((rev)==dvmaesc1)
107
108/* Linux DMA information structure, filled during probe. */
109struct Linux_SBus_DMA {
110 struct Linux_SBus_DMA *next;
111 struct linux_sbus_device *SBus_dev;
112 struct sparc_dma_registers *regs;
113
114 /* Status, misc info */
115 int node; /* Prom node for this DMA device */
116 int running; /* Are we doing DMA now? */
117 int allocated; /* Are we "owned" by anyone yet? */
118
119 /* Transfer information. */
120 unsigned long addr; /* Start address of current transfer */
121 int nbytes; /* Size of current transfer */
122 int realbytes; /* For splitting up large transfers, etc. */
123
124 /* DMA revision */
125 enum dvma_rev revision;
126};
127
128extern struct Linux_SBus_DMA *dma_chain;
129
130/* Broken hardware... */
131#define DMA_ISBROKEN(dma) ((dma)->revision == dvmarev1)
132#define DMA_ISESC1(dma) ((dma)->revision == dvmaesc1)
133
134/* Fields in the cond_reg register */
135/* First, the version identification bits */
136#define DMA_DEVICE_ID 0xf0000000 /* Device identification bits */
137#define DMA_VERS0 0x00000000 /* Sunray DMA version */
138#define DMA_ESCV1 0x40000000 /* DMA ESC Version 1 */
139#define DMA_VERS1 0x80000000 /* DMA rev 1 */
140#define DMA_VERS2 0xa0000000 /* DMA rev 2 */
141#define DMA_VERHME 0xb0000000 /* DMA hme gate array */
142#define DMA_VERSPLUS 0x90000000 /* DMA rev 1 PLUS */
143
144#define DMA_HNDL_INTR 0x00000001 /* An IRQ needs to be handled */
145#define DMA_HNDL_ERROR 0x00000002 /* We need to take an error */
146#define DMA_FIFO_ISDRAIN 0x0000000c /* The DMA FIFO is draining */
147#define DMA_INT_ENAB 0x00000010 /* Turn on interrupts */
148#define DMA_FIFO_INV 0x00000020 /* Invalidate the FIFO */
149#define DMA_ACC_SZ_ERR 0x00000040 /* The access size was bad */
150#define DMA_FIFO_STDRAIN 0x00000040 /* DMA_VERS1 Drain the FIFO */
151#define DMA_RST_SCSI 0x00000080 /* Reset the SCSI controller */
152#define DMA_RST_ENET DMA_RST_SCSI /* Reset the ENET controller */
153#define DMA_ST_WRITE 0x00000100 /* write from device to memory */
154#define DMA_ENABLE 0x00000200 /* Fire up DMA, handle requests */
155#define DMA_PEND_READ 0x00000400 /* DMA_VERS1/0/PLUS Pending Read */
156#define DMA_ESC_BURST 0x00000800 /* 1=16byte 0=32byte */
157#define DMA_READ_AHEAD 0x00001800 /* DMA read ahead partial longword */
158#define DMA_DSBL_RD_DRN 0x00001000 /* No EC drain on slave reads */
159#define DMA_BCNT_ENAB 0x00002000 /* If on, use the byte counter */
160#define DMA_TERM_CNTR 0x00004000 /* Terminal counter */
161#define DMA_CSR_DISAB 0x00010000 /* No FIFO drains during csr */
162#define DMA_SCSI_DISAB 0x00020000 /* No FIFO drains during reg */
163#define DMA_DSBL_WR_INV 0x00020000 /* No EC inval. on slave writes */
164#define DMA_ADD_ENABLE 0x00040000 /* Special ESC DVMA optimization */
165#define DMA_E_BURST8 0x00040000 /* ENET: SBUS r/w burst size */
166#define DMA_BRST_SZ 0x000c0000 /* SCSI: SBUS r/w burst size */
167#define DMA_BRST64 0x00080000 /* SCSI: 64byte bursts (HME on UltraSparc only) */
168#define DMA_BRST32 0x00040000 /* SCSI: 32byte bursts */
169#define DMA_BRST16 0x00000000 /* SCSI: 16byte bursts */
170#define DMA_BRST0 0x00080000 /* SCSI: no bursts (non-HME gate arrays) */
171#define DMA_ADDR_DISAB 0x00100000 /* No FIFO drains during addr */
172#define DMA_2CLKS 0x00200000 /* Each transfer = 2 clock ticks */
173#define DMA_3CLKS 0x00400000 /* Each transfer = 3 clock ticks */
174#define DMA_EN_ENETAUI DMA_3CLKS /* Put lance into AUI-cable mode */
175#define DMA_CNTR_DISAB 0x00800000 /* No IRQ when DMA_TERM_CNTR set */
176#define DMA_AUTO_NADDR 0x01000000 /* Use "auto nxt addr" feature */
177#define DMA_SCSI_ON 0x02000000 /* Enable SCSI dma */
178#define DMA_PARITY_OFF 0x02000000 /* HME: disable parity checking */
179#define DMA_LOADED_ADDR 0x04000000 /* Address has been loaded */
180#define DMA_LOADED_NADDR 0x08000000 /* Next address has been loaded */
181
182/* Values describing the burst-size property from the PROM */
183#define DMA_BURST1 0x01
184#define DMA_BURST2 0x02
185#define DMA_BURST4 0x04
186#define DMA_BURST8 0x08
187#define DMA_BURST16 0x10
188#define DMA_BURST32 0x20
189#define DMA_BURST64 0x40
190#define DMA_BURSTBITS 0x7f
191
192/* Determine highest possible final transfer address given a base */
193#define DMA_MAXEND(addr) (0x01000000UL-(((unsigned long)(addr))&0x00ffffffUL))
194
195/* Yes, I hack a lot of elisp in my spare time... */
196#define DMA_ERROR_P(regs) ((((regs)->cond_reg) & DMA_HNDL_ERROR))
197#define DMA_IRQ_P(regs) ((((regs)->cond_reg) & (DMA_HNDL_INTR | DMA_HNDL_ERROR)))
198#define DMA_WRITE_P(regs) ((((regs)->cond_reg) & DMA_ST_WRITE))
199#define DMA_OFF(regs) ((((regs)->cond_reg) &= (~DMA_ENABLE)))
200#define DMA_INTSOFF(regs) ((((regs)->cond_reg) &= (~DMA_INT_ENAB)))
201#define DMA_INTSON(regs) ((((regs)->cond_reg) |= (DMA_INT_ENAB)))
202#define DMA_PUNTFIFO(regs) ((((regs)->cond_reg) |= DMA_FIFO_INV))
203#define DMA_SETSTART(regs, addr) ((((regs)->st_addr) = (char *) addr))
204#define DMA_BEGINDMA_W(regs) \
205 ((((regs)->cond_reg |= (DMA_ST_WRITE|DMA_ENABLE|DMA_INT_ENAB))))
206#define DMA_BEGINDMA_R(regs) \
207 ((((regs)->cond_reg |= ((DMA_ENABLE|DMA_INT_ENAB)&(~DMA_ST_WRITE)))))
208
209/* For certain DMA chips, we need to disable ints upon irq entry
210 * and turn them back on when we are done. So in any ESP interrupt
211 * handler you *must* call DMA_IRQ_ENTRY upon entry and DMA_IRQ_EXIT
212 * when leaving the handler. You have been warned...
213 */
214#define DMA_IRQ_ENTRY(dma, dregs) do { \
215 if(DMA_ISBROKEN(dma)) DMA_INTSOFF(dregs); \
216 } while (0)
217
218#define DMA_IRQ_EXIT(dma, dregs) do { \
219 if(DMA_ISBROKEN(dma)) DMA_INTSON(dregs); \
220 } while(0)
221
222/* Reset the friggin' thing... */
223#define DMA_RESET(dma) do { \
224 struct sparc_dma_registers *regs = dma->regs; \
225 /* Let the current FIFO drain itself */ \
226 sparc_dma_pause(regs, (DMA_FIFO_ISDRAIN)); \
227 /* Reset the logic */ \
228 regs->cond_reg |= (DMA_RST_SCSI); /* assert */ \
229 __delay(400); /* let the bits set ;) */ \
230 regs->cond_reg &= ~(DMA_RST_SCSI); /* de-assert */ \
231 sparc_dma_enable_interrupts(regs); /* Re-enable interrupts */ \
232 /* Enable FAST transfers if available */ \
233 if(dma->revision>dvmarev1) regs->cond_reg |= DMA_3CLKS; \
234 dma->running = 0; \
235} while(0)
236
237
238#endif /* !CONFIG_SUN3 */
239
240#endif /* !(__M68K_DVMA_H) */
diff --git a/arch/m68k/include/asm/elf.h b/arch/m68k/include/asm/elf.h
new file mode 100644
index 000000000000..04ce488bc63f
--- /dev/null
+++ b/arch/m68k/include/asm/elf.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "elf_no.h"
3#else
4#include "elf_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/elf_mm.h b/arch/m68k/include/asm/elf_mm.h
new file mode 100644
index 000000000000..0b0f49eb876b
--- /dev/null
+++ b/arch/m68k/include/asm/elf_mm.h
@@ -0,0 +1,119 @@
1#ifndef __ASMm68k_ELF_H
2#define __ASMm68k_ELF_H
3
4/*
5 * ELF register definitions..
6 */
7
8#include <asm/ptrace.h>
9#include <asm/user.h>
10
11/*
12 * 68k ELF relocation types
13 */
14#define R_68K_NONE 0
15#define R_68K_32 1
16#define R_68K_16 2
17#define R_68K_8 3
18#define R_68K_PC32 4
19#define R_68K_PC16 5
20#define R_68K_PC8 6
21#define R_68K_GOT32 7
22#define R_68K_GOT16 8
23#define R_68K_GOT8 9
24#define R_68K_GOT32O 10
25#define R_68K_GOT16O 11
26#define R_68K_GOT8O 12
27#define R_68K_PLT32 13
28#define R_68K_PLT16 14
29#define R_68K_PLT8 15
30#define R_68K_PLT32O 16
31#define R_68K_PLT16O 17
32#define R_68K_PLT8O 18
33#define R_68K_COPY 19
34#define R_68K_GLOB_DAT 20
35#define R_68K_JMP_SLOT 21
36#define R_68K_RELATIVE 22
37
38typedef unsigned long elf_greg_t;
39
40#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t))
41typedef elf_greg_t elf_gregset_t[ELF_NGREG];
42
43typedef struct user_m68kfp_struct elf_fpregset_t;
44
45/*
46 * This is used to ensure we don't load something for the wrong architecture.
47 */
48#define elf_check_arch(x) ((x)->e_machine == EM_68K)
49
50/*
51 * These are used to set parameters in the core dumps.
52 */
53#define ELF_CLASS ELFCLASS32
54#define ELF_DATA ELFDATA2MSB
55#define ELF_ARCH EM_68K
56
57/* For SVR4/m68k the function pointer to be registered with `atexit' is
58 passed in %a1. Although my copy of the ABI has no such statement, it
59 is actually used on ASV. */
60#define ELF_PLAT_INIT(_r, load_addr) _r->a1 = 0
61
62#define USE_ELF_CORE_DUMP
63#ifndef CONFIG_SUN3
64#define ELF_EXEC_PAGESIZE 4096
65#else
66#define ELF_EXEC_PAGESIZE 8192
67#endif
68
69/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
70 use of this is to invoke "./ld.so someprog" to test out a new version of
71 the loader. We need to make sure that it is out of the way of the program
72 that it will "exec", and that there is sufficient room for the brk. */
73
74#ifndef CONFIG_SUN3
75#define ELF_ET_DYN_BASE 0xD0000000UL
76#else
77#define ELF_ET_DYN_BASE 0x0D800000UL
78#endif
79
80#define ELF_CORE_COPY_REGS(pr_reg, regs) \
81 /* Bleech. */ \
82 pr_reg[0] = regs->d1; \
83 pr_reg[1] = regs->d2; \
84 pr_reg[2] = regs->d3; \
85 pr_reg[3] = regs->d4; \
86 pr_reg[4] = regs->d5; \
87 pr_reg[7] = regs->a0; \
88 pr_reg[8] = regs->a1; \
89 pr_reg[9] = regs->a2; \
90 pr_reg[14] = regs->d0; \
91 pr_reg[15] = rdusp(); \
92 pr_reg[16] = regs->orig_d0; \
93 pr_reg[17] = regs->sr; \
94 pr_reg[18] = regs->pc; \
95 pr_reg[19] = (regs->format << 12) | regs->vector; \
96 { \
97 struct switch_stack *sw = ((struct switch_stack *)regs) - 1; \
98 pr_reg[5] = sw->d6; \
99 pr_reg[6] = sw->d7; \
100 pr_reg[10] = sw->a3; \
101 pr_reg[11] = sw->a4; \
102 pr_reg[12] = sw->a5; \
103 pr_reg[13] = sw->a6; \
104 }
105
106/* This yields a mask that user programs can use to figure out what
107 instruction set this cpu supports. */
108
109#define ELF_HWCAP (0)
110
111/* This yields a string that ld.so will use to load implementation
112 specific libraries for optimization. This is more specific in
113 intent than poking at uname or /proc/cpuinfo. */
114
115#define ELF_PLATFORM (NULL)
116
117#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
118
119#endif
diff --git a/arch/m68knommu/include/asm/elf.h b/arch/m68k/include/asm/elf_no.h
index b8046837f384..b8046837f384 100644
--- a/arch/m68knommu/include/asm/elf.h
+++ b/arch/m68k/include/asm/elf_no.h
diff --git a/arch/m68knommu/include/asm/elia.h b/arch/m68k/include/asm/elia.h
index e037d4e2de33..e037d4e2de33 100644
--- a/arch/m68knommu/include/asm/elia.h
+++ b/arch/m68k/include/asm/elia.h
diff --git a/arch/m68knommu/include/asm/emergency-restart.h b/arch/m68k/include/asm/emergency-restart.h
index 108d8c48e42e..108d8c48e42e 100644
--- a/arch/m68knommu/include/asm/emergency-restart.h
+++ b/arch/m68k/include/asm/emergency-restart.h
diff --git a/arch/m68k/include/asm/entry.h b/arch/m68k/include/asm/entry.h
new file mode 100644
index 000000000000..876eec6f2b52
--- /dev/null
+++ b/arch/m68k/include/asm/entry.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "entry_no.h"
3#else
4#include "entry_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/entry_mm.h b/arch/m68k/include/asm/entry_mm.h
new file mode 100644
index 000000000000..5202f5a5b420
--- /dev/null
+++ b/arch/m68k/include/asm/entry_mm.h
@@ -0,0 +1,137 @@
1#ifndef __M68K_ENTRY_H
2#define __M68K_ENTRY_H
3
4#include <asm/setup.h>
5#include <asm/page.h>
6
7/*
8 * Stack layout in 'ret_from_exception':
9 *
10 * This allows access to the syscall arguments in registers d1-d5
11 *
12 * 0(sp) - d1
13 * 4(sp) - d2
14 * 8(sp) - d3
15 * C(sp) - d4
16 * 10(sp) - d5
17 * 14(sp) - a0
18 * 18(sp) - a1
19 * 1C(sp) - a2
20 * 20(sp) - d0
21 * 24(sp) - orig_d0
22 * 28(sp) - stack adjustment
23 * 2C(sp) - sr
24 * 2E(sp) - pc
25 * 32(sp) - format & vector
26 */
27
28/*
29 * 97/05/14 Andreas: Register %a2 is now set to the current task throughout
30 * the whole kernel.
31 */
32
33/* the following macro is used when enabling interrupts */
34#if defined(MACH_ATARI_ONLY)
35 /* block out HSYNC on the atari */
36#define ALLOWINT (~0x400)
37#define MAX_NOINT_IPL 3
38#else
39 /* portable version */
40#define ALLOWINT (~0x700)
41#define MAX_NOINT_IPL 0
42#endif /* machine compilation types */
43
44#ifdef __ASSEMBLY__
45
46#define curptr a2
47
48LFLUSH_I_AND_D = 0x00000808
49LSIGTRAP = 5
50
51/* process bits for task_struct.ptrace */
52PT_TRACESYS_OFF = 3
53PT_TRACESYS_BIT = 1
54PT_PTRACED_OFF = 3
55PT_PTRACED_BIT = 0
56PT_DTRACE_OFF = 3
57PT_DTRACE_BIT = 2
58
59#define SAVE_ALL_INT save_all_int
60#define SAVE_ALL_SYS save_all_sys
61#define RESTORE_ALL restore_all
62/*
63 * This defines the normal kernel pt-regs layout.
64 *
65 * regs a3-a6 and d6-d7 are preserved by C code
66 * the kernel doesn't mess with usp unless it needs to
67 */
68
69/*
70 * a -1 in the orig_d0 field signifies
71 * that the stack frame is NOT for syscall
72 */
73.macro save_all_int
74 clrl %sp@- | stk_adj
75 pea -1:w | orig d0
76 movel %d0,%sp@- | d0
77 moveml %d1-%d5/%a0-%a1/%curptr,%sp@-
78.endm
79
80.macro save_all_sys
81 clrl %sp@- | stk_adj
82 movel %d0,%sp@- | orig d0
83 movel %d0,%sp@- | d0
84 moveml %d1-%d5/%a0-%a1/%curptr,%sp@-
85.endm
86
87.macro restore_all
88 moveml %sp@+,%a0-%a1/%curptr/%d1-%d5
89 movel %sp@+,%d0
90 addql #4,%sp | orig d0
91 addl %sp@+,%sp | stk adj
92 rte
93.endm
94
95#define SWITCH_STACK_SIZE (6*4+4) /* includes return address */
96
97#define SAVE_SWITCH_STACK save_switch_stack
98#define RESTORE_SWITCH_STACK restore_switch_stack
99#define GET_CURRENT(tmp) get_current tmp
100
101.macro save_switch_stack
102 moveml %a3-%a6/%d6-%d7,%sp@-
103.endm
104
105.macro restore_switch_stack
106 moveml %sp@+,%a3-%a6/%d6-%d7
107.endm
108
109.macro get_current reg=%d0
110 movel %sp,\reg
111 andw #-THREAD_SIZE,\reg
112 movel \reg,%curptr
113 movel %curptr@,%curptr
114.endm
115
116#else /* C source */
117
118#define STR(X) STR1(X)
119#define STR1(X) #X
120
121#define PT_OFF_ORIG_D0 0x24
122#define PT_OFF_FORMATVEC 0x32
123#define PT_OFF_SR 0x2C
124#define SAVE_ALL_INT \
125 "clrl %%sp@-;" /* stk_adj */ \
126 "pea -1:w;" /* orig d0 = -1 */ \
127 "movel %%d0,%%sp@-;" /* d0 */ \
128 "moveml %%d1-%%d5/%%a0-%%a2,%%sp@-"
129#define GET_CURRENT(tmp) \
130 "movel %%sp,"#tmp"\n\t" \
131 "andw #-"STR(THREAD_SIZE)","#tmp"\n\t" \
132 "movel "#tmp",%%a2\n\t" \
133 "movel %%a2@,%%a2"
134
135#endif
136
137#endif /* __M68K_ENTRY_H */
diff --git a/arch/m68knommu/include/asm/entry.h b/arch/m68k/include/asm/entry_no.h
index c2553d26273d..c2553d26273d 100644
--- a/arch/m68knommu/include/asm/entry.h
+++ b/arch/m68k/include/asm/entry_no.h
diff --git a/arch/m68k/include/asm/errno.h b/arch/m68k/include/asm/errno.h
new file mode 100644
index 000000000000..0d4e188d6ef6
--- /dev/null
+++ b/arch/m68k/include/asm/errno.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_ERRNO_H
2#define _M68K_ERRNO_H
3
4#include <asm-generic/errno.h>
5
6#endif /* _M68K_ERRNO_H */
diff --git a/arch/m68k/include/asm/fb.h b/arch/m68k/include/asm/fb.h
new file mode 100644
index 000000000000..97bcaefd2064
--- /dev/null
+++ b/arch/m68k/include/asm/fb.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "fb_no.h"
3#else
4#include "fb_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/fb_mm.h b/arch/m68k/include/asm/fb_mm.h
new file mode 100644
index 000000000000..380b97ae8157
--- /dev/null
+++ b/arch/m68k/include/asm/fb_mm.h
@@ -0,0 +1,34 @@
1#ifndef _ASM_FB_H_
2#define _ASM_FB_H_
3
4#include <linux/fb.h>
5#include <linux/fs.h>
6#include <asm/page.h>
7#include <asm/setup.h>
8
9#ifdef CONFIG_SUN3
10static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
11 unsigned long off)
12{
13 pgprot_val(vma->vm_page_prot) |= SUN3_PAGE_NOCACHE;
14}
15#else
16static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
17 unsigned long off)
18{
19 if (CPU_IS_020_OR_030)
20 pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE030;
21 if (CPU_IS_040_OR_060) {
22 pgprot_val(vma->vm_page_prot) &= _CACHEMASK040;
23 /* Use no-cache mode, serialized */
24 pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE_S;
25 }
26}
27#endif /* CONFIG_SUN3 */
28
29static inline int fb_is_primary_device(struct fb_info *info)
30{
31 return 0;
32}
33
34#endif /* _ASM_FB_H_ */
diff --git a/arch/m68knommu/include/asm/fb.h b/arch/m68k/include/asm/fb_no.h
index c7df38030992..c7df38030992 100644
--- a/arch/m68knommu/include/asm/fb.h
+++ b/arch/m68k/include/asm/fb_no.h
diff --git a/arch/m68k/include/asm/fbio.h b/arch/m68k/include/asm/fbio.h
new file mode 100644
index 000000000000..b9215a0907d3
--- /dev/null
+++ b/arch/m68k/include/asm/fbio.h
@@ -0,0 +1,330 @@
1#ifndef __LINUX_FBIO_H
2#define __LINUX_FBIO_H
3
4#include <linux/compiler.h>
5#include <linux/types.h>
6
7/* Constants used for fbio SunOS compatibility */
8/* (C) 1996 Miguel de Icaza */
9
10/* Frame buffer types */
11#define FBTYPE_NOTYPE -1
12#define FBTYPE_SUN1BW 0 /* mono */
13#define FBTYPE_SUN1COLOR 1
14#define FBTYPE_SUN2BW 2
15#define FBTYPE_SUN2COLOR 3
16#define FBTYPE_SUN2GP 4
17#define FBTYPE_SUN5COLOR 5
18#define FBTYPE_SUN3COLOR 6
19#define FBTYPE_MEMCOLOR 7
20#define FBTYPE_SUN4COLOR 8
21
22#define FBTYPE_NOTSUN1 9
23#define FBTYPE_NOTSUN2 10
24#define FBTYPE_NOTSUN3 11
25
26#define FBTYPE_SUNFAST_COLOR 12 /* cg6 */
27#define FBTYPE_SUNROP_COLOR 13
28#define FBTYPE_SUNFB_VIDEO 14
29#define FBTYPE_SUNGIFB 15
30#define FBTYPE_SUNGPLAS 16
31#define FBTYPE_SUNGP3 17
32#define FBTYPE_SUNGT 18
33#define FBTYPE_SUNLEO 19 /* zx Leo card */
34#define FBTYPE_MDICOLOR 20 /* cg14 */
35#define FBTYPE_TCXCOLOR 21 /* SUNW,tcx card */
36
37#define FBTYPE_LASTPLUSONE 21 /* This is not last + 1 in fact... */
38
39/* Does not seem to be listed in the Sun file either */
40#define FBTYPE_CREATOR 22
41#define FBTYPE_PCI_IGA1682 23
42#define FBTYPE_P9100COLOR 24
43
44#define FBTYPE_PCI_GENERIC 1000
45#define FBTYPE_PCI_MACH64 1001
46
47/* fbio ioctls */
48/* Returned by FBIOGTYPE */
49struct fbtype {
50 int fb_type; /* fb type, see above */
51 int fb_height; /* pixels */
52 int fb_width; /* pixels */
53 int fb_depth;
54 int fb_cmsize; /* color map entries */
55 int fb_size; /* fb size in bytes */
56};
57#define FBIOGTYPE _IOR('F', 0, struct fbtype)
58
59struct fbcmap {
60 int index; /* first element (0 origin) */
61 int count;
62 unsigned char __user *red;
63 unsigned char __user *green;
64 unsigned char __user *blue;
65};
66
67#ifdef __KERNEL__
68#define FBIOPUTCMAP_SPARC _IOW('F', 3, struct fbcmap)
69#define FBIOGETCMAP_SPARC _IOW('F', 4, struct fbcmap)
70#else
71#define FBIOPUTCMAP _IOW('F', 3, struct fbcmap)
72#define FBIOGETCMAP _IOW('F', 4, struct fbcmap)
73#endif
74
75/* # of device specific values */
76#define FB_ATTR_NDEVSPECIFIC 8
77/* # of possible emulations */
78#define FB_ATTR_NEMUTYPES 4
79
80struct fbsattr {
81 int flags;
82 int emu_type; /* -1 if none */
83 int dev_specific[FB_ATTR_NDEVSPECIFIC];
84};
85
86struct fbgattr {
87 int real_type; /* real frame buffer type */
88 int owner; /* unknown */
89 struct fbtype fbtype; /* real frame buffer fbtype */
90 struct fbsattr sattr;
91 int emu_types[FB_ATTR_NEMUTYPES]; /* supported emulations */
92};
93#define FBIOSATTR _IOW('F', 5, struct fbgattr) /* Unsupported: */
94#define FBIOGATTR _IOR('F', 6, struct fbgattr) /* supported */
95
96#define FBIOSVIDEO _IOW('F', 7, int)
97#define FBIOGVIDEO _IOR('F', 8, int)
98
99struct fbcursor {
100 short set; /* what to set, choose from the list above */
101 short enable; /* cursor on/off */
102 struct fbcurpos pos; /* cursor position */
103 struct fbcurpos hot; /* cursor hot spot */
104 struct fbcmap cmap; /* color map info */
105 struct fbcurpos size; /* cursor bit map size */
106 char __user *image; /* cursor image bits */
107 char __user *mask; /* cursor mask bits */
108};
109
110/* set/get cursor attributes/shape */
111#define FBIOSCURSOR _IOW('F', 24, struct fbcursor)
112#define FBIOGCURSOR _IOWR('F', 25, struct fbcursor)
113
114/* set/get cursor position */
115#define FBIOSCURPOS _IOW('F', 26, struct fbcurpos)
116#define FBIOGCURPOS _IOW('F', 27, struct fbcurpos)
117
118/* get max cursor size */
119#define FBIOGCURMAX _IOR('F', 28, struct fbcurpos)
120
121/* wid manipulation */
122struct fb_wid_alloc {
123#define FB_WID_SHARED_8 0
124#define FB_WID_SHARED_24 1
125#define FB_WID_DBL_8 2
126#define FB_WID_DBL_24 3
127 __u32 wa_type;
128 __s32 wa_index; /* Set on return */
129 __u32 wa_count;
130};
131struct fb_wid_item {
132 __u32 wi_type;
133 __s32 wi_index;
134 __u32 wi_attrs;
135 __u32 wi_values[32];
136};
137struct fb_wid_list {
138 __u32 wl_flags;
139 __u32 wl_count;
140 struct fb_wid_item *wl_list;
141};
142
143#define FBIO_WID_ALLOC _IOWR('F', 30, struct fb_wid_alloc)
144#define FBIO_WID_FREE _IOW('F', 31, struct fb_wid_alloc)
145#define FBIO_WID_PUT _IOW('F', 32, struct fb_wid_list)
146#define FBIO_WID_GET _IOWR('F', 33, struct fb_wid_list)
147
148/* Creator ioctls */
149#define FFB_IOCTL ('F'<<8)
150#define FFB_SYS_INFO (FFB_IOCTL|80)
151#define FFB_CLUTREAD (FFB_IOCTL|81)
152#define FFB_CLUTPOST (FFB_IOCTL|82)
153#define FFB_SETDIAGMODE (FFB_IOCTL|83)
154#define FFB_GETMONITORID (FFB_IOCTL|84)
155#define FFB_GETVIDEOMODE (FFB_IOCTL|85)
156#define FFB_SETVIDEOMODE (FFB_IOCTL|86)
157#define FFB_SETSERVER (FFB_IOCTL|87)
158#define FFB_SETOVCTL (FFB_IOCTL|88)
159#define FFB_GETOVCTL (FFB_IOCTL|89)
160#define FFB_GETSAXNUM (FFB_IOCTL|90)
161#define FFB_FBDEBUG (FFB_IOCTL|91)
162
163/* Cg14 ioctls */
164#define MDI_IOCTL ('M'<<8)
165#define MDI_RESET (MDI_IOCTL|1)
166#define MDI_GET_CFGINFO (MDI_IOCTL|2)
167#define MDI_SET_PIXELMODE (MDI_IOCTL|3)
168# define MDI_32_PIX 32
169# define MDI_16_PIX 16
170# define MDI_8_PIX 8
171
172struct mdi_cfginfo {
173 int mdi_ncluts; /* Number of implemented CLUTs in this MDI */
174 int mdi_type; /* FBTYPE name */
175 int mdi_height; /* height */
176 int mdi_width; /* widht */
177 int mdi_size; /* available ram */
178 int mdi_mode; /* 8bpp, 16bpp or 32bpp */
179 int mdi_pixfreq; /* pixel clock (from PROM) */
180};
181
182/* SparcLinux specific ioctl for the MDI, should be replaced for
183 * the SET_XLUT/SET_CLUTn ioctls instead
184 */
185#define MDI_CLEAR_XLUT (MDI_IOCTL|9)
186
187/* leo & ffb ioctls */
188struct fb_clut_alloc {
189 __u32 clutid; /* Set on return */
190 __u32 flag;
191 __u32 index;
192};
193
194struct fb_clut {
195#define FB_CLUT_WAIT 0x00000001 /* Not yet implemented */
196 __u32 flag;
197 __u32 clutid;
198 __u32 offset;
199 __u32 count;
200 char * red;
201 char * green;
202 char * blue;
203};
204
205struct fb_clut32 {
206 __u32 flag;
207 __u32 clutid;
208 __u32 offset;
209 __u32 count;
210 __u32 red;
211 __u32 green;
212 __u32 blue;
213};
214
215#define LEO_CLUTALLOC _IOWR('L', 53, struct fb_clut_alloc)
216#define LEO_CLUTFREE _IOW('L', 54, struct fb_clut_alloc)
217#define LEO_CLUTREAD _IOW('L', 55, struct fb_clut)
218#define LEO_CLUTPOST _IOW('L', 56, struct fb_clut)
219#define LEO_SETGAMMA _IOW('L', 68, int) /* Not yet implemented */
220#define LEO_GETGAMMA _IOR('L', 69, int) /* Not yet implemented */
221
222#ifdef __KERNEL__
223/* Addresses on the fd of a cgsix that are mappable */
224#define CG6_FBC 0x70000000
225#define CG6_TEC 0x70001000
226#define CG6_BTREGS 0x70002000
227#define CG6_FHC 0x70004000
228#define CG6_THC 0x70005000
229#define CG6_ROM 0x70006000
230#define CG6_RAM 0x70016000
231#define CG6_DHC 0x80000000
232
233#define CG3_MMAP_OFFSET 0x4000000
234
235/* Addresses on the fd of a tcx that are mappable */
236#define TCX_RAM8BIT 0x00000000
237#define TCX_RAM24BIT 0x01000000
238#define TCX_UNK3 0x10000000
239#define TCX_UNK4 0x20000000
240#define TCX_CONTROLPLANE 0x28000000
241#define TCX_UNK6 0x30000000
242#define TCX_UNK7 0x38000000
243#define TCX_TEC 0x70000000
244#define TCX_BTREGS 0x70002000
245#define TCX_THC 0x70004000
246#define TCX_DHC 0x70008000
247#define TCX_ALT 0x7000a000
248#define TCX_SYNC 0x7000e000
249#define TCX_UNK2 0x70010000
250
251/* CG14 definitions */
252
253/* Offsets into the OBIO space: */
254#define CG14_REGS 0 /* registers */
255#define CG14_CURSORREGS 0x1000 /* cursor registers */
256#define CG14_DACREGS 0x2000 /* DAC registers */
257#define CG14_XLUT 0x3000 /* X Look Up Table -- ??? */
258#define CG14_CLUT1 0x4000 /* Color Look Up Table */
259#define CG14_CLUT2 0x5000 /* Color Look Up Table */
260#define CG14_CLUT3 0x6000 /* Color Look Up Table */
261#define CG14_AUTO 0xf000
262
263#endif /* KERNEL */
264
265/* These are exported to userland for applications to use */
266/* Mappable offsets for the cg14: control registers */
267#define MDI_DIRECT_MAP 0x10000000
268#define MDI_CTLREG_MAP 0x20000000
269#define MDI_CURSOR_MAP 0x30000000
270#define MDI_SHDW_VRT_MAP 0x40000000
271
272/* Mappable offsets for the cg14: frame buffer resolutions */
273/* 32 bits */
274#define MDI_CHUNKY_XBGR_MAP 0x50000000
275#define MDI_CHUNKY_BGR_MAP 0x60000000
276
277/* 16 bits */
278#define MDI_PLANAR_X16_MAP 0x70000000
279#define MDI_PLANAR_C16_MAP 0x80000000
280
281/* 8 bit is done as CG3 MMAP offset */
282/* 32 bits, planar */
283#define MDI_PLANAR_X32_MAP 0x90000000
284#define MDI_PLANAR_B32_MAP 0xa0000000
285#define MDI_PLANAR_G32_MAP 0xb0000000
286#define MDI_PLANAR_R32_MAP 0xc0000000
287
288/* Mappable offsets on leo */
289#define LEO_SS0_MAP 0x00000000
290#define LEO_LC_SS0_USR_MAP 0x00800000
291#define LEO_LD_SS0_MAP 0x00801000
292#define LEO_LX_CURSOR_MAP 0x00802000
293#define LEO_SS1_MAP 0x00803000
294#define LEO_LC_SS1_USR_MAP 0x01003000
295#define LEO_LD_SS1_MAP 0x01004000
296#define LEO_UNK_MAP 0x01005000
297#define LEO_LX_KRN_MAP 0x01006000
298#define LEO_LC_SS0_KRN_MAP 0x01007000
299#define LEO_LC_SS1_KRN_MAP 0x01008000
300#define LEO_LD_GBL_MAP 0x01009000
301#define LEO_UNK2_MAP 0x0100a000
302
303#ifdef __KERNEL__
304struct fbcmap32 {
305 int index; /* first element (0 origin) */
306 int count;
307 u32 red;
308 u32 green;
309 u32 blue;
310};
311
312#define FBIOPUTCMAP32 _IOW('F', 3, struct fbcmap32)
313#define FBIOGETCMAP32 _IOW('F', 4, struct fbcmap32)
314
315struct fbcursor32 {
316 short set; /* what to set, choose from the list above */
317 short enable; /* cursor on/off */
318 struct fbcurpos pos; /* cursor position */
319 struct fbcurpos hot; /* cursor hot spot */
320 struct fbcmap32 cmap; /* color map info */
321 struct fbcurpos size; /* cursor bit map size */
322 u32 image; /* cursor image bits */
323 u32 mask; /* cursor mask bits */
324};
325
326#define FBIOSCURSOR32 _IOW('F', 24, struct fbcursor32)
327#define FBIOGCURSOR32 _IOW('F', 25, struct fbcursor32)
328#endif
329
330#endif /* __LINUX_FBIO_H */
diff --git a/arch/m68k/include/asm/fcntl.h b/arch/m68k/include/asm/fcntl.h
new file mode 100644
index 000000000000..1c369b20dc45
--- /dev/null
+++ b/arch/m68k/include/asm/fcntl.h
@@ -0,0 +1,11 @@
1#ifndef _M68K_FCNTL_H
2#define _M68K_FCNTL_H
3
4#define O_DIRECTORY 040000 /* must be a directory */
5#define O_NOFOLLOW 0100000 /* don't follow links */
6#define O_DIRECT 0200000 /* direct disk access hint - currently ignored */
7#define O_LARGEFILE 0400000
8
9#include <asm-generic/fcntl.h>
10
11#endif /* _M68K_FCNTL_H */
diff --git a/arch/m68knommu/include/asm/flat.h b/arch/m68k/include/asm/flat.h
index 814b5174a8e0..814b5174a8e0 100644
--- a/arch/m68knommu/include/asm/flat.h
+++ b/arch/m68k/include/asm/flat.h
diff --git a/arch/m68k/include/asm/floppy.h b/arch/m68k/include/asm/floppy.h
new file mode 100644
index 000000000000..697d50393dd0
--- /dev/null
+++ b/arch/m68k/include/asm/floppy.h
@@ -0,0 +1,254 @@
1/*
2 * Implementation independent bits of the Floppy driver.
3 *
4 * much of this file is derived from what was originally the Q40 floppy driver.
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 *
10 * Copyright (C) 1999, 2000, 2001
11 *
12 * Sun3x support added 2/4/2000 Sam Creasey (sammy@sammy.net)
13 *
14 */
15
16#include <asm/io.h>
17
18#include <linux/vmalloc.h>
19
20asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id);
21
22/* constants... */
23
24#undef MAX_DMA_ADDRESS
25#define MAX_DMA_ADDRESS 0x00 /* nothing like that */
26
27
28/*
29 * Again, the CMOS information doesn't work on m68k..
30 */
31#define FLOPPY0_TYPE (MACH_IS_Q40 ? 6 : 4)
32#define FLOPPY1_TYPE 0
33
34/* basically PC init + set use_virtual_dma */
35#define FDC1 m68k_floppy_init()
36
37#define N_FDC 1
38#define N_DRIVE 8
39
40
41/* vdma globals adapted from asm-i386/floppy.h */
42
43static int virtual_dma_count=0;
44static int virtual_dma_residue=0;
45static char *virtual_dma_addr=NULL;
46static int virtual_dma_mode=0;
47static int doing_pdma=0;
48
49#include <asm/sun3xflop.h>
50
51extern spinlock_t dma_spin_lock;
52
53static __inline__ unsigned long claim_dma_lock(void)
54{
55 unsigned long flags;
56 spin_lock_irqsave(&dma_spin_lock, flags);
57 return flags;
58}
59
60static __inline__ void release_dma_lock(unsigned long flags)
61{
62 spin_unlock_irqrestore(&dma_spin_lock, flags);
63}
64
65
66static __inline__ unsigned char fd_inb(int port)
67{
68 if(MACH_IS_Q40)
69 return inb_p(port);
70 else if(MACH_IS_SUN3X)
71 return sun3x_82072_fd_inb(port);
72 return 0;
73}
74
75static __inline__ void fd_outb(unsigned char value, int port)
76{
77 if(MACH_IS_Q40)
78 outb_p(value, port);
79 else if(MACH_IS_SUN3X)
80 sun3x_82072_fd_outb(value, port);
81}
82
83
84static int fd_request_irq(void)
85{
86 if(MACH_IS_Q40)
87 return request_irq(FLOPPY_IRQ, floppy_hardint,
88 IRQF_DISABLED, "floppy", floppy_hardint);
89 else if(MACH_IS_SUN3X)
90 return sun3xflop_request_irq();
91 return -ENXIO;
92}
93
94static void fd_free_irq(void)
95{
96 if(MACH_IS_Q40)
97 free_irq(FLOPPY_IRQ, floppy_hardint);
98}
99
100#define fd_request_dma() vdma_request_dma(FLOPPY_DMA,"floppy")
101#define fd_get_dma_residue() vdma_get_dma_residue(FLOPPY_DMA)
102#define fd_dma_mem_alloc(size) vdma_mem_alloc(size)
103#define fd_dma_setup(addr, size, mode, io) vdma_dma_setup(addr, size, mode, io)
104
105#define fd_enable_irq() /* nothing... */
106#define fd_disable_irq() /* nothing... */
107
108#define fd_free_dma() /* nothing */
109
110/* No 64k boundary crossing problems on Q40 - no DMA at all */
111#define CROSS_64KB(a,s) (0)
112
113#define DMA_MODE_READ 0x44 /* i386 look-alike */
114#define DMA_MODE_WRITE 0x48
115
116
117static int m68k_floppy_init(void)
118{
119 use_virtual_dma =1;
120 can_use_virtual_dma = 1;
121
122
123 if (MACH_IS_Q40)
124 return 0x3f0;
125 else if(MACH_IS_SUN3X)
126 return sun3xflop_init();
127 else
128 return -1;
129}
130
131
132static int vdma_request_dma(unsigned int dmanr, const char * device_id)
133{
134 return 0;
135}
136
137
138static int vdma_get_dma_residue(unsigned int dummy)
139{
140 return virtual_dma_count + virtual_dma_residue;
141}
142
143
144static unsigned long vdma_mem_alloc(unsigned long size)
145{
146 return (unsigned long) vmalloc(size);
147
148}
149
150static void _fd_dma_mem_free(unsigned long addr, unsigned long size)
151{
152 vfree((void *)addr);
153}
154#define fd_dma_mem_free(addr,size) _fd_dma_mem_free(addr, size)
155
156
157/* choose_dma_mode ???*/
158
159static int vdma_dma_setup(char *addr, unsigned long size, int mode, int io)
160{
161 doing_pdma = 1;
162 virtual_dma_port = (MACH_IS_Q40 ? io : 0);
163 virtual_dma_mode = (mode == DMA_MODE_WRITE);
164 virtual_dma_addr = addr;
165 virtual_dma_count = size;
166 virtual_dma_residue = 0;
167 return 0;
168}
169
170
171
172static void fd_disable_dma(void)
173{
174 doing_pdma = 0;
175 virtual_dma_residue += virtual_dma_count;
176 virtual_dma_count=0;
177}
178
179
180
181/* this is the only truly Q40 specific function */
182
183asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id)
184{
185 register unsigned char st;
186
187#undef TRACE_FLPY_INT
188#define NO_FLOPPY_ASSEMBLER
189
190#ifdef TRACE_FLPY_INT
191 static int calls=0;
192 static int bytes=0;
193 static int dma_wait=0;
194#endif
195 if(!doing_pdma) {
196 floppy_interrupt(irq, dev_id);
197 return IRQ_HANDLED;
198 }
199
200#ifdef TRACE_FLPY_INT
201 if(!calls)
202 bytes = virtual_dma_count;
203#endif
204
205 {
206 register int lcount;
207 register char *lptr;
208
209 /* serve 1st byte fast: */
210
211 st=1;
212 for(lcount=virtual_dma_count, lptr=virtual_dma_addr;
213 lcount; lcount--, lptr++) {
214 st=inb(virtual_dma_port+4) & 0xa0 ;
215 if(st != 0xa0)
216 break;
217 if(virtual_dma_mode)
218 outb_p(*lptr, virtual_dma_port+5);
219 else
220 *lptr = inb_p(virtual_dma_port+5);
221 }
222
223 virtual_dma_count = lcount;
224 virtual_dma_addr = lptr;
225 st = inb(virtual_dma_port+4);
226 }
227
228#ifdef TRACE_FLPY_INT
229 calls++;
230#endif
231 if(st == 0x20)
232 return IRQ_HANDLED;
233 if(!(st & 0x20)) {
234 virtual_dma_residue += virtual_dma_count;
235 virtual_dma_count=0;
236#ifdef TRACE_FLPY_INT
237 printk("count=%x, residue=%x calls=%d bytes=%d dma_wait=%d\n",
238 virtual_dma_count, virtual_dma_residue, calls, bytes,
239 dma_wait);
240 calls = 0;
241 dma_wait=0;
242#endif
243 doing_pdma = 0;
244 floppy_interrupt(irq, dev_id);
245 return IRQ_HANDLED;
246 }
247#ifdef TRACE_FLPY_INT
248 if(!virtual_dma_count)
249 dma_wait++;
250#endif
251 return IRQ_HANDLED;
252}
253
254#define EXTRA_FLOPPY_PARAMS
diff --git a/arch/m68k/include/asm/fpu.h b/arch/m68k/include/asm/fpu.h
new file mode 100644
index 000000000000..e19bc5ed9c37
--- /dev/null
+++ b/arch/m68k/include/asm/fpu.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "fpu_no.h"
3#else
4#include "fpu_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/fpu_mm.h b/arch/m68k/include/asm/fpu_mm.h
new file mode 100644
index 000000000000..ffb6b8cfc6d5
--- /dev/null
+++ b/arch/m68k/include/asm/fpu_mm.h
@@ -0,0 +1,21 @@
1#ifndef __M68K_FPU_H
2#define __M68K_FPU_H
3
4
5/*
6 * MAX floating point unit state size (FSAVE/FRESTORE)
7 */
8
9#if defined(CONFIG_M68020) || defined(CONFIG_M68030)
10#define FPSTATESIZE (216)
11#elif defined(CONFIG_M68040)
12#define FPSTATESIZE (96)
13#elif defined(CONFIG_M68KFPU_EMU)
14#define FPSTATESIZE (28)
15#elif defined(CONFIG_M68060)
16#define FPSTATESIZE (12)
17#else
18#define FPSTATESIZE (0)
19#endif
20
21#endif /* __M68K_FPU_H */
diff --git a/arch/m68knommu/include/asm/fpu.h b/arch/m68k/include/asm/fpu_no.h
index b16b2e4fca2a..b16b2e4fca2a 100644
--- a/arch/m68knommu/include/asm/fpu.h
+++ b/arch/m68k/include/asm/fpu_no.h
diff --git a/arch/m68knommu/include/asm/futex.h b/arch/m68k/include/asm/futex.h
index 6a332a9f099c..6a332a9f099c 100644
--- a/arch/m68knommu/include/asm/futex.h
+++ b/arch/m68k/include/asm/futex.h
diff --git a/arch/m68k/include/asm/hardirq.h b/arch/m68k/include/asm/hardirq.h
new file mode 100644
index 000000000000..56d0d5db231c
--- /dev/null
+++ b/arch/m68k/include/asm/hardirq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "hardirq_no.h"
3#else
4#include "hardirq_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/hardirq_mm.h b/arch/m68k/include/asm/hardirq_mm.h
new file mode 100644
index 000000000000..394ee946015c
--- /dev/null
+++ b/arch/m68k/include/asm/hardirq_mm.h
@@ -0,0 +1,16 @@
1#ifndef __M68K_HARDIRQ_H
2#define __M68K_HARDIRQ_H
3
4#include <linux/threads.h>
5#include <linux/cache.h>
6
7/* entry.S is sensitive to the offsets of these fields */
8typedef struct {
9 unsigned int __softirq_pending;
10} ____cacheline_aligned irq_cpustat_t;
11
12#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
13
14#define HARDIRQ_BITS 8
15
16#endif
diff --git a/arch/m68knommu/include/asm/hardirq.h b/arch/m68k/include/asm/hardirq_no.h
index bfad28149a49..bfad28149a49 100644
--- a/arch/m68knommu/include/asm/hardirq.h
+++ b/arch/m68k/include/asm/hardirq_no.h
diff --git a/arch/m68k/include/asm/hp300hw.h b/arch/m68k/include/asm/hp300hw.h
new file mode 100644
index 000000000000..d998ea67c19c
--- /dev/null
+++ b/arch/m68k/include/asm/hp300hw.h
@@ -0,0 +1,25 @@
1#ifndef _M68K_HP300HW_H
2#define _M68K_HP300HW_H
3
4extern unsigned long hp300_model;
5
6/* This information was taken from NetBSD */
7#define HP_320 (0) /* 16MHz 68020+HP MMU+16K external cache */
8#define HP_330 (1) /* 16MHz 68020+68851 MMU */
9#define HP_340 (2) /* 16MHz 68030 */
10#define HP_345 (3) /* 50MHz 68030+32K external cache */
11#define HP_350 (4) /* 25MHz 68020+HP MMU+32K external cache */
12#define HP_360 (5) /* 25MHz 68030 */
13#define HP_370 (6) /* 33MHz 68030+64K external cache */
14#define HP_375 (7) /* 50MHz 68030+32K external cache */
15#define HP_380 (8) /* 25MHz 68040 */
16#define HP_385 (9) /* 33MHz 68040 */
17
18#define HP_400 (10) /* 50MHz 68030+32K external cache */
19#define HP_425T (11) /* 25MHz 68040 - model 425t */
20#define HP_425S (12) /* 25MHz 68040 - model 425s */
21#define HP_425E (13) /* 25MHz 68040 - model 425e */
22#define HP_433T (14) /* 33MHz 68040 - model 433t */
23#define HP_433S (15) /* 33MHz 68040 - model 433s */
24
25#endif /* _M68K_HP300HW_H */
diff --git a/arch/m68k/include/asm/hw_irq.h b/arch/m68k/include/asm/hw_irq.h
new file mode 100644
index 000000000000..e19526015890
--- /dev/null
+++ b/arch/m68k/include/asm/hw_irq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "hw_irq_no.h"
3#else
4#include "hw_irq_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/hw_irq_mm.h b/arch/m68k/include/asm/hw_irq_mm.h
new file mode 100644
index 000000000000..eacef0951fbf
--- /dev/null
+++ b/arch/m68k/include/asm/hw_irq_mm.h
@@ -0,0 +1,6 @@
1#ifndef __ASM_M68K_HW_IRQ_H
2#define __ASM_M68K_HW_IRQ_H
3
4/* Dummy include. */
5
6#endif
diff --git a/arch/m68knommu/include/asm/hw_irq.h b/arch/m68k/include/asm/hw_irq_no.h
index f3ec9e5ae049..f3ec9e5ae049 100644
--- a/arch/m68knommu/include/asm/hw_irq.h
+++ b/arch/m68k/include/asm/hw_irq_no.h
diff --git a/arch/m68k/include/asm/hwtest.h b/arch/m68k/include/asm/hwtest.h
new file mode 100644
index 000000000000..402c8a4401fe
--- /dev/null
+++ b/arch/m68k/include/asm/hwtest.h
@@ -0,0 +1,15 @@
1/* Routines to test for presence/absence of hardware registers:
2 * see arch/m68k/mm/hwtest.c.
3 * -- PMM <pmaydell@chiark.greenend.org.uk> 05/1998
4 *
5 * Removed __init from decls. We might want them in modules, and
6 * the code is tiny anyway. 16/5/98 pb
7 */
8
9#ifndef __ASM_HWTEST_H
10#define __ASM_HWTEST_H
11
12extern int hwreg_present(volatile void *regp);
13extern int hwreg_write(volatile void *regp, unsigned short val);
14
15#endif
diff --git a/arch/m68k/include/asm/ide.h b/arch/m68k/include/asm/ide.h
new file mode 100644
index 000000000000..b996a3c8cff5
--- /dev/null
+++ b/arch/m68k/include/asm/ide.h
@@ -0,0 +1,130 @@
1/*
2 * linux/include/asm-m68k/ide.h
3 *
4 * Copyright (C) 1994-1996 Linus Torvalds & authors
5 */
6
7/* Copyright(c) 1996 Kars de Jong */
8/* Based on the ide driver from 1.2.13pl8 */
9
10/*
11 * Credits (alphabetical):
12 *
13 * - Bjoern Brauel
14 * - Kars de Jong
15 * - Torsten Ebeling
16 * - Dwight Engen
17 * - Thorsten Floeck
18 * - Roman Hodek
19 * - Guenther Kelleter
20 * - Chris Lawrence
21 * - Michael Rausch
22 * - Christian Sauer
23 * - Michael Schmitz
24 * - Jes Soerensen
25 * - Michael Thurm
26 * - Geert Uytterhoeven
27 */
28
29#ifndef _M68K_IDE_H
30#define _M68K_IDE_H
31
32#ifdef __KERNEL__
33
34
35#include <asm/setup.h>
36#include <asm/io.h>
37#include <asm/irq.h>
38
39#ifdef CONFIG_ATARI
40#include <linux/interrupt.h>
41#include <asm/atari_stdma.h>
42#endif
43
44#ifdef CONFIG_MAC
45#include <asm/macints.h>
46#endif
47
48/*
49 * Get rid of defs from io.h - ide has its private and conflicting versions
50 * Since so far no single m68k platform uses ISA/PCI I/O space for IDE, we
51 * always use the `raw' MMIO versions
52 */
53#undef inb
54#undef inw
55#undef insw
56#undef inl
57#undef insl
58#undef outb
59#undef outw
60#undef outsw
61#undef outl
62#undef outsl
63#undef readb
64#undef readw
65#undef readl
66#undef writeb
67#undef writew
68#undef writel
69
70#define inb in_8
71#define inw in_be16
72#define insw(port, addr, n) raw_insw((u16 *)port, addr, n)
73#define inl in_be32
74#define insl(port, addr, n) raw_insl((u32 *)port, addr, n)
75#define outb(val, port) out_8(port, val)
76#define outw(val, port) out_be16(port, val)
77#define outsw(port, addr, n) raw_outsw((u16 *)port, addr, n)
78#define outl(val, port) out_be32(port, val)
79#define outsl(port, addr, n) raw_outsl((u32 *)port, addr, n)
80#define readb in_8
81#define readw in_be16
82#define __ide_mm_insw(port, addr, n) raw_insw((u16 *)port, addr, n)
83#define readl in_be32
84#define __ide_mm_insl(port, addr, n) raw_insl((u32 *)port, addr, n)
85#define writeb(val, port) out_8(port, val)
86#define writew(val, port) out_be16(port, val)
87#define __ide_mm_outsw(port, addr, n) raw_outsw((u16 *)port, addr, n)
88#define writel(val, port) out_be32(port, val)
89#define __ide_mm_outsl(port, addr, n) raw_outsl((u32 *)port, addr, n)
90#if defined(CONFIG_ATARI) || defined(CONFIG_Q40)
91#define insw_swapw(port, addr, n) raw_insw_swapw((u16 *)port, addr, n)
92#define outsw_swapw(port, addr, n) raw_outsw_swapw((u16 *)port, addr, n)
93#endif
94
95#ifdef CONFIG_BLK_DEV_FALCON_IDE
96#define IDE_ARCH_LOCK
97
98extern int falconide_intr_lock;
99
100static __inline__ void ide_release_lock (void)
101{
102 if (MACH_IS_ATARI) {
103 if (falconide_intr_lock == 0) {
104 printk("ide_release_lock: bug\n");
105 return;
106 }
107 falconide_intr_lock = 0;
108 stdma_release();
109 }
110}
111
112static __inline__ void
113ide_get_lock(irq_handler_t handler, void *data)
114{
115 if (MACH_IS_ATARI) {
116 if (falconide_intr_lock == 0) {
117 if (in_interrupt() > 0)
118 panic( "Falcon IDE hasn't ST-DMA lock in interrupt" );
119 stdma_lock(handler, data);
120 falconide_intr_lock = 1;
121 }
122 }
123}
124#endif /* CONFIG_BLK_DEV_FALCON_IDE */
125
126#define IDE_ARCH_ACK_INTR
127#define ide_ack_intr(hwif) ((hwif)->ack_intr ? (hwif)->ack_intr(hwif) : 1)
128
129#endif /* __KERNEL__ */
130#endif /* _M68K_IDE_H */
diff --git a/arch/m68k/include/asm/idprom.h b/arch/m68k/include/asm/idprom.h
new file mode 100644
index 000000000000..160616a89e05
--- /dev/null
+++ b/arch/m68k/include/asm/idprom.h
@@ -0,0 +1,27 @@
1#ifndef _M68K_IDPROM_H
2#define _M68K_IDPROM_H
3/*
4 * idprom.h: Macros and defines for idprom routines
5 *
6 * Copyright (C) 1995,1996 David S. Miller (davem@caip.rutgers.edu)
7 */
8
9#include <linux/types.h>
10
11struct idprom {
12 u8 id_format; /* Format identifier (always 0x01) */
13 u8 id_machtype; /* Machine type */
14 u8 id_ethaddr[6]; /* Hardware ethernet address */
15 s32 id_date; /* Date of manufacture */
16 u32 id_sernum:24; /* Unique serial number */
17 u8 id_cksum; /* Checksum - xor of the data bytes */
18 u8 reserved[16];
19};
20
21extern struct idprom *idprom;
22extern void idprom_init(void);
23
24/* Sun3: in control space */
25#define SUN3_IDPROM_BASE 0x00000000
26
27#endif /* !(_M68K_IDPROM_H) */
diff --git a/arch/m68k/include/asm/intersil.h b/arch/m68k/include/asm/intersil.h
new file mode 100644
index 000000000000..f482902cac8a
--- /dev/null
+++ b/arch/m68k/include/asm/intersil.h
@@ -0,0 +1,48 @@
1#ifndef _SUN3_INTERSIL_H
2#define _SUN3_INTERSIL_H
3/* bits 0 and 1 */
4#define INTERSIL_FREQ_32K 0x00
5#define INTERSIL_FREQ_1M 0x01
6#define INTERSIL_FREQ_2M 0x02
7#define INTERSIL_FREQ_4M 0x03
8
9/* bit 2 */
10#define INTERSIL_12H_MODE 0x00
11#define INTERSIL_24H_MODE 0x04
12
13/* bit 3 */
14#define INTERSIL_STOP 0x00
15#define INTERSIL_RUN 0x08
16
17/* bit 4 */
18#define INTERSIL_INT_ENABLE 0x10
19#define INTERSIL_INT_DISABLE 0x00
20
21/* bit 5 */
22#define INTERSIL_MODE_NORMAL 0x00
23#define INTERSIL_MODE_TEST 0x20
24
25#define INTERSIL_HZ_100_MASK 0x02
26
27struct intersil_dt {
28 unsigned char csec;
29 unsigned char hour;
30 unsigned char minute;
31 unsigned char second;
32 unsigned char month;
33 unsigned char day;
34 unsigned char year;
35 unsigned char weekday;
36};
37
38struct intersil_7170 {
39 struct intersil_dt counter;
40 struct intersil_dt alarm;
41 unsigned char int_reg;
42 unsigned char cmd_reg;
43};
44
45extern volatile char* clock_va;
46#define intersil_clock ((volatile struct intersil_7170 *) clock_va)
47#define intersil_clear() (void)intersil_clock->int_reg
48#endif
diff --git a/arch/m68k/include/asm/io.h b/arch/m68k/include/asm/io.h
new file mode 100644
index 000000000000..c7210ba184ea
--- /dev/null
+++ b/arch/m68k/include/asm/io.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "io_no.h"
3#else
4#include "io_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/io_mm.h b/arch/m68k/include/asm/io_mm.h
new file mode 100644
index 000000000000..9e673e3bd434
--- /dev/null
+++ b/arch/m68k/include/asm/io_mm.h
@@ -0,0 +1,369 @@
1/*
2 * linux/include/asm-m68k/io.h
3 *
4 * 4/1/00 RZ: - rewritten to avoid clashes between ISA/PCI and other
5 * IO access
6 * - added Q40 support
7 * - added skeleton for GG-II and Amiga PCMCIA
8 * 2/3/01 RZ: - moved a few more defs into raw_io.h
9 *
10 * inX/outX should not be used by any driver unless it does
11 * ISA access. Other drivers should use function defined in raw_io.h
12 * or define its own macros on top of these.
13 *
14 * inX(),outX() are for ISA I/O
15 * isa_readX(),isa_writeX() are for ISA memory
16 */
17
18#ifndef _IO_H
19#define _IO_H
20
21#ifdef __KERNEL__
22
23#include <linux/compiler.h>
24#include <asm/raw_io.h>
25#include <asm/virtconvert.h>
26
27#include <asm-generic/iomap.h>
28
29#ifdef CONFIG_ATARI
30#include <asm/atarihw.h>
31#endif
32
33
34/*
35 * IO/MEM definitions for various ISA bridges
36 */
37
38
39#ifdef CONFIG_Q40
40
41#define q40_isa_io_base 0xff400000
42#define q40_isa_mem_base 0xff800000
43
44#define Q40_ISA_IO_B(ioaddr) (q40_isa_io_base+1+4*((unsigned long)(ioaddr)))
45#define Q40_ISA_IO_W(ioaddr) (q40_isa_io_base+ 4*((unsigned long)(ioaddr)))
46#define Q40_ISA_MEM_B(madr) (q40_isa_mem_base+1+4*((unsigned long)(madr)))
47#define Q40_ISA_MEM_W(madr) (q40_isa_mem_base+ 4*((unsigned long)(madr)))
48
49#define MULTI_ISA 0
50#endif /* Q40 */
51
52/* GG-II Zorro to ISA bridge */
53#ifdef CONFIG_GG2
54
55extern unsigned long gg2_isa_base;
56#define GG2_ISA_IO_B(ioaddr) (gg2_isa_base+1+((unsigned long)(ioaddr)*4))
57#define GG2_ISA_IO_W(ioaddr) (gg2_isa_base+ ((unsigned long)(ioaddr)*4))
58#define GG2_ISA_MEM_B(madr) (gg2_isa_base+1+(((unsigned long)(madr)*4) & 0xfffff))
59#define GG2_ISA_MEM_W(madr) (gg2_isa_base+ (((unsigned long)(madr)*4) & 0xfffff))
60
61#ifndef MULTI_ISA
62#define MULTI_ISA 0
63#else
64#undef MULTI_ISA
65#define MULTI_ISA 1
66#endif
67#endif /* GG2 */
68
69#ifdef CONFIG_AMIGA_PCMCIA
70#include <asm/amigayle.h>
71
72#define AG_ISA_IO_B(ioaddr) ( GAYLE_IO+(ioaddr)+(((ioaddr)&1)*GAYLE_ODD) )
73#define AG_ISA_IO_W(ioaddr) ( GAYLE_IO+(ioaddr) )
74
75#ifndef MULTI_ISA
76#define MULTI_ISA 0
77#else
78#undef MULTI_ISA
79#define MULTI_ISA 1
80#endif
81#endif /* AMIGA_PCMCIA */
82
83
84
85#ifdef CONFIG_ISA
86
87#if MULTI_ISA == 0
88#undef MULTI_ISA
89#endif
90
91#define ISA_TYPE_Q40 (1)
92#define ISA_TYPE_GG2 (2)
93#define ISA_TYPE_AG (3)
94
95#if defined(CONFIG_Q40) && !defined(MULTI_ISA)
96#define ISA_TYPE ISA_TYPE_Q40
97#define ISA_SEX 0
98#endif
99#if defined(CONFIG_AMIGA_PCMCIA) && !defined(MULTI_ISA)
100#define ISA_TYPE ISA_TYPE_AG
101#define ISA_SEX 1
102#endif
103#if defined(CONFIG_GG2) && !defined(MULTI_ISA)
104#define ISA_TYPE ISA_TYPE_GG2
105#define ISA_SEX 0
106#endif
107
108#ifdef MULTI_ISA
109extern int isa_type;
110extern int isa_sex;
111
112#define ISA_TYPE isa_type
113#define ISA_SEX isa_sex
114#endif
115
116/*
117 * define inline addr translation functions. Normally only one variant will
118 * be compiled in so the case statement will be optimised away
119 */
120
121static inline u8 __iomem *isa_itb(unsigned long addr)
122{
123 switch(ISA_TYPE)
124 {
125#ifdef CONFIG_Q40
126 case ISA_TYPE_Q40: return (u8 __iomem *)Q40_ISA_IO_B(addr);
127#endif
128#ifdef CONFIG_GG2
129 case ISA_TYPE_GG2: return (u8 __iomem *)GG2_ISA_IO_B(addr);
130#endif
131#ifdef CONFIG_AMIGA_PCMCIA
132 case ISA_TYPE_AG: return (u8 __iomem *)AG_ISA_IO_B(addr);
133#endif
134 default: return NULL; /* avoid warnings, just in case */
135 }
136}
137static inline u16 __iomem *isa_itw(unsigned long addr)
138{
139 switch(ISA_TYPE)
140 {
141#ifdef CONFIG_Q40
142 case ISA_TYPE_Q40: return (u16 __iomem *)Q40_ISA_IO_W(addr);
143#endif
144#ifdef CONFIG_GG2
145 case ISA_TYPE_GG2: return (u16 __iomem *)GG2_ISA_IO_W(addr);
146#endif
147#ifdef CONFIG_AMIGA_PCMCIA
148 case ISA_TYPE_AG: return (u16 __iomem *)AG_ISA_IO_W(addr);
149#endif
150 default: return NULL; /* avoid warnings, just in case */
151 }
152}
153static inline u32 __iomem *isa_itl(unsigned long addr)
154{
155 switch(ISA_TYPE)
156 {
157#ifdef CONFIG_AMIGA_PCMCIA
158 case ISA_TYPE_AG: return (u32 __iomem *)AG_ISA_IO_W(addr);
159#endif
160 default: return 0; /* avoid warnings, just in case */
161 }
162}
163static inline u8 __iomem *isa_mtb(unsigned long addr)
164{
165 switch(ISA_TYPE)
166 {
167#ifdef CONFIG_Q40
168 case ISA_TYPE_Q40: return (u8 __iomem *)Q40_ISA_MEM_B(addr);
169#endif
170#ifdef CONFIG_GG2
171 case ISA_TYPE_GG2: return (u8 __iomem *)GG2_ISA_MEM_B(addr);
172#endif
173#ifdef CONFIG_AMIGA_PCMCIA
174 case ISA_TYPE_AG: return (u8 __iomem *)addr;
175#endif
176 default: return NULL; /* avoid warnings, just in case */
177 }
178}
179static inline u16 __iomem *isa_mtw(unsigned long addr)
180{
181 switch(ISA_TYPE)
182 {
183#ifdef CONFIG_Q40
184 case ISA_TYPE_Q40: return (u16 __iomem *)Q40_ISA_MEM_W(addr);
185#endif
186#ifdef CONFIG_GG2
187 case ISA_TYPE_GG2: return (u16 __iomem *)GG2_ISA_MEM_W(addr);
188#endif
189#ifdef CONFIG_AMIGA_PCMCIA
190 case ISA_TYPE_AG: return (u16 __iomem *)addr;
191#endif
192 default: return NULL; /* avoid warnings, just in case */
193 }
194}
195
196
197#define isa_inb(port) in_8(isa_itb(port))
198#define isa_inw(port) (ISA_SEX ? in_be16(isa_itw(port)) : in_le16(isa_itw(port)))
199#define isa_inl(port) (ISA_SEX ? in_be32(isa_itl(port)) : in_le32(isa_itl(port)))
200#define isa_outb(val,port) out_8(isa_itb(port),(val))
201#define isa_outw(val,port) (ISA_SEX ? out_be16(isa_itw(port),(val)) : out_le16(isa_itw(port),(val)))
202#define isa_outl(val,port) (ISA_SEX ? out_be32(isa_itl(port),(val)) : out_le32(isa_itl(port),(val)))
203
204#define isa_readb(p) in_8(isa_mtb((unsigned long)(p)))
205#define isa_readw(p) \
206 (ISA_SEX ? in_be16(isa_mtw((unsigned long)(p))) \
207 : in_le16(isa_mtw((unsigned long)(p))))
208#define isa_writeb(val,p) out_8(isa_mtb((unsigned long)(p)),(val))
209#define isa_writew(val,p) \
210 (ISA_SEX ? out_be16(isa_mtw((unsigned long)(p)),(val)) \
211 : out_le16(isa_mtw((unsigned long)(p)),(val)))
212
213static inline void isa_delay(void)
214{
215 switch(ISA_TYPE)
216 {
217#ifdef CONFIG_Q40
218 case ISA_TYPE_Q40: isa_outb(0,0x80); break;
219#endif
220#ifdef CONFIG_GG2
221 case ISA_TYPE_GG2: break;
222#endif
223#ifdef CONFIG_AMIGA_PCMCIA
224 case ISA_TYPE_AG: break;
225#endif
226 default: break; /* avoid warnings */
227 }
228}
229
230#define isa_inb_p(p) ({u8 v=isa_inb(p);isa_delay();v;})
231#define isa_outb_p(v,p) ({isa_outb((v),(p));isa_delay();})
232#define isa_inw_p(p) ({u16 v=isa_inw(p);isa_delay();v;})
233#define isa_outw_p(v,p) ({isa_outw((v),(p));isa_delay();})
234#define isa_inl_p(p) ({u32 v=isa_inl(p);isa_delay();v;})
235#define isa_outl_p(v,p) ({isa_outl((v),(p));isa_delay();})
236
237#define isa_insb(port, buf, nr) raw_insb(isa_itb(port), (u8 *)(buf), (nr))
238#define isa_outsb(port, buf, nr) raw_outsb(isa_itb(port), (u8 *)(buf), (nr))
239
240#define isa_insw(port, buf, nr) \
241 (ISA_SEX ? raw_insw(isa_itw(port), (u16 *)(buf), (nr)) : \
242 raw_insw_swapw(isa_itw(port), (u16 *)(buf), (nr)))
243
244#define isa_outsw(port, buf, nr) \
245 (ISA_SEX ? raw_outsw(isa_itw(port), (u16 *)(buf), (nr)) : \
246 raw_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)))
247
248#define isa_insl(port, buf, nr) \
249 (ISA_SEX ? raw_insl(isa_itl(port), (u32 *)(buf), (nr)) : \
250 raw_insw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
251
252#define isa_outsl(port, buf, nr) \
253 (ISA_SEX ? raw_outsl(isa_itl(port), (u32 *)(buf), (nr)) : \
254 raw_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
255
256
257#define inb isa_inb
258#define inb_p isa_inb_p
259#define outb isa_outb
260#define outb_p isa_outb_p
261#define inw isa_inw
262#define inw_p isa_inw_p
263#define outw isa_outw
264#define outw_p isa_outw_p
265#define inl isa_inl
266#define inl_p isa_inl_p
267#define outl isa_outl
268#define outl_p isa_outl_p
269#define insb isa_insb
270#define insw isa_insw
271#define insl isa_insl
272#define outsb isa_outsb
273#define outsw isa_outsw
274#define outsl isa_outsl
275#define readb isa_readb
276#define readw isa_readw
277#define writeb isa_writeb
278#define writew isa_writew
279
280#else /* CONFIG_ISA */
281
282/*
283 * We need to define dummy functions for GENERIC_IOMAP support.
284 */
285#define inb(port) 0xff
286#define inb_p(port) 0xff
287#define outb(val,port) ((void)0)
288#define outb_p(val,port) ((void)0)
289#define inw(port) 0xffff
290#define outw(val,port) ((void)0)
291#define inl(port) 0xffffffffUL
292#define outl(val,port) ((void)0)
293
294#define insb(port,buf,nr) ((void)0)
295#define outsb(port,buf,nr) ((void)0)
296#define insw(port,buf,nr) ((void)0)
297#define outsw(port,buf,nr) ((void)0)
298#define insl(port,buf,nr) ((void)0)
299#define outsl(port,buf,nr) ((void)0)
300
301/*
302 * These should be valid on any ioremap()ed region
303 */
304#define readb(addr) in_8(addr)
305#define writeb(val,addr) out_8((addr),(val))
306#define readw(addr) in_le16(addr)
307#define writew(val,addr) out_le16((addr),(val))
308
309#endif /* CONFIG_ISA */
310
311#define readl(addr) in_le32(addr)
312#define writel(val,addr) out_le32((addr),(val))
313
314#define mmiowb()
315
316static inline void __iomem *ioremap(unsigned long physaddr, unsigned long size)
317{
318 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
319}
320static inline void __iomem *ioremap_nocache(unsigned long physaddr, unsigned long size)
321{
322 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
323}
324static inline void __iomem *ioremap_writethrough(unsigned long physaddr,
325 unsigned long size)
326{
327 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH);
328}
329static inline void __iomem *ioremap_fullcache(unsigned long physaddr,
330 unsigned long size)
331{
332 return __ioremap(physaddr, size, IOMAP_FULL_CACHING);
333}
334
335static inline void memset_io(volatile void __iomem *addr, unsigned char val, int count)
336{
337 __builtin_memset((void __force *) addr, val, count);
338}
339static inline void memcpy_fromio(void *dst, const volatile void __iomem *src, int count)
340{
341 __builtin_memcpy(dst, (void __force *) src, count);
342}
343static inline void memcpy_toio(volatile void __iomem *dst, const void *src, int count)
344{
345 __builtin_memcpy((void __force *) dst, src, count);
346}
347
348#ifndef CONFIG_SUN3
349#define IO_SPACE_LIMIT 0xffff
350#else
351#define IO_SPACE_LIMIT 0x0fffffff
352#endif
353
354#endif /* __KERNEL__ */
355
356#define __ARCH_HAS_NO_PAGE_ZERO_MAPPED 1
357
358/*
359 * Convert a physical pointer to a virtual kernel pointer for /dev/mem
360 * access
361 */
362#define xlate_dev_mem_ptr(p) __va(p)
363
364/*
365 * Convert a virtual cached pointer to an uncached pointer
366 */
367#define xlate_dev_kmem_ptr(p) p
368
369#endif /* _IO_H */
diff --git a/arch/m68knommu/include/asm/io.h b/arch/m68k/include/asm/io_no.h
index 6adef1ee2082..6adef1ee2082 100644
--- a/arch/m68knommu/include/asm/io.h
+++ b/arch/m68k/include/asm/io_no.h
diff --git a/arch/m68knommu/include/asm/ioctl.h b/arch/m68k/include/asm/ioctl.h
index b279fe06dfe5..b279fe06dfe5 100644
--- a/arch/m68knommu/include/asm/ioctl.h
+++ b/arch/m68k/include/asm/ioctl.h
diff --git a/arch/m68k/include/asm/ioctls.h b/arch/m68k/include/asm/ioctls.h
new file mode 100644
index 000000000000..b8d2f4be7fd7
--- /dev/null
+++ b/arch/m68k/include/asm/ioctls.h
@@ -0,0 +1,84 @@
1#ifndef __ARCH_M68K_IOCTLS_H__
2#define __ARCH_M68K_IOCTLS_H__
3
4#include <asm/ioctl.h>
5
6/* 0x54 is just a magic number to make these relatively unique ('T') */
7
8#define TCGETS 0x5401
9#define TCSETS 0x5402
10#define TCSETSW 0x5403
11#define TCSETSF 0x5404
12#define TCGETA 0x5405
13#define TCSETA 0x5406
14#define TCSETAW 0x5407
15#define TCSETAF 0x5408
16#define TCSBRK 0x5409
17#define TCXONC 0x540A
18#define TCFLSH 0x540B
19#define TIOCEXCL 0x540C
20#define TIOCNXCL 0x540D
21#define TIOCSCTTY 0x540E
22#define TIOCGPGRP 0x540F
23#define TIOCSPGRP 0x5410
24#define TIOCOUTQ 0x5411
25#define TIOCSTI 0x5412
26#define TIOCGWINSZ 0x5413
27#define TIOCSWINSZ 0x5414
28#define TIOCMGET 0x5415
29#define TIOCMBIS 0x5416
30#define TIOCMBIC 0x5417
31#define TIOCMSET 0x5418
32#define TIOCGSOFTCAR 0x5419
33#define TIOCSSOFTCAR 0x541A
34#define FIONREAD 0x541B
35#define TIOCINQ FIONREAD
36#define TIOCLINUX 0x541C
37#define TIOCCONS 0x541D
38#define TIOCGSERIAL 0x541E
39#define TIOCSSERIAL 0x541F
40#define TIOCPKT 0x5420
41#define FIONBIO 0x5421
42#define TIOCNOTTY 0x5422
43#define TIOCSETD 0x5423
44#define TIOCGETD 0x5424
45#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
46#define TIOCSBRK 0x5427 /* BSD compatibility */
47#define TIOCCBRK 0x5428 /* BSD compatibility */
48#define TIOCGSID 0x5429 /* Return the session ID of FD */
49#define TCGETS2 _IOR('T',0x2A, struct termios2)
50#define TCSETS2 _IOW('T',0x2B, struct termios2)
51#define TCSETSW2 _IOW('T',0x2C, struct termios2)
52#define TCSETSF2 _IOW('T',0x2D, struct termios2)
53#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
54#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
55
56#define FIONCLEX 0x5450 /* these numbers need to be adjusted. */
57#define FIOCLEX 0x5451
58#define FIOASYNC 0x5452
59#define TIOCSERCONFIG 0x5453
60#define TIOCSERGWILD 0x5454
61#define TIOCSERSWILD 0x5455
62#define TIOCGLCKTRMIOS 0x5456
63#define TIOCSLCKTRMIOS 0x5457
64#define TIOCSERGSTRUCT 0x5458 /* For debugging only */
65#define TIOCSERGETLSR 0x5459 /* Get line status register */
66#define TIOCSERGETMULTI 0x545A /* Get multiport config */
67#define TIOCSERSETMULTI 0x545B /* Set multiport config */
68
69#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
70#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
71#define FIOQSIZE 0x545E
72
73/* Used for packet mode */
74#define TIOCPKT_DATA 0
75#define TIOCPKT_FLUSHREAD 1
76#define TIOCPKT_FLUSHWRITE 2
77#define TIOCPKT_STOP 4
78#define TIOCPKT_START 8
79#define TIOCPKT_NOSTOP 16
80#define TIOCPKT_DOSTOP 32
81
82#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
83
84#endif /* __ARCH_M68K_IOCTLS_H__ */
diff --git a/arch/m68k/include/asm/ipcbuf.h b/arch/m68k/include/asm/ipcbuf.h
new file mode 100644
index 000000000000..a623ea3f0955
--- /dev/null
+++ b/arch/m68k/include/asm/ipcbuf.h
@@ -0,0 +1,29 @@
1#ifndef __m68k_IPCBUF_H__
2#define __m68k_IPCBUF_H__
3
4/*
5 * The user_ipc_perm structure for m68k architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 32-bit mode_t and seq
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct ipc64_perm
15{
16 __kernel_key_t key;
17 __kernel_uid32_t uid;
18 __kernel_gid32_t gid;
19 __kernel_uid32_t cuid;
20 __kernel_gid32_t cgid;
21 __kernel_mode_t mode;
22 unsigned short __pad1;
23 unsigned short seq;
24 unsigned short __pad2;
25 unsigned long __unused1;
26 unsigned long __unused2;
27};
28
29#endif /* __m68k_IPCBUF_H__ */
diff --git a/arch/m68k/include/asm/irq.h b/arch/m68k/include/asm/irq.h
new file mode 100644
index 000000000000..d031416595b2
--- /dev/null
+++ b/arch/m68k/include/asm/irq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "irq_no.h"
3#else
4#include "irq_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/irq_mm.h b/arch/m68k/include/asm/irq_mm.h
new file mode 100644
index 000000000000..226bfc0f21b1
--- /dev/null
+++ b/arch/m68k/include/asm/irq_mm.h
@@ -0,0 +1,125 @@
1#ifndef _M68K_IRQ_H_
2#define _M68K_IRQ_H_
3
4#include <linux/linkage.h>
5#include <linux/hardirq.h>
6#include <linux/spinlock_types.h>
7
8/*
9 * This should be the same as the max(NUM_X_SOURCES) for all the
10 * different m68k hosts compiled into the kernel.
11 * Currently the Atari has 72 and the Amiga 24, but if both are
12 * supported in the kernel it is better to make room for 72.
13 */
14#if defined(CONFIG_VME) || defined(CONFIG_SUN3) || defined(CONFIG_SUN3X)
15#define NR_IRQS 200
16#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC)
17#define NR_IRQS 72
18#elif defined(CONFIG_Q40)
19#define NR_IRQS 43
20#elif defined(CONFIG_AMIGA)
21#define NR_IRQS 32
22#elif defined(CONFIG_APOLLO)
23#define NR_IRQS 24
24#elif defined(CONFIG_HP300)
25#define NR_IRQS 8
26#else
27#define NR_IRQS 0
28#endif
29
30/*
31 * The hardirq mask has to be large enough to have
32 * space for potentially all IRQ sources in the system
33 * nesting on a single CPU:
34 */
35#if (1 << HARDIRQ_BITS) < NR_IRQS
36# error HARDIRQ_BITS is too low!
37#endif
38
39/*
40 * Interrupt source definitions
41 * General interrupt sources are the level 1-7.
42 * Adding an interrupt service routine for one of these sources
43 * results in the addition of that routine to a chain of routines.
44 * Each one is called in succession. Each individual interrupt
45 * service routine should determine if the device associated with
46 * that routine requires service.
47 */
48
49#define IRQ_SPURIOUS 0
50
51#define IRQ_AUTO_1 1 /* level 1 interrupt */
52#define IRQ_AUTO_2 2 /* level 2 interrupt */
53#define IRQ_AUTO_3 3 /* level 3 interrupt */
54#define IRQ_AUTO_4 4 /* level 4 interrupt */
55#define IRQ_AUTO_5 5 /* level 5 interrupt */
56#define IRQ_AUTO_6 6 /* level 6 interrupt */
57#define IRQ_AUTO_7 7 /* level 7 interrupt (non-maskable) */
58
59#define IRQ_USER 8
60
61extern unsigned int irq_canonicalize(unsigned int irq);
62
63struct pt_regs;
64
65/*
66 * various flags for request_irq() - the Amiga now uses the standard
67 * mechanism like all other architectures - IRQF_DISABLED and
68 * IRQF_SHARED are your friends.
69 */
70#ifndef MACH_AMIGA_ONLY
71#define IRQ_FLG_LOCK (0x0001) /* handler is not replaceable */
72#define IRQ_FLG_REPLACE (0x0002) /* replace existing handler */
73#define IRQ_FLG_FAST (0x0004)
74#define IRQ_FLG_SLOW (0x0008)
75#define IRQ_FLG_STD (0x8000) /* internally used */
76#endif
77
78/*
79 * This structure is used to chain together the ISRs for a particular
80 * interrupt source (if it supports chaining).
81 */
82typedef struct irq_node {
83 int (*handler)(int, void *);
84 void *dev_id;
85 struct irq_node *next;
86 unsigned long flags;
87 const char *devname;
88} irq_node_t;
89
90/*
91 * This structure has only 4 elements for speed reasons
92 */
93struct irq_handler {
94 int (*handler)(int, void *);
95 unsigned long flags;
96 void *dev_id;
97 const char *devname;
98};
99
100struct irq_controller {
101 const char *name;
102 spinlock_t lock;
103 int (*startup)(unsigned int irq);
104 void (*shutdown)(unsigned int irq);
105 void (*enable)(unsigned int irq);
106 void (*disable)(unsigned int irq);
107};
108
109extern int m68k_irq_startup(unsigned int);
110extern void m68k_irq_shutdown(unsigned int);
111
112/*
113 * This function returns a new irq_node_t
114 */
115extern irq_node_t *new_irq_node(void);
116
117extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int, struct pt_regs *));
118extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt,
119 void (*handler)(unsigned int, struct pt_regs *));
120extern void m68k_setup_irq_controller(struct irq_controller *, unsigned int, unsigned int);
121
122asmlinkage void m68k_handle_int(unsigned int);
123asmlinkage void __m68k_handle_int(unsigned int, struct pt_regs *);
124
125#endif /* _M68K_IRQ_H_ */
diff --git a/arch/m68knommu/include/asm/irq.h b/arch/m68k/include/asm/irq_no.h
index 9373c31ac87d..9373c31ac87d 100644
--- a/arch/m68knommu/include/asm/irq.h
+++ b/arch/m68k/include/asm/irq_no.h
diff --git a/arch/m68knommu/include/asm/irq_regs.h b/arch/m68k/include/asm/irq_regs.h
index 3dd9c0b70270..3dd9c0b70270 100644
--- a/arch/m68knommu/include/asm/irq_regs.h
+++ b/arch/m68k/include/asm/irq_regs.h
diff --git a/arch/m68knommu/include/asm/kdebug.h b/arch/m68k/include/asm/kdebug.h
index 6ece1b037665..6ece1b037665 100644
--- a/arch/m68knommu/include/asm/kdebug.h
+++ b/arch/m68k/include/asm/kdebug.h
diff --git a/arch/m68k/include/asm/kmap_types.h b/arch/m68k/include/asm/kmap_types.h
new file mode 100644
index 000000000000..045d9fd122a2
--- /dev/null
+++ b/arch/m68k/include/asm/kmap_types.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "kmap_types_no.h"
3#else
4#include "kmap_types_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/kmap_types_mm.h b/arch/m68k/include/asm/kmap_types_mm.h
new file mode 100644
index 000000000000..c843c63d3801
--- /dev/null
+++ b/arch/m68k/include/asm/kmap_types_mm.h
@@ -0,0 +1,21 @@
1#ifndef __ASM_M68K_KMAP_TYPES_H
2#define __ASM_M68K_KMAP_TYPES_H
3
4enum km_type {
5 KM_BOUNCE_READ,
6 KM_SKB_SUNRPC_DATA,
7 KM_SKB_DATA_SOFTIRQ,
8 KM_USER0,
9 KM_USER1,
10 KM_BIO_SRC_IRQ,
11 KM_BIO_DST_IRQ,
12 KM_PTE0,
13 KM_PTE1,
14 KM_IRQ0,
15 KM_IRQ1,
16 KM_SOFTIRQ0,
17 KM_SOFTIRQ1,
18 KM_TYPE_NR
19};
20
21#endif /* __ASM_M68K_KMAP_TYPES_H */
diff --git a/arch/m68knommu/include/asm/kmap_types.h b/arch/m68k/include/asm/kmap_types_no.h
index bfb6707575d1..bfb6707575d1 100644
--- a/arch/m68knommu/include/asm/kmap_types.h
+++ b/arch/m68k/include/asm/kmap_types_no.h
diff --git a/arch/m68k/include/asm/linkage.h b/arch/m68k/include/asm/linkage.h
new file mode 100644
index 000000000000..5a822bb790f7
--- /dev/null
+++ b/arch/m68k/include/asm/linkage.h
@@ -0,0 +1,7 @@
1#ifndef __ASM_LINKAGE_H
2#define __ASM_LINKAGE_H
3
4#define __ALIGN .align 4
5#define __ALIGN_STR ".align 4"
6
7#endif
diff --git a/arch/m68k/include/asm/local.h b/arch/m68k/include/asm/local.h
new file mode 100644
index 000000000000..6c259263e1f0
--- /dev/null
+++ b/arch/m68k/include/asm/local.h
@@ -0,0 +1,6 @@
1#ifndef _ASM_M68K_LOCAL_H
2#define _ASM_M68K_LOCAL_H
3
4#include <asm-generic/local.h>
5
6#endif /* _ASM_M68K_LOCAL_H */
diff --git a/arch/m68knommu/include/asm/m5206sim.h b/arch/m68k/include/asm/m5206sim.h
index 7e3594dea88b..7e3594dea88b 100644
--- a/arch/m68knommu/include/asm/m5206sim.h
+++ b/arch/m68k/include/asm/m5206sim.h
diff --git a/arch/m68knommu/include/asm/m520xsim.h b/arch/m68k/include/asm/m520xsim.h
index 49d016e6391a..49d016e6391a 100644
--- a/arch/m68knommu/include/asm/m520xsim.h
+++ b/arch/m68k/include/asm/m520xsim.h
diff --git a/arch/m68knommu/include/asm/m523xsim.h b/arch/m68k/include/asm/m523xsim.h
index bf397313e93f..bf397313e93f 100644
--- a/arch/m68knommu/include/asm/m523xsim.h
+++ b/arch/m68k/include/asm/m523xsim.h
diff --git a/arch/m68knommu/include/asm/m5249sim.h b/arch/m68k/include/asm/m5249sim.h
index 366eb8602d2f..366eb8602d2f 100644
--- a/arch/m68knommu/include/asm/m5249sim.h
+++ b/arch/m68k/include/asm/m5249sim.h
diff --git a/arch/m68knommu/include/asm/m5272sim.h b/arch/m68k/include/asm/m5272sim.h
index 6217edc21139..6217edc21139 100644
--- a/arch/m68knommu/include/asm/m5272sim.h
+++ b/arch/m68k/include/asm/m5272sim.h
diff --git a/arch/m68knommu/include/asm/m527xsim.h b/arch/m68k/include/asm/m527xsim.h
index 1f63ab3fb3e6..1f63ab3fb3e6 100644
--- a/arch/m68knommu/include/asm/m527xsim.h
+++ b/arch/m68k/include/asm/m527xsim.h
diff --git a/arch/m68knommu/include/asm/m528xsim.h b/arch/m68k/include/asm/m528xsim.h
index 28bf783a5d6d..28bf783a5d6d 100644
--- a/arch/m68knommu/include/asm/m528xsim.h
+++ b/arch/m68k/include/asm/m528xsim.h
diff --git a/arch/m68knommu/include/asm/m5307sim.h b/arch/m68k/include/asm/m5307sim.h
index 5886728409c0..5886728409c0 100644
--- a/arch/m68knommu/include/asm/m5307sim.h
+++ b/arch/m68k/include/asm/m5307sim.h
diff --git a/arch/m68knommu/include/asm/m532xsim.h b/arch/m68k/include/asm/m532xsim.h
index 1835fd20a82c..1835fd20a82c 100644
--- a/arch/m68knommu/include/asm/m532xsim.h
+++ b/arch/m68k/include/asm/m532xsim.h
diff --git a/arch/m68knommu/include/asm/m5407sim.h b/arch/m68k/include/asm/m5407sim.h
index cc22c4a53005..cc22c4a53005 100644
--- a/arch/m68knommu/include/asm/m5407sim.h
+++ b/arch/m68k/include/asm/m5407sim.h
diff --git a/arch/m68knommu/include/asm/m68360.h b/arch/m68k/include/asm/m68360.h
index eb7d39ef2855..eb7d39ef2855 100644
--- a/arch/m68knommu/include/asm/m68360.h
+++ b/arch/m68k/include/asm/m68360.h
diff --git a/arch/m68knommu/include/asm/m68360_enet.h b/arch/m68k/include/asm/m68360_enet.h
index c36f4d059203..c36f4d059203 100644
--- a/arch/m68knommu/include/asm/m68360_enet.h
+++ b/arch/m68k/include/asm/m68360_enet.h
diff --git a/arch/m68knommu/include/asm/m68360_pram.h b/arch/m68k/include/asm/m68360_pram.h
index e6088bbce93d..e6088bbce93d 100644
--- a/arch/m68knommu/include/asm/m68360_pram.h
+++ b/arch/m68k/include/asm/m68360_pram.h
diff --git a/arch/m68knommu/include/asm/m68360_quicc.h b/arch/m68k/include/asm/m68360_quicc.h
index 6d40f4d18e10..6d40f4d18e10 100644
--- a/arch/m68knommu/include/asm/m68360_quicc.h
+++ b/arch/m68k/include/asm/m68360_quicc.h
diff --git a/arch/m68knommu/include/asm/m68360_regs.h b/arch/m68k/include/asm/m68360_regs.h
index d57217ca4f27..d57217ca4f27 100644
--- a/arch/m68knommu/include/asm/m68360_regs.h
+++ b/arch/m68k/include/asm/m68360_regs.h
diff --git a/arch/m68k/include/asm/mac_asc.h b/arch/m68k/include/asm/mac_asc.h
new file mode 100644
index 000000000000..fc2e5467b41e
--- /dev/null
+++ b/arch/m68k/include/asm/mac_asc.h
@@ -0,0 +1,27 @@
1/*
2 * Apple Sound Chip
3 */
4
5#ifndef __ASM_MAC_ASC_H
6#define __ASM_MAC_ASC_H
7
8/*
9 * ASC offsets and controls
10 */
11
12#define ASC_BUF_BASE 0x00 /* RAM buffer offset */
13#define ASC_BUF_SIZE 0x800
14
15#define ASC_CONTROL 0x800
16#define ASC_CONTROL_OFF 0x00
17#define ASC_FREQ(chan,byte) ((0x810)+((chan)<<3)+(byte))
18#define ASC_ENABLE 0x801
19#define ASC_ENABLE_SAMPLE 0x02
20#define ASC_MODE 0x802
21#define ASC_MODE_SAMPLE 0x02
22
23#define ASC_VOLUME 0x806
24#define ASC_CHAN 0x807 /* ??? */
25
26
27#endif
diff --git a/arch/m68k/include/asm/mac_baboon.h b/arch/m68k/include/asm/mac_baboon.h
new file mode 100644
index 000000000000..c2a042b8c349
--- /dev/null
+++ b/arch/m68k/include/asm/mac_baboon.h
@@ -0,0 +1,32 @@
1/*
2 * Definitions for the "Baboon" custom IC on the PowerBook 190.
3 */
4
5#define BABOON_BASE (0x50F1A000) /* same as IDE controller base */
6
7#ifndef __ASSEMBLY__
8
9struct baboon {
10 char pad1[208]; /* generic IDE registers, not used here */
11 short mb_control; /* Control register:
12 * bit 5 : slot 2 power control
13 * bit 6 : slot 1 power control
14 */
15 char pad2[2];
16 short mb_status; /* (0xD4) media bay status register:
17 *
18 * bit 0: ????
19 * bit 1: IDE interrupt active?
20 * bit 2: bay status, 0 = full, 1 = empty
21 * bit 3: ????
22 */
23 char pad3[2]; /* (0xD6) not used */
24 short mb_ifr; /* (0xD8) media bay interrupt flags register:
25 *
26 * bit 0: ????
27 * bit 1: IDE controller interrupt
28 * bit 2: media bay status change interrupt
29 */
30};
31
32#endif /* __ASSEMBLY **/
diff --git a/arch/m68k/include/asm/mac_iop.h b/arch/m68k/include/asm/mac_iop.h
new file mode 100644
index 000000000000..a2c7e6fcca38
--- /dev/null
+++ b/arch/m68k/include/asm/mac_iop.h
@@ -0,0 +1,162 @@
1/*
2 * I/O Processor (IOP) defines and structures, mostly snagged from A/UX
3 * header files.
4 *
5 * The original header from which this was taken is copyrighted. I've done some
6 * rewriting (in fact my changes make this a bit more readable, IMHO) but some
7 * more should be done.
8 */
9
10/*
11 * This is the base address of the IOPs. Use this as the address of
12 * a "struct iop" (see below) to see where the actual registers fall.
13 */
14
15#define SCC_IOP_BASE_IIFX (0x50F04000)
16#define ISM_IOP_BASE_IIFX (0x50F12000)
17
18#define SCC_IOP_BASE_QUADRA (0x50F0C000)
19#define ISM_IOP_BASE_QUADRA (0x50F1E000)
20
21/* IOP status/control register bits: */
22
23#define IOP_BYPASS 0x01 /* bypass-mode hardware access */
24#define IOP_AUTOINC 0x02 /* allow autoincrement of ramhi/lo */
25#define IOP_RUN 0x04 /* set to 0 to reset IOP chip */
26#define IOP_IRQ 0x08 /* generate IRQ to IOP if 1 */
27#define IOP_INT0 0x10 /* intr priority from IOP to host */
28#define IOP_INT1 0x20 /* intr priority from IOP to host */
29#define IOP_HWINT 0x40 /* IRQ from hardware; bypass mode only */
30#define IOP_DMAINACTIVE 0x80 /* no DMA request active; bypass mode only */
31
32#define NUM_IOPS 2
33#define NUM_IOP_CHAN 7
34#define NUM_IOP_MSGS NUM_IOP_CHAN*8
35#define IOP_MSG_LEN 32
36
37/* IOP reference numbers, used by the globally-visible iop_xxx functions */
38
39#define IOP_NUM_SCC 0
40#define IOP_NUM_ISM 1
41
42/* IOP channel states */
43
44#define IOP_MSG_IDLE 0 /* idle */
45#define IOP_MSG_NEW 1 /* new message sent */
46#define IOP_MSG_RCVD 2 /* message received; processing */
47#define IOP_MSG_COMPLETE 3 /* message processing complete */
48
49/* IOP message status codes */
50
51#define IOP_MSGSTATUS_UNUSED 0 /* Unusued message structure */
52#define IOP_MSGSTATUS_WAITING 1 /* waiting for channel */
53#define IOP_MSGSTATUS_SENT 2 /* message sent, awaiting reply */
54#define IOP_MSGSTATUS_COMPLETE 3 /* message complete and reply rcvd */
55#define IOP_MSGSTATUS_UNSOL 6 /* message is unsolicited */
56
57/* IOP memory addresses of the members of the mac_iop_kernel structure. */
58
59#define IOP_ADDR_MAX_SEND_CHAN 0x0200
60#define IOP_ADDR_SEND_STATE 0x0201
61#define IOP_ADDR_PATCH_CTRL 0x021F
62#define IOP_ADDR_SEND_MSG 0x0220
63#define IOP_ADDR_MAX_RECV_CHAN 0x0300
64#define IOP_ADDR_RECV_STATE 0x0301
65#define IOP_ADDR_ALIVE 0x031F
66#define IOP_ADDR_RECV_MSG 0x0320
67
68#ifndef __ASSEMBLY__
69
70/*
71 * IOP Control registers, staggered because in usual Apple style they were
72 * too lazy to decode the A0 bit. This structure is assumed to begin at
73 * one of the xxx_IOP_BASE addresses given above.
74 */
75
76struct mac_iop {
77 __u8 ram_addr_hi; /* shared RAM address hi byte */
78 __u8 pad0;
79 __u8 ram_addr_lo; /* shared RAM address lo byte */
80 __u8 pad1;
81 __u8 status_ctrl; /* status/control register */
82 __u8 pad2[3];
83 __u8 ram_data; /* RAM data byte at ramhi/lo */
84
85 __u8 pad3[23];
86
87 /* Bypass-mode hardware access registers */
88
89 union {
90 struct { /* SCC registers */
91 __u8 sccb_cmd; /* SCC B command reg */
92 __u8 pad4;
93 __u8 scca_cmd; /* SCC A command reg */
94 __u8 pad5;
95 __u8 sccb_data; /* SCC B data */
96 __u8 pad6;
97 __u8 scca_data; /* SCC A data */
98 } scc_regs;
99
100 struct { /* ISM registers */
101 __u8 wdata; /* write a data byte */
102 __u8 pad7;
103 __u8 wmark; /* write a mark byte */
104 __u8 pad8;
105 __u8 wcrc; /* write 2-byte crc to disk */
106 __u8 pad9;
107 __u8 wparams; /* write the param regs */
108 __u8 pad10;
109 __u8 wphase; /* write the phase states & dirs */
110 __u8 pad11;
111 __u8 wsetup; /* write the setup register */
112 __u8 pad12;
113 __u8 wzeroes; /* mode reg: 1's clr bits, 0's are x */
114 __u8 pad13;
115 __u8 wones; /* mode reg: 1's set bits, 0's are x */
116 __u8 pad14;
117 __u8 rdata; /* read a data byte */
118 __u8 pad15;
119 __u8 rmark; /* read a mark byte */
120 __u8 pad16;
121 __u8 rerror; /* read the error register */
122 __u8 pad17;
123 __u8 rparams; /* read the param regs */
124 __u8 pad18;
125 __u8 rphase; /* read the phase states & dirs */
126 __u8 pad19;
127 __u8 rsetup; /* read the setup register */
128 __u8 pad20;
129 __u8 rmode; /* read the mode register */
130 __u8 pad21;
131 __u8 rhandshake; /* read the handshake register */
132 } ism_regs;
133 } b;
134};
135
136/* This structure is used to track IOP messages in the Linux kernel */
137
138struct iop_msg {
139 struct iop_msg *next; /* next message in queue or NULL */
140 uint iop_num; /* IOP number */
141 uint channel; /* channel number */
142 void *caller_priv; /* caller private data */
143 int status; /* status of this message */
144 __u8 message[IOP_MSG_LEN]; /* the message being sent/received */
145 __u8 reply[IOP_MSG_LEN]; /* the reply to the message */
146 void (*handler)(struct iop_msg *);
147 /* function to call when reply recvd */
148};
149
150extern int iop_scc_present,iop_ism_present;
151
152extern int iop_listen(uint, uint,
153 void (*handler)(struct iop_msg *),
154 const char *);
155extern int iop_send_message(uint, uint, void *, uint, __u8 *,
156 void (*)(struct iop_msg *));
157extern void iop_complete_message(struct iop_msg *);
158extern void iop_upload_code(uint, __u8 *, uint, __u16);
159extern void iop_download_code(uint, __u8 *, uint, __u16);
160extern __u8 *iop_compare_code(uint, __u8 *, uint, __u16);
161
162#endif /* __ASSEMBLY__ */
diff --git a/arch/m68k/include/asm/mac_mouse.h b/arch/m68k/include/asm/mac_mouse.h
new file mode 100644
index 000000000000..39a5c292eaee
--- /dev/null
+++ b/arch/m68k/include/asm/mac_mouse.h
@@ -0,0 +1,23 @@
1#ifndef _ASM_MAC_MOUSE_H
2#define _ASM_MAC_MOUSE_H
3
4/*
5 * linux/include/asm-m68k/mac_mouse.h
6 * header file for Macintosh ADB mouse driver
7 * 27-10-97 Michael Schmitz
8 * copied from:
9 * header file for Atari Mouse driver
10 * by Robert de Vries (robert@and.nl) on 19Jul93
11 */
12
13struct mouse_status {
14 char buttons;
15 short dx;
16 short dy;
17 int ready;
18 int active;
19 wait_queue_head_t wait;
20 struct fasync_struct *fasyncptr;
21};
22
23#endif
diff --git a/arch/m68k/include/asm/mac_oss.h b/arch/m68k/include/asm/mac_oss.h
new file mode 100644
index 000000000000..7221f7251934
--- /dev/null
+++ b/arch/m68k/include/asm/mac_oss.h
@@ -0,0 +1,94 @@
1/*
2 * OSS
3 *
4 * This is used in place of VIA2 on the IIfx.
5 */
6
7#define OSS_BASE (0x50f1a000)
8
9/*
10 * Interrupt level offsets for mac_oss->irq_level
11 */
12
13#define OSS_NUBUS0 0
14#define OSS_NUBUS1 1
15#define OSS_NUBUS2 2
16#define OSS_NUBUS3 3
17#define OSS_NUBUS4 4
18#define OSS_NUBUS5 5
19#define OSS_IOPISM 6
20#define OSS_IOPSCC 7
21#define OSS_SOUND 8
22#define OSS_SCSI 9
23#define OSS_60HZ 10
24#define OSS_VIA1 11
25#define OSS_UNUSED1 12
26#define OSS_UNUSED2 13
27#define OSS_PARITY 14
28#define OSS_UNUSED3 15
29
30#define OSS_NUM_SOURCES 16
31
32/*
33 * Pending interrupt bits in mac_oss->irq_pending
34 */
35
36#define OSS_IP_NUBUS0 0x0001
37#define OSS_IP_NUBUS1 0x0002
38#define OSS_IP_NUBUS2 0x0004
39#define OSS_IP_NUBUS3 0x0008
40#define OSS_IP_NUBUS4 0x0010
41#define OSS_IP_NUBUS5 0x0020
42#define OSS_IP_IOPISM 0x0040
43#define OSS_IP_IOPSCC 0x0080
44#define OSS_IP_SOUND 0x0100
45#define OSS_IP_SCSI 0x0200
46#define OSS_IP_60HZ 0x0400
47#define OSS_IP_VIA1 0x0800
48#define OSS_IP_UNUSED1 0x1000
49#define OSS_IP_UNUSED2 0x2000
50#define OSS_IP_PARITY 0x4000
51#define OSS_IP_UNUSED3 0x8000
52
53#define OSS_IP_NUBUS (OSS_IP_NUBUS0|OSS_IP_NUBUS1|OSS_IP_NUBUS2|OSS_IP_NUBUS3|OSS_IP_NUBUS4|OSS_IP_NUBUS5)
54
55/*
56 * Rom Control Register
57 */
58
59#define OSS_POWEROFF 0x80
60
61/*
62 * OSS Interrupt levels for various sub-systems
63 *
64 * This mapping is layed out with two things in mind: first, we try to keep
65 * things on their own levels to avoid having to do double-dispatches. Second,
66 * the levels match as closely as possible the alternate IRQ mapping mode (aka
67 * "A/UX mode") available on some VIA machines.
68 */
69
70#define OSS_IRQLEV_DISABLED 0
71#define OSS_IRQLEV_IOPISM 1 /* ADB? */
72#define OSS_IRQLEV_SCSI IRQ_AUTO_2
73#define OSS_IRQLEV_NUBUS IRQ_AUTO_3 /* keep this on its own level */
74#define OSS_IRQLEV_IOPSCC IRQ_AUTO_4 /* matches VIA alternate mapping */
75#define OSS_IRQLEV_SOUND IRQ_AUTO_5 /* matches VIA alternate mapping */
76#define OSS_IRQLEV_60HZ 6 /* matches VIA alternate mapping */
77#define OSS_IRQLEV_VIA1 IRQ_AUTO_6 /* matches VIA alternate mapping */
78#define OSS_IRQLEV_PARITY 7 /* matches VIA alternate mapping */
79
80#ifndef __ASSEMBLY__
81
82struct mac_oss {
83 __u8 irq_level[0x10]; /* [0x000-0x00f] Interrupt levels */
84 __u8 padding0[0x1F2]; /* [0x010-0x201] IO space filler */
85 __u16 irq_pending; /* [0x202-0x203] pending interrupts bits */
86 __u8 rom_ctrl; /* [0x204-0x204] ROM cntl reg (for poweroff) */
87 __u8 padding1[0x2]; /* [0x205-0x206] currently unused by A/UX */
88 __u8 ack_60hz; /* [0x207-0x207] 60 Hz ack. */
89};
90
91extern volatile struct mac_oss *oss;
92extern int oss_present;
93
94#endif /* __ASSEMBLY__ */
diff --git a/arch/m68k/include/asm/mac_psc.h b/arch/m68k/include/asm/mac_psc.h
new file mode 100644
index 000000000000..7808bb0b2323
--- /dev/null
+++ b/arch/m68k/include/asm/mac_psc.h
@@ -0,0 +1,248 @@
1/*
2 * Apple Peripheral System Controller (PSC)
3 *
4 * The PSC is used on the AV Macs to control IO functions not handled
5 * by the VIAs (Ethernet, DSP, SCC, Sound). This includes nine DMA
6 * channels.
7 *
8 * The first seven DMA channels appear to be "one-shot" and are actually
9 * sets of two channels; one member is active while the other is being
10 * configured, and then you flip the active member and start all over again.
11 * The one-shot channels are grouped together and are:
12 *
13 * 1. SCSI
14 * 2. Ethernet Read
15 * 3. Ethernet Write
16 * 4. Floppy Disk Controller
17 * 5. SCC Channel A Receive
18 * 6. SCC Channel B Receive
19 * 7. SCC Channel A Transmit
20 *
21 * The remaining two channels are handled somewhat differently. They appear
22 * to be closely tied and share one set of registers. They also seem to run
23 * continuously, although how you keep the buffer filled in this scenario is
24 * not understood as there seems to be only one input and one output buffer
25 * pointer.
26 *
27 * Much of this was extrapolated from what was known about the Ethernet
28 * registers and subsequently confirmed using MacsBug (ie by pinging the
29 * machine with easy-to-find patterns and looking for them in the DMA
30 * buffers, or by sending a file over the serial ports and finding the
31 * file in the buffers.)
32 *
33 * 1999-05-25 (jmt)
34 */
35
36#define PSC_BASE (0x50F31000)
37
38/*
39 * The IER/IFR registers work like the VIA, except that it has 4
40 * of them each on different interrupt levels, and each register
41 * set only seems to handle four interrupts instead of seven.
42 *
43 * To access a particular set of registers, add 0xn0 to the base
44 * where n = 3,4,5 or 6.
45 */
46
47#define pIFRbase 0x100
48#define pIERbase 0x104
49
50/*
51 * One-shot DMA control registers
52 */
53
54#define PSC_MYSTERY 0x804
55
56#define PSC_CTL_BASE 0xC00
57
58#define PSC_SCSI_CTL 0xC00
59#define PSC_ENETRD_CTL 0xC10
60#define PSC_ENETWR_CTL 0xC20
61#define PSC_FDC_CTL 0xC30
62#define PSC_SCCA_CTL 0xC40
63#define PSC_SCCB_CTL 0xC50
64#define PSC_SCCATX_CTL 0xC60
65
66/*
67 * DMA channels. Add +0x10 for the second channel in the set.
68 * You're supposed to use one channel while the other runs and
69 * then flip channels and do the whole thing again.
70 */
71
72#define PSC_ADDR_BASE 0x1000
73#define PSC_LEN_BASE 0x1004
74#define PSC_CMD_BASE 0x1008
75
76#define PSC_SET0 0x00
77#define PSC_SET1 0x10
78
79#define PSC_SCSI_ADDR 0x1000 /* confirmed */
80#define PSC_SCSI_LEN 0x1004 /* confirmed */
81#define PSC_SCSI_CMD 0x1008 /* confirmed */
82#define PSC_ENETRD_ADDR 0x1020 /* confirmed */
83#define PSC_ENETRD_LEN 0x1024 /* confirmed */
84#define PSC_ENETRD_CMD 0x1028 /* confirmed */
85#define PSC_ENETWR_ADDR 0x1040 /* confirmed */
86#define PSC_ENETWR_LEN 0x1044 /* confirmed */
87#define PSC_ENETWR_CMD 0x1048 /* confirmed */
88#define PSC_FDC_ADDR 0x1060 /* strongly suspected */
89#define PSC_FDC_LEN 0x1064 /* strongly suspected */
90#define PSC_FDC_CMD 0x1068 /* strongly suspected */
91#define PSC_SCCA_ADDR 0x1080 /* confirmed */
92#define PSC_SCCA_LEN 0x1084 /* confirmed */
93#define PSC_SCCA_CMD 0x1088 /* confirmed */
94#define PSC_SCCB_ADDR 0x10A0 /* confirmed */
95#define PSC_SCCB_LEN 0x10A4 /* confirmed */
96#define PSC_SCCB_CMD 0x10A8 /* confirmed */
97#define PSC_SCCATX_ADDR 0x10C0 /* confirmed */
98#define PSC_SCCATX_LEN 0x10C4 /* confirmed */
99#define PSC_SCCATX_CMD 0x10C8 /* confirmed */
100
101/*
102 * Free-running DMA registers. The only part known for sure are the bits in
103 * the control register, the buffer addresses and the buffer length. Everything
104 * else is anybody's guess.
105 *
106 * These registers seem to be mirrored every thirty-two bytes up until offset
107 * 0x300. It's safe to assume then that a new set of registers starts there.
108 */
109
110#define PSC_SND_CTL 0x200 /*
111 * [ 16-bit ]
112 * Sound (Singer?) control register.
113 *
114 * bit 0 : ????
115 * bit 1 : ????
116 * bit 2 : Set to one to enable sound
117 * output. Possibly a mute flag.
118 * bit 3 : ????
119 * bit 4 : ????
120 * bit 5 : ????
121 * bit 6 : Set to one to enable pass-thru
122 * audio. In this mode the audio data
123 * seems to appear in both the input
124 * buffer and the output buffer.
125 * bit 7 : Set to one to activate the
126 * sound input DMA or zero to
127 * disable it.
128 * bit 8 : Set to one to activate the
129 * sound output DMA or zero to
130 * disable it.
131 * bit 9 : \
132 * bit 11 : |
133 * These two bits control the sample
134 * rate. Usually set to binary 10 and
135 * MacOS 8.0 says I'm at 48 KHz. Using
136 * a binary value of 01 makes things
137 * sound about 1/2 speed (24 KHz?) and
138 * binary 00 is slower still (22 KHz?)
139 *
140 * Setting this to 0x0000 is a good way to
141 * kill all DMA at boot time so that the
142 * PSC won't overwrite the kernel image
143 * with sound data.
144 */
145
146/*
147 * 0x0202 - 0x0203 is unused. Writing there
148 * seems to clobber the control register.
149 */
150
151#define PSC_SND_SOURCE 0x204 /*
152 * [ 32-bit ]
153 * Controls input source and volume:
154 *
155 * bits 12-15 : input source volume, 0 - F
156 * bits 16-19 : unknown, always 0x5
157 * bits 20-23 : input source selection:
158 * 0x3 = CD Audio
159 * 0x4 = External Audio
160 *
161 * The volume is definitely not the general
162 * output volume as it doesn't affect the
163 * alert sound volume.
164 */
165#define PSC_SND_STATUS1 0x208 /*
166 * [ 32-bit ]
167 * Appears to be a read-only status register.
168 * The usual value is 0x00400002.
169 */
170#define PSC_SND_HUH3 0x20C /*
171 * [ 16-bit ]
172 * Unknown 16-bit value, always 0x0000.
173 */
174#define PSC_SND_BITS2GO 0x20E /*
175 * [ 16-bit ]
176 * Counts down to zero from some constant
177 * value. The value appears to be the
178 * number of _bits_ remaining before the
179 * buffer is full, which would make sense
180 * since Apple's docs say the sound DMA
181 * channels are 1 bit wide.
182 */
183#define PSC_SND_INADDR 0x210 /*
184 * [ 32-bit ]
185 * Address of the sound input DMA buffer
186 */
187#define PSC_SND_OUTADDR 0x214 /*
188 * [ 32-bit ]
189 * Address of the sound output DMA buffer
190 */
191#define PSC_SND_LEN 0x218 /*
192 * [ 16-bit ]
193 * Length of both buffers in eight-byte units.
194 */
195#define PSC_SND_HUH4 0x21A /*
196 * [ 16-bit ]
197 * Unknown, always 0x0000.
198 */
199#define PSC_SND_STATUS2 0x21C /*
200 * [ 16-bit ]
201 * Appears to e a read-only status register.
202 * The usual value is 0x0200.
203 */
204#define PSC_SND_HUH5 0x21E /*
205 * [ 16-bit ]
206 * Unknown, always 0x0000.
207 */
208
209#ifndef __ASSEMBLY__
210
211extern volatile __u8 *psc;
212extern int psc_present;
213
214/*
215 * Access functions
216 */
217
218static inline void psc_write_byte(int offset, __u8 data)
219{
220 *((volatile __u8 *)(psc + offset)) = data;
221}
222
223static inline void psc_write_word(int offset, __u16 data)
224{
225 *((volatile __u16 *)(psc + offset)) = data;
226}
227
228static inline void psc_write_long(int offset, __u32 data)
229{
230 *((volatile __u32 *)(psc + offset)) = data;
231}
232
233static inline u8 psc_read_byte(int offset)
234{
235 return *((volatile __u8 *)(psc + offset));
236}
237
238static inline u16 psc_read_word(int offset)
239{
240 return *((volatile __u16 *)(psc + offset));
241}
242
243static inline u32 psc_read_long(int offset)
244{
245 return *((volatile __u32 *)(psc + offset));
246}
247
248#endif /* __ASSEMBLY__ */
diff --git a/arch/m68k/include/asm/mac_via.h b/arch/m68k/include/asm/mac_via.h
new file mode 100644
index 000000000000..39afb438b656
--- /dev/null
+++ b/arch/m68k/include/asm/mac_via.h
@@ -0,0 +1,267 @@
1/*
2 * 6522 Versatile Interface Adapter (VIA)
3 *
4 * There are two of these on the Mac II. Some IRQ's are vectored
5 * via them as are assorted bits and bobs - eg rtc, adb. The picture
6 * is a bit incomplete as the Mac documentation doesn't cover this well
7 */
8
9#ifndef _ASM_MAC_VIA_H_
10#define _ASM_MAC_VIA_H_
11
12/*
13 * Base addresses for the VIAs. There are two in every machine,
14 * although on some machines the second is an RBV or an OSS.
15 * The OSS is different enough that it's handled separately.
16 *
17 * Do not use these values directly; use the via1 and via2 variables
18 * instead (and don't forget to check rbv_present when using via2!)
19 */
20
21#define VIA1_BASE (0x50F00000)
22#define VIA2_BASE (0x50F02000)
23#define RBV_BASE (0x50F26000)
24
25/*
26 * Not all of these are true post MacII I think.
27 * CSA: probably the ones CHRP marks as 'unused' change purposes
28 * when the IWM becomes the SWIM.
29 * http://www.rs6000.ibm.com/resource/technology/chrpio/via5.mak.html
30 * ftp://ftp.austin.ibm.com/pub/technology/spec/chrp/inwork/CHRP_IORef_1.0.pdf
31 *
32 * also, http://developer.apple.com/technotes/hw/hw_09.html claims the
33 * following changes for IIfx:
34 * VIA1A_vSccWrReq not available and that VIA1A_vSync has moved to an IOP.
35 * Also, "All of the functionality of VIA2 has been moved to other chips".
36 */
37
38#define VIA1A_vSccWrReq 0x80 /* SCC write. (input)
39 * [CHRP] SCC WREQ: Reflects the state of the
40 * Wait/Request pins from the SCC.
41 * [Macintosh Family Hardware]
42 * as CHRP on SE/30,II,IIx,IIcx,IIci.
43 * on IIfx, "0 means an active request"
44 */
45#define VIA1A_vRev8 0x40 /* Revision 8 board ???
46 * [CHRP] En WaitReqB: Lets the WaitReq_L
47 * signal from port B of the SCC appear on
48 * the PA7 input pin. Output.
49 * [Macintosh Family] On the SE/30, this
50 * is the bit to flip screen buffers.
51 * 0=alternate, 1=main.
52 * on II,IIx,IIcx,IIci,IIfx this is a bit
53 * for Rev ID. 0=II,IIx, 1=IIcx,IIci,IIfx
54 */
55#define VIA1A_vHeadSel 0x20 /* Head select for IWM.
56 * [CHRP] unused.
57 * [Macintosh Family] "Floppy disk
58 * state-control line SEL" on all but IIfx
59 */
60#define VIA1A_vOverlay 0x10 /* [Macintosh Family] On SE/30,II,IIx,IIcx
61 * this bit enables the "Overlay" address
62 * map in the address decoders as it is on
63 * reset for mapping the ROM over the reset
64 * vector. 1=use overlay map.
65 * On the IIci,IIfx it is another bit of the
66 * CPU ID: 0=normal IIci, 1=IIci with parity
67 * feature or IIfx.
68 * [CHRP] En WaitReqA: Lets the WaitReq_L
69 * signal from port A of the SCC appear
70 * on the PA7 input pin (CHRP). Output.
71 * [MkLinux] "Drive Select"
72 * (with 0x20 being 'disk head select')
73 */
74#define VIA1A_vSync 0x08 /* [CHRP] Sync Modem: modem clock select:
75 * 1: select the external serial clock to
76 * drive the SCC's /RTxCA pin.
77 * 0: Select the 3.6864MHz clock to drive
78 * the SCC cell.
79 * [Macintosh Family] Correct on all but IIfx
80 */
81
82/* Macintosh Family Hardware sez: bits 0-2 of VIA1A are volume control
83 * on Macs which had the PWM sound hardware. Reserved on newer models.
84 * On IIci,IIfx, bits 1-2 are the rest of the CPU ID:
85 * bit 2: 1=IIci, 0=IIfx
86 * bit 1: 1 on both IIci and IIfx.
87 * MkLinux sez bit 0 is 'burnin flag' in this case.
88 * CHRP sez: VIA1A bits 0-2 and 5 are 'unused': if programmed as
89 * inputs, these bits will read 0.
90 */
91#define VIA1A_vVolume 0x07 /* Audio volume mask for PWM */
92#define VIA1A_CPUID0 0x02 /* CPU id bit 0 on RBV, others */
93#define VIA1A_CPUID1 0x04 /* CPU id bit 0 on RBV, others */
94#define VIA1A_CPUID2 0x10 /* CPU id bit 0 on RBV, others */
95#define VIA1A_CPUID3 0x40 /* CPU id bit 0 on RBV, others */
96
97/* Info on VIA1B is from Macintosh Family Hardware & MkLinux.
98 * CHRP offers no info. */
99#define VIA1B_vSound 0x80 /* Sound enable (for compatibility with
100 * PWM hardware) 0=enabled.
101 * Also, on IIci w/parity, shows parity error
102 * 0=error, 1=OK. */
103#define VIA1B_vMystery 0x40 /* On IIci, parity enable. 0=enabled,1=disabled
104 * On SE/30, vertical sync interrupt enable.
105 * 0=enabled. This vSync interrupt shows up
106 * as a slot $E interrupt. */
107#define VIA1B_vADBS2 0x20 /* ADB state input bit 1 (unused on IIfx) */
108#define VIA1B_vADBS1 0x10 /* ADB state input bit 0 (unused on IIfx) */
109#define VIA1B_vADBInt 0x08 /* ADB interrupt 0=interrupt (unused on IIfx)*/
110#define VIA1B_vRTCEnb 0x04 /* Enable Real time clock. 0=enabled. */
111#define VIA1B_vRTCClk 0x02 /* Real time clock serial-clock line. */
112#define VIA1B_vRTCData 0x01 /* Real time clock serial-data line. */
113
114/* MkLinux defines the following "VIA1 Register B contents where they
115 * differ from standard VIA1". From the naming scheme, we assume they
116 * correspond to a VIA work-alike named 'EVR'. */
117#define EVRB_XCVR 0x08 /* XCVR_SESSION* */
118#define EVRB_FULL 0x10 /* VIA_FULL */
119#define EVRB_SYSES 0x20 /* SYS_SESSION */
120#define EVRB_AUXIE 0x00 /* Enable A/UX Interrupt Scheme */
121#define EVRB_AUXID 0x40 /* Disable A/UX Interrupt Scheme */
122#define EVRB_SFTWRIE 0x00 /* Software Interrupt ReQuest */
123#define EVRB_SFTWRID 0x80 /* Software Interrupt ReQuest */
124
125/*
126 * VIA2 A register is the interrupt lines raised off the nubus
127 * slots.
128 * The below info is from 'Macintosh Family Hardware.'
129 * MkLinux calls the 'IIci internal video IRQ' below the 'RBV slot 0 irq.'
130 * It also notes that the slot $9 IRQ is the 'Ethernet IRQ' and
131 * defines the 'Video IRQ' as 0x40 for the 'EVR' VIA work-alike.
132 * Perhaps OSS uses vRAM1 and vRAM2 for ADB.
133 */
134
135#define VIA2A_vRAM1 0x80 /* RAM size bit 1 (IIci: reserved) */
136#define VIA2A_vRAM0 0x40 /* RAM size bit 0 (IIci: internal video IRQ) */
137#define VIA2A_vIRQE 0x20 /* IRQ from slot $E */
138#define VIA2A_vIRQD 0x10 /* IRQ from slot $D */
139#define VIA2A_vIRQC 0x08 /* IRQ from slot $C */
140#define VIA2A_vIRQB 0x04 /* IRQ from slot $B */
141#define VIA2A_vIRQA 0x02 /* IRQ from slot $A */
142#define VIA2A_vIRQ9 0x01 /* IRQ from slot $9 */
143
144/* RAM size bits decoded as follows:
145 * bit1 bit0 size of ICs in bank A
146 * 0 0 256 kbit
147 * 0 1 1 Mbit
148 * 1 0 4 Mbit
149 * 1 1 16 Mbit
150 */
151
152/*
153 * Register B has the fun stuff in it
154 */
155
156#define VIA2B_vVBL 0x80 /* VBL output to VIA1 (60.15Hz) driven by
157 * timer T1.
158 * on IIci, parity test: 0=test mode.
159 * [MkLinux] RBV_PARODD: 1=odd,0=even. */
160#define VIA2B_vSndJck 0x40 /* External sound jack status.
161 * 0=plug is inserted. On SE/30, always 0 */
162#define VIA2B_vTfr0 0x20 /* Transfer mode bit 0 ack from NuBus */
163#define VIA2B_vTfr1 0x10 /* Transfer mode bit 1 ack from NuBus */
164#define VIA2B_vMode32 0x08 /* 24/32bit switch - doubles as cache flush
165 * on II, AMU/PMMU control.
166 * if AMU, 0=24bit to 32bit translation
167 * if PMMU, 1=PMMU is accessing page table.
168 * on SE/30 tied low.
169 * on IIx,IIcx,IIfx, unused.
170 * on IIci/RBV, cache control. 0=flush cache.
171 */
172#define VIA2B_vPower 0x04 /* Power off, 0=shut off power.
173 * on SE/30 this signal sent to PDS card. */
174#define VIA2B_vBusLk 0x02 /* Lock NuBus transactions, 0=locked.
175 * on SE/30 sent to PDS card. */
176#define VIA2B_vCDis 0x01 /* Cache control. On IIci, 1=disable cache card
177 * on others, 0=disable processor's instruction
178 * and data caches. */
179
180/* Apple sez: http://developer.apple.com/technotes/ov/ov_04.html
181 * Another example of a valid function that has no ROM support is the use
182 * of the alternate video page for page-flipping animation. Since there
183 * is no ROM call to flip pages, it is necessary to go play with the
184 * right bit in the VIA chip (6522 Versatile Interface Adapter).
185 * [CSA: don't know which one this is, but it's one of 'em!]
186 */
187
188/*
189 * 6522 registers - see databook.
190 * CSA: Assignments for VIA1 confirmed from CHRP spec.
191 */
192
193/* partial address decode. 0xYYXX : XX part for RBV, YY part for VIA */
194/* Note: 15 VIA regs, 8 RBV regs */
195
196#define vBufB 0x0000 /* [VIA/RBV] Register B */
197#define vBufAH 0x0200 /* [VIA only] Buffer A, with handshake. DON'T USE! */
198#define vDirB 0x0400 /* [VIA only] Data Direction Register B. */
199#define vDirA 0x0600 /* [VIA only] Data Direction Register A. */
200#define vT1CL 0x0800 /* [VIA only] Timer one counter low. */
201#define vT1CH 0x0a00 /* [VIA only] Timer one counter high. */
202#define vT1LL 0x0c00 /* [VIA only] Timer one latches low. */
203#define vT1LH 0x0e00 /* [VIA only] Timer one latches high. */
204#define vT2CL 0x1000 /* [VIA only] Timer two counter low. */
205#define vT2CH 0x1200 /* [VIA only] Timer two counter high. */
206#define vSR 0x1400 /* [VIA only] Shift register. */
207#define vACR 0x1600 /* [VIA only] Auxilary control register. */
208#define vPCR 0x1800 /* [VIA only] Peripheral control register. */
209 /* CHRP sez never ever to *write* this.
210 * Mac family says never to *change* this.
211 * In fact we need to initialize it once at start. */
212#define vIFR 0x1a00 /* [VIA/RBV] Interrupt flag register. */
213#define vIER 0x1c00 /* [VIA/RBV] Interrupt enable register. */
214#define vBufA 0x1e00 /* [VIA/RBV] register A (no handshake) */
215
216/* The RBV only decodes the bottom eight address lines; the VIA doesn't
217 * decode the bottom eight -- so vBufB | rBufB will always get you BufB */
218/* CSA: in fact, only bits 0,1, and 4 seem to be decoded.
219 * BUT note the values for rIER and rIFR, where the top 8 bits *do* seem
220 * to matter. In fact *all* of the top 8 bits seem to matter;
221 * setting rIER=0x1813 and rIFR=0x1803 doesn't work, either.
222 * Perhaps some sort of 'compatibility mode' is built-in? [21-May-1999]
223 */
224
225#define rBufB 0x0000 /* [VIA/RBV] Register B */
226#define rExp 0x0001 /* [RBV only] RBV future expansion (always 0) */
227#define rSIFR 0x0002 /* [RBV only] RBV slot interrupts register. */
228#define rIFR 0x1a03 /* [VIA/RBV] RBV interrupt flag register. */
229#define rMonP 0x0010 /* [RBV only] RBV video monitor type. */
230#define rChpT 0x0011 /* [RBV only] RBV test mode register (reads as 0). */
231#define rSIER 0x0012 /* [RBV only] RBV slot interrupt enables. */
232#define rIER 0x1c13 /* [VIA/RBV] RBV interrupt flag enable register. */
233#define rBufA rSIFR /* the 'slot interrupts register' is BufA on a VIA */
234
235/*
236 * Video monitor parameters, for rMonP:
237 */
238#define RBV_DEPTH 0x07 /* bits per pixel: 000=1,001=2,010=4,011=8 */
239#define RBV_MONID 0x38 /* monitor type, as below. */
240#define RBV_VIDOFF 0x40 /* 1 turns off onboard video */
241/* Supported monitor types: */
242#define MON_15BW (1<<3) /* 15" BW portrait. */
243#define MON_IIGS (2<<3) /* 12" color (modified IIGS monitor). */
244#define MON_15RGB (5<<3) /* 15" RGB portrait. */
245#define MON_12OR13 (6<<3) /* 12" BW or 13" RGB. */
246#define MON_NONE (7<<3) /* No monitor attached. */
247
248/* To clarify IER manipulations */
249#define IER_SET_BIT(b) (0x80 | (1<<(b)) )
250#define IER_CLR_BIT(b) (0x7F & (1<<(b)) )
251
252#ifndef __ASSEMBLY__
253
254extern volatile __u8 *via1,*via2;
255extern int rbv_present,via_alt_mapping;
256
257static inline int rbv_set_video_bpp(int bpp)
258{
259 char val = (bpp==1)?0:(bpp==2)?1:(bpp==4)?2:(bpp==8)?3:-1;
260 if (!rbv_present || val<0) return -1;
261 via2[rMonP] = (via2[rMonP] & ~RBV_DEPTH) | val;
262 return 0;
263}
264
265#endif /* __ASSEMBLY__ */
266
267#endif /* _ASM_MAC_VIA_H_ */
diff --git a/arch/m68k/include/asm/machdep.h b/arch/m68k/include/asm/machdep.h
new file mode 100644
index 000000000000..fc24b6fc5508
--- /dev/null
+++ b/arch/m68k/include/asm/machdep.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "machdep_no.h"
3#else
4#include "machdep_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/machdep_mm.h b/arch/m68k/include/asm/machdep_mm.h
new file mode 100644
index 000000000000..5637dcef314e
--- /dev/null
+++ b/arch/m68k/include/asm/machdep_mm.h
@@ -0,0 +1,35 @@
1#ifndef _M68K_MACHDEP_H
2#define _M68K_MACHDEP_H
3
4#include <linux/seq_file.h>
5#include <linux/interrupt.h>
6
7struct pt_regs;
8struct mktime;
9struct rtc_time;
10struct rtc_pll_info;
11struct buffer_head;
12
13extern void (*mach_sched_init) (irq_handler_t handler);
14/* machine dependent irq functions */
15extern void (*mach_init_IRQ) (void);
16extern void (*mach_get_model) (char *model);
17extern void (*mach_get_hardware_list) (struct seq_file *m);
18/* machine dependent timer functions */
19extern unsigned long (*mach_gettimeoffset)(void);
20extern int (*mach_hwclk)(int, struct rtc_time*);
21extern unsigned int (*mach_get_ss)(void);
22extern int (*mach_get_rtc_pll)(struct rtc_pll_info *);
23extern int (*mach_set_rtc_pll)(struct rtc_pll_info *);
24extern int (*mach_set_clock_mmss)(unsigned long);
25extern void (*mach_reset)( void );
26extern void (*mach_halt)( void );
27extern void (*mach_power_off)( void );
28extern unsigned long (*mach_hd_init) (unsigned long, unsigned long);
29extern void (*mach_hd_setup)(char *, int *);
30extern long mach_max_dma_address;
31extern void (*mach_heartbeat) (int);
32extern void (*mach_l2_flush) (int);
33extern void (*mach_beep) (unsigned int, unsigned int);
34
35#endif /* _M68K_MACHDEP_H */
diff --git a/arch/m68knommu/include/asm/machdep.h b/arch/m68k/include/asm/machdep_no.h
index de9f47a51cc2..de9f47a51cc2 100644
--- a/arch/m68knommu/include/asm/machdep.h
+++ b/arch/m68k/include/asm/machdep_no.h
diff --git a/arch/m68k/include/asm/machines.h b/arch/m68k/include/asm/machines.h
new file mode 100644
index 000000000000..be667e84f01b
--- /dev/null
+++ b/arch/m68k/include/asm/machines.h
@@ -0,0 +1,85 @@
1/*
2 * machines.h: Defines for taking apart the machine type value in the
3 * idprom and determining the kind of machine we are on.
4 *
5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
6 * Sun3/3x models added by David Monro (davidm@psrg.cs.usyd.edu.au)
7 */
8#ifndef _SPARC_MACHINES_H
9#define _SPARC_MACHINES_H
10
11struct Sun_Machine_Models {
12 char *name;
13 unsigned char id_machtype;
14};
15
16/* Current number of machines we know about that has an IDPROM
17 * machtype entry including one entry for the 0x80 OBP machines.
18 */
19// reduced along with table in arch/m68k/sun3/idprom.c
20// sun3 port doesn't need to know about sparc machines.
21//#define NUM_SUN_MACHINES 23
22#define NUM_SUN_MACHINES 8
23
24/* The machine type in the idprom area looks like this:
25 *
26 * ---------------
27 * | ARCH | MACH |
28 * ---------------
29 * 7 4 3 0
30 *
31 * The ARCH field determines the architecture line (sun4, sun4c, etc).
32 * The MACH field determines the machine make within that architecture.
33 */
34
35#define SM_ARCH_MASK 0xf0
36#define SM_SUN3 0x10
37#define SM_SUN4 0x20
38#define SM_SUN3X 0x40
39#define SM_SUN4C 0x50
40#define SM_SUN4M 0x70
41#define SM_SUN4M_OBP 0x80
42
43#define SM_TYP_MASK 0x0f
44/* Sun3 machines */
45#define SM_3_160 0x01 /* Sun 3/160 series */
46#define SM_3_50 0x02 /* Sun 3/50 series */
47#define SM_3_260 0x03 /* Sun 3/260 series */
48#define SM_3_110 0x04 /* Sun 3/110 series */
49#define SM_3_60 0x07 /* Sun 3/60 series */
50#define SM_3_E 0x08 /* Sun 3/E series */
51
52/* Sun3x machines */
53#define SM_3_460 0x01 /* Sun 3/460 (460,470,480) series */
54#define SM_3_80 0x02 /* Sun 3/80 series */
55
56/* Sun4 machines */
57#define SM_4_260 0x01 /* Sun 4/200 series */
58#define SM_4_110 0x02 /* Sun 4/100 series */
59#define SM_4_330 0x03 /* Sun 4/300 series */
60#define SM_4_470 0x04 /* Sun 4/400 series */
61
62/* Sun4c machines Full Name - PROM NAME */
63#define SM_4C_SS1 0x01 /* Sun4c SparcStation 1 - Sun 4/60 */
64#define SM_4C_IPC 0x02 /* Sun4c SparcStation IPC - Sun 4/40 */
65#define SM_4C_SS1PLUS 0x03 /* Sun4c SparcStation 1+ - Sun 4/65 */
66#define SM_4C_SLC 0x04 /* Sun4c SparcStation SLC - Sun 4/20 */
67#define SM_4C_SS2 0x05 /* Sun4c SparcStation 2 - Sun 4/75 */
68#define SM_4C_ELC 0x06 /* Sun4c SparcStation ELC - Sun 4/25 */
69#define SM_4C_IPX 0x07 /* Sun4c SparcStation IPX - Sun 4/50 */
70
71/* Sun4m machines, these predate the OpenBoot. These values only mean
72 * something if the value in the ARCH field is SM_SUN4M, if it is
73 * SM_SUN4M_OBP then you have the following situation:
74 * 1) You either have a sun4d, a sun4e, or a recently made sun4m.
75 * 2) You have to consult OpenBoot to determine which machine this is.
76 */
77#define SM_4M_SS60 0x01 /* Sun4m SparcSystem 600 */
78#define SM_4M_SS50 0x02 /* Sun4m SparcStation 10 */
79#define SM_4M_SS40 0x03 /* Sun4m SparcStation 5 */
80
81/* Sun4d machines -- N/A */
82/* Sun4e machines -- N/A */
83/* Sun4u machines -- N/A */
84
85#endif /* !(_SPARC_MACHINES_H) */
diff --git a/arch/m68k/include/asm/machw.h b/arch/m68k/include/asm/machw.h
new file mode 100644
index 000000000000..2b4de0c2ce4a
--- /dev/null
+++ b/arch/m68k/include/asm/machw.h
@@ -0,0 +1,49 @@
1/*
2** linux/machw.h -- This header defines some macros and pointers for
3** the various Macintosh custom hardware registers.
4**
5** Copyright 1997 by Michael Schmitz
6**
7** This file is subject to the terms and conditions of the GNU General Public
8** License. See the file COPYING in the main directory of this archive
9** for more details.
10**
11*/
12
13#ifndef _ASM_MACHW_H_
14#define _ASM_MACHW_H_
15
16/*
17 * head.S maps the videomem to VIDEOMEMBASE
18 */
19
20#define VIDEOMEMBASE 0xf0000000
21#define VIDEOMEMSIZE (4096*1024)
22#define VIDEOMEMMASK (-4096*1024)
23
24#ifndef __ASSEMBLY__
25
26#include <linux/types.h>
27
28#if 0
29/*
30** SCC Z8530
31*/
32
33#define MAC_SCC_BAS (0x50F04000)
34struct MAC_SCC
35 {
36 u_char cha_a_ctrl;
37 u_char char_dummy1;
38 u_char cha_a_data;
39 u_char char_dummy2;
40 u_char cha_b_ctrl;
41 u_char char_dummy3;
42 u_char cha_b_data;
43 };
44# define mac_scc ((*(volatile struct SCC*)MAC_SCC_BAS))
45#endif
46
47#endif /* __ASSEMBLY__ */
48
49#endif /* linux/machw.h */
diff --git a/arch/m68k/include/asm/macintosh.h b/arch/m68k/include/asm/macintosh.h
new file mode 100644
index 000000000000..05309f7e3d06
--- /dev/null
+++ b/arch/m68k/include/asm/macintosh.h
@@ -0,0 +1,135 @@
1#ifndef __ASM_MACINTOSH_H
2#define __ASM_MACINTOSH_H
3
4#include <linux/seq_file.h>
5#include <linux/interrupt.h>
6
7/*
8 * Apple Macintoshisms
9 */
10
11extern void mac_reset(void);
12extern void mac_poweroff(void);
13extern void mac_init_IRQ(void);
14extern int mac_irq_pending(unsigned int);
15
16/*
17 * Floppy driver magic hook - probably shouldnt be here
18 */
19
20extern void via1_set_head(int);
21
22/*
23 * Macintosh Table
24 */
25
26struct mac_model
27{
28 short ident;
29 char *name;
30 char adb_type;
31 char via_type;
32 char scsi_type;
33 char ide_type;
34 char scc_type;
35 char ether_type;
36 char nubus_type;
37};
38
39#define MAC_ADB_NONE 0
40#define MAC_ADB_II 1
41#define MAC_ADB_IISI 2
42#define MAC_ADB_CUDA 3
43#define MAC_ADB_PB1 4
44#define MAC_ADB_PB2 5
45#define MAC_ADB_IOP 6
46
47#define MAC_VIA_II 1
48#define MAC_VIA_IIci 2
49#define MAC_VIA_QUADRA 3
50
51#define MAC_SCSI_NONE 0
52#define MAC_SCSI_OLD 1
53#define MAC_SCSI_QUADRA 2
54#define MAC_SCSI_QUADRA2 3
55#define MAC_SCSI_QUADRA3 4
56
57#define MAC_IDE_NONE 0
58#define MAC_IDE_QUADRA 1
59#define MAC_IDE_PB 2
60#define MAC_IDE_BABOON 3
61
62#define MAC_SCC_II 1
63#define MAC_SCC_IOP 2
64#define MAC_SCC_QUADRA 3
65#define MAC_SCC_PSC 4
66
67#define MAC_ETHER_NONE 0
68#define MAC_ETHER_SONIC 1
69#define MAC_ETHER_MACE 2
70
71#define MAC_NO_NUBUS 0
72#define MAC_NUBUS 1
73
74/*
75 * Gestalt numbers
76 */
77
78#define MAC_MODEL_II 6
79#define MAC_MODEL_IIX 7
80#define MAC_MODEL_IICX 8
81#define MAC_MODEL_SE30 9
82#define MAC_MODEL_IICI 11
83#define MAC_MODEL_IIFX 13 /* And well numbered it is too */
84#define MAC_MODEL_IISI 18
85#define MAC_MODEL_LC 19
86#define MAC_MODEL_Q900 20
87#define MAC_MODEL_PB170 21
88#define MAC_MODEL_Q700 22
89#define MAC_MODEL_CLII 23 /* aka: P200 */
90#define MAC_MODEL_PB140 25
91#define MAC_MODEL_Q950 26 /* aka: WGS95 */
92#define MAC_MODEL_LCIII 27 /* aka: P450 */
93#define MAC_MODEL_PB210 29
94#define MAC_MODEL_C650 30
95#define MAC_MODEL_PB230 32
96#define MAC_MODEL_PB180 33
97#define MAC_MODEL_PB160 34
98#define MAC_MODEL_Q800 35 /* aka: WGS80 */
99#define MAC_MODEL_Q650 36
100#define MAC_MODEL_LCII 37 /* aka: P400/405/410/430 */
101#define MAC_MODEL_PB250 38
102#define MAC_MODEL_IIVI 44
103#define MAC_MODEL_P600 45 /* aka: P600CD */
104#define MAC_MODEL_IIVX 48
105#define MAC_MODEL_CCL 49 /* aka: P250 */
106#define MAC_MODEL_PB165C 50
107#define MAC_MODEL_C610 52 /* aka: WGS60 */
108#define MAC_MODEL_Q610 53
109#define MAC_MODEL_PB145 54 /* aka: PB145B */
110#define MAC_MODEL_P520 56 /* aka: LC520 */
111#define MAC_MODEL_C660 60
112#define MAC_MODEL_P460 62 /* aka: LCIII+, P466/P467 */
113#define MAC_MODEL_PB180C 71
114#define MAC_MODEL_PB520 72 /* aka: PB520C, PB540, PB540C, PB550C */
115#define MAC_MODEL_PB270C 77
116#define MAC_MODEL_Q840 78
117#define MAC_MODEL_P550 80 /* aka: LC550, P560 */
118#define MAC_MODEL_CCLII 83 /* aka: P275 */
119#define MAC_MODEL_PB165 84
120#define MAC_MODEL_PB190 85 /* aka: PB190CS */
121#define MAC_MODEL_TV 88
122#define MAC_MODEL_P475 89 /* aka: LC475, P476 */
123#define MAC_MODEL_P475F 90 /* aka: P475 w/ FPU (no LC040) */
124#define MAC_MODEL_P575 92 /* aka: LC575, P577/P578 */
125#define MAC_MODEL_Q605 94
126#define MAC_MODEL_Q605_ACC 95 /* Q605 accelerated to 33 MHz */
127#define MAC_MODEL_Q630 98 /* aka: LC630, P630/631/635/636/637/638/640 */
128#define MAC_MODEL_P588 99 /* aka: LC580, P580 */
129#define MAC_MODEL_PB280 102
130#define MAC_MODEL_PB280C 103
131#define MAC_MODEL_PB150 115
132
133extern struct mac_model *macintosh_config;
134
135#endif
diff --git a/arch/m68k/include/asm/macints.h b/arch/m68k/include/asm/macints.h
new file mode 100644
index 000000000000..679c48ab4407
--- /dev/null
+++ b/arch/m68k/include/asm/macints.h
@@ -0,0 +1,155 @@
1/*
2** macints.h -- Macintosh Linux interrupt handling structs and prototypes
3**
4** Copyright 1997 by Michael Schmitz
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10*/
11
12#ifndef _ASM_MACINTS_H_
13#define _ASM_MACINTS_H_
14
15#include <asm/irq.h>
16
17/* Setting this prints debugging info for unclaimed interrupts */
18
19#define DEBUG_SPURIOUS
20
21/* Setting this prints debugging info on each autovector interrupt */
22
23/* #define DEBUG_IRQS */
24
25/* Setting this prints debugging info on each Nubus interrupt */
26
27/* #define DEBUG_NUBUS_INT */
28
29/* Setting this prints debugging info on irqs as they enabled and disabled. */
30
31/* #define DEBUG_IRQUSE */
32
33/*
34 * Base IRQ number for all Mac68K interrupt sources. Each source
35 * has eight indexes (base -> base+7).
36 */
37
38#define VIA1_SOURCE_BASE 8
39#define VIA2_SOURCE_BASE 16
40#define MAC_SCC_SOURCE_BASE 24
41#define PSC3_SOURCE_BASE 24
42#define PSC4_SOURCE_BASE 32
43#define PSC5_SOURCE_BASE 40
44#define PSC6_SOURCE_BASE 48
45#define NUBUS_SOURCE_BASE 56
46#define BABOON_SOURCE_BASE 64
47
48/*
49 * Maximum IRQ number is BABOON_SOURCE_BASE + 7,
50 * giving us IRQs up through 71
51 */
52
53#define NUM_MAC_SOURCES 72
54
55/*
56 * clean way to separate IRQ into its source and index
57 */
58
59#define IRQ_SRC(irq) (irq >> 3)
60#define IRQ_IDX(irq) (irq & 7)
61
62/* VIA1 interrupts */
63#define IRQ_VIA1_0 (8) /* one second int. */
64#define IRQ_VIA1_1 (9) /* VBlank int. */
65#define IRQ_MAC_VBL IRQ_VIA1_1
66#define IRQ_VIA1_2 (10) /* ADB SR shifts complete */
67#define IRQ_MAC_ADB IRQ_VIA1_2
68#define IRQ_MAC_ADB_SR IRQ_VIA1_2
69#define IRQ_VIA1_3 (11) /* ADB SR CB2 ?? */
70#define IRQ_MAC_ADB_SD IRQ_VIA1_3
71#define IRQ_VIA1_4 (12) /* ADB SR ext. clock pulse */
72#define IRQ_MAC_ADB_CL IRQ_VIA1_4
73#define IRQ_VIA1_5 (13)
74#define IRQ_MAC_TIMER_2 IRQ_VIA1_5
75#define IRQ_VIA1_6 (14)
76#define IRQ_MAC_TIMER_1 IRQ_VIA1_6
77#define IRQ_VIA1_7 (15)
78
79/* VIA2/RBV interrupts */
80#define IRQ_VIA2_0 (16)
81#define IRQ_MAC_SCSIDRQ IRQ_VIA2_0
82#define IRQ_VIA2_1 (17)
83#define IRQ_MAC_NUBUS IRQ_VIA2_1
84#define IRQ_VIA2_2 (18)
85#define IRQ_VIA2_3 (19)
86#define IRQ_MAC_SCSI IRQ_VIA2_3
87#define IRQ_VIA2_4 (20)
88#define IRQ_VIA2_5 (21)
89#define IRQ_VIA2_6 (22)
90#define IRQ_VIA2_7 (23)
91
92/* Level 3 (PSC, AV Macs only) interrupts */
93#define IRQ_PSC3_0 (24)
94#define IRQ_MAC_MACE IRQ_PSC3_0
95#define IRQ_PSC3_1 (25)
96#define IRQ_PSC3_2 (26)
97#define IRQ_PSC3_3 (27)
98
99/* Level 4 (SCC) interrupts */
100#define IRQ_SCC (32)
101#define IRQ_SCCA (33)
102#define IRQ_SCCB (34)
103#if 0 /* FIXME: are there multiple interrupt conditions on the SCC ?? */
104/* SCC interrupts */
105#define IRQ_SCCB_TX (32)
106#define IRQ_SCCB_STAT (33)
107#define IRQ_SCCB_RX (34)
108#define IRQ_SCCB_SPCOND (35)
109#define IRQ_SCCA_TX (36)
110#define IRQ_SCCA_STAT (37)
111#define IRQ_SCCA_RX (38)
112#define IRQ_SCCA_SPCOND (39)
113#endif
114
115/* Level 4 (PSC, AV Macs only) interrupts */
116#define IRQ_PSC4_0 (32)
117#define IRQ_PSC4_1 (33)
118#define IRQ_PSC4_2 (34)
119#define IRQ_PSC4_3 (35)
120#define IRQ_MAC_MACE_DMA IRQ_PSC4_3
121
122/* Level 5 (PSC, AV Macs only) interrupts */
123#define IRQ_PSC5_0 (40)
124#define IRQ_PSC5_1 (41)
125#define IRQ_PSC5_2 (42)
126#define IRQ_PSC5_3 (43)
127
128/* Level 6 (PSC, AV Macs only) interrupts */
129#define IRQ_PSC6_0 (48)
130#define IRQ_PSC6_1 (49)
131#define IRQ_PSC6_2 (50)
132#define IRQ_PSC6_3 (51)
133
134/* Nubus interrupts (cascaded to VIA2) */
135#define IRQ_NUBUS_9 (56)
136#define IRQ_NUBUS_A (57)
137#define IRQ_NUBUS_B (58)
138#define IRQ_NUBUS_C (59)
139#define IRQ_NUBUS_D (60)
140#define IRQ_NUBUS_E (61)
141#define IRQ_NUBUS_F (62)
142
143/* Baboon interrupts (cascaded to nubus slot $C) */
144#define IRQ_BABOON_0 (64)
145#define IRQ_BABOON_1 (65)
146#define IRQ_BABOON_2 (66)
147#define IRQ_BABOON_3 (67)
148
149#define SLOT2IRQ(x) (x + 47)
150#define IRQ2SLOT(x) (x - 47)
151
152#define INT_CLK 24576 /* CLK while int_clk =2.456MHz and divide = 100 */
153#define INT_TICKS 246 /* to make sched_time = 99.902... HZ */
154
155#endif /* asm/macints.h */
diff --git a/arch/m68k/include/asm/math-emu.h b/arch/m68k/include/asm/math-emu.h
new file mode 100644
index 000000000000..ddfab96403cb
--- /dev/null
+++ b/arch/m68k/include/asm/math-emu.h
@@ -0,0 +1,315 @@
1#ifndef _ASM_M68K_SETUP_H
2#define _ASM_M68K_SETUP_H
3
4#include <asm/setup.h>
5#include <linux/linkage.h>
6
7/* Status Register bits */
8
9/* accrued exception bits */
10#define FPSR_AEXC_INEX 3
11#define FPSR_AEXC_DZ 4
12#define FPSR_AEXC_UNFL 5
13#define FPSR_AEXC_OVFL 6
14#define FPSR_AEXC_IOP 7
15
16/* exception status bits */
17#define FPSR_EXC_INEX1 8
18#define FPSR_EXC_INEX2 9
19#define FPSR_EXC_DZ 10
20#define FPSR_EXC_UNFL 11
21#define FPSR_EXC_OVFL 12
22#define FPSR_EXC_OPERR 13
23#define FPSR_EXC_SNAN 14
24#define FPSR_EXC_BSUN 15
25
26/* quotient byte, assumes big-endian, of course */
27#define FPSR_QUOTIENT(fpsr) (*((signed char *) &(fpsr) + 1))
28
29/* condition code bits */
30#define FPSR_CC_NAN 24
31#define FPSR_CC_INF 25
32#define FPSR_CC_Z 26
33#define FPSR_CC_NEG 27
34
35
36/* Control register bits */
37
38/* rounding mode */
39#define FPCR_ROUND_RN 0 /* round to nearest/even */
40#define FPCR_ROUND_RZ 1 /* round to zero */
41#define FPCR_ROUND_RM 2 /* minus infinity */
42#define FPCR_ROUND_RP 3 /* plus infinity */
43
44/* rounding precision */
45#define FPCR_PRECISION_X 0 /* long double */
46#define FPCR_PRECISION_S 1 /* double */
47#define FPCR_PRECISION_D 2 /* float */
48
49
50/* Flags to select the debugging output */
51#define PDECODE 0
52#define PEXECUTE 1
53#define PCONV 2
54#define PNORM 3
55#define PREGISTER 4
56#define PINSTR 5
57#define PUNIMPL 6
58#define PMOVEM 7
59
60#define PMDECODE (1<<PDECODE)
61#define PMEXECUTE (1<<PEXECUTE)
62#define PMCONV (1<<PCONV)
63#define PMNORM (1<<PNORM)
64#define PMREGISTER (1<<PREGISTER)
65#define PMINSTR (1<<PINSTR)
66#define PMUNIMPL (1<<PUNIMPL)
67#define PMMOVEM (1<<PMOVEM)
68
69#ifndef __ASSEMBLY__
70
71#include <linux/kernel.h>
72#include <linux/sched.h>
73
74union fp_mant64 {
75 unsigned long long m64;
76 unsigned long m32[2];
77};
78
79union fp_mant128 {
80 unsigned long long m64[2];
81 unsigned long m32[4];
82};
83
84/* internal representation of extended fp numbers */
85struct fp_ext {
86 unsigned char lowmant;
87 unsigned char sign;
88 unsigned short exp;
89 union fp_mant64 mant;
90};
91
92/* C representation of FPU registers */
93/* NOTE: if you change this, you have to change the assembler offsets
94 below and the size in <asm/fpu.h>, too */
95struct fp_data {
96 struct fp_ext fpreg[8];
97 unsigned int fpcr;
98 unsigned int fpsr;
99 unsigned int fpiar;
100 unsigned short prec;
101 unsigned short rnd;
102 struct fp_ext temp[2];
103};
104
105#ifdef FPU_EMU_DEBUG
106extern unsigned int fp_debugprint;
107
108#define dprint(bit, fmt, args...) ({ \
109 if (fp_debugprint & (1 << (bit))) \
110 printk(fmt, ## args); \
111})
112#else
113#define dprint(bit, fmt, args...)
114#endif
115
116#define uprint(str) ({ \
117 static int __count = 3; \
118 \
119 if (__count > 0) { \
120 printk("You just hit an unimplemented " \
121 "fpu instruction (%s)\n", str); \
122 printk("Please report this to ....\n"); \
123 __count--; \
124 } \
125})
126
127#define FPDATA ((struct fp_data *)current->thread.fp)
128
129#else /* __ASSEMBLY__ */
130
131#define FPDATA %a2
132
133/* offsets from the base register to the floating point data in the task struct */
134#define FPD_FPREG (TASK_THREAD+THREAD_FPREG+0)
135#define FPD_FPCR (TASK_THREAD+THREAD_FPREG+96)
136#define FPD_FPSR (TASK_THREAD+THREAD_FPREG+100)
137#define FPD_FPIAR (TASK_THREAD+THREAD_FPREG+104)
138#define FPD_PREC (TASK_THREAD+THREAD_FPREG+108)
139#define FPD_RND (TASK_THREAD+THREAD_FPREG+110)
140#define FPD_TEMPFP1 (TASK_THREAD+THREAD_FPREG+112)
141#define FPD_TEMPFP2 (TASK_THREAD+THREAD_FPREG+124)
142#define FPD_SIZEOF (TASK_THREAD+THREAD_FPREG+136)
143
144/* offsets on the stack to access saved registers,
145 * these are only used during instruction decoding
146 * where we always know how deep we're on the stack.
147 */
148#define FPS_DO (PT_D0)
149#define FPS_D1 (PT_D1)
150#define FPS_D2 (PT_D2)
151#define FPS_A0 (PT_A0)
152#define FPS_A1 (PT_A1)
153#define FPS_A2 (PT_A2)
154#define FPS_SR (PT_SR)
155#define FPS_PC (PT_PC)
156#define FPS_EA (PT_PC+6)
157#define FPS_PC2 (PT_PC+10)
158
159.macro fp_get_fp_reg
160 lea (FPD_FPREG,FPDATA,%d0.w*4),%a0
161 lea (%a0,%d0.w*8),%a0
162.endm
163
164/* Macros used to get/put the current program counter.
165 * 020/030 use a different stack frame then 040/060, for the
166 * 040/060 the return pc points already to the next location,
167 * so this only needs to be modified for jump instructions.
168 */
169.macro fp_get_pc dest
170 move.l (FPS_PC+4,%sp),\dest
171.endm
172
173.macro fp_put_pc src,jump=0
174 move.l \src,(FPS_PC+4,%sp)
175.endm
176
177.macro fp_get_instr_data f,s,dest,label
178 getuser \f,%sp@(FPS_PC+4)@(0),\dest,\label,%sp@(FPS_PC+4)
179 addq.l #\s,%sp@(FPS_PC+4)
180.endm
181
182.macro fp_get_instr_word dest,label,addr
183 fp_get_instr_data w,2,\dest,\label,\addr
184.endm
185
186.macro fp_get_instr_long dest,label,addr
187 fp_get_instr_data l,4,\dest,\label,\addr
188.endm
189
190/* These macros are used to read from/write to user space
191 * on error we jump to the fixup section, load the fault
192 * address into %a0 and jump to the exit.
193 * (derived from <asm/uaccess.h>)
194 */
195.macro getuser size,src,dest,label,addr
196| printf ,"[\size<%08x]",1,\addr
197.Lu1\@: moves\size \src,\dest
198
199 .section .fixup,"ax"
200 .even
201.Lu2\@: move.l \addr,%a0
202 jra \label
203 .previous
204
205 .section __ex_table,"a"
206 .align 4
207 .long .Lu1\@,.Lu2\@
208 .previous
209.endm
210
211.macro putuser size,src,dest,label,addr
212| printf ,"[\size>%08x]",1,\addr
213.Lu1\@: moves\size \src,\dest
214.Lu2\@:
215
216 .section .fixup,"ax"
217 .even
218.Lu3\@: move.l \addr,%a0
219 jra \label
220 .previous
221
222 .section __ex_table,"a"
223 .align 4
224 .long .Lu1\@,.Lu3\@
225 .long .Lu2\@,.Lu3\@
226 .previous
227.endm
228
229/* work around binutils idiocy */
230old_gas=-1
231.irp gas_ident.x .x
232old_gas=old_gas+1
233.endr
234.if !old_gas
235.irp m b,w,l
236.macro getuser.\m src,dest,label,addr
237 getuser .\m,\src,\dest,\label,\addr
238.endm
239.macro putuser.\m src,dest,label,addr
240 putuser .\m,\src,\dest,\label,\addr
241.endm
242.endr
243.endif
244
245.macro movestack nr,arg1,arg2,arg3,arg4,arg5
246 .if \nr
247 movestack (\nr-1),\arg2,\arg3,\arg4,\arg5
248 move.l \arg1,-(%sp)
249 .endif
250.endm
251
252.macro printf bit=-1,string,nr=0,arg1,arg2,arg3,arg4,arg5
253#ifdef FPU_EMU_DEBUG
254 .data
255.Lpdata\@:
256 .string "\string"
257 .previous
258
259 movem.l %d0/%d1/%a0/%a1,-(%sp)
260 .if \bit+1
261#if 0
262 moveq #\bit,%d0
263 andw #7,%d0
264 btst %d0,fp_debugprint+((31-\bit)/8)
265#else
266 btst #\bit,fp_debugprint+((31-\bit)/8)
267#endif
268 jeq .Lpskip\@
269 .endif
270 movestack \nr,\arg1,\arg2,\arg3,\arg4,\arg5
271 pea .Lpdata\@
272 jsr printk
273 lea ((\nr+1)*4,%sp),%sp
274.Lpskip\@:
275 movem.l (%sp)+,%d0/%d1/%a0/%a1
276#endif
277.endm
278
279.macro printx bit,fp
280#ifdef FPU_EMU_DEBUG
281 movem.l %d0/%a0,-(%sp)
282 lea \fp,%a0
283#if 0
284 moveq #'+',%d0
285 tst.w (%a0)
286 jeq .Lx1\@
287 moveq #'-',%d0
288.Lx1\@: printf \bit," %c",1,%d0
289 move.l (4,%a0),%d0
290 bclr #31,%d0
291 jne .Lx2\@
292 printf \bit,"0."
293 jra .Lx3\@
294.Lx2\@: printf \bit,"1."
295.Lx3\@: printf \bit,"%08x%08x",2,%d0,%a0@(8)
296 move.w (2,%a0),%d0
297 ext.l %d0
298 printf \bit,"E%04x",1,%d0
299#else
300 printf \bit," %08x%08x%08x",3,%a0@,%a0@(4),%a0@(8)
301#endif
302 movem.l (%sp)+,%d0/%a0
303#endif
304.endm
305
306.macro debug instr,args
307#ifdef FPU_EMU_DEBUG
308 \instr \args
309#endif
310.endm
311
312
313#endif /* __ASSEMBLY__ */
314
315#endif /* _ASM_M68K_SETUP_H */
diff --git a/arch/m68k/include/asm/mc146818rtc.h b/arch/m68k/include/asm/mc146818rtc.h
new file mode 100644
index 000000000000..fb90dcf78426
--- /dev/null
+++ b/arch/m68k/include/asm/mc146818rtc.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mc146818rtc_no.h"
3#else
4#include "mc146818rtc_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/mc146818rtc_mm.h b/arch/m68k/include/asm/mc146818rtc_mm.h
new file mode 100644
index 000000000000..9f70a01f73dc
--- /dev/null
+++ b/arch/m68k/include/asm/mc146818rtc_mm.h
@@ -0,0 +1,26 @@
1/*
2 * Machine dependent access functions for RTC registers.
3 */
4#ifndef _ASM_MC146818RTC_H
5#define _ASM_MC146818RTC_H
6
7
8#ifdef CONFIG_ATARI
9/* RTC in Atari machines */
10
11#include <asm/atarihw.h>
12
13#define RTC_PORT(x) (TT_RTC_BAS + 2*(x))
14#define RTC_ALWAYS_BCD 0
15
16#define CMOS_READ(addr) ({ \
17atari_outb_p((addr),RTC_PORT(0)); \
18atari_inb_p(RTC_PORT(1)); \
19})
20#define CMOS_WRITE(val, addr) ({ \
21atari_outb_p((addr),RTC_PORT(0)); \
22atari_outb_p((val),RTC_PORT(1)); \
23})
24#endif /* CONFIG_ATARI */
25
26#endif /* _ASM_MC146818RTC_H */
diff --git a/arch/m68knommu/include/asm/mc146818rtc.h b/arch/m68k/include/asm/mc146818rtc_no.h
index 907a0481a140..907a0481a140 100644
--- a/arch/m68knommu/include/asm/mc146818rtc.h
+++ b/arch/m68k/include/asm/mc146818rtc_no.h
diff --git a/arch/m68knommu/include/asm/mcfcache.h b/arch/m68k/include/asm/mcfcache.h
index c042634fadaa..c042634fadaa 100644
--- a/arch/m68knommu/include/asm/mcfcache.h
+++ b/arch/m68k/include/asm/mcfcache.h
diff --git a/arch/m68knommu/include/asm/mcfdma.h b/arch/m68k/include/asm/mcfdma.h
index 705c52c79cd8..705c52c79cd8 100644
--- a/arch/m68knommu/include/asm/mcfdma.h
+++ b/arch/m68k/include/asm/mcfdma.h
diff --git a/arch/m68knommu/include/asm/mcfmbus.h b/arch/m68k/include/asm/mcfmbus.h
index 319899c47a2c..319899c47a2c 100644
--- a/arch/m68knommu/include/asm/mcfmbus.h
+++ b/arch/m68k/include/asm/mcfmbus.h
diff --git a/arch/m68knommu/include/asm/mcfne.h b/arch/m68k/include/asm/mcfne.h
index 431f63aadd0e..431f63aadd0e 100644
--- a/arch/m68knommu/include/asm/mcfne.h
+++ b/arch/m68k/include/asm/mcfne.h
diff --git a/arch/m68knommu/include/asm/mcfpci.h b/arch/m68k/include/asm/mcfpci.h
index f1507dd06ec6..f1507dd06ec6 100644
--- a/arch/m68knommu/include/asm/mcfpci.h
+++ b/arch/m68k/include/asm/mcfpci.h
diff --git a/arch/m68knommu/include/asm/mcfpit.h b/arch/m68k/include/asm/mcfpit.h
index f570cf64fd29..f570cf64fd29 100644
--- a/arch/m68knommu/include/asm/mcfpit.h
+++ b/arch/m68k/include/asm/mcfpit.h
diff --git a/arch/m68knommu/include/asm/mcfsim.h b/arch/m68k/include/asm/mcfsim.h
index da3f2ceff3a4..da3f2ceff3a4 100644
--- a/arch/m68knommu/include/asm/mcfsim.h
+++ b/arch/m68k/include/asm/mcfsim.h
diff --git a/arch/m68knommu/include/asm/mcfsmc.h b/arch/m68k/include/asm/mcfsmc.h
index 2d7a4dbd9683..2d7a4dbd9683 100644
--- a/arch/m68knommu/include/asm/mcfsmc.h
+++ b/arch/m68k/include/asm/mcfsmc.h
diff --git a/arch/m68knommu/include/asm/mcftimer.h b/arch/m68k/include/asm/mcftimer.h
index 0f90f6d2227a..0f90f6d2227a 100644
--- a/arch/m68knommu/include/asm/mcftimer.h
+++ b/arch/m68k/include/asm/mcftimer.h
diff --git a/arch/m68knommu/include/asm/mcfuart.h b/arch/m68k/include/asm/mcfuart.h
index ef2293873612..ef2293873612 100644
--- a/arch/m68knommu/include/asm/mcfuart.h
+++ b/arch/m68k/include/asm/mcfuart.h
diff --git a/arch/m68knommu/include/asm/mcfwdebug.h b/arch/m68k/include/asm/mcfwdebug.h
index 27f70e45d700..27f70e45d700 100644
--- a/arch/m68knommu/include/asm/mcfwdebug.h
+++ b/arch/m68k/include/asm/mcfwdebug.h
diff --git a/arch/m68k/include/asm/md.h b/arch/m68k/include/asm/md.h
new file mode 100644
index 000000000000..d2f78f226f3d
--- /dev/null
+++ b/arch/m68k/include/asm/md.h
@@ -0,0 +1,13 @@
1/*
2 * md.h: High speed xor_block operation for RAID4/5
3 *
4 */
5
6#ifndef __ASM_MD_H
7#define __ASM_MD_H
8
9/* #define HAVE_ARCH_XORBLOCK */
10
11#define MD_XORBLOCK_ALIGNMENT sizeof(long)
12
13#endif /* __ASM_MD_H */
diff --git a/arch/m68k/include/asm/mman.h b/arch/m68k/include/asm/mman.h
new file mode 100644
index 000000000000..1626d37f4898
--- /dev/null
+++ b/arch/m68k/include/asm/mman.h
@@ -0,0 +1,17 @@
1#ifndef __M68K_MMAN_H__
2#define __M68K_MMAN_H__
3
4#include <asm-generic/mman.h>
5
6#define MAP_GROWSDOWN 0x0100 /* stack-like segment */
7#define MAP_DENYWRITE 0x0800 /* ETXTBSY */
8#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
9#define MAP_LOCKED 0x2000 /* pages are locked */
10#define MAP_NORESERVE 0x4000 /* don't check for reservations */
11#define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
12#define MAP_NONBLOCK 0x10000 /* do not block on IO */
13
14#define MCL_CURRENT 1 /* lock all current mappings */
15#define MCL_FUTURE 2 /* lock all future mappings */
16
17#endif /* __M68K_MMAN_H__ */
diff --git a/arch/m68k/include/asm/mmu.h b/arch/m68k/include/asm/mmu.h
new file mode 100644
index 000000000000..a81d3946675f
--- /dev/null
+++ b/arch/m68k/include/asm/mmu.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mmu_no.h"
3#else
4#include "mmu_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/mmu_context.h b/arch/m68k/include/asm/mmu_context.h
new file mode 100644
index 000000000000..b440928fc6c7
--- /dev/null
+++ b/arch/m68k/include/asm/mmu_context.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mmu_context_no.h"
3#else
4#include "mmu_context_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/mmu_context_mm.h b/arch/m68k/include/asm/mmu_context_mm.h
new file mode 100644
index 000000000000..894dacbcee14
--- /dev/null
+++ b/arch/m68k/include/asm/mmu_context_mm.h
@@ -0,0 +1,154 @@
1#ifndef __M68K_MMU_CONTEXT_H
2#define __M68K_MMU_CONTEXT_H
3
4#include <asm-generic/mm_hooks.h>
5
6static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
7{
8}
9
10#ifndef CONFIG_SUN3
11
12#include <asm/setup.h>
13#include <asm/page.h>
14#include <asm/pgalloc.h>
15
16static inline int init_new_context(struct task_struct *tsk,
17 struct mm_struct *mm)
18{
19 mm->context = virt_to_phys(mm->pgd);
20 return 0;
21}
22
23#define destroy_context(mm) do { } while(0)
24
25static inline void switch_mm_0230(struct mm_struct *mm)
26{
27 unsigned long crp[2] = {
28 0x80000000 | _PAGE_TABLE, mm->context
29 };
30 unsigned long tmp;
31
32 asm volatile (".chip 68030");
33
34 /* flush MC68030/MC68020 caches (they are virtually addressed) */
35 asm volatile (
36 "movec %%cacr,%0;"
37 "orw %1,%0; "
38 "movec %0,%%cacr"
39 : "=d" (tmp) : "di" (FLUSH_I_AND_D));
40
41 /* Switch the root pointer. For a 030-only kernel,
42 * avoid flushing the whole ATC, we only need to
43 * flush the user entries. The 68851 does this by
44 * itself. Avoid a runtime check here.
45 */
46 asm volatile (
47#ifdef CPU_M68030_ONLY
48 "pmovefd %0,%%crp; "
49 "pflush #0,#4"
50#else
51 "pmove %0,%%crp"
52#endif
53 : : "m" (crp[0]));
54
55 asm volatile (".chip 68k");
56}
57
58static inline void switch_mm_0460(struct mm_struct *mm)
59{
60 asm volatile (".chip 68040");
61
62 /* flush address translation cache (user entries) */
63 asm volatile ("pflushan");
64
65 /* switch the root pointer */
66 asm volatile ("movec %0,%%urp" : : "r" (mm->context));
67
68 if (CPU_IS_060) {
69 unsigned long tmp;
70
71 /* clear user entries in the branch cache */
72 asm volatile (
73 "movec %%cacr,%0; "
74 "orl %1,%0; "
75 "movec %0,%%cacr"
76 : "=d" (tmp): "di" (0x00200000));
77 }
78
79 asm volatile (".chip 68k");
80}
81
82static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk)
83{
84 if (prev != next) {
85 if (CPU_IS_020_OR_030)
86 switch_mm_0230(next);
87 else
88 switch_mm_0460(next);
89 }
90}
91
92#define deactivate_mm(tsk,mm) do { } while (0)
93
94static inline void activate_mm(struct mm_struct *prev_mm,
95 struct mm_struct *next_mm)
96{
97 next_mm->context = virt_to_phys(next_mm->pgd);
98
99 if (CPU_IS_020_OR_030)
100 switch_mm_0230(next_mm);
101 else
102 switch_mm_0460(next_mm);
103}
104
105#else /* CONFIG_SUN3 */
106#include <asm/sun3mmu.h>
107#include <linux/sched.h>
108
109extern unsigned long get_free_context(struct mm_struct *mm);
110extern void clear_context(unsigned long context);
111
112/* set the context for a new task to unmapped */
113static inline int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
114{
115 mm->context = SUN3_INVALID_CONTEXT;
116 return 0;
117}
118
119/* find the context given to this process, and if it hasn't already
120 got one, go get one for it. */
121static inline void get_mmu_context(struct mm_struct *mm)
122{
123 if(mm->context == SUN3_INVALID_CONTEXT)
124 mm->context = get_free_context(mm);
125}
126
127/* flush context if allocated... */
128static inline void destroy_context(struct mm_struct *mm)
129{
130 if(mm->context != SUN3_INVALID_CONTEXT)
131 clear_context(mm->context);
132}
133
134static inline void activate_context(struct mm_struct *mm)
135{
136 get_mmu_context(mm);
137 sun3_put_context(mm->context);
138}
139
140static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk)
141{
142 activate_context(tsk->mm);
143}
144
145#define deactivate_mm(tsk,mm) do { } while (0)
146
147static inline void activate_mm(struct mm_struct *prev_mm,
148 struct mm_struct *next_mm)
149{
150 activate_context(next_mm);
151}
152
153#endif
154#endif
diff --git a/arch/m68knommu/include/asm/mmu_context.h b/arch/m68k/include/asm/mmu_context_no.h
index 9ccee4278c97..9ccee4278c97 100644
--- a/arch/m68knommu/include/asm/mmu_context.h
+++ b/arch/m68k/include/asm/mmu_context_no.h
diff --git a/arch/m68k/include/asm/mmu_mm.h b/arch/m68k/include/asm/mmu_mm.h
new file mode 100644
index 000000000000..ccd36d26615a
--- /dev/null
+++ b/arch/m68k/include/asm/mmu_mm.h
@@ -0,0 +1,7 @@
1#ifndef __MMU_H
2#define __MMU_H
3
4/* Default "unsigned long" context */
5typedef unsigned long mm_context_t;
6
7#endif
diff --git a/arch/m68knommu/include/asm/mmu.h b/arch/m68k/include/asm/mmu_no.h
index e2da1e6f09fe..e2da1e6f09fe 100644
--- a/arch/m68knommu/include/asm/mmu.h
+++ b/arch/m68k/include/asm/mmu_no.h
diff --git a/arch/m68k/include/asm/mmzone.h b/arch/m68k/include/asm/mmzone.h
new file mode 100644
index 000000000000..e1f1ec7b7006
--- /dev/null
+++ b/arch/m68k/include/asm/mmzone.h
@@ -0,0 +1,9 @@
1#ifndef _ASM_M68K_MMZONE_H_
2#define _ASM_M68K_MMZONE_H_
3
4extern pg_data_t pg_data_map[];
5
6#define NODE_DATA(nid) (&pg_data_map[nid])
7#define NODE_MEM_MAP(nid) (NODE_DATA(nid)->node_mem_map)
8
9#endif /* _ASM_M68K_MMZONE_H_ */
diff --git a/arch/m68k/include/asm/module.h b/arch/m68k/include/asm/module.h
new file mode 100644
index 000000000000..79b59d137dd0
--- /dev/null
+++ b/arch/m68k/include/asm/module.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "module_no.h"
3#else
4#include "module_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/module_mm.h b/arch/m68k/include/asm/module_mm.h
new file mode 100644
index 000000000000..382d20a6fc18
--- /dev/null
+++ b/arch/m68k/include/asm/module_mm.h
@@ -0,0 +1,39 @@
1#ifndef _ASM_M68K_MODULE_H
2#define _ASM_M68K_MODULE_H
3
4struct mod_arch_specific {
5 struct m68k_fixup_info *fixup_start, *fixup_end;
6};
7
8#define MODULE_ARCH_INIT { \
9 .fixup_start = __start_fixup, \
10 .fixup_end = __stop_fixup, \
11}
12
13#define Elf_Shdr Elf32_Shdr
14#define Elf_Sym Elf32_Sym
15#define Elf_Ehdr Elf32_Ehdr
16
17
18enum m68k_fixup_type {
19 m68k_fixup_memoffset,
20 m68k_fixup_vnode_shift,
21};
22
23struct m68k_fixup_info {
24 enum m68k_fixup_type type;
25 void *addr;
26};
27
28#define m68k_fixup(type, addr) \
29 " .section \".m68k_fixup\",\"aw\"\n" \
30 " .long " #type "," #addr "\n" \
31 " .previous\n"
32
33extern struct m68k_fixup_info __start_fixup[], __stop_fixup[];
34
35struct module;
36extern void module_fixup(struct module *mod, struct m68k_fixup_info *start,
37 struct m68k_fixup_info *end);
38
39#endif /* _ASM_M68K_MODULE_H */
diff --git a/arch/m68knommu/include/asm/module.h b/arch/m68k/include/asm/module_no.h
index 2e45ab50b232..2e45ab50b232 100644
--- a/arch/m68knommu/include/asm/module.h
+++ b/arch/m68k/include/asm/module_no.h
diff --git a/arch/m68k/include/asm/motorola_pgalloc.h b/arch/m68k/include/asm/motorola_pgalloc.h
new file mode 100644
index 000000000000..d08bf6261df8
--- /dev/null
+++ b/arch/m68k/include/asm/motorola_pgalloc.h
@@ -0,0 +1,109 @@
1#ifndef _MOTOROLA_PGALLOC_H
2#define _MOTOROLA_PGALLOC_H
3
4#include <asm/tlb.h>
5#include <asm/tlbflush.h>
6
7extern pmd_t *get_pointer_table(void);
8extern int free_pointer_table(pmd_t *);
9
10static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
11{
12 pte_t *pte;
13
14 pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
15 if (pte) {
16 __flush_page_to_ram(pte);
17 flush_tlb_kernel_page(pte);
18 nocache_page(pte);
19 }
20
21 return pte;
22}
23
24static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
25{
26 cache_page(pte);
27 free_page((unsigned long) pte);
28}
29
30static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
31{
32 struct page *page = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
33 pte_t *pte;
34
35 if(!page)
36 return NULL;
37
38 pte = kmap(page);
39 if (pte) {
40 __flush_page_to_ram(pte);
41 flush_tlb_kernel_page(pte);
42 nocache_page(pte);
43 }
44 kunmap(pte);
45 pgtable_page_ctor(page);
46 return page;
47}
48
49static inline void pte_free(struct mm_struct *mm, pgtable_t page)
50{
51 pgtable_page_dtor(page);
52 cache_page(kmap(page));
53 kunmap(page);
54 __free_page(page);
55}
56
57static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t page)
58{
59 pgtable_page_dtor(page);
60 cache_page(kmap(page));
61 kunmap(page);
62 __free_page(page);
63}
64
65
66static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
67{
68 return get_pointer_table();
69}
70
71static inline int pmd_free(struct mm_struct *mm, pmd_t *pmd)
72{
73 return free_pointer_table(pmd);
74}
75
76static inline int __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
77{
78 return free_pointer_table(pmd);
79}
80
81
82static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
83{
84 pmd_free(mm, (pmd_t *)pgd);
85}
86
87static inline pgd_t *pgd_alloc(struct mm_struct *mm)
88{
89 return (pgd_t *)get_pointer_table();
90}
91
92
93static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
94{
95 pmd_set(pmd, pte);
96}
97
98static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page)
99{
100 pmd_set(pmd, page_address(page));
101}
102#define pmd_pgtable(pmd) pmd_page(pmd)
103
104static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
105{
106 pgd_set(pgd, pmd);
107}
108
109#endif /* _MOTOROLA_PGALLOC_H */
diff --git a/arch/m68k/include/asm/motorola_pgtable.h b/arch/m68k/include/asm/motorola_pgtable.h
new file mode 100644
index 000000000000..8e9a8a754dde
--- /dev/null
+++ b/arch/m68k/include/asm/motorola_pgtable.h
@@ -0,0 +1,291 @@
1#ifndef _MOTOROLA_PGTABLE_H
2#define _MOTOROLA_PGTABLE_H
3
4
5/*
6 * Definitions for MMU descriptors
7 */
8#define _PAGE_PRESENT 0x001
9#define _PAGE_SHORT 0x002
10#define _PAGE_RONLY 0x004
11#define _PAGE_ACCESSED 0x008
12#define _PAGE_DIRTY 0x010
13#define _PAGE_SUPER 0x080 /* 68040 supervisor only */
14#define _PAGE_GLOBAL040 0x400 /* 68040 global bit, used for kva descs */
15#define _PAGE_NOCACHE030 0x040 /* 68030 no-cache mode */
16#define _PAGE_NOCACHE 0x060 /* 68040 cache mode, non-serialized */
17#define _PAGE_NOCACHE_S 0x040 /* 68040 no-cache mode, serialized */
18#define _PAGE_CACHE040 0x020 /* 68040 cache mode, cachable, copyback */
19#define _PAGE_CACHE040W 0x000 /* 68040 cache mode, cachable, write-through */
20
21#define _DESCTYPE_MASK 0x003
22
23#define _CACHEMASK040 (~0x060)
24#define _TABLE_MASK (0xfffffe00)
25
26#define _PAGE_TABLE (_PAGE_SHORT)
27#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_NOCACHE)
28
29#define _PAGE_PROTNONE 0x004
30#define _PAGE_FILE 0x008 /* pagecache or swap? */
31
32#ifndef __ASSEMBLY__
33
34/* This is the cache mode to be used for pages containing page descriptors for
35 * processors >= '040. It is in pte_mknocache(), and the variable is defined
36 * and initialized in head.S */
37extern int m68k_pgtable_cachemode;
38
39/* This is the cache mode for normal pages, for supervisor access on
40 * processors >= '040. It is used in pte_mkcache(), and the variable is
41 * defined and initialized in head.S */
42
43#if defined(CPU_M68060_ONLY) && defined(CONFIG_060_WRITETHROUGH)
44#define m68k_supervisor_cachemode _PAGE_CACHE040W
45#elif defined(CPU_M68040_OR_M68060_ONLY)
46#define m68k_supervisor_cachemode _PAGE_CACHE040
47#elif defined(CPU_M68020_OR_M68030_ONLY)
48#define m68k_supervisor_cachemode 0
49#else
50extern int m68k_supervisor_cachemode;
51#endif
52
53#if defined(CPU_M68040_OR_M68060_ONLY)
54#define mm_cachebits _PAGE_CACHE040
55#elif defined(CPU_M68020_OR_M68030_ONLY)
56#define mm_cachebits 0
57#else
58extern unsigned long mm_cachebits;
59#endif
60
61#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED | mm_cachebits)
62#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_ACCESSED | mm_cachebits)
63#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_RONLY | _PAGE_ACCESSED | mm_cachebits)
64#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_RONLY | _PAGE_ACCESSED | mm_cachebits)
65#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | _PAGE_DIRTY | _PAGE_ACCESSED | mm_cachebits)
66
67/* Alternate definitions that are compile time constants, for
68 initializing protection_map. The cachebits are fixed later. */
69#define PAGE_NONE_C __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
70#define PAGE_SHARED_C __pgprot(_PAGE_PRESENT | _PAGE_ACCESSED)
71#define PAGE_COPY_C __pgprot(_PAGE_PRESENT | _PAGE_RONLY | _PAGE_ACCESSED)
72#define PAGE_READONLY_C __pgprot(_PAGE_PRESENT | _PAGE_RONLY | _PAGE_ACCESSED)
73
74/*
75 * The m68k can't do page protection for execute, and considers that the same are read.
76 * Also, write permissions imply read permissions. This is the closest we can get..
77 */
78#define __P000 PAGE_NONE_C
79#define __P001 PAGE_READONLY_C
80#define __P010 PAGE_COPY_C
81#define __P011 PAGE_COPY_C
82#define __P100 PAGE_READONLY_C
83#define __P101 PAGE_READONLY_C
84#define __P110 PAGE_COPY_C
85#define __P111 PAGE_COPY_C
86
87#define __S000 PAGE_NONE_C
88#define __S001 PAGE_READONLY_C
89#define __S010 PAGE_SHARED_C
90#define __S011 PAGE_SHARED_C
91#define __S100 PAGE_READONLY_C
92#define __S101 PAGE_READONLY_C
93#define __S110 PAGE_SHARED_C
94#define __S111 PAGE_SHARED_C
95
96/*
97 * Conversion functions: convert a page and protection to a page entry,
98 * and a page entry and page directory to the page they refer to.
99 */
100#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
101
102static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
103{
104 pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot);
105 return pte;
106}
107
108static inline void pmd_set(pmd_t *pmdp, pte_t *ptep)
109{
110 unsigned long ptbl = virt_to_phys(ptep) | _PAGE_TABLE | _PAGE_ACCESSED;
111 unsigned long *ptr = pmdp->pmd;
112 short i = 16;
113 while (--i >= 0) {
114 *ptr++ = ptbl;
115 ptbl += (sizeof(pte_t)*PTRS_PER_PTE/16);
116 }
117}
118
119static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp)
120{
121 pgd_val(*pgdp) = _PAGE_TABLE | _PAGE_ACCESSED | __pa(pmdp);
122}
123
124#define __pte_page(pte) ((unsigned long)__va(pte_val(pte) & PAGE_MASK))
125#define __pmd_page(pmd) ((unsigned long)__va(pmd_val(pmd) & _TABLE_MASK))
126#define __pgd_page(pgd) ((unsigned long)__va(pgd_val(pgd) & _TABLE_MASK))
127
128
129#define pte_none(pte) (!pte_val(pte))
130#define pte_present(pte) (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROTNONE))
131#define pte_clear(mm,addr,ptep) ({ pte_val(*(ptep)) = 0; })
132
133#define pte_page(pte) virt_to_page(__va(pte_val(pte)))
134#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
135#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
136
137#define pmd_none(pmd) (!pmd_val(pmd))
138#define pmd_bad(pmd) ((pmd_val(pmd) & _DESCTYPE_MASK) != _PAGE_TABLE)
139#define pmd_present(pmd) (pmd_val(pmd) & _PAGE_TABLE)
140#define pmd_clear(pmdp) ({ \
141 unsigned long *__ptr = pmdp->pmd; \
142 short __i = 16; \
143 while (--__i >= 0) \
144 *__ptr++ = 0; \
145})
146#define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd)))
147
148
149#define pgd_none(pgd) (!pgd_val(pgd))
150#define pgd_bad(pgd) ((pgd_val(pgd) & _DESCTYPE_MASK) != _PAGE_TABLE)
151#define pgd_present(pgd) (pgd_val(pgd) & _PAGE_TABLE)
152#define pgd_clear(pgdp) ({ pgd_val(*pgdp) = 0; })
153#define pgd_page(pgd) (mem_map + ((unsigned long)(__va(pgd_val(pgd)) - PAGE_OFFSET) >> PAGE_SHIFT))
154
155#define pte_ERROR(e) \
156 printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
157#define pmd_ERROR(e) \
158 printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e))
159#define pgd_ERROR(e) \
160 printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
161
162
163/*
164 * The following only work if pte_present() is true.
165 * Undefined behaviour if not..
166 */
167static inline int pte_write(pte_t pte) { return !(pte_val(pte) & _PAGE_RONLY); }
168static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; }
169static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
170static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; }
171static inline int pte_special(pte_t pte) { return 0; }
172
173static inline pte_t pte_wrprotect(pte_t pte) { pte_val(pte) |= _PAGE_RONLY; return pte; }
174static inline pte_t pte_mkclean(pte_t pte) { pte_val(pte) &= ~_PAGE_DIRTY; return pte; }
175static inline pte_t pte_mkold(pte_t pte) { pte_val(pte) &= ~_PAGE_ACCESSED; return pte; }
176static inline pte_t pte_mkwrite(pte_t pte) { pte_val(pte) &= ~_PAGE_RONLY; return pte; }
177static inline pte_t pte_mkdirty(pte_t pte) { pte_val(pte) |= _PAGE_DIRTY; return pte; }
178static inline pte_t pte_mkyoung(pte_t pte) { pte_val(pte) |= _PAGE_ACCESSED; return pte; }
179static inline pte_t pte_mknocache(pte_t pte)
180{
181 pte_val(pte) = (pte_val(pte) & _CACHEMASK040) | m68k_pgtable_cachemode;
182 return pte;
183}
184static inline pte_t pte_mkcache(pte_t pte)
185{
186 pte_val(pte) = (pte_val(pte) & _CACHEMASK040) | m68k_supervisor_cachemode;
187 return pte;
188}
189static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
190
191#define PAGE_DIR_OFFSET(tsk,address) pgd_offset((tsk),(address))
192
193#define pgd_index(address) ((address) >> PGDIR_SHIFT)
194
195/* to find an entry in a page-table-directory */
196static inline pgd_t *pgd_offset(const struct mm_struct *mm,
197 unsigned long address)
198{
199 return mm->pgd + pgd_index(address);
200}
201
202#define swapper_pg_dir kernel_pg_dir
203extern pgd_t kernel_pg_dir[128];
204
205static inline pgd_t *pgd_offset_k(unsigned long address)
206{
207 return kernel_pg_dir + (address >> PGDIR_SHIFT);
208}
209
210
211/* Find an entry in the second-level page table.. */
212static inline pmd_t *pmd_offset(pgd_t *dir, unsigned long address)
213{
214 return (pmd_t *)__pgd_page(*dir) + ((address >> PMD_SHIFT) & (PTRS_PER_PMD-1));
215}
216
217/* Find an entry in the third-level page table.. */
218static inline pte_t *pte_offset_kernel(pmd_t *pmdp, unsigned long address)
219{
220 return (pte_t *)__pmd_page(*pmdp) + ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1));
221}
222
223#define pte_offset_map(pmdp,address) ((pte_t *)__pmd_page(*pmdp) + (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)))
224#define pte_offset_map_nested(pmdp, address) pte_offset_map(pmdp, address)
225#define pte_unmap(pte) ((void)0)
226#define pte_unmap_nested(pte) ((void)0)
227
228/*
229 * Allocate and free page tables. The xxx_kernel() versions are
230 * used to allocate a kernel page table - this turns on ASN bits
231 * if any.
232 */
233
234/* Prior to calling these routines, the page should have been flushed
235 * from both the cache and ATC, or the CPU might not notice that the
236 * cache setting for the page has been changed. -jskov
237 */
238static inline void nocache_page(void *vaddr)
239{
240 unsigned long addr = (unsigned long)vaddr;
241
242 if (CPU_IS_040_OR_060) {
243 pgd_t *dir;
244 pmd_t *pmdp;
245 pte_t *ptep;
246
247 dir = pgd_offset_k(addr);
248 pmdp = pmd_offset(dir, addr);
249 ptep = pte_offset_kernel(pmdp, addr);
250 *ptep = pte_mknocache(*ptep);
251 }
252}
253
254static inline void cache_page(void *vaddr)
255{
256 unsigned long addr = (unsigned long)vaddr;
257
258 if (CPU_IS_040_OR_060) {
259 pgd_t *dir;
260 pmd_t *pmdp;
261 pte_t *ptep;
262
263 dir = pgd_offset_k(addr);
264 pmdp = pmd_offset(dir, addr);
265 ptep = pte_offset_kernel(pmdp, addr);
266 *ptep = pte_mkcache(*ptep);
267 }
268}
269
270#define PTE_FILE_MAX_BITS 28
271
272static inline unsigned long pte_to_pgoff(pte_t pte)
273{
274 return pte.pte >> 4;
275}
276
277static inline pte_t pgoff_to_pte(unsigned off)
278{
279 pte_t pte = { (off << 4) + _PAGE_FILE };
280 return pte;
281}
282
283/* Encode and de-code a swap entry (must be !pte_none(e) && !pte_present(e)) */
284#define __swp_type(x) (((x).val >> 4) & 0xff)
285#define __swp_offset(x) ((x).val >> 12)
286#define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 4) | ((offset) << 12) })
287#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
288#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
289
290#endif /* !__ASSEMBLY__ */
291#endif /* _MOTOROLA_PGTABLE_H */
diff --git a/arch/m68k/include/asm/movs.h b/arch/m68k/include/asm/movs.h
new file mode 100644
index 000000000000..67dbea36960f
--- /dev/null
+++ b/arch/m68k/include/asm/movs.h
@@ -0,0 +1,55 @@
1#ifndef __MOVS_H__
2#define __MOVS_H__
3
4/*
5** movs.h
6**
7** Inline assembly macros to generate movs & related instructions
8*/
9
10/* Set DFC register value */
11
12#define SET_DFC(x) \
13 __asm__ __volatile__ (" movec %0,%/dfc" : : "d" (x));
14
15/* Get DFC register value */
16
17#define GET_DFC(x) \
18 __asm__ __volatile__ (" movec %/dfc, %0" : "=d" (x) : );
19
20/* Set SFC register value */
21
22#define SET_SFC(x) \
23 __asm__ __volatile__ (" movec %0,%/sfc" : : "d" (x));
24
25/* Get SFC register value */
26
27#define GET_SFC(x) \
28 __asm__ __volatile__ (" movec %/sfc, %0" : "=d" (x) : );
29
30#define SET_VBR(x) \
31 __asm__ __volatile__ (" movec %0,%/vbr" : : "r" (x));
32
33#define GET_VBR(x) \
34 __asm__ __volatile__ (" movec %/vbr, %0" : "=g" (x) : );
35
36/* Set a byte using the "movs" instruction */
37
38#define SET_CONTROL_BYTE(addr,value) \
39 __asm__ __volatile__ (" movsb %0, %1@" : : "d" (value), "a" (addr));
40
41/* Get a byte using the "movs" instruction */
42
43#define GET_CONTROL_BYTE(addr,value) \
44 __asm__ __volatile__ (" movsb %1@, %0" : "=d" (value) : "a" (addr));
45
46/* Set a (long)word using the "movs" instruction */
47
48#define SET_CONTROL_WORD(addr,value) \
49 __asm__ __volatile__ (" movsl %0, %1@" : : "d" (value), "a" (addr));
50
51/* Get a (long)word using the "movs" instruction */
52
53#define GET_CONTROL_WORD(addr,value) \
54 __asm__ __volatile__ (" movsl %1@, %0" : "=d" (value) : "a" (addr));
55#endif
diff --git a/arch/m68k/include/asm/msgbuf.h b/arch/m68k/include/asm/msgbuf.h
new file mode 100644
index 000000000000..243cb798de8f
--- /dev/null
+++ b/arch/m68k/include/asm/msgbuf.h
@@ -0,0 +1,31 @@
1#ifndef _M68K_MSGBUF_H
2#define _M68K_MSGBUF_H
3
4/*
5 * The msqid64_ds structure for m68k architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct msqid64_ds {
15 struct ipc64_perm msg_perm;
16 __kernel_time_t msg_stime; /* last msgsnd time */
17 unsigned long __unused1;
18 __kernel_time_t msg_rtime; /* last msgrcv time */
19 unsigned long __unused2;
20 __kernel_time_t msg_ctime; /* last change time */
21 unsigned long __unused3;
22 unsigned long msg_cbytes; /* current number of bytes on queue */
23 unsigned long msg_qnum; /* number of messages in queue */
24 unsigned long msg_qbytes; /* max number of bytes on queue */
25 __kernel_pid_t msg_lspid; /* pid of last msgsnd */
26 __kernel_pid_t msg_lrpid; /* last receive pid */
27 unsigned long __unused4;
28 unsigned long __unused5;
29};
30
31#endif /* _M68K_MSGBUF_H */
diff --git a/arch/m68knommu/include/asm/mutex.h b/arch/m68k/include/asm/mutex.h
index 458c1f7fbc18..458c1f7fbc18 100644
--- a/arch/m68knommu/include/asm/mutex.h
+++ b/arch/m68k/include/asm/mutex.h
diff --git a/arch/m68k/include/asm/mvme147hw.h b/arch/m68k/include/asm/mvme147hw.h
new file mode 100644
index 000000000000..b81043108472
--- /dev/null
+++ b/arch/m68k/include/asm/mvme147hw.h
@@ -0,0 +1,113 @@
1#ifndef _MVME147HW_H_
2#define _MVME147HW_H_
3
4#include <asm/irq.h>
5
6typedef struct {
7 unsigned char
8 ctrl,
9 bcd_sec,
10 bcd_min,
11 bcd_hr,
12 bcd_dow,
13 bcd_dom,
14 bcd_mth,
15 bcd_year;
16} MK48T02;
17
18#define RTC_WRITE 0x80
19#define RTC_READ 0x40
20#define RTC_STOP 0x20
21
22#define m147_rtc ((MK48T02 * volatile)0xfffe07f8)
23
24
25struct pcc_regs {
26 volatile u_long dma_tadr;
27 volatile u_long dma_dadr;
28 volatile u_long dma_bcr;
29 volatile u_long dma_hr;
30 volatile u_short t1_preload;
31 volatile u_short t1_count;
32 volatile u_short t2_preload;
33 volatile u_short t2_count;
34 volatile u_char t1_int_cntrl;
35 volatile u_char t1_cntrl;
36 volatile u_char t2_int_cntrl;
37 volatile u_char t2_cntrl;
38 volatile u_char ac_fail;
39 volatile u_char watchdog;
40 volatile u_char lpt_intr;
41 volatile u_char lpt_cntrl;
42 volatile u_char dma_intr;
43 volatile u_char dma_cntrl;
44 volatile u_char bus_error;
45 volatile u_char dma_status;
46 volatile u_char abort;
47 volatile u_char ta_fnctl;
48 volatile u_char serial_cntrl;
49 volatile u_char general_cntrl;
50 volatile u_char lan_cntrl;
51 volatile u_char general_status;
52 volatile u_char scsi_interrupt;
53 volatile u_char slave;
54 volatile u_char soft1_cntrl;
55 volatile u_char int_base;
56 volatile u_char soft2_cntrl;
57 volatile u_char revision_level;
58 volatile u_char lpt_data;
59 volatile u_char lpt_status;
60 };
61
62#define m147_pcc ((struct pcc_regs * volatile)0xfffe1000)
63
64
65#define PCC_INT_ENAB 0x08
66
67#define PCC_TIMER_INT_CLR 0x80
68#define PCC_TIMER_PRELOAD 63936l
69
70#define PCC_LEVEL_ABORT 0x07
71#define PCC_LEVEL_SERIAL 0x04
72#define PCC_LEVEL_ETH 0x04
73#define PCC_LEVEL_TIMER1 0x04
74#define PCC_LEVEL_SCSI_PORT 0x04
75#define PCC_LEVEL_SCSI_DMA 0x04
76
77#define PCC_IRQ_AC_FAIL (IRQ_USER+0)
78#define PCC_IRQ_BERR (IRQ_USER+1)
79#define PCC_IRQ_ABORT (IRQ_USER+2)
80/* #define PCC_IRQ_SERIAL (IRQ_USER+3) */
81#define PCC_IRQ_PRINTER (IRQ_USER+7)
82#define PCC_IRQ_TIMER1 (IRQ_USER+8)
83#define PCC_IRQ_TIMER2 (IRQ_USER+9)
84#define PCC_IRQ_SOFTWARE1 (IRQ_USER+10)
85#define PCC_IRQ_SOFTWARE2 (IRQ_USER+11)
86
87
88#define M147_SCC_A_ADDR 0xfffe3002
89#define M147_SCC_B_ADDR 0xfffe3000
90#define M147_SCC_PCLK 5000000
91
92#define MVME147_IRQ_SCSI_PORT (IRQ_USER+0x45)
93#define MVME147_IRQ_SCSI_DMA (IRQ_USER+0x46)
94
95/* SCC interrupts, for MVME147 */
96
97#define MVME147_IRQ_TYPE_PRIO 0
98#define MVME147_IRQ_SCC_BASE (IRQ_USER+32)
99#define MVME147_IRQ_SCCB_TX (IRQ_USER+32)
100#define MVME147_IRQ_SCCB_STAT (IRQ_USER+34)
101#define MVME147_IRQ_SCCB_RX (IRQ_USER+36)
102#define MVME147_IRQ_SCCB_SPCOND (IRQ_USER+38)
103#define MVME147_IRQ_SCCA_TX (IRQ_USER+40)
104#define MVME147_IRQ_SCCA_STAT (IRQ_USER+42)
105#define MVME147_IRQ_SCCA_RX (IRQ_USER+44)
106#define MVME147_IRQ_SCCA_SPCOND (IRQ_USER+46)
107
108#define MVME147_LANCE_BASE 0xfffe1800
109#define MVME147_LANCE_IRQ (IRQ_USER+4)
110
111#define ETHERNET_ADDRESS 0xfffe0778
112
113#endif
diff --git a/arch/m68k/include/asm/mvme16xhw.h b/arch/m68k/include/asm/mvme16xhw.h
new file mode 100644
index 000000000000..6117f56653d2
--- /dev/null
+++ b/arch/m68k/include/asm/mvme16xhw.h
@@ -0,0 +1,111 @@
1#ifndef _M68K_MVME16xHW_H_
2#define _M68K_MVME16xHW_H_
3
4#include <asm/irq.h>
5
6/* Board ID data structure - pointer to this retrieved from Bug by head.S */
7
8/* Note, bytes 12 and 13 are board no in BCD (0162,0166,0167,0177,etc) */
9
10extern long mvme_bdid_ptr;
11
12typedef struct {
13 char bdid[4];
14 u_char rev, mth, day, yr;
15 u_short size, reserved;
16 u_short brdno;
17 char brdsuffix[2];
18 u_long options;
19 u_short clun, dlun, ctype, dnum;
20 u_long option2;
21} t_bdid, *p_bdid;
22
23
24typedef struct {
25 u_char ack_icr,
26 flt_icr,
27 sel_icr,
28 pe_icr,
29 bsy_icr,
30 spare1,
31 isr,
32 cr,
33 spare2,
34 spare3,
35 spare4,
36 data;
37} MVMElp, *MVMElpPtr;
38
39#define MVME_LPR_BASE 0xfff42030
40
41#define mvmelp ((*(volatile MVMElpPtr)(MVME_LPR_BASE)))
42
43typedef struct {
44 unsigned char
45 ctrl,
46 bcd_sec,
47 bcd_min,
48 bcd_hr,
49 bcd_dow,
50 bcd_dom,
51 bcd_mth,
52 bcd_year;
53} MK48T08_t, *MK48T08ptr_t;
54
55#define RTC_WRITE 0x80
56#define RTC_READ 0x40
57#define RTC_STOP 0x20
58
59#define MVME_RTC_BASE 0xfffc1ff8
60
61#define MVME_I596_BASE 0xfff46000
62
63#define MVME_SCC_A_ADDR 0xfff45005
64#define MVME_SCC_B_ADDR 0xfff45001
65#define MVME_SCC_PCLK 10000000
66
67#define MVME162_IRQ_TYPE_PRIO 0
68
69#define MVME167_IRQ_PRN (IRQ_USER+20)
70#define MVME16x_IRQ_I596 (IRQ_USER+23)
71#define MVME16x_IRQ_SCSI (IRQ_USER+21)
72#define MVME16x_IRQ_FLY (IRQ_USER+63)
73#define MVME167_IRQ_SER_ERR (IRQ_USER+28)
74#define MVME167_IRQ_SER_MODEM (IRQ_USER+29)
75#define MVME167_IRQ_SER_TX (IRQ_USER+30)
76#define MVME167_IRQ_SER_RX (IRQ_USER+31)
77#define MVME16x_IRQ_TIMER (IRQ_USER+25)
78#define MVME167_IRQ_ABORT (IRQ_USER+46)
79#define MVME162_IRQ_ABORT (IRQ_USER+30)
80
81/* SCC interrupts, for MVME162 */
82#define MVME162_IRQ_SCC_BASE (IRQ_USER+0)
83#define MVME162_IRQ_SCCB_TX (IRQ_USER+0)
84#define MVME162_IRQ_SCCB_STAT (IRQ_USER+2)
85#define MVME162_IRQ_SCCB_RX (IRQ_USER+4)
86#define MVME162_IRQ_SCCB_SPCOND (IRQ_USER+6)
87#define MVME162_IRQ_SCCA_TX (IRQ_USER+8)
88#define MVME162_IRQ_SCCA_STAT (IRQ_USER+10)
89#define MVME162_IRQ_SCCA_RX (IRQ_USER+12)
90#define MVME162_IRQ_SCCA_SPCOND (IRQ_USER+14)
91
92/* MVME162 version register */
93
94#define MVME162_VERSION_REG 0xfff4202e
95
96extern unsigned short mvme16x_config;
97
98/* Lower 8 bits must match the revision register in the MC2 chip */
99
100#define MVME16x_CONFIG_SPEED_32 0x0001
101#define MVME16x_CONFIG_NO_VMECHIP2 0x0002
102#define MVME16x_CONFIG_NO_SCSICHIP 0x0004
103#define MVME16x_CONFIG_NO_ETHERNET 0x0008
104#define MVME16x_CONFIG_GOT_FPU 0x0010
105
106#define MVME16x_CONFIG_GOT_LP 0x0100
107#define MVME16x_CONFIG_GOT_CD2401 0x0200
108#define MVME16x_CONFIG_GOT_SCCA 0x0400
109#define MVME16x_CONFIG_GOT_SCCB 0x0800
110
111#endif
diff --git a/arch/m68knommu/include/asm/nettel.h b/arch/m68k/include/asm/nettel.h
index 0299f6a2deeb..0299f6a2deeb 100644
--- a/arch/m68knommu/include/asm/nettel.h
+++ b/arch/m68k/include/asm/nettel.h
diff --git a/arch/m68k/include/asm/nubus.h b/arch/m68k/include/asm/nubus.h
new file mode 100644
index 000000000000..d6be9976f1ae
--- /dev/null
+++ b/arch/m68k/include/asm/nubus.h
@@ -0,0 +1,46 @@
1#ifndef _ASM_M68K_NUBUS_H
2#define _ASM_M68K_NUBUS_H
3
4#include <asm/raw_io.h>
5
6#define nubus_readb raw_inb
7#define nubus_readw raw_inw
8#define nubus_readl raw_inl
9
10#define nubus_writeb raw_outb
11#define nubus_writew raw_outw
12#define nubus_writel raw_outl
13
14#define nubus_memset_io(a,b,c) memset((void *)(a),(b),(c))
15#define nubus_memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c))
16#define nubus_memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c))
17
18static inline void *nubus_remap_nocache_ser(unsigned long physaddr,
19 unsigned long size)
20{
21 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
22}
23
24static inline void *nubus_remap_nocache_nonser(unsigned long physaddr,
25 unsigned long size)
26{
27 return __ioremap(physaddr, size, IOMAP_NOCACHE_NONSER);
28}
29
30static inline void *nbus_remap_writethrough(unsigned long physaddr,
31 unsigned long size)
32{
33 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH);
34}
35
36static inline void *nubus_remap_fullcache(unsigned long physaddr,
37 unsigned long size)
38{
39 return __ioremap(physaddr, size, IOMAP_FULL_CACHING);
40}
41
42#define nubus_unmap iounmap
43#define nubus_iounmap iounmap
44#define nubus_ioremap nubus_remap_nocache_ser
45
46#endif /* _ASM_NUBUS_H */
diff --git a/arch/m68k/include/asm/openprom.h b/arch/m68k/include/asm/openprom.h
new file mode 100644
index 000000000000..d33cdadf78e1
--- /dev/null
+++ b/arch/m68k/include/asm/openprom.h
@@ -0,0 +1,312 @@
1#ifndef __SPARC_OPENPROM_H
2#define __SPARC_OPENPROM_H
3
4/* openprom.h: Prom structures and defines for access to the OPENBOOT
5 * prom routines and data areas.
6 *
7 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
8 */
9
10
11/* Empirical constants... */
12#ifdef CONFIG_SUN3
13#define KADB_DEBUGGER_BEGVM 0x0fee0000 /* There is no kadb yet but...*/
14#define LINUX_OPPROM_BEGVM 0x0fef0000
15#define LINUX_OPPROM_ENDVM 0x0ff10000 /* I think this is right - tm */
16#else
17#define KADB_DEBUGGER_BEGVM 0xffc00000 /* Where kern debugger is in virt-mem */
18#define LINUX_OPPROM_BEGVM 0xffd00000
19#define LINUX_OPPROM_ENDVM 0xfff00000
20#define LINUX_OPPROM_MAGIC 0x10010407
21#endif
22
23#ifndef __ASSEMBLY__
24/* V0 prom device operations. */
25struct linux_dev_v0_funcs {
26 int (*v0_devopen)(char *device_str);
27 int (*v0_devclose)(int dev_desc);
28 int (*v0_rdblkdev)(int dev_desc, int num_blks, int blk_st, char *buf);
29 int (*v0_wrblkdev)(int dev_desc, int num_blks, int blk_st, char *buf);
30 int (*v0_wrnetdev)(int dev_desc, int num_bytes, char *buf);
31 int (*v0_rdnetdev)(int dev_desc, int num_bytes, char *buf);
32 int (*v0_rdchardev)(int dev_desc, int num_bytes, int dummy, char *buf);
33 int (*v0_wrchardev)(int dev_desc, int num_bytes, int dummy, char *buf);
34 int (*v0_seekdev)(int dev_desc, long logical_offst, int from);
35};
36
37/* V2 and later prom device operations. */
38struct linux_dev_v2_funcs {
39 int (*v2_inst2pkg)(int d); /* Convert ihandle to phandle */
40 char * (*v2_dumb_mem_alloc)(char *va, unsigned sz);
41 void (*v2_dumb_mem_free)(char *va, unsigned sz);
42
43 /* To map devices into virtual I/O space. */
44 char * (*v2_dumb_mmap)(char *virta, int which_io, unsigned paddr, unsigned sz);
45 void (*v2_dumb_munmap)(char *virta, unsigned size);
46
47 int (*v2_dev_open)(char *devpath);
48 void (*v2_dev_close)(int d);
49 int (*v2_dev_read)(int d, char *buf, int nbytes);
50 int (*v2_dev_write)(int d, char *buf, int nbytes);
51 int (*v2_dev_seek)(int d, int hi, int lo);
52
53 /* Never issued (multistage load support) */
54 void (*v2_wheee2)(void);
55 void (*v2_wheee3)(void);
56};
57
58struct linux_mlist_v0 {
59 struct linux_mlist_v0 *theres_more;
60 char *start_adr;
61 unsigned num_bytes;
62};
63
64struct linux_mem_v0 {
65 struct linux_mlist_v0 **v0_totphys;
66 struct linux_mlist_v0 **v0_prommap;
67 struct linux_mlist_v0 **v0_available; /* What we can use */
68};
69
70/* Arguments sent to the kernel from the boot prompt. */
71struct linux_arguments_v0 {
72 char *argv[8];
73 char args[100];
74 char boot_dev[2];
75 int boot_dev_ctrl;
76 int boot_dev_unit;
77 int dev_partition;
78 char *kernel_file_name;
79 void *aieee1; /* XXX */
80};
81
82/* V2 and up boot things. */
83struct linux_bootargs_v2 {
84 char **bootpath;
85 char **bootargs;
86 int *fd_stdin;
87 int *fd_stdout;
88};
89
90#if defined(CONFIG_SUN3) || defined(CONFIG_SUN3X)
91struct linux_romvec {
92 char *pv_initsp;
93 int (*pv_startmon)(void);
94
95 int *diagberr;
96
97 struct linux_arguments_v0 **pv_v0bootargs;
98 unsigned *pv_sun3mem;
99
100 unsigned char (*pv_getchar)(void);
101 int (*pv_putchar)(int ch);
102 int (*pv_nbgetchar)(void);
103 int (*pv_nbputchar)(int ch);
104 unsigned char *pv_echo;
105 unsigned char *pv_insource;
106 unsigned char *pv_outsink;
107
108 int (*pv_getkey)(void);
109 int (*pv_initgetkey)(void);
110 unsigned int *pv_translation;
111 unsigned char *pv_keybid;
112 int *pv_screen_x;
113 int *pv_screen_y;
114 struct keybuf *pv_keybuf;
115
116 char *pv_monid;
117
118 /*
119 * Frame buffer output and terminal emulation
120 */
121
122 int (*pv_fbwritechar)(char);
123 int *pv_fbaddr;
124 char **pv_font;
125 int (*pv_fbwritestr)(char);
126
127 void (*pv_reboot)(char *bootstr);
128
129 /*
130 * Line input and parsing
131 */
132
133 unsigned char *pv_linebuf;
134 unsigned char **pv_lineptr;
135 int *pv_linesize;
136 int (*pv_getline)(void);
137 unsigned char (*pv_getnextchar)(void);
138 unsigned char (*pv_peeknextchar)(void);
139 int *pv_fbthere;
140 int (*pv_getnum)(void);
141
142 void (*pv_printf)(const char *fmt, ...);
143 int (*pv_printhex)(void);
144
145 unsigned char *pv_leds;
146 int (*pv_setleds)(void);
147
148 /*
149 * Non-maskable interrupt (nmi) information
150 */
151
152 int (*pv_nmiaddr)(void);
153 int (*pv_abortentry)(void);
154 int *pv_nmiclock;
155
156 int *pv_fbtype;
157
158 /*
159 * Assorted other things
160 */
161
162 unsigned pv_romvers;
163 struct globram *pv_globram;
164 char *pv_kbdzscc;
165
166 int *pv_keyrinit;
167 unsigned char *pv_keyrtick;
168 unsigned *pv_memoryavail;
169 long *pv_resetaddr;
170 long *pv_resetmap;
171
172 void (*pv_halt)(void);
173 unsigned char *pv_memorybitmap;
174
175#ifdef CONFIG_SUN3
176 void (*pv_setctxt)(int ctxt, char *va, int pmeg);
177 void (*pv_vector_cmd)(void);
178 int dummy1z;
179 int dummy2z;
180 int dummy3z;
181 int dummy4z;
182#endif
183};
184#else
185/* The top level PROM vector. */
186struct linux_romvec {
187 /* Version numbers. */
188 unsigned int pv_magic_cookie;
189 unsigned int pv_romvers;
190 unsigned int pv_plugin_revision;
191 unsigned int pv_printrev;
192
193 /* Version 0 memory descriptors. */
194 struct linux_mem_v0 pv_v0mem;
195
196 /* Node operations. */
197 struct linux_nodeops *pv_nodeops;
198
199 char **pv_bootstr;
200 struct linux_dev_v0_funcs pv_v0devops;
201
202 char *pv_stdin;
203 char *pv_stdout;
204#define PROMDEV_KBD 0 /* input from keyboard */
205#define PROMDEV_SCREEN 0 /* output to screen */
206#define PROMDEV_TTYA 1 /* in/out to ttya */
207#define PROMDEV_TTYB 2 /* in/out to ttyb */
208
209 /* Blocking getchar/putchar. NOT REENTRANT! (grr) */
210 int (*pv_getchar)(void);
211 void (*pv_putchar)(int ch);
212
213 /* Non-blocking variants. */
214 int (*pv_nbgetchar)(void);
215 int (*pv_nbputchar)(int ch);
216
217 void (*pv_putstr)(char *str, int len);
218
219 /* Miscellany. */
220 void (*pv_reboot)(char *bootstr);
221 void (*pv_printf)(__const__ char *fmt, ...);
222 void (*pv_abort)(void);
223 __volatile__ int *pv_ticks;
224 void (*pv_halt)(void);
225 void (**pv_synchook)(void);
226
227 /* Evaluate a forth string, not different proto for V0 and V2->up. */
228 union {
229 void (*v0_eval)(int len, char *str);
230 void (*v2_eval)(char *str);
231 } pv_fortheval;
232
233 struct linux_arguments_v0 **pv_v0bootargs;
234
235 /* Get ether address. */
236 unsigned int (*pv_enaddr)(int d, char *enaddr);
237
238 struct linux_bootargs_v2 pv_v2bootargs;
239 struct linux_dev_v2_funcs pv_v2devops;
240
241 int filler[15];
242
243 /* This one is sun4c/sun4 only. */
244 void (*pv_setctxt)(int ctxt, char *va, int pmeg);
245
246 /* Prom version 3 Multiprocessor routines. This stuff is crazy.
247 * No joke. Calling these when there is only one cpu probably
248 * crashes the machine, have to test this. :-)
249 */
250
251 /* v3_cpustart() will start the cpu 'whichcpu' in mmu-context
252 * 'thiscontext' executing at address 'prog_counter'
253 */
254 int (*v3_cpustart)(unsigned int whichcpu, int ctxtbl_ptr,
255 int thiscontext, char *prog_counter);
256
257 /* v3_cpustop() will cause cpu 'whichcpu' to stop executing
258 * until a resume cpu call is made.
259 */
260 int (*v3_cpustop)(unsigned int whichcpu);
261
262 /* v3_cpuidle() will idle cpu 'whichcpu' until a stop or
263 * resume cpu call is made.
264 */
265 int (*v3_cpuidle)(unsigned int whichcpu);
266
267 /* v3_cpuresume() will resume processor 'whichcpu' executing
268 * starting with whatever 'pc' and 'npc' were left at the
269 * last 'idle' or 'stop' call.
270 */
271 int (*v3_cpuresume)(unsigned int whichcpu);
272};
273#endif
274
275/* Routines for traversing the prom device tree. */
276struct linux_nodeops {
277 int (*no_nextnode)(int node);
278 int (*no_child)(int node);
279 int (*no_proplen)(int node, char *name);
280 int (*no_getprop)(int node, char *name, char *val);
281 int (*no_setprop)(int node, char *name, char *val, int len);
282 char * (*no_nextprop)(int node, char *name);
283};
284
285/* More fun PROM structures for device probing. */
286#define PROMREG_MAX 16
287#define PROMVADDR_MAX 16
288#define PROMINTR_MAX 15
289
290struct linux_prom_registers {
291 int which_io; /* is this in OBIO space? */
292 char *phys_addr; /* The physical address of this register */
293 int reg_size; /* How many bytes does this register take up? */
294};
295
296struct linux_prom_irqs {
297 int pri; /* IRQ priority */
298 int vector; /* This is foobar, what does it do? */
299};
300
301/* Element of the "ranges" vector */
302struct linux_prom_ranges {
303 unsigned int ot_child_space;
304 unsigned int ot_child_base; /* Bus feels this */
305 unsigned int ot_parent_space;
306 unsigned int ot_parent_base; /* CPU looks from here */
307 unsigned int or_size;
308};
309
310#endif /* !(__ASSEMBLY__) */
311
312#endif /* !(__SPARC_OPENPROM_H) */
diff --git a/arch/m68k/include/asm/oplib.h b/arch/m68k/include/asm/oplib.h
new file mode 100644
index 000000000000..f082d03336bd
--- /dev/null
+++ b/arch/m68k/include/asm/oplib.h
@@ -0,0 +1,291 @@
1/*
2 * oplib.h: Describes the interface and available routines in the
3 * Linux Prom library.
4 *
5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
6 */
7
8#ifndef __SPARC_OPLIB_H
9#define __SPARC_OPLIB_H
10
11#include <asm/openprom.h>
12
13/* The master romvec pointer... */
14extern struct linux_romvec *romvec;
15
16/* Enumeration to describe the prom major version we have detected. */
17enum prom_major_version {
18 PROM_V0, /* Original sun4c V0 prom */
19 PROM_V2, /* sun4c and early sun4m V2 prom */
20 PROM_V3, /* sun4m and later, up to sun4d/sun4e machines V3 */
21 PROM_P1275, /* IEEE compliant ISA based Sun PROM, only sun4u */
22};
23
24extern enum prom_major_version prom_vers;
25/* Revision, and firmware revision. */
26extern unsigned int prom_rev, prom_prev;
27
28/* Root node of the prom device tree, this stays constant after
29 * initialization is complete.
30 */
31extern int prom_root_node;
32
33/* Pointer to prom structure containing the device tree traversal
34 * and usage utility functions. Only prom-lib should use these,
35 * users use the interface defined by the library only!
36 */
37extern struct linux_nodeops *prom_nodeops;
38
39/* The functions... */
40
41/* You must call prom_init() before using any of the library services,
42 * preferably as early as possible. Pass it the romvec pointer.
43 */
44extern void prom_init(struct linux_romvec *rom_ptr);
45
46/* Boot argument acquisition, returns the boot command line string. */
47extern char *prom_getbootargs(void);
48
49/* Device utilities. */
50
51/* Map and unmap devices in IO space at virtual addresses. Note that the
52 * virtual address you pass is a request and the prom may put your mappings
53 * somewhere else, so check your return value as that is where your new
54 * mappings really are!
55 *
56 * Another note, these are only available on V2 or higher proms!
57 */
58extern char *prom_mapio(char *virt_hint, int io_space, unsigned int phys_addr, unsigned int num_bytes);
59extern void prom_unmapio(char *virt_addr, unsigned int num_bytes);
60
61/* Device operations. */
62
63/* Open the device described by the passed string. Note, that the format
64 * of the string is different on V0 vs. V2->higher proms. The caller must
65 * know what he/she is doing! Returns the device descriptor, an int.
66 */
67extern int prom_devopen(char *device_string);
68
69/* Close a previously opened device described by the passed integer
70 * descriptor.
71 */
72extern int prom_devclose(int device_handle);
73
74/* Do a seek operation on the device described by the passed integer
75 * descriptor.
76 */
77extern void prom_seek(int device_handle, unsigned int seek_hival,
78 unsigned int seek_lowval);
79
80/* Machine memory configuration routine. */
81
82/* This function returns a V0 format memory descriptor table, it has three
83 * entries. One for the total amount of physical ram on the machine, one
84 * for the amount of physical ram available, and one describing the virtual
85 * areas which are allocated by the prom. So, in a sense the physical
86 * available is a calculation of the total physical minus the physical mapped
87 * by the prom with virtual mappings.
88 *
89 * These lists are returned pre-sorted, this should make your life easier
90 * since the prom itself is way too lazy to do such nice things.
91 */
92extern struct linux_mem_v0 *prom_meminfo(void);
93
94/* Miscellaneous routines, don't really fit in any category per se. */
95
96/* Reboot the machine with the command line passed. */
97extern void prom_reboot(char *boot_command);
98
99/* Evaluate the forth string passed. */
100extern void prom_feval(char *forth_string);
101
102/* Enter the prom, with possibility of continuation with the 'go'
103 * command in newer proms.
104 */
105extern void prom_cmdline(void);
106
107/* Enter the prom, with no chance of continuation for the stand-alone
108 * which calls this.
109 */
110extern void prom_halt(void);
111
112/* Set the PROM 'sync' callback function to the passed function pointer.
113 * When the user gives the 'sync' command at the prom prompt while the
114 * kernel is still active, the prom will call this routine.
115 *
116 * XXX The arguments are different on V0 vs. V2->higher proms, grrr! XXX
117 */
118typedef void (*sync_func_t)(void);
119extern void prom_setsync(sync_func_t func_ptr);
120
121/* Acquire the IDPROM of the root node in the prom device tree. This
122 * gets passed a buffer where you would like it stuffed. The return value
123 * is the format type of this idprom or 0xff on error.
124 */
125extern unsigned char prom_get_idprom(char *idp_buffer, int idpbuf_size);
126
127/* Get the prom major version. */
128extern int prom_version(void);
129
130/* Get the prom plugin revision. */
131extern int prom_getrev(void);
132
133/* Get the prom firmware revision. */
134extern int prom_getprev(void);
135
136/* Character operations to/from the console.... */
137
138/* Non-blocking get character from console. */
139extern int prom_nbgetchar(void);
140
141/* Non-blocking put character to console. */
142extern int prom_nbputchar(char character);
143
144/* Blocking get character from console. */
145extern char prom_getchar(void);
146
147/* Blocking put character to console. */
148extern void prom_putchar(char character);
149
150/* Prom's internal printf routine, don't use in kernel/boot code. */
151void prom_printf(char *fmt, ...);
152
153/* Query for input device type */
154
155enum prom_input_device {
156 PROMDEV_IKBD, /* input from keyboard */
157 PROMDEV_ITTYA, /* input from ttya */
158 PROMDEV_ITTYB, /* input from ttyb */
159 PROMDEV_I_UNK,
160};
161
162extern enum prom_input_device prom_query_input_device(void);
163
164/* Query for output device type */
165
166enum prom_output_device {
167 PROMDEV_OSCREEN, /* to screen */
168 PROMDEV_OTTYA, /* to ttya */
169 PROMDEV_OTTYB, /* to ttyb */
170 PROMDEV_O_UNK,
171};
172
173extern enum prom_output_device prom_query_output_device(void);
174
175/* Multiprocessor operations... */
176
177/* Start the CPU with the given device tree node, context table, and context
178 * at the passed program counter.
179 */
180extern int prom_startcpu(int cpunode, struct linux_prom_registers *context_table,
181 int context, char *program_counter);
182
183/* Stop the CPU with the passed device tree node. */
184extern int prom_stopcpu(int cpunode);
185
186/* Idle the CPU with the passed device tree node. */
187extern int prom_idlecpu(int cpunode);
188
189/* Re-Start the CPU with the passed device tree node. */
190extern int prom_restartcpu(int cpunode);
191
192/* PROM memory allocation facilities... */
193
194/* Allocated at possibly the given virtual address a chunk of the
195 * indicated size.
196 */
197extern char *prom_alloc(char *virt_hint, unsigned int size);
198
199/* Free a previously allocated chunk. */
200extern void prom_free(char *virt_addr, unsigned int size);
201
202/* Sun4/sun4c specific memory-management startup hook. */
203
204/* Map the passed segment in the given context at the passed
205 * virtual address.
206 */
207extern void prom_putsegment(int context, unsigned long virt_addr,
208 int physical_segment);
209
210/* PROM device tree traversal functions... */
211
212/* Get the child node of the given node, or zero if no child exists. */
213extern int prom_getchild(int parent_node);
214
215/* Get the next sibling node of the given node, or zero if no further
216 * siblings exist.
217 */
218extern int prom_getsibling(int node);
219
220/* Get the length, at the passed node, of the given property type.
221 * Returns -1 on error (ie. no such property at this node).
222 */
223extern int prom_getproplen(int thisnode, char *property);
224
225/* Fetch the requested property using the given buffer. Returns
226 * the number of bytes the prom put into your buffer or -1 on error.
227 */
228extern int prom_getproperty(int thisnode, char *property,
229 char *prop_buffer, int propbuf_size);
230
231/* Acquire an integer property. */
232extern int prom_getint(int node, char *property);
233
234/* Acquire an integer property, with a default value. */
235extern int prom_getintdefault(int node, char *property, int defval);
236
237/* Acquire a boolean property, 0=FALSE 1=TRUE. */
238extern int prom_getbool(int node, char *prop);
239
240/* Acquire a string property, null string on error. */
241extern void prom_getstring(int node, char *prop, char *buf, int bufsize);
242
243/* Does the passed node have the given "name"? YES=1 NO=0 */
244extern int prom_nodematch(int thisnode, char *name);
245
246/* Search all siblings starting at the passed node for "name" matching
247 * the given string. Returns the node on success, zero on failure.
248 */
249extern int prom_searchsiblings(int node_start, char *name);
250
251/* Return the first property type, as a string, for the given node.
252 * Returns a null string on error.
253 */
254extern char *prom_firstprop(int node);
255
256/* Returns the next property after the passed property for the given
257 * node. Returns null string on failure.
258 */
259extern char *prom_nextprop(int node, char *prev_property);
260
261/* Returns 1 if the specified node has given property. */
262extern int prom_node_has_property(int node, char *property);
263
264/* Set the indicated property at the given node with the passed value.
265 * Returns the number of bytes of your value that the prom took.
266 */
267extern int prom_setprop(int node, char *prop_name, char *prop_value,
268 int value_size);
269
270extern int prom_pathtoinode(char *path);
271extern int prom_inst2pkg(int);
272
273/* Dorking with Bus ranges... */
274
275/* Adjust reg values with the passed ranges. */
276extern void prom_adjust_regs(struct linux_prom_registers *regp, int nregs,
277 struct linux_prom_ranges *rangep, int nranges);
278
279/* Adjust child ranges with the passed parent ranges. */
280extern void prom_adjust_ranges(struct linux_prom_ranges *cranges, int ncranges,
281 struct linux_prom_ranges *pranges, int npranges);
282
283/* Apply promlib probed OBIO ranges to registers. */
284extern void prom_apply_obio_ranges(struct linux_prom_registers *obioregs, int nregs);
285
286/* Apply ranges of any prom node (and optionally parent node as well) to registers. */
287extern void prom_apply_generic_ranges(int node, int parent,
288 struct linux_prom_registers *sbusregs, int nregs);
289
290
291#endif /* !(__SPARC_OPLIB_H) */
diff --git a/arch/m68k/include/asm/page.h b/arch/m68k/include/asm/page.h
new file mode 100644
index 000000000000..f2b4480cc98a
--- /dev/null
+++ b/arch/m68k/include/asm/page.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "page_no.h"
3#else
4#include "page_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/page_mm.h b/arch/m68k/include/asm/page_mm.h
new file mode 100644
index 000000000000..a34b8bad7847
--- /dev/null
+++ b/arch/m68k/include/asm/page_mm.h
@@ -0,0 +1,228 @@
1#ifndef _M68K_PAGE_H
2#define _M68K_PAGE_H
3
4#include <linux/const.h>
5
6/* PAGE_SHIFT determines the page size */
7#ifndef CONFIG_SUN3
8#define PAGE_SHIFT (12)
9#else
10#define PAGE_SHIFT (13)
11#endif
12#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
13#define PAGE_MASK (~(PAGE_SIZE-1))
14
15#include <asm/setup.h>
16
17#if PAGE_SHIFT < 13
18#define THREAD_SIZE (8192)
19#else
20#define THREAD_SIZE PAGE_SIZE
21#endif
22
23#ifndef __ASSEMBLY__
24
25#include <linux/compiler.h>
26
27#include <asm/module.h>
28
29#define get_user_page(vaddr) __get_free_page(GFP_KERNEL)
30#define free_user_page(page, addr) free_page(addr)
31
32/*
33 * We don't need to check for alignment etc.
34 */
35#ifdef CPU_M68040_OR_M68060_ONLY
36static inline void copy_page(void *to, void *from)
37{
38 unsigned long tmp;
39
40 __asm__ __volatile__("1:\t"
41 ".chip 68040\n\t"
42 "move16 %1@+,%0@+\n\t"
43 "move16 %1@+,%0@+\n\t"
44 ".chip 68k\n\t"
45 "dbra %2,1b\n\t"
46 : "=a" (to), "=a" (from), "=d" (tmp)
47 : "0" (to), "1" (from) , "2" (PAGE_SIZE / 32 - 1)
48 );
49}
50
51static inline void clear_page(void *page)
52{
53 unsigned long tmp;
54 unsigned long *sp = page;
55
56 *sp++ = 0;
57 *sp++ = 0;
58 *sp++ = 0;
59 *sp++ = 0;
60
61 __asm__ __volatile__("1:\t"
62 ".chip 68040\n\t"
63 "move16 %2@+,%0@+\n\t"
64 ".chip 68k\n\t"
65 "subqw #8,%2\n\t"
66 "subqw #8,%2\n\t"
67 "dbra %1,1b\n\t"
68 : "=a" (sp), "=d" (tmp)
69 : "a" (page), "0" (sp),
70 "1" ((PAGE_SIZE - 16) / 16 - 1));
71}
72
73#else
74#define clear_page(page) memset((page), 0, PAGE_SIZE)
75#define copy_page(to,from) memcpy((to), (from), PAGE_SIZE)
76#endif
77
78#define clear_user_page(addr, vaddr, page) \
79 do { clear_page(addr); \
80 flush_dcache_page(page); \
81 } while (0)
82#define copy_user_page(to, from, vaddr, page) \
83 do { copy_page(to, from); \
84 flush_dcache_page(page); \
85 } while (0)
86
87/*
88 * These are used to make use of C type-checking..
89 */
90typedef struct { unsigned long pte; } pte_t;
91typedef struct { unsigned long pmd[16]; } pmd_t;
92typedef struct { unsigned long pgd; } pgd_t;
93typedef struct { unsigned long pgprot; } pgprot_t;
94typedef struct page *pgtable_t;
95
96#define pte_val(x) ((x).pte)
97#define pmd_val(x) ((&x)->pmd[0])
98#define pgd_val(x) ((x).pgd)
99#define pgprot_val(x) ((x).pgprot)
100
101#define __pte(x) ((pte_t) { (x) } )
102#define __pmd(x) ((pmd_t) { (x) } )
103#define __pgd(x) ((pgd_t) { (x) } )
104#define __pgprot(x) ((pgprot_t) { (x) } )
105
106#endif /* !__ASSEMBLY__ */
107
108#include <asm/page_offset.h>
109
110#define PAGE_OFFSET (PAGE_OFFSET_RAW)
111
112#ifndef __ASSEMBLY__
113
114extern unsigned long m68k_memoffset;
115
116#ifndef CONFIG_SUN3
117
118#define WANT_PAGE_VIRTUAL
119
120static inline unsigned long ___pa(void *vaddr)
121{
122 unsigned long paddr;
123 asm (
124 "1: addl #0,%0\n"
125 m68k_fixup(%c2, 1b+2)
126 : "=r" (paddr)
127 : "0" (vaddr), "i" (m68k_fixup_memoffset));
128 return paddr;
129}
130#define __pa(vaddr) ___pa((void *)(vaddr))
131static inline void *__va(unsigned long paddr)
132{
133 void *vaddr;
134 asm (
135 "1: subl #0,%0\n"
136 m68k_fixup(%c2, 1b+2)
137 : "=r" (vaddr)
138 : "0" (paddr), "i" (m68k_fixup_memoffset));
139 return vaddr;
140}
141
142#else /* !CONFIG_SUN3 */
143/* This #define is a horrible hack to suppress lots of warnings. --m */
144#define __pa(x) ___pa((unsigned long)(x))
145static inline unsigned long ___pa(unsigned long x)
146{
147 if(x == 0)
148 return 0;
149 if(x >= PAGE_OFFSET)
150 return (x-PAGE_OFFSET);
151 else
152 return (x+0x2000000);
153}
154
155static inline void *__va(unsigned long x)
156{
157 if(x == 0)
158 return (void *)0;
159
160 if(x < 0x2000000)
161 return (void *)(x+PAGE_OFFSET);
162 else
163 return (void *)(x-0x2000000);
164}
165#endif /* CONFIG_SUN3 */
166
167/*
168 * NOTE: virtual isn't really correct, actually it should be the offset into the
169 * memory node, but we have no highmem, so that works for now.
170 * TODO: implement (fast) pfn<->pgdat_idx conversion functions, this makes lots
171 * of the shifts unnecessary.
172 */
173#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT)
174#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT)
175
176extern int m68k_virt_to_node_shift;
177
178#ifdef CONFIG_SINGLE_MEMORY_CHUNK
179#define __virt_to_node(addr) (&pg_data_map[0])
180#else
181extern struct pglist_data *pg_data_table[];
182
183static inline __attribute_const__ int __virt_to_node_shift(void)
184{
185 int shift;
186
187 asm (
188 "1: moveq #0,%0\n"
189 m68k_fixup(%c1, 1b)
190 : "=d" (shift)
191 : "i" (m68k_fixup_vnode_shift));
192 return shift;
193}
194
195#define __virt_to_node(addr) (pg_data_table[(unsigned long)(addr) >> __virt_to_node_shift()])
196#endif
197
198#define virt_to_page(addr) ({ \
199 pfn_to_page(virt_to_pfn(addr)); \
200})
201#define page_to_virt(page) ({ \
202 pfn_to_virt(page_to_pfn(page)); \
203})
204
205#define pfn_to_page(pfn) ({ \
206 unsigned long __pfn = (pfn); \
207 struct pglist_data *pgdat; \
208 pgdat = __virt_to_node((unsigned long)pfn_to_virt(__pfn)); \
209 pgdat->node_mem_map + (__pfn - pgdat->node_start_pfn); \
210})
211#define page_to_pfn(_page) ({ \
212 struct page *__p = (_page); \
213 struct pglist_data *pgdat; \
214 pgdat = &pg_data_map[page_to_nid(__p)]; \
215 ((__p) - pgdat->node_mem_map) + pgdat->node_start_pfn; \
216})
217
218#define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
219#define pfn_valid(pfn) virt_addr_valid(pfn_to_virt(pfn))
220
221#endif /* __ASSEMBLY__ */
222
223#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
224 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
225
226#include <asm-generic/page.h>
227
228#endif /* _M68K_PAGE_H */
diff --git a/arch/m68knommu/include/asm/page.h b/arch/m68k/include/asm/page_no.h
index 3a1ede4544cb..3a1ede4544cb 100644
--- a/arch/m68knommu/include/asm/page.h
+++ b/arch/m68k/include/asm/page_no.h
diff --git a/arch/m68k/include/asm/page_offset.h b/arch/m68k/include/asm/page_offset.h
new file mode 100644
index 000000000000..66455c849fbb
--- /dev/null
+++ b/arch/m68k/include/asm/page_offset.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "page_offset_no.h"
3#else
4#include "page_offset_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/page_offset_mm.h b/arch/m68k/include/asm/page_offset_mm.h
new file mode 100644
index 000000000000..1cbdb7f30ac2
--- /dev/null
+++ b/arch/m68k/include/asm/page_offset_mm.h
@@ -0,0 +1,8 @@
1
2/* This handles the memory map.. */
3#ifndef CONFIG_SUN3
4#define PAGE_OFFSET_RAW 0x00000000
5#else
6#define PAGE_OFFSET_RAW 0x0E000000
7#endif
8
diff --git a/arch/m68knommu/include/asm/page_offset.h b/arch/m68k/include/asm/page_offset_no.h
index d4e73e0ba646..d4e73e0ba646 100644
--- a/arch/m68knommu/include/asm/page_offset.h
+++ b/arch/m68k/include/asm/page_offset_no.h
diff --git a/arch/m68k/include/asm/param.h b/arch/m68k/include/asm/param.h
new file mode 100644
index 000000000000..40d1112a4588
--- /dev/null
+++ b/arch/m68k/include/asm/param.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "param_no.h"
3#else
4#include "param_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/param_mm.h b/arch/m68k/include/asm/param_mm.h
new file mode 100644
index 000000000000..536a27888358
--- /dev/null
+++ b/arch/m68k/include/asm/param_mm.h
@@ -0,0 +1,22 @@
1#ifndef _M68K_PARAM_H
2#define _M68K_PARAM_H
3
4#ifdef __KERNEL__
5# define HZ CONFIG_HZ /* Internal kernel timer frequency */
6# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
7# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
8#endif
9
10#ifndef HZ
11#define HZ 100
12#endif
13
14#define EXEC_PAGESIZE 8192
15
16#ifndef NOGROUP
17#define NOGROUP (-1)
18#endif
19
20#define MAXHOSTNAMELEN 64 /* max length of hostname */
21
22#endif /* _M68K_PARAM_H */
diff --git a/arch/m68knommu/include/asm/param.h b/arch/m68k/include/asm/param_no.h
index 6044397adb64..6044397adb64 100644
--- a/arch/m68knommu/include/asm/param.h
+++ b/arch/m68k/include/asm/param_no.h
diff --git a/arch/m68k/include/asm/parport.h b/arch/m68k/include/asm/parport.h
new file mode 100644
index 000000000000..646b1872f73b
--- /dev/null
+++ b/arch/m68k/include/asm/parport.h
@@ -0,0 +1,26 @@
1/*
2 * parport.h: platform-specific PC-style parport initialisation
3 *
4 * Copyright (C) 1999, 2000 Tim Waugh <tim@cyberelk.demon.co.uk>
5 *
6 * This file should only be included by drivers/parport/parport_pc.c.
7 *
8 * RZ: for use with Q40 and other ISA machines
9 */
10
11#ifndef _ASM_M68K_PARPORT_H
12#define _ASM_M68K_PARPORT_H 1
13
14#define insl(port,buf,len) isa_insb(port,buf,(len)<<2)
15#define outsl(port,buf,len) isa_outsb(port,buf,(len)<<2)
16
17/* no dma, or IRQ autoprobing */
18static int __devinit parport_pc_find_isa_ports (int autoirq, int autodma);
19static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma)
20{
21 if (! (MACH_IS_Q40))
22 return 0; /* count=0 */
23 return parport_pc_find_isa_ports (PARPORT_IRQ_NONE, PARPORT_DMA_NONE);
24}
25
26#endif /* !(_ASM_M68K_PARPORT_H) */
diff --git a/arch/m68k/include/asm/pci.h b/arch/m68k/include/asm/pci.h
new file mode 100644
index 000000000000..dbea95373080
--- /dev/null
+++ b/arch/m68k/include/asm/pci.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pci_no.h"
3#else
4#include "pci_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/pci_mm.h b/arch/m68k/include/asm/pci_mm.h
new file mode 100644
index 000000000000..4ad0aea48ab4
--- /dev/null
+++ b/arch/m68k/include/asm/pci_mm.h
@@ -0,0 +1,12 @@
1#ifndef _ASM_M68K_PCI_H
2#define _ASM_M68K_PCI_H
3
4#include <asm-generic/pci-dma-compat.h>
5
6/* The PCI address space does equal the physical memory
7 * address space. The networking and block device layers use
8 * this boolean for bounce buffer decisions.
9 */
10#define PCI_DMA_BUS_IS_PHYS (1)
11
12#endif /* _ASM_M68K_PCI_H */
diff --git a/arch/m68knommu/include/asm/pci.h b/arch/m68k/include/asm/pci_no.h
index a13f3cc87451..9abbc03c73ee 100644
--- a/arch/m68knommu/include/asm/pci.h
+++ b/arch/m68k/include/asm/pci_no.h
@@ -1,7 +1,7 @@
1#ifndef M68KNOMMU_PCI_H 1#ifndef M68KNOMMU_PCI_H
2#define M68KNOMMU_PCI_H 2#define M68KNOMMU_PCI_H
3 3
4#include <asm-m68k/pci.h> 4#include <asm/pci_mm.h>
5 5
6#ifdef CONFIG_COMEMPCI 6#ifdef CONFIG_COMEMPCI
7/* 7/*
diff --git a/arch/m68k/include/asm/percpu.h b/arch/m68k/include/asm/percpu.h
new file mode 100644
index 000000000000..0859d048faf5
--- /dev/null
+++ b/arch/m68k/include/asm/percpu.h
@@ -0,0 +1,6 @@
1#ifndef __ASM_M68K_PERCPU_H
2#define __ASM_M68K_PERCPU_H
3
4#include <asm-generic/percpu.h>
5
6#endif /* __ASM_M68K_PERCPU_H */
diff --git a/arch/m68k/include/asm/pgalloc.h b/arch/m68k/include/asm/pgalloc.h
new file mode 100644
index 000000000000..059cb73e78fc
--- /dev/null
+++ b/arch/m68k/include/asm/pgalloc.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pgalloc_no.h"
3#else
4#include "pgalloc_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/pgalloc_mm.h b/arch/m68k/include/asm/pgalloc_mm.h
new file mode 100644
index 000000000000..4cb1a57ab763
--- /dev/null
+++ b/arch/m68k/include/asm/pgalloc_mm.h
@@ -0,0 +1,19 @@
1
2#ifndef M68K_PGALLOC_H
3#define M68K_PGALLOC_H
4
5#include <linux/mm.h>
6#include <linux/highmem.h>
7#include <asm/setup.h>
8#include <asm/virtconvert.h>
9
10
11#ifdef CONFIG_SUN3
12#include <asm/sun3_pgalloc.h>
13#else
14#include <asm/motorola_pgalloc.h>
15#endif
16
17extern void m68k_setup_node(int node);
18
19#endif /* M68K_PGALLOC_H */
diff --git a/arch/m68knommu/include/asm/pgalloc.h b/arch/m68k/include/asm/pgalloc_no.h
index d6352f671ec0..d6352f671ec0 100644
--- a/arch/m68knommu/include/asm/pgalloc.h
+++ b/arch/m68k/include/asm/pgalloc_no.h
diff --git a/arch/m68k/include/asm/pgtable.h b/arch/m68k/include/asm/pgtable.h
new file mode 100644
index 000000000000..ee6759eb445a
--- /dev/null
+++ b/arch/m68k/include/asm/pgtable.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pgtable_no.h"
3#else
4#include "pgtable_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/pgtable_mm.h b/arch/m68k/include/asm/pgtable_mm.h
new file mode 100644
index 000000000000..0b604f0f192d
--- /dev/null
+++ b/arch/m68k/include/asm/pgtable_mm.h
@@ -0,0 +1,166 @@
1#ifndef _M68K_PGTABLE_H
2#define _M68K_PGTABLE_H
3
4#include <asm-generic/4level-fixup.h>
5
6#include <asm/setup.h>
7
8#ifndef __ASSEMBLY__
9#include <asm/processor.h>
10#include <linux/sched.h>
11#include <linux/threads.h>
12
13/*
14 * This file contains the functions and defines necessary to modify and use
15 * the m68k page table tree.
16 */
17
18#include <asm/virtconvert.h>
19
20/* Certain architectures need to do special things when pte's
21 * within a page table are directly modified. Thus, the following
22 * hook is made available.
23 */
24#define set_pte(pteptr, pteval) \
25 do{ \
26 *(pteptr) = (pteval); \
27 } while(0)
28#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
29
30
31/* PMD_SHIFT determines the size of the area a second-level page table can map */
32#ifdef CONFIG_SUN3
33#define PMD_SHIFT 17
34#else
35#define PMD_SHIFT 22
36#endif
37#define PMD_SIZE (1UL << PMD_SHIFT)
38#define PMD_MASK (~(PMD_SIZE-1))
39
40/* PGDIR_SHIFT determines what a third-level page table entry can map */
41#ifdef CONFIG_SUN3
42#define PGDIR_SHIFT 17
43#else
44#define PGDIR_SHIFT 25
45#endif
46#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
47#define PGDIR_MASK (~(PGDIR_SIZE-1))
48
49/*
50 * entries per page directory level: the m68k is configured as three-level,
51 * so we do have PMD level physically.
52 */
53#ifdef CONFIG_SUN3
54#define PTRS_PER_PTE 16
55#define PTRS_PER_PMD 1
56#define PTRS_PER_PGD 2048
57#else
58#define PTRS_PER_PTE 1024
59#define PTRS_PER_PMD 8
60#define PTRS_PER_PGD 128
61#endif
62#define USER_PTRS_PER_PGD (TASK_SIZE/PGDIR_SIZE)
63#define FIRST_USER_ADDRESS 0
64
65/* Virtual address region for use by kernel_map() */
66#ifdef CONFIG_SUN3
67#define KMAP_START 0x0DC00000
68#define KMAP_END 0x0E000000
69#else
70#define KMAP_START 0xd0000000
71#define KMAP_END 0xf0000000
72#endif
73
74#ifndef CONFIG_SUN3
75/* Just any arbitrary offset to the start of the vmalloc VM area: the
76 * current 8MB value just means that there will be a 8MB "hole" after the
77 * physical memory until the kernel virtual memory starts. That means that
78 * any out-of-bounds memory accesses will hopefully be caught.
79 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
80 * area for the same reason. ;)
81 */
82#define VMALLOC_OFFSET (8*1024*1024)
83#define VMALLOC_START (((unsigned long) high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
84#define VMALLOC_END KMAP_START
85#else
86extern unsigned long vmalloc_end;
87#define VMALLOC_START 0x0f800000
88#define VMALLOC_END vmalloc_end
89#endif /* CONFIG_SUN3 */
90
91/* zero page used for uninitialized stuff */
92extern void *empty_zero_page;
93
94/*
95 * ZERO_PAGE is a global shared page that is always zero: used
96 * for zero-mapped memory areas etc..
97 */
98#define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
99
100/* number of bits that fit into a memory pointer */
101#define BITS_PER_PTR (8*sizeof(unsigned long))
102
103/* to align the pointer to a pointer address */
104#define PTR_MASK (~(sizeof(void*)-1))
105
106/* sizeof(void*)==1<<SIZEOF_PTR_LOG2 */
107/* 64-bit machines, beware! SRB. */
108#define SIZEOF_PTR_LOG2 2
109
110extern void kernel_set_cachemode(void *addr, unsigned long size, int cmode);
111
112/*
113 * The m68k doesn't have any external MMU info: the kernel page
114 * tables contain all the necessary information. The Sun3 does, but
115 * they are updated on demand.
116 */
117static inline void update_mmu_cache(struct vm_area_struct *vma,
118 unsigned long address, pte_t pte)
119{
120}
121
122#endif /* !__ASSEMBLY__ */
123
124#define kern_addr_valid(addr) (1)
125
126#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
127 remap_pfn_range(vma, vaddr, pfn, size, prot)
128
129/* MMU-specific headers */
130
131#ifdef CONFIG_SUN3
132#include <asm/sun3_pgtable.h>
133#else
134#include <asm/motorola_pgtable.h>
135#endif
136
137#ifndef __ASSEMBLY__
138#include <asm-generic/pgtable.h>
139
140/*
141 * Macro to mark a page protection value as "uncacheable".
142 */
143#ifdef SUN3_PAGE_NOCACHE
144# define __SUN3_PAGE_NOCACHE SUN3_PAGE_NOCACHE
145#else
146# define __SUN3_PAGE_NOCACHE 0
147#endif
148#define pgprot_noncached(prot) \
149 (MMU_IS_SUN3 \
150 ? (__pgprot(pgprot_val(prot) | __SUN3_PAGE_NOCACHE)) \
151 : ((MMU_IS_851 || MMU_IS_030) \
152 ? (__pgprot(pgprot_val(prot) | _PAGE_NOCACHE030)) \
153 : (MMU_IS_040 || MMU_IS_060) \
154 ? (__pgprot((pgprot_val(prot) & _CACHEMASK040) | _PAGE_NOCACHE_S)) \
155 : (prot)))
156
157#endif /* !__ASSEMBLY__ */
158
159/*
160 * No page table caches to initialise
161 */
162#define pgtable_cache_init() do { } while (0)
163
164#define check_pgt_cache() do { } while (0)
165
166#endif /* _M68K_PGTABLE_H */
diff --git a/arch/m68knommu/include/asm/pgtable.h b/arch/m68k/include/asm/pgtable_no.h
index 46251016e821..46251016e821 100644
--- a/arch/m68knommu/include/asm/pgtable.h
+++ b/arch/m68k/include/asm/pgtable_no.h
diff --git a/arch/m68k/include/asm/poll.h b/arch/m68k/include/asm/poll.h
new file mode 100644
index 000000000000..f080fcdb61bf
--- /dev/null
+++ b/arch/m68k/include/asm/poll.h
@@ -0,0 +1,9 @@
1#ifndef __m68k_POLL_H
2#define __m68k_POLL_H
3
4#define POLLWRNORM POLLOUT
5#define POLLWRBAND 256
6
7#include <asm-generic/poll.h>
8
9#endif
diff --git a/arch/m68k/include/asm/posix_types.h b/arch/m68k/include/asm/posix_types.h
new file mode 100644
index 000000000000..63cdcc142d93
--- /dev/null
+++ b/arch/m68k/include/asm/posix_types.h
@@ -0,0 +1,61 @@
1#ifndef __ARCH_M68K_POSIX_TYPES_H
2#define __ARCH_M68K_POSIX_TYPES_H
3
4/*
5 * This file is generally used by user-level software, so you need to
6 * be a little careful about namespace pollution etc. Also, we cannot
7 * assume GCC is being used.
8 */
9
10typedef unsigned long __kernel_ino_t;
11typedef unsigned short __kernel_mode_t;
12typedef unsigned short __kernel_nlink_t;
13typedef long __kernel_off_t;
14typedef int __kernel_pid_t;
15typedef unsigned short __kernel_ipc_pid_t;
16typedef unsigned short __kernel_uid_t;
17typedef unsigned short __kernel_gid_t;
18typedef unsigned int __kernel_size_t;
19typedef int __kernel_ssize_t;
20typedef int __kernel_ptrdiff_t;
21typedef long __kernel_time_t;
22typedef long __kernel_suseconds_t;
23typedef long __kernel_clock_t;
24typedef int __kernel_timer_t;
25typedef int __kernel_clockid_t;
26typedef int __kernel_daddr_t;
27typedef char * __kernel_caddr_t;
28typedef unsigned short __kernel_uid16_t;
29typedef unsigned short __kernel_gid16_t;
30typedef unsigned int __kernel_uid32_t;
31typedef unsigned int __kernel_gid32_t;
32
33typedef unsigned short __kernel_old_uid_t;
34typedef unsigned short __kernel_old_gid_t;
35typedef unsigned short __kernel_old_dev_t;
36
37#ifdef __GNUC__
38typedef long long __kernel_loff_t;
39#endif
40
41typedef struct {
42 int val[2];
43} __kernel_fsid_t;
44
45#if defined(__KERNEL__)
46
47#undef __FD_SET
48#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
49
50#undef __FD_CLR
51#define __FD_CLR(d, set) ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
52
53#undef __FD_ISSET
54#define __FD_ISSET(d, set) ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
55
56#undef __FD_ZERO
57#define __FD_ZERO(fdsetp) (memset (fdsetp, 0, sizeof(*(fd_set *)fdsetp)))
58
59#endif /* defined(__KERNEL__) */
60
61#endif
diff --git a/arch/m68k/include/asm/processor.h b/arch/m68k/include/asm/processor.h
new file mode 100644
index 000000000000..fc3f2c22f2b8
--- /dev/null
+++ b/arch/m68k/include/asm/processor.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "processor_no.h"
3#else
4#include "processor_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/processor_mm.h b/arch/m68k/include/asm/processor_mm.h
new file mode 100644
index 000000000000..1f61ef53f0e0
--- /dev/null
+++ b/arch/m68k/include/asm/processor_mm.h
@@ -0,0 +1,130 @@
1/*
2 * include/asm-m68k/processor.h
3 *
4 * Copyright (C) 1995 Hamish Macdonald
5 */
6
7#ifndef __ASM_M68K_PROCESSOR_H
8#define __ASM_M68K_PROCESSOR_H
9
10/*
11 * Default implementation of macro that returns current
12 * instruction pointer ("program counter").
13 */
14#define current_text_addr() ({ __label__ _l; _l: &&_l;})
15
16#include <linux/thread_info.h>
17#include <asm/segment.h>
18#include <asm/fpu.h>
19#include <asm/ptrace.h>
20
21static inline unsigned long rdusp(void)
22{
23 unsigned long usp;
24
25 __asm__ __volatile__("move %/usp,%0" : "=a" (usp));
26 return usp;
27}
28
29static inline void wrusp(unsigned long usp)
30{
31 __asm__ __volatile__("move %0,%/usp" : : "a" (usp));
32}
33
34/*
35 * User space process size: 3.75GB. This is hardcoded into a few places,
36 * so don't change it unless you know what you are doing.
37 */
38#ifndef CONFIG_SUN3
39#define TASK_SIZE (0xF0000000UL)
40#else
41#define TASK_SIZE (0x0E000000UL)
42#endif
43
44#ifdef __KERNEL__
45#define STACK_TOP TASK_SIZE
46#define STACK_TOP_MAX STACK_TOP
47#endif
48
49/* This decides where the kernel will search for a free chunk of vm
50 * space during mmap's.
51 */
52#ifndef CONFIG_SUN3
53#define TASK_UNMAPPED_BASE 0xC0000000UL
54#else
55#define TASK_UNMAPPED_BASE 0x0A000000UL
56#endif
57#define TASK_UNMAPPED_ALIGN(addr, off) PAGE_ALIGN(addr)
58
59struct thread_struct {
60 unsigned long ksp; /* kernel stack pointer */
61 unsigned long usp; /* user stack pointer */
62 unsigned short sr; /* saved status register */
63 unsigned short fs; /* saved fs (sfc, dfc) */
64 unsigned long crp[2]; /* cpu root pointer */
65 unsigned long esp0; /* points to SR of stack frame */
66 unsigned long faddr; /* info about last fault */
67 int signo, code;
68 unsigned long fp[8*3];
69 unsigned long fpcntl[3]; /* fp control regs */
70 unsigned char fpstate[FPSTATESIZE]; /* floating point state */
71 struct thread_info info;
72};
73
74#define INIT_THREAD { \
75 .ksp = sizeof(init_stack) + (unsigned long) init_stack, \
76 .sr = PS_S, \
77 .fs = __KERNEL_DS, \
78 .info = INIT_THREAD_INFO(init_task), \
79}
80
81/*
82 * Do necessary setup to start up a newly executed thread.
83 */
84static inline void start_thread(struct pt_regs * regs, unsigned long pc,
85 unsigned long usp)
86{
87 /* reads from user space */
88 set_fs(USER_DS);
89
90 regs->pc = pc;
91 regs->sr &= ~0x2000;
92 wrusp(usp);
93}
94
95/* Forward declaration, a strange C thing */
96struct task_struct;
97
98/* Free all resources held by a thread. */
99static inline void release_thread(struct task_struct *dead_task)
100{
101}
102
103/* Prepare to copy thread state - unlazy all lazy status */
104#define prepare_to_copy(tsk) do { } while (0)
105
106extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
107
108/*
109 * Free current thread data structures etc..
110 */
111static inline void exit_thread(void)
112{
113}
114
115extern unsigned long thread_saved_pc(struct task_struct *tsk);
116
117unsigned long get_wchan(struct task_struct *p);
118
119#define KSTK_EIP(tsk) \
120 ({ \
121 unsigned long eip = 0; \
122 if ((tsk)->thread.esp0 > PAGE_SIZE && \
123 (virt_addr_valid((tsk)->thread.esp0))) \
124 eip = ((struct pt_regs *) (tsk)->thread.esp0)->pc; \
125 eip; })
126#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp)
127
128#define cpu_relax() barrier()
129
130#endif
diff --git a/arch/m68knommu/include/asm/processor.h b/arch/m68k/include/asm/processor_no.h
index 91cba18acdd3..91cba18acdd3 100644
--- a/arch/m68knommu/include/asm/processor.h
+++ b/arch/m68k/include/asm/processor_no.h
diff --git a/arch/m68k/include/asm/ptrace.h b/arch/m68k/include/asm/ptrace.h
new file mode 100644
index 000000000000..e83cd2f66101
--- /dev/null
+++ b/arch/m68k/include/asm/ptrace.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "ptrace_no.h"
3#else
4#include "ptrace_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/ptrace_mm.h b/arch/m68k/include/asm/ptrace_mm.h
new file mode 100644
index 000000000000..57e763d79bf4
--- /dev/null
+++ b/arch/m68k/include/asm/ptrace_mm.h
@@ -0,0 +1,80 @@
1#ifndef _M68K_PTRACE_H
2#define _M68K_PTRACE_H
3
4#define PT_D1 0
5#define PT_D2 1
6#define PT_D3 2
7#define PT_D4 3
8#define PT_D5 4
9#define PT_D6 5
10#define PT_D7 6
11#define PT_A0 7
12#define PT_A1 8
13#define PT_A2 9
14#define PT_A3 10
15#define PT_A4 11
16#define PT_A5 12
17#define PT_A6 13
18#define PT_D0 14
19#define PT_USP 15
20#define PT_ORIG_D0 16
21#define PT_SR 17
22#define PT_PC 18
23
24#ifndef __ASSEMBLY__
25
26/* this struct defines the way the registers are stored on the
27 stack during a system call. */
28
29struct pt_regs {
30 long d1;
31 long d2;
32 long d3;
33 long d4;
34 long d5;
35 long a0;
36 long a1;
37 long a2;
38 long d0;
39 long orig_d0;
40 long stkadj;
41 unsigned short sr;
42 unsigned long pc;
43 unsigned format : 4; /* frame format specifier */
44 unsigned vector : 12; /* vector offset */
45};
46
47/*
48 * This is the extended stack used by signal handlers and the context
49 * switcher: it's pushed after the normal "struct pt_regs".
50 */
51struct switch_stack {
52 unsigned long d6;
53 unsigned long d7;
54 unsigned long a3;
55 unsigned long a4;
56 unsigned long a5;
57 unsigned long a6;
58 unsigned long retpc;
59};
60
61/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
62#define PTRACE_GETREGS 12
63#define PTRACE_SETREGS 13
64#define PTRACE_GETFPREGS 14
65#define PTRACE_SETFPREGS 15
66
67#ifdef __KERNEL__
68
69#ifndef PS_S
70#define PS_S (0x2000)
71#define PS_M (0x1000)
72#endif
73
74#define user_mode(regs) (!((regs)->sr & PS_S))
75#define instruction_pointer(regs) ((regs)->pc)
76#define profile_pc(regs) instruction_pointer(regs)
77extern void show_regs(struct pt_regs *);
78#endif /* __KERNEL__ */
79#endif /* __ASSEMBLY__ */
80#endif /* _M68K_PTRACE_H */
diff --git a/arch/m68knommu/include/asm/ptrace.h b/arch/m68k/include/asm/ptrace_no.h
index 8c9194b98548..8c9194b98548 100644
--- a/arch/m68knommu/include/asm/ptrace.h
+++ b/arch/m68k/include/asm/ptrace_no.h
diff --git a/arch/m68k/include/asm/q40_master.h b/arch/m68k/include/asm/q40_master.h
new file mode 100644
index 000000000000..3907a09d4fca
--- /dev/null
+++ b/arch/m68k/include/asm/q40_master.h
@@ -0,0 +1,69 @@
1/*
2 * Q40 master Chip Control
3 * RTC stuff merged for compactnes..
4*/
5
6#ifndef _Q40_MASTER_H
7#define _Q40_MASTER_H
8
9#include <asm/raw_io.h>
10
11
12#define q40_master_addr 0xff000000
13
14#define IIRQ_REG 0x0 /* internal IRQ reg */
15#define EIRQ_REG 0x4 /* external ... */
16#define KEYCODE_REG 0x1c /* value of received scancode */
17#define DISPLAY_CONTROL_REG 0x18
18#define FRAME_CLEAR_REG 0x24
19#define LED_REG 0x30
20
21#define Q40_LED_ON() master_outb(1,LED_REG)
22#define Q40_LED_OFF() master_outb(0,LED_REG)
23
24#define INTERRUPT_REG IIRQ_REG /* "native" ints */
25#define KEY_IRQ_ENABLE_REG 0x08 /**/
26#define KEYBOARD_UNLOCK_REG 0x20 /* clear kb int */
27
28#define SAMPLE_ENABLE_REG 0x14 /* generate SAMPLE ints */
29#define SAMPLE_RATE_REG 0x2c
30#define SAMPLE_CLEAR_REG 0x28
31#define SAMPLE_LOW 0x00
32#define SAMPLE_HIGH 0x01
33
34#define FRAME_RATE_REG 0x38 /* generate FRAME ints at 200 HZ rate */
35
36#if 0
37#define SER_ENABLE_REG 0x0c /* allow serial ints to be generated */
38#endif
39#define EXT_ENABLE_REG 0x10 /* ... rest of the ISA ints ... */
40
41
42#define master_inb(_reg_) in_8((unsigned char *)q40_master_addr+_reg_)
43#define master_outb(_b_,_reg_) out_8((unsigned char *)q40_master_addr+_reg_,_b_)
44
45/* RTC defines */
46
47#define Q40_RTC_BASE (0xff021ffc)
48
49#define Q40_RTC_YEAR (*(volatile unsigned char *)(Q40_RTC_BASE+0))
50#define Q40_RTC_MNTH (*(volatile unsigned char *)(Q40_RTC_BASE-4))
51#define Q40_RTC_DATE (*(volatile unsigned char *)(Q40_RTC_BASE-8))
52#define Q40_RTC_DOW (*(volatile unsigned char *)(Q40_RTC_BASE-12))
53#define Q40_RTC_HOUR (*(volatile unsigned char *)(Q40_RTC_BASE-16))
54#define Q40_RTC_MINS (*(volatile unsigned char *)(Q40_RTC_BASE-20))
55#define Q40_RTC_SECS (*(volatile unsigned char *)(Q40_RTC_BASE-24))
56#define Q40_RTC_CTRL (*(volatile unsigned char *)(Q40_RTC_BASE-28))
57
58/* some control bits */
59#define Q40_RTC_READ 64 /* prepare for reading */
60#define Q40_RTC_WRITE 128
61
62/* define some Q40 specific ints */
63#include "q40ints.h"
64
65/* misc defs */
66#define DAC_LEFT ((unsigned char *)0xff008000)
67#define DAC_RIGHT ((unsigned char *)0xff008004)
68
69#endif /* _Q40_MASTER_H */
diff --git a/arch/m68k/include/asm/q40ints.h b/arch/m68k/include/asm/q40ints.h
new file mode 100644
index 000000000000..3d970afb708f
--- /dev/null
+++ b/arch/m68k/include/asm/q40ints.h
@@ -0,0 +1,29 @@
1/*
2 * contains some Q40 related interrupt definitions
3 */
4
5#define Q40_IRQ_MAX (34)
6
7#define Q40_IRQ_SAMPLE (34)
8#define Q40_IRQ_KEYBOARD (32)
9#define Q40_IRQ_FRAME (33)
10
11
12/* masks for interrupt regiosters*/
13/* internal, IIRQ_REG */
14#define Q40_IRQ_KEYB_MASK (2)
15#define Q40_IRQ_SER_MASK (1<<2)
16#define Q40_IRQ_FRAME_MASK (1<<3)
17#define Q40_IRQ_EXT_MASK (1<<4) /* is a EIRQ */
18/* eirq, EIRQ_REG */
19#define Q40_IRQ3_MASK (1)
20#define Q40_IRQ4_MASK (1<<1)
21#define Q40_IRQ5_MASK (1<<2)
22#define Q40_IRQ6_MASK (1<<3)
23#define Q40_IRQ7_MASK (1<<4)
24#define Q40_IRQ10_MASK (1<<5)
25#define Q40_IRQ14_MASK (1<<6)
26#define Q40_IRQ15_MASK (1<<7)
27
28extern unsigned long q40_probe_irq_on (void);
29extern int q40_probe_irq_off (unsigned long irqs);
diff --git a/arch/m68knommu/include/asm/quicc_simple.h b/arch/m68k/include/asm/quicc_simple.h
index c3636932d4bc..c3636932d4bc 100644
--- a/arch/m68knommu/include/asm/quicc_simple.h
+++ b/arch/m68k/include/asm/quicc_simple.h
diff --git a/arch/m68k/include/asm/raw_io.h b/arch/m68k/include/asm/raw_io.h
new file mode 100644
index 000000000000..d9eb9834ccc8
--- /dev/null
+++ b/arch/m68k/include/asm/raw_io.h
@@ -0,0 +1,347 @@
1/*
2 * linux/include/asm-m68k/raw_io.h
3 *
4 * 10/20/00 RZ: - created from bits of io.h and ide.h to cleanup namespace
5 *
6 */
7
8#ifndef _RAW_IO_H
9#define _RAW_IO_H
10
11#ifdef __KERNEL__
12
13#include <asm/types.h>
14
15
16/* Values for nocacheflag and cmode */
17#define IOMAP_FULL_CACHING 0
18#define IOMAP_NOCACHE_SER 1
19#define IOMAP_NOCACHE_NONSER 2
20#define IOMAP_WRITETHROUGH 3
21
22extern void iounmap(void __iomem *addr);
23
24extern void __iomem *__ioremap(unsigned long physaddr, unsigned long size,
25 int cacheflag);
26extern void __iounmap(void *addr, unsigned long size);
27
28
29/* ++roman: The assignments to temp. vars avoid that gcc sometimes generates
30 * two accesses to memory, which may be undesirable for some devices.
31 */
32#define in_8(addr) \
33 ({ u8 __v = (*(__force volatile u8 *) (addr)); __v; })
34#define in_be16(addr) \
35 ({ u16 __v = (*(__force volatile u16 *) (addr)); __v; })
36#define in_be32(addr) \
37 ({ u32 __v = (*(__force volatile u32 *) (addr)); __v; })
38#define in_le16(addr) \
39 ({ u16 __v = le16_to_cpu(*(__force volatile __le16 *) (addr)); __v; })
40#define in_le32(addr) \
41 ({ u32 __v = le32_to_cpu(*(__force volatile __le32 *) (addr)); __v; })
42
43#define out_8(addr,b) (void)((*(__force volatile u8 *) (addr)) = (b))
44#define out_be16(addr,w) (void)((*(__force volatile u16 *) (addr)) = (w))
45#define out_be32(addr,l) (void)((*(__force volatile u32 *) (addr)) = (l))
46#define out_le16(addr,w) (void)((*(__force volatile __le16 *) (addr)) = cpu_to_le16(w))
47#define out_le32(addr,l) (void)((*(__force volatile __le32 *) (addr)) = cpu_to_le32(l))
48
49#define raw_inb in_8
50#define raw_inw in_be16
51#define raw_inl in_be32
52#define __raw_readb in_8
53#define __raw_readw in_be16
54#define __raw_readl in_be32
55
56#define raw_outb(val,port) out_8((port),(val))
57#define raw_outw(val,port) out_be16((port),(val))
58#define raw_outl(val,port) out_be32((port),(val))
59#define __raw_writeb(val,addr) out_8((addr),(val))
60#define __raw_writew(val,addr) out_be16((addr),(val))
61#define __raw_writel(val,addr) out_be32((addr),(val))
62
63static inline void raw_insb(volatile u8 __iomem *port, u8 *buf, unsigned int len)
64{
65 unsigned int i;
66
67 for (i = 0; i < len; i++)
68 *buf++ = in_8(port);
69}
70
71static inline void raw_outsb(volatile u8 __iomem *port, const u8 *buf,
72 unsigned int len)
73{
74 unsigned int i;
75
76 for (i = 0; i < len; i++)
77 out_8(port, *buf++);
78}
79
80static inline void raw_insw(volatile u16 __iomem *port, u16 *buf, unsigned int nr)
81{
82 unsigned int tmp;
83
84 if (nr & 15) {
85 tmp = (nr & 15) - 1;
86 asm volatile (
87 "1: movew %2@,%0@+; dbra %1,1b"
88 : "=a" (buf), "=d" (tmp)
89 : "a" (port), "0" (buf),
90 "1" (tmp));
91 }
92 if (nr >> 4) {
93 tmp = (nr >> 4) - 1;
94 asm volatile (
95 "1: "
96 "movew %2@,%0@+; "
97 "movew %2@,%0@+; "
98 "movew %2@,%0@+; "
99 "movew %2@,%0@+; "
100 "movew %2@,%0@+; "
101 "movew %2@,%0@+; "
102 "movew %2@,%0@+; "
103 "movew %2@,%0@+; "
104 "movew %2@,%0@+; "
105 "movew %2@,%0@+; "
106 "movew %2@,%0@+; "
107 "movew %2@,%0@+; "
108 "movew %2@,%0@+; "
109 "movew %2@,%0@+; "
110 "movew %2@,%0@+; "
111 "movew %2@,%0@+; "
112 "dbra %1,1b"
113 : "=a" (buf), "=d" (tmp)
114 : "a" (port), "0" (buf),
115 "1" (tmp));
116 }
117}
118
119static inline void raw_outsw(volatile u16 __iomem *port, const u16 *buf,
120 unsigned int nr)
121{
122 unsigned int tmp;
123
124 if (nr & 15) {
125 tmp = (nr & 15) - 1;
126 asm volatile (
127 "1: movew %0@+,%2@; dbra %1,1b"
128 : "=a" (buf), "=d" (tmp)
129 : "a" (port), "0" (buf),
130 "1" (tmp));
131 }
132 if (nr >> 4) {
133 tmp = (nr >> 4) - 1;
134 asm volatile (
135 "1: "
136 "movew %0@+,%2@; "
137 "movew %0@+,%2@; "
138 "movew %0@+,%2@; "
139 "movew %0@+,%2@; "
140 "movew %0@+,%2@; "
141 "movew %0@+,%2@; "
142 "movew %0@+,%2@; "
143 "movew %0@+,%2@; "
144 "movew %0@+,%2@; "
145 "movew %0@+,%2@; "
146 "movew %0@+,%2@; "
147 "movew %0@+,%2@; "
148 "movew %0@+,%2@; "
149 "movew %0@+,%2@; "
150 "movew %0@+,%2@; "
151 "movew %0@+,%2@; "
152 "dbra %1,1b"
153 : "=a" (buf), "=d" (tmp)
154 : "a" (port), "0" (buf),
155 "1" (tmp));
156 }
157}
158
159static inline void raw_insl(volatile u32 __iomem *port, u32 *buf, unsigned int nr)
160{
161 unsigned int tmp;
162
163 if (nr & 15) {
164 tmp = (nr & 15) - 1;
165 asm volatile (
166 "1: movel %2@,%0@+; dbra %1,1b"
167 : "=a" (buf), "=d" (tmp)
168 : "a" (port), "0" (buf),
169 "1" (tmp));
170 }
171 if (nr >> 4) {
172 tmp = (nr >> 4) - 1;
173 asm volatile (
174 "1: "
175 "movel %2@,%0@+; "
176 "movel %2@,%0@+; "
177 "movel %2@,%0@+; "
178 "movel %2@,%0@+; "
179 "movel %2@,%0@+; "
180 "movel %2@,%0@+; "
181 "movel %2@,%0@+; "
182 "movel %2@,%0@+; "
183 "movel %2@,%0@+; "
184 "movel %2@,%0@+; "
185 "movel %2@,%0@+; "
186 "movel %2@,%0@+; "
187 "movel %2@,%0@+; "
188 "movel %2@,%0@+; "
189 "movel %2@,%0@+; "
190 "movel %2@,%0@+; "
191 "dbra %1,1b"
192 : "=a" (buf), "=d" (tmp)
193 : "a" (port), "0" (buf),
194 "1" (tmp));
195 }
196}
197
198static inline void raw_outsl(volatile u32 __iomem *port, const u32 *buf,
199 unsigned int nr)
200{
201 unsigned int tmp;
202
203 if (nr & 15) {
204 tmp = (nr & 15) - 1;
205 asm volatile (
206 "1: movel %0@+,%2@; dbra %1,1b"
207 : "=a" (buf), "=d" (tmp)
208 : "a" (port), "0" (buf),
209 "1" (tmp));
210 }
211 if (nr >> 4) {
212 tmp = (nr >> 4) - 1;
213 asm volatile (
214 "1: "
215 "movel %0@+,%2@; "
216 "movel %0@+,%2@; "
217 "movel %0@+,%2@; "
218 "movel %0@+,%2@; "
219 "movel %0@+,%2@; "
220 "movel %0@+,%2@; "
221 "movel %0@+,%2@; "
222 "movel %0@+,%2@; "
223 "movel %0@+,%2@; "
224 "movel %0@+,%2@; "
225 "movel %0@+,%2@; "
226 "movel %0@+,%2@; "
227 "movel %0@+,%2@; "
228 "movel %0@+,%2@; "
229 "movel %0@+,%2@; "
230 "movel %0@+,%2@; "
231 "dbra %1,1b"
232 : "=a" (buf), "=d" (tmp)
233 : "a" (port), "0" (buf),
234 "1" (tmp));
235 }
236}
237
238
239static inline void raw_insw_swapw(volatile u16 __iomem *port, u16 *buf,
240 unsigned int nr)
241{
242 if ((nr) % 8)
243 __asm__ __volatile__
244 ("\tmovel %0,%/a0\n\t"
245 "movel %1,%/a1\n\t"
246 "movel %2,%/d6\n\t"
247 "subql #1,%/d6\n"
248 "1:\tmovew %/a0@,%/d0\n\t"
249 "rolw #8,%/d0\n\t"
250 "movew %/d0,%/a1@+\n\t"
251 "dbra %/d6,1b"
252 :
253 : "g" (port), "g" (buf), "g" (nr)
254 : "d0", "a0", "a1", "d6");
255 else
256 __asm__ __volatile__
257 ("movel %0,%/a0\n\t"
258 "movel %1,%/a1\n\t"
259 "movel %2,%/d6\n\t"
260 "lsrl #3,%/d6\n\t"
261 "subql #1,%/d6\n"
262 "1:\tmovew %/a0@,%/d0\n\t"
263 "rolw #8,%/d0\n\t"
264 "movew %/d0,%/a1@+\n\t"
265 "movew %/a0@,%/d0\n\t"
266 "rolw #8,%/d0\n\t"
267 "movew %/d0,%/a1@+\n\t"
268 "movew %/a0@,%/d0\n\t"
269 "rolw #8,%/d0\n\t"
270 "movew %/d0,%/a1@+\n\t"
271 "movew %/a0@,%/d0\n\t"
272 "rolw #8,%/d0\n\t"
273 "movew %/d0,%/a1@+\n\t"
274 "movew %/a0@,%/d0\n\t"
275 "rolw #8,%/d0\n\t"
276 "movew %/d0,%/a1@+\n\t"
277 "movew %/a0@,%/d0\n\t"
278 "rolw #8,%/d0\n\t"
279 "movew %/d0,%/a1@+\n\t"
280 "movew %/a0@,%/d0\n\t"
281 "rolw #8,%/d0\n\t"
282 "movew %/d0,%/a1@+\n\t"
283 "movew %/a0@,%/d0\n\t"
284 "rolw #8,%/d0\n\t"
285 "movew %/d0,%/a1@+\n\t"
286 "dbra %/d6,1b"
287 :
288 : "g" (port), "g" (buf), "g" (nr)
289 : "d0", "a0", "a1", "d6");
290}
291
292static inline void raw_outsw_swapw(volatile u16 __iomem *port, const u16 *buf,
293 unsigned int nr)
294{
295 if ((nr) % 8)
296 __asm__ __volatile__
297 ("movel %0,%/a0\n\t"
298 "movel %1,%/a1\n\t"
299 "movel %2,%/d6\n\t"
300 "subql #1,%/d6\n"
301 "1:\tmovew %/a1@+,%/d0\n\t"
302 "rolw #8,%/d0\n\t"
303 "movew %/d0,%/a0@\n\t"
304 "dbra %/d6,1b"
305 :
306 : "g" (port), "g" (buf), "g" (nr)
307 : "d0", "a0", "a1", "d6");
308 else
309 __asm__ __volatile__
310 ("movel %0,%/a0\n\t"
311 "movel %1,%/a1\n\t"
312 "movel %2,%/d6\n\t"
313 "lsrl #3,%/d6\n\t"
314 "subql #1,%/d6\n"
315 "1:\tmovew %/a1@+,%/d0\n\t"
316 "rolw #8,%/d0\n\t"
317 "movew %/d0,%/a0@\n\t"
318 "movew %/a1@+,%/d0\n\t"
319 "rolw #8,%/d0\n\t"
320 "movew %/d0,%/a0@\n\t"
321 "movew %/a1@+,%/d0\n\t"
322 "rolw #8,%/d0\n\t"
323 "movew %/d0,%/a0@\n\t"
324 "movew %/a1@+,%/d0\n\t"
325 "rolw #8,%/d0\n\t"
326 "movew %/d0,%/a0@\n\t"
327 "movew %/a1@+,%/d0\n\t"
328 "rolw #8,%/d0\n\t"
329 "movew %/d0,%/a0@\n\t"
330 "movew %/a1@+,%/d0\n\t"
331 "rolw #8,%/d0\n\t"
332 "movew %/d0,%/a0@\n\t"
333 "movew %/a1@+,%/d0\n\t"
334 "rolw #8,%/d0\n\t"
335 "movew %/d0,%/a0@\n\t"
336 "movew %/a1@+,%/d0\n\t"
337 "rolw #8,%/d0\n\t"
338 "movew %/d0,%/a0@\n\t"
339 "dbra %/d6,1b"
340 :
341 : "g" (port), "g" (buf), "g" (nr)
342 : "d0", "a0", "a1", "d6");
343}
344
345#endif /* __KERNEL__ */
346
347#endif /* _RAW_IO_H */
diff --git a/arch/m68k/include/asm/resource.h b/arch/m68k/include/asm/resource.h
new file mode 100644
index 000000000000..e7d35019f337
--- /dev/null
+++ b/arch/m68k/include/asm/resource.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_RESOURCE_H
2#define _M68K_RESOURCE_H
3
4#include <asm-generic/resource.h>
5
6#endif /* _M68K_RESOURCE_H */
diff --git a/arch/m68k/include/asm/rtc.h b/arch/m68k/include/asm/rtc.h
new file mode 100644
index 000000000000..5d3e03859844
--- /dev/null
+++ b/arch/m68k/include/asm/rtc.h
@@ -0,0 +1,76 @@
1/* include/asm-m68k/rtc.h
2 *
3 * Copyright Richard Zidlicky
4 * implementation details for genrtc/q40rtc driver
5 */
6/* permission is hereby granted to copy, modify and redistribute this code
7 * in terms of the GNU Library General Public License, Version 2 or later,
8 * at your option.
9 */
10
11#ifndef _ASM_RTC_H
12#define _ASM_RTC_H
13
14#ifdef __KERNEL__
15
16#include <linux/rtc.h>
17#include <asm/errno.h>
18#include <asm/machdep.h>
19
20#define RTC_PIE 0x40 /* periodic interrupt enable */
21#define RTC_AIE 0x20 /* alarm interrupt enable */
22#define RTC_UIE 0x10 /* update-finished interrupt enable */
23
24/* some dummy definitions */
25#define RTC_BATT_BAD 0x100 /* battery bad */
26#define RTC_SQWE 0x08 /* enable square-wave output */
27#define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */
28#define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */
29#define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */
30
31static inline unsigned int get_rtc_time(struct rtc_time *time)
32{
33 /*
34 * Only the values that we read from the RTC are set. We leave
35 * tm_wday, tm_yday and tm_isdst untouched. Even though the
36 * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
37 * by the RTC when initially set to a non-zero value.
38 */
39 mach_hwclk(0, time);
40 return RTC_24H;
41}
42
43static inline int set_rtc_time(struct rtc_time *time)
44{
45 return mach_hwclk(1, time);
46}
47
48static inline unsigned int get_rtc_ss(void)
49{
50 if (mach_get_ss)
51 return mach_get_ss();
52 else{
53 struct rtc_time h;
54
55 get_rtc_time(&h);
56 return h.tm_sec;
57 }
58}
59
60static inline int get_rtc_pll(struct rtc_pll_info *pll)
61{
62 if (mach_get_rtc_pll)
63 return mach_get_rtc_pll(pll);
64 else
65 return -EINVAL;
66}
67static inline int set_rtc_pll(struct rtc_pll_info *pll)
68{
69 if (mach_set_rtc_pll)
70 return mach_set_rtc_pll(pll);
71 else
72 return -EINVAL;
73}
74#endif /* __KERNEL__ */
75
76#endif /* _ASM__RTC_H */
diff --git a/arch/m68k/include/asm/sbus.h b/arch/m68k/include/asm/sbus.h
new file mode 100644
index 000000000000..bfe3ba147f2e
--- /dev/null
+++ b/arch/m68k/include/asm/sbus.h
@@ -0,0 +1,45 @@
1/*
2 * some sbus structures and macros to make usage of sbus drivers possible
3 */
4
5#ifndef __M68K_SBUS_H
6#define __M68K_SBUS_H
7
8struct sbus_dev {
9 struct {
10 unsigned int which_io;
11 unsigned int phys_addr;
12 } reg_addrs[1];
13};
14
15/* sbus IO functions stolen from include/asm-sparc/io.h for the serial driver */
16/* No SBUS on the Sun3, kludge -- sam */
17
18static inline void _sbus_writeb(unsigned char val, unsigned long addr)
19{
20 *(volatile unsigned char *)addr = val;
21}
22
23static inline unsigned char _sbus_readb(unsigned long addr)
24{
25 return *(volatile unsigned char *)addr;
26}
27
28static inline void _sbus_writel(unsigned long val, unsigned long addr)
29{
30 *(volatile unsigned long *)addr = val;
31
32}
33
34extern inline unsigned long _sbus_readl(unsigned long addr)
35{
36 return *(volatile unsigned long *)addr;
37}
38
39
40#define sbus_readb(a) _sbus_readb((unsigned long)a)
41#define sbus_writeb(v, a) _sbus_writeb(v, (unsigned long)a)
42#define sbus_readl(a) _sbus_readl((unsigned long)a)
43#define sbus_writel(v, a) _sbus_writel(v, (unsigned long)a)
44
45#endif
diff --git a/arch/m68k/include/asm/scatterlist.h b/arch/m68k/include/asm/scatterlist.h
new file mode 100644
index 000000000000..b7e528636252
--- /dev/null
+++ b/arch/m68k/include/asm/scatterlist.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "scatterlist_no.h"
3#else
4#include "scatterlist_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/scatterlist_mm.h b/arch/m68k/include/asm/scatterlist_mm.h
new file mode 100644
index 000000000000..d3a7a0edfeca
--- /dev/null
+++ b/arch/m68k/include/asm/scatterlist_mm.h
@@ -0,0 +1,23 @@
1#ifndef _M68K_SCATTERLIST_H
2#define _M68K_SCATTERLIST_H
3
4#include <linux/types.h>
5
6struct scatterlist {
7#ifdef CONFIG_DEBUG_SG
8 unsigned long sg_magic;
9#endif
10 unsigned long page_link;
11 unsigned int offset;
12 unsigned int length;
13
14 __u32 dma_address; /* A place to hang host-specific addresses at. */
15};
16
17/* This is bogus and should go away. */
18#define ISA_DMA_THRESHOLD (0x00ffffff)
19
20#define sg_dma_address(sg) ((sg)->dma_address)
21#define sg_dma_len(sg) ((sg)->length)
22
23#endif /* !(_M68K_SCATTERLIST_H) */
diff --git a/arch/m68knommu/include/asm/scatterlist.h b/arch/m68k/include/asm/scatterlist_no.h
index afc4788b0d2c..afc4788b0d2c 100644
--- a/arch/m68knommu/include/asm/scatterlist.h
+++ b/arch/m68k/include/asm/scatterlist_no.h
diff --git a/arch/m68k/include/asm/sections.h b/arch/m68k/include/asm/sections.h
new file mode 100644
index 000000000000..d64967ecfec6
--- /dev/null
+++ b/arch/m68k/include/asm/sections.h
@@ -0,0 +1,6 @@
1#ifndef _ASM_M68K_SECTIONS_H
2#define _ASM_M68K_SECTIONS_H
3
4#include <asm-generic/sections.h>
5
6#endif /* _ASM_M68K_SECTIONS_H */
diff --git a/arch/m68k/include/asm/segment.h b/arch/m68k/include/asm/segment.h
new file mode 100644
index 000000000000..82583bc004bd
--- /dev/null
+++ b/arch/m68k/include/asm/segment.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "segment_no.h"
3#else
4#include "segment_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/segment_mm.h b/arch/m68k/include/asm/segment_mm.h
new file mode 100644
index 000000000000..7b0b2d3127f9
--- /dev/null
+++ b/arch/m68k/include/asm/segment_mm.h
@@ -0,0 +1,57 @@
1#ifndef _M68K_SEGMENT_H
2#define _M68K_SEGMENT_H
3
4/* define constants */
5/* Address spaces (FC0-FC2) */
6#define USER_DATA (1)
7#ifndef __USER_DS
8#define __USER_DS (USER_DATA)
9#endif
10#define USER_PROGRAM (2)
11#define SUPER_DATA (5)
12#ifndef __KERNEL_DS
13#define __KERNEL_DS (SUPER_DATA)
14#endif
15#define SUPER_PROGRAM (6)
16#define CPU_SPACE (7)
17
18#ifndef __ASSEMBLY__
19
20typedef struct {
21 unsigned long seg;
22} mm_segment_t;
23
24#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
25#define USER_DS MAKE_MM_SEG(__USER_DS)
26#define KERNEL_DS MAKE_MM_SEG(__KERNEL_DS)
27
28/*
29 * Get/set the SFC/DFC registers for MOVES instructions
30 */
31
32static inline mm_segment_t get_fs(void)
33{
34 mm_segment_t _v;
35 __asm__ ("movec %/dfc,%0":"=r" (_v.seg):);
36
37 return _v;
38}
39
40static inline mm_segment_t get_ds(void)
41{
42 /* return the supervisor data space code */
43 return KERNEL_DS;
44}
45
46static inline void set_fs(mm_segment_t val)
47{
48 __asm__ __volatile__ ("movec %0,%/sfc\n\t"
49 "movec %0,%/dfc\n\t"
50 : /* no outputs */ : "r" (val.seg) : "memory");
51}
52
53#define segment_eq(a,b) ((a).seg == (b).seg)
54
55#endif /* __ASSEMBLY__ */
56
57#endif /* _M68K_SEGMENT_H */
diff --git a/arch/m68knommu/include/asm/segment.h b/arch/m68k/include/asm/segment_no.h
index 42318ebec7ec..42318ebec7ec 100644
--- a/arch/m68knommu/include/asm/segment.h
+++ b/arch/m68k/include/asm/segment_no.h
diff --git a/arch/m68k/include/asm/sembuf.h b/arch/m68k/include/asm/sembuf.h
new file mode 100644
index 000000000000..2308052a8c24
--- /dev/null
+++ b/arch/m68k/include/asm/sembuf.h
@@ -0,0 +1,25 @@
1#ifndef _M68K_SEMBUF_H
2#define _M68K_SEMBUF_H
3
4/*
5 * The semid64_ds structure for m68k architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct semid64_ds {
15 struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
16 __kernel_time_t sem_otime; /* last semop time */
17 unsigned long __unused1;
18 __kernel_time_t sem_ctime; /* last change time */
19 unsigned long __unused2;
20 unsigned long sem_nsems; /* no. of semaphores in array */
21 unsigned long __unused3;
22 unsigned long __unused4;
23};
24
25#endif /* _M68K_SEMBUF_H */
diff --git a/arch/m68k/include/asm/serial.h b/arch/m68k/include/asm/serial.h
new file mode 100644
index 000000000000..2b90d6e69070
--- /dev/null
+++ b/arch/m68k/include/asm/serial.h
@@ -0,0 +1,33 @@
1/*
2 * include/asm-m68k/serial.h
3 *
4 * currently this seems useful only for a Q40,
5 * it's an almost exact copy of ../asm-alpha/serial.h
6 *
7 */
8
9
10/*
11 * This assumes you have a 1.8432 MHz clock for your UART.
12 *
13 * It'd be nice if someone built a serial card with a 24.576 MHz
14 * clock, since the 16550A is capable of handling a top speed of 1.5
15 * megabits/second; but this requires the faster clock.
16 */
17#define BASE_BAUD ( 1843200 / 16 )
18
19/* Standard COM flags (except for COM4, because of the 8514 problem) */
20#ifdef CONFIG_SERIAL_DETECT_IRQ
21#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ)
22#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ)
23#else
24#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
25#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
26#endif
27
28#define SERIAL_PORT_DFNS \
29 /* UART CLK PORT IRQ FLAGS */ \
30 { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
31 { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \
32 { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \
33 { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */
diff --git a/arch/m68k/include/asm/setup.h b/arch/m68k/include/asm/setup.h
new file mode 100644
index 000000000000..842f86f75ccd
--- /dev/null
+++ b/arch/m68k/include/asm/setup.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "setup_no.h"
3#else
4#include "setup_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/setup_mm.h b/arch/m68k/include/asm/setup_mm.h
new file mode 100644
index 000000000000..4dfb3952b375
--- /dev/null
+++ b/arch/m68k/include/asm/setup_mm.h
@@ -0,0 +1,376 @@
1/*
2** asm/setup.h -- Definition of the Linux/m68k setup information
3**
4** Copyright 1992 by Greg Harp
5**
6** This file is subject to the terms and conditions of the GNU General Public
7** License. See the file COPYING in the main directory of this archive
8** for more details.
9**
10** Created 09/29/92 by Greg Harp
11**
12** 5/2/94 Roman Hodek:
13** Added bi_atari part of the machine dependent union bi_un; for now it
14** contains just a model field to distinguish between TT and Falcon.
15** 26/7/96 Roman Zippel:
16** Renamed to setup.h; added some useful macros to allow gcc some
17** optimizations if possible.
18** 5/10/96 Geert Uytterhoeven:
19** Redesign of the boot information structure; moved boot information
20** structure to bootinfo.h
21*/
22
23#ifndef _M68K_SETUP_H
24#define _M68K_SETUP_H
25
26
27
28 /*
29 * Linux/m68k Architectures
30 */
31
32#define MACH_AMIGA 1
33#define MACH_ATARI 2
34#define MACH_MAC 3
35#define MACH_APOLLO 4
36#define MACH_SUN3 5
37#define MACH_MVME147 6
38#define MACH_MVME16x 7
39#define MACH_BVME6000 8
40#define MACH_HP300 9
41#define MACH_Q40 10
42#define MACH_SUN3X 11
43
44#define COMMAND_LINE_SIZE 256
45
46#ifdef __KERNEL__
47
48#define CL_SIZE COMMAND_LINE_SIZE
49
50#ifndef __ASSEMBLY__
51extern unsigned long m68k_machtype;
52#endif /* !__ASSEMBLY__ */
53
54#if !defined(CONFIG_AMIGA)
55# define MACH_IS_AMIGA (0)
56#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \
57 || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \
58 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
59 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
60# define MACH_IS_AMIGA (m68k_machtype == MACH_AMIGA)
61#else
62# define MACH_AMIGA_ONLY
63# define MACH_IS_AMIGA (1)
64# define MACH_TYPE (MACH_AMIGA)
65#endif
66
67#if !defined(CONFIG_ATARI)
68# define MACH_IS_ATARI (0)
69#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \
70 || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \
71 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
72 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
73# define MACH_IS_ATARI (m68k_machtype == MACH_ATARI)
74#else
75# define MACH_ATARI_ONLY
76# define MACH_IS_ATARI (1)
77# define MACH_TYPE (MACH_ATARI)
78#endif
79
80#if !defined(CONFIG_MAC)
81# define MACH_IS_MAC (0)
82#elif defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || defined(CONFIG_APOLLO) \
83 || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \
84 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
85 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
86# define MACH_IS_MAC (m68k_machtype == MACH_MAC)
87#else
88# define MACH_MAC_ONLY
89# define MACH_IS_MAC (1)
90# define MACH_TYPE (MACH_MAC)
91#endif
92
93#if defined(CONFIG_SUN3)
94#define MACH_IS_SUN3 (1)
95#define MACH_SUN3_ONLY (1)
96#define MACH_TYPE (MACH_SUN3)
97#else
98#define MACH_IS_SUN3 (0)
99#endif
100
101#if !defined (CONFIG_APOLLO)
102# define MACH_IS_APOLLO (0)
103#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
104 || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \
105 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
106 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
107# define MACH_IS_APOLLO (m68k_machtype == MACH_APOLLO)
108#else
109# define MACH_APOLLO_ONLY
110# define MACH_IS_APOLLO (1)
111# define MACH_TYPE (MACH_APOLLO)
112#endif
113
114#if !defined (CONFIG_MVME147)
115# define MACH_IS_MVME147 (0)
116#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
117 || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \
118 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
119 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME16x)
120# define MACH_IS_MVME147 (m68k_machtype == MACH_MVME147)
121#else
122# define MACH_MVME147_ONLY
123# define MACH_IS_MVME147 (1)
124# define MACH_TYPE (MACH_MVME147)
125#endif
126
127#if !defined (CONFIG_MVME16x)
128# define MACH_IS_MVME16x (0)
129#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
130 || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \
131 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
132 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
133# define MACH_IS_MVME16x (m68k_machtype == MACH_MVME16x)
134#else
135# define MACH_MVME16x_ONLY
136# define MACH_IS_MVME16x (1)
137# define MACH_TYPE (MACH_MVME16x)
138#endif
139
140#if !defined (CONFIG_BVME6000)
141# define MACH_IS_BVME6000 (0)
142#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
143 || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
144 || defined(CONFIG_HP300) || defined(CONFIG_Q40) \
145 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
146# define MACH_IS_BVME6000 (m68k_machtype == MACH_BVME6000)
147#else
148# define MACH_BVME6000_ONLY
149# define MACH_IS_BVME6000 (1)
150# define MACH_TYPE (MACH_BVME6000)
151#endif
152
153#if !defined (CONFIG_HP300)
154# define MACH_IS_HP300 (0)
155#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
156 || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
157 || defined(CONFIG_BVME6000) || defined(CONFIG_Q40) \
158 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
159# define MACH_IS_HP300 (m68k_machtype == MACH_HP300)
160#else
161# define MACH_HP300_ONLY
162# define MACH_IS_HP300 (1)
163# define MACH_TYPE (MACH_HP300)
164#endif
165
166#if !defined (CONFIG_Q40)
167# define MACH_IS_Q40 (0)
168#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
169 || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
170 || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \
171 || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)
172# define MACH_IS_Q40 (m68k_machtype == MACH_Q40)
173#else
174# define MACH_Q40_ONLY
175# define MACH_IS_Q40 (1)
176# define MACH_TYPE (MACH_Q40)
177#endif
178
179#if !defined (CONFIG_SUN3X)
180# define MACH_IS_SUN3X (0)
181#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
182 || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
183 || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \
184 || defined(CONFIG_Q40) || defined(CONFIG_MVME147)
185# define MACH_IS_SUN3X (m68k_machtype == MACH_SUN3X)
186#else
187# define CONFIG_SUN3X_ONLY
188# define MACH_IS_SUN3X (1)
189# define MACH_TYPE (MACH_SUN3X)
190#endif
191
192#ifndef MACH_TYPE
193# define MACH_TYPE (m68k_machtype)
194#endif
195
196#endif /* __KERNEL__ */
197
198
199 /*
200 * CPU, FPU and MMU types
201 *
202 * Note: we may rely on the following equalities:
203 *
204 * CPU_68020 == MMU_68851
205 * CPU_68030 == MMU_68030
206 * CPU_68040 == FPU_68040 == MMU_68040
207 * CPU_68060 == FPU_68060 == MMU_68060
208 */
209
210#define CPUB_68020 0
211#define CPUB_68030 1
212#define CPUB_68040 2
213#define CPUB_68060 3
214
215#define CPU_68020 (1<<CPUB_68020)
216#define CPU_68030 (1<<CPUB_68030)
217#define CPU_68040 (1<<CPUB_68040)
218#define CPU_68060 (1<<CPUB_68060)
219
220#define FPUB_68881 0
221#define FPUB_68882 1
222#define FPUB_68040 2 /* Internal FPU */
223#define FPUB_68060 3 /* Internal FPU */
224#define FPUB_SUNFPA 4 /* Sun-3 FPA */
225
226#define FPU_68881 (1<<FPUB_68881)
227#define FPU_68882 (1<<FPUB_68882)
228#define FPU_68040 (1<<FPUB_68040)
229#define FPU_68060 (1<<FPUB_68060)
230#define FPU_SUNFPA (1<<FPUB_SUNFPA)
231
232#define MMUB_68851 0
233#define MMUB_68030 1 /* Internal MMU */
234#define MMUB_68040 2 /* Internal MMU */
235#define MMUB_68060 3 /* Internal MMU */
236#define MMUB_APOLLO 4 /* Custom Apollo */
237#define MMUB_SUN3 5 /* Custom Sun-3 */
238
239#define MMU_68851 (1<<MMUB_68851)
240#define MMU_68030 (1<<MMUB_68030)
241#define MMU_68040 (1<<MMUB_68040)
242#define MMU_68060 (1<<MMUB_68060)
243#define MMU_SUN3 (1<<MMUB_SUN3)
244#define MMU_APOLLO (1<<MMUB_APOLLO)
245
246#ifdef __KERNEL__
247
248#ifndef __ASSEMBLY__
249extern unsigned long m68k_cputype;
250extern unsigned long m68k_fputype;
251extern unsigned long m68k_mmutype;
252#ifdef CONFIG_VME
253extern unsigned long vme_brdtype;
254#endif
255
256 /*
257 * m68k_is040or060 is != 0 for a '040 or higher;
258 * used numbers are 4 for 68040 and 6 for 68060.
259 */
260
261extern int m68k_is040or060;
262#endif /* !__ASSEMBLY__ */
263
264#if !defined(CONFIG_M68020)
265# define CPU_IS_020 (0)
266# define MMU_IS_851 (0)
267# define MMU_IS_SUN3 (0)
268#elif defined(CONFIG_M68030) || defined(CONFIG_M68040) || defined(CONFIG_M68060)
269# define CPU_IS_020 (m68k_cputype & CPU_68020)
270# define MMU_IS_851 (m68k_mmutype & MMU_68851)
271# define MMU_IS_SUN3 (0) /* Sun3 not supported with other CPU enabled */
272#else
273# define CPU_M68020_ONLY
274# define CPU_IS_020 (1)
275#ifdef MACH_SUN3_ONLY
276# define MMU_IS_SUN3 (1)
277# define MMU_IS_851 (0)
278#else
279# define MMU_IS_SUN3 (0)
280# define MMU_IS_851 (1)
281#endif
282#endif
283
284#if !defined(CONFIG_M68030)
285# define CPU_IS_030 (0)
286# define MMU_IS_030 (0)
287#elif defined(CONFIG_M68020) || defined(CONFIG_M68040) || defined(CONFIG_M68060)
288# define CPU_IS_030 (m68k_cputype & CPU_68030)
289# define MMU_IS_030 (m68k_mmutype & MMU_68030)
290#else
291# define CPU_M68030_ONLY
292# define CPU_IS_030 (1)
293# define MMU_IS_030 (1)
294#endif
295
296#if !defined(CONFIG_M68040)
297# define CPU_IS_040 (0)
298# define MMU_IS_040 (0)
299#elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68060)
300# define CPU_IS_040 (m68k_cputype & CPU_68040)
301# define MMU_IS_040 (m68k_mmutype & MMU_68040)
302#else
303# define CPU_M68040_ONLY
304# define CPU_IS_040 (1)
305# define MMU_IS_040 (1)
306#endif
307
308#if !defined(CONFIG_M68060)
309# define CPU_IS_060 (0)
310# define MMU_IS_060 (0)
311#elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68040)
312# define CPU_IS_060 (m68k_cputype & CPU_68060)
313# define MMU_IS_060 (m68k_mmutype & MMU_68060)
314#else
315# define CPU_M68060_ONLY
316# define CPU_IS_060 (1)
317# define MMU_IS_060 (1)
318#endif
319
320#if !defined(CONFIG_M68020) && !defined(CONFIG_M68030)
321# define CPU_IS_020_OR_030 (0)
322#else
323# define CPU_M68020_OR_M68030
324# if defined(CONFIG_M68040) || defined(CONFIG_M68060)
325# define CPU_IS_020_OR_030 (!m68k_is040or060)
326# else
327# define CPU_M68020_OR_M68030_ONLY
328# define CPU_IS_020_OR_030 (1)
329# endif
330#endif
331
332#if !defined(CONFIG_M68040) && !defined(CONFIG_M68060)
333# define CPU_IS_040_OR_060 (0)
334#else
335# define CPU_M68040_OR_M68060
336# if defined(CONFIG_M68020) || defined(CONFIG_M68030)
337# define CPU_IS_040_OR_060 (m68k_is040or060)
338# else
339# define CPU_M68040_OR_M68060_ONLY
340# define CPU_IS_040_OR_060 (1)
341# endif
342#endif
343
344#define CPU_TYPE (m68k_cputype)
345
346#ifdef CONFIG_M68KFPU_EMU
347# ifdef CONFIG_M68KFPU_EMU_ONLY
348# define FPU_IS_EMU (1)
349# else
350# define FPU_IS_EMU (!m68k_fputype)
351# endif
352#else
353# define FPU_IS_EMU (0)
354#endif
355
356
357 /*
358 * Miscellaneous
359 */
360
361#define NUM_MEMINFO 4
362
363#ifndef __ASSEMBLY__
364struct mem_info {
365 unsigned long addr; /* physical address of memory chunk */
366 unsigned long size; /* length of memory chunk (in bytes) */
367};
368
369extern int m68k_num_memory; /* # of memory blocks found (and used) */
370extern int m68k_realnum_memory; /* real # of memory blocks found */
371extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
372#endif
373
374#endif /* __KERNEL__ */
375
376#endif /* _M68K_SETUP_H */
diff --git a/arch/m68knommu/include/asm/setup.h b/arch/m68k/include/asm/setup_no.h
index fb86bb2a6078..45d286ce9398 100644
--- a/arch/m68knommu/include/asm/setup.h
+++ b/arch/m68k/include/asm/setup_no.h
@@ -1,6 +1,6 @@
1#ifdef __KERNEL__ 1#ifdef __KERNEL__
2 2
3#include <asm-m68k/setup.h> 3#include <asm/setup_mm.h>
4 4
5/* We have a bigger command line buffer. */ 5/* We have a bigger command line buffer. */
6#undef COMMAND_LINE_SIZE 6#undef COMMAND_LINE_SIZE
diff --git a/arch/m68k/include/asm/shm.h b/arch/m68k/include/asm/shm.h
new file mode 100644
index 000000000000..fa56ec84a126
--- /dev/null
+++ b/arch/m68k/include/asm/shm.h
@@ -0,0 +1,31 @@
1#ifndef _M68K_SHM_H
2#define _M68K_SHM_H
3
4
5/* format of page table entries that correspond to shared memory pages
6 currently out in swap space (see also mm/swap.c):
7 bits 0-1 (PAGE_PRESENT) is = 0
8 bits 8..2 (SWP_TYPE) are = SHM_SWP_TYPE
9 bits 31..9 are used like this:
10 bits 15..9 (SHM_ID) the id of the shared memory segment
11 bits 30..16 (SHM_IDX) the index of the page within the shared memory segment
12 (actually only bits 25..16 get used since SHMMAX is so low)
13 bit 31 (SHM_READ_ONLY) flag whether the page belongs to a read-only attach
14*/
15/* on the m68k both bits 0 and 1 must be zero */
16/* format on the sun3 is similar, but bits 30, 31 are set to zero and all
17 others are reduced by 2. --m */
18
19#ifndef CONFIG_SUN3
20#define SHM_ID_SHIFT 9
21#else
22#define SHM_ID_SHIFT 7
23#endif
24#define _SHM_ID_BITS 7
25#define SHM_ID_MASK ((1<<_SHM_ID_BITS)-1)
26
27#define SHM_IDX_SHIFT (SHM_ID_SHIFT+_SHM_ID_BITS)
28#define _SHM_IDX_BITS 15
29#define SHM_IDX_MASK ((1<<_SHM_IDX_BITS)-1)
30
31#endif /* _M68K_SHM_H */
diff --git a/arch/m68k/include/asm/shmbuf.h b/arch/m68k/include/asm/shmbuf.h
new file mode 100644
index 000000000000..f8928d62f1b7
--- /dev/null
+++ b/arch/m68k/include/asm/shmbuf.h
@@ -0,0 +1,42 @@
1#ifndef _M68K_SHMBUF_H
2#define _M68K_SHMBUF_H
3
4/*
5 * The shmid64_ds structure for m68k architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct shmid64_ds {
15 struct ipc64_perm shm_perm; /* operation perms */
16 size_t shm_segsz; /* size of segment (bytes) */
17 __kernel_time_t shm_atime; /* last attach time */
18 unsigned long __unused1;
19 __kernel_time_t shm_dtime; /* last detach time */
20 unsigned long __unused2;
21 __kernel_time_t shm_ctime; /* last change time */
22 unsigned long __unused3;
23 __kernel_pid_t shm_cpid; /* pid of creator */
24 __kernel_pid_t shm_lpid; /* pid of last operator */
25 unsigned long shm_nattch; /* no. of current attaches */
26 unsigned long __unused4;
27 unsigned long __unused5;
28};
29
30struct shminfo64 {
31 unsigned long shmmax;
32 unsigned long shmmin;
33 unsigned long shmmni;
34 unsigned long shmseg;
35 unsigned long shmall;
36 unsigned long __unused1;
37 unsigned long __unused2;
38 unsigned long __unused3;
39 unsigned long __unused4;
40};
41
42#endif /* _M68K_SHMBUF_H */
diff --git a/arch/m68k/include/asm/shmparam.h b/arch/m68k/include/asm/shmparam.h
new file mode 100644
index 000000000000..558892a2efb3
--- /dev/null
+++ b/arch/m68k/include/asm/shmparam.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_SHMPARAM_H
2#define _M68K_SHMPARAM_H
3
4#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */
5
6#endif /* _M68K_SHMPARAM_H */
diff --git a/arch/m68k/include/asm/sigcontext.h b/arch/m68k/include/asm/sigcontext.h
new file mode 100644
index 000000000000..bff6d40345a9
--- /dev/null
+++ b/arch/m68k/include/asm/sigcontext.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "sigcontext_no.h"
3#else
4#include "sigcontext_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/sigcontext_mm.h b/arch/m68k/include/asm/sigcontext_mm.h
new file mode 100644
index 000000000000..64fbe34cf26f
--- /dev/null
+++ b/arch/m68k/include/asm/sigcontext_mm.h
@@ -0,0 +1,19 @@
1#ifndef _ASM_M68k_SIGCONTEXT_H
2#define _ASM_M68k_SIGCONTEXT_H
3
4struct sigcontext {
5 unsigned long sc_mask; /* old sigmask */
6 unsigned long sc_usp; /* old user stack pointer */
7 unsigned long sc_d0;
8 unsigned long sc_d1;
9 unsigned long sc_a0;
10 unsigned long sc_a1;
11 unsigned short sc_sr;
12 unsigned long sc_pc;
13 unsigned short sc_formatvec;
14 unsigned long sc_fpregs[2*3]; /* room for two fp registers */
15 unsigned long sc_fpcntl[3];
16 unsigned char sc_fpstate[216];
17};
18
19#endif
diff --git a/arch/m68knommu/include/asm/sigcontext.h b/arch/m68k/include/asm/sigcontext_no.h
index 36c293fc133d..36c293fc133d 100644
--- a/arch/m68knommu/include/asm/sigcontext.h
+++ b/arch/m68k/include/asm/sigcontext_no.h
diff --git a/arch/m68k/include/asm/siginfo.h b/arch/m68k/include/asm/siginfo.h
new file mode 100644
index 000000000000..61219d7affc8
--- /dev/null
+++ b/arch/m68k/include/asm/siginfo.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "siginfo_no.h"
3#else
4#include "siginfo_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/siginfo_mm.h b/arch/m68k/include/asm/siginfo_mm.h
new file mode 100644
index 000000000000..05a8d6d90b58
--- /dev/null
+++ b/arch/m68k/include/asm/siginfo_mm.h
@@ -0,0 +1,92 @@
1#ifndef _M68K_SIGINFO_H
2#define _M68K_SIGINFO_H
3
4#define HAVE_ARCH_SIGINFO_T
5#define HAVE_ARCH_COPY_SIGINFO
6
7#include <asm-generic/siginfo.h>
8
9typedef struct siginfo {
10 int si_signo;
11 int si_errno;
12 int si_code;
13
14 union {
15 int _pad[SI_PAD_SIZE];
16
17 /* kill() */
18 struct {
19 __kernel_pid_t _pid; /* sender's pid */
20 __kernel_uid_t _uid; /* backwards compatibility */
21 __kernel_uid32_t _uid32; /* sender's uid */
22 } _kill;
23
24 /* POSIX.1b timers */
25 struct {
26 timer_t _tid; /* timer id */
27 int _overrun; /* overrun count */
28 char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
29 sigval_t _sigval; /* same as below */
30 int _sys_private; /* not to be passed to user */
31 } _timer;
32
33 /* POSIX.1b signals */
34 struct {
35 __kernel_pid_t _pid; /* sender's pid */
36 __kernel_uid_t _uid; /* backwards compatibility */
37 sigval_t _sigval;
38 __kernel_uid32_t _uid32; /* sender's uid */
39 } _rt;
40
41 /* SIGCHLD */
42 struct {
43 __kernel_pid_t _pid; /* which child */
44 __kernel_uid_t _uid; /* backwards compatibility */
45 int _status; /* exit code */
46 clock_t _utime;
47 clock_t _stime;
48 __kernel_uid32_t _uid32; /* sender's uid */
49 } _sigchld;
50
51 /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
52 struct {
53 void *_addr; /* faulting insn/memory ref. */
54 } _sigfault;
55
56 /* SIGPOLL */
57 struct {
58 int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
59 int _fd;
60 } _sigpoll;
61 } _sifields;
62} siginfo_t;
63
64#define UID16_SIGINFO_COMPAT_NEEDED
65
66/*
67 * How these fields are to be accessed.
68 */
69#undef si_uid
70#ifdef __KERNEL__
71#define si_uid _sifields._kill._uid32
72#define si_uid16 _sifields._kill._uid
73#else
74#define si_uid _sifields._kill._uid
75#endif
76
77#ifdef __KERNEL__
78
79#include <linux/string.h>
80
81static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
82{
83 if (from->si_code < 0)
84 memcpy(to, from, sizeof(*to));
85 else
86 /* _sigchld is currently the largest know union member */
87 memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld));
88}
89
90#endif /* __KERNEL__ */
91
92#endif
diff --git a/arch/m68knommu/include/asm/siginfo.h b/arch/m68k/include/asm/siginfo_no.h
index b18e5f4064ae..b18e5f4064ae 100644
--- a/arch/m68knommu/include/asm/siginfo.h
+++ b/arch/m68k/include/asm/siginfo_no.h
diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h
new file mode 100644
index 000000000000..3c19988bd93c
--- /dev/null
+++ b/arch/m68k/include/asm/signal.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "signal_no.h"
3#else
4#include "signal_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/signal_mm.h b/arch/m68k/include/asm/signal_mm.h
new file mode 100644
index 000000000000..3db8a81942f1
--- /dev/null
+++ b/arch/m68k/include/asm/signal_mm.h
@@ -0,0 +1,206 @@
1#ifndef _M68K_SIGNAL_H
2#define _M68K_SIGNAL_H
3
4#include <linux/types.h>
5
6/* Avoid too many header ordering problems. */
7struct siginfo;
8
9#ifdef __KERNEL__
10/* Most things should be clean enough to redefine this at will, if care
11 is taken to make libc match. */
12
13#define _NSIG 64
14#define _NSIG_BPW 32
15#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
16
17typedef unsigned long old_sigset_t; /* at least 32 bits */
18
19typedef struct {
20 unsigned long sig[_NSIG_WORDS];
21} sigset_t;
22
23#else
24/* Here we must cater to libcs that poke about in kernel headers. */
25
26#define NSIG 32
27typedef unsigned long sigset_t;
28
29#endif /* __KERNEL__ */
30
31#define SIGHUP 1
32#define SIGINT 2
33#define SIGQUIT 3
34#define SIGILL 4
35#define SIGTRAP 5
36#define SIGABRT 6
37#define SIGIOT 6
38#define SIGBUS 7
39#define SIGFPE 8
40#define SIGKILL 9
41#define SIGUSR1 10
42#define SIGSEGV 11
43#define SIGUSR2 12
44#define SIGPIPE 13
45#define SIGALRM 14
46#define SIGTERM 15
47#define SIGSTKFLT 16
48#define SIGCHLD 17
49#define SIGCONT 18
50#define SIGSTOP 19
51#define SIGTSTP 20
52#define SIGTTIN 21
53#define SIGTTOU 22
54#define SIGURG 23
55#define SIGXCPU 24
56#define SIGXFSZ 25
57#define SIGVTALRM 26
58#define SIGPROF 27
59#define SIGWINCH 28
60#define SIGIO 29
61#define SIGPOLL SIGIO
62/*
63#define SIGLOST 29
64*/
65#define SIGPWR 30
66#define SIGSYS 31
67#define SIGUNUSED 31
68
69/* These should not be considered constants from userland. */
70#define SIGRTMIN 32
71#define SIGRTMAX _NSIG
72
73/*
74 * SA_FLAGS values:
75 *
76 * SA_ONSTACK indicates that a registered stack_t will be used.
77 * SA_RESTART flag to get restarting signals (which were the default long ago)
78 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
79 * SA_RESETHAND clears the handler when the signal is delivered.
80 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
81 * SA_NODEFER prevents the current signal from being masked in the handler.
82 *
83 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
84 * Unix names RESETHAND and NODEFER respectively.
85 */
86#define SA_NOCLDSTOP 0x00000001
87#define SA_NOCLDWAIT 0x00000002
88#define SA_SIGINFO 0x00000004
89#define SA_ONSTACK 0x08000000
90#define SA_RESTART 0x10000000
91#define SA_NODEFER 0x40000000
92#define SA_RESETHAND 0x80000000
93
94#define SA_NOMASK SA_NODEFER
95#define SA_ONESHOT SA_RESETHAND
96
97/*
98 * sigaltstack controls
99 */
100#define SS_ONSTACK 1
101#define SS_DISABLE 2
102
103#define MINSIGSTKSZ 2048
104#define SIGSTKSZ 8192
105
106#include <asm-generic/signal.h>
107
108#ifdef __KERNEL__
109struct old_sigaction {
110 __sighandler_t sa_handler;
111 old_sigset_t sa_mask;
112 unsigned long sa_flags;
113 __sigrestore_t sa_restorer;
114};
115
116struct sigaction {
117 __sighandler_t sa_handler;
118 unsigned long sa_flags;
119 __sigrestore_t sa_restorer;
120 sigset_t sa_mask; /* mask last for extensibility */
121};
122
123struct k_sigaction {
124 struct sigaction sa;
125};
126#else
127/* Here we must cater to libcs that poke about in kernel headers. */
128
129struct sigaction {
130 union {
131 __sighandler_t _sa_handler;
132 void (*_sa_sigaction)(int, struct siginfo *, void *);
133 } _u;
134 sigset_t sa_mask;
135 unsigned long sa_flags;
136 void (*sa_restorer)(void);
137};
138
139#define sa_handler _u._sa_handler
140#define sa_sigaction _u._sa_sigaction
141
142#endif /* __KERNEL__ */
143
144typedef struct sigaltstack {
145 void __user *ss_sp;
146 int ss_flags;
147 size_t ss_size;
148} stack_t;
149
150#ifdef __KERNEL__
151#include <asm/sigcontext.h>
152
153#define __HAVE_ARCH_SIG_BITOPS
154
155static inline void sigaddset(sigset_t *set, int _sig)
156{
157 asm ("bfset %0{%1,#1}"
158 : "+od" (*set)
159 : "id" ((_sig - 1) ^ 31)
160 : "cc");
161}
162
163static inline void sigdelset(sigset_t *set, int _sig)
164{
165 asm ("bfclr %0{%1,#1}"
166 : "+od" (*set)
167 : "id" ((_sig - 1) ^ 31)
168 : "cc");
169}
170
171static inline int __const_sigismember(sigset_t *set, int _sig)
172{
173 unsigned long sig = _sig - 1;
174 return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW));
175}
176
177static inline int __gen_sigismember(sigset_t *set, int _sig)
178{
179 int ret;
180 asm ("bfextu %1{%2,#1},%0"
181 : "=d" (ret)
182 : "od" (*set), "id" ((_sig-1) ^ 31)
183 : "cc");
184 return ret;
185}
186
187#define sigismember(set,sig) \
188 (__builtin_constant_p(sig) ? \
189 __const_sigismember(set,sig) : \
190 __gen_sigismember(set,sig))
191
192static inline int sigfindinword(unsigned long word)
193{
194 asm ("bfffo %1{#0,#0},%0"
195 : "=d" (word)
196 : "d" (word & -word)
197 : "cc");
198 return word ^ 31;
199}
200
201struct pt_regs;
202extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie);
203
204#endif /* __KERNEL__ */
205
206#endif /* _M68K_SIGNAL_H */
diff --git a/arch/m68knommu/include/asm/signal.h b/arch/m68k/include/asm/signal_no.h
index 216c08be54a0..216c08be54a0 100644
--- a/arch/m68knommu/include/asm/signal.h
+++ b/arch/m68k/include/asm/signal_no.h
diff --git a/arch/m68knommu/include/asm/smp.h b/arch/m68k/include/asm/smp.h
index 9e9bd7e58922..9e9bd7e58922 100644
--- a/arch/m68knommu/include/asm/smp.h
+++ b/arch/m68k/include/asm/smp.h
diff --git a/arch/m68k/include/asm/socket.h b/arch/m68k/include/asm/socket.h
new file mode 100644
index 000000000000..dbc64e92c41a
--- /dev/null
+++ b/arch/m68k/include/asm/socket.h
@@ -0,0 +1,57 @@
1#ifndef _ASM_SOCKET_H
2#define _ASM_SOCKET_H
3
4#include <asm/sockios.h>
5
6/* For setsockopt(2) */
7#define SOL_SOCKET 1
8
9#define SO_DEBUG 1
10#define SO_REUSEADDR 2
11#define SO_TYPE 3
12#define SO_ERROR 4
13#define SO_DONTROUTE 5
14#define SO_BROADCAST 6
15#define SO_SNDBUF 7
16#define SO_RCVBUF 8
17#define SO_SNDBUFFORCE 32
18#define SO_RCVBUFFORCE 33
19#define SO_KEEPALIVE 9
20#define SO_OOBINLINE 10
21#define SO_NO_CHECK 11
22#define SO_PRIORITY 12
23#define SO_LINGER 13
24#define SO_BSDCOMPAT 14
25/* To add :#define SO_REUSEPORT 15 */
26#define SO_PASSCRED 16
27#define SO_PEERCRED 17
28#define SO_RCVLOWAT 18
29#define SO_SNDLOWAT 19
30#define SO_RCVTIMEO 20
31#define SO_SNDTIMEO 21
32
33/* Security levels - as per NRL IPv6 - don't actually do anything */
34#define SO_SECURITY_AUTHENTICATION 22
35#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
36#define SO_SECURITY_ENCRYPTION_NETWORK 24
37
38#define SO_BINDTODEVICE 25
39
40/* Socket filtering */
41#define SO_ATTACH_FILTER 26
42#define SO_DETACH_FILTER 27
43
44#define SO_PEERNAME 28
45#define SO_TIMESTAMP 29
46#define SCM_TIMESTAMP SO_TIMESTAMP
47
48#define SO_ACCEPTCONN 30
49
50#define SO_PEERSEC 31
51#define SO_PASSSEC 34
52#define SO_TIMESTAMPNS 35
53#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
54
55#define SO_MARK 36
56
57#endif /* _ASM_SOCKET_H */
diff --git a/arch/m68k/include/asm/sockios.h b/arch/m68k/include/asm/sockios.h
new file mode 100644
index 000000000000..c04a23943cb7
--- /dev/null
+++ b/arch/m68k/include/asm/sockios.h
@@ -0,0 +1,13 @@
1#ifndef __ARCH_M68K_SOCKIOS__
2#define __ARCH_M68K_SOCKIOS__
3
4/* Socket-level I/O control calls. */
5#define FIOSETOWN 0x8901
6#define SIOCSPGRP 0x8902
7#define FIOGETOWN 0x8903
8#define SIOCGPGRP 0x8904
9#define SIOCATMARK 0x8905
10#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
11#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
12
13#endif /* __ARCH_M68K_SOCKIOS__ */
diff --git a/arch/m68k/include/asm/spinlock.h b/arch/m68k/include/asm/spinlock.h
new file mode 100644
index 000000000000..20f46e27b534
--- /dev/null
+++ b/arch/m68k/include/asm/spinlock.h
@@ -0,0 +1,6 @@
1#ifndef __M68K_SPINLOCK_H
2#define __M68K_SPINLOCK_H
3
4#error "m68k doesn't do SMP yet"
5
6#endif
diff --git a/arch/m68k/include/asm/stat.h b/arch/m68k/include/asm/stat.h
new file mode 100644
index 000000000000..dd38bc2e9f98
--- /dev/null
+++ b/arch/m68k/include/asm/stat.h
@@ -0,0 +1,77 @@
1#ifndef _M68K_STAT_H
2#define _M68K_STAT_H
3
4struct __old_kernel_stat {
5 unsigned short st_dev;
6 unsigned short st_ino;
7 unsigned short st_mode;
8 unsigned short st_nlink;
9 unsigned short st_uid;
10 unsigned short st_gid;
11 unsigned short st_rdev;
12 unsigned long st_size;
13 unsigned long st_atime;
14 unsigned long st_mtime;
15 unsigned long st_ctime;
16};
17
18struct stat {
19 unsigned short st_dev;
20 unsigned short __pad1;
21 unsigned long st_ino;
22 unsigned short st_mode;
23 unsigned short st_nlink;
24 unsigned short st_uid;
25 unsigned short st_gid;
26 unsigned short st_rdev;
27 unsigned short __pad2;
28 unsigned long st_size;
29 unsigned long st_blksize;
30 unsigned long st_blocks;
31 unsigned long st_atime;
32 unsigned long __unused1;
33 unsigned long st_mtime;
34 unsigned long __unused2;
35 unsigned long st_ctime;
36 unsigned long __unused3;
37 unsigned long __unused4;
38 unsigned long __unused5;
39};
40
41/* This matches struct stat64 in glibc2.1, hence the absolutely
42 * insane amounts of padding around dev_t's.
43 */
44struct stat64 {
45 unsigned long long st_dev;
46 unsigned char __pad1[2];
47
48#define STAT64_HAS_BROKEN_ST_INO 1
49 unsigned long __st_ino;
50
51 unsigned int st_mode;
52 unsigned int st_nlink;
53
54 unsigned long st_uid;
55 unsigned long st_gid;
56
57 unsigned long long st_rdev;
58 unsigned char __pad3[2];
59
60 long long st_size;
61 unsigned long st_blksize;
62
63 unsigned long long st_blocks; /* Number 512-byte blocks allocated. */
64
65 unsigned long st_atime;
66 unsigned long st_atime_nsec;
67
68 unsigned long st_mtime;
69 unsigned long st_mtime_nsec;
70
71 unsigned long st_ctime;
72 unsigned long st_ctime_nsec;
73
74 unsigned long long st_ino;
75};
76
77#endif /* _M68K_STAT_H */
diff --git a/arch/m68k/include/asm/statfs.h b/arch/m68k/include/asm/statfs.h
new file mode 100644
index 000000000000..08d93f14e061
--- /dev/null
+++ b/arch/m68k/include/asm/statfs.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_STATFS_H
2#define _M68K_STATFS_H
3
4#include <asm-generic/statfs.h>
5
6#endif /* _M68K_STATFS_H */
diff --git a/arch/m68k/include/asm/string.h b/arch/m68k/include/asm/string.h
new file mode 100644
index 000000000000..2c356f90f171
--- /dev/null
+++ b/arch/m68k/include/asm/string.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "string_no.h"
3#else
4#include "string_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/string_mm.h b/arch/m68k/include/asm/string_mm.h
new file mode 100644
index 000000000000..2eb7df1e0f5d
--- /dev/null
+++ b/arch/m68k/include/asm/string_mm.h
@@ -0,0 +1,131 @@
1#ifndef _M68K_STRING_H_
2#define _M68K_STRING_H_
3
4#include <linux/types.h>
5#include <linux/compiler.h>
6
7static inline size_t __kernel_strlen(const char *s)
8{
9 const char *sc;
10
11 for (sc = s; *sc++; )
12 ;
13 return sc - s - 1;
14}
15
16static inline char *__kernel_strcpy(char *dest, const char *src)
17{
18 char *xdest = dest;
19
20 asm volatile ("\n"
21 "1: move.b (%1)+,(%0)+\n"
22 " jne 1b"
23 : "+a" (dest), "+a" (src)
24 : : "memory");
25 return xdest;
26}
27
28#ifndef __IN_STRING_C
29
30#define __HAVE_ARCH_STRLEN
31#define strlen(s) (__builtin_constant_p(s) ? \
32 __builtin_strlen(s) : \
33 __kernel_strlen(s))
34
35#define __HAVE_ARCH_STRNLEN
36static inline size_t strnlen(const char *s, size_t count)
37{
38 const char *sc = s;
39
40 asm volatile ("\n"
41 "1: subq.l #1,%1\n"
42 " jcs 2f\n"
43 " tst.b (%0)+\n"
44 " jne 1b\n"
45 " subq.l #1,%0\n"
46 "2:"
47 : "+a" (sc), "+d" (count));
48 return sc - s;
49}
50
51#define __HAVE_ARCH_STRCPY
52#if __GNUC__ >= 4
53#define strcpy(d, s) (__builtin_constant_p(s) && \
54 __builtin_strlen(s) <= 32 ? \
55 __builtin_strcpy(d, s) : \
56 __kernel_strcpy(d, s))
57#else
58#define strcpy(d, s) __kernel_strcpy(d, s)
59#endif
60
61#define __HAVE_ARCH_STRNCPY
62static inline char *strncpy(char *dest, const char *src, size_t n)
63{
64 char *xdest = dest;
65
66 asm volatile ("\n"
67 " jra 2f\n"
68 "1: move.b (%1),(%0)+\n"
69 " jeq 2f\n"
70 " addq.l #1,%1\n"
71 "2: subq.l #1,%2\n"
72 " jcc 1b\n"
73 : "+a" (dest), "+a" (src), "+d" (n)
74 : : "memory");
75 return xdest;
76}
77
78#define __HAVE_ARCH_STRCAT
79#define strcat(d, s) ({ \
80 char *__d = (d); \
81 strcpy(__d + strlen(__d), (s)); \
82})
83
84#define __HAVE_ARCH_STRCHR
85static inline char *strchr(const char *s, int c)
86{
87 char sc, ch = c;
88
89 for (; (sc = *s++) != ch; ) {
90 if (!sc)
91 return NULL;
92 }
93 return (char *)s - 1;
94}
95
96#define __HAVE_ARCH_STRCMP
97static inline int strcmp(const char *cs, const char *ct)
98{
99 char res;
100
101 asm ("\n"
102 "1: move.b (%0)+,%2\n" /* get *cs */
103 " cmp.b (%1)+,%2\n" /* compare a byte */
104 " jne 2f\n" /* not equal, break out */
105 " tst.b %2\n" /* at end of cs? */
106 " jne 1b\n" /* no, keep going */
107 " jra 3f\n" /* strings are equal */
108 "2: sub.b -(%1),%2\n" /* *cs - *ct */
109 "3:"
110 : "+a" (cs), "+a" (ct), "=d" (res));
111 return res;
112}
113
114#define __HAVE_ARCH_MEMSET
115extern void *memset(void *, int, __kernel_size_t);
116#define memset(d, c, n) __builtin_memset(d, c, n)
117
118#define __HAVE_ARCH_MEMCPY
119extern void *memcpy(void *, const void *, __kernel_size_t);
120#define memcpy(d, s, n) __builtin_memcpy(d, s, n)
121
122#define __HAVE_ARCH_MEMMOVE
123extern void *memmove(void *, const void *, __kernel_size_t);
124
125#define __HAVE_ARCH_MEMCMP
126extern int memcmp(const void *, const void *, __kernel_size_t);
127#define memcmp(d, s, n) __builtin_memcmp(d, s, n)
128
129#endif
130
131#endif /* _M68K_STRING_H_ */
diff --git a/arch/m68knommu/include/asm/string.h b/arch/m68k/include/asm/string_no.h
index af09e17000fc..af09e17000fc 100644
--- a/arch/m68knommu/include/asm/string.h
+++ b/arch/m68k/include/asm/string_no.h
diff --git a/arch/m68k/include/asm/sun3-head.h b/arch/m68k/include/asm/sun3-head.h
new file mode 100644
index 000000000000..05af2f18b3bd
--- /dev/null
+++ b/arch/m68k/include/asm/sun3-head.h
@@ -0,0 +1,10 @@
1#ifndef __SUN3_HEAD_H
2#define __SUN3_HEAD_H
3
4#define KERNBASE 0xE000000 /* First address the kernel will eventually be */
5#define LOAD_ADDR 0x4000 /* prom jumps to us here unless this is elf /boot */
6#define FC_CONTROL 3
7#define FC_SUPERD 5
8#define FC_CPU 7
9
10#endif /* __SUN3_HEAD_H */
diff --git a/arch/m68k/include/asm/sun3_pgalloc.h b/arch/m68k/include/asm/sun3_pgalloc.h
new file mode 100644
index 000000000000..d4c83f143816
--- /dev/null
+++ b/arch/m68k/include/asm/sun3_pgalloc.h
@@ -0,0 +1,102 @@
1/* sun3_pgalloc.h --
2 * reorganization around 2.3.39, routines moved from sun3_pgtable.h
3 *
4 *
5 * 02/27/2002 -- Modified to support "highpte" implementation in 2.5.5 (Sam)
6 *
7 * moved 1/26/2000 Sam Creasey
8 */
9
10#ifndef _SUN3_PGALLOC_H
11#define _SUN3_PGALLOC_H
12
13#include <asm/tlb.h>
14
15/* FIXME - when we get this compiling */
16/* erm, now that it's compiling, what do we do with it? */
17#define _KERNPG_TABLE 0
18
19extern const char bad_pmd_string[];
20
21#define pmd_alloc_one(mm,address) ({ BUG(); ((pmd_t *)2); })
22
23
24static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
25{
26 free_page((unsigned long) pte);
27}
28
29static inline void pte_free(struct mm_struct *mm, pgtable_t page)
30{
31 pgtable_page_dtor(page);
32 __free_page(page);
33}
34
35#define __pte_free_tlb(tlb,pte) \
36do { \
37 pgtable_page_dtor(pte); \
38 tlb_remove_page((tlb), pte); \
39} while (0)
40
41static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
42 unsigned long address)
43{
44 unsigned long page = __get_free_page(GFP_KERNEL|__GFP_REPEAT);
45
46 if (!page)
47 return NULL;
48
49 memset((void *)page, 0, PAGE_SIZE);
50 return (pte_t *) (page);
51}
52
53static inline pgtable_t pte_alloc_one(struct mm_struct *mm,
54 unsigned long address)
55{
56 struct page *page = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0);
57
58 if (page == NULL)
59 return NULL;
60
61 clear_highpage(page);
62 pgtable_page_ctor(page);
63 return page;
64
65}
66
67static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
68{
69 pmd_val(*pmd) = __pa((unsigned long)pte);
70}
71
72static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page)
73{
74 pmd_val(*pmd) = __pa((unsigned long)page_address(page));
75}
76#define pmd_pgtable(pmd) pmd_page(pmd)
77
78/*
79 * allocating and freeing a pmd is trivial: the 1-entry pmd is
80 * inside the pgd, so has no extra memory associated with it.
81 */
82#define pmd_free(mm, x) do { } while (0)
83#define __pmd_free_tlb(tlb, x) do { } while (0)
84
85static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
86{
87 free_page((unsigned long) pgd);
88}
89
90static inline pgd_t * pgd_alloc(struct mm_struct *mm)
91{
92 pgd_t *new_pgd;
93
94 new_pgd = (pgd_t *)get_zeroed_page(GFP_KERNEL);
95 memcpy(new_pgd, swapper_pg_dir, PAGE_SIZE);
96 memset(new_pgd, 0, (PAGE_OFFSET >> PGDIR_SHIFT));
97 return new_pgd;
98}
99
100#define pgd_populate(mm, pmd, pte) BUG()
101
102#endif /* SUN3_PGALLOC_H */
diff --git a/arch/m68k/include/asm/sun3_pgtable.h b/arch/m68k/include/asm/sun3_pgtable.h
new file mode 100644
index 000000000000..f847ec732d62
--- /dev/null
+++ b/arch/m68k/include/asm/sun3_pgtable.h
@@ -0,0 +1,234 @@
1#ifndef _SUN3_PGTABLE_H
2#define _SUN3_PGTABLE_H
3
4#include <asm/sun3mmu.h>
5
6#ifndef __ASSEMBLY__
7#include <asm/virtconvert.h>
8#include <linux/linkage.h>
9
10/*
11 * This file contains all the things which change drastically for the sun3
12 * pagetable stuff, to avoid making too much of a mess of the generic m68k
13 * `pgtable.h'; this should only be included from the generic file. --m
14 */
15
16/* For virtual address to physical address conversion */
17#define VTOP(addr) __pa(addr)
18#define PTOV(addr) __va(addr)
19
20
21#endif /* !__ASSEMBLY__ */
22
23/* These need to be defined for compatibility although the sun3 doesn't use them */
24#define _PAGE_NOCACHE030 0x040
25#define _CACHEMASK040 (~0x060)
26#define _PAGE_NOCACHE_S 0x040
27
28/* Page protection values within PTE. */
29#define SUN3_PAGE_VALID (0x80000000)
30#define SUN3_PAGE_WRITEABLE (0x40000000)
31#define SUN3_PAGE_SYSTEM (0x20000000)
32#define SUN3_PAGE_NOCACHE (0x10000000)
33#define SUN3_PAGE_ACCESSED (0x02000000)
34#define SUN3_PAGE_MODIFIED (0x01000000)
35
36
37/* Externally used page protection values. */
38#define _PAGE_PRESENT (SUN3_PAGE_VALID)
39#define _PAGE_ACCESSED (SUN3_PAGE_ACCESSED)
40
41#define PTE_FILE_MAX_BITS 28
42
43/* Compound page protection values. */
44//todo: work out which ones *should* have SUN3_PAGE_NOCACHE and fix...
45// is it just PAGE_KERNEL and PAGE_SHARED?
46#define PAGE_NONE __pgprot(SUN3_PAGE_VALID \
47 | SUN3_PAGE_ACCESSED \
48 | SUN3_PAGE_NOCACHE)
49#define PAGE_SHARED __pgprot(SUN3_PAGE_VALID \
50 | SUN3_PAGE_WRITEABLE \
51 | SUN3_PAGE_ACCESSED \
52 | SUN3_PAGE_NOCACHE)
53#define PAGE_COPY __pgprot(SUN3_PAGE_VALID \
54 | SUN3_PAGE_ACCESSED \
55 | SUN3_PAGE_NOCACHE)
56#define PAGE_READONLY __pgprot(SUN3_PAGE_VALID \
57 | SUN3_PAGE_ACCESSED \
58 | SUN3_PAGE_NOCACHE)
59#define PAGE_KERNEL __pgprot(SUN3_PAGE_VALID \
60 | SUN3_PAGE_WRITEABLE \
61 | SUN3_PAGE_SYSTEM \
62 | SUN3_PAGE_NOCACHE \
63 | SUN3_PAGE_ACCESSED \
64 | SUN3_PAGE_MODIFIED)
65#define PAGE_INIT __pgprot(SUN3_PAGE_VALID \
66 | SUN3_PAGE_WRITEABLE \
67 | SUN3_PAGE_SYSTEM \
68 | SUN3_PAGE_NOCACHE)
69
70/*
71 * Page protections for initialising protection_map. The sun3 has only two
72 * protection settings, valid (implying read and execute) and writeable. These
73 * are as close as we can get...
74 */
75#define __P000 PAGE_NONE
76#define __P001 PAGE_READONLY
77#define __P010 PAGE_COPY
78#define __P011 PAGE_COPY
79#define __P100 PAGE_READONLY
80#define __P101 PAGE_READONLY
81#define __P110 PAGE_COPY
82#define __P111 PAGE_COPY
83
84#define __S000 PAGE_NONE
85#define __S001 PAGE_READONLY
86#define __S010 PAGE_SHARED
87#define __S011 PAGE_SHARED
88#define __S100 PAGE_READONLY
89#define __S101 PAGE_READONLY
90#define __S110 PAGE_SHARED
91#define __S111 PAGE_SHARED
92
93/* Use these fake page-protections on PMDs. */
94#define SUN3_PMD_VALID (0x00000001)
95#define SUN3_PMD_MASK (0x0000003F)
96#define SUN3_PMD_MAGIC (0x0000002B)
97
98#ifndef __ASSEMBLY__
99
100/*
101 * Conversion functions: convert a page and protection to a page entry,
102 * and a page entry and page directory to the page they refer to.
103 */
104#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
105
106static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
107{
108 pte_val(pte) = (pte_val(pte) & SUN3_PAGE_CHG_MASK) | pgprot_val(newprot);
109 return pte;
110}
111
112#define pmd_set(pmdp,ptep) do {} while (0)
113
114static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp)
115{
116 pgd_val(*pgdp) = virt_to_phys(pmdp);
117}
118
119#define __pte_page(pte) \
120((unsigned long) __va ((pte_val (pte) & SUN3_PAGE_PGNUM_MASK) << PAGE_SHIFT))
121#define __pmd_page(pmd) \
122((unsigned long) __va (pmd_val (pmd) & PAGE_MASK))
123
124static inline int pte_none (pte_t pte) { return !pte_val (pte); }
125static inline int pte_present (pte_t pte) { return pte_val (pte) & SUN3_PAGE_VALID; }
126static inline void pte_clear (struct mm_struct *mm, unsigned long addr, pte_t *ptep)
127{
128 pte_val (*ptep) = 0;
129}
130
131#define pte_pfn(pte) (pte_val(pte) & SUN3_PAGE_PGNUM_MASK)
132#define pfn_pte(pfn, pgprot) \
133({ pte_t __pte; pte_val(__pte) = pfn | pgprot_val(pgprot); __pte; })
134
135#define pte_page(pte) virt_to_page(__pte_page(pte))
136#define pmd_page(pmd) virt_to_page(__pmd_page(pmd))
137
138
139static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); }
140#define pmd_none(pmd) pmd_none2(&(pmd))
141//static inline int pmd_bad (pmd_t pmd) { return (pmd_val (pmd) & SUN3_PMD_MASK) != SUN3_PMD_MAGIC; }
142static inline int pmd_bad2 (pmd_t *pmd) { return 0; }
143#define pmd_bad(pmd) pmd_bad2(&(pmd))
144static inline int pmd_present2 (pmd_t *pmd) { return pmd_val (*pmd) & SUN3_PMD_VALID; }
145/* #define pmd_present(pmd) pmd_present2(&(pmd)) */
146#define pmd_present(pmd) (!pmd_none2(&(pmd)))
147static inline void pmd_clear (pmd_t *pmdp) { pmd_val (*pmdp) = 0; }
148
149static inline int pgd_none (pgd_t pgd) { return 0; }
150static inline int pgd_bad (pgd_t pgd) { return 0; }
151static inline int pgd_present (pgd_t pgd) { return 1; }
152static inline void pgd_clear (pgd_t *pgdp) {}
153
154
155#define pte_ERROR(e) \
156 printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
157#define pmd_ERROR(e) \
158 printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e))
159#define pgd_ERROR(e) \
160 printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
161
162
163/*
164 * The following only work if pte_present() is true.
165 * Undefined behaviour if not...
166 * [we have the full set here even if they don't change from m68k]
167 */
168static inline int pte_write(pte_t pte) { return pte_val(pte) & SUN3_PAGE_WRITEABLE; }
169static inline int pte_dirty(pte_t pte) { return pte_val(pte) & SUN3_PAGE_MODIFIED; }
170static inline int pte_young(pte_t pte) { return pte_val(pte) & SUN3_PAGE_ACCESSED; }
171static inline int pte_file(pte_t pte) { return pte_val(pte) & SUN3_PAGE_ACCESSED; }
172static inline int pte_special(pte_t pte) { return 0; }
173
174static inline pte_t pte_wrprotect(pte_t pte) { pte_val(pte) &= ~SUN3_PAGE_WRITEABLE; return pte; }
175static inline pte_t pte_mkclean(pte_t pte) { pte_val(pte) &= ~SUN3_PAGE_MODIFIED; return pte; }
176static inline pte_t pte_mkold(pte_t pte) { pte_val(pte) &= ~SUN3_PAGE_ACCESSED; return pte; }
177static inline pte_t pte_mkwrite(pte_t pte) { pte_val(pte) |= SUN3_PAGE_WRITEABLE; return pte; }
178static inline pte_t pte_mkdirty(pte_t pte) { pte_val(pte) |= SUN3_PAGE_MODIFIED; return pte; }
179static inline pte_t pte_mkyoung(pte_t pte) { pte_val(pte) |= SUN3_PAGE_ACCESSED; return pte; }
180static inline pte_t pte_mknocache(pte_t pte) { pte_val(pte) |= SUN3_PAGE_NOCACHE; return pte; }
181// use this version when caches work...
182//static inline pte_t pte_mkcache(pte_t pte) { pte_val(pte) &= SUN3_PAGE_NOCACHE; return pte; }
183// until then, use:
184static inline pte_t pte_mkcache(pte_t pte) { return pte; }
185static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
186
187extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
188extern pgd_t kernel_pg_dir[PTRS_PER_PGD];
189
190/* Find an entry in a pagetable directory. */
191#define pgd_index(address) ((address) >> PGDIR_SHIFT)
192
193#define pgd_offset(mm, address) \
194((mm)->pgd + pgd_index(address))
195
196/* Find an entry in a kernel pagetable directory. */
197#define pgd_offset_k(address) pgd_offset(&init_mm, address)
198
199/* Find an entry in the second-level pagetable. */
200static inline pmd_t *pmd_offset (pgd_t *pgd, unsigned long address)
201{
202 return (pmd_t *) pgd;
203}
204
205static inline unsigned long pte_to_pgoff(pte_t pte)
206{
207 return pte.pte & SUN3_PAGE_PGNUM_MASK;
208}
209
210static inline pte_t pgoff_to_pte(unsigned off)
211{
212 pte_t pte = { off + SUN3_PAGE_ACCESSED };
213 return pte;
214}
215
216
217/* Find an entry in the third-level pagetable. */
218#define pte_index(address) ((address >> PAGE_SHIFT) & (PTRS_PER_PTE-1))
219#define pte_offset_kernel(pmd, address) ((pte_t *) __pmd_page(*pmd) + pte_index(address))
220/* FIXME: should we bother with kmap() here? */
221#define pte_offset_map(pmd, address) ((pte_t *)kmap(pmd_page(*pmd)) + pte_index(address))
222#define pte_offset_map_nested(pmd, address) pte_offset_map(pmd, address)
223#define pte_unmap(pte) kunmap(pte)
224#define pte_unmap_nested(pte) kunmap(pte)
225
226/* Macros to (de)construct the fake PTEs representing swap pages. */
227#define __swp_type(x) ((x).val & 0x7F)
228#define __swp_offset(x) (((x).val) >> 7)
229#define __swp_entry(type,offset) ((swp_entry_t) { ((type) | ((offset) << 7)) })
230#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
231#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
232
233#endif /* !__ASSEMBLY__ */
234#endif /* !_SUN3_PGTABLE_H */
diff --git a/arch/m68k/include/asm/sun3ints.h b/arch/m68k/include/asm/sun3ints.h
new file mode 100644
index 000000000000..309d6e6a1374
--- /dev/null
+++ b/arch/m68k/include/asm/sun3ints.h
@@ -0,0 +1,37 @@
1/*
2 * sun3ints.h -- Linux/Sun3 interrupt handling code definitions
3 *
4 * Erik Verbruggen (erik@bigmama.xtdnet.nl)
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive for
8 * more details.
9 */
10
11#ifndef SUN3INTS_H
12#define SUN3INTS_H
13
14#include <linux/types.h>
15#include <linux/interrupt.h>
16#include <asm/intersil.h>
17#include <asm/oplib.h>
18#include <asm/traps.h>
19#include <asm/irq.h>
20
21#define SUN3_INT_VECS 192
22
23void sun3_enable_irq(unsigned int irq);
24void sun3_disable_irq(unsigned int irq);
25extern void sun3_init_IRQ (void);
26extern void sun3_enable_interrupts (void);
27extern void sun3_disable_interrupts (void);
28extern volatile unsigned char* sun3_intreg;
29
30/* master list of VME vectors -- don't fuck with this */
31#define SUN3_VEC_FLOPPY (IRQ_USER+0)
32#define SUN3_VEC_VMESCSI0 (IRQ_USER+0)
33#define SUN3_VEC_VMESCSI1 (IRQ_USER+1)
34#define SUN3_VEC_CG (IRQ_USER+104)
35
36
37#endif /* SUN3INTS_H */
diff --git a/arch/m68k/include/asm/sun3mmu.h b/arch/m68k/include/asm/sun3mmu.h
new file mode 100644
index 000000000000..d8f17a0d8c9f
--- /dev/null
+++ b/arch/m68k/include/asm/sun3mmu.h
@@ -0,0 +1,171 @@
1/*
2 * Definitions for Sun3 custom MMU.
3 */
4#ifndef __SUN3_MMU_H__
5#define __SUN3_MMU_H__
6
7#include <linux/types.h>
8#include <asm/movs.h>
9#include <asm/sun3-head.h>
10
11/* MMU characteristics. */
12#define SUN3_SEGMAPS_PER_CONTEXT 2048
13#define SUN3_PMEGS_NUM 256
14#define SUN3_CONTEXTS_NUM 8
15
16#define SUN3_PMEG_SIZE_BITS 17
17#define SUN3_PMEG_SIZE (1 << SUN3_PMEG_SIZE_BITS)
18#define SUN3_PMEG_MASK (SUN3_PMEG_SIZE - 1)
19
20#define SUN3_PTE_SIZE_BITS 13
21#define SUN3_PTE_SIZE (1 << SUN3_PTE_SIZE_BITS)
22#define SUN3_PTE_MASK (SUN3_PTE_SIZE - 1)
23
24#define SUN3_CONTROL_MASK (0x0FFFFFFC)
25#define SUN3_INVALID_PMEG 255
26#define SUN3_INVALID_CONTEXT 255
27
28#define AC_IDPROM 0x00000000 /* 34 ID PROM, R/O, byte, 32 bytes */
29#define AC_PAGEMAP 0x10000000 /* 3 Pagemap R/W, long */
30#define AC_SEGMAP 0x20000000 /* 3 Segment map, byte */
31#define AC_CONTEXT 0x30000000 /* 34c current mmu-context */
32#define AC_SENABLE 0x40000000 /* 34c system dvma/cache/reset enable reg*/
33#define AC_UDVMA_ENB 0x50000000 /* 34 Not used on Sun boards, byte */
34#define AC_BUS_ERROR 0x60000000 /* 34 Cleared on read, byte. */
35#define AC_SYNC_ERR 0x60000000 /* c fault type */
36#define AC_SYNC_VA 0x60000004 /* c fault virtual address */
37#define AC_ASYNC_ERR 0x60000008 /* c asynchronous fault type */
38#define AC_ASYNC_VA 0x6000000c /* c async fault virtual address */
39#define AC_LEDS 0x70000000 /* 34 Zero turns on LEDs, byte */
40#define AC_CACHETAGS 0x80000000 /* 34c direct access to the VAC tags */
41#define AC_CACHEDDATA 0x90000000 /* 3 c direct access to the VAC data */
42#define AC_UDVMA_MAP 0xD0000000 /* 4 Not used on Sun boards, byte */
43#define AC_VME_VECTOR 0xE0000000 /* 4 For non-Autovector VME, byte */
44#define AC_BOOT_SCC 0xF0000000 /* 34 bypass to access Zilog 8530. byte.*/
45
46#define SUN3_PAGE_CHG_MASK (SUN3_PAGE_PGNUM_MASK \
47 | SUN3_PAGE_ACCESSED | SUN3_PAGE_MODIFIED)
48
49/* Bus access type within PTE. */
50#define SUN3_PAGE_TYPE_MASK (0x0c000000)
51#define SUN3_PAGE_TYPE_MEMORY (0x00000000)
52#define SUN3_PAGE_TYPE_IO (0x04000000)
53#define SUN3_PAGE_TYPE_VME16 (0x08000000)
54#define SUN3_PAGE_TYPE_VME32 (0x0c000000)
55
56/* Mask for page number within PTE. */
57#define SUN3_PAGE_PGNUM_MASK (0x0007FFFF)
58
59/* Bits within bus-error register. */
60#define SUN3_BUSERR_WATCHDOG (0x01)
61#define SUN3_BUSERR_unused (0x02)
62#define SUN3_BUSERR_FPAENERR (0x04)
63#define SUN3_BUSERR_FPABERR (0x08)
64#define SUN3_BUSERR_VMEBERR (0x10)
65#define SUN3_BUSERR_TIMEOUT (0x20)
66#define SUN3_BUSERR_PROTERR (0x40)
67#define SUN3_BUSERR_INVALID (0x80)
68
69#ifndef __ASSEMBLY__
70
71/* Read bus error status register (implicitly clearing it). */
72static inline unsigned char sun3_get_buserr(void)
73{
74 unsigned char sfc, c;
75
76 GET_SFC (sfc);
77 SET_SFC (FC_CONTROL);
78 GET_CONTROL_BYTE (AC_BUS_ERROR, c);
79 SET_SFC (sfc);
80
81 return c;
82}
83
84/* Read segmap from hardware MMU. */
85static inline unsigned long sun3_get_segmap(unsigned long addr)
86{
87 register unsigned long entry;
88 unsigned char c, sfc;
89
90 GET_SFC (sfc);
91 SET_SFC (FC_CONTROL);
92 GET_CONTROL_BYTE (AC_SEGMAP | (addr & SUN3_CONTROL_MASK), c);
93 SET_SFC (sfc);
94 entry = c;
95
96 return entry;
97}
98
99/* Write segmap to hardware MMU. */
100static inline void sun3_put_segmap(unsigned long addr, unsigned long entry)
101{
102 unsigned char sfc;
103
104 GET_DFC (sfc);
105 SET_DFC (FC_CONTROL);
106 SET_CONTROL_BYTE (AC_SEGMAP | (addr & SUN3_CONTROL_MASK), entry);
107 SET_DFC (sfc);
108
109 return;
110}
111
112/* Read PTE from hardware MMU. */
113static inline unsigned long sun3_get_pte(unsigned long addr)
114{
115 register unsigned long entry;
116 unsigned char sfc;
117
118 GET_SFC (sfc);
119 SET_SFC (FC_CONTROL);
120 GET_CONTROL_WORD (AC_PAGEMAP | (addr & SUN3_CONTROL_MASK), entry);
121 SET_SFC (sfc);
122
123 return entry;
124}
125
126/* Write PTE to hardware MMU. */
127static inline void sun3_put_pte(unsigned long addr, unsigned long entry)
128{
129 unsigned char sfc;
130
131 GET_DFC (sfc);
132 SET_DFC (FC_CONTROL);
133 SET_CONTROL_WORD (AC_PAGEMAP | (addr & SUN3_CONTROL_MASK), entry);
134 SET_DFC (sfc);
135
136 return;
137}
138
139/* get current context */
140static inline unsigned char sun3_get_context(void)
141{
142 unsigned char sfc, c;
143
144 GET_SFC(sfc);
145 SET_SFC(FC_CONTROL);
146 GET_CONTROL_BYTE(AC_CONTEXT, c);
147 SET_SFC(sfc);
148
149 return c;
150}
151
152/* set alternate context */
153static inline void sun3_put_context(unsigned char c)
154{
155 unsigned char dfc;
156 GET_DFC(dfc);
157 SET_DFC(FC_CONTROL);
158 SET_CONTROL_BYTE(AC_CONTEXT, c);
159 SET_DFC(dfc);
160
161 return;
162}
163
164extern void __iomem *sun3_ioremap(unsigned long phys, unsigned long size,
165 unsigned long type);
166
167extern int sun3_map_test(unsigned long addr, char *val);
168
169#endif /* !__ASSEMBLY__ */
170
171#endif /* !__SUN3_MMU_H__ */
diff --git a/arch/m68k/include/asm/sun3x.h b/arch/m68k/include/asm/sun3x.h
new file mode 100644
index 000000000000..f5691a1ed7cc
--- /dev/null
+++ b/arch/m68k/include/asm/sun3x.h
@@ -0,0 +1,27 @@
1#ifndef SUN3X_H
2#define SUN3X_H
3
4/* hardware addresses */
5#define SUN3X_IOMMU 0x60000000
6#define SUN3X_ENAREG 0x61000000
7#define SUN3X_INTREG 0x61001400
8#define SUN3X_DIAGREG 0x61001800
9#define SUN3X_ZS1 0x62000000
10#define SUN3X_ZS2 0x62002000
11#define SUN3X_LANCE 0x65002000
12#define SUN3X_EEPROM 0x64000000
13#define SUN3X_IDPROM 0x640007d8
14#define SUN3X_VIDEO_BASE 0x50000000
15#define SUN3X_VIDEO_P4ID 0x50300000
16#define SUN3X_ESP_BASE 0x66000000
17#define SUN3X_ESP_DMA 0x66001000
18#define SUN3X_FDC 0x6e000000
19#define SUN3X_FDC_FCR 0x6e000400
20#define SUN3X_FDC_FVR 0x6e000800
21
22/* some NVRAM addresses */
23#define SUN3X_EEPROM_CONS (SUN3X_EEPROM + 0x1f)
24#define SUN3X_EEPROM_PORTA (SUN3X_EEPROM + 0x58)
25#define SUN3X_EEPROM_PORTB (SUN3X_EEPROM + 0x60)
26
27#endif
diff --git a/arch/m68k/include/asm/sun3xflop.h b/arch/m68k/include/asm/sun3xflop.h
new file mode 100644
index 000000000000..32c45f84ac60
--- /dev/null
+++ b/arch/m68k/include/asm/sun3xflop.h
@@ -0,0 +1,263 @@
1/* sun3xflop.h: Sun3/80 specific parts of the floppy driver.
2 *
3 * Derived partially from asm-sparc/floppy.h, which is:
4 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
5 *
6 * Sun3x version 2/4/2000 Sam Creasey (sammy@sammy.net)
7 */
8
9#ifndef __ASM_SUN3X_FLOPPY_H
10#define __ASM_SUN3X_FLOPPY_H
11
12#include <asm/page.h>
13#include <asm/pgtable.h>
14#include <asm/system.h>
15#include <asm/irq.h>
16#include <asm/sun3x.h>
17
18/* default interrupt vector */
19#define SUN3X_FDC_IRQ 0x40
20
21/* some constants */
22#define FCR_TC 0x1
23#define FCR_EJECT 0x2
24#define FCR_MTRON 0x4
25#define FCR_DSEL1 0x8
26#define FCR_DSEL0 0x10
27
28/* We don't need no stinkin' I/O port allocation crap. */
29#undef release_region
30#undef request_region
31#define release_region(X, Y) do { } while(0)
32#define request_region(X, Y, Z) (1)
33
34struct sun3xflop_private {
35 volatile unsigned char *status_r;
36 volatile unsigned char *data_r;
37 volatile unsigned char *fcr_r;
38 volatile unsigned char *fvr_r;
39 unsigned char fcr;
40} sun3x_fdc;
41
42/* Super paranoid... */
43#undef HAVE_DISABLE_HLT
44
45/* Routines unique to each controller type on a Sun. */
46static unsigned char sun3x_82072_fd_inb(int port)
47{
48 static int once = 0;
49// udelay(5);
50 switch(port & 7) {
51 default:
52 printk("floppy: Asked to read unknown port %d\n", port);
53 panic("floppy: Port bolixed.");
54 case 4: /* FD_STATUS */
55 return (*sun3x_fdc.status_r) & ~STATUS_DMA;
56 case 5: /* FD_DATA */
57 return (*sun3x_fdc.data_r);
58 case 7: /* FD_DIR */
59 /* ugly hack, I can't find a way to actually detect the disk */
60 if(!once) {
61 once = 1;
62 return 0x80;
63 }
64 return 0;
65 };
66 panic("sun_82072_fd_inb: How did I get here?");
67}
68
69static void sun3x_82072_fd_outb(unsigned char value, int port)
70{
71// udelay(5);
72 switch(port & 7) {
73 default:
74 printk("floppy: Asked to write to unknown port %d\n", port);
75 panic("floppy: Port bolixed.");
76 case 2: /* FD_DOR */
77 /* Oh geese, 82072 on the Sun has no DOR register,
78 * so we make do with taunting the FCR.
79 *
80 * ASSUMPTIONS: There will only ever be one floppy
81 * drive attached to a Sun controller
82 * and it will be at drive zero.
83 */
84
85 {
86 unsigned char fcr = sun3x_fdc.fcr;
87
88 if(value & 0x10) {
89 fcr |= (FCR_DSEL0 | FCR_MTRON);
90 } else
91 fcr &= ~(FCR_DSEL0 | FCR_MTRON);
92
93
94 if(fcr != sun3x_fdc.fcr) {
95 *(sun3x_fdc.fcr_r) = fcr;
96 sun3x_fdc.fcr = fcr;
97 }
98 }
99 break;
100 case 5: /* FD_DATA */
101 *(sun3x_fdc.data_r) = value;
102 break;
103 case 7: /* FD_DCR */
104 *(sun3x_fdc.status_r) = value;
105 break;
106 case 4: /* FD_STATUS */
107 *(sun3x_fdc.status_r) = value;
108 break;
109 };
110 return;
111}
112
113
114asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id)
115{
116 register unsigned char st;
117
118#undef TRACE_FLPY_INT
119#define NO_FLOPPY_ASSEMBLER
120
121#ifdef TRACE_FLPY_INT
122 static int calls=0;
123 static int bytes=0;
124 static int dma_wait=0;
125#endif
126 if(!doing_pdma) {
127 floppy_interrupt(irq, dev_id);
128 return IRQ_HANDLED;
129 }
130
131// printk("doing pdma\n");// st %x\n", sun_fdc->status_82072);
132
133#ifdef TRACE_FLPY_INT
134 if(!calls)
135 bytes = virtual_dma_count;
136#endif
137
138 {
139 register int lcount;
140 register char *lptr;
141
142 for(lcount=virtual_dma_count, lptr=virtual_dma_addr;
143 lcount; lcount--, lptr++) {
144/* st=fd_inb(virtual_dma_port+4) & 0x80 ; */
145 st = *(sun3x_fdc.status_r);
146/* if(st != 0xa0) */
147/* break; */
148
149 if((st & 0x80) == 0) {
150 virtual_dma_count = lcount;
151 virtual_dma_addr = lptr;
152 return IRQ_HANDLED;
153 }
154
155 if((st & 0x20) == 0)
156 break;
157
158 if(virtual_dma_mode)
159/* fd_outb(*lptr, virtual_dma_port+5); */
160 *(sun3x_fdc.data_r) = *lptr;
161 else
162/* *lptr = fd_inb(virtual_dma_port+5); */
163 *lptr = *(sun3x_fdc.data_r);
164 }
165
166 virtual_dma_count = lcount;
167 virtual_dma_addr = lptr;
168/* st = fd_inb(virtual_dma_port+4); */
169 st = *(sun3x_fdc.status_r);
170 }
171
172#ifdef TRACE_FLPY_INT
173 calls++;
174#endif
175// printk("st=%02x\n", st);
176 if(st == 0x20)
177 return IRQ_HANDLED;
178 if(!(st & 0x20)) {
179 virtual_dma_residue += virtual_dma_count;
180 virtual_dma_count=0;
181 doing_pdma = 0;
182
183#ifdef TRACE_FLPY_INT
184 printk("count=%x, residue=%x calls=%d bytes=%x dma_wait=%d\n",
185 virtual_dma_count, virtual_dma_residue, calls, bytes,
186 dma_wait);
187 calls = 0;
188 dma_wait=0;
189#endif
190
191 floppy_interrupt(irq, dev_id);
192 return IRQ_HANDLED;
193 }
194
195
196#ifdef TRACE_FLPY_INT
197 if(!virtual_dma_count)
198 dma_wait++;
199#endif
200 return IRQ_HANDLED;
201}
202
203static int sun3xflop_request_irq(void)
204{
205 static int once = 0;
206 int error;
207
208 if(!once) {
209 once = 1;
210 error = request_irq(FLOPPY_IRQ, sun3xflop_hardint,
211 IRQF_DISABLED, "floppy", NULL);
212 return ((error == 0) ? 0 : -1);
213 } else return 0;
214}
215
216static void __init floppy_set_flags(int *ints,int param, int param2);
217
218static int sun3xflop_init(void)
219{
220 if(FLOPPY_IRQ < 0x40)
221 FLOPPY_IRQ = SUN3X_FDC_IRQ;
222
223 sun3x_fdc.status_r = (volatile unsigned char *)SUN3X_FDC;
224 sun3x_fdc.data_r = (volatile unsigned char *)(SUN3X_FDC+1);
225 sun3x_fdc.fcr_r = (volatile unsigned char *)SUN3X_FDC_FCR;
226 sun3x_fdc.fvr_r = (volatile unsigned char *)SUN3X_FDC_FVR;
227 sun3x_fdc.fcr = 0;
228
229 /* Last minute sanity check... */
230 if(*sun3x_fdc.status_r == 0xff) {
231 return -1;
232 }
233
234 *sun3x_fdc.fvr_r = FLOPPY_IRQ;
235
236 *sun3x_fdc.fcr_r = FCR_TC;
237 udelay(10);
238 *sun3x_fdc.fcr_r = 0;
239
240 /* Success... */
241 floppy_set_flags(NULL, 1, FD_BROKEN_DCL); // I don't know how to detect this.
242 allowed_drive_mask = 0x01;
243 return (int) SUN3X_FDC;
244}
245
246/* I'm not precisely sure this eject routine works */
247static int sun3x_eject(void)
248{
249 if(MACH_IS_SUN3X) {
250
251 sun3x_fdc.fcr |= (FCR_DSEL0 | FCR_EJECT);
252 *(sun3x_fdc.fcr_r) = sun3x_fdc.fcr;
253 udelay(10);
254 sun3x_fdc.fcr &= ~(FCR_DSEL0 | FCR_EJECT);
255 *(sun3x_fdc.fcr_r) = sun3x_fdc.fcr;
256 }
257
258 return 0;
259}
260
261#define fd_eject(drive) sun3x_eject()
262
263#endif /* !(__ASM_SUN3X_FLOPPY_H) */
diff --git a/arch/m68k/include/asm/sun3xprom.h b/arch/m68k/include/asm/sun3xprom.h
new file mode 100644
index 000000000000..6735efcf5f6d
--- /dev/null
+++ b/arch/m68k/include/asm/sun3xprom.h
@@ -0,0 +1,43 @@
1/* Useful PROM locations */
2
3#ifndef SUN3X_PROM_H
4#define SUN3X_PROM_H
5
6extern void (*sun3x_putchar)(int);
7extern int (*sun3x_getchar)(void);
8extern int (*sun3x_mayget)(void);
9extern int (*sun3x_mayput)(int);
10
11void sun3x_reboot(void);
12void sun3x_abort(void);
13void sun3x_prom_init(void);
14unsigned long sun3x_prom_ptov(unsigned long pa, unsigned long size);
15
16/* interesting hardware locations */
17#define SUN3X_IOMMU 0x60000000
18#define SUN3X_ENAREG 0x61000000
19#define SUN3X_INTREG 0x61001400
20#define SUN3X_DIAGREG 0x61001800
21#define SUN3X_ZS1 0x62000000
22#define SUN3X_ZS2 0x62002000
23#define SUN3X_LANCE 0x65002000
24#define SUN3X_EEPROM 0x64000000
25#define SUN3X_IDPROM 0x640007d8
26#define SUN3X_VIDEO_BASE 0x50400000
27#define SUN3X_VIDEO_REGS 0x50300000
28
29/* vector table */
30#define SUN3X_PROM_BASE 0xfefe0000
31#define SUN3X_P_GETCHAR (SUN3X_PROM_BASE + 20)
32#define SUN3X_P_PUTCHAR (SUN3X_PROM_BASE + 24)
33#define SUN3X_P_MAYGET (SUN3X_PROM_BASE + 28)
34#define SUN3X_P_MAYPUT (SUN3X_PROM_BASE + 32)
35#define SUN3X_P_REBOOT (SUN3X_PROM_BASE + 96)
36#define SUN3X_P_SETLEDS (SUN3X_PROM_BASE + 144)
37#define SUN3X_P_ABORT (SUN3X_PROM_BASE + 152)
38
39/* mapped area */
40#define SUN3X_MAP_START 0xfee00000
41#define SUN3X_MAP_END 0xff000000
42
43#endif
diff --git a/arch/m68k/include/asm/suspend.h b/arch/m68k/include/asm/suspend.h
new file mode 100644
index 000000000000..57b3ddb4d269
--- /dev/null
+++ b/arch/m68k/include/asm/suspend.h
@@ -0,0 +1,6 @@
1#ifndef _M68K_SUSPEND_H
2#define _M68K_SUSPEND_H
3
4/* Dummy include. */
5
6#endif /* _M68K_SUSPEND_H */
diff --git a/arch/m68k/include/asm/swab.h b/arch/m68k/include/asm/swab.h
new file mode 100644
index 000000000000..7d7dde1c73ec
--- /dev/null
+++ b/arch/m68k/include/asm/swab.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "swab_no.h"
3#else
4#include "swab_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/swab_mm.h b/arch/m68k/include/asm/swab_mm.h
new file mode 100644
index 000000000000..7221e3066825
--- /dev/null
+++ b/arch/m68k/include/asm/swab_mm.h
@@ -0,0 +1,16 @@
1#ifndef _M68K_SWAB_H
2#define _M68K_SWAB_H
3
4#include <asm/types.h>
5#include <linux/compiler.h>
6
7#define __SWAB_64_THRU_32__
8
9static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
10{
11 __asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val));
12 return val;
13}
14#define __arch_swab32 __arch_swab32
15
16#endif /* _M68K_SWAB_H */
diff --git a/arch/m68knommu/include/asm/swab.h b/arch/m68k/include/asm/swab_no.h
index e582257db300..e582257db300 100644
--- a/arch/m68knommu/include/asm/swab.h
+++ b/arch/m68k/include/asm/swab_no.h
diff --git a/arch/m68k/include/asm/system.h b/arch/m68k/include/asm/system.h
new file mode 100644
index 000000000000..ccea925ff4f5
--- /dev/null
+++ b/arch/m68k/include/asm/system.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "system_no.h"
3#else
4#include "system_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/system_mm.h b/arch/m68k/include/asm/system_mm.h
new file mode 100644
index 000000000000..dbb6515ffd5b
--- /dev/null
+++ b/arch/m68k/include/asm/system_mm.h
@@ -0,0 +1,218 @@
1#ifndef _M68K_SYSTEM_H
2#define _M68K_SYSTEM_H
3
4#include <linux/linkage.h>
5#include <linux/kernel.h>
6#include <asm/segment.h>
7#include <asm/entry.h>
8
9#ifdef __KERNEL__
10
11/*
12 * switch_to(n) should switch tasks to task ptr, first checking that
13 * ptr isn't the current task, in which case it does nothing. This
14 * also clears the TS-flag if the task we switched to has used the
15 * math co-processor latest.
16 */
17/*
18 * switch_to() saves the extra registers, that are not saved
19 * automatically by SAVE_SWITCH_STACK in resume(), ie. d0-d5 and
20 * a0-a1. Some of these are used by schedule() and its predecessors
21 * and so we might get see unexpected behaviors when a task returns
22 * with unexpected register values.
23 *
24 * syscall stores these registers itself and none of them are used
25 * by syscall after the function in the syscall has been called.
26 *
27 * Beware that resume now expects *next to be in d1 and the offset of
28 * tss to be in a1. This saves a few instructions as we no longer have
29 * to push them onto the stack and read them back right after.
30 *
31 * 02/17/96 - Jes Sorensen (jds@kom.auc.dk)
32 *
33 * Changed 96/09/19 by Andreas Schwab
34 * pass prev in a0, next in a1
35 */
36asmlinkage void resume(void);
37#define switch_to(prev,next,last) do { \
38 register void *_prev __asm__ ("a0") = (prev); \
39 register void *_next __asm__ ("a1") = (next); \
40 register void *_last __asm__ ("d1"); \
41 __asm__ __volatile__("jbsr resume" \
42 : "=a" (_prev), "=a" (_next), "=d" (_last) \
43 : "0" (_prev), "1" (_next) \
44 : "d0", "d2", "d3", "d4", "d5"); \
45 (last) = _last; \
46} while (0)
47
48
49/*
50 * Force strict CPU ordering.
51 * Not really required on m68k...
52 */
53#define nop() do { asm volatile ("nop"); barrier(); } while (0)
54#define mb() barrier()
55#define rmb() barrier()
56#define wmb() barrier()
57#define read_barrier_depends() ((void)0)
58#define set_mb(var, value) ({ (var) = (value); wmb(); })
59
60#define smp_mb() barrier()
61#define smp_rmb() barrier()
62#define smp_wmb() barrier()
63#define smp_read_barrier_depends() ((void)0)
64
65/* interrupt control.. */
66#if 0
67#define local_irq_enable() asm volatile ("andiw %0,%%sr": : "i" (ALLOWINT) : "memory")
68#else
69#include <linux/hardirq.h>
70#define local_irq_enable() ({ \
71 if (MACH_IS_Q40 || !hardirq_count()) \
72 asm volatile ("andiw %0,%%sr": : "i" (ALLOWINT) : "memory"); \
73})
74#endif
75#define local_irq_disable() asm volatile ("oriw #0x0700,%%sr": : : "memory")
76#define local_save_flags(x) asm volatile ("movew %%sr,%0":"=d" (x) : : "memory")
77#define local_irq_restore(x) asm volatile ("movew %0,%%sr": :"d" (x) : "memory")
78
79static inline int irqs_disabled(void)
80{
81 unsigned long flags;
82 local_save_flags(flags);
83 return flags & ~ALLOWINT;
84}
85
86/* For spinlocks etc */
87#define local_irq_save(x) ({ local_save_flags(x); local_irq_disable(); })
88
89#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
90
91struct __xchg_dummy { unsigned long a[100]; };
92#define __xg(x) ((volatile struct __xchg_dummy *)(x))
93
94#ifndef CONFIG_RMW_INSNS
95static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
96{
97 unsigned long flags, tmp;
98
99 local_irq_save(flags);
100
101 switch (size) {
102 case 1:
103 tmp = *(u8 *)ptr;
104 *(u8 *)ptr = x;
105 x = tmp;
106 break;
107 case 2:
108 tmp = *(u16 *)ptr;
109 *(u16 *)ptr = x;
110 x = tmp;
111 break;
112 case 4:
113 tmp = *(u32 *)ptr;
114 *(u32 *)ptr = x;
115 x = tmp;
116 break;
117 default:
118 BUG();
119 }
120
121 local_irq_restore(flags);
122 return x;
123}
124#else
125static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
126{
127 switch (size) {
128 case 1:
129 __asm__ __volatile__
130 ("moveb %2,%0\n\t"
131 "1:\n\t"
132 "casb %0,%1,%2\n\t"
133 "jne 1b"
134 : "=&d" (x) : "d" (x), "m" (*__xg(ptr)) : "memory");
135 break;
136 case 2:
137 __asm__ __volatile__
138 ("movew %2,%0\n\t"
139 "1:\n\t"
140 "casw %0,%1,%2\n\t"
141 "jne 1b"
142 : "=&d" (x) : "d" (x), "m" (*__xg(ptr)) : "memory");
143 break;
144 case 4:
145 __asm__ __volatile__
146 ("movel %2,%0\n\t"
147 "1:\n\t"
148 "casl %0,%1,%2\n\t"
149 "jne 1b"
150 : "=&d" (x) : "d" (x), "m" (*__xg(ptr)) : "memory");
151 break;
152 }
153 return x;
154}
155#endif
156
157#include <asm-generic/cmpxchg-local.h>
158
159#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
160
161/*
162 * Atomic compare and exchange. Compare OLD with MEM, if identical,
163 * store NEW in MEM. Return the initial value in MEM. Success is
164 * indicated by comparing RETURN with OLD.
165 */
166#ifdef CONFIG_RMW_INSNS
167#define __HAVE_ARCH_CMPXCHG 1
168
169static inline unsigned long __cmpxchg(volatile void *p, unsigned long old,
170 unsigned long new, int size)
171{
172 switch (size) {
173 case 1:
174 __asm__ __volatile__ ("casb %0,%2,%1"
175 : "=d" (old), "=m" (*(char *)p)
176 : "d" (new), "0" (old), "m" (*(char *)p));
177 break;
178 case 2:
179 __asm__ __volatile__ ("casw %0,%2,%1"
180 : "=d" (old), "=m" (*(short *)p)
181 : "d" (new), "0" (old), "m" (*(short *)p));
182 break;
183 case 4:
184 __asm__ __volatile__ ("casl %0,%2,%1"
185 : "=d" (old), "=m" (*(int *)p)
186 : "d" (new), "0" (old), "m" (*(int *)p));
187 break;
188 }
189 return old;
190}
191
192#define cmpxchg(ptr, o, n) \
193 ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \
194 (unsigned long)(n), sizeof(*(ptr))))
195#define cmpxchg_local(ptr, o, n) \
196 ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \
197 (unsigned long)(n), sizeof(*(ptr))))
198#else
199
200/*
201 * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
202 * them available.
203 */
204#define cmpxchg_local(ptr, o, n) \
205 ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
206 (unsigned long)(n), sizeof(*(ptr))))
207
208#ifndef CONFIG_SMP
209#include <asm-generic/cmpxchg.h>
210#endif
211
212#endif
213
214#define arch_align_stack(x) (x)
215
216#endif /* __KERNEL__ */
217
218#endif /* _M68K_SYSTEM_H */
diff --git a/arch/m68knommu/include/asm/system.h b/arch/m68k/include/asm/system_no.h
index 40f49de69821..4496c0aa8379 100644
--- a/arch/m68knommu/include/asm/system.h
+++ b/arch/m68k/include/asm/system_no.h
@@ -230,7 +230,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
230 jmp 0xf0000400; \ 230 jmp 0xf0000400; \
231 "); \ 231 "); \
232}) 232})
233#elif defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ 233#elif defined(CONFIG_NETtel) || \
234 defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA) 234 defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA)
235#define HARD_RESET_NOW() ({ \ 235#define HARD_RESET_NOW() ({ \
236 asm(" \ 236 asm(" \
diff --git a/arch/m68k/include/asm/termbits.h b/arch/m68k/include/asm/termbits.h
new file mode 100644
index 000000000000..8c14170996bb
--- /dev/null
+++ b/arch/m68k/include/asm/termbits.h
@@ -0,0 +1,200 @@
1#ifndef __ARCH_M68K_TERMBITS_H__
2#define __ARCH_M68K_TERMBITS_H__
3
4#include <linux/posix_types.h>
5
6typedef unsigned char cc_t;
7typedef unsigned int speed_t;
8typedef unsigned int tcflag_t;
9
10#define NCCS 19
11struct termios {
12 tcflag_t c_iflag; /* input mode flags */
13 tcflag_t c_oflag; /* output mode flags */
14 tcflag_t c_cflag; /* control mode flags */
15 tcflag_t c_lflag; /* local mode flags */
16 cc_t c_line; /* line discipline */
17 cc_t c_cc[NCCS]; /* control characters */
18};
19
20struct termios2 {
21 tcflag_t c_iflag; /* input mode flags */
22 tcflag_t c_oflag; /* output mode flags */
23 tcflag_t c_cflag; /* control mode flags */
24 tcflag_t c_lflag; /* local mode flags */
25 cc_t c_line; /* line discipline */
26 cc_t c_cc[NCCS]; /* control characters */
27 speed_t c_ispeed; /* input speed */
28 speed_t c_ospeed; /* output speed */
29};
30
31struct ktermios {
32 tcflag_t c_iflag; /* input mode flags */
33 tcflag_t c_oflag; /* output mode flags */
34 tcflag_t c_cflag; /* control mode flags */
35 tcflag_t c_lflag; /* local mode flags */
36 cc_t c_line; /* line discipline */
37 cc_t c_cc[NCCS]; /* control characters */
38 speed_t c_ispeed; /* input speed */
39 speed_t c_ospeed; /* output speed */
40};
41
42/* c_cc characters */
43#define VINTR 0
44#define VQUIT 1
45#define VERASE 2
46#define VKILL 3
47#define VEOF 4
48#define VTIME 5
49#define VMIN 6
50#define VSWTC 7
51#define VSTART 8
52#define VSTOP 9
53#define VSUSP 10
54#define VEOL 11
55#define VREPRINT 12
56#define VDISCARD 13
57#define VWERASE 14
58#define VLNEXT 15
59#define VEOL2 16
60
61
62/* c_iflag bits */
63#define IGNBRK 0000001
64#define BRKINT 0000002
65#define IGNPAR 0000004
66#define PARMRK 0000010
67#define INPCK 0000020
68#define ISTRIP 0000040
69#define INLCR 0000100
70#define IGNCR 0000200
71#define ICRNL 0000400
72#define IUCLC 0001000
73#define IXON 0002000
74#define IXANY 0004000
75#define IXOFF 0010000
76#define IMAXBEL 0020000
77#define IUTF8 0040000
78
79/* c_oflag bits */
80#define OPOST 0000001
81#define OLCUC 0000002
82#define ONLCR 0000004
83#define OCRNL 0000010
84#define ONOCR 0000020
85#define ONLRET 0000040
86#define OFILL 0000100
87#define OFDEL 0000200
88#define NLDLY 0000400
89#define NL0 0000000
90#define NL1 0000400
91#define CRDLY 0003000
92#define CR0 0000000
93#define CR1 0001000
94#define CR2 0002000
95#define CR3 0003000
96#define TABDLY 0014000
97#define TAB0 0000000
98#define TAB1 0004000
99#define TAB2 0010000
100#define TAB3 0014000
101#define XTABS 0014000
102#define BSDLY 0020000
103#define BS0 0000000
104#define BS1 0020000
105#define VTDLY 0040000
106#define VT0 0000000
107#define VT1 0040000
108#define FFDLY 0100000
109#define FF0 0000000
110#define FF1 0100000
111
112/* c_cflag bit meaning */
113#define CBAUD 0010017
114#define B0 0000000 /* hang up */
115#define B50 0000001
116#define B75 0000002
117#define B110 0000003
118#define B134 0000004
119#define B150 0000005
120#define B200 0000006
121#define B300 0000007
122#define B600 0000010
123#define B1200 0000011
124#define B1800 0000012
125#define B2400 0000013
126#define B4800 0000014
127#define B9600 0000015
128#define B19200 0000016
129#define B38400 0000017
130#define EXTA B19200
131#define EXTB B38400
132#define CSIZE 0000060
133#define CS5 0000000
134#define CS6 0000020
135#define CS7 0000040
136#define CS8 0000060
137#define CSTOPB 0000100
138#define CREAD 0000200
139#define PARENB 0000400
140#define PARODD 0001000
141#define HUPCL 0002000
142#define CLOCAL 0004000
143#define CBAUDEX 0010000
144#define BOTHER 0010000
145#define B57600 0010001
146#define B115200 0010002
147#define B230400 0010003
148#define B460800 0010004
149#define B500000 0010005
150#define B576000 0010006
151#define B921600 0010007
152#define B1000000 0010010
153#define B1152000 0010011
154#define B1500000 0010012
155#define B2000000 0010013
156#define B2500000 0010014
157#define B3000000 0010015
158#define B3500000 0010016
159#define B4000000 0010017
160#define CIBAUD 002003600000 /* input baud rate */
161#define CMSPAR 010000000000 /* mark or space (stick) parity */
162#define CRTSCTS 020000000000 /* flow control */
163
164#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */
165
166/* c_lflag bits */
167#define ISIG 0000001
168#define ICANON 0000002
169#define XCASE 0000004
170#define ECHO 0000010
171#define ECHOE 0000020
172#define ECHOK 0000040
173#define ECHONL 0000100
174#define NOFLSH 0000200
175#define TOSTOP 0000400
176#define ECHOCTL 0001000
177#define ECHOPRT 0002000
178#define ECHOKE 0004000
179#define FLUSHO 0010000
180#define PENDIN 0040000
181#define IEXTEN 0100000
182
183
184/* tcflow() and TCXONC use these */
185#define TCOOFF 0
186#define TCOON 1
187#define TCIOFF 2
188#define TCION 3
189
190/* tcflush() and TCFLSH use these */
191#define TCIFLUSH 0
192#define TCOFLUSH 1
193#define TCIOFLUSH 2
194
195/* tcsetattr uses these */
196#define TCSANOW 0
197#define TCSADRAIN 1
198#define TCSAFLUSH 2
199
200#endif /* __ARCH_M68K_TERMBITS_H__ */
diff --git a/arch/m68k/include/asm/termios.h b/arch/m68k/include/asm/termios.h
new file mode 100644
index 000000000000..0823032e4045
--- /dev/null
+++ b/arch/m68k/include/asm/termios.h
@@ -0,0 +1,92 @@
1#ifndef _M68K_TERMIOS_H
2#define _M68K_TERMIOS_H
3
4#include <asm/termbits.h>
5#include <asm/ioctls.h>
6
7struct winsize {
8 unsigned short ws_row;
9 unsigned short ws_col;
10 unsigned short ws_xpixel;
11 unsigned short ws_ypixel;
12};
13
14#define NCC 8
15struct termio {
16 unsigned short c_iflag; /* input mode flags */
17 unsigned short c_oflag; /* output mode flags */
18 unsigned short c_cflag; /* control mode flags */
19 unsigned short c_lflag; /* local mode flags */
20 unsigned char c_line; /* line discipline */
21 unsigned char c_cc[NCC]; /* control characters */
22};
23
24#ifdef __KERNEL__
25/* intr=^C quit=^| erase=del kill=^U
26 eof=^D vtime=\0 vmin=\1 sxtc=\0
27 start=^Q stop=^S susp=^Z eol=\0
28 reprint=^R discard=^U werase=^W lnext=^V
29 eol2=\0
30*/
31#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
32#endif
33
34/* modem lines */
35#define TIOCM_LE 0x001
36#define TIOCM_DTR 0x002
37#define TIOCM_RTS 0x004
38#define TIOCM_ST 0x008
39#define TIOCM_SR 0x010
40#define TIOCM_CTS 0x020
41#define TIOCM_CAR 0x040
42#define TIOCM_RNG 0x080
43#define TIOCM_DSR 0x100
44#define TIOCM_CD TIOCM_CAR
45#define TIOCM_RI TIOCM_RNG
46#define TIOCM_OUT1 0x2000
47#define TIOCM_OUT2 0x4000
48#define TIOCM_LOOP 0x8000
49
50/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
51
52#ifdef __KERNEL__
53
54/*
55 * Translate a "termio" structure into a "termios". Ugh.
56 */
57#define user_termio_to_kernel_termios(termios, termio) \
58({ \
59 unsigned short tmp; \
60 get_user(tmp, &(termio)->c_iflag); \
61 (termios)->c_iflag = (0xffff0000 & ((termios)->c_iflag)) | tmp; \
62 get_user(tmp, &(termio)->c_oflag); \
63 (termios)->c_oflag = (0xffff0000 & ((termios)->c_oflag)) | tmp; \
64 get_user(tmp, &(termio)->c_cflag); \
65 (termios)->c_cflag = (0xffff0000 & ((termios)->c_cflag)) | tmp; \
66 get_user(tmp, &(termio)->c_lflag); \
67 (termios)->c_lflag = (0xffff0000 & ((termios)->c_lflag)) | tmp; \
68 get_user((termios)->c_line, &(termio)->c_line); \
69 copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \
70})
71
72/*
73 * Translate a "termios" structure into a "termio". Ugh.
74 */
75#define kernel_termios_to_user_termio(termio, termios) \
76({ \
77 put_user((termios)->c_iflag, &(termio)->c_iflag); \
78 put_user((termios)->c_oflag, &(termio)->c_oflag); \
79 put_user((termios)->c_cflag, &(termio)->c_cflag); \
80 put_user((termios)->c_lflag, &(termio)->c_lflag); \
81 put_user((termios)->c_line, &(termio)->c_line); \
82 copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
83})
84
85#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2))
86#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2))
87#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
88#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
89
90#endif /* __KERNEL__ */
91
92#endif /* _M68K_TERMIOS_H */
diff --git a/arch/m68k/include/asm/thread_info.h b/arch/m68k/include/asm/thread_info.h
new file mode 100644
index 000000000000..f31a3f42b7b3
--- /dev/null
+++ b/arch/m68k/include/asm/thread_info.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "thread_info_no.h"
3#else
4#include "thread_info_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
new file mode 100644
index 000000000000..af0fda46e94b
--- /dev/null
+++ b/arch/m68k/include/asm/thread_info_mm.h
@@ -0,0 +1,57 @@
1#ifndef _ASM_M68K_THREAD_INFO_H
2#define _ASM_M68K_THREAD_INFO_H
3
4#include <asm/types.h>
5#include <asm/page.h>
6
7struct thread_info {
8 struct task_struct *task; /* main task structure */
9 unsigned long flags;
10 struct exec_domain *exec_domain; /* execution domain */
11 int preempt_count; /* 0 => preemptable, <0 => BUG */
12 __u32 cpu; /* should always be 0 on m68k */
13 struct restart_block restart_block;
14};
15
16#define PREEMPT_ACTIVE 0x4000000
17
18#define INIT_THREAD_INFO(tsk) \
19{ \
20 .task = &tsk, \
21 .exec_domain = &default_exec_domain, \
22 .restart_block = { \
23 .fn = do_no_restart_syscall, \
24 }, \
25}
26
27/* THREAD_SIZE should be 8k, so handle differently for 4k and 8k machines */
28#define THREAD_SIZE_ORDER (13 - PAGE_SHIFT)
29
30#define init_thread_info (init_task.thread.info)
31#define init_stack (init_thread_union.stack)
32
33#define task_thread_info(tsk) (&(tsk)->thread.info)
34#define task_stack_page(tsk) ((tsk)->stack)
35#define current_thread_info() task_thread_info(current)
36
37#define __HAVE_THREAD_FUNCTIONS
38
39#define setup_thread_stack(p, org) ({ \
40 *(struct task_struct **)(p)->stack = (p); \
41 task_thread_info(p)->task = (p); \
42})
43
44#define end_of_stack(p) ((unsigned long *)(p)->stack + 1)
45
46/* entry.S relies on these definitions!
47 * bits 0-7 are tested at every exception exit
48 * bits 8-15 are also tested at syscall exit
49 */
50#define TIF_SIGPENDING 6 /* signal pending */
51#define TIF_NEED_RESCHED 7 /* rescheduling necessary */
52#define TIF_DELAYED_TRACE 14 /* single step a syscall */
53#define TIF_SYSCALL_TRACE 15 /* syscall trace active */
54#define TIF_MEMDIE 16
55#define TIF_FREEZE 17 /* thread is freezing for suspend */
56
57#endif /* _ASM_M68K_THREAD_INFO_H */
diff --git a/arch/m68knommu/include/asm/thread_info.h b/arch/m68k/include/asm/thread_info_no.h
index 82529f424ea3..82529f424ea3 100644
--- a/arch/m68knommu/include/asm/thread_info.h
+++ b/arch/m68k/include/asm/thread_info_no.h
diff --git a/arch/m68k/include/asm/timex.h b/arch/m68k/include/asm/timex.h
new file mode 100644
index 000000000000..719762980578
--- /dev/null
+++ b/arch/m68k/include/asm/timex.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "timex_no.h"
3#else
4#include "timex_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/timex_mm.h b/arch/m68k/include/asm/timex_mm.h
new file mode 100644
index 000000000000..b87f2f278f67
--- /dev/null
+++ b/arch/m68k/include/asm/timex_mm.h
@@ -0,0 +1,18 @@
1/*
2 * linux/include/asm-m68k/timex.h
3 *
4 * m68k architecture timex specifications
5 */
6#ifndef _ASMm68k_TIMEX_H
7#define _ASMm68k_TIMEX_H
8
9#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
10
11typedef unsigned long cycles_t;
12
13static inline cycles_t get_cycles(void)
14{
15 return 0;
16}
17
18#endif
diff --git a/arch/m68knommu/include/asm/timex.h b/arch/m68k/include/asm/timex_no.h
index 109050f3fe91..109050f3fe91 100644
--- a/arch/m68knommu/include/asm/timex.h
+++ b/arch/m68k/include/asm/timex_no.h
diff --git a/arch/m68k/include/asm/tlb.h b/arch/m68k/include/asm/tlb.h
new file mode 100644
index 000000000000..1785cff73449
--- /dev/null
+++ b/arch/m68k/include/asm/tlb.h
@@ -0,0 +1,20 @@
1#ifndef _M68K_TLB_H
2#define _M68K_TLB_H
3
4/*
5 * m68k doesn't need any special per-pte or
6 * per-vma handling..
7 */
8#define tlb_start_vma(tlb, vma) do { } while (0)
9#define tlb_end_vma(tlb, vma) do { } while (0)
10#define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
11
12/*
13 * .. because we flush the whole mm when it
14 * fills up.
15 */
16#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
17
18#include <asm-generic/tlb.h>
19
20#endif /* _M68K_TLB_H */
diff --git a/arch/m68k/include/asm/tlbflush.h b/arch/m68k/include/asm/tlbflush.h
new file mode 100644
index 000000000000..b6f93b30951e
--- /dev/null
+++ b/arch/m68k/include/asm/tlbflush.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "tlbflush_no.h"
3#else
4#include "tlbflush_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/tlbflush_mm.h b/arch/m68k/include/asm/tlbflush_mm.h
new file mode 100644
index 000000000000..acb6bf21a321
--- /dev/null
+++ b/arch/m68k/include/asm/tlbflush_mm.h
@@ -0,0 +1,219 @@
1#ifndef _M68K_TLBFLUSH_H
2#define _M68K_TLBFLUSH_H
3
4
5#ifndef CONFIG_SUN3
6
7#include <asm/current.h>
8
9static inline void flush_tlb_kernel_page(void *addr)
10{
11 if (CPU_IS_040_OR_060) {
12 mm_segment_t old_fs = get_fs();
13 set_fs(KERNEL_DS);
14 __asm__ __volatile__(".chip 68040\n\t"
15 "pflush (%0)\n\t"
16 ".chip 68k"
17 : : "a" (addr));
18 set_fs(old_fs);
19 } else if (CPU_IS_020_OR_030)
20 __asm__ __volatile__("pflush #4,#4,(%0)" : : "a" (addr));
21}
22
23/*
24 * flush all user-space atc entries.
25 */
26static inline void __flush_tlb(void)
27{
28 if (CPU_IS_040_OR_060)
29 __asm__ __volatile__(".chip 68040\n\t"
30 "pflushan\n\t"
31 ".chip 68k");
32 else if (CPU_IS_020_OR_030)
33 __asm__ __volatile__("pflush #0,#4");
34}
35
36static inline void __flush_tlb040_one(unsigned long addr)
37{
38 __asm__ __volatile__(".chip 68040\n\t"
39 "pflush (%0)\n\t"
40 ".chip 68k"
41 : : "a" (addr));
42}
43
44static inline void __flush_tlb_one(unsigned long addr)
45{
46 if (CPU_IS_040_OR_060)
47 __flush_tlb040_one(addr);
48 else if (CPU_IS_020_OR_030)
49 __asm__ __volatile__("pflush #0,#4,(%0)" : : "a" (addr));
50}
51
52#define flush_tlb() __flush_tlb()
53
54/*
55 * flush all atc entries (both kernel and user-space entries).
56 */
57static inline void flush_tlb_all(void)
58{
59 if (CPU_IS_040_OR_060)
60 __asm__ __volatile__(".chip 68040\n\t"
61 "pflusha\n\t"
62 ".chip 68k");
63 else if (CPU_IS_020_OR_030)
64 __asm__ __volatile__("pflusha");
65}
66
67static inline void flush_tlb_mm(struct mm_struct *mm)
68{
69 if (mm == current->active_mm)
70 __flush_tlb();
71}
72
73static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)
74{
75 if (vma->vm_mm == current->active_mm) {
76 mm_segment_t old_fs = get_fs();
77 set_fs(USER_DS);
78 __flush_tlb_one(addr);
79 set_fs(old_fs);
80 }
81}
82
83static inline void flush_tlb_range(struct vm_area_struct *vma,
84 unsigned long start, unsigned long end)
85{
86 if (vma->vm_mm == current->active_mm)
87 __flush_tlb();
88}
89
90static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end)
91{
92 flush_tlb_all();
93}
94
95#else
96
97
98/* Reserved PMEGs. */
99extern char sun3_reserved_pmeg[SUN3_PMEGS_NUM];
100extern unsigned long pmeg_vaddr[SUN3_PMEGS_NUM];
101extern unsigned char pmeg_alloc[SUN3_PMEGS_NUM];
102extern unsigned char pmeg_ctx[SUN3_PMEGS_NUM];
103
104/* Flush all userspace mappings one by one... (why no flush command,
105 sun?) */
106static inline void flush_tlb_all(void)
107{
108 unsigned long addr;
109 unsigned char ctx, oldctx;
110
111 oldctx = sun3_get_context();
112 for(addr = 0x00000000; addr < TASK_SIZE; addr += SUN3_PMEG_SIZE) {
113 for(ctx = 0; ctx < 8; ctx++) {
114 sun3_put_context(ctx);
115 sun3_put_segmap(addr, SUN3_INVALID_PMEG);
116 }
117 }
118
119 sun3_put_context(oldctx);
120 /* erase all of the userspace pmeg maps, we've clobbered them
121 all anyway */
122 for(addr = 0; addr < SUN3_INVALID_PMEG; addr++) {
123 if(pmeg_alloc[addr] == 1) {
124 pmeg_alloc[addr] = 0;
125 pmeg_ctx[addr] = 0;
126 pmeg_vaddr[addr] = 0;
127 }
128 }
129
130}
131
132/* Clear user TLB entries within the context named in mm */
133static inline void flush_tlb_mm (struct mm_struct *mm)
134{
135 unsigned char oldctx;
136 unsigned char seg;
137 unsigned long i;
138
139 oldctx = sun3_get_context();
140 sun3_put_context(mm->context);
141
142 for(i = 0; i < TASK_SIZE; i += SUN3_PMEG_SIZE) {
143 seg = sun3_get_segmap(i);
144 if(seg == SUN3_INVALID_PMEG)
145 continue;
146
147 sun3_put_segmap(i, SUN3_INVALID_PMEG);
148 pmeg_alloc[seg] = 0;
149 pmeg_ctx[seg] = 0;
150 pmeg_vaddr[seg] = 0;
151 }
152
153 sun3_put_context(oldctx);
154
155}
156
157/* Flush a single TLB page. In this case, we're limited to flushing a
158 single PMEG */
159static inline void flush_tlb_page (struct vm_area_struct *vma,
160 unsigned long addr)
161{
162 unsigned char oldctx;
163 unsigned char i;
164
165 oldctx = sun3_get_context();
166 sun3_put_context(vma->vm_mm->context);
167 addr &= ~SUN3_PMEG_MASK;
168 if((i = sun3_get_segmap(addr)) != SUN3_INVALID_PMEG)
169 {
170 pmeg_alloc[i] = 0;
171 pmeg_ctx[i] = 0;
172 pmeg_vaddr[i] = 0;
173 sun3_put_segmap (addr, SUN3_INVALID_PMEG);
174 }
175 sun3_put_context(oldctx);
176
177}
178/* Flush a range of pages from TLB. */
179
180static inline void flush_tlb_range (struct vm_area_struct *vma,
181 unsigned long start, unsigned long end)
182{
183 struct mm_struct *mm = vma->vm_mm;
184 unsigned char seg, oldctx;
185
186 start &= ~SUN3_PMEG_MASK;
187
188 oldctx = sun3_get_context();
189 sun3_put_context(mm->context);
190
191 while(start < end)
192 {
193 if((seg = sun3_get_segmap(start)) == SUN3_INVALID_PMEG)
194 goto next;
195 if(pmeg_ctx[seg] == mm->context) {
196 pmeg_alloc[seg] = 0;
197 pmeg_ctx[seg] = 0;
198 pmeg_vaddr[seg] = 0;
199 }
200 sun3_put_segmap(start, SUN3_INVALID_PMEG);
201 next:
202 start += SUN3_PMEG_SIZE;
203 }
204}
205
206static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end)
207{
208 flush_tlb_all();
209}
210
211/* Flush kernel page from TLB. */
212static inline void flush_tlb_kernel_page (unsigned long addr)
213{
214 sun3_put_segmap (addr & ~(SUN3_PMEG_SIZE - 1), SUN3_INVALID_PMEG);
215}
216
217#endif
218
219#endif /* _M68K_TLBFLUSH_H */
diff --git a/arch/m68knommu/include/asm/tlbflush.h b/arch/m68k/include/asm/tlbflush_no.h
index a470cfb803eb..a470cfb803eb 100644
--- a/arch/m68knommu/include/asm/tlbflush.h
+++ b/arch/m68k/include/asm/tlbflush_no.h
diff --git a/arch/m68knommu/include/asm/topology.h b/arch/m68k/include/asm/topology.h
index ca173e9f26ff..ca173e9f26ff 100644
--- a/arch/m68knommu/include/asm/topology.h
+++ b/arch/m68k/include/asm/topology.h
diff --git a/arch/m68k/include/asm/traps.h b/arch/m68k/include/asm/traps.h
new file mode 100644
index 000000000000..3011ec0f5365
--- /dev/null
+++ b/arch/m68k/include/asm/traps.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "traps_no.h"
3#else
4#include "traps_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/traps_mm.h b/arch/m68k/include/asm/traps_mm.h
new file mode 100644
index 000000000000..8caef25624c7
--- /dev/null
+++ b/arch/m68k/include/asm/traps_mm.h
@@ -0,0 +1,272 @@
1/*
2 * linux/include/asm/traps.h
3 *
4 * Copyright (C) 1993 Hamish Macdonald
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive
8 * for more details.
9 */
10
11#ifndef _M68K_TRAPS_H
12#define _M68K_TRAPS_H
13
14#ifndef __ASSEMBLY__
15
16#include <linux/linkage.h>
17#include <asm/ptrace.h>
18
19typedef void (*e_vector)(void);
20
21asmlinkage void auto_inthandler(void);
22asmlinkage void user_inthandler(void);
23asmlinkage void bad_inthandler(void);
24
25extern e_vector vectors[];
26
27#endif
28
29#define VEC_RESETSP (0)
30#define VEC_RESETPC (1)
31#define VEC_BUSERR (2)
32#define VEC_ADDRERR (3)
33#define VEC_ILLEGAL (4)
34#define VEC_ZERODIV (5)
35#define VEC_CHK (6)
36#define VEC_TRAP (7)
37#define VEC_PRIV (8)
38#define VEC_TRACE (9)
39#define VEC_LINE10 (10)
40#define VEC_LINE11 (11)
41#define VEC_RESV12 (12)
42#define VEC_COPROC (13)
43#define VEC_FORMAT (14)
44#define VEC_UNINT (15)
45#define VEC_RESV16 (16)
46#define VEC_RESV17 (17)
47#define VEC_RESV18 (18)
48#define VEC_RESV19 (19)
49#define VEC_RESV20 (20)
50#define VEC_RESV21 (21)
51#define VEC_RESV22 (22)
52#define VEC_RESV23 (23)
53#define VEC_SPUR (24)
54#define VEC_INT1 (25)
55#define VEC_INT2 (26)
56#define VEC_INT3 (27)
57#define VEC_INT4 (28)
58#define VEC_INT5 (29)
59#define VEC_INT6 (30)
60#define VEC_INT7 (31)
61#define VEC_SYS (32)
62#define VEC_TRAP1 (33)
63#define VEC_TRAP2 (34)
64#define VEC_TRAP3 (35)
65#define VEC_TRAP4 (36)
66#define VEC_TRAP5 (37)
67#define VEC_TRAP6 (38)
68#define VEC_TRAP7 (39)
69#define VEC_TRAP8 (40)
70#define VEC_TRAP9 (41)
71#define VEC_TRAP10 (42)
72#define VEC_TRAP11 (43)
73#define VEC_TRAP12 (44)
74#define VEC_TRAP13 (45)
75#define VEC_TRAP14 (46)
76#define VEC_TRAP15 (47)
77#define VEC_FPBRUC (48)
78#define VEC_FPIR (49)
79#define VEC_FPDIVZ (50)
80#define VEC_FPUNDER (51)
81#define VEC_FPOE (52)
82#define VEC_FPOVER (53)
83#define VEC_FPNAN (54)
84#define VEC_FPUNSUP (55)
85#define VEC_MMUCFG (56)
86#define VEC_MMUILL (57)
87#define VEC_MMUACC (58)
88#define VEC_RESV59 (59)
89#define VEC_UNIMPEA (60)
90#define VEC_UNIMPII (61)
91#define VEC_RESV62 (62)
92#define VEC_RESV63 (63)
93#define VEC_USER (64)
94
95#define VECOFF(vec) ((vec)<<2)
96
97#ifndef __ASSEMBLY__
98
99/* Status register bits */
100#define PS_T (0x8000)
101#define PS_S (0x2000)
102#define PS_M (0x1000)
103#define PS_C (0x0001)
104
105/* bits for 68020/68030 special status word */
106
107#define FC (0x8000)
108#define FB (0x4000)
109#define RC (0x2000)
110#define RB (0x1000)
111#define DF (0x0100)
112#define RM (0x0080)
113#define RW (0x0040)
114#define SZ (0x0030)
115#define DFC (0x0007)
116
117/* bits for 68030 MMU status register (mmusr,psr) */
118
119#define MMU_B (0x8000) /* bus error */
120#define MMU_L (0x4000) /* limit violation */
121#define MMU_S (0x2000) /* supervisor violation */
122#define MMU_WP (0x0800) /* write-protected */
123#define MMU_I (0x0400) /* invalid descriptor */
124#define MMU_M (0x0200) /* ATC entry modified */
125#define MMU_T (0x0040) /* transparent translation */
126#define MMU_NUM (0x0007) /* number of levels traversed */
127
128
129/* bits for 68040 special status word */
130#define CP_040 (0x8000)
131#define CU_040 (0x4000)
132#define CT_040 (0x2000)
133#define CM_040 (0x1000)
134#define MA_040 (0x0800)
135#define ATC_040 (0x0400)
136#define LK_040 (0x0200)
137#define RW_040 (0x0100)
138#define SIZ_040 (0x0060)
139#define TT_040 (0x0018)
140#define TM_040 (0x0007)
141
142/* bits for 68040 write back status word */
143#define WBV_040 (0x80)
144#define WBSIZ_040 (0x60)
145#define WBBYT_040 (0x20)
146#define WBWRD_040 (0x40)
147#define WBLNG_040 (0x00)
148#define WBTT_040 (0x18)
149#define WBTM_040 (0x07)
150
151/* bus access size codes */
152#define BA_SIZE_BYTE (0x20)
153#define BA_SIZE_WORD (0x40)
154#define BA_SIZE_LONG (0x00)
155#define BA_SIZE_LINE (0x60)
156
157/* bus access transfer type codes */
158#define BA_TT_MOVE16 (0x08)
159
160/* bits for 68040 MMU status register (mmusr) */
161#define MMU_B_040 (0x0800)
162#define MMU_G_040 (0x0400)
163#define MMU_S_040 (0x0080)
164#define MMU_CM_040 (0x0060)
165#define MMU_M_040 (0x0010)
166#define MMU_WP_040 (0x0004)
167#define MMU_T_040 (0x0002)
168#define MMU_R_040 (0x0001)
169
170/* bits in the 68060 fault status long word (FSLW) */
171#define MMU060_MA (0x08000000) /* misaligned */
172#define MMU060_LK (0x02000000) /* locked transfer */
173#define MMU060_RW (0x01800000) /* read/write */
174# define MMU060_RW_W (0x00800000) /* write */
175# define MMU060_RW_R (0x01000000) /* read */
176# define MMU060_RW_RMW (0x01800000) /* read/modify/write */
177# define MMU060_W (0x00800000) /* general write, includes rmw */
178#define MMU060_SIZ (0x00600000) /* transfer size */
179#define MMU060_TT (0x00180000) /* transfer type (TT) bits */
180#define MMU060_TM (0x00070000) /* transfer modifier (TM) bits */
181#define MMU060_IO (0x00008000) /* instruction or operand */
182#define MMU060_PBE (0x00004000) /* push buffer bus error */
183#define MMU060_SBE (0x00002000) /* store buffer bus error */
184#define MMU060_PTA (0x00001000) /* pointer A fault */
185#define MMU060_PTB (0x00000800) /* pointer B fault */
186#define MMU060_IL (0x00000400) /* double indirect descr fault */
187#define MMU060_PF (0x00000200) /* page fault (invalid descr) */
188#define MMU060_SP (0x00000100) /* supervisor protection */
189#define MMU060_WP (0x00000080) /* write protection */
190#define MMU060_TWE (0x00000040) /* bus error on table search */
191#define MMU060_RE (0x00000020) /* bus error on read */
192#define MMU060_WE (0x00000010) /* bus error on write */
193#define MMU060_TTR (0x00000008) /* error caused by TTR translation */
194#define MMU060_BPE (0x00000004) /* branch prediction error */
195#define MMU060_SEE (0x00000001) /* software emulated error */
196
197/* cases of missing or invalid descriptors */
198#define MMU060_DESC_ERR (MMU060_PTA | MMU060_PTB | \
199 MMU060_IL | MMU060_PF)
200/* bits that indicate real errors */
201#define MMU060_ERR_BITS (MMU060_PBE | MMU060_SBE | MMU060_DESC_ERR | MMU060_SP | \
202 MMU060_WP | MMU060_TWE | MMU060_RE | MMU060_WE)
203
204/* structure for stack frames */
205
206struct frame {
207 struct pt_regs ptregs;
208 union {
209 struct {
210 unsigned long iaddr; /* instruction address */
211 } fmt2;
212 struct {
213 unsigned long effaddr; /* effective address */
214 } fmt3;
215 struct {
216 unsigned long effaddr; /* effective address */
217 unsigned long pc; /* pc of faulted instr */
218 } fmt4;
219 struct {
220 unsigned long effaddr; /* effective address */
221 unsigned short ssw; /* special status word */
222 unsigned short wb3s; /* write back 3 status */
223 unsigned short wb2s; /* write back 2 status */
224 unsigned short wb1s; /* write back 1 status */
225 unsigned long faddr; /* fault address */
226 unsigned long wb3a; /* write back 3 address */
227 unsigned long wb3d; /* write back 3 data */
228 unsigned long wb2a; /* write back 2 address */
229 unsigned long wb2d; /* write back 2 data */
230 unsigned long wb1a; /* write back 1 address */
231 unsigned long wb1dpd0; /* write back 1 data/push data 0*/
232 unsigned long pd1; /* push data 1*/
233 unsigned long pd2; /* push data 2*/
234 unsigned long pd3; /* push data 3*/
235 } fmt7;
236 struct {
237 unsigned long iaddr; /* instruction address */
238 unsigned short int1[4]; /* internal registers */
239 } fmt9;
240 struct {
241 unsigned short int1;
242 unsigned short ssw; /* special status word */
243 unsigned short isc; /* instruction stage c */
244 unsigned short isb; /* instruction stage b */
245 unsigned long daddr; /* data cycle fault address */
246 unsigned short int2[2];
247 unsigned long dobuf; /* data cycle output buffer */
248 unsigned short int3[2];
249 } fmta;
250 struct {
251 unsigned short int1;
252 unsigned short ssw; /* special status word */
253 unsigned short isc; /* instruction stage c */
254 unsigned short isb; /* instruction stage b */
255 unsigned long daddr; /* data cycle fault address */
256 unsigned short int2[2];
257 unsigned long dobuf; /* data cycle output buffer */
258 unsigned short int3[4];
259 unsigned long baddr; /* stage B address */
260 unsigned short int4[2];
261 unsigned long dibuf; /* data cycle input buffer */
262 unsigned short int5[3];
263 unsigned ver : 4; /* stack frame version # */
264 unsigned int6:12;
265 unsigned short int7[18];
266 } fmtb;
267 } un;
268};
269
270#endif /* __ASSEMBLY__ */
271
272#endif /* _M68K_TRAPS_H */
diff --git a/arch/m68knommu/include/asm/traps.h b/arch/m68k/include/asm/traps_no.h
index d0671e5f8e29..d0671e5f8e29 100644
--- a/arch/m68knommu/include/asm/traps.h
+++ b/arch/m68k/include/asm/traps_no.h
diff --git a/arch/m68k/include/asm/types.h b/arch/m68k/include/asm/types.h
new file mode 100644
index 000000000000..6441cb5f8e7c
--- /dev/null
+++ b/arch/m68k/include/asm/types.h
@@ -0,0 +1,37 @@
1#ifndef _M68K_TYPES_H
2#define _M68K_TYPES_H
3
4/*
5 * This file is never included by application software unless
6 * explicitly requested (e.g., via linux/types.h) in which case the
7 * application is Linux specific so (user-) name space pollution is
8 * not a major issue. However, for interoperability, libraries still
9 * need to be careful to avoid a name clashes.
10 */
11#include <asm-generic/int-ll64.h>
12
13#ifndef __ASSEMBLY__
14
15typedef unsigned short umode_t;
16
17#endif /* __ASSEMBLY__ */
18
19/*
20 * These aren't exported outside the kernel to avoid name space clashes
21 */
22#ifdef __KERNEL__
23
24#define BITS_PER_LONG 32
25
26#ifndef __ASSEMBLY__
27
28/* DMA addresses are always 32-bits wide */
29
30typedef u32 dma_addr_t;
31typedef u32 dma64_addr_t;
32
33#endif /* __ASSEMBLY__ */
34
35#endif /* __KERNEL__ */
36
37#endif /* _M68K_TYPES_H */
diff --git a/arch/m68k/include/asm/uaccess.h b/arch/m68k/include/asm/uaccess.h
new file mode 100644
index 000000000000..38f92dbb9a45
--- /dev/null
+++ b/arch/m68k/include/asm/uaccess.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "uaccess_no.h"
3#else
4#include "uaccess_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/uaccess_mm.h b/arch/m68k/include/asm/uaccess_mm.h
new file mode 100644
index 000000000000..7107f3fbdbb6
--- /dev/null
+++ b/arch/m68k/include/asm/uaccess_mm.h
@@ -0,0 +1,374 @@
1#ifndef __M68K_UACCESS_H
2#define __M68K_UACCESS_H
3
4/*
5 * User space memory access functions
6 */
7#include <linux/compiler.h>
8#include <linux/errno.h>
9#include <linux/types.h>
10#include <linux/sched.h>
11#include <asm/segment.h>
12
13#define VERIFY_READ 0
14#define VERIFY_WRITE 1
15
16/* We let the MMU do all checking */
17static inline int access_ok(int type, const void __user *addr,
18 unsigned long size)
19{
20 return 1;
21}
22
23/*
24 * The exception table consists of pairs of addresses: the first is the
25 * address of an instruction that is allowed to fault, and the second is
26 * the address at which the program should continue. No registers are
27 * modified, so it is entirely up to the continuation code to figure out
28 * what to do.
29 *
30 * All the routines below use bits of fixup code that are out of line
31 * with the main instruction path. This means when everything is well,
32 * we don't even have to jump over them. Further, they do not intrude
33 * on our cache or tlb entries.
34 */
35
36struct exception_table_entry
37{
38 unsigned long insn, fixup;
39};
40
41extern int __put_user_bad(void);
42extern int __get_user_bad(void);
43
44#define __put_user_asm(res, x, ptr, bwl, reg, err) \
45asm volatile ("\n" \
46 "1: moves."#bwl" %2,%1\n" \
47 "2:\n" \
48 " .section .fixup,\"ax\"\n" \
49 " .even\n" \
50 "10: moveq.l %3,%0\n" \
51 " jra 2b\n" \
52 " .previous\n" \
53 "\n" \
54 " .section __ex_table,\"a\"\n" \
55 " .align 4\n" \
56 " .long 1b,10b\n" \
57 " .long 2b,10b\n" \
58 " .previous" \
59 : "+d" (res), "=m" (*(ptr)) \
60 : #reg (x), "i" (err))
61
62/*
63 * These are the main single-value transfer routines. They automatically
64 * use the right size if we just have the right pointer type.
65 */
66
67#define __put_user(x, ptr) \
68({ \
69 typeof(*(ptr)) __pu_val = (x); \
70 int __pu_err = 0; \
71 __chk_user_ptr(ptr); \
72 switch (sizeof (*(ptr))) { \
73 case 1: \
74 __put_user_asm(__pu_err, __pu_val, ptr, b, d, -EFAULT); \
75 break; \
76 case 2: \
77 __put_user_asm(__pu_err, __pu_val, ptr, w, d, -EFAULT); \
78 break; \
79 case 4: \
80 __put_user_asm(__pu_err, __pu_val, ptr, l, r, -EFAULT); \
81 break; \
82 case 8: \
83 { \
84 const void __user *__pu_ptr = (ptr); \
85 asm volatile ("\n" \
86 "1: moves.l %2,(%1)+\n" \
87 "2: moves.l %R2,(%1)\n" \
88 "3:\n" \
89 " .section .fixup,\"ax\"\n" \
90 " .even\n" \
91 "10: movel %3,%0\n" \
92 " jra 3b\n" \
93 " .previous\n" \
94 "\n" \
95 " .section __ex_table,\"a\"\n" \
96 " .align 4\n" \
97 " .long 1b,10b\n" \
98 " .long 2b,10b\n" \
99 " .long 3b,10b\n" \
100 " .previous" \
101 : "+d" (__pu_err), "+a" (__pu_ptr) \
102 : "r" (__pu_val), "i" (-EFAULT) \
103 : "memory"); \
104 break; \
105 } \
106 default: \
107 __pu_err = __put_user_bad(); \
108 break; \
109 } \
110 __pu_err; \
111})
112#define put_user(x, ptr) __put_user(x, ptr)
113
114
115#define __get_user_asm(res, x, ptr, type, bwl, reg, err) ({ \
116 type __gu_val; \
117 asm volatile ("\n" \
118 "1: moves."#bwl" %2,%1\n" \
119 "2:\n" \
120 " .section .fixup,\"ax\"\n" \
121 " .even\n" \
122 "10: move.l %3,%0\n" \
123 " sub."#bwl" %1,%1\n" \
124 " jra 2b\n" \
125 " .previous\n" \
126 "\n" \
127 " .section __ex_table,\"a\"\n" \
128 " .align 4\n" \
129 " .long 1b,10b\n" \
130 " .previous" \
131 : "+d" (res), "=&" #reg (__gu_val) \
132 : "m" (*(ptr)), "i" (err)); \
133 (x) = (typeof(*(ptr)))(unsigned long)__gu_val; \
134})
135
136#define __get_user(x, ptr) \
137({ \
138 int __gu_err = 0; \
139 __chk_user_ptr(ptr); \
140 switch (sizeof(*(ptr))) { \
141 case 1: \
142 __get_user_asm(__gu_err, x, ptr, u8, b, d, -EFAULT); \
143 break; \
144 case 2: \
145 __get_user_asm(__gu_err, x, ptr, u16, w, d, -EFAULT); \
146 break; \
147 case 4: \
148 __get_user_asm(__gu_err, x, ptr, u32, l, r, -EFAULT); \
149 break; \
150/* case 8: disabled because gcc-4.1 has a broken typeof \
151 { \
152 const void *__gu_ptr = (ptr); \
153 u64 __gu_val; \
154 asm volatile ("\n" \
155 "1: moves.l (%2)+,%1\n" \
156 "2: moves.l (%2),%R1\n" \
157 "3:\n" \
158 " .section .fixup,\"ax\"\n" \
159 " .even\n" \
160 "10: move.l %3,%0\n" \
161 " sub.l %1,%1\n" \
162 " sub.l %R1,%R1\n" \
163 " jra 3b\n" \
164 " .previous\n" \
165 "\n" \
166 " .section __ex_table,\"a\"\n" \
167 " .align 4\n" \
168 " .long 1b,10b\n" \
169 " .long 2b,10b\n" \
170 " .previous" \
171 : "+d" (__gu_err), "=&r" (__gu_val), \
172 "+a" (__gu_ptr) \
173 : "i" (-EFAULT) \
174 : "memory"); \
175 (x) = (typeof(*(ptr)))__gu_val; \
176 break; \
177 } */ \
178 default: \
179 __gu_err = __get_user_bad(); \
180 break; \
181 } \
182 __gu_err; \
183})
184#define get_user(x, ptr) __get_user(x, ptr)
185
186unsigned long __generic_copy_from_user(void *to, const void __user *from, unsigned long n);
187unsigned long __generic_copy_to_user(void __user *to, const void *from, unsigned long n);
188
189#define __constant_copy_from_user_asm(res, to, from, tmp, n, s1, s2, s3)\
190 asm volatile ("\n" \
191 "1: moves."#s1" (%2)+,%3\n" \
192 " move."#s1" %3,(%1)+\n" \
193 "2: moves."#s2" (%2)+,%3\n" \
194 " move."#s2" %3,(%1)+\n" \
195 " .ifnc \""#s3"\",\"\"\n" \
196 "3: moves."#s3" (%2)+,%3\n" \
197 " move."#s3" %3,(%1)+\n" \
198 " .endif\n" \
199 "4:\n" \
200 " .section __ex_table,\"a\"\n" \
201 " .align 4\n" \
202 " .long 1b,10f\n" \
203 " .long 2b,20f\n" \
204 " .ifnc \""#s3"\",\"\"\n" \
205 " .long 3b,30f\n" \
206 " .endif\n" \
207 " .previous\n" \
208 "\n" \
209 " .section .fixup,\"ax\"\n" \
210 " .even\n" \
211 "10: clr."#s1" (%1)+\n" \
212 "20: clr."#s2" (%1)+\n" \
213 " .ifnc \""#s3"\",\"\"\n" \
214 "30: clr."#s3" (%1)+\n" \
215 " .endif\n" \
216 " moveq.l #"#n",%0\n" \
217 " jra 4b\n" \
218 " .previous\n" \
219 : "+d" (res), "+&a" (to), "+a" (from), "=&d" (tmp) \
220 : : "memory")
221
222static __always_inline unsigned long
223__constant_copy_from_user(void *to, const void __user *from, unsigned long n)
224{
225 unsigned long res = 0, tmp;
226
227 switch (n) {
228 case 1:
229 __get_user_asm(res, *(u8 *)to, (u8 __user *)from, u8, b, d, 1);
230 break;
231 case 2:
232 __get_user_asm(res, *(u16 *)to, (u16 __user *)from, u16, w, d, 2);
233 break;
234 case 3:
235 __constant_copy_from_user_asm(res, to, from, tmp, 3, w, b,);
236 break;
237 case 4:
238 __get_user_asm(res, *(u32 *)to, (u32 __user *)from, u32, l, r, 4);
239 break;
240 case 5:
241 __constant_copy_from_user_asm(res, to, from, tmp, 5, l, b,);
242 break;
243 case 6:
244 __constant_copy_from_user_asm(res, to, from, tmp, 6, l, w,);
245 break;
246 case 7:
247 __constant_copy_from_user_asm(res, to, from, tmp, 7, l, w, b);
248 break;
249 case 8:
250 __constant_copy_from_user_asm(res, to, from, tmp, 8, l, l,);
251 break;
252 case 9:
253 __constant_copy_from_user_asm(res, to, from, tmp, 9, l, l, b);
254 break;
255 case 10:
256 __constant_copy_from_user_asm(res, to, from, tmp, 10, l, l, w);
257 break;
258 case 12:
259 __constant_copy_from_user_asm(res, to, from, tmp, 12, l, l, l);
260 break;
261 default:
262 /* we limit the inlined version to 3 moves */
263 return __generic_copy_from_user(to, from, n);
264 }
265
266 return res;
267}
268
269#define __constant_copy_to_user_asm(res, to, from, tmp, n, s1, s2, s3) \
270 asm volatile ("\n" \
271 " move."#s1" (%2)+,%3\n" \
272 "11: moves."#s1" %3,(%1)+\n" \
273 "12: move."#s2" (%2)+,%3\n" \
274 "21: moves."#s2" %3,(%1)+\n" \
275 "22:\n" \
276 " .ifnc \""#s3"\",\"\"\n" \
277 " move."#s3" (%2)+,%3\n" \
278 "31: moves."#s3" %3,(%1)+\n" \
279 "32:\n" \
280 " .endif\n" \
281 "4:\n" \
282 "\n" \
283 " .section __ex_table,\"a\"\n" \
284 " .align 4\n" \
285 " .long 11b,5f\n" \
286 " .long 12b,5f\n" \
287 " .long 21b,5f\n" \
288 " .long 22b,5f\n" \
289 " .ifnc \""#s3"\",\"\"\n" \
290 " .long 31b,5f\n" \
291 " .long 32b,5f\n" \
292 " .endif\n" \
293 " .previous\n" \
294 "\n" \
295 " .section .fixup,\"ax\"\n" \
296 " .even\n" \
297 "5: moveq.l #"#n",%0\n" \
298 " jra 4b\n" \
299 " .previous\n" \
300 : "+d" (res), "+a" (to), "+a" (from), "=&d" (tmp) \
301 : : "memory")
302
303static __always_inline unsigned long
304__constant_copy_to_user(void __user *to, const void *from, unsigned long n)
305{
306 unsigned long res = 0, tmp;
307
308 switch (n) {
309 case 1:
310 __put_user_asm(res, *(u8 *)from, (u8 __user *)to, b, d, 1);
311 break;
312 case 2:
313 __put_user_asm(res, *(u16 *)from, (u16 __user *)to, w, d, 2);
314 break;
315 case 3:
316 __constant_copy_to_user_asm(res, to, from, tmp, 3, w, b,);
317 break;
318 case 4:
319 __put_user_asm(res, *(u32 *)from, (u32 __user *)to, l, r, 4);
320 break;
321 case 5:
322 __constant_copy_to_user_asm(res, to, from, tmp, 5, l, b,);
323 break;
324 case 6:
325 __constant_copy_to_user_asm(res, to, from, tmp, 6, l, w,);
326 break;
327 case 7:
328 __constant_copy_to_user_asm(res, to, from, tmp, 7, l, w, b);
329 break;
330 case 8:
331 __constant_copy_to_user_asm(res, to, from, tmp, 8, l, l,);
332 break;
333 case 9:
334 __constant_copy_to_user_asm(res, to, from, tmp, 9, l, l, b);
335 break;
336 case 10:
337 __constant_copy_to_user_asm(res, to, from, tmp, 10, l, l, w);
338 break;
339 case 12:
340 __constant_copy_to_user_asm(res, to, from, tmp, 12, l, l, l);
341 break;
342 default:
343 /* limit the inlined version to 3 moves */
344 return __generic_copy_to_user(to, from, n);
345 }
346
347 return res;
348}
349
350#define __copy_from_user(to, from, n) \
351(__builtin_constant_p(n) ? \
352 __constant_copy_from_user(to, from, n) : \
353 __generic_copy_from_user(to, from, n))
354
355#define __copy_to_user(to, from, n) \
356(__builtin_constant_p(n) ? \
357 __constant_copy_to_user(to, from, n) : \
358 __generic_copy_to_user(to, from, n))
359
360#define __copy_to_user_inatomic __copy_to_user
361#define __copy_from_user_inatomic __copy_from_user
362
363#define copy_from_user(to, from, n) __copy_from_user(to, from, n)
364#define copy_to_user(to, from, n) __copy_to_user(to, from, n)
365
366long strncpy_from_user(char *dst, const char __user *src, long count);
367long strnlen_user(const char __user *src, long n);
368unsigned long __clear_user(void __user *to, unsigned long n);
369
370#define clear_user __clear_user
371
372#define strlen_user(str) strnlen_user(str, 32767)
373
374#endif /* _M68K_UACCESS_H */
diff --git a/arch/m68knommu/include/asm/uaccess.h b/arch/m68k/include/asm/uaccess_no.h
index 68bbe9b312f1..68bbe9b312f1 100644
--- a/arch/m68knommu/include/asm/uaccess.h
+++ b/arch/m68k/include/asm/uaccess_no.h
diff --git a/arch/m68k/include/asm/ucontext.h b/arch/m68k/include/asm/ucontext.h
new file mode 100644
index 000000000000..b53cd160c0b3
--- /dev/null
+++ b/arch/m68k/include/asm/ucontext.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "ucontext_no.h"
3#else
4#include "ucontext_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/ucontext_mm.h b/arch/m68k/include/asm/ucontext_mm.h
new file mode 100644
index 000000000000..e4e22669edc0
--- /dev/null
+++ b/arch/m68k/include/asm/ucontext_mm.h
@@ -0,0 +1,30 @@
1#ifndef _M68K_UCONTEXT_H
2#define _M68K_UCONTEXT_H
3
4typedef int greg_t;
5#define NGREG 18
6typedef greg_t gregset_t[NGREG];
7
8typedef struct fpregset {
9 int f_fpcntl[3];
10 int f_fpregs[8*3];
11} fpregset_t;
12
13struct mcontext {
14 int version;
15 gregset_t gregs;
16 fpregset_t fpregs;
17};
18
19#define MCONTEXT_VERSION 2
20
21struct ucontext {
22 unsigned long uc_flags;
23 struct ucontext *uc_link;
24 stack_t uc_stack;
25 struct mcontext uc_mcontext;
26 unsigned long uc_filler[80];
27 sigset_t uc_sigmask; /* mask last for extensibility */
28};
29
30#endif
diff --git a/arch/m68knommu/include/asm/ucontext.h b/arch/m68k/include/asm/ucontext_no.h
index 713a27f901cd..713a27f901cd 100644
--- a/arch/m68knommu/include/asm/ucontext.h
+++ b/arch/m68k/include/asm/ucontext_no.h
diff --git a/arch/m68k/include/asm/unaligned.h b/arch/m68k/include/asm/unaligned.h
new file mode 100644
index 000000000000..c640bba3bdf4
--- /dev/null
+++ b/arch/m68k/include/asm/unaligned.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "unaligned_no.h"
3#else
4#include "unaligned_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/unaligned_mm.h b/arch/m68k/include/asm/unaligned_mm.h
new file mode 100644
index 000000000000..77698f2dc33c
--- /dev/null
+++ b/arch/m68k/include/asm/unaligned_mm.h
@@ -0,0 +1,13 @@
1#ifndef _ASM_M68K_UNALIGNED_H
2#define _ASM_M68K_UNALIGNED_H
3
4/*
5 * The m68k can do unaligned accesses itself.
6 */
7#include <linux/unaligned/access_ok.h>
8#include <linux/unaligned/generic.h>
9
10#define get_unaligned __get_unaligned_be
11#define put_unaligned __put_unaligned_be
12
13#endif /* _ASM_M68K_UNALIGNED_H */
diff --git a/arch/m68knommu/include/asm/unaligned.h b/arch/m68k/include/asm/unaligned_no.h
index eb1ea4cb9a59..eb1ea4cb9a59 100644
--- a/arch/m68knommu/include/asm/unaligned.h
+++ b/arch/m68k/include/asm/unaligned_no.h
diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h
new file mode 100644
index 000000000000..df1d9d4cb1fd
--- /dev/null
+++ b/arch/m68k/include/asm/unistd.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "unistd_no.h"
3#else
4#include "unistd_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/unistd_mm.h b/arch/m68k/include/asm/unistd_mm.h
new file mode 100644
index 000000000000..3c19027331fa
--- /dev/null
+++ b/arch/m68k/include/asm/unistd_mm.h
@@ -0,0 +1,372 @@
1#ifndef _ASM_M68K_UNISTD_H_
2#define _ASM_M68K_UNISTD_H_
3
4/*
5 * This file contains the system call numbers.
6 */
7
8#define __NR_restart_syscall 0
9#define __NR_exit 1
10#define __NR_fork 2
11#define __NR_read 3
12#define __NR_write 4
13#define __NR_open 5
14#define __NR_close 6
15#define __NR_waitpid 7
16#define __NR_creat 8
17#define __NR_link 9
18#define __NR_unlink 10
19#define __NR_execve 11
20#define __NR_chdir 12
21#define __NR_time 13
22#define __NR_mknod 14
23#define __NR_chmod 15
24#define __NR_chown 16
25#define __NR_break 17
26#define __NR_oldstat 18
27#define __NR_lseek 19
28#define __NR_getpid 20
29#define __NR_mount 21
30#define __NR_umount 22
31#define __NR_setuid 23
32#define __NR_getuid 24
33#define __NR_stime 25
34#define __NR_ptrace 26
35#define __NR_alarm 27
36#define __NR_oldfstat 28
37#define __NR_pause 29
38#define __NR_utime 30
39#define __NR_stty 31
40#define __NR_gtty 32
41#define __NR_access 33
42#define __NR_nice 34
43#define __NR_ftime 35
44#define __NR_sync 36
45#define __NR_kill 37
46#define __NR_rename 38
47#define __NR_mkdir 39
48#define __NR_rmdir 40
49#define __NR_dup 41
50#define __NR_pipe 42
51#define __NR_times 43
52#define __NR_prof 44
53#define __NR_brk 45
54#define __NR_setgid 46
55#define __NR_getgid 47
56#define __NR_signal 48
57#define __NR_geteuid 49
58#define __NR_getegid 50
59#define __NR_acct 51
60#define __NR_umount2 52
61#define __NR_lock 53
62#define __NR_ioctl 54
63#define __NR_fcntl 55
64#define __NR_mpx 56
65#define __NR_setpgid 57
66#define __NR_ulimit 58
67#define __NR_oldolduname 59
68#define __NR_umask 60
69#define __NR_chroot 61
70#define __NR_ustat 62
71#define __NR_dup2 63
72#define __NR_getppid 64
73#define __NR_getpgrp 65
74#define __NR_setsid 66
75#define __NR_sigaction 67
76#define __NR_sgetmask 68
77#define __NR_ssetmask 69
78#define __NR_setreuid 70
79#define __NR_setregid 71
80#define __NR_sigsuspend 72
81#define __NR_sigpending 73
82#define __NR_sethostname 74
83#define __NR_setrlimit 75
84#define __NR_getrlimit 76
85#define __NR_getrusage 77
86#define __NR_gettimeofday 78
87#define __NR_settimeofday 79
88#define __NR_getgroups 80
89#define __NR_setgroups 81
90#define __NR_select 82
91#define __NR_symlink 83
92#define __NR_oldlstat 84
93#define __NR_readlink 85
94#define __NR_uselib 86
95#define __NR_swapon 87
96#define __NR_reboot 88
97#define __NR_readdir 89
98#define __NR_mmap 90
99#define __NR_munmap 91
100#define __NR_truncate 92
101#define __NR_ftruncate 93
102#define __NR_fchmod 94
103#define __NR_fchown 95
104#define __NR_getpriority 96
105#define __NR_setpriority 97
106#define __NR_profil 98
107#define __NR_statfs 99
108#define __NR_fstatfs 100
109#define __NR_ioperm 101
110#define __NR_socketcall 102
111#define __NR_syslog 103
112#define __NR_setitimer 104
113#define __NR_getitimer 105
114#define __NR_stat 106
115#define __NR_lstat 107
116#define __NR_fstat 108
117#define __NR_olduname 109
118#define __NR_iopl /* 110 */ not supported
119#define __NR_vhangup 111
120#define __NR_idle /* 112 */ Obsolete
121#define __NR_vm86 /* 113 */ not supported
122#define __NR_wait4 114
123#define __NR_swapoff 115
124#define __NR_sysinfo 116
125#define __NR_ipc 117
126#define __NR_fsync 118
127#define __NR_sigreturn 119
128#define __NR_clone 120
129#define __NR_setdomainname 121
130#define __NR_uname 122
131#define __NR_cacheflush 123
132#define __NR_adjtimex 124
133#define __NR_mprotect 125
134#define __NR_sigprocmask 126
135#define __NR_create_module 127
136#define __NR_init_module 128
137#define __NR_delete_module 129
138#define __NR_get_kernel_syms 130
139#define __NR_quotactl 131
140#define __NR_getpgid 132
141#define __NR_fchdir 133
142#define __NR_bdflush 134
143#define __NR_sysfs 135
144#define __NR_personality 136
145#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
146#define __NR_setfsuid 138
147#define __NR_setfsgid 139
148#define __NR__llseek 140
149#define __NR_getdents 141
150#define __NR__newselect 142
151#define __NR_flock 143
152#define __NR_msync 144
153#define __NR_readv 145
154#define __NR_writev 146
155#define __NR_getsid 147
156#define __NR_fdatasync 148
157#define __NR__sysctl 149
158#define __NR_mlock 150
159#define __NR_munlock 151
160#define __NR_mlockall 152
161#define __NR_munlockall 153
162#define __NR_sched_setparam 154
163#define __NR_sched_getparam 155
164#define __NR_sched_setscheduler 156
165#define __NR_sched_getscheduler 157
166#define __NR_sched_yield 158
167#define __NR_sched_get_priority_max 159
168#define __NR_sched_get_priority_min 160
169#define __NR_sched_rr_get_interval 161
170#define __NR_nanosleep 162
171#define __NR_mremap 163
172#define __NR_setresuid 164
173#define __NR_getresuid 165
174#define __NR_getpagesize 166
175#define __NR_query_module 167
176#define __NR_poll 168
177#define __NR_nfsservctl 169
178#define __NR_setresgid 170
179#define __NR_getresgid 171
180#define __NR_prctl 172
181#define __NR_rt_sigreturn 173
182#define __NR_rt_sigaction 174
183#define __NR_rt_sigprocmask 175
184#define __NR_rt_sigpending 176
185#define __NR_rt_sigtimedwait 177
186#define __NR_rt_sigqueueinfo 178
187#define __NR_rt_sigsuspend 179
188#define __NR_pread64 180
189#define __NR_pwrite64 181
190#define __NR_lchown 182
191#define __NR_getcwd 183
192#define __NR_capget 184
193#define __NR_capset 185
194#define __NR_sigaltstack 186
195#define __NR_sendfile 187
196#define __NR_getpmsg 188 /* some people actually want streams */
197#define __NR_putpmsg 189 /* some people actually want streams */
198#define __NR_vfork 190
199#define __NR_ugetrlimit 191
200#define __NR_mmap2 192
201#define __NR_truncate64 193
202#define __NR_ftruncate64 194
203#define __NR_stat64 195
204#define __NR_lstat64 196
205#define __NR_fstat64 197
206#define __NR_chown32 198
207#define __NR_getuid32 199
208#define __NR_getgid32 200
209#define __NR_geteuid32 201
210#define __NR_getegid32 202
211#define __NR_setreuid32 203
212#define __NR_setregid32 204
213#define __NR_getgroups32 205
214#define __NR_setgroups32 206
215#define __NR_fchown32 207
216#define __NR_setresuid32 208
217#define __NR_getresuid32 209
218#define __NR_setresgid32 210
219#define __NR_getresgid32 211
220#define __NR_lchown32 212
221#define __NR_setuid32 213
222#define __NR_setgid32 214
223#define __NR_setfsuid32 215
224#define __NR_setfsgid32 216
225#define __NR_pivot_root 217
226#define __NR_getdents64 220
227#define __NR_gettid 221
228#define __NR_tkill 222
229#define __NR_setxattr 223
230#define __NR_lsetxattr 224
231#define __NR_fsetxattr 225
232#define __NR_getxattr 226
233#define __NR_lgetxattr 227
234#define __NR_fgetxattr 228
235#define __NR_listxattr 229
236#define __NR_llistxattr 230
237#define __NR_flistxattr 231
238#define __NR_removexattr 232
239#define __NR_lremovexattr 233
240#define __NR_fremovexattr 234
241#define __NR_futex 235
242#define __NR_sendfile64 236
243#define __NR_mincore 237
244#define __NR_madvise 238
245#define __NR_fcntl64 239
246#define __NR_readahead 240
247#define __NR_io_setup 241
248#define __NR_io_destroy 242
249#define __NR_io_getevents 243
250#define __NR_io_submit 244
251#define __NR_io_cancel 245
252#define __NR_fadvise64 246
253#define __NR_exit_group 247
254#define __NR_lookup_dcookie 248
255#define __NR_epoll_create 249
256#define __NR_epoll_ctl 250
257#define __NR_epoll_wait 251
258#define __NR_remap_file_pages 252
259#define __NR_set_tid_address 253
260#define __NR_timer_create 254
261#define __NR_timer_settime 255
262#define __NR_timer_gettime 256
263#define __NR_timer_getoverrun 257
264#define __NR_timer_delete 258
265#define __NR_clock_settime 259
266#define __NR_clock_gettime 260
267#define __NR_clock_getres 261
268#define __NR_clock_nanosleep 262
269#define __NR_statfs64 263
270#define __NR_fstatfs64 264
271#define __NR_tgkill 265
272#define __NR_utimes 266
273#define __NR_fadvise64_64 267
274#define __NR_mbind 268
275#define __NR_get_mempolicy 269
276#define __NR_set_mempolicy 270
277#define __NR_mq_open 271
278#define __NR_mq_unlink 272
279#define __NR_mq_timedsend 273
280#define __NR_mq_timedreceive 274
281#define __NR_mq_notify 275
282#define __NR_mq_getsetattr 276
283#define __NR_waitid 277
284#define __NR_vserver 278
285#define __NR_add_key 279
286#define __NR_request_key 280
287#define __NR_keyctl 281
288#define __NR_ioprio_set 282
289#define __NR_ioprio_get 283
290#define __NR_inotify_init 284
291#define __NR_inotify_add_watch 285
292#define __NR_inotify_rm_watch 286
293#define __NR_migrate_pages 287
294#define __NR_openat 288
295#define __NR_mkdirat 289
296#define __NR_mknodat 290
297#define __NR_fchownat 291
298#define __NR_futimesat 292
299#define __NR_fstatat64 293
300#define __NR_unlinkat 294
301#define __NR_renameat 295
302#define __NR_linkat 296
303#define __NR_symlinkat 297
304#define __NR_readlinkat 298
305#define __NR_fchmodat 299
306#define __NR_faccessat 300
307#define __NR_pselect6 301
308#define __NR_ppoll 302
309#define __NR_unshare 303
310#define __NR_set_robust_list 304
311#define __NR_get_robust_list 305
312#define __NR_splice 306
313#define __NR_sync_file_range 307
314#define __NR_tee 308
315#define __NR_vmsplice 309
316#define __NR_move_pages 310
317#define __NR_sched_setaffinity 311
318#define __NR_sched_getaffinity 312
319#define __NR_kexec_load 313
320#define __NR_getcpu 314
321#define __NR_epoll_pwait 315
322#define __NR_utimensat 316
323#define __NR_signalfd 317
324#define __NR_timerfd_create 318
325#define __NR_eventfd 319
326#define __NR_fallocate 320
327#define __NR_timerfd_settime 321
328#define __NR_timerfd_gettime 322
329#define __NR_signalfd4 323
330#define __NR_eventfd2 324
331#define __NR_epoll_create1 325
332#define __NR_dup3 326
333#define __NR_pipe2 327
334#define __NR_inotify_init1 328
335
336#ifdef __KERNEL__
337
338#define NR_syscalls 329
339
340#define __ARCH_WANT_IPC_PARSE_VERSION
341#define __ARCH_WANT_OLD_READDIR
342#define __ARCH_WANT_OLD_STAT
343#define __ARCH_WANT_STAT64
344#define __ARCH_WANT_SYS_ALARM
345#define __ARCH_WANT_SYS_GETHOSTNAME
346#define __ARCH_WANT_SYS_PAUSE
347#define __ARCH_WANT_SYS_SGETMASK
348#define __ARCH_WANT_SYS_SIGNAL
349#define __ARCH_WANT_SYS_TIME
350#define __ARCH_WANT_SYS_UTIME
351#define __ARCH_WANT_SYS_WAITPID
352#define __ARCH_WANT_SYS_SOCKETCALL
353#define __ARCH_WANT_SYS_FADVISE64
354#define __ARCH_WANT_SYS_GETPGRP
355#define __ARCH_WANT_SYS_LLSEEK
356#define __ARCH_WANT_SYS_NICE
357#define __ARCH_WANT_SYS_OLD_GETRLIMIT
358#define __ARCH_WANT_SYS_OLDUMOUNT
359#define __ARCH_WANT_SYS_SIGPENDING
360#define __ARCH_WANT_SYS_SIGPROCMASK
361#define __ARCH_WANT_SYS_RT_SIGACTION
362
363/*
364 * "Conditional" syscalls
365 *
366 * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
367 * but it doesn't work on all toolchains, so we just do it by hand
368 */
369#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
370
371#endif /* __KERNEL__ */
372#endif /* _ASM_M68K_UNISTD_H_ */
diff --git a/arch/m68knommu/include/asm/unistd.h b/arch/m68k/include/asm/unistd_no.h
index b034a2f7b444..b034a2f7b444 100644
--- a/arch/m68knommu/include/asm/unistd.h
+++ b/arch/m68k/include/asm/unistd_no.h
diff --git a/arch/m68k/include/asm/user.h b/arch/m68k/include/asm/user.h
new file mode 100644
index 000000000000..f1f478d6e050
--- /dev/null
+++ b/arch/m68k/include/asm/user.h
@@ -0,0 +1,86 @@
1#ifndef _M68K_USER_H
2#define _M68K_USER_H
3
4/* Core file format: The core file is written in such a way that gdb
5 can understand it and provide useful information to the user (under
6 linux we use the 'trad-core' bfd). There are quite a number of
7 obstacles to being able to view the contents of the floating point
8 registers, and until these are solved you will not be able to view the
9 contents of them. Actually, you can read in the core file and look at
10 the contents of the user struct to find out what the floating point
11 registers contain.
12 The actual file contents are as follows:
13 UPAGE: 1 page consisting of a user struct that tells gdb what is present
14 in the file. Directly after this is a copy of the task_struct, which
15 is currently not used by gdb, but it may come in useful at some point.
16 All of the registers are stored as part of the upage. The upage should
17 always be only one page.
18 DATA: The data area is stored. We use current->end_text to
19 current->brk to pick up all of the user variables, plus any memory
20 that may have been malloced. No attempt is made to determine if a page
21 is demand-zero or if a page is totally unused, we just cover the entire
22 range. All of the addresses are rounded in such a way that an integral
23 number of pages is written.
24 STACK: We need the stack information in order to get a meaningful
25 backtrace. We need to write the data from (esp) to
26 current->start_stack, so we round each of these off in order to be able
27 to write an integer number of pages.
28 The minimum core file size is 3 pages, or 12288 bytes.
29*/
30
31struct user_m68kfp_struct {
32 unsigned long fpregs[8*3]; /* fp0-fp7 registers */
33 unsigned long fpcntl[3]; /* fp control regs */
34};
35
36/* This is the old layout of "struct pt_regs" as of Linux 1.x, and
37 is still the layout used by user (the new pt_regs doesn't have
38 all registers). */
39struct user_regs_struct {
40 long d1,d2,d3,d4,d5,d6,d7;
41 long a0,a1,a2,a3,a4,a5,a6;
42 long d0;
43 long usp;
44 long orig_d0;
45 short stkadj;
46 short sr;
47 long pc;
48 short fmtvec;
49 short __fill;
50};
51
52
53/* When the kernel dumps core, it starts by dumping the user struct -
54 this will be used by gdb to figure out where the data and stack segments
55 are within the file, and what virtual addresses to use. */
56struct user{
57/* We start with the registers, to mimic the way that "memory" is returned
58 from the ptrace(3,...) function. */
59 struct user_regs_struct regs; /* Where the registers are actually stored */
60/* ptrace does not yet supply these. Someday.... */
61 int u_fpvalid; /* True if math co-processor being used. */
62 /* for this mess. Not yet used. */
63 struct user_m68kfp_struct m68kfp; /* Math Co-processor registers. */
64/* The rest of this junk is to help gdb figure out what goes where */
65 unsigned long int u_tsize; /* Text segment size (pages). */
66 unsigned long int u_dsize; /* Data segment size (pages). */
67 unsigned long int u_ssize; /* Stack segment size (pages). */
68 unsigned long start_code; /* Starting virtual address of text. */
69 unsigned long start_stack; /* Starting virtual address of stack area.
70 This is actually the bottom of the stack,
71 the top of the stack is always found in the
72 esp register. */
73 long int signal; /* Signal that caused the core dump. */
74 int reserved; /* No longer used */
75 unsigned long u_ar0; /* Used by gdb to help find the values for */
76 /* the registers. */
77 struct user_m68kfp_struct* u_fpstate; /* Math Co-processor pointer. */
78 unsigned long magic; /* To uniquely identify a core file */
79 char u_comm[32]; /* User command that was responsible */
80};
81#define NBPG 4096
82#define UPAGES 1
83#define HOST_TEXT_START_ADDR (u.start_code)
84#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
85
86#endif
diff --git a/arch/m68k/include/asm/virtconvert.h b/arch/m68k/include/asm/virtconvert.h
new file mode 100644
index 000000000000..22ab05c9c52b
--- /dev/null
+++ b/arch/m68k/include/asm/virtconvert.h
@@ -0,0 +1,48 @@
1#ifndef __VIRT_CONVERT__
2#define __VIRT_CONVERT__
3
4/*
5 * Macros used for converting between virtual and physical mappings.
6 */
7
8#ifdef __KERNEL__
9
10#include <linux/compiler.h>
11#include <linux/mmzone.h>
12#include <asm/setup.h>
13#include <asm/page.h>
14
15/*
16 * Change virtual addresses to physical addresses and vv.
17 */
18static inline unsigned long virt_to_phys(void *address)
19{
20 return __pa(address);
21}
22
23static inline void *phys_to_virt(unsigned long address)
24{
25 return __va(address);
26}
27
28/* Permanent address of a page. */
29#ifdef CONFIG_SINGLE_MEMORY_CHUNK
30#define page_to_phys(page) \
31 __pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT))
32#else
33#define page_to_phys(_page) ({ \
34 struct page *__page = _page; \
35 struct pglist_data *pgdat; \
36 pgdat = pg_data_table[page_to_nid(__page)]; \
37 page_to_pfn(__page) << PAGE_SHIFT; \
38})
39#endif
40
41/*
42 * IO bus memory addresses are 1:1 with the physical address,
43 */
44#define virt_to_bus virt_to_phys
45#define bus_to_virt phys_to_virt
46
47#endif
48#endif
diff --git a/arch/m68k/include/asm/xor.h b/arch/m68k/include/asm/xor.h
new file mode 100644
index 000000000000..c82eb12a5b18
--- /dev/null
+++ b/arch/m68k/include/asm/xor.h
@@ -0,0 +1 @@
#include <asm-generic/xor.h>
diff --git a/arch/m68k/include/asm/zorro.h b/arch/m68k/include/asm/zorro.h
new file mode 100644
index 000000000000..5ce97c22b582
--- /dev/null
+++ b/arch/m68k/include/asm/zorro.h
@@ -0,0 +1,45 @@
1#ifndef _ASM_M68K_ZORRO_H
2#define _ASM_M68K_ZORRO_H
3
4#include <asm/raw_io.h>
5
6#define z_readb raw_inb
7#define z_readw raw_inw
8#define z_readl raw_inl
9
10#define z_writeb raw_outb
11#define z_writew raw_outw
12#define z_writel raw_outl
13
14#define z_memset_io(a,b,c) memset((void *)(a),(b),(c))
15#define z_memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c))
16#define z_memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c))
17
18static inline void __iomem *z_remap_nocache_ser(unsigned long physaddr,
19 unsigned long size)
20{
21 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
22}
23
24static inline void __iomem *z_remap_nocache_nonser(unsigned long physaddr,
25 unsigned long size)
26{
27 return __ioremap(physaddr, size, IOMAP_NOCACHE_NONSER);
28}
29
30static inline void __iomem *z_remap_writethrough(unsigned long physaddr,
31 unsigned long size)
32{
33 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH);
34}
35static inline void __iomem *z_remap_fullcache(unsigned long physaddr,
36 unsigned long size)
37{
38 return __ioremap(physaddr, size, IOMAP_FULL_CACHING);
39}
40
41#define z_unmap iounmap
42#define z_iounmap iounmap
43#define z_ioremap z_remap_nocache_ser
44
45#endif /* _ASM_M68K_ZORRO_H */
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S
index 5b780826647c..5c332f2b9b83 100644
--- a/arch/m68k/kernel/entry.S
+++ b/arch/m68k/kernel/entry.S
@@ -513,7 +513,7 @@ sys_call_table:
513 .long sys_uselib 513 .long sys_uselib
514 .long sys_swapon 514 .long sys_swapon
515 .long sys_reboot 515 .long sys_reboot
516 .long old_readdir 516 .long sys_old_readdir
517 .long old_mmap /* 90 */ 517 .long old_mmap /* 90 */
518 .long sys_munmap 518 .long sys_munmap
519 .long sys_truncate 519 .long sys_truncate
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 76b66feb74df..4beb59dfc6ec 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -14,6 +14,10 @@ config MMU
14 bool 14 bool
15 default n 15 default n
16 16
17config NO_DMA
18 bool
19 default y
20
17config FPU 21config FPU
18 bool 22 bool
19 default n 23 default n
@@ -398,12 +402,6 @@ config M5307C3
398 help 402 help
399 Support for the Motorola M5307C3 board. 403 Support for the Motorola M5307C3 board.
400 404
401config eLIA
402 bool "Moreton Bay eLIA board support"
403 depends on M5307
404 help
405 Support for the Moreton Bay eLIA board.
406
407config SECUREEDGEMP3 405config SECUREEDGEMP3
408 bool "SnapGear SecureEdge/MP3 platform support" 406 bool "SnapGear SecureEdge/MP3 platform support"
409 depends on M5307 407 depends on M5307
@@ -697,25 +695,8 @@ config ISA_DMA_API
697 depends on !M5272 695 depends on !M5272
698 default y 696 default y
699 697
700menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
701
702config PCI
703 bool "PCI support"
704 help
705 Support for PCI bus.
706
707config COMEMPCI
708 bool "CO-MEM lite PCI controller support"
709 depends on (M5307 || M5407)
710
711source "drivers/pci/Kconfig"
712
713source "drivers/pcmcia/Kconfig" 698source "drivers/pcmcia/Kconfig"
714 699
715source "drivers/pci/hotplug/Kconfig"
716
717endmenu
718
719menu "Executable file formats" 700menu "Executable file formats"
720 701
721source "fs/Kconfig.binfmt" 702source "fs/Kconfig.binfmt"
diff --git a/arch/m68knommu/Makefile b/arch/m68knommu/Makefile
index b63bbcf874ff..fd0fb303d885 100644
--- a/arch/m68knommu/Makefile
+++ b/arch/m68knommu/Makefile
@@ -41,7 +41,6 @@ board-$(CONFIG_M5271EVB) := M5271EVB
41board-$(CONFIG_M5275EVB) := M5275EVB 41board-$(CONFIG_M5275EVB) := M5275EVB
42board-$(CONFIG_M5282EVB) := M5282EVB 42board-$(CONFIG_M5282EVB) := M5282EVB
43board-$(CONFIG_ELITE) := eLITE 43board-$(CONFIG_ELITE) := eLITE
44board-$(CONFIG_eLIA) := eLIA
45board-$(CONFIG_NETtel) := NETtel 44board-$(CONFIG_NETtel) := NETtel
46board-$(CONFIG_SECUREEDGEMP3) := MP3 45board-$(CONFIG_SECUREEDGEMP3) := MP3
47board-$(CONFIG_CLEOPATRA) := CLEOPATRA 46board-$(CONFIG_CLEOPATRA) := CLEOPATRA
diff --git a/arch/m68knommu/include/asm/byteorder.h b/arch/m68knommu/include/asm/byteorder.h
deleted file mode 100644
index a6f0b8f7f622..000000000000
--- a/arch/m68knommu/include/asm/byteorder.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef _M68KNOMMU_BYTEORDER_H
2#define _M68KNOMMU_BYTEORDER_H
3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h>
6
7#endif /* _M68KNOMMU_BYTEORDER_H */
diff --git a/arch/m68knommu/include/asm/cachectl.h b/arch/m68knommu/include/asm/cachectl.h
deleted file mode 100644
index bcf5a6a9dd52..000000000000
--- a/arch/m68knommu/include/asm/cachectl.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/cachectl.h>
diff --git a/arch/m68knommu/include/asm/cputime.h b/arch/m68knommu/include/asm/cputime.h
deleted file mode 100644
index a0c4a660878d..000000000000
--- a/arch/m68knommu/include/asm/cputime.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __M68KNOMMU_CPUTIME_H
2#define __M68KNOMMU_CPUTIME_H
3
4#include <asm-generic/cputime.h>
5
6#endif /* __M68KNOMMU_CPUTIME_H */
diff --git a/arch/m68knommu/include/asm/errno.h b/arch/m68knommu/include/asm/errno.h
deleted file mode 100644
index 7e8c22b9a5e6..000000000000
--- a/arch/m68knommu/include/asm/errno.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/errno.h>
diff --git a/arch/m68knommu/include/asm/fcntl.h b/arch/m68knommu/include/asm/fcntl.h
deleted file mode 100644
index f6a552cda4cd..000000000000
--- a/arch/m68knommu/include/asm/fcntl.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/fcntl.h>
diff --git a/arch/m68knommu/include/asm/hwtest.h b/arch/m68knommu/include/asm/hwtest.h
deleted file mode 100644
index 700626a1b1bf..000000000000
--- a/arch/m68knommu/include/asm/hwtest.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/hwtest.h>
diff --git a/arch/m68knommu/include/asm/ioctls.h b/arch/m68knommu/include/asm/ioctls.h
deleted file mode 100644
index 0b1eb4d85059..000000000000
--- a/arch/m68knommu/include/asm/ioctls.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/ioctls.h>
diff --git a/arch/m68knommu/include/asm/ipcbuf.h b/arch/m68knommu/include/asm/ipcbuf.h
deleted file mode 100644
index e4a7be6dd706..000000000000
--- a/arch/m68knommu/include/asm/ipcbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/ipcbuf.h>
diff --git a/arch/m68knommu/include/asm/linkage.h b/arch/m68knommu/include/asm/linkage.h
deleted file mode 100644
index c288a19ff489..000000000000
--- a/arch/m68knommu/include/asm/linkage.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/linkage.h>
diff --git a/arch/m68knommu/include/asm/local.h b/arch/m68knommu/include/asm/local.h
deleted file mode 100644
index 84a39c1b86f8..000000000000
--- a/arch/m68knommu/include/asm/local.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __M68KNOMMU_LOCAL_H
2#define __M68KNOMMU_LOCAL_H
3
4#include <asm-generic/local.h>
5
6#endif /* __M68KNOMMU_LOCAL_H */
diff --git a/arch/m68knommu/include/asm/math-emu.h b/arch/m68knommu/include/asm/math-emu.h
deleted file mode 100644
index 7e7090517b72..000000000000
--- a/arch/m68knommu/include/asm/math-emu.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/math-emu.h>
diff --git a/arch/m68knommu/include/asm/md.h b/arch/m68knommu/include/asm/md.h
deleted file mode 100644
index d810c78de5ff..000000000000
--- a/arch/m68knommu/include/asm/md.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/md.h>
diff --git a/arch/m68knommu/include/asm/mman.h b/arch/m68knommu/include/asm/mman.h
deleted file mode 100644
index 4846c682efed..000000000000
--- a/arch/m68knommu/include/asm/mman.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/mman.h>
diff --git a/arch/m68knommu/include/asm/movs.h b/arch/m68knommu/include/asm/movs.h
deleted file mode 100644
index 81a16779e833..000000000000
--- a/arch/m68knommu/include/asm/movs.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/movs.h>
diff --git a/arch/m68knommu/include/asm/msgbuf.h b/arch/m68knommu/include/asm/msgbuf.h
deleted file mode 100644
index bdfadec4d52d..000000000000
--- a/arch/m68knommu/include/asm/msgbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/msgbuf.h>
diff --git a/arch/m68knommu/include/asm/openprom.h b/arch/m68knommu/include/asm/openprom.h
deleted file mode 100644
index fdba7953ff9f..000000000000
--- a/arch/m68knommu/include/asm/openprom.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/openprom.h>
diff --git a/arch/m68knommu/include/asm/oplib.h b/arch/m68knommu/include/asm/oplib.h
deleted file mode 100644
index ce079dc332d9..000000000000
--- a/arch/m68knommu/include/asm/oplib.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/oplib.h>
diff --git a/arch/m68knommu/include/asm/percpu.h b/arch/m68knommu/include/asm/percpu.h
deleted file mode 100644
index 5de72c327efd..000000000000
--- a/arch/m68knommu/include/asm/percpu.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __ARCH_M68KNOMMU_PERCPU__
2#define __ARCH_M68KNOMMU_PERCPU__
3
4#include <asm-generic/percpu.h>
5
6#endif /* __ARCH_M68KNOMMU_PERCPU__ */
diff --git a/arch/m68knommu/include/asm/poll.h b/arch/m68knommu/include/asm/poll.h
deleted file mode 100644
index ee1b6cb549ca..000000000000
--- a/arch/m68knommu/include/asm/poll.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/poll.h>
diff --git a/arch/m68knommu/include/asm/posix_types.h b/arch/m68knommu/include/asm/posix_types.h
deleted file mode 100644
index 6205fb9392a3..000000000000
--- a/arch/m68knommu/include/asm/posix_types.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/posix_types.h>
diff --git a/arch/m68knommu/include/asm/resource.h b/arch/m68knommu/include/asm/resource.h
deleted file mode 100644
index 7fa63d5ea576..000000000000
--- a/arch/m68knommu/include/asm/resource.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/resource.h>
diff --git a/arch/m68knommu/include/asm/rtc.h b/arch/m68knommu/include/asm/rtc.h
deleted file mode 100644
index eaf18ec83c8e..000000000000
--- a/arch/m68knommu/include/asm/rtc.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/rtc.h>
diff --git a/arch/m68knommu/include/asm/sections.h b/arch/m68knommu/include/asm/sections.h
deleted file mode 100644
index dd0ecb98ec08..000000000000
--- a/arch/m68knommu/include/asm/sections.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef _M68KNOMMU_SECTIONS_H
2#define _M68KNOMMU_SECTIONS_H
3
4/* nothing to see, move along */
5#include <asm-generic/sections.h>
6
7#endif
diff --git a/arch/m68knommu/include/asm/sembuf.h b/arch/m68knommu/include/asm/sembuf.h
deleted file mode 100644
index 3a634f9ecf50..000000000000
--- a/arch/m68knommu/include/asm/sembuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/sembuf.h>
diff --git a/arch/m68knommu/include/asm/shm.h b/arch/m68knommu/include/asm/shm.h
deleted file mode 100644
index cc8e522d9050..000000000000
--- a/arch/m68knommu/include/asm/shm.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shm.h>
diff --git a/arch/m68knommu/include/asm/shmbuf.h b/arch/m68knommu/include/asm/shmbuf.h
deleted file mode 100644
index bc34cf8eefce..000000000000
--- a/arch/m68knommu/include/asm/shmbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shmbuf.h>
diff --git a/arch/m68knommu/include/asm/shmparam.h b/arch/m68knommu/include/asm/shmparam.h
deleted file mode 100644
index d7ee69648ebf..000000000000
--- a/arch/m68knommu/include/asm/shmparam.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shmparam.h>
diff --git a/arch/m68knommu/include/asm/socket.h b/arch/m68knommu/include/asm/socket.h
deleted file mode 100644
index ac5478bf6371..000000000000
--- a/arch/m68knommu/include/asm/socket.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/socket.h>
diff --git a/arch/m68knommu/include/asm/sockios.h b/arch/m68knommu/include/asm/sockios.h
deleted file mode 100644
index dcc6a8900ce2..000000000000
--- a/arch/m68knommu/include/asm/sockios.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/sockios.h>
diff --git a/arch/m68knommu/include/asm/spinlock.h b/arch/m68knommu/include/asm/spinlock.h
deleted file mode 100644
index 6bb1f06c4781..000000000000
--- a/arch/m68knommu/include/asm/spinlock.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/spinlock.h>
diff --git a/arch/m68knommu/include/asm/stat.h b/arch/m68knommu/include/asm/stat.h
deleted file mode 100644
index 3d4b260e7c03..000000000000
--- a/arch/m68knommu/include/asm/stat.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/stat.h>
diff --git a/arch/m68knommu/include/asm/statfs.h b/arch/m68knommu/include/asm/statfs.h
deleted file mode 100644
index 2ce99eaf0970..000000000000
--- a/arch/m68knommu/include/asm/statfs.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/statfs.h>
diff --git a/arch/m68knommu/include/asm/termbits.h b/arch/m68knommu/include/asm/termbits.h
deleted file mode 100644
index 05dd6bc27285..000000000000
--- a/arch/m68knommu/include/asm/termbits.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/termbits.h>
diff --git a/arch/m68knommu/include/asm/termios.h b/arch/m68knommu/include/asm/termios.h
deleted file mode 100644
index e7337881a985..000000000000
--- a/arch/m68knommu/include/asm/termios.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/termios.h>
diff --git a/arch/m68knommu/include/asm/tlb.h b/arch/m68knommu/include/asm/tlb.h
deleted file mode 100644
index 77a7c51ca299..000000000000
--- a/arch/m68knommu/include/asm/tlb.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/tlb.h>
diff --git a/arch/m68knommu/include/asm/types.h b/arch/m68knommu/include/asm/types.h
deleted file mode 100644
index 031238c2d180..000000000000
--- a/arch/m68knommu/include/asm/types.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/types.h>
diff --git a/arch/m68knommu/include/asm/user.h b/arch/m68knommu/include/asm/user.h
deleted file mode 100644
index a5a555b761c4..000000000000
--- a/arch/m68knommu/include/asm/user.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/user.h>
diff --git a/arch/m68knommu/kernel/Makefile b/arch/m68knommu/kernel/Makefile
index f0eab3dedb5a..37c3fc074c0a 100644
--- a/arch/m68knommu/kernel/Makefile
+++ b/arch/m68knommu/kernel/Makefile
@@ -8,4 +8,3 @@ obj-y += dma.o entry.o init_task.o irq.o m68k_ksyms.o process.o ptrace.o \
8 setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o 8 setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o
9 9
10obj-$(CONFIG_MODULES) += module.o 10obj-$(CONFIG_MODULES) += module.o
11obj-$(CONFIG_COMEMPCI) += comempci.o
diff --git a/arch/m68knommu/kernel/comempci.c b/arch/m68knommu/kernel/comempci.c
deleted file mode 100644
index 0a68b5a85f86..000000000000
--- a/arch/m68knommu/kernel/comempci.c
+++ /dev/null
@@ -1,980 +0,0 @@
1/*****************************************************************************/
2
3/*
4 * comemlite.c -- PCI access code for embedded CO-MEM Lite PCI controller.
5 *
6 * (C) Copyright 1999-2003, Greg Ungerer (gerg@snapgear.com).
7 * (C) Copyright 2000, Lineo (www.lineo.com)
8 */
9
10/*****************************************************************************/
11
12#include <linux/kernel.h>
13#include <linux/types.h>
14#include <linux/pci.h>
15#include <linux/ptrace.h>
16#include <linux/spinlock.h>
17#include <linux/interrupt.h>
18#include <linux/sched.h>
19#include <asm/coldfire.h>
20#include <asm/mcfsim.h>
21#include <asm/irq.h>
22#include <asm/anchor.h>
23
24#ifdef CONFIG_eLIA
25#include <asm/elia.h>
26#endif
27
28/*****************************************************************************/
29
30/*
31 * Debug configuration defines. DEBUGRES sets debugging output for
32 * the resource allocation phase. DEBUGPCI traces on pcibios_ function
33 * calls, and DEBUGIO traces all accesses to devices on the PCI bus.
34 */
35/*#define DEBUGRES 1*/
36/*#define DEBUGPCI 1*/
37/*#define DEBUGIO 1*/
38
39/*****************************************************************************/
40
41/*
42 * PCI markers for bus present and active slots.
43 */
44int pci_bus_is_present = 0;
45unsigned long pci_slotmask = 0;
46
47/*
48 * We may or may not need to swap the bytes of PCI bus tranfers.
49 * The endianess is re-roder automatically by the CO-MEM, but it
50 * will get the wrong byte order for a pure data stream.
51 */
52#define pci_byteswap 0
53
54
55/*
56 * Resource tracking. The CO-MEM part creates a virtual address
57 * space that all the PCI devices live in - it is not in any way
58 * directly mapped into the ColdFire address space. So we can
59 * really assign any resources we like to devices, as long as
60 * they do not clash with other PCI devices.
61 */
62unsigned int pci_iobase = PCIBIOS_MIN_IO; /* Arbitrary start address */
63unsigned int pci_membase = PCIBIOS_MIN_MEM; /* Arbitrary start address */
64
65#define PCI_MINIO 0x100 /* 256 byte minimum I/O */
66#define PCI_MINMEM 0x00010000 /* 64k minimum chunk */
67
68/*
69 * The CO-MEM's shared memory segment is visible inside the PCI
70 * memory address space. We need to keep track of the address that
71 * this is mapped at, to setup the bus masters pointers.
72 */
73unsigned int pci_shmemaddr;
74
75/*****************************************************************************/
76
77void pci_interrupt(int irq, void *id, struct pt_regs *fp);
78
79/*****************************************************************************/
80
81/*
82 * Some platforms have custom ways of reseting the PCI bus.
83 */
84
85void pci_resetbus(void)
86{
87#ifdef CONFIG_eLIA
88 int i;
89
90#ifdef DEBUGPCI
91 printk(KERN_DEBUG "pci_resetbus()\n");
92#endif
93
94 *((volatile unsigned short *) (MCF_MBAR+MCFSIM_PADDR)) |= eLIA_PCIRESET;
95 for (i = 0; (i < 1000); i++) {
96 *((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) =
97 (ppdata | eLIA_PCIRESET);
98 }
99
100
101 *((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) = ppdata;
102#endif
103}
104
105/*****************************************************************************/
106
107int pcibios_assign_resource_slot(int slot)
108{
109 volatile unsigned long *rp;
110 volatile unsigned char *ip;
111 unsigned int idsel, addr, val, align, i;
112 int bar;
113
114#ifdef DEBUGPCI
115 printk(KERN_INFO "pcibios_assign_resource_slot(slot=%x)\n", slot);
116#endif
117
118 rp = (volatile unsigned long *) COMEM_BASE;
119 idsel = COMEM_DA_ADDR(0x1 << (slot + 16));
120
121 /* Try to assign resource to each BAR */
122 for (bar = 0; (bar < 6); bar++) {
123 addr = COMEM_PCIBUS + PCI_BASE_ADDRESS_0 + (bar * 4);
124 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
125 val = rp[LREG(addr)];
126#ifdef DEBUGRES
127 printk(KERN_DEBUG "-----------------------------------"
128 "-------------------------------------\n");
129 printk(KERN_DEBUG "BAR[%d]: read=%08x ", bar, val);
130#endif
131
132 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
133 rp[LREG(addr)] = 0xffffffff;
134
135 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
136 val = rp[LREG(addr)];
137#ifdef DEBUGRES
138 printk(KERN_DEBUG "write=%08x ", val);
139#endif
140 if (val == 0) {
141#ifdef DEBUGRES
142 printk(KERN_DEBUG "\n");
143#endif
144 continue;
145 }
146
147 /* Determine space required by BAR */
148 /* FIXME: this should go backwords from 0x80000000... */
149 for (i = 0; (i < 32); i++) {
150 if ((0x1 << i) & (val & 0xfffffffc))
151 break;
152 }
153
154#ifdef DEBUGRES
155 printk(KERN_DEBUG "size=%08x(%d)\n", (0x1 << i), i);
156#endif
157 i = 0x1 << i;
158
159 /* Assign a resource */
160 if (val & PCI_BASE_ADDRESS_SPACE_IO) {
161 if (i < PCI_MINIO)
162 i = PCI_MINIO;
163#ifdef DEBUGRES
164 printk(KERN_DEBUG "BAR[%d]: IO size=%08x iobase=%08x\n",
165 bar, i, pci_iobase);
166#endif
167 if (i > 0xffff) {
168 /* Invalid size?? */
169 val = 0 | PCI_BASE_ADDRESS_SPACE_IO;
170#ifdef DEBUGRES
171 printk(KERN_DEBUG "BAR[%d]: too big for IO??\n", bar);
172#endif
173 } else {
174 /* Check for un-alignment */
175 if ((align = pci_iobase % i))
176 pci_iobase += (i - align);
177 val = pci_iobase | PCI_BASE_ADDRESS_SPACE_IO;
178 pci_iobase += i;
179 }
180 } else {
181 if (i < PCI_MINMEM)
182 i = PCI_MINMEM;
183#ifdef DEBUGRES
184 printk(KERN_DEBUG "BAR[%d]: MEMORY size=%08x membase=%08x\n",
185 bar, i, pci_membase);
186#endif
187 /* Check for un-alignment */
188 if ((align = pci_membase % i))
189 pci_membase += (i - align);
190 val = pci_membase | PCI_BASE_ADDRESS_SPACE_MEMORY;
191 pci_membase += i;
192 }
193
194 /* Write resource back into BAR register */
195 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
196 rp[LREG(addr)] = val;
197#ifdef DEBUGRES
198 printk(KERN_DEBUG "BAR[%d]: assigned bar=%08x\n", bar, val);
199#endif
200 }
201
202#ifdef DEBUGRES
203 printk(KERN_DEBUG "-----------------------------------"
204 "-------------------------------------\n");
205#endif
206
207 /* Assign IRQ if one is wanted... */
208 ip = (volatile unsigned char *) (COMEM_BASE + COMEM_PCIBUS);
209 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
210
211 addr = (PCI_INTERRUPT_PIN & 0xfc) + (~PCI_INTERRUPT_PIN & 0x03);
212 if (ip[addr]) {
213 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
214 addr = (PCI_INTERRUPT_LINE & 0xfc)+(~PCI_INTERRUPT_LINE & 0x03);
215 ip[addr] = 25;
216#ifdef DEBUGRES
217 printk(KERN_DEBUG "IRQ LINE=25\n");
218#endif
219 }
220
221 return(0);
222}
223
224/*****************************************************************************/
225
226int pcibios_enable_slot(int slot)
227{
228 volatile unsigned long *rp;
229 volatile unsigned short *wp;
230 unsigned int idsel, addr;
231 unsigned short cmd;
232
233#ifdef DEBUGPCI
234 printk(KERN_DEBUG "pcibios_enbale_slot(slot=%x)\n", slot);
235#endif
236
237 rp = (volatile unsigned long *) COMEM_BASE;
238 wp = (volatile unsigned short *) COMEM_BASE;
239 idsel = COMEM_DA_ADDR(0x1 << (slot + 16));
240
241 /* Get current command settings */
242 addr = COMEM_PCIBUS + PCI_COMMAND;
243 addr = (addr & ~0x3) + (~addr & 0x02);
244 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
245 cmd = wp[WREG(addr)];
246 /*val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);*/
247
248 /* Enable I/O and memory accesses to this device */
249 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
250 cmd |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER;
251 wp[WREG(addr)] = cmd;
252
253 return(0);
254}
255
256/*****************************************************************************/
257
258void pcibios_assign_resources(void)
259{
260 volatile unsigned long *rp;
261 unsigned long sel, id;
262 int slot;
263
264 rp = (volatile unsigned long *) COMEM_BASE;
265
266 /*
267 * Do a quick scan of the PCI bus and see what is here.
268 */
269 for (slot = COMEM_MINDEV; (slot <= COMEM_MAXDEV); slot++) {
270 sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16));
271 rp[LREG(COMEM_DAHBASE)] = sel;
272 rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
273 id = rp[LREG(COMEM_PCIBUS)];
274 if ((id != 0) && ((id & 0xffff0000) != (sel & 0xffff0000))) {
275 printk(KERN_INFO "PCI: slot=%d id=%08x\n", slot, (int) id);
276 pci_slotmask |= 0x1 << slot;
277 pcibios_assign_resource_slot(slot);
278 pcibios_enable_slot(slot);
279 }
280 }
281}
282
283/*****************************************************************************/
284
285int pcibios_init(void)
286{
287 volatile unsigned long *rp;
288 unsigned long sel, id;
289 int slot;
290
291#ifdef DEBUGPCI
292 printk(KERN_DEBUG "pcibios_init()\n");
293#endif
294
295 pci_resetbus();
296
297 /*
298 * Do some sort of basic check to see if the CO-MEM part
299 * is present... This works ok, but I think we really need
300 * something better...
301 */
302 rp = (volatile unsigned long *) COMEM_BASE;
303 if ((rp[LREG(COMEM_LBUSCFG)] & 0xff) != 0x50) {
304 printk(KERN_INFO "PCI: no PCI bus present\n");
305 return(0);
306 }
307
308#ifdef COMEM_BRIDGEDEV
309 /*
310 * Setup the PCI bridge device first. It needs resources too,
311 * so that bus masters can get to its shared memory.
312 */
313 slot = COMEM_BRIDGEDEV;
314 sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16));
315 rp[LREG(COMEM_DAHBASE)] = sel;
316 rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
317 id = rp[LREG(COMEM_PCIBUS)];
318 if ((id == 0) || ((id & 0xffff0000) == (sel & 0xffff0000))) {
319 printk(KERN_INFO "PCI: no PCI bus bridge present\n");
320 return(0);
321 }
322
323 printk(KERN_INFO "PCI: bridge device at slot=%d id=%08x\n", slot, (int) id);
324 pci_slotmask |= 0x1 << slot;
325 pci_shmemaddr = pci_membase;
326 pcibios_assign_resource_slot(slot);
327 pcibios_enable_slot(slot);
328#endif
329
330 pci_bus_is_present = 1;
331
332 /* Get PCI irq for local vectoring */
333 if (request_irq(COMEM_IRQ, pci_interrupt, 0, "PCI bridge", NULL)) {
334 printk(KERN_WARNING "PCI: failed to acquire interrupt %d\n", COMEM_IRQ);
335 } else {
336 mcf_autovector(COMEM_IRQ);
337 }
338
339 pcibios_assign_resources();
340
341 return(0);
342}
343
344/*****************************************************************************/
345
346char *pcibios_setup(char *option)
347{
348 /* Nothing for us to handle. */
349 return(option);
350}
351/*****************************************************************************/
352
353void pcibios_fixup_bus(struct pci_bus *b)
354{
355}
356
357/*****************************************************************************/
358
359void pcibios_align_resource(void *data, struct resource *res,
360 resource_size_t size, resource_size_t align)
361{
362}
363
364/*****************************************************************************/
365
366int pcibios_enable_device(struct pci_dev *dev, int mask)
367{
368 int slot;
369
370 slot = PCI_SLOT(dev->devfn);
371 if ((dev->bus == 0) && (pci_slotmask & (1 << slot)))
372 pcibios_enable_slot(slot);
373 return(0);
374}
375
376/*****************************************************************************/
377
378/*
379 * Local routines to interrcept the standard I/O and vector handling
380 * code. Don't include this 'till now - initialization code above needs
381 * access to the real code too.
382 */
383#include <asm/mcfpci.h>
384
385/*****************************************************************************/
386
387void pci_outb(unsigned char val, unsigned int addr)
388{
389 volatile unsigned long *rp;
390 volatile unsigned char *bp;
391
392#ifdef DEBUGIO
393 printk(KERN_DEBUG "pci_outb(val=%02x,addr=%x)\n", val, addr);
394#endif
395
396 rp = (volatile unsigned long *) COMEM_BASE;
397 bp = (volatile unsigned char *) COMEM_BASE;
398 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
399 addr = (addr & ~0x3) + (~addr & 0x03);
400 bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
401}
402
403/*****************************************************************************/
404
405void pci_outw(unsigned short val, unsigned int addr)
406{
407 volatile unsigned long *rp;
408 volatile unsigned short *sp;
409
410#ifdef DEBUGIO
411 printk(KERN_DEBUG "pci_outw(val=%04x,addr=%x)\n", val, addr);
412#endif
413
414 rp = (volatile unsigned long *) COMEM_BASE;
415 sp = (volatile unsigned short *) COMEM_BASE;
416 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
417 addr = (addr & ~0x3) + (~addr & 0x02);
418 if (pci_byteswap)
419 val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
420 sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
421}
422
423/*****************************************************************************/
424
425void pci_outl(unsigned int val, unsigned int addr)
426{
427 volatile unsigned long *rp;
428 volatile unsigned int *lp;
429
430#ifdef DEBUGIO
431 printk(KERN_DEBUG "pci_outl(val=%08x,addr=%x)\n", val, addr);
432#endif
433
434 rp = (volatile unsigned long *) COMEM_BASE;
435 lp = (volatile unsigned int *) COMEM_BASE;
436 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr);
437
438 if (pci_byteswap)
439 val = (val << 24) | ((val & 0x0000ff00) << 8) |
440 ((val & 0x00ff0000) >> 8) | (val >> 24);
441
442 lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val;
443}
444
445/*****************************************************************************/
446
447unsigned long pci_blmask[] = {
448 0x000000e0,
449 0x000000d0,
450 0x000000b0,
451 0x00000070
452};
453
454unsigned char pci_inb(unsigned int addr)
455{
456 volatile unsigned long *rp;
457 volatile unsigned char *bp;
458 unsigned long r;
459 unsigned char val;
460
461#ifdef DEBUGIO
462 printk(KERN_DEBUG "pci_inb(addr=%x)\n", addr);
463#endif
464
465 rp = (volatile unsigned long *) COMEM_BASE;
466 bp = (volatile unsigned char *) COMEM_BASE;
467
468 r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_blmask[(addr & 0x3)];
469 rp[LREG(COMEM_DAHBASE)] = r;
470
471 addr = (addr & ~0x3) + (~addr & 0x3);
472 val = bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
473 return(val);
474}
475
476/*****************************************************************************/
477
478unsigned long pci_bwmask[] = {
479 0x000000c0,
480 0x000000c0,
481 0x00000030,
482 0x00000030
483};
484
485unsigned short pci_inw(unsigned int addr)
486{
487 volatile unsigned long *rp;
488 volatile unsigned short *sp;
489 unsigned long r;
490 unsigned short val;
491
492#ifdef DEBUGIO
493 printk(KERN_DEBUG "pci_inw(addr=%x)", addr);
494#endif
495
496 rp = (volatile unsigned long *) COMEM_BASE;
497 r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_bwmask[(addr & 0x3)];
498 rp[LREG(COMEM_DAHBASE)] = r;
499
500 sp = (volatile unsigned short *) COMEM_BASE;
501 addr = (addr & ~0x3) + (~addr & 0x02);
502 val = sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
503 if (pci_byteswap)
504 val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
505#ifdef DEBUGIO
506 printk(KERN_DEBUG "=%04x\n", val);
507#endif
508 return(val);
509}
510
511/*****************************************************************************/
512
513unsigned int pci_inl(unsigned int addr)
514{
515 volatile unsigned long *rp;
516 volatile unsigned int *lp;
517 unsigned int val;
518
519#ifdef DEBUGIO
520 printk(KERN_DEBUG "pci_inl(addr=%x)", addr);
521#endif
522
523 rp = (volatile unsigned long *) COMEM_BASE;
524 lp = (volatile unsigned int *) COMEM_BASE;
525 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(addr);
526 val = lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))];
527
528 if (pci_byteswap)
529 val = (val << 24) | ((val & 0x0000ff00) << 8) |
530 ((val & 0x00ff0000) >> 8) | (val >> 24);
531
532#ifdef DEBUGIO
533 printk(KERN_DEBUG "=%08x\n", val);
534#endif
535 return(val);
536}
537
538/*****************************************************************************/
539
540void pci_outsb(void *addr, void *buf, int len)
541{
542 volatile unsigned long *rp;
543 volatile unsigned char *bp;
544 unsigned char *dp = (unsigned char *) buf;
545 unsigned int a = (unsigned int) addr;
546
547#ifdef DEBUGIO
548 printk(KERN_DEBUG "pci_outsb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
549#endif
550
551 rp = (volatile unsigned long *) COMEM_BASE;
552 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
553
554 a = (a & ~0x3) + (~a & 0x03);
555 bp = (volatile unsigned char *)
556 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
557
558 while (len--)
559 *bp = *dp++;
560}
561
562/*****************************************************************************/
563
564void pci_outsw(void *addr, void *buf, int len)
565{
566 volatile unsigned long *rp;
567 volatile unsigned short *wp;
568 unsigned short w, *dp = (unsigned short *) buf;
569 unsigned int a = (unsigned int) addr;
570
571#ifdef DEBUGIO
572 printk(KERN_DEBUG "pci_outsw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
573#endif
574
575 rp = (volatile unsigned long *) COMEM_BASE;
576 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
577
578 a = (a & ~0x3) + (~a & 0x2);
579 wp = (volatile unsigned short *)
580 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
581
582 while (len--) {
583 w = *dp++;
584 if (pci_byteswap)
585 w = ((w & 0xff) << 8) | ((w >> 8) & 0xff);
586 *wp = w;
587 }
588}
589
590/*****************************************************************************/
591
592void pci_outsl(void *addr, void *buf, int len)
593{
594 volatile unsigned long *rp;
595 volatile unsigned long *lp;
596 unsigned long l, *dp = (unsigned long *) buf;
597 unsigned int a = (unsigned int) addr;
598
599#ifdef DEBUGIO
600 printk(KERN_DEBUG "pci_outsl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
601#endif
602
603 rp = (volatile unsigned long *) COMEM_BASE;
604 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a);
605
606 lp = (volatile unsigned long *)
607 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
608
609 while (len--) {
610 l = *dp++;
611 if (pci_byteswap)
612 l = (l << 24) | ((l & 0x0000ff00) << 8) |
613 ((l & 0x00ff0000) >> 8) | (l >> 24);
614 *lp = l;
615 }
616}
617
618/*****************************************************************************/
619
620void pci_insb(void *addr, void *buf, int len)
621{
622 volatile unsigned long *rp;
623 volatile unsigned char *bp;
624 unsigned char *dp = (unsigned char *) buf;
625 unsigned int a = (unsigned int) addr;
626
627#ifdef DEBUGIO
628 printk(KERN_DEBUG "pci_insb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
629#endif
630
631 rp = (volatile unsigned long *) COMEM_BASE;
632 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
633
634 a = (a & ~0x3) + (~a & 0x03);
635 bp = (volatile unsigned char *)
636 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
637
638 while (len--)
639 *dp++ = *bp;
640}
641
642/*****************************************************************************/
643
644void pci_insw(void *addr, void *buf, int len)
645{
646 volatile unsigned long *rp;
647 volatile unsigned short *wp;
648 unsigned short w, *dp = (unsigned short *) buf;
649 unsigned int a = (unsigned int) addr;
650
651#ifdef DEBUGIO
652 printk(KERN_DEBUG "pci_insw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
653#endif
654
655 rp = (volatile unsigned long *) COMEM_BASE;
656 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
657
658 a = (a & ~0x3) + (~a & 0x2);
659 wp = (volatile unsigned short *)
660 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
661
662 while (len--) {
663 w = *wp;
664 if (pci_byteswap)
665 w = ((w & 0xff) << 8) | ((w >> 8) & 0xff);
666 *dp++ = w;
667 }
668}
669
670/*****************************************************************************/
671
672void pci_insl(void *addr, void *buf, int len)
673{
674 volatile unsigned long *rp;
675 volatile unsigned long *lp;
676 unsigned long l, *dp = (unsigned long *) buf;
677 unsigned int a = (unsigned int) addr;
678
679#ifdef DEBUGIO
680 printk(KERN_DEBUG "pci_insl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
681#endif
682
683 rp = (volatile unsigned long *) COMEM_BASE;
684 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a);
685
686 lp = (volatile unsigned long *)
687 (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a));
688
689 while (len--) {
690 l = *lp;
691 if (pci_byteswap)
692 l = (l << 24) | ((l & 0x0000ff00) << 8) |
693 ((l & 0x00ff0000) >> 8) | (l >> 24);
694 *dp++ = l;
695 }
696}
697
698/*****************************************************************************/
699
700struct pci_localirqlist {
701 void (*handler)(int, void *, struct pt_regs *);
702 const char *device;
703 void *dev_id;
704};
705
706struct pci_localirqlist pci_irqlist[COMEM_MAXPCI];
707
708/*****************************************************************************/
709
710int pci_request_irq(unsigned int irq,
711 void (*handler)(int, void *, struct pt_regs *),
712 unsigned long flags, const char *device, void *dev_id)
713{
714 int i;
715
716#ifdef DEBUGIO
717 printk(KERN_DEBUG "pci_request_irq(irq=%d,handler=%x,flags=%x,device=%s,"
718 "dev_id=%x)\n", irq, (int) handler, (int) flags, device,
719 (int) dev_id);
720#endif
721
722 /* Check if this interrupt handler is already lodged */
723 for (i = 0; (i < COMEM_MAXPCI); i++) {
724 if (pci_irqlist[i].handler == handler)
725 return(0);
726 }
727
728 /* Find a free spot to put this handler */
729 for (i = 0; (i < COMEM_MAXPCI); i++) {
730 if (pci_irqlist[i].handler == 0) {
731 pci_irqlist[i].handler = handler;
732 pci_irqlist[i].device = device;
733 pci_irqlist[i].dev_id = dev_id;
734 return(0);
735 }
736 }
737
738 /* Couldn't fit?? */
739 return(1);
740}
741
742/*****************************************************************************/
743
744void pci_free_irq(unsigned int irq, void *dev_id)
745{
746 int i;
747
748#ifdef DEBUGIO
749 printk(KERN_DEBUG "pci_free_irq(irq=%d,dev_id=%x)\n", irq, (int) dev_id);
750#endif
751
752 if (dev_id == (void *) NULL)
753 return;
754
755 /* Check if this interrupt handler is lodged */
756 for (i = 0; (i < COMEM_MAXPCI); i++) {
757 if (pci_irqlist[i].dev_id == dev_id) {
758 pci_irqlist[i].handler = NULL;
759 pci_irqlist[i].device = NULL;
760 pci_irqlist[i].dev_id = NULL;
761 break;
762 }
763 }
764}
765
766/*****************************************************************************/
767
768void pci_interrupt(int irq, void *id, struct pt_regs *fp)
769{
770 int i;
771
772#ifdef DEBUGIO
773 printk(KERN_DEBUG "pci_interrupt(irq=%d,id=%x,fp=%x)\n", irq, (int) id, (int) fp);
774#endif
775
776 for (i = 0; (i < COMEM_MAXPCI); i++) {
777 if (pci_irqlist[i].handler)
778 (*pci_irqlist[i].handler)(irq,pci_irqlist[i].dev_id,fp);
779 }
780}
781
782/*****************************************************************************/
783
784/*
785 * The shared memory region is broken up into contiguous 512 byte
786 * regions for easy allocation... This is not an optimal solution
787 * but it makes allocation and freeing regions really easy.
788 */
789
790#define PCI_MEMSLOTSIZE 512
791#define PCI_MEMSLOTS (COMEM_SHMEMSIZE / PCI_MEMSLOTSIZE)
792
793char pci_shmemmap[PCI_MEMSLOTS];
794
795
796void *pci_bmalloc(int size)
797{
798 int i, j, nrslots;
799
800#ifdef DEBUGIO
801 printk(KERN_DEBUG "pci_bmalloc(size=%d)\n", size);
802#endif
803
804 if (size <= 0)
805 return((void *) NULL);
806
807 nrslots = (size - 1) / PCI_MEMSLOTSIZE;
808
809 for (i = 0; (i < (PCI_MEMSLOTS-nrslots)); i++) {
810 if (pci_shmemmap[i] == 0) {
811 for (j = i+1; (j < (i+nrslots)); j++) {
812 if (pci_shmemmap[j])
813 goto restart;
814 }
815
816 for (j = i; (j <= i+nrslots); j++)
817 pci_shmemmap[j] = 1;
818 break;
819 }
820restart:
821 }
822
823 return((void *) (COMEM_BASE + COMEM_SHMEM + (i * PCI_MEMSLOTSIZE)));
824}
825
826/*****************************************************************************/
827
828void pci_bmfree(void *mp, int size)
829{
830 int i, j, nrslots;
831
832#ifdef DEBUGIO
833 printk(KERN_DEBUG "pci_bmfree(mp=%x,size=%d)\n", (int) mp, size);
834#endif
835
836 nrslots = size / PCI_MEMSLOTSIZE;
837 i = (((unsigned long) mp) - (COMEM_BASE + COMEM_SHMEM)) /
838 PCI_MEMSLOTSIZE;
839
840 for (j = i; (j < (i+nrslots)); j++)
841 pci_shmemmap[j] = 0;
842}
843
844/*****************************************************************************/
845
846unsigned long pci_virt_to_bus(volatile void *address)
847{
848 unsigned long l;
849
850#ifdef DEBUGIO
851 printk(KERN_DEBUG "pci_virt_to_bus(address=%x)", (int) address);
852#endif
853
854 l = ((unsigned long) address) - COMEM_BASE;
855#ifdef DEBUGIO
856 printk(KERN_DEBUG "=%x\n", (int) (l+pci_shmemaddr));
857#endif
858 return(l + pci_shmemaddr);
859}
860
861/*****************************************************************************/
862
863void *pci_bus_to_virt(unsigned long address)
864{
865 unsigned long l;
866
867#ifdef DEBUGIO
868 printk(KERN_DEBUG "pci_bus_to_virt(address=%x)", (int) address);
869#endif
870
871 l = address - pci_shmemaddr;
872#ifdef DEBUGIO
873 printk(KERN_DEBUG "=%x\n", (int) (address + COMEM_BASE));
874#endif
875 return((void *) (address + COMEM_BASE));
876}
877
878/*****************************************************************************/
879
880void pci_bmcpyto(void *dst, void *src, int len)
881{
882 unsigned long *dp, *sp, val;
883 unsigned char *dcp, *scp;
884 int i, j;
885
886#ifdef DEBUGIO
887 printk(KERN_DEBUG "pci_bmcpyto(dst=%x,src=%x,len=%d)\n", (int)dst, (int)src, len);
888#endif
889
890 dp = (unsigned long *) dst;
891 sp = (unsigned long *) src;
892 i = len >> 2;
893
894#if 0
895 printk(KERN_INFO "DATA:");
896 scp = (unsigned char *) sp;
897 for (i = 0; (i < len); i++) {
898 if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
899 printk(KERN_INFO "%02x ", *scp++);
900 }
901 printk(KERN_INFO "\n");
902#endif
903
904 for (j = 0; (i >= 0); i--, j++) {
905 val = *sp++;
906 val = (val << 24) | ((val & 0x0000ff00) << 8) |
907 ((val & 0x00ff0000) >> 8) | (val >> 24);
908 *dp++ = val;
909 }
910
911 if (len & 0x3) {
912 dcp = (unsigned char *) dp;
913 scp = ((unsigned char *) sp) + 3;
914 for (i = 0; (i < (len & 0x3)); i++)
915 *dcp++ = *scp--;
916 }
917}
918
919/*****************************************************************************/
920
921void pci_bmcpyfrom(void *dst, void *src, int len)
922{
923 unsigned long *dp, *sp, val;
924 unsigned char *dcp, *scp;
925 int i;
926
927#ifdef DEBUGIO
928 printk(KERN_DEBUG "pci_bmcpyfrom(dst=%x,src=%x,len=%d)\n",(int)dst,(int)src,len);
929#endif
930
931 dp = (unsigned long *) dst;
932 sp = (unsigned long *) src;
933 i = len >> 2;
934
935 for (; (i >= 0); i--) {
936 val = *sp++;
937 val = (val << 24) | ((val & 0x0000ff00) << 8) |
938 ((val & 0x00ff0000) >> 8) | (val >> 24);
939 *dp++ = val;
940 }
941
942 if (len & 0x3) {
943 dcp = ((unsigned char *) dp) + 3;
944 scp = (unsigned char *) sp;
945 for (i = 0; (i < (len & 0x3)); i++)
946 *dcp++ = *scp--;
947 }
948
949#if 0
950 printk(KERN_INFO "DATA:");
951 dcp = (unsigned char *) dst;
952 for (i = 0; (i < len); i++) {
953 if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
954 printk(KERN_INFO "%02x ", *dcp++);
955 }
956 printk(KERN_INFO "\n");
957#endif
958}
959
960/*****************************************************************************/
961
962void *pci_alloc_consistent(struct pci_dev *dev, size_t size, dma_addr_t *dma_addr)
963{
964 void *mp;
965 if ((mp = pci_bmalloc(size)) != NULL) {
966 dma_addr = mp - (COMEM_BASE + COMEM_SHMEM);
967 return(mp);
968 }
969 *dma_addr = (dma_addr_t) NULL;
970 return(NULL);
971}
972
973/*****************************************************************************/
974
975void pci_free_consistent(struct pci_dev *dev, size_t size, void *cpu_addr, dma_addr_t dma_addr)
976{
977 pci_bmfree(cpu_addr, size);
978}
979
980/*****************************************************************************/
diff --git a/arch/m68knommu/kernel/signal.c b/arch/m68knommu/kernel/signal.c
index bbfcae9e52b4..5ab6a04af14e 100644
--- a/arch/m68knommu/kernel/signal.c
+++ b/arch/m68knommu/kernel/signal.c
@@ -279,6 +279,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, void *fp,
279 struct sigcontext context; 279 struct sigcontext context;
280 int err = 0; 280 int err = 0;
281 281
282 /* Always make any pending restarted system calls return -EINTR */
283 current_thread_info()->restart_block.fn = do_no_restart_syscall;
284
282 /* get previous context */ 285 /* get previous context */
283 if (copy_from_user(&context, usc, sizeof(context))) 286 if (copy_from_user(&context, usc, sizeof(context)))
284 goto badframe; 287 goto badframe;
@@ -316,6 +319,9 @@ rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw,
316 unsigned long usp; 319 unsigned long usp;
317 int err; 320 int err;
318 321
322 /* Always make any pending restarted system calls return -EINTR */
323 current_thread_info()->restart_block.fn = do_no_restart_syscall;
324
319 err = __get_user(temp, &uc->uc_mcontext.version); 325 err = __get_user(temp, &uc->uc_mcontext.version);
320 if (temp != MCONTEXT_VERSION) 326 if (temp != MCONTEXT_VERSION)
321 goto badframe; 327 goto badframe;
@@ -692,6 +698,15 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler)
692 regs->d0 = -EINTR; 698 regs->d0 = -EINTR;
693 break; 699 break;
694 700
701 case -ERESTART_RESTARTBLOCK:
702 if (!has_handler) {
703 regs->d0 = __NR_restart_syscall;
704 regs->pc -= 2;
705 break;
706 }
707 regs->d0 = -EINTR;
708 break;
709
695 case -ERESTARTSYS: 710 case -ERESTARTSYS:
696 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { 711 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) {
697 regs->d0 = -EINTR; 712 regs->d0 = -EINTR;
diff --git a/arch/m68knommu/kernel/syscalltable.S b/arch/m68knommu/kernel/syscalltable.S
index 812f8d8b7a85..1017e76f3711 100644
--- a/arch/m68knommu/kernel/syscalltable.S
+++ b/arch/m68knommu/kernel/syscalltable.S
@@ -18,7 +18,7 @@
18.text 18.text
19ALIGN 19ALIGN
20ENTRY(sys_call_table) 20ENTRY(sys_call_table)
21 .long sys_ni_syscall /* 0 - old "setup()" system call*/ 21 .long sys_restart_syscall /* 0 - old "setup()" system call */
22 .long sys_exit 22 .long sys_exit
23 .long sys_fork 23 .long sys_fork
24 .long sys_read 24 .long sys_read
@@ -107,7 +107,7 @@ ENTRY(sys_call_table)
107 .long sys_uselib 107 .long sys_uselib
108 .long sys_ni_syscall /* sys_swapon */ 108 .long sys_ni_syscall /* sys_swapon */
109 .long sys_reboot 109 .long sys_reboot
110 .long old_readdir 110 .long sys_old_readdir
111 .long old_mmap /* 90 */ 111 .long old_mmap /* 90 */
112 .long sys_munmap 112 .long sys_munmap
113 .long sys_truncate 113 .long sys_truncate
diff --git a/arch/m68knommu/platform/5206e/config.c b/arch/m68knommu/platform/5206e/config.c
index d01a5d2b7557..db902540bf2c 100644
--- a/arch/m68knommu/platform/5206e/config.c
+++ b/arch/m68knommu/platform/5206e/config.c
@@ -17,6 +17,7 @@
17#include <asm/coldfire.h> 17#include <asm/coldfire.h>
18#include <asm/mcfsim.h> 18#include <asm/mcfsim.h>
19#include <asm/mcfdma.h> 19#include <asm/mcfdma.h>
20#include <asm/mcfuart.h>
20 21
21/***************************************************************************/ 22/***************************************************************************/
22 23
diff --git a/arch/m68knommu/platform/528x/config.c b/arch/m68knommu/platform/528x/config.c
index dfdb5c2ed8e6..44baeb225dc7 100644
--- a/arch/m68knommu/platform/528x/config.c
+++ b/arch/m68knommu/platform/528x/config.c
@@ -24,7 +24,6 @@
24#include <asm/coldfire.h> 24#include <asm/coldfire.h>
25#include <asm/mcfsim.h> 25#include <asm/mcfsim.h>
26#include <asm/mcfuart.h> 26#include <asm/mcfuart.h>
27#include <asm/mcfqspi.h>
28 27
29#ifdef CONFIG_MTD_PARTITIONS 28#ifdef CONFIG_MTD_PARTITIONS
30#include <linux/mtd/partitions.h> 29#include <linux/mtd/partitions.h>
@@ -33,233 +32,6 @@
33/***************************************************************************/ 32/***************************************************************************/
34 33
35void coldfire_reset(void); 34void coldfire_reset(void);
36static void coldfire_qspi_cs_control(u8 cs, u8 command);
37
38/***************************************************************************/
39
40#if defined(CONFIG_SPI)
41
42#if defined(CONFIG_WILDFIRE)
43#define SPI_NUM_CHIPSELECTS 0x02
44#define SPI_PAR_VAL 0x07 /* Enable DIN, DOUT, CLK */
45#define SPI_CS_MASK 0x18
46
47#define FLASH_BLOCKSIZE (1024*64)
48#define FLASH_NUMBLOCKS 16
49#define FLASH_TYPE "m25p80"
50
51#define M25P80_CS 0
52#define MMC_CS 1
53
54#ifdef CONFIG_MTD_PARTITIONS
55static struct mtd_partition stm25p_partitions[] = {
56 /* sflash */
57 [0] = {
58 .name = "stm25p80",
59 .offset = 0x00000000,
60 .size = FLASH_BLOCKSIZE * FLASH_NUMBLOCKS,
61 .mask_flags = 0
62 }
63};
64
65#endif
66
67#elif defined(CONFIG_WILDFIREMOD)
68
69#define SPI_NUM_CHIPSELECTS 0x08
70#define SPI_PAR_VAL 0x07 /* Enable DIN, DOUT, CLK */
71#define SPI_CS_MASK 0x78
72
73#define FLASH_BLOCKSIZE (1024*64)
74#define FLASH_NUMBLOCKS 64
75#define FLASH_TYPE "m25p32"
76/* Reserve 1M for the kernel parition */
77#define FLASH_KERNEL_SIZE (1024 * 1024)
78
79#define M25P80_CS 5
80#define MMC_CS 6
81
82#ifdef CONFIG_MTD_PARTITIONS
83static struct mtd_partition stm25p_partitions[] = {
84 /* sflash */
85 [0] = {
86 .name = "kernel",
87 .offset = FLASH_BLOCKSIZE * FLASH_NUMBLOCKS - FLASH_KERNEL_SIZE,
88 .size = FLASH_KERNEL_SIZE,
89 .mask_flags = 0
90 },
91 [1] = {
92 .name = "image",
93 .offset = 0x00000000,
94 .size = FLASH_BLOCKSIZE * FLASH_NUMBLOCKS - FLASH_KERNEL_SIZE,
95 .mask_flags = 0
96 },
97 [2] = {
98 .name = "all",
99 .offset = 0x00000000,
100 .size = FLASH_BLOCKSIZE * FLASH_NUMBLOCKS,
101 .mask_flags = 0
102 }
103};
104#endif
105
106#else
107#define SPI_NUM_CHIPSELECTS 0x04
108#define SPI_PAR_VAL 0x7F /* Enable DIN, DOUT, CLK, CS0 - CS4 */
109#endif
110
111#ifdef MMC_CS
112static struct coldfire_spi_chip flash_chip_info = {
113 .mode = SPI_MODE_0,
114 .bits_per_word = 16,
115 .del_cs_to_clk = 17,
116 .del_after_trans = 1,
117 .void_write_data = 0
118};
119
120static struct coldfire_spi_chip mmc_chip_info = {
121 .mode = SPI_MODE_0,
122 .bits_per_word = 16,
123 .del_cs_to_clk = 17,
124 .del_after_trans = 1,
125 .void_write_data = 0xFFFF
126};
127#endif
128
129#ifdef M25P80_CS
130static struct flash_platform_data stm25p80_platform_data = {
131 .name = "ST M25P80 SPI Flash chip",
132#ifdef CONFIG_MTD_PARTITIONS
133 .parts = stm25p_partitions,
134 .nr_parts = sizeof(stm25p_partitions) / sizeof(*stm25p_partitions),
135#endif
136 .type = FLASH_TYPE
137};
138#endif
139
140static struct spi_board_info spi_board_info[] __initdata = {
141#ifdef M25P80_CS
142 {
143 .modalias = "m25p80",
144 .max_speed_hz = 16000000,
145 .bus_num = 1,
146 .chip_select = M25P80_CS,
147 .platform_data = &stm25p80_platform_data,
148 .controller_data = &flash_chip_info
149 },
150#endif
151#ifdef MMC_CS
152 {
153 .modalias = "mmc_spi",
154 .max_speed_hz = 16000000,
155 .bus_num = 1,
156 .chip_select = MMC_CS,
157 .controller_data = &mmc_chip_info
158 }
159#endif
160};
161
162static struct coldfire_spi_master coldfire_master_info = {
163 .bus_num = 1,
164 .num_chipselect = SPI_NUM_CHIPSELECTS,
165 .irq_source = MCF5282_QSPI_IRQ_SOURCE,
166 .irq_vector = MCF5282_QSPI_IRQ_VECTOR,
167 .irq_mask = ((0x01 << MCF5282_QSPI_IRQ_SOURCE) | 0x01),
168 .irq_lp = 0x2B, /* Level 5 and Priority 3 */
169 .par_val = SPI_PAR_VAL,
170 .cs_control = coldfire_qspi_cs_control,
171};
172
173static struct resource coldfire_spi_resources[] = {
174 [0] = {
175 .name = "qspi-par",
176 .start = MCF5282_QSPI_PAR,
177 .end = MCF5282_QSPI_PAR,
178 .flags = IORESOURCE_MEM
179 },
180
181 [1] = {
182 .name = "qspi-module",
183 .start = MCF5282_QSPI_QMR,
184 .end = MCF5282_QSPI_QMR + 0x18,
185 .flags = IORESOURCE_MEM
186 },
187
188 [2] = {
189 .name = "qspi-int-level",
190 .start = MCF5282_INTC0 + MCFINTC_ICR0 + MCF5282_QSPI_IRQ_SOURCE,
191 .end = MCF5282_INTC0 + MCFINTC_ICR0 + MCF5282_QSPI_IRQ_SOURCE,
192 .flags = IORESOURCE_MEM
193 },
194
195 [3] = {
196 .name = "qspi-int-mask",
197 .start = MCF5282_INTC0 + MCFINTC_IMRL,
198 .end = MCF5282_INTC0 + MCFINTC_IMRL,
199 .flags = IORESOURCE_MEM
200 }
201};
202
203static struct platform_device coldfire_spi = {
204 .name = "spi_coldfire",
205 .id = -1,
206 .resource = coldfire_spi_resources,
207 .num_resources = ARRAY_SIZE(coldfire_spi_resources),
208 .dev = {
209 .platform_data = &coldfire_master_info,
210 }
211};
212
213static void coldfire_qspi_cs_control(u8 cs, u8 command)
214{
215 u8 cs_bit = ((0x01 << cs) << 3) & SPI_CS_MASK;
216
217#if defined(CONFIG_WILDFIRE)
218 u8 cs_mask = ~(((0x01 << cs) << 3) & SPI_CS_MASK);
219#endif
220#if defined(CONFIG_WILDFIREMOD)
221 u8 cs_mask = (cs << 3) & SPI_CS_MASK;
222#endif
223
224 /*
225 * Don't do anything if the chip select is not
226 * one of the port qs pins.
227 */
228 if (command & QSPI_CS_INIT) {
229#if defined(CONFIG_WILDFIRE)
230 MCF5282_GPIO_DDRQS |= cs_bit;
231 MCF5282_GPIO_PQSPAR &= ~cs_bit;
232#endif
233
234#if defined(CONFIG_WILDFIREMOD)
235 MCF5282_GPIO_DDRQS |= SPI_CS_MASK;
236 MCF5282_GPIO_PQSPAR &= ~SPI_CS_MASK;
237#endif
238 }
239
240 if (command & QSPI_CS_ASSERT) {
241 MCF5282_GPIO_PORTQS &= ~SPI_CS_MASK;
242 MCF5282_GPIO_PORTQS |= cs_mask;
243 } else if (command & QSPI_CS_DROP) {
244 MCF5282_GPIO_PORTQS |= SPI_CS_MASK;
245 }
246}
247
248static int __init spi_dev_init(void)
249{
250 int retval;
251
252 retval = platform_device_register(&coldfire_spi);
253 if (retval < 0)
254 return retval;
255
256 if (ARRAY_SIZE(spi_board_info))
257 retval = spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
258
259 return retval;
260}
261
262#endif /* CONFIG_SPI */
263 35
264/***************************************************************************/ 36/***************************************************************************/
265 37
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c
index 11cff6625dcc..724faf05852a 100644
--- a/arch/m68knommu/platform/5307/config.c
+++ b/arch/m68knommu/platform/5307/config.c
@@ -123,7 +123,7 @@ void __init config_BSP(char *commandp, int size)
123{ 123{
124 mcf_setimr(MCFSIM_IMR_MASKALL); 124 mcf_setimr(MCFSIM_IMR_MASKALL);
125 125
126#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ 126#if defined(CONFIG_NETtel) || \
127 defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA) 127 defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA)
128 /* Copy command line from FLASH to local buffer... */ 128 /* Copy command line from FLASH to local buffer... */
129 memcpy(commandp, (char *) 0xf0004000, size); 129 memcpy(commandp, (char *) 0xf0004000, size);
diff --git a/arch/m68knommu/platform/532x/config.c b/arch/m68knommu/platform/532x/config.c
index 4f44b632045b..a347623d6ee6 100644
--- a/arch/m68knommu/platform/532x/config.c
+++ b/arch/m68knommu/platform/532x/config.c
@@ -41,15 +41,15 @@ extern unsigned int mcf_timerlevel;
41 41
42static struct mcf_platform_uart m532x_uart_platform[] = { 42static struct mcf_platform_uart m532x_uart_platform[] = {
43 { 43 {
44 .mapbase = MCF_MBAR + MCFUART_BASE1, 44 .mapbase = MCFUART_BASE1,
45 .irq = MCFINT_VECBASE + MCFINT_UART0, 45 .irq = MCFINT_VECBASE + MCFINT_UART0,
46 }, 46 },
47 { 47 {
48 .mapbase = MCF_MBAR + MCFUART_BASE2, 48 .mapbase = MCFUART_BASE2,
49 .irq = MCFINT_VECBASE + MCFINT_UART1, 49 .irq = MCFINT_VECBASE + MCFINT_UART1,
50 }, 50 },
51 { 51 {
52 .mapbase = MCF_MBAR + MCFUART_BASE3, 52 .mapbase = MCFUART_BASE3,
53 .irq = MCFINT_VECBASE + MCFINT_UART2, 53 .irq = MCFINT_VECBASE + MCFINT_UART2,
54 }, 54 },
55 { }, 55 { },
@@ -108,7 +108,7 @@ void mcf_settimericr(unsigned int timer, unsigned int level)
108 default: irq = 32; icr = MCFSIM_ICR_TIMER1; break; 108 default: irq = 32; icr = MCFSIM_ICR_TIMER1; break;
109 } 109 }
110 110
111 icrp = (volatile unsigned char *) (MCF_MBAR + icr); 111 icrp = (volatile unsigned char *) (icr);
112 *icrp = level; 112 *icrp = level;
113 mcf_enable_irq0(irq); 113 mcf_enable_irq0(irq);
114 } 114 }
diff --git a/arch/m68knommu/platform/coldfire/entry.S b/arch/m68knommu/platform/coldfire/entry.S
index 1e3c0dcbd7ac..3b471c0da24a 100644
--- a/arch/m68knommu/platform/coldfire/entry.S
+++ b/arch/m68knommu/platform/coldfire/entry.S
@@ -215,19 +215,8 @@ ENTRY(fasthandler)
215 RESTORE_LOCAL 215 RESTORE_LOCAL
216 216
217ENTRY(ret_from_interrupt) 217ENTRY(ret_from_interrupt)
218 moveb %sp@(PT_SR),%d0 218 /* the fasthandler is confusing me, haven't seen any user */
219 andl #0x7,%d0 219 jmp ret_from_exception
220 jeq 1f
221
222 RESTORE_ALL
223
2241:
225 /* check if we need to do software interrupts */
226 movel irq_stat+CPUSTAT_SOFTIRQ_PENDING,%d0
227 jeq ret_from_exception
228
229 pea ret_from_exception
230 jmp do_softirq
231 220
232/* 221/*
233 * Beware - when entering resume, prev (the current task) is 222 * Beware - when entering resume, prev (the current task) is
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 52c80c2a57f2..e61465a18c7e 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -351,7 +351,7 @@ config SGI_IP27
351 select ARC64 351 select ARC64
352 select BOOT_ELF64 352 select BOOT_ELF64
353 select DEFAULT_SGI_PARTITION 353 select DEFAULT_SGI_PARTITION
354 select DMA_IP27 354 select DMA_COHERENT
355 select SYS_HAS_EARLY_PRINTK 355 select SYS_HAS_EARLY_PRINTK
356 select HW_HAS_PCI 356 select HW_HAS_PCI
357 select NR_CPUS_DEFAULT_64 357 select NR_CPUS_DEFAULT_64
@@ -603,7 +603,7 @@ config CAVIUM_OCTEON_SIMULATOR
603 select SYS_SUPPORTS_64BIT_KERNEL 603 select SYS_SUPPORTS_64BIT_KERNEL
604 select SYS_SUPPORTS_BIG_ENDIAN 604 select SYS_SUPPORTS_BIG_ENDIAN
605 select SYS_SUPPORTS_HIGHMEM 605 select SYS_SUPPORTS_HIGHMEM
606 select CPU_CAVIUM_OCTEON 606 select SYS_HAS_CPU_CAVIUM_OCTEON
607 help 607 help
608 The Octeon simulator is software performance model of the Cavium 608 The Octeon simulator is software performance model of the Cavium
609 Octeon Processor. It supports simulating Octeon processors on x86 609 Octeon Processor. It supports simulating Octeon processors on x86
@@ -618,7 +618,7 @@ config CAVIUM_OCTEON_REFERENCE_BOARD
618 select SYS_SUPPORTS_BIG_ENDIAN 618 select SYS_SUPPORTS_BIG_ENDIAN
619 select SYS_SUPPORTS_HIGHMEM 619 select SYS_SUPPORTS_HIGHMEM
620 select SYS_HAS_EARLY_PRINTK 620 select SYS_HAS_EARLY_PRINTK
621 select CPU_CAVIUM_OCTEON 621 select SYS_HAS_CPU_CAVIUM_OCTEON
622 select SWAP_IO_SPACE 622 select SWAP_IO_SPACE
623 help 623 help
624 This option supports all of the Octeon reference boards from Cavium 624 This option supports all of the Octeon reference boards from Cavium
@@ -761,9 +761,6 @@ config CFE
761config DMA_COHERENT 761config DMA_COHERENT
762 bool 762 bool
763 763
764config DMA_IP27
765 bool
766
767config DMA_NONCOHERENT 764config DMA_NONCOHERENT
768 bool 765 bool
769 select DMA_NEED_PCI_MAP_STATE 766 select DMA_NEED_PCI_MAP_STATE
@@ -1237,6 +1234,7 @@ config CPU_SB1
1237 1234
1238config CPU_CAVIUM_OCTEON 1235config CPU_CAVIUM_OCTEON
1239 bool "Cavium Octeon processor" 1236 bool "Cavium Octeon processor"
1237 depends on SYS_HAS_CPU_CAVIUM_OCTEON
1240 select IRQ_CPU 1238 select IRQ_CPU
1241 select IRQ_CPU_OCTEON 1239 select IRQ_CPU_OCTEON
1242 select CPU_HAS_PREFETCH 1240 select CPU_HAS_PREFETCH
@@ -1317,6 +1315,9 @@ config SYS_HAS_CPU_RM9000
1317config SYS_HAS_CPU_SB1 1315config SYS_HAS_CPU_SB1
1318 bool 1316 bool
1319 1317
1318config SYS_HAS_CPU_CAVIUM_OCTEON
1319 bool
1320
1320# 1321#
1321# CPU may reorder R->R, R->W, W->R, W->W 1322# CPU may reorder R->R, R->W, W->R, W->W
1322# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC 1323# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
@@ -1368,7 +1369,7 @@ config CPU_SUPPORTS_64BIT_KERNEL
1368# 1369#
1369config HARDWARE_WATCHPOINTS 1370config HARDWARE_WATCHPOINTS
1370 bool 1371 bool
1371 default y if CPU_MIPS32 || CPU_MIPS64 1372 default y if CPU_MIPSR1 || CPU_MIPSR2
1372 1373
1373menu "Kernel type" 1374menu "Kernel type"
1374 1375
@@ -1390,6 +1391,7 @@ config 32BIT
1390config 64BIT 1391config 64BIT
1391 bool "64-bit kernel" 1392 bool "64-bit kernel"
1392 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL 1393 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1394 select HAVE_SYSCALL_WRAPPERS
1393 help 1395 help
1394 Select this option if you want to build a 64-bit kernel. 1396 Select this option if you want to build a 64-bit kernel.
1395 1397
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c
index 32880146cbc1..f58d4ffb8945 100644
--- a/arch/mips/alchemy/common/time.c
+++ b/arch/mips/alchemy/common/time.c
@@ -89,7 +89,7 @@ static struct clock_event_device au1x_rtcmatch2_clockdev = {
89 .irq = AU1000_RTC_MATCH2_INT, 89 .irq = AU1000_RTC_MATCH2_INT,
90 .set_next_event = au1x_rtcmatch2_set_next_event, 90 .set_next_event = au1x_rtcmatch2_set_next_event,
91 .set_mode = au1x_rtcmatch2_set_mode, 91 .set_mode = au1x_rtcmatch2_set_mode,
92 .cpumask = CPU_MASK_ALL, 92 .cpumask = CPU_MASK_ALL_PTR,
93}; 93};
94 94
95static struct irqaction au1x_rtcmatch2_irqaction = { 95static struct irqaction au1x_rtcmatch2_irqaction = {
@@ -118,7 +118,7 @@ void __init plat_time_init(void)
118 * setup counter 1 (RTC) to tick at full speed 118 * setup counter 1 (RTC) to tick at full speed
119 */ 119 */
120 t = 0xffffff; 120 t = 0xffffff;
121 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S) && t--) 121 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S) && --t)
122 asm volatile ("nop"); 122 asm volatile ("nop");
123 if (!t) 123 if (!t)
124 goto cntr_err; 124 goto cntr_err;
@@ -127,7 +127,7 @@ void __init plat_time_init(void)
127 au_sync(); 127 au_sync();
128 128
129 t = 0xffffff; 129 t = 0xffffff;
130 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && t--) 130 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && --t)
131 asm volatile ("nop"); 131 asm volatile ("nop");
132 if (!t) 132 if (!t)
133 goto cntr_err; 133 goto cntr_err;
@@ -135,7 +135,7 @@ void __init plat_time_init(void)
135 au_sync(); 135 au_sync();
136 136
137 t = 0xffffff; 137 t = 0xffffff;
138 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && t--) 138 while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && --t)
139 asm volatile ("nop"); 139 asm volatile ("nop");
140 if (!t) 140 if (!t)
141 goto cntr_err; 141 goto cntr_err;
diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
index e085feddb4a4..5f4e49ba4713 100644
--- a/arch/mips/cavium-octeon/setup.c
+++ b/arch/mips/cavium-octeon/setup.c
@@ -15,13 +15,11 @@
15#include <linux/serial.h> 15#include <linux/serial.h>
16#include <linux/types.h> 16#include <linux/types.h>
17#include <linux/string.h> /* for memset */ 17#include <linux/string.h> /* for memset */
18#include <linux/serial.h>
19#include <linux/tty.h> 18#include <linux/tty.h>
20#include <linux/time.h> 19#include <linux/time.h>
21#include <linux/platform_device.h> 20#include <linux/platform_device.h>
22#include <linux/serial_core.h> 21#include <linux/serial_core.h>
23#include <linux/serial_8250.h> 22#include <linux/serial_8250.h>
24#include <linux/string.h>
25 23
26#include <asm/processor.h> 24#include <asm/processor.h>
27#include <asm/reboot.h> 25#include <asm/reboot.h>
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index a3bbbf067a3b..783da855a2e3 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_defconfig
@@ -959,7 +959,7 @@ CONFIG_I2C_SIBYTE=y
959# Miscellaneous I2C Chip support 959# Miscellaneous I2C Chip support
960# 960#
961# CONFIG_DS1682 is not set 961# CONFIG_DS1682 is not set
962CONFIG_SENSORS_EEPROM=y 962CONFIG_EEPROM_LEGACY=y
963CONFIG_SENSORS_PCF8574=y 963CONFIG_SENSORS_PCF8574=y
964# CONFIG_PCF8575 is not set 964# CONFIG_PCF8575 is not set
965CONFIG_SENSORS_PCF8591=y 965CONFIG_SENSORS_PCF8591=y
diff --git a/arch/mips/configs/emma2rh_defconfig b/arch/mips/configs/emma2rh_defconfig
index 634bb4eaf132..fea9bc9865a3 100644
--- a/arch/mips/configs/emma2rh_defconfig
+++ b/arch/mips/configs/emma2rh_defconfig
@@ -996,7 +996,7 @@ CONFIG_I2C_CHARDEV=y
996# 996#
997# CONFIG_SENSORS_DS1337 is not set 997# CONFIG_SENSORS_DS1337 is not set
998# CONFIG_SENSORS_DS1374 is not set 998# CONFIG_SENSORS_DS1374 is not set
999# CONFIG_SENSORS_EEPROM is not set 999# CONFIG_EEPROM_LEGACY is not set
1000# CONFIG_SENSORS_PCF8574 is not set 1000# CONFIG_SENSORS_PCF8574 is not set
1001# CONFIG_SENSORS_PCA9539 is not set 1001# CONFIG_SENSORS_PCA9539 is not set
1002# CONFIG_SENSORS_PCF8591 is not set 1002# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/mips/configs/fulong_defconfig b/arch/mips/configs/fulong_defconfig
index b6698a232ae9..786a9bc9a696 100644
--- a/arch/mips/configs/fulong_defconfig
+++ b/arch/mips/configs/fulong_defconfig
@@ -1006,8 +1006,8 @@ CONFIG_I2C_VIAPRO=m
1006# Miscellaneous I2C Chip support 1006# Miscellaneous I2C Chip support
1007# 1007#
1008# CONFIG_DS1682 is not set 1008# CONFIG_DS1682 is not set
1009# CONFIG_AT24 is not set 1009# CONFIG_EEPROM_AT24 is not set
1010# CONFIG_SENSORS_EEPROM is not set 1010# CONFIG_EEPROM_LEGACY is not set
1011# CONFIG_SENSORS_PCF8574 is not set 1011# CONFIG_SENSORS_PCF8574 is not set
1012# CONFIG_PCF8575 is not set 1012# CONFIG_PCF8575 is not set
1013# CONFIG_SENSORS_PCA9539 is not set 1013# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index 34ea319be94c..f2baea3039bb 100644
--- a/arch/mips/configs/ip27_defconfig
+++ b/arch/mips/configs/ip27_defconfig
@@ -53,7 +53,7 @@ CONFIG_GENERIC_TIME=y
53CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 53CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
54CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 54CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
55CONFIG_ARC=y 55CONFIG_ARC=y
56CONFIG_DMA_IP27=y 56CONFIG_DMA_COHERENT=y
57CONFIG_EARLY_PRINTK=y 57CONFIG_EARLY_PRINTK=y
58CONFIG_SYS_HAS_EARLY_PRINTK=y 58CONFIG_SYS_HAS_EARLY_PRINTK=y
59# CONFIG_NO_IOPORT is not set 59# CONFIG_NO_IOPORT is not set
diff --git a/arch/mips/configs/msp71xx_defconfig b/arch/mips/configs/msp71xx_defconfig
index dd13db4d0fb9..84d6491b3d41 100644
--- a/arch/mips/configs/msp71xx_defconfig
+++ b/arch/mips/configs/msp71xx_defconfig
@@ -929,7 +929,7 @@ CONFIG_I2C_PMCMSP=y
929# 929#
930# CONFIG_SENSORS_DS1337 is not set 930# CONFIG_SENSORS_DS1337 is not set
931# CONFIG_SENSORS_DS1374 is not set 931# CONFIG_SENSORS_DS1374 is not set
932# CONFIG_SENSORS_EEPROM is not set 932# CONFIG_EEPROM_LEGACY is not set
933# CONFIG_SENSORS_PCF8574 is not set 933# CONFIG_SENSORS_PCF8574 is not set
934CONFIG_PMCTWILED=y 934CONFIG_PMCTWILED=y
935# CONFIG_SENSORS_PCA9539 is not set 935# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig
index db9272677aa2..8426d3b9501c 100644
--- a/arch/mips/configs/mtx1_defconfig
+++ b/arch/mips/configs/mtx1_defconfig
@@ -1845,7 +1845,7 @@ CONFIG_I2C_VOODOO3=m
1845CONFIG_SENSORS_DS1337=m 1845CONFIG_SENSORS_DS1337=m
1846CONFIG_SENSORS_DS1374=m 1846CONFIG_SENSORS_DS1374=m
1847# CONFIG_DS1682 is not set 1847# CONFIG_DS1682 is not set
1848CONFIG_SENSORS_EEPROM=m 1848CONFIG_EEPROM_LEGACY=m
1849CONFIG_SENSORS_PCF8574=m 1849CONFIG_SENSORS_PCF8574=m
1850CONFIG_SENSORS_PCA9539=m 1850CONFIG_SENSORS_PCA9539=m
1851CONFIG_SENSORS_PCF8591=m 1851CONFIG_SENSORS_PCF8591=m
@@ -1872,7 +1872,7 @@ CONFIG_SPI_BUTTERFLY=m
1872# 1872#
1873# SPI Protocol Masters 1873# SPI Protocol Masters
1874# 1874#
1875# CONFIG_SPI_AT25 is not set 1875# CONFIG_EEPROM_AT25 is not set
1876# CONFIG_SPI_SPIDEV is not set 1876# CONFIG_SPI_SPIDEV is not set
1877# CONFIG_SPI_TLE62X0 is not set 1877# CONFIG_SPI_TLE62X0 is not set
1878CONFIG_W1=m 1878CONFIG_W1=m
diff --git a/arch/mips/configs/pnx8335-stb225_defconfig b/arch/mips/configs/pnx8335-stb225_defconfig
index d9536522cff5..2728caa6c2fb 100644
--- a/arch/mips/configs/pnx8335-stb225_defconfig
+++ b/arch/mips/configs/pnx8335-stb225_defconfig
@@ -640,8 +640,8 @@ CONFIG_I2C_CHARDEV=y
640# Miscellaneous I2C Chip support 640# Miscellaneous I2C Chip support
641# 641#
642# CONFIG_DS1682 is not set 642# CONFIG_DS1682 is not set
643# CONFIG_AT24 is not set 643# CONFIG_EEPROM_AT24 is not set
644# CONFIG_SENSORS_EEPROM is not set 644# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_PCF8575 is not set 646# CONFIG_PCF8575 is not set
647# CONFIG_SENSORS_PCA9539 is not set 647# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/rbtx49xx_defconfig b/arch/mips/configs/rbtx49xx_defconfig
index c7c0864b8ce9..83d5c58662c8 100644
--- a/arch/mips/configs/rbtx49xx_defconfig
+++ b/arch/mips/configs/rbtx49xx_defconfig
@@ -522,7 +522,7 @@ CONFIG_SPI_TXX9=y
522# 522#
523# SPI Protocol Masters 523# SPI Protocol Masters
524# 524#
525CONFIG_SPI_AT25=y 525CONFIG_EEPROM_AT25=y
526# CONFIG_SPI_TLE62X0 is not set 526# CONFIG_SPI_TLE62X0 is not set
527CONFIG_HAVE_GPIO_LIB=y 527CONFIG_HAVE_GPIO_LIB=y
528 528
diff --git a/arch/mips/include/asm/Kbuild b/arch/mips/include/asm/Kbuild
index 023866c0c102..7897f05e3165 100644
--- a/arch/mips/include/asm/Kbuild
+++ b/arch/mips/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3header-y += cachectl.h sgidefs.h sysmips.h 3header-y += cachectl.h sgidefs.h sysmips.h
4header-y += swab.h
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
index c996c3b4d074..1b332e15ab52 100644
--- a/arch/mips/include/asm/atomic.h
+++ b/arch/mips/include/asm/atomic.h
@@ -50,7 +50,7 @@
50static __inline__ void atomic_add(int i, atomic_t * v) 50static __inline__ void atomic_add(int i, atomic_t * v)
51{ 51{
52 if (cpu_has_llsc && R10000_LLSC_WAR) { 52 if (cpu_has_llsc && R10000_LLSC_WAR) {
53 unsigned long temp; 53 int temp;
54 54
55 __asm__ __volatile__( 55 __asm__ __volatile__(
56 " .set mips3 \n" 56 " .set mips3 \n"
@@ -62,7 +62,7 @@ static __inline__ void atomic_add(int i, atomic_t * v)
62 : "=&r" (temp), "=m" (v->counter) 62 : "=&r" (temp), "=m" (v->counter)
63 : "Ir" (i), "m" (v->counter)); 63 : "Ir" (i), "m" (v->counter));
64 } else if (cpu_has_llsc) { 64 } else if (cpu_has_llsc) {
65 unsigned long temp; 65 int temp;
66 66
67 __asm__ __volatile__( 67 __asm__ __volatile__(
68 " .set mips3 \n" 68 " .set mips3 \n"
@@ -95,7 +95,7 @@ static __inline__ void atomic_add(int i, atomic_t * v)
95static __inline__ void atomic_sub(int i, atomic_t * v) 95static __inline__ void atomic_sub(int i, atomic_t * v)
96{ 96{
97 if (cpu_has_llsc && R10000_LLSC_WAR) { 97 if (cpu_has_llsc && R10000_LLSC_WAR) {
98 unsigned long temp; 98 int temp;
99 99
100 __asm__ __volatile__( 100 __asm__ __volatile__(
101 " .set mips3 \n" 101 " .set mips3 \n"
@@ -107,7 +107,7 @@ static __inline__ void atomic_sub(int i, atomic_t * v)
107 : "=&r" (temp), "=m" (v->counter) 107 : "=&r" (temp), "=m" (v->counter)
108 : "Ir" (i), "m" (v->counter)); 108 : "Ir" (i), "m" (v->counter));
109 } else if (cpu_has_llsc) { 109 } else if (cpu_has_llsc) {
110 unsigned long temp; 110 int temp;
111 111
112 __asm__ __volatile__( 112 __asm__ __volatile__(
113 " .set mips3 \n" 113 " .set mips3 \n"
@@ -135,12 +135,12 @@ static __inline__ void atomic_sub(int i, atomic_t * v)
135 */ 135 */
136static __inline__ int atomic_add_return(int i, atomic_t * v) 136static __inline__ int atomic_add_return(int i, atomic_t * v)
137{ 137{
138 unsigned long result; 138 int result;
139 139
140 smp_llsc_mb(); 140 smp_llsc_mb();
141 141
142 if (cpu_has_llsc && R10000_LLSC_WAR) { 142 if (cpu_has_llsc && R10000_LLSC_WAR) {
143 unsigned long temp; 143 int temp;
144 144
145 __asm__ __volatile__( 145 __asm__ __volatile__(
146 " .set mips3 \n" 146 " .set mips3 \n"
@@ -154,7 +154,7 @@ static __inline__ int atomic_add_return(int i, atomic_t * v)
154 : "Ir" (i), "m" (v->counter) 154 : "Ir" (i), "m" (v->counter)
155 : "memory"); 155 : "memory");
156 } else if (cpu_has_llsc) { 156 } else if (cpu_has_llsc) {
157 unsigned long temp; 157 int temp;
158 158
159 __asm__ __volatile__( 159 __asm__ __volatile__(
160 " .set mips3 \n" 160 " .set mips3 \n"
@@ -187,12 +187,12 @@ static __inline__ int atomic_add_return(int i, atomic_t * v)
187 187
188static __inline__ int atomic_sub_return(int i, atomic_t * v) 188static __inline__ int atomic_sub_return(int i, atomic_t * v)
189{ 189{
190 unsigned long result; 190 int result;
191 191
192 smp_llsc_mb(); 192 smp_llsc_mb();
193 193
194 if (cpu_has_llsc && R10000_LLSC_WAR) { 194 if (cpu_has_llsc && R10000_LLSC_WAR) {
195 unsigned long temp; 195 int temp;
196 196
197 __asm__ __volatile__( 197 __asm__ __volatile__(
198 " .set mips3 \n" 198 " .set mips3 \n"
@@ -206,7 +206,7 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
206 : "Ir" (i), "m" (v->counter) 206 : "Ir" (i), "m" (v->counter)
207 : "memory"); 207 : "memory");
208 } else if (cpu_has_llsc) { 208 } else if (cpu_has_llsc) {
209 unsigned long temp; 209 int temp;
210 210
211 __asm__ __volatile__( 211 __asm__ __volatile__(
212 " .set mips3 \n" 212 " .set mips3 \n"
@@ -247,12 +247,12 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
247 */ 247 */
248static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) 248static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
249{ 249{
250 unsigned long result; 250 int result;
251 251
252 smp_llsc_mb(); 252 smp_llsc_mb();
253 253
254 if (cpu_has_llsc && R10000_LLSC_WAR) { 254 if (cpu_has_llsc && R10000_LLSC_WAR) {
255 unsigned long temp; 255 int temp;
256 256
257 __asm__ __volatile__( 257 __asm__ __volatile__(
258 " .set mips3 \n" 258 " .set mips3 \n"
@@ -270,7 +270,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
270 : "Ir" (i), "m" (v->counter) 270 : "Ir" (i), "m" (v->counter)
271 : "memory"); 271 : "memory");
272 } else if (cpu_has_llsc) { 272 } else if (cpu_has_llsc) {
273 unsigned long temp; 273 int temp;
274 274
275 __asm__ __volatile__( 275 __asm__ __volatile__(
276 " .set mips3 \n" 276 " .set mips3 \n"
@@ -429,7 +429,7 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u)
429static __inline__ void atomic64_add(long i, atomic64_t * v) 429static __inline__ void atomic64_add(long i, atomic64_t * v)
430{ 430{
431 if (cpu_has_llsc && R10000_LLSC_WAR) { 431 if (cpu_has_llsc && R10000_LLSC_WAR) {
432 unsigned long temp; 432 long temp;
433 433
434 __asm__ __volatile__( 434 __asm__ __volatile__(
435 " .set mips3 \n" 435 " .set mips3 \n"
@@ -441,7 +441,7 @@ static __inline__ void atomic64_add(long i, atomic64_t * v)
441 : "=&r" (temp), "=m" (v->counter) 441 : "=&r" (temp), "=m" (v->counter)
442 : "Ir" (i), "m" (v->counter)); 442 : "Ir" (i), "m" (v->counter));
443 } else if (cpu_has_llsc) { 443 } else if (cpu_has_llsc) {
444 unsigned long temp; 444 long temp;
445 445
446 __asm__ __volatile__( 446 __asm__ __volatile__(
447 " .set mips3 \n" 447 " .set mips3 \n"
@@ -474,7 +474,7 @@ static __inline__ void atomic64_add(long i, atomic64_t * v)
474static __inline__ void atomic64_sub(long i, atomic64_t * v) 474static __inline__ void atomic64_sub(long i, atomic64_t * v)
475{ 475{
476 if (cpu_has_llsc && R10000_LLSC_WAR) { 476 if (cpu_has_llsc && R10000_LLSC_WAR) {
477 unsigned long temp; 477 long temp;
478 478
479 __asm__ __volatile__( 479 __asm__ __volatile__(
480 " .set mips3 \n" 480 " .set mips3 \n"
@@ -486,7 +486,7 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v)
486 : "=&r" (temp), "=m" (v->counter) 486 : "=&r" (temp), "=m" (v->counter)
487 : "Ir" (i), "m" (v->counter)); 487 : "Ir" (i), "m" (v->counter));
488 } else if (cpu_has_llsc) { 488 } else if (cpu_has_llsc) {
489 unsigned long temp; 489 long temp;
490 490
491 __asm__ __volatile__( 491 __asm__ __volatile__(
492 " .set mips3 \n" 492 " .set mips3 \n"
@@ -514,12 +514,12 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v)
514 */ 514 */
515static __inline__ long atomic64_add_return(long i, atomic64_t * v) 515static __inline__ long atomic64_add_return(long i, atomic64_t * v)
516{ 516{
517 unsigned long result; 517 long result;
518 518
519 smp_llsc_mb(); 519 smp_llsc_mb();
520 520
521 if (cpu_has_llsc && R10000_LLSC_WAR) { 521 if (cpu_has_llsc && R10000_LLSC_WAR) {
522 unsigned long temp; 522 long temp;
523 523
524 __asm__ __volatile__( 524 __asm__ __volatile__(
525 " .set mips3 \n" 525 " .set mips3 \n"
@@ -533,7 +533,7 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v)
533 : "Ir" (i), "m" (v->counter) 533 : "Ir" (i), "m" (v->counter)
534 : "memory"); 534 : "memory");
535 } else if (cpu_has_llsc) { 535 } else if (cpu_has_llsc) {
536 unsigned long temp; 536 long temp;
537 537
538 __asm__ __volatile__( 538 __asm__ __volatile__(
539 " .set mips3 \n" 539 " .set mips3 \n"
@@ -566,12 +566,12 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v)
566 566
567static __inline__ long atomic64_sub_return(long i, atomic64_t * v) 567static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
568{ 568{
569 unsigned long result; 569 long result;
570 570
571 smp_llsc_mb(); 571 smp_llsc_mb();
572 572
573 if (cpu_has_llsc && R10000_LLSC_WAR) { 573 if (cpu_has_llsc && R10000_LLSC_WAR) {
574 unsigned long temp; 574 long temp;
575 575
576 __asm__ __volatile__( 576 __asm__ __volatile__(
577 " .set mips3 \n" 577 " .set mips3 \n"
@@ -585,7 +585,7 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
585 : "Ir" (i), "m" (v->counter) 585 : "Ir" (i), "m" (v->counter)
586 : "memory"); 586 : "memory");
587 } else if (cpu_has_llsc) { 587 } else if (cpu_has_llsc) {
588 unsigned long temp; 588 long temp;
589 589
590 __asm__ __volatile__( 590 __asm__ __volatile__(
591 " .set mips3 \n" 591 " .set mips3 \n"
@@ -626,12 +626,12 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
626 */ 626 */
627static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) 627static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
628{ 628{
629 unsigned long result; 629 long result;
630 630
631 smp_llsc_mb(); 631 smp_llsc_mb();
632 632
633 if (cpu_has_llsc && R10000_LLSC_WAR) { 633 if (cpu_has_llsc && R10000_LLSC_WAR) {
634 unsigned long temp; 634 long temp;
635 635
636 __asm__ __volatile__( 636 __asm__ __volatile__(
637 " .set mips3 \n" 637 " .set mips3 \n"
@@ -649,7 +649,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
649 : "Ir" (i), "m" (v->counter) 649 : "Ir" (i), "m" (v->counter)
650 : "memory"); 650 : "memory");
651 } else if (cpu_has_llsc) { 651 } else if (cpu_has_llsc) {
652 unsigned long temp; 652 long temp;
653 653
654 __asm__ __volatile__( 654 __asm__ __volatile__(
655 " .set mips3 \n" 655 " .set mips3 \n"
diff --git a/arch/mips/include/asm/byteorder.h b/arch/mips/include/asm/byteorder.h
index 607b71830707..9579051ff1c7 100644
--- a/arch/mips/include/asm/byteorder.h
+++ b/arch/mips/include/asm/byteorder.h
@@ -8,8 +8,6 @@
8#ifndef _ASM_BYTEORDER_H 8#ifndef _ASM_BYTEORDER_H
9#define _ASM_BYTEORDER_H 9#define _ASM_BYTEORDER_H
10 10
11#include <asm/swab.h>
12
13#if defined(__MIPSEB__) 11#if defined(__MIPSEB__)
14#include <linux/byteorder/big_endian.h> 12#include <linux/byteorder/big_endian.h>
15#elif defined(__MIPSEL__) 13#elif defined(__MIPSEL__)
diff --git a/arch/mips/include/asm/compat.h b/arch/mips/include/asm/compat.h
index ac5d541368e9..6c5b40905dd6 100644
--- a/arch/mips/include/asm/compat.h
+++ b/arch/mips/include/asm/compat.h
@@ -3,6 +3,8 @@
3/* 3/*
4 * Architecture specific compatibility types 4 * Architecture specific compatibility types
5 */ 5 */
6#include <linux/seccomp.h>
7#include <linux/thread_info.h>
6#include <linux/types.h> 8#include <linux/types.h>
7#include <asm/page.h> 9#include <asm/page.h>
8#include <asm/ptrace.h> 10#include <asm/ptrace.h>
@@ -218,4 +220,9 @@ struct compat_shmid64_ds {
218 compat_ulong_t __unused2; 220 compat_ulong_t __unused2;
219}; 221};
220 222
223static inline int is_compat_task(void)
224{
225 return test_thread_flag(TIF_32BIT);
226}
227
221#endif /* _ASM_COMPAT_H */ 228#endif /* _ASM_COMPAT_H */
diff --git a/arch/mips/include/asm/mach-rc32434/gpio.h b/arch/mips/include/asm/mach-rc32434/gpio.h
index b5cf6457305a..3cb50d17b62d 100644
--- a/arch/mips/include/asm/mach-rc32434/gpio.h
+++ b/arch/mips/include/asm/mach-rc32434/gpio.h
@@ -80,11 +80,8 @@ struct rb532_gpio_reg {
80/* Compact Flash GPIO pin */ 80/* Compact Flash GPIO pin */
81#define CF_GPIO_NUM 13 81#define CF_GPIO_NUM 13
82 82
83extern void set_434_reg(unsigned reg_offs, unsigned bit, unsigned len, unsigned val);
84extern unsigned get_434_reg(unsigned reg_offs);
85extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask);
86extern unsigned char get_latch_u5(void);
87extern void rb532_gpio_set_ilevel(int bit, unsigned gpio); 83extern void rb532_gpio_set_ilevel(int bit, unsigned gpio);
88extern void rb532_gpio_set_istat(int bit, unsigned gpio); 84extern void rb532_gpio_set_istat(int bit, unsigned gpio);
85extern void rb532_gpio_set_func(unsigned gpio);
89 86
90#endif /* _RC32434_GPIO_H_ */ 87#endif /* _RC32434_GPIO_H_ */
diff --git a/arch/mips/include/asm/mach-rc32434/irq.h b/arch/mips/include/asm/mach-rc32434/irq.h
index 56738d8ec4e2..023a5b100ed0 100644
--- a/arch/mips/include/asm/mach-rc32434/irq.h
+++ b/arch/mips/include/asm/mach-rc32434/irq.h
@@ -30,4 +30,7 @@
30#define ETH0_RX_OVR_IRQ (GROUP3_IRQ_BASE + 9) 30#define ETH0_RX_OVR_IRQ (GROUP3_IRQ_BASE + 9)
31#define ETH0_TX_UND_IRQ (GROUP3_IRQ_BASE + 10) 31#define ETH0_TX_UND_IRQ (GROUP3_IRQ_BASE + 10)
32 32
33#define GPIO_MAPPED_IRQ_BASE GROUP4_IRQ_BASE
34#define GPIO_MAPPED_IRQ_GROUP 4
35
33#endif /* __ASM_RC32434_IRQ_H */ 36#endif /* __ASM_RC32434_IRQ_H */
diff --git a/arch/mips/include/asm/mach-rc32434/rb.h b/arch/mips/include/asm/mach-rc32434/rb.h
index f25a84916703..6dc5f8df1f3e 100644
--- a/arch/mips/include/asm/mach-rc32434/rb.h
+++ b/arch/mips/include/asm/mach-rc32434/rb.h
@@ -83,4 +83,7 @@ struct mpmc_device {
83 void __iomem *base; 83 void __iomem *base;
84}; 84};
85 85
86extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask);
87extern unsigned char get_latch_u5(void);
88
86#endif /* __ASM_RC32434_RB_H */ 89#endif /* __ASM_RC32434_RB_H */
diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h
index 1f30d16d4669..ce47118e52b7 100644
--- a/arch/mips/include/asm/ptrace.h
+++ b/arch/mips/include/asm/ptrace.h
@@ -105,7 +105,7 @@ struct pt_watch_regs {
105 enum pt_watch_style style; 105 enum pt_watch_style style;
106 union { 106 union {
107 struct mips32_watch_regs mips32; 107 struct mips32_watch_regs mips32;
108 struct mips32_watch_regs mips64; 108 struct mips64_watch_regs mips64;
109 }; 109 };
110}; 110};
111 111
diff --git a/arch/mips/include/asm/seccomp.h b/arch/mips/include/asm/seccomp.h
index 36ed44070256..a6772e9507f5 100644
--- a/arch/mips/include/asm/seccomp.h
+++ b/arch/mips/include/asm/seccomp.h
@@ -1,6 +1,5 @@
1#ifndef __ASM_SECCOMP_H 1#ifndef __ASM_SECCOMP_H
2 2
3#include <linux/thread_info.h>
4#include <linux/unistd.h> 3#include <linux/unistd.h>
5 4
6#define __NR_seccomp_read __NR_read 5#define __NR_seccomp_read __NR_read
diff --git a/arch/mips/include/asm/sigcontext.h b/arch/mips/include/asm/sigcontext.h
index 9ce0607d7a4e..9e89cf99d4e4 100644
--- a/arch/mips/include/asm/sigcontext.h
+++ b/arch/mips/include/asm/sigcontext.h
@@ -9,6 +9,7 @@
9#ifndef _ASM_SIGCONTEXT_H 9#ifndef _ASM_SIGCONTEXT_H
10#define _ASM_SIGCONTEXT_H 10#define _ASM_SIGCONTEXT_H
11 11
12#include <linux/types.h>
12#include <asm/sgidefs.h> 13#include <asm/sgidefs.h>
13 14
14#if _MIPS_SIM == _MIPS_SIM_ABI32 15#if _MIPS_SIM == _MIPS_SIM_ABI32
diff --git a/arch/mips/include/asm/spinlock.h b/arch/mips/include/asm/spinlock.h
index 1a1f320c30d8..0884947ebe27 100644
--- a/arch/mips/include/asm/spinlock.h
+++ b/arch/mips/include/asm/spinlock.h
@@ -51,6 +51,7 @@ static inline int __raw_spin_is_contended(raw_spinlock_t *lock)
51 51
52 return (((counters >> 14) - counters) & 0x1fff) > 1; 52 return (((counters >> 14) - counters) & 0x1fff) > 1;
53} 53}
54#define __raw_spin_is_contended __raw_spin_is_contended
54 55
55static inline void __raw_spin_lock(raw_spinlock_t *lock) 56static inline void __raw_spin_lock(raw_spinlock_t *lock)
56{ 57{
diff --git a/arch/mips/include/asm/swab.h b/arch/mips/include/asm/swab.h
index 88f1f7d555cb..99993c0d6c12 100644
--- a/arch/mips/include/asm/swab.h
+++ b/arch/mips/include/asm/swab.h
@@ -9,7 +9,7 @@
9#define _ASM_SWAB_H 9#define _ASM_SWAB_H
10 10
11#include <linux/compiler.h> 11#include <linux/compiler.h>
12#include <asm/types.h> 12#include <linux/types.h>
13 13
14#define __SWAB_64_THRU_32__ 14#define __SWAB_64_THRU_32__
15 15
diff --git a/arch/mips/include/asm/termios.h b/arch/mips/include/asm/termios.h
index a275661fa7e1..8f77f774a2a0 100644
--- a/arch/mips/include/asm/termios.h
+++ b/arch/mips/include/asm/termios.h
@@ -9,6 +9,7 @@
9#ifndef _ASM_TERMIOS_H 9#ifndef _ASM_TERMIOS_H
10#define _ASM_TERMIOS_H 10#define _ASM_TERMIOS_H
11 11
12#include <linux/errno.h>
12#include <asm/termbits.h> 13#include <asm/termbits.h>
13#include <asm/ioctls.h> 14#include <asm/ioctls.h>
14 15
@@ -94,38 +95,81 @@ struct termio {
94/* 95/*
95 * Translate a "termio" structure into a "termios". Ugh. 96 * Translate a "termio" structure into a "termios". Ugh.
96 */ 97 */
97#define user_termio_to_kernel_termios(termios, termio) \ 98static inline int user_termio_to_kernel_termios(struct ktermios *termios,
98({ \ 99 struct termio __user *termio)
99 unsigned short tmp; \ 100{
100 get_user(tmp, &(termio)->c_iflag); \ 101 unsigned short iflag, oflag, cflag, lflag;
101 (termios)->c_iflag = (0xffff0000 & ((termios)->c_iflag)) | tmp; \ 102 unsigned int err;
102 get_user(tmp, &(termio)->c_oflag); \ 103
103 (termios)->c_oflag = (0xffff0000 & ((termios)->c_oflag)) | tmp; \ 104 if (!access_ok(VERIFY_READ, termio, sizeof(struct termio)))
104 get_user(tmp, &(termio)->c_cflag); \ 105 return -EFAULT;
105 (termios)->c_cflag = (0xffff0000 & ((termios)->c_cflag)) | tmp; \ 106
106 get_user(tmp, &(termio)->c_lflag); \ 107 err = __get_user(iflag, &termio->c_iflag);
107 (termios)->c_lflag = (0xffff0000 & ((termios)->c_lflag)) | tmp; \ 108 termios->c_iflag = (termios->c_iflag & 0xffff0000) | iflag;
108 get_user((termios)->c_line, &(termio)->c_line); \ 109 err |=__get_user(oflag, &termio->c_oflag);
109 copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \ 110 termios->c_oflag = (termios->c_oflag & 0xffff0000) | oflag;
110}) 111 err |=__get_user(cflag, &termio->c_cflag);
112 termios->c_cflag = (termios->c_cflag & 0xffff0000) | cflag;
113 err |=__get_user(lflag, &termio->c_lflag);
114 termios->c_lflag = (termios->c_lflag & 0xffff0000) | lflag;
115 err |=__get_user(termios->c_line, &termio->c_line);
116 if (err)
117 return -EFAULT;
118
119 if (__copy_from_user(termios->c_cc, termio->c_cc, NCC))
120 return -EFAULT;
121
122 return 0;
123}
111 124
112/* 125/*
113 * Translate a "termios" structure into a "termio". Ugh. 126 * Translate a "termios" structure into a "termio". Ugh.
114 */ 127 */
115#define kernel_termios_to_user_termio(termio, termios) \ 128static inline int kernel_termios_to_user_termio(struct termio __user *termio,
116({ \ 129 struct ktermios *termios)
117 put_user((termios)->c_iflag, &(termio)->c_iflag); \ 130{
118 put_user((termios)->c_oflag, &(termio)->c_oflag); \ 131 int err;
119 put_user((termios)->c_cflag, &(termio)->c_cflag); \ 132
120 put_user((termios)->c_lflag, &(termio)->c_lflag); \ 133 if (!access_ok(VERIFY_WRITE, termio, sizeof(struct termio)))
121 put_user((termios)->c_line, &(termio)->c_line); \ 134 return -EFAULT;
122 copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ 135
123}) 136 err = __put_user(termios->c_iflag, &termio->c_iflag);
124 137 err |= __put_user(termios->c_oflag, &termio->c_oflag);
125#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2)) 138 err |= __put_user(termios->c_cflag, &termio->c_cflag);
126#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2)) 139 err |= __put_user(termios->c_lflag, &termio->c_lflag);
127#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) 140 err |= __put_user(termios->c_line, &termio->c_line);
128#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) 141 if (err)
142 return -EFAULT;
143
144 if (__copy_to_user(termio->c_cc, termios->c_cc, NCC))
145 return -EFAULT;
146
147 return 0;
148}
149
150static inline int user_termios_to_kernel_termios(struct ktermios __user *k,
151 struct termios2 *u)
152{
153 return copy_from_user(k, u, sizeof(struct termios2)) ? -EFAULT : 0;
154}
155
156static inline int kernel_termios_to_user_termios(struct termios2 __user *u,
157 struct ktermios *k)
158{
159 return copy_to_user(u, k, sizeof(struct termios2)) ? -EFAULT : 0;
160}
161
162static inline int user_termios_to_kernel_termios_1(struct ktermios *k,
163 struct termios __user *u)
164{
165 return copy_from_user(k, u, sizeof(struct termios)) ? -EFAULT : 0;
166}
167
168static inline int kernel_termios_to_user_termios_1(struct termios __user *u,
169 struct ktermios *k)
170{
171 return copy_to_user(u, k, sizeof(struct termios)) ? -EFAULT : 0;
172}
129 173
130#endif /* defined(__KERNEL__) */ 174#endif /* defined(__KERNEL__) */
131 175
diff --git a/arch/mips/include/asm/txx9/tx4939.h b/arch/mips/include/asm/txx9/tx4939.h
index 88badb423010..964ef7ede268 100644
--- a/arch/mips/include/asm/txx9/tx4939.h
+++ b/arch/mips/include/asm/txx9/tx4939.h
@@ -541,5 +541,6 @@ void tx4939_irq_init(void);
541int tx4939_irq(void); 541int tx4939_irq(void);
542void tx4939_mtd_init(int ch); 542void tx4939_mtd_init(int ch);
543void tx4939_ata_init(void); 543void tx4939_ata_init(void);
544void tx4939_rtc_init(void);
544 545
545#endif /* __ASM_TXX9_TX4939_H */ 546#endif /* __ASM_TXX9_TX4939_H */
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index fb6f73148df2..8882e5766f27 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -458,7 +458,11 @@ NESTED(nmi_handler, PT_SIZE, sp)
458 BUILD_HANDLER fpe fpe fpe silent /* #15 */ 458 BUILD_HANDLER fpe fpe fpe silent /* #15 */
459 BUILD_HANDLER mdmx mdmx sti silent /* #22 */ 459 BUILD_HANDLER mdmx mdmx sti silent /* #22 */
460#ifdef CONFIG_HARDWARE_WATCHPOINTS 460#ifdef CONFIG_HARDWARE_WATCHPOINTS
461 BUILD_HANDLER watch watch sti silent /* #23 */ 461 /*
462 * For watch, interrupts will be enabled after the watch
463 * registers are read.
464 */
465 BUILD_HANDLER watch watch cli silent /* #23 */
462#else 466#else
463 BUILD_HANDLER watch watch sti verbose /* #23 */ 467 BUILD_HANDLER watch watch sti verbose /* #23 */
464#endif 468#endif
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
index a0ff2b66e22b..4b4007b3083a 100644
--- a/arch/mips/kernel/irq.c
+++ b/arch/mips/kernel/irq.c
@@ -111,7 +111,6 @@ int show_interrupts(struct seq_file *p, void *v)
111 seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); 111 seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]);
112#endif 112#endif
113 seq_printf(p, " %14s", irq_desc[i].chip->name); 113 seq_printf(p, " %14s", irq_desc[i].chip->name);
114 seq_printf(p, "-%-8s", irq_desc[i].name);
115 seq_printf(p, " %s", action->name); 114 seq_printf(p, " %s", action->name);
116 115
117 for (action=action->next; action; action = action->next) 116 for (action=action->next; action; action = action->next)
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
index aa2c55e3b55f..2f8452b404c7 100644
--- a/arch/mips/kernel/linux32.c
+++ b/arch/mips/kernel/linux32.c
@@ -32,6 +32,7 @@
32#include <linux/module.h> 32#include <linux/module.h>
33#include <linux/binfmts.h> 33#include <linux/binfmts.h>
34#include <linux/security.h> 34#include <linux/security.h>
35#include <linux/syscalls.h>
35#include <linux/compat.h> 36#include <linux/compat.h>
36#include <linux/vfs.h> 37#include <linux/vfs.h>
37#include <linux/ipc.h> 38#include <linux/ipc.h>
@@ -63,9 +64,9 @@
63#define merge_64(r1, r2) ((((r2) & 0xffffffffUL) << 32) + ((r1) & 0xffffffffUL)) 64#define merge_64(r1, r2) ((((r2) & 0xffffffffUL) << 32) + ((r1) & 0xffffffffUL))
64#endif 65#endif
65 66
66asmlinkage unsigned long 67SYSCALL_DEFINE6(32_mmap2, unsigned long, addr, unsigned long, len,
67sys32_mmap2(unsigned long addr, unsigned long len, unsigned long prot, 68 unsigned long, prot, unsigned long, flags, unsigned long, fd,
68 unsigned long flags, unsigned long fd, unsigned long pgoff) 69 unsigned long, pgoff)
69{ 70{
70 struct file * file = NULL; 71 struct file * file = NULL;
71 unsigned long error; 72 unsigned long error;
@@ -121,21 +122,21 @@ struct rlimit32 {
121 int rlim_max; 122 int rlim_max;
122}; 123};
123 124
124asmlinkage long sys32_truncate64(const char __user * path, 125SYSCALL_DEFINE4(32_truncate64, const char __user *, path,
125 unsigned long __dummy, int a2, int a3) 126 unsigned long, __dummy, unsigned long, a2, unsigned long, a3)
126{ 127{
127 return sys_truncate(path, merge_64(a2, a3)); 128 return sys_truncate(path, merge_64(a2, a3));
128} 129}
129 130
130asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy, 131SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy,
131 int a2, int a3) 132 unsigned long, a2, unsigned long, a3)
132{ 133{
133 return sys_ftruncate(fd, merge_64(a2, a3)); 134 return sys_ftruncate(fd, merge_64(a2, a3));
134} 135}
135 136
136asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, 137SYSCALL_DEFINE5(32_llseek, unsigned long, fd, unsigned long, offset_high,
137 unsigned int offset_low, loff_t __user * result, 138 unsigned long, offset_low, loff_t __user *, result,
138 unsigned int origin) 139 unsigned long, origin)
139{ 140{
140 return sys_llseek(fd, offset_high, offset_low, result, origin); 141 return sys_llseek(fd, offset_high, offset_low, result, origin);
141} 142}
@@ -144,20 +145,20 @@ asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high,
144 lseek back to original location. They fail just like lseek does on 145 lseek back to original location. They fail just like lseek does on
145 non-seekable files. */ 146 non-seekable files. */
146 147
147asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf, 148SYSCALL_DEFINE6(32_pread, unsigned long, fd, char __user *, buf, size_t, count,
148 size_t count, u32 unused, u64 a4, u64 a5) 149 unsigned long, unused, unsigned long, a4, unsigned long, a5)
149{ 150{
150 return sys_pread64(fd, buf, count, merge_64(a4, a5)); 151 return sys_pread64(fd, buf, count, merge_64(a4, a5));
151} 152}
152 153
153asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf, 154SYSCALL_DEFINE6(32_pwrite, unsigned int, fd, const char __user *, buf,
154 size_t count, u32 unused, u64 a4, u64 a5) 155 size_t, count, u32, unused, u64, a4, u64, a5)
155{ 156{
156 return sys_pwrite64(fd, buf, count, merge_64(a4, a5)); 157 return sys_pwrite64(fd, buf, count, merge_64(a4, a5));
157} 158}
158 159
159asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, 160SYSCALL_DEFINE2(32_sched_rr_get_interval, compat_pid_t, pid,
160 struct compat_timespec __user *interval) 161 struct compat_timespec __user *, interval)
161{ 162{
162 struct timespec t; 163 struct timespec t;
163 int ret; 164 int ret;
@@ -174,8 +175,8 @@ asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid,
174 175
175#ifdef CONFIG_SYSVIPC 176#ifdef CONFIG_SYSVIPC
176 177
177asmlinkage long 178SYSCALL_DEFINE6(32_ipc, u32, call, long, first, long, second, long, third,
178sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) 179 unsigned long, ptr, unsigned long, fifth)
179{ 180{
180 int version, err; 181 int version, err;
181 182
@@ -233,8 +234,8 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth)
233 234
234#else 235#else
235 236
236asmlinkage long 237SYSCALL_DEFINE6(32_ipc, u32, call, int, first, int, second, int, third,
237sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) 238 u32, ptr, u32 fifth)
238{ 239{
239 return -ENOSYS; 240 return -ENOSYS;
240} 241}
@@ -242,7 +243,7 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth)
242#endif /* CONFIG_SYSVIPC */ 243#endif /* CONFIG_SYSVIPC */
243 244
244#ifdef CONFIG_MIPS32_N32 245#ifdef CONFIG_MIPS32_N32
245asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg) 246SYSCALL_DEFINE4(n32_semctl, int, semid, int, semnum, int, cmd, u32, arg)
246{ 247{
247 /* compat_sys_semctl expects a pointer to union semun */ 248 /* compat_sys_semctl expects a pointer to union semun */
248 u32 __user *uptr = compat_alloc_user_space(sizeof(u32)); 249 u32 __user *uptr = compat_alloc_user_space(sizeof(u32));
@@ -251,13 +252,14 @@ asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg)
251 return compat_sys_semctl(semid, semnum, cmd, uptr); 252 return compat_sys_semctl(semid, semnum, cmd, uptr);
252} 253}
253 254
254asmlinkage long sysn32_msgsnd(int msqid, u32 msgp, unsigned msgsz, int msgflg) 255SYSCALL_DEFINE4(n32_msgsnd, int, msqid, u32, msgp, unsigned int, msgsz,
256 int, msgflg)
255{ 257{
256 return compat_sys_msgsnd(msqid, msgsz, msgflg, compat_ptr(msgp)); 258 return compat_sys_msgsnd(msqid, msgsz, msgflg, compat_ptr(msgp));
257} 259}
258 260
259asmlinkage long sysn32_msgrcv(int msqid, u32 msgp, size_t msgsz, int msgtyp, 261SYSCALL_DEFINE5(n32_msgrcv, int, msqid, u32, msgp, size_t, msgsz,
260 int msgflg) 262 int, msgtyp, int, msgflg)
261{ 263{
262 return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64, 264 return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64,
263 compat_ptr(msgp)); 265 compat_ptr(msgp));
@@ -277,7 +279,7 @@ struct sysctl_args32
277 279
278#ifdef CONFIG_SYSCTL_SYSCALL 280#ifdef CONFIG_SYSCTL_SYSCALL
279 281
280asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args) 282SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)
281{ 283{
282 struct sysctl_args32 tmp; 284 struct sysctl_args32 tmp;
283 int error; 285 int error;
@@ -316,9 +318,16 @@ asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args)
316 return error; 318 return error;
317} 319}
318 320
321#else
322
323SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)
324{
325 return -ENOSYS;
326}
327
319#endif /* CONFIG_SYSCTL_SYSCALL */ 328#endif /* CONFIG_SYSCTL_SYSCALL */
320 329
321asmlinkage long sys32_newuname(struct new_utsname __user * name) 330SYSCALL_DEFINE1(32_newuname, struct new_utsname __user *, name)
322{ 331{
323 int ret = 0; 332 int ret = 0;
324 333
@@ -334,7 +343,7 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name)
334 return ret; 343 return ret;
335} 344}
336 345
337asmlinkage int sys32_personality(unsigned long personality) 346SYSCALL_DEFINE1(32_personality, unsigned long, personality)
338{ 347{
339 int ret; 348 int ret;
340 personality &= 0xffffffff; 349 personality &= 0xffffffff;
@@ -357,7 +366,7 @@ struct ustat32 {
357 366
358extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf); 367extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf);
359 368
360asmlinkage int sys32_ustat(dev_t dev, struct ustat32 __user * ubuf32) 369SYSCALL_DEFINE2(32_ustat, dev_t, dev, struct ustat32 __user *, ubuf32)
361{ 370{
362 int err; 371 int err;
363 struct ustat tmp; 372 struct ustat tmp;
@@ -381,8 +390,8 @@ out:
381 return err; 390 return err;
382} 391}
383 392
384asmlinkage int sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, 393SYSCALL_DEFINE4(32_sendfile, long, out_fd, long, in_fd,
385 s32 count) 394 compat_off_t __user *, offset, s32, count)
386{ 395{
387 mm_segment_t old_fs = get_fs(); 396 mm_segment_t old_fs = get_fs();
388 int ret; 397 int ret;
diff --git a/arch/mips/kernel/mips-mt-fpaff.c b/arch/mips/kernel/mips-mt-fpaff.c
index 5e77a3a21f98..42461310b185 100644
--- a/arch/mips/kernel/mips-mt-fpaff.c
+++ b/arch/mips/kernel/mips-mt-fpaff.c
@@ -79,7 +79,8 @@ asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len,
79 79
80 euid = current_euid(); 80 euid = current_euid();
81 retval = -EPERM; 81 retval = -EPERM;
82 if (euid != p->euid && euid != p->uid && !capable(CAP_SYS_NICE)) { 82 if (euid != p->cred->euid && euid != p->cred->uid &&
83 !capable(CAP_SYS_NICE)) {
83 read_unlock(&tasklist_lock); 84 read_unlock(&tasklist_lock);
84 goto out_unlock; 85 goto out_unlock;
85 } 86 }
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index d0916a55cd77..9ab70c3b5be6 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -398,8 +398,8 @@ einval: li v0, -ENOSYS
398 sys sys_uselib 1 398 sys sys_uselib 1
399 sys sys_swapon 2 399 sys sys_swapon 2
400 sys sys_reboot 3 400 sys sys_reboot 3
401 sys old_readdir 3 401 sys sys_old_readdir 3
402 sys old_mmap 6 /* 4090 */ 402 sys sys_mips_mmap 6 /* 4090 */
403 sys sys_munmap 2 403 sys sys_munmap 2
404 sys sys_truncate 2 404 sys sys_truncate 2
405 sys sys_ftruncate 2 405 sys sys_ftruncate 2
@@ -519,7 +519,7 @@ einval: li v0, -ENOSYS
519 sys sys_sendfile 4 519 sys sys_sendfile 4
520 sys sys_ni_syscall 0 520 sys sys_ni_syscall 0
521 sys sys_ni_syscall 0 521 sys sys_ni_syscall 0
522 sys sys_mmap2 6 /* 4210 */ 522 sys sys_mips_mmap2 6 /* 4210 */
523 sys sys_truncate64 4 523 sys sys_truncate64 4
524 sys sys_ftruncate64 4 524 sys sys_ftruncate64 4
525 sys sys_stat64 2 525 sys sys_stat64 2
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index a9e171618994..9b4698667154 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -207,7 +207,7 @@ sys_call_table:
207 PTR sys_newlstat 207 PTR sys_newlstat
208 PTR sys_poll 208 PTR sys_poll
209 PTR sys_lseek 209 PTR sys_lseek
210 PTR old_mmap 210 PTR sys_mips_mmap
211 PTR sys_mprotect /* 5010 */ 211 PTR sys_mprotect /* 5010 */
212 PTR sys_munmap 212 PTR sys_munmap
213 PTR sys_brk 213 PTR sys_brk
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index 30f3b6317a83..7438e92f8a01 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -129,12 +129,12 @@ EXPORT(sysn32_call_table)
129 PTR sys_newlstat 129 PTR sys_newlstat
130 PTR sys_poll 130 PTR sys_poll
131 PTR sys_lseek 131 PTR sys_lseek
132 PTR old_mmap 132 PTR sys_mips_mmap
133 PTR sys_mprotect /* 6010 */ 133 PTR sys_mprotect /* 6010 */
134 PTR sys_munmap 134 PTR sys_munmap
135 PTR sys_brk 135 PTR sys_brk
136 PTR sys32_rt_sigaction 136 PTR sys_32_rt_sigaction
137 PTR sys32_rt_sigprocmask 137 PTR sys_32_rt_sigprocmask
138 PTR compat_sys_ioctl /* 6015 */ 138 PTR compat_sys_ioctl /* 6015 */
139 PTR sys_pread64 139 PTR sys_pread64
140 PTR sys_pwrite64 140 PTR sys_pwrite64
@@ -159,7 +159,7 @@ EXPORT(sysn32_call_table)
159 PTR compat_sys_setitimer 159 PTR compat_sys_setitimer
160 PTR sys_alarm 160 PTR sys_alarm
161 PTR sys_getpid 161 PTR sys_getpid
162 PTR sys32_sendfile 162 PTR sys_32_sendfile
163 PTR sys_socket /* 6040 */ 163 PTR sys_socket /* 6040 */
164 PTR sys_connect 164 PTR sys_connect
165 PTR sys_accept 165 PTR sys_accept
@@ -181,14 +181,14 @@ EXPORT(sysn32_call_table)
181 PTR sys_exit 181 PTR sys_exit
182 PTR compat_sys_wait4 182 PTR compat_sys_wait4
183 PTR sys_kill /* 6060 */ 183 PTR sys_kill /* 6060 */
184 PTR sys32_newuname 184 PTR sys_32_newuname
185 PTR sys_semget 185 PTR sys_semget
186 PTR sys_semop 186 PTR sys_semop
187 PTR sysn32_semctl 187 PTR sys_n32_semctl
188 PTR sys_shmdt /* 6065 */ 188 PTR sys_shmdt /* 6065 */
189 PTR sys_msgget 189 PTR sys_msgget
190 PTR sysn32_msgsnd 190 PTR sys_n32_msgsnd
191 PTR sysn32_msgrcv 191 PTR sys_n32_msgrcv
192 PTR compat_sys_msgctl 192 PTR compat_sys_msgctl
193 PTR compat_sys_fcntl /* 6070 */ 193 PTR compat_sys_fcntl /* 6070 */
194 PTR sys_flock 194 PTR sys_flock
@@ -245,15 +245,15 @@ EXPORT(sysn32_call_table)
245 PTR sys_getsid 245 PTR sys_getsid
246 PTR sys_capget 246 PTR sys_capget
247 PTR sys_capset 247 PTR sys_capset
248 PTR sys32_rt_sigpending /* 6125 */ 248 PTR sys_32_rt_sigpending /* 6125 */
249 PTR compat_sys_rt_sigtimedwait 249 PTR compat_sys_rt_sigtimedwait
250 PTR sys32_rt_sigqueueinfo 250 PTR sys_32_rt_sigqueueinfo
251 PTR sysn32_rt_sigsuspend 251 PTR sysn32_rt_sigsuspend
252 PTR sys32_sigaltstack 252 PTR sys32_sigaltstack
253 PTR compat_sys_utime /* 6130 */ 253 PTR compat_sys_utime /* 6130 */
254 PTR sys_mknod 254 PTR sys_mknod
255 PTR sys32_personality 255 PTR sys_32_personality
256 PTR sys32_ustat 256 PTR sys_32_ustat
257 PTR compat_sys_statfs 257 PTR compat_sys_statfs
258 PTR compat_sys_fstatfs /* 6135 */ 258 PTR compat_sys_fstatfs /* 6135 */
259 PTR sys_sysfs 259 PTR sys_sysfs
@@ -265,14 +265,14 @@ EXPORT(sysn32_call_table)
265 PTR sys_sched_getscheduler 265 PTR sys_sched_getscheduler
266 PTR sys_sched_get_priority_max 266 PTR sys_sched_get_priority_max
267 PTR sys_sched_get_priority_min 267 PTR sys_sched_get_priority_min
268 PTR sys32_sched_rr_get_interval /* 6145 */ 268 PTR sys_32_sched_rr_get_interval /* 6145 */
269 PTR sys_mlock 269 PTR sys_mlock
270 PTR sys_munlock 270 PTR sys_munlock
271 PTR sys_mlockall 271 PTR sys_mlockall
272 PTR sys_munlockall 272 PTR sys_munlockall
273 PTR sys_vhangup /* 6150 */ 273 PTR sys_vhangup /* 6150 */
274 PTR sys_pivot_root 274 PTR sys_pivot_root
275 PTR sys32_sysctl 275 PTR sys_32_sysctl
276 PTR sys_prctl 276 PTR sys_prctl
277 PTR compat_sys_adjtimex 277 PTR compat_sys_adjtimex
278 PTR compat_sys_setrlimit /* 6155 */ 278 PTR compat_sys_setrlimit /* 6155 */
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index fefef4af8595..b0fef4ff9827 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -265,12 +265,12 @@ sys_call_table:
265 PTR sys_olduname 265 PTR sys_olduname
266 PTR sys_umask /* 4060 */ 266 PTR sys_umask /* 4060 */
267 PTR sys_chroot 267 PTR sys_chroot
268 PTR sys32_ustat 268 PTR sys_32_ustat
269 PTR sys_dup2 269 PTR sys_dup2
270 PTR sys_getppid 270 PTR sys_getppid
271 PTR sys_getpgrp /* 4065 */ 271 PTR sys_getpgrp /* 4065 */
272 PTR sys_setsid 272 PTR sys_setsid
273 PTR sys32_sigaction 273 PTR sys_32_sigaction
274 PTR sys_sgetmask 274 PTR sys_sgetmask
275 PTR sys_ssetmask 275 PTR sys_ssetmask
276 PTR sys_setreuid /* 4070 */ 276 PTR sys_setreuid /* 4070 */
@@ -293,7 +293,7 @@ sys_call_table:
293 PTR sys_swapon 293 PTR sys_swapon
294 PTR sys_reboot 294 PTR sys_reboot
295 PTR compat_sys_old_readdir 295 PTR compat_sys_old_readdir
296 PTR old_mmap /* 4090 */ 296 PTR sys_mips_mmap /* 4090 */
297 PTR sys_munmap 297 PTR sys_munmap
298 PTR sys_truncate 298 PTR sys_truncate
299 PTR sys_ftruncate 299 PTR sys_ftruncate
@@ -320,12 +320,12 @@ sys_call_table:
320 PTR compat_sys_wait4 320 PTR compat_sys_wait4
321 PTR sys_swapoff /* 4115 */ 321 PTR sys_swapoff /* 4115 */
322 PTR compat_sys_sysinfo 322 PTR compat_sys_sysinfo
323 PTR sys32_ipc 323 PTR sys_32_ipc
324 PTR sys_fsync 324 PTR sys_fsync
325 PTR sys32_sigreturn 325 PTR sys32_sigreturn
326 PTR sys32_clone /* 4120 */ 326 PTR sys32_clone /* 4120 */
327 PTR sys_setdomainname 327 PTR sys_setdomainname
328 PTR sys32_newuname 328 PTR sys_32_newuname
329 PTR sys_ni_syscall /* sys_modify_ldt */ 329 PTR sys_ni_syscall /* sys_modify_ldt */
330 PTR compat_sys_adjtimex 330 PTR compat_sys_adjtimex
331 PTR sys_mprotect /* 4125 */ 331 PTR sys_mprotect /* 4125 */
@@ -339,11 +339,11 @@ sys_call_table:
339 PTR sys_fchdir 339 PTR sys_fchdir
340 PTR sys_bdflush 340 PTR sys_bdflush
341 PTR sys_sysfs /* 4135 */ 341 PTR sys_sysfs /* 4135 */
342 PTR sys32_personality 342 PTR sys_32_personality
343 PTR sys_ni_syscall /* for afs_syscall */ 343 PTR sys_ni_syscall /* for afs_syscall */
344 PTR sys_setfsuid 344 PTR sys_setfsuid
345 PTR sys_setfsgid 345 PTR sys_setfsgid
346 PTR sys32_llseek /* 4140 */ 346 PTR sys_32_llseek /* 4140 */
347 PTR compat_sys_getdents 347 PTR compat_sys_getdents
348 PTR compat_sys_select 348 PTR compat_sys_select
349 PTR sys_flock 349 PTR sys_flock
@@ -356,7 +356,7 @@ sys_call_table:
356 PTR sys_ni_syscall /* 4150 */ 356 PTR sys_ni_syscall /* 4150 */
357 PTR sys_getsid 357 PTR sys_getsid
358 PTR sys_fdatasync 358 PTR sys_fdatasync
359 PTR sys32_sysctl 359 PTR sys_32_sysctl
360 PTR sys_mlock 360 PTR sys_mlock
361 PTR sys_munlock /* 4155 */ 361 PTR sys_munlock /* 4155 */
362 PTR sys_mlockall 362 PTR sys_mlockall
@@ -368,7 +368,7 @@ sys_call_table:
368 PTR sys_sched_yield 368 PTR sys_sched_yield
369 PTR sys_sched_get_priority_max 369 PTR sys_sched_get_priority_max
370 PTR sys_sched_get_priority_min 370 PTR sys_sched_get_priority_min
371 PTR sys32_sched_rr_get_interval /* 4165 */ 371 PTR sys_32_sched_rr_get_interval /* 4165 */
372 PTR compat_sys_nanosleep 372 PTR compat_sys_nanosleep
373 PTR sys_mremap 373 PTR sys_mremap
374 PTR sys_accept 374 PTR sys_accept
@@ -397,25 +397,25 @@ sys_call_table:
397 PTR sys_getresgid 397 PTR sys_getresgid
398 PTR sys_prctl 398 PTR sys_prctl
399 PTR sys32_rt_sigreturn 399 PTR sys32_rt_sigreturn
400 PTR sys32_rt_sigaction 400 PTR sys_32_rt_sigaction
401 PTR sys32_rt_sigprocmask /* 4195 */ 401 PTR sys_32_rt_sigprocmask /* 4195 */
402 PTR sys32_rt_sigpending 402 PTR sys_32_rt_sigpending
403 PTR compat_sys_rt_sigtimedwait 403 PTR compat_sys_rt_sigtimedwait
404 PTR sys32_rt_sigqueueinfo 404 PTR sys_32_rt_sigqueueinfo
405 PTR sys32_rt_sigsuspend 405 PTR sys32_rt_sigsuspend
406 PTR sys32_pread /* 4200 */ 406 PTR sys_32_pread /* 4200 */
407 PTR sys32_pwrite 407 PTR sys_32_pwrite
408 PTR sys_chown 408 PTR sys_chown
409 PTR sys_getcwd 409 PTR sys_getcwd
410 PTR sys_capget 410 PTR sys_capget
411 PTR sys_capset /* 4205 */ 411 PTR sys_capset /* 4205 */
412 PTR sys32_sigaltstack 412 PTR sys32_sigaltstack
413 PTR sys32_sendfile 413 PTR sys_32_sendfile
414 PTR sys_ni_syscall 414 PTR sys_ni_syscall
415 PTR sys_ni_syscall 415 PTR sys_ni_syscall
416 PTR sys32_mmap2 /* 4210 */ 416 PTR sys_mips_mmap2 /* 4210 */
417 PTR sys32_truncate64 417 PTR sys_32_truncate64
418 PTR sys32_ftruncate64 418 PTR sys_32_ftruncate64
419 PTR sys_newstat 419 PTR sys_newstat
420 PTR sys_newlstat 420 PTR sys_newlstat
421 PTR sys_newfstat /* 4215 */ 421 PTR sys_newfstat /* 4215 */
@@ -481,7 +481,7 @@ sys_call_table:
481 PTR compat_sys_mq_notify /* 4275 */ 481 PTR compat_sys_mq_notify /* 4275 */
482 PTR compat_sys_mq_getsetattr 482 PTR compat_sys_mq_getsetattr
483 PTR sys_ni_syscall /* sys_vserver */ 483 PTR sys_ni_syscall /* sys_vserver */
484 PTR sys32_waitid 484 PTR sys_32_waitid
485 PTR sys_ni_syscall /* available, was setaltroot */ 485 PTR sys_ni_syscall /* available, was setaltroot */
486 PTR sys_add_key /* 4280 */ 486 PTR sys_add_key /* 4280 */
487 PTR sys_request_key 487 PTR sys_request_key
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
index a4e106c56ab5..830c5ef9932b 100644
--- a/arch/mips/kernel/signal.c
+++ b/arch/mips/kernel/signal.c
@@ -19,6 +19,7 @@
19#include <linux/ptrace.h> 19#include <linux/ptrace.h>
20#include <linux/unistd.h> 20#include <linux/unistd.h>
21#include <linux/compiler.h> 21#include <linux/compiler.h>
22#include <linux/syscalls.h>
22#include <linux/uaccess.h> 23#include <linux/uaccess.h>
23 24
24#include <asm/abi.h> 25#include <asm/abi.h>
@@ -338,8 +339,8 @@ asmlinkage int sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
338} 339}
339 340
340#ifdef CONFIG_TRAD_SIGNALS 341#ifdef CONFIG_TRAD_SIGNALS
341asmlinkage int sys_sigaction(int sig, const struct sigaction __user *act, 342SYSCALL_DEFINE3(sigaction, int, sig, const struct sigaction __user *, act,
342 struct sigaction __user *oact) 343 struct sigaction __user *, oact)
343{ 344{
344 struct k_sigaction new_ka, old_ka; 345 struct k_sigaction new_ka, old_ka;
345 int ret; 346 int ret;
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
index 652709b353ad..2e74075ac0ca 100644
--- a/arch/mips/kernel/signal32.c
+++ b/arch/mips/kernel/signal32.c
@@ -349,8 +349,8 @@ asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
349 return -ERESTARTNOHAND; 349 return -ERESTARTNOHAND;
350} 350}
351 351
352asmlinkage int sys32_sigaction(int sig, const struct sigaction32 __user *act, 352SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act,
353 struct sigaction32 __user *oact) 353 struct sigaction32 __user *, oact)
354{ 354{
355 struct k_sigaction new_ka, old_ka; 355 struct k_sigaction new_ka, old_ka;
356 int ret; 356 int ret;
@@ -704,9 +704,9 @@ struct mips_abi mips_abi_32 = {
704 .restart = __NR_O32_restart_syscall 704 .restart = __NR_O32_restart_syscall
705}; 705};
706 706
707asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, 707SYSCALL_DEFINE4(32_rt_sigaction, int, sig,
708 struct sigaction32 __user *oact, 708 const struct sigaction32 __user *, act,
709 unsigned int sigsetsize) 709 struct sigaction32 __user *, oact, unsigned int, sigsetsize)
710{ 710{
711 struct k_sigaction new_sa, old_sa; 711 struct k_sigaction new_sa, old_sa;
712 int ret = -EINVAL; 712 int ret = -EINVAL;
@@ -748,8 +748,8 @@ out:
748 return ret; 748 return ret;
749} 749}
750 750
751asmlinkage int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, 751SYSCALL_DEFINE4(32_rt_sigprocmask, int, how, compat_sigset_t __user *, set,
752 compat_sigset_t __user *oset, unsigned int sigsetsize) 752 compat_sigset_t __user *, oset, unsigned int, sigsetsize)
753{ 753{
754 sigset_t old_set, new_set; 754 sigset_t old_set, new_set;
755 int ret; 755 int ret;
@@ -770,8 +770,8 @@ asmlinkage int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set,
770 return ret; 770 return ret;
771} 771}
772 772
773asmlinkage int sys32_rt_sigpending(compat_sigset_t __user *uset, 773SYSCALL_DEFINE2(32_rt_sigpending, compat_sigset_t __user *, uset,
774 unsigned int sigsetsize) 774 unsigned int, sigsetsize)
775{ 775{
776 int ret; 776 int ret;
777 sigset_t set; 777 sigset_t set;
@@ -787,7 +787,8 @@ asmlinkage int sys32_rt_sigpending(compat_sigset_t __user *uset,
787 return ret; 787 return ret;
788} 788}
789 789
790asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo) 790SYSCALL_DEFINE3(32_rt_sigqueueinfo, int, pid, int, sig,
791 compat_siginfo_t __user *, uinfo)
791{ 792{
792 siginfo_t info; 793 siginfo_t info;
793 int ret; 794 int ret;
@@ -802,10 +803,9 @@ asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *
802 return ret; 803 return ret;
803} 804}
804 805
805asmlinkage long 806SYSCALL_DEFINE5(32_waitid, int, which, compat_pid_t, pid,
806sys32_waitid(int which, compat_pid_t pid, 807 compat_siginfo_t __user *, uinfo, int, options,
807 compat_siginfo_t __user *uinfo, int options, 808 struct compat_rusage __user *, uru)
808 struct compat_rusage __user *uru)
809{ 809{
810 siginfo_t info; 810 siginfo_t info;
811 struct rusage ru; 811 struct rusage ru;
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c
index 37970d9b2186..8cf384644040 100644
--- a/arch/mips/kernel/syscall.c
+++ b/arch/mips/kernel/syscall.c
@@ -152,9 +152,9 @@ out:
152 return error; 152 return error;
153} 153}
154 154
155asmlinkage unsigned long 155SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,
156old_mmap(unsigned long addr, unsigned long len, int prot, 156 unsigned long, prot, unsigned long, flags, unsigned long,
157 int flags, int fd, off_t offset) 157 fd, off_t, offset)
158{ 158{
159 unsigned long result; 159 unsigned long result;
160 160
@@ -168,9 +168,9 @@ out:
168 return result; 168 return result;
169} 169}
170 170
171asmlinkage unsigned long 171SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len,
172sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, 172 unsigned long, prot, unsigned long, flags, unsigned long, fd,
173 unsigned long flags, unsigned long fd, unsigned long pgoff) 173 unsigned long, pgoff)
174{ 174{
175 if (pgoff & (~PAGE_MASK >> 12)) 175 if (pgoff & (~PAGE_MASK >> 12))
176 return -EINVAL; 176 return -EINVAL;
@@ -240,7 +240,7 @@ out:
240/* 240/*
241 * Compacrapability ... 241 * Compacrapability ...
242 */ 242 */
243asmlinkage int sys_uname(struct old_utsname __user * name) 243SYSCALL_DEFINE1(uname, struct old_utsname __user *, name)
244{ 244{
245 if (name && !copy_to_user(name, utsname(), sizeof (*name))) 245 if (name && !copy_to_user(name, utsname(), sizeof (*name)))
246 return 0; 246 return 0;
@@ -250,7 +250,7 @@ asmlinkage int sys_uname(struct old_utsname __user * name)
250/* 250/*
251 * Compacrapability ... 251 * Compacrapability ...
252 */ 252 */
253asmlinkage int sys_olduname(struct oldold_utsname __user * name) 253SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
254{ 254{
255 int error; 255 int error;
256 256
@@ -279,7 +279,7 @@ asmlinkage int sys_olduname(struct oldold_utsname __user * name)
279 return error; 279 return error;
280} 280}
281 281
282asmlinkage int sys_set_thread_area(unsigned long addr) 282SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
283{ 283{
284 struct thread_info *ti = task_thread_info(current); 284 struct thread_info *ti = task_thread_info(current);
285 285
@@ -290,7 +290,7 @@ asmlinkage int sys_set_thread_area(unsigned long addr)
290 return 0; 290 return 0;
291} 291}
292 292
293asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3) 293asmlinkage int _sys_sysmips(long cmd, long arg1, long arg2, long arg3)
294{ 294{
295 switch (cmd) { 295 switch (cmd) {
296 case MIPS_ATOMIC_SET: 296 case MIPS_ATOMIC_SET:
@@ -325,8 +325,8 @@ asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3)
325 * 325 *
326 * This is really horribly ugly. 326 * This is really horribly ugly.
327 */ 327 */
328asmlinkage int sys_ipc(unsigned int call, int first, int second, 328SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, int, second,
329 unsigned long third, void __user *ptr, long fifth) 329 unsigned long, third, void __user *, ptr, long, fifth)
330{ 330{
331 int version, ret; 331 int version, ret;
332 332
@@ -411,7 +411,7 @@ asmlinkage int sys_ipc(unsigned int call, int first, int second,
411/* 411/*
412 * No implemented yet ... 412 * No implemented yet ...
413 */ 413 */
414asmlinkage int sys_cachectl(char *addr, int nbytes, int op) 414SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op)
415{ 415{
416 return -ENOSYS; 416 return -ENOSYS;
417} 417}
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index f6083c6bfaa4..b2d7041341b8 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -944,6 +944,9 @@ asmlinkage void do_mdmx(struct pt_regs *regs)
944 force_sig(SIGILL, current); 944 force_sig(SIGILL, current);
945} 945}
946 946
947/*
948 * Called with interrupts disabled.
949 */
947asmlinkage void do_watch(struct pt_regs *regs) 950asmlinkage void do_watch(struct pt_regs *regs)
948{ 951{
949 u32 cause; 952 u32 cause;
@@ -963,9 +966,12 @@ asmlinkage void do_watch(struct pt_regs *regs)
963 */ 966 */
964 if (test_tsk_thread_flag(current, TIF_LOAD_WATCH)) { 967 if (test_tsk_thread_flag(current, TIF_LOAD_WATCH)) {
965 mips_read_watch_registers(); 968 mips_read_watch_registers();
969 local_irq_enable();
966 force_sig(SIGTRAP, current); 970 force_sig(SIGTRAP, current);
967 } else 971 } else {
968 mips_clear_watch_registers(); 972 mips_clear_watch_registers();
973 local_irq_enable();
974 }
969} 975}
970 976
971asmlinkage void do_mcheck(struct pt_regs *regs) 977asmlinkage void do_mcheck(struct pt_regs *regs)
@@ -1582,7 +1588,11 @@ void __init set_handler(unsigned long offset, void *addr, unsigned long size)
1582static char panic_null_cerr[] __cpuinitdata = 1588static char panic_null_cerr[] __cpuinitdata =
1583 "Trying to set NULL cache error exception handler"; 1589 "Trying to set NULL cache error exception handler";
1584 1590
1585/* Install uncached CPU exception handler */ 1591/*
1592 * Install uncached CPU exception handler.
1593 * This is suitable only for the cache error exception which is the only
1594 * exception handler that is being run uncached.
1595 */
1586void __cpuinit set_uncached_handler(unsigned long offset, void *addr, 1596void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
1587 unsigned long size) 1597 unsigned long size)
1588{ 1598{
@@ -1593,7 +1603,7 @@ void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
1593 unsigned long uncached_ebase = TO_UNCAC(ebase); 1603 unsigned long uncached_ebase = TO_UNCAC(ebase);
1594#endif 1604#endif
1595 if (cpu_has_mips_r2) 1605 if (cpu_has_mips_r2)
1596 ebase += (read_c0_ebase() & 0x3ffff000); 1606 uncached_ebase += (read_c0_ebase() & 0x3ffff000);
1597 1607
1598 if (!addr) 1608 if (!addr)
1599 panic(panic_null_cerr); 1609 panic(panic_null_cerr);
diff --git a/arch/mips/lib/memcpy-inatomic.S b/arch/mips/lib/memcpy-inatomic.S
index 736d0fb56a94..68853a038d3f 100644
--- a/arch/mips/lib/memcpy-inatomic.S
+++ b/arch/mips/lib/memcpy-inatomic.S
@@ -21,7 +21,7 @@
21 * end of memory on some systems. It's also a seriously bad idea on non 21 * end of memory on some systems. It's also a seriously bad idea on non
22 * dma-coherent systems. 22 * dma-coherent systems.
23 */ 23 */
24#if !defined(CONFIG_DMA_COHERENT) || !defined(CONFIG_DMA_IP27) 24#ifdef CONFIG_DMA_NONCOHERENT
25#undef CONFIG_CPU_HAS_PREFETCH 25#undef CONFIG_CPU_HAS_PREFETCH
26#endif 26#endif
27#ifdef CONFIG_MIPS_MALTA 27#ifdef CONFIG_MIPS_MALTA
diff --git a/arch/mips/lib/memcpy.S b/arch/mips/lib/memcpy.S
index c06cccf60bec..56a1f85a1ce8 100644
--- a/arch/mips/lib/memcpy.S
+++ b/arch/mips/lib/memcpy.S
@@ -21,7 +21,7 @@
21 * end of memory on some systems. It's also a seriously bad idea on non 21 * end of memory on some systems. It's also a seriously bad idea on non
22 * dma-coherent systems. 22 * dma-coherent systems.
23 */ 23 */
24#if !defined(CONFIG_DMA_COHERENT) || !defined(CONFIG_DMA_IP27) 24#ifdef CONFIG_DMA_NONCOHERENT
25#undef CONFIG_CPU_HAS_PREFETCH 25#undef CONFIG_CPU_HAS_PREFETCH
26#endif 26#endif
27#ifdef CONFIG_MIPS_MALTA 27#ifdef CONFIG_MIPS_MALTA
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 6e99665ae860..c43f4b26a690 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -618,15 +618,35 @@ static void r4k_dma_cache_inv(unsigned long addr, unsigned long size)
618 if (cpu_has_inclusive_pcaches) { 618 if (cpu_has_inclusive_pcaches) {
619 if (size >= scache_size) 619 if (size >= scache_size)
620 r4k_blast_scache(); 620 r4k_blast_scache();
621 else 621 else {
622 unsigned long lsize = cpu_scache_line_size();
623 unsigned long almask = ~(lsize - 1);
624
625 /*
626 * There is no clearly documented alignment requirement
627 * for the cache instruction on MIPS processors and
628 * some processors, among them the RM5200 and RM7000
629 * QED processors will throw an address error for cache
630 * hit ops with insufficient alignment. Solved by
631 * aligning the address to cache line size.
632 */
633 cache_op(Hit_Writeback_Inv_SD, addr & almask);
634 cache_op(Hit_Writeback_Inv_SD,
635 (addr + size - 1) & almask);
622 blast_inv_scache_range(addr, addr + size); 636 blast_inv_scache_range(addr, addr + size);
637 }
623 return; 638 return;
624 } 639 }
625 640
626 if (cpu_has_safe_index_cacheops && size >= dcache_size) { 641 if (cpu_has_safe_index_cacheops && size >= dcache_size) {
627 r4k_blast_dcache(); 642 r4k_blast_dcache();
628 } else { 643 } else {
644 unsigned long lsize = cpu_dcache_line_size();
645 unsigned long almask = ~(lsize - 1);
646
629 R4600_HIT_CACHEOP_WAR_IMPL; 647 R4600_HIT_CACHEOP_WAR_IMPL;
648 cache_op(Hit_Writeback_Inv_D, addr & almask);
649 cache_op(Hit_Writeback_Inv_D, (addr + size - 1) & almask);
630 blast_inv_dcache_range(addr, addr + size); 650 blast_inv_dcache_range(addr, addr + size);
631 } 651 }
632 652
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 98ad0a82c29e..694d51f523d1 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -13,6 +13,7 @@
13#include <linux/linkage.h> 13#include <linux/linkage.h>
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/sched.h> 15#include <linux/sched.h>
16#include <linux/syscalls.h>
16#include <linux/mm.h> 17#include <linux/mm.h>
17 18
18#include <asm/cacheflush.h> 19#include <asm/cacheflush.h>
@@ -58,8 +59,8 @@ EXPORT_SYMBOL(_dma_cache_wback_inv);
58 * We could optimize the case where the cache argument is not BCACHE but 59 * We could optimize the case where the cache argument is not BCACHE but
59 * that seems very atypical use ... 60 * that seems very atypical use ...
60 */ 61 */
61asmlinkage int sys_cacheflush(unsigned long addr, 62SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, bytes,
62 unsigned long bytes, unsigned int cache) 63 unsigned int, cache)
63{ 64{
64 if (bytes == 0) 65 if (bytes == 0)
65 return 0; 66 return 0;
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index fa636fc6b7b9..55767ad9f00e 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -97,7 +97,6 @@ good_area:
97 goto bad_area; 97 goto bad_area;
98 } 98 }
99 99
100survive:
101 /* 100 /*
102 * If for any reason at all we couldn't handle the fault, 101 * If for any reason at all we couldn't handle the fault,
103 * make sure we exit gracefully rather than endlessly redo 102 * make sure we exit gracefully rather than endlessly redo
@@ -167,21 +166,13 @@ no_context:
167 field, regs->regs[31]); 166 field, regs->regs[31]);
168 die("Oops", regs); 167 die("Oops", regs);
169 168
170/*
171 * We ran out of memory, or some other thing happened to us that made
172 * us unable to handle the page fault gracefully.
173 */
174out_of_memory: 169out_of_memory:
175 up_read(&mm->mmap_sem); 170 /*
176 if (is_global_init(tsk)) { 171 * We ran out of memory, call the OOM killer, and return the userspace
177 yield(); 172 * (which will retry the fault, or kill us if we got oom-killed).
178 down_read(&mm->mmap_sem); 173 */
179 goto survive; 174 pagefault_out_of_memory();
180 } 175 return;
181 printk("VM: killing process %s\n", tsk->comm);
182 if (user_mode(regs))
183 do_group_exit(SIGKILL);
184 goto no_context;
185 176
186do_sigbus: 177do_sigbus:
187 up_read(&mm->mmap_sem); 178 up_read(&mm->mmap_sem);
diff --git a/arch/mips/pci/pci-rc32434.c b/arch/mips/pci/pci-rc32434.c
index 1c2821e2f494..71f7d27b0d4c 100644
--- a/arch/mips/pci/pci-rc32434.c
+++ b/arch/mips/pci/pci-rc32434.c
@@ -205,6 +205,8 @@ static int __init rc32434_pcibridge_init(void)
205 205
206static int __init rc32434_pci_init(void) 206static int __init rc32434_pci_init(void)
207{ 207{
208 void __iomem *io_map_base;
209
208 pr_info("PCI: Initializing PCI\n"); 210 pr_info("PCI: Initializing PCI\n");
209 211
210 ioport_resource.start = rc32434_res_pci_io1.start; 212 ioport_resource.start = rc32434_res_pci_io1.start;
@@ -212,6 +214,15 @@ static int __init rc32434_pci_init(void)
212 214
213 rc32434_pcibridge_init(); 215 rc32434_pcibridge_init();
214 216
217 io_map_base = ioremap(rc32434_res_pci_io1.start,
218 rc32434_res_pci_io1.end - rc32434_res_pci_io1.start + 1);
219
220 if (!io_map_base)
221 return -ENOMEM;
222
223 rc32434_controller.io_map_base =
224 (unsigned long)io_map_base - rc32434_res_pci_io1.start;
225
215 register_pci_controller(&rc32434_controller); 226 register_pci_controller(&rc32434_controller);
216 rc32434_sync(); 227 rc32434_sync();
217 228
diff --git a/arch/mips/rb532/devices.c b/arch/mips/rb532/devices.c
index c1c29181bd46..4a5f05b662ae 100644
--- a/arch/mips/rb532/devices.c
+++ b/arch/mips/rb532/devices.c
@@ -24,6 +24,7 @@
24#include <linux/mtd/partitions.h> 24#include <linux/mtd/partitions.h>
25#include <linux/gpio_keys.h> 25#include <linux/gpio_keys.h>
26#include <linux/input.h> 26#include <linux/input.h>
27#include <linux/serial_8250.h>
27 28
28#include <asm/bootinfo.h> 29#include <asm/bootinfo.h>
29 30
@@ -39,6 +40,29 @@
39#define ETH0_RX_DMA_ADDR (DMA0_BASE_ADDR + 0 * DMA_CHAN_OFFSET) 40#define ETH0_RX_DMA_ADDR (DMA0_BASE_ADDR + 0 * DMA_CHAN_OFFSET)
40#define ETH0_TX_DMA_ADDR (DMA0_BASE_ADDR + 1 * DMA_CHAN_OFFSET) 41#define ETH0_TX_DMA_ADDR (DMA0_BASE_ADDR + 1 * DMA_CHAN_OFFSET)
41 42
43extern unsigned int idt_cpu_freq;
44
45static struct mpmc_device dev3;
46
47void set_latch_u5(unsigned char or_mask, unsigned char nand_mask)
48{
49 unsigned long flags;
50
51 spin_lock_irqsave(&dev3.lock, flags);
52
53 dev3.state = (dev3.state | or_mask) & ~nand_mask;
54 writeb(dev3.state, dev3.base);
55
56 spin_unlock_irqrestore(&dev3.lock, flags);
57}
58EXPORT_SYMBOL(set_latch_u5);
59
60unsigned char get_latch_u5(void)
61{
62 return dev3.state;
63}
64EXPORT_SYMBOL(get_latch_u5);
65
42static struct resource korina_dev0_res[] = { 66static struct resource korina_dev0_res[] = {
43 { 67 {
44 .name = "korina_regs", 68 .name = "korina_regs",
@@ -86,7 +110,7 @@ static struct korina_device korina_dev0_data = {
86static struct platform_device korina_dev0 = { 110static struct platform_device korina_dev0 = {
87 .id = -1, 111 .id = -1,
88 .name = "korina", 112 .name = "korina",
89 .dev.platform_data = &korina_dev0_data, 113 .dev.driver_data = &korina_dev0_data,
90 .resource = korina_dev0_res, 114 .resource = korina_dev0_res,
91 .num_resources = ARRAY_SIZE(korina_dev0_res), 115 .num_resources = ARRAY_SIZE(korina_dev0_res),
92}; 116};
@@ -214,12 +238,32 @@ static struct platform_device rb532_wdt = {
214 .num_resources = ARRAY_SIZE(rb532_wdt_res), 238 .num_resources = ARRAY_SIZE(rb532_wdt_res),
215}; 239};
216 240
241static struct plat_serial8250_port rb532_uart_res[] = {
242 {
243 .membase = (char *)KSEG1ADDR(REGBASE + UART0BASE),
244 .irq = UART0_IRQ,
245 .regshift = 2,
246 .iotype = UPIO_MEM,
247 .flags = UPF_BOOT_AUTOCONF,
248 },
249 {
250 .flags = 0,
251 }
252};
253
254static struct platform_device rb532_uart = {
255 .name = "serial8250",
256 .id = PLAT8250_DEV_PLATFORM,
257 .dev.platform_data = &rb532_uart_res,
258};
259
217static struct platform_device *rb532_devs[] = { 260static struct platform_device *rb532_devs[] = {
218 &korina_dev0, 261 &korina_dev0,
219 &nand_slot0, 262 &nand_slot0,
220 &cf_slot0, 263 &cf_slot0,
221 &rb532_led, 264 &rb532_led,
222 &rb532_button, 265 &rb532_button,
266 &rb532_uart,
223 &rb532_wdt 267 &rb532_wdt
224}; 268};
225 269
@@ -291,9 +335,20 @@ static int __init plat_setup_devices(void)
291 nand_slot0_res[0].start = readl(IDT434_REG_BASE + DEV2BASE); 335 nand_slot0_res[0].start = readl(IDT434_REG_BASE + DEV2BASE);
292 nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000; 336 nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000;
293 337
338 /* Read and map device controller 3 */
339 dev3.base = ioremap_nocache(readl(IDT434_REG_BASE + DEV3BASE), 1);
340
341 if (!dev3.base) {
342 printk(KERN_ERR "rb532: cannot remap device controller 3\n");
343 return -ENXIO;
344 }
345
294 /* Initialise the NAND device */ 346 /* Initialise the NAND device */
295 rb532_nand_setup(); 347 rb532_nand_setup();
296 348
349 /* set the uart clock to the current cpu frequency */
350 rb532_uart_res[0].uartclk = idt_cpu_freq;
351
297 return platform_add_devices(rb532_devs, ARRAY_SIZE(rb532_devs)); 352 return platform_add_devices(rb532_devs, ARRAY_SIZE(rb532_devs));
298} 353}
299 354
diff --git a/arch/mips/rb532/gpio.c b/arch/mips/rb532/gpio.c
index 0e84c8ab6a39..37de05d595e7 100644
--- a/arch/mips/rb532/gpio.c
+++ b/arch/mips/rb532/gpio.c
@@ -41,8 +41,6 @@ struct rb532_gpio_chip {
41 void __iomem *regbase; 41 void __iomem *regbase;
42}; 42};
43 43
44struct mpmc_device dev3;
45
46static struct resource rb532_gpio_reg0_res[] = { 44static struct resource rb532_gpio_reg0_res[] = {
47 { 45 {
48 .name = "gpio_reg0", 46 .name = "gpio_reg0",
@@ -52,61 +50,6 @@ static struct resource rb532_gpio_reg0_res[] = {
52 } 50 }
53}; 51};
54 52
55static struct resource rb532_dev3_ctl_res[] = {
56 {
57 .name = "dev3_ctl",
58 .start = REGBASE + DEV3BASE,
59 .end = REGBASE + DEV3BASE + sizeof(struct dev_reg) - 1,
60 .flags = IORESOURCE_MEM,
61 }
62};
63
64void set_434_reg(unsigned reg_offs, unsigned bit, unsigned len, unsigned val)
65{
66 unsigned long flags;
67 unsigned data;
68 unsigned i = 0;
69
70 spin_lock_irqsave(&dev3.lock, flags);
71
72 data = readl(IDT434_REG_BASE + reg_offs);
73 for (i = 0; i != len; ++i) {
74 if (val & (1 << i))
75 data |= (1 << (i + bit));
76 else
77 data &= ~(1 << (i + bit));
78 }
79 writel(data, (IDT434_REG_BASE + reg_offs));
80
81 spin_unlock_irqrestore(&dev3.lock, flags);
82}
83EXPORT_SYMBOL(set_434_reg);
84
85unsigned get_434_reg(unsigned reg_offs)
86{
87 return readl(IDT434_REG_BASE + reg_offs);
88}
89EXPORT_SYMBOL(get_434_reg);
90
91void set_latch_u5(unsigned char or_mask, unsigned char nand_mask)
92{
93 unsigned long flags;
94
95 spin_lock_irqsave(&dev3.lock, flags);
96
97 dev3.state = (dev3.state | or_mask) & ~nand_mask;
98 writel(dev3.state, &dev3.base);
99
100 spin_unlock_irqrestore(&dev3.lock, flags);
101}
102EXPORT_SYMBOL(set_latch_u5);
103
104unsigned char get_latch_u5(void)
105{
106 return dev3.state;
107}
108EXPORT_SYMBOL(get_latch_u5);
109
110/* rb532_set_bit - sanely set a bit 53/* rb532_set_bit - sanely set a bit
111 * 54 *
112 * bitval: new value for the bit 55 * bitval: new value for the bit
@@ -119,13 +62,11 @@ static inline void rb532_set_bit(unsigned bitval,
119 unsigned long flags; 62 unsigned long flags;
120 u32 val; 63 u32 val;
121 64
122 bitval = !!bitval; /* map parameter to {0,1} */
123
124 local_irq_save(flags); 65 local_irq_save(flags);
125 66
126 val = readl(ioaddr); 67 val = readl(ioaddr);
127 val &= ~( ~bitval << offset ); /* unset bit if bitval == 0 */ 68 val &= ~(!bitval << offset); /* unset bit if bitval == 0 */
128 val |= ( bitval << offset ); /* set bit if bitval == 1 */ 69 val |= (!!bitval << offset); /* set bit if bitval == 1 */
129 writel(val, ioaddr); 70 writel(val, ioaddr);
130 71
131 local_irq_restore(flags); 72 local_irq_restore(flags);
@@ -171,8 +112,8 @@ static int rb532_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
171 112
172 gpch = container_of(chip, struct rb532_gpio_chip, chip); 113 gpch = container_of(chip, struct rb532_gpio_chip, chip);
173 114
174 if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC)) 115 /* disable alternate function in case it's set */
175 return 1; /* alternate function, GPIOCFG is ignored */ 116 rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC);
176 117
177 rb532_set_bit(0, offset, gpch->regbase + GPIOCFG); 118 rb532_set_bit(0, offset, gpch->regbase + GPIOCFG);
178 return 0; 119 return 0;
@@ -188,8 +129,8 @@ static int rb532_gpio_direction_output(struct gpio_chip *chip,
188 129
189 gpch = container_of(chip, struct rb532_gpio_chip, chip); 130 gpch = container_of(chip, struct rb532_gpio_chip, chip);
190 131
191 if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC)) 132 /* disable alternate function in case it's set */
192 return 1; /* alternate function, GPIOCFG is ignored */ 133 rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC);
193 134
194 /* set the initial output value */ 135 /* set the initial output value */
195 rb532_set_bit(value, offset, gpch->regbase + GPIOD); 136 rb532_set_bit(value, offset, gpch->regbase + GPIOD);
@@ -233,10 +174,11 @@ EXPORT_SYMBOL(rb532_gpio_set_istat);
233/* 174/*
234 * Configure GPIO alternate function 175 * Configure GPIO alternate function
235 */ 176 */
236static void rb532_gpio_set_func(int bit, unsigned gpio) 177void rb532_gpio_set_func(unsigned gpio)
237{ 178{
238 rb532_set_bit(bit, gpio, rb532_gpio_chip->regbase + GPIOFUNC); 179 rb532_set_bit(1, gpio, rb532_gpio_chip->regbase + GPIOFUNC);
239} 180}
181EXPORT_SYMBOL(rb532_gpio_set_func);
240 182
241int __init rb532_gpio_init(void) 183int __init rb532_gpio_init(void)
242{ 184{
@@ -253,20 +195,6 @@ int __init rb532_gpio_init(void)
253 /* Register our GPIO chip */ 195 /* Register our GPIO chip */
254 gpiochip_add(&rb532_gpio_chip->chip); 196 gpiochip_add(&rb532_gpio_chip->chip);
255 197
256 r = rb532_dev3_ctl_res;
257 dev3.base = ioremap_nocache(r->start, r->end - r->start);
258
259 if (!dev3.base) {
260 printk(KERN_ERR "rb532: cannot remap device controller 3\n");
261 return -ENXIO;
262 }
263
264 /* configure CF_GPIO_NUM as CFRDY IRQ source */
265 rb532_gpio_set_func(0, CF_GPIO_NUM);
266 rb532_gpio_direction_input(&rb532_gpio_chip->chip, CF_GPIO_NUM);
267 rb532_gpio_set_ilevel(1, CF_GPIO_NUM);
268 rb532_gpio_set_istat(0, CF_GPIO_NUM);
269
270 return 0; 198 return 0;
271} 199}
272arch_initcall(rb532_gpio_init); 200arch_initcall(rb532_gpio_init);
diff --git a/arch/mips/rb532/irq.c b/arch/mips/rb532/irq.c
index 549b46d2fcee..53eeb5e7bc5b 100644
--- a/arch/mips/rb532/irq.c
+++ b/arch/mips/rb532/irq.c
@@ -46,6 +46,7 @@
46#include <asm/system.h> 46#include <asm/system.h>
47 47
48#include <asm/mach-rc32434/irq.h> 48#include <asm/mach-rc32434/irq.h>
49#include <asm/mach-rc32434/gpio.h>
49 50
50struct intr_group { 51struct intr_group {
51 u32 mask; /* mask of valid bits in pending/mask registers */ 52 u32 mask; /* mask of valid bits in pending/mask registers */
@@ -150,6 +151,9 @@ static void rb532_disable_irq(unsigned int irq_nr)
150 mask |= intr_bit; 151 mask |= intr_bit;
151 WRITE_MASK(addr, mask); 152 WRITE_MASK(addr, mask);
152 153
154 if (group == GPIO_MAPPED_IRQ_GROUP)
155 rb532_gpio_set_istat(0, irq_nr - GPIO_MAPPED_IRQ_BASE);
156
153 /* 157 /*
154 * if there are no more interrupts enabled in this 158 * if there are no more interrupts enabled in this
155 * group, disable corresponding IP 159 * group, disable corresponding IP
@@ -165,12 +169,35 @@ static void rb532_mask_and_ack_irq(unsigned int irq_nr)
165 ack_local_irq(group_to_ip(irq_to_group(irq_nr))); 169 ack_local_irq(group_to_ip(irq_to_group(irq_nr)));
166} 170}
167 171
172static int rb532_set_type(unsigned int irq_nr, unsigned type)
173{
174 int gpio = irq_nr - GPIO_MAPPED_IRQ_BASE;
175 int group = irq_to_group(irq_nr);
176
177 if (group != GPIO_MAPPED_IRQ_GROUP)
178 return (type == IRQ_TYPE_LEVEL_HIGH) ? 0 : -EINVAL;
179
180 switch (type) {
181 case IRQ_TYPE_LEVEL_HIGH:
182 rb532_gpio_set_ilevel(1, gpio);
183 break;
184 case IRQ_TYPE_LEVEL_LOW:
185 rb532_gpio_set_ilevel(0, gpio);
186 break;
187 default:
188 return -EINVAL;
189 }
190
191 return 0;
192}
193
168static struct irq_chip rc32434_irq_type = { 194static struct irq_chip rc32434_irq_type = {
169 .name = "RB532", 195 .name = "RB532",
170 .ack = rb532_disable_irq, 196 .ack = rb532_disable_irq,
171 .mask = rb532_disable_irq, 197 .mask = rb532_disable_irq,
172 .mask_ack = rb532_mask_and_ack_irq, 198 .mask_ack = rb532_mask_and_ack_irq,
173 .unmask = rb532_enable_irq, 199 .unmask = rb532_enable_irq,
200 .set_type = rb532_set_type,
174}; 201};
175 202
176void __init arch_init_irq(void) 203void __init arch_init_irq(void)
diff --git a/arch/mips/rb532/serial.c b/arch/mips/rb532/serial.c
index 3e0d7ec3a579..00ed19f0bdb5 100644
--- a/arch/mips/rb532/serial.c
+++ b/arch/mips/rb532/serial.c
@@ -36,7 +36,7 @@
36extern unsigned int idt_cpu_freq; 36extern unsigned int idt_cpu_freq;
37 37
38static struct uart_port rb532_uart = { 38static struct uart_port rb532_uart = {
39 .type = PORT_16550A, 39 .flags = UPF_BOOT_AUTOCONF,
40 .line = 0, 40 .line = 0,
41 .irq = UART0_IRQ, 41 .irq = UART0_IRQ,
42 .iotype = UPIO_MEM, 42 .iotype = UPIO_MEM,
diff --git a/arch/mips/txx9/generic/setup_tx4939.c b/arch/mips/txx9/generic/setup_tx4939.c
index 6c0049a5bbc1..55440967b3a8 100644
--- a/arch/mips/txx9/generic/setup_tx4939.c
+++ b/arch/mips/txx9/generic/setup_tx4939.c
@@ -435,6 +435,28 @@ void __init tx4939_ata_init(void)
435 platform_device_register(&ata1_dev); 435 platform_device_register(&ata1_dev);
436} 436}
437 437
438void __init tx4939_rtc_init(void)
439{
440 static struct resource res[] = {
441 {
442 .start = TX4939_RTC_REG & 0xfffffffffULL,
443 .end = (TX4939_RTC_REG & 0xfffffffffULL) + 0x100 - 1,
444 .flags = IORESOURCE_MEM,
445 }, {
446 .start = TXX9_IRQ_BASE + TX4939_IR_RTC,
447 .flags = IORESOURCE_IRQ,
448 },
449 };
450 static struct platform_device rtc_dev = {
451 .name = "tx4939rtc",
452 .id = -1,
453 .num_resources = ARRAY_SIZE(res),
454 .resource = res,
455 };
456
457 platform_device_register(&rtc_dev);
458}
459
438static void __init tx4939_stop_unused_modules(void) 460static void __init tx4939_stop_unused_modules(void)
439{ 461{
440 __u64 pcfg, rst = 0, ckd = 0; 462 __u64 pcfg, rst = 0, ckd = 0;
diff --git a/arch/mips/txx9/rbtx4939/setup.c b/arch/mips/txx9/rbtx4939/setup.c
index 98fbd9391bf8..656603b85b71 100644
--- a/arch/mips/txx9/rbtx4939/setup.c
+++ b/arch/mips/txx9/rbtx4939/setup.c
@@ -336,6 +336,7 @@ static void __init rbtx4939_device_init(void)
336 rbtx4939_led_setup(); 336 rbtx4939_led_setup();
337 tx4939_wdt_init(); 337 tx4939_wdt_init();
338 tx4939_ata_init(); 338 tx4939_ata_init();
339 tx4939_rtc_init();
339} 340}
340 341
341static void __init rbtx4939_setup(void) 342static void __init rbtx4939_setup(void)
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 9a9f43358879..41d16822e616 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -7,6 +7,7 @@ mainmenu "Linux Kernel Configuration"
7 7
8config MN10300 8config MN10300
9 def_bool y 9 def_bool y
10 select HAVE_OPROFILE
10 11
11config AM33 12config AM33
12 def_bool y 13 def_bool y
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S
index 62fba8aa9b6e..ceeaaaa359e2 100644
--- a/arch/mn10300/kernel/entry.S
+++ b/arch/mn10300/kernel/entry.S
@@ -478,7 +478,7 @@ ENTRY(sys_call_table)
478 .long sys_uselib 478 .long sys_uselib
479 .long sys_swapon 479 .long sys_swapon
480 .long sys_reboot 480 .long sys_reboot
481 .long old_readdir 481 .long sys_old_readdir
482 .long old_mmap /* 90 */ 482 .long old_mmap /* 90 */
483 .long sys_munmap 483 .long sys_munmap
484 .long sys_truncate 484 .long sys_truncate
diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c
index 1a86425fec42..07dbbcda3b2e 100644
--- a/arch/mn10300/unit-asb2305/pci.c
+++ b/arch/mn10300/unit-asb2305/pci.c
@@ -173,7 +173,7 @@ static int pci_ampci_write_config_byte(struct pci_bus *bus, unsigned int devfn,
173 BRIDGEREGB(where) = value; 173 BRIDGEREGB(where) = value;
174 } else { 174 } else {
175 if (bus->number == 0 && 175 if (bus->number == 0 &&
176 (devfn == PCI_DEVFN(2, 0) && devfn == PCI_DEVFN(3, 0)) 176 (devfn == PCI_DEVFN(2, 0) || devfn == PCI_DEVFN(3, 0))
177 ) 177 )
178 __pcidebug("<= %02x", bus, devfn, where, value); 178 __pcidebug("<= %02x", bus, devfn, where, value);
179 CONFIG_ADDRESS = CONFIG_CMD(bus, devfn, where); 179 CONFIG_ADDRESS = CONFIG_CMD(bus, devfn, where);
diff --git a/arch/parisc/include/asm/Kbuild b/arch/parisc/include/asm/Kbuild
index 2121d99f8364..f88b252e419c 100644
--- a/arch/parisc/include/asm/Kbuild
+++ b/arch/parisc/include/asm/Kbuild
@@ -1,4 +1,3 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3unifdef-y += pdc.h 3unifdef-y += pdc.h
4unifdef-y += swab.h
diff --git a/arch/parisc/include/asm/byteorder.h b/arch/parisc/include/asm/byteorder.h
index da66029c4cb2..58af2c5f5d61 100644
--- a/arch/parisc/include/asm/byteorder.h
+++ b/arch/parisc/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _PARISC_BYTEORDER_H 1#ifndef _PARISC_BYTEORDER_H
2#define _PARISC_BYTEORDER_H 2#define _PARISC_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h> 4#include <linux/byteorder/big_endian.h>
6 5
7#endif /* _PARISC_BYTEORDER_H */ 6#endif /* _PARISC_BYTEORDER_H */
diff --git a/arch/parisc/include/asm/dma-mapping.h b/arch/parisc/include/asm/dma-mapping.h
index 53af696f23d2..da6943380908 100644
--- a/arch/parisc/include/asm/dma-mapping.h
+++ b/arch/parisc/include/asm/dma-mapping.h
@@ -5,7 +5,7 @@
5#include <asm/cacheflush.h> 5#include <asm/cacheflush.h>
6#include <asm/scatterlist.h> 6#include <asm/scatterlist.h>
7 7
8/* See Documentation/DMA-mapping.txt */ 8/* See Documentation/PCI/PCI-DMA-mapping.txt */
9struct hppa_dma_ops { 9struct hppa_dma_ops {
10 int (*dma_supported)(struct device *dev, u64 mask); 10 int (*dma_supported)(struct device *dev, u64 mask);
11 void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag); 11 void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag);
diff --git a/arch/parisc/include/asm/pdc.h b/arch/parisc/include/asm/pdc.h
index c584b00c6074..430f1aeea0b8 100644
--- a/arch/parisc/include/asm/pdc.h
+++ b/arch/parisc/include/asm/pdc.h
@@ -336,10 +336,11 @@
336#define NUM_PDC_RESULT 32 336#define NUM_PDC_RESULT 32
337 337
338#if !defined(__ASSEMBLY__) 338#if !defined(__ASSEMBLY__)
339#ifdef __KERNEL__
340 339
341#include <linux/types.h> 340#include <linux/types.h>
342 341
342#ifdef __KERNEL__
343
343extern int pdc_type; 344extern int pdc_type;
344 345
345/* Values for pdc_type */ 346/* Values for pdc_type */
diff --git a/arch/parisc/include/asm/swab.h b/arch/parisc/include/asm/swab.h
index 3ff16c5a3358..e78403b129ef 100644
--- a/arch/parisc/include/asm/swab.h
+++ b/arch/parisc/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _PARISC_SWAB_H 1#ifndef _PARISC_SWAB_H
2#define _PARISC_SWAB_H 2#define _PARISC_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6 6
7#define __SWAB_64_THRU_32__ 7#define __SWAB_64_THRU_32__
diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c
index ccd61b9567a6..df47895db828 100644
--- a/arch/parisc/kernel/pci-dma.c
+++ b/arch/parisc/kernel/pci-dma.c
@@ -2,7 +2,7 @@
2** PARISC 1.1 Dynamic DMA mapping support. 2** PARISC 1.1 Dynamic DMA mapping support.
3** This implementation is for PA-RISC platforms that do not support 3** This implementation is for PA-RISC platforms that do not support
4** I/O TLBs (aka DMA address translation hardware). 4** I/O TLBs (aka DMA address translation hardware).
5** See Documentation/DMA-mapping.txt for interface definitions. 5** See Documentation/PCI/PCI-DMA-mapping.txt for interface definitions.
6** 6**
7** (c) Copyright 1999,2000 Hewlett-Packard Company 7** (c) Copyright 1999,2000 Hewlett-Packard Company
8** (c) Copyright 2000 Grant Grundler 8** (c) Copyright 2000 Grant Grundler
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 84b861316ce7..74cc312c347c 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -123,6 +123,7 @@ config PPC
123 select HAVE_DMA_ATTRS if PPC64 123 select HAVE_DMA_ATTRS if PPC64
124 select USE_GENERIC_SMP_HELPERS if SMP 124 select USE_GENERIC_SMP_HELPERS if SMP
125 select HAVE_OPROFILE 125 select HAVE_OPROFILE
126 select HAVE_SYSCALL_WRAPPERS if PPC64
126 127
127config EARLY_PRINTK 128config EARLY_PRINTK
128 bool 129 bool
@@ -875,10 +876,6 @@ source "drivers/Kconfig"
875 876
876source "fs/Kconfig" 877source "fs/Kconfig"
877 878
878# XXX source "arch/ppc/8xx_io/Kconfig"
879
880# XXX source "arch/ppc/8260_io/Kconfig"
881
882source "arch/powerpc/sysdev/qe_lib/Kconfig" 879source "arch/powerpc/sysdev/qe_lib/Kconfig"
883 880
884source "lib/Kconfig" 881source "lib/Kconfig"
diff --git a/arch/powerpc/boot/cuboot-warp.c b/arch/powerpc/boot/cuboot-warp.c
index 21780210057d..806df693fea6 100644
--- a/arch/powerpc/boot/cuboot-warp.c
+++ b/arch/powerpc/boot/cuboot-warp.c
@@ -18,57 +18,14 @@
18 18
19static bd_t bd; 19static bd_t bd;
20 20
21static void warp_fixup_one_nor(u32 from, u32 to)
22{
23 void *devp;
24 char name[50];
25 u32 v[2];
26
27 sprintf(name, "/plb/opb/ebc/nor_flash@0,0/partition@%x", from);
28
29 devp = finddevice(name);
30 if (!devp)
31 return;
32
33 if (getprop(devp, "reg", v, sizeof(v)) == sizeof(v)) {
34 v[0] = to;
35 setprop(devp, "reg", v, sizeof(v));
36
37 printf("NOR 64M fixup %x -> %x\r\n", from, to);
38 }
39}
40
41
42static void warp_fixups(void) 21static void warp_fixups(void)
43{ 22{
44 ibm440ep_fixup_clocks(66000000, 11059200, 50000000); 23 ibm440ep_fixup_clocks(66000000, 11059200, 50000000);
45 ibm4xx_sdram_fixup_memsize(); 24 ibm4xx_sdram_fixup_memsize();
46 ibm4xx_fixup_ebc_ranges("/plb/opb/ebc"); 25 ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
47 dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr); 26 dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
48
49 /* Fixup for 64M flash on Rev A boards. */
50 if (bd.bi_flashsize == 0x4000000) {
51 void *devp;
52 u32 v[3];
53
54 devp = finddevice("/plb/opb/ebc/nor_flash@0,0");
55 if (!devp)
56 return;
57
58 /* Fixup the size */
59 if (getprop(devp, "reg", v, sizeof(v)) == sizeof(v)) {
60 v[2] = bd.bi_flashsize;
61 setprop(devp, "reg", v, sizeof(v));
62 }
63
64 /* Fixup parition offsets */
65 warp_fixup_one_nor(0x300000, 0x3f00000);
66 warp_fixup_one_nor(0x340000, 0x3f40000);
67 warp_fixup_one_nor(0x380000, 0x3f80000);
68 }
69} 27}
70 28
71
72void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, 29void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
73 unsigned long r6, unsigned long r7) 30 unsigned long r6, unsigned long r7)
74{ 31{
diff --git a/arch/powerpc/boot/dts/haleakala.dts b/arch/powerpc/boot/dts/haleakala.dts
index 513bc43a71af..5b2a4947bf82 100644
--- a/arch/powerpc/boot/dts/haleakala.dts
+++ b/arch/powerpc/boot/dts/haleakala.dts
@@ -89,8 +89,11 @@
89 clock-frequency = <0>; /* Filled in by U-Boot */ 89 clock-frequency = <0>; /* Filled in by U-Boot */
90 90
91 SDRAM0: memory-controller { 91 SDRAM0: memory-controller {
92 compatible = "ibm,sdram-405exr"; 92 compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2";
93 dcr-reg = <0x010 0x002>; 93 dcr-reg = <0x010 0x002>;
94 interrupt-parent = <&UIC2>;
95 interrupts = <0x5 0x4 /* ECC DED Error */
96 0x6 0x4>; /* ECC SEC Error */
94 }; 97 };
95 98
96 MAL0: mcmal { 99 MAL0: mcmal {
diff --git a/arch/powerpc/boot/dts/kilauea.dts b/arch/powerpc/boot/dts/kilauea.dts
index dececc4b5ff2..2804444812e5 100644
--- a/arch/powerpc/boot/dts/kilauea.dts
+++ b/arch/powerpc/boot/dts/kilauea.dts
@@ -90,8 +90,11 @@
90 clock-frequency = <0>; /* Filled in by U-Boot */ 90 clock-frequency = <0>; /* Filled in by U-Boot */
91 91
92 SDRAM0: memory-controller { 92 SDRAM0: memory-controller {
93 compatible = "ibm,sdram-405ex"; 93 compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
94 dcr-reg = <0x010 0x002>; 94 dcr-reg = <0x010 0x002>;
95 interrupt-parent = <&UIC2>;
96 interrupts = <0x5 0x4 /* ECC DED Error */
97 0x6 0x4>; /* ECC SEC Error */
95 }; 98 };
96 99
97 MAL0: mcmal { 100 MAL0: mcmal {
diff --git a/arch/powerpc/boot/dts/makalu.dts b/arch/powerpc/boot/dts/makalu.dts
index 945508c7e7d8..ffc246e72670 100644
--- a/arch/powerpc/boot/dts/makalu.dts
+++ b/arch/powerpc/boot/dts/makalu.dts
@@ -90,8 +90,11 @@
90 clock-frequency = <0>; /* Filled in by U-Boot */ 90 clock-frequency = <0>; /* Filled in by U-Boot */
91 91
92 SDRAM0: memory-controller { 92 SDRAM0: memory-controller {
93 compatible = "ibm,sdram-405ex"; 93 compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
94 dcr-reg = <0x010 0x002>; 94 dcr-reg = <0x010 0x002>;
95 interrupt-parent = <&UIC2>;
96 interrupts = <0x5 0x4 /* ECC DED Error */
97 0x6 0x4 /* ECC SEC Error */ >;
95 }; 98 };
96 99
97 MAL0: mcmal { 100 MAL0: mcmal {
diff --git a/arch/powerpc/boot/dts/mpc8313erdb.dts b/arch/powerpc/boot/dts/mpc8313erdb.dts
index d4df8b6857a4..3ebf7ec0484c 100644
--- a/arch/powerpc/boot/dts/mpc8313erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8313erdb.dts
@@ -185,13 +185,14 @@
185 cell-index = <0>; 185 cell-index = <0>;
186 device_type = "network"; 186 device_type = "network";
187 model = "eTSEC"; 187 model = "eTSEC";
188 compatible = "gianfar", "simple-bus"; 188 compatible = "gianfar";
189 reg = <0x24000 0x1000>; 189 reg = <0x24000 0x1000>;
190 local-mac-address = [ 00 00 00 00 00 00 ]; 190 local-mac-address = [ 00 00 00 00 00 00 ];
191 interrupts = <37 0x8 36 0x8 35 0x8>; 191 interrupts = <37 0x8 36 0x8 35 0x8>;
192 interrupt-parent = <&ipic>; 192 interrupt-parent = <&ipic>;
193 tbi-handle = < &tbi0 >; 193 tbi-handle = < &tbi0 >;
194 phy-handle = < &phy1 >; 194 /* Vitesse 7385 isn't on the MDIO bus */
195 fixed-link = <1 1 1000 0 0>;
195 fsl,magic-packet; 196 fsl,magic-packet;
196 197
197 mdio@24520 { 198 mdio@24520 {
@@ -199,12 +200,6 @@
199 #size-cells = <0>; 200 #size-cells = <0>;
200 compatible = "fsl,gianfar-mdio"; 201 compatible = "fsl,gianfar-mdio";
201 reg = <0x24520 0x20>; 202 reg = <0x24520 0x20>;
202 phy1: ethernet-phy@1 {
203 interrupt-parent = <&ipic>;
204 interrupts = <19 0x8>;
205 reg = <0x1>;
206 device_type = "ethernet-phy";
207 };
208 phy4: ethernet-phy@4 { 203 phy4: ethernet-phy@4 {
209 interrupt-parent = <&ipic>; 204 interrupt-parent = <&ipic>;
210 interrupts = <20 0x8>; 205 interrupts = <20 0x8>;
@@ -219,6 +214,8 @@
219 }; 214 };
220 215
221 enet1: ethernet@25000 { 216 enet1: ethernet@25000 {
217 #address-cells = <1>;
218 #size-cells = <1>;
222 cell-index = <1>; 219 cell-index = <1>;
223 device_type = "network"; 220 device_type = "network";
224 model = "eTSEC"; 221 model = "eTSEC";
diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts
index 072c9b0f8c8e..71784165b77e 100644
--- a/arch/powerpc/boot/dts/mpc8315erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8315erdb.dts
@@ -255,7 +255,7 @@
255 device_type = "serial"; 255 device_type = "serial";
256 compatible = "ns16550"; 256 compatible = "ns16550";
257 reg = <0x4500 0x100>; 257 reg = <0x4500 0x100>;
258 clock-frequency = <0>; 258 clock-frequency = <133333333>;
259 interrupts = <9 0x8>; 259 interrupts = <9 0x8>;
260 interrupt-parent = <&ipic>; 260 interrupt-parent = <&ipic>;
261 }; 261 };
@@ -265,7 +265,7 @@
265 device_type = "serial"; 265 device_type = "serial";
266 compatible = "ns16550"; 266 compatible = "ns16550";
267 reg = <0x4600 0x100>; 267 reg = <0x4600 0x100>;
268 clock-frequency = <0>; 268 clock-frequency = <133333333>;
269 interrupts = <10 0x8>; 269 interrupts = <10 0x8>;
270 interrupt-parent = <&ipic>; 270 interrupt-parent = <&ipic>;
271 }; 271 };
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts
index b9da42105066..0668d1048779 100644
--- a/arch/powerpc/boot/dts/mpc8544ds.dts
+++ b/arch/powerpc/boot/dts/mpc8544ds.dts
@@ -313,7 +313,7 @@
313 0x1000000 0x0 0x0 0xe1010000 0x0 0x10000>; 313 0x1000000 0x0 0x0 0xe1010000 0x0 0x10000>;
314 clock-frequency = <33333333>; 314 clock-frequency = <33333333>;
315 interrupt-parent = <&mpic>; 315 interrupt-parent = <&mpic>;
316 interrupts = <26 2>; 316 interrupts = <25 2>;
317 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 317 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
318 interrupt-map = < 318 interrupt-map = <
319 /* IDSEL 0x0 */ 319 /* IDSEL 0x0 */
@@ -350,7 +350,7 @@
350 0x1000000 0x0 0x0 0xe1020000 0x0 0x10000>; 350 0x1000000 0x0 0x0 0xe1020000 0x0 0x10000>;
351 clock-frequency = <33333333>; 351 clock-frequency = <33333333>;
352 interrupt-parent = <&mpic>; 352 interrupt-parent = <&mpic>;
353 interrupts = <25 2>; 353 interrupts = <26 2>;
354 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 354 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
355 interrupt-map = < 355 interrupt-map = <
356 /* IDSEL 0x0 */ 356 /* IDSEL 0x0 */
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts
index 21459e161d02..359c3b727420 100644
--- a/arch/powerpc/boot/dts/mpc8572ds.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds.dts
@@ -89,7 +89,7 @@
89 89
90 ramdisk@0 { 90 ramdisk@0 {
91 reg = <0x0 0x03000000>; 91 reg = <0x0 0x03000000>;
92 readl-only; 92 read-only;
93 }; 93 };
94 94
95 diagnostic@3000000 { 95 diagnostic@3000000 {
@@ -724,7 +724,7 @@
724 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x00010000>; 724 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x00010000>;
725 clock-frequency = <33333333>; 725 clock-frequency = <33333333>;
726 interrupt-parent = <&mpic>; 726 interrupt-parent = <&mpic>;
727 interrupts = <26 2>; 727 interrupts = <25 2>;
728 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 728 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
729 interrupt-map = < 729 interrupt-map = <
730 /* IDSEL 0x0 */ 730 /* IDSEL 0x0 */
@@ -761,7 +761,7 @@
761 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x00010000>; 761 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x00010000>;
762 clock-frequency = <33333333>; 762 clock-frequency = <33333333>;
763 interrupt-parent = <&mpic>; 763 interrupt-parent = <&mpic>;
764 interrupts = <27 2>; 764 interrupts = <26 2>;
765 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 765 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
766 interrupt-map = < 766 interrupt-map = <
767 /* IDSEL 0x0 */ 767 /* IDSEL 0x0 */
diff --git a/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts b/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
index c114c4ee9931..fd462efa9e61 100644
--- a/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
@@ -457,7 +457,7 @@
457 0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>; 457 0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>;
458 clock-frequency = <33333333>; 458 clock-frequency = <33333333>;
459 interrupt-parent = <&mpic>; 459 interrupt-parent = <&mpic>;
460 interrupts = <26 2>; 460 interrupts = <25 2>;
461 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 461 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
462 interrupt-map = < 462 interrupt-map = <
463 /* IDSEL 0x0 */ 463 /* IDSEL 0x0 */
diff --git a/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts b/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
index 04ecda18d206..e35230f2ac93 100644
--- a/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
@@ -208,7 +208,7 @@
208 0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>; 208 0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>;
209 clock-frequency = <33333333>; 209 clock-frequency = <33333333>;
210 interrupt-parent = <&mpic>; 210 interrupt-parent = <&mpic>;
211 interrupts = <27 2>; 211 interrupts = <26 2>;
212 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 212 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
213 interrupt-map = < 213 interrupt-map = <
214 /* IDSEL 0x0 */ 214 /* IDSEL 0x0 */
diff --git a/arch/powerpc/boot/dts/warp.dts b/arch/powerpc/boot/dts/warp.dts
index f4e4ba69eef7..7e183ff9a317 100644
--- a/arch/powerpc/boot/dts/warp.dts
+++ b/arch/powerpc/boot/dts/warp.dts
@@ -149,12 +149,17 @@
149 reg = <0x00000002 0x00004000 0x00000A00>; 149 reg = <0x00000002 0x00004000 0x00000A00>;
150 }; 150 };
151 151
152 nor_flash@0,0 { 152 nor@0,0 {
153 compatible = "amd,s29gl032a", "cfi-flash"; 153 compatible = "amd,s29gl032a", "cfi-flash";
154 bank-width = <2>; 154 bank-width = <2>;
155 reg = <0x00000000 0x00000000 0x00400000>; 155 reg = <0x00000000 0x00000000 0x00400000>;
156 #address-cells = <1>; 156 #address-cells = <1>;
157 #size-cells = <1>; 157 #size-cells = <1>;
158
159 partition@0 {
160 label = "splash";
161 reg = <0x00000000 0x00020000>;
162 };
158 partition@300000 { 163 partition@300000 {
159 label = "fpga"; 164 label = "fpga";
160 reg = <0x0300000 0x00040000>; 165 reg = <0x0300000 0x00040000>;
@@ -168,6 +173,41 @@
168 reg = <0x0380000 0x00080000>; 173 reg = <0x0380000 0x00080000>;
169 }; 174 };
170 }; 175 };
176
177 ndfc@1,0 {
178 compatible = "ibm,ndfc";
179 reg = <0x00000001 0x00000000 0x00002000>;
180 ccr = <0x00001000>;
181 bank-settings = <0x80002222>;
182 #address-cells = <1>;
183 #size-cells = <1>;
184
185 nand {
186 #address-cells = <1>;
187 #size-cells = <1>;
188
189 partition@0 {
190 label = "kernel";
191 reg = <0x00000000 0x00200000>;
192 };
193 partition@200000 {
194 label = "root";
195 reg = <0x00200000 0x03E00000>;
196 };
197 partition@40000000 {
198 label = "persistent";
199 reg = <0x04000000 0x04000000>;
200 };
201 partition@80000000 {
202 label = "persistent1";
203 reg = <0x08000000 0x04000000>;
204 };
205 partition@C0000000 {
206 label = "persistent2";
207 reg = <0x0C000000 0x04000000>;
208 };
209 };
210 };
171 }; 211 };
172 212
173 UART0: serial@ef600300 { 213 UART0: serial@ef600300 {
diff --git a/arch/powerpc/configs/40x/acadia_defconfig b/arch/powerpc/configs/40x/acadia_defconfig
index 25572cc837ca..a32ec8d323a0 100644
--- a/arch/powerpc/configs/40x/acadia_defconfig
+++ b/arch/powerpc/configs/40x/acadia_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:18 2008 4# Tue Jan 20 08:17:46 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155# CONFIG_PPC4xx_PCI_EXPRESS is not set 157# CONFIG_PPC4xx_PCI_EXPRESS is not set
156 158
@@ -182,6 +184,7 @@ CONFIG_405EZ=y
182# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_SIMPLE_GPIO is not set
185 188
186# 189#
187# Kernel options 190# Kernel options
@@ -205,6 +208,7 @@ CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
206# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
207# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
211CONFIG_PPC_NEED_DMA_SYNC_OPS=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
209CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -219,12 +223,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set
223# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 230CONFIG_UNEVICTABLE_LRU=y
231CONFIG_PPC_4K_PAGES=y
232# CONFIG_PPC_16K_PAGES is not set
233# CONFIG_PPC_64K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -248,6 +254,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
248# CONFIG_PCI_MSI is not set 254# CONFIG_PCI_MSI is not set
249CONFIG_PCI_LEGACY=y 255CONFIG_PCI_LEGACY=y
250# CONFIG_PCI_DEBUG is not set 256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCI_STUB is not set
251# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -272,6 +279,7 @@ CONFIG_NET=y
272# 279#
273# Networking options 280# Networking options
274# 281#
282CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 283CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 284# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 285CONFIG_UNIX=y
@@ -322,6 +330,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_ECONET is not set 330# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 331# CONFIG_WAN_ROUTER is not set
324# CONFIG_NET_SCHED is not set 332# CONFIG_NET_SCHED is not set
333# CONFIG_DCB is not set
325 334
326# 335#
327# Network testing 336# Network testing
@@ -334,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_AF_RXRPC is not set 343# CONFIG_AF_RXRPC is not set
335# CONFIG_PHONET is not set 344# CONFIG_PHONET is not set
336# CONFIG_WIRELESS is not set 345# CONFIG_WIRELESS is not set
346# CONFIG_WIMAX is not set
337# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
338# CONFIG_NET_9P is not set 348# CONFIG_NET_9P is not set
339 349
@@ -359,6 +369,7 @@ CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set 369# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set 370# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y 371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_TESTS is not set
362# CONFIG_MTD_REDBOOT_PARTS is not set 373# CONFIG_MTD_REDBOOT_PARTS is not set
363CONFIG_MTD_CMDLINE_PARTS=y 374CONFIG_MTD_CMDLINE_PARTS=y
364CONFIG_MTD_OF_PARTS=y 375CONFIG_MTD_OF_PARTS=y
@@ -431,6 +442,12 @@ CONFIG_MTD_PHYSMAP_OF=y
431# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
432 443
433# 444#
445# LPDDR flash memory drivers
446#
447# CONFIG_MTD_LPDDR is not set
448# CONFIG_MTD_QINFO_PROBE is not set
449
450#
434# UBI - Unsorted block images 451# UBI - Unsorted block images
435# 452#
436# CONFIG_MTD_UBI is not set 453# CONFIG_MTD_UBI is not set
@@ -524,6 +541,10 @@ CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR=y
524# CONFIG_WLAN_PRE80211 is not set 541# CONFIG_WLAN_PRE80211 is not set
525# CONFIG_WLAN_80211 is not set 542# CONFIG_WLAN_80211 is not set
526# CONFIG_IWLWIFI_LEDS is not set 543# CONFIG_IWLWIFI_LEDS is not set
544
545#
546# Enable WiMAX (Networking options) to see the WiMAX drivers
547#
527# CONFIG_WAN is not set 548# CONFIG_WAN is not set
528# CONFIG_FDDI is not set 549# CONFIG_FDDI is not set
529# CONFIG_HIPPI is not set 550# CONFIG_HIPPI is not set
@@ -576,9 +597,12 @@ CONFIG_SERIAL_CORE=y
576CONFIG_SERIAL_CORE_CONSOLE=y 597CONFIG_SERIAL_CORE_CONSOLE=y
577# CONFIG_SERIAL_JSM is not set 598# CONFIG_SERIAL_JSM is not set
578CONFIG_SERIAL_OF_PLATFORM=y 599CONFIG_SERIAL_OF_PLATFORM=y
600# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
579CONFIG_UNIX98_PTYS=y 601CONFIG_UNIX98_PTYS=y
602# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 603CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 604CONFIG_LEGACY_PTY_COUNT=256
605# CONFIG_HVC_UDBG is not set
582# CONFIG_IPMI_HANDLER is not set 606# CONFIG_IPMI_HANDLER is not set
583# CONFIG_HW_RANDOM is not set 607# CONFIG_HW_RANDOM is not set
584# CONFIG_NVRAM is not set 608# CONFIG_NVRAM is not set
@@ -597,11 +621,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
597# CONFIG_HWMON is not set 621# CONFIG_HWMON is not set
598CONFIG_THERMAL=y 622CONFIG_THERMAL=y
599# CONFIG_WATCHDOG is not set 623# CONFIG_WATCHDOG is not set
624CONFIG_SSB_POSSIBLE=y
600 625
601# 626#
602# Sonics Silicon Backplane 627# Sonics Silicon Backplane
603# 628#
604CONFIG_SSB_POSSIBLE=y
605# CONFIG_SSB is not set 629# CONFIG_SSB is not set
606 630
607# 631#
@@ -611,7 +635,7 @@ CONFIG_SSB_POSSIBLE=y
611# CONFIG_MFD_SM501 is not set 635# CONFIG_MFD_SM501 is not set
612# CONFIG_HTC_PASIC3 is not set 636# CONFIG_HTC_PASIC3 is not set
613# CONFIG_MFD_TMIO is not set 637# CONFIG_MFD_TMIO is not set
614# CONFIG_MFD_WM8400 is not set 638# CONFIG_REGULATOR is not set
615 639
616# 640#
617# Multimedia devices 641# Multimedia devices
@@ -670,7 +694,9 @@ CONFIG_EXT2_FS=y
670# CONFIG_FS_POSIX_ACL is not set 694# CONFIG_FS_POSIX_ACL is not set
671CONFIG_FILE_LOCKING=y 695CONFIG_FILE_LOCKING=y
672# CONFIG_XFS_FS is not set 696# CONFIG_XFS_FS is not set
697# CONFIG_GFS2_FS is not set
673# CONFIG_OCFS2_FS is not set 698# CONFIG_OCFS2_FS is not set
699# CONFIG_BTRFS_FS is not set
674CONFIG_DNOTIFY=y 700CONFIG_DNOTIFY=y
675CONFIG_INOTIFY=y 701CONFIG_INOTIFY=y
676CONFIG_INOTIFY_USER=y 702CONFIG_INOTIFY_USER=y
@@ -704,10 +730,7 @@ CONFIG_TMPFS=y
704# CONFIG_TMPFS_POSIX_ACL is not set 730# CONFIG_TMPFS_POSIX_ACL is not set
705# CONFIG_HUGETLB_PAGE is not set 731# CONFIG_HUGETLB_PAGE is not set
706# CONFIG_CONFIGFS_FS is not set 732# CONFIG_CONFIGFS_FS is not set
707 733CONFIG_MISC_FILESYSTEMS=y
708#
709# Miscellaneous filesystems
710#
711# CONFIG_ADFS_FS is not set 734# CONFIG_ADFS_FS is not set
712# CONFIG_AFFS_FS is not set 735# CONFIG_AFFS_FS is not set
713# CONFIG_HFS_FS is not set 736# CONFIG_HFS_FS is not set
@@ -717,6 +740,7 @@ CONFIG_TMPFS=y
717# CONFIG_EFS_FS is not set 740# CONFIG_EFS_FS is not set
718# CONFIG_JFFS2_FS is not set 741# CONFIG_JFFS2_FS is not set
719CONFIG_CRAMFS=y 742CONFIG_CRAMFS=y
743# CONFIG_SQUASHFS is not set
720# CONFIG_VXFS_FS is not set 744# CONFIG_VXFS_FS is not set
721# CONFIG_MINIX_FS is not set 745# CONFIG_MINIX_FS is not set
722# CONFIG_OMFS_FS is not set 746# CONFIG_OMFS_FS is not set
@@ -757,6 +781,7 @@ CONFIG_MSDOS_PARTITION=y
757# Library routines 781# Library routines
758# 782#
759CONFIG_BITREVERSE=y 783CONFIG_BITREVERSE=y
784CONFIG_GENERIC_FIND_LAST_BIT=y
760# CONFIG_CRC_CCITT is not set 785# CONFIG_CRC_CCITT is not set
761# CONFIG_CRC16 is not set 786# CONFIG_CRC16 is not set
762# CONFIG_CRC_T10DIF is not set 787# CONFIG_CRC_T10DIF is not set
@@ -807,6 +832,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
807# CONFIG_DEBUG_MEMORY_INIT is not set 832# CONFIG_DEBUG_MEMORY_INIT is not set
808# CONFIG_DEBUG_LIST is not set 833# CONFIG_DEBUG_LIST is not set
809# CONFIG_DEBUG_SG is not set 834# CONFIG_DEBUG_SG is not set
835# CONFIG_DEBUG_NOTIFIERS is not set
810# CONFIG_BOOT_PRINTK_DELAY is not set 836# CONFIG_BOOT_PRINTK_DELAY is not set
811# CONFIG_RCU_TORTURE_TEST is not set 837# CONFIG_RCU_TORTURE_TEST is not set
812# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -815,18 +841,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
815# CONFIG_FAULT_INJECTION is not set 841# CONFIG_FAULT_INJECTION is not set
816# CONFIG_LATENCYTOP is not set 842# CONFIG_LATENCYTOP is not set
817CONFIG_SYSCTL_SYSCALL_CHECK=y 843CONFIG_SYSCTL_SYSCALL_CHECK=y
818CONFIG_NOP_TRACER=y 844CONFIG_HAVE_FUNCTION_TRACER=y
819CONFIG_HAVE_FTRACE=y
820CONFIG_HAVE_DYNAMIC_FTRACE=y 845CONFIG_HAVE_DYNAMIC_FTRACE=y
821# CONFIG_FTRACE is not set 846CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
847
848#
849# Tracers
850#
851# CONFIG_FUNCTION_TRACER is not set
822# CONFIG_SCHED_TRACER is not set 852# CONFIG_SCHED_TRACER is not set
823# CONFIG_CONTEXT_SWITCH_TRACER is not set 853# CONFIG_CONTEXT_SWITCH_TRACER is not set
824# CONFIG_BOOT_TRACER is not set 854# CONFIG_BOOT_TRACER is not set
855# CONFIG_TRACE_BRANCH_PROFILING is not set
825# CONFIG_STACK_TRACER is not set 856# CONFIG_STACK_TRACER is not set
826# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 857# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
827# CONFIG_SAMPLES is not set 858# CONFIG_SAMPLES is not set
828CONFIG_HAVE_ARCH_KGDB=y 859CONFIG_HAVE_ARCH_KGDB=y
829# CONFIG_KGDB is not set 860# CONFIG_KGDB is not set
861CONFIG_PRINT_STACK_DEPTH=64
830# CONFIG_DEBUG_STACKOVERFLOW is not set 862# CONFIG_DEBUG_STACKOVERFLOW is not set
831# CONFIG_DEBUG_STACK_USAGE is not set 863# CONFIG_DEBUG_STACK_USAGE is not set
832# CONFIG_DEBUG_PAGEALLOC is not set 864# CONFIG_DEBUG_PAGEALLOC is not set
@@ -853,11 +885,15 @@ CONFIG_CRYPTO=y
853# 885#
854# CONFIG_CRYPTO_FIPS is not set 886# CONFIG_CRYPTO_FIPS is not set
855CONFIG_CRYPTO_ALGAPI=y 887CONFIG_CRYPTO_ALGAPI=y
856CONFIG_CRYPTO_AEAD=y 888CONFIG_CRYPTO_ALGAPI2=y
889CONFIG_CRYPTO_AEAD2=y
857CONFIG_CRYPTO_BLKCIPHER=y 890CONFIG_CRYPTO_BLKCIPHER=y
891CONFIG_CRYPTO_BLKCIPHER2=y
858CONFIG_CRYPTO_HASH=y 892CONFIG_CRYPTO_HASH=y
859CONFIG_CRYPTO_RNG=y 893CONFIG_CRYPTO_HASH2=y
894CONFIG_CRYPTO_RNG2=y
860CONFIG_CRYPTO_MANAGER=y 895CONFIG_CRYPTO_MANAGER=y
896CONFIG_CRYPTO_MANAGER2=y
861# CONFIG_CRYPTO_GF128MUL is not set 897# CONFIG_CRYPTO_GF128MUL is not set
862# CONFIG_CRYPTO_NULL is not set 898# CONFIG_CRYPTO_NULL is not set
863# CONFIG_CRYPTO_CRYPTD is not set 899# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/ep405_defconfig b/arch/powerpc/configs/40x/ep405_defconfig
index b80ba7aa3129..4e9d85f39da0 100644
--- a/arch/powerpc/configs/40x/ep405_defconfig
+++ b/arch/powerpc/configs/40x/ep405_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:20 2008 4# Tue Jan 20 08:17:48 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155# CONFIG_PPC4xx_PCI_EXPRESS is not set 157# CONFIG_PPC4xx_PCI_EXPRESS is not set
156 158
@@ -184,6 +186,7 @@ CONFIG_IBM405_ERR51=y
184# CONFIG_GENERIC_IOMAP is not set 186# CONFIG_GENERIC_IOMAP is not set
185# CONFIG_CPU_FREQ is not set 187# CONFIG_CPU_FREQ is not set
186# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
189# CONFIG_SIMPLE_GPIO is not set
187 190
188# 191#
189# Kernel options 192# Kernel options
@@ -207,6 +210,7 @@ CONFIG_BINFMT_ELF=y
207# CONFIG_BINFMT_MISC is not set 210# CONFIG_BINFMT_MISC is not set
208# CONFIG_MATH_EMULATION is not set 211# CONFIG_MATH_EMULATION is not set
209# CONFIG_IOMMU_HELPER is not set 212# CONFIG_IOMMU_HELPER is not set
213CONFIG_PPC_NEED_DMA_SYNC_OPS=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 215CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -221,12 +225,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
221CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
223CONFIG_MIGRATION=y 227CONFIG_MIGRATION=y
224# CONFIG_RESOURCES_64BIT is not set
225# CONFIG_PHYS_ADDR_T_64BIT is not set 228# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
227CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
228CONFIG_VIRT_TO_BUS=y 231CONFIG_VIRT_TO_BUS=y
229CONFIG_UNEVICTABLE_LRU=y 232CONFIG_UNEVICTABLE_LRU=y
233CONFIG_PPC_4K_PAGES=y
234# CONFIG_PPC_16K_PAGES is not set
235# CONFIG_PPC_64K_PAGES is not set
230CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
@@ -250,6 +256,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
250# CONFIG_PCI_MSI is not set 256# CONFIG_PCI_MSI is not set
251CONFIG_PCI_LEGACY=y 257CONFIG_PCI_LEGACY=y
252# CONFIG_PCI_DEBUG is not set 258# CONFIG_PCI_DEBUG is not set
259# CONFIG_PCI_STUB is not set
253# CONFIG_PCCARD is not set 260# CONFIG_PCCARD is not set
254# CONFIG_HOTPLUG_PCI is not set 261# CONFIG_HOTPLUG_PCI is not set
255# CONFIG_HAS_RAPIDIO is not set 262# CONFIG_HAS_RAPIDIO is not set
@@ -274,6 +281,7 @@ CONFIG_NET=y
274# 281#
275# Networking options 282# Networking options
276# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
277CONFIG_PACKET=y 285CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 286# CONFIG_PACKET_MMAP is not set
279CONFIG_UNIX=y 287CONFIG_UNIX=y
@@ -324,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set
327 336
328# 337#
329# Network testing 338# Network testing
@@ -336,6 +345,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_AF_RXRPC is not set 345# CONFIG_AF_RXRPC is not set
337# CONFIG_PHONET is not set 346# CONFIG_PHONET is not set
338# CONFIG_WIRELESS is not set 347# CONFIG_WIRELESS is not set
348# CONFIG_WIMAX is not set
339# CONFIG_RFKILL is not set 349# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set 350# CONFIG_NET_9P is not set
341 351
@@ -361,6 +371,7 @@ CONFIG_MTD=y
361# CONFIG_MTD_DEBUG is not set 371# CONFIG_MTD_DEBUG is not set
362# CONFIG_MTD_CONCAT is not set 372# CONFIG_MTD_CONCAT is not set
363CONFIG_MTD_PARTITIONS=y 373CONFIG_MTD_PARTITIONS=y
374# CONFIG_MTD_TESTS is not set
364# CONFIG_MTD_REDBOOT_PARTS is not set 375# CONFIG_MTD_REDBOOT_PARTS is not set
365CONFIG_MTD_CMDLINE_PARTS=y 376CONFIG_MTD_CMDLINE_PARTS=y
366CONFIG_MTD_OF_PARTS=y 377CONFIG_MTD_OF_PARTS=y
@@ -433,6 +444,12 @@ CONFIG_MTD_PHYSMAP_OF=y
433# CONFIG_MTD_ONENAND is not set 444# CONFIG_MTD_ONENAND is not set
434 445
435# 446#
447# LPDDR flash memory drivers
448#
449# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451
452#
436# UBI - Unsorted block images 453# UBI - Unsorted block images
437# 454#
438# CONFIG_MTD_UBI is not set 455# CONFIG_MTD_UBI is not set
@@ -464,6 +481,7 @@ CONFIG_MISC_DEVICES=y
464# CONFIG_TIFM_CORE is not set 481# CONFIG_TIFM_CORE is not set
465# CONFIG_ENCLOSURE_SERVICES is not set 482# CONFIG_ENCLOSURE_SERVICES is not set
466# CONFIG_HP_ILO is not set 483# CONFIG_HP_ILO is not set
484# CONFIG_C2PORT is not set
467CONFIG_HAVE_IDE=y 485CONFIG_HAVE_IDE=y
468# CONFIG_IDE is not set 486# CONFIG_IDE is not set
469 487
@@ -546,6 +564,7 @@ CONFIG_NETDEV_1000=y
546# CONFIG_JME is not set 564# CONFIG_JME is not set
547CONFIG_NETDEV_10000=y 565CONFIG_NETDEV_10000=y
548# CONFIG_CHELSIO_T1 is not set 566# CONFIG_CHELSIO_T1 is not set
567CONFIG_CHELSIO_T3_DEPENDS=y
549# CONFIG_CHELSIO_T3 is not set 568# CONFIG_CHELSIO_T3 is not set
550# CONFIG_ENIC is not set 569# CONFIG_ENIC is not set
551# CONFIG_IXGBE is not set 570# CONFIG_IXGBE is not set
@@ -570,6 +589,10 @@ CONFIG_NETDEV_10000=y
570# CONFIG_IWLWIFI_LEDS is not set 589# CONFIG_IWLWIFI_LEDS is not set
571 590
572# 591#
592# Enable WiMAX (Networking options) to see the WiMAX drivers
593#
594
595#
573# USB Network Adapters 596# USB Network Adapters
574# 597#
575# CONFIG_USB_CATC is not set 598# CONFIG_USB_CATC is not set
@@ -629,9 +652,12 @@ CONFIG_SERIAL_CORE=y
629CONFIG_SERIAL_CORE_CONSOLE=y 652CONFIG_SERIAL_CORE_CONSOLE=y
630# CONFIG_SERIAL_JSM is not set 653# CONFIG_SERIAL_JSM is not set
631CONFIG_SERIAL_OF_PLATFORM=y 654CONFIG_SERIAL_OF_PLATFORM=y
655# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
632CONFIG_UNIX98_PTYS=y 656CONFIG_UNIX98_PTYS=y
657# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
633CONFIG_LEGACY_PTYS=y 658CONFIG_LEGACY_PTYS=y
634CONFIG_LEGACY_PTY_COUNT=256 659CONFIG_LEGACY_PTY_COUNT=256
660# CONFIG_HVC_UDBG is not set
635# CONFIG_IPMI_HANDLER is not set 661# CONFIG_IPMI_HANDLER is not set
636# CONFIG_HW_RANDOM is not set 662# CONFIG_HW_RANDOM is not set
637# CONFIG_NVRAM is not set 663# CONFIG_NVRAM is not set
@@ -650,11 +676,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
650# CONFIG_HWMON is not set 676# CONFIG_HWMON is not set
651CONFIG_THERMAL=y 677CONFIG_THERMAL=y
652# CONFIG_WATCHDOG is not set 678# CONFIG_WATCHDOG is not set
679CONFIG_SSB_POSSIBLE=y
653 680
654# 681#
655# Sonics Silicon Backplane 682# Sonics Silicon Backplane
656# 683#
657CONFIG_SSB_POSSIBLE=y
658# CONFIG_SSB is not set 684# CONFIG_SSB is not set
659 685
660# 686#
@@ -664,7 +690,7 @@ CONFIG_SSB_POSSIBLE=y
664# CONFIG_MFD_SM501 is not set 690# CONFIG_MFD_SM501 is not set
665# CONFIG_HTC_PASIC3 is not set 691# CONFIG_HTC_PASIC3 is not set
666# CONFIG_MFD_TMIO is not set 692# CONFIG_MFD_TMIO is not set
667# CONFIG_MFD_WM8400 is not set 693# CONFIG_REGULATOR is not set
668 694
669# 695#
670# Multimedia devices 696# Multimedia devices
@@ -723,6 +749,7 @@ CONFIG_USB_MON=y
723# 749#
724# CONFIG_USB_C67X00_HCD is not set 750# CONFIG_USB_C67X00_HCD is not set
725# CONFIG_USB_EHCI_HCD is not set 751# CONFIG_USB_EHCI_HCD is not set
752# CONFIG_USB_OXU210HP_HCD is not set
726# CONFIG_USB_ISP116X_HCD is not set 753# CONFIG_USB_ISP116X_HCD is not set
727# CONFIG_USB_ISP1760_HCD is not set 754# CONFIG_USB_ISP1760_HCD is not set
728CONFIG_USB_OHCI_HCD=y 755CONFIG_USB_OHCI_HCD=y
@@ -748,11 +775,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
748# CONFIG_USB_TMC is not set 775# CONFIG_USB_TMC is not set
749 776
750# 777#
751# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 778# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
752# 779#
753 780
754# 781#
755# may also be needed; see USB_STORAGE Help for more information 782# see USB_STORAGE Help for more information
756# 783#
757# CONFIG_USB_LIBUSUAL is not set 784# CONFIG_USB_LIBUSUAL is not set
758 785
@@ -791,6 +818,10 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
791# CONFIG_USB_ISIGHTFW is not set 818# CONFIG_USB_ISIGHTFW is not set
792# CONFIG_USB_VST is not set 819# CONFIG_USB_VST is not set
793# CONFIG_USB_GADGET is not set 820# CONFIG_USB_GADGET is not set
821
822#
823# OTG and related infrastructure
824#
794# CONFIG_UWB is not set 825# CONFIG_UWB is not set
795# CONFIG_MMC is not set 826# CONFIG_MMC is not set
796# CONFIG_MEMSTICK is not set 827# CONFIG_MEMSTICK is not set
@@ -816,7 +847,9 @@ CONFIG_EXT2_FS=y
816# CONFIG_FS_POSIX_ACL is not set 847# CONFIG_FS_POSIX_ACL is not set
817CONFIG_FILE_LOCKING=y 848CONFIG_FILE_LOCKING=y
818# CONFIG_XFS_FS is not set 849# CONFIG_XFS_FS is not set
850# CONFIG_GFS2_FS is not set
819# CONFIG_OCFS2_FS is not set 851# CONFIG_OCFS2_FS is not set
852# CONFIG_BTRFS_FS is not set
820CONFIG_DNOTIFY=y 853CONFIG_DNOTIFY=y
821CONFIG_INOTIFY=y 854CONFIG_INOTIFY=y
822CONFIG_INOTIFY_USER=y 855CONFIG_INOTIFY_USER=y
@@ -850,10 +883,7 @@ CONFIG_TMPFS=y
850# CONFIG_TMPFS_POSIX_ACL is not set 883# CONFIG_TMPFS_POSIX_ACL is not set
851# CONFIG_HUGETLB_PAGE is not set 884# CONFIG_HUGETLB_PAGE is not set
852# CONFIG_CONFIGFS_FS is not set 885# CONFIG_CONFIGFS_FS is not set
853 886CONFIG_MISC_FILESYSTEMS=y
854#
855# Miscellaneous filesystems
856#
857# CONFIG_ADFS_FS is not set 887# CONFIG_ADFS_FS is not set
858# CONFIG_AFFS_FS is not set 888# CONFIG_AFFS_FS is not set
859# CONFIG_HFS_FS is not set 889# CONFIG_HFS_FS is not set
@@ -863,6 +893,7 @@ CONFIG_TMPFS=y
863# CONFIG_EFS_FS is not set 893# CONFIG_EFS_FS is not set
864# CONFIG_JFFS2_FS is not set 894# CONFIG_JFFS2_FS is not set
865CONFIG_CRAMFS=y 895CONFIG_CRAMFS=y
896# CONFIG_SQUASHFS is not set
866# CONFIG_VXFS_FS is not set 897# CONFIG_VXFS_FS is not set
867# CONFIG_MINIX_FS is not set 898# CONFIG_MINIX_FS is not set
868# CONFIG_OMFS_FS is not set 899# CONFIG_OMFS_FS is not set
@@ -903,6 +934,7 @@ CONFIG_MSDOS_PARTITION=y
903# Library routines 934# Library routines
904# 935#
905CONFIG_BITREVERSE=y 936CONFIG_BITREVERSE=y
937CONFIG_GENERIC_FIND_LAST_BIT=y
906# CONFIG_CRC_CCITT is not set 938# CONFIG_CRC_CCITT is not set
907# CONFIG_CRC16 is not set 939# CONFIG_CRC16 is not set
908# CONFIG_CRC_T10DIF is not set 940# CONFIG_CRC_T10DIF is not set
@@ -953,6 +985,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
953# CONFIG_DEBUG_MEMORY_INIT is not set 985# CONFIG_DEBUG_MEMORY_INIT is not set
954# CONFIG_DEBUG_LIST is not set 986# CONFIG_DEBUG_LIST is not set
955# CONFIG_DEBUG_SG is not set 987# CONFIG_DEBUG_SG is not set
988# CONFIG_DEBUG_NOTIFIERS is not set
956# CONFIG_BOOT_PRINTK_DELAY is not set 989# CONFIG_BOOT_PRINTK_DELAY is not set
957# CONFIG_RCU_TORTURE_TEST is not set 990# CONFIG_RCU_TORTURE_TEST is not set
958# CONFIG_RCU_CPU_STALL_DETECTOR is not set 991# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -961,18 +994,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
961# CONFIG_FAULT_INJECTION is not set 994# CONFIG_FAULT_INJECTION is not set
962# CONFIG_LATENCYTOP is not set 995# CONFIG_LATENCYTOP is not set
963CONFIG_SYSCTL_SYSCALL_CHECK=y 996CONFIG_SYSCTL_SYSCALL_CHECK=y
964CONFIG_NOP_TRACER=y 997CONFIG_HAVE_FUNCTION_TRACER=y
965CONFIG_HAVE_FTRACE=y
966CONFIG_HAVE_DYNAMIC_FTRACE=y 998CONFIG_HAVE_DYNAMIC_FTRACE=y
967# CONFIG_FTRACE is not set 999CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1000
1001#
1002# Tracers
1003#
1004# CONFIG_FUNCTION_TRACER is not set
968# CONFIG_SCHED_TRACER is not set 1005# CONFIG_SCHED_TRACER is not set
969# CONFIG_CONTEXT_SWITCH_TRACER is not set 1006# CONFIG_CONTEXT_SWITCH_TRACER is not set
970# CONFIG_BOOT_TRACER is not set 1007# CONFIG_BOOT_TRACER is not set
1008# CONFIG_TRACE_BRANCH_PROFILING is not set
971# CONFIG_STACK_TRACER is not set 1009# CONFIG_STACK_TRACER is not set
972# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1010# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
973# CONFIG_SAMPLES is not set 1011# CONFIG_SAMPLES is not set
974CONFIG_HAVE_ARCH_KGDB=y 1012CONFIG_HAVE_ARCH_KGDB=y
975# CONFIG_KGDB is not set 1013# CONFIG_KGDB is not set
1014CONFIG_PRINT_STACK_DEPTH=64
976# CONFIG_DEBUG_STACKOVERFLOW is not set 1015# CONFIG_DEBUG_STACKOVERFLOW is not set
977# CONFIG_DEBUG_STACK_USAGE is not set 1016# CONFIG_DEBUG_STACK_USAGE is not set
978# CONFIG_DEBUG_PAGEALLOC is not set 1017# CONFIG_DEBUG_PAGEALLOC is not set
@@ -999,11 +1038,15 @@ CONFIG_CRYPTO=y
999# 1038#
1000# CONFIG_CRYPTO_FIPS is not set 1039# CONFIG_CRYPTO_FIPS is not set
1001CONFIG_CRYPTO_ALGAPI=y 1040CONFIG_CRYPTO_ALGAPI=y
1002CONFIG_CRYPTO_AEAD=y 1041CONFIG_CRYPTO_ALGAPI2=y
1042CONFIG_CRYPTO_AEAD2=y
1003CONFIG_CRYPTO_BLKCIPHER=y 1043CONFIG_CRYPTO_BLKCIPHER=y
1044CONFIG_CRYPTO_BLKCIPHER2=y
1004CONFIG_CRYPTO_HASH=y 1045CONFIG_CRYPTO_HASH=y
1005CONFIG_CRYPTO_RNG=y 1046CONFIG_CRYPTO_HASH2=y
1047CONFIG_CRYPTO_RNG2=y
1006CONFIG_CRYPTO_MANAGER=y 1048CONFIG_CRYPTO_MANAGER=y
1049CONFIG_CRYPTO_MANAGER2=y
1007# CONFIG_CRYPTO_GF128MUL is not set 1050# CONFIG_CRYPTO_GF128MUL is not set
1008# CONFIG_CRYPTO_NULL is not set 1051# CONFIG_CRYPTO_NULL is not set
1009# CONFIG_CRYPTO_CRYPTD is not set 1052# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/hcu4_defconfig b/arch/powerpc/configs/40x/hcu4_defconfig
index 45dcb824503f..8c019d79bf2a 100644
--- a/arch/powerpc/configs/40x/hcu4_defconfig
+++ b/arch/powerpc/configs/40x/hcu4_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:22 2008 4# Tue Jan 20 08:17:50 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155# CONFIG_PPC4xx_PCI_EXPRESS is not set 157# CONFIG_PPC4xx_PCI_EXPRESS is not set
156 158
@@ -182,6 +184,7 @@ CONFIG_405GPR=y
182# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_SIMPLE_GPIO is not set
185 188
186# 189#
187# Kernel options 190# Kernel options
@@ -205,6 +208,7 @@ CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
206# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
207# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
211CONFIG_PPC_NEED_DMA_SYNC_OPS=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
209CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -219,12 +223,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
222CONFIG_RESOURCES_64BIT=y
223# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 230CONFIG_UNEVICTABLE_LRU=y
231CONFIG_PPC_4K_PAGES=y
232# CONFIG_PPC_16K_PAGES is not set
233# CONFIG_PPC_64K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -248,6 +254,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
248# CONFIG_PCI_MSI is not set 254# CONFIG_PCI_MSI is not set
249# CONFIG_PCI_LEGACY is not set 255# CONFIG_PCI_LEGACY is not set
250# CONFIG_PCI_DEBUG is not set 256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCI_STUB is not set
251# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -272,6 +279,7 @@ CONFIG_NET=y
272# 279#
273# Networking options 280# Networking options
274# 281#
282CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 283CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 284# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 285CONFIG_UNIX=y
@@ -322,6 +330,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_ECONET is not set 330# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 331# CONFIG_WAN_ROUTER is not set
324# CONFIG_NET_SCHED is not set 332# CONFIG_NET_SCHED is not set
333# CONFIG_DCB is not set
325 334
326# 335#
327# Network testing 336# Network testing
@@ -334,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_AF_RXRPC is not set 343# CONFIG_AF_RXRPC is not set
335# CONFIG_PHONET is not set 344# CONFIG_PHONET is not set
336# CONFIG_WIRELESS is not set 345# CONFIG_WIRELESS is not set
346# CONFIG_WIMAX is not set
337# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
338# CONFIG_NET_9P is not set 348# CONFIG_NET_9P is not set
339 349
@@ -359,6 +369,7 @@ CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set 369# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set 370# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y 371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_TESTS is not set
362# CONFIG_MTD_REDBOOT_PARTS is not set 373# CONFIG_MTD_REDBOOT_PARTS is not set
363CONFIG_MTD_CMDLINE_PARTS=y 374CONFIG_MTD_CMDLINE_PARTS=y
364CONFIG_MTD_OF_PARTS=y 375CONFIG_MTD_OF_PARTS=y
@@ -431,6 +442,12 @@ CONFIG_MTD_PHYSMAP_OF=y
431# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
432 443
433# 444#
445# LPDDR flash memory drivers
446#
447# CONFIG_MTD_LPDDR is not set
448# CONFIG_MTD_QINFO_PROBE is not set
449
450#
434# UBI - Unsorted block images 451# UBI - Unsorted block images
435# 452#
436# CONFIG_MTD_UBI is not set 453# CONFIG_MTD_UBI is not set
@@ -461,6 +478,7 @@ CONFIG_MISC_DEVICES=y
461# CONFIG_TIFM_CORE is not set 478# CONFIG_TIFM_CORE is not set
462# CONFIG_ENCLOSURE_SERVICES is not set 479# CONFIG_ENCLOSURE_SERVICES is not set
463# CONFIG_HP_ILO is not set 480# CONFIG_HP_ILO is not set
481# CONFIG_C2PORT is not set
464CONFIG_HAVE_IDE=y 482CONFIG_HAVE_IDE=y
465# CONFIG_IDE is not set 483# CONFIG_IDE is not set
466 484
@@ -543,6 +561,7 @@ CONFIG_NETDEV_1000=y
543# CONFIG_JME is not set 561# CONFIG_JME is not set
544CONFIG_NETDEV_10000=y 562CONFIG_NETDEV_10000=y
545# CONFIG_CHELSIO_T1 is not set 563# CONFIG_CHELSIO_T1 is not set
564CONFIG_CHELSIO_T3_DEPENDS=y
546# CONFIG_CHELSIO_T3 is not set 565# CONFIG_CHELSIO_T3 is not set
547# CONFIG_ENIC is not set 566# CONFIG_ENIC is not set
548# CONFIG_IXGBE is not set 567# CONFIG_IXGBE is not set
@@ -565,6 +584,10 @@ CONFIG_NETDEV_10000=y
565# CONFIG_WLAN_PRE80211 is not set 584# CONFIG_WLAN_PRE80211 is not set
566# CONFIG_WLAN_80211 is not set 585# CONFIG_WLAN_80211 is not set
567# CONFIG_IWLWIFI_LEDS is not set 586# CONFIG_IWLWIFI_LEDS is not set
587
588#
589# Enable WiMAX (Networking options) to see the WiMAX drivers
590#
568# CONFIG_WAN is not set 591# CONFIG_WAN is not set
569# CONFIG_FDDI is not set 592# CONFIG_FDDI is not set
570# CONFIG_HIPPI is not set 593# CONFIG_HIPPI is not set
@@ -617,9 +640,12 @@ CONFIG_SERIAL_CORE=y
617CONFIG_SERIAL_CORE_CONSOLE=y 640CONFIG_SERIAL_CORE_CONSOLE=y
618# CONFIG_SERIAL_JSM is not set 641# CONFIG_SERIAL_JSM is not set
619CONFIG_SERIAL_OF_PLATFORM=y 642CONFIG_SERIAL_OF_PLATFORM=y
643# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
620CONFIG_UNIX98_PTYS=y 644CONFIG_UNIX98_PTYS=y
645# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
621CONFIG_LEGACY_PTYS=y 646CONFIG_LEGACY_PTYS=y
622CONFIG_LEGACY_PTY_COUNT=256 647CONFIG_LEGACY_PTY_COUNT=256
648# CONFIG_HVC_UDBG is not set
623# CONFIG_IPMI_HANDLER is not set 649# CONFIG_IPMI_HANDLER is not set
624# CONFIG_HW_RANDOM is not set 650# CONFIG_HW_RANDOM is not set
625# CONFIG_NVRAM is not set 651# CONFIG_NVRAM is not set
@@ -639,11 +665,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
639# CONFIG_THERMAL is not set 665# CONFIG_THERMAL is not set
640# CONFIG_THERMAL_HWMON is not set 666# CONFIG_THERMAL_HWMON is not set
641# CONFIG_WATCHDOG is not set 667# CONFIG_WATCHDOG is not set
668CONFIG_SSB_POSSIBLE=y
642 669
643# 670#
644# Sonics Silicon Backplane 671# Sonics Silicon Backplane
645# 672#
646CONFIG_SSB_POSSIBLE=y
647# CONFIG_SSB is not set 673# CONFIG_SSB is not set
648 674
649# 675#
@@ -653,7 +679,7 @@ CONFIG_SSB_POSSIBLE=y
653# CONFIG_MFD_SM501 is not set 679# CONFIG_MFD_SM501 is not set
654# CONFIG_HTC_PASIC3 is not set 680# CONFIG_HTC_PASIC3 is not set
655# CONFIG_MFD_TMIO is not set 681# CONFIG_MFD_TMIO is not set
656# CONFIG_MFD_WM8400 is not set 682# CONFIG_REGULATOR is not set
657 683
658# 684#
659# Multimedia devices 685# Multimedia devices
@@ -712,7 +738,9 @@ CONFIG_EXT2_FS=y
712# CONFIG_FS_POSIX_ACL is not set 738# CONFIG_FS_POSIX_ACL is not set
713CONFIG_FILE_LOCKING=y 739CONFIG_FILE_LOCKING=y
714# CONFIG_XFS_FS is not set 740# CONFIG_XFS_FS is not set
741# CONFIG_GFS2_FS is not set
715# CONFIG_OCFS2_FS is not set 742# CONFIG_OCFS2_FS is not set
743# CONFIG_BTRFS_FS is not set
716CONFIG_DNOTIFY=y 744CONFIG_DNOTIFY=y
717CONFIG_INOTIFY=y 745CONFIG_INOTIFY=y
718CONFIG_INOTIFY_USER=y 746CONFIG_INOTIFY_USER=y
@@ -746,10 +774,7 @@ CONFIG_TMPFS=y
746# CONFIG_TMPFS_POSIX_ACL is not set 774# CONFIG_TMPFS_POSIX_ACL is not set
747# CONFIG_HUGETLB_PAGE is not set 775# CONFIG_HUGETLB_PAGE is not set
748# CONFIG_CONFIGFS_FS is not set 776# CONFIG_CONFIGFS_FS is not set
749 777CONFIG_MISC_FILESYSTEMS=y
750#
751# Miscellaneous filesystems
752#
753# CONFIG_ADFS_FS is not set 778# CONFIG_ADFS_FS is not set
754# CONFIG_AFFS_FS is not set 779# CONFIG_AFFS_FS is not set
755# CONFIG_HFS_FS is not set 780# CONFIG_HFS_FS is not set
@@ -759,6 +784,7 @@ CONFIG_TMPFS=y
759# CONFIG_EFS_FS is not set 784# CONFIG_EFS_FS is not set
760# CONFIG_JFFS2_FS is not set 785# CONFIG_JFFS2_FS is not set
761CONFIG_CRAMFS=y 786CONFIG_CRAMFS=y
787# CONFIG_SQUASHFS is not set
762# CONFIG_VXFS_FS is not set 788# CONFIG_VXFS_FS is not set
763# CONFIG_MINIX_FS is not set 789# CONFIG_MINIX_FS is not set
764# CONFIG_OMFS_FS is not set 790# CONFIG_OMFS_FS is not set
@@ -799,6 +825,7 @@ CONFIG_MSDOS_PARTITION=y
799# Library routines 825# Library routines
800# 826#
801CONFIG_BITREVERSE=y 827CONFIG_BITREVERSE=y
828CONFIG_GENERIC_FIND_LAST_BIT=y
802# CONFIG_CRC_CCITT is not set 829# CONFIG_CRC_CCITT is not set
803# CONFIG_CRC16 is not set 830# CONFIG_CRC16 is not set
804# CONFIG_CRC_T10DIF is not set 831# CONFIG_CRC_T10DIF is not set
@@ -849,6 +876,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
849# CONFIG_DEBUG_MEMORY_INIT is not set 876# CONFIG_DEBUG_MEMORY_INIT is not set
850# CONFIG_DEBUG_LIST is not set 877# CONFIG_DEBUG_LIST is not set
851# CONFIG_DEBUG_SG is not set 878# CONFIG_DEBUG_SG is not set
879# CONFIG_DEBUG_NOTIFIERS is not set
852# CONFIG_BOOT_PRINTK_DELAY is not set 880# CONFIG_BOOT_PRINTK_DELAY is not set
853# CONFIG_RCU_TORTURE_TEST is not set 881# CONFIG_RCU_TORTURE_TEST is not set
854# CONFIG_RCU_CPU_STALL_DETECTOR is not set 882# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -857,18 +885,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
857# CONFIG_FAULT_INJECTION is not set 885# CONFIG_FAULT_INJECTION is not set
858# CONFIG_LATENCYTOP is not set 886# CONFIG_LATENCYTOP is not set
859CONFIG_SYSCTL_SYSCALL_CHECK=y 887CONFIG_SYSCTL_SYSCALL_CHECK=y
860CONFIG_NOP_TRACER=y 888CONFIG_HAVE_FUNCTION_TRACER=y
861CONFIG_HAVE_FTRACE=y
862CONFIG_HAVE_DYNAMIC_FTRACE=y 889CONFIG_HAVE_DYNAMIC_FTRACE=y
863# CONFIG_FTRACE is not set 890CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
891
892#
893# Tracers
894#
895# CONFIG_FUNCTION_TRACER is not set
864# CONFIG_SCHED_TRACER is not set 896# CONFIG_SCHED_TRACER is not set
865# CONFIG_CONTEXT_SWITCH_TRACER is not set 897# CONFIG_CONTEXT_SWITCH_TRACER is not set
866# CONFIG_BOOT_TRACER is not set 898# CONFIG_BOOT_TRACER is not set
899# CONFIG_TRACE_BRANCH_PROFILING is not set
867# CONFIG_STACK_TRACER is not set 900# CONFIG_STACK_TRACER is not set
868# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 901# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
869# CONFIG_SAMPLES is not set 902# CONFIG_SAMPLES is not set
870CONFIG_HAVE_ARCH_KGDB=y 903CONFIG_HAVE_ARCH_KGDB=y
871# CONFIG_KGDB is not set 904# CONFIG_KGDB is not set
905CONFIG_PRINT_STACK_DEPTH=64
872# CONFIG_DEBUG_STACKOVERFLOW is not set 906# CONFIG_DEBUG_STACKOVERFLOW is not set
873# CONFIG_DEBUG_STACK_USAGE is not set 907# CONFIG_DEBUG_STACK_USAGE is not set
874# CONFIG_DEBUG_PAGEALLOC is not set 908# CONFIG_DEBUG_PAGEALLOC is not set
@@ -895,11 +929,15 @@ CONFIG_CRYPTO=y
895# 929#
896# CONFIG_CRYPTO_FIPS is not set 930# CONFIG_CRYPTO_FIPS is not set
897CONFIG_CRYPTO_ALGAPI=y 931CONFIG_CRYPTO_ALGAPI=y
898CONFIG_CRYPTO_AEAD=y 932CONFIG_CRYPTO_ALGAPI2=y
933CONFIG_CRYPTO_AEAD2=y
899CONFIG_CRYPTO_BLKCIPHER=y 934CONFIG_CRYPTO_BLKCIPHER=y
935CONFIG_CRYPTO_BLKCIPHER2=y
900CONFIG_CRYPTO_HASH=y 936CONFIG_CRYPTO_HASH=y
901CONFIG_CRYPTO_RNG=y 937CONFIG_CRYPTO_HASH2=y
938CONFIG_CRYPTO_RNG2=y
902CONFIG_CRYPTO_MANAGER=y 939CONFIG_CRYPTO_MANAGER=y
940CONFIG_CRYPTO_MANAGER2=y
903# CONFIG_CRYPTO_GF128MUL is not set 941# CONFIG_CRYPTO_GF128MUL is not set
904# CONFIG_CRYPTO_NULL is not set 942# CONFIG_CRYPTO_NULL is not set
905# CONFIG_CRYPTO_CRYPTD is not set 943# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/kilauea_defconfig b/arch/powerpc/configs/40x/kilauea_defconfig
index e2f3695d9d0b..9917a09bad3a 100644
--- a/arch/powerpc/configs/40x/kilauea_defconfig
+++ b/arch/powerpc/configs/40x/kilauea_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:23 2008 4# Tue Jan 20 08:17:52 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155CONFIG_PPC4xx_PCI_EXPRESS=y 157CONFIG_PPC4xx_PCI_EXPRESS=y
156 158
@@ -182,6 +184,7 @@ CONFIG_405EX=y
182# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_SIMPLE_GPIO is not set
185 188
186# 189#
187# Kernel options 190# Kernel options
@@ -205,6 +208,7 @@ CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
206# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
207# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
211CONFIG_PPC_NEED_DMA_SYNC_OPS=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
209CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -219,12 +223,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set
223# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 230CONFIG_UNEVICTABLE_LRU=y
231CONFIG_PPC_4K_PAGES=y
232# CONFIG_PPC_16K_PAGES is not set
233# CONFIG_PPC_64K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -248,6 +254,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
248# CONFIG_PCI_MSI is not set 254# CONFIG_PCI_MSI is not set
249CONFIG_PCI_LEGACY=y 255CONFIG_PCI_LEGACY=y
250# CONFIG_PCI_DEBUG is not set 256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCI_STUB is not set
251# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -272,6 +279,7 @@ CONFIG_NET=y
272# 279#
273# Networking options 280# Networking options
274# 281#
282CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 283CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 284# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 285CONFIG_UNIX=y
@@ -322,6 +330,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_ECONET is not set 330# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 331# CONFIG_WAN_ROUTER is not set
324# CONFIG_NET_SCHED is not set 332# CONFIG_NET_SCHED is not set
333# CONFIG_DCB is not set
325 334
326# 335#
327# Network testing 336# Network testing
@@ -334,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_AF_RXRPC is not set 343# CONFIG_AF_RXRPC is not set
335# CONFIG_PHONET is not set 344# CONFIG_PHONET is not set
336# CONFIG_WIRELESS is not set 345# CONFIG_WIRELESS is not set
346# CONFIG_WIMAX is not set
337# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
338# CONFIG_NET_9P is not set 348# CONFIG_NET_9P is not set
339 349
@@ -359,6 +369,7 @@ CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set 369# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set 370# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y 371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_TESTS is not set
362# CONFIG_MTD_REDBOOT_PARTS is not set 373# CONFIG_MTD_REDBOOT_PARTS is not set
363CONFIG_MTD_CMDLINE_PARTS=y 374CONFIG_MTD_CMDLINE_PARTS=y
364CONFIG_MTD_OF_PARTS=y 375CONFIG_MTD_OF_PARTS=y
@@ -431,6 +442,12 @@ CONFIG_MTD_PHYSMAP_OF=y
431# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
432 443
433# 444#
445# LPDDR flash memory drivers
446#
447# CONFIG_MTD_LPDDR is not set
448# CONFIG_MTD_QINFO_PROBE is not set
449
450#
434# UBI - Unsorted block images 451# UBI - Unsorted block images
435# 452#
436# CONFIG_MTD_UBI is not set 453# CONFIG_MTD_UBI is not set
@@ -524,6 +541,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
524# CONFIG_WLAN_PRE80211 is not set 541# CONFIG_WLAN_PRE80211 is not set
525# CONFIG_WLAN_80211 is not set 542# CONFIG_WLAN_80211 is not set
526# CONFIG_IWLWIFI_LEDS is not set 543# CONFIG_IWLWIFI_LEDS is not set
544
545#
546# Enable WiMAX (Networking options) to see the WiMAX drivers
547#
527# CONFIG_WAN is not set 548# CONFIG_WAN is not set
528# CONFIG_FDDI is not set 549# CONFIG_FDDI is not set
529# CONFIG_HIPPI is not set 550# CONFIG_HIPPI is not set
@@ -576,9 +597,12 @@ CONFIG_SERIAL_CORE=y
576CONFIG_SERIAL_CORE_CONSOLE=y 597CONFIG_SERIAL_CORE_CONSOLE=y
577# CONFIG_SERIAL_JSM is not set 598# CONFIG_SERIAL_JSM is not set
578CONFIG_SERIAL_OF_PLATFORM=y 599CONFIG_SERIAL_OF_PLATFORM=y
600# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
579CONFIG_UNIX98_PTYS=y 601CONFIG_UNIX98_PTYS=y
602# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 603CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 604CONFIG_LEGACY_PTY_COUNT=256
605# CONFIG_HVC_UDBG is not set
582# CONFIG_IPMI_HANDLER is not set 606# CONFIG_IPMI_HANDLER is not set
583# CONFIG_HW_RANDOM is not set 607# CONFIG_HW_RANDOM is not set
584# CONFIG_NVRAM is not set 608# CONFIG_NVRAM is not set
@@ -597,11 +621,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
597# CONFIG_HWMON is not set 621# CONFIG_HWMON is not set
598CONFIG_THERMAL=y 622CONFIG_THERMAL=y
599# CONFIG_WATCHDOG is not set 623# CONFIG_WATCHDOG is not set
624CONFIG_SSB_POSSIBLE=y
600 625
601# 626#
602# Sonics Silicon Backplane 627# Sonics Silicon Backplane
603# 628#
604CONFIG_SSB_POSSIBLE=y
605# CONFIG_SSB is not set 629# CONFIG_SSB is not set
606 630
607# 631#
@@ -611,7 +635,7 @@ CONFIG_SSB_POSSIBLE=y
611# CONFIG_MFD_SM501 is not set 635# CONFIG_MFD_SM501 is not set
612# CONFIG_HTC_PASIC3 is not set 636# CONFIG_HTC_PASIC3 is not set
613# CONFIG_MFD_TMIO is not set 637# CONFIG_MFD_TMIO is not set
614# CONFIG_MFD_WM8400 is not set 638# CONFIG_REGULATOR is not set
615 639
616# 640#
617# Multimedia devices 641# Multimedia devices
@@ -670,7 +694,9 @@ CONFIG_EXT2_FS=y
670# CONFIG_FS_POSIX_ACL is not set 694# CONFIG_FS_POSIX_ACL is not set
671CONFIG_FILE_LOCKING=y 695CONFIG_FILE_LOCKING=y
672# CONFIG_XFS_FS is not set 696# CONFIG_XFS_FS is not set
697# CONFIG_GFS2_FS is not set
673# CONFIG_OCFS2_FS is not set 698# CONFIG_OCFS2_FS is not set
699# CONFIG_BTRFS_FS is not set
674CONFIG_DNOTIFY=y 700CONFIG_DNOTIFY=y
675CONFIG_INOTIFY=y 701CONFIG_INOTIFY=y
676CONFIG_INOTIFY_USER=y 702CONFIG_INOTIFY_USER=y
@@ -704,10 +730,7 @@ CONFIG_TMPFS=y
704# CONFIG_TMPFS_POSIX_ACL is not set 730# CONFIG_TMPFS_POSIX_ACL is not set
705# CONFIG_HUGETLB_PAGE is not set 731# CONFIG_HUGETLB_PAGE is not set
706# CONFIG_CONFIGFS_FS is not set 732# CONFIG_CONFIGFS_FS is not set
707 733CONFIG_MISC_FILESYSTEMS=y
708#
709# Miscellaneous filesystems
710#
711# CONFIG_ADFS_FS is not set 734# CONFIG_ADFS_FS is not set
712# CONFIG_AFFS_FS is not set 735# CONFIG_AFFS_FS is not set
713# CONFIG_HFS_FS is not set 736# CONFIG_HFS_FS is not set
@@ -717,6 +740,7 @@ CONFIG_TMPFS=y
717# CONFIG_EFS_FS is not set 740# CONFIG_EFS_FS is not set
718# CONFIG_JFFS2_FS is not set 741# CONFIG_JFFS2_FS is not set
719CONFIG_CRAMFS=y 742CONFIG_CRAMFS=y
743# CONFIG_SQUASHFS is not set
720# CONFIG_VXFS_FS is not set 744# CONFIG_VXFS_FS is not set
721# CONFIG_MINIX_FS is not set 745# CONFIG_MINIX_FS is not set
722# CONFIG_OMFS_FS is not set 746# CONFIG_OMFS_FS is not set
@@ -757,6 +781,7 @@ CONFIG_MSDOS_PARTITION=y
757# Library routines 781# Library routines
758# 782#
759CONFIG_BITREVERSE=y 783CONFIG_BITREVERSE=y
784CONFIG_GENERIC_FIND_LAST_BIT=y
760# CONFIG_CRC_CCITT is not set 785# CONFIG_CRC_CCITT is not set
761# CONFIG_CRC16 is not set 786# CONFIG_CRC16 is not set
762# CONFIG_CRC_T10DIF is not set 787# CONFIG_CRC_T10DIF is not set
@@ -807,6 +832,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
807# CONFIG_DEBUG_MEMORY_INIT is not set 832# CONFIG_DEBUG_MEMORY_INIT is not set
808# CONFIG_DEBUG_LIST is not set 833# CONFIG_DEBUG_LIST is not set
809# CONFIG_DEBUG_SG is not set 834# CONFIG_DEBUG_SG is not set
835# CONFIG_DEBUG_NOTIFIERS is not set
810# CONFIG_BOOT_PRINTK_DELAY is not set 836# CONFIG_BOOT_PRINTK_DELAY is not set
811# CONFIG_RCU_TORTURE_TEST is not set 837# CONFIG_RCU_TORTURE_TEST is not set
812# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -815,18 +841,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
815# CONFIG_FAULT_INJECTION is not set 841# CONFIG_FAULT_INJECTION is not set
816# CONFIG_LATENCYTOP is not set 842# CONFIG_LATENCYTOP is not set
817CONFIG_SYSCTL_SYSCALL_CHECK=y 843CONFIG_SYSCTL_SYSCALL_CHECK=y
818CONFIG_NOP_TRACER=y 844CONFIG_HAVE_FUNCTION_TRACER=y
819CONFIG_HAVE_FTRACE=y
820CONFIG_HAVE_DYNAMIC_FTRACE=y 845CONFIG_HAVE_DYNAMIC_FTRACE=y
821# CONFIG_FTRACE is not set 846CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
847
848#
849# Tracers
850#
851# CONFIG_FUNCTION_TRACER is not set
822# CONFIG_SCHED_TRACER is not set 852# CONFIG_SCHED_TRACER is not set
823# CONFIG_CONTEXT_SWITCH_TRACER is not set 853# CONFIG_CONTEXT_SWITCH_TRACER is not set
824# CONFIG_BOOT_TRACER is not set 854# CONFIG_BOOT_TRACER is not set
855# CONFIG_TRACE_BRANCH_PROFILING is not set
825# CONFIG_STACK_TRACER is not set 856# CONFIG_STACK_TRACER is not set
826# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 857# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
827# CONFIG_SAMPLES is not set 858# CONFIG_SAMPLES is not set
828CONFIG_HAVE_ARCH_KGDB=y 859CONFIG_HAVE_ARCH_KGDB=y
829# CONFIG_KGDB is not set 860# CONFIG_KGDB is not set
861CONFIG_PRINT_STACK_DEPTH=64
830# CONFIG_DEBUG_STACKOVERFLOW is not set 862# CONFIG_DEBUG_STACKOVERFLOW is not set
831# CONFIG_DEBUG_STACK_USAGE is not set 863# CONFIG_DEBUG_STACK_USAGE is not set
832# CONFIG_DEBUG_PAGEALLOC is not set 864# CONFIG_DEBUG_PAGEALLOC is not set
@@ -853,11 +885,15 @@ CONFIG_CRYPTO=y
853# 885#
854# CONFIG_CRYPTO_FIPS is not set 886# CONFIG_CRYPTO_FIPS is not set
855CONFIG_CRYPTO_ALGAPI=y 887CONFIG_CRYPTO_ALGAPI=y
856CONFIG_CRYPTO_AEAD=y 888CONFIG_CRYPTO_ALGAPI2=y
889CONFIG_CRYPTO_AEAD2=y
857CONFIG_CRYPTO_BLKCIPHER=y 890CONFIG_CRYPTO_BLKCIPHER=y
891CONFIG_CRYPTO_BLKCIPHER2=y
858CONFIG_CRYPTO_HASH=y 892CONFIG_CRYPTO_HASH=y
859CONFIG_CRYPTO_RNG=y 893CONFIG_CRYPTO_HASH2=y
894CONFIG_CRYPTO_RNG2=y
860CONFIG_CRYPTO_MANAGER=y 895CONFIG_CRYPTO_MANAGER=y
896CONFIG_CRYPTO_MANAGER2=y
861# CONFIG_CRYPTO_GF128MUL is not set 897# CONFIG_CRYPTO_GF128MUL is not set
862# CONFIG_CRYPTO_NULL is not set 898# CONFIG_CRYPTO_NULL is not set
863# CONFIG_CRYPTO_CRYPTD is not set 899# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/makalu_defconfig b/arch/powerpc/configs/40x/makalu_defconfig
index 413c778ecd7c..58bf2ac2e0dd 100644
--- a/arch/powerpc/configs/40x/makalu_defconfig
+++ b/arch/powerpc/configs/40x/makalu_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:25 2008 4# Tue Jan 20 08:17:53 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155CONFIG_PPC4xx_PCI_EXPRESS=y 157CONFIG_PPC4xx_PCI_EXPRESS=y
156 158
@@ -182,6 +184,7 @@ CONFIG_405EX=y
182# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_SIMPLE_GPIO is not set
185 188
186# 189#
187# Kernel options 190# Kernel options
@@ -205,6 +208,7 @@ CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
206# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
207# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
211CONFIG_PPC_NEED_DMA_SYNC_OPS=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
209CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -219,12 +223,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set
223# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 230CONFIG_UNEVICTABLE_LRU=y
231CONFIG_PPC_4K_PAGES=y
232# CONFIG_PPC_16K_PAGES is not set
233# CONFIG_PPC_64K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -248,6 +254,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
248# CONFIG_PCI_MSI is not set 254# CONFIG_PCI_MSI is not set
249CONFIG_PCI_LEGACY=y 255CONFIG_PCI_LEGACY=y
250# CONFIG_PCI_DEBUG is not set 256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCI_STUB is not set
251# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -272,6 +279,7 @@ CONFIG_NET=y
272# 279#
273# Networking options 280# Networking options
274# 281#
282CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 283CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 284# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 285CONFIG_UNIX=y
@@ -322,6 +330,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_ECONET is not set 330# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 331# CONFIG_WAN_ROUTER is not set
324# CONFIG_NET_SCHED is not set 332# CONFIG_NET_SCHED is not set
333# CONFIG_DCB is not set
325 334
326# 335#
327# Network testing 336# Network testing
@@ -334,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_AF_RXRPC is not set 343# CONFIG_AF_RXRPC is not set
335# CONFIG_PHONET is not set 344# CONFIG_PHONET is not set
336# CONFIG_WIRELESS is not set 345# CONFIG_WIRELESS is not set
346# CONFIG_WIMAX is not set
337# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
338# CONFIG_NET_9P is not set 348# CONFIG_NET_9P is not set
339 349
@@ -359,6 +369,7 @@ CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set 369# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set 370# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y 371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_TESTS is not set
362# CONFIG_MTD_REDBOOT_PARTS is not set 373# CONFIG_MTD_REDBOOT_PARTS is not set
363CONFIG_MTD_CMDLINE_PARTS=y 374CONFIG_MTD_CMDLINE_PARTS=y
364CONFIG_MTD_OF_PARTS=y 375CONFIG_MTD_OF_PARTS=y
@@ -431,6 +442,12 @@ CONFIG_MTD_PHYSMAP_OF=y
431# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
432 443
433# 444#
445# LPDDR flash memory drivers
446#
447# CONFIG_MTD_LPDDR is not set
448# CONFIG_MTD_QINFO_PROBE is not set
449
450#
434# UBI - Unsorted block images 451# UBI - Unsorted block images
435# 452#
436# CONFIG_MTD_UBI is not set 453# CONFIG_MTD_UBI is not set
@@ -524,6 +541,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
524# CONFIG_WLAN_PRE80211 is not set 541# CONFIG_WLAN_PRE80211 is not set
525# CONFIG_WLAN_80211 is not set 542# CONFIG_WLAN_80211 is not set
526# CONFIG_IWLWIFI_LEDS is not set 543# CONFIG_IWLWIFI_LEDS is not set
544
545#
546# Enable WiMAX (Networking options) to see the WiMAX drivers
547#
527# CONFIG_WAN is not set 548# CONFIG_WAN is not set
528# CONFIG_FDDI is not set 549# CONFIG_FDDI is not set
529# CONFIG_HIPPI is not set 550# CONFIG_HIPPI is not set
@@ -576,9 +597,12 @@ CONFIG_SERIAL_CORE=y
576CONFIG_SERIAL_CORE_CONSOLE=y 597CONFIG_SERIAL_CORE_CONSOLE=y
577# CONFIG_SERIAL_JSM is not set 598# CONFIG_SERIAL_JSM is not set
578CONFIG_SERIAL_OF_PLATFORM=y 599CONFIG_SERIAL_OF_PLATFORM=y
600# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
579CONFIG_UNIX98_PTYS=y 601CONFIG_UNIX98_PTYS=y
602# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 603CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 604CONFIG_LEGACY_PTY_COUNT=256
605# CONFIG_HVC_UDBG is not set
582# CONFIG_IPMI_HANDLER is not set 606# CONFIG_IPMI_HANDLER is not set
583# CONFIG_HW_RANDOM is not set 607# CONFIG_HW_RANDOM is not set
584# CONFIG_NVRAM is not set 608# CONFIG_NVRAM is not set
@@ -597,11 +621,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
597# CONFIG_HWMON is not set 621# CONFIG_HWMON is not set
598CONFIG_THERMAL=y 622CONFIG_THERMAL=y
599# CONFIG_WATCHDOG is not set 623# CONFIG_WATCHDOG is not set
624CONFIG_SSB_POSSIBLE=y
600 625
601# 626#
602# Sonics Silicon Backplane 627# Sonics Silicon Backplane
603# 628#
604CONFIG_SSB_POSSIBLE=y
605# CONFIG_SSB is not set 629# CONFIG_SSB is not set
606 630
607# 631#
@@ -611,7 +635,7 @@ CONFIG_SSB_POSSIBLE=y
611# CONFIG_MFD_SM501 is not set 635# CONFIG_MFD_SM501 is not set
612# CONFIG_HTC_PASIC3 is not set 636# CONFIG_HTC_PASIC3 is not set
613# CONFIG_MFD_TMIO is not set 637# CONFIG_MFD_TMIO is not set
614# CONFIG_MFD_WM8400 is not set 638# CONFIG_REGULATOR is not set
615 639
616# 640#
617# Multimedia devices 641# Multimedia devices
@@ -670,7 +694,9 @@ CONFIG_EXT2_FS=y
670# CONFIG_FS_POSIX_ACL is not set 694# CONFIG_FS_POSIX_ACL is not set
671CONFIG_FILE_LOCKING=y 695CONFIG_FILE_LOCKING=y
672# CONFIG_XFS_FS is not set 696# CONFIG_XFS_FS is not set
697# CONFIG_GFS2_FS is not set
673# CONFIG_OCFS2_FS is not set 698# CONFIG_OCFS2_FS is not set
699# CONFIG_BTRFS_FS is not set
674CONFIG_DNOTIFY=y 700CONFIG_DNOTIFY=y
675CONFIG_INOTIFY=y 701CONFIG_INOTIFY=y
676CONFIG_INOTIFY_USER=y 702CONFIG_INOTIFY_USER=y
@@ -704,10 +730,7 @@ CONFIG_TMPFS=y
704# CONFIG_TMPFS_POSIX_ACL is not set 730# CONFIG_TMPFS_POSIX_ACL is not set
705# CONFIG_HUGETLB_PAGE is not set 731# CONFIG_HUGETLB_PAGE is not set
706# CONFIG_CONFIGFS_FS is not set 732# CONFIG_CONFIGFS_FS is not set
707 733CONFIG_MISC_FILESYSTEMS=y
708#
709# Miscellaneous filesystems
710#
711# CONFIG_ADFS_FS is not set 734# CONFIG_ADFS_FS is not set
712# CONFIG_AFFS_FS is not set 735# CONFIG_AFFS_FS is not set
713# CONFIG_HFS_FS is not set 736# CONFIG_HFS_FS is not set
@@ -717,6 +740,7 @@ CONFIG_TMPFS=y
717# CONFIG_EFS_FS is not set 740# CONFIG_EFS_FS is not set
718# CONFIG_JFFS2_FS is not set 741# CONFIG_JFFS2_FS is not set
719CONFIG_CRAMFS=y 742CONFIG_CRAMFS=y
743# CONFIG_SQUASHFS is not set
720# CONFIG_VXFS_FS is not set 744# CONFIG_VXFS_FS is not set
721# CONFIG_MINIX_FS is not set 745# CONFIG_MINIX_FS is not set
722# CONFIG_OMFS_FS is not set 746# CONFIG_OMFS_FS is not set
@@ -757,6 +781,7 @@ CONFIG_MSDOS_PARTITION=y
757# Library routines 781# Library routines
758# 782#
759CONFIG_BITREVERSE=y 783CONFIG_BITREVERSE=y
784CONFIG_GENERIC_FIND_LAST_BIT=y
760# CONFIG_CRC_CCITT is not set 785# CONFIG_CRC_CCITT is not set
761# CONFIG_CRC16 is not set 786# CONFIG_CRC16 is not set
762# CONFIG_CRC_T10DIF is not set 787# CONFIG_CRC_T10DIF is not set
@@ -807,6 +832,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
807# CONFIG_DEBUG_MEMORY_INIT is not set 832# CONFIG_DEBUG_MEMORY_INIT is not set
808# CONFIG_DEBUG_LIST is not set 833# CONFIG_DEBUG_LIST is not set
809# CONFIG_DEBUG_SG is not set 834# CONFIG_DEBUG_SG is not set
835# CONFIG_DEBUG_NOTIFIERS is not set
810# CONFIG_BOOT_PRINTK_DELAY is not set 836# CONFIG_BOOT_PRINTK_DELAY is not set
811# CONFIG_RCU_TORTURE_TEST is not set 837# CONFIG_RCU_TORTURE_TEST is not set
812# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -815,18 +841,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
815# CONFIG_FAULT_INJECTION is not set 841# CONFIG_FAULT_INJECTION is not set
816# CONFIG_LATENCYTOP is not set 842# CONFIG_LATENCYTOP is not set
817CONFIG_SYSCTL_SYSCALL_CHECK=y 843CONFIG_SYSCTL_SYSCALL_CHECK=y
818CONFIG_NOP_TRACER=y 844CONFIG_HAVE_FUNCTION_TRACER=y
819CONFIG_HAVE_FTRACE=y
820CONFIG_HAVE_DYNAMIC_FTRACE=y 845CONFIG_HAVE_DYNAMIC_FTRACE=y
821# CONFIG_FTRACE is not set 846CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
847
848#
849# Tracers
850#
851# CONFIG_FUNCTION_TRACER is not set
822# CONFIG_SCHED_TRACER is not set 852# CONFIG_SCHED_TRACER is not set
823# CONFIG_CONTEXT_SWITCH_TRACER is not set 853# CONFIG_CONTEXT_SWITCH_TRACER is not set
824# CONFIG_BOOT_TRACER is not set 854# CONFIG_BOOT_TRACER is not set
855# CONFIG_TRACE_BRANCH_PROFILING is not set
825# CONFIG_STACK_TRACER is not set 856# CONFIG_STACK_TRACER is not set
826# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 857# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
827# CONFIG_SAMPLES is not set 858# CONFIG_SAMPLES is not set
828CONFIG_HAVE_ARCH_KGDB=y 859CONFIG_HAVE_ARCH_KGDB=y
829# CONFIG_KGDB is not set 860# CONFIG_KGDB is not set
861CONFIG_PRINT_STACK_DEPTH=64
830# CONFIG_DEBUG_STACKOVERFLOW is not set 862# CONFIG_DEBUG_STACKOVERFLOW is not set
831# CONFIG_DEBUG_STACK_USAGE is not set 863# CONFIG_DEBUG_STACK_USAGE is not set
832# CONFIG_DEBUG_PAGEALLOC is not set 864# CONFIG_DEBUG_PAGEALLOC is not set
@@ -853,11 +885,15 @@ CONFIG_CRYPTO=y
853# 885#
854# CONFIG_CRYPTO_FIPS is not set 886# CONFIG_CRYPTO_FIPS is not set
855CONFIG_CRYPTO_ALGAPI=y 887CONFIG_CRYPTO_ALGAPI=y
856CONFIG_CRYPTO_AEAD=y 888CONFIG_CRYPTO_ALGAPI2=y
889CONFIG_CRYPTO_AEAD2=y
857CONFIG_CRYPTO_BLKCIPHER=y 890CONFIG_CRYPTO_BLKCIPHER=y
891CONFIG_CRYPTO_BLKCIPHER2=y
858CONFIG_CRYPTO_HASH=y 892CONFIG_CRYPTO_HASH=y
859CONFIG_CRYPTO_RNG=y 893CONFIG_CRYPTO_HASH2=y
894CONFIG_CRYPTO_RNG2=y
860CONFIG_CRYPTO_MANAGER=y 895CONFIG_CRYPTO_MANAGER=y
896CONFIG_CRYPTO_MANAGER2=y
861# CONFIG_CRYPTO_GF128MUL is not set 897# CONFIG_CRYPTO_GF128MUL is not set
862# CONFIG_CRYPTO_NULL is not set 898# CONFIG_CRYPTO_NULL is not set
863# CONFIG_CRYPTO_CRYPTD is not set 899# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/virtex_defconfig b/arch/powerpc/configs/40x/virtex_defconfig
index 9a9350ded292..b6888384dd74 100644
--- a/arch/powerpc/configs/40x/virtex_defconfig
+++ b/arch/powerpc/configs/40x/virtex_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Fri Nov 14 10:49:16 2008 4# Tue Jan 20 08:17:55 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -41,7 +42,7 @@ CONFIG_GENERIC_GPIO=y
41CONFIG_PPC=y 42CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 43CONFIG_EARLY_PRINTK=y
43CONFIG_GENERIC_NVRAM=y 44CONFIG_GENERIC_NVRAM=y
44CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 45CONFIG_SCHED_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 46CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 47CONFIG_PPC_OF=y
47CONFIG_OF=y 48CONFIG_OF=y
@@ -74,8 +75,8 @@ CONFIG_POSIX_MQUEUE=y
74CONFIG_IKCONFIG=y 75CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78# CONFIG_GROUP_SCHED is not set 78# CONFIG_GROUP_SCHED is not set
79# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 81CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
@@ -113,7 +114,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 114# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +124,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 128CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 129# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +131,9 @@ CONFIG_MODULE_UNLOAD=y
132CONFIG_MODULE_FORCE_UNLOAD=y 131CONFIG_MODULE_FORCE_UNLOAD=y
133CONFIG_MODVERSIONS=y 132CONFIG_MODVERSIONS=y
134# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 134CONFIG_BLOCK=y
137# CONFIG_LBD is not set 135# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
142 139
@@ -153,6 +150,10 @@ CONFIG_DEFAULT_CFQ=y
153# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="cfq" 151CONFIG_DEFAULT_IOSCHED="cfq"
155CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_TREE_RCU is not set
154# CONFIG_PREEMPT_RCU is not set
155# CONFIG_TREE_RCU_TRACE is not set
156# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
157# CONFIG_PPC4xx_PCI_EXPRESS is not set 158# CONFIG_PPC4xx_PCI_EXPRESS is not set
158 159
@@ -188,6 +189,7 @@ CONFIG_IBM405_ERR51=y
188# CONFIG_GENERIC_IOMAP is not set 189# CONFIG_GENERIC_IOMAP is not set
189# CONFIG_CPU_FREQ is not set 190# CONFIG_CPU_FREQ is not set
190# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
192# CONFIG_SIMPLE_GPIO is not set
191 193
192# 194#
193# Kernel options 195# Kernel options
@@ -205,13 +207,13 @@ CONFIG_HZ=250
205# CONFIG_PREEMPT_NONE is not set 207# CONFIG_PREEMPT_NONE is not set
206# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
207CONFIG_PREEMPT=y 209CONFIG_PREEMPT=y
208# CONFIG_PREEMPT_RCU is not set
209CONFIG_BINFMT_ELF=y 210CONFIG_BINFMT_ELF=y
210# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 211# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
211# CONFIG_HAVE_AOUT is not set 212# CONFIG_HAVE_AOUT is not set
212# CONFIG_BINFMT_MISC is not set 213# CONFIG_BINFMT_MISC is not set
213CONFIG_MATH_EMULATION=y 214CONFIG_MATH_EMULATION=y
214# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
216CONFIG_PPC_NEED_DMA_SYNC_OPS=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y 218CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -226,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
229CONFIG_RESOURCES_64BIT=y
230# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
237CONFIG_CMDLINE_BOOL=y 241CONFIG_CMDLINE_BOOL=y
@@ -256,6 +260,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 260# CONFIG_PCI_MSI is not set
257CONFIG_PCI_LEGACY=y 261CONFIG_PCI_LEGACY=y
258# CONFIG_PCI_DEBUG is not set 262# CONFIG_PCI_DEBUG is not set
263# CONFIG_PCI_STUB is not set
259# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
260# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
261# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -280,6 +285,8 @@ CONFIG_NET=y
280# 285#
281# Networking options 286# Networking options
282# 287#
288# CONFIG_NET_NS is not set
289CONFIG_COMPAT_NET_DEV_OPS=y
283CONFIG_PACKET=y 290CONFIG_PACKET=y
284# CONFIG_PACKET_MMAP is not set 291# CONFIG_PACKET_MMAP is not set
285CONFIG_UNIX=y 292CONFIG_UNIX=y
@@ -423,6 +430,7 @@ CONFIG_IP_NF_MANGLE=m
423# CONFIG_ECONET is not set 430# CONFIG_ECONET is not set
424# CONFIG_WAN_ROUTER is not set 431# CONFIG_WAN_ROUTER is not set
425# CONFIG_NET_SCHED is not set 432# CONFIG_NET_SCHED is not set
433# CONFIG_DCB is not set
426 434
427# 435#
428# Network testing 436# Network testing
@@ -438,8 +446,9 @@ CONFIG_WIRELESS=y
438# CONFIG_CFG80211 is not set 446# CONFIG_CFG80211 is not set
439CONFIG_WIRELESS_OLD_REGULATORY=y 447CONFIG_WIRELESS_OLD_REGULATORY=y
440# CONFIG_WIRELESS_EXT is not set 448# CONFIG_WIRELESS_EXT is not set
449# CONFIG_LIB80211 is not set
441# CONFIG_MAC80211 is not set 450# CONFIG_MAC80211 is not set
442# CONFIG_IEEE80211 is not set 451# CONFIG_WIMAX is not set
443# CONFIG_RFKILL is not set 452# CONFIG_RFKILL is not set
444# CONFIG_NET_9P is not set 453# CONFIG_NET_9P is not set
445 454
@@ -574,6 +583,10 @@ CONFIG_NETDEV_1000=y
574# CONFIG_WLAN_PRE80211 is not set 583# CONFIG_WLAN_PRE80211 is not set
575# CONFIG_WLAN_80211 is not set 584# CONFIG_WLAN_80211 is not set
576# CONFIG_IWLWIFI_LEDS is not set 585# CONFIG_IWLWIFI_LEDS is not set
586
587#
588# Enable WiMAX (Networking options) to see the WiMAX drivers
589#
577# CONFIG_WAN is not set 590# CONFIG_WAN is not set
578# CONFIG_FDDI is not set 591# CONFIG_FDDI is not set
579# CONFIG_HIPPI is not set 592# CONFIG_HIPPI is not set
@@ -674,9 +687,12 @@ CONFIG_SERIAL_CORE=y
674CONFIG_SERIAL_CORE_CONSOLE=y 687CONFIG_SERIAL_CORE_CONSOLE=y
675# CONFIG_SERIAL_JSM is not set 688# CONFIG_SERIAL_JSM is not set
676# CONFIG_SERIAL_OF_PLATFORM is not set 689# CONFIG_SERIAL_OF_PLATFORM is not set
690# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
677CONFIG_UNIX98_PTYS=y 691CONFIG_UNIX98_PTYS=y
692# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
678CONFIG_LEGACY_PTYS=y 693CONFIG_LEGACY_PTYS=y
679CONFIG_LEGACY_PTY_COUNT=256 694CONFIG_LEGACY_PTY_COUNT=256
695# CONFIG_HVC_UDBG is not set
680# CONFIG_IPMI_HANDLER is not set 696# CONFIG_IPMI_HANDLER is not set
681CONFIG_HW_RANDOM=m 697CONFIG_HW_RANDOM=m
682# CONFIG_NVRAM is not set 698# CONFIG_NVRAM is not set
@@ -854,7 +870,6 @@ CONFIG_LOGO_LINUX_CLUT224=y
854# CONFIG_DMADEVICES is not set 870# CONFIG_DMADEVICES is not set
855# CONFIG_UIO is not set 871# CONFIG_UIO is not set
856# CONFIG_STAGING is not set 872# CONFIG_STAGING is not set
857CONFIG_STAGING_EXCLUDE_BUILD=y
858 873
859# 874#
860# File systems 875# File systems
@@ -870,6 +885,7 @@ CONFIG_EXT2_FS=y
870CONFIG_FILE_LOCKING=y 885CONFIG_FILE_LOCKING=y
871# CONFIG_XFS_FS is not set 886# CONFIG_XFS_FS is not set
872# CONFIG_OCFS2_FS is not set 887# CONFIG_OCFS2_FS is not set
888# CONFIG_BTRFS_FS is not set
873CONFIG_DNOTIFY=y 889CONFIG_DNOTIFY=y
874CONFIG_INOTIFY=y 890CONFIG_INOTIFY=y
875CONFIG_INOTIFY_USER=y 891CONFIG_INOTIFY_USER=y
@@ -906,10 +922,7 @@ CONFIG_TMPFS=y
906# CONFIG_TMPFS_POSIX_ACL is not set 922# CONFIG_TMPFS_POSIX_ACL is not set
907# CONFIG_HUGETLB_PAGE is not set 923# CONFIG_HUGETLB_PAGE is not set
908# CONFIG_CONFIGFS_FS is not set 924# CONFIG_CONFIGFS_FS is not set
909 925CONFIG_MISC_FILESYSTEMS=y
910#
911# Miscellaneous filesystems
912#
913# CONFIG_ADFS_FS is not set 926# CONFIG_ADFS_FS is not set
914# CONFIG_AFFS_FS is not set 927# CONFIG_AFFS_FS is not set
915# CONFIG_HFS_FS is not set 928# CONFIG_HFS_FS is not set
@@ -918,6 +931,7 @@ CONFIG_TMPFS=y
918# CONFIG_BFS_FS is not set 931# CONFIG_BFS_FS is not set
919# CONFIG_EFS_FS is not set 932# CONFIG_EFS_FS is not set
920CONFIG_CRAMFS=y 933CONFIG_CRAMFS=y
934# CONFIG_SQUASHFS is not set
921# CONFIG_VXFS_FS is not set 935# CONFIG_VXFS_FS is not set
922# CONFIG_MINIX_FS is not set 936# CONFIG_MINIX_FS is not set
923# CONFIG_OMFS_FS is not set 937# CONFIG_OMFS_FS is not set
@@ -997,6 +1011,7 @@ CONFIG_NLS_UTF8=m
997# Library routines 1011# Library routines
998# 1012#
999CONFIG_BITREVERSE=y 1013CONFIG_BITREVERSE=y
1014CONFIG_GENERIC_FIND_LAST_BIT=y
1000CONFIG_CRC_CCITT=y 1015CONFIG_CRC_CCITT=y
1001# CONFIG_CRC16 is not set 1016# CONFIG_CRC16 is not set
1002# CONFIG_CRC_T10DIF is not set 1017# CONFIG_CRC_T10DIF is not set
@@ -1046,6 +1061,7 @@ CONFIG_DEBUG_INFO=y
1046CONFIG_DEBUG_MEMORY_INIT=y 1061CONFIG_DEBUG_MEMORY_INIT=y
1047# CONFIG_DEBUG_LIST is not set 1062# CONFIG_DEBUG_LIST is not set
1048# CONFIG_DEBUG_SG is not set 1063# CONFIG_DEBUG_SG is not set
1064# CONFIG_DEBUG_NOTIFIERS is not set
1049# CONFIG_BOOT_PRINTK_DELAY is not set 1065# CONFIG_BOOT_PRINTK_DELAY is not set
1050# CONFIG_RCU_TORTURE_TEST is not set 1066# CONFIG_RCU_TORTURE_TEST is not set
1051# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1067# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1055,6 +1071,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
1055# CONFIG_LATENCYTOP is not set 1071# CONFIG_LATENCYTOP is not set
1056CONFIG_SYSCTL_SYSCALL_CHECK=y 1072CONFIG_SYSCTL_SYSCALL_CHECK=y
1057CONFIG_HAVE_FUNCTION_TRACER=y 1073CONFIG_HAVE_FUNCTION_TRACER=y
1074CONFIG_HAVE_DYNAMIC_FTRACE=y
1075CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1058 1076
1059# 1077#
1060# Tracers 1078# Tracers
@@ -1064,11 +1082,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1064# CONFIG_SCHED_TRACER is not set 1082# CONFIG_SCHED_TRACER is not set
1065# CONFIG_CONTEXT_SWITCH_TRACER is not set 1083# CONFIG_CONTEXT_SWITCH_TRACER is not set
1066# CONFIG_BOOT_TRACER is not set 1084# CONFIG_BOOT_TRACER is not set
1085# CONFIG_TRACE_BRANCH_PROFILING is not set
1067# CONFIG_STACK_TRACER is not set 1086# CONFIG_STACK_TRACER is not set
1068# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1087# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1069# CONFIG_SAMPLES is not set 1088# CONFIG_SAMPLES is not set
1070CONFIG_HAVE_ARCH_KGDB=y 1089CONFIG_HAVE_ARCH_KGDB=y
1071# CONFIG_KGDB is not set 1090# CONFIG_KGDB is not set
1091CONFIG_PRINT_STACK_DEPTH=64
1072# CONFIG_DEBUG_STACKOVERFLOW is not set 1092# CONFIG_DEBUG_STACKOVERFLOW is not set
1073# CONFIG_DEBUG_STACK_USAGE is not set 1093# CONFIG_DEBUG_STACK_USAGE is not set
1074# CONFIG_DEBUG_PAGEALLOC is not set 1094# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1094,6 +1114,7 @@ CONFIG_CRYPTO=y
1094# 1114#
1095# CONFIG_CRYPTO_FIPS is not set 1115# CONFIG_CRYPTO_FIPS is not set
1096# CONFIG_CRYPTO_MANAGER is not set 1116# CONFIG_CRYPTO_MANAGER is not set
1117# CONFIG_CRYPTO_MANAGER2 is not set
1097# CONFIG_CRYPTO_GF128MUL is not set 1118# CONFIG_CRYPTO_GF128MUL is not set
1098# CONFIG_CRYPTO_NULL is not set 1119# CONFIG_CRYPTO_NULL is not set
1099# CONFIG_CRYPTO_CRYPTD is not set 1120# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/40x/walnut_defconfig b/arch/powerpc/configs/40x/walnut_defconfig
index 5820e0a4fc55..5ab29dddd21c 100644
--- a/arch/powerpc/configs/40x/walnut_defconfig
+++ b/arch/powerpc/configs/40x/walnut_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 08:49:27 2008 4# Tue Jan 20 08:17:57 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_POSIX_MQUEUE=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -89,6 +90,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 92CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_STRIP_GENERATED=y
92CONFIG_KALLSYMS_EXTRA_PASS=y 94CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 133CONFIG_BLOCK=y
135CONFIG_LBD=y 134CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
140 138
@@ -151,6 +149,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
155# CONFIG_PPC4xx_PCI_EXPRESS is not set 157# CONFIG_PPC4xx_PCI_EXPRESS is not set
156 158
@@ -185,6 +187,7 @@ CONFIG_IBM405_ERR51=y
185# CONFIG_CPU_FREQ is not set 187# CONFIG_CPU_FREQ is not set
186# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
187CONFIG_OF_RTC=y 189CONFIG_OF_RTC=y
190# CONFIG_SIMPLE_GPIO is not set
188 191
189# 192#
190# Kernel options 193# Kernel options
@@ -208,6 +211,7 @@ CONFIG_BINFMT_ELF=y
208# CONFIG_BINFMT_MISC is not set 211# CONFIG_BINFMT_MISC is not set
209# CONFIG_MATH_EMULATION is not set 212# CONFIG_MATH_EMULATION is not set
210# CONFIG_IOMMU_HELPER is not set 213# CONFIG_IOMMU_HELPER is not set
214CONFIG_PPC_NEED_DMA_SYNC_OPS=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
212CONFIG_ARCH_HAS_WALK_MEMORY=y 216CONFIG_ARCH_HAS_WALK_MEMORY=y
213CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225CONFIG_RESOURCES_64BIT=y
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -251,6 +257,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
251# CONFIG_PCI_MSI is not set 257# CONFIG_PCI_MSI is not set
252# CONFIG_PCI_LEGACY is not set 258# CONFIG_PCI_LEGACY is not set
253# CONFIG_PCI_DEBUG is not set 259# CONFIG_PCI_DEBUG is not set
260# CONFIG_PCI_STUB is not set
254# CONFIG_PCCARD is not set 261# CONFIG_PCCARD is not set
255# CONFIG_HOTPLUG_PCI is not set 262# CONFIG_HOTPLUG_PCI is not set
256# CONFIG_HAS_RAPIDIO is not set 263# CONFIG_HAS_RAPIDIO is not set
@@ -275,6 +282,7 @@ CONFIG_NET=y
275# 282#
276# Networking options 283# Networking options
277# 284#
285CONFIG_COMPAT_NET_DEV_OPS=y
278CONFIG_PACKET=y 286CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
280CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -325,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
325# CONFIG_ECONET is not set 333# CONFIG_ECONET is not set
326# CONFIG_WAN_ROUTER is not set 334# CONFIG_WAN_ROUTER is not set
327# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set
328 337
329# 338#
330# Network testing 339# Network testing
@@ -337,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
337# CONFIG_AF_RXRPC is not set 346# CONFIG_AF_RXRPC is not set
338# CONFIG_PHONET is not set 347# CONFIG_PHONET is not set
339# CONFIG_WIRELESS is not set 348# CONFIG_WIRELESS is not set
349# CONFIG_WIMAX is not set
340# CONFIG_RFKILL is not set 350# CONFIG_RFKILL is not set
341# CONFIG_NET_9P is not set 351# CONFIG_NET_9P is not set
342 352
@@ -362,6 +372,7 @@ CONFIG_MTD=y
362# CONFIG_MTD_DEBUG is not set 372# CONFIG_MTD_DEBUG is not set
363# CONFIG_MTD_CONCAT is not set 373# CONFIG_MTD_CONCAT is not set
364CONFIG_MTD_PARTITIONS=y 374CONFIG_MTD_PARTITIONS=y
375# CONFIG_MTD_TESTS is not set
365# CONFIG_MTD_REDBOOT_PARTS is not set 376# CONFIG_MTD_REDBOOT_PARTS is not set
366CONFIG_MTD_CMDLINE_PARTS=y 377CONFIG_MTD_CMDLINE_PARTS=y
367CONFIG_MTD_OF_PARTS=y 378CONFIG_MTD_OF_PARTS=y
@@ -434,6 +445,12 @@ CONFIG_MTD_PHYSMAP_OF=y
434# CONFIG_MTD_ONENAND is not set 445# CONFIG_MTD_ONENAND is not set
435 446
436# 447#
448# LPDDR flash memory drivers
449#
450# CONFIG_MTD_LPDDR is not set
451# CONFIG_MTD_QINFO_PROBE is not set
452
453#
437# UBI - Unsorted block images 454# UBI - Unsorted block images
438# 455#
439# CONFIG_MTD_UBI is not set 456# CONFIG_MTD_UBI is not set
@@ -464,6 +481,7 @@ CONFIG_MISC_DEVICES=y
464# CONFIG_TIFM_CORE is not set 481# CONFIG_TIFM_CORE is not set
465# CONFIG_ENCLOSURE_SERVICES is not set 482# CONFIG_ENCLOSURE_SERVICES is not set
466# CONFIG_HP_ILO is not set 483# CONFIG_HP_ILO is not set
484# CONFIG_C2PORT is not set
467CONFIG_HAVE_IDE=y 485CONFIG_HAVE_IDE=y
468# CONFIG_IDE is not set 486# CONFIG_IDE is not set
469 487
@@ -546,6 +564,7 @@ CONFIG_NETDEV_1000=y
546# CONFIG_JME is not set 564# CONFIG_JME is not set
547CONFIG_NETDEV_10000=y 565CONFIG_NETDEV_10000=y
548# CONFIG_CHELSIO_T1 is not set 566# CONFIG_CHELSIO_T1 is not set
567CONFIG_CHELSIO_T3_DEPENDS=y
549# CONFIG_CHELSIO_T3 is not set 568# CONFIG_CHELSIO_T3 is not set
550# CONFIG_ENIC is not set 569# CONFIG_ENIC is not set
551# CONFIG_IXGBE is not set 570# CONFIG_IXGBE is not set
@@ -568,6 +587,10 @@ CONFIG_NETDEV_10000=y
568# CONFIG_WLAN_PRE80211 is not set 587# CONFIG_WLAN_PRE80211 is not set
569# CONFIG_WLAN_80211 is not set 588# CONFIG_WLAN_80211 is not set
570# CONFIG_IWLWIFI_LEDS is not set 589# CONFIG_IWLWIFI_LEDS is not set
590
591#
592# Enable WiMAX (Networking options) to see the WiMAX drivers
593#
571# CONFIG_WAN is not set 594# CONFIG_WAN is not set
572# CONFIG_FDDI is not set 595# CONFIG_FDDI is not set
573# CONFIG_HIPPI is not set 596# CONFIG_HIPPI is not set
@@ -620,9 +643,12 @@ CONFIG_SERIAL_CORE=y
620CONFIG_SERIAL_CORE_CONSOLE=y 643CONFIG_SERIAL_CORE_CONSOLE=y
621# CONFIG_SERIAL_JSM is not set 644# CONFIG_SERIAL_JSM is not set
622CONFIG_SERIAL_OF_PLATFORM=y 645CONFIG_SERIAL_OF_PLATFORM=y
646# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
623CONFIG_UNIX98_PTYS=y 647CONFIG_UNIX98_PTYS=y
648# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
624CONFIG_LEGACY_PTYS=y 649CONFIG_LEGACY_PTYS=y
625CONFIG_LEGACY_PTY_COUNT=256 650CONFIG_LEGACY_PTY_COUNT=256
651# CONFIG_HVC_UDBG is not set
626# CONFIG_IPMI_HANDLER is not set 652# CONFIG_IPMI_HANDLER is not set
627# CONFIG_HW_RANDOM is not set 653# CONFIG_HW_RANDOM is not set
628# CONFIG_NVRAM is not set 654# CONFIG_NVRAM is not set
@@ -641,11 +667,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
641# CONFIG_HWMON is not set 667# CONFIG_HWMON is not set
642CONFIG_THERMAL=y 668CONFIG_THERMAL=y
643# CONFIG_WATCHDOG is not set 669# CONFIG_WATCHDOG is not set
670CONFIG_SSB_POSSIBLE=y
644 671
645# 672#
646# Sonics Silicon Backplane 673# Sonics Silicon Backplane
647# 674#
648CONFIG_SSB_POSSIBLE=y
649# CONFIG_SSB is not set 675# CONFIG_SSB is not set
650 676
651# 677#
@@ -655,7 +681,7 @@ CONFIG_SSB_POSSIBLE=y
655# CONFIG_MFD_SM501 is not set 681# CONFIG_MFD_SM501 is not set
656# CONFIG_HTC_PASIC3 is not set 682# CONFIG_HTC_PASIC3 is not set
657# CONFIG_MFD_TMIO is not set 683# CONFIG_MFD_TMIO is not set
658# CONFIG_MFD_WM8400 is not set 684# CONFIG_REGULATOR is not set
659 685
660# 686#
661# Multimedia devices 687# Multimedia devices
@@ -701,9 +727,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
701# 727#
702 728
703# 729#
704# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 730# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
705# 731#
706# CONFIG_USB_GADGET is not set 732# CONFIG_USB_GADGET is not set
733
734#
735# OTG and related infrastructure
736#
707# CONFIG_UWB is not set 737# CONFIG_UWB is not set
708# CONFIG_MMC is not set 738# CONFIG_MMC is not set
709# CONFIG_MEMSTICK is not set 739# CONFIG_MEMSTICK is not set
@@ -729,7 +759,9 @@ CONFIG_EXT2_FS=y
729# CONFIG_FS_POSIX_ACL is not set 759# CONFIG_FS_POSIX_ACL is not set
730CONFIG_FILE_LOCKING=y 760CONFIG_FILE_LOCKING=y
731# CONFIG_XFS_FS is not set 761# CONFIG_XFS_FS is not set
762# CONFIG_GFS2_FS is not set
732# CONFIG_OCFS2_FS is not set 763# CONFIG_OCFS2_FS is not set
764# CONFIG_BTRFS_FS is not set
733CONFIG_DNOTIFY=y 765CONFIG_DNOTIFY=y
734CONFIG_INOTIFY=y 766CONFIG_INOTIFY=y
735CONFIG_INOTIFY_USER=y 767CONFIG_INOTIFY_USER=y
@@ -763,10 +795,7 @@ CONFIG_TMPFS=y
763# CONFIG_TMPFS_POSIX_ACL is not set 795# CONFIG_TMPFS_POSIX_ACL is not set
764# CONFIG_HUGETLB_PAGE is not set 796# CONFIG_HUGETLB_PAGE is not set
765# CONFIG_CONFIGFS_FS is not set 797# CONFIG_CONFIGFS_FS is not set
766 798CONFIG_MISC_FILESYSTEMS=y
767#
768# Miscellaneous filesystems
769#
770# CONFIG_ADFS_FS is not set 799# CONFIG_ADFS_FS is not set
771# CONFIG_AFFS_FS is not set 800# CONFIG_AFFS_FS is not set
772# CONFIG_HFS_FS is not set 801# CONFIG_HFS_FS is not set
@@ -776,6 +805,7 @@ CONFIG_TMPFS=y
776# CONFIG_EFS_FS is not set 805# CONFIG_EFS_FS is not set
777# CONFIG_JFFS2_FS is not set 806# CONFIG_JFFS2_FS is not set
778CONFIG_CRAMFS=y 807CONFIG_CRAMFS=y
808# CONFIG_SQUASHFS is not set
779# CONFIG_VXFS_FS is not set 809# CONFIG_VXFS_FS is not set
780# CONFIG_MINIX_FS is not set 810# CONFIG_MINIX_FS is not set
781# CONFIG_OMFS_FS is not set 811# CONFIG_OMFS_FS is not set
@@ -816,6 +846,7 @@ CONFIG_MSDOS_PARTITION=y
816# Library routines 846# Library routines
817# 847#
818CONFIG_BITREVERSE=y 848CONFIG_BITREVERSE=y
849CONFIG_GENERIC_FIND_LAST_BIT=y
819# CONFIG_CRC_CCITT is not set 850# CONFIG_CRC_CCITT is not set
820# CONFIG_CRC16 is not set 851# CONFIG_CRC16 is not set
821# CONFIG_CRC_T10DIF is not set 852# CONFIG_CRC_T10DIF is not set
@@ -866,6 +897,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
866# CONFIG_DEBUG_MEMORY_INIT is not set 897# CONFIG_DEBUG_MEMORY_INIT is not set
867# CONFIG_DEBUG_LIST is not set 898# CONFIG_DEBUG_LIST is not set
868# CONFIG_DEBUG_SG is not set 899# CONFIG_DEBUG_SG is not set
900# CONFIG_DEBUG_NOTIFIERS is not set
869# CONFIG_BOOT_PRINTK_DELAY is not set 901# CONFIG_BOOT_PRINTK_DELAY is not set
870# CONFIG_RCU_TORTURE_TEST is not set 902# CONFIG_RCU_TORTURE_TEST is not set
871# CONFIG_RCU_CPU_STALL_DETECTOR is not set 903# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -874,18 +906,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
874# CONFIG_FAULT_INJECTION is not set 906# CONFIG_FAULT_INJECTION is not set
875# CONFIG_LATENCYTOP is not set 907# CONFIG_LATENCYTOP is not set
876CONFIG_SYSCTL_SYSCALL_CHECK=y 908CONFIG_SYSCTL_SYSCALL_CHECK=y
877CONFIG_NOP_TRACER=y 909CONFIG_HAVE_FUNCTION_TRACER=y
878CONFIG_HAVE_FTRACE=y
879CONFIG_HAVE_DYNAMIC_FTRACE=y 910CONFIG_HAVE_DYNAMIC_FTRACE=y
880# CONFIG_FTRACE is not set 911CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
912
913#
914# Tracers
915#
916# CONFIG_FUNCTION_TRACER is not set
881# CONFIG_SCHED_TRACER is not set 917# CONFIG_SCHED_TRACER is not set
882# CONFIG_CONTEXT_SWITCH_TRACER is not set 918# CONFIG_CONTEXT_SWITCH_TRACER is not set
883# CONFIG_BOOT_TRACER is not set 919# CONFIG_BOOT_TRACER is not set
920# CONFIG_TRACE_BRANCH_PROFILING is not set
884# CONFIG_STACK_TRACER is not set 921# CONFIG_STACK_TRACER is not set
885# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 922# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
886# CONFIG_SAMPLES is not set 923# CONFIG_SAMPLES is not set
887CONFIG_HAVE_ARCH_KGDB=y 924CONFIG_HAVE_ARCH_KGDB=y
888# CONFIG_KGDB is not set 925# CONFIG_KGDB is not set
926CONFIG_PRINT_STACK_DEPTH=64
889# CONFIG_DEBUG_STACKOVERFLOW is not set 927# CONFIG_DEBUG_STACKOVERFLOW is not set
890# CONFIG_DEBUG_STACK_USAGE is not set 928# CONFIG_DEBUG_STACK_USAGE is not set
891# CONFIG_DEBUG_PAGEALLOC is not set 929# CONFIG_DEBUG_PAGEALLOC is not set
@@ -912,11 +950,15 @@ CONFIG_CRYPTO=y
912# 950#
913# CONFIG_CRYPTO_FIPS is not set 951# CONFIG_CRYPTO_FIPS is not set
914CONFIG_CRYPTO_ALGAPI=y 952CONFIG_CRYPTO_ALGAPI=y
915CONFIG_CRYPTO_AEAD=y 953CONFIG_CRYPTO_ALGAPI2=y
954CONFIG_CRYPTO_AEAD2=y
916CONFIG_CRYPTO_BLKCIPHER=y 955CONFIG_CRYPTO_BLKCIPHER=y
956CONFIG_CRYPTO_BLKCIPHER2=y
917CONFIG_CRYPTO_HASH=y 957CONFIG_CRYPTO_HASH=y
918CONFIG_CRYPTO_RNG=y 958CONFIG_CRYPTO_HASH2=y
959CONFIG_CRYPTO_RNG2=y
919CONFIG_CRYPTO_MANAGER=y 960CONFIG_CRYPTO_MANAGER=y
961CONFIG_CRYPTO_MANAGER2=y
920# CONFIG_CRYPTO_GF128MUL is not set 962# CONFIG_CRYPTO_GF128MUL is not set
921# CONFIG_CRYPTO_NULL is not set 963# CONFIG_CRYPTO_NULL is not set
922# CONFIG_CRYPTO_CRYPTD is not set 964# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/arches_defconfig b/arch/powerpc/configs/44x/arches_defconfig
index 082158d591c5..1d72b0ac3f25 100644
--- a/arch/powerpc/configs/44x/arches_defconfig
+++ b/arch/powerpc/configs/44x/arches_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:04 2008 4# Tue Jan 20 08:22:31 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,8 +76,8 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79# CONFIG_GROUP_SCHED is not set 79# CONFIG_GROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -111,7 +112,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 112CONFIG_SLUB=y
112# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 116# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 126CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 132CONFIG_BLOCK=y
135CONFIG_LBD=y 133CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
140 137
@@ -151,6 +148,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
155CONFIG_PPC4xx_PCI_EXPRESS=y 156CONFIG_PPC4xx_PCI_EXPRESS=y
156 157
@@ -188,6 +189,7 @@ CONFIG_460EX=y
188# CONFIG_GENERIC_IOMAP is not set 189# CONFIG_GENERIC_IOMAP is not set
189# CONFIG_CPU_FREQ is not set 190# CONFIG_CPU_FREQ is not set
190# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
192# CONFIG_SIMPLE_GPIO is not set
191 193
192# 194#
193# Kernel options 195# Kernel options
@@ -212,6 +214,7 @@ CONFIG_BINFMT_ELF=y
212# CONFIG_BINFMT_MISC is not set 214# CONFIG_BINFMT_MISC is not set
213# CONFIG_MATH_EMULATION is not set 215# CONFIG_MATH_EMULATION is not set
214# CONFIG_IOMMU_HELPER is not set 216# CONFIG_IOMMU_HELPER is not set
217CONFIG_PPC_NEED_DMA_SYNC_OPS=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y 219CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -226,12 +229,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 231CONFIG_MIGRATION=y
229CONFIG_RESOURCES_64BIT=y
230CONFIG_PHYS_ADDR_T_64BIT=y 232CONFIG_PHYS_ADDR_T_64BIT=y
231CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 236CONFIG_UNEVICTABLE_LRU=y
237CONFIG_PPC_4K_PAGES=y
238# CONFIG_PPC_16K_PAGES is not set
239# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 240CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y 241CONFIG_PROC_DEVICETREE=y
237CONFIG_CMDLINE_BOOL=y 242CONFIG_CMDLINE_BOOL=y
@@ -255,6 +260,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 260# CONFIG_PCI_MSI is not set
256CONFIG_PCI_LEGACY=y 261CONFIG_PCI_LEGACY=y
257# CONFIG_PCI_DEBUG is not set 262# CONFIG_PCI_DEBUG is not set
263# CONFIG_PCI_STUB is not set
258# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -279,6 +285,7 @@ CONFIG_NET=y
279# 285#
280# Networking options 286# Networking options
281# 287#
288CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=y 289CONFIG_PACKET=y
283# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -329,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
330# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
331# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
332 340
333# 341#
334# Network testing 342# Network testing
@@ -341,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
341# CONFIG_AF_RXRPC is not set 349# CONFIG_AF_RXRPC is not set
342# CONFIG_PHONET is not set 350# CONFIG_PHONET is not set
343# CONFIG_WIRELESS is not set 351# CONFIG_WIRELESS is not set
352# CONFIG_WIMAX is not set
344# CONFIG_RFKILL is not set 353# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 354# CONFIG_NET_9P is not set
346 355
@@ -453,6 +462,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
453# CONFIG_WLAN_PRE80211 is not set 462# CONFIG_WLAN_PRE80211 is not set
454# CONFIG_WLAN_80211 is not set 463# CONFIG_WLAN_80211 is not set
455# CONFIG_IWLWIFI_LEDS is not set 464# CONFIG_IWLWIFI_LEDS is not set
465
466#
467# Enable WiMAX (Networking options) to see the WiMAX drivers
468#
456# CONFIG_WAN is not set 469# CONFIG_WAN is not set
457# CONFIG_FDDI is not set 470# CONFIG_FDDI is not set
458# CONFIG_HIPPI is not set 471# CONFIG_HIPPI is not set
@@ -505,9 +518,12 @@ CONFIG_SERIAL_CORE=y
505CONFIG_SERIAL_CORE_CONSOLE=y 518CONFIG_SERIAL_CORE_CONSOLE=y
506# CONFIG_SERIAL_JSM is not set 519# CONFIG_SERIAL_JSM is not set
507CONFIG_SERIAL_OF_PLATFORM=y 520CONFIG_SERIAL_OF_PLATFORM=y
521# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
508CONFIG_UNIX98_PTYS=y 522CONFIG_UNIX98_PTYS=y
523# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
509CONFIG_LEGACY_PTYS=y 524CONFIG_LEGACY_PTYS=y
510CONFIG_LEGACY_PTY_COUNT=256 525CONFIG_LEGACY_PTY_COUNT=256
526# CONFIG_HVC_UDBG is not set
511# CONFIG_IPMI_HANDLER is not set 527# CONFIG_IPMI_HANDLER is not set
512# CONFIG_HW_RANDOM is not set 528# CONFIG_HW_RANDOM is not set
513# CONFIG_NVRAM is not set 529# CONFIG_NVRAM is not set
@@ -527,11 +543,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
527# CONFIG_THERMAL is not set 543# CONFIG_THERMAL is not set
528# CONFIG_THERMAL_HWMON is not set 544# CONFIG_THERMAL_HWMON is not set
529# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
546CONFIG_SSB_POSSIBLE=y
530 547
531# 548#
532# Sonics Silicon Backplane 549# Sonics Silicon Backplane
533# 550#
534CONFIG_SSB_POSSIBLE=y
535# CONFIG_SSB is not set 551# CONFIG_SSB is not set
536 552
537# 553#
@@ -541,7 +557,7 @@ CONFIG_SSB_POSSIBLE=y
541# CONFIG_MFD_SM501 is not set 557# CONFIG_MFD_SM501 is not set
542# CONFIG_HTC_PASIC3 is not set 558# CONFIG_HTC_PASIC3 is not set
543# CONFIG_MFD_TMIO is not set 559# CONFIG_MFD_TMIO is not set
544# CONFIG_MFD_WM8400 is not set 560# CONFIG_REGULATOR is not set
545 561
546# 562#
547# Multimedia devices 563# Multimedia devices
@@ -600,7 +616,9 @@ CONFIG_EXT2_FS=y
600# CONFIG_FS_POSIX_ACL is not set 616# CONFIG_FS_POSIX_ACL is not set
601CONFIG_FILE_LOCKING=y 617CONFIG_FILE_LOCKING=y
602# CONFIG_XFS_FS is not set 618# CONFIG_XFS_FS is not set
619# CONFIG_GFS2_FS is not set
603# CONFIG_OCFS2_FS is not set 620# CONFIG_OCFS2_FS is not set
621# CONFIG_BTRFS_FS is not set
604CONFIG_DNOTIFY=y 622CONFIG_DNOTIFY=y
605CONFIG_INOTIFY=y 623CONFIG_INOTIFY=y
606CONFIG_INOTIFY_USER=y 624CONFIG_INOTIFY_USER=y
@@ -634,10 +652,7 @@ CONFIG_TMPFS=y
634# CONFIG_TMPFS_POSIX_ACL is not set 652# CONFIG_TMPFS_POSIX_ACL is not set
635# CONFIG_HUGETLB_PAGE is not set 653# CONFIG_HUGETLB_PAGE is not set
636# CONFIG_CONFIGFS_FS is not set 654# CONFIG_CONFIGFS_FS is not set
637 655CONFIG_MISC_FILESYSTEMS=y
638#
639# Miscellaneous filesystems
640#
641# CONFIG_ADFS_FS is not set 656# CONFIG_ADFS_FS is not set
642# CONFIG_AFFS_FS is not set 657# CONFIG_AFFS_FS is not set
643# CONFIG_HFS_FS is not set 658# CONFIG_HFS_FS is not set
@@ -646,6 +661,7 @@ CONFIG_TMPFS=y
646# CONFIG_BFS_FS is not set 661# CONFIG_BFS_FS is not set
647# CONFIG_EFS_FS is not set 662# CONFIG_EFS_FS is not set
648CONFIG_CRAMFS=y 663CONFIG_CRAMFS=y
664# CONFIG_SQUASHFS is not set
649# CONFIG_VXFS_FS is not set 665# CONFIG_VXFS_FS is not set
650# CONFIG_MINIX_FS is not set 666# CONFIG_MINIX_FS is not set
651# CONFIG_OMFS_FS is not set 667# CONFIG_OMFS_FS is not set
@@ -686,6 +702,7 @@ CONFIG_MSDOS_PARTITION=y
686# Library routines 702# Library routines
687# 703#
688CONFIG_BITREVERSE=y 704CONFIG_BITREVERSE=y
705CONFIG_GENERIC_FIND_LAST_BIT=y
689# CONFIG_CRC_CCITT is not set 706# CONFIG_CRC_CCITT is not set
690# CONFIG_CRC16 is not set 707# CONFIG_CRC16 is not set
691# CONFIG_CRC_T10DIF is not set 708# CONFIG_CRC_T10DIF is not set
@@ -736,6 +753,7 @@ CONFIG_SCHED_DEBUG=y
736# CONFIG_DEBUG_MEMORY_INIT is not set 753# CONFIG_DEBUG_MEMORY_INIT is not set
737# CONFIG_DEBUG_LIST is not set 754# CONFIG_DEBUG_LIST is not set
738# CONFIG_DEBUG_SG is not set 755# CONFIG_DEBUG_SG is not set
756# CONFIG_DEBUG_NOTIFIERS is not set
739# CONFIG_BOOT_PRINTK_DELAY is not set 757# CONFIG_BOOT_PRINTK_DELAY is not set
740# CONFIG_RCU_TORTURE_TEST is not set 758# CONFIG_RCU_TORTURE_TEST is not set
741# CONFIG_RCU_CPU_STALL_DETECTOR is not set 759# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -744,18 +762,24 @@ CONFIG_SCHED_DEBUG=y
744# CONFIG_FAULT_INJECTION is not set 762# CONFIG_FAULT_INJECTION is not set
745# CONFIG_LATENCYTOP is not set 763# CONFIG_LATENCYTOP is not set
746CONFIG_SYSCTL_SYSCALL_CHECK=y 764CONFIG_SYSCTL_SYSCALL_CHECK=y
747CONFIG_NOP_TRACER=y 765CONFIG_HAVE_FUNCTION_TRACER=y
748CONFIG_HAVE_FTRACE=y
749CONFIG_HAVE_DYNAMIC_FTRACE=y 766CONFIG_HAVE_DYNAMIC_FTRACE=y
750# CONFIG_FTRACE is not set 767CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
768
769#
770# Tracers
771#
772# CONFIG_FUNCTION_TRACER is not set
751# CONFIG_SCHED_TRACER is not set 773# CONFIG_SCHED_TRACER is not set
752# CONFIG_CONTEXT_SWITCH_TRACER is not set 774# CONFIG_CONTEXT_SWITCH_TRACER is not set
753# CONFIG_BOOT_TRACER is not set 775# CONFIG_BOOT_TRACER is not set
776# CONFIG_TRACE_BRANCH_PROFILING is not set
754# CONFIG_STACK_TRACER is not set 777# CONFIG_STACK_TRACER is not set
755# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 778# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
756# CONFIG_SAMPLES is not set 779# CONFIG_SAMPLES is not set
757CONFIG_HAVE_ARCH_KGDB=y 780CONFIG_HAVE_ARCH_KGDB=y
758# CONFIG_KGDB is not set 781# CONFIG_KGDB is not set
782CONFIG_PRINT_STACK_DEPTH=64
759# CONFIG_DEBUG_STACKOVERFLOW is not set 783# CONFIG_DEBUG_STACKOVERFLOW is not set
760# CONFIG_DEBUG_STACK_USAGE is not set 784# CONFIG_DEBUG_STACK_USAGE is not set
761# CONFIG_DEBUG_PAGEALLOC is not set 785# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/44x/bamboo_defconfig b/arch/powerpc/configs/44x/bamboo_defconfig
index f47c2f3420f6..959bdc43a491 100644
--- a/arch/powerpc/configs/44x/bamboo_defconfig
+++ b/arch/powerpc/configs/44x/bamboo_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:06 2008 4# Tue Jan 20 08:22:33 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,12 +76,12 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 80CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -115,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 116CONFIG_SLUB=y
116# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +126,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 130CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 131# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +133,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 136CONFIG_BLOCK=y
139CONFIG_LBD=y 137CONFIG_LBD=y
140# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
144 141
@@ -155,6 +152,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_TREE_RCU is not set
156# CONFIG_PREEMPT_RCU is not set
157# CONFIG_TREE_RCU_TRACE is not set
158# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
159# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
160 161
@@ -193,6 +194,7 @@ CONFIG_IBM440EP_ERR42=y
193# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
194# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
195# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
197# CONFIG_SIMPLE_GPIO is not set
196 198
197# 199#
198# Kernel options 200# Kernel options
@@ -216,6 +218,7 @@ CONFIG_BINFMT_ELF=y
216# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
217# CONFIG_MATH_EMULATION is not set 219# CONFIG_MATH_EMULATION is not set
218# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -230,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
233CONFIG_RESOURCES_64BIT=y
234CONFIG_PHYS_ADDR_T_64BIT=y 236CONFIG_PHYS_ADDR_T_64BIT=y
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
241CONFIG_CMDLINE_BOOL=y 246CONFIG_CMDLINE_BOOL=y
@@ -259,6 +264,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
259# CONFIG_PCI_MSI is not set 264# CONFIG_PCI_MSI is not set
260CONFIG_PCI_LEGACY=y 265CONFIG_PCI_LEGACY=y
261# CONFIG_PCI_DEBUG is not set 266# CONFIG_PCI_DEBUG is not set
267# CONFIG_PCI_STUB is not set
262# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
263# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
264# CONFIG_HAS_RAPIDIO is not set 270# CONFIG_HAS_RAPIDIO is not set
@@ -283,6 +289,7 @@ CONFIG_NET=y
283# 289#
284# Networking options 290# Networking options
285# 291#
292CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 293CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -333,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
335# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
336 344
337# 345#
338# Network testing 346# Network testing
@@ -345,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_AF_RXRPC is not set 353# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set 354# CONFIG_PHONET is not set
347# CONFIG_WIRELESS is not set 355# CONFIG_WIRELESS is not set
356# CONFIG_WIMAX is not set
348# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
349# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
350 359
@@ -394,6 +403,7 @@ CONFIG_MISC_DEVICES=y
394# CONFIG_TIFM_CORE is not set 403# CONFIG_TIFM_CORE is not set
395# CONFIG_ENCLOSURE_SERVICES is not set 404# CONFIG_ENCLOSURE_SERVICES is not set
396# CONFIG_HP_ILO is not set 405# CONFIG_HP_ILO is not set
406# CONFIG_C2PORT is not set
397CONFIG_HAVE_IDE=y 407CONFIG_HAVE_IDE=y
398# CONFIG_IDE is not set 408# CONFIG_IDE is not set
399 409
@@ -476,6 +486,7 @@ CONFIG_NETDEV_1000=y
476# CONFIG_JME is not set 486# CONFIG_JME is not set
477CONFIG_NETDEV_10000=y 487CONFIG_NETDEV_10000=y
478# CONFIG_CHELSIO_T1 is not set 488# CONFIG_CHELSIO_T1 is not set
489CONFIG_CHELSIO_T3_DEPENDS=y
479# CONFIG_CHELSIO_T3 is not set 490# CONFIG_CHELSIO_T3 is not set
480# CONFIG_ENIC is not set 491# CONFIG_ENIC is not set
481# CONFIG_IXGBE is not set 492# CONFIG_IXGBE is not set
@@ -498,6 +509,10 @@ CONFIG_NETDEV_10000=y
498# CONFIG_WLAN_PRE80211 is not set 509# CONFIG_WLAN_PRE80211 is not set
499# CONFIG_WLAN_80211 is not set 510# CONFIG_WLAN_80211 is not set
500# CONFIG_IWLWIFI_LEDS is not set 511# CONFIG_IWLWIFI_LEDS is not set
512
513#
514# Enable WiMAX (Networking options) to see the WiMAX drivers
515#
501# CONFIG_WAN is not set 516# CONFIG_WAN is not set
502# CONFIG_FDDI is not set 517# CONFIG_FDDI is not set
503# CONFIG_HIPPI is not set 518# CONFIG_HIPPI is not set
@@ -550,9 +565,12 @@ CONFIG_SERIAL_CORE=y
550CONFIG_SERIAL_CORE_CONSOLE=y 565CONFIG_SERIAL_CORE_CONSOLE=y
551# CONFIG_SERIAL_JSM is not set 566# CONFIG_SERIAL_JSM is not set
552CONFIG_SERIAL_OF_PLATFORM=y 567CONFIG_SERIAL_OF_PLATFORM=y
568# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
553CONFIG_UNIX98_PTYS=y 569CONFIG_UNIX98_PTYS=y
570# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
554CONFIG_LEGACY_PTYS=y 571CONFIG_LEGACY_PTYS=y
555CONFIG_LEGACY_PTY_COUNT=256 572CONFIG_LEGACY_PTY_COUNT=256
573# CONFIG_HVC_UDBG is not set
556# CONFIG_IPMI_HANDLER is not set 574# CONFIG_IPMI_HANDLER is not set
557# CONFIG_HW_RANDOM is not set 575# CONFIG_HW_RANDOM is not set
558# CONFIG_NVRAM is not set 576# CONFIG_NVRAM is not set
@@ -571,11 +589,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
571# CONFIG_HWMON is not set 589# CONFIG_HWMON is not set
572CONFIG_THERMAL=y 590CONFIG_THERMAL=y
573# CONFIG_WATCHDOG is not set 591# CONFIG_WATCHDOG is not set
592CONFIG_SSB_POSSIBLE=y
574 593
575# 594#
576# Sonics Silicon Backplane 595# Sonics Silicon Backplane
577# 596#
578CONFIG_SSB_POSSIBLE=y
579# CONFIG_SSB is not set 597# CONFIG_SSB is not set
580 598
581# 599#
@@ -585,7 +603,7 @@ CONFIG_SSB_POSSIBLE=y
585# CONFIG_MFD_SM501 is not set 603# CONFIG_MFD_SM501 is not set
586# CONFIG_HTC_PASIC3 is not set 604# CONFIG_HTC_PASIC3 is not set
587# CONFIG_MFD_TMIO is not set 605# CONFIG_MFD_TMIO is not set
588# CONFIG_MFD_WM8400 is not set 606# CONFIG_REGULATOR is not set
589 607
590# 608#
591# Multimedia devices 609# Multimedia devices
@@ -631,9 +649,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
631# 649#
632 650
633# 651#
634# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 652# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
635# 653#
636# CONFIG_USB_GADGET is not set 654# CONFIG_USB_GADGET is not set
655
656#
657# OTG and related infrastructure
658#
637# CONFIG_UWB is not set 659# CONFIG_UWB is not set
638# CONFIG_MMC is not set 660# CONFIG_MMC is not set
639# CONFIG_MEMSTICK is not set 661# CONFIG_MEMSTICK is not set
@@ -659,7 +681,9 @@ CONFIG_EXT2_FS=y
659# CONFIG_FS_POSIX_ACL is not set 681# CONFIG_FS_POSIX_ACL is not set
660CONFIG_FILE_LOCKING=y 682CONFIG_FILE_LOCKING=y
661# CONFIG_XFS_FS is not set 683# CONFIG_XFS_FS is not set
684# CONFIG_GFS2_FS is not set
662# CONFIG_OCFS2_FS is not set 685# CONFIG_OCFS2_FS is not set
686# CONFIG_BTRFS_FS is not set
663CONFIG_DNOTIFY=y 687CONFIG_DNOTIFY=y
664CONFIG_INOTIFY=y 688CONFIG_INOTIFY=y
665CONFIG_INOTIFY_USER=y 689CONFIG_INOTIFY_USER=y
@@ -693,10 +717,7 @@ CONFIG_TMPFS=y
693# CONFIG_TMPFS_POSIX_ACL is not set 717# CONFIG_TMPFS_POSIX_ACL is not set
694# CONFIG_HUGETLB_PAGE is not set 718# CONFIG_HUGETLB_PAGE is not set
695# CONFIG_CONFIGFS_FS is not set 719# CONFIG_CONFIGFS_FS is not set
696 720CONFIG_MISC_FILESYSTEMS=y
697#
698# Miscellaneous filesystems
699#
700# CONFIG_ADFS_FS is not set 721# CONFIG_ADFS_FS is not set
701# CONFIG_AFFS_FS is not set 722# CONFIG_AFFS_FS is not set
702# CONFIG_HFS_FS is not set 723# CONFIG_HFS_FS is not set
@@ -705,6 +726,7 @@ CONFIG_TMPFS=y
705# CONFIG_BFS_FS is not set 726# CONFIG_BFS_FS is not set
706# CONFIG_EFS_FS is not set 727# CONFIG_EFS_FS is not set
707CONFIG_CRAMFS=y 728CONFIG_CRAMFS=y
729# CONFIG_SQUASHFS is not set
708# CONFIG_VXFS_FS is not set 730# CONFIG_VXFS_FS is not set
709# CONFIG_MINIX_FS is not set 731# CONFIG_MINIX_FS is not set
710# CONFIG_OMFS_FS is not set 732# CONFIG_OMFS_FS is not set
@@ -745,6 +767,7 @@ CONFIG_MSDOS_PARTITION=y
745# Library routines 767# Library routines
746# 768#
747CONFIG_BITREVERSE=y 769CONFIG_BITREVERSE=y
770CONFIG_GENERIC_FIND_LAST_BIT=y
748# CONFIG_CRC_CCITT is not set 771# CONFIG_CRC_CCITT is not set
749# CONFIG_CRC16 is not set 772# CONFIG_CRC16 is not set
750# CONFIG_CRC_T10DIF is not set 773# CONFIG_CRC_T10DIF is not set
@@ -795,6 +818,7 @@ CONFIG_SCHED_DEBUG=y
795# CONFIG_DEBUG_MEMORY_INIT is not set 818# CONFIG_DEBUG_MEMORY_INIT is not set
796# CONFIG_DEBUG_LIST is not set 819# CONFIG_DEBUG_LIST is not set
797# CONFIG_DEBUG_SG is not set 820# CONFIG_DEBUG_SG is not set
821# CONFIG_DEBUG_NOTIFIERS is not set
798# CONFIG_BOOT_PRINTK_DELAY is not set 822# CONFIG_BOOT_PRINTK_DELAY is not set
799# CONFIG_RCU_TORTURE_TEST is not set 823# CONFIG_RCU_TORTURE_TEST is not set
800# CONFIG_RCU_CPU_STALL_DETECTOR is not set 824# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -803,18 +827,24 @@ CONFIG_SCHED_DEBUG=y
803# CONFIG_FAULT_INJECTION is not set 827# CONFIG_FAULT_INJECTION is not set
804# CONFIG_LATENCYTOP is not set 828# CONFIG_LATENCYTOP is not set
805CONFIG_SYSCTL_SYSCALL_CHECK=y 829CONFIG_SYSCTL_SYSCALL_CHECK=y
806CONFIG_NOP_TRACER=y 830CONFIG_HAVE_FUNCTION_TRACER=y
807CONFIG_HAVE_FTRACE=y
808CONFIG_HAVE_DYNAMIC_FTRACE=y 831CONFIG_HAVE_DYNAMIC_FTRACE=y
809# CONFIG_FTRACE is not set 832CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
833
834#
835# Tracers
836#
837# CONFIG_FUNCTION_TRACER is not set
810# CONFIG_SCHED_TRACER is not set 838# CONFIG_SCHED_TRACER is not set
811# CONFIG_CONTEXT_SWITCH_TRACER is not set 839# CONFIG_CONTEXT_SWITCH_TRACER is not set
812# CONFIG_BOOT_TRACER is not set 840# CONFIG_BOOT_TRACER is not set
841# CONFIG_TRACE_BRANCH_PROFILING is not set
813# CONFIG_STACK_TRACER is not set 842# CONFIG_STACK_TRACER is not set
814# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 843# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
815# CONFIG_SAMPLES is not set 844# CONFIG_SAMPLES is not set
816CONFIG_HAVE_ARCH_KGDB=y 845CONFIG_HAVE_ARCH_KGDB=y
817# CONFIG_KGDB is not set 846# CONFIG_KGDB is not set
847CONFIG_PRINT_STACK_DEPTH=64
818# CONFIG_DEBUG_STACKOVERFLOW is not set 848# CONFIG_DEBUG_STACKOVERFLOW is not set
819# CONFIG_DEBUG_STACK_USAGE is not set 849# CONFIG_DEBUG_STACK_USAGE is not set
820# CONFIG_DEBUG_PAGEALLOC is not set 850# CONFIG_DEBUG_PAGEALLOC is not set
@@ -841,11 +871,15 @@ CONFIG_CRYPTO=y
841# 871#
842# CONFIG_CRYPTO_FIPS is not set 872# CONFIG_CRYPTO_FIPS is not set
843CONFIG_CRYPTO_ALGAPI=y 873CONFIG_CRYPTO_ALGAPI=y
844CONFIG_CRYPTO_AEAD=y 874CONFIG_CRYPTO_ALGAPI2=y
875CONFIG_CRYPTO_AEAD2=y
845CONFIG_CRYPTO_BLKCIPHER=y 876CONFIG_CRYPTO_BLKCIPHER=y
877CONFIG_CRYPTO_BLKCIPHER2=y
846CONFIG_CRYPTO_HASH=y 878CONFIG_CRYPTO_HASH=y
847CONFIG_CRYPTO_RNG=y 879CONFIG_CRYPTO_HASH2=y
880CONFIG_CRYPTO_RNG2=y
848CONFIG_CRYPTO_MANAGER=y 881CONFIG_CRYPTO_MANAGER=y
882CONFIG_CRYPTO_MANAGER2=y
849# CONFIG_CRYPTO_GF128MUL is not set 883# CONFIG_CRYPTO_GF128MUL is not set
850# CONFIG_CRYPTO_NULL is not set 884# CONFIG_CRYPTO_NULL is not set
851# CONFIG_CRYPTO_CRYPTD is not set 885# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/canyonlands_defconfig b/arch/powerpc/configs/44x/canyonlands_defconfig
index 0694756ac759..81cdcc4b9278 100644
--- a/arch/powerpc/configs/44x/canyonlands_defconfig
+++ b/arch/powerpc/configs/44x/canyonlands_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:08 2008 4# Tue Jan 20 08:22:35 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,8 +76,8 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79# CONFIG_GROUP_SCHED is not set 79# CONFIG_GROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -111,7 +112,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 112CONFIG_SLUB=y
112# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 116# CONFIG_KPROBES is not set
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 126CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 132CONFIG_BLOCK=y
135CONFIG_LBD=y 133CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
140 137
@@ -151,6 +148,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
155CONFIG_PPC4xx_PCI_EXPRESS=y 156CONFIG_PPC4xx_PCI_EXPRESS=y
156 157
@@ -188,6 +189,7 @@ CONFIG_460EX=y
188# CONFIG_GENERIC_IOMAP is not set 189# CONFIG_GENERIC_IOMAP is not set
189# CONFIG_CPU_FREQ is not set 190# CONFIG_CPU_FREQ is not set
190# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
192# CONFIG_SIMPLE_GPIO is not set
191 193
192# 194#
193# Kernel options 195# Kernel options
@@ -212,6 +214,7 @@ CONFIG_BINFMT_ELF=y
212# CONFIG_BINFMT_MISC is not set 214# CONFIG_BINFMT_MISC is not set
213# CONFIG_MATH_EMULATION is not set 215# CONFIG_MATH_EMULATION is not set
214# CONFIG_IOMMU_HELPER is not set 216# CONFIG_IOMMU_HELPER is not set
217CONFIG_PPC_NEED_DMA_SYNC_OPS=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y 219CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -226,12 +229,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 231CONFIG_MIGRATION=y
229CONFIG_RESOURCES_64BIT=y
230CONFIG_PHYS_ADDR_T_64BIT=y 232CONFIG_PHYS_ADDR_T_64BIT=y
231CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 236CONFIG_UNEVICTABLE_LRU=y
237CONFIG_PPC_4K_PAGES=y
238# CONFIG_PPC_16K_PAGES is not set
239# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 240CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y 241CONFIG_PROC_DEVICETREE=y
237CONFIG_CMDLINE_BOOL=y 242CONFIG_CMDLINE_BOOL=y
@@ -255,6 +260,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 260# CONFIG_PCI_MSI is not set
256CONFIG_PCI_LEGACY=y 261CONFIG_PCI_LEGACY=y
257# CONFIG_PCI_DEBUG is not set 262# CONFIG_PCI_DEBUG is not set
263# CONFIG_PCI_STUB is not set
258# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -279,6 +285,7 @@ CONFIG_NET=y
279# 285#
280# Networking options 286# Networking options
281# 287#
288CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=y 289CONFIG_PACKET=y
283# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -329,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
330# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
331# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
332 340
333# 341#
334# Network testing 342# Network testing
@@ -341,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
341# CONFIG_AF_RXRPC is not set 349# CONFIG_AF_RXRPC is not set
342# CONFIG_PHONET is not set 350# CONFIG_PHONET is not set
343# CONFIG_WIRELESS is not set 351# CONFIG_WIRELESS is not set
352# CONFIG_WIMAX is not set
344# CONFIG_RFKILL is not set 353# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 354# CONFIG_NET_9P is not set
346 355
@@ -453,6 +462,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
453# CONFIG_WLAN_PRE80211 is not set 462# CONFIG_WLAN_PRE80211 is not set
454# CONFIG_WLAN_80211 is not set 463# CONFIG_WLAN_80211 is not set
455# CONFIG_IWLWIFI_LEDS is not set 464# CONFIG_IWLWIFI_LEDS is not set
465
466#
467# Enable WiMAX (Networking options) to see the WiMAX drivers
468#
456# CONFIG_WAN is not set 469# CONFIG_WAN is not set
457# CONFIG_FDDI is not set 470# CONFIG_FDDI is not set
458# CONFIG_HIPPI is not set 471# CONFIG_HIPPI is not set
@@ -505,9 +518,12 @@ CONFIG_SERIAL_CORE=y
505CONFIG_SERIAL_CORE_CONSOLE=y 518CONFIG_SERIAL_CORE_CONSOLE=y
506# CONFIG_SERIAL_JSM is not set 519# CONFIG_SERIAL_JSM is not set
507CONFIG_SERIAL_OF_PLATFORM=y 520CONFIG_SERIAL_OF_PLATFORM=y
521# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
508CONFIG_UNIX98_PTYS=y 522CONFIG_UNIX98_PTYS=y
523# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
509CONFIG_LEGACY_PTYS=y 524CONFIG_LEGACY_PTYS=y
510CONFIG_LEGACY_PTY_COUNT=256 525CONFIG_LEGACY_PTY_COUNT=256
526# CONFIG_HVC_UDBG is not set
511# CONFIG_IPMI_HANDLER is not set 527# CONFIG_IPMI_HANDLER is not set
512# CONFIG_HW_RANDOM is not set 528# CONFIG_HW_RANDOM is not set
513# CONFIG_NVRAM is not set 529# CONFIG_NVRAM is not set
@@ -527,11 +543,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
527# CONFIG_THERMAL is not set 543# CONFIG_THERMAL is not set
528# CONFIG_THERMAL_HWMON is not set 544# CONFIG_THERMAL_HWMON is not set
529# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
546CONFIG_SSB_POSSIBLE=y
530 547
531# 548#
532# Sonics Silicon Backplane 549# Sonics Silicon Backplane
533# 550#
534CONFIG_SSB_POSSIBLE=y
535# CONFIG_SSB is not set 551# CONFIG_SSB is not set
536 552
537# 553#
@@ -541,7 +557,7 @@ CONFIG_SSB_POSSIBLE=y
541# CONFIG_MFD_SM501 is not set 557# CONFIG_MFD_SM501 is not set
542# CONFIG_HTC_PASIC3 is not set 558# CONFIG_HTC_PASIC3 is not set
543# CONFIG_MFD_TMIO is not set 559# CONFIG_MFD_TMIO is not set
544# CONFIG_MFD_WM8400 is not set 560# CONFIG_REGULATOR is not set
545 561
546# 562#
547# Multimedia devices 563# Multimedia devices
@@ -600,7 +616,9 @@ CONFIG_EXT2_FS=y
600# CONFIG_FS_POSIX_ACL is not set 616# CONFIG_FS_POSIX_ACL is not set
601CONFIG_FILE_LOCKING=y 617CONFIG_FILE_LOCKING=y
602# CONFIG_XFS_FS is not set 618# CONFIG_XFS_FS is not set
619# CONFIG_GFS2_FS is not set
603# CONFIG_OCFS2_FS is not set 620# CONFIG_OCFS2_FS is not set
621# CONFIG_BTRFS_FS is not set
604CONFIG_DNOTIFY=y 622CONFIG_DNOTIFY=y
605CONFIG_INOTIFY=y 623CONFIG_INOTIFY=y
606CONFIG_INOTIFY_USER=y 624CONFIG_INOTIFY_USER=y
@@ -634,10 +652,7 @@ CONFIG_TMPFS=y
634# CONFIG_TMPFS_POSIX_ACL is not set 652# CONFIG_TMPFS_POSIX_ACL is not set
635# CONFIG_HUGETLB_PAGE is not set 653# CONFIG_HUGETLB_PAGE is not set
636# CONFIG_CONFIGFS_FS is not set 654# CONFIG_CONFIGFS_FS is not set
637 655CONFIG_MISC_FILESYSTEMS=y
638#
639# Miscellaneous filesystems
640#
641# CONFIG_ADFS_FS is not set 656# CONFIG_ADFS_FS is not set
642# CONFIG_AFFS_FS is not set 657# CONFIG_AFFS_FS is not set
643# CONFIG_HFS_FS is not set 658# CONFIG_HFS_FS is not set
@@ -646,6 +661,7 @@ CONFIG_TMPFS=y
646# CONFIG_BFS_FS is not set 661# CONFIG_BFS_FS is not set
647# CONFIG_EFS_FS is not set 662# CONFIG_EFS_FS is not set
648CONFIG_CRAMFS=y 663CONFIG_CRAMFS=y
664# CONFIG_SQUASHFS is not set
649# CONFIG_VXFS_FS is not set 665# CONFIG_VXFS_FS is not set
650# CONFIG_MINIX_FS is not set 666# CONFIG_MINIX_FS is not set
651# CONFIG_OMFS_FS is not set 667# CONFIG_OMFS_FS is not set
@@ -686,6 +702,7 @@ CONFIG_MSDOS_PARTITION=y
686# Library routines 702# Library routines
687# 703#
688CONFIG_BITREVERSE=y 704CONFIG_BITREVERSE=y
705CONFIG_GENERIC_FIND_LAST_BIT=y
689# CONFIG_CRC_CCITT is not set 706# CONFIG_CRC_CCITT is not set
690# CONFIG_CRC16 is not set 707# CONFIG_CRC16 is not set
691# CONFIG_CRC_T10DIF is not set 708# CONFIG_CRC_T10DIF is not set
@@ -736,6 +753,7 @@ CONFIG_SCHED_DEBUG=y
736# CONFIG_DEBUG_MEMORY_INIT is not set 753# CONFIG_DEBUG_MEMORY_INIT is not set
737# CONFIG_DEBUG_LIST is not set 754# CONFIG_DEBUG_LIST is not set
738# CONFIG_DEBUG_SG is not set 755# CONFIG_DEBUG_SG is not set
756# CONFIG_DEBUG_NOTIFIERS is not set
739# CONFIG_BOOT_PRINTK_DELAY is not set 757# CONFIG_BOOT_PRINTK_DELAY is not set
740# CONFIG_RCU_TORTURE_TEST is not set 758# CONFIG_RCU_TORTURE_TEST is not set
741# CONFIG_RCU_CPU_STALL_DETECTOR is not set 759# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -744,18 +762,24 @@ CONFIG_SCHED_DEBUG=y
744# CONFIG_FAULT_INJECTION is not set 762# CONFIG_FAULT_INJECTION is not set
745# CONFIG_LATENCYTOP is not set 763# CONFIG_LATENCYTOP is not set
746CONFIG_SYSCTL_SYSCALL_CHECK=y 764CONFIG_SYSCTL_SYSCALL_CHECK=y
747CONFIG_NOP_TRACER=y 765CONFIG_HAVE_FUNCTION_TRACER=y
748CONFIG_HAVE_FTRACE=y
749CONFIG_HAVE_DYNAMIC_FTRACE=y 766CONFIG_HAVE_DYNAMIC_FTRACE=y
750# CONFIG_FTRACE is not set 767CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
768
769#
770# Tracers
771#
772# CONFIG_FUNCTION_TRACER is not set
751# CONFIG_SCHED_TRACER is not set 773# CONFIG_SCHED_TRACER is not set
752# CONFIG_CONTEXT_SWITCH_TRACER is not set 774# CONFIG_CONTEXT_SWITCH_TRACER is not set
753# CONFIG_BOOT_TRACER is not set 775# CONFIG_BOOT_TRACER is not set
776# CONFIG_TRACE_BRANCH_PROFILING is not set
754# CONFIG_STACK_TRACER is not set 777# CONFIG_STACK_TRACER is not set
755# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 778# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
756# CONFIG_SAMPLES is not set 779# CONFIG_SAMPLES is not set
757CONFIG_HAVE_ARCH_KGDB=y 780CONFIG_HAVE_ARCH_KGDB=y
758# CONFIG_KGDB is not set 781# CONFIG_KGDB is not set
782CONFIG_PRINT_STACK_DEPTH=64
759# CONFIG_DEBUG_STACKOVERFLOW is not set 783# CONFIG_DEBUG_STACKOVERFLOW is not set
760# CONFIG_DEBUG_STACK_USAGE is not set 784# CONFIG_DEBUG_STACK_USAGE is not set
761# CONFIG_DEBUG_PAGEALLOC is not set 785# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/44x/ebony_defconfig b/arch/powerpc/configs/44x/ebony_defconfig
index c9937578ef7f..be64aa644d15 100644
--- a/arch/powerpc/configs/44x/ebony_defconfig
+++ b/arch/powerpc/configs/44x/ebony_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:09 2008 4# Tue Jan 20 08:22:36 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -74,12 +75,12 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
75# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
79CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
80# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -92,6 +93,7 @@ CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94CONFIG_KALLSYMS_ALL=y 95CONFIG_KALLSYMS_ALL=y
96CONFIG_KALLSYMS_STRIP_GENERATED=y
95CONFIG_KALLSYMS_EXTRA_PASS=y 97CONFIG_KALLSYMS_EXTRA_PASS=y
96CONFIG_HOTPLUG=y 98CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 99CONFIG_PRINTK=y
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -125,7 +126,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130CONFIG_MODULES=y 130CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set 131# CONFIG_MODULE_FORCE_LOAD is not set
@@ -133,11 +133,9 @@ CONFIG_MODULE_UNLOAD=y
133# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
134# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
135# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
136CONFIG_KMOD=y
137CONFIG_BLOCK=y 136CONFIG_BLOCK=y
138CONFIG_LBD=y 137CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
143 141
@@ -154,6 +152,10 @@ CONFIG_DEFAULT_AS=y
154# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
156CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_TREE_RCU is not set
156# CONFIG_PREEMPT_RCU is not set
157# CONFIG_TREE_RCU_TRACE is not set
158# CONFIG_PREEMPT_RCU_TRACE is not set
157# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
158# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
159 161
@@ -192,6 +194,7 @@ CONFIG_440GP=y
192# CONFIG_CPU_FREQ is not set 194# CONFIG_CPU_FREQ is not set
193# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
194CONFIG_OF_RTC=y 196CONFIG_OF_RTC=y
197# CONFIG_SIMPLE_GPIO is not set
195 198
196# 199#
197# Kernel options 200# Kernel options
@@ -215,6 +218,7 @@ CONFIG_BINFMT_ELF=y
215# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
216CONFIG_MATH_EMULATION=y 219CONFIG_MATH_EMULATION=y
217# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
219CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -229,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
229CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
232CONFIG_RESOURCES_64BIT=y
233CONFIG_PHYS_ADDR_T_64BIT=y 236CONFIG_PHYS_ADDR_T_64BIT=y
234CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
239CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
240# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -257,6 +263,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 263# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 264CONFIG_PCI_LEGACY=y
259# CONFIG_PCI_DEBUG is not set 265# CONFIG_PCI_DEBUG is not set
266# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -281,6 +288,7 @@ CONFIG_NET=y
281# 288#
282# Networking options 289# Networking options
283# 290#
291CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y 292CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set 293# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y 294CONFIG_UNIX=y
@@ -331,6 +339,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_ECONET is not set 339# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 340# CONFIG_WAN_ROUTER is not set
333# CONFIG_NET_SCHED is not set 341# CONFIG_NET_SCHED is not set
342# CONFIG_DCB is not set
334 343
335# 344#
336# Network testing 345# Network testing
@@ -343,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_AF_RXRPC is not set 352# CONFIG_AF_RXRPC is not set
344# CONFIG_PHONET is not set 353# CONFIG_PHONET is not set
345# CONFIG_WIRELESS is not set 354# CONFIG_WIRELESS is not set
355# CONFIG_WIMAX is not set
346# CONFIG_RFKILL is not set 356# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set 357# CONFIG_NET_9P is not set
348 358
@@ -368,6 +378,7 @@ CONFIG_MTD=y
368# CONFIG_MTD_DEBUG is not set 378# CONFIG_MTD_DEBUG is not set
369# CONFIG_MTD_CONCAT is not set 379# CONFIG_MTD_CONCAT is not set
370CONFIG_MTD_PARTITIONS=y 380CONFIG_MTD_PARTITIONS=y
381# CONFIG_MTD_TESTS is not set
371# CONFIG_MTD_REDBOOT_PARTS is not set 382# CONFIG_MTD_REDBOOT_PARTS is not set
372# CONFIG_MTD_CMDLINE_PARTS is not set 383# CONFIG_MTD_CMDLINE_PARTS is not set
373CONFIG_MTD_OF_PARTS=y 384CONFIG_MTD_OF_PARTS=y
@@ -439,6 +450,12 @@ CONFIG_MTD_PHYSMAP_OF=y
439# CONFIG_MTD_ONENAND is not set 450# CONFIG_MTD_ONENAND is not set
440 451
441# 452#
453# LPDDR flash memory drivers
454#
455# CONFIG_MTD_LPDDR is not set
456# CONFIG_MTD_QINFO_PROBE is not set
457
458#
442# UBI - Unsorted block images 459# UBI - Unsorted block images
443# 460#
444# CONFIG_MTD_UBI is not set 461# CONFIG_MTD_UBI is not set
@@ -469,6 +486,7 @@ CONFIG_MISC_DEVICES=y
469# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
470# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
471# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
489# CONFIG_C2PORT is not set
472CONFIG_HAVE_IDE=y 490CONFIG_HAVE_IDE=y
473# CONFIG_IDE is not set 491# CONFIG_IDE is not set
474 492
@@ -551,6 +569,7 @@ CONFIG_NETDEV_1000=y
551# CONFIG_JME is not set 569# CONFIG_JME is not set
552CONFIG_NETDEV_10000=y 570CONFIG_NETDEV_10000=y
553# CONFIG_CHELSIO_T1 is not set 571# CONFIG_CHELSIO_T1 is not set
572CONFIG_CHELSIO_T3_DEPENDS=y
554# CONFIG_CHELSIO_T3 is not set 573# CONFIG_CHELSIO_T3 is not set
555# CONFIG_ENIC is not set 574# CONFIG_ENIC is not set
556# CONFIG_IXGBE is not set 575# CONFIG_IXGBE is not set
@@ -573,6 +592,10 @@ CONFIG_NETDEV_10000=y
573# CONFIG_WLAN_PRE80211 is not set 592# CONFIG_WLAN_PRE80211 is not set
574# CONFIG_WLAN_80211 is not set 593# CONFIG_WLAN_80211 is not set
575# CONFIG_IWLWIFI_LEDS is not set 594# CONFIG_IWLWIFI_LEDS is not set
595
596#
597# Enable WiMAX (Networking options) to see the WiMAX drivers
598#
576# CONFIG_WAN is not set 599# CONFIG_WAN is not set
577# CONFIG_FDDI is not set 600# CONFIG_FDDI is not set
578# CONFIG_HIPPI is not set 601# CONFIG_HIPPI is not set
@@ -625,9 +648,12 @@ CONFIG_SERIAL_CORE=y
625CONFIG_SERIAL_CORE_CONSOLE=y 648CONFIG_SERIAL_CORE_CONSOLE=y
626# CONFIG_SERIAL_JSM is not set 649# CONFIG_SERIAL_JSM is not set
627CONFIG_SERIAL_OF_PLATFORM=y 650CONFIG_SERIAL_OF_PLATFORM=y
651# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
628CONFIG_UNIX98_PTYS=y 652CONFIG_UNIX98_PTYS=y
653# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
629CONFIG_LEGACY_PTYS=y 654CONFIG_LEGACY_PTYS=y
630CONFIG_LEGACY_PTY_COUNT=256 655CONFIG_LEGACY_PTY_COUNT=256
656# CONFIG_HVC_UDBG is not set
631# CONFIG_IPMI_HANDLER is not set 657# CONFIG_IPMI_HANDLER is not set
632# CONFIG_HW_RANDOM is not set 658# CONFIG_HW_RANDOM is not set
633# CONFIG_NVRAM is not set 659# CONFIG_NVRAM is not set
@@ -646,11 +672,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
646# CONFIG_HWMON is not set 672# CONFIG_HWMON is not set
647CONFIG_THERMAL=y 673CONFIG_THERMAL=y
648# CONFIG_WATCHDOG is not set 674# CONFIG_WATCHDOG is not set
675CONFIG_SSB_POSSIBLE=y
649 676
650# 677#
651# Sonics Silicon Backplane 678# Sonics Silicon Backplane
652# 679#
653CONFIG_SSB_POSSIBLE=y
654# CONFIG_SSB is not set 680# CONFIG_SSB is not set
655 681
656# 682#
@@ -660,7 +686,7 @@ CONFIG_SSB_POSSIBLE=y
660# CONFIG_MFD_SM501 is not set 686# CONFIG_MFD_SM501 is not set
661# CONFIG_HTC_PASIC3 is not set 687# CONFIG_HTC_PASIC3 is not set
662# CONFIG_MFD_TMIO is not set 688# CONFIG_MFD_TMIO is not set
663# CONFIG_MFD_WM8400 is not set 689# CONFIG_REGULATOR is not set
664 690
665# 691#
666# Multimedia devices 692# Multimedia devices
@@ -706,9 +732,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
706# 732#
707 733
708# 734#
709# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 735# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
710# 736#
711# CONFIG_USB_GADGET is not set 737# CONFIG_USB_GADGET is not set
738
739#
740# OTG and related infrastructure
741#
712# CONFIG_UWB is not set 742# CONFIG_UWB is not set
713# CONFIG_MMC is not set 743# CONFIG_MMC is not set
714# CONFIG_MEMSTICK is not set 744# CONFIG_MEMSTICK is not set
@@ -734,7 +764,9 @@ CONFIG_EXT2_FS=y
734# CONFIG_FS_POSIX_ACL is not set 764# CONFIG_FS_POSIX_ACL is not set
735CONFIG_FILE_LOCKING=y 765CONFIG_FILE_LOCKING=y
736# CONFIG_XFS_FS is not set 766# CONFIG_XFS_FS is not set
767# CONFIG_GFS2_FS is not set
737# CONFIG_OCFS2_FS is not set 768# CONFIG_OCFS2_FS is not set
769# CONFIG_BTRFS_FS is not set
738CONFIG_DNOTIFY=y 770CONFIG_DNOTIFY=y
739CONFIG_INOTIFY=y 771CONFIG_INOTIFY=y
740CONFIG_INOTIFY_USER=y 772CONFIG_INOTIFY_USER=y
@@ -768,10 +800,7 @@ CONFIG_TMPFS=y
768# CONFIG_TMPFS_POSIX_ACL is not set 800# CONFIG_TMPFS_POSIX_ACL is not set
769# CONFIG_HUGETLB_PAGE is not set 801# CONFIG_HUGETLB_PAGE is not set
770# CONFIG_CONFIGFS_FS is not set 802# CONFIG_CONFIGFS_FS is not set
771 803CONFIG_MISC_FILESYSTEMS=y
772#
773# Miscellaneous filesystems
774#
775# CONFIG_ADFS_FS is not set 804# CONFIG_ADFS_FS is not set
776# CONFIG_AFFS_FS is not set 805# CONFIG_AFFS_FS is not set
777# CONFIG_HFS_FS is not set 806# CONFIG_HFS_FS is not set
@@ -791,6 +820,7 @@ CONFIG_JFFS2_ZLIB=y
791CONFIG_JFFS2_RTIME=y 820CONFIG_JFFS2_RTIME=y
792# CONFIG_JFFS2_RUBIN is not set 821# CONFIG_JFFS2_RUBIN is not set
793CONFIG_CRAMFS=y 822CONFIG_CRAMFS=y
823# CONFIG_SQUASHFS is not set
794# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
795# CONFIG_MINIX_FS is not set 825# CONFIG_MINIX_FS is not set
796# CONFIG_OMFS_FS is not set 826# CONFIG_OMFS_FS is not set
@@ -831,6 +861,7 @@ CONFIG_MSDOS_PARTITION=y
831# Library routines 861# Library routines
832# 862#
833CONFIG_BITREVERSE=y 863CONFIG_BITREVERSE=y
864CONFIG_GENERIC_FIND_LAST_BIT=y
834# CONFIG_CRC_CCITT is not set 865# CONFIG_CRC_CCITT is not set
835# CONFIG_CRC16 is not set 866# CONFIG_CRC16 is not set
836# CONFIG_CRC_T10DIF is not set 867# CONFIG_CRC_T10DIF is not set
@@ -882,6 +913,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
882# CONFIG_DEBUG_MEMORY_INIT is not set 913# CONFIG_DEBUG_MEMORY_INIT is not set
883# CONFIG_DEBUG_LIST is not set 914# CONFIG_DEBUG_LIST is not set
884# CONFIG_DEBUG_SG is not set 915# CONFIG_DEBUG_SG is not set
916# CONFIG_DEBUG_NOTIFIERS is not set
885# CONFIG_BOOT_PRINTK_DELAY is not set 917# CONFIG_BOOT_PRINTK_DELAY is not set
886# CONFIG_RCU_TORTURE_TEST is not set 918# CONFIG_RCU_TORTURE_TEST is not set
887# CONFIG_RCU_CPU_STALL_DETECTOR is not set 919# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -890,18 +922,24 @@ CONFIG_DEBUG_BUGVERBOSE=y
890# CONFIG_FAULT_INJECTION is not set 922# CONFIG_FAULT_INJECTION is not set
891# CONFIG_LATENCYTOP is not set 923# CONFIG_LATENCYTOP is not set
892CONFIG_SYSCTL_SYSCALL_CHECK=y 924CONFIG_SYSCTL_SYSCALL_CHECK=y
893CONFIG_NOP_TRACER=y 925CONFIG_HAVE_FUNCTION_TRACER=y
894CONFIG_HAVE_FTRACE=y
895CONFIG_HAVE_DYNAMIC_FTRACE=y 926CONFIG_HAVE_DYNAMIC_FTRACE=y
896# CONFIG_FTRACE is not set 927CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
928
929#
930# Tracers
931#
932# CONFIG_FUNCTION_TRACER is not set
897# CONFIG_SCHED_TRACER is not set 933# CONFIG_SCHED_TRACER is not set
898# CONFIG_CONTEXT_SWITCH_TRACER is not set 934# CONFIG_CONTEXT_SWITCH_TRACER is not set
899# CONFIG_BOOT_TRACER is not set 935# CONFIG_BOOT_TRACER is not set
936# CONFIG_TRACE_BRANCH_PROFILING is not set
900# CONFIG_STACK_TRACER is not set 937# CONFIG_STACK_TRACER is not set
901# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 938# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
902# CONFIG_SAMPLES is not set 939# CONFIG_SAMPLES is not set
903CONFIG_HAVE_ARCH_KGDB=y 940CONFIG_HAVE_ARCH_KGDB=y
904# CONFIG_KGDB is not set 941# CONFIG_KGDB is not set
942CONFIG_PRINT_STACK_DEPTH=64
905# CONFIG_DEBUG_STACKOVERFLOW is not set 943# CONFIG_DEBUG_STACKOVERFLOW is not set
906# CONFIG_DEBUG_STACK_USAGE is not set 944# CONFIG_DEBUG_STACK_USAGE is not set
907# CONFIG_DEBUG_PAGEALLOC is not set 945# CONFIG_DEBUG_PAGEALLOC is not set
@@ -928,11 +966,15 @@ CONFIG_CRYPTO=y
928# 966#
929# CONFIG_CRYPTO_FIPS is not set 967# CONFIG_CRYPTO_FIPS is not set
930CONFIG_CRYPTO_ALGAPI=y 968CONFIG_CRYPTO_ALGAPI=y
931CONFIG_CRYPTO_AEAD=y 969CONFIG_CRYPTO_ALGAPI2=y
970CONFIG_CRYPTO_AEAD2=y
932CONFIG_CRYPTO_BLKCIPHER=y 971CONFIG_CRYPTO_BLKCIPHER=y
972CONFIG_CRYPTO_BLKCIPHER2=y
933CONFIG_CRYPTO_HASH=y 973CONFIG_CRYPTO_HASH=y
934CONFIG_CRYPTO_RNG=y 974CONFIG_CRYPTO_HASH2=y
975CONFIG_CRYPTO_RNG2=y
935CONFIG_CRYPTO_MANAGER=y 976CONFIG_CRYPTO_MANAGER=y
977CONFIG_CRYPTO_MANAGER2=y
936# CONFIG_CRYPTO_GF128MUL is not set 978# CONFIG_CRYPTO_GF128MUL is not set
937# CONFIG_CRYPTO_NULL is not set 979# CONFIG_CRYPTO_NULL is not set
938# CONFIG_CRYPTO_CRYPTD is not set 980# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/katmai_defconfig b/arch/powerpc/configs/44x/katmai_defconfig
index e326ee8bd195..f67250b24ec5 100644
--- a/arch/powerpc/configs/44x/katmai_defconfig
+++ b/arch/powerpc/configs/44x/katmai_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:11 2008 4# Tue Jan 20 08:22:38 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -74,8 +75,8 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
75# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78# CONFIG_GROUP_SCHED is not set 78# CONFIG_GROUP_SCHED is not set
79# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 81CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
@@ -110,7 +111,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 111CONFIG_SLUB=y
111# CONFIG_SLOB is not set 112# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115# CONFIG_KPROBES is not set 115# CONFIG_KPROBES is not set
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -121,7 +121,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
126CONFIG_MODULES=y 125CONFIG_MODULES=y
127# CONFIG_MODULE_FORCE_LOAD is not set 126# CONFIG_MODULE_FORCE_LOAD is not set
@@ -129,11 +128,9 @@ CONFIG_MODULE_UNLOAD=y
129# CONFIG_MODULE_FORCE_UNLOAD is not set 128# CONFIG_MODULE_FORCE_UNLOAD is not set
130# CONFIG_MODVERSIONS is not set 129# CONFIG_MODVERSIONS is not set
131# CONFIG_MODULE_SRCVERSION_ALL is not set 130# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_KMOD=y
133CONFIG_BLOCK=y 131CONFIG_BLOCK=y
134CONFIG_LBD=y 132CONFIG_LBD=y
135# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_LSF is not set
137# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
139 136
@@ -150,6 +147,10 @@ CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
153# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
154CONFIG_PPC4xx_PCI_EXPRESS=y 155CONFIG_PPC4xx_PCI_EXPRESS=y
155 156
@@ -187,6 +188,7 @@ CONFIG_440SPe=y
187# CONFIG_GENERIC_IOMAP is not set 188# CONFIG_GENERIC_IOMAP is not set
188# CONFIG_CPU_FREQ is not set 189# CONFIG_CPU_FREQ is not set
189# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
191# CONFIG_SIMPLE_GPIO is not set
190 192
191# 193#
192# Kernel options 194# Kernel options
@@ -210,6 +212,7 @@ CONFIG_BINFMT_ELF=y
210# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
211# CONFIG_MATH_EMULATION is not set 213# CONFIG_MATH_EMULATION is not set
212# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
215CONFIG_PPC_NEED_DMA_SYNC_OPS=y
213CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
214CONFIG_ARCH_HAS_WALK_MEMORY=y 217CONFIG_ARCH_HAS_WALK_MEMORY=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -224,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
224CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
227CONFIG_RESOURCES_64BIT=y
228CONFIG_PHYS_ADDR_T_64BIT=y 230CONFIG_PHYS_ADDR_T_64BIT=y
229CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
232CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
233CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
234CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
235CONFIG_CMDLINE_BOOL=y 240CONFIG_CMDLINE_BOOL=y
@@ -253,6 +258,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 258# CONFIG_PCI_MSI is not set
254CONFIG_PCI_LEGACY=y 259CONFIG_PCI_LEGACY=y
255# CONFIG_PCI_DEBUG is not set 260# CONFIG_PCI_DEBUG is not set
261# CONFIG_PCI_STUB is not set
256# CONFIG_PCCARD is not set 262# CONFIG_PCCARD is not set
257# CONFIG_HOTPLUG_PCI is not set 263# CONFIG_HOTPLUG_PCI is not set
258# CONFIG_HAS_RAPIDIO is not set 264# CONFIG_HAS_RAPIDIO is not set
@@ -277,6 +283,7 @@ CONFIG_NET=y
277# 283#
278# Networking options 284# Networking options
279# 285#
286CONFIG_COMPAT_NET_DEV_OPS=y
280CONFIG_PACKET=y 287CONFIG_PACKET=y
281# CONFIG_PACKET_MMAP is not set 288# CONFIG_PACKET_MMAP is not set
282CONFIG_UNIX=y 289CONFIG_UNIX=y
@@ -327,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_ECONET is not set 334# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 335# CONFIG_WAN_ROUTER is not set
329# CONFIG_NET_SCHED is not set 336# CONFIG_NET_SCHED is not set
337# CONFIG_DCB is not set
330 338
331# 339#
332# Network testing 340# Network testing
@@ -339,6 +347,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_AF_RXRPC is not set 347# CONFIG_AF_RXRPC is not set
340# CONFIG_PHONET is not set 348# CONFIG_PHONET is not set
341# CONFIG_WIRELESS is not set 349# CONFIG_WIRELESS is not set
350# CONFIG_WIMAX is not set
342# CONFIG_RFKILL is not set 351# CONFIG_RFKILL is not set
343# CONFIG_NET_9P is not set 352# CONFIG_NET_9P is not set
344 353
@@ -388,6 +397,7 @@ CONFIG_MISC_DEVICES=y
388# CONFIG_TIFM_CORE is not set 397# CONFIG_TIFM_CORE is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 398# CONFIG_ENCLOSURE_SERVICES is not set
390# CONFIG_HP_ILO is not set 399# CONFIG_HP_ILO is not set
400# CONFIG_C2PORT is not set
391CONFIG_HAVE_IDE=y 401CONFIG_HAVE_IDE=y
392# CONFIG_IDE is not set 402# CONFIG_IDE is not set
393 403
@@ -472,6 +482,7 @@ CONFIG_NETDEV_1000=y
472# CONFIG_JME is not set 482# CONFIG_JME is not set
473CONFIG_NETDEV_10000=y 483CONFIG_NETDEV_10000=y
474# CONFIG_CHELSIO_T1 is not set 484# CONFIG_CHELSIO_T1 is not set
485CONFIG_CHELSIO_T3_DEPENDS=y
475# CONFIG_CHELSIO_T3 is not set 486# CONFIG_CHELSIO_T3 is not set
476# CONFIG_ENIC is not set 487# CONFIG_ENIC is not set
477# CONFIG_IXGBE is not set 488# CONFIG_IXGBE is not set
@@ -494,6 +505,10 @@ CONFIG_NETDEV_10000=y
494# CONFIG_WLAN_PRE80211 is not set 505# CONFIG_WLAN_PRE80211 is not set
495# CONFIG_WLAN_80211 is not set 506# CONFIG_WLAN_80211 is not set
496# CONFIG_IWLWIFI_LEDS is not set 507# CONFIG_IWLWIFI_LEDS is not set
508
509#
510# Enable WiMAX (Networking options) to see the WiMAX drivers
511#
497# CONFIG_WAN is not set 512# CONFIG_WAN is not set
498# CONFIG_FDDI is not set 513# CONFIG_FDDI is not set
499# CONFIG_HIPPI is not set 514# CONFIG_HIPPI is not set
@@ -546,9 +561,12 @@ CONFIG_SERIAL_CORE=y
546CONFIG_SERIAL_CORE_CONSOLE=y 561CONFIG_SERIAL_CORE_CONSOLE=y
547# CONFIG_SERIAL_JSM is not set 562# CONFIG_SERIAL_JSM is not set
548CONFIG_SERIAL_OF_PLATFORM=y 563CONFIG_SERIAL_OF_PLATFORM=y
564# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
549CONFIG_UNIX98_PTYS=y 565CONFIG_UNIX98_PTYS=y
566# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
550CONFIG_LEGACY_PTYS=y 567CONFIG_LEGACY_PTYS=y
551CONFIG_LEGACY_PTY_COUNT=256 568CONFIG_LEGACY_PTY_COUNT=256
569# CONFIG_HVC_UDBG is not set
552# CONFIG_IPMI_HANDLER is not set 570# CONFIG_IPMI_HANDLER is not set
553# CONFIG_HW_RANDOM is not set 571# CONFIG_HW_RANDOM is not set
554# CONFIG_NVRAM is not set 572# CONFIG_NVRAM is not set
@@ -568,11 +586,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
568# CONFIG_THERMAL is not set 586# CONFIG_THERMAL is not set
569# CONFIG_THERMAL_HWMON is not set 587# CONFIG_THERMAL_HWMON is not set
570# CONFIG_WATCHDOG is not set 588# CONFIG_WATCHDOG is not set
589CONFIG_SSB_POSSIBLE=y
571 590
572# 591#
573# Sonics Silicon Backplane 592# Sonics Silicon Backplane
574# 593#
575CONFIG_SSB_POSSIBLE=y
576# CONFIG_SSB is not set 594# CONFIG_SSB is not set
577 595
578# 596#
@@ -582,7 +600,7 @@ CONFIG_SSB_POSSIBLE=y
582# CONFIG_MFD_SM501 is not set 600# CONFIG_MFD_SM501 is not set
583# CONFIG_HTC_PASIC3 is not set 601# CONFIG_HTC_PASIC3 is not set
584# CONFIG_MFD_TMIO is not set 602# CONFIG_MFD_TMIO is not set
585# CONFIG_MFD_WM8400 is not set 603# CONFIG_REGULATOR is not set
586 604
587# 605#
588# Multimedia devices 606# Multimedia devices
@@ -628,9 +646,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
628# 646#
629 647
630# 648#
631# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 649# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
632# 650#
633# CONFIG_USB_GADGET is not set 651# CONFIG_USB_GADGET is not set
652
653#
654# OTG and related infrastructure
655#
634# CONFIG_UWB is not set 656# CONFIG_UWB is not set
635# CONFIG_MMC is not set 657# CONFIG_MMC is not set
636# CONFIG_MEMSTICK is not set 658# CONFIG_MEMSTICK is not set
@@ -656,7 +678,9 @@ CONFIG_EXT2_FS=y
656# CONFIG_FS_POSIX_ACL is not set 678# CONFIG_FS_POSIX_ACL is not set
657CONFIG_FILE_LOCKING=y 679CONFIG_FILE_LOCKING=y
658# CONFIG_XFS_FS is not set 680# CONFIG_XFS_FS is not set
681# CONFIG_GFS2_FS is not set
659# CONFIG_OCFS2_FS is not set 682# CONFIG_OCFS2_FS is not set
683# CONFIG_BTRFS_FS is not set
660CONFIG_DNOTIFY=y 684CONFIG_DNOTIFY=y
661CONFIG_INOTIFY=y 685CONFIG_INOTIFY=y
662CONFIG_INOTIFY_USER=y 686CONFIG_INOTIFY_USER=y
@@ -690,10 +714,7 @@ CONFIG_TMPFS=y
690# CONFIG_TMPFS_POSIX_ACL is not set 714# CONFIG_TMPFS_POSIX_ACL is not set
691# CONFIG_HUGETLB_PAGE is not set 715# CONFIG_HUGETLB_PAGE is not set
692# CONFIG_CONFIGFS_FS is not set 716# CONFIG_CONFIGFS_FS is not set
693 717CONFIG_MISC_FILESYSTEMS=y
694#
695# Miscellaneous filesystems
696#
697# CONFIG_ADFS_FS is not set 718# CONFIG_ADFS_FS is not set
698# CONFIG_AFFS_FS is not set 719# CONFIG_AFFS_FS is not set
699# CONFIG_HFS_FS is not set 720# CONFIG_HFS_FS is not set
@@ -702,6 +723,7 @@ CONFIG_TMPFS=y
702# CONFIG_BFS_FS is not set 723# CONFIG_BFS_FS is not set
703# CONFIG_EFS_FS is not set 724# CONFIG_EFS_FS is not set
704CONFIG_CRAMFS=y 725CONFIG_CRAMFS=y
726# CONFIG_SQUASHFS is not set
705# CONFIG_VXFS_FS is not set 727# CONFIG_VXFS_FS is not set
706# CONFIG_MINIX_FS is not set 728# CONFIG_MINIX_FS is not set
707# CONFIG_OMFS_FS is not set 729# CONFIG_OMFS_FS is not set
@@ -742,6 +764,7 @@ CONFIG_MSDOS_PARTITION=y
742# Library routines 764# Library routines
743# 765#
744CONFIG_BITREVERSE=y 766CONFIG_BITREVERSE=y
767CONFIG_GENERIC_FIND_LAST_BIT=y
745# CONFIG_CRC_CCITT is not set 768# CONFIG_CRC_CCITT is not set
746# CONFIG_CRC16 is not set 769# CONFIG_CRC16 is not set
747# CONFIG_CRC_T10DIF is not set 770# CONFIG_CRC_T10DIF is not set
@@ -792,6 +815,7 @@ CONFIG_SCHED_DEBUG=y
792# CONFIG_DEBUG_MEMORY_INIT is not set 815# CONFIG_DEBUG_MEMORY_INIT is not set
793# CONFIG_DEBUG_LIST is not set 816# CONFIG_DEBUG_LIST is not set
794# CONFIG_DEBUG_SG is not set 817# CONFIG_DEBUG_SG is not set
818# CONFIG_DEBUG_NOTIFIERS is not set
795# CONFIG_BOOT_PRINTK_DELAY is not set 819# CONFIG_BOOT_PRINTK_DELAY is not set
796# CONFIG_RCU_TORTURE_TEST is not set 820# CONFIG_RCU_TORTURE_TEST is not set
797# CONFIG_RCU_CPU_STALL_DETECTOR is not set 821# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -800,18 +824,24 @@ CONFIG_SCHED_DEBUG=y
800# CONFIG_FAULT_INJECTION is not set 824# CONFIG_FAULT_INJECTION is not set
801# CONFIG_LATENCYTOP is not set 825# CONFIG_LATENCYTOP is not set
802CONFIG_SYSCTL_SYSCALL_CHECK=y 826CONFIG_SYSCTL_SYSCALL_CHECK=y
803CONFIG_NOP_TRACER=y 827CONFIG_HAVE_FUNCTION_TRACER=y
804CONFIG_HAVE_FTRACE=y
805CONFIG_HAVE_DYNAMIC_FTRACE=y 828CONFIG_HAVE_DYNAMIC_FTRACE=y
806# CONFIG_FTRACE is not set 829CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
830
831#
832# Tracers
833#
834# CONFIG_FUNCTION_TRACER is not set
807# CONFIG_SCHED_TRACER is not set 835# CONFIG_SCHED_TRACER is not set
808# CONFIG_CONTEXT_SWITCH_TRACER is not set 836# CONFIG_CONTEXT_SWITCH_TRACER is not set
809# CONFIG_BOOT_TRACER is not set 837# CONFIG_BOOT_TRACER is not set
838# CONFIG_TRACE_BRANCH_PROFILING is not set
810# CONFIG_STACK_TRACER is not set 839# CONFIG_STACK_TRACER is not set
811# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 840# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
812# CONFIG_SAMPLES is not set 841# CONFIG_SAMPLES is not set
813CONFIG_HAVE_ARCH_KGDB=y 842CONFIG_HAVE_ARCH_KGDB=y
814# CONFIG_KGDB is not set 843# CONFIG_KGDB is not set
844CONFIG_PRINT_STACK_DEPTH=64
815# CONFIG_DEBUG_STACKOVERFLOW is not set 845# CONFIG_DEBUG_STACKOVERFLOW is not set
816# CONFIG_DEBUG_STACK_USAGE is not set 846# CONFIG_DEBUG_STACK_USAGE is not set
817# CONFIG_DEBUG_PAGEALLOC is not set 847# CONFIG_DEBUG_PAGEALLOC is not set
@@ -837,11 +867,15 @@ CONFIG_CRYPTO=y
837# 867#
838# CONFIG_CRYPTO_FIPS is not set 868# CONFIG_CRYPTO_FIPS is not set
839CONFIG_CRYPTO_ALGAPI=y 869CONFIG_CRYPTO_ALGAPI=y
840CONFIG_CRYPTO_AEAD=y 870CONFIG_CRYPTO_ALGAPI2=y
871CONFIG_CRYPTO_AEAD2=y
841CONFIG_CRYPTO_BLKCIPHER=y 872CONFIG_CRYPTO_BLKCIPHER=y
873CONFIG_CRYPTO_BLKCIPHER2=y
842CONFIG_CRYPTO_HASH=y 874CONFIG_CRYPTO_HASH=y
843CONFIG_CRYPTO_RNG=y 875CONFIG_CRYPTO_HASH2=y
876CONFIG_CRYPTO_RNG2=y
844CONFIG_CRYPTO_MANAGER=y 877CONFIG_CRYPTO_MANAGER=y
878CONFIG_CRYPTO_MANAGER2=y
845# CONFIG_CRYPTO_GF128MUL is not set 879# CONFIG_CRYPTO_GF128MUL is not set
846# CONFIG_CRYPTO_NULL is not set 880# CONFIG_CRYPTO_NULL is not set
847# CONFIG_CRYPTO_CRYPTD is not set 881# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/rainier_defconfig b/arch/powerpc/configs/44x/rainier_defconfig
index 927f829e2087..9348c12bd7a6 100644
--- a/arch/powerpc/configs/44x/rainier_defconfig
+++ b/arch/powerpc/configs/44x/rainier_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:13 2008 4# Tue Jan 20 08:22:41 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -74,12 +75,12 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
75# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
79CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
80# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -114,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 115CONFIG_SLUB=y
115# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -125,7 +125,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
130CONFIG_MODULES=y 129CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set 130# CONFIG_MODULE_FORCE_LOAD is not set
@@ -133,11 +132,9 @@ CONFIG_MODULE_UNLOAD=y
133# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
134# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
135# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
136CONFIG_KMOD=y
137CONFIG_BLOCK=y 135CONFIG_BLOCK=y
138CONFIG_LBD=y 136CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
143 140
@@ -154,6 +151,10 @@ CONFIG_DEFAULT_AS=y
154# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
156CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
157# CONFIG_FREEZER is not set 158# CONFIG_FREEZER is not set
158# CONFIG_PPC4xx_PCI_EXPRESS is not set 159# CONFIG_PPC4xx_PCI_EXPRESS is not set
159 160
@@ -191,6 +192,7 @@ CONFIG_440GRX=y
191# CONFIG_GENERIC_IOMAP is not set 192# CONFIG_GENERIC_IOMAP is not set
192# CONFIG_CPU_FREQ is not set 193# CONFIG_CPU_FREQ is not set
193# CONFIG_FSL_ULI1575 is not set 194# CONFIG_FSL_ULI1575 is not set
195# CONFIG_SIMPLE_GPIO is not set
194 196
195# 197#
196# Kernel options 198# Kernel options
@@ -214,6 +216,7 @@ CONFIG_BINFMT_ELF=y
214# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
215CONFIG_MATH_EMULATION=y 217CONFIG_MATH_EMULATION=y
216# CONFIG_IOMMU_HELPER is not set 218# CONFIG_IOMMU_HELPER is not set
219CONFIG_PPC_NEED_DMA_SYNC_OPS=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
218CONFIG_ARCH_HAS_WALK_MEMORY=y 221CONFIG_ARCH_HAS_WALK_MEMORY=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -228,12 +231,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 233CONFIG_MIGRATION=y
231CONFIG_RESOURCES_64BIT=y
232CONFIG_PHYS_ADDR_T_64BIT=y 234CONFIG_PHYS_ADDR_T_64BIT=y
233CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 237CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 238CONFIG_UNEVICTABLE_LRU=y
239CONFIG_PPC_4K_PAGES=y
240# CONFIG_PPC_16K_PAGES is not set
241# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 243CONFIG_PROC_DEVICETREE=y
239CONFIG_CMDLINE_BOOL=y 244CONFIG_CMDLINE_BOOL=y
@@ -257,6 +262,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 263CONFIG_PCI_LEGACY=y
259# CONFIG_PCI_DEBUG is not set 264# CONFIG_PCI_DEBUG is not set
265# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 266# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 267# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 268# CONFIG_HAS_RAPIDIO is not set
@@ -281,6 +287,7 @@ CONFIG_NET=y
281# 287#
282# Networking options 288# Networking options
283# 289#
290CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y 291CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set 292# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y 293CONFIG_UNIX=y
@@ -331,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_ECONET is not set 338# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 339# CONFIG_WAN_ROUTER is not set
333# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set
334 342
335# 343#
336# Network testing 344# Network testing
@@ -343,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_AF_RXRPC is not set 351# CONFIG_AF_RXRPC is not set
344# CONFIG_PHONET is not set 352# CONFIG_PHONET is not set
345# CONFIG_WIRELESS is not set 353# CONFIG_WIRELESS is not set
354# CONFIG_WIMAX is not set
346# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
348 357
@@ -368,6 +377,7 @@ CONFIG_MTD=y
368# CONFIG_MTD_DEBUG is not set 377# CONFIG_MTD_DEBUG is not set
369# CONFIG_MTD_CONCAT is not set 378# CONFIG_MTD_CONCAT is not set
370CONFIG_MTD_PARTITIONS=y 379CONFIG_MTD_PARTITIONS=y
380# CONFIG_MTD_TESTS is not set
371# CONFIG_MTD_REDBOOT_PARTS is not set 381# CONFIG_MTD_REDBOOT_PARTS is not set
372CONFIG_MTD_CMDLINE_PARTS=y 382CONFIG_MTD_CMDLINE_PARTS=y
373CONFIG_MTD_OF_PARTS=y 383CONFIG_MTD_OF_PARTS=y
@@ -440,6 +450,12 @@ CONFIG_MTD_PHYSMAP_OF=y
440# CONFIG_MTD_ONENAND is not set 450# CONFIG_MTD_ONENAND is not set
441 451
442# 452#
453# LPDDR flash memory drivers
454#
455# CONFIG_MTD_LPDDR is not set
456# CONFIG_MTD_QINFO_PROBE is not set
457
458#
443# UBI - Unsorted block images 459# UBI - Unsorted block images
444# 460#
445# CONFIG_MTD_UBI is not set 461# CONFIG_MTD_UBI is not set
@@ -470,6 +486,7 @@ CONFIG_MISC_DEVICES=y
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
489# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 490CONFIG_HAVE_IDE=y
474# CONFIG_IDE is not set 491# CONFIG_IDE is not set
475 492
@@ -532,6 +549,7 @@ CONFIG_NETDEV_1000=y
532# CONFIG_JME is not set 549# CONFIG_JME is not set
533CONFIG_NETDEV_10000=y 550CONFIG_NETDEV_10000=y
534# CONFIG_CHELSIO_T1 is not set 551# CONFIG_CHELSIO_T1 is not set
552CONFIG_CHELSIO_T3_DEPENDS=y
535# CONFIG_CHELSIO_T3 is not set 553# CONFIG_CHELSIO_T3 is not set
536# CONFIG_ENIC is not set 554# CONFIG_ENIC is not set
537# CONFIG_IXGBE is not set 555# CONFIG_IXGBE is not set
@@ -554,6 +572,10 @@ CONFIG_NETDEV_10000=y
554# CONFIG_WLAN_PRE80211 is not set 572# CONFIG_WLAN_PRE80211 is not set
555# CONFIG_WLAN_80211 is not set 573# CONFIG_WLAN_80211 is not set
556# CONFIG_IWLWIFI_LEDS is not set 574# CONFIG_IWLWIFI_LEDS is not set
575
576#
577# Enable WiMAX (Networking options) to see the WiMAX drivers
578#
557# CONFIG_WAN is not set 579# CONFIG_WAN is not set
558# CONFIG_FDDI is not set 580# CONFIG_FDDI is not set
559# CONFIG_HIPPI is not set 581# CONFIG_HIPPI is not set
@@ -606,9 +628,12 @@ CONFIG_SERIAL_CORE=y
606CONFIG_SERIAL_CORE_CONSOLE=y 628CONFIG_SERIAL_CORE_CONSOLE=y
607# CONFIG_SERIAL_JSM is not set 629# CONFIG_SERIAL_JSM is not set
608CONFIG_SERIAL_OF_PLATFORM=y 630CONFIG_SERIAL_OF_PLATFORM=y
631# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
609CONFIG_UNIX98_PTYS=y 632CONFIG_UNIX98_PTYS=y
633# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
610CONFIG_LEGACY_PTYS=y 634CONFIG_LEGACY_PTYS=y
611CONFIG_LEGACY_PTY_COUNT=256 635CONFIG_LEGACY_PTY_COUNT=256
636# CONFIG_HVC_UDBG is not set
612# CONFIG_IPMI_HANDLER is not set 637# CONFIG_IPMI_HANDLER is not set
613# CONFIG_HW_RANDOM is not set 638# CONFIG_HW_RANDOM is not set
614# CONFIG_NVRAM is not set 639# CONFIG_NVRAM is not set
@@ -627,11 +652,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
627# CONFIG_HWMON is not set 652# CONFIG_HWMON is not set
628CONFIG_THERMAL=y 653CONFIG_THERMAL=y
629# CONFIG_WATCHDOG is not set 654# CONFIG_WATCHDOG is not set
655CONFIG_SSB_POSSIBLE=y
630 656
631# 657#
632# Sonics Silicon Backplane 658# Sonics Silicon Backplane
633# 659#
634CONFIG_SSB_POSSIBLE=y
635# CONFIG_SSB is not set 660# CONFIG_SSB is not set
636 661
637# 662#
@@ -641,7 +666,7 @@ CONFIG_SSB_POSSIBLE=y
641# CONFIG_MFD_SM501 is not set 666# CONFIG_MFD_SM501 is not set
642# CONFIG_HTC_PASIC3 is not set 667# CONFIG_HTC_PASIC3 is not set
643# CONFIG_MFD_TMIO is not set 668# CONFIG_MFD_TMIO is not set
644# CONFIG_MFD_WM8400 is not set 669# CONFIG_REGULATOR is not set
645 670
646# 671#
647# Multimedia devices 672# Multimedia devices
@@ -687,9 +712,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
687# 712#
688 713
689# 714#
690# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 715# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
691# 716#
692# CONFIG_USB_GADGET is not set 717# CONFIG_USB_GADGET is not set
718
719#
720# OTG and related infrastructure
721#
693# CONFIG_UWB is not set 722# CONFIG_UWB is not set
694# CONFIG_MMC is not set 723# CONFIG_MMC is not set
695# CONFIG_MEMSTICK is not set 724# CONFIG_MEMSTICK is not set
@@ -715,7 +744,9 @@ CONFIG_EXT2_FS=y
715# CONFIG_FS_POSIX_ACL is not set 744# CONFIG_FS_POSIX_ACL is not set
716CONFIG_FILE_LOCKING=y 745CONFIG_FILE_LOCKING=y
717# CONFIG_XFS_FS is not set 746# CONFIG_XFS_FS is not set
747# CONFIG_GFS2_FS is not set
718# CONFIG_OCFS2_FS is not set 748# CONFIG_OCFS2_FS is not set
749# CONFIG_BTRFS_FS is not set
719CONFIG_DNOTIFY=y 750CONFIG_DNOTIFY=y
720CONFIG_INOTIFY=y 751CONFIG_INOTIFY=y
721CONFIG_INOTIFY_USER=y 752CONFIG_INOTIFY_USER=y
@@ -749,10 +780,7 @@ CONFIG_TMPFS=y
749# CONFIG_TMPFS_POSIX_ACL is not set 780# CONFIG_TMPFS_POSIX_ACL is not set
750# CONFIG_HUGETLB_PAGE is not set 781# CONFIG_HUGETLB_PAGE is not set
751# CONFIG_CONFIGFS_FS is not set 782# CONFIG_CONFIGFS_FS is not set
752 783CONFIG_MISC_FILESYSTEMS=y
753#
754# Miscellaneous filesystems
755#
756# CONFIG_ADFS_FS is not set 784# CONFIG_ADFS_FS is not set
757# CONFIG_AFFS_FS is not set 785# CONFIG_AFFS_FS is not set
758# CONFIG_HFS_FS is not set 786# CONFIG_HFS_FS is not set
@@ -772,6 +800,7 @@ CONFIG_JFFS2_ZLIB=y
772CONFIG_JFFS2_RTIME=y 800CONFIG_JFFS2_RTIME=y
773# CONFIG_JFFS2_RUBIN is not set 801# CONFIG_JFFS2_RUBIN is not set
774CONFIG_CRAMFS=y 802CONFIG_CRAMFS=y
803# CONFIG_SQUASHFS is not set
775# CONFIG_VXFS_FS is not set 804# CONFIG_VXFS_FS is not set
776# CONFIG_MINIX_FS is not set 805# CONFIG_MINIX_FS is not set
777# CONFIG_OMFS_FS is not set 806# CONFIG_OMFS_FS is not set
@@ -812,6 +841,7 @@ CONFIG_MSDOS_PARTITION=y
812# Library routines 841# Library routines
813# 842#
814CONFIG_BITREVERSE=y 843CONFIG_BITREVERSE=y
844CONFIG_GENERIC_FIND_LAST_BIT=y
815# CONFIG_CRC_CCITT is not set 845# CONFIG_CRC_CCITT is not set
816# CONFIG_CRC16 is not set 846# CONFIG_CRC16 is not set
817# CONFIG_CRC_T10DIF is not set 847# CONFIG_CRC_T10DIF is not set
@@ -863,6 +893,7 @@ CONFIG_SCHED_DEBUG=y
863# CONFIG_DEBUG_MEMORY_INIT is not set 893# CONFIG_DEBUG_MEMORY_INIT is not set
864# CONFIG_DEBUG_LIST is not set 894# CONFIG_DEBUG_LIST is not set
865# CONFIG_DEBUG_SG is not set 895# CONFIG_DEBUG_SG is not set
896# CONFIG_DEBUG_NOTIFIERS is not set
866# CONFIG_BOOT_PRINTK_DELAY is not set 897# CONFIG_BOOT_PRINTK_DELAY is not set
867# CONFIG_RCU_TORTURE_TEST is not set 898# CONFIG_RCU_TORTURE_TEST is not set
868# CONFIG_RCU_CPU_STALL_DETECTOR is not set 899# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -871,18 +902,24 @@ CONFIG_SCHED_DEBUG=y
871# CONFIG_FAULT_INJECTION is not set 902# CONFIG_FAULT_INJECTION is not set
872# CONFIG_LATENCYTOP is not set 903# CONFIG_LATENCYTOP is not set
873CONFIG_SYSCTL_SYSCALL_CHECK=y 904CONFIG_SYSCTL_SYSCALL_CHECK=y
874CONFIG_NOP_TRACER=y 905CONFIG_HAVE_FUNCTION_TRACER=y
875CONFIG_HAVE_FTRACE=y
876CONFIG_HAVE_DYNAMIC_FTRACE=y 906CONFIG_HAVE_DYNAMIC_FTRACE=y
877# CONFIG_FTRACE is not set 907CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
908
909#
910# Tracers
911#
912# CONFIG_FUNCTION_TRACER is not set
878# CONFIG_SCHED_TRACER is not set 913# CONFIG_SCHED_TRACER is not set
879# CONFIG_CONTEXT_SWITCH_TRACER is not set 914# CONFIG_CONTEXT_SWITCH_TRACER is not set
880# CONFIG_BOOT_TRACER is not set 915# CONFIG_BOOT_TRACER is not set
916# CONFIG_TRACE_BRANCH_PROFILING is not set
881# CONFIG_STACK_TRACER is not set 917# CONFIG_STACK_TRACER is not set
882# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 918# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
883# CONFIG_SAMPLES is not set 919# CONFIG_SAMPLES is not set
884CONFIG_HAVE_ARCH_KGDB=y 920CONFIG_HAVE_ARCH_KGDB=y
885# CONFIG_KGDB is not set 921# CONFIG_KGDB is not set
922CONFIG_PRINT_STACK_DEPTH=64
886# CONFIG_DEBUG_STACKOVERFLOW is not set 923# CONFIG_DEBUG_STACKOVERFLOW is not set
887# CONFIG_DEBUG_STACK_USAGE is not set 924# CONFIG_DEBUG_STACK_USAGE is not set
888# CONFIG_DEBUG_PAGEALLOC is not set 925# CONFIG_DEBUG_PAGEALLOC is not set
@@ -922,11 +959,15 @@ CONFIG_CRYPTO=y
922# 959#
923# CONFIG_CRYPTO_FIPS is not set 960# CONFIG_CRYPTO_FIPS is not set
924CONFIG_CRYPTO_ALGAPI=y 961CONFIG_CRYPTO_ALGAPI=y
925CONFIG_CRYPTO_AEAD=y 962CONFIG_CRYPTO_ALGAPI2=y
963CONFIG_CRYPTO_AEAD2=y
926CONFIG_CRYPTO_BLKCIPHER=y 964CONFIG_CRYPTO_BLKCIPHER=y
965CONFIG_CRYPTO_BLKCIPHER2=y
927CONFIG_CRYPTO_HASH=y 966CONFIG_CRYPTO_HASH=y
928CONFIG_CRYPTO_RNG=y 967CONFIG_CRYPTO_HASH2=y
968CONFIG_CRYPTO_RNG2=y
929CONFIG_CRYPTO_MANAGER=y 969CONFIG_CRYPTO_MANAGER=y
970CONFIG_CRYPTO_MANAGER2=y
930# CONFIG_CRYPTO_GF128MUL is not set 971# CONFIG_CRYPTO_GF128MUL is not set
931# CONFIG_CRYPTO_NULL is not set 972# CONFIG_CRYPTO_NULL is not set
932# CONFIG_CRYPTO_CRYPTD is not set 973# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/sam440ep_defconfig b/arch/powerpc/configs/44x/sam440ep_defconfig
index 15f48e03ec2e..70d5c3fa3283 100644
--- a/arch/powerpc/configs/44x/sam440ep_defconfig
+++ b/arch/powerpc/configs/44x/sam440ep_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:15 2008 4# Tue Jan 20 08:22:42 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -76,12 +77,12 @@ CONFIG_POSIX_MQUEUE=y
76CONFIG_IKCONFIG=y 77CONFIG_IKCONFIG=y
77# CONFIG_IKCONFIG_PROC is not set 78# CONFIG_IKCONFIG_PROC is not set
78CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -115,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 116CONFIG_SLUB=y
116# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +126,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 130CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 131# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +133,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 136CONFIG_BLOCK=y
139# CONFIG_LBD is not set 137# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
144 141
@@ -155,6 +152,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_TREE_RCU is not set
156# CONFIG_PREEMPT_RCU is not set
157# CONFIG_TREE_RCU_TRACE is not set
158# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
159# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
160 161
@@ -193,6 +194,7 @@ CONFIG_IBM440EP_ERR42=y
193# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
194# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
195# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
197# CONFIG_SIMPLE_GPIO is not set
196 198
197# 199#
198# Kernel options 200# Kernel options
@@ -216,6 +218,7 @@ CONFIG_BINFMT_ELF=y
216# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
217# CONFIG_MATH_EMULATION is not set 219# CONFIG_MATH_EMULATION is not set
218# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -230,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
233CONFIG_RESOURCES_64BIT=y
234CONFIG_PHYS_ADDR_T_64BIT=y 236CONFIG_PHYS_ADDR_T_64BIT=y
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
241CONFIG_CMDLINE_BOOL=y 246CONFIG_CMDLINE_BOOL=y
@@ -258,6 +263,7 @@ CONFIG_PCI_SYSCALL=y
258CONFIG_ARCH_SUPPORTS_MSI=y 263CONFIG_ARCH_SUPPORTS_MSI=y
259# CONFIG_PCI_MSI is not set 264# CONFIG_PCI_MSI is not set
260CONFIG_PCI_LEGACY=y 265CONFIG_PCI_LEGACY=y
266# CONFIG_PCI_STUB is not set
261# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
262# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
263# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -282,6 +288,7 @@ CONFIG_NET=y
282# 288#
283# Networking options 289# Networking options
284# 290#
291CONFIG_COMPAT_NET_DEV_OPS=y
285CONFIG_PACKET=y 292CONFIG_PACKET=y
286# CONFIG_PACKET_MMAP is not set 293# CONFIG_PACKET_MMAP is not set
287CONFIG_UNIX=y 294CONFIG_UNIX=y
@@ -332,6 +339,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 339# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 340# CONFIG_WAN_ROUTER is not set
334# CONFIG_NET_SCHED is not set 341# CONFIG_NET_SCHED is not set
342# CONFIG_DCB is not set
335 343
336# 344#
337# Network testing 345# Network testing
@@ -344,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_AF_RXRPC is not set 352# CONFIG_AF_RXRPC is not set
345# CONFIG_PHONET is not set 353# CONFIG_PHONET is not set
346# CONFIG_WIRELESS is not set 354# CONFIG_WIRELESS is not set
355# CONFIG_WIMAX is not set
347# CONFIG_RFKILL is not set 356# CONFIG_RFKILL is not set
348# CONFIG_NET_9P is not set 357# CONFIG_NET_9P is not set
349 358
@@ -551,6 +560,10 @@ CONFIG_IBM_NEW_EMAC_ZMII=y
551# CONFIG_IWLWIFI_LEDS is not set 560# CONFIG_IWLWIFI_LEDS is not set
552 561
553# 562#
563# Enable WiMAX (Networking options) to see the WiMAX drivers
564#
565
566#
554# USB Network Adapters 567# USB Network Adapters
555# 568#
556# CONFIG_USB_CATC is not set 569# CONFIG_USB_CATC is not set
@@ -605,6 +618,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
605CONFIG_MOUSE_PS2_SYNAPTICS=y 618CONFIG_MOUSE_PS2_SYNAPTICS=y
606CONFIG_MOUSE_PS2_LIFEBOOK=y 619CONFIG_MOUSE_PS2_LIFEBOOK=y
607CONFIG_MOUSE_PS2_TRACKPOINT=y 620CONFIG_MOUSE_PS2_TRACKPOINT=y
621# CONFIG_MOUSE_PS2_ELANTECH is not set
608# CONFIG_MOUSE_PS2_TOUCHKIT is not set 622# CONFIG_MOUSE_PS2_TOUCHKIT is not set
609# CONFIG_MOUSE_SERIAL is not set 623# CONFIG_MOUSE_SERIAL is not set
610# CONFIG_MOUSE_APPLETOUCH is not set 624# CONFIG_MOUSE_APPLETOUCH is not set
@@ -661,9 +675,12 @@ CONFIG_SERIAL_CORE=y
661CONFIG_SERIAL_CORE_CONSOLE=y 675CONFIG_SERIAL_CORE_CONSOLE=y
662# CONFIG_SERIAL_JSM is not set 676# CONFIG_SERIAL_JSM is not set
663CONFIG_SERIAL_OF_PLATFORM=y 677CONFIG_SERIAL_OF_PLATFORM=y
678# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
664CONFIG_UNIX98_PTYS=y 679CONFIG_UNIX98_PTYS=y
680# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
665CONFIG_LEGACY_PTYS=y 681CONFIG_LEGACY_PTYS=y
666CONFIG_LEGACY_PTY_COUNT=256 682CONFIG_LEGACY_PTY_COUNT=256
683# CONFIG_HVC_UDBG is not set
667# CONFIG_IPMI_HANDLER is not set 684# CONFIG_IPMI_HANDLER is not set
668# CONFIG_HW_RANDOM is not set 685# CONFIG_HW_RANDOM is not set
669# CONFIG_NVRAM is not set 686# CONFIG_NVRAM is not set
@@ -730,8 +747,8 @@ CONFIG_I2C_IBM_IIC=y
730# Miscellaneous I2C Chip support 747# Miscellaneous I2C Chip support
731# 748#
732# CONFIG_DS1682 is not set 749# CONFIG_DS1682 is not set
733# CONFIG_AT24 is not set 750# CONFIG_EEPROM_AT24 is not set
734# CONFIG_SENSORS_EEPROM is not set 751# CONFIG_EEPROM_LEGACY is not set
735# CONFIG_SENSORS_PCF8574 is not set 752# CONFIG_SENSORS_PCF8574 is not set
736# CONFIG_PCF8575 is not set 753# CONFIG_PCF8575 is not set
737# CONFIG_SENSORS_PCA9539 is not set 754# CONFIG_SENSORS_PCA9539 is not set
@@ -751,11 +768,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
751# CONFIG_THERMAL is not set 768# CONFIG_THERMAL is not set
752# CONFIG_THERMAL_HWMON is not set 769# CONFIG_THERMAL_HWMON is not set
753# CONFIG_WATCHDOG is not set 770# CONFIG_WATCHDOG is not set
771CONFIG_SSB_POSSIBLE=y
754 772
755# 773#
756# Sonics Silicon Backplane 774# Sonics Silicon Backplane
757# 775#
758CONFIG_SSB_POSSIBLE=y
759# CONFIG_SSB is not set 776# CONFIG_SSB is not set
760 777
761# 778#
@@ -764,9 +781,13 @@ CONFIG_SSB_POSSIBLE=y
764# CONFIG_MFD_CORE is not set 781# CONFIG_MFD_CORE is not set
765# CONFIG_MFD_SM501 is not set 782# CONFIG_MFD_SM501 is not set
766# CONFIG_HTC_PASIC3 is not set 783# CONFIG_HTC_PASIC3 is not set
784# CONFIG_TWL4030_CORE is not set
767# CONFIG_MFD_TMIO is not set 785# CONFIG_MFD_TMIO is not set
786# CONFIG_PMIC_DA903X is not set
768# CONFIG_MFD_WM8400 is not set 787# CONFIG_MFD_WM8400 is not set
769# CONFIG_MFD_WM8350_I2C is not set 788# CONFIG_MFD_WM8350_I2C is not set
789# CONFIG_MFD_PCF50633 is not set
790# CONFIG_REGULATOR is not set
770 791
771# 792#
772# Multimedia devices 793# Multimedia devices
@@ -848,12 +869,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
848# CONFIG_FB_IBM_GXT4500 is not set 869# CONFIG_FB_IBM_GXT4500 is not set
849# CONFIG_FB_VIRTUAL is not set 870# CONFIG_FB_VIRTUAL is not set
850# CONFIG_FB_METRONOME is not set 871# CONFIG_FB_METRONOME is not set
872# CONFIG_FB_MB862XX is not set
851CONFIG_BACKLIGHT_LCD_SUPPORT=y 873CONFIG_BACKLIGHT_LCD_SUPPORT=y
852CONFIG_LCD_CLASS_DEVICE=y 874CONFIG_LCD_CLASS_DEVICE=y
853# CONFIG_LCD_ILI9320 is not set 875# CONFIG_LCD_ILI9320 is not set
854# CONFIG_LCD_PLATFORM is not set 876# CONFIG_LCD_PLATFORM is not set
855CONFIG_BACKLIGHT_CLASS_DEVICE=y 877CONFIG_BACKLIGHT_CLASS_DEVICE=y
856# CONFIG_BACKLIGHT_CORGI is not set 878CONFIG_BACKLIGHT_GENERIC=y
857 879
858# 880#
859# Display device support 881# Display device support
@@ -894,11 +916,9 @@ CONFIG_HID_COMPAT=y
894CONFIG_HID_A4TECH=y 916CONFIG_HID_A4TECH=y
895CONFIG_HID_APPLE=y 917CONFIG_HID_APPLE=y
896CONFIG_HID_BELKIN=y 918CONFIG_HID_BELKIN=y
897CONFIG_HID_BRIGHT=y
898CONFIG_HID_CHERRY=y 919CONFIG_HID_CHERRY=y
899CONFIG_HID_CHICONY=y 920CONFIG_HID_CHICONY=y
900CONFIG_HID_CYPRESS=y 921CONFIG_HID_CYPRESS=y
901CONFIG_HID_DELL=y
902CONFIG_HID_EZKEY=y 922CONFIG_HID_EZKEY=y
903CONFIG_HID_GYRATION=y 923CONFIG_HID_GYRATION=y
904CONFIG_HID_LOGITECH=y 924CONFIG_HID_LOGITECH=y
@@ -906,12 +926,15 @@ CONFIG_HID_LOGITECH=y
906# CONFIG_LOGIRUMBLEPAD2_FF is not set 926# CONFIG_LOGIRUMBLEPAD2_FF is not set
907CONFIG_HID_MICROSOFT=y 927CONFIG_HID_MICROSOFT=y
908CONFIG_HID_MONTEREY=y 928CONFIG_HID_MONTEREY=y
929# CONFIG_HID_NTRIG is not set
909CONFIG_HID_PANTHERLORD=y 930CONFIG_HID_PANTHERLORD=y
910# CONFIG_PANTHERLORD_FF is not set 931# CONFIG_PANTHERLORD_FF is not set
911CONFIG_HID_PETALYNX=y 932CONFIG_HID_PETALYNX=y
912CONFIG_HID_SAMSUNG=y 933CONFIG_HID_SAMSUNG=y
913CONFIG_HID_SONY=y 934CONFIG_HID_SONY=y
914CONFIG_HID_SUNPLUS=y 935CONFIG_HID_SUNPLUS=y
936# CONFIG_GREENASIA_FF is not set
937# CONFIG_HID_TOPSEED is not set
915CONFIG_THRUSTMASTER_FF=m 938CONFIG_THRUSTMASTER_FF=m
916CONFIG_ZEROPLUS_FF=m 939CONFIG_ZEROPLUS_FF=m
917CONFIG_USB_SUPPORT=y 940CONFIG_USB_SUPPORT=y
@@ -943,6 +966,7 @@ CONFIG_USB_EHCI_HCD=m
943# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 966# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
944# CONFIG_USB_EHCI_TT_NEWSCHED is not set 967# CONFIG_USB_EHCI_TT_NEWSCHED is not set
945CONFIG_USB_EHCI_HCD_PPC_OF=y 968CONFIG_USB_EHCI_HCD_PPC_OF=y
969# CONFIG_USB_OXU210HP_HCD is not set
946# CONFIG_USB_ISP116X_HCD is not set 970# CONFIG_USB_ISP116X_HCD is not set
947# CONFIG_USB_ISP1760_HCD is not set 971# CONFIG_USB_ISP1760_HCD is not set
948CONFIG_USB_OHCI_HCD=y 972CONFIG_USB_OHCI_HCD=y
@@ -968,18 +992,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
968# CONFIG_USB_TMC is not set 992# CONFIG_USB_TMC is not set
969 993
970# 994#
971# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 995# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
972# 996#
973 997
974# 998#
975# may also be needed; see USB_STORAGE Help for more information 999# see USB_STORAGE Help for more information
976# 1000#
977CONFIG_USB_STORAGE=m 1001CONFIG_USB_STORAGE=m
978# CONFIG_USB_STORAGE_DEBUG is not set 1002# CONFIG_USB_STORAGE_DEBUG is not set
979# CONFIG_USB_STORAGE_DATAFAB is not set 1003# CONFIG_USB_STORAGE_DATAFAB is not set
980# CONFIG_USB_STORAGE_FREECOM is not set 1004# CONFIG_USB_STORAGE_FREECOM is not set
981# CONFIG_USB_STORAGE_ISD200 is not set 1005# CONFIG_USB_STORAGE_ISD200 is not set
982# CONFIG_USB_STORAGE_DPCM is not set
983# CONFIG_USB_STORAGE_USBAT is not set 1006# CONFIG_USB_STORAGE_USBAT is not set
984# CONFIG_USB_STORAGE_SDDR09 is not set 1007# CONFIG_USB_STORAGE_SDDR09 is not set
985# CONFIG_USB_STORAGE_SDDR55 is not set 1008# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1027,6 +1050,10 @@ CONFIG_USB_STORAGE=m
1027# CONFIG_USB_ISIGHTFW is not set 1050# CONFIG_USB_ISIGHTFW is not set
1028# CONFIG_USB_VST is not set 1051# CONFIG_USB_VST is not set
1029# CONFIG_USB_GADGET is not set 1052# CONFIG_USB_GADGET is not set
1053
1054#
1055# OTG and related infrastructure
1056#
1030# CONFIG_UWB is not set 1057# CONFIG_UWB is not set
1031# CONFIG_MMC is not set 1058# CONFIG_MMC is not set
1032# CONFIG_MEMSTICK is not set 1059# CONFIG_MEMSTICK is not set
@@ -1065,6 +1092,7 @@ CONFIG_RTC_DRV_M41T80=y
1065CONFIG_RTC_DRV_M41T80_WDT=y 1092CONFIG_RTC_DRV_M41T80_WDT=y
1066# CONFIG_RTC_DRV_S35390A is not set 1093# CONFIG_RTC_DRV_S35390A is not set
1067# CONFIG_RTC_DRV_FM3130 is not set 1094# CONFIG_RTC_DRV_FM3130 is not set
1095# CONFIG_RTC_DRV_RX8581 is not set
1068 1096
1069# 1097#
1070# SPI RTC drivers 1098# SPI RTC drivers
@@ -1117,6 +1145,7 @@ CONFIG_FS_POSIX_ACL=y
1117CONFIG_FILE_LOCKING=y 1145CONFIG_FILE_LOCKING=y
1118# CONFIG_XFS_FS is not set 1146# CONFIG_XFS_FS is not set
1119# CONFIG_OCFS2_FS is not set 1147# CONFIG_OCFS2_FS is not set
1148# CONFIG_BTRFS_FS is not set
1120CONFIG_DNOTIFY=y 1149CONFIG_DNOTIFY=y
1121CONFIG_INOTIFY=y 1150CONFIG_INOTIFY=y
1122CONFIG_INOTIFY_USER=y 1151CONFIG_INOTIFY_USER=y
@@ -1156,10 +1185,7 @@ CONFIG_TMPFS=y
1156# CONFIG_TMPFS_POSIX_ACL is not set 1185# CONFIG_TMPFS_POSIX_ACL is not set
1157# CONFIG_HUGETLB_PAGE is not set 1186# CONFIG_HUGETLB_PAGE is not set
1158# CONFIG_CONFIGFS_FS is not set 1187# CONFIG_CONFIGFS_FS is not set
1159 1188CONFIG_MISC_FILESYSTEMS=y
1160#
1161# Miscellaneous filesystems
1162#
1163# CONFIG_ADFS_FS is not set 1189# CONFIG_ADFS_FS is not set
1164CONFIG_AFFS_FS=m 1190CONFIG_AFFS_FS=m
1165# CONFIG_HFS_FS is not set 1191# CONFIG_HFS_FS is not set
@@ -1168,6 +1194,7 @@ CONFIG_AFFS_FS=m
1168# CONFIG_BFS_FS is not set 1194# CONFIG_BFS_FS is not set
1169# CONFIG_EFS_FS is not set 1195# CONFIG_EFS_FS is not set
1170# CONFIG_CRAMFS is not set 1196# CONFIG_CRAMFS is not set
1197# CONFIG_SQUASHFS is not set
1171# CONFIG_VXFS_FS is not set 1198# CONFIG_VXFS_FS is not set
1172# CONFIG_MINIX_FS is not set 1199# CONFIG_MINIX_FS is not set
1173# CONFIG_OMFS_FS is not set 1200# CONFIG_OMFS_FS is not set
@@ -1245,6 +1272,7 @@ CONFIG_NLS_ISO8859_1=y
1245# Library routines 1272# Library routines
1246# 1273#
1247CONFIG_BITREVERSE=y 1274CONFIG_BITREVERSE=y
1275CONFIG_GENERIC_FIND_LAST_BIT=y
1248# CONFIG_CRC_CCITT is not set 1276# CONFIG_CRC_CCITT is not set
1249# CONFIG_CRC16 is not set 1277# CONFIG_CRC16 is not set
1250CONFIG_CRC_T10DIF=y 1278CONFIG_CRC_T10DIF=y
@@ -1278,12 +1306,17 @@ CONFIG_MAGIC_SYSRQ=y
1278# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1306# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1279# CONFIG_LATENCYTOP is not set 1307# CONFIG_LATENCYTOP is not set
1280CONFIG_SYSCTL_SYSCALL_CHECK=y 1308CONFIG_SYSCTL_SYSCALL_CHECK=y
1281CONFIG_NOP_TRACER=y 1309CONFIG_HAVE_FUNCTION_TRACER=y
1282CONFIG_HAVE_FTRACE=y
1283CONFIG_HAVE_DYNAMIC_FTRACE=y 1310CONFIG_HAVE_DYNAMIC_FTRACE=y
1311CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1312
1313#
1314# Tracers
1315#
1284# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1316# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1285# CONFIG_SAMPLES is not set 1317# CONFIG_SAMPLES is not set
1286CONFIG_HAVE_ARCH_KGDB=y 1318CONFIG_HAVE_ARCH_KGDB=y
1319CONFIG_PRINT_STACK_DEPTH=64
1287# CONFIG_IRQSTACKS is not set 1320# CONFIG_IRQSTACKS is not set
1288# CONFIG_PPC_EARLY_DEBUG is not set 1321# CONFIG_PPC_EARLY_DEBUG is not set
1289 1322
diff --git a/arch/powerpc/configs/44x/sequoia_defconfig b/arch/powerpc/configs/44x/sequoia_defconfig
index 562beeaab53d..a921fe3c3711 100644
--- a/arch/powerpc/configs/44x/sequoia_defconfig
+++ b/arch/powerpc/configs/44x/sequoia_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:16 2008 4# Tue Jan 20 08:22:45 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,12 +76,12 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 80# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -115,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 116CONFIG_SLUB=y
116# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +126,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 130CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 131# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +133,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 136CONFIG_BLOCK=y
139CONFIG_LBD=y 137CONFIG_LBD=y
140# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
144 141
@@ -155,6 +152,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_TREE_RCU is not set
156# CONFIG_PREEMPT_RCU is not set
157# CONFIG_TREE_RCU_TRACE is not set
158# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
159# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
160 161
@@ -192,6 +193,7 @@ CONFIG_440EPX=y
192# CONFIG_GENERIC_IOMAP is not set 193# CONFIG_GENERIC_IOMAP is not set
193# CONFIG_CPU_FREQ is not set 194# CONFIG_CPU_FREQ is not set
194# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
196# CONFIG_SIMPLE_GPIO is not set
195 197
196# 198#
197# Kernel options 199# Kernel options
@@ -216,6 +218,7 @@ CONFIG_BINFMT_ELF=y
216# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
217# CONFIG_MATH_EMULATION is not set 219# CONFIG_MATH_EMULATION is not set
218# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -230,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
233CONFIG_RESOURCES_64BIT=y
234CONFIG_PHYS_ADDR_T_64BIT=y 236CONFIG_PHYS_ADDR_T_64BIT=y
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
241CONFIG_CMDLINE_BOOL=y 246CONFIG_CMDLINE_BOOL=y
@@ -259,6 +264,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
259# CONFIG_PCI_MSI is not set 264# CONFIG_PCI_MSI is not set
260CONFIG_PCI_LEGACY=y 265CONFIG_PCI_LEGACY=y
261# CONFIG_PCI_DEBUG is not set 266# CONFIG_PCI_DEBUG is not set
267# CONFIG_PCI_STUB is not set
262# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
263# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
264# CONFIG_HAS_RAPIDIO is not set 270# CONFIG_HAS_RAPIDIO is not set
@@ -283,6 +289,7 @@ CONFIG_NET=y
283# 289#
284# Networking options 290# Networking options
285# 291#
292CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 293CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -333,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
335# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
336 344
337# 345#
338# Network testing 346# Network testing
@@ -345,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_AF_RXRPC is not set 353# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set 354# CONFIG_PHONET is not set
347# CONFIG_WIRELESS is not set 355# CONFIG_WIRELESS is not set
356# CONFIG_WIMAX is not set
348# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
349# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
350 359
@@ -370,6 +379,7 @@ CONFIG_MTD=y
370# CONFIG_MTD_DEBUG is not set 379# CONFIG_MTD_DEBUG is not set
371# CONFIG_MTD_CONCAT is not set 380# CONFIG_MTD_CONCAT is not set
372CONFIG_MTD_PARTITIONS=y 381CONFIG_MTD_PARTITIONS=y
382# CONFIG_MTD_TESTS is not set
373# CONFIG_MTD_REDBOOT_PARTS is not set 383# CONFIG_MTD_REDBOOT_PARTS is not set
374CONFIG_MTD_CMDLINE_PARTS=y 384CONFIG_MTD_CMDLINE_PARTS=y
375CONFIG_MTD_OF_PARTS=y 385CONFIG_MTD_OF_PARTS=y
@@ -442,6 +452,12 @@ CONFIG_MTD_PHYSMAP_OF=y
442# CONFIG_MTD_ONENAND is not set 452# CONFIG_MTD_ONENAND is not set
443 453
444# 454#
455# LPDDR flash memory drivers
456#
457# CONFIG_MTD_LPDDR is not set
458# CONFIG_MTD_QINFO_PROBE is not set
459
460#
445# UBI - Unsorted block images 461# UBI - Unsorted block images
446# 462#
447# CONFIG_MTD_UBI is not set 463# CONFIG_MTD_UBI is not set
@@ -472,6 +488,7 @@ CONFIG_MISC_DEVICES=y
472# CONFIG_TIFM_CORE is not set 488# CONFIG_TIFM_CORE is not set
473# CONFIG_ENCLOSURE_SERVICES is not set 489# CONFIG_ENCLOSURE_SERVICES is not set
474# CONFIG_HP_ILO is not set 490# CONFIG_HP_ILO is not set
491# CONFIG_C2PORT is not set
475CONFIG_HAVE_IDE=y 492CONFIG_HAVE_IDE=y
476# CONFIG_IDE is not set 493# CONFIG_IDE is not set
477 494
@@ -554,6 +571,7 @@ CONFIG_NETDEV_1000=y
554# CONFIG_JME is not set 571# CONFIG_JME is not set
555CONFIG_NETDEV_10000=y 572CONFIG_NETDEV_10000=y
556# CONFIG_CHELSIO_T1 is not set 573# CONFIG_CHELSIO_T1 is not set
574CONFIG_CHELSIO_T3_DEPENDS=y
557# CONFIG_CHELSIO_T3 is not set 575# CONFIG_CHELSIO_T3 is not set
558# CONFIG_ENIC is not set 576# CONFIG_ENIC is not set
559# CONFIG_IXGBE is not set 577# CONFIG_IXGBE is not set
@@ -576,6 +594,10 @@ CONFIG_NETDEV_10000=y
576# CONFIG_WLAN_PRE80211 is not set 594# CONFIG_WLAN_PRE80211 is not set
577# CONFIG_WLAN_80211 is not set 595# CONFIG_WLAN_80211 is not set
578# CONFIG_IWLWIFI_LEDS is not set 596# CONFIG_IWLWIFI_LEDS is not set
597
598#
599# Enable WiMAX (Networking options) to see the WiMAX drivers
600#
579# CONFIG_WAN is not set 601# CONFIG_WAN is not set
580# CONFIG_FDDI is not set 602# CONFIG_FDDI is not set
581# CONFIG_HIPPI is not set 603# CONFIG_HIPPI is not set
@@ -628,9 +650,12 @@ CONFIG_SERIAL_CORE=y
628CONFIG_SERIAL_CORE_CONSOLE=y 650CONFIG_SERIAL_CORE_CONSOLE=y
629# CONFIG_SERIAL_JSM is not set 651# CONFIG_SERIAL_JSM is not set
630CONFIG_SERIAL_OF_PLATFORM=y 652CONFIG_SERIAL_OF_PLATFORM=y
653# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
631CONFIG_UNIX98_PTYS=y 654CONFIG_UNIX98_PTYS=y
655# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
632CONFIG_LEGACY_PTYS=y 656CONFIG_LEGACY_PTYS=y
633CONFIG_LEGACY_PTY_COUNT=256 657CONFIG_LEGACY_PTY_COUNT=256
658# CONFIG_HVC_UDBG is not set
634# CONFIG_IPMI_HANDLER is not set 659# CONFIG_IPMI_HANDLER is not set
635# CONFIG_HW_RANDOM is not set 660# CONFIG_HW_RANDOM is not set
636# CONFIG_NVRAM is not set 661# CONFIG_NVRAM is not set
@@ -649,11 +674,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
649# CONFIG_HWMON is not set 674# CONFIG_HWMON is not set
650CONFIG_THERMAL=y 675CONFIG_THERMAL=y
651# CONFIG_WATCHDOG is not set 676# CONFIG_WATCHDOG is not set
677CONFIG_SSB_POSSIBLE=y
652 678
653# 679#
654# Sonics Silicon Backplane 680# Sonics Silicon Backplane
655# 681#
656CONFIG_SSB_POSSIBLE=y
657# CONFIG_SSB is not set 682# CONFIG_SSB is not set
658 683
659# 684#
@@ -663,7 +688,7 @@ CONFIG_SSB_POSSIBLE=y
663# CONFIG_MFD_SM501 is not set 688# CONFIG_MFD_SM501 is not set
664# CONFIG_HTC_PASIC3 is not set 689# CONFIG_HTC_PASIC3 is not set
665# CONFIG_MFD_TMIO is not set 690# CONFIG_MFD_TMIO is not set
666# CONFIG_MFD_WM8400 is not set 691# CONFIG_REGULATOR is not set
667 692
668# 693#
669# Multimedia devices 694# Multimedia devices
@@ -709,9 +734,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
709# 734#
710 735
711# 736#
712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 737# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
713# 738#
714# CONFIG_USB_GADGET is not set 739# CONFIG_USB_GADGET is not set
740
741#
742# OTG and related infrastructure
743#
715# CONFIG_UWB is not set 744# CONFIG_UWB is not set
716# CONFIG_MMC is not set 745# CONFIG_MMC is not set
717# CONFIG_MEMSTICK is not set 746# CONFIG_MEMSTICK is not set
@@ -737,7 +766,9 @@ CONFIG_EXT2_FS=y
737# CONFIG_FS_POSIX_ACL is not set 766# CONFIG_FS_POSIX_ACL is not set
738CONFIG_FILE_LOCKING=y 767CONFIG_FILE_LOCKING=y
739# CONFIG_XFS_FS is not set 768# CONFIG_XFS_FS is not set
769# CONFIG_GFS2_FS is not set
740# CONFIG_OCFS2_FS is not set 770# CONFIG_OCFS2_FS is not set
771# CONFIG_BTRFS_FS is not set
741CONFIG_DNOTIFY=y 772CONFIG_DNOTIFY=y
742CONFIG_INOTIFY=y 773CONFIG_INOTIFY=y
743CONFIG_INOTIFY_USER=y 774CONFIG_INOTIFY_USER=y
@@ -771,10 +802,7 @@ CONFIG_TMPFS=y
771# CONFIG_TMPFS_POSIX_ACL is not set 802# CONFIG_TMPFS_POSIX_ACL is not set
772# CONFIG_HUGETLB_PAGE is not set 803# CONFIG_HUGETLB_PAGE is not set
773# CONFIG_CONFIGFS_FS is not set 804# CONFIG_CONFIGFS_FS is not set
774 805CONFIG_MISC_FILESYSTEMS=y
775#
776# Miscellaneous filesystems
777#
778# CONFIG_ADFS_FS is not set 806# CONFIG_ADFS_FS is not set
779# CONFIG_AFFS_FS is not set 807# CONFIG_AFFS_FS is not set
780# CONFIG_HFS_FS is not set 808# CONFIG_HFS_FS is not set
@@ -794,6 +822,7 @@ CONFIG_JFFS2_ZLIB=y
794CONFIG_JFFS2_RTIME=y 822CONFIG_JFFS2_RTIME=y
795# CONFIG_JFFS2_RUBIN is not set 823# CONFIG_JFFS2_RUBIN is not set
796CONFIG_CRAMFS=y 824CONFIG_CRAMFS=y
825# CONFIG_SQUASHFS is not set
797# CONFIG_VXFS_FS is not set 826# CONFIG_VXFS_FS is not set
798# CONFIG_MINIX_FS is not set 827# CONFIG_MINIX_FS is not set
799# CONFIG_OMFS_FS is not set 828# CONFIG_OMFS_FS is not set
@@ -834,6 +863,7 @@ CONFIG_MSDOS_PARTITION=y
834# Library routines 863# Library routines
835# 864#
836CONFIG_BITREVERSE=y 865CONFIG_BITREVERSE=y
866CONFIG_GENERIC_FIND_LAST_BIT=y
837# CONFIG_CRC_CCITT is not set 867# CONFIG_CRC_CCITT is not set
838# CONFIG_CRC16 is not set 868# CONFIG_CRC16 is not set
839# CONFIG_CRC_T10DIF is not set 869# CONFIG_CRC_T10DIF is not set
@@ -885,6 +915,7 @@ CONFIG_SCHED_DEBUG=y
885# CONFIG_DEBUG_MEMORY_INIT is not set 915# CONFIG_DEBUG_MEMORY_INIT is not set
886# CONFIG_DEBUG_LIST is not set 916# CONFIG_DEBUG_LIST is not set
887# CONFIG_DEBUG_SG is not set 917# CONFIG_DEBUG_SG is not set
918# CONFIG_DEBUG_NOTIFIERS is not set
888# CONFIG_BOOT_PRINTK_DELAY is not set 919# CONFIG_BOOT_PRINTK_DELAY is not set
889# CONFIG_RCU_TORTURE_TEST is not set 920# CONFIG_RCU_TORTURE_TEST is not set
890# CONFIG_RCU_CPU_STALL_DETECTOR is not set 921# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -893,18 +924,24 @@ CONFIG_SCHED_DEBUG=y
893# CONFIG_FAULT_INJECTION is not set 924# CONFIG_FAULT_INJECTION is not set
894# CONFIG_LATENCYTOP is not set 925# CONFIG_LATENCYTOP is not set
895CONFIG_SYSCTL_SYSCALL_CHECK=y 926CONFIG_SYSCTL_SYSCALL_CHECK=y
896CONFIG_NOP_TRACER=y 927CONFIG_HAVE_FUNCTION_TRACER=y
897CONFIG_HAVE_FTRACE=y
898CONFIG_HAVE_DYNAMIC_FTRACE=y 928CONFIG_HAVE_DYNAMIC_FTRACE=y
899# CONFIG_FTRACE is not set 929CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
930
931#
932# Tracers
933#
934# CONFIG_FUNCTION_TRACER is not set
900# CONFIG_SCHED_TRACER is not set 935# CONFIG_SCHED_TRACER is not set
901# CONFIG_CONTEXT_SWITCH_TRACER is not set 936# CONFIG_CONTEXT_SWITCH_TRACER is not set
902# CONFIG_BOOT_TRACER is not set 937# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set
903# CONFIG_STACK_TRACER is not set 939# CONFIG_STACK_TRACER is not set
904# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
905# CONFIG_SAMPLES is not set 941# CONFIG_SAMPLES is not set
906CONFIG_HAVE_ARCH_KGDB=y 942CONFIG_HAVE_ARCH_KGDB=y
907# CONFIG_KGDB is not set 943# CONFIG_KGDB is not set
944CONFIG_PRINT_STACK_DEPTH=64
908# CONFIG_DEBUG_STACKOVERFLOW is not set 945# CONFIG_DEBUG_STACKOVERFLOW is not set
909# CONFIG_DEBUG_STACK_USAGE is not set 946# CONFIG_DEBUG_STACK_USAGE is not set
910# CONFIG_DEBUG_PAGEALLOC is not set 947# CONFIG_DEBUG_PAGEALLOC is not set
@@ -944,11 +981,15 @@ CONFIG_CRYPTO=y
944# 981#
945# CONFIG_CRYPTO_FIPS is not set 982# CONFIG_CRYPTO_FIPS is not set
946CONFIG_CRYPTO_ALGAPI=y 983CONFIG_CRYPTO_ALGAPI=y
947CONFIG_CRYPTO_AEAD=y 984CONFIG_CRYPTO_ALGAPI2=y
985CONFIG_CRYPTO_AEAD2=y
948CONFIG_CRYPTO_BLKCIPHER=y 986CONFIG_CRYPTO_BLKCIPHER=y
987CONFIG_CRYPTO_BLKCIPHER2=y
949CONFIG_CRYPTO_HASH=y 988CONFIG_CRYPTO_HASH=y
950CONFIG_CRYPTO_RNG=y 989CONFIG_CRYPTO_HASH2=y
990CONFIG_CRYPTO_RNG2=y
951CONFIG_CRYPTO_MANAGER=y 991CONFIG_CRYPTO_MANAGER=y
992CONFIG_CRYPTO_MANAGER2=y
952# CONFIG_CRYPTO_GF128MUL is not set 993# CONFIG_CRYPTO_GF128MUL is not set
953# CONFIG_CRYPTO_NULL is not set 994# CONFIG_CRYPTO_NULL is not set
954# CONFIG_CRYPTO_CRYPTD is not set 995# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/taishan_defconfig b/arch/powerpc/configs/44x/taishan_defconfig
index 427bb6a11be5..826700872d26 100644
--- a/arch/powerpc/configs/44x/taishan_defconfig
+++ b/arch/powerpc/configs/44x/taishan_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:18 2008 4# Tue Jan 20 08:22:47 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -74,12 +75,12 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
75# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
79CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
80# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -114,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 115CONFIG_SLUB=y
115# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -125,7 +125,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
130CONFIG_MODULES=y 129CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set 130# CONFIG_MODULE_FORCE_LOAD is not set
@@ -133,11 +132,9 @@ CONFIG_MODULE_UNLOAD=y
133# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
134# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
135# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
136CONFIG_KMOD=y
137CONFIG_BLOCK=y 135CONFIG_BLOCK=y
138CONFIG_LBD=y 136CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
143 140
@@ -154,6 +151,10 @@ CONFIG_DEFAULT_AS=y
154# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
156CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
157# CONFIG_FREEZER is not set 158# CONFIG_FREEZER is not set
158# CONFIG_PPC4xx_PCI_EXPRESS is not set 159# CONFIG_PPC4xx_PCI_EXPRESS is not set
159 160
@@ -191,6 +192,7 @@ CONFIG_440GX=y
191# CONFIG_GENERIC_IOMAP is not set 192# CONFIG_GENERIC_IOMAP is not set
192# CONFIG_CPU_FREQ is not set 193# CONFIG_CPU_FREQ is not set
193# CONFIG_FSL_ULI1575 is not set 194# CONFIG_FSL_ULI1575 is not set
195# CONFIG_SIMPLE_GPIO is not set
194 196
195# 197#
196# Kernel options 198# Kernel options
@@ -214,6 +216,7 @@ CONFIG_BINFMT_ELF=y
214# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
215# CONFIG_MATH_EMULATION is not set 217# CONFIG_MATH_EMULATION is not set
216# CONFIG_IOMMU_HELPER is not set 218# CONFIG_IOMMU_HELPER is not set
219CONFIG_PPC_NEED_DMA_SYNC_OPS=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
218CONFIG_ARCH_HAS_WALK_MEMORY=y 221CONFIG_ARCH_HAS_WALK_MEMORY=y
219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -228,12 +231,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 233CONFIG_MIGRATION=y
231CONFIG_RESOURCES_64BIT=y
232CONFIG_PHYS_ADDR_T_64BIT=y 234CONFIG_PHYS_ADDR_T_64BIT=y
233CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 237CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 238CONFIG_UNEVICTABLE_LRU=y
239CONFIG_PPC_4K_PAGES=y
240# CONFIG_PPC_16K_PAGES is not set
241# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 243CONFIG_PROC_DEVICETREE=y
239CONFIG_CMDLINE_BOOL=y 244CONFIG_CMDLINE_BOOL=y
@@ -257,6 +262,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 263CONFIG_PCI_LEGACY=y
259# CONFIG_PCI_DEBUG is not set 264# CONFIG_PCI_DEBUG is not set
265# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 266# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 267# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 268# CONFIG_HAS_RAPIDIO is not set
@@ -281,6 +287,7 @@ CONFIG_NET=y
281# 287#
282# Networking options 288# Networking options
283# 289#
290CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y 291CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set 292# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y 293CONFIG_UNIX=y
@@ -331,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_ECONET is not set 338# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 339# CONFIG_WAN_ROUTER is not set
333# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set
334 342
335# 343#
336# Network testing 344# Network testing
@@ -343,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_AF_RXRPC is not set 351# CONFIG_AF_RXRPC is not set
344# CONFIG_PHONET is not set 352# CONFIG_PHONET is not set
345# CONFIG_WIRELESS is not set 353# CONFIG_WIRELESS is not set
354# CONFIG_WIMAX is not set
346# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
348 357
@@ -368,6 +377,7 @@ CONFIG_MTD=y
368# CONFIG_MTD_DEBUG is not set 377# CONFIG_MTD_DEBUG is not set
369# CONFIG_MTD_CONCAT is not set 378# CONFIG_MTD_CONCAT is not set
370CONFIG_MTD_PARTITIONS=y 379CONFIG_MTD_PARTITIONS=y
380# CONFIG_MTD_TESTS is not set
371# CONFIG_MTD_REDBOOT_PARTS is not set 381# CONFIG_MTD_REDBOOT_PARTS is not set
372CONFIG_MTD_CMDLINE_PARTS=y 382CONFIG_MTD_CMDLINE_PARTS=y
373# CONFIG_MTD_OF_PARTS is not set 383# CONFIG_MTD_OF_PARTS is not set
@@ -440,6 +450,12 @@ CONFIG_MTD_PHYSMAP_OF=y
440# CONFIG_MTD_ONENAND is not set 450# CONFIG_MTD_ONENAND is not set
441 451
442# 452#
453# LPDDR flash memory drivers
454#
455# CONFIG_MTD_LPDDR is not set
456# CONFIG_MTD_QINFO_PROBE is not set
457
458#
443# UBI - Unsorted block images 459# UBI - Unsorted block images
444# 460#
445# CONFIG_MTD_UBI is not set 461# CONFIG_MTD_UBI is not set
@@ -470,6 +486,7 @@ CONFIG_MISC_DEVICES=y
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
489# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 490CONFIG_HAVE_IDE=y
474# CONFIG_IDE is not set 491# CONFIG_IDE is not set
475 492
@@ -554,6 +571,7 @@ CONFIG_NETDEV_1000=y
554# CONFIG_JME is not set 571# CONFIG_JME is not set
555CONFIG_NETDEV_10000=y 572CONFIG_NETDEV_10000=y
556# CONFIG_CHELSIO_T1 is not set 573# CONFIG_CHELSIO_T1 is not set
574CONFIG_CHELSIO_T3_DEPENDS=y
557# CONFIG_CHELSIO_T3 is not set 575# CONFIG_CHELSIO_T3 is not set
558# CONFIG_ENIC is not set 576# CONFIG_ENIC is not set
559# CONFIG_IXGBE is not set 577# CONFIG_IXGBE is not set
@@ -576,6 +594,10 @@ CONFIG_NETDEV_10000=y
576# CONFIG_WLAN_PRE80211 is not set 594# CONFIG_WLAN_PRE80211 is not set
577# CONFIG_WLAN_80211 is not set 595# CONFIG_WLAN_80211 is not set
578# CONFIG_IWLWIFI_LEDS is not set 596# CONFIG_IWLWIFI_LEDS is not set
597
598#
599# Enable WiMAX (Networking options) to see the WiMAX drivers
600#
579# CONFIG_WAN is not set 601# CONFIG_WAN is not set
580# CONFIG_FDDI is not set 602# CONFIG_FDDI is not set
581# CONFIG_HIPPI is not set 603# CONFIG_HIPPI is not set
@@ -628,9 +650,12 @@ CONFIG_SERIAL_CORE=y
628CONFIG_SERIAL_CORE_CONSOLE=y 650CONFIG_SERIAL_CORE_CONSOLE=y
629# CONFIG_SERIAL_JSM is not set 651# CONFIG_SERIAL_JSM is not set
630CONFIG_SERIAL_OF_PLATFORM=y 652CONFIG_SERIAL_OF_PLATFORM=y
653# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
631CONFIG_UNIX98_PTYS=y 654CONFIG_UNIX98_PTYS=y
655# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
632CONFIG_LEGACY_PTYS=y 656CONFIG_LEGACY_PTYS=y
633CONFIG_LEGACY_PTY_COUNT=256 657CONFIG_LEGACY_PTY_COUNT=256
658# CONFIG_HVC_UDBG is not set
634# CONFIG_IPMI_HANDLER is not set 659# CONFIG_IPMI_HANDLER is not set
635# CONFIG_HW_RANDOM is not set 660# CONFIG_HW_RANDOM is not set
636# CONFIG_NVRAM is not set 661# CONFIG_NVRAM is not set
@@ -649,11 +674,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
649# CONFIG_HWMON is not set 674# CONFIG_HWMON is not set
650CONFIG_THERMAL=y 675CONFIG_THERMAL=y
651# CONFIG_WATCHDOG is not set 676# CONFIG_WATCHDOG is not set
677CONFIG_SSB_POSSIBLE=y
652 678
653# 679#
654# Sonics Silicon Backplane 680# Sonics Silicon Backplane
655# 681#
656CONFIG_SSB_POSSIBLE=y
657# CONFIG_SSB is not set 682# CONFIG_SSB is not set
658 683
659# 684#
@@ -663,7 +688,7 @@ CONFIG_SSB_POSSIBLE=y
663# CONFIG_MFD_SM501 is not set 688# CONFIG_MFD_SM501 is not set
664# CONFIG_HTC_PASIC3 is not set 689# CONFIG_HTC_PASIC3 is not set
665# CONFIG_MFD_TMIO is not set 690# CONFIG_MFD_TMIO is not set
666# CONFIG_MFD_WM8400 is not set 691# CONFIG_REGULATOR is not set
667 692
668# 693#
669# Multimedia devices 694# Multimedia devices
@@ -709,9 +734,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
709# 734#
710 735
711# 736#
712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 737# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
713# 738#
714# CONFIG_USB_GADGET is not set 739# CONFIG_USB_GADGET is not set
740
741#
742# OTG and related infrastructure
743#
715# CONFIG_UWB is not set 744# CONFIG_UWB is not set
716# CONFIG_MMC is not set 745# CONFIG_MMC is not set
717# CONFIG_MEMSTICK is not set 746# CONFIG_MEMSTICK is not set
@@ -737,7 +766,9 @@ CONFIG_EXT2_FS=y
737# CONFIG_FS_POSIX_ACL is not set 766# CONFIG_FS_POSIX_ACL is not set
738CONFIG_FILE_LOCKING=y 767CONFIG_FILE_LOCKING=y
739# CONFIG_XFS_FS is not set 768# CONFIG_XFS_FS is not set
769# CONFIG_GFS2_FS is not set
740# CONFIG_OCFS2_FS is not set 770# CONFIG_OCFS2_FS is not set
771# CONFIG_BTRFS_FS is not set
741CONFIG_DNOTIFY=y 772CONFIG_DNOTIFY=y
742CONFIG_INOTIFY=y 773CONFIG_INOTIFY=y
743CONFIG_INOTIFY_USER=y 774CONFIG_INOTIFY_USER=y
@@ -771,10 +802,7 @@ CONFIG_TMPFS=y
771# CONFIG_TMPFS_POSIX_ACL is not set 802# CONFIG_TMPFS_POSIX_ACL is not set
772# CONFIG_HUGETLB_PAGE is not set 803# CONFIG_HUGETLB_PAGE is not set
773# CONFIG_CONFIGFS_FS is not set 804# CONFIG_CONFIGFS_FS is not set
774 805CONFIG_MISC_FILESYSTEMS=y
775#
776# Miscellaneous filesystems
777#
778# CONFIG_ADFS_FS is not set 806# CONFIG_ADFS_FS is not set
779# CONFIG_AFFS_FS is not set 807# CONFIG_AFFS_FS is not set
780# CONFIG_HFS_FS is not set 808# CONFIG_HFS_FS is not set
@@ -784,6 +812,7 @@ CONFIG_TMPFS=y
784# CONFIG_EFS_FS is not set 812# CONFIG_EFS_FS is not set
785# CONFIG_JFFS2_FS is not set 813# CONFIG_JFFS2_FS is not set
786CONFIG_CRAMFS=y 814CONFIG_CRAMFS=y
815# CONFIG_SQUASHFS is not set
787# CONFIG_VXFS_FS is not set 816# CONFIG_VXFS_FS is not set
788# CONFIG_MINIX_FS is not set 817# CONFIG_MINIX_FS is not set
789# CONFIG_OMFS_FS is not set 818# CONFIG_OMFS_FS is not set
@@ -824,6 +853,7 @@ CONFIG_MSDOS_PARTITION=y
824# Library routines 853# Library routines
825# 854#
826CONFIG_BITREVERSE=y 855CONFIG_BITREVERSE=y
856CONFIG_GENERIC_FIND_LAST_BIT=y
827# CONFIG_CRC_CCITT is not set 857# CONFIG_CRC_CCITT is not set
828# CONFIG_CRC16 is not set 858# CONFIG_CRC16 is not set
829# CONFIG_CRC_T10DIF is not set 859# CONFIG_CRC_T10DIF is not set
@@ -874,6 +904,7 @@ CONFIG_SCHED_DEBUG=y
874# CONFIG_DEBUG_MEMORY_INIT is not set 904# CONFIG_DEBUG_MEMORY_INIT is not set
875# CONFIG_DEBUG_LIST is not set 905# CONFIG_DEBUG_LIST is not set
876# CONFIG_DEBUG_SG is not set 906# CONFIG_DEBUG_SG is not set
907# CONFIG_DEBUG_NOTIFIERS is not set
877# CONFIG_BOOT_PRINTK_DELAY is not set 908# CONFIG_BOOT_PRINTK_DELAY is not set
878# CONFIG_RCU_TORTURE_TEST is not set 909# CONFIG_RCU_TORTURE_TEST is not set
879# CONFIG_RCU_CPU_STALL_DETECTOR is not set 910# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -882,18 +913,24 @@ CONFIG_SCHED_DEBUG=y
882# CONFIG_FAULT_INJECTION is not set 913# CONFIG_FAULT_INJECTION is not set
883# CONFIG_LATENCYTOP is not set 914# CONFIG_LATENCYTOP is not set
884CONFIG_SYSCTL_SYSCALL_CHECK=y 915CONFIG_SYSCTL_SYSCALL_CHECK=y
885CONFIG_NOP_TRACER=y 916CONFIG_HAVE_FUNCTION_TRACER=y
886CONFIG_HAVE_FTRACE=y
887CONFIG_HAVE_DYNAMIC_FTRACE=y 917CONFIG_HAVE_DYNAMIC_FTRACE=y
888# CONFIG_FTRACE is not set 918CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
919
920#
921# Tracers
922#
923# CONFIG_FUNCTION_TRACER is not set
889# CONFIG_SCHED_TRACER is not set 924# CONFIG_SCHED_TRACER is not set
890# CONFIG_CONTEXT_SWITCH_TRACER is not set 925# CONFIG_CONTEXT_SWITCH_TRACER is not set
891# CONFIG_BOOT_TRACER is not set 926# CONFIG_BOOT_TRACER is not set
927# CONFIG_TRACE_BRANCH_PROFILING is not set
892# CONFIG_STACK_TRACER is not set 928# CONFIG_STACK_TRACER is not set
893# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 929# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
894# CONFIG_SAMPLES is not set 930# CONFIG_SAMPLES is not set
895CONFIG_HAVE_ARCH_KGDB=y 931CONFIG_HAVE_ARCH_KGDB=y
896# CONFIG_KGDB is not set 932# CONFIG_KGDB is not set
933CONFIG_PRINT_STACK_DEPTH=64
897# CONFIG_DEBUG_STACKOVERFLOW is not set 934# CONFIG_DEBUG_STACKOVERFLOW is not set
898# CONFIG_DEBUG_STACK_USAGE is not set 935# CONFIG_DEBUG_STACK_USAGE is not set
899# CONFIG_DEBUG_PAGEALLOC is not set 936# CONFIG_DEBUG_PAGEALLOC is not set
@@ -920,11 +957,15 @@ CONFIG_CRYPTO=y
920# 957#
921# CONFIG_CRYPTO_FIPS is not set 958# CONFIG_CRYPTO_FIPS is not set
922CONFIG_CRYPTO_ALGAPI=y 959CONFIG_CRYPTO_ALGAPI=y
923CONFIG_CRYPTO_AEAD=y 960CONFIG_CRYPTO_ALGAPI2=y
961CONFIG_CRYPTO_AEAD2=y
924CONFIG_CRYPTO_BLKCIPHER=y 962CONFIG_CRYPTO_BLKCIPHER=y
963CONFIG_CRYPTO_BLKCIPHER2=y
925CONFIG_CRYPTO_HASH=y 964CONFIG_CRYPTO_HASH=y
926CONFIG_CRYPTO_RNG=y 965CONFIG_CRYPTO_HASH2=y
966CONFIG_CRYPTO_RNG2=y
927CONFIG_CRYPTO_MANAGER=y 967CONFIG_CRYPTO_MANAGER=y
968CONFIG_CRYPTO_MANAGER2=y
928# CONFIG_CRYPTO_GF128MUL is not set 969# CONFIG_CRYPTO_GF128MUL is not set
929# CONFIG_CRYPTO_NULL is not set 970# CONFIG_CRYPTO_NULL is not set
930# CONFIG_CRYPTO_CRYPTD is not set 971# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig
index 7513d360e0b0..15aab1ca6384 100644
--- a/arch/powerpc/configs/44x/virtex5_defconfig
+++ b/arch/powerpc/configs/44x/virtex5_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Fri Nov 14 10:31:16 2008 4# Tue Jan 20 08:22:49 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -18,6 +18,7 @@ CONFIG_4xx=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y 19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y 20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y 23CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 24CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -77,8 +78,8 @@ CONFIG_POSIX_MQUEUE=y
77CONFIG_IKCONFIG=y 78CONFIG_IKCONFIG=y
78CONFIG_IKCONFIG_PROC=y 79CONFIG_IKCONFIG_PROC=y
79CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
80# CONFIG_CGROUPS is not set
81# CONFIG_GROUP_SCHED is not set 81# CONFIG_GROUP_SCHED is not set
82# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 84CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
@@ -116,7 +117,6 @@ CONFIG_SLAB=y
116# CONFIG_SLUB is not set 117# CONFIG_SLUB is not set
117# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -127,7 +127,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
130# CONFIG_TINY_SHMEM is not set
131CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
132CONFIG_MODULES=y 131CONFIG_MODULES=y
133# CONFIG_MODULE_FORCE_LOAD is not set 132# CONFIG_MODULE_FORCE_LOAD is not set
@@ -135,11 +134,9 @@ CONFIG_MODULE_UNLOAD=y
135CONFIG_MODULE_FORCE_UNLOAD=y 134CONFIG_MODULE_FORCE_UNLOAD=y
136CONFIG_MODVERSIONS=y 135CONFIG_MODVERSIONS=y
137# CONFIG_MODULE_SRCVERSION_ALL is not set 136# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_KMOD=y
139CONFIG_BLOCK=y 137CONFIG_BLOCK=y
140# CONFIG_LBD is not set 138# CONFIG_LBD is not set
141# CONFIG_BLK_DEV_IO_TRACE is not set 139# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_LSF is not set
143# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
145 142
@@ -156,6 +153,10 @@ CONFIG_DEFAULT_CFQ=y
156# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="cfq" 154CONFIG_DEFAULT_IOSCHED="cfq"
158CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_TREE_RCU is not set
157# CONFIG_PREEMPT_RCU is not set
158# CONFIG_TREE_RCU_TRACE is not set
159# CONFIG_PREEMPT_RCU_TRACE is not set
159# CONFIG_FREEZER is not set 160# CONFIG_FREEZER is not set
160# CONFIG_PPC4xx_PCI_EXPRESS is not set 161# CONFIG_PPC4xx_PCI_EXPRESS is not set
161 162
@@ -194,6 +195,7 @@ CONFIG_XILINX_VIRTEX_5_FXT=y
194# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
195# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
196# CONFIG_FSL_ULI1575 is not set 197# CONFIG_FSL_ULI1575 is not set
198# CONFIG_SIMPLE_GPIO is not set
197 199
198# 200#
199# Kernel options 201# Kernel options
@@ -211,13 +213,13 @@ CONFIG_HZ=250
211# CONFIG_PREEMPT_NONE is not set 213# CONFIG_PREEMPT_NONE is not set
212# CONFIG_PREEMPT_VOLUNTARY is not set 214# CONFIG_PREEMPT_VOLUNTARY is not set
213CONFIG_PREEMPT=y 215CONFIG_PREEMPT=y
214# CONFIG_PREEMPT_RCU is not set
215CONFIG_BINFMT_ELF=y 216CONFIG_BINFMT_ELF=y
216# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 217# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
217# CONFIG_HAVE_AOUT is not set 218# CONFIG_HAVE_AOUT is not set
218# CONFIG_BINFMT_MISC is not set 219# CONFIG_BINFMT_MISC is not set
219CONFIG_MATH_EMULATION=y 220CONFIG_MATH_EMULATION=y
220# CONFIG_IOMMU_HELPER is not set 221# CONFIG_IOMMU_HELPER is not set
222CONFIG_PPC_NEED_DMA_SYNC_OPS=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 223CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
222CONFIG_ARCH_HAS_WALK_MEMORY=y 224CONFIG_ARCH_HAS_WALK_MEMORY=y
223CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -232,12 +234,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
232CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y 236CONFIG_MIGRATION=y
235CONFIG_RESOURCES_64BIT=y
236CONFIG_PHYS_ADDR_T_64BIT=y 237CONFIG_PHYS_ADDR_T_64BIT=y
237CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 240CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 241CONFIG_UNEVICTABLE_LRU=y
242CONFIG_PPC_4K_PAGES=y
243# CONFIG_PPC_16K_PAGES is not set
244# CONFIG_PPC_64K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
242CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
243CONFIG_CMDLINE_BOOL=y 247CONFIG_CMDLINE_BOOL=y
@@ -261,6 +265,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
261# CONFIG_PCI_MSI is not set 265# CONFIG_PCI_MSI is not set
262CONFIG_PCI_LEGACY=y 266CONFIG_PCI_LEGACY=y
263# CONFIG_PCI_DEBUG is not set 267# CONFIG_PCI_DEBUG is not set
268# CONFIG_PCI_STUB is not set
264# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
265# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
266# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -285,6 +290,8 @@ CONFIG_NET=y
285# 290#
286# Networking options 291# Networking options
287# 292#
293# CONFIG_NET_NS is not set
294CONFIG_COMPAT_NET_DEV_OPS=y
288CONFIG_PACKET=y 295CONFIG_PACKET=y
289# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
290CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -428,6 +435,7 @@ CONFIG_IP_NF_MANGLE=m
428# CONFIG_ECONET is not set 435# CONFIG_ECONET is not set
429# CONFIG_WAN_ROUTER is not set 436# CONFIG_WAN_ROUTER is not set
430# CONFIG_NET_SCHED is not set 437# CONFIG_NET_SCHED is not set
438# CONFIG_DCB is not set
431 439
432# 440#
433# Network testing 441# Network testing
@@ -443,8 +451,9 @@ CONFIG_WIRELESS=y
443# CONFIG_CFG80211 is not set 451# CONFIG_CFG80211 is not set
444CONFIG_WIRELESS_OLD_REGULATORY=y 452CONFIG_WIRELESS_OLD_REGULATORY=y
445# CONFIG_WIRELESS_EXT is not set 453# CONFIG_WIRELESS_EXT is not set
454# CONFIG_LIB80211 is not set
446# CONFIG_MAC80211 is not set 455# CONFIG_MAC80211 is not set
447# CONFIG_IEEE80211 is not set 456# CONFIG_WIMAX is not set
448# CONFIG_RFKILL is not set 457# CONFIG_RFKILL is not set
449# CONFIG_NET_9P is not set 458# CONFIG_NET_9P is not set
450 459
@@ -579,6 +588,10 @@ CONFIG_NETDEV_1000=y
579# CONFIG_WLAN_PRE80211 is not set 588# CONFIG_WLAN_PRE80211 is not set
580# CONFIG_WLAN_80211 is not set 589# CONFIG_WLAN_80211 is not set
581# CONFIG_IWLWIFI_LEDS is not set 590# CONFIG_IWLWIFI_LEDS is not set
591
592#
593# Enable WiMAX (Networking options) to see the WiMAX drivers
594#
582# CONFIG_WAN is not set 595# CONFIG_WAN is not set
583# CONFIG_FDDI is not set 596# CONFIG_FDDI is not set
584# CONFIG_HIPPI is not set 597# CONFIG_HIPPI is not set
@@ -679,9 +692,12 @@ CONFIG_SERIAL_CORE=y
679CONFIG_SERIAL_CORE_CONSOLE=y 692CONFIG_SERIAL_CORE_CONSOLE=y
680# CONFIG_SERIAL_JSM is not set 693# CONFIG_SERIAL_JSM is not set
681# CONFIG_SERIAL_OF_PLATFORM is not set 694# CONFIG_SERIAL_OF_PLATFORM is not set
695# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
682CONFIG_UNIX98_PTYS=y 696CONFIG_UNIX98_PTYS=y
697# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
683CONFIG_LEGACY_PTYS=y 698CONFIG_LEGACY_PTYS=y
684CONFIG_LEGACY_PTY_COUNT=256 699CONFIG_LEGACY_PTY_COUNT=256
700# CONFIG_HVC_UDBG is not set
685# CONFIG_IPMI_HANDLER is not set 701# CONFIG_IPMI_HANDLER is not set
686CONFIG_HW_RANDOM=m 702CONFIG_HW_RANDOM=m
687# CONFIG_NVRAM is not set 703# CONFIG_NVRAM is not set
@@ -859,7 +875,6 @@ CONFIG_LOGO_LINUX_CLUT224=y
859# CONFIG_DMADEVICES is not set 875# CONFIG_DMADEVICES is not set
860# CONFIG_UIO is not set 876# CONFIG_UIO is not set
861# CONFIG_STAGING is not set 877# CONFIG_STAGING is not set
862CONFIG_STAGING_EXCLUDE_BUILD=y
863 878
864# 879#
865# File systems 880# File systems
@@ -875,6 +890,7 @@ CONFIG_EXT2_FS=y
875CONFIG_FILE_LOCKING=y 890CONFIG_FILE_LOCKING=y
876# CONFIG_XFS_FS is not set 891# CONFIG_XFS_FS is not set
877# CONFIG_OCFS2_FS is not set 892# CONFIG_OCFS2_FS is not set
893# CONFIG_BTRFS_FS is not set
878CONFIG_DNOTIFY=y 894CONFIG_DNOTIFY=y
879CONFIG_INOTIFY=y 895CONFIG_INOTIFY=y
880CONFIG_INOTIFY_USER=y 896CONFIG_INOTIFY_USER=y
@@ -911,10 +927,7 @@ CONFIG_TMPFS=y
911# CONFIG_TMPFS_POSIX_ACL is not set 927# CONFIG_TMPFS_POSIX_ACL is not set
912# CONFIG_HUGETLB_PAGE is not set 928# CONFIG_HUGETLB_PAGE is not set
913# CONFIG_CONFIGFS_FS is not set 929# CONFIG_CONFIGFS_FS is not set
914 930CONFIG_MISC_FILESYSTEMS=y
915#
916# Miscellaneous filesystems
917#
918# CONFIG_ADFS_FS is not set 931# CONFIG_ADFS_FS is not set
919# CONFIG_AFFS_FS is not set 932# CONFIG_AFFS_FS is not set
920# CONFIG_HFS_FS is not set 933# CONFIG_HFS_FS is not set
@@ -923,6 +936,7 @@ CONFIG_TMPFS=y
923# CONFIG_BFS_FS is not set 936# CONFIG_BFS_FS is not set
924# CONFIG_EFS_FS is not set 937# CONFIG_EFS_FS is not set
925CONFIG_CRAMFS=y 938CONFIG_CRAMFS=y
939# CONFIG_SQUASHFS is not set
926# CONFIG_VXFS_FS is not set 940# CONFIG_VXFS_FS is not set
927# CONFIG_MINIX_FS is not set 941# CONFIG_MINIX_FS is not set
928# CONFIG_OMFS_FS is not set 942# CONFIG_OMFS_FS is not set
@@ -1002,6 +1016,7 @@ CONFIG_NLS_UTF8=m
1002# Library routines 1016# Library routines
1003# 1017#
1004CONFIG_BITREVERSE=y 1018CONFIG_BITREVERSE=y
1019CONFIG_GENERIC_FIND_LAST_BIT=y
1005CONFIG_CRC_CCITT=y 1020CONFIG_CRC_CCITT=y
1006# CONFIG_CRC16 is not set 1021# CONFIG_CRC16 is not set
1007# CONFIG_CRC_T10DIF is not set 1022# CONFIG_CRC_T10DIF is not set
@@ -1051,6 +1066,7 @@ CONFIG_DEBUG_INFO=y
1051CONFIG_DEBUG_MEMORY_INIT=y 1066CONFIG_DEBUG_MEMORY_INIT=y
1052# CONFIG_DEBUG_LIST is not set 1067# CONFIG_DEBUG_LIST is not set
1053# CONFIG_DEBUG_SG is not set 1068# CONFIG_DEBUG_SG is not set
1069# CONFIG_DEBUG_NOTIFIERS is not set
1054# CONFIG_BOOT_PRINTK_DELAY is not set 1070# CONFIG_BOOT_PRINTK_DELAY is not set
1055# CONFIG_RCU_TORTURE_TEST is not set 1071# CONFIG_RCU_TORTURE_TEST is not set
1056# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1072# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1060,6 +1076,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
1060# CONFIG_LATENCYTOP is not set 1076# CONFIG_LATENCYTOP is not set
1061CONFIG_SYSCTL_SYSCALL_CHECK=y 1077CONFIG_SYSCTL_SYSCALL_CHECK=y
1062CONFIG_HAVE_FUNCTION_TRACER=y 1078CONFIG_HAVE_FUNCTION_TRACER=y
1079CONFIG_HAVE_DYNAMIC_FTRACE=y
1080CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1063 1081
1064# 1082#
1065# Tracers 1083# Tracers
@@ -1069,11 +1087,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1069# CONFIG_SCHED_TRACER is not set 1087# CONFIG_SCHED_TRACER is not set
1070# CONFIG_CONTEXT_SWITCH_TRACER is not set 1088# CONFIG_CONTEXT_SWITCH_TRACER is not set
1071# CONFIG_BOOT_TRACER is not set 1089# CONFIG_BOOT_TRACER is not set
1090# CONFIG_TRACE_BRANCH_PROFILING is not set
1072# CONFIG_STACK_TRACER is not set 1091# CONFIG_STACK_TRACER is not set
1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1092# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1074# CONFIG_SAMPLES is not set 1093# CONFIG_SAMPLES is not set
1075CONFIG_HAVE_ARCH_KGDB=y 1094CONFIG_HAVE_ARCH_KGDB=y
1076# CONFIG_KGDB is not set 1095# CONFIG_KGDB is not set
1096CONFIG_PRINT_STACK_DEPTH=64
1077# CONFIG_DEBUG_STACKOVERFLOW is not set 1097# CONFIG_DEBUG_STACKOVERFLOW is not set
1078# CONFIG_DEBUG_STACK_USAGE is not set 1098# CONFIG_DEBUG_STACK_USAGE is not set
1079# CONFIG_DEBUG_PAGEALLOC is not set 1099# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1099,6 +1119,7 @@ CONFIG_CRYPTO=y
1099# 1119#
1100# CONFIG_CRYPTO_FIPS is not set 1120# CONFIG_CRYPTO_FIPS is not set
1101# CONFIG_CRYPTO_MANAGER is not set 1121# CONFIG_CRYPTO_MANAGER is not set
1122# CONFIG_CRYPTO_MANAGER2 is not set
1102# CONFIG_CRYPTO_GF128MUL is not set 1123# CONFIG_CRYPTO_GF128MUL is not set
1103# CONFIG_CRYPTO_NULL is not set 1124# CONFIG_CRYPTO_NULL is not set
1104# CONFIG_CRYPTO_CRYPTD is not set 1125# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/44x/warp_defconfig b/arch/powerpc/configs/44x/warp_defconfig
index 59cbd2761ed7..3b77f092abe1 100644
--- a/arch/powerpc/configs/44x/warp_defconfig
+++ b/arch/powerpc/configs/44x/warp_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.28-rc2 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 28 09:16:22 2008 4# Fri Jan 23 07:57:16 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -44,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 45CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
50CONFIG_OF=y 51CONFIG_OF=y
@@ -75,12 +76,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 80CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -113,7 +114,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 114# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +124,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 128CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 129# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +131,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 131# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 132# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 134CONFIG_BLOCK=y
137# CONFIG_LBD is not set 135# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
142 139
@@ -153,6 +150,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_TREE_RCU is not set
154# CONFIG_PREEMPT_RCU is not set
155# CONFIG_TREE_RCU_TRACE is not set
156# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
157 158
158# 159#
@@ -190,6 +191,7 @@ CONFIG_IBM440EP_ERR42=y
190# CONFIG_GENERIC_IOMAP is not set 191# CONFIG_GENERIC_IOMAP is not set
191# CONFIG_CPU_FREQ is not set 192# CONFIG_CPU_FREQ is not set
192# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
194# CONFIG_SIMPLE_GPIO is not set
193 195
194# 196#
195# Kernel options 197# Kernel options
@@ -213,6 +215,7 @@ CONFIG_BINFMT_ELF=y
213# CONFIG_BINFMT_MISC is not set 215# CONFIG_BINFMT_MISC is not set
214# CONFIG_MATH_EMULATION is not set 216# CONFIG_MATH_EMULATION is not set
215# CONFIG_IOMMU_HELPER is not set 217# CONFIG_IOMMU_HELPER is not set
218CONFIG_PPC_NEED_DMA_SYNC_OPS=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y 220CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -227,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
227CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
228CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
229CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
230CONFIG_RESOURCES_64BIT=y
231CONFIG_PHYS_ADDR_T_64BIT=y 233CONFIG_PHYS_ADDR_T_64BIT=y
232CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
236CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
238CONFIG_CMDLINE_BOOL=y 243CONFIG_CMDLINE_BOOL=y
@@ -273,6 +278,7 @@ CONFIG_NET=y
273# 278#
274# Networking options 279# Networking options
275# 280#
281CONFIG_COMPAT_NET_DEV_OPS=y
276CONFIG_PACKET=y 282CONFIG_PACKET=y
277# CONFIG_PACKET_MMAP is not set 283# CONFIG_PACKET_MMAP is not set
278CONFIG_UNIX=y 284CONFIG_UNIX=y
@@ -348,6 +354,7 @@ CONFIG_VLAN_8021Q=y
348# CONFIG_ECONET is not set 354# CONFIG_ECONET is not set
349# CONFIG_WAN_ROUTER is not set 355# CONFIG_WAN_ROUTER is not set
350# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set
351 358
352# 359#
353# Network testing 360# Network testing
@@ -360,6 +367,7 @@ CONFIG_VLAN_8021Q=y
360# CONFIG_AF_RXRPC is not set 367# CONFIG_AF_RXRPC is not set
361# CONFIG_PHONET is not set 368# CONFIG_PHONET is not set
362# CONFIG_WIRELESS is not set 369# CONFIG_WIRELESS is not set
370# CONFIG_WIMAX is not set
363# CONFIG_RFKILL is not set 371# CONFIG_RFKILL is not set
364# CONFIG_NET_9P is not set 372# CONFIG_NET_9P is not set
365 373
@@ -380,8 +388,9 @@ CONFIG_MTD=y
380# CONFIG_MTD_DEBUG is not set 388# CONFIG_MTD_DEBUG is not set
381# CONFIG_MTD_CONCAT is not set 389# CONFIG_MTD_CONCAT is not set
382CONFIG_MTD_PARTITIONS=y 390CONFIG_MTD_PARTITIONS=y
391# CONFIG_MTD_TESTS is not set
383# CONFIG_MTD_REDBOOT_PARTS is not set 392# CONFIG_MTD_REDBOOT_PARTS is not set
384# CONFIG_MTD_CMDLINE_PARTS is not set 393CONFIG_MTD_CMDLINE_PARTS=y
385CONFIG_MTD_OF_PARTS=y 394CONFIG_MTD_OF_PARTS=y
386# CONFIG_MTD_AR7_PARTS is not set 395# CONFIG_MTD_AR7_PARTS is not set
387 396
@@ -396,7 +405,7 @@ CONFIG_MTD_BLOCK=y
396# CONFIG_INFTL is not set 405# CONFIG_INFTL is not set
397# CONFIG_RFD_FTL is not set 406# CONFIG_RFD_FTL is not set
398# CONFIG_SSFDC is not set 407# CONFIG_SSFDC is not set
399CONFIG_MTD_OOPS=m 408# CONFIG_MTD_OOPS is not set
400 409
401# 410#
402# RAM/ROM/Flash chip drivers 411# RAM/ROM/Flash chip drivers
@@ -450,6 +459,7 @@ CONFIG_MTD_NAND=y
450CONFIG_MTD_NAND_ECC_SMC=y 459CONFIG_MTD_NAND_ECC_SMC=y
451# CONFIG_MTD_NAND_MUSEUM_IDS is not set 460# CONFIG_MTD_NAND_MUSEUM_IDS is not set
452CONFIG_MTD_NAND_IDS=y 461CONFIG_MTD_NAND_IDS=y
462CONFIG_MTD_NAND_NDFC=y
453# CONFIG_MTD_NAND_DISKONCHIP is not set 463# CONFIG_MTD_NAND_DISKONCHIP is not set
454# CONFIG_MTD_NAND_NANDSIM is not set 464# CONFIG_MTD_NAND_NANDSIM is not set
455# CONFIG_MTD_NAND_PLATFORM is not set 465# CONFIG_MTD_NAND_PLATFORM is not set
@@ -458,6 +468,12 @@ CONFIG_MTD_NAND_IDS=y
458# CONFIG_MTD_ONENAND is not set 468# CONFIG_MTD_ONENAND is not set
459 469
460# 470#
471# LPDDR flash memory drivers
472#
473# CONFIG_MTD_LPDDR is not set
474# CONFIG_MTD_QINFO_PROBE is not set
475
476#
461# UBI - Unsorted block images 477# UBI - Unsorted block images
462# 478#
463# CONFIG_MTD_UBI is not set 479# CONFIG_MTD_UBI is not set
@@ -480,7 +496,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
480# CONFIG_BLK_DEV_HD is not set 496# CONFIG_BLK_DEV_HD is not set
481CONFIG_MISC_DEVICES=y 497CONFIG_MISC_DEVICES=y
482# CONFIG_EEPROM_93CX6 is not set 498# CONFIG_EEPROM_93CX6 is not set
499# CONFIG_ICS932S401 is not set
483# CONFIG_ENCLOSURE_SERVICES is not set 500# CONFIG_ENCLOSURE_SERVICES is not set
501# CONFIG_C2PORT is not set
484CONFIG_HAVE_IDE=y 502CONFIG_HAVE_IDE=y
485# CONFIG_IDE is not set 503# CONFIG_IDE is not set
486 504
@@ -562,6 +580,10 @@ CONFIG_IBM_NEW_EMAC_ZMII=y
562# CONFIG_IWLWIFI_LEDS is not set 580# CONFIG_IWLWIFI_LEDS is not set
563 581
564# 582#
583# Enable WiMAX (Networking options) to see the WiMAX drivers
584#
585
586#
565# USB Network Adapters 587# USB Network Adapters
566# 588#
567# CONFIG_USB_CATC is not set 589# CONFIG_USB_CATC is not set
@@ -616,9 +638,12 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
616CONFIG_SERIAL_CORE=y 638CONFIG_SERIAL_CORE=y
617CONFIG_SERIAL_CORE_CONSOLE=y 639CONFIG_SERIAL_CORE_CONSOLE=y
618# CONFIG_SERIAL_OF_PLATFORM is not set 640# CONFIG_SERIAL_OF_PLATFORM is not set
641# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
619CONFIG_UNIX98_PTYS=y 642CONFIG_UNIX98_PTYS=y
643# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
620CONFIG_LEGACY_PTYS=y 644CONFIG_LEGACY_PTYS=y
621CONFIG_LEGACY_PTY_COUNT=256 645CONFIG_LEGACY_PTY_COUNT=256
646# CONFIG_HVC_UDBG is not set
622# CONFIG_IPMI_HANDLER is not set 647# CONFIG_IPMI_HANDLER is not set
623CONFIG_HW_RANDOM=y 648CONFIG_HW_RANDOM=y
624# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
@@ -638,7 +663,7 @@ CONFIG_I2C_HELPER_AUTO=y
638# 663#
639# I2C system bus drivers (mostly embedded / system-on-chip) 664# I2C system bus drivers (mostly embedded / system-on-chip)
640# 665#
641# CONFIG_I2C_IBM_IIC is not set 666CONFIG_I2C_IBM_IIC=y
642# CONFIG_I2C_MPC is not set 667# CONFIG_I2C_MPC is not set
643# CONFIG_I2C_OCORES is not set 668# CONFIG_I2C_OCORES is not set
644# CONFIG_I2C_SIMTEC is not set 669# CONFIG_I2C_SIMTEC is not set
@@ -660,8 +685,8 @@ CONFIG_I2C_HELPER_AUTO=y
660# Miscellaneous I2C Chip support 685# Miscellaneous I2C Chip support
661# 686#
662# CONFIG_DS1682 is not set 687# CONFIG_DS1682 is not set
663# CONFIG_AT24 is not set 688CONFIG_EEPROM_AT24=y
664CONFIG_SENSORS_EEPROM=y 689CONFIG_EEPROM_LEGACY=y
665# CONFIG_SENSORS_PCF8574 is not set 690# CONFIG_SENSORS_PCF8574 is not set
666# CONFIG_PCF8575 is not set 691# CONFIG_PCF8575 is not set
667# CONFIG_SENSORS_PCA9539 is not set 692# CONFIG_SENSORS_PCA9539 is not set
@@ -679,7 +704,7 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
679# CONFIG_POWER_SUPPLY is not set 704# CONFIG_POWER_SUPPLY is not set
680CONFIG_HWMON=y 705CONFIG_HWMON=y
681# CONFIG_HWMON_VID is not set 706# CONFIG_HWMON_VID is not set
682# CONFIG_SENSORS_AD7414 is not set 707CONFIG_SENSORS_AD7414=y
683# CONFIG_SENSORS_AD7418 is not set 708# CONFIG_SENSORS_AD7418 is not set
684# CONFIG_SENSORS_ADM1021 is not set 709# CONFIG_SENSORS_ADM1021 is not set
685# CONFIG_SENSORS_ADM1025 is not set 710# CONFIG_SENSORS_ADM1025 is not set
@@ -687,8 +712,10 @@ CONFIG_HWMON=y
687# CONFIG_SENSORS_ADM1029 is not set 712# CONFIG_SENSORS_ADM1029 is not set
688# CONFIG_SENSORS_ADM1031 is not set 713# CONFIG_SENSORS_ADM1031 is not set
689# CONFIG_SENSORS_ADM9240 is not set 714# CONFIG_SENSORS_ADM9240 is not set
715# CONFIG_SENSORS_ADT7462 is not set
690# CONFIG_SENSORS_ADT7470 is not set 716# CONFIG_SENSORS_ADT7470 is not set
691# CONFIG_SENSORS_ADT7473 is not set 717# CONFIG_SENSORS_ADT7473 is not set
718# CONFIG_SENSORS_ADT7475 is not set
692# CONFIG_SENSORS_ATXP1 is not set 719# CONFIG_SENSORS_ATXP1 is not set
693# CONFIG_SENSORS_DS1621 is not set 720# CONFIG_SENSORS_DS1621 is not set
694# CONFIG_SENSORS_F71805F is not set 721# CONFIG_SENSORS_F71805F is not set
@@ -708,6 +735,7 @@ CONFIG_HWMON=y
708# CONFIG_SENSORS_LM90 is not set 735# CONFIG_SENSORS_LM90 is not set
709# CONFIG_SENSORS_LM92 is not set 736# CONFIG_SENSORS_LM92 is not set
710# CONFIG_SENSORS_LM93 is not set 737# CONFIG_SENSORS_LM93 is not set
738# CONFIG_SENSORS_LTC4245 is not set
711# CONFIG_SENSORS_MAX1619 is not set 739# CONFIG_SENSORS_MAX1619 is not set
712# CONFIG_SENSORS_MAX6650 is not set 740# CONFIG_SENSORS_MAX6650 is not set
713# CONFIG_SENSORS_PC87360 is not set 741# CONFIG_SENSORS_PC87360 is not set
@@ -729,13 +757,26 @@ CONFIG_HWMON=y
729# CONFIG_SENSORS_W83627EHF is not set 757# CONFIG_SENSORS_W83627EHF is not set
730# CONFIG_HWMON_DEBUG_CHIP is not set 758# CONFIG_HWMON_DEBUG_CHIP is not set
731CONFIG_THERMAL=y 759CONFIG_THERMAL=y
732# CONFIG_THERMAL_HWMON is not set 760CONFIG_THERMAL_HWMON=y
733# CONFIG_WATCHDOG is not set 761CONFIG_WATCHDOG=y
762# CONFIG_WATCHDOG_NOWAYOUT is not set
734 763
735# 764#
736# Sonics Silicon Backplane 765# Watchdog Device Drivers
766#
767# CONFIG_SOFT_WATCHDOG is not set
768CONFIG_PIKA_WDT=y
769# CONFIG_BOOKE_WDT is not set
770
771#
772# USB-based Watchdog Cards
737# 773#
774# CONFIG_USBPCWATCHDOG is not set
738CONFIG_SSB_POSSIBLE=y 775CONFIG_SSB_POSSIBLE=y
776
777#
778# Sonics Silicon Backplane
779#
739# CONFIG_SSB is not set 780# CONFIG_SSB is not set
740 781
741# 782#
@@ -744,9 +785,13 @@ CONFIG_SSB_POSSIBLE=y
744# CONFIG_MFD_CORE is not set 785# CONFIG_MFD_CORE is not set
745# CONFIG_MFD_SM501 is not set 786# CONFIG_MFD_SM501 is not set
746# CONFIG_HTC_PASIC3 is not set 787# CONFIG_HTC_PASIC3 is not set
788# CONFIG_TWL4030_CORE is not set
747# CONFIG_MFD_TMIO is not set 789# CONFIG_MFD_TMIO is not set
790# CONFIG_PMIC_DA903X is not set
748# CONFIG_MFD_WM8400 is not set 791# CONFIG_MFD_WM8400 is not set
749# CONFIG_MFD_WM8350_I2C is not set 792# CONFIG_MFD_WM8350_I2C is not set
793# CONFIG_MFD_PCF50633 is not set
794# CONFIG_REGULATOR is not set
750 795
751# 796#
752# Multimedia devices 797# Multimedia devices
@@ -802,6 +847,7 @@ CONFIG_USB_MON=y
802# USB Host Controller Drivers 847# USB Host Controller Drivers
803# 848#
804# CONFIG_USB_C67X00_HCD is not set 849# CONFIG_USB_C67X00_HCD is not set
850# CONFIG_USB_OXU210HP_HCD is not set
805# CONFIG_USB_ISP116X_HCD is not set 851# CONFIG_USB_ISP116X_HCD is not set
806# CONFIG_USB_ISP1760_HCD is not set 852# CONFIG_USB_ISP1760_HCD is not set
807CONFIG_USB_OHCI_HCD=y 853CONFIG_USB_OHCI_HCD=y
@@ -824,18 +870,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
824# CONFIG_USB_TMC is not set 870# CONFIG_USB_TMC is not set
825 871
826# 872#
827# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 873# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
828# 874#
829 875
830# 876#
831# may also be needed; see USB_STORAGE Help for more information 877# see USB_STORAGE Help for more information
832# 878#
833CONFIG_USB_STORAGE=y 879CONFIG_USB_STORAGE=y
834# CONFIG_USB_STORAGE_DEBUG is not set 880# CONFIG_USB_STORAGE_DEBUG is not set
835# CONFIG_USB_STORAGE_DATAFAB is not set 881# CONFIG_USB_STORAGE_DATAFAB is not set
836# CONFIG_USB_STORAGE_FREECOM is not set 882# CONFIG_USB_STORAGE_FREECOM is not set
837# CONFIG_USB_STORAGE_ISD200 is not set 883# CONFIG_USB_STORAGE_ISD200 is not set
838# CONFIG_USB_STORAGE_DPCM is not set
839# CONFIG_USB_STORAGE_USBAT is not set 884# CONFIG_USB_STORAGE_USBAT is not set
840# CONFIG_USB_STORAGE_SDDR09 is not set 885# CONFIG_USB_STORAGE_SDDR09 is not set
841# CONFIG_USB_STORAGE_SDDR55 is not set 886# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -880,14 +925,18 @@ CONFIG_USB_STORAGE=y
880# CONFIG_USB_ISIGHTFW is not set 925# CONFIG_USB_ISIGHTFW is not set
881# CONFIG_USB_VST is not set 926# CONFIG_USB_VST is not set
882# CONFIG_USB_GADGET is not set 927# CONFIG_USB_GADGET is not set
883CONFIG_MMC=m 928
929#
930# OTG and related infrastructure
931#
932CONFIG_MMC=y
884# CONFIG_MMC_DEBUG is not set 933# CONFIG_MMC_DEBUG is not set
885# CONFIG_MMC_UNSAFE_RESUME is not set 934# CONFIG_MMC_UNSAFE_RESUME is not set
886 935
887# 936#
888# MMC/SD/SDIO Card Drivers 937# MMC/SD/SDIO Card Drivers
889# 938#
890CONFIG_MMC_BLOCK=m 939CONFIG_MMC_BLOCK=y
891CONFIG_MMC_BLOCK_BOUNCE=y 940CONFIG_MMC_BLOCK_BOUNCE=y
892# CONFIG_SDIO_UART is not set 941# CONFIG_SDIO_UART is not set
893# CONFIG_MMC_TEST is not set 942# CONFIG_MMC_TEST is not set
@@ -898,7 +947,18 @@ CONFIG_MMC_BLOCK_BOUNCE=y
898# CONFIG_MMC_SDHCI is not set 947# CONFIG_MMC_SDHCI is not set
899# CONFIG_MMC_WBSD is not set 948# CONFIG_MMC_WBSD is not set
900# CONFIG_MEMSTICK is not set 949# CONFIG_MEMSTICK is not set
901# CONFIG_NEW_LEDS is not set 950CONFIG_NEW_LEDS=y
951CONFIG_LEDS_CLASS=y
952
953#
954# LED drivers
955#
956# CONFIG_LEDS_PCA955X is not set
957
958#
959# LED Triggers
960#
961# CONFIG_LEDS_TRIGGERS is not set
902# CONFIG_ACCESSIBILITY is not set 962# CONFIG_ACCESSIBILITY is not set
903# CONFIG_EDAC is not set 963# CONFIG_EDAC is not set
904# CONFIG_RTC_CLASS is not set 964# CONFIG_RTC_CLASS is not set
@@ -912,14 +972,18 @@ CONFIG_MMC_BLOCK_BOUNCE=y
912CONFIG_EXT2_FS=y 972CONFIG_EXT2_FS=y
913# CONFIG_EXT2_FS_XATTR is not set 973# CONFIG_EXT2_FS_XATTR is not set
914# CONFIG_EXT2_FS_XIP is not set 974# CONFIG_EXT2_FS_XIP is not set
915# CONFIG_EXT3_FS is not set 975CONFIG_EXT3_FS=y
976# CONFIG_EXT3_FS_XATTR is not set
916# CONFIG_EXT4_FS is not set 977# CONFIG_EXT4_FS is not set
978CONFIG_JBD=y
979# CONFIG_JBD_DEBUG is not set
917# CONFIG_REISERFS_FS is not set 980# CONFIG_REISERFS_FS is not set
918# CONFIG_JFS_FS is not set 981# CONFIG_JFS_FS is not set
919# CONFIG_FS_POSIX_ACL is not set 982# CONFIG_FS_POSIX_ACL is not set
920CONFIG_FILE_LOCKING=y 983CONFIG_FILE_LOCKING=y
921# CONFIG_XFS_FS is not set 984# CONFIG_XFS_FS is not set
922# CONFIG_OCFS2_FS is not set 985# CONFIG_OCFS2_FS is not set
986# CONFIG_BTRFS_FS is not set
923CONFIG_DNOTIFY=y 987CONFIG_DNOTIFY=y
924CONFIG_INOTIFY=y 988CONFIG_INOTIFY=y
925CONFIG_INOTIFY_USER=y 989CONFIG_INOTIFY_USER=y
@@ -952,13 +1016,11 @@ CONFIG_PROC_KCORE=y
952CONFIG_PROC_SYSCTL=y 1016CONFIG_PROC_SYSCTL=y
953CONFIG_PROC_PAGE_MONITOR=y 1017CONFIG_PROC_PAGE_MONITOR=y
954CONFIG_SYSFS=y 1018CONFIG_SYSFS=y
955# CONFIG_TMPFS is not set 1019CONFIG_TMPFS=y
1020# CONFIG_TMPFS_POSIX_ACL is not set
956# CONFIG_HUGETLB_PAGE is not set 1021# CONFIG_HUGETLB_PAGE is not set
957# CONFIG_CONFIGFS_FS is not set 1022# CONFIG_CONFIGFS_FS is not set
958 1023CONFIG_MISC_FILESYSTEMS=y
959#
960# Miscellaneous filesystems
961#
962# CONFIG_ADFS_FS is not set 1024# CONFIG_ADFS_FS is not set
963# CONFIG_AFFS_FS is not set 1025# CONFIG_AFFS_FS is not set
964# CONFIG_HFS_FS is not set 1026# CONFIG_HFS_FS is not set
@@ -978,6 +1040,7 @@ CONFIG_JFFS2_ZLIB=y
978CONFIG_JFFS2_RTIME=y 1040CONFIG_JFFS2_RTIME=y
979# CONFIG_JFFS2_RUBIN is not set 1041# CONFIG_JFFS2_RUBIN is not set
980CONFIG_CRAMFS=y 1042CONFIG_CRAMFS=y
1043# CONFIG_SQUASHFS is not set
981# CONFIG_VXFS_FS is not set 1044# CONFIG_VXFS_FS is not set
982# CONFIG_MINIX_FS is not set 1045# CONFIG_MINIX_FS is not set
983# CONFIG_OMFS_FS is not set 1046# CONFIG_OMFS_FS is not set
@@ -1057,6 +1120,7 @@ CONFIG_NLS_UTF8=y
1057# Library routines 1120# Library routines
1058# 1121#
1059CONFIG_BITREVERSE=y 1122CONFIG_BITREVERSE=y
1123CONFIG_GENERIC_FIND_LAST_BIT=y
1060CONFIG_CRC_CCITT=y 1124CONFIG_CRC_CCITT=y
1061# CONFIG_CRC16 is not set 1125# CONFIG_CRC16 is not set
1062CONFIG_CRC_T10DIF=y 1126CONFIG_CRC_T10DIF=y
@@ -1107,6 +1171,7 @@ CONFIG_DEBUG_INFO=y
1107# CONFIG_DEBUG_MEMORY_INIT is not set 1171# CONFIG_DEBUG_MEMORY_INIT is not set
1108# CONFIG_DEBUG_LIST is not set 1172# CONFIG_DEBUG_LIST is not set
1109# CONFIG_DEBUG_SG is not set 1173# CONFIG_DEBUG_SG is not set
1174# CONFIG_DEBUG_NOTIFIERS is not set
1110# CONFIG_BOOT_PRINTK_DELAY is not set 1175# CONFIG_BOOT_PRINTK_DELAY is not set
1111# CONFIG_RCU_TORTURE_TEST is not set 1176# CONFIG_RCU_TORTURE_TEST is not set
1112# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1177# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1115,18 +1180,24 @@ CONFIG_DEBUG_INFO=y
1115# CONFIG_FAULT_INJECTION is not set 1180# CONFIG_FAULT_INJECTION is not set
1116# CONFIG_LATENCYTOP is not set 1181# CONFIG_LATENCYTOP is not set
1117CONFIG_SYSCTL_SYSCALL_CHECK=y 1182CONFIG_SYSCTL_SYSCALL_CHECK=y
1118CONFIG_NOP_TRACER=y 1183CONFIG_HAVE_FUNCTION_TRACER=y
1119CONFIG_HAVE_FTRACE=y
1120CONFIG_HAVE_DYNAMIC_FTRACE=y 1184CONFIG_HAVE_DYNAMIC_FTRACE=y
1121# CONFIG_FTRACE is not set 1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1186
1187#
1188# Tracers
1189#
1190# CONFIG_FUNCTION_TRACER is not set
1122# CONFIG_SCHED_TRACER is not set 1191# CONFIG_SCHED_TRACER is not set
1123# CONFIG_CONTEXT_SWITCH_TRACER is not set 1192# CONFIG_CONTEXT_SWITCH_TRACER is not set
1124# CONFIG_BOOT_TRACER is not set 1193# CONFIG_BOOT_TRACER is not set
1194# CONFIG_TRACE_BRANCH_PROFILING is not set
1125# CONFIG_STACK_TRACER is not set 1195# CONFIG_STACK_TRACER is not set
1126# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1196# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1127# CONFIG_SAMPLES is not set 1197# CONFIG_SAMPLES is not set
1128CONFIG_HAVE_ARCH_KGDB=y 1198CONFIG_HAVE_ARCH_KGDB=y
1129# CONFIG_KGDB is not set 1199# CONFIG_KGDB is not set
1200CONFIG_PRINT_STACK_DEPTH=64
1130# CONFIG_DEBUG_STACKOVERFLOW is not set 1201# CONFIG_DEBUG_STACKOVERFLOW is not set
1131# CONFIG_DEBUG_STACK_USAGE is not set 1202# CONFIG_DEBUG_STACK_USAGE is not set
1132# CONFIG_DEBUG_PAGEALLOC is not set 1203# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1134,7 +1205,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1134# CONFIG_FTR_FIXUP_SELFTEST is not set 1205# CONFIG_FTR_FIXUP_SELFTEST is not set
1135# CONFIG_MSI_BITMAP_SELFTEST is not set 1206# CONFIG_MSI_BITMAP_SELFTEST is not set
1136# CONFIG_XMON is not set 1207# CONFIG_XMON is not set
1137# CONFIG_IRQSTACKS is not set 1208CONFIG_IRQSTACKS=y
1138# CONFIG_VIRQ_DEBUG is not set 1209# CONFIG_VIRQ_DEBUG is not set
1139CONFIG_BDI_SWITCH=y 1210CONFIG_BDI_SWITCH=y
1140# CONFIG_PPC_EARLY_DEBUG is not set 1211# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1153,6 +1224,7 @@ CONFIG_CRYPTO=y
1153# 1224#
1154# CONFIG_CRYPTO_FIPS is not set 1225# CONFIG_CRYPTO_FIPS is not set
1155# CONFIG_CRYPTO_MANAGER is not set 1226# CONFIG_CRYPTO_MANAGER is not set
1227# CONFIG_CRYPTO_MANAGER2 is not set
1156# CONFIG_CRYPTO_GF128MUL is not set 1228# CONFIG_CRYPTO_GF128MUL is not set
1157# CONFIG_CRYPTO_NULL is not set 1229# CONFIG_CRYPTO_NULL is not set
1158# CONFIG_CRYPTO_CRYPTD is not set 1230# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig
index 3df627494b65..1239c6132b4a 100644
--- a/arch/powerpc/configs/52xx/cm5200_defconfig
+++ b/arch/powerpc/configs/52xx/cm5200_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:12:40 2008 4# Mon Jan 26 21:41:58 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -71,14 +71,23 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74
75#
76# RCU Subsystem
77#
78CONFIG_CLASSIC_RCU=y
79# CONFIG_TREE_RCU is not set
80# CONFIG_PREEMPT_RCU is not set
81# CONFIG_TREE_RCU_TRACE is not set
82# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 83# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 84CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 85CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 86CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 87# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 88CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 89# CONFIG_CGROUP_SCHED is not set
90# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 92CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
@@ -110,7 +119,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 119CONFIG_SLUB=y
111# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y 124CONFIG_HAVE_IOREMAP_PROT=y
@@ -121,13 +129,11 @@ CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
126# CONFIG_MODULES is not set 133# CONFIG_MODULES is not set
127CONFIG_BLOCK=y 134CONFIG_BLOCK=y
128# CONFIG_LBD is not set 135# CONFIG_LBD is not set
129# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
130# CONFIG_LSF is not set
131# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
133 139
@@ -143,7 +149,6 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
144# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
146CONFIG_CLASSIC_RCU=y
147# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
148 153
149# 154#
@@ -182,9 +187,8 @@ CONFIG_PPC_MPC5200_SIMPLE=y
182# CONFIG_TAU is not set 187# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
184CONFIG_PPC_BESTCOMM=y 189CONFIG_PPC_BESTCOMM=y
185# CONFIG_PPC_BESTCOMM_ATA is not set
186CONFIG_PPC_BESTCOMM_FEC=y 190CONFIG_PPC_BESTCOMM_FEC=y
187# CONFIG_PPC_BESTCOMM_GEN_BD is not set 191# CONFIG_SIMPLE_GPIO is not set
188 192
189# 193#
190# Kernel options 194# Kernel options
@@ -211,6 +215,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 215CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
213# CONFIG_KEXEC is not set 217# CONFIG_KEXEC is not set
218# CONFIG_CRASH_DUMP is not set
214CONFIG_ARCH_FLATMEM_ENABLE=y 219CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 220CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_SELECT_MEMORY_MODEL=y 221CONFIG_SELECT_MEMORY_MODEL=y
@@ -222,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 230# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +275,7 @@ CONFIG_NET=y
268# 275#
269# Networking options 276# Networking options
270# 277#
278CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 279CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -324,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set
327 336
328# 337#
329# Network testing 338# Network testing
@@ -336,6 +345,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_AF_RXRPC is not set 345# CONFIG_AF_RXRPC is not set
337# CONFIG_PHONET is not set 346# CONFIG_PHONET is not set
338# CONFIG_WIRELESS is not set 347# CONFIG_WIRELESS is not set
348# CONFIG_WIMAX is not set
339# CONFIG_RFKILL is not set 349# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set 350# CONFIG_NET_9P is not set
341 351
@@ -427,6 +437,12 @@ CONFIG_MTD_PHYSMAP_OF=y
427# CONFIG_MTD_ONENAND is not set 437# CONFIG_MTD_ONENAND is not set
428 438
429# 439#
440# LPDDR flash memory drivers
441#
442# CONFIG_MTD_LPDDR is not set
443# CONFIG_MTD_QINFO_PROBE is not set
444
445#
430# UBI - Unsorted block images 446# UBI - Unsorted block images
431# 447#
432# CONFIG_MTD_UBI is not set 448# CONFIG_MTD_UBI is not set
@@ -514,6 +530,9 @@ CONFIG_LXT_PHY=y
514# CONFIG_BROADCOM_PHY is not set 530# CONFIG_BROADCOM_PHY is not set
515# CONFIG_ICPLUS_PHY is not set 531# CONFIG_ICPLUS_PHY is not set
516# CONFIG_REALTEK_PHY is not set 532# CONFIG_REALTEK_PHY is not set
533# CONFIG_NATIONAL_PHY is not set
534# CONFIG_STE10XP is not set
535# CONFIG_LSI_ET1011C_PHY is not set
517# CONFIG_FIXED_PHY is not set 536# CONFIG_FIXED_PHY is not set
518# CONFIG_MDIO_BITBANG is not set 537# CONFIG_MDIO_BITBANG is not set
519CONFIG_NET_ETHERNET=y 538CONFIG_NET_ETHERNET=y
@@ -539,6 +558,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
539# CONFIG_IWLWIFI_LEDS is not set 558# CONFIG_IWLWIFI_LEDS is not set
540 559
541# 560#
561# Enable WiMAX (Networking options) to see the WiMAX drivers
562#
563
564#
542# USB Network Adapters 565# USB Network Adapters
543# 566#
544# CONFIG_USB_CATC is not set 567# CONFIG_USB_CATC is not set
@@ -588,8 +611,10 @@ CONFIG_SERIAL_MPC52xx=y
588CONFIG_SERIAL_MPC52xx_CONSOLE=y 611CONFIG_SERIAL_MPC52xx_CONSOLE=y
589CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=57600 612CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=57600
590CONFIG_UNIX98_PTYS=y 613CONFIG_UNIX98_PTYS=y
614# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
591CONFIG_LEGACY_PTYS=y 615CONFIG_LEGACY_PTYS=y
592CONFIG_LEGACY_PTY_COUNT=256 616CONFIG_LEGACY_PTY_COUNT=256
617# CONFIG_HVC_UDBG is not set
593# CONFIG_IPMI_HANDLER is not set 618# CONFIG_IPMI_HANDLER is not set
594# CONFIG_HW_RANDOM is not set 619# CONFIG_HW_RANDOM is not set
595# CONFIG_NVRAM is not set 620# CONFIG_NVRAM is not set
@@ -629,8 +654,6 @@ CONFIG_I2C_MPC=y
629# Miscellaneous I2C Chip support 654# Miscellaneous I2C Chip support
630# 655#
631# CONFIG_DS1682 is not set 656# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set
633# CONFIG_SENSORS_EEPROM is not set
634# CONFIG_SENSORS_PCF8574 is not set 657# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 658# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 659# CONFIG_SENSORS_PCA9539 is not set
@@ -675,10 +698,12 @@ CONFIG_SSB_POSSIBLE=y
675# CONFIG_MFD_CORE is not set 698# CONFIG_MFD_CORE is not set
676# CONFIG_MFD_SM501 is not set 699# CONFIG_MFD_SM501 is not set
677# CONFIG_HTC_PASIC3 is not set 700# CONFIG_HTC_PASIC3 is not set
701# CONFIG_TWL4030_CORE is not set
678# CONFIG_MFD_TMIO is not set 702# CONFIG_MFD_TMIO is not set
679# CONFIG_PMIC_DA903X is not set 703# CONFIG_PMIC_DA903X is not set
680# CONFIG_MFD_WM8400 is not set 704# CONFIG_MFD_WM8400 is not set
681# CONFIG_MFD_WM8350_I2C is not set 705# CONFIG_MFD_WM8350_I2C is not set
706# CONFIG_MFD_PCF50633 is not set
682# CONFIG_REGULATOR is not set 707# CONFIG_REGULATOR is not set
683 708
684# 709#
@@ -736,6 +761,7 @@ CONFIG_USB_DEVICEFS=y
736# USB Host Controller Drivers 761# USB Host Controller Drivers
737# 762#
738# CONFIG_USB_C67X00_HCD is not set 763# CONFIG_USB_C67X00_HCD is not set
764# CONFIG_USB_OXU210HP_HCD is not set
739# CONFIG_USB_ISP116X_HCD is not set 765# CONFIG_USB_ISP116X_HCD is not set
740# CONFIG_USB_ISP1760_HCD is not set 766# CONFIG_USB_ISP1760_HCD is not set
741CONFIG_USB_OHCI_HCD=y 767CONFIG_USB_OHCI_HCD=y
@@ -760,18 +786,17 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
760# CONFIG_USB_TMC is not set 786# CONFIG_USB_TMC is not set
761 787
762# 788#
763# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 789# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
764# 790#
765 791
766# 792#
767# may also be needed; see USB_STORAGE Help for more information 793# see USB_STORAGE Help for more information
768# 794#
769CONFIG_USB_STORAGE=y 795CONFIG_USB_STORAGE=y
770# CONFIG_USB_STORAGE_DEBUG is not set 796# CONFIG_USB_STORAGE_DEBUG is not set
771# CONFIG_USB_STORAGE_DATAFAB is not set 797# CONFIG_USB_STORAGE_DATAFAB is not set
772# CONFIG_USB_STORAGE_FREECOM is not set 798# CONFIG_USB_STORAGE_FREECOM is not set
773# CONFIG_USB_STORAGE_ISD200 is not set 799# CONFIG_USB_STORAGE_ISD200 is not set
774# CONFIG_USB_STORAGE_DPCM is not set
775# CONFIG_USB_STORAGE_USBAT is not set 800# CONFIG_USB_STORAGE_USBAT is not set
776# CONFIG_USB_STORAGE_SDDR09 is not set 801# CONFIG_USB_STORAGE_SDDR09 is not set
777# CONFIG_USB_STORAGE_SDDR55 is not set 802# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -817,6 +842,10 @@ CONFIG_USB_STORAGE=y
817# CONFIG_USB_ISIGHTFW is not set 842# CONFIG_USB_ISIGHTFW is not set
818# CONFIG_USB_VST is not set 843# CONFIG_USB_VST is not set
819# CONFIG_USB_GADGET is not set 844# CONFIG_USB_GADGET is not set
845
846#
847# OTG and related infrastructure
848#
820# CONFIG_MMC is not set 849# CONFIG_MMC is not set
821# CONFIG_MEMSTICK is not set 850# CONFIG_MEMSTICK is not set
822# CONFIG_NEW_LEDS is not set 851# CONFIG_NEW_LEDS is not set
@@ -826,7 +855,6 @@ CONFIG_USB_STORAGE=y
826# CONFIG_DMADEVICES is not set 855# CONFIG_DMADEVICES is not set
827# CONFIG_UIO is not set 856# CONFIG_UIO is not set
828# CONFIG_STAGING is not set 857# CONFIG_STAGING is not set
829CONFIG_STAGING_EXCLUDE_BUILD=y
830 858
831# 859#
832# File systems 860# File systems
@@ -847,6 +875,7 @@ CONFIG_FS_MBCACHE=y
847CONFIG_FILE_LOCKING=y 875CONFIG_FILE_LOCKING=y
848# CONFIG_XFS_FS is not set 876# CONFIG_XFS_FS is not set
849# CONFIG_OCFS2_FS is not set 877# CONFIG_OCFS2_FS is not set
878# CONFIG_BTRFS_FS is not set
850CONFIG_DNOTIFY=y 879CONFIG_DNOTIFY=y
851CONFIG_INOTIFY=y 880CONFIG_INOTIFY=y
852CONFIG_INOTIFY_USER=y 881CONFIG_INOTIFY_USER=y
@@ -883,10 +912,7 @@ CONFIG_TMPFS=y
883# CONFIG_TMPFS_POSIX_ACL is not set 912# CONFIG_TMPFS_POSIX_ACL is not set
884# CONFIG_HUGETLB_PAGE is not set 913# CONFIG_HUGETLB_PAGE is not set
885# CONFIG_CONFIGFS_FS is not set 914# CONFIG_CONFIGFS_FS is not set
886 915CONFIG_MISC_FILESYSTEMS=y
887#
888# Miscellaneous filesystems
889#
890# CONFIG_ADFS_FS is not set 916# CONFIG_ADFS_FS is not set
891# CONFIG_AFFS_FS is not set 917# CONFIG_AFFS_FS is not set
892# CONFIG_HFS_FS is not set 918# CONFIG_HFS_FS is not set
@@ -906,6 +932,7 @@ CONFIG_JFFS2_ZLIB=y
906CONFIG_JFFS2_RTIME=y 932CONFIG_JFFS2_RTIME=y
907# CONFIG_JFFS2_RUBIN is not set 933# CONFIG_JFFS2_RUBIN is not set
908CONFIG_CRAMFS=y 934CONFIG_CRAMFS=y
935# CONFIG_SQUASHFS is not set
909# CONFIG_VXFS_FS is not set 936# CONFIG_VXFS_FS is not set
910# CONFIG_MINIX_FS is not set 937# CONFIG_MINIX_FS is not set
911# CONFIG_OMFS_FS is not set 938# CONFIG_OMFS_FS is not set
@@ -1002,6 +1029,7 @@ CONFIG_NLS_ISO8859_1=y
1002# Library routines 1029# Library routines
1003# 1030#
1004CONFIG_BITREVERSE=y 1031CONFIG_BITREVERSE=y
1032CONFIG_GENERIC_FIND_LAST_BIT=y
1005# CONFIG_CRC_CCITT is not set 1033# CONFIG_CRC_CCITT is not set
1006# CONFIG_CRC16 is not set 1034# CONFIG_CRC16 is not set
1007# CONFIG_CRC_T10DIF is not set 1035# CONFIG_CRC_T10DIF is not set
@@ -1053,6 +1081,7 @@ CONFIG_SCHED_DEBUG=y
1053# CONFIG_DEBUG_MEMORY_INIT is not set 1081# CONFIG_DEBUG_MEMORY_INIT is not set
1054# CONFIG_DEBUG_LIST is not set 1082# CONFIG_DEBUG_LIST is not set
1055# CONFIG_DEBUG_SG is not set 1083# CONFIG_DEBUG_SG is not set
1084# CONFIG_DEBUG_NOTIFIERS is not set
1056# CONFIG_BOOT_PRINTK_DELAY is not set 1085# CONFIG_BOOT_PRINTK_DELAY is not set
1057# CONFIG_RCU_TORTURE_TEST is not set 1086# CONFIG_RCU_TORTURE_TEST is not set
1058# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1087# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1061,6 +1090,8 @@ CONFIG_SCHED_DEBUG=y
1061# CONFIG_FAULT_INJECTION is not set 1090# CONFIG_FAULT_INJECTION is not set
1062# CONFIG_LATENCYTOP is not set 1091# CONFIG_LATENCYTOP is not set
1063CONFIG_HAVE_FUNCTION_TRACER=y 1092CONFIG_HAVE_FUNCTION_TRACER=y
1093CONFIG_HAVE_DYNAMIC_FTRACE=y
1094CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1064 1095
1065# 1096#
1066# Tracers 1097# Tracers
@@ -1069,11 +1100,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1069# CONFIG_SCHED_TRACER is not set 1100# CONFIG_SCHED_TRACER is not set
1070# CONFIG_CONTEXT_SWITCH_TRACER is not set 1101# CONFIG_CONTEXT_SWITCH_TRACER is not set
1071# CONFIG_BOOT_TRACER is not set 1102# CONFIG_BOOT_TRACER is not set
1103# CONFIG_TRACE_BRANCH_PROFILING is not set
1072# CONFIG_STACK_TRACER is not set 1104# CONFIG_STACK_TRACER is not set
1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1105# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1074# CONFIG_SAMPLES is not set 1106# CONFIG_SAMPLES is not set
1075CONFIG_HAVE_ARCH_KGDB=y 1107CONFIG_HAVE_ARCH_KGDB=y
1076# CONFIG_KGDB is not set 1108# CONFIG_KGDB is not set
1109CONFIG_PRINT_STACK_DEPTH=64
1077# CONFIG_DEBUG_STACKOVERFLOW is not set 1110# CONFIG_DEBUG_STACKOVERFLOW is not set
1078# CONFIG_DEBUG_STACK_USAGE is not set 1111# CONFIG_DEBUG_STACK_USAGE is not set
1079# CONFIG_DEBUG_PAGEALLOC is not set 1112# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1100,11 +1133,15 @@ CONFIG_CRYPTO=y
1100# 1133#
1101# CONFIG_CRYPTO_FIPS is not set 1134# CONFIG_CRYPTO_FIPS is not set
1102CONFIG_CRYPTO_ALGAPI=y 1135CONFIG_CRYPTO_ALGAPI=y
1103CONFIG_CRYPTO_AEAD=y 1136CONFIG_CRYPTO_ALGAPI2=y
1137CONFIG_CRYPTO_AEAD2=y
1104CONFIG_CRYPTO_BLKCIPHER=y 1138CONFIG_CRYPTO_BLKCIPHER=y
1139CONFIG_CRYPTO_BLKCIPHER2=y
1105CONFIG_CRYPTO_HASH=y 1140CONFIG_CRYPTO_HASH=y
1106CONFIG_CRYPTO_RNG=y 1141CONFIG_CRYPTO_HASH2=y
1142CONFIG_CRYPTO_RNG2=y
1107CONFIG_CRYPTO_MANAGER=y 1143CONFIG_CRYPTO_MANAGER=y
1144CONFIG_CRYPTO_MANAGER2=y
1108# CONFIG_CRYPTO_GF128MUL is not set 1145# CONFIG_CRYPTO_GF128MUL is not set
1109# CONFIG_CRYPTO_NULL is not set 1146# CONFIG_CRYPTO_NULL is not set
1110# CONFIG_CRYPTO_CRYPTD is not set 1147# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig
index 5b969f9c925e..b7b880562906 100644
--- a/arch/powerpc/configs/52xx/lite5200b_defconfig
+++ b/arch/powerpc/configs/52xx/lite5200b_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:10:16 2008 4# Mon Jan 26 21:41:14 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -72,14 +72,23 @@ CONFIG_SYSVIPC_SYSCTL=y
72# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
75
76#
77# RCU Subsystem
78#
79CONFIG_CLASSIC_RCU=y
80# CONFIG_TREE_RCU is not set
81# CONFIG_PREEMPT_RCU is not set
82# CONFIG_TREE_RCU_TRACE is not set
83# CONFIG_PREEMPT_RCU_TRACE is not set
75# CONFIG_IKCONFIG is not set 84# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 85CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 86CONFIG_GROUP_SCHED=y
79# CONFIG_FAIR_GROUP_SCHED is not set 87# CONFIG_FAIR_GROUP_SCHED is not set
80# CONFIG_RT_GROUP_SCHED is not set 88# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 89CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 90# CONFIG_CGROUP_SCHED is not set
91# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 92CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 93CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 94# CONFIG_RELAY is not set
@@ -112,7 +121,6 @@ CONFIG_SLUB_DEBUG=y
112CONFIG_SLUB=y 121CONFIG_SLUB=y
113# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 126CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +131,6 @@ CONFIG_HAVE_CLK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 135CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 136# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +138,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 138# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 139# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 141CONFIG_BLOCK=y
136# CONFIG_LBD is not set 142# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
141 146
@@ -151,7 +156,6 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_CFQ is not set 156# CONFIG_DEFAULT_CFQ is not set
152# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 158CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y
155CONFIG_FREEZER=y 159CONFIG_FREEZER=y
156 160
157# 161#
@@ -192,7 +196,7 @@ CONFIG_PPC_LITE5200=y
192CONFIG_PPC_BESTCOMM=y 196CONFIG_PPC_BESTCOMM=y
193CONFIG_PPC_BESTCOMM_ATA=y 197CONFIG_PPC_BESTCOMM_ATA=y
194CONFIG_PPC_BESTCOMM_FEC=y 198CONFIG_PPC_BESTCOMM_FEC=y
195CONFIG_PPC_BESTCOMM_GEN_BD=y 199# CONFIG_SIMPLE_GPIO is not set
196 200
197# 201#
198# Kernel options 202# Kernel options
@@ -220,6 +224,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 224CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
222# CONFIG_KEXEC is not set 226# CONFIG_KEXEC is not set
227# CONFIG_CRASH_DUMP is not set
223CONFIG_ARCH_FLATMEM_ENABLE=y 228CONFIG_ARCH_FLATMEM_ENABLE=y
224CONFIG_ARCH_POPULATES_NODE_MAP=y 229CONFIG_ARCH_POPULATES_NODE_MAP=y
225CONFIG_SELECT_MEMORY_MODEL=y 230CONFIG_SELECT_MEMORY_MODEL=y
@@ -231,12 +236,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
231CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
234# CONFIG_RESOURCES_64BIT is not set
235# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
239CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set
240CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
241CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
242# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -264,6 +271,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
264# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
265CONFIG_PCI_LEGACY=y 272CONFIG_PCI_LEGACY=y
266# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
267# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
268# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -286,6 +294,7 @@ CONFIG_NET=y
286# 294#
287# Networking options 295# Networking options
288# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 298CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -342,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
345 355
346# 356#
347# Network testing 357# Network testing
@@ -354,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
354# CONFIG_AF_RXRPC is not set 364# CONFIG_AF_RXRPC is not set
355# CONFIG_PHONET is not set 365# CONFIG_PHONET is not set
356# CONFIG_WIRELESS is not set 366# CONFIG_WIRELESS is not set
367# CONFIG_WIMAX is not set
357# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
358# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
359 370
@@ -396,13 +407,19 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
396# CONFIG_BLK_DEV_HD is not set 407# CONFIG_BLK_DEV_HD is not set
397CONFIG_MISC_DEVICES=y 408CONFIG_MISC_DEVICES=y
398# CONFIG_PHANTOM is not set 409# CONFIG_PHANTOM is not set
399# CONFIG_EEPROM_93CX6 is not set
400# CONFIG_SGI_IOC4 is not set 410# CONFIG_SGI_IOC4 is not set
401# CONFIG_TIFM_CORE is not set 411# CONFIG_TIFM_CORE is not set
402# CONFIG_ICS932S401 is not set 412# CONFIG_ICS932S401 is not set
403# CONFIG_ENCLOSURE_SERVICES is not set 413# CONFIG_ENCLOSURE_SERVICES is not set
404# CONFIG_HP_ILO is not set 414# CONFIG_HP_ILO is not set
405# CONFIG_C2PORT is not set 415# CONFIG_C2PORT is not set
416
417#
418# EEPROM support
419#
420# CONFIG_EEPROM_AT24 is not set
421# CONFIG_EEPROM_LEGACY is not set
422# CONFIG_EEPROM_93CX6 is not set
406CONFIG_HAVE_IDE=y 423CONFIG_HAVE_IDE=y
407# CONFIG_IDE is not set 424# CONFIG_IDE is not set
408 425
@@ -445,6 +462,7 @@ CONFIG_SCSI_WAIT_SCAN=m
445# CONFIG_SCSI_SRP_ATTRS is not set 462# CONFIG_SCSI_SRP_ATTRS is not set
446CONFIG_SCSI_LOWLEVEL=y 463CONFIG_SCSI_LOWLEVEL=y
447# CONFIG_ISCSI_TCP is not set 464# CONFIG_ISCSI_TCP is not set
465# CONFIG_SCSI_CXGB3_ISCSI is not set
448# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 466# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
449# CONFIG_SCSI_3W_9XXX is not set 467# CONFIG_SCSI_3W_9XXX is not set
450# CONFIG_SCSI_ACARD is not set 468# CONFIG_SCSI_ACARD is not set
@@ -461,6 +479,8 @@ CONFIG_SCSI_LOWLEVEL=y
461# CONFIG_MEGARAID_SAS is not set 479# CONFIG_MEGARAID_SAS is not set
462# CONFIG_SCSI_HPTIOP is not set 480# CONFIG_SCSI_HPTIOP is not set
463# CONFIG_SCSI_BUSLOGIC is not set 481# CONFIG_SCSI_BUSLOGIC is not set
482# CONFIG_LIBFC is not set
483# CONFIG_FCOE is not set
464# CONFIG_SCSI_DMX3191D is not set 484# CONFIG_SCSI_DMX3191D is not set
465# CONFIG_SCSI_EATA is not set 485# CONFIG_SCSI_EATA is not set
466# CONFIG_SCSI_FUTURE_DOMAIN is not set 486# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -580,6 +600,9 @@ CONFIG_LXT_PHY=y
580# CONFIG_BROADCOM_PHY is not set 600# CONFIG_BROADCOM_PHY is not set
581# CONFIG_ICPLUS_PHY is not set 601# CONFIG_ICPLUS_PHY is not set
582# CONFIG_REALTEK_PHY is not set 602# CONFIG_REALTEK_PHY is not set
603# CONFIG_NATIONAL_PHY is not set
604# CONFIG_STE10XP is not set
605# CONFIG_LSI_ET1011C_PHY is not set
583# CONFIG_FIXED_PHY is not set 606# CONFIG_FIXED_PHY is not set
584# CONFIG_MDIO_BITBANG is not set 607# CONFIG_MDIO_BITBANG is not set
585CONFIG_NET_ETHERNET=y 608CONFIG_NET_ETHERNET=y
@@ -626,6 +649,7 @@ CONFIG_NETDEV_1000=y
626# CONFIG_JME is not set 649# CONFIG_JME is not set
627CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
628# CONFIG_CHELSIO_T1 is not set 651# CONFIG_CHELSIO_T1 is not set
652CONFIG_CHELSIO_T3_DEPENDS=y
629# CONFIG_CHELSIO_T3 is not set 653# CONFIG_CHELSIO_T3 is not set
630# CONFIG_ENIC is not set 654# CONFIG_ENIC is not set
631# CONFIG_IXGBE is not set 655# CONFIG_IXGBE is not set
@@ -648,6 +672,10 @@ CONFIG_NETDEV_10000=y
648# CONFIG_WLAN_PRE80211 is not set 672# CONFIG_WLAN_PRE80211 is not set
649# CONFIG_WLAN_80211 is not set 673# CONFIG_WLAN_80211 is not set
650# CONFIG_IWLWIFI_LEDS is not set 674# CONFIG_IWLWIFI_LEDS is not set
675
676#
677# Enable WiMAX (Networking options) to see the WiMAX drivers
678#
651# CONFIG_WAN is not set 679# CONFIG_WAN is not set
652# CONFIG_FDDI is not set 680# CONFIG_FDDI is not set
653# CONFIG_HIPPI is not set 681# CONFIG_HIPPI is not set
@@ -695,8 +723,10 @@ CONFIG_SERIAL_MPC52xx_CONSOLE=y
695CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 723CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
696# CONFIG_SERIAL_JSM is not set 724# CONFIG_SERIAL_JSM is not set
697CONFIG_UNIX98_PTYS=y 725CONFIG_UNIX98_PTYS=y
726# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
698CONFIG_LEGACY_PTYS=y 727CONFIG_LEGACY_PTYS=y
699CONFIG_LEGACY_PTY_COUNT=256 728CONFIG_LEGACY_PTY_COUNT=256
729# CONFIG_HVC_UDBG is not set
700# CONFIG_IPMI_HANDLER is not set 730# CONFIG_IPMI_HANDLER is not set
701# CONFIG_HW_RANDOM is not set 731# CONFIG_HW_RANDOM is not set
702# CONFIG_NVRAM is not set 732# CONFIG_NVRAM is not set
@@ -762,8 +792,6 @@ CONFIG_I2C_MPC=y
762# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
763# 793#
764# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
765# CONFIG_AT24 is not set
766# CONFIG_SENSORS_EEPROM is not set
767# CONFIG_SENSORS_PCF8574 is not set 795# CONFIG_SENSORS_PCF8574 is not set
768# CONFIG_PCF8575 is not set 796# CONFIG_PCF8575 is not set
769# CONFIG_SENSORS_PCA9539 is not set 797# CONFIG_SENSORS_PCA9539 is not set
@@ -796,10 +824,12 @@ CONFIG_SSB_POSSIBLE=y
796# CONFIG_MFD_CORE is not set 824# CONFIG_MFD_CORE is not set
797# CONFIG_MFD_SM501 is not set 825# CONFIG_MFD_SM501 is not set
798# CONFIG_HTC_PASIC3 is not set 826# CONFIG_HTC_PASIC3 is not set
827# CONFIG_TWL4030_CORE is not set
799# CONFIG_MFD_TMIO is not set 828# CONFIG_MFD_TMIO is not set
800# CONFIG_PMIC_DA903X is not set 829# CONFIG_PMIC_DA903X is not set
801# CONFIG_MFD_WM8400 is not set 830# CONFIG_MFD_WM8400 is not set
802# CONFIG_MFD_WM8350_I2C is not set 831# CONFIG_MFD_WM8350_I2C is not set
832# CONFIG_MFD_PCF50633 is not set
803# CONFIG_REGULATOR is not set 833# CONFIG_REGULATOR is not set
804 834
805# 835#
@@ -846,9 +876,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
846# 876#
847 877
848# 878#
849# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 879# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
850# 880#
851# CONFIG_USB_GADGET is not set 881# CONFIG_USB_GADGET is not set
882
883#
884# OTG and related infrastructure
885#
852# CONFIG_UWB is not set 886# CONFIG_UWB is not set
853# CONFIG_MMC is not set 887# CONFIG_MMC is not set
854# CONFIG_MEMSTICK is not set 888# CONFIG_MEMSTICK is not set
@@ -860,7 +894,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y
860# CONFIG_DMADEVICES is not set 894# CONFIG_DMADEVICES is not set
861# CONFIG_UIO is not set 895# CONFIG_UIO is not set
862# CONFIG_STAGING is not set 896# CONFIG_STAGING is not set
863CONFIG_STAGING_EXCLUDE_BUILD=y
864 897
865# 898#
866# File systems 899# File systems
@@ -881,6 +914,7 @@ CONFIG_FS_MBCACHE=y
881CONFIG_FILE_LOCKING=y 914CONFIG_FILE_LOCKING=y
882# CONFIG_XFS_FS is not set 915# CONFIG_XFS_FS is not set
883# CONFIG_OCFS2_FS is not set 916# CONFIG_OCFS2_FS is not set
917# CONFIG_BTRFS_FS is not set
884CONFIG_DNOTIFY=y 918CONFIG_DNOTIFY=y
885CONFIG_INOTIFY=y 919CONFIG_INOTIFY=y
886CONFIG_INOTIFY_USER=y 920CONFIG_INOTIFY_USER=y
@@ -914,10 +948,7 @@ CONFIG_TMPFS=y
914# CONFIG_TMPFS_POSIX_ACL is not set 948# CONFIG_TMPFS_POSIX_ACL is not set
915# CONFIG_HUGETLB_PAGE is not set 949# CONFIG_HUGETLB_PAGE is not set
916# CONFIG_CONFIGFS_FS is not set 950# CONFIG_CONFIGFS_FS is not set
917 951CONFIG_MISC_FILESYSTEMS=y
918#
919# Miscellaneous filesystems
920#
921# CONFIG_ADFS_FS is not set 952# CONFIG_ADFS_FS is not set
922# CONFIG_AFFS_FS is not set 953# CONFIG_AFFS_FS is not set
923# CONFIG_HFS_FS is not set 954# CONFIG_HFS_FS is not set
@@ -926,6 +957,7 @@ CONFIG_TMPFS=y
926# CONFIG_BFS_FS is not set 957# CONFIG_BFS_FS is not set
927# CONFIG_EFS_FS is not set 958# CONFIG_EFS_FS is not set
928# CONFIG_CRAMFS is not set 959# CONFIG_CRAMFS is not set
960# CONFIG_SQUASHFS is not set
929# CONFIG_VXFS_FS is not set 961# CONFIG_VXFS_FS is not set
930# CONFIG_MINIX_FS is not set 962# CONFIG_MINIX_FS is not set
931# CONFIG_OMFS_FS is not set 963# CONFIG_OMFS_FS is not set
@@ -967,6 +999,7 @@ CONFIG_MSDOS_PARTITION=y
967# Library routines 999# Library routines
968# 1000#
969CONFIG_BITREVERSE=y 1001CONFIG_BITREVERSE=y
1002CONFIG_GENERIC_FIND_LAST_BIT=y
970# CONFIG_CRC_CCITT is not set 1003# CONFIG_CRC_CCITT is not set
971# CONFIG_CRC16 is not set 1004# CONFIG_CRC16 is not set
972# CONFIG_CRC_T10DIF is not set 1005# CONFIG_CRC_T10DIF is not set
@@ -1016,6 +1049,7 @@ CONFIG_DEBUG_INFO=y
1016# CONFIG_DEBUG_MEMORY_INIT is not set 1049# CONFIG_DEBUG_MEMORY_INIT is not set
1017# CONFIG_DEBUG_LIST is not set 1050# CONFIG_DEBUG_LIST is not set
1018# CONFIG_DEBUG_SG is not set 1051# CONFIG_DEBUG_SG is not set
1052# CONFIG_DEBUG_NOTIFIERS is not set
1019# CONFIG_BOOT_PRINTK_DELAY is not set 1053# CONFIG_BOOT_PRINTK_DELAY is not set
1020# CONFIG_RCU_TORTURE_TEST is not set 1054# CONFIG_RCU_TORTURE_TEST is not set
1021# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1055# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1024,6 +1058,8 @@ CONFIG_DEBUG_INFO=y
1024# CONFIG_FAULT_INJECTION is not set 1058# CONFIG_FAULT_INJECTION is not set
1025# CONFIG_LATENCYTOP is not set 1059# CONFIG_LATENCYTOP is not set
1026CONFIG_HAVE_FUNCTION_TRACER=y 1060CONFIG_HAVE_FUNCTION_TRACER=y
1061CONFIG_HAVE_DYNAMIC_FTRACE=y
1062CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1027 1063
1028# 1064#
1029# Tracers 1065# Tracers
@@ -1032,11 +1068,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1032# CONFIG_SCHED_TRACER is not set 1068# CONFIG_SCHED_TRACER is not set
1033# CONFIG_CONTEXT_SWITCH_TRACER is not set 1069# CONFIG_CONTEXT_SWITCH_TRACER is not set
1034# CONFIG_BOOT_TRACER is not set 1070# CONFIG_BOOT_TRACER is not set
1071# CONFIG_TRACE_BRANCH_PROFILING is not set
1035# CONFIG_STACK_TRACER is not set 1072# CONFIG_STACK_TRACER is not set
1036# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1037# CONFIG_SAMPLES is not set 1074# CONFIG_SAMPLES is not set
1038CONFIG_HAVE_ARCH_KGDB=y 1075CONFIG_HAVE_ARCH_KGDB=y
1039# CONFIG_KGDB is not set 1076# CONFIG_KGDB is not set
1077CONFIG_PRINT_STACK_DEPTH=64
1040# CONFIG_DEBUG_STACKOVERFLOW is not set 1078# CONFIG_DEBUG_STACKOVERFLOW is not set
1041# CONFIG_DEBUG_STACK_USAGE is not set 1079# CONFIG_DEBUG_STACK_USAGE is not set
1042# CONFIG_DEBUG_PAGEALLOC is not set 1080# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1063,11 +1101,15 @@ CONFIG_CRYPTO=y
1063# 1101#
1064# CONFIG_CRYPTO_FIPS is not set 1102# CONFIG_CRYPTO_FIPS is not set
1065CONFIG_CRYPTO_ALGAPI=y 1103CONFIG_CRYPTO_ALGAPI=y
1066CONFIG_CRYPTO_AEAD=y 1104CONFIG_CRYPTO_ALGAPI2=y
1105CONFIG_CRYPTO_AEAD2=y
1067CONFIG_CRYPTO_BLKCIPHER=y 1106CONFIG_CRYPTO_BLKCIPHER=y
1107CONFIG_CRYPTO_BLKCIPHER2=y
1068CONFIG_CRYPTO_HASH=y 1108CONFIG_CRYPTO_HASH=y
1069CONFIG_CRYPTO_RNG=y 1109CONFIG_CRYPTO_HASH2=y
1110CONFIG_CRYPTO_RNG2=y
1070CONFIG_CRYPTO_MANAGER=y 1111CONFIG_CRYPTO_MANAGER=y
1112CONFIG_CRYPTO_MANAGER2=y
1071# CONFIG_CRYPTO_GF128MUL is not set 1113# CONFIG_CRYPTO_GF128MUL is not set
1072# CONFIG_CRYPTO_NULL is not set 1114# CONFIG_CRYPTO_NULL is not set
1073# CONFIG_CRYPTO_CRYPTD is not set 1115# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig
index 3c0d4e561726..fb10f22fd0d2 100644
--- a/arch/powerpc/configs/52xx/motionpro_defconfig
+++ b/arch/powerpc/configs/52xx/motionpro_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:11:02 2008 4# Mon Jan 26 21:42:29 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -71,14 +71,23 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74
75#
76# RCU Subsystem
77#
78CONFIG_CLASSIC_RCU=y
79# CONFIG_TREE_RCU is not set
80# CONFIG_PREEMPT_RCU is not set
81# CONFIG_TREE_RCU_TRACE is not set
82# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 83# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 84CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 85CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 86CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 87# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 88CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 89# CONFIG_CGROUP_SCHED is not set
90# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 92CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
@@ -110,7 +119,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 119CONFIG_SLUB=y
111# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y 124CONFIG_HAVE_IOREMAP_PROT=y
@@ -121,13 +129,11 @@ CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
126# CONFIG_MODULES is not set 133# CONFIG_MODULES is not set
127CONFIG_BLOCK=y 134CONFIG_BLOCK=y
128# CONFIG_LBD is not set 135# CONFIG_LBD is not set
129# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
130# CONFIG_LSF is not set
131# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
133 139
@@ -143,7 +149,6 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
144# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
146CONFIG_CLASSIC_RCU=y
147# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
148 153
149# 154#
@@ -182,9 +187,9 @@ CONFIG_PPC_MPC5200_SIMPLE=y
182# CONFIG_TAU is not set 187# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
184CONFIG_PPC_BESTCOMM=y 189CONFIG_PPC_BESTCOMM=y
185# CONFIG_PPC_BESTCOMM_ATA is not set 190CONFIG_PPC_BESTCOMM_ATA=y
186CONFIG_PPC_BESTCOMM_FEC=y 191CONFIG_PPC_BESTCOMM_FEC=y
187# CONFIG_PPC_BESTCOMM_GEN_BD is not set 192# CONFIG_SIMPLE_GPIO is not set
188 193
189# 194#
190# Kernel options 195# Kernel options
@@ -211,6 +216,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 216CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
213# CONFIG_KEXEC is not set 218# CONFIG_KEXEC is not set
219# CONFIG_CRASH_DUMP is not set
214CONFIG_ARCH_FLATMEM_ENABLE=y 220CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 221CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_SELECT_MEMORY_MODEL=y 222CONFIG_SELECT_MEMORY_MODEL=y
@@ -222,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +276,7 @@ CONFIG_NET=y
268# 276#
269# Networking options 277# Networking options
270# 278#
279CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 280CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 281# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 282CONFIG_UNIX=y
@@ -324,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 333# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 334# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set
327 337
328# 338#
329# Network testing 339# Network testing
@@ -336,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_AF_RXRPC is not set 346# CONFIG_AF_RXRPC is not set
337# CONFIG_PHONET is not set 347# CONFIG_PHONET is not set
338# CONFIG_WIRELESS is not set 348# CONFIG_WIRELESS is not set
349# CONFIG_WIMAX is not set
339# CONFIG_RFKILL is not set 350# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set 351# CONFIG_NET_9P is not set
341 352
@@ -427,6 +438,12 @@ CONFIG_MTD_ROM=y
427# CONFIG_MTD_ONENAND is not set 438# CONFIG_MTD_ONENAND is not set
428 439
429# 440#
441# LPDDR flash memory drivers
442#
443# CONFIG_MTD_LPDDR is not set
444# CONFIG_MTD_QINFO_PROBE is not set
445
446#
430# UBI - Unsorted block images 447# UBI - Unsorted block images
431# 448#
432# CONFIG_MTD_UBI is not set 449# CONFIG_MTD_UBI is not set
@@ -447,10 +464,16 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
447# CONFIG_ATA_OVER_ETH is not set 464# CONFIG_ATA_OVER_ETH is not set
448# CONFIG_BLK_DEV_HD is not set 465# CONFIG_BLK_DEV_HD is not set
449CONFIG_MISC_DEVICES=y 466CONFIG_MISC_DEVICES=y
450# CONFIG_EEPROM_93CX6 is not set
451# CONFIG_ICS932S401 is not set 467# CONFIG_ICS932S401 is not set
452# CONFIG_ENCLOSURE_SERVICES is not set 468# CONFIG_ENCLOSURE_SERVICES is not set
453# CONFIG_C2PORT is not set 469# CONFIG_C2PORT is not set
470
471#
472# EEPROM support
473#
474# CONFIG_EEPROM_AT24 is not set
475CONFIG_EEPROM_LEGACY=y
476# CONFIG_EEPROM_93CX6 is not set
454CONFIG_HAVE_IDE=y 477CONFIG_HAVE_IDE=y
455# CONFIG_IDE is not set 478# CONFIG_IDE is not set
456 479
@@ -492,6 +515,7 @@ CONFIG_CHR_DEV_SG=y
492# CONFIG_SCSI_SRP_ATTRS is not set 515# CONFIG_SCSI_SRP_ATTRS is not set
493CONFIG_SCSI_LOWLEVEL=y 516CONFIG_SCSI_LOWLEVEL=y
494# CONFIG_ISCSI_TCP is not set 517# CONFIG_ISCSI_TCP is not set
518# CONFIG_LIBFC is not set
495# CONFIG_SCSI_DEBUG is not set 519# CONFIG_SCSI_DEBUG is not set
496# CONFIG_SCSI_DH is not set 520# CONFIG_SCSI_DH is not set
497CONFIG_ATA=y 521CONFIG_ATA=y
@@ -525,6 +549,9 @@ CONFIG_SMSC_PHY=y
525CONFIG_BROADCOM_PHY=y 549CONFIG_BROADCOM_PHY=y
526CONFIG_ICPLUS_PHY=y 550CONFIG_ICPLUS_PHY=y
527# CONFIG_REALTEK_PHY is not set 551# CONFIG_REALTEK_PHY is not set
552# CONFIG_NATIONAL_PHY is not set
553# CONFIG_STE10XP is not set
554# CONFIG_LSI_ET1011C_PHY is not set
528# CONFIG_FIXED_PHY is not set 555# CONFIG_FIXED_PHY is not set
529CONFIG_MDIO_BITBANG=y 556CONFIG_MDIO_BITBANG=y
530CONFIG_NET_ETHERNET=y 557CONFIG_NET_ETHERNET=y
@@ -548,6 +575,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
548# CONFIG_WLAN_PRE80211 is not set 575# CONFIG_WLAN_PRE80211 is not set
549# CONFIG_WLAN_80211 is not set 576# CONFIG_WLAN_80211 is not set
550# CONFIG_IWLWIFI_LEDS is not set 577# CONFIG_IWLWIFI_LEDS is not set
578
579#
580# Enable WiMAX (Networking options) to see the WiMAX drivers
581#
551# CONFIG_WAN is not set 582# CONFIG_WAN is not set
552# CONFIG_PPP is not set 583# CONFIG_PPP is not set
553# CONFIG_SLIP is not set 584# CONFIG_SLIP is not set
@@ -590,8 +621,10 @@ CONFIG_SERIAL_MPC52xx=y
590CONFIG_SERIAL_MPC52xx_CONSOLE=y 621CONFIG_SERIAL_MPC52xx_CONSOLE=y
591CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 622CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
592CONFIG_UNIX98_PTYS=y 623CONFIG_UNIX98_PTYS=y
624# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
593CONFIG_LEGACY_PTYS=y 625CONFIG_LEGACY_PTYS=y
594CONFIG_LEGACY_PTY_COUNT=256 626CONFIG_LEGACY_PTY_COUNT=256
627# CONFIG_HVC_UDBG is not set
595# CONFIG_IPMI_HANDLER is not set 628# CONFIG_IPMI_HANDLER is not set
596# CONFIG_HW_RANDOM is not set 629# CONFIG_HW_RANDOM is not set
597# CONFIG_NVRAM is not set 630# CONFIG_NVRAM is not set
@@ -629,8 +662,6 @@ CONFIG_I2C_MPC=y
629# Miscellaneous I2C Chip support 662# Miscellaneous I2C Chip support
630# 663#
631# CONFIG_DS1682 is not set 664# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set
633CONFIG_SENSORS_EEPROM=y
634# CONFIG_SENSORS_PCF8574 is not set 665# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 666# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 667# CONFIG_SENSORS_PCA9539 is not set
@@ -659,6 +690,7 @@ CONFIG_HWMON=y
659# CONFIG_SENSORS_ADT7462 is not set 690# CONFIG_SENSORS_ADT7462 is not set
660# CONFIG_SENSORS_ADT7470 is not set 691# CONFIG_SENSORS_ADT7470 is not set
661# CONFIG_SENSORS_ADT7473 is not set 692# CONFIG_SENSORS_ADT7473 is not set
693# CONFIG_SENSORS_ADT7475 is not set
662# CONFIG_SENSORS_ATXP1 is not set 694# CONFIG_SENSORS_ATXP1 is not set
663# CONFIG_SENSORS_DS1621 is not set 695# CONFIG_SENSORS_DS1621 is not set
664# CONFIG_SENSORS_F71805F is not set 696# CONFIG_SENSORS_F71805F is not set
@@ -678,6 +710,7 @@ CONFIG_HWMON=y
678# CONFIG_SENSORS_LM90 is not set 710# CONFIG_SENSORS_LM90 is not set
679# CONFIG_SENSORS_LM92 is not set 711# CONFIG_SENSORS_LM92 is not set
680# CONFIG_SENSORS_LM93 is not set 712# CONFIG_SENSORS_LM93 is not set
713# CONFIG_SENSORS_LTC4245 is not set
681# CONFIG_SENSORS_MAX1619 is not set 714# CONFIG_SENSORS_MAX1619 is not set
682# CONFIG_SENSORS_MAX6650 is not set 715# CONFIG_SENSORS_MAX6650 is not set
683# CONFIG_SENSORS_PC87360 is not set 716# CONFIG_SENSORS_PC87360 is not set
@@ -721,10 +754,12 @@ CONFIG_SSB_POSSIBLE=y
721# CONFIG_MFD_CORE is not set 754# CONFIG_MFD_CORE is not set
722# CONFIG_MFD_SM501 is not set 755# CONFIG_MFD_SM501 is not set
723# CONFIG_HTC_PASIC3 is not set 756# CONFIG_HTC_PASIC3 is not set
757# CONFIG_TWL4030_CORE is not set
724# CONFIG_MFD_TMIO is not set 758# CONFIG_MFD_TMIO is not set
725# CONFIG_PMIC_DA903X is not set 759# CONFIG_PMIC_DA903X is not set
726# CONFIG_MFD_WM8400 is not set 760# CONFIG_MFD_WM8400 is not set
727# CONFIG_MFD_WM8350_I2C is not set 761# CONFIG_MFD_WM8350_I2C is not set
762# CONFIG_MFD_PCF50633 is not set
728# CONFIG_REGULATOR is not set 763# CONFIG_REGULATOR is not set
729 764
730# 765#
@@ -835,7 +870,6 @@ CONFIG_RTC_DRV_DS1307=y
835# CONFIG_DMADEVICES is not set 870# CONFIG_DMADEVICES is not set
836# CONFIG_UIO is not set 871# CONFIG_UIO is not set
837# CONFIG_STAGING is not set 872# CONFIG_STAGING is not set
838CONFIG_STAGING_EXCLUDE_BUILD=y
839 873
840# 874#
841# File systems 875# File systems
@@ -856,6 +890,7 @@ CONFIG_FS_MBCACHE=y
856CONFIG_FILE_LOCKING=y 890CONFIG_FILE_LOCKING=y
857# CONFIG_XFS_FS is not set 891# CONFIG_XFS_FS is not set
858# CONFIG_OCFS2_FS is not set 892# CONFIG_OCFS2_FS is not set
893# CONFIG_BTRFS_FS is not set
859CONFIG_DNOTIFY=y 894CONFIG_DNOTIFY=y
860CONFIG_INOTIFY=y 895CONFIG_INOTIFY=y
861CONFIG_INOTIFY_USER=y 896CONFIG_INOTIFY_USER=y
@@ -892,10 +927,7 @@ CONFIG_TMPFS=y
892# CONFIG_TMPFS_POSIX_ACL is not set 927# CONFIG_TMPFS_POSIX_ACL is not set
893# CONFIG_HUGETLB_PAGE is not set 928# CONFIG_HUGETLB_PAGE is not set
894# CONFIG_CONFIGFS_FS is not set 929# CONFIG_CONFIGFS_FS is not set
895 930CONFIG_MISC_FILESYSTEMS=y
896#
897# Miscellaneous filesystems
898#
899# CONFIG_ADFS_FS is not set 931# CONFIG_ADFS_FS is not set
900# CONFIG_AFFS_FS is not set 932# CONFIG_AFFS_FS is not set
901# CONFIG_HFS_FS is not set 933# CONFIG_HFS_FS is not set
@@ -915,6 +947,7 @@ CONFIG_JFFS2_ZLIB=y
915CONFIG_JFFS2_RTIME=y 947CONFIG_JFFS2_RTIME=y
916# CONFIG_JFFS2_RUBIN is not set 948# CONFIG_JFFS2_RUBIN is not set
917CONFIG_CRAMFS=y 949CONFIG_CRAMFS=y
950# CONFIG_SQUASHFS is not set
918# CONFIG_VXFS_FS is not set 951# CONFIG_VXFS_FS is not set
919# CONFIG_MINIX_FS is not set 952# CONFIG_MINIX_FS is not set
920# CONFIG_OMFS_FS is not set 953# CONFIG_OMFS_FS is not set
@@ -1011,6 +1044,7 @@ CONFIG_NLS_ISO8859_1=y
1011# Library routines 1044# Library routines
1012# 1045#
1013CONFIG_BITREVERSE=y 1046CONFIG_BITREVERSE=y
1047CONFIG_GENERIC_FIND_LAST_BIT=y
1014# CONFIG_CRC_CCITT is not set 1048# CONFIG_CRC_CCITT is not set
1015# CONFIG_CRC16 is not set 1049# CONFIG_CRC16 is not set
1016# CONFIG_CRC_T10DIF is not set 1050# CONFIG_CRC_T10DIF is not set
@@ -1062,6 +1096,7 @@ CONFIG_DEBUG_INFO=y
1062# CONFIG_DEBUG_MEMORY_INIT is not set 1096# CONFIG_DEBUG_MEMORY_INIT is not set
1063# CONFIG_DEBUG_LIST is not set 1097# CONFIG_DEBUG_LIST is not set
1064# CONFIG_DEBUG_SG is not set 1098# CONFIG_DEBUG_SG is not set
1099# CONFIG_DEBUG_NOTIFIERS is not set
1065# CONFIG_BOOT_PRINTK_DELAY is not set 1100# CONFIG_BOOT_PRINTK_DELAY is not set
1066# CONFIG_RCU_TORTURE_TEST is not set 1101# CONFIG_RCU_TORTURE_TEST is not set
1067# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1102# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1070,6 +1105,8 @@ CONFIG_DEBUG_INFO=y
1070# CONFIG_FAULT_INJECTION is not set 1105# CONFIG_FAULT_INJECTION is not set
1071# CONFIG_LATENCYTOP is not set 1106# CONFIG_LATENCYTOP is not set
1072CONFIG_HAVE_FUNCTION_TRACER=y 1107CONFIG_HAVE_FUNCTION_TRACER=y
1108CONFIG_HAVE_DYNAMIC_FTRACE=y
1109CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1073 1110
1074# 1111#
1075# Tracers 1112# Tracers
@@ -1078,11 +1115,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1078# CONFIG_SCHED_TRACER is not set 1115# CONFIG_SCHED_TRACER is not set
1079# CONFIG_CONTEXT_SWITCH_TRACER is not set 1116# CONFIG_CONTEXT_SWITCH_TRACER is not set
1080# CONFIG_BOOT_TRACER is not set 1117# CONFIG_BOOT_TRACER is not set
1118# CONFIG_TRACE_BRANCH_PROFILING is not set
1081# CONFIG_STACK_TRACER is not set 1119# CONFIG_STACK_TRACER is not set
1082# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1120# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1083# CONFIG_SAMPLES is not set 1121# CONFIG_SAMPLES is not set
1084CONFIG_HAVE_ARCH_KGDB=y 1122CONFIG_HAVE_ARCH_KGDB=y
1085# CONFIG_KGDB is not set 1123# CONFIG_KGDB is not set
1124CONFIG_PRINT_STACK_DEPTH=64
1086# CONFIG_DEBUG_STACKOVERFLOW is not set 1125# CONFIG_DEBUG_STACKOVERFLOW is not set
1087# CONFIG_DEBUG_STACK_USAGE is not set 1126# CONFIG_DEBUG_STACK_USAGE is not set
1088# CONFIG_DEBUG_PAGEALLOC is not set 1127# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1109,11 +1148,15 @@ CONFIG_CRYPTO=y
1109# 1148#
1110# CONFIG_CRYPTO_FIPS is not set 1149# CONFIG_CRYPTO_FIPS is not set
1111CONFIG_CRYPTO_ALGAPI=y 1150CONFIG_CRYPTO_ALGAPI=y
1112CONFIG_CRYPTO_AEAD=y 1151CONFIG_CRYPTO_ALGAPI2=y
1152CONFIG_CRYPTO_AEAD2=y
1113CONFIG_CRYPTO_BLKCIPHER=y 1153CONFIG_CRYPTO_BLKCIPHER=y
1154CONFIG_CRYPTO_BLKCIPHER2=y
1114CONFIG_CRYPTO_HASH=y 1155CONFIG_CRYPTO_HASH=y
1115CONFIG_CRYPTO_RNG=y 1156CONFIG_CRYPTO_HASH2=y
1157CONFIG_CRYPTO_RNG2=y
1116CONFIG_CRYPTO_MANAGER=y 1158CONFIG_CRYPTO_MANAGER=y
1159CONFIG_CRYPTO_MANAGER2=y
1117# CONFIG_CRYPTO_GF128MUL is not set 1160# CONFIG_CRYPTO_GF128MUL is not set
1118# CONFIG_CRYPTO_NULL is not set 1161# CONFIG_CRYPTO_NULL is not set
1119# CONFIG_CRYPTO_CRYPTD is not set 1162# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig
index 9d0207783d60..00944c09a0ae 100644
--- a/arch/powerpc/configs/52xx/pcm030_defconfig
+++ b/arch/powerpc/configs/52xx/pcm030_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:13:16 2008 4# Mon Jan 26 21:41:33 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -72,15 +72,24 @@ CONFIG_POSIX_MQUEUE=y
72# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
75
76#
77# RCU Subsystem
78#
79CONFIG_CLASSIC_RCU=y
80# CONFIG_TREE_RCU is not set
81# CONFIG_PREEMPT_RCU is not set
82# CONFIG_TREE_RCU_TRACE is not set
83# CONFIG_PREEMPT_RCU_TRACE is not set
75CONFIG_IKCONFIG=y 84CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 85CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 86CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 87CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 88CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 89# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 90CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 91# CONFIG_CGROUP_SCHED is not set
92# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 93CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 94CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 95# CONFIG_RELAY is not set
@@ -112,7 +121,6 @@ CONFIG_SLAB=y
112# CONFIG_SLUB is not set 121# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 125# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +132,6 @@ CONFIG_HAVE_CLK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 135CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 136CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 137# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +139,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 139# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 140# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 141# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 142CONFIG_BLOCK=y
137# CONFIG_LBD is not set 143# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 146# CONFIG_BLK_DEV_INTEGRITY is not set
142 147
@@ -152,7 +157,6 @@ CONFIG_IOSCHED_NOOP=y
152# CONFIG_DEFAULT_CFQ is not set 157# CONFIG_DEFAULT_CFQ is not set
153CONFIG_DEFAULT_NOOP=y 158CONFIG_DEFAULT_NOOP=y
154CONFIG_DEFAULT_IOSCHED="noop" 159CONFIG_DEFAULT_IOSCHED="noop"
155CONFIG_CLASSIC_RCU=y
156# CONFIG_FREEZER is not set 160# CONFIG_FREEZER is not set
157 161
158# 162#
@@ -191,9 +195,9 @@ CONFIG_PPC_MPC5200_SIMPLE=y
191# CONFIG_TAU is not set 195# CONFIG_TAU is not set
192# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
193CONFIG_PPC_BESTCOMM=y 197CONFIG_PPC_BESTCOMM=y
194CONFIG_PPC_BESTCOMM_ATA=y 198CONFIG_PPC_BESTCOMM_ATA=m
195CONFIG_PPC_BESTCOMM_FEC=y 199CONFIG_PPC_BESTCOMM_FEC=y
196CONFIG_PPC_BESTCOMM_GEN_BD=y 200# CONFIG_SIMPLE_GPIO is not set
197 201
198# 202#
199# Kernel options 203# Kernel options
@@ -212,7 +216,6 @@ CONFIG_SCHED_HRTICK=y
212# CONFIG_PREEMPT_NONE is not set 216# CONFIG_PREEMPT_NONE is not set
213# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
214CONFIG_PREEMPT=y 218CONFIG_PREEMPT=y
215# CONFIG_PREEMPT_RCU is not set
216CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
217# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
218# CONFIG_HAVE_AOUT is not set 221# CONFIG_HAVE_AOUT is not set
@@ -222,6 +225,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
222CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
223CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
224# CONFIG_KEXEC is not set 227# CONFIG_KEXEC is not set
228# CONFIG_CRASH_DUMP is not set
225CONFIG_ARCH_FLATMEM_ENABLE=y 229CONFIG_ARCH_FLATMEM_ENABLE=y
226CONFIG_ARCH_POPULATES_NODE_MAP=y 230CONFIG_ARCH_POPULATES_NODE_MAP=y
227CONFIG_SELECT_MEMORY_MODEL=y 231CONFIG_SELECT_MEMORY_MODEL=y
@@ -233,12 +237,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
233CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
234CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
235CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set 240# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y 244CONFIG_UNEVICTABLE_LRU=y
245CONFIG_PPC_4K_PAGES=y
246# CONFIG_PPC_16K_PAGES is not set
247# CONFIG_PPC_64K_PAGES is not set
242CONFIG_FORCE_MAX_ZONEORDER=11 248CONFIG_FORCE_MAX_ZONEORDER=11
243CONFIG_PROC_DEVICETREE=y 249CONFIG_PROC_DEVICETREE=y
244# CONFIG_CMDLINE_BOOL is not set 250# CONFIG_CMDLINE_BOOL is not set
@@ -261,6 +267,7 @@ CONFIG_PCI_SYSCALL=y
261CONFIG_ARCH_SUPPORTS_MSI=y 267CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
263CONFIG_PCI_LEGACY=y 269CONFIG_PCI_LEGACY=y
270# CONFIG_PCI_STUB is not set
264# CONFIG_PCCARD is not set 271# CONFIG_PCCARD is not set
265# CONFIG_HOTPLUG_PCI is not set 272# CONFIG_HOTPLUG_PCI is not set
266# CONFIG_HAS_RAPIDIO is not set 273# CONFIG_HAS_RAPIDIO is not set
@@ -283,6 +290,7 @@ CONFIG_NET=y
283# 290#
284# Networking options 291# Networking options
285# 292#
293CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 294CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 295# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 296CONFIG_UNIX=y
@@ -333,6 +341,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_ECONET is not set 341# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 342# CONFIG_WAN_ROUTER is not set
335# CONFIG_NET_SCHED is not set 343# CONFIG_NET_SCHED is not set
344# CONFIG_DCB is not set
336 345
337# 346#
338# Network testing 347# Network testing
@@ -345,6 +354,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_AF_RXRPC is not set 354# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set 355# CONFIG_PHONET is not set
347# CONFIG_WIRELESS is not set 356# CONFIG_WIRELESS is not set
357# CONFIG_WIMAX is not set
348# CONFIG_RFKILL is not set 358# CONFIG_RFKILL is not set
349# CONFIG_NET_9P is not set 359# CONFIG_NET_9P is not set
350 360
@@ -365,6 +375,7 @@ CONFIG_MTD=y
365# CONFIG_MTD_DEBUG is not set 375# CONFIG_MTD_DEBUG is not set
366# CONFIG_MTD_CONCAT is not set 376# CONFIG_MTD_CONCAT is not set
367CONFIG_MTD_PARTITIONS=y 377CONFIG_MTD_PARTITIONS=y
378# CONFIG_MTD_TESTS is not set
368# CONFIG_MTD_REDBOOT_PARTS is not set 379# CONFIG_MTD_REDBOOT_PARTS is not set
369CONFIG_MTD_CMDLINE_PARTS=y 380CONFIG_MTD_CMDLINE_PARTS=y
370# CONFIG_MTD_OF_PARTS is not set 381# CONFIG_MTD_OF_PARTS is not set
@@ -413,9 +424,7 @@ CONFIG_MTD_CFI_UTIL=y
413# 424#
414# CONFIG_MTD_COMPLEX_MAPPINGS is not set 425# CONFIG_MTD_COMPLEX_MAPPINGS is not set
415CONFIG_MTD_PHYSMAP=y 426CONFIG_MTD_PHYSMAP=y
416CONFIG_MTD_PHYSMAP_START=0x0 427# CONFIG_MTD_PHYSMAP_COMPAT is not set
417CONFIG_MTD_PHYSMAP_LEN=0x0
418CONFIG_MTD_PHYSMAP_BANKWIDTH=1
419# CONFIG_MTD_PHYSMAP_OF is not set 428# CONFIG_MTD_PHYSMAP_OF is not set
420# CONFIG_MTD_INTEL_VR_NOR is not set 429# CONFIG_MTD_INTEL_VR_NOR is not set
421# CONFIG_MTD_PLATRAM is not set 430# CONFIG_MTD_PLATRAM is not set
@@ -439,6 +448,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
439# CONFIG_MTD_ONENAND is not set 448# CONFIG_MTD_ONENAND is not set
440 449
441# 450#
451# LPDDR flash memory drivers
452#
453# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455
456#
442# UBI - Unsorted block images 457# UBI - Unsorted block images
443# 458#
444# CONFIG_MTD_UBI is not set 459# CONFIG_MTD_UBI is not set
@@ -587,6 +602,9 @@ CONFIG_PHYLIB=y
587# CONFIG_BROADCOM_PHY is not set 602# CONFIG_BROADCOM_PHY is not set
588# CONFIG_ICPLUS_PHY is not set 603# CONFIG_ICPLUS_PHY is not set
589# CONFIG_REALTEK_PHY is not set 604# CONFIG_REALTEK_PHY is not set
605# CONFIG_NATIONAL_PHY is not set
606# CONFIG_STE10XP is not set
607# CONFIG_LSI_ET1011C_PHY is not set
590# CONFIG_FIXED_PHY is not set 608# CONFIG_FIXED_PHY is not set
591# CONFIG_MDIO_BITBANG is not set 609# CONFIG_MDIO_BITBANG is not set
592CONFIG_NET_ETHERNET=y 610CONFIG_NET_ETHERNET=y
@@ -621,6 +639,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
621# CONFIG_IWLWIFI_LEDS is not set 639# CONFIG_IWLWIFI_LEDS is not set
622 640
623# 641#
642# Enable WiMAX (Networking options) to see the WiMAX drivers
643#
644
645#
624# USB Network Adapters 646# USB Network Adapters
625# 647#
626# CONFIG_USB_CATC is not set 648# CONFIG_USB_CATC is not set
@@ -675,7 +697,9 @@ CONFIG_SERIAL_MPC52xx_CONSOLE=y
675CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=9600 697CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=9600
676# CONFIG_SERIAL_JSM is not set 698# CONFIG_SERIAL_JSM is not set
677CONFIG_UNIX98_PTYS=y 699CONFIG_UNIX98_PTYS=y
700# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
678# CONFIG_LEGACY_PTYS is not set 701# CONFIG_LEGACY_PTYS is not set
702# CONFIG_HVC_UDBG is not set
679# CONFIG_IPMI_HANDLER is not set 703# CONFIG_IPMI_HANDLER is not set
680CONFIG_HW_RANDOM=y 704CONFIG_HW_RANDOM=y
681# CONFIG_NVRAM is not set 705# CONFIG_NVRAM is not set
@@ -740,8 +764,6 @@ CONFIG_I2C_MPC=y
740# Miscellaneous I2C Chip support 764# Miscellaneous I2C Chip support
741# 765#
742# CONFIG_DS1682 is not set 766# CONFIG_DS1682 is not set
743# CONFIG_AT24 is not set
744CONFIG_SENSORS_EEPROM=m
745# CONFIG_SENSORS_PCF8574 is not set 767# CONFIG_SENSORS_PCF8574 is not set
746# CONFIG_PCF8575 is not set 768# CONFIG_PCF8575 is not set
747# CONFIG_SENSORS_PCA9539 is not set 769# CONFIG_SENSORS_PCA9539 is not set
@@ -774,10 +796,12 @@ CONFIG_SSB_POSSIBLE=y
774# CONFIG_MFD_CORE is not set 796# CONFIG_MFD_CORE is not set
775# CONFIG_MFD_SM501 is not set 797# CONFIG_MFD_SM501 is not set
776# CONFIG_HTC_PASIC3 is not set 798# CONFIG_HTC_PASIC3 is not set
799# CONFIG_TWL4030_CORE is not set
777# CONFIG_MFD_TMIO is not set 800# CONFIG_MFD_TMIO is not set
778# CONFIG_PMIC_DA903X is not set 801# CONFIG_PMIC_DA903X is not set
779# CONFIG_MFD_WM8400 is not set 802# CONFIG_MFD_WM8400 is not set
780# CONFIG_MFD_WM8350_I2C is not set 803# CONFIG_MFD_WM8350_I2C is not set
804# CONFIG_MFD_PCF50633 is not set
781# CONFIG_REGULATOR is not set 805# CONFIG_REGULATOR is not set
782 806
783# 807#
@@ -837,6 +861,7 @@ CONFIG_USB_DEVICEFS=y
837# 861#
838# CONFIG_USB_C67X00_HCD is not set 862# CONFIG_USB_C67X00_HCD is not set
839# CONFIG_USB_EHCI_HCD is not set 863# CONFIG_USB_EHCI_HCD is not set
864# CONFIG_USB_OXU210HP_HCD is not set
840# CONFIG_USB_ISP116X_HCD is not set 865# CONFIG_USB_ISP116X_HCD is not set
841# CONFIG_USB_ISP1760_HCD is not set 866# CONFIG_USB_ISP1760_HCD is not set
842CONFIG_USB_OHCI_HCD=m 867CONFIG_USB_OHCI_HCD=m
@@ -864,18 +889,17 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
864# CONFIG_USB_TMC is not set 889# CONFIG_USB_TMC is not set
865 890
866# 891#
867# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 892# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
868# 893#
869 894
870# 895#
871# may also be needed; see USB_STORAGE Help for more information 896# see USB_STORAGE Help for more information
872# 897#
873CONFIG_USB_STORAGE=m 898CONFIG_USB_STORAGE=m
874# CONFIG_USB_STORAGE_DEBUG is not set 899# CONFIG_USB_STORAGE_DEBUG is not set
875# CONFIG_USB_STORAGE_DATAFAB is not set 900# CONFIG_USB_STORAGE_DATAFAB is not set
876# CONFIG_USB_STORAGE_FREECOM is not set 901# CONFIG_USB_STORAGE_FREECOM is not set
877# CONFIG_USB_STORAGE_ISD200 is not set 902# CONFIG_USB_STORAGE_ISD200 is not set
878# CONFIG_USB_STORAGE_DPCM is not set
879# CONFIG_USB_STORAGE_USBAT is not set 903# CONFIG_USB_STORAGE_USBAT is not set
880# CONFIG_USB_STORAGE_SDDR09 is not set 904# CONFIG_USB_STORAGE_SDDR09 is not set
881# CONFIG_USB_STORAGE_SDDR55 is not set 905# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -921,6 +945,10 @@ CONFIG_USB_STORAGE=m
921# CONFIG_USB_ISIGHTFW is not set 945# CONFIG_USB_ISIGHTFW is not set
922# CONFIG_USB_VST is not set 946# CONFIG_USB_VST is not set
923# CONFIG_USB_GADGET is not set 947# CONFIG_USB_GADGET is not set
948
949#
950# OTG and related infrastructure
951#
924# CONFIG_UWB is not set 952# CONFIG_UWB is not set
925# CONFIG_MMC is not set 953# CONFIG_MMC is not set
926# CONFIG_MEMSTICK is not set 954# CONFIG_MEMSTICK is not set
@@ -983,7 +1011,6 @@ CONFIG_RTC_DRV_PCF8563=m
983# CONFIG_DMADEVICES is not set 1011# CONFIG_DMADEVICES is not set
984# CONFIG_UIO is not set 1012# CONFIG_UIO is not set
985# CONFIG_STAGING is not set 1013# CONFIG_STAGING is not set
986CONFIG_STAGING_EXCLUDE_BUILD=y
987 1014
988# 1015#
989# File systems 1016# File systems
@@ -1004,6 +1031,7 @@ CONFIG_FS_MBCACHE=m
1004CONFIG_FILE_LOCKING=y 1031CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1032# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1033# CONFIG_OCFS2_FS is not set
1034# CONFIG_BTRFS_FS is not set
1007# CONFIG_DNOTIFY is not set 1035# CONFIG_DNOTIFY is not set
1008# CONFIG_INOTIFY is not set 1036# CONFIG_INOTIFY is not set
1009# CONFIG_QUOTA is not set 1037# CONFIG_QUOTA is not set
@@ -1039,10 +1067,7 @@ CONFIG_TMPFS=y
1039# CONFIG_TMPFS_POSIX_ACL is not set 1067# CONFIG_TMPFS_POSIX_ACL is not set
1040# CONFIG_HUGETLB_PAGE is not set 1068# CONFIG_HUGETLB_PAGE is not set
1041# CONFIG_CONFIGFS_FS is not set 1069# CONFIG_CONFIGFS_FS is not set
1042 1070CONFIG_MISC_FILESYSTEMS=y
1043#
1044# Miscellaneous filesystems
1045#
1046# CONFIG_ADFS_FS is not set 1071# CONFIG_ADFS_FS is not set
1047# CONFIG_AFFS_FS is not set 1072# CONFIG_AFFS_FS is not set
1048# CONFIG_HFS_FS is not set 1073# CONFIG_HFS_FS is not set
@@ -1062,6 +1087,7 @@ CONFIG_JFFS2_ZLIB=y
1062CONFIG_JFFS2_RTIME=y 1087CONFIG_JFFS2_RTIME=y
1063# CONFIG_JFFS2_RUBIN is not set 1088# CONFIG_JFFS2_RUBIN is not set
1064# CONFIG_CRAMFS is not set 1089# CONFIG_CRAMFS is not set
1090# CONFIG_SQUASHFS is not set
1065# CONFIG_VXFS_FS is not set 1091# CONFIG_VXFS_FS is not set
1066# CONFIG_MINIX_FS is not set 1092# CONFIG_MINIX_FS is not set
1067# CONFIG_OMFS_FS is not set 1093# CONFIG_OMFS_FS is not set
@@ -1141,6 +1167,7 @@ CONFIG_NLS_ISO8859_1=y
1141# Library routines 1167# Library routines
1142# 1168#
1143CONFIG_BITREVERSE=y 1169CONFIG_BITREVERSE=y
1170CONFIG_GENERIC_FIND_LAST_BIT=y
1144# CONFIG_CRC_CCITT is not set 1171# CONFIG_CRC_CCITT is not set
1145# CONFIG_CRC16 is not set 1172# CONFIG_CRC16 is not set
1146# CONFIG_CRC_T10DIF is not set 1173# CONFIG_CRC_T10DIF is not set
@@ -1173,6 +1200,8 @@ CONFIG_FRAME_WARN=1024
1173# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1200# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1174# CONFIG_LATENCYTOP is not set 1201# CONFIG_LATENCYTOP is not set
1175CONFIG_HAVE_FUNCTION_TRACER=y 1202CONFIG_HAVE_FUNCTION_TRACER=y
1203CONFIG_HAVE_DYNAMIC_FTRACE=y
1204CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1176 1205
1177# 1206#
1178# Tracers 1207# Tracers
@@ -1180,6 +1209,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1180# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1209# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1181# CONFIG_SAMPLES is not set 1210# CONFIG_SAMPLES is not set
1182CONFIG_HAVE_ARCH_KGDB=y 1211CONFIG_HAVE_ARCH_KGDB=y
1212CONFIG_PRINT_STACK_DEPTH=64
1183# CONFIG_IRQSTACKS is not set 1213# CONFIG_IRQSTACKS is not set
1184# CONFIG_BOOTX_TEXT is not set 1214# CONFIG_BOOTX_TEXT is not set
1185# CONFIG_PPC_EARLY_DEBUG is not set 1215# CONFIG_PPC_EARLY_DEBUG is not set
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig
index bc190051e8d5..65237ad6f07e 100644
--- a/arch/powerpc/configs/52xx/tqm5200_defconfig
+++ b/arch/powerpc/configs/52xx/tqm5200_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:09:30 2008 4# Mon Jan 26 21:42:58 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -71,14 +71,23 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74
75#
76# RCU Subsystem
77#
78CONFIG_CLASSIC_RCU=y
79# CONFIG_TREE_RCU is not set
80# CONFIG_PREEMPT_RCU is not set
81# CONFIG_TREE_RCU_TRACE is not set
82# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 83# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 84CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 85CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 86CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 87# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 88CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 89# CONFIG_CGROUP_SCHED is not set
90# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 92CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
@@ -110,7 +119,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 119CONFIG_SLUB=y
111# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y 124CONFIG_HAVE_IOREMAP_PROT=y
@@ -121,7 +129,6 @@ CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
126CONFIG_MODULES=y 133CONFIG_MODULES=y
127# CONFIG_MODULE_FORCE_LOAD is not set 134# CONFIG_MODULE_FORCE_LOAD is not set
@@ -129,11 +136,9 @@ CONFIG_MODULE_UNLOAD=y
129# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
130CONFIG_MODVERSIONS=y 137CONFIG_MODVERSIONS=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_KMOD=y
133CONFIG_BLOCK=y 139CONFIG_BLOCK=y
134# CONFIG_LBD is not set 140# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set 141# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_LSF is not set
137# CONFIG_BLK_DEV_BSG is not set 142# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 143# CONFIG_BLK_DEV_INTEGRITY is not set
139 144
@@ -149,7 +154,6 @@ CONFIG_DEFAULT_AS=y
149# CONFIG_DEFAULT_CFQ is not set 154# CONFIG_DEFAULT_CFQ is not set
150# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y
153# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
154 158
155# 159#
@@ -188,9 +192,9 @@ CONFIG_PPC_MPC5200_BUGFIX=y
188# CONFIG_TAU is not set 192# CONFIG_TAU is not set
189# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
190CONFIG_PPC_BESTCOMM=y 194CONFIG_PPC_BESTCOMM=y
191# CONFIG_PPC_BESTCOMM_ATA is not set 195CONFIG_PPC_BESTCOMM_ATA=y
192CONFIG_PPC_BESTCOMM_FEC=y 196CONFIG_PPC_BESTCOMM_FEC=y
193# CONFIG_PPC_BESTCOMM_GEN_BD is not set 197# CONFIG_SIMPLE_GPIO is not set
194 198
195# 199#
196# Kernel options 200# Kernel options
@@ -217,6 +221,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y 221CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
219# CONFIG_KEXEC is not set 223# CONFIG_KEXEC is not set
224# CONFIG_CRASH_DUMP is not set
220CONFIG_ARCH_FLATMEM_ENABLE=y 225CONFIG_ARCH_FLATMEM_ENABLE=y
221CONFIG_ARCH_POPULATES_NODE_MAP=y 226CONFIG_ARCH_POPULATES_NODE_MAP=y
222CONFIG_SELECT_MEMORY_MODEL=y 227CONFIG_SELECT_MEMORY_MODEL=y
@@ -228,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set 236# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -274,6 +281,7 @@ CONFIG_NET=y
274# 281#
275# Networking options 282# Networking options
276# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
277CONFIG_PACKET=y 285CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 286# CONFIG_PACKET_MMAP is not set
279CONFIG_UNIX=y 287CONFIG_UNIX=y
@@ -330,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_ECONET is not set 338# CONFIG_ECONET is not set
331# CONFIG_WAN_ROUTER is not set 339# CONFIG_WAN_ROUTER is not set
332# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set
333 342
334# 343#
335# Network testing 344# Network testing
@@ -342,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_AF_RXRPC is not set 351# CONFIG_AF_RXRPC is not set
343# CONFIG_PHONET is not set 352# CONFIG_PHONET is not set
344# CONFIG_WIRELESS is not set 353# CONFIG_WIRELESS is not set
354# CONFIG_WIMAX is not set
345# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
346# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
347 357
@@ -364,6 +374,7 @@ CONFIG_MTD=y
364# CONFIG_MTD_DEBUG is not set 374# CONFIG_MTD_DEBUG is not set
365CONFIG_MTD_CONCAT=y 375CONFIG_MTD_CONCAT=y
366CONFIG_MTD_PARTITIONS=y 376CONFIG_MTD_PARTITIONS=y
377# CONFIG_MTD_TESTS is not set
367# CONFIG_MTD_REDBOOT_PARTS is not set 378# CONFIG_MTD_REDBOOT_PARTS is not set
368CONFIG_MTD_CMDLINE_PARTS=y 379CONFIG_MTD_CMDLINE_PARTS=y
369# CONFIG_MTD_OF_PARTS is not set 380# CONFIG_MTD_OF_PARTS is not set
@@ -433,6 +444,12 @@ CONFIG_MTD_PHYSMAP_OF=y
433# CONFIG_MTD_ONENAND is not set 444# CONFIG_MTD_ONENAND is not set
434 445
435# 446#
447# LPDDR flash memory drivers
448#
449# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451
452#
436# UBI - Unsorted block images 453# UBI - Unsorted block images
437# 454#
438# CONFIG_MTD_UBI is not set 455# CONFIG_MTD_UBI is not set
@@ -496,6 +513,7 @@ CONFIG_SCSI_WAIT_SCAN=m
496# CONFIG_SCSI_SRP_ATTRS is not set 513# CONFIG_SCSI_SRP_ATTRS is not set
497CONFIG_SCSI_LOWLEVEL=y 514CONFIG_SCSI_LOWLEVEL=y
498# CONFIG_ISCSI_TCP is not set 515# CONFIG_ISCSI_TCP is not set
516# CONFIG_LIBFC is not set
499# CONFIG_SCSI_DEBUG is not set 517# CONFIG_SCSI_DEBUG is not set
500# CONFIG_SCSI_DH is not set 518# CONFIG_SCSI_DH is not set
501CONFIG_ATA=y 519CONFIG_ATA=y
@@ -530,6 +548,9 @@ CONFIG_LXT_PHY=y
530# CONFIG_BROADCOM_PHY is not set 548# CONFIG_BROADCOM_PHY is not set
531# CONFIG_ICPLUS_PHY is not set 549# CONFIG_ICPLUS_PHY is not set
532# CONFIG_REALTEK_PHY is not set 550# CONFIG_REALTEK_PHY is not set
551# CONFIG_NATIONAL_PHY is not set
552# CONFIG_STE10XP is not set
553# CONFIG_LSI_ET1011C_PHY is not set
533# CONFIG_FIXED_PHY is not set 554# CONFIG_FIXED_PHY is not set
534# CONFIG_MDIO_BITBANG is not set 555# CONFIG_MDIO_BITBANG is not set
535CONFIG_NET_ETHERNET=y 556CONFIG_NET_ETHERNET=y
@@ -555,6 +576,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
555# CONFIG_IWLWIFI_LEDS is not set 576# CONFIG_IWLWIFI_LEDS is not set
556 577
557# 578#
579# Enable WiMAX (Networking options) to see the WiMAX drivers
580#
581
582#
558# USB Network Adapters 583# USB Network Adapters
559# 584#
560# CONFIG_USB_CATC is not set 585# CONFIG_USB_CATC is not set
@@ -604,8 +629,10 @@ CONFIG_SERIAL_MPC52xx=y
604CONFIG_SERIAL_MPC52xx_CONSOLE=y 629CONFIG_SERIAL_MPC52xx_CONSOLE=y
605CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 630CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
606CONFIG_UNIX98_PTYS=y 631CONFIG_UNIX98_PTYS=y
632# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
607CONFIG_LEGACY_PTYS=y 633CONFIG_LEGACY_PTYS=y
608CONFIG_LEGACY_PTY_COUNT=256 634CONFIG_LEGACY_PTY_COUNT=256
635# CONFIG_HVC_UDBG is not set
609# CONFIG_IPMI_HANDLER is not set 636# CONFIG_IPMI_HANDLER is not set
610# CONFIG_HW_RANDOM is not set 637# CONFIG_HW_RANDOM is not set
611# CONFIG_NVRAM is not set 638# CONFIG_NVRAM is not set
@@ -645,8 +672,6 @@ CONFIG_I2C_MPC=y
645# Miscellaneous I2C Chip support 672# Miscellaneous I2C Chip support
646# 673#
647# CONFIG_DS1682 is not set 674# CONFIG_DS1682 is not set
648# CONFIG_AT24 is not set
649# CONFIG_SENSORS_EEPROM is not set
650# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
651# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
652# CONFIG_SENSORS_PCA9539 is not set 677# CONFIG_SENSORS_PCA9539 is not set
@@ -675,6 +700,7 @@ CONFIG_HWMON=y
675# CONFIG_SENSORS_ADT7462 is not set 700# CONFIG_SENSORS_ADT7462 is not set
676# CONFIG_SENSORS_ADT7470 is not set 701# CONFIG_SENSORS_ADT7470 is not set
677# CONFIG_SENSORS_ADT7473 is not set 702# CONFIG_SENSORS_ADT7473 is not set
703# CONFIG_SENSORS_ADT7475 is not set
678# CONFIG_SENSORS_ATXP1 is not set 704# CONFIG_SENSORS_ATXP1 is not set
679# CONFIG_SENSORS_DS1621 is not set 705# CONFIG_SENSORS_DS1621 is not set
680# CONFIG_SENSORS_F71805F is not set 706# CONFIG_SENSORS_F71805F is not set
@@ -694,6 +720,7 @@ CONFIG_HWMON=y
694# CONFIG_SENSORS_LM90 is not set 720# CONFIG_SENSORS_LM90 is not set
695# CONFIG_SENSORS_LM92 is not set 721# CONFIG_SENSORS_LM92 is not set
696# CONFIG_SENSORS_LM93 is not set 722# CONFIG_SENSORS_LM93 is not set
723# CONFIG_SENSORS_LTC4245 is not set
697# CONFIG_SENSORS_MAX1619 is not set 724# CONFIG_SENSORS_MAX1619 is not set
698# CONFIG_SENSORS_MAX6650 is not set 725# CONFIG_SENSORS_MAX6650 is not set
699# CONFIG_SENSORS_PC87360 is not set 726# CONFIG_SENSORS_PC87360 is not set
@@ -742,10 +769,12 @@ CONFIG_SSB_POSSIBLE=y
742# CONFIG_MFD_CORE is not set 769# CONFIG_MFD_CORE is not set
743# CONFIG_MFD_SM501 is not set 770# CONFIG_MFD_SM501 is not set
744# CONFIG_HTC_PASIC3 is not set 771# CONFIG_HTC_PASIC3 is not set
772# CONFIG_TWL4030_CORE is not set
745# CONFIG_MFD_TMIO is not set 773# CONFIG_MFD_TMIO is not set
746# CONFIG_PMIC_DA903X is not set 774# CONFIG_PMIC_DA903X is not set
747# CONFIG_MFD_WM8400 is not set 775# CONFIG_MFD_WM8400 is not set
748# CONFIG_MFD_WM8350_I2C is not set 776# CONFIG_MFD_WM8350_I2C is not set
777# CONFIG_MFD_PCF50633 is not set
749# CONFIG_REGULATOR is not set 778# CONFIG_REGULATOR is not set
750 779
751# 780#
@@ -803,6 +832,7 @@ CONFIG_USB_MON=y
803# USB Host Controller Drivers 832# USB Host Controller Drivers
804# 833#
805# CONFIG_USB_C67X00_HCD is not set 834# CONFIG_USB_C67X00_HCD is not set
835# CONFIG_USB_OXU210HP_HCD is not set
806# CONFIG_USB_ISP116X_HCD is not set 836# CONFIG_USB_ISP116X_HCD is not set
807# CONFIG_USB_ISP1760_HCD is not set 837# CONFIG_USB_ISP1760_HCD is not set
808CONFIG_USB_OHCI_HCD=y 838CONFIG_USB_OHCI_HCD=y
@@ -827,18 +857,17 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
827# CONFIG_USB_TMC is not set 857# CONFIG_USB_TMC is not set
828 858
829# 859#
830# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 860# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
831# 861#
832 862
833# 863#
834# may also be needed; see USB_STORAGE Help for more information 864# see USB_STORAGE Help for more information
835# 865#
836CONFIG_USB_STORAGE=y 866CONFIG_USB_STORAGE=y
837# CONFIG_USB_STORAGE_DEBUG is not set 867# CONFIG_USB_STORAGE_DEBUG is not set
838# CONFIG_USB_STORAGE_DATAFAB is not set 868# CONFIG_USB_STORAGE_DATAFAB is not set
839# CONFIG_USB_STORAGE_FREECOM is not set 869# CONFIG_USB_STORAGE_FREECOM is not set
840# CONFIG_USB_STORAGE_ISD200 is not set 870# CONFIG_USB_STORAGE_ISD200 is not set
841# CONFIG_USB_STORAGE_DPCM is not set
842# CONFIG_USB_STORAGE_USBAT is not set 871# CONFIG_USB_STORAGE_USBAT is not set
843# CONFIG_USB_STORAGE_SDDR09 is not set 872# CONFIG_USB_STORAGE_SDDR09 is not set
844# CONFIG_USB_STORAGE_SDDR55 is not set 873# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -884,6 +913,10 @@ CONFIG_USB_STORAGE=y
884# CONFIG_USB_ISIGHTFW is not set 913# CONFIG_USB_ISIGHTFW is not set
885# CONFIG_USB_VST is not set 914# CONFIG_USB_VST is not set
886# CONFIG_USB_GADGET is not set 915# CONFIG_USB_GADGET is not set
916
917#
918# OTG and related infrastructure
919#
887# CONFIG_MMC is not set 920# CONFIG_MMC is not set
888# CONFIG_MEMSTICK is not set 921# CONFIG_MEMSTICK is not set
889# CONFIG_NEW_LEDS is not set 922# CONFIG_NEW_LEDS is not set
@@ -947,7 +980,6 @@ CONFIG_RTC_DRV_DS1307=y
947# CONFIG_DMADEVICES is not set 980# CONFIG_DMADEVICES is not set
948# CONFIG_UIO is not set 981# CONFIG_UIO is not set
949# CONFIG_STAGING is not set 982# CONFIG_STAGING is not set
950CONFIG_STAGING_EXCLUDE_BUILD=y
951 983
952# 984#
953# File systems 985# File systems
@@ -968,6 +1000,7 @@ CONFIG_FS_MBCACHE=y
968CONFIG_FILE_LOCKING=y 1000CONFIG_FILE_LOCKING=y
969# CONFIG_XFS_FS is not set 1001# CONFIG_XFS_FS is not set
970# CONFIG_OCFS2_FS is not set 1002# CONFIG_OCFS2_FS is not set
1003# CONFIG_BTRFS_FS is not set
971CONFIG_DNOTIFY=y 1004CONFIG_DNOTIFY=y
972CONFIG_INOTIFY=y 1005CONFIG_INOTIFY=y
973CONFIG_INOTIFY_USER=y 1006CONFIG_INOTIFY_USER=y
@@ -1004,10 +1037,7 @@ CONFIG_TMPFS=y
1004# CONFIG_TMPFS_POSIX_ACL is not set 1037# CONFIG_TMPFS_POSIX_ACL is not set
1005# CONFIG_HUGETLB_PAGE is not set 1038# CONFIG_HUGETLB_PAGE is not set
1006# CONFIG_CONFIGFS_FS is not set 1039# CONFIG_CONFIGFS_FS is not set
1007 1040CONFIG_MISC_FILESYSTEMS=y
1008#
1009# Miscellaneous filesystems
1010#
1011# CONFIG_ADFS_FS is not set 1041# CONFIG_ADFS_FS is not set
1012# CONFIG_AFFS_FS is not set 1042# CONFIG_AFFS_FS is not set
1013# CONFIG_HFS_FS is not set 1043# CONFIG_HFS_FS is not set
@@ -1027,6 +1057,7 @@ CONFIG_JFFS2_ZLIB=y
1027CONFIG_JFFS2_RTIME=y 1057CONFIG_JFFS2_RTIME=y
1028# CONFIG_JFFS2_RUBIN is not set 1058# CONFIG_JFFS2_RUBIN is not set
1029CONFIG_CRAMFS=y 1059CONFIG_CRAMFS=y
1060# CONFIG_SQUASHFS is not set
1030# CONFIG_VXFS_FS is not set 1061# CONFIG_VXFS_FS is not set
1031# CONFIG_MINIX_FS is not set 1062# CONFIG_MINIX_FS is not set
1032# CONFIG_OMFS_FS is not set 1063# CONFIG_OMFS_FS is not set
@@ -1123,6 +1154,7 @@ CONFIG_NLS_ISO8859_1=y
1123# Library routines 1154# Library routines
1124# 1155#
1125CONFIG_BITREVERSE=y 1156CONFIG_BITREVERSE=y
1157CONFIG_GENERIC_FIND_LAST_BIT=y
1126# CONFIG_CRC_CCITT is not set 1158# CONFIG_CRC_CCITT is not set
1127# CONFIG_CRC16 is not set 1159# CONFIG_CRC16 is not set
1128# CONFIG_CRC_T10DIF is not set 1160# CONFIG_CRC_T10DIF is not set
@@ -1174,6 +1206,7 @@ CONFIG_DEBUG_INFO=y
1174# CONFIG_DEBUG_MEMORY_INIT is not set 1206# CONFIG_DEBUG_MEMORY_INIT is not set
1175# CONFIG_DEBUG_LIST is not set 1207# CONFIG_DEBUG_LIST is not set
1176# CONFIG_DEBUG_SG is not set 1208# CONFIG_DEBUG_SG is not set
1209# CONFIG_DEBUG_NOTIFIERS is not set
1177# CONFIG_BOOT_PRINTK_DELAY is not set 1210# CONFIG_BOOT_PRINTK_DELAY is not set
1178# CONFIG_RCU_TORTURE_TEST is not set 1211# CONFIG_RCU_TORTURE_TEST is not set
1179# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1212# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1182,6 +1215,8 @@ CONFIG_DEBUG_INFO=y
1182# CONFIG_FAULT_INJECTION is not set 1215# CONFIG_FAULT_INJECTION is not set
1183# CONFIG_LATENCYTOP is not set 1216# CONFIG_LATENCYTOP is not set
1184CONFIG_HAVE_FUNCTION_TRACER=y 1217CONFIG_HAVE_FUNCTION_TRACER=y
1218CONFIG_HAVE_DYNAMIC_FTRACE=y
1219CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1185 1220
1186# 1221#
1187# Tracers 1222# Tracers
@@ -1190,11 +1225,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1190# CONFIG_SCHED_TRACER is not set 1225# CONFIG_SCHED_TRACER is not set
1191# CONFIG_CONTEXT_SWITCH_TRACER is not set 1226# CONFIG_CONTEXT_SWITCH_TRACER is not set
1192# CONFIG_BOOT_TRACER is not set 1227# CONFIG_BOOT_TRACER is not set
1228# CONFIG_TRACE_BRANCH_PROFILING is not set
1193# CONFIG_STACK_TRACER is not set 1229# CONFIG_STACK_TRACER is not set
1194# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1230# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1195# CONFIG_SAMPLES is not set 1231# CONFIG_SAMPLES is not set
1196CONFIG_HAVE_ARCH_KGDB=y 1232CONFIG_HAVE_ARCH_KGDB=y
1197# CONFIG_KGDB is not set 1233# CONFIG_KGDB is not set
1234CONFIG_PRINT_STACK_DEPTH=64
1198# CONFIG_DEBUG_STACKOVERFLOW is not set 1235# CONFIG_DEBUG_STACKOVERFLOW is not set
1199# CONFIG_DEBUG_STACK_USAGE is not set 1236# CONFIG_DEBUG_STACK_USAGE is not set
1200# CONFIG_DEBUG_PAGEALLOC is not set 1237# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1221,11 +1258,15 @@ CONFIG_CRYPTO=y
1221# 1258#
1222# CONFIG_CRYPTO_FIPS is not set 1259# CONFIG_CRYPTO_FIPS is not set
1223CONFIG_CRYPTO_ALGAPI=y 1260CONFIG_CRYPTO_ALGAPI=y
1224CONFIG_CRYPTO_AEAD=y 1261CONFIG_CRYPTO_ALGAPI2=y
1262CONFIG_CRYPTO_AEAD2=y
1225CONFIG_CRYPTO_BLKCIPHER=y 1263CONFIG_CRYPTO_BLKCIPHER=y
1264CONFIG_CRYPTO_BLKCIPHER2=y
1226CONFIG_CRYPTO_HASH=y 1265CONFIG_CRYPTO_HASH=y
1227CONFIG_CRYPTO_RNG=y 1266CONFIG_CRYPTO_HASH2=y
1267CONFIG_CRYPTO_RNG2=y
1228CONFIG_CRYPTO_MANAGER=y 1268CONFIG_CRYPTO_MANAGER=y
1269CONFIG_CRYPTO_MANAGER2=y
1229# CONFIG_CRYPTO_GF128MUL is not set 1270# CONFIG_CRYPTO_GF128MUL is not set
1230# CONFIG_CRYPTO_NULL is not set 1271# CONFIG_CRYPTO_NULL is not set
1231# CONFIG_CRYPTO_CRYPTD is not set 1272# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index cbecaf3d7906..fc4a39a40e72 100644
--- a/arch/powerpc/configs/83xx/asp8347_defconfig
+++ b/arch/powerpc/configs/83xx/asp8347_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:49 2008 4# Mon Jan 26 15:35:47 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -76,12 +76,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
81# CONFIG_FAIR_GROUP_SCHED is not set 80# CONFIG_FAIR_GROUP_SCHED is not set
82# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -114,7 +114,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 114CONFIG_SLUB=y
115# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 119CONFIG_HAVE_IOREMAP_PROT=y
@@ -124,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 127CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 133CONFIG_BLOCK=y
137# CONFIG_LBD is not set 134# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
142 138
@@ -153,6 +149,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
157 157
158# 158#
@@ -199,6 +199,8 @@ CONFIG_IPIC=y
199# CONFIG_QUICC_ENGINE is not set 199# CONFIG_QUICC_ENGINE is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set 201# CONFIG_MPC8xxx_GPIO is not set
202# CONFIG_SIMPLE_GPIO is not set
203# CONFIG_MCU_MPC8349EMITX is not set
202 204
203# 205#
204# Kernel options 206# Kernel options
@@ -226,6 +228,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 228CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
231# CONFIG_CRASH_DUMP is not set
229CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
231CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -237,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_PCI_SYSCALL=y
267CONFIG_ARCH_SUPPORTS_MSI=y 272CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -382,6 +391,7 @@ CONFIG_MTD=y
382# CONFIG_MTD_DEBUG is not set 391# CONFIG_MTD_DEBUG is not set
383# CONFIG_MTD_CONCAT is not set 392# CONFIG_MTD_CONCAT is not set
384CONFIG_MTD_PARTITIONS=y 393CONFIG_MTD_PARTITIONS=y
394# CONFIG_MTD_TESTS is not set
385CONFIG_MTD_REDBOOT_PARTS=y 395CONFIG_MTD_REDBOOT_PARTS=y
386CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 396CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
387CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y 397CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
@@ -456,6 +466,12 @@ CONFIG_MTD_PHYSMAP_OF=y
456# CONFIG_MTD_ONENAND is not set 466# CONFIG_MTD_ONENAND is not set
457 467
458# 468#
469# LPDDR flash memory drivers
470#
471# CONFIG_MTD_LPDDR is not set
472# CONFIG_MTD_QINFO_PROBE is not set
473
474#
459# UBI - Unsorted block images 475# UBI - Unsorted block images
460# 476#
461# CONFIG_MTD_UBI is not set 477# CONFIG_MTD_UBI is not set
@@ -486,8 +502,10 @@ CONFIG_MISC_DEVICES=y
486# CONFIG_EEPROM_93CX6 is not set 502# CONFIG_EEPROM_93CX6 is not set
487# CONFIG_SGI_IOC4 is not set 503# CONFIG_SGI_IOC4 is not set
488# CONFIG_TIFM_CORE is not set 504# CONFIG_TIFM_CORE is not set
505# CONFIG_ICS932S401 is not set
489# CONFIG_ENCLOSURE_SERVICES is not set 506# CONFIG_ENCLOSURE_SERVICES is not set
490# CONFIG_HP_ILO is not set 507# CONFIG_HP_ILO is not set
508# CONFIG_C2PORT is not set
491CONFIG_HAVE_IDE=y 509CONFIG_HAVE_IDE=y
492# CONFIG_IDE is not set 510# CONFIG_IDE is not set
493 511
@@ -536,6 +554,9 @@ CONFIG_PHYLIB=y
536# CONFIG_BROADCOM_PHY is not set 554# CONFIG_BROADCOM_PHY is not set
537# CONFIG_ICPLUS_PHY is not set 555# CONFIG_ICPLUS_PHY is not set
538# CONFIG_REALTEK_PHY is not set 556# CONFIG_REALTEK_PHY is not set
557# CONFIG_NATIONAL_PHY is not set
558# CONFIG_STE10XP is not set
559# CONFIG_LSI_ET1011C_PHY is not set
539# CONFIG_FIXED_PHY is not set 560# CONFIG_FIXED_PHY is not set
540# CONFIG_MDIO_BITBANG is not set 561# CONFIG_MDIO_BITBANG is not set
541CONFIG_NET_ETHERNET=y 562CONFIG_NET_ETHERNET=y
@@ -590,6 +611,10 @@ CONFIG_GIANFAR=y
590# CONFIG_IWLWIFI_LEDS is not set 611# CONFIG_IWLWIFI_LEDS is not set
591 612
592# 613#
614# Enable WiMAX (Networking options) to see the WiMAX drivers
615#
616
617#
593# USB Network Adapters 618# USB Network Adapters
594# 619#
595# CONFIG_USB_CATC is not set 620# CONFIG_USB_CATC is not set
@@ -666,8 +691,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
666# CONFIG_SERIAL_JSM is not set 691# CONFIG_SERIAL_JSM is not set
667# CONFIG_SERIAL_OF_PLATFORM is not set 692# CONFIG_SERIAL_OF_PLATFORM is not set
668CONFIG_UNIX98_PTYS=y 693CONFIG_UNIX98_PTYS=y
694# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
669CONFIG_LEGACY_PTYS=y 695CONFIG_LEGACY_PTYS=y
670CONFIG_LEGACY_PTY_COUNT=256 696CONFIG_LEGACY_PTY_COUNT=256
697# CONFIG_HVC_UDBG is not set
671# CONFIG_IPMI_HANDLER is not set 698# CONFIG_IPMI_HANDLER is not set
672# CONFIG_HW_RANDOM is not set 699# CONFIG_HW_RANDOM is not set
673# CONFIG_NVRAM is not set 700# CONFIG_NVRAM is not set
@@ -732,15 +759,14 @@ CONFIG_I2C_MPC=y
732# Miscellaneous I2C Chip support 759# Miscellaneous I2C Chip support
733# 760#
734# CONFIG_DS1682 is not set 761# CONFIG_DS1682 is not set
735# CONFIG_AT24 is not set 762# CONFIG_EEPROM_AT24 is not set
736# CONFIG_SENSORS_EEPROM is not set 763# CONFIG_EEPROM_LEGACY is not set
737# CONFIG_SENSORS_PCF8574 is not set 764# CONFIG_SENSORS_PCF8574 is not set
738# CONFIG_PCF8575 is not set 765# CONFIG_PCF8575 is not set
739# CONFIG_SENSORS_PCA9539 is not set 766# CONFIG_SENSORS_PCA9539 is not set
740# CONFIG_SENSORS_PCF8591 is not set 767# CONFIG_SENSORS_PCF8591 is not set
741# CONFIG_SENSORS_MAX6875 is not set 768# CONFIG_SENSORS_MAX6875 is not set
742# CONFIG_SENSORS_TSL2550 is not set 769# CONFIG_SENSORS_TSL2550 is not set
743# CONFIG_MCU_MPC8349EMITX is not set
744# CONFIG_I2C_DEBUG_CORE is not set 770# CONFIG_I2C_DEBUG_CORE is not set
745# CONFIG_I2C_DEBUG_ALGO is not set 771# CONFIG_I2C_DEBUG_ALGO is not set
746# CONFIG_I2C_DEBUG_BUS is not set 772# CONFIG_I2C_DEBUG_BUS is not set
@@ -760,8 +786,10 @@ CONFIG_HWMON=y
760# CONFIG_SENSORS_ADM1029 is not set 786# CONFIG_SENSORS_ADM1029 is not set
761# CONFIG_SENSORS_ADM1031 is not set 787# CONFIG_SENSORS_ADM1031 is not set
762# CONFIG_SENSORS_ADM9240 is not set 788# CONFIG_SENSORS_ADM9240 is not set
789# CONFIG_SENSORS_ADT7462 is not set
763# CONFIG_SENSORS_ADT7470 is not set 790# CONFIG_SENSORS_ADT7470 is not set
764# CONFIG_SENSORS_ADT7473 is not set 791# CONFIG_SENSORS_ADT7473 is not set
792# CONFIG_SENSORS_ADT7475 is not set
765# CONFIG_SENSORS_ATXP1 is not set 793# CONFIG_SENSORS_ATXP1 is not set
766# CONFIG_SENSORS_DS1621 is not set 794# CONFIG_SENSORS_DS1621 is not set
767# CONFIG_SENSORS_I5K_AMB is not set 795# CONFIG_SENSORS_I5K_AMB is not set
@@ -782,6 +810,7 @@ CONFIG_HWMON=y
782# CONFIG_SENSORS_LM90 is not set 810# CONFIG_SENSORS_LM90 is not set
783# CONFIG_SENSORS_LM92 is not set 811# CONFIG_SENSORS_LM92 is not set
784# CONFIG_SENSORS_LM93 is not set 812# CONFIG_SENSORS_LM93 is not set
813# CONFIG_SENSORS_LTC4245 is not set
785# CONFIG_SENSORS_MAX1619 is not set 814# CONFIG_SENSORS_MAX1619 is not set
786# CONFIG_SENSORS_MAX6650 is not set 815# CONFIG_SENSORS_MAX6650 is not set
787# CONFIG_SENSORS_PC87360 is not set 816# CONFIG_SENSORS_PC87360 is not set
@@ -827,11 +856,11 @@ CONFIG_WATCHDOG=y
827# USB-based Watchdog Cards 856# USB-based Watchdog Cards
828# 857#
829# CONFIG_USBPCWATCHDOG is not set 858# CONFIG_USBPCWATCHDOG is not set
859CONFIG_SSB_POSSIBLE=y
830 860
831# 861#
832# Sonics Silicon Backplane 862# Sonics Silicon Backplane
833# 863#
834CONFIG_SSB_POSSIBLE=y
835# CONFIG_SSB is not set 864# CONFIG_SSB is not set
836 865
837# 866#
@@ -840,18 +869,13 @@ CONFIG_SSB_POSSIBLE=y
840# CONFIG_MFD_CORE is not set 869# CONFIG_MFD_CORE is not set
841# CONFIG_MFD_SM501 is not set 870# CONFIG_MFD_SM501 is not set
842# CONFIG_HTC_PASIC3 is not set 871# CONFIG_HTC_PASIC3 is not set
872# CONFIG_TWL4030_CORE is not set
843# CONFIG_MFD_TMIO is not set 873# CONFIG_MFD_TMIO is not set
844# CONFIG_PMIC_DA903X is not set 874# CONFIG_PMIC_DA903X is not set
845# CONFIG_MFD_WM8400 is not set 875# CONFIG_MFD_WM8400 is not set
846# CONFIG_MFD_WM8350_I2C is not set 876# CONFIG_MFD_WM8350_I2C is not set
847 877# CONFIG_MFD_PCF50633 is not set
848#
849# Voltage and Current regulators
850#
851# CONFIG_REGULATOR is not set 878# CONFIG_REGULATOR is not set
852# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
853# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
854# CONFIG_REGULATOR_BQ24022 is not set
855 879
856# 880#
857# Multimedia devices 881# Multimedia devices
@@ -916,6 +940,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
916# CONFIG_USB_EHCI_TT_NEWSCHED is not set 940# CONFIG_USB_EHCI_TT_NEWSCHED is not set
917CONFIG_USB_EHCI_FSL=y 941CONFIG_USB_EHCI_FSL=y
918CONFIG_USB_EHCI_HCD_PPC_OF=y 942CONFIG_USB_EHCI_HCD_PPC_OF=y
943# CONFIG_USB_OXU210HP_HCD is not set
919# CONFIG_USB_ISP116X_HCD is not set 944# CONFIG_USB_ISP116X_HCD is not set
920# CONFIG_USB_ISP1760_HCD is not set 945# CONFIG_USB_ISP1760_HCD is not set
921# CONFIG_USB_OHCI_HCD is not set 946# CONFIG_USB_OHCI_HCD is not set
@@ -934,11 +959,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
934# CONFIG_USB_TMC is not set 959# CONFIG_USB_TMC is not set
935 960
936# 961#
937# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 962# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
938# 963#
939 964
940# 965#
941# may also be needed; see USB_STORAGE Help for more information 966# see USB_STORAGE Help for more information
942# 967#
943# CONFIG_USB_LIBUSUAL is not set 968# CONFIG_USB_LIBUSUAL is not set
944 969
@@ -977,6 +1002,10 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
977# CONFIG_USB_ISIGHTFW is not set 1002# CONFIG_USB_ISIGHTFW is not set
978# CONFIG_USB_VST is not set 1003# CONFIG_USB_VST is not set
979# CONFIG_USB_GADGET is not set 1004# CONFIG_USB_GADGET is not set
1005
1006#
1007# OTG and related infrastructure
1008#
980# CONFIG_UWB is not set 1009# CONFIG_UWB is not set
981# CONFIG_MMC is not set 1010# CONFIG_MMC is not set
982# CONFIG_MEMSTICK is not set 1011# CONFIG_MEMSTICK is not set
@@ -1014,6 +1043,7 @@ CONFIG_RTC_DRV_DS1374=y
1014# CONFIG_RTC_DRV_M41T80 is not set 1043# CONFIG_RTC_DRV_M41T80 is not set
1015# CONFIG_RTC_DRV_S35390A is not set 1044# CONFIG_RTC_DRV_S35390A is not set
1016# CONFIG_RTC_DRV_FM3130 is not set 1045# CONFIG_RTC_DRV_FM3130 is not set
1046# CONFIG_RTC_DRV_RX8581 is not set
1017 1047
1018# 1048#
1019# SPI RTC drivers 1049# SPI RTC drivers
@@ -1061,6 +1091,7 @@ CONFIG_FS_MBCACHE=y
1061CONFIG_FILE_LOCKING=y 1091CONFIG_FILE_LOCKING=y
1062# CONFIG_XFS_FS is not set 1092# CONFIG_XFS_FS is not set
1063# CONFIG_OCFS2_FS is not set 1093# CONFIG_OCFS2_FS is not set
1094# CONFIG_BTRFS_FS is not set
1064CONFIG_DNOTIFY=y 1095CONFIG_DNOTIFY=y
1065CONFIG_INOTIFY=y 1096CONFIG_INOTIFY=y
1066CONFIG_INOTIFY_USER=y 1097CONFIG_INOTIFY_USER=y
@@ -1094,10 +1125,7 @@ CONFIG_TMPFS=y
1094# CONFIG_TMPFS_POSIX_ACL is not set 1125# CONFIG_TMPFS_POSIX_ACL is not set
1095# CONFIG_HUGETLB_PAGE is not set 1126# CONFIG_HUGETLB_PAGE is not set
1096# CONFIG_CONFIGFS_FS is not set 1127# CONFIG_CONFIGFS_FS is not set
1097 1128CONFIG_MISC_FILESYSTEMS=y
1098#
1099# Miscellaneous filesystems
1100#
1101# CONFIG_ADFS_FS is not set 1129# CONFIG_ADFS_FS is not set
1102# CONFIG_AFFS_FS is not set 1130# CONFIG_AFFS_FS is not set
1103# CONFIG_HFS_FS is not set 1131# CONFIG_HFS_FS is not set
@@ -1117,6 +1145,7 @@ CONFIG_JFFS2_ZLIB=y
1117CONFIG_JFFS2_RTIME=y 1145CONFIG_JFFS2_RTIME=y
1118# CONFIG_JFFS2_RUBIN is not set 1146# CONFIG_JFFS2_RUBIN is not set
1119# CONFIG_CRAMFS is not set 1147# CONFIG_CRAMFS is not set
1148# CONFIG_SQUASHFS is not set
1120# CONFIG_VXFS_FS is not set 1149# CONFIG_VXFS_FS is not set
1121# CONFIG_MINIX_FS is not set 1150# CONFIG_MINIX_FS is not set
1122# CONFIG_OMFS_FS is not set 1151# CONFIG_OMFS_FS is not set
@@ -1209,6 +1238,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1209# Library routines 1238# Library routines
1210# 1239#
1211CONFIG_BITREVERSE=y 1240CONFIG_BITREVERSE=y
1241CONFIG_GENERIC_FIND_LAST_BIT=y
1212# CONFIG_CRC_CCITT is not set 1242# CONFIG_CRC_CCITT is not set
1213# CONFIG_CRC16 is not set 1243# CONFIG_CRC16 is not set
1214# CONFIG_CRC_T10DIF is not set 1244# CONFIG_CRC_T10DIF is not set
@@ -1244,6 +1274,8 @@ CONFIG_FRAME_WARN=1024
1244# CONFIG_LATENCYTOP is not set 1274# CONFIG_LATENCYTOP is not set
1245# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1275# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1246CONFIG_HAVE_FUNCTION_TRACER=y 1276CONFIG_HAVE_FUNCTION_TRACER=y
1277CONFIG_HAVE_DYNAMIC_FTRACE=y
1278CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1247 1279
1248# 1280#
1249# Tracers 1281# Tracers
@@ -1251,6 +1283,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1251# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1283# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1252# CONFIG_SAMPLES is not set 1284# CONFIG_SAMPLES is not set
1253CONFIG_HAVE_ARCH_KGDB=y 1285CONFIG_HAVE_ARCH_KGDB=y
1286CONFIG_PRINT_STACK_DEPTH=64
1254# CONFIG_IRQSTACKS is not set 1287# CONFIG_IRQSTACKS is not set
1255# CONFIG_BOOTX_TEXT is not set 1288# CONFIG_BOOTX_TEXT is not set
1256# CONFIG_PPC_EARLY_DEBUG is not set 1289# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1269,11 +1302,15 @@ CONFIG_CRYPTO=y
1269# 1302#
1270# CONFIG_CRYPTO_FIPS is not set 1303# CONFIG_CRYPTO_FIPS is not set
1271CONFIG_CRYPTO_ALGAPI=y 1304CONFIG_CRYPTO_ALGAPI=y
1272CONFIG_CRYPTO_AEAD=y 1305CONFIG_CRYPTO_ALGAPI2=y
1306CONFIG_CRYPTO_AEAD2=y
1273CONFIG_CRYPTO_BLKCIPHER=y 1307CONFIG_CRYPTO_BLKCIPHER=y
1308CONFIG_CRYPTO_BLKCIPHER2=y
1274CONFIG_CRYPTO_HASH=y 1309CONFIG_CRYPTO_HASH=y
1275CONFIG_CRYPTO_RNG=y 1310CONFIG_CRYPTO_HASH2=y
1311CONFIG_CRYPTO_RNG2=y
1276CONFIG_CRYPTO_MANAGER=y 1312CONFIG_CRYPTO_MANAGER=y
1313CONFIG_CRYPTO_MANAGER2=y
1277# CONFIG_CRYPTO_GF128MUL is not set 1314# CONFIG_CRYPTO_GF128MUL is not set
1278# CONFIG_CRYPTO_NULL is not set 1315# CONFIG_CRYPTO_NULL is not set
1279# CONFIG_CRYPTO_CRYPTD is not set 1316# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index bfc32ea265a7..409d017621a8 100644
--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8313_rdb_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:50 2008 4# Mon Jan 26 15:35:48 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
269# CONFIG_PCI_DEBUG is not set 274# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -384,6 +393,7 @@ CONFIG_MTD=y
384# CONFIG_MTD_DEBUG is not set 393# CONFIG_MTD_DEBUG is not set
385# CONFIG_MTD_CONCAT is not set 394# CONFIG_MTD_CONCAT is not set
386CONFIG_MTD_PARTITIONS=y 395CONFIG_MTD_PARTITIONS=y
396# CONFIG_MTD_TESTS is not set
387# CONFIG_MTD_REDBOOT_PARTS is not set 397# CONFIG_MTD_REDBOOT_PARTS is not set
388# CONFIG_MTD_CMDLINE_PARTS is not set 398# CONFIG_MTD_CMDLINE_PARTS is not set
389CONFIG_MTD_OF_PARTS=y 399CONFIG_MTD_OF_PARTS=y
@@ -468,6 +478,12 @@ CONFIG_MTD_NAND_FSL_ELBC=y
468# CONFIG_MTD_ONENAND is not set 478# CONFIG_MTD_ONENAND is not set
469 479
470# 480#
481# LPDDR flash memory drivers
482#
483# CONFIG_MTD_LPDDR is not set
484# CONFIG_MTD_QINFO_PROBE is not set
485
486#
471# UBI - Unsorted block images 487# UBI - Unsorted block images
472# 488#
473# CONFIG_MTD_UBI is not set 489# CONFIG_MTD_UBI is not set
@@ -499,8 +515,10 @@ CONFIG_MISC_DEVICES=y
499# CONFIG_EEPROM_93CX6 is not set 515# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_SGI_IOC4 is not set 516# CONFIG_SGI_IOC4 is not set
501# CONFIG_TIFM_CORE is not set 517# CONFIG_TIFM_CORE is not set
518# CONFIG_ICS932S401 is not set
502# CONFIG_ENCLOSURE_SERVICES is not set 519# CONFIG_ENCLOSURE_SERVICES is not set
503# CONFIG_HP_ILO is not set 520# CONFIG_HP_ILO is not set
521# CONFIG_C2PORT is not set
504CONFIG_HAVE_IDE=y 522CONFIG_HAVE_IDE=y
505# CONFIG_IDE is not set 523# CONFIG_IDE is not set
506 524
@@ -543,6 +561,7 @@ CONFIG_SCSI_SPI_ATTRS=y
543# CONFIG_SCSI_SRP_ATTRS is not set 561# CONFIG_SCSI_SRP_ATTRS is not set
544CONFIG_SCSI_LOWLEVEL=y 562CONFIG_SCSI_LOWLEVEL=y
545# CONFIG_ISCSI_TCP is not set 563# CONFIG_ISCSI_TCP is not set
564# CONFIG_SCSI_CXGB3_ISCSI is not set
546# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 565# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
547# CONFIG_SCSI_3W_9XXX is not set 566# CONFIG_SCSI_3W_9XXX is not set
548# CONFIG_SCSI_ACARD is not set 567# CONFIG_SCSI_ACARD is not set
@@ -559,6 +578,8 @@ CONFIG_SCSI_LOWLEVEL=y
559# CONFIG_MEGARAID_SAS is not set 578# CONFIG_MEGARAID_SAS is not set
560# CONFIG_SCSI_HPTIOP is not set 579# CONFIG_SCSI_HPTIOP is not set
561# CONFIG_SCSI_BUSLOGIC is not set 580# CONFIG_SCSI_BUSLOGIC is not set
581# CONFIG_LIBFC is not set
582# CONFIG_FCOE is not set
562# CONFIG_SCSI_DMX3191D is not set 583# CONFIG_SCSI_DMX3191D is not set
563# CONFIG_SCSI_EATA is not set 584# CONFIG_SCSI_EATA is not set
564# CONFIG_SCSI_FUTURE_DOMAIN is not set 585# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -627,7 +648,10 @@ CONFIG_CICADA_PHY=y
627# CONFIG_BROADCOM_PHY is not set 648# CONFIG_BROADCOM_PHY is not set
628# CONFIG_ICPLUS_PHY is not set 649# CONFIG_ICPLUS_PHY is not set
629# CONFIG_REALTEK_PHY is not set 650# CONFIG_REALTEK_PHY is not set
630# CONFIG_FIXED_PHY is not set 651# CONFIG_NATIONAL_PHY is not set
652# CONFIG_STE10XP is not set
653# CONFIG_LSI_ET1011C_PHY is not set
654CONFIG_FIXED_PHY=y
631# CONFIG_MDIO_BITBANG is not set 655# CONFIG_MDIO_BITBANG is not set
632CONFIG_NET_ETHERNET=y 656CONFIG_NET_ETHERNET=y
633CONFIG_MII=y 657CONFIG_MII=y
@@ -651,7 +675,6 @@ CONFIG_NET_PCI=y
651# CONFIG_ADAPTEC_STARFIRE is not set 675# CONFIG_ADAPTEC_STARFIRE is not set
652# CONFIG_B44 is not set 676# CONFIG_B44 is not set
653# CONFIG_FORCEDETH is not set 677# CONFIG_FORCEDETH is not set
654# CONFIG_EEPRO100 is not set
655CONFIG_E100=y 678CONFIG_E100=y
656# CONFIG_FEALNX is not set 679# CONFIG_FEALNX is not set
657# CONFIG_NATSEMI is not set 680# CONFIG_NATSEMI is not set
@@ -661,6 +684,7 @@ CONFIG_E100=y
661# CONFIG_R6040 is not set 684# CONFIG_R6040 is not set
662# CONFIG_SIS900 is not set 685# CONFIG_SIS900 is not set
663# CONFIG_EPIC100 is not set 686# CONFIG_EPIC100 is not set
687# CONFIG_SMSC9420 is not set
664# CONFIG_SUNDANCE is not set 688# CONFIG_SUNDANCE is not set
665# CONFIG_TLAN is not set 689# CONFIG_TLAN is not set
666# CONFIG_VIA_RHINE is not set 690# CONFIG_VIA_RHINE is not set
@@ -691,6 +715,7 @@ CONFIG_GIANFAR=y
691# CONFIG_JME is not set 715# CONFIG_JME is not set
692CONFIG_NETDEV_10000=y 716CONFIG_NETDEV_10000=y
693# CONFIG_CHELSIO_T1 is not set 717# CONFIG_CHELSIO_T1 is not set
718CONFIG_CHELSIO_T3_DEPENDS=y
694# CONFIG_CHELSIO_T3 is not set 719# CONFIG_CHELSIO_T3 is not set
695# CONFIG_ENIC is not set 720# CONFIG_ENIC is not set
696# CONFIG_IXGBE is not set 721# CONFIG_IXGBE is not set
@@ -715,6 +740,10 @@ CONFIG_NETDEV_10000=y
715# CONFIG_IWLWIFI_LEDS is not set 740# CONFIG_IWLWIFI_LEDS is not set
716 741
717# 742#
743# Enable WiMAX (Networking options) to see the WiMAX drivers
744#
745
746#
718# USB Network Adapters 747# USB Network Adapters
719# 748#
720# CONFIG_USB_CATC is not set 749# CONFIG_USB_CATC is not set
@@ -792,8 +821,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
792# CONFIG_SERIAL_JSM is not set 821# CONFIG_SERIAL_JSM is not set
793# CONFIG_SERIAL_OF_PLATFORM is not set 822# CONFIG_SERIAL_OF_PLATFORM is not set
794CONFIG_UNIX98_PTYS=y 823CONFIG_UNIX98_PTYS=y
824# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
795CONFIG_LEGACY_PTYS=y 825CONFIG_LEGACY_PTYS=y
796CONFIG_LEGACY_PTY_COUNT=256 826CONFIG_LEGACY_PTY_COUNT=256
827# CONFIG_HVC_UDBG is not set
797# CONFIG_IPMI_HANDLER is not set 828# CONFIG_IPMI_HANDLER is not set
798CONFIG_HW_RANDOM=y 829CONFIG_HW_RANDOM=y
799# CONFIG_NVRAM is not set 830# CONFIG_NVRAM is not set
@@ -858,15 +889,14 @@ CONFIG_I2C_MPC=y
858# Miscellaneous I2C Chip support 889# Miscellaneous I2C Chip support
859# 890#
860# CONFIG_DS1682 is not set 891# CONFIG_DS1682 is not set
861# CONFIG_AT24 is not set 892# CONFIG_EEPROM_AT24 is not set
862# CONFIG_SENSORS_EEPROM is not set 893# CONFIG_EEPROM_LEGACY is not set
863# CONFIG_SENSORS_PCF8574 is not set 894# CONFIG_SENSORS_PCF8574 is not set
864# CONFIG_PCF8575 is not set 895# CONFIG_PCF8575 is not set
865# CONFIG_SENSORS_PCA9539 is not set 896# CONFIG_SENSORS_PCA9539 is not set
866# CONFIG_SENSORS_PCF8591 is not set 897# CONFIG_SENSORS_PCF8591 is not set
867# CONFIG_SENSORS_MAX6875 is not set 898# CONFIG_SENSORS_MAX6875 is not set
868# CONFIG_SENSORS_TSL2550 is not set 899# CONFIG_SENSORS_TSL2550 is not set
869# CONFIG_MCU_MPC8349EMITX is not set
870# CONFIG_I2C_DEBUG_CORE is not set 900# CONFIG_I2C_DEBUG_CORE is not set
871# CONFIG_I2C_DEBUG_ALGO is not set 901# CONFIG_I2C_DEBUG_ALGO is not set
872# CONFIG_I2C_DEBUG_BUS is not set 902# CONFIG_I2C_DEBUG_BUS is not set
@@ -884,7 +914,7 @@ CONFIG_SPI_MPC83xx=y
884# 914#
885# SPI Protocol Masters 915# SPI Protocol Masters
886# 916#
887# CONFIG_SPI_AT25 is not set 917# CONFIG_EEPROM_AT25 is not set
888# CONFIG_SPI_SPIDEV is not set 918# CONFIG_SPI_SPIDEV is not set
889# CONFIG_SPI_TLE62X0 is not set 919# CONFIG_SPI_TLE62X0 is not set
890CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 920CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -902,8 +932,10 @@ CONFIG_HWMON=y
902# CONFIG_SENSORS_ADM1029 is not set 932# CONFIG_SENSORS_ADM1029 is not set
903# CONFIG_SENSORS_ADM1031 is not set 933# CONFIG_SENSORS_ADM1031 is not set
904# CONFIG_SENSORS_ADM9240 is not set 934# CONFIG_SENSORS_ADM9240 is not set
935# CONFIG_SENSORS_ADT7462 is not set
905# CONFIG_SENSORS_ADT7470 is not set 936# CONFIG_SENSORS_ADT7470 is not set
906# CONFIG_SENSORS_ADT7473 is not set 937# CONFIG_SENSORS_ADT7473 is not set
938# CONFIG_SENSORS_ADT7475 is not set
907# CONFIG_SENSORS_ATXP1 is not set 939# CONFIG_SENSORS_ATXP1 is not set
908# CONFIG_SENSORS_DS1621 is not set 940# CONFIG_SENSORS_DS1621 is not set
909# CONFIG_SENSORS_I5K_AMB is not set 941# CONFIG_SENSORS_I5K_AMB is not set
@@ -925,6 +957,7 @@ CONFIG_HWMON=y
925# CONFIG_SENSORS_LM90 is not set 957# CONFIG_SENSORS_LM90 is not set
926# CONFIG_SENSORS_LM92 is not set 958# CONFIG_SENSORS_LM92 is not set
927# CONFIG_SENSORS_LM93 is not set 959# CONFIG_SENSORS_LM93 is not set
960# CONFIG_SENSORS_LTC4245 is not set
928# CONFIG_SENSORS_MAX1111 is not set 961# CONFIG_SENSORS_MAX1111 is not set
929# CONFIG_SENSORS_MAX1619 is not set 962# CONFIG_SENSORS_MAX1619 is not set
930# CONFIG_SENSORS_MAX6650 is not set 963# CONFIG_SENSORS_MAX6650 is not set
@@ -971,11 +1004,11 @@ CONFIG_WATCHDOG=y
971# USB-based Watchdog Cards 1004# USB-based Watchdog Cards
972# 1005#
973# CONFIG_USBPCWATCHDOG is not set 1006# CONFIG_USBPCWATCHDOG is not set
1007CONFIG_SSB_POSSIBLE=y
974 1008
975# 1009#
976# Sonics Silicon Backplane 1010# Sonics Silicon Backplane
977# 1011#
978CONFIG_SSB_POSSIBLE=y
979# CONFIG_SSB is not set 1012# CONFIG_SSB is not set
980 1013
981# 1014#
@@ -984,18 +1017,13 @@ CONFIG_SSB_POSSIBLE=y
984# CONFIG_MFD_CORE is not set 1017# CONFIG_MFD_CORE is not set
985# CONFIG_MFD_SM501 is not set 1018# CONFIG_MFD_SM501 is not set
986# CONFIG_HTC_PASIC3 is not set 1019# CONFIG_HTC_PASIC3 is not set
1020# CONFIG_TWL4030_CORE is not set
987# CONFIG_MFD_TMIO is not set 1021# CONFIG_MFD_TMIO is not set
988# CONFIG_PMIC_DA903X is not set 1022# CONFIG_PMIC_DA903X is not set
989# CONFIG_MFD_WM8400 is not set 1023# CONFIG_MFD_WM8400 is not set
990# CONFIG_MFD_WM8350_I2C is not set 1024# CONFIG_MFD_WM8350_I2C is not set
991 1025# CONFIG_MFD_PCF50633 is not set
992#
993# Voltage and Current regulators
994#
995# CONFIG_REGULATOR is not set 1026# CONFIG_REGULATOR is not set
996# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
997# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
998# CONFIG_REGULATOR_BQ24022 is not set
999 1027
1000# 1028#
1001# Multimedia devices 1029# Multimedia devices
@@ -1080,6 +1108,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1080# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1108# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1081CONFIG_USB_EHCI_FSL=y 1109CONFIG_USB_EHCI_FSL=y
1082CONFIG_USB_EHCI_HCD_PPC_OF=y 1110CONFIG_USB_EHCI_HCD_PPC_OF=y
1111# CONFIG_USB_OXU210HP_HCD is not set
1083# CONFIG_USB_ISP116X_HCD is not set 1112# CONFIG_USB_ISP116X_HCD is not set
1084# CONFIG_USB_ISP1760_HCD is not set 1113# CONFIG_USB_ISP1760_HCD is not set
1085CONFIG_USB_OHCI_HCD=y 1114CONFIG_USB_OHCI_HCD=y
@@ -1106,18 +1135,17 @@ CONFIG_USB_UHCI_HCD=y
1106# CONFIG_USB_TMC is not set 1135# CONFIG_USB_TMC is not set
1107 1136
1108# 1137#
1109# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1138# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1110# 1139#
1111 1140
1112# 1141#
1113# may also be needed; see USB_STORAGE Help for more information 1142# see USB_STORAGE Help for more information
1114# 1143#
1115CONFIG_USB_STORAGE=y 1144CONFIG_USB_STORAGE=y
1116# CONFIG_USB_STORAGE_DEBUG is not set 1145# CONFIG_USB_STORAGE_DEBUG is not set
1117# CONFIG_USB_STORAGE_DATAFAB is not set 1146# CONFIG_USB_STORAGE_DATAFAB is not set
1118# CONFIG_USB_STORAGE_FREECOM is not set 1147# CONFIG_USB_STORAGE_FREECOM is not set
1119# CONFIG_USB_STORAGE_ISD200 is not set 1148# CONFIG_USB_STORAGE_ISD200 is not set
1120# CONFIG_USB_STORAGE_DPCM is not set
1121# CONFIG_USB_STORAGE_USBAT is not set 1149# CONFIG_USB_STORAGE_USBAT is not set
1122# CONFIG_USB_STORAGE_SDDR09 is not set 1150# CONFIG_USB_STORAGE_SDDR09 is not set
1123# CONFIG_USB_STORAGE_SDDR55 is not set 1151# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1177,9 +1205,11 @@ CONFIG_USB_GADGET_SELECTED=y
1177# CONFIG_USB_GADGET_PXA25X is not set 1205# CONFIG_USB_GADGET_PXA25X is not set
1178# CONFIG_USB_GADGET_PXA27X is not set 1206# CONFIG_USB_GADGET_PXA27X is not set
1179# CONFIG_USB_GADGET_S3C2410 is not set 1207# CONFIG_USB_GADGET_S3C2410 is not set
1208# CONFIG_USB_GADGET_IMX is not set
1180# CONFIG_USB_GADGET_M66592 is not set 1209# CONFIG_USB_GADGET_M66592 is not set
1181# CONFIG_USB_GADGET_AMD5536UDC is not set 1210# CONFIG_USB_GADGET_AMD5536UDC is not set
1182# CONFIG_USB_GADGET_FSL_QE is not set 1211# CONFIG_USB_GADGET_FSL_QE is not set
1212# CONFIG_USB_GADGET_CI13XXX is not set
1183CONFIG_USB_GADGET_NET2280=y 1213CONFIG_USB_GADGET_NET2280=y
1184CONFIG_USB_NET2280=y 1214CONFIG_USB_NET2280=y
1185# CONFIG_USB_GADGET_GOKU is not set 1215# CONFIG_USB_GADGET_GOKU is not set
@@ -1194,6 +1224,10 @@ CONFIG_USB_ETH_RNDIS=y
1194# CONFIG_USB_MIDI_GADGET is not set 1224# CONFIG_USB_MIDI_GADGET is not set
1195# CONFIG_USB_G_PRINTER is not set 1225# CONFIG_USB_G_PRINTER is not set
1196# CONFIG_USB_CDC_COMPOSITE is not set 1226# CONFIG_USB_CDC_COMPOSITE is not set
1227
1228#
1229# OTG and related infrastructure
1230#
1197# CONFIG_UWB is not set 1231# CONFIG_UWB is not set
1198# CONFIG_MMC is not set 1232# CONFIG_MMC is not set
1199# CONFIG_MEMSTICK is not set 1233# CONFIG_MEMSTICK is not set
@@ -1231,12 +1265,14 @@ CONFIG_RTC_DRV_DS1307=y
1231# CONFIG_RTC_DRV_M41T80 is not set 1265# CONFIG_RTC_DRV_M41T80 is not set
1232# CONFIG_RTC_DRV_S35390A is not set 1266# CONFIG_RTC_DRV_S35390A is not set
1233# CONFIG_RTC_DRV_FM3130 is not set 1267# CONFIG_RTC_DRV_FM3130 is not set
1268# CONFIG_RTC_DRV_RX8581 is not set
1234 1269
1235# 1270#
1236# SPI RTC drivers 1271# SPI RTC drivers
1237# 1272#
1238# CONFIG_RTC_DRV_M41T94 is not set 1273# CONFIG_RTC_DRV_M41T94 is not set
1239# CONFIG_RTC_DRV_DS1305 is not set 1274# CONFIG_RTC_DRV_DS1305 is not set
1275# CONFIG_RTC_DRV_DS1390 is not set
1240# CONFIG_RTC_DRV_MAX6902 is not set 1276# CONFIG_RTC_DRV_MAX6902 is not set
1241# CONFIG_RTC_DRV_R9701 is not set 1277# CONFIG_RTC_DRV_R9701 is not set
1242# CONFIG_RTC_DRV_RS5C348 is not set 1278# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1284,6 +1320,7 @@ CONFIG_FS_MBCACHE=y
1284CONFIG_FILE_LOCKING=y 1320CONFIG_FILE_LOCKING=y
1285# CONFIG_XFS_FS is not set 1321# CONFIG_XFS_FS is not set
1286# CONFIG_OCFS2_FS is not set 1322# CONFIG_OCFS2_FS is not set
1323# CONFIG_BTRFS_FS is not set
1287CONFIG_DNOTIFY=y 1324CONFIG_DNOTIFY=y
1288CONFIG_INOTIFY=y 1325CONFIG_INOTIFY=y
1289CONFIG_INOTIFY_USER=y 1326CONFIG_INOTIFY_USER=y
@@ -1317,10 +1354,7 @@ CONFIG_TMPFS=y
1317# CONFIG_TMPFS_POSIX_ACL is not set 1354# CONFIG_TMPFS_POSIX_ACL is not set
1318# CONFIG_HUGETLB_PAGE is not set 1355# CONFIG_HUGETLB_PAGE is not set
1319# CONFIG_CONFIGFS_FS is not set 1356# CONFIG_CONFIGFS_FS is not set
1320 1357CONFIG_MISC_FILESYSTEMS=y
1321#
1322# Miscellaneous filesystems
1323#
1324# CONFIG_ADFS_FS is not set 1358# CONFIG_ADFS_FS is not set
1325# CONFIG_AFFS_FS is not set 1359# CONFIG_AFFS_FS is not set
1326# CONFIG_HFS_FS is not set 1360# CONFIG_HFS_FS is not set
@@ -1340,6 +1374,7 @@ CONFIG_JFFS2_ZLIB=y
1340CONFIG_JFFS2_RTIME=y 1374CONFIG_JFFS2_RTIME=y
1341# CONFIG_JFFS2_RUBIN is not set 1375# CONFIG_JFFS2_RUBIN is not set
1342# CONFIG_CRAMFS is not set 1376# CONFIG_CRAMFS is not set
1377# CONFIG_SQUASHFS is not set
1343# CONFIG_VXFS_FS is not set 1378# CONFIG_VXFS_FS is not set
1344# CONFIG_MINIX_FS is not set 1379# CONFIG_MINIX_FS is not set
1345# CONFIG_OMFS_FS is not set 1380# CONFIG_OMFS_FS is not set
@@ -1397,6 +1432,7 @@ CONFIG_MSDOS_PARTITION=y
1397# Library routines 1432# Library routines
1398# 1433#
1399CONFIG_BITREVERSE=y 1434CONFIG_BITREVERSE=y
1435CONFIG_GENERIC_FIND_LAST_BIT=y
1400# CONFIG_CRC_CCITT is not set 1436# CONFIG_CRC_CCITT is not set
1401# CONFIG_CRC16 is not set 1437# CONFIG_CRC16 is not set
1402# CONFIG_CRC_T10DIF is not set 1438# CONFIG_CRC_T10DIF is not set
@@ -1448,6 +1484,7 @@ CONFIG_SCHED_DEBUG=y
1448# CONFIG_DEBUG_MEMORY_INIT is not set 1484# CONFIG_DEBUG_MEMORY_INIT is not set
1449# CONFIG_DEBUG_LIST is not set 1485# CONFIG_DEBUG_LIST is not set
1450# CONFIG_DEBUG_SG is not set 1486# CONFIG_DEBUG_SG is not set
1487# CONFIG_DEBUG_NOTIFIERS is not set
1451# CONFIG_BOOT_PRINTK_DELAY is not set 1488# CONFIG_BOOT_PRINTK_DELAY is not set
1452# CONFIG_RCU_TORTURE_TEST is not set 1489# CONFIG_RCU_TORTURE_TEST is not set
1453# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1490# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1457,6 +1494,8 @@ CONFIG_SCHED_DEBUG=y
1457# CONFIG_LATENCYTOP is not set 1494# CONFIG_LATENCYTOP is not set
1458CONFIG_SYSCTL_SYSCALL_CHECK=y 1495CONFIG_SYSCTL_SYSCALL_CHECK=y
1459CONFIG_HAVE_FUNCTION_TRACER=y 1496CONFIG_HAVE_FUNCTION_TRACER=y
1497CONFIG_HAVE_DYNAMIC_FTRACE=y
1498CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1460 1499
1461# 1500#
1462# Tracers 1501# Tracers
@@ -1465,11 +1504,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1465# CONFIG_SCHED_TRACER is not set 1504# CONFIG_SCHED_TRACER is not set
1466# CONFIG_CONTEXT_SWITCH_TRACER is not set 1505# CONFIG_CONTEXT_SWITCH_TRACER is not set
1467# CONFIG_BOOT_TRACER is not set 1506# CONFIG_BOOT_TRACER is not set
1507# CONFIG_TRACE_BRANCH_PROFILING is not set
1468# CONFIG_STACK_TRACER is not set 1508# CONFIG_STACK_TRACER is not set
1469# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1509# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1470# CONFIG_SAMPLES is not set 1510# CONFIG_SAMPLES is not set
1471CONFIG_HAVE_ARCH_KGDB=y 1511CONFIG_HAVE_ARCH_KGDB=y
1472# CONFIG_KGDB is not set 1512# CONFIG_KGDB is not set
1513CONFIG_PRINT_STACK_DEPTH=64
1473# CONFIG_DEBUG_STACKOVERFLOW is not set 1514# CONFIG_DEBUG_STACKOVERFLOW is not set
1474# CONFIG_DEBUG_STACK_USAGE is not set 1515# CONFIG_DEBUG_STACK_USAGE is not set
1475# CONFIG_DEBUG_PAGEALLOC is not set 1516# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1496,11 +1537,15 @@ CONFIG_CRYPTO=y
1496# 1537#
1497# CONFIG_CRYPTO_FIPS is not set 1538# CONFIG_CRYPTO_FIPS is not set
1498CONFIG_CRYPTO_ALGAPI=y 1539CONFIG_CRYPTO_ALGAPI=y
1499CONFIG_CRYPTO_AEAD=y 1540CONFIG_CRYPTO_ALGAPI2=y
1541CONFIG_CRYPTO_AEAD2=y
1500CONFIG_CRYPTO_BLKCIPHER=y 1542CONFIG_CRYPTO_BLKCIPHER=y
1543CONFIG_CRYPTO_BLKCIPHER2=y
1501CONFIG_CRYPTO_HASH=y 1544CONFIG_CRYPTO_HASH=y
1502CONFIG_CRYPTO_RNG=y 1545CONFIG_CRYPTO_HASH2=y
1546CONFIG_CRYPTO_RNG2=y
1503CONFIG_CRYPTO_MANAGER=y 1547CONFIG_CRYPTO_MANAGER=y
1548CONFIG_CRYPTO_MANAGER2=y
1504# CONFIG_CRYPTO_GF128MUL is not set 1549# CONFIG_CRYPTO_GF128MUL is not set
1505# CONFIG_CRYPTO_NULL is not set 1550# CONFIG_CRYPTO_NULL is not set
1506# CONFIG_CRYPTO_CRYPTD is not set 1551# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index aad0e1a98c55..03db97c6cf33 100644
--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8315_rdb_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:51 2008 4# Mon Jan 26 15:35:49 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
269# CONFIG_PCI_DEBUG is not set 274# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -384,6 +393,7 @@ CONFIG_MTD=y
384# CONFIG_MTD_DEBUG is not set 393# CONFIG_MTD_DEBUG is not set
385# CONFIG_MTD_CONCAT is not set 394# CONFIG_MTD_CONCAT is not set
386CONFIG_MTD_PARTITIONS=y 395CONFIG_MTD_PARTITIONS=y
396# CONFIG_MTD_TESTS is not set
387# CONFIG_MTD_REDBOOT_PARTS is not set 397# CONFIG_MTD_REDBOOT_PARTS is not set
388# CONFIG_MTD_CMDLINE_PARTS is not set 398# CONFIG_MTD_CMDLINE_PARTS is not set
389# CONFIG_MTD_OF_PARTS is not set 399# CONFIG_MTD_OF_PARTS is not set
@@ -468,6 +478,12 @@ CONFIG_MTD_NAND_IDS=y
468# CONFIG_MTD_ONENAND is not set 478# CONFIG_MTD_ONENAND is not set
469 479
470# 480#
481# LPDDR flash memory drivers
482#
483# CONFIG_MTD_LPDDR is not set
484# CONFIG_MTD_QINFO_PROBE is not set
485
486#
471# UBI - Unsorted block images 487# UBI - Unsorted block images
472# 488#
473# CONFIG_MTD_UBI is not set 489# CONFIG_MTD_UBI is not set
@@ -499,8 +515,10 @@ CONFIG_MISC_DEVICES=y
499# CONFIG_EEPROM_93CX6 is not set 515# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_SGI_IOC4 is not set 516# CONFIG_SGI_IOC4 is not set
501# CONFIG_TIFM_CORE is not set 517# CONFIG_TIFM_CORE is not set
518# CONFIG_ICS932S401 is not set
502# CONFIG_ENCLOSURE_SERVICES is not set 519# CONFIG_ENCLOSURE_SERVICES is not set
503# CONFIG_HP_ILO is not set 520# CONFIG_HP_ILO is not set
521# CONFIG_C2PORT is not set
504CONFIG_HAVE_IDE=y 522CONFIG_HAVE_IDE=y
505# CONFIG_IDE is not set 523# CONFIG_IDE is not set
506 524
@@ -543,6 +561,7 @@ CONFIG_SCSI_SPI_ATTRS=y
543# CONFIG_SCSI_SRP_ATTRS is not set 561# CONFIG_SCSI_SRP_ATTRS is not set
544CONFIG_SCSI_LOWLEVEL=y 562CONFIG_SCSI_LOWLEVEL=y
545# CONFIG_ISCSI_TCP is not set 563# CONFIG_ISCSI_TCP is not set
564# CONFIG_SCSI_CXGB3_ISCSI is not set
546# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 565# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
547# CONFIG_SCSI_3W_9XXX is not set 566# CONFIG_SCSI_3W_9XXX is not set
548# CONFIG_SCSI_ACARD is not set 567# CONFIG_SCSI_ACARD is not set
@@ -559,6 +578,8 @@ CONFIG_SCSI_LOWLEVEL=y
559# CONFIG_MEGARAID_SAS is not set 578# CONFIG_MEGARAID_SAS is not set
560# CONFIG_SCSI_HPTIOP is not set 579# CONFIG_SCSI_HPTIOP is not set
561# CONFIG_SCSI_BUSLOGIC is not set 580# CONFIG_SCSI_BUSLOGIC is not set
581# CONFIG_LIBFC is not set
582# CONFIG_FCOE is not set
562# CONFIG_SCSI_DMX3191D is not set 583# CONFIG_SCSI_DMX3191D is not set
563# CONFIG_SCSI_EATA is not set 584# CONFIG_SCSI_EATA is not set
564# CONFIG_SCSI_FUTURE_DOMAIN is not set 585# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -688,6 +709,9 @@ CONFIG_PHYLIB=y
688# CONFIG_BROADCOM_PHY is not set 709# CONFIG_BROADCOM_PHY is not set
689# CONFIG_ICPLUS_PHY is not set 710# CONFIG_ICPLUS_PHY is not set
690# CONFIG_REALTEK_PHY is not set 711# CONFIG_REALTEK_PHY is not set
712# CONFIG_NATIONAL_PHY is not set
713# CONFIG_STE10XP is not set
714# CONFIG_LSI_ET1011C_PHY is not set
691# CONFIG_FIXED_PHY is not set 715# CONFIG_FIXED_PHY is not set
692# CONFIG_MDIO_BITBANG is not set 716# CONFIG_MDIO_BITBANG is not set
693CONFIG_NET_ETHERNET=y 717CONFIG_NET_ETHERNET=y
@@ -712,7 +736,6 @@ CONFIG_NET_PCI=y
712# CONFIG_ADAPTEC_STARFIRE is not set 736# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_B44 is not set 737# CONFIG_B44 is not set
714# CONFIG_FORCEDETH is not set 738# CONFIG_FORCEDETH is not set
715# CONFIG_EEPRO100 is not set
716CONFIG_E100=y 739CONFIG_E100=y
717# CONFIG_FEALNX is not set 740# CONFIG_FEALNX is not set
718# CONFIG_NATSEMI is not set 741# CONFIG_NATSEMI is not set
@@ -722,6 +745,7 @@ CONFIG_E100=y
722# CONFIG_R6040 is not set 745# CONFIG_R6040 is not set
723# CONFIG_SIS900 is not set 746# CONFIG_SIS900 is not set
724# CONFIG_EPIC100 is not set 747# CONFIG_EPIC100 is not set
748# CONFIG_SMSC9420 is not set
725# CONFIG_SUNDANCE is not set 749# CONFIG_SUNDANCE is not set
726# CONFIG_TLAN is not set 750# CONFIG_TLAN is not set
727# CONFIG_VIA_RHINE is not set 751# CONFIG_VIA_RHINE is not set
@@ -752,6 +776,7 @@ CONFIG_GIANFAR=y
752# CONFIG_JME is not set 776# CONFIG_JME is not set
753CONFIG_NETDEV_10000=y 777CONFIG_NETDEV_10000=y
754# CONFIG_CHELSIO_T1 is not set 778# CONFIG_CHELSIO_T1 is not set
779CONFIG_CHELSIO_T3_DEPENDS=y
755# CONFIG_CHELSIO_T3 is not set 780# CONFIG_CHELSIO_T3 is not set
756# CONFIG_ENIC is not set 781# CONFIG_ENIC is not set
757# CONFIG_IXGBE is not set 782# CONFIG_IXGBE is not set
@@ -776,6 +801,10 @@ CONFIG_NETDEV_10000=y
776# CONFIG_IWLWIFI_LEDS is not set 801# CONFIG_IWLWIFI_LEDS is not set
777 802
778# 803#
804# Enable WiMAX (Networking options) to see the WiMAX drivers
805#
806
807#
779# USB Network Adapters 808# USB Network Adapters
780# 809#
781# CONFIG_USB_CATC is not set 810# CONFIG_USB_CATC is not set
@@ -853,8 +882,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
853# CONFIG_SERIAL_JSM is not set 882# CONFIG_SERIAL_JSM is not set
854# CONFIG_SERIAL_OF_PLATFORM is not set 883# CONFIG_SERIAL_OF_PLATFORM is not set
855CONFIG_UNIX98_PTYS=y 884CONFIG_UNIX98_PTYS=y
885# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
856CONFIG_LEGACY_PTYS=y 886CONFIG_LEGACY_PTYS=y
857CONFIG_LEGACY_PTY_COUNT=256 887CONFIG_LEGACY_PTY_COUNT=256
888# CONFIG_HVC_UDBG is not set
858# CONFIG_IPMI_HANDLER is not set 889# CONFIG_IPMI_HANDLER is not set
859CONFIG_HW_RANDOM=y 890CONFIG_HW_RANDOM=y
860# CONFIG_NVRAM is not set 891# CONFIG_NVRAM is not set
@@ -919,15 +950,14 @@ CONFIG_I2C_MPC=y
919# Miscellaneous I2C Chip support 950# Miscellaneous I2C Chip support
920# 951#
921# CONFIG_DS1682 is not set 952# CONFIG_DS1682 is not set
922# CONFIG_AT24 is not set 953# CONFIG_EEPROM_AT24 is not set
923# CONFIG_SENSORS_EEPROM is not set 954# CONFIG_EEPROM_LEGACY is not set
924# CONFIG_SENSORS_PCF8574 is not set 955# CONFIG_SENSORS_PCF8574 is not set
925# CONFIG_PCF8575 is not set 956# CONFIG_PCF8575 is not set
926# CONFIG_SENSORS_PCA9539 is not set 957# CONFIG_SENSORS_PCA9539 is not set
927# CONFIG_SENSORS_PCF8591 is not set 958# CONFIG_SENSORS_PCF8591 is not set
928# CONFIG_SENSORS_MAX6875 is not set 959# CONFIG_SENSORS_MAX6875 is not set
929# CONFIG_SENSORS_TSL2550 is not set 960# CONFIG_SENSORS_TSL2550 is not set
930# CONFIG_MCU_MPC8349EMITX is not set
931# CONFIG_I2C_DEBUG_CORE is not set 961# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 962# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 963# CONFIG_I2C_DEBUG_BUS is not set
@@ -945,7 +975,7 @@ CONFIG_SPI_MPC83xx=y
945# 975#
946# SPI Protocol Masters 976# SPI Protocol Masters
947# 977#
948# CONFIG_SPI_AT25 is not set 978# CONFIG_EEPROM_AT25 is not set
949# CONFIG_SPI_SPIDEV is not set 979# CONFIG_SPI_SPIDEV is not set
950# CONFIG_SPI_TLE62X0 is not set 980# CONFIG_SPI_TLE62X0 is not set
951CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 981CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -963,8 +993,10 @@ CONFIG_HWMON=y
963# CONFIG_SENSORS_ADM1029 is not set 993# CONFIG_SENSORS_ADM1029 is not set
964# CONFIG_SENSORS_ADM1031 is not set 994# CONFIG_SENSORS_ADM1031 is not set
965# CONFIG_SENSORS_ADM9240 is not set 995# CONFIG_SENSORS_ADM9240 is not set
996# CONFIG_SENSORS_ADT7462 is not set
966# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
967# CONFIG_SENSORS_ADT7473 is not set 998# CONFIG_SENSORS_ADT7473 is not set
999# CONFIG_SENSORS_ADT7475 is not set
968# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
969# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
970# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -986,6 +1018,7 @@ CONFIG_HWMON=y
986# CONFIG_SENSORS_LM90 is not set 1018# CONFIG_SENSORS_LM90 is not set
987# CONFIG_SENSORS_LM92 is not set 1019# CONFIG_SENSORS_LM92 is not set
988# CONFIG_SENSORS_LM93 is not set 1020# CONFIG_SENSORS_LM93 is not set
1021# CONFIG_SENSORS_LTC4245 is not set
989# CONFIG_SENSORS_MAX1111 is not set 1022# CONFIG_SENSORS_MAX1111 is not set
990# CONFIG_SENSORS_MAX1619 is not set 1023# CONFIG_SENSORS_MAX1619 is not set
991# CONFIG_SENSORS_MAX6650 is not set 1024# CONFIG_SENSORS_MAX6650 is not set
@@ -1032,11 +1065,11 @@ CONFIG_WATCHDOG=y
1032# USB-based Watchdog Cards 1065# USB-based Watchdog Cards
1033# 1066#
1034# CONFIG_USBPCWATCHDOG is not set 1067# CONFIG_USBPCWATCHDOG is not set
1068CONFIG_SSB_POSSIBLE=y
1035 1069
1036# 1070#
1037# Sonics Silicon Backplane 1071# Sonics Silicon Backplane
1038# 1072#
1039CONFIG_SSB_POSSIBLE=y
1040# CONFIG_SSB is not set 1073# CONFIG_SSB is not set
1041 1074
1042# 1075#
@@ -1045,18 +1078,13 @@ CONFIG_SSB_POSSIBLE=y
1045# CONFIG_MFD_CORE is not set 1078# CONFIG_MFD_CORE is not set
1046# CONFIG_MFD_SM501 is not set 1079# CONFIG_MFD_SM501 is not set
1047# CONFIG_HTC_PASIC3 is not set 1080# CONFIG_HTC_PASIC3 is not set
1081# CONFIG_TWL4030_CORE is not set
1048# CONFIG_MFD_TMIO is not set 1082# CONFIG_MFD_TMIO is not set
1049# CONFIG_PMIC_DA903X is not set 1083# CONFIG_PMIC_DA903X is not set
1050# CONFIG_MFD_WM8400 is not set 1084# CONFIG_MFD_WM8400 is not set
1051# CONFIG_MFD_WM8350_I2C is not set 1085# CONFIG_MFD_WM8350_I2C is not set
1052 1086# CONFIG_MFD_PCF50633 is not set
1053#
1054# Voltage and Current regulators
1055#
1056# CONFIG_REGULATOR is not set 1087# CONFIG_REGULATOR is not set
1057# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1058# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1059# CONFIG_REGULATOR_BQ24022 is not set
1060 1088
1061# 1089#
1062# Multimedia devices 1090# Multimedia devices
@@ -1141,6 +1169,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1141# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1169# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1142CONFIG_USB_EHCI_FSL=y 1170CONFIG_USB_EHCI_FSL=y
1143CONFIG_USB_EHCI_HCD_PPC_OF=y 1171CONFIG_USB_EHCI_HCD_PPC_OF=y
1172# CONFIG_USB_OXU210HP_HCD is not set
1144# CONFIG_USB_ISP116X_HCD is not set 1173# CONFIG_USB_ISP116X_HCD is not set
1145# CONFIG_USB_ISP1760_HCD is not set 1174# CONFIG_USB_ISP1760_HCD is not set
1146CONFIG_USB_OHCI_HCD=y 1175CONFIG_USB_OHCI_HCD=y
@@ -1167,18 +1196,17 @@ CONFIG_USB_UHCI_HCD=y
1167# CONFIG_USB_TMC is not set 1196# CONFIG_USB_TMC is not set
1168 1197
1169# 1198#
1170# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1199# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1171# 1200#
1172 1201
1173# 1202#
1174# may also be needed; see USB_STORAGE Help for more information 1203# see USB_STORAGE Help for more information
1175# 1204#
1176CONFIG_USB_STORAGE=y 1205CONFIG_USB_STORAGE=y
1177# CONFIG_USB_STORAGE_DEBUG is not set 1206# CONFIG_USB_STORAGE_DEBUG is not set
1178# CONFIG_USB_STORAGE_DATAFAB is not set 1207# CONFIG_USB_STORAGE_DATAFAB is not set
1179# CONFIG_USB_STORAGE_FREECOM is not set 1208# CONFIG_USB_STORAGE_FREECOM is not set
1180# CONFIG_USB_STORAGE_ISD200 is not set 1209# CONFIG_USB_STORAGE_ISD200 is not set
1181# CONFIG_USB_STORAGE_DPCM is not set
1182# CONFIG_USB_STORAGE_USBAT is not set 1210# CONFIG_USB_STORAGE_USBAT is not set
1183# CONFIG_USB_STORAGE_SDDR09 is not set 1211# CONFIG_USB_STORAGE_SDDR09 is not set
1184# CONFIG_USB_STORAGE_SDDR55 is not set 1212# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1238,9 +1266,11 @@ CONFIG_USB_GADGET_SELECTED=y
1238# CONFIG_USB_GADGET_PXA25X is not set 1266# CONFIG_USB_GADGET_PXA25X is not set
1239# CONFIG_USB_GADGET_PXA27X is not set 1267# CONFIG_USB_GADGET_PXA27X is not set
1240# CONFIG_USB_GADGET_S3C2410 is not set 1268# CONFIG_USB_GADGET_S3C2410 is not set
1269# CONFIG_USB_GADGET_IMX is not set
1241# CONFIG_USB_GADGET_M66592 is not set 1270# CONFIG_USB_GADGET_M66592 is not set
1242# CONFIG_USB_GADGET_AMD5536UDC is not set 1271# CONFIG_USB_GADGET_AMD5536UDC is not set
1243# CONFIG_USB_GADGET_FSL_QE is not set 1272# CONFIG_USB_GADGET_FSL_QE is not set
1273# CONFIG_USB_GADGET_CI13XXX is not set
1244CONFIG_USB_GADGET_NET2280=y 1274CONFIG_USB_GADGET_NET2280=y
1245CONFIG_USB_NET2280=y 1275CONFIG_USB_NET2280=y
1246# CONFIG_USB_GADGET_GOKU is not set 1276# CONFIG_USB_GADGET_GOKU is not set
@@ -1255,6 +1285,10 @@ CONFIG_USB_ETH_RNDIS=y
1255# CONFIG_USB_MIDI_GADGET is not set 1285# CONFIG_USB_MIDI_GADGET is not set
1256# CONFIG_USB_G_PRINTER is not set 1286# CONFIG_USB_G_PRINTER is not set
1257# CONFIG_USB_CDC_COMPOSITE is not set 1287# CONFIG_USB_CDC_COMPOSITE is not set
1288
1289#
1290# OTG and related infrastructure
1291#
1258# CONFIG_UWB is not set 1292# CONFIG_UWB is not set
1259# CONFIG_MMC is not set 1293# CONFIG_MMC is not set
1260# CONFIG_MEMSTICK is not set 1294# CONFIG_MEMSTICK is not set
@@ -1292,12 +1326,14 @@ CONFIG_RTC_DRV_DS1307=y
1292# CONFIG_RTC_DRV_M41T80 is not set 1326# CONFIG_RTC_DRV_M41T80 is not set
1293# CONFIG_RTC_DRV_S35390A is not set 1327# CONFIG_RTC_DRV_S35390A is not set
1294# CONFIG_RTC_DRV_FM3130 is not set 1328# CONFIG_RTC_DRV_FM3130 is not set
1329# CONFIG_RTC_DRV_RX8581 is not set
1295 1330
1296# 1331#
1297# SPI RTC drivers 1332# SPI RTC drivers
1298# 1333#
1299# CONFIG_RTC_DRV_M41T94 is not set 1334# CONFIG_RTC_DRV_M41T94 is not set
1300# CONFIG_RTC_DRV_DS1305 is not set 1335# CONFIG_RTC_DRV_DS1305 is not set
1336# CONFIG_RTC_DRV_DS1390 is not set
1301# CONFIG_RTC_DRV_MAX6902 is not set 1337# CONFIG_RTC_DRV_MAX6902 is not set
1302# CONFIG_RTC_DRV_R9701 is not set 1338# CONFIG_RTC_DRV_R9701 is not set
1303# CONFIG_RTC_DRV_RS5C348 is not set 1339# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1345,6 +1381,7 @@ CONFIG_FS_MBCACHE=y
1345CONFIG_FILE_LOCKING=y 1381CONFIG_FILE_LOCKING=y
1346# CONFIG_XFS_FS is not set 1382# CONFIG_XFS_FS is not set
1347# CONFIG_OCFS2_FS is not set 1383# CONFIG_OCFS2_FS is not set
1384# CONFIG_BTRFS_FS is not set
1348CONFIG_DNOTIFY=y 1385CONFIG_DNOTIFY=y
1349CONFIG_INOTIFY=y 1386CONFIG_INOTIFY=y
1350CONFIG_INOTIFY_USER=y 1387CONFIG_INOTIFY_USER=y
@@ -1378,10 +1415,7 @@ CONFIG_TMPFS=y
1378# CONFIG_TMPFS_POSIX_ACL is not set 1415# CONFIG_TMPFS_POSIX_ACL is not set
1379# CONFIG_HUGETLB_PAGE is not set 1416# CONFIG_HUGETLB_PAGE is not set
1380# CONFIG_CONFIGFS_FS is not set 1417# CONFIG_CONFIGFS_FS is not set
1381 1418CONFIG_MISC_FILESYSTEMS=y
1382#
1383# Miscellaneous filesystems
1384#
1385# CONFIG_ADFS_FS is not set 1419# CONFIG_ADFS_FS is not set
1386# CONFIG_AFFS_FS is not set 1420# CONFIG_AFFS_FS is not set
1387# CONFIG_HFS_FS is not set 1421# CONFIG_HFS_FS is not set
@@ -1401,6 +1435,7 @@ CONFIG_JFFS2_ZLIB=y
1401CONFIG_JFFS2_RTIME=y 1435CONFIG_JFFS2_RTIME=y
1402# CONFIG_JFFS2_RUBIN is not set 1436# CONFIG_JFFS2_RUBIN is not set
1403# CONFIG_CRAMFS is not set 1437# CONFIG_CRAMFS is not set
1438# CONFIG_SQUASHFS is not set
1404# CONFIG_VXFS_FS is not set 1439# CONFIG_VXFS_FS is not set
1405# CONFIG_MINIX_FS is not set 1440# CONFIG_MINIX_FS is not set
1406# CONFIG_OMFS_FS is not set 1441# CONFIG_OMFS_FS is not set
@@ -1458,6 +1493,7 @@ CONFIG_MSDOS_PARTITION=y
1458# Library routines 1493# Library routines
1459# 1494#
1460CONFIG_BITREVERSE=y 1495CONFIG_BITREVERSE=y
1496CONFIG_GENERIC_FIND_LAST_BIT=y
1461# CONFIG_CRC_CCITT is not set 1497# CONFIG_CRC_CCITT is not set
1462# CONFIG_CRC16 is not set 1498# CONFIG_CRC16 is not set
1463# CONFIG_CRC_T10DIF is not set 1499# CONFIG_CRC_T10DIF is not set
@@ -1509,6 +1545,7 @@ CONFIG_SCHED_DEBUG=y
1509# CONFIG_DEBUG_MEMORY_INIT is not set 1545# CONFIG_DEBUG_MEMORY_INIT is not set
1510# CONFIG_DEBUG_LIST is not set 1546# CONFIG_DEBUG_LIST is not set
1511# CONFIG_DEBUG_SG is not set 1547# CONFIG_DEBUG_SG is not set
1548# CONFIG_DEBUG_NOTIFIERS is not set
1512# CONFIG_BOOT_PRINTK_DELAY is not set 1549# CONFIG_BOOT_PRINTK_DELAY is not set
1513# CONFIG_RCU_TORTURE_TEST is not set 1550# CONFIG_RCU_TORTURE_TEST is not set
1514# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1551# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1518,6 +1555,8 @@ CONFIG_SCHED_DEBUG=y
1518# CONFIG_LATENCYTOP is not set 1555# CONFIG_LATENCYTOP is not set
1519CONFIG_SYSCTL_SYSCALL_CHECK=y 1556CONFIG_SYSCTL_SYSCALL_CHECK=y
1520CONFIG_HAVE_FUNCTION_TRACER=y 1557CONFIG_HAVE_FUNCTION_TRACER=y
1558CONFIG_HAVE_DYNAMIC_FTRACE=y
1559CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1521 1560
1522# 1561#
1523# Tracers 1562# Tracers
@@ -1526,11 +1565,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1526# CONFIG_SCHED_TRACER is not set 1565# CONFIG_SCHED_TRACER is not set
1527# CONFIG_CONTEXT_SWITCH_TRACER is not set 1566# CONFIG_CONTEXT_SWITCH_TRACER is not set
1528# CONFIG_BOOT_TRACER is not set 1567# CONFIG_BOOT_TRACER is not set
1568# CONFIG_TRACE_BRANCH_PROFILING is not set
1529# CONFIG_STACK_TRACER is not set 1569# CONFIG_STACK_TRACER is not set
1530# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1570# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1531# CONFIG_SAMPLES is not set 1571# CONFIG_SAMPLES is not set
1532CONFIG_HAVE_ARCH_KGDB=y 1572CONFIG_HAVE_ARCH_KGDB=y
1533# CONFIG_KGDB is not set 1573# CONFIG_KGDB is not set
1574CONFIG_PRINT_STACK_DEPTH=64
1534# CONFIG_DEBUG_STACKOVERFLOW is not set 1575# CONFIG_DEBUG_STACKOVERFLOW is not set
1535# CONFIG_DEBUG_STACK_USAGE is not set 1576# CONFIG_DEBUG_STACK_USAGE is not set
1536# CONFIG_DEBUG_PAGEALLOC is not set 1577# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1557,11 +1598,15 @@ CONFIG_CRYPTO=y
1557# 1598#
1558# CONFIG_CRYPTO_FIPS is not set 1599# CONFIG_CRYPTO_FIPS is not set
1559CONFIG_CRYPTO_ALGAPI=y 1600CONFIG_CRYPTO_ALGAPI=y
1560CONFIG_CRYPTO_AEAD=y 1601CONFIG_CRYPTO_ALGAPI2=y
1602CONFIG_CRYPTO_AEAD2=y
1561CONFIG_CRYPTO_BLKCIPHER=y 1603CONFIG_CRYPTO_BLKCIPHER=y
1604CONFIG_CRYPTO_BLKCIPHER2=y
1562CONFIG_CRYPTO_HASH=y 1605CONFIG_CRYPTO_HASH=y
1563CONFIG_CRYPTO_RNG=y 1606CONFIG_CRYPTO_HASH2=y
1607CONFIG_CRYPTO_RNG2=y
1564CONFIG_CRYPTO_MANAGER=y 1608CONFIG_CRYPTO_MANAGER=y
1609CONFIG_CRYPTO_MANAGER2=y
1565# CONFIG_CRYPTO_GF128MUL is not set 1610# CONFIG_CRYPTO_GF128MUL is not set
1566# CONFIG_CRYPTO_NULL is not set 1611# CONFIG_CRYPTO_NULL is not set
1567# CONFIG_CRYPTO_CRYPTD is not set 1612# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 9cb8c8b956e4..fb17de53cc02 100644
--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:53 2008 4# Mon Jan 26 15:35:50 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199# CONFIG_QE_GPIO is not set 199# CONFIG_QE_GPIO is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -226,6 +228,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 228CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
231# CONFIG_CRASH_DUMP is not set
229CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
231CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -237,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_PCI_SYSCALL=y
267CONFIG_ARCH_SUPPORTS_MSI=y 272CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -405,8 +414,10 @@ CONFIG_MISC_DEVICES=y
405# CONFIG_EEPROM_93CX6 is not set 414# CONFIG_EEPROM_93CX6 is not set
406# CONFIG_SGI_IOC4 is not set 415# CONFIG_SGI_IOC4 is not set
407# CONFIG_TIFM_CORE is not set 416# CONFIG_TIFM_CORE is not set
417# CONFIG_ICS932S401 is not set
408# CONFIG_ENCLOSURE_SERVICES is not set 418# CONFIG_ENCLOSURE_SERVICES is not set
409# CONFIG_HP_ILO is not set 419# CONFIG_HP_ILO is not set
420# CONFIG_C2PORT is not set
410CONFIG_HAVE_IDE=y 421CONFIG_HAVE_IDE=y
411# CONFIG_IDE is not set 422# CONFIG_IDE is not set
412 423
@@ -449,6 +460,7 @@ CONFIG_SCSI_WAIT_SCAN=m
449# CONFIG_SCSI_SRP_ATTRS is not set 460# CONFIG_SCSI_SRP_ATTRS is not set
450CONFIG_SCSI_LOWLEVEL=y 461CONFIG_SCSI_LOWLEVEL=y
451# CONFIG_ISCSI_TCP is not set 462# CONFIG_ISCSI_TCP is not set
463# CONFIG_SCSI_CXGB3_ISCSI is not set
452# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 464# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
453# CONFIG_SCSI_3W_9XXX is not set 465# CONFIG_SCSI_3W_9XXX is not set
454# CONFIG_SCSI_ACARD is not set 466# CONFIG_SCSI_ACARD is not set
@@ -465,6 +477,8 @@ CONFIG_SCSI_LOWLEVEL=y
465# CONFIG_MEGARAID_SAS is not set 477# CONFIG_MEGARAID_SAS is not set
466# CONFIG_SCSI_HPTIOP is not set 478# CONFIG_SCSI_HPTIOP is not set
467# CONFIG_SCSI_BUSLOGIC is not set 479# CONFIG_SCSI_BUSLOGIC is not set
480# CONFIG_LIBFC is not set
481# CONFIG_FCOE is not set
468# CONFIG_SCSI_DMX3191D is not set 482# CONFIG_SCSI_DMX3191D is not set
469# CONFIG_SCSI_EATA is not set 483# CONFIG_SCSI_EATA is not set
470# CONFIG_SCSI_FUTURE_DOMAIN is not set 484# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -523,6 +537,9 @@ CONFIG_DAVICOM_PHY=y
523# CONFIG_BROADCOM_PHY is not set 537# CONFIG_BROADCOM_PHY is not set
524# CONFIG_ICPLUS_PHY is not set 538# CONFIG_ICPLUS_PHY is not set
525# CONFIG_REALTEK_PHY is not set 539# CONFIG_REALTEK_PHY is not set
540# CONFIG_NATIONAL_PHY is not set
541# CONFIG_STE10XP is not set
542# CONFIG_LSI_ET1011C_PHY is not set
526# CONFIG_FIXED_PHY is not set 543# CONFIG_FIXED_PHY is not set
527# CONFIG_MDIO_BITBANG is not set 544# CONFIG_MDIO_BITBANG is not set
528CONFIG_NET_ETHERNET=y 545CONFIG_NET_ETHERNET=y
@@ -563,7 +580,6 @@ CONFIG_NETDEV_1000=y
563# CONFIG_GIANFAR is not set 580# CONFIG_GIANFAR is not set
564CONFIG_UCC_GETH=y 581CONFIG_UCC_GETH=y
565# CONFIG_UGETH_MAGIC_PACKET is not set 582# CONFIG_UGETH_MAGIC_PACKET is not set
566# CONFIG_UGETH_FILTERING is not set
567# CONFIG_UGETH_TX_ON_DEMAND is not set 583# CONFIG_UGETH_TX_ON_DEMAND is not set
568# CONFIG_MV643XX_ETH is not set 584# CONFIG_MV643XX_ETH is not set
569# CONFIG_QLA3XXX is not set 585# CONFIG_QLA3XXX is not set
@@ -572,6 +588,7 @@ CONFIG_UCC_GETH=y
572# CONFIG_JME is not set 588# CONFIG_JME is not set
573CONFIG_NETDEV_10000=y 589CONFIG_NETDEV_10000=y
574# CONFIG_CHELSIO_T1 is not set 590# CONFIG_CHELSIO_T1 is not set
591CONFIG_CHELSIO_T3_DEPENDS=y
575# CONFIG_CHELSIO_T3 is not set 592# CONFIG_CHELSIO_T3 is not set
576# CONFIG_ENIC is not set 593# CONFIG_ENIC is not set
577# CONFIG_IXGBE is not set 594# CONFIG_IXGBE is not set
@@ -594,6 +611,10 @@ CONFIG_NETDEV_10000=y
594# CONFIG_WLAN_PRE80211 is not set 611# CONFIG_WLAN_PRE80211 is not set
595# CONFIG_WLAN_80211 is not set 612# CONFIG_WLAN_80211 is not set
596# CONFIG_IWLWIFI_LEDS is not set 613# CONFIG_IWLWIFI_LEDS is not set
614
615#
616# Enable WiMAX (Networking options) to see the WiMAX drivers
617#
597# CONFIG_WAN is not set 618# CONFIG_WAN is not set
598# CONFIG_FDDI is not set 619# CONFIG_FDDI is not set
599# CONFIG_HIPPI is not set 620# CONFIG_HIPPI is not set
@@ -665,8 +686,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
665# CONFIG_SERIAL_OF_PLATFORM is not set 686# CONFIG_SERIAL_OF_PLATFORM is not set
666# CONFIG_SERIAL_QE is not set 687# CONFIG_SERIAL_QE is not set
667CONFIG_UNIX98_PTYS=y 688CONFIG_UNIX98_PTYS=y
689# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
668CONFIG_LEGACY_PTYS=y 690CONFIG_LEGACY_PTYS=y
669CONFIG_LEGACY_PTY_COUNT=256 691CONFIG_LEGACY_PTY_COUNT=256
692# CONFIG_HVC_UDBG is not set
670# CONFIG_IPMI_HANDLER is not set 693# CONFIG_IPMI_HANDLER is not set
671CONFIG_HW_RANDOM=y 694CONFIG_HW_RANDOM=y
672# CONFIG_NVRAM is not set 695# CONFIG_NVRAM is not set
@@ -730,15 +753,14 @@ CONFIG_I2C_MPC=y
730# Miscellaneous I2C Chip support 753# Miscellaneous I2C Chip support
731# 754#
732# CONFIG_DS1682 is not set 755# CONFIG_DS1682 is not set
733# CONFIG_AT24 is not set 756# CONFIG_EEPROM_AT24 is not set
734# CONFIG_SENSORS_EEPROM is not set 757# CONFIG_EEPROM_LEGACY is not set
735# CONFIG_SENSORS_PCF8574 is not set 758# CONFIG_SENSORS_PCF8574 is not set
736# CONFIG_PCF8575 is not set 759# CONFIG_PCF8575 is not set
737# CONFIG_SENSORS_PCA9539 is not set 760# CONFIG_SENSORS_PCA9539 is not set
738# CONFIG_SENSORS_PCF8591 is not set 761# CONFIG_SENSORS_PCF8591 is not set
739# CONFIG_SENSORS_MAX6875 is not set 762# CONFIG_SENSORS_MAX6875 is not set
740# CONFIG_SENSORS_TSL2550 is not set 763# CONFIG_SENSORS_TSL2550 is not set
741# CONFIG_MCU_MPC8349EMITX is not set
742# CONFIG_I2C_DEBUG_CORE is not set 764# CONFIG_I2C_DEBUG_CORE is not set
743# CONFIG_I2C_DEBUG_ALGO is not set 765# CONFIG_I2C_DEBUG_ALGO is not set
744# CONFIG_I2C_DEBUG_BUS is not set 766# CONFIG_I2C_DEBUG_BUS is not set
@@ -758,8 +780,10 @@ CONFIG_HWMON=y
758# CONFIG_SENSORS_ADM1029 is not set 780# CONFIG_SENSORS_ADM1029 is not set
759# CONFIG_SENSORS_ADM1031 is not set 781# CONFIG_SENSORS_ADM1031 is not set
760# CONFIG_SENSORS_ADM9240 is not set 782# CONFIG_SENSORS_ADM9240 is not set
783# CONFIG_SENSORS_ADT7462 is not set
761# CONFIG_SENSORS_ADT7470 is not set 784# CONFIG_SENSORS_ADT7470 is not set
762# CONFIG_SENSORS_ADT7473 is not set 785# CONFIG_SENSORS_ADT7473 is not set
786# CONFIG_SENSORS_ADT7475 is not set
763# CONFIG_SENSORS_ATXP1 is not set 787# CONFIG_SENSORS_ATXP1 is not set
764# CONFIG_SENSORS_DS1621 is not set 788# CONFIG_SENSORS_DS1621 is not set
765# CONFIG_SENSORS_I5K_AMB is not set 789# CONFIG_SENSORS_I5K_AMB is not set
@@ -780,6 +804,7 @@ CONFIG_HWMON=y
780# CONFIG_SENSORS_LM90 is not set 804# CONFIG_SENSORS_LM90 is not set
781# CONFIG_SENSORS_LM92 is not set 805# CONFIG_SENSORS_LM92 is not set
782# CONFIG_SENSORS_LM93 is not set 806# CONFIG_SENSORS_LM93 is not set
807# CONFIG_SENSORS_LTC4245 is not set
783# CONFIG_SENSORS_MAX1619 is not set 808# CONFIG_SENSORS_MAX1619 is not set
784# CONFIG_SENSORS_MAX6650 is not set 809# CONFIG_SENSORS_MAX6650 is not set
785# CONFIG_SENSORS_PC87360 is not set 810# CONFIG_SENSORS_PC87360 is not set
@@ -820,11 +845,11 @@ CONFIG_WATCHDOG=y
820# 845#
821# CONFIG_PCIPCWATCHDOG is not set 846# CONFIG_PCIPCWATCHDOG is not set
822# CONFIG_WDTPCI is not set 847# CONFIG_WDTPCI is not set
848CONFIG_SSB_POSSIBLE=y
823 849
824# 850#
825# Sonics Silicon Backplane 851# Sonics Silicon Backplane
826# 852#
827CONFIG_SSB_POSSIBLE=y
828# CONFIG_SSB is not set 853# CONFIG_SSB is not set
829 854
830# 855#
@@ -833,18 +858,13 @@ CONFIG_SSB_POSSIBLE=y
833# CONFIG_MFD_CORE is not set 858# CONFIG_MFD_CORE is not set
834# CONFIG_MFD_SM501 is not set 859# CONFIG_MFD_SM501 is not set
835# CONFIG_HTC_PASIC3 is not set 860# CONFIG_HTC_PASIC3 is not set
861# CONFIG_TWL4030_CORE is not set
836# CONFIG_MFD_TMIO is not set 862# CONFIG_MFD_TMIO is not set
837# CONFIG_PMIC_DA903X is not set 863# CONFIG_PMIC_DA903X is not set
838# CONFIG_MFD_WM8400 is not set 864# CONFIG_MFD_WM8400 is not set
839# CONFIG_MFD_WM8350_I2C is not set 865# CONFIG_MFD_WM8350_I2C is not set
840 866# CONFIG_MFD_PCF50633 is not set
841#
842# Voltage and Current regulators
843#
844# CONFIG_REGULATOR is not set 867# CONFIG_REGULATOR is not set
845# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
846# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
847# CONFIG_REGULATOR_BQ24022 is not set
848 868
849# 869#
850# Multimedia devices 870# Multimedia devices
@@ -900,9 +920,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
900# 920#
901 921
902# 922#
903# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 923# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
904# 924#
905# CONFIG_USB_GADGET is not set 925# CONFIG_USB_GADGET is not set
926
927#
928# OTG and related infrastructure
929#
906# CONFIG_UWB is not set 930# CONFIG_UWB is not set
907# CONFIG_MMC is not set 931# CONFIG_MMC is not set
908# CONFIG_MEMSTICK is not set 932# CONFIG_MEMSTICK is not set
@@ -940,6 +964,7 @@ CONFIG_RTC_DRV_DS1374=y
940# CONFIG_RTC_DRV_M41T80 is not set 964# CONFIG_RTC_DRV_M41T80 is not set
941# CONFIG_RTC_DRV_S35390A is not set 965# CONFIG_RTC_DRV_S35390A is not set
942# CONFIG_RTC_DRV_FM3130 is not set 966# CONFIG_RTC_DRV_FM3130 is not set
967# CONFIG_RTC_DRV_RX8581 is not set
943 968
944# 969#
945# SPI RTC drivers 970# SPI RTC drivers
@@ -987,6 +1012,7 @@ CONFIG_FS_MBCACHE=y
987CONFIG_FILE_LOCKING=y 1012CONFIG_FILE_LOCKING=y
988# CONFIG_XFS_FS is not set 1013# CONFIG_XFS_FS is not set
989# CONFIG_OCFS2_FS is not set 1014# CONFIG_OCFS2_FS is not set
1015# CONFIG_BTRFS_FS is not set
990CONFIG_DNOTIFY=y 1016CONFIG_DNOTIFY=y
991CONFIG_INOTIFY=y 1017CONFIG_INOTIFY=y
992CONFIG_INOTIFY_USER=y 1018CONFIG_INOTIFY_USER=y
@@ -1020,10 +1046,7 @@ CONFIG_TMPFS=y
1020# CONFIG_TMPFS_POSIX_ACL is not set 1046# CONFIG_TMPFS_POSIX_ACL is not set
1021# CONFIG_HUGETLB_PAGE is not set 1047# CONFIG_HUGETLB_PAGE is not set
1022# CONFIG_CONFIGFS_FS is not set 1048# CONFIG_CONFIGFS_FS is not set
1023 1049CONFIG_MISC_FILESYSTEMS=y
1024#
1025# Miscellaneous filesystems
1026#
1027# CONFIG_ADFS_FS is not set 1050# CONFIG_ADFS_FS is not set
1028# CONFIG_AFFS_FS is not set 1051# CONFIG_AFFS_FS is not set
1029# CONFIG_HFS_FS is not set 1052# CONFIG_HFS_FS is not set
@@ -1032,6 +1055,7 @@ CONFIG_TMPFS=y
1032# CONFIG_BFS_FS is not set 1055# CONFIG_BFS_FS is not set
1033# CONFIG_EFS_FS is not set 1056# CONFIG_EFS_FS is not set
1034# CONFIG_CRAMFS is not set 1057# CONFIG_CRAMFS is not set
1058# CONFIG_SQUASHFS is not set
1035# CONFIG_VXFS_FS is not set 1059# CONFIG_VXFS_FS is not set
1036# CONFIG_MINIX_FS is not set 1060# CONFIG_MINIX_FS is not set
1037# CONFIG_OMFS_FS is not set 1061# CONFIG_OMFS_FS is not set
@@ -1087,6 +1111,7 @@ CONFIG_UCC=y
1087# Library routines 1111# Library routines
1088# 1112#
1089CONFIG_BITREVERSE=y 1113CONFIG_BITREVERSE=y
1114CONFIG_GENERIC_FIND_LAST_BIT=y
1090# CONFIG_CRC_CCITT is not set 1115# CONFIG_CRC_CCITT is not set
1091# CONFIG_CRC16 is not set 1116# CONFIG_CRC16 is not set
1092# CONFIG_CRC_T10DIF is not set 1117# CONFIG_CRC_T10DIF is not set
@@ -1120,6 +1145,8 @@ CONFIG_FRAME_WARN=1024
1120# CONFIG_LATENCYTOP is not set 1145# CONFIG_LATENCYTOP is not set
1121CONFIG_SYSCTL_SYSCALL_CHECK=y 1146CONFIG_SYSCTL_SYSCALL_CHECK=y
1122CONFIG_HAVE_FUNCTION_TRACER=y 1147CONFIG_HAVE_FUNCTION_TRACER=y
1148CONFIG_HAVE_DYNAMIC_FTRACE=y
1149CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1123 1150
1124# 1151#
1125# Tracers 1152# Tracers
@@ -1127,6 +1154,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1127# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1154# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1128# CONFIG_SAMPLES is not set 1155# CONFIG_SAMPLES is not set
1129CONFIG_HAVE_ARCH_KGDB=y 1156CONFIG_HAVE_ARCH_KGDB=y
1157CONFIG_PRINT_STACK_DEPTH=64
1130# CONFIG_IRQSTACKS is not set 1158# CONFIG_IRQSTACKS is not set
1131# CONFIG_BOOTX_TEXT is not set 1159# CONFIG_BOOTX_TEXT is not set
1132# CONFIG_PPC_EARLY_DEBUG is not set 1160# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1145,11 +1173,15 @@ CONFIG_CRYPTO=y
1145# 1173#
1146# CONFIG_CRYPTO_FIPS is not set 1174# CONFIG_CRYPTO_FIPS is not set
1147CONFIG_CRYPTO_ALGAPI=y 1175CONFIG_CRYPTO_ALGAPI=y
1148CONFIG_CRYPTO_AEAD=y 1176CONFIG_CRYPTO_ALGAPI2=y
1177CONFIG_CRYPTO_AEAD2=y
1149CONFIG_CRYPTO_BLKCIPHER=y 1178CONFIG_CRYPTO_BLKCIPHER=y
1179CONFIG_CRYPTO_BLKCIPHER2=y
1150CONFIG_CRYPTO_HASH=y 1180CONFIG_CRYPTO_HASH=y
1151CONFIG_CRYPTO_RNG=y 1181CONFIG_CRYPTO_HASH2=y
1182CONFIG_CRYPTO_RNG2=y
1152CONFIG_CRYPTO_MANAGER=y 1183CONFIG_CRYPTO_MANAGER=y
1184CONFIG_CRYPTO_MANAGER2=y
1153# CONFIG_CRYPTO_GF128MUL is not set 1185# CONFIG_CRYPTO_GF128MUL is not set
1154# CONFIG_CRYPTO_NULL is not set 1186# CONFIG_CRYPTO_NULL is not set
1155# CONFIG_CRYPTO_CRYPTD is not set 1187# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index 9cc976f010c9..a012ce235203 100644
--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_rdb_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:54 2008 4# Mon Jan 26 15:35:52 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199# CONFIG_QE_GPIO is not set 199# CONFIG_QE_GPIO is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -226,6 +228,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 228CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
231# CONFIG_CRASH_DUMP is not set
229CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
231CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -237,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_PCI_SYSCALL=y
267CONFIG_ARCH_SUPPORTS_MSI=y 272CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -407,8 +416,10 @@ CONFIG_MISC_DEVICES=y
407# CONFIG_EEPROM_93CX6 is not set 416# CONFIG_EEPROM_93CX6 is not set
408# CONFIG_SGI_IOC4 is not set 417# CONFIG_SGI_IOC4 is not set
409# CONFIG_TIFM_CORE is not set 418# CONFIG_TIFM_CORE is not set
419# CONFIG_ICS932S401 is not set
410# CONFIG_ENCLOSURE_SERVICES is not set 420# CONFIG_ENCLOSURE_SERVICES is not set
411# CONFIG_HP_ILO is not set 421# CONFIG_HP_ILO is not set
422# CONFIG_C2PORT is not set
412CONFIG_HAVE_IDE=y 423CONFIG_HAVE_IDE=y
413# CONFIG_IDE is not set 424# CONFIG_IDE is not set
414 425
@@ -451,6 +462,7 @@ CONFIG_SCSI_WAIT_SCAN=m
451# CONFIG_SCSI_SRP_ATTRS is not set 462# CONFIG_SCSI_SRP_ATTRS is not set
452CONFIG_SCSI_LOWLEVEL=y 463CONFIG_SCSI_LOWLEVEL=y
453# CONFIG_ISCSI_TCP is not set 464# CONFIG_ISCSI_TCP is not set
465# CONFIG_SCSI_CXGB3_ISCSI is not set
454# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 466# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
455# CONFIG_SCSI_3W_9XXX is not set 467# CONFIG_SCSI_3W_9XXX is not set
456# CONFIG_SCSI_ACARD is not set 468# CONFIG_SCSI_ACARD is not set
@@ -467,6 +479,8 @@ CONFIG_SCSI_LOWLEVEL=y
467# CONFIG_MEGARAID_SAS is not set 479# CONFIG_MEGARAID_SAS is not set
468# CONFIG_SCSI_HPTIOP is not set 480# CONFIG_SCSI_HPTIOP is not set
469# CONFIG_SCSI_BUSLOGIC is not set 481# CONFIG_SCSI_BUSLOGIC is not set
482# CONFIG_LIBFC is not set
483# CONFIG_FCOE is not set
470# CONFIG_SCSI_DMX3191D is not set 484# CONFIG_SCSI_DMX3191D is not set
471# CONFIG_SCSI_EATA is not set 485# CONFIG_SCSI_EATA is not set
472# CONFIG_SCSI_FUTURE_DOMAIN is not set 486# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -525,6 +539,9 @@ CONFIG_PHYLIB=y
525# CONFIG_BROADCOM_PHY is not set 539# CONFIG_BROADCOM_PHY is not set
526CONFIG_ICPLUS_PHY=y 540CONFIG_ICPLUS_PHY=y
527# CONFIG_REALTEK_PHY is not set 541# CONFIG_REALTEK_PHY is not set
542# CONFIG_NATIONAL_PHY is not set
543# CONFIG_STE10XP is not set
544# CONFIG_LSI_ET1011C_PHY is not set
528# CONFIG_FIXED_PHY is not set 545# CONFIG_FIXED_PHY is not set
529# CONFIG_MDIO_BITBANG is not set 546# CONFIG_MDIO_BITBANG is not set
530CONFIG_NET_ETHERNET=y 547CONFIG_NET_ETHERNET=y
@@ -566,7 +583,6 @@ CONFIG_E1000=y
566# CONFIG_GIANFAR is not set 583# CONFIG_GIANFAR is not set
567CONFIG_UCC_GETH=y 584CONFIG_UCC_GETH=y
568# CONFIG_UGETH_MAGIC_PACKET is not set 585# CONFIG_UGETH_MAGIC_PACKET is not set
569# CONFIG_UGETH_FILTERING is not set
570# CONFIG_UGETH_TX_ON_DEMAND is not set 586# CONFIG_UGETH_TX_ON_DEMAND is not set
571# CONFIG_MV643XX_ETH is not set 587# CONFIG_MV643XX_ETH is not set
572# CONFIG_QLA3XXX is not set 588# CONFIG_QLA3XXX is not set
@@ -575,6 +591,7 @@ CONFIG_UCC_GETH=y
575# CONFIG_JME is not set 591# CONFIG_JME is not set
576CONFIG_NETDEV_10000=y 592CONFIG_NETDEV_10000=y
577# CONFIG_CHELSIO_T1 is not set 593# CONFIG_CHELSIO_T1 is not set
594CONFIG_CHELSIO_T3_DEPENDS=y
578# CONFIG_CHELSIO_T3 is not set 595# CONFIG_CHELSIO_T3 is not set
579# CONFIG_ENIC is not set 596# CONFIG_ENIC is not set
580# CONFIG_IXGBE is not set 597# CONFIG_IXGBE is not set
@@ -599,6 +616,10 @@ CONFIG_NETDEV_10000=y
599# CONFIG_IWLWIFI_LEDS is not set 616# CONFIG_IWLWIFI_LEDS is not set
600 617
601# 618#
619# Enable WiMAX (Networking options) to see the WiMAX drivers
620#
621
622#
602# USB Network Adapters 623# USB Network Adapters
603# 624#
604# CONFIG_USB_CATC is not set 625# CONFIG_USB_CATC is not set
@@ -677,8 +698,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
677# CONFIG_SERIAL_OF_PLATFORM is not set 698# CONFIG_SERIAL_OF_PLATFORM is not set
678# CONFIG_SERIAL_QE is not set 699# CONFIG_SERIAL_QE is not set
679CONFIG_UNIX98_PTYS=y 700CONFIG_UNIX98_PTYS=y
701# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
680CONFIG_LEGACY_PTYS=y 702CONFIG_LEGACY_PTYS=y
681CONFIG_LEGACY_PTY_COUNT=256 703CONFIG_LEGACY_PTY_COUNT=256
704# CONFIG_HVC_UDBG is not set
682# CONFIG_IPMI_HANDLER is not set 705# CONFIG_IPMI_HANDLER is not set
683CONFIG_HW_RANDOM=y 706CONFIG_HW_RANDOM=y
684# CONFIG_NVRAM is not set 707# CONFIG_NVRAM is not set
@@ -745,15 +768,14 @@ CONFIG_I2C_MPC=y
745# Miscellaneous I2C Chip support 768# Miscellaneous I2C Chip support
746# 769#
747# CONFIG_DS1682 is not set 770# CONFIG_DS1682 is not set
748# CONFIG_AT24 is not set 771# CONFIG_EEPROM_AT24 is not set
749# CONFIG_SENSORS_EEPROM is not set 772# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 773# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_PCF8575 is not set 774# CONFIG_PCF8575 is not set
752# CONFIG_SENSORS_PCA9539 is not set 775# CONFIG_SENSORS_PCA9539 is not set
753# CONFIG_SENSORS_PCF8591 is not set 776# CONFIG_SENSORS_PCF8591 is not set
754# CONFIG_SENSORS_MAX6875 is not set 777# CONFIG_SENSORS_MAX6875 is not set
755# CONFIG_SENSORS_TSL2550 is not set 778# CONFIG_SENSORS_TSL2550 is not set
756# CONFIG_MCU_MPC8349EMITX is not set
757# CONFIG_I2C_DEBUG_CORE is not set 779# CONFIG_I2C_DEBUG_CORE is not set
758# CONFIG_I2C_DEBUG_ALGO is not set 780# CONFIG_I2C_DEBUG_ALGO is not set
759# CONFIG_I2C_DEBUG_BUS is not set 781# CONFIG_I2C_DEBUG_BUS is not set
@@ -770,7 +792,7 @@ CONFIG_SPI_MPC83xx=y
770# 792#
771# SPI Protocol Masters 793# SPI Protocol Masters
772# 794#
773# CONFIG_SPI_AT25 is not set 795# CONFIG_EEPROM_AT25 is not set
774# CONFIG_SPI_SPIDEV is not set 796# CONFIG_SPI_SPIDEV is not set
775# CONFIG_SPI_TLE62X0 is not set 797# CONFIG_SPI_TLE62X0 is not set
776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 798CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -788,8 +810,10 @@ CONFIG_HWMON=y
788# CONFIG_SENSORS_ADM1029 is not set 810# CONFIG_SENSORS_ADM1029 is not set
789# CONFIG_SENSORS_ADM1031 is not set 811# CONFIG_SENSORS_ADM1031 is not set
790# CONFIG_SENSORS_ADM9240 is not set 812# CONFIG_SENSORS_ADM9240 is not set
813# CONFIG_SENSORS_ADT7462 is not set
791# CONFIG_SENSORS_ADT7470 is not set 814# CONFIG_SENSORS_ADT7470 is not set
792# CONFIG_SENSORS_ADT7473 is not set 815# CONFIG_SENSORS_ADT7473 is not set
816# CONFIG_SENSORS_ADT7475 is not set
793# CONFIG_SENSORS_ATXP1 is not set 817# CONFIG_SENSORS_ATXP1 is not set
794# CONFIG_SENSORS_DS1621 is not set 818# CONFIG_SENSORS_DS1621 is not set
795# CONFIG_SENSORS_I5K_AMB is not set 819# CONFIG_SENSORS_I5K_AMB is not set
@@ -811,6 +835,7 @@ CONFIG_HWMON=y
811# CONFIG_SENSORS_LM90 is not set 835# CONFIG_SENSORS_LM90 is not set
812# CONFIG_SENSORS_LM92 is not set 836# CONFIG_SENSORS_LM92 is not set
813# CONFIG_SENSORS_LM93 is not set 837# CONFIG_SENSORS_LM93 is not set
838# CONFIG_SENSORS_LTC4245 is not set
814# CONFIG_SENSORS_MAX1111 is not set 839# CONFIG_SENSORS_MAX1111 is not set
815# CONFIG_SENSORS_MAX1619 is not set 840# CONFIG_SENSORS_MAX1619 is not set
816# CONFIG_SENSORS_MAX6650 is not set 841# CONFIG_SENSORS_MAX6650 is not set
@@ -857,11 +882,11 @@ CONFIG_WATCHDOG=y
857# USB-based Watchdog Cards 882# USB-based Watchdog Cards
858# 883#
859# CONFIG_USBPCWATCHDOG is not set 884# CONFIG_USBPCWATCHDOG is not set
885CONFIG_SSB_POSSIBLE=y
860 886
861# 887#
862# Sonics Silicon Backplane 888# Sonics Silicon Backplane
863# 889#
864CONFIG_SSB_POSSIBLE=y
865# CONFIG_SSB is not set 890# CONFIG_SSB is not set
866 891
867# 892#
@@ -870,18 +895,13 @@ CONFIG_SSB_POSSIBLE=y
870# CONFIG_MFD_CORE is not set 895# CONFIG_MFD_CORE is not set
871# CONFIG_MFD_SM501 is not set 896# CONFIG_MFD_SM501 is not set
872# CONFIG_HTC_PASIC3 is not set 897# CONFIG_HTC_PASIC3 is not set
898# CONFIG_TWL4030_CORE is not set
873# CONFIG_MFD_TMIO is not set 899# CONFIG_MFD_TMIO is not set
874# CONFIG_PMIC_DA903X is not set 900# CONFIG_PMIC_DA903X is not set
875# CONFIG_MFD_WM8400 is not set 901# CONFIG_MFD_WM8400 is not set
876# CONFIG_MFD_WM8350_I2C is not set 902# CONFIG_MFD_WM8350_I2C is not set
877 903# CONFIG_MFD_PCF50633 is not set
878#
879# Voltage and Current regulators
880#
881# CONFIG_REGULATOR is not set 904# CONFIG_REGULATOR is not set
882# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
883# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
884# CONFIG_REGULATOR_BQ24022 is not set
885 905
886# 906#
887# Multimedia devices 907# Multimedia devices
@@ -966,6 +986,7 @@ CONFIG_USB_EHCI_HCD=y
966# CONFIG_USB_EHCI_TT_NEWSCHED is not set 986# CONFIG_USB_EHCI_TT_NEWSCHED is not set
967# CONFIG_USB_EHCI_FSL is not set 987# CONFIG_USB_EHCI_FSL is not set
968CONFIG_USB_EHCI_HCD_PPC_OF=y 988CONFIG_USB_EHCI_HCD_PPC_OF=y
989# CONFIG_USB_OXU210HP_HCD is not set
969# CONFIG_USB_ISP116X_HCD is not set 990# CONFIG_USB_ISP116X_HCD is not set
970# CONFIG_USB_ISP1760_HCD is not set 991# CONFIG_USB_ISP1760_HCD is not set
971CONFIG_USB_OHCI_HCD=y 992CONFIG_USB_OHCI_HCD=y
@@ -991,18 +1012,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
991# CONFIG_USB_TMC is not set 1012# CONFIG_USB_TMC is not set
992 1013
993# 1014#
994# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1015# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
995# 1016#
996 1017
997# 1018#
998# may also be needed; see USB_STORAGE Help for more information 1019# see USB_STORAGE Help for more information
999# 1020#
1000CONFIG_USB_STORAGE=y 1021CONFIG_USB_STORAGE=y
1001# CONFIG_USB_STORAGE_DEBUG is not set 1022# CONFIG_USB_STORAGE_DEBUG is not set
1002# CONFIG_USB_STORAGE_DATAFAB is not set 1023# CONFIG_USB_STORAGE_DATAFAB is not set
1003# CONFIG_USB_STORAGE_FREECOM is not set 1024# CONFIG_USB_STORAGE_FREECOM is not set
1004# CONFIG_USB_STORAGE_ISD200 is not set 1025# CONFIG_USB_STORAGE_ISD200 is not set
1005# CONFIG_USB_STORAGE_DPCM is not set
1006# CONFIG_USB_STORAGE_USBAT is not set 1026# CONFIG_USB_STORAGE_USBAT is not set
1007# CONFIG_USB_STORAGE_SDDR09 is not set 1027# CONFIG_USB_STORAGE_SDDR09 is not set
1008# CONFIG_USB_STORAGE_SDDR55 is not set 1028# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1050,6 +1070,10 @@ CONFIG_USB_STORAGE=y
1050# CONFIG_USB_ISIGHTFW is not set 1070# CONFIG_USB_ISIGHTFW is not set
1051# CONFIG_USB_VST is not set 1071# CONFIG_USB_VST is not set
1052# CONFIG_USB_GADGET is not set 1072# CONFIG_USB_GADGET is not set
1073
1074#
1075# OTG and related infrastructure
1076#
1053# CONFIG_UWB is not set 1077# CONFIG_UWB is not set
1054CONFIG_MMC=y 1078CONFIG_MMC=y
1055# CONFIG_MMC_DEBUG is not set 1079# CONFIG_MMC_DEBUG is not set
@@ -1099,6 +1123,7 @@ CONFIG_FS_MBCACHE=y
1099CONFIG_FILE_LOCKING=y 1123CONFIG_FILE_LOCKING=y
1100# CONFIG_XFS_FS is not set 1124# CONFIG_XFS_FS is not set
1101# CONFIG_OCFS2_FS is not set 1125# CONFIG_OCFS2_FS is not set
1126# CONFIG_BTRFS_FS is not set
1102CONFIG_DNOTIFY=y 1127CONFIG_DNOTIFY=y
1103CONFIG_INOTIFY=y 1128CONFIG_INOTIFY=y
1104CONFIG_INOTIFY_USER=y 1129CONFIG_INOTIFY_USER=y
@@ -1135,10 +1160,7 @@ CONFIG_TMPFS=y
1135# CONFIG_TMPFS_POSIX_ACL is not set 1160# CONFIG_TMPFS_POSIX_ACL is not set
1136# CONFIG_HUGETLB_PAGE is not set 1161# CONFIG_HUGETLB_PAGE is not set
1137# CONFIG_CONFIGFS_FS is not set 1162# CONFIG_CONFIGFS_FS is not set
1138 1163CONFIG_MISC_FILESYSTEMS=y
1139#
1140# Miscellaneous filesystems
1141#
1142# CONFIG_ADFS_FS is not set 1164# CONFIG_ADFS_FS is not set
1143# CONFIG_AFFS_FS is not set 1165# CONFIG_AFFS_FS is not set
1144# CONFIG_HFS_FS is not set 1166# CONFIG_HFS_FS is not set
@@ -1147,6 +1169,7 @@ CONFIG_TMPFS=y
1147# CONFIG_BFS_FS is not set 1169# CONFIG_BFS_FS is not set
1148# CONFIG_EFS_FS is not set 1170# CONFIG_EFS_FS is not set
1149# CONFIG_CRAMFS is not set 1171# CONFIG_CRAMFS is not set
1172# CONFIG_SQUASHFS is not set
1150# CONFIG_VXFS_FS is not set 1173# CONFIG_VXFS_FS is not set
1151# CONFIG_MINIX_FS is not set 1174# CONFIG_MINIX_FS is not set
1152# CONFIG_OMFS_FS is not set 1175# CONFIG_OMFS_FS is not set
@@ -1246,6 +1269,7 @@ CONFIG_UCC=y
1246# Library routines 1269# Library routines
1247# 1270#
1248CONFIG_BITREVERSE=y 1271CONFIG_BITREVERSE=y
1272CONFIG_GENERIC_FIND_LAST_BIT=y
1249# CONFIG_CRC_CCITT is not set 1273# CONFIG_CRC_CCITT is not set
1250# CONFIG_CRC16 is not set 1274# CONFIG_CRC16 is not set
1251CONFIG_CRC_T10DIF=y 1275CONFIG_CRC_T10DIF=y
@@ -1279,6 +1303,8 @@ CONFIG_FRAME_WARN=1024
1279# CONFIG_LATENCYTOP is not set 1303# CONFIG_LATENCYTOP is not set
1280CONFIG_SYSCTL_SYSCALL_CHECK=y 1304CONFIG_SYSCTL_SYSCALL_CHECK=y
1281CONFIG_HAVE_FUNCTION_TRACER=y 1305CONFIG_HAVE_FUNCTION_TRACER=y
1306CONFIG_HAVE_DYNAMIC_FTRACE=y
1307CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1282 1308
1283# 1309#
1284# Tracers 1310# Tracers
@@ -1286,6 +1312,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1286# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1312# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1287# CONFIG_SAMPLES is not set 1313# CONFIG_SAMPLES is not set
1288CONFIG_HAVE_ARCH_KGDB=y 1314CONFIG_HAVE_ARCH_KGDB=y
1315CONFIG_PRINT_STACK_DEPTH=64
1289# CONFIG_IRQSTACKS is not set 1316# CONFIG_IRQSTACKS is not set
1290# CONFIG_BOOTX_TEXT is not set 1317# CONFIG_BOOTX_TEXT is not set
1291# CONFIG_PPC_EARLY_DEBUG is not set 1318# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1304,11 +1331,15 @@ CONFIG_CRYPTO=y
1304# 1331#
1305# CONFIG_CRYPTO_FIPS is not set 1332# CONFIG_CRYPTO_FIPS is not set
1306CONFIG_CRYPTO_ALGAPI=y 1333CONFIG_CRYPTO_ALGAPI=y
1307CONFIG_CRYPTO_AEAD=y 1334CONFIG_CRYPTO_ALGAPI2=y
1335CONFIG_CRYPTO_AEAD2=y
1308CONFIG_CRYPTO_BLKCIPHER=y 1336CONFIG_CRYPTO_BLKCIPHER=y
1337CONFIG_CRYPTO_BLKCIPHER2=y
1309CONFIG_CRYPTO_HASH=y 1338CONFIG_CRYPTO_HASH=y
1310CONFIG_CRYPTO_RNG=y 1339CONFIG_CRYPTO_HASH2=y
1340CONFIG_CRYPTO_RNG2=y
1311CONFIG_CRYPTO_MANAGER=y 1341CONFIG_CRYPTO_MANAGER=y
1342CONFIG_CRYPTO_MANAGER2=y
1312# CONFIG_CRYPTO_GF128MUL is not set 1343# CONFIG_CRYPTO_GF128MUL is not set
1313# CONFIG_CRYPTO_NULL is not set 1344# CONFIG_CRYPTO_NULL is not set
1314# CONFIG_CRYPTO_CRYPTD is not set 1345# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index 07a674f5344e..4bcc4a1ff308 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itx_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:56 2008 4# Mon Jan 26 15:35:53 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -381,6 +390,7 @@ CONFIG_MTD=y
381# CONFIG_MTD_DEBUG is not set 390# CONFIG_MTD_DEBUG is not set
382# CONFIG_MTD_CONCAT is not set 391# CONFIG_MTD_CONCAT is not set
383# CONFIG_MTD_PARTITIONS is not set 392# CONFIG_MTD_PARTITIONS is not set
393# CONFIG_MTD_TESTS is not set
384 394
385# 395#
386# User Modules And Translation Layers 396# User Modules And Translation Layers
@@ -426,9 +436,7 @@ CONFIG_MTD_CFI_UTIL=y
426# 436#
427# CONFIG_MTD_COMPLEX_MAPPINGS is not set 437# CONFIG_MTD_COMPLEX_MAPPINGS is not set
428CONFIG_MTD_PHYSMAP=y 438CONFIG_MTD_PHYSMAP=y
429CONFIG_MTD_PHYSMAP_START=0xfe000000 439# CONFIG_MTD_PHYSMAP_COMPAT is not set
430CONFIG_MTD_PHYSMAP_LEN=0x1000000
431CONFIG_MTD_PHYSMAP_BANKWIDTH=2
432# CONFIG_MTD_PHYSMAP_OF is not set 440# CONFIG_MTD_PHYSMAP_OF is not set
433# CONFIG_MTD_INTEL_VR_NOR is not set 441# CONFIG_MTD_INTEL_VR_NOR is not set
434# CONFIG_MTD_PLATRAM is not set 442# CONFIG_MTD_PLATRAM is not set
@@ -454,6 +462,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
454# CONFIG_MTD_ONENAND is not set 462# CONFIG_MTD_ONENAND is not set
455 463
456# 464#
465# LPDDR flash memory drivers
466#
467# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469
470#
457# UBI - Unsorted block images 471# UBI - Unsorted block images
458# 472#
459# CONFIG_MTD_UBI is not set 473# CONFIG_MTD_UBI is not set
@@ -485,8 +499,10 @@ CONFIG_MISC_DEVICES=y
485# CONFIG_EEPROM_93CX6 is not set 499# CONFIG_EEPROM_93CX6 is not set
486# CONFIG_SGI_IOC4 is not set 500# CONFIG_SGI_IOC4 is not set
487# CONFIG_TIFM_CORE is not set 501# CONFIG_TIFM_CORE is not set
502# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 503# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 504# CONFIG_HP_ILO is not set
505# CONFIG_C2PORT is not set
490CONFIG_HAVE_IDE=y 506CONFIG_HAVE_IDE=y
491CONFIG_IDE=y 507CONFIG_IDE=y
492 508
@@ -499,7 +515,6 @@ CONFIG_IDE_GD_ATA=y
499# CONFIG_IDE_GD_ATAPI is not set 515# CONFIG_IDE_GD_ATAPI is not set
500# CONFIG_BLK_DEV_IDECD is not set 516# CONFIG_BLK_DEV_IDECD is not set
501# CONFIG_BLK_DEV_IDETAPE is not set 517# CONFIG_BLK_DEV_IDETAPE is not set
502# CONFIG_BLK_DEV_IDESCSI is not set
503# CONFIG_IDE_TASK_IOCTL is not set 518# CONFIG_IDE_TASK_IOCTL is not set
504CONFIG_IDE_PROC_FS=y 519CONFIG_IDE_PROC_FS=y
505 520
@@ -524,6 +539,7 @@ CONFIG_IDE_PROC_FS=y
524# CONFIG_BLK_DEV_JMICRON is not set 539# CONFIG_BLK_DEV_JMICRON is not set
525# CONFIG_BLK_DEV_SC1200 is not set 540# CONFIG_BLK_DEV_SC1200 is not set
526# CONFIG_BLK_DEV_PIIX is not set 541# CONFIG_BLK_DEV_PIIX is not set
542# CONFIG_BLK_DEV_IT8172 is not set
527# CONFIG_BLK_DEV_IT8213 is not set 543# CONFIG_BLK_DEV_IT8213 is not set
528# CONFIG_BLK_DEV_IT821X is not set 544# CONFIG_BLK_DEV_IT821X is not set
529# CONFIG_BLK_DEV_NS87415 is not set 545# CONFIG_BLK_DEV_NS87415 is not set
@@ -577,6 +593,7 @@ CONFIG_SCSI_SPI_ATTRS=y
577# CONFIG_SCSI_SRP_ATTRS is not set 593# CONFIG_SCSI_SRP_ATTRS is not set
578CONFIG_SCSI_LOWLEVEL=y 594CONFIG_SCSI_LOWLEVEL=y
579# CONFIG_ISCSI_TCP is not set 595# CONFIG_ISCSI_TCP is not set
596# CONFIG_SCSI_CXGB3_ISCSI is not set
580# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 597# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
581# CONFIG_SCSI_3W_9XXX is not set 598# CONFIG_SCSI_3W_9XXX is not set
582# CONFIG_SCSI_ACARD is not set 599# CONFIG_SCSI_ACARD is not set
@@ -593,6 +610,8 @@ CONFIG_SCSI_LOWLEVEL=y
593# CONFIG_MEGARAID_SAS is not set 610# CONFIG_MEGARAID_SAS is not set
594# CONFIG_SCSI_HPTIOP is not set 611# CONFIG_SCSI_HPTIOP is not set
595# CONFIG_SCSI_BUSLOGIC is not set 612# CONFIG_SCSI_BUSLOGIC is not set
613# CONFIG_LIBFC is not set
614# CONFIG_FCOE is not set
596# CONFIG_SCSI_DMX3191D is not set 615# CONFIG_SCSI_DMX3191D is not set
597# CONFIG_SCSI_EATA is not set 616# CONFIG_SCSI_EATA is not set
598# CONFIG_SCSI_FUTURE_DOMAIN is not set 617# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -723,6 +742,9 @@ CONFIG_CICADA_PHY=y
723# CONFIG_BROADCOM_PHY is not set 742# CONFIG_BROADCOM_PHY is not set
724# CONFIG_ICPLUS_PHY is not set 743# CONFIG_ICPLUS_PHY is not set
725# CONFIG_REALTEK_PHY is not set 744# CONFIG_REALTEK_PHY is not set
745# CONFIG_NATIONAL_PHY is not set
746# CONFIG_STE10XP is not set
747# CONFIG_LSI_ET1011C_PHY is not set
726CONFIG_FIXED_PHY=y 748CONFIG_FIXED_PHY=y
727# CONFIG_MDIO_BITBANG is not set 749# CONFIG_MDIO_BITBANG is not set
728# CONFIG_NET_ETHERNET is not set 750# CONFIG_NET_ETHERNET is not set
@@ -751,6 +773,7 @@ CONFIG_GIANFAR=y
751# CONFIG_JME is not set 773# CONFIG_JME is not set
752CONFIG_NETDEV_10000=y 774CONFIG_NETDEV_10000=y
753# CONFIG_CHELSIO_T1 is not set 775# CONFIG_CHELSIO_T1 is not set
776CONFIG_CHELSIO_T3_DEPENDS=y
754# CONFIG_CHELSIO_T3 is not set 777# CONFIG_CHELSIO_T3 is not set
755# CONFIG_ENIC is not set 778# CONFIG_ENIC is not set
756# CONFIG_IXGBE is not set 779# CONFIG_IXGBE is not set
@@ -775,6 +798,10 @@ CONFIG_NETDEV_10000=y
775# CONFIG_IWLWIFI_LEDS is not set 798# CONFIG_IWLWIFI_LEDS is not set
776 799
777# 800#
801# Enable WiMAX (Networking options) to see the WiMAX drivers
802#
803
804#
778# USB Network Adapters 805# USB Network Adapters
779# 806#
780# CONFIG_USB_CATC is not set 807# CONFIG_USB_CATC is not set
@@ -832,8 +859,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
832# CONFIG_SERIAL_JSM is not set 859# CONFIG_SERIAL_JSM is not set
833# CONFIG_SERIAL_OF_PLATFORM is not set 860# CONFIG_SERIAL_OF_PLATFORM is not set
834CONFIG_UNIX98_PTYS=y 861CONFIG_UNIX98_PTYS=y
862# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
835CONFIG_LEGACY_PTYS=y 863CONFIG_LEGACY_PTYS=y
836CONFIG_LEGACY_PTY_COUNT=256 864CONFIG_LEGACY_PTY_COUNT=256
865# CONFIG_HVC_UDBG is not set
837# CONFIG_IPMI_HANDLER is not set 866# CONFIG_IPMI_HANDLER is not set
838CONFIG_HW_RANDOM=y 867CONFIG_HW_RANDOM=y
839# CONFIG_NVRAM is not set 868# CONFIG_NVRAM is not set
@@ -898,15 +927,14 @@ CONFIG_I2C_MPC=y
898# Miscellaneous I2C Chip support 927# Miscellaneous I2C Chip support
899# 928#
900# CONFIG_DS1682 is not set 929# CONFIG_DS1682 is not set
901# CONFIG_AT24 is not set 930# CONFIG_EEPROM_AT24 is not set
902# CONFIG_SENSORS_EEPROM is not set 931# CONFIG_EEPROM_LEGACY is not set
903CONFIG_SENSORS_PCF8574=y 932CONFIG_SENSORS_PCF8574=y
904# CONFIG_PCF8575 is not set 933# CONFIG_PCF8575 is not set
905# CONFIG_SENSORS_PCA9539 is not set 934# CONFIG_SENSORS_PCA9539 is not set
906# CONFIG_SENSORS_PCF8591 is not set 935# CONFIG_SENSORS_PCF8591 is not set
907# CONFIG_SENSORS_MAX6875 is not set 936# CONFIG_SENSORS_MAX6875 is not set
908# CONFIG_SENSORS_TSL2550 is not set 937# CONFIG_SENSORS_TSL2550 is not set
909# CONFIG_MCU_MPC8349EMITX is not set
910# CONFIG_I2C_DEBUG_CORE is not set 938# CONFIG_I2C_DEBUG_CORE is not set
911# CONFIG_I2C_DEBUG_ALGO is not set 939# CONFIG_I2C_DEBUG_ALGO is not set
912# CONFIG_I2C_DEBUG_BUS is not set 940# CONFIG_I2C_DEBUG_BUS is not set
@@ -923,7 +951,7 @@ CONFIG_SPI_MPC83xx=y
923# 951#
924# SPI Protocol Masters 952# SPI Protocol Masters
925# 953#
926# CONFIG_SPI_AT25 is not set 954# CONFIG_EEPROM_AT25 is not set
927# CONFIG_SPI_SPIDEV is not set 955# CONFIG_SPI_SPIDEV is not set
928# CONFIG_SPI_TLE62X0 is not set 956# CONFIG_SPI_TLE62X0 is not set
929CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 957CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -953,11 +981,11 @@ CONFIG_WATCHDOG=y
953# USB-based Watchdog Cards 981# USB-based Watchdog Cards
954# 982#
955# CONFIG_USBPCWATCHDOG is not set 983# CONFIG_USBPCWATCHDOG is not set
984CONFIG_SSB_POSSIBLE=y
956 985
957# 986#
958# Sonics Silicon Backplane 987# Sonics Silicon Backplane
959# 988#
960CONFIG_SSB_POSSIBLE=y
961# CONFIG_SSB is not set 989# CONFIG_SSB is not set
962 990
963# 991#
@@ -966,18 +994,13 @@ CONFIG_SSB_POSSIBLE=y
966# CONFIG_MFD_CORE is not set 994# CONFIG_MFD_CORE is not set
967# CONFIG_MFD_SM501 is not set 995# CONFIG_MFD_SM501 is not set
968# CONFIG_HTC_PASIC3 is not set 996# CONFIG_HTC_PASIC3 is not set
997# CONFIG_TWL4030_CORE is not set
969# CONFIG_MFD_TMIO is not set 998# CONFIG_MFD_TMIO is not set
970# CONFIG_PMIC_DA903X is not set 999# CONFIG_PMIC_DA903X is not set
971# CONFIG_MFD_WM8400 is not set 1000# CONFIG_MFD_WM8400 is not set
972# CONFIG_MFD_WM8350_I2C is not set 1001# CONFIG_MFD_WM8350_I2C is not set
973 1002# CONFIG_MFD_PCF50633 is not set
974#
975# Voltage and Current regulators
976#
977# CONFIG_REGULATOR is not set 1003# CONFIG_REGULATOR is not set
978# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
979# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
980# CONFIG_REGULATOR_BQ24022 is not set
981 1004
982# 1005#
983# Multimedia devices 1006# Multimedia devices
@@ -1041,6 +1064,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1041# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1064# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1042CONFIG_USB_EHCI_FSL=y 1065CONFIG_USB_EHCI_FSL=y
1043CONFIG_USB_EHCI_HCD_PPC_OF=y 1066CONFIG_USB_EHCI_HCD_PPC_OF=y
1067# CONFIG_USB_OXU210HP_HCD is not set
1044# CONFIG_USB_ISP116X_HCD is not set 1068# CONFIG_USB_ISP116X_HCD is not set
1045# CONFIG_USB_ISP1760_HCD is not set 1069# CONFIG_USB_ISP1760_HCD is not set
1046# CONFIG_USB_OHCI_HCD is not set 1070# CONFIG_USB_OHCI_HCD is not set
@@ -1059,18 +1083,17 @@ CONFIG_USB_UHCI_HCD=y
1059# CONFIG_USB_TMC is not set 1083# CONFIG_USB_TMC is not set
1060 1084
1061# 1085#
1062# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1086# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1063# 1087#
1064 1088
1065# 1089#
1066# may also be needed; see USB_STORAGE Help for more information 1090# see USB_STORAGE Help for more information
1067# 1091#
1068CONFIG_USB_STORAGE=y 1092CONFIG_USB_STORAGE=y
1069# CONFIG_USB_STORAGE_DEBUG is not set 1093# CONFIG_USB_STORAGE_DEBUG is not set
1070# CONFIG_USB_STORAGE_DATAFAB is not set 1094# CONFIG_USB_STORAGE_DATAFAB is not set
1071# CONFIG_USB_STORAGE_FREECOM is not set 1095# CONFIG_USB_STORAGE_FREECOM is not set
1072# CONFIG_USB_STORAGE_ISD200 is not set 1096# CONFIG_USB_STORAGE_ISD200 is not set
1073# CONFIG_USB_STORAGE_DPCM is not set
1074# CONFIG_USB_STORAGE_USBAT is not set 1097# CONFIG_USB_STORAGE_USBAT is not set
1075# CONFIG_USB_STORAGE_SDDR09 is not set 1098# CONFIG_USB_STORAGE_SDDR09 is not set
1076# CONFIG_USB_STORAGE_SDDR55 is not set 1099# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1117,6 +1140,10 @@ CONFIG_USB_STORAGE=y
1117# CONFIG_USB_ISIGHTFW is not set 1140# CONFIG_USB_ISIGHTFW is not set
1118# CONFIG_USB_VST is not set 1141# CONFIG_USB_VST is not set
1119# CONFIG_USB_GADGET is not set 1142# CONFIG_USB_GADGET is not set
1143
1144#
1145# OTG and related infrastructure
1146#
1120# CONFIG_UWB is not set 1147# CONFIG_UWB is not set
1121# CONFIG_MMC is not set 1148# CONFIG_MMC is not set
1122# CONFIG_MEMSTICK is not set 1149# CONFIG_MEMSTICK is not set
@@ -1154,12 +1181,14 @@ CONFIG_RTC_DRV_DS1307=y
1154# CONFIG_RTC_DRV_M41T80 is not set 1181# CONFIG_RTC_DRV_M41T80 is not set
1155# CONFIG_RTC_DRV_S35390A is not set 1182# CONFIG_RTC_DRV_S35390A is not set
1156# CONFIG_RTC_DRV_FM3130 is not set 1183# CONFIG_RTC_DRV_FM3130 is not set
1184# CONFIG_RTC_DRV_RX8581 is not set
1157 1185
1158# 1186#
1159# SPI RTC drivers 1187# SPI RTC drivers
1160# 1188#
1161# CONFIG_RTC_DRV_M41T94 is not set 1189# CONFIG_RTC_DRV_M41T94 is not set
1162# CONFIG_RTC_DRV_DS1305 is not set 1190# CONFIG_RTC_DRV_DS1305 is not set
1191# CONFIG_RTC_DRV_DS1390 is not set
1163# CONFIG_RTC_DRV_MAX6902 is not set 1192# CONFIG_RTC_DRV_MAX6902 is not set
1164# CONFIG_RTC_DRV_R9701 is not set 1193# CONFIG_RTC_DRV_R9701 is not set
1165# CONFIG_RTC_DRV_RS5C348 is not set 1194# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1207,6 +1236,7 @@ CONFIG_FS_MBCACHE=y
1207CONFIG_FILE_LOCKING=y 1236CONFIG_FILE_LOCKING=y
1208# CONFIG_XFS_FS is not set 1237# CONFIG_XFS_FS is not set
1209# CONFIG_OCFS2_FS is not set 1238# CONFIG_OCFS2_FS is not set
1239# CONFIG_BTRFS_FS is not set
1210CONFIG_DNOTIFY=y 1240CONFIG_DNOTIFY=y
1211CONFIG_INOTIFY=y 1241CONFIG_INOTIFY=y
1212CONFIG_INOTIFY_USER=y 1242CONFIG_INOTIFY_USER=y
@@ -1243,10 +1273,7 @@ CONFIG_TMPFS=y
1243# CONFIG_TMPFS_POSIX_ACL is not set 1273# CONFIG_TMPFS_POSIX_ACL is not set
1244# CONFIG_HUGETLB_PAGE is not set 1274# CONFIG_HUGETLB_PAGE is not set
1245# CONFIG_CONFIGFS_FS is not set 1275# CONFIG_CONFIGFS_FS is not set
1246 1276CONFIG_MISC_FILESYSTEMS=y
1247#
1248# Miscellaneous filesystems
1249#
1250# CONFIG_ADFS_FS is not set 1277# CONFIG_ADFS_FS is not set
1251# CONFIG_AFFS_FS is not set 1278# CONFIG_AFFS_FS is not set
1252# CONFIG_HFS_FS is not set 1279# CONFIG_HFS_FS is not set
@@ -1256,6 +1283,7 @@ CONFIG_TMPFS=y
1256# CONFIG_EFS_FS is not set 1283# CONFIG_EFS_FS is not set
1257# CONFIG_JFFS2_FS is not set 1284# CONFIG_JFFS2_FS is not set
1258# CONFIG_CRAMFS is not set 1285# CONFIG_CRAMFS is not set
1286# CONFIG_SQUASHFS is not set
1259# CONFIG_VXFS_FS is not set 1287# CONFIG_VXFS_FS is not set
1260# CONFIG_MINIX_FS is not set 1288# CONFIG_MINIX_FS is not set
1261# CONFIG_OMFS_FS is not set 1289# CONFIG_OMFS_FS is not set
@@ -1352,6 +1380,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1352# Library routines 1380# Library routines
1353# 1381#
1354CONFIG_BITREVERSE=y 1382CONFIG_BITREVERSE=y
1383CONFIG_GENERIC_FIND_LAST_BIT=y
1355# CONFIG_CRC_CCITT is not set 1384# CONFIG_CRC_CCITT is not set
1356# CONFIG_CRC16 is not set 1385# CONFIG_CRC16 is not set
1357CONFIG_CRC_T10DIF=y 1386CONFIG_CRC_T10DIF=y
@@ -1385,6 +1414,8 @@ CONFIG_FRAME_WARN=1024
1385# CONFIG_LATENCYTOP is not set 1414# CONFIG_LATENCYTOP is not set
1386CONFIG_SYSCTL_SYSCALL_CHECK=y 1415CONFIG_SYSCTL_SYSCALL_CHECK=y
1387CONFIG_HAVE_FUNCTION_TRACER=y 1416CONFIG_HAVE_FUNCTION_TRACER=y
1417CONFIG_HAVE_DYNAMIC_FTRACE=y
1418CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1388 1419
1389# 1420#
1390# Tracers 1421# Tracers
@@ -1392,6 +1423,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1392# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1423# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1393# CONFIG_SAMPLES is not set 1424# CONFIG_SAMPLES is not set
1394CONFIG_HAVE_ARCH_KGDB=y 1425CONFIG_HAVE_ARCH_KGDB=y
1426CONFIG_PRINT_STACK_DEPTH=64
1395# CONFIG_IRQSTACKS is not set 1427# CONFIG_IRQSTACKS is not set
1396# CONFIG_BOOTX_TEXT is not set 1428# CONFIG_BOOTX_TEXT is not set
1397# CONFIG_PPC_EARLY_DEBUG is not set 1429# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1410,11 +1442,15 @@ CONFIG_CRYPTO=y
1410# 1442#
1411# CONFIG_CRYPTO_FIPS is not set 1443# CONFIG_CRYPTO_FIPS is not set
1412CONFIG_CRYPTO_ALGAPI=y 1444CONFIG_CRYPTO_ALGAPI=y
1413CONFIG_CRYPTO_AEAD=y 1445CONFIG_CRYPTO_ALGAPI2=y
1446CONFIG_CRYPTO_AEAD2=y
1414CONFIG_CRYPTO_BLKCIPHER=y 1447CONFIG_CRYPTO_BLKCIPHER=y
1448CONFIG_CRYPTO_BLKCIPHER2=y
1415CONFIG_CRYPTO_HASH=y 1449CONFIG_CRYPTO_HASH=y
1416CONFIG_CRYPTO_RNG=y 1450CONFIG_CRYPTO_HASH2=y
1451CONFIG_CRYPTO_RNG2=y
1417CONFIG_CRYPTO_MANAGER=y 1452CONFIG_CRYPTO_MANAGER=y
1453CONFIG_CRYPTO_MANAGER2=y
1418# CONFIG_CRYPTO_GF128MUL is not set 1454# CONFIG_CRYPTO_GF128MUL is not set
1419# CONFIG_CRYPTO_NULL is not set 1455# CONFIG_CRYPTO_NULL is not set
1420# CONFIG_CRYPTO_CRYPTD is not set 1456# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 426232cb0097..9ba5518ce8df 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:57 2008 4# Mon Jan 26 15:35:55 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -381,6 +390,7 @@ CONFIG_MTD=y
381# CONFIG_MTD_DEBUG is not set 390# CONFIG_MTD_DEBUG is not set
382# CONFIG_MTD_CONCAT is not set 391# CONFIG_MTD_CONCAT is not set
383# CONFIG_MTD_PARTITIONS is not set 392# CONFIG_MTD_PARTITIONS is not set
393# CONFIG_MTD_TESTS is not set
384 394
385# 395#
386# User Modules And Translation Layers 396# User Modules And Translation Layers
@@ -426,9 +436,7 @@ CONFIG_MTD_CFI_UTIL=y
426# 436#
427# CONFIG_MTD_COMPLEX_MAPPINGS is not set 437# CONFIG_MTD_COMPLEX_MAPPINGS is not set
428CONFIG_MTD_PHYSMAP=y 438CONFIG_MTD_PHYSMAP=y
429CONFIG_MTD_PHYSMAP_START=0xfe000000 439# CONFIG_MTD_PHYSMAP_COMPAT is not set
430CONFIG_MTD_PHYSMAP_LEN=0x800000
431CONFIG_MTD_PHYSMAP_BANKWIDTH=2
432# CONFIG_MTD_PHYSMAP_OF is not set 440# CONFIG_MTD_PHYSMAP_OF is not set
433# CONFIG_MTD_INTEL_VR_NOR is not set 441# CONFIG_MTD_INTEL_VR_NOR is not set
434# CONFIG_MTD_PLATRAM is not set 442# CONFIG_MTD_PLATRAM is not set
@@ -454,6 +462,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
454# CONFIG_MTD_ONENAND is not set 462# CONFIG_MTD_ONENAND is not set
455 463
456# 464#
465# LPDDR flash memory drivers
466#
467# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469
470#
457# UBI - Unsorted block images 471# UBI - Unsorted block images
458# 472#
459# CONFIG_MTD_UBI is not set 473# CONFIG_MTD_UBI is not set
@@ -485,8 +499,10 @@ CONFIG_MISC_DEVICES=y
485# CONFIG_EEPROM_93CX6 is not set 499# CONFIG_EEPROM_93CX6 is not set
486# CONFIG_SGI_IOC4 is not set 500# CONFIG_SGI_IOC4 is not set
487# CONFIG_TIFM_CORE is not set 501# CONFIG_TIFM_CORE is not set
502# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 503# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 504# CONFIG_HP_ILO is not set
505# CONFIG_C2PORT is not set
490CONFIG_HAVE_IDE=y 506CONFIG_HAVE_IDE=y
491# CONFIG_IDE is not set 507# CONFIG_IDE is not set
492 508
@@ -529,6 +545,7 @@ CONFIG_SCSI_SPI_ATTRS=y
529# CONFIG_SCSI_SRP_ATTRS is not set 545# CONFIG_SCSI_SRP_ATTRS is not set
530CONFIG_SCSI_LOWLEVEL=y 546CONFIG_SCSI_LOWLEVEL=y
531# CONFIG_ISCSI_TCP is not set 547# CONFIG_ISCSI_TCP is not set
548# CONFIG_SCSI_CXGB3_ISCSI is not set
532# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 549# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
533# CONFIG_SCSI_3W_9XXX is not set 550# CONFIG_SCSI_3W_9XXX is not set
534# CONFIG_SCSI_ACARD is not set 551# CONFIG_SCSI_ACARD is not set
@@ -545,6 +562,8 @@ CONFIG_SCSI_LOWLEVEL=y
545# CONFIG_MEGARAID_SAS is not set 562# CONFIG_MEGARAID_SAS is not set
546# CONFIG_SCSI_HPTIOP is not set 563# CONFIG_SCSI_HPTIOP is not set
547# CONFIG_SCSI_BUSLOGIC is not set 564# CONFIG_SCSI_BUSLOGIC is not set
565# CONFIG_LIBFC is not set
566# CONFIG_FCOE is not set
548# CONFIG_SCSI_DMX3191D is not set 567# CONFIG_SCSI_DMX3191D is not set
549# CONFIG_SCSI_EATA is not set 568# CONFIG_SCSI_EATA is not set
550# CONFIG_SCSI_FUTURE_DOMAIN is not set 569# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -603,6 +622,9 @@ CONFIG_CICADA_PHY=y
603# CONFIG_BROADCOM_PHY is not set 622# CONFIG_BROADCOM_PHY is not set
604# CONFIG_ICPLUS_PHY is not set 623# CONFIG_ICPLUS_PHY is not set
605# CONFIG_REALTEK_PHY is not set 624# CONFIG_REALTEK_PHY is not set
625# CONFIG_NATIONAL_PHY is not set
626# CONFIG_STE10XP is not set
627# CONFIG_LSI_ET1011C_PHY is not set
606# CONFIG_FIXED_PHY is not set 628# CONFIG_FIXED_PHY is not set
607# CONFIG_MDIO_BITBANG is not set 629# CONFIG_MDIO_BITBANG is not set
608# CONFIG_NET_ETHERNET is not set 630# CONFIG_NET_ETHERNET is not set
@@ -631,6 +653,7 @@ CONFIG_GIANFAR=y
631# CONFIG_JME is not set 653# CONFIG_JME is not set
632CONFIG_NETDEV_10000=y 654CONFIG_NETDEV_10000=y
633# CONFIG_CHELSIO_T1 is not set 655# CONFIG_CHELSIO_T1 is not set
656CONFIG_CHELSIO_T3_DEPENDS=y
634# CONFIG_CHELSIO_T3 is not set 657# CONFIG_CHELSIO_T3 is not set
635# CONFIG_ENIC is not set 658# CONFIG_ENIC is not set
636# CONFIG_IXGBE is not set 659# CONFIG_IXGBE is not set
@@ -655,6 +678,10 @@ CONFIG_NETDEV_10000=y
655# CONFIG_IWLWIFI_LEDS is not set 678# CONFIG_IWLWIFI_LEDS is not set
656 679
657# 680#
681# Enable WiMAX (Networking options) to see the WiMAX drivers
682#
683
684#
658# USB Network Adapters 685# USB Network Adapters
659# 686#
660# CONFIG_USB_CATC is not set 687# CONFIG_USB_CATC is not set
@@ -712,8 +739,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
712# CONFIG_SERIAL_JSM is not set 739# CONFIG_SERIAL_JSM is not set
713# CONFIG_SERIAL_OF_PLATFORM is not set 740# CONFIG_SERIAL_OF_PLATFORM is not set
714CONFIG_UNIX98_PTYS=y 741CONFIG_UNIX98_PTYS=y
742# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
715CONFIG_LEGACY_PTYS=y 743CONFIG_LEGACY_PTYS=y
716CONFIG_LEGACY_PTY_COUNT=256 744CONFIG_LEGACY_PTY_COUNT=256
745# CONFIG_HVC_UDBG is not set
717# CONFIG_IPMI_HANDLER is not set 746# CONFIG_IPMI_HANDLER is not set
718CONFIG_HW_RANDOM=y 747CONFIG_HW_RANDOM=y
719# CONFIG_NVRAM is not set 748# CONFIG_NVRAM is not set
@@ -778,15 +807,14 @@ CONFIG_I2C_MPC=y
778# Miscellaneous I2C Chip support 807# Miscellaneous I2C Chip support
779# 808#
780# CONFIG_DS1682 is not set 809# CONFIG_DS1682 is not set
781# CONFIG_AT24 is not set 810# CONFIG_EEPROM_AT24 is not set
782# CONFIG_SENSORS_EEPROM is not set 811# CONFIG_EEPROM_LEGACY is not set
783CONFIG_SENSORS_PCF8574=y 812CONFIG_SENSORS_PCF8574=y
784# CONFIG_PCF8575 is not set 813# CONFIG_PCF8575 is not set
785# CONFIG_SENSORS_PCA9539 is not set 814# CONFIG_SENSORS_PCA9539 is not set
786# CONFIG_SENSORS_PCF8591 is not set 815# CONFIG_SENSORS_PCF8591 is not set
787# CONFIG_SENSORS_MAX6875 is not set 816# CONFIG_SENSORS_MAX6875 is not set
788# CONFIG_SENSORS_TSL2550 is not set 817# CONFIG_SENSORS_TSL2550 is not set
789# CONFIG_MCU_MPC8349EMITX is not set
790# CONFIG_I2C_DEBUG_CORE is not set 818# CONFIG_I2C_DEBUG_CORE is not set
791# CONFIG_I2C_DEBUG_ALGO is not set 819# CONFIG_I2C_DEBUG_ALGO is not set
792# CONFIG_I2C_DEBUG_BUS is not set 820# CONFIG_I2C_DEBUG_BUS is not set
@@ -803,7 +831,7 @@ CONFIG_SPI_MPC83xx=y
803# 831#
804# SPI Protocol Masters 832# SPI Protocol Masters
805# 833#
806# CONFIG_SPI_AT25 is not set 834# CONFIG_EEPROM_AT25 is not set
807# CONFIG_SPI_SPIDEV is not set 835# CONFIG_SPI_SPIDEV is not set
808# CONFIG_SPI_TLE62X0 is not set 836# CONFIG_SPI_TLE62X0 is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 837CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -833,11 +861,11 @@ CONFIG_WATCHDOG=y
833# USB-based Watchdog Cards 861# USB-based Watchdog Cards
834# 862#
835# CONFIG_USBPCWATCHDOG is not set 863# CONFIG_USBPCWATCHDOG is not set
864CONFIG_SSB_POSSIBLE=y
836 865
837# 866#
838# Sonics Silicon Backplane 867# Sonics Silicon Backplane
839# 868#
840CONFIG_SSB_POSSIBLE=y
841# CONFIG_SSB is not set 869# CONFIG_SSB is not set
842 870
843# 871#
@@ -846,18 +874,13 @@ CONFIG_SSB_POSSIBLE=y
846# CONFIG_MFD_CORE is not set 874# CONFIG_MFD_CORE is not set
847# CONFIG_MFD_SM501 is not set 875# CONFIG_MFD_SM501 is not set
848# CONFIG_HTC_PASIC3 is not set 876# CONFIG_HTC_PASIC3 is not set
877# CONFIG_TWL4030_CORE is not set
849# CONFIG_MFD_TMIO is not set 878# CONFIG_MFD_TMIO is not set
850# CONFIG_PMIC_DA903X is not set 879# CONFIG_PMIC_DA903X is not set
851# CONFIG_MFD_WM8400 is not set 880# CONFIG_MFD_WM8400 is not set
852# CONFIG_MFD_WM8350_I2C is not set 881# CONFIG_MFD_WM8350_I2C is not set
853 882# CONFIG_MFD_PCF50633 is not set
854#
855# Voltage and Current regulators
856#
857# CONFIG_REGULATOR is not set 883# CONFIG_REGULATOR is not set
858# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
859# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
860# CONFIG_REGULATOR_BQ24022 is not set
861 884
862# 885#
863# Multimedia devices 886# Multimedia devices
@@ -921,6 +944,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
921# CONFIG_USB_EHCI_TT_NEWSCHED is not set 944# CONFIG_USB_EHCI_TT_NEWSCHED is not set
922CONFIG_USB_EHCI_FSL=y 945CONFIG_USB_EHCI_FSL=y
923CONFIG_USB_EHCI_HCD_PPC_OF=y 946CONFIG_USB_EHCI_HCD_PPC_OF=y
947# CONFIG_USB_OXU210HP_HCD is not set
924# CONFIG_USB_ISP116X_HCD is not set 948# CONFIG_USB_ISP116X_HCD is not set
925# CONFIG_USB_ISP1760_HCD is not set 949# CONFIG_USB_ISP1760_HCD is not set
926# CONFIG_USB_OHCI_HCD is not set 950# CONFIG_USB_OHCI_HCD is not set
@@ -939,18 +963,17 @@ CONFIG_USB_UHCI_HCD=y
939# CONFIG_USB_TMC is not set 963# CONFIG_USB_TMC is not set
940 964
941# 965#
942# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 966# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
943# 967#
944 968
945# 969#
946# may also be needed; see USB_STORAGE Help for more information 970# see USB_STORAGE Help for more information
947# 971#
948CONFIG_USB_STORAGE=y 972CONFIG_USB_STORAGE=y
949# CONFIG_USB_STORAGE_DEBUG is not set 973# CONFIG_USB_STORAGE_DEBUG is not set
950# CONFIG_USB_STORAGE_DATAFAB is not set 974# CONFIG_USB_STORAGE_DATAFAB is not set
951# CONFIG_USB_STORAGE_FREECOM is not set 975# CONFIG_USB_STORAGE_FREECOM is not set
952# CONFIG_USB_STORAGE_ISD200 is not set 976# CONFIG_USB_STORAGE_ISD200 is not set
953# CONFIG_USB_STORAGE_DPCM is not set
954# CONFIG_USB_STORAGE_USBAT is not set 977# CONFIG_USB_STORAGE_USBAT is not set
955# CONFIG_USB_STORAGE_SDDR09 is not set 978# CONFIG_USB_STORAGE_SDDR09 is not set
956# CONFIG_USB_STORAGE_SDDR55 is not set 979# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -996,6 +1019,10 @@ CONFIG_USB_STORAGE=y
996# CONFIG_USB_ISIGHTFW is not set 1019# CONFIG_USB_ISIGHTFW is not set
997# CONFIG_USB_VST is not set 1020# CONFIG_USB_VST is not set
998# CONFIG_USB_GADGET is not set 1021# CONFIG_USB_GADGET is not set
1022
1023#
1024# OTG and related infrastructure
1025#
999# CONFIG_UWB is not set 1026# CONFIG_UWB is not set
1000# CONFIG_MMC is not set 1027# CONFIG_MMC is not set
1001# CONFIG_MEMSTICK is not set 1028# CONFIG_MEMSTICK is not set
@@ -1033,12 +1060,14 @@ CONFIG_RTC_DRV_DS1307=y
1033# CONFIG_RTC_DRV_M41T80 is not set 1060# CONFIG_RTC_DRV_M41T80 is not set
1034# CONFIG_RTC_DRV_S35390A is not set 1061# CONFIG_RTC_DRV_S35390A is not set
1035# CONFIG_RTC_DRV_FM3130 is not set 1062# CONFIG_RTC_DRV_FM3130 is not set
1063# CONFIG_RTC_DRV_RX8581 is not set
1036 1064
1037# 1065#
1038# SPI RTC drivers 1066# SPI RTC drivers
1039# 1067#
1040# CONFIG_RTC_DRV_M41T94 is not set 1068# CONFIG_RTC_DRV_M41T94 is not set
1041# CONFIG_RTC_DRV_DS1305 is not set 1069# CONFIG_RTC_DRV_DS1305 is not set
1070# CONFIG_RTC_DRV_DS1390 is not set
1042# CONFIG_RTC_DRV_MAX6902 is not set 1071# CONFIG_RTC_DRV_MAX6902 is not set
1043# CONFIG_RTC_DRV_R9701 is not set 1072# CONFIG_RTC_DRV_R9701 is not set
1044# CONFIG_RTC_DRV_RS5C348 is not set 1073# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1086,6 +1115,7 @@ CONFIG_FS_MBCACHE=y
1086CONFIG_FILE_LOCKING=y 1115CONFIG_FILE_LOCKING=y
1087# CONFIG_XFS_FS is not set 1116# CONFIG_XFS_FS is not set
1088# CONFIG_OCFS2_FS is not set 1117# CONFIG_OCFS2_FS is not set
1118# CONFIG_BTRFS_FS is not set
1089CONFIG_DNOTIFY=y 1119CONFIG_DNOTIFY=y
1090CONFIG_INOTIFY=y 1120CONFIG_INOTIFY=y
1091CONFIG_INOTIFY_USER=y 1121CONFIG_INOTIFY_USER=y
@@ -1122,10 +1152,7 @@ CONFIG_TMPFS=y
1122# CONFIG_TMPFS_POSIX_ACL is not set 1152# CONFIG_TMPFS_POSIX_ACL is not set
1123# CONFIG_HUGETLB_PAGE is not set 1153# CONFIG_HUGETLB_PAGE is not set
1124# CONFIG_CONFIGFS_FS is not set 1154# CONFIG_CONFIGFS_FS is not set
1125 1155CONFIG_MISC_FILESYSTEMS=y
1126#
1127# Miscellaneous filesystems
1128#
1129# CONFIG_ADFS_FS is not set 1156# CONFIG_ADFS_FS is not set
1130# CONFIG_AFFS_FS is not set 1157# CONFIG_AFFS_FS is not set
1131# CONFIG_HFS_FS is not set 1158# CONFIG_HFS_FS is not set
@@ -1135,6 +1162,7 @@ CONFIG_TMPFS=y
1135# CONFIG_EFS_FS is not set 1162# CONFIG_EFS_FS is not set
1136# CONFIG_JFFS2_FS is not set 1163# CONFIG_JFFS2_FS is not set
1137# CONFIG_CRAMFS is not set 1164# CONFIG_CRAMFS is not set
1165# CONFIG_SQUASHFS is not set
1138# CONFIG_VXFS_FS is not set 1166# CONFIG_VXFS_FS is not set
1139# CONFIG_MINIX_FS is not set 1167# CONFIG_MINIX_FS is not set
1140# CONFIG_OMFS_FS is not set 1168# CONFIG_OMFS_FS is not set
@@ -1231,6 +1259,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1231# Library routines 1259# Library routines
1232# 1260#
1233CONFIG_BITREVERSE=y 1261CONFIG_BITREVERSE=y
1262CONFIG_GENERIC_FIND_LAST_BIT=y
1234# CONFIG_CRC_CCITT is not set 1263# CONFIG_CRC_CCITT is not set
1235# CONFIG_CRC16 is not set 1264# CONFIG_CRC16 is not set
1236CONFIG_CRC_T10DIF=y 1265CONFIG_CRC_T10DIF=y
@@ -1264,6 +1293,8 @@ CONFIG_FRAME_WARN=1024
1264# CONFIG_LATENCYTOP is not set 1293# CONFIG_LATENCYTOP is not set
1265CONFIG_SYSCTL_SYSCALL_CHECK=y 1294CONFIG_SYSCTL_SYSCALL_CHECK=y
1266CONFIG_HAVE_FUNCTION_TRACER=y 1295CONFIG_HAVE_FUNCTION_TRACER=y
1296CONFIG_HAVE_DYNAMIC_FTRACE=y
1297CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1267 1298
1268# 1299#
1269# Tracers 1300# Tracers
@@ -1271,6 +1302,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1271# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1302# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1272# CONFIG_SAMPLES is not set 1303# CONFIG_SAMPLES is not set
1273CONFIG_HAVE_ARCH_KGDB=y 1304CONFIG_HAVE_ARCH_KGDB=y
1305CONFIG_PRINT_STACK_DEPTH=64
1274# CONFIG_IRQSTACKS is not set 1306# CONFIG_IRQSTACKS is not set
1275# CONFIG_BOOTX_TEXT is not set 1307# CONFIG_BOOTX_TEXT is not set
1276# CONFIG_PPC_EARLY_DEBUG is not set 1308# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1289,11 +1321,15 @@ CONFIG_CRYPTO=y
1289# 1321#
1290# CONFIG_CRYPTO_FIPS is not set 1322# CONFIG_CRYPTO_FIPS is not set
1291CONFIG_CRYPTO_ALGAPI=y 1323CONFIG_CRYPTO_ALGAPI=y
1292CONFIG_CRYPTO_AEAD=y 1324CONFIG_CRYPTO_ALGAPI2=y
1325CONFIG_CRYPTO_AEAD2=y
1293CONFIG_CRYPTO_BLKCIPHER=y 1326CONFIG_CRYPTO_BLKCIPHER=y
1327CONFIG_CRYPTO_BLKCIPHER2=y
1294CONFIG_CRYPTO_HASH=y 1328CONFIG_CRYPTO_HASH=y
1295CONFIG_CRYPTO_RNG=y 1329CONFIG_CRYPTO_HASH2=y
1330CONFIG_CRYPTO_RNG2=y
1296CONFIG_CRYPTO_MANAGER=y 1331CONFIG_CRYPTO_MANAGER=y
1332CONFIG_CRYPTO_MANAGER2=y
1297# CONFIG_CRYPTO_GF128MUL is not set 1333# CONFIG_CRYPTO_GF128MUL is not set
1298# CONFIG_CRYPTO_NULL is not set 1334# CONFIG_CRYPTO_NULL is not set
1299# CONFIG_CRYPTO_CRYPTD is not set 1335# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 36e2e93a1c53..18e4bc0b3c11 100644
--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:58 2008 4# Mon Jan 26 15:35:56 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -404,8 +413,10 @@ CONFIG_MISC_DEVICES=y
404# CONFIG_EEPROM_93CX6 is not set 413# CONFIG_EEPROM_93CX6 is not set
405# CONFIG_SGI_IOC4 is not set 414# CONFIG_SGI_IOC4 is not set
406# CONFIG_TIFM_CORE is not set 415# CONFIG_TIFM_CORE is not set
416# CONFIG_ICS932S401 is not set
407# CONFIG_ENCLOSURE_SERVICES is not set 417# CONFIG_ENCLOSURE_SERVICES is not set
408# CONFIG_HP_ILO is not set 418# CONFIG_HP_ILO is not set
419# CONFIG_C2PORT is not set
409CONFIG_HAVE_IDE=y 420CONFIG_HAVE_IDE=y
410# CONFIG_IDE is not set 421# CONFIG_IDE is not set
411 422
@@ -454,6 +465,9 @@ CONFIG_MARVELL_PHY=y
454# CONFIG_BROADCOM_PHY is not set 465# CONFIG_BROADCOM_PHY is not set
455# CONFIG_ICPLUS_PHY is not set 466# CONFIG_ICPLUS_PHY is not set
456# CONFIG_REALTEK_PHY is not set 467# CONFIG_REALTEK_PHY is not set
468# CONFIG_NATIONAL_PHY is not set
469# CONFIG_STE10XP is not set
470# CONFIG_LSI_ET1011C_PHY is not set
457# CONFIG_FIXED_PHY is not set 471# CONFIG_FIXED_PHY is not set
458# CONFIG_MDIO_BITBANG is not set 472# CONFIG_MDIO_BITBANG is not set
459CONFIG_NET_ETHERNET=y 473CONFIG_NET_ETHERNET=y
@@ -477,7 +491,6 @@ CONFIG_NET_PCI=y
477# CONFIG_ADAPTEC_STARFIRE is not set 491# CONFIG_ADAPTEC_STARFIRE is not set
478# CONFIG_B44 is not set 492# CONFIG_B44 is not set
479# CONFIG_FORCEDETH is not set 493# CONFIG_FORCEDETH is not set
480# CONFIG_EEPRO100 is not set
481CONFIG_E100=y 494CONFIG_E100=y
482# CONFIG_FEALNX is not set 495# CONFIG_FEALNX is not set
483# CONFIG_NATSEMI is not set 496# CONFIG_NATSEMI is not set
@@ -487,6 +500,7 @@ CONFIG_E100=y
487# CONFIG_R6040 is not set 500# CONFIG_R6040 is not set
488# CONFIG_SIS900 is not set 501# CONFIG_SIS900 is not set
489# CONFIG_EPIC100 is not set 502# CONFIG_EPIC100 is not set
503# CONFIG_SMSC9420 is not set
490# CONFIG_SUNDANCE is not set 504# CONFIG_SUNDANCE is not set
491# CONFIG_TLAN is not set 505# CONFIG_TLAN is not set
492# CONFIG_VIA_RHINE is not set 506# CONFIG_VIA_RHINE is not set
@@ -517,6 +531,7 @@ CONFIG_GIANFAR=y
517# CONFIG_JME is not set 531# CONFIG_JME is not set
518CONFIG_NETDEV_10000=y 532CONFIG_NETDEV_10000=y
519# CONFIG_CHELSIO_T1 is not set 533# CONFIG_CHELSIO_T1 is not set
534CONFIG_CHELSIO_T3_DEPENDS=y
520# CONFIG_CHELSIO_T3 is not set 535# CONFIG_CHELSIO_T3 is not set
521# CONFIG_ENIC is not set 536# CONFIG_ENIC is not set
522# CONFIG_IXGBE is not set 537# CONFIG_IXGBE is not set
@@ -539,6 +554,10 @@ CONFIG_NETDEV_10000=y
539# CONFIG_WLAN_PRE80211 is not set 554# CONFIG_WLAN_PRE80211 is not set
540# CONFIG_WLAN_80211 is not set 555# CONFIG_WLAN_80211 is not set
541# CONFIG_IWLWIFI_LEDS is not set 556# CONFIG_IWLWIFI_LEDS is not set
557
558#
559# Enable WiMAX (Networking options) to see the WiMAX drivers
560#
542# CONFIG_WAN is not set 561# CONFIG_WAN is not set
543# CONFIG_FDDI is not set 562# CONFIG_FDDI is not set
544# CONFIG_HIPPI is not set 563# CONFIG_HIPPI is not set
@@ -608,8 +627,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
608# CONFIG_SERIAL_JSM is not set 627# CONFIG_SERIAL_JSM is not set
609# CONFIG_SERIAL_OF_PLATFORM is not set 628# CONFIG_SERIAL_OF_PLATFORM is not set
610CONFIG_UNIX98_PTYS=y 629CONFIG_UNIX98_PTYS=y
630# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
611CONFIG_LEGACY_PTYS=y 631CONFIG_LEGACY_PTYS=y
612CONFIG_LEGACY_PTY_COUNT=256 632CONFIG_LEGACY_PTY_COUNT=256
633# CONFIG_HVC_UDBG is not set
613# CONFIG_IPMI_HANDLER is not set 634# CONFIG_IPMI_HANDLER is not set
614# CONFIG_HW_RANDOM is not set 635# CONFIG_HW_RANDOM is not set
615# CONFIG_NVRAM is not set 636# CONFIG_NVRAM is not set
@@ -673,15 +694,14 @@ CONFIG_I2C_MPC=y
673# Miscellaneous I2C Chip support 694# Miscellaneous I2C Chip support
674# 695#
675# CONFIG_DS1682 is not set 696# CONFIG_DS1682 is not set
676# CONFIG_AT24 is not set 697# CONFIG_EEPROM_AT24 is not set
677# CONFIG_SENSORS_EEPROM is not set 698# CONFIG_EEPROM_LEGACY is not set
678# CONFIG_SENSORS_PCF8574 is not set 699# CONFIG_SENSORS_PCF8574 is not set
679# CONFIG_PCF8575 is not set 700# CONFIG_PCF8575 is not set
680# CONFIG_SENSORS_PCA9539 is not set 701# CONFIG_SENSORS_PCA9539 is not set
681# CONFIG_SENSORS_PCF8591 is not set 702# CONFIG_SENSORS_PCF8591 is not set
682# CONFIG_SENSORS_MAX6875 is not set 703# CONFIG_SENSORS_MAX6875 is not set
683# CONFIG_SENSORS_TSL2550 is not set 704# CONFIG_SENSORS_TSL2550 is not set
684# CONFIG_MCU_MPC8349EMITX is not set
685# CONFIG_I2C_DEBUG_CORE is not set 705# CONFIG_I2C_DEBUG_CORE is not set
686# CONFIG_I2C_DEBUG_ALGO is not set 706# CONFIG_I2C_DEBUG_ALGO is not set
687# CONFIG_I2C_DEBUG_BUS is not set 707# CONFIG_I2C_DEBUG_BUS is not set
@@ -701,8 +721,10 @@ CONFIG_HWMON=y
701# CONFIG_SENSORS_ADM1029 is not set 721# CONFIG_SENSORS_ADM1029 is not set
702# CONFIG_SENSORS_ADM1031 is not set 722# CONFIG_SENSORS_ADM1031 is not set
703# CONFIG_SENSORS_ADM9240 is not set 723# CONFIG_SENSORS_ADM9240 is not set
724# CONFIG_SENSORS_ADT7462 is not set
704# CONFIG_SENSORS_ADT7470 is not set 725# CONFIG_SENSORS_ADT7470 is not set
705# CONFIG_SENSORS_ADT7473 is not set 726# CONFIG_SENSORS_ADT7473 is not set
727# CONFIG_SENSORS_ADT7475 is not set
706# CONFIG_SENSORS_ATXP1 is not set 728# CONFIG_SENSORS_ATXP1 is not set
707# CONFIG_SENSORS_DS1621 is not set 729# CONFIG_SENSORS_DS1621 is not set
708# CONFIG_SENSORS_I5K_AMB is not set 730# CONFIG_SENSORS_I5K_AMB is not set
@@ -723,6 +745,7 @@ CONFIG_HWMON=y
723# CONFIG_SENSORS_LM90 is not set 745# CONFIG_SENSORS_LM90 is not set
724# CONFIG_SENSORS_LM92 is not set 746# CONFIG_SENSORS_LM92 is not set
725# CONFIG_SENSORS_LM93 is not set 747# CONFIG_SENSORS_LM93 is not set
748# CONFIG_SENSORS_LTC4245 is not set
726# CONFIG_SENSORS_MAX1619 is not set 749# CONFIG_SENSORS_MAX1619 is not set
727# CONFIG_SENSORS_MAX6650 is not set 750# CONFIG_SENSORS_MAX6650 is not set
728# CONFIG_SENSORS_PC87360 is not set 751# CONFIG_SENSORS_PC87360 is not set
@@ -763,11 +786,11 @@ CONFIG_WATCHDOG=y
763# 786#
764# CONFIG_PCIPCWATCHDOG is not set 787# CONFIG_PCIPCWATCHDOG is not set
765# CONFIG_WDTPCI is not set 788# CONFIG_WDTPCI is not set
789CONFIG_SSB_POSSIBLE=y
766 790
767# 791#
768# Sonics Silicon Backplane 792# Sonics Silicon Backplane
769# 793#
770CONFIG_SSB_POSSIBLE=y
771# CONFIG_SSB is not set 794# CONFIG_SSB is not set
772 795
773# 796#
@@ -776,18 +799,13 @@ CONFIG_SSB_POSSIBLE=y
776# CONFIG_MFD_CORE is not set 799# CONFIG_MFD_CORE is not set
777# CONFIG_MFD_SM501 is not set 800# CONFIG_MFD_SM501 is not set
778# CONFIG_HTC_PASIC3 is not set 801# CONFIG_HTC_PASIC3 is not set
802# CONFIG_TWL4030_CORE is not set
779# CONFIG_MFD_TMIO is not set 803# CONFIG_MFD_TMIO is not set
780# CONFIG_PMIC_DA903X is not set 804# CONFIG_PMIC_DA903X is not set
781# CONFIG_MFD_WM8400 is not set 805# CONFIG_MFD_WM8400 is not set
782# CONFIG_MFD_WM8350_I2C is not set 806# CONFIG_MFD_WM8350_I2C is not set
783 807# CONFIG_MFD_PCF50633 is not set
784#
785# Voltage and Current regulators
786#
787# CONFIG_REGULATOR is not set 808# CONFIG_REGULATOR is not set
788# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
789# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
790# CONFIG_REGULATOR_BQ24022 is not set
791 809
792# 810#
793# Multimedia devices 811# Multimedia devices
@@ -843,9 +861,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
843# 861#
844 862
845# 863#
846# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 864# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
847# 865#
848# CONFIG_USB_GADGET is not set 866# CONFIG_USB_GADGET is not set
867
868#
869# OTG and related infrastructure
870#
849# CONFIG_UWB is not set 871# CONFIG_UWB is not set
850# CONFIG_MMC is not set 872# CONFIG_MMC is not set
851# CONFIG_MEMSTICK is not set 873# CONFIG_MEMSTICK is not set
@@ -883,6 +905,7 @@ CONFIG_RTC_DRV_DS1374=y
883# CONFIG_RTC_DRV_M41T80 is not set 905# CONFIG_RTC_DRV_M41T80 is not set
884# CONFIG_RTC_DRV_S35390A is not set 906# CONFIG_RTC_DRV_S35390A is not set
885# CONFIG_RTC_DRV_FM3130 is not set 907# CONFIG_RTC_DRV_FM3130 is not set
908# CONFIG_RTC_DRV_RX8581 is not set
886 909
887# 910#
888# SPI RTC drivers 911# SPI RTC drivers
@@ -930,6 +953,7 @@ CONFIG_FS_MBCACHE=y
930CONFIG_FILE_LOCKING=y 953CONFIG_FILE_LOCKING=y
931# CONFIG_XFS_FS is not set 954# CONFIG_XFS_FS is not set
932# CONFIG_OCFS2_FS is not set 955# CONFIG_OCFS2_FS is not set
956# CONFIG_BTRFS_FS is not set
933CONFIG_DNOTIFY=y 957CONFIG_DNOTIFY=y
934CONFIG_INOTIFY=y 958CONFIG_INOTIFY=y
935CONFIG_INOTIFY_USER=y 959CONFIG_INOTIFY_USER=y
@@ -963,10 +987,7 @@ CONFIG_TMPFS=y
963# CONFIG_TMPFS_POSIX_ACL is not set 987# CONFIG_TMPFS_POSIX_ACL is not set
964# CONFIG_HUGETLB_PAGE is not set 988# CONFIG_HUGETLB_PAGE is not set
965# CONFIG_CONFIGFS_FS is not set 989# CONFIG_CONFIGFS_FS is not set
966 990CONFIG_MISC_FILESYSTEMS=y
967#
968# Miscellaneous filesystems
969#
970# CONFIG_ADFS_FS is not set 991# CONFIG_ADFS_FS is not set
971# CONFIG_AFFS_FS is not set 992# CONFIG_AFFS_FS is not set
972# CONFIG_HFS_FS is not set 993# CONFIG_HFS_FS is not set
@@ -975,6 +996,7 @@ CONFIG_TMPFS=y
975# CONFIG_BFS_FS is not set 996# CONFIG_BFS_FS is not set
976# CONFIG_EFS_FS is not set 997# CONFIG_EFS_FS is not set
977# CONFIG_CRAMFS is not set 998# CONFIG_CRAMFS is not set
999# CONFIG_SQUASHFS is not set
978# CONFIG_VXFS_FS is not set 1000# CONFIG_VXFS_FS is not set
979# CONFIG_MINIX_FS is not set 1001# CONFIG_MINIX_FS is not set
980# CONFIG_OMFS_FS is not set 1002# CONFIG_OMFS_FS is not set
@@ -1028,6 +1050,7 @@ CONFIG_PARTITION_ADVANCED=y
1028# Library routines 1050# Library routines
1029# 1051#
1030CONFIG_BITREVERSE=y 1052CONFIG_BITREVERSE=y
1053CONFIG_GENERIC_FIND_LAST_BIT=y
1031# CONFIG_CRC_CCITT is not set 1054# CONFIG_CRC_CCITT is not set
1032# CONFIG_CRC16 is not set 1055# CONFIG_CRC16 is not set
1033# CONFIG_CRC_T10DIF is not set 1056# CONFIG_CRC_T10DIF is not set
@@ -1061,6 +1084,8 @@ CONFIG_FRAME_WARN=1024
1061# CONFIG_LATENCYTOP is not set 1084# CONFIG_LATENCYTOP is not set
1062CONFIG_SYSCTL_SYSCALL_CHECK=y 1085CONFIG_SYSCTL_SYSCALL_CHECK=y
1063CONFIG_HAVE_FUNCTION_TRACER=y 1086CONFIG_HAVE_FUNCTION_TRACER=y
1087CONFIG_HAVE_DYNAMIC_FTRACE=y
1088CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1064 1089
1065# 1090#
1066# Tracers 1091# Tracers
@@ -1068,6 +1093,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1068# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1093# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1069# CONFIG_SAMPLES is not set 1094# CONFIG_SAMPLES is not set
1070CONFIG_HAVE_ARCH_KGDB=y 1095CONFIG_HAVE_ARCH_KGDB=y
1096CONFIG_PRINT_STACK_DEPTH=64
1071# CONFIG_IRQSTACKS is not set 1097# CONFIG_IRQSTACKS is not set
1072# CONFIG_BOOTX_TEXT is not set 1098# CONFIG_BOOTX_TEXT is not set
1073# CONFIG_PPC_EARLY_DEBUG is not set 1099# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1086,11 +1112,15 @@ CONFIG_CRYPTO=y
1086# 1112#
1087# CONFIG_CRYPTO_FIPS is not set 1113# CONFIG_CRYPTO_FIPS is not set
1088CONFIG_CRYPTO_ALGAPI=y 1114CONFIG_CRYPTO_ALGAPI=y
1089CONFIG_CRYPTO_AEAD=y 1115CONFIG_CRYPTO_ALGAPI2=y
1116CONFIG_CRYPTO_AEAD2=y
1090CONFIG_CRYPTO_BLKCIPHER=y 1117CONFIG_CRYPTO_BLKCIPHER=y
1118CONFIG_CRYPTO_BLKCIPHER2=y
1091CONFIG_CRYPTO_HASH=y 1119CONFIG_CRYPTO_HASH=y
1092CONFIG_CRYPTO_RNG=y 1120CONFIG_CRYPTO_HASH2=y
1121CONFIG_CRYPTO_RNG2=y
1093CONFIG_CRYPTO_MANAGER=y 1122CONFIG_CRYPTO_MANAGER=y
1123CONFIG_CRYPTO_MANAGER2=y
1094# CONFIG_CRYPTO_GF128MUL is not set 1124# CONFIG_CRYPTO_GF128MUL is not set
1095# CONFIG_CRYPTO_NULL is not set 1125# CONFIG_CRYPTO_NULL is not set
1096# CONFIG_CRYPTO_CRYPTD is not set 1126# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 80eb6c9a05c4..76db8138eac7 100644
--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:59 2008 4# Mon Jan 26 15:35:58 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 113CONFIG_SLUB=y
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +122,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 126CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 127# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +129,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 130# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 131# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 132CONFIG_BLOCK=y
136# CONFIG_LBD is not set 133# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
141 137
@@ -152,6 +148,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
156 156
157# 157#
@@ -197,6 +197,8 @@ CONFIG_IPIC=y
197CONFIG_QUICC_ENGINE=y 197CONFIG_QUICC_ENGINE=y
198# CONFIG_QE_GPIO is not set 198# CONFIG_QE_GPIO is not set
199# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_SIMPLE_GPIO is not set
201# CONFIG_MCU_MPC8349EMITX is not set
200 202
201# 203#
202# Kernel options 204# Kernel options
@@ -224,6 +226,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
224CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
226# CONFIG_KEXEC is not set 228# CONFIG_KEXEC is not set
229# CONFIG_CRASH_DUMP is not set
227CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
228CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
229CONFIG_SELECT_MEMORY_MODEL=y 232CONFIG_SELECT_MEMORY_MODEL=y
@@ -235,12 +238,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
235CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
237CONFIG_MIGRATION=y 240CONFIG_MIGRATION=y
238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set 241# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -265,6 +270,7 @@ CONFIG_PCI_SYSCALL=y
265CONFIG_ARCH_SUPPORTS_MSI=y 270CONFIG_ARCH_SUPPORTS_MSI=y
266# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
267# CONFIG_PCI_LEGACY is not set 272# CONFIG_PCI_LEGACY is not set
273# CONFIG_PCI_STUB is not set
268# CONFIG_PCCARD is not set 274# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 275# CONFIG_HOTPLUG_PCI is not set
270# CONFIG_HAS_RAPIDIO is not set 276# CONFIG_HAS_RAPIDIO is not set
@@ -287,6 +293,7 @@ CONFIG_NET=y
287# 293#
288# Networking options 294# Networking options
289# 295#
296CONFIG_COMPAT_NET_DEV_OPS=y
290CONFIG_PACKET=y 297CONFIG_PACKET=y
291# CONFIG_PACKET_MMAP is not set 298# CONFIG_PACKET_MMAP is not set
292CONFIG_UNIX=y 299CONFIG_UNIX=y
@@ -343,6 +350,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_ECONET is not set 350# CONFIG_ECONET is not set
344# CONFIG_WAN_ROUTER is not set 351# CONFIG_WAN_ROUTER is not set
345# CONFIG_NET_SCHED is not set 352# CONFIG_NET_SCHED is not set
353# CONFIG_DCB is not set
346 354
347# 355#
348# Network testing 356# Network testing
@@ -358,8 +366,9 @@ CONFIG_WIRELESS=y
358# CONFIG_CFG80211 is not set 366# CONFIG_CFG80211 is not set
359CONFIG_WIRELESS_OLD_REGULATORY=y 367CONFIG_WIRELESS_OLD_REGULATORY=y
360# CONFIG_WIRELESS_EXT is not set 368# CONFIG_WIRELESS_EXT is not set
369# CONFIG_LIB80211 is not set
361# CONFIG_MAC80211 is not set 370# CONFIG_MAC80211 is not set
362# CONFIG_IEEE80211 is not set 371# CONFIG_WIMAX is not set
363# CONFIG_RFKILL is not set 372# CONFIG_RFKILL is not set
364# CONFIG_NET_9P is not set 373# CONFIG_NET_9P is not set
365 374
@@ -380,6 +389,7 @@ CONFIG_MTD=y
380# CONFIG_MTD_DEBUG is not set 389# CONFIG_MTD_DEBUG is not set
381# CONFIG_MTD_CONCAT is not set 390# CONFIG_MTD_CONCAT is not set
382CONFIG_MTD_PARTITIONS=y 391CONFIG_MTD_PARTITIONS=y
392# CONFIG_MTD_TESTS is not set
383# CONFIG_MTD_REDBOOT_PARTS is not set 393# CONFIG_MTD_REDBOOT_PARTS is not set
384CONFIG_MTD_CMDLINE_PARTS=y 394CONFIG_MTD_CMDLINE_PARTS=y
385# CONFIG_MTD_OF_PARTS is not set 395# CONFIG_MTD_OF_PARTS is not set
@@ -451,6 +461,12 @@ CONFIG_MTD_PHYSMAP_OF=y
451# CONFIG_MTD_ONENAND is not set 461# CONFIG_MTD_ONENAND is not set
452 462
453# 463#
464# LPDDR flash memory drivers
465#
466# CONFIG_MTD_LPDDR is not set
467# CONFIG_MTD_QINFO_PROBE is not set
468
469#
454# UBI - Unsorted block images 470# UBI - Unsorted block images
455# 471#
456# CONFIG_MTD_UBI is not set 472# CONFIG_MTD_UBI is not set
@@ -480,8 +496,10 @@ CONFIG_MISC_DEVICES=y
480# CONFIG_EEPROM_93CX6 is not set 496# CONFIG_EEPROM_93CX6 is not set
481# CONFIG_SGI_IOC4 is not set 497# CONFIG_SGI_IOC4 is not set
482# CONFIG_TIFM_CORE is not set 498# CONFIG_TIFM_CORE is not set
499# CONFIG_ICS932S401 is not set
483# CONFIG_ENCLOSURE_SERVICES is not set 500# CONFIG_ENCLOSURE_SERVICES is not set
484# CONFIG_HP_ILO is not set 501# CONFIG_HP_ILO is not set
502# CONFIG_C2PORT is not set
485CONFIG_HAVE_IDE=y 503CONFIG_HAVE_IDE=y
486# CONFIG_IDE is not set 504# CONFIG_IDE is not set
487 505
@@ -524,6 +542,7 @@ CONFIG_SCSI_WAIT_SCAN=m
524# CONFIG_SCSI_SRP_ATTRS is not set 542# CONFIG_SCSI_SRP_ATTRS is not set
525CONFIG_SCSI_LOWLEVEL=y 543CONFIG_SCSI_LOWLEVEL=y
526# CONFIG_ISCSI_TCP is not set 544# CONFIG_ISCSI_TCP is not set
545# CONFIG_SCSI_CXGB3_ISCSI is not set
527# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 546# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
528# CONFIG_SCSI_3W_9XXX is not set 547# CONFIG_SCSI_3W_9XXX is not set
529# CONFIG_SCSI_ACARD is not set 548# CONFIG_SCSI_ACARD is not set
@@ -540,6 +559,8 @@ CONFIG_SCSI_LOWLEVEL=y
540# CONFIG_MEGARAID_SAS is not set 559# CONFIG_MEGARAID_SAS is not set
541# CONFIG_SCSI_HPTIOP is not set 560# CONFIG_SCSI_HPTIOP is not set
542# CONFIG_SCSI_BUSLOGIC is not set 561# CONFIG_SCSI_BUSLOGIC is not set
562# CONFIG_LIBFC is not set
563# CONFIG_FCOE is not set
543# CONFIG_SCSI_DMX3191D is not set 564# CONFIG_SCSI_DMX3191D is not set
544# CONFIG_SCSI_EATA is not set 565# CONFIG_SCSI_EATA is not set
545# CONFIG_SCSI_FUTURE_DOMAIN is not set 566# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -598,6 +619,9 @@ CONFIG_MARVELL_PHY=y
598# CONFIG_BROADCOM_PHY is not set 619# CONFIG_BROADCOM_PHY is not set
599# CONFIG_ICPLUS_PHY is not set 620# CONFIG_ICPLUS_PHY is not set
600# CONFIG_REALTEK_PHY is not set 621# CONFIG_REALTEK_PHY is not set
622# CONFIG_NATIONAL_PHY is not set
623# CONFIG_STE10XP is not set
624# CONFIG_LSI_ET1011C_PHY is not set
601# CONFIG_FIXED_PHY is not set 625# CONFIG_FIXED_PHY is not set
602# CONFIG_MDIO_BITBANG is not set 626# CONFIG_MDIO_BITBANG is not set
603CONFIG_NET_ETHERNET=y 627CONFIG_NET_ETHERNET=y
@@ -638,7 +662,6 @@ CONFIG_NETDEV_1000=y
638# CONFIG_GIANFAR is not set 662# CONFIG_GIANFAR is not set
639CONFIG_UCC_GETH=y 663CONFIG_UCC_GETH=y
640# CONFIG_UGETH_MAGIC_PACKET is not set 664# CONFIG_UGETH_MAGIC_PACKET is not set
641# CONFIG_UGETH_FILTERING is not set
642# CONFIG_UGETH_TX_ON_DEMAND is not set 665# CONFIG_UGETH_TX_ON_DEMAND is not set
643# CONFIG_MV643XX_ETH is not set 666# CONFIG_MV643XX_ETH is not set
644# CONFIG_QLA3XXX is not set 667# CONFIG_QLA3XXX is not set
@@ -647,6 +670,7 @@ CONFIG_UCC_GETH=y
647# CONFIG_JME is not set 670# CONFIG_JME is not set
648CONFIG_NETDEV_10000=y 671CONFIG_NETDEV_10000=y
649# CONFIG_CHELSIO_T1 is not set 672# CONFIG_CHELSIO_T1 is not set
673CONFIG_CHELSIO_T3_DEPENDS=y
650# CONFIG_CHELSIO_T3 is not set 674# CONFIG_CHELSIO_T3 is not set
651# CONFIG_ENIC is not set 675# CONFIG_ENIC is not set
652# CONFIG_IXGBE is not set 676# CONFIG_IXGBE is not set
@@ -669,6 +693,10 @@ CONFIG_NETDEV_10000=y
669# CONFIG_WLAN_PRE80211 is not set 693# CONFIG_WLAN_PRE80211 is not set
670# CONFIG_WLAN_80211 is not set 694# CONFIG_WLAN_80211 is not set
671# CONFIG_IWLWIFI_LEDS is not set 695# CONFIG_IWLWIFI_LEDS is not set
696
697#
698# Enable WiMAX (Networking options) to see the WiMAX drivers
699#
672# CONFIG_WAN is not set 700# CONFIG_WAN is not set
673# CONFIG_FDDI is not set 701# CONFIG_FDDI is not set
674# CONFIG_HIPPI is not set 702# CONFIG_HIPPI is not set
@@ -740,8 +768,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
740# CONFIG_SERIAL_OF_PLATFORM is not set 768# CONFIG_SERIAL_OF_PLATFORM is not set
741# CONFIG_SERIAL_QE is not set 769# CONFIG_SERIAL_QE is not set
742CONFIG_UNIX98_PTYS=y 770CONFIG_UNIX98_PTYS=y
771# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
743CONFIG_LEGACY_PTYS=y 772CONFIG_LEGACY_PTYS=y
744CONFIG_LEGACY_PTY_COUNT=256 773CONFIG_LEGACY_PTY_COUNT=256
774# CONFIG_HVC_UDBG is not set
745# CONFIG_IPMI_HANDLER is not set 775# CONFIG_IPMI_HANDLER is not set
746CONFIG_HW_RANDOM=y 776CONFIG_HW_RANDOM=y
747# CONFIG_NVRAM is not set 777# CONFIG_NVRAM is not set
@@ -805,15 +835,14 @@ CONFIG_I2C_MPC=y
805# Miscellaneous I2C Chip support 835# Miscellaneous I2C Chip support
806# 836#
807# CONFIG_DS1682 is not set 837# CONFIG_DS1682 is not set
808# CONFIG_AT24 is not set 838# CONFIG_EEPROM_AT24 is not set
809# CONFIG_SENSORS_EEPROM is not set 839# CONFIG_EEPROM_LEGACY is not set
810# CONFIG_SENSORS_PCF8574 is not set 840# CONFIG_SENSORS_PCF8574 is not set
811# CONFIG_PCF8575 is not set 841# CONFIG_PCF8575 is not set
812# CONFIG_SENSORS_PCA9539 is not set 842# CONFIG_SENSORS_PCA9539 is not set
813# CONFIG_SENSORS_PCF8591 is not set 843# CONFIG_SENSORS_PCF8591 is not set
814# CONFIG_SENSORS_MAX6875 is not set 844# CONFIG_SENSORS_MAX6875 is not set
815# CONFIG_SENSORS_TSL2550 is not set 845# CONFIG_SENSORS_TSL2550 is not set
816# CONFIG_MCU_MPC8349EMITX is not set
817# CONFIG_I2C_DEBUG_CORE is not set 846# CONFIG_I2C_DEBUG_CORE is not set
818# CONFIG_I2C_DEBUG_ALGO is not set 847# CONFIG_I2C_DEBUG_ALGO is not set
819# CONFIG_I2C_DEBUG_BUS is not set 848# CONFIG_I2C_DEBUG_BUS is not set
@@ -833,8 +862,10 @@ CONFIG_HWMON=y
833# CONFIG_SENSORS_ADM1029 is not set 862# CONFIG_SENSORS_ADM1029 is not set
834# CONFIG_SENSORS_ADM1031 is not set 863# CONFIG_SENSORS_ADM1031 is not set
835# CONFIG_SENSORS_ADM9240 is not set 864# CONFIG_SENSORS_ADM9240 is not set
865# CONFIG_SENSORS_ADT7462 is not set
836# CONFIG_SENSORS_ADT7470 is not set 866# CONFIG_SENSORS_ADT7470 is not set
837# CONFIG_SENSORS_ADT7473 is not set 867# CONFIG_SENSORS_ADT7473 is not set
868# CONFIG_SENSORS_ADT7475 is not set
838# CONFIG_SENSORS_ATXP1 is not set 869# CONFIG_SENSORS_ATXP1 is not set
839# CONFIG_SENSORS_DS1621 is not set 870# CONFIG_SENSORS_DS1621 is not set
840# CONFIG_SENSORS_I5K_AMB is not set 871# CONFIG_SENSORS_I5K_AMB is not set
@@ -855,6 +886,7 @@ CONFIG_HWMON=y
855# CONFIG_SENSORS_LM90 is not set 886# CONFIG_SENSORS_LM90 is not set
856# CONFIG_SENSORS_LM92 is not set 887# CONFIG_SENSORS_LM92 is not set
857# CONFIG_SENSORS_LM93 is not set 888# CONFIG_SENSORS_LM93 is not set
889# CONFIG_SENSORS_LTC4245 is not set
858# CONFIG_SENSORS_MAX1619 is not set 890# CONFIG_SENSORS_MAX1619 is not set
859# CONFIG_SENSORS_MAX6650 is not set 891# CONFIG_SENSORS_MAX6650 is not set
860# CONFIG_SENSORS_PC87360 is not set 892# CONFIG_SENSORS_PC87360 is not set
@@ -895,11 +927,11 @@ CONFIG_WATCHDOG=y
895# 927#
896# CONFIG_PCIPCWATCHDOG is not set 928# CONFIG_PCIPCWATCHDOG is not set
897# CONFIG_WDTPCI is not set 929# CONFIG_WDTPCI is not set
930CONFIG_SSB_POSSIBLE=y
898 931
899# 932#
900# Sonics Silicon Backplane 933# Sonics Silicon Backplane
901# 934#
902CONFIG_SSB_POSSIBLE=y
903# CONFIG_SSB is not set 935# CONFIG_SSB is not set
904 936
905# 937#
@@ -908,18 +940,13 @@ CONFIG_SSB_POSSIBLE=y
908# CONFIG_MFD_CORE is not set 940# CONFIG_MFD_CORE is not set
909# CONFIG_MFD_SM501 is not set 941# CONFIG_MFD_SM501 is not set
910# CONFIG_HTC_PASIC3 is not set 942# CONFIG_HTC_PASIC3 is not set
943# CONFIG_TWL4030_CORE is not set
911# CONFIG_MFD_TMIO is not set 944# CONFIG_MFD_TMIO is not set
912# CONFIG_PMIC_DA903X is not set 945# CONFIG_PMIC_DA903X is not set
913# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
914# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
915 948# CONFIG_MFD_PCF50633 is not set
916#
917# Voltage and Current regulators
918#
919# CONFIG_REGULATOR is not set 949# CONFIG_REGULATOR is not set
920# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
921# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
922# CONFIG_REGULATOR_BQ24022 is not set
923 950
924# 951#
925# Multimedia devices 952# Multimedia devices
@@ -975,9 +1002,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
975# 1002#
976 1003
977# 1004#
978# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
979# 1006#
980# CONFIG_USB_GADGET is not set 1007# CONFIG_USB_GADGET is not set
1008
1009#
1010# OTG and related infrastructure
1011#
981# CONFIG_UWB is not set 1012# CONFIG_UWB is not set
982# CONFIG_MMC is not set 1013# CONFIG_MMC is not set
983# CONFIG_MEMSTICK is not set 1014# CONFIG_MEMSTICK is not set
@@ -1015,6 +1046,7 @@ CONFIG_RTC_DRV_DS1374=y
1015# CONFIG_RTC_DRV_M41T80 is not set 1046# CONFIG_RTC_DRV_M41T80 is not set
1016# CONFIG_RTC_DRV_S35390A is not set 1047# CONFIG_RTC_DRV_S35390A is not set
1017# CONFIG_RTC_DRV_FM3130 is not set 1048# CONFIG_RTC_DRV_FM3130 is not set
1049# CONFIG_RTC_DRV_RX8581 is not set
1018 1050
1019# 1051#
1020# SPI RTC drivers 1052# SPI RTC drivers
@@ -1062,6 +1094,7 @@ CONFIG_FS_MBCACHE=y
1062CONFIG_FILE_LOCKING=y 1094CONFIG_FILE_LOCKING=y
1063# CONFIG_XFS_FS is not set 1095# CONFIG_XFS_FS is not set
1064# CONFIG_OCFS2_FS is not set 1096# CONFIG_OCFS2_FS is not set
1097# CONFIG_BTRFS_FS is not set
1065CONFIG_DNOTIFY=y 1098CONFIG_DNOTIFY=y
1066CONFIG_INOTIFY=y 1099CONFIG_INOTIFY=y
1067CONFIG_INOTIFY_USER=y 1100CONFIG_INOTIFY_USER=y
@@ -1095,10 +1128,7 @@ CONFIG_TMPFS=y
1095# CONFIG_TMPFS_POSIX_ACL is not set 1128# CONFIG_TMPFS_POSIX_ACL is not set
1096# CONFIG_HUGETLB_PAGE is not set 1129# CONFIG_HUGETLB_PAGE is not set
1097# CONFIG_CONFIGFS_FS is not set 1130# CONFIG_CONFIGFS_FS is not set
1098 1131CONFIG_MISC_FILESYSTEMS=y
1099#
1100# Miscellaneous filesystems
1101#
1102# CONFIG_ADFS_FS is not set 1132# CONFIG_ADFS_FS is not set
1103# CONFIG_AFFS_FS is not set 1133# CONFIG_AFFS_FS is not set
1104# CONFIG_HFS_FS is not set 1134# CONFIG_HFS_FS is not set
@@ -1108,6 +1138,7 @@ CONFIG_TMPFS=y
1108# CONFIG_EFS_FS is not set 1138# CONFIG_EFS_FS is not set
1109# CONFIG_JFFS2_FS is not set 1139# CONFIG_JFFS2_FS is not set
1110# CONFIG_CRAMFS is not set 1140# CONFIG_CRAMFS is not set
1141# CONFIG_SQUASHFS is not set
1111# CONFIG_VXFS_FS is not set 1142# CONFIG_VXFS_FS is not set
1112# CONFIG_MINIX_FS is not set 1143# CONFIG_MINIX_FS is not set
1113# CONFIG_OMFS_FS is not set 1144# CONFIG_OMFS_FS is not set
@@ -1163,6 +1194,7 @@ CONFIG_UCC=y
1163# Library routines 1194# Library routines
1164# 1195#
1165CONFIG_BITREVERSE=y 1196CONFIG_BITREVERSE=y
1197CONFIG_GENERIC_FIND_LAST_BIT=y
1166# CONFIG_CRC_CCITT is not set 1198# CONFIG_CRC_CCITT is not set
1167# CONFIG_CRC16 is not set 1199# CONFIG_CRC16 is not set
1168# CONFIG_CRC_T10DIF is not set 1200# CONFIG_CRC_T10DIF is not set
@@ -1196,6 +1228,8 @@ CONFIG_FRAME_WARN=1024
1196# CONFIG_LATENCYTOP is not set 1228# CONFIG_LATENCYTOP is not set
1197CONFIG_SYSCTL_SYSCALL_CHECK=y 1229CONFIG_SYSCTL_SYSCALL_CHECK=y
1198CONFIG_HAVE_FUNCTION_TRACER=y 1230CONFIG_HAVE_FUNCTION_TRACER=y
1231CONFIG_HAVE_DYNAMIC_FTRACE=y
1232CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1199 1233
1200# 1234#
1201# Tracers 1235# Tracers
@@ -1203,6 +1237,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1203# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1237# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1204# CONFIG_SAMPLES is not set 1238# CONFIG_SAMPLES is not set
1205CONFIG_HAVE_ARCH_KGDB=y 1239CONFIG_HAVE_ARCH_KGDB=y
1240CONFIG_PRINT_STACK_DEPTH=64
1206# CONFIG_IRQSTACKS is not set 1241# CONFIG_IRQSTACKS is not set
1207# CONFIG_BOOTX_TEXT is not set 1242# CONFIG_BOOTX_TEXT is not set
1208# CONFIG_PPC_EARLY_DEBUG is not set 1243# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1221,11 +1256,15 @@ CONFIG_CRYPTO=y
1221# 1256#
1222# CONFIG_CRYPTO_FIPS is not set 1257# CONFIG_CRYPTO_FIPS is not set
1223CONFIG_CRYPTO_ALGAPI=y 1258CONFIG_CRYPTO_ALGAPI=y
1224CONFIG_CRYPTO_AEAD=y 1259CONFIG_CRYPTO_ALGAPI2=y
1260CONFIG_CRYPTO_AEAD2=y
1225CONFIG_CRYPTO_BLKCIPHER=y 1261CONFIG_CRYPTO_BLKCIPHER=y
1262CONFIG_CRYPTO_BLKCIPHER2=y
1226CONFIG_CRYPTO_HASH=y 1263CONFIG_CRYPTO_HASH=y
1227CONFIG_CRYPTO_RNG=y 1264CONFIG_CRYPTO_HASH2=y
1265CONFIG_CRYPTO_RNG2=y
1228CONFIG_CRYPTO_MANAGER=y 1266CONFIG_CRYPTO_MANAGER=y
1267CONFIG_CRYPTO_MANAGER2=y
1229# CONFIG_CRYPTO_GF128MUL is not set 1268# CONFIG_CRYPTO_GF128MUL is not set
1230# CONFIG_CRYPTO_NULL is not set 1269# CONFIG_CRYPTO_NULL is not set
1231# CONFIG_CRYPTO_CRYPTD is not set 1270# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index b9b236806e9f..0dc11c44306b 100644
--- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_rdk_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:00 2008 4# Mon Jan 26 15:36:01 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_GPIO=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -76,12 +76,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 77# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 78CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 79CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 80CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 81# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 82CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 85CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 86CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 87# CONFIG_RELAY is not set
@@ -114,7 +114,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 114CONFIG_SLUB=y
115# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 119CONFIG_HAVE_IOREMAP_PROT=y
@@ -124,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 127CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 133CONFIG_BLOCK=y
137# CONFIG_LBD is not set 134# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
142 138
@@ -153,6 +149,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
157 157
158# 158#
@@ -198,6 +198,8 @@ CONFIG_IPIC=y
198CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199CONFIG_QE_GPIO=y 199CONFIG_QE_GPIO=y
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_SIMPLE_GPIO is not set
202# CONFIG_MCU_MPC8349EMITX is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -224,6 +226,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
224CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
226# CONFIG_KEXEC is not set 228# CONFIG_KEXEC is not set
229# CONFIG_CRASH_DUMP is not set
227CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
228CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
229CONFIG_SELECT_MEMORY_MODEL=y 232CONFIG_SELECT_MEMORY_MODEL=y
@@ -235,12 +238,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
235CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
237CONFIG_MIGRATION=y 240CONFIG_MIGRATION=y
238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set 241# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +272,7 @@ CONFIG_PCI_SYSCALL=y
267CONFIG_ARCH_SUPPORTS_MSI=y 272CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +295,7 @@ CONFIG_NET=y
289# 295#
290# Networking options 296# Networking options
291# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -345,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
348 356
349# 357#
350# Network testing 358# Network testing
@@ -360,8 +368,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 369CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
371# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 372# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 373# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
367 376
@@ -384,6 +393,7 @@ CONFIG_MTD=y
384# CONFIG_MTD_DEBUG is not set 393# CONFIG_MTD_DEBUG is not set
385# CONFIG_MTD_CONCAT is not set 394# CONFIG_MTD_CONCAT is not set
386CONFIG_MTD_PARTITIONS=y 395CONFIG_MTD_PARTITIONS=y
396# CONFIG_MTD_TESTS is not set
387# CONFIG_MTD_REDBOOT_PARTS is not set 397# CONFIG_MTD_REDBOOT_PARTS is not set
388CONFIG_MTD_CMDLINE_PARTS=y 398CONFIG_MTD_CMDLINE_PARTS=y
389# CONFIG_MTD_OF_PARTS is not set 399# CONFIG_MTD_OF_PARTS is not set
@@ -462,6 +472,12 @@ CONFIG_MTD_PHYSMAP_OF=y
462# CONFIG_MTD_ONENAND is not set 472# CONFIG_MTD_ONENAND is not set
463 473
464# 474#
475# LPDDR flash memory drivers
476#
477# CONFIG_MTD_LPDDR is not set
478# CONFIG_MTD_QINFO_PROBE is not set
479
480#
465# UBI - Unsorted block images 481# UBI - Unsorted block images
466# 482#
467# CONFIG_MTD_UBI is not set 483# CONFIG_MTD_UBI is not set
@@ -493,8 +509,10 @@ CONFIG_MISC_DEVICES=y
493# CONFIG_EEPROM_93CX6 is not set 509# CONFIG_EEPROM_93CX6 is not set
494# CONFIG_SGI_IOC4 is not set 510# CONFIG_SGI_IOC4 is not set
495# CONFIG_TIFM_CORE is not set 511# CONFIG_TIFM_CORE is not set
512# CONFIG_ICS932S401 is not set
496# CONFIG_ENCLOSURE_SERVICES is not set 513# CONFIG_ENCLOSURE_SERVICES is not set
497# CONFIG_HP_ILO is not set 514# CONFIG_HP_ILO is not set
515# CONFIG_C2PORT is not set
498CONFIG_HAVE_IDE=y 516CONFIG_HAVE_IDE=y
499# CONFIG_IDE is not set 517# CONFIG_IDE is not set
500 518
@@ -543,6 +561,9 @@ CONFIG_PHYLIB=y
543CONFIG_BROADCOM_PHY=y 561CONFIG_BROADCOM_PHY=y
544# CONFIG_ICPLUS_PHY is not set 562# CONFIG_ICPLUS_PHY is not set
545# CONFIG_REALTEK_PHY is not set 563# CONFIG_REALTEK_PHY is not set
564# CONFIG_NATIONAL_PHY is not set
565# CONFIG_STE10XP is not set
566# CONFIG_LSI_ET1011C_PHY is not set
546# CONFIG_FIXED_PHY is not set 567# CONFIG_FIXED_PHY is not set
547# CONFIG_MDIO_BITBANG is not set 568# CONFIG_MDIO_BITBANG is not set
548# CONFIG_NET_ETHERNET is not set 569# CONFIG_NET_ETHERNET is not set
@@ -566,7 +587,6 @@ CONFIG_NETDEV_1000=y
566# CONFIG_GIANFAR is not set 587# CONFIG_GIANFAR is not set
567CONFIG_UCC_GETH=y 588CONFIG_UCC_GETH=y
568# CONFIG_UGETH_MAGIC_PACKET is not set 589# CONFIG_UGETH_MAGIC_PACKET is not set
569# CONFIG_UGETH_FILTERING is not set
570# CONFIG_UGETH_TX_ON_DEMAND is not set 590# CONFIG_UGETH_TX_ON_DEMAND is not set
571# CONFIG_MV643XX_ETH is not set 591# CONFIG_MV643XX_ETH is not set
572# CONFIG_QLA3XXX is not set 592# CONFIG_QLA3XXX is not set
@@ -582,6 +602,10 @@ CONFIG_UCC_GETH=y
582# CONFIG_WLAN_PRE80211 is not set 602# CONFIG_WLAN_PRE80211 is not set
583# CONFIG_WLAN_80211 is not set 603# CONFIG_WLAN_80211 is not set
584# CONFIG_IWLWIFI_LEDS is not set 604# CONFIG_IWLWIFI_LEDS is not set
605
606#
607# Enable WiMAX (Networking options) to see the WiMAX drivers
608#
585# CONFIG_WAN is not set 609# CONFIG_WAN is not set
586# CONFIG_FDDI is not set 610# CONFIG_FDDI is not set
587# CONFIG_HIPPI is not set 611# CONFIG_HIPPI is not set
@@ -656,8 +680,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
656# CONFIG_SERIAL_OF_PLATFORM is not set 680# CONFIG_SERIAL_OF_PLATFORM is not set
657CONFIG_SERIAL_QE=y 681CONFIG_SERIAL_QE=y
658CONFIG_UNIX98_PTYS=y 682CONFIG_UNIX98_PTYS=y
683# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
659CONFIG_LEGACY_PTYS=y 684CONFIG_LEGACY_PTYS=y
660CONFIG_LEGACY_PTY_COUNT=256 685CONFIG_LEGACY_PTY_COUNT=256
686# CONFIG_HVC_UDBG is not set
661# CONFIG_IPMI_HANDLER is not set 687# CONFIG_IPMI_HANDLER is not set
662CONFIG_HW_RANDOM=y 688CONFIG_HW_RANDOM=y
663# CONFIG_NVRAM is not set 689# CONFIG_NVRAM is not set
@@ -723,16 +749,14 @@ CONFIG_I2C_MPC=y
723# Miscellaneous I2C Chip support 749# Miscellaneous I2C Chip support
724# 750#
725# CONFIG_DS1682 is not set 751# CONFIG_DS1682 is not set
726# CONFIG_AT24 is not set 752# CONFIG_EEPROM_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set 753# CONFIG_EEPROM_LEGACY is not set
728# CONFIG_SENSORS_PCF8574 is not set 754# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set 755# CONFIG_PCF8575 is not set
730# CONFIG_SENSORS_PCA9539 is not set 756# CONFIG_SENSORS_PCA9539 is not set
731# CONFIG_SENSORS_PCF8591 is not set 757# CONFIG_SENSORS_PCF8591 is not set
732# CONFIG_TPS65010 is not set
733# CONFIG_SENSORS_MAX6875 is not set 758# CONFIG_SENSORS_MAX6875 is not set
734# CONFIG_SENSORS_TSL2550 is not set 759# CONFIG_SENSORS_TSL2550 is not set
735# CONFIG_MCU_MPC8349EMITX is not set
736# CONFIG_I2C_DEBUG_CORE is not set 760# CONFIG_I2C_DEBUG_CORE is not set
737# CONFIG_I2C_DEBUG_ALGO is not set 761# CONFIG_I2C_DEBUG_ALGO is not set
738# CONFIG_I2C_DEBUG_BUS is not set 762# CONFIG_I2C_DEBUG_BUS is not set
@@ -744,12 +768,13 @@ CONFIG_SPI_MASTER=y
744# SPI Master Controller Drivers 768# SPI Master Controller Drivers
745# 769#
746CONFIG_SPI_BITBANG=y 770CONFIG_SPI_BITBANG=y
771# CONFIG_SPI_GPIO is not set
747CONFIG_SPI_MPC83xx=y 772CONFIG_SPI_MPC83xx=y
748 773
749# 774#
750# SPI Protocol Masters 775# SPI Protocol Masters
751# 776#
752# CONFIG_SPI_AT25 is not set 777# CONFIG_EEPROM_AT25 is not set
753CONFIG_SPI_SPIDEV=y 778CONFIG_SPI_SPIDEV=y
754# CONFIG_SPI_TLE62X0 is not set 779# CONFIG_SPI_TLE62X0 is not set
755CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 780CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -758,6 +783,11 @@ CONFIG_GPIOLIB=y
758# CONFIG_GPIO_SYSFS is not set 783# CONFIG_GPIO_SYSFS is not set
759 784
760# 785#
786# Memory mapped GPIO expanders:
787#
788# CONFIG_GPIO_XILINX is not set
789
790#
761# I2C GPIO expanders: 791# I2C GPIO expanders:
762# 792#
763# CONFIG_GPIO_MAX732X is not set 793# CONFIG_GPIO_MAX732X is not set
@@ -794,11 +824,11 @@ CONFIG_WATCHDOG=y
794# 824#
795# CONFIG_PCIPCWATCHDOG is not set 825# CONFIG_PCIPCWATCHDOG is not set
796# CONFIG_WDTPCI is not set 826# CONFIG_WDTPCI is not set
827CONFIG_SSB_POSSIBLE=y
797 828
798# 829#
799# Sonics Silicon Backplane 830# Sonics Silicon Backplane
800# 831#
801CONFIG_SSB_POSSIBLE=y
802# CONFIG_SSB is not set 832# CONFIG_SSB is not set
803 833
804# 834#
@@ -807,18 +837,14 @@ CONFIG_SSB_POSSIBLE=y
807# CONFIG_MFD_CORE is not set 837# CONFIG_MFD_CORE is not set
808# CONFIG_MFD_SM501 is not set 838# CONFIG_MFD_SM501 is not set
809# CONFIG_HTC_PASIC3 is not set 839# CONFIG_HTC_PASIC3 is not set
840# CONFIG_TPS65010 is not set
841# CONFIG_TWL4030_CORE is not set
810# CONFIG_MFD_TMIO is not set 842# CONFIG_MFD_TMIO is not set
811# CONFIG_PMIC_DA903X is not set 843# CONFIG_PMIC_DA903X is not set
812# CONFIG_MFD_WM8400 is not set 844# CONFIG_MFD_WM8400 is not set
813# CONFIG_MFD_WM8350_I2C is not set 845# CONFIG_MFD_WM8350_I2C is not set
814 846# CONFIG_MFD_PCF50633 is not set
815#
816# Voltage and Current regulators
817#
818# CONFIG_REGULATOR is not set 847# CONFIG_REGULATOR is not set
819# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
820# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
821# CONFIG_REGULATOR_BQ24022 is not set
822 848
823# 849#
824# Multimedia devices 850# Multimedia devices
@@ -897,6 +923,7 @@ CONFIG_FB_OF=y
897# CONFIG_FB_IBM_GXT4500 is not set 923# CONFIG_FB_IBM_GXT4500 is not set
898# CONFIG_FB_VIRTUAL is not set 924# CONFIG_FB_VIRTUAL is not set
899# CONFIG_FB_METRONOME is not set 925# CONFIG_FB_METRONOME is not set
926# CONFIG_FB_MB862XX is not set
900# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 927# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
901 928
902# 929#
@@ -962,6 +989,7 @@ CONFIG_FS_MBCACHE=y
962CONFIG_FILE_LOCKING=y 989CONFIG_FILE_LOCKING=y
963# CONFIG_XFS_FS is not set 990# CONFIG_XFS_FS is not set
964# CONFIG_OCFS2_FS is not set 991# CONFIG_OCFS2_FS is not set
992# CONFIG_BTRFS_FS is not set
965CONFIG_DNOTIFY=y 993CONFIG_DNOTIFY=y
966CONFIG_INOTIFY=y 994CONFIG_INOTIFY=y
967CONFIG_INOTIFY_USER=y 995CONFIG_INOTIFY_USER=y
@@ -995,10 +1023,7 @@ CONFIG_TMPFS=y
995# CONFIG_TMPFS_POSIX_ACL is not set 1023# CONFIG_TMPFS_POSIX_ACL is not set
996# CONFIG_HUGETLB_PAGE is not set 1024# CONFIG_HUGETLB_PAGE is not set
997# CONFIG_CONFIGFS_FS is not set 1025# CONFIG_CONFIGFS_FS is not set
998 1026CONFIG_MISC_FILESYSTEMS=y
999#
1000# Miscellaneous filesystems
1001#
1002# CONFIG_ADFS_FS is not set 1027# CONFIG_ADFS_FS is not set
1003# CONFIG_AFFS_FS is not set 1028# CONFIG_AFFS_FS is not set
1004# CONFIG_HFS_FS is not set 1029# CONFIG_HFS_FS is not set
@@ -1018,6 +1043,7 @@ CONFIG_JFFS2_ZLIB=y
1018CONFIG_JFFS2_RTIME=y 1043CONFIG_JFFS2_RTIME=y
1019# CONFIG_JFFS2_RUBIN is not set 1044# CONFIG_JFFS2_RUBIN is not set
1020# CONFIG_CRAMFS is not set 1045# CONFIG_CRAMFS is not set
1046# CONFIG_SQUASHFS is not set
1021# CONFIG_VXFS_FS is not set 1047# CONFIG_VXFS_FS is not set
1022# CONFIG_MINIX_FS is not set 1048# CONFIG_MINIX_FS is not set
1023# CONFIG_OMFS_FS is not set 1049# CONFIG_OMFS_FS is not set
@@ -1074,6 +1100,7 @@ CONFIG_UCC=y
1074# Library routines 1100# Library routines
1075# 1101#
1076CONFIG_BITREVERSE=y 1102CONFIG_BITREVERSE=y
1103CONFIG_GENERIC_FIND_LAST_BIT=y
1077# CONFIG_CRC_CCITT is not set 1104# CONFIG_CRC_CCITT is not set
1078# CONFIG_CRC16 is not set 1105# CONFIG_CRC16 is not set
1079# CONFIG_CRC_T10DIF is not set 1106# CONFIG_CRC_T10DIF is not set
@@ -1109,6 +1136,8 @@ CONFIG_FRAME_WARN=1024
1109# CONFIG_LATENCYTOP is not set 1136# CONFIG_LATENCYTOP is not set
1110CONFIG_SYSCTL_SYSCALL_CHECK=y 1137CONFIG_SYSCTL_SYSCALL_CHECK=y
1111CONFIG_HAVE_FUNCTION_TRACER=y 1138CONFIG_HAVE_FUNCTION_TRACER=y
1139CONFIG_HAVE_DYNAMIC_FTRACE=y
1140CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1112 1141
1113# 1142#
1114# Tracers 1143# Tracers
@@ -1116,6 +1145,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1116# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1145# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1117# CONFIG_SAMPLES is not set 1146# CONFIG_SAMPLES is not set
1118CONFIG_HAVE_ARCH_KGDB=y 1147CONFIG_HAVE_ARCH_KGDB=y
1148CONFIG_PRINT_STACK_DEPTH=64
1119# CONFIG_IRQSTACKS is not set 1149# CONFIG_IRQSTACKS is not set
1120# CONFIG_BOOTX_TEXT is not set 1150# CONFIG_BOOTX_TEXT is not set
1121CONFIG_PPC_EARLY_DEBUG=y 1151CONFIG_PPC_EARLY_DEBUG=y
@@ -1145,11 +1175,15 @@ CONFIG_CRYPTO=y
1145# 1175#
1146# CONFIG_CRYPTO_FIPS is not set 1176# CONFIG_CRYPTO_FIPS is not set
1147CONFIG_CRYPTO_ALGAPI=y 1177CONFIG_CRYPTO_ALGAPI=y
1148CONFIG_CRYPTO_AEAD=y 1178CONFIG_CRYPTO_ALGAPI2=y
1179CONFIG_CRYPTO_AEAD2=y
1149CONFIG_CRYPTO_BLKCIPHER=y 1180CONFIG_CRYPTO_BLKCIPHER=y
1181CONFIG_CRYPTO_BLKCIPHER2=y
1150CONFIG_CRYPTO_HASH=y 1182CONFIG_CRYPTO_HASH=y
1151CONFIG_CRYPTO_RNG=y 1183CONFIG_CRYPTO_HASH2=y
1184CONFIG_CRYPTO_RNG2=y
1152CONFIG_CRYPTO_MANAGER=y 1185CONFIG_CRYPTO_MANAGER=y
1186CONFIG_CRYPTO_MANAGER2=y
1153# CONFIG_CRYPTO_GF128MUL is not set 1187# CONFIG_CRYPTO_GF128MUL is not set
1154# CONFIG_CRYPTO_NULL is not set 1188# CONFIG_CRYPTO_NULL is not set
1155# CONFIG_CRYPTO_CRYPTD is not set 1189# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index f6350d7e1688..e42f6b3917d2 100644
--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:00 2008 4# Mon Jan 26 15:35:59 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 127CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 133CONFIG_BLOCK=y
137# CONFIG_LBD is not set 134# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
142 138
@@ -153,6 +149,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
157 157
158# 158#
@@ -199,6 +199,8 @@ CONFIG_IPIC=y
199# CONFIG_QUICC_ENGINE is not set 199# CONFIG_QUICC_ENGINE is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set 201# CONFIG_MPC8xxx_GPIO is not set
202# CONFIG_SIMPLE_GPIO is not set
203# CONFIG_MCU_MPC8349EMITX is not set
202 204
203# 205#
204# Kernel options 206# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -404,8 +413,10 @@ CONFIG_MISC_DEVICES=y
404# CONFIG_EEPROM_93CX6 is not set 413# CONFIG_EEPROM_93CX6 is not set
405# CONFIG_SGI_IOC4 is not set 414# CONFIG_SGI_IOC4 is not set
406# CONFIG_TIFM_CORE is not set 415# CONFIG_TIFM_CORE is not set
416# CONFIG_ICS932S401 is not set
407# CONFIG_ENCLOSURE_SERVICES is not set 417# CONFIG_ENCLOSURE_SERVICES is not set
408# CONFIG_HP_ILO is not set 418# CONFIG_HP_ILO is not set
419# CONFIG_C2PORT is not set
409CONFIG_HAVE_IDE=y 420CONFIG_HAVE_IDE=y
410# CONFIG_IDE is not set 421# CONFIG_IDE is not set
411 422
@@ -448,6 +459,7 @@ CONFIG_SCSI_WAIT_SCAN=m
448# CONFIG_SCSI_SRP_ATTRS is not set 459# CONFIG_SCSI_SRP_ATTRS is not set
449CONFIG_SCSI_LOWLEVEL=y 460CONFIG_SCSI_LOWLEVEL=y
450# CONFIG_ISCSI_TCP is not set 461# CONFIG_ISCSI_TCP is not set
462# CONFIG_SCSI_CXGB3_ISCSI is not set
451# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 463# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
452# CONFIG_SCSI_3W_9XXX is not set 464# CONFIG_SCSI_3W_9XXX is not set
453# CONFIG_SCSI_ACARD is not set 465# CONFIG_SCSI_ACARD is not set
@@ -464,6 +476,8 @@ CONFIG_SCSI_LOWLEVEL=y
464# CONFIG_MEGARAID_SAS is not set 476# CONFIG_MEGARAID_SAS is not set
465# CONFIG_SCSI_HPTIOP is not set 477# CONFIG_SCSI_HPTIOP is not set
466# CONFIG_SCSI_BUSLOGIC is not set 478# CONFIG_SCSI_BUSLOGIC is not set
479# CONFIG_LIBFC is not set
480# CONFIG_FCOE is not set
467# CONFIG_SCSI_DMX3191D is not set 481# CONFIG_SCSI_DMX3191D is not set
468# CONFIG_SCSI_EATA is not set 482# CONFIG_SCSI_EATA is not set
469# CONFIG_SCSI_FUTURE_DOMAIN is not set 483# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -583,6 +597,9 @@ CONFIG_MARVELL_PHY=y
583# CONFIG_BROADCOM_PHY is not set 597# CONFIG_BROADCOM_PHY is not set
584# CONFIG_ICPLUS_PHY is not set 598# CONFIG_ICPLUS_PHY is not set
585# CONFIG_REALTEK_PHY is not set 599# CONFIG_REALTEK_PHY is not set
600# CONFIG_NATIONAL_PHY is not set
601# CONFIG_STE10XP is not set
602# CONFIG_LSI_ET1011C_PHY is not set
586# CONFIG_FIXED_PHY is not set 603# CONFIG_FIXED_PHY is not set
587# CONFIG_MDIO_BITBANG is not set 604# CONFIG_MDIO_BITBANG is not set
588CONFIG_NET_ETHERNET=y 605CONFIG_NET_ETHERNET=y
@@ -628,6 +645,7 @@ CONFIG_GIANFAR=y
628# CONFIG_JME is not set 645# CONFIG_JME is not set
629CONFIG_NETDEV_10000=y 646CONFIG_NETDEV_10000=y
630# CONFIG_CHELSIO_T1 is not set 647# CONFIG_CHELSIO_T1 is not set
648CONFIG_CHELSIO_T3_DEPENDS=y
631# CONFIG_CHELSIO_T3 is not set 649# CONFIG_CHELSIO_T3 is not set
632# CONFIG_ENIC is not set 650# CONFIG_ENIC is not set
633# CONFIG_IXGBE is not set 651# CONFIG_IXGBE is not set
@@ -650,6 +668,10 @@ CONFIG_NETDEV_10000=y
650# CONFIG_WLAN_PRE80211 is not set 668# CONFIG_WLAN_PRE80211 is not set
651# CONFIG_WLAN_80211 is not set 669# CONFIG_WLAN_80211 is not set
652# CONFIG_IWLWIFI_LEDS is not set 670# CONFIG_IWLWIFI_LEDS is not set
671
672#
673# Enable WiMAX (Networking options) to see the WiMAX drivers
674#
653# CONFIG_WAN is not set 675# CONFIG_WAN is not set
654# CONFIG_FDDI is not set 676# CONFIG_FDDI is not set
655# CONFIG_HIPPI is not set 677# CONFIG_HIPPI is not set
@@ -720,8 +742,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
720# CONFIG_SERIAL_JSM is not set 742# CONFIG_SERIAL_JSM is not set
721# CONFIG_SERIAL_OF_PLATFORM is not set 743# CONFIG_SERIAL_OF_PLATFORM is not set
722CONFIG_UNIX98_PTYS=y 744CONFIG_UNIX98_PTYS=y
745# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
723CONFIG_LEGACY_PTYS=y 746CONFIG_LEGACY_PTYS=y
724CONFIG_LEGACY_PTY_COUNT=256 747CONFIG_LEGACY_PTY_COUNT=256
748# CONFIG_HVC_UDBG is not set
725# CONFIG_IPMI_HANDLER is not set 749# CONFIG_IPMI_HANDLER is not set
726# CONFIG_HW_RANDOM is not set 750# CONFIG_HW_RANDOM is not set
727# CONFIG_NVRAM is not set 751# CONFIG_NVRAM is not set
@@ -787,15 +811,14 @@ CONFIG_I2C_MPC=y
787# Miscellaneous I2C Chip support 811# Miscellaneous I2C Chip support
788# 812#
789# CONFIG_DS1682 is not set 813# CONFIG_DS1682 is not set
790# CONFIG_AT24 is not set 814# CONFIG_EEPROM_AT24 is not set
791# CONFIG_SENSORS_EEPROM is not set 815# CONFIG_EEPROM_LEGACY is not set
792# CONFIG_SENSORS_PCF8574 is not set 816# CONFIG_SENSORS_PCF8574 is not set
793# CONFIG_PCF8575 is not set 817# CONFIG_PCF8575 is not set
794# CONFIG_SENSORS_PCA9539 is not set 818# CONFIG_SENSORS_PCA9539 is not set
795# CONFIG_SENSORS_PCF8591 is not set 819# CONFIG_SENSORS_PCF8591 is not set
796# CONFIG_SENSORS_MAX6875 is not set 820# CONFIG_SENSORS_MAX6875 is not set
797# CONFIG_SENSORS_TSL2550 is not set 821# CONFIG_SENSORS_TSL2550 is not set
798# CONFIG_MCU_MPC8349EMITX is not set
799# CONFIG_I2C_DEBUG_CORE is not set 822# CONFIG_I2C_DEBUG_CORE is not set
800# CONFIG_I2C_DEBUG_ALGO is not set 823# CONFIG_I2C_DEBUG_ALGO is not set
801# CONFIG_I2C_DEBUG_BUS is not set 824# CONFIG_I2C_DEBUG_BUS is not set
@@ -815,8 +838,10 @@ CONFIG_HWMON=y
815# CONFIG_SENSORS_ADM1029 is not set 838# CONFIG_SENSORS_ADM1029 is not set
816# CONFIG_SENSORS_ADM1031 is not set 839# CONFIG_SENSORS_ADM1031 is not set
817# CONFIG_SENSORS_ADM9240 is not set 840# CONFIG_SENSORS_ADM9240 is not set
841# CONFIG_SENSORS_ADT7462 is not set
818# CONFIG_SENSORS_ADT7470 is not set 842# CONFIG_SENSORS_ADT7470 is not set
819# CONFIG_SENSORS_ADT7473 is not set 843# CONFIG_SENSORS_ADT7473 is not set
844# CONFIG_SENSORS_ADT7475 is not set
820# CONFIG_SENSORS_ATXP1 is not set 845# CONFIG_SENSORS_ATXP1 is not set
821# CONFIG_SENSORS_DS1621 is not set 846# CONFIG_SENSORS_DS1621 is not set
822# CONFIG_SENSORS_I5K_AMB is not set 847# CONFIG_SENSORS_I5K_AMB is not set
@@ -837,6 +862,7 @@ CONFIG_HWMON=y
837# CONFIG_SENSORS_LM90 is not set 862# CONFIG_SENSORS_LM90 is not set
838# CONFIG_SENSORS_LM92 is not set 863# CONFIG_SENSORS_LM92 is not set
839# CONFIG_SENSORS_LM93 is not set 864# CONFIG_SENSORS_LM93 is not set
865# CONFIG_SENSORS_LTC4245 is not set
840# CONFIG_SENSORS_MAX1619 is not set 866# CONFIG_SENSORS_MAX1619 is not set
841# CONFIG_SENSORS_MAX6650 is not set 867# CONFIG_SENSORS_MAX6650 is not set
842# CONFIG_SENSORS_PC87360 is not set 868# CONFIG_SENSORS_PC87360 is not set
@@ -877,11 +903,11 @@ CONFIG_WATCHDOG=y
877# 903#
878# CONFIG_PCIPCWATCHDOG is not set 904# CONFIG_PCIPCWATCHDOG is not set
879# CONFIG_WDTPCI is not set 905# CONFIG_WDTPCI is not set
906CONFIG_SSB_POSSIBLE=y
880 907
881# 908#
882# Sonics Silicon Backplane 909# Sonics Silicon Backplane
883# 910#
884CONFIG_SSB_POSSIBLE=y
885# CONFIG_SSB is not set 911# CONFIG_SSB is not set
886 912
887# 913#
@@ -890,18 +916,13 @@ CONFIG_SSB_POSSIBLE=y
890# CONFIG_MFD_CORE is not set 916# CONFIG_MFD_CORE is not set
891# CONFIG_MFD_SM501 is not set 917# CONFIG_MFD_SM501 is not set
892# CONFIG_HTC_PASIC3 is not set 918# CONFIG_HTC_PASIC3 is not set
919# CONFIG_TWL4030_CORE is not set
893# CONFIG_MFD_TMIO is not set 920# CONFIG_MFD_TMIO is not set
894# CONFIG_PMIC_DA903X is not set 921# CONFIG_PMIC_DA903X is not set
895# CONFIG_MFD_WM8400 is not set 922# CONFIG_MFD_WM8400 is not set
896# CONFIG_MFD_WM8350_I2C is not set 923# CONFIG_MFD_WM8350_I2C is not set
897 924# CONFIG_MFD_PCF50633 is not set
898#
899# Voltage and Current regulators
900#
901# CONFIG_REGULATOR is not set 925# CONFIG_REGULATOR is not set
902# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
903# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
904# CONFIG_REGULATOR_BQ24022 is not set
905 926
906# 927#
907# Multimedia devices 928# Multimedia devices
@@ -957,9 +978,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
957# 978#
958 979
959# 980#
960# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 981# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
961# 982#
962# CONFIG_USB_GADGET is not set 983# CONFIG_USB_GADGET is not set
984
985#
986# OTG and related infrastructure
987#
963# CONFIG_UWB is not set 988# CONFIG_UWB is not set
964# CONFIG_MMC is not set 989# CONFIG_MMC is not set
965# CONFIG_MEMSTICK is not set 990# CONFIG_MEMSTICK is not set
@@ -991,6 +1016,7 @@ CONFIG_FS_MBCACHE=y
991CONFIG_FILE_LOCKING=y 1016CONFIG_FILE_LOCKING=y
992# CONFIG_XFS_FS is not set 1017# CONFIG_XFS_FS is not set
993# CONFIG_OCFS2_FS is not set 1018# CONFIG_OCFS2_FS is not set
1019# CONFIG_BTRFS_FS is not set
994CONFIG_DNOTIFY=y 1020CONFIG_DNOTIFY=y
995CONFIG_INOTIFY=y 1021CONFIG_INOTIFY=y
996CONFIG_INOTIFY_USER=y 1022CONFIG_INOTIFY_USER=y
@@ -1024,10 +1050,7 @@ CONFIG_TMPFS=y
1024# CONFIG_TMPFS_POSIX_ACL is not set 1050# CONFIG_TMPFS_POSIX_ACL is not set
1025# CONFIG_HUGETLB_PAGE is not set 1051# CONFIG_HUGETLB_PAGE is not set
1026# CONFIG_CONFIGFS_FS is not set 1052# CONFIG_CONFIGFS_FS is not set
1027 1053CONFIG_MISC_FILESYSTEMS=y
1028#
1029# Miscellaneous filesystems
1030#
1031# CONFIG_ADFS_FS is not set 1054# CONFIG_ADFS_FS is not set
1032# CONFIG_AFFS_FS is not set 1055# CONFIG_AFFS_FS is not set
1033# CONFIG_HFS_FS is not set 1056# CONFIG_HFS_FS is not set
@@ -1036,6 +1059,7 @@ CONFIG_TMPFS=y
1036# CONFIG_BFS_FS is not set 1059# CONFIG_BFS_FS is not set
1037# CONFIG_EFS_FS is not set 1060# CONFIG_EFS_FS is not set
1038# CONFIG_CRAMFS is not set 1061# CONFIG_CRAMFS is not set
1062# CONFIG_SQUASHFS is not set
1039# CONFIG_VXFS_FS is not set 1063# CONFIG_VXFS_FS is not set
1040# CONFIG_MINIX_FS is not set 1064# CONFIG_MINIX_FS is not set
1041# CONFIG_OMFS_FS is not set 1065# CONFIG_OMFS_FS is not set
@@ -1093,6 +1117,7 @@ CONFIG_MSDOS_PARTITION=y
1093# Library routines 1117# Library routines
1094# 1118#
1095CONFIG_BITREVERSE=y 1119CONFIG_BITREVERSE=y
1120CONFIG_GENERIC_FIND_LAST_BIT=y
1096# CONFIG_CRC_CCITT is not set 1121# CONFIG_CRC_CCITT is not set
1097# CONFIG_CRC16 is not set 1122# CONFIG_CRC16 is not set
1098CONFIG_CRC_T10DIF=y 1123CONFIG_CRC_T10DIF=y
@@ -1124,6 +1149,8 @@ CONFIG_FRAME_WARN=1024
1124# CONFIG_LATENCYTOP is not set 1149# CONFIG_LATENCYTOP is not set
1125CONFIG_SYSCTL_SYSCALL_CHECK=y 1150CONFIG_SYSCTL_SYSCALL_CHECK=y
1126CONFIG_HAVE_FUNCTION_TRACER=y 1151CONFIG_HAVE_FUNCTION_TRACER=y
1152CONFIG_HAVE_DYNAMIC_FTRACE=y
1153CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1127 1154
1128# 1155#
1129# Tracers 1156# Tracers
@@ -1131,6 +1158,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1131# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1158# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1132# CONFIG_SAMPLES is not set 1159# CONFIG_SAMPLES is not set
1133CONFIG_HAVE_ARCH_KGDB=y 1160CONFIG_HAVE_ARCH_KGDB=y
1161CONFIG_PRINT_STACK_DEPTH=64
1134# CONFIG_IRQSTACKS is not set 1162# CONFIG_IRQSTACKS is not set
1135# CONFIG_BOOTX_TEXT is not set 1163# CONFIG_BOOTX_TEXT is not set
1136# CONFIG_PPC_EARLY_DEBUG is not set 1164# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1149,11 +1177,15 @@ CONFIG_CRYPTO=y
1149# 1177#
1150# CONFIG_CRYPTO_FIPS is not set 1178# CONFIG_CRYPTO_FIPS is not set
1151CONFIG_CRYPTO_ALGAPI=y 1179CONFIG_CRYPTO_ALGAPI=y
1152CONFIG_CRYPTO_AEAD=y 1180CONFIG_CRYPTO_ALGAPI2=y
1181CONFIG_CRYPTO_AEAD2=y
1153CONFIG_CRYPTO_BLKCIPHER=y 1182CONFIG_CRYPTO_BLKCIPHER=y
1183CONFIG_CRYPTO_BLKCIPHER2=y
1154CONFIG_CRYPTO_HASH=y 1184CONFIG_CRYPTO_HASH=y
1155CONFIG_CRYPTO_RNG=y 1185CONFIG_CRYPTO_HASH2=y
1186CONFIG_CRYPTO_RNG2=y
1156CONFIG_CRYPTO_MANAGER=y 1187CONFIG_CRYPTO_MANAGER=y
1188CONFIG_CRYPTO_MANAGER2=y
1157# CONFIG_CRYPTO_GF128MUL is not set 1189# CONFIG_CRYPTO_GF128MUL is not set
1158# CONFIG_CRYPTO_NULL is not set 1190# CONFIG_CRYPTO_NULL is not set
1159# CONFIG_CRYPTO_CRYPTD is not set 1191# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index f447de16f75d..408022f79a50 100644
--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_rdb_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:01 2008 4# Mon Jan 26 15:36:01 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -113,7 +113,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,7 +123,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y 127CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set 128# CONFIG_MODULE_FORCE_LOAD is not set
@@ -132,11 +130,9 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 132# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y 133CONFIG_BLOCK=y
137# CONFIG_LBD is not set 134# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
142 138
@@ -153,6 +149,10 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
157 157
158# 158#
@@ -199,6 +199,8 @@ CONFIG_IPIC=y
199# CONFIG_QUICC_ENGINE is not set 199# CONFIG_QUICC_ENGINE is not set
200# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set 201# CONFIG_MPC8xxx_GPIO is not set
202# CONFIG_SIMPLE_GPIO is not set
203# CONFIG_MCU_MPC8349EMITX is not set
202 204
203# 205#
204# Kernel options 206# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
229CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
230CONFIG_SELECT_MEMORY_MODEL=y 233CONFIG_SELECT_MEMORY_MODEL=y
@@ -236,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
236CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +271,7 @@ CONFIG_PCI_SYSCALL=y
266CONFIG_ARCH_SUPPORTS_MSI=y 271CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -339,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_ECONET is not set 346# CONFIG_ECONET is not set
340# CONFIG_WAN_ROUTER is not set 347# CONFIG_WAN_ROUTER is not set
341# CONFIG_NET_SCHED is not set 348# CONFIG_NET_SCHED is not set
349# CONFIG_DCB is not set
342 350
343# 351#
344# Network testing 352# Network testing
@@ -354,8 +362,9 @@ CONFIG_WIRELESS=y
354# CONFIG_CFG80211 is not set 362# CONFIG_CFG80211 is not set
355CONFIG_WIRELESS_OLD_REGULATORY=y 363CONFIG_WIRELESS_OLD_REGULATORY=y
356# CONFIG_WIRELESS_EXT is not set 364# CONFIG_WIRELESS_EXT is not set
365# CONFIG_LIB80211 is not set
357# CONFIG_MAC80211 is not set 366# CONFIG_MAC80211 is not set
358# CONFIG_IEEE80211 is not set 367# CONFIG_WIMAX is not set
359# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
360# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
361 370
@@ -400,8 +409,10 @@ CONFIG_MISC_DEVICES=y
400# CONFIG_EEPROM_93CX6 is not set 409# CONFIG_EEPROM_93CX6 is not set
401# CONFIG_SGI_IOC4 is not set 410# CONFIG_SGI_IOC4 is not set
402# CONFIG_TIFM_CORE is not set 411# CONFIG_TIFM_CORE is not set
412# CONFIG_ICS932S401 is not set
403# CONFIG_ENCLOSURE_SERVICES is not set 413# CONFIG_ENCLOSURE_SERVICES is not set
404# CONFIG_HP_ILO is not set 414# CONFIG_HP_ILO is not set
415# CONFIG_C2PORT is not set
405CONFIG_HAVE_IDE=y 416CONFIG_HAVE_IDE=y
406# CONFIG_IDE is not set 417# CONFIG_IDE is not set
407 418
@@ -460,6 +471,8 @@ CONFIG_SCSI_LOWLEVEL=y
460# CONFIG_MEGARAID_SAS is not set 471# CONFIG_MEGARAID_SAS is not set
461# CONFIG_SCSI_HPTIOP is not set 472# CONFIG_SCSI_HPTIOP is not set
462# CONFIG_SCSI_BUSLOGIC is not set 473# CONFIG_SCSI_BUSLOGIC is not set
474# CONFIG_LIBFC is not set
475# CONFIG_FCOE is not set
463# CONFIG_SCSI_DMX3191D is not set 476# CONFIG_SCSI_DMX3191D is not set
464# CONFIG_SCSI_EATA is not set 477# CONFIG_SCSI_EATA is not set
465# CONFIG_SCSI_FUTURE_DOMAIN is not set 478# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -590,6 +603,9 @@ CONFIG_MARVELL_PHY=y
590# CONFIG_BROADCOM_PHY is not set 603# CONFIG_BROADCOM_PHY is not set
591# CONFIG_ICPLUS_PHY is not set 604# CONFIG_ICPLUS_PHY is not set
592# CONFIG_REALTEK_PHY is not set 605# CONFIG_REALTEK_PHY is not set
606# CONFIG_NATIONAL_PHY is not set
607# CONFIG_STE10XP is not set
608# CONFIG_LSI_ET1011C_PHY is not set
593CONFIG_FIXED_PHY=y 609CONFIG_FIXED_PHY=y
594# CONFIG_MDIO_BITBANG is not set 610# CONFIG_MDIO_BITBANG is not set
595CONFIG_NET_ETHERNET=y 611CONFIG_NET_ETHERNET=y
@@ -644,6 +660,10 @@ CONFIG_GIANFAR=y
644# CONFIG_IWLWIFI_LEDS is not set 660# CONFIG_IWLWIFI_LEDS is not set
645 661
646# 662#
663# Enable WiMAX (Networking options) to see the WiMAX drivers
664#
665
666#
647# USB Network Adapters 667# USB Network Adapters
648# 668#
649# CONFIG_USB_CATC is not set 669# CONFIG_USB_CATC is not set
@@ -721,8 +741,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
721# CONFIG_SERIAL_JSM is not set 741# CONFIG_SERIAL_JSM is not set
722# CONFIG_SERIAL_OF_PLATFORM is not set 742# CONFIG_SERIAL_OF_PLATFORM is not set
723CONFIG_UNIX98_PTYS=y 743CONFIG_UNIX98_PTYS=y
744# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
724CONFIG_LEGACY_PTYS=y 745CONFIG_LEGACY_PTYS=y
725CONFIG_LEGACY_PTY_COUNT=256 746CONFIG_LEGACY_PTY_COUNT=256
747# CONFIG_HVC_UDBG is not set
726# CONFIG_IPMI_HANDLER is not set 748# CONFIG_IPMI_HANDLER is not set
727# CONFIG_HW_RANDOM is not set 749# CONFIG_HW_RANDOM is not set
728# CONFIG_NVRAM is not set 750# CONFIG_NVRAM is not set
@@ -789,15 +811,14 @@ CONFIG_I2C_MPC=y
789# Miscellaneous I2C Chip support 811# Miscellaneous I2C Chip support
790# 812#
791# CONFIG_DS1682 is not set 813# CONFIG_DS1682 is not set
792# CONFIG_AT24 is not set 814# CONFIG_EEPROM_AT24 is not set
793# CONFIG_SENSORS_EEPROM is not set 815# CONFIG_EEPROM_LEGACY is not set
794# CONFIG_SENSORS_PCF8574 is not set 816# CONFIG_SENSORS_PCF8574 is not set
795# CONFIG_PCF8575 is not set 817# CONFIG_PCF8575 is not set
796# CONFIG_SENSORS_PCA9539 is not set 818# CONFIG_SENSORS_PCA9539 is not set
797# CONFIG_SENSORS_PCF8591 is not set 819# CONFIG_SENSORS_PCF8591 is not set
798# CONFIG_SENSORS_MAX6875 is not set 820# CONFIG_SENSORS_MAX6875 is not set
799# CONFIG_SENSORS_TSL2550 is not set 821# CONFIG_SENSORS_TSL2550 is not set
800# CONFIG_MCU_MPC8349EMITX is not set
801# CONFIG_I2C_DEBUG_CORE is not set 822# CONFIG_I2C_DEBUG_CORE is not set
802# CONFIG_I2C_DEBUG_ALGO is not set 823# CONFIG_I2C_DEBUG_ALGO is not set
803# CONFIG_I2C_DEBUG_BUS is not set 824# CONFIG_I2C_DEBUG_BUS is not set
@@ -817,8 +838,10 @@ CONFIG_HWMON=y
817# CONFIG_SENSORS_ADM1029 is not set 838# CONFIG_SENSORS_ADM1029 is not set
818# CONFIG_SENSORS_ADM1031 is not set 839# CONFIG_SENSORS_ADM1031 is not set
819# CONFIG_SENSORS_ADM9240 is not set 840# CONFIG_SENSORS_ADM9240 is not set
841# CONFIG_SENSORS_ADT7462 is not set
820# CONFIG_SENSORS_ADT7470 is not set 842# CONFIG_SENSORS_ADT7470 is not set
821# CONFIG_SENSORS_ADT7473 is not set 843# CONFIG_SENSORS_ADT7473 is not set
844# CONFIG_SENSORS_ADT7475 is not set
822# CONFIG_SENSORS_ATXP1 is not set 845# CONFIG_SENSORS_ATXP1 is not set
823# CONFIG_SENSORS_DS1621 is not set 846# CONFIG_SENSORS_DS1621 is not set
824# CONFIG_SENSORS_I5K_AMB is not set 847# CONFIG_SENSORS_I5K_AMB is not set
@@ -839,6 +862,7 @@ CONFIG_HWMON=y
839# CONFIG_SENSORS_LM90 is not set 862# CONFIG_SENSORS_LM90 is not set
840# CONFIG_SENSORS_LM92 is not set 863# CONFIG_SENSORS_LM92 is not set
841# CONFIG_SENSORS_LM93 is not set 864# CONFIG_SENSORS_LM93 is not set
865# CONFIG_SENSORS_LTC4245 is not set
842# CONFIG_SENSORS_MAX1619 is not set 866# CONFIG_SENSORS_MAX1619 is not set
843# CONFIG_SENSORS_MAX6650 is not set 867# CONFIG_SENSORS_MAX6650 is not set
844# CONFIG_SENSORS_PC87360 is not set 868# CONFIG_SENSORS_PC87360 is not set
@@ -884,11 +908,11 @@ CONFIG_WATCHDOG=y
884# USB-based Watchdog Cards 908# USB-based Watchdog Cards
885# 909#
886# CONFIG_USBPCWATCHDOG is not set 910# CONFIG_USBPCWATCHDOG is not set
911CONFIG_SSB_POSSIBLE=y
887 912
888# 913#
889# Sonics Silicon Backplane 914# Sonics Silicon Backplane
890# 915#
891CONFIG_SSB_POSSIBLE=y
892# CONFIG_SSB is not set 916# CONFIG_SSB is not set
893 917
894# 918#
@@ -897,18 +921,13 @@ CONFIG_SSB_POSSIBLE=y
897# CONFIG_MFD_CORE is not set 921# CONFIG_MFD_CORE is not set
898# CONFIG_MFD_SM501 is not set 922# CONFIG_MFD_SM501 is not set
899# CONFIG_HTC_PASIC3 is not set 923# CONFIG_HTC_PASIC3 is not set
924# CONFIG_TWL4030_CORE is not set
900# CONFIG_MFD_TMIO is not set 925# CONFIG_MFD_TMIO is not set
901# CONFIG_PMIC_DA903X is not set 926# CONFIG_PMIC_DA903X is not set
902# CONFIG_MFD_WM8400 is not set 927# CONFIG_MFD_WM8400 is not set
903# CONFIG_MFD_WM8350_I2C is not set 928# CONFIG_MFD_WM8350_I2C is not set
904 929# CONFIG_MFD_PCF50633 is not set
905#
906# Voltage and Current regulators
907#
908# CONFIG_REGULATOR is not set 930# CONFIG_REGULATOR is not set
909# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
910# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
911# CONFIG_REGULATOR_BQ24022 is not set
912 931
913# 932#
914# Multimedia devices 933# Multimedia devices
@@ -961,11 +980,9 @@ CONFIG_HID_COMPAT=y
961CONFIG_HID_A4TECH=y 980CONFIG_HID_A4TECH=y
962CONFIG_HID_APPLE=y 981CONFIG_HID_APPLE=y
963CONFIG_HID_BELKIN=y 982CONFIG_HID_BELKIN=y
964CONFIG_HID_BRIGHT=y
965CONFIG_HID_CHERRY=y 983CONFIG_HID_CHERRY=y
966CONFIG_HID_CHICONY=y 984CONFIG_HID_CHICONY=y
967CONFIG_HID_CYPRESS=y 985CONFIG_HID_CYPRESS=y
968CONFIG_HID_DELL=y
969CONFIG_HID_EZKEY=y 986CONFIG_HID_EZKEY=y
970CONFIG_HID_GYRATION=y 987CONFIG_HID_GYRATION=y
971CONFIG_HID_LOGITECH=y 988CONFIG_HID_LOGITECH=y
@@ -973,12 +990,15 @@ CONFIG_HID_LOGITECH=y
973# CONFIG_LOGIRUMBLEPAD2_FF is not set 990# CONFIG_LOGIRUMBLEPAD2_FF is not set
974CONFIG_HID_MICROSOFT=y 991CONFIG_HID_MICROSOFT=y
975CONFIG_HID_MONTEREY=y 992CONFIG_HID_MONTEREY=y
993# CONFIG_HID_NTRIG is not set
976CONFIG_HID_PANTHERLORD=y 994CONFIG_HID_PANTHERLORD=y
977# CONFIG_PANTHERLORD_FF is not set 995# CONFIG_PANTHERLORD_FF is not set
978CONFIG_HID_PETALYNX=y 996CONFIG_HID_PETALYNX=y
979CONFIG_HID_SAMSUNG=y 997CONFIG_HID_SAMSUNG=y
980CONFIG_HID_SONY=y 998CONFIG_HID_SONY=y
981CONFIG_HID_SUNPLUS=y 999CONFIG_HID_SUNPLUS=y
1000# CONFIG_GREENASIA_FF is not set
1001# CONFIG_HID_TOPSEED is not set
982CONFIG_THRUSTMASTER_FF=m 1002CONFIG_THRUSTMASTER_FF=m
983CONFIG_ZEROPLUS_FF=m 1003CONFIG_ZEROPLUS_FF=m
984CONFIG_USB_SUPPORT=y 1004CONFIG_USB_SUPPORT=y
@@ -1011,6 +1031,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1011# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1031# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1012CONFIG_USB_EHCI_FSL=y 1032CONFIG_USB_EHCI_FSL=y
1013CONFIG_USB_EHCI_HCD_PPC_OF=y 1033CONFIG_USB_EHCI_HCD_PPC_OF=y
1034# CONFIG_USB_OXU210HP_HCD is not set
1014# CONFIG_USB_ISP116X_HCD is not set 1035# CONFIG_USB_ISP116X_HCD is not set
1015# CONFIG_USB_ISP1760_HCD is not set 1036# CONFIG_USB_ISP1760_HCD is not set
1016# CONFIG_USB_OHCI_HCD is not set 1037# CONFIG_USB_OHCI_HCD is not set
@@ -1029,11 +1050,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1029# CONFIG_USB_TMC is not set 1050# CONFIG_USB_TMC is not set
1030 1051
1031# 1052#
1032# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1053# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1033# 1054#
1034 1055
1035# 1056#
1036# may also be needed; see USB_STORAGE Help for more information 1057# see USB_STORAGE Help for more information
1037# 1058#
1038# CONFIG_USB_STORAGE is not set 1059# CONFIG_USB_STORAGE is not set
1039# CONFIG_USB_LIBUSUAL is not set 1060# CONFIG_USB_LIBUSUAL is not set
@@ -1074,6 +1095,10 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1074# CONFIG_USB_ISIGHTFW is not set 1095# CONFIG_USB_ISIGHTFW is not set
1075# CONFIG_USB_VST is not set 1096# CONFIG_USB_VST is not set
1076# CONFIG_USB_GADGET is not set 1097# CONFIG_USB_GADGET is not set
1098
1099#
1100# OTG and related infrastructure
1101#
1077# CONFIG_UWB is not set 1102# CONFIG_UWB is not set
1078# CONFIG_MMC is not set 1103# CONFIG_MMC is not set
1079# CONFIG_MEMSTICK is not set 1104# CONFIG_MEMSTICK is not set
@@ -1105,6 +1130,7 @@ CONFIG_FS_MBCACHE=y
1105CONFIG_FILE_LOCKING=y 1130CONFIG_FILE_LOCKING=y
1106# CONFIG_XFS_FS is not set 1131# CONFIG_XFS_FS is not set
1107# CONFIG_OCFS2_FS is not set 1132# CONFIG_OCFS2_FS is not set
1133# CONFIG_BTRFS_FS is not set
1108CONFIG_DNOTIFY=y 1134CONFIG_DNOTIFY=y
1109CONFIG_INOTIFY=y 1135CONFIG_INOTIFY=y
1110CONFIG_INOTIFY_USER=y 1136CONFIG_INOTIFY_USER=y
@@ -1138,10 +1164,7 @@ CONFIG_TMPFS=y
1138# CONFIG_TMPFS_POSIX_ACL is not set 1164# CONFIG_TMPFS_POSIX_ACL is not set
1139# CONFIG_HUGETLB_PAGE is not set 1165# CONFIG_HUGETLB_PAGE is not set
1140# CONFIG_CONFIGFS_FS is not set 1166# CONFIG_CONFIGFS_FS is not set
1141 1167CONFIG_MISC_FILESYSTEMS=y
1142#
1143# Miscellaneous filesystems
1144#
1145# CONFIG_ADFS_FS is not set 1168# CONFIG_ADFS_FS is not set
1146# CONFIG_AFFS_FS is not set 1169# CONFIG_AFFS_FS is not set
1147# CONFIG_HFS_FS is not set 1170# CONFIG_HFS_FS is not set
@@ -1150,6 +1173,7 @@ CONFIG_TMPFS=y
1150# CONFIG_BFS_FS is not set 1173# CONFIG_BFS_FS is not set
1151# CONFIG_EFS_FS is not set 1174# CONFIG_EFS_FS is not set
1152# CONFIG_CRAMFS is not set 1175# CONFIG_CRAMFS is not set
1176# CONFIG_SQUASHFS is not set
1153# CONFIG_VXFS_FS is not set 1177# CONFIG_VXFS_FS is not set
1154# CONFIG_MINIX_FS is not set 1178# CONFIG_MINIX_FS is not set
1155# CONFIG_OMFS_FS is not set 1179# CONFIG_OMFS_FS is not set
@@ -1207,6 +1231,7 @@ CONFIG_MSDOS_PARTITION=y
1207# Library routines 1231# Library routines
1208# 1232#
1209CONFIG_BITREVERSE=y 1233CONFIG_BITREVERSE=y
1234CONFIG_GENERIC_FIND_LAST_BIT=y
1210# CONFIG_CRC_CCITT is not set 1235# CONFIG_CRC_CCITT is not set
1211# CONFIG_CRC16 is not set 1236# CONFIG_CRC16 is not set
1212CONFIG_CRC_T10DIF=y 1237CONFIG_CRC_T10DIF=y
@@ -1238,6 +1263,8 @@ CONFIG_FRAME_WARN=1024
1238# CONFIG_LATENCYTOP is not set 1263# CONFIG_LATENCYTOP is not set
1239CONFIG_SYSCTL_SYSCALL_CHECK=y 1264CONFIG_SYSCTL_SYSCALL_CHECK=y
1240CONFIG_HAVE_FUNCTION_TRACER=y 1265CONFIG_HAVE_FUNCTION_TRACER=y
1266CONFIG_HAVE_DYNAMIC_FTRACE=y
1267CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1241 1268
1242# 1269#
1243# Tracers 1270# Tracers
@@ -1245,6 +1272,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1245# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1272# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1246# CONFIG_SAMPLES is not set 1273# CONFIG_SAMPLES is not set
1247CONFIG_HAVE_ARCH_KGDB=y 1274CONFIG_HAVE_ARCH_KGDB=y
1275CONFIG_PRINT_STACK_DEPTH=64
1248# CONFIG_IRQSTACKS is not set 1276# CONFIG_IRQSTACKS is not set
1249# CONFIG_BOOTX_TEXT is not set 1277# CONFIG_BOOTX_TEXT is not set
1250# CONFIG_PPC_EARLY_DEBUG is not set 1278# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1267,11 +1295,15 @@ CONFIG_CRYPTO=y
1267# 1295#
1268# CONFIG_CRYPTO_FIPS is not set 1296# CONFIG_CRYPTO_FIPS is not set
1269CONFIG_CRYPTO_ALGAPI=y 1297CONFIG_CRYPTO_ALGAPI=y
1270CONFIG_CRYPTO_AEAD=y 1298CONFIG_CRYPTO_ALGAPI2=y
1299CONFIG_CRYPTO_AEAD2=y
1271CONFIG_CRYPTO_BLKCIPHER=y 1300CONFIG_CRYPTO_BLKCIPHER=y
1301CONFIG_CRYPTO_BLKCIPHER2=y
1272CONFIG_CRYPTO_HASH=y 1302CONFIG_CRYPTO_HASH=y
1273CONFIG_CRYPTO_RNG=y 1303CONFIG_CRYPTO_HASH2=y
1304CONFIG_CRYPTO_RNG2=y
1274CONFIG_CRYPTO_MANAGER=y 1305CONFIG_CRYPTO_MANAGER=y
1306CONFIG_CRYPTO_MANAGER2=y
1275# CONFIG_CRYPTO_GF128MUL is not set 1307# CONFIG_CRYPTO_GF128MUL is not set
1276# CONFIG_CRYPTO_NULL is not set 1308# CONFIG_CRYPTO_NULL is not set
1277# CONFIG_CRYPTO_CRYPTD is not set 1309# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 8d2d7eeab5f5..a0c42fb65cb9 100644
--- a/arch/powerpc/configs/83xx/sbc834x_defconfig
+++ b/arch/powerpc/configs/83xx/sbc834x_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:02 2008 4# Mon Jan 26 15:36:02 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 79CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -112,7 +112,6 @@ CONFIG_SLAB=y
112# CONFIG_SLUB is not set 112# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 117CONFIG_HAVE_IOREMAP_PROT=y
@@ -122,7 +121,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
127CONFIG_MODULES=y 125CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set 126# CONFIG_MODULE_FORCE_LOAD is not set
@@ -130,11 +128,9 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 128# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 129# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 130# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_KMOD=y
134CONFIG_BLOCK=y 131CONFIG_BLOCK=y
135# CONFIG_LBD is not set 132# CONFIG_LBD is not set
136# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
140 136
@@ -151,6 +147,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
155 155
156# 156#
@@ -197,6 +197,8 @@ CONFIG_IPIC=y
197# CONFIG_QUICC_ENGINE is not set 197# CONFIG_QUICC_ENGINE is not set
198# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set 199# CONFIG_MPC8xxx_GPIO is not set
200# CONFIG_SIMPLE_GPIO is not set
201# CONFIG_MCU_MPC8349EMITX is not set
200 202
201# 203#
202# Kernel options 204# Kernel options
@@ -223,6 +225,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
223CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
225# CONFIG_KEXEC is not set 227# CONFIG_KEXEC is not set
228# CONFIG_CRASH_DUMP is not set
226CONFIG_ARCH_FLATMEM_ENABLE=y 229CONFIG_ARCH_FLATMEM_ENABLE=y
227CONFIG_ARCH_POPULATES_NODE_MAP=y 230CONFIG_ARCH_POPULATES_NODE_MAP=y
228CONFIG_SELECT_MEMORY_MODEL=y 231CONFIG_SELECT_MEMORY_MODEL=y
@@ -234,12 +237,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
234CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
235CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
237# CONFIG_RESOURCES_64BIT is not set
238# CONFIG_PHYS_ADDR_T_64BIT is not set 240# CONFIG_PHYS_ADDR_T_64BIT is not set
239CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
240CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
241CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
242CONFIG_UNEVICTABLE_LRU=y 244CONFIG_UNEVICTABLE_LRU=y
245CONFIG_PPC_4K_PAGES=y
246# CONFIG_PPC_16K_PAGES is not set
247# CONFIG_PPC_64K_PAGES is not set
243CONFIG_FORCE_MAX_ZONEORDER=11 248CONFIG_FORCE_MAX_ZONEORDER=11
244CONFIG_PROC_DEVICETREE=y 249CONFIG_PROC_DEVICETREE=y
245# CONFIG_CMDLINE_BOOL is not set 250# CONFIG_CMDLINE_BOOL is not set
@@ -264,6 +269,7 @@ CONFIG_PCI_SYSCALL=y
264CONFIG_ARCH_SUPPORTS_MSI=y 269CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 270# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set 271# CONFIG_PCI_LEGACY is not set
272# CONFIG_PCI_STUB is not set
267# CONFIG_PCCARD is not set 273# CONFIG_PCCARD is not set
268# CONFIG_HOTPLUG_PCI is not set 274# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set 275# CONFIG_HAS_RAPIDIO is not set
@@ -286,6 +292,7 @@ CONFIG_NET=y
286# 292#
287# Networking options 293# Networking options
288# 294#
295CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 296CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 297# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 298CONFIG_UNIX=y
@@ -342,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 349# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 350# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 351# CONFIG_NET_SCHED is not set
352# CONFIG_DCB is not set
345 353
346# 354#
347# Network testing 355# Network testing
@@ -357,8 +365,9 @@ CONFIG_WIRELESS=y
357# CONFIG_CFG80211 is not set 365# CONFIG_CFG80211 is not set
358CONFIG_WIRELESS_OLD_REGULATORY=y 366CONFIG_WIRELESS_OLD_REGULATORY=y
359# CONFIG_WIRELESS_EXT is not set 367# CONFIG_WIRELESS_EXT is not set
368# CONFIG_LIB80211 is not set
360# CONFIG_MAC80211 is not set 369# CONFIG_MAC80211 is not set
361# CONFIG_IEEE80211 is not set 370# CONFIG_WIMAX is not set
362# CONFIG_RFKILL is not set 371# CONFIG_RFKILL is not set
363# CONFIG_NET_9P is not set 372# CONFIG_NET_9P is not set
364 373
@@ -402,8 +411,10 @@ CONFIG_MISC_DEVICES=y
402# CONFIG_EEPROM_93CX6 is not set 411# CONFIG_EEPROM_93CX6 is not set
403# CONFIG_SGI_IOC4 is not set 412# CONFIG_SGI_IOC4 is not set
404# CONFIG_TIFM_CORE is not set 413# CONFIG_TIFM_CORE is not set
414# CONFIG_ICS932S401 is not set
405# CONFIG_ENCLOSURE_SERVICES is not set 415# CONFIG_ENCLOSURE_SERVICES is not set
406# CONFIG_HP_ILO is not set 416# CONFIG_HP_ILO is not set
417# CONFIG_C2PORT is not set
407CONFIG_HAVE_IDE=y 418CONFIG_HAVE_IDE=y
408# CONFIG_IDE is not set 419# CONFIG_IDE is not set
409 420
@@ -452,6 +463,9 @@ CONFIG_PHYLIB=y
452CONFIG_BROADCOM_PHY=y 463CONFIG_BROADCOM_PHY=y
453# CONFIG_ICPLUS_PHY is not set 464# CONFIG_ICPLUS_PHY is not set
454# CONFIG_REALTEK_PHY is not set 465# CONFIG_REALTEK_PHY is not set
466# CONFIG_NATIONAL_PHY is not set
467# CONFIG_STE10XP is not set
468# CONFIG_LSI_ET1011C_PHY is not set
455# CONFIG_FIXED_PHY is not set 469# CONFIG_FIXED_PHY is not set
456# CONFIG_MDIO_BITBANG is not set 470# CONFIG_MDIO_BITBANG is not set
457CONFIG_NET_ETHERNET=y 471CONFIG_NET_ETHERNET=y
@@ -504,6 +518,10 @@ CONFIG_GIANFAR=y
504# CONFIG_WLAN_PRE80211 is not set 518# CONFIG_WLAN_PRE80211 is not set
505# CONFIG_WLAN_80211 is not set 519# CONFIG_WLAN_80211 is not set
506# CONFIG_IWLWIFI_LEDS is not set 520# CONFIG_IWLWIFI_LEDS is not set
521
522#
523# Enable WiMAX (Networking options) to see the WiMAX drivers
524#
507# CONFIG_WAN is not set 525# CONFIG_WAN is not set
508# CONFIG_FDDI is not set 526# CONFIG_FDDI is not set
509# CONFIG_HIPPI is not set 527# CONFIG_HIPPI is not set
@@ -573,8 +591,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
573# CONFIG_SERIAL_JSM is not set 591# CONFIG_SERIAL_JSM is not set
574# CONFIG_SERIAL_OF_PLATFORM is not set 592# CONFIG_SERIAL_OF_PLATFORM is not set
575CONFIG_UNIX98_PTYS=y 593CONFIG_UNIX98_PTYS=y
594# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
576CONFIG_LEGACY_PTYS=y 595CONFIG_LEGACY_PTYS=y
577CONFIG_LEGACY_PTY_COUNT=256 596CONFIG_LEGACY_PTY_COUNT=256
597# CONFIG_HVC_UDBG is not set
578# CONFIG_IPMI_HANDLER is not set 598# CONFIG_IPMI_HANDLER is not set
579# CONFIG_HW_RANDOM is not set 599# CONFIG_HW_RANDOM is not set
580# CONFIG_NVRAM is not set 600# CONFIG_NVRAM is not set
@@ -640,15 +660,14 @@ CONFIG_I2C_MPC=y
640# Miscellaneous I2C Chip support 660# Miscellaneous I2C Chip support
641# 661#
642# CONFIG_DS1682 is not set 662# CONFIG_DS1682 is not set
643# CONFIG_AT24 is not set 663# CONFIG_EEPROM_AT24 is not set
644# CONFIG_SENSORS_EEPROM is not set 664# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 665# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_PCF8575 is not set 666# CONFIG_PCF8575 is not set
647# CONFIG_SENSORS_PCA9539 is not set 667# CONFIG_SENSORS_PCA9539 is not set
648# CONFIG_SENSORS_PCF8591 is not set 668# CONFIG_SENSORS_PCF8591 is not set
649# CONFIG_SENSORS_MAX6875 is not set 669# CONFIG_SENSORS_MAX6875 is not set
650# CONFIG_SENSORS_TSL2550 is not set 670# CONFIG_SENSORS_TSL2550 is not set
651# CONFIG_MCU_MPC8349EMITX is not set
652# CONFIG_I2C_DEBUG_CORE is not set 671# CONFIG_I2C_DEBUG_CORE is not set
653# CONFIG_I2C_DEBUG_ALGO is not set 672# CONFIG_I2C_DEBUG_ALGO is not set
654# CONFIG_I2C_DEBUG_BUS is not set 673# CONFIG_I2C_DEBUG_BUS is not set
@@ -668,8 +687,10 @@ CONFIG_HWMON=y
668# CONFIG_SENSORS_ADM1029 is not set 687# CONFIG_SENSORS_ADM1029 is not set
669# CONFIG_SENSORS_ADM1031 is not set 688# CONFIG_SENSORS_ADM1031 is not set
670# CONFIG_SENSORS_ADM9240 is not set 689# CONFIG_SENSORS_ADM9240 is not set
690# CONFIG_SENSORS_ADT7462 is not set
671# CONFIG_SENSORS_ADT7470 is not set 691# CONFIG_SENSORS_ADT7470 is not set
672# CONFIG_SENSORS_ADT7473 is not set 692# CONFIG_SENSORS_ADT7473 is not set
693# CONFIG_SENSORS_ADT7475 is not set
673# CONFIG_SENSORS_ATXP1 is not set 694# CONFIG_SENSORS_ATXP1 is not set
674# CONFIG_SENSORS_DS1621 is not set 695# CONFIG_SENSORS_DS1621 is not set
675# CONFIG_SENSORS_I5K_AMB is not set 696# CONFIG_SENSORS_I5K_AMB is not set
@@ -690,6 +711,7 @@ CONFIG_HWMON=y
690# CONFIG_SENSORS_LM90 is not set 711# CONFIG_SENSORS_LM90 is not set
691# CONFIG_SENSORS_LM92 is not set 712# CONFIG_SENSORS_LM92 is not set
692# CONFIG_SENSORS_LM93 is not set 713# CONFIG_SENSORS_LM93 is not set
714# CONFIG_SENSORS_LTC4245 is not set
693# CONFIG_SENSORS_MAX1619 is not set 715# CONFIG_SENSORS_MAX1619 is not set
694# CONFIG_SENSORS_MAX6650 is not set 716# CONFIG_SENSORS_MAX6650 is not set
695# CONFIG_SENSORS_PC87360 is not set 717# CONFIG_SENSORS_PC87360 is not set
@@ -730,11 +752,11 @@ CONFIG_WATCHDOG=y
730# 752#
731# CONFIG_PCIPCWATCHDOG is not set 753# CONFIG_PCIPCWATCHDOG is not set
732# CONFIG_WDTPCI is not set 754# CONFIG_WDTPCI is not set
755CONFIG_SSB_POSSIBLE=y
733 756
734# 757#
735# Sonics Silicon Backplane 758# Sonics Silicon Backplane
736# 759#
737CONFIG_SSB_POSSIBLE=y
738# CONFIG_SSB is not set 760# CONFIG_SSB is not set
739 761
740# 762#
@@ -743,18 +765,13 @@ CONFIG_SSB_POSSIBLE=y
743# CONFIG_MFD_CORE is not set 765# CONFIG_MFD_CORE is not set
744# CONFIG_MFD_SM501 is not set 766# CONFIG_MFD_SM501 is not set
745# CONFIG_HTC_PASIC3 is not set 767# CONFIG_HTC_PASIC3 is not set
768# CONFIG_TWL4030_CORE is not set
746# CONFIG_MFD_TMIO is not set 769# CONFIG_MFD_TMIO is not set
747# CONFIG_PMIC_DA903X is not set 770# CONFIG_PMIC_DA903X is not set
748# CONFIG_MFD_WM8400 is not set 771# CONFIG_MFD_WM8400 is not set
749# CONFIG_MFD_WM8350_I2C is not set 772# CONFIG_MFD_WM8350_I2C is not set
750 773# CONFIG_MFD_PCF50633 is not set
751#
752# Voltage and Current regulators
753#
754# CONFIG_REGULATOR is not set 774# CONFIG_REGULATOR is not set
755# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
756# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
757# CONFIG_REGULATOR_BQ24022 is not set
758 775
759# 776#
760# Multimedia devices 777# Multimedia devices
@@ -822,6 +839,7 @@ CONFIG_HID_COMPAT=y
822CONFIG_FILE_LOCKING=y 839CONFIG_FILE_LOCKING=y
823# CONFIG_XFS_FS is not set 840# CONFIG_XFS_FS is not set
824# CONFIG_OCFS2_FS is not set 841# CONFIG_OCFS2_FS is not set
842# CONFIG_BTRFS_FS is not set
825CONFIG_DNOTIFY=y 843CONFIG_DNOTIFY=y
826CONFIG_INOTIFY=y 844CONFIG_INOTIFY=y
827CONFIG_INOTIFY_USER=y 845CONFIG_INOTIFY_USER=y
@@ -855,10 +873,7 @@ CONFIG_TMPFS=y
855# CONFIG_TMPFS_POSIX_ACL is not set 873# CONFIG_TMPFS_POSIX_ACL is not set
856# CONFIG_HUGETLB_PAGE is not set 874# CONFIG_HUGETLB_PAGE is not set
857# CONFIG_CONFIGFS_FS is not set 875# CONFIG_CONFIGFS_FS is not set
858 876CONFIG_MISC_FILESYSTEMS=y
859#
860# Miscellaneous filesystems
861#
862# CONFIG_ADFS_FS is not set 877# CONFIG_ADFS_FS is not set
863# CONFIG_AFFS_FS is not set 878# CONFIG_AFFS_FS is not set
864# CONFIG_HFS_FS is not set 879# CONFIG_HFS_FS is not set
@@ -867,6 +882,7 @@ CONFIG_TMPFS=y
867# CONFIG_BFS_FS is not set 882# CONFIG_BFS_FS is not set
868# CONFIG_EFS_FS is not set 883# CONFIG_EFS_FS is not set
869# CONFIG_CRAMFS is not set 884# CONFIG_CRAMFS is not set
885# CONFIG_SQUASHFS is not set
870# CONFIG_VXFS_FS is not set 886# CONFIG_VXFS_FS is not set
871# CONFIG_MINIX_FS is not set 887# CONFIG_MINIX_FS is not set
872# CONFIG_OMFS_FS is not set 888# CONFIG_OMFS_FS is not set
@@ -908,6 +924,7 @@ CONFIG_MSDOS_PARTITION=y
908# Library routines 924# Library routines
909# 925#
910CONFIG_BITREVERSE=y 926CONFIG_BITREVERSE=y
927CONFIG_GENERIC_FIND_LAST_BIT=y
911# CONFIG_CRC_CCITT is not set 928# CONFIG_CRC_CCITT is not set
912# CONFIG_CRC16 is not set 929# CONFIG_CRC16 is not set
913# CONFIG_CRC_T10DIF is not set 930# CONFIG_CRC_T10DIF is not set
@@ -939,6 +956,8 @@ CONFIG_FRAME_WARN=1024
939# CONFIG_LATENCYTOP is not set 956# CONFIG_LATENCYTOP is not set
940CONFIG_SYSCTL_SYSCALL_CHECK=y 957CONFIG_SYSCTL_SYSCALL_CHECK=y
941CONFIG_HAVE_FUNCTION_TRACER=y 958CONFIG_HAVE_FUNCTION_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
942 961
943# 962#
944# Tracers 963# Tracers
@@ -946,6 +965,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
946# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 965# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
947# CONFIG_SAMPLES is not set 966# CONFIG_SAMPLES is not set
948CONFIG_HAVE_ARCH_KGDB=y 967CONFIG_HAVE_ARCH_KGDB=y
968CONFIG_PRINT_STACK_DEPTH=64
949# CONFIG_IRQSTACKS is not set 969# CONFIG_IRQSTACKS is not set
950# CONFIG_BOOTX_TEXT is not set 970# CONFIG_BOOTX_TEXT is not set
951# CONFIG_PPC_EARLY_DEBUG is not set 971# CONFIG_PPC_EARLY_DEBUG is not set
@@ -964,11 +984,15 @@ CONFIG_CRYPTO=y
964# 984#
965# CONFIG_CRYPTO_FIPS is not set 985# CONFIG_CRYPTO_FIPS is not set
966CONFIG_CRYPTO_ALGAPI=y 986CONFIG_CRYPTO_ALGAPI=y
967CONFIG_CRYPTO_AEAD=y 987CONFIG_CRYPTO_ALGAPI2=y
988CONFIG_CRYPTO_AEAD2=y
968CONFIG_CRYPTO_BLKCIPHER=y 989CONFIG_CRYPTO_BLKCIPHER=y
990CONFIG_CRYPTO_BLKCIPHER2=y
969CONFIG_CRYPTO_HASH=y 991CONFIG_CRYPTO_HASH=y
970CONFIG_CRYPTO_RNG=y 992CONFIG_CRYPTO_HASH2=y
993CONFIG_CRYPTO_RNG2=y
971CONFIG_CRYPTO_MANAGER=y 994CONFIG_CRYPTO_MANAGER=y
995CONFIG_CRYPTO_MANAGER2=y
972# CONFIG_CRYPTO_GF128MUL is not set 996# CONFIG_CRYPTO_GF128MUL is not set
973# CONFIG_CRYPTO_NULL is not set 997# CONFIG_CRYPTO_NULL is not set
974# CONFIG_CRYPTO_CRYPTD is not set 998# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 1af7b9e37b61..6479bb9f3f57 100644
--- a/arch/powerpc/configs/85xx/ksi8560_defconfig
+++ b/arch/powerpc/configs/85xx/ksi8560_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:03 2008 4# Mon Jan 26 15:36:03 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,8 +78,8 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80# CONFIG_GROUP_SCHED is not set 81# CONFIG_GROUP_SCHED is not set
82# CONFIG_CGROUPS is not set
81CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y 84CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
@@ -111,7 +113,6 @@ CONFIG_SLUB_DEBUG=y
111CONFIG_SLUB=y 113CONFIG_SLUB=y
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 118CONFIG_HAVE_IOREMAP_PROT=y
@@ -122,13 +123,11 @@ CONFIG_HAVE_CLK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
127# CONFIG_MODULES is not set 127# CONFIG_MODULES is not set
128CONFIG_BLOCK=y 128CONFIG_BLOCK=y
129# CONFIG_LBD is not set 129# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set 130# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 131# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 132# CONFIG_BLK_DEV_INTEGRITY is not set
134 133
@@ -145,6 +144,10 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_NOOP is not set 144# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 145CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y 146CONFIG_CLASSIC_RCU=y
147# CONFIG_TREE_RCU is not set
148# CONFIG_PREEMPT_RCU is not set
149# CONFIG_TREE_RCU_TRACE is not set
150# CONFIG_PREEMPT_RCU_TRACE is not set
148# CONFIG_FREEZER is not set 151# CONFIG_FREEZER is not set
149 152
150# 153#
@@ -185,6 +188,7 @@ CONFIG_CPM2=y
185# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
186CONFIG_CPM=y 189CONFIG_CPM=y
187# CONFIG_MPC8xxx_GPIO is not set 190# CONFIG_MPC8xxx_GPIO is not set
191# CONFIG_SIMPLE_GPIO is not set
188 192
189# 193#
190# Kernel options 194# Kernel options
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232# CONFIG_PROC_DEVICETREE is not set 238# CONFIG_PROC_DEVICETREE is not set
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +274,7 @@ CONFIG_NET=y
268# 274#
269# Networking options 275# Networking options
270# 276#
277CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 278CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 279# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 280CONFIG_UNIX=y
@@ -324,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 331# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 332# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 333# CONFIG_NET_SCHED is not set
334# CONFIG_DCB is not set
327 335
328# 336#
329# Network testing 337# Network testing
@@ -339,8 +347,9 @@ CONFIG_WIRELESS=y
339# CONFIG_CFG80211 is not set 347# CONFIG_CFG80211 is not set
340CONFIG_WIRELESS_OLD_REGULATORY=y 348CONFIG_WIRELESS_OLD_REGULATORY=y
341# CONFIG_WIRELESS_EXT is not set 349# CONFIG_WIRELESS_EXT is not set
350# CONFIG_LIB80211 is not set
342# CONFIG_MAC80211 is not set 351# CONFIG_MAC80211 is not set
343# CONFIG_IEEE80211 is not set 352# CONFIG_WIMAX is not set
344# CONFIG_RFKILL is not set 353# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 354# CONFIG_NET_9P is not set
346 355
@@ -432,6 +441,12 @@ CONFIG_MTD_PHYSMAP_OF=y
432# CONFIG_MTD_ONENAND is not set 441# CONFIG_MTD_ONENAND is not set
433 442
434# 443#
444# LPDDR flash memory drivers
445#
446# CONFIG_MTD_LPDDR is not set
447# CONFIG_MTD_QINFO_PROBE is not set
448
449#
435# UBI - Unsorted block images 450# UBI - Unsorted block images
436# 451#
437# CONFIG_MTD_UBI is not set 452# CONFIG_MTD_UBI is not set
@@ -454,6 +469,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
454CONFIG_MISC_DEVICES=y 469CONFIG_MISC_DEVICES=y
455# CONFIG_EEPROM_93CX6 is not set 470# CONFIG_EEPROM_93CX6 is not set
456# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_C2PORT is not set
457CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
458CONFIG_IDE=y 474CONFIG_IDE=y
459 475
@@ -507,9 +523,12 @@ CONFIG_MARVELL_PHY=y
507# CONFIG_BROADCOM_PHY is not set 523# CONFIG_BROADCOM_PHY is not set
508# CONFIG_ICPLUS_PHY is not set 524# CONFIG_ICPLUS_PHY is not set
509# CONFIG_REALTEK_PHY is not set 525# CONFIG_REALTEK_PHY is not set
526# CONFIG_NATIONAL_PHY is not set
527# CONFIG_STE10XP is not set
528# CONFIG_LSI_ET1011C_PHY is not set
510# CONFIG_FIXED_PHY is not set 529# CONFIG_FIXED_PHY is not set
511CONFIG_MDIO_BITBANG=y 530CONFIG_MDIO_BITBANG=y
512# CONFIG_MDIO_OF_GPIO is not set 531# CONFIG_MDIO_GPIO is not set
513CONFIG_NET_ETHERNET=y 532CONFIG_NET_ETHERNET=y
514CONFIG_MII=y 533CONFIG_MII=y
515# CONFIG_IBM_NEW_EMAC_ZMII is not set 534# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -534,6 +553,10 @@ CONFIG_NETDEV_10000=y
534# CONFIG_WLAN_PRE80211 is not set 553# CONFIG_WLAN_PRE80211 is not set
535# CONFIG_WLAN_80211 is not set 554# CONFIG_WLAN_80211 is not set
536# CONFIG_IWLWIFI_LEDS is not set 555# CONFIG_IWLWIFI_LEDS is not set
556
557#
558# Enable WiMAX (Networking options) to see the WiMAX drivers
559#
537# CONFIG_WAN is not set 560# CONFIG_WAN is not set
538# CONFIG_PPP is not set 561# CONFIG_PPP is not set
539# CONFIG_SLIP is not set 562# CONFIG_SLIP is not set
@@ -595,8 +618,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
595CONFIG_SERIAL_CPM=y 618CONFIG_SERIAL_CPM=y
596CONFIG_SERIAL_CPM_CONSOLE=y 619CONFIG_SERIAL_CPM_CONSOLE=y
597CONFIG_UNIX98_PTYS=y 620CONFIG_UNIX98_PTYS=y
621# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
598CONFIG_LEGACY_PTYS=y 622CONFIG_LEGACY_PTYS=y
599CONFIG_LEGACY_PTY_COUNT=256 623CONFIG_LEGACY_PTY_COUNT=256
624# CONFIG_HVC_UDBG is not set
600# CONFIG_IPMI_HANDLER is not set 625# CONFIG_IPMI_HANDLER is not set
601CONFIG_HW_RANDOM=y 626CONFIG_HW_RANDOM=y
602# CONFIG_NVRAM is not set 627# CONFIG_NVRAM is not set
@@ -614,6 +639,11 @@ CONFIG_GPIOLIB=y
614# CONFIG_GPIO_SYSFS is not set 639# CONFIG_GPIO_SYSFS is not set
615 640
616# 641#
642# Memory mapped GPIO expanders:
643#
644# CONFIG_GPIO_XILINX is not set
645
646#
617# I2C GPIO expanders: 647# I2C GPIO expanders:
618# 648#
619 649
@@ -642,11 +672,11 @@ CONFIG_HWMON=y
642# CONFIG_THERMAL is not set 672# CONFIG_THERMAL is not set
643# CONFIG_THERMAL_HWMON is not set 673# CONFIG_THERMAL_HWMON is not set
644# CONFIG_WATCHDOG is not set 674# CONFIG_WATCHDOG is not set
675CONFIG_SSB_POSSIBLE=y
645 676
646# 677#
647# Sonics Silicon Backplane 678# Sonics Silicon Backplane
648# 679#
649CONFIG_SSB_POSSIBLE=y
650# CONFIG_SSB is not set 680# CONFIG_SSB is not set
651 681
652# 682#
@@ -656,14 +686,7 @@ CONFIG_SSB_POSSIBLE=y
656# CONFIG_MFD_SM501 is not set 686# CONFIG_MFD_SM501 is not set
657# CONFIG_HTC_PASIC3 is not set 687# CONFIG_HTC_PASIC3 is not set
658# CONFIG_MFD_TMIO is not set 688# CONFIG_MFD_TMIO is not set
659
660#
661# Voltage and Current regulators
662#
663# CONFIG_REGULATOR is not set 689# CONFIG_REGULATOR is not set
664# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
665# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
666# CONFIG_REGULATOR_BQ24022 is not set
667 690
668# 691#
669# Multimedia devices 692# Multimedia devices
@@ -716,9 +739,13 @@ CONFIG_USB_SUPPORT=y
716# 739#
717 740
718# 741#
719# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 742# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
720# 743#
721# CONFIG_USB_GADGET is not set 744# CONFIG_USB_GADGET is not set
745
746#
747# OTG and related infrastructure
748#
722# CONFIG_MMC is not set 749# CONFIG_MMC is not set
723# CONFIG_MEMSTICK is not set 750# CONFIG_MEMSTICK is not set
724# CONFIG_NEW_LEDS is not set 751# CONFIG_NEW_LEDS is not set
@@ -749,6 +776,7 @@ CONFIG_FS_MBCACHE=y
749CONFIG_FILE_LOCKING=y 776CONFIG_FILE_LOCKING=y
750# CONFIG_XFS_FS is not set 777# CONFIG_XFS_FS is not set
751# CONFIG_OCFS2_FS is not set 778# CONFIG_OCFS2_FS is not set
779# CONFIG_BTRFS_FS is not set
752CONFIG_DNOTIFY=y 780CONFIG_DNOTIFY=y
753CONFIG_INOTIFY=y 781CONFIG_INOTIFY=y
754CONFIG_INOTIFY_USER=y 782CONFIG_INOTIFY_USER=y
@@ -782,10 +810,7 @@ CONFIG_TMPFS=y
782# CONFIG_TMPFS_POSIX_ACL is not set 810# CONFIG_TMPFS_POSIX_ACL is not set
783# CONFIG_HUGETLB_PAGE is not set 811# CONFIG_HUGETLB_PAGE is not set
784# CONFIG_CONFIGFS_FS is not set 812# CONFIG_CONFIGFS_FS is not set
785 813CONFIG_MISC_FILESYSTEMS=y
786#
787# Miscellaneous filesystems
788#
789# CONFIG_ADFS_FS is not set 814# CONFIG_ADFS_FS is not set
790# CONFIG_AFFS_FS is not set 815# CONFIG_AFFS_FS is not set
791# CONFIG_HFS_FS is not set 816# CONFIG_HFS_FS is not set
@@ -795,6 +820,7 @@ CONFIG_TMPFS=y
795# CONFIG_EFS_FS is not set 820# CONFIG_EFS_FS is not set
796# CONFIG_JFFS2_FS is not set 821# CONFIG_JFFS2_FS is not set
797# CONFIG_CRAMFS is not set 822# CONFIG_CRAMFS is not set
823# CONFIG_SQUASHFS is not set
798# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
799# CONFIG_MINIX_FS is not set 825# CONFIG_MINIX_FS is not set
800# CONFIG_OMFS_FS is not set 826# CONFIG_OMFS_FS is not set
@@ -845,6 +871,7 @@ CONFIG_PARTITION_ADVANCED=y
845# Library routines 871# Library routines
846# 872#
847CONFIG_BITREVERSE=y 873CONFIG_BITREVERSE=y
874CONFIG_GENERIC_FIND_LAST_BIT=y
848# CONFIG_CRC_CCITT is not set 875# CONFIG_CRC_CCITT is not set
849# CONFIG_CRC16 is not set 876# CONFIG_CRC16 is not set
850# CONFIG_CRC_T10DIF is not set 877# CONFIG_CRC_T10DIF is not set
@@ -895,6 +922,7 @@ CONFIG_DEBUG_MUTEXES=y
895# CONFIG_DEBUG_MEMORY_INIT is not set 922# CONFIG_DEBUG_MEMORY_INIT is not set
896# CONFIG_DEBUG_LIST is not set 923# CONFIG_DEBUG_LIST is not set
897# CONFIG_DEBUG_SG is not set 924# CONFIG_DEBUG_SG is not set
925# CONFIG_DEBUG_NOTIFIERS is not set
898# CONFIG_BOOT_PRINTK_DELAY is not set 926# CONFIG_BOOT_PRINTK_DELAY is not set
899# CONFIG_RCU_TORTURE_TEST is not set 927# CONFIG_RCU_TORTURE_TEST is not set
900# CONFIG_RCU_CPU_STALL_DETECTOR is not set 928# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -904,6 +932,8 @@ CONFIG_DEBUG_MUTEXES=y
904# CONFIG_LATENCYTOP is not set 932# CONFIG_LATENCYTOP is not set
905CONFIG_SYSCTL_SYSCALL_CHECK=y 933CONFIG_SYSCTL_SYSCALL_CHECK=y
906CONFIG_HAVE_FUNCTION_TRACER=y 934CONFIG_HAVE_FUNCTION_TRACER=y
935CONFIG_HAVE_DYNAMIC_FTRACE=y
936CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
907 937
908# 938#
909# Tracers 939# Tracers
@@ -912,11 +942,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
912# CONFIG_SCHED_TRACER is not set 942# CONFIG_SCHED_TRACER is not set
913# CONFIG_CONTEXT_SWITCH_TRACER is not set 943# CONFIG_CONTEXT_SWITCH_TRACER is not set
914# CONFIG_BOOT_TRACER is not set 944# CONFIG_BOOT_TRACER is not set
945# CONFIG_TRACE_BRANCH_PROFILING is not set
915# CONFIG_STACK_TRACER is not set 946# CONFIG_STACK_TRACER is not set
916# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 947# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
917# CONFIG_SAMPLES is not set 948# CONFIG_SAMPLES is not set
918CONFIG_HAVE_ARCH_KGDB=y 949CONFIG_HAVE_ARCH_KGDB=y
919# CONFIG_KGDB is not set 950# CONFIG_KGDB is not set
951CONFIG_PRINT_STACK_DEPTH=64
920# CONFIG_DEBUG_STACKOVERFLOW is not set 952# CONFIG_DEBUG_STACKOVERFLOW is not set
921# CONFIG_DEBUG_STACK_USAGE is not set 953# CONFIG_DEBUG_STACK_USAGE is not set
922# CONFIG_DEBUG_PAGEALLOC is not set 954# CONFIG_DEBUG_PAGEALLOC is not set
@@ -943,6 +975,7 @@ CONFIG_CRYPTO=y
943# 975#
944# CONFIG_CRYPTO_FIPS is not set 976# CONFIG_CRYPTO_FIPS is not set
945# CONFIG_CRYPTO_MANAGER is not set 977# CONFIG_CRYPTO_MANAGER is not set
978# CONFIG_CRYPTO_MANAGER2 is not set
946# CONFIG_CRYPTO_GF128MUL is not set 979# CONFIG_CRYPTO_GF128MUL is not set
947# CONFIG_CRYPTO_NULL is not set 980# CONFIG_CRYPTO_NULL is not set
948# CONFIG_CRYPTO_CRYPTD is not set 981# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
index e243e14a6708..e31b6a4732ed 100644
--- a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8536_ds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:05 2008 4# Mon Jan 26 15:36:04 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -78,12 +80,12 @@ CONFIG_AUDIT=y
78CONFIG_IKCONFIG=y 80CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 81CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 82CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 83CONFIG_GROUP_SCHED=y
83# CONFIG_FAIR_GROUP_SCHED is not set 84# CONFIG_FAIR_GROUP_SCHED is not set
84# CONFIG_RT_GROUP_SCHED is not set 85# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 86CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 87# CONFIG_CGROUP_SCHED is not set
88# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 89CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 90CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 91# CONFIG_RELAY is not set
@@ -96,6 +98,7 @@ CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
101CONFIG_KALLSYMS_STRIP_GENERATED=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 102CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y 103CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 104CONFIG_PRINTK=y
@@ -118,7 +121,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 121CONFIG_SLUB=y
119# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 125# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +131,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 135CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 136# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,11 +138,9 @@ CONFIG_MODULE_UNLOAD=y
137CONFIG_MODULE_FORCE_UNLOAD=y 138CONFIG_MODULE_FORCE_UNLOAD=y
138CONFIG_MODVERSIONS=y 139CONFIG_MODVERSIONS=y
139# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_BLOCK=y 141CONFIG_BLOCK=y
142CONFIG_LBD=y 142CONFIG_LBD=y
143# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_LSF is not set
145# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
147 146
@@ -158,6 +157,10 @@ CONFIG_DEFAULT_CFQ=y
158# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="cfq" 158CONFIG_DEFAULT_IOSCHED="cfq"
160CONFIG_CLASSIC_RCU=y 159CONFIG_CLASSIC_RCU=y
160# CONFIG_TREE_RCU is not set
161# CONFIG_PREEMPT_RCU is not set
162# CONFIG_TREE_RCU_TRACE is not set
163# CONFIG_PREEMPT_RCU_TRACE is not set
161# CONFIG_FREEZER is not set 164# CONFIG_FREEZER is not set
162 165
163# 166#
@@ -197,6 +200,7 @@ CONFIG_MPIC=y
197# CONFIG_CPM2 is not set 200# CONFIG_CPM2 is not set
198# CONFIG_FSL_ULI1575 is not set 201# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set 202# CONFIG_MPC8xxx_GPIO is not set
203# CONFIG_SIMPLE_GPIO is not set
200 204
201# 205#
202# Kernel options 206# Kernel options
@@ -235,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
235CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
237CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -265,6 +271,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set 272# CONFIG_PCI_LEGACY is not set
267# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
268# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
270# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +295,7 @@ CONFIG_NET=y
288# 295#
289# Networking options 296# Networking options
290# 297#
298CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 299CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -376,6 +384,7 @@ CONFIG_SCTP_HMAC_MD5=y
376# CONFIG_ECONET is not set 384# CONFIG_ECONET is not set
377# CONFIG_WAN_ROUTER is not set 385# CONFIG_WAN_ROUTER is not set
378# CONFIG_NET_SCHED is not set 386# CONFIG_NET_SCHED is not set
387# CONFIG_DCB is not set
379 388
380# 389#
381# Network testing 390# Network testing
@@ -392,8 +401,9 @@ CONFIG_WIRELESS=y
392# CONFIG_CFG80211 is not set 401# CONFIG_CFG80211 is not set
393CONFIG_WIRELESS_OLD_REGULATORY=y 402CONFIG_WIRELESS_OLD_REGULATORY=y
394# CONFIG_WIRELESS_EXT is not set 403# CONFIG_WIRELESS_EXT is not set
404# CONFIG_LIB80211 is not set
395# CONFIG_MAC80211 is not set 405# CONFIG_MAC80211 is not set
396# CONFIG_IEEE80211 is not set 406# CONFIG_WIMAX is not set
397# CONFIG_RFKILL is not set 407# CONFIG_RFKILL is not set
398# CONFIG_NET_9P is not set 408# CONFIG_NET_9P is not set
399 409
@@ -442,8 +452,10 @@ CONFIG_MISC_DEVICES=y
442# CONFIG_EEPROM_93CX6 is not set 452# CONFIG_EEPROM_93CX6 is not set
443# CONFIG_SGI_IOC4 is not set 453# CONFIG_SGI_IOC4 is not set
444# CONFIG_TIFM_CORE is not set 454# CONFIG_TIFM_CORE is not set
455# CONFIG_ICS932S401 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 456# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_HP_ILO is not set 457# CONFIG_HP_ILO is not set
458# CONFIG_C2PORT is not set
447CONFIG_HAVE_IDE=y 459CONFIG_HAVE_IDE=y
448# CONFIG_IDE is not set 460# CONFIG_IDE is not set
449 461
@@ -487,6 +499,7 @@ CONFIG_SCSI_WAIT_SCAN=m
487# CONFIG_SCSI_SRP_ATTRS is not set 499# CONFIG_SCSI_SRP_ATTRS is not set
488CONFIG_SCSI_LOWLEVEL=y 500CONFIG_SCSI_LOWLEVEL=y
489# CONFIG_ISCSI_TCP is not set 501# CONFIG_ISCSI_TCP is not set
502# CONFIG_SCSI_CXGB3_ISCSI is not set
490# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 503# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
491# CONFIG_SCSI_3W_9XXX is not set 504# CONFIG_SCSI_3W_9XXX is not set
492# CONFIG_SCSI_ACARD is not set 505# CONFIG_SCSI_ACARD is not set
@@ -503,6 +516,8 @@ CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_MEGARAID_SAS is not set 516# CONFIG_MEGARAID_SAS is not set
504# CONFIG_SCSI_HPTIOP is not set 517# CONFIG_SCSI_HPTIOP is not set
505# CONFIG_SCSI_BUSLOGIC is not set 518# CONFIG_SCSI_BUSLOGIC is not set
519# CONFIG_LIBFC is not set
520# CONFIG_FCOE is not set
506# CONFIG_SCSI_DMX3191D is not set 521# CONFIG_SCSI_DMX3191D is not set
507# CONFIG_SCSI_EATA is not set 522# CONFIG_SCSI_EATA is not set
508# CONFIG_SCSI_FUTURE_DOMAIN is not set 523# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -622,6 +637,9 @@ CONFIG_VITESSE_PHY=y
622# CONFIG_BROADCOM_PHY is not set 637# CONFIG_BROADCOM_PHY is not set
623# CONFIG_ICPLUS_PHY is not set 638# CONFIG_ICPLUS_PHY is not set
624# CONFIG_REALTEK_PHY is not set 639# CONFIG_REALTEK_PHY is not set
640# CONFIG_NATIONAL_PHY is not set
641# CONFIG_STE10XP is not set
642# CONFIG_LSI_ET1011C_PHY is not set
625# CONFIG_FIXED_PHY is not set 643# CONFIG_FIXED_PHY is not set
626# CONFIG_MDIO_BITBANG is not set 644# CONFIG_MDIO_BITBANG is not set
627CONFIG_NET_ETHERNET=y 645CONFIG_NET_ETHERNET=y
@@ -668,6 +686,7 @@ CONFIG_GIANFAR=y
668# CONFIG_JME is not set 686# CONFIG_JME is not set
669CONFIG_NETDEV_10000=y 687CONFIG_NETDEV_10000=y
670# CONFIG_CHELSIO_T1 is not set 688# CONFIG_CHELSIO_T1 is not set
689CONFIG_CHELSIO_T3_DEPENDS=y
671# CONFIG_CHELSIO_T3 is not set 690# CONFIG_CHELSIO_T3 is not set
672# CONFIG_ENIC is not set 691# CONFIG_ENIC is not set
673# CONFIG_IXGBE is not set 692# CONFIG_IXGBE is not set
@@ -692,6 +711,10 @@ CONFIG_NETDEV_10000=y
692# CONFIG_IWLWIFI_LEDS is not set 711# CONFIG_IWLWIFI_LEDS is not set
693 712
694# 713#
714# Enable WiMAX (Networking options) to see the WiMAX drivers
715#
716
717#
695# USB Network Adapters 718# USB Network Adapters
696# 719#
697# CONFIG_USB_CATC is not set 720# CONFIG_USB_CATC is not set
@@ -783,8 +806,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
783# CONFIG_SERIAL_JSM is not set 806# CONFIG_SERIAL_JSM is not set
784# CONFIG_SERIAL_OF_PLATFORM is not set 807# CONFIG_SERIAL_OF_PLATFORM is not set
785CONFIG_UNIX98_PTYS=y 808CONFIG_UNIX98_PTYS=y
809# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
786CONFIG_LEGACY_PTYS=y 810CONFIG_LEGACY_PTYS=y
787CONFIG_LEGACY_PTY_COUNT=256 811CONFIG_LEGACY_PTY_COUNT=256
812# CONFIG_HVC_UDBG is not set
788# CONFIG_IPMI_HANDLER is not set 813# CONFIG_IPMI_HANDLER is not set
789CONFIG_HW_RANDOM=y 814CONFIG_HW_RANDOM=y
790# CONFIG_NVRAM is not set 815# CONFIG_NVRAM is not set
@@ -849,8 +874,8 @@ CONFIG_I2C_MPC=y
849# Miscellaneous I2C Chip support 874# Miscellaneous I2C Chip support
850# 875#
851# CONFIG_DS1682 is not set 876# CONFIG_DS1682 is not set
852# CONFIG_AT24 is not set 877# CONFIG_EEPROM_AT24 is not set
853CONFIG_SENSORS_EEPROM=y 878CONFIG_EEPROM_LEGACY=y
854# CONFIG_SENSORS_PCF8574 is not set 879# CONFIG_SENSORS_PCF8574 is not set
855# CONFIG_PCF8575 is not set 880# CONFIG_PCF8575 is not set
856# CONFIG_SENSORS_PCA9539 is not set 881# CONFIG_SENSORS_PCA9539 is not set
@@ -869,11 +894,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
869# CONFIG_HWMON is not set 894# CONFIG_HWMON is not set
870CONFIG_THERMAL=y 895CONFIG_THERMAL=y
871# CONFIG_WATCHDOG is not set 896# CONFIG_WATCHDOG is not set
897CONFIG_SSB_POSSIBLE=y
872 898
873# 899#
874# Sonics Silicon Backplane 900# Sonics Silicon Backplane
875# 901#
876CONFIG_SSB_POSSIBLE=y
877# CONFIG_SSB is not set 902# CONFIG_SSB is not set
878 903
879# 904#
@@ -882,18 +907,13 @@ CONFIG_SSB_POSSIBLE=y
882# CONFIG_MFD_CORE is not set 907# CONFIG_MFD_CORE is not set
883# CONFIG_MFD_SM501 is not set 908# CONFIG_MFD_SM501 is not set
884# CONFIG_HTC_PASIC3 is not set 909# CONFIG_HTC_PASIC3 is not set
910# CONFIG_TWL4030_CORE is not set
885# CONFIG_MFD_TMIO is not set 911# CONFIG_MFD_TMIO is not set
886# CONFIG_PMIC_DA903X is not set 912# CONFIG_PMIC_DA903X is not set
887# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
888# CONFIG_MFD_WM8350_I2C is not set 914# CONFIG_MFD_WM8350_I2C is not set
889 915# CONFIG_MFD_PCF50633 is not set
890#
891# Voltage and Current regulators
892#
893# CONFIG_REGULATOR is not set 916# CONFIG_REGULATOR is not set
894# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
895# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
896# CONFIG_REGULATOR_BQ24022 is not set
897 917
898# 918#
899# Multimedia devices 919# Multimedia devices
@@ -920,6 +940,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
920CONFIG_MEDIA_TUNER_MT20XX=m 940CONFIG_MEDIA_TUNER_MT20XX=m
921CONFIG_MEDIA_TUNER_XC2028=m 941CONFIG_MEDIA_TUNER_XC2028=m
922CONFIG_MEDIA_TUNER_XC5000=m 942CONFIG_MEDIA_TUNER_XC5000=m
943# CONFIG_DVB_DYNAMIC_MINORS is not set
923CONFIG_DVB_CAPTURE_DRIVERS=y 944CONFIG_DVB_CAPTURE_DRIVERS=y
924 945
925# 946#
@@ -965,6 +986,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
965# CONFIG_DVB_FE_CUSTOMISE is not set 986# CONFIG_DVB_FE_CUSTOMISE is not set
966 987
967# 988#
989# Multistandard (satellite) frontends
990#
991# CONFIG_DVB_STB0899 is not set
992# CONFIG_DVB_STB6100 is not set
993
994#
968# DVB-S (satellite) frontends 995# DVB-S (satellite) frontends
969# 996#
970# CONFIG_DVB_CX24110 is not set 997# CONFIG_DVB_CX24110 is not set
@@ -976,8 +1003,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
976# CONFIG_DVB_STV0299 is not set 1003# CONFIG_DVB_STV0299 is not set
977# CONFIG_DVB_TDA8083 is not set 1004# CONFIG_DVB_TDA8083 is not set
978# CONFIG_DVB_TDA10086 is not set 1005# CONFIG_DVB_TDA10086 is not set
1006# CONFIG_DVB_TDA8261 is not set
979# CONFIG_DVB_VES1X93 is not set 1007# CONFIG_DVB_VES1X93 is not set
980# CONFIG_DVB_TUNER_ITD1000 is not set 1008# CONFIG_DVB_TUNER_ITD1000 is not set
1009# CONFIG_DVB_TUNER_CX24113 is not set
981# CONFIG_DVB_TDA826X is not set 1010# CONFIG_DVB_TDA826X is not set
982# CONFIG_DVB_TUA6100 is not set 1011# CONFIG_DVB_TUA6100 is not set
983# CONFIG_DVB_CX24116 is not set 1012# CONFIG_DVB_CX24116 is not set
@@ -1018,11 +1047,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1018# CONFIG_DVB_OR51132 is not set 1047# CONFIG_DVB_OR51132 is not set
1019# CONFIG_DVB_BCM3510 is not set 1048# CONFIG_DVB_BCM3510 is not set
1020# CONFIG_DVB_LGDT330X is not set 1049# CONFIG_DVB_LGDT330X is not set
1050# CONFIG_DVB_LGDT3304 is not set
1021# CONFIG_DVB_S5H1409 is not set 1051# CONFIG_DVB_S5H1409 is not set
1022# CONFIG_DVB_AU8522 is not set 1052# CONFIG_DVB_AU8522 is not set
1023# CONFIG_DVB_S5H1411 is not set 1053# CONFIG_DVB_S5H1411 is not set
1024 1054
1025# 1055#
1056# ISDB-T (terrestrial) frontends
1057#
1058# CONFIG_DVB_S921 is not set
1059
1060#
1026# Digital terrestrial only tuners/PLL 1061# Digital terrestrial only tuners/PLL
1027# 1062#
1028# CONFIG_DVB_PLL is not set 1063# CONFIG_DVB_PLL is not set
@@ -1073,6 +1108,7 @@ CONFIG_SND_PCM=y
1073# CONFIG_SND_SEQUENCER is not set 1108# CONFIG_SND_SEQUENCER is not set
1074# CONFIG_SND_MIXER_OSS is not set 1109# CONFIG_SND_MIXER_OSS is not set
1075# CONFIG_SND_PCM_OSS is not set 1110# CONFIG_SND_PCM_OSS is not set
1111# CONFIG_SND_HRTIMER is not set
1076# CONFIG_SND_DYNAMIC_MINORS is not set 1112# CONFIG_SND_DYNAMIC_MINORS is not set
1077CONFIG_SND_SUPPORT_OLD_API=y 1113CONFIG_SND_SUPPORT_OLD_API=y
1078CONFIG_SND_VERBOSE_PROCFS=y 1114CONFIG_SND_VERBOSE_PROCFS=y
@@ -1175,11 +1211,9 @@ CONFIG_HID_COMPAT=y
1175CONFIG_HID_A4TECH=y 1211CONFIG_HID_A4TECH=y
1176CONFIG_HID_APPLE=y 1212CONFIG_HID_APPLE=y
1177CONFIG_HID_BELKIN=y 1213CONFIG_HID_BELKIN=y
1178CONFIG_HID_BRIGHT=y
1179CONFIG_HID_CHERRY=y 1214CONFIG_HID_CHERRY=y
1180CONFIG_HID_CHICONY=y 1215CONFIG_HID_CHICONY=y
1181CONFIG_HID_CYPRESS=y 1216CONFIG_HID_CYPRESS=y
1182CONFIG_HID_DELL=y
1183CONFIG_HID_EZKEY=y 1217CONFIG_HID_EZKEY=y
1184CONFIG_HID_GYRATION=y 1218CONFIG_HID_GYRATION=y
1185CONFIG_HID_LOGITECH=y 1219CONFIG_HID_LOGITECH=y
@@ -1187,12 +1221,15 @@ CONFIG_HID_LOGITECH=y
1187# CONFIG_LOGIRUMBLEPAD2_FF is not set 1221# CONFIG_LOGIRUMBLEPAD2_FF is not set
1188CONFIG_HID_MICROSOFT=y 1222CONFIG_HID_MICROSOFT=y
1189CONFIG_HID_MONTEREY=y 1223CONFIG_HID_MONTEREY=y
1224# CONFIG_HID_NTRIG is not set
1190CONFIG_HID_PANTHERLORD=y 1225CONFIG_HID_PANTHERLORD=y
1191# CONFIG_PANTHERLORD_FF is not set 1226# CONFIG_PANTHERLORD_FF is not set
1192CONFIG_HID_PETALYNX=y 1227CONFIG_HID_PETALYNX=y
1193CONFIG_HID_SAMSUNG=y 1228CONFIG_HID_SAMSUNG=y
1194CONFIG_HID_SONY=y 1229CONFIG_HID_SONY=y
1195CONFIG_HID_SUNPLUS=y 1230CONFIG_HID_SUNPLUS=y
1231# CONFIG_GREENASIA_FF is not set
1232# CONFIG_HID_TOPSEED is not set
1196CONFIG_THRUSTMASTER_FF=m 1233CONFIG_THRUSTMASTER_FF=m
1197CONFIG_ZEROPLUS_FF=m 1234CONFIG_ZEROPLUS_FF=m
1198CONFIG_USB_SUPPORT=y 1235CONFIG_USB_SUPPORT=y
@@ -1225,6 +1262,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1225# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1262# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1226CONFIG_USB_EHCI_FSL=y 1263CONFIG_USB_EHCI_FSL=y
1227CONFIG_USB_EHCI_HCD_PPC_OF=y 1264CONFIG_USB_EHCI_HCD_PPC_OF=y
1265# CONFIG_USB_OXU210HP_HCD is not set
1228# CONFIG_USB_ISP116X_HCD is not set 1266# CONFIG_USB_ISP116X_HCD is not set
1229# CONFIG_USB_ISP1760_HCD is not set 1267# CONFIG_USB_ISP1760_HCD is not set
1230CONFIG_USB_OHCI_HCD=y 1268CONFIG_USB_OHCI_HCD=y
@@ -1250,18 +1288,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1250# CONFIG_USB_TMC is not set 1288# CONFIG_USB_TMC is not set
1251 1289
1252# 1290#
1253# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1291# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1254# 1292#
1255 1293
1256# 1294#
1257# may also be needed; see USB_STORAGE Help for more information 1295# see USB_STORAGE Help for more information
1258# 1296#
1259CONFIG_USB_STORAGE=y 1297CONFIG_USB_STORAGE=y
1260# CONFIG_USB_STORAGE_DEBUG is not set 1298# CONFIG_USB_STORAGE_DEBUG is not set
1261# CONFIG_USB_STORAGE_DATAFAB is not set 1299# CONFIG_USB_STORAGE_DATAFAB is not set
1262# CONFIG_USB_STORAGE_FREECOM is not set 1300# CONFIG_USB_STORAGE_FREECOM is not set
1263# CONFIG_USB_STORAGE_ISD200 is not set 1301# CONFIG_USB_STORAGE_ISD200 is not set
1264# CONFIG_USB_STORAGE_DPCM is not set
1265# CONFIG_USB_STORAGE_USBAT is not set 1302# CONFIG_USB_STORAGE_USBAT is not set
1266# CONFIG_USB_STORAGE_SDDR09 is not set 1303# CONFIG_USB_STORAGE_SDDR09 is not set
1267# CONFIG_USB_STORAGE_SDDR55 is not set 1304# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1309,6 +1346,10 @@ CONFIG_USB_STORAGE=y
1309# CONFIG_USB_ISIGHTFW is not set 1346# CONFIG_USB_ISIGHTFW is not set
1310# CONFIG_USB_VST is not set 1347# CONFIG_USB_VST is not set
1311# CONFIG_USB_GADGET is not set 1348# CONFIG_USB_GADGET is not set
1349
1350#
1351# OTG and related infrastructure
1352#
1312# CONFIG_UWB is not set 1353# CONFIG_UWB is not set
1313# CONFIG_MMC is not set 1354# CONFIG_MMC is not set
1314# CONFIG_MEMSTICK is not set 1355# CONFIG_MEMSTICK is not set
@@ -1346,6 +1387,7 @@ CONFIG_RTC_INTF_DEV=y
1346# CONFIG_RTC_DRV_M41T80 is not set 1387# CONFIG_RTC_DRV_M41T80 is not set
1347# CONFIG_RTC_DRV_S35390A is not set 1388# CONFIG_RTC_DRV_S35390A is not set
1348# CONFIG_RTC_DRV_FM3130 is not set 1389# CONFIG_RTC_DRV_FM3130 is not set
1390# CONFIG_RTC_DRV_RX8581 is not set
1349 1391
1350# 1392#
1351# SPI RTC drivers 1393# SPI RTC drivers
@@ -1405,7 +1447,9 @@ CONFIG_FS_MBCACHE=y
1405# CONFIG_FS_POSIX_ACL is not set 1447# CONFIG_FS_POSIX_ACL is not set
1406CONFIG_FILE_LOCKING=y 1448CONFIG_FILE_LOCKING=y
1407# CONFIG_XFS_FS is not set 1449# CONFIG_XFS_FS is not set
1450# CONFIG_GFS2_FS is not set
1408# CONFIG_OCFS2_FS is not set 1451# CONFIG_OCFS2_FS is not set
1452# CONFIG_BTRFS_FS is not set
1409CONFIG_DNOTIFY=y 1453CONFIG_DNOTIFY=y
1410CONFIG_INOTIFY=y 1454CONFIG_INOTIFY=y
1411CONFIG_INOTIFY_USER=y 1455CONFIG_INOTIFY_USER=y
@@ -1447,10 +1491,7 @@ CONFIG_TMPFS=y
1447# CONFIG_TMPFS_POSIX_ACL is not set 1491# CONFIG_TMPFS_POSIX_ACL is not set
1448# CONFIG_HUGETLB_PAGE is not set 1492# CONFIG_HUGETLB_PAGE is not set
1449# CONFIG_CONFIGFS_FS is not set 1493# CONFIG_CONFIGFS_FS is not set
1450 1494CONFIG_MISC_FILESYSTEMS=y
1451#
1452# Miscellaneous filesystems
1453#
1454CONFIG_ADFS_FS=m 1495CONFIG_ADFS_FS=m
1455# CONFIG_ADFS_FS_RW is not set 1496# CONFIG_ADFS_FS_RW is not set
1456CONFIG_AFFS_FS=m 1497CONFIG_AFFS_FS=m
@@ -1461,6 +1502,7 @@ CONFIG_BEFS_FS=m
1461CONFIG_BFS_FS=m 1502CONFIG_BFS_FS=m
1462CONFIG_EFS_FS=m 1503CONFIG_EFS_FS=m
1463CONFIG_CRAMFS=y 1504CONFIG_CRAMFS=y
1505# CONFIG_SQUASHFS is not set
1464CONFIG_VXFS_FS=m 1506CONFIG_VXFS_FS=m
1465# CONFIG_MINIX_FS is not set 1507# CONFIG_MINIX_FS is not set
1466# CONFIG_OMFS_FS is not set 1508# CONFIG_OMFS_FS is not set
@@ -1562,6 +1604,7 @@ CONFIG_NLS_UTF8=m
1562# Library routines 1604# Library routines
1563# 1605#
1564CONFIG_BITREVERSE=y 1606CONFIG_BITREVERSE=y
1607CONFIG_GENERIC_FIND_LAST_BIT=y
1565# CONFIG_CRC_CCITT is not set 1608# CONFIG_CRC_CCITT is not set
1566# CONFIG_CRC16 is not set 1609# CONFIG_CRC16 is not set
1567CONFIG_CRC_T10DIF=y 1610CONFIG_CRC_T10DIF=y
@@ -1613,6 +1656,7 @@ CONFIG_DEBUG_INFO=y
1613# CONFIG_DEBUG_MEMORY_INIT is not set 1656# CONFIG_DEBUG_MEMORY_INIT is not set
1614# CONFIG_DEBUG_LIST is not set 1657# CONFIG_DEBUG_LIST is not set
1615# CONFIG_DEBUG_SG is not set 1658# CONFIG_DEBUG_SG is not set
1659# CONFIG_DEBUG_NOTIFIERS is not set
1616# CONFIG_BOOT_PRINTK_DELAY is not set 1660# CONFIG_BOOT_PRINTK_DELAY is not set
1617# CONFIG_RCU_TORTURE_TEST is not set 1661# CONFIG_RCU_TORTURE_TEST is not set
1618# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1662# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1622,6 +1666,8 @@ CONFIG_DEBUG_INFO=y
1622# CONFIG_LATENCYTOP is not set 1666# CONFIG_LATENCYTOP is not set
1623CONFIG_SYSCTL_SYSCALL_CHECK=y 1667CONFIG_SYSCTL_SYSCALL_CHECK=y
1624CONFIG_HAVE_FUNCTION_TRACER=y 1668CONFIG_HAVE_FUNCTION_TRACER=y
1669CONFIG_HAVE_DYNAMIC_FTRACE=y
1670CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1625 1671
1626# 1672#
1627# Tracers 1673# Tracers
@@ -1630,11 +1676,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1630# CONFIG_SCHED_TRACER is not set 1676# CONFIG_SCHED_TRACER is not set
1631# CONFIG_CONTEXT_SWITCH_TRACER is not set 1677# CONFIG_CONTEXT_SWITCH_TRACER is not set
1632# CONFIG_BOOT_TRACER is not set 1678# CONFIG_BOOT_TRACER is not set
1679# CONFIG_TRACE_BRANCH_PROFILING is not set
1633# CONFIG_STACK_TRACER is not set 1680# CONFIG_STACK_TRACER is not set
1634# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1681# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1635# CONFIG_SAMPLES is not set 1682# CONFIG_SAMPLES is not set
1636CONFIG_HAVE_ARCH_KGDB=y 1683CONFIG_HAVE_ARCH_KGDB=y
1637# CONFIG_KGDB is not set 1684# CONFIG_KGDB is not set
1685CONFIG_PRINT_STACK_DEPTH=64
1638# CONFIG_DEBUG_STACKOVERFLOW is not set 1686# CONFIG_DEBUG_STACKOVERFLOW is not set
1639# CONFIG_DEBUG_STACK_USAGE is not set 1687# CONFIG_DEBUG_STACK_USAGE is not set
1640# CONFIG_DEBUG_PAGEALLOC is not set 1688# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1661,11 +1709,16 @@ CONFIG_CRYPTO=y
1661# 1709#
1662# CONFIG_CRYPTO_FIPS is not set 1710# CONFIG_CRYPTO_FIPS is not set
1663CONFIG_CRYPTO_ALGAPI=y 1711CONFIG_CRYPTO_ALGAPI=y
1712CONFIG_CRYPTO_ALGAPI2=y
1664CONFIG_CRYPTO_AEAD=y 1713CONFIG_CRYPTO_AEAD=y
1714CONFIG_CRYPTO_AEAD2=y
1665CONFIG_CRYPTO_BLKCIPHER=y 1715CONFIG_CRYPTO_BLKCIPHER=y
1716CONFIG_CRYPTO_BLKCIPHER2=y
1666CONFIG_CRYPTO_HASH=y 1717CONFIG_CRYPTO_HASH=y
1667CONFIG_CRYPTO_RNG=y 1718CONFIG_CRYPTO_HASH2=y
1719CONFIG_CRYPTO_RNG2=y
1668CONFIG_CRYPTO_MANAGER=y 1720CONFIG_CRYPTO_MANAGER=y
1721CONFIG_CRYPTO_MANAGER2=y
1669# CONFIG_CRYPTO_GF128MUL is not set 1722# CONFIG_CRYPTO_GF128MUL is not set
1670# CONFIG_CRYPTO_NULL is not set 1723# CONFIG_CRYPTO_NULL is not set
1671# CONFIG_CRYPTO_CRYPTD is not set 1724# CONFIG_CRYPTO_CRYPTD is not set
@@ -1699,7 +1752,7 @@ CONFIG_CRYPTO_HMAC=y
1699# 1752#
1700# Digest 1753# Digest
1701# 1754#
1702# CONFIG_CRYPTO_CRC32C is not set 1755CONFIG_CRYPTO_CRC32C=m
1703# CONFIG_CRYPTO_MD4 is not set 1756# CONFIG_CRYPTO_MD4 is not set
1704CONFIG_CRYPTO_MD5=y 1757CONFIG_CRYPTO_MD5=y
1705# CONFIG_CRYPTO_MICHAEL_MIC is not set 1758# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index d790cbab80b8..905e8a3388d6 100644
--- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8540_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:06 2008 4# Mon Jan 26 15:36:05 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 81# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 121CONFIG_HAVE_IOREMAP_PROT=y
@@ -124,13 +125,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
129# CONFIG_MODULES is not set 129# CONFIG_MODULES is not set
130CONFIG_BLOCK=y 130CONFIG_BLOCK=y
131# CONFIG_LBD is not set 131# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 132# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 133# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 134# CONFIG_BLK_DEV_INTEGRITY is not set
136 135
@@ -147,6 +146,10 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_NOOP is not set 146# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 147CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y 148CONFIG_CLASSIC_RCU=y
149# CONFIG_TREE_RCU is not set
150# CONFIG_PREEMPT_RCU is not set
151# CONFIG_TREE_RCU_TRACE is not set
152# CONFIG_PREEMPT_RCU_TRACE is not set
150# CONFIG_FREEZER is not set 153# CONFIG_FREEZER is not set
151 154
152# 155#
@@ -186,6 +189,7 @@ CONFIG_MPIC=y
186# CONFIG_CPM2 is not set 189# CONFIG_CPM2 is not set
187# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
188# CONFIG_MPC8xxx_GPIO is not set 191# CONFIG_MPC8xxx_GPIO is not set
192# CONFIG_SIMPLE_GPIO is not set
189 193
190# 194#
191# Kernel options 195# Kernel options
@@ -224,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
224CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
227# CONFIG_RESOURCES_64BIT is not set
228# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
232CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
233CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
234CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
235# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -270,6 +276,7 @@ CONFIG_NET=y
270# 276#
271# Networking options 277# Networking options
272# 278#
279CONFIG_COMPAT_NET_DEV_OPS=y
273CONFIG_PACKET=y 280CONFIG_PACKET=y
274# CONFIG_PACKET_MMAP is not set 281# CONFIG_PACKET_MMAP is not set
275CONFIG_UNIX=y 282CONFIG_UNIX=y
@@ -326,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
326# CONFIG_ECONET is not set 333# CONFIG_ECONET is not set
327# CONFIG_WAN_ROUTER is not set 334# CONFIG_WAN_ROUTER is not set
328# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set
329 337
330# 338#
331# Network testing 339# Network testing
@@ -341,8 +349,9 @@ CONFIG_WIRELESS=y
341# CONFIG_CFG80211 is not set 349# CONFIG_CFG80211 is not set
342CONFIG_WIRELESS_OLD_REGULATORY=y 350CONFIG_WIRELESS_OLD_REGULATORY=y
343# CONFIG_WIRELESS_EXT is not set 351# CONFIG_WIRELESS_EXT is not set
352# CONFIG_LIB80211 is not set
344# CONFIG_MAC80211 is not set 353# CONFIG_MAC80211 is not set
345# CONFIG_IEEE80211 is not set 354# CONFIG_WIMAX is not set
346# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
348 357
@@ -380,6 +389,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
380CONFIG_MISC_DEVICES=y 389CONFIG_MISC_DEVICES=y
381# CONFIG_EEPROM_93CX6 is not set 390# CONFIG_EEPROM_93CX6 is not set
382# CONFIG_ENCLOSURE_SERVICES is not set 391# CONFIG_ENCLOSURE_SERVICES is not set
392# CONFIG_C2PORT is not set
383CONFIG_HAVE_IDE=y 393CONFIG_HAVE_IDE=y
384# CONFIG_IDE is not set 394# CONFIG_IDE is not set
385 395
@@ -415,6 +425,9 @@ CONFIG_PHYLIB=y
415# CONFIG_BROADCOM_PHY is not set 425# CONFIG_BROADCOM_PHY is not set
416# CONFIG_ICPLUS_PHY is not set 426# CONFIG_ICPLUS_PHY is not set
417# CONFIG_REALTEK_PHY is not set 427# CONFIG_REALTEK_PHY is not set
428# CONFIG_NATIONAL_PHY is not set
429# CONFIG_STE10XP is not set
430# CONFIG_LSI_ET1011C_PHY is not set
418# CONFIG_FIXED_PHY is not set 431# CONFIG_FIXED_PHY is not set
419# CONFIG_MDIO_BITBANG is not set 432# CONFIG_MDIO_BITBANG is not set
420CONFIG_NET_ETHERNET=y 433CONFIG_NET_ETHERNET=y
@@ -437,6 +450,10 @@ CONFIG_NETDEV_10000=y
437# CONFIG_WLAN_PRE80211 is not set 450# CONFIG_WLAN_PRE80211 is not set
438# CONFIG_WLAN_80211 is not set 451# CONFIG_WLAN_80211 is not set
439# CONFIG_IWLWIFI_LEDS is not set 452# CONFIG_IWLWIFI_LEDS is not set
453
454#
455# Enable WiMAX (Networking options) to see the WiMAX drivers
456#
440# CONFIG_WAN is not set 457# CONFIG_WAN is not set
441# CONFIG_PPP is not set 458# CONFIG_PPP is not set
442# CONFIG_SLIP is not set 459# CONFIG_SLIP is not set
@@ -502,8 +519,10 @@ CONFIG_SERIAL_CORE=y
502CONFIG_SERIAL_CORE_CONSOLE=y 519CONFIG_SERIAL_CORE_CONSOLE=y
503# CONFIG_SERIAL_OF_PLATFORM is not set 520# CONFIG_SERIAL_OF_PLATFORM is not set
504CONFIG_UNIX98_PTYS=y 521CONFIG_UNIX98_PTYS=y
522# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
505CONFIG_LEGACY_PTYS=y 523CONFIG_LEGACY_PTYS=y
506CONFIG_LEGACY_PTY_COUNT=256 524CONFIG_LEGACY_PTY_COUNT=256
525# CONFIG_HVC_UDBG is not set
507# CONFIG_IPMI_HANDLER is not set 526# CONFIG_IPMI_HANDLER is not set
508# CONFIG_HW_RANDOM is not set 527# CONFIG_HW_RANDOM is not set
509# CONFIG_NVRAM is not set 528# CONFIG_NVRAM is not set
@@ -534,11 +553,11 @@ CONFIG_HWMON=y
534# CONFIG_THERMAL is not set 553# CONFIG_THERMAL is not set
535# CONFIG_THERMAL_HWMON is not set 554# CONFIG_THERMAL_HWMON is not set
536# CONFIG_WATCHDOG is not set 555# CONFIG_WATCHDOG is not set
556CONFIG_SSB_POSSIBLE=y
537 557
538# 558#
539# Sonics Silicon Backplane 559# Sonics Silicon Backplane
540# 560#
541CONFIG_SSB_POSSIBLE=y
542# CONFIG_SSB is not set 561# CONFIG_SSB is not set
543 562
544# 563#
@@ -548,14 +567,7 @@ CONFIG_SSB_POSSIBLE=y
548# CONFIG_MFD_SM501 is not set 567# CONFIG_MFD_SM501 is not set
549# CONFIG_HTC_PASIC3 is not set 568# CONFIG_HTC_PASIC3 is not set
550# CONFIG_MFD_TMIO is not set 569# CONFIG_MFD_TMIO is not set
551
552#
553# Voltage and Current regulators
554#
555# CONFIG_REGULATOR is not set 570# CONFIG_REGULATOR is not set
556# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
557# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
558# CONFIG_REGULATOR_BQ24022 is not set
559 571
560# 572#
561# Multimedia devices 573# Multimedia devices
@@ -608,9 +620,13 @@ CONFIG_USB_SUPPORT=y
608# 620#
609 621
610# 622#
611# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 623# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
612# 624#
613# CONFIG_USB_GADGET is not set 625# CONFIG_USB_GADGET is not set
626
627#
628# OTG and related infrastructure
629#
614# CONFIG_MMC is not set 630# CONFIG_MMC is not set
615# CONFIG_MEMSTICK is not set 631# CONFIG_MEMSTICK is not set
616# CONFIG_NEW_LEDS is not set 632# CONFIG_NEW_LEDS is not set
@@ -640,6 +656,7 @@ CONFIG_FS_MBCACHE=y
640CONFIG_FILE_LOCKING=y 656CONFIG_FILE_LOCKING=y
641# CONFIG_XFS_FS is not set 657# CONFIG_XFS_FS is not set
642# CONFIG_OCFS2_FS is not set 658# CONFIG_OCFS2_FS is not set
659# CONFIG_BTRFS_FS is not set
643CONFIG_DNOTIFY=y 660CONFIG_DNOTIFY=y
644CONFIG_INOTIFY=y 661CONFIG_INOTIFY=y
645CONFIG_INOTIFY_USER=y 662CONFIG_INOTIFY_USER=y
@@ -673,10 +690,7 @@ CONFIG_TMPFS=y
673# CONFIG_TMPFS_POSIX_ACL is not set 690# CONFIG_TMPFS_POSIX_ACL is not set
674# CONFIG_HUGETLB_PAGE is not set 691# CONFIG_HUGETLB_PAGE is not set
675# CONFIG_CONFIGFS_FS is not set 692# CONFIG_CONFIGFS_FS is not set
676 693CONFIG_MISC_FILESYSTEMS=y
677#
678# Miscellaneous filesystems
679#
680# CONFIG_ADFS_FS is not set 694# CONFIG_ADFS_FS is not set
681# CONFIG_AFFS_FS is not set 695# CONFIG_AFFS_FS is not set
682# CONFIG_HFS_FS is not set 696# CONFIG_HFS_FS is not set
@@ -685,6 +699,7 @@ CONFIG_TMPFS=y
685# CONFIG_BFS_FS is not set 699# CONFIG_BFS_FS is not set
686# CONFIG_EFS_FS is not set 700# CONFIG_EFS_FS is not set
687# CONFIG_CRAMFS is not set 701# CONFIG_CRAMFS is not set
702# CONFIG_SQUASHFS is not set
688# CONFIG_VXFS_FS is not set 703# CONFIG_VXFS_FS is not set
689# CONFIG_MINIX_FS is not set 704# CONFIG_MINIX_FS is not set
690# CONFIG_OMFS_FS is not set 705# CONFIG_OMFS_FS is not set
@@ -735,6 +750,7 @@ CONFIG_PARTITION_ADVANCED=y
735# Library routines 750# Library routines
736# 751#
737CONFIG_BITREVERSE=y 752CONFIG_BITREVERSE=y
753CONFIG_GENERIC_FIND_LAST_BIT=y
738# CONFIG_CRC_CCITT is not set 754# CONFIG_CRC_CCITT is not set
739# CONFIG_CRC16 is not set 755# CONFIG_CRC16 is not set
740# CONFIG_CRC_T10DIF is not set 756# CONFIG_CRC_T10DIF is not set
@@ -784,6 +800,7 @@ CONFIG_DEBUG_MUTEXES=y
784# CONFIG_DEBUG_MEMORY_INIT is not set 800# CONFIG_DEBUG_MEMORY_INIT is not set
785# CONFIG_DEBUG_LIST is not set 801# CONFIG_DEBUG_LIST is not set
786# CONFIG_DEBUG_SG is not set 802# CONFIG_DEBUG_SG is not set
803# CONFIG_DEBUG_NOTIFIERS is not set
787# CONFIG_BOOT_PRINTK_DELAY is not set 804# CONFIG_BOOT_PRINTK_DELAY is not set
788# CONFIG_RCU_TORTURE_TEST is not set 805# CONFIG_RCU_TORTURE_TEST is not set
789# CONFIG_RCU_CPU_STALL_DETECTOR is not set 806# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -793,6 +810,8 @@ CONFIG_DEBUG_MUTEXES=y
793# CONFIG_LATENCYTOP is not set 810# CONFIG_LATENCYTOP is not set
794CONFIG_SYSCTL_SYSCALL_CHECK=y 811CONFIG_SYSCTL_SYSCALL_CHECK=y
795CONFIG_HAVE_FUNCTION_TRACER=y 812CONFIG_HAVE_FUNCTION_TRACER=y
813CONFIG_HAVE_DYNAMIC_FTRACE=y
814CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
796 815
797# 816#
798# Tracers 817# Tracers
@@ -801,11 +820,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
801# CONFIG_SCHED_TRACER is not set 820# CONFIG_SCHED_TRACER is not set
802# CONFIG_CONTEXT_SWITCH_TRACER is not set 821# CONFIG_CONTEXT_SWITCH_TRACER is not set
803# CONFIG_BOOT_TRACER is not set 822# CONFIG_BOOT_TRACER is not set
823# CONFIG_TRACE_BRANCH_PROFILING is not set
804# CONFIG_STACK_TRACER is not set 824# CONFIG_STACK_TRACER is not set
805# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 825# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
806# CONFIG_SAMPLES is not set 826# CONFIG_SAMPLES is not set
807CONFIG_HAVE_ARCH_KGDB=y 827CONFIG_HAVE_ARCH_KGDB=y
808# CONFIG_KGDB is not set 828# CONFIG_KGDB is not set
829CONFIG_PRINT_STACK_DEPTH=64
809# CONFIG_DEBUG_STACKOVERFLOW is not set 830# CONFIG_DEBUG_STACKOVERFLOW is not set
810# CONFIG_DEBUG_STACK_USAGE is not set 831# CONFIG_DEBUG_STACK_USAGE is not set
811# CONFIG_DEBUG_PAGEALLOC is not set 832# CONFIG_DEBUG_PAGEALLOC is not set
@@ -831,6 +852,7 @@ CONFIG_CRYPTO=y
831# 852#
832# CONFIG_CRYPTO_FIPS is not set 853# CONFIG_CRYPTO_FIPS is not set
833# CONFIG_CRYPTO_MANAGER is not set 854# CONFIG_CRYPTO_MANAGER is not set
855# CONFIG_CRYPTO_MANAGER2 is not set
834# CONFIG_CRYPTO_GF128MUL is not set 856# CONFIG_CRYPTO_GF128MUL is not set
835# CONFIG_CRYPTO_NULL is not set 857# CONFIG_CRYPTO_NULL is not set
836# CONFIG_CRYPTO_CRYPTD is not set 858# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
index f6cb01495ea6..f6fa0b761cb3 100644
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8544_ds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:08 2008 4# Mon Jan 26 15:36:07 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -78,12 +80,12 @@ CONFIG_AUDIT=y
78CONFIG_IKCONFIG=y 80CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 81CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 82CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 83CONFIG_GROUP_SCHED=y
83# CONFIG_FAIR_GROUP_SCHED is not set 84# CONFIG_FAIR_GROUP_SCHED is not set
84# CONFIG_RT_GROUP_SCHED is not set 85# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 86CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 87# CONFIG_CGROUP_SCHED is not set
88# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 89CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 90CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 91# CONFIG_RELAY is not set
@@ -96,6 +98,7 @@ CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
101CONFIG_KALLSYMS_STRIP_GENERATED=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 102CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y 103CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 104CONFIG_PRINTK=y
@@ -118,7 +121,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 121CONFIG_SLUB=y
119# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 125# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +131,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 135CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 136# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,11 +138,9 @@ CONFIG_MODULE_UNLOAD=y
137CONFIG_MODULE_FORCE_UNLOAD=y 138CONFIG_MODULE_FORCE_UNLOAD=y
138CONFIG_MODVERSIONS=y 139CONFIG_MODVERSIONS=y
139# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_BLOCK=y 141CONFIG_BLOCK=y
142CONFIG_LBD=y 142CONFIG_LBD=y
143# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_LSF is not set
145# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
147 146
@@ -158,6 +157,10 @@ CONFIG_DEFAULT_CFQ=y
158# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="cfq" 158CONFIG_DEFAULT_IOSCHED="cfq"
160CONFIG_CLASSIC_RCU=y 159CONFIG_CLASSIC_RCU=y
160# CONFIG_TREE_RCU is not set
161# CONFIG_PREEMPT_RCU is not set
162# CONFIG_TREE_RCU_TRACE is not set
163# CONFIG_PREEMPT_RCU_TRACE is not set
161# CONFIG_FREEZER is not set 164# CONFIG_FREEZER is not set
162 165
163# 166#
@@ -197,6 +200,7 @@ CONFIG_PPC_I8259=y
197# CONFIG_CPM2 is not set 200# CONFIG_CPM2 is not set
198CONFIG_FSL_ULI1575=y 201CONFIG_FSL_ULI1575=y
199# CONFIG_MPC8xxx_GPIO is not set 202# CONFIG_MPC8xxx_GPIO is not set
203# CONFIG_SIMPLE_GPIO is not set
200 204
201# 205#
202# Kernel options 206# Kernel options
@@ -235,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
235CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
237CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -266,6 +272,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
266# CONFIG_PCI_MSI is not set 272# CONFIG_PCI_MSI is not set
267# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
268# CONFIG_PCI_DEBUG is not set 274# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +296,7 @@ CONFIG_NET=y
289# 296#
290# Networking options 297# Networking options
291# 298#
299CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 300CONFIG_PACKET=y
293# CONFIG_PACKET_MMAP is not set 301# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -377,6 +385,7 @@ CONFIG_SCTP_HMAC_MD5=y
377# CONFIG_ECONET is not set 385# CONFIG_ECONET is not set
378# CONFIG_WAN_ROUTER is not set 386# CONFIG_WAN_ROUTER is not set
379# CONFIG_NET_SCHED is not set 387# CONFIG_NET_SCHED is not set
388# CONFIG_DCB is not set
380 389
381# 390#
382# Network testing 391# Network testing
@@ -393,8 +402,9 @@ CONFIG_WIRELESS=y
393# CONFIG_CFG80211 is not set 402# CONFIG_CFG80211 is not set
394CONFIG_WIRELESS_OLD_REGULATORY=y 403CONFIG_WIRELESS_OLD_REGULATORY=y
395# CONFIG_WIRELESS_EXT is not set 404# CONFIG_WIRELESS_EXT is not set
405# CONFIG_LIB80211 is not set
396# CONFIG_MAC80211 is not set 406# CONFIG_MAC80211 is not set
397# CONFIG_IEEE80211 is not set 407# CONFIG_WIMAX is not set
398# CONFIG_RFKILL is not set 408# CONFIG_RFKILL is not set
399# CONFIG_NET_9P is not set 409# CONFIG_NET_9P is not set
400 410
@@ -443,8 +453,10 @@ CONFIG_MISC_DEVICES=y
443# CONFIG_EEPROM_93CX6 is not set 453# CONFIG_EEPROM_93CX6 is not set
444# CONFIG_SGI_IOC4 is not set 454# CONFIG_SGI_IOC4 is not set
445# CONFIG_TIFM_CORE is not set 455# CONFIG_TIFM_CORE is not set
456# CONFIG_ICS932S401 is not set
446# CONFIG_ENCLOSURE_SERVICES is not set 457# CONFIG_ENCLOSURE_SERVICES is not set
447# CONFIG_HP_ILO is not set 458# CONFIG_HP_ILO is not set
459# CONFIG_C2PORT is not set
448CONFIG_HAVE_IDE=y 460CONFIG_HAVE_IDE=y
449# CONFIG_IDE is not set 461# CONFIG_IDE is not set
450 462
@@ -488,6 +500,7 @@ CONFIG_SCSI_WAIT_SCAN=m
488# CONFIG_SCSI_SRP_ATTRS is not set 500# CONFIG_SCSI_SRP_ATTRS is not set
489CONFIG_SCSI_LOWLEVEL=y 501CONFIG_SCSI_LOWLEVEL=y
490# CONFIG_ISCSI_TCP is not set 502# CONFIG_ISCSI_TCP is not set
503# CONFIG_SCSI_CXGB3_ISCSI is not set
491# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
492# CONFIG_SCSI_3W_9XXX is not set 505# CONFIG_SCSI_3W_9XXX is not set
493# CONFIG_SCSI_ACARD is not set 506# CONFIG_SCSI_ACARD is not set
@@ -504,6 +517,8 @@ CONFIG_SCSI_LOWLEVEL=y
504# CONFIG_MEGARAID_SAS is not set 517# CONFIG_MEGARAID_SAS is not set
505# CONFIG_SCSI_HPTIOP is not set 518# CONFIG_SCSI_HPTIOP is not set
506# CONFIG_SCSI_BUSLOGIC is not set 519# CONFIG_SCSI_BUSLOGIC is not set
520# CONFIG_LIBFC is not set
521# CONFIG_FCOE is not set
507# CONFIG_SCSI_DMX3191D is not set 522# CONFIG_SCSI_DMX3191D is not set
508# CONFIG_SCSI_EATA is not set 523# CONFIG_SCSI_EATA is not set
509# CONFIG_SCSI_FUTURE_DOMAIN is not set 524# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -623,6 +638,9 @@ CONFIG_VITESSE_PHY=y
623# CONFIG_BROADCOM_PHY is not set 638# CONFIG_BROADCOM_PHY is not set
624# CONFIG_ICPLUS_PHY is not set 639# CONFIG_ICPLUS_PHY is not set
625# CONFIG_REALTEK_PHY is not set 640# CONFIG_REALTEK_PHY is not set
641# CONFIG_NATIONAL_PHY is not set
642# CONFIG_STE10XP is not set
643# CONFIG_LSI_ET1011C_PHY is not set
626# CONFIG_FIXED_PHY is not set 644# CONFIG_FIXED_PHY is not set
627# CONFIG_MDIO_BITBANG is not set 645# CONFIG_MDIO_BITBANG is not set
628CONFIG_NET_ETHERNET=y 646CONFIG_NET_ETHERNET=y
@@ -667,6 +685,7 @@ CONFIG_GIANFAR=y
667# CONFIG_JME is not set 685# CONFIG_JME is not set
668CONFIG_NETDEV_10000=y 686CONFIG_NETDEV_10000=y
669# CONFIG_CHELSIO_T1 is not set 687# CONFIG_CHELSIO_T1 is not set
688CONFIG_CHELSIO_T3_DEPENDS=y
670# CONFIG_CHELSIO_T3 is not set 689# CONFIG_CHELSIO_T3 is not set
671# CONFIG_ENIC is not set 690# CONFIG_ENIC is not set
672# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
@@ -691,6 +710,10 @@ CONFIG_NETDEV_10000=y
691# CONFIG_IWLWIFI_LEDS is not set 710# CONFIG_IWLWIFI_LEDS is not set
692 711
693# 712#
713# Enable WiMAX (Networking options) to see the WiMAX drivers
714#
715
716#
694# USB Network Adapters 717# USB Network Adapters
695# 718#
696# CONFIG_USB_CATC is not set 719# CONFIG_USB_CATC is not set
@@ -782,8 +805,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
782# CONFIG_SERIAL_JSM is not set 805# CONFIG_SERIAL_JSM is not set
783# CONFIG_SERIAL_OF_PLATFORM is not set 806# CONFIG_SERIAL_OF_PLATFORM is not set
784CONFIG_UNIX98_PTYS=y 807CONFIG_UNIX98_PTYS=y
808# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
785CONFIG_LEGACY_PTYS=y 809CONFIG_LEGACY_PTYS=y
786CONFIG_LEGACY_PTY_COUNT=256 810CONFIG_LEGACY_PTY_COUNT=256
811# CONFIG_HVC_UDBG is not set
787# CONFIG_IPMI_HANDLER is not set 812# CONFIG_IPMI_HANDLER is not set
788CONFIG_HW_RANDOM=y 813CONFIG_HW_RANDOM=y
789CONFIG_NVRAM=y 814CONFIG_NVRAM=y
@@ -848,8 +873,8 @@ CONFIG_I2C_MPC=y
848# Miscellaneous I2C Chip support 873# Miscellaneous I2C Chip support
849# 874#
850# CONFIG_DS1682 is not set 875# CONFIG_DS1682 is not set
851# CONFIG_AT24 is not set 876# CONFIG_EEPROM_AT24 is not set
852CONFIG_SENSORS_EEPROM=y 877CONFIG_EEPROM_LEGACY=y
853# CONFIG_SENSORS_PCF8574 is not set 878# CONFIG_SENSORS_PCF8574 is not set
854# CONFIG_PCF8575 is not set 879# CONFIG_PCF8575 is not set
855# CONFIG_SENSORS_PCA9539 is not set 880# CONFIG_SENSORS_PCA9539 is not set
@@ -869,11 +894,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
869# CONFIG_THERMAL is not set 894# CONFIG_THERMAL is not set
870# CONFIG_THERMAL_HWMON is not set 895# CONFIG_THERMAL_HWMON is not set
871# CONFIG_WATCHDOG is not set 896# CONFIG_WATCHDOG is not set
897CONFIG_SSB_POSSIBLE=y
872 898
873# 899#
874# Sonics Silicon Backplane 900# Sonics Silicon Backplane
875# 901#
876CONFIG_SSB_POSSIBLE=y
877# CONFIG_SSB is not set 902# CONFIG_SSB is not set
878 903
879# 904#
@@ -882,18 +907,13 @@ CONFIG_SSB_POSSIBLE=y
882# CONFIG_MFD_CORE is not set 907# CONFIG_MFD_CORE is not set
883# CONFIG_MFD_SM501 is not set 908# CONFIG_MFD_SM501 is not set
884# CONFIG_HTC_PASIC3 is not set 909# CONFIG_HTC_PASIC3 is not set
910# CONFIG_TWL4030_CORE is not set
885# CONFIG_MFD_TMIO is not set 911# CONFIG_MFD_TMIO is not set
886# CONFIG_PMIC_DA903X is not set 912# CONFIG_PMIC_DA903X is not set
887# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
888# CONFIG_MFD_WM8350_I2C is not set 914# CONFIG_MFD_WM8350_I2C is not set
889 915# CONFIG_MFD_PCF50633 is not set
890#
891# Voltage and Current regulators
892#
893# CONFIG_REGULATOR is not set 916# CONFIG_REGULATOR is not set
894# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
895# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
896# CONFIG_REGULATOR_BQ24022 is not set
897 917
898# 918#
899# Multimedia devices 919# Multimedia devices
@@ -920,6 +940,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
920CONFIG_MEDIA_TUNER_MT20XX=m 940CONFIG_MEDIA_TUNER_MT20XX=m
921CONFIG_MEDIA_TUNER_XC2028=m 941CONFIG_MEDIA_TUNER_XC2028=m
922CONFIG_MEDIA_TUNER_XC5000=m 942CONFIG_MEDIA_TUNER_XC5000=m
943# CONFIG_DVB_DYNAMIC_MINORS is not set
923CONFIG_DVB_CAPTURE_DRIVERS=y 944CONFIG_DVB_CAPTURE_DRIVERS=y
924 945
925# 946#
@@ -965,6 +986,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
965# CONFIG_DVB_FE_CUSTOMISE is not set 986# CONFIG_DVB_FE_CUSTOMISE is not set
966 987
967# 988#
989# Multistandard (satellite) frontends
990#
991# CONFIG_DVB_STB0899 is not set
992# CONFIG_DVB_STB6100 is not set
993
994#
968# DVB-S (satellite) frontends 995# DVB-S (satellite) frontends
969# 996#
970# CONFIG_DVB_CX24110 is not set 997# CONFIG_DVB_CX24110 is not set
@@ -976,8 +1003,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
976# CONFIG_DVB_STV0299 is not set 1003# CONFIG_DVB_STV0299 is not set
977# CONFIG_DVB_TDA8083 is not set 1004# CONFIG_DVB_TDA8083 is not set
978# CONFIG_DVB_TDA10086 is not set 1005# CONFIG_DVB_TDA10086 is not set
1006# CONFIG_DVB_TDA8261 is not set
979# CONFIG_DVB_VES1X93 is not set 1007# CONFIG_DVB_VES1X93 is not set
980# CONFIG_DVB_TUNER_ITD1000 is not set 1008# CONFIG_DVB_TUNER_ITD1000 is not set
1009# CONFIG_DVB_TUNER_CX24113 is not set
981# CONFIG_DVB_TDA826X is not set 1010# CONFIG_DVB_TDA826X is not set
982# CONFIG_DVB_TUA6100 is not set 1011# CONFIG_DVB_TUA6100 is not set
983# CONFIG_DVB_CX24116 is not set 1012# CONFIG_DVB_CX24116 is not set
@@ -1018,11 +1047,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1018# CONFIG_DVB_OR51132 is not set 1047# CONFIG_DVB_OR51132 is not set
1019# CONFIG_DVB_BCM3510 is not set 1048# CONFIG_DVB_BCM3510 is not set
1020# CONFIG_DVB_LGDT330X is not set 1049# CONFIG_DVB_LGDT330X is not set
1050# CONFIG_DVB_LGDT3304 is not set
1021# CONFIG_DVB_S5H1409 is not set 1051# CONFIG_DVB_S5H1409 is not set
1022# CONFIG_DVB_AU8522 is not set 1052# CONFIG_DVB_AU8522 is not set
1023# CONFIG_DVB_S5H1411 is not set 1053# CONFIG_DVB_S5H1411 is not set
1024 1054
1025# 1055#
1056# ISDB-T (terrestrial) frontends
1057#
1058# CONFIG_DVB_S921 is not set
1059
1060#
1026# Digital terrestrial only tuners/PLL 1061# Digital terrestrial only tuners/PLL
1027# 1062#
1028# CONFIG_DVB_PLL is not set 1063# CONFIG_DVB_PLL is not set
@@ -1075,6 +1110,7 @@ CONFIG_SND_OSSEMUL=y
1075CONFIG_SND_MIXER_OSS=y 1110CONFIG_SND_MIXER_OSS=y
1076CONFIG_SND_PCM_OSS=y 1111CONFIG_SND_PCM_OSS=y
1077CONFIG_SND_PCM_OSS_PLUGINS=y 1112CONFIG_SND_PCM_OSS_PLUGINS=y
1113# CONFIG_SND_HRTIMER is not set
1078# CONFIG_SND_DYNAMIC_MINORS is not set 1114# CONFIG_SND_DYNAMIC_MINORS is not set
1079# CONFIG_SND_SUPPORT_OLD_API is not set 1115# CONFIG_SND_SUPPORT_OLD_API is not set
1080CONFIG_SND_VERBOSE_PROCFS=y 1116CONFIG_SND_VERBOSE_PROCFS=y
@@ -1177,11 +1213,9 @@ CONFIG_HID_COMPAT=y
1177CONFIG_HID_A4TECH=y 1213CONFIG_HID_A4TECH=y
1178CONFIG_HID_APPLE=y 1214CONFIG_HID_APPLE=y
1179CONFIG_HID_BELKIN=y 1215CONFIG_HID_BELKIN=y
1180CONFIG_HID_BRIGHT=y
1181CONFIG_HID_CHERRY=y 1216CONFIG_HID_CHERRY=y
1182CONFIG_HID_CHICONY=y 1217CONFIG_HID_CHICONY=y
1183CONFIG_HID_CYPRESS=y 1218CONFIG_HID_CYPRESS=y
1184CONFIG_HID_DELL=y
1185CONFIG_HID_EZKEY=y 1219CONFIG_HID_EZKEY=y
1186CONFIG_HID_GYRATION=y 1220CONFIG_HID_GYRATION=y
1187CONFIG_HID_LOGITECH=y 1221CONFIG_HID_LOGITECH=y
@@ -1189,12 +1223,15 @@ CONFIG_HID_LOGITECH=y
1189# CONFIG_LOGIRUMBLEPAD2_FF is not set 1223# CONFIG_LOGIRUMBLEPAD2_FF is not set
1190CONFIG_HID_MICROSOFT=y 1224CONFIG_HID_MICROSOFT=y
1191CONFIG_HID_MONTEREY=y 1225CONFIG_HID_MONTEREY=y
1226# CONFIG_HID_NTRIG is not set
1192CONFIG_HID_PANTHERLORD=y 1227CONFIG_HID_PANTHERLORD=y
1193# CONFIG_PANTHERLORD_FF is not set 1228# CONFIG_PANTHERLORD_FF is not set
1194CONFIG_HID_PETALYNX=y 1229CONFIG_HID_PETALYNX=y
1195CONFIG_HID_SAMSUNG=y 1230CONFIG_HID_SAMSUNG=y
1196CONFIG_HID_SONY=y 1231CONFIG_HID_SONY=y
1197CONFIG_HID_SUNPLUS=y 1232CONFIG_HID_SUNPLUS=y
1233# CONFIG_GREENASIA_FF is not set
1234# CONFIG_HID_TOPSEED is not set
1198CONFIG_THRUSTMASTER_FF=m 1235CONFIG_THRUSTMASTER_FF=m
1199CONFIG_ZEROPLUS_FF=m 1236CONFIG_ZEROPLUS_FF=m
1200CONFIG_USB_SUPPORT=y 1237CONFIG_USB_SUPPORT=y
@@ -1227,6 +1264,7 @@ CONFIG_USB_EHCI_HCD=y
1227# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1264# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1228# CONFIG_USB_EHCI_FSL is not set 1265# CONFIG_USB_EHCI_FSL is not set
1229CONFIG_USB_EHCI_HCD_PPC_OF=y 1266CONFIG_USB_EHCI_HCD_PPC_OF=y
1267# CONFIG_USB_OXU210HP_HCD is not set
1230# CONFIG_USB_ISP116X_HCD is not set 1268# CONFIG_USB_ISP116X_HCD is not set
1231# CONFIG_USB_ISP1760_HCD is not set 1269# CONFIG_USB_ISP1760_HCD is not set
1232CONFIG_USB_OHCI_HCD=y 1270CONFIG_USB_OHCI_HCD=y
@@ -1252,18 +1290,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1252# CONFIG_USB_TMC is not set 1290# CONFIG_USB_TMC is not set
1253 1291
1254# 1292#
1255# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1293# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1256# 1294#
1257 1295
1258# 1296#
1259# may also be needed; see USB_STORAGE Help for more information 1297# see USB_STORAGE Help for more information
1260# 1298#
1261CONFIG_USB_STORAGE=y 1299CONFIG_USB_STORAGE=y
1262# CONFIG_USB_STORAGE_DEBUG is not set 1300# CONFIG_USB_STORAGE_DEBUG is not set
1263# CONFIG_USB_STORAGE_DATAFAB is not set 1301# CONFIG_USB_STORAGE_DATAFAB is not set
1264# CONFIG_USB_STORAGE_FREECOM is not set 1302# CONFIG_USB_STORAGE_FREECOM is not set
1265# CONFIG_USB_STORAGE_ISD200 is not set 1303# CONFIG_USB_STORAGE_ISD200 is not set
1266# CONFIG_USB_STORAGE_DPCM is not set
1267# CONFIG_USB_STORAGE_USBAT is not set 1304# CONFIG_USB_STORAGE_USBAT is not set
1268# CONFIG_USB_STORAGE_SDDR09 is not set 1305# CONFIG_USB_STORAGE_SDDR09 is not set
1269# CONFIG_USB_STORAGE_SDDR55 is not set 1306# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1311,6 +1348,10 @@ CONFIG_USB_STORAGE=y
1311# CONFIG_USB_ISIGHTFW is not set 1348# CONFIG_USB_ISIGHTFW is not set
1312# CONFIG_USB_VST is not set 1349# CONFIG_USB_VST is not set
1313# CONFIG_USB_GADGET is not set 1350# CONFIG_USB_GADGET is not set
1351
1352#
1353# OTG and related infrastructure
1354#
1314# CONFIG_UWB is not set 1355# CONFIG_UWB is not set
1315# CONFIG_MMC is not set 1356# CONFIG_MMC is not set
1316# CONFIG_MEMSTICK is not set 1357# CONFIG_MEMSTICK is not set
@@ -1348,6 +1389,7 @@ CONFIG_RTC_INTF_DEV=y
1348# CONFIG_RTC_DRV_M41T80 is not set 1389# CONFIG_RTC_DRV_M41T80 is not set
1349# CONFIG_RTC_DRV_S35390A is not set 1390# CONFIG_RTC_DRV_S35390A is not set
1350# CONFIG_RTC_DRV_FM3130 is not set 1391# CONFIG_RTC_DRV_FM3130 is not set
1392# CONFIG_RTC_DRV_RX8581 is not set
1351 1393
1352# 1394#
1353# SPI RTC drivers 1395# SPI RTC drivers
@@ -1406,7 +1448,9 @@ CONFIG_FS_MBCACHE=y
1406# CONFIG_FS_POSIX_ACL is not set 1448# CONFIG_FS_POSIX_ACL is not set
1407CONFIG_FILE_LOCKING=y 1449CONFIG_FILE_LOCKING=y
1408# CONFIG_XFS_FS is not set 1450# CONFIG_XFS_FS is not set
1451# CONFIG_GFS2_FS is not set
1409# CONFIG_OCFS2_FS is not set 1452# CONFIG_OCFS2_FS is not set
1453# CONFIG_BTRFS_FS is not set
1410CONFIG_DNOTIFY=y 1454CONFIG_DNOTIFY=y
1411CONFIG_INOTIFY=y 1455CONFIG_INOTIFY=y
1412CONFIG_INOTIFY_USER=y 1456CONFIG_INOTIFY_USER=y
@@ -1448,10 +1492,7 @@ CONFIG_TMPFS=y
1448# CONFIG_TMPFS_POSIX_ACL is not set 1492# CONFIG_TMPFS_POSIX_ACL is not set
1449# CONFIG_HUGETLB_PAGE is not set 1493# CONFIG_HUGETLB_PAGE is not set
1450# CONFIG_CONFIGFS_FS is not set 1494# CONFIG_CONFIGFS_FS is not set
1451 1495CONFIG_MISC_FILESYSTEMS=y
1452#
1453# Miscellaneous filesystems
1454#
1455CONFIG_ADFS_FS=m 1496CONFIG_ADFS_FS=m
1456# CONFIG_ADFS_FS_RW is not set 1497# CONFIG_ADFS_FS_RW is not set
1457CONFIG_AFFS_FS=m 1498CONFIG_AFFS_FS=m
@@ -1462,6 +1503,7 @@ CONFIG_BEFS_FS=m
1462CONFIG_BFS_FS=m 1503CONFIG_BFS_FS=m
1463CONFIG_EFS_FS=m 1504CONFIG_EFS_FS=m
1464CONFIG_CRAMFS=y 1505CONFIG_CRAMFS=y
1506# CONFIG_SQUASHFS is not set
1465CONFIG_VXFS_FS=m 1507CONFIG_VXFS_FS=m
1466# CONFIG_MINIX_FS is not set 1508# CONFIG_MINIX_FS is not set
1467# CONFIG_OMFS_FS is not set 1509# CONFIG_OMFS_FS is not set
@@ -1563,6 +1605,7 @@ CONFIG_NLS_UTF8=m
1563# Library routines 1605# Library routines
1564# 1606#
1565CONFIG_BITREVERSE=y 1607CONFIG_BITREVERSE=y
1608CONFIG_GENERIC_FIND_LAST_BIT=y
1566# CONFIG_CRC_CCITT is not set 1609# CONFIG_CRC_CCITT is not set
1567# CONFIG_CRC16 is not set 1610# CONFIG_CRC16 is not set
1568CONFIG_CRC_T10DIF=y 1611CONFIG_CRC_T10DIF=y
@@ -1614,6 +1657,7 @@ CONFIG_DEBUG_INFO=y
1614# CONFIG_DEBUG_MEMORY_INIT is not set 1657# CONFIG_DEBUG_MEMORY_INIT is not set
1615# CONFIG_DEBUG_LIST is not set 1658# CONFIG_DEBUG_LIST is not set
1616# CONFIG_DEBUG_SG is not set 1659# CONFIG_DEBUG_SG is not set
1660# CONFIG_DEBUG_NOTIFIERS is not set
1617# CONFIG_BOOT_PRINTK_DELAY is not set 1661# CONFIG_BOOT_PRINTK_DELAY is not set
1618# CONFIG_RCU_TORTURE_TEST is not set 1662# CONFIG_RCU_TORTURE_TEST is not set
1619# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1663# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1623,6 +1667,8 @@ CONFIG_DEBUG_INFO=y
1623# CONFIG_LATENCYTOP is not set 1667# CONFIG_LATENCYTOP is not set
1624CONFIG_SYSCTL_SYSCALL_CHECK=y 1668CONFIG_SYSCTL_SYSCALL_CHECK=y
1625CONFIG_HAVE_FUNCTION_TRACER=y 1669CONFIG_HAVE_FUNCTION_TRACER=y
1670CONFIG_HAVE_DYNAMIC_FTRACE=y
1671CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1626 1672
1627# 1673#
1628# Tracers 1674# Tracers
@@ -1631,11 +1677,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1631# CONFIG_SCHED_TRACER is not set 1677# CONFIG_SCHED_TRACER is not set
1632# CONFIG_CONTEXT_SWITCH_TRACER is not set 1678# CONFIG_CONTEXT_SWITCH_TRACER is not set
1633# CONFIG_BOOT_TRACER is not set 1679# CONFIG_BOOT_TRACER is not set
1680# CONFIG_TRACE_BRANCH_PROFILING is not set
1634# CONFIG_STACK_TRACER is not set 1681# CONFIG_STACK_TRACER is not set
1635# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1682# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1636# CONFIG_SAMPLES is not set 1683# CONFIG_SAMPLES is not set
1637CONFIG_HAVE_ARCH_KGDB=y 1684CONFIG_HAVE_ARCH_KGDB=y
1638# CONFIG_KGDB is not set 1685# CONFIG_KGDB is not set
1686CONFIG_PRINT_STACK_DEPTH=64
1639# CONFIG_DEBUG_STACKOVERFLOW is not set 1687# CONFIG_DEBUG_STACKOVERFLOW is not set
1640# CONFIG_DEBUG_STACK_USAGE is not set 1688# CONFIG_DEBUG_STACK_USAGE is not set
1641# CONFIG_DEBUG_PAGEALLOC is not set 1689# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1661,11 +1709,16 @@ CONFIG_CRYPTO=y
1661# 1709#
1662# CONFIG_CRYPTO_FIPS is not set 1710# CONFIG_CRYPTO_FIPS is not set
1663CONFIG_CRYPTO_ALGAPI=y 1711CONFIG_CRYPTO_ALGAPI=y
1712CONFIG_CRYPTO_ALGAPI2=y
1664CONFIG_CRYPTO_AEAD=y 1713CONFIG_CRYPTO_AEAD=y
1714CONFIG_CRYPTO_AEAD2=y
1665CONFIG_CRYPTO_BLKCIPHER=y 1715CONFIG_CRYPTO_BLKCIPHER=y
1716CONFIG_CRYPTO_BLKCIPHER2=y
1666CONFIG_CRYPTO_HASH=y 1717CONFIG_CRYPTO_HASH=y
1667CONFIG_CRYPTO_RNG=y 1718CONFIG_CRYPTO_HASH2=y
1719CONFIG_CRYPTO_RNG2=y
1668CONFIG_CRYPTO_MANAGER=y 1720CONFIG_CRYPTO_MANAGER=y
1721CONFIG_CRYPTO_MANAGER2=y
1669# CONFIG_CRYPTO_GF128MUL is not set 1722# CONFIG_CRYPTO_GF128MUL is not set
1670# CONFIG_CRYPTO_NULL is not set 1723# CONFIG_CRYPTO_NULL is not set
1671# CONFIG_CRYPTO_CRYPTD is not set 1724# CONFIG_CRYPTO_CRYPTD is not set
@@ -1699,7 +1752,7 @@ CONFIG_CRYPTO_HMAC=y
1699# 1752#
1700# Digest 1753# Digest
1701# 1754#
1702# CONFIG_CRYPTO_CRC32C is not set 1755CONFIG_CRYPTO_CRC32C=m
1703# CONFIG_CRYPTO_MD4 is not set 1756# CONFIG_CRYPTO_MD4 is not set
1704CONFIG_CRYPTO_MD5=y 1757CONFIG_CRYPTO_MD5=y
1705# CONFIG_CRYPTO_MICHAEL_MIC is not set 1758# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 6cf929259ba7..095e2ded6e8b 100644
--- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8560_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:09 2008 4# Mon Jan 26 15:36:09 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81# CONFIG_FAIR_GROUP_SCHED is not set 82# CONFIG_FAIR_GROUP_SCHED is not set
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -116,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
116CONFIG_SLUB=y 118CONFIG_SLUB=y
117# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y 123CONFIG_HAVE_IOREMAP_PROT=y
@@ -127,13 +128,11 @@ CONFIG_HAVE_CLK=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
130# CONFIG_TINY_SHMEM is not set
131CONFIG_BASE_SMALL=0 131CONFIG_BASE_SMALL=0
132# CONFIG_MODULES is not set 132# CONFIG_MODULES is not set
133CONFIG_BLOCK=y 133CONFIG_BLOCK=y
134# CONFIG_LBD is not set 134# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_LSF is not set
137# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
139 138
@@ -150,6 +149,10 @@ CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
153# CONFIG_FREEZER is not set 156# CONFIG_FREEZER is not set
154 157
155# 158#
@@ -190,6 +193,7 @@ CONFIG_CPM2=y
190# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
191CONFIG_CPM=y 194CONFIG_CPM=y
192# CONFIG_MPC8xxx_GPIO is not set 195# CONFIG_MPC8xxx_GPIO is not set
196# CONFIG_SIMPLE_GPIO is not set
193 197
194# 198#
195# Kernel options 199# Kernel options
@@ -227,12 +231,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
227CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
228CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
229CONFIG_MIGRATION=y 233CONFIG_MIGRATION=y
230# CONFIG_RESOURCES_64BIT is not set
231# CONFIG_PHYS_ADDR_T_64BIT is not set 234# CONFIG_PHYS_ADDR_T_64BIT is not set
232CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 237CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 238CONFIG_UNEVICTABLE_LRU=y
239CONFIG_PPC_4K_PAGES=y
240# CONFIG_PPC_16K_PAGES is not set
241# CONFIG_PPC_64K_PAGES is not set
236CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
237# CONFIG_PROC_DEVICETREE is not set 243# CONFIG_PROC_DEVICETREE is not set
238# CONFIG_CMDLINE_BOOL is not set 244# CONFIG_CMDLINE_BOOL is not set
@@ -257,6 +263,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 263# CONFIG_PCI_MSI is not set
258# CONFIG_PCI_LEGACY is not set 264# CONFIG_PCI_LEGACY is not set
259CONFIG_PCI_DEBUG=y 265CONFIG_PCI_DEBUG=y
266# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -280,6 +287,7 @@ CONFIG_NET=y
280# 287#
281# Networking options 288# Networking options
282# 289#
290CONFIG_COMPAT_NET_DEV_OPS=y
283CONFIG_PACKET=y 291CONFIG_PACKET=y
284# CONFIG_PACKET_MMAP is not set 292# CONFIG_PACKET_MMAP is not set
285CONFIG_UNIX=y 293CONFIG_UNIX=y
@@ -336,6 +344,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_ECONET is not set 344# CONFIG_ECONET is not set
337# CONFIG_WAN_ROUTER is not set 345# CONFIG_WAN_ROUTER is not set
338# CONFIG_NET_SCHED is not set 346# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set
339 348
340# 349#
341# Network testing 350# Network testing
@@ -351,8 +360,9 @@ CONFIG_WIRELESS=y
351# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
352CONFIG_WIRELESS_OLD_REGULATORY=y 361CONFIG_WIRELESS_OLD_REGULATORY=y
353# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
363# CONFIG_LIB80211 is not set
354# CONFIG_MAC80211 is not set 364# CONFIG_MAC80211 is not set
355# CONFIG_IEEE80211 is not set 365# CONFIG_WIMAX is not set
356# CONFIG_RFKILL is not set 366# CONFIG_RFKILL is not set
357# CONFIG_NET_9P is not set 367# CONFIG_NET_9P is not set
358 368
@@ -400,6 +410,7 @@ CONFIG_MISC_DEVICES=y
400# CONFIG_TIFM_CORE is not set 410# CONFIG_TIFM_CORE is not set
401# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
402# CONFIG_HP_ILO is not set 412# CONFIG_HP_ILO is not set
413# CONFIG_C2PORT is not set
403CONFIG_HAVE_IDE=y 414CONFIG_HAVE_IDE=y
404# CONFIG_IDE is not set 415# CONFIG_IDE is not set
405 416
@@ -448,6 +459,9 @@ CONFIG_DAVICOM_PHY=y
448# CONFIG_BROADCOM_PHY is not set 459# CONFIG_BROADCOM_PHY is not set
449# CONFIG_ICPLUS_PHY is not set 460# CONFIG_ICPLUS_PHY is not set
450# CONFIG_REALTEK_PHY is not set 461# CONFIG_REALTEK_PHY is not set
462# CONFIG_NATIONAL_PHY is not set
463# CONFIG_STE10XP is not set
464# CONFIG_LSI_ET1011C_PHY is not set
451# CONFIG_FIXED_PHY is not set 465# CONFIG_FIXED_PHY is not set
452# CONFIG_MDIO_BITBANG is not set 466# CONFIG_MDIO_BITBANG is not set
453CONFIG_NET_ETHERNET=y 467CONFIG_NET_ETHERNET=y
@@ -496,6 +510,7 @@ CONFIG_GIANFAR=y
496# CONFIG_JME is not set 510# CONFIG_JME is not set
497CONFIG_NETDEV_10000=y 511CONFIG_NETDEV_10000=y
498# CONFIG_CHELSIO_T1 is not set 512# CONFIG_CHELSIO_T1 is not set
513CONFIG_CHELSIO_T3_DEPENDS=y
499# CONFIG_CHELSIO_T3 is not set 514# CONFIG_CHELSIO_T3 is not set
500# CONFIG_ENIC is not set 515# CONFIG_ENIC is not set
501# CONFIG_IXGBE is not set 516# CONFIG_IXGBE is not set
@@ -518,6 +533,10 @@ CONFIG_NETDEV_10000=y
518# CONFIG_WLAN_PRE80211 is not set 533# CONFIG_WLAN_PRE80211 is not set
519# CONFIG_WLAN_80211 is not set 534# CONFIG_WLAN_80211 is not set
520# CONFIG_IWLWIFI_LEDS is not set 535# CONFIG_IWLWIFI_LEDS is not set
536
537#
538# Enable WiMAX (Networking options) to see the WiMAX drivers
539#
521# CONFIG_WAN is not set 540# CONFIG_WAN is not set
522# CONFIG_FDDI is not set 541# CONFIG_FDDI is not set
523# CONFIG_HIPPI is not set 542# CONFIG_HIPPI is not set
@@ -583,8 +602,10 @@ CONFIG_SERIAL_CPM=y
583CONFIG_SERIAL_CPM_CONSOLE=y 602CONFIG_SERIAL_CPM_CONSOLE=y
584# CONFIG_SERIAL_JSM is not set 603# CONFIG_SERIAL_JSM is not set
585CONFIG_UNIX98_PTYS=y 604CONFIG_UNIX98_PTYS=y
605# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
586CONFIG_LEGACY_PTYS=y 606CONFIG_LEGACY_PTYS=y
587CONFIG_LEGACY_PTY_COUNT=256 607CONFIG_LEGACY_PTY_COUNT=256
608# CONFIG_HVC_UDBG is not set
588# CONFIG_IPMI_HANDLER is not set 609# CONFIG_IPMI_HANDLER is not set
589CONFIG_HW_RANDOM=y 610CONFIG_HW_RANDOM=y
590# CONFIG_NVRAM is not set 611# CONFIG_NVRAM is not set
@@ -604,6 +625,11 @@ CONFIG_GPIOLIB=y
604# CONFIG_GPIO_SYSFS is not set 625# CONFIG_GPIO_SYSFS is not set
605 626
606# 627#
628# Memory mapped GPIO expanders:
629#
630# CONFIG_GPIO_XILINX is not set
631
632#
607# I2C GPIO expanders: 633# I2C GPIO expanders:
608# 634#
609 635
@@ -637,11 +663,11 @@ CONFIG_HWMON=y
637# CONFIG_THERMAL is not set 663# CONFIG_THERMAL is not set
638# CONFIG_THERMAL_HWMON is not set 664# CONFIG_THERMAL_HWMON is not set
639# CONFIG_WATCHDOG is not set 665# CONFIG_WATCHDOG is not set
666CONFIG_SSB_POSSIBLE=y
640 667
641# 668#
642# Sonics Silicon Backplane 669# Sonics Silicon Backplane
643# 670#
644CONFIG_SSB_POSSIBLE=y
645# CONFIG_SSB is not set 671# CONFIG_SSB is not set
646 672
647# 673#
@@ -651,14 +677,7 @@ CONFIG_SSB_POSSIBLE=y
651# CONFIG_MFD_SM501 is not set 677# CONFIG_MFD_SM501 is not set
652# CONFIG_HTC_PASIC3 is not set 678# CONFIG_HTC_PASIC3 is not set
653# CONFIG_MFD_TMIO is not set 679# CONFIG_MFD_TMIO is not set
654
655#
656# Voltage and Current regulators
657#
658# CONFIG_REGULATOR is not set 680# CONFIG_REGULATOR is not set
659# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
660# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
661# CONFIG_REGULATOR_BQ24022 is not set
662 681
663# 682#
664# Multimedia devices 683# Multimedia devices
@@ -714,9 +733,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
714# 733#
715 734
716# 735#
717# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 736# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
718# 737#
719# CONFIG_USB_GADGET is not set 738# CONFIG_USB_GADGET is not set
739
740#
741# OTG and related infrastructure
742#
720# CONFIG_UWB is not set 743# CONFIG_UWB is not set
721# CONFIG_MMC is not set 744# CONFIG_MMC is not set
722# CONFIG_MEMSTICK is not set 745# CONFIG_MEMSTICK is not set
@@ -748,6 +771,7 @@ CONFIG_FS_MBCACHE=y
748CONFIG_FILE_LOCKING=y 771CONFIG_FILE_LOCKING=y
749# CONFIG_XFS_FS is not set 772# CONFIG_XFS_FS is not set
750# CONFIG_OCFS2_FS is not set 773# CONFIG_OCFS2_FS is not set
774# CONFIG_BTRFS_FS is not set
751CONFIG_DNOTIFY=y 775CONFIG_DNOTIFY=y
752CONFIG_INOTIFY=y 776CONFIG_INOTIFY=y
753CONFIG_INOTIFY_USER=y 777CONFIG_INOTIFY_USER=y
@@ -781,10 +805,7 @@ CONFIG_TMPFS=y
781# CONFIG_TMPFS_POSIX_ACL is not set 805# CONFIG_TMPFS_POSIX_ACL is not set
782# CONFIG_HUGETLB_PAGE is not set 806# CONFIG_HUGETLB_PAGE is not set
783# CONFIG_CONFIGFS_FS is not set 807# CONFIG_CONFIGFS_FS is not set
784 808CONFIG_MISC_FILESYSTEMS=y
785#
786# Miscellaneous filesystems
787#
788# CONFIG_ADFS_FS is not set 809# CONFIG_ADFS_FS is not set
789# CONFIG_AFFS_FS is not set 810# CONFIG_AFFS_FS is not set
790# CONFIG_HFS_FS is not set 811# CONFIG_HFS_FS is not set
@@ -793,6 +814,7 @@ CONFIG_TMPFS=y
793# CONFIG_BFS_FS is not set 814# CONFIG_BFS_FS is not set
794# CONFIG_EFS_FS is not set 815# CONFIG_EFS_FS is not set
795# CONFIG_CRAMFS is not set 816# CONFIG_CRAMFS is not set
817# CONFIG_SQUASHFS is not set
796# CONFIG_VXFS_FS is not set 818# CONFIG_VXFS_FS is not set
797# CONFIG_MINIX_FS is not set 819# CONFIG_MINIX_FS is not set
798# CONFIG_OMFS_FS is not set 820# CONFIG_OMFS_FS is not set
@@ -843,6 +865,7 @@ CONFIG_PARTITION_ADVANCED=y
843# Library routines 865# Library routines
844# 866#
845CONFIG_BITREVERSE=y 867CONFIG_BITREVERSE=y
868CONFIG_GENERIC_FIND_LAST_BIT=y
846# CONFIG_CRC_CCITT is not set 869# CONFIG_CRC_CCITT is not set
847# CONFIG_CRC16 is not set 870# CONFIG_CRC16 is not set
848# CONFIG_CRC_T10DIF is not set 871# CONFIG_CRC_T10DIF is not set
@@ -892,6 +915,7 @@ CONFIG_DEBUG_MUTEXES=y
892# CONFIG_DEBUG_MEMORY_INIT is not set 915# CONFIG_DEBUG_MEMORY_INIT is not set
893# CONFIG_DEBUG_LIST is not set 916# CONFIG_DEBUG_LIST is not set
894# CONFIG_DEBUG_SG is not set 917# CONFIG_DEBUG_SG is not set
918# CONFIG_DEBUG_NOTIFIERS is not set
895# CONFIG_BOOT_PRINTK_DELAY is not set 919# CONFIG_BOOT_PRINTK_DELAY is not set
896# CONFIG_RCU_TORTURE_TEST is not set 920# CONFIG_RCU_TORTURE_TEST is not set
897# CONFIG_RCU_CPU_STALL_DETECTOR is not set 921# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -901,6 +925,8 @@ CONFIG_DEBUG_MUTEXES=y
901# CONFIG_LATENCYTOP is not set 925# CONFIG_LATENCYTOP is not set
902CONFIG_SYSCTL_SYSCALL_CHECK=y 926CONFIG_SYSCTL_SYSCALL_CHECK=y
903CONFIG_HAVE_FUNCTION_TRACER=y 927CONFIG_HAVE_FUNCTION_TRACER=y
928CONFIG_HAVE_DYNAMIC_FTRACE=y
929CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
904 930
905# 931#
906# Tracers 932# Tracers
@@ -909,11 +935,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
909# CONFIG_SCHED_TRACER is not set 935# CONFIG_SCHED_TRACER is not set
910# CONFIG_CONTEXT_SWITCH_TRACER is not set 936# CONFIG_CONTEXT_SWITCH_TRACER is not set
911# CONFIG_BOOT_TRACER is not set 937# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set
912# CONFIG_STACK_TRACER is not set 939# CONFIG_STACK_TRACER is not set
913# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
914# CONFIG_SAMPLES is not set 941# CONFIG_SAMPLES is not set
915CONFIG_HAVE_ARCH_KGDB=y 942CONFIG_HAVE_ARCH_KGDB=y
916# CONFIG_KGDB is not set 943# CONFIG_KGDB is not set
944CONFIG_PRINT_STACK_DEPTH=64
917# CONFIG_DEBUG_STACKOVERFLOW is not set 945# CONFIG_DEBUG_STACKOVERFLOW is not set
918# CONFIG_DEBUG_STACK_USAGE is not set 946# CONFIG_DEBUG_STACK_USAGE is not set
919# CONFIG_DEBUG_PAGEALLOC is not set 947# CONFIG_DEBUG_PAGEALLOC is not set
@@ -939,6 +967,7 @@ CONFIG_CRYPTO=y
939# 967#
940# CONFIG_CRYPTO_FIPS is not set 968# CONFIG_CRYPTO_FIPS is not set
941# CONFIG_CRYPTO_MANAGER is not set 969# CONFIG_CRYPTO_MANAGER is not set
970# CONFIG_CRYPTO_MANAGER2 is not set
942# CONFIG_CRYPTO_GF128MUL is not set 971# CONFIG_CRYPTO_GF128MUL is not set
943# CONFIG_CRYPTO_NULL is not set 972# CONFIG_CRYPTO_NULL is not set
944# CONFIG_CRYPTO_CRYPTD is not set 973# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
index 597be8491812..186c1010a135 100644
--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8568mds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:11 2008 4# Mon Jan 26 15:36:10 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 81# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -113,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 115CONFIG_SLUB=y
114# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 120CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,7 +124,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 128CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 129# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +131,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 131# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 132# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 134CONFIG_BLOCK=y
136# CONFIG_LBD is not set 135# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
141 139
@@ -152,6 +150,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_TREE_RCU is not set
154# CONFIG_PREEMPT_RCU is not set
155# CONFIG_TREE_RCU_TRACE is not set
156# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
156 158
157# 159#
@@ -192,6 +194,7 @@ CONFIG_QUICC_ENGINE=y
192# CONFIG_CPM2 is not set 194# CONFIG_CPM2 is not set
193# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
194# CONFIG_MPC8xxx_GPIO is not set 196# CONFIG_MPC8xxx_GPIO is not set
197# CONFIG_SIMPLE_GPIO is not set
195 198
196# 199#
197# Kernel options 200# Kernel options
@@ -230,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set
234# CONFIG_PHYS_ADDR_T_64BIT is not set 236# CONFIG_PHYS_ADDR_T_64BIT is not set
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -260,6 +265,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
260# CONFIG_PCI_MSI is not set 265# CONFIG_PCI_MSI is not set
261# CONFIG_PCI_LEGACY is not set 266# CONFIG_PCI_LEGACY is not set
262# CONFIG_PCI_DEBUG is not set 267# CONFIG_PCI_DEBUG is not set
268# CONFIG_PCI_STUB is not set
263# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
264# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
265# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -283,6 +289,7 @@ CONFIG_NET=y
283# 289#
284# Networking options 290# Networking options
285# 291#
292CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 293CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -339,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_ECONET is not set 346# CONFIG_ECONET is not set
340# CONFIG_WAN_ROUTER is not set 347# CONFIG_WAN_ROUTER is not set
341# CONFIG_NET_SCHED is not set 348# CONFIG_NET_SCHED is not set
349# CONFIG_DCB is not set
342 350
343# 351#
344# Network testing 352# Network testing
@@ -354,8 +362,9 @@ CONFIG_WIRELESS=y
354# CONFIG_CFG80211 is not set 362# CONFIG_CFG80211 is not set
355CONFIG_WIRELESS_OLD_REGULATORY=y 363CONFIG_WIRELESS_OLD_REGULATORY=y
356# CONFIG_WIRELESS_EXT is not set 364# CONFIG_WIRELESS_EXT is not set
365# CONFIG_LIB80211 is not set
357# CONFIG_MAC80211 is not set 366# CONFIG_MAC80211 is not set
358# CONFIG_IEEE80211 is not set 367# CONFIG_WIMAX is not set
359# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
360# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
361 370
@@ -401,8 +410,10 @@ CONFIG_MISC_DEVICES=y
401# CONFIG_EEPROM_93CX6 is not set 410# CONFIG_EEPROM_93CX6 is not set
402# CONFIG_SGI_IOC4 is not set 411# CONFIG_SGI_IOC4 is not set
403# CONFIG_TIFM_CORE is not set 412# CONFIG_TIFM_CORE is not set
413# CONFIG_ICS932S401 is not set
404# CONFIG_ENCLOSURE_SERVICES is not set 414# CONFIG_ENCLOSURE_SERVICES is not set
405# CONFIG_HP_ILO is not set 415# CONFIG_HP_ILO is not set
416# CONFIG_C2PORT is not set
406CONFIG_HAVE_IDE=y 417CONFIG_HAVE_IDE=y
407# CONFIG_IDE is not set 418# CONFIG_IDE is not set
408 419
@@ -445,6 +456,7 @@ CONFIG_SCSI_WAIT_SCAN=m
445# CONFIG_SCSI_SRP_ATTRS is not set 456# CONFIG_SCSI_SRP_ATTRS is not set
446CONFIG_SCSI_LOWLEVEL=y 457CONFIG_SCSI_LOWLEVEL=y
447# CONFIG_ISCSI_TCP is not set 458# CONFIG_ISCSI_TCP is not set
459# CONFIG_SCSI_CXGB3_ISCSI is not set
448# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 460# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
449# CONFIG_SCSI_3W_9XXX is not set 461# CONFIG_SCSI_3W_9XXX is not set
450# CONFIG_SCSI_ACARD is not set 462# CONFIG_SCSI_ACARD is not set
@@ -461,6 +473,8 @@ CONFIG_SCSI_LOWLEVEL=y
461# CONFIG_MEGARAID_SAS is not set 473# CONFIG_MEGARAID_SAS is not set
462# CONFIG_SCSI_HPTIOP is not set 474# CONFIG_SCSI_HPTIOP is not set
463# CONFIG_SCSI_BUSLOGIC is not set 475# CONFIG_SCSI_BUSLOGIC is not set
476# CONFIG_LIBFC is not set
477# CONFIG_FCOE is not set
464# CONFIG_SCSI_DMX3191D is not set 478# CONFIG_SCSI_DMX3191D is not set
465# CONFIG_SCSI_EATA is not set 479# CONFIG_SCSI_EATA is not set
466# CONFIG_SCSI_FUTURE_DOMAIN is not set 480# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -519,6 +533,9 @@ CONFIG_MARVELL_PHY=y
519# CONFIG_BROADCOM_PHY is not set 533# CONFIG_BROADCOM_PHY is not set
520# CONFIG_ICPLUS_PHY is not set 534# CONFIG_ICPLUS_PHY is not set
521# CONFIG_REALTEK_PHY is not set 535# CONFIG_REALTEK_PHY is not set
536# CONFIG_NATIONAL_PHY is not set
537# CONFIG_STE10XP is not set
538# CONFIG_LSI_ET1011C_PHY is not set
522# CONFIG_FIXED_PHY is not set 539# CONFIG_FIXED_PHY is not set
523# CONFIG_MDIO_BITBANG is not set 540# CONFIG_MDIO_BITBANG is not set
524CONFIG_NET_ETHERNET=y 541CONFIG_NET_ETHERNET=y
@@ -564,6 +581,7 @@ CONFIG_GIANFAR=y
564# CONFIG_JME is not set 581# CONFIG_JME is not set
565CONFIG_NETDEV_10000=y 582CONFIG_NETDEV_10000=y
566# CONFIG_CHELSIO_T1 is not set 583# CONFIG_CHELSIO_T1 is not set
584CONFIG_CHELSIO_T3_DEPENDS=y
567# CONFIG_CHELSIO_T3 is not set 585# CONFIG_CHELSIO_T3 is not set
568# CONFIG_ENIC is not set 586# CONFIG_ENIC is not set
569# CONFIG_IXGBE is not set 587# CONFIG_IXGBE is not set
@@ -586,6 +604,10 @@ CONFIG_NETDEV_10000=y
586# CONFIG_WLAN_PRE80211 is not set 604# CONFIG_WLAN_PRE80211 is not set
587# CONFIG_WLAN_80211 is not set 605# CONFIG_WLAN_80211 is not set
588# CONFIG_IWLWIFI_LEDS is not set 606# CONFIG_IWLWIFI_LEDS is not set
607
608#
609# Enable WiMAX (Networking options) to see the WiMAX drivers
610#
589# CONFIG_WAN is not set 611# CONFIG_WAN is not set
590# CONFIG_FDDI is not set 612# CONFIG_FDDI is not set
591# CONFIG_HIPPI is not set 613# CONFIG_HIPPI is not set
@@ -658,8 +680,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
658# CONFIG_SERIAL_OF_PLATFORM is not set 680# CONFIG_SERIAL_OF_PLATFORM is not set
659# CONFIG_SERIAL_QE is not set 681# CONFIG_SERIAL_QE is not set
660CONFIG_UNIX98_PTYS=y 682CONFIG_UNIX98_PTYS=y
683# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
661CONFIG_LEGACY_PTYS=y 684CONFIG_LEGACY_PTYS=y
662CONFIG_LEGACY_PTY_COUNT=256 685CONFIG_LEGACY_PTY_COUNT=256
686# CONFIG_HVC_UDBG is not set
663# CONFIG_IPMI_HANDLER is not set 687# CONFIG_IPMI_HANDLER is not set
664CONFIG_HW_RANDOM=y 688CONFIG_HW_RANDOM=y
665# CONFIG_NVRAM is not set 689# CONFIG_NVRAM is not set
@@ -723,8 +747,8 @@ CONFIG_I2C_MPC=y
723# Miscellaneous I2C Chip support 747# Miscellaneous I2C Chip support
724# 748#
725# CONFIG_DS1682 is not set 749# CONFIG_DS1682 is not set
726# CONFIG_AT24 is not set 750# CONFIG_EEPROM_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set 751# CONFIG_EEPROM_LEGACY is not set
728# CONFIG_SENSORS_PCF8574 is not set 752# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set 753# CONFIG_PCF8575 is not set
730# CONFIG_SENSORS_PCA9539 is not set 754# CONFIG_SENSORS_PCA9539 is not set
@@ -750,8 +774,10 @@ CONFIG_HWMON=y
750# CONFIG_SENSORS_ADM1029 is not set 774# CONFIG_SENSORS_ADM1029 is not set
751# CONFIG_SENSORS_ADM1031 is not set 775# CONFIG_SENSORS_ADM1031 is not set
752# CONFIG_SENSORS_ADM9240 is not set 776# CONFIG_SENSORS_ADM9240 is not set
777# CONFIG_SENSORS_ADT7462 is not set
753# CONFIG_SENSORS_ADT7470 is not set 778# CONFIG_SENSORS_ADT7470 is not set
754# CONFIG_SENSORS_ADT7473 is not set 779# CONFIG_SENSORS_ADT7473 is not set
780# CONFIG_SENSORS_ADT7475 is not set
755# CONFIG_SENSORS_ATXP1 is not set 781# CONFIG_SENSORS_ATXP1 is not set
756# CONFIG_SENSORS_DS1621 is not set 782# CONFIG_SENSORS_DS1621 is not set
757# CONFIG_SENSORS_I5K_AMB is not set 783# CONFIG_SENSORS_I5K_AMB is not set
@@ -772,6 +798,7 @@ CONFIG_HWMON=y
772# CONFIG_SENSORS_LM90 is not set 798# CONFIG_SENSORS_LM90 is not set
773# CONFIG_SENSORS_LM92 is not set 799# CONFIG_SENSORS_LM92 is not set
774# CONFIG_SENSORS_LM93 is not set 800# CONFIG_SENSORS_LM93 is not set
801# CONFIG_SENSORS_LTC4245 is not set
775# CONFIG_SENSORS_MAX1619 is not set 802# CONFIG_SENSORS_MAX1619 is not set
776# CONFIG_SENSORS_MAX6650 is not set 803# CONFIG_SENSORS_MAX6650 is not set
777# CONFIG_SENSORS_PC87360 is not set 804# CONFIG_SENSORS_PC87360 is not set
@@ -812,11 +839,11 @@ CONFIG_WATCHDOG=y
812# 839#
813# CONFIG_PCIPCWATCHDOG is not set 840# CONFIG_PCIPCWATCHDOG is not set
814# CONFIG_WDTPCI is not set 841# CONFIG_WDTPCI is not set
842CONFIG_SSB_POSSIBLE=y
815 843
816# 844#
817# Sonics Silicon Backplane 845# Sonics Silicon Backplane
818# 846#
819CONFIG_SSB_POSSIBLE=y
820# CONFIG_SSB is not set 847# CONFIG_SSB is not set
821 848
822# 849#
@@ -825,18 +852,13 @@ CONFIG_SSB_POSSIBLE=y
825# CONFIG_MFD_CORE is not set 852# CONFIG_MFD_CORE is not set
826# CONFIG_MFD_SM501 is not set 853# CONFIG_MFD_SM501 is not set
827# CONFIG_HTC_PASIC3 is not set 854# CONFIG_HTC_PASIC3 is not set
855# CONFIG_TWL4030_CORE is not set
828# CONFIG_MFD_TMIO is not set 856# CONFIG_MFD_TMIO is not set
829# CONFIG_PMIC_DA903X is not set 857# CONFIG_PMIC_DA903X is not set
830# CONFIG_MFD_WM8400 is not set 858# CONFIG_MFD_WM8400 is not set
831# CONFIG_MFD_WM8350_I2C is not set 859# CONFIG_MFD_WM8350_I2C is not set
832 860# CONFIG_MFD_PCF50633 is not set
833#
834# Voltage and Current regulators
835#
836# CONFIG_REGULATOR is not set 861# CONFIG_REGULATOR is not set
837# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
838# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
839# CONFIG_REGULATOR_BQ24022 is not set
840 862
841# 863#
842# Multimedia devices 864# Multimedia devices
@@ -892,9 +914,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
892# 914#
893 915
894# 916#
895# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 917# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
896# 918#
897# CONFIG_USB_GADGET is not set 919# CONFIG_USB_GADGET is not set
920
921#
922# OTG and related infrastructure
923#
898# CONFIG_UWB is not set 924# CONFIG_UWB is not set
899# CONFIG_MMC is not set 925# CONFIG_MMC is not set
900# CONFIG_MEMSTICK is not set 926# CONFIG_MEMSTICK is not set
@@ -932,6 +958,7 @@ CONFIG_RTC_DRV_DS1374=y
932# CONFIG_RTC_DRV_M41T80 is not set 958# CONFIG_RTC_DRV_M41T80 is not set
933# CONFIG_RTC_DRV_S35390A is not set 959# CONFIG_RTC_DRV_S35390A is not set
934# CONFIG_RTC_DRV_FM3130 is not set 960# CONFIG_RTC_DRV_FM3130 is not set
961# CONFIG_RTC_DRV_RX8581 is not set
935 962
936# 963#
937# SPI RTC drivers 964# SPI RTC drivers
@@ -979,6 +1006,7 @@ CONFIG_FS_MBCACHE=y
979CONFIG_FILE_LOCKING=y 1006CONFIG_FILE_LOCKING=y
980# CONFIG_XFS_FS is not set 1007# CONFIG_XFS_FS is not set
981# CONFIG_OCFS2_FS is not set 1008# CONFIG_OCFS2_FS is not set
1009# CONFIG_BTRFS_FS is not set
982CONFIG_DNOTIFY=y 1010CONFIG_DNOTIFY=y
983CONFIG_INOTIFY=y 1011CONFIG_INOTIFY=y
984CONFIG_INOTIFY_USER=y 1012CONFIG_INOTIFY_USER=y
@@ -1012,10 +1040,7 @@ CONFIG_TMPFS=y
1012# CONFIG_TMPFS_POSIX_ACL is not set 1040# CONFIG_TMPFS_POSIX_ACL is not set
1013# CONFIG_HUGETLB_PAGE is not set 1041# CONFIG_HUGETLB_PAGE is not set
1014# CONFIG_CONFIGFS_FS is not set 1042# CONFIG_CONFIGFS_FS is not set
1015 1043CONFIG_MISC_FILESYSTEMS=y
1016#
1017# Miscellaneous filesystems
1018#
1019# CONFIG_ADFS_FS is not set 1044# CONFIG_ADFS_FS is not set
1020# CONFIG_AFFS_FS is not set 1045# CONFIG_AFFS_FS is not set
1021# CONFIG_HFS_FS is not set 1046# CONFIG_HFS_FS is not set
@@ -1024,6 +1049,7 @@ CONFIG_TMPFS=y
1024# CONFIG_BFS_FS is not set 1049# CONFIG_BFS_FS is not set
1025# CONFIG_EFS_FS is not set 1050# CONFIG_EFS_FS is not set
1026# CONFIG_CRAMFS is not set 1051# CONFIG_CRAMFS is not set
1052# CONFIG_SQUASHFS is not set
1027# CONFIG_VXFS_FS is not set 1053# CONFIG_VXFS_FS is not set
1028# CONFIG_MINIX_FS is not set 1054# CONFIG_MINIX_FS is not set
1029# CONFIG_OMFS_FS is not set 1055# CONFIG_OMFS_FS is not set
@@ -1077,6 +1103,7 @@ CONFIG_PARTITION_ADVANCED=y
1077# Library routines 1103# Library routines
1078# 1104#
1079CONFIG_BITREVERSE=y 1105CONFIG_BITREVERSE=y
1106CONFIG_GENERIC_FIND_LAST_BIT=y
1080# CONFIG_CRC_CCITT is not set 1107# CONFIG_CRC_CCITT is not set
1081# CONFIG_CRC16 is not set 1108# CONFIG_CRC16 is not set
1082# CONFIG_CRC_T10DIF is not set 1109# CONFIG_CRC_T10DIF is not set
@@ -1126,6 +1153,7 @@ CONFIG_SCHED_DEBUG=y
1126# CONFIG_DEBUG_MEMORY_INIT is not set 1153# CONFIG_DEBUG_MEMORY_INIT is not set
1127# CONFIG_DEBUG_LIST is not set 1154# CONFIG_DEBUG_LIST is not set
1128# CONFIG_DEBUG_SG is not set 1155# CONFIG_DEBUG_SG is not set
1156# CONFIG_DEBUG_NOTIFIERS is not set
1129# CONFIG_BOOT_PRINTK_DELAY is not set 1157# CONFIG_BOOT_PRINTK_DELAY is not set
1130# CONFIG_RCU_TORTURE_TEST is not set 1158# CONFIG_RCU_TORTURE_TEST is not set
1131# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1159# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1135,6 +1163,8 @@ CONFIG_SCHED_DEBUG=y
1135# CONFIG_LATENCYTOP is not set 1163# CONFIG_LATENCYTOP is not set
1136CONFIG_SYSCTL_SYSCALL_CHECK=y 1164CONFIG_SYSCTL_SYSCALL_CHECK=y
1137CONFIG_HAVE_FUNCTION_TRACER=y 1165CONFIG_HAVE_FUNCTION_TRACER=y
1166CONFIG_HAVE_DYNAMIC_FTRACE=y
1167CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1138 1168
1139# 1169#
1140# Tracers 1170# Tracers
@@ -1143,11 +1173,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1143# CONFIG_SCHED_TRACER is not set 1173# CONFIG_SCHED_TRACER is not set
1144# CONFIG_CONTEXT_SWITCH_TRACER is not set 1174# CONFIG_CONTEXT_SWITCH_TRACER is not set
1145# CONFIG_BOOT_TRACER is not set 1175# CONFIG_BOOT_TRACER is not set
1176# CONFIG_TRACE_BRANCH_PROFILING is not set
1146# CONFIG_STACK_TRACER is not set 1177# CONFIG_STACK_TRACER is not set
1147# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1178# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1148# CONFIG_SAMPLES is not set 1179# CONFIG_SAMPLES is not set
1149CONFIG_HAVE_ARCH_KGDB=y 1180CONFIG_HAVE_ARCH_KGDB=y
1150# CONFIG_KGDB is not set 1181# CONFIG_KGDB is not set
1182CONFIG_PRINT_STACK_DEPTH=64
1151# CONFIG_DEBUG_STACKOVERFLOW is not set 1183# CONFIG_DEBUG_STACKOVERFLOW is not set
1152# CONFIG_DEBUG_STACK_USAGE is not set 1184# CONFIG_DEBUG_STACK_USAGE is not set
1153# CONFIG_DEBUG_PAGEALLOC is not set 1185# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1184,11 +1216,15 @@ CONFIG_CRYPTO=y
1184# 1216#
1185# CONFIG_CRYPTO_FIPS is not set 1217# CONFIG_CRYPTO_FIPS is not set
1186CONFIG_CRYPTO_ALGAPI=y 1218CONFIG_CRYPTO_ALGAPI=y
1187CONFIG_CRYPTO_AEAD=y 1219CONFIG_CRYPTO_ALGAPI2=y
1220CONFIG_CRYPTO_AEAD2=y
1188CONFIG_CRYPTO_BLKCIPHER=y 1221CONFIG_CRYPTO_BLKCIPHER=y
1222CONFIG_CRYPTO_BLKCIPHER2=y
1189CONFIG_CRYPTO_HASH=y 1223CONFIG_CRYPTO_HASH=y
1190CONFIG_CRYPTO_RNG=y 1224CONFIG_CRYPTO_HASH2=y
1225CONFIG_CRYPTO_RNG2=y
1191CONFIG_CRYPTO_MANAGER=y 1226CONFIG_CRYPTO_MANAGER=y
1227CONFIG_CRYPTO_MANAGER2=y
1192# CONFIG_CRYPTO_GF128MUL is not set 1228# CONFIG_CRYPTO_GF128MUL is not set
1193# CONFIG_CRYPTO_NULL is not set 1229# CONFIG_CRYPTO_NULL is not set
1194# CONFIG_CRYPTO_CRYPTD is not set 1230# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
index 32aeb79216f7..813223ae174d 100644
--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8572_ds_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.28-rc8 3# Linux kernel version: 2.6.29-rc2
4# Tue Dec 30 11:17:46 2008 4# Mon Jan 26 15:36:12 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -48,7 +48,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
48CONFIG_PPC=y 48CONFIG_PPC=y
49CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
50CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
51CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
52CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
53CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
54CONFIG_OF=y 54CONFIG_OF=y
@@ -81,12 +81,12 @@ CONFIG_AUDIT=y
81CONFIG_IKCONFIG=y 81CONFIG_IKCONFIG=y
82CONFIG_IKCONFIG_PROC=y 82CONFIG_IKCONFIG_PROC=y
83CONFIG_LOG_BUF_SHIFT=14 83CONFIG_LOG_BUF_SHIFT=14
84# CONFIG_CGROUPS is not set
85CONFIG_GROUP_SCHED=y 84CONFIG_GROUP_SCHED=y
86# CONFIG_FAIR_GROUP_SCHED is not set 85# CONFIG_FAIR_GROUP_SCHED is not set
87# CONFIG_RT_GROUP_SCHED is not set 86# CONFIG_RT_GROUP_SCHED is not set
88CONFIG_USER_SCHED=y 87CONFIG_USER_SCHED=y
89# CONFIG_CGROUP_SCHED is not set 88# CONFIG_CGROUP_SCHED is not set
89# CONFIG_CGROUPS is not set
90CONFIG_SYSFS_DEPRECATED=y 90CONFIG_SYSFS_DEPRECATED=y
91CONFIG_SYSFS_DEPRECATED_V2=y 91CONFIG_SYSFS_DEPRECATED_V2=y
92# CONFIG_RELAY is not set 92# CONFIG_RELAY is not set
@@ -99,6 +99,7 @@ CONFIG_EMBEDDED=y
99CONFIG_SYSCTL_SYSCALL=y 99CONFIG_SYSCTL_SYSCALL=y
100CONFIG_KALLSYMS=y 100CONFIG_KALLSYMS=y
101CONFIG_KALLSYMS_ALL=y 101CONFIG_KALLSYMS_ALL=y
102CONFIG_KALLSYMS_STRIP_GENERATED=y
102CONFIG_KALLSYMS_EXTRA_PASS=y 103CONFIG_KALLSYMS_EXTRA_PASS=y
103CONFIG_HOTPLUG=y 104CONFIG_HOTPLUG=y
104CONFIG_PRINTK=y 105CONFIG_PRINTK=y
@@ -121,7 +122,6 @@ CONFIG_SLUB_DEBUG=y
121CONFIG_SLUB=y 122CONFIG_SLUB=y
122# CONFIG_SLOB is not set 123# CONFIG_SLOB is not set
123# CONFIG_PROFILING is not set 124# CONFIG_PROFILING is not set
124# CONFIG_MARKERS is not set
125CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
126# CONFIG_KPROBES is not set 126# CONFIG_KPROBES is not set
127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -133,7 +133,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
134CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
135CONFIG_RT_MUTEXES=y 135CONFIG_RT_MUTEXES=y
136# CONFIG_TINY_SHMEM is not set
137CONFIG_BASE_SMALL=0 136CONFIG_BASE_SMALL=0
138CONFIG_MODULES=y 137CONFIG_MODULES=y
139# CONFIG_MODULE_FORCE_LOAD is not set 138# CONFIG_MODULE_FORCE_LOAD is not set
@@ -141,12 +140,10 @@ CONFIG_MODULE_UNLOAD=y
141CONFIG_MODULE_FORCE_UNLOAD=y 140CONFIG_MODULE_FORCE_UNLOAD=y
142CONFIG_MODVERSIONS=y 141CONFIG_MODVERSIONS=y
143# CONFIG_MODULE_SRCVERSION_ALL is not set 142# CONFIG_MODULE_SRCVERSION_ALL is not set
144CONFIG_KMOD=y
145CONFIG_STOP_MACHINE=y 143CONFIG_STOP_MACHINE=y
146CONFIG_BLOCK=y 144CONFIG_BLOCK=y
147CONFIG_LBD=y 145CONFIG_LBD=y
148# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
149# CONFIG_LSF is not set
150# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
151# CONFIG_BLK_DEV_INTEGRITY is not set 148# CONFIG_BLK_DEV_INTEGRITY is not set
152 149
@@ -163,6 +160,10 @@ CONFIG_DEFAULT_CFQ=y
163# CONFIG_DEFAULT_NOOP is not set 160# CONFIG_DEFAULT_NOOP is not set
164CONFIG_DEFAULT_IOSCHED="cfq" 161CONFIG_DEFAULT_IOSCHED="cfq"
165CONFIG_CLASSIC_RCU=y 162CONFIG_CLASSIC_RCU=y
163# CONFIG_TREE_RCU is not set
164# CONFIG_PREEMPT_RCU is not set
165# CONFIG_TREE_RCU_TRACE is not set
166# CONFIG_PREEMPT_RCU_TRACE is not set
166# CONFIG_FREEZER is not set 167# CONFIG_FREEZER is not set
167 168
168# 169#
@@ -242,7 +243,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
242CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
243CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
244CONFIG_MIGRATION=y 245CONFIG_MIGRATION=y
245# CONFIG_RESOURCES_64BIT is not set
246# CONFIG_PHYS_ADDR_T_64BIT is not set 246# CONFIG_PHYS_ADDR_T_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -276,6 +276,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
276# CONFIG_PCI_MSI is not set 276# CONFIG_PCI_MSI is not set
277# CONFIG_PCI_LEGACY is not set 277# CONFIG_PCI_LEGACY is not set
278# CONFIG_PCI_DEBUG is not set 278# CONFIG_PCI_DEBUG is not set
279# CONFIG_PCI_STUB is not set
279# CONFIG_PCCARD is not set 280# CONFIG_PCCARD is not set
280# CONFIG_HOTPLUG_PCI is not set 281# CONFIG_HOTPLUG_PCI is not set
281# CONFIG_HAS_RAPIDIO is not set 282# CONFIG_HAS_RAPIDIO is not set
@@ -299,6 +300,7 @@ CONFIG_NET=y
299# 300#
300# Networking options 301# Networking options
301# 302#
303CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 304CONFIG_PACKET=y
303# CONFIG_PACKET_MMAP is not set 305# CONFIG_PACKET_MMAP is not set
304CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -387,6 +389,7 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_ECONET is not set 389# CONFIG_ECONET is not set
388# CONFIG_WAN_ROUTER is not set 390# CONFIG_WAN_ROUTER is not set
389# CONFIG_NET_SCHED is not set 391# CONFIG_NET_SCHED is not set
392# CONFIG_DCB is not set
390 393
391# 394#
392# Network testing 395# Network testing
@@ -403,8 +406,9 @@ CONFIG_WIRELESS=y
403# CONFIG_CFG80211 is not set 406# CONFIG_CFG80211 is not set
404CONFIG_WIRELESS_OLD_REGULATORY=y 407CONFIG_WIRELESS_OLD_REGULATORY=y
405# CONFIG_WIRELESS_EXT is not set 408# CONFIG_WIRELESS_EXT is not set
409# CONFIG_LIB80211 is not set
406# CONFIG_MAC80211 is not set 410# CONFIG_MAC80211 is not set
407# CONFIG_IEEE80211 is not set 411# CONFIG_WIMAX is not set
408# CONFIG_RFKILL is not set 412# CONFIG_RFKILL is not set
409# CONFIG_NET_9P is not set 413# CONFIG_NET_9P is not set
410 414
@@ -500,6 +504,7 @@ CONFIG_SCSI_WAIT_SCAN=m
500# CONFIG_SCSI_SRP_ATTRS is not set 504# CONFIG_SCSI_SRP_ATTRS is not set
501CONFIG_SCSI_LOWLEVEL=y 505CONFIG_SCSI_LOWLEVEL=y
502# CONFIG_ISCSI_TCP is not set 506# CONFIG_ISCSI_TCP is not set
507# CONFIG_SCSI_CXGB3_ISCSI is not set
503# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 508# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
504# CONFIG_SCSI_3W_9XXX is not set 509# CONFIG_SCSI_3W_9XXX is not set
505# CONFIG_SCSI_ACARD is not set 510# CONFIG_SCSI_ACARD is not set
@@ -516,6 +521,8 @@ CONFIG_SCSI_LOWLEVEL=y
516# CONFIG_MEGARAID_SAS is not set 521# CONFIG_MEGARAID_SAS is not set
517# CONFIG_SCSI_HPTIOP is not set 522# CONFIG_SCSI_HPTIOP is not set
518# CONFIG_SCSI_BUSLOGIC is not set 523# CONFIG_SCSI_BUSLOGIC is not set
524# CONFIG_LIBFC is not set
525# CONFIG_FCOE is not set
519# CONFIG_SCSI_DMX3191D is not set 526# CONFIG_SCSI_DMX3191D is not set
520# CONFIG_SCSI_EATA is not set 527# CONFIG_SCSI_EATA is not set
521# CONFIG_SCSI_FUTURE_DOMAIN is not set 528# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -635,6 +642,9 @@ CONFIG_VITESSE_PHY=y
635# CONFIG_BROADCOM_PHY is not set 642# CONFIG_BROADCOM_PHY is not set
636# CONFIG_ICPLUS_PHY is not set 643# CONFIG_ICPLUS_PHY is not set
637# CONFIG_REALTEK_PHY is not set 644# CONFIG_REALTEK_PHY is not set
645# CONFIG_NATIONAL_PHY is not set
646# CONFIG_STE10XP is not set
647# CONFIG_LSI_ET1011C_PHY is not set
638# CONFIG_FIXED_PHY is not set 648# CONFIG_FIXED_PHY is not set
639# CONFIG_MDIO_BITBANG is not set 649# CONFIG_MDIO_BITBANG is not set
640CONFIG_NET_ETHERNET=y 650CONFIG_NET_ETHERNET=y
@@ -679,6 +689,7 @@ CONFIG_GIANFAR=y
679# CONFIG_JME is not set 689# CONFIG_JME is not set
680CONFIG_NETDEV_10000=y 690CONFIG_NETDEV_10000=y
681# CONFIG_CHELSIO_T1 is not set 691# CONFIG_CHELSIO_T1 is not set
692CONFIG_CHELSIO_T3_DEPENDS=y
682# CONFIG_CHELSIO_T3 is not set 693# CONFIG_CHELSIO_T3 is not set
683# CONFIG_ENIC is not set 694# CONFIG_ENIC is not set
684# CONFIG_IXGBE is not set 695# CONFIG_IXGBE is not set
@@ -703,6 +714,10 @@ CONFIG_NETDEV_10000=y
703# CONFIG_IWLWIFI_LEDS is not set 714# CONFIG_IWLWIFI_LEDS is not set
704 715
705# 716#
717# Enable WiMAX (Networking options) to see the WiMAX drivers
718#
719
720#
706# USB Network Adapters 721# USB Network Adapters
707# 722#
708# CONFIG_USB_CATC is not set 723# CONFIG_USB_CATC is not set
@@ -794,6 +809,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
794# CONFIG_SERIAL_JSM is not set 809# CONFIG_SERIAL_JSM is not set
795# CONFIG_SERIAL_OF_PLATFORM is not set 810# CONFIG_SERIAL_OF_PLATFORM is not set
796CONFIG_UNIX98_PTYS=y 811CONFIG_UNIX98_PTYS=y
812# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
797CONFIG_LEGACY_PTYS=y 813CONFIG_LEGACY_PTYS=y
798CONFIG_LEGACY_PTY_COUNT=256 814CONFIG_LEGACY_PTY_COUNT=256
799# CONFIG_HVC_UDBG is not set 815# CONFIG_HVC_UDBG is not set
@@ -861,8 +877,8 @@ CONFIG_I2C_MPC=y
861# Miscellaneous I2C Chip support 877# Miscellaneous I2C Chip support
862# 878#
863# CONFIG_DS1682 is not set 879# CONFIG_DS1682 is not set
864# CONFIG_AT24 is not set 880# CONFIG_EEPROM_AT24 is not set
865CONFIG_SENSORS_EEPROM=y 881CONFIG_EEPROM_LEGACY=y
866# CONFIG_SENSORS_PCF8574 is not set 882# CONFIG_SENSORS_PCF8574 is not set
867# CONFIG_PCF8575 is not set 883# CONFIG_PCF8575 is not set
868# CONFIG_SENSORS_PCA9539 is not set 884# CONFIG_SENSORS_PCA9539 is not set
@@ -895,10 +911,12 @@ CONFIG_SSB_POSSIBLE=y
895# CONFIG_MFD_CORE is not set 911# CONFIG_MFD_CORE is not set
896# CONFIG_MFD_SM501 is not set 912# CONFIG_MFD_SM501 is not set
897# CONFIG_HTC_PASIC3 is not set 913# CONFIG_HTC_PASIC3 is not set
914# CONFIG_TWL4030_CORE is not set
898# CONFIG_MFD_TMIO is not set 915# CONFIG_MFD_TMIO is not set
899# CONFIG_PMIC_DA903X is not set 916# CONFIG_PMIC_DA903X is not set
900# CONFIG_MFD_WM8400 is not set 917# CONFIG_MFD_WM8400 is not set
901# CONFIG_MFD_WM8350_I2C is not set 918# CONFIG_MFD_WM8350_I2C is not set
919# CONFIG_MFD_PCF50633 is not set
902# CONFIG_REGULATOR is not set 920# CONFIG_REGULATOR is not set
903 921
904# 922#
@@ -926,6 +944,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
926CONFIG_MEDIA_TUNER_MT20XX=m 944CONFIG_MEDIA_TUNER_MT20XX=m
927CONFIG_MEDIA_TUNER_XC2028=m 945CONFIG_MEDIA_TUNER_XC2028=m
928CONFIG_MEDIA_TUNER_XC5000=m 946CONFIG_MEDIA_TUNER_XC5000=m
947# CONFIG_DVB_DYNAMIC_MINORS is not set
929CONFIG_DVB_CAPTURE_DRIVERS=y 948CONFIG_DVB_CAPTURE_DRIVERS=y
930 949
931# 950#
@@ -971,6 +990,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
971# CONFIG_DVB_FE_CUSTOMISE is not set 990# CONFIG_DVB_FE_CUSTOMISE is not set
972 991
973# 992#
993# Multistandard (satellite) frontends
994#
995# CONFIG_DVB_STB0899 is not set
996# CONFIG_DVB_STB6100 is not set
997
998#
974# DVB-S (satellite) frontends 999# DVB-S (satellite) frontends
975# 1000#
976# CONFIG_DVB_CX24110 is not set 1001# CONFIG_DVB_CX24110 is not set
@@ -982,8 +1007,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
982# CONFIG_DVB_STV0299 is not set 1007# CONFIG_DVB_STV0299 is not set
983# CONFIG_DVB_TDA8083 is not set 1008# CONFIG_DVB_TDA8083 is not set
984# CONFIG_DVB_TDA10086 is not set 1009# CONFIG_DVB_TDA10086 is not set
1010# CONFIG_DVB_TDA8261 is not set
985# CONFIG_DVB_VES1X93 is not set 1011# CONFIG_DVB_VES1X93 is not set
986# CONFIG_DVB_TUNER_ITD1000 is not set 1012# CONFIG_DVB_TUNER_ITD1000 is not set
1013# CONFIG_DVB_TUNER_CX24113 is not set
987# CONFIG_DVB_TDA826X is not set 1014# CONFIG_DVB_TDA826X is not set
988# CONFIG_DVB_TUA6100 is not set 1015# CONFIG_DVB_TUA6100 is not set
989# CONFIG_DVB_CX24116 is not set 1016# CONFIG_DVB_CX24116 is not set
@@ -1024,11 +1051,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1024# CONFIG_DVB_OR51132 is not set 1051# CONFIG_DVB_OR51132 is not set
1025# CONFIG_DVB_BCM3510 is not set 1052# CONFIG_DVB_BCM3510 is not set
1026# CONFIG_DVB_LGDT330X is not set 1053# CONFIG_DVB_LGDT330X is not set
1054# CONFIG_DVB_LGDT3304 is not set
1027# CONFIG_DVB_S5H1409 is not set 1055# CONFIG_DVB_S5H1409 is not set
1028# CONFIG_DVB_AU8522 is not set 1056# CONFIG_DVB_AU8522 is not set
1029# CONFIG_DVB_S5H1411 is not set 1057# CONFIG_DVB_S5H1411 is not set
1030 1058
1031# 1059#
1060# ISDB-T (terrestrial) frontends
1061#
1062# CONFIG_DVB_S921 is not set
1063
1064#
1032# Digital terrestrial only tuners/PLL 1065# Digital terrestrial only tuners/PLL
1033# 1066#
1034# CONFIG_DVB_PLL is not set 1067# CONFIG_DVB_PLL is not set
@@ -1081,6 +1114,7 @@ CONFIG_SND_OSSEMUL=y
1081CONFIG_SND_MIXER_OSS=y 1114CONFIG_SND_MIXER_OSS=y
1082CONFIG_SND_PCM_OSS=y 1115CONFIG_SND_PCM_OSS=y
1083CONFIG_SND_PCM_OSS_PLUGINS=y 1116CONFIG_SND_PCM_OSS_PLUGINS=y
1117# CONFIG_SND_HRTIMER is not set
1084# CONFIG_SND_DYNAMIC_MINORS is not set 1118# CONFIG_SND_DYNAMIC_MINORS is not set
1085# CONFIG_SND_SUPPORT_OLD_API is not set 1119# CONFIG_SND_SUPPORT_OLD_API is not set
1086CONFIG_SND_VERBOSE_PROCFS=y 1120CONFIG_SND_VERBOSE_PROCFS=y
@@ -1183,11 +1217,9 @@ CONFIG_HID_COMPAT=y
1183CONFIG_HID_A4TECH=y 1217CONFIG_HID_A4TECH=y
1184CONFIG_HID_APPLE=y 1218CONFIG_HID_APPLE=y
1185CONFIG_HID_BELKIN=y 1219CONFIG_HID_BELKIN=y
1186CONFIG_HID_BRIGHT=y
1187CONFIG_HID_CHERRY=y 1220CONFIG_HID_CHERRY=y
1188CONFIG_HID_CHICONY=y 1221CONFIG_HID_CHICONY=y
1189CONFIG_HID_CYPRESS=y 1222CONFIG_HID_CYPRESS=y
1190CONFIG_HID_DELL=y
1191CONFIG_HID_EZKEY=y 1223CONFIG_HID_EZKEY=y
1192CONFIG_HID_GYRATION=y 1224CONFIG_HID_GYRATION=y
1193CONFIG_HID_LOGITECH=y 1225CONFIG_HID_LOGITECH=y
@@ -1195,12 +1227,15 @@ CONFIG_HID_LOGITECH=y
1195# CONFIG_LOGIRUMBLEPAD2_FF is not set 1227# CONFIG_LOGIRUMBLEPAD2_FF is not set
1196CONFIG_HID_MICROSOFT=y 1228CONFIG_HID_MICROSOFT=y
1197CONFIG_HID_MONTEREY=y 1229CONFIG_HID_MONTEREY=y
1230# CONFIG_HID_NTRIG is not set
1198CONFIG_HID_PANTHERLORD=y 1231CONFIG_HID_PANTHERLORD=y
1199# CONFIG_PANTHERLORD_FF is not set 1232# CONFIG_PANTHERLORD_FF is not set
1200CONFIG_HID_PETALYNX=y 1233CONFIG_HID_PETALYNX=y
1201CONFIG_HID_SAMSUNG=y 1234CONFIG_HID_SAMSUNG=y
1202CONFIG_HID_SONY=y 1235CONFIG_HID_SONY=y
1203CONFIG_HID_SUNPLUS=y 1236CONFIG_HID_SUNPLUS=y
1237# CONFIG_GREENASIA_FF is not set
1238# CONFIG_HID_TOPSEED is not set
1204CONFIG_THRUSTMASTER_FF=m 1239CONFIG_THRUSTMASTER_FF=m
1205CONFIG_ZEROPLUS_FF=m 1240CONFIG_ZEROPLUS_FF=m
1206CONFIG_USB_SUPPORT=y 1241CONFIG_USB_SUPPORT=y
@@ -1233,6 +1268,7 @@ CONFIG_USB_EHCI_HCD=y
1233# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1268# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1234# CONFIG_USB_EHCI_FSL is not set 1269# CONFIG_USB_EHCI_FSL is not set
1235CONFIG_USB_EHCI_HCD_PPC_OF=y 1270CONFIG_USB_EHCI_HCD_PPC_OF=y
1271# CONFIG_USB_OXU210HP_HCD is not set
1236# CONFIG_USB_ISP116X_HCD is not set 1272# CONFIG_USB_ISP116X_HCD is not set
1237# CONFIG_USB_ISP1760_HCD is not set 1273# CONFIG_USB_ISP1760_HCD is not set
1238CONFIG_USB_OHCI_HCD=y 1274CONFIG_USB_OHCI_HCD=y
@@ -1269,7 +1305,6 @@ CONFIG_USB_STORAGE=y
1269# CONFIG_USB_STORAGE_DATAFAB is not set 1305# CONFIG_USB_STORAGE_DATAFAB is not set
1270# CONFIG_USB_STORAGE_FREECOM is not set 1306# CONFIG_USB_STORAGE_FREECOM is not set
1271# CONFIG_USB_STORAGE_ISD200 is not set 1307# CONFIG_USB_STORAGE_ISD200 is not set
1272# CONFIG_USB_STORAGE_DPCM is not set
1273# CONFIG_USB_STORAGE_USBAT is not set 1308# CONFIG_USB_STORAGE_USBAT is not set
1274# CONFIG_USB_STORAGE_SDDR09 is not set 1309# CONFIG_USB_STORAGE_SDDR09 is not set
1275# CONFIG_USB_STORAGE_SDDR55 is not set 1310# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1317,6 +1352,10 @@ CONFIG_USB_STORAGE=y
1317# CONFIG_USB_ISIGHTFW is not set 1352# CONFIG_USB_ISIGHTFW is not set
1318# CONFIG_USB_VST is not set 1353# CONFIG_USB_VST is not set
1319# CONFIG_USB_GADGET is not set 1354# CONFIG_USB_GADGET is not set
1355
1356#
1357# OTG and related infrastructure
1358#
1320# CONFIG_UWB is not set 1359# CONFIG_UWB is not set
1321# CONFIG_MMC is not set 1360# CONFIG_MMC is not set
1322# CONFIG_MEMSTICK is not set 1361# CONFIG_MEMSTICK is not set
@@ -1401,7 +1440,9 @@ CONFIG_FS_MBCACHE=y
1401# CONFIG_FS_POSIX_ACL is not set 1440# CONFIG_FS_POSIX_ACL is not set
1402CONFIG_FILE_LOCKING=y 1441CONFIG_FILE_LOCKING=y
1403# CONFIG_XFS_FS is not set 1442# CONFIG_XFS_FS is not set
1443# CONFIG_GFS2_FS is not set
1404# CONFIG_OCFS2_FS is not set 1444# CONFIG_OCFS2_FS is not set
1445# CONFIG_BTRFS_FS is not set
1405CONFIG_DNOTIFY=y 1446CONFIG_DNOTIFY=y
1406CONFIG_INOTIFY=y 1447CONFIG_INOTIFY=y
1407CONFIG_INOTIFY_USER=y 1448CONFIG_INOTIFY_USER=y
@@ -1443,10 +1484,7 @@ CONFIG_TMPFS=y
1443# CONFIG_TMPFS_POSIX_ACL is not set 1484# CONFIG_TMPFS_POSIX_ACL is not set
1444# CONFIG_HUGETLB_PAGE is not set 1485# CONFIG_HUGETLB_PAGE is not set
1445# CONFIG_CONFIGFS_FS is not set 1486# CONFIG_CONFIGFS_FS is not set
1446 1487CONFIG_MISC_FILESYSTEMS=y
1447#
1448# Miscellaneous filesystems
1449#
1450CONFIG_ADFS_FS=m 1488CONFIG_ADFS_FS=m
1451# CONFIG_ADFS_FS_RW is not set 1489# CONFIG_ADFS_FS_RW is not set
1452CONFIG_AFFS_FS=m 1490CONFIG_AFFS_FS=m
@@ -1457,6 +1495,7 @@ CONFIG_BEFS_FS=m
1457CONFIG_BFS_FS=m 1495CONFIG_BFS_FS=m
1458CONFIG_EFS_FS=m 1496CONFIG_EFS_FS=m
1459CONFIG_CRAMFS=y 1497CONFIG_CRAMFS=y
1498# CONFIG_SQUASHFS is not set
1460CONFIG_VXFS_FS=m 1499CONFIG_VXFS_FS=m
1461# CONFIG_MINIX_FS is not set 1500# CONFIG_MINIX_FS is not set
1462# CONFIG_OMFS_FS is not set 1501# CONFIG_OMFS_FS is not set
@@ -1558,6 +1597,7 @@ CONFIG_NLS_UTF8=m
1558# Library routines 1597# Library routines
1559# 1598#
1560CONFIG_BITREVERSE=y 1599CONFIG_BITREVERSE=y
1600CONFIG_GENERIC_FIND_LAST_BIT=y
1561# CONFIG_CRC_CCITT is not set 1601# CONFIG_CRC_CCITT is not set
1562# CONFIG_CRC16 is not set 1602# CONFIG_CRC16 is not set
1563CONFIG_CRC_T10DIF=y 1603CONFIG_CRC_T10DIF=y
@@ -1609,6 +1649,7 @@ CONFIG_DEBUG_INFO=y
1609# CONFIG_DEBUG_MEMORY_INIT is not set 1649# CONFIG_DEBUG_MEMORY_INIT is not set
1610# CONFIG_DEBUG_LIST is not set 1650# CONFIG_DEBUG_LIST is not set
1611# CONFIG_DEBUG_SG is not set 1651# CONFIG_DEBUG_SG is not set
1652# CONFIG_DEBUG_NOTIFIERS is not set
1612# CONFIG_BOOT_PRINTK_DELAY is not set 1653# CONFIG_BOOT_PRINTK_DELAY is not set
1613# CONFIG_RCU_TORTURE_TEST is not set 1654# CONFIG_RCU_TORTURE_TEST is not set
1614# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1655# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1618,6 +1659,8 @@ CONFIG_DEBUG_INFO=y
1618# CONFIG_LATENCYTOP is not set 1659# CONFIG_LATENCYTOP is not set
1619CONFIG_SYSCTL_SYSCALL_CHECK=y 1660CONFIG_SYSCTL_SYSCALL_CHECK=y
1620CONFIG_HAVE_FUNCTION_TRACER=y 1661CONFIG_HAVE_FUNCTION_TRACER=y
1662CONFIG_HAVE_DYNAMIC_FTRACE=y
1663CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1621 1664
1622# 1665#
1623# Tracers 1666# Tracers
@@ -1626,6 +1669,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1626# CONFIG_SCHED_TRACER is not set 1669# CONFIG_SCHED_TRACER is not set
1627# CONFIG_CONTEXT_SWITCH_TRACER is not set 1670# CONFIG_CONTEXT_SWITCH_TRACER is not set
1628# CONFIG_BOOT_TRACER is not set 1671# CONFIG_BOOT_TRACER is not set
1672# CONFIG_TRACE_BRANCH_PROFILING is not set
1629# CONFIG_STACK_TRACER is not set 1673# CONFIG_STACK_TRACER is not set
1630# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1674# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1631# CONFIG_SAMPLES is not set 1675# CONFIG_SAMPLES is not set
@@ -1700,7 +1744,7 @@ CONFIG_CRYPTO_HMAC=y
1700# 1744#
1701# Digest 1745# Digest
1702# 1746#
1703# CONFIG_CRYPTO_CRC32C is not set 1747CONFIG_CRYPTO_CRC32C=m
1704# CONFIG_CRYPTO_MD4 is not set 1748# CONFIG_CRYPTO_MD4 is not set
1705CONFIG_CRYPTO_MD5=y 1749CONFIG_CRYPTO_MD5=y
1706# CONFIG_CRYPTO_MICHAEL_MIC is not set 1750# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index 8769359dfe6a..f95961c04a20 100644
--- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc85xx_cds_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:14 2008 4# Mon Jan 26 15:36:13 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 81# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -115,7 +117,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 117CONFIG_SLUB=y
116# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 122CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,13 +126,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 130# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 131CONFIG_BLOCK=y
132# CONFIG_LBD is not set 132# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
137 136
@@ -148,6 +147,10 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
152 155
153# 156#
@@ -187,6 +190,7 @@ CONFIG_PPC_I8259=y
187# CONFIG_CPM2 is not set 190# CONFIG_CPM2 is not set
188# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
189# CONFIG_MPC8xxx_GPIO is not set 192# CONFIG_MPC8xxx_GPIO is not set
193# CONFIG_SIMPLE_GPIO is not set
190 194
191# 195#
192# Kernel options 196# Kernel options
@@ -225,12 +229,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 231CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set 232# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 236CONFIG_UNEVICTABLE_LRU=y
237CONFIG_PPC_4K_PAGES=y
238# CONFIG_PPC_16K_PAGES is not set
239# CONFIG_PPC_64K_PAGES is not set
234CONFIG_FORCE_MAX_ZONEORDER=11 240CONFIG_FORCE_MAX_ZONEORDER=11
235CONFIG_PROC_DEVICETREE=y 241CONFIG_PROC_DEVICETREE=y
236# CONFIG_CMDLINE_BOOL is not set 242# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 261# CONFIG_PCI_MSI is not set
256# CONFIG_PCI_LEGACY is not set 262# CONFIG_PCI_LEGACY is not set
257# CONFIG_PCI_DEBUG is not set 263# CONFIG_PCI_DEBUG is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_PCCARD is not set 265# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 266# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 267# CONFIG_HAS_RAPIDIO is not set
@@ -278,6 +285,7 @@ CONFIG_NET=y
278# 285#
279# Networking options 286# Networking options
280# 287#
288CONFIG_COMPAT_NET_DEV_OPS=y
281CONFIG_PACKET=y 289CONFIG_PACKET=y
282# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
283CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -334,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_ECONET is not set 342# CONFIG_ECONET is not set
335# CONFIG_WAN_ROUTER is not set 343# CONFIG_WAN_ROUTER is not set
336# CONFIG_NET_SCHED is not set 344# CONFIG_NET_SCHED is not set
345# CONFIG_DCB is not set
337 346
338# 347#
339# Network testing 348# Network testing
@@ -349,8 +358,9 @@ CONFIG_WIRELESS=y
349# CONFIG_CFG80211 is not set 358# CONFIG_CFG80211 is not set
350CONFIG_WIRELESS_OLD_REGULATORY=y 359CONFIG_WIRELESS_OLD_REGULATORY=y
351# CONFIG_WIRELESS_EXT is not set 360# CONFIG_WIRELESS_EXT is not set
361# CONFIG_LIB80211 is not set
352# CONFIG_MAC80211 is not set 362# CONFIG_MAC80211 is not set
353# CONFIG_IEEE80211 is not set 363# CONFIG_WIMAX is not set
354# CONFIG_RFKILL is not set 364# CONFIG_RFKILL is not set
355# CONFIG_NET_9P is not set 365# CONFIG_NET_9P is not set
356 366
@@ -397,6 +407,7 @@ CONFIG_MISC_DEVICES=y
397# CONFIG_TIFM_CORE is not set 407# CONFIG_TIFM_CORE is not set
398# CONFIG_ENCLOSURE_SERVICES is not set 408# CONFIG_ENCLOSURE_SERVICES is not set
399# CONFIG_HP_ILO is not set 409# CONFIG_HP_ILO is not set
410# CONFIG_C2PORT is not set
400CONFIG_HAVE_IDE=y 411CONFIG_HAVE_IDE=y
401CONFIG_IDE=y 412CONFIG_IDE=y
402 413
@@ -439,6 +450,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
439# CONFIG_BLK_DEV_JMICRON is not set 450# CONFIG_BLK_DEV_JMICRON is not set
440# CONFIG_BLK_DEV_SC1200 is not set 451# CONFIG_BLK_DEV_SC1200 is not set
441# CONFIG_BLK_DEV_PIIX is not set 452# CONFIG_BLK_DEV_PIIX is not set
453# CONFIG_BLK_DEV_IT8172 is not set
442# CONFIG_BLK_DEV_IT8213 is not set 454# CONFIG_BLK_DEV_IT8213 is not set
443# CONFIG_BLK_DEV_IT821X is not set 455# CONFIG_BLK_DEV_IT821X is not set
444# CONFIG_BLK_DEV_NS87415 is not set 456# CONFIG_BLK_DEV_NS87415 is not set
@@ -498,6 +510,9 @@ CONFIG_PHYLIB=y
498# CONFIG_BROADCOM_PHY is not set 510# CONFIG_BROADCOM_PHY is not set
499# CONFIG_ICPLUS_PHY is not set 511# CONFIG_ICPLUS_PHY is not set
500# CONFIG_REALTEK_PHY is not set 512# CONFIG_REALTEK_PHY is not set
513# CONFIG_NATIONAL_PHY is not set
514# CONFIG_STE10XP is not set
515# CONFIG_LSI_ET1011C_PHY is not set
501# CONFIG_FIXED_PHY is not set 516# CONFIG_FIXED_PHY is not set
502# CONFIG_MDIO_BITBANG is not set 517# CONFIG_MDIO_BITBANG is not set
503CONFIG_NET_ETHERNET=y 518CONFIG_NET_ETHERNET=y
@@ -542,6 +557,7 @@ CONFIG_GIANFAR=y
542# CONFIG_JME is not set 557# CONFIG_JME is not set
543CONFIG_NETDEV_10000=y 558CONFIG_NETDEV_10000=y
544# CONFIG_CHELSIO_T1 is not set 559# CONFIG_CHELSIO_T1 is not set
560CONFIG_CHELSIO_T3_DEPENDS=y
545# CONFIG_CHELSIO_T3 is not set 561# CONFIG_CHELSIO_T3 is not set
546# CONFIG_ENIC is not set 562# CONFIG_ENIC is not set
547# CONFIG_IXGBE is not set 563# CONFIG_IXGBE is not set
@@ -564,6 +580,10 @@ CONFIG_NETDEV_10000=y
564# CONFIG_WLAN_PRE80211 is not set 580# CONFIG_WLAN_PRE80211 is not set
565# CONFIG_WLAN_80211 is not set 581# CONFIG_WLAN_80211 is not set
566# CONFIG_IWLWIFI_LEDS is not set 582# CONFIG_IWLWIFI_LEDS is not set
583
584#
585# Enable WiMAX (Networking options) to see the WiMAX drivers
586#
567# CONFIG_WAN is not set 587# CONFIG_WAN is not set
568# CONFIG_FDDI is not set 588# CONFIG_FDDI is not set
569# CONFIG_HIPPI is not set 589# CONFIG_HIPPI is not set
@@ -634,8 +654,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
634# CONFIG_SERIAL_JSM is not set 654# CONFIG_SERIAL_JSM is not set
635# CONFIG_SERIAL_OF_PLATFORM is not set 655# CONFIG_SERIAL_OF_PLATFORM is not set
636CONFIG_UNIX98_PTYS=y 656CONFIG_UNIX98_PTYS=y
657# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
637CONFIG_LEGACY_PTYS=y 658CONFIG_LEGACY_PTYS=y
638CONFIG_LEGACY_PTY_COUNT=256 659CONFIG_LEGACY_PTY_COUNT=256
660# CONFIG_HVC_UDBG is not set
639# CONFIG_IPMI_HANDLER is not set 661# CONFIG_IPMI_HANDLER is not set
640# CONFIG_HW_RANDOM is not set 662# CONFIG_HW_RANDOM is not set
641# CONFIG_NVRAM is not set 663# CONFIG_NVRAM is not set
@@ -672,11 +694,11 @@ CONFIG_HWMON=y
672# CONFIG_THERMAL is not set 694# CONFIG_THERMAL is not set
673# CONFIG_THERMAL_HWMON is not set 695# CONFIG_THERMAL_HWMON is not set
674# CONFIG_WATCHDOG is not set 696# CONFIG_WATCHDOG is not set
697CONFIG_SSB_POSSIBLE=y
675 698
676# 699#
677# Sonics Silicon Backplane 700# Sonics Silicon Backplane
678# 701#
679CONFIG_SSB_POSSIBLE=y
680# CONFIG_SSB is not set 702# CONFIG_SSB is not set
681 703
682# 704#
@@ -686,14 +708,7 @@ CONFIG_SSB_POSSIBLE=y
686# CONFIG_MFD_SM501 is not set 708# CONFIG_MFD_SM501 is not set
687# CONFIG_HTC_PASIC3 is not set 709# CONFIG_HTC_PASIC3 is not set
688# CONFIG_MFD_TMIO is not set 710# CONFIG_MFD_TMIO is not set
689
690#
691# Voltage and Current regulators
692#
693# CONFIG_REGULATOR is not set 711# CONFIG_REGULATOR is not set
694# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
695# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
696# CONFIG_REGULATOR_BQ24022 is not set
697 712
698# 713#
699# Multimedia devices 714# Multimedia devices
@@ -749,9 +764,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
749# 764#
750 765
751# 766#
752# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 767# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
753# 768#
754# CONFIG_USB_GADGET is not set 769# CONFIG_USB_GADGET is not set
770
771#
772# OTG and related infrastructure
773#
755# CONFIG_UWB is not set 774# CONFIG_UWB is not set
756# CONFIG_MMC is not set 775# CONFIG_MMC is not set
757# CONFIG_MEMSTICK is not set 776# CONFIG_MEMSTICK is not set
@@ -783,6 +802,7 @@ CONFIG_FS_MBCACHE=y
783CONFIG_FILE_LOCKING=y 802CONFIG_FILE_LOCKING=y
784# CONFIG_XFS_FS is not set 803# CONFIG_XFS_FS is not set
785# CONFIG_OCFS2_FS is not set 804# CONFIG_OCFS2_FS is not set
805# CONFIG_BTRFS_FS is not set
786CONFIG_DNOTIFY=y 806CONFIG_DNOTIFY=y
787CONFIG_INOTIFY=y 807CONFIG_INOTIFY=y
788CONFIG_INOTIFY_USER=y 808CONFIG_INOTIFY_USER=y
@@ -816,10 +836,7 @@ CONFIG_TMPFS=y
816# CONFIG_TMPFS_POSIX_ACL is not set 836# CONFIG_TMPFS_POSIX_ACL is not set
817# CONFIG_HUGETLB_PAGE is not set 837# CONFIG_HUGETLB_PAGE is not set
818# CONFIG_CONFIGFS_FS is not set 838# CONFIG_CONFIGFS_FS is not set
819 839CONFIG_MISC_FILESYSTEMS=y
820#
821# Miscellaneous filesystems
822#
823# CONFIG_ADFS_FS is not set 840# CONFIG_ADFS_FS is not set
824# CONFIG_AFFS_FS is not set 841# CONFIG_AFFS_FS is not set
825# CONFIG_HFS_FS is not set 842# CONFIG_HFS_FS is not set
@@ -828,6 +845,7 @@ CONFIG_TMPFS=y
828# CONFIG_BFS_FS is not set 845# CONFIG_BFS_FS is not set
829# CONFIG_EFS_FS is not set 846# CONFIG_EFS_FS is not set
830# CONFIG_CRAMFS is not set 847# CONFIG_CRAMFS is not set
848# CONFIG_SQUASHFS is not set
831# CONFIG_VXFS_FS is not set 849# CONFIG_VXFS_FS is not set
832# CONFIG_MINIX_FS is not set 850# CONFIG_MINIX_FS is not set
833# CONFIG_OMFS_FS is not set 851# CONFIG_OMFS_FS is not set
@@ -878,6 +896,7 @@ CONFIG_PARTITION_ADVANCED=y
878# Library routines 896# Library routines
879# 897#
880CONFIG_BITREVERSE=y 898CONFIG_BITREVERSE=y
899CONFIG_GENERIC_FIND_LAST_BIT=y
881# CONFIG_CRC_CCITT is not set 900# CONFIG_CRC_CCITT is not set
882# CONFIG_CRC16 is not set 901# CONFIG_CRC16 is not set
883# CONFIG_CRC_T10DIF is not set 902# CONFIG_CRC_T10DIF is not set
@@ -927,6 +946,7 @@ CONFIG_DEBUG_MUTEXES=y
927# CONFIG_DEBUG_MEMORY_INIT is not set 946# CONFIG_DEBUG_MEMORY_INIT is not set
928# CONFIG_DEBUG_LIST is not set 947# CONFIG_DEBUG_LIST is not set
929# CONFIG_DEBUG_SG is not set 948# CONFIG_DEBUG_SG is not set
949# CONFIG_DEBUG_NOTIFIERS is not set
930# CONFIG_BOOT_PRINTK_DELAY is not set 950# CONFIG_BOOT_PRINTK_DELAY is not set
931# CONFIG_RCU_TORTURE_TEST is not set 951# CONFIG_RCU_TORTURE_TEST is not set
932# CONFIG_RCU_CPU_STALL_DETECTOR is not set 952# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -936,6 +956,8 @@ CONFIG_DEBUG_MUTEXES=y
936# CONFIG_LATENCYTOP is not set 956# CONFIG_LATENCYTOP is not set
937CONFIG_SYSCTL_SYSCALL_CHECK=y 957CONFIG_SYSCTL_SYSCALL_CHECK=y
938CONFIG_HAVE_FUNCTION_TRACER=y 958CONFIG_HAVE_FUNCTION_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
939 961
940# 962#
941# Tracers 963# Tracers
@@ -944,11 +966,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
944# CONFIG_SCHED_TRACER is not set 966# CONFIG_SCHED_TRACER is not set
945# CONFIG_CONTEXT_SWITCH_TRACER is not set 967# CONFIG_CONTEXT_SWITCH_TRACER is not set
946# CONFIG_BOOT_TRACER is not set 968# CONFIG_BOOT_TRACER is not set
969# CONFIG_TRACE_BRANCH_PROFILING is not set
947# CONFIG_STACK_TRACER is not set 970# CONFIG_STACK_TRACER is not set
948# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 971# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
949# CONFIG_SAMPLES is not set 972# CONFIG_SAMPLES is not set
950CONFIG_HAVE_ARCH_KGDB=y 973CONFIG_HAVE_ARCH_KGDB=y
951# CONFIG_KGDB is not set 974# CONFIG_KGDB is not set
975CONFIG_PRINT_STACK_DEPTH=64
952# CONFIG_DEBUG_STACKOVERFLOW is not set 976# CONFIG_DEBUG_STACKOVERFLOW is not set
953# CONFIG_DEBUG_STACK_USAGE is not set 977# CONFIG_DEBUG_STACK_USAGE is not set
954# CONFIG_DEBUG_PAGEALLOC is not set 978# CONFIG_DEBUG_PAGEALLOC is not set
@@ -974,6 +998,7 @@ CONFIG_CRYPTO=y
974# 998#
975# CONFIG_CRYPTO_FIPS is not set 999# CONFIG_CRYPTO_FIPS is not set
976# CONFIG_CRYPTO_MANAGER is not set 1000# CONFIG_CRYPTO_MANAGER is not set
1001# CONFIG_CRYPTO_MANAGER2 is not set
977# CONFIG_CRYPTO_GF128MUL is not set 1002# CONFIG_CRYPTO_GF128MUL is not set
978# CONFIG_CRYPTO_NULL is not set 1003# CONFIG_CRYPTO_NULL is not set
979# CONFIG_CRYPTO_CRYPTD is not set 1004# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index bfe3c9731573..e68e80987aa9 100644
--- a/arch/powerpc/configs/85xx/sbc8548_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8548_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:16 2008 4# Mon Jan 26 15:36:15 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -113,7 +115,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 115# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 120CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,13 +124,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 128# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 129CONFIG_BLOCK=y
130# CONFIG_LBD is not set 130# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 132# CONFIG_BLK_DEV_BSG is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set 133# CONFIG_BLK_DEV_INTEGRITY is not set
135 134
@@ -146,6 +145,10 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
149# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
150 153
151# 154#
@@ -185,6 +188,7 @@ CONFIG_MPIC=y
185# CONFIG_CPM2 is not set 188# CONFIG_CPM2 is not set
186# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
187# CONFIG_MPC8xxx_GPIO is not set 190# CONFIG_MPC8xxx_GPIO is not set
191# CONFIG_SIMPLE_GPIO is not set
188 192
189# 193#
190# Kernel options 194# Kernel options
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -251,6 +257,7 @@ CONFIG_PCI_SYSCALL=y
251CONFIG_ARCH_SUPPORTS_MSI=y 257CONFIG_ARCH_SUPPORTS_MSI=y
252# CONFIG_PCI_MSI is not set 258# CONFIG_PCI_MSI is not set
253# CONFIG_PCI_LEGACY is not set 259# CONFIG_PCI_LEGACY is not set
260# CONFIG_PCI_STUB is not set
254# CONFIG_PCCARD is not set 261# CONFIG_PCCARD is not set
255# CONFIG_HOTPLUG_PCI is not set 262# CONFIG_HOTPLUG_PCI is not set
256# CONFIG_HAS_RAPIDIO is not set 263# CONFIG_HAS_RAPIDIO is not set
@@ -274,6 +281,7 @@ CONFIG_NET=y
274# 281#
275# Networking options 282# Networking options
276# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
277CONFIG_PACKET=y 285CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 286# CONFIG_PACKET_MMAP is not set
279CONFIG_UNIX=y 287CONFIG_UNIX=y
@@ -330,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_ECONET is not set 338# CONFIG_ECONET is not set
331# CONFIG_WAN_ROUTER is not set 339# CONFIG_WAN_ROUTER is not set
332# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set
333 342
334# 343#
335# Network testing 344# Network testing
@@ -345,8 +354,9 @@ CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 354# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 355CONFIG_WIRELESS_OLD_REGULATORY=y
347# CONFIG_WIRELESS_EXT is not set 356# CONFIG_WIRELESS_EXT is not set
357# CONFIG_LIB80211 is not set
348# CONFIG_MAC80211 is not set 358# CONFIG_MAC80211 is not set
349# CONFIG_IEEE80211 is not set 359# CONFIG_WIMAX is not set
350# CONFIG_RFKILL is not set 360# CONFIG_RFKILL is not set
351# CONFIG_NET_9P is not set 361# CONFIG_NET_9P is not set
352 362
@@ -391,6 +401,7 @@ CONFIG_MISC_DEVICES=y
391# CONFIG_TIFM_CORE is not set 401# CONFIG_TIFM_CORE is not set
392# CONFIG_ENCLOSURE_SERVICES is not set 402# CONFIG_ENCLOSURE_SERVICES is not set
393# CONFIG_HP_ILO is not set 403# CONFIG_HP_ILO is not set
404# CONFIG_C2PORT is not set
394CONFIG_HAVE_IDE=y 405CONFIG_HAVE_IDE=y
395# CONFIG_IDE is not set 406# CONFIG_IDE is not set
396 407
@@ -439,6 +450,9 @@ CONFIG_PHYLIB=y
439CONFIG_BROADCOM_PHY=y 450CONFIG_BROADCOM_PHY=y
440# CONFIG_ICPLUS_PHY is not set 451# CONFIG_ICPLUS_PHY is not set
441# CONFIG_REALTEK_PHY is not set 452# CONFIG_REALTEK_PHY is not set
453# CONFIG_NATIONAL_PHY is not set
454# CONFIG_STE10XP is not set
455# CONFIG_LSI_ET1011C_PHY is not set
442# CONFIG_FIXED_PHY is not set 456# CONFIG_FIXED_PHY is not set
443# CONFIG_MDIO_BITBANG is not set 457# CONFIG_MDIO_BITBANG is not set
444CONFIG_NET_ETHERNET=y 458CONFIG_NET_ETHERNET=y
@@ -483,6 +497,7 @@ CONFIG_GIANFAR=y
483# CONFIG_JME is not set 497# CONFIG_JME is not set
484CONFIG_NETDEV_10000=y 498CONFIG_NETDEV_10000=y
485# CONFIG_CHELSIO_T1 is not set 499# CONFIG_CHELSIO_T1 is not set
500CONFIG_CHELSIO_T3_DEPENDS=y
486# CONFIG_CHELSIO_T3 is not set 501# CONFIG_CHELSIO_T3 is not set
487# CONFIG_ENIC is not set 502# CONFIG_ENIC is not set
488# CONFIG_IXGBE is not set 503# CONFIG_IXGBE is not set
@@ -505,6 +520,10 @@ CONFIG_NETDEV_10000=y
505# CONFIG_WLAN_PRE80211 is not set 520# CONFIG_WLAN_PRE80211 is not set
506# CONFIG_WLAN_80211 is not set 521# CONFIG_WLAN_80211 is not set
507# CONFIG_IWLWIFI_LEDS is not set 522# CONFIG_IWLWIFI_LEDS is not set
523
524#
525# Enable WiMAX (Networking options) to see the WiMAX drivers
526#
508# CONFIG_WAN is not set 527# CONFIG_WAN is not set
509# CONFIG_FDDI is not set 528# CONFIG_FDDI is not set
510# CONFIG_HIPPI is not set 529# CONFIG_HIPPI is not set
@@ -575,8 +594,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
575# CONFIG_SERIAL_JSM is not set 594# CONFIG_SERIAL_JSM is not set
576# CONFIG_SERIAL_OF_PLATFORM is not set 595# CONFIG_SERIAL_OF_PLATFORM is not set
577CONFIG_UNIX98_PTYS=y 596CONFIG_UNIX98_PTYS=y
597# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
578CONFIG_LEGACY_PTYS=y 598CONFIG_LEGACY_PTYS=y
579CONFIG_LEGACY_PTY_COUNT=256 599CONFIG_LEGACY_PTY_COUNT=256
600# CONFIG_HVC_UDBG is not set
580# CONFIG_IPMI_HANDLER is not set 601# CONFIG_IPMI_HANDLER is not set
581# CONFIG_HW_RANDOM is not set 602# CONFIG_HW_RANDOM is not set
582# CONFIG_NVRAM is not set 603# CONFIG_NVRAM is not set
@@ -613,11 +634,11 @@ CONFIG_HWMON=y
613# CONFIG_THERMAL is not set 634# CONFIG_THERMAL is not set
614# CONFIG_THERMAL_HWMON is not set 635# CONFIG_THERMAL_HWMON is not set
615# CONFIG_WATCHDOG is not set 636# CONFIG_WATCHDOG is not set
637CONFIG_SSB_POSSIBLE=y
616 638
617# 639#
618# Sonics Silicon Backplane 640# Sonics Silicon Backplane
619# 641#
620CONFIG_SSB_POSSIBLE=y
621# CONFIG_SSB is not set 642# CONFIG_SSB is not set
622 643
623# 644#
@@ -627,14 +648,7 @@ CONFIG_SSB_POSSIBLE=y
627# CONFIG_MFD_SM501 is not set 648# CONFIG_MFD_SM501 is not set
628# CONFIG_HTC_PASIC3 is not set 649# CONFIG_HTC_PASIC3 is not set
629# CONFIG_MFD_TMIO is not set 650# CONFIG_MFD_TMIO is not set
630
631#
632# Voltage and Current regulators
633#
634# CONFIG_REGULATOR is not set 651# CONFIG_REGULATOR is not set
635# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
636# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
637# CONFIG_REGULATOR_BQ24022 is not set
638 652
639# 653#
640# Multimedia devices 654# Multimedia devices
@@ -693,6 +707,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
693CONFIG_FILE_LOCKING=y 707CONFIG_FILE_LOCKING=y
694# CONFIG_XFS_FS is not set 708# CONFIG_XFS_FS is not set
695# CONFIG_OCFS2_FS is not set 709# CONFIG_OCFS2_FS is not set
710# CONFIG_BTRFS_FS is not set
696CONFIG_DNOTIFY=y 711CONFIG_DNOTIFY=y
697CONFIG_INOTIFY=y 712CONFIG_INOTIFY=y
698CONFIG_INOTIFY_USER=y 713CONFIG_INOTIFY_USER=y
@@ -726,10 +741,7 @@ CONFIG_TMPFS=y
726# CONFIG_TMPFS_POSIX_ACL is not set 741# CONFIG_TMPFS_POSIX_ACL is not set
727# CONFIG_HUGETLB_PAGE is not set 742# CONFIG_HUGETLB_PAGE is not set
728# CONFIG_CONFIGFS_FS is not set 743# CONFIG_CONFIGFS_FS is not set
729 744CONFIG_MISC_FILESYSTEMS=y
730#
731# Miscellaneous filesystems
732#
733# CONFIG_ADFS_FS is not set 745# CONFIG_ADFS_FS is not set
734# CONFIG_AFFS_FS is not set 746# CONFIG_AFFS_FS is not set
735# CONFIG_HFS_FS is not set 747# CONFIG_HFS_FS is not set
@@ -738,6 +750,7 @@ CONFIG_TMPFS=y
738# CONFIG_BFS_FS is not set 750# CONFIG_BFS_FS is not set
739# CONFIG_EFS_FS is not set 751# CONFIG_EFS_FS is not set
740# CONFIG_CRAMFS is not set 752# CONFIG_CRAMFS is not set
753# CONFIG_SQUASHFS is not set
741# CONFIG_VXFS_FS is not set 754# CONFIG_VXFS_FS is not set
742# CONFIG_MINIX_FS is not set 755# CONFIG_MINIX_FS is not set
743# CONFIG_OMFS_FS is not set 756# CONFIG_OMFS_FS is not set
@@ -776,6 +789,7 @@ CONFIG_MSDOS_PARTITION=y
776# Library routines 789# Library routines
777# 790#
778CONFIG_BITREVERSE=y 791CONFIG_BITREVERSE=y
792CONFIG_GENERIC_FIND_LAST_BIT=y
779# CONFIG_CRC_CCITT is not set 793# CONFIG_CRC_CCITT is not set
780# CONFIG_CRC16 is not set 794# CONFIG_CRC16 is not set
781# CONFIG_CRC_T10DIF is not set 795# CONFIG_CRC_T10DIF is not set
@@ -807,6 +821,8 @@ CONFIG_FRAME_WARN=1024
807# CONFIG_LATENCYTOP is not set 821# CONFIG_LATENCYTOP is not set
808CONFIG_SYSCTL_SYSCALL_CHECK=y 822CONFIG_SYSCTL_SYSCALL_CHECK=y
809CONFIG_HAVE_FUNCTION_TRACER=y 823CONFIG_HAVE_FUNCTION_TRACER=y
824CONFIG_HAVE_DYNAMIC_FTRACE=y
825CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
810 826
811# 827#
812# Tracers 828# Tracers
@@ -814,6 +830,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
814# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
815# CONFIG_SAMPLES is not set 831# CONFIG_SAMPLES is not set
816CONFIG_HAVE_ARCH_KGDB=y 832CONFIG_HAVE_ARCH_KGDB=y
833CONFIG_PRINT_STACK_DEPTH=64
817# CONFIG_IRQSTACKS is not set 834# CONFIG_IRQSTACKS is not set
818# CONFIG_PPC_EARLY_DEBUG is not set 835# CONFIG_PPC_EARLY_DEBUG is not set
819 836
@@ -831,6 +848,7 @@ CONFIG_CRYPTO=y
831# 848#
832# CONFIG_CRYPTO_FIPS is not set 849# CONFIG_CRYPTO_FIPS is not set
833# CONFIG_CRYPTO_MANAGER is not set 850# CONFIG_CRYPTO_MANAGER is not set
851# CONFIG_CRYPTO_MANAGER2 is not set
834# CONFIG_CRYPTO_GF128MUL is not set 852# CONFIG_CRYPTO_GF128MUL is not set
835# CONFIG_CRYPTO_NULL is not set 853# CONFIG_CRYPTO_NULL is not set
836# CONFIG_CRYPTO_CRYPTD is not set 854# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index 8c507f8d15a8..b1c766ef7e2e 100644
--- a/arch/powerpc/configs/85xx/sbc8560_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8560_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:17 2008 4# Mon Jan 26 15:36:17 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -113,7 +115,6 @@ CONFIG_SLAB=y
113# CONFIG_SLUB is not set 115# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 120CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,13 +124,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 128# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 129CONFIG_BLOCK=y
130# CONFIG_LBD is not set 130# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 132# CONFIG_BLK_DEV_BSG is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set 133# CONFIG_BLK_DEV_INTEGRITY is not set
135 134
@@ -146,6 +145,10 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
149# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
150 153
151# 154#
@@ -185,6 +188,7 @@ CONFIG_MPIC=y
185# CONFIG_CPM2 is not set 188# CONFIG_CPM2 is not set
186# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
187# CONFIG_MPC8xxx_GPIO is not set 190# CONFIG_MPC8xxx_GPIO is not set
191# CONFIG_SIMPLE_GPIO is not set
188 192
189# 193#
190# Kernel options 194# Kernel options
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +274,7 @@ CONFIG_NET=y
268# 274#
269# Networking options 275# Networking options
270# 276#
277CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 278CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 279# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 280CONFIG_UNIX=y
@@ -324,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_ECONET is not set 331# CONFIG_ECONET is not set
325# CONFIG_WAN_ROUTER is not set 332# CONFIG_WAN_ROUTER is not set
326# CONFIG_NET_SCHED is not set 333# CONFIG_NET_SCHED is not set
334# CONFIG_DCB is not set
327 335
328# 336#
329# Network testing 337# Network testing
@@ -339,8 +347,9 @@ CONFIG_WIRELESS=y
339# CONFIG_CFG80211 is not set 347# CONFIG_CFG80211 is not set
340CONFIG_WIRELESS_OLD_REGULATORY=y 348CONFIG_WIRELESS_OLD_REGULATORY=y
341# CONFIG_WIRELESS_EXT is not set 349# CONFIG_WIRELESS_EXT is not set
350# CONFIG_LIB80211 is not set
342# CONFIG_MAC80211 is not set 351# CONFIG_MAC80211 is not set
343# CONFIG_IEEE80211 is not set 352# CONFIG_WIMAX is not set
344# CONFIG_RFKILL is not set 353# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 354# CONFIG_NET_9P is not set
346 355
@@ -378,6 +387,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
378CONFIG_MISC_DEVICES=y 387CONFIG_MISC_DEVICES=y
379# CONFIG_EEPROM_93CX6 is not set 388# CONFIG_EEPROM_93CX6 is not set
380# CONFIG_ENCLOSURE_SERVICES is not set 389# CONFIG_ENCLOSURE_SERVICES is not set
390# CONFIG_C2PORT is not set
381CONFIG_HAVE_IDE=y 391CONFIG_HAVE_IDE=y
382# CONFIG_IDE is not set 392# CONFIG_IDE is not set
383 393
@@ -413,6 +423,9 @@ CONFIG_PHYLIB=y
413CONFIG_BROADCOM_PHY=y 423CONFIG_BROADCOM_PHY=y
414# CONFIG_ICPLUS_PHY is not set 424# CONFIG_ICPLUS_PHY is not set
415# CONFIG_REALTEK_PHY is not set 425# CONFIG_REALTEK_PHY is not set
426# CONFIG_NATIONAL_PHY is not set
427# CONFIG_STE10XP is not set
428# CONFIG_LSI_ET1011C_PHY is not set
416# CONFIG_FIXED_PHY is not set 429# CONFIG_FIXED_PHY is not set
417# CONFIG_MDIO_BITBANG is not set 430# CONFIG_MDIO_BITBANG is not set
418CONFIG_NET_ETHERNET=y 431CONFIG_NET_ETHERNET=y
@@ -435,6 +448,10 @@ CONFIG_NETDEV_10000=y
435# CONFIG_WLAN_PRE80211 is not set 448# CONFIG_WLAN_PRE80211 is not set
436# CONFIG_WLAN_80211 is not set 449# CONFIG_WLAN_80211 is not set
437# CONFIG_IWLWIFI_LEDS is not set 450# CONFIG_IWLWIFI_LEDS is not set
451
452#
453# Enable WiMAX (Networking options) to see the WiMAX drivers
454#
438# CONFIG_WAN is not set 455# CONFIG_WAN is not set
439# CONFIG_PPP is not set 456# CONFIG_PPP is not set
440# CONFIG_SLIP is not set 457# CONFIG_SLIP is not set
@@ -500,8 +517,10 @@ CONFIG_SERIAL_CORE=y
500CONFIG_SERIAL_CORE_CONSOLE=y 517CONFIG_SERIAL_CORE_CONSOLE=y
501# CONFIG_SERIAL_OF_PLATFORM is not set 518# CONFIG_SERIAL_OF_PLATFORM is not set
502CONFIG_UNIX98_PTYS=y 519CONFIG_UNIX98_PTYS=y
520# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
503CONFIG_LEGACY_PTYS=y 521CONFIG_LEGACY_PTYS=y
504CONFIG_LEGACY_PTY_COUNT=256 522CONFIG_LEGACY_PTY_COUNT=256
523# CONFIG_HVC_UDBG is not set
505# CONFIG_IPMI_HANDLER is not set 524# CONFIG_IPMI_HANDLER is not set
506# CONFIG_HW_RANDOM is not set 525# CONFIG_HW_RANDOM is not set
507# CONFIG_NVRAM is not set 526# CONFIG_NVRAM is not set
@@ -530,11 +549,11 @@ CONFIG_HWMON=y
530# CONFIG_THERMAL is not set 549# CONFIG_THERMAL is not set
531# CONFIG_THERMAL_HWMON is not set 550# CONFIG_THERMAL_HWMON is not set
532# CONFIG_WATCHDOG is not set 551# CONFIG_WATCHDOG is not set
552CONFIG_SSB_POSSIBLE=y
533 553
534# 554#
535# Sonics Silicon Backplane 555# Sonics Silicon Backplane
536# 556#
537CONFIG_SSB_POSSIBLE=y
538# CONFIG_SSB is not set 557# CONFIG_SSB is not set
539 558
540# 559#
@@ -544,14 +563,7 @@ CONFIG_SSB_POSSIBLE=y
544# CONFIG_MFD_SM501 is not set 563# CONFIG_MFD_SM501 is not set
545# CONFIG_HTC_PASIC3 is not set 564# CONFIG_HTC_PASIC3 is not set
546# CONFIG_MFD_TMIO is not set 565# CONFIG_MFD_TMIO is not set
547
548#
549# Voltage and Current regulators
550#
551# CONFIG_REGULATOR is not set 566# CONFIG_REGULATOR is not set
552# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
553# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
554# CONFIG_REGULATOR_BQ24022 is not set
555 567
556# 568#
557# Multimedia devices 569# Multimedia devices
@@ -604,9 +616,13 @@ CONFIG_USB_SUPPORT=y
604# 616#
605 617
606# 618#
607# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 619# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
608# 620#
609# CONFIG_USB_GADGET is not set 621# CONFIG_USB_GADGET is not set
622
623#
624# OTG and related infrastructure
625#
610# CONFIG_MMC is not set 626# CONFIG_MMC is not set
611# CONFIG_MEMSTICK is not set 627# CONFIG_MEMSTICK is not set
612# CONFIG_NEW_LEDS is not set 628# CONFIG_NEW_LEDS is not set
@@ -666,6 +682,7 @@ CONFIG_RTC_DRV_M48T59=y
666CONFIG_FILE_LOCKING=y 682CONFIG_FILE_LOCKING=y
667# CONFIG_XFS_FS is not set 683# CONFIG_XFS_FS is not set
668# CONFIG_OCFS2_FS is not set 684# CONFIG_OCFS2_FS is not set
685# CONFIG_BTRFS_FS is not set
669CONFIG_DNOTIFY=y 686CONFIG_DNOTIFY=y
670CONFIG_INOTIFY=y 687CONFIG_INOTIFY=y
671CONFIG_INOTIFY_USER=y 688CONFIG_INOTIFY_USER=y
@@ -699,10 +716,7 @@ CONFIG_TMPFS=y
699# CONFIG_TMPFS_POSIX_ACL is not set 716# CONFIG_TMPFS_POSIX_ACL is not set
700# CONFIG_HUGETLB_PAGE is not set 717# CONFIG_HUGETLB_PAGE is not set
701# CONFIG_CONFIGFS_FS is not set 718# CONFIG_CONFIGFS_FS is not set
702 719CONFIG_MISC_FILESYSTEMS=y
703#
704# Miscellaneous filesystems
705#
706# CONFIG_ADFS_FS is not set 720# CONFIG_ADFS_FS is not set
707# CONFIG_AFFS_FS is not set 721# CONFIG_AFFS_FS is not set
708# CONFIG_HFS_FS is not set 722# CONFIG_HFS_FS is not set
@@ -711,6 +725,7 @@ CONFIG_TMPFS=y
711# CONFIG_BFS_FS is not set 725# CONFIG_BFS_FS is not set
712# CONFIG_EFS_FS is not set 726# CONFIG_EFS_FS is not set
713# CONFIG_CRAMFS is not set 727# CONFIG_CRAMFS is not set
728# CONFIG_SQUASHFS is not set
714# CONFIG_VXFS_FS is not set 729# CONFIG_VXFS_FS is not set
715# CONFIG_MINIX_FS is not set 730# CONFIG_MINIX_FS is not set
716# CONFIG_OMFS_FS is not set 731# CONFIG_OMFS_FS is not set
@@ -761,6 +776,7 @@ CONFIG_PARTITION_ADVANCED=y
761# Library routines 776# Library routines
762# 777#
763CONFIG_BITREVERSE=y 778CONFIG_BITREVERSE=y
779CONFIG_GENERIC_FIND_LAST_BIT=y
764# CONFIG_CRC_CCITT is not set 780# CONFIG_CRC_CCITT is not set
765# CONFIG_CRC16 is not set 781# CONFIG_CRC16 is not set
766# CONFIG_CRC_T10DIF is not set 782# CONFIG_CRC_T10DIF is not set
@@ -809,6 +825,7 @@ CONFIG_DEBUG_MUTEXES=y
809# CONFIG_DEBUG_MEMORY_INIT is not set 825# CONFIG_DEBUG_MEMORY_INIT is not set
810# CONFIG_DEBUG_LIST is not set 826# CONFIG_DEBUG_LIST is not set
811# CONFIG_DEBUG_SG is not set 827# CONFIG_DEBUG_SG is not set
828# CONFIG_DEBUG_NOTIFIERS is not set
812# CONFIG_BOOT_PRINTK_DELAY is not set 829# CONFIG_BOOT_PRINTK_DELAY is not set
813# CONFIG_RCU_TORTURE_TEST is not set 830# CONFIG_RCU_TORTURE_TEST is not set
814# CONFIG_RCU_CPU_STALL_DETECTOR is not set 831# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -818,6 +835,8 @@ CONFIG_DEBUG_MUTEXES=y
818# CONFIG_LATENCYTOP is not set 835# CONFIG_LATENCYTOP is not set
819CONFIG_SYSCTL_SYSCALL_CHECK=y 836CONFIG_SYSCTL_SYSCALL_CHECK=y
820CONFIG_HAVE_FUNCTION_TRACER=y 837CONFIG_HAVE_FUNCTION_TRACER=y
838CONFIG_HAVE_DYNAMIC_FTRACE=y
839CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
821 840
822# 841#
823# Tracers 842# Tracers
@@ -826,11 +845,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
826# CONFIG_SCHED_TRACER is not set 845# CONFIG_SCHED_TRACER is not set
827# CONFIG_CONTEXT_SWITCH_TRACER is not set 846# CONFIG_CONTEXT_SWITCH_TRACER is not set
828# CONFIG_BOOT_TRACER is not set 847# CONFIG_BOOT_TRACER is not set
848# CONFIG_TRACE_BRANCH_PROFILING is not set
829# CONFIG_STACK_TRACER is not set 849# CONFIG_STACK_TRACER is not set
830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 850# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
831# CONFIG_SAMPLES is not set 851# CONFIG_SAMPLES is not set
832CONFIG_HAVE_ARCH_KGDB=y 852CONFIG_HAVE_ARCH_KGDB=y
833# CONFIG_KGDB is not set 853# CONFIG_KGDB is not set
854CONFIG_PRINT_STACK_DEPTH=64
834# CONFIG_DEBUG_STACKOVERFLOW is not set 855# CONFIG_DEBUG_STACKOVERFLOW is not set
835# CONFIG_DEBUG_STACK_USAGE is not set 856# CONFIG_DEBUG_STACK_USAGE is not set
836# CONFIG_DEBUG_PAGEALLOC is not set 857# CONFIG_DEBUG_PAGEALLOC is not set
@@ -867,6 +888,7 @@ CONFIG_CRYPTO=y
867# 888#
868# CONFIG_CRYPTO_FIPS is not set 889# CONFIG_CRYPTO_FIPS is not set
869# CONFIG_CRYPTO_MANAGER is not set 890# CONFIG_CRYPTO_MANAGER is not set
891# CONFIG_CRYPTO_MANAGER2 is not set
870# CONFIG_CRYPTO_GF128MUL is not set 892# CONFIG_CRYPTO_GF128MUL is not set
871# CONFIG_CRYPTO_NULL is not set 893# CONFIG_CRYPTO_NULL is not set
872# CONFIG_CRYPTO_CRYPTD is not set 894# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index 5a0cf58d2b8c..eb4ba7a5f41f 100644
--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig
+++ b/arch/powerpc/configs/85xx/stx_gp3_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:19 2008 4# Mon Jan 26 15:36:18 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -116,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
116CONFIG_SLUB=y 118CONFIG_SLUB=y
117# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -128,18 +129,15 @@ CONFIG_HAVE_CLK=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
131# CONFIG_TINY_SHMEM is not set
132CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
133CONFIG_MODULES=y 133CONFIG_MODULES=y
134# CONFIG_MODULE_FORCE_LOAD is not set 134# CONFIG_MODULE_FORCE_LOAD is not set
135# CONFIG_MODULE_UNLOAD is not set 135# CONFIG_MODULE_UNLOAD is not set
136CONFIG_MODVERSIONS=y 136CONFIG_MODVERSIONS=y
137# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_KMOD=y
139CONFIG_BLOCK=y 138CONFIG_BLOCK=y
140# CONFIG_LBD is not set 139# CONFIG_LBD is not set
141# CONFIG_BLK_DEV_IO_TRACE is not set 140# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_LSF is not set
143# CONFIG_BLK_DEV_BSG is not set 141# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set 142# CONFIG_BLK_DEV_INTEGRITY is not set
145 143
@@ -156,6 +154,10 @@ CONFIG_DEFAULT_CFQ=y
156# CONFIG_DEFAULT_NOOP is not set 154# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="cfq" 155CONFIG_DEFAULT_IOSCHED="cfq"
158CONFIG_CLASSIC_RCU=y 156CONFIG_CLASSIC_RCU=y
157# CONFIG_TREE_RCU is not set
158# CONFIG_PREEMPT_RCU is not set
159# CONFIG_TREE_RCU_TRACE is not set
160# CONFIG_PREEMPT_RCU_TRACE is not set
159# CONFIG_FREEZER is not set 161# CONFIG_FREEZER is not set
160 162
161# 163#
@@ -196,6 +198,7 @@ CONFIG_CPM2=y
196# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
197CONFIG_CPM=y 199CONFIG_CPM=y
198# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
199 202
200# 203#
201# Kernel options 204# Kernel options
@@ -233,12 +236,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
233CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
234CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
235CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set
242CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
243CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
244# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -263,6 +268,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
263# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
264# CONFIG_PCI_LEGACY is not set 269# CONFIG_PCI_LEGACY is not set
265# CONFIG_PCI_DEBUG is not set 270# CONFIG_PCI_DEBUG is not set
271# CONFIG_PCI_STUB is not set
266# CONFIG_PCCARD is not set 272# CONFIG_PCCARD is not set
267# CONFIG_HOTPLUG_PCI is not set 273# CONFIG_HOTPLUG_PCI is not set
268# CONFIG_HAS_RAPIDIO is not set 274# CONFIG_HAS_RAPIDIO is not set
@@ -286,6 +292,7 @@ CONFIG_NET=y
286# 292#
287# Networking options 293# Networking options
288# 294#
295CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 296CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 297# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 298CONFIG_UNIX=y
@@ -400,6 +407,7 @@ CONFIG_IP_NF_FILTER=m
400# CONFIG_ECONET is not set 407# CONFIG_ECONET is not set
401# CONFIG_WAN_ROUTER is not set 408# CONFIG_WAN_ROUTER is not set
402# CONFIG_NET_SCHED is not set 409# CONFIG_NET_SCHED is not set
410# CONFIG_DCB is not set
403 411
404# 412#
405# Network testing 413# Network testing
@@ -415,8 +423,9 @@ CONFIG_WIRELESS=y
415# CONFIG_CFG80211 is not set 423# CONFIG_CFG80211 is not set
416CONFIG_WIRELESS_OLD_REGULATORY=y 424CONFIG_WIRELESS_OLD_REGULATORY=y
417# CONFIG_WIRELESS_EXT is not set 425# CONFIG_WIRELESS_EXT is not set
426# CONFIG_LIB80211 is not set
418# CONFIG_MAC80211 is not set 427# CONFIG_MAC80211 is not set
419# CONFIG_IEEE80211 is not set 428# CONFIG_WIMAX is not set
420# CONFIG_RFKILL is not set 429# CONFIG_RFKILL is not set
421# CONFIG_NET_9P is not set 430# CONFIG_NET_9P is not set
422 431
@@ -470,14 +479,17 @@ CONFIG_MISC_DEVICES=y
470# CONFIG_EEPROM_93CX6 is not set 479# CONFIG_EEPROM_93CX6 is not set
471# CONFIG_SGI_IOC4 is not set 480# CONFIG_SGI_IOC4 is not set
472# CONFIG_TIFM_CORE is not set 481# CONFIG_TIFM_CORE is not set
482# CONFIG_ICS932S401 is not set
473# CONFIG_ENCLOSURE_SERVICES is not set 483# CONFIG_ENCLOSURE_SERVICES is not set
474# CONFIG_HP_ILO is not set 484# CONFIG_HP_ILO is not set
485# CONFIG_C2PORT is not set
475CONFIG_HAVE_IDE=y 486CONFIG_HAVE_IDE=y
476CONFIG_IDE=y 487CONFIG_IDE=y
477 488
478# 489#
479# Please see Documentation/ide/ide.txt for help/info on IDE drives 490# Please see Documentation/ide/ide.txt for help/info on IDE drives
480# 491#
492CONFIG_IDE_ATAPI=y
481# CONFIG_BLK_DEV_IDE_SATA is not set 493# CONFIG_BLK_DEV_IDE_SATA is not set
482CONFIG_IDE_GD=y 494CONFIG_IDE_GD=y
483CONFIG_IDE_GD_ATA=y 495CONFIG_IDE_GD_ATA=y
@@ -485,7 +497,6 @@ CONFIG_IDE_GD_ATA=y
485CONFIG_BLK_DEV_IDECD=m 497CONFIG_BLK_DEV_IDECD=m
486CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 498CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
487# CONFIG_BLK_DEV_IDETAPE is not set 499# CONFIG_BLK_DEV_IDETAPE is not set
488# CONFIG_BLK_DEV_IDESCSI is not set
489# CONFIG_IDE_TASK_IOCTL is not set 500# CONFIG_IDE_TASK_IOCTL is not set
490CONFIG_IDE_PROC_FS=y 501CONFIG_IDE_PROC_FS=y
491 502
@@ -510,6 +521,7 @@ CONFIG_IDE_PROC_FS=y
510# CONFIG_BLK_DEV_JMICRON is not set 521# CONFIG_BLK_DEV_JMICRON is not set
511# CONFIG_BLK_DEV_SC1200 is not set 522# CONFIG_BLK_DEV_SC1200 is not set
512# CONFIG_BLK_DEV_PIIX is not set 523# CONFIG_BLK_DEV_PIIX is not set
524# CONFIG_BLK_DEV_IT8172 is not set
513# CONFIG_BLK_DEV_IT8213 is not set 525# CONFIG_BLK_DEV_IT8213 is not set
514# CONFIG_BLK_DEV_IT821X is not set 526# CONFIG_BLK_DEV_IT821X is not set
515# CONFIG_BLK_DEV_NS87415 is not set 527# CONFIG_BLK_DEV_NS87415 is not set
@@ -564,6 +576,7 @@ CONFIG_SCSI_WAIT_SCAN=m
564# CONFIG_SCSI_SRP_ATTRS is not set 576# CONFIG_SCSI_SRP_ATTRS is not set
565CONFIG_SCSI_LOWLEVEL=y 577CONFIG_SCSI_LOWLEVEL=y
566# CONFIG_ISCSI_TCP is not set 578# CONFIG_ISCSI_TCP is not set
579# CONFIG_SCSI_CXGB3_ISCSI is not set
567# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 580# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
568# CONFIG_SCSI_3W_9XXX is not set 581# CONFIG_SCSI_3W_9XXX is not set
569# CONFIG_SCSI_ACARD is not set 582# CONFIG_SCSI_ACARD is not set
@@ -580,6 +593,8 @@ CONFIG_SCSI_LOWLEVEL=y
580# CONFIG_MEGARAID_SAS is not set 593# CONFIG_MEGARAID_SAS is not set
581# CONFIG_SCSI_HPTIOP is not set 594# CONFIG_SCSI_HPTIOP is not set
582# CONFIG_SCSI_BUSLOGIC is not set 595# CONFIG_SCSI_BUSLOGIC is not set
596# CONFIG_LIBFC is not set
597# CONFIG_FCOE is not set
583# CONFIG_SCSI_DMX3191D is not set 598# CONFIG_SCSI_DMX3191D is not set
584# CONFIG_SCSI_EATA is not set 599# CONFIG_SCSI_EATA is not set
585# CONFIG_SCSI_FUTURE_DOMAIN is not set 600# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -640,6 +655,9 @@ CONFIG_MARVELL_PHY=y
640# CONFIG_BROADCOM_PHY is not set 655# CONFIG_BROADCOM_PHY is not set
641# CONFIG_ICPLUS_PHY is not set 656# CONFIG_ICPLUS_PHY is not set
642# CONFIG_REALTEK_PHY is not set 657# CONFIG_REALTEK_PHY is not set
658# CONFIG_NATIONAL_PHY is not set
659# CONFIG_STE10XP is not set
660# CONFIG_LSI_ET1011C_PHY is not set
643# CONFIG_FIXED_PHY is not set 661# CONFIG_FIXED_PHY is not set
644# CONFIG_MDIO_BITBANG is not set 662# CONFIG_MDIO_BITBANG is not set
645CONFIG_NET_ETHERNET=y 663CONFIG_NET_ETHERNET=y
@@ -686,6 +704,7 @@ CONFIG_GIANFAR=y
686# CONFIG_JME is not set 704# CONFIG_JME is not set
687CONFIG_NETDEV_10000=y 705CONFIG_NETDEV_10000=y
688# CONFIG_CHELSIO_T1 is not set 706# CONFIG_CHELSIO_T1 is not set
707CONFIG_CHELSIO_T3_DEPENDS=y
689# CONFIG_CHELSIO_T3 is not set 708# CONFIG_CHELSIO_T3 is not set
690# CONFIG_ENIC is not set 709# CONFIG_ENIC is not set
691# CONFIG_IXGBE is not set 710# CONFIG_IXGBE is not set
@@ -708,6 +727,10 @@ CONFIG_NETDEV_10000=y
708# CONFIG_WLAN_PRE80211 is not set 727# CONFIG_WLAN_PRE80211 is not set
709# CONFIG_WLAN_80211 is not set 728# CONFIG_WLAN_80211 is not set
710# CONFIG_IWLWIFI_LEDS is not set 729# CONFIG_IWLWIFI_LEDS is not set
730
731#
732# Enable WiMAX (Networking options) to see the WiMAX drivers
733#
711# CONFIG_WAN is not set 734# CONFIG_WAN is not set
712# CONFIG_FDDI is not set 735# CONFIG_FDDI is not set
713# CONFIG_HIPPI is not set 736# CONFIG_HIPPI is not set
@@ -805,11 +828,13 @@ CONFIG_SERIAL_CPM=y
805CONFIG_SERIAL_CPM_CONSOLE=y 828CONFIG_SERIAL_CPM_CONSOLE=y
806# CONFIG_SERIAL_JSM is not set 829# CONFIG_SERIAL_JSM is not set
807CONFIG_UNIX98_PTYS=y 830CONFIG_UNIX98_PTYS=y
831# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
808CONFIG_LEGACY_PTYS=y 832CONFIG_LEGACY_PTYS=y
809CONFIG_LEGACY_PTY_COUNT=256 833CONFIG_LEGACY_PTY_COUNT=256
810CONFIG_PRINTER=m 834CONFIG_PRINTER=m
811# CONFIG_LP_CONSOLE is not set 835# CONFIG_LP_CONSOLE is not set
812# CONFIG_PPDEV is not set 836# CONFIG_PPDEV is not set
837# CONFIG_HVC_UDBG is not set
813# CONFIG_IPMI_HANDLER is not set 838# CONFIG_IPMI_HANDLER is not set
814CONFIG_HW_RANDOM=m 839CONFIG_HW_RANDOM=m
815# CONFIG_NVRAM is not set 840# CONFIG_NVRAM is not set
@@ -823,6 +848,7 @@ CONFIG_I2C=m
823CONFIG_I2C_BOARDINFO=y 848CONFIG_I2C_BOARDINFO=y
824CONFIG_I2C_CHARDEV=m 849CONFIG_I2C_CHARDEV=m
825CONFIG_I2C_HELPER_AUTO=y 850CONFIG_I2C_HELPER_AUTO=y
851CONFIG_I2C_ALGOBIT=m
826 852
827# 853#
828# I2C Hardware Bus support 854# I2C Hardware Bus support
@@ -877,13 +903,12 @@ CONFIG_I2C_HELPER_AUTO=y
877# Miscellaneous I2C Chip support 903# Miscellaneous I2C Chip support
878# 904#
879# CONFIG_DS1682 is not set 905# CONFIG_DS1682 is not set
880# CONFIG_AT24 is not set 906# CONFIG_EEPROM_AT24 is not set
881# CONFIG_SENSORS_EEPROM is not set 907# CONFIG_EEPROM_LEGACY is not set
882# CONFIG_SENSORS_PCF8574 is not set 908# CONFIG_SENSORS_PCF8574 is not set
883# CONFIG_PCF8575 is not set 909# CONFIG_PCF8575 is not set
884# CONFIG_SENSORS_PCA9539 is not set 910# CONFIG_SENSORS_PCA9539 is not set
885# CONFIG_SENSORS_PCF8591 is not set 911# CONFIG_SENSORS_PCF8591 is not set
886# CONFIG_TPS65010 is not set
887# CONFIG_SENSORS_MAX6875 is not set 912# CONFIG_SENSORS_MAX6875 is not set
888# CONFIG_SENSORS_TSL2550 is not set 913# CONFIG_SENSORS_TSL2550 is not set
889# CONFIG_I2C_DEBUG_CORE is not set 914# CONFIG_I2C_DEBUG_CORE is not set
@@ -898,6 +923,11 @@ CONFIG_GPIOLIB=y
898# CONFIG_GPIO_SYSFS is not set 923# CONFIG_GPIO_SYSFS is not set
899 924
900# 925#
926# Memory mapped GPIO expanders:
927#
928# CONFIG_GPIO_XILINX is not set
929
930#
901# I2C GPIO expanders: 931# I2C GPIO expanders:
902# 932#
903# CONFIG_GPIO_MAX732X is not set 933# CONFIG_GPIO_MAX732X is not set
@@ -924,8 +954,10 @@ CONFIG_HWMON=y
924# CONFIG_SENSORS_ADM1029 is not set 954# CONFIG_SENSORS_ADM1029 is not set
925# CONFIG_SENSORS_ADM1031 is not set 955# CONFIG_SENSORS_ADM1031 is not set
926# CONFIG_SENSORS_ADM9240 is not set 956# CONFIG_SENSORS_ADM9240 is not set
957# CONFIG_SENSORS_ADT7462 is not set
927# CONFIG_SENSORS_ADT7470 is not set 958# CONFIG_SENSORS_ADT7470 is not set
928# CONFIG_SENSORS_ADT7473 is not set 959# CONFIG_SENSORS_ADT7473 is not set
960# CONFIG_SENSORS_ADT7475 is not set
929# CONFIG_SENSORS_ATXP1 is not set 961# CONFIG_SENSORS_ATXP1 is not set
930# CONFIG_SENSORS_DS1621 is not set 962# CONFIG_SENSORS_DS1621 is not set
931# CONFIG_SENSORS_I5K_AMB is not set 963# CONFIG_SENSORS_I5K_AMB is not set
@@ -946,6 +978,7 @@ CONFIG_HWMON=y
946# CONFIG_SENSORS_LM90 is not set 978# CONFIG_SENSORS_LM90 is not set
947# CONFIG_SENSORS_LM92 is not set 979# CONFIG_SENSORS_LM92 is not set
948# CONFIG_SENSORS_LM93 is not set 980# CONFIG_SENSORS_LM93 is not set
981# CONFIG_SENSORS_LTC4245 is not set
949# CONFIG_SENSORS_MAX1619 is not set 982# CONFIG_SENSORS_MAX1619 is not set
950# CONFIG_SENSORS_MAX6650 is not set 983# CONFIG_SENSORS_MAX6650 is not set
951# CONFIG_SENSORS_PC87360 is not set 984# CONFIG_SENSORS_PC87360 is not set
@@ -972,11 +1005,11 @@ CONFIG_HWMON=y
972# CONFIG_THERMAL is not set 1005# CONFIG_THERMAL is not set
973# CONFIG_THERMAL_HWMON is not set 1006# CONFIG_THERMAL_HWMON is not set
974# CONFIG_WATCHDOG is not set 1007# CONFIG_WATCHDOG is not set
1008CONFIG_SSB_POSSIBLE=y
975 1009
976# 1010#
977# Sonics Silicon Backplane 1011# Sonics Silicon Backplane
978# 1012#
979CONFIG_SSB_POSSIBLE=y
980# CONFIG_SSB is not set 1013# CONFIG_SSB is not set
981 1014
982# 1015#
@@ -985,17 +1018,12 @@ CONFIG_SSB_POSSIBLE=y
985# CONFIG_MFD_CORE is not set 1018# CONFIG_MFD_CORE is not set
986# CONFIG_MFD_SM501 is not set 1019# CONFIG_MFD_SM501 is not set
987# CONFIG_HTC_PASIC3 is not set 1020# CONFIG_HTC_PASIC3 is not set
1021# CONFIG_TPS65010 is not set
988# CONFIG_MFD_TMIO is not set 1022# CONFIG_MFD_TMIO is not set
989# CONFIG_MFD_WM8400 is not set 1023# CONFIG_MFD_WM8400 is not set
990# CONFIG_MFD_WM8350_I2C is not set 1024# CONFIG_MFD_WM8350_I2C is not set
991 1025# CONFIG_MFD_PCF50633 is not set
992#
993# Voltage and Current regulators
994#
995# CONFIG_REGULATOR is not set 1026# CONFIG_REGULATOR is not set
996# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
997# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
998# CONFIG_REGULATOR_BQ24022 is not set
999 1027
1000# 1028#
1001# Multimedia devices 1029# Multimedia devices
@@ -1061,9 +1089,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1061# 1089#
1062 1090
1063# 1091#
1064# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1092# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1065# 1093#
1066# CONFIG_USB_GADGET is not set 1094# CONFIG_USB_GADGET is not set
1095
1096#
1097# OTG and related infrastructure
1098#
1067# CONFIG_UWB is not set 1099# CONFIG_UWB is not set
1068# CONFIG_MMC is not set 1100# CONFIG_MMC is not set
1069# CONFIG_MEMSTICK is not set 1101# CONFIG_MEMSTICK is not set
@@ -1096,6 +1128,7 @@ CONFIG_FS_MBCACHE=y
1096CONFIG_FILE_LOCKING=y 1128CONFIG_FILE_LOCKING=y
1097# CONFIG_XFS_FS is not set 1129# CONFIG_XFS_FS is not set
1098# CONFIG_OCFS2_FS is not set 1130# CONFIG_OCFS2_FS is not set
1131# CONFIG_BTRFS_FS is not set
1099CONFIG_DNOTIFY=y 1132CONFIG_DNOTIFY=y
1100CONFIG_INOTIFY=y 1133CONFIG_INOTIFY=y
1101CONFIG_INOTIFY_USER=y 1134CONFIG_INOTIFY_USER=y
@@ -1135,10 +1168,7 @@ CONFIG_TMPFS=y
1135# CONFIG_TMPFS_POSIX_ACL is not set 1168# CONFIG_TMPFS_POSIX_ACL is not set
1136# CONFIG_HUGETLB_PAGE is not set 1169# CONFIG_HUGETLB_PAGE is not set
1137# CONFIG_CONFIGFS_FS is not set 1170# CONFIG_CONFIGFS_FS is not set
1138 1171CONFIG_MISC_FILESYSTEMS=y
1139#
1140# Miscellaneous filesystems
1141#
1142# CONFIG_ADFS_FS is not set 1172# CONFIG_ADFS_FS is not set
1143# CONFIG_AFFS_FS is not set 1173# CONFIG_AFFS_FS is not set
1144# CONFIG_HFS_FS is not set 1174# CONFIG_HFS_FS is not set
@@ -1147,6 +1177,7 @@ CONFIG_TMPFS=y
1147# CONFIG_BFS_FS is not set 1177# CONFIG_BFS_FS is not set
1148# CONFIG_EFS_FS is not set 1178# CONFIG_EFS_FS is not set
1149CONFIG_CRAMFS=m 1179CONFIG_CRAMFS=m
1180# CONFIG_SQUASHFS is not set
1150# CONFIG_VXFS_FS is not set 1181# CONFIG_VXFS_FS is not set
1151# CONFIG_MINIX_FS is not set 1182# CONFIG_MINIX_FS is not set
1152# CONFIG_OMFS_FS is not set 1183# CONFIG_OMFS_FS is not set
@@ -1227,6 +1258,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1227# Library routines 1258# Library routines
1228# 1259#
1229CONFIG_BITREVERSE=y 1260CONFIG_BITREVERSE=y
1261CONFIG_GENERIC_FIND_LAST_BIT=y
1230CONFIG_CRC_CCITT=y 1262CONFIG_CRC_CCITT=y
1231# CONFIG_CRC16 is not set 1263# CONFIG_CRC16 is not set
1232CONFIG_CRC_T10DIF=m 1264CONFIG_CRC_T10DIF=m
@@ -1278,6 +1310,7 @@ CONFIG_SCHED_DEBUG=y
1278# CONFIG_DEBUG_MEMORY_INIT is not set 1310# CONFIG_DEBUG_MEMORY_INIT is not set
1279# CONFIG_DEBUG_LIST is not set 1311# CONFIG_DEBUG_LIST is not set
1280# CONFIG_DEBUG_SG is not set 1312# CONFIG_DEBUG_SG is not set
1313# CONFIG_DEBUG_NOTIFIERS is not set
1281# CONFIG_BOOT_PRINTK_DELAY is not set 1314# CONFIG_BOOT_PRINTK_DELAY is not set
1282# CONFIG_RCU_TORTURE_TEST is not set 1315# CONFIG_RCU_TORTURE_TEST is not set
1283# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1316# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1287,6 +1320,8 @@ CONFIG_SCHED_DEBUG=y
1287# CONFIG_LATENCYTOP is not set 1320# CONFIG_LATENCYTOP is not set
1288CONFIG_SYSCTL_SYSCALL_CHECK=y 1321CONFIG_SYSCTL_SYSCALL_CHECK=y
1289CONFIG_HAVE_FUNCTION_TRACER=y 1322CONFIG_HAVE_FUNCTION_TRACER=y
1323CONFIG_HAVE_DYNAMIC_FTRACE=y
1324CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1290 1325
1291# 1326#
1292# Tracers 1327# Tracers
@@ -1295,11 +1330,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1295# CONFIG_SCHED_TRACER is not set 1330# CONFIG_SCHED_TRACER is not set
1296# CONFIG_CONTEXT_SWITCH_TRACER is not set 1331# CONFIG_CONTEXT_SWITCH_TRACER is not set
1297# CONFIG_BOOT_TRACER is not set 1332# CONFIG_BOOT_TRACER is not set
1333# CONFIG_TRACE_BRANCH_PROFILING is not set
1298# CONFIG_STACK_TRACER is not set 1334# CONFIG_STACK_TRACER is not set
1299# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1335# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1300# CONFIG_SAMPLES is not set 1336# CONFIG_SAMPLES is not set
1301CONFIG_HAVE_ARCH_KGDB=y 1337CONFIG_HAVE_ARCH_KGDB=y
1302# CONFIG_KGDB is not set 1338# CONFIG_KGDB is not set
1339CONFIG_PRINT_STACK_DEPTH=64
1303# CONFIG_DEBUG_STACKOVERFLOW is not set 1340# CONFIG_DEBUG_STACKOVERFLOW is not set
1304# CONFIG_DEBUG_STACK_USAGE is not set 1341# CONFIG_DEBUG_STACK_USAGE is not set
1305# CONFIG_DEBUG_PAGEALLOC is not set 1342# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1325,6 +1362,7 @@ CONFIG_CRYPTO=y
1325# 1362#
1326# CONFIG_CRYPTO_FIPS is not set 1363# CONFIG_CRYPTO_FIPS is not set
1327# CONFIG_CRYPTO_MANAGER is not set 1364# CONFIG_CRYPTO_MANAGER is not set
1365# CONFIG_CRYPTO_MANAGER2 is not set
1328# CONFIG_CRYPTO_GF128MUL is not set 1366# CONFIG_CRYPTO_GF128MUL is not set
1329# CONFIG_CRYPTO_NULL is not set 1367# CONFIG_CRYPTO_NULL is not set
1330# CONFIG_CRYPTO_CRYPTD is not set 1368# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index f3e4f3481fda..f4379b1cf841 100644
--- a/arch/powerpc/configs/85xx/tqm8540_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8540_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:20 2008 4# Mon Jan 26 15:36:19 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -113,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
113CONFIG_SLUB=y 115CONFIG_SLUB=y
114# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 120CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,13 +124,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 128# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 129CONFIG_BLOCK=y
130# CONFIG_LBD is not set 130# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 132# CONFIG_BLK_DEV_BSG is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set 133# CONFIG_BLK_DEV_INTEGRITY is not set
135 134
@@ -146,6 +145,10 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
149# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
150 153
151# 154#
@@ -186,6 +189,7 @@ CONFIG_MPIC=y
186# CONFIG_CPM2 is not set 189# CONFIG_CPM2 is not set
187# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
188# CONFIG_MPC8xxx_GPIO is not set 191# CONFIG_MPC8xxx_GPIO is not set
192# CONFIG_SIMPLE_GPIO is not set
189 193
190# 194#
191# Kernel options 195# Kernel options
@@ -223,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set 230# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
232CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 239# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -252,6 +258,7 @@ CONFIG_PCI_SYSCALL=y
252CONFIG_ARCH_SUPPORTS_MSI=y 258CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 259# CONFIG_PCI_MSI is not set
254# CONFIG_PCI_LEGACY is not set 260# CONFIG_PCI_LEGACY is not set
261# CONFIG_PCI_STUB is not set
255# CONFIG_HAS_RAPIDIO is not set 262# CONFIG_HAS_RAPIDIO is not set
256 263
257# 264#
@@ -273,6 +280,7 @@ CONFIG_NET=y
273# 280#
274# Networking options 281# Networking options
275# 282#
283CONFIG_COMPAT_NET_DEV_OPS=y
276CONFIG_PACKET=y 284CONFIG_PACKET=y
277# CONFIG_PACKET_MMAP is not set 285# CONFIG_PACKET_MMAP is not set
278CONFIG_UNIX=y 286CONFIG_UNIX=y
@@ -329,6 +337,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_ECONET is not set 337# CONFIG_ECONET is not set
330# CONFIG_WAN_ROUTER is not set 338# CONFIG_WAN_ROUTER is not set
331# CONFIG_NET_SCHED is not set 339# CONFIG_NET_SCHED is not set
340# CONFIG_DCB is not set
332 341
333# 342#
334# Network testing 343# Network testing
@@ -344,8 +353,9 @@ CONFIG_WIRELESS=y
344# CONFIG_CFG80211 is not set 353# CONFIG_CFG80211 is not set
345CONFIG_WIRELESS_OLD_REGULATORY=y 354CONFIG_WIRELESS_OLD_REGULATORY=y
346# CONFIG_WIRELESS_EXT is not set 355# CONFIG_WIRELESS_EXT is not set
356# CONFIG_LIB80211 is not set
347# CONFIG_MAC80211 is not set 357# CONFIG_MAC80211 is not set
348# CONFIG_IEEE80211 is not set 358# CONFIG_WIMAX is not set
349# CONFIG_RFKILL is not set 359# CONFIG_RFKILL is not set
350# CONFIG_NET_9P is not set 360# CONFIG_NET_9P is not set
351 361
@@ -435,6 +445,12 @@ CONFIG_MTD_CFI_UTIL=y
435# CONFIG_MTD_ONENAND is not set 445# CONFIG_MTD_ONENAND is not set
436 446
437# 447#
448# LPDDR flash memory drivers
449#
450# CONFIG_MTD_LPDDR is not set
451# CONFIG_MTD_QINFO_PROBE is not set
452
453#
438# UBI - Unsorted block images 454# UBI - Unsorted block images
439# 455#
440# CONFIG_MTD_UBI is not set 456# CONFIG_MTD_UBI is not set
@@ -464,8 +480,10 @@ CONFIG_MISC_DEVICES=y
464# CONFIG_EEPROM_93CX6 is not set 480# CONFIG_EEPROM_93CX6 is not set
465# CONFIG_SGI_IOC4 is not set 481# CONFIG_SGI_IOC4 is not set
466# CONFIG_TIFM_CORE is not set 482# CONFIG_TIFM_CORE is not set
483# CONFIG_ICS932S401 is not set
467# CONFIG_ENCLOSURE_SERVICES is not set 484# CONFIG_ENCLOSURE_SERVICES is not set
468# CONFIG_HP_ILO is not set 485# CONFIG_HP_ILO is not set
486# CONFIG_C2PORT is not set
469CONFIG_HAVE_IDE=y 487CONFIG_HAVE_IDE=y
470CONFIG_IDE=y 488CONFIG_IDE=y
471 489
@@ -508,6 +526,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
508# CONFIG_BLK_DEV_JMICRON is not set 526# CONFIG_BLK_DEV_JMICRON is not set
509# CONFIG_BLK_DEV_SC1200 is not set 527# CONFIG_BLK_DEV_SC1200 is not set
510# CONFIG_BLK_DEV_PIIX is not set 528# CONFIG_BLK_DEV_PIIX is not set
529# CONFIG_BLK_DEV_IT8172 is not set
511# CONFIG_BLK_DEV_IT8213 is not set 530# CONFIG_BLK_DEV_IT8213 is not set
512# CONFIG_BLK_DEV_IT821X is not set 531# CONFIG_BLK_DEV_IT821X is not set
513# CONFIG_BLK_DEV_NS87415 is not set 532# CONFIG_BLK_DEV_NS87415 is not set
@@ -567,6 +586,9 @@ CONFIG_PHYLIB=y
567# CONFIG_BROADCOM_PHY is not set 586# CONFIG_BROADCOM_PHY is not set
568# CONFIG_ICPLUS_PHY is not set 587# CONFIG_ICPLUS_PHY is not set
569# CONFIG_REALTEK_PHY is not set 588# CONFIG_REALTEK_PHY is not set
589# CONFIG_NATIONAL_PHY is not set
590# CONFIG_STE10XP is not set
591# CONFIG_LSI_ET1011C_PHY is not set
570# CONFIG_FIXED_PHY is not set 592# CONFIG_FIXED_PHY is not set
571# CONFIG_MDIO_BITBANG is not set 593# CONFIG_MDIO_BITBANG is not set
572CONFIG_NET_ETHERNET=y 594CONFIG_NET_ETHERNET=y
@@ -590,7 +612,6 @@ CONFIG_NET_PCI=y
590# CONFIG_ADAPTEC_STARFIRE is not set 612# CONFIG_ADAPTEC_STARFIRE is not set
591# CONFIG_B44 is not set 613# CONFIG_B44 is not set
592# CONFIG_FORCEDETH is not set 614# CONFIG_FORCEDETH is not set
593# CONFIG_EEPRO100 is not set
594CONFIG_E100=y 615CONFIG_E100=y
595# CONFIG_FEALNX is not set 616# CONFIG_FEALNX is not set
596# CONFIG_NATSEMI is not set 617# CONFIG_NATSEMI is not set
@@ -600,6 +621,7 @@ CONFIG_E100=y
600# CONFIG_R6040 is not set 621# CONFIG_R6040 is not set
601# CONFIG_SIS900 is not set 622# CONFIG_SIS900 is not set
602# CONFIG_EPIC100 is not set 623# CONFIG_EPIC100 is not set
624# CONFIG_SMSC9420 is not set
603# CONFIG_SUNDANCE is not set 625# CONFIG_SUNDANCE is not set
604# CONFIG_TLAN is not set 626# CONFIG_TLAN is not set
605# CONFIG_VIA_RHINE is not set 627# CONFIG_VIA_RHINE is not set
@@ -629,6 +651,7 @@ CONFIG_GIANFAR=y
629# CONFIG_JME is not set 651# CONFIG_JME is not set
630CONFIG_NETDEV_10000=y 652CONFIG_NETDEV_10000=y
631# CONFIG_CHELSIO_T1 is not set 653# CONFIG_CHELSIO_T1 is not set
654CONFIG_CHELSIO_T3_DEPENDS=y
632# CONFIG_CHELSIO_T3 is not set 655# CONFIG_CHELSIO_T3 is not set
633# CONFIG_ENIC is not set 656# CONFIG_ENIC is not set
634# CONFIG_IXGBE is not set 657# CONFIG_IXGBE is not set
@@ -651,6 +674,10 @@ CONFIG_NETDEV_10000=y
651# CONFIG_WLAN_PRE80211 is not set 674# CONFIG_WLAN_PRE80211 is not set
652# CONFIG_WLAN_80211 is not set 675# CONFIG_WLAN_80211 is not set
653# CONFIG_IWLWIFI_LEDS is not set 676# CONFIG_IWLWIFI_LEDS is not set
677
678#
679# Enable WiMAX (Networking options) to see the WiMAX drivers
680#
654# CONFIG_WAN is not set 681# CONFIG_WAN is not set
655# CONFIG_FDDI is not set 682# CONFIG_FDDI is not set
656# CONFIG_HIPPI is not set 683# CONFIG_HIPPI is not set
@@ -721,8 +748,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
721# CONFIG_SERIAL_JSM is not set 748# CONFIG_SERIAL_JSM is not set
722# CONFIG_SERIAL_OF_PLATFORM is not set 749# CONFIG_SERIAL_OF_PLATFORM is not set
723CONFIG_UNIX98_PTYS=y 750CONFIG_UNIX98_PTYS=y
751# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
724CONFIG_LEGACY_PTYS=y 752CONFIG_LEGACY_PTYS=y
725CONFIG_LEGACY_PTY_COUNT=256 753CONFIG_LEGACY_PTY_COUNT=256
754# CONFIG_HVC_UDBG is not set
726# CONFIG_IPMI_HANDLER is not set 755# CONFIG_IPMI_HANDLER is not set
727CONFIG_HW_RANDOM=y 756CONFIG_HW_RANDOM=y
728# CONFIG_NVRAM is not set 757# CONFIG_NVRAM is not set
@@ -787,8 +816,8 @@ CONFIG_I2C_MPC=y
787# Miscellaneous I2C Chip support 816# Miscellaneous I2C Chip support
788# 817#
789# CONFIG_DS1682 is not set 818# CONFIG_DS1682 is not set
790# CONFIG_AT24 is not set 819# CONFIG_EEPROM_AT24 is not set
791# CONFIG_SENSORS_EEPROM is not set 820# CONFIG_EEPROM_LEGACY is not set
792# CONFIG_SENSORS_PCF8574 is not set 821# CONFIG_SENSORS_PCF8574 is not set
793# CONFIG_PCF8575 is not set 822# CONFIG_PCF8575 is not set
794# CONFIG_SENSORS_PCA9539 is not set 823# CONFIG_SENSORS_PCA9539 is not set
@@ -814,8 +843,10 @@ CONFIG_HWMON=y
814# CONFIG_SENSORS_ADM1029 is not set 843# CONFIG_SENSORS_ADM1029 is not set
815# CONFIG_SENSORS_ADM1031 is not set 844# CONFIG_SENSORS_ADM1031 is not set
816# CONFIG_SENSORS_ADM9240 is not set 845# CONFIG_SENSORS_ADM9240 is not set
846# CONFIG_SENSORS_ADT7462 is not set
817# CONFIG_SENSORS_ADT7470 is not set 847# CONFIG_SENSORS_ADT7470 is not set
818# CONFIG_SENSORS_ADT7473 is not set 848# CONFIG_SENSORS_ADT7473 is not set
849# CONFIG_SENSORS_ADT7475 is not set
819# CONFIG_SENSORS_ATXP1 is not set 850# CONFIG_SENSORS_ATXP1 is not set
820# CONFIG_SENSORS_DS1621 is not set 851# CONFIG_SENSORS_DS1621 is not set
821# CONFIG_SENSORS_I5K_AMB is not set 852# CONFIG_SENSORS_I5K_AMB is not set
@@ -836,6 +867,7 @@ CONFIG_SENSORS_LM75=y
836# CONFIG_SENSORS_LM90 is not set 867# CONFIG_SENSORS_LM90 is not set
837# CONFIG_SENSORS_LM92 is not set 868# CONFIG_SENSORS_LM92 is not set
838# CONFIG_SENSORS_LM93 is not set 869# CONFIG_SENSORS_LM93 is not set
870# CONFIG_SENSORS_LTC4245 is not set
839# CONFIG_SENSORS_MAX1619 is not set 871# CONFIG_SENSORS_MAX1619 is not set
840# CONFIG_SENSORS_MAX6650 is not set 872# CONFIG_SENSORS_MAX6650 is not set
841# CONFIG_SENSORS_PC87360 is not set 873# CONFIG_SENSORS_PC87360 is not set
@@ -862,11 +894,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
862# CONFIG_THERMAL is not set 894# CONFIG_THERMAL is not set
863# CONFIG_THERMAL_HWMON is not set 895# CONFIG_THERMAL_HWMON is not set
864# CONFIG_WATCHDOG is not set 896# CONFIG_WATCHDOG is not set
897CONFIG_SSB_POSSIBLE=y
865 898
866# 899#
867# Sonics Silicon Backplane 900# Sonics Silicon Backplane
868# 901#
869CONFIG_SSB_POSSIBLE=y
870# CONFIG_SSB is not set 902# CONFIG_SSB is not set
871 903
872# 904#
@@ -875,18 +907,13 @@ CONFIG_SSB_POSSIBLE=y
875# CONFIG_MFD_CORE is not set 907# CONFIG_MFD_CORE is not set
876# CONFIG_MFD_SM501 is not set 908# CONFIG_MFD_SM501 is not set
877# CONFIG_HTC_PASIC3 is not set 909# CONFIG_HTC_PASIC3 is not set
910# CONFIG_TWL4030_CORE is not set
878# CONFIG_MFD_TMIO is not set 911# CONFIG_MFD_TMIO is not set
879# CONFIG_PMIC_DA903X is not set 912# CONFIG_PMIC_DA903X is not set
880# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
881# CONFIG_MFD_WM8350_I2C is not set 914# CONFIG_MFD_WM8350_I2C is not set
882 915# CONFIG_MFD_PCF50633 is not set
883#
884# Voltage and Current regulators
885#
886# CONFIG_REGULATOR is not set 916# CONFIG_REGULATOR is not set
887# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
888# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
889# CONFIG_REGULATOR_BQ24022 is not set
890 917
891# 918#
892# Multimedia devices 919# Multimedia devices
@@ -942,9 +969,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
942# 969#
943 970
944# 971#
945# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 972# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
946# 973#
947# CONFIG_USB_GADGET is not set 974# CONFIG_USB_GADGET is not set
975
976#
977# OTG and related infrastructure
978#
948# CONFIG_UWB is not set 979# CONFIG_UWB is not set
949# CONFIG_MMC is not set 980# CONFIG_MMC is not set
950# CONFIG_MEMSTICK is not set 981# CONFIG_MEMSTICK is not set
@@ -976,6 +1007,7 @@ CONFIG_FS_MBCACHE=y
976CONFIG_FILE_LOCKING=y 1007CONFIG_FILE_LOCKING=y
977# CONFIG_XFS_FS is not set 1008# CONFIG_XFS_FS is not set
978# CONFIG_OCFS2_FS is not set 1009# CONFIG_OCFS2_FS is not set
1010# CONFIG_BTRFS_FS is not set
979CONFIG_DNOTIFY=y 1011CONFIG_DNOTIFY=y
980CONFIG_INOTIFY=y 1012CONFIG_INOTIFY=y
981CONFIG_INOTIFY_USER=y 1013CONFIG_INOTIFY_USER=y
@@ -1009,10 +1041,7 @@ CONFIG_TMPFS=y
1009# CONFIG_TMPFS_POSIX_ACL is not set 1041# CONFIG_TMPFS_POSIX_ACL is not set
1010# CONFIG_HUGETLB_PAGE is not set 1042# CONFIG_HUGETLB_PAGE is not set
1011# CONFIG_CONFIGFS_FS is not set 1043# CONFIG_CONFIGFS_FS is not set
1012 1044CONFIG_MISC_FILESYSTEMS=y
1013#
1014# Miscellaneous filesystems
1015#
1016# CONFIG_ADFS_FS is not set 1045# CONFIG_ADFS_FS is not set
1017# CONFIG_AFFS_FS is not set 1046# CONFIG_AFFS_FS is not set
1018# CONFIG_HFS_FS is not set 1047# CONFIG_HFS_FS is not set
@@ -1032,6 +1061,7 @@ CONFIG_JFFS2_ZLIB=y
1032CONFIG_JFFS2_RTIME=y 1061CONFIG_JFFS2_RTIME=y
1033# CONFIG_JFFS2_RUBIN is not set 1062# CONFIG_JFFS2_RUBIN is not set
1034CONFIG_CRAMFS=y 1063CONFIG_CRAMFS=y
1064# CONFIG_SQUASHFS is not set
1035# CONFIG_VXFS_FS is not set 1065# CONFIG_VXFS_FS is not set
1036# CONFIG_MINIX_FS is not set 1066# CONFIG_MINIX_FS is not set
1037# CONFIG_OMFS_FS is not set 1067# CONFIG_OMFS_FS is not set
@@ -1082,6 +1112,7 @@ CONFIG_PARTITION_ADVANCED=y
1082# Library routines 1112# Library routines
1083# 1113#
1084CONFIG_BITREVERSE=y 1114CONFIG_BITREVERSE=y
1115CONFIG_GENERIC_FIND_LAST_BIT=y
1085# CONFIG_CRC_CCITT is not set 1116# CONFIG_CRC_CCITT is not set
1086# CONFIG_CRC16 is not set 1117# CONFIG_CRC16 is not set
1087# CONFIG_CRC_T10DIF is not set 1118# CONFIG_CRC_T10DIF is not set
@@ -1117,6 +1148,8 @@ CONFIG_FRAME_WARN=1024
1117# CONFIG_LATENCYTOP is not set 1148# CONFIG_LATENCYTOP is not set
1118CONFIG_SYSCTL_SYSCALL_CHECK=y 1149CONFIG_SYSCTL_SYSCALL_CHECK=y
1119CONFIG_HAVE_FUNCTION_TRACER=y 1150CONFIG_HAVE_FUNCTION_TRACER=y
1151CONFIG_HAVE_DYNAMIC_FTRACE=y
1152CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1120 1153
1121# 1154#
1122# Tracers 1155# Tracers
@@ -1124,6 +1157,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1124# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1157# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1125# CONFIG_SAMPLES is not set 1158# CONFIG_SAMPLES is not set
1126CONFIG_HAVE_ARCH_KGDB=y 1159CONFIG_HAVE_ARCH_KGDB=y
1160CONFIG_PRINT_STACK_DEPTH=64
1127# CONFIG_IRQSTACKS is not set 1161# CONFIG_IRQSTACKS is not set
1128# CONFIG_PPC_EARLY_DEBUG is not set 1162# CONFIG_PPC_EARLY_DEBUG is not set
1129 1163
@@ -1141,6 +1175,7 @@ CONFIG_CRYPTO=y
1141# 1175#
1142# CONFIG_CRYPTO_FIPS is not set 1176# CONFIG_CRYPTO_FIPS is not set
1143# CONFIG_CRYPTO_MANAGER is not set 1177# CONFIG_CRYPTO_MANAGER is not set
1178# CONFIG_CRYPTO_MANAGER2 is not set
1144# CONFIG_CRYPTO_GF128MUL is not set 1179# CONFIG_CRYPTO_GF128MUL is not set
1145# CONFIG_CRYPTO_NULL is not set 1180# CONFIG_CRYPTO_NULL is not set
1146# CONFIG_CRYPTO_CRYPTD is not set 1181# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index c62489394535..b8669231c1fe 100644
--- a/arch/powerpc/configs/85xx/tqm8541_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8541_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:21 2008 4# Mon Jan 26 15:36:20 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 121CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,13 +126,11 @@ CONFIG_HAVE_CLK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 130# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 131CONFIG_BLOCK=y
132# CONFIG_LBD is not set 132# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
137 136
@@ -148,6 +147,10 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
152 155
153# 156#
@@ -189,6 +192,7 @@ CONFIG_CPM2=y
189# CONFIG_FSL_ULI1575 is not set 192# CONFIG_FSL_ULI1575 is not set
190CONFIG_CPM=y 193CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set 194# CONFIG_MPC8xxx_GPIO is not set
195# CONFIG_SIMPLE_GPIO is not set
192 196
193# 197#
194# Kernel options 198# Kernel options
@@ -226,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
236# CONFIG_PROC_DEVICETREE is not set 242# CONFIG_PROC_DEVICETREE is not set
237# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
255CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
257# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_HAS_RAPIDIO is not set 265# CONFIG_HAS_RAPIDIO is not set
259 266
260# 267#
@@ -276,6 +283,7 @@ CONFIG_NET=y
276# 283#
277# Networking options 284# Networking options
278# 285#
286CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 287CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 288# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 289CONFIG_UNIX=y
@@ -332,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
334# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
335 344
336# 345#
337# Network testing 346# Network testing
@@ -347,8 +356,9 @@ CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 356# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 357CONFIG_WIRELESS_OLD_REGULATORY=y
349# CONFIG_WIRELESS_EXT is not set 358# CONFIG_WIRELESS_EXT is not set
359# CONFIG_LIB80211 is not set
350# CONFIG_MAC80211 is not set 360# CONFIG_MAC80211 is not set
351# CONFIG_IEEE80211 is not set 361# CONFIG_WIMAX is not set
352# CONFIG_RFKILL is not set 362# CONFIG_RFKILL is not set
353# CONFIG_NET_9P is not set 363# CONFIG_NET_9P is not set
354 364
@@ -438,6 +448,12 @@ CONFIG_MTD_CFI_UTIL=y
438# CONFIG_MTD_ONENAND is not set 448# CONFIG_MTD_ONENAND is not set
439 449
440# 450#
451# LPDDR flash memory drivers
452#
453# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455
456#
441# UBI - Unsorted block images 457# UBI - Unsorted block images
442# 458#
443# CONFIG_MTD_UBI is not set 459# CONFIG_MTD_UBI is not set
@@ -468,8 +484,10 @@ CONFIG_MISC_DEVICES=y
468# CONFIG_EEPROM_93CX6 is not set 484# CONFIG_EEPROM_93CX6 is not set
469# CONFIG_SGI_IOC4 is not set 485# CONFIG_SGI_IOC4 is not set
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
490# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 491CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 492CONFIG_IDE=y
475 493
@@ -512,6 +530,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
512# CONFIG_BLK_DEV_JMICRON is not set 530# CONFIG_BLK_DEV_JMICRON is not set
513# CONFIG_BLK_DEV_SC1200 is not set 531# CONFIG_BLK_DEV_SC1200 is not set
514# CONFIG_BLK_DEV_PIIX is not set 532# CONFIG_BLK_DEV_PIIX is not set
533# CONFIG_BLK_DEV_IT8172 is not set
515# CONFIG_BLK_DEV_IT8213 is not set 534# CONFIG_BLK_DEV_IT8213 is not set
516# CONFIG_BLK_DEV_IT821X is not set 535# CONFIG_BLK_DEV_IT821X is not set
517# CONFIG_BLK_DEV_NS87415 is not set 536# CONFIG_BLK_DEV_NS87415 is not set
@@ -571,6 +590,9 @@ CONFIG_PHYLIB=y
571# CONFIG_BROADCOM_PHY is not set 590# CONFIG_BROADCOM_PHY is not set
572# CONFIG_ICPLUS_PHY is not set 591# CONFIG_ICPLUS_PHY is not set
573# CONFIG_REALTEK_PHY is not set 592# CONFIG_REALTEK_PHY is not set
593# CONFIG_NATIONAL_PHY is not set
594# CONFIG_STE10XP is not set
595# CONFIG_LSI_ET1011C_PHY is not set
574# CONFIG_FIXED_PHY is not set 596# CONFIG_FIXED_PHY is not set
575# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
576CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
@@ -594,7 +616,6 @@ CONFIG_NET_PCI=y
594# CONFIG_ADAPTEC_STARFIRE is not set 616# CONFIG_ADAPTEC_STARFIRE is not set
595# CONFIG_B44 is not set 617# CONFIG_B44 is not set
596# CONFIG_FORCEDETH is not set 618# CONFIG_FORCEDETH is not set
597# CONFIG_EEPRO100 is not set
598CONFIG_E100=y 619CONFIG_E100=y
599# CONFIG_FEALNX is not set 620# CONFIG_FEALNX is not set
600# CONFIG_NATSEMI is not set 621# CONFIG_NATSEMI is not set
@@ -604,6 +625,7 @@ CONFIG_E100=y
604# CONFIG_R6040 is not set 625# CONFIG_R6040 is not set
605# CONFIG_SIS900 is not set 626# CONFIG_SIS900 is not set
606# CONFIG_EPIC100 is not set 627# CONFIG_EPIC100 is not set
628# CONFIG_SMSC9420 is not set
607# CONFIG_SUNDANCE is not set 629# CONFIG_SUNDANCE is not set
608# CONFIG_TLAN is not set 630# CONFIG_TLAN is not set
609# CONFIG_VIA_RHINE is not set 631# CONFIG_VIA_RHINE is not set
@@ -634,6 +656,7 @@ CONFIG_GIANFAR=y
634# CONFIG_JME is not set 656# CONFIG_JME is not set
635CONFIG_NETDEV_10000=y 657CONFIG_NETDEV_10000=y
636# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
659CONFIG_CHELSIO_T3_DEPENDS=y
637# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set 661# CONFIG_ENIC is not set
639# CONFIG_IXGBE is not set 662# CONFIG_IXGBE is not set
@@ -656,6 +679,10 @@ CONFIG_NETDEV_10000=y
656# CONFIG_WLAN_PRE80211 is not set 679# CONFIG_WLAN_PRE80211 is not set
657# CONFIG_WLAN_80211 is not set 680# CONFIG_WLAN_80211 is not set
658# CONFIG_IWLWIFI_LEDS is not set 681# CONFIG_IWLWIFI_LEDS is not set
682
683#
684# Enable WiMAX (Networking options) to see the WiMAX drivers
685#
659# CONFIG_WAN is not set 686# CONFIG_WAN is not set
660# CONFIG_FDDI is not set 687# CONFIG_FDDI is not set
661# CONFIG_HIPPI is not set 688# CONFIG_HIPPI is not set
@@ -728,8 +755,10 @@ CONFIG_SERIAL_CPM_CONSOLE=y
728# CONFIG_SERIAL_JSM is not set 755# CONFIG_SERIAL_JSM is not set
729# CONFIG_SERIAL_OF_PLATFORM is not set 756# CONFIG_SERIAL_OF_PLATFORM is not set
730CONFIG_UNIX98_PTYS=y 757CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
731CONFIG_LEGACY_PTYS=y 759CONFIG_LEGACY_PTYS=y
732CONFIG_LEGACY_PTY_COUNT=256 760CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set
733# CONFIG_IPMI_HANDLER is not set 762# CONFIG_IPMI_HANDLER is not set
734CONFIG_HW_RANDOM=y 763CONFIG_HW_RANDOM=y
735# CONFIG_NVRAM is not set 764# CONFIG_NVRAM is not set
@@ -796,13 +825,12 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 825# Miscellaneous I2C Chip support
797# 826#
798# CONFIG_DS1682 is not set 827# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 828# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 829# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 830# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 831# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 832# CONFIG_SENSORS_PCA9539 is not set
804# CONFIG_SENSORS_PCF8591 is not set 833# CONFIG_SENSORS_PCF8591 is not set
805# CONFIG_TPS65010 is not set
806# CONFIG_SENSORS_MAX6875 is not set 834# CONFIG_SENSORS_MAX6875 is not set
807# CONFIG_SENSORS_TSL2550 is not set 835# CONFIG_SENSORS_TSL2550 is not set
808# CONFIG_I2C_DEBUG_CORE is not set 836# CONFIG_I2C_DEBUG_CORE is not set
@@ -816,6 +844,11 @@ CONFIG_GPIOLIB=y
816# CONFIG_GPIO_SYSFS is not set 844# CONFIG_GPIO_SYSFS is not set
817 845
818# 846#
847# Memory mapped GPIO expanders:
848#
849# CONFIG_GPIO_XILINX is not set
850
851#
819# I2C GPIO expanders: 852# I2C GPIO expanders:
820# 853#
821# CONFIG_GPIO_MAX732X is not set 854# CONFIG_GPIO_MAX732X is not set
@@ -842,8 +875,10 @@ CONFIG_HWMON=y
842# CONFIG_SENSORS_ADM1029 is not set 875# CONFIG_SENSORS_ADM1029 is not set
843# CONFIG_SENSORS_ADM1031 is not set 876# CONFIG_SENSORS_ADM1031 is not set
844# CONFIG_SENSORS_ADM9240 is not set 877# CONFIG_SENSORS_ADM9240 is not set
878# CONFIG_SENSORS_ADT7462 is not set
845# CONFIG_SENSORS_ADT7470 is not set 879# CONFIG_SENSORS_ADT7470 is not set
846# CONFIG_SENSORS_ADT7473 is not set 880# CONFIG_SENSORS_ADT7473 is not set
881# CONFIG_SENSORS_ADT7475 is not set
847# CONFIG_SENSORS_ATXP1 is not set 882# CONFIG_SENSORS_ATXP1 is not set
848# CONFIG_SENSORS_DS1621 is not set 883# CONFIG_SENSORS_DS1621 is not set
849# CONFIG_SENSORS_I5K_AMB is not set 884# CONFIG_SENSORS_I5K_AMB is not set
@@ -864,6 +899,7 @@ CONFIG_SENSORS_LM75=y
864# CONFIG_SENSORS_LM90 is not set 899# CONFIG_SENSORS_LM90 is not set
865# CONFIG_SENSORS_LM92 is not set 900# CONFIG_SENSORS_LM92 is not set
866# CONFIG_SENSORS_LM93 is not set 901# CONFIG_SENSORS_LM93 is not set
902# CONFIG_SENSORS_LTC4245 is not set
867# CONFIG_SENSORS_MAX1619 is not set 903# CONFIG_SENSORS_MAX1619 is not set
868# CONFIG_SENSORS_MAX6650 is not set 904# CONFIG_SENSORS_MAX6650 is not set
869# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
@@ -890,11 +926,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
890# CONFIG_THERMAL is not set 926# CONFIG_THERMAL is not set
891# CONFIG_THERMAL_HWMON is not set 927# CONFIG_THERMAL_HWMON is not set
892# CONFIG_WATCHDOG is not set 928# CONFIG_WATCHDOG is not set
929CONFIG_SSB_POSSIBLE=y
893 930
894# 931#
895# Sonics Silicon Backplane 932# Sonics Silicon Backplane
896# 933#
897CONFIG_SSB_POSSIBLE=y
898# CONFIG_SSB is not set 934# CONFIG_SSB is not set
899 935
900# 936#
@@ -903,18 +939,14 @@ CONFIG_SSB_POSSIBLE=y
903# CONFIG_MFD_CORE is not set 939# CONFIG_MFD_CORE is not set
904# CONFIG_MFD_SM501 is not set 940# CONFIG_MFD_SM501 is not set
905# CONFIG_HTC_PASIC3 is not set 941# CONFIG_HTC_PASIC3 is not set
942# CONFIG_TPS65010 is not set
943# CONFIG_TWL4030_CORE is not set
906# CONFIG_MFD_TMIO is not set 944# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set 945# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
910 948# CONFIG_MFD_PCF50633 is not set
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set 949# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
918 950
919# 951#
920# Multimedia devices 952# Multimedia devices
@@ -970,9 +1002,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
970# 1002#
971 1003
972# 1004#
973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
974# 1006#
975# CONFIG_USB_GADGET is not set 1007# CONFIG_USB_GADGET is not set
1008
1009#
1010# OTG and related infrastructure
1011#
976# CONFIG_UWB is not set 1012# CONFIG_UWB is not set
977# CONFIG_MMC is not set 1013# CONFIG_MMC is not set
978# CONFIG_MEMSTICK is not set 1014# CONFIG_MEMSTICK is not set
@@ -1004,6 +1040,7 @@ CONFIG_FS_MBCACHE=y
1004CONFIG_FILE_LOCKING=y 1040CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1041# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1042# CONFIG_OCFS2_FS is not set
1043# CONFIG_BTRFS_FS is not set
1007CONFIG_DNOTIFY=y 1044CONFIG_DNOTIFY=y
1008CONFIG_INOTIFY=y 1045CONFIG_INOTIFY=y
1009CONFIG_INOTIFY_USER=y 1046CONFIG_INOTIFY_USER=y
@@ -1037,10 +1074,7 @@ CONFIG_TMPFS=y
1037# CONFIG_TMPFS_POSIX_ACL is not set 1074# CONFIG_TMPFS_POSIX_ACL is not set
1038# CONFIG_HUGETLB_PAGE is not set 1075# CONFIG_HUGETLB_PAGE is not set
1039# CONFIG_CONFIGFS_FS is not set 1076# CONFIG_CONFIGFS_FS is not set
1040 1077CONFIG_MISC_FILESYSTEMS=y
1041#
1042# Miscellaneous filesystems
1043#
1044# CONFIG_ADFS_FS is not set 1078# CONFIG_ADFS_FS is not set
1045# CONFIG_AFFS_FS is not set 1079# CONFIG_AFFS_FS is not set
1046# CONFIG_HFS_FS is not set 1080# CONFIG_HFS_FS is not set
@@ -1060,6 +1094,7 @@ CONFIG_JFFS2_ZLIB=y
1060CONFIG_JFFS2_RTIME=y 1094CONFIG_JFFS2_RTIME=y
1061# CONFIG_JFFS2_RUBIN is not set 1095# CONFIG_JFFS2_RUBIN is not set
1062CONFIG_CRAMFS=y 1096CONFIG_CRAMFS=y
1097# CONFIG_SQUASHFS is not set
1063# CONFIG_VXFS_FS is not set 1098# CONFIG_VXFS_FS is not set
1064# CONFIG_MINIX_FS is not set 1099# CONFIG_MINIX_FS is not set
1065# CONFIG_OMFS_FS is not set 1100# CONFIG_OMFS_FS is not set
@@ -1110,6 +1145,7 @@ CONFIG_PARTITION_ADVANCED=y
1110# Library routines 1145# Library routines
1111# 1146#
1112CONFIG_BITREVERSE=y 1147CONFIG_BITREVERSE=y
1148CONFIG_GENERIC_FIND_LAST_BIT=y
1113# CONFIG_CRC_CCITT is not set 1149# CONFIG_CRC_CCITT is not set
1114# CONFIG_CRC16 is not set 1150# CONFIG_CRC16 is not set
1115# CONFIG_CRC_T10DIF is not set 1151# CONFIG_CRC_T10DIF is not set
@@ -1145,6 +1181,8 @@ CONFIG_FRAME_WARN=1024
1145# CONFIG_LATENCYTOP is not set 1181# CONFIG_LATENCYTOP is not set
1146CONFIG_SYSCTL_SYSCALL_CHECK=y 1182CONFIG_SYSCTL_SYSCALL_CHECK=y
1147CONFIG_HAVE_FUNCTION_TRACER=y 1183CONFIG_HAVE_FUNCTION_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1148 1186
1149# 1187#
1150# Tracers 1188# Tracers
@@ -1152,6 +1190,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1153# CONFIG_SAMPLES is not set 1191# CONFIG_SAMPLES is not set
1154CONFIG_HAVE_ARCH_KGDB=y 1192CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64
1155# CONFIG_IRQSTACKS is not set 1194# CONFIG_IRQSTACKS is not set
1156# CONFIG_PPC_EARLY_DEBUG is not set 1195# CONFIG_PPC_EARLY_DEBUG is not set
1157 1196
@@ -1169,6 +1208,7 @@ CONFIG_CRYPTO=y
1169# 1208#
1170# CONFIG_CRYPTO_FIPS is not set 1209# CONFIG_CRYPTO_FIPS is not set
1171# CONFIG_CRYPTO_MANAGER is not set 1210# CONFIG_CRYPTO_MANAGER is not set
1211# CONFIG_CRYPTO_MANAGER2 is not set
1172# CONFIG_CRYPTO_GF128MUL is not set 1212# CONFIG_CRYPTO_GF128MUL is not set
1173# CONFIG_CRYPTO_NULL is not set 1213# CONFIG_CRYPTO_NULL is not set
1174# CONFIG_CRYPTO_CRYPTD is not set 1214# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index eef45b97dc3e..0bc45975911a 100644
--- a/arch/powerpc/configs/85xx/tqm8548_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8548_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:22 2008 4# Mon Jan 26 15:36:20 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -45,7 +47,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 47CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
51CONFIG_OF=y 53CONFIG_OF=y
@@ -75,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 81# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -115,7 +117,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 117CONFIG_SLUB=y
116# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +127,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 131CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 132# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +134,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 134# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 135# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 136# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 137CONFIG_BLOCK=y
139# CONFIG_LBD is not set 138# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set 139# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
144 142
@@ -155,6 +153,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_TREE_RCU is not set
157# CONFIG_PREEMPT_RCU is not set
158# CONFIG_TREE_RCU_TRACE is not set
159# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 160# CONFIG_FREEZER is not set
159 161
160# 162#
@@ -195,6 +197,7 @@ CONFIG_MPIC=y
195# CONFIG_CPM2 is not set 197# CONFIG_CPM2 is not set
196# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
197# CONFIG_MPC8xxx_GPIO is not set 199# CONFIG_MPC8xxx_GPIO is not set
200# CONFIG_SIMPLE_GPIO is not set
198 201
199# 202#
200# Kernel options 203# Kernel options
@@ -233,12 +236,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
233CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
234CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
235CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set
242CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
243CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
244# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -265,6 +270,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 270# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set 271# CONFIG_PCI_LEGACY is not set
267# CONFIG_PCI_DEBUG is not set 272# CONFIG_PCI_DEBUG is not set
273# CONFIG_PCI_STUB is not set
268# CONFIG_PCCARD is not set 274# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 275# CONFIG_HOTPLUG_PCI is not set
270# CONFIG_HAS_RAPIDIO is not set 276# CONFIG_HAS_RAPIDIO is not set
@@ -288,6 +294,7 @@ CONFIG_NET=y
288# 294#
289# Networking options 295# Networking options
290# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 298CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -344,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
346# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
347 355
348# 356#
349# Network testing 357# Network testing
@@ -359,8 +367,9 @@ CONFIG_WIRELESS=y
359# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y 368CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
362# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 372# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 374# CONFIG_NET_9P is not set
366 375
@@ -383,6 +392,7 @@ CONFIG_MTD=y
383# CONFIG_MTD_DEBUG is not set 392# CONFIG_MTD_DEBUG is not set
384# CONFIG_MTD_CONCAT is not set 393# CONFIG_MTD_CONCAT is not set
385CONFIG_MTD_PARTITIONS=y 394CONFIG_MTD_PARTITIONS=y
395# CONFIG_MTD_TESTS is not set
386# CONFIG_MTD_REDBOOT_PARTS is not set 396# CONFIG_MTD_REDBOOT_PARTS is not set
387# CONFIG_MTD_CMDLINE_PARTS is not set 397# CONFIG_MTD_CMDLINE_PARTS is not set
388CONFIG_MTD_OF_PARTS=y 398CONFIG_MTD_OF_PARTS=y
@@ -465,6 +475,12 @@ CONFIG_MTD_NAND_IDS=y
465# CONFIG_MTD_ONENAND is not set 475# CONFIG_MTD_ONENAND is not set
466 476
467# 477#
478# LPDDR flash memory drivers
479#
480# CONFIG_MTD_LPDDR is not set
481# CONFIG_MTD_QINFO_PROBE is not set
482
483#
468# UBI - Unsorted block images 484# UBI - Unsorted block images
469# 485#
470CONFIG_MTD_UBI=m 486CONFIG_MTD_UBI=m
@@ -502,8 +518,10 @@ CONFIG_MISC_DEVICES=y
502# CONFIG_EEPROM_93CX6 is not set 518# CONFIG_EEPROM_93CX6 is not set
503# CONFIG_SGI_IOC4 is not set 519# CONFIG_SGI_IOC4 is not set
504# CONFIG_TIFM_CORE is not set 520# CONFIG_TIFM_CORE is not set
521# CONFIG_ICS932S401 is not set
505# CONFIG_ENCLOSURE_SERVICES is not set 522# CONFIG_ENCLOSURE_SERVICES is not set
506# CONFIG_HP_ILO is not set 523# CONFIG_HP_ILO is not set
524# CONFIG_C2PORT is not set
507CONFIG_HAVE_IDE=y 525CONFIG_HAVE_IDE=y
508CONFIG_IDE=y 526CONFIG_IDE=y
509 527
@@ -546,6 +564,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
546# CONFIG_BLK_DEV_JMICRON is not set 564# CONFIG_BLK_DEV_JMICRON is not set
547# CONFIG_BLK_DEV_SC1200 is not set 565# CONFIG_BLK_DEV_SC1200 is not set
548# CONFIG_BLK_DEV_PIIX is not set 566# CONFIG_BLK_DEV_PIIX is not set
567# CONFIG_BLK_DEV_IT8172 is not set
549# CONFIG_BLK_DEV_IT8213 is not set 568# CONFIG_BLK_DEV_IT8213 is not set
550# CONFIG_BLK_DEV_IT821X is not set 569# CONFIG_BLK_DEV_IT821X is not set
551# CONFIG_BLK_DEV_NS87415 is not set 570# CONFIG_BLK_DEV_NS87415 is not set
@@ -605,6 +624,9 @@ CONFIG_PHYLIB=y
605# CONFIG_BROADCOM_PHY is not set 624# CONFIG_BROADCOM_PHY is not set
606# CONFIG_ICPLUS_PHY is not set 625# CONFIG_ICPLUS_PHY is not set
607# CONFIG_REALTEK_PHY is not set 626# CONFIG_REALTEK_PHY is not set
627# CONFIG_NATIONAL_PHY is not set
628# CONFIG_STE10XP is not set
629# CONFIG_LSI_ET1011C_PHY is not set
608# CONFIG_FIXED_PHY is not set 630# CONFIG_FIXED_PHY is not set
609# CONFIG_MDIO_BITBANG is not set 631# CONFIG_MDIO_BITBANG is not set
610CONFIG_NET_ETHERNET=y 632CONFIG_NET_ETHERNET=y
@@ -649,6 +671,7 @@ CONFIG_GIANFAR=y
649# CONFIG_JME is not set 671# CONFIG_JME is not set
650CONFIG_NETDEV_10000=y 672CONFIG_NETDEV_10000=y
651# CONFIG_CHELSIO_T1 is not set 673# CONFIG_CHELSIO_T1 is not set
674CONFIG_CHELSIO_T3_DEPENDS=y
652# CONFIG_CHELSIO_T3 is not set 675# CONFIG_CHELSIO_T3 is not set
653# CONFIG_ENIC is not set 676# CONFIG_ENIC is not set
654# CONFIG_IXGBE is not set 677# CONFIG_IXGBE is not set
@@ -671,6 +694,10 @@ CONFIG_NETDEV_10000=y
671# CONFIG_WLAN_PRE80211 is not set 694# CONFIG_WLAN_PRE80211 is not set
672# CONFIG_WLAN_80211 is not set 695# CONFIG_WLAN_80211 is not set
673# CONFIG_IWLWIFI_LEDS is not set 696# CONFIG_IWLWIFI_LEDS is not set
697
698#
699# Enable WiMAX (Networking options) to see the WiMAX drivers
700#
674# CONFIG_WAN is not set 701# CONFIG_WAN is not set
675# CONFIG_FDDI is not set 702# CONFIG_FDDI is not set
676# CONFIG_HIPPI is not set 703# CONFIG_HIPPI is not set
@@ -741,8 +768,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
741# CONFIG_SERIAL_JSM is not set 768# CONFIG_SERIAL_JSM is not set
742# CONFIG_SERIAL_OF_PLATFORM is not set 769# CONFIG_SERIAL_OF_PLATFORM is not set
743CONFIG_UNIX98_PTYS=y 770CONFIG_UNIX98_PTYS=y
771# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
744CONFIG_LEGACY_PTYS=y 772CONFIG_LEGACY_PTYS=y
745CONFIG_LEGACY_PTY_COUNT=256 773CONFIG_LEGACY_PTY_COUNT=256
774# CONFIG_HVC_UDBG is not set
746# CONFIG_IPMI_HANDLER is not set 775# CONFIG_IPMI_HANDLER is not set
747# CONFIG_HW_RANDOM is not set 776# CONFIG_HW_RANDOM is not set
748# CONFIG_NVRAM is not set 777# CONFIG_NVRAM is not set
@@ -806,8 +835,8 @@ CONFIG_I2C_MPC=y
806# Miscellaneous I2C Chip support 835# Miscellaneous I2C Chip support
807# 836#
808# CONFIG_DS1682 is not set 837# CONFIG_DS1682 is not set
809# CONFIG_AT24 is not set 838# CONFIG_EEPROM_AT24 is not set
810# CONFIG_SENSORS_EEPROM is not set 839# CONFIG_EEPROM_LEGACY is not set
811# CONFIG_SENSORS_PCF8574 is not set 840# CONFIG_SENSORS_PCF8574 is not set
812# CONFIG_PCF8575 is not set 841# CONFIG_PCF8575 is not set
813# CONFIG_SENSORS_PCA9539 is not set 842# CONFIG_SENSORS_PCA9539 is not set
@@ -833,8 +862,10 @@ CONFIG_HWMON=y
833# CONFIG_SENSORS_ADM1029 is not set 862# CONFIG_SENSORS_ADM1029 is not set
834# CONFIG_SENSORS_ADM1031 is not set 863# CONFIG_SENSORS_ADM1031 is not set
835# CONFIG_SENSORS_ADM9240 is not set 864# CONFIG_SENSORS_ADM9240 is not set
865# CONFIG_SENSORS_ADT7462 is not set
836# CONFIG_SENSORS_ADT7470 is not set 866# CONFIG_SENSORS_ADT7470 is not set
837# CONFIG_SENSORS_ADT7473 is not set 867# CONFIG_SENSORS_ADT7473 is not set
868# CONFIG_SENSORS_ADT7475 is not set
838# CONFIG_SENSORS_ATXP1 is not set 869# CONFIG_SENSORS_ATXP1 is not set
839# CONFIG_SENSORS_DS1621 is not set 870# CONFIG_SENSORS_DS1621 is not set
840# CONFIG_SENSORS_I5K_AMB is not set 871# CONFIG_SENSORS_I5K_AMB is not set
@@ -855,6 +886,7 @@ CONFIG_SENSORS_LM75=y
855# CONFIG_SENSORS_LM90 is not set 886# CONFIG_SENSORS_LM90 is not set
856# CONFIG_SENSORS_LM92 is not set 887# CONFIG_SENSORS_LM92 is not set
857# CONFIG_SENSORS_LM93 is not set 888# CONFIG_SENSORS_LM93 is not set
889# CONFIG_SENSORS_LTC4245 is not set
858# CONFIG_SENSORS_MAX1619 is not set 890# CONFIG_SENSORS_MAX1619 is not set
859# CONFIG_SENSORS_MAX6650 is not set 891# CONFIG_SENSORS_MAX6650 is not set
860# CONFIG_SENSORS_PC87360 is not set 892# CONFIG_SENSORS_PC87360 is not set
@@ -881,11 +913,11 @@ CONFIG_SENSORS_LM75=y
881# CONFIG_THERMAL is not set 913# CONFIG_THERMAL is not set
882# CONFIG_THERMAL_HWMON is not set 914# CONFIG_THERMAL_HWMON is not set
883# CONFIG_WATCHDOG is not set 915# CONFIG_WATCHDOG is not set
916CONFIG_SSB_POSSIBLE=y
884 917
885# 918#
886# Sonics Silicon Backplane 919# Sonics Silicon Backplane
887# 920#
888CONFIG_SSB_POSSIBLE=y
889# CONFIG_SSB is not set 921# CONFIG_SSB is not set
890 922
891# 923#
@@ -894,18 +926,13 @@ CONFIG_SSB_POSSIBLE=y
894# CONFIG_MFD_CORE is not set 926# CONFIG_MFD_CORE is not set
895# CONFIG_MFD_SM501 is not set 927# CONFIG_MFD_SM501 is not set
896# CONFIG_HTC_PASIC3 is not set 928# CONFIG_HTC_PASIC3 is not set
929# CONFIG_TWL4030_CORE is not set
897# CONFIG_MFD_TMIO is not set 930# CONFIG_MFD_TMIO is not set
898# CONFIG_PMIC_DA903X is not set 931# CONFIG_PMIC_DA903X is not set
899# CONFIG_MFD_WM8400 is not set 932# CONFIG_MFD_WM8400 is not set
900# CONFIG_MFD_WM8350_I2C is not set 933# CONFIG_MFD_WM8350_I2C is not set
901 934# CONFIG_MFD_PCF50633 is not set
902#
903# Voltage and Current regulators
904#
905# CONFIG_REGULATOR is not set 935# CONFIG_REGULATOR is not set
906# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
907# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
908# CONFIG_REGULATOR_BQ24022 is not set
909 936
910# 937#
911# Multimedia devices 938# Multimedia devices
@@ -961,9 +988,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
961# 988#
962 989
963# 990#
964# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 991# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
965# 992#
966# CONFIG_USB_GADGET is not set 993# CONFIG_USB_GADGET is not set
994
995#
996# OTG and related infrastructure
997#
967# CONFIG_UWB is not set 998# CONFIG_UWB is not set
968# CONFIG_MMC is not set 999# CONFIG_MMC is not set
969# CONFIG_MEMSTICK is not set 1000# CONFIG_MEMSTICK is not set
@@ -1001,6 +1032,7 @@ CONFIG_RTC_DRV_DS1307=y
1001# CONFIG_RTC_DRV_M41T80 is not set 1032# CONFIG_RTC_DRV_M41T80 is not set
1002# CONFIG_RTC_DRV_S35390A is not set 1033# CONFIG_RTC_DRV_S35390A is not set
1003# CONFIG_RTC_DRV_FM3130 is not set 1034# CONFIG_RTC_DRV_FM3130 is not set
1035# CONFIG_RTC_DRV_RX8581 is not set
1004 1036
1005# 1037#
1006# SPI RTC drivers 1038# SPI RTC drivers
@@ -1048,6 +1080,7 @@ CONFIG_FS_MBCACHE=y
1048CONFIG_FILE_LOCKING=y 1080CONFIG_FILE_LOCKING=y
1049# CONFIG_XFS_FS is not set 1081# CONFIG_XFS_FS is not set
1050# CONFIG_OCFS2_FS is not set 1082# CONFIG_OCFS2_FS is not set
1083# CONFIG_BTRFS_FS is not set
1051CONFIG_DNOTIFY=y 1084CONFIG_DNOTIFY=y
1052CONFIG_INOTIFY=y 1085CONFIG_INOTIFY=y
1053CONFIG_INOTIFY_USER=y 1086CONFIG_INOTIFY_USER=y
@@ -1081,10 +1114,7 @@ CONFIG_TMPFS=y
1081# CONFIG_TMPFS_POSIX_ACL is not set 1114# CONFIG_TMPFS_POSIX_ACL is not set
1082# CONFIG_HUGETLB_PAGE is not set 1115# CONFIG_HUGETLB_PAGE is not set
1083# CONFIG_CONFIGFS_FS is not set 1116# CONFIG_CONFIGFS_FS is not set
1084 1117CONFIG_MISC_FILESYSTEMS=y
1085#
1086# Miscellaneous filesystems
1087#
1088# CONFIG_ADFS_FS is not set 1118# CONFIG_ADFS_FS is not set
1089# CONFIG_AFFS_FS is not set 1119# CONFIG_AFFS_FS is not set
1090# CONFIG_HFS_FS is not set 1120# CONFIG_HFS_FS is not set
@@ -1095,6 +1125,7 @@ CONFIG_TMPFS=y
1095# CONFIG_JFFS2_FS is not set 1125# CONFIG_JFFS2_FS is not set
1096# CONFIG_UBIFS_FS is not set 1126# CONFIG_UBIFS_FS is not set
1097# CONFIG_CRAMFS is not set 1127# CONFIG_CRAMFS is not set
1128# CONFIG_SQUASHFS is not set
1098# CONFIG_VXFS_FS is not set 1129# CONFIG_VXFS_FS is not set
1099# CONFIG_MINIX_FS is not set 1130# CONFIG_MINIX_FS is not set
1100# CONFIG_OMFS_FS is not set 1131# CONFIG_OMFS_FS is not set
@@ -1145,6 +1176,7 @@ CONFIG_PARTITION_ADVANCED=y
1145# Library routines 1176# Library routines
1146# 1177#
1147CONFIG_BITREVERSE=y 1178CONFIG_BITREVERSE=y
1179CONFIG_GENERIC_FIND_LAST_BIT=y
1148# CONFIG_CRC_CCITT is not set 1180# CONFIG_CRC_CCITT is not set
1149# CONFIG_CRC16 is not set 1181# CONFIG_CRC16 is not set
1150# CONFIG_CRC_T10DIF is not set 1182# CONFIG_CRC_T10DIF is not set
@@ -1194,6 +1226,7 @@ CONFIG_DEBUG_MUTEXES=y
1194# CONFIG_DEBUG_MEMORY_INIT is not set 1226# CONFIG_DEBUG_MEMORY_INIT is not set
1195# CONFIG_DEBUG_LIST is not set 1227# CONFIG_DEBUG_LIST is not set
1196# CONFIG_DEBUG_SG is not set 1228# CONFIG_DEBUG_SG is not set
1229# CONFIG_DEBUG_NOTIFIERS is not set
1197# CONFIG_BOOT_PRINTK_DELAY is not set 1230# CONFIG_BOOT_PRINTK_DELAY is not set
1198# CONFIG_RCU_TORTURE_TEST is not set 1231# CONFIG_RCU_TORTURE_TEST is not set
1199# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1232# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1203,6 +1236,8 @@ CONFIG_DEBUG_MUTEXES=y
1203# CONFIG_LATENCYTOP is not set 1236# CONFIG_LATENCYTOP is not set
1204CONFIG_SYSCTL_SYSCALL_CHECK=y 1237CONFIG_SYSCTL_SYSCALL_CHECK=y
1205CONFIG_HAVE_FUNCTION_TRACER=y 1238CONFIG_HAVE_FUNCTION_TRACER=y
1239CONFIG_HAVE_DYNAMIC_FTRACE=y
1240CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1206 1241
1207# 1242#
1208# Tracers 1243# Tracers
@@ -1211,11 +1246,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1211# CONFIG_SCHED_TRACER is not set 1246# CONFIG_SCHED_TRACER is not set
1212# CONFIG_CONTEXT_SWITCH_TRACER is not set 1247# CONFIG_CONTEXT_SWITCH_TRACER is not set
1213# CONFIG_BOOT_TRACER is not set 1248# CONFIG_BOOT_TRACER is not set
1249# CONFIG_TRACE_BRANCH_PROFILING is not set
1214# CONFIG_STACK_TRACER is not set 1250# CONFIG_STACK_TRACER is not set
1215# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1251# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1216# CONFIG_SAMPLES is not set 1252# CONFIG_SAMPLES is not set
1217CONFIG_HAVE_ARCH_KGDB=y 1253CONFIG_HAVE_ARCH_KGDB=y
1218# CONFIG_KGDB is not set 1254# CONFIG_KGDB is not set
1255CONFIG_PRINT_STACK_DEPTH=64
1219# CONFIG_DEBUG_STACKOVERFLOW is not set 1256# CONFIG_DEBUG_STACKOVERFLOW is not set
1220# CONFIG_DEBUG_STACK_USAGE is not set 1257# CONFIG_DEBUG_STACK_USAGE is not set
1221# CONFIG_DEBUG_PAGEALLOC is not set 1258# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1241,6 +1278,7 @@ CONFIG_CRYPTO=y
1241# 1278#
1242# CONFIG_CRYPTO_FIPS is not set 1279# CONFIG_CRYPTO_FIPS is not set
1243# CONFIG_CRYPTO_MANAGER is not set 1280# CONFIG_CRYPTO_MANAGER is not set
1281# CONFIG_CRYPTO_MANAGER2 is not set
1244# CONFIG_CRYPTO_GF128MUL is not set 1282# CONFIG_CRYPTO_GF128MUL is not set
1245# CONFIG_CRYPTO_NULL is not set 1283# CONFIG_CRYPTO_NULL is not set
1246# CONFIG_CRYPTO_CRYPTD is not set 1284# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index 11b637e99a54..d5a864d74461 100644
--- a/arch/powerpc/configs/85xx/tqm8555_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8555_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:23 2008 4# Mon Jan 26 15:36:21 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 121CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,13 +126,11 @@ CONFIG_HAVE_CLK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 130# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 131CONFIG_BLOCK=y
132# CONFIG_LBD is not set 132# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
137 136
@@ -148,6 +147,10 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
152 155
153# 156#
@@ -189,6 +192,7 @@ CONFIG_CPM2=y
189# CONFIG_FSL_ULI1575 is not set 192# CONFIG_FSL_ULI1575 is not set
190CONFIG_CPM=y 193CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set 194# CONFIG_MPC8xxx_GPIO is not set
195# CONFIG_SIMPLE_GPIO is not set
192 196
193# 197#
194# Kernel options 198# Kernel options
@@ -226,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
236# CONFIG_PROC_DEVICETREE is not set 242# CONFIG_PROC_DEVICETREE is not set
237# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
255CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
257# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_HAS_RAPIDIO is not set 265# CONFIG_HAS_RAPIDIO is not set
259 266
260# 267#
@@ -276,6 +283,7 @@ CONFIG_NET=y
276# 283#
277# Networking options 284# Networking options
278# 285#
286CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 287CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 288# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 289CONFIG_UNIX=y
@@ -332,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
334# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
335 344
336# 345#
337# Network testing 346# Network testing
@@ -347,8 +356,9 @@ CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 356# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 357CONFIG_WIRELESS_OLD_REGULATORY=y
349# CONFIG_WIRELESS_EXT is not set 358# CONFIG_WIRELESS_EXT is not set
359# CONFIG_LIB80211 is not set
350# CONFIG_MAC80211 is not set 360# CONFIG_MAC80211 is not set
351# CONFIG_IEEE80211 is not set 361# CONFIG_WIMAX is not set
352# CONFIG_RFKILL is not set 362# CONFIG_RFKILL is not set
353# CONFIG_NET_9P is not set 363# CONFIG_NET_9P is not set
354 364
@@ -438,6 +448,12 @@ CONFIG_MTD_CFI_UTIL=y
438# CONFIG_MTD_ONENAND is not set 448# CONFIG_MTD_ONENAND is not set
439 449
440# 450#
451# LPDDR flash memory drivers
452#
453# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455
456#
441# UBI - Unsorted block images 457# UBI - Unsorted block images
442# 458#
443# CONFIG_MTD_UBI is not set 459# CONFIG_MTD_UBI is not set
@@ -468,8 +484,10 @@ CONFIG_MISC_DEVICES=y
468# CONFIG_EEPROM_93CX6 is not set 484# CONFIG_EEPROM_93CX6 is not set
469# CONFIG_SGI_IOC4 is not set 485# CONFIG_SGI_IOC4 is not set
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
490# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 491CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 492CONFIG_IDE=y
475 493
@@ -512,6 +530,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
512# CONFIG_BLK_DEV_JMICRON is not set 530# CONFIG_BLK_DEV_JMICRON is not set
513# CONFIG_BLK_DEV_SC1200 is not set 531# CONFIG_BLK_DEV_SC1200 is not set
514# CONFIG_BLK_DEV_PIIX is not set 532# CONFIG_BLK_DEV_PIIX is not set
533# CONFIG_BLK_DEV_IT8172 is not set
515# CONFIG_BLK_DEV_IT8213 is not set 534# CONFIG_BLK_DEV_IT8213 is not set
516# CONFIG_BLK_DEV_IT821X is not set 535# CONFIG_BLK_DEV_IT821X is not set
517# CONFIG_BLK_DEV_NS87415 is not set 536# CONFIG_BLK_DEV_NS87415 is not set
@@ -571,6 +590,9 @@ CONFIG_PHYLIB=y
571# CONFIG_BROADCOM_PHY is not set 590# CONFIG_BROADCOM_PHY is not set
572# CONFIG_ICPLUS_PHY is not set 591# CONFIG_ICPLUS_PHY is not set
573# CONFIG_REALTEK_PHY is not set 592# CONFIG_REALTEK_PHY is not set
593# CONFIG_NATIONAL_PHY is not set
594# CONFIG_STE10XP is not set
595# CONFIG_LSI_ET1011C_PHY is not set
574# CONFIG_FIXED_PHY is not set 596# CONFIG_FIXED_PHY is not set
575# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
576CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
@@ -594,7 +616,6 @@ CONFIG_NET_PCI=y
594# CONFIG_ADAPTEC_STARFIRE is not set 616# CONFIG_ADAPTEC_STARFIRE is not set
595# CONFIG_B44 is not set 617# CONFIG_B44 is not set
596# CONFIG_FORCEDETH is not set 618# CONFIG_FORCEDETH is not set
597# CONFIG_EEPRO100 is not set
598CONFIG_E100=y 619CONFIG_E100=y
599# CONFIG_FEALNX is not set 620# CONFIG_FEALNX is not set
600# CONFIG_NATSEMI is not set 621# CONFIG_NATSEMI is not set
@@ -604,6 +625,7 @@ CONFIG_E100=y
604# CONFIG_R6040 is not set 625# CONFIG_R6040 is not set
605# CONFIG_SIS900 is not set 626# CONFIG_SIS900 is not set
606# CONFIG_EPIC100 is not set 627# CONFIG_EPIC100 is not set
628# CONFIG_SMSC9420 is not set
607# CONFIG_SUNDANCE is not set 629# CONFIG_SUNDANCE is not set
608# CONFIG_TLAN is not set 630# CONFIG_TLAN is not set
609# CONFIG_VIA_RHINE is not set 631# CONFIG_VIA_RHINE is not set
@@ -634,6 +656,7 @@ CONFIG_GIANFAR=y
634# CONFIG_JME is not set 656# CONFIG_JME is not set
635CONFIG_NETDEV_10000=y 657CONFIG_NETDEV_10000=y
636# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
659CONFIG_CHELSIO_T3_DEPENDS=y
637# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set 661# CONFIG_ENIC is not set
639# CONFIG_IXGBE is not set 662# CONFIG_IXGBE is not set
@@ -656,6 +679,10 @@ CONFIG_NETDEV_10000=y
656# CONFIG_WLAN_PRE80211 is not set 679# CONFIG_WLAN_PRE80211 is not set
657# CONFIG_WLAN_80211 is not set 680# CONFIG_WLAN_80211 is not set
658# CONFIG_IWLWIFI_LEDS is not set 681# CONFIG_IWLWIFI_LEDS is not set
682
683#
684# Enable WiMAX (Networking options) to see the WiMAX drivers
685#
659# CONFIG_WAN is not set 686# CONFIG_WAN is not set
660# CONFIG_FDDI is not set 687# CONFIG_FDDI is not set
661# CONFIG_HIPPI is not set 688# CONFIG_HIPPI is not set
@@ -728,8 +755,10 @@ CONFIG_SERIAL_CPM_CONSOLE=y
728# CONFIG_SERIAL_JSM is not set 755# CONFIG_SERIAL_JSM is not set
729# CONFIG_SERIAL_OF_PLATFORM is not set 756# CONFIG_SERIAL_OF_PLATFORM is not set
730CONFIG_UNIX98_PTYS=y 757CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
731CONFIG_LEGACY_PTYS=y 759CONFIG_LEGACY_PTYS=y
732CONFIG_LEGACY_PTY_COUNT=256 760CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set
733# CONFIG_IPMI_HANDLER is not set 762# CONFIG_IPMI_HANDLER is not set
734CONFIG_HW_RANDOM=y 763CONFIG_HW_RANDOM=y
735# CONFIG_NVRAM is not set 764# CONFIG_NVRAM is not set
@@ -796,13 +825,12 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 825# Miscellaneous I2C Chip support
797# 826#
798# CONFIG_DS1682 is not set 827# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 828# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 829# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 830# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 831# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 832# CONFIG_SENSORS_PCA9539 is not set
804# CONFIG_SENSORS_PCF8591 is not set 833# CONFIG_SENSORS_PCF8591 is not set
805# CONFIG_TPS65010 is not set
806# CONFIG_SENSORS_MAX6875 is not set 834# CONFIG_SENSORS_MAX6875 is not set
807# CONFIG_SENSORS_TSL2550 is not set 835# CONFIG_SENSORS_TSL2550 is not set
808# CONFIG_I2C_DEBUG_CORE is not set 836# CONFIG_I2C_DEBUG_CORE is not set
@@ -816,6 +844,11 @@ CONFIG_GPIOLIB=y
816# CONFIG_GPIO_SYSFS is not set 844# CONFIG_GPIO_SYSFS is not set
817 845
818# 846#
847# Memory mapped GPIO expanders:
848#
849# CONFIG_GPIO_XILINX is not set
850
851#
819# I2C GPIO expanders: 852# I2C GPIO expanders:
820# 853#
821# CONFIG_GPIO_MAX732X is not set 854# CONFIG_GPIO_MAX732X is not set
@@ -842,8 +875,10 @@ CONFIG_HWMON=y
842# CONFIG_SENSORS_ADM1029 is not set 875# CONFIG_SENSORS_ADM1029 is not set
843# CONFIG_SENSORS_ADM1031 is not set 876# CONFIG_SENSORS_ADM1031 is not set
844# CONFIG_SENSORS_ADM9240 is not set 877# CONFIG_SENSORS_ADM9240 is not set
878# CONFIG_SENSORS_ADT7462 is not set
845# CONFIG_SENSORS_ADT7470 is not set 879# CONFIG_SENSORS_ADT7470 is not set
846# CONFIG_SENSORS_ADT7473 is not set 880# CONFIG_SENSORS_ADT7473 is not set
881# CONFIG_SENSORS_ADT7475 is not set
847# CONFIG_SENSORS_ATXP1 is not set 882# CONFIG_SENSORS_ATXP1 is not set
848# CONFIG_SENSORS_DS1621 is not set 883# CONFIG_SENSORS_DS1621 is not set
849# CONFIG_SENSORS_I5K_AMB is not set 884# CONFIG_SENSORS_I5K_AMB is not set
@@ -864,6 +899,7 @@ CONFIG_SENSORS_LM75=y
864# CONFIG_SENSORS_LM90 is not set 899# CONFIG_SENSORS_LM90 is not set
865# CONFIG_SENSORS_LM92 is not set 900# CONFIG_SENSORS_LM92 is not set
866# CONFIG_SENSORS_LM93 is not set 901# CONFIG_SENSORS_LM93 is not set
902# CONFIG_SENSORS_LTC4245 is not set
867# CONFIG_SENSORS_MAX1619 is not set 903# CONFIG_SENSORS_MAX1619 is not set
868# CONFIG_SENSORS_MAX6650 is not set 904# CONFIG_SENSORS_MAX6650 is not set
869# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
@@ -890,11 +926,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
890# CONFIG_THERMAL is not set 926# CONFIG_THERMAL is not set
891# CONFIG_THERMAL_HWMON is not set 927# CONFIG_THERMAL_HWMON is not set
892# CONFIG_WATCHDOG is not set 928# CONFIG_WATCHDOG is not set
929CONFIG_SSB_POSSIBLE=y
893 930
894# 931#
895# Sonics Silicon Backplane 932# Sonics Silicon Backplane
896# 933#
897CONFIG_SSB_POSSIBLE=y
898# CONFIG_SSB is not set 934# CONFIG_SSB is not set
899 935
900# 936#
@@ -903,18 +939,14 @@ CONFIG_SSB_POSSIBLE=y
903# CONFIG_MFD_CORE is not set 939# CONFIG_MFD_CORE is not set
904# CONFIG_MFD_SM501 is not set 940# CONFIG_MFD_SM501 is not set
905# CONFIG_HTC_PASIC3 is not set 941# CONFIG_HTC_PASIC3 is not set
942# CONFIG_TPS65010 is not set
943# CONFIG_TWL4030_CORE is not set
906# CONFIG_MFD_TMIO is not set 944# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set 945# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
910 948# CONFIG_MFD_PCF50633 is not set
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set 949# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
918 950
919# 951#
920# Multimedia devices 952# Multimedia devices
@@ -970,9 +1002,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
970# 1002#
971 1003
972# 1004#
973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
974# 1006#
975# CONFIG_USB_GADGET is not set 1007# CONFIG_USB_GADGET is not set
1008
1009#
1010# OTG and related infrastructure
1011#
976# CONFIG_UWB is not set 1012# CONFIG_UWB is not set
977# CONFIG_MMC is not set 1013# CONFIG_MMC is not set
978# CONFIG_MEMSTICK is not set 1014# CONFIG_MEMSTICK is not set
@@ -1004,6 +1040,7 @@ CONFIG_FS_MBCACHE=y
1004CONFIG_FILE_LOCKING=y 1040CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1041# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1042# CONFIG_OCFS2_FS is not set
1043# CONFIG_BTRFS_FS is not set
1007CONFIG_DNOTIFY=y 1044CONFIG_DNOTIFY=y
1008CONFIG_INOTIFY=y 1045CONFIG_INOTIFY=y
1009CONFIG_INOTIFY_USER=y 1046CONFIG_INOTIFY_USER=y
@@ -1037,10 +1074,7 @@ CONFIG_TMPFS=y
1037# CONFIG_TMPFS_POSIX_ACL is not set 1074# CONFIG_TMPFS_POSIX_ACL is not set
1038# CONFIG_HUGETLB_PAGE is not set 1075# CONFIG_HUGETLB_PAGE is not set
1039# CONFIG_CONFIGFS_FS is not set 1076# CONFIG_CONFIGFS_FS is not set
1040 1077CONFIG_MISC_FILESYSTEMS=y
1041#
1042# Miscellaneous filesystems
1043#
1044# CONFIG_ADFS_FS is not set 1078# CONFIG_ADFS_FS is not set
1045# CONFIG_AFFS_FS is not set 1079# CONFIG_AFFS_FS is not set
1046# CONFIG_HFS_FS is not set 1080# CONFIG_HFS_FS is not set
@@ -1060,6 +1094,7 @@ CONFIG_JFFS2_ZLIB=y
1060CONFIG_JFFS2_RTIME=y 1094CONFIG_JFFS2_RTIME=y
1061# CONFIG_JFFS2_RUBIN is not set 1095# CONFIG_JFFS2_RUBIN is not set
1062CONFIG_CRAMFS=y 1096CONFIG_CRAMFS=y
1097# CONFIG_SQUASHFS is not set
1063# CONFIG_VXFS_FS is not set 1098# CONFIG_VXFS_FS is not set
1064# CONFIG_MINIX_FS is not set 1099# CONFIG_MINIX_FS is not set
1065# CONFIG_OMFS_FS is not set 1100# CONFIG_OMFS_FS is not set
@@ -1110,6 +1145,7 @@ CONFIG_PARTITION_ADVANCED=y
1110# Library routines 1145# Library routines
1111# 1146#
1112CONFIG_BITREVERSE=y 1147CONFIG_BITREVERSE=y
1148CONFIG_GENERIC_FIND_LAST_BIT=y
1113# CONFIG_CRC_CCITT is not set 1149# CONFIG_CRC_CCITT is not set
1114# CONFIG_CRC16 is not set 1150# CONFIG_CRC16 is not set
1115# CONFIG_CRC_T10DIF is not set 1151# CONFIG_CRC_T10DIF is not set
@@ -1145,6 +1181,8 @@ CONFIG_FRAME_WARN=1024
1145# CONFIG_LATENCYTOP is not set 1181# CONFIG_LATENCYTOP is not set
1146CONFIG_SYSCTL_SYSCALL_CHECK=y 1182CONFIG_SYSCTL_SYSCALL_CHECK=y
1147CONFIG_HAVE_FUNCTION_TRACER=y 1183CONFIG_HAVE_FUNCTION_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1148 1186
1149# 1187#
1150# Tracers 1188# Tracers
@@ -1152,6 +1190,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1153# CONFIG_SAMPLES is not set 1191# CONFIG_SAMPLES is not set
1154CONFIG_HAVE_ARCH_KGDB=y 1192CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64
1155# CONFIG_IRQSTACKS is not set 1194# CONFIG_IRQSTACKS is not set
1156# CONFIG_PPC_EARLY_DEBUG is not set 1195# CONFIG_PPC_EARLY_DEBUG is not set
1157 1196
@@ -1169,6 +1208,7 @@ CONFIG_CRYPTO=y
1169# 1208#
1170# CONFIG_CRYPTO_FIPS is not set 1209# CONFIG_CRYPTO_FIPS is not set
1171# CONFIG_CRYPTO_MANAGER is not set 1210# CONFIG_CRYPTO_MANAGER is not set
1211# CONFIG_CRYPTO_MANAGER2 is not set
1172# CONFIG_CRYPTO_GF128MUL is not set 1212# CONFIG_CRYPTO_GF128MUL is not set
1173# CONFIG_CRYPTO_NULL is not set 1213# CONFIG_CRYPTO_NULL is not set
1174# CONFIG_CRYPTO_CRYPTD is not set 1214# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index 2519169b6d4b..a25009174f37 100644
--- a/arch/powerpc/configs/85xx/tqm8560_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8560_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:25 2008 4# Mon Jan 26 15:36:22 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -76,12 +78,12 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -114,7 +116,6 @@ CONFIG_SLUB_DEBUG=y
114CONFIG_SLUB=y 116CONFIG_SLUB=y
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 121CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,13 +126,11 @@ CONFIG_HAVE_CLK=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 130# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 131CONFIG_BLOCK=y
132# CONFIG_LBD is not set 132# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 135# CONFIG_BLK_DEV_INTEGRITY is not set
137 136
@@ -148,6 +147,10 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
152 155
153# 156#
@@ -189,6 +192,7 @@ CONFIG_CPM2=y
189# CONFIG_FSL_ULI1575 is not set 192# CONFIG_FSL_ULI1575 is not set
190CONFIG_CPM=y 193CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set 194# CONFIG_MPC8xxx_GPIO is not set
195# CONFIG_SIMPLE_GPIO is not set
192 196
193# 197#
194# Kernel options 198# Kernel options
@@ -226,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
235CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
236# CONFIG_PROC_DEVICETREE is not set 242# CONFIG_PROC_DEVICETREE is not set
237# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
255CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
257# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_HAS_RAPIDIO is not set 265# CONFIG_HAS_RAPIDIO is not set
259 266
260# 267#
@@ -276,6 +283,7 @@ CONFIG_NET=y
276# 283#
277# Networking options 284# Networking options
278# 285#
286CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 287CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 288# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 289CONFIG_UNIX=y
@@ -332,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
334# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set
335 344
336# 345#
337# Network testing 346# Network testing
@@ -347,8 +356,9 @@ CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 356# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 357CONFIG_WIRELESS_OLD_REGULATORY=y
349# CONFIG_WIRELESS_EXT is not set 358# CONFIG_WIRELESS_EXT is not set
359# CONFIG_LIB80211 is not set
350# CONFIG_MAC80211 is not set 360# CONFIG_MAC80211 is not set
351# CONFIG_IEEE80211 is not set 361# CONFIG_WIMAX is not set
352# CONFIG_RFKILL is not set 362# CONFIG_RFKILL is not set
353# CONFIG_NET_9P is not set 363# CONFIG_NET_9P is not set
354 364
@@ -438,6 +448,12 @@ CONFIG_MTD_CFI_UTIL=y
438# CONFIG_MTD_ONENAND is not set 448# CONFIG_MTD_ONENAND is not set
439 449
440# 450#
451# LPDDR flash memory drivers
452#
453# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455
456#
441# UBI - Unsorted block images 457# UBI - Unsorted block images
442# 458#
443# CONFIG_MTD_UBI is not set 459# CONFIG_MTD_UBI is not set
@@ -468,8 +484,10 @@ CONFIG_MISC_DEVICES=y
468# CONFIG_EEPROM_93CX6 is not set 484# CONFIG_EEPROM_93CX6 is not set
469# CONFIG_SGI_IOC4 is not set 485# CONFIG_SGI_IOC4 is not set
470# CONFIG_TIFM_CORE is not set 486# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
490# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 491CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 492CONFIG_IDE=y
475 493
@@ -512,6 +530,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
512# CONFIG_BLK_DEV_JMICRON is not set 530# CONFIG_BLK_DEV_JMICRON is not set
513# CONFIG_BLK_DEV_SC1200 is not set 531# CONFIG_BLK_DEV_SC1200 is not set
514# CONFIG_BLK_DEV_PIIX is not set 532# CONFIG_BLK_DEV_PIIX is not set
533# CONFIG_BLK_DEV_IT8172 is not set
515# CONFIG_BLK_DEV_IT8213 is not set 534# CONFIG_BLK_DEV_IT8213 is not set
516# CONFIG_BLK_DEV_IT821X is not set 535# CONFIG_BLK_DEV_IT821X is not set
517# CONFIG_BLK_DEV_NS87415 is not set 536# CONFIG_BLK_DEV_NS87415 is not set
@@ -571,6 +590,9 @@ CONFIG_PHYLIB=y
571# CONFIG_BROADCOM_PHY is not set 590# CONFIG_BROADCOM_PHY is not set
572# CONFIG_ICPLUS_PHY is not set 591# CONFIG_ICPLUS_PHY is not set
573# CONFIG_REALTEK_PHY is not set 592# CONFIG_REALTEK_PHY is not set
593# CONFIG_NATIONAL_PHY is not set
594# CONFIG_STE10XP is not set
595# CONFIG_LSI_ET1011C_PHY is not set
574# CONFIG_FIXED_PHY is not set 596# CONFIG_FIXED_PHY is not set
575# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
576CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
@@ -594,7 +616,6 @@ CONFIG_NET_PCI=y
594# CONFIG_ADAPTEC_STARFIRE is not set 616# CONFIG_ADAPTEC_STARFIRE is not set
595# CONFIG_B44 is not set 617# CONFIG_B44 is not set
596# CONFIG_FORCEDETH is not set 618# CONFIG_FORCEDETH is not set
597# CONFIG_EEPRO100 is not set
598CONFIG_E100=y 619CONFIG_E100=y
599# CONFIG_FEALNX is not set 620# CONFIG_FEALNX is not set
600# CONFIG_NATSEMI is not set 621# CONFIG_NATSEMI is not set
@@ -604,6 +625,7 @@ CONFIG_E100=y
604# CONFIG_R6040 is not set 625# CONFIG_R6040 is not set
605# CONFIG_SIS900 is not set 626# CONFIG_SIS900 is not set
606# CONFIG_EPIC100 is not set 627# CONFIG_EPIC100 is not set
628# CONFIG_SMSC9420 is not set
607# CONFIG_SUNDANCE is not set 629# CONFIG_SUNDANCE is not set
608# CONFIG_TLAN is not set 630# CONFIG_TLAN is not set
609# CONFIG_VIA_RHINE is not set 631# CONFIG_VIA_RHINE is not set
@@ -634,6 +656,7 @@ CONFIG_GIANFAR=y
634# CONFIG_JME is not set 656# CONFIG_JME is not set
635CONFIG_NETDEV_10000=y 657CONFIG_NETDEV_10000=y
636# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
659CONFIG_CHELSIO_T3_DEPENDS=y
637# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set 661# CONFIG_ENIC is not set
639# CONFIG_IXGBE is not set 662# CONFIG_IXGBE is not set
@@ -656,6 +679,10 @@ CONFIG_NETDEV_10000=y
656# CONFIG_WLAN_PRE80211 is not set 679# CONFIG_WLAN_PRE80211 is not set
657# CONFIG_WLAN_80211 is not set 680# CONFIG_WLAN_80211 is not set
658# CONFIG_IWLWIFI_LEDS is not set 681# CONFIG_IWLWIFI_LEDS is not set
682
683#
684# Enable WiMAX (Networking options) to see the WiMAX drivers
685#
659# CONFIG_WAN is not set 686# CONFIG_WAN is not set
660# CONFIG_FDDI is not set 687# CONFIG_FDDI is not set
661# CONFIG_HIPPI is not set 688# CONFIG_HIPPI is not set
@@ -728,8 +755,10 @@ CONFIG_SERIAL_CPM_CONSOLE=y
728# CONFIG_SERIAL_JSM is not set 755# CONFIG_SERIAL_JSM is not set
729# CONFIG_SERIAL_OF_PLATFORM is not set 756# CONFIG_SERIAL_OF_PLATFORM is not set
730CONFIG_UNIX98_PTYS=y 757CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
731CONFIG_LEGACY_PTYS=y 759CONFIG_LEGACY_PTYS=y
732CONFIG_LEGACY_PTY_COUNT=256 760CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set
733# CONFIG_IPMI_HANDLER is not set 762# CONFIG_IPMI_HANDLER is not set
734CONFIG_HW_RANDOM=y 763CONFIG_HW_RANDOM=y
735# CONFIG_NVRAM is not set 764# CONFIG_NVRAM is not set
@@ -796,13 +825,12 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 825# Miscellaneous I2C Chip support
797# 826#
798# CONFIG_DS1682 is not set 827# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 828# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 829# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 830# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 831# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 832# CONFIG_SENSORS_PCA9539 is not set
804# CONFIG_SENSORS_PCF8591 is not set 833# CONFIG_SENSORS_PCF8591 is not set
805# CONFIG_TPS65010 is not set
806# CONFIG_SENSORS_MAX6875 is not set 834# CONFIG_SENSORS_MAX6875 is not set
807# CONFIG_SENSORS_TSL2550 is not set 835# CONFIG_SENSORS_TSL2550 is not set
808# CONFIG_I2C_DEBUG_CORE is not set 836# CONFIG_I2C_DEBUG_CORE is not set
@@ -816,6 +844,11 @@ CONFIG_GPIOLIB=y
816# CONFIG_GPIO_SYSFS is not set 844# CONFIG_GPIO_SYSFS is not set
817 845
818# 846#
847# Memory mapped GPIO expanders:
848#
849# CONFIG_GPIO_XILINX is not set
850
851#
819# I2C GPIO expanders: 852# I2C GPIO expanders:
820# 853#
821# CONFIG_GPIO_MAX732X is not set 854# CONFIG_GPIO_MAX732X is not set
@@ -842,8 +875,10 @@ CONFIG_HWMON=y
842# CONFIG_SENSORS_ADM1029 is not set 875# CONFIG_SENSORS_ADM1029 is not set
843# CONFIG_SENSORS_ADM1031 is not set 876# CONFIG_SENSORS_ADM1031 is not set
844# CONFIG_SENSORS_ADM9240 is not set 877# CONFIG_SENSORS_ADM9240 is not set
878# CONFIG_SENSORS_ADT7462 is not set
845# CONFIG_SENSORS_ADT7470 is not set 879# CONFIG_SENSORS_ADT7470 is not set
846# CONFIG_SENSORS_ADT7473 is not set 880# CONFIG_SENSORS_ADT7473 is not set
881# CONFIG_SENSORS_ADT7475 is not set
847# CONFIG_SENSORS_ATXP1 is not set 882# CONFIG_SENSORS_ATXP1 is not set
848# CONFIG_SENSORS_DS1621 is not set 883# CONFIG_SENSORS_DS1621 is not set
849# CONFIG_SENSORS_I5K_AMB is not set 884# CONFIG_SENSORS_I5K_AMB is not set
@@ -864,6 +899,7 @@ CONFIG_SENSORS_LM75=y
864# CONFIG_SENSORS_LM90 is not set 899# CONFIG_SENSORS_LM90 is not set
865# CONFIG_SENSORS_LM92 is not set 900# CONFIG_SENSORS_LM92 is not set
866# CONFIG_SENSORS_LM93 is not set 901# CONFIG_SENSORS_LM93 is not set
902# CONFIG_SENSORS_LTC4245 is not set
867# CONFIG_SENSORS_MAX1619 is not set 903# CONFIG_SENSORS_MAX1619 is not set
868# CONFIG_SENSORS_MAX6650 is not set 904# CONFIG_SENSORS_MAX6650 is not set
869# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
@@ -890,11 +926,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
890# CONFIG_THERMAL is not set 926# CONFIG_THERMAL is not set
891# CONFIG_THERMAL_HWMON is not set 927# CONFIG_THERMAL_HWMON is not set
892# CONFIG_WATCHDOG is not set 928# CONFIG_WATCHDOG is not set
929CONFIG_SSB_POSSIBLE=y
893 930
894# 931#
895# Sonics Silicon Backplane 932# Sonics Silicon Backplane
896# 933#
897CONFIG_SSB_POSSIBLE=y
898# CONFIG_SSB is not set 934# CONFIG_SSB is not set
899 935
900# 936#
@@ -903,18 +939,14 @@ CONFIG_SSB_POSSIBLE=y
903# CONFIG_MFD_CORE is not set 939# CONFIG_MFD_CORE is not set
904# CONFIG_MFD_SM501 is not set 940# CONFIG_MFD_SM501 is not set
905# CONFIG_HTC_PASIC3 is not set 941# CONFIG_HTC_PASIC3 is not set
942# CONFIG_TPS65010 is not set
943# CONFIG_TWL4030_CORE is not set
906# CONFIG_MFD_TMIO is not set 944# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set 945# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
910 948# CONFIG_MFD_PCF50633 is not set
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set 949# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
918 950
919# 951#
920# Multimedia devices 952# Multimedia devices
@@ -970,9 +1002,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
970# 1002#
971 1003
972# 1004#
973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
974# 1006#
975# CONFIG_USB_GADGET is not set 1007# CONFIG_USB_GADGET is not set
1008
1009#
1010# OTG and related infrastructure
1011#
976# CONFIG_UWB is not set 1012# CONFIG_UWB is not set
977# CONFIG_MMC is not set 1013# CONFIG_MMC is not set
978# CONFIG_MEMSTICK is not set 1014# CONFIG_MEMSTICK is not set
@@ -1004,6 +1040,7 @@ CONFIG_FS_MBCACHE=y
1004CONFIG_FILE_LOCKING=y 1040CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1041# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1042# CONFIG_OCFS2_FS is not set
1043# CONFIG_BTRFS_FS is not set
1007CONFIG_DNOTIFY=y 1044CONFIG_DNOTIFY=y
1008CONFIG_INOTIFY=y 1045CONFIG_INOTIFY=y
1009CONFIG_INOTIFY_USER=y 1046CONFIG_INOTIFY_USER=y
@@ -1037,10 +1074,7 @@ CONFIG_TMPFS=y
1037# CONFIG_TMPFS_POSIX_ACL is not set 1074# CONFIG_TMPFS_POSIX_ACL is not set
1038# CONFIG_HUGETLB_PAGE is not set 1075# CONFIG_HUGETLB_PAGE is not set
1039# CONFIG_CONFIGFS_FS is not set 1076# CONFIG_CONFIGFS_FS is not set
1040 1077CONFIG_MISC_FILESYSTEMS=y
1041#
1042# Miscellaneous filesystems
1043#
1044# CONFIG_ADFS_FS is not set 1078# CONFIG_ADFS_FS is not set
1045# CONFIG_AFFS_FS is not set 1079# CONFIG_AFFS_FS is not set
1046# CONFIG_HFS_FS is not set 1080# CONFIG_HFS_FS is not set
@@ -1060,6 +1094,7 @@ CONFIG_JFFS2_ZLIB=y
1060CONFIG_JFFS2_RTIME=y 1094CONFIG_JFFS2_RTIME=y
1061# CONFIG_JFFS2_RUBIN is not set 1095# CONFIG_JFFS2_RUBIN is not set
1062CONFIG_CRAMFS=y 1096CONFIG_CRAMFS=y
1097# CONFIG_SQUASHFS is not set
1063# CONFIG_VXFS_FS is not set 1098# CONFIG_VXFS_FS is not set
1064# CONFIG_MINIX_FS is not set 1099# CONFIG_MINIX_FS is not set
1065# CONFIG_OMFS_FS is not set 1100# CONFIG_OMFS_FS is not set
@@ -1110,6 +1145,7 @@ CONFIG_PARTITION_ADVANCED=y
1110# Library routines 1145# Library routines
1111# 1146#
1112CONFIG_BITREVERSE=y 1147CONFIG_BITREVERSE=y
1148CONFIG_GENERIC_FIND_LAST_BIT=y
1113# CONFIG_CRC_CCITT is not set 1149# CONFIG_CRC_CCITT is not set
1114# CONFIG_CRC16 is not set 1150# CONFIG_CRC16 is not set
1115# CONFIG_CRC_T10DIF is not set 1151# CONFIG_CRC_T10DIF is not set
@@ -1145,6 +1181,8 @@ CONFIG_FRAME_WARN=1024
1145# CONFIG_LATENCYTOP is not set 1181# CONFIG_LATENCYTOP is not set
1146CONFIG_SYSCTL_SYSCALL_CHECK=y 1182CONFIG_SYSCTL_SYSCALL_CHECK=y
1147CONFIG_HAVE_FUNCTION_TRACER=y 1183CONFIG_HAVE_FUNCTION_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1148 1186
1149# 1187#
1150# Tracers 1188# Tracers
@@ -1152,6 +1190,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1153# CONFIG_SAMPLES is not set 1191# CONFIG_SAMPLES is not set
1154CONFIG_HAVE_ARCH_KGDB=y 1192CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64
1155# CONFIG_IRQSTACKS is not set 1194# CONFIG_IRQSTACKS is not set
1156# CONFIG_PPC_EARLY_DEBUG is not set 1195# CONFIG_PPC_EARLY_DEBUG is not set
1157 1196
@@ -1169,6 +1208,7 @@ CONFIG_CRYPTO=y
1169# 1208#
1170# CONFIG_CRYPTO_FIPS is not set 1209# CONFIG_CRYPTO_FIPS is not set
1171# CONFIG_CRYPTO_MANAGER is not set 1210# CONFIG_CRYPTO_MANAGER is not set
1211# CONFIG_CRYPTO_MANAGER2 is not set
1172# CONFIG_CRYPTO_GF128MUL is not set 1212# CONFIG_CRYPTO_GF128MUL is not set
1173# CONFIG_CRYPTO_NULL is not set 1213# CONFIG_CRYPTO_NULL is not set
1174# CONFIG_CRYPTO_CRYPTD is not set 1214# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 391874c7b436..1ab5abae00a2 100644
--- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc610_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:30 2008 4# Mon Jan 26 15:36:26 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -42,11 +42,12 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
42CONFIG_GENERIC_HWEIGHT=y 42CONFIG_GENERIC_HWEIGHT=y
43CONFIG_GENERIC_CALIBRATE_DELAY=y 43CONFIG_GENERIC_CALIBRATE_DELAY=y
44CONFIG_GENERIC_FIND_NEXT_BIT=y 44CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_GENERIC_GPIO=y
45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 46# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
46CONFIG_PPC=y 47CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 48CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 49CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
52CONFIG_OF=y 53CONFIG_OF=y
@@ -78,12 +79,12 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
78CONFIG_IKCONFIG=y 79CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 80CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 81CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 82CONFIG_GROUP_SCHED=y
83CONFIG_FAIR_GROUP_SCHED=y 83CONFIG_FAIR_GROUP_SCHED=y
84# CONFIG_RT_GROUP_SCHED is not set 84# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 85CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 86# CONFIG_CGROUP_SCHED is not set
87# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 88CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 89CONFIG_SYSFS_DEPRECATED_V2=y
89CONFIG_RELAY=y 90CONFIG_RELAY=y
@@ -117,7 +118,6 @@ CONFIG_SLAB=y
117# CONFIG_SLUB is not set 118# CONFIG_SLUB is not set
118# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
120# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +129,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 132CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 133CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 134# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,12 +136,10 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
138# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
139# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_STOP_MACHINE=y 139CONFIG_STOP_MACHINE=y
142CONFIG_BLOCK=y 140CONFIG_BLOCK=y
143# CONFIG_LBD is not set 141# CONFIG_LBD is not set
144# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
145# CONFIG_LSF is not set
146# CONFIG_BLK_DEV_BSG is not set 143# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set 144# CONFIG_BLK_DEV_INTEGRITY is not set
148 145
@@ -159,6 +156,10 @@ CONFIG_DEFAULT_CFQ=y
159# CONFIG_DEFAULT_NOOP is not set 156# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="cfq" 157CONFIG_DEFAULT_IOSCHED="cfq"
161CONFIG_CLASSIC_RCU=y 158CONFIG_CLASSIC_RCU=y
159# CONFIG_TREE_RCU is not set
160# CONFIG_PREEMPT_RCU is not set
161# CONFIG_TREE_RCU_TRACE is not set
162# CONFIG_PREEMPT_RCU_TRACE is not set
162# CONFIG_FREEZER is not set 163# CONFIG_FREEZER is not set
163 164
164# 165#
@@ -197,6 +198,7 @@ CONFIG_MPIC=y
197# CONFIG_QUICC_ENGINE is not set 198# CONFIG_QUICC_ENGINE is not set
198# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set 200# CONFIG_MPC8xxx_GPIO is not set
201# CONFIG_SIMPLE_GPIO is not set
200 202
201# 203#
202# Kernel options 204# Kernel options
@@ -215,7 +217,6 @@ CONFIG_SCHED_HRTICK=y
215# CONFIG_PREEMPT_NONE is not set 217# CONFIG_PREEMPT_NONE is not set
216# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
217CONFIG_PREEMPT=y 219CONFIG_PREEMPT=y
218# CONFIG_PREEMPT_RCU is not set
219CONFIG_BINFMT_ELF=y 220CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 221# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set 222# CONFIG_HAVE_AOUT is not set
@@ -225,6 +226,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 228# CONFIG_KEXEC is not set
229# CONFIG_CRASH_DUMP is not set
228CONFIG_IRQ_ALL_CPUS=y 230CONFIG_IRQ_ALL_CPUS=y
229CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -237,12 +239,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 239CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 241CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 242# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
247# CONFIG_PROC_DEVICETREE is not set 251# CONFIG_PROC_DEVICETREE is not set
248# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -270,6 +274,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
270# CONFIG_PCI_MSI is not set 274# CONFIG_PCI_MSI is not set
271# CONFIG_PCI_LEGACY is not set 275# CONFIG_PCI_LEGACY is not set
272CONFIG_PCI_DEBUG=y 276CONFIG_PCI_DEBUG=y
277# CONFIG_PCI_STUB is not set
273# CONFIG_PCCARD is not set 278# CONFIG_PCCARD is not set
274# CONFIG_HOTPLUG_PCI is not set 279# CONFIG_HOTPLUG_PCI is not set
275CONFIG_HAS_RAPIDIO=y 280CONFIG_HAS_RAPIDIO=y
@@ -293,6 +298,7 @@ CONFIG_NET=y
293# 298#
294# Networking options 299# Networking options
295# 300#
301CONFIG_COMPAT_NET_DEV_OPS=y
296CONFIG_PACKET=y 302CONFIG_PACKET=y
297CONFIG_PACKET_MMAP=y 303CONFIG_PACKET_MMAP=y
298CONFIG_UNIX=y 304CONFIG_UNIX=y
@@ -502,6 +508,7 @@ CONFIG_NET_SCH_TBF=m
502CONFIG_NET_SCH_GRED=m 508CONFIG_NET_SCH_GRED=m
503CONFIG_NET_SCH_DSMARK=m 509CONFIG_NET_SCH_DSMARK=m
504CONFIG_NET_SCH_NETEM=m 510CONFIG_NET_SCH_NETEM=m
511# CONFIG_NET_SCH_DRR is not set
505 512
506# 513#
507# Classification 514# Classification
@@ -522,6 +529,7 @@ CONFIG_NET_CLS_RSVP6=m
522# CONFIG_NET_CLS_ACT is not set 529# CONFIG_NET_CLS_ACT is not set
523# CONFIG_NET_CLS_IND is not set 530# CONFIG_NET_CLS_IND is not set
524CONFIG_NET_SCH_FIFO=y 531CONFIG_NET_SCH_FIFO=y
532# CONFIG_DCB is not set
525 533
526# 534#
527# Network testing 535# Network testing
@@ -538,8 +546,9 @@ CONFIG_WIRELESS=y
538# CONFIG_CFG80211 is not set 546# CONFIG_CFG80211 is not set
539CONFIG_WIRELESS_OLD_REGULATORY=y 547CONFIG_WIRELESS_OLD_REGULATORY=y
540# CONFIG_WIRELESS_EXT is not set 548# CONFIG_WIRELESS_EXT is not set
549# CONFIG_LIB80211 is not set
541# CONFIG_MAC80211 is not set 550# CONFIG_MAC80211 is not set
542# CONFIG_IEEE80211 is not set 551# CONFIG_WIMAX is not set
543# CONFIG_RFKILL is not set 552# CONFIG_RFKILL is not set
544# CONFIG_NET_9P is not set 553# CONFIG_NET_9P is not set
545 554
@@ -562,6 +571,7 @@ CONFIG_MTD=y
562# CONFIG_MTD_DEBUG is not set 571# CONFIG_MTD_DEBUG is not set
563CONFIG_MTD_CONCAT=y 572CONFIG_MTD_CONCAT=y
564CONFIG_MTD_PARTITIONS=y 573CONFIG_MTD_PARTITIONS=y
574# CONFIG_MTD_TESTS is not set
565# CONFIG_MTD_REDBOOT_PARTS is not set 575# CONFIG_MTD_REDBOOT_PARTS is not set
566# CONFIG_MTD_CMDLINE_PARTS is not set 576# CONFIG_MTD_CMDLINE_PARTS is not set
567# CONFIG_MTD_OF_PARTS is not set 577# CONFIG_MTD_OF_PARTS is not set
@@ -638,10 +648,17 @@ CONFIG_MTD_PHYSMAP_OF=y
638# CONFIG_MTD_ONENAND is not set 648# CONFIG_MTD_ONENAND is not set
639 649
640# 650#
651# LPDDR flash memory drivers
652#
653# CONFIG_MTD_LPDDR is not set
654# CONFIG_MTD_QINFO_PROBE is not set
655
656#
641# UBI - Unsorted block images 657# UBI - Unsorted block images
642# 658#
643# CONFIG_MTD_UBI is not set 659# CONFIG_MTD_UBI is not set
644CONFIG_OF_DEVICE=y 660CONFIG_OF_DEVICE=y
661CONFIG_OF_GPIO=y
645CONFIG_OF_I2C=y 662CONFIG_OF_I2C=y
646# CONFIG_PARPORT is not set 663# CONFIG_PARPORT is not set
647CONFIG_BLK_DEV=y 664CONFIG_BLK_DEV=y
@@ -668,8 +685,10 @@ CONFIG_MISC_DEVICES=y
668# CONFIG_EEPROM_93CX6 is not set 685# CONFIG_EEPROM_93CX6 is not set
669# CONFIG_SGI_IOC4 is not set 686# CONFIG_SGI_IOC4 is not set
670# CONFIG_TIFM_CORE is not set 687# CONFIG_TIFM_CORE is not set
688# CONFIG_ICS932S401 is not set
671# CONFIG_ENCLOSURE_SERVICES is not set 689# CONFIG_ENCLOSURE_SERVICES is not set
672# CONFIG_HP_ILO is not set 690# CONFIG_HP_ILO is not set
691# CONFIG_C2PORT is not set
673CONFIG_HAVE_IDE=y 692CONFIG_HAVE_IDE=y
674# CONFIG_IDE is not set 693# CONFIG_IDE is not set
675 694
@@ -729,6 +748,8 @@ CONFIG_SCSI_LOWLEVEL=y
729# CONFIG_MEGARAID_SAS is not set 748# CONFIG_MEGARAID_SAS is not set
730# CONFIG_SCSI_HPTIOP is not set 749# CONFIG_SCSI_HPTIOP is not set
731# CONFIG_SCSI_BUSLOGIC is not set 750# CONFIG_SCSI_BUSLOGIC is not set
751# CONFIG_LIBFC is not set
752# CONFIG_FCOE is not set
732# CONFIG_SCSI_DMX3191D is not set 753# CONFIG_SCSI_DMX3191D is not set
733# CONFIG_SCSI_EATA is not set 754# CONFIG_SCSI_EATA is not set
734# CONFIG_SCSI_FUTURE_DOMAIN is not set 755# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -848,6 +869,9 @@ CONFIG_PHYLIB=y
848# CONFIG_BROADCOM_PHY is not set 869# CONFIG_BROADCOM_PHY is not set
849# CONFIG_ICPLUS_PHY is not set 870# CONFIG_ICPLUS_PHY is not set
850# CONFIG_REALTEK_PHY is not set 871# CONFIG_REALTEK_PHY is not set
872# CONFIG_NATIONAL_PHY is not set
873# CONFIG_STE10XP is not set
874# CONFIG_LSI_ET1011C_PHY is not set
851# CONFIG_FIXED_PHY is not set 875# CONFIG_FIXED_PHY is not set
852# CONFIG_MDIO_BITBANG is not set 876# CONFIG_MDIO_BITBANG is not set
853CONFIG_NET_ETHERNET=y 877CONFIG_NET_ETHERNET=y
@@ -902,6 +926,10 @@ CONFIG_GIANFAR=y
902# CONFIG_IWLWIFI_LEDS is not set 926# CONFIG_IWLWIFI_LEDS is not set
903 927
904# 928#
929# Enable WiMAX (Networking options) to see the WiMAX drivers
930#
931
932#
905# USB Network Adapters 933# USB Network Adapters
906# 934#
907# CONFIG_USB_CATC is not set 935# CONFIG_USB_CATC is not set
@@ -924,6 +952,7 @@ CONFIG_ATM_DRIVERS=y
924# CONFIG_ATM_IA is not set 952# CONFIG_ATM_IA is not set
925# CONFIG_ATM_FORE200E is not set 953# CONFIG_ATM_FORE200E is not set
926# CONFIG_ATM_HE is not set 954# CONFIG_ATM_HE is not set
955# CONFIG_ATM_SOLOS is not set
927# CONFIG_FDDI is not set 956# CONFIG_FDDI is not set
928# CONFIG_HIPPI is not set 957# CONFIG_HIPPI is not set
929CONFIG_PPP=m 958CONFIG_PPP=m
@@ -1016,7 +1045,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
1016# CONFIG_SERIAL_JSM is not set 1045# CONFIG_SERIAL_JSM is not set
1017# CONFIG_SERIAL_OF_PLATFORM is not set 1046# CONFIG_SERIAL_OF_PLATFORM is not set
1018CONFIG_UNIX98_PTYS=y 1047CONFIG_UNIX98_PTYS=y
1048# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1019# CONFIG_LEGACY_PTYS is not set 1049# CONFIG_LEGACY_PTYS is not set
1050# CONFIG_HVC_UDBG is not set
1020# CONFIG_IPMI_HANDLER is not set 1051# CONFIG_IPMI_HANDLER is not set
1021CONFIG_HW_RANDOM=y 1052CONFIG_HW_RANDOM=y
1022# CONFIG_NVRAM is not set 1053# CONFIG_NVRAM is not set
@@ -1055,6 +1086,7 @@ CONFIG_I2C_HELPER_AUTO=y
1055# 1086#
1056# I2C system bus drivers (mostly embedded / system-on-chip) 1087# I2C system bus drivers (mostly embedded / system-on-chip)
1057# 1088#
1089# CONFIG_I2C_GPIO is not set
1058CONFIG_I2C_MPC=y 1090CONFIG_I2C_MPC=y
1059# CONFIG_I2C_OCORES is not set 1091# CONFIG_I2C_OCORES is not set
1060# CONFIG_I2C_SIMTEC is not set 1092# CONFIG_I2C_SIMTEC is not set
@@ -1081,8 +1113,8 @@ CONFIG_I2C_MPC=y
1081# Miscellaneous I2C Chip support 1113# Miscellaneous I2C Chip support
1082# 1114#
1083CONFIG_DS1682=y 1115CONFIG_DS1682=y
1084# CONFIG_AT24 is not set 1116# CONFIG_EEPROM_AT24 is not set
1085# CONFIG_SENSORS_EEPROM is not set 1117# CONFIG_EEPROM_LEGACY is not set
1086# CONFIG_SENSORS_PCF8574 is not set 1118# CONFIG_SENSORS_PCF8574 is not set
1087# CONFIG_PCF8575 is not set 1119# CONFIG_PCF8575 is not set
1088# CONFIG_SENSORS_PCA9539 is not set 1120# CONFIG_SENSORS_PCA9539 is not set
@@ -1095,7 +1127,31 @@ CONFIG_DS1682=y
1095# CONFIG_I2C_DEBUG_CHIP is not set 1127# CONFIG_I2C_DEBUG_CHIP is not set
1096# CONFIG_SPI is not set 1128# CONFIG_SPI is not set
1097CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 1129CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1098# CONFIG_GPIOLIB is not set 1130CONFIG_ARCH_REQUIRE_GPIOLIB=y
1131CONFIG_GPIOLIB=y
1132# CONFIG_DEBUG_GPIO is not set
1133# CONFIG_GPIO_SYSFS is not set
1134
1135#
1136# Memory mapped GPIO expanders:
1137#
1138# CONFIG_GPIO_XILINX is not set
1139
1140#
1141# I2C GPIO expanders:
1142#
1143# CONFIG_GPIO_MAX732X is not set
1144# CONFIG_GPIO_PCA953X is not set
1145# CONFIG_GPIO_PCF857X is not set
1146
1147#
1148# PCI GPIO expanders:
1149#
1150# CONFIG_GPIO_BT8XX is not set
1151
1152#
1153# SPI GPIO expanders:
1154#
1099# CONFIG_W1 is not set 1155# CONFIG_W1 is not set
1100# CONFIG_POWER_SUPPLY is not set 1156# CONFIG_POWER_SUPPLY is not set
1101CONFIG_HWMON=y 1157CONFIG_HWMON=y
@@ -1108,8 +1164,10 @@ CONFIG_HWMON=y
1108# CONFIG_SENSORS_ADM1029 is not set 1164# CONFIG_SENSORS_ADM1029 is not set
1109# CONFIG_SENSORS_ADM1031 is not set 1165# CONFIG_SENSORS_ADM1031 is not set
1110# CONFIG_SENSORS_ADM9240 is not set 1166# CONFIG_SENSORS_ADM9240 is not set
1167# CONFIG_SENSORS_ADT7462 is not set
1111# CONFIG_SENSORS_ADT7470 is not set 1168# CONFIG_SENSORS_ADT7470 is not set
1112# CONFIG_SENSORS_ADT7473 is not set 1169# CONFIG_SENSORS_ADT7473 is not set
1170# CONFIG_SENSORS_ADT7475 is not set
1113# CONFIG_SENSORS_ATXP1 is not set 1171# CONFIG_SENSORS_ATXP1 is not set
1114# CONFIG_SENSORS_DS1621 is not set 1172# CONFIG_SENSORS_DS1621 is not set
1115# CONFIG_SENSORS_I5K_AMB is not set 1173# CONFIG_SENSORS_I5K_AMB is not set
@@ -1130,6 +1188,7 @@ CONFIG_HWMON=y
1130CONFIG_SENSORS_LM90=y 1188CONFIG_SENSORS_LM90=y
1131CONFIG_SENSORS_LM92=y 1189CONFIG_SENSORS_LM92=y
1132# CONFIG_SENSORS_LM93 is not set 1190# CONFIG_SENSORS_LM93 is not set
1191# CONFIG_SENSORS_LTC4245 is not set
1133# CONFIG_SENSORS_MAX1619 is not set 1192# CONFIG_SENSORS_MAX1619 is not set
1134# CONFIG_SENSORS_MAX6650 is not set 1193# CONFIG_SENSORS_MAX6650 is not set
1135# CONFIG_SENSORS_PC87360 is not set 1194# CONFIG_SENSORS_PC87360 is not set
@@ -1163,8 +1222,8 @@ CONFIG_WATCHDOG=y
1163# 1222#
1164# CONFIG_SOFT_WATCHDOG is not set 1223# CONFIG_SOFT_WATCHDOG is not set
1165# CONFIG_ALIM7101_WDT is not set 1224# CONFIG_ALIM7101_WDT is not set
1166# CONFIG_8xxx_WDT is not set
1167CONFIG_GEF_WDT=y 1225CONFIG_GEF_WDT=y
1226# CONFIG_8xxx_WDT is not set
1168 1227
1169# 1228#
1170# PCI-based Watchdog Cards 1229# PCI-based Watchdog Cards
@@ -1176,11 +1235,11 @@ CONFIG_GEF_WDT=y
1176# USB-based Watchdog Cards 1235# USB-based Watchdog Cards
1177# 1236#
1178# CONFIG_USBPCWATCHDOG is not set 1237# CONFIG_USBPCWATCHDOG is not set
1238CONFIG_SSB_POSSIBLE=y
1179 1239
1180# 1240#
1181# Sonics Silicon Backplane 1241# Sonics Silicon Backplane
1182# 1242#
1183CONFIG_SSB_POSSIBLE=y
1184# CONFIG_SSB is not set 1243# CONFIG_SSB is not set
1185 1244
1186# 1245#
@@ -1189,18 +1248,14 @@ CONFIG_SSB_POSSIBLE=y
1189# CONFIG_MFD_CORE is not set 1248# CONFIG_MFD_CORE is not set
1190# CONFIG_MFD_SM501 is not set 1249# CONFIG_MFD_SM501 is not set
1191# CONFIG_HTC_PASIC3 is not set 1250# CONFIG_HTC_PASIC3 is not set
1251# CONFIG_TPS65010 is not set
1252# CONFIG_TWL4030_CORE is not set
1192# CONFIG_MFD_TMIO is not set 1253# CONFIG_MFD_TMIO is not set
1193# CONFIG_PMIC_DA903X is not set 1254# CONFIG_PMIC_DA903X is not set
1194# CONFIG_MFD_WM8400 is not set 1255# CONFIG_MFD_WM8400 is not set
1195# CONFIG_MFD_WM8350_I2C is not set 1256# CONFIG_MFD_WM8350_I2C is not set
1196 1257# CONFIG_MFD_PCF50633 is not set
1197#
1198# Voltage and Current regulators
1199#
1200# CONFIG_REGULATOR is not set 1258# CONFIG_REGULATOR is not set
1201# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1202# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1203# CONFIG_REGULATOR_BQ24022 is not set
1204 1259
1205# 1260#
1206# Multimedia devices 1261# Multimedia devices
@@ -1260,11 +1315,9 @@ CONFIG_HID_COMPAT=y
1260CONFIG_HID_A4TECH=y 1315CONFIG_HID_A4TECH=y
1261CONFIG_HID_APPLE=y 1316CONFIG_HID_APPLE=y
1262CONFIG_HID_BELKIN=y 1317CONFIG_HID_BELKIN=y
1263CONFIG_HID_BRIGHT=y
1264CONFIG_HID_CHERRY=y 1318CONFIG_HID_CHERRY=y
1265CONFIG_HID_CHICONY=y 1319CONFIG_HID_CHICONY=y
1266CONFIG_HID_CYPRESS=y 1320CONFIG_HID_CYPRESS=y
1267CONFIG_HID_DELL=y
1268CONFIG_HID_EZKEY=y 1321CONFIG_HID_EZKEY=y
1269CONFIG_HID_GYRATION=y 1322CONFIG_HID_GYRATION=y
1270CONFIG_HID_LOGITECH=y 1323CONFIG_HID_LOGITECH=y
@@ -1272,12 +1325,15 @@ CONFIG_HID_LOGITECH=y
1272# CONFIG_LOGIRUMBLEPAD2_FF is not set 1325# CONFIG_LOGIRUMBLEPAD2_FF is not set
1273CONFIG_HID_MICROSOFT=y 1326CONFIG_HID_MICROSOFT=y
1274CONFIG_HID_MONTEREY=y 1327CONFIG_HID_MONTEREY=y
1328# CONFIG_HID_NTRIG is not set
1275CONFIG_HID_PANTHERLORD=y 1329CONFIG_HID_PANTHERLORD=y
1276# CONFIG_PANTHERLORD_FF is not set 1330# CONFIG_PANTHERLORD_FF is not set
1277CONFIG_HID_PETALYNX=y 1331CONFIG_HID_PETALYNX=y
1278CONFIG_HID_SAMSUNG=y 1332CONFIG_HID_SAMSUNG=y
1279CONFIG_HID_SONY=y 1333CONFIG_HID_SONY=y
1280CONFIG_HID_SUNPLUS=y 1334CONFIG_HID_SUNPLUS=y
1335# CONFIG_GREENASIA_FF is not set
1336# CONFIG_HID_TOPSEED is not set
1281CONFIG_THRUSTMASTER_FF=m 1337CONFIG_THRUSTMASTER_FF=m
1282CONFIG_ZEROPLUS_FF=m 1338CONFIG_ZEROPLUS_FF=m
1283CONFIG_USB_SUPPORT=y 1339CONFIG_USB_SUPPORT=y
@@ -1310,6 +1366,7 @@ CONFIG_USB_EHCI_HCD=y
1310# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1366# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1311# CONFIG_USB_EHCI_FSL is not set 1367# CONFIG_USB_EHCI_FSL is not set
1312# CONFIG_USB_EHCI_HCD_PPC_OF is not set 1368# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1369# CONFIG_USB_OXU210HP_HCD is not set
1313# CONFIG_USB_ISP116X_HCD is not set 1370# CONFIG_USB_ISP116X_HCD is not set
1314# CONFIG_USB_ISP1760_HCD is not set 1371# CONFIG_USB_ISP1760_HCD is not set
1315CONFIG_USB_OHCI_HCD=y 1372CONFIG_USB_OHCI_HCD=y
@@ -1332,18 +1389,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1332# CONFIG_USB_TMC is not set 1389# CONFIG_USB_TMC is not set
1333 1390
1334# 1391#
1335# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1392# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1336# 1393#
1337 1394
1338# 1395#
1339# may also be needed; see USB_STORAGE Help for more information 1396# see USB_STORAGE Help for more information
1340# 1397#
1341CONFIG_USB_STORAGE=y 1398CONFIG_USB_STORAGE=y
1342# CONFIG_USB_STORAGE_DEBUG is not set 1399# CONFIG_USB_STORAGE_DEBUG is not set
1343# CONFIG_USB_STORAGE_DATAFAB is not set 1400# CONFIG_USB_STORAGE_DATAFAB is not set
1344# CONFIG_USB_STORAGE_FREECOM is not set 1401# CONFIG_USB_STORAGE_FREECOM is not set
1345# CONFIG_USB_STORAGE_ISD200 is not set 1402# CONFIG_USB_STORAGE_ISD200 is not set
1346# CONFIG_USB_STORAGE_DPCM is not set
1347# CONFIG_USB_STORAGE_USBAT is not set 1403# CONFIG_USB_STORAGE_USBAT is not set
1348# CONFIG_USB_STORAGE_SDDR09 is not set 1404# CONFIG_USB_STORAGE_SDDR09 is not set
1349# CONFIG_USB_STORAGE_SDDR55 is not set 1405# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1391,6 +1447,11 @@ CONFIG_USB_STORAGE=y
1391# CONFIG_USB_VST is not set 1447# CONFIG_USB_VST is not set
1392# CONFIG_USB_ATM is not set 1448# CONFIG_USB_ATM is not set
1393# CONFIG_USB_GADGET is not set 1449# CONFIG_USB_GADGET is not set
1450
1451#
1452# OTG and related infrastructure
1453#
1454# CONFIG_USB_GPIO_VBUS is not set
1394# CONFIG_UWB is not set 1455# CONFIG_UWB is not set
1395# CONFIG_MMC is not set 1456# CONFIG_MMC is not set
1396# CONFIG_MEMSTICK is not set 1457# CONFIG_MEMSTICK is not set
@@ -1478,6 +1539,7 @@ CONFIG_FS_POSIX_ACL=y
1478CONFIG_FILE_LOCKING=y 1539CONFIG_FILE_LOCKING=y
1479# CONFIG_XFS_FS is not set 1540# CONFIG_XFS_FS is not set
1480# CONFIG_OCFS2_FS is not set 1541# CONFIG_OCFS2_FS is not set
1542# CONFIG_BTRFS_FS is not set
1481CONFIG_DNOTIFY=y 1543CONFIG_DNOTIFY=y
1482CONFIG_INOTIFY=y 1544CONFIG_INOTIFY=y
1483CONFIG_INOTIFY_USER=y 1545CONFIG_INOTIFY_USER=y
@@ -1514,10 +1576,7 @@ CONFIG_TMPFS=y
1514# CONFIG_TMPFS_POSIX_ACL is not set 1576# CONFIG_TMPFS_POSIX_ACL is not set
1515# CONFIG_HUGETLB_PAGE is not set 1577# CONFIG_HUGETLB_PAGE is not set
1516# CONFIG_CONFIGFS_FS is not set 1578# CONFIG_CONFIGFS_FS is not set
1517 1579CONFIG_MISC_FILESYSTEMS=y
1518#
1519# Miscellaneous filesystems
1520#
1521# CONFIG_ADFS_FS is not set 1580# CONFIG_ADFS_FS is not set
1522# CONFIG_AFFS_FS is not set 1581# CONFIG_AFFS_FS is not set
1523# CONFIG_HFS_FS is not set 1582# CONFIG_HFS_FS is not set
@@ -1527,6 +1586,7 @@ CONFIG_TMPFS=y
1527# CONFIG_EFS_FS is not set 1586# CONFIG_EFS_FS is not set
1528# CONFIG_JFFS2_FS is not set 1587# CONFIG_JFFS2_FS is not set
1529# CONFIG_CRAMFS is not set 1588# CONFIG_CRAMFS is not set
1589# CONFIG_SQUASHFS is not set
1530# CONFIG_VXFS_FS is not set 1590# CONFIG_VXFS_FS is not set
1531# CONFIG_MINIX_FS is not set 1591# CONFIG_MINIX_FS is not set
1532# CONFIG_OMFS_FS is not set 1592# CONFIG_OMFS_FS is not set
@@ -1613,6 +1673,7 @@ CONFIG_NLS_UTF8=m
1613# Library routines 1673# Library routines
1614# 1674#
1615CONFIG_BITREVERSE=y 1675CONFIG_BITREVERSE=y
1676CONFIG_GENERIC_FIND_LAST_BIT=y
1616CONFIG_CRC_CCITT=m 1677CONFIG_CRC_CCITT=m
1617# CONFIG_CRC16 is not set 1678# CONFIG_CRC16 is not set
1618# CONFIG_CRC_T10DIF is not set 1679# CONFIG_CRC_T10DIF is not set
@@ -1663,6 +1724,7 @@ CONFIG_DEBUG_INFO=y
1663# CONFIG_DEBUG_MEMORY_INIT is not set 1724# CONFIG_DEBUG_MEMORY_INIT is not set
1664# CONFIG_DEBUG_LIST is not set 1725# CONFIG_DEBUG_LIST is not set
1665# CONFIG_DEBUG_SG is not set 1726# CONFIG_DEBUG_SG is not set
1727# CONFIG_DEBUG_NOTIFIERS is not set
1666# CONFIG_BOOT_PRINTK_DELAY is not set 1728# CONFIG_BOOT_PRINTK_DELAY is not set
1667# CONFIG_RCU_TORTURE_TEST is not set 1729# CONFIG_RCU_TORTURE_TEST is not set
1668# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1730# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1672,6 +1734,8 @@ CONFIG_DEBUG_INFO=y
1672# CONFIG_LATENCYTOP is not set 1734# CONFIG_LATENCYTOP is not set
1673CONFIG_SYSCTL_SYSCALL_CHECK=y 1735CONFIG_SYSCTL_SYSCALL_CHECK=y
1674CONFIG_HAVE_FUNCTION_TRACER=y 1736CONFIG_HAVE_FUNCTION_TRACER=y
1737CONFIG_HAVE_DYNAMIC_FTRACE=y
1738CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1675 1739
1676# 1740#
1677# Tracers 1741# Tracers
@@ -1681,11 +1745,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1681# CONFIG_SCHED_TRACER is not set 1745# CONFIG_SCHED_TRACER is not set
1682# CONFIG_CONTEXT_SWITCH_TRACER is not set 1746# CONFIG_CONTEXT_SWITCH_TRACER is not set
1683# CONFIG_BOOT_TRACER is not set 1747# CONFIG_BOOT_TRACER is not set
1748# CONFIG_TRACE_BRANCH_PROFILING is not set
1684# CONFIG_STACK_TRACER is not set 1749# CONFIG_STACK_TRACER is not set
1685# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1750# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1686# CONFIG_SAMPLES is not set 1751# CONFIG_SAMPLES is not set
1687CONFIG_HAVE_ARCH_KGDB=y 1752CONFIG_HAVE_ARCH_KGDB=y
1688# CONFIG_KGDB is not set 1753# CONFIG_KGDB is not set
1754CONFIG_PRINT_STACK_DEPTH=64
1689# CONFIG_DEBUG_STACKOVERFLOW is not set 1755# CONFIG_DEBUG_STACKOVERFLOW is not set
1690# CONFIG_DEBUG_STACK_USAGE is not set 1756# CONFIG_DEBUG_STACK_USAGE is not set
1691# CONFIG_DEBUG_PAGEALLOC is not set 1757# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1706,6 +1772,7 @@ CONFIG_SECURITY=y
1706# CONFIG_SECURITYFS is not set 1772# CONFIG_SECURITYFS is not set
1707CONFIG_SECURITY_NETWORK=y 1773CONFIG_SECURITY_NETWORK=y
1708# CONFIG_SECURITY_NETWORK_XFRM is not set 1774# CONFIG_SECURITY_NETWORK_XFRM is not set
1775# CONFIG_SECURITY_PATH is not set
1709# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1776# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1710# CONFIG_SECURITY_ROOTPLUG is not set 1777# CONFIG_SECURITY_ROOTPLUG is not set
1711CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1778CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
@@ -1716,11 +1783,16 @@ CONFIG_CRYPTO=y
1716# 1783#
1717# CONFIG_CRYPTO_FIPS is not set 1784# CONFIG_CRYPTO_FIPS is not set
1718CONFIG_CRYPTO_ALGAPI=y 1785CONFIG_CRYPTO_ALGAPI=y
1719CONFIG_CRYPTO_AEAD=y 1786CONFIG_CRYPTO_ALGAPI2=y
1787CONFIG_CRYPTO_AEAD=m
1788CONFIG_CRYPTO_AEAD2=y
1720CONFIG_CRYPTO_BLKCIPHER=y 1789CONFIG_CRYPTO_BLKCIPHER=y
1790CONFIG_CRYPTO_BLKCIPHER2=y
1721CONFIG_CRYPTO_HASH=y 1791CONFIG_CRYPTO_HASH=y
1722CONFIG_CRYPTO_RNG=y 1792CONFIG_CRYPTO_HASH2=y
1793CONFIG_CRYPTO_RNG2=y
1723CONFIG_CRYPTO_MANAGER=y 1794CONFIG_CRYPTO_MANAGER=y
1795CONFIG_CRYPTO_MANAGER2=y
1724# CONFIG_CRYPTO_GF128MUL is not set 1796# CONFIG_CRYPTO_GF128MUL is not set
1725CONFIG_CRYPTO_NULL=m 1797CONFIG_CRYPTO_NULL=m
1726# CONFIG_CRYPTO_CRYPTD is not set 1798# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index 72854a10dfa1..bbdf4bfc4327 100644
--- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8610_hpcd_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:28 2008 4# Mon Jan 26 15:36:24 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_SYSVIPC_SYSCTL=y
75CONFIG_IKCONFIG=y 75CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -115,7 +115,6 @@ CONFIG_SLUB_DEBUG=y
115CONFIG_SLUB=y 115CONFIG_SLUB=y
116# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +125,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 129CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 130# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +132,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 135CONFIG_BLOCK=y
139# CONFIG_LBD is not set 136# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
144 140
@@ -155,6 +151,10 @@ CONFIG_DEFAULT_DEADLINE=y
155# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="deadline" 152CONFIG_DEFAULT_IOSCHED="deadline"
157CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 158# CONFIG_FREEZER is not set
159 159
160# 160#
@@ -194,6 +194,7 @@ CONFIG_MPIC=y
194# CONFIG_QUICC_ENGINE is not set 194# CONFIG_QUICC_ENGINE is not set
195CONFIG_FSL_ULI1575=y 195CONFIG_FSL_ULI1575=y
196# CONFIG_MPC8xxx_GPIO is not set 196# CONFIG_MPC8xxx_GPIO is not set
197# CONFIG_SIMPLE_GPIO is not set
197 198
198# 199#
199# Kernel options 200# Kernel options
@@ -213,7 +214,6 @@ CONFIG_PREEMPT_NONE=y
213# CONFIG_PREEMPT_VOLUNTARY is not set 214# CONFIG_PREEMPT_VOLUNTARY is not set
214# CONFIG_PREEMPT is not set 215# CONFIG_PREEMPT is not set
215CONFIG_BINFMT_ELF=y 216CONFIG_BINFMT_ELF=y
216# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
217# CONFIG_HAVE_AOUT is not set 217# CONFIG_HAVE_AOUT is not set
218# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
219# CONFIG_IOMMU_HELPER is not set 219# CONFIG_IOMMU_HELPER is not set
@@ -221,6 +221,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
221CONFIG_ARCH_HAS_WALK_MEMORY=y 221CONFIG_ARCH_HAS_WALK_MEMORY=y
222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
223# CONFIG_KEXEC is not set 223# CONFIG_KEXEC is not set
224# CONFIG_CRASH_DUMP is not set
224CONFIG_ARCH_FLATMEM_ENABLE=y 225CONFIG_ARCH_FLATMEM_ENABLE=y
225CONFIG_ARCH_POPULATES_NODE_MAP=y 226CONFIG_ARCH_POPULATES_NODE_MAP=y
226CONFIG_SELECT_MEMORY_MODEL=y 227CONFIG_SELECT_MEMORY_MODEL=y
@@ -232,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
232CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
235# CONFIG_RESOURCES_64BIT is not set
236# CONFIG_PHYS_ADDR_T_64BIT is not set 236# CONFIG_PHYS_ADDR_T_64BIT is not set
237CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=12 244CONFIG_FORCE_MAX_ZONEORDER=12
242CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
243# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -265,6 +268,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set 269# CONFIG_PCI_LEGACY is not set
267CONFIG_PCI_DEBUG=y 270CONFIG_PCI_DEBUG=y
271# CONFIG_PCI_STUB is not set
268# CONFIG_PCCARD is not set 272# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 273# CONFIG_HOTPLUG_PCI is not set
270# CONFIG_HAS_RAPIDIO is not set 274# CONFIG_HAS_RAPIDIO is not set
@@ -287,6 +291,7 @@ CONFIG_NET=y
287# 291#
288# Networking options 292# Networking options
289# 293#
294CONFIG_COMPAT_NET_DEV_OPS=y
290CONFIG_PACKET=y 295CONFIG_PACKET=y
291# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
292CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -360,6 +365,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
360# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
361# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
362# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
368# CONFIG_DCB is not set
363 369
364# 370#
365# Network testing 371# Network testing
@@ -375,8 +381,9 @@ CONFIG_WIRELESS=y
375# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
376CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
377# CONFIG_WIRELESS_EXT is not set 383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_LIB80211 is not set
378# CONFIG_MAC80211 is not set 385# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set 386# CONFIG_WIMAX is not set
380# CONFIG_RFKILL is not set 387# CONFIG_RFKILL is not set
381# CONFIG_NET_9P is not set 388# CONFIG_NET_9P is not set
382 389
@@ -401,6 +408,7 @@ CONFIG_MTD=y
401# CONFIG_MTD_DEBUG is not set 408# CONFIG_MTD_DEBUG is not set
402# CONFIG_MTD_CONCAT is not set 409# CONFIG_MTD_CONCAT is not set
403CONFIG_MTD_PARTITIONS=y 410CONFIG_MTD_PARTITIONS=y
411# CONFIG_MTD_TESTS is not set
404# CONFIG_MTD_REDBOOT_PARTS is not set 412# CONFIG_MTD_REDBOOT_PARTS is not set
405CONFIG_MTD_CMDLINE_PARTS=y 413CONFIG_MTD_CMDLINE_PARTS=y
406# CONFIG_MTD_OF_PARTS is not set 414# CONFIG_MTD_OF_PARTS is not set
@@ -481,6 +489,12 @@ CONFIG_MTD_NAND_FSL_ELBC=y
481# CONFIG_MTD_ONENAND is not set 489# CONFIG_MTD_ONENAND is not set
482 490
483# 491#
492# LPDDR flash memory drivers
493#
494# CONFIG_MTD_LPDDR is not set
495# CONFIG_MTD_QINFO_PROBE is not set
496
497#
484# UBI - Unsorted block images 498# UBI - Unsorted block images
485# 499#
486# CONFIG_MTD_UBI is not set 500# CONFIG_MTD_UBI is not set
@@ -510,8 +524,10 @@ CONFIG_MISC_DEVICES=y
510# CONFIG_EEPROM_93CX6 is not set 524# CONFIG_EEPROM_93CX6 is not set
511# CONFIG_SGI_IOC4 is not set 525# CONFIG_SGI_IOC4 is not set
512# CONFIG_TIFM_CORE is not set 526# CONFIG_TIFM_CORE is not set
527# CONFIG_ICS932S401 is not set
513# CONFIG_ENCLOSURE_SERVICES is not set 528# CONFIG_ENCLOSURE_SERVICES is not set
514# CONFIG_HP_ILO is not set 529# CONFIG_HP_ILO is not set
530# CONFIG_C2PORT is not set
515CONFIG_HAVE_IDE=y 531CONFIG_HAVE_IDE=y
516CONFIG_IDE=y 532CONFIG_IDE=y
517 533
@@ -524,7 +540,6 @@ CONFIG_IDE_GD_ATA=y
524# CONFIG_IDE_GD_ATAPI is not set 540# CONFIG_IDE_GD_ATAPI is not set
525# CONFIG_BLK_DEV_IDECD is not set 541# CONFIG_BLK_DEV_IDECD is not set
526# CONFIG_BLK_DEV_IDETAPE is not set 542# CONFIG_BLK_DEV_IDETAPE is not set
527# CONFIG_BLK_DEV_IDESCSI is not set
528# CONFIG_IDE_TASK_IOCTL is not set 543# CONFIG_IDE_TASK_IOCTL is not set
529CONFIG_IDE_PROC_FS=y 544CONFIG_IDE_PROC_FS=y
530 545
@@ -549,6 +564,7 @@ CONFIG_IDE_PROC_FS=y
549# CONFIG_BLK_DEV_JMICRON is not set 564# CONFIG_BLK_DEV_JMICRON is not set
550# CONFIG_BLK_DEV_SC1200 is not set 565# CONFIG_BLK_DEV_SC1200 is not set
551# CONFIG_BLK_DEV_PIIX is not set 566# CONFIG_BLK_DEV_PIIX is not set
567# CONFIG_BLK_DEV_IT8172 is not set
552# CONFIG_BLK_DEV_IT8213 is not set 568# CONFIG_BLK_DEV_IT8213 is not set
553# CONFIG_BLK_DEV_IT821X is not set 569# CONFIG_BLK_DEV_IT821X is not set
554# CONFIG_BLK_DEV_NS87415 is not set 570# CONFIG_BLK_DEV_NS87415 is not set
@@ -618,6 +634,8 @@ CONFIG_SCSI_LOWLEVEL=y
618# CONFIG_MEGARAID_SAS is not set 634# CONFIG_MEGARAID_SAS is not set
619# CONFIG_SCSI_HPTIOP is not set 635# CONFIG_SCSI_HPTIOP is not set
620# CONFIG_SCSI_BUSLOGIC is not set 636# CONFIG_SCSI_BUSLOGIC is not set
637# CONFIG_LIBFC is not set
638# CONFIG_FCOE is not set
621# CONFIG_SCSI_DMX3191D is not set 639# CONFIG_SCSI_DMX3191D is not set
622# CONFIG_SCSI_EATA is not set 640# CONFIG_SCSI_EATA is not set
623# CONFIG_SCSI_FUTURE_DOMAIN is not set 641# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -757,6 +775,10 @@ CONFIG_ULI526X=y
757# CONFIG_WLAN_PRE80211 is not set 775# CONFIG_WLAN_PRE80211 is not set
758# CONFIG_WLAN_80211 is not set 776# CONFIG_WLAN_80211 is not set
759# CONFIG_IWLWIFI_LEDS is not set 777# CONFIG_IWLWIFI_LEDS is not set
778
779#
780# Enable WiMAX (Networking options) to see the WiMAX drivers
781#
760# CONFIG_WAN is not set 782# CONFIG_WAN is not set
761# CONFIG_FDDI is not set 783# CONFIG_FDDI is not set
762# CONFIG_HIPPI is not set 784# CONFIG_HIPPI is not set
@@ -841,7 +863,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
841# CONFIG_SERIAL_JSM is not set 863# CONFIG_SERIAL_JSM is not set
842# CONFIG_SERIAL_OF_PLATFORM is not set 864# CONFIG_SERIAL_OF_PLATFORM is not set
843CONFIG_UNIX98_PTYS=y 865CONFIG_UNIX98_PTYS=y
866# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
844# CONFIG_LEGACY_PTYS is not set 867# CONFIG_LEGACY_PTYS is not set
868# CONFIG_HVC_UDBG is not set
845# CONFIG_IPMI_HANDLER is not set 869# CONFIG_IPMI_HANDLER is not set
846# CONFIG_HW_RANDOM is not set 870# CONFIG_HW_RANDOM is not set
847# CONFIG_NVRAM is not set 871# CONFIG_NVRAM is not set
@@ -905,8 +929,8 @@ CONFIG_I2C_MPC=y
905# Miscellaneous I2C Chip support 929# Miscellaneous I2C Chip support
906# 930#
907# CONFIG_DS1682 is not set 931# CONFIG_DS1682 is not set
908# CONFIG_AT24 is not set 932# CONFIG_EEPROM_AT24 is not set
909# CONFIG_SENSORS_EEPROM is not set 933# CONFIG_EEPROM_LEGACY is not set
910# CONFIG_SENSORS_PCF8574 is not set 934# CONFIG_SENSORS_PCF8574 is not set
911# CONFIG_PCF8575 is not set 935# CONFIG_PCF8575 is not set
912# CONFIG_SENSORS_PCA9539 is not set 936# CONFIG_SENSORS_PCA9539 is not set
@@ -926,11 +950,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
926# CONFIG_THERMAL is not set 950# CONFIG_THERMAL is not set
927# CONFIG_THERMAL_HWMON is not set 951# CONFIG_THERMAL_HWMON is not set
928# CONFIG_WATCHDOG is not set 952# CONFIG_WATCHDOG is not set
953CONFIG_SSB_POSSIBLE=y
929 954
930# 955#
931# Sonics Silicon Backplane 956# Sonics Silicon Backplane
932# 957#
933CONFIG_SSB_POSSIBLE=y
934# CONFIG_SSB is not set 958# CONFIG_SSB is not set
935 959
936# 960#
@@ -939,18 +963,13 @@ CONFIG_SSB_POSSIBLE=y
939# CONFIG_MFD_CORE is not set 963# CONFIG_MFD_CORE is not set
940# CONFIG_MFD_SM501 is not set 964# CONFIG_MFD_SM501 is not set
941# CONFIG_HTC_PASIC3 is not set 965# CONFIG_HTC_PASIC3 is not set
966# CONFIG_TWL4030_CORE is not set
942# CONFIG_MFD_TMIO is not set 967# CONFIG_MFD_TMIO is not set
943# CONFIG_PMIC_DA903X is not set 968# CONFIG_PMIC_DA903X is not set
944# CONFIG_MFD_WM8400 is not set 969# CONFIG_MFD_WM8400 is not set
945# CONFIG_MFD_WM8350_I2C is not set 970# CONFIG_MFD_WM8350_I2C is not set
946 971# CONFIG_MFD_PCF50633 is not set
947#
948# Voltage and Current regulators
949#
950# CONFIG_REGULATOR is not set 972# CONFIG_REGULATOR is not set
951# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
952# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
953# CONFIG_REGULATOR_BQ24022 is not set
954 973
955# 974#
956# Multimedia devices 975# Multimedia devices
@@ -1029,6 +1048,7 @@ CONFIG_FB_FSL_DIU=y
1029# CONFIG_FB_IBM_GXT4500 is not set 1048# CONFIG_FB_IBM_GXT4500 is not set
1030# CONFIG_FB_VIRTUAL is not set 1049# CONFIG_FB_VIRTUAL is not set
1031# CONFIG_FB_METRONOME is not set 1050# CONFIG_FB_METRONOME is not set
1051# CONFIG_FB_MB862XX is not set
1032# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1052# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1033 1053
1034# 1054#
@@ -1054,6 +1074,7 @@ CONFIG_SND_OSSEMUL=y
1054CONFIG_SND_MIXER_OSS=y 1074CONFIG_SND_MIXER_OSS=y
1055CONFIG_SND_PCM_OSS=y 1075CONFIG_SND_PCM_OSS=y
1056CONFIG_SND_PCM_OSS_PLUGINS=y 1076CONFIG_SND_PCM_OSS_PLUGINS=y
1077# CONFIG_SND_HRTIMER is not set
1057# CONFIG_SND_DYNAMIC_MINORS is not set 1078# CONFIG_SND_DYNAMIC_MINORS is not set
1058# CONFIG_SND_SUPPORT_OLD_API is not set 1079# CONFIG_SND_SUPPORT_OLD_API is not set
1059CONFIG_SND_VERBOSE_PROCFS=y 1080CONFIG_SND_VERBOSE_PROCFS=y
@@ -1130,6 +1151,7 @@ CONFIG_SND_PPC=y
1130CONFIG_SND_SOC=y 1151CONFIG_SND_SOC=y
1131CONFIG_SND_SOC_MPC8610=y 1152CONFIG_SND_SOC_MPC8610=y
1132CONFIG_SND_SOC_MPC8610_HPCD=y 1153CONFIG_SND_SOC_MPC8610_HPCD=y
1154CONFIG_SND_SOC_I2C_AND_SPI=y
1133# CONFIG_SND_SOC_ALL_CODECS is not set 1155# CONFIG_SND_SOC_ALL_CODECS is not set
1134CONFIG_SND_SOC_CS4270=y 1156CONFIG_SND_SOC_CS4270=y
1135CONFIG_SND_SOC_CS4270_VD33_ERRATA=y 1157CONFIG_SND_SOC_CS4270_VD33_ERRATA=y
@@ -1157,9 +1179,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1157# 1179#
1158 1180
1159# 1181#
1160# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1182# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1161# 1183#
1162# CONFIG_USB_GADGET is not set 1184# CONFIG_USB_GADGET is not set
1185
1186#
1187# OTG and related infrastructure
1188#
1163# CONFIG_UWB is not set 1189# CONFIG_UWB is not set
1164# CONFIG_MMC is not set 1190# CONFIG_MMC is not set
1165# CONFIG_MEMSTICK is not set 1191# CONFIG_MEMSTICK is not set
@@ -1197,6 +1223,7 @@ CONFIG_RTC_INTF_DEV=y
1197# CONFIG_RTC_DRV_M41T80 is not set 1223# CONFIG_RTC_DRV_M41T80 is not set
1198# CONFIG_RTC_DRV_S35390A is not set 1224# CONFIG_RTC_DRV_S35390A is not set
1199# CONFIG_RTC_DRV_FM3130 is not set 1225# CONFIG_RTC_DRV_FM3130 is not set
1226# CONFIG_RTC_DRV_RX8581 is not set
1200 1227
1201# 1228#
1202# SPI RTC drivers 1229# SPI RTC drivers
@@ -1244,6 +1271,7 @@ CONFIG_FS_MBCACHE=y
1244CONFIG_FILE_LOCKING=y 1271CONFIG_FILE_LOCKING=y
1245# CONFIG_XFS_FS is not set 1272# CONFIG_XFS_FS is not set
1246# CONFIG_OCFS2_FS is not set 1273# CONFIG_OCFS2_FS is not set
1274# CONFIG_BTRFS_FS is not set
1247# CONFIG_DNOTIFY is not set 1275# CONFIG_DNOTIFY is not set
1248# CONFIG_INOTIFY is not set 1276# CONFIG_INOTIFY is not set
1249# CONFIG_QUOTA is not set 1277# CONFIG_QUOTA is not set
@@ -1276,10 +1304,7 @@ CONFIG_TMPFS=y
1276# CONFIG_TMPFS_POSIX_ACL is not set 1304# CONFIG_TMPFS_POSIX_ACL is not set
1277# CONFIG_HUGETLB_PAGE is not set 1305# CONFIG_HUGETLB_PAGE is not set
1278# CONFIG_CONFIGFS_FS is not set 1306# CONFIG_CONFIGFS_FS is not set
1279 1307CONFIG_MISC_FILESYSTEMS=y
1280#
1281# Miscellaneous filesystems
1282#
1283# CONFIG_ADFS_FS is not set 1308# CONFIG_ADFS_FS is not set
1284# CONFIG_AFFS_FS is not set 1309# CONFIG_AFFS_FS is not set
1285# CONFIG_HFS_FS is not set 1310# CONFIG_HFS_FS is not set
@@ -1289,6 +1314,7 @@ CONFIG_TMPFS=y
1289# CONFIG_EFS_FS is not set 1314# CONFIG_EFS_FS is not set
1290# CONFIG_JFFS2_FS is not set 1315# CONFIG_JFFS2_FS is not set
1291# CONFIG_CRAMFS is not set 1316# CONFIG_CRAMFS is not set
1317# CONFIG_SQUASHFS is not set
1292# CONFIG_VXFS_FS is not set 1318# CONFIG_VXFS_FS is not set
1293# CONFIG_MINIX_FS is not set 1319# CONFIG_MINIX_FS is not set
1294# CONFIG_OMFS_FS is not set 1320# CONFIG_OMFS_FS is not set
@@ -1388,6 +1414,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1388# Library routines 1414# Library routines
1389# 1415#
1390CONFIG_BITREVERSE=y 1416CONFIG_BITREVERSE=y
1417CONFIG_GENERIC_FIND_LAST_BIT=y
1391# CONFIG_CRC_CCITT is not set 1418# CONFIG_CRC_CCITT is not set
1392# CONFIG_CRC16 is not set 1419# CONFIG_CRC16 is not set
1393CONFIG_CRC_T10DIF=y 1420CONFIG_CRC_T10DIF=y
@@ -1438,6 +1465,7 @@ CONFIG_DEBUG_INFO=y
1438# CONFIG_DEBUG_MEMORY_INIT is not set 1465# CONFIG_DEBUG_MEMORY_INIT is not set
1439# CONFIG_DEBUG_LIST is not set 1466# CONFIG_DEBUG_LIST is not set
1440# CONFIG_DEBUG_SG is not set 1467# CONFIG_DEBUG_SG is not set
1468# CONFIG_DEBUG_NOTIFIERS is not set
1441# CONFIG_BOOT_PRINTK_DELAY is not set 1469# CONFIG_BOOT_PRINTK_DELAY is not set
1442# CONFIG_RCU_TORTURE_TEST is not set 1470# CONFIG_RCU_TORTURE_TEST is not set
1443# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1471# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1447,6 +1475,8 @@ CONFIG_DEBUG_INFO=y
1447# CONFIG_LATENCYTOP is not set 1475# CONFIG_LATENCYTOP is not set
1448CONFIG_SYSCTL_SYSCALL_CHECK=y 1476CONFIG_SYSCTL_SYSCALL_CHECK=y
1449CONFIG_HAVE_FUNCTION_TRACER=y 1477CONFIG_HAVE_FUNCTION_TRACER=y
1478CONFIG_HAVE_DYNAMIC_FTRACE=y
1479CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1450 1480
1451# 1481#
1452# Tracers 1482# Tracers
@@ -1455,11 +1485,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1455# CONFIG_SCHED_TRACER is not set 1485# CONFIG_SCHED_TRACER is not set
1456# CONFIG_CONTEXT_SWITCH_TRACER is not set 1486# CONFIG_CONTEXT_SWITCH_TRACER is not set
1457# CONFIG_BOOT_TRACER is not set 1487# CONFIG_BOOT_TRACER is not set
1488# CONFIG_TRACE_BRANCH_PROFILING is not set
1458# CONFIG_STACK_TRACER is not set 1489# CONFIG_STACK_TRACER is not set
1459# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1490# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1460# CONFIG_SAMPLES is not set 1491# CONFIG_SAMPLES is not set
1461CONFIG_HAVE_ARCH_KGDB=y 1492CONFIG_HAVE_ARCH_KGDB=y
1462# CONFIG_KGDB is not set 1493# CONFIG_KGDB is not set
1494CONFIG_PRINT_STACK_DEPTH=64
1463# CONFIG_DEBUG_STACKOVERFLOW is not set 1495# CONFIG_DEBUG_STACKOVERFLOW is not set
1464# CONFIG_DEBUG_STACK_USAGE is not set 1496# CONFIG_DEBUG_STACK_USAGE is not set
1465# CONFIG_DEBUG_PAGEALLOC is not set 1497# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1486,6 +1518,7 @@ CONFIG_CRYPTO=y
1486# 1518#
1487# CONFIG_CRYPTO_FIPS is not set 1519# CONFIG_CRYPTO_FIPS is not set
1488# CONFIG_CRYPTO_MANAGER is not set 1520# CONFIG_CRYPTO_MANAGER is not set
1521# CONFIG_CRYPTO_MANAGER2 is not set
1489# CONFIG_CRYPTO_GF128MUL is not set 1522# CONFIG_CRYPTO_GF128MUL is not set
1490# CONFIG_CRYPTO_NULL is not set 1523# CONFIG_CRYPTO_NULL is not set
1491# CONFIG_CRYPTO_CRYPTD is not set 1524# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 41220ece603d..92acfdf3540a 100644
--- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8641_hpcn_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:29 2008 4# Mon Jan 26 15:36:25 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -78,12 +78,12 @@ CONFIG_AUDIT=y
78CONFIG_IKCONFIG=y 78CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 79CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
83# CONFIG_FAIR_GROUP_SCHED is not set 82# CONFIG_FAIR_GROUP_SCHED is not set
84# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -96,6 +96,7 @@ CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 98CONFIG_KALLSYMS_ALL=y
99CONFIG_KALLSYMS_STRIP_GENERATED=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 100CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y 101CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 102CONFIG_PRINTK=y
@@ -118,7 +119,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 119CONFIG_SLUB=y
119# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 123# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -130,7 +130,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
133# CONFIG_TINY_SHMEM is not set
134CONFIG_BASE_SMALL=0 133CONFIG_BASE_SMALL=0
135CONFIG_MODULES=y 134CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set 135# CONFIG_MODULE_FORCE_LOAD is not set
@@ -138,12 +137,10 @@ CONFIG_MODULE_UNLOAD=y
138CONFIG_MODULE_FORCE_UNLOAD=y 137CONFIG_MODULE_FORCE_UNLOAD=y
139CONFIG_MODVERSIONS=y 138CONFIG_MODVERSIONS=y
140# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
141CONFIG_KMOD=y
142CONFIG_STOP_MACHINE=y 140CONFIG_STOP_MACHINE=y
143CONFIG_BLOCK=y 141CONFIG_BLOCK=y
144CONFIG_LBD=y 142CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_LSF is not set
147# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
149 146
@@ -160,6 +157,10 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 158CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 159CONFIG_CLASSIC_RCU=y
160# CONFIG_TREE_RCU is not set
161# CONFIG_PREEMPT_RCU is not set
162# CONFIG_TREE_RCU_TRACE is not set
163# CONFIG_PREEMPT_RCU_TRACE is not set
163# CONFIG_FREEZER is not set 164# CONFIG_FREEZER is not set
164 165
165# 166#
@@ -198,6 +199,7 @@ CONFIG_PPC_I8259=y
198# CONFIG_QUICC_ENGINE is not set 199# CONFIG_QUICC_ENGINE is not set
199CONFIG_FSL_ULI1575=y 200CONFIG_FSL_ULI1575=y
200# CONFIG_MPC8xxx_GPIO is not set 201# CONFIG_MPC8xxx_GPIO is not set
202# CONFIG_SIMPLE_GPIO is not set
201 203
202# 204#
203# Kernel options 205# Kernel options
@@ -225,6 +227,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 227CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 229# CONFIG_KEXEC is not set
230# CONFIG_CRASH_DUMP is not set
228# CONFIG_IRQ_ALL_CPUS is not set 231# CONFIG_IRQ_ALL_CPUS is not set
229CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -237,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
269# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
270# CONFIG_PCI_DEBUG is not set 275# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCI_STUB is not set
271# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
272# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
273CONFIG_HAS_RAPIDIO=y 279CONFIG_HAS_RAPIDIO=y
@@ -291,6 +297,7 @@ CONFIG_NET=y
291# 297#
292# Networking options 298# Networking options
293# 299#
300CONFIG_COMPAT_NET_DEV_OPS=y
294CONFIG_PACKET=y 301CONFIG_PACKET=y
295# CONFIG_PACKET_MMAP is not set 302# CONFIG_PACKET_MMAP is not set
296CONFIG_UNIX=y 303CONFIG_UNIX=y
@@ -379,6 +386,7 @@ CONFIG_SCTP_HMAC_MD5=y
379# CONFIG_ECONET is not set 386# CONFIG_ECONET is not set
380# CONFIG_WAN_ROUTER is not set 387# CONFIG_WAN_ROUTER is not set
381# CONFIG_NET_SCHED is not set 388# CONFIG_NET_SCHED is not set
389# CONFIG_DCB is not set
382 390
383# 391#
384# Network testing 392# Network testing
@@ -395,8 +403,9 @@ CONFIG_WIRELESS=y
395# CONFIG_CFG80211 is not set 403# CONFIG_CFG80211 is not set
396CONFIG_WIRELESS_OLD_REGULATORY=y 404CONFIG_WIRELESS_OLD_REGULATORY=y
397# CONFIG_WIRELESS_EXT is not set 405# CONFIG_WIRELESS_EXT is not set
406# CONFIG_LIB80211 is not set
398# CONFIG_MAC80211 is not set 407# CONFIG_MAC80211 is not set
399# CONFIG_IEEE80211 is not set 408# CONFIG_WIMAX is not set
400# CONFIG_RFKILL is not set 409# CONFIG_RFKILL is not set
401# CONFIG_NET_9P is not set 410# CONFIG_NET_9P is not set
402 411
@@ -445,8 +454,10 @@ CONFIG_MISC_DEVICES=y
445# CONFIG_EEPROM_93CX6 is not set 454# CONFIG_EEPROM_93CX6 is not set
446# CONFIG_SGI_IOC4 is not set 455# CONFIG_SGI_IOC4 is not set
447# CONFIG_TIFM_CORE is not set 456# CONFIG_TIFM_CORE is not set
457# CONFIG_ICS932S401 is not set
448# CONFIG_ENCLOSURE_SERVICES is not set 458# CONFIG_ENCLOSURE_SERVICES is not set
449# CONFIG_HP_ILO is not set 459# CONFIG_HP_ILO is not set
460# CONFIG_C2PORT is not set
450CONFIG_HAVE_IDE=y 461CONFIG_HAVE_IDE=y
451# CONFIG_IDE is not set 462# CONFIG_IDE is not set
452 463
@@ -490,6 +501,7 @@ CONFIG_SCSI_WAIT_SCAN=m
490# CONFIG_SCSI_SRP_ATTRS is not set 501# CONFIG_SCSI_SRP_ATTRS is not set
491CONFIG_SCSI_LOWLEVEL=y 502CONFIG_SCSI_LOWLEVEL=y
492# CONFIG_ISCSI_TCP is not set 503# CONFIG_ISCSI_TCP is not set
504# CONFIG_SCSI_CXGB3_ISCSI is not set
493# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 505# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
494# CONFIG_SCSI_3W_9XXX is not set 506# CONFIG_SCSI_3W_9XXX is not set
495# CONFIG_SCSI_ACARD is not set 507# CONFIG_SCSI_ACARD is not set
@@ -506,6 +518,8 @@ CONFIG_SCSI_LOWLEVEL=y
506# CONFIG_MEGARAID_SAS is not set 518# CONFIG_MEGARAID_SAS is not set
507# CONFIG_SCSI_HPTIOP is not set 519# CONFIG_SCSI_HPTIOP is not set
508# CONFIG_SCSI_BUSLOGIC is not set 520# CONFIG_SCSI_BUSLOGIC is not set
521# CONFIG_LIBFC is not set
522# CONFIG_FCOE is not set
509# CONFIG_SCSI_DMX3191D is not set 523# CONFIG_SCSI_DMX3191D is not set
510# CONFIG_SCSI_EATA is not set 524# CONFIG_SCSI_EATA is not set
511# CONFIG_SCSI_FUTURE_DOMAIN is not set 525# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -625,6 +639,9 @@ CONFIG_VITESSE_PHY=y
625# CONFIG_BROADCOM_PHY is not set 639# CONFIG_BROADCOM_PHY is not set
626# CONFIG_ICPLUS_PHY is not set 640# CONFIG_ICPLUS_PHY is not set
627# CONFIG_REALTEK_PHY is not set 641# CONFIG_REALTEK_PHY is not set
642# CONFIG_NATIONAL_PHY is not set
643# CONFIG_STE10XP is not set
644# CONFIG_LSI_ET1011C_PHY is not set
628# CONFIG_FIXED_PHY is not set 645# CONFIG_FIXED_PHY is not set
629# CONFIG_MDIO_BITBANG is not set 646# CONFIG_MDIO_BITBANG is not set
630CONFIG_NET_ETHERNET=y 647CONFIG_NET_ETHERNET=y
@@ -670,6 +687,7 @@ CONFIG_GIANFAR=y
670# CONFIG_JME is not set 687# CONFIG_JME is not set
671CONFIG_NETDEV_10000=y 688CONFIG_NETDEV_10000=y
672# CONFIG_CHELSIO_T1 is not set 689# CONFIG_CHELSIO_T1 is not set
690CONFIG_CHELSIO_T3_DEPENDS=y
673# CONFIG_CHELSIO_T3 is not set 691# CONFIG_CHELSIO_T3 is not set
674# CONFIG_ENIC is not set 692# CONFIG_ENIC is not set
675# CONFIG_IXGBE is not set 693# CONFIG_IXGBE is not set
@@ -694,6 +712,10 @@ CONFIG_NETDEV_10000=y
694# CONFIG_IWLWIFI_LEDS is not set 712# CONFIG_IWLWIFI_LEDS is not set
695 713
696# 714#
715# Enable WiMAX (Networking options) to see the WiMAX drivers
716#
717
718#
697# USB Network Adapters 719# USB Network Adapters
698# 720#
699# CONFIG_USB_CATC is not set 721# CONFIG_USB_CATC is not set
@@ -785,8 +807,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
785# CONFIG_SERIAL_JSM is not set 807# CONFIG_SERIAL_JSM is not set
786# CONFIG_SERIAL_OF_PLATFORM is not set 808# CONFIG_SERIAL_OF_PLATFORM is not set
787CONFIG_UNIX98_PTYS=y 809CONFIG_UNIX98_PTYS=y
810# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
788CONFIG_LEGACY_PTYS=y 811CONFIG_LEGACY_PTYS=y
789CONFIG_LEGACY_PTY_COUNT=256 812CONFIG_LEGACY_PTY_COUNT=256
813# CONFIG_HVC_UDBG is not set
790# CONFIG_IPMI_HANDLER is not set 814# CONFIG_IPMI_HANDLER is not set
791# CONFIG_HW_RANDOM is not set 815# CONFIG_HW_RANDOM is not set
792CONFIG_NVRAM=y 816CONFIG_NVRAM=y
@@ -851,8 +875,8 @@ CONFIG_I2C_MPC=y
851# Miscellaneous I2C Chip support 875# Miscellaneous I2C Chip support
852# 876#
853# CONFIG_DS1682 is not set 877# CONFIG_DS1682 is not set
854# CONFIG_AT24 is not set 878# CONFIG_EEPROM_AT24 is not set
855CONFIG_SENSORS_EEPROM=y 879CONFIG_EEPROM_LEGACY=y
856# CONFIG_SENSORS_PCF8574 is not set 880# CONFIG_SENSORS_PCF8574 is not set
857# CONFIG_PCF8575 is not set 881# CONFIG_PCF8575 is not set
858# CONFIG_SENSORS_PCA9539 is not set 882# CONFIG_SENSORS_PCA9539 is not set
@@ -872,11 +896,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
872# CONFIG_THERMAL is not set 896# CONFIG_THERMAL is not set
873# CONFIG_THERMAL_HWMON is not set 897# CONFIG_THERMAL_HWMON is not set
874# CONFIG_WATCHDOG is not set 898# CONFIG_WATCHDOG is not set
899CONFIG_SSB_POSSIBLE=y
875 900
876# 901#
877# Sonics Silicon Backplane 902# Sonics Silicon Backplane
878# 903#
879CONFIG_SSB_POSSIBLE=y
880# CONFIG_SSB is not set 904# CONFIG_SSB is not set
881 905
882# 906#
@@ -885,18 +909,13 @@ CONFIG_SSB_POSSIBLE=y
885# CONFIG_MFD_CORE is not set 909# CONFIG_MFD_CORE is not set
886# CONFIG_MFD_SM501 is not set 910# CONFIG_MFD_SM501 is not set
887# CONFIG_HTC_PASIC3 is not set 911# CONFIG_HTC_PASIC3 is not set
912# CONFIG_TWL4030_CORE is not set
888# CONFIG_MFD_TMIO is not set 913# CONFIG_MFD_TMIO is not set
889# CONFIG_PMIC_DA903X is not set 914# CONFIG_PMIC_DA903X is not set
890# CONFIG_MFD_WM8400 is not set 915# CONFIG_MFD_WM8400 is not set
891# CONFIG_MFD_WM8350_I2C is not set 916# CONFIG_MFD_WM8350_I2C is not set
892 917# CONFIG_MFD_PCF50633 is not set
893#
894# Voltage and Current regulators
895#
896# CONFIG_REGULATOR is not set 918# CONFIG_REGULATOR is not set
897# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
898# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
899# CONFIG_REGULATOR_BQ24022 is not set
900 919
901# 920#
902# Multimedia devices 921# Multimedia devices
@@ -923,6 +942,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
923CONFIG_MEDIA_TUNER_MT20XX=m 942CONFIG_MEDIA_TUNER_MT20XX=m
924CONFIG_MEDIA_TUNER_XC2028=m 943CONFIG_MEDIA_TUNER_XC2028=m
925CONFIG_MEDIA_TUNER_XC5000=m 944CONFIG_MEDIA_TUNER_XC5000=m
945# CONFIG_DVB_DYNAMIC_MINORS is not set
926CONFIG_DVB_CAPTURE_DRIVERS=y 946CONFIG_DVB_CAPTURE_DRIVERS=y
927 947
928# 948#
@@ -968,6 +988,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
968# CONFIG_DVB_FE_CUSTOMISE is not set 988# CONFIG_DVB_FE_CUSTOMISE is not set
969 989
970# 990#
991# Multistandard (satellite) frontends
992#
993# CONFIG_DVB_STB0899 is not set
994# CONFIG_DVB_STB6100 is not set
995
996#
971# DVB-S (satellite) frontends 997# DVB-S (satellite) frontends
972# 998#
973# CONFIG_DVB_CX24110 is not set 999# CONFIG_DVB_CX24110 is not set
@@ -979,8 +1005,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
979# CONFIG_DVB_STV0299 is not set 1005# CONFIG_DVB_STV0299 is not set
980# CONFIG_DVB_TDA8083 is not set 1006# CONFIG_DVB_TDA8083 is not set
981# CONFIG_DVB_TDA10086 is not set 1007# CONFIG_DVB_TDA10086 is not set
1008# CONFIG_DVB_TDA8261 is not set
982# CONFIG_DVB_VES1X93 is not set 1009# CONFIG_DVB_VES1X93 is not set
983# CONFIG_DVB_TUNER_ITD1000 is not set 1010# CONFIG_DVB_TUNER_ITD1000 is not set
1011# CONFIG_DVB_TUNER_CX24113 is not set
984# CONFIG_DVB_TDA826X is not set 1012# CONFIG_DVB_TDA826X is not set
985# CONFIG_DVB_TUA6100 is not set 1013# CONFIG_DVB_TUA6100 is not set
986# CONFIG_DVB_CX24116 is not set 1014# CONFIG_DVB_CX24116 is not set
@@ -1021,11 +1049,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1021# CONFIG_DVB_OR51132 is not set 1049# CONFIG_DVB_OR51132 is not set
1022# CONFIG_DVB_BCM3510 is not set 1050# CONFIG_DVB_BCM3510 is not set
1023# CONFIG_DVB_LGDT330X is not set 1051# CONFIG_DVB_LGDT330X is not set
1052# CONFIG_DVB_LGDT3304 is not set
1024# CONFIG_DVB_S5H1409 is not set 1053# CONFIG_DVB_S5H1409 is not set
1025# CONFIG_DVB_AU8522 is not set 1054# CONFIG_DVB_AU8522 is not set
1026# CONFIG_DVB_S5H1411 is not set 1055# CONFIG_DVB_S5H1411 is not set
1027 1056
1028# 1057#
1058# ISDB-T (terrestrial) frontends
1059#
1060# CONFIG_DVB_S921 is not set
1061
1062#
1029# Digital terrestrial only tuners/PLL 1063# Digital terrestrial only tuners/PLL
1030# 1064#
1031# CONFIG_DVB_PLL is not set 1065# CONFIG_DVB_PLL is not set
@@ -1078,6 +1112,7 @@ CONFIG_SND_OSSEMUL=y
1078CONFIG_SND_MIXER_OSS=y 1112CONFIG_SND_MIXER_OSS=y
1079CONFIG_SND_PCM_OSS=y 1113CONFIG_SND_PCM_OSS=y
1080CONFIG_SND_PCM_OSS_PLUGINS=y 1114CONFIG_SND_PCM_OSS_PLUGINS=y
1115# CONFIG_SND_HRTIMER is not set
1081# CONFIG_SND_DYNAMIC_MINORS is not set 1116# CONFIG_SND_DYNAMIC_MINORS is not set
1082# CONFIG_SND_SUPPORT_OLD_API is not set 1117# CONFIG_SND_SUPPORT_OLD_API is not set
1083CONFIG_SND_VERBOSE_PROCFS=y 1118CONFIG_SND_VERBOSE_PROCFS=y
@@ -1180,11 +1215,9 @@ CONFIG_HID_COMPAT=y
1180CONFIG_HID_A4TECH=y 1215CONFIG_HID_A4TECH=y
1181CONFIG_HID_APPLE=y 1216CONFIG_HID_APPLE=y
1182CONFIG_HID_BELKIN=y 1217CONFIG_HID_BELKIN=y
1183CONFIG_HID_BRIGHT=y
1184CONFIG_HID_CHERRY=y 1218CONFIG_HID_CHERRY=y
1185CONFIG_HID_CHICONY=y 1219CONFIG_HID_CHICONY=y
1186CONFIG_HID_CYPRESS=y 1220CONFIG_HID_CYPRESS=y
1187CONFIG_HID_DELL=y
1188CONFIG_HID_EZKEY=y 1221CONFIG_HID_EZKEY=y
1189CONFIG_HID_GYRATION=y 1222CONFIG_HID_GYRATION=y
1190CONFIG_HID_LOGITECH=y 1223CONFIG_HID_LOGITECH=y
@@ -1192,12 +1225,15 @@ CONFIG_HID_LOGITECH=y
1192# CONFIG_LOGIRUMBLEPAD2_FF is not set 1225# CONFIG_LOGIRUMBLEPAD2_FF is not set
1193CONFIG_HID_MICROSOFT=y 1226CONFIG_HID_MICROSOFT=y
1194CONFIG_HID_MONTEREY=y 1227CONFIG_HID_MONTEREY=y
1228# CONFIG_HID_NTRIG is not set
1195CONFIG_HID_PANTHERLORD=y 1229CONFIG_HID_PANTHERLORD=y
1196# CONFIG_PANTHERLORD_FF is not set 1230# CONFIG_PANTHERLORD_FF is not set
1197CONFIG_HID_PETALYNX=y 1231CONFIG_HID_PETALYNX=y
1198CONFIG_HID_SAMSUNG=y 1232CONFIG_HID_SAMSUNG=y
1199CONFIG_HID_SONY=y 1233CONFIG_HID_SONY=y
1200CONFIG_HID_SUNPLUS=y 1234CONFIG_HID_SUNPLUS=y
1235# CONFIG_GREENASIA_FF is not set
1236# CONFIG_HID_TOPSEED is not set
1201CONFIG_THRUSTMASTER_FF=m 1237CONFIG_THRUSTMASTER_FF=m
1202CONFIG_ZEROPLUS_FF=m 1238CONFIG_ZEROPLUS_FF=m
1203CONFIG_USB_SUPPORT=y 1239CONFIG_USB_SUPPORT=y
@@ -1230,6 +1266,7 @@ CONFIG_USB_EHCI_HCD=y
1230# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1266# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1231# CONFIG_USB_EHCI_FSL is not set 1267# CONFIG_USB_EHCI_FSL is not set
1232CONFIG_USB_EHCI_HCD_PPC_OF=y 1268CONFIG_USB_EHCI_HCD_PPC_OF=y
1269# CONFIG_USB_OXU210HP_HCD is not set
1233# CONFIG_USB_ISP116X_HCD is not set 1270# CONFIG_USB_ISP116X_HCD is not set
1234# CONFIG_USB_ISP1760_HCD is not set 1271# CONFIG_USB_ISP1760_HCD is not set
1235CONFIG_USB_OHCI_HCD=y 1272CONFIG_USB_OHCI_HCD=y
@@ -1255,18 +1292,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1255# CONFIG_USB_TMC is not set 1292# CONFIG_USB_TMC is not set
1256 1293
1257# 1294#
1258# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1295# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1259# 1296#
1260 1297
1261# 1298#
1262# may also be needed; see USB_STORAGE Help for more information 1299# see USB_STORAGE Help for more information
1263# 1300#
1264CONFIG_USB_STORAGE=y 1301CONFIG_USB_STORAGE=y
1265# CONFIG_USB_STORAGE_DEBUG is not set 1302# CONFIG_USB_STORAGE_DEBUG is not set
1266# CONFIG_USB_STORAGE_DATAFAB is not set 1303# CONFIG_USB_STORAGE_DATAFAB is not set
1267# CONFIG_USB_STORAGE_FREECOM is not set 1304# CONFIG_USB_STORAGE_FREECOM is not set
1268# CONFIG_USB_STORAGE_ISD200 is not set 1305# CONFIG_USB_STORAGE_ISD200 is not set
1269# CONFIG_USB_STORAGE_DPCM is not set
1270# CONFIG_USB_STORAGE_USBAT is not set 1306# CONFIG_USB_STORAGE_USBAT is not set
1271# CONFIG_USB_STORAGE_SDDR09 is not set 1307# CONFIG_USB_STORAGE_SDDR09 is not set
1272# CONFIG_USB_STORAGE_SDDR55 is not set 1308# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1314,6 +1350,10 @@ CONFIG_USB_STORAGE=y
1314# CONFIG_USB_ISIGHTFW is not set 1350# CONFIG_USB_ISIGHTFW is not set
1315# CONFIG_USB_VST is not set 1351# CONFIG_USB_VST is not set
1316# CONFIG_USB_GADGET is not set 1352# CONFIG_USB_GADGET is not set
1353
1354#
1355# OTG and related infrastructure
1356#
1317# CONFIG_UWB is not set 1357# CONFIG_UWB is not set
1318# CONFIG_MMC is not set 1358# CONFIG_MMC is not set
1319# CONFIG_MEMSTICK is not set 1359# CONFIG_MEMSTICK is not set
@@ -1351,6 +1391,7 @@ CONFIG_RTC_INTF_DEV=y
1351# CONFIG_RTC_DRV_M41T80 is not set 1391# CONFIG_RTC_DRV_M41T80 is not set
1352# CONFIG_RTC_DRV_S35390A is not set 1392# CONFIG_RTC_DRV_S35390A is not set
1353# CONFIG_RTC_DRV_FM3130 is not set 1393# CONFIG_RTC_DRV_FM3130 is not set
1394# CONFIG_RTC_DRV_RX8581 is not set
1354 1395
1355# 1396#
1356# SPI RTC drivers 1397# SPI RTC drivers
@@ -1397,7 +1438,9 @@ CONFIG_FS_MBCACHE=y
1397# CONFIG_FS_POSIX_ACL is not set 1438# CONFIG_FS_POSIX_ACL is not set
1398CONFIG_FILE_LOCKING=y 1439CONFIG_FILE_LOCKING=y
1399# CONFIG_XFS_FS is not set 1440# CONFIG_XFS_FS is not set
1441# CONFIG_GFS2_FS is not set
1400# CONFIG_OCFS2_FS is not set 1442# CONFIG_OCFS2_FS is not set
1443# CONFIG_BTRFS_FS is not set
1401CONFIG_DNOTIFY=y 1444CONFIG_DNOTIFY=y
1402CONFIG_INOTIFY=y 1445CONFIG_INOTIFY=y
1403CONFIG_INOTIFY_USER=y 1446CONFIG_INOTIFY_USER=y
@@ -1439,10 +1482,7 @@ CONFIG_TMPFS=y
1439# CONFIG_TMPFS_POSIX_ACL is not set 1482# CONFIG_TMPFS_POSIX_ACL is not set
1440# CONFIG_HUGETLB_PAGE is not set 1483# CONFIG_HUGETLB_PAGE is not set
1441# CONFIG_CONFIGFS_FS is not set 1484# CONFIG_CONFIGFS_FS is not set
1442 1485CONFIG_MISC_FILESYSTEMS=y
1443#
1444# Miscellaneous filesystems
1445#
1446CONFIG_ADFS_FS=m 1486CONFIG_ADFS_FS=m
1447# CONFIG_ADFS_FS_RW is not set 1487# CONFIG_ADFS_FS_RW is not set
1448CONFIG_AFFS_FS=m 1488CONFIG_AFFS_FS=m
@@ -1453,6 +1493,7 @@ CONFIG_BEFS_FS=m
1453CONFIG_BFS_FS=m 1493CONFIG_BFS_FS=m
1454CONFIG_EFS_FS=m 1494CONFIG_EFS_FS=m
1455CONFIG_CRAMFS=y 1495CONFIG_CRAMFS=y
1496# CONFIG_SQUASHFS is not set
1456CONFIG_VXFS_FS=m 1497CONFIG_VXFS_FS=m
1457# CONFIG_MINIX_FS is not set 1498# CONFIG_MINIX_FS is not set
1458# CONFIG_OMFS_FS is not set 1499# CONFIG_OMFS_FS is not set
@@ -1554,6 +1595,7 @@ CONFIG_NLS_UTF8=m
1554# Library routines 1595# Library routines
1555# 1596#
1556CONFIG_BITREVERSE=y 1597CONFIG_BITREVERSE=y
1598CONFIG_GENERIC_FIND_LAST_BIT=y
1557# CONFIG_CRC_CCITT is not set 1599# CONFIG_CRC_CCITT is not set
1558# CONFIG_CRC16 is not set 1600# CONFIG_CRC16 is not set
1559CONFIG_CRC_T10DIF=y 1601CONFIG_CRC_T10DIF=y
@@ -1605,6 +1647,7 @@ CONFIG_DEBUG_INFO=y
1605# CONFIG_DEBUG_MEMORY_INIT is not set 1647# CONFIG_DEBUG_MEMORY_INIT is not set
1606# CONFIG_DEBUG_LIST is not set 1648# CONFIG_DEBUG_LIST is not set
1607# CONFIG_DEBUG_SG is not set 1649# CONFIG_DEBUG_SG is not set
1650# CONFIG_DEBUG_NOTIFIERS is not set
1608# CONFIG_BOOT_PRINTK_DELAY is not set 1651# CONFIG_BOOT_PRINTK_DELAY is not set
1609# CONFIG_RCU_TORTURE_TEST is not set 1652# CONFIG_RCU_TORTURE_TEST is not set
1610# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1653# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1614,6 +1657,8 @@ CONFIG_DEBUG_INFO=y
1614# CONFIG_LATENCYTOP is not set 1657# CONFIG_LATENCYTOP is not set
1615CONFIG_SYSCTL_SYSCALL_CHECK=y 1658CONFIG_SYSCTL_SYSCALL_CHECK=y
1616CONFIG_HAVE_FUNCTION_TRACER=y 1659CONFIG_HAVE_FUNCTION_TRACER=y
1660CONFIG_HAVE_DYNAMIC_FTRACE=y
1661CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1617 1662
1618# 1663#
1619# Tracers 1664# Tracers
@@ -1622,11 +1667,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1622# CONFIG_SCHED_TRACER is not set 1667# CONFIG_SCHED_TRACER is not set
1623# CONFIG_CONTEXT_SWITCH_TRACER is not set 1668# CONFIG_CONTEXT_SWITCH_TRACER is not set
1624# CONFIG_BOOT_TRACER is not set 1669# CONFIG_BOOT_TRACER is not set
1670# CONFIG_TRACE_BRANCH_PROFILING is not set
1625# CONFIG_STACK_TRACER is not set 1671# CONFIG_STACK_TRACER is not set
1626# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1672# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1627# CONFIG_SAMPLES is not set 1673# CONFIG_SAMPLES is not set
1628CONFIG_HAVE_ARCH_KGDB=y 1674CONFIG_HAVE_ARCH_KGDB=y
1629# CONFIG_KGDB is not set 1675# CONFIG_KGDB is not set
1676CONFIG_PRINT_STACK_DEPTH=64
1630# CONFIG_DEBUG_STACKOVERFLOW is not set 1677# CONFIG_DEBUG_STACKOVERFLOW is not set
1631# CONFIG_DEBUG_STACK_USAGE is not set 1678# CONFIG_DEBUG_STACK_USAGE is not set
1632# CONFIG_DEBUG_PAGEALLOC is not set 1679# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1653,11 +1700,15 @@ CONFIG_CRYPTO=y
1653# 1700#
1654# CONFIG_CRYPTO_FIPS is not set 1701# CONFIG_CRYPTO_FIPS is not set
1655CONFIG_CRYPTO_ALGAPI=y 1702CONFIG_CRYPTO_ALGAPI=y
1656CONFIG_CRYPTO_AEAD=y 1703CONFIG_CRYPTO_ALGAPI2=y
1704CONFIG_CRYPTO_AEAD2=y
1657CONFIG_CRYPTO_BLKCIPHER=y 1705CONFIG_CRYPTO_BLKCIPHER=y
1706CONFIG_CRYPTO_BLKCIPHER2=y
1658CONFIG_CRYPTO_HASH=y 1707CONFIG_CRYPTO_HASH=y
1659CONFIG_CRYPTO_RNG=y 1708CONFIG_CRYPTO_HASH2=y
1709CONFIG_CRYPTO_RNG2=y
1660CONFIG_CRYPTO_MANAGER=y 1710CONFIG_CRYPTO_MANAGER=y
1711CONFIG_CRYPTO_MANAGER2=y
1661# CONFIG_CRYPTO_GF128MUL is not set 1712# CONFIG_CRYPTO_GF128MUL is not set
1662# CONFIG_CRYPTO_NULL is not set 1713# CONFIG_CRYPTO_NULL is not set
1663# CONFIG_CRYPTO_CRYPTD is not set 1714# CONFIG_CRYPTO_CRYPTD is not set
@@ -1691,7 +1742,7 @@ CONFIG_CRYPTO_HMAC=y
1691# 1742#
1692# Digest 1743# Digest
1693# 1744#
1694# CONFIG_CRYPTO_CRC32C is not set 1745CONFIG_CRYPTO_CRC32C=m
1695# CONFIG_CRYPTO_MD4 is not set 1746# CONFIG_CRYPTO_MD4 is not set
1696CONFIG_CRYPTO_MD5=y 1747CONFIG_CRYPTO_MD5=y
1697# CONFIG_CRYPTO_MICHAEL_MIC is not set 1748# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index a4342862f6ef..04797e730c5a 100644
--- a/arch/powerpc/configs/86xx/sbc8641d_defconfig
+++ b/arch/powerpc/configs/86xx/sbc8641d_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:40:26 2008 4# Mon Jan 26 15:36:23 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -46,7 +46,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
46CONFIG_PPC=y 46CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 48CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 49CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 50CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 51CONFIG_PPC_OF=y
52CONFIG_OF=y 52CONFIG_OF=y
@@ -78,12 +78,12 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
78CONFIG_IKCONFIG=y 78CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 79CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
83CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
84# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
89CONFIG_RELAY=y 89CONFIG_RELAY=y
@@ -117,7 +117,6 @@ CONFIG_SLAB=y
117# CONFIG_SLUB is not set 117# CONFIG_SLUB is not set
118# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
120# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +128,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 131CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 132CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 133# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,12 +135,10 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_FORCE_UNLOAD is not set 135# CONFIG_MODULE_FORCE_UNLOAD is not set
138# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
139# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_STOP_MACHINE=y 138CONFIG_STOP_MACHINE=y
142CONFIG_BLOCK=y 139CONFIG_BLOCK=y
143# CONFIG_LBD is not set 140# CONFIG_LBD is not set
144# CONFIG_BLK_DEV_IO_TRACE is not set 141# CONFIG_BLK_DEV_IO_TRACE is not set
145# CONFIG_LSF is not set
146# CONFIG_BLK_DEV_BSG is not set 142# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set 143# CONFIG_BLK_DEV_INTEGRITY is not set
148 144
@@ -159,6 +155,10 @@ CONFIG_DEFAULT_CFQ=y
159# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="cfq" 156CONFIG_DEFAULT_IOSCHED="cfq"
161CONFIG_CLASSIC_RCU=y 157CONFIG_CLASSIC_RCU=y
158# CONFIG_TREE_RCU is not set
159# CONFIG_PREEMPT_RCU is not set
160# CONFIG_TREE_RCU_TRACE is not set
161# CONFIG_PREEMPT_RCU_TRACE is not set
162# CONFIG_FREEZER is not set 162# CONFIG_FREEZER is not set
163 163
164# 164#
@@ -197,6 +197,7 @@ CONFIG_MPIC=y
197# CONFIG_QUICC_ENGINE is not set 197# CONFIG_QUICC_ENGINE is not set
198# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set 199# CONFIG_MPC8xxx_GPIO is not set
200# CONFIG_SIMPLE_GPIO is not set
200 201
201# 202#
202# Kernel options 203# Kernel options
@@ -215,7 +216,6 @@ CONFIG_SCHED_HRTICK=y
215# CONFIG_PREEMPT_NONE is not set 216# CONFIG_PREEMPT_NONE is not set
216# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
217CONFIG_PREEMPT=y 218CONFIG_PREEMPT=y
218# CONFIG_PREEMPT_RCU is not set
219CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set 221# CONFIG_HAVE_AOUT is not set
@@ -225,6 +225,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set 227# CONFIG_KEXEC is not set
228# CONFIG_CRASH_DUMP is not set
228CONFIG_IRQ_ALL_CPUS=y 229CONFIG_IRQ_ALL_CPUS=y
229CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
230CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -237,12 +238,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
237CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 240CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set 241# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
247# CONFIG_PROC_DEVICETREE is not set 250# CONFIG_PROC_DEVICETREE is not set
248# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -270,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
270# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
271# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
272# CONFIG_PCI_DEBUG is not set 275# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCI_STUB is not set
273# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
274# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
275# CONFIG_HAS_RAPIDIO is not set 279# CONFIG_HAS_RAPIDIO is not set
@@ -292,6 +296,7 @@ CONFIG_NET=y
292# 296#
293# Networking options 297# Networking options
294# 298#
299CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 300CONFIG_PACKET=y
296CONFIG_PACKET_MMAP=y 301CONFIG_PACKET_MMAP=y
297CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -501,6 +506,7 @@ CONFIG_NET_SCH_TBF=m
501CONFIG_NET_SCH_GRED=m 506CONFIG_NET_SCH_GRED=m
502CONFIG_NET_SCH_DSMARK=m 507CONFIG_NET_SCH_DSMARK=m
503CONFIG_NET_SCH_NETEM=m 508CONFIG_NET_SCH_NETEM=m
509# CONFIG_NET_SCH_DRR is not set
504 510
505# 511#
506# Classification 512# Classification
@@ -521,6 +527,7 @@ CONFIG_NET_CLS_RSVP6=m
521# CONFIG_NET_CLS_ACT is not set 527# CONFIG_NET_CLS_ACT is not set
522# CONFIG_NET_CLS_IND is not set 528# CONFIG_NET_CLS_IND is not set
523CONFIG_NET_SCH_FIFO=y 529CONFIG_NET_SCH_FIFO=y
530# CONFIG_DCB is not set
524 531
525# 532#
526# Network testing 533# Network testing
@@ -537,8 +544,9 @@ CONFIG_WIRELESS=y
537# CONFIG_CFG80211 is not set 544# CONFIG_CFG80211 is not set
538CONFIG_WIRELESS_OLD_REGULATORY=y 545CONFIG_WIRELESS_OLD_REGULATORY=y
539# CONFIG_WIRELESS_EXT is not set 546# CONFIG_WIRELESS_EXT is not set
547# CONFIG_LIB80211 is not set
540# CONFIG_MAC80211 is not set 548# CONFIG_MAC80211 is not set
541# CONFIG_IEEE80211 is not set 549# CONFIG_WIMAX is not set
542# CONFIG_RFKILL is not set 550# CONFIG_RFKILL is not set
543# CONFIG_NET_9P is not set 551# CONFIG_NET_9P is not set
544 552
@@ -561,6 +569,7 @@ CONFIG_MTD=y
561# CONFIG_MTD_DEBUG is not set 569# CONFIG_MTD_DEBUG is not set
562CONFIG_MTD_CONCAT=y 570CONFIG_MTD_CONCAT=y
563CONFIG_MTD_PARTITIONS=y 571CONFIG_MTD_PARTITIONS=y
572# CONFIG_MTD_TESTS is not set
564# CONFIG_MTD_REDBOOT_PARTS is not set 573# CONFIG_MTD_REDBOOT_PARTS is not set
565# CONFIG_MTD_CMDLINE_PARTS is not set 574# CONFIG_MTD_CMDLINE_PARTS is not set
566# CONFIG_MTD_OF_PARTS is not set 575# CONFIG_MTD_OF_PARTS is not set
@@ -637,6 +646,12 @@ CONFIG_MTD_PHYSMAP_OF=y
637# CONFIG_MTD_ONENAND is not set 646# CONFIG_MTD_ONENAND is not set
638 647
639# 648#
649# LPDDR flash memory drivers
650#
651# CONFIG_MTD_LPDDR is not set
652# CONFIG_MTD_QINFO_PROBE is not set
653
654#
640# UBI - Unsorted block images 655# UBI - Unsorted block images
641# 656#
642# CONFIG_MTD_UBI is not set 657# CONFIG_MTD_UBI is not set
@@ -666,8 +681,10 @@ CONFIG_MISC_DEVICES=y
666# CONFIG_EEPROM_93CX6 is not set 681# CONFIG_EEPROM_93CX6 is not set
667# CONFIG_SGI_IOC4 is not set 682# CONFIG_SGI_IOC4 is not set
668# CONFIG_TIFM_CORE is not set 683# CONFIG_TIFM_CORE is not set
684# CONFIG_ICS932S401 is not set
669# CONFIG_ENCLOSURE_SERVICES is not set 685# CONFIG_ENCLOSURE_SERVICES is not set
670# CONFIG_HP_ILO is not set 686# CONFIG_HP_ILO is not set
687# CONFIG_C2PORT is not set
671CONFIG_HAVE_IDE=y 688CONFIG_HAVE_IDE=y
672# CONFIG_IDE is not set 689# CONFIG_IDE is not set
673 690
@@ -734,6 +751,9 @@ CONFIG_PHYLIB=y
734CONFIG_BROADCOM_PHY=y 751CONFIG_BROADCOM_PHY=y
735# CONFIG_ICPLUS_PHY is not set 752# CONFIG_ICPLUS_PHY is not set
736# CONFIG_REALTEK_PHY is not set 753# CONFIG_REALTEK_PHY is not set
754# CONFIG_NATIONAL_PHY is not set
755# CONFIG_STE10XP is not set
756# CONFIG_LSI_ET1011C_PHY is not set
737# CONFIG_FIXED_PHY is not set 757# CONFIG_FIXED_PHY is not set
738# CONFIG_MDIO_BITBANG is not set 758# CONFIG_MDIO_BITBANG is not set
739CONFIG_NET_ETHERNET=y 759CONFIG_NET_ETHERNET=y
@@ -786,6 +806,10 @@ CONFIG_GIANFAR=y
786# CONFIG_WLAN_PRE80211 is not set 806# CONFIG_WLAN_PRE80211 is not set
787# CONFIG_WLAN_80211 is not set 807# CONFIG_WLAN_80211 is not set
788# CONFIG_IWLWIFI_LEDS is not set 808# CONFIG_IWLWIFI_LEDS is not set
809
810#
811# Enable WiMAX (Networking options) to see the WiMAX drivers
812#
789# CONFIG_WAN is not set 813# CONFIG_WAN is not set
790CONFIG_ATM_DRIVERS=y 814CONFIG_ATM_DRIVERS=y
791# CONFIG_ATM_DUMMY is not set 815# CONFIG_ATM_DUMMY is not set
@@ -801,6 +825,7 @@ CONFIG_ATM_DRIVERS=y
801# CONFIG_ATM_IA is not set 825# CONFIG_ATM_IA is not set
802# CONFIG_ATM_FORE200E is not set 826# CONFIG_ATM_FORE200E is not set
803# CONFIG_ATM_HE is not set 827# CONFIG_ATM_HE is not set
828# CONFIG_ATM_SOLOS is not set
804# CONFIG_FDDI is not set 829# CONFIG_FDDI is not set
805# CONFIG_HIPPI is not set 830# CONFIG_HIPPI is not set
806CONFIG_PPP=m 831CONFIG_PPP=m
@@ -892,8 +917,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
892# CONFIG_SERIAL_JSM is not set 917# CONFIG_SERIAL_JSM is not set
893# CONFIG_SERIAL_OF_PLATFORM is not set 918# CONFIG_SERIAL_OF_PLATFORM is not set
894CONFIG_UNIX98_PTYS=y 919CONFIG_UNIX98_PTYS=y
920# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
895CONFIG_LEGACY_PTYS=y 921CONFIG_LEGACY_PTYS=y
896CONFIG_LEGACY_PTY_COUNT=256 922CONFIG_LEGACY_PTY_COUNT=256
923# CONFIG_HVC_UDBG is not set
897# CONFIG_IPMI_HANDLER is not set 924# CONFIG_IPMI_HANDLER is not set
898CONFIG_HW_RANDOM=m 925CONFIG_HW_RANDOM=m
899# CONFIG_NVRAM is not set 926# CONFIG_NVRAM is not set
@@ -958,8 +985,8 @@ CONFIG_I2C_MPC=y
958# Miscellaneous I2C Chip support 985# Miscellaneous I2C Chip support
959# 986#
960# CONFIG_DS1682 is not set 987# CONFIG_DS1682 is not set
961# CONFIG_AT24 is not set 988# CONFIG_EEPROM_AT24 is not set
962# CONFIG_SENSORS_EEPROM is not set 989# CONFIG_EEPROM_LEGACY is not set
963# CONFIG_SENSORS_PCF8574 is not set 990# CONFIG_SENSORS_PCF8574 is not set
964# CONFIG_PCF8575 is not set 991# CONFIG_PCF8575 is not set
965# CONFIG_SENSORS_PCA9539 is not set 992# CONFIG_SENSORS_PCA9539 is not set
@@ -985,8 +1012,10 @@ CONFIG_HWMON=y
985# CONFIG_SENSORS_ADM1029 is not set 1012# CONFIG_SENSORS_ADM1029 is not set
986# CONFIG_SENSORS_ADM1031 is not set 1013# CONFIG_SENSORS_ADM1031 is not set
987# CONFIG_SENSORS_ADM9240 is not set 1014# CONFIG_SENSORS_ADM9240 is not set
1015# CONFIG_SENSORS_ADT7462 is not set
988# CONFIG_SENSORS_ADT7470 is not set 1016# CONFIG_SENSORS_ADT7470 is not set
989# CONFIG_SENSORS_ADT7473 is not set 1017# CONFIG_SENSORS_ADT7473 is not set
1018# CONFIG_SENSORS_ADT7475 is not set
990# CONFIG_SENSORS_ATXP1 is not set 1019# CONFIG_SENSORS_ATXP1 is not set
991# CONFIG_SENSORS_DS1621 is not set 1020# CONFIG_SENSORS_DS1621 is not set
992# CONFIG_SENSORS_I5K_AMB is not set 1021# CONFIG_SENSORS_I5K_AMB is not set
@@ -1007,6 +1036,7 @@ CONFIG_HWMON=y
1007# CONFIG_SENSORS_LM90 is not set 1036# CONFIG_SENSORS_LM90 is not set
1008# CONFIG_SENSORS_LM92 is not set 1037# CONFIG_SENSORS_LM92 is not set
1009# CONFIG_SENSORS_LM93 is not set 1038# CONFIG_SENSORS_LM93 is not set
1039# CONFIG_SENSORS_LTC4245 is not set
1010# CONFIG_SENSORS_MAX1619 is not set 1040# CONFIG_SENSORS_MAX1619 is not set
1011# CONFIG_SENSORS_MAX6650 is not set 1041# CONFIG_SENSORS_MAX6650 is not set
1012# CONFIG_SENSORS_PC87360 is not set 1042# CONFIG_SENSORS_PC87360 is not set
@@ -1047,11 +1077,11 @@ CONFIG_SOFT_WATCHDOG=m
1047# 1077#
1048# CONFIG_PCIPCWATCHDOG is not set 1078# CONFIG_PCIPCWATCHDOG is not set
1049# CONFIG_WDTPCI is not set 1079# CONFIG_WDTPCI is not set
1080CONFIG_SSB_POSSIBLE=y
1050 1081
1051# 1082#
1052# Sonics Silicon Backplane 1083# Sonics Silicon Backplane
1053# 1084#
1054CONFIG_SSB_POSSIBLE=y
1055# CONFIG_SSB is not set 1085# CONFIG_SSB is not set
1056 1086
1057# 1087#
@@ -1060,18 +1090,13 @@ CONFIG_SSB_POSSIBLE=y
1060# CONFIG_MFD_CORE is not set 1090# CONFIG_MFD_CORE is not set
1061# CONFIG_MFD_SM501 is not set 1091# CONFIG_MFD_SM501 is not set
1062# CONFIG_HTC_PASIC3 is not set 1092# CONFIG_HTC_PASIC3 is not set
1093# CONFIG_TWL4030_CORE is not set
1063# CONFIG_MFD_TMIO is not set 1094# CONFIG_MFD_TMIO is not set
1064# CONFIG_PMIC_DA903X is not set 1095# CONFIG_PMIC_DA903X is not set
1065# CONFIG_MFD_WM8400 is not set 1096# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM8350_I2C is not set 1097# CONFIG_MFD_WM8350_I2C is not set
1067 1098# CONFIG_MFD_PCF50633 is not set
1068#
1069# Voltage and Current regulators
1070#
1071# CONFIG_REGULATOR is not set 1099# CONFIG_REGULATOR is not set
1072# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1073# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1074# CONFIG_REGULATOR_BQ24022 is not set
1075 1100
1076# 1101#
1077# Multimedia devices 1102# Multimedia devices
@@ -1134,9 +1159,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1134# 1159#
1135 1160
1136# 1161#
1137# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1162# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1138# 1163#
1139# CONFIG_USB_GADGET is not set 1164# CONFIG_USB_GADGET is not set
1165
1166#
1167# OTG and related infrastructure
1168#
1140# CONFIG_UWB is not set 1169# CONFIG_UWB is not set
1141# CONFIG_MMC is not set 1170# CONFIG_MMC is not set
1142# CONFIG_MEMSTICK is not set 1171# CONFIG_MEMSTICK is not set
@@ -1182,11 +1211,18 @@ CONFIG_OCFS2_FS_O2CB=m
1182CONFIG_OCFS2_FS_STATS=y 1211CONFIG_OCFS2_FS_STATS=y
1183CONFIG_OCFS2_DEBUG_MASKLOG=y 1212CONFIG_OCFS2_DEBUG_MASKLOG=y
1184# CONFIG_OCFS2_DEBUG_FS is not set 1213# CONFIG_OCFS2_DEBUG_FS is not set
1185# CONFIG_OCFS2_COMPAT_JBD is not set 1214# CONFIG_OCFS2_FS_POSIX_ACL is not set
1215# CONFIG_BTRFS_FS is not set
1186CONFIG_DNOTIFY=y 1216CONFIG_DNOTIFY=y
1187CONFIG_INOTIFY=y 1217CONFIG_INOTIFY=y
1188CONFIG_INOTIFY_USER=y 1218CONFIG_INOTIFY_USER=y
1189# CONFIG_QUOTA is not set 1219CONFIG_QUOTA=y
1220# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1221CONFIG_PRINT_QUOTA_WARNING=y
1222CONFIG_QUOTA_TREE=m
1223# CONFIG_QFMT_V1 is not set
1224# CONFIG_QFMT_V2 is not set
1225CONFIG_QUOTACTL=y
1190CONFIG_AUTOFS_FS=m 1226CONFIG_AUTOFS_FS=m
1191CONFIG_AUTOFS4_FS=m 1227CONFIG_AUTOFS4_FS=m
1192# CONFIG_FUSE_FS is not set 1228# CONFIG_FUSE_FS is not set
@@ -1216,10 +1252,7 @@ CONFIG_TMPFS=y
1216# CONFIG_TMPFS_POSIX_ACL is not set 1252# CONFIG_TMPFS_POSIX_ACL is not set
1217# CONFIG_HUGETLB_PAGE is not set 1253# CONFIG_HUGETLB_PAGE is not set
1218CONFIG_CONFIGFS_FS=m 1254CONFIG_CONFIGFS_FS=m
1219 1255CONFIG_MISC_FILESYSTEMS=y
1220#
1221# Miscellaneous filesystems
1222#
1223# CONFIG_ADFS_FS is not set 1256# CONFIG_ADFS_FS is not set
1224# CONFIG_AFFS_FS is not set 1257# CONFIG_AFFS_FS is not set
1225# CONFIG_HFS_FS is not set 1258# CONFIG_HFS_FS is not set
@@ -1229,6 +1262,7 @@ CONFIG_CONFIGFS_FS=m
1229# CONFIG_EFS_FS is not set 1262# CONFIG_EFS_FS is not set
1230# CONFIG_JFFS2_FS is not set 1263# CONFIG_JFFS2_FS is not set
1231# CONFIG_CRAMFS is not set 1264# CONFIG_CRAMFS is not set
1265# CONFIG_SQUASHFS is not set
1232# CONFIG_VXFS_FS is not set 1266# CONFIG_VXFS_FS is not set
1233CONFIG_MINIX_FS=m 1267CONFIG_MINIX_FS=m
1234# CONFIG_OMFS_FS is not set 1268# CONFIG_OMFS_FS is not set
@@ -1317,6 +1351,7 @@ CONFIG_NLS_UTF8=m
1317# Library routines 1351# Library routines
1318# 1352#
1319CONFIG_BITREVERSE=y 1353CONFIG_BITREVERSE=y
1354CONFIG_GENERIC_FIND_LAST_BIT=y
1320CONFIG_CRC_CCITT=m 1355CONFIG_CRC_CCITT=m
1321# CONFIG_CRC16 is not set 1356# CONFIG_CRC16 is not set
1322# CONFIG_CRC_T10DIF is not set 1357# CONFIG_CRC_T10DIF is not set
@@ -1367,6 +1402,7 @@ CONFIG_DEBUG_INFO=y
1367# CONFIG_DEBUG_MEMORY_INIT is not set 1402# CONFIG_DEBUG_MEMORY_INIT is not set
1368# CONFIG_DEBUG_LIST is not set 1403# CONFIG_DEBUG_LIST is not set
1369# CONFIG_DEBUG_SG is not set 1404# CONFIG_DEBUG_SG is not set
1405# CONFIG_DEBUG_NOTIFIERS is not set
1370# CONFIG_BOOT_PRINTK_DELAY is not set 1406# CONFIG_BOOT_PRINTK_DELAY is not set
1371# CONFIG_RCU_TORTURE_TEST is not set 1407# CONFIG_RCU_TORTURE_TEST is not set
1372# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1408# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1376,6 +1412,8 @@ CONFIG_DEBUG_INFO=y
1376# CONFIG_LATENCYTOP is not set 1412# CONFIG_LATENCYTOP is not set
1377CONFIG_SYSCTL_SYSCALL_CHECK=y 1413CONFIG_SYSCTL_SYSCALL_CHECK=y
1378CONFIG_HAVE_FUNCTION_TRACER=y 1414CONFIG_HAVE_FUNCTION_TRACER=y
1415CONFIG_HAVE_DYNAMIC_FTRACE=y
1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1379 1417
1380# 1418#
1381# Tracers 1419# Tracers
@@ -1385,11 +1423,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1385# CONFIG_SCHED_TRACER is not set 1423# CONFIG_SCHED_TRACER is not set
1386# CONFIG_CONTEXT_SWITCH_TRACER is not set 1424# CONFIG_CONTEXT_SWITCH_TRACER is not set
1387# CONFIG_BOOT_TRACER is not set 1425# CONFIG_BOOT_TRACER is not set
1426# CONFIG_TRACE_BRANCH_PROFILING is not set
1388# CONFIG_STACK_TRACER is not set 1427# CONFIG_STACK_TRACER is not set
1389# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1428# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1390# CONFIG_SAMPLES is not set 1429# CONFIG_SAMPLES is not set
1391CONFIG_HAVE_ARCH_KGDB=y 1430CONFIG_HAVE_ARCH_KGDB=y
1392# CONFIG_KGDB is not set 1431# CONFIG_KGDB is not set
1432CONFIG_PRINT_STACK_DEPTH=64
1393# CONFIG_DEBUG_STACKOVERFLOW is not set 1433# CONFIG_DEBUG_STACKOVERFLOW is not set
1394# CONFIG_DEBUG_STACK_USAGE is not set 1434# CONFIG_DEBUG_STACK_USAGE is not set
1395# CONFIG_DEBUG_PAGEALLOC is not set 1435# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1411,6 +1451,7 @@ CONFIG_SECURITY=y
1411# CONFIG_SECURITYFS is not set 1451# CONFIG_SECURITYFS is not set
1412CONFIG_SECURITY_NETWORK=y 1452CONFIG_SECURITY_NETWORK=y
1413# CONFIG_SECURITY_NETWORK_XFRM is not set 1453# CONFIG_SECURITY_NETWORK_XFRM is not set
1454# CONFIG_SECURITY_PATH is not set
1414# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1455# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1415CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1456CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1416CONFIG_CRYPTO=y 1457CONFIG_CRYPTO=y
@@ -1420,11 +1461,16 @@ CONFIG_CRYPTO=y
1420# 1461#
1421# CONFIG_CRYPTO_FIPS is not set 1462# CONFIG_CRYPTO_FIPS is not set
1422CONFIG_CRYPTO_ALGAPI=y 1463CONFIG_CRYPTO_ALGAPI=y
1423CONFIG_CRYPTO_AEAD=y 1464CONFIG_CRYPTO_ALGAPI2=y
1465CONFIG_CRYPTO_AEAD=m
1466CONFIG_CRYPTO_AEAD2=y
1424CONFIG_CRYPTO_BLKCIPHER=y 1467CONFIG_CRYPTO_BLKCIPHER=y
1468CONFIG_CRYPTO_BLKCIPHER2=y
1425CONFIG_CRYPTO_HASH=y 1469CONFIG_CRYPTO_HASH=y
1426CONFIG_CRYPTO_RNG=y 1470CONFIG_CRYPTO_HASH2=y
1471CONFIG_CRYPTO_RNG2=y
1427CONFIG_CRYPTO_MANAGER=y 1472CONFIG_CRYPTO_MANAGER=y
1473CONFIG_CRYPTO_MANAGER2=y
1428# CONFIG_CRYPTO_GF128MUL is not set 1474# CONFIG_CRYPTO_GF128MUL is not set
1429CONFIG_CRYPTO_NULL=m 1475CONFIG_CRYPTO_NULL=m
1430# CONFIG_CRYPTO_CRYPTD is not set 1476# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index 024f279af90a..aaab5cc3751c 100644
--- a/arch/powerpc/configs/adder875_defconfig
+++ b/arch/powerpc/configs/adder875_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:32 2008 4# Mon Jan 26 15:35:24 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -71,12 +72,12 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y 75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77# CONFIG_RT_GROUP_SCHED is not set 77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set 79# CONFIG_CGROUP_SCHED is not set
80# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y 82CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
@@ -109,7 +110,6 @@ CONFIG_SLUB_DEBUG=y
109CONFIG_SLUB=y 110CONFIG_SLUB=y
110# CONFIG_SLOB is not set 111# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y 115CONFIG_HAVE_IOREMAP_PROT=y
@@ -119,13 +119,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_CLK=y 119CONFIG_HAVE_CLK=y
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
122# CONFIG_TINY_SHMEM is not set
123CONFIG_BASE_SMALL=1 122CONFIG_BASE_SMALL=1
124# CONFIG_MODULES is not set 123# CONFIG_MODULES is not set
125CONFIG_BLOCK=y 124CONFIG_BLOCK=y
126# CONFIG_LBD is not set 125# CONFIG_LBD is not set
127# CONFIG_BLK_DEV_IO_TRACE is not set 126# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_LSF is not set
129# CONFIG_BLK_DEV_BSG is not set 127# CONFIG_BLK_DEV_BSG is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set 128# CONFIG_BLK_DEV_INTEGRITY is not set
131 129
@@ -142,6 +140,10 @@ CONFIG_DEFAULT_DEADLINE=y
142# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="deadline" 141CONFIG_DEFAULT_IOSCHED="deadline"
144CONFIG_CLASSIC_RCU=y 142CONFIG_CLASSIC_RCU=y
143# CONFIG_TREE_RCU is not set
144# CONFIG_PREEMPT_RCU is not set
145# CONFIG_TREE_RCU_TRACE is not set
146# CONFIG_PREEMPT_RCU_TRACE is not set
145# CONFIG_FREEZER is not set 147# CONFIG_FREEZER is not set
146 148
147# 149#
@@ -187,6 +189,7 @@ CONFIG_NO_UCODE_PATCH=y
187# CONFIG_QUICC_ENGINE is not set 189# CONFIG_QUICC_ENGINE is not set
188# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
189CONFIG_CPM=y 191CONFIG_CPM=y
192# CONFIG_SIMPLE_GPIO is not set
190 193
191# 194#
192# Kernel options 195# Kernel options
@@ -205,12 +208,12 @@ CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
207CONFIG_BINFMT_ELF=y 210CONFIG_BINFMT_ELF=y
208# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
209# CONFIG_HAVE_AOUT is not set 211# CONFIG_HAVE_AOUT is not set
210# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
211# CONFIG_MATH_EMULATION is not set 213# CONFIG_MATH_EMULATION is not set
212# CONFIG_8XX_MINIMAL_FPEMU is not set 214# CONFIG_8XX_MINIMAL_FPEMU is not set
213# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
216CONFIG_PPC_NEED_DMA_SYNC_OPS=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
215CONFIG_ARCH_HAS_WALK_MEMORY=y 218CONFIG_ARCH_HAS_WALK_MEMORY=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -225,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
234CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
235# CONFIG_PROC_DEVICETREE is not set 240# CONFIG_PROC_DEVICETREE is not set
236# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +277,7 @@ CONFIG_NET=y
272# 277#
273# Networking options 278# Networking options
274# 279#
280CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 281CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 282# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 283CONFIG_UNIX=y
@@ -323,6 +329,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
323# CONFIG_ECONET is not set 329# CONFIG_ECONET is not set
324# CONFIG_WAN_ROUTER is not set 330# CONFIG_WAN_ROUTER is not set
325# CONFIG_NET_SCHED is not set 331# CONFIG_NET_SCHED is not set
332# CONFIG_DCB is not set
326 333
327# 334#
328# Network testing 335# Network testing
@@ -338,8 +345,9 @@ CONFIG_WIRELESS=y
338# CONFIG_CFG80211 is not set 345# CONFIG_CFG80211 is not set
339CONFIG_WIRELESS_OLD_REGULATORY=y 346CONFIG_WIRELESS_OLD_REGULATORY=y
340# CONFIG_WIRELESS_EXT is not set 347# CONFIG_WIRELESS_EXT is not set
348# CONFIG_LIB80211 is not set
341# CONFIG_MAC80211 is not set 349# CONFIG_MAC80211 is not set
342# CONFIG_IEEE80211 is not set 350# CONFIG_WIMAX is not set
343# CONFIG_RFKILL is not set 351# CONFIG_RFKILL is not set
344# CONFIG_NET_9P is not set 352# CONFIG_NET_9P is not set
345 353
@@ -428,6 +436,12 @@ CONFIG_MTD_PHYSMAP_OF=y
428# CONFIG_MTD_ONENAND is not set 436# CONFIG_MTD_ONENAND is not set
429 437
430# 438#
439# LPDDR flash memory drivers
440#
441# CONFIG_MTD_LPDDR is not set
442# CONFIG_MTD_QINFO_PROBE is not set
443
444#
431# UBI - Unsorted block images 445# UBI - Unsorted block images
432# 446#
433# CONFIG_MTD_UBI is not set 447# CONFIG_MTD_UBI is not set
@@ -470,6 +484,9 @@ CONFIG_DAVICOM_PHY=y
470# CONFIG_BROADCOM_PHY is not set 484# CONFIG_BROADCOM_PHY is not set
471# CONFIG_ICPLUS_PHY is not set 485# CONFIG_ICPLUS_PHY is not set
472# CONFIG_REALTEK_PHY is not set 486# CONFIG_REALTEK_PHY is not set
487# CONFIG_NATIONAL_PHY is not set
488# CONFIG_STE10XP is not set
489# CONFIG_LSI_ET1011C_PHY is not set
473# CONFIG_FIXED_PHY is not set 490# CONFIG_FIXED_PHY is not set
474# CONFIG_MDIO_BITBANG is not set 491# CONFIG_MDIO_BITBANG is not set
475CONFIG_NET_ETHERNET=y 492CONFIG_NET_ETHERNET=y
@@ -495,6 +512,10 @@ CONFIG_FS_ENET_MDIO_FEC=y
495# CONFIG_WLAN_PRE80211 is not set 512# CONFIG_WLAN_PRE80211 is not set
496# CONFIG_WLAN_80211 is not set 513# CONFIG_WLAN_80211 is not set
497# CONFIG_IWLWIFI_LEDS is not set 514# CONFIG_IWLWIFI_LEDS is not set
515
516#
517# Enable WiMAX (Networking options) to see the WiMAX drivers
518#
498# CONFIG_WAN is not set 519# CONFIG_WAN is not set
499# CONFIG_PPP is not set 520# CONFIG_PPP is not set
500# CONFIG_SLIP is not set 521# CONFIG_SLIP is not set
@@ -580,7 +601,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
580CONFIG_SERIAL_CPM=y 601CONFIG_SERIAL_CPM=y
581CONFIG_SERIAL_CPM_CONSOLE=y 602CONFIG_SERIAL_CPM_CONSOLE=y
582CONFIG_UNIX98_PTYS=y 603CONFIG_UNIX98_PTYS=y
604# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
583# CONFIG_LEGACY_PTYS is not set 605# CONFIG_LEGACY_PTYS is not set
606# CONFIG_HVC_UDBG is not set
584# CONFIG_IPMI_HANDLER is not set 607# CONFIG_IPMI_HANDLER is not set
585CONFIG_HW_RANDOM=y 608CONFIG_HW_RANDOM=y
586# CONFIG_NVRAM is not set 609# CONFIG_NVRAM is not set
@@ -598,11 +621,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
598# CONFIG_HWMON is not set 621# CONFIG_HWMON is not set
599CONFIG_THERMAL=y 622CONFIG_THERMAL=y
600# CONFIG_WATCHDOG is not set 623# CONFIG_WATCHDOG is not set
624CONFIG_SSB_POSSIBLE=y
601 625
602# 626#
603# Sonics Silicon Backplane 627# Sonics Silicon Backplane
604# 628#
605CONFIG_SSB_POSSIBLE=y
606# CONFIG_SSB is not set 629# CONFIG_SSB is not set
607 630
608# 631#
@@ -612,14 +635,7 @@ CONFIG_SSB_POSSIBLE=y
612# CONFIG_MFD_SM501 is not set 635# CONFIG_MFD_SM501 is not set
613# CONFIG_HTC_PASIC3 is not set 636# CONFIG_HTC_PASIC3 is not set
614# CONFIG_MFD_TMIO is not set 637# CONFIG_MFD_TMIO is not set
615
616#
617# Voltage and Current regulators
618#
619# CONFIG_REGULATOR is not set 638# CONFIG_REGULATOR is not set
620# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
621# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
622# CONFIG_REGULATOR_BQ24022 is not set
623 639
624# 640#
625# Multimedia devices 641# Multimedia devices
@@ -674,6 +690,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
674CONFIG_FILE_LOCKING=y 690CONFIG_FILE_LOCKING=y
675# CONFIG_XFS_FS is not set 691# CONFIG_XFS_FS is not set
676# CONFIG_OCFS2_FS is not set 692# CONFIG_OCFS2_FS is not set
693# CONFIG_BTRFS_FS is not set
677# CONFIG_DNOTIFY is not set 694# CONFIG_DNOTIFY is not set
678# CONFIG_INOTIFY is not set 695# CONFIG_INOTIFY is not set
679# CONFIG_QUOTA is not set 696# CONFIG_QUOTA is not set
@@ -706,10 +723,7 @@ CONFIG_TMPFS=y
706# CONFIG_TMPFS_POSIX_ACL is not set 723# CONFIG_TMPFS_POSIX_ACL is not set
707# CONFIG_HUGETLB_PAGE is not set 724# CONFIG_HUGETLB_PAGE is not set
708# CONFIG_CONFIGFS_FS is not set 725# CONFIG_CONFIGFS_FS is not set
709 726CONFIG_MISC_FILESYSTEMS=y
710#
711# Miscellaneous filesystems
712#
713# CONFIG_ADFS_FS is not set 727# CONFIG_ADFS_FS is not set
714# CONFIG_AFFS_FS is not set 728# CONFIG_AFFS_FS is not set
715# CONFIG_HFS_FS is not set 729# CONFIG_HFS_FS is not set
@@ -719,6 +733,7 @@ CONFIG_TMPFS=y
719# CONFIG_EFS_FS is not set 733# CONFIG_EFS_FS is not set
720# CONFIG_JFFS2_FS is not set 734# CONFIG_JFFS2_FS is not set
721CONFIG_CRAMFS=y 735CONFIG_CRAMFS=y
736# CONFIG_SQUASHFS is not set
722# CONFIG_VXFS_FS is not set 737# CONFIG_VXFS_FS is not set
723# CONFIG_MINIX_FS is not set 738# CONFIG_MINIX_FS is not set
724# CONFIG_OMFS_FS is not set 739# CONFIG_OMFS_FS is not set
@@ -774,6 +789,7 @@ CONFIG_MSDOS_PARTITION=y
774# 789#
775# Library routines 790# Library routines
776# 791#
792CONFIG_GENERIC_FIND_LAST_BIT=y
777# CONFIG_CRC_CCITT is not set 793# CONFIG_CRC_CCITT is not set
778# CONFIG_CRC16 is not set 794# CONFIG_CRC16 is not set
779# CONFIG_CRC_T10DIF is not set 795# CONFIG_CRC_T10DIF is not set
@@ -821,6 +837,7 @@ CONFIG_DEBUG_INFO=y
821# CONFIG_DEBUG_MEMORY_INIT is not set 837# CONFIG_DEBUG_MEMORY_INIT is not set
822# CONFIG_DEBUG_LIST is not set 838# CONFIG_DEBUG_LIST is not set
823# CONFIG_DEBUG_SG is not set 839# CONFIG_DEBUG_SG is not set
840# CONFIG_DEBUG_NOTIFIERS is not set
824# CONFIG_BOOT_PRINTK_DELAY is not set 841# CONFIG_BOOT_PRINTK_DELAY is not set
825# CONFIG_RCU_TORTURE_TEST is not set 842# CONFIG_RCU_TORTURE_TEST is not set
826# CONFIG_RCU_CPU_STALL_DETECTOR is not set 843# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -829,6 +846,8 @@ CONFIG_DEBUG_INFO=y
829# CONFIG_FAULT_INJECTION is not set 846# CONFIG_FAULT_INJECTION is not set
830# CONFIG_LATENCYTOP is not set 847# CONFIG_LATENCYTOP is not set
831CONFIG_HAVE_FUNCTION_TRACER=y 848CONFIG_HAVE_FUNCTION_TRACER=y
849CONFIG_HAVE_DYNAMIC_FTRACE=y
850CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
832 851
833# 852#
834# Tracers 853# Tracers
@@ -837,11 +856,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
837# CONFIG_SCHED_TRACER is not set 856# CONFIG_SCHED_TRACER is not set
838# CONFIG_CONTEXT_SWITCH_TRACER is not set 857# CONFIG_CONTEXT_SWITCH_TRACER is not set
839# CONFIG_BOOT_TRACER is not set 858# CONFIG_BOOT_TRACER is not set
859# CONFIG_TRACE_BRANCH_PROFILING is not set
840# CONFIG_STACK_TRACER is not set 860# CONFIG_STACK_TRACER is not set
841# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 861# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
842# CONFIG_SAMPLES is not set 862# CONFIG_SAMPLES is not set
843CONFIG_HAVE_ARCH_KGDB=y 863CONFIG_HAVE_ARCH_KGDB=y
844# CONFIG_KGDB is not set 864# CONFIG_KGDB is not set
865CONFIG_PRINT_STACK_DEPTH=64
845# CONFIG_DEBUG_STACKOVERFLOW is not set 866# CONFIG_DEBUG_STACKOVERFLOW is not set
846# CONFIG_DEBUG_STACK_USAGE is not set 867# CONFIG_DEBUG_STACK_USAGE is not set
847# CONFIG_DEBUG_PAGEALLOC is not set 868# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 5078594cd1f5..5103319a7f56 100644
--- a/arch/powerpc/configs/c2k_defconfig
+++ b/arch/powerpc/configs/c2k_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:34 2008 4# Mon Jan 26 15:35:26 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -78,12 +78,12 @@ CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 78CONFIG_AUDIT_TREE=y
79# CONFIG_IKCONFIG is not set 79# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=17 80CONFIG_LOG_BUF_SHIFT=17
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 81CONFIG_GROUP_SCHED=y
83CONFIG_FAIR_GROUP_SCHED=y 82CONFIG_FAIR_GROUP_SCHED=y
84# CONFIG_RT_GROUP_SCHED is not set 83# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 84CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 85# CONFIG_CGROUP_SCHED is not set
86# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 87CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 88CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
@@ -122,6 +122,7 @@ CONFIG_SLUB_DEBUG=y
122CONFIG_SLUB=y 122CONFIG_SLUB=y
123# CONFIG_SLOB is not set 123# CONFIG_SLOB is not set
124CONFIG_PROFILING=y 124CONFIG_PROFILING=y
125CONFIG_TRACEPOINTS=y
125# CONFIG_MARKERS is not set 126# CONFIG_MARKERS is not set
126CONFIG_OPROFILE=m 127CONFIG_OPROFILE=m
127CONFIG_HAVE_OPROFILE=y 128CONFIG_HAVE_OPROFILE=y
@@ -135,7 +136,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
135# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 136# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
136CONFIG_SLABINFO=y 137CONFIG_SLABINFO=y
137CONFIG_RT_MUTEXES=y 138CONFIG_RT_MUTEXES=y
138# CONFIG_TINY_SHMEM is not set
139CONFIG_BASE_SMALL=0 139CONFIG_BASE_SMALL=0
140CONFIG_MODULES=y 140CONFIG_MODULES=y
141# CONFIG_MODULE_FORCE_LOAD is not set 141# CONFIG_MODULE_FORCE_LOAD is not set
@@ -143,11 +143,9 @@ CONFIG_MODULE_UNLOAD=y
143# CONFIG_MODULE_FORCE_UNLOAD is not set 143# CONFIG_MODULE_FORCE_UNLOAD is not set
144CONFIG_MODVERSIONS=y 144CONFIG_MODVERSIONS=y
145# CONFIG_MODULE_SRCVERSION_ALL is not set 145# CONFIG_MODULE_SRCVERSION_ALL is not set
146CONFIG_KMOD=y
147CONFIG_BLOCK=y 146CONFIG_BLOCK=y
148CONFIG_LBD=y 147CONFIG_LBD=y
149# CONFIG_BLK_DEV_IO_TRACE is not set 148# CONFIG_BLK_DEV_IO_TRACE is not set
150# CONFIG_LSF is not set
151# CONFIG_BLK_DEV_BSG is not set 149# CONFIG_BLK_DEV_BSG is not set
152# CONFIG_BLK_DEV_INTEGRITY is not set 150# CONFIG_BLK_DEV_INTEGRITY is not set
153 151
@@ -164,6 +162,10 @@ CONFIG_DEFAULT_CFQ=y
164# CONFIG_DEFAULT_NOOP is not set 162# CONFIG_DEFAULT_NOOP is not set
165CONFIG_DEFAULT_IOSCHED="cfq" 163CONFIG_DEFAULT_IOSCHED="cfq"
166CONFIG_CLASSIC_RCU=y 164CONFIG_CLASSIC_RCU=y
165# CONFIG_TREE_RCU is not set
166# CONFIG_PREEMPT_RCU is not set
167# CONFIG_TREE_RCU_TRACE is not set
168# CONFIG_PREEMPT_RCU_TRACE is not set
167# CONFIG_FREEZER is not set 169# CONFIG_FREEZER is not set
168 170
169# 171#
@@ -221,6 +223,7 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m
221# 223#
222# CONFIG_TAU is not set 224# CONFIG_TAU is not set
223# CONFIG_FSL_ULI1575 is not set 225# CONFIG_FSL_ULI1575 is not set
226# CONFIG_SIMPLE_GPIO is not set
224 227
225# 228#
226# Kernel options 229# Kernel options
@@ -243,10 +246,12 @@ CONFIG_BINFMT_ELF=y
243# CONFIG_HAVE_AOUT is not set 246# CONFIG_HAVE_AOUT is not set
244CONFIG_BINFMT_MISC=y 247CONFIG_BINFMT_MISC=y
245# CONFIG_IOMMU_HELPER is not set 248# CONFIG_IOMMU_HELPER is not set
249CONFIG_PPC_NEED_DMA_SYNC_OPS=y
246CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 250CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
247CONFIG_ARCH_HAS_WALK_MEMORY=y 251CONFIG_ARCH_HAS_WALK_MEMORY=y
248CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 252CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
249# CONFIG_KEXEC is not set 253# CONFIG_KEXEC is not set
254# CONFIG_CRASH_DUMP is not set
250CONFIG_ARCH_FLATMEM_ENABLE=y 255CONFIG_ARCH_FLATMEM_ENABLE=y
251CONFIG_ARCH_POPULATES_NODE_MAP=y 256CONFIG_ARCH_POPULATES_NODE_MAP=y
252CONFIG_SELECT_MEMORY_MODEL=y 257CONFIG_SELECT_MEMORY_MODEL=y
@@ -258,12 +263,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
258CONFIG_PAGEFLAGS_EXTENDED=y 263CONFIG_PAGEFLAGS_EXTENDED=y
259CONFIG_SPLIT_PTLOCK_CPUS=4 264CONFIG_SPLIT_PTLOCK_CPUS=4
260CONFIG_MIGRATION=y 265CONFIG_MIGRATION=y
261# CONFIG_RESOURCES_64BIT is not set
262# CONFIG_PHYS_ADDR_T_64BIT is not set 266# CONFIG_PHYS_ADDR_T_64BIT is not set
263CONFIG_ZONE_DMA_FLAG=1 267CONFIG_ZONE_DMA_FLAG=1
264CONFIG_BOUNCE=y 268CONFIG_BOUNCE=y
265CONFIG_VIRT_TO_BUS=y 269CONFIG_VIRT_TO_BUS=y
266CONFIG_UNEVICTABLE_LRU=y 270CONFIG_UNEVICTABLE_LRU=y
271CONFIG_PPC_4K_PAGES=y
272# CONFIG_PPC_16K_PAGES is not set
273# CONFIG_PPC_64K_PAGES is not set
267CONFIG_FORCE_MAX_ZONEORDER=11 274CONFIG_FORCE_MAX_ZONEORDER=11
268# CONFIG_PROC_DEVICETREE is not set 275# CONFIG_PROC_DEVICETREE is not set
269# CONFIG_CMDLINE_BOOL is not set 276# CONFIG_CMDLINE_BOOL is not set
@@ -287,6 +294,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
287CONFIG_PCI_MSI=y 294CONFIG_PCI_MSI=y
288# CONFIG_PCI_LEGACY is not set 295# CONFIG_PCI_LEGACY is not set
289# CONFIG_PCI_DEBUG is not set 296# CONFIG_PCI_DEBUG is not set
297# CONFIG_PCI_STUB is not set
290# CONFIG_PCCARD is not set 298# CONFIG_PCCARD is not set
291CONFIG_HOTPLUG_PCI=y 299CONFIG_HOTPLUG_PCI=y
292# CONFIG_HOTPLUG_PCI_FAKE is not set 300# CONFIG_HOTPLUG_PCI_FAKE is not set
@@ -314,6 +322,8 @@ CONFIG_NET=y
314# 322#
315# Networking options 323# Networking options
316# 324#
325# CONFIG_NET_NS is not set
326CONFIG_COMPAT_NET_DEV_OPS=y
317CONFIG_PACKET=y 327CONFIG_PACKET=y
318CONFIG_PACKET_MMAP=y 328CONFIG_PACKET_MMAP=y
319CONFIG_UNIX=y 329CONFIG_UNIX=y
@@ -574,6 +584,7 @@ CONFIG_NET_SCH_TBF=m
574CONFIG_NET_SCH_GRED=m 584CONFIG_NET_SCH_GRED=m
575CONFIG_NET_SCH_DSMARK=m 585CONFIG_NET_SCH_DSMARK=m
576CONFIG_NET_SCH_NETEM=m 586CONFIG_NET_SCH_NETEM=m
587# CONFIG_NET_SCH_DRR is not set
577 588
578# 589#
579# Classification 590# Classification
@@ -594,6 +605,7 @@ CONFIG_NET_CLS_RSVP6=m
594# CONFIG_NET_CLS_ACT is not set 605# CONFIG_NET_CLS_ACT is not set
595CONFIG_NET_CLS_IND=y 606CONFIG_NET_CLS_IND=y
596CONFIG_NET_SCH_FIFO=y 607CONFIG_NET_SCH_FIFO=y
608# CONFIG_DCB is not set
597 609
598# 610#
599# Network testing 611# Network testing
@@ -616,8 +628,6 @@ CONFIG_BT_HIDP=m
616# 628#
617# Bluetooth device drivers 629# Bluetooth device drivers
618# 630#
619CONFIG_BT_HCIUSB=m
620CONFIG_BT_HCIUSB_SCO=y
621# CONFIG_BT_HCIBTUSB is not set 631# CONFIG_BT_HCIBTUSB is not set
622CONFIG_BT_HCIUART=m 632CONFIG_BT_HCIUART=m
623CONFIG_BT_HCIUART_H4=y 633CONFIG_BT_HCIUART_H4=y
@@ -635,12 +645,9 @@ CONFIG_WIRELESS=y
635CONFIG_WIRELESS_OLD_REGULATORY=y 645CONFIG_WIRELESS_OLD_REGULATORY=y
636CONFIG_WIRELESS_EXT=y 646CONFIG_WIRELESS_EXT=y
637CONFIG_WIRELESS_EXT_SYSFS=y 647CONFIG_WIRELESS_EXT_SYSFS=y
648# CONFIG_LIB80211 is not set
638# CONFIG_MAC80211 is not set 649# CONFIG_MAC80211 is not set
639CONFIG_IEEE80211=m 650# CONFIG_WIMAX is not set
640# CONFIG_IEEE80211_DEBUG is not set
641CONFIG_IEEE80211_CRYPT_WEP=m
642CONFIG_IEEE80211_CRYPT_CCMP=m
643CONFIG_IEEE80211_CRYPT_TKIP=m
644# CONFIG_RFKILL is not set 651# CONFIG_RFKILL is not set
645# CONFIG_NET_9P is not set 652# CONFIG_NET_9P is not set
646 653
@@ -665,6 +672,7 @@ CONFIG_MTD=y
665# CONFIG_MTD_DEBUG is not set 672# CONFIG_MTD_DEBUG is not set
666CONFIG_MTD_CONCAT=m 673CONFIG_MTD_CONCAT=m
667CONFIG_MTD_PARTITIONS=y 674CONFIG_MTD_PARTITIONS=y
675# CONFIG_MTD_TESTS is not set
668# CONFIG_MTD_REDBOOT_PARTS is not set 676# CONFIG_MTD_REDBOOT_PARTS is not set
669# CONFIG_MTD_CMDLINE_PARTS is not set 677# CONFIG_MTD_CMDLINE_PARTS is not set
670CONFIG_MTD_OF_PARTS=y 678CONFIG_MTD_OF_PARTS=y
@@ -737,6 +745,12 @@ CONFIG_MTD_PHYSMAP_OF=y
737# CONFIG_MTD_ONENAND is not set 745# CONFIG_MTD_ONENAND is not set
738 746
739# 747#
748# LPDDR flash memory drivers
749#
750# CONFIG_MTD_LPDDR is not set
751# CONFIG_MTD_QINFO_PROBE is not set
752
753#
740# UBI - Unsorted block images 754# UBI - Unsorted block images
741# 755#
742# CONFIG_MTD_UBI is not set 756# CONFIG_MTD_UBI is not set
@@ -834,6 +848,8 @@ CONFIG_MEGARAID_MAILBOX=m
834CONFIG_MEGARAID_SAS=m 848CONFIG_MEGARAID_SAS=m
835# CONFIG_SCSI_HPTIOP is not set 849# CONFIG_SCSI_HPTIOP is not set
836# CONFIG_SCSI_BUSLOGIC is not set 850# CONFIG_SCSI_BUSLOGIC is not set
851# CONFIG_LIBFC is not set
852# CONFIG_FCOE is not set
837# CONFIG_SCSI_DMX3191D is not set 853# CONFIG_SCSI_DMX3191D is not set
838# CONFIG_SCSI_EATA is not set 854# CONFIG_SCSI_EATA is not set
839CONFIG_SCSI_FUTURE_DOMAIN=m 855CONFIG_SCSI_FUTURE_DOMAIN=m
@@ -852,6 +868,7 @@ CONFIG_SCSI_QLOGIC_1280=m
852# CONFIG_SCSI_QLA_FC is not set 868# CONFIG_SCSI_QLA_FC is not set
853# CONFIG_SCSI_QLA_ISCSI is not set 869# CONFIG_SCSI_QLA_ISCSI is not set
854CONFIG_SCSI_LPFC=m 870CONFIG_SCSI_LPFC=m
871# CONFIG_SCSI_LPFC_DEBUG_FS is not set
855# CONFIG_SCSI_DC395x is not set 872# CONFIG_SCSI_DC395x is not set
856# CONFIG_SCSI_DC390T is not set 873# CONFIG_SCSI_DC390T is not set
857# CONFIG_SCSI_NSP32 is not set 874# CONFIG_SCSI_NSP32 is not set
@@ -896,6 +913,9 @@ CONFIG_VITESSE_PHY=y
896# CONFIG_BROADCOM_PHY is not set 913# CONFIG_BROADCOM_PHY is not set
897# CONFIG_ICPLUS_PHY is not set 914# CONFIG_ICPLUS_PHY is not set
898# CONFIG_REALTEK_PHY is not set 915# CONFIG_REALTEK_PHY is not set
916# CONFIG_NATIONAL_PHY is not set
917# CONFIG_STE10XP is not set
918# CONFIG_LSI_ET1011C_PHY is not set
899# CONFIG_FIXED_PHY is not set 919# CONFIG_FIXED_PHY is not set
900# CONFIG_MDIO_BITBANG is not set 920# CONFIG_MDIO_BITBANG is not set
901CONFIG_NET_ETHERNET=y 921CONFIG_NET_ETHERNET=y
@@ -949,6 +969,10 @@ CONFIG_MV643XX_ETH=y
949# CONFIG_IWLWIFI_LEDS is not set 969# CONFIG_IWLWIFI_LEDS is not set
950 970
951# 971#
972# Enable WiMAX (Networking options) to see the WiMAX drivers
973#
974
975#
952# USB Network Adapters 976# USB Network Adapters
953# 977#
954# CONFIG_USB_CATC is not set 978# CONFIG_USB_CATC is not set
@@ -1055,7 +1079,9 @@ CONFIG_SERIAL_CORE=y
1055CONFIG_SERIAL_CORE_CONSOLE=y 1079CONFIG_SERIAL_CORE_CONSOLE=y
1056# CONFIG_SERIAL_JSM is not set 1080# CONFIG_SERIAL_JSM is not set
1057CONFIG_UNIX98_PTYS=y 1081CONFIG_UNIX98_PTYS=y
1082# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1058# CONFIG_LEGACY_PTYS is not set 1083# CONFIG_LEGACY_PTYS is not set
1084# CONFIG_HVC_UDBG is not set
1059# CONFIG_IPMI_HANDLER is not set 1085# CONFIG_IPMI_HANDLER is not set
1060CONFIG_HW_RANDOM=m 1086CONFIG_HW_RANDOM=m
1061CONFIG_NVRAM=m 1087CONFIG_NVRAM=m
@@ -1124,8 +1150,8 @@ CONFIG_I2C_MV64XXX=m
1124# Miscellaneous I2C Chip support 1150# Miscellaneous I2C Chip support
1125# 1151#
1126# CONFIG_DS1682 is not set 1152# CONFIG_DS1682 is not set
1127# CONFIG_AT24 is not set 1153# CONFIG_EEPROM_AT24 is not set
1128CONFIG_SENSORS_EEPROM=m 1154CONFIG_EEPROM_LEGACY=m
1129CONFIG_SENSORS_PCF8574=m 1155CONFIG_SENSORS_PCF8574=m
1130# CONFIG_PCF8575 is not set 1156# CONFIG_PCF8575 is not set
1131# CONFIG_SENSORS_PCA9539 is not set 1157# CONFIG_SENSORS_PCA9539 is not set
@@ -1151,8 +1177,10 @@ CONFIG_SENSORS_ADM1026=m
1151# CONFIG_SENSORS_ADM1029 is not set 1177# CONFIG_SENSORS_ADM1029 is not set
1152CONFIG_SENSORS_ADM1031=m 1178CONFIG_SENSORS_ADM1031=m
1153# CONFIG_SENSORS_ADM9240 is not set 1179# CONFIG_SENSORS_ADM9240 is not set
1180# CONFIG_SENSORS_ADT7462 is not set
1154# CONFIG_SENSORS_ADT7470 is not set 1181# CONFIG_SENSORS_ADT7470 is not set
1155# CONFIG_SENSORS_ADT7473 is not set 1182# CONFIG_SENSORS_ADT7473 is not set
1183# CONFIG_SENSORS_ADT7475 is not set
1156# CONFIG_SENSORS_ATXP1 is not set 1184# CONFIG_SENSORS_ATXP1 is not set
1157CONFIG_SENSORS_DS1621=m 1185CONFIG_SENSORS_DS1621=m
1158# CONFIG_SENSORS_I5K_AMB is not set 1186# CONFIG_SENSORS_I5K_AMB is not set
@@ -1173,6 +1201,7 @@ CONFIG_SENSORS_LM87=m
1173CONFIG_SENSORS_LM90=m 1201CONFIG_SENSORS_LM90=m
1174# CONFIG_SENSORS_LM92 is not set 1202# CONFIG_SENSORS_LM92 is not set
1175# CONFIG_SENSORS_LM93 is not set 1203# CONFIG_SENSORS_LM93 is not set
1204# CONFIG_SENSORS_LTC4245 is not set
1176CONFIG_SENSORS_MAX1619=m 1205CONFIG_SENSORS_MAX1619=m
1177# CONFIG_SENSORS_MAX6650 is not set 1206# CONFIG_SENSORS_MAX6650 is not set
1178# CONFIG_SENSORS_PC87360 is not set 1207# CONFIG_SENSORS_PC87360 is not set
@@ -1218,11 +1247,11 @@ CONFIG_WDT_501_PCI=y
1218# USB-based Watchdog Cards 1247# USB-based Watchdog Cards
1219# 1248#
1220CONFIG_USBPCWATCHDOG=m 1249CONFIG_USBPCWATCHDOG=m
1250CONFIG_SSB_POSSIBLE=y
1221 1251
1222# 1252#
1223# Sonics Silicon Backplane 1253# Sonics Silicon Backplane
1224# 1254#
1225CONFIG_SSB_POSSIBLE=y
1226# CONFIG_SSB is not set 1255# CONFIG_SSB is not set
1227 1256
1228# 1257#
@@ -1234,14 +1263,8 @@ CONFIG_SSB_POSSIBLE=y
1234# CONFIG_MFD_TMIO is not set 1263# CONFIG_MFD_TMIO is not set
1235# CONFIG_MFD_WM8400 is not set 1264# CONFIG_MFD_WM8400 is not set
1236# CONFIG_MFD_WM8350_I2C is not set 1265# CONFIG_MFD_WM8350_I2C is not set
1237 1266# CONFIG_MFD_PCF50633 is not set
1238#
1239# Voltage and Current regulators
1240#
1241# CONFIG_REGULATOR is not set 1267# CONFIG_REGULATOR is not set
1242# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1243# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1244# CONFIG_REGULATOR_BQ24022 is not set
1245 1268
1246# 1269#
1247# Multimedia devices 1270# Multimedia devices
@@ -1298,7 +1321,7 @@ CONFIG_USB_DEVICEFS=y
1298# CONFIG_USB_DYNAMIC_MINORS is not set 1321# CONFIG_USB_DYNAMIC_MINORS is not set
1299CONFIG_USB_SUSPEND=y 1322CONFIG_USB_SUSPEND=y
1300# CONFIG_USB_OTG is not set 1323# CONFIG_USB_OTG is not set
1301CONFIG_USB_MON=y 1324CONFIG_USB_MON=m
1302# CONFIG_USB_WUSB is not set 1325# CONFIG_USB_WUSB is not set
1303# CONFIG_USB_WUSB_CBAF is not set 1326# CONFIG_USB_WUSB_CBAF is not set
1304 1327
@@ -1310,6 +1333,7 @@ CONFIG_USB_EHCI_HCD=m
1310CONFIG_USB_EHCI_ROOT_HUB_TT=y 1333CONFIG_USB_EHCI_ROOT_HUB_TT=y
1311# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1334# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1312CONFIG_USB_EHCI_HCD_PPC_OF=y 1335CONFIG_USB_EHCI_HCD_PPC_OF=y
1336# CONFIG_USB_OXU210HP_HCD is not set
1313# CONFIG_USB_ISP116X_HCD is not set 1337# CONFIG_USB_ISP116X_HCD is not set
1314# CONFIG_USB_ISP1760_HCD is not set 1338# CONFIG_USB_ISP1760_HCD is not set
1315CONFIG_USB_OHCI_HCD=m 1339CONFIG_USB_OHCI_HCD=m
@@ -1339,18 +1363,17 @@ CONFIG_USB_PRINTER=m
1339# CONFIG_USB_TMC is not set 1363# CONFIG_USB_TMC is not set
1340 1364
1341# 1365#
1342# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1366# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1343# 1367#
1344 1368
1345# 1369#
1346# may also be needed; see USB_STORAGE Help for more information 1370# see USB_STORAGE Help for more information
1347# 1371#
1348CONFIG_USB_STORAGE=m 1372CONFIG_USB_STORAGE=m
1349# CONFIG_USB_STORAGE_DEBUG is not set 1373# CONFIG_USB_STORAGE_DEBUG is not set
1350CONFIG_USB_STORAGE_DATAFAB=y 1374CONFIG_USB_STORAGE_DATAFAB=y
1351CONFIG_USB_STORAGE_FREECOM=y 1375CONFIG_USB_STORAGE_FREECOM=y
1352CONFIG_USB_STORAGE_ISD200=y 1376CONFIG_USB_STORAGE_ISD200=y
1353CONFIG_USB_STORAGE_DPCM=y
1354# CONFIG_USB_STORAGE_USBAT is not set 1377# CONFIG_USB_STORAGE_USBAT is not set
1355CONFIG_USB_STORAGE_SDDR09=y 1378CONFIG_USB_STORAGE_SDDR09=y
1356CONFIG_USB_STORAGE_SDDR55=y 1379CONFIG_USB_STORAGE_SDDR55=y
@@ -1419,12 +1442,14 @@ CONFIG_USB_SERIAL_PL2303=m
1419# CONFIG_USB_SERIAL_HP4X is not set 1442# CONFIG_USB_SERIAL_HP4X is not set
1420CONFIG_USB_SERIAL_SAFE=m 1443CONFIG_USB_SERIAL_SAFE=m
1421CONFIG_USB_SERIAL_SAFE_PADDED=y 1444CONFIG_USB_SERIAL_SAFE_PADDED=y
1445# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1422# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1446# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1423# CONFIG_USB_SERIAL_TI is not set 1447# CONFIG_USB_SERIAL_TI is not set
1424CONFIG_USB_SERIAL_CYBERJACK=m 1448CONFIG_USB_SERIAL_CYBERJACK=m
1425CONFIG_USB_SERIAL_XIRCOM=m 1449CONFIG_USB_SERIAL_XIRCOM=m
1426# CONFIG_USB_SERIAL_OPTION is not set 1450# CONFIG_USB_SERIAL_OPTION is not set
1427CONFIG_USB_SERIAL_OMNINET=m 1451CONFIG_USB_SERIAL_OMNINET=m
1452# CONFIG_USB_SERIAL_OPTICON is not set
1428# CONFIG_USB_SERIAL_DEBUG is not set 1453# CONFIG_USB_SERIAL_DEBUG is not set
1429 1454
1430# 1455#
@@ -1458,6 +1483,10 @@ CONFIG_USB_SPEEDTOUCH=m
1458# CONFIG_USB_UEAGLEATM is not set 1483# CONFIG_USB_UEAGLEATM is not set
1459# CONFIG_USB_XUSBATM is not set 1484# CONFIG_USB_XUSBATM is not set
1460# CONFIG_USB_GADGET is not set 1485# CONFIG_USB_GADGET is not set
1486
1487#
1488# OTG and related infrastructure
1489#
1461# CONFIG_UWB is not set 1490# CONFIG_UWB is not set
1462# CONFIG_MMC is not set 1491# CONFIG_MMC is not set
1463# CONFIG_MEMSTICK is not set 1492# CONFIG_MEMSTICK is not set
@@ -1500,19 +1529,23 @@ CONFIG_EXT3_FS_POSIX_ACL=y
1500CONFIG_EXT3_FS_SECURITY=y 1529CONFIG_EXT3_FS_SECURITY=y
1501# CONFIG_EXT4_FS is not set 1530# CONFIG_EXT4_FS is not set
1502CONFIG_JBD=m 1531CONFIG_JBD=m
1532# CONFIG_JBD_DEBUG is not set
1503CONFIG_FS_MBCACHE=m 1533CONFIG_FS_MBCACHE=m
1504# CONFIG_REISERFS_FS is not set 1534# CONFIG_REISERFS_FS is not set
1505# CONFIG_JFS_FS is not set 1535# CONFIG_JFS_FS is not set
1506CONFIG_FS_POSIX_ACL=y 1536CONFIG_FS_POSIX_ACL=y
1507CONFIG_FILE_LOCKING=y 1537CONFIG_FILE_LOCKING=y
1508# CONFIG_XFS_FS is not set 1538# CONFIG_XFS_FS is not set
1539# CONFIG_GFS2_FS is not set
1509# CONFIG_OCFS2_FS is not set 1540# CONFIG_OCFS2_FS is not set
1541# CONFIG_BTRFS_FS is not set
1510CONFIG_DNOTIFY=y 1542CONFIG_DNOTIFY=y
1511CONFIG_INOTIFY=y 1543CONFIG_INOTIFY=y
1512CONFIG_INOTIFY_USER=y 1544CONFIG_INOTIFY_USER=y
1513CONFIG_QUOTA=y 1545CONFIG_QUOTA=y
1514# CONFIG_QUOTA_NETLINK_INTERFACE is not set 1546# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1515CONFIG_PRINT_QUOTA_WARNING=y 1547CONFIG_PRINT_QUOTA_WARNING=y
1548CONFIG_QUOTA_TREE=y
1516# CONFIG_QFMT_V1 is not set 1549# CONFIG_QFMT_V1 is not set
1517CONFIG_QFMT_V2=y 1550CONFIG_QFMT_V2=y
1518CONFIG_QUOTACTL=y 1551CONFIG_QUOTACTL=y
@@ -1549,10 +1582,7 @@ CONFIG_TMPFS=y
1549# CONFIG_TMPFS_POSIX_ACL is not set 1582# CONFIG_TMPFS_POSIX_ACL is not set
1550# CONFIG_HUGETLB_PAGE is not set 1583# CONFIG_HUGETLB_PAGE is not set
1551# CONFIG_CONFIGFS_FS is not set 1584# CONFIG_CONFIGFS_FS is not set
1552 1585CONFIG_MISC_FILESYSTEMS=y
1553#
1554# Miscellaneous filesystems
1555#
1556# CONFIG_ADFS_FS is not set 1586# CONFIG_ADFS_FS is not set
1557# CONFIG_AFFS_FS is not set 1587# CONFIG_AFFS_FS is not set
1558# CONFIG_ECRYPT_FS is not set 1588# CONFIG_ECRYPT_FS is not set
@@ -1573,6 +1603,7 @@ CONFIG_JFFS2_ZLIB=y
1573CONFIG_JFFS2_RTIME=y 1603CONFIG_JFFS2_RTIME=y
1574# CONFIG_JFFS2_RUBIN is not set 1604# CONFIG_JFFS2_RUBIN is not set
1575CONFIG_CRAMFS=m 1605CONFIG_CRAMFS=m
1606# CONFIG_SQUASHFS is not set
1576CONFIG_VXFS_FS=m 1607CONFIG_VXFS_FS=m
1577# CONFIG_MINIX_FS is not set 1608# CONFIG_MINIX_FS is not set
1578# CONFIG_OMFS_FS is not set 1609# CONFIG_OMFS_FS is not set
@@ -1678,6 +1709,7 @@ CONFIG_NLS_UTF8=m
1678# Library routines 1709# Library routines
1679# 1710#
1680CONFIG_BITREVERSE=y 1711CONFIG_BITREVERSE=y
1712CONFIG_GENERIC_FIND_LAST_BIT=y
1681CONFIG_CRC_CCITT=m 1713CONFIG_CRC_CCITT=m
1682# CONFIG_CRC16 is not set 1714# CONFIG_CRC16 is not set
1683CONFIG_CRC_T10DIF=m 1715CONFIG_CRC_T10DIF=m
@@ -1703,7 +1735,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1703CONFIG_FRAME_WARN=1024 1735CONFIG_FRAME_WARN=1024
1704CONFIG_MAGIC_SYSRQ=y 1736CONFIG_MAGIC_SYSRQ=y
1705# CONFIG_UNUSED_SYMBOLS is not set 1737# CONFIG_UNUSED_SYMBOLS is not set
1706# CONFIG_DEBUG_FS is not set 1738CONFIG_DEBUG_FS=y
1707# CONFIG_HEADERS_CHECK is not set 1739# CONFIG_HEADERS_CHECK is not set
1708CONFIG_DEBUG_KERNEL=y 1740CONFIG_DEBUG_KERNEL=y
1709# CONFIG_DEBUG_SHIRQ is not set 1741# CONFIG_DEBUG_SHIRQ is not set
@@ -1722,6 +1754,7 @@ CONFIG_DEBUG_SPINLOCK=y
1722# CONFIG_DEBUG_MUTEXES is not set 1754# CONFIG_DEBUG_MUTEXES is not set
1723CONFIG_DEBUG_SPINLOCK_SLEEP=y 1755CONFIG_DEBUG_SPINLOCK_SLEEP=y
1724# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1756# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1757CONFIG_STACKTRACE=y
1725# CONFIG_DEBUG_KOBJECT is not set 1758# CONFIG_DEBUG_KOBJECT is not set
1726CONFIG_DEBUG_HIGHMEM=y 1759CONFIG_DEBUG_HIGHMEM=y
1727CONFIG_DEBUG_BUGVERBOSE=y 1760CONFIG_DEBUG_BUGVERBOSE=y
@@ -1731,6 +1764,7 @@ CONFIG_DEBUG_INFO=y
1731CONFIG_DEBUG_MEMORY_INIT=y 1764CONFIG_DEBUG_MEMORY_INIT=y
1732# CONFIG_DEBUG_LIST is not set 1765# CONFIG_DEBUG_LIST is not set
1733# CONFIG_DEBUG_SG is not set 1766# CONFIG_DEBUG_SG is not set
1767# CONFIG_DEBUG_NOTIFIERS is not set
1734# CONFIG_BOOT_PRINTK_DELAY is not set 1768# CONFIG_BOOT_PRINTK_DELAY is not set
1735# CONFIG_RCU_TORTURE_TEST is not set 1769# CONFIG_RCU_TORTURE_TEST is not set
1736# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1770# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1741,7 +1775,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1741# CONFIG_FAULT_INJECTION is not set 1775# CONFIG_FAULT_INJECTION is not set
1742# CONFIG_LATENCYTOP is not set 1776# CONFIG_LATENCYTOP is not set
1743CONFIG_SYSCTL_SYSCALL_CHECK=y 1777CONFIG_SYSCTL_SYSCALL_CHECK=y
1778CONFIG_NOP_TRACER=y
1744CONFIG_HAVE_FUNCTION_TRACER=y 1779CONFIG_HAVE_FUNCTION_TRACER=y
1780CONFIG_HAVE_DYNAMIC_FTRACE=y
1781CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1782CONFIG_RING_BUFFER=y
1783CONFIG_TRACING=y
1745 1784
1746# 1785#
1747# Tracers 1786# Tracers
@@ -1750,11 +1789,14 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1750# CONFIG_SCHED_TRACER is not set 1789# CONFIG_SCHED_TRACER is not set
1751# CONFIG_CONTEXT_SWITCH_TRACER is not set 1790# CONFIG_CONTEXT_SWITCH_TRACER is not set
1752# CONFIG_BOOT_TRACER is not set 1791# CONFIG_BOOT_TRACER is not set
1792# CONFIG_TRACE_BRANCH_PROFILING is not set
1753# CONFIG_STACK_TRACER is not set 1793# CONFIG_STACK_TRACER is not set
1794# CONFIG_FTRACE_STARTUP_TEST is not set
1754# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1795# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1755# CONFIG_SAMPLES is not set 1796# CONFIG_SAMPLES is not set
1756CONFIG_HAVE_ARCH_KGDB=y 1797CONFIG_HAVE_ARCH_KGDB=y
1757# CONFIG_KGDB is not set 1798# CONFIG_KGDB is not set
1799CONFIG_PRINT_STACK_DEPTH=64
1758CONFIG_DEBUG_STACKOVERFLOW=y 1800CONFIG_DEBUG_STACKOVERFLOW=y
1759CONFIG_DEBUG_STACK_USAGE=y 1801CONFIG_DEBUG_STACK_USAGE=y
1760# CONFIG_DEBUG_PAGEALLOC is not set 1802# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1763,6 +1805,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1763# CONFIG_MSI_BITMAP_SELFTEST is not set 1805# CONFIG_MSI_BITMAP_SELFTEST is not set
1764# CONFIG_XMON is not set 1806# CONFIG_XMON is not set
1765# CONFIG_IRQSTACKS is not set 1807# CONFIG_IRQSTACKS is not set
1808# CONFIG_VIRQ_DEBUG is not set
1766# CONFIG_BDI_SWITCH is not set 1809# CONFIG_BDI_SWITCH is not set
1767CONFIG_BOOTX_TEXT=y 1810CONFIG_BOOTX_TEXT=y
1768# CONFIG_PPC_EARLY_DEBUG is not set 1811# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1776,6 +1819,7 @@ CONFIG_SECURITY=y
1776# CONFIG_SECURITYFS is not set 1819# CONFIG_SECURITYFS is not set
1777CONFIG_SECURITY_NETWORK=y 1820CONFIG_SECURITY_NETWORK=y
1778# CONFIG_SECURITY_NETWORK_XFRM is not set 1821# CONFIG_SECURITY_NETWORK_XFRM is not set
1822# CONFIG_SECURITY_PATH is not set
1779# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1823# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1780CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1824CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1781CONFIG_SECURITY_SELINUX=y 1825CONFIG_SECURITY_SELINUX=y
@@ -1785,7 +1829,6 @@ CONFIG_SECURITY_SELINUX_DISABLE=y
1785CONFIG_SECURITY_SELINUX_DEVELOP=y 1829CONFIG_SECURITY_SELINUX_DEVELOP=y
1786CONFIG_SECURITY_SELINUX_AVC_STATS=y 1830CONFIG_SECURITY_SELINUX_AVC_STATS=y
1787CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 1831CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
1788# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
1789# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set 1832# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
1790CONFIG_CRYPTO=y 1833CONFIG_CRYPTO=y
1791 1834
@@ -1794,11 +1837,16 @@ CONFIG_CRYPTO=y
1794# 1837#
1795# CONFIG_CRYPTO_FIPS is not set 1838# CONFIG_CRYPTO_FIPS is not set
1796CONFIG_CRYPTO_ALGAPI=y 1839CONFIG_CRYPTO_ALGAPI=y
1797CONFIG_CRYPTO_AEAD=y 1840CONFIG_CRYPTO_ALGAPI2=y
1841CONFIG_CRYPTO_AEAD=m
1842CONFIG_CRYPTO_AEAD2=y
1798CONFIG_CRYPTO_BLKCIPHER=y 1843CONFIG_CRYPTO_BLKCIPHER=y
1844CONFIG_CRYPTO_BLKCIPHER2=y
1799CONFIG_CRYPTO_HASH=y 1845CONFIG_CRYPTO_HASH=y
1800CONFIG_CRYPTO_RNG=y 1846CONFIG_CRYPTO_HASH2=y
1847CONFIG_CRYPTO_RNG2=y
1801CONFIG_CRYPTO_MANAGER=y 1848CONFIG_CRYPTO_MANAGER=y
1849CONFIG_CRYPTO_MANAGER2=y
1802# CONFIG_CRYPTO_GF128MUL is not set 1850# CONFIG_CRYPTO_GF128MUL is not set
1803CONFIG_CRYPTO_NULL=m 1851CONFIG_CRYPTO_NULL=m
1804# CONFIG_CRYPTO_CRYPTD is not set 1852# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index c420e47426f8..c6d2baa7aaeb 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -1012,7 +1012,7 @@ CONFIG_I2C_ALGOBIT=y
1012# Miscellaneous I2C Chip support 1012# Miscellaneous I2C Chip support
1013# 1013#
1014# CONFIG_DS1682 is not set 1014# CONFIG_DS1682 is not set
1015# CONFIG_SENSORS_EEPROM is not set 1015# CONFIG_EEPROM_LEGACY is not set
1016# CONFIG_SENSORS_PCF8574 is not set 1016# CONFIG_SENSORS_PCF8574 is not set
1017# CONFIG_PCF8575 is not set 1017# CONFIG_PCF8575 is not set
1018# CONFIG_SENSORS_PCF8591 is not set 1018# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/celleb_defconfig b/arch/powerpc/configs/celleb_defconfig
index 9ba3c6fc2fef..d2123779512a 100644
--- a/arch/powerpc/configs/celleb_defconfig
+++ b/arch/powerpc/configs/celleb_defconfig
@@ -834,7 +834,7 @@ CONFIG_I2C_ALGOBIT=y
834# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
835# 835#
836# CONFIG_DS1682 is not set 836# CONFIG_DS1682 is not set
837# CONFIG_SENSORS_EEPROM is not set 837# CONFIG_EEPROM_LEGACY is not set
838# CONFIG_SENSORS_PCF8574 is not set 838# CONFIG_SENSORS_PCF8574 is not set
839# CONFIG_PCF8575 is not set 839# CONFIG_PCF8575 is not set
840# CONFIG_SENSORS_PCF8591 is not set 840# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig
index 63b3c2372ce8..5094a65a4493 100644
--- a/arch/powerpc/configs/chrp32_defconfig
+++ b/arch/powerpc/configs/chrp32_defconfig
@@ -941,8 +941,8 @@ CONFIG_I2C_ALGOBIT=y
941# Miscellaneous I2C Chip support 941# Miscellaneous I2C Chip support
942# 942#
943# CONFIG_DS1682 is not set 943# CONFIG_DS1682 is not set
944# CONFIG_AT24 is not set 944# CONFIG_EEPROM_AT24 is not set
945# CONFIG_SENSORS_EEPROM is not set 945# CONFIG_EEPROM_LEGACY is not set
946# CONFIG_SENSORS_PCF8574 is not set 946# CONFIG_SENSORS_PCF8574 is not set
947# CONFIG_PCF8575 is not set 947# CONFIG_PCF8575 is not set
948# CONFIG_SENSORS_PCA9539 is not set 948# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index a6f1cff564e6..add6419c15d9 100644
--- a/arch/powerpc/configs/ep8248e_defconfig
+++ b/arch/powerpc/configs/ep8248e_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:36 2008 4# Mon Jan 26 15:35:27 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -86,6 +86,7 @@ CONFIG_EMBEDDED=y
86CONFIG_SYSCTL_SYSCALL=y 86CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 87CONFIG_KALLSYMS=y
88CONFIG_KALLSYMS_ALL=y 88CONFIG_KALLSYMS_ALL=y
89CONFIG_KALLSYMS_STRIP_GENERATED=y
89# CONFIG_KALLSYMS_EXTRA_PASS is not set 90# CONFIG_KALLSYMS_EXTRA_PASS is not set
90CONFIG_HOTPLUG=y 91CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 92CONFIG_PRINTK=y
@@ -107,7 +108,6 @@ CONFIG_SLAB=y
107# CONFIG_SLUB is not set 108# CONFIG_SLUB is not set
108# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set 110# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y 111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
113CONFIG_HAVE_IOREMAP_PROT=y 113CONFIG_HAVE_IOREMAP_PROT=y
@@ -118,13 +118,11 @@ CONFIG_HAVE_CLK=y
118# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 118# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
123# CONFIG_MODULES is not set 122# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 123CONFIG_BLOCK=y
125# CONFIG_LBD is not set 124# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set 125# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 126# CONFIG_BLK_DEV_INTEGRITY is not set
129 127
130# 128#
@@ -140,6 +138,10 @@ CONFIG_DEFAULT_DEADLINE=y
140# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="deadline" 139CONFIG_DEFAULT_IOSCHED="deadline"
142CONFIG_CLASSIC_RCU=y 140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
143# CONFIG_FREEZER is not set 145# CONFIG_FREEZER is not set
144 146
145# 147#
@@ -181,6 +183,7 @@ CONFIG_8272=y
181CONFIG_CPM2=y 183CONFIG_CPM2=y
182# CONFIG_FSL_ULI1575 is not set 184# CONFIG_FSL_ULI1575 is not set
183CONFIG_CPM=y 185CONFIG_CPM=y
186# CONFIG_SIMPLE_GPIO is not set
184 187
185# 188#
186# Kernel options 189# Kernel options
@@ -206,6 +209,7 @@ CONFIG_BINFMT_MISC=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 210CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 211CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
212# CONFIG_CRASH_DUMP is not set
209CONFIG_ARCH_FLATMEM_ENABLE=y 213CONFIG_ARCH_FLATMEM_ENABLE=y
210CONFIG_ARCH_POPULATES_NODE_MAP=y 214CONFIG_ARCH_POPULATES_NODE_MAP=y
211CONFIG_FLATMEM=y 215CONFIG_FLATMEM=y
@@ -213,12 +217,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
213CONFIG_PAGEFLAGS_EXTENDED=y 217CONFIG_PAGEFLAGS_EXTENDED=y
214CONFIG_SPLIT_PTLOCK_CPUS=4 218CONFIG_SPLIT_PTLOCK_CPUS=4
215CONFIG_MIGRATION=y 219CONFIG_MIGRATION=y
216# CONFIG_RESOURCES_64BIT is not set
217# CONFIG_PHYS_ADDR_T_64BIT is not set 220# CONFIG_PHYS_ADDR_T_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
220CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
221CONFIG_UNEVICTABLE_LRU=y 224CONFIG_UNEVICTABLE_LRU=y
225CONFIG_PPC_4K_PAGES=y
226# CONFIG_PPC_16K_PAGES is not set
227# CONFIG_PPC_64K_PAGES is not set
222CONFIG_FORCE_MAX_ZONEORDER=11 228CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 229CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 230# CONFIG_CMDLINE_BOOL is not set
@@ -243,6 +249,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
243# CONFIG_PCI_MSI is not set 249# CONFIG_PCI_MSI is not set
244# CONFIG_PCI_LEGACY is not set 250# CONFIG_PCI_LEGACY is not set
245# CONFIG_PCI_DEBUG is not set 251# CONFIG_PCI_DEBUG is not set
252# CONFIG_PCI_STUB is not set
246# CONFIG_PCCARD is not set 253# CONFIG_PCCARD is not set
247# CONFIG_HOTPLUG_PCI is not set 254# CONFIG_HOTPLUG_PCI is not set
248# CONFIG_HAS_RAPIDIO is not set 255# CONFIG_HAS_RAPIDIO is not set
@@ -265,6 +272,7 @@ CONFIG_NET=y
265# 272#
266# Networking options 273# Networking options
267# 274#
275CONFIG_COMPAT_NET_DEV_OPS=y
268CONFIG_PACKET=y 276CONFIG_PACKET=y
269# CONFIG_PACKET_MMAP is not set 277# CONFIG_PACKET_MMAP is not set
270CONFIG_UNIX=y 278CONFIG_UNIX=y
@@ -346,6 +354,7 @@ CONFIG_NETFILTER_ADVANCED=y
346# CONFIG_IPX is not set 354# CONFIG_IPX is not set
347# CONFIG_ATALK is not set 355# CONFIG_ATALK is not set
348# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set
349 358
350# 359#
351# Network testing 360# Network testing
@@ -360,8 +369,9 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 369# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 370CONFIG_WIRELESS_OLD_REGULATORY=y
362# CONFIG_WIRELESS_EXT is not set 371# CONFIG_WIRELESS_EXT is not set
372# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 373# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set 374# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 375# CONFIG_RFKILL is not set
366 376
367# 377#
@@ -455,6 +465,12 @@ CONFIG_MTD_PHYSMAP_OF=y
455# CONFIG_MTD_ONENAND is not set 465# CONFIG_MTD_ONENAND is not set
456 466
457# 467#
468# LPDDR flash memory drivers
469#
470# CONFIG_MTD_LPDDR is not set
471# CONFIG_MTD_QINFO_PROBE is not set
472
473#
458# UBI - Unsorted block images 474# UBI - Unsorted block images
459# 475#
460# CONFIG_MTD_UBI is not set 476# CONFIG_MTD_UBI is not set
@@ -522,9 +538,12 @@ CONFIG_DAVICOM_PHY=y
522# CONFIG_BROADCOM_PHY is not set 538# CONFIG_BROADCOM_PHY is not set
523# CONFIG_ICPLUS_PHY is not set 539# CONFIG_ICPLUS_PHY is not set
524# CONFIG_REALTEK_PHY is not set 540# CONFIG_REALTEK_PHY is not set
541# CONFIG_NATIONAL_PHY is not set
542# CONFIG_STE10XP is not set
543# CONFIG_LSI_ET1011C_PHY is not set
525# CONFIG_FIXED_PHY is not set 544# CONFIG_FIXED_PHY is not set
526CONFIG_MDIO_BITBANG=y 545CONFIG_MDIO_BITBANG=y
527# CONFIG_MDIO_OF_GPIO is not set 546# CONFIG_MDIO_GPIO is not set
528CONFIG_NET_ETHERNET=y 547CONFIG_NET_ETHERNET=y
529CONFIG_MII=y 548CONFIG_MII=y
530# CONFIG_HAPPYMEAL is not set 549# CONFIG_HAPPYMEAL is not set
@@ -569,6 +588,7 @@ CONFIG_NETDEV_1000=y
569# CONFIG_JME is not set 588# CONFIG_JME is not set
570CONFIG_NETDEV_10000=y 589CONFIG_NETDEV_10000=y
571# CONFIG_CHELSIO_T1 is not set 590# CONFIG_CHELSIO_T1 is not set
591CONFIG_CHELSIO_T3_DEPENDS=y
572# CONFIG_CHELSIO_T3 is not set 592# CONFIG_CHELSIO_T3 is not set
573# CONFIG_ENIC is not set 593# CONFIG_ENIC is not set
574# CONFIG_IXGBE is not set 594# CONFIG_IXGBE is not set
@@ -591,6 +611,10 @@ CONFIG_NETDEV_10000=y
591# CONFIG_WLAN_PRE80211 is not set 611# CONFIG_WLAN_PRE80211 is not set
592# CONFIG_WLAN_80211 is not set 612# CONFIG_WLAN_80211 is not set
593# CONFIG_IWLWIFI_LEDS is not set 613# CONFIG_IWLWIFI_LEDS is not set
614
615#
616# Enable WiMAX (Networking options) to see the WiMAX drivers
617#
594# CONFIG_WAN is not set 618# CONFIG_WAN is not set
595# CONFIG_FDDI is not set 619# CONFIG_FDDI is not set
596# CONFIG_PPP is not set 620# CONFIG_PPP is not set
@@ -633,6 +657,7 @@ CONFIG_SERIAL_CPM=y
633CONFIG_SERIAL_CPM_CONSOLE=y 657CONFIG_SERIAL_CPM_CONSOLE=y
634# CONFIG_SERIAL_JSM is not set 658# CONFIG_SERIAL_JSM is not set
635CONFIG_UNIX98_PTYS=y 659CONFIG_UNIX98_PTYS=y
660# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
636CONFIG_LEGACY_PTYS=y 661CONFIG_LEGACY_PTYS=y
637CONFIG_LEGACY_PTY_COUNT=256 662CONFIG_LEGACY_PTY_COUNT=256
638# CONFIG_IPMI_HANDLER is not set 663# CONFIG_IPMI_HANDLER is not set
@@ -651,6 +676,11 @@ CONFIG_GPIOLIB=y
651# CONFIG_DEBUG_GPIO is not set 676# CONFIG_DEBUG_GPIO is not set
652 677
653# 678#
679# Memory mapped GPIO expanders:
680#
681# CONFIG_GPIO_XILINX is not set
682
683#
654# I2C GPIO expanders: 684# I2C GPIO expanders:
655# 685#
656 686
@@ -668,11 +698,11 @@ CONFIG_GPIOLIB=y
668# CONFIG_THERMAL is not set 698# CONFIG_THERMAL is not set
669# CONFIG_THERMAL_HWMON is not set 699# CONFIG_THERMAL_HWMON is not set
670# CONFIG_WATCHDOG is not set 700# CONFIG_WATCHDOG is not set
701CONFIG_SSB_POSSIBLE=y
671 702
672# 703#
673# Sonics Silicon Backplane 704# Sonics Silicon Backplane
674# 705#
675CONFIG_SSB_POSSIBLE=y
676# CONFIG_SSB is not set 706# CONFIG_SSB is not set
677 707
678# 708#
@@ -682,14 +712,7 @@ CONFIG_SSB_POSSIBLE=y
682# CONFIG_MFD_SM501 is not set 712# CONFIG_MFD_SM501 is not set
683# CONFIG_HTC_PASIC3 is not set 713# CONFIG_HTC_PASIC3 is not set
684# CONFIG_MFD_TMIO is not set 714# CONFIG_MFD_TMIO is not set
685
686#
687# Voltage and Current regulators
688#
689# CONFIG_REGULATOR is not set 715# CONFIG_REGULATOR is not set
690# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
691# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
692# CONFIG_REGULATOR_BQ24022 is not set
693 716
694# 717#
695# Multimedia devices 718# Multimedia devices
@@ -782,13 +805,11 @@ CONFIG_TMPFS=y
782# CONFIG_TMPFS_POSIX_ACL is not set 805# CONFIG_TMPFS_POSIX_ACL is not set
783# CONFIG_HUGETLB_PAGE is not set 806# CONFIG_HUGETLB_PAGE is not set
784# CONFIG_CONFIGFS_FS is not set 807# CONFIG_CONFIGFS_FS is not set
785 808CONFIG_MISC_FILESYSTEMS=y
786#
787# Miscellaneous filesystems
788#
789# CONFIG_HFSPLUS_FS is not set 809# CONFIG_HFSPLUS_FS is not set
790# CONFIG_JFFS2_FS is not set 810# CONFIG_JFFS2_FS is not set
791CONFIG_CRAMFS=y 811CONFIG_CRAMFS=y
812# CONFIG_SQUASHFS is not set
792# CONFIG_VXFS_FS is not set 813# CONFIG_VXFS_FS is not set
793# CONFIG_MINIX_FS is not set 814# CONFIG_MINIX_FS is not set
794# CONFIG_OMFS_FS is not set 815# CONFIG_OMFS_FS is not set
@@ -877,6 +898,7 @@ CONFIG_NLS_UTF8=y
877# 898#
878# Library routines 899# Library routines
879# 900#
901CONFIG_GENERIC_FIND_LAST_BIT=y
880# CONFIG_CRC_CCITT is not set 902# CONFIG_CRC_CCITT is not set
881# CONFIG_CRC16 is not set 903# CONFIG_CRC16 is not set
882# CONFIG_CRC_T10DIF is not set 904# CONFIG_CRC_T10DIF is not set
@@ -924,6 +946,7 @@ CONFIG_DEBUG_INFO=y
924# CONFIG_DEBUG_MEMORY_INIT is not set 946# CONFIG_DEBUG_MEMORY_INIT is not set
925# CONFIG_DEBUG_LIST is not set 947# CONFIG_DEBUG_LIST is not set
926# CONFIG_DEBUG_SG is not set 948# CONFIG_DEBUG_SG is not set
949# CONFIG_DEBUG_NOTIFIERS is not set
927# CONFIG_BOOT_PRINTK_DELAY is not set 950# CONFIG_BOOT_PRINTK_DELAY is not set
928# CONFIG_RCU_TORTURE_TEST is not set 951# CONFIG_RCU_TORTURE_TEST is not set
929# CONFIG_RCU_CPU_STALL_DETECTOR is not set 952# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -933,6 +956,8 @@ CONFIG_DEBUG_INFO=y
933# CONFIG_LATENCYTOP is not set 956# CONFIG_LATENCYTOP is not set
934CONFIG_SYSCTL_SYSCALL_CHECK=y 957CONFIG_SYSCTL_SYSCALL_CHECK=y
935CONFIG_HAVE_FUNCTION_TRACER=y 958CONFIG_HAVE_FUNCTION_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
936 961
937# 962#
938# Tracers 963# Tracers
@@ -941,10 +966,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
941# CONFIG_SCHED_TRACER is not set 966# CONFIG_SCHED_TRACER is not set
942# CONFIG_CONTEXT_SWITCH_TRACER is not set 967# CONFIG_CONTEXT_SWITCH_TRACER is not set
943# CONFIG_BOOT_TRACER is not set 968# CONFIG_BOOT_TRACER is not set
969# CONFIG_TRACE_BRANCH_PROFILING is not set
944# CONFIG_STACK_TRACER is not set 970# CONFIG_STACK_TRACER is not set
945# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 971# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
946# CONFIG_SAMPLES is not set 972# CONFIG_SAMPLES is not set
947CONFIG_HAVE_ARCH_KGDB=y 973CONFIG_HAVE_ARCH_KGDB=y
974CONFIG_PRINT_STACK_DEPTH=64
948# CONFIG_DEBUG_STACKOVERFLOW is not set 975# CONFIG_DEBUG_STACKOVERFLOW is not set
949# CONFIG_DEBUG_STACK_USAGE is not set 976# CONFIG_DEBUG_STACK_USAGE is not set
950# CONFIG_DEBUG_PAGEALLOC is not set 977# CONFIG_DEBUG_PAGEALLOC is not set
@@ -971,11 +998,15 @@ CONFIG_CRYPTO=y
971# 998#
972# CONFIG_CRYPTO_FIPS is not set 999# CONFIG_CRYPTO_FIPS is not set
973CONFIG_CRYPTO_ALGAPI=y 1000CONFIG_CRYPTO_ALGAPI=y
974CONFIG_CRYPTO_AEAD=y 1001CONFIG_CRYPTO_ALGAPI2=y
1002CONFIG_CRYPTO_AEAD2=y
975CONFIG_CRYPTO_BLKCIPHER=y 1003CONFIG_CRYPTO_BLKCIPHER=y
1004CONFIG_CRYPTO_BLKCIPHER2=y
976CONFIG_CRYPTO_HASH=y 1005CONFIG_CRYPTO_HASH=y
977CONFIG_CRYPTO_RNG=y 1006CONFIG_CRYPTO_HASH2=y
1007CONFIG_CRYPTO_RNG2=y
978CONFIG_CRYPTO_MANAGER=y 1008CONFIG_CRYPTO_MANAGER=y
1009CONFIG_CRYPTO_MANAGER2=y
979# CONFIG_CRYPTO_NULL is not set 1010# CONFIG_CRYPTO_NULL is not set
980# CONFIG_CRYPTO_CRYPTD is not set 1011# CONFIG_CRYPTO_CRYPTD is not set
981# CONFIG_CRYPTO_AUTHENC is not set 1012# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index 870d28976a44..b2fdfd9e183c 100644
--- a/arch/powerpc/configs/ep88xc_defconfig
+++ b/arch/powerpc/configs/ep88xc_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:37 2008 4# Mon Jan 26 15:35:28 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -70,12 +71,12 @@ CONFIG_SYSVIPC_SYSCTL=y
70# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
71# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y 74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set 76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y 77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set 78# CONFIG_CGROUP_SCHED is not set
79# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 81CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
@@ -108,7 +109,6 @@ CONFIG_SLUB_DEBUG=y
108CONFIG_SLUB=y 109CONFIG_SLUB=y
109# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 114CONFIG_HAVE_IOREMAP_PROT=y
@@ -118,13 +118,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
121# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=1 121CONFIG_BASE_SMALL=1
123# CONFIG_MODULES is not set 122# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 123CONFIG_BLOCK=y
125# CONFIG_LBD is not set 124# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set 125# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 126# CONFIG_BLK_DEV_BSG is not set
129# CONFIG_BLK_DEV_INTEGRITY is not set 127# CONFIG_BLK_DEV_INTEGRITY is not set
130 128
@@ -141,6 +139,10 @@ CONFIG_DEFAULT_DEADLINE=y
141# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
142CONFIG_DEFAULT_IOSCHED="deadline" 140CONFIG_DEFAULT_IOSCHED="deadline"
143CONFIG_CLASSIC_RCU=y 141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
144# CONFIG_FREEZER is not set 146# CONFIG_FREEZER is not set
145 147
146# 148#
@@ -186,6 +188,7 @@ CONFIG_NO_UCODE_PATCH=y
186# CONFIG_QUICC_ENGINE is not set 188# CONFIG_QUICC_ENGINE is not set
187# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 190CONFIG_CPM=y
191# CONFIG_SIMPLE_GPIO is not set
189 192
190# 193#
191# Kernel options 194# Kernel options
@@ -205,12 +208,12 @@ CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
207CONFIG_BINFMT_ELF=y 210CONFIG_BINFMT_ELF=y
208# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
209# CONFIG_HAVE_AOUT is not set 211# CONFIG_HAVE_AOUT is not set
210# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
211# CONFIG_MATH_EMULATION is not set 213# CONFIG_MATH_EMULATION is not set
212CONFIG_8XX_MINIMAL_FPEMU=y 214CONFIG_8XX_MINIMAL_FPEMU=y
213# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
216CONFIG_PPC_NEED_DMA_SYNC_OPS=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
215CONFIG_ARCH_HAS_WALK_MEMORY=y 218CONFIG_ARCH_HAS_WALK_MEMORY=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -225,12 +228,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set
234CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
235CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
236# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +277,7 @@ CONFIG_NET=y
272# 277#
273# Networking options 278# Networking options
274# 279#
280CONFIG_COMPAT_NET_DEV_OPS=y
275CONFIG_PACKET=y 281CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set 282# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y 283CONFIG_UNIX=y
@@ -323,6 +329,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
323# CONFIG_ECONET is not set 329# CONFIG_ECONET is not set
324# CONFIG_WAN_ROUTER is not set 330# CONFIG_WAN_ROUTER is not set
325# CONFIG_NET_SCHED is not set 331# CONFIG_NET_SCHED is not set
332# CONFIG_DCB is not set
326 333
327# 334#
328# Network testing 335# Network testing
@@ -338,8 +345,9 @@ CONFIG_WIRELESS=y
338# CONFIG_CFG80211 is not set 345# CONFIG_CFG80211 is not set
339CONFIG_WIRELESS_OLD_REGULATORY=y 346CONFIG_WIRELESS_OLD_REGULATORY=y
340# CONFIG_WIRELESS_EXT is not set 347# CONFIG_WIRELESS_EXT is not set
348# CONFIG_LIB80211 is not set
341# CONFIG_MAC80211 is not set 349# CONFIG_MAC80211 is not set
342# CONFIG_IEEE80211 is not set 350# CONFIG_WIMAX is not set
343# CONFIG_RFKILL is not set 351# CONFIG_RFKILL is not set
344# CONFIG_NET_9P is not set 352# CONFIG_NET_9P is not set
345 353
@@ -428,6 +436,12 @@ CONFIG_MTD_PHYSMAP_OF=y
428# CONFIG_MTD_ONENAND is not set 436# CONFIG_MTD_ONENAND is not set
429 437
430# 438#
439# LPDDR flash memory drivers
440#
441# CONFIG_MTD_LPDDR is not set
442# CONFIG_MTD_QINFO_PROBE is not set
443
444#
431# UBI - Unsorted block images 445# UBI - Unsorted block images
432# 446#
433# CONFIG_MTD_UBI is not set 447# CONFIG_MTD_UBI is not set
@@ -470,6 +484,9 @@ CONFIG_LXT_PHY=y
470# CONFIG_BROADCOM_PHY is not set 484# CONFIG_BROADCOM_PHY is not set
471# CONFIG_ICPLUS_PHY is not set 485# CONFIG_ICPLUS_PHY is not set
472# CONFIG_REALTEK_PHY is not set 486# CONFIG_REALTEK_PHY is not set
487# CONFIG_NATIONAL_PHY is not set
488# CONFIG_STE10XP is not set
489# CONFIG_LSI_ET1011C_PHY is not set
473# CONFIG_FIXED_PHY is not set 490# CONFIG_FIXED_PHY is not set
474# CONFIG_MDIO_BITBANG is not set 491# CONFIG_MDIO_BITBANG is not set
475CONFIG_NET_ETHERNET=y 492CONFIG_NET_ETHERNET=y
@@ -495,6 +512,10 @@ CONFIG_FS_ENET_MDIO_FEC=y
495# CONFIG_WLAN_PRE80211 is not set 512# CONFIG_WLAN_PRE80211 is not set
496# CONFIG_WLAN_80211 is not set 513# CONFIG_WLAN_80211 is not set
497# CONFIG_IWLWIFI_LEDS is not set 514# CONFIG_IWLWIFI_LEDS is not set
515
516#
517# Enable WiMAX (Networking options) to see the WiMAX drivers
518#
498# CONFIG_WAN is not set 519# CONFIG_WAN is not set
499# CONFIG_PPP is not set 520# CONFIG_PPP is not set
500# CONFIG_SLIP is not set 521# CONFIG_SLIP is not set
@@ -536,7 +557,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
536CONFIG_SERIAL_CPM=y 557CONFIG_SERIAL_CPM=y
537CONFIG_SERIAL_CPM_CONSOLE=y 558CONFIG_SERIAL_CPM_CONSOLE=y
538CONFIG_UNIX98_PTYS=y 559CONFIG_UNIX98_PTYS=y
560# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
539# CONFIG_LEGACY_PTYS is not set 561# CONFIG_LEGACY_PTYS is not set
562# CONFIG_HVC_UDBG is not set
540# CONFIG_IPMI_HANDLER is not set 563# CONFIG_IPMI_HANDLER is not set
541CONFIG_HW_RANDOM=y 564CONFIG_HW_RANDOM=y
542# CONFIG_NVRAM is not set 565# CONFIG_NVRAM is not set
@@ -555,11 +578,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
555# CONFIG_THERMAL is not set 578# CONFIG_THERMAL is not set
556# CONFIG_THERMAL_HWMON is not set 579# CONFIG_THERMAL_HWMON is not set
557# CONFIG_WATCHDOG is not set 580# CONFIG_WATCHDOG is not set
581CONFIG_SSB_POSSIBLE=y
558 582
559# 583#
560# Sonics Silicon Backplane 584# Sonics Silicon Backplane
561# 585#
562CONFIG_SSB_POSSIBLE=y
563# CONFIG_SSB is not set 586# CONFIG_SSB is not set
564 587
565# 588#
@@ -569,14 +592,7 @@ CONFIG_SSB_POSSIBLE=y
569# CONFIG_MFD_SM501 is not set 592# CONFIG_MFD_SM501 is not set
570# CONFIG_HTC_PASIC3 is not set 593# CONFIG_HTC_PASIC3 is not set
571# CONFIG_MFD_TMIO is not set 594# CONFIG_MFD_TMIO is not set
572
573#
574# Voltage and Current regulators
575#
576# CONFIG_REGULATOR is not set 595# CONFIG_REGULATOR is not set
577# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
578# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
579# CONFIG_REGULATOR_BQ24022 is not set
580 596
581# 597#
582# Multimedia devices 598# Multimedia devices
@@ -630,6 +646,7 @@ CONFIG_DAB=y
630CONFIG_FILE_LOCKING=y 646CONFIG_FILE_LOCKING=y
631# CONFIG_XFS_FS is not set 647# CONFIG_XFS_FS is not set
632# CONFIG_OCFS2_FS is not set 648# CONFIG_OCFS2_FS is not set
649# CONFIG_BTRFS_FS is not set
633# CONFIG_DNOTIFY is not set 650# CONFIG_DNOTIFY is not set
634# CONFIG_INOTIFY is not set 651# CONFIG_INOTIFY is not set
635# CONFIG_QUOTA is not set 652# CONFIG_QUOTA is not set
@@ -662,10 +679,7 @@ CONFIG_TMPFS=y
662# CONFIG_TMPFS_POSIX_ACL is not set 679# CONFIG_TMPFS_POSIX_ACL is not set
663# CONFIG_HUGETLB_PAGE is not set 680# CONFIG_HUGETLB_PAGE is not set
664# CONFIG_CONFIGFS_FS is not set 681# CONFIG_CONFIGFS_FS is not set
665 682CONFIG_MISC_FILESYSTEMS=y
666#
667# Miscellaneous filesystems
668#
669# CONFIG_ADFS_FS is not set 683# CONFIG_ADFS_FS is not set
670# CONFIG_AFFS_FS is not set 684# CONFIG_AFFS_FS is not set
671# CONFIG_HFS_FS is not set 685# CONFIG_HFS_FS is not set
@@ -675,6 +689,7 @@ CONFIG_TMPFS=y
675# CONFIG_EFS_FS is not set 689# CONFIG_EFS_FS is not set
676# CONFIG_JFFS2_FS is not set 690# CONFIG_JFFS2_FS is not set
677CONFIG_CRAMFS=y 691CONFIG_CRAMFS=y
692# CONFIG_SQUASHFS is not set
678# CONFIG_VXFS_FS is not set 693# CONFIG_VXFS_FS is not set
679# CONFIG_MINIX_FS is not set 694# CONFIG_MINIX_FS is not set
680# CONFIG_OMFS_FS is not set 695# CONFIG_OMFS_FS is not set
@@ -730,6 +745,7 @@ CONFIG_MSDOS_PARTITION=y
730# 745#
731# Library routines 746# Library routines
732# 747#
748CONFIG_GENERIC_FIND_LAST_BIT=y
733# CONFIG_CRC_CCITT is not set 749# CONFIG_CRC_CCITT is not set
734# CONFIG_CRC16 is not set 750# CONFIG_CRC16 is not set
735# CONFIG_CRC_T10DIF is not set 751# CONFIG_CRC_T10DIF is not set
@@ -777,6 +793,7 @@ CONFIG_DEBUG_INFO=y
777# CONFIG_DEBUG_MEMORY_INIT is not set 793# CONFIG_DEBUG_MEMORY_INIT is not set
778# CONFIG_DEBUG_LIST is not set 794# CONFIG_DEBUG_LIST is not set
779# CONFIG_DEBUG_SG is not set 795# CONFIG_DEBUG_SG is not set
796# CONFIG_DEBUG_NOTIFIERS is not set
780# CONFIG_BOOT_PRINTK_DELAY is not set 797# CONFIG_BOOT_PRINTK_DELAY is not set
781# CONFIG_RCU_TORTURE_TEST is not set 798# CONFIG_RCU_TORTURE_TEST is not set
782# CONFIG_RCU_CPU_STALL_DETECTOR is not set 799# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -785,6 +802,8 @@ CONFIG_DEBUG_INFO=y
785# CONFIG_FAULT_INJECTION is not set 802# CONFIG_FAULT_INJECTION is not set
786# CONFIG_LATENCYTOP is not set 803# CONFIG_LATENCYTOP is not set
787CONFIG_HAVE_FUNCTION_TRACER=y 804CONFIG_HAVE_FUNCTION_TRACER=y
805CONFIG_HAVE_DYNAMIC_FTRACE=y
806CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
788 807
789# 808#
790# Tracers 809# Tracers
@@ -793,11 +812,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
793# CONFIG_SCHED_TRACER is not set 812# CONFIG_SCHED_TRACER is not set
794# CONFIG_CONTEXT_SWITCH_TRACER is not set 813# CONFIG_CONTEXT_SWITCH_TRACER is not set
795# CONFIG_BOOT_TRACER is not set 814# CONFIG_BOOT_TRACER is not set
815# CONFIG_TRACE_BRANCH_PROFILING is not set
796# CONFIG_STACK_TRACER is not set 816# CONFIG_STACK_TRACER is not set
797# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 817# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
798# CONFIG_SAMPLES is not set 818# CONFIG_SAMPLES is not set
799CONFIG_HAVE_ARCH_KGDB=y 819CONFIG_HAVE_ARCH_KGDB=y
800# CONFIG_KGDB is not set 820# CONFIG_KGDB is not set
821CONFIG_PRINT_STACK_DEPTH=64
801# CONFIG_DEBUG_STACKOVERFLOW is not set 822# CONFIG_DEBUG_STACKOVERFLOW is not set
802# CONFIG_DEBUG_STACK_USAGE is not set 823# CONFIG_DEBUG_STACK_USAGE is not set
803# CONFIG_DEBUG_PAGEALLOC is not set 824# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index f85e71ccb989..fc905924c022 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -994,8 +994,8 @@ CONFIG_I2C_POWERMAC=y
994# Miscellaneous I2C Chip support 994# Miscellaneous I2C Chip support
995# 995#
996# CONFIG_DS1682 is not set 996# CONFIG_DS1682 is not set
997# CONFIG_AT24 is not set 997# CONFIG_EEPROM_AT24 is not set
998# CONFIG_SENSORS_EEPROM is not set 998# CONFIG_EEPROM_LEGACY is not set
999# CONFIG_SENSORS_PCF8574 is not set 999# CONFIG_SENSORS_PCF8574 is not set
1000# CONFIG_PCF8575 is not set 1000# CONFIG_PCF8575 is not set
1001# CONFIG_SENSORS_PCA9539 is not set 1001# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 54fa62481373..aa5855a156de 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:38 2008 4# Mon Jan 26 15:35:29 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -74,12 +74,12 @@ CONFIG_POSIX_MQUEUE=y
74CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 76CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y 77CONFIG_GROUP_SCHED=y
79# CONFIG_FAIR_GROUP_SCHED is not set 78# CONFIG_FAIR_GROUP_SCHED is not set
80# CONFIG_RT_GROUP_SCHED is not set 79# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y 80CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set 81# CONFIG_CGROUP_SCHED is not set
82# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 84CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
@@ -118,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 118CONFIG_SLUB=y
119# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,7 +128,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 131CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 132CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 133# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,11 +135,9 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_FORCE_UNLOAD is not set 135# CONFIG_MODULE_FORCE_UNLOAD is not set
138# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
139# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_BLOCK=y 138CONFIG_BLOCK=y
142# CONFIG_LBD is not set 139# CONFIG_LBD is not set
143# CONFIG_BLK_DEV_IO_TRACE is not set 140# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_LSF is not set
145# CONFIG_BLK_DEV_BSG is not set 141# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 142# CONFIG_BLK_DEV_INTEGRITY is not set
147 143
@@ -158,6 +154,10 @@ CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_NOOP is not set 154# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="anticipatory" 155CONFIG_DEFAULT_IOSCHED="anticipatory"
160CONFIG_CLASSIC_RCU=y 156CONFIG_CLASSIC_RCU=y
157# CONFIG_TREE_RCU is not set
158# CONFIG_PREEMPT_RCU is not set
159# CONFIG_TREE_RCU_TRACE is not set
160# CONFIG_PREEMPT_RCU_TRACE is not set
161# CONFIG_FREEZER is not set 161# CONFIG_FREEZER is not set
162 162
163# 163#
@@ -200,6 +200,7 @@ CONFIG_MPIC=y
200# CONFIG_TAU is not set 200# CONFIG_TAU is not set
201# CONFIG_QUICC_ENGINE is not set 201# CONFIG_QUICC_ENGINE is not set
202# CONFIG_FSL_ULI1575 is not set 202# CONFIG_FSL_ULI1575 is not set
203# CONFIG_SIMPLE_GPIO is not set
203 204
204# 205#
205# Kernel options 206# Kernel options
@@ -227,6 +228,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
227CONFIG_ARCH_HAS_WALK_MEMORY=y 228CONFIG_ARCH_HAS_WALK_MEMORY=y
228CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
229# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
231# CONFIG_CRASH_DUMP is not set
230CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
231CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
232CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -238,12 +240,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
238CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
239CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
241# CONFIG_RESOURCES_64BIT is not set
242# CONFIG_PHYS_ADDR_T_64BIT is not set 243# CONFIG_PHYS_ADDR_T_64BIT is not set
243CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -267,6 +271,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
268# CONFIG_PCI_LEGACY is not set 272# CONFIG_PCI_LEGACY is not set
269# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
270# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -289,6 +294,8 @@ CONFIG_NET=y
289# 294#
290# Networking options 295# Networking options
291# 296#
297# CONFIG_NET_NS is not set
298CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=y 299CONFIG_PACKET=y
293CONFIG_PACKET_MMAP=y 300CONFIG_PACKET_MMAP=y
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -455,6 +462,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
455# CONFIG_ECONET is not set 462# CONFIG_ECONET is not set
456# CONFIG_WAN_ROUTER is not set 463# CONFIG_WAN_ROUTER is not set
457# CONFIG_NET_SCHED is not set 464# CONFIG_NET_SCHED is not set
465# CONFIG_DCB is not set
458 466
459# 467#
460# Network testing 468# Network testing
@@ -471,12 +479,9 @@ CONFIG_WIRELESS=y
471CONFIG_WIRELESS_OLD_REGULATORY=y 479CONFIG_WIRELESS_OLD_REGULATORY=y
472CONFIG_WIRELESS_EXT=y 480CONFIG_WIRELESS_EXT=y
473CONFIG_WIRELESS_EXT_SYSFS=y 481CONFIG_WIRELESS_EXT_SYSFS=y
482# CONFIG_LIB80211 is not set
474# CONFIG_MAC80211 is not set 483# CONFIG_MAC80211 is not set
475CONFIG_IEEE80211=m 484# CONFIG_WIMAX is not set
476CONFIG_IEEE80211_DEBUG=y
477CONFIG_IEEE80211_CRYPT_WEP=m
478CONFIG_IEEE80211_CRYPT_CCMP=m
479CONFIG_IEEE80211_CRYPT_TKIP=m
480# CONFIG_RFKILL is not set 485# CONFIG_RFKILL is not set
481# CONFIG_NET_9P is not set 486# CONFIG_NET_9P is not set
482 487
@@ -501,6 +506,7 @@ CONFIG_MTD=y
501# CONFIG_MTD_DEBUG is not set 506# CONFIG_MTD_DEBUG is not set
502CONFIG_MTD_CONCAT=y 507CONFIG_MTD_CONCAT=y
503CONFIG_MTD_PARTITIONS=y 508CONFIG_MTD_PARTITIONS=y
509# CONFIG_MTD_TESTS is not set
504# CONFIG_MTD_REDBOOT_PARTS is not set 510# CONFIG_MTD_REDBOOT_PARTS is not set
505# CONFIG_MTD_CMDLINE_PARTS is not set 511# CONFIG_MTD_CMDLINE_PARTS is not set
506# CONFIG_MTD_OF_PARTS is not set 512# CONFIG_MTD_OF_PARTS is not set
@@ -554,9 +560,7 @@ CONFIG_MTD_CFI_UTIL=y
554# 560#
555# CONFIG_MTD_COMPLEX_MAPPINGS is not set 561# CONFIG_MTD_COMPLEX_MAPPINGS is not set
556CONFIG_MTD_PHYSMAP=y 562CONFIG_MTD_PHYSMAP=y
557CONFIG_MTD_PHYSMAP_START=0xffc00000 563# CONFIG_MTD_PHYSMAP_COMPAT is not set
558CONFIG_MTD_PHYSMAP_LEN=0x400000
559CONFIG_MTD_PHYSMAP_BANKWIDTH=1
560# CONFIG_MTD_PHYSMAP_OF is not set 564# CONFIG_MTD_PHYSMAP_OF is not set
561# CONFIG_MTD_INTEL_VR_NOR is not set 565# CONFIG_MTD_INTEL_VR_NOR is not set
562# CONFIG_MTD_PLATRAM is not set 566# CONFIG_MTD_PLATRAM is not set
@@ -580,6 +584,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
580# CONFIG_MTD_ONENAND is not set 584# CONFIG_MTD_ONENAND is not set
581 585
582# 586#
587# LPDDR flash memory drivers
588#
589# CONFIG_MTD_LPDDR is not set
590# CONFIG_MTD_QINFO_PROBE is not set
591
592#
583# UBI - Unsorted block images 593# UBI - Unsorted block images
584# 594#
585# CONFIG_MTD_UBI is not set 595# CONFIG_MTD_UBI is not set
@@ -610,8 +620,10 @@ CONFIG_MISC_DEVICES=y
610# CONFIG_EEPROM_93CX6 is not set 620# CONFIG_EEPROM_93CX6 is not set
611# CONFIG_SGI_IOC4 is not set 621# CONFIG_SGI_IOC4 is not set
612# CONFIG_TIFM_CORE is not set 622# CONFIG_TIFM_CORE is not set
623# CONFIG_ICS932S401 is not set
613# CONFIG_ENCLOSURE_SERVICES is not set 624# CONFIG_ENCLOSURE_SERVICES is not set
614# CONFIG_HP_ILO is not set 625# CONFIG_HP_ILO is not set
626# CONFIG_C2PORT is not set
615CONFIG_HAVE_IDE=y 627CONFIG_HAVE_IDE=y
616# CONFIG_IDE is not set 628# CONFIG_IDE is not set
617 629
@@ -654,6 +666,7 @@ CONFIG_SCSI_WAIT_SCAN=m
654# CONFIG_SCSI_SRP_ATTRS is not set 666# CONFIG_SCSI_SRP_ATTRS is not set
655CONFIG_SCSI_LOWLEVEL=y 667CONFIG_SCSI_LOWLEVEL=y
656# CONFIG_ISCSI_TCP is not set 668# CONFIG_ISCSI_TCP is not set
669# CONFIG_SCSI_CXGB3_ISCSI is not set
657# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 670# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
658# CONFIG_SCSI_3W_9XXX is not set 671# CONFIG_SCSI_3W_9XXX is not set
659# CONFIG_SCSI_ACARD is not set 672# CONFIG_SCSI_ACARD is not set
@@ -670,6 +683,8 @@ CONFIG_SCSI_LOWLEVEL=y
670# CONFIG_MEGARAID_SAS is not set 683# CONFIG_MEGARAID_SAS is not set
671# CONFIG_SCSI_HPTIOP is not set 684# CONFIG_SCSI_HPTIOP is not set
672# CONFIG_SCSI_BUSLOGIC is not set 685# CONFIG_SCSI_BUSLOGIC is not set
686# CONFIG_LIBFC is not set
687# CONFIG_FCOE is not set
673# CONFIG_SCSI_DMX3191D is not set 688# CONFIG_SCSI_DMX3191D is not set
674# CONFIG_SCSI_EATA is not set 689# CONFIG_SCSI_EATA is not set
675# CONFIG_SCSI_FUTURE_DOMAIN is not set 690# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -827,6 +842,7 @@ CONFIG_R8169=y
827# CONFIG_JME is not set 842# CONFIG_JME is not set
828CONFIG_NETDEV_10000=y 843CONFIG_NETDEV_10000=y
829# CONFIG_CHELSIO_T1 is not set 844# CONFIG_CHELSIO_T1 is not set
845CONFIG_CHELSIO_T3_DEPENDS=y
830# CONFIG_CHELSIO_T3 is not set 846# CONFIG_CHELSIO_T3 is not set
831# CONFIG_ENIC is not set 847# CONFIG_ENIC is not set
832# CONFIG_IXGBE is not set 848# CONFIG_IXGBE is not set
@@ -851,6 +867,10 @@ CONFIG_NETDEV_10000=y
851# CONFIG_IWLWIFI_LEDS is not set 867# CONFIG_IWLWIFI_LEDS is not set
852 868
853# 869#
870# Enable WiMAX (Networking options) to see the WiMAX drivers
871#
872
873#
854# USB Network Adapters 874# USB Network Adapters
855# 875#
856# CONFIG_USB_CATC is not set 876# CONFIG_USB_CATC is not set
@@ -949,8 +969,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
949# CONFIG_SERIAL_JSM is not set 969# CONFIG_SERIAL_JSM is not set
950# CONFIG_SERIAL_OF_PLATFORM is not set 970# CONFIG_SERIAL_OF_PLATFORM is not set
951CONFIG_UNIX98_PTYS=y 971CONFIG_UNIX98_PTYS=y
972# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
952CONFIG_LEGACY_PTYS=y 973CONFIG_LEGACY_PTYS=y
953CONFIG_LEGACY_PTY_COUNT=256 974CONFIG_LEGACY_PTY_COUNT=256
975# CONFIG_HVC_UDBG is not set
954# CONFIG_IPMI_HANDLER is not set 976# CONFIG_IPMI_HANDLER is not set
955CONFIG_HW_RANDOM=y 977CONFIG_HW_RANDOM=y
956# CONFIG_NVRAM is not set 978# CONFIG_NVRAM is not set
@@ -1015,8 +1037,8 @@ CONFIG_I2C_MPC=y
1015# Miscellaneous I2C Chip support 1037# Miscellaneous I2C Chip support
1016# 1038#
1017# CONFIG_DS1682 is not set 1039# CONFIG_DS1682 is not set
1018# CONFIG_AT24 is not set 1040# CONFIG_EEPROM_AT24 is not set
1019CONFIG_SENSORS_EEPROM=m 1041CONFIG_EEPROM_LEGACY=m
1020# CONFIG_SENSORS_PCF8574 is not set 1042# CONFIG_SENSORS_PCF8574 is not set
1021# CONFIG_PCF8575 is not set 1043# CONFIG_PCF8575 is not set
1022# CONFIG_SENSORS_PCA9539 is not set 1044# CONFIG_SENSORS_PCA9539 is not set
@@ -1042,8 +1064,10 @@ CONFIG_HWMON=y
1042# CONFIG_SENSORS_ADM1029 is not set 1064# CONFIG_SENSORS_ADM1029 is not set
1043# CONFIG_SENSORS_ADM1031 is not set 1065# CONFIG_SENSORS_ADM1031 is not set
1044# CONFIG_SENSORS_ADM9240 is not set 1066# CONFIG_SENSORS_ADM9240 is not set
1067# CONFIG_SENSORS_ADT7462 is not set
1045# CONFIG_SENSORS_ADT7470 is not set 1068# CONFIG_SENSORS_ADT7470 is not set
1046# CONFIG_SENSORS_ADT7473 is not set 1069# CONFIG_SENSORS_ADT7473 is not set
1070# CONFIG_SENSORS_ADT7475 is not set
1047# CONFIG_SENSORS_ATXP1 is not set 1071# CONFIG_SENSORS_ATXP1 is not set
1048# CONFIG_SENSORS_DS1621 is not set 1072# CONFIG_SENSORS_DS1621 is not set
1049# CONFIG_SENSORS_I5K_AMB is not set 1073# CONFIG_SENSORS_I5K_AMB is not set
@@ -1064,6 +1088,7 @@ CONFIG_HWMON=y
1064# CONFIG_SENSORS_LM90 is not set 1088# CONFIG_SENSORS_LM90 is not set
1065# CONFIG_SENSORS_LM92 is not set 1089# CONFIG_SENSORS_LM92 is not set
1066# CONFIG_SENSORS_LM93 is not set 1090# CONFIG_SENSORS_LM93 is not set
1091# CONFIG_SENSORS_LTC4245 is not set
1067# CONFIG_SENSORS_MAX1619 is not set 1092# CONFIG_SENSORS_MAX1619 is not set
1068# CONFIG_SENSORS_MAX6650 is not set 1093# CONFIG_SENSORS_MAX6650 is not set
1069# CONFIG_SENSORS_PC87360 is not set 1094# CONFIG_SENSORS_PC87360 is not set
@@ -1090,11 +1115,11 @@ CONFIG_HWMON=y
1090# CONFIG_THERMAL is not set 1115# CONFIG_THERMAL is not set
1091# CONFIG_THERMAL_HWMON is not set 1116# CONFIG_THERMAL_HWMON is not set
1092# CONFIG_WATCHDOG is not set 1117# CONFIG_WATCHDOG is not set
1118CONFIG_SSB_POSSIBLE=y
1093 1119
1094# 1120#
1095# Sonics Silicon Backplane 1121# Sonics Silicon Backplane
1096# 1122#
1097CONFIG_SSB_POSSIBLE=y
1098# CONFIG_SSB is not set 1123# CONFIG_SSB is not set
1099 1124
1100# 1125#
@@ -1103,18 +1128,13 @@ CONFIG_SSB_POSSIBLE=y
1103# CONFIG_MFD_CORE is not set 1128# CONFIG_MFD_CORE is not set
1104# CONFIG_MFD_SM501 is not set 1129# CONFIG_MFD_SM501 is not set
1105# CONFIG_HTC_PASIC3 is not set 1130# CONFIG_HTC_PASIC3 is not set
1131# CONFIG_TWL4030_CORE is not set
1106# CONFIG_MFD_TMIO is not set 1132# CONFIG_MFD_TMIO is not set
1107# CONFIG_PMIC_DA903X is not set 1133# CONFIG_PMIC_DA903X is not set
1108# CONFIG_MFD_WM8400 is not set 1134# CONFIG_MFD_WM8400 is not set
1109# CONFIG_MFD_WM8350_I2C is not set 1135# CONFIG_MFD_WM8350_I2C is not set
1110 1136# CONFIG_MFD_PCF50633 is not set
1111#
1112# Voltage and Current regulators
1113#
1114# CONFIG_REGULATOR is not set 1137# CONFIG_REGULATOR is not set
1115# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1116# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1117# CONFIG_REGULATOR_BQ24022 is not set
1118 1138
1119# 1139#
1120# Multimedia devices 1140# Multimedia devices
@@ -1165,12 +1185,6 @@ CONFIG_HID=m
1165# CONFIG_HID_PID is not set 1185# CONFIG_HID_PID is not set
1166 1186
1167# 1187#
1168# USB HID Boot Protocol drivers
1169#
1170# CONFIG_USB_KBD is not set
1171# CONFIG_USB_MOUSE is not set
1172
1173#
1174# Special HID drivers 1188# Special HID drivers
1175# 1189#
1176CONFIG_HID_COMPAT=y 1190CONFIG_HID_COMPAT=y
@@ -1202,6 +1216,7 @@ CONFIG_USB_EHCI_HCD=y
1202# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1216# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1203# CONFIG_USB_EHCI_FSL is not set 1217# CONFIG_USB_EHCI_FSL is not set
1204CONFIG_USB_EHCI_HCD_PPC_OF=y 1218CONFIG_USB_EHCI_HCD_PPC_OF=y
1219# CONFIG_USB_OXU210HP_HCD is not set
1205# CONFIG_USB_ISP116X_HCD is not set 1220# CONFIG_USB_ISP116X_HCD is not set
1206# CONFIG_USB_ISP1760_HCD is not set 1221# CONFIG_USB_ISP1760_HCD is not set
1207CONFIG_USB_OHCI_HCD=y 1222CONFIG_USB_OHCI_HCD=y
@@ -1227,18 +1242,17 @@ CONFIG_USB_PRINTER=m
1227# CONFIG_USB_TMC is not set 1242# CONFIG_USB_TMC is not set
1228 1243
1229# 1244#
1230# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1245# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1231# 1246#
1232 1247
1233# 1248#
1234# may also be needed; see USB_STORAGE Help for more information 1249# see USB_STORAGE Help for more information
1235# 1250#
1236CONFIG_USB_STORAGE=m 1251CONFIG_USB_STORAGE=m
1237# CONFIG_USB_STORAGE_DEBUG is not set 1252# CONFIG_USB_STORAGE_DEBUG is not set
1238# CONFIG_USB_STORAGE_DATAFAB is not set 1253# CONFIG_USB_STORAGE_DATAFAB is not set
1239# CONFIG_USB_STORAGE_FREECOM is not set 1254# CONFIG_USB_STORAGE_FREECOM is not set
1240# CONFIG_USB_STORAGE_ISD200 is not set 1255# CONFIG_USB_STORAGE_ISD200 is not set
1241# CONFIG_USB_STORAGE_DPCM is not set
1242# CONFIG_USB_STORAGE_USBAT is not set 1256# CONFIG_USB_STORAGE_USBAT is not set
1243# CONFIG_USB_STORAGE_SDDR09 is not set 1257# CONFIG_USB_STORAGE_SDDR09 is not set
1244# CONFIG_USB_STORAGE_SDDR55 is not set 1258# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1295,12 +1309,14 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1295# CONFIG_USB_SERIAL_SPCP8X5 is not set 1309# CONFIG_USB_SERIAL_SPCP8X5 is not set
1296# CONFIG_USB_SERIAL_HP4X is not set 1310# CONFIG_USB_SERIAL_HP4X is not set
1297# CONFIG_USB_SERIAL_SAFE is not set 1311# CONFIG_USB_SERIAL_SAFE is not set
1312# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1298# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1313# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1299# CONFIG_USB_SERIAL_TI is not set 1314# CONFIG_USB_SERIAL_TI is not set
1300# CONFIG_USB_SERIAL_CYBERJACK is not set 1315# CONFIG_USB_SERIAL_CYBERJACK is not set
1301# CONFIG_USB_SERIAL_XIRCOM is not set 1316# CONFIG_USB_SERIAL_XIRCOM is not set
1302# CONFIG_USB_SERIAL_OPTION is not set 1317# CONFIG_USB_SERIAL_OPTION is not set
1303# CONFIG_USB_SERIAL_OMNINET is not set 1318# CONFIG_USB_SERIAL_OMNINET is not set
1319# CONFIG_USB_SERIAL_OPTICON is not set
1304# CONFIG_USB_SERIAL_DEBUG is not set 1320# CONFIG_USB_SERIAL_DEBUG is not set
1305 1321
1306# 1322#
@@ -1329,6 +1345,10 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1329# CONFIG_USB_ISIGHTFW is not set 1345# CONFIG_USB_ISIGHTFW is not set
1330# CONFIG_USB_VST is not set 1346# CONFIG_USB_VST is not set
1331# CONFIG_USB_GADGET is not set 1347# CONFIG_USB_GADGET is not set
1348
1349#
1350# OTG and related infrastructure
1351#
1332# CONFIG_UWB is not set 1352# CONFIG_UWB is not set
1333# CONFIG_MMC is not set 1353# CONFIG_MMC is not set
1334# CONFIG_MEMSTICK is not set 1354# CONFIG_MEMSTICK is not set
@@ -1366,6 +1386,7 @@ CONFIG_RTC_DRV_RS5C372=y
1366# CONFIG_RTC_DRV_M41T80 is not set 1386# CONFIG_RTC_DRV_M41T80 is not set
1367# CONFIG_RTC_DRV_S35390A is not set 1387# CONFIG_RTC_DRV_S35390A is not set
1368# CONFIG_RTC_DRV_FM3130 is not set 1388# CONFIG_RTC_DRV_FM3130 is not set
1389# CONFIG_RTC_DRV_RX8581 is not set
1369 1390
1370# 1391#
1371# SPI RTC drivers 1392# SPI RTC drivers
@@ -1417,6 +1438,7 @@ CONFIG_XFS_FS=m
1417# CONFIG_XFS_RT is not set 1438# CONFIG_XFS_RT is not set
1418# CONFIG_XFS_DEBUG is not set 1439# CONFIG_XFS_DEBUG is not set
1419# CONFIG_OCFS2_FS is not set 1440# CONFIG_OCFS2_FS is not set
1441# CONFIG_BTRFS_FS is not set
1420CONFIG_DNOTIFY=y 1442CONFIG_DNOTIFY=y
1421CONFIG_INOTIFY=y 1443CONFIG_INOTIFY=y
1422CONFIG_INOTIFY_USER=y 1444CONFIG_INOTIFY_USER=y
@@ -1458,10 +1480,7 @@ CONFIG_TMPFS=y
1458# CONFIG_TMPFS_POSIX_ACL is not set 1480# CONFIG_TMPFS_POSIX_ACL is not set
1459# CONFIG_HUGETLB_PAGE is not set 1481# CONFIG_HUGETLB_PAGE is not set
1460# CONFIG_CONFIGFS_FS is not set 1482# CONFIG_CONFIGFS_FS is not set
1461 1483CONFIG_MISC_FILESYSTEMS=y
1462#
1463# Miscellaneous filesystems
1464#
1465# CONFIG_ADFS_FS is not set 1484# CONFIG_ADFS_FS is not set
1466# CONFIG_AFFS_FS is not set 1485# CONFIG_AFFS_FS is not set
1467# CONFIG_HFS_FS is not set 1486# CONFIG_HFS_FS is not set
@@ -1471,6 +1490,7 @@ CONFIG_TMPFS=y
1471# CONFIG_EFS_FS is not set 1490# CONFIG_EFS_FS is not set
1472# CONFIG_JFFS2_FS is not set 1491# CONFIG_JFFS2_FS is not set
1473# CONFIG_CRAMFS is not set 1492# CONFIG_CRAMFS is not set
1493# CONFIG_SQUASHFS is not set
1474# CONFIG_VXFS_FS is not set 1494# CONFIG_VXFS_FS is not set
1475# CONFIG_MINIX_FS is not set 1495# CONFIG_MINIX_FS is not set
1476# CONFIG_OMFS_FS is not set 1496# CONFIG_OMFS_FS is not set
@@ -1561,6 +1581,7 @@ CONFIG_NLS_UTF8=m
1561# Library routines 1581# Library routines
1562# 1582#
1563CONFIG_BITREVERSE=y 1583CONFIG_BITREVERSE=y
1584CONFIG_GENERIC_FIND_LAST_BIT=y
1564CONFIG_CRC_CCITT=m 1585CONFIG_CRC_CCITT=m
1565# CONFIG_CRC16 is not set 1586# CONFIG_CRC16 is not set
1566CONFIG_CRC_T10DIF=y 1587CONFIG_CRC_T10DIF=y
@@ -1614,6 +1635,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1614CONFIG_DEBUG_MEMORY_INIT=y 1635CONFIG_DEBUG_MEMORY_INIT=y
1615# CONFIG_DEBUG_LIST is not set 1636# CONFIG_DEBUG_LIST is not set
1616# CONFIG_DEBUG_SG is not set 1637# CONFIG_DEBUG_SG is not set
1638# CONFIG_DEBUG_NOTIFIERS is not set
1617# CONFIG_BOOT_PRINTK_DELAY is not set 1639# CONFIG_BOOT_PRINTK_DELAY is not set
1618# CONFIG_RCU_TORTURE_TEST is not set 1640# CONFIG_RCU_TORTURE_TEST is not set
1619# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1641# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1623,6 +1645,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
1623# CONFIG_LATENCYTOP is not set 1645# CONFIG_LATENCYTOP is not set
1624CONFIG_SYSCTL_SYSCALL_CHECK=y 1646CONFIG_SYSCTL_SYSCALL_CHECK=y
1625CONFIG_HAVE_FUNCTION_TRACER=y 1647CONFIG_HAVE_FUNCTION_TRACER=y
1648CONFIG_HAVE_DYNAMIC_FTRACE=y
1649CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1626 1650
1627# 1651#
1628# Tracers 1652# Tracers
@@ -1631,11 +1655,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1631# CONFIG_SCHED_TRACER is not set 1655# CONFIG_SCHED_TRACER is not set
1632# CONFIG_CONTEXT_SWITCH_TRACER is not set 1656# CONFIG_CONTEXT_SWITCH_TRACER is not set
1633# CONFIG_BOOT_TRACER is not set 1657# CONFIG_BOOT_TRACER is not set
1658# CONFIG_TRACE_BRANCH_PROFILING is not set
1634# CONFIG_STACK_TRACER is not set 1659# CONFIG_STACK_TRACER is not set
1635# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1660# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1636# CONFIG_SAMPLES is not set 1661# CONFIG_SAMPLES is not set
1637CONFIG_HAVE_ARCH_KGDB=y 1662CONFIG_HAVE_ARCH_KGDB=y
1638# CONFIG_KGDB is not set 1663# CONFIG_KGDB is not set
1664CONFIG_PRINT_STACK_DEPTH=64
1639# CONFIG_DEBUG_STACKOVERFLOW is not set 1665# CONFIG_DEBUG_STACKOVERFLOW is not set
1640# CONFIG_DEBUG_STACK_USAGE is not set 1666# CONFIG_DEBUG_STACK_USAGE is not set
1641# CONFIG_DEBUG_PAGEALLOC is not set 1667# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1662,11 +1688,15 @@ CONFIG_CRYPTO=y
1662# 1688#
1663# CONFIG_CRYPTO_FIPS is not set 1689# CONFIG_CRYPTO_FIPS is not set
1664CONFIG_CRYPTO_ALGAPI=y 1690CONFIG_CRYPTO_ALGAPI=y
1665CONFIG_CRYPTO_AEAD=y 1691CONFIG_CRYPTO_ALGAPI2=y
1692CONFIG_CRYPTO_AEAD2=y
1666CONFIG_CRYPTO_BLKCIPHER=y 1693CONFIG_CRYPTO_BLKCIPHER=y
1694CONFIG_CRYPTO_BLKCIPHER2=y
1667CONFIG_CRYPTO_HASH=y 1695CONFIG_CRYPTO_HASH=y
1668CONFIG_CRYPTO_RNG=y 1696CONFIG_CRYPTO_HASH2=y
1697CONFIG_CRYPTO_RNG2=y
1669CONFIG_CRYPTO_MANAGER=y 1698CONFIG_CRYPTO_MANAGER=y
1699CONFIG_CRYPTO_MANAGER2=y
1670# CONFIG_CRYPTO_GF128MUL is not set 1700# CONFIG_CRYPTO_GF128MUL is not set
1671# CONFIG_CRYPTO_NULL is not set 1701# CONFIG_CRYPTO_NULL is not set
1672# CONFIG_CRYPTO_CRYPTD is not set 1702# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 045f1b008ce5..8b244003b9e1 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -866,8 +866,8 @@ CONFIG_I2C_AMD8111=y
866# Miscellaneous I2C Chip support 866# Miscellaneous I2C Chip support
867# 867#
868# CONFIG_DS1682 is not set 868# CONFIG_DS1682 is not set
869# CONFIG_AT24 is not set 869# CONFIG_EEPROM_AT24 is not set
870# CONFIG_SENSORS_EEPROM is not set 870# CONFIG_EEPROM_LEGACY is not set
871# CONFIG_SENSORS_PCF8574 is not set 871# CONFIG_SENSORS_PCF8574 is not set
872# CONFIG_PCF8575 is not set 872# CONFIG_PCF8575 is not set
873# CONFIG_SENSORS_PCA9539 is not set 873# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig
index 8d3c62324009..c58c38d5b7a6 100644
--- a/arch/powerpc/configs/mgcoge_defconfig
+++ b/arch/powerpc/configs/mgcoge_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:38 2008 4# Mon Jan 26 15:35:30 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -89,6 +89,7 @@ CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 89CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 90CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 91CONFIG_KALLSYMS_ALL=y
92CONFIG_KALLSYMS_STRIP_GENERATED=y
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
93CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 95CONFIG_PRINTK=y
@@ -111,7 +112,6 @@ CONFIG_SLAB=y
111# CONFIG_SLUB is not set 112# CONFIG_SLUB is not set
112# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
113# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 117CONFIG_HAVE_IOREMAP_PROT=y
@@ -122,13 +122,11 @@ CONFIG_HAVE_CLK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
127# CONFIG_MODULES is not set 126# CONFIG_MODULES is not set
128CONFIG_BLOCK=y 127CONFIG_BLOCK=y
129# CONFIG_LBD is not set 128# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set 130# CONFIG_BLK_DEV_INTEGRITY is not set
133 131
134# 132#
@@ -144,6 +142,10 @@ CONFIG_DEFAULT_DEADLINE=y
144# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="deadline" 143CONFIG_DEFAULT_IOSCHED="deadline"
146CONFIG_CLASSIC_RCU=y 144CONFIG_CLASSIC_RCU=y
145# CONFIG_TREE_RCU is not set
146# CONFIG_PREEMPT_RCU is not set
147# CONFIG_TREE_RCU_TRACE is not set
148# CONFIG_PREEMPT_RCU_TRACE is not set
147# CONFIG_FREEZER is not set 149# CONFIG_FREEZER is not set
148 150
149# 151#
@@ -190,6 +192,7 @@ CONFIG_PPC_MPC106=y
190CONFIG_CPM2=y 192CONFIG_CPM2=y
191# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
192CONFIG_CPM=y 194CONFIG_CPM=y
195# CONFIG_SIMPLE_GPIO is not set
193 196
194# 197#
195# Kernel options 198# Kernel options
@@ -215,6 +218,7 @@ CONFIG_BINFMT_MISC=y
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y 219CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
221# CONFIG_CRASH_DUMP is not set
218CONFIG_ARCH_FLATMEM_ENABLE=y 222CONFIG_ARCH_FLATMEM_ENABLE=y
219CONFIG_ARCH_POPULATES_NODE_MAP=y 223CONFIG_ARCH_POPULATES_NODE_MAP=y
220CONFIG_FLATMEM=y 224CONFIG_FLATMEM=y
@@ -222,12 +226,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 233CONFIG_UNEVICTABLE_LRU=y
234CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -253,6 +259,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 259# CONFIG_PCI_MSI is not set
254# CONFIG_PCI_LEGACY is not set 260# CONFIG_PCI_LEGACY is not set
255# CONFIG_PCI_DEBUG is not set 261# CONFIG_PCI_DEBUG is not set
262# CONFIG_PCI_STUB is not set
256# CONFIG_PCCARD is not set 263# CONFIG_PCCARD is not set
257# CONFIG_HOTPLUG_PCI is not set 264# CONFIG_HOTPLUG_PCI is not set
258# CONFIG_HAS_RAPIDIO is not set 265# CONFIG_HAS_RAPIDIO is not set
@@ -275,6 +282,7 @@ CONFIG_NET=y
275# 282#
276# Networking options 283# Networking options
277# 284#
285CONFIG_COMPAT_NET_DEV_OPS=y
278CONFIG_PACKET=y 286CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
280CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -337,6 +345,7 @@ CONFIG_NETFILTER_ADVANCED=y
337# CONFIG_IPX is not set 345# CONFIG_IPX is not set
338# CONFIG_ATALK is not set 346# CONFIG_ATALK is not set
339# CONFIG_NET_SCHED is not set 347# CONFIG_NET_SCHED is not set
348# CONFIG_DCB is not set
340 349
341# 350#
342# Network testing 351# Network testing
@@ -351,8 +360,9 @@ CONFIG_WIRELESS=y
351# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
352CONFIG_WIRELESS_OLD_REGULATORY=y 361CONFIG_WIRELESS_OLD_REGULATORY=y
353# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
363# CONFIG_LIB80211 is not set
354# CONFIG_MAC80211 is not set 364# CONFIG_MAC80211 is not set
355# CONFIG_IEEE80211 is not set 365# CONFIG_WIMAX is not set
356# CONFIG_RFKILL is not set 366# CONFIG_RFKILL is not set
357 367
358# 368#
@@ -451,6 +461,12 @@ CONFIG_MTD_PHYSMAP_OF=y
451# CONFIG_MTD_ONENAND is not set 461# CONFIG_MTD_ONENAND is not set
452 462
453# 463#
464# LPDDR flash memory drivers
465#
466# CONFIG_MTD_LPDDR is not set
467# CONFIG_MTD_QINFO_PROBE is not set
468
469#
454# UBI - Unsorted block images 470# UBI - Unsorted block images
455# 471#
456# CONFIG_MTD_UBI is not set 472# CONFIG_MTD_UBI is not set
@@ -522,6 +538,9 @@ CONFIG_PHYLIB=y
522# CONFIG_BROADCOM_PHY is not set 538# CONFIG_BROADCOM_PHY is not set
523# CONFIG_ICPLUS_PHY is not set 539# CONFIG_ICPLUS_PHY is not set
524# CONFIG_REALTEK_PHY is not set 540# CONFIG_REALTEK_PHY is not set
541# CONFIG_NATIONAL_PHY is not set
542# CONFIG_STE10XP is not set
543# CONFIG_LSI_ET1011C_PHY is not set
525CONFIG_FIXED_PHY=y 544CONFIG_FIXED_PHY=y
526# CONFIG_MDIO_BITBANG is not set 545# CONFIG_MDIO_BITBANG is not set
527CONFIG_NET_ETHERNET=y 546CONFIG_NET_ETHERNET=y
@@ -558,6 +577,10 @@ CONFIG_FS_ENET_HAS_SCC=y
558# CONFIG_WLAN_PRE80211 is not set 577# CONFIG_WLAN_PRE80211 is not set
559# CONFIG_WLAN_80211 is not set 578# CONFIG_WLAN_80211 is not set
560# CONFIG_IWLWIFI_LEDS is not set 579# CONFIG_IWLWIFI_LEDS is not set
580
581#
582# Enable WiMAX (Networking options) to see the WiMAX drivers
583#
561# CONFIG_WAN is not set 584# CONFIG_WAN is not set
562# CONFIG_FDDI is not set 585# CONFIG_FDDI is not set
563# CONFIG_PPP is not set 586# CONFIG_PPP is not set
@@ -601,6 +624,7 @@ CONFIG_SERIAL_CPM=y
601CONFIG_SERIAL_CPM_CONSOLE=y 624CONFIG_SERIAL_CPM_CONSOLE=y
602# CONFIG_SERIAL_JSM is not set 625# CONFIG_SERIAL_JSM is not set
603CONFIG_UNIX98_PTYS=y 626CONFIG_UNIX98_PTYS=y
627# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
604CONFIG_LEGACY_PTYS=y 628CONFIG_LEGACY_PTYS=y
605CONFIG_LEGACY_PTY_COUNT=256 629CONFIG_LEGACY_PTY_COUNT=256
606# CONFIG_BRIQ_PANEL is not set 630# CONFIG_BRIQ_PANEL is not set
@@ -621,6 +645,11 @@ CONFIG_GPIOLIB=y
621# CONFIG_DEBUG_GPIO is not set 645# CONFIG_DEBUG_GPIO is not set
622 646
623# 647#
648# Memory mapped GPIO expanders:
649#
650# CONFIG_GPIO_XILINX is not set
651
652#
624# I2C GPIO expanders: 653# I2C GPIO expanders:
625# 654#
626 655
@@ -638,11 +667,11 @@ CONFIG_GPIOLIB=y
638# CONFIG_THERMAL is not set 667# CONFIG_THERMAL is not set
639# CONFIG_THERMAL_HWMON is not set 668# CONFIG_THERMAL_HWMON is not set
640# CONFIG_WATCHDOG is not set 669# CONFIG_WATCHDOG is not set
670CONFIG_SSB_POSSIBLE=y
641 671
642# 672#
643# Sonics Silicon Backplane 673# Sonics Silicon Backplane
644# 674#
645CONFIG_SSB_POSSIBLE=y
646# CONFIG_SSB is not set 675# CONFIG_SSB is not set
647 676
648# 677#
@@ -652,14 +681,7 @@ CONFIG_SSB_POSSIBLE=y
652# CONFIG_MFD_SM501 is not set 681# CONFIG_MFD_SM501 is not set
653# CONFIG_HTC_PASIC3 is not set 682# CONFIG_HTC_PASIC3 is not set
654# CONFIG_MFD_TMIO is not set 683# CONFIG_MFD_TMIO is not set
655
656#
657# Voltage and Current regulators
658#
659# CONFIG_REGULATOR is not set 684# CONFIG_REGULATOR is not set
660# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
661# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
662# CONFIG_REGULATOR_BQ24022 is not set
663 685
664# 686#
665# Multimedia devices 687# Multimedia devices
@@ -753,10 +775,7 @@ CONFIG_TMPFS=y
753# CONFIG_TMPFS_POSIX_ACL is not set 775# CONFIG_TMPFS_POSIX_ACL is not set
754# CONFIG_HUGETLB_PAGE is not set 776# CONFIG_HUGETLB_PAGE is not set
755# CONFIG_CONFIGFS_FS is not set 777# CONFIG_CONFIGFS_FS is not set
756 778CONFIG_MISC_FILESYSTEMS=y
757#
758# Miscellaneous filesystems
759#
760# CONFIG_HFSPLUS_FS is not set 779# CONFIG_HFSPLUS_FS is not set
761CONFIG_JFFS2_FS=y 780CONFIG_JFFS2_FS=y
762CONFIG_JFFS2_FS_DEBUG=0 781CONFIG_JFFS2_FS_DEBUG=0
@@ -768,6 +787,7 @@ CONFIG_JFFS2_ZLIB=y
768CONFIG_JFFS2_RTIME=y 787CONFIG_JFFS2_RTIME=y
769# CONFIG_JFFS2_RUBIN is not set 788# CONFIG_JFFS2_RUBIN is not set
770CONFIG_CRAMFS=y 789CONFIG_CRAMFS=y
790# CONFIG_SQUASHFS is not set
771# CONFIG_VXFS_FS is not set 791# CONFIG_VXFS_FS is not set
772# CONFIG_MINIX_FS is not set 792# CONFIG_MINIX_FS is not set
773# CONFIG_OMFS_FS is not set 793# CONFIG_OMFS_FS is not set
@@ -857,6 +877,7 @@ CONFIG_NLS_UTF8=y
857# Library routines 877# Library routines
858# 878#
859CONFIG_BITREVERSE=y 879CONFIG_BITREVERSE=y
880CONFIG_GENERIC_FIND_LAST_BIT=y
860# CONFIG_CRC_CCITT is not set 881# CONFIG_CRC_CCITT is not set
861# CONFIG_CRC16 is not set 882# CONFIG_CRC16 is not set
862# CONFIG_CRC_T10DIF is not set 883# CONFIG_CRC_T10DIF is not set
@@ -905,6 +926,7 @@ CONFIG_DEBUG_INFO=y
905# CONFIG_DEBUG_MEMORY_INIT is not set 926# CONFIG_DEBUG_MEMORY_INIT is not set
906# CONFIG_DEBUG_LIST is not set 927# CONFIG_DEBUG_LIST is not set
907# CONFIG_DEBUG_SG is not set 928# CONFIG_DEBUG_SG is not set
929# CONFIG_DEBUG_NOTIFIERS is not set
908# CONFIG_BOOT_PRINTK_DELAY is not set 930# CONFIG_BOOT_PRINTK_DELAY is not set
909# CONFIG_RCU_TORTURE_TEST is not set 931# CONFIG_RCU_TORTURE_TEST is not set
910# CONFIG_RCU_CPU_STALL_DETECTOR is not set 932# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -914,6 +936,8 @@ CONFIG_DEBUG_INFO=y
914# CONFIG_LATENCYTOP is not set 936# CONFIG_LATENCYTOP is not set
915CONFIG_SYSCTL_SYSCALL_CHECK=y 937CONFIG_SYSCTL_SYSCALL_CHECK=y
916CONFIG_HAVE_FUNCTION_TRACER=y 938CONFIG_HAVE_FUNCTION_TRACER=y
939CONFIG_HAVE_DYNAMIC_FTRACE=y
940CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
917 941
918# 942#
919# Tracers 943# Tracers
@@ -922,10 +946,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
922# CONFIG_SCHED_TRACER is not set 946# CONFIG_SCHED_TRACER is not set
923# CONFIG_CONTEXT_SWITCH_TRACER is not set 947# CONFIG_CONTEXT_SWITCH_TRACER is not set
924# CONFIG_BOOT_TRACER is not set 948# CONFIG_BOOT_TRACER is not set
949# CONFIG_TRACE_BRANCH_PROFILING is not set
925# CONFIG_STACK_TRACER is not set 950# CONFIG_STACK_TRACER is not set
926# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 951# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
927# CONFIG_SAMPLES is not set 952# CONFIG_SAMPLES is not set
928CONFIG_HAVE_ARCH_KGDB=y 953CONFIG_HAVE_ARCH_KGDB=y
954CONFIG_PRINT_STACK_DEPTH=64
929# CONFIG_DEBUG_STACKOVERFLOW is not set 955# CONFIG_DEBUG_STACKOVERFLOW is not set
930# CONFIG_DEBUG_STACK_USAGE is not set 956# CONFIG_DEBUG_STACK_USAGE is not set
931# CONFIG_DEBUG_PAGEALLOC is not set 957# CONFIG_DEBUG_PAGEALLOC is not set
@@ -953,11 +979,15 @@ CONFIG_CRYPTO=y
953# 979#
954# CONFIG_CRYPTO_FIPS is not set 980# CONFIG_CRYPTO_FIPS is not set
955CONFIG_CRYPTO_ALGAPI=y 981CONFIG_CRYPTO_ALGAPI=y
956CONFIG_CRYPTO_AEAD=y 982CONFIG_CRYPTO_ALGAPI2=y
983CONFIG_CRYPTO_AEAD2=y
957CONFIG_CRYPTO_BLKCIPHER=y 984CONFIG_CRYPTO_BLKCIPHER=y
985CONFIG_CRYPTO_BLKCIPHER2=y
958CONFIG_CRYPTO_HASH=y 986CONFIG_CRYPTO_HASH=y
959CONFIG_CRYPTO_RNG=y 987CONFIG_CRYPTO_HASH2=y
988CONFIG_CRYPTO_RNG2=y
960CONFIG_CRYPTO_MANAGER=y 989CONFIG_CRYPTO_MANAGER=y
990CONFIG_CRYPTO_MANAGER2=y
961# CONFIG_CRYPTO_NULL is not set 991# CONFIG_CRYPTO_NULL is not set
962# CONFIG_CRYPTO_CRYPTD is not set 992# CONFIG_CRYPTO_CRYPTD is not set
963# CONFIG_CRYPTO_AUTHENC is not set 993# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig
index fbaa67f7b0ef..297b5d5042be 100644
--- a/arch/powerpc/configs/mgsuvd_defconfig
+++ b/arch/powerpc/configs/mgsuvd_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:39 2008 4# Mon Jan 26 15:35:32 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -69,12 +70,12 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=17 72CONFIG_LOG_BUF_SHIFT=17
72# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y 73CONFIG_GROUP_SCHED=y
74CONFIG_FAIR_GROUP_SCHED=y 74CONFIG_FAIR_GROUP_SCHED=y
75# CONFIG_RT_GROUP_SCHED is not set 75# CONFIG_RT_GROUP_SCHED is not set
76CONFIG_USER_SCHED=y 76CONFIG_USER_SCHED=y
77# CONFIG_CGROUP_SCHED is not set 77# CONFIG_CGROUP_SCHED is not set
78# CONFIG_CGROUPS is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
79CONFIG_SYSFS_DEPRECATED_V2=y 80CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
@@ -106,7 +107,6 @@ CONFIG_SLAB=y
106# CONFIG_SLUB is not set 107# CONFIG_SLUB is not set
107# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set 109# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y 112CONFIG_HAVE_IOREMAP_PROT=y
@@ -117,13 +117,11 @@ CONFIG_HAVE_CLK=y
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set
121CONFIG_BASE_SMALL=1 120CONFIG_BASE_SMALL=1
122# CONFIG_MODULES is not set 121# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 122CONFIG_BLOCK=y
124# CONFIG_LBD is not set 123# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set 124# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_LSF is not set
127# CONFIG_BLK_DEV_BSG is not set 125# CONFIG_BLK_DEV_BSG is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 126# CONFIG_BLK_DEV_INTEGRITY is not set
129 127
@@ -140,6 +138,10 @@ CONFIG_DEFAULT_AS=y
140# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="anticipatory" 139CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y 140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
143# CONFIG_FREEZER is not set 145# CONFIG_FREEZER is not set
144 146
145# 147#
@@ -186,6 +188,7 @@ CONFIG_UCODE_PATCH=y
186# CONFIG_QUICC_ENGINE is not set 188# CONFIG_QUICC_ENGINE is not set
187# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 190CONFIG_CPM=y
191# CONFIG_SIMPLE_GPIO is not set
189 192
190# 193#
191# Kernel options 194# Kernel options
@@ -209,6 +212,7 @@ CONFIG_BINFMT_ELF=y
209# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
210CONFIG_MATH_EMULATION=y 213CONFIG_MATH_EMULATION=y
211# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
215CONFIG_PPC_NEED_DMA_SYNC_OPS=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
213CONFIG_ARCH_HAS_WALK_MEMORY=y 217CONFIG_ARCH_HAS_WALK_MEMORY=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -223,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set 230# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
232CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 239# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +275,7 @@ CONFIG_NET=y
269# 275#
270# Networking options 276# Networking options
271# 277#
278CONFIG_COMPAT_NET_DEV_OPS=y
272CONFIG_PACKET=y 279CONFIG_PACKET=y
273# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
274CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -325,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
325# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
326# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
327# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set
328 336
329# 337#
330# Network testing 338# Network testing
@@ -340,8 +348,9 @@ CONFIG_WIRELESS=y
340# CONFIG_CFG80211 is not set 348# CONFIG_CFG80211 is not set
341CONFIG_WIRELESS_OLD_REGULATORY=y 349CONFIG_WIRELESS_OLD_REGULATORY=y
342# CONFIG_WIRELESS_EXT is not set 350# CONFIG_WIRELESS_EXT is not set
351# CONFIG_LIB80211 is not set
343# CONFIG_MAC80211 is not set 352# CONFIG_MAC80211 is not set
344# CONFIG_IEEE80211 is not set 353# CONFIG_WIMAX is not set
345# CONFIG_RFKILL is not set 354# CONFIG_RFKILL is not set
346# CONFIG_NET_9P is not set 355# CONFIG_NET_9P is not set
347 356
@@ -435,6 +444,12 @@ CONFIG_MTD_PHYSMAP_OF=y
435# CONFIG_MTD_ONENAND is not set 444# CONFIG_MTD_ONENAND is not set
436 445
437# 446#
447# LPDDR flash memory drivers
448#
449# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451
452#
438# UBI - Unsorted block images 453# UBI - Unsorted block images
439# 454#
440# CONFIG_MTD_UBI is not set 455# CONFIG_MTD_UBI is not set
@@ -489,6 +504,9 @@ CONFIG_PHYLIB=y
489# CONFIG_BROADCOM_PHY is not set 504# CONFIG_BROADCOM_PHY is not set
490# CONFIG_ICPLUS_PHY is not set 505# CONFIG_ICPLUS_PHY is not set
491# CONFIG_REALTEK_PHY is not set 506# CONFIG_REALTEK_PHY is not set
507# CONFIG_NATIONAL_PHY is not set
508# CONFIG_STE10XP is not set
509# CONFIG_LSI_ET1011C_PHY is not set
492CONFIG_FIXED_PHY=y 510CONFIG_FIXED_PHY=y
493# CONFIG_MDIO_BITBANG is not set 511# CONFIG_MDIO_BITBANG is not set
494CONFIG_NET_ETHERNET=y 512CONFIG_NET_ETHERNET=y
@@ -514,6 +532,10 @@ CONFIG_FS_ENET_HAS_SCC=y
514# CONFIG_WLAN_PRE80211 is not set 532# CONFIG_WLAN_PRE80211 is not set
515# CONFIG_WLAN_80211 is not set 533# CONFIG_WLAN_80211 is not set
516# CONFIG_IWLWIFI_LEDS is not set 534# CONFIG_IWLWIFI_LEDS is not set
535
536#
537# Enable WiMAX (Networking options) to see the WiMAX drivers
538#
517# CONFIG_WAN is not set 539# CONFIG_WAN is not set
518# CONFIG_PPP is not set 540# CONFIG_PPP is not set
519# CONFIG_SLIP is not set 541# CONFIG_SLIP is not set
@@ -555,7 +577,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
555CONFIG_SERIAL_CPM=y 577CONFIG_SERIAL_CPM=y
556CONFIG_SERIAL_CPM_CONSOLE=y 578CONFIG_SERIAL_CPM_CONSOLE=y
557CONFIG_UNIX98_PTYS=y 579CONFIG_UNIX98_PTYS=y
580# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
558# CONFIG_LEGACY_PTYS is not set 581# CONFIG_LEGACY_PTYS is not set
582# CONFIG_HVC_UDBG is not set
559# CONFIG_IPMI_HANDLER is not set 583# CONFIG_IPMI_HANDLER is not set
560CONFIG_HW_RANDOM=y 584CONFIG_HW_RANDOM=y
561# CONFIG_NVRAM is not set 585# CONFIG_NVRAM is not set
@@ -574,11 +598,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
574# CONFIG_THERMAL is not set 598# CONFIG_THERMAL is not set
575# CONFIG_THERMAL_HWMON is not set 599# CONFIG_THERMAL_HWMON is not set
576# CONFIG_WATCHDOG is not set 600# CONFIG_WATCHDOG is not set
601CONFIG_SSB_POSSIBLE=y
577 602
578# 603#
579# Sonics Silicon Backplane 604# Sonics Silicon Backplane
580# 605#
581CONFIG_SSB_POSSIBLE=y
582# CONFIG_SSB is not set 606# CONFIG_SSB is not set
583 607
584# 608#
@@ -588,14 +612,7 @@ CONFIG_SSB_POSSIBLE=y
588# CONFIG_MFD_SM501 is not set 612# CONFIG_MFD_SM501 is not set
589# CONFIG_HTC_PASIC3 is not set 613# CONFIG_HTC_PASIC3 is not set
590# CONFIG_MFD_TMIO is not set 614# CONFIG_MFD_TMIO is not set
591
592#
593# Voltage and Current regulators
594#
595# CONFIG_REGULATOR is not set 615# CONFIG_REGULATOR is not set
596# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
597# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
598# CONFIG_REGULATOR_BQ24022 is not set
599 616
600# 617#
601# Multimedia devices 618# Multimedia devices
@@ -659,6 +676,7 @@ CONFIG_FS_MBCACHE=y
659CONFIG_FILE_LOCKING=y 676CONFIG_FILE_LOCKING=y
660# CONFIG_XFS_FS is not set 677# CONFIG_XFS_FS is not set
661# CONFIG_OCFS2_FS is not set 678# CONFIG_OCFS2_FS is not set
679# CONFIG_BTRFS_FS is not set
662CONFIG_DNOTIFY=y 680CONFIG_DNOTIFY=y
663CONFIG_INOTIFY=y 681CONFIG_INOTIFY=y
664CONFIG_INOTIFY_USER=y 682CONFIG_INOTIFY_USER=y
@@ -692,10 +710,7 @@ CONFIG_TMPFS=y
692# CONFIG_TMPFS_POSIX_ACL is not set 710# CONFIG_TMPFS_POSIX_ACL is not set
693# CONFIG_HUGETLB_PAGE is not set 711# CONFIG_HUGETLB_PAGE is not set
694# CONFIG_CONFIGFS_FS is not set 712# CONFIG_CONFIGFS_FS is not set
695 713CONFIG_MISC_FILESYSTEMS=y
696#
697# Miscellaneous filesystems
698#
699# CONFIG_ADFS_FS is not set 714# CONFIG_ADFS_FS is not set
700# CONFIG_AFFS_FS is not set 715# CONFIG_AFFS_FS is not set
701# CONFIG_HFS_FS is not set 716# CONFIG_HFS_FS is not set
@@ -715,6 +730,7 @@ CONFIG_JFFS2_ZLIB=y
715CONFIG_JFFS2_RTIME=y 730CONFIG_JFFS2_RTIME=y
716# CONFIG_JFFS2_RUBIN is not set 731# CONFIG_JFFS2_RUBIN is not set
717CONFIG_CRAMFS=y 732CONFIG_CRAMFS=y
733# CONFIG_SQUASHFS is not set
718# CONFIG_VXFS_FS is not set 734# CONFIG_VXFS_FS is not set
719# CONFIG_MINIX_FS is not set 735# CONFIG_MINIX_FS is not set
720# CONFIG_OMFS_FS is not set 736# CONFIG_OMFS_FS is not set
@@ -771,6 +787,7 @@ CONFIG_MSDOS_PARTITION=y
771# Library routines 787# Library routines
772# 788#
773CONFIG_BITREVERSE=y 789CONFIG_BITREVERSE=y
790CONFIG_GENERIC_FIND_LAST_BIT=y
774CONFIG_CRC_CCITT=y 791CONFIG_CRC_CCITT=y
775# CONFIG_CRC16 is not set 792# CONFIG_CRC16 is not set
776# CONFIG_CRC_T10DIF is not set 793# CONFIG_CRC_T10DIF is not set
@@ -802,6 +819,8 @@ CONFIG_DEBUG_FS=y
802# CONFIG_RCU_CPU_STALL_DETECTOR is not set 819# CONFIG_RCU_CPU_STALL_DETECTOR is not set
803# CONFIG_LATENCYTOP is not set 820# CONFIG_LATENCYTOP is not set
804CONFIG_HAVE_FUNCTION_TRACER=y 821CONFIG_HAVE_FUNCTION_TRACER=y
822CONFIG_HAVE_DYNAMIC_FTRACE=y
823CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
805 824
806# 825#
807# Tracers 826# Tracers
@@ -809,6 +828,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
809# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 828# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
810# CONFIG_SAMPLES is not set 829# CONFIG_SAMPLES is not set
811CONFIG_HAVE_ARCH_KGDB=y 830CONFIG_HAVE_ARCH_KGDB=y
831CONFIG_PRINT_STACK_DEPTH=64
812# CONFIG_IRQSTACKS is not set 832# CONFIG_IRQSTACKS is not set
813# CONFIG_VIRQ_DEBUG is not set 833# CONFIG_VIRQ_DEBUG is not set
814# CONFIG_PPC_EARLY_DEBUG is not set 834# CONFIG_PPC_EARLY_DEBUG is not set
@@ -827,6 +847,7 @@ CONFIG_CRYPTO=y
827# 847#
828# CONFIG_CRYPTO_FIPS is not set 848# CONFIG_CRYPTO_FIPS is not set
829# CONFIG_CRYPTO_MANAGER is not set 849# CONFIG_CRYPTO_MANAGER is not set
850# CONFIG_CRYPTO_MANAGER2 is not set
830# CONFIG_CRYPTO_GF128MUL is not set 851# CONFIG_CRYPTO_GF128MUL is not set
831# CONFIG_CRYPTO_NULL is not set 852# CONFIG_CRYPTO_NULL is not set
832# CONFIG_CRYPTO_CRYPTD is not set 853# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig
index 15c5604d0b26..81afc8b373d7 100644
--- a/arch/powerpc/configs/mpc5200_defconfig
+++ b/arch/powerpc/configs/mpc5200_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Thu Nov 13 02:09:07 2008 4# Mon Jan 26 21:40:44 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -72,10 +72,19 @@ CONFIG_SYSVIPC_SYSCTL=y
72# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
75
76#
77# RCU Subsystem
78#
79CONFIG_CLASSIC_RCU=y
80# CONFIG_TREE_RCU is not set
81# CONFIG_PREEMPT_RCU is not set
82# CONFIG_TREE_RCU_TRACE is not set
83# CONFIG_PREEMPT_RCU_TRACE is not set
75# CONFIG_IKCONFIG is not set 84# CONFIG_IKCONFIG is not set
76CONFIG_LOG_BUF_SHIFT=14 85CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78# CONFIG_GROUP_SCHED is not set 86# CONFIG_GROUP_SCHED is not set
87# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 88CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 89CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 90# CONFIG_RELAY is not set
@@ -108,7 +117,6 @@ CONFIG_SLUB_DEBUG=y
108CONFIG_SLUB=y 117CONFIG_SLUB=y
109# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 119# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 122CONFIG_HAVE_IOREMAP_PROT=y
@@ -119,7 +127,6 @@ CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
122# CONFIG_TINY_SHMEM is not set
123CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
124CONFIG_MODULES=y 131CONFIG_MODULES=y
125# CONFIG_MODULE_FORCE_LOAD is not set 132# CONFIG_MODULE_FORCE_LOAD is not set
@@ -127,11 +134,9 @@ CONFIG_MODULE_UNLOAD=y
127# CONFIG_MODULE_FORCE_UNLOAD is not set 134# CONFIG_MODULE_FORCE_UNLOAD is not set
128# CONFIG_MODVERSIONS is not set 135# CONFIG_MODVERSIONS is not set
129# CONFIG_MODULE_SRCVERSION_ALL is not set 136# CONFIG_MODULE_SRCVERSION_ALL is not set
130CONFIG_KMOD=y
131CONFIG_BLOCK=y 137CONFIG_BLOCK=y
132# CONFIG_LBD is not set 138# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set 139# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_LSF is not set
135# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
137 142
@@ -147,7 +152,6 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 152# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151CONFIG_FREEZER=y 155CONFIG_FREEZER=y
152 156
153# 157#
@@ -192,7 +196,7 @@ CONFIG_RTAS_PROC=y
192CONFIG_PPC_BESTCOMM=y 196CONFIG_PPC_BESTCOMM=y
193CONFIG_PPC_BESTCOMM_ATA=y 197CONFIG_PPC_BESTCOMM_ATA=y
194CONFIG_PPC_BESTCOMM_FEC=y 198CONFIG_PPC_BESTCOMM_FEC=y
195CONFIG_PPC_BESTCOMM_GEN_BD=y 199# CONFIG_SIMPLE_GPIO is not set
196 200
197# 201#
198# Kernel options 202# Kernel options
@@ -220,6 +224,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y 224CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
222# CONFIG_KEXEC is not set 226# CONFIG_KEXEC is not set
227# CONFIG_CRASH_DUMP is not set
223CONFIG_ARCH_FLATMEM_ENABLE=y 228CONFIG_ARCH_FLATMEM_ENABLE=y
224CONFIG_ARCH_POPULATES_NODE_MAP=y 229CONFIG_ARCH_POPULATES_NODE_MAP=y
225CONFIG_SELECT_MEMORY_MODEL=y 230CONFIG_SELECT_MEMORY_MODEL=y
@@ -231,12 +236,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
231CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
234# CONFIG_RESOURCES_64BIT is not set
235# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
239CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set
240CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
241CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
242# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -264,6 +271,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
264# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
265CONFIG_PCI_LEGACY=y 272CONFIG_PCI_LEGACY=y
266# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
267# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
268# CONFIG_HOTPLUG_PCI is not set 276# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set 277# CONFIG_HAS_RAPIDIO is not set
@@ -286,6 +294,7 @@ CONFIG_NET=y
286# 294#
287# Networking options 295# Networking options
288# 296#
297CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 298CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 299# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 300CONFIG_UNIX=y
@@ -342,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set
345 355
346# 356#
347# Network testing 357# Network testing
@@ -354,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
354# CONFIG_AF_RXRPC is not set 364# CONFIG_AF_RXRPC is not set
355# CONFIG_PHONET is not set 365# CONFIG_PHONET is not set
356# CONFIG_WIRELESS is not set 366# CONFIG_WIRELESS is not set
367# CONFIG_WIMAX is not set
357# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
358# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
359 370
@@ -376,6 +387,7 @@ CONFIG_MTD=y
376# CONFIG_MTD_DEBUG is not set 387# CONFIG_MTD_DEBUG is not set
377CONFIG_MTD_CONCAT=y 388CONFIG_MTD_CONCAT=y
378CONFIG_MTD_PARTITIONS=y 389CONFIG_MTD_PARTITIONS=y
390# CONFIG_MTD_TESTS is not set
379# CONFIG_MTD_REDBOOT_PARTS is not set 391# CONFIG_MTD_REDBOOT_PARTS is not set
380CONFIG_MTD_CMDLINE_PARTS=y 392CONFIG_MTD_CMDLINE_PARTS=y
381# CONFIG_MTD_OF_PARTS is not set 393# CONFIG_MTD_OF_PARTS is not set
@@ -447,6 +459,12 @@ CONFIG_MTD_PHYSMAP_OF=y
447# CONFIG_MTD_ONENAND is not set 459# CONFIG_MTD_ONENAND is not set
448 460
449# 461#
462# LPDDR flash memory drivers
463#
464# CONFIG_MTD_LPDDR is not set
465# CONFIG_MTD_QINFO_PROBE is not set
466
467#
450# UBI - Unsorted block images 468# UBI - Unsorted block images
451# 469#
452# CONFIG_MTD_UBI is not set 470# CONFIG_MTD_UBI is not set
@@ -474,13 +492,19 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
474# CONFIG_BLK_DEV_HD is not set 492# CONFIG_BLK_DEV_HD is not set
475CONFIG_MISC_DEVICES=y 493CONFIG_MISC_DEVICES=y
476# CONFIG_PHANTOM is not set 494# CONFIG_PHANTOM is not set
477# CONFIG_EEPROM_93CX6 is not set
478# CONFIG_SGI_IOC4 is not set 495# CONFIG_SGI_IOC4 is not set
479# CONFIG_TIFM_CORE is not set 496# CONFIG_TIFM_CORE is not set
480# CONFIG_ICS932S401 is not set 497# CONFIG_ICS932S401 is not set
481# CONFIG_ENCLOSURE_SERVICES is not set 498# CONFIG_ENCLOSURE_SERVICES is not set
482# CONFIG_HP_ILO is not set 499# CONFIG_HP_ILO is not set
483# CONFIG_C2PORT is not set 500# CONFIG_C2PORT is not set
501
502#
503# EEPROM support
504#
505# CONFIG_EEPROM_AT24 is not set
506# CONFIG_EEPROM_LEGACY is not set
507# CONFIG_EEPROM_93CX6 is not set
484CONFIG_HAVE_IDE=y 508CONFIG_HAVE_IDE=y
485# CONFIG_IDE is not set 509# CONFIG_IDE is not set
486 510
@@ -539,6 +563,8 @@ CONFIG_SCSI_LOWLEVEL=y
539# CONFIG_MEGARAID_SAS is not set 563# CONFIG_MEGARAID_SAS is not set
540# CONFIG_SCSI_HPTIOP is not set 564# CONFIG_SCSI_HPTIOP is not set
541# CONFIG_SCSI_BUSLOGIC is not set 565# CONFIG_SCSI_BUSLOGIC is not set
566# CONFIG_LIBFC is not set
567# CONFIG_FCOE is not set
542# CONFIG_SCSI_DMX3191D is not set 568# CONFIG_SCSI_DMX3191D is not set
543# CONFIG_SCSI_EATA is not set 569# CONFIG_SCSI_EATA is not set
544# CONFIG_SCSI_FUTURE_DOMAIN is not set 570# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -659,6 +685,9 @@ CONFIG_PHYLIB=y
659# CONFIG_BROADCOM_PHY is not set 685# CONFIG_BROADCOM_PHY is not set
660# CONFIG_ICPLUS_PHY is not set 686# CONFIG_ICPLUS_PHY is not set
661# CONFIG_REALTEK_PHY is not set 687# CONFIG_REALTEK_PHY is not set
688# CONFIG_NATIONAL_PHY is not set
689# CONFIG_STE10XP is not set
690# CONFIG_LSI_ET1011C_PHY is not set
662# CONFIG_FIXED_PHY is not set 691# CONFIG_FIXED_PHY is not set
663# CONFIG_MDIO_BITBANG is not set 692# CONFIG_MDIO_BITBANG is not set
664CONFIG_NET_ETHERNET=y 693CONFIG_NET_ETHERNET=y
@@ -693,6 +722,10 @@ CONFIG_FEC_MPC52xx_MDIO=y
693# CONFIG_IWLWIFI_LEDS is not set 722# CONFIG_IWLWIFI_LEDS is not set
694 723
695# 724#
725# Enable WiMAX (Networking options) to see the WiMAX drivers
726#
727
728#
696# USB Network Adapters 729# USB Network Adapters
697# 730#
698# CONFIG_USB_CATC is not set 731# CONFIG_USB_CATC is not set
@@ -774,9 +807,11 @@ CONFIG_SERIAL_MPC52xx_CONSOLE=y
774CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 807CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
775# CONFIG_SERIAL_JSM is not set 808# CONFIG_SERIAL_JSM is not set
776CONFIG_UNIX98_PTYS=y 809CONFIG_UNIX98_PTYS=y
810# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
777CONFIG_LEGACY_PTYS=y 811CONFIG_LEGACY_PTYS=y
778CONFIG_LEGACY_PTY_COUNT=256 812CONFIG_LEGACY_PTY_COUNT=256
779# CONFIG_HVC_RTAS is not set 813# CONFIG_HVC_RTAS is not set
814# CONFIG_HVC_UDBG is not set
780# CONFIG_IPMI_HANDLER is not set 815# CONFIG_IPMI_HANDLER is not set
781# CONFIG_HW_RANDOM is not set 816# CONFIG_HW_RANDOM is not set
782# CONFIG_NVRAM is not set 817# CONFIG_NVRAM is not set
@@ -844,8 +879,6 @@ CONFIG_I2C_MPC=y
844# Miscellaneous I2C Chip support 879# Miscellaneous I2C Chip support
845# 880#
846# CONFIG_DS1682 is not set 881# CONFIG_DS1682 is not set
847# CONFIG_AT24 is not set
848# CONFIG_SENSORS_EEPROM is not set
849# CONFIG_SENSORS_PCF8574 is not set 882# CONFIG_SENSORS_PCF8574 is not set
850# CONFIG_PCF8575 is not set 883# CONFIG_PCF8575 is not set
851# CONFIG_SENSORS_PCA9539 is not set 884# CONFIG_SENSORS_PCA9539 is not set
@@ -874,6 +907,7 @@ CONFIG_HWMON=y
874# CONFIG_SENSORS_ADT7462 is not set 907# CONFIG_SENSORS_ADT7462 is not set
875# CONFIG_SENSORS_ADT7470 is not set 908# CONFIG_SENSORS_ADT7470 is not set
876# CONFIG_SENSORS_ADT7473 is not set 909# CONFIG_SENSORS_ADT7473 is not set
910# CONFIG_SENSORS_ADT7475 is not set
877# CONFIG_SENSORS_ATXP1 is not set 911# CONFIG_SENSORS_ATXP1 is not set
878# CONFIG_SENSORS_DS1621 is not set 912# CONFIG_SENSORS_DS1621 is not set
879# CONFIG_SENSORS_I5K_AMB is not set 913# CONFIG_SENSORS_I5K_AMB is not set
@@ -894,6 +928,7 @@ CONFIG_HWMON=y
894# CONFIG_SENSORS_LM90 is not set 928# CONFIG_SENSORS_LM90 is not set
895# CONFIG_SENSORS_LM92 is not set 929# CONFIG_SENSORS_LM92 is not set
896# CONFIG_SENSORS_LM93 is not set 930# CONFIG_SENSORS_LM93 is not set
931# CONFIG_SENSORS_LTC4245 is not set
897# CONFIG_SENSORS_MAX1619 is not set 932# CONFIG_SENSORS_MAX1619 is not set
898# CONFIG_SENSORS_MAX6650 is not set 933# CONFIG_SENSORS_MAX6650 is not set
899# CONFIG_SENSORS_PC87360 is not set 934# CONFIG_SENSORS_PC87360 is not set
@@ -953,10 +988,12 @@ CONFIG_SSB_POSSIBLE=y
953# CONFIG_MFD_CORE is not set 988# CONFIG_MFD_CORE is not set
954# CONFIG_MFD_SM501 is not set 989# CONFIG_MFD_SM501 is not set
955# CONFIG_HTC_PASIC3 is not set 990# CONFIG_HTC_PASIC3 is not set
991# CONFIG_TWL4030_CORE is not set
956# CONFIG_MFD_TMIO is not set 992# CONFIG_MFD_TMIO is not set
957# CONFIG_PMIC_DA903X is not set 993# CONFIG_PMIC_DA903X is not set
958# CONFIG_MFD_WM8400 is not set 994# CONFIG_MFD_WM8400 is not set
959# CONFIG_MFD_WM8350_I2C is not set 995# CONFIG_MFD_WM8350_I2C is not set
996# CONFIG_MFD_PCF50633 is not set
960# CONFIG_REGULATOR is not set 997# CONFIG_REGULATOR is not set
961 998
962# 999#
@@ -1051,7 +1088,7 @@ CONFIG_LCD_CLASS_DEVICE=m
1051# CONFIG_LCD_ILI9320 is not set 1088# CONFIG_LCD_ILI9320 is not set
1052# CONFIG_LCD_PLATFORM is not set 1089# CONFIG_LCD_PLATFORM is not set
1053CONFIG_BACKLIGHT_CLASS_DEVICE=y 1090CONFIG_BACKLIGHT_CLASS_DEVICE=y
1054# CONFIG_BACKLIGHT_CORGI is not set 1091CONFIG_BACKLIGHT_GENERIC=y
1055 1092
1056# 1093#
1057# Display device support 1094# Display device support
@@ -1093,21 +1130,22 @@ CONFIG_HID_COMPAT=y
1093CONFIG_HID_A4TECH=y 1130CONFIG_HID_A4TECH=y
1094# CONFIG_HID_APPLE is not set 1131# CONFIG_HID_APPLE is not set
1095CONFIG_HID_BELKIN=y 1132CONFIG_HID_BELKIN=y
1096CONFIG_HID_BRIGHT=y
1097CONFIG_HID_CHERRY=y 1133CONFIG_HID_CHERRY=y
1098# CONFIG_HID_CHICONY is not set 1134# CONFIG_HID_CHICONY is not set
1099CONFIG_HID_CYPRESS=y 1135CONFIG_HID_CYPRESS=y
1100CONFIG_HID_DELL=y
1101CONFIG_HID_EZKEY=y 1136CONFIG_HID_EZKEY=y
1102# CONFIG_HID_GYRATION is not set 1137# CONFIG_HID_GYRATION is not set
1103# CONFIG_HID_LOGITECH is not set 1138# CONFIG_HID_LOGITECH is not set
1104# CONFIG_HID_MICROSOFT is not set 1139# CONFIG_HID_MICROSOFT is not set
1105# CONFIG_HID_MONTEREY is not set 1140# CONFIG_HID_MONTEREY is not set
1141# CONFIG_HID_NTRIG is not set
1106# CONFIG_HID_PANTHERLORD is not set 1142# CONFIG_HID_PANTHERLORD is not set
1107# CONFIG_HID_PETALYNX is not set 1143# CONFIG_HID_PETALYNX is not set
1108# CONFIG_HID_SAMSUNG is not set 1144# CONFIG_HID_SAMSUNG is not set
1109# CONFIG_HID_SONY is not set 1145# CONFIG_HID_SONY is not set
1110# CONFIG_HID_SUNPLUS is not set 1146# CONFIG_HID_SUNPLUS is not set
1147# CONFIG_GREENASIA_FF is not set
1148# CONFIG_HID_TOPSEED is not set
1111# CONFIG_THRUSTMASTER_FF is not set 1149# CONFIG_THRUSTMASTER_FF is not set
1112# CONFIG_ZEROPLUS_FF is not set 1150# CONFIG_ZEROPLUS_FF is not set
1113CONFIG_USB_SUPPORT=y 1151CONFIG_USB_SUPPORT=y
@@ -1137,6 +1175,7 @@ CONFIG_USB_MON=y
1137# 1175#
1138# CONFIG_USB_C67X00_HCD is not set 1176# CONFIG_USB_C67X00_HCD is not set
1139# CONFIG_USB_EHCI_HCD is not set 1177# CONFIG_USB_EHCI_HCD is not set
1178# CONFIG_USB_OXU210HP_HCD is not set
1140# CONFIG_USB_ISP116X_HCD is not set 1179# CONFIG_USB_ISP116X_HCD is not set
1141# CONFIG_USB_ISP1760_HCD is not set 1180# CONFIG_USB_ISP1760_HCD is not set
1142CONFIG_USB_OHCI_HCD=y 1181CONFIG_USB_OHCI_HCD=y
@@ -1164,18 +1203,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1164# CONFIG_USB_TMC is not set 1203# CONFIG_USB_TMC is not set
1165 1204
1166# 1205#
1167# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1206# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1168# 1207#
1169 1208
1170# 1209#
1171# may also be needed; see USB_STORAGE Help for more information 1210# see USB_STORAGE Help for more information
1172# 1211#
1173CONFIG_USB_STORAGE=y 1212CONFIG_USB_STORAGE=y
1174# CONFIG_USB_STORAGE_DEBUG is not set 1213# CONFIG_USB_STORAGE_DEBUG is not set
1175# CONFIG_USB_STORAGE_DATAFAB is not set 1214# CONFIG_USB_STORAGE_DATAFAB is not set
1176# CONFIG_USB_STORAGE_FREECOM is not set 1215# CONFIG_USB_STORAGE_FREECOM is not set
1177# CONFIG_USB_STORAGE_ISD200 is not set 1216# CONFIG_USB_STORAGE_ISD200 is not set
1178# CONFIG_USB_STORAGE_DPCM is not set
1179# CONFIG_USB_STORAGE_USBAT is not set 1217# CONFIG_USB_STORAGE_USBAT is not set
1180# CONFIG_USB_STORAGE_SDDR09 is not set 1218# CONFIG_USB_STORAGE_SDDR09 is not set
1181# CONFIG_USB_STORAGE_SDDR55 is not set 1219# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1222,6 +1260,10 @@ CONFIG_USB_STORAGE=y
1222# CONFIG_USB_ISIGHTFW is not set 1260# CONFIG_USB_ISIGHTFW is not set
1223# CONFIG_USB_VST is not set 1261# CONFIG_USB_VST is not set
1224# CONFIG_USB_GADGET is not set 1262# CONFIG_USB_GADGET is not set
1263
1264#
1265# OTG and related infrastructure
1266#
1225# CONFIG_UWB is not set 1267# CONFIG_UWB is not set
1226# CONFIG_MMC is not set 1268# CONFIG_MMC is not set
1227# CONFIG_MEMSTICK is not set 1269# CONFIG_MEMSTICK is not set
@@ -1243,7 +1285,6 @@ CONFIG_NEW_LEDS=y
1243# CONFIG_DMADEVICES is not set 1285# CONFIG_DMADEVICES is not set
1244# CONFIG_UIO is not set 1286# CONFIG_UIO is not set
1245# CONFIG_STAGING is not set 1287# CONFIG_STAGING is not set
1246CONFIG_STAGING_EXCLUDE_BUILD=y
1247 1288
1248# 1289#
1249# File systems 1290# File systems
@@ -1264,6 +1305,7 @@ CONFIG_FS_MBCACHE=y
1264CONFIG_FILE_LOCKING=y 1305CONFIG_FILE_LOCKING=y
1265# CONFIG_XFS_FS is not set 1306# CONFIG_XFS_FS is not set
1266# CONFIG_OCFS2_FS is not set 1307# CONFIG_OCFS2_FS is not set
1308# CONFIG_BTRFS_FS is not set
1267CONFIG_DNOTIFY=y 1309CONFIG_DNOTIFY=y
1268CONFIG_INOTIFY=y 1310CONFIG_INOTIFY=y
1269CONFIG_INOTIFY_USER=y 1311CONFIG_INOTIFY_USER=y
@@ -1300,10 +1342,7 @@ CONFIG_TMPFS=y
1300# CONFIG_TMPFS_POSIX_ACL is not set 1342# CONFIG_TMPFS_POSIX_ACL is not set
1301# CONFIG_HUGETLB_PAGE is not set 1343# CONFIG_HUGETLB_PAGE is not set
1302# CONFIG_CONFIGFS_FS is not set 1344# CONFIG_CONFIGFS_FS is not set
1303 1345CONFIG_MISC_FILESYSTEMS=y
1304#
1305# Miscellaneous filesystems
1306#
1307# CONFIG_ADFS_FS is not set 1346# CONFIG_ADFS_FS is not set
1308# CONFIG_AFFS_FS is not set 1347# CONFIG_AFFS_FS is not set
1309# CONFIG_HFS_FS is not set 1348# CONFIG_HFS_FS is not set
@@ -1323,6 +1362,7 @@ CONFIG_JFFS2_ZLIB=y
1323CONFIG_JFFS2_RTIME=y 1362CONFIG_JFFS2_RTIME=y
1324# CONFIG_JFFS2_RUBIN is not set 1363# CONFIG_JFFS2_RUBIN is not set
1325CONFIG_CRAMFS=y 1364CONFIG_CRAMFS=y
1365# CONFIG_SQUASHFS is not set
1326# CONFIG_VXFS_FS is not set 1366# CONFIG_VXFS_FS is not set
1327# CONFIG_MINIX_FS is not set 1367# CONFIG_MINIX_FS is not set
1328# CONFIG_OMFS_FS is not set 1368# CONFIG_OMFS_FS is not set
@@ -1403,6 +1443,7 @@ CONFIG_NLS_ISO8859_1=y
1403# Library routines 1443# Library routines
1404# 1444#
1405CONFIG_BITREVERSE=y 1445CONFIG_BITREVERSE=y
1446CONFIG_GENERIC_FIND_LAST_BIT=y
1406# CONFIG_CRC_CCITT is not set 1447# CONFIG_CRC_CCITT is not set
1407# CONFIG_CRC16 is not set 1448# CONFIG_CRC16 is not set
1408# CONFIG_CRC_T10DIF is not set 1449# CONFIG_CRC_T10DIF is not set
@@ -1454,6 +1495,7 @@ CONFIG_DEBUG_INFO=y
1454# CONFIG_DEBUG_MEMORY_INIT is not set 1495# CONFIG_DEBUG_MEMORY_INIT is not set
1455# CONFIG_DEBUG_LIST is not set 1496# CONFIG_DEBUG_LIST is not set
1456# CONFIG_DEBUG_SG is not set 1497# CONFIG_DEBUG_SG is not set
1498# CONFIG_DEBUG_NOTIFIERS is not set
1457# CONFIG_BOOT_PRINTK_DELAY is not set 1499# CONFIG_BOOT_PRINTK_DELAY is not set
1458# CONFIG_RCU_TORTURE_TEST is not set 1500# CONFIG_RCU_TORTURE_TEST is not set
1459# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1501# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1462,6 +1504,8 @@ CONFIG_DEBUG_INFO=y
1462# CONFIG_FAULT_INJECTION is not set 1504# CONFIG_FAULT_INJECTION is not set
1463# CONFIG_LATENCYTOP is not set 1505# CONFIG_LATENCYTOP is not set
1464CONFIG_HAVE_FUNCTION_TRACER=y 1506CONFIG_HAVE_FUNCTION_TRACER=y
1507CONFIG_HAVE_DYNAMIC_FTRACE=y
1508CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1465 1509
1466# 1510#
1467# Tracers 1511# Tracers
@@ -1470,11 +1514,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1470# CONFIG_SCHED_TRACER is not set 1514# CONFIG_SCHED_TRACER is not set
1471# CONFIG_CONTEXT_SWITCH_TRACER is not set 1515# CONFIG_CONTEXT_SWITCH_TRACER is not set
1472# CONFIG_BOOT_TRACER is not set 1516# CONFIG_BOOT_TRACER is not set
1517# CONFIG_TRACE_BRANCH_PROFILING is not set
1473# CONFIG_STACK_TRACER is not set 1518# CONFIG_STACK_TRACER is not set
1474# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1519# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1475# CONFIG_SAMPLES is not set 1520# CONFIG_SAMPLES is not set
1476CONFIG_HAVE_ARCH_KGDB=y 1521CONFIG_HAVE_ARCH_KGDB=y
1477# CONFIG_KGDB is not set 1522# CONFIG_KGDB is not set
1523CONFIG_PRINT_STACK_DEPTH=64
1478# CONFIG_DEBUG_STACKOVERFLOW is not set 1524# CONFIG_DEBUG_STACKOVERFLOW is not set
1479# CONFIG_DEBUG_STACK_USAGE is not set 1525# CONFIG_DEBUG_STACK_USAGE is not set
1480# CONFIG_DEBUG_PAGEALLOC is not set 1526# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1501,11 +1547,15 @@ CONFIG_CRYPTO=y
1501# 1547#
1502# CONFIG_CRYPTO_FIPS is not set 1548# CONFIG_CRYPTO_FIPS is not set
1503CONFIG_CRYPTO_ALGAPI=y 1549CONFIG_CRYPTO_ALGAPI=y
1504CONFIG_CRYPTO_AEAD=y 1550CONFIG_CRYPTO_ALGAPI2=y
1551CONFIG_CRYPTO_AEAD2=y
1505CONFIG_CRYPTO_BLKCIPHER=y 1552CONFIG_CRYPTO_BLKCIPHER=y
1553CONFIG_CRYPTO_BLKCIPHER2=y
1506CONFIG_CRYPTO_HASH=y 1554CONFIG_CRYPTO_HASH=y
1507CONFIG_CRYPTO_RNG=y 1555CONFIG_CRYPTO_HASH2=y
1556CONFIG_CRYPTO_RNG2=y
1508CONFIG_CRYPTO_MANAGER=y 1557CONFIG_CRYPTO_MANAGER=y
1558CONFIG_CRYPTO_MANAGER2=y
1509# CONFIG_CRYPTO_GF128MUL is not set 1559# CONFIG_CRYPTO_GF128MUL is not set
1510# CONFIG_CRYPTO_NULL is not set 1560# CONFIG_CRYPTO_NULL is not set
1511# CONFIG_CRYPTO_CRYPTD is not set 1561# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index f80b1ca43afb..38712e861c46 100644
--- a/arch/powerpc/configs/mpc7448_hpc2_defconfig
+++ b/arch/powerpc/configs/mpc7448_hpc2_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:40 2008 4# Mon Jan 26 15:35:33 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -73,12 +73,12 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 74# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 75CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 76CONFIG_GROUP_SCHED=y
78# CONFIG_FAIR_GROUP_SCHED is not set 77# CONFIG_FAIR_GROUP_SCHED is not set
79# CONFIG_RT_GROUP_SCHED is not set 78# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 79CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 80# CONFIG_CGROUP_SCHED is not set
81# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 83CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
@@ -112,7 +112,6 @@ CONFIG_SLUB_DEBUG=y
112CONFIG_SLUB=y 112CONFIG_SLUB=y
113# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 117CONFIG_HAVE_IOREMAP_PROT=y
@@ -122,13 +121,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set
126CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
127# CONFIG_MODULES is not set 125# CONFIG_MODULES is not set
128CONFIG_BLOCK=y 126CONFIG_BLOCK=y
129CONFIG_LBD=y 127CONFIG_LBD=y
130# CONFIG_BLK_DEV_IO_TRACE is not set 128# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 129# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 130# CONFIG_BLK_DEV_INTEGRITY is not set
134 131
@@ -145,6 +142,10 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 143CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y 144CONFIG_CLASSIC_RCU=y
145# CONFIG_TREE_RCU is not set
146# CONFIG_PREEMPT_RCU is not set
147# CONFIG_TREE_RCU_TRACE is not set
148# CONFIG_PREEMPT_RCU_TRACE is not set
148# CONFIG_FREEZER is not set 149# CONFIG_FREEZER is not set
149 150
150# 151#
@@ -184,6 +185,7 @@ CONFIG_MPIC_WEIRD=y
184# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
185# CONFIG_TAU is not set 186# CONFIG_TAU is not set
186# CONFIG_FSL_ULI1575 is not set 187# CONFIG_FSL_ULI1575 is not set
188# CONFIG_SIMPLE_GPIO is not set
187 189
188# 190#
189# Kernel options 191# Kernel options
@@ -211,6 +213,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
213# CONFIG_KEXEC is not set 215# CONFIG_KEXEC is not set
216# CONFIG_CRASH_DUMP is not set
214CONFIG_ARCH_FLATMEM_ENABLE=y 217CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 218CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_SELECT_MEMORY_MODEL=y 219CONFIG_SELECT_MEMORY_MODEL=y
@@ -222,12 +225,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
222CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 227CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set 228# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 231CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y 232CONFIG_UNEVICTABLE_LRU=y
233CONFIG_PPC_4K_PAGES=y
234# CONFIG_PPC_16K_PAGES is not set
235# CONFIG_PPC_64K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
@@ -249,6 +254,7 @@ CONFIG_PCI_SYSCALL=y
249CONFIG_ARCH_SUPPORTS_MSI=y 254CONFIG_ARCH_SUPPORTS_MSI=y
250# CONFIG_PCI_MSI is not set 255# CONFIG_PCI_MSI is not set
251# CONFIG_PCI_LEGACY is not set 256# CONFIG_PCI_LEGACY is not set
257# CONFIG_PCI_STUB is not set
252# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
253# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
254# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -271,6 +277,7 @@ CONFIG_NET=y
271# 277#
272# Networking options 278# Networking options
273# 279#
280CONFIG_COMPAT_NET_DEV_OPS=y
274CONFIG_PACKET=y 281CONFIG_PACKET=y
275# CONFIG_PACKET_MMAP is not set 282# CONFIG_PACKET_MMAP is not set
276CONFIG_UNIX=y 283CONFIG_UNIX=y
@@ -327,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_ECONET is not set 334# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 335# CONFIG_WAN_ROUTER is not set
329# CONFIG_NET_SCHED is not set 336# CONFIG_NET_SCHED is not set
337# CONFIG_DCB is not set
330 338
331# 339#
332# Network testing 340# Network testing
@@ -342,8 +350,9 @@ CONFIG_WIRELESS=y
342# CONFIG_CFG80211 is not set 350# CONFIG_CFG80211 is not set
343CONFIG_WIRELESS_OLD_REGULATORY=y 351CONFIG_WIRELESS_OLD_REGULATORY=y
344# CONFIG_WIRELESS_EXT is not set 352# CONFIG_WIRELESS_EXT is not set
353# CONFIG_LIB80211 is not set
345# CONFIG_MAC80211 is not set 354# CONFIG_MAC80211 is not set
346# CONFIG_IEEE80211 is not set 355# CONFIG_WIMAX is not set
347# CONFIG_RFKILL is not set 356# CONFIG_RFKILL is not set
348# CONFIG_NET_9P is not set 357# CONFIG_NET_9P is not set
349 358
@@ -388,6 +397,7 @@ CONFIG_MISC_DEVICES=y
388# CONFIG_TIFM_CORE is not set 397# CONFIG_TIFM_CORE is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 398# CONFIG_ENCLOSURE_SERVICES is not set
390# CONFIG_HP_ILO is not set 399# CONFIG_HP_ILO is not set
400# CONFIG_C2PORT is not set
391CONFIG_HAVE_IDE=y 401CONFIG_HAVE_IDE=y
392# CONFIG_IDE is not set 402# CONFIG_IDE is not set
393 403
@@ -429,6 +439,7 @@ CONFIG_BLK_DEV_SD=y
429# CONFIG_SCSI_SRP_ATTRS is not set 439# CONFIG_SCSI_SRP_ATTRS is not set
430CONFIG_SCSI_LOWLEVEL=y 440CONFIG_SCSI_LOWLEVEL=y
431# CONFIG_ISCSI_TCP is not set 441# CONFIG_ISCSI_TCP is not set
442# CONFIG_SCSI_CXGB3_ISCSI is not set
432# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 443# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
433# CONFIG_SCSI_3W_9XXX is not set 444# CONFIG_SCSI_3W_9XXX is not set
434# CONFIG_SCSI_ACARD is not set 445# CONFIG_SCSI_ACARD is not set
@@ -445,6 +456,8 @@ CONFIG_SCSI_LOWLEVEL=y
445# CONFIG_MEGARAID_SAS is not set 456# CONFIG_MEGARAID_SAS is not set
446# CONFIG_SCSI_HPTIOP is not set 457# CONFIG_SCSI_HPTIOP is not set
447# CONFIG_SCSI_BUSLOGIC is not set 458# CONFIG_SCSI_BUSLOGIC is not set
459# CONFIG_LIBFC is not set
460# CONFIG_FCOE is not set
448# CONFIG_SCSI_DMX3191D is not set 461# CONFIG_SCSI_DMX3191D is not set
449# CONFIG_SCSI_EATA is not set 462# CONFIG_SCSI_EATA is not set
450# CONFIG_SCSI_FUTURE_DOMAIN is not set 463# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -563,6 +576,9 @@ CONFIG_PHYLIB=y
563# CONFIG_BROADCOM_PHY is not set 576# CONFIG_BROADCOM_PHY is not set
564# CONFIG_ICPLUS_PHY is not set 577# CONFIG_ICPLUS_PHY is not set
565# CONFIG_REALTEK_PHY is not set 578# CONFIG_REALTEK_PHY is not set
579# CONFIG_NATIONAL_PHY is not set
580# CONFIG_STE10XP is not set
581# CONFIG_LSI_ET1011C_PHY is not set
566# CONFIG_FIXED_PHY is not set 582# CONFIG_FIXED_PHY is not set
567# CONFIG_MDIO_BITBANG is not set 583# CONFIG_MDIO_BITBANG is not set
568CONFIG_NET_ETHERNET=y 584CONFIG_NET_ETHERNET=y
@@ -586,7 +602,6 @@ CONFIG_NET_PCI=y
586# CONFIG_ADAPTEC_STARFIRE is not set 602# CONFIG_ADAPTEC_STARFIRE is not set
587# CONFIG_B44 is not set 603# CONFIG_B44 is not set
588# CONFIG_FORCEDETH is not set 604# CONFIG_FORCEDETH is not set
589# CONFIG_EEPRO100 is not set
590CONFIG_E100=y 605CONFIG_E100=y
591# CONFIG_FEALNX is not set 606# CONFIG_FEALNX is not set
592# CONFIG_NATSEMI is not set 607# CONFIG_NATSEMI is not set
@@ -600,6 +615,7 @@ CONFIG_8139TOO=y
600# CONFIG_R6040 is not set 615# CONFIG_R6040 is not set
601# CONFIG_SIS900 is not set 616# CONFIG_SIS900 is not set
602# CONFIG_EPIC100 is not set 617# CONFIG_EPIC100 is not set
618# CONFIG_SMSC9420 is not set
603# CONFIG_SUNDANCE is not set 619# CONFIG_SUNDANCE is not set
604# CONFIG_TLAN is not set 620# CONFIG_TLAN is not set
605# CONFIG_VIA_RHINE is not set 621# CONFIG_VIA_RHINE is not set
@@ -630,6 +646,7 @@ CONFIG_TSI108_ETH=y
630# CONFIG_JME is not set 646# CONFIG_JME is not set
631CONFIG_NETDEV_10000=y 647CONFIG_NETDEV_10000=y
632# CONFIG_CHELSIO_T1 is not set 648# CONFIG_CHELSIO_T1 is not set
649CONFIG_CHELSIO_T3_DEPENDS=y
633# CONFIG_CHELSIO_T3 is not set 650# CONFIG_CHELSIO_T3 is not set
634# CONFIG_ENIC is not set 651# CONFIG_ENIC is not set
635# CONFIG_IXGBE is not set 652# CONFIG_IXGBE is not set
@@ -652,6 +669,10 @@ CONFIG_NETDEV_10000=y
652# CONFIG_WLAN_PRE80211 is not set 669# CONFIG_WLAN_PRE80211 is not set
653# CONFIG_WLAN_80211 is not set 670# CONFIG_WLAN_80211 is not set
654# CONFIG_IWLWIFI_LEDS is not set 671# CONFIG_IWLWIFI_LEDS is not set
672
673#
674# Enable WiMAX (Networking options) to see the WiMAX drivers
675#
655# CONFIG_WAN is not set 676# CONFIG_WAN is not set
656# CONFIG_FDDI is not set 677# CONFIG_FDDI is not set
657# CONFIG_HIPPI is not set 678# CONFIG_HIPPI is not set
@@ -722,8 +743,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
722# CONFIG_SERIAL_JSM is not set 743# CONFIG_SERIAL_JSM is not set
723# CONFIG_SERIAL_OF_PLATFORM is not set 744# CONFIG_SERIAL_OF_PLATFORM is not set
724CONFIG_UNIX98_PTYS=y 745CONFIG_UNIX98_PTYS=y
746# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
725CONFIG_LEGACY_PTYS=y 747CONFIG_LEGACY_PTYS=y
726CONFIG_LEGACY_PTY_COUNT=256 748CONFIG_LEGACY_PTY_COUNT=256
749# CONFIG_HVC_UDBG is not set
727# CONFIG_IPMI_HANDLER is not set 750# CONFIG_IPMI_HANDLER is not set
728# CONFIG_HW_RANDOM is not set 751# CONFIG_HW_RANDOM is not set
729# CONFIG_NVRAM is not set 752# CONFIG_NVRAM is not set
@@ -760,11 +783,11 @@ CONFIG_HWMON=y
760# CONFIG_THERMAL is not set 783# CONFIG_THERMAL is not set
761# CONFIG_THERMAL_HWMON is not set 784# CONFIG_THERMAL_HWMON is not set
762# CONFIG_WATCHDOG is not set 785# CONFIG_WATCHDOG is not set
786CONFIG_SSB_POSSIBLE=y
763 787
764# 788#
765# Sonics Silicon Backplane 789# Sonics Silicon Backplane
766# 790#
767CONFIG_SSB_POSSIBLE=y
768# CONFIG_SSB is not set 791# CONFIG_SSB is not set
769 792
770# 793#
@@ -774,14 +797,7 @@ CONFIG_SSB_POSSIBLE=y
774# CONFIG_MFD_SM501 is not set 797# CONFIG_MFD_SM501 is not set
775# CONFIG_HTC_PASIC3 is not set 798# CONFIG_HTC_PASIC3 is not set
776# CONFIG_MFD_TMIO is not set 799# CONFIG_MFD_TMIO is not set
777
778#
779# Voltage and Current regulators
780#
781# CONFIG_REGULATOR is not set 800# CONFIG_REGULATOR is not set
782# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
783# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
784# CONFIG_REGULATOR_BQ24022 is not set
785 801
786# 802#
787# Multimedia devices 803# Multimedia devices
@@ -837,9 +853,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
837# 853#
838 854
839# 855#
840# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 856# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
841# 857#
842# CONFIG_USB_GADGET is not set 858# CONFIG_USB_GADGET is not set
859
860#
861# OTG and related infrastructure
862#
843# CONFIG_UWB is not set 863# CONFIG_UWB is not set
844# CONFIG_MMC is not set 864# CONFIG_MMC is not set
845# CONFIG_MEMSTICK is not set 865# CONFIG_MEMSTICK is not set
@@ -870,7 +890,9 @@ CONFIG_FS_MBCACHE=y
870# CONFIG_FS_POSIX_ACL is not set 890# CONFIG_FS_POSIX_ACL is not set
871CONFIG_FILE_LOCKING=y 891CONFIG_FILE_LOCKING=y
872# CONFIG_XFS_FS is not set 892# CONFIG_XFS_FS is not set
893# CONFIG_GFS2_FS is not set
873# CONFIG_OCFS2_FS is not set 894# CONFIG_OCFS2_FS is not set
895# CONFIG_BTRFS_FS is not set
874CONFIG_DNOTIFY=y 896CONFIG_DNOTIFY=y
875CONFIG_INOTIFY=y 897CONFIG_INOTIFY=y
876CONFIG_INOTIFY_USER=y 898CONFIG_INOTIFY_USER=y
@@ -904,10 +926,7 @@ CONFIG_TMPFS=y
904# CONFIG_TMPFS_POSIX_ACL is not set 926# CONFIG_TMPFS_POSIX_ACL is not set
905# CONFIG_HUGETLB_PAGE is not set 927# CONFIG_HUGETLB_PAGE is not set
906# CONFIG_CONFIGFS_FS is not set 928# CONFIG_CONFIGFS_FS is not set
907 929CONFIG_MISC_FILESYSTEMS=y
908#
909# Miscellaneous filesystems
910#
911# CONFIG_ADFS_FS is not set 930# CONFIG_ADFS_FS is not set
912# CONFIG_AFFS_FS is not set 931# CONFIG_AFFS_FS is not set
913# CONFIG_HFS_FS is not set 932# CONFIG_HFS_FS is not set
@@ -916,6 +935,7 @@ CONFIG_TMPFS=y
916# CONFIG_BFS_FS is not set 935# CONFIG_BFS_FS is not set
917# CONFIG_EFS_FS is not set 936# CONFIG_EFS_FS is not set
918# CONFIG_CRAMFS is not set 937# CONFIG_CRAMFS is not set
938# CONFIG_SQUASHFS is not set
919# CONFIG_VXFS_FS is not set 939# CONFIG_VXFS_FS is not set
920# CONFIG_MINIX_FS is not set 940# CONFIG_MINIX_FS is not set
921# CONFIG_OMFS_FS is not set 941# CONFIG_OMFS_FS is not set
@@ -970,6 +990,7 @@ CONFIG_MSDOS_PARTITION=y
970# Library routines 990# Library routines
971# 991#
972CONFIG_BITREVERSE=y 992CONFIG_BITREVERSE=y
993CONFIG_GENERIC_FIND_LAST_BIT=y
973# CONFIG_CRC_CCITT is not set 994# CONFIG_CRC_CCITT is not set
974# CONFIG_CRC16 is not set 995# CONFIG_CRC16 is not set
975CONFIG_CRC_T10DIF=y 996CONFIG_CRC_T10DIF=y
@@ -1003,6 +1024,8 @@ CONFIG_FRAME_WARN=1024
1003# CONFIG_LATENCYTOP is not set 1024# CONFIG_LATENCYTOP is not set
1004CONFIG_SYSCTL_SYSCALL_CHECK=y 1025CONFIG_SYSCTL_SYSCALL_CHECK=y
1005CONFIG_HAVE_FUNCTION_TRACER=y 1026CONFIG_HAVE_FUNCTION_TRACER=y
1027CONFIG_HAVE_DYNAMIC_FTRACE=y
1028CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1006 1029
1007# 1030#
1008# Tracers 1031# Tracers
@@ -1010,6 +1033,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1010# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1033# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1011# CONFIG_SAMPLES is not set 1034# CONFIG_SAMPLES is not set
1012CONFIG_HAVE_ARCH_KGDB=y 1035CONFIG_HAVE_ARCH_KGDB=y
1036CONFIG_PRINT_STACK_DEPTH=64
1013# CONFIG_IRQSTACKS is not set 1037# CONFIG_IRQSTACKS is not set
1014# CONFIG_BOOTX_TEXT is not set 1038# CONFIG_BOOTX_TEXT is not set
1015# CONFIG_PPC_EARLY_DEBUG is not set 1039# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1028,6 +1052,7 @@ CONFIG_CRYPTO=y
1028# 1052#
1029# CONFIG_CRYPTO_FIPS is not set 1053# CONFIG_CRYPTO_FIPS is not set
1030# CONFIG_CRYPTO_MANAGER is not set 1054# CONFIG_CRYPTO_MANAGER is not set
1055# CONFIG_CRYPTO_MANAGER2 is not set
1031# CONFIG_CRYPTO_GF128MUL is not set 1056# CONFIG_CRYPTO_GF128MUL is not set
1032# CONFIG_CRYPTO_NULL is not set 1057# CONFIG_CRYPTO_NULL is not set
1033# CONFIG_CRYPTO_CRYPTD is not set 1058# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index c8f5dec1b696..d85a43cb821f 100644
--- a/arch/powerpc/configs/mpc8272_ads_defconfig
+++ b/arch/powerpc/configs/mpc8272_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:41 2008 4# Mon Jan 26 15:35:35 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -86,6 +86,7 @@ CONFIG_EMBEDDED=y
86CONFIG_SYSCTL_SYSCALL=y 86CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 87CONFIG_KALLSYMS=y
88CONFIG_KALLSYMS_ALL=y 88CONFIG_KALLSYMS_ALL=y
89CONFIG_KALLSYMS_STRIP_GENERATED=y
89# CONFIG_KALLSYMS_EXTRA_PASS is not set 90# CONFIG_KALLSYMS_EXTRA_PASS is not set
90CONFIG_HOTPLUG=y 91CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 92CONFIG_PRINTK=y
@@ -108,7 +109,6 @@ CONFIG_SLUB_DEBUG=y
108CONFIG_SLUB=y 109CONFIG_SLUB=y
109# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 114CONFIG_HAVE_IOREMAP_PROT=y
@@ -119,13 +119,11 @@ CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
122# CONFIG_TINY_SHMEM is not set
123CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
124# CONFIG_MODULES is not set 123# CONFIG_MODULES is not set
125CONFIG_BLOCK=y 124CONFIG_BLOCK=y
126# CONFIG_LBD is not set 125# CONFIG_LBD is not set
127# CONFIG_BLK_DEV_IO_TRACE is not set 126# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_LSF is not set
129# CONFIG_BLK_DEV_INTEGRITY is not set 127# CONFIG_BLK_DEV_INTEGRITY is not set
130 128
131# 129#
@@ -141,6 +139,10 @@ CONFIG_DEFAULT_AS=y
141# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
142CONFIG_DEFAULT_IOSCHED="anticipatory" 140CONFIG_DEFAULT_IOSCHED="anticipatory"
143CONFIG_CLASSIC_RCU=y 141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
144# CONFIG_FREEZER is not set 146# CONFIG_FREEZER is not set
145 147
146# 148#
@@ -183,6 +185,7 @@ CONFIG_PQ2_ADS_PCI_PIC=y
183CONFIG_CPM2=y 185CONFIG_CPM2=y
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
185CONFIG_CPM=y 187CONFIG_CPM=y
188# CONFIG_SIMPLE_GPIO is not set
186 189
187# 190#
188# Kernel options 191# Kernel options
@@ -209,6 +212,7 @@ CONFIG_BINFMT_MISC=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
210CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
215# CONFIG_CRASH_DUMP is not set
212CONFIG_ARCH_FLATMEM_ENABLE=y 216CONFIG_ARCH_FLATMEM_ENABLE=y
213CONFIG_ARCH_POPULATES_NODE_MAP=y 217CONFIG_ARCH_POPULATES_NODE_MAP=y
214CONFIG_FLATMEM=y 218CONFIG_FLATMEM=y
@@ -216,12 +220,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216CONFIG_PAGEFLAGS_EXTENDED=y 220CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
218CONFIG_MIGRATION=y 222CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set
220# CONFIG_PHYS_ADDR_T_64BIT is not set 223# CONFIG_PHYS_ADDR_T_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 224CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 225CONFIG_BOUNCE=y
223CONFIG_VIRT_TO_BUS=y 226CONFIG_VIRT_TO_BUS=y
224CONFIG_UNEVICTABLE_LRU=y 227CONFIG_UNEVICTABLE_LRU=y
228CONFIG_PPC_4K_PAGES=y
229# CONFIG_PPC_16K_PAGES is not set
230# CONFIG_PPC_64K_PAGES is not set
225CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
226CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
@@ -246,6 +252,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
246# CONFIG_PCI_MSI is not set 252# CONFIG_PCI_MSI is not set
247# CONFIG_PCI_LEGACY is not set 253# CONFIG_PCI_LEGACY is not set
248# CONFIG_PCI_DEBUG is not set 254# CONFIG_PCI_DEBUG is not set
255# CONFIG_PCI_STUB is not set
249# CONFIG_PCCARD is not set 256# CONFIG_PCCARD is not set
250# CONFIG_HOTPLUG_PCI is not set 257# CONFIG_HOTPLUG_PCI is not set
251# CONFIG_HAS_RAPIDIO is not set 258# CONFIG_HAS_RAPIDIO is not set
@@ -268,6 +275,7 @@ CONFIG_NET=y
268# 275#
269# Networking options 276# Networking options
270# 277#
278CONFIG_COMPAT_NET_DEV_OPS=y
271CONFIG_PACKET=y 279CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -349,6 +357,7 @@ CONFIG_NETFILTER_ADVANCED=y
349# CONFIG_IPX is not set 357# CONFIG_IPX is not set
350# CONFIG_ATALK is not set 358# CONFIG_ATALK is not set
351# CONFIG_NET_SCHED is not set 359# CONFIG_NET_SCHED is not set
360# CONFIG_DCB is not set
352 361
353# 362#
354# Network testing 363# Network testing
@@ -363,8 +372,9 @@ CONFIG_WIRELESS=y
363# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
364CONFIG_WIRELESS_OLD_REGULATORY=y 373CONFIG_WIRELESS_OLD_REGULATORY=y
365# CONFIG_WIRELESS_EXT is not set 374# CONFIG_WIRELESS_EXT is not set
375# CONFIG_LIB80211 is not set
366# CONFIG_MAC80211 is not set 376# CONFIG_MAC80211 is not set
367# CONFIG_IEEE80211 is not set 377# CONFIG_WIMAX is not set
368# CONFIG_RFKILL is not set 378# CONFIG_RFKILL is not set
369 379
370# 380#
@@ -459,6 +469,12 @@ CONFIG_MTD_PHYSMAP_OF=y
459# CONFIG_MTD_ONENAND is not set 469# CONFIG_MTD_ONENAND is not set
460 470
461# 471#
472# LPDDR flash memory drivers
473#
474# CONFIG_MTD_LPDDR is not set
475# CONFIG_MTD_QINFO_PROBE is not set
476
477#
462# UBI - Unsorted block images 478# UBI - Unsorted block images
463# 479#
464# CONFIG_MTD_UBI is not set 480# CONFIG_MTD_UBI is not set
@@ -526,9 +542,12 @@ CONFIG_DAVICOM_PHY=y
526# CONFIG_BROADCOM_PHY is not set 542# CONFIG_BROADCOM_PHY is not set
527# CONFIG_ICPLUS_PHY is not set 543# CONFIG_ICPLUS_PHY is not set
528# CONFIG_REALTEK_PHY is not set 544# CONFIG_REALTEK_PHY is not set
545# CONFIG_NATIONAL_PHY is not set
546# CONFIG_STE10XP is not set
547# CONFIG_LSI_ET1011C_PHY is not set
529# CONFIG_FIXED_PHY is not set 548# CONFIG_FIXED_PHY is not set
530CONFIG_MDIO_BITBANG=y 549CONFIG_MDIO_BITBANG=y
531# CONFIG_MDIO_OF_GPIO is not set 550# CONFIG_MDIO_GPIO is not set
532CONFIG_NET_ETHERNET=y 551CONFIG_NET_ETHERNET=y
533CONFIG_MII=y 552CONFIG_MII=y
534# CONFIG_HAPPYMEAL is not set 553# CONFIG_HAPPYMEAL is not set
@@ -573,6 +592,7 @@ CONFIG_NETDEV_1000=y
573# CONFIG_JME is not set 592# CONFIG_JME is not set
574CONFIG_NETDEV_10000=y 593CONFIG_NETDEV_10000=y
575# CONFIG_CHELSIO_T1 is not set 594# CONFIG_CHELSIO_T1 is not set
595CONFIG_CHELSIO_T3_DEPENDS=y
576# CONFIG_CHELSIO_T3 is not set 596# CONFIG_CHELSIO_T3 is not set
577# CONFIG_ENIC is not set 597# CONFIG_ENIC is not set
578# CONFIG_IXGBE is not set 598# CONFIG_IXGBE is not set
@@ -595,6 +615,10 @@ CONFIG_NETDEV_10000=y
595# CONFIG_WLAN_PRE80211 is not set 615# CONFIG_WLAN_PRE80211 is not set
596# CONFIG_WLAN_80211 is not set 616# CONFIG_WLAN_80211 is not set
597# CONFIG_IWLWIFI_LEDS is not set 617# CONFIG_IWLWIFI_LEDS is not set
618
619#
620# Enable WiMAX (Networking options) to see the WiMAX drivers
621#
598# CONFIG_WAN is not set 622# CONFIG_WAN is not set
599# CONFIG_FDDI is not set 623# CONFIG_FDDI is not set
600CONFIG_PPP=y 624CONFIG_PPP=y
@@ -690,6 +714,7 @@ CONFIG_SERIAL_CPM=y
690CONFIG_SERIAL_CPM_CONSOLE=y 714CONFIG_SERIAL_CPM_CONSOLE=y
691# CONFIG_SERIAL_JSM is not set 715# CONFIG_SERIAL_JSM is not set
692CONFIG_UNIX98_PTYS=y 716CONFIG_UNIX98_PTYS=y
717# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
693CONFIG_LEGACY_PTYS=y 718CONFIG_LEGACY_PTYS=y
694CONFIG_LEGACY_PTY_COUNT=256 719CONFIG_LEGACY_PTY_COUNT=256
695# CONFIG_IPMI_HANDLER is not set 720# CONFIG_IPMI_HANDLER is not set
@@ -708,6 +733,11 @@ CONFIG_GPIOLIB=y
708# CONFIG_DEBUG_GPIO is not set 733# CONFIG_DEBUG_GPIO is not set
709 734
710# 735#
736# Memory mapped GPIO expanders:
737#
738# CONFIG_GPIO_XILINX is not set
739
740#
711# I2C GPIO expanders: 741# I2C GPIO expanders:
712# 742#
713 743
@@ -725,11 +755,11 @@ CONFIG_GPIOLIB=y
725# CONFIG_THERMAL is not set 755# CONFIG_THERMAL is not set
726# CONFIG_THERMAL_HWMON is not set 756# CONFIG_THERMAL_HWMON is not set
727# CONFIG_WATCHDOG is not set 757# CONFIG_WATCHDOG is not set
758CONFIG_SSB_POSSIBLE=y
728 759
729# 760#
730# Sonics Silicon Backplane 761# Sonics Silicon Backplane
731# 762#
732CONFIG_SSB_POSSIBLE=y
733# CONFIG_SSB is not set 763# CONFIG_SSB is not set
734 764
735# 765#
@@ -739,14 +769,7 @@ CONFIG_SSB_POSSIBLE=y
739# CONFIG_MFD_SM501 is not set 769# CONFIG_MFD_SM501 is not set
740# CONFIG_HTC_PASIC3 is not set 770# CONFIG_HTC_PASIC3 is not set
741# CONFIG_MFD_TMIO is not set 771# CONFIG_MFD_TMIO is not set
742
743#
744# Voltage and Current regulators
745#
746# CONFIG_REGULATOR is not set 772# CONFIG_REGULATOR is not set
747# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
748# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
749# CONFIG_REGULATOR_BQ24022 is not set
750 773
751# 774#
752# Multimedia devices 775# Multimedia devices
@@ -843,13 +866,11 @@ CONFIG_TMPFS=y
843# CONFIG_TMPFS_POSIX_ACL is not set 866# CONFIG_TMPFS_POSIX_ACL is not set
844# CONFIG_HUGETLB_PAGE is not set 867# CONFIG_HUGETLB_PAGE is not set
845# CONFIG_CONFIGFS_FS is not set 868# CONFIG_CONFIGFS_FS is not set
846 869CONFIG_MISC_FILESYSTEMS=y
847#
848# Miscellaneous filesystems
849#
850# CONFIG_HFSPLUS_FS is not set 870# CONFIG_HFSPLUS_FS is not set
851# CONFIG_JFFS2_FS is not set 871# CONFIG_JFFS2_FS is not set
852CONFIG_CRAMFS=y 872CONFIG_CRAMFS=y
873# CONFIG_SQUASHFS is not set
853# CONFIG_VXFS_FS is not set 874# CONFIG_VXFS_FS is not set
854# CONFIG_MINIX_FS is not set 875# CONFIG_MINIX_FS is not set
855# CONFIG_OMFS_FS is not set 876# CONFIG_OMFS_FS is not set
@@ -940,6 +961,7 @@ CONFIG_NLS_UTF8=y
940# Library routines 961# Library routines
941# 962#
942CONFIG_BITREVERSE=y 963CONFIG_BITREVERSE=y
964CONFIG_GENERIC_FIND_LAST_BIT=y
943CONFIG_CRC_CCITT=y 965CONFIG_CRC_CCITT=y
944# CONFIG_CRC16 is not set 966# CONFIG_CRC16 is not set
945# CONFIG_CRC_T10DIF is not set 967# CONFIG_CRC_T10DIF is not set
@@ -991,6 +1013,7 @@ CONFIG_DEBUG_INFO=y
991# CONFIG_DEBUG_MEMORY_INIT is not set 1013# CONFIG_DEBUG_MEMORY_INIT is not set
992# CONFIG_DEBUG_LIST is not set 1014# CONFIG_DEBUG_LIST is not set
993# CONFIG_DEBUG_SG is not set 1015# CONFIG_DEBUG_SG is not set
1016# CONFIG_DEBUG_NOTIFIERS is not set
994# CONFIG_BOOT_PRINTK_DELAY is not set 1017# CONFIG_BOOT_PRINTK_DELAY is not set
995# CONFIG_RCU_TORTURE_TEST is not set 1018# CONFIG_RCU_TORTURE_TEST is not set
996# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1019# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1000,6 +1023,8 @@ CONFIG_DEBUG_INFO=y
1000# CONFIG_LATENCYTOP is not set 1023# CONFIG_LATENCYTOP is not set
1001CONFIG_SYSCTL_SYSCALL_CHECK=y 1024CONFIG_SYSCTL_SYSCALL_CHECK=y
1002CONFIG_HAVE_FUNCTION_TRACER=y 1025CONFIG_HAVE_FUNCTION_TRACER=y
1026CONFIG_HAVE_DYNAMIC_FTRACE=y
1027CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1003 1028
1004# 1029#
1005# Tracers 1030# Tracers
@@ -1008,10 +1033,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1008# CONFIG_SCHED_TRACER is not set 1033# CONFIG_SCHED_TRACER is not set
1009# CONFIG_CONTEXT_SWITCH_TRACER is not set 1034# CONFIG_CONTEXT_SWITCH_TRACER is not set
1010# CONFIG_BOOT_TRACER is not set 1035# CONFIG_BOOT_TRACER is not set
1036# CONFIG_TRACE_BRANCH_PROFILING is not set
1011# CONFIG_STACK_TRACER is not set 1037# CONFIG_STACK_TRACER is not set
1012# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1038# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1013# CONFIG_SAMPLES is not set 1039# CONFIG_SAMPLES is not set
1014CONFIG_HAVE_ARCH_KGDB=y 1040CONFIG_HAVE_ARCH_KGDB=y
1041CONFIG_PRINT_STACK_DEPTH=64
1015# CONFIG_DEBUG_STACKOVERFLOW is not set 1042# CONFIG_DEBUG_STACKOVERFLOW is not set
1016# CONFIG_DEBUG_STACK_USAGE is not set 1043# CONFIG_DEBUG_STACK_USAGE is not set
1017# CONFIG_DEBUG_PAGEALLOC is not set 1044# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1038,11 +1065,15 @@ CONFIG_CRYPTO=y
1038# 1065#
1039# CONFIG_CRYPTO_FIPS is not set 1066# CONFIG_CRYPTO_FIPS is not set
1040CONFIG_CRYPTO_ALGAPI=y 1067CONFIG_CRYPTO_ALGAPI=y
1041CONFIG_CRYPTO_AEAD=y 1068CONFIG_CRYPTO_ALGAPI2=y
1069CONFIG_CRYPTO_AEAD2=y
1042CONFIG_CRYPTO_BLKCIPHER=y 1070CONFIG_CRYPTO_BLKCIPHER=y
1071CONFIG_CRYPTO_BLKCIPHER2=y
1043CONFIG_CRYPTO_HASH=y 1072CONFIG_CRYPTO_HASH=y
1044CONFIG_CRYPTO_RNG=y 1073CONFIG_CRYPTO_HASH2=y
1074CONFIG_CRYPTO_RNG2=y
1045CONFIG_CRYPTO_MANAGER=y 1075CONFIG_CRYPTO_MANAGER=y
1076CONFIG_CRYPTO_MANAGER2=y
1046# CONFIG_CRYPTO_NULL is not set 1077# CONFIG_CRYPTO_NULL is not set
1047# CONFIG_CRYPTO_CRYPTD is not set 1078# CONFIG_CRYPTO_CRYPTD is not set
1048# CONFIG_CRYPTO_AUTHENC is not set 1079# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index d582014b0a38..45f03cad8db6 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:42 2008 4# Mon Jan 26 15:35:36 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_GPIO=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -77,12 +77,12 @@ CONFIG_SYSVIPC_SYSCTL=y
77# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
80# CONFIG_CGROUPS is not set
81CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
82CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
83# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
84CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
85# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
86CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
87CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
88# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -115,7 +115,6 @@ CONFIG_SLAB=y
115# CONFIG_SLUB is not set 115# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,7 +125,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set
130CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
131CONFIG_MODULES=y 129CONFIG_MODULES=y
132# CONFIG_MODULE_FORCE_LOAD is not set 130# CONFIG_MODULE_FORCE_LOAD is not set
@@ -134,11 +132,9 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
135# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
136# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_KMOD=y
138CONFIG_BLOCK=y 135CONFIG_BLOCK=y
139# CONFIG_LBD is not set 136# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_LSF is not set
142# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
144 140
@@ -155,6 +151,10 @@ CONFIG_DEFAULT_AS=y
155# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
157CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 158# CONFIG_FREEZER is not set
159 159
160# 160#
@@ -205,6 +205,8 @@ CONFIG_QUICC_ENGINE=y
205CONFIG_QE_GPIO=y 205CONFIG_QE_GPIO=y
206# CONFIG_FSL_ULI1575 is not set 206# CONFIG_FSL_ULI1575 is not set
207# CONFIG_MPC8xxx_GPIO is not set 207# CONFIG_MPC8xxx_GPIO is not set
208# CONFIG_SIMPLE_GPIO is not set
209# CONFIG_MCU_MPC8349EMITX is not set
208 210
209# 211#
210# Kernel options 212# Kernel options
@@ -232,6 +234,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
232CONFIG_ARCH_HAS_WALK_MEMORY=y 234CONFIG_ARCH_HAS_WALK_MEMORY=y
233CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 235CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
234# CONFIG_KEXEC is not set 236# CONFIG_KEXEC is not set
237# CONFIG_CRASH_DUMP is not set
235CONFIG_ARCH_FLATMEM_ENABLE=y 238CONFIG_ARCH_FLATMEM_ENABLE=y
236CONFIG_ARCH_POPULATES_NODE_MAP=y 239CONFIG_ARCH_POPULATES_NODE_MAP=y
237CONFIG_SELECT_MEMORY_MODEL=y 240CONFIG_SELECT_MEMORY_MODEL=y
@@ -243,12 +246,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
243CONFIG_PAGEFLAGS_EXTENDED=y 246CONFIG_PAGEFLAGS_EXTENDED=y
244CONFIG_SPLIT_PTLOCK_CPUS=4 247CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y 248CONFIG_MIGRATION=y
246# CONFIG_RESOURCES_64BIT is not set
247# CONFIG_PHYS_ADDR_T_64BIT is not set 249# CONFIG_PHYS_ADDR_T_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1 250CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 251CONFIG_BOUNCE=y
250CONFIG_VIRT_TO_BUS=y 252CONFIG_VIRT_TO_BUS=y
251CONFIG_UNEVICTABLE_LRU=y 253CONFIG_UNEVICTABLE_LRU=y
254CONFIG_PPC_4K_PAGES=y
255# CONFIG_PPC_16K_PAGES is not set
256# CONFIG_PPC_64K_PAGES is not set
252CONFIG_FORCE_MAX_ZONEORDER=11 257CONFIG_FORCE_MAX_ZONEORDER=11
253CONFIG_PROC_DEVICETREE=y 258CONFIG_PROC_DEVICETREE=y
254# CONFIG_CMDLINE_BOOL is not set 259# CONFIG_CMDLINE_BOOL is not set
@@ -275,6 +280,7 @@ CONFIG_PCI_SYSCALL=y
275CONFIG_ARCH_SUPPORTS_MSI=y 280CONFIG_ARCH_SUPPORTS_MSI=y
276# CONFIG_PCI_MSI is not set 281# CONFIG_PCI_MSI is not set
277# CONFIG_PCI_LEGACY is not set 282# CONFIG_PCI_LEGACY is not set
283# CONFIG_PCI_STUB is not set
278# CONFIG_PCCARD is not set 284# CONFIG_PCCARD is not set
279# CONFIG_HOTPLUG_PCI is not set 285# CONFIG_HOTPLUG_PCI is not set
280# CONFIG_HAS_RAPIDIO is not set 286# CONFIG_HAS_RAPIDIO is not set
@@ -297,6 +303,7 @@ CONFIG_NET=y
297# 303#
298# Networking options 304# Networking options
299# 305#
306CONFIG_COMPAT_NET_DEV_OPS=y
300CONFIG_PACKET=y 307CONFIG_PACKET=y
301# CONFIG_PACKET_MMAP is not set 308# CONFIG_PACKET_MMAP is not set
302CONFIG_UNIX=y 309CONFIG_UNIX=y
@@ -353,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set 362# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set
356 364
357# 365#
358# Network testing 366# Network testing
@@ -368,8 +376,9 @@ CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 377CONFIG_WIRELESS_OLD_REGULATORY=y
370# CONFIG_WIRELESS_EXT is not set 378# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set 380# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set 381# CONFIG_WIMAX is not set
373# CONFIG_RFKILL is not set 382# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 383# CONFIG_NET_9P is not set
375 384
@@ -390,6 +399,7 @@ CONFIG_MTD=y
390# CONFIG_MTD_DEBUG is not set 399# CONFIG_MTD_DEBUG is not set
391# CONFIG_MTD_CONCAT is not set 400# CONFIG_MTD_CONCAT is not set
392CONFIG_MTD_PARTITIONS=y 401CONFIG_MTD_PARTITIONS=y
402# CONFIG_MTD_TESTS is not set
393# CONFIG_MTD_REDBOOT_PARTS is not set 403# CONFIG_MTD_REDBOOT_PARTS is not set
394# CONFIG_MTD_CMDLINE_PARTS is not set 404# CONFIG_MTD_CMDLINE_PARTS is not set
395CONFIG_MTD_OF_PARTS=y 405CONFIG_MTD_OF_PARTS=y
@@ -472,6 +482,12 @@ CONFIG_MTD_NAND_FSL_ELBC=y
472# CONFIG_MTD_ONENAND is not set 482# CONFIG_MTD_ONENAND is not set
473 483
474# 484#
485# LPDDR flash memory drivers
486#
487# CONFIG_MTD_LPDDR is not set
488# CONFIG_MTD_QINFO_PROBE is not set
489
490#
475# UBI - Unsorted block images 491# UBI - Unsorted block images
476# 492#
477# CONFIG_MTD_UBI is not set 493# CONFIG_MTD_UBI is not set
@@ -503,8 +519,10 @@ CONFIG_MISC_DEVICES=y
503# CONFIG_EEPROM_93CX6 is not set 519# CONFIG_EEPROM_93CX6 is not set
504# CONFIG_SGI_IOC4 is not set 520# CONFIG_SGI_IOC4 is not set
505# CONFIG_TIFM_CORE is not set 521# CONFIG_TIFM_CORE is not set
522# CONFIG_ICS932S401 is not set
506# CONFIG_ENCLOSURE_SERVICES is not set 523# CONFIG_ENCLOSURE_SERVICES is not set
507# CONFIG_HP_ILO is not set 524# CONFIG_HP_ILO is not set
525# CONFIG_C2PORT is not set
508CONFIG_HAVE_IDE=y 526CONFIG_HAVE_IDE=y
509# CONFIG_IDE is not set 527# CONFIG_IDE is not set
510 528
@@ -547,6 +565,7 @@ CONFIG_SCSI_WAIT_SCAN=m
547# CONFIG_SCSI_SRP_ATTRS is not set 565# CONFIG_SCSI_SRP_ATTRS is not set
548CONFIG_SCSI_LOWLEVEL=y 566CONFIG_SCSI_LOWLEVEL=y
549# CONFIG_ISCSI_TCP is not set 567# CONFIG_ISCSI_TCP is not set
568# CONFIG_SCSI_CXGB3_ISCSI is not set
550# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 569# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
551# CONFIG_SCSI_3W_9XXX is not set 570# CONFIG_SCSI_3W_9XXX is not set
552# CONFIG_SCSI_ACARD is not set 571# CONFIG_SCSI_ACARD is not set
@@ -563,6 +582,8 @@ CONFIG_SCSI_LOWLEVEL=y
563# CONFIG_MEGARAID_SAS is not set 582# CONFIG_MEGARAID_SAS is not set
564# CONFIG_SCSI_HPTIOP is not set 583# CONFIG_SCSI_HPTIOP is not set
565# CONFIG_SCSI_BUSLOGIC is not set 584# CONFIG_SCSI_BUSLOGIC is not set
585# CONFIG_LIBFC is not set
586# CONFIG_FCOE is not set
566# CONFIG_SCSI_DMX3191D is not set 587# CONFIG_SCSI_DMX3191D is not set
567# CONFIG_SCSI_EATA is not set 588# CONFIG_SCSI_EATA is not set
568# CONFIG_SCSI_FUTURE_DOMAIN is not set 589# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -682,6 +703,9 @@ CONFIG_VITESSE_PHY=y
682# CONFIG_BROADCOM_PHY is not set 703# CONFIG_BROADCOM_PHY is not set
683CONFIG_ICPLUS_PHY=y 704CONFIG_ICPLUS_PHY=y
684# CONFIG_REALTEK_PHY is not set 705# CONFIG_REALTEK_PHY is not set
706# CONFIG_NATIONAL_PHY is not set
707# CONFIG_STE10XP is not set
708# CONFIG_LSI_ET1011C_PHY is not set
685CONFIG_FIXED_PHY=y 709CONFIG_FIXED_PHY=y
686# CONFIG_MDIO_BITBANG is not set 710# CONFIG_MDIO_BITBANG is not set
687CONFIG_NET_ETHERNET=y 711CONFIG_NET_ETHERNET=y
@@ -722,7 +746,6 @@ CONFIG_NETDEV_1000=y
722CONFIG_GIANFAR=y 746CONFIG_GIANFAR=y
723CONFIG_UCC_GETH=y 747CONFIG_UCC_GETH=y
724# CONFIG_UGETH_MAGIC_PACKET is not set 748# CONFIG_UGETH_MAGIC_PACKET is not set
725# CONFIG_UGETH_FILTERING is not set
726# CONFIG_UGETH_TX_ON_DEMAND is not set 749# CONFIG_UGETH_TX_ON_DEMAND is not set
727# CONFIG_MV643XX_ETH is not set 750# CONFIG_MV643XX_ETH is not set
728# CONFIG_QLA3XXX is not set 751# CONFIG_QLA3XXX is not set
@@ -731,6 +754,7 @@ CONFIG_UCC_GETH=y
731# CONFIG_JME is not set 754# CONFIG_JME is not set
732CONFIG_NETDEV_10000=y 755CONFIG_NETDEV_10000=y
733# CONFIG_CHELSIO_T1 is not set 756# CONFIG_CHELSIO_T1 is not set
757CONFIG_CHELSIO_T3_DEPENDS=y
734# CONFIG_CHELSIO_T3 is not set 758# CONFIG_CHELSIO_T3 is not set
735# CONFIG_ENIC is not set 759# CONFIG_ENIC is not set
736# CONFIG_IXGBE is not set 760# CONFIG_IXGBE is not set
@@ -755,6 +779,10 @@ CONFIG_NETDEV_10000=y
755# CONFIG_IWLWIFI_LEDS is not set 779# CONFIG_IWLWIFI_LEDS is not set
756 780
757# 781#
782# Enable WiMAX (Networking options) to see the WiMAX drivers
783#
784
785#
758# USB Network Adapters 786# USB Network Adapters
759# 787#
760# CONFIG_USB_CATC is not set 788# CONFIG_USB_CATC is not set
@@ -833,8 +861,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
833# CONFIG_SERIAL_OF_PLATFORM is not set 861# CONFIG_SERIAL_OF_PLATFORM is not set
834# CONFIG_SERIAL_QE is not set 862# CONFIG_SERIAL_QE is not set
835CONFIG_UNIX98_PTYS=y 863CONFIG_UNIX98_PTYS=y
864# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
836CONFIG_LEGACY_PTYS=y 865CONFIG_LEGACY_PTYS=y
837CONFIG_LEGACY_PTY_COUNT=256 866CONFIG_LEGACY_PTY_COUNT=256
867# CONFIG_HVC_UDBG is not set
838# CONFIG_IPMI_HANDLER is not set 868# CONFIG_IPMI_HANDLER is not set
839CONFIG_HW_RANDOM=y 869CONFIG_HW_RANDOM=y
840# CONFIG_NVRAM is not set 870# CONFIG_NVRAM is not set
@@ -902,16 +932,14 @@ CONFIG_I2C_MPC=y
902# Miscellaneous I2C Chip support 932# Miscellaneous I2C Chip support
903# 933#
904# CONFIG_DS1682 is not set 934# CONFIG_DS1682 is not set
905# CONFIG_AT24 is not set 935# CONFIG_EEPROM_AT24 is not set
906# CONFIG_SENSORS_EEPROM is not set 936# CONFIG_EEPROM_LEGACY is not set
907# CONFIG_SENSORS_PCF8574 is not set 937# CONFIG_SENSORS_PCF8574 is not set
908# CONFIG_PCF8575 is not set 938# CONFIG_PCF8575 is not set
909# CONFIG_SENSORS_PCA9539 is not set 939# CONFIG_SENSORS_PCA9539 is not set
910# CONFIG_SENSORS_PCF8591 is not set 940# CONFIG_SENSORS_PCF8591 is not set
911# CONFIG_TPS65010 is not set
912# CONFIG_SENSORS_MAX6875 is not set 941# CONFIG_SENSORS_MAX6875 is not set
913# CONFIG_SENSORS_TSL2550 is not set 942# CONFIG_SENSORS_TSL2550 is not set
914# CONFIG_MCU_MPC8349EMITX is not set
915# CONFIG_I2C_DEBUG_CORE is not set 943# CONFIG_I2C_DEBUG_CORE is not set
916# CONFIG_I2C_DEBUG_ALGO is not set 944# CONFIG_I2C_DEBUG_ALGO is not set
917# CONFIG_I2C_DEBUG_BUS is not set 945# CONFIG_I2C_DEBUG_BUS is not set
@@ -923,6 +951,11 @@ CONFIG_GPIOLIB=y
923# CONFIG_GPIO_SYSFS is not set 951# CONFIG_GPIO_SYSFS is not set
924 952
925# 953#
954# Memory mapped GPIO expanders:
955#
956# CONFIG_GPIO_XILINX is not set
957
958#
926# I2C GPIO expanders: 959# I2C GPIO expanders:
927# 960#
928# CONFIG_GPIO_MAX732X is not set 961# CONFIG_GPIO_MAX732X is not set
@@ -949,8 +982,10 @@ CONFIG_HWMON=y
949# CONFIG_SENSORS_ADM1029 is not set 982# CONFIG_SENSORS_ADM1029 is not set
950# CONFIG_SENSORS_ADM1031 is not set 983# CONFIG_SENSORS_ADM1031 is not set
951# CONFIG_SENSORS_ADM9240 is not set 984# CONFIG_SENSORS_ADM9240 is not set
985# CONFIG_SENSORS_ADT7462 is not set
952# CONFIG_SENSORS_ADT7470 is not set 986# CONFIG_SENSORS_ADT7470 is not set
953# CONFIG_SENSORS_ADT7473 is not set 987# CONFIG_SENSORS_ADT7473 is not set
988# CONFIG_SENSORS_ADT7475 is not set
954# CONFIG_SENSORS_ATXP1 is not set 989# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 990# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 991# CONFIG_SENSORS_I5K_AMB is not set
@@ -971,6 +1006,7 @@ CONFIG_HWMON=y
971# CONFIG_SENSORS_LM90 is not set 1006# CONFIG_SENSORS_LM90 is not set
972# CONFIG_SENSORS_LM92 is not set 1007# CONFIG_SENSORS_LM92 is not set
973# CONFIG_SENSORS_LM93 is not set 1008# CONFIG_SENSORS_LM93 is not set
1009# CONFIG_SENSORS_LTC4245 is not set
974# CONFIG_SENSORS_MAX1619 is not set 1010# CONFIG_SENSORS_MAX1619 is not set
975# CONFIG_SENSORS_MAX6650 is not set 1011# CONFIG_SENSORS_MAX6650 is not set
976# CONFIG_SENSORS_PC87360 is not set 1012# CONFIG_SENSORS_PC87360 is not set
@@ -1016,11 +1052,11 @@ CONFIG_WATCHDOG=y
1016# USB-based Watchdog Cards 1052# USB-based Watchdog Cards
1017# 1053#
1018# CONFIG_USBPCWATCHDOG is not set 1054# CONFIG_USBPCWATCHDOG is not set
1055CONFIG_SSB_POSSIBLE=y
1019 1056
1020# 1057#
1021# Sonics Silicon Backplane 1058# Sonics Silicon Backplane
1022# 1059#
1023CONFIG_SSB_POSSIBLE=y
1024# CONFIG_SSB is not set 1060# CONFIG_SSB is not set
1025 1061
1026# 1062#
@@ -1029,18 +1065,14 @@ CONFIG_SSB_POSSIBLE=y
1029# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1030# CONFIG_MFD_SM501 is not set 1066# CONFIG_MFD_SM501 is not set
1031# CONFIG_HTC_PASIC3 is not set 1067# CONFIG_HTC_PASIC3 is not set
1068# CONFIG_TPS65010 is not set
1069# CONFIG_TWL4030_CORE is not set
1032# CONFIG_MFD_TMIO is not set 1070# CONFIG_MFD_TMIO is not set
1033# CONFIG_PMIC_DA903X is not set 1071# CONFIG_PMIC_DA903X is not set
1034# CONFIG_MFD_WM8400 is not set 1072# CONFIG_MFD_WM8400 is not set
1035# CONFIG_MFD_WM8350_I2C is not set 1073# CONFIG_MFD_WM8350_I2C is not set
1036 1074# CONFIG_MFD_PCF50633 is not set
1037#
1038# Voltage and Current regulators
1039#
1040# CONFIG_REGULATOR is not set 1075# CONFIG_REGULATOR is not set
1041# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1042# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1043# CONFIG_REGULATOR_BQ24022 is not set
1044 1076
1045# 1077#
1046# Multimedia devices 1078# Multimedia devices
@@ -1093,11 +1125,9 @@ CONFIG_HID_COMPAT=y
1093CONFIG_HID_A4TECH=y 1125CONFIG_HID_A4TECH=y
1094CONFIG_HID_APPLE=y 1126CONFIG_HID_APPLE=y
1095CONFIG_HID_BELKIN=y 1127CONFIG_HID_BELKIN=y
1096CONFIG_HID_BRIGHT=y
1097CONFIG_HID_CHERRY=y 1128CONFIG_HID_CHERRY=y
1098CONFIG_HID_CHICONY=y 1129CONFIG_HID_CHICONY=y
1099CONFIG_HID_CYPRESS=y 1130CONFIG_HID_CYPRESS=y
1100CONFIG_HID_DELL=y
1101CONFIG_HID_EZKEY=y 1131CONFIG_HID_EZKEY=y
1102CONFIG_HID_GYRATION=y 1132CONFIG_HID_GYRATION=y
1103CONFIG_HID_LOGITECH=y 1133CONFIG_HID_LOGITECH=y
@@ -1105,12 +1135,15 @@ CONFIG_HID_LOGITECH=y
1105# CONFIG_LOGIRUMBLEPAD2_FF is not set 1135# CONFIG_LOGIRUMBLEPAD2_FF is not set
1106CONFIG_HID_MICROSOFT=y 1136CONFIG_HID_MICROSOFT=y
1107CONFIG_HID_MONTEREY=y 1137CONFIG_HID_MONTEREY=y
1138# CONFIG_HID_NTRIG is not set
1108CONFIG_HID_PANTHERLORD=y 1139CONFIG_HID_PANTHERLORD=y
1109# CONFIG_PANTHERLORD_FF is not set 1140# CONFIG_PANTHERLORD_FF is not set
1110CONFIG_HID_PETALYNX=y 1141CONFIG_HID_PETALYNX=y
1111CONFIG_HID_SAMSUNG=y 1142CONFIG_HID_SAMSUNG=y
1112CONFIG_HID_SONY=y 1143CONFIG_HID_SONY=y
1113CONFIG_HID_SUNPLUS=y 1144CONFIG_HID_SUNPLUS=y
1145# CONFIG_GREENASIA_FF is not set
1146# CONFIG_HID_TOPSEED is not set
1114CONFIG_THRUSTMASTER_FF=m 1147CONFIG_THRUSTMASTER_FF=m
1115CONFIG_ZEROPLUS_FF=m 1148CONFIG_ZEROPLUS_FF=m
1116CONFIG_USB_SUPPORT=y 1149CONFIG_USB_SUPPORT=y
@@ -1143,6 +1176,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1143# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1176# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1144CONFIG_USB_EHCI_FSL=y 1177CONFIG_USB_EHCI_FSL=y
1145CONFIG_USB_EHCI_HCD_PPC_OF=y 1178CONFIG_USB_EHCI_HCD_PPC_OF=y
1179# CONFIG_USB_OXU210HP_HCD is not set
1146# CONFIG_USB_ISP116X_HCD is not set 1180# CONFIG_USB_ISP116X_HCD is not set
1147# CONFIG_USB_ISP1760_HCD is not set 1181# CONFIG_USB_ISP1760_HCD is not set
1148# CONFIG_USB_OHCI_HCD is not set 1182# CONFIG_USB_OHCI_HCD is not set
@@ -1161,11 +1195,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1161# CONFIG_USB_TMC is not set 1195# CONFIG_USB_TMC is not set
1162 1196
1163# 1197#
1164# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1198# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1165# 1199#
1166 1200
1167# 1201#
1168# may also be needed; see USB_STORAGE Help for more information 1202# see USB_STORAGE Help for more information
1169# 1203#
1170# CONFIG_USB_STORAGE is not set 1204# CONFIG_USB_STORAGE is not set
1171# CONFIG_USB_LIBUSUAL is not set 1205# CONFIG_USB_LIBUSUAL is not set
@@ -1206,6 +1240,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1206# CONFIG_USB_ISIGHTFW is not set 1240# CONFIG_USB_ISIGHTFW is not set
1207# CONFIG_USB_VST is not set 1241# CONFIG_USB_VST is not set
1208# CONFIG_USB_GADGET is not set 1242# CONFIG_USB_GADGET is not set
1243
1244#
1245# OTG and related infrastructure
1246#
1247# CONFIG_USB_GPIO_VBUS is not set
1209# CONFIG_UWB is not set 1248# CONFIG_UWB is not set
1210# CONFIG_MMC is not set 1249# CONFIG_MMC is not set
1211# CONFIG_MEMSTICK is not set 1250# CONFIG_MEMSTICK is not set
@@ -1237,6 +1276,7 @@ CONFIG_FS_MBCACHE=y
1237CONFIG_FILE_LOCKING=y 1276CONFIG_FILE_LOCKING=y
1238# CONFIG_XFS_FS is not set 1277# CONFIG_XFS_FS is not set
1239# CONFIG_OCFS2_FS is not set 1278# CONFIG_OCFS2_FS is not set
1279# CONFIG_BTRFS_FS is not set
1240CONFIG_DNOTIFY=y 1280CONFIG_DNOTIFY=y
1241CONFIG_INOTIFY=y 1281CONFIG_INOTIFY=y
1242CONFIG_INOTIFY_USER=y 1282CONFIG_INOTIFY_USER=y
@@ -1270,10 +1310,7 @@ CONFIG_TMPFS=y
1270# CONFIG_TMPFS_POSIX_ACL is not set 1310# CONFIG_TMPFS_POSIX_ACL is not set
1271# CONFIG_HUGETLB_PAGE is not set 1311# CONFIG_HUGETLB_PAGE is not set
1272# CONFIG_CONFIGFS_FS is not set 1312# CONFIG_CONFIGFS_FS is not set
1273 1313CONFIG_MISC_FILESYSTEMS=y
1274#
1275# Miscellaneous filesystems
1276#
1277# CONFIG_ADFS_FS is not set 1314# CONFIG_ADFS_FS is not set
1278# CONFIG_AFFS_FS is not set 1315# CONFIG_AFFS_FS is not set
1279# CONFIG_HFS_FS is not set 1316# CONFIG_HFS_FS is not set
@@ -1283,6 +1320,7 @@ CONFIG_TMPFS=y
1283# CONFIG_EFS_FS is not set 1320# CONFIG_EFS_FS is not set
1284# CONFIG_JFFS2_FS is not set 1321# CONFIG_JFFS2_FS is not set
1285# CONFIG_CRAMFS is not set 1322# CONFIG_CRAMFS is not set
1323# CONFIG_SQUASHFS is not set
1286# CONFIG_VXFS_FS is not set 1324# CONFIG_VXFS_FS is not set
1287# CONFIG_MINIX_FS is not set 1325# CONFIG_MINIX_FS is not set
1288# CONFIG_OMFS_FS is not set 1326# CONFIG_OMFS_FS is not set
@@ -1342,6 +1380,7 @@ CONFIG_UCC=y
1342# Library routines 1380# Library routines
1343# 1381#
1344CONFIG_BITREVERSE=y 1382CONFIG_BITREVERSE=y
1383CONFIG_GENERIC_FIND_LAST_BIT=y
1345# CONFIG_CRC_CCITT is not set 1384# CONFIG_CRC_CCITT is not set
1346# CONFIG_CRC16 is not set 1385# CONFIG_CRC16 is not set
1347CONFIG_CRC_T10DIF=y 1386CONFIG_CRC_T10DIF=y
@@ -1373,6 +1412,8 @@ CONFIG_FRAME_WARN=1024
1373# CONFIG_LATENCYTOP is not set 1412# CONFIG_LATENCYTOP is not set
1374CONFIG_SYSCTL_SYSCALL_CHECK=y 1413CONFIG_SYSCTL_SYSCALL_CHECK=y
1375CONFIG_HAVE_FUNCTION_TRACER=y 1414CONFIG_HAVE_FUNCTION_TRACER=y
1415CONFIG_HAVE_DYNAMIC_FTRACE=y
1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1376 1417
1377# 1418#
1378# Tracers 1419# Tracers
@@ -1380,6 +1421,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1380# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1421# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1381# CONFIG_SAMPLES is not set 1422# CONFIG_SAMPLES is not set
1382CONFIG_HAVE_ARCH_KGDB=y 1423CONFIG_HAVE_ARCH_KGDB=y
1424CONFIG_PRINT_STACK_DEPTH=64
1383# CONFIG_IRQSTACKS is not set 1425# CONFIG_IRQSTACKS is not set
1384# CONFIG_BOOTX_TEXT is not set 1426# CONFIG_BOOTX_TEXT is not set
1385# CONFIG_PPC_EARLY_DEBUG is not set 1427# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1398,11 +1440,16 @@ CONFIG_CRYPTO=y
1398# 1440#
1399# CONFIG_CRYPTO_FIPS is not set 1441# CONFIG_CRYPTO_FIPS is not set
1400CONFIG_CRYPTO_ALGAPI=y 1442CONFIG_CRYPTO_ALGAPI=y
1443CONFIG_CRYPTO_ALGAPI2=y
1401CONFIG_CRYPTO_AEAD=y 1444CONFIG_CRYPTO_AEAD=y
1445CONFIG_CRYPTO_AEAD2=y
1402CONFIG_CRYPTO_BLKCIPHER=y 1446CONFIG_CRYPTO_BLKCIPHER=y
1447CONFIG_CRYPTO_BLKCIPHER2=y
1403CONFIG_CRYPTO_HASH=y 1448CONFIG_CRYPTO_HASH=y
1404CONFIG_CRYPTO_RNG=y 1449CONFIG_CRYPTO_HASH2=y
1450CONFIG_CRYPTO_RNG2=y
1405CONFIG_CRYPTO_MANAGER=y 1451CONFIG_CRYPTO_MANAGER=y
1452CONFIG_CRYPTO_MANAGER2=y
1406# CONFIG_CRYPTO_GF128MUL is not set 1453# CONFIG_CRYPTO_GF128MUL is not set
1407# CONFIG_CRYPTO_NULL is not set 1454# CONFIG_CRYPTO_NULL is not set
1408# CONFIG_CRYPTO_CRYPTD is not set 1455# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index c87b53abc617..fb08819d7cc4 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:43 2008 4# Mon Jan 26 15:35:37 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -21,7 +21,9 @@ CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
24# CONFIG_PPC_MM_SLICES is not set 25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
25CONFIG_PPC32=y 27CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 28CONFIG_WORD_SIZE=32
27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -46,7 +48,7 @@ CONFIG_GENERIC_GPIO=y
46CONFIG_PPC=y 48CONFIG_PPC=y
47CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
48CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
52CONFIG_OF=y 54CONFIG_OF=y
@@ -79,12 +81,12 @@ CONFIG_AUDIT=y
79CONFIG_IKCONFIG=y 81CONFIG_IKCONFIG=y
80CONFIG_IKCONFIG_PROC=y 82CONFIG_IKCONFIG_PROC=y
81CONFIG_LOG_BUF_SHIFT=14 83CONFIG_LOG_BUF_SHIFT=14
82# CONFIG_CGROUPS is not set
83CONFIG_GROUP_SCHED=y 84CONFIG_GROUP_SCHED=y
84# CONFIG_FAIR_GROUP_SCHED is not set 85# CONFIG_FAIR_GROUP_SCHED is not set
85# CONFIG_RT_GROUP_SCHED is not set 86# CONFIG_RT_GROUP_SCHED is not set
86CONFIG_USER_SCHED=y 87CONFIG_USER_SCHED=y
87# CONFIG_CGROUP_SCHED is not set 88# CONFIG_CGROUP_SCHED is not set
89# CONFIG_CGROUPS is not set
88CONFIG_SYSFS_DEPRECATED=y 90CONFIG_SYSFS_DEPRECATED=y
89CONFIG_SYSFS_DEPRECATED_V2=y 91CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_RELAY is not set 92# CONFIG_RELAY is not set
@@ -97,6 +99,7 @@ CONFIG_EMBEDDED=y
97CONFIG_SYSCTL_SYSCALL=y 99CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 100CONFIG_KALLSYMS=y
99CONFIG_KALLSYMS_ALL=y 101CONFIG_KALLSYMS_ALL=y
102CONFIG_KALLSYMS_STRIP_GENERATED=y
100CONFIG_KALLSYMS_EXTRA_PASS=y 103CONFIG_KALLSYMS_EXTRA_PASS=y
101CONFIG_HOTPLUG=y 104CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 105CONFIG_PRINTK=y
@@ -119,7 +122,6 @@ CONFIG_SLUB_DEBUG=y
119CONFIG_SLUB=y 122CONFIG_SLUB=y
120# CONFIG_SLOB is not set 123# CONFIG_SLOB is not set
121# CONFIG_PROFILING is not set 124# CONFIG_PROFILING is not set
122# CONFIG_MARKERS is not set
123CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
124# CONFIG_KPROBES is not set 126# CONFIG_KPROBES is not set
125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -131,7 +133,6 @@ CONFIG_HAVE_CLK=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 135CONFIG_RT_MUTEXES=y
134# CONFIG_TINY_SHMEM is not set
135CONFIG_BASE_SMALL=0 136CONFIG_BASE_SMALL=0
136CONFIG_MODULES=y 137CONFIG_MODULES=y
137# CONFIG_MODULE_FORCE_LOAD is not set 138# CONFIG_MODULE_FORCE_LOAD is not set
@@ -139,11 +140,9 @@ CONFIG_MODULE_UNLOAD=y
139CONFIG_MODULE_FORCE_UNLOAD=y 140CONFIG_MODULE_FORCE_UNLOAD=y
140CONFIG_MODVERSIONS=y 141CONFIG_MODVERSIONS=y
141# CONFIG_MODULE_SRCVERSION_ALL is not set 142# CONFIG_MODULE_SRCVERSION_ALL is not set
142CONFIG_KMOD=y
143CONFIG_BLOCK=y 143CONFIG_BLOCK=y
144CONFIG_LBD=y 144CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_LSF is not set
147# CONFIG_BLK_DEV_BSG is not set 146# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 147# CONFIG_BLK_DEV_INTEGRITY is not set
149 148
@@ -160,6 +159,10 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 160CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 161CONFIG_CLASSIC_RCU=y
162# CONFIG_TREE_RCU is not set
163# CONFIG_PREEMPT_RCU is not set
164# CONFIG_TREE_RCU_TRACE is not set
165# CONFIG_PREEMPT_RCU_TRACE is not set
163# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
164 167
165# 168#
@@ -202,6 +205,7 @@ CONFIG_CPM2=y
202CONFIG_FSL_ULI1575=y 205CONFIG_FSL_ULI1575=y
203CONFIG_CPM=y 206CONFIG_CPM=y
204# CONFIG_MPC8xxx_GPIO is not set 207# CONFIG_MPC8xxx_GPIO is not set
208# CONFIG_SIMPLE_GPIO is not set
205 209
206# 210#
207# Kernel options 211# Kernel options
@@ -240,12 +244,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
240CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
241CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
242CONFIG_MIGRATION=y 246CONFIG_MIGRATION=y
243# CONFIG_RESOURCES_64BIT is not set
244# CONFIG_PHYS_ADDR_T_64BIT is not set 247# CONFIG_PHYS_ADDR_T_64BIT is not set
245CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
246CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
247CONFIG_VIRT_TO_BUS=y 250CONFIG_VIRT_TO_BUS=y
248CONFIG_UNEVICTABLE_LRU=y 251CONFIG_UNEVICTABLE_LRU=y
252CONFIG_PPC_4K_PAGES=y
253# CONFIG_PPC_16K_PAGES is not set
254# CONFIG_PPC_64K_PAGES is not set
249CONFIG_FORCE_MAX_ZONEORDER=11 255CONFIG_FORCE_MAX_ZONEORDER=11
250CONFIG_PROC_DEVICETREE=y 256CONFIG_PROC_DEVICETREE=y
251# CONFIG_CMDLINE_BOOL is not set 257# CONFIG_CMDLINE_BOOL is not set
@@ -271,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
271# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
272# CONFIG_PCI_LEGACY is not set 278# CONFIG_PCI_LEGACY is not set
273# CONFIG_PCI_DEBUG is not set 279# CONFIG_PCI_DEBUG is not set
280# CONFIG_PCI_STUB is not set
274# CONFIG_PCCARD is not set 281# CONFIG_PCCARD is not set
275# CONFIG_HOTPLUG_PCI is not set 282# CONFIG_HOTPLUG_PCI is not set
276# CONFIG_HAS_RAPIDIO is not set 283# CONFIG_HAS_RAPIDIO is not set
@@ -294,6 +301,7 @@ CONFIG_NET=y
294# 301#
295# Networking options 302# Networking options
296# 303#
304CONFIG_COMPAT_NET_DEV_OPS=y
297CONFIG_PACKET=y 305CONFIG_PACKET=y
298# CONFIG_PACKET_MMAP is not set 306# CONFIG_PACKET_MMAP is not set
299CONFIG_UNIX=y 307CONFIG_UNIX=y
@@ -382,6 +390,7 @@ CONFIG_SCTP_HMAC_MD5=y
382# CONFIG_ECONET is not set 390# CONFIG_ECONET is not set
383# CONFIG_WAN_ROUTER is not set 391# CONFIG_WAN_ROUTER is not set
384# CONFIG_NET_SCHED is not set 392# CONFIG_NET_SCHED is not set
393# CONFIG_DCB is not set
385 394
386# 395#
387# Network testing 396# Network testing
@@ -398,8 +407,9 @@ CONFIG_WIRELESS=y
398# CONFIG_CFG80211 is not set 407# CONFIG_CFG80211 is not set
399CONFIG_WIRELESS_OLD_REGULATORY=y 408CONFIG_WIRELESS_OLD_REGULATORY=y
400# CONFIG_WIRELESS_EXT is not set 409# CONFIG_WIRELESS_EXT is not set
410# CONFIG_LIB80211 is not set
401# CONFIG_MAC80211 is not set 411# CONFIG_MAC80211 is not set
402# CONFIG_IEEE80211 is not set 412# CONFIG_WIMAX is not set
403# CONFIG_RFKILL is not set 413# CONFIG_RFKILL is not set
404# CONFIG_NET_9P is not set 414# CONFIG_NET_9P is not set
405 415
@@ -449,8 +459,10 @@ CONFIG_MISC_DEVICES=y
449# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
450# CONFIG_SGI_IOC4 is not set 460# CONFIG_SGI_IOC4 is not set
451# CONFIG_TIFM_CORE is not set 461# CONFIG_TIFM_CORE is not set
462# CONFIG_ICS932S401 is not set
452# CONFIG_ENCLOSURE_SERVICES is not set 463# CONFIG_ENCLOSURE_SERVICES is not set
453# CONFIG_HP_ILO is not set 464# CONFIG_HP_ILO is not set
465# CONFIG_C2PORT is not set
454CONFIG_HAVE_IDE=y 466CONFIG_HAVE_IDE=y
455# CONFIG_IDE is not set 467# CONFIG_IDE is not set
456 468
@@ -494,6 +506,7 @@ CONFIG_SCSI_WAIT_SCAN=m
494# CONFIG_SCSI_SRP_ATTRS is not set 506# CONFIG_SCSI_SRP_ATTRS is not set
495CONFIG_SCSI_LOWLEVEL=y 507CONFIG_SCSI_LOWLEVEL=y
496# CONFIG_ISCSI_TCP is not set 508# CONFIG_ISCSI_TCP is not set
509# CONFIG_SCSI_CXGB3_ISCSI is not set
497# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 510# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
498# CONFIG_SCSI_3W_9XXX is not set 511# CONFIG_SCSI_3W_9XXX is not set
499# CONFIG_SCSI_ACARD is not set 512# CONFIG_SCSI_ACARD is not set
@@ -510,6 +523,8 @@ CONFIG_SCSI_LOWLEVEL=y
510# CONFIG_MEGARAID_SAS is not set 523# CONFIG_MEGARAID_SAS is not set
511# CONFIG_SCSI_HPTIOP is not set 524# CONFIG_SCSI_HPTIOP is not set
512# CONFIG_SCSI_BUSLOGIC is not set 525# CONFIG_SCSI_BUSLOGIC is not set
526# CONFIG_LIBFC is not set
527# CONFIG_FCOE is not set
513# CONFIG_SCSI_DMX3191D is not set 528# CONFIG_SCSI_DMX3191D is not set
514# CONFIG_SCSI_EATA is not set 529# CONFIG_SCSI_EATA is not set
515# CONFIG_SCSI_FUTURE_DOMAIN is not set 530# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -629,6 +644,9 @@ CONFIG_VITESSE_PHY=y
629# CONFIG_BROADCOM_PHY is not set 644# CONFIG_BROADCOM_PHY is not set
630# CONFIG_ICPLUS_PHY is not set 645# CONFIG_ICPLUS_PHY is not set
631# CONFIG_REALTEK_PHY is not set 646# CONFIG_REALTEK_PHY is not set
647# CONFIG_NATIONAL_PHY is not set
648# CONFIG_STE10XP is not set
649# CONFIG_LSI_ET1011C_PHY is not set
632# CONFIG_FIXED_PHY is not set 650# CONFIG_FIXED_PHY is not set
633# CONFIG_MDIO_BITBANG is not set 651# CONFIG_MDIO_BITBANG is not set
634CONFIG_NET_ETHERNET=y 652CONFIG_NET_ETHERNET=y
@@ -675,6 +693,7 @@ CONFIG_GIANFAR=y
675# CONFIG_JME is not set 693# CONFIG_JME is not set
676CONFIG_NETDEV_10000=y 694CONFIG_NETDEV_10000=y
677# CONFIG_CHELSIO_T1 is not set 695# CONFIG_CHELSIO_T1 is not set
696CONFIG_CHELSIO_T3_DEPENDS=y
678# CONFIG_CHELSIO_T3 is not set 697# CONFIG_CHELSIO_T3 is not set
679# CONFIG_ENIC is not set 698# CONFIG_ENIC is not set
680# CONFIG_IXGBE is not set 699# CONFIG_IXGBE is not set
@@ -699,6 +718,10 @@ CONFIG_NETDEV_10000=y
699# CONFIG_IWLWIFI_LEDS is not set 718# CONFIG_IWLWIFI_LEDS is not set
700 719
701# 720#
721# Enable WiMAX (Networking options) to see the WiMAX drivers
722#
723
724#
702# USB Network Adapters 725# USB Network Adapters
703# 726#
704# CONFIG_USB_CATC is not set 727# CONFIG_USB_CATC is not set
@@ -792,8 +815,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
792# CONFIG_SERIAL_OF_PLATFORM is not set 815# CONFIG_SERIAL_OF_PLATFORM is not set
793# CONFIG_SERIAL_QE is not set 816# CONFIG_SERIAL_QE is not set
794CONFIG_UNIX98_PTYS=y 817CONFIG_UNIX98_PTYS=y
818# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
795CONFIG_LEGACY_PTYS=y 819CONFIG_LEGACY_PTYS=y
796CONFIG_LEGACY_PTY_COUNT=256 820CONFIG_LEGACY_PTY_COUNT=256
821# CONFIG_HVC_UDBG is not set
797# CONFIG_IPMI_HANDLER is not set 822# CONFIG_IPMI_HANDLER is not set
798# CONFIG_HW_RANDOM is not set 823# CONFIG_HW_RANDOM is not set
799CONFIG_NVRAM=y 824CONFIG_NVRAM=y
@@ -860,13 +885,12 @@ CONFIG_I2C_MPC=y
860# Miscellaneous I2C Chip support 885# Miscellaneous I2C Chip support
861# 886#
862# CONFIG_DS1682 is not set 887# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set 888# CONFIG_EEPROM_AT24 is not set
864CONFIG_SENSORS_EEPROM=y 889CONFIG_EEPROM_LEGACY=y
865# CONFIG_SENSORS_PCF8574 is not set 890# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set 891# CONFIG_PCF8575 is not set
867# CONFIG_SENSORS_PCA9539 is not set 892# CONFIG_SENSORS_PCA9539 is not set
868# CONFIG_SENSORS_PCF8591 is not set 893# CONFIG_SENSORS_PCF8591 is not set
869# CONFIG_TPS65010 is not set
870# CONFIG_SENSORS_MAX6875 is not set 894# CONFIG_SENSORS_MAX6875 is not set
871# CONFIG_SENSORS_TSL2550 is not set 895# CONFIG_SENSORS_TSL2550 is not set
872# CONFIG_I2C_DEBUG_CORE is not set 896# CONFIG_I2C_DEBUG_CORE is not set
@@ -881,6 +905,11 @@ CONFIG_GPIOLIB=y
881# CONFIG_GPIO_SYSFS is not set 905# CONFIG_GPIO_SYSFS is not set
882 906
883# 907#
908# Memory mapped GPIO expanders:
909#
910# CONFIG_GPIO_XILINX is not set
911
912#
884# I2C GPIO expanders: 913# I2C GPIO expanders:
885# 914#
886# CONFIG_GPIO_MAX732X is not set 915# CONFIG_GPIO_MAX732X is not set
@@ -901,11 +930,11 @@ CONFIG_GPIOLIB=y
901# CONFIG_THERMAL is not set 930# CONFIG_THERMAL is not set
902# CONFIG_THERMAL_HWMON is not set 931# CONFIG_THERMAL_HWMON is not set
903# CONFIG_WATCHDOG is not set 932# CONFIG_WATCHDOG is not set
933CONFIG_SSB_POSSIBLE=y
904 934
905# 935#
906# Sonics Silicon Backplane 936# Sonics Silicon Backplane
907# 937#
908CONFIG_SSB_POSSIBLE=y
909# CONFIG_SSB is not set 938# CONFIG_SSB is not set
910 939
911# 940#
@@ -915,18 +944,14 @@ CONFIG_SSB_POSSIBLE=y
915# CONFIG_MFD_SM501 is not set 944# CONFIG_MFD_SM501 is not set
916# CONFIG_HTC_PASIC3 is not set 945# CONFIG_HTC_PASIC3 is not set
917# CONFIG_UCB1400_CORE is not set 946# CONFIG_UCB1400_CORE is not set
947# CONFIG_TPS65010 is not set
948# CONFIG_TWL4030_CORE is not set
918# CONFIG_MFD_TMIO is not set 949# CONFIG_MFD_TMIO is not set
919# CONFIG_PMIC_DA903X is not set 950# CONFIG_PMIC_DA903X is not set
920# CONFIG_MFD_WM8400 is not set 951# CONFIG_MFD_WM8400 is not set
921# CONFIG_MFD_WM8350_I2C is not set 952# CONFIG_MFD_WM8350_I2C is not set
922 953# CONFIG_MFD_PCF50633 is not set
923#
924# Voltage and Current regulators
925#
926# CONFIG_REGULATOR is not set 954# CONFIG_REGULATOR is not set
927# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
928# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
929# CONFIG_REGULATOR_BQ24022 is not set
930 955
931# 956#
932# Multimedia devices 957# Multimedia devices
@@ -953,6 +978,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
953CONFIG_MEDIA_TUNER_MT20XX=m 978CONFIG_MEDIA_TUNER_MT20XX=m
954CONFIG_MEDIA_TUNER_XC2028=m 979CONFIG_MEDIA_TUNER_XC2028=m
955CONFIG_MEDIA_TUNER_XC5000=m 980CONFIG_MEDIA_TUNER_XC5000=m
981# CONFIG_DVB_DYNAMIC_MINORS is not set
956CONFIG_DVB_CAPTURE_DRIVERS=y 982CONFIG_DVB_CAPTURE_DRIVERS=y
957 983
958# 984#
@@ -998,6 +1024,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
998# CONFIG_DVB_FE_CUSTOMISE is not set 1024# CONFIG_DVB_FE_CUSTOMISE is not set
999 1025
1000# 1026#
1027# Multistandard (satellite) frontends
1028#
1029# CONFIG_DVB_STB0899 is not set
1030# CONFIG_DVB_STB6100 is not set
1031
1032#
1001# DVB-S (satellite) frontends 1033# DVB-S (satellite) frontends
1002# 1034#
1003# CONFIG_DVB_CX24110 is not set 1035# CONFIG_DVB_CX24110 is not set
@@ -1009,8 +1041,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1009# CONFIG_DVB_STV0299 is not set 1041# CONFIG_DVB_STV0299 is not set
1010# CONFIG_DVB_TDA8083 is not set 1042# CONFIG_DVB_TDA8083 is not set
1011# CONFIG_DVB_TDA10086 is not set 1043# CONFIG_DVB_TDA10086 is not set
1044# CONFIG_DVB_TDA8261 is not set
1012# CONFIG_DVB_VES1X93 is not set 1045# CONFIG_DVB_VES1X93 is not set
1013# CONFIG_DVB_TUNER_ITD1000 is not set 1046# CONFIG_DVB_TUNER_ITD1000 is not set
1047# CONFIG_DVB_TUNER_CX24113 is not set
1014# CONFIG_DVB_TDA826X is not set 1048# CONFIG_DVB_TDA826X is not set
1015# CONFIG_DVB_TUA6100 is not set 1049# CONFIG_DVB_TUA6100 is not set
1016# CONFIG_DVB_CX24116 is not set 1050# CONFIG_DVB_CX24116 is not set
@@ -1051,11 +1085,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1051# CONFIG_DVB_OR51132 is not set 1085# CONFIG_DVB_OR51132 is not set
1052# CONFIG_DVB_BCM3510 is not set 1086# CONFIG_DVB_BCM3510 is not set
1053# CONFIG_DVB_LGDT330X is not set 1087# CONFIG_DVB_LGDT330X is not set
1088# CONFIG_DVB_LGDT3304 is not set
1054# CONFIG_DVB_S5H1409 is not set 1089# CONFIG_DVB_S5H1409 is not set
1055# CONFIG_DVB_AU8522 is not set 1090# CONFIG_DVB_AU8522 is not set
1056# CONFIG_DVB_S5H1411 is not set 1091# CONFIG_DVB_S5H1411 is not set
1057 1092
1058# 1093#
1094# ISDB-T (terrestrial) frontends
1095#
1096# CONFIG_DVB_S921 is not set
1097
1098#
1059# Digital terrestrial only tuners/PLL 1099# Digital terrestrial only tuners/PLL
1060# 1100#
1061# CONFIG_DVB_PLL is not set 1101# CONFIG_DVB_PLL is not set
@@ -1108,6 +1148,7 @@ CONFIG_SND_OSSEMUL=y
1108CONFIG_SND_MIXER_OSS=y 1148CONFIG_SND_MIXER_OSS=y
1109CONFIG_SND_PCM_OSS=y 1149CONFIG_SND_PCM_OSS=y
1110CONFIG_SND_PCM_OSS_PLUGINS=y 1150CONFIG_SND_PCM_OSS_PLUGINS=y
1151# CONFIG_SND_HRTIMER is not set
1111# CONFIG_SND_DYNAMIC_MINORS is not set 1152# CONFIG_SND_DYNAMIC_MINORS is not set
1112# CONFIG_SND_SUPPORT_OLD_API is not set 1153# CONFIG_SND_SUPPORT_OLD_API is not set
1113CONFIG_SND_VERBOSE_PROCFS=y 1154CONFIG_SND_VERBOSE_PROCFS=y
@@ -1210,11 +1251,9 @@ CONFIG_HID_COMPAT=y
1210CONFIG_HID_A4TECH=y 1251CONFIG_HID_A4TECH=y
1211CONFIG_HID_APPLE=y 1252CONFIG_HID_APPLE=y
1212CONFIG_HID_BELKIN=y 1253CONFIG_HID_BELKIN=y
1213CONFIG_HID_BRIGHT=y
1214CONFIG_HID_CHERRY=y 1254CONFIG_HID_CHERRY=y
1215CONFIG_HID_CHICONY=y 1255CONFIG_HID_CHICONY=y
1216CONFIG_HID_CYPRESS=y 1256CONFIG_HID_CYPRESS=y
1217CONFIG_HID_DELL=y
1218CONFIG_HID_EZKEY=y 1257CONFIG_HID_EZKEY=y
1219CONFIG_HID_GYRATION=y 1258CONFIG_HID_GYRATION=y
1220CONFIG_HID_LOGITECH=y 1259CONFIG_HID_LOGITECH=y
@@ -1222,12 +1261,15 @@ CONFIG_HID_LOGITECH=y
1222# CONFIG_LOGIRUMBLEPAD2_FF is not set 1261# CONFIG_LOGIRUMBLEPAD2_FF is not set
1223CONFIG_HID_MICROSOFT=y 1262CONFIG_HID_MICROSOFT=y
1224CONFIG_HID_MONTEREY=y 1263CONFIG_HID_MONTEREY=y
1264# CONFIG_HID_NTRIG is not set
1225CONFIG_HID_PANTHERLORD=y 1265CONFIG_HID_PANTHERLORD=y
1226# CONFIG_PANTHERLORD_FF is not set 1266# CONFIG_PANTHERLORD_FF is not set
1227CONFIG_HID_PETALYNX=y 1267CONFIG_HID_PETALYNX=y
1228CONFIG_HID_SAMSUNG=y 1268CONFIG_HID_SAMSUNG=y
1229CONFIG_HID_SONY=y 1269CONFIG_HID_SONY=y
1230CONFIG_HID_SUNPLUS=y 1270CONFIG_HID_SUNPLUS=y
1271# CONFIG_GREENASIA_FF is not set
1272# CONFIG_HID_TOPSEED is not set
1231CONFIG_THRUSTMASTER_FF=m 1273CONFIG_THRUSTMASTER_FF=m
1232CONFIG_ZEROPLUS_FF=m 1274CONFIG_ZEROPLUS_FF=m
1233CONFIG_USB_SUPPORT=y 1275CONFIG_USB_SUPPORT=y
@@ -1260,6 +1302,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
1260# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1302# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1261CONFIG_USB_EHCI_FSL=y 1303CONFIG_USB_EHCI_FSL=y
1262CONFIG_USB_EHCI_HCD_PPC_OF=y 1304CONFIG_USB_EHCI_HCD_PPC_OF=y
1305# CONFIG_USB_OXU210HP_HCD is not set
1263# CONFIG_USB_ISP116X_HCD is not set 1306# CONFIG_USB_ISP116X_HCD is not set
1264# CONFIG_USB_ISP1760_HCD is not set 1307# CONFIG_USB_ISP1760_HCD is not set
1265CONFIG_USB_OHCI_HCD=y 1308CONFIG_USB_OHCI_HCD=y
@@ -1286,18 +1329,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1286# CONFIG_USB_TMC is not set 1329# CONFIG_USB_TMC is not set
1287 1330
1288# 1331#
1289# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1332# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1290# 1333#
1291 1334
1292# 1335#
1293# may also be needed; see USB_STORAGE Help for more information 1336# see USB_STORAGE Help for more information
1294# 1337#
1295CONFIG_USB_STORAGE=y 1338CONFIG_USB_STORAGE=y
1296# CONFIG_USB_STORAGE_DEBUG is not set 1339# CONFIG_USB_STORAGE_DEBUG is not set
1297# CONFIG_USB_STORAGE_DATAFAB is not set 1340# CONFIG_USB_STORAGE_DATAFAB is not set
1298# CONFIG_USB_STORAGE_FREECOM is not set 1341# CONFIG_USB_STORAGE_FREECOM is not set
1299# CONFIG_USB_STORAGE_ISD200 is not set 1342# CONFIG_USB_STORAGE_ISD200 is not set
1300# CONFIG_USB_STORAGE_DPCM is not set
1301# CONFIG_USB_STORAGE_USBAT is not set 1343# CONFIG_USB_STORAGE_USBAT is not set
1302# CONFIG_USB_STORAGE_SDDR09 is not set 1344# CONFIG_USB_STORAGE_SDDR09 is not set
1303# CONFIG_USB_STORAGE_SDDR55 is not set 1345# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1345,6 +1387,11 @@ CONFIG_USB_STORAGE=y
1345# CONFIG_USB_ISIGHTFW is not set 1387# CONFIG_USB_ISIGHTFW is not set
1346# CONFIG_USB_VST is not set 1388# CONFIG_USB_VST is not set
1347# CONFIG_USB_GADGET is not set 1389# CONFIG_USB_GADGET is not set
1390
1391#
1392# OTG and related infrastructure
1393#
1394# CONFIG_USB_GPIO_VBUS is not set
1348# CONFIG_UWB is not set 1395# CONFIG_UWB is not set
1349# CONFIG_MMC is not set 1396# CONFIG_MMC is not set
1350# CONFIG_MEMSTICK is not set 1397# CONFIG_MEMSTICK is not set
@@ -1389,6 +1436,7 @@ CONFIG_RTC_INTF_DEV=y
1389# CONFIG_RTC_DRV_M41T80 is not set 1436# CONFIG_RTC_DRV_M41T80 is not set
1390# CONFIG_RTC_DRV_S35390A is not set 1437# CONFIG_RTC_DRV_S35390A is not set
1391# CONFIG_RTC_DRV_FM3130 is not set 1438# CONFIG_RTC_DRV_FM3130 is not set
1439# CONFIG_RTC_DRV_RX8581 is not set
1392 1440
1393# 1441#
1394# SPI RTC drivers 1442# SPI RTC drivers
@@ -1448,7 +1496,9 @@ CONFIG_FS_MBCACHE=y
1448# CONFIG_FS_POSIX_ACL is not set 1496# CONFIG_FS_POSIX_ACL is not set
1449CONFIG_FILE_LOCKING=y 1497CONFIG_FILE_LOCKING=y
1450# CONFIG_XFS_FS is not set 1498# CONFIG_XFS_FS is not set
1499# CONFIG_GFS2_FS is not set
1451# CONFIG_OCFS2_FS is not set 1500# CONFIG_OCFS2_FS is not set
1501# CONFIG_BTRFS_FS is not set
1452CONFIG_DNOTIFY=y 1502CONFIG_DNOTIFY=y
1453CONFIG_INOTIFY=y 1503CONFIG_INOTIFY=y
1454CONFIG_INOTIFY_USER=y 1504CONFIG_INOTIFY_USER=y
@@ -1490,10 +1540,7 @@ CONFIG_TMPFS=y
1490# CONFIG_TMPFS_POSIX_ACL is not set 1540# CONFIG_TMPFS_POSIX_ACL is not set
1491# CONFIG_HUGETLB_PAGE is not set 1541# CONFIG_HUGETLB_PAGE is not set
1492# CONFIG_CONFIGFS_FS is not set 1542# CONFIG_CONFIGFS_FS is not set
1493 1543CONFIG_MISC_FILESYSTEMS=y
1494#
1495# Miscellaneous filesystems
1496#
1497CONFIG_ADFS_FS=m 1544CONFIG_ADFS_FS=m
1498# CONFIG_ADFS_FS_RW is not set 1545# CONFIG_ADFS_FS_RW is not set
1499CONFIG_AFFS_FS=m 1546CONFIG_AFFS_FS=m
@@ -1504,6 +1551,7 @@ CONFIG_BEFS_FS=m
1504CONFIG_BFS_FS=m 1551CONFIG_BFS_FS=m
1505CONFIG_EFS_FS=m 1552CONFIG_EFS_FS=m
1506CONFIG_CRAMFS=y 1553CONFIG_CRAMFS=y
1554# CONFIG_SQUASHFS is not set
1507CONFIG_VXFS_FS=m 1555CONFIG_VXFS_FS=m
1508# CONFIG_MINIX_FS is not set 1556# CONFIG_MINIX_FS is not set
1509# CONFIG_OMFS_FS is not set 1557# CONFIG_OMFS_FS is not set
@@ -1605,6 +1653,7 @@ CONFIG_NLS_UTF8=m
1605# Library routines 1653# Library routines
1606# 1654#
1607CONFIG_BITREVERSE=y 1655CONFIG_BITREVERSE=y
1656CONFIG_GENERIC_FIND_LAST_BIT=y
1608# CONFIG_CRC_CCITT is not set 1657# CONFIG_CRC_CCITT is not set
1609# CONFIG_CRC16 is not set 1658# CONFIG_CRC16 is not set
1610CONFIG_CRC_T10DIF=y 1659CONFIG_CRC_T10DIF=y
@@ -1656,6 +1705,7 @@ CONFIG_DEBUG_INFO=y
1656# CONFIG_DEBUG_MEMORY_INIT is not set 1705# CONFIG_DEBUG_MEMORY_INIT is not set
1657# CONFIG_DEBUG_LIST is not set 1706# CONFIG_DEBUG_LIST is not set
1658# CONFIG_DEBUG_SG is not set 1707# CONFIG_DEBUG_SG is not set
1708# CONFIG_DEBUG_NOTIFIERS is not set
1659# CONFIG_BOOT_PRINTK_DELAY is not set 1709# CONFIG_BOOT_PRINTK_DELAY is not set
1660# CONFIG_RCU_TORTURE_TEST is not set 1710# CONFIG_RCU_TORTURE_TEST is not set
1661# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1711# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1665,6 +1715,8 @@ CONFIG_DEBUG_INFO=y
1665# CONFIG_LATENCYTOP is not set 1715# CONFIG_LATENCYTOP is not set
1666CONFIG_SYSCTL_SYSCALL_CHECK=y 1716CONFIG_SYSCTL_SYSCALL_CHECK=y
1667CONFIG_HAVE_FUNCTION_TRACER=y 1717CONFIG_HAVE_FUNCTION_TRACER=y
1718CONFIG_HAVE_DYNAMIC_FTRACE=y
1719CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1668 1720
1669# 1721#
1670# Tracers 1722# Tracers
@@ -1673,11 +1725,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1673# CONFIG_SCHED_TRACER is not set 1725# CONFIG_SCHED_TRACER is not set
1674# CONFIG_CONTEXT_SWITCH_TRACER is not set 1726# CONFIG_CONTEXT_SWITCH_TRACER is not set
1675# CONFIG_BOOT_TRACER is not set 1727# CONFIG_BOOT_TRACER is not set
1728# CONFIG_TRACE_BRANCH_PROFILING is not set
1676# CONFIG_STACK_TRACER is not set 1729# CONFIG_STACK_TRACER is not set
1677# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1730# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1678# CONFIG_SAMPLES is not set 1731# CONFIG_SAMPLES is not set
1679CONFIG_HAVE_ARCH_KGDB=y 1732CONFIG_HAVE_ARCH_KGDB=y
1680# CONFIG_KGDB is not set 1733# CONFIG_KGDB is not set
1734CONFIG_PRINT_STACK_DEPTH=64
1681# CONFIG_DEBUG_STACKOVERFLOW is not set 1735# CONFIG_DEBUG_STACKOVERFLOW is not set
1682# CONFIG_DEBUG_STACK_USAGE is not set 1736# CONFIG_DEBUG_STACK_USAGE is not set
1683# CONFIG_DEBUG_PAGEALLOC is not set 1737# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1704,11 +1758,15 @@ CONFIG_CRYPTO=y
1704# 1758#
1705# CONFIG_CRYPTO_FIPS is not set 1759# CONFIG_CRYPTO_FIPS is not set
1706CONFIG_CRYPTO_ALGAPI=y 1760CONFIG_CRYPTO_ALGAPI=y
1707CONFIG_CRYPTO_AEAD=y 1761CONFIG_CRYPTO_ALGAPI2=y
1762CONFIG_CRYPTO_AEAD2=y
1708CONFIG_CRYPTO_BLKCIPHER=y 1763CONFIG_CRYPTO_BLKCIPHER=y
1764CONFIG_CRYPTO_BLKCIPHER2=y
1709CONFIG_CRYPTO_HASH=y 1765CONFIG_CRYPTO_HASH=y
1710CONFIG_CRYPTO_RNG=y 1766CONFIG_CRYPTO_HASH2=y
1767CONFIG_CRYPTO_RNG2=y
1711CONFIG_CRYPTO_MANAGER=y 1768CONFIG_CRYPTO_MANAGER=y
1769CONFIG_CRYPTO_MANAGER2=y
1712# CONFIG_CRYPTO_GF128MUL is not set 1770# CONFIG_CRYPTO_GF128MUL is not set
1713# CONFIG_CRYPTO_NULL is not set 1771# CONFIG_CRYPTO_NULL is not set
1714# CONFIG_CRYPTO_CRYPTD is not set 1772# CONFIG_CRYPTO_CRYPTD is not set
@@ -1742,7 +1800,7 @@ CONFIG_CRYPTO_HMAC=y
1742# 1800#
1743# Digest 1801# Digest
1744# 1802#
1745# CONFIG_CRYPTO_CRC32C is not set 1803CONFIG_CRYPTO_CRC32C=m
1746# CONFIG_CRYPTO_MD4 is not set 1804# CONFIG_CRYPTO_MD4 is not set
1747CONFIG_CRYPTO_MD5=y 1805CONFIG_CRYPTO_MD5=y
1748# CONFIG_CRYPTO_MICHAEL_MIC is not set 1806# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 8272b1ac71f9..1793d08e9c01 100644
--- a/arch/powerpc/configs/mpc866_ads_defconfig
+++ b/arch/powerpc/configs/mpc866_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:43 2008 4# Mon Jan 26 15:35:38 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -69,12 +70,12 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y 73CONFIG_GROUP_SCHED=y
74# CONFIG_FAIR_GROUP_SCHED is not set 74# CONFIG_FAIR_GROUP_SCHED is not set
75# CONFIG_RT_GROUP_SCHED is not set 75# CONFIG_RT_GROUP_SCHED is not set
76CONFIG_USER_SCHED=y 76CONFIG_USER_SCHED=y
77# CONFIG_CGROUP_SCHED is not set 77# CONFIG_CGROUP_SCHED is not set
78# CONFIG_CGROUPS is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
79CONFIG_SYSFS_DEPRECATED_V2=y 80CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
@@ -106,7 +107,6 @@ CONFIG_SLUB_DEBUG=y
106CONFIG_SLUB=y 107CONFIG_SLUB=y
107# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set 109# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y 112CONFIG_HAVE_IOREMAP_PROT=y
@@ -117,13 +117,11 @@ CONFIG_HAVE_CLK=y
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set
121CONFIG_BASE_SMALL=1 120CONFIG_BASE_SMALL=1
122# CONFIG_MODULES is not set 121# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 122CONFIG_BLOCK=y
124# CONFIG_LBD is not set 123# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set 124# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_LSF is not set
127# CONFIG_BLK_DEV_BSG is not set 125# CONFIG_BLK_DEV_BSG is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 126# CONFIG_BLK_DEV_INTEGRITY is not set
129 127
@@ -140,6 +138,10 @@ CONFIG_DEFAULT_AS=y
140# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="anticipatory" 139CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y 140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
143# CONFIG_FREEZER is not set 145# CONFIG_FREEZER is not set
144 146
145# 147#
@@ -185,6 +187,7 @@ CONFIG_NO_UCODE_PATCH=y
185# CONFIG_QUICC_ENGINE is not set 187# CONFIG_QUICC_ENGINE is not set
186# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
187CONFIG_CPM=y 189CONFIG_CPM=y
190# CONFIG_SIMPLE_GPIO is not set
188 191
189# 192#
190# Kernel options 193# Kernel options
@@ -209,6 +212,7 @@ CONFIG_BINFMT_ELF=y
209# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
210CONFIG_MATH_EMULATION=y 213CONFIG_MATH_EMULATION=y
211# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
215CONFIG_PPC_NEED_DMA_SYNC_OPS=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
213CONFIG_ARCH_HAS_WALK_MEMORY=y 217CONFIG_ARCH_HAS_WALK_MEMORY=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -223,12 +227,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set 230# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set
232CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 239# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +275,7 @@ CONFIG_NET=y
269# 275#
270# Networking options 276# Networking options
271# 277#
278CONFIG_COMPAT_NET_DEV_OPS=y
272CONFIG_PACKET=y 279CONFIG_PACKET=y
273# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
274CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -325,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
325# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
326# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
327# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set
328 336
329# 337#
330# Network testing 338# Network testing
@@ -340,8 +348,9 @@ CONFIG_WIRELESS=y
340# CONFIG_CFG80211 is not set 348# CONFIG_CFG80211 is not set
341CONFIG_WIRELESS_OLD_REGULATORY=y 349CONFIG_WIRELESS_OLD_REGULATORY=y
342# CONFIG_WIRELESS_EXT is not set 350# CONFIG_WIRELESS_EXT is not set
351# CONFIG_LIB80211 is not set
343# CONFIG_MAC80211 is not set 352# CONFIG_MAC80211 is not set
344# CONFIG_IEEE80211 is not set 353# CONFIG_WIMAX is not set
345# CONFIG_RFKILL is not set 354# CONFIG_RFKILL is not set
346# CONFIG_NET_9P is not set 355# CONFIG_NET_9P is not set
347 356
@@ -372,6 +381,7 @@ CONFIG_BLK_DEV_LOOP=y
372CONFIG_MISC_DEVICES=y 381CONFIG_MISC_DEVICES=y
373# CONFIG_EEPROM_93CX6 is not set 382# CONFIG_EEPROM_93CX6 is not set
374# CONFIG_ENCLOSURE_SERVICES is not set 383# CONFIG_ENCLOSURE_SERVICES is not set
384# CONFIG_C2PORT is not set
375CONFIG_HAVE_IDE=y 385CONFIG_HAVE_IDE=y
376# CONFIG_IDE is not set 386# CONFIG_IDE is not set
377 387
@@ -407,6 +417,9 @@ CONFIG_PHYLIB=y
407# CONFIG_BROADCOM_PHY is not set 417# CONFIG_BROADCOM_PHY is not set
408# CONFIG_ICPLUS_PHY is not set 418# CONFIG_ICPLUS_PHY is not set
409# CONFIG_REALTEK_PHY is not set 419# CONFIG_REALTEK_PHY is not set
420# CONFIG_NATIONAL_PHY is not set
421# CONFIG_STE10XP is not set
422# CONFIG_LSI_ET1011C_PHY is not set
410CONFIG_FIXED_PHY=y 423CONFIG_FIXED_PHY=y
411# CONFIG_MDIO_BITBANG is not set 424# CONFIG_MDIO_BITBANG is not set
412CONFIG_NET_ETHERNET=y 425CONFIG_NET_ETHERNET=y
@@ -433,6 +446,10 @@ CONFIG_NETDEV_10000=y
433# CONFIG_WLAN_PRE80211 is not set 446# CONFIG_WLAN_PRE80211 is not set
434# CONFIG_WLAN_80211 is not set 447# CONFIG_WLAN_80211 is not set
435# CONFIG_IWLWIFI_LEDS is not set 448# CONFIG_IWLWIFI_LEDS is not set
449
450#
451# Enable WiMAX (Networking options) to see the WiMAX drivers
452#
436# CONFIG_WAN is not set 453# CONFIG_WAN is not set
437# CONFIG_PPP is not set 454# CONFIG_PPP is not set
438# CONFIG_SLIP is not set 455# CONFIG_SLIP is not set
@@ -518,7 +535,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
518CONFIG_SERIAL_CPM=y 535CONFIG_SERIAL_CPM=y
519CONFIG_SERIAL_CPM_CONSOLE=y 536CONFIG_SERIAL_CPM_CONSOLE=y
520CONFIG_UNIX98_PTYS=y 537CONFIG_UNIX98_PTYS=y
538# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
521# CONFIG_LEGACY_PTYS is not set 539# CONFIG_LEGACY_PTYS is not set
540# CONFIG_HVC_UDBG is not set
522# CONFIG_IPMI_HANDLER is not set 541# CONFIG_IPMI_HANDLER is not set
523CONFIG_HW_RANDOM=y 542CONFIG_HW_RANDOM=y
524# CONFIG_NVRAM is not set 543# CONFIG_NVRAM is not set
@@ -549,11 +568,11 @@ CONFIG_HWMON=y
549# CONFIG_THERMAL is not set 568# CONFIG_THERMAL is not set
550# CONFIG_THERMAL_HWMON is not set 569# CONFIG_THERMAL_HWMON is not set
551# CONFIG_WATCHDOG is not set 570# CONFIG_WATCHDOG is not set
571CONFIG_SSB_POSSIBLE=y
552 572
553# 573#
554# Sonics Silicon Backplane 574# Sonics Silicon Backplane
555# 575#
556CONFIG_SSB_POSSIBLE=y
557# CONFIG_SSB is not set 576# CONFIG_SSB is not set
558 577
559# 578#
@@ -563,14 +582,7 @@ CONFIG_SSB_POSSIBLE=y
563# CONFIG_MFD_SM501 is not set 582# CONFIG_MFD_SM501 is not set
564# CONFIG_HTC_PASIC3 is not set 583# CONFIG_HTC_PASIC3 is not set
565# CONFIG_MFD_TMIO is not set 584# CONFIG_MFD_TMIO is not set
566
567#
568# Voltage and Current regulators
569#
570# CONFIG_REGULATOR is not set 585# CONFIG_REGULATOR is not set
571# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
572# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
573# CONFIG_REGULATOR_BQ24022 is not set
574 586
575# 587#
576# Multimedia devices 588# Multimedia devices
@@ -623,9 +635,13 @@ CONFIG_USB_SUPPORT=y
623# 635#
624 636
625# 637#
626# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 638# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
627# 639#
628# CONFIG_USB_GADGET is not set 640# CONFIG_USB_GADGET is not set
641
642#
643# OTG and related infrastructure
644#
629# CONFIG_MMC is not set 645# CONFIG_MMC is not set
630# CONFIG_MEMSTICK is not set 646# CONFIG_MEMSTICK is not set
631# CONFIG_NEW_LEDS is not set 647# CONFIG_NEW_LEDS is not set
@@ -657,6 +673,7 @@ CONFIG_FS_MBCACHE=y
657CONFIG_FILE_LOCKING=y 673CONFIG_FILE_LOCKING=y
658# CONFIG_XFS_FS is not set 674# CONFIG_XFS_FS is not set
659# CONFIG_OCFS2_FS is not set 675# CONFIG_OCFS2_FS is not set
676# CONFIG_BTRFS_FS is not set
660CONFIG_DNOTIFY=y 677CONFIG_DNOTIFY=y
661CONFIG_INOTIFY=y 678CONFIG_INOTIFY=y
662CONFIG_INOTIFY_USER=y 679CONFIG_INOTIFY_USER=y
@@ -690,10 +707,7 @@ CONFIG_TMPFS=y
690# CONFIG_TMPFS_POSIX_ACL is not set 707# CONFIG_TMPFS_POSIX_ACL is not set
691# CONFIG_HUGETLB_PAGE is not set 708# CONFIG_HUGETLB_PAGE is not set
692# CONFIG_CONFIGFS_FS is not set 709# CONFIG_CONFIGFS_FS is not set
693 710CONFIG_MISC_FILESYSTEMS=y
694#
695# Miscellaneous filesystems
696#
697# CONFIG_ADFS_FS is not set 711# CONFIG_ADFS_FS is not set
698# CONFIG_AFFS_FS is not set 712# CONFIG_AFFS_FS is not set
699# CONFIG_HFS_FS is not set 713# CONFIG_HFS_FS is not set
@@ -702,6 +716,7 @@ CONFIG_TMPFS=y
702# CONFIG_BFS_FS is not set 716# CONFIG_BFS_FS is not set
703# CONFIG_EFS_FS is not set 717# CONFIG_EFS_FS is not set
704CONFIG_CRAMFS=y 718CONFIG_CRAMFS=y
719# CONFIG_SQUASHFS is not set
705# CONFIG_VXFS_FS is not set 720# CONFIG_VXFS_FS is not set
706# CONFIG_MINIX_FS is not set 721# CONFIG_MINIX_FS is not set
707# CONFIG_OMFS_FS is not set 722# CONFIG_OMFS_FS is not set
@@ -758,6 +773,7 @@ CONFIG_MSDOS_PARTITION=y
758# Library routines 773# Library routines
759# 774#
760CONFIG_BITREVERSE=y 775CONFIG_BITREVERSE=y
776CONFIG_GENERIC_FIND_LAST_BIT=y
761CONFIG_CRC_CCITT=y 777CONFIG_CRC_CCITT=y
762# CONFIG_CRC16 is not set 778# CONFIG_CRC16 is not set
763# CONFIG_CRC_T10DIF is not set 779# CONFIG_CRC_T10DIF is not set
@@ -790,6 +806,8 @@ CONFIG_FRAME_WARN=1024
790# CONFIG_RCU_CPU_STALL_DETECTOR is not set 806# CONFIG_RCU_CPU_STALL_DETECTOR is not set
791# CONFIG_LATENCYTOP is not set 807# CONFIG_LATENCYTOP is not set
792CONFIG_HAVE_FUNCTION_TRACER=y 808CONFIG_HAVE_FUNCTION_TRACER=y
809CONFIG_HAVE_DYNAMIC_FTRACE=y
810CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
793 811
794# 812#
795# Tracers 813# Tracers
@@ -797,6 +815,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
797# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 815# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
798# CONFIG_SAMPLES is not set 816# CONFIG_SAMPLES is not set
799CONFIG_HAVE_ARCH_KGDB=y 817CONFIG_HAVE_ARCH_KGDB=y
818CONFIG_PRINT_STACK_DEPTH=64
800# CONFIG_IRQSTACKS is not set 819# CONFIG_IRQSTACKS is not set
801# CONFIG_PPC_EARLY_DEBUG is not set 820# CONFIG_PPC_EARLY_DEBUG is not set
802 821
@@ -814,6 +833,7 @@ CONFIG_CRYPTO=y
814# 833#
815# CONFIG_CRYPTO_FIPS is not set 834# CONFIG_CRYPTO_FIPS is not set
816# CONFIG_CRYPTO_MANAGER is not set 835# CONFIG_CRYPTO_MANAGER is not set
836# CONFIG_CRYPTO_MANAGER2 is not set
817# CONFIG_CRYPTO_GF128MUL is not set 837# CONFIG_CRYPTO_GF128MUL is not set
818# CONFIG_CRYPTO_NULL is not set 838# CONFIG_CRYPTO_NULL is not set
819# CONFIG_CRYPTO_CRYPTD is not set 839# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index 1736bbc281ec..adc756e1f252 100644
--- a/arch/powerpc/configs/mpc86xx_defconfig
+++ b/arch/powerpc/configs/mpc86xx_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:44 2008 4# Mon Jan 26 15:35:39 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -41,11 +41,12 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
41CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
42CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
43CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
44# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
45CONFIG_PPC=y 46CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 48CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 49CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 50CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 51CONFIG_PPC_OF=y
51CONFIG_OF=y 52CONFIG_OF=y
@@ -78,12 +79,12 @@ CONFIG_AUDIT=y
78CONFIG_IKCONFIG=y 79CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 80CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 81CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82CONFIG_GROUP_SCHED=y 82CONFIG_GROUP_SCHED=y
83# CONFIG_FAIR_GROUP_SCHED is not set 83# CONFIG_FAIR_GROUP_SCHED is not set
84# CONFIG_RT_GROUP_SCHED is not set 84# CONFIG_RT_GROUP_SCHED is not set
85CONFIG_USER_SCHED=y 85CONFIG_USER_SCHED=y
86# CONFIG_CGROUP_SCHED is not set 86# CONFIG_CGROUP_SCHED is not set
87# CONFIG_CGROUPS is not set
87CONFIG_SYSFS_DEPRECATED=y 88CONFIG_SYSFS_DEPRECATED=y
88CONFIG_SYSFS_DEPRECATED_V2=y 89CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_RELAY is not set 90# CONFIG_RELAY is not set
@@ -96,6 +97,7 @@ CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 99CONFIG_KALLSYMS_ALL=y
100CONFIG_KALLSYMS_STRIP_GENERATED=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 101CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y 102CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 103CONFIG_PRINTK=y
@@ -118,7 +120,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 120CONFIG_SLUB=y
119# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 122# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 123CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 124# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -130,7 +131,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
133# CONFIG_TINY_SHMEM is not set
134CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
135CONFIG_MODULES=y 135CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set 136# CONFIG_MODULE_FORCE_LOAD is not set
@@ -138,12 +138,10 @@ CONFIG_MODULE_UNLOAD=y
138CONFIG_MODULE_FORCE_UNLOAD=y 138CONFIG_MODULE_FORCE_UNLOAD=y
139CONFIG_MODVERSIONS=y 139CONFIG_MODVERSIONS=y
140# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
141CONFIG_KMOD=y
142CONFIG_STOP_MACHINE=y 141CONFIG_STOP_MACHINE=y
143CONFIG_BLOCK=y 142CONFIG_BLOCK=y
144CONFIG_LBD=y 143CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_LSF is not set
147# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 146# CONFIG_BLK_DEV_INTEGRITY is not set
149 147
@@ -160,6 +158,10 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 159CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 160CONFIG_CLASSIC_RCU=y
161# CONFIG_TREE_RCU is not set
162# CONFIG_PREEMPT_RCU is not set
163# CONFIG_TREE_RCU_TRACE is not set
164# CONFIG_PREEMPT_RCU_TRACE is not set
163# CONFIG_FREEZER is not set 165# CONFIG_FREEZER is not set
164 166
165# 167#
@@ -199,6 +201,7 @@ CONFIG_PPC_I8259=y
199# CONFIG_QUICC_ENGINE is not set 201# CONFIG_QUICC_ENGINE is not set
200CONFIG_FSL_ULI1575=y 202CONFIG_FSL_ULI1575=y
201# CONFIG_MPC8xxx_GPIO is not set 203# CONFIG_MPC8xxx_GPIO is not set
204# CONFIG_SIMPLE_GPIO is not set
202 205
203# 206#
204# Kernel options 207# Kernel options
@@ -226,6 +229,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 229CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 231# CONFIG_KEXEC is not set
232# CONFIG_CRASH_DUMP is not set
229# CONFIG_IRQ_ALL_CPUS is not set 233# CONFIG_IRQ_ALL_CPUS is not set
230CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
231CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -238,12 +242,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
238CONFIG_PAGEFLAGS_EXTENDED=y 242CONFIG_PAGEFLAGS_EXTENDED=y
239CONFIG_SPLIT_PTLOCK_CPUS=4 243CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y 244CONFIG_MIGRATION=y
241# CONFIG_RESOURCES_64BIT is not set
242# CONFIG_PHYS_ADDR_T_64BIT is not set 245# CONFIG_PHYS_ADDR_T_64BIT is not set
243CONFIG_ZONE_DMA_FLAG=1 246CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_PPC_4K_PAGES=y
251# CONFIG_PPC_16K_PAGES is not set
252# CONFIG_PPC_64K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 253CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 254CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 255# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +275,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_MSI is not set 275# CONFIG_PCI_MSI is not set
270# CONFIG_PCI_LEGACY is not set 276# CONFIG_PCI_LEGACY is not set
271# CONFIG_PCI_DEBUG is not set 277# CONFIG_PCI_DEBUG is not set
278# CONFIG_PCI_STUB is not set
272# CONFIG_PCCARD is not set 279# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 280# CONFIG_HOTPLUG_PCI is not set
274CONFIG_HAS_RAPIDIO=y 281CONFIG_HAS_RAPIDIO=y
@@ -292,6 +299,7 @@ CONFIG_NET=y
292# 299#
293# Networking options 300# Networking options
294# 301#
302CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 303CONFIG_PACKET=y
296# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
297CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -380,6 +388,7 @@ CONFIG_SCTP_HMAC_MD5=y
380# CONFIG_ECONET is not set 388# CONFIG_ECONET is not set
381# CONFIG_WAN_ROUTER is not set 389# CONFIG_WAN_ROUTER is not set
382# CONFIG_NET_SCHED is not set 390# CONFIG_NET_SCHED is not set
391# CONFIG_DCB is not set
383 392
384# 393#
385# Network testing 394# Network testing
@@ -396,8 +405,9 @@ CONFIG_WIRELESS=y
396# CONFIG_CFG80211 is not set 405# CONFIG_CFG80211 is not set
397CONFIG_WIRELESS_OLD_REGULATORY=y 406CONFIG_WIRELESS_OLD_REGULATORY=y
398# CONFIG_WIRELESS_EXT is not set 407# CONFIG_WIRELESS_EXT is not set
408# CONFIG_LIB80211 is not set
399# CONFIG_MAC80211 is not set 409# CONFIG_MAC80211 is not set
400# CONFIG_IEEE80211 is not set 410# CONFIG_WIMAX is not set
401# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
402# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
403 413
@@ -420,6 +430,7 @@ CONFIG_EXTRA_FIRMWARE=""
420# CONFIG_CONNECTOR is not set 430# CONFIG_CONNECTOR is not set
421# CONFIG_MTD is not set 431# CONFIG_MTD is not set
422CONFIG_OF_DEVICE=y 432CONFIG_OF_DEVICE=y
433CONFIG_OF_GPIO=y
423CONFIG_OF_I2C=y 434CONFIG_OF_I2C=y
424# CONFIG_PARPORT is not set 435# CONFIG_PARPORT is not set
425CONFIG_BLK_DEV=y 436CONFIG_BLK_DEV=y
@@ -446,8 +457,10 @@ CONFIG_MISC_DEVICES=y
446# CONFIG_EEPROM_93CX6 is not set 457# CONFIG_EEPROM_93CX6 is not set
447# CONFIG_SGI_IOC4 is not set 458# CONFIG_SGI_IOC4 is not set
448# CONFIG_TIFM_CORE is not set 459# CONFIG_TIFM_CORE is not set
460# CONFIG_ICS932S401 is not set
449# CONFIG_ENCLOSURE_SERVICES is not set 461# CONFIG_ENCLOSURE_SERVICES is not set
450# CONFIG_HP_ILO is not set 462# CONFIG_HP_ILO is not set
463# CONFIG_C2PORT is not set
451CONFIG_HAVE_IDE=y 464CONFIG_HAVE_IDE=y
452# CONFIG_IDE is not set 465# CONFIG_IDE is not set
453 466
@@ -491,6 +504,7 @@ CONFIG_SCSI_WAIT_SCAN=m
491# CONFIG_SCSI_SRP_ATTRS is not set 504# CONFIG_SCSI_SRP_ATTRS is not set
492CONFIG_SCSI_LOWLEVEL=y 505CONFIG_SCSI_LOWLEVEL=y
493# CONFIG_ISCSI_TCP is not set 506# CONFIG_ISCSI_TCP is not set
507# CONFIG_SCSI_CXGB3_ISCSI is not set
494# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 508# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
495# CONFIG_SCSI_3W_9XXX is not set 509# CONFIG_SCSI_3W_9XXX is not set
496# CONFIG_SCSI_ACARD is not set 510# CONFIG_SCSI_ACARD is not set
@@ -507,6 +521,8 @@ CONFIG_SCSI_LOWLEVEL=y
507# CONFIG_MEGARAID_SAS is not set 521# CONFIG_MEGARAID_SAS is not set
508# CONFIG_SCSI_HPTIOP is not set 522# CONFIG_SCSI_HPTIOP is not set
509# CONFIG_SCSI_BUSLOGIC is not set 523# CONFIG_SCSI_BUSLOGIC is not set
524# CONFIG_LIBFC is not set
525# CONFIG_FCOE is not set
510# CONFIG_SCSI_DMX3191D is not set 526# CONFIG_SCSI_DMX3191D is not set
511# CONFIG_SCSI_EATA is not set 527# CONFIG_SCSI_EATA is not set
512# CONFIG_SCSI_FUTURE_DOMAIN is not set 528# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -626,6 +642,9 @@ CONFIG_VITESSE_PHY=y
626# CONFIG_BROADCOM_PHY is not set 642# CONFIG_BROADCOM_PHY is not set
627# CONFIG_ICPLUS_PHY is not set 643# CONFIG_ICPLUS_PHY is not set
628# CONFIG_REALTEK_PHY is not set 644# CONFIG_REALTEK_PHY is not set
645# CONFIG_NATIONAL_PHY is not set
646# CONFIG_STE10XP is not set
647# CONFIG_LSI_ET1011C_PHY is not set
629# CONFIG_FIXED_PHY is not set 648# CONFIG_FIXED_PHY is not set
630# CONFIG_MDIO_BITBANG is not set 649# CONFIG_MDIO_BITBANG is not set
631CONFIG_NET_ETHERNET=y 650CONFIG_NET_ETHERNET=y
@@ -671,6 +690,7 @@ CONFIG_GIANFAR=y
671# CONFIG_JME is not set 690# CONFIG_JME is not set
672CONFIG_NETDEV_10000=y 691CONFIG_NETDEV_10000=y
673# CONFIG_CHELSIO_T1 is not set 692# CONFIG_CHELSIO_T1 is not set
693CONFIG_CHELSIO_T3_DEPENDS=y
674# CONFIG_CHELSIO_T3 is not set 694# CONFIG_CHELSIO_T3 is not set
675# CONFIG_ENIC is not set 695# CONFIG_ENIC is not set
676# CONFIG_IXGBE is not set 696# CONFIG_IXGBE is not set
@@ -695,6 +715,10 @@ CONFIG_NETDEV_10000=y
695# CONFIG_IWLWIFI_LEDS is not set 715# CONFIG_IWLWIFI_LEDS is not set
696 716
697# 717#
718# Enable WiMAX (Networking options) to see the WiMAX drivers
719#
720
721#
698# USB Network Adapters 722# USB Network Adapters
699# 723#
700# CONFIG_USB_CATC is not set 724# CONFIG_USB_CATC is not set
@@ -786,8 +810,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
786# CONFIG_SERIAL_JSM is not set 810# CONFIG_SERIAL_JSM is not set
787# CONFIG_SERIAL_OF_PLATFORM is not set 811# CONFIG_SERIAL_OF_PLATFORM is not set
788CONFIG_UNIX98_PTYS=y 812CONFIG_UNIX98_PTYS=y
813# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
789CONFIG_LEGACY_PTYS=y 814CONFIG_LEGACY_PTYS=y
790CONFIG_LEGACY_PTY_COUNT=256 815CONFIG_LEGACY_PTY_COUNT=256
816# CONFIG_HVC_UDBG is not set
791# CONFIG_IPMI_HANDLER is not set 817# CONFIG_IPMI_HANDLER is not set
792# CONFIG_HW_RANDOM is not set 818# CONFIG_HW_RANDOM is not set
793CONFIG_NVRAM=y 819CONFIG_NVRAM=y
@@ -826,6 +852,7 @@ CONFIG_I2C_HELPER_AUTO=y
826# 852#
827# I2C system bus drivers (mostly embedded / system-on-chip) 853# I2C system bus drivers (mostly embedded / system-on-chip)
828# 854#
855# CONFIG_I2C_GPIO is not set
829CONFIG_I2C_MPC=y 856CONFIG_I2C_MPC=y
830# CONFIG_I2C_OCORES is not set 857# CONFIG_I2C_OCORES is not set
831# CONFIG_I2C_SIMTEC is not set 858# CONFIG_I2C_SIMTEC is not set
@@ -852,8 +879,8 @@ CONFIG_I2C_MPC=y
852# Miscellaneous I2C Chip support 879# Miscellaneous I2C Chip support
853# 880#
854# CONFIG_DS1682 is not set 881# CONFIG_DS1682 is not set
855# CONFIG_AT24 is not set 882# CONFIG_EEPROM_AT24 is not set
856CONFIG_SENSORS_EEPROM=y 883CONFIG_EEPROM_LEGACY=y
857# CONFIG_SENSORS_PCF8574 is not set 884# CONFIG_SENSORS_PCF8574 is not set
858# CONFIG_PCF8575 is not set 885# CONFIG_PCF8575 is not set
859# CONFIG_SENSORS_PCA9539 is not set 886# CONFIG_SENSORS_PCA9539 is not set
@@ -866,18 +893,42 @@ CONFIG_SENSORS_EEPROM=y
866# CONFIG_I2C_DEBUG_CHIP is not set 893# CONFIG_I2C_DEBUG_CHIP is not set
867# CONFIG_SPI is not set 894# CONFIG_SPI is not set
868CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 895CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
869# CONFIG_GPIOLIB is not set 896CONFIG_ARCH_REQUIRE_GPIOLIB=y
897CONFIG_GPIOLIB=y
898# CONFIG_DEBUG_GPIO is not set
899# CONFIG_GPIO_SYSFS is not set
900
901#
902# Memory mapped GPIO expanders:
903#
904# CONFIG_GPIO_XILINX is not set
905
906#
907# I2C GPIO expanders:
908#
909# CONFIG_GPIO_MAX732X is not set
910# CONFIG_GPIO_PCA953X is not set
911# CONFIG_GPIO_PCF857X is not set
912
913#
914# PCI GPIO expanders:
915#
916# CONFIG_GPIO_BT8XX is not set
917
918#
919# SPI GPIO expanders:
920#
870# CONFIG_W1 is not set 921# CONFIG_W1 is not set
871# CONFIG_POWER_SUPPLY is not set 922# CONFIG_POWER_SUPPLY is not set
872# CONFIG_HWMON is not set 923# CONFIG_HWMON is not set
873# CONFIG_THERMAL is not set 924# CONFIG_THERMAL is not set
874# CONFIG_THERMAL_HWMON is not set 925# CONFIG_THERMAL_HWMON is not set
875# CONFIG_WATCHDOG is not set 926# CONFIG_WATCHDOG is not set
927CONFIG_SSB_POSSIBLE=y
876 928
877# 929#
878# Sonics Silicon Backplane 930# Sonics Silicon Backplane
879# 931#
880CONFIG_SSB_POSSIBLE=y
881# CONFIG_SSB is not set 932# CONFIG_SSB is not set
882 933
883# 934#
@@ -886,18 +937,15 @@ CONFIG_SSB_POSSIBLE=y
886# CONFIG_MFD_CORE is not set 937# CONFIG_MFD_CORE is not set
887# CONFIG_MFD_SM501 is not set 938# CONFIG_MFD_SM501 is not set
888# CONFIG_HTC_PASIC3 is not set 939# CONFIG_HTC_PASIC3 is not set
940# CONFIG_UCB1400_CORE is not set
941# CONFIG_TPS65010 is not set
942# CONFIG_TWL4030_CORE is not set
889# CONFIG_MFD_TMIO is not set 943# CONFIG_MFD_TMIO is not set
890# CONFIG_PMIC_DA903X is not set 944# CONFIG_PMIC_DA903X is not set
891# CONFIG_MFD_WM8400 is not set 945# CONFIG_MFD_WM8400 is not set
892# CONFIG_MFD_WM8350_I2C is not set 946# CONFIG_MFD_WM8350_I2C is not set
893 947# CONFIG_MFD_PCF50633 is not set
894#
895# Voltage and Current regulators
896#
897# CONFIG_REGULATOR is not set 948# CONFIG_REGULATOR is not set
898# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
899# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
900# CONFIG_REGULATOR_BQ24022 is not set
901 949
902# 950#
903# Multimedia devices 951# Multimedia devices
@@ -924,6 +972,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
924CONFIG_MEDIA_TUNER_MT20XX=m 972CONFIG_MEDIA_TUNER_MT20XX=m
925CONFIG_MEDIA_TUNER_XC2028=m 973CONFIG_MEDIA_TUNER_XC2028=m
926CONFIG_MEDIA_TUNER_XC5000=m 974CONFIG_MEDIA_TUNER_XC5000=m
975# CONFIG_DVB_DYNAMIC_MINORS is not set
927CONFIG_DVB_CAPTURE_DRIVERS=y 976CONFIG_DVB_CAPTURE_DRIVERS=y
928 977
929# 978#
@@ -969,6 +1018,12 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
969# CONFIG_DVB_FE_CUSTOMISE is not set 1018# CONFIG_DVB_FE_CUSTOMISE is not set
970 1019
971# 1020#
1021# Multistandard (satellite) frontends
1022#
1023# CONFIG_DVB_STB0899 is not set
1024# CONFIG_DVB_STB6100 is not set
1025
1026#
972# DVB-S (satellite) frontends 1027# DVB-S (satellite) frontends
973# 1028#
974# CONFIG_DVB_CX24110 is not set 1029# CONFIG_DVB_CX24110 is not set
@@ -980,8 +1035,10 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
980# CONFIG_DVB_STV0299 is not set 1035# CONFIG_DVB_STV0299 is not set
981# CONFIG_DVB_TDA8083 is not set 1036# CONFIG_DVB_TDA8083 is not set
982# CONFIG_DVB_TDA10086 is not set 1037# CONFIG_DVB_TDA10086 is not set
1038# CONFIG_DVB_TDA8261 is not set
983# CONFIG_DVB_VES1X93 is not set 1039# CONFIG_DVB_VES1X93 is not set
984# CONFIG_DVB_TUNER_ITD1000 is not set 1040# CONFIG_DVB_TUNER_ITD1000 is not set
1041# CONFIG_DVB_TUNER_CX24113 is not set
985# CONFIG_DVB_TDA826X is not set 1042# CONFIG_DVB_TDA826X is not set
986# CONFIG_DVB_TUA6100 is not set 1043# CONFIG_DVB_TUA6100 is not set
987# CONFIG_DVB_CX24116 is not set 1044# CONFIG_DVB_CX24116 is not set
@@ -1022,11 +1079,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1022# CONFIG_DVB_OR51132 is not set 1079# CONFIG_DVB_OR51132 is not set
1023# CONFIG_DVB_BCM3510 is not set 1080# CONFIG_DVB_BCM3510 is not set
1024# CONFIG_DVB_LGDT330X is not set 1081# CONFIG_DVB_LGDT330X is not set
1082# CONFIG_DVB_LGDT3304 is not set
1025# CONFIG_DVB_S5H1409 is not set 1083# CONFIG_DVB_S5H1409 is not set
1026# CONFIG_DVB_AU8522 is not set 1084# CONFIG_DVB_AU8522 is not set
1027# CONFIG_DVB_S5H1411 is not set 1085# CONFIG_DVB_S5H1411 is not set
1028 1086
1029# 1087#
1088# ISDB-T (terrestrial) frontends
1089#
1090# CONFIG_DVB_S921 is not set
1091
1092#
1030# Digital terrestrial only tuners/PLL 1093# Digital terrestrial only tuners/PLL
1031# 1094#
1032# CONFIG_DVB_PLL is not set 1095# CONFIG_DVB_PLL is not set
@@ -1079,6 +1142,7 @@ CONFIG_SND_OSSEMUL=y
1079CONFIG_SND_MIXER_OSS=y 1142CONFIG_SND_MIXER_OSS=y
1080CONFIG_SND_PCM_OSS=y 1143CONFIG_SND_PCM_OSS=y
1081CONFIG_SND_PCM_OSS_PLUGINS=y 1144CONFIG_SND_PCM_OSS_PLUGINS=y
1145# CONFIG_SND_HRTIMER is not set
1082# CONFIG_SND_DYNAMIC_MINORS is not set 1146# CONFIG_SND_DYNAMIC_MINORS is not set
1083# CONFIG_SND_SUPPORT_OLD_API is not set 1147# CONFIG_SND_SUPPORT_OLD_API is not set
1084CONFIG_SND_VERBOSE_PROCFS=y 1148CONFIG_SND_VERBOSE_PROCFS=y
@@ -1181,11 +1245,9 @@ CONFIG_HID_COMPAT=y
1181CONFIG_HID_A4TECH=y 1245CONFIG_HID_A4TECH=y
1182CONFIG_HID_APPLE=y 1246CONFIG_HID_APPLE=y
1183CONFIG_HID_BELKIN=y 1247CONFIG_HID_BELKIN=y
1184CONFIG_HID_BRIGHT=y
1185CONFIG_HID_CHERRY=y 1248CONFIG_HID_CHERRY=y
1186CONFIG_HID_CHICONY=y 1249CONFIG_HID_CHICONY=y
1187CONFIG_HID_CYPRESS=y 1250CONFIG_HID_CYPRESS=y
1188CONFIG_HID_DELL=y
1189CONFIG_HID_EZKEY=y 1251CONFIG_HID_EZKEY=y
1190CONFIG_HID_GYRATION=y 1252CONFIG_HID_GYRATION=y
1191CONFIG_HID_LOGITECH=y 1253CONFIG_HID_LOGITECH=y
@@ -1193,12 +1255,15 @@ CONFIG_HID_LOGITECH=y
1193# CONFIG_LOGIRUMBLEPAD2_FF is not set 1255# CONFIG_LOGIRUMBLEPAD2_FF is not set
1194CONFIG_HID_MICROSOFT=y 1256CONFIG_HID_MICROSOFT=y
1195CONFIG_HID_MONTEREY=y 1257CONFIG_HID_MONTEREY=y
1258# CONFIG_HID_NTRIG is not set
1196CONFIG_HID_PANTHERLORD=y 1259CONFIG_HID_PANTHERLORD=y
1197# CONFIG_PANTHERLORD_FF is not set 1260# CONFIG_PANTHERLORD_FF is not set
1198CONFIG_HID_PETALYNX=y 1261CONFIG_HID_PETALYNX=y
1199CONFIG_HID_SAMSUNG=y 1262CONFIG_HID_SAMSUNG=y
1200CONFIG_HID_SONY=y 1263CONFIG_HID_SONY=y
1201CONFIG_HID_SUNPLUS=y 1264CONFIG_HID_SUNPLUS=y
1265# CONFIG_GREENASIA_FF is not set
1266# CONFIG_HID_TOPSEED is not set
1202CONFIG_THRUSTMASTER_FF=m 1267CONFIG_THRUSTMASTER_FF=m
1203CONFIG_ZEROPLUS_FF=m 1268CONFIG_ZEROPLUS_FF=m
1204CONFIG_USB_SUPPORT=y 1269CONFIG_USB_SUPPORT=y
@@ -1231,6 +1296,7 @@ CONFIG_USB_EHCI_HCD=y
1231# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1296# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1232# CONFIG_USB_EHCI_FSL is not set 1297# CONFIG_USB_EHCI_FSL is not set
1233CONFIG_USB_EHCI_HCD_PPC_OF=y 1298CONFIG_USB_EHCI_HCD_PPC_OF=y
1299# CONFIG_USB_OXU210HP_HCD is not set
1234# CONFIG_USB_ISP116X_HCD is not set 1300# CONFIG_USB_ISP116X_HCD is not set
1235# CONFIG_USB_ISP1760_HCD is not set 1301# CONFIG_USB_ISP1760_HCD is not set
1236CONFIG_USB_OHCI_HCD=y 1302CONFIG_USB_OHCI_HCD=y
@@ -1256,18 +1322,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1256# CONFIG_USB_TMC is not set 1322# CONFIG_USB_TMC is not set
1257 1323
1258# 1324#
1259# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1325# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1260# 1326#
1261 1327
1262# 1328#
1263# may also be needed; see USB_STORAGE Help for more information 1329# see USB_STORAGE Help for more information
1264# 1330#
1265CONFIG_USB_STORAGE=y 1331CONFIG_USB_STORAGE=y
1266# CONFIG_USB_STORAGE_DEBUG is not set 1332# CONFIG_USB_STORAGE_DEBUG is not set
1267# CONFIG_USB_STORAGE_DATAFAB is not set 1333# CONFIG_USB_STORAGE_DATAFAB is not set
1268# CONFIG_USB_STORAGE_FREECOM is not set 1334# CONFIG_USB_STORAGE_FREECOM is not set
1269# CONFIG_USB_STORAGE_ISD200 is not set 1335# CONFIG_USB_STORAGE_ISD200 is not set
1270# CONFIG_USB_STORAGE_DPCM is not set
1271# CONFIG_USB_STORAGE_USBAT is not set 1336# CONFIG_USB_STORAGE_USBAT is not set
1272# CONFIG_USB_STORAGE_SDDR09 is not set 1337# CONFIG_USB_STORAGE_SDDR09 is not set
1273# CONFIG_USB_STORAGE_SDDR55 is not set 1338# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1315,6 +1380,11 @@ CONFIG_USB_STORAGE=y
1315# CONFIG_USB_ISIGHTFW is not set 1380# CONFIG_USB_ISIGHTFW is not set
1316# CONFIG_USB_VST is not set 1381# CONFIG_USB_VST is not set
1317# CONFIG_USB_GADGET is not set 1382# CONFIG_USB_GADGET is not set
1383
1384#
1385# OTG and related infrastructure
1386#
1387# CONFIG_USB_GPIO_VBUS is not set
1318# CONFIG_UWB is not set 1388# CONFIG_UWB is not set
1319# CONFIG_MMC is not set 1389# CONFIG_MMC is not set
1320# CONFIG_MEMSTICK is not set 1390# CONFIG_MEMSTICK is not set
@@ -1352,6 +1422,7 @@ CONFIG_RTC_INTF_DEV=y
1352# CONFIG_RTC_DRV_M41T80 is not set 1422# CONFIG_RTC_DRV_M41T80 is not set
1353# CONFIG_RTC_DRV_S35390A is not set 1423# CONFIG_RTC_DRV_S35390A is not set
1354# CONFIG_RTC_DRV_FM3130 is not set 1424# CONFIG_RTC_DRV_FM3130 is not set
1425# CONFIG_RTC_DRV_RX8581 is not set
1355 1426
1356# 1427#
1357# SPI RTC drivers 1428# SPI RTC drivers
@@ -1398,7 +1469,9 @@ CONFIG_FS_MBCACHE=y
1398# CONFIG_FS_POSIX_ACL is not set 1469# CONFIG_FS_POSIX_ACL is not set
1399CONFIG_FILE_LOCKING=y 1470CONFIG_FILE_LOCKING=y
1400# CONFIG_XFS_FS is not set 1471# CONFIG_XFS_FS is not set
1472# CONFIG_GFS2_FS is not set
1401# CONFIG_OCFS2_FS is not set 1473# CONFIG_OCFS2_FS is not set
1474# CONFIG_BTRFS_FS is not set
1402CONFIG_DNOTIFY=y 1475CONFIG_DNOTIFY=y
1403CONFIG_INOTIFY=y 1476CONFIG_INOTIFY=y
1404CONFIG_INOTIFY_USER=y 1477CONFIG_INOTIFY_USER=y
@@ -1440,10 +1513,7 @@ CONFIG_TMPFS=y
1440# CONFIG_TMPFS_POSIX_ACL is not set 1513# CONFIG_TMPFS_POSIX_ACL is not set
1441# CONFIG_HUGETLB_PAGE is not set 1514# CONFIG_HUGETLB_PAGE is not set
1442# CONFIG_CONFIGFS_FS is not set 1515# CONFIG_CONFIGFS_FS is not set
1443 1516CONFIG_MISC_FILESYSTEMS=y
1444#
1445# Miscellaneous filesystems
1446#
1447CONFIG_ADFS_FS=m 1517CONFIG_ADFS_FS=m
1448# CONFIG_ADFS_FS_RW is not set 1518# CONFIG_ADFS_FS_RW is not set
1449CONFIG_AFFS_FS=m 1519CONFIG_AFFS_FS=m
@@ -1454,6 +1524,7 @@ CONFIG_BEFS_FS=m
1454CONFIG_BFS_FS=m 1524CONFIG_BFS_FS=m
1455CONFIG_EFS_FS=m 1525CONFIG_EFS_FS=m
1456CONFIG_CRAMFS=y 1526CONFIG_CRAMFS=y
1527# CONFIG_SQUASHFS is not set
1457CONFIG_VXFS_FS=m 1528CONFIG_VXFS_FS=m
1458# CONFIG_MINIX_FS is not set 1529# CONFIG_MINIX_FS is not set
1459# CONFIG_OMFS_FS is not set 1530# CONFIG_OMFS_FS is not set
@@ -1555,6 +1626,7 @@ CONFIG_NLS_UTF8=m
1555# Library routines 1626# Library routines
1556# 1627#
1557CONFIG_BITREVERSE=y 1628CONFIG_BITREVERSE=y
1629CONFIG_GENERIC_FIND_LAST_BIT=y
1558# CONFIG_CRC_CCITT is not set 1630# CONFIG_CRC_CCITT is not set
1559# CONFIG_CRC16 is not set 1631# CONFIG_CRC16 is not set
1560CONFIG_CRC_T10DIF=y 1632CONFIG_CRC_T10DIF=y
@@ -1606,6 +1678,7 @@ CONFIG_DEBUG_INFO=y
1606# CONFIG_DEBUG_MEMORY_INIT is not set 1678# CONFIG_DEBUG_MEMORY_INIT is not set
1607# CONFIG_DEBUG_LIST is not set 1679# CONFIG_DEBUG_LIST is not set
1608# CONFIG_DEBUG_SG is not set 1680# CONFIG_DEBUG_SG is not set
1681# CONFIG_DEBUG_NOTIFIERS is not set
1609# CONFIG_BOOT_PRINTK_DELAY is not set 1682# CONFIG_BOOT_PRINTK_DELAY is not set
1610# CONFIG_RCU_TORTURE_TEST is not set 1683# CONFIG_RCU_TORTURE_TEST is not set
1611# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1684# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1615,6 +1688,8 @@ CONFIG_DEBUG_INFO=y
1615# CONFIG_LATENCYTOP is not set 1688# CONFIG_LATENCYTOP is not set
1616CONFIG_SYSCTL_SYSCALL_CHECK=y 1689CONFIG_SYSCTL_SYSCALL_CHECK=y
1617CONFIG_HAVE_FUNCTION_TRACER=y 1690CONFIG_HAVE_FUNCTION_TRACER=y
1691CONFIG_HAVE_DYNAMIC_FTRACE=y
1692CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1618 1693
1619# 1694#
1620# Tracers 1695# Tracers
@@ -1623,11 +1698,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1623# CONFIG_SCHED_TRACER is not set 1698# CONFIG_SCHED_TRACER is not set
1624# CONFIG_CONTEXT_SWITCH_TRACER is not set 1699# CONFIG_CONTEXT_SWITCH_TRACER is not set
1625# CONFIG_BOOT_TRACER is not set 1700# CONFIG_BOOT_TRACER is not set
1701# CONFIG_TRACE_BRANCH_PROFILING is not set
1626# CONFIG_STACK_TRACER is not set 1702# CONFIG_STACK_TRACER is not set
1627# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1703# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1628# CONFIG_SAMPLES is not set 1704# CONFIG_SAMPLES is not set
1629CONFIG_HAVE_ARCH_KGDB=y 1705CONFIG_HAVE_ARCH_KGDB=y
1630# CONFIG_KGDB is not set 1706# CONFIG_KGDB is not set
1707CONFIG_PRINT_STACK_DEPTH=64
1631# CONFIG_DEBUG_STACKOVERFLOW is not set 1708# CONFIG_DEBUG_STACKOVERFLOW is not set
1632# CONFIG_DEBUG_STACK_USAGE is not set 1709# CONFIG_DEBUG_STACK_USAGE is not set
1633# CONFIG_DEBUG_PAGEALLOC is not set 1710# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1654,11 +1731,15 @@ CONFIG_CRYPTO=y
1654# 1731#
1655# CONFIG_CRYPTO_FIPS is not set 1732# CONFIG_CRYPTO_FIPS is not set
1656CONFIG_CRYPTO_ALGAPI=y 1733CONFIG_CRYPTO_ALGAPI=y
1657CONFIG_CRYPTO_AEAD=y 1734CONFIG_CRYPTO_ALGAPI2=y
1735CONFIG_CRYPTO_AEAD2=y
1658CONFIG_CRYPTO_BLKCIPHER=y 1736CONFIG_CRYPTO_BLKCIPHER=y
1737CONFIG_CRYPTO_BLKCIPHER2=y
1659CONFIG_CRYPTO_HASH=y 1738CONFIG_CRYPTO_HASH=y
1660CONFIG_CRYPTO_RNG=y 1739CONFIG_CRYPTO_HASH2=y
1740CONFIG_CRYPTO_RNG2=y
1661CONFIG_CRYPTO_MANAGER=y 1741CONFIG_CRYPTO_MANAGER=y
1742CONFIG_CRYPTO_MANAGER2=y
1662# CONFIG_CRYPTO_GF128MUL is not set 1743# CONFIG_CRYPTO_GF128MUL is not set
1663# CONFIG_CRYPTO_NULL is not set 1744# CONFIG_CRYPTO_NULL is not set
1664# CONFIG_CRYPTO_CRYPTD is not set 1745# CONFIG_CRYPTO_CRYPTD is not set
@@ -1692,7 +1773,7 @@ CONFIG_CRYPTO_HMAC=y
1692# 1773#
1693# Digest 1774# Digest
1694# 1775#
1695# CONFIG_CRYPTO_CRC32C is not set 1776CONFIG_CRYPTO_CRC32C=m
1696# CONFIG_CRYPTO_MD4 is not set 1777# CONFIG_CRYPTO_MD4 is not set
1697CONFIG_CRYPTO_MD5=y 1778CONFIG_CRYPTO_MD5=y
1698# CONFIG_CRYPTO_MICHAEL_MIC is not set 1779# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index a4283b6a43d2..4b76321c0ec4 100644
--- a/arch/powerpc/configs/mpc885_ads_defconfig
+++ b/arch/powerpc/configs/mpc885_ads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:46 2008 4# Mon Jan 26 15:35:41 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_8xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_8xx=y 17CONFIG_8xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -40,7 +41,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
40CONFIG_PPC=y 41CONFIG_PPC=y
41CONFIG_EARLY_PRINTK=y 42CONFIG_EARLY_PRINTK=y
42CONFIG_GENERIC_NVRAM=y 43CONFIG_GENERIC_NVRAM=y
43CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 44CONFIG_SCHED_OMIT_FRAME_POINTER=y
44CONFIG_ARCH_MAY_HAVE_PC_FDC=y 45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
45CONFIG_PPC_OF=y 46CONFIG_PPC_OF=y
46CONFIG_OF=y 47CONFIG_OF=y
@@ -70,12 +71,12 @@ CONFIG_SYSVIPC_SYSCTL=y
70# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
71# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y 74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set 76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y 77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set 78# CONFIG_CGROUP_SCHED is not set
79# CONFIG_CGROUPS is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y 81CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
@@ -108,7 +109,6 @@ CONFIG_SLUB_DEBUG=y
108CONFIG_SLUB=y 109CONFIG_SLUB=y
109# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 114CONFIG_HAVE_IOREMAP_PROT=y
@@ -118,13 +118,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
121# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=1 121CONFIG_BASE_SMALL=1
123# CONFIG_MODULES is not set 122# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 123CONFIG_BLOCK=y
125# CONFIG_LBD is not set 124# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set 125# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 126# CONFIG_BLK_DEV_BSG is not set
129# CONFIG_BLK_DEV_INTEGRITY is not set 127# CONFIG_BLK_DEV_INTEGRITY is not set
130 128
@@ -141,6 +139,10 @@ CONFIG_DEFAULT_DEADLINE=y
141# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
142CONFIG_DEFAULT_IOSCHED="deadline" 140CONFIG_DEFAULT_IOSCHED="deadline"
143CONFIG_CLASSIC_RCU=y 141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
144# CONFIG_FREEZER is not set 146# CONFIG_FREEZER is not set
145 147
146# 148#
@@ -193,6 +195,7 @@ CONFIG_NO_UCODE_PATCH=y
193# CONFIG_QUICC_ENGINE is not set 195# CONFIG_QUICC_ENGINE is not set
194# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
195CONFIG_CPM=y 197CONFIG_CPM=y
198# CONFIG_SIMPLE_GPIO is not set
196 199
197# 200#
198# Kernel options 201# Kernel options
@@ -212,12 +215,12 @@ CONFIG_PREEMPT_NONE=y
212# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
213# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
214CONFIG_BINFMT_ELF=y 217CONFIG_BINFMT_ELF=y
215# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
216# CONFIG_HAVE_AOUT is not set 218# CONFIG_HAVE_AOUT is not set
217# CONFIG_BINFMT_MISC is not set 219# CONFIG_BINFMT_MISC is not set
218# CONFIG_MATH_EMULATION is not set 220# CONFIG_MATH_EMULATION is not set
219CONFIG_8XX_MINIMAL_FPEMU=y 221CONFIG_8XX_MINIMAL_FPEMU=y
220# CONFIG_IOMMU_HELPER is not set 222# CONFIG_IOMMU_HELPER is not set
223CONFIG_PPC_NEED_DMA_SYNC_OPS=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
222CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
223CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -232,12 +235,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
232CONFIG_PAGEFLAGS_EXTENDED=y 235CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 236CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y 237CONFIG_MIGRATION=y
235# CONFIG_RESOURCES_64BIT is not set
236# CONFIG_PHYS_ADDR_T_64BIT is not set 238# CONFIG_PHYS_ADDR_T_64BIT is not set
237CONFIG_ZONE_DMA_FLAG=1 239CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 240CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 241CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 242CONFIG_UNEVICTABLE_LRU=y
243CONFIG_PPC_4K_PAGES=y
244# CONFIG_PPC_16K_PAGES is not set
245# CONFIG_PPC_64K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 246CONFIG_FORCE_MAX_ZONEORDER=11
242CONFIG_PROC_DEVICETREE=y 247CONFIG_PROC_DEVICETREE=y
243# CONFIG_CMDLINE_BOOL is not set 248# CONFIG_CMDLINE_BOOL is not set
@@ -279,6 +284,7 @@ CONFIG_NET=y
279# 284#
280# Networking options 285# Networking options
281# 286#
287CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=y 288CONFIG_PACKET=y
283# CONFIG_PACKET_MMAP is not set 289# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 290CONFIG_UNIX=y
@@ -330,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
331# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
332# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
333 340
334# 341#
335# Network testing 342# Network testing
@@ -345,8 +352,9 @@ CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 353CONFIG_WIRELESS_OLD_REGULATORY=y
347# CONFIG_WIRELESS_EXT is not set 354# CONFIG_WIRELESS_EXT is not set
355# CONFIG_LIB80211 is not set
348# CONFIG_MAC80211 is not set 356# CONFIG_MAC80211 is not set
349# CONFIG_IEEE80211 is not set 357# CONFIG_WIMAX is not set
350# CONFIG_RFKILL is not set 358# CONFIG_RFKILL is not set
351# CONFIG_NET_9P is not set 359# CONFIG_NET_9P is not set
352 360
@@ -439,6 +447,12 @@ CONFIG_MTD_PHYSMAP_OF=y
439# CONFIG_MTD_ONENAND is not set 447# CONFIG_MTD_ONENAND is not set
440 448
441# 449#
450# LPDDR flash memory drivers
451#
452# CONFIG_MTD_LPDDR is not set
453# CONFIG_MTD_QINFO_PROBE is not set
454
455#
442# UBI - Unsorted block images 456# UBI - Unsorted block images
443# 457#
444# CONFIG_MTD_UBI is not set 458# CONFIG_MTD_UBI is not set
@@ -481,6 +495,9 @@ CONFIG_DAVICOM_PHY=y
481# CONFIG_BROADCOM_PHY is not set 495# CONFIG_BROADCOM_PHY is not set
482# CONFIG_ICPLUS_PHY is not set 496# CONFIG_ICPLUS_PHY is not set
483# CONFIG_REALTEK_PHY is not set 497# CONFIG_REALTEK_PHY is not set
498# CONFIG_NATIONAL_PHY is not set
499# CONFIG_STE10XP is not set
500# CONFIG_LSI_ET1011C_PHY is not set
484# CONFIG_FIXED_PHY is not set 501# CONFIG_FIXED_PHY is not set
485# CONFIG_MDIO_BITBANG is not set 502# CONFIG_MDIO_BITBANG is not set
486CONFIG_NET_ETHERNET=y 503CONFIG_NET_ETHERNET=y
@@ -506,6 +523,10 @@ CONFIG_FS_ENET_MDIO_FEC=y
506# CONFIG_WLAN_PRE80211 is not set 523# CONFIG_WLAN_PRE80211 is not set
507# CONFIG_WLAN_80211 is not set 524# CONFIG_WLAN_80211 is not set
508# CONFIG_IWLWIFI_LEDS is not set 525# CONFIG_IWLWIFI_LEDS is not set
526
527#
528# Enable WiMAX (Networking options) to see the WiMAX drivers
529#
509# CONFIG_WAN is not set 530# CONFIG_WAN is not set
510# CONFIG_PPP is not set 531# CONFIG_PPP is not set
511# CONFIG_SLIP is not set 532# CONFIG_SLIP is not set
@@ -547,7 +568,9 @@ CONFIG_SERIAL_CORE_CONSOLE=y
547CONFIG_SERIAL_CPM=y 568CONFIG_SERIAL_CPM=y
548CONFIG_SERIAL_CPM_CONSOLE=y 569CONFIG_SERIAL_CPM_CONSOLE=y
549CONFIG_UNIX98_PTYS=y 570CONFIG_UNIX98_PTYS=y
571# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
550# CONFIG_LEGACY_PTYS is not set 572# CONFIG_LEGACY_PTYS is not set
573# CONFIG_HVC_UDBG is not set
551# CONFIG_IPMI_HANDLER is not set 574# CONFIG_IPMI_HANDLER is not set
552CONFIG_HW_RANDOM=y 575CONFIG_HW_RANDOM=y
553# CONFIG_NVRAM is not set 576# CONFIG_NVRAM is not set
@@ -566,11 +589,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
566# CONFIG_THERMAL is not set 589# CONFIG_THERMAL is not set
567# CONFIG_THERMAL_HWMON is not set 590# CONFIG_THERMAL_HWMON is not set
568# CONFIG_WATCHDOG is not set 591# CONFIG_WATCHDOG is not set
592CONFIG_SSB_POSSIBLE=y
569 593
570# 594#
571# Sonics Silicon Backplane 595# Sonics Silicon Backplane
572# 596#
573CONFIG_SSB_POSSIBLE=y
574# CONFIG_SSB is not set 597# CONFIG_SSB is not set
575 598
576# 599#
@@ -580,14 +603,7 @@ CONFIG_SSB_POSSIBLE=y
580# CONFIG_MFD_SM501 is not set 603# CONFIG_MFD_SM501 is not set
581# CONFIG_HTC_PASIC3 is not set 604# CONFIG_HTC_PASIC3 is not set
582# CONFIG_MFD_TMIO is not set 605# CONFIG_MFD_TMIO is not set
583
584#
585# Voltage and Current regulators
586#
587# CONFIG_REGULATOR is not set 606# CONFIG_REGULATOR is not set
588# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
589# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
590# CONFIG_REGULATOR_BQ24022 is not set
591 607
592# 608#
593# Multimedia devices 609# Multimedia devices
@@ -641,6 +657,7 @@ CONFIG_DAB=y
641CONFIG_FILE_LOCKING=y 657CONFIG_FILE_LOCKING=y
642# CONFIG_XFS_FS is not set 658# CONFIG_XFS_FS is not set
643# CONFIG_OCFS2_FS is not set 659# CONFIG_OCFS2_FS is not set
660# CONFIG_BTRFS_FS is not set
644# CONFIG_DNOTIFY is not set 661# CONFIG_DNOTIFY is not set
645# CONFIG_INOTIFY is not set 662# CONFIG_INOTIFY is not set
646# CONFIG_QUOTA is not set 663# CONFIG_QUOTA is not set
@@ -673,10 +690,7 @@ CONFIG_TMPFS=y
673# CONFIG_TMPFS_POSIX_ACL is not set 690# CONFIG_TMPFS_POSIX_ACL is not set
674# CONFIG_HUGETLB_PAGE is not set 691# CONFIG_HUGETLB_PAGE is not set
675# CONFIG_CONFIGFS_FS is not set 692# CONFIG_CONFIGFS_FS is not set
676 693CONFIG_MISC_FILESYSTEMS=y
677#
678# Miscellaneous filesystems
679#
680# CONFIG_ADFS_FS is not set 694# CONFIG_ADFS_FS is not set
681# CONFIG_AFFS_FS is not set 695# CONFIG_AFFS_FS is not set
682# CONFIG_HFS_FS is not set 696# CONFIG_HFS_FS is not set
@@ -686,6 +700,7 @@ CONFIG_TMPFS=y
686# CONFIG_EFS_FS is not set 700# CONFIG_EFS_FS is not set
687# CONFIG_JFFS2_FS is not set 701# CONFIG_JFFS2_FS is not set
688CONFIG_CRAMFS=y 702CONFIG_CRAMFS=y
703# CONFIG_SQUASHFS is not set
689# CONFIG_VXFS_FS is not set 704# CONFIG_VXFS_FS is not set
690# CONFIG_MINIX_FS is not set 705# CONFIG_MINIX_FS is not set
691# CONFIG_OMFS_FS is not set 706# CONFIG_OMFS_FS is not set
@@ -741,6 +756,7 @@ CONFIG_MSDOS_PARTITION=y
741# 756#
742# Library routines 757# Library routines
743# 758#
759CONFIG_GENERIC_FIND_LAST_BIT=y
744# CONFIG_CRC_CCITT is not set 760# CONFIG_CRC_CCITT is not set
745# CONFIG_CRC16 is not set 761# CONFIG_CRC16 is not set
746# CONFIG_CRC_T10DIF is not set 762# CONFIG_CRC_T10DIF is not set
@@ -788,6 +804,7 @@ CONFIG_DEBUG_INFO=y
788# CONFIG_DEBUG_MEMORY_INIT is not set 804# CONFIG_DEBUG_MEMORY_INIT is not set
789# CONFIG_DEBUG_LIST is not set 805# CONFIG_DEBUG_LIST is not set
790# CONFIG_DEBUG_SG is not set 806# CONFIG_DEBUG_SG is not set
807# CONFIG_DEBUG_NOTIFIERS is not set
791# CONFIG_BOOT_PRINTK_DELAY is not set 808# CONFIG_BOOT_PRINTK_DELAY is not set
792# CONFIG_RCU_TORTURE_TEST is not set 809# CONFIG_RCU_TORTURE_TEST is not set
793# CONFIG_RCU_CPU_STALL_DETECTOR is not set 810# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -796,6 +813,8 @@ CONFIG_DEBUG_INFO=y
796# CONFIG_FAULT_INJECTION is not set 813# CONFIG_FAULT_INJECTION is not set
797# CONFIG_LATENCYTOP is not set 814# CONFIG_LATENCYTOP is not set
798CONFIG_HAVE_FUNCTION_TRACER=y 815CONFIG_HAVE_FUNCTION_TRACER=y
816CONFIG_HAVE_DYNAMIC_FTRACE=y
817CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
799 818
800# 819#
801# Tracers 820# Tracers
@@ -804,11 +823,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
804# CONFIG_SCHED_TRACER is not set 823# CONFIG_SCHED_TRACER is not set
805# CONFIG_CONTEXT_SWITCH_TRACER is not set 824# CONFIG_CONTEXT_SWITCH_TRACER is not set
806# CONFIG_BOOT_TRACER is not set 825# CONFIG_BOOT_TRACER is not set
826# CONFIG_TRACE_BRANCH_PROFILING is not set
807# CONFIG_STACK_TRACER is not set 827# CONFIG_STACK_TRACER is not set
808# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 828# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
809# CONFIG_SAMPLES is not set 829# CONFIG_SAMPLES is not set
810CONFIG_HAVE_ARCH_KGDB=y 830CONFIG_HAVE_ARCH_KGDB=y
811# CONFIG_KGDB is not set 831# CONFIG_KGDB is not set
832CONFIG_PRINT_STACK_DEPTH=64
812# CONFIG_DEBUG_STACKOVERFLOW is not set 833# CONFIG_DEBUG_STACKOVERFLOW is not set
813# CONFIG_DEBUG_STACK_USAGE is not set 834# CONFIG_DEBUG_STACK_USAGE is not set
814# CONFIG_DEBUG_PAGEALLOC is not set 835# CONFIG_DEBUG_PAGEALLOC is not set
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig
index 199e5f59d7a6..4f8681cc8d77 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_defconfig
@@ -984,7 +984,7 @@ CONFIG_I2C_PASEMI=y
984# Miscellaneous I2C Chip support 984# Miscellaneous I2C Chip support
985# 985#
986# CONFIG_DS1682 is not set 986# CONFIG_DS1682 is not set
987CONFIG_SENSORS_EEPROM=y 987CONFIG_EEPROM_LEGACY=y
988# CONFIG_SENSORS_PCF8574 is not set 988# CONFIG_SENSORS_PCF8574 is not set
989# CONFIG_PCF8575 is not set 989# CONFIG_PCF8575 is not set
990# CONFIG_SENSORS_PCF8591 is not set 990# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index de9b121820a6..5339bb44cce9 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_defconfig
@@ -1232,8 +1232,8 @@ CONFIG_I2C_POWERMAC=y
1232# Miscellaneous I2C Chip support 1232# Miscellaneous I2C Chip support
1233# 1233#
1234# CONFIG_DS1682 is not set 1234# CONFIG_DS1682 is not set
1235# CONFIG_AT24 is not set 1235# CONFIG_EEPROM_AT24 is not set
1236# CONFIG_SENSORS_EEPROM is not set 1236# CONFIG_EEPROM_LEGACY is not set
1237# CONFIG_SENSORS_PCF8574 is not set 1237# CONFIG_SENSORS_PCF8574 is not set
1238# CONFIG_PCF8575 is not set 1238# CONFIG_PCF8575 is not set
1239# CONFIG_SENSORS_PCA9539 is not set 1239# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig
index 4256e2c4534b..326205cabf77 100644
--- a/arch/powerpc/configs/ppc40x_defconfig
+++ b/arch/powerpc/configs/ppc40x_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Fri Nov 14 09:54:44 2008 4# Fri Jan 23 08:44:03 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_40x=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_4xx=y 17CONFIG_4xx=y
18CONFIG_PPC_MMU_NOHASH=y
18# CONFIG_PPC_MM_SLICES is not set 19# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y 20CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 21CONFIG_PPC32=y
@@ -41,7 +42,7 @@ CONFIG_GENERIC_GPIO=y
41CONFIG_PPC=y 42CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 43CONFIG_EARLY_PRINTK=y
43CONFIG_GENERIC_NVRAM=y 44CONFIG_GENERIC_NVRAM=y
44CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 45CONFIG_SCHED_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 46CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 47CONFIG_PPC_OF=y
47CONFIG_OF=y 48CONFIG_OF=y
@@ -72,12 +73,12 @@ CONFIG_POSIX_MQUEUE=y
72# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 74# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 75CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set
76CONFIG_GROUP_SCHED=y 76CONFIG_GROUP_SCHED=y
77CONFIG_FAIR_GROUP_SCHED=y 77CONFIG_FAIR_GROUP_SCHED=y
78# CONFIG_RT_GROUP_SCHED is not set 78# CONFIG_RT_GROUP_SCHED is not set
79CONFIG_USER_SCHED=y 79CONFIG_USER_SCHED=y
80# CONFIG_CGROUP_SCHED is not set 80# CONFIG_CGROUP_SCHED is not set
81# CONFIG_CGROUPS is not set
81CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y 83CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
@@ -90,6 +91,7 @@ CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
91CONFIG_KALLSYMS=y 92CONFIG_KALLSYMS=y
92CONFIG_KALLSYMS_ALL=y 93CONFIG_KALLSYMS_ALL=y
94CONFIG_KALLSYMS_STRIP_GENERATED=y
93CONFIG_KALLSYMS_EXTRA_PASS=y 95CONFIG_KALLSYMS_EXTRA_PASS=y
94CONFIG_HOTPLUG=y 96CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 97CONFIG_PRINTK=y
@@ -112,7 +114,6 @@ CONFIG_SLUB_DEBUG=y
112CONFIG_SLUB=y 114CONFIG_SLUB=y
113# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -123,7 +124,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set
127CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y 128CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set 129# CONFIG_MODULE_FORCE_LOAD is not set
@@ -131,11 +131,9 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set 131# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set 132# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_KMOD=y
135CONFIG_BLOCK=y 134CONFIG_BLOCK=y
136CONFIG_LBD=y 135CONFIG_LBD=y
137# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_LSF is not set
139# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
141 139
@@ -152,6 +150,10 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
154CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_TREE_RCU is not set
154# CONFIG_PREEMPT_RCU is not set
155# CONFIG_TREE_RCU_TRACE is not set
156# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
156CONFIG_PPC4xx_PCI_EXPRESS=y 158CONFIG_PPC4xx_PCI_EXPRESS=y
157 159
@@ -192,6 +194,7 @@ CONFIG_IBM405_ERR51=y
192# CONFIG_CPU_FREQ is not set 194# CONFIG_CPU_FREQ is not set
193# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
194CONFIG_OF_RTC=y 196CONFIG_OF_RTC=y
197# CONFIG_SIMPLE_GPIO is not set
195 198
196# 199#
197# Kernel options 200# Kernel options
@@ -215,6 +218,7 @@ CONFIG_BINFMT_ELF=y
215# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
216# CONFIG_MATH_EMULATION is not set 219# CONFIG_MATH_EMULATION is not set
217# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
221CONFIG_PPC_NEED_DMA_SYNC_OPS=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
219CONFIG_ARCH_HAS_WALK_MEMORY=y 223CONFIG_ARCH_HAS_WALK_MEMORY=y
220CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -229,12 +233,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
229CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
232CONFIG_RESOURCES_64BIT=y
233# CONFIG_PHYS_ADDR_T_64BIT is not set 236# CONFIG_PHYS_ADDR_T_64BIT is not set
234CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 240CONFIG_UNEVICTABLE_LRU=y
241CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
239CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
240# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -258,6 +264,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
258# CONFIG_PCI_MSI is not set 264# CONFIG_PCI_MSI is not set
259# CONFIG_PCI_LEGACY is not set 265# CONFIG_PCI_LEGACY is not set
260# CONFIG_PCI_DEBUG is not set 266# CONFIG_PCI_DEBUG is not set
267# CONFIG_PCI_STUB is not set
261# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
262# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
263# CONFIG_HAS_RAPIDIO is not set 270# CONFIG_HAS_RAPIDIO is not set
@@ -282,6 +289,7 @@ CONFIG_NET=y
282# 289#
283# Networking options 290# Networking options
284# 291#
292CONFIG_COMPAT_NET_DEV_OPS=y
285CONFIG_PACKET=y 293CONFIG_PACKET=y
286# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
287CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -355,6 +363,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
355# CONFIG_ECONET is not set 363# CONFIG_ECONET is not set
356# CONFIG_WAN_ROUTER is not set 364# CONFIG_WAN_ROUTER is not set
357# CONFIG_NET_SCHED is not set 365# CONFIG_NET_SCHED is not set
366# CONFIG_DCB is not set
358 367
359# 368#
360# Network testing 369# Network testing
@@ -370,8 +379,9 @@ CONFIG_WIRELESS=y
370# CONFIG_CFG80211 is not set 379# CONFIG_CFG80211 is not set
371CONFIG_WIRELESS_OLD_REGULATORY=y 380CONFIG_WIRELESS_OLD_REGULATORY=y
372# CONFIG_WIRELESS_EXT is not set 381# CONFIG_WIRELESS_EXT is not set
382# CONFIG_LIB80211 is not set
373# CONFIG_MAC80211 is not set 383# CONFIG_MAC80211 is not set
374# CONFIG_IEEE80211 is not set 384# CONFIG_WIMAX is not set
375# CONFIG_RFKILL is not set 385# CONFIG_RFKILL is not set
376# CONFIG_NET_9P is not set 386# CONFIG_NET_9P is not set
377 387
@@ -397,6 +407,7 @@ CONFIG_MTD=y
397# CONFIG_MTD_DEBUG is not set 407# CONFIG_MTD_DEBUG is not set
398# CONFIG_MTD_CONCAT is not set 408# CONFIG_MTD_CONCAT is not set
399CONFIG_MTD_PARTITIONS=y 409CONFIG_MTD_PARTITIONS=y
410# CONFIG_MTD_TESTS is not set
400# CONFIG_MTD_REDBOOT_PARTS is not set 411# CONFIG_MTD_REDBOOT_PARTS is not set
401CONFIG_MTD_CMDLINE_PARTS=y 412CONFIG_MTD_CMDLINE_PARTS=y
402CONFIG_MTD_OF_PARTS=y 413CONFIG_MTD_OF_PARTS=y
@@ -469,6 +480,12 @@ CONFIG_MTD_PHYSMAP_OF=y
469# CONFIG_MTD_ONENAND is not set 480# CONFIG_MTD_ONENAND is not set
470 481
471# 482#
483# LPDDR flash memory drivers
484#
485# CONFIG_MTD_LPDDR is not set
486# CONFIG_MTD_QINFO_PROBE is not set
487
488#
472# UBI - Unsorted block images 489# UBI - Unsorted block images
473# 490#
474CONFIG_MTD_UBI=m 491CONFIG_MTD_UBI=m
@@ -593,6 +610,7 @@ CONFIG_NETDEV_1000=y
593# CONFIG_JME is not set 610# CONFIG_JME is not set
594CONFIG_NETDEV_10000=y 611CONFIG_NETDEV_10000=y
595# CONFIG_CHELSIO_T1 is not set 612# CONFIG_CHELSIO_T1 is not set
613CONFIG_CHELSIO_T3_DEPENDS=y
596# CONFIG_CHELSIO_T3 is not set 614# CONFIG_CHELSIO_T3 is not set
597# CONFIG_ENIC is not set 615# CONFIG_ENIC is not set
598# CONFIG_IXGBE is not set 616# CONFIG_IXGBE is not set
@@ -615,6 +633,10 @@ CONFIG_NETDEV_10000=y
615# CONFIG_WLAN_PRE80211 is not set 633# CONFIG_WLAN_PRE80211 is not set
616# CONFIG_WLAN_80211 is not set 634# CONFIG_WLAN_80211 is not set
617# CONFIG_IWLWIFI_LEDS is not set 635# CONFIG_IWLWIFI_LEDS is not set
636
637#
638# Enable WiMAX (Networking options) to see the WiMAX drivers
639#
618# CONFIG_WAN is not set 640# CONFIG_WAN is not set
619# CONFIG_FDDI is not set 641# CONFIG_FDDI is not set
620# CONFIG_HIPPI is not set 642# CONFIG_HIPPI is not set
@@ -674,9 +696,12 @@ CONFIG_SERIAL_CORE=y
674CONFIG_SERIAL_CORE_CONSOLE=y 696CONFIG_SERIAL_CORE_CONSOLE=y
675# CONFIG_SERIAL_JSM is not set 697# CONFIG_SERIAL_JSM is not set
676CONFIG_SERIAL_OF_PLATFORM=y 698CONFIG_SERIAL_OF_PLATFORM=y
699# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
677CONFIG_UNIX98_PTYS=y 700CONFIG_UNIX98_PTYS=y
701# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
678CONFIG_LEGACY_PTYS=y 702CONFIG_LEGACY_PTYS=y
679CONFIG_LEGACY_PTY_COUNT=256 703CONFIG_LEGACY_PTY_COUNT=256
704# CONFIG_HVC_UDBG is not set
680# CONFIG_IPMI_HANDLER is not set 705# CONFIG_IPMI_HANDLER is not set
681# CONFIG_HW_RANDOM is not set 706# CONFIG_HW_RANDOM is not set
682# CONFIG_NVRAM is not set 707# CONFIG_NVRAM is not set
@@ -745,13 +770,12 @@ CONFIG_I2C_IBM_IIC=m
745# Miscellaneous I2C Chip support 770# Miscellaneous I2C Chip support
746# 771#
747# CONFIG_DS1682 is not set 772# CONFIG_DS1682 is not set
748# CONFIG_AT24 is not set 773# CONFIG_EEPROM_AT24 is not set
749# CONFIG_SENSORS_EEPROM is not set 774# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 775# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_PCF8575 is not set 776# CONFIG_PCF8575 is not set
752# CONFIG_SENSORS_PCA9539 is not set 777# CONFIG_SENSORS_PCA9539 is not set
753# CONFIG_SENSORS_PCF8591 is not set 778# CONFIG_SENSORS_PCF8591 is not set
754# CONFIG_TPS65010 is not set
755# CONFIG_SENSORS_MAX6875 is not set 779# CONFIG_SENSORS_MAX6875 is not set
756# CONFIG_SENSORS_TSL2550 is not set 780# CONFIG_SENSORS_TSL2550 is not set
757# CONFIG_I2C_DEBUG_CORE is not set 781# CONFIG_I2C_DEBUG_CORE is not set
@@ -803,9 +827,11 @@ CONFIG_SSB_POSSIBLE=y
803# CONFIG_MFD_CORE is not set 827# CONFIG_MFD_CORE is not set
804# CONFIG_MFD_SM501 is not set 828# CONFIG_MFD_SM501 is not set
805# CONFIG_HTC_PASIC3 is not set 829# CONFIG_HTC_PASIC3 is not set
830# CONFIG_TPS65010 is not set
806# CONFIG_MFD_TMIO is not set 831# CONFIG_MFD_TMIO is not set
807# CONFIG_MFD_WM8400 is not set 832# CONFIG_MFD_WM8400 is not set
808# CONFIG_MFD_WM8350_I2C is not set 833# CONFIG_MFD_WM8350_I2C is not set
834# CONFIG_MFD_PCF50633 is not set
809# CONFIG_REGULATOR is not set 835# CONFIG_REGULATOR is not set
810 836
811# 837#
@@ -904,9 +930,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
904# 930#
905 931
906# 932#
907# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 933# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
908# 934#
909# CONFIG_USB_GADGET is not set 935# CONFIG_USB_GADGET is not set
936
937#
938# OTG and related infrastructure
939#
910# CONFIG_UWB is not set 940# CONFIG_UWB is not set
911# CONFIG_MMC is not set 941# CONFIG_MMC is not set
912# CONFIG_MEMSTICK is not set 942# CONFIG_MEMSTICK is not set
@@ -918,7 +948,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y
918# CONFIG_DMADEVICES is not set 948# CONFIG_DMADEVICES is not set
919# CONFIG_UIO is not set 949# CONFIG_UIO is not set
920# CONFIG_STAGING is not set 950# CONFIG_STAGING is not set
921CONFIG_STAGING_EXCLUDE_BUILD=y
922 951
923# 952#
924# File systems 953# File systems
@@ -939,7 +968,9 @@ CONFIG_FS_MBCACHE=m
939# CONFIG_FS_POSIX_ACL is not set 968# CONFIG_FS_POSIX_ACL is not set
940CONFIG_FILE_LOCKING=y 969CONFIG_FILE_LOCKING=y
941# CONFIG_XFS_FS is not set 970# CONFIG_XFS_FS is not set
971# CONFIG_GFS2_FS is not set
942# CONFIG_OCFS2_FS is not set 972# CONFIG_OCFS2_FS is not set
973# CONFIG_BTRFS_FS is not set
943CONFIG_DNOTIFY=y 974CONFIG_DNOTIFY=y
944CONFIG_INOTIFY=y 975CONFIG_INOTIFY=y
945CONFIG_INOTIFY_USER=y 976CONFIG_INOTIFY_USER=y
@@ -976,10 +1007,7 @@ CONFIG_TMPFS=y
976# CONFIG_TMPFS_POSIX_ACL is not set 1007# CONFIG_TMPFS_POSIX_ACL is not set
977# CONFIG_HUGETLB_PAGE is not set 1008# CONFIG_HUGETLB_PAGE is not set
978# CONFIG_CONFIGFS_FS is not set 1009# CONFIG_CONFIGFS_FS is not set
979 1010CONFIG_MISC_FILESYSTEMS=y
980#
981# Miscellaneous filesystems
982#
983# CONFIG_ADFS_FS is not set 1011# CONFIG_ADFS_FS is not set
984# CONFIG_AFFS_FS is not set 1012# CONFIG_AFFS_FS is not set
985# CONFIG_HFS_FS is not set 1013# CONFIG_HFS_FS is not set
@@ -1005,6 +1033,7 @@ CONFIG_UBIFS_FS_LZO=y
1005CONFIG_UBIFS_FS_ZLIB=y 1033CONFIG_UBIFS_FS_ZLIB=y
1006# CONFIG_UBIFS_FS_DEBUG is not set 1034# CONFIG_UBIFS_FS_DEBUG is not set
1007CONFIG_CRAMFS=y 1035CONFIG_CRAMFS=y
1036# CONFIG_SQUASHFS is not set
1008# CONFIG_VXFS_FS is not set 1037# CONFIG_VXFS_FS is not set
1009# CONFIG_MINIX_FS is not set 1038# CONFIG_MINIX_FS is not set
1010# CONFIG_OMFS_FS is not set 1039# CONFIG_OMFS_FS is not set
@@ -1084,6 +1113,7 @@ CONFIG_NLS_ISO8859_1=m
1084# Library routines 1113# Library routines
1085# 1114#
1086CONFIG_BITREVERSE=y 1115CONFIG_BITREVERSE=y
1116CONFIG_GENERIC_FIND_LAST_BIT=y
1087# CONFIG_CRC_CCITT is not set 1117# CONFIG_CRC_CCITT is not set
1088CONFIG_CRC16=m 1118CONFIG_CRC16=m
1089# CONFIG_CRC_T10DIF is not set 1119# CONFIG_CRC_T10DIF is not set
@@ -1137,6 +1167,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1137# CONFIG_DEBUG_MEMORY_INIT is not set 1167# CONFIG_DEBUG_MEMORY_INIT is not set
1138# CONFIG_DEBUG_LIST is not set 1168# CONFIG_DEBUG_LIST is not set
1139# CONFIG_DEBUG_SG is not set 1169# CONFIG_DEBUG_SG is not set
1170# CONFIG_DEBUG_NOTIFIERS is not set
1140# CONFIG_BOOT_PRINTK_DELAY is not set 1171# CONFIG_BOOT_PRINTK_DELAY is not set
1141# CONFIG_RCU_TORTURE_TEST is not set 1172# CONFIG_RCU_TORTURE_TEST is not set
1142# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1173# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1146,6 +1177,8 @@ CONFIG_DEBUG_BUGVERBOSE=y
1146# CONFIG_LATENCYTOP is not set 1177# CONFIG_LATENCYTOP is not set
1147CONFIG_SYSCTL_SYSCALL_CHECK=y 1178CONFIG_SYSCTL_SYSCALL_CHECK=y
1148CONFIG_HAVE_FUNCTION_TRACER=y 1179CONFIG_HAVE_FUNCTION_TRACER=y
1180CONFIG_HAVE_DYNAMIC_FTRACE=y
1181CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1149 1182
1150# 1183#
1151# Tracers 1184# Tracers
@@ -1154,11 +1187,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1154# CONFIG_SCHED_TRACER is not set 1187# CONFIG_SCHED_TRACER is not set
1155# CONFIG_CONTEXT_SWITCH_TRACER is not set 1188# CONFIG_CONTEXT_SWITCH_TRACER is not set
1156# CONFIG_BOOT_TRACER is not set 1189# CONFIG_BOOT_TRACER is not set
1190# CONFIG_TRACE_BRANCH_PROFILING is not set
1157# CONFIG_STACK_TRACER is not set 1191# CONFIG_STACK_TRACER is not set
1158# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1192# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1159# CONFIG_SAMPLES is not set 1193# CONFIG_SAMPLES is not set
1160CONFIG_HAVE_ARCH_KGDB=y 1194CONFIG_HAVE_ARCH_KGDB=y
1161# CONFIG_KGDB is not set 1195# CONFIG_KGDB is not set
1196CONFIG_PRINT_STACK_DEPTH=64
1162# CONFIG_DEBUG_STACKOVERFLOW is not set 1197# CONFIG_DEBUG_STACKOVERFLOW is not set
1163# CONFIG_DEBUG_STACK_USAGE is not set 1198# CONFIG_DEBUG_STACK_USAGE is not set
1164# CONFIG_DEBUG_PAGEALLOC is not set 1199# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1185,11 +1220,15 @@ CONFIG_CRYPTO=y
1185# 1220#
1186# CONFIG_CRYPTO_FIPS is not set 1221# CONFIG_CRYPTO_FIPS is not set
1187CONFIG_CRYPTO_ALGAPI=y 1222CONFIG_CRYPTO_ALGAPI=y
1188CONFIG_CRYPTO_AEAD=y 1223CONFIG_CRYPTO_ALGAPI2=y
1224CONFIG_CRYPTO_AEAD2=y
1189CONFIG_CRYPTO_BLKCIPHER=y 1225CONFIG_CRYPTO_BLKCIPHER=y
1226CONFIG_CRYPTO_BLKCIPHER2=y
1190CONFIG_CRYPTO_HASH=y 1227CONFIG_CRYPTO_HASH=y
1191CONFIG_CRYPTO_RNG=y 1228CONFIG_CRYPTO_HASH2=y
1229CONFIG_CRYPTO_RNG2=y
1192CONFIG_CRYPTO_MANAGER=y 1230CONFIG_CRYPTO_MANAGER=y
1231CONFIG_CRYPTO_MANAGER2=y
1193# CONFIG_CRYPTO_GF128MUL is not set 1232# CONFIG_CRYPTO_GF128MUL is not set
1194# CONFIG_CRYPTO_NULL is not set 1233# CONFIG_CRYPTO_NULL is not set
1195# CONFIG_CRYPTO_CRYPTD is not set 1234# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig
index 034a1fbdc887..5e6d55f006bb 100644
--- a/arch/powerpc/configs/ppc44x_defconfig
+++ b/arch/powerpc/configs/ppc44x_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.28-rc4 3# Linux kernel version: 2.6.29-rc2
4# Fri Nov 14 10:06:19 2008 4# Fri Jan 23 08:43:46 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,6 +19,7 @@ CONFIG_4xx=y
19CONFIG_BOOKE=y 19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y 20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y 21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y 24CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y 25CONFIG_PPC32=y
@@ -45,7 +46,7 @@ CONFIG_GENERIC_GPIO=y
45CONFIG_PPC=y 46CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 48CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 49CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 50CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 51CONFIG_PPC_OF=y
51CONFIG_OF=y 52CONFIG_OF=y
@@ -76,12 +77,12 @@ CONFIG_POSIX_MQUEUE=y
76# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
77# CONFIG_IKCONFIG is not set 78# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 79CONFIG_LOG_BUF_SHIFT=14
79# CONFIG_CGROUPS is not set
80CONFIG_GROUP_SCHED=y 80CONFIG_GROUP_SCHED=y
81CONFIG_FAIR_GROUP_SCHED=y 81CONFIG_FAIR_GROUP_SCHED=y
82# CONFIG_RT_GROUP_SCHED is not set 82# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y 83CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set 84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
85CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
86CONFIG_SYSFS_DEPRECATED_V2=y 87CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
@@ -94,6 +95,7 @@ CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
95CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
96CONFIG_KALLSYMS_ALL=y 97CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_STRIP_GENERATED=y
97CONFIG_KALLSYMS_EXTRA_PASS=y 99CONFIG_KALLSYMS_EXTRA_PASS=y
98CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 101CONFIG_PRINTK=y
@@ -116,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
116CONFIG_SLUB=y 118CONFIG_SLUB=y
117# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -127,7 +128,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
130# CONFIG_TINY_SHMEM is not set
131CONFIG_BASE_SMALL=0 131CONFIG_BASE_SMALL=0
132CONFIG_MODULES=y 132CONFIG_MODULES=y
133# CONFIG_MODULE_FORCE_LOAD is not set 133# CONFIG_MODULE_FORCE_LOAD is not set
@@ -135,11 +135,9 @@ CONFIG_MODULE_UNLOAD=y
135# CONFIG_MODULE_FORCE_UNLOAD is not set 135# CONFIG_MODULE_FORCE_UNLOAD is not set
136# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
137# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_KMOD=y
139CONFIG_BLOCK=y 138CONFIG_BLOCK=y
140CONFIG_LBD=y 139CONFIG_LBD=y
141# CONFIG_BLK_DEV_IO_TRACE is not set 140# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_LSF is not set
143# CONFIG_BLK_DEV_BSG is not set 141# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set 142# CONFIG_BLK_DEV_INTEGRITY is not set
145 143
@@ -157,6 +155,10 @@ CONFIG_DEFAULT_AS=y
157CONFIG_DEFAULT_IOSCHED="anticipatory" 155CONFIG_DEFAULT_IOSCHED="anticipatory"
158CONFIG_PREEMPT_NOTIFIERS=y 156CONFIG_PREEMPT_NOTIFIERS=y
159CONFIG_CLASSIC_RCU=y 157CONFIG_CLASSIC_RCU=y
158# CONFIG_TREE_RCU is not set
159# CONFIG_PREEMPT_RCU is not set
160# CONFIG_TREE_RCU_TRACE is not set
161# CONFIG_PREEMPT_RCU_TRACE is not set
160# CONFIG_FREEZER is not set 162# CONFIG_FREEZER is not set
161CONFIG_PPC4xx_PCI_EXPRESS=y 163CONFIG_PPC4xx_PCI_EXPRESS=y
162 164
@@ -204,6 +206,7 @@ CONFIG_XILINX_VIRTEX_5_FXT=y
204# CONFIG_CPU_FREQ is not set 206# CONFIG_CPU_FREQ is not set
205# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
206CONFIG_OF_RTC=y 208CONFIG_OF_RTC=y
209# CONFIG_SIMPLE_GPIO is not set
207 210
208# 211#
209# Kernel options 212# Kernel options
@@ -227,6 +230,7 @@ CONFIG_BINFMT_ELF=y
227# CONFIG_BINFMT_MISC is not set 230# CONFIG_BINFMT_MISC is not set
228CONFIG_MATH_EMULATION=y 231CONFIG_MATH_EMULATION=y
229# CONFIG_IOMMU_HELPER is not set 232# CONFIG_IOMMU_HELPER is not set
233CONFIG_PPC_NEED_DMA_SYNC_OPS=y
230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 234CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
231CONFIG_ARCH_HAS_WALK_MEMORY=y 235CONFIG_ARCH_HAS_WALK_MEMORY=y
232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 236CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -241,12 +245,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
241CONFIG_PAGEFLAGS_EXTENDED=y 245CONFIG_PAGEFLAGS_EXTENDED=y
242CONFIG_SPLIT_PTLOCK_CPUS=4 246CONFIG_SPLIT_PTLOCK_CPUS=4
243CONFIG_MIGRATION=y 247CONFIG_MIGRATION=y
244CONFIG_RESOURCES_64BIT=y
245CONFIG_PHYS_ADDR_T_64BIT=y 248CONFIG_PHYS_ADDR_T_64BIT=y
246CONFIG_ZONE_DMA_FLAG=1 249CONFIG_ZONE_DMA_FLAG=1
247CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
248CONFIG_VIRT_TO_BUS=y 251CONFIG_VIRT_TO_BUS=y
249CONFIG_UNEVICTABLE_LRU=y 252CONFIG_UNEVICTABLE_LRU=y
253CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 257CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +275,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_MSI is not set 275# CONFIG_PCI_MSI is not set
270# CONFIG_PCI_LEGACY is not set 276# CONFIG_PCI_LEGACY is not set
271# CONFIG_PCI_DEBUG is not set 277# CONFIG_PCI_DEBUG is not set
278# CONFIG_PCI_STUB is not set
272# CONFIG_PCCARD is not set 279# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 280# CONFIG_HOTPLUG_PCI is not set
274# CONFIG_HAS_RAPIDIO is not set 281# CONFIG_HAS_RAPIDIO is not set
@@ -293,6 +300,7 @@ CONFIG_NET=y
293# 300#
294# Networking options 301# Networking options
295# 302#
303CONFIG_COMPAT_NET_DEV_OPS=y
296CONFIG_PACKET=y 304CONFIG_PACKET=y
297# CONFIG_PACKET_MMAP is not set 305# CONFIG_PACKET_MMAP is not set
298CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -354,10 +362,12 @@ CONFIG_IPV6_NDISC_NODETYPE=y
354# CONFIG_IP_SCTP is not set 362# CONFIG_IP_SCTP is not set
355# CONFIG_TIPC is not set 363# CONFIG_TIPC is not set
356# CONFIG_ATM is not set 364# CONFIG_ATM is not set
365CONFIG_STP=m
357CONFIG_BRIDGE=m 366CONFIG_BRIDGE=m
358# CONFIG_NET_DSA is not set 367# CONFIG_NET_DSA is not set
359# CONFIG_VLAN_8021Q is not set 368# CONFIG_VLAN_8021Q is not set
360# CONFIG_DECNET is not set 369# CONFIG_DECNET is not set
370CONFIG_LLC=m
361# CONFIG_LLC2 is not set 371# CONFIG_LLC2 is not set
362# CONFIG_IPX is not set 372# CONFIG_IPX is not set
363# CONFIG_ATALK is not set 373# CONFIG_ATALK is not set
@@ -366,6 +376,7 @@ CONFIG_BRIDGE=m
366# CONFIG_ECONET is not set 376# CONFIG_ECONET is not set
367# CONFIG_WAN_ROUTER is not set 377# CONFIG_WAN_ROUTER is not set
368# CONFIG_NET_SCHED is not set 378# CONFIG_NET_SCHED is not set
379# CONFIG_DCB is not set
369 380
370# 381#
371# Network testing 382# Network testing
@@ -378,6 +389,7 @@ CONFIG_BRIDGE=m
378# CONFIG_AF_RXRPC is not set 389# CONFIG_AF_RXRPC is not set
379# CONFIG_PHONET is not set 390# CONFIG_PHONET is not set
380# CONFIG_WIRELESS is not set 391# CONFIG_WIRELESS is not set
392# CONFIG_WIMAX is not set
381# CONFIG_RFKILL is not set 393# CONFIG_RFKILL is not set
382# CONFIG_NET_9P is not set 394# CONFIG_NET_9P is not set
383 395
@@ -403,6 +415,7 @@ CONFIG_MTD=y
403# CONFIG_MTD_DEBUG is not set 415# CONFIG_MTD_DEBUG is not set
404# CONFIG_MTD_CONCAT is not set 416# CONFIG_MTD_CONCAT is not set
405CONFIG_MTD_PARTITIONS=y 417CONFIG_MTD_PARTITIONS=y
418# CONFIG_MTD_TESTS is not set
406# CONFIG_MTD_REDBOOT_PARTS is not set 419# CONFIG_MTD_REDBOOT_PARTS is not set
407# CONFIG_MTD_CMDLINE_PARTS is not set 420# CONFIG_MTD_CMDLINE_PARTS is not set
408CONFIG_MTD_OF_PARTS=y 421CONFIG_MTD_OF_PARTS=y
@@ -474,6 +487,12 @@ CONFIG_MTD_PHYSMAP_OF=y
474# CONFIG_MTD_ONENAND is not set 487# CONFIG_MTD_ONENAND is not set
475 488
476# 489#
490# LPDDR flash memory drivers
491#
492# CONFIG_MTD_LPDDR is not set
493# CONFIG_MTD_QINFO_PROBE is not set
494
495#
477# UBI - Unsorted block images 496# UBI - Unsorted block images
478# 497#
479CONFIG_MTD_UBI=m 498CONFIG_MTD_UBI=m
@@ -631,6 +650,7 @@ CONFIG_NETDEV_1000=y
631# CONFIG_JME is not set 650# CONFIG_JME is not set
632CONFIG_NETDEV_10000=y 651CONFIG_NETDEV_10000=y
633# CONFIG_CHELSIO_T1 is not set 652# CONFIG_CHELSIO_T1 is not set
653CONFIG_CHELSIO_T3_DEPENDS=y
634# CONFIG_CHELSIO_T3 is not set 654# CONFIG_CHELSIO_T3 is not set
635# CONFIG_ENIC is not set 655# CONFIG_ENIC is not set
636# CONFIG_IXGBE is not set 656# CONFIG_IXGBE is not set
@@ -655,6 +675,10 @@ CONFIG_NETDEV_10000=y
655# CONFIG_IWLWIFI_LEDS is not set 675# CONFIG_IWLWIFI_LEDS is not set
656 676
657# 677#
678# Enable WiMAX (Networking options) to see the WiMAX drivers
679#
680
681#
658# USB Network Adapters 682# USB Network Adapters
659# 683#
660# CONFIG_USB_CATC is not set 684# CONFIG_USB_CATC is not set
@@ -722,9 +746,12 @@ CONFIG_SERIAL_CORE=y
722CONFIG_SERIAL_CORE_CONSOLE=y 746CONFIG_SERIAL_CORE_CONSOLE=y
723# CONFIG_SERIAL_JSM is not set 747# CONFIG_SERIAL_JSM is not set
724CONFIG_SERIAL_OF_PLATFORM=y 748CONFIG_SERIAL_OF_PLATFORM=y
749# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
725CONFIG_UNIX98_PTYS=y 750CONFIG_UNIX98_PTYS=y
751# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
726CONFIG_LEGACY_PTYS=y 752CONFIG_LEGACY_PTYS=y
727CONFIG_LEGACY_PTY_COUNT=256 753CONFIG_LEGACY_PTY_COUNT=256
754# CONFIG_HVC_UDBG is not set
728# CONFIG_IPMI_HANDLER is not set 755# CONFIG_IPMI_HANDLER is not set
729# CONFIG_HW_RANDOM is not set 756# CONFIG_HW_RANDOM is not set
730# CONFIG_NVRAM is not set 757# CONFIG_NVRAM is not set
@@ -794,13 +821,12 @@ CONFIG_I2C_IBM_IIC=m
794# Miscellaneous I2C Chip support 821# Miscellaneous I2C Chip support
795# 822#
796# CONFIG_DS1682 is not set 823# CONFIG_DS1682 is not set
797# CONFIG_AT24 is not set 824# CONFIG_EEPROM_AT24 is not set
798# CONFIG_SENSORS_EEPROM is not set 825# CONFIG_EEPROM_LEGACY is not set
799# CONFIG_SENSORS_PCF8574 is not set 826# CONFIG_SENSORS_PCF8574 is not set
800# CONFIG_PCF8575 is not set 827# CONFIG_PCF8575 is not set
801# CONFIG_SENSORS_PCA9539 is not set 828# CONFIG_SENSORS_PCA9539 is not set
802# CONFIG_SENSORS_PCF8591 is not set 829# CONFIG_SENSORS_PCF8591 is not set
803# CONFIG_TPS65010 is not set
804# CONFIG_SENSORS_MAX6875 is not set 830# CONFIG_SENSORS_MAX6875 is not set
805# CONFIG_SENSORS_TSL2550 is not set 831# CONFIG_SENSORS_TSL2550 is not set
806# CONFIG_I2C_DEBUG_CORE is not set 832# CONFIG_I2C_DEBUG_CORE is not set
@@ -853,9 +879,11 @@ CONFIG_SSB_POSSIBLE=y
853# CONFIG_MFD_CORE is not set 879# CONFIG_MFD_CORE is not set
854# CONFIG_MFD_SM501 is not set 880# CONFIG_MFD_SM501 is not set
855# CONFIG_HTC_PASIC3 is not set 881# CONFIG_HTC_PASIC3 is not set
882# CONFIG_TPS65010 is not set
856# CONFIG_MFD_TMIO is not set 883# CONFIG_MFD_TMIO is not set
857# CONFIG_MFD_WM8400 is not set 884# CONFIG_MFD_WM8400 is not set
858# CONFIG_MFD_WM8350_I2C is not set 885# CONFIG_MFD_WM8350_I2C is not set
886# CONFIG_MFD_PCF50633 is not set
859# CONFIG_REGULATOR is not set 887# CONFIG_REGULATOR is not set
860 888
861# 889#
@@ -972,6 +1000,7 @@ CONFIG_USB_EHCI_HCD=m
972CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 1000CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
973CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y 1001CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y
974CONFIG_USB_EHCI_HCD_PPC_OF=y 1002CONFIG_USB_EHCI_HCD_PPC_OF=y
1003# CONFIG_USB_OXU210HP_HCD is not set
975# CONFIG_USB_ISP116X_HCD is not set 1004# CONFIG_USB_ISP116X_HCD is not set
976# CONFIG_USB_ISP1760_HCD is not set 1005# CONFIG_USB_ISP1760_HCD is not set
977CONFIG_USB_OHCI_HCD=m 1006CONFIG_USB_OHCI_HCD=m
@@ -1012,7 +1041,6 @@ CONFIG_USB_STORAGE=m
1012# CONFIG_USB_STORAGE_DATAFAB is not set 1041# CONFIG_USB_STORAGE_DATAFAB is not set
1013# CONFIG_USB_STORAGE_FREECOM is not set 1042# CONFIG_USB_STORAGE_FREECOM is not set
1014# CONFIG_USB_STORAGE_ISD200 is not set 1043# CONFIG_USB_STORAGE_ISD200 is not set
1015# CONFIG_USB_STORAGE_DPCM is not set
1016# CONFIG_USB_STORAGE_USBAT is not set 1044# CONFIG_USB_STORAGE_USBAT is not set
1017# CONFIG_USB_STORAGE_SDDR09 is not set 1045# CONFIG_USB_STORAGE_SDDR09 is not set
1018# CONFIG_USB_STORAGE_SDDR55 is not set 1046# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1058,6 +1086,11 @@ CONFIG_USB_STORAGE=m
1058# CONFIG_USB_ISIGHTFW is not set 1086# CONFIG_USB_ISIGHTFW is not set
1059# CONFIG_USB_VST is not set 1087# CONFIG_USB_VST is not set
1060# CONFIG_USB_GADGET is not set 1088# CONFIG_USB_GADGET is not set
1089
1090#
1091# OTG and related infrastructure
1092#
1093# CONFIG_USB_GPIO_VBUS is not set
1061# CONFIG_UWB is not set 1094# CONFIG_UWB is not set
1062# CONFIG_MMC is not set 1095# CONFIG_MMC is not set
1063# CONFIG_MEMSTICK is not set 1096# CONFIG_MEMSTICK is not set
@@ -1069,7 +1102,6 @@ CONFIG_USB_STORAGE=m
1069# CONFIG_DMADEVICES is not set 1102# CONFIG_DMADEVICES is not set
1070# CONFIG_UIO is not set 1103# CONFIG_UIO is not set
1071# CONFIG_STAGING is not set 1104# CONFIG_STAGING is not set
1072CONFIG_STAGING_EXCLUDE_BUILD=y
1073 1105
1074# 1106#
1075# File systems 1107# File systems
@@ -1089,7 +1121,9 @@ CONFIG_FS_MBCACHE=m
1089# CONFIG_FS_POSIX_ACL is not set 1121# CONFIG_FS_POSIX_ACL is not set
1090CONFIG_FILE_LOCKING=y 1122CONFIG_FILE_LOCKING=y
1091# CONFIG_XFS_FS is not set 1123# CONFIG_XFS_FS is not set
1124# CONFIG_GFS2_FS is not set
1092# CONFIG_OCFS2_FS is not set 1125# CONFIG_OCFS2_FS is not set
1126# CONFIG_BTRFS_FS is not set
1093CONFIG_DNOTIFY=y 1127CONFIG_DNOTIFY=y
1094CONFIG_INOTIFY=y 1128CONFIG_INOTIFY=y
1095CONFIG_INOTIFY_USER=y 1129CONFIG_INOTIFY_USER=y
@@ -1126,10 +1160,7 @@ CONFIG_TMPFS=y
1126# CONFIG_TMPFS_POSIX_ACL is not set 1160# CONFIG_TMPFS_POSIX_ACL is not set
1127# CONFIG_HUGETLB_PAGE is not set 1161# CONFIG_HUGETLB_PAGE is not set
1128# CONFIG_CONFIGFS_FS is not set 1162# CONFIG_CONFIGFS_FS is not set
1129 1163CONFIG_MISC_FILESYSTEMS=y
1130#
1131# Miscellaneous filesystems
1132#
1133# CONFIG_ADFS_FS is not set 1164# CONFIG_ADFS_FS is not set
1134# CONFIG_AFFS_FS is not set 1165# CONFIG_AFFS_FS is not set
1135# CONFIG_HFS_FS is not set 1166# CONFIG_HFS_FS is not set
@@ -1155,6 +1186,7 @@ CONFIG_UBIFS_FS_LZO=y
1155CONFIG_UBIFS_FS_ZLIB=y 1186CONFIG_UBIFS_FS_ZLIB=y
1156# CONFIG_UBIFS_FS_DEBUG is not set 1187# CONFIG_UBIFS_FS_DEBUG is not set
1157CONFIG_CRAMFS=y 1188CONFIG_CRAMFS=y
1189# CONFIG_SQUASHFS is not set
1158# CONFIG_VXFS_FS is not set 1190# CONFIG_VXFS_FS is not set
1159# CONFIG_MINIX_FS is not set 1191# CONFIG_MINIX_FS is not set
1160# CONFIG_OMFS_FS is not set 1192# CONFIG_OMFS_FS is not set
@@ -1234,6 +1266,7 @@ CONFIG_NLS_ISO8859_1=m
1234# Library routines 1266# Library routines
1235# 1267#
1236CONFIG_BITREVERSE=y 1268CONFIG_BITREVERSE=y
1269CONFIG_GENERIC_FIND_LAST_BIT=y
1237# CONFIG_CRC_CCITT is not set 1270# CONFIG_CRC_CCITT is not set
1238CONFIG_CRC16=m 1271CONFIG_CRC16=m
1239CONFIG_CRC_T10DIF=m 1272CONFIG_CRC_T10DIF=m
@@ -1287,6 +1320,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1287# CONFIG_DEBUG_MEMORY_INIT is not set 1320# CONFIG_DEBUG_MEMORY_INIT is not set
1288# CONFIG_DEBUG_LIST is not set 1321# CONFIG_DEBUG_LIST is not set
1289# CONFIG_DEBUG_SG is not set 1322# CONFIG_DEBUG_SG is not set
1323# CONFIG_DEBUG_NOTIFIERS is not set
1290# CONFIG_BOOT_PRINTK_DELAY is not set 1324# CONFIG_BOOT_PRINTK_DELAY is not set
1291# CONFIG_RCU_TORTURE_TEST is not set 1325# CONFIG_RCU_TORTURE_TEST is not set
1292# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1326# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1296,6 +1330,8 @@ CONFIG_DEBUG_BUGVERBOSE=y
1296# CONFIG_LATENCYTOP is not set 1330# CONFIG_LATENCYTOP is not set
1297CONFIG_SYSCTL_SYSCALL_CHECK=y 1331CONFIG_SYSCTL_SYSCALL_CHECK=y
1298CONFIG_HAVE_FUNCTION_TRACER=y 1332CONFIG_HAVE_FUNCTION_TRACER=y
1333CONFIG_HAVE_DYNAMIC_FTRACE=y
1334CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1299 1335
1300# 1336#
1301# Tracers 1337# Tracers
@@ -1304,11 +1340,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1304# CONFIG_SCHED_TRACER is not set 1340# CONFIG_SCHED_TRACER is not set
1305# CONFIG_CONTEXT_SWITCH_TRACER is not set 1341# CONFIG_CONTEXT_SWITCH_TRACER is not set
1306# CONFIG_BOOT_TRACER is not set 1342# CONFIG_BOOT_TRACER is not set
1343# CONFIG_TRACE_BRANCH_PROFILING is not set
1307# CONFIG_STACK_TRACER is not set 1344# CONFIG_STACK_TRACER is not set
1308# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1345# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1309# CONFIG_SAMPLES is not set 1346# CONFIG_SAMPLES is not set
1310CONFIG_HAVE_ARCH_KGDB=y 1347CONFIG_HAVE_ARCH_KGDB=y
1311# CONFIG_KGDB is not set 1348# CONFIG_KGDB is not set
1349CONFIG_PRINT_STACK_DEPTH=64
1312# CONFIG_DEBUG_STACKOVERFLOW is not set 1350# CONFIG_DEBUG_STACKOVERFLOW is not set
1313# CONFIG_DEBUG_STACK_USAGE is not set 1351# CONFIG_DEBUG_STACK_USAGE is not set
1314# CONFIG_DEBUG_PAGEALLOC is not set 1352# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1333,11 +1371,15 @@ CONFIG_CRYPTO=y
1333# 1371#
1334# CONFIG_CRYPTO_FIPS is not set 1372# CONFIG_CRYPTO_FIPS is not set
1335CONFIG_CRYPTO_ALGAPI=y 1373CONFIG_CRYPTO_ALGAPI=y
1336CONFIG_CRYPTO_AEAD=y 1374CONFIG_CRYPTO_ALGAPI2=y
1375CONFIG_CRYPTO_AEAD2=y
1337CONFIG_CRYPTO_BLKCIPHER=y 1376CONFIG_CRYPTO_BLKCIPHER=y
1377CONFIG_CRYPTO_BLKCIPHER2=y
1338CONFIG_CRYPTO_HASH=y 1378CONFIG_CRYPTO_HASH=y
1339CONFIG_CRYPTO_RNG=y 1379CONFIG_CRYPTO_HASH2=y
1380CONFIG_CRYPTO_RNG2=y
1340CONFIG_CRYPTO_MANAGER=y 1381CONFIG_CRYPTO_MANAGER=y
1382CONFIG_CRYPTO_MANAGER2=y
1341# CONFIG_CRYPTO_GF128MUL is not set 1383# CONFIG_CRYPTO_GF128MUL is not set
1342# CONFIG_CRYPTO_NULL is not set 1384# CONFIG_CRYPTO_NULL is not set
1343# CONFIG_CRYPTO_CRYPTD is not set 1385# CONFIG_CRYPTO_CRYPTD is not set
@@ -1419,5 +1461,6 @@ CONFIG_CRYPTO_LZO=m
1419CONFIG_VIRTUALIZATION=y 1461CONFIG_VIRTUALIZATION=y
1420CONFIG_KVM=y 1462CONFIG_KVM=y
1421CONFIG_KVM_440=y 1463CONFIG_KVM_440=y
1464# CONFIG_KVM_EXIT_TIMING is not set
1422# CONFIG_VIRTIO_PCI is not set 1465# CONFIG_VIRTIO_PCI is not set
1423# CONFIG_VIRTIO_BALLOON is not set 1466# CONFIG_VIRTIO_BALLOON is not set
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index 069ae1bbac29..88c6295b76c1 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -211,11 +211,28 @@ CONFIG_PPC_PASEMI=y
211CONFIG_PPC_PASEMI_IOMMU=y 211CONFIG_PPC_PASEMI_IOMMU=y
212# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set 212# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
213CONFIG_PPC_PASEMI_MDIO=y 213CONFIG_PPC_PASEMI_MDIO=y
214# CONFIG_PPC_PS3 is not set 214CONFIG_PPC_PS3=y
215
216#
217# PS3 Platform Options
218#
219# CONFIG_PS3_ADVANCED is not set
220CONFIG_PS3_HTAB_SIZE=20
221# CONFIG_PS3_DYNAMIC_DMA is not set
222CONFIG_PS3_VUART=y
223CONFIG_PS3_PS3AV=y
224CONFIG_PS3_SYS_MANAGER=y
225CONFIG_PS3_STORAGE=m
226CONFIG_PS3_DISK=m
227CONFIG_PS3_ROM=m
228CONFIG_PS3_FLASH=m
229CONFIG_PS3_LPM=m
215CONFIG_PPC_CELL=y 230CONFIG_PPC_CELL=y
231CONFIG_PPC_CELL_COMMON=y
216CONFIG_PPC_CELL_NATIVE=y 232CONFIG_PPC_CELL_NATIVE=y
217CONFIG_PPC_IBM_CELL_BLADE=y 233CONFIG_PPC_IBM_CELL_BLADE=y
218CONFIG_PPC_CELLEB=y 234CONFIG_PPC_CELLEB=y
235CONFIG_PPC_CELL_QPACE=y
219 236
220# 237#
221# Cell Broadband Engine options 238# Cell Broadband Engine options
@@ -981,6 +998,9 @@ CONFIG_E1000=y
981CONFIG_TIGON3=y 998CONFIG_TIGON3=y
982# CONFIG_BNX2 is not set 999# CONFIG_BNX2 is not set
983CONFIG_SPIDER_NET=m 1000CONFIG_SPIDER_NET=m
1001CONFIG_GELIC_NET=m
1002CONFIG_GELIC_WIRELESS=y
1003# CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE is not set
984# CONFIG_QLA3XXX is not set 1004# CONFIG_QLA3XXX is not set
985# CONFIG_ATL1 is not set 1005# CONFIG_ATL1 is not set
986# CONFIG_ATL1E is not set 1006# CONFIG_ATL1E is not set
@@ -1241,8 +1261,8 @@ CONFIG_I2C_PASEMI=y
1241# Miscellaneous I2C Chip support 1261# Miscellaneous I2C Chip support
1242# 1262#
1243# CONFIG_DS1682 is not set 1263# CONFIG_DS1682 is not set
1244# CONFIG_AT24 is not set 1264# CONFIG_EEPROM_AT24 is not set
1245# CONFIG_SENSORS_EEPROM is not set 1265# CONFIG_EEPROM_LEGACY is not set
1246# CONFIG_SENSORS_PCF8574 is not set 1266# CONFIG_SENSORS_PCF8574 is not set
1247# CONFIG_PCF8575 is not set 1267# CONFIG_PCF8575 is not set
1248# CONFIG_SENSORS_PCA9539 is not set 1268# CONFIG_SENSORS_PCA9539 is not set
@@ -1370,6 +1390,8 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1370# CONFIG_FB_PM3 is not set 1390# CONFIG_FB_PM3 is not set
1371# CONFIG_FB_CARMINE is not set 1391# CONFIG_FB_CARMINE is not set
1372CONFIG_FB_IBM_GXT4500=y 1392CONFIG_FB_IBM_GXT4500=y
1393CONFIG_FB_PS3=m
1394CONFIG_FB_PS3_DEFAULT_SIZE_M=9
1373# CONFIG_FB_VIRTUAL is not set 1395# CONFIG_FB_VIRTUAL is not set
1374# CONFIG_FB_METRONOME is not set 1396# CONFIG_FB_METRONOME is not set
1375CONFIG_BACKLIGHT_LCD_SUPPORT=y 1397CONFIG_BACKLIGHT_LCD_SUPPORT=y
@@ -1492,6 +1514,8 @@ CONFIG_SND_PCI=y
1492CONFIG_SND_PPC=y 1514CONFIG_SND_PPC=y
1493CONFIG_SND_POWERMAC=m 1515CONFIG_SND_POWERMAC=m
1494CONFIG_SND_POWERMAC_AUTO_DRC=y 1516CONFIG_SND_POWERMAC_AUTO_DRC=y
1517CONFIG_SND_PS3=m
1518CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
1495CONFIG_SND_AOA=m 1519CONFIG_SND_AOA=m
1496CONFIG_SND_AOA_FABRIC_LAYOUT=m 1520CONFIG_SND_AOA_FABRIC_LAYOUT=m
1497CONFIG_SND_AOA_ONYX=m 1521CONFIG_SND_AOA_ONYX=m
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 01f05ec5abf3..7d044dfd9236 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1801,8 +1801,8 @@ CONFIG_I2C_STUB=m
1801# Miscellaneous I2C Chip support 1801# Miscellaneous I2C Chip support
1802# 1802#
1803# CONFIG_DS1682 is not set 1803# CONFIG_DS1682 is not set
1804CONFIG_AT24=m 1804CONFIG_EEPROM_AT24=m
1805CONFIG_SENSORS_EEPROM=m 1805CONFIG_EEPROM_LEGACY=m
1806CONFIG_SENSORS_PCF8574=m 1806CONFIG_SENSORS_PCF8574=m
1807CONFIG_PCF8575=m 1807CONFIG_PCF8575=m
1808CONFIG_SENSORS_PCA9539=m 1808CONFIG_SENSORS_PCA9539=m
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index 228099d77c3b..fdded96633a1 100644
--- a/arch/powerpc/configs/pq2fads_defconfig
+++ b/arch/powerpc/configs/pq2fads_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:47 2008 4# Mon Jan 26 15:35:42 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -44,7 +44,7 @@ CONFIG_GENERIC_GPIO=y
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
@@ -87,6 +87,7 @@ CONFIG_EMBEDDED=y
87CONFIG_SYSCTL_SYSCALL=y 87CONFIG_SYSCTL_SYSCALL=y
88CONFIG_KALLSYMS=y 88CONFIG_KALLSYMS=y
89CONFIG_KALLSYMS_ALL=y 89CONFIG_KALLSYMS_ALL=y
90CONFIG_KALLSYMS_STRIP_GENERATED=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 91# CONFIG_KALLSYMS_EXTRA_PASS is not set
91CONFIG_HOTPLUG=y 92CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 93CONFIG_PRINTK=y
@@ -109,7 +110,6 @@ CONFIG_SLUB_DEBUG=y
109CONFIG_SLUB=y 110CONFIG_SLUB=y
110# CONFIG_SLOB is not set 111# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y 115CONFIG_HAVE_IOREMAP_PROT=y
@@ -120,13 +120,11 @@ CONFIG_HAVE_CLK=y
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 123CONFIG_BASE_SMALL=0
125# CONFIG_MODULES is not set 124# CONFIG_MODULES is not set
126CONFIG_BLOCK=y 125CONFIG_BLOCK=y
127# CONFIG_LBD is not set 126# CONFIG_LBD is not set
128# CONFIG_BLK_DEV_IO_TRACE is not set 127# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set 128# CONFIG_BLK_DEV_INTEGRITY is not set
131 129
132# 130#
@@ -142,6 +140,10 @@ CONFIG_DEFAULT_AS=y
142# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y 142CONFIG_CLASSIC_RCU=y
143# CONFIG_TREE_RCU is not set
144# CONFIG_PREEMPT_RCU is not set
145# CONFIG_TREE_RCU_TRACE is not set
146# CONFIG_PREEMPT_RCU_TRACE is not set
145# CONFIG_FREEZER is not set 147# CONFIG_FREEZER is not set
146 148
147# 149#
@@ -183,6 +185,7 @@ CONFIG_PQ2_ADS_PCI_PIC=y
183CONFIG_CPM2=y 185CONFIG_CPM2=y
184# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
185CONFIG_CPM=y 187CONFIG_CPM=y
188# CONFIG_SIMPLE_GPIO is not set
186 189
187# 190#
188# Kernel options 191# Kernel options
@@ -209,6 +212,7 @@ CONFIG_BINFMT_MISC=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
210CONFIG_ARCH_HAS_WALK_MEMORY=y 213CONFIG_ARCH_HAS_WALK_MEMORY=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
215# CONFIG_CRASH_DUMP is not set
212CONFIG_ARCH_FLATMEM_ENABLE=y 216CONFIG_ARCH_FLATMEM_ENABLE=y
213CONFIG_ARCH_POPULATES_NODE_MAP=y 217CONFIG_ARCH_POPULATES_NODE_MAP=y
214CONFIG_FLATMEM=y 218CONFIG_FLATMEM=y
@@ -216,12 +220,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216CONFIG_PAGEFLAGS_EXTENDED=y 220CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
218CONFIG_MIGRATION=y 222CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set
220# CONFIG_PHYS_ADDR_T_64BIT is not set 223# CONFIG_PHYS_ADDR_T_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 224CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 225CONFIG_BOUNCE=y
223CONFIG_VIRT_TO_BUS=y 226CONFIG_VIRT_TO_BUS=y
224CONFIG_UNEVICTABLE_LRU=y 227CONFIG_UNEVICTABLE_LRU=y
228CONFIG_PPC_4K_PAGES=y
229# CONFIG_PPC_16K_PAGES is not set
230# CONFIG_PPC_64K_PAGES is not set
225CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
226CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
@@ -247,6 +253,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
247# CONFIG_PCI_MSI is not set 253# CONFIG_PCI_MSI is not set
248# CONFIG_PCI_LEGACY is not set 254# CONFIG_PCI_LEGACY is not set
249# CONFIG_PCI_DEBUG is not set 255# CONFIG_PCI_DEBUG is not set
256# CONFIG_PCI_STUB is not set
250# CONFIG_PCCARD is not set 257# CONFIG_PCCARD is not set
251# CONFIG_HOTPLUG_PCI is not set 258# CONFIG_HOTPLUG_PCI is not set
252# CONFIG_HAS_RAPIDIO is not set 259# CONFIG_HAS_RAPIDIO is not set
@@ -269,6 +276,7 @@ CONFIG_NET=y
269# 276#
270# Networking options 277# Networking options
271# 278#
279CONFIG_COMPAT_NET_DEV_OPS=y
272CONFIG_PACKET=y 280CONFIG_PACKET=y
273# CONFIG_PACKET_MMAP is not set 281# CONFIG_PACKET_MMAP is not set
274CONFIG_UNIX=y 282CONFIG_UNIX=y
@@ -350,6 +358,7 @@ CONFIG_NETFILTER_ADVANCED=y
350# CONFIG_IPX is not set 358# CONFIG_IPX is not set
351# CONFIG_ATALK is not set 359# CONFIG_ATALK is not set
352# CONFIG_NET_SCHED is not set 360# CONFIG_NET_SCHED is not set
361# CONFIG_DCB is not set
353 362
354# 363#
355# Network testing 364# Network testing
@@ -364,8 +373,9 @@ CONFIG_WIRELESS=y
364# CONFIG_CFG80211 is not set 373# CONFIG_CFG80211 is not set
365CONFIG_WIRELESS_OLD_REGULATORY=y 374CONFIG_WIRELESS_OLD_REGULATORY=y
366# CONFIG_WIRELESS_EXT is not set 375# CONFIG_WIRELESS_EXT is not set
376# CONFIG_LIB80211 is not set
367# CONFIG_MAC80211 is not set 377# CONFIG_MAC80211 is not set
368# CONFIG_IEEE80211 is not set 378# CONFIG_WIMAX is not set
369# CONFIG_RFKILL is not set 379# CONFIG_RFKILL is not set
370 380
371# 381#
@@ -460,6 +470,12 @@ CONFIG_MTD_PHYSMAP_OF=y
460# CONFIG_MTD_ONENAND is not set 470# CONFIG_MTD_ONENAND is not set
461 471
462# 472#
473# LPDDR flash memory drivers
474#
475# CONFIG_MTD_LPDDR is not set
476# CONFIG_MTD_QINFO_PROBE is not set
477
478#
463# UBI - Unsorted block images 479# UBI - Unsorted block images
464# 480#
465# CONFIG_MTD_UBI is not set 481# CONFIG_MTD_UBI is not set
@@ -520,6 +536,7 @@ CONFIG_IDE_PROC_FS=y
520# CONFIG_BLK_DEV_JMICRON is not set 536# CONFIG_BLK_DEV_JMICRON is not set
521# CONFIG_BLK_DEV_SC1200 is not set 537# CONFIG_BLK_DEV_SC1200 is not set
522# CONFIG_BLK_DEV_PIIX is not set 538# CONFIG_BLK_DEV_PIIX is not set
539# CONFIG_BLK_DEV_IT8172 is not set
523# CONFIG_BLK_DEV_IT8213 is not set 540# CONFIG_BLK_DEV_IT8213 is not set
524# CONFIG_BLK_DEV_IT821X is not set 541# CONFIG_BLK_DEV_IT821X is not set
525# CONFIG_BLK_DEV_NS87415 is not set 542# CONFIG_BLK_DEV_NS87415 is not set
@@ -577,9 +594,12 @@ CONFIG_DAVICOM_PHY=y
577# CONFIG_BROADCOM_PHY is not set 594# CONFIG_BROADCOM_PHY is not set
578# CONFIG_ICPLUS_PHY is not set 595# CONFIG_ICPLUS_PHY is not set
579# CONFIG_REALTEK_PHY is not set 596# CONFIG_REALTEK_PHY is not set
597# CONFIG_NATIONAL_PHY is not set
598# CONFIG_STE10XP is not set
599# CONFIG_LSI_ET1011C_PHY is not set
580# CONFIG_FIXED_PHY is not set 600# CONFIG_FIXED_PHY is not set
581CONFIG_MDIO_BITBANG=y 601CONFIG_MDIO_BITBANG=y
582# CONFIG_MDIO_OF_GPIO is not set 602# CONFIG_MDIO_GPIO is not set
583CONFIG_NET_ETHERNET=y 603CONFIG_NET_ETHERNET=y
584CONFIG_MII=y 604CONFIG_MII=y
585# CONFIG_HAPPYMEAL is not set 605# CONFIG_HAPPYMEAL is not set
@@ -624,6 +644,7 @@ CONFIG_NETDEV_1000=y
624# CONFIG_JME is not set 644# CONFIG_JME is not set
625CONFIG_NETDEV_10000=y 645CONFIG_NETDEV_10000=y
626# CONFIG_CHELSIO_T1 is not set 646# CONFIG_CHELSIO_T1 is not set
647CONFIG_CHELSIO_T3_DEPENDS=y
627# CONFIG_CHELSIO_T3 is not set 648# CONFIG_CHELSIO_T3 is not set
628# CONFIG_ENIC is not set 649# CONFIG_ENIC is not set
629# CONFIG_IXGBE is not set 650# CONFIG_IXGBE is not set
@@ -646,6 +667,10 @@ CONFIG_NETDEV_10000=y
646# CONFIG_WLAN_PRE80211 is not set 667# CONFIG_WLAN_PRE80211 is not set
647# CONFIG_WLAN_80211 is not set 668# CONFIG_WLAN_80211 is not set
648# CONFIG_IWLWIFI_LEDS is not set 669# CONFIG_IWLWIFI_LEDS is not set
670
671#
672# Enable WiMAX (Networking options) to see the WiMAX drivers
673#
649# CONFIG_WAN is not set 674# CONFIG_WAN is not set
650# CONFIG_FDDI is not set 675# CONFIG_FDDI is not set
651CONFIG_PPP=y 676CONFIG_PPP=y
@@ -743,6 +768,7 @@ CONFIG_SERIAL_CPM=y
743CONFIG_SERIAL_CPM_CONSOLE=y 768CONFIG_SERIAL_CPM_CONSOLE=y
744# CONFIG_SERIAL_JSM is not set 769# CONFIG_SERIAL_JSM is not set
745CONFIG_UNIX98_PTYS=y 770CONFIG_UNIX98_PTYS=y
771# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
746CONFIG_LEGACY_PTYS=y 772CONFIG_LEGACY_PTYS=y
747CONFIG_LEGACY_PTY_COUNT=256 773CONFIG_LEGACY_PTY_COUNT=256
748# CONFIG_IPMI_HANDLER is not set 774# CONFIG_IPMI_HANDLER is not set
@@ -761,6 +787,11 @@ CONFIG_GPIOLIB=y
761# CONFIG_DEBUG_GPIO is not set 787# CONFIG_DEBUG_GPIO is not set
762 788
763# 789#
790# Memory mapped GPIO expanders:
791#
792# CONFIG_GPIO_XILINX is not set
793
794#
764# I2C GPIO expanders: 795# I2C GPIO expanders:
765# 796#
766 797
@@ -778,11 +809,11 @@ CONFIG_GPIOLIB=y
778# CONFIG_THERMAL is not set 809# CONFIG_THERMAL is not set
779# CONFIG_THERMAL_HWMON is not set 810# CONFIG_THERMAL_HWMON is not set
780# CONFIG_WATCHDOG is not set 811# CONFIG_WATCHDOG is not set
812CONFIG_SSB_POSSIBLE=y
781 813
782# 814#
783# Sonics Silicon Backplane 815# Sonics Silicon Backplane
784# 816#
785CONFIG_SSB_POSSIBLE=y
786# CONFIG_SSB is not set 817# CONFIG_SSB is not set
787 818
788# 819#
@@ -792,14 +823,7 @@ CONFIG_SSB_POSSIBLE=y
792# CONFIG_MFD_SM501 is not set 823# CONFIG_MFD_SM501 is not set
793# CONFIG_HTC_PASIC3 is not set 824# CONFIG_HTC_PASIC3 is not set
794# CONFIG_MFD_TMIO is not set 825# CONFIG_MFD_TMIO is not set
795
796#
797# Voltage and Current regulators
798#
799# CONFIG_REGULATOR is not set 826# CONFIG_REGULATOR is not set
800# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
801# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
802# CONFIG_REGULATOR_BQ24022 is not set
803 827
804# 828#
805# Multimedia devices 829# Multimedia devices
@@ -844,7 +868,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
844# CONFIG_USB_GADGET_MUSB_HDRC is not set 868# CONFIG_USB_GADGET_MUSB_HDRC is not set
845 869
846# 870#
847# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 871# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
848# 872#
849CONFIG_USB_GADGET=y 873CONFIG_USB_GADGET=y
850# CONFIG_USB_GADGET_DEBUG is not set 874# CONFIG_USB_GADGET_DEBUG is not set
@@ -859,10 +883,12 @@ CONFIG_USB_GADGET_SELECTED=y
859# CONFIG_USB_GADGET_PXA25X is not set 883# CONFIG_USB_GADGET_PXA25X is not set
860# CONFIG_USB_GADGET_PXA27X is not set 884# CONFIG_USB_GADGET_PXA27X is not set
861# CONFIG_USB_GADGET_S3C2410 is not set 885# CONFIG_USB_GADGET_S3C2410 is not set
886# CONFIG_USB_GADGET_IMX is not set
862CONFIG_USB_GADGET_M66592=y 887CONFIG_USB_GADGET_M66592=y
863CONFIG_USB_M66592=y 888CONFIG_USB_M66592=y
864# CONFIG_USB_GADGET_AMD5536UDC is not set 889# CONFIG_USB_GADGET_AMD5536UDC is not set
865# CONFIG_USB_GADGET_FSL_QE is not set 890# CONFIG_USB_GADGET_FSL_QE is not set
891# CONFIG_USB_GADGET_CI13XXX is not set
866# CONFIG_USB_GADGET_NET2280 is not set 892# CONFIG_USB_GADGET_NET2280 is not set
867# CONFIG_USB_GADGET_GOKU is not set 893# CONFIG_USB_GADGET_GOKU is not set
868# CONFIG_USB_GADGET_DUMMY_HCD is not set 894# CONFIG_USB_GADGET_DUMMY_HCD is not set
@@ -876,6 +902,11 @@ CONFIG_USB_ETH_RNDIS=y
876# CONFIG_USB_MIDI_GADGET is not set 902# CONFIG_USB_MIDI_GADGET is not set
877# CONFIG_USB_G_PRINTER is not set 903# CONFIG_USB_G_PRINTER is not set
878# CONFIG_USB_CDC_COMPOSITE is not set 904# CONFIG_USB_CDC_COMPOSITE is not set
905
906#
907# OTG and related infrastructure
908#
909# CONFIG_USB_GPIO_VBUS is not set
879# CONFIG_MMC is not set 910# CONFIG_MMC is not set
880# CONFIG_MEMSTICK is not set 911# CONFIG_MEMSTICK is not set
881# CONFIG_NEW_LEDS is not set 912# CONFIG_NEW_LEDS is not set
@@ -938,13 +969,11 @@ CONFIG_TMPFS=y
938# CONFIG_TMPFS_POSIX_ACL is not set 969# CONFIG_TMPFS_POSIX_ACL is not set
939# CONFIG_HUGETLB_PAGE is not set 970# CONFIG_HUGETLB_PAGE is not set
940# CONFIG_CONFIGFS_FS is not set 971# CONFIG_CONFIGFS_FS is not set
941 972CONFIG_MISC_FILESYSTEMS=y
942#
943# Miscellaneous filesystems
944#
945# CONFIG_HFSPLUS_FS is not set 973# CONFIG_HFSPLUS_FS is not set
946# CONFIG_JFFS2_FS is not set 974# CONFIG_JFFS2_FS is not set
947CONFIG_CRAMFS=y 975CONFIG_CRAMFS=y
976# CONFIG_SQUASHFS is not set
948# CONFIG_VXFS_FS is not set 977# CONFIG_VXFS_FS is not set
949# CONFIG_MINIX_FS is not set 978# CONFIG_MINIX_FS is not set
950# CONFIG_OMFS_FS is not set 979# CONFIG_OMFS_FS is not set
@@ -1035,6 +1064,7 @@ CONFIG_NLS_UTF8=y
1035# Library routines 1064# Library routines
1036# 1065#
1037CONFIG_BITREVERSE=y 1066CONFIG_BITREVERSE=y
1067CONFIG_GENERIC_FIND_LAST_BIT=y
1038CONFIG_CRC_CCITT=y 1068CONFIG_CRC_CCITT=y
1039# CONFIG_CRC16 is not set 1069# CONFIG_CRC16 is not set
1040# CONFIG_CRC_T10DIF is not set 1070# CONFIG_CRC_T10DIF is not set
@@ -1086,6 +1116,7 @@ CONFIG_DEBUG_INFO=y
1086# CONFIG_DEBUG_MEMORY_INIT is not set 1116# CONFIG_DEBUG_MEMORY_INIT is not set
1087# CONFIG_DEBUG_LIST is not set 1117# CONFIG_DEBUG_LIST is not set
1088# CONFIG_DEBUG_SG is not set 1118# CONFIG_DEBUG_SG is not set
1119# CONFIG_DEBUG_NOTIFIERS is not set
1089# CONFIG_BOOT_PRINTK_DELAY is not set 1120# CONFIG_BOOT_PRINTK_DELAY is not set
1090# CONFIG_RCU_TORTURE_TEST is not set 1121# CONFIG_RCU_TORTURE_TEST is not set
1091# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1122# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1095,6 +1126,8 @@ CONFIG_DEBUG_INFO=y
1095# CONFIG_LATENCYTOP is not set 1126# CONFIG_LATENCYTOP is not set
1096CONFIG_SYSCTL_SYSCALL_CHECK=y 1127CONFIG_SYSCTL_SYSCALL_CHECK=y
1097CONFIG_HAVE_FUNCTION_TRACER=y 1128CONFIG_HAVE_FUNCTION_TRACER=y
1129CONFIG_HAVE_DYNAMIC_FTRACE=y
1130CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1098 1131
1099# 1132#
1100# Tracers 1133# Tracers
@@ -1103,10 +1136,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1103# CONFIG_SCHED_TRACER is not set 1136# CONFIG_SCHED_TRACER is not set
1104# CONFIG_CONTEXT_SWITCH_TRACER is not set 1137# CONFIG_CONTEXT_SWITCH_TRACER is not set
1105# CONFIG_BOOT_TRACER is not set 1138# CONFIG_BOOT_TRACER is not set
1139# CONFIG_TRACE_BRANCH_PROFILING is not set
1106# CONFIG_STACK_TRACER is not set 1140# CONFIG_STACK_TRACER is not set
1107# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1141# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1108# CONFIG_SAMPLES is not set 1142# CONFIG_SAMPLES is not set
1109CONFIG_HAVE_ARCH_KGDB=y 1143CONFIG_HAVE_ARCH_KGDB=y
1144CONFIG_PRINT_STACK_DEPTH=64
1110# CONFIG_DEBUG_STACKOVERFLOW is not set 1145# CONFIG_DEBUG_STACKOVERFLOW is not set
1111# CONFIG_DEBUG_STACK_USAGE is not set 1146# CONFIG_DEBUG_STACK_USAGE is not set
1112# CONFIG_DEBUG_PAGEALLOC is not set 1147# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1133,11 +1168,15 @@ CONFIG_CRYPTO=y
1133# 1168#
1134# CONFIG_CRYPTO_FIPS is not set 1169# CONFIG_CRYPTO_FIPS is not set
1135CONFIG_CRYPTO_ALGAPI=y 1170CONFIG_CRYPTO_ALGAPI=y
1136CONFIG_CRYPTO_AEAD=y 1171CONFIG_CRYPTO_ALGAPI2=y
1172CONFIG_CRYPTO_AEAD2=y
1137CONFIG_CRYPTO_BLKCIPHER=y 1173CONFIG_CRYPTO_BLKCIPHER=y
1174CONFIG_CRYPTO_BLKCIPHER2=y
1138CONFIG_CRYPTO_HASH=y 1175CONFIG_CRYPTO_HASH=y
1139CONFIG_CRYPTO_RNG=y 1176CONFIG_CRYPTO_HASH2=y
1177CONFIG_CRYPTO_RNG2=y
1140CONFIG_CRYPTO_MANAGER=y 1178CONFIG_CRYPTO_MANAGER=y
1179CONFIG_CRYPTO_MANAGER2=y
1141# CONFIG_CRYPTO_NULL is not set 1180# CONFIG_CRYPTO_NULL is not set
1142# CONFIG_CRYPTO_CRYPTD is not set 1181# CONFIG_CRYPTO_CRYPTD is not set
1143# CONFIG_CRYPTO_AUTHENC is not set 1182# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index 6046dc0cbd82..e971db171138 100644
--- a/arch/powerpc/configs/prpmc2800_defconfig
+++ b/arch/powerpc/configs/prpmc2800_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:48 2008 4# Mon Jan 26 15:35:44 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -45,7 +45,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
45CONFIG_PPC=y 45CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
47CONFIG_GENERIC_NVRAM=y 47CONFIG_GENERIC_NVRAM=y
48CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 48CONFIG_SCHED_OMIT_FRAME_POINTER=y
49CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49CONFIG_ARCH_MAY_HAVE_PC_FDC=y
50CONFIG_PPC_OF=y 50CONFIG_PPC_OF=y
51CONFIG_OF=y 51CONFIG_OF=y
@@ -75,12 +75,12 @@ CONFIG_POSIX_MQUEUE=y
75# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76# CONFIG_IKCONFIG is not set 76# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79CONFIG_GROUP_SCHED=y 78CONFIG_GROUP_SCHED=y
80# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
81# CONFIG_RT_GROUP_SCHED is not set 80# CONFIG_RT_GROUP_SCHED is not set
82CONFIG_USER_SCHED=y 81CONFIG_USER_SCHED=y
83# CONFIG_CGROUP_SCHED is not set 82# CONFIG_CGROUP_SCHED is not set
83# CONFIG_CGROUPS is not set
84CONFIG_SYSFS_DEPRECATED=y 84CONFIG_SYSFS_DEPRECATED=y
85CONFIG_SYSFS_DEPRECATED_V2=y 85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
@@ -118,7 +118,6 @@ CONFIG_SLUB_DEBUG=y
118CONFIG_SLUB=y 118CONFIG_SLUB=y
119# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y 123CONFIG_HAVE_IOREMAP_PROT=y
@@ -128,13 +127,11 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
131# CONFIG_TINY_SHMEM is not set
132CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
133# CONFIG_MODULES is not set 131# CONFIG_MODULES is not set
134CONFIG_BLOCK=y 132CONFIG_BLOCK=y
135CONFIG_LBD=y 133CONFIG_LBD=y
136# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 136# CONFIG_BLK_DEV_INTEGRITY is not set
140 137
@@ -151,6 +148,10 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
155 156
156# 157#
@@ -190,6 +191,7 @@ CONFIG_MV64X60=y
190# CONFIG_CPU_FREQ is not set 191# CONFIG_CPU_FREQ is not set
191# CONFIG_TAU is not set 192# CONFIG_TAU is not set
192# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
194# CONFIG_SIMPLE_GPIO is not set
193 195
194# 196#
195# Kernel options 197# Kernel options
@@ -213,10 +215,12 @@ CONFIG_BINFMT_ELF=y
213# CONFIG_HAVE_AOUT is not set 215# CONFIG_HAVE_AOUT is not set
214CONFIG_BINFMT_MISC=y 216CONFIG_BINFMT_MISC=y
215# CONFIG_IOMMU_HELPER is not set 217# CONFIG_IOMMU_HELPER is not set
218CONFIG_PPC_NEED_DMA_SYNC_OPS=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y 220CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
219# CONFIG_KEXEC is not set 222# CONFIG_KEXEC is not set
223# CONFIG_CRASH_DUMP is not set
220CONFIG_ARCH_FLATMEM_ENABLE=y 224CONFIG_ARCH_FLATMEM_ENABLE=y
221CONFIG_ARCH_POPULATES_NODE_MAP=y 225CONFIG_ARCH_POPULATES_NODE_MAP=y
222CONFIG_SELECT_MEMORY_MODEL=y 226CONFIG_SELECT_MEMORY_MODEL=y
@@ -228,12 +232,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 234CONFIG_MIGRATION=y
231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set 235# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 238CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 239CONFIG_UNEVICTABLE_LRU=y
240CONFIG_PPC_4K_PAGES=y
241# CONFIG_PPC_16K_PAGES is not set
242# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 243CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 244CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 245# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
255CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
257# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
258# CONFIG_PCCARD is not set 265# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 266# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 267# CONFIG_HAS_RAPIDIO is not set
@@ -279,6 +286,8 @@ CONFIG_NET=y
279# 286#
280# Networking options 287# Networking options
281# 288#
289# CONFIG_NET_NS is not set
290CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=y 291CONFIG_PACKET=y
283# CONFIG_PACKET_MMAP is not set 292# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 293CONFIG_UNIX=y
@@ -335,6 +344,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
335# CONFIG_ECONET is not set 344# CONFIG_ECONET is not set
336# CONFIG_WAN_ROUTER is not set 345# CONFIG_WAN_ROUTER is not set
337# CONFIG_NET_SCHED is not set 346# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set
338 348
339# 349#
340# Network testing 350# Network testing
@@ -350,8 +360,9 @@ CONFIG_WIRELESS=y
350# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
351CONFIG_WIRELESS_OLD_REGULATORY=y 361CONFIG_WIRELESS_OLD_REGULATORY=y
352# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
363# CONFIG_LIB80211 is not set
353# CONFIG_MAC80211 is not set 364# CONFIG_MAC80211 is not set
354# CONFIG_IEEE80211 is not set 365# CONFIG_WIMAX is not set
355# CONFIG_RFKILL is not set 366# CONFIG_RFKILL is not set
356# CONFIG_NET_9P is not set 367# CONFIG_NET_9P is not set
357 368
@@ -445,6 +456,12 @@ CONFIG_MTD_PHYSMAP_OF=y
445# CONFIG_MTD_ONENAND is not set 456# CONFIG_MTD_ONENAND is not set
446 457
447# 458#
459# LPDDR flash memory drivers
460#
461# CONFIG_MTD_LPDDR is not set
462# CONFIG_MTD_QINFO_PROBE is not set
463
464#
448# UBI - Unsorted block images 465# UBI - Unsorted block images
449# 466#
450# CONFIG_MTD_UBI is not set 467# CONFIG_MTD_UBI is not set
@@ -475,8 +492,10 @@ CONFIG_MISC_DEVICES=y
475# CONFIG_EEPROM_93CX6 is not set 492# CONFIG_EEPROM_93CX6 is not set
476# CONFIG_SGI_IOC4 is not set 493# CONFIG_SGI_IOC4 is not set
477# CONFIG_TIFM_CORE is not set 494# CONFIG_TIFM_CORE is not set
495# CONFIG_ICS932S401 is not set
478# CONFIG_ENCLOSURE_SERVICES is not set 496# CONFIG_ENCLOSURE_SERVICES is not set
479# CONFIG_HP_ILO is not set 497# CONFIG_HP_ILO is not set
498# CONFIG_C2PORT is not set
480CONFIG_HAVE_IDE=y 499CONFIG_HAVE_IDE=y
481CONFIG_IDE=y 500CONFIG_IDE=y
482 501
@@ -489,7 +508,6 @@ CONFIG_IDE_GD_ATA=y
489# CONFIG_IDE_GD_ATAPI is not set 508# CONFIG_IDE_GD_ATAPI is not set
490# CONFIG_BLK_DEV_IDECD is not set 509# CONFIG_BLK_DEV_IDECD is not set
491# CONFIG_BLK_DEV_IDETAPE is not set 510# CONFIG_BLK_DEV_IDETAPE is not set
492# CONFIG_BLK_DEV_IDESCSI is not set
493# CONFIG_IDE_TASK_IOCTL is not set 511# CONFIG_IDE_TASK_IOCTL is not set
494CONFIG_IDE_PROC_FS=y 512CONFIG_IDE_PROC_FS=y
495 513
@@ -519,6 +537,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
519# CONFIG_BLK_DEV_JMICRON is not set 537# CONFIG_BLK_DEV_JMICRON is not set
520# CONFIG_BLK_DEV_SC1200 is not set 538# CONFIG_BLK_DEV_SC1200 is not set
521# CONFIG_BLK_DEV_PIIX is not set 539# CONFIG_BLK_DEV_PIIX is not set
540# CONFIG_BLK_DEV_IT8172 is not set
522# CONFIG_BLK_DEV_IT8213 is not set 541# CONFIG_BLK_DEV_IT8213 is not set
523# CONFIG_BLK_DEV_IT821X is not set 542# CONFIG_BLK_DEV_IT821X is not set
524# CONFIG_BLK_DEV_NS87415 is not set 543# CONFIG_BLK_DEV_NS87415 is not set
@@ -571,6 +590,7 @@ CONFIG_BLK_DEV_SD=y
571# CONFIG_SCSI_SRP_ATTRS is not set 590# CONFIG_SCSI_SRP_ATTRS is not set
572CONFIG_SCSI_LOWLEVEL=y 591CONFIG_SCSI_LOWLEVEL=y
573# CONFIG_ISCSI_TCP is not set 592# CONFIG_ISCSI_TCP is not set
593# CONFIG_SCSI_CXGB3_ISCSI is not set
574# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 594# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
575# CONFIG_SCSI_3W_9XXX is not set 595# CONFIG_SCSI_3W_9XXX is not set
576# CONFIG_SCSI_ACARD is not set 596# CONFIG_SCSI_ACARD is not set
@@ -587,6 +607,8 @@ CONFIG_SCSI_LOWLEVEL=y
587# CONFIG_MEGARAID_SAS is not set 607# CONFIG_MEGARAID_SAS is not set
588# CONFIG_SCSI_HPTIOP is not set 608# CONFIG_SCSI_HPTIOP is not set
589# CONFIG_SCSI_BUSLOGIC is not set 609# CONFIG_SCSI_BUSLOGIC is not set
610# CONFIG_LIBFC is not set
611# CONFIG_FCOE is not set
590# CONFIG_SCSI_DMX3191D is not set 612# CONFIG_SCSI_DMX3191D is not set
591# CONFIG_SCSI_EATA is not set 613# CONFIG_SCSI_EATA is not set
592# CONFIG_SCSI_FUTURE_DOMAIN is not set 614# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -707,6 +729,9 @@ CONFIG_PHYLIB=y
707# CONFIG_BROADCOM_PHY is not set 729# CONFIG_BROADCOM_PHY is not set
708# CONFIG_ICPLUS_PHY is not set 730# CONFIG_ICPLUS_PHY is not set
709# CONFIG_REALTEK_PHY is not set 731# CONFIG_REALTEK_PHY is not set
732# CONFIG_NATIONAL_PHY is not set
733# CONFIG_STE10XP is not set
734# CONFIG_LSI_ET1011C_PHY is not set
710# CONFIG_FIXED_PHY is not set 735# CONFIG_FIXED_PHY is not set
711# CONFIG_MDIO_BITBANG is not set 736# CONFIG_MDIO_BITBANG is not set
712CONFIG_NET_ETHERNET=y 737CONFIG_NET_ETHERNET=y
@@ -730,7 +755,6 @@ CONFIG_NET_PCI=y
730# CONFIG_ADAPTEC_STARFIRE is not set 755# CONFIG_ADAPTEC_STARFIRE is not set
731# CONFIG_B44 is not set 756# CONFIG_B44 is not set
732# CONFIG_FORCEDETH is not set 757# CONFIG_FORCEDETH is not set
733# CONFIG_EEPRO100 is not set
734CONFIG_E100=y 758CONFIG_E100=y
735# CONFIG_FEALNX is not set 759# CONFIG_FEALNX is not set
736# CONFIG_NATSEMI is not set 760# CONFIG_NATSEMI is not set
@@ -744,6 +768,7 @@ CONFIG_8139TOO=y
744# CONFIG_R6040 is not set 768# CONFIG_R6040 is not set
745# CONFIG_SIS900 is not set 769# CONFIG_SIS900 is not set
746# CONFIG_EPIC100 is not set 770# CONFIG_EPIC100 is not set
771# CONFIG_SMSC9420 is not set
747# CONFIG_SUNDANCE is not set 772# CONFIG_SUNDANCE is not set
748# CONFIG_TLAN is not set 773# CONFIG_TLAN is not set
749# CONFIG_VIA_RHINE is not set 774# CONFIG_VIA_RHINE is not set
@@ -773,6 +798,7 @@ CONFIG_MV643XX_ETH=y
773# CONFIG_JME is not set 798# CONFIG_JME is not set
774CONFIG_NETDEV_10000=y 799CONFIG_NETDEV_10000=y
775# CONFIG_CHELSIO_T1 is not set 800# CONFIG_CHELSIO_T1 is not set
801CONFIG_CHELSIO_T3_DEPENDS=y
776# CONFIG_CHELSIO_T3 is not set 802# CONFIG_CHELSIO_T3 is not set
777# CONFIG_ENIC is not set 803# CONFIG_ENIC is not set
778# CONFIG_IXGBE is not set 804# CONFIG_IXGBE is not set
@@ -797,6 +823,10 @@ CONFIG_NETDEV_10000=y
797# CONFIG_IWLWIFI_LEDS is not set 823# CONFIG_IWLWIFI_LEDS is not set
798 824
799# 825#
826# Enable WiMAX (Networking options) to see the WiMAX drivers
827#
828
829#
800# USB Network Adapters 830# USB Network Adapters
801# 831#
802# CONFIG_USB_CATC is not set 832# CONFIG_USB_CATC is not set
@@ -877,8 +907,10 @@ CONFIG_SERIAL_CORE=y
877CONFIG_SERIAL_CORE_CONSOLE=y 907CONFIG_SERIAL_CORE_CONSOLE=y
878# CONFIG_SERIAL_JSM is not set 908# CONFIG_SERIAL_JSM is not set
879CONFIG_UNIX98_PTYS=y 909CONFIG_UNIX98_PTYS=y
910# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
880CONFIG_LEGACY_PTYS=y 911CONFIG_LEGACY_PTYS=y
881CONFIG_LEGACY_PTY_COUNT=256 912CONFIG_LEGACY_PTY_COUNT=256
913# CONFIG_HVC_UDBG is not set
882# CONFIG_IPMI_HANDLER is not set 914# CONFIG_IPMI_HANDLER is not set
883# CONFIG_HW_RANDOM is not set 915# CONFIG_HW_RANDOM is not set
884# CONFIG_NVRAM is not set 916# CONFIG_NVRAM is not set
@@ -943,8 +975,8 @@ CONFIG_I2C_MV64XXX=y
943# Miscellaneous I2C Chip support 975# Miscellaneous I2C Chip support
944# 976#
945# CONFIG_DS1682 is not set 977# CONFIG_DS1682 is not set
946# CONFIG_AT24 is not set 978# CONFIG_EEPROM_AT24 is not set
947# CONFIG_SENSORS_EEPROM is not set 979# CONFIG_EEPROM_LEGACY is not set
948# CONFIG_SENSORS_PCF8574 is not set 980# CONFIG_SENSORS_PCF8574 is not set
949# CONFIG_PCF8575 is not set 981# CONFIG_PCF8575 is not set
950# CONFIG_SENSORS_PCA9539 is not set 982# CONFIG_SENSORS_PCA9539 is not set
@@ -970,8 +1002,10 @@ CONFIG_HWMON=y
970# CONFIG_SENSORS_ADM1029 is not set 1002# CONFIG_SENSORS_ADM1029 is not set
971# CONFIG_SENSORS_ADM1031 is not set 1003# CONFIG_SENSORS_ADM1031 is not set
972# CONFIG_SENSORS_ADM9240 is not set 1004# CONFIG_SENSORS_ADM9240 is not set
1005# CONFIG_SENSORS_ADT7462 is not set
973# CONFIG_SENSORS_ADT7470 is not set 1006# CONFIG_SENSORS_ADT7470 is not set
974# CONFIG_SENSORS_ADT7473 is not set 1007# CONFIG_SENSORS_ADT7473 is not set
1008# CONFIG_SENSORS_ADT7475 is not set
975# CONFIG_SENSORS_ATXP1 is not set 1009# CONFIG_SENSORS_ATXP1 is not set
976# CONFIG_SENSORS_DS1621 is not set 1010# CONFIG_SENSORS_DS1621 is not set
977# CONFIG_SENSORS_I5K_AMB is not set 1011# CONFIG_SENSORS_I5K_AMB is not set
@@ -992,6 +1026,7 @@ CONFIG_HWMON=y
992# CONFIG_SENSORS_LM90 is not set 1026# CONFIG_SENSORS_LM90 is not set
993# CONFIG_SENSORS_LM92 is not set 1027# CONFIG_SENSORS_LM92 is not set
994# CONFIG_SENSORS_LM93 is not set 1028# CONFIG_SENSORS_LM93 is not set
1029# CONFIG_SENSORS_LTC4245 is not set
995# CONFIG_SENSORS_MAX1619 is not set 1030# CONFIG_SENSORS_MAX1619 is not set
996# CONFIG_SENSORS_MAX6650 is not set 1031# CONFIG_SENSORS_MAX6650 is not set
997# CONFIG_SENSORS_PC87360 is not set 1032# CONFIG_SENSORS_PC87360 is not set
@@ -1018,11 +1053,11 @@ CONFIG_HWMON=y
1018# CONFIG_THERMAL is not set 1053# CONFIG_THERMAL is not set
1019# CONFIG_THERMAL_HWMON is not set 1054# CONFIG_THERMAL_HWMON is not set
1020# CONFIG_WATCHDOG is not set 1055# CONFIG_WATCHDOG is not set
1056CONFIG_SSB_POSSIBLE=y
1021 1057
1022# 1058#
1023# Sonics Silicon Backplane 1059# Sonics Silicon Backplane
1024# 1060#
1025CONFIG_SSB_POSSIBLE=y
1026# CONFIG_SSB is not set 1061# CONFIG_SSB is not set
1027 1062
1028# 1063#
@@ -1031,18 +1066,13 @@ CONFIG_SSB_POSSIBLE=y
1031# CONFIG_MFD_CORE is not set 1066# CONFIG_MFD_CORE is not set
1032# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1033# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_TWL4030_CORE is not set
1034# CONFIG_MFD_TMIO is not set 1070# CONFIG_MFD_TMIO is not set
1035# CONFIG_PMIC_DA903X is not set 1071# CONFIG_PMIC_DA903X is not set
1036# CONFIG_MFD_WM8400 is not set 1072# CONFIG_MFD_WM8400 is not set
1037# CONFIG_MFD_WM8350_I2C is not set 1073# CONFIG_MFD_WM8350_I2C is not set
1038 1074# CONFIG_MFD_PCF50633 is not set
1039#
1040# Voltage and Current regulators
1041#
1042# CONFIG_REGULATOR is not set 1075# CONFIG_REGULATOR is not set
1043# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1044# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1045# CONFIG_REGULATOR_BQ24022 is not set
1046 1076
1047# 1077#
1048# Multimedia devices 1078# Multimedia devices
@@ -1101,11 +1131,9 @@ CONFIG_HID_COMPAT=y
1101CONFIG_HID_A4TECH=y 1131CONFIG_HID_A4TECH=y
1102CONFIG_HID_APPLE=y 1132CONFIG_HID_APPLE=y
1103CONFIG_HID_BELKIN=y 1133CONFIG_HID_BELKIN=y
1104CONFIG_HID_BRIGHT=y
1105CONFIG_HID_CHERRY=y 1134CONFIG_HID_CHERRY=y
1106CONFIG_HID_CHICONY=y 1135CONFIG_HID_CHICONY=y
1107CONFIG_HID_CYPRESS=y 1136CONFIG_HID_CYPRESS=y
1108CONFIG_HID_DELL=y
1109CONFIG_HID_EZKEY=y 1137CONFIG_HID_EZKEY=y
1110CONFIG_HID_GYRATION=y 1138CONFIG_HID_GYRATION=y
1111CONFIG_HID_LOGITECH=y 1139CONFIG_HID_LOGITECH=y
@@ -1113,12 +1141,15 @@ CONFIG_HID_LOGITECH=y
1113# CONFIG_LOGIRUMBLEPAD2_FF is not set 1141# CONFIG_LOGIRUMBLEPAD2_FF is not set
1114CONFIG_HID_MICROSOFT=y 1142CONFIG_HID_MICROSOFT=y
1115CONFIG_HID_MONTEREY=y 1143CONFIG_HID_MONTEREY=y
1144CONFIG_HID_NTRIG=y
1116CONFIG_HID_PANTHERLORD=y 1145CONFIG_HID_PANTHERLORD=y
1117# CONFIG_PANTHERLORD_FF is not set 1146# CONFIG_PANTHERLORD_FF is not set
1118CONFIG_HID_PETALYNX=y 1147CONFIG_HID_PETALYNX=y
1119CONFIG_HID_SAMSUNG=y 1148CONFIG_HID_SAMSUNG=y
1120CONFIG_HID_SONY=y 1149CONFIG_HID_SONY=y
1121CONFIG_HID_SUNPLUS=y 1150CONFIG_HID_SUNPLUS=y
1151# CONFIG_GREENASIA_FF is not set
1152CONFIG_HID_TOPSEED=y
1122CONFIG_THRUSTMASTER_FF=y 1153CONFIG_THRUSTMASTER_FF=y
1123CONFIG_ZEROPLUS_FF=y 1154CONFIG_ZEROPLUS_FF=y
1124CONFIG_USB_SUPPORT=y 1155CONFIG_USB_SUPPORT=y
@@ -1148,6 +1179,7 @@ CONFIG_USB_EHCI_HCD=y
1148# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1179# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1149# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1180# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1150CONFIG_USB_EHCI_HCD_PPC_OF=y 1181CONFIG_USB_EHCI_HCD_PPC_OF=y
1182# CONFIG_USB_OXU210HP_HCD is not set
1151# CONFIG_USB_ISP116X_HCD is not set 1183# CONFIG_USB_ISP116X_HCD is not set
1152# CONFIG_USB_ISP1760_HCD is not set 1184# CONFIG_USB_ISP1760_HCD is not set
1153CONFIG_USB_OHCI_HCD=y 1185CONFIG_USB_OHCI_HCD=y
@@ -1170,11 +1202,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1170# CONFIG_USB_TMC is not set 1202# CONFIG_USB_TMC is not set
1171 1203
1172# 1204#
1173# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1205# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1174# 1206#
1175 1207
1176# 1208#
1177# may also be needed; see USB_STORAGE Help for more information 1209# see USB_STORAGE Help for more information
1178# 1210#
1179# CONFIG_USB_STORAGE is not set 1211# CONFIG_USB_STORAGE is not set
1180# CONFIG_USB_LIBUSUAL is not set 1212# CONFIG_USB_LIBUSUAL is not set
@@ -1216,6 +1248,10 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1216# CONFIG_USB_ISIGHTFW is not set 1248# CONFIG_USB_ISIGHTFW is not set
1217# CONFIG_USB_VST is not set 1249# CONFIG_USB_VST is not set
1218# CONFIG_USB_GADGET is not set 1250# CONFIG_USB_GADGET is not set
1251
1252#
1253# OTG and related infrastructure
1254#
1219# CONFIG_UWB is not set 1255# CONFIG_UWB is not set
1220# CONFIG_MMC is not set 1256# CONFIG_MMC is not set
1221# CONFIG_MEMSTICK is not set 1257# CONFIG_MEMSTICK is not set
@@ -1253,6 +1289,7 @@ CONFIG_RTC_DRV_MAX6900=y
1253# CONFIG_RTC_DRV_M41T80 is not set 1289# CONFIG_RTC_DRV_M41T80 is not set
1254# CONFIG_RTC_DRV_S35390A is not set 1290# CONFIG_RTC_DRV_S35390A is not set
1255# CONFIG_RTC_DRV_FM3130 is not set 1291# CONFIG_RTC_DRV_FM3130 is not set
1292# CONFIG_RTC_DRV_RX8581 is not set
1256 1293
1257# 1294#
1258# SPI RTC drivers 1295# SPI RTC drivers
@@ -1299,7 +1336,9 @@ CONFIG_FS_MBCACHE=y
1299# CONFIG_FS_POSIX_ACL is not set 1336# CONFIG_FS_POSIX_ACL is not set
1300CONFIG_FILE_LOCKING=y 1337CONFIG_FILE_LOCKING=y
1301# CONFIG_XFS_FS is not set 1338# CONFIG_XFS_FS is not set
1339# CONFIG_GFS2_FS is not set
1302# CONFIG_OCFS2_FS is not set 1340# CONFIG_OCFS2_FS is not set
1341# CONFIG_BTRFS_FS is not set
1303CONFIG_DNOTIFY=y 1342CONFIG_DNOTIFY=y
1304CONFIG_INOTIFY=y 1343CONFIG_INOTIFY=y
1305CONFIG_INOTIFY_USER=y 1344CONFIG_INOTIFY_USER=y
@@ -1333,10 +1372,7 @@ CONFIG_TMPFS=y
1333# CONFIG_TMPFS_POSIX_ACL is not set 1372# CONFIG_TMPFS_POSIX_ACL is not set
1334# CONFIG_HUGETLB_PAGE is not set 1373# CONFIG_HUGETLB_PAGE is not set
1335# CONFIG_CONFIGFS_FS is not set 1374# CONFIG_CONFIGFS_FS is not set
1336 1375CONFIG_MISC_FILESYSTEMS=y
1337#
1338# Miscellaneous filesystems
1339#
1340# CONFIG_ADFS_FS is not set 1376# CONFIG_ADFS_FS is not set
1341# CONFIG_AFFS_FS is not set 1377# CONFIG_AFFS_FS is not set
1342# CONFIG_HFS_FS is not set 1378# CONFIG_HFS_FS is not set
@@ -1346,6 +1382,7 @@ CONFIG_TMPFS=y
1346# CONFIG_EFS_FS is not set 1382# CONFIG_EFS_FS is not set
1347# CONFIG_JFFS2_FS is not set 1383# CONFIG_JFFS2_FS is not set
1348# CONFIG_CRAMFS is not set 1384# CONFIG_CRAMFS is not set
1385# CONFIG_SQUASHFS is not set
1349# CONFIG_VXFS_FS is not set 1386# CONFIG_VXFS_FS is not set
1350# CONFIG_MINIX_FS is not set 1387# CONFIG_MINIX_FS is not set
1351# CONFIG_OMFS_FS is not set 1388# CONFIG_OMFS_FS is not set
@@ -1400,6 +1437,7 @@ CONFIG_MSDOS_PARTITION=y
1400# Library routines 1437# Library routines
1401# 1438#
1402CONFIG_BITREVERSE=y 1439CONFIG_BITREVERSE=y
1440CONFIG_GENERIC_FIND_LAST_BIT=y
1403# CONFIG_CRC_CCITT is not set 1441# CONFIG_CRC_CCITT is not set
1404# CONFIG_CRC16 is not set 1442# CONFIG_CRC16 is not set
1405CONFIG_CRC_T10DIF=y 1443CONFIG_CRC_T10DIF=y
@@ -1433,6 +1471,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
1433# CONFIG_LATENCYTOP is not set 1471# CONFIG_LATENCYTOP is not set
1434CONFIG_SYSCTL_SYSCALL_CHECK=y 1472CONFIG_SYSCTL_SYSCALL_CHECK=y
1435CONFIG_HAVE_FUNCTION_TRACER=y 1473CONFIG_HAVE_FUNCTION_TRACER=y
1474CONFIG_HAVE_DYNAMIC_FTRACE=y
1475CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1436 1476
1437# 1477#
1438# Tracers 1478# Tracers
@@ -1440,6 +1480,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1440# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1480# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1441# CONFIG_SAMPLES is not set 1481# CONFIG_SAMPLES is not set
1442CONFIG_HAVE_ARCH_KGDB=y 1482CONFIG_HAVE_ARCH_KGDB=y
1483CONFIG_PRINT_STACK_DEPTH=64
1443# CONFIG_IRQSTACKS is not set 1484# CONFIG_IRQSTACKS is not set
1444# CONFIG_BOOTX_TEXT is not set 1485# CONFIG_BOOTX_TEXT is not set
1445# CONFIG_PPC_EARLY_DEBUG is not set 1486# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1458,6 +1499,7 @@ CONFIG_CRYPTO=y
1458# 1499#
1459# CONFIG_CRYPTO_FIPS is not set 1500# CONFIG_CRYPTO_FIPS is not set
1460# CONFIG_CRYPTO_MANAGER is not set 1501# CONFIG_CRYPTO_MANAGER is not set
1502# CONFIG_CRYPTO_MANAGER2 is not set
1461# CONFIG_CRYPTO_GF128MUL is not set 1503# CONFIG_CRYPTO_GF128MUL is not set
1462# CONFIG_CRYPTO_NULL is not set 1504# CONFIG_CRYPTO_NULL is not set
1463# CONFIG_CRYPTO_CRYPTD is not set 1505# CONFIG_CRYPTO_CRYPTD is not set
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index 1e520ab65118..61b100849715 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -1055,8 +1055,8 @@ CONFIG_I2C_ALGOBIT=y
1055# Miscellaneous I2C Chip support 1055# Miscellaneous I2C Chip support
1056# 1056#
1057# CONFIG_DS1682 is not set 1057# CONFIG_DS1682 is not set
1058# CONFIG_AT24 is not set 1058# CONFIG_EEPROM_AT24 is not set
1059# CONFIG_SENSORS_EEPROM is not set 1059# CONFIG_EEPROM_LEGACY is not set
1060# CONFIG_SENSORS_PCF8574 is not set 1060# CONFIG_SENSORS_PCF8574 is not set
1061# CONFIG_PCF8575 is not set 1061# CONFIG_PCF8575 is not set
1062# CONFIG_SENSORS_PCA9539 is not set 1062# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index b3f5671972a9..86512c8790d1 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_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.28-rc3 3# Linux kernel version: 2.6.29-rc2
4# Sat Nov 8 12:39:48 2008 4# Mon Jan 26 15:35:46 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -43,7 +43,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 43CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 44CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 45CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 47CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 48CONFIG_PPC_OF=y
49CONFIG_OF=y 49CONFIG_OF=y
@@ -73,12 +73,12 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 74# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 75CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 76CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 77CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 78# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 79CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 80# CONFIG_CGROUP_SCHED is not set
81# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 83CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
@@ -110,7 +110,6 @@ CONFIG_SLUB_DEBUG=y
110CONFIG_SLUB=y 110CONFIG_SLUB=y
111# CONFIG_SLOB is not set 111# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y 115CONFIG_HAVE_IOREMAP_PROT=y
@@ -120,7 +119,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
125CONFIG_MODULES=y 123CONFIG_MODULES=y
126# CONFIG_MODULE_FORCE_LOAD is not set 124# CONFIG_MODULE_FORCE_LOAD is not set
@@ -128,11 +126,9 @@ CONFIG_MODULE_UNLOAD=y
128# CONFIG_MODULE_FORCE_UNLOAD is not set 126# CONFIG_MODULE_FORCE_UNLOAD is not set
129# CONFIG_MODVERSIONS is not set 127# CONFIG_MODVERSIONS is not set
130# CONFIG_MODULE_SRCVERSION_ALL is not set 128# CONFIG_MODULE_SRCVERSION_ALL is not set
131CONFIG_KMOD=y
132CONFIG_BLOCK=y 129CONFIG_BLOCK=y
133CONFIG_LBD=y 130CONFIG_LBD=y
134# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_LSF is not set
136# CONFIG_BLK_DEV_BSG is not set 132# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 133# CONFIG_BLK_DEV_INTEGRITY is not set
138 134
@@ -149,6 +145,10 @@ CONFIG_DEFAULT_CFQ=y
149# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="cfq" 146CONFIG_DEFAULT_IOSCHED="cfq"
151CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
152# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
153 153
154# 154#
@@ -191,6 +191,7 @@ CONFIG_MPIC=y
191# CONFIG_TAU is not set 191# CONFIG_TAU is not set
192# CONFIG_QUICC_ENGINE is not set 192# CONFIG_QUICC_ENGINE is not set
193# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
194# CONFIG_SIMPLE_GPIO is not set
194 195
195# 196#
196# Kernel options 197# Kernel options
@@ -217,6 +218,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y 218CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
219# CONFIG_KEXEC is not set 220# CONFIG_KEXEC is not set
221# CONFIG_CRASH_DUMP is not set
220CONFIG_ARCH_FLATMEM_ENABLE=y 222CONFIG_ARCH_FLATMEM_ENABLE=y
221CONFIG_ARCH_POPULATES_NODE_MAP=y 223CONFIG_ARCH_POPULATES_NODE_MAP=y
222CONFIG_SELECT_MEMORY_MODEL=y 224CONFIG_SELECT_MEMORY_MODEL=y
@@ -228,12 +230,14 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
229CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
239CONFIG_CMDLINE_BOOL=y 243CONFIG_CMDLINE_BOOL=y
@@ -257,6 +261,7 @@ CONFIG_PCI_SYSCALL=y
257CONFIG_ARCH_SUPPORTS_MSI=y 261CONFIG_ARCH_SUPPORTS_MSI=y
258# CONFIG_PCI_MSI is not set 262# CONFIG_PCI_MSI is not set
259# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set
260# CONFIG_PCCARD is not set 265# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 266# CONFIG_HOTPLUG_PCI is not set
262# CONFIG_HAS_RAPIDIO is not set 267# CONFIG_HAS_RAPIDIO is not set
@@ -279,6 +284,7 @@ CONFIG_NET=y
279# 284#
280# Networking options 285# Networking options
281# 286#
287CONFIG_COMPAT_NET_DEV_OPS=y
282CONFIG_PACKET=m 288CONFIG_PACKET=m
283# CONFIG_PACKET_MMAP is not set 289# CONFIG_PACKET_MMAP is not set
284CONFIG_UNIX=y 290CONFIG_UNIX=y
@@ -330,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
331# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
332# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
333 340
334# 341#
335# Network testing 342# Network testing
@@ -345,8 +352,9 @@ CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 353CONFIG_WIRELESS_OLD_REGULATORY=y
347# CONFIG_WIRELESS_EXT is not set 354# CONFIG_WIRELESS_EXT is not set
355# CONFIG_LIB80211 is not set
348# CONFIG_MAC80211 is not set 356# CONFIG_MAC80211 is not set
349# CONFIG_IEEE80211 is not set 357# CONFIG_WIMAX is not set
350# CONFIG_RFKILL is not set 358# CONFIG_RFKILL is not set
351# CONFIG_NET_9P is not set 359# CONFIG_NET_9P is not set
352 360
@@ -367,6 +375,7 @@ CONFIG_MTD=y
367# CONFIG_MTD_DEBUG is not set 375# CONFIG_MTD_DEBUG is not set
368# CONFIG_MTD_CONCAT is not set 376# CONFIG_MTD_CONCAT is not set
369CONFIG_MTD_PARTITIONS=y 377CONFIG_MTD_PARTITIONS=y
378# CONFIG_MTD_TESTS is not set
370# CONFIG_MTD_REDBOOT_PARTS is not set 379# CONFIG_MTD_REDBOOT_PARTS is not set
371# CONFIG_MTD_CMDLINE_PARTS is not set 380# CONFIG_MTD_CMDLINE_PARTS is not set
372# CONFIG_MTD_OF_PARTS is not set 381# CONFIG_MTD_OF_PARTS is not set
@@ -416,9 +425,7 @@ CONFIG_MTD_CFI_UTIL=y
416# 425#
417# CONFIG_MTD_COMPLEX_MAPPINGS is not set 426# CONFIG_MTD_COMPLEX_MAPPINGS is not set
418CONFIG_MTD_PHYSMAP=y 427CONFIG_MTD_PHYSMAP=y
419CONFIG_MTD_PHYSMAP_START=0xFF800000 428# CONFIG_MTD_PHYSMAP_COMPAT is not set
420CONFIG_MTD_PHYSMAP_LEN=0x00800000
421CONFIG_MTD_PHYSMAP_BANKWIDTH=1
422# CONFIG_MTD_PHYSMAP_OF is not set 429# CONFIG_MTD_PHYSMAP_OF is not set
423# CONFIG_MTD_INTEL_VR_NOR is not set 430# CONFIG_MTD_INTEL_VR_NOR is not set
424# CONFIG_MTD_PLATRAM is not set 431# CONFIG_MTD_PLATRAM is not set
@@ -442,6 +449,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
442# CONFIG_MTD_ONENAND is not set 449# CONFIG_MTD_ONENAND is not set
443 450
444# 451#
452# LPDDR flash memory drivers
453#
454# CONFIG_MTD_LPDDR is not set
455# CONFIG_MTD_QINFO_PROBE is not set
456
457#
445# UBI - Unsorted block images 458# UBI - Unsorted block images
446# 459#
447# CONFIG_MTD_UBI is not set 460# CONFIG_MTD_UBI is not set
@@ -468,8 +481,10 @@ CONFIG_MISC_DEVICES=y
468# CONFIG_EEPROM_93CX6 is not set 481# CONFIG_EEPROM_93CX6 is not set
469# CONFIG_SGI_IOC4 is not set 482# CONFIG_SGI_IOC4 is not set
470# CONFIG_TIFM_CORE is not set 483# CONFIG_TIFM_CORE is not set
484# CONFIG_ICS932S401 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 485# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_HP_ILO is not set 486# CONFIG_HP_ILO is not set
487# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 488CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 489CONFIG_IDE=y
475 490
@@ -483,7 +498,6 @@ CONFIG_IDE_GD_ATA=y
483# CONFIG_IDE_GD_ATAPI is not set 498# CONFIG_IDE_GD_ATAPI is not set
484# CONFIG_BLK_DEV_IDECD is not set 499# CONFIG_BLK_DEV_IDECD is not set
485# CONFIG_BLK_DEV_IDETAPE is not set 500# CONFIG_BLK_DEV_IDETAPE is not set
486# CONFIG_BLK_DEV_IDESCSI is not set
487# CONFIG_IDE_TASK_IOCTL is not set 501# CONFIG_IDE_TASK_IOCTL is not set
488CONFIG_IDE_PROC_FS=y 502CONFIG_IDE_PROC_FS=y
489 503
@@ -512,6 +526,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
512# CONFIG_BLK_DEV_JMICRON is not set 526# CONFIG_BLK_DEV_JMICRON is not set
513# CONFIG_BLK_DEV_SC1200 is not set 527# CONFIG_BLK_DEV_SC1200 is not set
514# CONFIG_BLK_DEV_PIIX is not set 528# CONFIG_BLK_DEV_PIIX is not set
529# CONFIG_BLK_DEV_IT8172 is not set
515# CONFIG_BLK_DEV_IT8213 is not set 530# CONFIG_BLK_DEV_IT8213 is not set
516# CONFIG_BLK_DEV_IT821X is not set 531# CONFIG_BLK_DEV_IT821X is not set
517# CONFIG_BLK_DEV_NS87415 is not set 532# CONFIG_BLK_DEV_NS87415 is not set
@@ -582,6 +597,8 @@ CONFIG_SCSI_LOWLEVEL=y
582# CONFIG_MEGARAID_SAS is not set 597# CONFIG_MEGARAID_SAS is not set
583# CONFIG_SCSI_HPTIOP is not set 598# CONFIG_SCSI_HPTIOP is not set
584# CONFIG_SCSI_BUSLOGIC is not set 599# CONFIG_SCSI_BUSLOGIC is not set
600# CONFIG_LIBFC is not set
601# CONFIG_FCOE is not set
585# CONFIG_SCSI_DMX3191D is not set 602# CONFIG_SCSI_DMX3191D is not set
586# CONFIG_SCSI_EATA is not set 603# CONFIG_SCSI_EATA is not set
587# CONFIG_SCSI_FUTURE_DOMAIN is not set 604# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -672,6 +689,10 @@ CONFIG_R8169=y
672# CONFIG_IWLWIFI_LEDS is not set 689# CONFIG_IWLWIFI_LEDS is not set
673 690
674# 691#
692# Enable WiMAX (Networking options) to see the WiMAX drivers
693#
694
695#
675# USB Network Adapters 696# USB Network Adapters
676# 697#
677# CONFIG_USB_CATC is not set 698# CONFIG_USB_CATC is not set
@@ -729,8 +750,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
729# CONFIG_SERIAL_JSM is not set 750# CONFIG_SERIAL_JSM is not set
730# CONFIG_SERIAL_OF_PLATFORM is not set 751# CONFIG_SERIAL_OF_PLATFORM is not set
731CONFIG_UNIX98_PTYS=y 752CONFIG_UNIX98_PTYS=y
753# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
732CONFIG_LEGACY_PTYS=y 754CONFIG_LEGACY_PTYS=y
733CONFIG_LEGACY_PTY_COUNT=256 755CONFIG_LEGACY_PTY_COUNT=256
756# CONFIG_HVC_UDBG is not set
734# CONFIG_IPMI_HANDLER is not set 757# CONFIG_IPMI_HANDLER is not set
735CONFIG_HW_RANDOM=m 758CONFIG_HW_RANDOM=m
736CONFIG_NVRAM=y 759CONFIG_NVRAM=y
@@ -795,8 +818,8 @@ CONFIG_I2C_MPC=y
795# Miscellaneous I2C Chip support 818# Miscellaneous I2C Chip support
796# 819#
797# CONFIG_DS1682 is not set 820# CONFIG_DS1682 is not set
798# CONFIG_AT24 is not set 821# CONFIG_EEPROM_AT24 is not set
799# CONFIG_SENSORS_EEPROM is not set 822# CONFIG_EEPROM_LEGACY is not set
800# CONFIG_SENSORS_PCF8574 is not set 823# CONFIG_SENSORS_PCF8574 is not set
801# CONFIG_PCF8575 is not set 824# CONFIG_PCF8575 is not set
802# CONFIG_SENSORS_PCA9539 is not set 825# CONFIG_SENSORS_PCA9539 is not set
@@ -816,11 +839,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
816# CONFIG_THERMAL is not set 839# CONFIG_THERMAL is not set
817# CONFIG_THERMAL_HWMON is not set 840# CONFIG_THERMAL_HWMON is not set
818# CONFIG_WATCHDOG is not set 841# CONFIG_WATCHDOG is not set
842CONFIG_SSB_POSSIBLE=y
819 843
820# 844#
821# Sonics Silicon Backplane 845# Sonics Silicon Backplane
822# 846#
823CONFIG_SSB_POSSIBLE=y
824# CONFIG_SSB is not set 847# CONFIG_SSB is not set
825 848
826# 849#
@@ -829,18 +852,13 @@ CONFIG_SSB_POSSIBLE=y
829# CONFIG_MFD_CORE is not set 852# CONFIG_MFD_CORE is not set
830# CONFIG_MFD_SM501 is not set 853# CONFIG_MFD_SM501 is not set
831# CONFIG_HTC_PASIC3 is not set 854# CONFIG_HTC_PASIC3 is not set
855# CONFIG_TWL4030_CORE is not set
832# CONFIG_MFD_TMIO is not set 856# CONFIG_MFD_TMIO is not set
833# CONFIG_PMIC_DA903X is not set 857# CONFIG_PMIC_DA903X is not set
834# CONFIG_MFD_WM8400 is not set 858# CONFIG_MFD_WM8400 is not set
835# CONFIG_MFD_WM8350_I2C is not set 859# CONFIG_MFD_WM8350_I2C is not set
836 860# CONFIG_MFD_PCF50633 is not set
837#
838# Voltage and Current regulators
839#
840# CONFIG_REGULATOR is not set 861# CONFIG_REGULATOR is not set
841# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
842# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
843# CONFIG_REGULATOR_BQ24022 is not set
844 862
845# 863#
846# Multimedia devices 864# Multimedia devices
@@ -903,6 +921,7 @@ CONFIG_USB_EHCI_HCD=y
903# CONFIG_USB_EHCI_TT_NEWSCHED is not set 921# CONFIG_USB_EHCI_TT_NEWSCHED is not set
904# CONFIG_USB_EHCI_FSL is not set 922# CONFIG_USB_EHCI_FSL is not set
905CONFIG_USB_EHCI_HCD_PPC_OF=y 923CONFIG_USB_EHCI_HCD_PPC_OF=y
924# CONFIG_USB_OXU210HP_HCD is not set
906# CONFIG_USB_ISP116X_HCD is not set 925# CONFIG_USB_ISP116X_HCD is not set
907# CONFIG_USB_ISP1760_HCD is not set 926# CONFIG_USB_ISP1760_HCD is not set
908CONFIG_USB_OHCI_HCD=y 927CONFIG_USB_OHCI_HCD=y
@@ -925,18 +944,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
925# CONFIG_USB_TMC is not set 944# CONFIG_USB_TMC is not set
926 945
927# 946#
928# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 947# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
929# 948#
930 949
931# 950#
932# may also be needed; see USB_STORAGE Help for more information 951# see USB_STORAGE Help for more information
933# 952#
934CONFIG_USB_STORAGE=y 953CONFIG_USB_STORAGE=y
935# CONFIG_USB_STORAGE_DEBUG is not set 954# CONFIG_USB_STORAGE_DEBUG is not set
936# CONFIG_USB_STORAGE_DATAFAB is not set 955# CONFIG_USB_STORAGE_DATAFAB is not set
937# CONFIG_USB_STORAGE_FREECOM is not set 956# CONFIG_USB_STORAGE_FREECOM is not set
938# CONFIG_USB_STORAGE_ISD200 is not set 957# CONFIG_USB_STORAGE_ISD200 is not set
939# CONFIG_USB_STORAGE_DPCM is not set
940# CONFIG_USB_STORAGE_USBAT is not set 958# CONFIG_USB_STORAGE_USBAT is not set
941# CONFIG_USB_STORAGE_SDDR09 is not set 959# CONFIG_USB_STORAGE_SDDR09 is not set
942# CONFIG_USB_STORAGE_SDDR55 is not set 960# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -983,6 +1001,10 @@ CONFIG_USB_STORAGE=y
983# CONFIG_USB_ISIGHTFW is not set 1001# CONFIG_USB_ISIGHTFW is not set
984# CONFIG_USB_VST is not set 1002# CONFIG_USB_VST is not set
985# CONFIG_USB_GADGET is not set 1003# CONFIG_USB_GADGET is not set
1004
1005#
1006# OTG and related infrastructure
1007#
986# CONFIG_UWB is not set 1008# CONFIG_UWB is not set
987# CONFIG_MMC is not set 1009# CONFIG_MMC is not set
988# CONFIG_MEMSTICK is not set 1010# CONFIG_MEMSTICK is not set
@@ -1020,6 +1042,7 @@ CONFIG_RTC_DRV_DS1307=y
1020# CONFIG_RTC_DRV_M41T80 is not set 1042# CONFIG_RTC_DRV_M41T80 is not set
1021# CONFIG_RTC_DRV_S35390A is not set 1043# CONFIG_RTC_DRV_S35390A is not set
1022# CONFIG_RTC_DRV_FM3130 is not set 1044# CONFIG_RTC_DRV_FM3130 is not set
1045# CONFIG_RTC_DRV_RX8581 is not set
1023 1046
1024# 1047#
1025# SPI RTC drivers 1048# SPI RTC drivers
@@ -1070,7 +1093,9 @@ CONFIG_XFS_FS=m
1070# CONFIG_XFS_POSIX_ACL is not set 1093# CONFIG_XFS_POSIX_ACL is not set
1071# CONFIG_XFS_RT is not set 1094# CONFIG_XFS_RT is not set
1072# CONFIG_XFS_DEBUG is not set 1095# CONFIG_XFS_DEBUG is not set
1096# CONFIG_GFS2_FS is not set
1073# CONFIG_OCFS2_FS is not set 1097# CONFIG_OCFS2_FS is not set
1098# CONFIG_BTRFS_FS is not set
1074CONFIG_DNOTIFY=y 1099CONFIG_DNOTIFY=y
1075CONFIG_INOTIFY=y 1100CONFIG_INOTIFY=y
1076CONFIG_INOTIFY_USER=y 1101CONFIG_INOTIFY_USER=y
@@ -1104,10 +1129,7 @@ CONFIG_TMPFS=y
1104# CONFIG_TMPFS_POSIX_ACL is not set 1129# CONFIG_TMPFS_POSIX_ACL is not set
1105# CONFIG_HUGETLB_PAGE is not set 1130# CONFIG_HUGETLB_PAGE is not set
1106# CONFIG_CONFIGFS_FS is not set 1131# CONFIG_CONFIGFS_FS is not set
1107 1132CONFIG_MISC_FILESYSTEMS=y
1108#
1109# Miscellaneous filesystems
1110#
1111# CONFIG_ADFS_FS is not set 1133# CONFIG_ADFS_FS is not set
1112# CONFIG_AFFS_FS is not set 1134# CONFIG_AFFS_FS is not set
1113# CONFIG_HFS_FS is not set 1135# CONFIG_HFS_FS is not set
@@ -1127,6 +1149,7 @@ CONFIG_JFFS2_ZLIB=y
1127CONFIG_JFFS2_RTIME=y 1149CONFIG_JFFS2_RTIME=y
1128# CONFIG_JFFS2_RUBIN is not set 1150# CONFIG_JFFS2_RUBIN is not set
1129# CONFIG_CRAMFS is not set 1151# CONFIG_CRAMFS is not set
1152# CONFIG_SQUASHFS is not set
1130# CONFIG_VXFS_FS is not set 1153# CONFIG_VXFS_FS is not set
1131# CONFIG_MINIX_FS is not set 1154# CONFIG_MINIX_FS is not set
1132# CONFIG_OMFS_FS is not set 1155# CONFIG_OMFS_FS is not set
@@ -1204,6 +1227,7 @@ CONFIG_NLS_UTF8=y
1204# Library routines 1227# Library routines
1205# 1228#
1206CONFIG_BITREVERSE=y 1229CONFIG_BITREVERSE=y
1230CONFIG_GENERIC_FIND_LAST_BIT=y
1207# CONFIG_CRC_CCITT is not set 1231# CONFIG_CRC_CCITT is not set
1208# CONFIG_CRC16 is not set 1232# CONFIG_CRC16 is not set
1209CONFIG_CRC_T10DIF=y 1233CONFIG_CRC_T10DIF=y
@@ -1239,6 +1263,8 @@ CONFIG_FRAME_WARN=1024
1239# CONFIG_LATENCYTOP is not set 1263# CONFIG_LATENCYTOP is not set
1240CONFIG_SYSCTL_SYSCALL_CHECK=y 1264CONFIG_SYSCTL_SYSCALL_CHECK=y
1241CONFIG_HAVE_FUNCTION_TRACER=y 1265CONFIG_HAVE_FUNCTION_TRACER=y
1266CONFIG_HAVE_DYNAMIC_FTRACE=y
1267CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1242 1268
1243# 1269#
1244# Tracers 1270# Tracers
@@ -1246,6 +1272,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1246# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1272# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1247# CONFIG_SAMPLES is not set 1273# CONFIG_SAMPLES is not set
1248CONFIG_HAVE_ARCH_KGDB=y 1274CONFIG_HAVE_ARCH_KGDB=y
1275CONFIG_PRINT_STACK_DEPTH=64
1249# CONFIG_IRQSTACKS is not set 1276# CONFIG_IRQSTACKS is not set
1250# CONFIG_BOOTX_TEXT is not set 1277# CONFIG_BOOTX_TEXT is not set
1251# CONFIG_PPC_EARLY_DEBUG is not set 1278# CONFIG_PPC_EARLY_DEBUG is not set
diff --git a/arch/powerpc/include/asm/Kbuild b/arch/powerpc/include/asm/Kbuild
index 9268602de5d0..5ab7d7fe198c 100644
--- a/arch/powerpc/include/asm/Kbuild
+++ b/arch/powerpc/include/asm/Kbuild
@@ -35,4 +35,3 @@ unifdef-y += spu_info.h
35unifdef-y += termios.h 35unifdef-y += termios.h
36unifdef-y += types.h 36unifdef-y += types.h
37unifdef-y += unistd.h 37unifdef-y += unistd.h
38unifdef-y += swab.h
diff --git a/arch/powerpc/include/asm/bootx.h b/arch/powerpc/include/asm/bootx.h
index 57b82e3f89ce..60a3c9ef3017 100644
--- a/arch/powerpc/include/asm/bootx.h
+++ b/arch/powerpc/include/asm/bootx.h
@@ -9,7 +9,7 @@
9#ifndef __ASM_BOOTX_H__ 9#ifndef __ASM_BOOTX_H__
10#define __ASM_BOOTX_H__ 10#define __ASM_BOOTX_H__
11 11
12#include <asm/types.h> 12#include <linux/types.h>
13 13
14#ifdef macintosh 14#ifdef macintosh
15#include <Types.h> 15#include <Types.h>
diff --git a/arch/powerpc/include/asm/byteorder.h b/arch/powerpc/include/asm/byteorder.h
index 5cca27a41532..aa6cc4fac965 100644
--- a/arch/powerpc/include/asm/byteorder.h
+++ b/arch/powerpc/include/asm/byteorder.h
@@ -7,8 +7,6 @@
7 * as published by the Free Software Foundation; either version 7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version. 8 * 2 of the License, or (at your option) any later version.
9 */ 9 */
10
11#include <asm/swab.h>
12#include <linux/byteorder/big_endian.h> 10#include <linux/byteorder/big_endian.h>
13 11
14#endif /* _ASM_POWERPC_BYTEORDER_H */ 12#endif /* _ASM_POWERPC_BYTEORDER_H */
diff --git a/arch/powerpc/include/asm/compat.h b/arch/powerpc/include/asm/compat.h
index d811a8cd7b58..4774c2f92232 100644
--- a/arch/powerpc/include/asm/compat.h
+++ b/arch/powerpc/include/asm/compat.h
@@ -210,5 +210,10 @@ struct compat_shmid64_ds {
210 compat_ulong_t __unused6; 210 compat_ulong_t __unused6;
211}; 211};
212 212
213static inline int is_compat_task(void)
214{
215 return test_thread_flag(TIF_32BIT);
216}
217
213#endif /* __KERNEL__ */ 218#endif /* __KERNEL__ */
214#endif /* _ASM_POWERPC_COMPAT_H */ 219#endif /* _ASM_POWERPC_COMPAT_H */
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
index cd46f023ec6d..b5600ce6055e 100644
--- a/arch/powerpc/include/asm/elf.h
+++ b/arch/powerpc/include/asm/elf.h
@@ -7,7 +7,7 @@
7#include <asm/string.h> 7#include <asm/string.h>
8#endif 8#endif
9 9
10#include <asm/types.h> 10#include <linux/types.h>
11#include <asm/ptrace.h> 11#include <asm/ptrace.h>
12#include <asm/cputable.h> 12#include <asm/cputable.h>
13#include <asm/auxvec.h> 13#include <asm/auxvec.h>
diff --git a/arch/powerpc/include/asm/kvm.h b/arch/powerpc/include/asm/kvm.h
index f993e4198d5c..4e0cf65f7f5a 100644
--- a/arch/powerpc/include/asm/kvm.h
+++ b/arch/powerpc/include/asm/kvm.h
@@ -20,7 +20,7 @@
20#ifndef __LINUX_KVM_POWERPC_H 20#ifndef __LINUX_KVM_POWERPC_H
21#define __LINUX_KVM_POWERPC_H 21#define __LINUX_KVM_POWERPC_H
22 22
23#include <asm/types.h> 23#include <linux/types.h>
24 24
25struct kvm_regs { 25struct kvm_regs {
26 __u64 pc; 26 __u64 pc;
diff --git a/arch/powerpc/include/asm/pgtable-4k.h b/arch/powerpc/include/asm/pgtable-4k.h
index 6b18ba9d2d85..1dbca4e7de67 100644
--- a/arch/powerpc/include/asm/pgtable-4k.h
+++ b/arch/powerpc/include/asm/pgtable-4k.h
@@ -60,7 +60,7 @@
60/* It should be preserving the high 48 bits and then specifically */ 60/* It should be preserving the high 48 bits and then specifically */
61/* preserving _PAGE_SECONDARY | _PAGE_GROUP_IX */ 61/* preserving _PAGE_SECONDARY | _PAGE_GROUP_IX */
62#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \ 62#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \
63 _PAGE_HPTEFLAGS) 63 _PAGE_HPTEFLAGS | _PAGE_SPECIAL)
64 64
65/* Bits to mask out from a PMD to get to the PTE page */ 65/* Bits to mask out from a PMD to get to the PTE page */
66#define PMD_MASKED_BITS 0 66#define PMD_MASKED_BITS 0
diff --git a/arch/powerpc/include/asm/pgtable-64k.h b/arch/powerpc/include/asm/pgtable-64k.h
index 07b0d8f09cb6..7389003349a6 100644
--- a/arch/powerpc/include/asm/pgtable-64k.h
+++ b/arch/powerpc/include/asm/pgtable-64k.h
@@ -114,7 +114,7 @@ static inline struct subpage_prot_table *pgd_subpage_prot(pgd_t *pgd)
114 * pgprot changes 114 * pgprot changes
115 */ 115 */
116#define _PAGE_CHG_MASK (PTE_RPN_MASK | _PAGE_HPTEFLAGS | _PAGE_DIRTY | \ 116#define _PAGE_CHG_MASK (PTE_RPN_MASK | _PAGE_HPTEFLAGS | _PAGE_DIRTY | \
117 _PAGE_ACCESSED) 117 _PAGE_ACCESSED | _PAGE_SPECIAL)
118 118
119/* Bits to mask out from a PMD to get to the PTE page */ 119/* Bits to mask out from a PMD to get to the PTE page */
120#define PMD_MASKED_BITS 0x1ff 120#define PMD_MASKED_BITS 0x1ff
diff --git a/arch/powerpc/include/asm/pgtable-ppc32.h b/arch/powerpc/include/asm/pgtable-ppc32.h
index f69a4d977729..820b5f0a35ce 100644
--- a/arch/powerpc/include/asm/pgtable-ppc32.h
+++ b/arch/powerpc/include/asm/pgtable-ppc32.h
@@ -429,7 +429,8 @@ extern int icache_44x_need_flush;
429#define PMD_PAGE_SIZE(pmd) bad_call_to_PMD_PAGE_SIZE() 429#define PMD_PAGE_SIZE(pmd) bad_call_to_PMD_PAGE_SIZE()
430#endif 430#endif
431 431
432#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) 432#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | \
433 _PAGE_SPECIAL)
433 434
434 435
435#define PAGE_PROT_BITS (_PAGE_GUARDED | _PAGE_COHERENT | _PAGE_NO_CACHE | \ 436#define PAGE_PROT_BITS (_PAGE_GUARDED | _PAGE_COHERENT | _PAGE_NO_CACHE | \
diff --git a/arch/powerpc/include/asm/ps3.h b/arch/powerpc/include/asm/ps3.h
index eead5c67197a..67f1812698d2 100644
--- a/arch/powerpc/include/asm/ps3.h
+++ b/arch/powerpc/include/asm/ps3.h
@@ -103,10 +103,10 @@ struct ps3_dma_region_ops {
103 int (*map)(struct ps3_dma_region *, 103 int (*map)(struct ps3_dma_region *,
104 unsigned long virt_addr, 104 unsigned long virt_addr,
105 unsigned long len, 105 unsigned long len,
106 unsigned long *bus_addr, 106 dma_addr_t *bus_addr,
107 u64 iopte_pp); 107 u64 iopte_pp);
108 int (*unmap)(struct ps3_dma_region *, 108 int (*unmap)(struct ps3_dma_region *,
109 unsigned long bus_addr, 109 dma_addr_t bus_addr,
110 unsigned long len); 110 unsigned long len);
111}; 111};
112/** 112/**
@@ -124,9 +124,9 @@ int ps3_dma_region_init(struct ps3_system_bus_device *dev,
124int ps3_dma_region_create(struct ps3_dma_region *r); 124int ps3_dma_region_create(struct ps3_dma_region *r);
125int ps3_dma_region_free(struct ps3_dma_region *r); 125int ps3_dma_region_free(struct ps3_dma_region *r);
126int ps3_dma_map(struct ps3_dma_region *r, unsigned long virt_addr, 126int ps3_dma_map(struct ps3_dma_region *r, unsigned long virt_addr,
127 unsigned long len, unsigned long *bus_addr, 127 unsigned long len, dma_addr_t *bus_addr,
128 u64 iopte_pp); 128 u64 iopte_pp);
129int ps3_dma_unmap(struct ps3_dma_region *r, unsigned long bus_addr, 129int ps3_dma_unmap(struct ps3_dma_region *r, dma_addr_t bus_addr,
130 unsigned long len); 130 unsigned long len);
131 131
132/* mmio routines */ 132/* mmio routines */
diff --git a/arch/powerpc/include/asm/ps3fb.h b/arch/powerpc/include/asm/ps3fb.h
index 3f121fe4010d..e7233a849680 100644
--- a/arch/powerpc/include/asm/ps3fb.h
+++ b/arch/powerpc/include/asm/ps3fb.h
@@ -19,6 +19,7 @@
19#ifndef _ASM_POWERPC_PS3FB_H_ 19#ifndef _ASM_POWERPC_PS3FB_H_
20#define _ASM_POWERPC_PS3FB_H_ 20#define _ASM_POWERPC_PS3FB_H_
21 21
22#include <linux/types.h>
22#include <linux/ioctl.h> 23#include <linux/ioctl.h>
23 24
24/* ioctl */ 25/* ioctl */
diff --git a/arch/powerpc/include/asm/qe.h b/arch/powerpc/include/asm/qe.h
index a0a15311d0d8..2701753d9937 100644
--- a/arch/powerpc/include/asm/qe.h
+++ b/arch/powerpc/include/asm/qe.h
@@ -624,7 +624,7 @@ struct ucc_slow_pram {
624#define UCC_GETH_UCCE_RXF1 0x00000002 624#define UCC_GETH_UCCE_RXF1 0x00000002
625#define UCC_GETH_UCCE_RXF0 0x00000001 625#define UCC_GETH_UCCE_RXF0 0x00000001
626 626
627/* UPSMR, when used as a UART */ 627/* UCC Protocol Specific Mode Register (UPSMR), when used for UART */
628#define UCC_UART_UPSMR_FLC 0x8000 628#define UCC_UART_UPSMR_FLC 0x8000
629#define UCC_UART_UPSMR_SL 0x4000 629#define UCC_UART_UPSMR_SL 0x4000
630#define UCC_UART_UPSMR_CL_MASK 0x3000 630#define UCC_UART_UPSMR_CL_MASK 0x3000
@@ -652,6 +652,23 @@ struct ucc_slow_pram {
652#define UCC_UART_UPSMR_TPM_EVEN 0x0002 652#define UCC_UART_UPSMR_TPM_EVEN 0x0002
653#define UCC_UART_UPSMR_TPM_HIGH 0x0003 653#define UCC_UART_UPSMR_TPM_HIGH 0x0003
654 654
655/* UCC Protocol Specific Mode Register (UPSMR), when used for Ethernet */
656#define UCC_GETH_UPSMR_FTFE 0x80000000
657#define UCC_GETH_UPSMR_PTPE 0x40000000
658#define UCC_GETH_UPSMR_ECM 0x04000000
659#define UCC_GETH_UPSMR_HSE 0x02000000
660#define UCC_GETH_UPSMR_PRO 0x00400000
661#define UCC_GETH_UPSMR_CAP 0x00200000
662#define UCC_GETH_UPSMR_RSH 0x00100000
663#define UCC_GETH_UPSMR_RPM 0x00080000
664#define UCC_GETH_UPSMR_R10M 0x00040000
665#define UCC_GETH_UPSMR_RLPB 0x00020000
666#define UCC_GETH_UPSMR_TBIM 0x00010000
667#define UCC_GETH_UPSMR_RES1 0x00002000
668#define UCC_GETH_UPSMR_RMM 0x00001000
669#define UCC_GETH_UPSMR_CAM 0x00000400
670#define UCC_GETH_UPSMR_BRO 0x00000200
671
655/* UCC Transmit On Demand Register (UTODR) */ 672/* UCC Transmit On Demand Register (UTODR) */
656#define UCC_SLOW_TOD 0x8000 673#define UCC_SLOW_TOD 0x8000
657#define UCC_FAST_TOD 0x8000 674#define UCC_FAST_TOD 0x8000
diff --git a/arch/powerpc/include/asm/rtas.h b/arch/powerpc/include/asm/rtas.h
index e0175beb4462..0aa0315fb7e8 100644
--- a/arch/powerpc/include/asm/rtas.h
+++ b/arch/powerpc/include/asm/rtas.h
@@ -18,7 +18,7 @@
18 */ 18 */
19 19
20#define RTAS_UNKNOWN_SERVICE (-1) 20#define RTAS_UNKNOWN_SERVICE (-1)
21#define RTAS_INSTANTIATE_MAX (1UL<<30) /* Don't instantiate rtas at/above this value */ 21#define RTAS_INSTANTIATE_MAX (1ULL<<30) /* Don't instantiate rtas at/above this value */
22 22
23/* Buffer size for ppc_rtas system call. */ 23/* Buffer size for ppc_rtas system call. */
24#define RTAS_RMOBUF_MAX (64 * 1024) 24#define RTAS_RMOBUF_MAX (64 * 1024)
diff --git a/arch/powerpc/include/asm/seccomp.h b/arch/powerpc/include/asm/seccomp.h
index 853765eb1f65..00c1d9133cfe 100644
--- a/arch/powerpc/include/asm/seccomp.h
+++ b/arch/powerpc/include/asm/seccomp.h
@@ -1,10 +1,6 @@
1#ifndef _ASM_POWERPC_SECCOMP_H 1#ifndef _ASM_POWERPC_SECCOMP_H
2#define _ASM_POWERPC_SECCOMP_H 2#define _ASM_POWERPC_SECCOMP_H
3 3
4#ifdef __KERNEL__
5#include <linux/thread_info.h>
6#endif
7
8#include <linux/unistd.h> 4#include <linux/unistd.h>
9 5
10#define __NR_seccomp_read __NR_read 6#define __NR_seccomp_read __NR_read
diff --git a/arch/powerpc/include/asm/spu_info.h b/arch/powerpc/include/asm/spu_info.h
index 3545efbf9891..1286c823f0d8 100644
--- a/arch/powerpc/include/asm/spu_info.h
+++ b/arch/powerpc/include/asm/spu_info.h
@@ -23,9 +23,10 @@
23#ifndef _SPU_INFO_H 23#ifndef _SPU_INFO_H
24#define _SPU_INFO_H 24#define _SPU_INFO_H
25 25
26#include <linux/types.h>
27
26#ifdef __KERNEL__ 28#ifdef __KERNEL__
27#include <asm/spu.h> 29#include <asm/spu.h>
28#include <linux/types.h>
29#else 30#else
30struct mfc_cq_sr { 31struct mfc_cq_sr {
31 __u64 mfc_cq_data0_RW; 32 __u64 mfc_cq_data0_RW;
diff --git a/arch/powerpc/include/asm/swab.h b/arch/powerpc/include/asm/swab.h
index ef824ae4b79c..c581e3ef73ed 100644
--- a/arch/powerpc/include/asm/swab.h
+++ b/arch/powerpc/include/asm/swab.h
@@ -8,7 +8,7 @@
8 * 2 of the License, or (at your option) any later version. 8 * 2 of the License, or (at your option) any later version.
9 */ 9 */
10 10
11#include <asm/types.h> 11#include <linux/types.h>
12#include <linux/compiler.h> 12#include <linux/compiler.h>
13 13
14#ifdef __GNUC__ 14#ifdef __GNUC__
diff --git a/arch/powerpc/include/asm/systbl.h b/arch/powerpc/include/asm/systbl.h
index 803def236654..72353f6070a4 100644
--- a/arch/powerpc/include/asm/systbl.h
+++ b/arch/powerpc/include/asm/systbl.h
@@ -92,7 +92,7 @@ COMPAT_SYS_SPU(readlink)
92SYSCALL(uselib) 92SYSCALL(uselib)
93SYSCALL(swapon) 93SYSCALL(swapon)
94SYSCALL(reboot) 94SYSCALL(reboot)
95SYSX(sys_ni_syscall,compat_sys_old_readdir,old_readdir) 95SYSX(sys_ni_syscall,compat_sys_old_readdir,sys_old_readdir)
96SYSCALL_SPU(mmap) 96SYSCALL_SPU(mmap)
97SYSCALL_SPU(munmap) 97SYSCALL_SPU(munmap)
98SYSCALL_SPU(truncate) 98SYSCALL_SPU(truncate)
diff --git a/arch/powerpc/include/asm/types.h b/arch/powerpc/include/asm/types.h
index c004c13f291e..7ce27a52bb34 100644
--- a/arch/powerpc/include/asm/types.h
+++ b/arch/powerpc/include/asm/types.h
@@ -1,7 +1,12 @@
1#ifndef _ASM_POWERPC_TYPES_H 1#ifndef _ASM_POWERPC_TYPES_H
2#define _ASM_POWERPC_TYPES_H 2#define _ASM_POWERPC_TYPES_H
3 3
4#ifdef __powerpc64__ 4/*
5 * This is here because we used to use l64 for 64bit powerpc
6 * and we don't want to impact user mode with our change to ll64
7 * in the kernel.
8 */
9#if defined(__powerpc64__) && !defined(__KERNEL__)
5# include <asm-generic/int-l64.h> 10# include <asm-generic/int-l64.h>
6#else 11#else
7# include <asm-generic/int-ll64.h> 12# include <asm-generic/int-ll64.h>
diff --git a/arch/powerpc/kernel/align.c b/arch/powerpc/kernel/align.c
index 5af4e9b2dbe2..73cb6a3229ae 100644
--- a/arch/powerpc/kernel/align.c
+++ b/arch/powerpc/kernel/align.c
@@ -367,27 +367,24 @@ static int emulate_multiple(struct pt_regs *regs, unsigned char __user *addr,
367static int emulate_fp_pair(unsigned char __user *addr, unsigned int reg, 367static int emulate_fp_pair(unsigned char __user *addr, unsigned int reg,
368 unsigned int flags) 368 unsigned int flags)
369{ 369{
370 char *ptr = (char *) &current->thread.TS_FPR(reg); 370 char *ptr0 = (char *) &current->thread.TS_FPR(reg);
371 int i, ret; 371 char *ptr1 = (char *) &current->thread.TS_FPR(reg+1);
372 int i, ret, sw = 0;
372 373
373 if (!(flags & F)) 374 if (!(flags & F))
374 return 0; 375 return 0;
375 if (reg & 1) 376 if (reg & 1)
376 return 0; /* invalid form: FRS/FRT must be even */ 377 return 0; /* invalid form: FRS/FRT must be even */
377 if (!(flags & SW)) { 378 if (flags & SW)
378 /* not byte-swapped - easy */ 379 sw = 7;
379 if (!(flags & ST)) 380 ret = 0;
380 ret = __copy_from_user(ptr, addr, 16); 381 for (i = 0; i < 8; ++i) {
381 else 382 if (!(flags & ST)) {
382 ret = __copy_to_user(addr, ptr, 16); 383 ret |= __get_user(ptr0[i^sw], addr + i);
383 } else { 384 ret |= __get_user(ptr1[i^sw], addr + i + 8);
384 /* each FPR value is byte-swapped separately */ 385 } else {
385 ret = 0; 386 ret |= __put_user(ptr0[i^sw], addr + i);
386 for (i = 0; i < 16; ++i) { 387 ret |= __put_user(ptr1[i^sw], addr + i + 8);
387 if (!(flags & ST))
388 ret |= __get_user(ptr[i^7], addr + i);
389 else
390 ret |= __put_user(ptr[i^7], addr + i);
391 } 388 }
392 } 389 }
393 if (ret) 390 if (ret)
@@ -646,11 +643,16 @@ static int emulate_vsx(unsigned char __user *addr, unsigned int reg,
646 unsigned int areg, struct pt_regs *regs, 643 unsigned int areg, struct pt_regs *regs,
647 unsigned int flags, unsigned int length) 644 unsigned int flags, unsigned int length)
648{ 645{
649 char *ptr = (char *) &current->thread.TS_FPR(reg); 646 char *ptr;
650 int ret = 0; 647 int ret = 0;
651 648
652 flush_vsx_to_thread(current); 649 flush_vsx_to_thread(current);
653 650
651 if (reg < 32)
652 ptr = (char *) &current->thread.TS_FPR(reg);
653 else
654 ptr = (char *) &current->thread.vr[reg - 32];
655
654 if (flags & ST) 656 if (flags & ST)
655 ret = __copy_to_user(addr, ptr, length); 657 ret = __copy_to_user(addr, ptr, length);
656 else { 658 else {
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 9937fe44555f..19ee491e9e23 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -56,6 +56,10 @@
56#include "head_booke.h" 56#include "head_booke.h"
57#endif 57#endif
58 58
59#if defined(CONFIG_FSL_BOOKE)
60#include "../mm/mmu_decl.h"
61#endif
62
59int main(void) 63int main(void)
60{ 64{
61 DEFINE(THREAD, offsetof(struct task_struct, thread)); 65 DEFINE(THREAD, offsetof(struct task_struct, thread));
@@ -382,6 +386,9 @@ int main(void)
382 DEFINE(PGD_T_LOG2, PGD_T_LOG2); 386 DEFINE(PGD_T_LOG2, PGD_T_LOG2);
383 DEFINE(PTE_T_LOG2, PTE_T_LOG2); 387 DEFINE(PTE_T_LOG2, PTE_T_LOG2);
384#endif 388#endif
389#ifdef CONFIG_FSL_BOOKE
390 DEFINE(TLBCAM_SIZE, sizeof(struct tlbcam));
391#endif
385 392
386#ifdef CONFIG_KVM_EXIT_TIMING 393#ifdef CONFIG_KVM_EXIT_TIMING
387 DEFINE(VCPU_TIMING_EXIT_TBU, offsetof(struct kvm_vcpu, 394 DEFINE(VCPU_TIMING_EXIT_TBU, offsetof(struct kvm_vcpu,
diff --git a/arch/powerpc/kernel/cacheinfo.c b/arch/powerpc/kernel/cacheinfo.c
index b33f0417a4bf..bb37b1d19a58 100644
--- a/arch/powerpc/kernel/cacheinfo.c
+++ b/arch/powerpc/kernel/cacheinfo.c
@@ -113,7 +113,7 @@ struct cache {
113 struct cache *next_local; /* next cache of >= level */ 113 struct cache *next_local; /* next cache of >= level */
114}; 114};
115 115
116static DEFINE_PER_CPU(struct cache_dir *, cache_dir); 116static DEFINE_PER_CPU(struct cache_dir *, cache_dir_pcpu);
117 117
118/* traversal/modification of this list occurs only at cpu hotplug time; 118/* traversal/modification of this list occurs only at cpu hotplug time;
119 * access is serialized by cpu hotplug locking 119 * access is serialized by cpu hotplug locking
@@ -468,9 +468,9 @@ static struct cache_dir *__cpuinit cacheinfo_create_cache_dir(unsigned int cpu_i
468 468
469 cache_dir->kobj = kobj; 469 cache_dir->kobj = kobj;
470 470
471 WARN_ON_ONCE(per_cpu(cache_dir, cpu_id) != NULL); 471 WARN_ON_ONCE(per_cpu(cache_dir_pcpu, cpu_id) != NULL);
472 472
473 per_cpu(cache_dir, cpu_id) = cache_dir; 473 per_cpu(cache_dir_pcpu, cpu_id) = cache_dir;
474 474
475 return cache_dir; 475 return cache_dir;
476err: 476err:
@@ -820,13 +820,13 @@ void cacheinfo_cpu_offline(unsigned int cpu_id)
820 820
821 /* Prevent userspace from seeing inconsistent state - remove 821 /* Prevent userspace from seeing inconsistent state - remove
822 * the sysfs hierarchy first */ 822 * the sysfs hierarchy first */
823 cache_dir = per_cpu(cache_dir, cpu_id); 823 cache_dir = per_cpu(cache_dir_pcpu, cpu_id);
824 824
825 /* careful, sysfs population may have failed */ 825 /* careful, sysfs population may have failed */
826 if (cache_dir) 826 if (cache_dir)
827 remove_cache_dir(cache_dir); 827 remove_cache_dir(cache_dir);
828 828
829 per_cpu(cache_dir, cpu_id) = NULL; 829 per_cpu(cache_dir_pcpu, cpu_id) = NULL;
830 830
831 /* clear the CPU's bit in its cache chain, possibly freeing 831 /* clear the CPU's bit in its cache chain, possibly freeing
832 * cache objects */ 832 * cache objects */
diff --git a/arch/powerpc/kernel/dma-iommu.c b/arch/powerpc/kernel/dma-iommu.c
index 14183af1b3fb..2983adac8cc3 100644
--- a/arch/powerpc/kernel/dma-iommu.c
+++ b/arch/powerpc/kernel/dma-iommu.c
@@ -79,10 +79,10 @@ static int dma_iommu_dma_supported(struct device *dev, u64 mask)
79 "Warning: IOMMU offset too big for device mask\n"); 79 "Warning: IOMMU offset too big for device mask\n");
80 if (tbl) 80 if (tbl)
81 printk(KERN_INFO 81 printk(KERN_INFO
82 "mask: 0x%08lx, table offset: 0x%08lx\n", 82 "mask: 0x%08llx, table offset: 0x%08lx\n",
83 mask, tbl->it_offset); 83 mask, tbl->it_offset);
84 else 84 else
85 printk(KERN_INFO "mask: 0x%08lx, table unavailable\n", 85 printk(KERN_INFO "mask: 0x%08llx, table unavailable\n",
86 mask); 86 mask);
87 return 0; 87 return 0;
88 } else 88 } else
diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c
index 5355244c99ff..60c60ccf5e3c 100644
--- a/arch/powerpc/kernel/ftrace.c
+++ b/arch/powerpc/kernel/ftrace.c
@@ -195,8 +195,9 @@ __ftrace_make_nop(struct module *mod,
195 return -EINVAL; 195 return -EINVAL;
196 } 196 }
197 197
198 offset = (unsigned)((unsigned short)jmp[0]) << 16 | 198 /* The bottom half is signed extended */
199 (unsigned)((unsigned short)jmp[1]); 199 offset = ((unsigned)((unsigned short)jmp[0]) << 16) +
200 (int)((short)jmp[1]);
200 201
201 DEBUGP(" %x ", offset); 202 DEBUGP(" %x ", offset);
202 203
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index b4bcf5a930fa..ebaedafc8e67 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -1518,6 +1518,15 @@ _GLOBAL(pmac_secondary_start)
1518 /* turn on 64-bit mode */ 1518 /* turn on 64-bit mode */
1519 bl .enable_64b_mode 1519 bl .enable_64b_mode
1520 1520
1521 li r0,0
1522 mfspr r3,SPRN_HID4
1523 rldimi r3,r0,40,23 /* clear bit 23 (rm_ci) */
1524 sync
1525 mtspr SPRN_HID4,r3
1526 isync
1527 sync
1528 slbia
1529
1521 /* get TOC pointer (real address) */ 1530 /* get TOC pointer (real address) */
1522 bl .relative_toc 1531 bl .relative_toc
1523 1532
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 11b549acc034..36ffb3504a4f 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -389,10 +389,6 @@ skpinv: addi r6,r6,1 /* Increment */
389#endif 389#endif
390#endif 390#endif
391 391
392 mfspr r3,SPRN_TLB1CFG
393 andi. r3,r3,0xfff
394 lis r4,num_tlbcam_entries@ha
395 stw r3,num_tlbcam_entries@l(r4)
396/* 392/*
397 * Decide what sort of machine this is and initialize the MMU. 393 * Decide what sort of machine this is and initialize the MMU.
398 */ 394 */
@@ -711,7 +707,7 @@ interrupt_base:
711 EXCEPTION(0x2060, PerformanceMonitor, performance_monitor_exception, EXC_XFER_STD) 707 EXCEPTION(0x2060, PerformanceMonitor, performance_monitor_exception, EXC_XFER_STD)
712 708
713#ifdef CONFIG_PPC_E500MC 709#ifdef CONFIG_PPC_E500MC
714 EXCEPTION(0x2070, Doorbell, unknown_exception, EXC_XFER_EE) 710 EXCEPTION(0x2070, Doorbell, unknown_exception, EXC_XFER_STD)
715#endif 711#endif
716 712
717 /* Debug Interrupt */ 713 /* Debug Interrupt */
@@ -909,7 +905,7 @@ KernelSPE:
909_GLOBAL(loadcam_entry) 905_GLOBAL(loadcam_entry)
910 lis r4,TLBCAM@ha 906 lis r4,TLBCAM@ha
911 addi r4,r4,TLBCAM@l 907 addi r4,r4,TLBCAM@l
912 mulli r5,r3,20 908 mulli r5,r3,TLBCAM_SIZE
913 add r3,r5,r4 909 add r3,r5,r4
914 lwz r4,0(r3) 910 lwz r4,0(r3)
915 mtspr SPRN_MAS0,r4 911 mtspr SPRN_MAS0,r4
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
index 1bfa706b96e7..fd51578e29dd 100644
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
@@ -239,12 +239,12 @@ static void __iommu_free(struct iommu_table *tbl, dma_addr_t dma_addr,
239 if (printk_ratelimit()) { 239 if (printk_ratelimit()) {
240 printk(KERN_INFO "iommu_free: invalid entry\n"); 240 printk(KERN_INFO "iommu_free: invalid entry\n");
241 printk(KERN_INFO "\tentry = 0x%lx\n", entry); 241 printk(KERN_INFO "\tentry = 0x%lx\n", entry);
242 printk(KERN_INFO "\tdma_addr = 0x%lx\n", (u64)dma_addr); 242 printk(KERN_INFO "\tdma_addr = 0x%llx\n", (u64)dma_addr);
243 printk(KERN_INFO "\tTable = 0x%lx\n", (u64)tbl); 243 printk(KERN_INFO "\tTable = 0x%llx\n", (u64)tbl);
244 printk(KERN_INFO "\tbus# = 0x%lx\n", (u64)tbl->it_busno); 244 printk(KERN_INFO "\tbus# = 0x%llx\n", (u64)tbl->it_busno);
245 printk(KERN_INFO "\tsize = 0x%lx\n", (u64)tbl->it_size); 245 printk(KERN_INFO "\tsize = 0x%llx\n", (u64)tbl->it_size);
246 printk(KERN_INFO "\tstartOff = 0x%lx\n", (u64)tbl->it_offset); 246 printk(KERN_INFO "\tstartOff = 0x%llx\n", (u64)tbl->it_offset);
247 printk(KERN_INFO "\tindex = 0x%lx\n", (u64)tbl->it_index); 247 printk(KERN_INFO "\tindex = 0x%llx\n", (u64)tbl->it_index);
248 WARN_ON(1); 248 WARN_ON(1);
249 } 249 }
250 return; 250 return;
diff --git a/arch/powerpc/kernel/lparcfg.c b/arch/powerpc/kernel/lparcfg.c
index d051e8cbcd03..182e0f642f36 100644
--- a/arch/powerpc/kernel/lparcfg.c
+++ b/arch/powerpc/kernel/lparcfg.c
@@ -240,7 +240,7 @@ static void parse_ppp_data(struct seq_file *m)
240 if (rc) 240 if (rc)
241 return; 241 return;
242 242
243 seq_printf(m, "partition_entitled_capacity=%ld\n", 243 seq_printf(m, "partition_entitled_capacity=%lld\n",
244 ppp_data.entitlement); 244 ppp_data.entitlement);
245 seq_printf(m, "group=%d\n", ppp_data.group_num); 245 seq_printf(m, "group=%d\n", ppp_data.group_num);
246 seq_printf(m, "system_active_processors=%d\n", 246 seq_printf(m, "system_active_processors=%d\n",
@@ -265,7 +265,7 @@ static void parse_ppp_data(struct seq_file *m)
265 ppp_data.unallocated_weight); 265 ppp_data.unallocated_weight);
266 seq_printf(m, "capacity_weight=%d\n", ppp_data.weight); 266 seq_printf(m, "capacity_weight=%d\n", ppp_data.weight);
267 seq_printf(m, "capped=%d\n", ppp_data.capped); 267 seq_printf(m, "capped=%d\n", ppp_data.capped);
268 seq_printf(m, "unallocated_capacity=%ld\n", 268 seq_printf(m, "unallocated_capacity=%lld\n",
269 ppp_data.unallocated_entitlement); 269 ppp_data.unallocated_entitlement);
270} 270}
271 271
@@ -509,10 +509,10 @@ static ssize_t update_ppp(u64 *entitlement, u8 *weight)
509 } else 509 } else
510 return -EINVAL; 510 return -EINVAL;
511 511
512 pr_debug("%s: current_entitled = %lu, current_weight = %u\n", 512 pr_debug("%s: current_entitled = %llu, current_weight = %u\n",
513 __func__, ppp_data.entitlement, ppp_data.weight); 513 __func__, ppp_data.entitlement, ppp_data.weight);
514 514
515 pr_debug("%s: new_entitled = %lu, new_weight = %u\n", 515 pr_debug("%s: new_entitled = %llu, new_weight = %u\n",
516 __func__, new_entitled, new_weight); 516 __func__, new_entitled, new_weight);
517 517
518 retval = plpar_hcall_norets(H_SET_PPP, new_entitled, new_weight); 518 retval = plpar_hcall_norets(H_SET_PPP, new_entitled, new_weight);
@@ -558,7 +558,7 @@ static ssize_t update_mpp(u64 *entitlement, u8 *weight)
558 pr_debug("%s: current_entitled = %lu, current_weight = %u\n", 558 pr_debug("%s: current_entitled = %lu, current_weight = %u\n",
559 __func__, mpp_data.entitled_mem, mpp_data.mem_weight); 559 __func__, mpp_data.entitled_mem, mpp_data.mem_weight);
560 560
561 pr_debug("%s: new_entitled = %lu, new_weight = %u\n", 561 pr_debug("%s: new_entitled = %llu, new_weight = %u\n",
562 __func__, new_entitled, new_weight); 562 __func__, new_entitled, new_weight);
563 563
564 rc = plpar_hcall_norets(H_SET_MPP, new_entitled, new_weight); 564 rc = plpar_hcall_norets(H_SET_MPP, new_entitled, new_weight);
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c
index b3abebb7ee64..d59e2b1bdcba 100644
--- a/arch/powerpc/kernel/machine_kexec.c
+++ b/arch/powerpc/kernel/machine_kexec.c
@@ -93,10 +93,35 @@ void __init reserve_crashkernel(void)
93 KDUMP_KERNELBASE); 93 KDUMP_KERNELBASE);
94 94
95 crashk_res.start = KDUMP_KERNELBASE; 95 crashk_res.start = KDUMP_KERNELBASE;
96#else
97 if (!crashk_res.start) {
98 /*
99 * unspecified address, choose a region of specified size
100 * can overlap with initrd (ignoring corruption when retained)
101 * ppc64 requires kernel and some stacks to be in first segemnt
102 */
103 crashk_res.start = KDUMP_KERNELBASE;
104 }
105
106 crash_base = PAGE_ALIGN(crashk_res.start);
107 if (crash_base != crashk_res.start) {
108 printk("Crash kernel base must be aligned to 0x%lx\n",
109 PAGE_SIZE);
110 crashk_res.start = crash_base;
111 }
112
96#endif 113#endif
97 crash_size = PAGE_ALIGN(crash_size); 114 crash_size = PAGE_ALIGN(crash_size);
98 crashk_res.end = crashk_res.start + crash_size - 1; 115 crashk_res.end = crashk_res.start + crash_size - 1;
99 116
117 /* The crash region must not overlap the current kernel */
118 if (overlaps_crashkernel(__pa(_stext), _end - _stext)) {
119 printk(KERN_WARNING
120 "Crash kernel can not overlap current kernel\n");
121 crashk_res.start = crashk_res.end = 0;
122 return;
123 }
124
100 /* Crash kernel trumps memory limit */ 125 /* Crash kernel trumps memory limit */
101 if (memory_limit && memory_limit <= crashk_res.end) { 126 if (memory_limit && memory_limit <= crashk_res.end) {
102 memory_limit = crashk_res.end + 1; 127 memory_limit = crashk_res.end + 1;
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index da5a3855a0c4..0f4181272311 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -16,8 +16,6 @@
16 * 2 of the License, or (at your option) any later version. 16 * 2 of the License, or (at your option) any later version.
17 */ 17 */
18 18
19#define DEBUG
20
21#include <linux/kernel.h> 19#include <linux/kernel.h>
22#include <linux/pci.h> 20#include <linux/pci.h>
23#include <linux/string.h> 21#include <linux/string.h>
@@ -258,7 +256,8 @@ int pci_read_irq_line(struct pci_dev *pci_dev)
258 } else { 256 } else {
259 pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n", 257 pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n",
260 oirq.size, oirq.specifier[0], oirq.specifier[1], 258 oirq.size, oirq.specifier[0], oirq.specifier[1],
261 oirq.controller->full_name); 259 oirq.controller ? oirq.controller->full_name :
260 "<default>");
262 261
263 virq = irq_create_of_mapping(oirq.controller, oirq.specifier, 262 virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
264 oirq.size); 263 oirq.size);
@@ -562,8 +561,21 @@ int pci_mmap_legacy_page_range(struct pci_bus *bus,
562 (unsigned long long)(offset + size - 1)); 561 (unsigned long long)(offset + size - 1));
563 562
564 if (mmap_state == pci_mmap_mem) { 563 if (mmap_state == pci_mmap_mem) {
565 if ((offset + size) > hose->isa_mem_size) 564 /* Hack alert !
566 return -ENXIO; 565 *
566 * Because X is lame and can fail starting if it gets an error trying
567 * to mmap legacy_mem (instead of just moving on without legacy memory
568 * access) we fake it here by giving it anonymous memory, effectively
569 * behaving just like /dev/zero
570 */
571 if ((offset + size) > hose->isa_mem_size) {
572 printk(KERN_DEBUG
573 "Process %s (pid:%d) mapped non-existing PCI legacy memory for 0%04x:%02x\n",
574 current->comm, current->pid, pci_domain_nr(bus), bus->number);
575 if (vma->vm_flags & VM_SHARED)
576 return shmem_zero_setup(vma);
577 return 0;
578 }
567 offset += hose->isa_mem_phys; 579 offset += hose->isa_mem_phys;
568 } else { 580 } else {
569 unsigned long io_offset = (unsigned long)hose->io_base_virt - _IO_BASE; 581 unsigned long io_offset = (unsigned long)hose->io_base_virt - _IO_BASE;
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 586962f65c2a..ea8eda8c87cf 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -470,7 +470,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
470 if (bus->self) { 470 if (bus->self) {
471 pr_debug("IO mapping for PCI-PCI bridge %s\n", 471 pr_debug("IO mapping for PCI-PCI bridge %s\n",
472 pci_name(bus->self)); 472 pci_name(bus->self));
473 pr_debug(" virt=0x%016lx...0x%016lx\n", 473 pr_debug(" virt=0x%016llx...0x%016llx\n",
474 bus->resource[0]->start + _IO_BASE, 474 bus->resource[0]->start + _IO_BASE,
475 bus->resource[0]->end + _IO_BASE); 475 bus->resource[0]->end + _IO_BASE);
476 return 0; 476 return 0;
@@ -502,7 +502,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
502 hose->io_base_phys - phys_page); 502 hose->io_base_phys - phys_page);
503 503
504 pr_debug("IO mapping for PHB %s\n", hose->dn->full_name); 504 pr_debug("IO mapping for PHB %s\n", hose->dn->full_name);
505 pr_debug(" phys=0x%016lx, virt=0x%p (alloc=0x%p)\n", 505 pr_debug(" phys=0x%016llx, virt=0x%p (alloc=0x%p)\n",
506 hose->io_base_phys, hose->io_base_virt, hose->io_base_alloc); 506 hose->io_base_phys, hose->io_base_virt, hose->io_base_alloc);
507 pr_debug(" size=0x%016lx (alloc=0x%016lx)\n", 507 pr_debug(" size=0x%016lx (alloc=0x%016lx)\n",
508 hose->pci_io_size, size_page); 508 hose->pci_io_size, size_page);
@@ -517,7 +517,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
517 hose->io_resource.start += io_virt_offset; 517 hose->io_resource.start += io_virt_offset;
518 hose->io_resource.end += io_virt_offset; 518 hose->io_resource.end += io_virt_offset;
519 519
520 pr_debug(" hose->io_resource=0x%016lx...0x%016lx\n", 520 pr_debug(" hose->io_resource=0x%016llx...0x%016llx\n",
521 hose->io_resource.start, hose->io_resource.end); 521 hose->io_resource.start, hose->io_resource.end);
522 522
523 return 0; 523 return 0;
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index c09cffafb6ee..f00f83109ab3 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -590,6 +590,11 @@ static void __init check_cpu_slb_size(unsigned long node)
590{ 590{
591 u32 *slb_size_ptr; 591 u32 *slb_size_ptr;
592 592
593 slb_size_ptr = of_get_flat_dt_prop(node, "slb-size", NULL);
594 if (slb_size_ptr != NULL) {
595 mmu_slb_size = *slb_size_ptr;
596 return;
597 }
593 slb_size_ptr = of_get_flat_dt_prop(node, "ibm,slb-size", NULL); 598 slb_size_ptr = of_get_flat_dt_prop(node, "ibm,slb-size", NULL);
594 if (slb_size_ptr != NULL) { 599 if (slb_size_ptr != NULL) {
595 mmu_slb_size = *slb_size_ptr; 600 mmu_slb_size = *slb_size_ptr;
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index d8bd2161e738..2d34196bba8c 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -434,8 +434,8 @@ void __init setup_system(void)
434 printk("Starting Linux PPC64 %s\n", init_utsname()->version); 434 printk("Starting Linux PPC64 %s\n", init_utsname()->version);
435 435
436 printk("-----------------------------------------------------\n"); 436 printk("-----------------------------------------------------\n");
437 printk("ppc64_pft_size = 0x%lx\n", ppc64_pft_size); 437 printk("ppc64_pft_size = 0x%llx\n", ppc64_pft_size);
438 printk("physicalMemorySize = 0x%lx\n", lmb_phys_mem_size()); 438 printk("physicalMemorySize = 0x%llx\n", lmb_phys_mem_size());
439 if (ppc64_caches.dline_size != 0x80) 439 if (ppc64_caches.dline_size != 0x80)
440 printk("ppc64_caches.dcache_line_size = 0x%x\n", 440 printk("ppc64_caches.dcache_line_size = 0x%x\n",
441 ppc64_caches.dline_size); 441 ppc64_caches.dline_size);
@@ -493,7 +493,7 @@ static void __init emergency_stack_init(void)
493 * bringup, we need to get at them in real mode. This means they 493 * bringup, we need to get at them in real mode. This means they
494 * must also be within the RMO region. 494 * must also be within the RMO region.
495 */ 495 */
496 limit = min(0x10000000UL, lmb.rmo_size); 496 limit = min(0x10000000ULL, lmb.rmo_size);
497 497
498 for_each_possible_cpu(i) { 498 for_each_possible_cpu(i) {
499 unsigned long sp; 499 unsigned long sp;
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 94aa7b011b27..d3694498f3af 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -492,14 +492,14 @@ static void *vio_dma_iommu_alloc_coherent(struct device *dev, size_t size,
492 struct vio_dev *viodev = to_vio_dev(dev); 492 struct vio_dev *viodev = to_vio_dev(dev);
493 void *ret; 493 void *ret;
494 494
495 if (vio_cmo_alloc(viodev, roundup(size, IOMMU_PAGE_SIZE))) { 495 if (vio_cmo_alloc(viodev, roundup(size, PAGE_SIZE))) {
496 atomic_inc(&viodev->cmo.allocs_failed); 496 atomic_inc(&viodev->cmo.allocs_failed);
497 return NULL; 497 return NULL;
498 } 498 }
499 499
500 ret = dma_iommu_ops.alloc_coherent(dev, size, dma_handle, flag); 500 ret = dma_iommu_ops.alloc_coherent(dev, size, dma_handle, flag);
501 if (unlikely(ret == NULL)) { 501 if (unlikely(ret == NULL)) {
502 vio_cmo_dealloc(viodev, roundup(size, IOMMU_PAGE_SIZE)); 502 vio_cmo_dealloc(viodev, roundup(size, PAGE_SIZE));
503 atomic_inc(&viodev->cmo.allocs_failed); 503 atomic_inc(&viodev->cmo.allocs_failed);
504 } 504 }
505 505
@@ -513,7 +513,7 @@ static void vio_dma_iommu_free_coherent(struct device *dev, size_t size,
513 513
514 dma_iommu_ops.free_coherent(dev, size, vaddr, dma_handle); 514 dma_iommu_ops.free_coherent(dev, size, vaddr, dma_handle);
515 515
516 vio_cmo_dealloc(viodev, roundup(size, IOMMU_PAGE_SIZE)); 516 vio_cmo_dealloc(viodev, roundup(size, PAGE_SIZE));
517} 517}
518 518
519static dma_addr_t vio_dma_iommu_map_page(struct device *dev, struct page *page, 519static dma_addr_t vio_dma_iommu_map_page(struct device *dev, struct page *page,
@@ -572,6 +572,7 @@ static int vio_dma_iommu_map_sg(struct device *dev, struct scatterlist *sglist,
572 if (unlikely(!ret)) { 572 if (unlikely(!ret)) {
573 vio_cmo_dealloc(viodev, alloc_size); 573 vio_cmo_dealloc(viodev, alloc_size);
574 atomic_inc(&viodev->cmo.allocs_failed); 574 atomic_inc(&viodev->cmo.allocs_failed);
575 return ret;
575 } 576 }
576 577
577 for (sgl = sglist, count = 0; count < ret; count++, sgl++) 578 for (sgl = sglist, count = 0; count < ret; count++, sgl++)
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 47bf15cd2c9e..295ccc5e86b1 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -87,7 +87,9 @@ SECTIONS
87 /* The dummy segment contents for the bug workaround mentioned above 87 /* The dummy segment contents for the bug workaround mentioned above
88 near PHDRS. */ 88 near PHDRS. */
89 .dummy : AT(ADDR(.dummy) - LOAD_OFFSET) { 89 .dummy : AT(ADDR(.dummy) - LOAD_OFFSET) {
90 LONG(0xf177) 90 LONG(0)
91 LONG(0)
92 LONG(0)
91 } :kernel :dummy 93 } :kernel :dummy
92 94
93/* 95/*
@@ -182,6 +184,7 @@ SECTIONS
182 . = ALIGN(PAGE_SIZE); 184 . = ALIGN(PAGE_SIZE);
183 .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { 185 .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) {
184 __per_cpu_start = .; 186 __per_cpu_start = .;
187 *(.data.percpu.page_aligned)
185 *(.data.percpu) 188 *(.data.percpu)
186 *(.data.percpu.shared_aligned) 189 *(.data.percpu.shared_aligned)
187 __per_cpu_end = .; 190 __per_cpu_end = .;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 2822c8ccfaaf..5f81256287f5 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -125,6 +125,10 @@ static void kvmppc_free_vcpus(struct kvm *kvm)
125 } 125 }
126} 126}
127 127
128void kvm_arch_sync_events(struct kvm *kvm)
129{
130}
131
128void kvm_arch_destroy_vm(struct kvm *kvm) 132void kvm_arch_destroy_vm(struct kvm *kvm)
129{ 133{
130 kvmppc_free_vcpus(kvm); 134 kvmppc_free_vcpus(kvm);
diff --git a/arch/powerpc/lib/copyuser_64.S b/arch/powerpc/lib/copyuser_64.S
index 70693a5c12a1..693b14a778fa 100644
--- a/arch/powerpc/lib/copyuser_64.S
+++ b/arch/powerpc/lib/copyuser_64.S
@@ -62,18 +62,19 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
6272: std r8,8(r3) 6272: std r8,8(r3)
63 beq+ 3f 63 beq+ 3f
64 addi r3,r3,16 64 addi r3,r3,16
6523: ld r9,8(r4)
66.Ldo_tail: 65.Ldo_tail:
67 bf cr7*4+1,1f 66 bf cr7*4+1,1f
68 rotldi r9,r9,32 6723: lwz r9,8(r4)
68 addi r4,r4,4
6973: stw r9,0(r3) 6973: stw r9,0(r3)
70 addi r3,r3,4 70 addi r3,r3,4
711: bf cr7*4+2,2f 711: bf cr7*4+2,2f
72 rotldi r9,r9,16 7244: lhz r9,8(r4)
73 addi r4,r4,2
7374: sth r9,0(r3) 7474: sth r9,0(r3)
74 addi r3,r3,2 75 addi r3,r3,2
752: bf cr7*4+3,3f 762: bf cr7*4+3,3f
76 rotldi r9,r9,8 7745: lbz r9,8(r4)
7775: stb r9,0(r3) 7875: stb r9,0(r3)
783: li r3,0 793: li r3,0
79 blr 80 blr
@@ -141,11 +142,24 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
1416: cmpwi cr1,r5,8 1426: cmpwi cr1,r5,8
142 addi r3,r3,32 143 addi r3,r3,32
143 sld r9,r9,r10 144 sld r9,r9,r10
144 ble cr1,.Ldo_tail 145 ble cr1,7f
14534: ld r0,8(r4) 14634: ld r0,8(r4)
146 srd r7,r0,r11 147 srd r7,r0,r11
147 or r9,r7,r9 148 or r9,r7,r9
148 b .Ldo_tail 1497:
150 bf cr7*4+1,1f
151 rotldi r9,r9,32
15294: stw r9,0(r3)
153 addi r3,r3,4
1541: bf cr7*4+2,2f
155 rotldi r9,r9,16
15695: sth r9,0(r3)
157 addi r3,r3,2
1582: bf cr7*4+3,3f
159 rotldi r9,r9,8
16096: stb r9,0(r3)
1613: li r3,0
162 blr
149 163
150.Ldst_unaligned: 164.Ldst_unaligned:
151 PPC_MTOCRF 0x01,r6 /* put #bytes to 8B bdry into cr7 */ 165 PPC_MTOCRF 0x01,r6 /* put #bytes to 8B bdry into cr7 */
@@ -218,7 +232,6 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
218121: 232121:
219132: 233132:
220 addi r3,r3,8 234 addi r3,r3,8
221123:
222134: 235134:
223135: 236135:
224138: 237138:
@@ -226,6 +239,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
226140: 239140:
227141: 240141:
228142: 241142:
242123:
243144:
244145:
229 245
230/* 246/*
231 * here we have had a fault on a load and r3 points to the first 247 * here we have had a fault on a load and r3 points to the first
@@ -309,6 +325,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
309187: 325187:
310188: 326188:
311189: 327189:
328194:
329195:
330196:
3121: 3311:
313 ld r6,-24(r1) 332 ld r6,-24(r1)
314 ld r5,-8(r1) 333 ld r5,-8(r1)
@@ -329,7 +348,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
329 .llong 72b,172b 348 .llong 72b,172b
330 .llong 23b,123b 349 .llong 23b,123b
331 .llong 73b,173b 350 .llong 73b,173b
351 .llong 44b,144b
332 .llong 74b,174b 352 .llong 74b,174b
353 .llong 45b,145b
333 .llong 75b,175b 354 .llong 75b,175b
334 .llong 24b,124b 355 .llong 24b,124b
335 .llong 25b,125b 356 .llong 25b,125b
@@ -347,6 +368,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
347 .llong 79b,179b 368 .llong 79b,179b
348 .llong 80b,180b 369 .llong 80b,180b
349 .llong 34b,134b 370 .llong 34b,134b
371 .llong 94b,194b
372 .llong 95b,195b
373 .llong 96b,196b
350 .llong 35b,135b 374 .llong 35b,135b
351 .llong 81b,181b 375 .llong 81b,181b
352 .llong 36b,136b 376 .llong 36b,136b
diff --git a/arch/powerpc/lib/memcpy_64.S b/arch/powerpc/lib/memcpy_64.S
index fe2d34e5332d..e178922b2c21 100644
--- a/arch/powerpc/lib/memcpy_64.S
+++ b/arch/powerpc/lib/memcpy_64.S
@@ -53,18 +53,19 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
533: std r8,8(r3) 533: std r8,8(r3)
54 beq 3f 54 beq 3f
55 addi r3,r3,16 55 addi r3,r3,16
56 ld r9,8(r4)
57.Ldo_tail: 56.Ldo_tail:
58 bf cr7*4+1,1f 57 bf cr7*4+1,1f
59 rotldi r9,r9,32 58 lwz r9,8(r4)
59 addi r4,r4,4
60 stw r9,0(r3) 60 stw r9,0(r3)
61 addi r3,r3,4 61 addi r3,r3,4
621: bf cr7*4+2,2f 621: bf cr7*4+2,2f
63 rotldi r9,r9,16 63 lhz r9,8(r4)
64 addi r4,r4,2
64 sth r9,0(r3) 65 sth r9,0(r3)
65 addi r3,r3,2 66 addi r3,r3,2
662: bf cr7*4+3,3f 672: bf cr7*4+3,3f
67 rotldi r9,r9,8 68 lbz r9,8(r4)
68 stb r9,0(r3) 69 stb r9,0(r3)
693: ld r3,48(r1) /* return dest pointer */ 703: ld r3,48(r1) /* return dest pointer */
70 blr 71 blr
@@ -133,11 +134,24 @@ END_FTR_SECTION_IFCLR(CPU_FTR_UNALIGNED_LD_STD)
133 cmpwi cr1,r5,8 134 cmpwi cr1,r5,8
134 addi r3,r3,32 135 addi r3,r3,32
135 sld r9,r9,r10 136 sld r9,r9,r10
136 ble cr1,.Ldo_tail 137 ble cr1,6f
137 ld r0,8(r4) 138 ld r0,8(r4)
138 srd r7,r0,r11 139 srd r7,r0,r11
139 or r9,r7,r9 140 or r9,r7,r9
140 b .Ldo_tail 1416:
142 bf cr7*4+1,1f
143 rotldi r9,r9,32
144 stw r9,0(r3)
145 addi r3,r3,4
1461: bf cr7*4+2,2f
147 rotldi r9,r9,16
148 sth r9,0(r3)
149 addi r3,r3,2
1502: bf cr7*4+3,3f
151 rotldi r9,r9,8
152 stb r9,0(r3)
1533: ld r3,48(r1) /* return dest pointer */
154 blr
141 155
142.Ldst_unaligned: 156.Ldst_unaligned:
143 PPC_MTOCRF 0x01,r6 # put #bytes to 8B bdry into cr7 157 PPC_MTOCRF 0x01,r6 # put #bytes to 8B bdry into cr7
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 4aae0c387645..13b7d54f185b 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -172,6 +172,8 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
172 } 172 }
173 break; 173 break;
174 case 0x378: /* orx */ 174 case 0x378: /* orx */
175 if (instr & 1)
176 break;
175 rs = (instr >> 21) & 0x1f; 177 rs = (instr >> 21) & 0x1f;
176 rb = (instr >> 11) & 0x1f; 178 rb = (instr >> 11) & 0x1f;
177 if (rs == rb) { /* mr */ 179 if (rs == rb) { /* mr */
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c
index 23cee39534fd..ea6e41e39d9f 100644
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@ -56,18 +56,11 @@
56 56
57extern void loadcam_entry(unsigned int index); 57extern void loadcam_entry(unsigned int index);
58unsigned int tlbcam_index; 58unsigned int tlbcam_index;
59unsigned int num_tlbcam_entries;
60static unsigned long __cam0, __cam1, __cam2; 59static unsigned long __cam0, __cam1, __cam2;
61 60
62#define NUM_TLBCAMS (16) 61#define NUM_TLBCAMS (16)
63 62
64struct tlbcam { 63struct tlbcam TLBCAM[NUM_TLBCAMS];
65 u32 MAS0;
66 u32 MAS1;
67 u32 MAS2;
68 u32 MAS3;
69 u32 MAS7;
70} TLBCAM[NUM_TLBCAMS];
71 64
72struct tlbcamrange { 65struct tlbcamrange {
73 unsigned long start; 66 unsigned long start;
@@ -80,7 +73,7 @@ extern unsigned int tlbcam_index;
80/* 73/*
81 * Return PA for this VA if it is mapped by a CAM, or 0 74 * Return PA for this VA if it is mapped by a CAM, or 0
82 */ 75 */
83unsigned long v_mapped_by_tlbcam(unsigned long va) 76phys_addr_t v_mapped_by_tlbcam(unsigned long va)
84{ 77{
85 int b; 78 int b;
86 for (b = 0; b < tlbcam_index; ++b) 79 for (b = 0; b < tlbcam_index; ++b)
@@ -92,7 +85,7 @@ unsigned long v_mapped_by_tlbcam(unsigned long va)
92/* 85/*
93 * Return VA for a given PA or 0 if not mapped 86 * Return VA for a given PA or 0 if not mapped
94 */ 87 */
95unsigned long p_mapped_by_tlbcam(unsigned long pa) 88unsigned long p_mapped_by_tlbcam(phys_addr_t pa)
96{ 89{
97 int b; 90 int b;
98 for (b = 0; b < tlbcam_index; ++b) 91 for (b = 0; b < tlbcam_index; ++b)
diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S
index 67850ec9feb3..14af8cedab70 100644
--- a/arch/powerpc/mm/hash_low_32.S
+++ b/arch/powerpc/mm/hash_low_32.S
@@ -320,7 +320,7 @@ _GLOBAL(create_hpte)
320 and r8,r8,r0 /* writable if _RW & _DIRTY */ 320 and r8,r8,r0 /* writable if _RW & _DIRTY */
321 rlwimi r5,r5,32-1,30,30 /* _PAGE_USER -> PP msb */ 321 rlwimi r5,r5,32-1,30,30 /* _PAGE_USER -> PP msb */
322 rlwimi r5,r5,32-2,31,31 /* _PAGE_USER -> PP lsb */ 322 rlwimi r5,r5,32-2,31,31 /* _PAGE_USER -> PP lsb */
323 ori r8,r8,0xe14 /* clear out reserved bits and M */ 323 ori r8,r8,0xe04 /* clear out reserved bits */
324 andc r8,r5,r8 /* PP = user? (rw&dirty? 2: 3): 0 */ 324 andc r8,r5,r8 /* PP = user? (rw&dirty? 2: 3): 0 */
325BEGIN_FTR_SECTION 325BEGIN_FTR_SECTION
326 rlwinm r8,r8,0,~_PAGE_COHERENT /* clear M (coherence not required) */ 326 rlwinm r8,r8,0,~_PAGE_COHERENT /* clear M (coherence not required) */
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h
index ad123bced404..d1f9c62dc177 100644
--- a/arch/powerpc/mm/mmu_decl.h
+++ b/arch/powerpc/mm/mmu_decl.h
@@ -75,6 +75,15 @@ extern void _tlbia(void);
75#endif /* CONFIG_PPC_MMU_NOHASH */ 75#endif /* CONFIG_PPC_MMU_NOHASH */
76 76
77#ifdef CONFIG_PPC32 77#ifdef CONFIG_PPC32
78
79struct tlbcam {
80 u32 MAS0;
81 u32 MAS1;
82 u32 MAS2;
83 u32 MAS3;
84 u32 MAS7;
85};
86
78extern void mapin_ram(void); 87extern void mapin_ram(void);
79extern int map_page(unsigned long va, phys_addr_t pa, int flags); 88extern int map_page(unsigned long va, phys_addr_t pa, int flags);
80extern void setbat(int index, unsigned long virt, phys_addr_t phys, 89extern void setbat(int index, unsigned long virt, phys_addr_t phys,
@@ -90,8 +99,6 @@ extern unsigned int rtas_data, rtas_size;
90struct hash_pte; 99struct hash_pte;
91extern struct hash_pte *Hash, *Hash_end; 100extern struct hash_pte *Hash, *Hash_end;
92extern unsigned long Hash_size, Hash_mask; 101extern unsigned long Hash_size, Hash_mask;
93
94extern unsigned int num_tlbcam_entries;
95#endif 102#endif
96 103
97extern unsigned long ioremap_bot; 104extern unsigned long ioremap_bot;
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 7393bd76d698..5ac08b8ab654 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -19,6 +19,7 @@
19#include <linux/notifier.h> 19#include <linux/notifier.h>
20#include <linux/lmb.h> 20#include <linux/lmb.h>
21#include <linux/of.h> 21#include <linux/of.h>
22#include <linux/pfn.h>
22#include <asm/sparsemem.h> 23#include <asm/sparsemem.h>
23#include <asm/prom.h> 24#include <asm/prom.h>
24#include <asm/system.h> 25#include <asm/system.h>
@@ -882,7 +883,7 @@ static void mark_reserved_regions_for_nid(int nid)
882 unsigned long physbase = lmb.reserved.region[i].base; 883 unsigned long physbase = lmb.reserved.region[i].base;
883 unsigned long size = lmb.reserved.region[i].size; 884 unsigned long size = lmb.reserved.region[i].size;
884 unsigned long start_pfn = physbase >> PAGE_SHIFT; 885 unsigned long start_pfn = physbase >> PAGE_SHIFT;
885 unsigned long end_pfn = ((physbase + size) >> PAGE_SHIFT); 886 unsigned long end_pfn = PFN_UP(physbase + size);
886 struct node_active_region node_ar; 887 struct node_active_region node_ar;
887 unsigned long node_end_pfn = node->node_start_pfn + 888 unsigned long node_end_pfn = node->node_start_pfn +
888 node->node_spanned_pages; 889 node->node_spanned_pages;
@@ -908,7 +909,7 @@ static void mark_reserved_regions_for_nid(int nid)
908 */ 909 */
909 if (end_pfn > node_ar.end_pfn) 910 if (end_pfn > node_ar.end_pfn)
910 reserve_size = (node_ar.end_pfn << PAGE_SHIFT) 911 reserve_size = (node_ar.end_pfn << PAGE_SHIFT)
911 - (start_pfn << PAGE_SHIFT); 912 - physbase;
912 /* 913 /*
913 * Only worry about *this* node, others may not 914 * Only worry about *this* node, others may not
914 * yet have valid NODE_DATA(). 915 * yet have valid NODE_DATA().
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index 22972cd83cc9..58bcaeba728d 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -61,8 +61,8 @@ void setbat(int index, unsigned long virt, phys_addr_t phys,
61 61
62#ifdef HAVE_TLBCAM 62#ifdef HAVE_TLBCAM
63extern unsigned int tlbcam_index; 63extern unsigned int tlbcam_index;
64extern unsigned long v_mapped_by_tlbcam(unsigned long va); 64extern phys_addr_t v_mapped_by_tlbcam(unsigned long va);
65extern unsigned long p_mapped_by_tlbcam(unsigned long pa); 65extern unsigned long p_mapped_by_tlbcam(phys_addr_t pa);
66#else /* !HAVE_TLBCAM */ 66#else /* !HAVE_TLBCAM */
67#define v_mapped_by_tlbcam(x) (0UL) 67#define v_mapped_by_tlbcam(x) (0UL)
68#define p_mapped_by_tlbcam(x) (0UL) 68#define p_mapped_by_tlbcam(x) (0UL)
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
index 45d925360b89..fe65c405412c 100644
--- a/arch/powerpc/mm/ppc_mmu_32.c
+++ b/arch/powerpc/mm/ppc_mmu_32.c
@@ -123,9 +123,9 @@ void __init setbat(int index, unsigned long virt, phys_addr_t phys,
123 int wimgxpp; 123 int wimgxpp;
124 struct ppc_bat *bat = BATS[index]; 124 struct ppc_bat *bat = BATS[index];
125 125
126 if (((flags & _PAGE_NO_CACHE) == 0) && 126 if ((flags & _PAGE_NO_CACHE) ||
127 cpu_has_feature(CPU_FTR_NEED_COHERENT)) 127 (cpu_has_feature(CPU_FTR_NEED_COHERENT) == 0))
128 flags |= _PAGE_COHERENT; 128 flags &= ~_PAGE_COHERENT;
129 129
130 bl = (size >> 17) - 1; 130 bl = (size >> 17) - 1;
131 if (PVR_VER(mfspr(SPRN_PVR)) != 1) { 131 if (PVR_VER(mfspr(SPRN_PVR)) != 1) {
diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
index db44e02e045b..ba5194817f8a 100644
--- a/arch/powerpc/mm/slice.c
+++ b/arch/powerpc/mm/slice.c
@@ -710,9 +710,18 @@ int is_hugepage_only_range(struct mm_struct *mm, unsigned long addr,
710 unsigned long len) 710 unsigned long len)
711{ 711{
712 struct slice_mask mask, available; 712 struct slice_mask mask, available;
713 unsigned int psize = mm->context.user_psize;
713 714
714 mask = slice_range_to_mask(addr, len); 715 mask = slice_range_to_mask(addr, len);
715 available = slice_mask_for_size(mm, mm->context.user_psize); 716 available = slice_mask_for_size(mm, psize);
717#ifdef CONFIG_PPC_64K_PAGES
718 /* We need to account for 4k slices too */
719 if (psize == MMU_PAGE_64K) {
720 struct slice_mask compat_mask;
721 compat_mask = slice_mask_for_size(mm, MMU_PAGE_4K);
722 or_mask(available, compat_mask);
723 }
724#endif
716 725
717#if 0 /* too verbose */ 726#if 0 /* too verbose */
718 slice_dbg("is_hugepage_only_range(mm=%p, addr=%lx, len=%lx)\n", 727 slice_dbg("is_hugepage_only_range(mm=%p, addr=%lx, len=%lx)\n",
diff --git a/arch/powerpc/mm/stab.c b/arch/powerpc/mm/stab.c
index 60e6032a8088..98cd1dc2ae75 100644
--- a/arch/powerpc/mm/stab.c
+++ b/arch/powerpc/mm/stab.c
@@ -251,8 +251,8 @@ void __init stabs_alloc(void)
251 251
252 paca[cpu].stab_addr = newstab; 252 paca[cpu].stab_addr = newstab;
253 paca[cpu].stab_real = virt_to_abs(newstab); 253 paca[cpu].stab_real = virt_to_abs(newstab);
254 printk(KERN_INFO "Segment table for CPU %d at 0x%lx " 254 printk(KERN_INFO "Segment table for CPU %d at 0x%llx "
255 "virtual, 0x%lx absolute\n", 255 "virtual, 0x%llx absolute\n",
256 cpu, paca[cpu].stab_addr, paca[cpu].stab_real); 256 cpu, paca[cpu].stab_addr, paca[cpu].stab_real);
257 } 257 }
258} 258}
diff --git a/arch/powerpc/oprofile/cell/spu_profiler.c b/arch/powerpc/oprofile/cell/spu_profiler.c
index 9305ddaac512..b129d007e7fe 100644
--- a/arch/powerpc/oprofile/cell/spu_profiler.c
+++ b/arch/powerpc/oprofile/cell/spu_profiler.c
@@ -16,6 +16,7 @@
16#include <linux/smp.h> 16#include <linux/smp.h>
17#include <linux/slab.h> 17#include <linux/slab.h>
18#include <asm/cell-pmu.h> 18#include <asm/cell-pmu.h>
19#include <asm/time.h>
19#include "pr_util.h" 20#include "pr_util.h"
20 21
21#define SCALE_SHIFT 14 22#define SCALE_SHIFT 14
diff --git a/arch/powerpc/oprofile/op_model_pa6t.c b/arch/powerpc/oprofile/op_model_pa6t.c
index c40de461fd4e..42f778dff919 100644
--- a/arch/powerpc/oprofile/op_model_pa6t.c
+++ b/arch/powerpc/oprofile/op_model_pa6t.c
@@ -132,7 +132,7 @@ static int pa6t_reg_setup(struct op_counter_config *ctr,
132 for (pmc = 0; pmc < cur_cpu_spec->num_pmcs; pmc++) { 132 for (pmc = 0; pmc < cur_cpu_spec->num_pmcs; pmc++) {
133 /* counters are 40 bit. Move to cputable at some point? */ 133 /* counters are 40 bit. Move to cputable at some point? */
134 reset_value[pmc] = (0x1UL << 39) - ctr[pmc].count; 134 reset_value[pmc] = (0x1UL << 39) - ctr[pmc].count;
135 pr_debug("reset_value for pmc%u inited to 0x%lx\n", 135 pr_debug("reset_value for pmc%u inited to 0x%llx\n",
136 pmc, reset_value[pmc]); 136 pmc, reset_value[pmc]);
137 } 137 }
138 138
@@ -177,7 +177,7 @@ static int pa6t_start(struct op_counter_config *ctr)
177 177
178 oprofile_running = 1; 178 oprofile_running = 1;
179 179
180 pr_debug("start on cpu %d, mmcr0 %lx\n", smp_processor_id(), mmcr0); 180 pr_debug("start on cpu %d, mmcr0 %llx\n", smp_processor_id(), mmcr0);
181 181
182 return 0; 182 return 0;
183} 183}
@@ -193,7 +193,7 @@ static void pa6t_stop(void)
193 193
194 oprofile_running = 0; 194 oprofile_running = 0;
195 195
196 pr_debug("stop on cpu %d, mmcr0 %lx\n", smp_processor_id(), mmcr0); 196 pr_debug("stop on cpu %d, mmcr0 %llx\n", smp_processor_id(), mmcr0);
197} 197}
198 198
199/* handle the perfmon overflow vector */ 199/* handle the perfmon overflow vector */
diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
index 698133180aee..01f51daace13 100644
--- a/arch/powerpc/platforms/44x/Makefile
+++ b/arch/powerpc/platforms/44x/Makefile
@@ -3,5 +3,4 @@ obj-$(CONFIG_PPC44x_SIMPLE) += ppc44x_simple.o
3obj-$(CONFIG_EBONY) += ebony.o 3obj-$(CONFIG_EBONY) += ebony.o
4obj-$(CONFIG_SAM440EP) += sam440ep.o 4obj-$(CONFIG_SAM440EP) += sam440ep.o
5obj-$(CONFIG_WARP) += warp.o 5obj-$(CONFIG_WARP) += warp.o
6obj-$(CONFIG_WARP) += warp-nand.o
7obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o 6obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o
diff --git a/arch/powerpc/platforms/44x/warp-nand.c b/arch/powerpc/platforms/44x/warp-nand.c
deleted file mode 100644
index 89ecd76127d8..000000000000
--- a/arch/powerpc/platforms/44x/warp-nand.c
+++ /dev/null
@@ -1,135 +0,0 @@
1/*
2 * PIKA Warp(tm) NAND flash specific routines
3 *
4 * Copyright (c) 2008 PIKA Technologies
5 * Sean MacLennan <smaclennan@pikatech.com>
6 */
7
8#include <linux/platform_device.h>
9#include <linux/mtd/mtd.h>
10#include <linux/mtd/map.h>
11#include <linux/mtd/partitions.h>
12#include <linux/mtd/nand.h>
13#include <linux/mtd/ndfc.h>
14#include <linux/of.h>
15#include <asm/machdep.h>
16
17
18#ifdef CONFIG_MTD_NAND_NDFC
19
20#define CS_NAND_0 1 /* use chip select 1 for NAND device 0 */
21
22#define WARP_NAND_FLASH_REG_ADDR 0xD0000000UL
23#define WARP_NAND_FLASH_REG_SIZE 0x2000
24
25static struct resource warp_ndfc = {
26 .start = WARP_NAND_FLASH_REG_ADDR,
27 .end = WARP_NAND_FLASH_REG_ADDR + WARP_NAND_FLASH_REG_SIZE - 1,
28 .flags = IORESOURCE_MEM,
29};
30
31static struct mtd_partition nand_parts[] = {
32 {
33 .name = "kernel",
34 .offset = 0,
35 .size = 0x0200000
36 },
37 {
38 .name = "root",
39 .offset = 0x0200000,
40 .size = 0x3E00000
41 },
42 {
43 .name = "persistent",
44 .offset = 0x4000000,
45 .size = 0x4000000
46 },
47 {
48 .name = "persistent1",
49 .offset = 0x8000000,
50 .size = 0x4000000
51 },
52 {
53 .name = "persistent2",
54 .offset = 0xC000000,
55 .size = 0x4000000
56 }
57};
58
59struct ndfc_controller_settings warp_ndfc_settings = {
60 .ccr_settings = (NDFC_CCR_BS(CS_NAND_0) | NDFC_CCR_ARAC1),
61 .ndfc_erpn = 0,
62};
63
64static struct ndfc_chip_settings warp_chip0_settings = {
65 .bank_settings = 0x80002222,
66};
67
68struct platform_nand_ctrl warp_nand_ctrl = {
69 .priv = &warp_ndfc_settings,
70};
71
72static struct platform_device warp_ndfc_device = {
73 .name = "ndfc-nand",
74 .id = 0,
75 .dev = {
76 .platform_data = &warp_nand_ctrl,
77 },
78 .num_resources = 1,
79 .resource = &warp_ndfc,
80};
81
82/* Do NOT set the ecclayout: let it default so it is correct for both
83 * 64M and 256M flash chips.
84 */
85static struct platform_nand_chip warp_nand_chip0 = {
86 .nr_chips = 1,
87 .chip_offset = CS_NAND_0,
88 .nr_partitions = ARRAY_SIZE(nand_parts),
89 .partitions = nand_parts,
90 .chip_delay = 20,
91 .priv = &warp_chip0_settings,
92};
93
94static struct platform_device warp_nand_device = {
95 .name = "ndfc-chip",
96 .id = 0,
97 .num_resources = 0,
98 .dev = {
99 .platform_data = &warp_nand_chip0,
100 .parent = &warp_ndfc_device.dev,
101 }
102};
103
104static int warp_setup_nand_flash(void)
105{
106 struct device_node *np;
107
108 /* Try to detect a rev A based on NOR size. */
109 np = of_find_compatible_node(NULL, NULL, "cfi-flash");
110 if (np) {
111 struct property *pp;
112
113 pp = of_find_property(np, "reg", NULL);
114 if (pp && (pp->length == 12)) {
115 u32 *v = pp->value;
116 if (v[2] == 0x4000000) {
117 /* Rev A = 64M NAND */
118 warp_nand_chip0.nr_partitions = 3;
119
120 nand_parts[1].size = 0x3000000;
121 nand_parts[2].offset = 0x3200000;
122 nand_parts[2].size = 0x0e00000;
123 }
124 }
125 of_node_put(np);
126 }
127
128 platform_device_register(&warp_ndfc_device);
129 platform_device_register(&warp_nand_device);
130
131 return 0;
132}
133machine_device_initcall(warp, warp_setup_nand_flash);
134
135#endif
diff --git a/arch/powerpc/platforms/512x/clock.c b/arch/powerpc/platforms/512x/clock.c
index f416014ee727..1bcff94eb924 100644
--- a/arch/powerpc/platforms/512x/clock.c
+++ b/arch/powerpc/platforms/512x/clock.c
@@ -56,12 +56,12 @@ static struct clk *mpc5121_clk_get(struct device *dev, const char *id)
56 int dev_match = 0; 56 int dev_match = 0;
57 int id_match = 0; 57 int id_match = 0;
58 58
59 if (dev == NULL && id == NULL) 59 if (dev == NULL || id == NULL)
60 return NULL; 60 return NULL;
61 61
62 mutex_lock(&clocks_mutex); 62 mutex_lock(&clocks_mutex);
63 list_for_each_entry(p, &clocks, node) { 63 list_for_each_entry(p, &clocks, node) {
64 if (dev && dev == p->dev) 64 if (dev == p->dev)
65 dev_match++; 65 dev_match++;
66 if (strcmp(id, p->name) == 0) 66 if (strcmp(id, p->name) == 0)
67 id_match++; 67 id_match++;
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
index 8a455ebce98d..07f89ae46d04 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
@@ -363,11 +363,8 @@ static int mpc52xx_gpt_gpio_get(struct gpio_chip *gc, unsigned int gpio)
363{ 363{
364 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); 364 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
365 struct mpc52xx_gpt __iomem *regs = mm_gc->regs; 365 struct mpc52xx_gpt __iomem *regs = mm_gc->regs;
366 unsigned int ret;
367 366
368 return (in_be32(&regs->status) & (1 << (31 - 23))) ? 1 : 0; 367 return (in_be32(&regs->status) & (1 << (31 - 23))) ? 1 : 0;
369
370 return ret;
371} 368}
372 369
373static void 370static void
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pci.c b/arch/powerpc/platforms/52xx/mpc52xx_pci.c
index c3f2c21024e3..87ff522f28b5 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pci.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pci.c
@@ -20,14 +20,6 @@
20 20
21 21
22/* ======================================================================== */ 22/* ======================================================================== */
23/* PCI windows config */
24/* ======================================================================== */
25
26#define MPC52xx_PCI_TARGET_IO 0xf0000000
27#define MPC52xx_PCI_TARGET_MEM 0x00000000
28
29
30/* ======================================================================== */
31/* Structures mapping & Defines for PCI Unit */ 23/* Structures mapping & Defines for PCI Unit */
32/* ======================================================================== */ 24/* ======================================================================== */
33 25
@@ -244,7 +236,7 @@ static struct pci_ops mpc52xx_pci_ops = {
244 236
245static void __init 237static void __init
246mpc52xx_pci_setup(struct pci_controller *hose, 238mpc52xx_pci_setup(struct pci_controller *hose,
247 struct mpc52xx_pci __iomem *pci_regs) 239 struct mpc52xx_pci __iomem *pci_regs, phys_addr_t pci_phys)
248{ 240{
249 struct resource *res; 241 struct resource *res;
250 u32 tmp; 242 u32 tmp;
@@ -314,10 +306,14 @@ mpc52xx_pci_setup(struct pci_controller *hose,
314 /* Set all the IWCR fields at once; they're in the same reg */ 306 /* Set all the IWCR fields at once; they're in the same reg */
315 out_be32(&pci_regs->iwcr, MPC52xx_PCI_IWCR_PACK(iwcr0, iwcr1, iwcr2)); 307 out_be32(&pci_regs->iwcr, MPC52xx_PCI_IWCR_PACK(iwcr0, iwcr1, iwcr2));
316 308
317 out_be32(&pci_regs->tbatr0, 309 /* Map IMMR onto PCI bus */
318 MPC52xx_PCI_TBATR_ENABLE | MPC52xx_PCI_TARGET_IO ); 310 pci_phys &= 0xfffc0000; /* bar0 has only 14 significant bits */
319 out_be32(&pci_regs->tbatr1, 311 out_be32(&pci_regs->tbatr0, MPC52xx_PCI_TBATR_ENABLE | pci_phys);
320 MPC52xx_PCI_TBATR_ENABLE | MPC52xx_PCI_TARGET_MEM ); 312 out_be32(&pci_regs->bar0, PCI_BASE_ADDRESS_MEM_PREFETCH | pci_phys);
313
314 /* Map memory onto PCI bus */
315 out_be32(&pci_regs->tbatr1, MPC52xx_PCI_TBATR_ENABLE);
316 out_be32(&pci_regs->bar1, PCI_BASE_ADDRESS_MEM_PREFETCH);
321 317
322 out_be32(&pci_regs->tcr, MPC52xx_PCI_TCR_LD | MPC52xx_PCI_TCR_WCT8); 318 out_be32(&pci_regs->tcr, MPC52xx_PCI_TCR_LD | MPC52xx_PCI_TCR_WCT8);
323 319
@@ -414,7 +410,7 @@ mpc52xx_add_bridge(struct device_node *node)
414 410
415 /* Finish setting up PCI using values obtained by 411 /* Finish setting up PCI using values obtained by
416 * pci_proces_bridge_OF_ranges */ 412 * pci_proces_bridge_OF_ranges */
417 mpc52xx_pci_setup(hose, pci_regs); 413 mpc52xx_pci_setup(hose, pci_regs, rsrc.start);
418 414
419 return 0; 415 return 0;
420} 416}
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index 72865e8e4b51..0a093f03c758 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -196,6 +196,7 @@ static void mpc52xx_extirq_ack(unsigned int virq)
196 196
197static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type) 197static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type)
198{ 198{
199 struct irq_desc *desc = get_irq_desc(virq);
199 u32 ctrl_reg, type; 200 u32 ctrl_reg, type;
200 int irq; 201 int irq;
201 int l2irq; 202 int l2irq;
@@ -222,6 +223,11 @@ static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type)
222 type = 0; 223 type = 0;
223 } 224 }
224 225
226 desc->status &= ~(IRQ_TYPE_SENSE_MASK | IRQ_LEVEL);
227 desc->status |= flow_type & IRQ_TYPE_SENSE_MASK;
228 if (flow_type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW))
229 desc->status |= IRQ_LEVEL;
230
225 ctrl_reg = in_be32(&intr->ctrl); 231 ctrl_reg = in_be32(&intr->ctrl);
226 ctrl_reg &= ~(0x3 << (22 - (l2irq * 2))); 232 ctrl_reg &= ~(0x3 << (22 - (l2irq * 2)));
227 ctrl_reg |= (type << (22 - (l2irq * 2))); 233 ctrl_reg |= (type << (22 - (l2irq * 2)));
@@ -231,7 +237,7 @@ static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type)
231} 237}
232 238
233static struct irq_chip mpc52xx_extirq_irqchip = { 239static struct irq_chip mpc52xx_extirq_irqchip = {
234 .typename = " MPC52xx IRQ[0-3] ", 240 .typename = "MPC52xx External",
235 .mask = mpc52xx_extirq_mask, 241 .mask = mpc52xx_extirq_mask,
236 .unmask = mpc52xx_extirq_unmask, 242 .unmask = mpc52xx_extirq_unmask,
237 .ack = mpc52xx_extirq_ack, 243 .ack = mpc52xx_extirq_ack,
diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
index 9876d7e072f4..ddf0bdc0fc8b 100644
--- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
+++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
@@ -186,7 +186,7 @@ out_unmap_regs:
186 iounmap(priv->regs); 186 iounmap(priv->regs);
187out_free_bootmem: 187out_free_bootmem:
188 free_bootmem((unsigned long)priv, 188 free_bootmem((unsigned long)priv,
189 sizeof(sizeof(struct pq2ads_pci_pic))); 189 sizeof(struct pq2ads_pci_pic));
190 of_node_put(np); 190 of_node_put(np);
191out_unmap_irq: 191out_unmap_irq:
192 irq_dispose_mapping(irq); 192 irq_dispose_mapping(irq);
diff --git a/arch/powerpc/platforms/83xx/Makefile b/arch/powerpc/platforms/83xx/Makefile
index ba5028e29890..051777c542c7 100644
--- a/arch/powerpc/platforms/83xx/Makefile
+++ b/arch/powerpc/platforms/83xx/Makefile
@@ -3,6 +3,7 @@
3# 3#
4obj-y := misc.o usb.o 4obj-y := misc.o usb.o
5obj-$(CONFIG_SUSPEND) += suspend.o suspend-asm.o 5obj-$(CONFIG_SUSPEND) += suspend.o suspend-asm.o
6obj-$(CONFIG_MCU_MPC8349EMITX) += mcu_mpc8349emitx.o
6obj-$(CONFIG_MPC831x_RDB) += mpc831x_rdb.o 7obj-$(CONFIG_MPC831x_RDB) += mpc831x_rdb.o
7obj-$(CONFIG_MPC832x_RDB) += mpc832x_rdb.o 8obj-$(CONFIG_MPC832x_RDB) += mpc832x_rdb.o
8obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o 9obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o
diff --git a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
new file mode 100644
index 000000000000..82a9bcb858b6
--- /dev/null
+++ b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
@@ -0,0 +1,209 @@
1/*
2 * Power Management and GPIO expander driver for MPC8349E-mITX-compatible MCU
3 *
4 * Copyright (c) 2008 MontaVista Software, Inc.
5 *
6 * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 */
13
14#include <linux/init.h>
15#include <linux/kernel.h>
16#include <linux/module.h>
17#include <linux/device.h>
18#include <linux/mutex.h>
19#include <linux/i2c.h>
20#include <linux/gpio.h>
21#include <linux/of.h>
22#include <linux/of_gpio.h>
23#include <asm/prom.h>
24#include <asm/machdep.h>
25
26/*
27 * I don't have specifications for the MCU firmware, I found this register
28 * and bits positions by the trial&error method.
29 */
30#define MCU_REG_CTRL 0x20
31#define MCU_CTRL_POFF 0x40
32
33#define MCU_NUM_GPIO 2
34
35struct mcu {
36 struct mutex lock;
37 struct device_node *np;
38 struct i2c_client *client;
39 struct of_gpio_chip of_gc;
40 u8 reg_ctrl;
41};
42
43static struct mcu *glob_mcu;
44
45static void mcu_power_off(void)
46{
47 struct mcu *mcu = glob_mcu;
48
49 pr_info("Sending power-off request to the MCU...\n");
50 mutex_lock(&mcu->lock);
51 i2c_smbus_write_byte_data(glob_mcu->client, MCU_REG_CTRL,
52 mcu->reg_ctrl | MCU_CTRL_POFF);
53 mutex_unlock(&mcu->lock);
54}
55
56static void mcu_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
57{
58 struct of_gpio_chip *of_gc = to_of_gpio_chip(gc);
59 struct mcu *mcu = container_of(of_gc, struct mcu, of_gc);
60 u8 bit = 1 << (4 + gpio);
61
62 mutex_lock(&mcu->lock);
63 if (val)
64 mcu->reg_ctrl &= ~bit;
65 else
66 mcu->reg_ctrl |= bit;
67
68 i2c_smbus_write_byte_data(mcu->client, MCU_REG_CTRL, mcu->reg_ctrl);
69 mutex_unlock(&mcu->lock);
70}
71
72static int mcu_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
73{
74 mcu_gpio_set(gc, gpio, val);
75 return 0;
76}
77
78static int mcu_gpiochip_add(struct mcu *mcu)
79{
80 struct device_node *np;
81 struct of_gpio_chip *of_gc = &mcu->of_gc;
82 struct gpio_chip *gc = &of_gc->gc;
83 int ret;
84
85 np = of_find_compatible_node(NULL, NULL, "fsl,mcu-mpc8349emitx");
86 if (!np)
87 return -ENODEV;
88
89 gc->owner = THIS_MODULE;
90 gc->label = np->full_name;
91 gc->can_sleep = 1;
92 gc->ngpio = MCU_NUM_GPIO;
93 gc->base = -1;
94 gc->set = mcu_gpio_set;
95 gc->direction_output = mcu_gpio_dir_out;
96 of_gc->gpio_cells = 2;
97 of_gc->xlate = of_gpio_simple_xlate;
98
99 np->data = of_gc;
100 mcu->np = np;
101
102 /*
103 * We don't want to lose the node, its ->data and ->full_name...
104 * So, if succeeded, we don't put the node here.
105 */
106 ret = gpiochip_add(gc);
107 if (ret)
108 of_node_put(np);
109 return ret;
110}
111
112static int mcu_gpiochip_remove(struct mcu *mcu)
113{
114 int ret;
115
116 ret = gpiochip_remove(&mcu->of_gc.gc);
117 if (ret)
118 return ret;
119 of_node_put(mcu->np);
120
121 return 0;
122}
123
124static int __devinit mcu_probe(struct i2c_client *client,
125 const struct i2c_device_id *id)
126{
127 struct mcu *mcu;
128 int ret;
129
130 mcu = kzalloc(sizeof(*mcu), GFP_KERNEL);
131 if (!mcu)
132 return -ENOMEM;
133
134 mutex_init(&mcu->lock);
135 mcu->client = client;
136 i2c_set_clientdata(client, mcu);
137
138 ret = i2c_smbus_read_byte_data(mcu->client, MCU_REG_CTRL);
139 if (ret < 0)
140 goto err;
141 mcu->reg_ctrl = ret;
142
143 ret = mcu_gpiochip_add(mcu);
144 if (ret)
145 goto err;
146
147 /* XXX: this is potentially racy, but there is no lock for ppc_md */
148 if (!ppc_md.power_off) {
149 glob_mcu = mcu;
150 ppc_md.power_off = mcu_power_off;
151 dev_info(&client->dev, "will provide power-off service\n");
152 }
153
154 return 0;
155err:
156 kfree(mcu);
157 return ret;
158}
159
160static int __devexit mcu_remove(struct i2c_client *client)
161{
162 struct mcu *mcu = i2c_get_clientdata(client);
163 int ret;
164
165 if (glob_mcu == mcu) {
166 ppc_md.power_off = NULL;
167 glob_mcu = NULL;
168 }
169
170 ret = mcu_gpiochip_remove(mcu);
171 if (ret)
172 return ret;
173 i2c_set_clientdata(client, NULL);
174 kfree(mcu);
175 return 0;
176}
177
178static const struct i2c_device_id mcu_ids[] = {
179 { "mcu-mpc8349emitx", },
180 {},
181};
182MODULE_DEVICE_TABLE(i2c, mcu_ids);
183
184static struct i2c_driver mcu_driver = {
185 .driver = {
186 .name = "mcu-mpc8349emitx",
187 .owner = THIS_MODULE,
188 },
189 .probe = mcu_probe,
190 .remove = __devexit_p(mcu_remove),
191 .id_table = mcu_ids,
192};
193
194static int __init mcu_init(void)
195{
196 return i2c_add_driver(&mcu_driver);
197}
198module_init(mcu_init);
199
200static void __exit mcu_exit(void)
201{
202 i2c_del_driver(&mcu_driver);
203}
204module_exit(mcu_exit);
205
206MODULE_DESCRIPTION("Power Management and GPIO expander driver for "
207 "MPC8349E-mITX-compatible MCU");
208MODULE_AUTHOR("Anton Vorontsov <avorontsov@ru.mvista.com>");
209MODULE_LICENSE("GPL");
diff --git a/arch/powerpc/platforms/83xx/mpc831x_rdb.c b/arch/powerpc/platforms/83xx/mpc831x_rdb.c
index 5177bdd2c62a..91a2c80b9d72 100644
--- a/arch/powerpc/platforms/83xx/mpc831x_rdb.c
+++ b/arch/powerpc/platforms/83xx/mpc831x_rdb.c
@@ -71,6 +71,7 @@ static int __init mpc831x_rdb_probe(void)
71 71
72static struct of_device_id __initdata of_bus_ids[] = { 72static struct of_device_id __initdata of_bus_ids[] = {
73 { .compatible = "simple-bus" }, 73 { .compatible = "simple-bus" },
74 { .compatible = "gianfar" },
74 {}, 75 {},
75}; 76};
76 77
diff --git a/arch/powerpc/platforms/86xx/gef_sbc610.c b/arch/powerpc/platforms/86xx/gef_sbc610.c
index fb371f5ce132..d6b772ba3b8f 100644
--- a/arch/powerpc/platforms/86xx/gef_sbc610.c
+++ b/arch/powerpc/platforms/86xx/gef_sbc610.c
@@ -142,6 +142,10 @@ static void __init gef_sbc610_nec_fixup(struct pci_dev *pdev)
142{ 142{
143 unsigned int val; 143 unsigned int val;
144 144
145 /* Do not do the fixup on other platforms! */
146 if (!machine_is(gef_sbc610))
147 return;
148
145 printk(KERN_INFO "Running NEC uPD720101 Fixup\n"); 149 printk(KERN_INFO "Running NEC uPD720101 Fixup\n");
146 150
147 /* Ensure ports 1, 2, 3, 4 & 5 are enabled */ 151 /* Ensure ports 1, 2, 3, 4 & 5 are enabled */
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index 47fe2bea9865..200b9cb900ea 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -323,4 +323,15 @@ config SIMPLE_GPIO
323 chip-selects, Ethernet/USB PHY's power and various other small 323 chip-selects, Ethernet/USB PHY's power and various other small
324 on-board peripherals. 324 on-board peripherals.
325 325
326config MCU_MPC8349EMITX
327 tristate "MPC8349E-mITX MCU driver"
328 depends on I2C && PPC_83xx
329 select GENERIC_GPIO
330 select ARCH_REQUIRE_GPIOLIB
331 help
332 Say Y here to enable soft power-off functionality on the Freescale
333 boards with the MPC8349E-mITX-compatible MCU chips. This driver will
334 also register MCU GPIOs with the generic GPIO API, so you'll able
335 to use MCU pins as GPIOs.
336
326endmenu 337endmenu
diff --git a/arch/powerpc/platforms/cell/beat_interrupt.c b/arch/powerpc/platforms/cell/beat_interrupt.c
index 192a93509372..72254848a228 100644
--- a/arch/powerpc/platforms/cell/beat_interrupt.c
+++ b/arch/powerpc/platforms/cell/beat_interrupt.c
@@ -99,7 +99,7 @@ static void beatic_end_irq(unsigned int irq_plug)
99 err = beat_downcount_of_interrupt(irq_plug); 99 err = beat_downcount_of_interrupt(irq_plug);
100 if (err != 0) { 100 if (err != 0) {
101 if ((err & 0xFFFFFFFF) != 0xFFFFFFF5) /* -11: wrong state */ 101 if ((err & 0xFFFFFFFF) != 0xFFFFFFF5) /* -11: wrong state */
102 panic("Failed to downcount IRQ! Error = %16lx", err); 102 panic("Failed to downcount IRQ! Error = %16llx", err);
103 103
104 printk(KERN_ERR "IRQ over-downcounted, plug %d\n", irq_plug); 104 printk(KERN_ERR "IRQ over-downcounted, plug %d\n", irq_plug);
105 } 105 }
diff --git a/arch/powerpc/platforms/cell/celleb_scc_epci.c b/arch/powerpc/platforms/cell/celleb_scc_epci.c
index 08c285b10e30..48ec88a38a12 100644
--- a/arch/powerpc/platforms/cell/celleb_scc_epci.c
+++ b/arch/powerpc/platforms/cell/celleb_scc_epci.c
@@ -405,7 +405,7 @@ static int __init celleb_setup_epci(struct device_node *node,
405 hose->cfg_addr = ioremap(r.start, (r.end - r.start + 1)); 405 hose->cfg_addr = ioremap(r.start, (r.end - r.start + 1));
406 if (!hose->cfg_addr) 406 if (!hose->cfg_addr)
407 goto error; 407 goto error;
408 pr_debug("EPCI: cfg_addr map 0x%016lx->0x%016lx + 0x%016lx\n", 408 pr_debug("EPCI: cfg_addr map 0x%016llx->0x%016lx + 0x%016llx\n",
409 r.start, (unsigned long)hose->cfg_addr, (r.end - r.start + 1)); 409 r.start, (unsigned long)hose->cfg_addr, (r.end - r.start + 1));
410 410
411 if (of_address_to_resource(node, 2, &r)) 411 if (of_address_to_resource(node, 2, &r))
@@ -413,7 +413,7 @@ static int __init celleb_setup_epci(struct device_node *node,
413 hose->cfg_data = ioremap(r.start, (r.end - r.start + 1)); 413 hose->cfg_data = ioremap(r.start, (r.end - r.start + 1));
414 if (!hose->cfg_data) 414 if (!hose->cfg_data)
415 goto error; 415 goto error;
416 pr_debug("EPCI: cfg_data map 0x%016lx->0x%016lx + 0x%016lx\n", 416 pr_debug("EPCI: cfg_data map 0x%016llx->0x%016lx + 0x%016llx\n",
417 r.start, (unsigned long)hose->cfg_data, (r.end - r.start + 1)); 417 r.start, (unsigned long)hose->cfg_data, (r.end - r.start + 1));
418 418
419 hose->ops = &celleb_epci_ops; 419 hose->ops = &celleb_epci_ops;
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index 88d94b59a7cb..ee5033eddf01 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -855,7 +855,7 @@ static int __init cell_iommu_init_disabled(void)
855 */ 855 */
856 if (np && size < lmb_end_of_DRAM()) { 856 if (np && size < lmb_end_of_DRAM()) {
857 printk(KERN_WARNING "iommu: force-enabled, dma window" 857 printk(KERN_WARNING "iommu: force-enabled, dma window"
858 " (%ldMB) smaller than total memory (%ldMB)\n", 858 " (%ldMB) smaller than total memory (%lldMB)\n",
859 size >> 20, lmb_end_of_DRAM() >> 20); 859 size >> 20, lmb_end_of_DRAM() >> 20);
860 return -ENODEV; 860 return -ENODEV;
861 } 861 }
@@ -985,7 +985,7 @@ static void cell_dma_dev_setup_fixed(struct device *dev)
985 addr = cell_iommu_get_fixed_address(dev) + dma_iommu_fixed_base; 985 addr = cell_iommu_get_fixed_address(dev) + dma_iommu_fixed_base;
986 archdata->dma_data = (void *)addr; 986 archdata->dma_data = (void *)addr;
987 987
988 dev_dbg(dev, "iommu: fixed addr = %lx\n", addr); 988 dev_dbg(dev, "iommu: fixed addr = %llx\n", addr);
989} 989}
990 990
991static void insert_16M_pte(unsigned long addr, unsigned long *ptab, 991static void insert_16M_pte(unsigned long addr, unsigned long *ptab,
diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c
index 7b4cefa2199b..5f961c464cc4 100644
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
@@ -38,16 +38,16 @@ static void dump_fir(int cpu)
38 /* Todo: do some nicer parsing of bits and based on them go down 38 /* Todo: do some nicer parsing of bits and based on them go down
39 * to other sub-units FIRs and not only IIC 39 * to other sub-units FIRs and not only IIC
40 */ 40 */
41 printk(KERN_ERR "Global Checkstop FIR : 0x%016lx\n", 41 printk(KERN_ERR "Global Checkstop FIR : 0x%016llx\n",
42 in_be64(&pregs->checkstop_fir)); 42 in_be64(&pregs->checkstop_fir));
43 printk(KERN_ERR "Global Recoverable FIR : 0x%016lx\n", 43 printk(KERN_ERR "Global Recoverable FIR : 0x%016llx\n",
44 in_be64(&pregs->checkstop_fir)); 44 in_be64(&pregs->checkstop_fir));
45 printk(KERN_ERR "Global MachineCheck FIR : 0x%016lx\n", 45 printk(KERN_ERR "Global MachineCheck FIR : 0x%016llx\n",
46 in_be64(&pregs->spec_att_mchk_fir)); 46 in_be64(&pregs->spec_att_mchk_fir));
47 47
48 if (iregs == NULL) 48 if (iregs == NULL)
49 return; 49 return;
50 printk(KERN_ERR "IOC FIR : 0x%016lx\n", 50 printk(KERN_ERR "IOC FIR : 0x%016llx\n",
51 in_be64(&iregs->ioc_fir)); 51 in_be64(&iregs->ioc_fir));
52 52
53} 53}
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index a5bdb89a17c3..e487ad68ac11 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -151,7 +151,7 @@ static inline void spu_load_slb(struct spu *spu, int slbe, struct spu_slb *slb)
151{ 151{
152 struct spu_priv2 __iomem *priv2 = spu->priv2; 152 struct spu_priv2 __iomem *priv2 = spu->priv2;
153 153
154 pr_debug("%s: adding SLB[%d] 0x%016lx 0x%016lx\n", 154 pr_debug("%s: adding SLB[%d] 0x%016llx 0x%016llx\n",
155 __func__, slbe, slb->vsid, slb->esid); 155 __func__, slbe, slb->vsid, slb->esid);
156 156
157 out_be64(&priv2->slb_index_W, slbe); 157 out_be64(&priv2->slb_index_W, slbe);
@@ -221,7 +221,7 @@ static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr)
221{ 221{
222 int ret; 222 int ret;
223 223
224 pr_debug("%s, %lx, %lx\n", __func__, dsisr, ea); 224 pr_debug("%s, %llx, %lx\n", __func__, dsisr, ea);
225 225
226 /* 226 /*
227 * Handle kernel space hash faults immediately. User hash 227 * Handle kernel space hash faults immediately. User hash
diff --git a/arch/powerpc/platforms/cell/spu_callbacks.c b/arch/powerpc/platforms/cell/spu_callbacks.c
index 19f6bfdbb933..fec1495e6b12 100644
--- a/arch/powerpc/platforms/cell/spu_callbacks.c
+++ b/arch/powerpc/platforms/cell/spu_callbacks.c
@@ -54,7 +54,7 @@ long spu_sys_callback(struct spu_syscall_block *s)
54 long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6); 54 long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6);
55 55
56 if (s->nr_ret >= ARRAY_SIZE(spu_syscall_table)) { 56 if (s->nr_ret >= ARRAY_SIZE(spu_syscall_table)) {
57 pr_debug("%s: invalid syscall #%ld", __func__, s->nr_ret); 57 pr_debug("%s: invalid syscall #%lld", __func__, s->nr_ret);
58 return -ENOSYS; 58 return -ENOSYS;
59 } 59 }
60 60
diff --git a/arch/powerpc/platforms/cell/spufs/coredump.c b/arch/powerpc/platforms/cell/spufs/coredump.c
index af116aadba10..c4d4a19235e0 100644
--- a/arch/powerpc/platforms/cell/spufs/coredump.c
+++ b/arch/powerpc/platforms/cell/spufs/coredump.c
@@ -42,7 +42,7 @@ static ssize_t do_coredump_read(int num, struct spu_context *ctx, void *buffer,
42 return spufs_coredump_read[num].read(ctx, buffer, size, off); 42 return spufs_coredump_read[num].read(ctx, buffer, size, off);
43 43
44 data = spufs_coredump_read[num].get(ctx); 44 data = spufs_coredump_read[num].get(ctx);
45 ret = snprintf(buffer, size, "0x%.16lx", data); 45 ret = snprintf(buffer, size, "0x%.16llx", data);
46 if (ret >= size) 46 if (ret >= size)
47 return size; 47 return size;
48 return ++ret; /* count trailing NULL */ 48 return ++ret; /* count trailing NULL */
diff --git a/arch/powerpc/platforms/cell/spufs/fault.c b/arch/powerpc/platforms/cell/spufs/fault.c
index f093a581ac74..a4dd3ae7223a 100644
--- a/arch/powerpc/platforms/cell/spufs/fault.c
+++ b/arch/powerpc/platforms/cell/spufs/fault.c
@@ -132,7 +132,7 @@ int spufs_handle_class1(struct spu_context *ctx)
132 132
133 spuctx_switch_state(ctx, SPU_UTIL_IOWAIT); 133 spuctx_switch_state(ctx, SPU_UTIL_IOWAIT);
134 134
135 pr_debug("ctx %p: ea %016lx, dsisr %016lx state %d\n", ctx, ea, 135 pr_debug("ctx %p: ea %016llx, dsisr %016llx state %d\n", ctx, ea,
136 dsisr, ctx->state); 136 dsisr, ctx->state);
137 137
138 ctx->stats.hash_flt++; 138 ctx->stats.hash_flt++;
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
index 7106b63d401b..0da7f2bf5ee1 100644
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
@@ -1654,7 +1654,7 @@ out:
1654 1654
1655static int spufs_check_valid_dma(struct mfc_dma_command *cmd) 1655static int spufs_check_valid_dma(struct mfc_dma_command *cmd)
1656{ 1656{
1657 pr_debug("queueing DMA %x %lx %x %x %x\n", cmd->lsa, 1657 pr_debug("queueing DMA %x %llx %x %x %x\n", cmd->lsa,
1658 cmd->ea, cmd->size, cmd->tag, cmd->cmd); 1658 cmd->ea, cmd->size, cmd->tag, cmd->cmd);
1659 1659
1660 switch (cmd->cmd) { 1660 switch (cmd->cmd) {
@@ -1671,7 +1671,7 @@ static int spufs_check_valid_dma(struct mfc_dma_command *cmd)
1671 } 1671 }
1672 1672
1673 if ((cmd->lsa & 0xf) != (cmd->ea &0xf)) { 1673 if ((cmd->lsa & 0xf) != (cmd->ea &0xf)) {
1674 pr_debug("invalid DMA alignment, ea %lx lsa %x\n", 1674 pr_debug("invalid DMA alignment, ea %llx lsa %x\n",
1675 cmd->ea, cmd->lsa); 1675 cmd->ea, cmd->lsa);
1676 return -EIO; 1676 return -EIO;
1677 } 1677 }
@@ -2633,7 +2633,7 @@ static int spufs_show_ctx(struct seq_file *s, void *private)
2633 } 2633 }
2634 2634
2635 seq_printf(s, "%c flgs(%lx) sflgs(%lx) pri(%d) ts(%d) spu(%02d)" 2635 seq_printf(s, "%c flgs(%lx) sflgs(%lx) pri(%d) ts(%d) spu(%02d)"
2636 " %c %lx %lx %lx %lx %x %x\n", 2636 " %c %llx %llx %llx %llx %x %x\n",
2637 ctx->state == SPU_STATE_SAVED ? 'S' : 'R', 2637 ctx->state == SPU_STATE_SAVED ? 'S' : 'R',
2638 ctx->flags, 2638 ctx->flags,
2639 ctx->sched_flags, 2639 ctx->sched_flags,
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c
index 8c619963becc..1db6b9e037fc 100644
--- a/arch/powerpc/platforms/fsl_uli1575.c
+++ b/arch/powerpc/platforms/fsl_uli1575.c
@@ -249,6 +249,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288);
249DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); 249DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
250DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249); 250DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249);
251DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575); 251DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575);
252DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
252 253
253static void __devinit hpcd_quirk_uli1575(struct pci_dev *dev) 254static void __devinit hpcd_quirk_uli1575(struct pci_dev *dev)
254{ 255{
diff --git a/arch/powerpc/platforms/iseries/iommu.c b/arch/powerpc/platforms/iseries/iommu.c
index bbe828f1b885..6ed75bffc8ab 100644
--- a/arch/powerpc/platforms/iseries/iommu.c
+++ b/arch/powerpc/platforms/iseries/iommu.c
@@ -66,7 +66,7 @@ static int tce_build_iSeries(struct iommu_table *tbl, long index, long npages,
66 66
67 rc = HvCallXm_setTce((u64)tbl->it_index, (u64)index, tce); 67 rc = HvCallXm_setTce((u64)tbl->it_index, (u64)index, tce);
68 if (rc) 68 if (rc)
69 panic("PCI_DMA: HvCallXm_setTce failed, Rc: 0x%lx\n", 69 panic("PCI_DMA: HvCallXm_setTce failed, Rc: 0x%llx\n",
70 rc); 70 rc);
71 index++; 71 index++;
72 uaddr += TCE_PAGE_SIZE; 72 uaddr += TCE_PAGE_SIZE;
@@ -81,7 +81,7 @@ static void tce_free_iSeries(struct iommu_table *tbl, long index, long npages)
81 while (npages--) { 81 while (npages--) {
82 rc = HvCallXm_setTce((u64)tbl->it_index, (u64)index, 0); 82 rc = HvCallXm_setTce((u64)tbl->it_index, (u64)index, 0);
83 if (rc) 83 if (rc)
84 panic("PCI_DMA: HvCallXm_setTce failed, Rc: 0x%lx\n", 84 panic("PCI_DMA: HvCallXm_setTce failed, Rc: 0x%llx\n",
85 rc); 85 rc);
86 index++; 86 index++;
87 } 87 }
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index 6b0711c15eca..bd8817b00fa4 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -53,7 +53,7 @@
53#include <asm/pmac_low_i2c.h> 53#include <asm/pmac_low_i2c.h>
54#include <asm/pmac_pfunc.h> 54#include <asm/pmac_pfunc.h>
55 55
56#define DEBUG 56#undef DEBUG
57 57
58#ifdef DEBUG 58#ifdef DEBUG
59#define DBG(fmt...) udbg_printf(fmt) 59#define DBG(fmt...) udbg_printf(fmt)
diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c
index ca71a12b764c..bb028f165fb3 100644
--- a/arch/powerpc/platforms/ps3/device-init.c
+++ b/arch/powerpc/platforms/ps3/device-init.c
@@ -82,7 +82,7 @@ static int __init ps3_register_lpm_devices(void)
82 goto fail_rights; 82 goto fail_rights;
83 } 83 }
84 84
85 pr_debug("%s:%d: pu_id %lu, rights %lu(%lxh)\n", 85 pr_debug("%s:%d: pu_id %llu, rights %llu(%llxh)\n",
86 __func__, __LINE__, dev->lpm.pu_id, dev->lpm.rights, 86 __func__, __LINE__, dev->lpm.pu_id, dev->lpm.rights,
87 dev->lpm.rights); 87 dev->lpm.rights);
88 88
@@ -348,7 +348,7 @@ static int ps3_setup_storage_dev(const struct ps3_repository_device *repo,
348 return -ENODEV; 348 return -ENODEV;
349 } 349 }
350 350
351 pr_debug("%s:%u: (%u:%u:%u): port %lu blk_size %lu num_blocks %lu " 351 pr_debug("%s:%u: (%u:%u:%u): port %llu blk_size %llu num_blocks %llu "
352 "num_regions %u\n", __func__, __LINE__, repo->bus_index, 352 "num_regions %u\n", __func__, __LINE__, repo->bus_index,
353 repo->dev_index, repo->dev_type, port, blk_size, num_blocks, 353 repo->dev_index, repo->dev_type, port, blk_size, num_blocks,
354 num_regions); 354 num_regions);
@@ -394,7 +394,7 @@ static int ps3_setup_storage_dev(const struct ps3_repository_device *repo,
394 result = -ENODEV; 394 result = -ENODEV;
395 goto fail_read_region; 395 goto fail_read_region;
396 } 396 }
397 pr_debug("%s:%u: region %u: id %u start %lu size %lu\n", 397 pr_debug("%s:%u: region %u: id %u start %llu size %llu\n",
398 __func__, __LINE__, i, id, start, size); 398 __func__, __LINE__, i, id, start, size);
399 399
400 p->regions[i].id = id; 400 p->regions[i].id = id;
@@ -662,13 +662,13 @@ static void ps3_find_and_add_device(u64 bus_id, u64 dev_id)
662 if (rem) 662 if (rem)
663 break; 663 break;
664 } 664 }
665 pr_warning("%s:%u: device %lu:%lu not found\n", __func__, __LINE__, 665 pr_warning("%s:%u: device %llu:%llu not found\n", __func__, __LINE__,
666 bus_id, dev_id); 666 bus_id, dev_id);
667 return; 667 return;
668 668
669found: 669found:
670 if (retries) 670 if (retries)
671 pr_debug("%s:%u: device %lu:%lu found after %u retries\n", 671 pr_debug("%s:%u: device %llu:%llu found after %u retries\n",
672 __func__, __LINE__, bus_id, dev_id, retries); 672 __func__, __LINE__, bus_id, dev_id, retries);
673 673
674 ps3_setup_dynamic_device(&repo); 674 ps3_setup_dynamic_device(&repo);
@@ -715,14 +715,14 @@ static irqreturn_t ps3_notification_interrupt(int irq, void *data)
715 res = lv1_storage_get_async_status(PS3_NOTIFICATION_DEV_ID, &tag, 715 res = lv1_storage_get_async_status(PS3_NOTIFICATION_DEV_ID, &tag,
716 &status); 716 &status);
717 if (tag != dev->tag) 717 if (tag != dev->tag)
718 pr_err("%s:%u: tag mismatch, got %lx, expected %lx\n", 718 pr_err("%s:%u: tag mismatch, got %llx, expected %llx\n",
719 __func__, __LINE__, tag, dev->tag); 719 __func__, __LINE__, tag, dev->tag);
720 720
721 if (res) { 721 if (res) {
722 pr_err("%s:%u: res %d status 0x%lx\n", __func__, __LINE__, res, 722 pr_err("%s:%u: res %d status 0x%llx\n", __func__, __LINE__, res,
723 status); 723 status);
724 } else { 724 } else {
725 pr_debug("%s:%u: completed, status 0x%lx\n", __func__, 725 pr_debug("%s:%u: completed, status 0x%llx\n", __func__,
726 __LINE__, status); 726 __LINE__, status);
727 dev->lv1_status = status; 727 dev->lv1_status = status;
728 complete(&dev->done); 728 complete(&dev->done);
@@ -761,7 +761,7 @@ static int ps3_notification_read_write(struct ps3_notification_device *dev,
761 } 761 }
762 762
763 if (dev->lv1_status) { 763 if (dev->lv1_status) {
764 pr_err("%s:%u: %s not completed, status 0x%lx\n", __func__, 764 pr_err("%s:%u: %s not completed, status 0x%llx\n", __func__,
765 __LINE__, op, dev->lv1_status); 765 __LINE__, op, dev->lv1_status);
766 return -EIO; 766 return -EIO;
767 } 767 }
@@ -850,16 +850,16 @@ static int ps3_probe_thread(void *data)
850 if (res) 850 if (res)
851 break; 851 break;
852 852
853 pr_debug("%s:%u: notify event type 0x%lx bus id %lu dev id %lu" 853 pr_debug("%s:%u: notify event type 0x%llx bus id %llu dev id %llu"
854 " type %lu port %lu\n", __func__, __LINE__, 854 " type %llu port %llu\n", __func__, __LINE__,
855 notify_event->event_type, notify_event->bus_id, 855 notify_event->event_type, notify_event->bus_id,
856 notify_event->dev_id, notify_event->dev_type, 856 notify_event->dev_id, notify_event->dev_type,
857 notify_event->dev_port); 857 notify_event->dev_port);
858 858
859 if (notify_event->event_type != notify_region_probe || 859 if (notify_event->event_type != notify_region_probe ||
860 notify_event->bus_id != dev.sbd.bus_id) { 860 notify_event->bus_id != dev.sbd.bus_id) {
861 pr_warning("%s:%u: bad notify_event: event %lu, " 861 pr_warning("%s:%u: bad notify_event: event %llu, "
862 "dev_id %lu, dev_type %lu\n", 862 "dev_id %llu, dev_type %llu\n",
863 __func__, __LINE__, notify_event->event_type, 863 __func__, __LINE__, notify_event->event_type,
864 notify_event->dev_id, 864 notify_event->dev_id,
865 notify_event->dev_type); 865 notify_event->dev_type);
diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c
index 6eb1d4d182c9..1e8a1e39dfe8 100644
--- a/arch/powerpc/platforms/ps3/htab.c
+++ b/arch/powerpc/platforms/ps3/htab.c
@@ -75,7 +75,7 @@ static long ps3_hpte_insert(unsigned long hpte_group, unsigned long va,
75 75
76 if (result) { 76 if (result) {
77 /* all entries bolted !*/ 77 /* all entries bolted !*/
78 pr_info("%s:result=%d va=%lx pa=%lx ix=%lx v=%lx r=%lx\n", 78 pr_info("%s:result=%d va=%lx pa=%lx ix=%lx v=%llx r=%llx\n",
79 __func__, result, va, pa, hpte_group, hpte_v, hpte_r); 79 __func__, result, va, pa, hpte_group, hpte_v, hpte_r);
80 BUG(); 80 BUG();
81 } 81 }
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c
index e59634f7af96..8ec5ccf76b19 100644
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
@@ -60,6 +60,8 @@
60 * gives a usable range of plug values of {NUM_ISA_INTERRUPTS..63}. Note 60 * gives a usable range of plug values of {NUM_ISA_INTERRUPTS..63}. Note
61 * that there is no constraint on how many in this set an individual thread 61 * that there is no constraint on how many in this set an individual thread
62 * can acquire. 62 * can acquire.
63 *
64 * The mask is declared as unsigned long so we can use set/clear_bit on it.
63 */ 65 */
64 66
65#define PS3_BMP_MINALIGN 64 67#define PS3_BMP_MINALIGN 64
@@ -68,7 +70,7 @@ struct ps3_bmp {
68 struct { 70 struct {
69 u64 status; 71 u64 status;
70 u64 unused_1[3]; 72 u64 unused_1[3];
71 u64 mask; 73 unsigned long mask;
72 u64 unused_2[3]; 74 u64 unused_2[3];
73 }; 75 };
74 u64 ipi_debug_brk_mask; 76 u64 ipi_debug_brk_mask;
@@ -102,7 +104,7 @@ static void ps3_chip_mask(unsigned int virq)
102 struct ps3_private *pd = get_irq_chip_data(virq); 104 struct ps3_private *pd = get_irq_chip_data(virq);
103 unsigned long flags; 105 unsigned long flags;
104 106
105 pr_debug("%s:%d: thread_id %lu, virq %d\n", __func__, __LINE__, 107 pr_debug("%s:%d: thread_id %llu, virq %d\n", __func__, __LINE__,
106 pd->thread_id, virq); 108 pd->thread_id, virq);
107 109
108 local_irq_save(flags); 110 local_irq_save(flags);
@@ -123,7 +125,7 @@ static void ps3_chip_unmask(unsigned int virq)
123 struct ps3_private *pd = get_irq_chip_data(virq); 125 struct ps3_private *pd = get_irq_chip_data(virq);
124 unsigned long flags; 126 unsigned long flags;
125 127
126 pr_debug("%s:%d: thread_id %lu, virq %d\n", __func__, __LINE__, 128 pr_debug("%s:%d: thread_id %llu, virq %d\n", __func__, __LINE__,
127 pd->thread_id, virq); 129 pd->thread_id, virq);
128 130
129 local_irq_save(flags); 131 local_irq_save(flags);
@@ -221,7 +223,7 @@ static int ps3_virq_destroy(unsigned int virq)
221{ 223{
222 const struct ps3_private *pd = get_irq_chip_data(virq); 224 const struct ps3_private *pd = get_irq_chip_data(virq);
223 225
224 pr_debug("%s:%d: ppe_id %lu, thread_id %lu, virq %u\n", __func__, 226 pr_debug("%s:%d: ppe_id %llu, thread_id %llu, virq %u\n", __func__,
225 __LINE__, pd->ppe_id, pd->thread_id, virq); 227 __LINE__, pd->ppe_id, pd->thread_id, virq);
226 228
227 set_irq_chip_data(virq, NULL); 229 set_irq_chip_data(virq, NULL);
@@ -291,7 +293,7 @@ int ps3_irq_plug_destroy(unsigned int virq)
291 int result; 293 int result;
292 const struct ps3_private *pd = get_irq_chip_data(virq); 294 const struct ps3_private *pd = get_irq_chip_data(virq);
293 295
294 pr_debug("%s:%d: ppe_id %lu, thread_id %lu, virq %u\n", __func__, 296 pr_debug("%s:%d: ppe_id %llu, thread_id %llu, virq %u\n", __func__,
295 __LINE__, pd->ppe_id, pd->thread_id, virq); 297 __LINE__, pd->ppe_id, pd->thread_id, virq);
296 298
297 ps3_chip_mask(virq); 299 ps3_chip_mask(virq);
@@ -322,7 +324,7 @@ EXPORT_SYMBOL_GPL(ps3_irq_plug_destroy);
322int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq) 324int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq)
323{ 325{
324 int result; 326 int result;
325 unsigned long outlet; 327 u64 outlet;
326 328
327 result = lv1_construct_event_receive_port(&outlet); 329 result = lv1_construct_event_receive_port(&outlet);
328 330
@@ -468,7 +470,7 @@ int ps3_io_irq_setup(enum ps3_cpu_binding cpu, unsigned int interrupt_id,
468 unsigned int *virq) 470 unsigned int *virq)
469{ 471{
470 int result; 472 int result;
471 unsigned long outlet; 473 u64 outlet;
472 474
473 result = lv1_construct_io_irq_outlet(interrupt_id, &outlet); 475 result = lv1_construct_io_irq_outlet(interrupt_id, &outlet);
474 476
@@ -525,7 +527,7 @@ int ps3_vuart_irq_setup(enum ps3_cpu_binding cpu, void* virt_addr_bmp,
525 unsigned int *virq) 527 unsigned int *virq)
526{ 528{
527 int result; 529 int result;
528 unsigned long outlet; 530 u64 outlet;
529 u64 lpar_addr; 531 u64 lpar_addr;
530 532
531 BUG_ON(!is_kernel_addr((u64)virt_addr_bmp)); 533 BUG_ON(!is_kernel_addr((u64)virt_addr_bmp));
@@ -581,7 +583,7 @@ int ps3_spe_irq_setup(enum ps3_cpu_binding cpu, unsigned long spe_id,
581 unsigned int class, unsigned int *virq) 583 unsigned int class, unsigned int *virq)
582{ 584{
583 int result; 585 int result;
584 unsigned long outlet; 586 u64 outlet;
585 587
586 BUG_ON(class > 2); 588 BUG_ON(class > 2);
587 589
@@ -691,7 +693,7 @@ void __init ps3_register_ipi_debug_brk(unsigned int cpu, unsigned int virq)
691 693
692 pd->bmp.ipi_debug_brk_mask = 0x8000000000000000UL >> virq; 694 pd->bmp.ipi_debug_brk_mask = 0x8000000000000000UL >> virq;
693 695
694 pr_debug("%s:%d: cpu %u, virq %u, mask %lxh\n", __func__, __LINE__, 696 pr_debug("%s:%d: cpu %u, virq %u, mask %llxh\n", __func__, __LINE__,
695 cpu, virq, pd->bmp.ipi_debug_brk_mask); 697 cpu, virq, pd->bmp.ipi_debug_brk_mask);
696} 698}
697 699
@@ -710,7 +712,7 @@ static unsigned int ps3_get_irq(void)
710 plug &= 0x3f; 712 plug &= 0x3f;
711 713
712 if (unlikely(plug == NO_IRQ)) { 714 if (unlikely(plug == NO_IRQ)) {
713 pr_debug("%s:%d: no plug found: thread_id %lu\n", __func__, 715 pr_debug("%s:%d: no plug found: thread_id %llu\n", __func__,
714 __LINE__, pd->thread_id); 716 __LINE__, pd->thread_id);
715 dump_bmp(&per_cpu(ps3_private, 0)); 717 dump_bmp(&per_cpu(ps3_private, 0));
716 dump_bmp(&per_cpu(ps3_private, 1)); 718 dump_bmp(&per_cpu(ps3_private, 1));
@@ -745,7 +747,7 @@ void __init ps3_init_IRQ(void)
745 pd->thread_id = get_hard_smp_processor_id(cpu); 747 pd->thread_id = get_hard_smp_processor_id(cpu);
746 spin_lock_init(&pd->bmp.lock); 748 spin_lock_init(&pd->bmp.lock);
747 749
748 pr_debug("%s:%d: ppe_id %lu, thread_id %lu, bmp %lxh\n", 750 pr_debug("%s:%d: ppe_id %llu, thread_id %llu, bmp %lxh\n",
749 __func__, __LINE__, pd->ppe_id, pd->thread_id, 751 __func__, __LINE__, pd->ppe_id, pd->thread_id,
750 ps3_mm_phys_to_lpar(__pa(&pd->bmp))); 752 ps3_mm_phys_to_lpar(__pa(&pd->bmp)));
751 753
@@ -770,6 +772,6 @@ void ps3_shutdown_IRQ(int cpu)
770 lv1_get_logical_ppe_id(&ppe_id); 772 lv1_get_logical_ppe_id(&ppe_id);
771 result = lv1_configure_irq_state_bitmap(ppe_id, thread_id, 0); 773 result = lv1_configure_irq_state_bitmap(ppe_id, thread_id, 0);
772 774
773 DBG("%s:%d: lv1_configure_irq_state_bitmap (%lu:%lu/%d) %s\n", __func__, 775 DBG("%s:%d: lv1_configure_irq_state_bitmap (%llu:%llu/%d) %s\n", __func__,
774 __LINE__, ppe_id, thread_id, cpu, ps3_result(result)); 776 __LINE__, ppe_id, thread_id, cpu, ps3_result(result));
775} 777}
diff --git a/arch/powerpc/platforms/ps3/mm.c b/arch/powerpc/platforms/ps3/mm.c
index a4d49dd9e8a9..d281cc0bca71 100644
--- a/arch/powerpc/platforms/ps3/mm.c
+++ b/arch/powerpc/platforms/ps3/mm.c
@@ -79,8 +79,8 @@ enum {
79 */ 79 */
80 80
81struct mem_region { 81struct mem_region {
82 unsigned long base; 82 u64 base;
83 unsigned long size; 83 u64 size;
84 unsigned long offset; 84 unsigned long offset;
85}; 85};
86 86
@@ -103,9 +103,9 @@ struct mem_region {
103 */ 103 */
104 104
105struct map { 105struct map {
106 unsigned long total; 106 u64 total;
107 unsigned long vas_id; 107 u64 vas_id;
108 unsigned long htab_size; 108 u64 htab_size;
109 struct mem_region rm; 109 struct mem_region rm;
110 struct mem_region r1; 110 struct mem_region r1;
111}; 111};
@@ -114,13 +114,13 @@ struct map {
114static void __maybe_unused _debug_dump_map(const struct map *m, 114static void __maybe_unused _debug_dump_map(const struct map *m,
115 const char *func, int line) 115 const char *func, int line)
116{ 116{
117 DBG("%s:%d: map.total = %lxh\n", func, line, m->total); 117 DBG("%s:%d: map.total = %llxh\n", func, line, m->total);
118 DBG("%s:%d: map.rm.size = %lxh\n", func, line, m->rm.size); 118 DBG("%s:%d: map.rm.size = %llxh\n", func, line, m->rm.size);
119 DBG("%s:%d: map.vas_id = %lu\n", func, line, m->vas_id); 119 DBG("%s:%d: map.vas_id = %llu\n", func, line, m->vas_id);
120 DBG("%s:%d: map.htab_size = %lxh\n", func, line, m->htab_size); 120 DBG("%s:%d: map.htab_size = %llxh\n", func, line, m->htab_size);
121 DBG("%s:%d: map.r1.base = %lxh\n", func, line, m->r1.base); 121 DBG("%s:%d: map.r1.base = %llxh\n", func, line, m->r1.base);
122 DBG("%s:%d: map.r1.offset = %lxh\n", func, line, m->r1.offset); 122 DBG("%s:%d: map.r1.offset = %lxh\n", func, line, m->r1.offset);
123 DBG("%s:%d: map.r1.size = %lxh\n", func, line, m->r1.size); 123 DBG("%s:%d: map.r1.size = %llxh\n", func, line, m->r1.size);
124} 124}
125 125
126static struct map map; 126static struct map map;
@@ -146,11 +146,11 @@ EXPORT_SYMBOL(ps3_mm_phys_to_lpar);
146void __init ps3_mm_vas_create(unsigned long* htab_size) 146void __init ps3_mm_vas_create(unsigned long* htab_size)
147{ 147{
148 int result; 148 int result;
149 unsigned long start_address; 149 u64 start_address;
150 unsigned long size; 150 u64 size;
151 unsigned long access_right; 151 u64 access_right;
152 unsigned long max_page_size; 152 u64 max_page_size;
153 unsigned long flags; 153 u64 flags;
154 154
155 result = lv1_query_logical_partition_address_region_info(0, 155 result = lv1_query_logical_partition_address_region_info(0,
156 &start_address, &size, &access_right, &max_page_size, 156 &start_address, &size, &access_right, &max_page_size,
@@ -164,7 +164,7 @@ void __init ps3_mm_vas_create(unsigned long* htab_size)
164 } 164 }
165 165
166 if (max_page_size < PAGE_SHIFT_16M) { 166 if (max_page_size < PAGE_SHIFT_16M) {
167 DBG("%s:%d: bad max_page_size %lxh\n", __func__, __LINE__, 167 DBG("%s:%d: bad max_page_size %llxh\n", __func__, __LINE__,
168 max_page_size); 168 max_page_size);
169 goto fail; 169 goto fail;
170 } 170 }
@@ -208,7 +208,7 @@ void ps3_mm_vas_destroy(void)
208{ 208{
209 int result; 209 int result;
210 210
211 DBG("%s:%d: map.vas_id = %lu\n", __func__, __LINE__, map.vas_id); 211 DBG("%s:%d: map.vas_id = %llu\n", __func__, __LINE__, map.vas_id);
212 212
213 if (map.vas_id) { 213 if (map.vas_id) {
214 result = lv1_select_virtual_address_space(0); 214 result = lv1_select_virtual_address_space(0);
@@ -235,15 +235,14 @@ void ps3_mm_vas_destroy(void)
235static int ps3_mm_region_create(struct mem_region *r, unsigned long size) 235static int ps3_mm_region_create(struct mem_region *r, unsigned long size)
236{ 236{
237 int result; 237 int result;
238 unsigned long muid; 238 u64 muid;
239 239
240 r->size = _ALIGN_DOWN(size, 1 << PAGE_SHIFT_16M); 240 r->size = _ALIGN_DOWN(size, 1 << PAGE_SHIFT_16M);
241 241
242 DBG("%s:%d requested %lxh\n", __func__, __LINE__, size); 242 DBG("%s:%d requested %lxh\n", __func__, __LINE__, size);
243 DBG("%s:%d actual %lxh\n", __func__, __LINE__, r->size); 243 DBG("%s:%d actual %llxh\n", __func__, __LINE__, r->size);
244 DBG("%s:%d difference %lxh (%luMB)\n", __func__, __LINE__, 244 DBG("%s:%d difference %llxh (%lluMB)\n", __func__, __LINE__,
245 (unsigned long)(size - r->size), 245 size - r->size, (size - r->size) / 1024 / 1024);
246 (size - r->size) / 1024 / 1024);
247 246
248 if (r->size == 0) { 247 if (r->size == 0) {
249 DBG("%s:%d: size == 0\n", __func__, __LINE__); 248 DBG("%s:%d: size == 0\n", __func__, __LINE__);
@@ -277,7 +276,7 @@ static void ps3_mm_region_destroy(struct mem_region *r)
277{ 276{
278 int result; 277 int result;
279 278
280 DBG("%s:%d: r->base = %lxh\n", __func__, __LINE__, r->base); 279 DBG("%s:%d: r->base = %llxh\n", __func__, __LINE__, r->base);
281 if (r->base) { 280 if (r->base) {
282 result = lv1_release_memory(r->base); 281 result = lv1_release_memory(r->base);
283 BUG_ON(result); 282 BUG_ON(result);
@@ -329,7 +328,7 @@ static int __init ps3_mm_add_memory(void)
329 return result; 328 return result;
330} 329}
331 330
332core_initcall(ps3_mm_add_memory); 331device_initcall(ps3_mm_add_memory);
333 332
334/*============================================================================*/ 333/*============================================================================*/
335/* dma routines */ 334/* dma routines */
@@ -355,7 +354,7 @@ static unsigned long dma_sb_lpar_to_bus(struct ps3_dma_region *r,
355static void __maybe_unused _dma_dump_region(const struct ps3_dma_region *r, 354static void __maybe_unused _dma_dump_region(const struct ps3_dma_region *r,
356 const char *func, int line) 355 const char *func, int line)
357{ 356{
358 DBG("%s:%d: dev %lu:%lu\n", func, line, r->dev->bus_id, 357 DBG("%s:%d: dev %llu:%llu\n", func, line, r->dev->bus_id,
359 r->dev->dev_id); 358 r->dev->dev_id);
360 DBG("%s:%d: page_size %u\n", func, line, r->page_size); 359 DBG("%s:%d: page_size %u\n", func, line, r->page_size);
361 DBG("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr); 360 DBG("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr);
@@ -390,7 +389,7 @@ struct dma_chunk {
390static void _dma_dump_chunk (const struct dma_chunk* c, const char* func, 389static void _dma_dump_chunk (const struct dma_chunk* c, const char* func,
391 int line) 390 int line)
392{ 391{
393 DBG("%s:%d: r.dev %lu:%lu\n", func, line, 392 DBG("%s:%d: r.dev %llu:%llu\n", func, line,
394 c->region->dev->bus_id, c->region->dev->dev_id); 393 c->region->dev->bus_id, c->region->dev->dev_id);
395 DBG("%s:%d: r.bus_addr %lxh\n", func, line, c->region->bus_addr); 394 DBG("%s:%d: r.bus_addr %lxh\n", func, line, c->region->bus_addr);
396 DBG("%s:%d: r.page_size %u\n", func, line, c->region->page_size); 395 DBG("%s:%d: r.page_size %u\n", func, line, c->region->page_size);
@@ -596,7 +595,7 @@ static int dma_ioc0_map_pages(struct ps3_dma_region *r, unsigned long phys_addr,
596 595
597 /* build ioptes for the area */ 596 /* build ioptes for the area */
598 pages = len >> r->page_size; 597 pages = len >> r->page_size;
599 DBG("%s: pgsize=%#x len=%#lx pages=%#x iopteflag=%#lx\n", __func__, 598 DBG("%s: pgsize=%#x len=%#lx pages=%#x iopteflag=%#llx\n", __func__,
600 r->page_size, r->len, pages, iopte_flag); 599 r->page_size, r->len, pages, iopte_flag);
601 for (iopage = 0; iopage < pages; iopage++) { 600 for (iopage = 0; iopage < pages; iopage++) {
602 offset = (1 << r->page_size) * iopage; 601 offset = (1 << r->page_size) * iopage;
@@ -648,13 +647,14 @@ fail_alloc:
648static int dma_sb_region_create(struct ps3_dma_region *r) 647static int dma_sb_region_create(struct ps3_dma_region *r)
649{ 648{
650 int result; 649 int result;
650 u64 bus_addr;
651 651
652 DBG(" -> %s:%d:\n", __func__, __LINE__); 652 DBG(" -> %s:%d:\n", __func__, __LINE__);
653 653
654 BUG_ON(!r); 654 BUG_ON(!r);
655 655
656 if (!r->dev->bus_id) { 656 if (!r->dev->bus_id) {
657 pr_info("%s:%d: %lu:%lu no dma\n", __func__, __LINE__, 657 pr_info("%s:%d: %llu:%llu no dma\n", __func__, __LINE__,
658 r->dev->bus_id, r->dev->dev_id); 658 r->dev->bus_id, r->dev->dev_id);
659 return 0; 659 return 0;
660 } 660 }
@@ -671,7 +671,8 @@ static int dma_sb_region_create(struct ps3_dma_region *r)
671 671
672 result = lv1_allocate_device_dma_region(r->dev->bus_id, r->dev->dev_id, 672 result = lv1_allocate_device_dma_region(r->dev->bus_id, r->dev->dev_id,
673 roundup_pow_of_two(r->len), r->page_size, r->region_type, 673 roundup_pow_of_two(r->len), r->page_size, r->region_type,
674 &r->bus_addr); 674 &bus_addr);
675 r->bus_addr = bus_addr;
675 676
676 if (result) { 677 if (result) {
677 DBG("%s:%d: lv1_allocate_device_dma_region failed: %s\n", 678 DBG("%s:%d: lv1_allocate_device_dma_region failed: %s\n",
@@ -685,6 +686,7 @@ static int dma_sb_region_create(struct ps3_dma_region *r)
685static int dma_ioc0_region_create(struct ps3_dma_region *r) 686static int dma_ioc0_region_create(struct ps3_dma_region *r)
686{ 687{
687 int result; 688 int result;
689 u64 bus_addr;
688 690
689 INIT_LIST_HEAD(&r->chunk_list.head); 691 INIT_LIST_HEAD(&r->chunk_list.head);
690 spin_lock_init(&r->chunk_list.lock); 692 spin_lock_init(&r->chunk_list.lock);
@@ -692,7 +694,8 @@ static int dma_ioc0_region_create(struct ps3_dma_region *r)
692 result = lv1_allocate_io_segment(0, 694 result = lv1_allocate_io_segment(0,
693 r->len, 695 r->len,
694 r->page_size, 696 r->page_size,
695 &r->bus_addr); 697 &bus_addr);
698 r->bus_addr = bus_addr;
696 if (result) { 699 if (result) {
697 DBG("%s:%d: lv1_allocate_io_segment failed: %s\n", 700 DBG("%s:%d: lv1_allocate_io_segment failed: %s\n",
698 __func__, __LINE__, ps3_result(result)); 701 __func__, __LINE__, ps3_result(result));
@@ -720,7 +723,7 @@ static int dma_sb_region_free(struct ps3_dma_region *r)
720 BUG_ON(!r); 723 BUG_ON(!r);
721 724
722 if (!r->dev->bus_id) { 725 if (!r->dev->bus_id) {
723 pr_info("%s:%d: %lu:%lu no dma\n", __func__, __LINE__, 726 pr_info("%s:%d: %llu:%llu no dma\n", __func__, __LINE__,
724 r->dev->bus_id, r->dev->dev_id); 727 r->dev->bus_id, r->dev->dev_id);
725 return 0; 728 return 0;
726 } 729 }
@@ -777,7 +780,7 @@ static int dma_ioc0_region_free(struct ps3_dma_region *r)
777 */ 780 */
778 781
779static int dma_sb_map_area(struct ps3_dma_region *r, unsigned long virt_addr, 782static int dma_sb_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
780 unsigned long len, unsigned long *bus_addr, 783 unsigned long len, dma_addr_t *bus_addr,
781 u64 iopte_flag) 784 u64 iopte_flag)
782{ 785{
783 int result; 786 int result;
@@ -800,7 +803,7 @@ static int dma_sb_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
800 DBG("%s:%d lpar_addr %lxh\n", __func__, __LINE__, 803 DBG("%s:%d lpar_addr %lxh\n", __func__, __LINE__,
801 lpar_addr); 804 lpar_addr);
802 DBG("%s:%d len %lxh\n", __func__, __LINE__, len); 805 DBG("%s:%d len %lxh\n", __func__, __LINE__, len);
803 DBG("%s:%d bus_addr %lxh (%lxh)\n", __func__, __LINE__, 806 DBG("%s:%d bus_addr %llxh (%lxh)\n", __func__, __LINE__,
804 *bus_addr, len); 807 *bus_addr, len);
805 } 808 }
806 809
@@ -832,7 +835,7 @@ static int dma_sb_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
832} 835}
833 836
834static int dma_ioc0_map_area(struct ps3_dma_region *r, unsigned long virt_addr, 837static int dma_ioc0_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
835 unsigned long len, unsigned long *bus_addr, 838 unsigned long len, dma_addr_t *bus_addr,
836 u64 iopte_flag) 839 u64 iopte_flag)
837{ 840{
838 int result; 841 int result;
@@ -872,7 +875,7 @@ static int dma_ioc0_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
872 return result; 875 return result;
873 } 876 }
874 *bus_addr = c->bus_addr + phys_addr - aligned_phys; 877 *bus_addr = c->bus_addr + phys_addr - aligned_phys;
875 DBG("%s: va=%#lx pa=%#lx a_pa=%#lx bus=%#lx\n", __func__, 878 DBG("%s: va=%#lx pa=%#lx a_pa=%#lx bus=%#llx\n", __func__,
876 virt_addr, phys_addr, aligned_phys, *bus_addr); 879 virt_addr, phys_addr, aligned_phys, *bus_addr);
877 c->usage_count = 1; 880 c->usage_count = 1;
878 881
@@ -889,7 +892,7 @@ static int dma_ioc0_map_area(struct ps3_dma_region *r, unsigned long virt_addr,
889 * This is the common dma unmap routine. 892 * This is the common dma unmap routine.
890 */ 893 */
891 894
892static int dma_sb_unmap_area(struct ps3_dma_region *r, unsigned long bus_addr, 895static int dma_sb_unmap_area(struct ps3_dma_region *r, dma_addr_t bus_addr,
893 unsigned long len) 896 unsigned long len)
894{ 897{
895 unsigned long flags; 898 unsigned long flags;
@@ -903,7 +906,7 @@ static int dma_sb_unmap_area(struct ps3_dma_region *r, unsigned long bus_addr,
903 1 << r->page_size); 906 1 << r->page_size);
904 unsigned long aligned_len = _ALIGN_UP(len + bus_addr 907 unsigned long aligned_len = _ALIGN_UP(len + bus_addr
905 - aligned_bus, 1 << r->page_size); 908 - aligned_bus, 1 << r->page_size);
906 DBG("%s:%d: not found: bus_addr %lxh\n", 909 DBG("%s:%d: not found: bus_addr %llxh\n",
907 __func__, __LINE__, bus_addr); 910 __func__, __LINE__, bus_addr);
908 DBG("%s:%d: not found: len %lxh\n", 911 DBG("%s:%d: not found: len %lxh\n",
909 __func__, __LINE__, len); 912 __func__, __LINE__, len);
@@ -926,12 +929,12 @@ static int dma_sb_unmap_area(struct ps3_dma_region *r, unsigned long bus_addr,
926} 929}
927 930
928static int dma_ioc0_unmap_area(struct ps3_dma_region *r, 931static int dma_ioc0_unmap_area(struct ps3_dma_region *r,
929 unsigned long bus_addr, unsigned long len) 932 dma_addr_t bus_addr, unsigned long len)
930{ 933{
931 unsigned long flags; 934 unsigned long flags;
932 struct dma_chunk *c; 935 struct dma_chunk *c;
933 936
934 DBG("%s: start a=%#lx l=%#lx\n", __func__, bus_addr, len); 937 DBG("%s: start a=%#llx l=%#lx\n", __func__, bus_addr, len);
935 spin_lock_irqsave(&r->chunk_list.lock, flags); 938 spin_lock_irqsave(&r->chunk_list.lock, flags);
936 c = dma_find_chunk(r, bus_addr, len); 939 c = dma_find_chunk(r, bus_addr, len);
937 940
@@ -941,7 +944,7 @@ static int dma_ioc0_unmap_area(struct ps3_dma_region *r,
941 unsigned long aligned_len = _ALIGN_UP(len + bus_addr 944 unsigned long aligned_len = _ALIGN_UP(len + bus_addr
942 - aligned_bus, 945 - aligned_bus,
943 1 << r->page_size); 946 1 << r->page_size);
944 DBG("%s:%d: not found: bus_addr %lxh\n", 947 DBG("%s:%d: not found: bus_addr %llxh\n",
945 __func__, __LINE__, bus_addr); 948 __func__, __LINE__, bus_addr);
946 DBG("%s:%d: not found: len %lxh\n", 949 DBG("%s:%d: not found: len %lxh\n",
947 __func__, __LINE__, len); 950 __func__, __LINE__, len);
@@ -975,7 +978,8 @@ static int dma_ioc0_unmap_area(struct ps3_dma_region *r,
975static int dma_sb_region_create_linear(struct ps3_dma_region *r) 978static int dma_sb_region_create_linear(struct ps3_dma_region *r)
976{ 979{
977 int result; 980 int result;
978 unsigned long virt_addr, len, tmp; 981 unsigned long virt_addr, len;
982 dma_addr_t tmp;
979 983
980 if (r->len > 16*1024*1024) { /* FIXME: need proper fix */ 984 if (r->len > 16*1024*1024) { /* FIXME: need proper fix */
981 /* force 16M dma pages for linear mapping */ 985 /* force 16M dma pages for linear mapping */
@@ -1027,7 +1031,8 @@ static int dma_sb_region_create_linear(struct ps3_dma_region *r)
1027static int dma_sb_region_free_linear(struct ps3_dma_region *r) 1031static int dma_sb_region_free_linear(struct ps3_dma_region *r)
1028{ 1032{
1029 int result; 1033 int result;
1030 unsigned long bus_addr, len, lpar_addr; 1034 dma_addr_t bus_addr;
1035 unsigned long len, lpar_addr;
1031 1036
1032 if (r->offset < map.rm.size) { 1037 if (r->offset < map.rm.size) {
1033 /* Unmap (part of) 1st RAM chunk */ 1038 /* Unmap (part of) 1st RAM chunk */
@@ -1072,7 +1077,7 @@ static int dma_sb_region_free_linear(struct ps3_dma_region *r)
1072 */ 1077 */
1073 1078
1074static int dma_sb_map_area_linear(struct ps3_dma_region *r, 1079static int dma_sb_map_area_linear(struct ps3_dma_region *r,
1075 unsigned long virt_addr, unsigned long len, unsigned long *bus_addr, 1080 unsigned long virt_addr, unsigned long len, dma_addr_t *bus_addr,
1076 u64 iopte_flag) 1081 u64 iopte_flag)
1077{ 1082{
1078 unsigned long phys_addr = is_kernel_addr(virt_addr) ? __pa(virt_addr) 1083 unsigned long phys_addr = is_kernel_addr(virt_addr) ? __pa(virt_addr)
@@ -1091,7 +1096,7 @@ static int dma_sb_map_area_linear(struct ps3_dma_region *r,
1091 */ 1096 */
1092 1097
1093static int dma_sb_unmap_area_linear(struct ps3_dma_region *r, 1098static int dma_sb_unmap_area_linear(struct ps3_dma_region *r,
1094 unsigned long bus_addr, unsigned long len) 1099 dma_addr_t bus_addr, unsigned long len)
1095{ 1100{
1096 return 0; 1101 return 0;
1097}; 1102};
@@ -1169,13 +1174,13 @@ int ps3_dma_region_free(struct ps3_dma_region *r)
1169EXPORT_SYMBOL(ps3_dma_region_free); 1174EXPORT_SYMBOL(ps3_dma_region_free);
1170 1175
1171int ps3_dma_map(struct ps3_dma_region *r, unsigned long virt_addr, 1176int ps3_dma_map(struct ps3_dma_region *r, unsigned long virt_addr,
1172 unsigned long len, unsigned long *bus_addr, 1177 unsigned long len, dma_addr_t *bus_addr,
1173 u64 iopte_flag) 1178 u64 iopte_flag)
1174{ 1179{
1175 return r->region_ops->map(r, virt_addr, len, bus_addr, iopte_flag); 1180 return r->region_ops->map(r, virt_addr, len, bus_addr, iopte_flag);
1176} 1181}
1177 1182
1178int ps3_dma_unmap(struct ps3_dma_region *r, unsigned long bus_addr, 1183int ps3_dma_unmap(struct ps3_dma_region *r, dma_addr_t bus_addr,
1179 unsigned long len) 1184 unsigned long len)
1180{ 1185{
1181 return r->region_ops->unmap(r, bus_addr, len); 1186 return r->region_ops->unmap(r, bus_addr, len);
diff --git a/arch/powerpc/platforms/ps3/os-area.c b/arch/powerpc/platforms/ps3/os-area.c
index 1d201782d4e5..e1c83c23b435 100644
--- a/arch/powerpc/platforms/ps3/os-area.c
+++ b/arch/powerpc/platforms/ps3/os-area.c
@@ -306,7 +306,7 @@ static void _dump_params(const struct os_area_params *p, const char *func,
306{ 306{
307 pr_debug("%s:%d: p.boot_flag: %u\n", func, line, p->boot_flag); 307 pr_debug("%s:%d: p.boot_flag: %u\n", func, line, p->boot_flag);
308 pr_debug("%s:%d: p.num_params: %u\n", func, line, p->num_params); 308 pr_debug("%s:%d: p.num_params: %u\n", func, line, p->num_params);
309 pr_debug("%s:%d: p.rtc_diff %ld\n", func, line, p->rtc_diff); 309 pr_debug("%s:%d: p.rtc_diff %lld\n", func, line, p->rtc_diff);
310 pr_debug("%s:%d: p.av_multi_out %u\n", func, line, p->av_multi_out); 310 pr_debug("%s:%d: p.av_multi_out %u\n", func, line, p->av_multi_out);
311 pr_debug("%s:%d: p.ctrl_button: %u\n", func, line, p->ctrl_button); 311 pr_debug("%s:%d: p.ctrl_button: %u\n", func, line, p->ctrl_button);
312 pr_debug("%s:%d: p.static_ip_addr: %u.%u.%u.%u\n", func, line, 312 pr_debug("%s:%d: p.static_ip_addr: %u.%u.%u.%u\n", func, line,
diff --git a/arch/powerpc/platforms/ps3/repository.c b/arch/powerpc/platforms/ps3/repository.c
index 22063adeb38b..5e304c292f68 100644
--- a/arch/powerpc/platforms/ps3/repository.c
+++ b/arch/powerpc/platforms/ps3/repository.c
@@ -44,7 +44,7 @@ static void _dump_field(const char *hdr, u64 n, const char *func, int line)
44 s[i] = (in[i] <= 126 && in[i] >= 32) ? in[i] : '.'; 44 s[i] = (in[i] <= 126 && in[i] >= 32) ? in[i] : '.';
45 s[i] = 0; 45 s[i] = 0;
46 46
47 pr_debug("%s:%d: %s%016lx : %s\n", func, line, hdr, n, s); 47 pr_debug("%s:%d: %s%016llx : %s\n", func, line, hdr, n, s);
48#endif 48#endif
49} 49}
50 50
@@ -70,8 +70,8 @@ static void _dump_node(unsigned int lpar_id, u64 n1, u64 n2, u64 n3, u64 n4,
70 _dump_field("n2: ", n2, func, line); 70 _dump_field("n2: ", n2, func, line);
71 _dump_field("n3: ", n3, func, line); 71 _dump_field("n3: ", n3, func, line);
72 _dump_field("n4: ", n4, func, line); 72 _dump_field("n4: ", n4, func, line);
73 pr_debug("%s:%d: v1: %016lx\n", func, line, v1); 73 pr_debug("%s:%d: v1: %016llx\n", func, line, v1);
74 pr_debug("%s:%d: v2: %016lx\n", func, line, v2); 74 pr_debug("%s:%d: v2: %016llx\n", func, line, v2);
75} 75}
76 76
77/** 77/**
@@ -149,10 +149,10 @@ static int read_node(unsigned int lpar_id, u64 n1, u64 n2, u64 n3, u64 n4,
149 *_v2 = v2; 149 *_v2 = v2;
150 150
151 if (v1 && !_v1) 151 if (v1 && !_v1)
152 pr_debug("%s:%d: warning: discarding non-zero v1: %016lx\n", 152 pr_debug("%s:%d: warning: discarding non-zero v1: %016llx\n",
153 __func__, __LINE__, v1); 153 __func__, __LINE__, v1);
154 if (v2 && !_v2) 154 if (v2 && !_v2)
155 pr_debug("%s:%d: warning: discarding non-zero v2: %016lx\n", 155 pr_debug("%s:%d: warning: discarding non-zero v2: %016llx\n",
156 __func__, __LINE__, v2); 156 __func__, __LINE__, v2);
157 157
158 return 0; 158 return 0;
@@ -327,7 +327,7 @@ int ps3_repository_find_device(struct ps3_repository_device *repo)
327 return result; 327 return result;
328 } 328 }
329 329
330 pr_debug("%s:%d: bus_type %u, bus_index %u, bus_id %lu, num_dev %u\n", 330 pr_debug("%s:%d: bus_type %u, bus_index %u, bus_id %llu, num_dev %u\n",
331 __func__, __LINE__, tmp.bus_type, tmp.bus_index, tmp.bus_id, 331 __func__, __LINE__, tmp.bus_type, tmp.bus_index, tmp.bus_id,
332 num_dev); 332 num_dev);
333 333
@@ -353,7 +353,7 @@ int ps3_repository_find_device(struct ps3_repository_device *repo)
353 return result; 353 return result;
354 } 354 }
355 355
356 pr_debug("%s:%d: found: dev_type %u, dev_index %u, dev_id %lu\n", 356 pr_debug("%s:%d: found: dev_type %u, dev_index %u, dev_id %llu\n",
357 __func__, __LINE__, tmp.dev_type, tmp.dev_index, tmp.dev_id); 357 __func__, __LINE__, tmp.dev_type, tmp.dev_index, tmp.dev_id);
358 358
359 *repo = tmp; 359 *repo = tmp;
@@ -367,7 +367,7 @@ int ps3_repository_find_device_by_id(struct ps3_repository_device *repo,
367 struct ps3_repository_device tmp; 367 struct ps3_repository_device tmp;
368 unsigned int num_dev; 368 unsigned int num_dev;
369 369
370 pr_debug(" -> %s:%u: find device by id %lu:%lu\n", __func__, __LINE__, 370 pr_debug(" -> %s:%u: find device by id %llu:%llu\n", __func__, __LINE__,
371 bus_id, dev_id); 371 bus_id, dev_id);
372 372
373 for (tmp.bus_index = 0; tmp.bus_index < 10; tmp.bus_index++) { 373 for (tmp.bus_index = 0; tmp.bus_index < 10; tmp.bus_index++) {
@@ -382,7 +382,7 @@ int ps3_repository_find_device_by_id(struct ps3_repository_device *repo,
382 if (tmp.bus_id == bus_id) 382 if (tmp.bus_id == bus_id)
383 goto found_bus; 383 goto found_bus;
384 384
385 pr_debug("%s:%u: skip, bus_id %lu\n", __func__, __LINE__, 385 pr_debug("%s:%u: skip, bus_id %llu\n", __func__, __LINE__,
386 tmp.bus_id); 386 tmp.bus_id);
387 } 387 }
388 pr_debug(" <- %s:%u: bus not found\n", __func__, __LINE__); 388 pr_debug(" <- %s:%u: bus not found\n", __func__, __LINE__);
@@ -416,7 +416,7 @@ found_bus:
416 if (tmp.dev_id == dev_id) 416 if (tmp.dev_id == dev_id)
417 goto found_dev; 417 goto found_dev;
418 418
419 pr_debug("%s:%u: skip, dev_id %lu\n", __func__, __LINE__, 419 pr_debug("%s:%u: skip, dev_id %llu\n", __func__, __LINE__,
420 tmp.dev_id); 420 tmp.dev_id);
421 } 421 }
422 pr_debug(" <- %s:%u: dev not found\n", __func__, __LINE__); 422 pr_debug(" <- %s:%u: dev not found\n", __func__, __LINE__);
@@ -430,7 +430,7 @@ found_dev:
430 return result; 430 return result;
431 } 431 }
432 432
433 pr_debug(" <- %s:%u: found: type (%u:%u) index (%u:%u) id (%lu:%lu)\n", 433 pr_debug(" <- %s:%u: found: type (%u:%u) index (%u:%u) id (%llu:%llu)\n",
434 __func__, __LINE__, tmp.bus_type, tmp.dev_type, tmp.bus_index, 434 __func__, __LINE__, tmp.bus_type, tmp.dev_type, tmp.bus_index,
435 tmp.dev_index, tmp.bus_id, tmp.dev_id); 435 tmp.dev_index, tmp.bus_id, tmp.dev_id);
436 *repo = tmp; 436 *repo = tmp;
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c
index 35f3e85cf60e..3331ccbb8d38 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -186,7 +186,7 @@ early_param("ps3flash", early_parse_ps3flash);
186#define prealloc_ps3flash_bounce_buffer() do { } while (0) 186#define prealloc_ps3flash_bounce_buffer() do { } while (0)
187#endif 187#endif
188 188
189static int ps3_set_dabr(u64 dabr) 189static int ps3_set_dabr(unsigned long dabr)
190{ 190{
191 enum {DABR_USER = 1, DABR_KERNEL = 2,}; 191 enum {DABR_USER = 1, DABR_KERNEL = 2,};
192 192
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c
index ccae3d446b98..b3c6a993f9f3 100644
--- a/arch/powerpc/platforms/ps3/spu.c
+++ b/arch/powerpc/platforms/ps3/spu.c
@@ -149,7 +149,7 @@ EXPORT_SYMBOL_GPL(ps3_get_spe_id);
149 149
150static unsigned long get_vas_id(void) 150static unsigned long get_vas_id(void)
151{ 151{
152 unsigned long id; 152 u64 id;
153 153
154 lv1_get_logical_ppe_id(&id); 154 lv1_get_logical_ppe_id(&id);
155 lv1_get_virtual_address_space_id_of_ppe(id, &id); 155 lv1_get_virtual_address_space_id_of_ppe(id, &id);
@@ -160,14 +160,18 @@ static unsigned long get_vas_id(void)
160static int __init construct_spu(struct spu *spu) 160static int __init construct_spu(struct spu *spu)
161{ 161{
162 int result; 162 int result;
163 unsigned long unused; 163 u64 unused;
164 u64 problem_phys;
165 u64 local_store_phys;
164 166
165 result = lv1_construct_logical_spe(PAGE_SHIFT, PAGE_SHIFT, PAGE_SHIFT, 167 result = lv1_construct_logical_spe(PAGE_SHIFT, PAGE_SHIFT, PAGE_SHIFT,
166 PAGE_SHIFT, PAGE_SHIFT, get_vas_id(), SPE_TYPE_LOGICAL, 168 PAGE_SHIFT, PAGE_SHIFT, get_vas_id(), SPE_TYPE_LOGICAL,
167 &spu_pdata(spu)->priv2_addr, &spu->problem_phys, 169 &spu_pdata(spu)->priv2_addr, &problem_phys,
168 &spu->local_store_phys, &unused, 170 &local_store_phys, &unused,
169 &spu_pdata(spu)->shadow_addr, 171 &spu_pdata(spu)->shadow_addr,
170 &spu_pdata(spu)->spe_id); 172 &spu_pdata(spu)->spe_id);
173 spu->problem_phys = problem_phys;
174 spu->local_store_phys = local_store_phys;
171 175
172 if (result) { 176 if (result) {
173 pr_debug("%s:%d: lv1_construct_logical_spe failed: %s\n", 177 pr_debug("%s:%d: lv1_construct_logical_spe failed: %s\n",
diff --git a/arch/powerpc/platforms/ps3/system-bus.c b/arch/powerpc/platforms/ps3/system-bus.c
index ee0d22911621..58311a867851 100644
--- a/arch/powerpc/platforms/ps3/system-bus.c
+++ b/arch/powerpc/platforms/ps3/system-bus.c
@@ -182,7 +182,7 @@ int ps3_open_hv_device(struct ps3_system_bus_device *dev)
182 case PS3_MATCH_ID_SYSTEM_MANAGER: 182 case PS3_MATCH_ID_SYSTEM_MANAGER:
183 pr_debug("%s:%d: unsupported match_id: %u\n", __func__, 183 pr_debug("%s:%d: unsupported match_id: %u\n", __func__,
184 __LINE__, dev->match_id); 184 __LINE__, dev->match_id);
185 pr_debug("%s:%d: bus_id: %lu\n", __func__, __LINE__, 185 pr_debug("%s:%d: bus_id: %llu\n", __func__, __LINE__,
186 dev->bus_id); 186 dev->bus_id);
187 BUG(); 187 BUG();
188 return -EINVAL; 188 return -EINVAL;
@@ -220,7 +220,7 @@ int ps3_close_hv_device(struct ps3_system_bus_device *dev)
220 case PS3_MATCH_ID_SYSTEM_MANAGER: 220 case PS3_MATCH_ID_SYSTEM_MANAGER:
221 pr_debug("%s:%d: unsupported match_id: %u\n", __func__, 221 pr_debug("%s:%d: unsupported match_id: %u\n", __func__,
222 __LINE__, dev->match_id); 222 __LINE__, dev->match_id);
223 pr_debug("%s:%d: bus_id: %lu\n", __func__, __LINE__, 223 pr_debug("%s:%d: bus_id: %llu\n", __func__, __LINE__,
224 dev->bus_id); 224 dev->bus_id);
225 BUG(); 225 BUG();
226 return -EINVAL; 226 return -EINVAL;
@@ -240,7 +240,7 @@ EXPORT_SYMBOL_GPL(ps3_close_hv_device);
240static void _dump_mmio_region(const struct ps3_mmio_region* r, 240static void _dump_mmio_region(const struct ps3_mmio_region* r,
241 const char* func, int line) 241 const char* func, int line)
242{ 242{
243 pr_debug("%s:%d: dev %lu:%lu\n", func, line, r->dev->bus_id, 243 pr_debug("%s:%d: dev %llu:%llu\n", func, line, r->dev->bus_id,
244 r->dev->dev_id); 244 r->dev->dev_id);
245 pr_debug("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr); 245 pr_debug("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr);
246 pr_debug("%s:%d: len %lxh\n", func, line, r->len); 246 pr_debug("%s:%d: len %lxh\n", func, line, r->len);
@@ -250,9 +250,11 @@ static void _dump_mmio_region(const struct ps3_mmio_region* r,
250static int ps3_sb_mmio_region_create(struct ps3_mmio_region *r) 250static int ps3_sb_mmio_region_create(struct ps3_mmio_region *r)
251{ 251{
252 int result; 252 int result;
253 u64 lpar_addr;
253 254
254 result = lv1_map_device_mmio_region(r->dev->bus_id, r->dev->dev_id, 255 result = lv1_map_device_mmio_region(r->dev->bus_id, r->dev->dev_id,
255 r->bus_addr, r->len, r->page_size, &r->lpar_addr); 256 r->bus_addr, r->len, r->page_size, &lpar_addr);
257 r->lpar_addr = lpar_addr;
256 258
257 if (result) { 259 if (result) {
258 pr_debug("%s:%d: lv1_map_device_mmio_region failed: %s\n", 260 pr_debug("%s:%d: lv1_map_device_mmio_region failed: %s\n",
@@ -568,7 +570,7 @@ static dma_addr_t ps3_sb_map_page(struct device *_dev, struct page *page,
568{ 570{
569 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev); 571 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
570 int result; 572 int result;
571 unsigned long bus_addr; 573 dma_addr_t bus_addr;
572 void *ptr = page_address(page) + offset; 574 void *ptr = page_address(page) + offset;
573 575
574 result = ps3_dma_map(dev->d_region, (unsigned long)ptr, size, 576 result = ps3_dma_map(dev->d_region, (unsigned long)ptr, size,
@@ -590,7 +592,7 @@ static dma_addr_t ps3_ioc0_map_page(struct device *_dev, struct page *page,
590{ 592{
591 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev); 593 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
592 int result; 594 int result;
593 unsigned long bus_addr; 595 dma_addr_t bus_addr;
594 u64 iopte_flag; 596 u64 iopte_flag;
595 void *ptr = page_address(page) + offset; 597 void *ptr = page_address(page) + offset;
596 598
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
index a623ad256e9e..9b21ee68ea50 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -14,6 +14,7 @@
14#include <asm/firmware.h> 14#include <asm/firmware.h>
15#include <asm/machdep.h> 15#include <asm/machdep.h>
16#include <asm/pSeries_reconfig.h> 16#include <asm/pSeries_reconfig.h>
17#include <asm/sparsemem.h>
17 18
18static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size) 19static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size)
19{ 20{
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index c90817acb472..3ee01b4f4257 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -127,10 +127,10 @@ static int tce_build_pSeriesLP(struct iommu_table *tbl, long tcenum,
127 } 127 }
128 128
129 if (rc && printk_ratelimit()) { 129 if (rc && printk_ratelimit()) {
130 printk("tce_build_pSeriesLP: plpar_tce_put failed. rc=%ld\n", rc); 130 printk("tce_build_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
131 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 131 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
132 printk("\ttcenum = 0x%lx\n", (u64)tcenum); 132 printk("\ttcenum = 0x%llx\n", (u64)tcenum);
133 printk("\ttce val = 0x%lx\n", tce ); 133 printk("\ttce val = 0x%llx\n", tce );
134 show_stack(current, (unsigned long *)__get_SP()); 134 show_stack(current, (unsigned long *)__get_SP());
135 } 135 }
136 136
@@ -210,10 +210,10 @@ static int tce_buildmulti_pSeriesLP(struct iommu_table *tbl, long tcenum,
210 } 210 }
211 211
212 if (rc && printk_ratelimit()) { 212 if (rc && printk_ratelimit()) {
213 printk("tce_buildmulti_pSeriesLP: plpar_tce_put failed. rc=%ld\n", rc); 213 printk("tce_buildmulti_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
214 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 214 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
215 printk("\tnpages = 0x%lx\n", (u64)npages); 215 printk("\tnpages = 0x%llx\n", (u64)npages);
216 printk("\ttce[0] val = 0x%lx\n", tcep[0]); 216 printk("\ttce[0] val = 0x%llx\n", tcep[0]);
217 show_stack(current, (unsigned long *)__get_SP()); 217 show_stack(current, (unsigned long *)__get_SP());
218 } 218 }
219 return ret; 219 return ret;
@@ -227,9 +227,9 @@ static void tce_free_pSeriesLP(struct iommu_table *tbl, long tcenum, long npages
227 rc = plpar_tce_put((u64)tbl->it_index, (u64)tcenum << 12, 0); 227 rc = plpar_tce_put((u64)tbl->it_index, (u64)tcenum << 12, 0);
228 228
229 if (rc && printk_ratelimit()) { 229 if (rc && printk_ratelimit()) {
230 printk("tce_free_pSeriesLP: plpar_tce_put failed. rc=%ld\n", rc); 230 printk("tce_free_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
231 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 231 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
232 printk("\ttcenum = 0x%lx\n", (u64)tcenum); 232 printk("\ttcenum = 0x%llx\n", (u64)tcenum);
233 show_stack(current, (unsigned long *)__get_SP()); 233 show_stack(current, (unsigned long *)__get_SP());
234 } 234 }
235 235
@@ -246,9 +246,9 @@ static void tce_freemulti_pSeriesLP(struct iommu_table *tbl, long tcenum, long n
246 246
247 if (rc && printk_ratelimit()) { 247 if (rc && printk_ratelimit()) {
248 printk("tce_freemulti_pSeriesLP: plpar_tce_stuff failed\n"); 248 printk("tce_freemulti_pSeriesLP: plpar_tce_stuff failed\n");
249 printk("\trc = %ld\n", rc); 249 printk("\trc = %lld\n", rc);
250 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 250 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
251 printk("\tnpages = 0x%lx\n", (u64)npages); 251 printk("\tnpages = 0x%llx\n", (u64)npages);
252 show_stack(current, (unsigned long *)__get_SP()); 252 show_stack(current, (unsigned long *)__get_SP());
253 } 253 }
254} 254}
@@ -261,10 +261,9 @@ static unsigned long tce_get_pSeriesLP(struct iommu_table *tbl, long tcenum)
261 rc = plpar_tce_get((u64)tbl->it_index, (u64)tcenum << 12, &tce_ret); 261 rc = plpar_tce_get((u64)tbl->it_index, (u64)tcenum << 12, &tce_ret);
262 262
263 if (rc && printk_ratelimit()) { 263 if (rc && printk_ratelimit()) {
264 printk("tce_get_pSeriesLP: plpar_tce_get failed. rc=%ld\n", 264 printk("tce_get_pSeriesLP: plpar_tce_get failed. rc=%lld\n", rc);
265 rc); 265 printk("\tindex = 0x%llx\n", (u64)tbl->it_index);
266 printk("\tindex = 0x%lx\n", (u64)tbl->it_index); 266 printk("\ttcenum = 0x%llx\n", (u64)tcenum);
267 printk("\ttcenum = 0x%lx\n", (u64)tcenum);
268 show_stack(current, (unsigned long *)__get_SP()); 267 show_stack(current, (unsigned long *)__get_SP());
269 } 268 }
270 269
diff --git a/arch/powerpc/platforms/pseries/phyp_dump.c b/arch/powerpc/platforms/pseries/phyp_dump.c
index 6cf35cd8d0b5..15eb6107bcd2 100644
--- a/arch/powerpc/platforms/pseries/phyp_dump.c
+++ b/arch/powerpc/platforms/pseries/phyp_dump.c
@@ -144,8 +144,8 @@ static void print_dump_header(const struct phyp_dump_header *ph)
144 ph->first_offset_section); 144 ph->first_offset_section);
145 printk(KERN_INFO "dump disk sections should be zero\n"); 145 printk(KERN_INFO "dump disk sections should be zero\n");
146 printk(KERN_INFO "dump disk section = %d\n", ph->dump_disk_section); 146 printk(KERN_INFO "dump disk section = %d\n", ph->dump_disk_section);
147 printk(KERN_INFO "block num = %ld\n", ph->block_num_dd); 147 printk(KERN_INFO "block num = %lld\n", ph->block_num_dd);
148 printk(KERN_INFO "number of blocks = %ld\n", ph->num_of_blocks_dd); 148 printk(KERN_INFO "number of blocks = %lld\n", ph->num_of_blocks_dd);
149 printk(KERN_INFO "dump disk offset = %d\n", ph->offset_dd); 149 printk(KERN_INFO "dump disk offset = %d\n", ph->offset_dd);
150 printk(KERN_INFO "Max auto time= %d\n", ph->maxtime_to_auto); 150 printk(KERN_INFO "Max auto time= %d\n", ph->maxtime_to_auto);
151 151
@@ -154,33 +154,33 @@ static void print_dump_header(const struct phyp_dump_header *ph)
154 printk(KERN_INFO "cpu dump_flags =%d\n", ph->cpu_data.dump_flags); 154 printk(KERN_INFO "cpu dump_flags =%d\n", ph->cpu_data.dump_flags);
155 printk(KERN_INFO "cpu source_type =%d\n", ph->cpu_data.source_type); 155 printk(KERN_INFO "cpu source_type =%d\n", ph->cpu_data.source_type);
156 printk(KERN_INFO "cpu error_flags =%d\n", ph->cpu_data.error_flags); 156 printk(KERN_INFO "cpu error_flags =%d\n", ph->cpu_data.error_flags);
157 printk(KERN_INFO "cpu source_address =%lx\n", 157 printk(KERN_INFO "cpu source_address =%llx\n",
158 ph->cpu_data.source_address); 158 ph->cpu_data.source_address);
159 printk(KERN_INFO "cpu source_length =%lx\n", 159 printk(KERN_INFO "cpu source_length =%llx\n",
160 ph->cpu_data.source_length); 160 ph->cpu_data.source_length);
161 printk(KERN_INFO "cpu length_copied =%lx\n", 161 printk(KERN_INFO "cpu length_copied =%llx\n",
162 ph->cpu_data.length_copied); 162 ph->cpu_data.length_copied);
163 163
164 printk(KERN_INFO " HPTE AREA \n"); 164 printk(KERN_INFO " HPTE AREA \n");
165 printk(KERN_INFO "HPTE dump_flags =%d\n", ph->hpte_data.dump_flags); 165 printk(KERN_INFO "HPTE dump_flags =%d\n", ph->hpte_data.dump_flags);
166 printk(KERN_INFO "HPTE source_type =%d\n", ph->hpte_data.source_type); 166 printk(KERN_INFO "HPTE source_type =%d\n", ph->hpte_data.source_type);
167 printk(KERN_INFO "HPTE error_flags =%d\n", ph->hpte_data.error_flags); 167 printk(KERN_INFO "HPTE error_flags =%d\n", ph->hpte_data.error_flags);
168 printk(KERN_INFO "HPTE source_address =%lx\n", 168 printk(KERN_INFO "HPTE source_address =%llx\n",
169 ph->hpte_data.source_address); 169 ph->hpte_data.source_address);
170 printk(KERN_INFO "HPTE source_length =%lx\n", 170 printk(KERN_INFO "HPTE source_length =%llx\n",
171 ph->hpte_data.source_length); 171 ph->hpte_data.source_length);
172 printk(KERN_INFO "HPTE length_copied =%lx\n", 172 printk(KERN_INFO "HPTE length_copied =%llx\n",
173 ph->hpte_data.length_copied); 173 ph->hpte_data.length_copied);
174 174
175 printk(KERN_INFO " SRSD AREA \n"); 175 printk(KERN_INFO " SRSD AREA \n");
176 printk(KERN_INFO "SRSD dump_flags =%d\n", ph->kernel_data.dump_flags); 176 printk(KERN_INFO "SRSD dump_flags =%d\n", ph->kernel_data.dump_flags);
177 printk(KERN_INFO "SRSD source_type =%d\n", ph->kernel_data.source_type); 177 printk(KERN_INFO "SRSD source_type =%d\n", ph->kernel_data.source_type);
178 printk(KERN_INFO "SRSD error_flags =%d\n", ph->kernel_data.error_flags); 178 printk(KERN_INFO "SRSD error_flags =%d\n", ph->kernel_data.error_flags);
179 printk(KERN_INFO "SRSD source_address =%lx\n", 179 printk(KERN_INFO "SRSD source_address =%llx\n",
180 ph->kernel_data.source_address); 180 ph->kernel_data.source_address);
181 printk(KERN_INFO "SRSD source_length =%lx\n", 181 printk(KERN_INFO "SRSD source_length =%llx\n",
182 ph->kernel_data.source_length); 182 ph->kernel_data.source_length);
183 printk(KERN_INFO "SRSD length_copied =%lx\n", 183 printk(KERN_INFO "SRSD length_copied =%llx\n",
184 ph->kernel_data.length_copied); 184 ph->kernel_data.length_copied);
185#endif 185#endif
186} 186}
@@ -367,8 +367,8 @@ static ssize_t show_release_region(struct kobject *kobj,
367 /* total reserved size - start of scratch area */ 367 /* total reserved size - start of scratch area */
368 second_addr_range = phyp_dump_info->init_reserve_size - 368 second_addr_range = phyp_dump_info->init_reserve_size -
369 phyp_dump_info->reserved_scratch_size; 369 phyp_dump_info->reserved_scratch_size;
370 return sprintf(buf, "CPU:0x%lx-0x%lx: HPTE:0x%lx-0x%lx:" 370 return sprintf(buf, "CPU:0x%llx-0x%llx: HPTE:0x%llx-0x%llx:"
371 " DUMP:0x%lx-0x%lx, 0x%lx-0x%lx:\n", 371 " DUMP:0x%llx-0x%llx, 0x%lx-0x%llx:\n",
372 phdr.cpu_data.destination_address, 372 phdr.cpu_data.destination_address,
373 phdr.cpu_data.length_copied, 373 phdr.cpu_data.length_copied,
374 phdr.hpte_data.destination_address, 374 phdr.hpte_data.destination_address,
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
index b16ca3ed65d2..78f1f7cca0a0 100644
--- a/arch/powerpc/sysdev/cpm2_pic.c
+++ b/arch/powerpc/sysdev/cpm2_pic.c
@@ -165,7 +165,7 @@ static int cpm2_set_irq_type(unsigned int virq, unsigned int flow_type)
165 edibit = (14 - (src - CPM2_IRQ_EXT1)); 165 edibit = (14 - (src - CPM2_IRQ_EXT1));
166 else 166 else
167 if (src >= CPM2_IRQ_PORTC15 && src <= CPM2_IRQ_PORTC0) 167 if (src >= CPM2_IRQ_PORTC15 && src <= CPM2_IRQ_PORTC0)
168 edibit = (31 - (src - CPM2_IRQ_PORTC15)); 168 edibit = (31 - (CPM2_IRQ_PORTC0 - src));
169 else 169 else
170 return (flow_type & IRQ_TYPE_LEVEL_LOW) ? 0 : -EINVAL; 170 return (flow_type & IRQ_TYPE_LEVEL_LOW) ? 0 : -EINVAL;
171 171
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index f611d0369cc8..9817f63723dd 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -28,63 +28,104 @@
28#include <sysdev/fsl_pci.h> 28#include <sysdev/fsl_pci.h>
29 29
30#if defined(CONFIG_PPC_85xx) || defined(CONFIG_PPC_86xx) 30#if defined(CONFIG_PPC_85xx) || defined(CONFIG_PPC_86xx)
31static int __init setup_one_atmu(struct ccsr_pci __iomem *pci,
32 unsigned int index, const struct resource *res,
33 resource_size_t offset)
34{
35 resource_size_t pci_addr = res->start - offset;
36 resource_size_t phys_addr = res->start;
37 resource_size_t size = res->end - res->start + 1;
38 u32 flags = 0x80044000; /* enable & mem R/W */
39 unsigned int i;
40
41 pr_debug("PCI MEM resource start 0x%016llx, size 0x%016llx.\n",
42 (u64)res->start, (u64)size);
43
44 if (res->flags & IORESOURCE_PREFETCH)
45 flags |= 0x10000000; /* enable relaxed ordering */
46
47 for (i = 0; size > 0; i++) {
48 unsigned int bits = min(__ilog2(size),
49 __ffs(pci_addr | phys_addr));
50
51 if (index + i >= 5)
52 return -1;
53
54 out_be32(&pci->pow[index + i].potar, pci_addr >> 12);
55 out_be32(&pci->pow[index + i].potear, (u64)pci_addr >> 44);
56 out_be32(&pci->pow[index + i].powbar, phys_addr >> 12);
57 out_be32(&pci->pow[index + i].powar, flags | (bits - 1));
58
59 pci_addr += (resource_size_t)1U << bits;
60 phys_addr += (resource_size_t)1U << bits;
61 size -= (resource_size_t)1U << bits;
62 }
63
64 return i;
65}
66
31/* atmu setup for fsl pci/pcie controller */ 67/* atmu setup for fsl pci/pcie controller */
32static void __init setup_pci_atmu(struct pci_controller *hose, 68static void __init setup_pci_atmu(struct pci_controller *hose,
33 struct resource *rsrc) 69 struct resource *rsrc)
34{ 70{
35 struct ccsr_pci __iomem *pci; 71 struct ccsr_pci __iomem *pci;
36 int i; 72 int i, j, n;
37 73
38 pr_debug("PCI memory map start 0x%016llx, size 0x%016llx\n", 74 pr_debug("PCI memory map start 0x%016llx, size 0x%016llx\n",
39 (u64)rsrc->start, (u64)rsrc->end - (u64)rsrc->start + 1); 75 (u64)rsrc->start, (u64)rsrc->end - (u64)rsrc->start + 1);
40 pci = ioremap(rsrc->start, rsrc->end - rsrc->start + 1); 76 pci = ioremap(rsrc->start, rsrc->end - rsrc->start + 1);
77 if (!pci) {
78 dev_err(hose->parent, "Unable to map ATMU registers\n");
79 return;
80 }
41 81
42 /* Disable all windows (except powar0 since its ignored) */ 82 /* Disable all windows (except powar0 since it's ignored) */
43 for(i = 1; i < 5; i++) 83 for(i = 1; i < 5; i++)
44 out_be32(&pci->pow[i].powar, 0); 84 out_be32(&pci->pow[i].powar, 0);
45 for(i = 0; i < 3; i++) 85 for(i = 0; i < 3; i++)
46 out_be32(&pci->piw[i].piwar, 0); 86 out_be32(&pci->piw[i].piwar, 0);
47 87
48 /* Setup outbound MEM window */ 88 /* Setup outbound MEM window */
49 for(i = 0; i < 3; i++) 89 for(i = 0, j = 1; i < 3; i++) {
50 if (hose->mem_resources[i].flags & IORESOURCE_MEM){ 90 if (!(hose->mem_resources[i].flags & IORESOURCE_MEM))
51 resource_size_t pci_addr_start = 91 continue;
52 hose->mem_resources[i].start - 92
53 hose->pci_mem_offset; 93 n = setup_one_atmu(pci, j, &hose->mem_resources[i],
54 pr_debug("PCI MEM resource start 0x%016llx, size 0x%016llx.\n", 94 hose->pci_mem_offset);
55 (u64)hose->mem_resources[i].start, 95
56 (u64)hose->mem_resources[i].end 96 if (n < 0 || j >= 5) {
57 - (u64)hose->mem_resources[i].start + 1); 97 pr_err("Ran out of outbound PCI ATMUs for resource %d!\n", i);
58 out_be32(&pci->pow[i+1].potar, (pci_addr_start >> 12)); 98 hose->mem_resources[i].flags |= IORESOURCE_DISABLED;
59 out_be32(&pci->pow[i+1].potear, 0); 99 } else
60 out_be32(&pci->pow[i+1].powbar, 100 j += n;
61 (hose->mem_resources[i].start >> 12)); 101 }
62 /* Enable, Mem R/W */
63 out_be32(&pci->pow[i+1].powar, 0x80044000
64 | (__ilog2(hose->mem_resources[i].end
65 - hose->mem_resources[i].start + 1) - 1));
66 }
67 102
68 /* Setup outbound IO window */ 103 /* Setup outbound IO window */
69 if (hose->io_resource.flags & IORESOURCE_IO){ 104 if (hose->io_resource.flags & IORESOURCE_IO) {
70 pr_debug("PCI IO resource start 0x%016llx, size 0x%016llx, " 105 if (j >= 5) {
71 "phy base 0x%016llx.\n", 106 pr_err("Ran out of outbound PCI ATMUs for IO resource\n");
72 (u64)hose->io_resource.start, 107 } else {
73 (u64)hose->io_resource.end - (u64)hose->io_resource.start + 1, 108 pr_debug("PCI IO resource start 0x%016llx, size 0x%016llx, "
74 (u64)hose->io_base_phys); 109 "phy base 0x%016llx.\n",
75 out_be32(&pci->pow[i+1].potar, (hose->io_resource.start >> 12)); 110 (u64)hose->io_resource.start,
76 out_be32(&pci->pow[i+1].potear, 0); 111 (u64)hose->io_resource.end - (u64)hose->io_resource.start + 1,
77 out_be32(&pci->pow[i+1].powbar, (hose->io_base_phys >> 12)); 112 (u64)hose->io_base_phys);
78 /* Enable, IO R/W */ 113 out_be32(&pci->pow[j].potar, (hose->io_resource.start >> 12));
79 out_be32(&pci->pow[i+1].powar, 0x80088000 114 out_be32(&pci->pow[j].potear, 0);
80 | (__ilog2(hose->io_resource.end 115 out_be32(&pci->pow[j].powbar, (hose->io_base_phys >> 12));
81 - hose->io_resource.start + 1) - 1)); 116 /* Enable, IO R/W */
117 out_be32(&pci->pow[j].powar, 0x80088000
118 | (__ilog2(hose->io_resource.end
119 - hose->io_resource.start + 1) - 1));
120 }
82 } 121 }
83 122
84 /* Setup 2G inbound Memory Window @ 1 */ 123 /* Setup 2G inbound Memory Window @ 1 */
85 out_be32(&pci->piw[2].pitar, 0x00000000); 124 out_be32(&pci->piw[2].pitar, 0x00000000);
86 out_be32(&pci->piw[2].piwbar,0x00000000); 125 out_be32(&pci->piw[2].piwbar,0x00000000);
87 out_be32(&pci->piw[2].piwar, PIWAR_2G); 126 out_be32(&pci->piw[2].piwar, PIWAR_2G);
127
128 iounmap(pci);
88} 129}
89 130
90static void __init setup_pci_cmd(struct pci_controller *hose) 131static void __init setup_pci_cmd(struct pci_controller *hose)
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 88a983ece5c9..9a89cd3e80a2 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -890,7 +890,7 @@ unsigned int ipic_get_irq(void)
890 return irq_linear_revmap(primary_ipic->irqhost, irq); 890 return irq_linear_revmap(primary_ipic->irqhost, irq);
891} 891}
892 892
893#ifdef CONFIG_PM 893#ifdef CONFIG_SUSPEND
894static struct { 894static struct {
895 u32 sicfr; 895 u32 sicfr;
896 u32 siprr[2]; 896 u32 siprr[2];
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 0afd21f9a222..532e205303a2 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -435,7 +435,7 @@ static void __init mpic_scan_ht_msi(struct mpic *mpic, u8 __iomem *devbase,
435 addr = addr | ((u64)readl(base + HT_MSI_ADDR_HI) << 32); 435 addr = addr | ((u64)readl(base + HT_MSI_ADDR_HI) << 32);
436 } 436 }
437 437
438 printk(KERN_DEBUG "mpic: - HT:%02x.%x %s MSI mapping found @ 0x%lx\n", 438 printk(KERN_DEBUG "mpic: - HT:%02x.%x %s MSI mapping found @ 0x%llx\n",
439 PCI_SLOT(devfn), PCI_FUNC(devfn), 439 PCI_SLOT(devfn), PCI_FUNC(devfn),
440 flags & HT_MSI_FLAGS_ENABLE ? "enabled" : "disabled", addr); 440 flags & HT_MSI_FLAGS_ENABLE ? "enabled" : "disabled", addr);
441 441
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index 77fae5f64f2e..5558d932b4d5 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -204,6 +204,23 @@ static int __init ppc4xx_setup_one_pci_PMM(struct pci_controller *hose,
204{ 204{
205 u32 ma, pcila, pciha; 205 u32 ma, pcila, pciha;
206 206
207 /* Hack warning ! The "old" PCI 2.x cell only let us configure the low
208 * 32-bit of incoming PLB addresses. The top 4 bits of the 36-bit
209 * address are actually hard wired to a value that appears to depend
210 * on the specific SoC. For example, it's 0 on 440EP and 1 on 440EPx.
211 *
212 * The trick here is we just crop those top bits and ignore them when
213 * programming the chip. That means the device-tree has to be right
214 * for the specific part used (we don't print a warning if it's wrong
215 * but on the other hand, you'll crash quickly enough), but at least
216 * this code should work whatever the hard coded value is
217 */
218 plb_addr &= 0xffffffffull;
219
220 /* Note: Due to the above hack, the test below doesn't actually test
221 * if you address is above 4G, but it tests that address and
222 * (address + size) are both contained in the same 4G
223 */
207 if ((plb_addr + size) > 0xffffffffull || !is_power_of_2(size) || 224 if ((plb_addr + size) > 0xffffffffull || !is_power_of_2(size) ||
208 size < 0x1000 || (plb_addr & (size - 1)) != 0) { 225 size < 0x1000 || (plb_addr & (size - 1)) != 0) {
209 printk(KERN_WARNING "%s: Resource out of range\n", 226 printk(KERN_WARNING "%s: Resource out of range\n",
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index a94a3c3ae932..6b0a3538dc63 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -77,6 +77,7 @@ mainmenu "Linux Kernel Configuration"
77config S390 77config S390
78 def_bool y 78 def_bool y
79 select USE_GENERIC_SMP_HELPERS if SMP 79 select USE_GENERIC_SMP_HELPERS if SMP
80 select HAVE_SYSCALL_WRAPPERS
80 select HAVE_FUNCTION_TRACER 81 select HAVE_FUNCTION_TRACER
81 select HAVE_OPROFILE 82 select HAVE_OPROFILE
82 select HAVE_KPROBES 83 select HAVE_KPROBES
diff --git a/arch/s390/crypto/aes_s390.c b/arch/s390/crypto/aes_s390.c
index c42cd898f68b..6118890c946d 100644
--- a/arch/s390/crypto/aes_s390.c
+++ b/arch/s390/crypto/aes_s390.c
@@ -556,7 +556,7 @@ static void __exit aes_s390_fini(void)
556module_init(aes_s390_init); 556module_init(aes_s390_init);
557module_exit(aes_s390_fini); 557module_exit(aes_s390_fini);
558 558
559MODULE_ALIAS("aes"); 559MODULE_ALIAS("aes-all");
560 560
561MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm"); 561MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
562MODULE_LICENSE("GPL"); 562MODULE_LICENSE("GPL");
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index a0e748da9909..31e809c77790 100644
--- a/arch/s390/defconfig
+++ b/arch/s390/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.28-rc6 3# Linux kernel version: 2.6.29-rc4
4# Thu Nov 27 11:00:49 2008 4# Wed Feb 11 10:07:16 2009
5# 5#
6CONFIG_SCHED_MC=y 6CONFIG_SCHED_MC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,12 +14,14 @@ CONFIG_RWSEM_XCHGADD_ALGORITHM=y
14# CONFIG_ARCH_HAS_ILOG2_U64 is not set 14# CONFIG_ARCH_HAS_ILOG2_U64 is not set
15CONFIG_GENERIC_HWEIGHT=y 15CONFIG_GENERIC_HWEIGHT=y
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_TIME_VSYSCALL=y
17CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
18CONFIG_GENERIC_BUG=y 19CONFIG_GENERIC_BUG=y
19CONFIG_NO_IOMEM=y 20CONFIG_NO_IOMEM=y
20CONFIG_NO_DMA=y 21CONFIG_NO_DMA=y
21CONFIG_GENERIC_LOCKBREAK=y 22CONFIG_GENERIC_LOCKBREAK=y
22CONFIG_PGSTE=y 23CONFIG_PGSTE=y
24CONFIG_VIRT_CPU_ACCOUNTING=y
23CONFIG_S390=y 25CONFIG_S390=y
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25 27
@@ -39,20 +41,29 @@ CONFIG_POSIX_MQUEUE=y
39# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
40CONFIG_AUDIT=y 42CONFIG_AUDIT=y
41# CONFIG_AUDITSYSCALL is not set 43# CONFIG_AUDITSYSCALL is not set
44
45#
46# RCU Subsystem
47#
48CONFIG_CLASSIC_RCU=y
49# CONFIG_TREE_RCU is not set
50# CONFIG_PREEMPT_RCU is not set
51# CONFIG_TREE_RCU_TRACE is not set
52# CONFIG_PREEMPT_RCU_TRACE is not set
42CONFIG_IKCONFIG=y 53CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y 54CONFIG_IKCONFIG_PROC=y
44CONFIG_LOG_BUF_SHIFT=17 55CONFIG_LOG_BUF_SHIFT=17
56CONFIG_GROUP_SCHED=y
57CONFIG_FAIR_GROUP_SCHED=y
58# CONFIG_RT_GROUP_SCHED is not set
59CONFIG_USER_SCHED=y
60# CONFIG_CGROUP_SCHED is not set
45CONFIG_CGROUPS=y 61CONFIG_CGROUPS=y
46# CONFIG_CGROUP_DEBUG is not set 62# CONFIG_CGROUP_DEBUG is not set
47CONFIG_CGROUP_NS=y 63CONFIG_CGROUP_NS=y
48# CONFIG_CGROUP_FREEZER is not set 64# CONFIG_CGROUP_FREEZER is not set
49# CONFIG_CGROUP_DEVICE is not set 65# CONFIG_CGROUP_DEVICE is not set
50# CONFIG_CPUSETS is not set 66# CONFIG_CPUSETS is not set
51CONFIG_GROUP_SCHED=y
52CONFIG_FAIR_GROUP_SCHED=y
53# CONFIG_RT_GROUP_SCHED is not set
54CONFIG_USER_SCHED=y
55# CONFIG_CGROUP_SCHED is not set
56# CONFIG_CGROUP_CPUACCT is not set 67# CONFIG_CGROUP_CPUACCT is not set
57# CONFIG_RESOURCE_COUNTERS is not set 68# CONFIG_RESOURCE_COUNTERS is not set
58CONFIG_SYSFS_DEPRECATED=y 69CONFIG_SYSFS_DEPRECATED=y
@@ -63,6 +74,7 @@ CONFIG_UTS_NS=y
63CONFIG_IPC_NS=y 74CONFIG_IPC_NS=y
64# CONFIG_USER_NS is not set 75# CONFIG_USER_NS is not set
65# CONFIG_PID_NS is not set 76# CONFIG_PID_NS is not set
77# CONFIG_NET_NS is not set
66CONFIG_BLK_DEV_INITRD=y 78CONFIG_BLK_DEV_INITRD=y
67CONFIG_INITRAMFS_SOURCE="" 79CONFIG_INITRAMFS_SOURCE=""
68# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,17 +103,17 @@ CONFIG_SLAB=y
91# CONFIG_SLUB is not set 103# CONFIG_SLUB is not set
92# CONFIG_SLOB is not set 104# CONFIG_SLOB is not set
93# CONFIG_PROFILING is not set 105# CONFIG_PROFILING is not set
94# CONFIG_MARKERS is not set
95CONFIG_HAVE_OPROFILE=y 106CONFIG_HAVE_OPROFILE=y
96CONFIG_KPROBES=y 107CONFIG_KPROBES=y
108CONFIG_HAVE_SYSCALL_WRAPPERS=y
97CONFIG_KRETPROBES=y 109CONFIG_KRETPROBES=y
98CONFIG_HAVE_KPROBES=y 110CONFIG_HAVE_KPROBES=y
99CONFIG_HAVE_KRETPROBES=y 111CONFIG_HAVE_KRETPROBES=y
100CONFIG_HAVE_ARCH_TRACEHOOK=y 112CONFIG_HAVE_ARCH_TRACEHOOK=y
113CONFIG_USE_GENERIC_SMP_HELPERS=y
101# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 114# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
102CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
103CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
104# CONFIG_TINY_SHMEM is not set
105CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
106CONFIG_MODULES=y 118CONFIG_MODULES=y
107# CONFIG_MODULE_FORCE_LOAD is not set 119# CONFIG_MODULE_FORCE_LOAD is not set
@@ -109,7 +121,7 @@ CONFIG_MODULE_UNLOAD=y
109# CONFIG_MODULE_FORCE_UNLOAD is not set 121# CONFIG_MODULE_FORCE_UNLOAD is not set
110CONFIG_MODVERSIONS=y 122CONFIG_MODVERSIONS=y
111# CONFIG_MODULE_SRCVERSION_ALL is not set 123# CONFIG_MODULE_SRCVERSION_ALL is not set
112CONFIG_KMOD=y 124CONFIG_INIT_ALL_POSSIBLE=y
113CONFIG_STOP_MACHINE=y 125CONFIG_STOP_MACHINE=y
114CONFIG_BLOCK=y 126CONFIG_BLOCK=y
115# CONFIG_BLK_DEV_IO_TRACE is not set 127# CONFIG_BLK_DEV_IO_TRACE is not set
@@ -130,7 +142,6 @@ CONFIG_DEFAULT_DEADLINE=y
130# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
131CONFIG_DEFAULT_IOSCHED="deadline" 143CONFIG_DEFAULT_IOSCHED="deadline"
132CONFIG_PREEMPT_NOTIFIERS=y 144CONFIG_PREEMPT_NOTIFIERS=y
133CONFIG_CLASSIC_RCU=y
134# CONFIG_FREEZER is not set 145# CONFIG_FREEZER is not set
135 146
136# 147#
@@ -161,6 +172,7 @@ CONFIG_S390_EXEC_PROTECT=y
161CONFIG_MARCH_Z900=y 172CONFIG_MARCH_Z900=y
162# CONFIG_MARCH_Z990 is not set 173# CONFIG_MARCH_Z990 is not set
163# CONFIG_MARCH_Z9_109 is not set 174# CONFIG_MARCH_Z9_109 is not set
175# CONFIG_MARCH_Z10 is not set
164CONFIG_PACK_STACK=y 176CONFIG_PACK_STACK=y
165# CONFIG_SMALL_STACK is not set 177# CONFIG_SMALL_STACK is not set
166CONFIG_CHECK_STACK=y 178CONFIG_CHECK_STACK=y
@@ -174,7 +186,6 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y
174# CONFIG_PREEMPT_NONE is not set 186# CONFIG_PREEMPT_NONE is not set
175# CONFIG_PREEMPT_VOLUNTARY is not set 187# CONFIG_PREEMPT_VOLUNTARY is not set
176CONFIG_PREEMPT=y 188CONFIG_PREEMPT=y
177# CONFIG_PREEMPT_RCU is not set
178CONFIG_ARCH_SPARSEMEM_ENABLE=y 189CONFIG_ARCH_SPARSEMEM_ENABLE=y
179CONFIG_ARCH_SPARSEMEM_DEFAULT=y 190CONFIG_ARCH_SPARSEMEM_DEFAULT=y
180CONFIG_ARCH_SELECT_MEMORY_MODEL=y 191CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -195,7 +206,6 @@ CONFIG_MEMORY_HOTREMOVE=y
195CONFIG_PAGEFLAGS_EXTENDED=y 206CONFIG_PAGEFLAGS_EXTENDED=y
196CONFIG_SPLIT_PTLOCK_CPUS=4 207CONFIG_SPLIT_PTLOCK_CPUS=4
197CONFIG_MIGRATION=y 208CONFIG_MIGRATION=y
198CONFIG_RESOURCES_64BIT=y
199CONFIG_PHYS_ADDR_T_64BIT=y 209CONFIG_PHYS_ADDR_T_64BIT=y
200CONFIG_ZONE_DMA_FLAG=1 210CONFIG_ZONE_DMA_FLAG=1
201CONFIG_BOUNCE=y 211CONFIG_BOUNCE=y
@@ -207,7 +217,6 @@ CONFIG_UNEVICTABLE_LRU=y
207# 217#
208CONFIG_MACHCHK_WARNING=y 218CONFIG_MACHCHK_WARNING=y
209CONFIG_QDIO=y 219CONFIG_QDIO=y
210# CONFIG_QDIO_DEBUG is not set
211CONFIG_CHSC_SCH=m 220CONFIG_CHSC_SCH=m
212 221
213# 222#
@@ -227,15 +236,13 @@ CONFIG_PFAULT=y
227# CONFIG_SHARED_KERNEL is not set 236# CONFIG_SHARED_KERNEL is not set
228# CONFIG_CMM is not set 237# CONFIG_CMM is not set
229# CONFIG_PAGE_STATES is not set 238# CONFIG_PAGE_STATES is not set
230CONFIG_VIRT_TIMER=y
231CONFIG_VIRT_CPU_ACCOUNTING=y
232# CONFIG_APPLDATA_BASE is not set 239# CONFIG_APPLDATA_BASE is not set
233CONFIG_HZ_100=y 240CONFIG_HZ_100=y
234# CONFIG_HZ_250 is not set 241# CONFIG_HZ_250 is not set
235# CONFIG_HZ_300 is not set 242# CONFIG_HZ_300 is not set
236# CONFIG_HZ_1000 is not set 243# CONFIG_HZ_1000 is not set
237CONFIG_HZ=100 244CONFIG_HZ=100
238# CONFIG_SCHED_HRTICK is not set 245CONFIG_SCHED_HRTICK=y
239CONFIG_S390_HYPFS_FS=y 246CONFIG_S390_HYPFS_FS=y
240CONFIG_KEXEC=y 247CONFIG_KEXEC=y
241# CONFIG_ZFCPDUMP is not set 248# CONFIG_ZFCPDUMP is not set
@@ -245,6 +252,7 @@ CONFIG_NET=y
245# 252#
246# Networking options 253# Networking options
247# 254#
255CONFIG_COMPAT_NET_DEV_OPS=y
248CONFIG_PACKET=y 256CONFIG_PACKET=y
249# CONFIG_PACKET_MMAP is not set 257# CONFIG_PACKET_MMAP is not set
250CONFIG_UNIX=y 258CONFIG_UNIX=y
@@ -383,6 +391,7 @@ CONFIG_NET_SCH_TBF=m
383CONFIG_NET_SCH_GRED=m 391CONFIG_NET_SCH_GRED=m
384CONFIG_NET_SCH_DSMARK=m 392CONFIG_NET_SCH_DSMARK=m
385# CONFIG_NET_SCH_NETEM is not set 393# CONFIG_NET_SCH_NETEM is not set
394# CONFIG_NET_SCH_DRR is not set
386# CONFIG_NET_SCH_INGRESS is not set 395# CONFIG_NET_SCH_INGRESS is not set
387 396
388# 397#
@@ -400,6 +409,7 @@ CONFIG_CLS_U32_MARK=y
400CONFIG_NET_CLS_RSVP=m 409CONFIG_NET_CLS_RSVP=m
401CONFIG_NET_CLS_RSVP6=m 410CONFIG_NET_CLS_RSVP6=m
402CONFIG_NET_CLS_FLOW=m 411CONFIG_NET_CLS_FLOW=m
412# CONFIG_NET_CLS_CGROUP is not set
403# CONFIG_NET_EMATCH is not set 413# CONFIG_NET_EMATCH is not set
404CONFIG_NET_CLS_ACT=y 414CONFIG_NET_CLS_ACT=y
405CONFIG_NET_ACT_POLICE=y 415CONFIG_NET_ACT_POLICE=y
@@ -411,6 +421,7 @@ CONFIG_NET_ACT_NAT=m
411# CONFIG_NET_ACT_SKBEDIT is not set 421# CONFIG_NET_ACT_SKBEDIT is not set
412# CONFIG_NET_CLS_IND is not set 422# CONFIG_NET_CLS_IND is not set
413CONFIG_NET_SCH_FIFO=y 423CONFIG_NET_SCH_FIFO=y
424# CONFIG_DCB is not set
414 425
415# 426#
416# Network testing 427# Network testing
@@ -428,6 +439,7 @@ CONFIG_CAN_VCAN=m
428# CONFIG_CAN_DEBUG_DEVICES is not set 439# CONFIG_CAN_DEBUG_DEVICES is not set
429# CONFIG_AF_RXRPC is not set 440# CONFIG_AF_RXRPC is not set
430# CONFIG_PHONET is not set 441# CONFIG_PHONET is not set
442# CONFIG_WIMAX is not set
431# CONFIG_RFKILL is not set 443# CONFIG_RFKILL is not set
432# CONFIG_NET_9P is not set 444# CONFIG_NET_9P is not set
433# CONFIG_PCMCIA is not set 445# CONFIG_PCMCIA is not set
@@ -475,11 +487,15 @@ CONFIG_DASD_DIAG=y
475CONFIG_DASD_EER=y 487CONFIG_DASD_EER=y
476CONFIG_VIRTIO_BLK=m 488CONFIG_VIRTIO_BLK=m
477CONFIG_MISC_DEVICES=y 489CONFIG_MISC_DEVICES=y
478# CONFIG_EEPROM_93CX6 is not set
479# CONFIG_ENCLOSURE_SERVICES is not set 490# CONFIG_ENCLOSURE_SERVICES is not set
480# CONFIG_C2PORT is not set 491# CONFIG_C2PORT is not set
481 492
482# 493#
494# EEPROM support
495#
496# CONFIG_EEPROM_93CX6 is not set
497
498#
483# SCSI device support 499# SCSI device support
484# 500#
485# CONFIG_RAID_ATTRS is not set 501# CONFIG_RAID_ATTRS is not set
@@ -520,6 +536,7 @@ CONFIG_SCSI_FC_ATTRS=y
520# CONFIG_SCSI_SRP_ATTRS is not set 536# CONFIG_SCSI_SRP_ATTRS is not set
521CONFIG_SCSI_LOWLEVEL=y 537CONFIG_SCSI_LOWLEVEL=y
522# CONFIG_ISCSI_TCP is not set 538# CONFIG_ISCSI_TCP is not set
539# CONFIG_LIBFC is not set
523# CONFIG_SCSI_DEBUG is not set 540# CONFIG_SCSI_DEBUG is not set
524CONFIG_ZFCP=y 541CONFIG_ZFCP=y
525CONFIG_SCSI_DH=m 542CONFIG_SCSI_DH=m
@@ -566,6 +583,10 @@ CONFIG_NET_ETHERNET=y
566CONFIG_NETDEV_1000=y 583CONFIG_NETDEV_1000=y
567CONFIG_NETDEV_10000=y 584CONFIG_NETDEV_10000=y
568# CONFIG_TR is not set 585# CONFIG_TR is not set
586
587#
588# Enable WiMAX (Networking options) to see the WiMAX drivers
589#
569# CONFIG_WAN is not set 590# CONFIG_WAN is not set
570 591
571# 592#
@@ -593,9 +614,11 @@ CONFIG_VIRTIO_NET=m
593# 614#
594CONFIG_DEVKMEM=y 615CONFIG_DEVKMEM=y
595CONFIG_UNIX98_PTYS=y 616CONFIG_UNIX98_PTYS=y
617# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
596CONFIG_LEGACY_PTYS=y 618CONFIG_LEGACY_PTYS=y
597CONFIG_LEGACY_PTY_COUNT=256 619CONFIG_LEGACY_PTY_COUNT=256
598CONFIG_HVC_DRIVER=y 620CONFIG_HVC_DRIVER=y
621CONFIG_HVC_IUCV=y
599CONFIG_VIRTIO_CONSOLE=y 622CONFIG_VIRTIO_CONSOLE=y
600CONFIG_HW_RANDOM=m 623CONFIG_HW_RANDOM=m
601CONFIG_HW_RANDOM_VIRTIO=m 624CONFIG_HW_RANDOM_VIRTIO=m
@@ -645,7 +668,6 @@ CONFIG_S390_VMUR=m
645# CONFIG_NEW_LEDS is not set 668# CONFIG_NEW_LEDS is not set
646CONFIG_ACCESSIBILITY=y 669CONFIG_ACCESSIBILITY=y
647# CONFIG_STAGING is not set 670# CONFIG_STAGING is not set
648CONFIG_STAGING_EXCLUDE_BUILD=y
649 671
650# 672#
651# File systems 673# File systems
@@ -668,6 +690,7 @@ CONFIG_FILE_LOCKING=y
668# CONFIG_XFS_FS is not set 690# CONFIG_XFS_FS is not set
669# CONFIG_GFS2_FS is not set 691# CONFIG_GFS2_FS is not set
670# CONFIG_OCFS2_FS is not set 692# CONFIG_OCFS2_FS is not set
693# CONFIG_BTRFS_FS is not set
671CONFIG_DNOTIFY=y 694CONFIG_DNOTIFY=y
672CONFIG_INOTIFY=y 695CONFIG_INOTIFY=y
673CONFIG_INOTIFY_USER=y 696CONFIG_INOTIFY_USER=y
@@ -703,10 +726,7 @@ CONFIG_TMPFS_POSIX_ACL=y
703# CONFIG_HUGETLBFS is not set 726# CONFIG_HUGETLBFS is not set
704# CONFIG_HUGETLB_PAGE is not set 727# CONFIG_HUGETLB_PAGE is not set
705CONFIG_CONFIGFS_FS=m 728CONFIG_CONFIGFS_FS=m
706 729CONFIG_MISC_FILESYSTEMS=y
707#
708# Miscellaneous filesystems
709#
710# CONFIG_ADFS_FS is not set 730# CONFIG_ADFS_FS is not set
711# CONFIG_AFFS_FS is not set 731# CONFIG_AFFS_FS is not set
712# CONFIG_HFS_FS is not set 732# CONFIG_HFS_FS is not set
@@ -715,6 +735,7 @@ CONFIG_CONFIGFS_FS=m
715# CONFIG_BFS_FS is not set 735# CONFIG_BFS_FS is not set
716# CONFIG_EFS_FS is not set 736# CONFIG_EFS_FS is not set
717# CONFIG_CRAMFS is not set 737# CONFIG_CRAMFS is not set
738# CONFIG_SQUASHFS is not set
718# CONFIG_VXFS_FS is not set 739# CONFIG_VXFS_FS is not set
719# CONFIG_MINIX_FS is not set 740# CONFIG_MINIX_FS is not set
720# CONFIG_OMFS_FS is not set 741# CONFIG_OMFS_FS is not set
@@ -808,6 +829,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
808CONFIG_DEBUG_MEMORY_INIT=y 829CONFIG_DEBUG_MEMORY_INIT=y
809# CONFIG_DEBUG_LIST is not set 830# CONFIG_DEBUG_LIST is not set
810# CONFIG_DEBUG_SG is not set 831# CONFIG_DEBUG_SG is not set
832# CONFIG_DEBUG_NOTIFIERS is not set
811# CONFIG_FRAME_POINTER is not set 833# CONFIG_FRAME_POINTER is not set
812# CONFIG_RCU_TORTURE_TEST is not set 834# CONFIG_RCU_TORTURE_TEST is not set
813# CONFIG_RCU_CPU_STALL_DETECTOR is not set 835# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -818,15 +840,19 @@ CONFIG_DEBUG_MEMORY_INIT=y
818# CONFIG_FAULT_INJECTION is not set 840# CONFIG_FAULT_INJECTION is not set
819# CONFIG_LATENCYTOP is not set 841# CONFIG_LATENCYTOP is not set
820CONFIG_SYSCTL_SYSCALL_CHECK=y 842CONFIG_SYSCTL_SYSCALL_CHECK=y
843CONFIG_HAVE_FUNCTION_TRACER=y
821 844
822# 845#
823# Tracers 846# Tracers
824# 847#
848# CONFIG_FUNCTION_TRACER is not set
825# CONFIG_IRQSOFF_TRACER is not set 849# CONFIG_IRQSOFF_TRACER is not set
826# CONFIG_PREEMPT_TRACER is not set 850# CONFIG_PREEMPT_TRACER is not set
827# CONFIG_SCHED_TRACER is not set 851# CONFIG_SCHED_TRACER is not set
828# CONFIG_CONTEXT_SWITCH_TRACER is not set 852# CONFIG_CONTEXT_SWITCH_TRACER is not set
829# CONFIG_BOOT_TRACER is not set 853# CONFIG_BOOT_TRACER is not set
854# CONFIG_TRACE_BRANCH_PROFILING is not set
855# CONFIG_STACK_TRACER is not set
830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 856# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
831CONFIG_SAMPLES=y 857CONFIG_SAMPLES=y
832# CONFIG_SAMPLE_KOBJECT is not set 858# CONFIG_SAMPLE_KOBJECT is not set
@@ -847,11 +873,17 @@ CONFIG_CRYPTO=y
847# 873#
848CONFIG_CRYPTO_FIPS=y 874CONFIG_CRYPTO_FIPS=y
849CONFIG_CRYPTO_ALGAPI=y 875CONFIG_CRYPTO_ALGAPI=y
850CONFIG_CRYPTO_AEAD=y 876CONFIG_CRYPTO_ALGAPI2=y
877CONFIG_CRYPTO_AEAD=m
878CONFIG_CRYPTO_AEAD2=y
851CONFIG_CRYPTO_BLKCIPHER=y 879CONFIG_CRYPTO_BLKCIPHER=y
852CONFIG_CRYPTO_HASH=y 880CONFIG_CRYPTO_BLKCIPHER2=y
853CONFIG_CRYPTO_RNG=y 881CONFIG_CRYPTO_HASH=m
882CONFIG_CRYPTO_HASH2=y
883CONFIG_CRYPTO_RNG=m
884CONFIG_CRYPTO_RNG2=y
854CONFIG_CRYPTO_MANAGER=y 885CONFIG_CRYPTO_MANAGER=y
886CONFIG_CRYPTO_MANAGER2=y
855CONFIG_CRYPTO_GF128MUL=m 887CONFIG_CRYPTO_GF128MUL=m
856# CONFIG_CRYPTO_NULL is not set 888# CONFIG_CRYPTO_NULL is not set
857# CONFIG_CRYPTO_CRYPTD is not set 889# CONFIG_CRYPTO_CRYPTD is not set
@@ -885,7 +917,7 @@ CONFIG_CRYPTO_HMAC=m
885# 917#
886# Digest 918# Digest
887# 919#
888# CONFIG_CRYPTO_CRC32C is not set 920CONFIG_CRYPTO_CRC32C=m
889# CONFIG_CRYPTO_MD4 is not set 921# CONFIG_CRYPTO_MD4 is not set
890CONFIG_CRYPTO_MD5=m 922CONFIG_CRYPTO_MD5=m
891# CONFIG_CRYPTO_MICHAEL_MIC is not set 923# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -942,6 +974,7 @@ CONFIG_S390_PRNG=m
942# Library routines 974# Library routines
943# 975#
944CONFIG_BITREVERSE=m 976CONFIG_BITREVERSE=m
977CONFIG_GENERIC_FIND_LAST_BIT=y
945# CONFIG_CRC_CCITT is not set 978# CONFIG_CRC_CCITT is not set
946# CONFIG_CRC16 is not set 979# CONFIG_CRC16 is not set
947CONFIG_CRC_T10DIF=y 980CONFIG_CRC_T10DIF=y
diff --git a/arch/s390/include/asm/Kbuild b/arch/s390/include/asm/Kbuild
index f2af4167bd5f..63a23415fba6 100644
--- a/arch/s390/include/asm/Kbuild
+++ b/arch/s390/include/asm/Kbuild
@@ -13,4 +13,3 @@ unifdef-y += cmb.h
13unifdef-y += debug.h 13unifdef-y += debug.h
14unifdef-y += chpid.h 14unifdef-y += chpid.h
15unifdef-y += schid.h 15unifdef-y += schid.h
16unifdef-y += swab.h
diff --git a/arch/s390/include/asm/byteorder.h b/arch/s390/include/asm/byteorder.h
index b95a2b2933fb..a332e59e26fc 100644
--- a/arch/s390/include/asm/byteorder.h
+++ b/arch/s390/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _S390_BYTEORDER_H 1#ifndef _S390_BYTEORDER_H
2#define _S390_BYTEORDER_H 2#define _S390_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h> 4#include <linux/byteorder/big_endian.h>
6 5
7#endif /* _S390_BYTEORDER_H */ 6#endif /* _S390_BYTEORDER_H */
diff --git a/arch/s390/include/asm/cputime.h b/arch/s390/include/asm/cputime.h
index 521726430afa..95b0f7db3c69 100644
--- a/arch/s390/include/asm/cputime.h
+++ b/arch/s390/include/asm/cputime.h
@@ -145,7 +145,7 @@ cputime_to_timeval(const cputime_t cputime, struct timeval *value)
145 value->tv_usec = rp.subreg.even / 4096; 145 value->tv_usec = rp.subreg.even / 4096;
146 value->tv_sec = rp.subreg.odd; 146 value->tv_sec = rp.subreg.odd;
147#else 147#else
148 value->tv_usec = cputime % 4096000000ULL; 148 value->tv_usec = (cputime % 4096000000ULL) / 4096;
149 value->tv_sec = cputime / 4096000000ULL; 149 value->tv_sec = cputime / 4096000000ULL;
150#endif 150#endif
151} 151}
diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
index d480f39d65e6..74d0bbb7d955 100644
--- a/arch/s390/include/asm/elf.h
+++ b/arch/s390/include/asm/elf.h
@@ -172,14 +172,14 @@ extern char elf_platform[];
172#ifndef __s390x__ 172#ifndef __s390x__
173#define SET_PERSONALITY(ex) set_personality(PER_LINUX) 173#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
174#else /* __s390x__ */ 174#else /* __s390x__ */
175#define SET_PERSONALITY(ex) \ 175#define SET_PERSONALITY(ex) \
176do { \ 176do { \
177 if (current->personality != PER_LINUX32) \ 177 if (personality(current->personality) != PER_LINUX32) \
178 set_personality(PER_LINUX); \ 178 set_personality(PER_LINUX); \
179 if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ 179 if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \
180 set_thread_flag(TIF_31BIT); \ 180 set_thread_flag(TIF_31BIT); \
181 else \ 181 else \
182 clear_thread_flag(TIF_31BIT); \ 182 clear_thread_flag(TIF_31BIT); \
183} while (0) 183} while (0)
184#endif /* __s390x__ */ 184#endif /* __s390x__ */
185 185
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h
index ffdef5fe8587..f3720defdd16 100644
--- a/arch/s390/include/asm/lowcore.h
+++ b/arch/s390/include/asm/lowcore.h
@@ -384,8 +384,8 @@ struct _lowcore
384 __u32 panic_magic; /* 0xe00 */ 384 __u32 panic_magic; /* 0xe00 */
385 385
386 /* Per cpu primary space access list */ 386 /* Per cpu primary space access list */
387 __u8 pad_0xe04[0xe3c-0xe04]; /* 0xe04 */ 387 __u8 pad_0xe04[0xe38-0xe04]; /* 0xe04 */
388 __u32 vdso_per_cpu_data; /* 0xe3c */ 388 __u64 vdso_per_cpu_data; /* 0xe38 */
389 __u32 paste[16]; /* 0xe40 */ 389 __u32 paste[16]; /* 0xe40 */
390 390
391 __u8 pad13[0x11b8-0xe80]; /* 0xe80 */ 391 __u8 pad13[0x11b8-0xe80]; /* 0xe80 */
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h
index 2bd9faeb3919..e8bd6ac22c99 100644
--- a/arch/s390/include/asm/setup.h
+++ b/arch/s390/include/asm/setup.h
@@ -43,6 +43,8 @@ struct mem_chunk {
43 43
44extern struct mem_chunk memory_chunk[]; 44extern struct mem_chunk memory_chunk[];
45extern unsigned long real_memory_size; 45extern unsigned long real_memory_size;
46extern int memory_end_set;
47extern unsigned long memory_end;
46 48
47void detect_memory_layout(struct mem_chunk chunk[]); 49void detect_memory_layout(struct mem_chunk chunk[]);
48 50
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index fc2c97197a53..62c706eb0de6 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -547,7 +547,7 @@ sys32_setdomainname_wrapper:
547 .globl sys32_newuname_wrapper 547 .globl sys32_newuname_wrapper
548sys32_newuname_wrapper: 548sys32_newuname_wrapper:
549 llgtr %r2,%r2 # struct new_utsname * 549 llgtr %r2,%r2 # struct new_utsname *
550 jg s390x_newuname # branch to system call 550 jg sys_s390_newuname # branch to system call
551 551
552 .globl compat_sys_adjtimex_wrapper 552 .globl compat_sys_adjtimex_wrapper
553compat_sys_adjtimex_wrapper: 553compat_sys_adjtimex_wrapper:
@@ -615,7 +615,7 @@ sys32_sysfs_wrapper:
615 .globl sys32_personality_wrapper 615 .globl sys32_personality_wrapper
616sys32_personality_wrapper: 616sys32_personality_wrapper:
617 llgfr %r2,%r2 # unsigned long 617 llgfr %r2,%r2 # unsigned long
618 jg s390x_personality # branch to system call 618 jg sys_s390_personality # branch to system call
619 619
620 .globl sys32_setfsuid16_wrapper 620 .globl sys32_setfsuid16_wrapper
621sys32_setfsuid16_wrapper: 621sys32_setfsuid16_wrapper:
@@ -1767,3 +1767,41 @@ sys_dup3_wrapper:
1767sys_epoll_create1_wrapper: 1767sys_epoll_create1_wrapper:
1768 lgfr %r2,%r2 # int 1768 lgfr %r2,%r2 # int
1769 jg sys_epoll_create1 # branch to system call 1769 jg sys_epoll_create1 # branch to system call
1770
1771 .globl sys32_readahead_wrapper
1772sys32_readahead_wrapper:
1773 lgfr %r2,%r2 # int
1774 llgfr %r3,%r3 # u32
1775 llgfr %r4,%r4 # u32
1776 lgfr %r5,%r5 # s32
1777 jg sys32_readahead # branch to system call
1778
1779 .globl sys32_sendfile64_wrapper
1780sys32_sendfile64_wrapper:
1781 lgfr %r2,%r2 # int
1782 lgfr %r3,%r3 # int
1783 llgtr %r4,%r4 # compat_loff_t *
1784 lgfr %r5,%r5 # s32
1785 jg sys32_sendfile64 # branch to system call
1786
1787 .globl sys_tkill_wrapper
1788sys_tkill_wrapper:
1789 lgfr %r2,%r2 # pid_t
1790 lgfr %r3,%r3 # int
1791 jg sys_tkill # branch to system call
1792
1793 .globl sys_tgkill_wrapper
1794sys_tgkill_wrapper:
1795 lgfr %r2,%r2 # pid_t
1796 lgfr %r3,%r3 # pid_t
1797 lgfr %r4,%r4 # int
1798 jg sys_tgkill # branch to system call
1799
1800 .globl compat_sys_keyctl_wrapper
1801compat_sys_keyctl_wrapper:
1802 llgfr %r2,%r2 # u32
1803 llgfr %r3,%r3 # u32
1804 llgfr %r4,%r4 # u32
1805 llgfr %r5,%r5 # u32
1806 llgfr %r6,%r6 # u32
1807 jg compat_sys_keyctl # branch to system call
diff --git a/arch/s390/kernel/entry.h b/arch/s390/kernel/entry.h
index a65afc91e8aa..950c59c6688b 100644
--- a/arch/s390/kernel/entry.h
+++ b/arch/s390/kernel/entry.h
@@ -30,23 +30,23 @@ struct fadvise64_64_args;
30struct old_sigaction; 30struct old_sigaction;
31struct sel_arg_struct; 31struct sel_arg_struct;
32 32
33long sys_pipe(unsigned long __user *fildes);
34long sys_mmap2(struct mmap_arg_struct __user *arg); 33long sys_mmap2(struct mmap_arg_struct __user *arg);
35long old_mmap(struct mmap_arg_struct __user *arg); 34long sys_s390_old_mmap(struct mmap_arg_struct __user *arg);
36long sys_ipc(uint call, int first, unsigned long second, 35long sys_ipc(uint call, int first, unsigned long second,
37 unsigned long third, void __user *ptr); 36 unsigned long third, void __user *ptr);
38long s390x_newuname(struct new_utsname __user *name); 37long sys_s390_newuname(struct new_utsname __user *name);
39long s390x_personality(unsigned long personality); 38long sys_s390_personality(unsigned long personality);
40long s390_fadvise64(int fd, u32 offset_high, u32 offset_low, 39long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low,
41 size_t len, int advice); 40 size_t len, int advice);
42long s390_fadvise64_64(struct fadvise64_64_args __user *args); 41long sys_s390_fadvise64_64(struct fadvise64_64_args __user *args);
43long s390_fallocate(int fd, int mode, loff_t offset, u32 len_high, u32 len_low); 42long sys_s390_fallocate(int fd, int mode, loff_t offset, u32 len_high,
43 u32 len_low);
44long sys_fork(void); 44long sys_fork(void);
45long sys_clone(void); 45long sys_clone(void);
46long sys_vfork(void); 46long sys_vfork(void);
47void execve_tail(void); 47void execve_tail(void);
48long sys_execve(void); 48long sys_execve(void);
49int sys_sigsuspend(int history0, int history1, old_sigset_t mask); 49long sys_sigsuspend(int history0, int history1, old_sigset_t mask);
50long sys_sigaction(int sig, const struct old_sigaction __user *act, 50long sys_sigaction(int sig, const struct old_sigaction __user *act,
51 struct old_sigaction __user *oact); 51 struct old_sigaction __user *oact);
52long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss); 52long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss);
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index e7c5bfb7c755..026a37a94fc9 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -95,6 +95,7 @@ asmlinkage void do_softirq(void)
95 local_irq_restore(flags); 95 local_irq_restore(flags);
96} 96}
97 97
98#ifdef CONFIG_PROC_FS
98void init_irq_proc(void) 99void init_irq_proc(void)
99{ 100{
100 struct proc_dir_entry *root_irq_dir; 101 struct proc_dir_entry *root_irq_dir;
@@ -102,3 +103,4 @@ void init_irq_proc(void)
102 root_irq_dir = proc_mkdir("irq", NULL); 103 root_irq_dir = proc_mkdir("irq", NULL);
103 create_prof_cpu_mask(root_irq_dir); 104 create_prof_cpu_mask(root_irq_dir);
104} 105}
106#endif
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index b6110bdf8dc2..5cd38a90e64d 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -39,6 +39,7 @@
39#include <linux/tick.h> 39#include <linux/tick.h>
40#include <linux/elfcore.h> 40#include <linux/elfcore.h>
41#include <linux/kernel_stat.h> 41#include <linux/kernel_stat.h>
42#include <linux/syscalls.h>
42#include <asm/uaccess.h> 43#include <asm/uaccess.h>
43#include <asm/pgtable.h> 44#include <asm/pgtable.h>
44#include <asm/system.h> 45#include <asm/system.h>
@@ -225,13 +226,13 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp,
225 return 0; 226 return 0;
226} 227}
227 228
228asmlinkage long sys_fork(void) 229SYSCALL_DEFINE0(fork)
229{ 230{
230 struct pt_regs *regs = task_pt_regs(current); 231 struct pt_regs *regs = task_pt_regs(current);
231 return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL); 232 return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL);
232} 233}
233 234
234asmlinkage long sys_clone(void) 235SYSCALL_DEFINE0(clone)
235{ 236{
236 struct pt_regs *regs = task_pt_regs(current); 237 struct pt_regs *regs = task_pt_regs(current);
237 unsigned long clone_flags; 238 unsigned long clone_flags;
@@ -258,7 +259,7 @@ asmlinkage long sys_clone(void)
258 * do not have enough call-clobbered registers to hold all 259 * do not have enough call-clobbered registers to hold all
259 * the information you need. 260 * the information you need.
260 */ 261 */
261asmlinkage long sys_vfork(void) 262SYSCALL_DEFINE0(vfork)
262{ 263{
263 struct pt_regs *regs = task_pt_regs(current); 264 struct pt_regs *regs = task_pt_regs(current);
264 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 265 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
@@ -278,7 +279,7 @@ asmlinkage void execve_tail(void)
278/* 279/*
279 * sys_execve() executes a new program. 280 * sys_execve() executes a new program.
280 */ 281 */
281asmlinkage long sys_execve(void) 282SYSCALL_DEFINE0(execve)
282{ 283{
283 struct pt_regs *regs = task_pt_regs(current); 284 struct pt_regs *regs = task_pt_regs(current);
284 char *filename; 285 char *filename;
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index d825f4950e4e..c5cfb6185eac 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -82,7 +82,9 @@ char elf_platform[ELF_PLATFORM_SIZE];
82 82
83struct mem_chunk __initdata memory_chunk[MEMORY_CHUNKS]; 83struct mem_chunk __initdata memory_chunk[MEMORY_CHUNKS];
84volatile int __cpu_logical_map[NR_CPUS]; /* logical cpu to cpu address */ 84volatile int __cpu_logical_map[NR_CPUS]; /* logical cpu to cpu address */
85static unsigned long __initdata memory_end; 85
86int __initdata memory_end_set;
87unsigned long __initdata memory_end;
86 88
87/* 89/*
88 * This is set up by the setup-routine at boot-time 90 * This is set up by the setup-routine at boot-time
@@ -281,6 +283,7 @@ void (*pm_power_off)(void) = machine_power_off;
281static int __init early_parse_mem(char *p) 283static int __init early_parse_mem(char *p)
282{ 284{
283 memory_end = memparse(p, &p); 285 memory_end = memparse(p, &p);
286 memory_end_set = 1;
284 return 0; 287 return 0;
285} 288}
286early_param("mem", early_parse_mem); 289early_param("mem", early_parse_mem);
@@ -508,8 +511,10 @@ static void __init setup_memory_end(void)
508 int i; 511 int i;
509 512
510#if defined(CONFIG_ZFCPDUMP) || defined(CONFIG_ZFCPDUMP_MODULE) 513#if defined(CONFIG_ZFCPDUMP) || defined(CONFIG_ZFCPDUMP_MODULE)
511 if (ipl_info.type == IPL_TYPE_FCP_DUMP) 514 if (ipl_info.type == IPL_TYPE_FCP_DUMP) {
512 memory_end = ZFCPDUMP_HSA_SIZE; 515 memory_end = ZFCPDUMP_HSA_SIZE;
516 memory_end_set = 1;
517 }
513#endif 518#endif
514 memory_size = 0; 519 memory_size = 0;
515 memory_end &= PAGE_MASK; 520 memory_end &= PAGE_MASK;
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
index 8e6812a22670..3cf74c3ccb69 100644
--- a/arch/s390/kernel/signal.c
+++ b/arch/s390/kernel/signal.c
@@ -25,6 +25,7 @@
25#include <linux/personality.h> 25#include <linux/personality.h>
26#include <linux/binfmts.h> 26#include <linux/binfmts.h>
27#include <linux/tracehook.h> 27#include <linux/tracehook.h>
28#include <linux/syscalls.h>
28#include <asm/ucontext.h> 29#include <asm/ucontext.h>
29#include <asm/uaccess.h> 30#include <asm/uaccess.h>
30#include <asm/lowcore.h> 31#include <asm/lowcore.h>
@@ -53,8 +54,7 @@ typedef struct
53/* 54/*
54 * Atomically swap in the new signal mask, and wait for a signal. 55 * Atomically swap in the new signal mask, and wait for a signal.
55 */ 56 */
56asmlinkage int 57SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask)
57sys_sigsuspend(int history0, int history1, old_sigset_t mask)
58{ 58{
59 mask &= _BLOCKABLE; 59 mask &= _BLOCKABLE;
60 spin_lock_irq(&current->sighand->siglock); 60 spin_lock_irq(&current->sighand->siglock);
@@ -70,9 +70,8 @@ sys_sigsuspend(int history0, int history1, old_sigset_t mask)
70 return -ERESTARTNOHAND; 70 return -ERESTARTNOHAND;
71} 71}
72 72
73asmlinkage long 73SYSCALL_DEFINE3(sigaction, int, sig, const struct old_sigaction __user *, act,
74sys_sigaction(int sig, const struct old_sigaction __user *act, 74 struct old_sigaction __user *, oact)
75 struct old_sigaction __user *oact)
76{ 75{
77 struct k_sigaction new_ka, old_ka; 76 struct k_sigaction new_ka, old_ka;
78 int ret; 77 int ret;
@@ -102,15 +101,13 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
102 return ret; 101 return ret;
103} 102}
104 103
105asmlinkage long 104SYSCALL_DEFINE2(sigaltstack, const stack_t __user *, uss,
106sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) 105 stack_t __user *, uoss)
107{ 106{
108 struct pt_regs *regs = task_pt_regs(current); 107 struct pt_regs *regs = task_pt_regs(current);
109 return do_sigaltstack(uss, uoss, regs->gprs[15]); 108 return do_sigaltstack(uss, uoss, regs->gprs[15]);
110} 109}
111 110
112
113
114/* Returns non-zero on fault. */ 111/* Returns non-zero on fault. */
115static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs) 112static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
116{ 113{
@@ -164,7 +161,7 @@ static int restore_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
164 return 0; 161 return 0;
165} 162}
166 163
167asmlinkage long sys_sigreturn(void) 164SYSCALL_DEFINE0(sigreturn)
168{ 165{
169 struct pt_regs *regs = task_pt_regs(current); 166 struct pt_regs *regs = task_pt_regs(current);
170 sigframe __user *frame = (sigframe __user *)regs->gprs[15]; 167 sigframe __user *frame = (sigframe __user *)regs->gprs[15];
@@ -191,7 +188,7 @@ badframe:
191 return 0; 188 return 0;
192} 189}
193 190
194asmlinkage long sys_rt_sigreturn(void) 191SYSCALL_DEFINE0(rt_sigreturn)
195{ 192{
196 struct pt_regs *regs = task_pt_regs(current); 193 struct pt_regs *regs = task_pt_regs(current);
197 rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15]; 194 rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15];
diff --git a/arch/s390/kernel/sys_s390.c b/arch/s390/kernel/sys_s390.c
index c34be4568b80..c7ae4b17e0e3 100644
--- a/arch/s390/kernel/sys_s390.c
+++ b/arch/s390/kernel/sys_s390.c
@@ -29,6 +29,7 @@
29#include <linux/personality.h> 29#include <linux/personality.h>
30#include <linux/unistd.h> 30#include <linux/unistd.h>
31#include <linux/ipc.h> 31#include <linux/ipc.h>
32#include <linux/syscalls.h>
32#include <asm/uaccess.h> 33#include <asm/uaccess.h>
33#include "entry.h" 34#include "entry.h"
34 35
@@ -74,7 +75,7 @@ struct mmap_arg_struct {
74 unsigned long offset; 75 unsigned long offset;
75}; 76};
76 77
77asmlinkage long sys_mmap2(struct mmap_arg_struct __user *arg) 78SYSCALL_DEFINE1(mmap2, struct mmap_arg_struct __user *, arg)
78{ 79{
79 struct mmap_arg_struct a; 80 struct mmap_arg_struct a;
80 int error = -EFAULT; 81 int error = -EFAULT;
@@ -86,7 +87,7 @@ out:
86 return error; 87 return error;
87} 88}
88 89
89asmlinkage long old_mmap(struct mmap_arg_struct __user *arg) 90SYSCALL_DEFINE1(s390_old_mmap, struct mmap_arg_struct __user *, arg)
90{ 91{
91 struct mmap_arg_struct a; 92 struct mmap_arg_struct a;
92 long error = -EFAULT; 93 long error = -EFAULT;
@@ -108,8 +109,8 @@ out:
108 * 109 *
109 * This is really horribly ugly. 110 * This is really horribly ugly.
110 */ 111 */
111asmlinkage long sys_ipc(uint call, int first, unsigned long second, 112SYSCALL_DEFINE5(ipc, uint, call, int, first, unsigned long, second,
112 unsigned long third, void __user *ptr) 113 unsigned long, third, void __user *, ptr)
113{ 114{
114 struct ipc_kludge tmp; 115 struct ipc_kludge tmp;
115 int ret; 116 int ret;
@@ -175,7 +176,7 @@ asmlinkage long sys_ipc(uint call, int first, unsigned long second,
175} 176}
176 177
177#ifdef CONFIG_64BIT 178#ifdef CONFIG_64BIT
178asmlinkage long s390x_newuname(struct new_utsname __user *name) 179SYSCALL_DEFINE1(s390_newuname, struct new_utsname __user *, name)
179{ 180{
180 int ret = sys_newuname(name); 181 int ret = sys_newuname(name);
181 182
@@ -186,7 +187,7 @@ asmlinkage long s390x_newuname(struct new_utsname __user *name)
186 return ret; 187 return ret;
187} 188}
188 189
189asmlinkage long s390x_personality(unsigned long personality) 190SYSCALL_DEFINE1(s390_personality, unsigned long, personality)
190{ 191{
191 int ret; 192 int ret;
192 193
@@ -205,15 +206,13 @@ asmlinkage long s390x_personality(unsigned long personality)
205 */ 206 */
206#ifndef CONFIG_64BIT 207#ifndef CONFIG_64BIT
207 208
208asmlinkage long 209SYSCALL_DEFINE5(s390_fadvise64, int, fd, u32, offset_high, u32, offset_low,
209s390_fadvise64(int fd, u32 offset_high, u32 offset_low, size_t len, int advice) 210 size_t, len, int, advice)
210{ 211{
211 return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low, 212 return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low,
212 len, advice); 213 len, advice);
213} 214}
214 215
215#endif
216
217struct fadvise64_64_args { 216struct fadvise64_64_args {
218 int fd; 217 int fd;
219 long long offset; 218 long long offset;
@@ -221,8 +220,7 @@ struct fadvise64_64_args {
221 int advice; 220 int advice;
222}; 221};
223 222
224asmlinkage long 223SYSCALL_DEFINE1(s390_fadvise64_64, struct fadvise64_64_args __user *, args)
225s390_fadvise64_64(struct fadvise64_64_args __user *args)
226{ 224{
227 struct fadvise64_64_args a; 225 struct fadvise64_64_args a;
228 226
@@ -231,7 +229,6 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args)
231 return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice); 229 return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice);
232} 230}
233 231
234#ifndef CONFIG_64BIT
235/* 232/*
236 * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last 233 * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last
237 * 64 bit argument "len" is split into the upper and lower 32 bits. The 234 * 64 bit argument "len" is split into the upper and lower 32 bits. The
@@ -244,9 +241,19 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args)
244 * to 241 * to
245 * %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len 242 * %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len
246 */ 243 */
247asmlinkage long s390_fallocate(int fd, int mode, loff_t offset, 244SYSCALL_DEFINE(s390_fallocate)(int fd, int mode, loff_t offset,
248 u32 len_high, u32 len_low) 245 u32 len_high, u32 len_low)
249{ 246{
250 return sys_fallocate(fd, mode, offset, ((u64)len_high << 32) | len_low); 247 return sys_fallocate(fd, mode, offset, ((u64)len_high << 32) | len_low);
251} 248}
249#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
250asmlinkage long SyS_s390_fallocate(long fd, long mode, loff_t offset,
251 long len_high, long len_low)
252{
253 return SYSC_s390_fallocate((int) fd, (int) mode, offset,
254 (u32) len_high, (u32) len_low);
255}
256SYSCALL_ALIAS(sys_s390_fallocate, SyS_s390_fallocate);
257#endif
258
252#endif 259#endif
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index 2d61787949d5..fe5b25a988ab 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -98,7 +98,7 @@ SYSCALL(sys_uselib,sys_uselib,sys32_uselib_wrapper)
98SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper) 98SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper)
99SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper) 99SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper)
100SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */ 100SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */
101SYSCALL(old_mmap,old_mmap,old32_mmap_wrapper) /* 90 */ 101SYSCALL(sys_s390_old_mmap,sys_s390_old_mmap,old32_mmap_wrapper) /* 90 */
102SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper) 102SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper)
103SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper) 103SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper)
104SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper) 104SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper)
@@ -130,7 +130,7 @@ SYSCALL(sys_fsync,sys_fsync,sys32_fsync_wrapper)
130SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn) 130SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn)
131SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */ 131SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */
132SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper) 132SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper)
133SYSCALL(sys_newuname,s390x_newuname,sys32_newuname_wrapper) 133SYSCALL(sys_newuname,sys_s390_newuname,sys32_newuname_wrapper)
134NI_SYSCALL /* modify_ldt for i386 */ 134NI_SYSCALL /* modify_ldt for i386 */
135SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper) 135SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper)
136SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */ 136SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */
@@ -144,7 +144,7 @@ SYSCALL(sys_getpgid,sys_getpgid,sys32_getpgid_wrapper)
144SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper) 144SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper)
145SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper) 145SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper)
146SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */ 146SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */
147SYSCALL(sys_personality,s390x_personality,sys32_personality_wrapper) 147SYSCALL(sys_personality,sys_s390_personality,sys32_personality_wrapper)
148NI_SYSCALL /* for afs_syscall */ 148NI_SYSCALL /* for afs_syscall */
149SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */ 149SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */
150SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */ 150SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */
@@ -194,7 +194,7 @@ SYSCALL(sys_chown16,sys_ni_syscall,sys32_chown16_wrapper) /* old chown16 syscall
194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper) 194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper) 195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper)
196SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */ 196SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */
197SYSCALL(sys_sigaltstack,sys_sigaltstack,sys32_sigaltstack) 197SYSCALL(sys_sigaltstack,sys_sigaltstack,sys32_sigaltstack_wrapper)
198SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper) 198SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper)
199NI_SYSCALL /* streams1 */ 199NI_SYSCALL /* streams1 */
200NI_SYSCALL /* streams2 */ 200NI_SYSCALL /* streams2 */
@@ -230,8 +230,8 @@ SYSCALL(sys_mincore,sys_mincore,sys32_mincore_wrapper)
230SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper) 230SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
231SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */ 231SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */
232SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper) 232SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper)
233SYSCALL(sys_readahead,sys_readahead,sys32_readahead) 233SYSCALL(sys_readahead,sys_readahead,sys32_readahead_wrapper)
234SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64) 234SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64_wrapper)
235SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper) 235SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper)
236SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */ 236SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */
237SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper) 237SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper)
@@ -245,11 +245,11 @@ SYSCALL(sys_removexattr,sys_removexattr,sys32_removexattr_wrapper)
245SYSCALL(sys_lremovexattr,sys_lremovexattr,sys32_lremovexattr_wrapper) 245SYSCALL(sys_lremovexattr,sys_lremovexattr,sys32_lremovexattr_wrapper)
246SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */ 246SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */
247SYSCALL(sys_gettid,sys_gettid,sys_gettid) 247SYSCALL(sys_gettid,sys_gettid,sys_gettid)
248SYSCALL(sys_tkill,sys_tkill,sys_tkill) 248SYSCALL(sys_tkill,sys_tkill,sys_tkill_wrapper)
249SYSCALL(sys_futex,sys_futex,compat_sys_futex_wrapper) 249SYSCALL(sys_futex,sys_futex,compat_sys_futex_wrapper)
250SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper) 250SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper)
251SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */ 251SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */
252SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill) 252SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill_wrapper)
253NI_SYSCALL /* reserved for TUX */ 253NI_SYSCALL /* reserved for TUX */
254SYSCALL(sys_io_setup,sys_io_setup,sys32_io_setup_wrapper) 254SYSCALL(sys_io_setup,sys_io_setup,sys32_io_setup_wrapper)
255SYSCALL(sys_io_destroy,sys_io_destroy,sys32_io_destroy_wrapper) 255SYSCALL(sys_io_destroy,sys_io_destroy,sys32_io_destroy_wrapper)
@@ -261,7 +261,7 @@ SYSCALL(sys_epoll_create,sys_epoll_create,sys_epoll_create_wrapper)
261SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */ 261SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */
262SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper) 262SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper)
263SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper) 263SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper)
264SYSCALL(s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper) 264SYSCALL(sys_s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper)
265SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper) 265SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper)
266SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */ 266SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */
267SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper) 267SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper)
@@ -272,7 +272,7 @@ SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260
272SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) 272SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
273SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper) 273SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper)
274NI_SYSCALL /* reserved for vserver */ 274NI_SYSCALL /* reserved for vserver */
275SYSCALL(s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) 275SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
276SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) 276SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
277SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) 277SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
278SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper) 278SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper)
@@ -288,7 +288,7 @@ SYSCALL(sys_mq_getsetattr,sys_mq_getsetattr,compat_sys_mq_getsetattr_wrapper)
288SYSCALL(sys_kexec_load,sys_kexec_load,compat_sys_kexec_load_wrapper) 288SYSCALL(sys_kexec_load,sys_kexec_load,compat_sys_kexec_load_wrapper)
289SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper) 289SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper)
290SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper) 290SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper)
291SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl) /* 280 */ 291SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl_wrapper) /* 280 */
292SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid_wrapper) 292SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid_wrapper)
293SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper) 293SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper)
294SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper) 294SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper)
@@ -322,7 +322,7 @@ 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)
325SYSCALL(s390_fallocate,sys_fallocate,sys_fallocate_wrapper) 325SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper)
326SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ 326SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */
327SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper) 327SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper)
328NI_SYSCALL /* 317 old sys_timer_fd */ 328NI_SYSCALL /* 317 old sys_timer_fd */
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index d649600df5b9..fc468cae4460 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -399,8 +399,10 @@ static struct workqueue_struct *time_sync_wq;
399 399
400static void __init time_init_wq(void) 400static void __init time_init_wq(void)
401{ 401{
402 if (!time_sync_wq) 402 if (time_sync_wq)
403 time_sync_wq = create_singlethread_workqueue("timesync"); 403 return;
404 time_sync_wq = create_singlethread_workqueue("timesync");
405 stop_machine_create();
404} 406}
405 407
406/* 408/*
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index 2fb36e462194..ecf0304e61c1 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -516,8 +516,12 @@ EXPORT_SYMBOL(del_virt_timer);
516 */ 516 */
517void init_cpu_vtimer(void) 517void init_cpu_vtimer(void)
518{ 518{
519 struct thread_info *ti = current_thread_info();
519 struct vtimer_queue *vq; 520 struct vtimer_queue *vq;
520 521
522 S390_lowcore.user_timer = ti->user_timer;
523 S390_lowcore.system_timer = ti->system_timer;
524
521 /* kick the virtual timer */ 525 /* kick the virtual timer */
522 asm volatile ("STCK %0" : "=m" (S390_lowcore.last_update_clock)); 526 asm volatile ("STCK %0" : "=m" (S390_lowcore.last_update_clock));
523 asm volatile ("STPT %0" : "=m" (S390_lowcore.last_update_timer)); 527 asm volatile ("STPT %0" : "=m" (S390_lowcore.last_update_timer));
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index be8497186b96..0d33893e1e89 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -212,6 +212,10 @@ static void kvm_free_vcpus(struct kvm *kvm)
212 } 212 }
213} 213}
214 214
215void kvm_arch_sync_events(struct kvm *kvm)
216{
217}
218
215void kvm_arch_destroy_vm(struct kvm *kvm) 219void kvm_arch_destroy_vm(struct kvm *kvm)
216{ 220{
217 kvm_free_vcpus(kvm); 221 kvm_free_vcpus(kvm);
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index f32a5197128d..ebabe518e729 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -644,66 +644,25 @@ endmenu
644 644
645menu "Bus options" 645menu "Bus options"
646 646
647# Even on SuperH devices which don't have an ISA bus,
648# this variable helps the PCMCIA modules handle
649# IRQ requesting properly -- Greg Banks.
650#
651# Though we're generally not interested in it when
652# we're not using PCMCIA, so we make it dependent on
653# PCMCIA outright. -- PFM.
654config ISA
655 def_bool y
656 depends on PCMCIA && HD6446X_SERIES
657 help
658 Find out whether you have ISA slots on your motherboard. ISA is the
659 name of a bus system, i.e. the way the CPU talks to the other stuff
660 inside your box. Other bus systems are PCI, EISA, MicroChannel
661 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
662 newer boards don't support it. If you have ISA, say Y, otherwise N.
663
664config EISA
665 bool
666 ---help---
667 The Extended Industry Standard Architecture (EISA) bus was
668 developed as an open alternative to the IBM MicroChannel bus.
669
670 The EISA bus provided some of the features of the IBM MicroChannel
671 bus while maintaining backward compatibility with cards made for
672 the older ISA bus. The EISA bus saw limited use between 1988 and
673 1995 when it was made obsolete by the PCI bus.
674
675 Say Y here if you are building a kernel for an EISA-based machine.
676
677 Otherwise, say N.
678
679config MCA
680 bool
681 help
682 MicroChannel Architecture is found in some IBM PS/2 machines and
683 laptops. It is a bus system similar to PCI or ISA. See
684 <file:Documentation/mca.txt> (and especially the web page given
685 there) before attempting to build an MCA bus kernel.
686
687config SBUS
688 bool
689
690config SUPERHYWAY 647config SUPERHYWAY
691 tristate "SuperHyway Bus support" 648 tristate "SuperHyway Bus support"
692 depends on CPU_SUBTYPE_SH4_202 649 depends on CPU_SUBTYPE_SH4_202
693 650
694config MAPLE 651config MAPLE
695 bool "Maple Bus support" 652 bool "Maple Bus support"
696 depends on SH_DREAMCAST 653 depends on SH_DREAMCAST
697 help 654 help
698 The Maple Bus is SEGA's serial communication bus for peripherals 655 The Maple Bus is SEGA's serial communication bus for peripherals
699 on the Dreamcast. Without this bus support you won't be able to 656 on the Dreamcast. Without this bus support you won't be able to
700 get your Dreamcast keyboard etc to work, so most users 657 get your Dreamcast keyboard etc to work, so most users
701 probably want to say 'Y' here, unless you are only using the 658 probably want to say 'Y' here, unless you are only using the
702 Dreamcast with a serial line terminal or a remote network 659 Dreamcast with a serial line terminal or a remote network
703 connection. 660 connection.
704 661
705source "arch/sh/drivers/pci/Kconfig" 662source "arch/sh/drivers/pci/Kconfig"
706 663
664source "drivers/pci/pcie/Kconfig"
665
707source "drivers/pci/Kconfig" 666source "drivers/pci/Kconfig"
708 667
709source "drivers/pcmcia/Kconfig" 668source "drivers/pcmcia/Kconfig"
diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c
index 1c67cba6e34f..15b6d450fbf0 100644
--- a/arch/sh/boards/board-ap325rxa.c
+++ b/arch/sh/boards/board-ap325rxa.c
@@ -18,8 +18,11 @@
18#include <linux/mtd/sh_flctl.h> 18#include <linux/mtd/sh_flctl.h>
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/i2c.h> 20#include <linux/i2c.h>
21#include <linux/smc911x.h> 21#include <linux/smsc911x.h>
22#include <linux/gpio.h> 22#include <linux/gpio.h>
23#include <linux/spi/spi.h>
24#include <linux/spi/spi_gpio.h>
25#include <media/soc_camera.h>
23#include <media/soc_camera_platform.h> 26#include <media/soc_camera_platform.h>
24#include <media/sh_mobile_ceu.h> 27#include <media/sh_mobile_ceu.h>
25#include <video/sh_mobile_lcdc.h> 28#include <video/sh_mobile_lcdc.h>
@@ -27,12 +30,14 @@
27#include <asm/clock.h> 30#include <asm/clock.h>
28#include <cpu/sh7723.h> 31#include <cpu/sh7723.h>
29 32
30static struct smc911x_platdata smc911x_info = { 33static struct smsc911x_platform_config smsc911x_config = {
31 .flags = SMC911X_USE_32BIT, 34 .phy_interface = PHY_INTERFACE_MODE_MII,
32 .irq_flags = IRQF_TRIGGER_LOW, 35 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
36 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
37 .flags = SMSC911X_USE_32BIT,
33}; 38};
34 39
35static struct resource smc9118_resources[] = { 40static struct resource smsc9118_resources[] = {
36 [0] = { 41 [0] = {
37 .start = 0xb6080000, 42 .start = 0xb6080000,
38 .end = 0xb60fffff, 43 .end = 0xb60fffff,
@@ -45,13 +50,13 @@ static struct resource smc9118_resources[] = {
45 } 50 }
46}; 51};
47 52
48static struct platform_device smc9118_device = { 53static struct platform_device smsc9118_device = {
49 .name = "smc911x", 54 .name = "smsc911x",
50 .id = -1, 55 .id = -1,
51 .num_resources = ARRAY_SIZE(smc9118_resources), 56 .num_resources = ARRAY_SIZE(smsc9118_resources),
52 .resource = smc9118_resources, 57 .resource = smsc9118_resources,
53 .dev = { 58 .dev = {
54 .platform_data = &smc911x_info, 59 .platform_data = &smsc911x_config,
55 }, 60 },
56}; 61};
57 62
@@ -212,6 +217,12 @@ static struct platform_device lcdc_device = {
212 }, 217 },
213}; 218};
214 219
220static void camera_power(int val)
221{
222 gpio_set_value(GPIO_PTZ5, val); /* RST_CAM/RSTB */
223 mdelay(10);
224}
225
215#ifdef CONFIG_I2C 226#ifdef CONFIG_I2C
216static unsigned char camera_ncm03j_magic[] = 227static unsigned char camera_ncm03j_magic[] =
217{ 228{
@@ -241,9 +252,11 @@ static int camera_set_capture(struct soc_camera_platform_info *info,
241 int ret = 0; 252 int ret = 0;
242 int i; 253 int i;
243 254
255 camera_power(0);
244 if (!enable) 256 if (!enable)
245 return 0; /* no disable for now */ 257 return 0; /* no disable for now */
246 258
259 camera_power(1);
247 for (i = 0; i < ARRAY_SIZE(camera_ncm03j_magic); i += 2) { 260 for (i = 0; i < ARRAY_SIZE(camera_ncm03j_magic); i += 2) {
248 u_int8_t buf[8]; 261 u_int8_t buf[8];
249 262
@@ -315,8 +328,22 @@ static struct platform_device ceu_device = {
315 }, 328 },
316}; 329};
317 330
331struct spi_gpio_platform_data sdcard_cn3_platform_data = {
332 .sck = GPIO_PTD0,
333 .mosi = GPIO_PTD1,
334 .miso = GPIO_PTD2,
335 .num_chipselect = 1,
336};
337
338static struct platform_device sdcard_cn3_device = {
339 .name = "spi_gpio",
340 .dev = {
341 .platform_data = &sdcard_cn3_platform_data,
342 },
343};
344
318static struct platform_device *ap325rxa_devices[] __initdata = { 345static struct platform_device *ap325rxa_devices[] __initdata = {
319 &smc9118_device, 346 &smsc9118_device,
320 &ap325rxa_nor_flash_device, 347 &ap325rxa_nor_flash_device,
321 &lcdc_device, 348 &lcdc_device,
322 &ceu_device, 349 &ceu_device,
@@ -324,6 +351,7 @@ static struct platform_device *ap325rxa_devices[] __initdata = {
324 &camera_device, 351 &camera_device,
325#endif 352#endif
326 &nand_flash_device, 353 &nand_flash_device,
354 &sdcard_cn3_device,
327}; 355};
328 356
329static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = { 357static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
@@ -332,6 +360,15 @@ static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
332 }, 360 },
333}; 361};
334 362
363static struct spi_board_info ap325rxa_spi_devices[] = {
364 {
365 .modalias = "mmc_spi",
366 .max_speed_hz = 5000000,
367 .chip_select = 0,
368 .controller_data = (void *) GPIO_PTD5,
369 },
370};
371
335static int __init ap325rxa_devices_setup(void) 372static int __init ap325rxa_devices_setup(void)
336{ 373{
337 /* LD3 and LD4 LEDs */ 374 /* LD3 and LD4 LEDs */
@@ -398,7 +435,7 @@ static int __init ap325rxa_devices_setup(void)
398 gpio_request(GPIO_PTZ6, NULL); 435 gpio_request(GPIO_PTZ6, NULL);
399 gpio_direction_output(GPIO_PTZ6, 0); /* STBY_CAM */ 436 gpio_direction_output(GPIO_PTZ6, 0); /* STBY_CAM */
400 gpio_request(GPIO_PTZ5, NULL); 437 gpio_request(GPIO_PTZ5, NULL);
401 gpio_direction_output(GPIO_PTZ5, 1); /* RST_CAM */ 438 gpio_direction_output(GPIO_PTZ5, 0); /* RST_CAM */
402 gpio_request(GPIO_PTZ4, NULL); 439 gpio_request(GPIO_PTZ4, NULL);
403 gpio_direction_output(GPIO_PTZ4, 0); /* SADDR */ 440 gpio_direction_output(GPIO_PTZ4, 0); /* SADDR */
404 441
@@ -429,6 +466,9 @@ static int __init ap325rxa_devices_setup(void)
429 i2c_register_board_info(0, ap325rxa_i2c_devices, 466 i2c_register_board_info(0, ap325rxa_i2c_devices,
430 ARRAY_SIZE(ap325rxa_i2c_devices)); 467 ARRAY_SIZE(ap325rxa_i2c_devices));
431 468
469 spi_register_board_info(ap325rxa_spi_devices,
470 ARRAY_SIZE(ap325rxa_spi_devices));
471
432 return platform_add_devices(ap325rxa_devices, 472 return platform_add_devices(ap325rxa_devices,
433 ARRAY_SIZE(ap325rxa_devices)); 473 ARRAY_SIZE(ap325rxa_devices));
434} 474}
diff --git a/arch/sh/boards/board-magicpanelr2.c b/arch/sh/boards/board-magicpanelr2.c
index 3de22ccdeb7e..0a37c8bfc959 100644
--- a/arch/sh/boards/board-magicpanelr2.c
+++ b/arch/sh/boards/board-magicpanelr2.c
@@ -14,6 +14,7 @@
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/delay.h> 15#include <linux/delay.h>
16#include <linux/gpio.h> 16#include <linux/gpio.h>
17#include <linux/smsc911x.h>
17#include <linux/mtd/mtd.h> 18#include <linux/mtd/mtd.h>
18#include <linux/mtd/partitions.h> 19#include <linux/mtd/partitions.h>
19#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
@@ -242,7 +243,7 @@ static void __init mpr2_setup(char **cmdline_p)
242 printk(KERN_WARNING "Ethernet not ready\n"); 243 printk(KERN_WARNING "Ethernet not ready\n");
243} 244}
244 245
245static struct resource smc911x_resources[] = { 246static struct resource smsc911x_resources[] = {
246 [0] = { 247 [0] = {
247 .start = 0xa8000000, 248 .start = 0xa8000000,
248 .end = 0xabffffff, 249 .end = 0xabffffff,
@@ -255,11 +256,21 @@ static struct resource smc911x_resources[] = {
255 }, 256 },
256}; 257};
257 258
258static struct platform_device smc911x_device = { 259static struct smsc911x_platform_config smsc911x_config = {
259 .name = "smc911x", 260 .phy_interface = PHY_INTERFACE_MODE_MII,
261 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
262 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
263 .flags = SMSC911X_USE_32BIT,
264};
265
266static struct platform_device smsc911x_device = {
267 .name = "smsc911x",
260 .id = -1, 268 .id = -1,
261 .num_resources = ARRAY_SIZE(smc911x_resources), 269 .num_resources = ARRAY_SIZE(smsc911x_resources),
262 .resource = smc911x_resources, 270 .resource = smsc911x_resources,
271 .dev = {
272 .platform_data = &smsc911x_config,
273 },
263}; 274};
264 275
265static struct resource heartbeat_resources[] = { 276static struct resource heartbeat_resources[] = {
@@ -360,7 +371,7 @@ static void __init set_mtd_partitions(void)
360 371
361static struct platform_device *mpr2_devices[] __initdata = { 372static struct platform_device *mpr2_devices[] __initdata = {
362 &heartbeat_device, 373 &heartbeat_device,
363 &smc911x_device, 374 &smsc911x_device,
364 &flash_device, 375 &flash_device,
365}; 376};
366 377
diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
index 408bbddaf325..38a64968d7bf 100644
--- a/arch/sh/boards/board-sh7785lcr.c
+++ b/arch/sh/boards/board-sh7785lcr.c
@@ -18,6 +18,7 @@
18#include <linux/i2c.h> 18#include <linux/i2c.h>
19#include <linux/i2c-pca-platform.h> 19#include <linux/i2c-pca-platform.h>
20#include <linux/i2c-algo-pca.h> 20#include <linux/i2c-algo-pca.h>
21#include <linux/irq.h>
21#include <asm/heartbeat.h> 22#include <asm/heartbeat.h>
22#include <mach/sh7785lcr.h> 23#include <mach/sh7785lcr.h>
23 24
diff --git a/arch/sh/boards/mach-highlander/setup.c b/arch/sh/boards/mach-highlander/setup.c
index 806438b42cac..20fe72c515d5 100644
--- a/arch/sh/boards/mach-highlander/setup.c
+++ b/arch/sh/boards/mach-highlander/setup.c
@@ -18,6 +18,7 @@
18#include <linux/ata_platform.h> 18#include <linux/ata_platform.h>
19#include <linux/types.h> 19#include <linux/types.h>
20#include <linux/i2c.h> 20#include <linux/i2c.h>
21#include <linux/irq.h>
21#include <net/ax88796.h> 22#include <net/ax88796.h>
22#include <asm/machvec.h> 23#include <asm/machvec.h>
23#include <mach/highlander.h> 24#include <mach/highlander.h>
diff --git a/arch/sh/boards/mach-hp6xx/setup.c b/arch/sh/boards/mach-hp6xx/setup.c
index 48fece78ff54..746742bdc014 100644
--- a/arch/sh/boards/mach-hp6xx/setup.c
+++ b/arch/sh/boards/mach-hp6xx/setup.c
@@ -12,9 +12,9 @@
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/irq.h>
15#include <asm/hd64461.h> 16#include <asm/hd64461.h>
16#include <asm/io.h> 17#include <asm/io.h>
17#include <asm/irq.h>
18#include <mach/hp6xx.h> 18#include <mach/hp6xx.h>
19#include <cpu/dac.h> 19#include <cpu/dac.h>
20 20
diff --git a/arch/sh/boards/mach-migor/setup.c b/arch/sh/boards/mach-migor/setup.c
index cc1408119c24..28e56c5809a2 100644
--- a/arch/sh/boards/mach-migor/setup.c
+++ b/arch/sh/boards/mach-migor/setup.c
@@ -18,9 +18,12 @@
18#include <linux/delay.h> 18#include <linux/delay.h>
19#include <linux/clk.h> 19#include <linux/clk.h>
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21#include <media/soc_camera_platform.h> 21#include <linux/spi/spi.h>
22#include <media/sh_mobile_ceu.h> 22#include <linux/spi/spi_gpio.h>
23#include <video/sh_mobile_lcdc.h> 23#include <video/sh_mobile_lcdc.h>
24#include <media/sh_mobile_ceu.h>
25#include <media/ov772x.h>
26#include <media/tw9910.h>
24#include <asm/clock.h> 27#include <asm/clock.h>
25#include <asm/machvec.h> 28#include <asm/machvec.h>
26#include <asm/io.h> 29#include <asm/io.h>
@@ -292,9 +295,12 @@ static struct platform_device migor_lcdc_device = {
292}; 295};
293 296
294static struct clk *camera_clk; 297static struct clk *camera_clk;
298static DEFINE_MUTEX(camera_lock);
295 299
296static void camera_power_on(void) 300static void camera_power_on(int is_tw)
297{ 301{
302 mutex_lock(&camera_lock);
303
298 /* Use 10 MHz VIO_CKO instead of 24 MHz to work 304 /* Use 10 MHz VIO_CKO instead of 24 MHz to work
299 * around signal quality issues on Panel Board V2.1. 305 * around signal quality issues on Panel Board V2.1.
300 */ 306 */
@@ -304,6 +310,12 @@ static void camera_power_on(void)
304 310
305 /* use VIO_RST to take camera out of reset */ 311 /* use VIO_RST to take camera out of reset */
306 mdelay(10); 312 mdelay(10);
313 if (is_tw) {
314 gpio_set_value(GPIO_PTT2, 0);
315 gpio_set_value(GPIO_PTT0, 0);
316 } else {
317 gpio_set_value(GPIO_PTT0, 1);
318 }
307 gpio_set_value(GPIO_PTT3, 0); 319 gpio_set_value(GPIO_PTT3, 0);
308 mdelay(10); 320 mdelay(10);
309 gpio_set_value(GPIO_PTT3, 1); 321 gpio_set_value(GPIO_PTT3, 1);
@@ -316,107 +328,29 @@ static void camera_power_off(void)
316 clk_put(camera_clk); 328 clk_put(camera_clk);
317 329
318 gpio_set_value(GPIO_PTT3, 0); 330 gpio_set_value(GPIO_PTT3, 0);
331 mutex_unlock(&camera_lock);
319} 332}
320 333
321static void camera_power(int mode) 334static int ov7725_power(struct device *dev, int mode)
322{ 335{
323 if (mode) 336 if (mode)
324 camera_power_on(); 337 camera_power_on(0);
325 else 338 else
326 camera_power_off(); 339 camera_power_off();
327}
328 340
329#ifdef CONFIG_I2C 341 return 0;
330static unsigned char camera_ov772x_magic[] = 342}
331{
332 0x09, 0x01, 0x0c, 0x20, 0x0d, 0x41, 0x0e, 0x01,
333 0x12, 0x00, 0x13, 0x8F, 0x14, 0x4A, 0x15, 0x00,
334 0x16, 0x00, 0x17, 0x23, 0x18, 0xa0, 0x19, 0x07,
335 0x1a, 0xf0, 0x1b, 0x40, 0x1f, 0x00, 0x20, 0x10,
336 0x22, 0xff, 0x23, 0x01, 0x28, 0x00, 0x29, 0xa0,
337 0x2a, 0x00, 0x2b, 0x00, 0x2c, 0xf0, 0x2d, 0x00,
338 0x2e, 0x00, 0x30, 0x80, 0x31, 0x60, 0x32, 0x00,
339 0x33, 0x00, 0x34, 0x00, 0x3d, 0x80, 0x3e, 0xe2,
340 0x3f, 0x1f, 0x42, 0x80, 0x43, 0x80, 0x44, 0x80,
341 0x45, 0x80, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00,
342 0x49, 0x50, 0x4a, 0x30, 0x4b, 0x50, 0x4c, 0x50,
343 0x4d, 0x00, 0x4e, 0xef, 0x4f, 0x10, 0x50, 0x60,
344 0x51, 0x00, 0x52, 0x00, 0x53, 0x24, 0x54, 0x7a,
345 0x55, 0xfc, 0x62, 0xff, 0x63, 0xf0, 0x64, 0x1f,
346 0x65, 0x00, 0x66, 0x10, 0x67, 0x00, 0x68, 0x00,
347 0x69, 0x5c, 0x6a, 0x11, 0x6b, 0xa2, 0x6c, 0x01,
348 0x6d, 0x50, 0x6e, 0x80, 0x6f, 0x80, 0x70, 0x0f,
349 0x71, 0x00, 0x72, 0x00, 0x73, 0x0f, 0x74, 0x0f,
350 0x75, 0xff, 0x78, 0x10, 0x79, 0x70, 0x7a, 0x70,
351 0x7b, 0xf0, 0x7c, 0xf0, 0x7d, 0xf0, 0x7e, 0x0e,
352 0x7f, 0x1a, 0x80, 0x31, 0x81, 0x5a, 0x82, 0x69,
353 0x83, 0x75, 0x84, 0x7e, 0x85, 0x88, 0x86, 0x8f,
354 0x87, 0x96, 0x88, 0xa3, 0x89, 0xaf, 0x8a, 0xc4,
355 0x8b, 0xd7, 0x8c, 0xe8, 0x8d, 0x20, 0x8e, 0x00,
356 0x8f, 0x00, 0x90, 0x08, 0x91, 0x10, 0x92, 0x1f,
357 0x93, 0x01, 0x94, 0x2c, 0x95, 0x24, 0x96, 0x08,
358 0x97, 0x14, 0x98, 0x24, 0x99, 0x38, 0x9a, 0x9e,
359 0x9b, 0x00, 0x9c, 0x40, 0x9e, 0x11, 0x9f, 0x02,
360 0xa0, 0x00, 0xa1, 0x40, 0xa2, 0x40, 0xa3, 0x06,
361 0xa4, 0x00, 0xa6, 0x00, 0xa7, 0x40, 0xa8, 0x40,
362 0xa9, 0x80, 0xaa, 0x80, 0xab, 0x06, 0xac, 0xff,
363 0x12, 0x06, 0x64, 0x3f, 0x12, 0x46, 0x17, 0x3f,
364 0x18, 0x50, 0x19, 0x03, 0x1a, 0x78, 0x29, 0x50,
365 0x2c, 0x78,
366};
367 343
368static int ov772x_set_capture(struct soc_camera_platform_info *info, 344static int tw9910_power(struct device *dev, int mode)
369 int enable)
370{ 345{
371 struct i2c_adapter *a = i2c_get_adapter(0); 346 if (mode)
372 struct i2c_msg msg; 347 camera_power_on(1);
373 int ret = 0; 348 else
374 int i; 349 camera_power_off();
375
376 if (!enable)
377 return 0; /* camera_power_off() is enough */
378
379 for (i = 0; i < ARRAY_SIZE(camera_ov772x_magic); i += 2) {
380 u_int8_t buf[8];
381
382 msg.addr = 0x21;
383 msg.buf = buf;
384 msg.len = 2;
385 msg.flags = 0;
386
387 buf[0] = camera_ov772x_magic[i];
388 buf[1] = camera_ov772x_magic[i + 1];
389
390 ret = (ret < 0) ? ret : i2c_transfer(a, &msg, 1);
391 }
392 350
393 return ret; 351 return 0;
394} 352}
395 353
396static struct soc_camera_platform_info ov772x_info = {
397 .iface = 0,
398 .format_name = "RGB565",
399 .format_depth = 16,
400 .format = {
401 .pixelformat = V4L2_PIX_FMT_RGB565,
402 .colorspace = V4L2_COLORSPACE_SRGB,
403 .width = 320,
404 .height = 240,
405 },
406 .bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH |
407 SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8,
408 .power = camera_power,
409 .set_capture = ov772x_set_capture,
410};
411
412static struct platform_device migor_camera_device = {
413 .name = "soc_camera_platform",
414 .dev = {
415 .platform_data = &ov772x_info,
416 },
417};
418#endif /* CONFIG_I2C */
419
420static struct sh_mobile_ceu_info sh_mobile_ceu_info = { 354static struct sh_mobile_ceu_info sh_mobile_ceu_info = {
421 .flags = SOCAM_MASTER | SOCAM_DATAWIDTH_8 | SOCAM_PCLK_SAMPLE_RISING \ 355 .flags = SOCAM_MASTER | SOCAM_DATAWIDTH_8 | SOCAM_PCLK_SAMPLE_RISING \
422 | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH, 356 | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH,
@@ -448,16 +382,43 @@ static struct platform_device migor_ceu_device = {
448 }, 382 },
449}; 383};
450 384
385static struct ov772x_camera_info ov7725_info = {
386 .buswidth = SOCAM_DATAWIDTH_8,
387 .link = {
388 .power = ov7725_power,
389 },
390};
391
392static struct tw9910_video_info tw9910_info = {
393 .buswidth = SOCAM_DATAWIDTH_8,
394 .mpout = TW9910_MPO_FIELD,
395 .link = {
396 .power = tw9910_power,
397 }
398};
399
400struct spi_gpio_platform_data sdcard_cn9_platform_data = {
401 .sck = GPIO_PTD0,
402 .mosi = GPIO_PTD1,
403 .miso = GPIO_PTD2,
404 .num_chipselect = 1,
405};
406
407static struct platform_device sdcard_cn9_device = {
408 .name = "spi_gpio",
409 .dev = {
410 .platform_data = &sdcard_cn9_platform_data,
411 },
412};
413
451static struct platform_device *migor_devices[] __initdata = { 414static struct platform_device *migor_devices[] __initdata = {
452 &smc91x_eth_device, 415 &smc91x_eth_device,
453 &sh_keysc_device, 416 &sh_keysc_device,
454 &migor_lcdc_device, 417 &migor_lcdc_device,
455 &migor_ceu_device, 418 &migor_ceu_device,
456#ifdef CONFIG_I2C
457 &migor_camera_device,
458#endif
459 &migor_nor_flash_device, 419 &migor_nor_flash_device,
460 &migor_nand_flash_device, 420 &migor_nand_flash_device,
421 &sdcard_cn9_device,
461}; 422};
462 423
463static struct i2c_board_info migor_i2c_devices[] = { 424static struct i2c_board_info migor_i2c_devices[] = {
@@ -468,6 +429,23 @@ static struct i2c_board_info migor_i2c_devices[] = {
468 I2C_BOARD_INFO("migor_ts", 0x51), 429 I2C_BOARD_INFO("migor_ts", 0x51),
469 .irq = 38, /* IRQ6 */ 430 .irq = 38, /* IRQ6 */
470 }, 431 },
432 {
433 I2C_BOARD_INFO("ov772x", 0x21),
434 .platform_data = &ov7725_info,
435 },
436 {
437 I2C_BOARD_INFO("tw9910", 0x45),
438 .platform_data = &tw9910_info,
439 },
440};
441
442static struct spi_board_info migor_spi_devices[] = {
443 {
444 .modalias = "mmc_spi",
445 .max_speed_hz = 5000000,
446 .chip_select = 0,
447 .controller_data = (void *) GPIO_PTD5,
448 },
471}; 449};
472 450
473static int __init migor_devices_setup(void) 451static int __init migor_devices_setup(void)
@@ -592,6 +570,9 @@ static int __init migor_devices_setup(void)
592 i2c_register_board_info(0, migor_i2c_devices, 570 i2c_register_board_info(0, migor_i2c_devices,
593 ARRAY_SIZE(migor_i2c_devices)); 571 ARRAY_SIZE(migor_i2c_devices));
594 572
573 spi_register_board_info(migor_spi_devices,
574 ARRAY_SIZE(migor_spi_devices));
575
595 return platform_add_devices(migor_devices, ARRAY_SIZE(migor_devices)); 576 return platform_add_devices(migor_devices, ARRAY_SIZE(migor_devices));
596} 577}
597__initcall(migor_devices_setup); 578__initcall(migor_devices_setup);
diff --git a/arch/sh/boards/mach-rsk/devices-rsk7203.c b/arch/sh/boards/mach-rsk/devices-rsk7203.c
index 73f743b9be8d..d8a65ea91665 100644
--- a/arch/sh/boards/mach-rsk/devices-rsk7203.c
+++ b/arch/sh/boards/mach-rsk/devices-rsk7203.c
@@ -15,19 +15,21 @@
15#include <linux/mtd/partitions.h> 15#include <linux/mtd/partitions.h>
16#include <linux/mtd/physmap.h> 16#include <linux/mtd/physmap.h>
17#include <linux/mtd/map.h> 17#include <linux/mtd/map.h>
18#include <linux/smc911x.h> 18#include <linux/smsc911x.h>
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/leds.h> 20#include <linux/leds.h>
21#include <asm/machvec.h> 21#include <asm/machvec.h>
22#include <asm/io.h> 22#include <asm/io.h>
23#include <cpu/sh7203.h> 23#include <cpu/sh7203.h>
24 24
25static struct smc911x_platdata smc911x_info = { 25static struct smsc911x_platform_config smsc911x_config = {
26 .flags = SMC911X_USE_16BIT, 26 .phy_interface = PHY_INTERFACE_MODE_MII,
27 .irq_flags = IRQF_TRIGGER_LOW, 27 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
28 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
29 .flags = SMSC911X_USE_16BIT,
28}; 30};
29 31
30static struct resource smc911x_resources[] = { 32static struct resource smsc911x_resources[] = {
31 [0] = { 33 [0] = {
32 .start = 0x24000000, 34 .start = 0x24000000,
33 .end = 0x24000000 + 0x100, 35 .end = 0x24000000 + 0x100,
@@ -40,13 +42,13 @@ static struct resource smc911x_resources[] = {
40 }, 42 },
41}; 43};
42 44
43static struct platform_device smc911x_device = { 45static struct platform_device smsc911x_device = {
44 .name = "smc911x", 46 .name = "smsc911x",
45 .id = -1, 47 .id = -1,
46 .num_resources = ARRAY_SIZE(smc911x_resources), 48 .num_resources = ARRAY_SIZE(smsc911x_resources),
47 .resource = smc911x_resources, 49 .resource = smsc911x_resources,
48 .dev = { 50 .dev = {
49 .platform_data = &smc911x_info, 51 .platform_data = &smsc911x_config,
50 }, 52 },
51}; 53};
52 54
@@ -87,7 +89,7 @@ static struct platform_device led_device = {
87}; 89};
88 90
89static struct platform_device *rsk7203_devices[] __initdata = { 91static struct platform_device *rsk7203_devices[] __initdata = {
90 &smc911x_device, 92 &smsc911x_device,
91 &led_device, 93 &led_device,
92}; 94};
93 95
diff --git a/arch/sh/boards/mach-x3proto/setup.c b/arch/sh/boards/mach-x3proto/setup.c
index a70d23b21788..a340492087fa 100644
--- a/arch/sh/boards/mach-x3proto/setup.c
+++ b/arch/sh/boards/mach-x3proto/setup.c
@@ -14,6 +14,7 @@
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/io.h> 15#include <linux/io.h>
16#include <linux/smc91x.h> 16#include <linux/smc91x.h>
17#include <linux/irq.h>
17#include <asm/ilsel.h> 18#include <asm/ilsel.h>
18 19
19static struct resource heartbeat_resources[] = { 20static struct resource heartbeat_resources[] = {
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig
index 874dd9726e52..352f87d50fdc 100644
--- a/arch/sh/configs/ap325rxa_defconfig
+++ b/arch/sh/configs/ap325rxa_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.27 3# Linux kernel version: 2.6.29-rc2
4# Tue Oct 21 18:20:06 2008 4# Tue Jan 27 11:45:08 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -43,12 +45,12 @@ CONFIG_BSD_PROCESS_ACCT=y
43# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set
47CONFIG_GROUP_SCHED=y 48CONFIG_GROUP_SCHED=y
48CONFIG_FAIR_GROUP_SCHED=y 49CONFIG_FAIR_GROUP_SCHED=y
49# CONFIG_RT_GROUP_SCHED is not set 50# CONFIG_RT_GROUP_SCHED is not set
50CONFIG_USER_SCHED=y 51CONFIG_USER_SCHED=y
51# CONFIG_CGROUP_SCHED is not set 52# CONFIG_CGROUP_SCHED is not set
53# CONFIG_CGROUPS is not set
52CONFIG_SYSFS_DEPRECATED=y 54CONFIG_SYSFS_DEPRECATED=y
53CONFIG_SYSFS_DEPRECATED_V2=y 55CONFIG_SYSFS_DEPRECATED_V2=y
54# CONFIG_RELAY is not set 56# CONFIG_RELAY is not set
@@ -75,12 +77,10 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 77CONFIG_SHMEM=y
76CONFIG_AIO=y 78CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLAB=y 80CONFIG_SLAB=y
80# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
83# CONFIG_MARKERS is not set
84CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
85CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
86CONFIG_HAVE_KPROBES=y 86CONFIG_HAVE_KPROBES=y
@@ -90,7 +90,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 93CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 94CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 95# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +97,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 97# CONFIG_MODULE_FORCE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 98# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 99# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 100CONFIG_BLOCK=y
103# CONFIG_LBD is not set 101# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 102# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 103# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 104# CONFIG_BLK_DEV_INTEGRITY is not set
108 105
@@ -119,6 +116,10 @@ CONFIG_DEFAULT_CFQ=y
119# CONFIG_DEFAULT_NOOP is not set 116# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="cfq" 117CONFIG_DEFAULT_IOSCHED="cfq"
121CONFIG_CLASSIC_RCU=y 118CONFIG_CLASSIC_RCU=y
119# CONFIG_TREE_RCU is not set
120# CONFIG_PREEMPT_RCU is not set
121# CONFIG_TREE_RCU_TRACE is not set
122# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 123# CONFIG_FREEZER is not set
123 124
124# 125#
@@ -128,6 +129,7 @@ CONFIG_CPU_SH4=y
128CONFIG_CPU_SH4A=y 129CONFIG_CPU_SH4A=y
129CONFIG_CPU_SHX2=y 130CONFIG_CPU_SHX2=y
130# CONFIG_CPU_SUBTYPE_SH7619 is not set 131# CONFIG_CPU_SUBTYPE_SH7619 is not set
132# CONFIG_CPU_SUBTYPE_SH7201 is not set
131# CONFIG_CPU_SUBTYPE_SH7203 is not set 133# CONFIG_CPU_SUBTYPE_SH7203 is not set
132# CONFIG_CPU_SUBTYPE_SH7206 is not set 134# CONFIG_CPU_SUBTYPE_SH7206 is not set
133# CONFIG_CPU_SUBTYPE_SH7263 is not set 135# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -192,7 +194,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
192CONFIG_SPARSEMEM_STATIC=y 194CONFIG_SPARSEMEM_STATIC=y
193CONFIG_PAGEFLAGS_EXTENDED=y 195CONFIG_PAGEFLAGS_EXTENDED=y
194CONFIG_SPLIT_PTLOCK_CPUS=4 196CONFIG_SPLIT_PTLOCK_CPUS=4
195# CONFIG_RESOURCES_64BIT is not set
196# CONFIG_PHYS_ADDR_T_64BIT is not set 197# CONFIG_PHYS_ADDR_T_64BIT is not set
197CONFIG_ZONE_DMA_FLAG=0 198CONFIG_ZONE_DMA_FLAG=0
198CONFIG_NR_QUICK=2 199CONFIG_NR_QUICK=2
@@ -269,7 +270,6 @@ CONFIG_SECCOMP=y
269# CONFIG_PREEMPT_NONE is not set 270# CONFIG_PREEMPT_NONE is not set
270# CONFIG_PREEMPT_VOLUNTARY is not set 271# CONFIG_PREEMPT_VOLUNTARY is not set
271CONFIG_PREEMPT=y 272CONFIG_PREEMPT=y
272# CONFIG_PREEMPT_RCU is not set
273CONFIG_GUSA=y 273CONFIG_GUSA=y
274 274
275# 275#
@@ -293,11 +293,18 @@ CONFIG_BINFMT_ELF=y
293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
294# CONFIG_HAVE_AOUT is not set 294# CONFIG_HAVE_AOUT is not set
295# CONFIG_BINFMT_MISC is not set 295# CONFIG_BINFMT_MISC is not set
296
297#
298# Power management options (EXPERIMENTAL)
299#
300# CONFIG_PM is not set
301# CONFIG_CPU_IDLE is not set
296CONFIG_NET=y 302CONFIG_NET=y
297 303
298# 304#
299# Networking options 305# Networking options
300# 306#
307CONFIG_COMPAT_NET_DEV_OPS=y
301CONFIG_PACKET=y 308CONFIG_PACKET=y
302# CONFIG_PACKET_MMAP is not set 309# CONFIG_PACKET_MMAP is not set
303CONFIG_UNIX=y 310CONFIG_UNIX=y
@@ -353,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set 362# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set
356 364
357# 365#
358# Network testing 366# Network testing
@@ -368,8 +376,9 @@ CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
369# CONFIG_WIRELESS_OLD_REGULATORY is not set 377# CONFIG_WIRELESS_OLD_REGULATORY is not set
370# CONFIG_WIRELESS_EXT is not set 378# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set 380# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set 381# CONFIG_WIMAX is not set
373# CONFIG_RFKILL is not set 382# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 383# CONFIG_NET_9P is not set
375 384
@@ -392,6 +401,7 @@ CONFIG_MTD=y
392# CONFIG_MTD_DEBUG is not set 401# CONFIG_MTD_DEBUG is not set
393CONFIG_MTD_CONCAT=y 402CONFIG_MTD_CONCAT=y
394CONFIG_MTD_PARTITIONS=y 403CONFIG_MTD_PARTITIONS=y
404# CONFIG_MTD_TESTS is not set
395# CONFIG_MTD_REDBOOT_PARTS is not set 405# CONFIG_MTD_REDBOOT_PARTS is not set
396CONFIG_MTD_CMDLINE_PARTS=y 406CONFIG_MTD_CMDLINE_PARTS=y
397# CONFIG_MTD_AR7_PARTS is not set 407# CONFIG_MTD_AR7_PARTS is not set
@@ -439,14 +449,14 @@ CONFIG_MTD_CFI_UTIL=y
439# 449#
440# CONFIG_MTD_COMPLEX_MAPPINGS is not set 450# CONFIG_MTD_COMPLEX_MAPPINGS is not set
441CONFIG_MTD_PHYSMAP=y 451CONFIG_MTD_PHYSMAP=y
442CONFIG_MTD_PHYSMAP_START=0xffffffff 452# CONFIG_MTD_PHYSMAP_COMPAT is not set
443CONFIG_MTD_PHYSMAP_LEN=0
444CONFIG_MTD_PHYSMAP_BANKWIDTH=0
445# CONFIG_MTD_PLATRAM is not set 453# CONFIG_MTD_PLATRAM is not set
446 454
447# 455#
448# Self-contained MTD device drivers 456# Self-contained MTD device drivers
449# 457#
458# CONFIG_MTD_DATAFLASH is not set
459# CONFIG_MTD_M25P80 is not set
450# CONFIG_MTD_SLRAM is not set 460# CONFIG_MTD_SLRAM is not set
451# CONFIG_MTD_PHRAM is not set 461# CONFIG_MTD_PHRAM is not set
452# CONFIG_MTD_MTDRAM is not set 462# CONFIG_MTD_MTDRAM is not set
@@ -470,9 +480,23 @@ CONFIG_MTD_NAND_SH_FLCTL=y
470# CONFIG_MTD_ONENAND is not set 480# CONFIG_MTD_ONENAND is not set
471 481
472# 482#
483# LPDDR flash memory drivers
484#
485# CONFIG_MTD_LPDDR is not set
486# CONFIG_MTD_QINFO_PROBE is not set
487
488#
473# UBI - Unsorted block images 489# UBI - Unsorted block images
474# 490#
475# CONFIG_MTD_UBI is not set 491CONFIG_MTD_UBI=y
492CONFIG_MTD_UBI_WL_THRESHOLD=4096
493CONFIG_MTD_UBI_BEB_RESERVE=1
494# CONFIG_MTD_UBI_GLUEBI is not set
495
496#
497# UBI debugging options
498#
499# CONFIG_MTD_UBI_DEBUG is not set
476# CONFIG_PARPORT is not set 500# CONFIG_PARPORT is not set
477CONFIG_BLK_DEV=y 501CONFIG_BLK_DEV=y
478# CONFIG_BLK_DEV_COW_COMMON is not set 502# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -487,7 +511,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
487# CONFIG_BLK_DEV_HD is not set 511# CONFIG_BLK_DEV_HD is not set
488CONFIG_MISC_DEVICES=y 512CONFIG_MISC_DEVICES=y
489# CONFIG_EEPROM_93CX6 is not set 513# CONFIG_EEPROM_93CX6 is not set
514# CONFIG_ICS932S401 is not set
490# CONFIG_ENCLOSURE_SERVICES is not set 515# CONFIG_ENCLOSURE_SERVICES is not set
516# CONFIG_C2PORT is not set
491CONFIG_HAVE_IDE=y 517CONFIG_HAVE_IDE=y
492# CONFIG_IDE is not set 518# CONFIG_IDE is not set
493 519
@@ -530,6 +556,7 @@ CONFIG_SCSI_WAIT_SCAN=m
530# CONFIG_SCSI_SRP_ATTRS is not set 556# CONFIG_SCSI_SRP_ATTRS is not set
531CONFIG_SCSI_LOWLEVEL=y 557CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_ISCSI_TCP is not set 558# CONFIG_ISCSI_TCP is not set
559# CONFIG_LIBFC is not set
533# CONFIG_SCSI_DEBUG is not set 560# CONFIG_SCSI_DEBUG is not set
534# CONFIG_SCSI_DH is not set 561# CONFIG_SCSI_DH is not set
535# CONFIG_ATA is not set 562# CONFIG_ATA is not set
@@ -541,13 +568,34 @@ CONFIG_NETDEVICES=y
541# CONFIG_EQUALIZER is not set 568# CONFIG_EQUALIZER is not set
542# CONFIG_TUN is not set 569# CONFIG_TUN is not set
543# CONFIG_VETH is not set 570# CONFIG_VETH is not set
544# CONFIG_PHYLIB is not set 571CONFIG_PHYLIB=y
572
573#
574# MII PHY device drivers
575#
576# CONFIG_MARVELL_PHY is not set
577# CONFIG_DAVICOM_PHY is not set
578# CONFIG_QSEMI_PHY is not set
579# CONFIG_LXT_PHY is not set
580# CONFIG_CICADA_PHY is not set
581# CONFIG_VITESSE_PHY is not set
582CONFIG_SMSC_PHY=y
583# CONFIG_BROADCOM_PHY is not set
584# CONFIG_ICPLUS_PHY is not set
585# CONFIG_REALTEK_PHY is not set
586# CONFIG_NATIONAL_PHY is not set
587# CONFIG_STE10XP is not set
588# CONFIG_LSI_ET1011C_PHY is not set
589# CONFIG_FIXED_PHY is not set
590# CONFIG_MDIO_BITBANG is not set
545CONFIG_NET_ETHERNET=y 591CONFIG_NET_ETHERNET=y
546CONFIG_MII=y 592CONFIG_MII=y
547# CONFIG_AX88796 is not set 593# CONFIG_AX88796 is not set
548# CONFIG_STNIC is not set 594# CONFIG_STNIC is not set
549# CONFIG_SMC91X is not set 595# CONFIG_SMC91X is not set
550CONFIG_SMC911X=y 596# CONFIG_ENC28J60 is not set
597# CONFIG_SMC911X is not set
598CONFIG_SMSC911X=y
551# CONFIG_IBM_NEW_EMAC_ZMII is not set 599# CONFIG_IBM_NEW_EMAC_ZMII is not set
552# CONFIG_IBM_NEW_EMAC_RGMII is not set 600# CONFIG_IBM_NEW_EMAC_RGMII is not set
553# CONFIG_IBM_NEW_EMAC_TAH is not set 601# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -565,6 +613,10 @@ CONFIG_SMC911X=y
565# CONFIG_WLAN_PRE80211 is not set 613# CONFIG_WLAN_PRE80211 is not set
566# CONFIG_WLAN_80211 is not set 614# CONFIG_WLAN_80211 is not set
567# CONFIG_IWLWIFI_LEDS is not set 615# CONFIG_IWLWIFI_LEDS is not set
616
617#
618# Enable WiMAX (Networking options) to see the WiMAX drivers
619#
568# CONFIG_WAN is not set 620# CONFIG_WAN is not set
569# CONFIG_PPP is not set 621# CONFIG_PPP is not set
570# CONFIG_SLIP is not set 622# CONFIG_SLIP is not set
@@ -630,6 +682,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
630CONFIG_SERIAL_CORE=y 682CONFIG_SERIAL_CORE=y
631CONFIG_SERIAL_CORE_CONSOLE=y 683CONFIG_SERIAL_CORE_CONSOLE=y
632CONFIG_UNIX98_PTYS=y 684CONFIG_UNIX98_PTYS=y
685# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
633CONFIG_LEGACY_PTYS=y 686CONFIG_LEGACY_PTYS=y
634CONFIG_LEGACY_PTY_COUNT=256 687CONFIG_LEGACY_PTY_COUNT=256
635# CONFIG_IPMI_HANDLER is not set 688# CONFIG_IPMI_HANDLER is not set
@@ -637,19 +690,102 @@ CONFIG_HW_RANDOM=y
637# CONFIG_R3964 is not set 690# CONFIG_R3964 is not set
638# CONFIG_RAW_DRIVER is not set 691# CONFIG_RAW_DRIVER is not set
639# CONFIG_TCG_TPM is not set 692# CONFIG_TCG_TPM is not set
640# CONFIG_I2C is not set 693CONFIG_I2C=y
641# CONFIG_SPI is not set 694CONFIG_I2C_BOARDINFO=y
695CONFIG_I2C_CHARDEV=y
696CONFIG_I2C_HELPER_AUTO=y
697
698#
699# I2C Hardware Bus support
700#
701
702#
703# I2C system bus drivers (mostly embedded / system-on-chip)
704#
705# CONFIG_I2C_GPIO is not set
706# CONFIG_I2C_OCORES is not set
707CONFIG_I2C_SH_MOBILE=y
708# CONFIG_I2C_SIMTEC is not set
709
710#
711# External I2C/SMBus adapter drivers
712#
713# CONFIG_I2C_PARPORT_LIGHT is not set
714# CONFIG_I2C_TAOS_EVM is not set
715
716#
717# Other I2C/SMBus bus drivers
718#
719# CONFIG_I2C_PCA_PLATFORM is not set
720# CONFIG_I2C_STUB is not set
721
722#
723# Miscellaneous I2C Chip support
724#
725# CONFIG_DS1682 is not set
726# CONFIG_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set
728# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set
730# CONFIG_SENSORS_PCA9539 is not set
731# CONFIG_SENSORS_PCF8591 is not set
732# CONFIG_SENSORS_MAX6875 is not set
733# CONFIG_SENSORS_TSL2550 is not set
734# CONFIG_I2C_DEBUG_CORE is not set
735# CONFIG_I2C_DEBUG_ALGO is not set
736# CONFIG_I2C_DEBUG_BUS is not set
737# CONFIG_I2C_DEBUG_CHIP is not set
738CONFIG_SPI=y
739CONFIG_SPI_MASTER=y
740
741#
742# SPI Master Controller Drivers
743#
744CONFIG_SPI_BITBANG=y
745CONFIG_SPI_GPIO=y
746# CONFIG_SPI_SH_SCI is not set
747
748#
749# SPI Protocol Masters
750#
751# CONFIG_SPI_AT25 is not set
752# CONFIG_SPI_SPIDEV is not set
753# CONFIG_SPI_TLE62X0 is not set
754CONFIG_ARCH_REQUIRE_GPIOLIB=y
755CONFIG_GPIOLIB=y
756# CONFIG_GPIO_SYSFS is not set
757
758#
759# Memory mapped GPIO expanders:
760#
761
762#
763# I2C GPIO expanders:
764#
765# CONFIG_GPIO_MAX732X is not set
766# CONFIG_GPIO_PCA953X is not set
767# CONFIG_GPIO_PCF857X is not set
768
769#
770# PCI GPIO expanders:
771#
772
773#
774# SPI GPIO expanders:
775#
776# CONFIG_GPIO_MAX7301 is not set
777# CONFIG_GPIO_MCP23S08 is not set
642# CONFIG_W1 is not set 778# CONFIG_W1 is not set
643# CONFIG_POWER_SUPPLY is not set 779# CONFIG_POWER_SUPPLY is not set
644# CONFIG_HWMON is not set 780# CONFIG_HWMON is not set
645# CONFIG_THERMAL is not set 781# CONFIG_THERMAL is not set
646# CONFIG_THERMAL_HWMON is not set 782# CONFIG_THERMAL_HWMON is not set
647# CONFIG_WATCHDOG is not set 783# CONFIG_WATCHDOG is not set
784CONFIG_SSB_POSSIBLE=y
648 785
649# 786#
650# Sonics Silicon Backplane 787# Sonics Silicon Backplane
651# 788#
652CONFIG_SSB_POSSIBLE=y
653# CONFIG_SSB is not set 789# CONFIG_SSB is not set
654 790
655# 791#
@@ -658,8 +794,14 @@ CONFIG_SSB_POSSIBLE=y
658# CONFIG_MFD_CORE is not set 794# CONFIG_MFD_CORE is not set
659# CONFIG_MFD_SM501 is not set 795# CONFIG_MFD_SM501 is not set
660# CONFIG_HTC_PASIC3 is not set 796# CONFIG_HTC_PASIC3 is not set
797# CONFIG_TPS65010 is not set
798# CONFIG_TWL4030_CORE is not set
661# CONFIG_MFD_TMIO is not set 799# CONFIG_MFD_TMIO is not set
800# CONFIG_PMIC_DA903X is not set
662# CONFIG_MFD_WM8400 is not set 801# CONFIG_MFD_WM8400 is not set
802# CONFIG_MFD_WM8350_I2C is not set
803# CONFIG_MFD_PCF50633 is not set
804# CONFIG_REGULATOR is not set
663 805
664# 806#
665# Multimedia devices 807# Multimedia devices
@@ -668,13 +810,47 @@ CONFIG_SSB_POSSIBLE=y
668# 810#
669# Multimedia core support 811# Multimedia core support
670# 812#
671# CONFIG_VIDEO_DEV is not set 813CONFIG_VIDEO_DEV=y
814CONFIG_VIDEO_V4L2_COMMON=y
815# CONFIG_VIDEO_ALLOW_V4L1 is not set
816CONFIG_VIDEO_V4L1_COMPAT=y
672# CONFIG_DVB_CORE is not set 817# CONFIG_DVB_CORE is not set
673# CONFIG_VIDEO_MEDIA is not set 818CONFIG_VIDEO_MEDIA=y
674 819
675# 820#
676# Multimedia drivers 821# Multimedia drivers
677# 822#
823# CONFIG_MEDIA_ATTACH is not set
824CONFIG_MEDIA_TUNER=y
825# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
826CONFIG_MEDIA_TUNER_SIMPLE=y
827CONFIG_MEDIA_TUNER_TDA8290=y
828CONFIG_MEDIA_TUNER_TDA9887=y
829CONFIG_MEDIA_TUNER_TEA5761=y
830CONFIG_MEDIA_TUNER_TEA5767=y
831CONFIG_MEDIA_TUNER_MT20XX=y
832CONFIG_MEDIA_TUNER_XC2028=y
833CONFIG_MEDIA_TUNER_XC5000=y
834CONFIG_VIDEO_V4L2=y
835CONFIG_VIDEOBUF_GEN=y
836CONFIG_VIDEOBUF_DMA_CONTIG=y
837CONFIG_VIDEO_CAPTURE_DRIVERS=y
838# CONFIG_VIDEO_ADV_DEBUG is not set
839# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
840CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
841# CONFIG_VIDEO_VIVI is not set
842# CONFIG_VIDEO_SAA5246A is not set
843# CONFIG_VIDEO_SAA5249 is not set
844CONFIG_SOC_CAMERA=y
845# CONFIG_SOC_CAMERA_MT9M001 is not set
846# CONFIG_SOC_CAMERA_MT9M111 is not set
847# CONFIG_SOC_CAMERA_MT9T031 is not set
848# CONFIG_SOC_CAMERA_MT9V022 is not set
849# CONFIG_SOC_CAMERA_TW9910 is not set
850CONFIG_SOC_CAMERA_PLATFORM=y
851CONFIG_SOC_CAMERA_OV772X=y
852CONFIG_VIDEO_SH_MOBILE_CEU=y
853# CONFIG_RADIO_ADAPTERS is not set
678# CONFIG_DAB is not set 854# CONFIG_DAB is not set
679 855
680# 856#
@@ -682,7 +858,34 @@ CONFIG_SSB_POSSIBLE=y
682# 858#
683# CONFIG_VGASTATE is not set 859# CONFIG_VGASTATE is not set
684# CONFIG_VIDEO_OUTPUT_CONTROL is not set 860# CONFIG_VIDEO_OUTPUT_CONTROL is not set
685# CONFIG_FB is not set 861CONFIG_FB=y
862# CONFIG_FIRMWARE_EDID is not set
863# CONFIG_FB_DDC is not set
864# CONFIG_FB_BOOT_VESA_SUPPORT is not set
865# CONFIG_FB_CFB_FILLRECT is not set
866# CONFIG_FB_CFB_COPYAREA is not set
867# CONFIG_FB_CFB_IMAGEBLIT is not set
868# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
869CONFIG_FB_SYS_FILLRECT=y
870CONFIG_FB_SYS_COPYAREA=y
871CONFIG_FB_SYS_IMAGEBLIT=y
872# CONFIG_FB_FOREIGN_ENDIAN is not set
873CONFIG_FB_SYS_FOPS=y
874CONFIG_FB_DEFERRED_IO=y
875# CONFIG_FB_SVGALIB is not set
876# CONFIG_FB_MACMODES is not set
877# CONFIG_FB_BACKLIGHT is not set
878# CONFIG_FB_MODE_HELPERS is not set
879# CONFIG_FB_TILEBLITTING is not set
880
881#
882# Frame buffer hardware drivers
883#
884# CONFIG_FB_S1D13XXX is not set
885CONFIG_FB_SH_MOBILE_LCDC=y
886# CONFIG_FB_VIRTUAL is not set
887# CONFIG_FB_METRONOME is not set
888# CONFIG_FB_MB862XX is not set
686# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 889# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
687 890
688# 891#
@@ -694,14 +897,103 @@ CONFIG_SSB_POSSIBLE=y
694# Console display driver support 897# Console display driver support
695# 898#
696CONFIG_DUMMY_CONSOLE=y 899CONFIG_DUMMY_CONSOLE=y
900CONFIG_FRAMEBUFFER_CONSOLE=y
901# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
902# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
903# CONFIG_FONTS is not set
904CONFIG_FONT_8x8=y
905CONFIG_FONT_8x16=y
906CONFIG_LOGO=y
907CONFIG_LOGO_LINUX_MONO=y
908CONFIG_LOGO_LINUX_VGA16=y
909CONFIG_LOGO_LINUX_CLUT224=y
910CONFIG_LOGO_SUPERH_MONO=y
911CONFIG_LOGO_SUPERH_VGA16=y
912CONFIG_LOGO_SUPERH_CLUT224=y
697# CONFIG_SOUND is not set 913# CONFIG_SOUND is not set
698# CONFIG_HID_SUPPORT is not set 914# CONFIG_HID_SUPPORT is not set
699# CONFIG_USB_SUPPORT is not set 915# CONFIG_USB_SUPPORT is not set
700# CONFIG_MMC is not set 916CONFIG_MMC=y
917# CONFIG_MMC_DEBUG is not set
918# CONFIG_MMC_UNSAFE_RESUME is not set
919
920#
921# MMC/SD/SDIO Card Drivers
922#
923CONFIG_MMC_BLOCK=y
924CONFIG_MMC_BLOCK_BOUNCE=y
925# CONFIG_SDIO_UART is not set
926# CONFIG_MMC_TEST is not set
927
928#
929# MMC/SD/SDIO Host Controller Drivers
930#
931# CONFIG_MMC_SDHCI is not set
932CONFIG_MMC_SPI=y
701# CONFIG_MEMSTICK is not set 933# CONFIG_MEMSTICK is not set
702# CONFIG_NEW_LEDS is not set 934# CONFIG_NEW_LEDS is not set
703# CONFIG_ACCESSIBILITY is not set 935# CONFIG_ACCESSIBILITY is not set
704# CONFIG_RTC_CLASS is not set 936CONFIG_RTC_LIB=y
937CONFIG_RTC_CLASS=y
938CONFIG_RTC_HCTOSYS=y
939CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
940# CONFIG_RTC_DEBUG is not set
941
942#
943# RTC interfaces
944#
945CONFIG_RTC_INTF_SYSFS=y
946CONFIG_RTC_INTF_PROC=y
947CONFIG_RTC_INTF_DEV=y
948# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
949# CONFIG_RTC_DRV_TEST is not set
950
951#
952# I2C RTC drivers
953#
954# CONFIG_RTC_DRV_DS1307 is not set
955# CONFIG_RTC_DRV_DS1374 is not set
956# CONFIG_RTC_DRV_DS1672 is not set
957# CONFIG_RTC_DRV_MAX6900 is not set
958# CONFIG_RTC_DRV_RS5C372 is not set
959# CONFIG_RTC_DRV_ISL1208 is not set
960# CONFIG_RTC_DRV_X1205 is not set
961CONFIG_RTC_DRV_PCF8563=y
962# CONFIG_RTC_DRV_PCF8583 is not set
963# CONFIG_RTC_DRV_M41T80 is not set
964# CONFIG_RTC_DRV_S35390A is not set
965# CONFIG_RTC_DRV_FM3130 is not set
966# CONFIG_RTC_DRV_RX8581 is not set
967
968#
969# SPI RTC drivers
970#
971# CONFIG_RTC_DRV_M41T94 is not set
972# CONFIG_RTC_DRV_DS1305 is not set
973# CONFIG_RTC_DRV_DS1390 is not set
974# CONFIG_RTC_DRV_MAX6902 is not set
975# CONFIG_RTC_DRV_R9701 is not set
976# CONFIG_RTC_DRV_RS5C348 is not set
977# CONFIG_RTC_DRV_DS3234 is not set
978
979#
980# Platform RTC drivers
981#
982# CONFIG_RTC_DRV_DS1286 is not set
983# CONFIG_RTC_DRV_DS1511 is not set
984# CONFIG_RTC_DRV_DS1553 is not set
985# CONFIG_RTC_DRV_DS1742 is not set
986# CONFIG_RTC_DRV_STK17TA8 is not set
987# CONFIG_RTC_DRV_M48T86 is not set
988# CONFIG_RTC_DRV_M48T35 is not set
989# CONFIG_RTC_DRV_M48T59 is not set
990# CONFIG_RTC_DRV_BQ4802 is not set
991# CONFIG_RTC_DRV_V3020 is not set
992
993#
994# on-CPU RTC drivers
995#
996# CONFIG_RTC_DRV_SH is not set
705# CONFIG_DMADEVICES is not set 997# CONFIG_DMADEVICES is not set
706CONFIG_UIO=y 998CONFIG_UIO=y
707# CONFIG_UIO_PDRV is not set 999# CONFIG_UIO_PDRV is not set
@@ -731,6 +1023,7 @@ CONFIG_FS_POSIX_ACL=y
731CONFIG_FILE_LOCKING=y 1023CONFIG_FILE_LOCKING=y
732# CONFIG_XFS_FS is not set 1024# CONFIG_XFS_FS is not set
733# CONFIG_OCFS2_FS is not set 1025# CONFIG_OCFS2_FS is not set
1026# CONFIG_BTRFS_FS is not set
734CONFIG_DNOTIFY=y 1027CONFIG_DNOTIFY=y
735CONFIG_INOTIFY=y 1028CONFIG_INOTIFY=y
736CONFIG_INOTIFY_USER=y 1029CONFIG_INOTIFY_USER=y
@@ -768,10 +1061,7 @@ CONFIG_TMPFS=y
768# CONFIG_HUGETLBFS is not set 1061# CONFIG_HUGETLBFS is not set
769# CONFIG_HUGETLB_PAGE is not set 1062# CONFIG_HUGETLB_PAGE is not set
770# CONFIG_CONFIGFS_FS is not set 1063# CONFIG_CONFIGFS_FS is not set
771 1064CONFIG_MISC_FILESYSTEMS=y
772#
773# Miscellaneous filesystems
774#
775# CONFIG_ADFS_FS is not set 1065# CONFIG_ADFS_FS is not set
776# CONFIG_AFFS_FS is not set 1066# CONFIG_AFFS_FS is not set
777# CONFIG_HFS_FS is not set 1067# CONFIG_HFS_FS is not set
@@ -780,7 +1070,9 @@ CONFIG_TMPFS=y
780# CONFIG_BFS_FS is not set 1070# CONFIG_BFS_FS is not set
781# CONFIG_EFS_FS is not set 1071# CONFIG_EFS_FS is not set
782# CONFIG_JFFS2_FS is not set 1072# CONFIG_JFFS2_FS is not set
1073# CONFIG_UBIFS_FS is not set
783# CONFIG_CRAMFS is not set 1074# CONFIG_CRAMFS is not set
1075# CONFIG_SQUASHFS is not set
784# CONFIG_VXFS_FS is not set 1076# CONFIG_VXFS_FS is not set
785# CONFIG_MINIX_FS is not set 1077# CONFIG_MINIX_FS is not set
786# CONFIG_OMFS_FS is not set 1078# CONFIG_OMFS_FS is not set
@@ -878,13 +1170,19 @@ CONFIG_FRAME_WARN=1024
878# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1170# CONFIG_RCU_CPU_STALL_DETECTOR is not set
879# CONFIG_LATENCYTOP is not set 1171# CONFIG_LATENCYTOP is not set
880CONFIG_SYSCTL_SYSCALL_CHECK=y 1172CONFIG_SYSCTL_SYSCALL_CHECK=y
881CONFIG_NOP_TRACER=y 1173CONFIG_HAVE_FUNCTION_TRACER=y
882CONFIG_HAVE_FTRACE=y 1174CONFIG_HAVE_DYNAMIC_FTRACE=y
1175CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1176
1177#
1178# Tracers
1179#
883# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1180# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
884# CONFIG_SAMPLES is not set 1181# CONFIG_SAMPLES is not set
1182CONFIG_HAVE_ARCH_KGDB=y
885# CONFIG_SH_STANDARD_BIOS is not set 1183# CONFIG_SH_STANDARD_BIOS is not set
886# CONFIG_EARLY_SCIF_CONSOLE is not set 1184# CONFIG_EARLY_SCIF_CONSOLE is not set
887# CONFIG_SH_KGDB is not set 1185# CONFIG_MORE_COMPILE_OPTIONS is not set
888 1186
889# 1187#
890# Security options 1188# Security options
@@ -900,11 +1198,14 @@ CONFIG_CRYPTO=y
900# 1198#
901# CONFIG_CRYPTO_FIPS is not set 1199# CONFIG_CRYPTO_FIPS is not set
902CONFIG_CRYPTO_ALGAPI=y 1200CONFIG_CRYPTO_ALGAPI=y
903CONFIG_CRYPTO_AEAD=y 1201CONFIG_CRYPTO_ALGAPI2=y
1202CONFIG_CRYPTO_AEAD2=y
904CONFIG_CRYPTO_BLKCIPHER=y 1203CONFIG_CRYPTO_BLKCIPHER=y
905CONFIG_CRYPTO_HASH=y 1204CONFIG_CRYPTO_BLKCIPHER2=y
906CONFIG_CRYPTO_RNG=y 1205CONFIG_CRYPTO_HASH2=y
1206CONFIG_CRYPTO_RNG2=y
907CONFIG_CRYPTO_MANAGER=y 1207CONFIG_CRYPTO_MANAGER=y
1208CONFIG_CRYPTO_MANAGER2=y
908# CONFIG_CRYPTO_GF128MUL is not set 1209# CONFIG_CRYPTO_GF128MUL is not set
909# CONFIG_CRYPTO_NULL is not set 1210# CONFIG_CRYPTO_NULL is not set
910# CONFIG_CRYPTO_CRYPTD is not set 1211# CONFIG_CRYPTO_CRYPTD is not set
@@ -987,12 +1288,13 @@ CONFIG_CRYPTO_HW=y
987# Library routines 1288# Library routines
988# 1289#
989CONFIG_BITREVERSE=y 1290CONFIG_BITREVERSE=y
1291CONFIG_GENERIC_FIND_LAST_BIT=y
990# CONFIG_CRC_CCITT is not set 1292# CONFIG_CRC_CCITT is not set
991# CONFIG_CRC16 is not set 1293# CONFIG_CRC16 is not set
992CONFIG_CRC_T10DIF=y 1294CONFIG_CRC_T10DIF=y
993# CONFIG_CRC_ITU_T is not set 1295CONFIG_CRC_ITU_T=y
994CONFIG_CRC32=y 1296CONFIG_CRC32=y
995# CONFIG_CRC7 is not set 1297CONFIG_CRC7=y
996# CONFIG_LIBCRC32C is not set 1298# CONFIG_LIBCRC32C is not set
997CONFIG_PLIST=y 1299CONFIG_PLIST=y
998CONFIG_HAS_IOMEM=y 1300CONFIG_HAS_IOMEM=y
diff --git a/arch/sh/configs/cayman_defconfig b/arch/sh/configs/cayman_defconfig
index e21c0e8e22d9..92895013813d 100644
--- a/arch/sh/configs/cayman_defconfig
+++ b/arch/sh/configs/cayman_defconfig
@@ -700,8 +700,8 @@ CONFIG_I2C_HELPER_AUTO=y
700# Miscellaneous I2C Chip support 700# Miscellaneous I2C Chip support
701# 701#
702# CONFIG_DS1682 is not set 702# CONFIG_DS1682 is not set
703# CONFIG_AT24 is not set 703# CONFIG_EEPROM_AT24 is not set
704# CONFIG_SENSORS_EEPROM is not set 704# CONFIG_EEPROM_LEGACY is not set
705# CONFIG_SENSORS_PCF8574 is not set 705# CONFIG_SENSORS_PCF8574 is not set
706# CONFIG_PCF8575 is not set 706# CONFIG_PCF8575 is not set
707# CONFIG_SENSORS_PCA9539 is not set 707# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/sh/configs/dreamcast_defconfig b/arch/sh/configs/dreamcast_defconfig
index be4c2e0dbb26..2d86e0487517 100644
--- a/arch/sh/configs/dreamcast_defconfig
+++ b/arch/sh/configs/dreamcast_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:18:02 2008 4# Fri Jan 9 16:54:55 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -78,7 +80,6 @@ CONFIG_SLAB=y
78# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
80CONFIG_PROFILING=y 82CONFIG_PROFILING=y
81# CONFIG_MARKERS is not set
82# CONFIG_OPROFILE is not set 83# CONFIG_OPROFILE is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 98# CONFIG_MODULE_FORCE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_DEFAULT_AS=y
119# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -195,7 +198,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
195CONFIG_SPARSEMEM_STATIC=y 198CONFIG_SPARSEMEM_STATIC=y
196CONFIG_PAGEFLAGS_EXTENDED=y 199CONFIG_PAGEFLAGS_EXTENDED=y
197CONFIG_SPLIT_PTLOCK_CPUS=4 200CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_RESOURCES_64BIT is not set
199# CONFIG_PHYS_ADDR_T_64BIT is not set 201# CONFIG_PHYS_ADDR_T_64BIT is not set
200CONFIG_ZONE_DMA_FLAG=0 202CONFIG_ZONE_DMA_FLAG=0
201CONFIG_NR_QUICK=2 203CONFIG_NR_QUICK=2
@@ -290,7 +292,6 @@ CONFIG_SECCOMP=y
290# CONFIG_PREEMPT_NONE is not set 292# CONFIG_PREEMPT_NONE is not set
291# CONFIG_PREEMPT_VOLUNTARY is not set 293# CONFIG_PREEMPT_VOLUNTARY is not set
292CONFIG_PREEMPT=y 294CONFIG_PREEMPT=y
293# CONFIG_PREEMPT_RCU is not set
294CONFIG_GUSA=y 295CONFIG_GUSA=y
295# CONFIG_GUSA_RB is not set 296# CONFIG_GUSA_RB is not set
296 297
@@ -310,6 +311,7 @@ CONFIG_MAPLE=y
310CONFIG_PCI=y 311CONFIG_PCI=y
311CONFIG_SH_PCIDMA_NONCOHERENT=y 312CONFIG_SH_PCIDMA_NONCOHERENT=y
312CONFIG_PCI_AUTO=y 313CONFIG_PCI_AUTO=y
314# CONFIG_PCIEPORTBUS is not set
313# CONFIG_ARCH_SUPPORTS_MSI is not set 315# CONFIG_ARCH_SUPPORTS_MSI is not set
314CONFIG_PCI_LEGACY=y 316CONFIG_PCI_LEGACY=y
315# CONFIG_PCCARD is not set 317# CONFIG_PCCARD is not set
@@ -322,11 +324,18 @@ CONFIG_BINFMT_ELF=y
322# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 324# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
323# CONFIG_HAVE_AOUT is not set 325# CONFIG_HAVE_AOUT is not set
324# CONFIG_BINFMT_MISC is not set 326# CONFIG_BINFMT_MISC is not set
327
328#
329# Power management options (EXPERIMENTAL)
330#
331# CONFIG_PM is not set
332# CONFIG_CPU_IDLE is not set
325CONFIG_NET=y 333CONFIG_NET=y
326 334
327# 335#
328# Networking options 336# Networking options
329# 337#
338CONFIG_COMPAT_NET_DEV_OPS=y
330CONFIG_PACKET=y 339CONFIG_PACKET=y
331# CONFIG_PACKET_MMAP is not set 340# CONFIG_PACKET_MMAP is not set
332CONFIG_UNIX=y 341CONFIG_UNIX=y
@@ -379,6 +388,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
379# CONFIG_ECONET is not set 388# CONFIG_ECONET is not set
380# CONFIG_WAN_ROUTER is not set 389# CONFIG_WAN_ROUTER is not set
381# CONFIG_NET_SCHED is not set 390# CONFIG_NET_SCHED is not set
391# CONFIG_DCB is not set
382 392
383# 393#
384# Network testing 394# Network testing
@@ -394,8 +404,8 @@ CONFIG_WIRELESS=y
394# CONFIG_CFG80211 is not set 404# CONFIG_CFG80211 is not set
395# CONFIG_WIRELESS_OLD_REGULATORY is not set 405# CONFIG_WIRELESS_OLD_REGULATORY is not set
396# CONFIG_WIRELESS_EXT is not set 406# CONFIG_WIRELESS_EXT is not set
407# CONFIG_LIB80211 is not set
397# CONFIG_MAC80211 is not set 408# CONFIG_MAC80211 is not set
398# CONFIG_IEEE80211 is not set
399# CONFIG_RFKILL is not set 409# CONFIG_RFKILL is not set
400# CONFIG_NET_9P is not set 410# CONFIG_NET_9P is not set
401 411
@@ -434,6 +444,7 @@ CONFIG_MISC_DEVICES=y
434# CONFIG_TIFM_CORE is not set 444# CONFIG_TIFM_CORE is not set
435# CONFIG_ENCLOSURE_SERVICES is not set 445# CONFIG_ENCLOSURE_SERVICES is not set
436# CONFIG_HP_ILO is not set 446# CONFIG_HP_ILO is not set
447# CONFIG_C2PORT is not set
437CONFIG_HAVE_IDE=y 448CONFIG_HAVE_IDE=y
438# CONFIG_IDE is not set 449# CONFIG_IDE is not set
439 450
@@ -477,6 +488,7 @@ CONFIG_MII=y
477# CONFIG_NET_VENDOR_3COM is not set 488# CONFIG_NET_VENDOR_3COM is not set
478# CONFIG_SMC91X is not set 489# CONFIG_SMC91X is not set
479# CONFIG_SMC911X is not set 490# CONFIG_SMC911X is not set
491# CONFIG_SMSC911X is not set
480# CONFIG_NET_TULIP is not set 492# CONFIG_NET_TULIP is not set
481# CONFIG_HP100 is not set 493# CONFIG_HP100 is not set
482# CONFIG_IBM_NEW_EMAC_ZMII is not set 494# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -492,7 +504,6 @@ CONFIG_NET_PCI=y
492# CONFIG_ADAPTEC_STARFIRE is not set 504# CONFIG_ADAPTEC_STARFIRE is not set
493# CONFIG_B44 is not set 505# CONFIG_B44 is not set
494# CONFIG_FORCEDETH is not set 506# CONFIG_FORCEDETH is not set
495# CONFIG_EEPRO100 is not set
496# CONFIG_E100 is not set 507# CONFIG_E100 is not set
497# CONFIG_FEALNX is not set 508# CONFIG_FEALNX is not set
498# CONFIG_NATSEMI is not set 509# CONFIG_NATSEMI is not set
@@ -506,6 +517,7 @@ CONFIG_8139TOO=y
506# CONFIG_R6040 is not set 517# CONFIG_R6040 is not set
507# CONFIG_SIS900 is not set 518# CONFIG_SIS900 is not set
508# CONFIG_EPIC100 is not set 519# CONFIG_EPIC100 is not set
520# CONFIG_SMSC9420 is not set
509# CONFIG_SUNDANCE is not set 521# CONFIG_SUNDANCE is not set
510# CONFIG_TLAN is not set 522# CONFIG_TLAN is not set
511# CONFIG_VIA_RHINE is not set 523# CONFIG_VIA_RHINE is not set
@@ -611,6 +623,7 @@ CONFIG_SERIAL_CORE=y
611CONFIG_SERIAL_CORE_CONSOLE=y 623CONFIG_SERIAL_CORE_CONSOLE=y
612# CONFIG_SERIAL_JSM is not set 624# CONFIG_SERIAL_JSM is not set
613CONFIG_UNIX98_PTYS=y 625CONFIG_UNIX98_PTYS=y
626# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
614CONFIG_LEGACY_PTYS=y 627CONFIG_LEGACY_PTYS=y
615CONFIG_LEGACY_PTY_COUNT=256 628CONFIG_LEGACY_PTY_COUNT=256
616# CONFIG_IPMI_HANDLER is not set 629# CONFIG_IPMI_HANDLER is not set
@@ -643,11 +656,11 @@ CONFIG_SH_WDT=y
643# 656#
644# CONFIG_PCIPCWATCHDOG is not set 657# CONFIG_PCIPCWATCHDOG is not set
645# CONFIG_WDTPCI is not set 658# CONFIG_WDTPCI is not set
659CONFIG_SSB_POSSIBLE=y
646 660
647# 661#
648# Sonics Silicon Backplane 662# Sonics Silicon Backplane
649# 663#
650CONFIG_SSB_POSSIBLE=y
651# CONFIG_SSB is not set 664# CONFIG_SSB is not set
652 665
653# 666#
@@ -657,7 +670,7 @@ CONFIG_SSB_POSSIBLE=y
657# CONFIG_MFD_SM501 is not set 670# CONFIG_MFD_SM501 is not set
658# CONFIG_HTC_PASIC3 is not set 671# CONFIG_HTC_PASIC3 is not set
659# CONFIG_MFD_TMIO is not set 672# CONFIG_MFD_TMIO is not set
660# CONFIG_MFD_WM8400 is not set 673# CONFIG_REGULATOR is not set
661 674
662# 675#
663# Multimedia devices 676# Multimedia devices
@@ -732,6 +745,7 @@ CONFIG_FB_PVR2=y
732# CONFIG_FB_SH_MOBILE_LCDC is not set 745# CONFIG_FB_SH_MOBILE_LCDC is not set
733# CONFIG_FB_VIRTUAL is not set 746# CONFIG_FB_VIRTUAL is not set
734# CONFIG_FB_METRONOME is not set 747# CONFIG_FB_METRONOME is not set
748# CONFIG_FB_MB862XX is not set
735# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 749# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
736 750
737# 751#
@@ -788,9 +802,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
788# 802#
789 803
790# 804#
791# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 805# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
792# 806#
793# CONFIG_USB_GADGET is not set 807# CONFIG_USB_GADGET is not set
808# CONFIG_UWB is not set
794# CONFIG_MMC is not set 809# CONFIG_MMC is not set
795# CONFIG_MEMSTICK is not set 810# CONFIG_MEMSTICK is not set
796# CONFIG_NEW_LEDS is not set 811# CONFIG_NEW_LEDS is not set
@@ -847,10 +862,7 @@ CONFIG_TMPFS=y
847CONFIG_HUGETLBFS=y 862CONFIG_HUGETLBFS=y
848CONFIG_HUGETLB_PAGE=y 863CONFIG_HUGETLB_PAGE=y
849# CONFIG_CONFIGFS_FS is not set 864# CONFIG_CONFIGFS_FS is not set
850 865CONFIG_MISC_FILESYSTEMS=y
851#
852# Miscellaneous filesystems
853#
854# CONFIG_ADFS_FS is not set 866# CONFIG_ADFS_FS is not set
855# CONFIG_AFFS_FS is not set 867# CONFIG_AFFS_FS is not set
856# CONFIG_HFS_FS is not set 868# CONFIG_HFS_FS is not set
@@ -901,13 +913,19 @@ CONFIG_FRAME_WARN=1024
901# CONFIG_DEBUG_MEMORY_INIT is not set 913# CONFIG_DEBUG_MEMORY_INIT is not set
902# CONFIG_RCU_CPU_STALL_DETECTOR is not set 914# CONFIG_RCU_CPU_STALL_DETECTOR is not set
903# CONFIG_LATENCYTOP is not set 915# CONFIG_LATENCYTOP is not set
904CONFIG_NOP_TRACER=y 916CONFIG_HAVE_FUNCTION_TRACER=y
905CONFIG_HAVE_FTRACE=y 917CONFIG_HAVE_DYNAMIC_FTRACE=y
918CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
919
920#
921# Tracers
922#
906# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 923# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
907# CONFIG_SAMPLES is not set 924# CONFIG_SAMPLES is not set
925CONFIG_HAVE_ARCH_KGDB=y
908# CONFIG_SH_STANDARD_BIOS is not set 926# CONFIG_SH_STANDARD_BIOS is not set
909# CONFIG_EARLY_SCIF_CONSOLE is not set 927# CONFIG_EARLY_SCIF_CONSOLE is not set
910# CONFIG_SH_KGDB is not set 928# CONFIG_MORE_COMPILE_OPTIONS is not set
911 929
912# 930#
913# Security options 931# Security options
@@ -923,6 +941,7 @@ CONFIG_CRYPTO=y
923# 941#
924# CONFIG_CRYPTO_FIPS is not set 942# CONFIG_CRYPTO_FIPS is not set
925# CONFIG_CRYPTO_MANAGER is not set 943# CONFIG_CRYPTO_MANAGER is not set
944# CONFIG_CRYPTO_MANAGER2 is not set
926# CONFIG_CRYPTO_GF128MUL is not set 945# CONFIG_CRYPTO_GF128MUL is not set
927# CONFIG_CRYPTO_NULL is not set 946# CONFIG_CRYPTO_NULL is not set
928# CONFIG_CRYPTO_CRYPTD is not set 947# CONFIG_CRYPTO_CRYPTD is not set
@@ -1006,6 +1025,7 @@ CONFIG_CRYPTO_HW=y
1006# Library routines 1025# Library routines
1007# 1026#
1008CONFIG_BITREVERSE=y 1027CONFIG_BITREVERSE=y
1028CONFIG_GENERIC_FIND_LAST_BIT=y
1009# CONFIG_CRC_CCITT is not set 1029# CONFIG_CRC_CCITT is not set
1010# CONFIG_CRC16 is not set 1030# CONFIG_CRC16 is not set
1011# CONFIG_CRC_T10DIF is not set 1031# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/edosk7705_defconfig b/arch/sh/configs/edosk7705_defconfig
index 8f4329fbbd39..461bfb350221 100644
--- a/arch/sh/configs/edosk7705_defconfig
+++ b/arch/sh/configs/edosk7705_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.28-rc6 3# Linux kernel version: 2.6.28
4# Wed Dec 17 13:53:02 2008 4# Fri Jan 9 16:55:29 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -64,7 +64,6 @@ CONFIG_SHMEM=y
64CONFIG_SLUB=y 64CONFIG_SLUB=y
65# CONFIG_SLOB is not set 65# CONFIG_SLOB is not set
66# CONFIG_PROFILING is not set 66# CONFIG_PROFILING is not set
67# CONFIG_MARKERS is not set
68CONFIG_HAVE_OPROFILE=y 67CONFIG_HAVE_OPROFILE=y
69CONFIG_HAVE_IOREMAP_PROT=y 68CONFIG_HAVE_IOREMAP_PROT=y
70CONFIG_HAVE_KPROBES=y 69CONFIG_HAVE_KPROBES=y
@@ -72,11 +71,14 @@ CONFIG_HAVE_KRETPROBES=y
72CONFIG_HAVE_ARCH_TRACEHOOK=y 71CONFIG_HAVE_ARCH_TRACEHOOK=y
73CONFIG_HAVE_CLK=y 72CONFIG_HAVE_CLK=y
74CONFIG_HAVE_GENERIC_DMA_COHERENT=y 73CONFIG_HAVE_GENERIC_DMA_COHERENT=y
75# CONFIG_TINY_SHMEM is not set
76CONFIG_BASE_SMALL=1 74CONFIG_BASE_SMALL=1
77# CONFIG_MODULES is not set 75# CONFIG_MODULES is not set
78# CONFIG_BLOCK is not set 76# CONFIG_BLOCK is not set
79CONFIG_CLASSIC_RCU=y 77CONFIG_CLASSIC_RCU=y
78# CONFIG_TREE_RCU is not set
79# CONFIG_PREEMPT_RCU is not set
80# CONFIG_TREE_RCU_TRACE is not set
81# CONFIG_PREEMPT_RCU_TRACE is not set
80# CONFIG_FREEZER is not set 82# CONFIG_FREEZER is not set
81 83
82# 84#
@@ -151,7 +153,6 @@ CONFIG_SPARSEMEM_STATIC=y
151CONFIG_PAGEFLAGS_EXTENDED=y 153CONFIG_PAGEFLAGS_EXTENDED=y
152CONFIG_SPLIT_PTLOCK_CPUS=4 154CONFIG_SPLIT_PTLOCK_CPUS=4
153CONFIG_MIGRATION=y 155CONFIG_MIGRATION=y
154# CONFIG_RESOURCES_64BIT is not set
155# CONFIG_PHYS_ADDR_T_64BIT is not set 156# CONFIG_PHYS_ADDR_T_64BIT is not set
156CONFIG_ZONE_DMA_FLAG=0 157CONFIG_ZONE_DMA_FLAG=0
157CONFIG_NR_QUICK=2 158CONFIG_NR_QUICK=2
@@ -362,7 +363,6 @@ CONFIG_SSB_POSSIBLE=y
362# CONFIG_DMADEVICES is not set 363# CONFIG_DMADEVICES is not set
363# CONFIG_UIO is not set 364# CONFIG_UIO is not set
364# CONFIG_STAGING is not set 365# CONFIG_STAGING is not set
365CONFIG_STAGING_EXCLUDE_BUILD=y
366 366
367# 367#
368# File systems 368# File systems
@@ -382,10 +382,7 @@ CONFIG_STAGING_EXCLUDE_BUILD=y
382# CONFIG_TMPFS is not set 382# CONFIG_TMPFS is not set
383# CONFIG_HUGETLBFS is not set 383# CONFIG_HUGETLBFS is not set
384# CONFIG_HUGETLB_PAGE is not set 384# CONFIG_HUGETLB_PAGE is not set
385 385CONFIG_MISC_FILESYSTEMS=y
386#
387# Miscellaneous filesystems
388#
389# CONFIG_NLS is not set 386# CONFIG_NLS is not set
390 387
391# 388#
@@ -426,6 +423,7 @@ CONFIG_HAVE_ARCH_KGDB=y
426# 423#
427# Library routines 424# Library routines
428# 425#
426CONFIG_GENERIC_FIND_LAST_BIT=y
429# CONFIG_CRC_CCITT is not set 427# CONFIG_CRC_CCITT is not set
430# CONFIG_CRC16 is not set 428# CONFIG_CRC16 is not set
431# CONFIG_CRC_T10DIF is not set 429# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/edosk7760_defconfig b/arch/sh/configs/edosk7760_defconfig
index 158006847ad6..14d4b35685a1 100644
--- a/arch/sh/configs/edosk7760_defconfig
+++ b/arch/sh/configs/edosk7760_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:20:09 2008 4# Fri Jan 9 16:55:48 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -75,13 +78,11 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 78CONFIG_SHMEM=y
76CONFIG_AIO=y 79CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 80CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLUB_DEBUG=y 81CONFIG_SLUB_DEBUG=y
80# CONFIG_SLAB is not set 82# CONFIG_SLAB is not set
81CONFIG_SLUB=y 83CONFIG_SLUB=y
82# CONFIG_SLOB is not set 84# CONFIG_SLOB is not set
83# CONFIG_PROFILING is not set 85# CONFIG_PROFILING is not set
84# CONFIG_MARKERS is not set
85CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
87CONFIG_HAVE_IOREMAP_PROT=y 88CONFIG_HAVE_IOREMAP_PROT=y
@@ -92,7 +93,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 97CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
100CONFIG_MODULE_FORCE_UNLOAD=y 100CONFIG_MODULE_FORCE_UNLOAD=y
101# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 103CONFIG_BLOCK=y
105# CONFIG_LBD is not set 104# CONFIG_LBD is not set
106# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
110 108
@@ -121,6 +119,10 @@ CONFIG_DEFAULT_CFQ=y
121# CONFIG_DEFAULT_NOOP is not set 119# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="cfq" 120CONFIG_DEFAULT_IOSCHED="cfq"
123CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
125 127
126# 128#
@@ -128,6 +130,7 @@ CONFIG_CLASSIC_RCU=y
128# 130#
129CONFIG_CPU_SH4=y 131CONFIG_CPU_SH4=y
130# CONFIG_CPU_SUBTYPE_SH7619 is not set 132# CONFIG_CPU_SUBTYPE_SH7619 is not set
133# CONFIG_CPU_SUBTYPE_SH7201 is not set
131# CONFIG_CPU_SUBTYPE_SH7203 is not set 134# CONFIG_CPU_SUBTYPE_SH7203 is not set
132# CONFIG_CPU_SUBTYPE_SH7206 is not set 135# CONFIG_CPU_SUBTYPE_SH7206 is not set
133# CONFIG_CPU_SUBTYPE_SH7263 is not set 136# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -191,7 +194,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
191CONFIG_SPARSEMEM_STATIC=y 194CONFIG_SPARSEMEM_STATIC=y
192CONFIG_PAGEFLAGS_EXTENDED=y 195CONFIG_PAGEFLAGS_EXTENDED=y
193CONFIG_SPLIT_PTLOCK_CPUS=4 196CONFIG_SPLIT_PTLOCK_CPUS=4
194# CONFIG_RESOURCES_64BIT is not set
195# CONFIG_PHYS_ADDR_T_64BIT is not set 197# CONFIG_PHYS_ADDR_T_64BIT is not set
196CONFIG_ZONE_DMA_FLAG=0 198CONFIG_ZONE_DMA_FLAG=0
197CONFIG_NR_QUICK=2 199CONFIG_NR_QUICK=2
@@ -272,7 +274,6 @@ CONFIG_SCHED_HRTICK=y
272# CONFIG_PREEMPT_NONE is not set 274# CONFIG_PREEMPT_NONE is not set
273# CONFIG_PREEMPT_VOLUNTARY is not set 275# CONFIG_PREEMPT_VOLUNTARY is not set
274CONFIG_PREEMPT=y 276CONFIG_PREEMPT=y
275# CONFIG_PREEMPT_RCU is not set
276CONFIG_GUSA=y 277CONFIG_GUSA=y
277# CONFIG_GUSA_RB is not set 278# CONFIG_GUSA_RB is not set
278 279
@@ -298,11 +299,18 @@ CONFIG_BINFMT_ELF=y
298# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 299# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
299# CONFIG_HAVE_AOUT is not set 300# CONFIG_HAVE_AOUT is not set
300# CONFIG_BINFMT_MISC is not set 301# CONFIG_BINFMT_MISC is not set
302
303#
304# Power management options (EXPERIMENTAL)
305#
306# CONFIG_PM is not set
307# CONFIG_CPU_IDLE is not set
301CONFIG_NET=y 308CONFIG_NET=y
302 309
303# 310#
304# Networking options 311# Networking options
305# 312#
313CONFIG_COMPAT_NET_DEV_OPS=y
306CONFIG_PACKET=y 314CONFIG_PACKET=y
307# CONFIG_PACKET_MMAP is not set 315# CONFIG_PACKET_MMAP is not set
308CONFIG_UNIX=y 316CONFIG_UNIX=y
@@ -353,6 +361,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_ECONET is not set 361# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 362# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set 363# CONFIG_NET_SCHED is not set
364# CONFIG_DCB is not set
356 365
357# 366#
358# Network testing 367# Network testing
@@ -368,8 +377,8 @@ CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 377# CONFIG_CFG80211 is not set
369# CONFIG_WIRELESS_OLD_REGULATORY is not set 378# CONFIG_WIRELESS_OLD_REGULATORY is not set
370# CONFIG_WIRELESS_EXT is not set 379# CONFIG_WIRELESS_EXT is not set
380# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set 381# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set
373# CONFIG_RFKILL is not set 382# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 383# CONFIG_NET_9P is not set
375 384
@@ -510,6 +519,7 @@ CONFIG_MII=y
510# CONFIG_STNIC is not set 519# CONFIG_STNIC is not set
511CONFIG_SMC91X=y 520CONFIG_SMC91X=y
512# CONFIG_SMC911X is not set 521# CONFIG_SMC911X is not set
522# CONFIG_SMSC911X is not set
513# CONFIG_IBM_NEW_EMAC_ZMII is not set 523# CONFIG_IBM_NEW_EMAC_ZMII is not set
514# CONFIG_IBM_NEW_EMAC_RGMII is not set 524# CONFIG_IBM_NEW_EMAC_RGMII is not set
515# CONFIG_IBM_NEW_EMAC_TAH is not set 525# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -592,6 +602,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
592CONFIG_SERIAL_CORE=y 602CONFIG_SERIAL_CORE=y
593CONFIG_SERIAL_CORE_CONSOLE=y 603CONFIG_SERIAL_CORE_CONSOLE=y
594CONFIG_UNIX98_PTYS=y 604CONFIG_UNIX98_PTYS=y
605# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
595CONFIG_LEGACY_PTYS=y 606CONFIG_LEGACY_PTYS=y
596CONFIG_LEGACY_PTY_COUNT=256 607CONFIG_LEGACY_PTY_COUNT=256
597# CONFIG_IPMI_HANDLER is not set 608# CONFIG_IPMI_HANDLER is not set
@@ -632,8 +643,8 @@ CONFIG_I2C_SH7760=y
632# Miscellaneous I2C Chip support 643# Miscellaneous I2C Chip support
633# 644#
634# CONFIG_DS1682 is not set 645# CONFIG_DS1682 is not set
635# CONFIG_AT24 is not set 646# CONFIG_EEPROM_AT24 is not set
636# CONFIG_SENSORS_EEPROM is not set 647# CONFIG_EEPROM_LEGACY is not set
637# CONFIG_SENSORS_PCF8574 is not set 648# CONFIG_SENSORS_PCF8574 is not set
638# CONFIG_PCF8575 is not set 649# CONFIG_PCF8575 is not set
639# CONFIG_SENSORS_PCA9539 is not set 650# CONFIG_SENSORS_PCA9539 is not set
@@ -651,11 +662,11 @@ CONFIG_I2C_DEBUG_CHIP=y
651# CONFIG_THERMAL is not set 662# CONFIG_THERMAL is not set
652# CONFIG_THERMAL_HWMON is not set 663# CONFIG_THERMAL_HWMON is not set
653# CONFIG_WATCHDOG is not set 664# CONFIG_WATCHDOG is not set
665CONFIG_SSB_POSSIBLE=y
654 666
655# 667#
656# Sonics Silicon Backplane 668# Sonics Silicon Backplane
657# 669#
658CONFIG_SSB_POSSIBLE=y
659# CONFIG_SSB is not set 670# CONFIG_SSB is not set
660 671
661# 672#
@@ -664,9 +675,12 @@ CONFIG_SSB_POSSIBLE=y
664# CONFIG_MFD_CORE is not set 675# CONFIG_MFD_CORE is not set
665# CONFIG_MFD_SM501 is not set 676# CONFIG_MFD_SM501 is not set
666# CONFIG_HTC_PASIC3 is not set 677# CONFIG_HTC_PASIC3 is not set
678# CONFIG_TWL4030_CORE is not set
667# CONFIG_MFD_TMIO is not set 679# CONFIG_MFD_TMIO is not set
680# CONFIG_PMIC_DA903X is not set
668# CONFIG_MFD_WM8400 is not set 681# CONFIG_MFD_WM8400 is not set
669# CONFIG_MFD_WM8350_I2C is not set 682# CONFIG_MFD_WM8350_I2C is not set
683# CONFIG_REGULATOR is not set
670 684
671# 685#
672# Multimedia devices 686# Multimedia devices
@@ -693,15 +707,16 @@ CONFIG_FB=m
693# CONFIG_FIRMWARE_EDID is not set 707# CONFIG_FIRMWARE_EDID is not set
694# CONFIG_FB_DDC is not set 708# CONFIG_FB_DDC is not set
695# CONFIG_FB_BOOT_VESA_SUPPORT is not set 709# CONFIG_FB_BOOT_VESA_SUPPORT is not set
696CONFIG_FB_CFB_FILLRECT=m 710# CONFIG_FB_CFB_FILLRECT is not set
697CONFIG_FB_CFB_COPYAREA=m 711# CONFIG_FB_CFB_COPYAREA is not set
698CONFIG_FB_CFB_IMAGEBLIT=m 712# CONFIG_FB_CFB_IMAGEBLIT is not set
699# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 713# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
700# CONFIG_FB_SYS_FILLRECT is not set 714CONFIG_FB_SYS_FILLRECT=m
701# CONFIG_FB_SYS_COPYAREA is not set 715CONFIG_FB_SYS_COPYAREA=m
702# CONFIG_FB_SYS_IMAGEBLIT is not set 716CONFIG_FB_SYS_IMAGEBLIT=m
703# CONFIG_FB_FOREIGN_ENDIAN is not set 717# CONFIG_FB_FOREIGN_ENDIAN is not set
704# CONFIG_FB_SYS_FOPS is not set 718CONFIG_FB_SYS_FOPS=m
719CONFIG_FB_DEFERRED_IO=y
705# CONFIG_FB_SVGALIB is not set 720# CONFIG_FB_SVGALIB is not set
706# CONFIG_FB_MACMODES is not set 721# CONFIG_FB_MACMODES is not set
707# CONFIG_FB_BACKLIGHT is not set 722# CONFIG_FB_BACKLIGHT is not set
@@ -716,6 +731,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
716# CONFIG_FB_SH7760 is not set 731# CONFIG_FB_SH7760 is not set
717# CONFIG_FB_VIRTUAL is not set 732# CONFIG_FB_VIRTUAL is not set
718# CONFIG_FB_METRONOME is not set 733# CONFIG_FB_METRONOME is not set
734# CONFIG_FB_MB862XX is not set
719# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 735# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
720 736
721# 737#
@@ -737,6 +753,7 @@ CONFIG_SND_PCM=y
737# CONFIG_SND_SEQUENCER is not set 753# CONFIG_SND_SEQUENCER is not set
738# CONFIG_SND_MIXER_OSS is not set 754# CONFIG_SND_MIXER_OSS is not set
739# CONFIG_SND_PCM_OSS is not set 755# CONFIG_SND_PCM_OSS is not set
756# CONFIG_SND_HRTIMER is not set
740# CONFIG_SND_DYNAMIC_MINORS is not set 757# CONFIG_SND_DYNAMIC_MINORS is not set
741# CONFIG_SND_SUPPORT_OLD_API is not set 758# CONFIG_SND_SUPPORT_OLD_API is not set
742# CONFIG_SND_VERBOSE_PROCFS is not set 759# CONFIG_SND_VERBOSE_PROCFS is not set
@@ -753,6 +770,7 @@ CONFIG_SND_SOC=y
753# 770#
754# SoC Audio support for SuperH 771# SoC Audio support for SuperH
755# 772#
773CONFIG_SND_SOC_I2C_AND_SPI=y
756# CONFIG_SND_SOC_ALL_CODECS is not set 774# CONFIG_SND_SOC_ALL_CODECS is not set
757# CONFIG_SOUND_PRIME is not set 775# CONFIG_SOUND_PRIME is not set
758# CONFIG_HID_SUPPORT is not set 776# CONFIG_HID_SUPPORT is not set
@@ -823,10 +841,7 @@ CONFIG_TMPFS_POSIX_ACL=y
823# CONFIG_HUGETLBFS is not set 841# CONFIG_HUGETLBFS is not set
824# CONFIG_HUGETLB_PAGE is not set 842# CONFIG_HUGETLB_PAGE is not set
825# CONFIG_CONFIGFS_FS is not set 843# CONFIG_CONFIGFS_FS is not set
826 844CONFIG_MISC_FILESYSTEMS=y
827#
828# Miscellaneous filesystems
829#
830# CONFIG_ADFS_FS is not set 845# CONFIG_ADFS_FS is not set
831# CONFIG_AFFS_FS is not set 846# CONFIG_AFFS_FS is not set
832# CONFIG_HFS_FS is not set 847# CONFIG_HFS_FS is not set
@@ -950,6 +965,7 @@ CONFIG_DEBUG_INFO=y
950# CONFIG_DEBUG_MEMORY_INIT is not set 965# CONFIG_DEBUG_MEMORY_INIT is not set
951# CONFIG_DEBUG_LIST is not set 966# CONFIG_DEBUG_LIST is not set
952# CONFIG_DEBUG_SG is not set 967# CONFIG_DEBUG_SG is not set
968# CONFIG_DEBUG_NOTIFIERS is not set
953# CONFIG_FRAME_POINTER is not set 969# CONFIG_FRAME_POINTER is not set
954# CONFIG_RCU_TORTURE_TEST is not set 970# CONFIG_RCU_TORTURE_TEST is not set
955# CONFIG_RCU_CPU_STALL_DETECTOR is not set 971# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -958,17 +974,25 @@ CONFIG_DEBUG_INFO=y
958# CONFIG_FAULT_INJECTION is not set 974# CONFIG_FAULT_INJECTION is not set
959# CONFIG_LATENCYTOP is not set 975# CONFIG_LATENCYTOP is not set
960CONFIG_SYSCTL_SYSCALL_CHECK=y 976CONFIG_SYSCTL_SYSCALL_CHECK=y
961CONFIG_NOP_TRACER=y 977CONFIG_HAVE_FUNCTION_TRACER=y
962CONFIG_HAVE_FTRACE=y 978CONFIG_HAVE_DYNAMIC_FTRACE=y
963# CONFIG_FTRACE is not set 979CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
980
981#
982# Tracers
983#
984# CONFIG_FUNCTION_TRACER is not set
964# CONFIG_IRQSOFF_TRACER is not set 985# CONFIG_IRQSOFF_TRACER is not set
965# CONFIG_PREEMPT_TRACER is not set 986# CONFIG_PREEMPT_TRACER is not set
966# CONFIG_SCHED_TRACER is not set 987# CONFIG_SCHED_TRACER is not set
967# CONFIG_CONTEXT_SWITCH_TRACER is not set 988# CONFIG_CONTEXT_SWITCH_TRACER is not set
968# CONFIG_BOOT_TRACER is not set 989# CONFIG_BOOT_TRACER is not set
990# CONFIG_TRACE_BRANCH_PROFILING is not set
969# CONFIG_STACK_TRACER is not set 991# CONFIG_STACK_TRACER is not set
970# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 992# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
971# CONFIG_SAMPLES is not set 993# CONFIG_SAMPLES is not set
994CONFIG_HAVE_ARCH_KGDB=y
995# CONFIG_KGDB is not set
972# CONFIG_SH_STANDARD_BIOS is not set 996# CONFIG_SH_STANDARD_BIOS is not set
973CONFIG_EARLY_SCIF_CONSOLE=y 997CONFIG_EARLY_SCIF_CONSOLE=y
974CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 998CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
@@ -978,7 +1002,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
978# CONFIG_DEBUG_STACK_USAGE is not set 1002# CONFIG_DEBUG_STACK_USAGE is not set
979# CONFIG_4KSTACKS is not set 1003# CONFIG_4KSTACKS is not set
980# CONFIG_IRQSTACKS is not set 1004# CONFIG_IRQSTACKS is not set
981# CONFIG_SH_KGDB is not set 1005CONFIG_DUMP_CODE=y
1006# CONFIG_SH_NO_BSS_INIT is not set
1007# CONFIG_MORE_COMPILE_OPTIONS is not set
982 1008
983# 1009#
984# Security options 1010# Security options
@@ -994,7 +1020,11 @@ CONFIG_CRYPTO=y
994# 1020#
995# CONFIG_CRYPTO_FIPS is not set 1021# CONFIG_CRYPTO_FIPS is not set
996CONFIG_CRYPTO_ALGAPI=y 1022CONFIG_CRYPTO_ALGAPI=y
1023CONFIG_CRYPTO_ALGAPI2=y
1024CONFIG_CRYPTO_HASH=y
1025CONFIG_CRYPTO_HASH2=y
997# CONFIG_CRYPTO_MANAGER is not set 1026# CONFIG_CRYPTO_MANAGER is not set
1027# CONFIG_CRYPTO_MANAGER2 is not set
998# CONFIG_CRYPTO_GF128MUL is not set 1028# CONFIG_CRYPTO_GF128MUL is not set
999# CONFIG_CRYPTO_NULL is not set 1029# CONFIG_CRYPTO_NULL is not set
1000# CONFIG_CRYPTO_CRYPTD is not set 1030# CONFIG_CRYPTO_CRYPTD is not set
@@ -1077,6 +1107,7 @@ CONFIG_CRYPTO_HW=y
1077# Library routines 1107# Library routines
1078# 1108#
1079CONFIG_BITREVERSE=y 1109CONFIG_BITREVERSE=y
1110CONFIG_GENERIC_FIND_LAST_BIT=y
1080# CONFIG_CRC_CCITT is not set 1111# CONFIG_CRC_CCITT is not set
1081# CONFIG_CRC16 is not set 1112# CONFIG_CRC16 is not set
1082# CONFIG_CRC_T10DIF is not set 1113# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/hp6xx_defconfig b/arch/sh/configs/hp6xx_defconfig
index 1032b235f080..847a25106635 100644
--- a/arch/sh/configs/hp6xx_defconfig
+++ b/arch/sh/configs/hp6xx_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:23:53 2008 4# Fri Jan 9 16:56:55 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,7 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19CONFIG_SYS_SUPPORTS_PM=y 19CONFIG_ARCH_SUSPEND_POSSIBLE=y
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
20CONFIG_SYS_SUPPORTS_APM_EMULATION=y 21CONFIG_SYS_SUPPORTS_APM_EMULATION=y
21CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -70,12 +71,10 @@ CONFIG_EVENTFD=y
70CONFIG_SHMEM=y 71CONFIG_SHMEM=y
71CONFIG_AIO=y 72CONFIG_AIO=y
72CONFIG_VM_EVENT_COUNTERS=y 73CONFIG_VM_EVENT_COUNTERS=y
73CONFIG_PCI_QUIRKS=y
74CONFIG_SLAB=y 74CONFIG_SLAB=y
75# CONFIG_SLUB is not set 75# CONFIG_SLUB is not set
76# CONFIG_SLOB is not set 76# CONFIG_SLOB is not set
77# CONFIG_PROFILING is not set 77# CONFIG_PROFILING is not set
78# CONFIG_MARKERS is not set
79CONFIG_HAVE_OPROFILE=y 78CONFIG_HAVE_OPROFILE=y
80CONFIG_HAVE_IOREMAP_PROT=y 79CONFIG_HAVE_IOREMAP_PROT=y
81CONFIG_HAVE_KPROBES=y 80CONFIG_HAVE_KPROBES=y
@@ -85,13 +84,11 @@ CONFIG_HAVE_CLK=y
85CONFIG_HAVE_GENERIC_DMA_COHERENT=y 84CONFIG_HAVE_GENERIC_DMA_COHERENT=y
86CONFIG_SLABINFO=y 85CONFIG_SLABINFO=y
87CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
88# CONFIG_TINY_SHMEM is not set
89CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
90# CONFIG_MODULES is not set 88# CONFIG_MODULES is not set
91CONFIG_BLOCK=y 89CONFIG_BLOCK=y
92# CONFIG_LBD is not set 90# CONFIG_LBD is not set
93# CONFIG_BLK_DEV_IO_TRACE is not set 91# CONFIG_BLK_DEV_IO_TRACE is not set
94# CONFIG_LSF is not set
95# CONFIG_BLK_DEV_BSG is not set 92# CONFIG_BLK_DEV_BSG is not set
96# CONFIG_BLK_DEV_INTEGRITY is not set 93# CONFIG_BLK_DEV_INTEGRITY is not set
97 94
@@ -108,6 +105,10 @@ CONFIG_DEFAULT_AS=y
108# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
109CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
110CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_TREE_RCU is not set
109# CONFIG_PREEMPT_RCU is not set
110# CONFIG_TREE_RCU_TRACE is not set
111# CONFIG_PREEMPT_RCU_TRACE is not set
111CONFIG_FREEZER=y 112CONFIG_FREEZER=y
112 113
113# 114#
@@ -115,6 +116,7 @@ CONFIG_FREEZER=y
115# 116#
116CONFIG_CPU_SH3=y 117CONFIG_CPU_SH3=y
117# CONFIG_CPU_SUBTYPE_SH7619 is not set 118# CONFIG_CPU_SUBTYPE_SH7619 is not set
119# CONFIG_CPU_SUBTYPE_SH7201 is not set
118# CONFIG_CPU_SUBTYPE_SH7203 is not set 120# CONFIG_CPU_SUBTYPE_SH7203 is not set
119# CONFIG_CPU_SUBTYPE_SH7206 is not set 121# CONFIG_CPU_SUBTYPE_SH7206 is not set
120# CONFIG_CPU_SUBTYPE_SH7263 is not set 122# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -178,7 +180,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
178CONFIG_SPARSEMEM_STATIC=y 180CONFIG_SPARSEMEM_STATIC=y
179CONFIG_PAGEFLAGS_EXTENDED=y 181CONFIG_PAGEFLAGS_EXTENDED=y
180CONFIG_SPLIT_PTLOCK_CPUS=4 182CONFIG_SPLIT_PTLOCK_CPUS=4
181# CONFIG_RESOURCES_64BIT is not set
182# CONFIG_PHYS_ADDR_T_64BIT is not set 183# CONFIG_PHYS_ADDR_T_64BIT is not set
183CONFIG_ZONE_DMA_FLAG=0 184CONFIG_ZONE_DMA_FLAG=0
184CONFIG_NR_QUICK=2 185CONFIG_NR_QUICK=2
@@ -236,7 +237,6 @@ CONFIG_NR_ONCHIP_DMA_CHANNELS=4
236# 237#
237CONFIG_HD6446X_SERIES=y 238CONFIG_HD6446X_SERIES=y
238CONFIG_HD64461=y 239CONFIG_HD64461=y
239# CONFIG_HD64465 is not set
240CONFIG_HD64461_IRQ=36 240CONFIG_HD64461_IRQ=36
241CONFIG_HD64461_IOBASE=0xb0000000 241CONFIG_HD64461_IOBASE=0xb0000000
242CONFIG_HD64461_ENABLER=y 242CONFIG_HD64461_ENABLER=y
@@ -275,7 +275,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
275# 275#
276# Bus options 276# Bus options
277# 277#
278CONFIG_ISA=y
279# CONFIG_ARCH_SUPPORTS_MSI is not set 278# CONFIG_ARCH_SUPPORTS_MSI is not set
280CONFIG_PCCARD=y 279CONFIG_PCCARD=y
281# CONFIG_PCMCIA_DEBUG is not set 280# CONFIG_PCMCIA_DEBUG is not set
@@ -286,9 +285,6 @@ CONFIG_PCMCIA_IOCTL=y
286# 285#
287# PC-card bridges 286# PC-card bridges
288# 287#
289# CONFIG_I82365 is not set
290# CONFIG_TCIC is not set
291CONFIG_PCMCIA_PROBE=y
292 288
293# 289#
294# Executable file formats 290# Executable file formats
@@ -301,13 +297,13 @@ CONFIG_BINFMT_ELF=y
301# 297#
302# Power management options (EXPERIMENTAL) 298# Power management options (EXPERIMENTAL)
303# 299#
304CONFIG_ARCH_SUSPEND_POSSIBLE=y
305CONFIG_PM=y 300CONFIG_PM=y
306# CONFIG_PM_DEBUG is not set 301# CONFIG_PM_DEBUG is not set
307CONFIG_PM_SLEEP=y 302CONFIG_PM_SLEEP=y
308CONFIG_SUSPEND=y 303CONFIG_SUSPEND=y
309CONFIG_SUSPEND_FREEZER=y 304CONFIG_SUSPEND_FREEZER=y
310CONFIG_APM_EMULATION=y 305CONFIG_APM_EMULATION=y
306# CONFIG_CPU_IDLE is not set
311# CONFIG_NET is not set 307# CONFIG_NET is not set
312 308
313# 309#
@@ -326,7 +322,6 @@ CONFIG_EXTRA_FIRMWARE=""
326# CONFIG_SYS_HYPERVISOR is not set 322# CONFIG_SYS_HYPERVISOR is not set
327# CONFIG_MTD is not set 323# CONFIG_MTD is not set
328# CONFIG_PARPORT is not set 324# CONFIG_PARPORT is not set
329# CONFIG_PNP is not set
330CONFIG_BLK_DEV=y 325CONFIG_BLK_DEV=y
331# CONFIG_BLK_DEV_COW_COMMON is not set 326# CONFIG_BLK_DEV_COW_COMMON is not set
332# CONFIG_BLK_DEV_LOOP is not set 327# CONFIG_BLK_DEV_LOOP is not set
@@ -336,6 +331,7 @@ CONFIG_BLK_DEV=y
336CONFIG_MISC_DEVICES=y 331CONFIG_MISC_DEVICES=y
337# CONFIG_EEPROM_93CX6 is not set 332# CONFIG_EEPROM_93CX6 is not set
338# CONFIG_ENCLOSURE_SERVICES is not set 333# CONFIG_ENCLOSURE_SERVICES is not set
334# CONFIG_C2PORT is not set
339CONFIG_HAVE_IDE=y 335CONFIG_HAVE_IDE=y
340# CONFIG_IDE is not set 336# CONFIG_IDE is not set
341 337
@@ -375,18 +371,7 @@ CONFIG_BLK_DEV_SD=y
375# CONFIG_SCSI_SAS_LIBSAS is not set 371# CONFIG_SCSI_SAS_LIBSAS is not set
376# CONFIG_SCSI_SRP_ATTRS is not set 372# CONFIG_SCSI_SRP_ATTRS is not set
377CONFIG_SCSI_LOWLEVEL=y 373CONFIG_SCSI_LOWLEVEL=y
378# CONFIG_SCSI_AHA152X is not set 374# CONFIG_LIBFC is not set
379# CONFIG_SCSI_AIC7XXX_OLD is not set
380# CONFIG_SCSI_IN2000 is not set
381# CONFIG_SCSI_DTC3280 is not set
382# CONFIG_SCSI_FUTURE_DOMAIN is not set
383# CONFIG_SCSI_GENERIC_NCR5380 is not set
384# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
385# CONFIG_SCSI_NCR53C406A is not set
386# CONFIG_SCSI_PAS16 is not set
387# CONFIG_SCSI_QLOGIC_FAS is not set
388# CONFIG_SCSI_SYM53C416 is not set
389# CONFIG_SCSI_T128 is not set
390# CONFIG_SCSI_DEBUG is not set 375# CONFIG_SCSI_DEBUG is not set
391# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 376# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
392# CONFIG_SCSI_DH is not set 377# CONFIG_SCSI_DH is not set
@@ -395,10 +380,7 @@ CONFIG_ATA=y
395CONFIG_SATA_PMP=y 380CONFIG_SATA_PMP=y
396CONFIG_ATA_SFF=y 381CONFIG_ATA_SFF=y
397# CONFIG_SATA_MV is not set 382# CONFIG_SATA_MV is not set
398# CONFIG_PATA_LEGACY is not set
399# CONFIG_PATA_PCMCIA is not set 383# CONFIG_PATA_PCMCIA is not set
400# CONFIG_PATA_QDI is not set
401# CONFIG_PATA_WINBOND_VLB is not set
402CONFIG_PATA_PLATFORM=y 384CONFIG_PATA_PLATFORM=y
403# CONFIG_MD is not set 385# CONFIG_MD is not set
404# CONFIG_PHONE is not set 386# CONFIG_PHONE is not set
@@ -438,11 +420,11 @@ CONFIG_INPUT_TOUCHSCREEN=y
438# CONFIG_TOUCHSCREEN_FUJITSU is not set 420# CONFIG_TOUCHSCREEN_FUJITSU is not set
439# CONFIG_TOUCHSCREEN_GUNZE is not set 421# CONFIG_TOUCHSCREEN_GUNZE is not set
440# CONFIG_TOUCHSCREEN_ELO is not set 422# CONFIG_TOUCHSCREEN_ELO is not set
423# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
441# CONFIG_TOUCHSCREEN_MTOUCH is not set 424# CONFIG_TOUCHSCREEN_MTOUCH is not set
442# CONFIG_TOUCHSCREEN_INEXIO is not set 425# CONFIG_TOUCHSCREEN_INEXIO is not set
443# CONFIG_TOUCHSCREEN_MK712 is not set 426# CONFIG_TOUCHSCREEN_MK712 is not set
444CONFIG_TOUCHSCREEN_HP600=y 427CONFIG_TOUCHSCREEN_HP600=y
445# CONFIG_TOUCHSCREEN_HTCPEN is not set
446# CONFIG_TOUCHSCREEN_PENMOUNT is not set 428# CONFIG_TOUCHSCREEN_PENMOUNT is not set
447# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 429# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
448# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 430# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
@@ -484,11 +466,11 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
484CONFIG_SERIAL_CORE=y 466CONFIG_SERIAL_CORE=y
485CONFIG_SERIAL_CORE_CONSOLE=y 467CONFIG_SERIAL_CORE_CONSOLE=y
486CONFIG_UNIX98_PTYS=y 468CONFIG_UNIX98_PTYS=y
469# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
487CONFIG_LEGACY_PTYS=y 470CONFIG_LEGACY_PTYS=y
488CONFIG_LEGACY_PTY_COUNT=64 471CONFIG_LEGACY_PTY_COUNT=64
489# CONFIG_IPMI_HANDLER is not set 472# CONFIG_IPMI_HANDLER is not set
490CONFIG_HW_RANDOM=y 473CONFIG_HW_RANDOM=y
491# CONFIG_DTLK is not set
492# CONFIG_R3964 is not set 474# CONFIG_R3964 is not set
493 475
494# 476#
@@ -499,7 +481,6 @@ CONFIG_HW_RANDOM=y
499# CONFIG_CARDMAN_4040 is not set 481# CONFIG_CARDMAN_4040 is not set
500# CONFIG_RAW_DRIVER is not set 482# CONFIG_RAW_DRIVER is not set
501# CONFIG_TCG_TPM is not set 483# CONFIG_TCG_TPM is not set
502CONFIG_DEVPORT=y
503# CONFIG_I2C is not set 484# CONFIG_I2C is not set
504# CONFIG_SPI is not set 485# CONFIG_SPI is not set
505# CONFIG_W1 is not set 486# CONFIG_W1 is not set
@@ -508,11 +489,11 @@ CONFIG_DEVPORT=y
508# CONFIG_THERMAL is not set 489# CONFIG_THERMAL is not set
509# CONFIG_THERMAL_HWMON is not set 490# CONFIG_THERMAL_HWMON is not set
510# CONFIG_WATCHDOG is not set 491# CONFIG_WATCHDOG is not set
492CONFIG_SSB_POSSIBLE=y
511 493
512# 494#
513# Sonics Silicon Backplane 495# Sonics Silicon Backplane
514# 496#
515CONFIG_SSB_POSSIBLE=y
516# CONFIG_SSB is not set 497# CONFIG_SSB is not set
517 498
518# 499#
@@ -522,7 +503,7 @@ CONFIG_SSB_POSSIBLE=y
522# CONFIG_MFD_SM501 is not set 503# CONFIG_MFD_SM501 is not set
523# CONFIG_HTC_PASIC3 is not set 504# CONFIG_HTC_PASIC3 is not set
524# CONFIG_MFD_TMIO is not set 505# CONFIG_MFD_TMIO is not set
525# CONFIG_MFD_WM8400 is not set 506# CONFIG_REGULATOR is not set
526 507
527# 508#
528# Multimedia devices 509# Multimedia devices
@@ -552,11 +533,12 @@ CONFIG_FB_CFB_FILLRECT=y
552CONFIG_FB_CFB_COPYAREA=y 533CONFIG_FB_CFB_COPYAREA=y
553CONFIG_FB_CFB_IMAGEBLIT=y 534CONFIG_FB_CFB_IMAGEBLIT=y
554# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 535# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
555# CONFIG_FB_SYS_FILLRECT is not set 536CONFIG_FB_SYS_FILLRECT=y
556# CONFIG_FB_SYS_COPYAREA is not set 537CONFIG_FB_SYS_COPYAREA=y
557# CONFIG_FB_SYS_IMAGEBLIT is not set 538CONFIG_FB_SYS_IMAGEBLIT=y
558# CONFIG_FB_FOREIGN_ENDIAN is not set 539# CONFIG_FB_FOREIGN_ENDIAN is not set
559# CONFIG_FB_SYS_FOPS is not set 540CONFIG_FB_SYS_FOPS=y
541CONFIG_FB_DEFERRED_IO=y
560# CONFIG_FB_SVGALIB is not set 542# CONFIG_FB_SVGALIB is not set
561# CONFIG_FB_MACMODES is not set 543# CONFIG_FB_MACMODES is not set
562# CONFIG_FB_BACKLIGHT is not set 544# CONFIG_FB_BACKLIGHT is not set
@@ -571,6 +553,7 @@ CONFIG_FB_HIT=y
571CONFIG_FB_SH_MOBILE_LCDC=y 553CONFIG_FB_SH_MOBILE_LCDC=y
572# CONFIG_FB_VIRTUAL is not set 554# CONFIG_FB_VIRTUAL is not set
573# CONFIG_FB_METRONOME is not set 555# CONFIG_FB_METRONOME is not set
556# CONFIG_FB_MB862XX is not set
574CONFIG_BACKLIGHT_LCD_SUPPORT=y 557CONFIG_BACKLIGHT_LCD_SUPPORT=y
575CONFIG_LCD_CLASS_DEVICE=y 558CONFIG_LCD_CLASS_DEVICE=y
576# CONFIG_LCD_ILI9320 is not set 559# CONFIG_LCD_ILI9320 is not set
@@ -587,7 +570,6 @@ CONFIG_BACKLIGHT_HP680=y
587# 570#
588# Console display driver support 571# Console display driver support
589# 572#
590# CONFIG_MDA_CONSOLE is not set
591CONFIG_DUMMY_CONSOLE=y 573CONFIG_DUMMY_CONSOLE=y
592CONFIG_FRAMEBUFFER_CONSOLE=y 574CONFIG_FRAMEBUFFER_CONSOLE=y
593# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set 575# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
@@ -701,10 +683,7 @@ CONFIG_SYSFS=y
701# CONFIG_HUGETLBFS is not set 683# CONFIG_HUGETLBFS is not set
702# CONFIG_HUGETLB_PAGE is not set 684# CONFIG_HUGETLB_PAGE is not set
703# CONFIG_CONFIGFS_FS is not set 685# CONFIG_CONFIGFS_FS is not set
704 686CONFIG_MISC_FILESYSTEMS=y
705#
706# Miscellaneous filesystems
707#
708# CONFIG_ADFS_FS is not set 687# CONFIG_ADFS_FS is not set
709# CONFIG_AFFS_FS is not set 688# CONFIG_AFFS_FS is not set
710# CONFIG_HFS_FS is not set 689# CONFIG_HFS_FS is not set
@@ -785,13 +764,19 @@ CONFIG_FRAME_WARN=1024
785# CONFIG_DEBUG_MEMORY_INIT is not set 764# CONFIG_DEBUG_MEMORY_INIT is not set
786# CONFIG_RCU_CPU_STALL_DETECTOR is not set 765# CONFIG_RCU_CPU_STALL_DETECTOR is not set
787# CONFIG_LATENCYTOP is not set 766# CONFIG_LATENCYTOP is not set
788CONFIG_NOP_TRACER=y 767CONFIG_HAVE_FUNCTION_TRACER=y
789CONFIG_HAVE_FTRACE=y 768CONFIG_HAVE_DYNAMIC_FTRACE=y
769CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
770
771#
772# Tracers
773#
790# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 774# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
791# CONFIG_SAMPLES is not set 775# CONFIG_SAMPLES is not set
776CONFIG_HAVE_ARCH_KGDB=y
792# CONFIG_SH_STANDARD_BIOS is not set 777# CONFIG_SH_STANDARD_BIOS is not set
793# CONFIG_EARLY_SCIF_CONSOLE is not set 778# CONFIG_EARLY_SCIF_CONSOLE is not set
794# CONFIG_SH_KGDB is not set 779# CONFIG_MORE_COMPILE_OPTIONS is not set
795 780
796# 781#
797# Security options 782# Security options
@@ -807,11 +792,15 @@ CONFIG_CRYPTO=y
807# 792#
808# CONFIG_CRYPTO_FIPS is not set 793# CONFIG_CRYPTO_FIPS is not set
809CONFIG_CRYPTO_ALGAPI=y 794CONFIG_CRYPTO_ALGAPI=y
810CONFIG_CRYPTO_AEAD=y 795CONFIG_CRYPTO_ALGAPI2=y
796CONFIG_CRYPTO_AEAD2=y
811CONFIG_CRYPTO_BLKCIPHER=y 797CONFIG_CRYPTO_BLKCIPHER=y
798CONFIG_CRYPTO_BLKCIPHER2=y
812CONFIG_CRYPTO_HASH=y 799CONFIG_CRYPTO_HASH=y
813CONFIG_CRYPTO_RNG=y 800CONFIG_CRYPTO_HASH2=y
801CONFIG_CRYPTO_RNG2=y
814CONFIG_CRYPTO_MANAGER=y 802CONFIG_CRYPTO_MANAGER=y
803CONFIG_CRYPTO_MANAGER2=y
815# CONFIG_CRYPTO_GF128MUL is not set 804# CONFIG_CRYPTO_GF128MUL is not set
816# CONFIG_CRYPTO_NULL is not set 805# CONFIG_CRYPTO_NULL is not set
817# CONFIG_CRYPTO_CRYPTD is not set 806# CONFIG_CRYPTO_CRYPTD is not set
@@ -893,6 +882,7 @@ CONFIG_CRYPTO_MD5=y
893# Library routines 882# Library routines
894# 883#
895CONFIG_BITREVERSE=y 884CONFIG_BITREVERSE=y
885CONFIG_GENERIC_FIND_LAST_BIT=y
896# CONFIG_CRC_CCITT is not set 886# CONFIG_CRC_CCITT is not set
897CONFIG_CRC16=y 887CONFIG_CRC16=y
898CONFIG_CRC_T10DIF=y 888CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/landisk_defconfig b/arch/sh/configs/landisk_defconfig
index b82dfb4da3aa..d3bbbb037716 100644
--- a/arch/sh/configs/landisk_defconfig
+++ b/arch/sh/configs/landisk_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:25:51 2008 4# Fri Jan 9 16:58:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,7 +88,6 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
@@ -95,11 +95,9 @@ CONFIG_MODULE_UNLOAD=y
95CONFIG_MODULE_FORCE_UNLOAD=y 95CONFIG_MODULE_FORCE_UNLOAD=y
96# CONFIG_MODVERSIONS is not set 96# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 97# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 98CONFIG_BLOCK=y
100# CONFIG_LBD is not set 99# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 101# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 102# CONFIG_BLK_DEV_INTEGRITY is not set
105 103
@@ -116,6 +114,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 114# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 115CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 116CONFIG_CLASSIC_RCU=y
117# CONFIG_TREE_RCU is not set
118# CONFIG_PREEMPT_RCU is not set
119# CONFIG_TREE_RCU_TRACE is not set
120# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 121# CONFIG_FREEZER is not set
120 122
121# 123#
@@ -123,6 +125,7 @@ CONFIG_CLASSIC_RCU=y
123# 125#
124CONFIG_CPU_SH4=y 126CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 127# CONFIG_CPU_SUBTYPE_SH7619 is not set
128# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 129# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 130# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 131# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -285,6 +287,7 @@ CONFIG_PCI=y
285CONFIG_SH_PCIDMA_NONCOHERENT=y 287CONFIG_SH_PCIDMA_NONCOHERENT=y
286CONFIG_PCI_AUTO=y 288CONFIG_PCI_AUTO=y
287CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 289CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
290# CONFIG_PCIEPORTBUS is not set
288# CONFIG_ARCH_SUPPORTS_MSI is not set 291# CONFIG_ARCH_SUPPORTS_MSI is not set
289CONFIG_PCI_LEGACY=y 292CONFIG_PCI_LEGACY=y
290CONFIG_PCCARD=y 293CONFIG_PCCARD=y
@@ -315,11 +318,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 318# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 319# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 320# CONFIG_BINFMT_MISC is not set
321
322#
323# Power management options (EXPERIMENTAL)
324#
325# CONFIG_PM is not set
326# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 327CONFIG_NET=y
319 328
320# 329#
321# Networking options 330# Networking options
322# 331#
332CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 333CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 334# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 335CONFIG_UNIX=y
@@ -401,6 +411,7 @@ CONFIG_ATALK=m
401# CONFIG_ECONET is not set 411# CONFIG_ECONET is not set
402# CONFIG_WAN_ROUTER is not set 412# CONFIG_WAN_ROUTER is not set
403# CONFIG_NET_SCHED is not set 413# CONFIG_NET_SCHED is not set
414# CONFIG_DCB is not set
404 415
405# 416#
406# Network testing 417# Network testing
@@ -416,8 +427,8 @@ CONFIG_WIRELESS=y
416# CONFIG_CFG80211 is not set 427# CONFIG_CFG80211 is not set
417# CONFIG_WIRELESS_OLD_REGULATORY is not set 428# CONFIG_WIRELESS_OLD_REGULATORY is not set
418# CONFIG_WIRELESS_EXT is not set 429# CONFIG_WIRELESS_EXT is not set
430# CONFIG_LIB80211 is not set
419# CONFIG_MAC80211 is not set 431# CONFIG_MAC80211 is not set
420# CONFIG_IEEE80211 is not set
421# CONFIG_RFKILL is not set 432# CONFIG_RFKILL is not set
422# CONFIG_NET_9P is not set 433# CONFIG_NET_9P is not set
423 434
@@ -462,6 +473,7 @@ CONFIG_MISC_DEVICES=y
462# CONFIG_TIFM_CORE is not set 473# CONFIG_TIFM_CORE is not set
463# CONFIG_ENCLOSURE_SERVICES is not set 474# CONFIG_ENCLOSURE_SERVICES is not set
464# CONFIG_HP_ILO is not set 475# CONFIG_HP_ILO is not set
476# CONFIG_C2PORT is not set
465CONFIG_HAVE_IDE=y 477CONFIG_HAVE_IDE=y
466CONFIG_IDE=y 478CONFIG_IDE=y
467 479
@@ -478,7 +490,6 @@ CONFIG_IDE_GD_ATA=y
478CONFIG_BLK_DEV_IDECD=y 490CONFIG_BLK_DEV_IDECD=y
479CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 491CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
480# CONFIG_BLK_DEV_IDETAPE is not set 492# CONFIG_BLK_DEV_IDETAPE is not set
481CONFIG_BLK_DEV_IDESCSI=y
482# CONFIG_IDE_TASK_IOCTL is not set 493# CONFIG_IDE_TASK_IOCTL is not set
483CONFIG_IDE_PROC_FS=y 494CONFIG_IDE_PROC_FS=y
484 495
@@ -508,6 +519,7 @@ CONFIG_BLK_DEV_AEC62XX=y
508# CONFIG_BLK_DEV_JMICRON is not set 519# CONFIG_BLK_DEV_JMICRON is not set
509# CONFIG_BLK_DEV_SC1200 is not set 520# CONFIG_BLK_DEV_SC1200 is not set
510# CONFIG_BLK_DEV_PIIX is not set 521# CONFIG_BLK_DEV_PIIX is not set
522# CONFIG_BLK_DEV_IT8172 is not set
511# CONFIG_BLK_DEV_IT8213 is not set 523# CONFIG_BLK_DEV_IT8213 is not set
512# CONFIG_BLK_DEV_IT821X is not set 524# CONFIG_BLK_DEV_IT821X is not set
513# CONFIG_BLK_DEV_NS87415 is not set 525# CONFIG_BLK_DEV_NS87415 is not set
@@ -560,6 +572,7 @@ CONFIG_SCSI_WAIT_SCAN=m
560# CONFIG_SCSI_SRP_ATTRS is not set 572# CONFIG_SCSI_SRP_ATTRS is not set
561CONFIG_SCSI_LOWLEVEL=y 573CONFIG_SCSI_LOWLEVEL=y
562# CONFIG_ISCSI_TCP is not set 574# CONFIG_ISCSI_TCP is not set
575# CONFIG_SCSI_CXGB3_ISCSI is not set
563# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 576# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
564# CONFIG_SCSI_3W_9XXX is not set 577# CONFIG_SCSI_3W_9XXX is not set
565# CONFIG_SCSI_ACARD is not set 578# CONFIG_SCSI_ACARD is not set
@@ -573,6 +586,8 @@ CONFIG_SCSI_LOWLEVEL=y
573# CONFIG_MEGARAID_LEGACY is not set 586# CONFIG_MEGARAID_LEGACY is not set
574# CONFIG_MEGARAID_SAS is not set 587# CONFIG_MEGARAID_SAS is not set
575# CONFIG_SCSI_HPTIOP is not set 588# CONFIG_SCSI_HPTIOP is not set
589# CONFIG_LIBFC is not set
590# CONFIG_FCOE is not set
576# CONFIG_SCSI_DMX3191D is not set 591# CONFIG_SCSI_DMX3191D is not set
577# CONFIG_SCSI_FUTURE_DOMAIN is not set 592# CONFIG_SCSI_FUTURE_DOMAIN is not set
578# CONFIG_SCSI_IPS is not set 593# CONFIG_SCSI_IPS is not set
@@ -634,6 +649,7 @@ CONFIG_MII=y
634# CONFIG_NET_VENDOR_3COM is not set 649# CONFIG_NET_VENDOR_3COM is not set
635# CONFIG_SMC91X is not set 650# CONFIG_SMC91X is not set
636# CONFIG_SMC911X is not set 651# CONFIG_SMC911X is not set
652# CONFIG_SMSC911X is not set
637# CONFIG_NET_TULIP is not set 653# CONFIG_NET_TULIP is not set
638# CONFIG_HP100 is not set 654# CONFIG_HP100 is not set
639# CONFIG_IBM_NEW_EMAC_ZMII is not set 655# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -649,7 +665,6 @@ CONFIG_NET_PCI=y
649# CONFIG_ADAPTEC_STARFIRE is not set 665# CONFIG_ADAPTEC_STARFIRE is not set
650# CONFIG_B44 is not set 666# CONFIG_B44 is not set
651# CONFIG_FORCEDETH is not set 667# CONFIG_FORCEDETH is not set
652# CONFIG_EEPRO100 is not set
653# CONFIG_E100 is not set 668# CONFIG_E100 is not set
654# CONFIG_FEALNX is not set 669# CONFIG_FEALNX is not set
655# CONFIG_NATSEMI is not set 670# CONFIG_NATSEMI is not set
@@ -659,6 +674,7 @@ CONFIG_8139CP=y
659# CONFIG_R6040 is not set 674# CONFIG_R6040 is not set
660# CONFIG_SIS900 is not set 675# CONFIG_SIS900 is not set
661# CONFIG_EPIC100 is not set 676# CONFIG_EPIC100 is not set
677# CONFIG_SMSC9420 is not set
662# CONFIG_SUNDANCE is not set 678# CONFIG_SUNDANCE is not set
663# CONFIG_TLAN is not set 679# CONFIG_TLAN is not set
664# CONFIG_VIA_RHINE is not set 680# CONFIG_VIA_RHINE is not set
@@ -687,6 +703,7 @@ CONFIG_NETDEV_1000=y
687# CONFIG_JME is not set 703# CONFIG_JME is not set
688CONFIG_NETDEV_10000=y 704CONFIG_NETDEV_10000=y
689# CONFIG_CHELSIO_T1 is not set 705# CONFIG_CHELSIO_T1 is not set
706CONFIG_CHELSIO_T3_DEPENDS=y
690# CONFIG_CHELSIO_T3 is not set 707# CONFIG_CHELSIO_T3 is not set
691# CONFIG_ENIC is not set 708# CONFIG_ENIC is not set
692# CONFIG_IXGBE is not set 709# CONFIG_IXGBE is not set
@@ -695,6 +712,7 @@ CONFIG_NETDEV_10000=y
695# CONFIG_MYRI10GE is not set 712# CONFIG_MYRI10GE is not set
696# CONFIG_NETXEN_NIC is not set 713# CONFIG_NETXEN_NIC is not set
697# CONFIG_NIU is not set 714# CONFIG_NIU is not set
715# CONFIG_MLX4_EN is not set
698# CONFIG_MLX4_CORE is not set 716# CONFIG_MLX4_CORE is not set
699# CONFIG_TEHUTI is not set 717# CONFIG_TEHUTI is not set
700# CONFIG_BNX2X is not set 718# CONFIG_BNX2X is not set
@@ -791,6 +809,7 @@ CONFIG_SERIAL_CORE=y
791CONFIG_SERIAL_CORE_CONSOLE=y 809CONFIG_SERIAL_CORE_CONSOLE=y
792# CONFIG_SERIAL_JSM is not set 810# CONFIG_SERIAL_JSM is not set
793CONFIG_UNIX98_PTYS=y 811CONFIG_UNIX98_PTYS=y
812# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
794CONFIG_LEGACY_PTYS=y 813CONFIG_LEGACY_PTYS=y
795CONFIG_LEGACY_PTY_COUNT=256 814CONFIG_LEGACY_PTY_COUNT=256
796# CONFIG_IPMI_HANDLER is not set 815# CONFIG_IPMI_HANDLER is not set
@@ -832,11 +851,11 @@ CONFIG_HWMON=y
832# CONFIG_THERMAL is not set 851# CONFIG_THERMAL is not set
833# CONFIG_THERMAL_HWMON is not set 852# CONFIG_THERMAL_HWMON is not set
834# CONFIG_WATCHDOG is not set 853# CONFIG_WATCHDOG is not set
854CONFIG_SSB_POSSIBLE=y
835 855
836# 856#
837# Sonics Silicon Backplane 857# Sonics Silicon Backplane
838# 858#
839CONFIG_SSB_POSSIBLE=y
840# CONFIG_SSB is not set 859# CONFIG_SSB is not set
841 860
842# 861#
@@ -846,7 +865,7 @@ CONFIG_SSB_POSSIBLE=y
846# CONFIG_MFD_SM501 is not set 865# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 866# CONFIG_HTC_PASIC3 is not set
848# CONFIG_MFD_TMIO is not set 867# CONFIG_MFD_TMIO is not set
849# CONFIG_MFD_WM8400 is not set 868# CONFIG_REGULATOR is not set
850 869
851# 870#
852# Multimedia devices 871# Multimedia devices
@@ -952,11 +971,9 @@ CONFIG_HID_COMPAT=y
952CONFIG_HID_A4TECH=m 971CONFIG_HID_A4TECH=m
953CONFIG_HID_APPLE=m 972CONFIG_HID_APPLE=m
954CONFIG_HID_BELKIN=m 973CONFIG_HID_BELKIN=m
955CONFIG_HID_BRIGHT=m
956CONFIG_HID_CHERRY=m 974CONFIG_HID_CHERRY=m
957CONFIG_HID_CHICONY=m 975CONFIG_HID_CHICONY=m
958CONFIG_HID_CYPRESS=m 976CONFIG_HID_CYPRESS=m
959CONFIG_HID_DELL=m
960CONFIG_HID_EZKEY=m 977CONFIG_HID_EZKEY=m
961CONFIG_HID_GYRATION=m 978CONFIG_HID_GYRATION=m
962CONFIG_HID_LOGITECH=m 979CONFIG_HID_LOGITECH=m
@@ -964,12 +981,15 @@ CONFIG_HID_LOGITECH=m
964# CONFIG_LOGIRUMBLEPAD2_FF is not set 981# CONFIG_LOGIRUMBLEPAD2_FF is not set
965CONFIG_HID_MICROSOFT=m 982CONFIG_HID_MICROSOFT=m
966CONFIG_HID_MONTEREY=m 983CONFIG_HID_MONTEREY=m
984# CONFIG_HID_NTRIG is not set
967CONFIG_HID_PANTHERLORD=m 985CONFIG_HID_PANTHERLORD=m
968# CONFIG_PANTHERLORD_FF is not set 986# CONFIG_PANTHERLORD_FF is not set
969CONFIG_HID_PETALYNX=m 987CONFIG_HID_PETALYNX=m
970CONFIG_HID_SAMSUNG=m 988CONFIG_HID_SAMSUNG=m
971CONFIG_HID_SONY=m 989CONFIG_HID_SONY=m
972CONFIG_HID_SUNPLUS=m 990CONFIG_HID_SUNPLUS=m
991# CONFIG_GREENASIA_FF is not set
992# CONFIG_HID_TOPSEED is not set
973CONFIG_THRUSTMASTER_FF=m 993CONFIG_THRUSTMASTER_FF=m
974CONFIG_ZEROPLUS_FF=m 994CONFIG_ZEROPLUS_FF=m
975CONFIG_USB_SUPPORT=y 995CONFIG_USB_SUPPORT=y
@@ -990,6 +1010,8 @@ CONFIG_USB_DEVICE_CLASS=y
990# CONFIG_USB_OTG_WHITELIST is not set 1010# CONFIG_USB_OTG_WHITELIST is not set
991# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1011# CONFIG_USB_OTG_BLACKLIST_HUB is not set
992CONFIG_USB_MON=y 1012CONFIG_USB_MON=y
1013# CONFIG_USB_WUSB is not set
1014# CONFIG_USB_WUSB_CBAF is not set
993 1015
994# 1016#
995# USB Host Controller Drivers 1017# USB Host Controller Drivers
@@ -1007,6 +1029,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1007# CONFIG_USB_UHCI_HCD is not set 1029# CONFIG_USB_UHCI_HCD is not set
1008# CONFIG_USB_SL811_HCD is not set 1030# CONFIG_USB_SL811_HCD is not set
1009# CONFIG_USB_R8A66597_HCD is not set 1031# CONFIG_USB_R8A66597_HCD is not set
1032# CONFIG_USB_WHCI_HCD is not set
1033# CONFIG_USB_HWA_HCD is not set
1010 1034
1011# 1035#
1012# USB Device Class drivers 1036# USB Device Class drivers
@@ -1017,11 +1041,11 @@ CONFIG_USB_PRINTER=m
1017# CONFIG_USB_TMC is not set 1041# CONFIG_USB_TMC is not set
1018 1042
1019# 1043#
1020# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1044# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1021# 1045#
1022 1046
1023# 1047#
1024# may also be needed; see USB_STORAGE Help for more information 1048# see USB_STORAGE Help for more information
1025# 1049#
1026CONFIG_USB_STORAGE=m 1050CONFIG_USB_STORAGE=m
1027# CONFIG_USB_STORAGE_DEBUG is not set 1051# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1119,6 +1143,7 @@ CONFIG_USB_SISUSBVGA_CON=y
1119# CONFIG_USB_ISIGHTFW is not set 1143# CONFIG_USB_ISIGHTFW is not set
1120# CONFIG_USB_VST is not set 1144# CONFIG_USB_VST is not set
1121# CONFIG_USB_GADGET is not set 1145# CONFIG_USB_GADGET is not set
1146# CONFIG_UWB is not set
1122# CONFIG_MMC is not set 1147# CONFIG_MMC is not set
1123# CONFIG_MEMSTICK is not set 1148# CONFIG_MEMSTICK is not set
1124# CONFIG_NEW_LEDS is not set 1149# CONFIG_NEW_LEDS is not set
@@ -1192,10 +1217,7 @@ CONFIG_TMPFS=y
1192# CONFIG_HUGETLBFS is not set 1217# CONFIG_HUGETLBFS is not set
1193# CONFIG_HUGETLB_PAGE is not set 1218# CONFIG_HUGETLB_PAGE is not set
1194# CONFIG_CONFIGFS_FS is not set 1219# CONFIG_CONFIGFS_FS is not set
1195 1220CONFIG_MISC_FILESYSTEMS=y
1196#
1197# Miscellaneous filesystems
1198#
1199# CONFIG_ADFS_FS is not set 1221# CONFIG_ADFS_FS is not set
1200# CONFIG_AFFS_FS is not set 1222# CONFIG_AFFS_FS is not set
1201# CONFIG_HFS_FS is not set 1223# CONFIG_HFS_FS is not set
@@ -1302,14 +1324,20 @@ CONFIG_FRAME_WARN=1024
1302# CONFIG_DEBUG_MEMORY_INIT is not set 1324# CONFIG_DEBUG_MEMORY_INIT is not set
1303# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1325# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1304# CONFIG_LATENCYTOP is not set 1326# CONFIG_LATENCYTOP is not set
1305CONFIG_NOP_TRACER=y 1327CONFIG_HAVE_FUNCTION_TRACER=y
1306CONFIG_HAVE_FTRACE=y 1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1330
1331#
1332# Tracers
1333#
1307# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1334# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1308# CONFIG_SAMPLES is not set 1335# CONFIG_SAMPLES is not set
1336CONFIG_HAVE_ARCH_KGDB=y
1309CONFIG_SH_STANDARD_BIOS=y 1337CONFIG_SH_STANDARD_BIOS=y
1310# CONFIG_EARLY_SCIF_CONSOLE is not set 1338# CONFIG_EARLY_SCIF_CONSOLE is not set
1311# CONFIG_EARLY_PRINTK is not set 1339# CONFIG_EARLY_PRINTK is not set
1312# CONFIG_SH_KGDB is not set 1340# CONFIG_MORE_COMPILE_OPTIONS is not set
1313 1341
1314# 1342#
1315# Security options 1343# Security options
@@ -1325,6 +1353,7 @@ CONFIG_CRYPTO=y
1325# 1353#
1326# CONFIG_CRYPTO_FIPS is not set 1354# CONFIG_CRYPTO_FIPS is not set
1327# CONFIG_CRYPTO_MANAGER is not set 1355# CONFIG_CRYPTO_MANAGER is not set
1356# CONFIG_CRYPTO_MANAGER2 is not set
1328# CONFIG_CRYPTO_GF128MUL is not set 1357# CONFIG_CRYPTO_GF128MUL is not set
1329# CONFIG_CRYPTO_NULL is not set 1358# CONFIG_CRYPTO_NULL is not set
1330# CONFIG_CRYPTO_CRYPTD is not set 1359# CONFIG_CRYPTO_CRYPTD is not set
@@ -1408,6 +1437,7 @@ CONFIG_CRYPTO_HW=y
1408# Library routines 1437# Library routines
1409# 1438#
1410CONFIG_BITREVERSE=y 1439CONFIG_BITREVERSE=y
1440CONFIG_GENERIC_FIND_LAST_BIT=y
1411# CONFIG_CRC_CCITT is not set 1441# CONFIG_CRC_CCITT is not set
1412# CONFIG_CRC16 is not set 1442# CONFIG_CRC16 is not set
1413CONFIG_CRC_T10DIF=y 1443CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig
index c3ecedfc1bc7..d5c5a1dbaa62 100644
--- a/arch/sh/configs/lboxre2_defconfig
+++ b/arch/sh/configs/lboxre2_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:29:42 2008 4# Fri Jan 9 17:02:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,7 +88,6 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
@@ -95,11 +95,9 @@ CONFIG_MODULE_UNLOAD=y
95CONFIG_MODULE_FORCE_UNLOAD=y 95CONFIG_MODULE_FORCE_UNLOAD=y
96# CONFIG_MODVERSIONS is not set 96# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 97# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 98CONFIG_BLOCK=y
100# CONFIG_LBD is not set 99# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 101# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 102# CONFIG_BLK_DEV_INTEGRITY is not set
105 103
@@ -116,6 +114,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 114# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 115CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 116CONFIG_CLASSIC_RCU=y
117# CONFIG_TREE_RCU is not set
118# CONFIG_PREEMPT_RCU is not set
119# CONFIG_TREE_RCU_TRACE is not set
120# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 121# CONFIG_FREEZER is not set
120 122
121# 123#
@@ -123,6 +125,7 @@ CONFIG_CLASSIC_RCU=y
123# 125#
124CONFIG_CPU_SH4=y 126CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 127# CONFIG_CPU_SUBTYPE_SH7619 is not set
128# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 129# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 130# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 131# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -286,6 +288,7 @@ CONFIG_PCI=y
286CONFIG_SH_PCIDMA_NONCOHERENT=y 288CONFIG_SH_PCIDMA_NONCOHERENT=y
287CONFIG_PCI_AUTO=y 289CONFIG_PCI_AUTO=y
288CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 290CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
291# CONFIG_PCIEPORTBUS is not set
289# CONFIG_ARCH_SUPPORTS_MSI is not set 292# CONFIG_ARCH_SUPPORTS_MSI is not set
290CONFIG_PCI_LEGACY=y 293CONFIG_PCI_LEGACY=y
291CONFIG_PCCARD=y 294CONFIG_PCCARD=y
@@ -315,11 +318,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 318# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 319# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 320# CONFIG_BINFMT_MISC is not set
321
322#
323# Power management options (EXPERIMENTAL)
324#
325# CONFIG_PM is not set
326# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 327CONFIG_NET=y
319 328
320# 329#
321# Networking options 330# Networking options
322# 331#
332CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 333CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 334# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 335CONFIG_UNIX=y
@@ -399,6 +409,7 @@ CONFIG_NETFILTER_ADVANCED=y
399# CONFIG_ECONET is not set 409# CONFIG_ECONET is not set
400# CONFIG_WAN_ROUTER is not set 410# CONFIG_WAN_ROUTER is not set
401# CONFIG_NET_SCHED is not set 411# CONFIG_NET_SCHED is not set
412# CONFIG_DCB is not set
402 413
403# 414#
404# Network testing 415# Network testing
@@ -414,8 +425,8 @@ CONFIG_WIRELESS=y
414# CONFIG_CFG80211 is not set 425# CONFIG_CFG80211 is not set
415# CONFIG_WIRELESS_OLD_REGULATORY is not set 426# CONFIG_WIRELESS_OLD_REGULATORY is not set
416# CONFIG_WIRELESS_EXT is not set 427# CONFIG_WIRELESS_EXT is not set
428# CONFIG_LIB80211 is not set
417# CONFIG_MAC80211 is not set 429# CONFIG_MAC80211 is not set
418# CONFIG_IEEE80211 is not set
419# CONFIG_RFKILL is not set 430# CONFIG_RFKILL is not set
420# CONFIG_NET_9P is not set 431# CONFIG_NET_9P is not set
421 432
@@ -459,6 +470,7 @@ CONFIG_MISC_DEVICES=y
459# CONFIG_TIFM_CORE is not set 470# CONFIG_TIFM_CORE is not set
460# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
461# CONFIG_HP_ILO is not set 472# CONFIG_HP_ILO is not set
473# CONFIG_C2PORT is not set
462CONFIG_HAVE_IDE=y 474CONFIG_HAVE_IDE=y
463# CONFIG_IDE is not set 475# CONFIG_IDE is not set
464 476
@@ -501,6 +513,7 @@ CONFIG_SCSI_WAIT_SCAN=m
501# CONFIG_SCSI_SRP_ATTRS is not set 513# CONFIG_SCSI_SRP_ATTRS is not set
502CONFIG_SCSI_LOWLEVEL=y 514CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_ISCSI_TCP is not set 515# CONFIG_ISCSI_TCP is not set
516# CONFIG_SCSI_CXGB3_ISCSI is not set
504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 517# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
505# CONFIG_SCSI_3W_9XXX is not set 518# CONFIG_SCSI_3W_9XXX is not set
506# CONFIG_SCSI_ACARD is not set 519# CONFIG_SCSI_ACARD is not set
@@ -514,6 +527,8 @@ CONFIG_SCSI_LOWLEVEL=y
514# CONFIG_MEGARAID_LEGACY is not set 527# CONFIG_MEGARAID_LEGACY is not set
515# CONFIG_MEGARAID_SAS is not set 528# CONFIG_MEGARAID_SAS is not set
516# CONFIG_SCSI_HPTIOP is not set 529# CONFIG_SCSI_HPTIOP is not set
530# CONFIG_LIBFC is not set
531# CONFIG_FCOE is not set
517# CONFIG_SCSI_DMX3191D is not set 532# CONFIG_SCSI_DMX3191D is not set
518# CONFIG_SCSI_FUTURE_DOMAIN is not set 533# CONFIG_SCSI_FUTURE_DOMAIN is not set
519# CONFIG_SCSI_IPS is not set 534# CONFIG_SCSI_IPS is not set
@@ -627,6 +642,7 @@ CONFIG_MII=y
627# CONFIG_NET_VENDOR_3COM is not set 642# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_SMC91X is not set 643# CONFIG_SMC91X is not set
629# CONFIG_SMC911X is not set 644# CONFIG_SMC911X is not set
645# CONFIG_SMSC911X is not set
630# CONFIG_NET_TULIP is not set 646# CONFIG_NET_TULIP is not set
631# CONFIG_HP100 is not set 647# CONFIG_HP100 is not set
632# CONFIG_IBM_NEW_EMAC_ZMII is not set 648# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -642,7 +658,6 @@ CONFIG_NET_PCI=y
642# CONFIG_ADAPTEC_STARFIRE is not set 658# CONFIG_ADAPTEC_STARFIRE is not set
643# CONFIG_B44 is not set 659# CONFIG_B44 is not set
644# CONFIG_FORCEDETH is not set 660# CONFIG_FORCEDETH is not set
645# CONFIG_EEPRO100 is not set
646# CONFIG_E100 is not set 661# CONFIG_E100 is not set
647# CONFIG_FEALNX is not set 662# CONFIG_FEALNX is not set
648# CONFIG_NATSEMI is not set 663# CONFIG_NATSEMI is not set
@@ -656,6 +671,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y
656# CONFIG_R6040 is not set 671# CONFIG_R6040 is not set
657# CONFIG_SIS900 is not set 672# CONFIG_SIS900 is not set
658# CONFIG_EPIC100 is not set 673# CONFIG_EPIC100 is not set
674# CONFIG_SMSC9420 is not set
659# CONFIG_SUNDANCE is not set 675# CONFIG_SUNDANCE is not set
660# CONFIG_TLAN is not set 676# CONFIG_TLAN is not set
661# CONFIG_VIA_RHINE is not set 677# CONFIG_VIA_RHINE is not set
@@ -684,6 +700,7 @@ CONFIG_NETDEV_1000=y
684# CONFIG_JME is not set 700# CONFIG_JME is not set
685CONFIG_NETDEV_10000=y 701CONFIG_NETDEV_10000=y
686# CONFIG_CHELSIO_T1 is not set 702# CONFIG_CHELSIO_T1 is not set
703CONFIG_CHELSIO_T3_DEPENDS=y
687# CONFIG_CHELSIO_T3 is not set 704# CONFIG_CHELSIO_T3 is not set
688# CONFIG_ENIC is not set 705# CONFIG_ENIC is not set
689# CONFIG_IXGBE is not set 706# CONFIG_IXGBE is not set
@@ -692,6 +709,7 @@ CONFIG_NETDEV_10000=y
692# CONFIG_MYRI10GE is not set 709# CONFIG_MYRI10GE is not set
693# CONFIG_NETXEN_NIC is not set 710# CONFIG_NETXEN_NIC is not set
694# CONFIG_NIU is not set 711# CONFIG_NIU is not set
712# CONFIG_MLX4_EN is not set
695# CONFIG_MLX4_CORE is not set 713# CONFIG_MLX4_CORE is not set
696# CONFIG_TEHUTI is not set 714# CONFIG_TEHUTI is not set
697# CONFIG_BNX2X is not set 715# CONFIG_BNX2X is not set
@@ -787,6 +805,7 @@ CONFIG_SERIAL_CORE=y
787CONFIG_SERIAL_CORE_CONSOLE=y 805CONFIG_SERIAL_CORE_CONSOLE=y
788# CONFIG_SERIAL_JSM is not set 806# CONFIG_SERIAL_JSM is not set
789CONFIG_UNIX98_PTYS=y 807CONFIG_UNIX98_PTYS=y
808# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
790CONFIG_LEGACY_PTYS=y 809CONFIG_LEGACY_PTYS=y
791CONFIG_LEGACY_PTY_COUNT=256 810CONFIG_LEGACY_PTY_COUNT=256
792# CONFIG_IPMI_HANDLER is not set 811# CONFIG_IPMI_HANDLER is not set
@@ -828,11 +847,11 @@ CONFIG_HWMON=y
828# CONFIG_THERMAL is not set 847# CONFIG_THERMAL is not set
829# CONFIG_THERMAL_HWMON is not set 848# CONFIG_THERMAL_HWMON is not set
830# CONFIG_WATCHDOG is not set 849# CONFIG_WATCHDOG is not set
850CONFIG_SSB_POSSIBLE=y
831 851
832# 852#
833# Sonics Silicon Backplane 853# Sonics Silicon Backplane
834# 854#
835CONFIG_SSB_POSSIBLE=y
836# CONFIG_SSB is not set 855# CONFIG_SSB is not set
837 856
838# 857#
@@ -842,7 +861,7 @@ CONFIG_SSB_POSSIBLE=y
842# CONFIG_MFD_SM501 is not set 861# CONFIG_MFD_SM501 is not set
843# CONFIG_HTC_PASIC3 is not set 862# CONFIG_HTC_PASIC3 is not set
844# CONFIG_MFD_TMIO is not set 863# CONFIG_MFD_TMIO is not set
845# CONFIG_MFD_WM8400 is not set 864# CONFIG_REGULATOR is not set
846 865
847# 866#
848# Multimedia devices 867# Multimedia devices
@@ -902,9 +921,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
902# 921#
903 922
904# 923#
905# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 924# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
906# 925#
907# CONFIG_USB_GADGET is not set 926# CONFIG_USB_GADGET is not set
927# CONFIG_UWB is not set
908# CONFIG_MMC is not set 928# CONFIG_MMC is not set
909# CONFIG_MEMSTICK is not set 929# CONFIG_MEMSTICK is not set
910# CONFIG_NEW_LEDS is not set 930# CONFIG_NEW_LEDS is not set
@@ -1007,10 +1027,7 @@ CONFIG_TMPFS=y
1007# CONFIG_HUGETLBFS is not set 1027# CONFIG_HUGETLBFS is not set
1008# CONFIG_HUGETLB_PAGE is not set 1028# CONFIG_HUGETLB_PAGE is not set
1009# CONFIG_CONFIGFS_FS is not set 1029# CONFIG_CONFIGFS_FS is not set
1010 1030CONFIG_MISC_FILESYSTEMS=y
1011#
1012# Miscellaneous filesystems
1013#
1014# CONFIG_ADFS_FS is not set 1031# CONFIG_ADFS_FS is not set
1015# CONFIG_AFFS_FS is not set 1032# CONFIG_AFFS_FS is not set
1016# CONFIG_HFS_FS is not set 1033# CONFIG_HFS_FS is not set
@@ -1100,14 +1117,20 @@ CONFIG_FRAME_WARN=1024
1100# CONFIG_DEBUG_MEMORY_INIT is not set 1117# CONFIG_DEBUG_MEMORY_INIT is not set
1101# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1118# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1102# CONFIG_LATENCYTOP is not set 1119# CONFIG_LATENCYTOP is not set
1103CONFIG_NOP_TRACER=y 1120CONFIG_HAVE_FUNCTION_TRACER=y
1104CONFIG_HAVE_FTRACE=y 1121CONFIG_HAVE_DYNAMIC_FTRACE=y
1122CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1123
1124#
1125# Tracers
1126#
1105# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1127# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1106# CONFIG_SAMPLES is not set 1128# CONFIG_SAMPLES is not set
1129CONFIG_HAVE_ARCH_KGDB=y
1107CONFIG_SH_STANDARD_BIOS=y 1130CONFIG_SH_STANDARD_BIOS=y
1108# CONFIG_EARLY_SCIF_CONSOLE is not set 1131# CONFIG_EARLY_SCIF_CONSOLE is not set
1109# CONFIG_EARLY_PRINTK is not set 1132# CONFIG_EARLY_PRINTK is not set
1110# CONFIG_SH_KGDB is not set 1133# CONFIG_MORE_COMPILE_OPTIONS is not set
1111 1134
1112# 1135#
1113# Security options 1136# Security options
@@ -1123,6 +1146,7 @@ CONFIG_CRYPTO=y
1123# 1146#
1124# CONFIG_CRYPTO_FIPS is not set 1147# CONFIG_CRYPTO_FIPS is not set
1125# CONFIG_CRYPTO_MANAGER is not set 1148# CONFIG_CRYPTO_MANAGER is not set
1149# CONFIG_CRYPTO_MANAGER2 is not set
1126# CONFIG_CRYPTO_GF128MUL is not set 1150# CONFIG_CRYPTO_GF128MUL is not set
1127# CONFIG_CRYPTO_NULL is not set 1151# CONFIG_CRYPTO_NULL is not set
1128# CONFIG_CRYPTO_CRYPTD is not set 1152# CONFIG_CRYPTO_CRYPTD is not set
@@ -1206,6 +1230,7 @@ CONFIG_CRYPTO_HW=y
1206# Library routines 1230# Library routines
1207# 1231#
1208CONFIG_BITREVERSE=y 1232CONFIG_BITREVERSE=y
1233CONFIG_GENERIC_FIND_LAST_BIT=y
1209# CONFIG_CRC_CCITT is not set 1234# CONFIG_CRC_CCITT is not set
1210# CONFIG_CRC16 is not set 1235# CONFIG_CRC16 is not set
1211CONFIG_CRC_T10DIF=y 1236CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/magicpanelr2_defconfig b/arch/sh/configs/magicpanelr2_defconfig
index 499ed7204385..125d8019dc2f 100644
--- a/arch/sh/configs/magicpanelr2_defconfig
+++ b/arch/sh/configs/magicpanelr2_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:32:23 2008 4# Fri Jan 9 17:03:37 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -58,6 +60,7 @@ CONFIG_UID16=y
58CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
59CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
60CONFIG_KALLSYMS_ALL=y 62CONFIG_KALLSYMS_ALL=y
63CONFIG_KALLSYMS_STRIP_GENERATED=y
61# CONFIG_KALLSYMS_EXTRA_PASS is not set 64# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y 65CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y 66CONFIG_PRINTK=y
@@ -74,12 +77,10 @@ CONFIG_EVENTFD=y
74CONFIG_SHMEM=y 77CONFIG_SHMEM=y
75CONFIG_AIO=y 78CONFIG_AIO=y
76CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_SLAB=y 80CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 86CONFIG_HAVE_IOREMAP_PROT=y
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 98# CONFIG_MODULE_FORCE_UNLOAD is not set
99CONFIG_MODVERSIONS=y 99CONFIG_MODVERSIONS=y
100CONFIG_MODULE_SRCVERSION_ALL=y 100CONFIG_MODULE_SRCVERSION_ALL=y
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 117CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 118CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH3=y 129CONFIG_CPU_SH3=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -296,11 +298,18 @@ CONFIG_BINFMT_ELF=y
296# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 298# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
297# CONFIG_HAVE_AOUT is not set 299# CONFIG_HAVE_AOUT is not set
298# CONFIG_BINFMT_MISC is not set 300# CONFIG_BINFMT_MISC is not set
301
302#
303# Power management options (EXPERIMENTAL)
304#
305# CONFIG_PM is not set
306# CONFIG_CPU_IDLE is not set
299CONFIG_NET=y 307CONFIG_NET=y
300 308
301# 309#
302# Networking options 310# Networking options
303# 311#
312CONFIG_COMPAT_NET_DEV_OPS=y
304CONFIG_PACKET=y 313CONFIG_PACKET=y
305CONFIG_PACKET_MMAP=y 314CONFIG_PACKET_MMAP=y
306CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
353# CONFIG_NET_SCHED is not set 362# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set
354 364
355# 365#
356# Network testing 366# Network testing
@@ -366,8 +376,8 @@ CONFIG_WIRELESS=y
366# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
367# CONFIG_WIRELESS_OLD_REGULATORY is not set 377# CONFIG_WIRELESS_OLD_REGULATORY is not set
368# CONFIG_WIRELESS_EXT is not set 378# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set
369# CONFIG_MAC80211 is not set 380# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set
371# CONFIG_RFKILL is not set 381# CONFIG_RFKILL is not set
372# CONFIG_NET_9P is not set 382# CONFIG_NET_9P is not set
373 383
@@ -483,6 +493,7 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
483CONFIG_MISC_DEVICES=y 493CONFIG_MISC_DEVICES=y
484# CONFIG_EEPROM_93CX6 is not set 494# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_C2PORT is not set
486CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
487# CONFIG_IDE is not set 498# CONFIG_IDE is not set
488 499
@@ -502,13 +513,33 @@ CONFIG_NETDEVICES=y
502# CONFIG_EQUALIZER is not set 513# CONFIG_EQUALIZER is not set
503# CONFIG_TUN is not set 514# CONFIG_TUN is not set
504# CONFIG_VETH is not set 515# CONFIG_VETH is not set
505# CONFIG_PHYLIB is not set 516CONFIG_PHYLIB=y
517
518#
519# MII PHY device drivers
520#
521# CONFIG_MARVELL_PHY is not set
522# CONFIG_DAVICOM_PHY is not set
523# CONFIG_QSEMI_PHY is not set
524# CONFIG_LXT_PHY is not set
525# CONFIG_CICADA_PHY is not set
526# CONFIG_VITESSE_PHY is not set
527CONFIG_SMSC_PHY=y
528# CONFIG_BROADCOM_PHY is not set
529# CONFIG_ICPLUS_PHY is not set
530# CONFIG_REALTEK_PHY is not set
531# CONFIG_NATIONAL_PHY is not set
532# CONFIG_STE10XP is not set
533# CONFIG_LSI_ET1011C_PHY is not set
534# CONFIG_FIXED_PHY is not set
535# CONFIG_MDIO_BITBANG is not set
506CONFIG_NET_ETHERNET=y 536CONFIG_NET_ETHERNET=y
507CONFIG_MII=y 537CONFIG_MII=y
508# CONFIG_AX88796 is not set 538# CONFIG_AX88796 is not set
509# CONFIG_STNIC is not set 539# CONFIG_STNIC is not set
510# CONFIG_SMC91X is not set 540# CONFIG_SMC91X is not set
511CONFIG_SMC911X=y 541# CONFIG_SMC911X is not set
542CONFIG_SMSC911X=y
512# CONFIG_IBM_NEW_EMAC_ZMII is not set 543# CONFIG_IBM_NEW_EMAC_ZMII is not set
513# CONFIG_IBM_NEW_EMAC_RGMII is not set 544# CONFIG_IBM_NEW_EMAC_RGMII is not set
514# CONFIG_IBM_NEW_EMAC_TAH is not set 545# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -618,6 +649,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
618CONFIG_SERIAL_CORE=y 649CONFIG_SERIAL_CORE=y
619CONFIG_SERIAL_CORE_CONSOLE=y 650CONFIG_SERIAL_CORE_CONSOLE=y
620CONFIG_UNIX98_PTYS=y 651CONFIG_UNIX98_PTYS=y
652# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
621CONFIG_LEGACY_PTYS=y 653CONFIG_LEGACY_PTYS=y
622CONFIG_LEGACY_PTY_COUNT=256 654CONFIG_LEGACY_PTY_COUNT=256
623# CONFIG_IPMI_HANDLER is not set 655# CONFIG_IPMI_HANDLER is not set
@@ -627,17 +659,37 @@ CONFIG_LEGACY_PTY_COUNT=256
627# CONFIG_TCG_TPM is not set 659# CONFIG_TCG_TPM is not set
628# CONFIG_I2C is not set 660# CONFIG_I2C is not set
629# CONFIG_SPI is not set 661# CONFIG_SPI is not set
662CONFIG_ARCH_REQUIRE_GPIOLIB=y
663CONFIG_GPIOLIB=y
664# CONFIG_DEBUG_GPIO is not set
665# CONFIG_GPIO_SYSFS is not set
666
667#
668# Memory mapped GPIO expanders:
669#
670
671#
672# I2C GPIO expanders:
673#
674
675#
676# PCI GPIO expanders:
677#
678
679#
680# SPI GPIO expanders:
681#
630# CONFIG_W1 is not set 682# CONFIG_W1 is not set
631# CONFIG_POWER_SUPPLY is not set 683# CONFIG_POWER_SUPPLY is not set
632# CONFIG_HWMON is not set 684# CONFIG_HWMON is not set
633# CONFIG_THERMAL is not set 685# CONFIG_THERMAL is not set
634# CONFIG_THERMAL_HWMON is not set 686# CONFIG_THERMAL_HWMON is not set
635# CONFIG_WATCHDOG is not set 687# CONFIG_WATCHDOG is not set
688CONFIG_SSB_POSSIBLE=y
636 689
637# 690#
638# Sonics Silicon Backplane 691# Sonics Silicon Backplane
639# 692#
640CONFIG_SSB_POSSIBLE=y
641# CONFIG_SSB is not set 693# CONFIG_SSB is not set
642 694
643# 695#
@@ -647,7 +699,7 @@ CONFIG_SSB_POSSIBLE=y
647# CONFIG_MFD_SM501 is not set 699# CONFIG_MFD_SM501 is not set
648# CONFIG_HTC_PASIC3 is not set 700# CONFIG_HTC_PASIC3 is not set
649# CONFIG_MFD_TMIO is not set 701# CONFIG_MFD_TMIO is not set
650# CONFIG_MFD_WM8400 is not set 702# CONFIG_REGULATOR is not set
651 703
652# 704#
653# Multimedia devices 705# Multimedia devices
@@ -778,10 +830,7 @@ CONFIG_TMPFS=y
778# CONFIG_HUGETLBFS is not set 830# CONFIG_HUGETLBFS is not set
779# CONFIG_HUGETLB_PAGE is not set 831# CONFIG_HUGETLB_PAGE is not set
780# CONFIG_CONFIGFS_FS is not set 832# CONFIG_CONFIGFS_FS is not set
781 833CONFIG_MISC_FILESYSTEMS=y
782#
783# Miscellaneous filesystems
784#
785# CONFIG_ADFS_FS is not set 834# CONFIG_ADFS_FS is not set
786# CONFIG_AFFS_FS is not set 835# CONFIG_AFFS_FS is not set
787# CONFIG_HFS_FS is not set 836# CONFIG_HFS_FS is not set
@@ -912,6 +961,7 @@ CONFIG_DEBUG_INFO=y
912# CONFIG_DEBUG_MEMORY_INIT is not set 961# CONFIG_DEBUG_MEMORY_INIT is not set
913# CONFIG_DEBUG_LIST is not set 962# CONFIG_DEBUG_LIST is not set
914# CONFIG_DEBUG_SG is not set 963# CONFIG_DEBUG_SG is not set
964# CONFIG_DEBUG_NOTIFIERS is not set
915CONFIG_FRAME_POINTER=y 965CONFIG_FRAME_POINTER=y
916# CONFIG_RCU_TORTURE_TEST is not set 966# CONFIG_RCU_TORTURE_TEST is not set
917# CONFIG_RCU_CPU_STALL_DETECTOR is not set 967# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -920,16 +970,24 @@ CONFIG_FRAME_POINTER=y
920# CONFIG_FAULT_INJECTION is not set 970# CONFIG_FAULT_INJECTION is not set
921# CONFIG_LATENCYTOP is not set 971# CONFIG_LATENCYTOP is not set
922CONFIG_SYSCTL_SYSCALL_CHECK=y 972CONFIG_SYSCTL_SYSCALL_CHECK=y
923CONFIG_NOP_TRACER=y 973CONFIG_HAVE_FUNCTION_TRACER=y
924CONFIG_HAVE_FTRACE=y 974CONFIG_HAVE_DYNAMIC_FTRACE=y
925# CONFIG_FTRACE is not set 975CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
976
977#
978# Tracers
979#
980# CONFIG_FUNCTION_TRACER is not set
926# CONFIG_IRQSOFF_TRACER is not set 981# CONFIG_IRQSOFF_TRACER is not set
927# CONFIG_SCHED_TRACER is not set 982# CONFIG_SCHED_TRACER is not set
928# CONFIG_CONTEXT_SWITCH_TRACER is not set 983# CONFIG_CONTEXT_SWITCH_TRACER is not set
929# CONFIG_BOOT_TRACER is not set 984# CONFIG_BOOT_TRACER is not set
985# CONFIG_TRACE_BRANCH_PROFILING is not set
930# CONFIG_STACK_TRACER is not set 986# CONFIG_STACK_TRACER is not set
931# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 987# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
932# CONFIG_SAMPLES is not set 988# CONFIG_SAMPLES is not set
989CONFIG_HAVE_ARCH_KGDB=y
990# CONFIG_KGDB is not set
933# CONFIG_SH_STANDARD_BIOS is not set 991# CONFIG_SH_STANDARD_BIOS is not set
934CONFIG_EARLY_SCIF_CONSOLE=y 992CONFIG_EARLY_SCIF_CONSOLE=y
935CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000 993CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000
@@ -939,25 +997,9 @@ CONFIG_EARLY_PRINTK=y
939# CONFIG_DEBUG_STACK_USAGE is not set 997# CONFIG_DEBUG_STACK_USAGE is not set
940# CONFIG_4KSTACKS is not set 998# CONFIG_4KSTACKS is not set
941# CONFIG_IRQSTACKS is not set 999# CONFIG_IRQSTACKS is not set
942CONFIG_SH_KGDB=y 1000CONFIG_DUMP_CODE=y
943 1001# CONFIG_SH_NO_BSS_INIT is not set
944#
945# KGDB configuration options
946#
947# CONFIG_MORE_COMPILE_OPTIONS is not set 1002# CONFIG_MORE_COMPILE_OPTIONS is not set
948# CONFIG_KGDB_NMI is not set
949CONFIG_KGDB_SYSRQ=y
950
951#
952# Serial port setup
953#
954CONFIG_KGDB_DEFPORT=0
955CONFIG_KGDB_DEFBAUD=115200
956CONFIG_KGDB_DEFPARITY_N=y
957# CONFIG_KGDB_DEFPARITY_E is not set
958# CONFIG_KGDB_DEFPARITY_O is not set
959CONFIG_KGDB_DEFBITS_8=y
960# CONFIG_KGDB_DEFBITS_7 is not set
961 1003
962# 1004#
963# Security options 1005# Security options
@@ -972,6 +1014,7 @@ CONFIG_KGDB_DEFBITS_8=y
972# Library routines 1014# Library routines
973# 1015#
974CONFIG_BITREVERSE=y 1016CONFIG_BITREVERSE=y
1017CONFIG_GENERIC_FIND_LAST_BIT=y
975CONFIG_CRC_CCITT=m 1018CONFIG_CRC_CCITT=m
976CONFIG_CRC16=m 1019CONFIG_CRC16=m
977# CONFIG_CRC_T10DIF is not set 1020# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/microdev_defconfig b/arch/sh/configs/microdev_defconfig
index b8ada8ce98d9..5a1c0485a354 100644
--- a/arch/sh/configs/microdev_defconfig
+++ b/arch/sh/configs/microdev_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:37:41 2008 4# Fri Jan 9 17:06:47 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82CONFIG_HAVE_IOREMAP_PROT=y 82CONFIG_HAVE_IOREMAP_PROT=y
83CONFIG_HAVE_KPROBES=y 83CONFIG_HAVE_KPROBES=y
@@ -87,13 +87,11 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 87CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 88CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
92# CONFIG_MODULES is not set 91# CONFIG_MODULES is not set
93CONFIG_BLOCK=y 92CONFIG_BLOCK=y
94# CONFIG_LBD is not set 93# CONFIG_LBD is not set
95# CONFIG_BLK_DEV_IO_TRACE is not set 94# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set
97# CONFIG_BLK_DEV_BSG is not set 95# CONFIG_BLK_DEV_BSG is not set
98# CONFIG_BLK_DEV_INTEGRITY is not set 96# CONFIG_BLK_DEV_INTEGRITY is not set
99 97
@@ -110,6 +108,10 @@ CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_NOOP is not set 108# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="anticipatory" 109CONFIG_DEFAULT_IOSCHED="anticipatory"
112CONFIG_CLASSIC_RCU=y 110CONFIG_CLASSIC_RCU=y
111# CONFIG_TREE_RCU is not set
112# CONFIG_PREEMPT_RCU is not set
113# CONFIG_TREE_RCU_TRACE is not set
114# CONFIG_PREEMPT_RCU_TRACE is not set
113# CONFIG_FREEZER is not set 115# CONFIG_FREEZER is not set
114 116
115# 117#
@@ -117,6 +119,7 @@ CONFIG_CLASSIC_RCU=y
117# 119#
118CONFIG_CPU_SH4=y 120CONFIG_CPU_SH4=y
119# CONFIG_CPU_SUBTYPE_SH7619 is not set 121# CONFIG_CPU_SUBTYPE_SH7619 is not set
122# CONFIG_CPU_SUBTYPE_SH7201 is not set
120# CONFIG_CPU_SUBTYPE_SH7203 is not set 123# CONFIG_CPU_SUBTYPE_SH7203 is not set
121# CONFIG_CPU_SUBTYPE_SH7206 is not set 124# CONFIG_CPU_SUBTYPE_SH7206 is not set
122# CONFIG_CPU_SUBTYPE_SH7263 is not set 125# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -265,7 +267,6 @@ CONFIG_HZ=250
265# CONFIG_PREEMPT_NONE is not set 267# CONFIG_PREEMPT_NONE is not set
266# CONFIG_PREEMPT_VOLUNTARY is not set 268# CONFIG_PREEMPT_VOLUNTARY is not set
267CONFIG_PREEMPT=y 269CONFIG_PREEMPT=y
268# CONFIG_PREEMPT_RCU is not set
269CONFIG_GUSA=y 270CONFIG_GUSA=y
270# CONFIG_GUSA_RB is not set 271# CONFIG_GUSA_RB is not set
271 272
@@ -292,11 +293,18 @@ CONFIG_BINFMT_ELF=y
292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
293# CONFIG_HAVE_AOUT is not set 294# CONFIG_HAVE_AOUT is not set
294# CONFIG_BINFMT_MISC is not set 295# CONFIG_BINFMT_MISC is not set
296
297#
298# Power management options (EXPERIMENTAL)
299#
300# CONFIG_PM is not set
301# CONFIG_CPU_IDLE is not set
295CONFIG_NET=y 302CONFIG_NET=y
296 303
297# 304#
298# Networking options 305# Networking options
299# 306#
307CONFIG_COMPAT_NET_DEV_OPS=y
300# CONFIG_PACKET is not set 308# CONFIG_PACKET is not set
301# CONFIG_UNIX is not set 309# CONFIG_UNIX is not set
302CONFIG_XFRM=y 310CONFIG_XFRM=y
@@ -351,6 +359,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_ECONET is not set 359# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 360# CONFIG_WAN_ROUTER is not set
353# CONFIG_NET_SCHED is not set 361# CONFIG_NET_SCHED is not set
362# CONFIG_DCB is not set
354 363
355# 364#
356# Network testing 365# Network testing
@@ -366,8 +375,8 @@ CONFIG_WIRELESS=y
366# CONFIG_CFG80211 is not set 375# CONFIG_CFG80211 is not set
367# CONFIG_WIRELESS_OLD_REGULATORY is not set 376# CONFIG_WIRELESS_OLD_REGULATORY is not set
368# CONFIG_WIRELESS_EXT is not set 377# CONFIG_WIRELESS_EXT is not set
378# CONFIG_LIB80211 is not set
369# CONFIG_MAC80211 is not set 379# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set
371# CONFIG_RFKILL is not set 380# CONFIG_RFKILL is not set
372# CONFIG_NET_9P is not set 381# CONFIG_NET_9P is not set
373 382
@@ -400,12 +409,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
400CONFIG_MISC_DEVICES=y 409CONFIG_MISC_DEVICES=y
401# CONFIG_EEPROM_93CX6 is not set 410# CONFIG_EEPROM_93CX6 is not set
402# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
412# CONFIG_C2PORT is not set
403CONFIG_HAVE_IDE=y 413CONFIG_HAVE_IDE=y
404CONFIG_IDE=y 414CONFIG_IDE=y
405 415
406# 416#
407# Please see Documentation/ide/ide.txt for help/info on IDE drives 417# Please see Documentation/ide/ide.txt for help/info on IDE drives
408# 418#
419CONFIG_IDE_ATAPI=y
409# CONFIG_BLK_DEV_IDE_SATA is not set 420# CONFIG_BLK_DEV_IDE_SATA is not set
410CONFIG_IDE_GD=y 421CONFIG_IDE_GD=y
411CONFIG_IDE_GD_ATA=y 422CONFIG_IDE_GD_ATA=y
@@ -445,6 +456,7 @@ CONFIG_MII=y
445# CONFIG_STNIC is not set 456# CONFIG_STNIC is not set
446CONFIG_SMC91X=y 457CONFIG_SMC91X=y
447# CONFIG_SMC911X is not set 458# CONFIG_SMC911X is not set
459# CONFIG_SMSC911X is not set
448# CONFIG_IBM_NEW_EMAC_ZMII is not set 460# CONFIG_IBM_NEW_EMAC_ZMII is not set
449# CONFIG_IBM_NEW_EMAC_RGMII is not set 461# CONFIG_IBM_NEW_EMAC_RGMII is not set
450# CONFIG_IBM_NEW_EMAC_TAH is not set 462# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -503,6 +515,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
503CONFIG_SERIAL_CORE=y 515CONFIG_SERIAL_CORE=y
504CONFIG_SERIAL_CORE_CONSOLE=y 516CONFIG_SERIAL_CORE_CONSOLE=y
505CONFIG_UNIX98_PTYS=y 517CONFIG_UNIX98_PTYS=y
518# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
506CONFIG_LEGACY_PTYS=y 519CONFIG_LEGACY_PTYS=y
507CONFIG_LEGACY_PTY_COUNT=256 520CONFIG_LEGACY_PTY_COUNT=256
508# CONFIG_IPMI_HANDLER is not set 521# CONFIG_IPMI_HANDLER is not set
@@ -530,11 +543,11 @@ CONFIG_HWMON=y
530# CONFIG_THERMAL is not set 543# CONFIG_THERMAL is not set
531# CONFIG_THERMAL_HWMON is not set 544# CONFIG_THERMAL_HWMON is not set
532# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
546CONFIG_SSB_POSSIBLE=y
533 547
534# 548#
535# Sonics Silicon Backplane 549# Sonics Silicon Backplane
536# 550#
537CONFIG_SSB_POSSIBLE=y
538# CONFIG_SSB is not set 551# CONFIG_SSB is not set
539 552
540# 553#
@@ -544,7 +557,7 @@ CONFIG_SSB_POSSIBLE=y
544# CONFIG_MFD_SM501 is not set 557# CONFIG_MFD_SM501 is not set
545# CONFIG_HTC_PASIC3 is not set 558# CONFIG_HTC_PASIC3 is not set
546# CONFIG_MFD_TMIO is not set 559# CONFIG_MFD_TMIO is not set
547# CONFIG_MFD_WM8400 is not set 560# CONFIG_REGULATOR is not set
548 561
549# 562#
550# Multimedia devices 563# Multimedia devices
@@ -588,7 +601,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
588# 601#
589 602
590# 603#
591# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 604# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
592# 605#
593# CONFIG_USB_GADGET is not set 606# CONFIG_USB_GADGET is not set
594# CONFIG_MMC is not set 607# CONFIG_MMC is not set
@@ -656,10 +669,7 @@ CONFIG_TMPFS=y
656CONFIG_HUGETLBFS=y 669CONFIG_HUGETLBFS=y
657CONFIG_HUGETLB_PAGE=y 670CONFIG_HUGETLB_PAGE=y
658# CONFIG_CONFIGFS_FS is not set 671# CONFIG_CONFIGFS_FS is not set
659 672CONFIG_MISC_FILESYSTEMS=y
660#
661# Miscellaneous filesystems
662#
663# CONFIG_ADFS_FS is not set 673# CONFIG_ADFS_FS is not set
664# CONFIG_AFFS_FS is not set 674# CONFIG_AFFS_FS is not set
665# CONFIG_HFS_FS is not set 675# CONFIG_HFS_FS is not set
@@ -761,13 +771,19 @@ CONFIG_FRAME_WARN=1024
761# CONFIG_DEBUG_MEMORY_INIT is not set 771# CONFIG_DEBUG_MEMORY_INIT is not set
762# CONFIG_RCU_CPU_STALL_DETECTOR is not set 772# CONFIG_RCU_CPU_STALL_DETECTOR is not set
763# CONFIG_LATENCYTOP is not set 773# CONFIG_LATENCYTOP is not set
764CONFIG_NOP_TRACER=y 774CONFIG_HAVE_FUNCTION_TRACER=y
765CONFIG_HAVE_FTRACE=y 775CONFIG_HAVE_DYNAMIC_FTRACE=y
776CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
777
778#
779# Tracers
780#
766# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 781# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
767# CONFIG_SAMPLES is not set 782# CONFIG_SAMPLES is not set
783CONFIG_HAVE_ARCH_KGDB=y
768# CONFIG_SH_STANDARD_BIOS is not set 784# CONFIG_SH_STANDARD_BIOS is not set
769# CONFIG_EARLY_SCIF_CONSOLE is not set 785# CONFIG_EARLY_SCIF_CONSOLE is not set
770# CONFIG_SH_KGDB is not set 786# CONFIG_MORE_COMPILE_OPTIONS is not set
771 787
772# 788#
773# Security options 789# Security options
@@ -783,11 +799,15 @@ CONFIG_CRYPTO=y
783# 799#
784# CONFIG_CRYPTO_FIPS is not set 800# CONFIG_CRYPTO_FIPS is not set
785CONFIG_CRYPTO_ALGAPI=y 801CONFIG_CRYPTO_ALGAPI=y
786CONFIG_CRYPTO_AEAD=y 802CONFIG_CRYPTO_ALGAPI2=y
803CONFIG_CRYPTO_AEAD2=y
787CONFIG_CRYPTO_BLKCIPHER=y 804CONFIG_CRYPTO_BLKCIPHER=y
805CONFIG_CRYPTO_BLKCIPHER2=y
788CONFIG_CRYPTO_HASH=y 806CONFIG_CRYPTO_HASH=y
789CONFIG_CRYPTO_RNG=y 807CONFIG_CRYPTO_HASH2=y
808CONFIG_CRYPTO_RNG2=y
790CONFIG_CRYPTO_MANAGER=y 809CONFIG_CRYPTO_MANAGER=y
810CONFIG_CRYPTO_MANAGER2=y
791# CONFIG_CRYPTO_GF128MUL is not set 811# CONFIG_CRYPTO_GF128MUL is not set
792# CONFIG_CRYPTO_NULL is not set 812# CONFIG_CRYPTO_NULL is not set
793# CONFIG_CRYPTO_CRYPTD is not set 813# CONFIG_CRYPTO_CRYPTD is not set
@@ -869,6 +889,7 @@ CONFIG_CRYPTO_HW=y
869# Library routines 889# Library routines
870# 890#
871CONFIG_BITREVERSE=y 891CONFIG_BITREVERSE=y
892CONFIG_GENERIC_FIND_LAST_BIT=y
872# CONFIG_CRC_CCITT is not set 893# CONFIG_CRC_CCITT is not set
873# CONFIG_CRC16 is not set 894# CONFIG_CRC16 is not set
874# CONFIG_CRC_T10DIF is not set 895# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index 30cac42f25e7..678576796bdf 100644
--- a/arch/sh/configs/migor_defconfig
+++ b/arch/sh/configs/migor_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.28-rc2 3# Linux kernel version: 2.6.29-rc1
4# Fri Oct 31 15:58:06 2008 4# Thu Jan 22 09:16:16 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -43,8 +45,12 @@ CONFIG_SYSVIPC_SYSCTL=y
43CONFIG_IKCONFIG=y 45CONFIG_IKCONFIG=y
44CONFIG_IKCONFIG_PROC=y 46CONFIG_IKCONFIG_PROC=y
45CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set
47# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49
50#
51# Control Group support
52#
53# CONFIG_CGROUPS is not set
48CONFIG_SYSFS_DEPRECATED=y 54CONFIG_SYSFS_DEPRECATED=y
49CONFIG_SYSFS_DEPRECATED_V2=y 55CONFIG_SYSFS_DEPRECATED_V2=y
50# CONFIG_RELAY is not set 56# CONFIG_RELAY is not set
@@ -77,6 +83,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 83# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 84# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 85CONFIG_PROFILING=y
86CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 87# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 88CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 89CONFIG_HAVE_OPROFILE=y
@@ -89,18 +96,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 96CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 97CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 98CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 99CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 100CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 101# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 102# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 103# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 104# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 105CONFIG_BLOCK=y
101# CONFIG_LBD is not set 106# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 107# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 108# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 109# CONFIG_BLK_DEV_INTEGRITY is not set
106 110
@@ -117,6 +121,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 121# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 122CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 123CONFIG_CLASSIC_RCU=y
124# CONFIG_TREE_RCU is not set
125# CONFIG_PREEMPT_RCU is not set
126# CONFIG_TREE_RCU_TRACE is not set
127# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 128# CONFIG_FREEZER is not set
121 129
122# 130#
@@ -127,6 +135,7 @@ CONFIG_CPU_SH4A=y
127CONFIG_CPU_SH4AL_DSP=y 135CONFIG_CPU_SH4AL_DSP=y
128CONFIG_CPU_SHX2=y 136CONFIG_CPU_SHX2=y
129# CONFIG_CPU_SUBTYPE_SH7619 is not set 137# CONFIG_CPU_SUBTYPE_SH7619 is not set
138# CONFIG_CPU_SUBTYPE_SH7201 is not set
130# CONFIG_CPU_SUBTYPE_SH7203 is not set 139# CONFIG_CPU_SUBTYPE_SH7203 is not set
131# CONFIG_CPU_SUBTYPE_SH7206 is not set 140# CONFIG_CPU_SUBTYPE_SH7206 is not set
132# CONFIG_CPU_SUBTYPE_SH7263 is not set 141# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -196,7 +205,6 @@ CONFIG_SPARSEMEM_STATIC=y
196# CONFIG_MEMORY_HOTPLUG is not set 205# CONFIG_MEMORY_HOTPLUG is not set
197CONFIG_SPLIT_PTLOCK_CPUS=4 206CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_MIGRATION is not set 207# CONFIG_MIGRATION is not set
199# CONFIG_RESOURCES_64BIT is not set
200# CONFIG_PHYS_ADDR_T_64BIT is not set 208# CONFIG_PHYS_ADDR_T_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=0 209CONFIG_ZONE_DMA_FLAG=0
202CONFIG_NR_QUICK=2 210CONFIG_NR_QUICK=2
@@ -299,11 +307,18 @@ CONFIG_BINFMT_ELF=y
299# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
300# CONFIG_HAVE_AOUT is not set 308# CONFIG_HAVE_AOUT is not set
301# CONFIG_BINFMT_MISC is not set 309# CONFIG_BINFMT_MISC is not set
310
311#
312# Power management options (EXPERIMENTAL)
313#
314# CONFIG_PM is not set
315# CONFIG_CPU_IDLE is not set
302CONFIG_NET=y 316CONFIG_NET=y
303 317
304# 318#
305# Networking options 319# Networking options
306# 320#
321CONFIG_COMPAT_NET_DEV_OPS=y
307CONFIG_PACKET=y 322CONFIG_PACKET=y
308# CONFIG_PACKET_MMAP is not set 323# CONFIG_PACKET_MMAP is not set
309CONFIG_UNIX=y 324CONFIG_UNIX=y
@@ -359,6 +374,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_ECONET is not set 374# CONFIG_ECONET is not set
360# CONFIG_WAN_ROUTER is not set 375# CONFIG_WAN_ROUTER is not set
361# CONFIG_NET_SCHED is not set 376# CONFIG_NET_SCHED is not set
377# CONFIG_DCB is not set
362 378
363# 379#
364# Network testing 380# Network testing
@@ -375,8 +391,9 @@ CONFIG_WIRELESS=y
375# CONFIG_WIRELESS_OLD_REGULATORY is not set 391# CONFIG_WIRELESS_OLD_REGULATORY is not set
376CONFIG_WIRELESS_EXT=y 392CONFIG_WIRELESS_EXT=y
377CONFIG_WIRELESS_EXT_SYSFS=y 393CONFIG_WIRELESS_EXT_SYSFS=y
394# CONFIG_LIB80211 is not set
378# CONFIG_MAC80211 is not set 395# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set 396# CONFIG_WIMAX is not set
380# CONFIG_RFKILL is not set 397# CONFIG_RFKILL is not set
381# CONFIG_NET_9P is not set 398# CONFIG_NET_9P is not set
382 399
@@ -399,6 +416,7 @@ CONFIG_MTD=y
399# CONFIG_MTD_DEBUG is not set 416# CONFIG_MTD_DEBUG is not set
400CONFIG_MTD_CONCAT=y 417CONFIG_MTD_CONCAT=y
401CONFIG_MTD_PARTITIONS=y 418CONFIG_MTD_PARTITIONS=y
419# CONFIG_MTD_TESTS is not set
402# CONFIG_MTD_REDBOOT_PARTS is not set 420# CONFIG_MTD_REDBOOT_PARTS is not set
403CONFIG_MTD_CMDLINE_PARTS=y 421CONFIG_MTD_CMDLINE_PARTS=y
404# CONFIG_MTD_AR7_PARTS is not set 422# CONFIG_MTD_AR7_PARTS is not set
@@ -446,9 +464,7 @@ CONFIG_MTD_CFI_UTIL=y
446# 464#
447# CONFIG_MTD_COMPLEX_MAPPINGS is not set 465# CONFIG_MTD_COMPLEX_MAPPINGS is not set
448CONFIG_MTD_PHYSMAP=y 466CONFIG_MTD_PHYSMAP=y
449CONFIG_MTD_PHYSMAP_START=0xffffffff 467# CONFIG_MTD_PHYSMAP_COMPAT is not set
450CONFIG_MTD_PHYSMAP_LEN=0
451CONFIG_MTD_PHYSMAP_BANKWIDTH=0
452# CONFIG_MTD_PLATRAM is not set 468# CONFIG_MTD_PLATRAM is not set
453 469
454# 470#
@@ -476,6 +492,12 @@ CONFIG_MTD_NAND_PLATFORM=y
476# CONFIG_MTD_ONENAND is not set 492# CONFIG_MTD_ONENAND is not set
477 493
478# 494#
495# LPDDR flash memory drivers
496#
497# CONFIG_MTD_LPDDR is not set
498# CONFIG_MTD_QINFO_PROBE is not set
499
500#
479# UBI - Unsorted block images 501# UBI - Unsorted block images
480# 502#
481# CONFIG_MTD_UBI is not set 503# CONFIG_MTD_UBI is not set
@@ -493,7 +515,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
493# CONFIG_BLK_DEV_HD is not set 515# CONFIG_BLK_DEV_HD is not set
494CONFIG_MISC_DEVICES=y 516CONFIG_MISC_DEVICES=y
495# CONFIG_EEPROM_93CX6 is not set 517# CONFIG_EEPROM_93CX6 is not set
518# CONFIG_ICS932S401 is not set
496# CONFIG_ENCLOSURE_SERVICES is not set 519# CONFIG_ENCLOSURE_SERVICES is not set
520# CONFIG_C2PORT is not set
497CONFIG_HAVE_IDE=y 521CONFIG_HAVE_IDE=y
498# CONFIG_IDE is not set 522# CONFIG_IDE is not set
499 523
@@ -536,6 +560,7 @@ CONFIG_SCSI_WAIT_SCAN=m
536# CONFIG_SCSI_SRP_ATTRS is not set 560# CONFIG_SCSI_SRP_ATTRS is not set
537CONFIG_SCSI_LOWLEVEL=y 561CONFIG_SCSI_LOWLEVEL=y
538# CONFIG_ISCSI_TCP is not set 562# CONFIG_ISCSI_TCP is not set
563# CONFIG_LIBFC is not set
539# CONFIG_SCSI_DEBUG is not set 564# CONFIG_SCSI_DEBUG is not set
540# CONFIG_SCSI_DH is not set 565# CONFIG_SCSI_DH is not set
541# CONFIG_ATA is not set 566# CONFIG_ATA is not set
@@ -554,6 +579,7 @@ CONFIG_MII=y
554# CONFIG_STNIC is not set 579# CONFIG_STNIC is not set
555CONFIG_SMC91X=y 580CONFIG_SMC91X=y
556# CONFIG_SMC911X is not set 581# CONFIG_SMC911X is not set
582# CONFIG_SMSC911X is not set
557# CONFIG_IBM_NEW_EMAC_ZMII is not set 583# CONFIG_IBM_NEW_EMAC_ZMII is not set
558# CONFIG_IBM_NEW_EMAC_RGMII is not set 584# CONFIG_IBM_NEW_EMAC_RGMII is not set
559# CONFIG_IBM_NEW_EMAC_TAH is not set 585# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -571,6 +597,10 @@ CONFIG_SMC91X=y
571# CONFIG_WLAN_PRE80211 is not set 597# CONFIG_WLAN_PRE80211 is not set
572# CONFIG_WLAN_80211 is not set 598# CONFIG_WLAN_80211 is not set
573# CONFIG_IWLWIFI_LEDS is not set 599# CONFIG_IWLWIFI_LEDS is not set
600
601#
602# Enable WiMAX (Networking options) to see the WiMAX drivers
603#
574# CONFIG_WAN is not set 604# CONFIG_WAN is not set
575# CONFIG_PPP is not set 605# CONFIG_PPP is not set
576# CONFIG_SLIP is not set 606# CONFIG_SLIP is not set
@@ -644,6 +674,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
644CONFIG_SERIAL_CORE=y 674CONFIG_SERIAL_CORE=y
645CONFIG_SERIAL_CORE_CONSOLE=y 675CONFIG_SERIAL_CORE_CONSOLE=y
646CONFIG_UNIX98_PTYS=y 676CONFIG_UNIX98_PTYS=y
677# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
647CONFIG_LEGACY_PTYS=y 678CONFIG_LEGACY_PTYS=y
648CONFIG_LEGACY_PTY_COUNT=256 679CONFIG_LEGACY_PTY_COUNT=256
649# CONFIG_IPMI_HANDLER is not set 680# CONFIG_IPMI_HANDLER is not set
@@ -684,8 +715,8 @@ CONFIG_I2C_SH_MOBILE=y
684# Miscellaneous I2C Chip support 715# Miscellaneous I2C Chip support
685# 716#
686# CONFIG_DS1682 is not set 717# CONFIG_DS1682 is not set
687# CONFIG_AT24 is not set 718# CONFIG_EEPROM_AT24 is not set
688# CONFIG_SENSORS_EEPROM is not set 719# CONFIG_EEPROM_LEGACY is not set
689# CONFIG_SENSORS_PCF8574 is not set 720# CONFIG_SENSORS_PCF8574 is not set
690# CONFIG_PCF8575 is not set 721# CONFIG_PCF8575 is not set
691# CONFIG_SENSORS_PCA9539 is not set 722# CONFIG_SENSORS_PCA9539 is not set
@@ -697,17 +728,39 @@ CONFIG_I2C_SH_MOBILE=y
697# CONFIG_I2C_DEBUG_BUS is not set 728# CONFIG_I2C_DEBUG_BUS is not set
698# CONFIG_I2C_DEBUG_CHIP is not set 729# CONFIG_I2C_DEBUG_CHIP is not set
699# CONFIG_SPI is not set 730# CONFIG_SPI is not set
731CONFIG_ARCH_REQUIRE_GPIOLIB=y
732CONFIG_GPIOLIB=y
733# CONFIG_GPIO_SYSFS is not set
734
735#
736# Memory mapped GPIO expanders:
737#
738
739#
740# I2C GPIO expanders:
741#
742# CONFIG_GPIO_MAX732X is not set
743# CONFIG_GPIO_PCA953X is not set
744# CONFIG_GPIO_PCF857X is not set
745
746#
747# PCI GPIO expanders:
748#
749
750#
751# SPI GPIO expanders:
752#
700# CONFIG_W1 is not set 753# CONFIG_W1 is not set
701# CONFIG_POWER_SUPPLY is not set 754# CONFIG_POWER_SUPPLY is not set
702# CONFIG_HWMON is not set 755# CONFIG_HWMON is not set
703# CONFIG_THERMAL is not set 756# CONFIG_THERMAL is not set
704# CONFIG_THERMAL_HWMON is not set 757# CONFIG_THERMAL_HWMON is not set
705# CONFIG_WATCHDOG is not set 758# CONFIG_WATCHDOG is not set
759CONFIG_SSB_POSSIBLE=y
706 760
707# 761#
708# Sonics Silicon Backplane 762# Sonics Silicon Backplane
709# 763#
710CONFIG_SSB_POSSIBLE=y
711# CONFIG_SSB is not set 764# CONFIG_SSB is not set
712 765
713# 766#
@@ -716,10 +769,14 @@ CONFIG_SSB_POSSIBLE=y
716# CONFIG_MFD_CORE is not set 769# CONFIG_MFD_CORE is not set
717# CONFIG_MFD_SM501 is not set 770# CONFIG_MFD_SM501 is not set
718# CONFIG_HTC_PASIC3 is not set 771# CONFIG_HTC_PASIC3 is not set
772# CONFIG_TPS65010 is not set
773# CONFIG_TWL4030_CORE is not set
719# CONFIG_MFD_TMIO is not set 774# CONFIG_MFD_TMIO is not set
720# CONFIG_PMIC_DA903X is not set 775# CONFIG_PMIC_DA903X is not set
721# CONFIG_MFD_WM8400 is not set 776# CONFIG_MFD_WM8400 is not set
722# CONFIG_MFD_WM8350_I2C is not set 777# CONFIG_MFD_WM8350_I2C is not set
778# CONFIG_MFD_PCF50633 is not set
779# CONFIG_REGULATOR is not set
723 780
724# 781#
725# Multimedia devices 782# Multimedia devices
@@ -762,8 +819,11 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
762CONFIG_SOC_CAMERA=y 819CONFIG_SOC_CAMERA=y
763# CONFIG_SOC_CAMERA_MT9M001 is not set 820# CONFIG_SOC_CAMERA_MT9M001 is not set
764# CONFIG_SOC_CAMERA_MT9M111 is not set 821# CONFIG_SOC_CAMERA_MT9M111 is not set
822# CONFIG_SOC_CAMERA_MT9T031 is not set
765# CONFIG_SOC_CAMERA_MT9V022 is not set 823# CONFIG_SOC_CAMERA_MT9V022 is not set
766CONFIG_SOC_CAMERA_PLATFORM=y 824CONFIG_SOC_CAMERA_TW9910=y
825# CONFIG_SOC_CAMERA_PLATFORM is not set
826CONFIG_SOC_CAMERA_OV772X=y
767CONFIG_VIDEO_SH_MOBILE_CEU=y 827CONFIG_VIDEO_SH_MOBILE_CEU=y
768# CONFIG_RADIO_ADAPTERS is not set 828# CONFIG_RADIO_ADAPTERS is not set
769# CONFIG_DAB is not set 829# CONFIG_DAB is not set
@@ -806,7 +866,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
806# CONFIG_USB_GADGET_MUSB_HDRC is not set 866# CONFIG_USB_GADGET_MUSB_HDRC is not set
807 867
808# 868#
809# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 869# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
810# 870#
811CONFIG_USB_GADGET=y 871CONFIG_USB_GADGET=y
812# CONFIG_USB_GADGET_DEBUG_FILES is not set 872# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -821,11 +881,13 @@ CONFIG_USB_GADGET_SELECTED=y
821# CONFIG_USB_GADGET_PXA25X is not set 881# CONFIG_USB_GADGET_PXA25X is not set
822# CONFIG_USB_GADGET_PXA27X is not set 882# CONFIG_USB_GADGET_PXA27X is not set
823# CONFIG_USB_GADGET_S3C2410 is not set 883# CONFIG_USB_GADGET_S3C2410 is not set
884# CONFIG_USB_GADGET_IMX is not set
824CONFIG_USB_GADGET_M66592=y 885CONFIG_USB_GADGET_M66592=y
825CONFIG_USB_M66592=y 886CONFIG_USB_M66592=y
826CONFIG_SUPERH_BUILT_IN_M66592=y 887CONFIG_SUPERH_BUILT_IN_M66592=y
827# CONFIG_USB_GADGET_AMD5536UDC is not set 888# CONFIG_USB_GADGET_AMD5536UDC is not set
828# CONFIG_USB_GADGET_FSL_QE is not set 889# CONFIG_USB_GADGET_FSL_QE is not set
890# CONFIG_USB_GADGET_CI13XXX is not set
829# CONFIG_USB_GADGET_NET2280 is not set 891# CONFIG_USB_GADGET_NET2280 is not set
830# CONFIG_USB_GADGET_GOKU is not set 892# CONFIG_USB_GADGET_GOKU is not set
831# CONFIG_USB_GADGET_DUMMY_HCD is not set 893# CONFIG_USB_GADGET_DUMMY_HCD is not set
@@ -838,6 +900,11 @@ CONFIG_USB_G_SERIAL=y
838# CONFIG_USB_MIDI_GADGET is not set 900# CONFIG_USB_MIDI_GADGET is not set
839# CONFIG_USB_G_PRINTER is not set 901# CONFIG_USB_G_PRINTER is not set
840# CONFIG_USB_CDC_COMPOSITE is not set 902# CONFIG_USB_CDC_COMPOSITE is not set
903
904#
905# OTG and related infrastructure
906#
907# CONFIG_USB_GPIO_VBUS is not set
841# CONFIG_MMC is not set 908# CONFIG_MMC is not set
842# CONFIG_MEMSTICK is not set 909# CONFIG_MEMSTICK is not set
843# CONFIG_NEW_LEDS is not set 910# CONFIG_NEW_LEDS is not set
@@ -872,6 +939,7 @@ CONFIG_RTC_DRV_RS5C372=y
872# CONFIG_RTC_DRV_M41T80 is not set 939# CONFIG_RTC_DRV_M41T80 is not set
873# CONFIG_RTC_DRV_S35390A is not set 940# CONFIG_RTC_DRV_S35390A is not set
874# CONFIG_RTC_DRV_FM3130 is not set 941# CONFIG_RTC_DRV_FM3130 is not set
942# CONFIG_RTC_DRV_RX8581 is not set
875 943
876# 944#
877# SPI RTC drivers 945# SPI RTC drivers
@@ -915,6 +983,7 @@ CONFIG_UIO_PDRV_GENIRQ=y
915CONFIG_FILE_LOCKING=y 983CONFIG_FILE_LOCKING=y
916# CONFIG_XFS_FS is not set 984# CONFIG_XFS_FS is not set
917# CONFIG_OCFS2_FS is not set 985# CONFIG_OCFS2_FS is not set
986# CONFIG_BTRFS_FS is not set
918# CONFIG_DNOTIFY is not set 987# CONFIG_DNOTIFY is not set
919# CONFIG_INOTIFY is not set 988# CONFIG_INOTIFY is not set
920# CONFIG_QUOTA is not set 989# CONFIG_QUOTA is not set
@@ -948,10 +1017,7 @@ CONFIG_TMPFS=y
948# CONFIG_HUGETLBFS is not set 1017# CONFIG_HUGETLBFS is not set
949# CONFIG_HUGETLB_PAGE is not set 1018# CONFIG_HUGETLB_PAGE is not set
950# CONFIG_CONFIGFS_FS is not set 1019# CONFIG_CONFIGFS_FS is not set
951 1020CONFIG_MISC_FILESYSTEMS=y
952#
953# Miscellaneous filesystems
954#
955# CONFIG_ADFS_FS is not set 1021# CONFIG_ADFS_FS is not set
956# CONFIG_AFFS_FS is not set 1022# CONFIG_AFFS_FS is not set
957# CONFIG_HFS_FS is not set 1023# CONFIG_HFS_FS is not set
@@ -961,6 +1027,7 @@ CONFIG_TMPFS=y
961# CONFIG_EFS_FS is not set 1027# CONFIG_EFS_FS is not set
962# CONFIG_JFFS2_FS is not set 1028# CONFIG_JFFS2_FS is not set
963# CONFIG_CRAMFS is not set 1029# CONFIG_CRAMFS is not set
1030# CONFIG_SQUASHFS is not set
964# CONFIG_VXFS_FS is not set 1031# CONFIG_VXFS_FS is not set
965# CONFIG_MINIX_FS is not set 1032# CONFIG_MINIX_FS is not set
966# CONFIG_OMFS_FS is not set 1033# CONFIG_OMFS_FS is not set
@@ -1008,19 +1075,29 @@ CONFIG_FRAME_WARN=1024
1008CONFIG_DEBUG_FS=y 1075CONFIG_DEBUG_FS=y
1009# CONFIG_HEADERS_CHECK is not set 1076# CONFIG_HEADERS_CHECK is not set
1010# CONFIG_DEBUG_KERNEL is not set 1077# CONFIG_DEBUG_KERNEL is not set
1078CONFIG_STACKTRACE=y
1011# CONFIG_DEBUG_BUGVERBOSE is not set 1079# CONFIG_DEBUG_BUGVERBOSE is not set
1012# CONFIG_DEBUG_MEMORY_INIT is not set 1080# CONFIG_DEBUG_MEMORY_INIT is not set
1013# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1081# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1014# CONFIG_LATENCYTOP is not set 1082# CONFIG_LATENCYTOP is not set
1015CONFIG_NOP_TRACER=y 1083CONFIG_NOP_TRACER=y
1016CONFIG_HAVE_FTRACE=y 1084CONFIG_HAVE_FUNCTION_TRACER=y
1085CONFIG_HAVE_DYNAMIC_FTRACE=y
1086CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1087CONFIG_RING_BUFFER=y
1088CONFIG_TRACING=y
1089
1090#
1091# Tracers
1092#
1017# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1093# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1018# CONFIG_SAMPLES is not set 1094# CONFIG_SAMPLES is not set
1095CONFIG_HAVE_ARCH_KGDB=y
1019# CONFIG_SH_STANDARD_BIOS is not set 1096# CONFIG_SH_STANDARD_BIOS is not set
1020CONFIG_EARLY_SCIF_CONSOLE=y 1097CONFIG_EARLY_SCIF_CONSOLE=y
1021CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 1098CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1022CONFIG_EARLY_PRINTK=y 1099CONFIG_EARLY_PRINTK=y
1023# CONFIG_SH_KGDB is not set 1100# CONFIG_MORE_COMPILE_OPTIONS is not set
1024 1101
1025# 1102#
1026# Security options 1103# Security options
@@ -1035,12 +1112,13 @@ CONFIG_CRYPTO=y
1035# Crypto core or helper 1112# Crypto core or helper
1036# 1113#
1037# CONFIG_CRYPTO_FIPS is not set 1114# CONFIG_CRYPTO_FIPS is not set
1038CONFIG_CRYPTO_ALGAPI=y 1115CONFIG_CRYPTO_ALGAPI2=y
1039CONFIG_CRYPTO_AEAD=y 1116CONFIG_CRYPTO_AEAD2=y
1040CONFIG_CRYPTO_BLKCIPHER=y 1117CONFIG_CRYPTO_BLKCIPHER2=y
1041CONFIG_CRYPTO_HASH=y 1118CONFIG_CRYPTO_HASH2=y
1042CONFIG_CRYPTO_RNG=y 1119CONFIG_CRYPTO_RNG2=y
1043CONFIG_CRYPTO_MANAGER=y 1120CONFIG_CRYPTO_MANAGER=y
1121CONFIG_CRYPTO_MANAGER2=y
1044# CONFIG_CRYPTO_GF128MUL is not set 1122# CONFIG_CRYPTO_GF128MUL is not set
1045# CONFIG_CRYPTO_NULL is not set 1123# CONFIG_CRYPTO_NULL is not set
1046# CONFIG_CRYPTO_CRYPTD is not set 1124# CONFIG_CRYPTO_CRYPTD is not set
@@ -1123,6 +1201,7 @@ CONFIG_CRYPTO_MANAGER=y
1123# Library routines 1201# Library routines
1124# 1202#
1125CONFIG_BITREVERSE=y 1203CONFIG_BITREVERSE=y
1204CONFIG_GENERIC_FIND_LAST_BIT=y
1126# CONFIG_CRC_CCITT is not set 1205# CONFIG_CRC_CCITT is not set
1127# CONFIG_CRC16 is not set 1206# CONFIG_CRC16 is not set
1128CONFIG_CRC_T10DIF=y 1207CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig
index 2e65149e9502..65b01a9e5934 100644
--- a/arch/sh/configs/r7780mp_defconfig
+++ b/arch/sh/configs/r7780mp_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 20:03:46 2008 4# Fri Jan 9 17:10:19 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -85,6 +87,7 @@ CONFIG_SLAB=y
85# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
86# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
87CONFIG_PROFILING=y 89CONFIG_PROFILING=y
90CONFIG_TRACEPOINTS=y
88# CONFIG_MARKERS is not set 91# CONFIG_MARKERS is not set
89CONFIG_OPROFILE=m 92CONFIG_OPROFILE=m
90CONFIG_HAVE_OPROFILE=y 93CONFIG_HAVE_OPROFILE=y
@@ -96,7 +99,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
96CONFIG_HAVE_CLK=y 99CONFIG_HAVE_CLK=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y 100CONFIG_HAVE_GENERIC_DMA_COHERENT=y
98CONFIG_SLABINFO=y 101CONFIG_SLABINFO=y
99# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=0 102CONFIG_BASE_SMALL=0
101CONFIG_MODULES=y 103CONFIG_MODULES=y
102# CONFIG_MODULE_FORCE_LOAD is not set 104# CONFIG_MODULE_FORCE_LOAD is not set
@@ -104,11 +106,9 @@ CONFIG_MODULE_UNLOAD=y
104# CONFIG_MODULE_FORCE_UNLOAD is not set 106# CONFIG_MODULE_FORCE_UNLOAD is not set
105# CONFIG_MODVERSIONS is not set 107# CONFIG_MODVERSIONS is not set
106# CONFIG_MODULE_SRCVERSION_ALL is not set 108# CONFIG_MODULE_SRCVERSION_ALL is not set
107CONFIG_KMOD=y
108CONFIG_BLOCK=y 109CONFIG_BLOCK=y
109# CONFIG_LBD is not set 110# CONFIG_LBD is not set
110# CONFIG_BLK_DEV_IO_TRACE is not set 111# CONFIG_BLK_DEV_IO_TRACE is not set
111# CONFIG_LSF is not set
112# CONFIG_BLK_DEV_BSG is not set 112# CONFIG_BLK_DEV_BSG is not set
113# CONFIG_BLK_DEV_INTEGRITY is not set 113# CONFIG_BLK_DEV_INTEGRITY is not set
114 114
@@ -125,6 +125,10 @@ CONFIG_IOSCHED_NOOP=y
125CONFIG_DEFAULT_NOOP=y 125CONFIG_DEFAULT_NOOP=y
126CONFIG_DEFAULT_IOSCHED="noop" 126CONFIG_DEFAULT_IOSCHED="noop"
127CONFIG_CLASSIC_RCU=y 127CONFIG_CLASSIC_RCU=y
128# CONFIG_TREE_RCU is not set
129# CONFIG_PREEMPT_RCU is not set
130# CONFIG_TREE_RCU_TRACE is not set
131# CONFIG_PREEMPT_RCU_TRACE is not set
128# CONFIG_FREEZER is not set 132# CONFIG_FREEZER is not set
129 133
130# 134#
@@ -133,6 +137,7 @@ CONFIG_CLASSIC_RCU=y
133CONFIG_CPU_SH4=y 137CONFIG_CPU_SH4=y
134CONFIG_CPU_SH4A=y 138CONFIG_CPU_SH4A=y
135# CONFIG_CPU_SUBTYPE_SH7619 is not set 139# CONFIG_CPU_SUBTYPE_SH7619 is not set
140# CONFIG_CPU_SUBTYPE_SH7201 is not set
136# CONFIG_CPU_SUBTYPE_SH7203 is not set 141# CONFIG_CPU_SUBTYPE_SH7203 is not set
137# CONFIG_CPU_SUBTYPE_SH7206 is not set 142# CONFIG_CPU_SUBTYPE_SH7206 is not set
138# CONFIG_CPU_SUBTYPE_SH7263 is not set 143# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -203,7 +208,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
203CONFIG_SPARSEMEM_STATIC=y 208CONFIG_SPARSEMEM_STATIC=y
204CONFIG_PAGEFLAGS_EXTENDED=y 209CONFIG_PAGEFLAGS_EXTENDED=y
205CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
206# CONFIG_RESOURCES_64BIT is not set
207# CONFIG_PHYS_ADDR_T_64BIT is not set 211# CONFIG_PHYS_ADDR_T_64BIT is not set
208CONFIG_ZONE_DMA_FLAG=0 212CONFIG_ZONE_DMA_FLAG=0
209CONFIG_NR_QUICK=2 213CONFIG_NR_QUICK=2
@@ -284,7 +288,6 @@ CONFIG_KEXEC=y
284# CONFIG_PREEMPT_NONE is not set 288# CONFIG_PREEMPT_NONE is not set
285# CONFIG_PREEMPT_VOLUNTARY is not set 289# CONFIG_PREEMPT_VOLUNTARY is not set
286CONFIG_PREEMPT=y 290CONFIG_PREEMPT=y
287# CONFIG_PREEMPT_RCU is not set
288CONFIG_GUSA=y 291CONFIG_GUSA=y
289 292
290# 293#
@@ -302,6 +305,7 @@ CONFIG_PCI=y
302CONFIG_SH_PCIDMA_NONCOHERENT=y 305CONFIG_SH_PCIDMA_NONCOHERENT=y
303CONFIG_PCI_AUTO=y 306CONFIG_PCI_AUTO=y
304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 307CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
308# CONFIG_PCIEPORTBUS is not set
305# CONFIG_ARCH_SUPPORTS_MSI is not set 309# CONFIG_ARCH_SUPPORTS_MSI is not set
306CONFIG_PCI_LEGACY=y 310CONFIG_PCI_LEGACY=y
307# CONFIG_PCI_DEBUG is not set 311# CONFIG_PCI_DEBUG is not set
@@ -315,11 +319,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 319# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 320# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 321# CONFIG_BINFMT_MISC is not set
322
323#
324# Power management options (EXPERIMENTAL)
325#
326# CONFIG_PM is not set
327# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 328CONFIG_NET=y
319 329
320# 330#
321# Networking options 331# Networking options
322# 332#
333CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 334CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 335# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 336CONFIG_UNIX=y
@@ -382,6 +393,7 @@ CONFIG_LLC=m
382# CONFIG_ECONET is not set 393# CONFIG_ECONET is not set
383# CONFIG_WAN_ROUTER is not set 394# CONFIG_WAN_ROUTER is not set
384# CONFIG_NET_SCHED is not set 395# CONFIG_NET_SCHED is not set
396# CONFIG_DCB is not set
385 397
386# 398#
387# Network testing 399# Network testing
@@ -398,8 +410,8 @@ CONFIG_WIRELESS=y
398# CONFIG_WIRELESS_OLD_REGULATORY is not set 410# CONFIG_WIRELESS_OLD_REGULATORY is not set
399CONFIG_WIRELESS_EXT=y 411CONFIG_WIRELESS_EXT=y
400CONFIG_WIRELESS_EXT_SYSFS=y 412CONFIG_WIRELESS_EXT_SYSFS=y
413# CONFIG_LIB80211 is not set
401# CONFIG_MAC80211 is not set 414# CONFIG_MAC80211 is not set
402# CONFIG_IEEE80211 is not set
403# CONFIG_RFKILL is not set 415# CONFIG_RFKILL is not set
404# CONFIG_NET_9P is not set 416# CONFIG_NET_9P is not set
405 417
@@ -442,8 +454,10 @@ CONFIG_MISC_DEVICES=y
442CONFIG_EEPROM_93CX6=y 454CONFIG_EEPROM_93CX6=y
443# CONFIG_SGI_IOC4 is not set 455# CONFIG_SGI_IOC4 is not set
444# CONFIG_TIFM_CORE is not set 456# CONFIG_TIFM_CORE is not set
457# CONFIG_ICS932S401 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 458# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_HP_ILO is not set 459# CONFIG_HP_ILO is not set
460# CONFIG_C2PORT is not set
447CONFIG_HAVE_IDE=y 461CONFIG_HAVE_IDE=y
448# CONFIG_IDE is not set 462# CONFIG_IDE is not set
449 463
@@ -486,6 +500,7 @@ CONFIG_SCSI_WAIT_SCAN=m
486# CONFIG_SCSI_SRP_ATTRS is not set 500# CONFIG_SCSI_SRP_ATTRS is not set
487CONFIG_SCSI_LOWLEVEL=y 501CONFIG_SCSI_LOWLEVEL=y
488# CONFIG_ISCSI_TCP is not set 502# CONFIG_ISCSI_TCP is not set
503# CONFIG_SCSI_CXGB3_ISCSI is not set
489# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
490# CONFIG_SCSI_3W_9XXX is not set 505# CONFIG_SCSI_3W_9XXX is not set
491# CONFIG_SCSI_ACARD is not set 506# CONFIG_SCSI_ACARD is not set
@@ -499,6 +514,8 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_MEGARAID_LEGACY is not set 514# CONFIG_MEGARAID_LEGACY is not set
500# CONFIG_MEGARAID_SAS is not set 515# CONFIG_MEGARAID_SAS is not set
501# CONFIG_SCSI_HPTIOP is not set 516# CONFIG_SCSI_HPTIOP is not set
517# CONFIG_LIBFC is not set
518# CONFIG_FCOE is not set
502# CONFIG_SCSI_DMX3191D is not set 519# CONFIG_SCSI_DMX3191D is not set
503# CONFIG_SCSI_FUTURE_DOMAIN is not set 520# CONFIG_SCSI_FUTURE_DOMAIN is not set
504# CONFIG_SCSI_IPS is not set 521# CONFIG_SCSI_IPS is not set
@@ -611,6 +628,7 @@ CONFIG_AX88796_93CX6=y
611# CONFIG_NET_VENDOR_3COM is not set 628# CONFIG_NET_VENDOR_3COM is not set
612# CONFIG_SMC91X is not set 629# CONFIG_SMC91X is not set
613# CONFIG_SMC911X is not set 630# CONFIG_SMC911X is not set
631# CONFIG_SMSC911X is not set
614# CONFIG_NET_TULIP is not set 632# CONFIG_NET_TULIP is not set
615# CONFIG_HP100 is not set 633# CONFIG_HP100 is not set
616# CONFIG_IBM_NEW_EMAC_ZMII is not set 634# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -626,7 +644,6 @@ CONFIG_PCNET32=m
626# CONFIG_ADAPTEC_STARFIRE is not set 644# CONFIG_ADAPTEC_STARFIRE is not set
627# CONFIG_B44 is not set 645# CONFIG_B44 is not set
628# CONFIG_FORCEDETH is not set 646# CONFIG_FORCEDETH is not set
629# CONFIG_EEPRO100 is not set
630# CONFIG_E100 is not set 647# CONFIG_E100 is not set
631# CONFIG_FEALNX is not set 648# CONFIG_FEALNX is not set
632# CONFIG_NATSEMI is not set 649# CONFIG_NATSEMI is not set
@@ -640,6 +657,7 @@ CONFIG_8139TOO_8129=y
640# CONFIG_R6040 is not set 657# CONFIG_R6040 is not set
641# CONFIG_SIS900 is not set 658# CONFIG_SIS900 is not set
642# CONFIG_EPIC100 is not set 659# CONFIG_EPIC100 is not set
660# CONFIG_SMSC9420 is not set
643# CONFIG_SUNDANCE is not set 661# CONFIG_SUNDANCE is not set
644# CONFIG_TLAN is not set 662# CONFIG_TLAN is not set
645CONFIG_VIA_RHINE=m 663CONFIG_VIA_RHINE=m
@@ -669,6 +687,7 @@ CONFIG_R8169=y
669# CONFIG_JME is not set 687# CONFIG_JME is not set
670CONFIG_NETDEV_10000=y 688CONFIG_NETDEV_10000=y
671# CONFIG_CHELSIO_T1 is not set 689# CONFIG_CHELSIO_T1 is not set
690CONFIG_CHELSIO_T3_DEPENDS=y
672# CONFIG_CHELSIO_T3 is not set 691# CONFIG_CHELSIO_T3 is not set
673# CONFIG_ENIC is not set 692# CONFIG_ENIC is not set
674# CONFIG_IXGBE is not set 693# CONFIG_IXGBE is not set
@@ -677,6 +696,7 @@ CONFIG_NETDEV_10000=y
677# CONFIG_MYRI10GE is not set 696# CONFIG_MYRI10GE is not set
678# CONFIG_NETXEN_NIC is not set 697# CONFIG_NETXEN_NIC is not set
679# CONFIG_NIU is not set 698# CONFIG_NIU is not set
699# CONFIG_MLX4_EN is not set
680# CONFIG_MLX4_CORE is not set 700# CONFIG_MLX4_CORE is not set
681# CONFIG_TEHUTI is not set 701# CONFIG_TEHUTI is not set
682# CONFIG_BNX2X is not set 702# CONFIG_BNX2X is not set
@@ -771,6 +791,7 @@ CONFIG_SERIAL_CORE=y
771CONFIG_SERIAL_CORE_CONSOLE=y 791CONFIG_SERIAL_CORE_CONSOLE=y
772# CONFIG_SERIAL_JSM is not set 792# CONFIG_SERIAL_JSM is not set
773CONFIG_UNIX98_PTYS=y 793CONFIG_UNIX98_PTYS=y
794# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
774CONFIG_LEGACY_PTYS=y 795CONFIG_LEGACY_PTYS=y
775CONFIG_LEGACY_PTY_COUNT=256 796CONFIG_LEGACY_PTY_COUNT=256
776# CONFIG_IPMI_HANDLER is not set 797# CONFIG_IPMI_HANDLER is not set
@@ -836,8 +857,8 @@ CONFIG_I2C_HIGHLANDER=y
836# Miscellaneous I2C Chip support 857# Miscellaneous I2C Chip support
837# 858#
838# CONFIG_DS1682 is not set 859# CONFIG_DS1682 is not set
839# CONFIG_AT24 is not set 860# CONFIG_EEPROM_AT24 is not set
840# CONFIG_SENSORS_EEPROM is not set 861# CONFIG_EEPROM_LEGACY is not set
841# CONFIG_SENSORS_PCF8574 is not set 862# CONFIG_SENSORS_PCF8574 is not set
842# CONFIG_PCF8575 is not set 863# CONFIG_PCF8575 is not set
843# CONFIG_SENSORS_PCA9539 is not set 864# CONFIG_SENSORS_PCA9539 is not set
@@ -861,6 +882,7 @@ CONFIG_HWMON=y
861# CONFIG_SENSORS_ADM1029 is not set 882# CONFIG_SENSORS_ADM1029 is not set
862# CONFIG_SENSORS_ADM1031 is not set 883# CONFIG_SENSORS_ADM1031 is not set
863# CONFIG_SENSORS_ADM9240 is not set 884# CONFIG_SENSORS_ADM9240 is not set
885# CONFIG_SENSORS_ADT7462 is not set
864# CONFIG_SENSORS_ADT7470 is not set 886# CONFIG_SENSORS_ADT7470 is not set
865# CONFIG_SENSORS_ADT7473 is not set 887# CONFIG_SENSORS_ADT7473 is not set
866# CONFIG_SENSORS_ATXP1 is not set 888# CONFIG_SENSORS_ATXP1 is not set
@@ -909,11 +931,11 @@ CONFIG_HWMON=y
909CONFIG_THERMAL=y 931CONFIG_THERMAL=y
910# CONFIG_THERMAL_HWMON is not set 932# CONFIG_THERMAL_HWMON is not set
911# CONFIG_WATCHDOG is not set 933# CONFIG_WATCHDOG is not set
934CONFIG_SSB_POSSIBLE=y
912 935
913# 936#
914# Sonics Silicon Backplane 937# Sonics Silicon Backplane
915# 938#
916CONFIG_SSB_POSSIBLE=y
917# CONFIG_SSB is not set 939# CONFIG_SSB is not set
918 940
919# 941#
@@ -922,9 +944,12 @@ CONFIG_SSB_POSSIBLE=y
922# CONFIG_MFD_CORE is not set 944# CONFIG_MFD_CORE is not set
923# CONFIG_MFD_SM501 is not set 945# CONFIG_MFD_SM501 is not set
924# CONFIG_HTC_PASIC3 is not set 946# CONFIG_HTC_PASIC3 is not set
947# CONFIG_TWL4030_CORE is not set
925# CONFIG_MFD_TMIO is not set 948# CONFIG_MFD_TMIO is not set
949# CONFIG_PMIC_DA903X is not set
926# CONFIG_MFD_WM8400 is not set 950# CONFIG_MFD_WM8400 is not set
927# CONFIG_MFD_WM8350_I2C is not set 951# CONFIG_MFD_WM8350_I2C is not set
952# CONFIG_REGULATOR is not set
928 953
929# 954#
930# Multimedia devices 955# Multimedia devices
@@ -982,9 +1007,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
982# 1007#
983 1008
984# 1009#
985# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1010# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
986# 1011#
987# CONFIG_USB_GADGET is not set 1012# CONFIG_USB_GADGET is not set
1013# CONFIG_UWB is not set
988# CONFIG_MMC is not set 1014# CONFIG_MMC is not set
989# CONFIG_MEMSTICK is not set 1015# CONFIG_MEMSTICK is not set
990# CONFIG_NEW_LEDS is not set 1016# CONFIG_NEW_LEDS is not set
@@ -1020,6 +1046,7 @@ CONFIG_RTC_DRV_RS5C372=y
1020# CONFIG_RTC_DRV_M41T80 is not set 1046# CONFIG_RTC_DRV_M41T80 is not set
1021# CONFIG_RTC_DRV_S35390A is not set 1047# CONFIG_RTC_DRV_S35390A is not set
1022# CONFIG_RTC_DRV_FM3130 is not set 1048# CONFIG_RTC_DRV_FM3130 is not set
1049# CONFIG_RTC_DRV_RX8581 is not set
1023 1050
1024# 1051#
1025# SPI RTC drivers 1052# SPI RTC drivers
@@ -1106,10 +1133,7 @@ CONFIG_TMPFS=y
1106CONFIG_HUGETLBFS=y 1133CONFIG_HUGETLBFS=y
1107CONFIG_HUGETLB_PAGE=y 1134CONFIG_HUGETLB_PAGE=y
1108CONFIG_CONFIGFS_FS=m 1135CONFIG_CONFIGFS_FS=m
1109 1136CONFIG_MISC_FILESYSTEMS=y
1110#
1111# Miscellaneous filesystems
1112#
1113# CONFIG_ADFS_FS is not set 1137# CONFIG_ADFS_FS is not set
1114# CONFIG_AFFS_FS is not set 1138# CONFIG_AFFS_FS is not set
1115# CONFIG_HFS_FS is not set 1139# CONFIG_HFS_FS is not set
@@ -1228,6 +1252,7 @@ CONFIG_SCHED_DEBUG=y
1228# CONFIG_LOCK_STAT is not set 1252# CONFIG_LOCK_STAT is not set
1229# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1253# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1230# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1254# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1255CONFIG_STACKTRACE=y
1231# CONFIG_DEBUG_KOBJECT is not set 1256# CONFIG_DEBUG_KOBJECT is not set
1232CONFIG_DEBUG_BUGVERBOSE=y 1257CONFIG_DEBUG_BUGVERBOSE=y
1233CONFIG_DEBUG_INFO=y 1258CONFIG_DEBUG_INFO=y
@@ -1236,6 +1261,7 @@ CONFIG_DEBUG_INFO=y
1236# CONFIG_DEBUG_MEMORY_INIT is not set 1261# CONFIG_DEBUG_MEMORY_INIT is not set
1237# CONFIG_DEBUG_LIST is not set 1262# CONFIG_DEBUG_LIST is not set
1238# CONFIG_DEBUG_SG is not set 1263# CONFIG_DEBUG_SG is not set
1264# CONFIG_DEBUG_NOTIFIERS is not set
1239# CONFIG_FRAME_POINTER is not set 1265# CONFIG_FRAME_POINTER is not set
1240# CONFIG_RCU_TORTURE_TEST is not set 1266# CONFIG_RCU_TORTURE_TEST is not set
1241# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1267# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1244,16 +1270,28 @@ CONFIG_DEBUG_INFO=y
1244# CONFIG_FAULT_INJECTION is not set 1270# CONFIG_FAULT_INJECTION is not set
1245# CONFIG_LATENCYTOP is not set 1271# CONFIG_LATENCYTOP is not set
1246CONFIG_NOP_TRACER=y 1272CONFIG_NOP_TRACER=y
1247CONFIG_HAVE_FTRACE=y 1273CONFIG_HAVE_FUNCTION_TRACER=y
1248# CONFIG_FTRACE is not set 1274CONFIG_HAVE_DYNAMIC_FTRACE=y
1275CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1276CONFIG_RING_BUFFER=y
1277CONFIG_TRACING=y
1278
1279#
1280# Tracers
1281#
1282# CONFIG_FUNCTION_TRACER is not set
1249# CONFIG_IRQSOFF_TRACER is not set 1283# CONFIG_IRQSOFF_TRACER is not set
1250# CONFIG_PREEMPT_TRACER is not set 1284# CONFIG_PREEMPT_TRACER is not set
1251# CONFIG_SCHED_TRACER is not set 1285# CONFIG_SCHED_TRACER is not set
1252# CONFIG_CONTEXT_SWITCH_TRACER is not set 1286# CONFIG_CONTEXT_SWITCH_TRACER is not set
1253# CONFIG_BOOT_TRACER is not set 1287# CONFIG_BOOT_TRACER is not set
1288# CONFIG_TRACE_BRANCH_PROFILING is not set
1254# CONFIG_STACK_TRACER is not set 1289# CONFIG_STACK_TRACER is not set
1290# CONFIG_FTRACE_STARTUP_TEST is not set
1255# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1291# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1256# CONFIG_SAMPLES is not set 1292# CONFIG_SAMPLES is not set
1293CONFIG_HAVE_ARCH_KGDB=y
1294# CONFIG_KGDB is not set
1257CONFIG_SH_STANDARD_BIOS=y 1295CONFIG_SH_STANDARD_BIOS=y
1258# CONFIG_EARLY_SCIF_CONSOLE is not set 1296# CONFIG_EARLY_SCIF_CONSOLE is not set
1259CONFIG_EARLY_PRINTK=y 1297CONFIG_EARLY_PRINTK=y
@@ -1262,7 +1300,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1262# CONFIG_DEBUG_STACK_USAGE is not set 1300# CONFIG_DEBUG_STACK_USAGE is not set
1263# CONFIG_4KSTACKS is not set 1301# CONFIG_4KSTACKS is not set
1264# CONFIG_IRQSTACKS is not set 1302# CONFIG_IRQSTACKS is not set
1265# CONFIG_SH_KGDB is not set 1303CONFIG_DUMP_CODE=y
1304# CONFIG_SH_NO_BSS_INIT is not set
1305# CONFIG_MORE_COMPILE_OPTIONS is not set
1266 1306
1267# 1307#
1268# Security options 1308# Security options
@@ -1278,11 +1318,15 @@ CONFIG_CRYPTO=y
1278# 1318#
1279# CONFIG_CRYPTO_FIPS is not set 1319# CONFIG_CRYPTO_FIPS is not set
1280CONFIG_CRYPTO_ALGAPI=y 1320CONFIG_CRYPTO_ALGAPI=y
1281CONFIG_CRYPTO_AEAD=y 1321CONFIG_CRYPTO_ALGAPI2=y
1322CONFIG_CRYPTO_AEAD2=y
1282CONFIG_CRYPTO_BLKCIPHER=y 1323CONFIG_CRYPTO_BLKCIPHER=y
1324CONFIG_CRYPTO_BLKCIPHER2=y
1283CONFIG_CRYPTO_HASH=y 1325CONFIG_CRYPTO_HASH=y
1284CONFIG_CRYPTO_RNG=y 1326CONFIG_CRYPTO_HASH2=y
1327CONFIG_CRYPTO_RNG2=y
1285CONFIG_CRYPTO_MANAGER=y 1328CONFIG_CRYPTO_MANAGER=y
1329CONFIG_CRYPTO_MANAGER2=y
1286# CONFIG_CRYPTO_GF128MUL is not set 1330# CONFIG_CRYPTO_GF128MUL is not set
1287# CONFIG_CRYPTO_NULL is not set 1331# CONFIG_CRYPTO_NULL is not set
1288# CONFIG_CRYPTO_CRYPTD is not set 1332# CONFIG_CRYPTO_CRYPTD is not set
@@ -1366,6 +1410,7 @@ CONFIG_CRYPTO_HW=y
1366# Library routines 1410# Library routines
1367# 1411#
1368CONFIG_BITREVERSE=y 1412CONFIG_BITREVERSE=y
1413CONFIG_GENERIC_FIND_LAST_BIT=y
1369# CONFIG_CRC_CCITT is not set 1414# CONFIG_CRC_CCITT is not set
1370# CONFIG_CRC16 is not set 1415# CONFIG_CRC16 is not set
1371CONFIG_CRC_T10DIF=y 1416CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig
index 043a8a509e09..8defaa5f13b9 100644
--- a/arch/sh/configs/r7785rp_defconfig
+++ b/arch/sh/configs/r7785rp_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 16:25:30 2008 4# Fri Jan 9 17:14:41 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -13,9 +13,11 @@ CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
21CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
@@ -63,6 +65,7 @@ CONFIG_UID16=y
63# CONFIG_SYSCTL_SYSCALL is not set 65# CONFIG_SYSCTL_SYSCALL is not set
64CONFIG_KALLSYMS=y 66CONFIG_KALLSYMS=y
65CONFIG_KALLSYMS_ALL=y 67CONFIG_KALLSYMS_ALL=y
68CONFIG_KALLSYMS_STRIP_GENERATED=y
66# CONFIG_KALLSYMS_EXTRA_PASS is not set 69# CONFIG_KALLSYMS_EXTRA_PASS is not set
67CONFIG_HOTPLUG=y 70CONFIG_HOTPLUG=y
68CONFIG_PRINTK=y 71CONFIG_PRINTK=y
@@ -84,6 +87,7 @@ CONFIG_SLAB=y
84# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
86CONFIG_PROFILING=y 89CONFIG_PROFILING=y
90CONFIG_TRACEPOINTS=y
87# CONFIG_MARKERS is not set 91# CONFIG_MARKERS is not set
88CONFIG_OPROFILE=y 92CONFIG_OPROFILE=y
89CONFIG_HAVE_OPROFILE=y 93CONFIG_HAVE_OPROFILE=y
@@ -97,7 +101,6 @@ CONFIG_HAVE_CLK=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y 101CONFIG_HAVE_GENERIC_DMA_COHERENT=y
98CONFIG_SLABINFO=y 102CONFIG_SLABINFO=y
99CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
100# CONFIG_TINY_SHMEM is not set
101CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
102CONFIG_MODULES=y 105CONFIG_MODULES=y
103# CONFIG_MODULE_FORCE_LOAD is not set 106# CONFIG_MODULE_FORCE_LOAD is not set
@@ -105,11 +108,9 @@ CONFIG_MODULE_UNLOAD=y
105# CONFIG_MODULE_FORCE_UNLOAD is not set 108# CONFIG_MODULE_FORCE_UNLOAD is not set
106# CONFIG_MODVERSIONS is not set 109# CONFIG_MODVERSIONS is not set
107# CONFIG_MODULE_SRCVERSION_ALL is not set 110# CONFIG_MODULE_SRCVERSION_ALL is not set
108CONFIG_KMOD=y
109CONFIG_BLOCK=y 111CONFIG_BLOCK=y
110# CONFIG_LBD is not set 112# CONFIG_LBD is not set
111# CONFIG_BLK_DEV_IO_TRACE is not set 113# CONFIG_BLK_DEV_IO_TRACE is not set
112# CONFIG_LSF is not set
113# CONFIG_BLK_DEV_BSG is not set 114# CONFIG_BLK_DEV_BSG is not set
114# CONFIG_BLK_DEV_INTEGRITY is not set 115# CONFIG_BLK_DEV_INTEGRITY is not set
115 116
@@ -126,6 +127,11 @@ CONFIG_IOSCHED_NOOP=y
126CONFIG_DEFAULT_NOOP=y 127CONFIG_DEFAULT_NOOP=y
127CONFIG_DEFAULT_IOSCHED="noop" 128CONFIG_DEFAULT_IOSCHED="noop"
128# CONFIG_CLASSIC_RCU is not set 129# CONFIG_CLASSIC_RCU is not set
130# CONFIG_TREE_RCU is not set
131CONFIG_PREEMPT_RCU=y
132CONFIG_RCU_TRACE=y
133# CONFIG_TREE_RCU_TRACE is not set
134CONFIG_PREEMPT_RCU_TRACE=y
129# CONFIG_FREEZER is not set 135# CONFIG_FREEZER is not set
130 136
131# 137#
@@ -135,6 +141,7 @@ CONFIG_CPU_SH4=y
135CONFIG_CPU_SH4A=y 141CONFIG_CPU_SH4A=y
136CONFIG_CPU_SHX2=y 142CONFIG_CPU_SHX2=y
137# CONFIG_CPU_SUBTYPE_SH7619 is not set 143# CONFIG_CPU_SUBTYPE_SH7619 is not set
144# CONFIG_CPU_SUBTYPE_SH7201 is not set
138# CONFIG_CPU_SUBTYPE_SH7203 is not set 145# CONFIG_CPU_SUBTYPE_SH7203 is not set
139# CONFIG_CPU_SUBTYPE_SH7206 is not set 146# CONFIG_CPU_SUBTYPE_SH7206 is not set
140# CONFIG_CPU_SUBTYPE_SH7263 is not set 147# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -211,7 +218,6 @@ CONFIG_SPARSEMEM_STATIC=y
211CONFIG_PAGEFLAGS_EXTENDED=y 218CONFIG_PAGEFLAGS_EXTENDED=y
212CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
213CONFIG_MIGRATION=y 220CONFIG_MIGRATION=y
214# CONFIG_RESOURCES_64BIT is not set
215# CONFIG_PHYS_ADDR_T_64BIT is not set 221# CONFIG_PHYS_ADDR_T_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=0 222CONFIG_ZONE_DMA_FLAG=0
217CONFIG_NR_QUICK=2 223CONFIG_NR_QUICK=2
@@ -307,8 +313,6 @@ CONFIG_KEXEC=y
307# CONFIG_PREEMPT_NONE is not set 313# CONFIG_PREEMPT_NONE is not set
308# CONFIG_PREEMPT_VOLUNTARY is not set 314# CONFIG_PREEMPT_VOLUNTARY is not set
309CONFIG_PREEMPT=y 315CONFIG_PREEMPT=y
310CONFIG_PREEMPT_RCU=y
311CONFIG_RCU_TRACE=y
312CONFIG_GUSA=y 316CONFIG_GUSA=y
313 317
314# 318#
@@ -326,6 +330,7 @@ CONFIG_PCI=y
326CONFIG_SH_PCIDMA_NONCOHERENT=y 330CONFIG_SH_PCIDMA_NONCOHERENT=y
327CONFIG_PCI_AUTO=y 331CONFIG_PCI_AUTO=y
328CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 332CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
333# CONFIG_PCIEPORTBUS is not set
329# CONFIG_ARCH_SUPPORTS_MSI is not set 334# CONFIG_ARCH_SUPPORTS_MSI is not set
330# CONFIG_PCI_LEGACY is not set 335# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_DEBUG is not set 336# CONFIG_PCI_DEBUG is not set
@@ -339,11 +344,18 @@ CONFIG_BINFMT_ELF=y
339# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 344# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
340# CONFIG_HAVE_AOUT is not set 345# CONFIG_HAVE_AOUT is not set
341CONFIG_BINFMT_MISC=m 346CONFIG_BINFMT_MISC=m
347
348#
349# Power management options (EXPERIMENTAL)
350#
351# CONFIG_PM is not set
352# CONFIG_CPU_IDLE is not set
342CONFIG_NET=y 353CONFIG_NET=y
343 354
344# 355#
345# Networking options 356# Networking options
346# 357#
358CONFIG_COMPAT_NET_DEV_OPS=y
347CONFIG_PACKET=y 359CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set 360# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 361CONFIG_UNIX=y
@@ -406,6 +418,7 @@ CONFIG_LLC=m
406# CONFIG_ECONET is not set 418# CONFIG_ECONET is not set
407# CONFIG_WAN_ROUTER is not set 419# CONFIG_WAN_ROUTER is not set
408# CONFIG_NET_SCHED is not set 420# CONFIG_NET_SCHED is not set
421# CONFIG_DCB is not set
409 422
410# 423#
411# Network testing 424# Network testing
@@ -423,8 +436,8 @@ CONFIG_WIRELESS=y
423# CONFIG_WIRELESS_OLD_REGULATORY is not set 436# CONFIG_WIRELESS_OLD_REGULATORY is not set
424CONFIG_WIRELESS_EXT=y 437CONFIG_WIRELESS_EXT=y
425CONFIG_WIRELESS_EXT_SYSFS=y 438CONFIG_WIRELESS_EXT_SYSFS=y
439# CONFIG_LIB80211 is not set
426# CONFIG_MAC80211 is not set 440# CONFIG_MAC80211 is not set
427# CONFIG_IEEE80211 is not set
428# CONFIG_RFKILL is not set 441# CONFIG_RFKILL is not set
429# CONFIG_NET_9P is not set 442# CONFIG_NET_9P is not set
430 443
@@ -467,8 +480,10 @@ CONFIG_MISC_DEVICES=y
467CONFIG_EEPROM_93CX6=y 480CONFIG_EEPROM_93CX6=y
468# CONFIG_SGI_IOC4 is not set 481# CONFIG_SGI_IOC4 is not set
469# CONFIG_TIFM_CORE is not set 482# CONFIG_TIFM_CORE is not set
483# CONFIG_ICS932S401 is not set
470# CONFIG_ENCLOSURE_SERVICES is not set 484# CONFIG_ENCLOSURE_SERVICES is not set
471# CONFIG_HP_ILO is not set 485# CONFIG_HP_ILO is not set
486# CONFIG_C2PORT is not set
472CONFIG_HAVE_IDE=y 487CONFIG_HAVE_IDE=y
473# CONFIG_IDE is not set 488# CONFIG_IDE is not set
474 489
@@ -511,6 +526,7 @@ CONFIG_SCSI_WAIT_SCAN=m
511# CONFIG_SCSI_SRP_ATTRS is not set 526# CONFIG_SCSI_SRP_ATTRS is not set
512CONFIG_SCSI_LOWLEVEL=y 527CONFIG_SCSI_LOWLEVEL=y
513# CONFIG_ISCSI_TCP is not set 528# CONFIG_ISCSI_TCP is not set
529# CONFIG_SCSI_CXGB3_ISCSI is not set
514# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 530# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
515# CONFIG_SCSI_3W_9XXX is not set 531# CONFIG_SCSI_3W_9XXX is not set
516# CONFIG_SCSI_ACARD is not set 532# CONFIG_SCSI_ACARD is not set
@@ -524,6 +540,8 @@ CONFIG_SCSI_LOWLEVEL=y
524# CONFIG_MEGARAID_LEGACY is not set 540# CONFIG_MEGARAID_LEGACY is not set
525# CONFIG_MEGARAID_SAS is not set 541# CONFIG_MEGARAID_SAS is not set
526# CONFIG_SCSI_HPTIOP is not set 542# CONFIG_SCSI_HPTIOP is not set
543# CONFIG_LIBFC is not set
544# CONFIG_FCOE is not set
527# CONFIG_SCSI_DMX3191D is not set 545# CONFIG_SCSI_DMX3191D is not set
528# CONFIG_SCSI_FUTURE_DOMAIN is not set 546# CONFIG_SCSI_FUTURE_DOMAIN is not set
529# CONFIG_SCSI_IPS is not set 547# CONFIG_SCSI_IPS is not set
@@ -636,6 +654,7 @@ CONFIG_AX88796_93CX6=y
636# CONFIG_NET_VENDOR_3COM is not set 654# CONFIG_NET_VENDOR_3COM is not set
637# CONFIG_SMC91X is not set 655# CONFIG_SMC91X is not set
638# CONFIG_SMC911X is not set 656# CONFIG_SMC911X is not set
657# CONFIG_SMSC911X is not set
639# CONFIG_NET_TULIP is not set 658# CONFIG_NET_TULIP is not set
640# CONFIG_HP100 is not set 659# CONFIG_HP100 is not set
641# CONFIG_IBM_NEW_EMAC_ZMII is not set 660# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -671,6 +690,7 @@ CONFIG_R8169=y
671# CONFIG_JME is not set 690# CONFIG_JME is not set
672CONFIG_NETDEV_10000=y 691CONFIG_NETDEV_10000=y
673# CONFIG_CHELSIO_T1 is not set 692# CONFIG_CHELSIO_T1 is not set
693CONFIG_CHELSIO_T3_DEPENDS=y
674# CONFIG_CHELSIO_T3 is not set 694# CONFIG_CHELSIO_T3 is not set
675# CONFIG_ENIC is not set 695# CONFIG_ENIC is not set
676# CONFIG_IXGBE is not set 696# CONFIG_IXGBE is not set
@@ -679,6 +699,7 @@ CONFIG_NETDEV_10000=y
679# CONFIG_MYRI10GE is not set 699# CONFIG_MYRI10GE is not set
680# CONFIG_NETXEN_NIC is not set 700# CONFIG_NETXEN_NIC is not set
681# CONFIG_NIU is not set 701# CONFIG_NIU is not set
702# CONFIG_MLX4_EN is not set
682# CONFIG_MLX4_CORE is not set 703# CONFIG_MLX4_CORE is not set
683# CONFIG_TEHUTI is not set 704# CONFIG_TEHUTI is not set
684# CONFIG_BNX2X is not set 705# CONFIG_BNX2X is not set
@@ -732,6 +753,7 @@ CONFIG_KEYBOARD_ATKBD=y
732# CONFIG_KEYBOARD_XTKBD is not set 753# CONFIG_KEYBOARD_XTKBD is not set
733# CONFIG_KEYBOARD_NEWTON is not set 754# CONFIG_KEYBOARD_NEWTON is not set
734# CONFIG_KEYBOARD_STOWAWAY is not set 755# CONFIG_KEYBOARD_STOWAWAY is not set
756# CONFIG_KEYBOARD_GPIO is not set
735# CONFIG_KEYBOARD_SH_KEYSC is not set 757# CONFIG_KEYBOARD_SH_KEYSC is not set
736# CONFIG_INPUT_MOUSE is not set 758# CONFIG_INPUT_MOUSE is not set
737# CONFIG_INPUT_JOYSTICK is not set 759# CONFIG_INPUT_JOYSTICK is not set
@@ -773,6 +795,7 @@ CONFIG_SERIAL_CORE=y
773CONFIG_SERIAL_CORE_CONSOLE=y 795CONFIG_SERIAL_CORE_CONSOLE=y
774# CONFIG_SERIAL_JSM is not set 796# CONFIG_SERIAL_JSM is not set
775CONFIG_UNIX98_PTYS=y 797CONFIG_UNIX98_PTYS=y
798# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
776CONFIG_LEGACY_PTYS=y 799CONFIG_LEGACY_PTYS=y
777CONFIG_LEGACY_PTY_COUNT=256 800CONFIG_LEGACY_PTY_COUNT=256
778# CONFIG_IPMI_HANDLER is not set 801# CONFIG_IPMI_HANDLER is not set
@@ -812,6 +835,7 @@ CONFIG_I2C_HELPER_AUTO=y
812# 835#
813# I2C system bus drivers (mostly embedded / system-on-chip) 836# I2C system bus drivers (mostly embedded / system-on-chip)
814# 837#
838# CONFIG_I2C_GPIO is not set
815CONFIG_I2C_HIGHLANDER=y 839CONFIG_I2C_HIGHLANDER=y
816# CONFIG_I2C_OCORES is not set 840# CONFIG_I2C_OCORES is not set
817# CONFIG_I2C_SH_MOBILE is not set 841# CONFIG_I2C_SH_MOBILE is not set
@@ -838,8 +862,8 @@ CONFIG_I2C_HIGHLANDER=y
838# Miscellaneous I2C Chip support 862# Miscellaneous I2C Chip support
839# 863#
840# CONFIG_DS1682 is not set 864# CONFIG_DS1682 is not set
841# CONFIG_AT24 is not set 865# CONFIG_EEPROM_AT24 is not set
842# CONFIG_SENSORS_EEPROM is not set 866# CONFIG_EEPROM_LEGACY is not set
843# CONFIG_SENSORS_PCF8574 is not set 867# CONFIG_SENSORS_PCF8574 is not set
844# CONFIG_PCF8575 is not set 868# CONFIG_PCF8575 is not set
845# CONFIG_SENSORS_PCA9539 is not set 869# CONFIG_SENSORS_PCA9539 is not set
@@ -851,6 +875,30 @@ CONFIG_I2C_HIGHLANDER=y
851# CONFIG_I2C_DEBUG_BUS is not set 875# CONFIG_I2C_DEBUG_BUS is not set
852# CONFIG_I2C_DEBUG_CHIP is not set 876# CONFIG_I2C_DEBUG_CHIP is not set
853# CONFIG_SPI is not set 877# CONFIG_SPI is not set
878CONFIG_ARCH_REQUIRE_GPIOLIB=y
879CONFIG_GPIOLIB=y
880# CONFIG_DEBUG_GPIO is not set
881# CONFIG_GPIO_SYSFS is not set
882
883#
884# Memory mapped GPIO expanders:
885#
886
887#
888# I2C GPIO expanders:
889#
890# CONFIG_GPIO_MAX732X is not set
891# CONFIG_GPIO_PCA953X is not set
892# CONFIG_GPIO_PCF857X is not set
893
894#
895# PCI GPIO expanders:
896#
897# CONFIG_GPIO_BT8XX is not set
898
899#
900# SPI GPIO expanders:
901#
854# CONFIG_W1 is not set 902# CONFIG_W1 is not set
855# CONFIG_POWER_SUPPLY is not set 903# CONFIG_POWER_SUPPLY is not set
856CONFIG_HWMON=y 904CONFIG_HWMON=y
@@ -863,6 +911,7 @@ CONFIG_HWMON=y
863# CONFIG_SENSORS_ADM1029 is not set 911# CONFIG_SENSORS_ADM1029 is not set
864# CONFIG_SENSORS_ADM1031 is not set 912# CONFIG_SENSORS_ADM1031 is not set
865# CONFIG_SENSORS_ADM9240 is not set 913# CONFIG_SENSORS_ADM9240 is not set
914# CONFIG_SENSORS_ADT7462 is not set
866# CONFIG_SENSORS_ADT7470 is not set 915# CONFIG_SENSORS_ADT7470 is not set
867# CONFIG_SENSORS_ADT7473 is not set 916# CONFIG_SENSORS_ADT7473 is not set
868# CONFIG_SENSORS_ATXP1 is not set 917# CONFIG_SENSORS_ATXP1 is not set
@@ -911,11 +960,11 @@ CONFIG_HWMON=y
911# CONFIG_THERMAL is not set 960# CONFIG_THERMAL is not set
912# CONFIG_THERMAL_HWMON is not set 961# CONFIG_THERMAL_HWMON is not set
913# CONFIG_WATCHDOG is not set 962# CONFIG_WATCHDOG is not set
963CONFIG_SSB_POSSIBLE=y
914 964
915# 965#
916# Sonics Silicon Backplane 966# Sonics Silicon Backplane
917# 967#
918CONFIG_SSB_POSSIBLE=y
919# CONFIG_SSB is not set 968# CONFIG_SSB is not set
920 969
921# 970#
@@ -924,9 +973,13 @@ CONFIG_SSB_POSSIBLE=y
924# CONFIG_MFD_CORE is not set 973# CONFIG_MFD_CORE is not set
925# CONFIG_MFD_SM501 is not set 974# CONFIG_MFD_SM501 is not set
926# CONFIG_HTC_PASIC3 is not set 975# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TPS65010 is not set
977# CONFIG_TWL4030_CORE is not set
927# CONFIG_MFD_TMIO is not set 978# CONFIG_MFD_TMIO is not set
979# CONFIG_PMIC_DA903X is not set
928# CONFIG_MFD_WM8400 is not set 980# CONFIG_MFD_WM8400 is not set
929# CONFIG_MFD_WM8350_I2C is not set 981# CONFIG_MFD_WM8350_I2C is not set
982# CONFIG_REGULATOR is not set
930 983
931# 984#
932# Multimedia devices 985# Multimedia devices
@@ -954,15 +1007,16 @@ CONFIG_FB=y
954# CONFIG_FIRMWARE_EDID is not set 1007# CONFIG_FIRMWARE_EDID is not set
955# CONFIG_FB_DDC is not set 1008# CONFIG_FB_DDC is not set
956# CONFIG_FB_BOOT_VESA_SUPPORT is not set 1009# CONFIG_FB_BOOT_VESA_SUPPORT is not set
957CONFIG_FB_CFB_FILLRECT=m 1010# CONFIG_FB_CFB_FILLRECT is not set
958CONFIG_FB_CFB_COPYAREA=m 1011# CONFIG_FB_CFB_COPYAREA is not set
959CONFIG_FB_CFB_IMAGEBLIT=m 1012# CONFIG_FB_CFB_IMAGEBLIT is not set
960# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 1013# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
961# CONFIG_FB_SYS_FILLRECT is not set 1014CONFIG_FB_SYS_FILLRECT=m
962# CONFIG_FB_SYS_COPYAREA is not set 1015CONFIG_FB_SYS_COPYAREA=m
963# CONFIG_FB_SYS_IMAGEBLIT is not set 1016CONFIG_FB_SYS_IMAGEBLIT=m
964# CONFIG_FB_FOREIGN_ENDIAN is not set 1017# CONFIG_FB_FOREIGN_ENDIAN is not set
965# CONFIG_FB_SYS_FOPS is not set 1018CONFIG_FB_SYS_FOPS=m
1019CONFIG_FB_DEFERRED_IO=y
966# CONFIG_FB_SVGALIB is not set 1020# CONFIG_FB_SVGALIB is not set
967# CONFIG_FB_MACMODES is not set 1021# CONFIG_FB_MACMODES is not set
968# CONFIG_FB_BACKLIGHT is not set 1022# CONFIG_FB_BACKLIGHT is not set
@@ -1000,6 +1054,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
1000CONFIG_FB_SH_MOBILE_LCDC=m 1054CONFIG_FB_SH_MOBILE_LCDC=m
1001# CONFIG_FB_VIRTUAL is not set 1055# CONFIG_FB_VIRTUAL is not set
1002# CONFIG_FB_METRONOME is not set 1056# CONFIG_FB_METRONOME is not set
1057# CONFIG_FB_MB862XX is not set
1003# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1058# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1004 1059
1005# 1060#
@@ -1034,9 +1089,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1034# 1089#
1035 1090
1036# 1091#
1037# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1092# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1038# 1093#
1039# CONFIG_USB_GADGET is not set 1094# CONFIG_USB_GADGET is not set
1095# CONFIG_UWB is not set
1040# CONFIG_MMC is not set 1096# CONFIG_MMC is not set
1041# CONFIG_MEMSTICK is not set 1097# CONFIG_MEMSTICK is not set
1042# CONFIG_NEW_LEDS is not set 1098# CONFIG_NEW_LEDS is not set
@@ -1072,6 +1128,7 @@ CONFIG_RTC_DRV_RS5C372=y
1072# CONFIG_RTC_DRV_M41T80 is not set 1128# CONFIG_RTC_DRV_M41T80 is not set
1073# CONFIG_RTC_DRV_S35390A is not set 1129# CONFIG_RTC_DRV_S35390A is not set
1074# CONFIG_RTC_DRV_FM3130 is not set 1130# CONFIG_RTC_DRV_FM3130 is not set
1131# CONFIG_RTC_DRV_RX8581 is not set
1075 1132
1076# 1133#
1077# SPI RTC drivers 1134# SPI RTC drivers
@@ -1158,10 +1215,7 @@ CONFIG_TMPFS=y
1158CONFIG_HUGETLBFS=y 1215CONFIG_HUGETLBFS=y
1159CONFIG_HUGETLB_PAGE=y 1216CONFIG_HUGETLB_PAGE=y
1160CONFIG_CONFIGFS_FS=m 1217CONFIG_CONFIGFS_FS=m
1161 1218CONFIG_MISC_FILESYSTEMS=y
1162#
1163# Miscellaneous filesystems
1164#
1165# CONFIG_ADFS_FS is not set 1219# CONFIG_ADFS_FS is not set
1166# CONFIG_AFFS_FS is not set 1220# CONFIG_AFFS_FS is not set
1167# CONFIG_HFS_FS is not set 1221# CONFIG_HFS_FS is not set
@@ -1291,6 +1345,7 @@ CONFIG_DEBUG_INFO=y
1291# CONFIG_DEBUG_MEMORY_INIT is not set 1345# CONFIG_DEBUG_MEMORY_INIT is not set
1292# CONFIG_DEBUG_LIST is not set 1346# CONFIG_DEBUG_LIST is not set
1293# CONFIG_DEBUG_SG is not set 1347# CONFIG_DEBUG_SG is not set
1348# CONFIG_DEBUG_NOTIFIERS is not set
1294CONFIG_FRAME_POINTER=y 1349CONFIG_FRAME_POINTER=y
1295# CONFIG_RCU_TORTURE_TEST is not set 1350# CONFIG_RCU_TORTURE_TEST is not set
1296# CONFIG_KPROBES_SANITY_TEST is not set 1351# CONFIG_KPROBES_SANITY_TEST is not set
@@ -1300,16 +1355,28 @@ CONFIG_FRAME_POINTER=y
1300# CONFIG_FAULT_INJECTION is not set 1355# CONFIG_FAULT_INJECTION is not set
1301# CONFIG_LATENCYTOP is not set 1356# CONFIG_LATENCYTOP is not set
1302CONFIG_NOP_TRACER=y 1357CONFIG_NOP_TRACER=y
1303CONFIG_HAVE_FTRACE=y 1358CONFIG_HAVE_FUNCTION_TRACER=y
1304# CONFIG_FTRACE is not set 1359CONFIG_HAVE_DYNAMIC_FTRACE=y
1360CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1361CONFIG_RING_BUFFER=y
1362CONFIG_TRACING=y
1363
1364#
1365# Tracers
1366#
1367# CONFIG_FUNCTION_TRACER is not set
1305# CONFIG_IRQSOFF_TRACER is not set 1368# CONFIG_IRQSOFF_TRACER is not set
1306# CONFIG_PREEMPT_TRACER is not set 1369# CONFIG_PREEMPT_TRACER is not set
1307# CONFIG_SCHED_TRACER is not set 1370# CONFIG_SCHED_TRACER is not set
1308# CONFIG_CONTEXT_SWITCH_TRACER is not set 1371# CONFIG_CONTEXT_SWITCH_TRACER is not set
1309# CONFIG_BOOT_TRACER is not set 1372# CONFIG_BOOT_TRACER is not set
1373# CONFIG_TRACE_BRANCH_PROFILING is not set
1310# CONFIG_STACK_TRACER is not set 1374# CONFIG_STACK_TRACER is not set
1375# CONFIG_FTRACE_STARTUP_TEST is not set
1311# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1376# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1312# CONFIG_SAMPLES is not set 1377# CONFIG_SAMPLES is not set
1378CONFIG_HAVE_ARCH_KGDB=y
1379# CONFIG_KGDB is not set
1313CONFIG_SH_STANDARD_BIOS=y 1380CONFIG_SH_STANDARD_BIOS=y
1314# CONFIG_EARLY_SCIF_CONSOLE is not set 1381# CONFIG_EARLY_SCIF_CONSOLE is not set
1315CONFIG_EARLY_PRINTK=y 1382CONFIG_EARLY_PRINTK=y
@@ -1318,7 +1385,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1318CONFIG_DEBUG_STACK_USAGE=y 1385CONFIG_DEBUG_STACK_USAGE=y
1319CONFIG_4KSTACKS=y 1386CONFIG_4KSTACKS=y
1320# CONFIG_IRQSTACKS is not set 1387# CONFIG_IRQSTACKS is not set
1321# CONFIG_SH_KGDB is not set 1388CONFIG_DUMP_CODE=y
1389# CONFIG_SH_NO_BSS_INIT is not set
1390# CONFIG_MORE_COMPILE_OPTIONS is not set
1322 1391
1323# 1392#
1324# Security options 1393# Security options
@@ -1334,11 +1403,15 @@ CONFIG_CRYPTO=y
1334# 1403#
1335# CONFIG_CRYPTO_FIPS is not set 1404# CONFIG_CRYPTO_FIPS is not set
1336CONFIG_CRYPTO_ALGAPI=y 1405CONFIG_CRYPTO_ALGAPI=y
1337CONFIG_CRYPTO_AEAD=y 1406CONFIG_CRYPTO_ALGAPI2=y
1407CONFIG_CRYPTO_AEAD2=y
1338CONFIG_CRYPTO_BLKCIPHER=y 1408CONFIG_CRYPTO_BLKCIPHER=y
1409CONFIG_CRYPTO_BLKCIPHER2=y
1339CONFIG_CRYPTO_HASH=y 1410CONFIG_CRYPTO_HASH=y
1340CONFIG_CRYPTO_RNG=y 1411CONFIG_CRYPTO_HASH2=y
1412CONFIG_CRYPTO_RNG2=y
1341CONFIG_CRYPTO_MANAGER=y 1413CONFIG_CRYPTO_MANAGER=y
1414CONFIG_CRYPTO_MANAGER2=y
1342# CONFIG_CRYPTO_GF128MUL is not set 1415# CONFIG_CRYPTO_GF128MUL is not set
1343# CONFIG_CRYPTO_NULL is not set 1416# CONFIG_CRYPTO_NULL is not set
1344# CONFIG_CRYPTO_CRYPTD is not set 1417# CONFIG_CRYPTO_CRYPTD is not set
@@ -1422,6 +1495,7 @@ CONFIG_CRYPTO_HW=y
1422# Library routines 1495# Library routines
1423# 1496#
1424CONFIG_BITREVERSE=y 1497CONFIG_BITREVERSE=y
1498CONFIG_GENERIC_FIND_LAST_BIT=y
1425# CONFIG_CRC_CCITT is not set 1499# CONFIG_CRC_CCITT is not set
1426# CONFIG_CRC16 is not set 1500# CONFIG_CRC16 is not set
1427CONFIG_CRC_T10DIF=y 1501CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/rsk7201_defconfig b/arch/sh/configs/rsk7201_defconfig
index 014c18cbf46a..64ee69eef47c 100644
--- a/arch/sh/configs/rsk7201_defconfig
+++ b/arch/sh/configs/rsk7201_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.28-rc6 3# Linux kernel version: 2.6.28
4# Mon Dec 8 14:48:02 2008 4# Fri Jan 9 17:19:04 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -77,6 +77,7 @@ CONFIG_VM_EVENT_COUNTERS=y
77# CONFIG_SLUB is not set 77# CONFIG_SLUB is not set
78CONFIG_SLOB=y 78CONFIG_SLOB=y
79CONFIG_PROFILING=y 79CONFIG_PROFILING=y
80CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 81# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 82CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
@@ -87,18 +88,15 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
87CONFIG_HAVE_CLK=y 88CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 89CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90CONFIG_TINY_SHMEM=y
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
94# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
95# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
96# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
97CONFIG_KMOD=y
98CONFIG_BLOCK=y 97CONFIG_BLOCK=y
99# CONFIG_LBD is not set 98# CONFIG_LBD is not set
100# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
101# CONFIG_LSF is not set
102# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
103# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
104 102
@@ -115,6 +113,10 @@ CONFIG_IOSCHED_NOOP=y
115CONFIG_DEFAULT_NOOP=y 113CONFIG_DEFAULT_NOOP=y
116CONFIG_DEFAULT_IOSCHED="noop" 114CONFIG_DEFAULT_IOSCHED="noop"
117CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
118# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
119 121
120# 122#
@@ -185,7 +187,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
185CONFIG_SPARSEMEM_STATIC=y 187CONFIG_SPARSEMEM_STATIC=y
186CONFIG_PAGEFLAGS_EXTENDED=y 188CONFIG_PAGEFLAGS_EXTENDED=y
187CONFIG_SPLIT_PTLOCK_CPUS=4 189CONFIG_SPLIT_PTLOCK_CPUS=4
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 190# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 191CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 192CONFIG_NR_QUICK=2
@@ -563,7 +564,6 @@ CONFIG_RTC_DRV_SH=y
563# CONFIG_DMADEVICES is not set 564# CONFIG_DMADEVICES is not set
564# CONFIG_UIO is not set 565# CONFIG_UIO is not set
565# CONFIG_STAGING is not set 566# CONFIG_STAGING is not set
566CONFIG_STAGING_EXCLUDE_BUILD=y
567 567
568# 568#
569# File systems 569# File systems
@@ -606,10 +606,7 @@ CONFIG_SYSFS=y
606# CONFIG_TMPFS is not set 606# CONFIG_TMPFS is not set
607# CONFIG_HUGETLB_PAGE is not set 607# CONFIG_HUGETLB_PAGE is not set
608# CONFIG_CONFIGFS_FS is not set 608# CONFIG_CONFIGFS_FS is not set
609 609CONFIG_MISC_FILESYSTEMS=y
610#
611# Miscellaneous filesystems
612#
613# CONFIG_ADFS_FS is not set 610# CONFIG_ADFS_FS is not set
614# CONFIG_AFFS_FS is not set 611# CONFIG_AFFS_FS is not set
615# CONFIG_HFS_FS is not set 612# CONFIG_HFS_FS is not set
@@ -658,22 +655,28 @@ CONFIG_MAGIC_SYSRQ=y
658CONFIG_DEBUG_FS=y 655CONFIG_DEBUG_FS=y
659# CONFIG_HEADERS_CHECK is not set 656# CONFIG_HEADERS_CHECK is not set
660# CONFIG_DEBUG_KERNEL is not set 657# CONFIG_DEBUG_KERNEL is not set
658CONFIG_STACKTRACE=y
661# CONFIG_DEBUG_BUGVERBOSE is not set 659# CONFIG_DEBUG_BUGVERBOSE is not set
662# CONFIG_DEBUG_MEMORY_INIT is not set 660# CONFIG_DEBUG_MEMORY_INIT is not set
663# CONFIG_RCU_CPU_STALL_DETECTOR is not set 661# CONFIG_RCU_CPU_STALL_DETECTOR is not set
664# CONFIG_LATENCYTOP is not set 662# CONFIG_LATENCYTOP is not set
665CONFIG_SYSCTL_SYSCALL_CHECK=y 663CONFIG_SYSCTL_SYSCALL_CHECK=y
664CONFIG_NOP_TRACER=y
666CONFIG_HAVE_FUNCTION_TRACER=y 665CONFIG_HAVE_FUNCTION_TRACER=y
667CONFIG_HAVE_DYNAMIC_FTRACE=y 666CONFIG_HAVE_DYNAMIC_FTRACE=y
668CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 667CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
668CONFIG_RING_BUFFER=y
669CONFIG_TRACING=y
669 670
670# 671#
671# Tracers 672# Tracers
672# 673#
673# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 674# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
674# CONFIG_SAMPLES is not set 675# CONFIG_SAMPLES is not set
676CONFIG_HAVE_ARCH_KGDB=y
675# CONFIG_SH_STANDARD_BIOS is not set 677# CONFIG_SH_STANDARD_BIOS is not set
676# CONFIG_EARLY_SCIF_CONSOLE is not set 678# CONFIG_EARLY_SCIF_CONSOLE is not set
679# CONFIG_MORE_COMPILE_OPTIONS is not set
677 680
678# 681#
679# Security options 682# Security options
@@ -688,6 +691,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
688# Library routines 691# Library routines
689# 692#
690CONFIG_BITREVERSE=y 693CONFIG_BITREVERSE=y
694CONFIG_GENERIC_FIND_LAST_BIT=y
691# CONFIG_CRC_CCITT is not set 695# CONFIG_CRC_CCITT is not set
692# CONFIG_CRC16 is not set 696# CONFIG_CRC16 is not set
693# CONFIG_CRC_T10DIF is not set 697# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/rsk7203_defconfig b/arch/sh/configs/rsk7203_defconfig
index dcdef31cf19b..8d7a5972a86a 100644
--- a/arch/sh/configs/rsk7203_defconfig
+++ b/arch/sh/configs/rsk7203_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.28-rc6 3# Linux kernel version: 2.6.28
4# Mon Dec 8 14:35:03 2008 4# Fri Jan 9 17:20:31 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -62,6 +62,7 @@ CONFIG_UID16=y
62CONFIG_SYSCTL_SYSCALL=y 62CONFIG_SYSCTL_SYSCALL=y
63CONFIG_KALLSYMS=y 63CONFIG_KALLSYMS=y
64CONFIG_KALLSYMS_ALL=y 64CONFIG_KALLSYMS_ALL=y
65CONFIG_KALLSYMS_STRIP_GENERATED=y
65# CONFIG_KALLSYMS_EXTRA_PASS is not set 66# CONFIG_KALLSYMS_EXTRA_PASS is not set
66CONFIG_HOTPLUG=y 67CONFIG_HOTPLUG=y
67CONFIG_PRINTK=y 68CONFIG_PRINTK=y
@@ -81,6 +82,7 @@ CONFIG_VM_EVENT_COUNTERS=y
81# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
82CONFIG_SLOB=y 83CONFIG_SLOB=y
83CONFIG_PROFILING=y 84CONFIG_PROFILING=y
85CONFIG_TRACEPOINTS=y
84# CONFIG_MARKERS is not set 86# CONFIG_MARKERS is not set
85CONFIG_OPROFILE=y 87CONFIG_OPROFILE=y
86CONFIG_HAVE_OPROFILE=y 88CONFIG_HAVE_OPROFILE=y
@@ -91,18 +93,15 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
91CONFIG_HAVE_CLK=y 93CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
94CONFIG_TINY_SHMEM=y
95CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
96CONFIG_MODULES=y 97CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
98# CONFIG_MODULE_UNLOAD is not set 99# CONFIG_MODULE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 102CONFIG_BLOCK=y
103# CONFIG_LBD is not set 103# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 104# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 105# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 106# CONFIG_BLK_DEV_INTEGRITY is not set
108 107
@@ -119,6 +118,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 118CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 119CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 120CONFIG_CLASSIC_RCU=y
121# CONFIG_TREE_RCU is not set
122# CONFIG_PREEMPT_RCU is not set
123# CONFIG_TREE_RCU_TRACE is not set
124# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 125# CONFIG_FREEZER is not set
123 126
124# 127#
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -313,6 +315,8 @@ CONFIG_NET=y
313# 315#
314# Networking options 316# Networking options
315# 317#
318# CONFIG_NET_NS is not set
319CONFIG_COMPAT_NET_DEV_OPS=y
316# CONFIG_PACKET is not set 320# CONFIG_PACKET is not set
317# CONFIG_UNIX is not set 321# CONFIG_UNIX is not set
318# CONFIG_NET_KEY is not set 322# CONFIG_NET_KEY is not set
@@ -361,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
362# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
363# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
368# CONFIG_DCB is not set
364 369
365# 370#
366# Network testing 371# Network testing
@@ -376,8 +381,8 @@ CONFIG_WIRELESS=y
376# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
377# CONFIG_WIRELESS_OLD_REGULATORY is not set 382# CONFIG_WIRELESS_OLD_REGULATORY is not set
378# CONFIG_WIRELESS_EXT is not set 383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_LIB80211 is not set
379# CONFIG_MAC80211 is not set 385# CONFIG_MAC80211 is not set
380# CONFIG_IEEE80211 is not set
381# CONFIG_RFKILL is not set 386# CONFIG_RFKILL is not set
382# CONFIG_NET_9P is not set 387# CONFIG_NET_9P is not set
383 388
@@ -509,13 +514,33 @@ CONFIG_NETDEVICES=y
509# CONFIG_EQUALIZER is not set 514# CONFIG_EQUALIZER is not set
510# CONFIG_TUN is not set 515# CONFIG_TUN is not set
511# CONFIG_VETH is not set 516# CONFIG_VETH is not set
512# CONFIG_PHYLIB is not set 517CONFIG_PHYLIB=y
518
519#
520# MII PHY device drivers
521#
522# CONFIG_MARVELL_PHY is not set
523# CONFIG_DAVICOM_PHY is not set
524# CONFIG_QSEMI_PHY is not set
525# CONFIG_LXT_PHY is not set
526# CONFIG_CICADA_PHY is not set
527# CONFIG_VITESSE_PHY is not set
528CONFIG_SMSC_PHY=y
529# CONFIG_BROADCOM_PHY is not set
530# CONFIG_ICPLUS_PHY is not set
531# CONFIG_REALTEK_PHY is not set
532# CONFIG_NATIONAL_PHY is not set
533# CONFIG_STE10XP is not set
534# CONFIG_LSI_ET1011C_PHY is not set
535# CONFIG_FIXED_PHY is not set
536# CONFIG_MDIO_BITBANG is not set
513CONFIG_NET_ETHERNET=y 537CONFIG_NET_ETHERNET=y
514CONFIG_MII=y 538CONFIG_MII=y
515# CONFIG_AX88796 is not set 539# CONFIG_AX88796 is not set
516# CONFIG_STNIC is not set 540# CONFIG_STNIC is not set
517# CONFIG_SMC91X is not set 541# CONFIG_SMC91X is not set
518CONFIG_SMC911X=y 542# CONFIG_SMC911X is not set
543CONFIG_SMSC911X=y
519# CONFIG_IBM_NEW_EMAC_ZMII is not set 544# CONFIG_IBM_NEW_EMAC_ZMII is not set
520# CONFIG_IBM_NEW_EMAC_RGMII is not set 545# CONFIG_IBM_NEW_EMAC_RGMII is not set
521# CONFIG_IBM_NEW_EMAC_TAH is not set 546# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -611,6 +636,26 @@ CONFIG_SERIAL_CORE_CONSOLE=y
611# CONFIG_TCG_TPM is not set 636# CONFIG_TCG_TPM is not set
612# CONFIG_I2C is not set 637# CONFIG_I2C is not set
613# CONFIG_SPI is not set 638# CONFIG_SPI is not set
639CONFIG_ARCH_REQUIRE_GPIOLIB=y
640CONFIG_GPIOLIB=y
641# CONFIG_DEBUG_GPIO is not set
642# CONFIG_GPIO_SYSFS is not set
643
644#
645# Memory mapped GPIO expanders:
646#
647
648#
649# I2C GPIO expanders:
650#
651
652#
653# PCI GPIO expanders:
654#
655
656#
657# SPI GPIO expanders:
658#
614# CONFIG_W1 is not set 659# CONFIG_W1 is not set
615# CONFIG_POWER_SUPPLY is not set 660# CONFIG_POWER_SUPPLY is not set
616# CONFIG_HWMON is not set 661# CONFIG_HWMON is not set
@@ -685,11 +730,9 @@ CONFIG_HID_COMPAT=y
685CONFIG_HID_A4TECH=y 730CONFIG_HID_A4TECH=y
686CONFIG_HID_APPLE=y 731CONFIG_HID_APPLE=y
687CONFIG_HID_BELKIN=y 732CONFIG_HID_BELKIN=y
688CONFIG_HID_BRIGHT=y
689CONFIG_HID_CHERRY=y 733CONFIG_HID_CHERRY=y
690CONFIG_HID_CHICONY=y 734CONFIG_HID_CHICONY=y
691CONFIG_HID_CYPRESS=y 735CONFIG_HID_CYPRESS=y
692CONFIG_HID_DELL=y
693CONFIG_HID_EZKEY=y 736CONFIG_HID_EZKEY=y
694CONFIG_HID_GYRATION=y 737CONFIG_HID_GYRATION=y
695CONFIG_HID_LOGITECH=y 738CONFIG_HID_LOGITECH=y
@@ -697,12 +740,15 @@ CONFIG_HID_LOGITECH=y
697# CONFIG_LOGIRUMBLEPAD2_FF is not set 740# CONFIG_LOGIRUMBLEPAD2_FF is not set
698CONFIG_HID_MICROSOFT=y 741CONFIG_HID_MICROSOFT=y
699CONFIG_HID_MONTEREY=y 742CONFIG_HID_MONTEREY=y
743# CONFIG_HID_NTRIG is not set
700CONFIG_HID_PANTHERLORD=y 744CONFIG_HID_PANTHERLORD=y
701# CONFIG_PANTHERLORD_FF is not set 745# CONFIG_PANTHERLORD_FF is not set
702CONFIG_HID_PETALYNX=y 746CONFIG_HID_PETALYNX=y
703CONFIG_HID_SAMSUNG=y 747CONFIG_HID_SAMSUNG=y
704CONFIG_HID_SONY=y 748CONFIG_HID_SONY=y
705CONFIG_HID_SUNPLUS=y 749CONFIG_HID_SUNPLUS=y
750# CONFIG_GREENASIA_FF is not set
751# CONFIG_HID_TOPSEED is not set
706CONFIG_THRUSTMASTER_FF=m 752CONFIG_THRUSTMASTER_FF=m
707CONFIG_ZEROPLUS_FF=m 753CONFIG_ZEROPLUS_FF=m
708CONFIG_USB_SUPPORT=y 754CONFIG_USB_SUPPORT=y
@@ -847,7 +893,6 @@ CONFIG_RTC_DRV_SH=y
847# CONFIG_DMADEVICES is not set 893# CONFIG_DMADEVICES is not set
848# CONFIG_UIO is not set 894# CONFIG_UIO is not set
849# CONFIG_STAGING is not set 895# CONFIG_STAGING is not set
850CONFIG_STAGING_EXCLUDE_BUILD=y
851 896
852# 897#
853# File systems 898# File systems
@@ -890,10 +935,7 @@ CONFIG_SYSFS=y
890# CONFIG_TMPFS is not set 935# CONFIG_TMPFS is not set
891# CONFIG_HUGETLB_PAGE is not set 936# CONFIG_HUGETLB_PAGE is not set
892# CONFIG_CONFIGFS_FS is not set 937# CONFIG_CONFIGFS_FS is not set
893 938CONFIG_MISC_FILESYSTEMS=y
894#
895# Miscellaneous filesystems
896#
897# CONFIG_ADFS_FS is not set 939# CONFIG_ADFS_FS is not set
898# CONFIG_AFFS_FS is not set 940# CONFIG_AFFS_FS is not set
899# CONFIG_HFS_FS is not set 941# CONFIG_HFS_FS is not set
@@ -961,6 +1003,7 @@ CONFIG_DEBUG_OBJECTS=y
961# CONFIG_DEBUG_OBJECTS_SELFTEST is not set 1003# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
962# CONFIG_DEBUG_OBJECTS_FREE is not set 1004# CONFIG_DEBUG_OBJECTS_FREE is not set
963# CONFIG_DEBUG_OBJECTS_TIMERS is not set 1005# CONFIG_DEBUG_OBJECTS_TIMERS is not set
1006CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
964# CONFIG_DEBUG_RT_MUTEXES is not set 1007# CONFIG_DEBUG_RT_MUTEXES is not set
965# CONFIG_RT_MUTEX_TESTER is not set 1008# CONFIG_RT_MUTEX_TESTER is not set
966# CONFIG_DEBUG_SPINLOCK is not set 1009# CONFIG_DEBUG_SPINLOCK is not set
@@ -970,6 +1013,7 @@ CONFIG_DEBUG_MUTEXES=y
970# CONFIG_LOCK_STAT is not set 1013# CONFIG_LOCK_STAT is not set
971CONFIG_DEBUG_SPINLOCK_SLEEP=y 1014CONFIG_DEBUG_SPINLOCK_SLEEP=y
972# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1015# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1016CONFIG_STACKTRACE=y
973# CONFIG_DEBUG_KOBJECT is not set 1017# CONFIG_DEBUG_KOBJECT is not set
974CONFIG_DEBUG_BUGVERBOSE=y 1018CONFIG_DEBUG_BUGVERBOSE=y
975CONFIG_DEBUG_INFO=y 1019CONFIG_DEBUG_INFO=y
@@ -978,6 +1022,7 @@ CONFIG_DEBUG_WRITECOUNT=y
978# CONFIG_DEBUG_MEMORY_INIT is not set 1022# CONFIG_DEBUG_MEMORY_INIT is not set
979CONFIG_DEBUG_LIST=y 1023CONFIG_DEBUG_LIST=y
980CONFIG_DEBUG_SG=y 1024CONFIG_DEBUG_SG=y
1025# CONFIG_DEBUG_NOTIFIERS is not set
981CONFIG_FRAME_POINTER=y 1026CONFIG_FRAME_POINTER=y
982# CONFIG_RCU_TORTURE_TEST is not set 1027# CONFIG_RCU_TORTURE_TEST is not set
983# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1028# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -986,9 +1031,12 @@ CONFIG_FRAME_POINTER=y
986# CONFIG_FAULT_INJECTION is not set 1031# CONFIG_FAULT_INJECTION is not set
987# CONFIG_LATENCYTOP is not set 1032# CONFIG_LATENCYTOP is not set
988CONFIG_SYSCTL_SYSCALL_CHECK=y 1033CONFIG_SYSCTL_SYSCALL_CHECK=y
1034CONFIG_NOP_TRACER=y
989CONFIG_HAVE_FUNCTION_TRACER=y 1035CONFIG_HAVE_FUNCTION_TRACER=y
990CONFIG_HAVE_DYNAMIC_FTRACE=y 1036CONFIG_HAVE_DYNAMIC_FTRACE=y
991CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1037CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1038CONFIG_RING_BUFFER=y
1039CONFIG_TRACING=y
992 1040
993# 1041#
994# Tracers 1042# Tracers
@@ -997,9 +1045,13 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
997# CONFIG_SCHED_TRACER is not set 1045# CONFIG_SCHED_TRACER is not set
998# CONFIG_CONTEXT_SWITCH_TRACER is not set 1046# CONFIG_CONTEXT_SWITCH_TRACER is not set
999# CONFIG_BOOT_TRACER is not set 1047# CONFIG_BOOT_TRACER is not set
1048# CONFIG_TRACE_BRANCH_PROFILING is not set
1000# CONFIG_STACK_TRACER is not set 1049# CONFIG_STACK_TRACER is not set
1050# CONFIG_FTRACE_STARTUP_TEST is not set
1001# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1051# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1002# CONFIG_SAMPLES is not set 1052# CONFIG_SAMPLES is not set
1053CONFIG_HAVE_ARCH_KGDB=y
1054# CONFIG_KGDB is not set
1003# CONFIG_SH_STANDARD_BIOS is not set 1055# CONFIG_SH_STANDARD_BIOS is not set
1004CONFIG_EARLY_SCIF_CONSOLE=y 1056CONFIG_EARLY_SCIF_CONSOLE=y
1005CONFIG_EARLY_SCIF_CONSOLE_PORT=0xfffe8000 1057CONFIG_EARLY_SCIF_CONSOLE_PORT=0xfffe8000
@@ -1008,6 +1060,9 @@ CONFIG_DEBUG_BOOTMEM=y
1008CONFIG_DEBUG_STACKOVERFLOW=y 1060CONFIG_DEBUG_STACKOVERFLOW=y
1009CONFIG_DEBUG_STACK_USAGE=y 1061CONFIG_DEBUG_STACK_USAGE=y
1010# CONFIG_IRQSTACKS is not set 1062# CONFIG_IRQSTACKS is not set
1063CONFIG_DUMP_CODE=y
1064# CONFIG_SH_NO_BSS_INIT is not set
1065# CONFIG_MORE_COMPILE_OPTIONS is not set
1011 1066
1012# 1067#
1013# Security options 1068# Security options
@@ -1022,6 +1077,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1022# Library routines 1077# Library routines
1023# 1078#
1024CONFIG_BITREVERSE=y 1079CONFIG_BITREVERSE=y
1080CONFIG_GENERIC_FIND_LAST_BIT=y
1025# CONFIG_CRC_CCITT is not set 1081# CONFIG_CRC_CCITT is not set
1026# CONFIG_CRC16 is not set 1082# CONFIG_CRC16 is not set
1027# CONFIG_CRC_T10DIF is not set 1083# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig
index 7d2a9e88838b..d6680f4382c2 100644
--- a/arch/sh/configs/rts7751r2d1_defconfig
+++ b/arch/sh/configs/rts7751r2d1_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:44:36 2008 4# Fri Jan 9 17:23:15 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -77,6 +79,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 79# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 80# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 81CONFIG_PROFILING=y
82CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 83# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
@@ -89,18 +92,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 96CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 101CONFIG_BLOCK=y
101# CONFIG_LBD is not set 102# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
106 106
@@ -117,6 +117,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
121 125
122# 126#
@@ -124,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
124# 128#
125CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
126# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
127# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
128# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
129# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -187,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
187CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
188CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
189CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_RESOURCES_64BIT is not set
191# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
192CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
193CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +297,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 297CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 298CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 299CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
300# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 302CONFIG_PCI_LEGACY=y
298# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
@@ -308,11 +313,18 @@ CONFIG_BINFMT_ELF=y
308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 313# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
309# CONFIG_HAVE_AOUT is not set 314# CONFIG_HAVE_AOUT is not set
310# CONFIG_BINFMT_MISC is not set 315# CONFIG_BINFMT_MISC is not set
316
317#
318# Power management options (EXPERIMENTAL)
319#
320# CONFIG_PM is not set
321# CONFIG_CPU_IDLE is not set
311CONFIG_NET=y 322CONFIG_NET=y
312 323
313# 324#
314# Networking options 325# Networking options
315# 326#
327CONFIG_COMPAT_NET_DEV_OPS=y
316CONFIG_PACKET=y 328CONFIG_PACKET=y
317# CONFIG_PACKET_MMAP is not set 329# CONFIG_PACKET_MMAP is not set
318CONFIG_UNIX=y 330CONFIG_UNIX=y
@@ -365,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
365# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
367# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
368 381
369# 382#
370# Network testing 383# Network testing
@@ -381,8 +394,8 @@ CONFIG_WIRELESS=y
381# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
382CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
383CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397# CONFIG_LIB80211 is not set
384# CONFIG_MAC80211 is not set 398# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set
386# CONFIG_RFKILL is not set 399# CONFIG_RFKILL is not set
387# CONFIG_NET_9P is not set 400# CONFIG_NET_9P is not set
388 401
@@ -426,6 +439,7 @@ CONFIG_MISC_DEVICES=y
426# CONFIG_TIFM_CORE is not set 439# CONFIG_TIFM_CORE is not set
427# CONFIG_ENCLOSURE_SERVICES is not set 440# CONFIG_ENCLOSURE_SERVICES is not set
428# CONFIG_HP_ILO is not set 441# CONFIG_HP_ILO is not set
442# CONFIG_C2PORT is not set
429CONFIG_HAVE_IDE=y 443CONFIG_HAVE_IDE=y
430# CONFIG_IDE is not set 444# CONFIG_IDE is not set
431 445
@@ -468,6 +482,7 @@ CONFIG_SCSI_WAIT_SCAN=m
468# CONFIG_SCSI_SRP_ATTRS is not set 482# CONFIG_SCSI_SRP_ATTRS is not set
469CONFIG_SCSI_LOWLEVEL=y 483CONFIG_SCSI_LOWLEVEL=y
470# CONFIG_ISCSI_TCP is not set 484# CONFIG_ISCSI_TCP is not set
485# CONFIG_SCSI_CXGB3_ISCSI is not set
471# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 486# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
472# CONFIG_SCSI_3W_9XXX is not set 487# CONFIG_SCSI_3W_9XXX is not set
473# CONFIG_SCSI_ACARD is not set 488# CONFIG_SCSI_ACARD is not set
@@ -481,6 +496,8 @@ CONFIG_SCSI_LOWLEVEL=y
481# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
482# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
483# CONFIG_SCSI_HPTIOP is not set 498# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_LIBFC is not set
500# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_FUTURE_DOMAIN is not set 502# CONFIG_SCSI_FUTURE_DOMAIN is not set
486# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
@@ -593,6 +610,7 @@ CONFIG_MII=y
593# CONFIG_SMC91X is not set 610# CONFIG_SMC91X is not set
594# CONFIG_ENC28J60 is not set 611# CONFIG_ENC28J60 is not set
595# CONFIG_SMC911X is not set 612# CONFIG_SMC911X is not set
613# CONFIG_SMSC911X is not set
596# CONFIG_NET_TULIP is not set 614# CONFIG_NET_TULIP is not set
597# CONFIG_HP100 is not set 615# CONFIG_HP100 is not set
598# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -608,7 +626,6 @@ CONFIG_NET_PCI=y
608# CONFIG_ADAPTEC_STARFIRE is not set 626# CONFIG_ADAPTEC_STARFIRE is not set
609# CONFIG_B44 is not set 627# CONFIG_B44 is not set
610# CONFIG_FORCEDETH is not set 628# CONFIG_FORCEDETH is not set
611# CONFIG_EEPRO100 is not set
612# CONFIG_E100 is not set 629# CONFIG_E100 is not set
613# CONFIG_FEALNX is not set 630# CONFIG_FEALNX is not set
614# CONFIG_NATSEMI is not set 631# CONFIG_NATSEMI is not set
@@ -622,6 +639,7 @@ CONFIG_8139TOO=y
622# CONFIG_R6040 is not set 639# CONFIG_R6040 is not set
623# CONFIG_SIS900 is not set 640# CONFIG_SIS900 is not set
624# CONFIG_EPIC100 is not set 641# CONFIG_EPIC100 is not set
642# CONFIG_SMSC9420 is not set
625# CONFIG_SUNDANCE is not set 643# CONFIG_SUNDANCE is not set
626# CONFIG_TLAN is not set 644# CONFIG_TLAN is not set
627# CONFIG_VIA_RHINE is not set 645# CONFIG_VIA_RHINE is not set
@@ -650,6 +668,7 @@ CONFIG_NETDEV_1000=y
650# CONFIG_JME is not set 668# CONFIG_JME is not set
651CONFIG_NETDEV_10000=y 669CONFIG_NETDEV_10000=y
652# CONFIG_CHELSIO_T1 is not set 670# CONFIG_CHELSIO_T1 is not set
671CONFIG_CHELSIO_T3_DEPENDS=y
653# CONFIG_CHELSIO_T3 is not set 672# CONFIG_CHELSIO_T3 is not set
654# CONFIG_ENIC is not set 673# CONFIG_ENIC is not set
655# CONFIG_IXGBE is not set 674# CONFIG_IXGBE is not set
@@ -658,6 +677,7 @@ CONFIG_NETDEV_10000=y
658# CONFIG_MYRI10GE is not set 677# CONFIG_MYRI10GE is not set
659# CONFIG_NETXEN_NIC is not set 678# CONFIG_NETXEN_NIC is not set
660# CONFIG_NIU is not set 679# CONFIG_NIU is not set
680# CONFIG_MLX4_EN is not set
661# CONFIG_MLX4_CORE is not set 681# CONFIG_MLX4_CORE is not set
662# CONFIG_TEHUTI is not set 682# CONFIG_TEHUTI is not set
663# CONFIG_BNX2X is not set 683# CONFIG_BNX2X is not set
@@ -755,6 +775,7 @@ CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 775CONFIG_SERIAL_CORE_CONSOLE=y
756# CONFIG_SERIAL_JSM is not set 776# CONFIG_SERIAL_JSM is not set
757CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
758CONFIG_LEGACY_PTYS=y 779CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 780CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 781# CONFIG_IPMI_HANDLER is not set
@@ -777,7 +798,7 @@ CONFIG_SPI_SH_SCI=y
777# 798#
778# SPI Protocol Masters 799# SPI Protocol Masters
779# 800#
780# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
781# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
782# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
783# CONFIG_W1 is not set 804# CONFIG_W1 is not set
@@ -805,11 +826,11 @@ CONFIG_HWMON=y
805# CONFIG_THERMAL is not set 826# CONFIG_THERMAL is not set
806# CONFIG_THERMAL_HWMON is not set 827# CONFIG_THERMAL_HWMON is not set
807# CONFIG_WATCHDOG is not set 828# CONFIG_WATCHDOG is not set
829CONFIG_SSB_POSSIBLE=y
808 830
809# 831#
810# Sonics Silicon Backplane 832# Sonics Silicon Backplane
811# 833#
812CONFIG_SSB_POSSIBLE=y
813# CONFIG_SSB is not set 834# CONFIG_SSB is not set
814 835
815# 836#
@@ -819,7 +840,7 @@ CONFIG_SSB_POSSIBLE=y
819CONFIG_MFD_SM501=y 840CONFIG_MFD_SM501=y
820# CONFIG_HTC_PASIC3 is not set 841# CONFIG_HTC_PASIC3 is not set
821# CONFIG_MFD_TMIO is not set 842# CONFIG_MFD_TMIO is not set
822# CONFIG_MFD_WM8400 is not set 843# CONFIG_REGULATOR is not set
823 844
824# 845#
825# Multimedia devices 846# Multimedia devices
@@ -852,11 +873,12 @@ CONFIG_FB_CFB_FILLRECT=y
852CONFIG_FB_CFB_COPYAREA=y 873CONFIG_FB_CFB_COPYAREA=y
853CONFIG_FB_CFB_IMAGEBLIT=y 874CONFIG_FB_CFB_IMAGEBLIT=y
854# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 875# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
855# CONFIG_FB_SYS_FILLRECT is not set 876CONFIG_FB_SYS_FILLRECT=m
856# CONFIG_FB_SYS_COPYAREA is not set 877CONFIG_FB_SYS_COPYAREA=m
857# CONFIG_FB_SYS_IMAGEBLIT is not set 878CONFIG_FB_SYS_IMAGEBLIT=m
858# CONFIG_FB_FOREIGN_ENDIAN is not set 879# CONFIG_FB_FOREIGN_ENDIAN is not set
859# CONFIG_FB_SYS_FOPS is not set 880CONFIG_FB_SYS_FOPS=m
881CONFIG_FB_DEFERRED_IO=y
860# CONFIG_FB_SVGALIB is not set 882# CONFIG_FB_SVGALIB is not set
861# CONFIG_FB_MACMODES is not set 883# CONFIG_FB_MACMODES is not set
862# CONFIG_FB_BACKLIGHT is not set 884# CONFIG_FB_BACKLIGHT is not set
@@ -895,6 +917,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
895CONFIG_FB_SM501=y 917CONFIG_FB_SM501=y
896# CONFIG_FB_VIRTUAL is not set 918# CONFIG_FB_VIRTUAL is not set
897# CONFIG_FB_METRONOME is not set 919# CONFIG_FB_METRONOME is not set
920# CONFIG_FB_MB862XX is not set
898# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 921# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
899 922
900# 923#
@@ -1031,11 +1054,9 @@ CONFIG_HID_COMPAT=y
1031CONFIG_HID_A4TECH=y 1054CONFIG_HID_A4TECH=y
1032CONFIG_HID_APPLE=y 1055CONFIG_HID_APPLE=y
1033CONFIG_HID_BELKIN=y 1056CONFIG_HID_BELKIN=y
1034CONFIG_HID_BRIGHT=y
1035CONFIG_HID_CHERRY=y 1057CONFIG_HID_CHERRY=y
1036CONFIG_HID_CHICONY=y 1058CONFIG_HID_CHICONY=y
1037CONFIG_HID_CYPRESS=y 1059CONFIG_HID_CYPRESS=y
1038CONFIG_HID_DELL=y
1039CONFIG_HID_EZKEY=y 1060CONFIG_HID_EZKEY=y
1040CONFIG_HID_GYRATION=y 1061CONFIG_HID_GYRATION=y
1041CONFIG_HID_LOGITECH=y 1062CONFIG_HID_LOGITECH=y
@@ -1043,12 +1064,15 @@ CONFIG_HID_LOGITECH=y
1043# CONFIG_LOGIRUMBLEPAD2_FF is not set 1064# CONFIG_LOGIRUMBLEPAD2_FF is not set
1044CONFIG_HID_MICROSOFT=y 1065CONFIG_HID_MICROSOFT=y
1045CONFIG_HID_MONTEREY=y 1066CONFIG_HID_MONTEREY=y
1067# CONFIG_HID_NTRIG is not set
1046CONFIG_HID_PANTHERLORD=y 1068CONFIG_HID_PANTHERLORD=y
1047# CONFIG_PANTHERLORD_FF is not set 1069# CONFIG_PANTHERLORD_FF is not set
1048CONFIG_HID_PETALYNX=y 1070CONFIG_HID_PETALYNX=y
1049CONFIG_HID_SAMSUNG=y 1071CONFIG_HID_SAMSUNG=y
1050CONFIG_HID_SONY=y 1072CONFIG_HID_SONY=y
1051CONFIG_HID_SUNPLUS=y 1073CONFIG_HID_SUNPLUS=y
1074# CONFIG_GREENASIA_FF is not set
1075# CONFIG_HID_TOPSEED is not set
1052CONFIG_THRUSTMASTER_FF=m 1076CONFIG_THRUSTMASTER_FF=m
1053CONFIG_ZEROPLUS_FF=m 1077CONFIG_ZEROPLUS_FF=m
1054CONFIG_USB_SUPPORT=y 1078CONFIG_USB_SUPPORT=y
@@ -1069,6 +1093,8 @@ CONFIG_USB_DEVICE_CLASS=y
1069# CONFIG_USB_OTG_WHITELIST is not set 1093# CONFIG_USB_OTG_WHITELIST is not set
1070# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1094# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1071# CONFIG_USB_MON is not set 1095# CONFIG_USB_MON is not set
1096# CONFIG_USB_WUSB is not set
1097# CONFIG_USB_WUSB_CBAF is not set
1072 1098
1073# 1099#
1074# USB Host Controller Drivers 1100# USB Host Controller Drivers
@@ -1084,6 +1110,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1084# CONFIG_USB_UHCI_HCD is not set 1110# CONFIG_USB_UHCI_HCD is not set
1085# CONFIG_USB_SL811_HCD is not set 1111# CONFIG_USB_SL811_HCD is not set
1086# CONFIG_USB_R8A66597_HCD is not set 1112# CONFIG_USB_R8A66597_HCD is not set
1113# CONFIG_USB_WHCI_HCD is not set
1114# CONFIG_USB_HWA_HCD is not set
1087 1115
1088# 1116#
1089# USB Device Class drivers 1117# USB Device Class drivers
@@ -1094,11 +1122,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1094# CONFIG_USB_TMC is not set 1122# CONFIG_USB_TMC is not set
1095 1123
1096# 1124#
1097# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1125# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1098# 1126#
1099 1127
1100# 1128#
1101# may also be needed; see USB_STORAGE Help for more information 1129# see USB_STORAGE Help for more information
1102# 1130#
1103CONFIG_USB_STORAGE=y 1131CONFIG_USB_STORAGE=y
1104# CONFIG_USB_STORAGE_DEBUG is not set 1132# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1151,6 +1179,7 @@ CONFIG_USB_LIBUSUAL=y
1151# CONFIG_USB_ISIGHTFW is not set 1179# CONFIG_USB_ISIGHTFW is not set
1152# CONFIG_USB_VST is not set 1180# CONFIG_USB_VST is not set
1153# CONFIG_USB_GADGET is not set 1181# CONFIG_USB_GADGET is not set
1182# CONFIG_UWB is not set
1154# CONFIG_MMC is not set 1183# CONFIG_MMC is not set
1155# CONFIG_MEMSTICK is not set 1184# CONFIG_MEMSTICK is not set
1156# CONFIG_NEW_LEDS is not set 1185# CONFIG_NEW_LEDS is not set
@@ -1176,6 +1205,7 @@ CONFIG_RTC_INTF_DEV=y
1176# 1205#
1177# CONFIG_RTC_DRV_M41T94 is not set 1206# CONFIG_RTC_DRV_M41T94 is not set
1178# CONFIG_RTC_DRV_DS1305 is not set 1207# CONFIG_RTC_DRV_DS1305 is not set
1208# CONFIG_RTC_DRV_DS1390 is not set
1179# CONFIG_RTC_DRV_MAX6902 is not set 1209# CONFIG_RTC_DRV_MAX6902 is not set
1180CONFIG_RTC_DRV_R9701=y 1210CONFIG_RTC_DRV_R9701=y
1181# CONFIG_RTC_DRV_RS5C348 is not set 1211# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1254,10 +1284,7 @@ CONFIG_TMPFS=y
1254# CONFIG_HUGETLBFS is not set 1284# CONFIG_HUGETLBFS is not set
1255# CONFIG_HUGETLB_PAGE is not set 1285# CONFIG_HUGETLB_PAGE is not set
1256# CONFIG_CONFIGFS_FS is not set 1286# CONFIG_CONFIGFS_FS is not set
1257 1287CONFIG_MISC_FILESYSTEMS=y
1258#
1259# Miscellaneous filesystems
1260#
1261# CONFIG_ADFS_FS is not set 1288# CONFIG_ADFS_FS is not set
1262# CONFIG_AFFS_FS is not set 1289# CONFIG_AFFS_FS is not set
1263# CONFIG_HFS_FS is not set 1290# CONFIG_HFS_FS is not set
@@ -1343,19 +1370,29 @@ CONFIG_FRAME_WARN=1024
1343CONFIG_DEBUG_FS=y 1370CONFIG_DEBUG_FS=y
1344# CONFIG_HEADERS_CHECK is not set 1371# CONFIG_HEADERS_CHECK is not set
1345# CONFIG_DEBUG_KERNEL is not set 1372# CONFIG_DEBUG_KERNEL is not set
1373CONFIG_STACKTRACE=y
1346# CONFIG_DEBUG_BUGVERBOSE is not set 1374# CONFIG_DEBUG_BUGVERBOSE is not set
1347# CONFIG_DEBUG_MEMORY_INIT is not set 1375# CONFIG_DEBUG_MEMORY_INIT is not set
1348# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1376# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1349# CONFIG_LATENCYTOP is not set 1377# CONFIG_LATENCYTOP is not set
1350CONFIG_NOP_TRACER=y 1378CONFIG_NOP_TRACER=y
1351CONFIG_HAVE_FTRACE=y 1379CONFIG_HAVE_FUNCTION_TRACER=y
1380CONFIG_HAVE_DYNAMIC_FTRACE=y
1381CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1382CONFIG_RING_BUFFER=y
1383CONFIG_TRACING=y
1384
1385#
1386# Tracers
1387#
1352# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1388# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1353# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1390CONFIG_HAVE_ARCH_KGDB=y
1354# CONFIG_SH_STANDARD_BIOS is not set 1391# CONFIG_SH_STANDARD_BIOS is not set
1355CONFIG_EARLY_SCIF_CONSOLE=y 1392CONFIG_EARLY_SCIF_CONSOLE=y
1356CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1393CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1357CONFIG_EARLY_PRINTK=y 1394CONFIG_EARLY_PRINTK=y
1358# CONFIG_SH_KGDB is not set 1395# CONFIG_MORE_COMPILE_OPTIONS is not set
1359 1396
1360# 1397#
1361# Security options 1398# Security options
@@ -1371,6 +1408,7 @@ CONFIG_CRYPTO=y
1371# 1408#
1372# CONFIG_CRYPTO_FIPS is not set 1409# CONFIG_CRYPTO_FIPS is not set
1373# CONFIG_CRYPTO_MANAGER is not set 1410# CONFIG_CRYPTO_MANAGER is not set
1411# CONFIG_CRYPTO_MANAGER2 is not set
1374# CONFIG_CRYPTO_GF128MUL is not set 1412# CONFIG_CRYPTO_GF128MUL is not set
1375# CONFIG_CRYPTO_NULL is not set 1413# CONFIG_CRYPTO_NULL is not set
1376# CONFIG_CRYPTO_CRYPTD is not set 1414# CONFIG_CRYPTO_CRYPTD is not set
@@ -1454,6 +1492,7 @@ CONFIG_CRYPTO_HW=y
1454# Library routines 1492# Library routines
1455# 1493#
1456CONFIG_BITREVERSE=y 1494CONFIG_BITREVERSE=y
1495CONFIG_GENERIC_FIND_LAST_BIT=y
1457# CONFIG_CRC_CCITT is not set 1496# CONFIG_CRC_CCITT is not set
1458# CONFIG_CRC16 is not set 1497# CONFIG_CRC16 is not set
1459CONFIG_CRC_T10DIF=y 1498CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig
index f680d3eecdfb..3fca10e24833 100644
--- a/arch/sh/configs/rts7751r2dplus_defconfig
+++ b/arch/sh/configs/rts7751r2dplus_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:47:39 2008 4# Fri Jan 9 17:26:10 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -77,6 +79,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 79# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 80# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 81CONFIG_PROFILING=y
82CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 83# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
@@ -89,18 +92,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 96CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 101CONFIG_BLOCK=y
101# CONFIG_LBD is not set 102# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
106 106
@@ -117,6 +117,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
121 125
122# 126#
@@ -124,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
124# 128#
125CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
126# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
127# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
128# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
129# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -187,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
187CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
188CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
189CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_RESOURCES_64BIT is not set
191# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
192CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
193CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +297,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 297CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 298CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 299CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
300# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 302CONFIG_PCI_LEGACY=y
298# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
@@ -308,11 +313,18 @@ CONFIG_BINFMT_ELF=y
308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 313# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
309# CONFIG_HAVE_AOUT is not set 314# CONFIG_HAVE_AOUT is not set
310# CONFIG_BINFMT_MISC is not set 315# CONFIG_BINFMT_MISC is not set
316
317#
318# Power management options (EXPERIMENTAL)
319#
320# CONFIG_PM is not set
321# CONFIG_CPU_IDLE is not set
311CONFIG_NET=y 322CONFIG_NET=y
312 323
313# 324#
314# Networking options 325# Networking options
315# 326#
327CONFIG_COMPAT_NET_DEV_OPS=y
316CONFIG_PACKET=y 328CONFIG_PACKET=y
317# CONFIG_PACKET_MMAP is not set 329# CONFIG_PACKET_MMAP is not set
318CONFIG_UNIX=y 330CONFIG_UNIX=y
@@ -365,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
365# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
367# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
368 381
369# 382#
370# Network testing 383# Network testing
@@ -381,8 +394,8 @@ CONFIG_WIRELESS=y
381# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
382CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
383CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397# CONFIG_LIB80211 is not set
384# CONFIG_MAC80211 is not set 398# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set
386# CONFIG_RFKILL is not set 399# CONFIG_RFKILL is not set
387# CONFIG_NET_9P is not set 400# CONFIG_NET_9P is not set
388 401
@@ -426,6 +439,7 @@ CONFIG_MISC_DEVICES=y
426# CONFIG_TIFM_CORE is not set 439# CONFIG_TIFM_CORE is not set
427# CONFIG_ENCLOSURE_SERVICES is not set 440# CONFIG_ENCLOSURE_SERVICES is not set
428# CONFIG_HP_ILO is not set 441# CONFIG_HP_ILO is not set
442# CONFIG_C2PORT is not set
429CONFIG_HAVE_IDE=y 443CONFIG_HAVE_IDE=y
430# CONFIG_IDE is not set 444# CONFIG_IDE is not set
431 445
@@ -468,6 +482,7 @@ CONFIG_SCSI_WAIT_SCAN=m
468# CONFIG_SCSI_SRP_ATTRS is not set 482# CONFIG_SCSI_SRP_ATTRS is not set
469CONFIG_SCSI_LOWLEVEL=y 483CONFIG_SCSI_LOWLEVEL=y
470# CONFIG_ISCSI_TCP is not set 484# CONFIG_ISCSI_TCP is not set
485# CONFIG_SCSI_CXGB3_ISCSI is not set
471# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 486# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
472# CONFIG_SCSI_3W_9XXX is not set 487# CONFIG_SCSI_3W_9XXX is not set
473# CONFIG_SCSI_ACARD is not set 488# CONFIG_SCSI_ACARD is not set
@@ -481,6 +496,8 @@ CONFIG_SCSI_LOWLEVEL=y
481# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
482# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
483# CONFIG_SCSI_HPTIOP is not set 498# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_LIBFC is not set
500# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_FUTURE_DOMAIN is not set 502# CONFIG_SCSI_FUTURE_DOMAIN is not set
486# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
@@ -593,6 +610,7 @@ CONFIG_MII=y
593# CONFIG_SMC91X is not set 610# CONFIG_SMC91X is not set
594# CONFIG_ENC28J60 is not set 611# CONFIG_ENC28J60 is not set
595# CONFIG_SMC911X is not set 612# CONFIG_SMC911X is not set
613# CONFIG_SMSC911X is not set
596# CONFIG_NET_TULIP is not set 614# CONFIG_NET_TULIP is not set
597# CONFIG_HP100 is not set 615# CONFIG_HP100 is not set
598# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -608,7 +626,6 @@ CONFIG_NET_PCI=y
608# CONFIG_ADAPTEC_STARFIRE is not set 626# CONFIG_ADAPTEC_STARFIRE is not set
609# CONFIG_B44 is not set 627# CONFIG_B44 is not set
610# CONFIG_FORCEDETH is not set 628# CONFIG_FORCEDETH is not set
611# CONFIG_EEPRO100 is not set
612# CONFIG_E100 is not set 629# CONFIG_E100 is not set
613# CONFIG_FEALNX is not set 630# CONFIG_FEALNX is not set
614# CONFIG_NATSEMI is not set 631# CONFIG_NATSEMI is not set
@@ -622,6 +639,7 @@ CONFIG_8139TOO=y
622# CONFIG_R6040 is not set 639# CONFIG_R6040 is not set
623# CONFIG_SIS900 is not set 640# CONFIG_SIS900 is not set
624# CONFIG_EPIC100 is not set 641# CONFIG_EPIC100 is not set
642# CONFIG_SMSC9420 is not set
625# CONFIG_SUNDANCE is not set 643# CONFIG_SUNDANCE is not set
626# CONFIG_TLAN is not set 644# CONFIG_TLAN is not set
627# CONFIG_VIA_RHINE is not set 645# CONFIG_VIA_RHINE is not set
@@ -650,6 +668,7 @@ CONFIG_NETDEV_1000=y
650# CONFIG_JME is not set 668# CONFIG_JME is not set
651CONFIG_NETDEV_10000=y 669CONFIG_NETDEV_10000=y
652# CONFIG_CHELSIO_T1 is not set 670# CONFIG_CHELSIO_T1 is not set
671CONFIG_CHELSIO_T3_DEPENDS=y
653# CONFIG_CHELSIO_T3 is not set 672# CONFIG_CHELSIO_T3 is not set
654# CONFIG_ENIC is not set 673# CONFIG_ENIC is not set
655# CONFIG_IXGBE is not set 674# CONFIG_IXGBE is not set
@@ -658,6 +677,7 @@ CONFIG_NETDEV_10000=y
658# CONFIG_MYRI10GE is not set 677# CONFIG_MYRI10GE is not set
659# CONFIG_NETXEN_NIC is not set 678# CONFIG_NETXEN_NIC is not set
660# CONFIG_NIU is not set 679# CONFIG_NIU is not set
680# CONFIG_MLX4_EN is not set
661# CONFIG_MLX4_CORE is not set 681# CONFIG_MLX4_CORE is not set
662# CONFIG_TEHUTI is not set 682# CONFIG_TEHUTI is not set
663# CONFIG_BNX2X is not set 683# CONFIG_BNX2X is not set
@@ -755,6 +775,7 @@ CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 775CONFIG_SERIAL_CORE_CONSOLE=y
756# CONFIG_SERIAL_JSM is not set 776# CONFIG_SERIAL_JSM is not set
757CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
758CONFIG_LEGACY_PTYS=y 779CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 780CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 781# CONFIG_IPMI_HANDLER is not set
@@ -777,7 +798,7 @@ CONFIG_SPI_SH_SCI=y
777# 798#
778# SPI Protocol Masters 799# SPI Protocol Masters
779# 800#
780# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
781# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
782# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
783# CONFIG_W1 is not set 804# CONFIG_W1 is not set
@@ -805,11 +826,11 @@ CONFIG_HWMON=y
805# CONFIG_THERMAL is not set 826# CONFIG_THERMAL is not set
806# CONFIG_THERMAL_HWMON is not set 827# CONFIG_THERMAL_HWMON is not set
807# CONFIG_WATCHDOG is not set 828# CONFIG_WATCHDOG is not set
829CONFIG_SSB_POSSIBLE=y
808 830
809# 831#
810# Sonics Silicon Backplane 832# Sonics Silicon Backplane
811# 833#
812CONFIG_SSB_POSSIBLE=y
813# CONFIG_SSB is not set 834# CONFIG_SSB is not set
814 835
815# 836#
@@ -819,7 +840,7 @@ CONFIG_SSB_POSSIBLE=y
819CONFIG_MFD_SM501=y 840CONFIG_MFD_SM501=y
820# CONFIG_HTC_PASIC3 is not set 841# CONFIG_HTC_PASIC3 is not set
821# CONFIG_MFD_TMIO is not set 842# CONFIG_MFD_TMIO is not set
822# CONFIG_MFD_WM8400 is not set 843# CONFIG_REGULATOR is not set
823 844
824# 845#
825# Multimedia devices 846# Multimedia devices
@@ -852,11 +873,12 @@ CONFIG_FB_CFB_FILLRECT=y
852CONFIG_FB_CFB_COPYAREA=y 873CONFIG_FB_CFB_COPYAREA=y
853CONFIG_FB_CFB_IMAGEBLIT=y 874CONFIG_FB_CFB_IMAGEBLIT=y
854# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 875# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
855# CONFIG_FB_SYS_FILLRECT is not set 876CONFIG_FB_SYS_FILLRECT=m
856# CONFIG_FB_SYS_COPYAREA is not set 877CONFIG_FB_SYS_COPYAREA=m
857# CONFIG_FB_SYS_IMAGEBLIT is not set 878CONFIG_FB_SYS_IMAGEBLIT=m
858# CONFIG_FB_FOREIGN_ENDIAN is not set 879# CONFIG_FB_FOREIGN_ENDIAN is not set
859# CONFIG_FB_SYS_FOPS is not set 880CONFIG_FB_SYS_FOPS=m
881CONFIG_FB_DEFERRED_IO=y
860# CONFIG_FB_SVGALIB is not set 882# CONFIG_FB_SVGALIB is not set
861# CONFIG_FB_MACMODES is not set 883# CONFIG_FB_MACMODES is not set
862# CONFIG_FB_BACKLIGHT is not set 884# CONFIG_FB_BACKLIGHT is not set
@@ -895,6 +917,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
895CONFIG_FB_SM501=y 917CONFIG_FB_SM501=y
896# CONFIG_FB_VIRTUAL is not set 918# CONFIG_FB_VIRTUAL is not set
897# CONFIG_FB_METRONOME is not set 919# CONFIG_FB_METRONOME is not set
920# CONFIG_FB_MB862XX is not set
898# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 921# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
899 922
900# 923#
@@ -1031,11 +1054,9 @@ CONFIG_HID_COMPAT=y
1031CONFIG_HID_A4TECH=y 1054CONFIG_HID_A4TECH=y
1032CONFIG_HID_APPLE=y 1055CONFIG_HID_APPLE=y
1033CONFIG_HID_BELKIN=y 1056CONFIG_HID_BELKIN=y
1034CONFIG_HID_BRIGHT=y
1035CONFIG_HID_CHERRY=y 1057CONFIG_HID_CHERRY=y
1036CONFIG_HID_CHICONY=y 1058CONFIG_HID_CHICONY=y
1037CONFIG_HID_CYPRESS=y 1059CONFIG_HID_CYPRESS=y
1038CONFIG_HID_DELL=y
1039CONFIG_HID_EZKEY=y 1060CONFIG_HID_EZKEY=y
1040CONFIG_HID_GYRATION=y 1061CONFIG_HID_GYRATION=y
1041CONFIG_HID_LOGITECH=y 1062CONFIG_HID_LOGITECH=y
@@ -1043,12 +1064,15 @@ CONFIG_HID_LOGITECH=y
1043# CONFIG_LOGIRUMBLEPAD2_FF is not set 1064# CONFIG_LOGIRUMBLEPAD2_FF is not set
1044CONFIG_HID_MICROSOFT=y 1065CONFIG_HID_MICROSOFT=y
1045CONFIG_HID_MONTEREY=y 1066CONFIG_HID_MONTEREY=y
1067# CONFIG_HID_NTRIG is not set
1046CONFIG_HID_PANTHERLORD=y 1068CONFIG_HID_PANTHERLORD=y
1047# CONFIG_PANTHERLORD_FF is not set 1069# CONFIG_PANTHERLORD_FF is not set
1048CONFIG_HID_PETALYNX=y 1070CONFIG_HID_PETALYNX=y
1049CONFIG_HID_SAMSUNG=y 1071CONFIG_HID_SAMSUNG=y
1050CONFIG_HID_SONY=y 1072CONFIG_HID_SONY=y
1051CONFIG_HID_SUNPLUS=y 1073CONFIG_HID_SUNPLUS=y
1074# CONFIG_GREENASIA_FF is not set
1075# CONFIG_HID_TOPSEED is not set
1052CONFIG_THRUSTMASTER_FF=m 1076CONFIG_THRUSTMASTER_FF=m
1053CONFIG_ZEROPLUS_FF=m 1077CONFIG_ZEROPLUS_FF=m
1054CONFIG_USB_SUPPORT=y 1078CONFIG_USB_SUPPORT=y
@@ -1069,6 +1093,8 @@ CONFIG_USB_DEVICE_CLASS=y
1069# CONFIG_USB_OTG_WHITELIST is not set 1093# CONFIG_USB_OTG_WHITELIST is not set
1070# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1094# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1071# CONFIG_USB_MON is not set 1095# CONFIG_USB_MON is not set
1096# CONFIG_USB_WUSB is not set
1097# CONFIG_USB_WUSB_CBAF is not set
1072 1098
1073# 1099#
1074# USB Host Controller Drivers 1100# USB Host Controller Drivers
@@ -1084,6 +1110,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1084# CONFIG_USB_UHCI_HCD is not set 1110# CONFIG_USB_UHCI_HCD is not set
1085# CONFIG_USB_SL811_HCD is not set 1111# CONFIG_USB_SL811_HCD is not set
1086# CONFIG_USB_R8A66597_HCD is not set 1112# CONFIG_USB_R8A66597_HCD is not set
1113# CONFIG_USB_WHCI_HCD is not set
1114# CONFIG_USB_HWA_HCD is not set
1087 1115
1088# 1116#
1089# USB Device Class drivers 1117# USB Device Class drivers
@@ -1094,11 +1122,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1094# CONFIG_USB_TMC is not set 1122# CONFIG_USB_TMC is not set
1095 1123
1096# 1124#
1097# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1125# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1098# 1126#
1099 1127
1100# 1128#
1101# may also be needed; see USB_STORAGE Help for more information 1129# see USB_STORAGE Help for more information
1102# 1130#
1103CONFIG_USB_STORAGE=y 1131CONFIG_USB_STORAGE=y
1104# CONFIG_USB_STORAGE_DEBUG is not set 1132# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1151,6 +1179,7 @@ CONFIG_USB_LIBUSUAL=y
1151# CONFIG_USB_ISIGHTFW is not set 1179# CONFIG_USB_ISIGHTFW is not set
1152# CONFIG_USB_VST is not set 1180# CONFIG_USB_VST is not set
1153# CONFIG_USB_GADGET is not set 1181# CONFIG_USB_GADGET is not set
1182# CONFIG_UWB is not set
1154# CONFIG_MMC is not set 1183# CONFIG_MMC is not set
1155# CONFIG_MEMSTICK is not set 1184# CONFIG_MEMSTICK is not set
1156# CONFIG_NEW_LEDS is not set 1185# CONFIG_NEW_LEDS is not set
@@ -1176,6 +1205,7 @@ CONFIG_RTC_INTF_DEV=y
1176# 1205#
1177# CONFIG_RTC_DRV_M41T94 is not set 1206# CONFIG_RTC_DRV_M41T94 is not set
1178# CONFIG_RTC_DRV_DS1305 is not set 1207# CONFIG_RTC_DRV_DS1305 is not set
1208# CONFIG_RTC_DRV_DS1390 is not set
1179# CONFIG_RTC_DRV_MAX6902 is not set 1209# CONFIG_RTC_DRV_MAX6902 is not set
1180CONFIG_RTC_DRV_R9701=y 1210CONFIG_RTC_DRV_R9701=y
1181# CONFIG_RTC_DRV_RS5C348 is not set 1211# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1254,10 +1284,7 @@ CONFIG_TMPFS=y
1254# CONFIG_HUGETLBFS is not set 1284# CONFIG_HUGETLBFS is not set
1255# CONFIG_HUGETLB_PAGE is not set 1285# CONFIG_HUGETLB_PAGE is not set
1256# CONFIG_CONFIGFS_FS is not set 1286# CONFIG_CONFIGFS_FS is not set
1257 1287CONFIG_MISC_FILESYSTEMS=y
1258#
1259# Miscellaneous filesystems
1260#
1261# CONFIG_ADFS_FS is not set 1288# CONFIG_ADFS_FS is not set
1262# CONFIG_AFFS_FS is not set 1289# CONFIG_AFFS_FS is not set
1263# CONFIG_HFS_FS is not set 1290# CONFIG_HFS_FS is not set
@@ -1343,19 +1370,29 @@ CONFIG_FRAME_WARN=1024
1343CONFIG_DEBUG_FS=y 1370CONFIG_DEBUG_FS=y
1344# CONFIG_HEADERS_CHECK is not set 1371# CONFIG_HEADERS_CHECK is not set
1345# CONFIG_DEBUG_KERNEL is not set 1372# CONFIG_DEBUG_KERNEL is not set
1373CONFIG_STACKTRACE=y
1346# CONFIG_DEBUG_BUGVERBOSE is not set 1374# CONFIG_DEBUG_BUGVERBOSE is not set
1347# CONFIG_DEBUG_MEMORY_INIT is not set 1375# CONFIG_DEBUG_MEMORY_INIT is not set
1348# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1376# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1349# CONFIG_LATENCYTOP is not set 1377# CONFIG_LATENCYTOP is not set
1350CONFIG_NOP_TRACER=y 1378CONFIG_NOP_TRACER=y
1351CONFIG_HAVE_FTRACE=y 1379CONFIG_HAVE_FUNCTION_TRACER=y
1380CONFIG_HAVE_DYNAMIC_FTRACE=y
1381CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1382CONFIG_RING_BUFFER=y
1383CONFIG_TRACING=y
1384
1385#
1386# Tracers
1387#
1352# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1388# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1353# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1390CONFIG_HAVE_ARCH_KGDB=y
1354# CONFIG_SH_STANDARD_BIOS is not set 1391# CONFIG_SH_STANDARD_BIOS is not set
1355CONFIG_EARLY_SCIF_CONSOLE=y 1392CONFIG_EARLY_SCIF_CONSOLE=y
1356CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1393CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1357CONFIG_EARLY_PRINTK=y 1394CONFIG_EARLY_PRINTK=y
1358# CONFIG_SH_KGDB is not set 1395# CONFIG_MORE_COMPILE_OPTIONS is not set
1359 1396
1360# 1397#
1361# Security options 1398# Security options
@@ -1371,6 +1408,7 @@ CONFIG_CRYPTO=y
1371# 1408#
1372# CONFIG_CRYPTO_FIPS is not set 1409# CONFIG_CRYPTO_FIPS is not set
1373# CONFIG_CRYPTO_MANAGER is not set 1410# CONFIG_CRYPTO_MANAGER is not set
1411# CONFIG_CRYPTO_MANAGER2 is not set
1374# CONFIG_CRYPTO_GF128MUL is not set 1412# CONFIG_CRYPTO_GF128MUL is not set
1375# CONFIG_CRYPTO_NULL is not set 1413# CONFIG_CRYPTO_NULL is not set
1376# CONFIG_CRYPTO_CRYPTD is not set 1414# CONFIG_CRYPTO_CRYPTD is not set
@@ -1454,6 +1492,7 @@ CONFIG_CRYPTO_HW=y
1454# Library routines 1492# Library routines
1455# 1493#
1456CONFIG_BITREVERSE=y 1494CONFIG_BITREVERSE=y
1495CONFIG_GENERIC_FIND_LAST_BIT=y
1457# CONFIG_CRC_CCITT is not set 1496# CONFIG_CRC_CCITT is not set
1458# CONFIG_CRC16 is not set 1497# CONFIG_CRC16 is not set
1459CONFIG_CRC_T10DIF=y 1498CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/sdk7780_defconfig b/arch/sh/configs/sdk7780_defconfig
index 543287b97a6a..5d6b06755ae7 100644
--- a/arch/sh/configs/sdk7780_defconfig
+++ b/arch/sh/configs/sdk7780_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:53:22 2008 4# Fri Jan 9 17:26:40 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -81,7 +84,6 @@ CONFIG_SLUB_DEBUG=y
81CONFIG_SLUB=y 84CONFIG_SLUB=y
82# CONFIG_SLOB is not set 85# CONFIG_SLOB is not set
83# CONFIG_PROFILING is not set 86# CONFIG_PROFILING is not set
84# CONFIG_MARKERS is not set
85CONFIG_HAVE_OPROFILE=y 87CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 88# CONFIG_KPROBES is not set
87CONFIG_HAVE_IOREMAP_PROT=y 89CONFIG_HAVE_IOREMAP_PROT=y
@@ -92,7 +94,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 95CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 96CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 97CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 98CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 99# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +101,9 @@ CONFIG_MODULE_UNLOAD=y
100CONFIG_MODULE_FORCE_UNLOAD=y 101CONFIG_MODULE_FORCE_UNLOAD=y
101# CONFIG_MODVERSIONS is not set 102# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 103# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 104CONFIG_BLOCK=y
105CONFIG_LBD=y 105CONFIG_LBD=y
106# CONFIG_BLK_DEV_IO_TRACE is not set 106# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 107# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 108# CONFIG_BLK_DEV_INTEGRITY is not set
110 109
@@ -121,6 +120,10 @@ CONFIG_DEFAULT_AS=y
121# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
123CONFIG_CLASSIC_RCU=y 122CONFIG_CLASSIC_RCU=y
123# CONFIG_TREE_RCU is not set
124# CONFIG_PREEMPT_RCU is not set
125# CONFIG_TREE_RCU_TRACE is not set
126# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 127# CONFIG_FREEZER is not set
125 128
126# 129#
@@ -129,6 +132,7 @@ CONFIG_CLASSIC_RCU=y
129CONFIG_CPU_SH4=y 132CONFIG_CPU_SH4=y
130CONFIG_CPU_SH4A=y 133CONFIG_CPU_SH4A=y
131# CONFIG_CPU_SUBTYPE_SH7619 is not set 134# CONFIG_CPU_SUBTYPE_SH7619 is not set
135# CONFIG_CPU_SUBTYPE_SH7201 is not set
132# CONFIG_CPU_SUBTYPE_SH7203 is not set 136# CONFIG_CPU_SUBTYPE_SH7203 is not set
133# CONFIG_CPU_SUBTYPE_SH7206 is not set 137# CONFIG_CPU_SUBTYPE_SH7206 is not set
134# CONFIG_CPU_SUBTYPE_SH7263 is not set 138# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -199,7 +203,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
199CONFIG_SPARSEMEM_STATIC=y 203CONFIG_SPARSEMEM_STATIC=y
200CONFIG_PAGEFLAGS_EXTENDED=y 204CONFIG_PAGEFLAGS_EXTENDED=y
201CONFIG_SPLIT_PTLOCK_CPUS=4 205CONFIG_SPLIT_PTLOCK_CPUS=4
202CONFIG_RESOURCES_64BIT=y
203# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -282,7 +285,6 @@ CONFIG_SCHED_HRTICK=y
282# CONFIG_PREEMPT_NONE is not set 285# CONFIG_PREEMPT_NONE is not set
283# CONFIG_PREEMPT_VOLUNTARY is not set 286# CONFIG_PREEMPT_VOLUNTARY is not set
284CONFIG_PREEMPT=y 287CONFIG_PREEMPT=y
285# CONFIG_PREEMPT_RCU is not set
286CONFIG_GUSA=y 288CONFIG_GUSA=y
287 289
288# 290#
@@ -300,6 +302,7 @@ CONFIG_PCI=y
300CONFIG_SH_PCIDMA_NONCOHERENT=y 302CONFIG_SH_PCIDMA_NONCOHERENT=y
301CONFIG_PCI_AUTO=y 303CONFIG_PCI_AUTO=y
302CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
305# CONFIG_PCIEPORTBUS is not set
303# CONFIG_ARCH_SUPPORTS_MSI is not set 306# CONFIG_ARCH_SUPPORTS_MSI is not set
304# CONFIG_PCI_LEGACY is not set 307# CONFIG_PCI_LEGACY is not set
305CONFIG_PCI_DEBUG=y 308CONFIG_PCI_DEBUG=y
@@ -334,11 +337,18 @@ CONFIG_BINFMT_ELF=y
334# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 337# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
335# CONFIG_HAVE_AOUT is not set 338# CONFIG_HAVE_AOUT is not set
336# CONFIG_BINFMT_MISC is not set 339# CONFIG_BINFMT_MISC is not set
340
341#
342# Power management options (EXPERIMENTAL)
343#
344# CONFIG_PM is not set
345# CONFIG_CPU_IDLE is not set
337CONFIG_NET=y 346CONFIG_NET=y
338 347
339# 348#
340# Networking options 349# Networking options
341# 350#
351CONFIG_COMPAT_NET_DEV_OPS=y
342CONFIG_PACKET=y 352CONFIG_PACKET=y
343# CONFIG_PACKET_MMAP is not set 353# CONFIG_PACKET_MMAP is not set
344CONFIG_UNIX=y 354CONFIG_UNIX=y
@@ -434,6 +444,7 @@ CONFIG_NET_SCHED=y
434# CONFIG_NET_SCH_GRED is not set 444# CONFIG_NET_SCH_GRED is not set
435# CONFIG_NET_SCH_DSMARK is not set 445# CONFIG_NET_SCH_DSMARK is not set
436# CONFIG_NET_SCH_NETEM is not set 446# CONFIG_NET_SCH_NETEM is not set
447# CONFIG_NET_SCH_DRR is not set
437 448
438# 449#
439# Classification 450# Classification
@@ -449,6 +460,7 @@ CONFIG_NET_SCHED=y
449# CONFIG_NET_EMATCH is not set 460# CONFIG_NET_EMATCH is not set
450# CONFIG_NET_CLS_ACT is not set 461# CONFIG_NET_CLS_ACT is not set
451CONFIG_NET_SCH_FIFO=y 462CONFIG_NET_SCH_FIFO=y
463# CONFIG_DCB is not set
452 464
453# 465#
454# Network testing 466# Network testing
@@ -464,8 +476,8 @@ CONFIG_WIRELESS=y
464# CONFIG_CFG80211 is not set 476# CONFIG_CFG80211 is not set
465# CONFIG_WIRELESS_OLD_REGULATORY is not set 477# CONFIG_WIRELESS_OLD_REGULATORY is not set
466# CONFIG_WIRELESS_EXT is not set 478# CONFIG_WIRELESS_EXT is not set
479# CONFIG_LIB80211 is not set
467# CONFIG_MAC80211 is not set 480# CONFIG_MAC80211 is not set
468# CONFIG_IEEE80211 is not set
469# CONFIG_RFKILL is not set 481# CONFIG_RFKILL is not set
470# CONFIG_NET_9P is not set 482# CONFIG_NET_9P is not set
471 483
@@ -516,6 +528,7 @@ CONFIG_IDE=y
516# 528#
517# Please see Documentation/ide/ide.txt for help/info on IDE drives 529# Please see Documentation/ide/ide.txt for help/info on IDE drives
518# 530#
531CONFIG_IDE_ATAPI=y
519# CONFIG_BLK_DEV_IDE_SATA is not set 532# CONFIG_BLK_DEV_IDE_SATA is not set
520CONFIG_IDE_GD=y 533CONFIG_IDE_GD=y
521CONFIG_IDE_GD_ATA=y 534CONFIG_IDE_GD_ATA=y
@@ -525,7 +538,6 @@ CONFIG_IDE_GD_ATA=y
525CONFIG_BLK_DEV_IDECD=y 538CONFIG_BLK_DEV_IDECD=y
526CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 539CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
527# CONFIG_BLK_DEV_IDETAPE is not set 540# CONFIG_BLK_DEV_IDETAPE is not set
528# CONFIG_BLK_DEV_IDESCSI is not set
529# CONFIG_IDE_TASK_IOCTL is not set 541# CONFIG_IDE_TASK_IOCTL is not set
530CONFIG_IDE_PROC_FS=y 542CONFIG_IDE_PROC_FS=y
531 543
@@ -553,6 +565,7 @@ CONFIG_BLK_DEV_GENERIC=y
553# CONFIG_BLK_DEV_JMICRON is not set 565# CONFIG_BLK_DEV_JMICRON is not set
554# CONFIG_BLK_DEV_SC1200 is not set 566# CONFIG_BLK_DEV_SC1200 is not set
555# CONFIG_BLK_DEV_PIIX is not set 567# CONFIG_BLK_DEV_PIIX is not set
568# CONFIG_BLK_DEV_IT8172 is not set
556# CONFIG_BLK_DEV_IT8213 is not set 569# CONFIG_BLK_DEV_IT8213 is not set
557# CONFIG_BLK_DEV_IT821X is not set 570# CONFIG_BLK_DEV_IT821X is not set
558# CONFIG_BLK_DEV_NS87415 is not set 571# CONFIG_BLK_DEV_NS87415 is not set
@@ -619,6 +632,8 @@ CONFIG_SCSI_LOWLEVEL=y
619# CONFIG_MEGARAID_LEGACY is not set 632# CONFIG_MEGARAID_LEGACY is not set
620# CONFIG_MEGARAID_SAS is not set 633# CONFIG_MEGARAID_SAS is not set
621# CONFIG_SCSI_HPTIOP is not set 634# CONFIG_SCSI_HPTIOP is not set
635# CONFIG_LIBFC is not set
636# CONFIG_FCOE is not set
622# CONFIG_SCSI_DMX3191D is not set 637# CONFIG_SCSI_DMX3191D is not set
623# CONFIG_SCSI_FUTURE_DOMAIN is not set 638# CONFIG_SCSI_FUTURE_DOMAIN is not set
624# CONFIG_SCSI_IPS is not set 639# CONFIG_SCSI_IPS is not set
@@ -742,6 +757,7 @@ CONFIG_MII=y
742# CONFIG_NET_VENDOR_3COM is not set 757# CONFIG_NET_VENDOR_3COM is not set
743CONFIG_SMC91X=y 758CONFIG_SMC91X=y
744# CONFIG_SMC911X is not set 759# CONFIG_SMC911X is not set
760# CONFIG_SMSC911X is not set
745# CONFIG_NET_TULIP is not set 761# CONFIG_NET_TULIP is not set
746# CONFIG_HP100 is not set 762# CONFIG_HP100 is not set
747# CONFIG_IBM_NEW_EMAC_ZMII is not set 763# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -826,6 +842,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
826CONFIG_MOUSE_PS2_SYNAPTICS=y 842CONFIG_MOUSE_PS2_SYNAPTICS=y
827CONFIG_MOUSE_PS2_LIFEBOOK=y 843CONFIG_MOUSE_PS2_LIFEBOOK=y
828CONFIG_MOUSE_PS2_TRACKPOINT=y 844CONFIG_MOUSE_PS2_TRACKPOINT=y
845# CONFIG_MOUSE_PS2_ELANTECH is not set
829# CONFIG_MOUSE_PS2_TOUCHKIT is not set 846# CONFIG_MOUSE_PS2_TOUCHKIT is not set
830# CONFIG_MOUSE_SERIAL is not set 847# CONFIG_MOUSE_SERIAL is not set
831# CONFIG_MOUSE_APPLETOUCH is not set 848# CONFIG_MOUSE_APPLETOUCH is not set
@@ -875,6 +892,7 @@ CONFIG_SERIAL_CORE=y
875CONFIG_SERIAL_CORE_CONSOLE=y 892CONFIG_SERIAL_CORE_CONSOLE=y
876# CONFIG_SERIAL_JSM is not set 893# CONFIG_SERIAL_JSM is not set
877CONFIG_UNIX98_PTYS=y 894CONFIG_UNIX98_PTYS=y
895# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
878CONFIG_LEGACY_PTYS=y 896CONFIG_LEGACY_PTYS=y
879CONFIG_LEGACY_PTY_COUNT=256 897CONFIG_LEGACY_PTY_COUNT=256
880# CONFIG_PRINTER is not set 898# CONFIG_PRINTER is not set
@@ -905,11 +923,11 @@ CONFIG_POWER_SUPPLY=y
905# CONFIG_THERMAL is not set 923# CONFIG_THERMAL is not set
906# CONFIG_THERMAL_HWMON is not set 924# CONFIG_THERMAL_HWMON is not set
907# CONFIG_WATCHDOG is not set 925# CONFIG_WATCHDOG is not set
926CONFIG_SSB_POSSIBLE=y
908 927
909# 928#
910# Sonics Silicon Backplane 929# Sonics Silicon Backplane
911# 930#
912CONFIG_SSB_POSSIBLE=y
913CONFIG_SSB=y 931CONFIG_SSB=y
914CONFIG_SSB_SPROM=y 932CONFIG_SSB_SPROM=y
915CONFIG_SSB_PCIHOST_POSSIBLE=y 933CONFIG_SSB_PCIHOST_POSSIBLE=y
@@ -929,7 +947,7 @@ CONFIG_SSB_DRIVER_PCICORE=y
929# CONFIG_MFD_SM501 is not set 947# CONFIG_MFD_SM501 is not set
930# CONFIG_HTC_PASIC3 is not set 948# CONFIG_HTC_PASIC3 is not set
931# CONFIG_MFD_TMIO is not set 949# CONFIG_MFD_TMIO is not set
932# CONFIG_MFD_WM8400 is not set 950# CONFIG_REGULATOR is not set
933 951
934# 952#
935# Multimedia devices 953# Multimedia devices
@@ -957,15 +975,16 @@ CONFIG_FB=y
957# CONFIG_FIRMWARE_EDID is not set 975# CONFIG_FIRMWARE_EDID is not set
958# CONFIG_FB_DDC is not set 976# CONFIG_FB_DDC is not set
959# CONFIG_FB_BOOT_VESA_SUPPORT is not set 977# CONFIG_FB_BOOT_VESA_SUPPORT is not set
960CONFIG_FB_CFB_FILLRECT=m 978# CONFIG_FB_CFB_FILLRECT is not set
961CONFIG_FB_CFB_COPYAREA=m 979# CONFIG_FB_CFB_COPYAREA is not set
962CONFIG_FB_CFB_IMAGEBLIT=m 980# CONFIG_FB_CFB_IMAGEBLIT is not set
963# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 981# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
964# CONFIG_FB_SYS_FILLRECT is not set 982CONFIG_FB_SYS_FILLRECT=m
965# CONFIG_FB_SYS_COPYAREA is not set 983CONFIG_FB_SYS_COPYAREA=m
966# CONFIG_FB_SYS_IMAGEBLIT is not set 984CONFIG_FB_SYS_IMAGEBLIT=m
967# CONFIG_FB_FOREIGN_ENDIAN is not set 985# CONFIG_FB_FOREIGN_ENDIAN is not set
968# CONFIG_FB_SYS_FOPS is not set 986CONFIG_FB_SYS_FOPS=m
987CONFIG_FB_DEFERRED_IO=y
969# CONFIG_FB_SVGALIB is not set 988# CONFIG_FB_SVGALIB is not set
970# CONFIG_FB_MACMODES is not set 989# CONFIG_FB_MACMODES is not set
971# CONFIG_FB_BACKLIGHT is not set 990# CONFIG_FB_BACKLIGHT is not set
@@ -1003,6 +1022,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
1003CONFIG_FB_SH_MOBILE_LCDC=m 1022CONFIG_FB_SH_MOBILE_LCDC=m
1004# CONFIG_FB_VIRTUAL is not set 1023# CONFIG_FB_VIRTUAL is not set
1005# CONFIG_FB_METRONOME is not set 1024# CONFIG_FB_METRONOME is not set
1025# CONFIG_FB_MB862XX is not set
1006# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1026# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1007 1027
1008# 1028#
@@ -1054,11 +1074,9 @@ CONFIG_HID_COMPAT=y
1054CONFIG_HID_A4TECH=y 1074CONFIG_HID_A4TECH=y
1055CONFIG_HID_APPLE=y 1075CONFIG_HID_APPLE=y
1056CONFIG_HID_BELKIN=y 1076CONFIG_HID_BELKIN=y
1057CONFIG_HID_BRIGHT=y
1058CONFIG_HID_CHERRY=y 1077CONFIG_HID_CHERRY=y
1059CONFIG_HID_CHICONY=y 1078CONFIG_HID_CHICONY=y
1060CONFIG_HID_CYPRESS=y 1079CONFIG_HID_CYPRESS=y
1061CONFIG_HID_DELL=y
1062CONFIG_HID_EZKEY=y 1080CONFIG_HID_EZKEY=y
1063CONFIG_HID_GYRATION=y 1081CONFIG_HID_GYRATION=y
1064CONFIG_HID_LOGITECH=y 1082CONFIG_HID_LOGITECH=y
@@ -1066,12 +1084,15 @@ CONFIG_HID_LOGITECH=y
1066# CONFIG_LOGIRUMBLEPAD2_FF is not set 1084# CONFIG_LOGIRUMBLEPAD2_FF is not set
1067CONFIG_HID_MICROSOFT=y 1085CONFIG_HID_MICROSOFT=y
1068CONFIG_HID_MONTEREY=y 1086CONFIG_HID_MONTEREY=y
1087# CONFIG_HID_NTRIG is not set
1069CONFIG_HID_PANTHERLORD=y 1088CONFIG_HID_PANTHERLORD=y
1070# CONFIG_PANTHERLORD_FF is not set 1089# CONFIG_PANTHERLORD_FF is not set
1071CONFIG_HID_PETALYNX=y 1090CONFIG_HID_PETALYNX=y
1072CONFIG_HID_SAMSUNG=y 1091CONFIG_HID_SAMSUNG=y
1073CONFIG_HID_SONY=y 1092CONFIG_HID_SONY=y
1074CONFIG_HID_SUNPLUS=y 1093CONFIG_HID_SUNPLUS=y
1094# CONFIG_GREENASIA_FF is not set
1095# CONFIG_HID_TOPSEED is not set
1075CONFIG_THRUSTMASTER_FF=m 1096CONFIG_THRUSTMASTER_FF=m
1076CONFIG_ZEROPLUS_FF=m 1097CONFIG_ZEROPLUS_FF=m
1077CONFIG_USB_SUPPORT=y 1098CONFIG_USB_SUPPORT=y
@@ -1092,6 +1113,8 @@ CONFIG_USB_DEVICEFS=y
1092# CONFIG_USB_OTG_WHITELIST is not set 1113# CONFIG_USB_OTG_WHITELIST is not set
1093# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1114# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1094CONFIG_USB_MON=y 1115CONFIG_USB_MON=y
1116# CONFIG_USB_WUSB is not set
1117# CONFIG_USB_WUSB_CBAF is not set
1095 1118
1096# 1119#
1097# USB Host Controller Drivers 1120# USB Host Controller Drivers
@@ -1106,6 +1129,8 @@ CONFIG_USB_EHCI_HCD=y
1106# CONFIG_USB_UHCI_HCD is not set 1129# CONFIG_USB_UHCI_HCD is not set
1107# CONFIG_USB_SL811_HCD is not set 1130# CONFIG_USB_SL811_HCD is not set
1108# CONFIG_USB_R8A66597_HCD is not set 1131# CONFIG_USB_R8A66597_HCD is not set
1132# CONFIG_USB_WHCI_HCD is not set
1133# CONFIG_USB_HWA_HCD is not set
1109 1134
1110# 1135#
1111# USB Device Class drivers 1136# USB Device Class drivers
@@ -1116,11 +1141,11 @@ CONFIG_USB_PRINTER=y
1116# CONFIG_USB_TMC is not set 1141# CONFIG_USB_TMC is not set
1117 1142
1118# 1143#
1119# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1144# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1120# 1145#
1121 1146
1122# 1147#
1123# may also be needed; see USB_STORAGE Help for more information 1148# see USB_STORAGE Help for more information
1124# 1149#
1125CONFIG_USB_STORAGE=y 1150CONFIG_USB_STORAGE=y
1126# CONFIG_USB_STORAGE_DEBUG is not set 1151# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1176,6 +1201,7 @@ CONFIG_USB_STORAGE=y
1176# CONFIG_USB_ISIGHTFW is not set 1201# CONFIG_USB_ISIGHTFW is not set
1177# CONFIG_USB_VST is not set 1202# CONFIG_USB_VST is not set
1178# CONFIG_USB_GADGET is not set 1203# CONFIG_USB_GADGET is not set
1204# CONFIG_UWB is not set
1179# CONFIG_MMC is not set 1205# CONFIG_MMC is not set
1180# CONFIG_MEMSTICK is not set 1206# CONFIG_MEMSTICK is not set
1181CONFIG_NEW_LEDS=y 1207CONFIG_NEW_LEDS=y
@@ -1260,10 +1286,7 @@ CONFIG_TMPFS_POSIX_ACL=y
1260CONFIG_HUGETLBFS=y 1286CONFIG_HUGETLBFS=y
1261CONFIG_HUGETLB_PAGE=y 1287CONFIG_HUGETLB_PAGE=y
1262# CONFIG_CONFIGFS_FS is not set 1288# CONFIG_CONFIGFS_FS is not set
1263 1289CONFIG_MISC_FILESYSTEMS=y
1264#
1265# Miscellaneous filesystems
1266#
1267# CONFIG_ADFS_FS is not set 1290# CONFIG_ADFS_FS is not set
1268# CONFIG_AFFS_FS is not set 1291# CONFIG_AFFS_FS is not set
1269# CONFIG_HFS_FS is not set 1292# CONFIG_HFS_FS is not set
@@ -1392,6 +1415,7 @@ CONFIG_DEBUG_INFO=y
1392# CONFIG_DEBUG_MEMORY_INIT is not set 1415# CONFIG_DEBUG_MEMORY_INIT is not set
1393# CONFIG_DEBUG_LIST is not set 1416# CONFIG_DEBUG_LIST is not set
1394# CONFIG_DEBUG_SG is not set 1417# CONFIG_DEBUG_SG is not set
1418# CONFIG_DEBUG_NOTIFIERS is not set
1395# CONFIG_FRAME_POINTER is not set 1419# CONFIG_FRAME_POINTER is not set
1396# CONFIG_RCU_TORTURE_TEST is not set 1420# CONFIG_RCU_TORTURE_TEST is not set
1397# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1421# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1400,17 +1424,25 @@ CONFIG_DEBUG_INFO=y
1400# CONFIG_FAULT_INJECTION is not set 1424# CONFIG_FAULT_INJECTION is not set
1401# CONFIG_LATENCYTOP is not set 1425# CONFIG_LATENCYTOP is not set
1402CONFIG_SYSCTL_SYSCALL_CHECK=y 1426CONFIG_SYSCTL_SYSCALL_CHECK=y
1403CONFIG_NOP_TRACER=y 1427CONFIG_HAVE_FUNCTION_TRACER=y
1404CONFIG_HAVE_FTRACE=y 1428CONFIG_HAVE_DYNAMIC_FTRACE=y
1405# CONFIG_FTRACE is not set 1429CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1430
1431#
1432# Tracers
1433#
1434# CONFIG_FUNCTION_TRACER is not set
1406# CONFIG_IRQSOFF_TRACER is not set 1435# CONFIG_IRQSOFF_TRACER is not set
1407# CONFIG_PREEMPT_TRACER is not set 1436# CONFIG_PREEMPT_TRACER is not set
1408# CONFIG_SCHED_TRACER is not set 1437# CONFIG_SCHED_TRACER is not set
1409# CONFIG_CONTEXT_SWITCH_TRACER is not set 1438# CONFIG_CONTEXT_SWITCH_TRACER is not set
1410# CONFIG_BOOT_TRACER is not set 1439# CONFIG_BOOT_TRACER is not set
1440# CONFIG_TRACE_BRANCH_PROFILING is not set
1411# CONFIG_STACK_TRACER is not set 1441# CONFIG_STACK_TRACER is not set
1412# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1442# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1413# CONFIG_SAMPLES is not set 1443# CONFIG_SAMPLES is not set
1444CONFIG_HAVE_ARCH_KGDB=y
1445# CONFIG_KGDB is not set
1414CONFIG_SH_STANDARD_BIOS=y 1446CONFIG_SH_STANDARD_BIOS=y
1415# CONFIG_EARLY_SCIF_CONSOLE is not set 1447# CONFIG_EARLY_SCIF_CONSOLE is not set
1416# CONFIG_EARLY_PRINTK is not set 1448# CONFIG_EARLY_PRINTK is not set
@@ -1419,7 +1451,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1419# CONFIG_DEBUG_STACK_USAGE is not set 1451# CONFIG_DEBUG_STACK_USAGE is not set
1420# CONFIG_4KSTACKS is not set 1452# CONFIG_4KSTACKS is not set
1421# CONFIG_IRQSTACKS is not set 1453# CONFIG_IRQSTACKS is not set
1422# CONFIG_SH_KGDB is not set 1454CONFIG_DUMP_CODE=y
1455# CONFIG_SH_NO_BSS_INIT is not set
1456# CONFIG_MORE_COMPILE_OPTIONS is not set
1423 1457
1424# 1458#
1425# Security options 1459# Security options
@@ -1435,7 +1469,11 @@ CONFIG_CRYPTO=y
1435# 1469#
1436# CONFIG_CRYPTO_FIPS is not set 1470# CONFIG_CRYPTO_FIPS is not set
1437CONFIG_CRYPTO_ALGAPI=y 1471CONFIG_CRYPTO_ALGAPI=y
1472CONFIG_CRYPTO_ALGAPI2=y
1473CONFIG_CRYPTO_HASH=y
1474CONFIG_CRYPTO_HASH2=y
1438# CONFIG_CRYPTO_MANAGER is not set 1475# CONFIG_CRYPTO_MANAGER is not set
1476# CONFIG_CRYPTO_MANAGER2 is not set
1439# CONFIG_CRYPTO_GF128MUL is not set 1477# CONFIG_CRYPTO_GF128MUL is not set
1440# CONFIG_CRYPTO_NULL is not set 1478# CONFIG_CRYPTO_NULL is not set
1441# CONFIG_CRYPTO_CRYPTD is not set 1479# CONFIG_CRYPTO_CRYPTD is not set
@@ -1519,6 +1557,7 @@ CONFIG_CRYPTO_HW=y
1519# Library routines 1557# Library routines
1520# 1558#
1521CONFIG_BITREVERSE=y 1559CONFIG_BITREVERSE=y
1560CONFIG_GENERIC_FIND_LAST_BIT=y
1522# CONFIG_CRC_CCITT is not set 1561# CONFIG_CRC_CCITT is not set
1523# CONFIG_CRC16 is not set 1562# CONFIG_CRC16 is not set
1524CONFIG_CRC_T10DIF=y 1563CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/se7206_defconfig b/arch/sh/configs/se7206_defconfig
index 25717ff26ca9..e5b55b6f002d 100644
--- a/arch/sh/configs/se7206_defconfig
+++ b/arch/sh/configs/se7206_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:57:39 2008 4# Fri Jan 9 17:31:27 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17# CONFIG_GENERIC_TIME is not set 17# CONFIG_GENERIC_TIME is not set
18# CONFIG_GENERIC_CLOCKEVENTS is not set 18# CONFIG_GENERIC_CLOCKEVENTS is not set
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -69,6 +71,7 @@ CONFIG_EMBEDDED=y
69# CONFIG_SYSCTL_SYSCALL is not set 71# CONFIG_SYSCTL_SYSCALL is not set
70CONFIG_KALLSYMS=y 72CONFIG_KALLSYMS=y
71CONFIG_KALLSYMS_ALL=y 73CONFIG_KALLSYMS_ALL=y
74CONFIG_KALLSYMS_STRIP_GENERATED=y
72# CONFIG_KALLSYMS_EXTRA_PASS is not set 75# CONFIG_KALLSYMS_EXTRA_PASS is not set
73CONFIG_HOTPLUG=y 76CONFIG_HOTPLUG=y
74CONFIG_PRINTK=y 77CONFIG_PRINTK=y
@@ -84,11 +87,11 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 87CONFIG_EVENTFD=y
85CONFIG_AIO=y 88CONFIG_AIO=y
86CONFIG_VM_EVENT_COUNTERS=y 89CONFIG_VM_EVENT_COUNTERS=y
87CONFIG_PCI_QUIRKS=y
88# CONFIG_SLAB is not set 90# CONFIG_SLAB is not set
89# CONFIG_SLUB is not set 91# CONFIG_SLUB is not set
90CONFIG_SLOB=y 92CONFIG_SLOB=y
91CONFIG_PROFILING=y 93CONFIG_PROFILING=y
94CONFIG_TRACEPOINTS=y
92# CONFIG_MARKERS is not set 95# CONFIG_MARKERS is not set
93CONFIG_OPROFILE=y 96CONFIG_OPROFILE=y
94CONFIG_HAVE_OPROFILE=y 97CONFIG_HAVE_OPROFILE=y
@@ -99,7 +102,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
99CONFIG_HAVE_CLK=y 102CONFIG_HAVE_CLK=y
100CONFIG_HAVE_GENERIC_DMA_COHERENT=y 103CONFIG_HAVE_GENERIC_DMA_COHERENT=y
101CONFIG_RT_MUTEXES=y 104CONFIG_RT_MUTEXES=y
102CONFIG_TINY_SHMEM=y
103CONFIG_BASE_SMALL=0 105CONFIG_BASE_SMALL=0
104CONFIG_MODULES=y 106CONFIG_MODULES=y
105# CONFIG_MODULE_FORCE_LOAD is not set 107# CONFIG_MODULE_FORCE_LOAD is not set
@@ -107,11 +109,9 @@ CONFIG_MODULE_UNLOAD=y
107# CONFIG_MODULE_FORCE_UNLOAD is not set 109# CONFIG_MODULE_FORCE_UNLOAD is not set
108# CONFIG_MODVERSIONS is not set 110# CONFIG_MODVERSIONS is not set
109# CONFIG_MODULE_SRCVERSION_ALL is not set 111# CONFIG_MODULE_SRCVERSION_ALL is not set
110CONFIG_KMOD=y
111CONFIG_BLOCK=y 112CONFIG_BLOCK=y
112# CONFIG_LBD is not set 113# CONFIG_LBD is not set
113# CONFIG_BLK_DEV_IO_TRACE is not set 114# CONFIG_BLK_DEV_IO_TRACE is not set
114# CONFIG_LSF is not set
115# CONFIG_BLK_DEV_BSG is not set 115# CONFIG_BLK_DEV_BSG is not set
116# CONFIG_BLK_DEV_INTEGRITY is not set 116# CONFIG_BLK_DEV_INTEGRITY is not set
117 117
@@ -128,6 +128,11 @@ CONFIG_IOSCHED_NOOP=y
128CONFIG_DEFAULT_NOOP=y 128CONFIG_DEFAULT_NOOP=y
129CONFIG_DEFAULT_IOSCHED="noop" 129CONFIG_DEFAULT_IOSCHED="noop"
130# CONFIG_CLASSIC_RCU is not set 130# CONFIG_CLASSIC_RCU is not set
131# CONFIG_TREE_RCU is not set
132CONFIG_PREEMPT_RCU=y
133CONFIG_RCU_TRACE=y
134# CONFIG_TREE_RCU_TRACE is not set
135CONFIG_PREEMPT_RCU_TRACE=y
131# CONFIG_FREEZER is not set 136# CONFIG_FREEZER is not set
132 137
133# 138#
@@ -136,6 +141,7 @@ CONFIG_DEFAULT_IOSCHED="noop"
136CONFIG_CPU_SH2=y 141CONFIG_CPU_SH2=y
137CONFIG_CPU_SH2A=y 142CONFIG_CPU_SH2A=y
138# CONFIG_CPU_SUBTYPE_SH7619 is not set 143# CONFIG_CPU_SUBTYPE_SH7619 is not set
144# CONFIG_CPU_SUBTYPE_SH7201 is not set
139# CONFIG_CPU_SUBTYPE_SH7203 is not set 145# CONFIG_CPU_SUBTYPE_SH7203 is not set
140CONFIG_CPU_SUBTYPE_SH7206=y 146CONFIG_CPU_SUBTYPE_SH7206=y
141# CONFIG_CPU_SUBTYPE_SH7263 is not set 147# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -197,7 +203,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
197CONFIG_SPARSEMEM_STATIC=y 203CONFIG_SPARSEMEM_STATIC=y
198CONFIG_PAGEFLAGS_EXTENDED=y 204CONFIG_PAGEFLAGS_EXTENDED=y
199CONFIG_SPLIT_PTLOCK_CPUS=4 205CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_RESOURCES_64BIT is not set
201# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
202CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
203CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -281,8 +286,6 @@ CONFIG_KEXEC=y
281# CONFIG_PREEMPT_NONE is not set 286# CONFIG_PREEMPT_NONE is not set
282# CONFIG_PREEMPT_VOLUNTARY is not set 287# CONFIG_PREEMPT_VOLUNTARY is not set
283CONFIG_PREEMPT=y 288CONFIG_PREEMPT=y
284CONFIG_PREEMPT_RCU=y
285CONFIG_RCU_TRACE=y
286CONFIG_GUSA=y 289CONFIG_GUSA=y
287 290
288# 291#
@@ -296,10 +299,6 @@ CONFIG_CMDLINE="console=ttySC3,115200 ignore_loglevel earlyprintk=serial"
296# 299#
297# Bus options 300# Bus options
298# 301#
299CONFIG_CF_ENABLER=y
300# CONFIG_CF_AREA5 is not set
301CONFIG_CF_AREA6=y
302CONFIG_CF_BASE_ADDR=0xb8000000
303# CONFIG_ARCH_SUPPORTS_MSI is not set 302# CONFIG_ARCH_SUPPORTS_MSI is not set
304# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
305 304
@@ -312,11 +311,19 @@ CONFIG_BINFMT_ZFLAT=y
312CONFIG_BINFMT_SHARED_FLAT=y 311CONFIG_BINFMT_SHARED_FLAT=y
313# CONFIG_HAVE_AOUT is not set 312# CONFIG_HAVE_AOUT is not set
314CONFIG_BINFMT_MISC=y 313CONFIG_BINFMT_MISC=y
314
315#
316# Power management options (EXPERIMENTAL)
317#
318# CONFIG_PM is not set
319# CONFIG_CPU_IDLE is not set
315CONFIG_NET=y 320CONFIG_NET=y
316 321
317# 322#
318# Networking options 323# Networking options
319# 324#
325# CONFIG_NET_NS is not set
326CONFIG_COMPAT_NET_DEV_OPS=y
320CONFIG_PACKET=y 327CONFIG_PACKET=y
321# CONFIG_PACKET_MMAP is not set 328# CONFIG_PACKET_MMAP is not set
322CONFIG_UNIX=y 329CONFIG_UNIX=y
@@ -372,6 +379,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
372# CONFIG_ECONET is not set 379# CONFIG_ECONET is not set
373# CONFIG_WAN_ROUTER is not set 380# CONFIG_WAN_ROUTER is not set
374# CONFIG_NET_SCHED is not set 381# CONFIG_NET_SCHED is not set
382# CONFIG_DCB is not set
375 383
376# 384#
377# Network testing 385# Network testing
@@ -387,8 +395,8 @@ CONFIG_WIRELESS=y
387# CONFIG_CFG80211 is not set 395# CONFIG_CFG80211 is not set
388# CONFIG_WIRELESS_OLD_REGULATORY is not set 396# CONFIG_WIRELESS_OLD_REGULATORY is not set
389# CONFIG_WIRELESS_EXT is not set 397# CONFIG_WIRELESS_EXT is not set
398# CONFIG_LIB80211 is not set
390# CONFIG_MAC80211 is not set 399# CONFIG_MAC80211 is not set
391# CONFIG_IEEE80211 is not set
392# CONFIG_RFKILL is not set 400# CONFIG_RFKILL is not set
393# CONFIG_NET_9P is not set 401# CONFIG_NET_9P is not set
394 402
@@ -500,6 +508,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
500CONFIG_MISC_DEVICES=y 508CONFIG_MISC_DEVICES=y
501CONFIG_EEPROM_93CX6=y 509CONFIG_EEPROM_93CX6=y
502# CONFIG_ENCLOSURE_SERVICES is not set 510# CONFIG_ENCLOSURE_SERVICES is not set
511# CONFIG_C2PORT is not set
503CONFIG_HAVE_IDE=y 512CONFIG_HAVE_IDE=y
504# CONFIG_IDE is not set 513# CONFIG_IDE is not set
505 514
@@ -526,6 +535,7 @@ CONFIG_MII=y
526# CONFIG_STNIC is not set 535# CONFIG_STNIC is not set
527CONFIG_SMC91X=y 536CONFIG_SMC91X=y
528# CONFIG_SMC911X is not set 537# CONFIG_SMC911X is not set
538# CONFIG_SMSC911X is not set
529# CONFIG_IBM_NEW_EMAC_ZMII is not set 539# CONFIG_IBM_NEW_EMAC_ZMII is not set
530# CONFIG_IBM_NEW_EMAC_RGMII is not set 540# CONFIG_IBM_NEW_EMAC_RGMII is not set
531# CONFIG_IBM_NEW_EMAC_TAH is not set 541# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -598,11 +608,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y
598# CONFIG_THERMAL is not set 608# CONFIG_THERMAL is not set
599# CONFIG_THERMAL_HWMON is not set 609# CONFIG_THERMAL_HWMON is not set
600# CONFIG_WATCHDOG is not set 610# CONFIG_WATCHDOG is not set
611CONFIG_SSB_POSSIBLE=y
601 612
602# 613#
603# Sonics Silicon Backplane 614# Sonics Silicon Backplane
604# 615#
605CONFIG_SSB_POSSIBLE=y
606# CONFIG_SSB is not set 616# CONFIG_SSB is not set
607 617
608# 618#
@@ -612,7 +622,7 @@ CONFIG_SSB_POSSIBLE=y
612# CONFIG_MFD_SM501 is not set 622# CONFIG_MFD_SM501 is not set
613# CONFIG_HTC_PASIC3 is not set 623# CONFIG_HTC_PASIC3 is not set
614# CONFIG_MFD_TMIO is not set 624# CONFIG_MFD_TMIO is not set
615# CONFIG_MFD_WM8400 is not set 625# CONFIG_REGULATOR is not set
616 626
617# 627#
618# Multimedia devices 628# Multimedia devices
@@ -732,10 +742,7 @@ CONFIG_TMPFS=y
732# CONFIG_TMPFS_POSIX_ACL is not set 742# CONFIG_TMPFS_POSIX_ACL is not set
733# CONFIG_HUGETLB_PAGE is not set 743# CONFIG_HUGETLB_PAGE is not set
734CONFIG_CONFIGFS_FS=y 744CONFIG_CONFIGFS_FS=y
735 745CONFIG_MISC_FILESYSTEMS=y
736#
737# Miscellaneous filesystems
738#
739# CONFIG_ADFS_FS is not set 746# CONFIG_ADFS_FS is not set
740# CONFIG_AFFS_FS is not set 747# CONFIG_AFFS_FS is not set
741# CONFIG_HFS_FS is not set 748# CONFIG_HFS_FS is not set
@@ -812,6 +819,7 @@ CONFIG_DEBUG_PREEMPT=y
812# CONFIG_LOCK_STAT is not set 819# CONFIG_LOCK_STAT is not set
813CONFIG_DEBUG_SPINLOCK_SLEEP=y 820CONFIG_DEBUG_SPINLOCK_SLEEP=y
814# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 821# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
822CONFIG_STACKTRACE=y
815# CONFIG_DEBUG_KOBJECT is not set 823# CONFIG_DEBUG_KOBJECT is not set
816CONFIG_DEBUG_BUGVERBOSE=y 824CONFIG_DEBUG_BUGVERBOSE=y
817# CONFIG_DEBUG_INFO is not set 825# CONFIG_DEBUG_INFO is not set
@@ -820,6 +828,7 @@ CONFIG_DEBUG_VM=y
820# CONFIG_DEBUG_MEMORY_INIT is not set 828# CONFIG_DEBUG_MEMORY_INIT is not set
821CONFIG_DEBUG_LIST=y 829CONFIG_DEBUG_LIST=y
822# CONFIG_DEBUG_SG is not set 830# CONFIG_DEBUG_SG is not set
831# CONFIG_DEBUG_NOTIFIERS is not set
823CONFIG_FRAME_POINTER=y 832CONFIG_FRAME_POINTER=y
824# CONFIG_RCU_TORTURE_TEST is not set 833# CONFIG_RCU_TORTURE_TEST is not set
825# CONFIG_BACKTRACE_SELF_TEST is not set 834# CONFIG_BACKTRACE_SELF_TEST is not set
@@ -827,20 +836,35 @@ CONFIG_FRAME_POINTER=y
827# CONFIG_FAULT_INJECTION is not set 836# CONFIG_FAULT_INJECTION is not set
828# CONFIG_LATENCYTOP is not set 837# CONFIG_LATENCYTOP is not set
829CONFIG_NOP_TRACER=y 838CONFIG_NOP_TRACER=y
830CONFIG_HAVE_FTRACE=y 839CONFIG_HAVE_FUNCTION_TRACER=y
831# CONFIG_FTRACE is not set 840CONFIG_HAVE_DYNAMIC_FTRACE=y
841CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
842CONFIG_RING_BUFFER=y
843CONFIG_TRACING=y
844
845#
846# Tracers
847#
848# CONFIG_FUNCTION_TRACER is not set
832# CONFIG_SCHED_TRACER is not set 849# CONFIG_SCHED_TRACER is not set
833# CONFIG_CONTEXT_SWITCH_TRACER is not set 850# CONFIG_CONTEXT_SWITCH_TRACER is not set
834# CONFIG_BOOT_TRACER is not set 851# CONFIG_BOOT_TRACER is not set
852# CONFIG_TRACE_BRANCH_PROFILING is not set
835# CONFIG_STACK_TRACER is not set 853# CONFIG_STACK_TRACER is not set
854# CONFIG_FTRACE_STARTUP_TEST is not set
836# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 855# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
837# CONFIG_SAMPLES is not set 856# CONFIG_SAMPLES is not set
857CONFIG_HAVE_ARCH_KGDB=y
858# CONFIG_KGDB is not set
838# CONFIG_SH_STANDARD_BIOS is not set 859# CONFIG_SH_STANDARD_BIOS is not set
839# CONFIG_EARLY_SCIF_CONSOLE is not set 860# CONFIG_EARLY_SCIF_CONSOLE is not set
840# CONFIG_DEBUG_BOOTMEM is not set 861# CONFIG_DEBUG_BOOTMEM is not set
841CONFIG_DEBUG_STACKOVERFLOW=y 862CONFIG_DEBUG_STACKOVERFLOW=y
842CONFIG_DEBUG_STACK_USAGE=y 863CONFIG_DEBUG_STACK_USAGE=y
843# CONFIG_IRQSTACKS is not set 864# CONFIG_IRQSTACKS is not set
865CONFIG_DUMP_CODE=y
866# CONFIG_SH_NO_BSS_INIT is not set
867# CONFIG_MORE_COMPILE_OPTIONS is not set
844 868
845# 869#
846# Security options 870# Security options
@@ -856,7 +880,11 @@ CONFIG_CRYPTO=y
856# 880#
857# CONFIG_CRYPTO_FIPS is not set 881# CONFIG_CRYPTO_FIPS is not set
858CONFIG_CRYPTO_ALGAPI=y 882CONFIG_CRYPTO_ALGAPI=y
883CONFIG_CRYPTO_ALGAPI2=y
884CONFIG_CRYPTO_HASH=y
885CONFIG_CRYPTO_HASH2=y
859# CONFIG_CRYPTO_MANAGER is not set 886# CONFIG_CRYPTO_MANAGER is not set
887# CONFIG_CRYPTO_MANAGER2 is not set
860# CONFIG_CRYPTO_GF128MUL is not set 888# CONFIG_CRYPTO_GF128MUL is not set
861# CONFIG_CRYPTO_NULL is not set 889# CONFIG_CRYPTO_NULL is not set
862# CONFIG_CRYPTO_CRYPTD is not set 890# CONFIG_CRYPTO_CRYPTD is not set
@@ -890,7 +918,7 @@ CONFIG_CRYPTO_ALGAPI=y
890# 918#
891# Digest 919# Digest
892# 920#
893# CONFIG_CRYPTO_CRC32C is not set 921CONFIG_CRYPTO_CRC32C=y
894# CONFIG_CRYPTO_MD4 is not set 922# CONFIG_CRYPTO_MD4 is not set
895# CONFIG_CRYPTO_MD5 is not set 923# CONFIG_CRYPTO_MD5 is not set
896# CONFIG_CRYPTO_MICHAEL_MIC is not set 924# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -939,6 +967,7 @@ CONFIG_CRYPTO_LZO=y
939# Library routines 967# Library routines
940# 968#
941CONFIG_BITREVERSE=y 969CONFIG_BITREVERSE=y
970CONFIG_GENERIC_FIND_LAST_BIT=y
942CONFIG_CRC_CCITT=y 971CONFIG_CRC_CCITT=y
943CONFIG_CRC16=y 972CONFIG_CRC16=y
944# CONFIG_CRC_T10DIF is not set 973# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7343_defconfig b/arch/sh/configs/se7343_defconfig
index be246f381507..390052577031 100644
--- a/arch/sh/configs/se7343_defconfig
+++ b/arch/sh/configs/se7343_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.28-rc6 3# Linux kernel version: 2.6.28
4# Thu Dec 4 16:40:25 2008 4# Fri Jan 9 17:33:53 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -78,7 +80,6 @@ CONFIG_SLAB=y
78# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
80# CONFIG_PROFILING is not set 82# CONFIG_PROFILING is not set
81# CONFIG_MARKERS is not set
82CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
83# CONFIG_KPROBES is not set 84# CONFIG_KPROBES is not set
84CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,7 +89,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
88CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
91CONFIG_TINY_SHMEM=y
92CONFIG_BASE_SMALL=0 92CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 93CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 94# CONFIG_MODULE_FORCE_LOAD is not set
@@ -96,11 +96,9 @@ CONFIG_MODULE_UNLOAD=y
96CONFIG_MODULE_FORCE_UNLOAD=y 96CONFIG_MODULE_FORCE_UNLOAD=y
97# CONFIG_MODVERSIONS is not set 97# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 98# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 99CONFIG_BLOCK=y
101# CONFIG_LBD is not set 100# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 101# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 102# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 103# CONFIG_BLK_DEV_INTEGRITY is not set
106 104
@@ -117,6 +115,10 @@ CONFIG_DEFAULT_DEADLINE=y
117# CONFIG_DEFAULT_NOOP is not set 115# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="deadline" 116CONFIG_DEFAULT_IOSCHED="deadline"
119CONFIG_CLASSIC_RCU=y 117CONFIG_CLASSIC_RCU=y
118# CONFIG_TREE_RCU is not set
119# CONFIG_PREEMPT_RCU is not set
120# CONFIG_TREE_RCU_TRACE is not set
121# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 122# CONFIG_FREEZER is not set
121 123
122# 124#
@@ -190,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
190CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
191CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
192CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
193# CONFIG_RESOURCES_64BIT is not set
194# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
195CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
196CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -280,7 +281,6 @@ CONFIG_CMDLINE="console=ttySC0,115200"
280# 281#
281# Bus options 282# Bus options
282# 283#
283# CONFIG_CF_ENABLER is not set
284# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
285# CONFIG_PCCARD is not set 285# CONFIG_PCCARD is not set
286 286
@@ -291,11 +291,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 292# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 293# CONFIG_BINFMT_MISC is not set
294
295#
296# Power management options (EXPERIMENTAL)
297#
298# CONFIG_PM is not set
299# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 300CONFIG_NET=y
295 301
296# 302#
297# Networking options 303# Networking options
298# 304#
305CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 306CONFIG_PACKET=y
300CONFIG_PACKET_MMAP=y 307CONFIG_PACKET_MMAP=y
301CONFIG_UNIX=y 308CONFIG_UNIX=y
@@ -347,6 +354,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_ECONET is not set 354# CONFIG_ECONET is not set
348# CONFIG_WAN_ROUTER is not set 355# CONFIG_WAN_ROUTER is not set
349# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set
350 358
351# 359#
352# Network testing 360# Network testing
@@ -362,8 +370,8 @@ CONFIG_WIRELESS=y
362# CONFIG_CFG80211 is not set 370# CONFIG_CFG80211 is not set
363# CONFIG_WIRELESS_OLD_REGULATORY is not set 371# CONFIG_WIRELESS_OLD_REGULATORY is not set
364# CONFIG_WIRELESS_EXT is not set 372# CONFIG_WIRELESS_EXT is not set
373# CONFIG_LIB80211 is not set
365# CONFIG_MAC80211 is not set 374# CONFIG_MAC80211 is not set
366# CONFIG_IEEE80211 is not set
367# CONFIG_RFKILL is not set 375# CONFIG_RFKILL is not set
368# CONFIG_NET_9P is not set 376# CONFIG_NET_9P is not set
369 377
@@ -661,8 +669,8 @@ CONFIG_I2C_SH_MOBILE=y
661# Miscellaneous I2C Chip support 669# Miscellaneous I2C Chip support
662# 670#
663# CONFIG_DS1682 is not set 671# CONFIG_DS1682 is not set
664# CONFIG_AT24 is not set 672# CONFIG_EEPROM_AT24 is not set
665# CONFIG_SENSORS_EEPROM is not set 673# CONFIG_EEPROM_LEGACY is not set
666# CONFIG_SENSORS_PCF8574 is not set 674# CONFIG_SENSORS_PCF8574 is not set
667# CONFIG_PCF8575 is not set 675# CONFIG_PCF8575 is not set
668# CONFIG_SENSORS_PCA9539 is not set 676# CONFIG_SENSORS_PCA9539 is not set
@@ -693,6 +701,7 @@ CONFIG_SSB_POSSIBLE=y
693# CONFIG_MFD_CORE is not set 701# CONFIG_MFD_CORE is not set
694# CONFIG_MFD_SM501 is not set 702# CONFIG_MFD_SM501 is not set
695# CONFIG_HTC_PASIC3 is not set 703# CONFIG_HTC_PASIC3 is not set
704# CONFIG_TWL4030_CORE is not set
696# CONFIG_MFD_TMIO is not set 705# CONFIG_MFD_TMIO is not set
697# CONFIG_PMIC_DA903X is not set 706# CONFIG_PMIC_DA903X is not set
698# CONFIG_MFD_WM8400 is not set 707# CONFIG_MFD_WM8400 is not set
@@ -743,11 +752,13 @@ CONFIG_V4L_USB_DRIVERS=y
743# CONFIG_USB_VIDEO_CLASS is not set 752# CONFIG_USB_VIDEO_CLASS is not set
744CONFIG_USB_GSPCA=m 753CONFIG_USB_GSPCA=m
745# CONFIG_USB_M5602 is not set 754# CONFIG_USB_M5602 is not set
755# CONFIG_USB_STV06XX is not set
746# CONFIG_USB_GSPCA_CONEX is not set 756# CONFIG_USB_GSPCA_CONEX is not set
747# CONFIG_USB_GSPCA_ETOMS is not set 757# CONFIG_USB_GSPCA_ETOMS is not set
748# CONFIG_USB_GSPCA_FINEPIX is not set 758# CONFIG_USB_GSPCA_FINEPIX is not set
749# CONFIG_USB_GSPCA_MARS is not set 759# CONFIG_USB_GSPCA_MARS is not set
750# CONFIG_USB_GSPCA_OV519 is not set 760# CONFIG_USB_GSPCA_OV519 is not set
761# CONFIG_USB_GSPCA_OV534 is not set
751# CONFIG_USB_GSPCA_PAC207 is not set 762# CONFIG_USB_GSPCA_PAC207 is not set
752# CONFIG_USB_GSPCA_PAC7311 is not set 763# CONFIG_USB_GSPCA_PAC7311 is not set
753# CONFIG_USB_GSPCA_SONIXB is not set 764# CONFIG_USB_GSPCA_SONIXB is not set
@@ -786,6 +797,7 @@ CONFIG_RADIO_ADAPTERS=y
786# CONFIG_USB_DSBR is not set 797# CONFIG_USB_DSBR is not set
787# CONFIG_USB_SI470X is not set 798# CONFIG_USB_SI470X is not set
788# CONFIG_USB_MR800 is not set 799# CONFIG_USB_MR800 is not set
800# CONFIG_RADIO_TEA5764 is not set
789# CONFIG_DAB is not set 801# CONFIG_DAB is not set
790 802
791# 803#
@@ -797,15 +809,16 @@ CONFIG_FB=y
797CONFIG_FIRMWARE_EDID=y 809CONFIG_FIRMWARE_EDID=y
798# CONFIG_FB_DDC is not set 810# CONFIG_FB_DDC is not set
799# CONFIG_FB_BOOT_VESA_SUPPORT is not set 811# CONFIG_FB_BOOT_VESA_SUPPORT is not set
800CONFIG_FB_CFB_FILLRECT=m 812# CONFIG_FB_CFB_FILLRECT is not set
801CONFIG_FB_CFB_COPYAREA=m 813# CONFIG_FB_CFB_COPYAREA is not set
802CONFIG_FB_CFB_IMAGEBLIT=m 814# CONFIG_FB_CFB_IMAGEBLIT is not set
803# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 815# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
804# CONFIG_FB_SYS_FILLRECT is not set 816CONFIG_FB_SYS_FILLRECT=m
805# CONFIG_FB_SYS_COPYAREA is not set 817CONFIG_FB_SYS_COPYAREA=m
806# CONFIG_FB_SYS_IMAGEBLIT is not set 818CONFIG_FB_SYS_IMAGEBLIT=m
807# CONFIG_FB_FOREIGN_ENDIAN is not set 819# CONFIG_FB_FOREIGN_ENDIAN is not set
808# CONFIG_FB_SYS_FOPS is not set 820CONFIG_FB_SYS_FOPS=m
821CONFIG_FB_DEFERRED_IO=y
809# CONFIG_FB_SVGALIB is not set 822# CONFIG_FB_SVGALIB is not set
810# CONFIG_FB_MACMODES is not set 823# CONFIG_FB_MACMODES is not set
811# CONFIG_FB_BACKLIGHT is not set 824# CONFIG_FB_BACKLIGHT is not set
@@ -881,11 +894,9 @@ CONFIG_HID_COMPAT=y
881CONFIG_HID_A4TECH=y 894CONFIG_HID_A4TECH=y
882CONFIG_HID_APPLE=y 895CONFIG_HID_APPLE=y
883CONFIG_HID_BELKIN=y 896CONFIG_HID_BELKIN=y
884CONFIG_HID_BRIGHT=y
885CONFIG_HID_CHERRY=y 897CONFIG_HID_CHERRY=y
886CONFIG_HID_CHICONY=y 898CONFIG_HID_CHICONY=y
887CONFIG_HID_CYPRESS=y 899CONFIG_HID_CYPRESS=y
888CONFIG_HID_DELL=y
889CONFIG_HID_EZKEY=y 900CONFIG_HID_EZKEY=y
890CONFIG_HID_GYRATION=y 901CONFIG_HID_GYRATION=y
891CONFIG_HID_LOGITECH=y 902CONFIG_HID_LOGITECH=y
@@ -893,12 +904,15 @@ CONFIG_HID_LOGITECH=y
893# CONFIG_LOGIRUMBLEPAD2_FF is not set 904# CONFIG_LOGIRUMBLEPAD2_FF is not set
894CONFIG_HID_MICROSOFT=y 905CONFIG_HID_MICROSOFT=y
895CONFIG_HID_MONTEREY=y 906CONFIG_HID_MONTEREY=y
907# CONFIG_HID_NTRIG is not set
896CONFIG_HID_PANTHERLORD=y 908CONFIG_HID_PANTHERLORD=y
897# CONFIG_PANTHERLORD_FF is not set 909# CONFIG_PANTHERLORD_FF is not set
898CONFIG_HID_PETALYNX=y 910CONFIG_HID_PETALYNX=y
899CONFIG_HID_SAMSUNG=y 911CONFIG_HID_SAMSUNG=y
900CONFIG_HID_SONY=y 912CONFIG_HID_SONY=y
901CONFIG_HID_SUNPLUS=y 913CONFIG_HID_SUNPLUS=y
914# CONFIG_GREENASIA_FF is not set
915# CONFIG_HID_TOPSEED is not set
902# CONFIG_THRUSTMASTER_FF is not set 916# CONFIG_THRUSTMASTER_FF is not set
903# CONFIG_ZEROPLUS_FF is not set 917# CONFIG_ZEROPLUS_FF is not set
904CONFIG_USB_SUPPORT=y 918CONFIG_USB_SUPPORT=y
@@ -997,7 +1011,6 @@ CONFIG_UIO=y
997# CONFIG_UIO_SMX is not set 1011# CONFIG_UIO_SMX is not set
998# CONFIG_UIO_SERCOS3 is not set 1012# CONFIG_UIO_SERCOS3 is not set
999# CONFIG_STAGING is not set 1013# CONFIG_STAGING is not set
1000CONFIG_STAGING_EXCLUDE_BUILD=y
1001 1014
1002# 1015#
1003# File systems 1016# File systems
@@ -1051,10 +1064,7 @@ CONFIG_TMPFS=y
1051# CONFIG_HUGETLBFS is not set 1064# CONFIG_HUGETLBFS is not set
1052# CONFIG_HUGETLB_PAGE is not set 1065# CONFIG_HUGETLB_PAGE is not set
1053# CONFIG_CONFIGFS_FS is not set 1066# CONFIG_CONFIGFS_FS is not set
1054 1067CONFIG_MISC_FILESYSTEMS=y
1055#
1056# Miscellaneous filesystems
1057#
1058# CONFIG_ADFS_FS is not set 1068# CONFIG_ADFS_FS is not set
1059# CONFIG_AFFS_FS is not set 1069# CONFIG_AFFS_FS is not set
1060# CONFIG_HFS_FS is not set 1070# CONFIG_HFS_FS is not set
@@ -1138,11 +1148,12 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1138# 1148#
1139# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1149# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1140# CONFIG_SAMPLES is not set 1150# CONFIG_SAMPLES is not set
1151CONFIG_HAVE_ARCH_KGDB=y
1141# CONFIG_SH_STANDARD_BIOS is not set 1152# CONFIG_SH_STANDARD_BIOS is not set
1142CONFIG_EARLY_SCIF_CONSOLE=y 1153CONFIG_EARLY_SCIF_CONSOLE=y
1143CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 1154CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1144CONFIG_EARLY_PRINTK=y 1155CONFIG_EARLY_PRINTK=y
1145# CONFIG_SH_KGDB is not set 1156# CONFIG_MORE_COMPILE_OPTIONS is not set
1146 1157
1147# 1158#
1148# Security options 1159# Security options
@@ -1158,6 +1169,7 @@ CONFIG_CRYPTO=y
1158# 1169#
1159# CONFIG_CRYPTO_FIPS is not set 1170# CONFIG_CRYPTO_FIPS is not set
1160# CONFIG_CRYPTO_MANAGER is not set 1171# CONFIG_CRYPTO_MANAGER is not set
1172# CONFIG_CRYPTO_MANAGER2 is not set
1161# CONFIG_CRYPTO_GF128MUL is not set 1173# CONFIG_CRYPTO_GF128MUL is not set
1162# CONFIG_CRYPTO_NULL is not set 1174# CONFIG_CRYPTO_NULL is not set
1163# CONFIG_CRYPTO_CRYPTD is not set 1175# CONFIG_CRYPTO_CRYPTD is not set
@@ -1240,6 +1252,7 @@ CONFIG_CRYPTO_HW=y
1240# Library routines 1252# Library routines
1241# 1253#
1242CONFIG_BITREVERSE=y 1254CONFIG_BITREVERSE=y
1255CONFIG_GENERIC_FIND_LAST_BIT=y
1243# CONFIG_CRC_CCITT is not set 1256# CONFIG_CRC_CCITT is not set
1244# CONFIG_CRC16 is not set 1257# CONFIG_CRC16 is not set
1245# CONFIG_CRC_T10DIF is not set 1258# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7619_defconfig b/arch/sh/configs/se7619_defconfig
index db9cacd7c4e7..932b0235b1de 100644
--- a/arch/sh/configs/se7619_defconfig
+++ b/arch/sh/configs/se7619_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:03:29 2008 4# Fri Jan 9 17:36:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17# CONFIG_GENERIC_TIME is not set 17# CONFIG_GENERIC_TIME is not set
18# CONFIG_GENERIC_CLOCKEVENTS is not set 18# CONFIG_GENERIC_CLOCKEVENTS is not set
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -61,12 +63,10 @@ CONFIG_TIMERFD=y
61CONFIG_EVENTFD=y 63CONFIG_EVENTFD=y
62CONFIG_AIO=y 64CONFIG_AIO=y
63# CONFIG_VM_EVENT_COUNTERS is not set 65# CONFIG_VM_EVENT_COUNTERS is not set
64CONFIG_PCI_QUIRKS=y
65CONFIG_SLAB=y 66CONFIG_SLAB=y
66# CONFIG_SLUB is not set 67# CONFIG_SLUB is not set
67# CONFIG_SLOB is not set 68# CONFIG_SLOB is not set
68# CONFIG_PROFILING is not set 69# CONFIG_PROFILING is not set
69# CONFIG_MARKERS is not set
70CONFIG_HAVE_OPROFILE=y 70CONFIG_HAVE_OPROFILE=y
71CONFIG_HAVE_KPROBES=y 71CONFIG_HAVE_KPROBES=y
72CONFIG_HAVE_KRETPROBES=y 72CONFIG_HAVE_KRETPROBES=y
@@ -74,12 +74,10 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
74CONFIG_HAVE_CLK=y 74CONFIG_HAVE_CLK=y
75CONFIG_HAVE_GENERIC_DMA_COHERENT=y 75CONFIG_HAVE_GENERIC_DMA_COHERENT=y
76CONFIG_SLABINFO=y 76CONFIG_SLABINFO=y
77CONFIG_TINY_SHMEM=y
78CONFIG_BASE_SMALL=1 77CONFIG_BASE_SMALL=1
79# CONFIG_MODULES is not set 78# CONFIG_MODULES is not set
80CONFIG_BLOCK=y 79CONFIG_BLOCK=y
81# CONFIG_LBD is not set 80# CONFIG_LBD is not set
82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set 81# CONFIG_BLK_DEV_BSG is not set
84# CONFIG_BLK_DEV_INTEGRITY is not set 82# CONFIG_BLK_DEV_INTEGRITY is not set
85 83
@@ -96,6 +94,10 @@ CONFIG_IOSCHED_NOOP=y
96CONFIG_DEFAULT_NOOP=y 94CONFIG_DEFAULT_NOOP=y
97CONFIG_DEFAULT_IOSCHED="noop" 95CONFIG_DEFAULT_IOSCHED="noop"
98CONFIG_CLASSIC_RCU=y 96CONFIG_CLASSIC_RCU=y
97# CONFIG_TREE_RCU is not set
98# CONFIG_PREEMPT_RCU is not set
99# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_PREEMPT_RCU_TRACE is not set
99# CONFIG_FREEZER is not set 101# CONFIG_FREEZER is not set
100 102
101# 103#
@@ -103,6 +105,7 @@ CONFIG_CLASSIC_RCU=y
103# 105#
104CONFIG_CPU_SH2=y 106CONFIG_CPU_SH2=y
105CONFIG_CPU_SUBTYPE_SH7619=y 107CONFIG_CPU_SUBTYPE_SH7619=y
108# CONFIG_CPU_SUBTYPE_SH7201 is not set
106# CONFIG_CPU_SUBTYPE_SH7203 is not set 109# CONFIG_CPU_SUBTYPE_SH7203 is not set
107# CONFIG_CPU_SUBTYPE_SH7206 is not set 110# CONFIG_CPU_SUBTYPE_SH7206 is not set
108# CONFIG_CPU_SUBTYPE_SH7263 is not set 111# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -164,7 +167,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
164CONFIG_SPARSEMEM_STATIC=y 167CONFIG_SPARSEMEM_STATIC=y
165CONFIG_PAGEFLAGS_EXTENDED=y 168CONFIG_PAGEFLAGS_EXTENDED=y
166CONFIG_SPLIT_PTLOCK_CPUS=4 169CONFIG_SPLIT_PTLOCK_CPUS=4
167# CONFIG_RESOURCES_64BIT is not set
168# CONFIG_PHYS_ADDR_T_64BIT is not set 170# CONFIG_PHYS_ADDR_T_64BIT is not set
169CONFIG_ZONE_DMA_FLAG=0 171CONFIG_ZONE_DMA_FLAG=0
170CONFIG_NR_QUICK=2 172CONFIG_NR_QUICK=2
@@ -244,7 +246,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
244# 246#
245# Bus options 247# Bus options
246# 248#
247# CONFIG_CF_ENABLER is not set
248# CONFIG_ARCH_SUPPORTS_MSI is not set 249# CONFIG_ARCH_SUPPORTS_MSI is not set
249 250
250# 251#
@@ -256,6 +257,12 @@ CONFIG_BINFMT_ZFLAT=y
256# CONFIG_BINFMT_SHARED_FLAT is not set 257# CONFIG_BINFMT_SHARED_FLAT is not set
257# CONFIG_HAVE_AOUT is not set 258# CONFIG_HAVE_AOUT is not set
258# CONFIG_BINFMT_MISC is not set 259# CONFIG_BINFMT_MISC is not set
260
261#
262# Power management options (EXPERIMENTAL)
263#
264# CONFIG_PM is not set
265# CONFIG_CPU_IDLE is not set
259# CONFIG_NET is not set 266# CONFIG_NET is not set
260 267
261# 268#
@@ -359,6 +366,7 @@ CONFIG_BLK_DEV=y
359CONFIG_MISC_DEVICES=y 366CONFIG_MISC_DEVICES=y
360# CONFIG_EEPROM_93CX6 is not set 367# CONFIG_EEPROM_93CX6 is not set
361# CONFIG_ENCLOSURE_SERVICES is not set 368# CONFIG_ENCLOSURE_SERVICES is not set
369# CONFIG_C2PORT is not set
362CONFIG_HAVE_IDE=y 370CONFIG_HAVE_IDE=y
363# CONFIG_IDE is not set 371# CONFIG_IDE is not set
364 372
@@ -439,11 +447,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y
439# CONFIG_THERMAL is not set 447# CONFIG_THERMAL is not set
440# CONFIG_THERMAL_HWMON is not set 448# CONFIG_THERMAL_HWMON is not set
441# CONFIG_WATCHDOG is not set 449# CONFIG_WATCHDOG is not set
450CONFIG_SSB_POSSIBLE=y
442 451
443# 452#
444# Sonics Silicon Backplane 453# Sonics Silicon Backplane
445# 454#
446CONFIG_SSB_POSSIBLE=y
447# CONFIG_SSB is not set 455# CONFIG_SSB is not set
448 456
449# 457#
@@ -453,7 +461,7 @@ CONFIG_SSB_POSSIBLE=y
453# CONFIG_MFD_SM501 is not set 461# CONFIG_MFD_SM501 is not set
454# CONFIG_HTC_PASIC3 is not set 462# CONFIG_HTC_PASIC3 is not set
455# CONFIG_MFD_TMIO is not set 463# CONFIG_MFD_TMIO is not set
456# CONFIG_MFD_WM8400 is not set 464# CONFIG_REGULATOR is not set
457 465
458# 466#
459# Multimedia devices 467# Multimedia devices
@@ -506,7 +514,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
506# 514#
507 515
508# 516#
509# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 517# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
510# 518#
511# CONFIG_USB_GADGET is not set 519# CONFIG_USB_GADGET is not set
512# CONFIG_MMC is not set 520# CONFIG_MMC is not set
@@ -557,10 +565,7 @@ CONFIG_PROC_SYSCTL=y
557# CONFIG_SYSFS is not set 565# CONFIG_SYSFS is not set
558# CONFIG_TMPFS is not set 566# CONFIG_TMPFS is not set
559# CONFIG_HUGETLB_PAGE is not set 567# CONFIG_HUGETLB_PAGE is not set
560 568CONFIG_MISC_FILESYSTEMS=y
561#
562# Miscellaneous filesystems
563#
564# CONFIG_ADFS_FS is not set 569# CONFIG_ADFS_FS is not set
565# CONFIG_AFFS_FS is not set 570# CONFIG_AFFS_FS is not set
566# CONFIG_HFS_FS is not set 571# CONFIG_HFS_FS is not set
@@ -602,12 +607,19 @@ CONFIG_FRAME_WARN=1024
602# CONFIG_DEBUG_MEMORY_INIT is not set 607# CONFIG_DEBUG_MEMORY_INIT is not set
603# CONFIG_RCU_CPU_STALL_DETECTOR is not set 608# CONFIG_RCU_CPU_STALL_DETECTOR is not set
604# CONFIG_LATENCYTOP is not set 609# CONFIG_LATENCYTOP is not set
605CONFIG_NOP_TRACER=y 610CONFIG_HAVE_FUNCTION_TRACER=y
606CONFIG_HAVE_FTRACE=y 611CONFIG_HAVE_DYNAMIC_FTRACE=y
612CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
613
614#
615# Tracers
616#
607# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 617# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
608# CONFIG_SAMPLES is not set 618# CONFIG_SAMPLES is not set
619CONFIG_HAVE_ARCH_KGDB=y
609# CONFIG_SH_STANDARD_BIOS is not set 620# CONFIG_SH_STANDARD_BIOS is not set
610# CONFIG_EARLY_SCIF_CONSOLE is not set 621# CONFIG_EARLY_SCIF_CONSOLE is not set
622# CONFIG_MORE_COMPILE_OPTIONS is not set
611 623
612# 624#
613# Security options 625# Security options
@@ -621,6 +633,7 @@ CONFIG_HAVE_FTRACE=y
621# Library routines 633# Library routines
622# 634#
623CONFIG_BITREVERSE=y 635CONFIG_BITREVERSE=y
636CONFIG_GENERIC_FIND_LAST_BIT=y
624# CONFIG_CRC_CCITT is not set 637# CONFIG_CRC_CCITT is not set
625# CONFIG_CRC16 is not set 638# CONFIG_CRC16 is not set
626# CONFIG_CRC_T10DIF is not set 639# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7705_defconfig b/arch/sh/configs/se7705_defconfig
index d88190fdd7c1..8574d6eb00a3 100644
--- a/arch/sh/configs/se7705_defconfig
+++ b/arch/sh/configs/se7705_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:04:52 2008 4# Fri Jan 9 17:37:50 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -68,12 +70,10 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 70CONFIG_SHMEM=y
69CONFIG_AIO=y 71CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 72CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_PCI_QUIRKS=y
72CONFIG_SLAB=y 73CONFIG_SLAB=y
73# CONFIG_SLUB is not set 74# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set 75# CONFIG_SLOB is not set
75# CONFIG_PROFILING is not set 76# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set
77CONFIG_HAVE_OPROFILE=y 77CONFIG_HAVE_OPROFILE=y
78CONFIG_HAVE_IOREMAP_PROT=y 78CONFIG_HAVE_IOREMAP_PROT=y
79CONFIG_HAVE_KPROBES=y 79CONFIG_HAVE_KPROBES=y
@@ -83,17 +83,14 @@ CONFIG_HAVE_CLK=y
83CONFIG_HAVE_GENERIC_DMA_COHERENT=y 83CONFIG_HAVE_GENERIC_DMA_COHERENT=y
84CONFIG_SLABINFO=y 84CONFIG_SLABINFO=y
85CONFIG_RT_MUTEXES=y 85CONFIG_RT_MUTEXES=y
86# CONFIG_TINY_SHMEM is not set
87CONFIG_BASE_SMALL=0 86CONFIG_BASE_SMALL=0
88CONFIG_MODULES=y 87CONFIG_MODULES=y
89# CONFIG_MODULE_FORCE_LOAD is not set 88# CONFIG_MODULE_FORCE_LOAD is not set
90# CONFIG_MODULE_UNLOAD is not set 89# CONFIG_MODULE_UNLOAD is not set
91# CONFIG_MODVERSIONS is not set 90# CONFIG_MODVERSIONS is not set
92# CONFIG_MODULE_SRCVERSION_ALL is not set 91# CONFIG_MODULE_SRCVERSION_ALL is not set
93CONFIG_KMOD=y
94CONFIG_BLOCK=y 92CONFIG_BLOCK=y
95# CONFIG_LBD is not set 93# CONFIG_LBD is not set
96# CONFIG_LSF is not set
97# CONFIG_BLK_DEV_BSG is not set 94# CONFIG_BLK_DEV_BSG is not set
98# CONFIG_BLK_DEV_INTEGRITY is not set 95# CONFIG_BLK_DEV_INTEGRITY is not set
99 96
@@ -110,6 +107,10 @@ CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_NOOP is not set 107# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="anticipatory" 108CONFIG_DEFAULT_IOSCHED="anticipatory"
112CONFIG_CLASSIC_RCU=y 109CONFIG_CLASSIC_RCU=y
110# CONFIG_TREE_RCU is not set
111# CONFIG_PREEMPT_RCU is not set
112# CONFIG_TREE_RCU_TRACE is not set
113# CONFIG_PREEMPT_RCU_TRACE is not set
113# CONFIG_FREEZER is not set 114# CONFIG_FREEZER is not set
114 115
115# 116#
@@ -117,6 +118,7 @@ CONFIG_CLASSIC_RCU=y
117# 118#
118CONFIG_CPU_SH3=y 119CONFIG_CPU_SH3=y
119# CONFIG_CPU_SUBTYPE_SH7619 is not set 120# CONFIG_CPU_SUBTYPE_SH7619 is not set
121# CONFIG_CPU_SUBTYPE_SH7201 is not set
120# CONFIG_CPU_SUBTYPE_SH7203 is not set 122# CONFIG_CPU_SUBTYPE_SH7203 is not set
121# CONFIG_CPU_SUBTYPE_SH7206 is not set 123# CONFIG_CPU_SUBTYPE_SH7206 is not set
122# CONFIG_CPU_SUBTYPE_SH7263 is not set 124# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -180,7 +182,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
180CONFIG_SPARSEMEM_STATIC=y 182CONFIG_SPARSEMEM_STATIC=y
181CONFIG_PAGEFLAGS_EXTENDED=y 183CONFIG_PAGEFLAGS_EXTENDED=y
182CONFIG_SPLIT_PTLOCK_CPUS=4 184CONFIG_SPLIT_PTLOCK_CPUS=4
183# CONFIG_RESOURCES_64BIT is not set
184# CONFIG_PHYS_ADDR_T_64BIT is not set 185# CONFIG_PHYS_ADDR_T_64BIT is not set
185CONFIG_ZONE_DMA_FLAG=0 186CONFIG_ZONE_DMA_FLAG=0
186CONFIG_NR_QUICK=2 187CONFIG_NR_QUICK=2
@@ -258,7 +259,6 @@ CONFIG_HZ=250
258# CONFIG_PREEMPT_NONE is not set 259# CONFIG_PREEMPT_NONE is not set
259# CONFIG_PREEMPT_VOLUNTARY is not set 260# CONFIG_PREEMPT_VOLUNTARY is not set
260CONFIG_PREEMPT=y 261CONFIG_PREEMPT=y
261# CONFIG_PREEMPT_RCU is not set
262CONFIG_GUSA=y 262CONFIG_GUSA=y
263# CONFIG_GUSA_RB is not set 263# CONFIG_GUSA_RB is not set
264 264
@@ -272,10 +272,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
272# 272#
273# Bus options 273# Bus options
274# 274#
275CONFIG_CF_ENABLER=y
276# CONFIG_CF_AREA5 is not set
277CONFIG_CF_AREA6=y
278CONFIG_CF_BASE_ADDR=0xb8000000
279# CONFIG_ARCH_SUPPORTS_MSI is not set 275# CONFIG_ARCH_SUPPORTS_MSI is not set
280 276
281# 277#
@@ -285,11 +281,18 @@ CONFIG_BINFMT_ELF=y
285# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 281# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
286# CONFIG_HAVE_AOUT is not set 282# CONFIG_HAVE_AOUT is not set
287# CONFIG_BINFMT_MISC is not set 283# CONFIG_BINFMT_MISC is not set
284
285#
286# Power management options (EXPERIMENTAL)
287#
288# CONFIG_PM is not set
289# CONFIG_CPU_IDLE is not set
288CONFIG_NET=y 290CONFIG_NET=y
289 291
290# 292#
291# Networking options 293# Networking options
292# 294#
295CONFIG_COMPAT_NET_DEV_OPS=y
293CONFIG_PACKET=y 296CONFIG_PACKET=y
294# CONFIG_PACKET_MMAP is not set 297# CONFIG_PACKET_MMAP is not set
295CONFIG_UNIX=y 298CONFIG_UNIX=y
@@ -345,6 +348,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 350# CONFIG_NET_SCHED is not set
351# CONFIG_DCB is not set
348 352
349# 353#
350# Network testing 354# Network testing
@@ -360,8 +364,8 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 364# CONFIG_CFG80211 is not set
361# CONFIG_WIRELESS_OLD_REGULATORY is not set 365# CONFIG_WIRELESS_OLD_REGULATORY is not set
362# CONFIG_WIRELESS_EXT is not set 366# CONFIG_WIRELESS_EXT is not set
367# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 368# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set
365# CONFIG_RFKILL is not set 369# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 370# CONFIG_NET_9P is not set
367 371
@@ -465,6 +469,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
465CONFIG_MISC_DEVICES=y 469CONFIG_MISC_DEVICES=y
466# CONFIG_EEPROM_93CX6 is not set 470# CONFIG_EEPROM_93CX6 is not set
467# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_C2PORT is not set
468CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
469# CONFIG_IDE is not set 474# CONFIG_IDE is not set
470 475
@@ -491,6 +496,7 @@ CONFIG_NET_ETHERNET=y
491CONFIG_STNIC=y 496CONFIG_STNIC=y
492# CONFIG_SMC91X is not set 497# CONFIG_SMC91X is not set
493# CONFIG_SMC911X is not set 498# CONFIG_SMC911X is not set
499# CONFIG_SMSC911X is not set
494# CONFIG_IBM_NEW_EMAC_ZMII is not set 500# CONFIG_IBM_NEW_EMAC_ZMII is not set
495# CONFIG_IBM_NEW_EMAC_RGMII is not set 501# CONFIG_IBM_NEW_EMAC_RGMII is not set
496# CONFIG_IBM_NEW_EMAC_TAH is not set 502# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -583,6 +589,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
583CONFIG_SERIAL_CORE=y 589CONFIG_SERIAL_CORE=y
584CONFIG_SERIAL_CORE_CONSOLE=y 590CONFIG_SERIAL_CORE_CONSOLE=y
585CONFIG_UNIX98_PTYS=y 591CONFIG_UNIX98_PTYS=y
592# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
586# CONFIG_LEGACY_PTYS is not set 593# CONFIG_LEGACY_PTYS is not set
587# CONFIG_IPMI_HANDLER is not set 594# CONFIG_IPMI_HANDLER is not set
588CONFIG_HW_RANDOM=y 595CONFIG_HW_RANDOM=y
@@ -609,11 +616,11 @@ CONFIG_HWMON=y
609# CONFIG_THERMAL is not set 616# CONFIG_THERMAL is not set
610# CONFIG_THERMAL_HWMON is not set 617# CONFIG_THERMAL_HWMON is not set
611# CONFIG_WATCHDOG is not set 618# CONFIG_WATCHDOG is not set
619CONFIG_SSB_POSSIBLE=y
612 620
613# 621#
614# Sonics Silicon Backplane 622# Sonics Silicon Backplane
615# 623#
616CONFIG_SSB_POSSIBLE=y
617# CONFIG_SSB is not set 624# CONFIG_SSB is not set
618 625
619# 626#
@@ -623,7 +630,7 @@ CONFIG_SSB_POSSIBLE=y
623# CONFIG_MFD_SM501 is not set 630# CONFIG_MFD_SM501 is not set
624# CONFIG_HTC_PASIC3 is not set 631# CONFIG_HTC_PASIC3 is not set
625# CONFIG_MFD_TMIO is not set 632# CONFIG_MFD_TMIO is not set
626# CONFIG_MFD_WM8400 is not set 633# CONFIG_REGULATOR is not set
627 634
628# 635#
629# Multimedia devices 636# Multimedia devices
@@ -677,7 +684,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
677# 684#
678 685
679# 686#
680# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 687# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
681# 688#
682# CONFIG_USB_GADGET is not set 689# CONFIG_USB_GADGET is not set
683# CONFIG_MMC is not set 690# CONFIG_MMC is not set
@@ -734,10 +741,7 @@ CONFIG_PROC_PAGE_MONITOR=y
734# CONFIG_TMPFS is not set 741# CONFIG_TMPFS is not set
735# CONFIG_HUGETLBFS is not set 742# CONFIG_HUGETLBFS is not set
736# CONFIG_HUGETLB_PAGE is not set 743# CONFIG_HUGETLB_PAGE is not set
737 744CONFIG_MISC_FILESYSTEMS=y
738#
739# Miscellaneous filesystems
740#
741# CONFIG_ADFS_FS is not set 745# CONFIG_ADFS_FS is not set
742# CONFIG_AFFS_FS is not set 746# CONFIG_AFFS_FS is not set
743# CONFIG_HFS_FS is not set 747# CONFIG_HFS_FS is not set
@@ -806,13 +810,19 @@ CONFIG_FRAME_WARN=1024
806# CONFIG_DEBUG_MEMORY_INIT is not set 810# CONFIG_DEBUG_MEMORY_INIT is not set
807# CONFIG_RCU_CPU_STALL_DETECTOR is not set 811# CONFIG_RCU_CPU_STALL_DETECTOR is not set
808# CONFIG_LATENCYTOP is not set 812# CONFIG_LATENCYTOP is not set
809CONFIG_NOP_TRACER=y 813CONFIG_HAVE_FUNCTION_TRACER=y
810CONFIG_HAVE_FTRACE=y 814CONFIG_HAVE_DYNAMIC_FTRACE=y
815CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
816
817#
818# Tracers
819#
811# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 820# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
812# CONFIG_SAMPLES is not set 821# CONFIG_SAMPLES is not set
822CONFIG_HAVE_ARCH_KGDB=y
813# CONFIG_SH_STANDARD_BIOS is not set 823# CONFIG_SH_STANDARD_BIOS is not set
814# CONFIG_EARLY_SCIF_CONSOLE is not set 824# CONFIG_EARLY_SCIF_CONSOLE is not set
815# CONFIG_SH_KGDB is not set 825# CONFIG_MORE_COMPILE_OPTIONS is not set
816 826
817# 827#
818# Security options 828# Security options
@@ -827,6 +837,7 @@ CONFIG_CRYPTO=y
827# 837#
828# CONFIG_CRYPTO_FIPS is not set 838# CONFIG_CRYPTO_FIPS is not set
829# CONFIG_CRYPTO_MANAGER is not set 839# CONFIG_CRYPTO_MANAGER is not set
840# CONFIG_CRYPTO_MANAGER2 is not set
830# CONFIG_CRYPTO_GF128MUL is not set 841# CONFIG_CRYPTO_GF128MUL is not set
831# CONFIG_CRYPTO_NULL is not set 842# CONFIG_CRYPTO_NULL is not set
832# CONFIG_CRYPTO_CRYPTD is not set 843# CONFIG_CRYPTO_CRYPTD is not set
@@ -909,6 +920,7 @@ CONFIG_CRYPTO_HW=y
909# Library routines 920# Library routines
910# 921#
911CONFIG_BITREVERSE=y 922CONFIG_BITREVERSE=y
923CONFIG_GENERIC_FIND_LAST_BIT=y
912CONFIG_CRC_CCITT=y 924CONFIG_CRC_CCITT=y
913# CONFIG_CRC16 is not set 925# CONFIG_CRC16 is not set
914# CONFIG_CRC_T10DIF is not set 926# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7712_defconfig b/arch/sh/configs/se7712_defconfig
index 869ab1737deb..e31ea84f116d 100644
--- a/arch/sh/configs/se7712_defconfig
+++ b/arch/sh/configs/se7712_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:08:12 2008 4# Fri Jan 9 17:40:12 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -55,6 +57,7 @@ CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y 57CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y 58CONFIG_KALLSYMS=y
57CONFIG_KALLSYMS_ALL=y 59CONFIG_KALLSYMS_ALL=y
60CONFIG_KALLSYMS_STRIP_GENERATED=y
58# CONFIG_KALLSYMS_EXTRA_PASS is not set 61# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y 62CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y 63CONFIG_PRINTK=y
@@ -71,12 +74,10 @@ CONFIG_EVENTFD=y
71# CONFIG_SHMEM is not set 74# CONFIG_SHMEM is not set
72CONFIG_AIO=y 75CONFIG_AIO=y
73CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
74CONFIG_PCI_QUIRKS=y
75CONFIG_SLAB=y 77CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,18 +88,15 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90CONFIG_TINY_SHMEM=y
91CONFIG_BASE_SMALL=1 91CONFIG_BASE_SMALL=1
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
94# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
95# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
96# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
97CONFIG_KMOD=y
98CONFIG_BLOCK=y 97CONFIG_BLOCK=y
99# CONFIG_LBD is not set 98# CONFIG_LBD is not set
100# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
101# CONFIG_LSF is not set
102# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
103# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
104 102
@@ -115,6 +113,10 @@ CONFIG_IOSCHED_NOOP=y
115CONFIG_DEFAULT_NOOP=y 113CONFIG_DEFAULT_NOOP=y
116CONFIG_DEFAULT_IOSCHED="noop" 114CONFIG_DEFAULT_IOSCHED="noop"
117CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
118# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
119 121
120# 122#
@@ -122,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
122# 124#
123CONFIG_CPU_SH3=y 125CONFIG_CPU_SH3=y
124# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
125# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
126# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
127# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -185,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
185CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
186CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
187CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -277,10 +279,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
277# 279#
278# Bus options 280# Bus options
279# 281#
280CONFIG_CF_ENABLER=y
281# CONFIG_CF_AREA5 is not set
282CONFIG_CF_AREA6=y
283CONFIG_CF_BASE_ADDR=0xb8000000
284# CONFIG_ARCH_SUPPORTS_MSI is not set 282# CONFIG_ARCH_SUPPORTS_MSI is not set
285# CONFIG_PCCARD is not set 283# CONFIG_PCCARD is not set
286 284
@@ -291,11 +289,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 289# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 290# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 291# CONFIG_BINFMT_MISC is not set
292
293#
294# Power management options (EXPERIMENTAL)
295#
296# CONFIG_PM is not set
297# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 298CONFIG_NET=y
295 299
296# 300#
297# Networking options 301# Networking options
298# 302#
303CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 304CONFIG_PACKET=y
300CONFIG_PACKET_MMAP=y 305CONFIG_PACKET_MMAP=y
301CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -376,6 +381,7 @@ CONFIG_NET_SCH_TBF=y
376CONFIG_NET_SCH_GRED=y 381CONFIG_NET_SCH_GRED=y
377CONFIG_NET_SCH_DSMARK=y 382CONFIG_NET_SCH_DSMARK=y
378CONFIG_NET_SCH_NETEM=y 383CONFIG_NET_SCH_NETEM=y
384# CONFIG_NET_SCH_DRR is not set
379 385
380# 386#
381# Classification 387# Classification
@@ -394,6 +400,7 @@ CONFIG_NET_CLS_FW=y
394# CONFIG_NET_CLS_ACT is not set 400# CONFIG_NET_CLS_ACT is not set
395CONFIG_NET_CLS_IND=y 401CONFIG_NET_CLS_IND=y
396CONFIG_NET_SCH_FIFO=y 402CONFIG_NET_SCH_FIFO=y
403# CONFIG_DCB is not set
397 404
398# 405#
399# Network testing 406# Network testing
@@ -410,8 +417,8 @@ CONFIG_WIRELESS=y
410# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
411# CONFIG_WIRELESS_OLD_REGULATORY is not set 418# CONFIG_WIRELESS_OLD_REGULATORY is not set
412# CONFIG_WIRELESS_EXT is not set 419# CONFIG_WIRELESS_EXT is not set
420# CONFIG_LIB80211 is not set
413# CONFIG_MAC80211 is not set 421# CONFIG_MAC80211 is not set
414# CONFIG_IEEE80211 is not set
415# CONFIG_RFKILL is not set 422# CONFIG_RFKILL is not set
416# CONFIG_NET_9P is not set 423# CONFIG_NET_9P is not set
417 424
@@ -518,6 +525,7 @@ CONFIG_BLK_DEV=y
518CONFIG_MISC_DEVICES=y 525CONFIG_MISC_DEVICES=y
519# CONFIG_EEPROM_93CX6 is not set 526# CONFIG_EEPROM_93CX6 is not set
520# CONFIG_ENCLOSURE_SERVICES is not set 527# CONFIG_ENCLOSURE_SERVICES is not set
528# CONFIG_C2PORT is not set
521CONFIG_HAVE_IDE=y 529CONFIG_HAVE_IDE=y
522# CONFIG_IDE is not set 530# CONFIG_IDE is not set
523 531
@@ -560,6 +568,7 @@ CONFIG_SCSI_WAIT_SCAN=m
560# CONFIG_SCSI_SRP_ATTRS is not set 568# CONFIG_SCSI_SRP_ATTRS is not set
561CONFIG_SCSI_LOWLEVEL=y 569CONFIG_SCSI_LOWLEVEL=y
562# CONFIG_ISCSI_TCP is not set 570# CONFIG_ISCSI_TCP is not set
571# CONFIG_LIBFC is not set
563# CONFIG_SCSI_DEBUG is not set 572# CONFIG_SCSI_DEBUG is not set
564# CONFIG_SCSI_DH is not set 573# CONFIG_SCSI_DH is not set
565CONFIG_ATA=y 574CONFIG_ATA=y
@@ -591,6 +600,9 @@ CONFIG_PHYLIB=y
591# CONFIG_BROADCOM_PHY is not set 600# CONFIG_BROADCOM_PHY is not set
592# CONFIG_ICPLUS_PHY is not set 601# CONFIG_ICPLUS_PHY is not set
593# CONFIG_REALTEK_PHY is not set 602# CONFIG_REALTEK_PHY is not set
603# CONFIG_NATIONAL_PHY is not set
604# CONFIG_STE10XP is not set
605# CONFIG_LSI_ET1011C_PHY is not set
594# CONFIG_FIXED_PHY is not set 606# CONFIG_FIXED_PHY is not set
595CONFIG_MDIO_BITBANG=y 607CONFIG_MDIO_BITBANG=y
596CONFIG_NET_ETHERNET=y 608CONFIG_NET_ETHERNET=y
@@ -600,6 +612,7 @@ CONFIG_MII=y
600CONFIG_SH_ETH=y 612CONFIG_SH_ETH=y
601# CONFIG_SMC91X is not set 613# CONFIG_SMC91X is not set
602# CONFIG_SMC911X is not set 614# CONFIG_SMC911X is not set
615# CONFIG_SMSC911X is not set
603# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
604# CONFIG_IBM_NEW_EMAC_RGMII is not set 617# CONFIG_IBM_NEW_EMAC_RGMII is not set
605# CONFIG_IBM_NEW_EMAC_TAH is not set 618# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -658,6 +671,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
658CONFIG_SERIAL_CORE=y 671CONFIG_SERIAL_CORE=y
659CONFIG_SERIAL_CORE_CONSOLE=y 672CONFIG_SERIAL_CORE_CONSOLE=y
660CONFIG_UNIX98_PTYS=y 673CONFIG_UNIX98_PTYS=y
674# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
661# CONFIG_LEGACY_PTYS is not set 675# CONFIG_LEGACY_PTYS is not set
662# CONFIG_IPMI_HANDLER is not set 676# CONFIG_IPMI_HANDLER is not set
663CONFIG_HW_RANDOM=m 677CONFIG_HW_RANDOM=m
@@ -672,11 +686,11 @@ CONFIG_HW_RANDOM=m
672# CONFIG_THERMAL is not set 686# CONFIG_THERMAL is not set
673# CONFIG_THERMAL_HWMON is not set 687# CONFIG_THERMAL_HWMON is not set
674# CONFIG_WATCHDOG is not set 688# CONFIG_WATCHDOG is not set
689CONFIG_SSB_POSSIBLE=y
675 690
676# 691#
677# Sonics Silicon Backplane 692# Sonics Silicon Backplane
678# 693#
679CONFIG_SSB_POSSIBLE=y
680# CONFIG_SSB is not set 694# CONFIG_SSB is not set
681 695
682# 696#
@@ -686,7 +700,7 @@ CONFIG_SSB_POSSIBLE=y
686# CONFIG_MFD_SM501 is not set 700# CONFIG_MFD_SM501 is not set
687# CONFIG_HTC_PASIC3 is not set 701# CONFIG_HTC_PASIC3 is not set
688# CONFIG_MFD_TMIO is not set 702# CONFIG_MFD_TMIO is not set
689# CONFIG_MFD_WM8400 is not set 703# CONFIG_REGULATOR is not set
690 704
691# 705#
692# Multimedia devices 706# Multimedia devices
@@ -730,7 +744,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
730# 744#
731 745
732# 746#
733# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 747# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
734# 748#
735# CONFIG_USB_GADGET is not set 749# CONFIG_USB_GADGET is not set
736# CONFIG_MMC is not set 750# CONFIG_MMC is not set
@@ -748,6 +762,7 @@ CONFIG_LEDS_CLASS=y
748CONFIG_LEDS_TRIGGERS=y 762CONFIG_LEDS_TRIGGERS=y
749# CONFIG_LEDS_TRIGGER_TIMER is not set 763# CONFIG_LEDS_TRIGGER_TIMER is not set
750# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 764# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
765# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
751# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 766# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
752# CONFIG_ACCESSIBILITY is not set 767# CONFIG_ACCESSIBILITY is not set
753# CONFIG_RTC_CLASS is not set 768# CONFIG_RTC_CLASS is not set
@@ -809,10 +824,7 @@ CONFIG_TMPFS=y
809# CONFIG_HUGETLBFS is not set 824# CONFIG_HUGETLBFS is not set
810# CONFIG_HUGETLB_PAGE is not set 825# CONFIG_HUGETLB_PAGE is not set
811# CONFIG_CONFIGFS_FS is not set 826# CONFIG_CONFIGFS_FS is not set
812 827CONFIG_MISC_FILESYSTEMS=y
813#
814# Miscellaneous filesystems
815#
816# CONFIG_ADFS_FS is not set 828# CONFIG_ADFS_FS is not set
817# CONFIG_AFFS_FS is not set 829# CONFIG_AFFS_FS is not set
818# CONFIG_HFS_FS is not set 830# CONFIG_HFS_FS is not set
@@ -902,6 +914,7 @@ CONFIG_DEBUG_INFO=y
902# CONFIG_DEBUG_MEMORY_INIT is not set 914# CONFIG_DEBUG_MEMORY_INIT is not set
903# CONFIG_DEBUG_LIST is not set 915# CONFIG_DEBUG_LIST is not set
904# CONFIG_DEBUG_SG is not set 916# CONFIG_DEBUG_SG is not set
917# CONFIG_DEBUG_NOTIFIERS is not set
905CONFIG_FRAME_POINTER=y 918CONFIG_FRAME_POINTER=y
906# CONFIG_RCU_TORTURE_TEST is not set 919# CONFIG_RCU_TORTURE_TEST is not set
907# CONFIG_RCU_CPU_STALL_DETECTOR is not set 920# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -910,16 +923,24 @@ CONFIG_FRAME_POINTER=y
910# CONFIG_FAULT_INJECTION is not set 923# CONFIG_FAULT_INJECTION is not set
911# CONFIG_LATENCYTOP is not set 924# CONFIG_LATENCYTOP is not set
912CONFIG_SYSCTL_SYSCALL_CHECK=y 925CONFIG_SYSCTL_SYSCALL_CHECK=y
913CONFIG_NOP_TRACER=y 926CONFIG_HAVE_FUNCTION_TRACER=y
914CONFIG_HAVE_FTRACE=y 927CONFIG_HAVE_DYNAMIC_FTRACE=y
915# CONFIG_FTRACE is not set 928CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
929
930#
931# Tracers
932#
933# CONFIG_FUNCTION_TRACER is not set
916# CONFIG_IRQSOFF_TRACER is not set 934# CONFIG_IRQSOFF_TRACER is not set
917# CONFIG_SCHED_TRACER is not set 935# CONFIG_SCHED_TRACER is not set
918# CONFIG_CONTEXT_SWITCH_TRACER is not set 936# CONFIG_CONTEXT_SWITCH_TRACER is not set
919# CONFIG_BOOT_TRACER is not set 937# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set
920# CONFIG_STACK_TRACER is not set 939# CONFIG_STACK_TRACER is not set
921# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
922# CONFIG_SAMPLES is not set 941# CONFIG_SAMPLES is not set
942CONFIG_HAVE_ARCH_KGDB=y
943# CONFIG_KGDB is not set
923# CONFIG_SH_STANDARD_BIOS is not set 944# CONFIG_SH_STANDARD_BIOS is not set
924# CONFIG_EARLY_SCIF_CONSOLE is not set 945# CONFIG_EARLY_SCIF_CONSOLE is not set
925# CONFIG_DEBUG_BOOTMEM is not set 946# CONFIG_DEBUG_BOOTMEM is not set
@@ -927,7 +948,9 @@ CONFIG_HAVE_FTRACE=y
927# CONFIG_DEBUG_STACK_USAGE is not set 948# CONFIG_DEBUG_STACK_USAGE is not set
928# CONFIG_4KSTACKS is not set 949# CONFIG_4KSTACKS is not set
929# CONFIG_IRQSTACKS is not set 950# CONFIG_IRQSTACKS is not set
930# CONFIG_SH_KGDB is not set 951# CONFIG_DUMP_CODE is not set
952# CONFIG_SH_NO_BSS_INIT is not set
953# CONFIG_MORE_COMPILE_OPTIONS is not set
931 954
932# 955#
933# Security options 956# Security options
@@ -943,11 +966,16 @@ CONFIG_CRYPTO=y
943# 966#
944# CONFIG_CRYPTO_FIPS is not set 967# CONFIG_CRYPTO_FIPS is not set
945CONFIG_CRYPTO_ALGAPI=y 968CONFIG_CRYPTO_ALGAPI=y
969CONFIG_CRYPTO_ALGAPI2=y
946CONFIG_CRYPTO_AEAD=y 970CONFIG_CRYPTO_AEAD=y
971CONFIG_CRYPTO_AEAD2=y
947CONFIG_CRYPTO_BLKCIPHER=y 972CONFIG_CRYPTO_BLKCIPHER=y
973CONFIG_CRYPTO_BLKCIPHER2=y
948CONFIG_CRYPTO_HASH=y 974CONFIG_CRYPTO_HASH=y
949CONFIG_CRYPTO_RNG=y 975CONFIG_CRYPTO_HASH2=y
976CONFIG_CRYPTO_RNG2=y
950CONFIG_CRYPTO_MANAGER=y 977CONFIG_CRYPTO_MANAGER=y
978CONFIG_CRYPTO_MANAGER2=y
951# CONFIG_CRYPTO_GF128MUL is not set 979# CONFIG_CRYPTO_GF128MUL is not set
952# CONFIG_CRYPTO_NULL is not set 980# CONFIG_CRYPTO_NULL is not set
953# CONFIG_CRYPTO_CRYPTD is not set 981# CONFIG_CRYPTO_CRYPTD is not set
@@ -1030,6 +1058,7 @@ CONFIG_CRYPTO_HW=y
1030# Library routines 1058# Library routines
1031# 1059#
1032CONFIG_BITREVERSE=y 1060CONFIG_BITREVERSE=y
1061CONFIG_GENERIC_FIND_LAST_BIT=y
1033CONFIG_CRC_CCITT=y 1062CONFIG_CRC_CCITT=y
1034# CONFIG_CRC16 is not set 1063# CONFIG_CRC16 is not set
1035# CONFIG_CRC_T10DIF is not set 1064# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7721_defconfig b/arch/sh/configs/se7721_defconfig
index b52be14074d8..ad1bace3ad46 100644
--- a/arch/sh/configs/se7721_defconfig
+++ b/arch/sh/configs/se7721_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:12:06 2008 4# Fri Jan 9 17:43:33 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -75,12 +78,10 @@ CONFIG_EVENTFD=y
75# CONFIG_SHMEM is not set 78# CONFIG_SHMEM is not set
76CONFIG_AIO=y 79CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 80CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLAB=y 81CONFIG_SLAB=y
80# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set 84# CONFIG_PROFILING is not set
83# CONFIG_MARKERS is not set
84CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
85# CONFIG_KPROBES is not set 86# CONFIG_KPROBES is not set
86CONFIG_HAVE_IOREMAP_PROT=y 87CONFIG_HAVE_IOREMAP_PROT=y
@@ -91,18 +92,15 @@ CONFIG_HAVE_CLK=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
94CONFIG_TINY_SHMEM=y
95CONFIG_BASE_SMALL=1 95CONFIG_BASE_SMALL=1
96CONFIG_MODULES=y 96CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
98# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 117CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 118CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH3=y 129CONFIG_CPU_SH3=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -280,10 +282,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda2"
280# 282#
281# Bus options 283# Bus options
282# 284#
283CONFIG_CF_ENABLER=y
284# CONFIG_CF_AREA5 is not set
285CONFIG_CF_AREA6=y
286CONFIG_CF_BASE_ADDR=0xb8000000
287# CONFIG_ARCH_SUPPORTS_MSI is not set 285# CONFIG_ARCH_SUPPORTS_MSI is not set
288# CONFIG_PCCARD is not set 286# CONFIG_PCCARD is not set
289 287
@@ -294,11 +292,18 @@ CONFIG_BINFMT_ELF=y
294# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
295# CONFIG_HAVE_AOUT is not set 293# CONFIG_HAVE_AOUT is not set
296# CONFIG_BINFMT_MISC is not set 294# CONFIG_BINFMT_MISC is not set
295
296#
297# Power management options (EXPERIMENTAL)
298#
299# CONFIG_PM is not set
300# CONFIG_CPU_IDLE is not set
297CONFIG_NET=y 301CONFIG_NET=y
298 302
299# 303#
300# Networking options 304# Networking options
301# 305#
306CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 307CONFIG_PACKET=y
303CONFIG_PACKET_MMAP=y 308CONFIG_PACKET_MMAP=y
304CONFIG_UNIX=y 309CONFIG_UNIX=y
@@ -379,6 +384,7 @@ CONFIG_NET_SCH_TBF=y
379CONFIG_NET_SCH_GRED=y 384CONFIG_NET_SCH_GRED=y
380CONFIG_NET_SCH_DSMARK=y 385CONFIG_NET_SCH_DSMARK=y
381CONFIG_NET_SCH_NETEM=y 386CONFIG_NET_SCH_NETEM=y
387# CONFIG_NET_SCH_DRR is not set
382 388
383# 389#
384# Classification 390# Classification
@@ -397,6 +403,7 @@ CONFIG_NET_CLS_FW=y
397# CONFIG_NET_CLS_ACT is not set 403# CONFIG_NET_CLS_ACT is not set
398CONFIG_NET_CLS_IND=y 404CONFIG_NET_CLS_IND=y
399CONFIG_NET_SCH_FIFO=y 405CONFIG_NET_SCH_FIFO=y
406# CONFIG_DCB is not set
400 407
401# 408#
402# Network testing 409# Network testing
@@ -413,8 +420,8 @@ CONFIG_WIRELESS=y
413# CONFIG_CFG80211 is not set 420# CONFIG_CFG80211 is not set
414# CONFIG_WIRELESS_OLD_REGULATORY is not set 421# CONFIG_WIRELESS_OLD_REGULATORY is not set
415# CONFIG_WIRELESS_EXT is not set 422# CONFIG_WIRELESS_EXT is not set
423# CONFIG_LIB80211 is not set
416# CONFIG_MAC80211 is not set 424# CONFIG_MAC80211 is not set
417# CONFIG_IEEE80211 is not set
418# CONFIG_RFKILL is not set 425# CONFIG_RFKILL is not set
419# CONFIG_NET_9P is not set 426# CONFIG_NET_9P is not set
420 427
@@ -522,6 +529,7 @@ CONFIG_BLK_DEV=y
522CONFIG_MISC_DEVICES=y 529CONFIG_MISC_DEVICES=y
523# CONFIG_EEPROM_93CX6 is not set 530# CONFIG_EEPROM_93CX6 is not set
524# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
532# CONFIG_C2PORT is not set
525CONFIG_HAVE_IDE=y 533CONFIG_HAVE_IDE=y
526# CONFIG_IDE is not set 534# CONFIG_IDE is not set
527 535
@@ -673,6 +681,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
673CONFIG_SERIAL_CORE=y 681CONFIG_SERIAL_CORE=y
674CONFIG_SERIAL_CORE_CONSOLE=y 682CONFIG_SERIAL_CORE_CONSOLE=y
675CONFIG_UNIX98_PTYS=y 683CONFIG_UNIX98_PTYS=y
684# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
676# CONFIG_LEGACY_PTYS is not set 685# CONFIG_LEGACY_PTYS is not set
677# CONFIG_IPMI_HANDLER is not set 686# CONFIG_IPMI_HANDLER is not set
678# CONFIG_HW_RANDOM is not set 687# CONFIG_HW_RANDOM is not set
@@ -686,11 +695,11 @@ CONFIG_UNIX98_PTYS=y
686# CONFIG_HWMON is not set 695# CONFIG_HWMON is not set
687CONFIG_THERMAL=y 696CONFIG_THERMAL=y
688# CONFIG_WATCHDOG is not set 697# CONFIG_WATCHDOG is not set
698CONFIG_SSB_POSSIBLE=y
689 699
690# 700#
691# Sonics Silicon Backplane 701# Sonics Silicon Backplane
692# 702#
693CONFIG_SSB_POSSIBLE=y
694# CONFIG_SSB is not set 703# CONFIG_SSB is not set
695 704
696# 705#
@@ -700,7 +709,7 @@ CONFIG_SSB_POSSIBLE=y
700# CONFIG_MFD_SM501 is not set 709# CONFIG_MFD_SM501 is not set
701# CONFIG_HTC_PASIC3 is not set 710# CONFIG_HTC_PASIC3 is not set
702# CONFIG_MFD_TMIO is not set 711# CONFIG_MFD_TMIO is not set
703# CONFIG_MFD_WM8400 is not set 712# CONFIG_REGULATOR is not set
704 713
705# 714#
706# Multimedia devices 715# Multimedia devices
@@ -750,11 +759,9 @@ CONFIG_HID_COMPAT=y
750CONFIG_HID_A4TECH=y 759CONFIG_HID_A4TECH=y
751CONFIG_HID_APPLE=y 760CONFIG_HID_APPLE=y
752CONFIG_HID_BELKIN=y 761CONFIG_HID_BELKIN=y
753CONFIG_HID_BRIGHT=y
754CONFIG_HID_CHERRY=y 762CONFIG_HID_CHERRY=y
755CONFIG_HID_CHICONY=y 763CONFIG_HID_CHICONY=y
756CONFIG_HID_CYPRESS=y 764CONFIG_HID_CYPRESS=y
757CONFIG_HID_DELL=y
758CONFIG_HID_EZKEY=y 765CONFIG_HID_EZKEY=y
759CONFIG_HID_GYRATION=y 766CONFIG_HID_GYRATION=y
760CONFIG_HID_LOGITECH=y 767CONFIG_HID_LOGITECH=y
@@ -762,12 +769,15 @@ CONFIG_HID_LOGITECH=y
762# CONFIG_LOGIRUMBLEPAD2_FF is not set 769# CONFIG_LOGIRUMBLEPAD2_FF is not set
763CONFIG_HID_MICROSOFT=y 770CONFIG_HID_MICROSOFT=y
764CONFIG_HID_MONTEREY=y 771CONFIG_HID_MONTEREY=y
772# CONFIG_HID_NTRIG is not set
765CONFIG_HID_PANTHERLORD=y 773CONFIG_HID_PANTHERLORD=y
766# CONFIG_PANTHERLORD_FF is not set 774# CONFIG_PANTHERLORD_FF is not set
767CONFIG_HID_PETALYNX=y 775CONFIG_HID_PETALYNX=y
768CONFIG_HID_SAMSUNG=y 776CONFIG_HID_SAMSUNG=y
769CONFIG_HID_SONY=y 777CONFIG_HID_SONY=y
770CONFIG_HID_SUNPLUS=y 778CONFIG_HID_SUNPLUS=y
779# CONFIG_GREENASIA_FF is not set
780# CONFIG_HID_TOPSEED is not set
771CONFIG_THRUSTMASTER_FF=m 781CONFIG_THRUSTMASTER_FF=m
772CONFIG_ZEROPLUS_FF=m 782CONFIG_ZEROPLUS_FF=m
773CONFIG_USB_SUPPORT=y 783CONFIG_USB_SUPPORT=y
@@ -788,19 +798,21 @@ CONFIG_USB_DEVICE_CLASS=y
788# CONFIG_USB_OTG_WHITELIST is not set 798# CONFIG_USB_OTG_WHITELIST is not set
789# CONFIG_USB_OTG_BLACKLIST_HUB is not set 799# CONFIG_USB_OTG_BLACKLIST_HUB is not set
790CONFIG_USB_MON=y 800CONFIG_USB_MON=y
801# CONFIG_USB_WUSB is not set
802# CONFIG_USB_WUSB_CBAF is not set
791 803
792# 804#
793# USB Host Controller Drivers 805# USB Host Controller Drivers
794# 806#
795# CONFIG_USB_C67X00_HCD is not set 807# CONFIG_USB_C67X00_HCD is not set
796# CONFIG_USB_ISP116X_HCD is not set 808# CONFIG_USB_ISP116X_HCD is not set
797# CONFIG_USB_ISP1760_HCD is not set
798CONFIG_USB_OHCI_HCD=y 809CONFIG_USB_OHCI_HCD=y
799# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 810# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
800# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 811# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
801CONFIG_USB_OHCI_LITTLE_ENDIAN=y 812CONFIG_USB_OHCI_LITTLE_ENDIAN=y
802# CONFIG_USB_SL811_HCD is not set 813# CONFIG_USB_SL811_HCD is not set
803# CONFIG_USB_R8A66597_HCD is not set 814# CONFIG_USB_R8A66597_HCD is not set
815# CONFIG_USB_HWA_HCD is not set
804 816
805# 817#
806# USB Device Class drivers 818# USB Device Class drivers
@@ -811,11 +823,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
811# CONFIG_USB_TMC is not set 823# CONFIG_USB_TMC is not set
812 824
813# 825#
814# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 826# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
815# 827#
816 828
817# 829#
818# may also be needed; see USB_STORAGE Help for more information 830# see USB_STORAGE Help for more information
819# 831#
820CONFIG_USB_STORAGE=y 832CONFIG_USB_STORAGE=y
821# CONFIG_USB_STORAGE_DEBUG is not set 833# CONFIG_USB_STORAGE_DEBUG is not set
@@ -883,6 +895,7 @@ CONFIG_LEDS_CLASS=y
883CONFIG_LEDS_TRIGGERS=y 895CONFIG_LEDS_TRIGGERS=y
884# CONFIG_LEDS_TRIGGER_TIMER is not set 896# CONFIG_LEDS_TRIGGER_TIMER is not set
885# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 897# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
898# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
886# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 899# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
887# CONFIG_ACCESSIBILITY is not set 900# CONFIG_ACCESSIBILITY is not set
888# CONFIG_RTC_CLASS is not set 901# CONFIG_RTC_CLASS is not set
@@ -947,10 +960,7 @@ CONFIG_TMPFS=y
947# CONFIG_HUGETLBFS is not set 960# CONFIG_HUGETLBFS is not set
948# CONFIG_HUGETLB_PAGE is not set 961# CONFIG_HUGETLB_PAGE is not set
949# CONFIG_CONFIGFS_FS is not set 962# CONFIG_CONFIGFS_FS is not set
950 963CONFIG_MISC_FILESYSTEMS=y
951#
952# Miscellaneous filesystems
953#
954# CONFIG_ADFS_FS is not set 964# CONFIG_ADFS_FS is not set
955# CONFIG_AFFS_FS is not set 965# CONFIG_AFFS_FS is not set
956# CONFIG_HFS_FS is not set 966# CONFIG_HFS_FS is not set
@@ -1063,6 +1073,7 @@ CONFIG_DEBUG_INFO=y
1063# CONFIG_DEBUG_MEMORY_INIT is not set 1073# CONFIG_DEBUG_MEMORY_INIT is not set
1064# CONFIG_DEBUG_LIST is not set 1074# CONFIG_DEBUG_LIST is not set
1065# CONFIG_DEBUG_SG is not set 1075# CONFIG_DEBUG_SG is not set
1076# CONFIG_DEBUG_NOTIFIERS is not set
1066CONFIG_FRAME_POINTER=y 1077CONFIG_FRAME_POINTER=y
1067# CONFIG_RCU_TORTURE_TEST is not set 1078# CONFIG_RCU_TORTURE_TEST is not set
1068# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1079# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1071,16 +1082,24 @@ CONFIG_FRAME_POINTER=y
1071# CONFIG_FAULT_INJECTION is not set 1082# CONFIG_FAULT_INJECTION is not set
1072# CONFIG_LATENCYTOP is not set 1083# CONFIG_LATENCYTOP is not set
1073# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1084# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1074CONFIG_NOP_TRACER=y 1085CONFIG_HAVE_FUNCTION_TRACER=y
1075CONFIG_HAVE_FTRACE=y 1086CONFIG_HAVE_DYNAMIC_FTRACE=y
1076# CONFIG_FTRACE is not set 1087CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1088
1089#
1090# Tracers
1091#
1092# CONFIG_FUNCTION_TRACER is not set
1077# CONFIG_IRQSOFF_TRACER is not set 1093# CONFIG_IRQSOFF_TRACER is not set
1078# CONFIG_SCHED_TRACER is not set 1094# CONFIG_SCHED_TRACER is not set
1079# CONFIG_CONTEXT_SWITCH_TRACER is not set 1095# CONFIG_CONTEXT_SWITCH_TRACER is not set
1080# CONFIG_BOOT_TRACER is not set 1096# CONFIG_BOOT_TRACER is not set
1097# CONFIG_TRACE_BRANCH_PROFILING is not set
1081# CONFIG_STACK_TRACER is not set 1098# CONFIG_STACK_TRACER is not set
1082# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1099# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1083# CONFIG_SAMPLES is not set 1100# CONFIG_SAMPLES is not set
1101CONFIG_HAVE_ARCH_KGDB=y
1102# CONFIG_KGDB is not set
1084# CONFIG_SH_STANDARD_BIOS is not set 1103# CONFIG_SH_STANDARD_BIOS is not set
1085# CONFIG_EARLY_SCIF_CONSOLE is not set 1104# CONFIG_EARLY_SCIF_CONSOLE is not set
1086# CONFIG_DEBUG_BOOTMEM is not set 1105# CONFIG_DEBUG_BOOTMEM is not set
@@ -1088,7 +1107,9 @@ CONFIG_HAVE_FTRACE=y
1088# CONFIG_DEBUG_STACK_USAGE is not set 1107# CONFIG_DEBUG_STACK_USAGE is not set
1089# CONFIG_4KSTACKS is not set 1108# CONFIG_4KSTACKS is not set
1090# CONFIG_IRQSTACKS is not set 1109# CONFIG_IRQSTACKS is not set
1091# CONFIG_SH_KGDB is not set 1110# CONFIG_DUMP_CODE is not set
1111# CONFIG_SH_NO_BSS_INIT is not set
1112# CONFIG_MORE_COMPILE_OPTIONS is not set
1092 1113
1093# 1114#
1094# Security options 1115# Security options
@@ -1104,11 +1125,16 @@ CONFIG_CRYPTO=y
1104# 1125#
1105# CONFIG_CRYPTO_FIPS is not set 1126# CONFIG_CRYPTO_FIPS is not set
1106CONFIG_CRYPTO_ALGAPI=y 1127CONFIG_CRYPTO_ALGAPI=y
1128CONFIG_CRYPTO_ALGAPI2=y
1107CONFIG_CRYPTO_AEAD=y 1129CONFIG_CRYPTO_AEAD=y
1130CONFIG_CRYPTO_AEAD2=y
1108CONFIG_CRYPTO_BLKCIPHER=y 1131CONFIG_CRYPTO_BLKCIPHER=y
1132CONFIG_CRYPTO_BLKCIPHER2=y
1109CONFIG_CRYPTO_HASH=y 1133CONFIG_CRYPTO_HASH=y
1110CONFIG_CRYPTO_RNG=y 1134CONFIG_CRYPTO_HASH2=y
1135CONFIG_CRYPTO_RNG2=y
1111CONFIG_CRYPTO_MANAGER=y 1136CONFIG_CRYPTO_MANAGER=y
1137CONFIG_CRYPTO_MANAGER2=y
1112# CONFIG_CRYPTO_GF128MUL is not set 1138# CONFIG_CRYPTO_GF128MUL is not set
1113# CONFIG_CRYPTO_NULL is not set 1139# CONFIG_CRYPTO_NULL is not set
1114# CONFIG_CRYPTO_CRYPTD is not set 1140# CONFIG_CRYPTO_CRYPTD is not set
@@ -1191,6 +1217,7 @@ CONFIG_CRYPTO_HW=y
1191# Library routines 1217# Library routines
1192# 1218#
1193CONFIG_BITREVERSE=y 1219CONFIG_BITREVERSE=y
1220CONFIG_GENERIC_FIND_LAST_BIT=y
1194CONFIG_CRC_CCITT=y 1221CONFIG_CRC_CCITT=y
1195# CONFIG_CRC16 is not set 1222# CONFIG_CRC16 is not set
1196# CONFIG_CRC_T10DIF is not set 1223# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7722_defconfig b/arch/sh/configs/se7722_defconfig
index e6df51f098f0..abb189a1d314 100644
--- a/arch/sh/configs/se7722_defconfig
+++ b/arch/sh/configs/se7722_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:15:10 2008 4# Fri Jan 9 17:46:59 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -75,13 +77,11 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 77CONFIG_SHMEM=y
76CONFIG_AIO=y 78CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLUB_DEBUG=y 80CONFIG_SLUB_DEBUG=y
80# CONFIG_SLAB is not set 81# CONFIG_SLAB is not set
81CONFIG_SLUB=y 82CONFIG_SLUB=y
82# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
83CONFIG_PROFILING=y 84CONFIG_PROFILING=y
84# CONFIG_MARKERS is not set
85# CONFIG_OPROFILE is not set 85# CONFIG_OPROFILE is not set
86CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
87# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
@@ -93,7 +93,6 @@ CONFIG_HAVE_CLK=y
93CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
94CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
95CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
96# CONFIG_TINY_SHMEM is not set
97CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
98CONFIG_MODULES=y 97CONFIG_MODULES=y
99# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -101,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
101# CONFIG_MODULE_FORCE_UNLOAD is not set 100# CONFIG_MODULE_FORCE_UNLOAD is not set
102# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
103# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
104CONFIG_KMOD=y
105CONFIG_BLOCK=y 103CONFIG_BLOCK=y
106# CONFIG_LBD is not set 104# CONFIG_LBD is not set
107# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
108# CONFIG_LSF is not set
109# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
110# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
111 108
@@ -122,6 +119,10 @@ CONFIG_IOSCHED_NOOP=y
122CONFIG_DEFAULT_NOOP=y 119CONFIG_DEFAULT_NOOP=y
123CONFIG_DEFAULT_IOSCHED="noop" 120CONFIG_DEFAULT_IOSCHED="noop"
124CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
125# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
126 127
127# 128#
@@ -132,6 +133,7 @@ CONFIG_CPU_SH4A=y
132CONFIG_CPU_SH4AL_DSP=y 133CONFIG_CPU_SH4AL_DSP=y
133CONFIG_CPU_SHX2=y 134CONFIG_CPU_SHX2=y
134# CONFIG_CPU_SUBTYPE_SH7619 is not set 135# CONFIG_CPU_SUBTYPE_SH7619 is not set
136# CONFIG_CPU_SUBTYPE_SH7201 is not set
135# CONFIG_CPU_SUBTYPE_SH7203 is not set 137# CONFIG_CPU_SUBTYPE_SH7203 is not set
136# CONFIG_CPU_SUBTYPE_SH7206 is not set 138# CONFIG_CPU_SUBTYPE_SH7206 is not set
137# CONFIG_CPU_SUBTYPE_SH7263 is not set 139# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -207,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
207# CONFIG_MEMORY_HOTPLUG is not set 209# CONFIG_MEMORY_HOTPLUG is not set
208CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
209CONFIG_MIGRATION=y 211CONFIG_MIGRATION=y
210# CONFIG_RESOURCES_64BIT is not set
211# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
212CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
213CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -287,7 +288,6 @@ CONFIG_KEXEC=y
287# CONFIG_PREEMPT_NONE is not set 288# CONFIG_PREEMPT_NONE is not set
288# CONFIG_PREEMPT_VOLUNTARY is not set 289# CONFIG_PREEMPT_VOLUNTARY is not set
289CONFIG_PREEMPT=y 290CONFIG_PREEMPT=y
290# CONFIG_PREEMPT_RCU is not set
291CONFIG_GUSA=y 291CONFIG_GUSA=y
292 292
293# 293#
@@ -300,10 +300,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
300# 300#
301# Bus options 301# Bus options
302# 302#
303CONFIG_CF_ENABLER=y
304# CONFIG_CF_AREA5 is not set
305CONFIG_CF_AREA6=y
306CONFIG_CF_BASE_ADDR=0xb8000000
307# CONFIG_ARCH_SUPPORTS_MSI is not set 303# CONFIG_ARCH_SUPPORTS_MSI is not set
308# CONFIG_PCCARD is not set 304# CONFIG_PCCARD is not set
309 305
@@ -314,11 +310,18 @@ CONFIG_BINFMT_ELF=y
314# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 310# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
315# CONFIG_HAVE_AOUT is not set 311# CONFIG_HAVE_AOUT is not set
316# CONFIG_BINFMT_MISC is not set 312# CONFIG_BINFMT_MISC is not set
313
314#
315# Power management options (EXPERIMENTAL)
316#
317# CONFIG_PM is not set
318# CONFIG_CPU_IDLE is not set
317CONFIG_NET=y 319CONFIG_NET=y
318 320
319# 321#
320# Networking options 322# Networking options
321# 323#
324CONFIG_COMPAT_NET_DEV_OPS=y
322CONFIG_PACKET=y 325CONFIG_PACKET=y
323CONFIG_PACKET_MMAP=y 326CONFIG_PACKET_MMAP=y
324CONFIG_UNIX=y 327CONFIG_UNIX=y
@@ -371,6 +374,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
371# CONFIG_ECONET is not set 374# CONFIG_ECONET is not set
372# CONFIG_WAN_ROUTER is not set 375# CONFIG_WAN_ROUTER is not set
373# CONFIG_NET_SCHED is not set 376# CONFIG_NET_SCHED is not set
377# CONFIG_DCB is not set
374 378
375# 379#
376# Network testing 380# Network testing
@@ -386,8 +390,8 @@ CONFIG_WIRELESS=y
386# CONFIG_CFG80211 is not set 390# CONFIG_CFG80211 is not set
387# CONFIG_WIRELESS_OLD_REGULATORY is not set 391# CONFIG_WIRELESS_OLD_REGULATORY is not set
388# CONFIG_WIRELESS_EXT is not set 392# CONFIG_WIRELESS_EXT is not set
393# CONFIG_LIB80211 is not set
389# CONFIG_MAC80211 is not set 394# CONFIG_MAC80211 is not set
390# CONFIG_IEEE80211 is not set
391# CONFIG_RFKILL is not set 395# CONFIG_RFKILL is not set
392# CONFIG_NET_9P is not set 396# CONFIG_NET_9P is not set
393 397
@@ -420,6 +424,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
420CONFIG_MISC_DEVICES=y 424CONFIG_MISC_DEVICES=y
421# CONFIG_EEPROM_93CX6 is not set 425# CONFIG_EEPROM_93CX6 is not set
422# CONFIG_ENCLOSURE_SERVICES is not set 426# CONFIG_ENCLOSURE_SERVICES is not set
427# CONFIG_C2PORT is not set
423CONFIG_HAVE_IDE=y 428CONFIG_HAVE_IDE=y
424# CONFIG_IDE is not set 429# CONFIG_IDE is not set
425 430
@@ -462,6 +467,7 @@ CONFIG_SCSI_WAIT_SCAN=m
462# CONFIG_SCSI_SRP_ATTRS is not set 467# CONFIG_SCSI_SRP_ATTRS is not set
463CONFIG_SCSI_LOWLEVEL=y 468CONFIG_SCSI_LOWLEVEL=y
464# CONFIG_ISCSI_TCP is not set 469# CONFIG_ISCSI_TCP is not set
470# CONFIG_LIBFC is not set
465# CONFIG_SCSI_DEBUG is not set 471# CONFIG_SCSI_DEBUG is not set
466# CONFIG_SCSI_DH is not set 472# CONFIG_SCSI_DH is not set
467CONFIG_ATA=y 473CONFIG_ATA=y
@@ -485,6 +491,7 @@ CONFIG_MII=y
485# CONFIG_STNIC is not set 491# CONFIG_STNIC is not set
486CONFIG_SMC91X=y 492CONFIG_SMC91X=y
487# CONFIG_SMC911X is not set 493# CONFIG_SMC911X is not set
494# CONFIG_SMSC911X is not set
488# CONFIG_IBM_NEW_EMAC_ZMII is not set 495# CONFIG_IBM_NEW_EMAC_ZMII is not set
489# CONFIG_IBM_NEW_EMAC_RGMII is not set 496# CONFIG_IBM_NEW_EMAC_RGMII is not set
490# CONFIG_IBM_NEW_EMAC_TAH is not set 497# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -577,6 +584,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
577CONFIG_SERIAL_CORE=y 584CONFIG_SERIAL_CORE=y
578CONFIG_SERIAL_CORE_CONSOLE=y 585CONFIG_SERIAL_CORE_CONSOLE=y
579CONFIG_UNIX98_PTYS=y 586CONFIG_UNIX98_PTYS=y
587# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 588CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 589CONFIG_LEGACY_PTY_COUNT=256
582# CONFIG_IPMI_HANDLER is not set 590# CONFIG_IPMI_HANDLER is not set
@@ -604,11 +612,11 @@ CONFIG_HWMON=y
604# CONFIG_THERMAL is not set 612# CONFIG_THERMAL is not set
605# CONFIG_THERMAL_HWMON is not set 613# CONFIG_THERMAL_HWMON is not set
606# CONFIG_WATCHDOG is not set 614# CONFIG_WATCHDOG is not set
615CONFIG_SSB_POSSIBLE=y
607 616
608# 617#
609# Sonics Silicon Backplane 618# Sonics Silicon Backplane
610# 619#
611CONFIG_SSB_POSSIBLE=y
612# CONFIG_SSB is not set 620# CONFIG_SSB is not set
613 621
614# 622#
@@ -618,7 +626,7 @@ CONFIG_SSB_POSSIBLE=y
618# CONFIG_MFD_SM501 is not set 626# CONFIG_MFD_SM501 is not set
619# CONFIG_HTC_PASIC3 is not set 627# CONFIG_HTC_PASIC3 is not set
620# CONFIG_MFD_TMIO is not set 628# CONFIG_MFD_TMIO is not set
621# CONFIG_MFD_WM8400 is not set 629# CONFIG_REGULATOR is not set
622 630
623# 631#
624# Multimedia devices 632# Multimedia devices
@@ -672,7 +680,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
672# 680#
673 681
674# 682#
675# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 683# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
676# 684#
677# CONFIG_USB_GADGET is not set 685# CONFIG_USB_GADGET is not set
678# CONFIG_MMC is not set 686# CONFIG_MMC is not set
@@ -774,10 +782,7 @@ CONFIG_TMPFS=y
774CONFIG_HUGETLBFS=y 782CONFIG_HUGETLBFS=y
775CONFIG_HUGETLB_PAGE=y 783CONFIG_HUGETLB_PAGE=y
776# CONFIG_CONFIGFS_FS is not set 784# CONFIG_CONFIGFS_FS is not set
777 785CONFIG_MISC_FILESYSTEMS=y
778#
779# Miscellaneous filesystems
780#
781# CONFIG_ADFS_FS is not set 786# CONFIG_ADFS_FS is not set
782# CONFIG_AFFS_FS is not set 787# CONFIG_AFFS_FS is not set
783# CONFIG_HFS_FS is not set 788# CONFIG_HFS_FS is not set
@@ -831,14 +836,20 @@ CONFIG_DEBUG_FS=y
831# CONFIG_RCU_CPU_STALL_DETECTOR is not set 836# CONFIG_RCU_CPU_STALL_DETECTOR is not set
832# CONFIG_LATENCYTOP is not set 837# CONFIG_LATENCYTOP is not set
833# CONFIG_SYSCTL_SYSCALL_CHECK is not set 838# CONFIG_SYSCTL_SYSCALL_CHECK is not set
834CONFIG_NOP_TRACER=y 839CONFIG_HAVE_FUNCTION_TRACER=y
835CONFIG_HAVE_FTRACE=y 840CONFIG_HAVE_DYNAMIC_FTRACE=y
841CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
842
843#
844# Tracers
845#
836# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 846# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
837# CONFIG_SAMPLES is not set 847# CONFIG_SAMPLES is not set
848CONFIG_HAVE_ARCH_KGDB=y
838CONFIG_SH_STANDARD_BIOS=y 849CONFIG_SH_STANDARD_BIOS=y
839# CONFIG_EARLY_SCIF_CONSOLE is not set 850# CONFIG_EARLY_SCIF_CONSOLE is not set
840# CONFIG_EARLY_PRINTK is not set 851# CONFIG_EARLY_PRINTK is not set
841# CONFIG_SH_KGDB is not set 852# CONFIG_MORE_COMPILE_OPTIONS is not set
842 853
843# 854#
844# Security options 855# Security options
@@ -854,6 +865,7 @@ CONFIG_CRYPTO=y
854# 865#
855# CONFIG_CRYPTO_FIPS is not set 866# CONFIG_CRYPTO_FIPS is not set
856# CONFIG_CRYPTO_MANAGER is not set 867# CONFIG_CRYPTO_MANAGER is not set
868# CONFIG_CRYPTO_MANAGER2 is not set
857# CONFIG_CRYPTO_GF128MUL is not set 869# CONFIG_CRYPTO_GF128MUL is not set
858# CONFIG_CRYPTO_NULL is not set 870# CONFIG_CRYPTO_NULL is not set
859# CONFIG_CRYPTO_CRYPTD is not set 871# CONFIG_CRYPTO_CRYPTD is not set
@@ -936,6 +948,7 @@ CONFIG_CRYPTO_HW=y
936# Library routines 948# Library routines
937# 949#
938CONFIG_BITREVERSE=y 950CONFIG_BITREVERSE=y
951CONFIG_GENERIC_FIND_LAST_BIT=y
939# CONFIG_CRC_CCITT is not set 952# CONFIG_CRC_CCITT is not set
940# CONFIG_CRC16 is not set 953# CONFIG_CRC16 is not set
941# CONFIG_CRC_T10DIF is not set 954# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7750_defconfig b/arch/sh/configs/se7750_defconfig
index a577099c3247..ac874f63a625 100644
--- a/arch/sh/configs/se7750_defconfig
+++ b/arch/sh/configs/se7750_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:17:29 2008 4# Fri Jan 9 17:49:22 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
83CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,18 +88,15 @@ CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
90CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
91# CONFIG_TINY_SHMEM is not set
92CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 92CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
95# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
96# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 97CONFIG_BLOCK=y
100# CONFIG_LBD is not set 98# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
105 102
@@ -116,6 +113,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 113# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 114CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
120 121
121# 122#
@@ -123,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
123# 124#
124CONFIG_CPU_SH4=y 125CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -278,10 +279,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
278# 279#
279# Bus options 280# Bus options
280# 281#
281CONFIG_CF_ENABLER=y
282# CONFIG_CF_AREA5 is not set
283CONFIG_CF_AREA6=y
284CONFIG_CF_BASE_ADDR=0xb8000000
285# CONFIG_ARCH_SUPPORTS_MSI is not set 282# CONFIG_ARCH_SUPPORTS_MSI is not set
286 283
287# 284#
@@ -291,11 +288,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 297CONFIG_NET=y
295 298
296# 299#
297# Networking options 300# Networking options
298# 301#
302CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 303CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -352,6 +356,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
352# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
354# CONFIG_NET_SCHED is not set 358# CONFIG_NET_SCHED is not set
359# CONFIG_DCB is not set
355 360
356# 361#
357# Network testing 362# Network testing
@@ -367,8 +372,8 @@ CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
368# CONFIG_WIRELESS_OLD_REGULATORY is not set 373# CONFIG_WIRELESS_OLD_REGULATORY is not set
369# CONFIG_WIRELESS_EXT is not set 374# CONFIG_WIRELESS_EXT is not set
375# CONFIG_LIB80211 is not set
370# CONFIG_MAC80211 is not set 376# CONFIG_MAC80211 is not set
371# CONFIG_IEEE80211 is not set
372# CONFIG_RFKILL is not set 377# CONFIG_RFKILL is not set
373# CONFIG_NET_9P is not set 378# CONFIG_NET_9P is not set
374 379
@@ -469,6 +474,7 @@ CONFIG_BLK_DEV=y
469CONFIG_MISC_DEVICES=y 474CONFIG_MISC_DEVICES=y
470# CONFIG_EEPROM_93CX6 is not set 475# CONFIG_EEPROM_93CX6 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 476# CONFIG_ENCLOSURE_SERVICES is not set
477# CONFIG_C2PORT is not set
472CONFIG_HAVE_IDE=y 478CONFIG_HAVE_IDE=y
473CONFIG_IDE=y 479CONFIG_IDE=y
474 480
@@ -481,7 +487,6 @@ CONFIG_IDE_GD_ATA=y
481# CONFIG_IDE_GD_ATAPI is not set 487# CONFIG_IDE_GD_ATAPI is not set
482# CONFIG_BLK_DEV_IDECD is not set 488# CONFIG_BLK_DEV_IDECD is not set
483# CONFIG_BLK_DEV_IDETAPE is not set 489# CONFIG_BLK_DEV_IDETAPE is not set
484# CONFIG_BLK_DEV_IDESCSI is not set
485# CONFIG_IDE_TASK_IOCTL is not set 490# CONFIG_IDE_TASK_IOCTL is not set
486CONFIG_IDE_PROC_FS=y 491CONFIG_IDE_PROC_FS=y
487 492
@@ -530,6 +535,7 @@ CONFIG_SCSI_WAIT_SCAN=m
530# CONFIG_SCSI_SRP_ATTRS is not set 535# CONFIG_SCSI_SRP_ATTRS is not set
531CONFIG_SCSI_LOWLEVEL=y 536CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_ISCSI_TCP is not set 537# CONFIG_ISCSI_TCP is not set
538# CONFIG_LIBFC is not set
533# CONFIG_SCSI_DEBUG is not set 539# CONFIG_SCSI_DEBUG is not set
534# CONFIG_SCSI_DH is not set 540# CONFIG_SCSI_DH is not set
535# CONFIG_ATA is not set 541# CONFIG_ATA is not set
@@ -548,6 +554,7 @@ CONFIG_NET_ETHERNET=y
548CONFIG_STNIC=y 554CONFIG_STNIC=y
549# CONFIG_SMC91X is not set 555# CONFIG_SMC91X is not set
550# CONFIG_SMC911X is not set 556# CONFIG_SMC911X is not set
557# CONFIG_SMSC911X is not set
551# CONFIG_IBM_NEW_EMAC_ZMII is not set 558# CONFIG_IBM_NEW_EMAC_ZMII is not set
552# CONFIG_IBM_NEW_EMAC_RGMII is not set 559# CONFIG_IBM_NEW_EMAC_RGMII is not set
553# CONFIG_IBM_NEW_EMAC_TAH is not set 560# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -610,6 +617,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
610CONFIG_SERIAL_CORE=y 617CONFIG_SERIAL_CORE=y
611CONFIG_SERIAL_CORE_CONSOLE=y 618CONFIG_SERIAL_CORE_CONSOLE=y
612CONFIG_UNIX98_PTYS=y 619CONFIG_UNIX98_PTYS=y
620# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
613CONFIG_LEGACY_PTYS=y 621CONFIG_LEGACY_PTYS=y
614CONFIG_LEGACY_PTY_COUNT=256 622CONFIG_LEGACY_PTY_COUNT=256
615# CONFIG_IPMI_HANDLER is not set 623# CONFIG_IPMI_HANDLER is not set
@@ -645,11 +653,11 @@ CONFIG_WATCHDOG=y
645# CONFIG_SOFT_WATCHDOG is not set 653# CONFIG_SOFT_WATCHDOG is not set
646CONFIG_SH_WDT=y 654CONFIG_SH_WDT=y
647# CONFIG_SH_WDT_MMAP is not set 655# CONFIG_SH_WDT_MMAP is not set
656CONFIG_SSB_POSSIBLE=y
648 657
649# 658#
650# Sonics Silicon Backplane 659# Sonics Silicon Backplane
651# 660#
652CONFIG_SSB_POSSIBLE=y
653# CONFIG_SSB is not set 661# CONFIG_SSB is not set
654 662
655# 663#
@@ -659,7 +667,7 @@ CONFIG_SSB_POSSIBLE=y
659# CONFIG_MFD_SM501 is not set 667# CONFIG_MFD_SM501 is not set
660# CONFIG_HTC_PASIC3 is not set 668# CONFIG_HTC_PASIC3 is not set
661# CONFIG_MFD_TMIO is not set 669# CONFIG_MFD_TMIO is not set
662# CONFIG_MFD_WM8400 is not set 670# CONFIG_REGULATOR is not set
663 671
664# 672#
665# Multimedia devices 673# Multimedia devices
@@ -703,7 +711,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
703# 711#
704 712
705# 713#
706# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 714# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
707# 715#
708# CONFIG_USB_GADGET is not set 716# CONFIG_USB_GADGET is not set
709# CONFIG_MMC is not set 717# CONFIG_MMC is not set
@@ -761,10 +769,7 @@ CONFIG_TMPFS=y
761# CONFIG_HUGETLBFS is not set 769# CONFIG_HUGETLBFS is not set
762# CONFIG_HUGETLB_PAGE is not set 770# CONFIG_HUGETLB_PAGE is not set
763# CONFIG_CONFIGFS_FS is not set 771# CONFIG_CONFIGFS_FS is not set
764 772CONFIG_MISC_FILESYSTEMS=y
765#
766# Miscellaneous filesystems
767#
768# CONFIG_ADFS_FS is not set 773# CONFIG_ADFS_FS is not set
769# CONFIG_AFFS_FS is not set 774# CONFIG_AFFS_FS is not set
770# CONFIG_HFS_FS is not set 775# CONFIG_HFS_FS is not set
@@ -847,13 +852,19 @@ CONFIG_FRAME_WARN=1024
847# CONFIG_DEBUG_MEMORY_INIT is not set 852# CONFIG_DEBUG_MEMORY_INIT is not set
848# CONFIG_RCU_CPU_STALL_DETECTOR is not set 853# CONFIG_RCU_CPU_STALL_DETECTOR is not set
849# CONFIG_LATENCYTOP is not set 854# CONFIG_LATENCYTOP is not set
850CONFIG_NOP_TRACER=y 855CONFIG_HAVE_FUNCTION_TRACER=y
851CONFIG_HAVE_FTRACE=y 856CONFIG_HAVE_DYNAMIC_FTRACE=y
857CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
858
859#
860# Tracers
861#
852# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 862# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
853# CONFIG_SAMPLES is not set 863# CONFIG_SAMPLES is not set
864CONFIG_HAVE_ARCH_KGDB=y
854# CONFIG_SH_STANDARD_BIOS is not set 865# CONFIG_SH_STANDARD_BIOS is not set
855# CONFIG_EARLY_SCIF_CONSOLE is not set 866# CONFIG_EARLY_SCIF_CONSOLE is not set
856# CONFIG_SH_KGDB is not set 867# CONFIG_MORE_COMPILE_OPTIONS is not set
857 868
858# 869#
859# Security options 870# Security options
@@ -869,6 +880,7 @@ CONFIG_CRYPTO=y
869# 880#
870# CONFIG_CRYPTO_FIPS is not set 881# CONFIG_CRYPTO_FIPS is not set
871# CONFIG_CRYPTO_MANAGER is not set 882# CONFIG_CRYPTO_MANAGER is not set
883# CONFIG_CRYPTO_MANAGER2 is not set
872# CONFIG_CRYPTO_GF128MUL is not set 884# CONFIG_CRYPTO_GF128MUL is not set
873# CONFIG_CRYPTO_NULL is not set 885# CONFIG_CRYPTO_NULL is not set
874# CONFIG_CRYPTO_CRYPTD is not set 886# CONFIG_CRYPTO_CRYPTD is not set
@@ -951,6 +963,7 @@ CONFIG_CRYPTO_HW=y
951# Library routines 963# Library routines
952# 964#
953CONFIG_BITREVERSE=y 965CONFIG_BITREVERSE=y
966CONFIG_GENERIC_FIND_LAST_BIT=y
954# CONFIG_CRC_CCITT is not set 967# CONFIG_CRC_CCITT is not set
955# CONFIG_CRC16 is not set 968# CONFIG_CRC16 is not set
956# CONFIG_CRC_T10DIF is not set 969# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7751_defconfig b/arch/sh/configs/se7751_defconfig
index d99a6bdf410f..f54ae056f177 100644
--- a/arch/sh/configs/se7751_defconfig
+++ b/arch/sh/configs/se7751_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:21:12 2008 4# Fri Jan 9 17:51:47 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
83CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,18 +88,15 @@ CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
90CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
91# CONFIG_TINY_SHMEM is not set
92CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 92CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
95# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
96# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 97CONFIG_BLOCK=y
100# CONFIG_LBD is not set 98# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
105 102
@@ -116,6 +113,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 113# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 114CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
120 121
121# 122#
@@ -123,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
123# 124#
124CONFIG_CPU_SH4=y 125CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -280,7 +281,6 @@ CONFIG_CMDLINE="console=ttySC1,38400"
280# 281#
281# Bus options 282# Bus options
282# 283#
283# CONFIG_CF_ENABLER is not set
284# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
285 285
286# 286#
@@ -290,11 +290,18 @@ CONFIG_BINFMT_ELF=y
290# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 290# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
291# CONFIG_HAVE_AOUT is not set 291# CONFIG_HAVE_AOUT is not set
292# CONFIG_BINFMT_MISC is not set 292# CONFIG_BINFMT_MISC is not set
293
294#
295# Power management options (EXPERIMENTAL)
296#
297# CONFIG_PM is not set
298# CONFIG_CPU_IDLE is not set
293CONFIG_NET=y 299CONFIG_NET=y
294 300
295# 301#
296# Networking options 302# Networking options
297# 303#
304CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 305CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 306# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 307CONFIG_UNIX=y
@@ -370,6 +377,7 @@ CONFIG_IP_NF_QUEUE=y
370# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
371# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
372# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
373 381
374# 382#
375# Network testing 383# Network testing
@@ -385,8 +393,8 @@ CONFIG_WIRELESS=y
385# CONFIG_CFG80211 is not set 393# CONFIG_CFG80211 is not set
386# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
387# CONFIG_WIRELESS_EXT is not set 395# CONFIG_WIRELESS_EXT is not set
396# CONFIG_LIB80211 is not set
388# CONFIG_MAC80211 is not set 397# CONFIG_MAC80211 is not set
389# CONFIG_IEEE80211 is not set
390# CONFIG_RFKILL is not set 398# CONFIG_RFKILL is not set
391# CONFIG_NET_9P is not set 399# CONFIG_NET_9P is not set
392 400
@@ -490,6 +498,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
490CONFIG_MISC_DEVICES=y 498CONFIG_MISC_DEVICES=y
491# CONFIG_EEPROM_93CX6 is not set 499# CONFIG_EEPROM_93CX6 is not set
492# CONFIG_ENCLOSURE_SERVICES is not set 500# CONFIG_ENCLOSURE_SERVICES is not set
501# CONFIG_C2PORT is not set
493CONFIG_HAVE_IDE=y 502CONFIG_HAVE_IDE=y
494# CONFIG_IDE is not set 503# CONFIG_IDE is not set
495 504
@@ -516,6 +525,7 @@ CONFIG_MII=y
516# CONFIG_STNIC is not set 525# CONFIG_STNIC is not set
517# CONFIG_SMC91X is not set 526# CONFIG_SMC91X is not set
518# CONFIG_SMC911X is not set 527# CONFIG_SMC911X is not set
528# CONFIG_SMSC911X is not set
519# CONFIG_IBM_NEW_EMAC_ZMII is not set 529# CONFIG_IBM_NEW_EMAC_ZMII is not set
520# CONFIG_IBM_NEW_EMAC_RGMII is not set 530# CONFIG_IBM_NEW_EMAC_RGMII is not set
521# CONFIG_IBM_NEW_EMAC_TAH is not set 531# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -570,6 +580,7 @@ CONFIG_DEVKMEM=y
570# 580#
571# CONFIG_SERIAL_SH_SCI is not set 581# CONFIG_SERIAL_SH_SCI is not set
572CONFIG_UNIX98_PTYS=y 582CONFIG_UNIX98_PTYS=y
583# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
573CONFIG_LEGACY_PTYS=y 584CONFIG_LEGACY_PTYS=y
574CONFIG_LEGACY_PTY_COUNT=256 585CONFIG_LEGACY_PTY_COUNT=256
575# CONFIG_IPMI_HANDLER is not set 586# CONFIG_IPMI_HANDLER is not set
@@ -604,11 +615,11 @@ CONFIG_WATCHDOG=y
604# 615#
605# CONFIG_SOFT_WATCHDOG is not set 616# CONFIG_SOFT_WATCHDOG is not set
606# CONFIG_SH_WDT is not set 617# CONFIG_SH_WDT is not set
618CONFIG_SSB_POSSIBLE=y
607 619
608# 620#
609# Sonics Silicon Backplane 621# Sonics Silicon Backplane
610# 622#
611CONFIG_SSB_POSSIBLE=y
612# CONFIG_SSB is not set 623# CONFIG_SSB is not set
613 624
614# 625#
@@ -618,7 +629,7 @@ CONFIG_SSB_POSSIBLE=y
618# CONFIG_MFD_SM501 is not set 629# CONFIG_MFD_SM501 is not set
619# CONFIG_HTC_PASIC3 is not set 630# CONFIG_HTC_PASIC3 is not set
620# CONFIG_MFD_TMIO is not set 631# CONFIG_MFD_TMIO is not set
621# CONFIG_MFD_WM8400 is not set 632# CONFIG_REGULATOR is not set
622 633
623# 634#
624# Multimedia devices 635# Multimedia devices
@@ -662,7 +673,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
662# 673#
663 674
664# 675#
665# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 676# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
666# 677#
667# CONFIG_USB_GADGET is not set 678# CONFIG_USB_GADGET is not set
668# CONFIG_MMC is not set 679# CONFIG_MMC is not set
@@ -722,10 +733,7 @@ CONFIG_TMPFS=y
722# CONFIG_HUGETLBFS is not set 733# CONFIG_HUGETLBFS is not set
723# CONFIG_HUGETLB_PAGE is not set 734# CONFIG_HUGETLB_PAGE is not set
724# CONFIG_CONFIGFS_FS is not set 735# CONFIG_CONFIGFS_FS is not set
725 736CONFIG_MISC_FILESYSTEMS=y
726#
727# Miscellaneous filesystems
728#
729# CONFIG_ADFS_FS is not set 737# CONFIG_ADFS_FS is not set
730# CONFIG_AFFS_FS is not set 738# CONFIG_AFFS_FS is not set
731# CONFIG_HFS_FS is not set 739# CONFIG_HFS_FS is not set
@@ -787,13 +795,19 @@ CONFIG_FRAME_WARN=1024
787# CONFIG_DEBUG_MEMORY_INIT is not set 795# CONFIG_DEBUG_MEMORY_INIT is not set
788# CONFIG_RCU_CPU_STALL_DETECTOR is not set 796# CONFIG_RCU_CPU_STALL_DETECTOR is not set
789# CONFIG_LATENCYTOP is not set 797# CONFIG_LATENCYTOP is not set
790CONFIG_NOP_TRACER=y 798CONFIG_HAVE_FUNCTION_TRACER=y
791CONFIG_HAVE_FTRACE=y 799CONFIG_HAVE_DYNAMIC_FTRACE=y
800CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
801
802#
803# Tracers
804#
792# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 805# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
793# CONFIG_SAMPLES is not set 806# CONFIG_SAMPLES is not set
807CONFIG_HAVE_ARCH_KGDB=y
794# CONFIG_SH_STANDARD_BIOS is not set 808# CONFIG_SH_STANDARD_BIOS is not set
795# CONFIG_EARLY_SCIF_CONSOLE is not set 809# CONFIG_EARLY_SCIF_CONSOLE is not set
796# CONFIG_SH_KGDB is not set 810# CONFIG_MORE_COMPILE_OPTIONS is not set
797 811
798# 812#
799# Security options 813# Security options
@@ -809,6 +823,7 @@ CONFIG_CRYPTO=y
809# 823#
810# CONFIG_CRYPTO_FIPS is not set 824# CONFIG_CRYPTO_FIPS is not set
811# CONFIG_CRYPTO_MANAGER is not set 825# CONFIG_CRYPTO_MANAGER is not set
826# CONFIG_CRYPTO_MANAGER2 is not set
812# CONFIG_CRYPTO_GF128MUL is not set 827# CONFIG_CRYPTO_GF128MUL is not set
813# CONFIG_CRYPTO_NULL is not set 828# CONFIG_CRYPTO_NULL is not set
814# CONFIG_CRYPTO_CRYPTD is not set 829# CONFIG_CRYPTO_CRYPTD is not set
@@ -891,6 +906,7 @@ CONFIG_CRYPTO_HW=y
891# Library routines 906# Library routines
892# 907#
893CONFIG_BITREVERSE=y 908CONFIG_BITREVERSE=y
909CONFIG_GENERIC_FIND_LAST_BIT=y
894# CONFIG_CRC_CCITT is not set 910# CONFIG_CRC_CCITT is not set
895# CONFIG_CRC16 is not set 911# CONFIG_CRC16 is not set
896# CONFIG_CRC_T10DIF is not set 912# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig
index ad95b80bb198..7504978e8747 100644
--- a/arch/sh/configs/se7780_defconfig
+++ b/arch/sh/configs/se7780_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:27:30 2008 4# Fri Jan 9 17:53:50 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -74,7 +76,6 @@ CONFIG_SLAB=y
74# CONFIG_SLUB is not set 76# CONFIG_SLUB is not set
75# CONFIG_SLOB is not set 77# CONFIG_SLOB is not set
76# CONFIG_PROFILING is not set 78# CONFIG_PROFILING is not set
77# CONFIG_MARKERS is not set
78CONFIG_HAVE_OPROFILE=y 79CONFIG_HAVE_OPROFILE=y
79CONFIG_HAVE_IOREMAP_PROT=y 80CONFIG_HAVE_IOREMAP_PROT=y
80CONFIG_HAVE_KPROBES=y 81CONFIG_HAVE_KPROBES=y
@@ -84,18 +85,15 @@ CONFIG_HAVE_CLK=y
84CONFIG_HAVE_GENERIC_DMA_COHERENT=y 85CONFIG_HAVE_GENERIC_DMA_COHERENT=y
85CONFIG_SLABINFO=y 86CONFIG_SLABINFO=y
86CONFIG_RT_MUTEXES=y 87CONFIG_RT_MUTEXES=y
87# CONFIG_TINY_SHMEM is not set
88CONFIG_BASE_SMALL=0 88CONFIG_BASE_SMALL=0
89CONFIG_MODULES=y 89CONFIG_MODULES=y
90# CONFIG_MODULE_FORCE_LOAD is not set 90# CONFIG_MODULE_FORCE_LOAD is not set
91CONFIG_MODULE_UNLOAD=y 91CONFIG_MODULE_UNLOAD=y
92# CONFIG_MODVERSIONS is not set 92# CONFIG_MODVERSIONS is not set
93# CONFIG_MODULE_SRCVERSION_ALL is not set 93# CONFIG_MODULE_SRCVERSION_ALL is not set
94CONFIG_KMOD=y
95CONFIG_BLOCK=y 94CONFIG_BLOCK=y
96# CONFIG_LBD is not set 95# CONFIG_LBD is not set
97# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
98# CONFIG_LSF is not set
99# CONFIG_BLK_DEV_INTEGRITY is not set 97# CONFIG_BLK_DEV_INTEGRITY is not set
100 98
101# 99#
@@ -111,6 +109,10 @@ CONFIG_DEFAULT_DEADLINE=y
111# CONFIG_DEFAULT_NOOP is not set 109# CONFIG_DEFAULT_NOOP is not set
112CONFIG_DEFAULT_IOSCHED="deadline" 110CONFIG_DEFAULT_IOSCHED="deadline"
113CONFIG_CLASSIC_RCU=y 111CONFIG_CLASSIC_RCU=y
112# CONFIG_TREE_RCU is not set
113# CONFIG_PREEMPT_RCU is not set
114# CONFIG_TREE_RCU_TRACE is not set
115# CONFIG_PREEMPT_RCU_TRACE is not set
114# CONFIG_FREEZER is not set 116# CONFIG_FREEZER is not set
115 117
116# 118#
@@ -119,6 +121,7 @@ CONFIG_CLASSIC_RCU=y
119CONFIG_CPU_SH4=y 121CONFIG_CPU_SH4=y
120CONFIG_CPU_SH4A=y 122CONFIG_CPU_SH4A=y
121# CONFIG_CPU_SUBTYPE_SH7619 is not set 123# CONFIG_CPU_SUBTYPE_SH7619 is not set
124# CONFIG_CPU_SUBTYPE_SH7201 is not set
122# CONFIG_CPU_SUBTYPE_SH7203 is not set 125# CONFIG_CPU_SUBTYPE_SH7203 is not set
123# CONFIG_CPU_SUBTYPE_SH7206 is not set 126# CONFIG_CPU_SUBTYPE_SH7206 is not set
124# CONFIG_CPU_SUBTYPE_SH7263 is not set 127# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -185,7 +188,6 @@ CONFIG_SPARSEMEM_STATIC=y
185CONFIG_PAGEFLAGS_EXTENDED=y 188CONFIG_PAGEFLAGS_EXTENDED=y
186CONFIG_SPLIT_PTLOCK_CPUS=4 189CONFIG_SPLIT_PTLOCK_CPUS=4
187CONFIG_MIGRATION=y 190CONFIG_MIGRATION=y
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -274,11 +276,11 @@ CONFIG_CMDLINE="console=ttySC0.115200 root=/dev/sda1"
274# 276#
275# Bus options 277# Bus options
276# 278#
277# CONFIG_CF_ENABLER is not set
278CONFIG_PCI=y 279CONFIG_PCI=y
279CONFIG_SH_PCIDMA_NONCOHERENT=y 280CONFIG_SH_PCIDMA_NONCOHERENT=y
280CONFIG_PCI_AUTO=y 281CONFIG_PCI_AUTO=y
281CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 282CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
283# CONFIG_PCIEPORTBUS is not set
282# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
283CONFIG_PCI_LEGACY=y 285CONFIG_PCI_LEGACY=y
284 286
@@ -294,6 +296,7 @@ CONFIG_NET=y
294# 296#
295# Networking options 297# Networking options
296# 298#
299CONFIG_COMPAT_NET_DEV_OPS=y
297CONFIG_PACKET=y 300CONFIG_PACKET=y
298# CONFIG_PACKET_MMAP is not set 301# CONFIG_PACKET_MMAP is not set
299CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -349,6 +352,7 @@ CONFIG_IPV6=y
349# CONFIG_IPX is not set 352# CONFIG_IPX is not set
350# CONFIG_ATALK is not set 353# CONFIG_ATALK is not set
351# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
352 356
353# 357#
354# Network testing 358# Network testing
@@ -363,8 +367,8 @@ CONFIG_WIRELESS=y
363# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
364# CONFIG_WIRELESS_OLD_REGULATORY is not set 368# CONFIG_WIRELESS_OLD_REGULATORY is not set
365# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
366# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
367# CONFIG_IEEE80211 is not set
368# CONFIG_RFKILL is not set 372# CONFIG_RFKILL is not set
369 373
370# 374#
@@ -533,6 +537,8 @@ CONFIG_SCSI_LOWLEVEL=y
533# CONFIG_MEGARAID_LEGACY is not set 537# CONFIG_MEGARAID_LEGACY is not set
534# CONFIG_MEGARAID_SAS is not set 538# CONFIG_MEGARAID_SAS is not set
535# CONFIG_SCSI_HPTIOP is not set 539# CONFIG_SCSI_HPTIOP is not set
540# CONFIG_LIBFC is not set
541# CONFIG_FCOE is not set
536# CONFIG_SCSI_DMX3191D is not set 542# CONFIG_SCSI_DMX3191D is not set
537# CONFIG_SCSI_FUTURE_DOMAIN is not set 543# CONFIG_SCSI_FUTURE_DOMAIN is not set
538# CONFIG_SCSI_IPS is not set 544# CONFIG_SCSI_IPS is not set
@@ -569,11 +575,13 @@ CONFIG_SATA_SIL=y
569# CONFIG_SATA_VIA is not set 575# CONFIG_SATA_VIA is not set
570# CONFIG_SATA_VITESSE is not set 576# CONFIG_SATA_VITESSE is not set
571# CONFIG_SATA_INIC162X is not set 577# CONFIG_SATA_INIC162X is not set
578# CONFIG_PATA_ALI is not set
572# CONFIG_PATA_AMD is not set 579# CONFIG_PATA_AMD is not set
573# CONFIG_PATA_ARTOP is not set 580# CONFIG_PATA_ARTOP is not set
574# CONFIG_PATA_ATIIXP is not set 581# CONFIG_PATA_ATIIXP is not set
575# CONFIG_PATA_CMD64X is not set 582# CONFIG_PATA_CMD64X is not set
576# CONFIG_PATA_CS5520 is not set 583# CONFIG_PATA_CS5520 is not set
584# CONFIG_PATA_CS5530 is not set
577# CONFIG_PATA_EFAR is not set 585# CONFIG_PATA_EFAR is not set
578# CONFIG_ATA_GENERIC is not set 586# CONFIG_ATA_GENERIC is not set
579# CONFIG_PATA_HPT366 is not set 587# CONFIG_PATA_HPT366 is not set
@@ -585,10 +593,15 @@ CONFIG_SATA_SIL=y
585# CONFIG_PATA_MPIIX is not set 593# CONFIG_PATA_MPIIX is not set
586# CONFIG_PATA_OLDPIIX is not set 594# CONFIG_PATA_OLDPIIX is not set
587# CONFIG_PATA_NETCELL is not set 595# CONFIG_PATA_NETCELL is not set
596# CONFIG_PATA_NS87410 is not set
597# CONFIG_PATA_NS87415 is not set
598# CONFIG_PATA_PDC_OLD is not set
588# CONFIG_PATA_RZ1000 is not set 599# CONFIG_PATA_RZ1000 is not set
600# CONFIG_PATA_SC1200 is not set
589# CONFIG_PATA_SERVERWORKS is not set 601# CONFIG_PATA_SERVERWORKS is not set
590# CONFIG_PATA_PDC2027X is not set 602# CONFIG_PATA_PDC2027X is not set
591# CONFIG_PATA_SIL680 is not set 603# CONFIG_PATA_SIL680 is not set
604# CONFIG_PATA_SIS is not set
592# CONFIG_PATA_VIA is not set 605# CONFIG_PATA_VIA is not set
593# CONFIG_PATA_WINBOND is not set 606# CONFIG_PATA_WINBOND is not set
594# CONFIG_PATA_PLATFORM is not set 607# CONFIG_PATA_PLATFORM is not set
@@ -627,6 +640,9 @@ CONFIG_SMSC_PHY=y
627# CONFIG_BROADCOM_PHY is not set 640# CONFIG_BROADCOM_PHY is not set
628# CONFIG_ICPLUS_PHY is not set 641# CONFIG_ICPLUS_PHY is not set
629# CONFIG_REALTEK_PHY is not set 642# CONFIG_REALTEK_PHY is not set
643# CONFIG_NATIONAL_PHY is not set
644# CONFIG_STE10XP is not set
645# CONFIG_LSI_ET1011C_PHY is not set
630# CONFIG_FIXED_PHY is not set 646# CONFIG_FIXED_PHY is not set
631# CONFIG_MDIO_BITBANG is not set 647# CONFIG_MDIO_BITBANG is not set
632CONFIG_NET_ETHERNET=y 648CONFIG_NET_ETHERNET=y
@@ -639,6 +655,7 @@ CONFIG_MII=y
639# CONFIG_NET_VENDOR_3COM is not set 655# CONFIG_NET_VENDOR_3COM is not set
640CONFIG_SMC91X=y 656CONFIG_SMC91X=y
641# CONFIG_SMC911X is not set 657# CONFIG_SMC911X is not set
658# CONFIG_SMSC911X is not set
642# CONFIG_NET_TULIP is not set 659# CONFIG_NET_TULIP is not set
643# CONFIG_HP100 is not set 660# CONFIG_HP100 is not set
644# CONFIG_IBM_NEW_EMAC_ZMII is not set 661# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -654,7 +671,6 @@ CONFIG_NET_PCI=y
654# CONFIG_ADAPTEC_STARFIRE is not set 671# CONFIG_ADAPTEC_STARFIRE is not set
655# CONFIG_B44 is not set 672# CONFIG_B44 is not set
656# CONFIG_FORCEDETH is not set 673# CONFIG_FORCEDETH is not set
657# CONFIG_EEPRO100 is not set
658# CONFIG_E100 is not set 674# CONFIG_E100 is not set
659# CONFIG_FEALNX is not set 675# CONFIG_FEALNX is not set
660# CONFIG_NATSEMI is not set 676# CONFIG_NATSEMI is not set
@@ -663,6 +679,7 @@ CONFIG_NET_PCI=y
663# CONFIG_R6040 is not set 679# CONFIG_R6040 is not set
664# CONFIG_SIS900 is not set 680# CONFIG_SIS900 is not set
665# CONFIG_EPIC100 is not set 681# CONFIG_EPIC100 is not set
682# CONFIG_SMSC9420 is not set
666# CONFIG_SUNDANCE is not set 683# CONFIG_SUNDANCE is not set
667# CONFIG_TLAN is not set 684# CONFIG_TLAN is not set
668# CONFIG_VIA_RHINE is not set 685# CONFIG_VIA_RHINE is not set
@@ -754,6 +771,7 @@ CONFIG_SERIAL_CORE=y
754CONFIG_SERIAL_CORE_CONSOLE=y 771CONFIG_SERIAL_CORE_CONSOLE=y
755# CONFIG_SERIAL_JSM is not set 772# CONFIG_SERIAL_JSM is not set
756CONFIG_UNIX98_PTYS=y 773CONFIG_UNIX98_PTYS=y
774# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
757# CONFIG_LEGACY_PTYS is not set 775# CONFIG_LEGACY_PTYS is not set
758# CONFIG_IPMI_HANDLER is not set 776# CONFIG_IPMI_HANDLER is not set
759# CONFIG_HW_RANDOM is not set 777# CONFIG_HW_RANDOM is not set
@@ -779,11 +797,11 @@ CONFIG_HWMON=y
779CONFIG_THERMAL=y 797CONFIG_THERMAL=y
780# CONFIG_THERMAL_HWMON is not set 798# CONFIG_THERMAL_HWMON is not set
781# CONFIG_WATCHDOG is not set 799# CONFIG_WATCHDOG is not set
800CONFIG_SSB_POSSIBLE=y
782 801
783# 802#
784# Sonics Silicon Backplane 803# Sonics Silicon Backplane
785# 804#
786CONFIG_SSB_POSSIBLE=y
787# CONFIG_SSB is not set 805# CONFIG_SSB is not set
788 806
789# 807#
@@ -793,7 +811,7 @@ CONFIG_SSB_POSSIBLE=y
793# CONFIG_MFD_SM501 is not set 811# CONFIG_MFD_SM501 is not set
794# CONFIG_HTC_PASIC3 is not set 812# CONFIG_HTC_PASIC3 is not set
795# CONFIG_MFD_TMIO is not set 813# CONFIG_MFD_TMIO is not set
796# CONFIG_MFD_WM8400 is not set 814# CONFIG_REGULATOR is not set
797 815
798# 816#
799# Multimedia devices 817# Multimedia devices
@@ -821,15 +839,16 @@ CONFIG_FB=y
821CONFIG_FIRMWARE_EDID=y 839CONFIG_FIRMWARE_EDID=y
822# CONFIG_FB_DDC is not set 840# CONFIG_FB_DDC is not set
823# CONFIG_FB_BOOT_VESA_SUPPORT is not set 841# CONFIG_FB_BOOT_VESA_SUPPORT is not set
824CONFIG_FB_CFB_FILLRECT=m 842# CONFIG_FB_CFB_FILLRECT is not set
825CONFIG_FB_CFB_COPYAREA=m 843# CONFIG_FB_CFB_COPYAREA is not set
826CONFIG_FB_CFB_IMAGEBLIT=m 844# CONFIG_FB_CFB_IMAGEBLIT is not set
827# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 845# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
828# CONFIG_FB_SYS_FILLRECT is not set 846CONFIG_FB_SYS_FILLRECT=m
829# CONFIG_FB_SYS_COPYAREA is not set 847CONFIG_FB_SYS_COPYAREA=m
830# CONFIG_FB_SYS_IMAGEBLIT is not set 848CONFIG_FB_SYS_IMAGEBLIT=m
831# CONFIG_FB_FOREIGN_ENDIAN is not set 849# CONFIG_FB_FOREIGN_ENDIAN is not set
832# CONFIG_FB_SYS_FOPS is not set 850CONFIG_FB_SYS_FOPS=m
851CONFIG_FB_DEFERRED_IO=y
833# CONFIG_FB_SVGALIB is not set 852# CONFIG_FB_SVGALIB is not set
834# CONFIG_FB_MACMODES is not set 853# CONFIG_FB_MACMODES is not set
835# CONFIG_FB_BACKLIGHT is not set 854# CONFIG_FB_BACKLIGHT is not set
@@ -865,6 +884,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
865CONFIG_FB_SH_MOBILE_LCDC=m 884CONFIG_FB_SH_MOBILE_LCDC=m
866# CONFIG_FB_VIRTUAL is not set 885# CONFIG_FB_VIRTUAL is not set
867# CONFIG_FB_METRONOME is not set 886# CONFIG_FB_METRONOME is not set
887# CONFIG_FB_MB862XX is not set
868# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 888# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
869 889
870# 890#
@@ -912,11 +932,9 @@ CONFIG_HID_COMPAT=y
912CONFIG_HID_A4TECH=y 932CONFIG_HID_A4TECH=y
913CONFIG_HID_APPLE=y 933CONFIG_HID_APPLE=y
914CONFIG_HID_BELKIN=y 934CONFIG_HID_BELKIN=y
915CONFIG_HID_BRIGHT=y
916CONFIG_HID_CHERRY=y 935CONFIG_HID_CHERRY=y
917CONFIG_HID_CHICONY=y 936CONFIG_HID_CHICONY=y
918CONFIG_HID_CYPRESS=y 937CONFIG_HID_CYPRESS=y
919CONFIG_HID_DELL=y
920CONFIG_HID_EZKEY=y 938CONFIG_HID_EZKEY=y
921CONFIG_HID_GYRATION=y 939CONFIG_HID_GYRATION=y
922CONFIG_HID_LOGITECH=y 940CONFIG_HID_LOGITECH=y
@@ -924,12 +942,15 @@ CONFIG_HID_LOGITECH=y
924# CONFIG_LOGIRUMBLEPAD2_FF is not set 942# CONFIG_LOGIRUMBLEPAD2_FF is not set
925CONFIG_HID_MICROSOFT=y 943CONFIG_HID_MICROSOFT=y
926CONFIG_HID_MONTEREY=y 944CONFIG_HID_MONTEREY=y
945# CONFIG_HID_NTRIG is not set
927CONFIG_HID_PANTHERLORD=y 946CONFIG_HID_PANTHERLORD=y
928# CONFIG_PANTHERLORD_FF is not set 947# CONFIG_PANTHERLORD_FF is not set
929CONFIG_HID_PETALYNX=y 948CONFIG_HID_PETALYNX=y
930CONFIG_HID_SAMSUNG=y 949CONFIG_HID_SAMSUNG=y
931CONFIG_HID_SONY=y 950CONFIG_HID_SONY=y
932CONFIG_HID_SUNPLUS=y 951CONFIG_HID_SUNPLUS=y
952# CONFIG_GREENASIA_FF is not set
953# CONFIG_HID_TOPSEED is not set
933CONFIG_THRUSTMASTER_FF=m 954CONFIG_THRUSTMASTER_FF=m
934CONFIG_ZEROPLUS_FF=m 955CONFIG_ZEROPLUS_FF=m
935CONFIG_USB_SUPPORT=y 956CONFIG_USB_SUPPORT=y
@@ -949,6 +970,7 @@ CONFIG_USB_DEVICEFS=y
949# CONFIG_USB_OTG_WHITELIST is not set 970# CONFIG_USB_OTG_WHITELIST is not set
950# CONFIG_USB_OTG_BLACKLIST_HUB is not set 971# CONFIG_USB_OTG_BLACKLIST_HUB is not set
951CONFIG_USB_MON=y 972CONFIG_USB_MON=y
973# CONFIG_USB_WUSB_CBAF is not set
952 974
953# 975#
954# USB Host Controller Drivers 976# USB Host Controller Drivers
@@ -974,11 +996,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
974# CONFIG_USB_TMC is not set 996# CONFIG_USB_TMC is not set
975 997
976# 998#
977# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 999# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
978# 1000#
979 1001
980# 1002#
981# may also be needed; see USB_STORAGE Help for more information 1003# see USB_STORAGE Help for more information
982# 1004#
983CONFIG_USB_STORAGE=y 1005CONFIG_USB_STORAGE=y
984# CONFIG_USB_STORAGE_DEBUG is not set 1006# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1094,10 +1116,7 @@ CONFIG_TMPFS=y
1094# CONFIG_HUGETLBFS is not set 1116# CONFIG_HUGETLBFS is not set
1095# CONFIG_HUGETLB_PAGE is not set 1117# CONFIG_HUGETLB_PAGE is not set
1096# CONFIG_CONFIGFS_FS is not set 1118# CONFIG_CONFIGFS_FS is not set
1097 1119CONFIG_MISC_FILESYSTEMS=y
1098#
1099# Miscellaneous filesystems
1100#
1101# CONFIG_HFSPLUS_FS is not set 1120# CONFIG_HFSPLUS_FS is not set
1102# CONFIG_JFFS2_FS is not set 1121# CONFIG_JFFS2_FS is not set
1103CONFIG_CRAMFS=y 1122CONFIG_CRAMFS=y
@@ -1188,13 +1207,19 @@ CONFIG_DEBUG_FS=y
1188# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1207# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1189# CONFIG_LATENCYTOP is not set 1208# CONFIG_LATENCYTOP is not set
1190# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1209# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1191CONFIG_NOP_TRACER=y 1210CONFIG_HAVE_FUNCTION_TRACER=y
1192CONFIG_HAVE_FTRACE=y 1211CONFIG_HAVE_DYNAMIC_FTRACE=y
1212CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1213
1214#
1215# Tracers
1216#
1193# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1217# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1194# CONFIG_SAMPLES is not set 1218# CONFIG_SAMPLES is not set
1219CONFIG_HAVE_ARCH_KGDB=y
1195# CONFIG_SH_STANDARD_BIOS is not set 1220# CONFIG_SH_STANDARD_BIOS is not set
1196# CONFIG_EARLY_SCIF_CONSOLE is not set 1221# CONFIG_EARLY_SCIF_CONSOLE is not set
1197# CONFIG_SH_KGDB is not set 1222# CONFIG_MORE_COMPILE_OPTIONS is not set
1198 1223
1199# 1224#
1200# Security options 1225# Security options
@@ -1210,6 +1235,7 @@ CONFIG_CRYPTO=y
1210# 1235#
1211# CONFIG_CRYPTO_FIPS is not set 1236# CONFIG_CRYPTO_FIPS is not set
1212# CONFIG_CRYPTO_MANAGER is not set 1237# CONFIG_CRYPTO_MANAGER is not set
1238# CONFIG_CRYPTO_MANAGER2 is not set
1213# CONFIG_CRYPTO_NULL is not set 1239# CONFIG_CRYPTO_NULL is not set
1214# CONFIG_CRYPTO_CRYPTD is not set 1240# CONFIG_CRYPTO_CRYPTD is not set
1215# CONFIG_CRYPTO_AUTHENC is not set 1241# CONFIG_CRYPTO_AUTHENC is not set
@@ -1288,6 +1314,7 @@ CONFIG_CRYPTO_HW=y
1288# Library routines 1314# Library routines
1289# 1315#
1290CONFIG_BITREVERSE=y 1316CONFIG_BITREVERSE=y
1317CONFIG_GENERIC_FIND_LAST_BIT=y
1291# CONFIG_CRC_CCITT is not set 1318# CONFIG_CRC_CCITT is not set
1292# CONFIG_CRC16 is not set 1319# CONFIG_CRC16 is not set
1293# CONFIG_CRC_T10DIF is not set 1320# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh03_defconfig b/arch/sh/configs/sh03_defconfig
index 95f0f5d5b631..04bde1e96965 100644
--- a/arch/sh/configs/sh03_defconfig
+++ b/arch/sh/configs/sh03_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:31:54 2008 4# Fri Jan 9 17:56:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -79,6 +81,7 @@ CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81CONFIG_PROFILING=y 83CONFIG_PROFILING=y
84CONFIG_TRACEPOINTS=y
82# CONFIG_MARKERS is not set 85# CONFIG_MARKERS is not set
83CONFIG_OPROFILE=m 86CONFIG_OPROFILE=m
84CONFIG_HAVE_OPROFILE=y 87CONFIG_HAVE_OPROFILE=y
@@ -91,7 +94,6 @@ CONFIG_HAVE_CLK=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 95CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 96CONFIG_RT_MUTEXES=y
94# CONFIG_TINY_SHMEM is not set
95CONFIG_BASE_SMALL=0 97CONFIG_BASE_SMALL=0
96CONFIG_MODULES=y 98CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 99# CONFIG_MODULE_FORCE_LOAD is not set
@@ -99,11 +101,9 @@ CONFIG_MODULE_UNLOAD=y
99CONFIG_MODULE_FORCE_UNLOAD=y 101CONFIG_MODULE_FORCE_UNLOAD=y
100CONFIG_MODVERSIONS=y 102CONFIG_MODVERSIONS=y
101# CONFIG_MODULE_SRCVERSION_ALL is not set 103# CONFIG_MODULE_SRCVERSION_ALL is not set
102CONFIG_KMOD=y
103CONFIG_BLOCK=y 104CONFIG_BLOCK=y
104# CONFIG_LBD is not set 105# CONFIG_LBD is not set
105# CONFIG_BLK_DEV_IO_TRACE is not set 106# CONFIG_BLK_DEV_IO_TRACE is not set
106# CONFIG_LSF is not set
107# CONFIG_BLK_DEV_BSG is not set 107# CONFIG_BLK_DEV_BSG is not set
108# CONFIG_BLK_DEV_INTEGRITY is not set 108# CONFIG_BLK_DEV_INTEGRITY is not set
109 109
@@ -120,6 +120,10 @@ CONFIG_DEFAULT_AS=y
120# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
121CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
122CONFIG_CLASSIC_RCU=y 122CONFIG_CLASSIC_RCU=y
123# CONFIG_TREE_RCU is not set
124# CONFIG_PREEMPT_RCU is not set
125# CONFIG_TREE_RCU_TRACE is not set
126# CONFIG_PREEMPT_RCU_TRACE is not set
123# CONFIG_FREEZER is not set 127# CONFIG_FREEZER is not set
124 128
125# 129#
@@ -127,6 +131,7 @@ CONFIG_CLASSIC_RCU=y
127# 131#
128CONFIG_CPU_SH4=y 132CONFIG_CPU_SH4=y
129# CONFIG_CPU_SUBTYPE_SH7619 is not set 133# CONFIG_CPU_SUBTYPE_SH7619 is not set
134# CONFIG_CPU_SUBTYPE_SH7201 is not set
130# CONFIG_CPU_SUBTYPE_SH7203 is not set 135# CONFIG_CPU_SUBTYPE_SH7203 is not set
131# CONFIG_CPU_SUBTYPE_SH7206 is not set 136# CONFIG_CPU_SUBTYPE_SH7206 is not set
132# CONFIG_CPU_SUBTYPE_SH7263 is not set 137# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -190,7 +195,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
190CONFIG_SPARSEMEM_STATIC=y 195CONFIG_SPARSEMEM_STATIC=y
191CONFIG_PAGEFLAGS_EXTENDED=y 196CONFIG_PAGEFLAGS_EXTENDED=y
192CONFIG_SPLIT_PTLOCK_CPUS=4 197CONFIG_SPLIT_PTLOCK_CPUS=4
193# CONFIG_RESOURCES_64BIT is not set
194# CONFIG_PHYS_ADDR_T_64BIT is not set 198# CONFIG_PHYS_ADDR_T_64BIT is not set
195CONFIG_ZONE_DMA_FLAG=0 199CONFIG_ZONE_DMA_FLAG=0
196CONFIG_NR_QUICK=2 200CONFIG_NR_QUICK=2
@@ -268,7 +272,6 @@ CONFIG_HZ=250
268# CONFIG_PREEMPT_NONE is not set 272# CONFIG_PREEMPT_NONE is not set
269# CONFIG_PREEMPT_VOLUNTARY is not set 273# CONFIG_PREEMPT_VOLUNTARY is not set
270CONFIG_PREEMPT=y 274CONFIG_PREEMPT=y
271# CONFIG_PREEMPT_RCU is not set
272CONFIG_GUSA=y 275CONFIG_GUSA=y
273# CONFIG_GUSA_RB is not set 276# CONFIG_GUSA_RB is not set
274 277
@@ -284,14 +287,11 @@ CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs"
284# 287#
285# Bus options 288# Bus options
286# 289#
287CONFIG_CF_ENABLER=y
288CONFIG_CF_AREA5=y
289# CONFIG_CF_AREA6 is not set
290CONFIG_CF_BASE_ADDR=0xb4000000
291CONFIG_PCI=y 290CONFIG_PCI=y
292CONFIG_SH_PCIDMA_NONCOHERENT=y 291CONFIG_SH_PCIDMA_NONCOHERENT=y
293CONFIG_PCI_AUTO=y 292CONFIG_PCI_AUTO=y
294CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 293CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
294# CONFIG_PCIEPORTBUS is not set
295# CONFIG_ARCH_SUPPORTS_MSI is not set 295# CONFIG_ARCH_SUPPORTS_MSI is not set
296CONFIG_PCI_LEGACY=y 296CONFIG_PCI_LEGACY=y
297# CONFIG_PCCARD is not set 297# CONFIG_PCCARD is not set
@@ -307,11 +307,18 @@ CONFIG_BINFMT_ELF=y
307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
308# CONFIG_HAVE_AOUT is not set 308# CONFIG_HAVE_AOUT is not set
309CONFIG_BINFMT_MISC=y 309CONFIG_BINFMT_MISC=y
310
311#
312# Power management options (EXPERIMENTAL)
313#
314# CONFIG_PM is not set
315# CONFIG_CPU_IDLE is not set
310CONFIG_NET=y 316CONFIG_NET=y
311 317
312# 318#
313# Networking options 319# Networking options
314# 320#
321CONFIG_COMPAT_NET_DEV_OPS=y
315CONFIG_PACKET=y 322CONFIG_PACKET=y
316# CONFIG_PACKET_MMAP is not set 323# CONFIG_PACKET_MMAP is not set
317CONFIG_UNIX=y 324CONFIG_UNIX=y
@@ -369,6 +376,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
369# CONFIG_ECONET is not set 376# CONFIG_ECONET is not set
370# CONFIG_WAN_ROUTER is not set 377# CONFIG_WAN_ROUTER is not set
371# CONFIG_NET_SCHED is not set 378# CONFIG_NET_SCHED is not set
379# CONFIG_DCB is not set
372 380
373# 381#
374# Network testing 382# Network testing
@@ -384,8 +392,8 @@ CONFIG_WIRELESS=y
384# CONFIG_CFG80211 is not set 392# CONFIG_CFG80211 is not set
385# CONFIG_WIRELESS_OLD_REGULATORY is not set 393# CONFIG_WIRELESS_OLD_REGULATORY is not set
386# CONFIG_WIRELESS_EXT is not set 394# CONFIG_WIRELESS_EXT is not set
395# CONFIG_LIB80211 is not set
387# CONFIG_MAC80211 is not set 396# CONFIG_MAC80211 is not set
388# CONFIG_IEEE80211 is not set
389# CONFIG_RFKILL is not set 397# CONFIG_RFKILL is not set
390# CONFIG_NET_9P is not set 398# CONFIG_NET_9P is not set
391 399
@@ -427,6 +435,7 @@ CONFIG_MISC_DEVICES=y
427# CONFIG_TIFM_CORE is not set 435# CONFIG_TIFM_CORE is not set
428# CONFIG_ENCLOSURE_SERVICES is not set 436# CONFIG_ENCLOSURE_SERVICES is not set
429# CONFIG_HP_ILO is not set 437# CONFIG_HP_ILO is not set
438# CONFIG_C2PORT is not set
430CONFIG_HAVE_IDE=y 439CONFIG_HAVE_IDE=y
431CONFIG_IDE=y 440CONFIG_IDE=y
432 441
@@ -441,7 +450,6 @@ CONFIG_IDE_GD_ATA=y
441CONFIG_BLK_DEV_IDECD=m 450CONFIG_BLK_DEV_IDECD=m
442CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 451CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
443CONFIG_BLK_DEV_IDETAPE=m 452CONFIG_BLK_DEV_IDETAPE=m
444# CONFIG_BLK_DEV_IDESCSI is not set
445# CONFIG_IDE_TASK_IOCTL is not set 453# CONFIG_IDE_TASK_IOCTL is not set
446CONFIG_IDE_PROC_FS=y 454CONFIG_IDE_PROC_FS=y
447 455
@@ -466,6 +474,7 @@ CONFIG_IDE_PROC_FS=y
466# CONFIG_BLK_DEV_JMICRON is not set 474# CONFIG_BLK_DEV_JMICRON is not set
467# CONFIG_BLK_DEV_SC1200 is not set 475# CONFIG_BLK_DEV_SC1200 is not set
468# CONFIG_BLK_DEV_PIIX is not set 476# CONFIG_BLK_DEV_PIIX is not set
477# CONFIG_BLK_DEV_IT8172 is not set
469# CONFIG_BLK_DEV_IT8213 is not set 478# CONFIG_BLK_DEV_IT8213 is not set
470# CONFIG_BLK_DEV_IT821X is not set 479# CONFIG_BLK_DEV_IT821X is not set
471# CONFIG_BLK_DEV_NS87415 is not set 480# CONFIG_BLK_DEV_NS87415 is not set
@@ -519,6 +528,7 @@ CONFIG_SCSI_WAIT_SCAN=m
519# CONFIG_SCSI_SRP_ATTRS is not set 528# CONFIG_SCSI_SRP_ATTRS is not set
520CONFIG_SCSI_LOWLEVEL=y 529CONFIG_SCSI_LOWLEVEL=y
521# CONFIG_ISCSI_TCP is not set 530# CONFIG_ISCSI_TCP is not set
531# CONFIG_SCSI_CXGB3_ISCSI is not set
522# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 532# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
523# CONFIG_SCSI_3W_9XXX is not set 533# CONFIG_SCSI_3W_9XXX is not set
524# CONFIG_SCSI_ACARD is not set 534# CONFIG_SCSI_ACARD is not set
@@ -532,6 +542,8 @@ CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_MEGARAID_LEGACY is not set 542# CONFIG_MEGARAID_LEGACY is not set
533# CONFIG_MEGARAID_SAS is not set 543# CONFIG_MEGARAID_SAS is not set
534# CONFIG_SCSI_HPTIOP is not set 544# CONFIG_SCSI_HPTIOP is not set
545# CONFIG_LIBFC is not set
546# CONFIG_FCOE is not set
535# CONFIG_SCSI_DMX3191D is not set 547# CONFIG_SCSI_DMX3191D is not set
536# CONFIG_SCSI_FUTURE_DOMAIN is not set 548# CONFIG_SCSI_FUTURE_DOMAIN is not set
537# CONFIG_SCSI_IPS is not set 549# CONFIG_SCSI_IPS is not set
@@ -583,6 +595,7 @@ CONFIG_MII=y
583# CONFIG_NET_VENDOR_3COM is not set 595# CONFIG_NET_VENDOR_3COM is not set
584# CONFIG_SMC91X is not set 596# CONFIG_SMC91X is not set
585# CONFIG_SMC911X is not set 597# CONFIG_SMC911X is not set
598# CONFIG_SMSC911X is not set
586# CONFIG_NET_TULIP is not set 599# CONFIG_NET_TULIP is not set
587# CONFIG_HP100 is not set 600# CONFIG_HP100 is not set
588# CONFIG_IBM_NEW_EMAC_ZMII is not set 601# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -598,7 +611,6 @@ CONFIG_NET_PCI=y
598# CONFIG_ADAPTEC_STARFIRE is not set 611# CONFIG_ADAPTEC_STARFIRE is not set
599# CONFIG_B44 is not set 612# CONFIG_B44 is not set
600# CONFIG_FORCEDETH is not set 613# CONFIG_FORCEDETH is not set
601# CONFIG_EEPRO100 is not set
602# CONFIG_E100 is not set 614# CONFIG_E100 is not set
603# CONFIG_FEALNX is not set 615# CONFIG_FEALNX is not set
604# CONFIG_NATSEMI is not set 616# CONFIG_NATSEMI is not set
@@ -608,6 +620,7 @@ CONFIG_8139CP=y
608# CONFIG_R6040 is not set 620# CONFIG_R6040 is not set
609# CONFIG_SIS900 is not set 621# CONFIG_SIS900 is not set
610# CONFIG_EPIC100 is not set 622# CONFIG_EPIC100 is not set
623# CONFIG_SMSC9420 is not set
611# CONFIG_SUNDANCE is not set 624# CONFIG_SUNDANCE is not set
612# CONFIG_TLAN is not set 625# CONFIG_TLAN is not set
613# CONFIG_VIA_RHINE is not set 626# CONFIG_VIA_RHINE is not set
@@ -636,6 +649,7 @@ CONFIG_NETDEV_1000=y
636# CONFIG_JME is not set 649# CONFIG_JME is not set
637CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
638# CONFIG_CHELSIO_T1 is not set 651# CONFIG_CHELSIO_T1 is not set
652CONFIG_CHELSIO_T3_DEPENDS=y
639# CONFIG_CHELSIO_T3 is not set 653# CONFIG_CHELSIO_T3 is not set
640# CONFIG_ENIC is not set 654# CONFIG_ENIC is not set
641# CONFIG_IXGBE is not set 655# CONFIG_IXGBE is not set
@@ -644,6 +658,7 @@ CONFIG_NETDEV_10000=y
644# CONFIG_MYRI10GE is not set 658# CONFIG_MYRI10GE is not set
645# CONFIG_NETXEN_NIC is not set 659# CONFIG_NETXEN_NIC is not set
646# CONFIG_NIU is not set 660# CONFIG_NIU is not set
661# CONFIG_MLX4_EN is not set
647# CONFIG_MLX4_CORE is not set 662# CONFIG_MLX4_CORE is not set
648# CONFIG_TEHUTI is not set 663# CONFIG_TEHUTI is not set
649# CONFIG_BNX2X is not set 664# CONFIG_BNX2X is not set
@@ -734,6 +749,7 @@ CONFIG_SERIAL_CORE=y
734CONFIG_SERIAL_CORE_CONSOLE=y 749CONFIG_SERIAL_CORE_CONSOLE=y
735# CONFIG_SERIAL_JSM is not set 750# CONFIG_SERIAL_JSM is not set
736CONFIG_UNIX98_PTYS=y 751CONFIG_UNIX98_PTYS=y
752# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
737CONFIG_LEGACY_PTYS=y 753CONFIG_LEGACY_PTYS=y
738CONFIG_LEGACY_PTY_COUNT=256 754CONFIG_LEGACY_PTY_COUNT=256
739# CONFIG_IPMI_HANDLER is not set 755# CONFIG_IPMI_HANDLER is not set
@@ -782,11 +798,11 @@ CONFIG_SH_WDT=m
782# 798#
783# CONFIG_PCIPCWATCHDOG is not set 799# CONFIG_PCIPCWATCHDOG is not set
784# CONFIG_WDTPCI is not set 800# CONFIG_WDTPCI is not set
801CONFIG_SSB_POSSIBLE=y
785 802
786# 803#
787# Sonics Silicon Backplane 804# Sonics Silicon Backplane
788# 805#
789CONFIG_SSB_POSSIBLE=y
790# CONFIG_SSB is not set 806# CONFIG_SSB is not set
791 807
792# 808#
@@ -796,7 +812,7 @@ CONFIG_SSB_POSSIBLE=y
796# CONFIG_MFD_SM501 is not set 812# CONFIG_MFD_SM501 is not set
797# CONFIG_HTC_PASIC3 is not set 813# CONFIG_HTC_PASIC3 is not set
798# CONFIG_MFD_TMIO is not set 814# CONFIG_MFD_TMIO is not set
799# CONFIG_MFD_WM8400 is not set 815# CONFIG_REGULATOR is not set
800 816
801# 817#
802# Multimedia devices 818# Multimedia devices
@@ -856,9 +872,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
856# 872#
857 873
858# 874#
859# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 875# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
860# 876#
861# CONFIG_USB_GADGET is not set 877# CONFIG_USB_GADGET is not set
878# CONFIG_UWB is not set
862# CONFIG_MMC is not set 879# CONFIG_MMC is not set
863# CONFIG_MEMSTICK is not set 880# CONFIG_MEMSTICK is not set
864# CONFIG_NEW_LEDS is not set 881# CONFIG_NEW_LEDS is not set
@@ -883,6 +900,7 @@ CONFIG_EXT3_FS_POSIX_ACL=y
883# CONFIG_EXT3_FS_SECURITY is not set 900# CONFIG_EXT3_FS_SECURITY is not set
884# CONFIG_EXT4_FS is not set 901# CONFIG_EXT4_FS is not set
885CONFIG_JBD=y 902CONFIG_JBD=y
903# CONFIG_JBD_DEBUG is not set
886CONFIG_FS_MBCACHE=y 904CONFIG_FS_MBCACHE=y
887# CONFIG_REISERFS_FS is not set 905# CONFIG_REISERFS_FS is not set
888# CONFIG_JFS_FS is not set 906# CONFIG_JFS_FS is not set
@@ -930,10 +948,7 @@ CONFIG_TMPFS=y
930# CONFIG_HUGETLBFS is not set 948# CONFIG_HUGETLBFS is not set
931# CONFIG_HUGETLB_PAGE is not set 949# CONFIG_HUGETLB_PAGE is not set
932# CONFIG_CONFIGFS_FS is not set 950# CONFIG_CONFIGFS_FS is not set
933 951CONFIG_MISC_FILESYSTEMS=y
934#
935# Miscellaneous filesystems
936#
937# CONFIG_ADFS_FS is not set 952# CONFIG_ADFS_FS is not set
938# CONFIG_AFFS_FS is not set 953# CONFIG_AFFS_FS is not set
939# CONFIG_HFS_FS is not set 954# CONFIG_HFS_FS is not set
@@ -1048,21 +1063,31 @@ CONFIG_ENABLE_MUST_CHECK=y
1048CONFIG_FRAME_WARN=1024 1063CONFIG_FRAME_WARN=1024
1049# CONFIG_MAGIC_SYSRQ is not set 1064# CONFIG_MAGIC_SYSRQ is not set
1050# CONFIG_UNUSED_SYMBOLS is not set 1065# CONFIG_UNUSED_SYMBOLS is not set
1051# CONFIG_DEBUG_FS is not set 1066CONFIG_DEBUG_FS=y
1052# CONFIG_HEADERS_CHECK is not set 1067# CONFIG_HEADERS_CHECK is not set
1053# CONFIG_DEBUG_KERNEL is not set 1068# CONFIG_DEBUG_KERNEL is not set
1069CONFIG_STACKTRACE=y
1054# CONFIG_DEBUG_BUGVERBOSE is not set 1070# CONFIG_DEBUG_BUGVERBOSE is not set
1055# CONFIG_DEBUG_MEMORY_INIT is not set 1071# CONFIG_DEBUG_MEMORY_INIT is not set
1056# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1072# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1057# CONFIG_LATENCYTOP is not set 1073# CONFIG_LATENCYTOP is not set
1058CONFIG_NOP_TRACER=y 1074CONFIG_NOP_TRACER=y
1059CONFIG_HAVE_FTRACE=y 1075CONFIG_HAVE_FUNCTION_TRACER=y
1076CONFIG_HAVE_DYNAMIC_FTRACE=y
1077CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1078CONFIG_RING_BUFFER=y
1079CONFIG_TRACING=y
1080
1081#
1082# Tracers
1083#
1060# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1084# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1061# CONFIG_SAMPLES is not set 1085# CONFIG_SAMPLES is not set
1086CONFIG_HAVE_ARCH_KGDB=y
1062CONFIG_SH_STANDARD_BIOS=y 1087CONFIG_SH_STANDARD_BIOS=y
1063# CONFIG_EARLY_SCIF_CONSOLE is not set 1088# CONFIG_EARLY_SCIF_CONSOLE is not set
1064# CONFIG_EARLY_PRINTK is not set 1089# CONFIG_EARLY_PRINTK is not set
1065# CONFIG_SH_KGDB is not set 1090# CONFIG_MORE_COMPILE_OPTIONS is not set
1066 1091
1067# 1092#
1068# Security options 1093# Security options
@@ -1078,11 +1103,15 @@ CONFIG_CRYPTO=y
1078# 1103#
1079# CONFIG_CRYPTO_FIPS is not set 1104# CONFIG_CRYPTO_FIPS is not set
1080CONFIG_CRYPTO_ALGAPI=y 1105CONFIG_CRYPTO_ALGAPI=y
1081CONFIG_CRYPTO_AEAD=y 1106CONFIG_CRYPTO_ALGAPI2=y
1107CONFIG_CRYPTO_AEAD2=y
1082CONFIG_CRYPTO_BLKCIPHER=y 1108CONFIG_CRYPTO_BLKCIPHER=y
1109CONFIG_CRYPTO_BLKCIPHER2=y
1083CONFIG_CRYPTO_HASH=y 1110CONFIG_CRYPTO_HASH=y
1084CONFIG_CRYPTO_RNG=y 1111CONFIG_CRYPTO_HASH2=y
1112CONFIG_CRYPTO_RNG2=y
1085CONFIG_CRYPTO_MANAGER=y 1113CONFIG_CRYPTO_MANAGER=y
1114CONFIG_CRYPTO_MANAGER2=y
1086# CONFIG_CRYPTO_GF128MUL is not set 1115# CONFIG_CRYPTO_GF128MUL is not set
1087# CONFIG_CRYPTO_NULL is not set 1116# CONFIG_CRYPTO_NULL is not set
1088# CONFIG_CRYPTO_CRYPTD is not set 1117# CONFIG_CRYPTO_CRYPTD is not set
@@ -1166,6 +1195,7 @@ CONFIG_CRYPTO_HW=y
1166# Library routines 1195# Library routines
1167# 1196#
1168CONFIG_BITREVERSE=y 1197CONFIG_BITREVERSE=y
1198CONFIG_GENERIC_FIND_LAST_BIT=y
1169CONFIG_CRC_CCITT=y 1199CONFIG_CRC_CCITT=y
1170# CONFIG_CRC16 is not set 1200# CONFIG_CRC16 is not set
1171# CONFIG_CRC_T10DIF is not set 1201# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig
index 9a768b28adcb..1b869f452ad1 100644
--- a/arch/sh/configs/sh7710voipgw_defconfig
+++ b/arch/sh/configs/sh7710voipgw_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:35:18 2008 4# Fri Jan 9 18:00:31 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -74,12 +76,10 @@ CONFIG_EVENTFD=y
74# CONFIG_SHMEM is not set 76# CONFIG_SHMEM is not set
75CONFIG_AIO=y 77CONFIG_AIO=y
76CONFIG_VM_EVENT_COUNTERS=y 78CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_SLAB=y 79CONFIG_SLAB=y
79# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 82# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 84# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
@@ -89,7 +89,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
89CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
92CONFIG_TINY_SHMEM=y
93CONFIG_BASE_SMALL=0 92CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 93CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 94# CONFIG_MODULE_FORCE_LOAD is not set
@@ -97,11 +96,9 @@ CONFIG_MODULE_UNLOAD=y
97CONFIG_MODULE_FORCE_UNLOAD=y 96CONFIG_MODULE_FORCE_UNLOAD=y
98# CONFIG_MODVERSIONS is not set 97# CONFIG_MODVERSIONS is not set
99# CONFIG_MODULE_SRCVERSION_ALL is not set 98# CONFIG_MODULE_SRCVERSION_ALL is not set
100CONFIG_KMOD=y
101CONFIG_BLOCK=y 99CONFIG_BLOCK=y
102# CONFIG_LBD is not set 100# CONFIG_LBD is not set
103# CONFIG_BLK_DEV_IO_TRACE is not set 101# CONFIG_BLK_DEV_IO_TRACE is not set
104# CONFIG_LSF is not set
105# CONFIG_BLK_DEV_BSG is not set 102# CONFIG_BLK_DEV_BSG is not set
106# CONFIG_BLK_DEV_INTEGRITY is not set 103# CONFIG_BLK_DEV_INTEGRITY is not set
107 104
@@ -118,6 +115,10 @@ CONFIG_DEFAULT_DEADLINE=y
118# CONFIG_DEFAULT_NOOP is not set 115# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="deadline" 116CONFIG_DEFAULT_IOSCHED="deadline"
120CONFIG_CLASSIC_RCU=y 117CONFIG_CLASSIC_RCU=y
118# CONFIG_TREE_RCU is not set
119# CONFIG_PREEMPT_RCU is not set
120# CONFIG_TREE_RCU_TRACE is not set
121# CONFIG_PREEMPT_RCU_TRACE is not set
121# CONFIG_FREEZER is not set 122# CONFIG_FREEZER is not set
122 123
123# 124#
@@ -125,6 +126,7 @@ CONFIG_CLASSIC_RCU=y
125# 126#
126CONFIG_CPU_SH3=y 127CONFIG_CPU_SH3=y
127# CONFIG_CPU_SUBTYPE_SH7619 is not set 128# CONFIG_CPU_SUBTYPE_SH7619 is not set
129# CONFIG_CPU_SUBTYPE_SH7201 is not set
128# CONFIG_CPU_SUBTYPE_SH7203 is not set 130# CONFIG_CPU_SUBTYPE_SH7203 is not set
129# CONFIG_CPU_SUBTYPE_SH7206 is not set 131# CONFIG_CPU_SUBTYPE_SH7206 is not set
130# CONFIG_CPU_SUBTYPE_SH7263 is not set 132# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -188,7 +190,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
188CONFIG_SPARSEMEM_STATIC=y 190CONFIG_SPARSEMEM_STATIC=y
189CONFIG_PAGEFLAGS_EXTENDED=y 191CONFIG_PAGEFLAGS_EXTENDED=y
190CONFIG_SPLIT_PTLOCK_CPUS=4 192CONFIG_SPLIT_PTLOCK_CPUS=4
191# CONFIG_RESOURCES_64BIT is not set
192# CONFIG_PHYS_ADDR_T_64BIT is not set 193# CONFIG_PHYS_ADDR_T_64BIT is not set
193CONFIG_ZONE_DMA_FLAG=0 194CONFIG_ZONE_DMA_FLAG=0
194CONFIG_NR_QUICK=2 195CONFIG_NR_QUICK=2
@@ -287,11 +288,18 @@ CONFIG_BINFMT_ELF=y
287# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
288# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
289# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
290CONFIG_NET=y 297CONFIG_NET=y
291 298
292# 299#
293# Networking options 300# Networking options
294# 301#
302CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 303CONFIG_PACKET=y
296# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
297CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -378,6 +386,7 @@ CONFIG_NET_SCH_CBQ=y
378# CONFIG_NET_SCH_GRED is not set 386# CONFIG_NET_SCH_GRED is not set
379# CONFIG_NET_SCH_DSMARK is not set 387# CONFIG_NET_SCH_DSMARK is not set
380# CONFIG_NET_SCH_NETEM is not set 388# CONFIG_NET_SCH_NETEM is not set
389# CONFIG_NET_SCH_DRR is not set
381 390
382# 391#
383# Classification 392# Classification
@@ -398,6 +407,7 @@ CONFIG_NET_CLS_U32=y
398# CONFIG_NET_CLS_ACT is not set 407# CONFIG_NET_CLS_ACT is not set
399# CONFIG_NET_CLS_IND is not set 408# CONFIG_NET_CLS_IND is not set
400CONFIG_NET_SCH_FIFO=y 409CONFIG_NET_SCH_FIFO=y
410# CONFIG_DCB is not set
401 411
402# 412#
403# Network testing 413# Network testing
@@ -413,8 +423,8 @@ CONFIG_WIRELESS=y
413# CONFIG_CFG80211 is not set 423# CONFIG_CFG80211 is not set
414# CONFIG_WIRELESS_OLD_REGULATORY is not set 424# CONFIG_WIRELESS_OLD_REGULATORY is not set
415# CONFIG_WIRELESS_EXT is not set 425# CONFIG_WIRELESS_EXT is not set
426# CONFIG_LIB80211 is not set
416# CONFIG_MAC80211 is not set 427# CONFIG_MAC80211 is not set
417# CONFIG_IEEE80211 is not set
418# CONFIG_RFKILL is not set 428# CONFIG_RFKILL is not set
419# CONFIG_NET_9P is not set 429# CONFIG_NET_9P is not set
420 430
@@ -519,6 +529,7 @@ CONFIG_BLK_DEV=y
519CONFIG_MISC_DEVICES=y 529CONFIG_MISC_DEVICES=y
520# CONFIG_EEPROM_93CX6 is not set 530# CONFIG_EEPROM_93CX6 is not set
521# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
532# CONFIG_C2PORT is not set
522CONFIG_HAVE_IDE=y 533CONFIG_HAVE_IDE=y
523# CONFIG_IDE is not set 534# CONFIG_IDE is not set
524 535
@@ -546,6 +557,7 @@ CONFIG_NET_ETHERNET=y
546# CONFIG_SH_ETH is not set 557# CONFIG_SH_ETH is not set
547# CONFIG_SMC91X is not set 558# CONFIG_SMC91X is not set
548# CONFIG_SMC911X is not set 559# CONFIG_SMC911X is not set
560# CONFIG_SMSC911X is not set
549# CONFIG_IBM_NEW_EMAC_ZMII is not set 561# CONFIG_IBM_NEW_EMAC_ZMII is not set
550# CONFIG_IBM_NEW_EMAC_RGMII is not set 562# CONFIG_IBM_NEW_EMAC_RGMII is not set
551# CONFIG_IBM_NEW_EMAC_TAH is not set 563# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -638,11 +650,11 @@ CONFIG_HW_RANDOM=y
638# CONFIG_HWMON is not set 650# CONFIG_HWMON is not set
639CONFIG_THERMAL=y 651CONFIG_THERMAL=y
640# CONFIG_WATCHDOG is not set 652# CONFIG_WATCHDOG is not set
653CONFIG_SSB_POSSIBLE=y
641 654
642# 655#
643# Sonics Silicon Backplane 656# Sonics Silicon Backplane
644# 657#
645CONFIG_SSB_POSSIBLE=y
646# CONFIG_SSB is not set 658# CONFIG_SSB is not set
647 659
648# 660#
@@ -652,7 +664,7 @@ CONFIG_SSB_POSSIBLE=y
652# CONFIG_MFD_SM501 is not set 664# CONFIG_MFD_SM501 is not set
653# CONFIG_HTC_PASIC3 is not set 665# CONFIG_HTC_PASIC3 is not set
654# CONFIG_MFD_TMIO is not set 666# CONFIG_MFD_TMIO is not set
655# CONFIG_MFD_WM8400 is not set 667# CONFIG_REGULATOR is not set
656 668
657# 669#
658# Multimedia devices 670# Multimedia devices
@@ -706,7 +718,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
706# 718#
707 719
708# 720#
709# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 721# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
710# 722#
711# CONFIG_USB_GADGET is not set 723# CONFIG_USB_GADGET is not set
712# CONFIG_MMC is not set 724# CONFIG_MMC is not set
@@ -763,10 +775,7 @@ CONFIG_TMPFS=y
763# CONFIG_HUGETLBFS is not set 775# CONFIG_HUGETLBFS is not set
764# CONFIG_HUGETLB_PAGE is not set 776# CONFIG_HUGETLB_PAGE is not set
765# CONFIG_CONFIGFS_FS is not set 777# CONFIG_CONFIGFS_FS is not set
766 778CONFIG_MISC_FILESYSTEMS=y
767#
768# Miscellaneous filesystems
769#
770# CONFIG_ADFS_FS is not set 779# CONFIG_ADFS_FS is not set
771# CONFIG_AFFS_FS is not set 780# CONFIG_AFFS_FS is not set
772# CONFIG_HFS_FS is not set 781# CONFIG_HFS_FS is not set
@@ -828,13 +837,19 @@ CONFIG_DEBUG_FS=y
828# CONFIG_DEBUG_MEMORY_INIT is not set 837# CONFIG_DEBUG_MEMORY_INIT is not set
829# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
830# CONFIG_LATENCYTOP is not set 839# CONFIG_LATENCYTOP is not set
831CONFIG_NOP_TRACER=y 840CONFIG_HAVE_FUNCTION_TRACER=y
832CONFIG_HAVE_FTRACE=y 841CONFIG_HAVE_DYNAMIC_FTRACE=y
842CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
843
844#
845# Tracers
846#
833# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 847# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
834# CONFIG_SAMPLES is not set 848# CONFIG_SAMPLES is not set
849CONFIG_HAVE_ARCH_KGDB=y
835# CONFIG_SH_STANDARD_BIOS is not set 850# CONFIG_SH_STANDARD_BIOS is not set
836# CONFIG_EARLY_SCIF_CONSOLE is not set 851# CONFIG_EARLY_SCIF_CONSOLE is not set
837# CONFIG_SH_KGDB is not set 852# CONFIG_MORE_COMPILE_OPTIONS is not set
838 853
839# 854#
840# Security options 855# Security options
@@ -850,6 +865,7 @@ CONFIG_CRYPTO=y
850# 865#
851# CONFIG_CRYPTO_FIPS is not set 866# CONFIG_CRYPTO_FIPS is not set
852# CONFIG_CRYPTO_MANAGER is not set 867# CONFIG_CRYPTO_MANAGER is not set
868# CONFIG_CRYPTO_MANAGER2 is not set
853# CONFIG_CRYPTO_GF128MUL is not set 869# CONFIG_CRYPTO_GF128MUL is not set
854# CONFIG_CRYPTO_NULL is not set 870# CONFIG_CRYPTO_NULL is not set
855# CONFIG_CRYPTO_CRYPTD is not set 871# CONFIG_CRYPTO_CRYPTD is not set
@@ -932,6 +948,7 @@ CONFIG_CRYPTO_HW=y
932# Library routines 948# Library routines
933# 949#
934CONFIG_BITREVERSE=y 950CONFIG_BITREVERSE=y
951CONFIG_GENERIC_FIND_LAST_BIT=y
935# CONFIG_CRC_CCITT is not set 952# CONFIG_CRC_CCITT is not set
936# CONFIG_CRC16 is not set 953# CONFIG_CRC16 is not set
937# CONFIG_CRC_T10DIF is not set 954# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh7763rdp_defconfig b/arch/sh/configs/sh7763rdp_defconfig
index 6a77f691fb87..ba33aca75af6 100644
--- a/arch/sh/configs/sh7763rdp_defconfig
+++ b/arch/sh/configs/sh7763rdp_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:37:12 2008 4# Fri Jan 9 18:02:28 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -79,11 +81,11 @@ CONFIG_EVENTFD=y
79CONFIG_SHMEM=y 81CONFIG_SHMEM=y
80CONFIG_AIO=y 82CONFIG_AIO=y
81CONFIG_VM_EVENT_COUNTERS=y 83CONFIG_VM_EVENT_COUNTERS=y
82CONFIG_PCI_QUIRKS=y
83CONFIG_SLAB=y 84CONFIG_SLAB=y
84# CONFIG_SLUB is not set 85# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set 86# CONFIG_SLOB is not set
86CONFIG_PROFILING=y 87CONFIG_PROFILING=y
88CONFIG_TRACEPOINTS=y
87# CONFIG_MARKERS is not set 89# CONFIG_MARKERS is not set
88CONFIG_OPROFILE=y 90CONFIG_OPROFILE=y
89CONFIG_HAVE_OPROFILE=y 91CONFIG_HAVE_OPROFILE=y
@@ -96,18 +98,15 @@ CONFIG_HAVE_CLK=y
96CONFIG_HAVE_GENERIC_DMA_COHERENT=y 98CONFIG_HAVE_GENERIC_DMA_COHERENT=y
97CONFIG_SLABINFO=y 99CONFIG_SLABINFO=y
98CONFIG_RT_MUTEXES=y 100CONFIG_RT_MUTEXES=y
99# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=0 101CONFIG_BASE_SMALL=0
101CONFIG_MODULES=y 102CONFIG_MODULES=y
102# CONFIG_MODULE_FORCE_LOAD is not set 103# CONFIG_MODULE_FORCE_LOAD is not set
103# CONFIG_MODULE_UNLOAD is not set 104# CONFIG_MODULE_UNLOAD is not set
104# CONFIG_MODVERSIONS is not set 105# CONFIG_MODVERSIONS is not set
105# CONFIG_MODULE_SRCVERSION_ALL is not set 106# CONFIG_MODULE_SRCVERSION_ALL is not set
106CONFIG_KMOD=y
107CONFIG_BLOCK=y 107CONFIG_BLOCK=y
108# CONFIG_LBD is not set 108# CONFIG_LBD is not set
109# CONFIG_BLK_DEV_IO_TRACE is not set 109# CONFIG_BLK_DEV_IO_TRACE is not set
110# CONFIG_LSF is not set
111# CONFIG_BLK_DEV_BSG is not set 110# CONFIG_BLK_DEV_BSG is not set
112# CONFIG_BLK_DEV_INTEGRITY is not set 111# CONFIG_BLK_DEV_INTEGRITY is not set
113 112
@@ -124,6 +123,10 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_NOOP is not set 123# CONFIG_DEFAULT_NOOP is not set
125CONFIG_DEFAULT_IOSCHED="anticipatory" 124CONFIG_DEFAULT_IOSCHED="anticipatory"
126CONFIG_CLASSIC_RCU=y 125CONFIG_CLASSIC_RCU=y
126# CONFIG_TREE_RCU is not set
127# CONFIG_PREEMPT_RCU is not set
128# CONFIG_TREE_RCU_TRACE is not set
129# CONFIG_PREEMPT_RCU_TRACE is not set
127# CONFIG_FREEZER is not set 130# CONFIG_FREEZER is not set
128 131
129# 132#
@@ -132,6 +135,7 @@ CONFIG_CLASSIC_RCU=y
132CONFIG_CPU_SH4=y 135CONFIG_CPU_SH4=y
133CONFIG_CPU_SH4A=y 136CONFIG_CPU_SH4A=y
134# CONFIG_CPU_SUBTYPE_SH7619 is not set 137# CONFIG_CPU_SUBTYPE_SH7619 is not set
138# CONFIG_CPU_SUBTYPE_SH7201 is not set
135# CONFIG_CPU_SUBTYPE_SH7203 is not set 139# CONFIG_CPU_SUBTYPE_SH7203 is not set
136# CONFIG_CPU_SUBTYPE_SH7206 is not set 140# CONFIG_CPU_SUBTYPE_SH7206 is not set
137# CONFIG_CPU_SUBTYPE_SH7263 is not set 141# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -199,7 +203,6 @@ CONFIG_SPARSEMEM_STATIC=y
199CONFIG_PAGEFLAGS_EXTENDED=y 203CONFIG_PAGEFLAGS_EXTENDED=y
200CONFIG_SPLIT_PTLOCK_CPUS=4 204CONFIG_SPLIT_PTLOCK_CPUS=4
201CONFIG_MIGRATION=y 205CONFIG_MIGRATION=y
202# CONFIG_RESOURCES_64BIT is not set
203# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -297,11 +300,19 @@ CONFIG_BINFMT_ELF=y
297# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 300# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
298# CONFIG_HAVE_AOUT is not set 301# CONFIG_HAVE_AOUT is not set
299# CONFIG_BINFMT_MISC is not set 302# CONFIG_BINFMT_MISC is not set
303
304#
305# Power management options (EXPERIMENTAL)
306#
307# CONFIG_PM is not set
308# CONFIG_CPU_IDLE is not set
300CONFIG_NET=y 309CONFIG_NET=y
301 310
302# 311#
303# Networking options 312# Networking options
304# 313#
314# CONFIG_NET_NS is not set
315CONFIG_COMPAT_NET_DEV_OPS=y
305CONFIG_PACKET=y 316CONFIG_PACKET=y
306# CONFIG_PACKET_MMAP is not set 317# CONFIG_PACKET_MMAP is not set
307CONFIG_UNIX=y 318CONFIG_UNIX=y
@@ -357,6 +368,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
357# CONFIG_ECONET is not set 368# CONFIG_ECONET is not set
358# CONFIG_WAN_ROUTER is not set 369# CONFIG_WAN_ROUTER is not set
359# CONFIG_NET_SCHED is not set 370# CONFIG_NET_SCHED is not set
371# CONFIG_DCB is not set
360 372
361# 373#
362# Network testing 374# Network testing
@@ -373,8 +385,8 @@ CONFIG_WIRELESS=y
373# CONFIG_WIRELESS_OLD_REGULATORY is not set 385# CONFIG_WIRELESS_OLD_REGULATORY is not set
374CONFIG_WIRELESS_EXT=y 386CONFIG_WIRELESS_EXT=y
375CONFIG_WIRELESS_EXT_SYSFS=y 387CONFIG_WIRELESS_EXT_SYSFS=y
388# CONFIG_LIB80211 is not set
376# CONFIG_MAC80211 is not set 389# CONFIG_MAC80211 is not set
377# CONFIG_IEEE80211 is not set
378# CONFIG_RFKILL is not set 390# CONFIG_RFKILL is not set
379# CONFIG_NET_9P is not set 391# CONFIG_NET_9P is not set
380 392
@@ -529,6 +541,7 @@ CONFIG_SCSI_WAIT_SCAN=m
529# CONFIG_SCSI_SRP_ATTRS is not set 541# CONFIG_SCSI_SRP_ATTRS is not set
530CONFIG_SCSI_LOWLEVEL=y 542CONFIG_SCSI_LOWLEVEL=y
531# CONFIG_ISCSI_TCP is not set 543# CONFIG_ISCSI_TCP is not set
544# CONFIG_LIBFC is not set
532# CONFIG_SCSI_DEBUG is not set 545# CONFIG_SCSI_DEBUG is not set
533# CONFIG_SCSI_DH is not set 546# CONFIG_SCSI_DH is not set
534# CONFIG_ATA is not set 547# CONFIG_ATA is not set
@@ -555,6 +568,9 @@ CONFIG_PHYLIB=y
555# CONFIG_BROADCOM_PHY is not set 568# CONFIG_BROADCOM_PHY is not set
556# CONFIG_ICPLUS_PHY is not set 569# CONFIG_ICPLUS_PHY is not set
557# CONFIG_REALTEK_PHY is not set 570# CONFIG_REALTEK_PHY is not set
571# CONFIG_NATIONAL_PHY is not set
572# CONFIG_STE10XP is not set
573# CONFIG_LSI_ET1011C_PHY is not set
558# CONFIG_FIXED_PHY is not set 574# CONFIG_FIXED_PHY is not set
559CONFIG_MDIO_BITBANG=y 575CONFIG_MDIO_BITBANG=y
560CONFIG_NET_ETHERNET=y 576CONFIG_NET_ETHERNET=y
@@ -564,6 +580,7 @@ CONFIG_MII=y
564CONFIG_SH_ETH=y 580CONFIG_SH_ETH=y
565# CONFIG_SMC91X is not set 581# CONFIG_SMC91X is not set
566# CONFIG_SMC911X is not set 582# CONFIG_SMC911X is not set
583# CONFIG_SMSC911X is not set
567# CONFIG_IBM_NEW_EMAC_ZMII is not set 584# CONFIG_IBM_NEW_EMAC_ZMII is not set
568# CONFIG_IBM_NEW_EMAC_RGMII is not set 585# CONFIG_IBM_NEW_EMAC_RGMII is not set
569# CONFIG_IBM_NEW_EMAC_TAH is not set 586# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -655,6 +672,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
655CONFIG_SERIAL_CORE=y 672CONFIG_SERIAL_CORE=y
656CONFIG_SERIAL_CORE_CONSOLE=y 673CONFIG_SERIAL_CORE_CONSOLE=y
657CONFIG_UNIX98_PTYS=y 674CONFIG_UNIX98_PTYS=y
675# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
658CONFIG_LEGACY_PTYS=y 676CONFIG_LEGACY_PTYS=y
659CONFIG_LEGACY_PTY_COUNT=256 677CONFIG_LEGACY_PTY_COUNT=256
660# CONFIG_IPMI_HANDLER is not set 678# CONFIG_IPMI_HANDLER is not set
@@ -670,11 +688,11 @@ CONFIG_HW_RANDOM=y
670# CONFIG_THERMAL is not set 688# CONFIG_THERMAL is not set
671# CONFIG_THERMAL_HWMON is not set 689# CONFIG_THERMAL_HWMON is not set
672# CONFIG_WATCHDOG is not set 690# CONFIG_WATCHDOG is not set
691CONFIG_SSB_POSSIBLE=y
673 692
674# 693#
675# Sonics Silicon Backplane 694# Sonics Silicon Backplane
676# 695#
677CONFIG_SSB_POSSIBLE=y
678# CONFIG_SSB is not set 696# CONFIG_SSB is not set
679 697
680# 698#
@@ -684,7 +702,7 @@ CONFIG_SSB_POSSIBLE=y
684# CONFIG_MFD_SM501 is not set 702# CONFIG_MFD_SM501 is not set
685# CONFIG_HTC_PASIC3 is not set 703# CONFIG_HTC_PASIC3 is not set
686# CONFIG_MFD_TMIO is not set 704# CONFIG_MFD_TMIO is not set
687# CONFIG_MFD_WM8400 is not set 705# CONFIG_REGULATOR is not set
688 706
689# 707#
690# Multimedia devices 708# Multimedia devices
@@ -737,6 +755,7 @@ CONFIG_FB_BOTH_ENDIAN=y
737CONFIG_FB_SH7760=y 755CONFIG_FB_SH7760=y
738# CONFIG_FB_VIRTUAL is not set 756# CONFIG_FB_VIRTUAL is not set
739# CONFIG_FB_METRONOME is not set 757# CONFIG_FB_METRONOME is not set
758# CONFIG_FB_MB862XX is not set
740# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 759# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
741 760
742# 761#
@@ -781,19 +800,21 @@ CONFIG_USB_DEVICE_CLASS=y
781# CONFIG_USB_OTG_WHITELIST is not set 800# CONFIG_USB_OTG_WHITELIST is not set
782# CONFIG_USB_OTG_BLACKLIST_HUB is not set 801# CONFIG_USB_OTG_BLACKLIST_HUB is not set
783CONFIG_USB_MON=y 802CONFIG_USB_MON=y
803# CONFIG_USB_WUSB is not set
804# CONFIG_USB_WUSB_CBAF is not set
784 805
785# 806#
786# USB Host Controller Drivers 807# USB Host Controller Drivers
787# 808#
788# CONFIG_USB_C67X00_HCD is not set 809# CONFIG_USB_C67X00_HCD is not set
789# CONFIG_USB_ISP116X_HCD is not set 810# CONFIG_USB_ISP116X_HCD is not set
790# CONFIG_USB_ISP1760_HCD is not set
791CONFIG_USB_OHCI_HCD=y 811CONFIG_USB_OHCI_HCD=y
792# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 812# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
793# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 813# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
794CONFIG_USB_OHCI_LITTLE_ENDIAN=y 814CONFIG_USB_OHCI_LITTLE_ENDIAN=y
795# CONFIG_USB_SL811_HCD is not set 815# CONFIG_USB_SL811_HCD is not set
796# CONFIG_USB_R8A66597_HCD is not set 816# CONFIG_USB_R8A66597_HCD is not set
817# CONFIG_USB_HWA_HCD is not set
797 818
798# 819#
799# USB Device Class drivers 820# USB Device Class drivers
@@ -804,11 +825,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
804# CONFIG_USB_TMC is not set 825# CONFIG_USB_TMC is not set
805 826
806# 827#
807# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 828# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
808# 829#
809 830
810# 831#
811# may also be needed; see USB_STORAGE Help for more information 832# see USB_STORAGE Help for more information
812# 833#
813CONFIG_USB_STORAGE=y 834CONFIG_USB_STORAGE=y
814# CONFIG_USB_STORAGE_DEBUG is not set 835# CONFIG_USB_STORAGE_DEBUG is not set
@@ -897,6 +918,7 @@ CONFIG_EXT3_FS_XATTR=y
897# CONFIG_EXT3_FS_SECURITY is not set 918# CONFIG_EXT3_FS_SECURITY is not set
898# CONFIG_EXT4_FS is not set 919# CONFIG_EXT4_FS is not set
899CONFIG_JBD=y 920CONFIG_JBD=y
921# CONFIG_JBD_DEBUG is not set
900CONFIG_FS_MBCACHE=y 922CONFIG_FS_MBCACHE=y
901# CONFIG_REISERFS_FS is not set 923# CONFIG_REISERFS_FS is not set
902# CONFIG_JFS_FS is not set 924# CONFIG_JFS_FS is not set
@@ -942,10 +964,7 @@ CONFIG_TMPFS_POSIX_ACL=y
942# CONFIG_HUGETLBFS is not set 964# CONFIG_HUGETLBFS is not set
943# CONFIG_HUGETLB_PAGE is not set 965# CONFIG_HUGETLB_PAGE is not set
944# CONFIG_CONFIGFS_FS is not set 966# CONFIG_CONFIGFS_FS is not set
945 967CONFIG_MISC_FILESYSTEMS=y
946#
947# Miscellaneous filesystems
948#
949# CONFIG_ADFS_FS is not set 968# CONFIG_ADFS_FS is not set
950# CONFIG_AFFS_FS is not set 969# CONFIG_AFFS_FS is not set
951# CONFIG_HFS_FS is not set 970# CONFIG_HFS_FS is not set
@@ -1038,20 +1057,30 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1038CONFIG_FRAME_WARN=1024 1057CONFIG_FRAME_WARN=1024
1039# CONFIG_MAGIC_SYSRQ is not set 1058# CONFIG_MAGIC_SYSRQ is not set
1040# CONFIG_UNUSED_SYMBOLS is not set 1059# CONFIG_UNUSED_SYMBOLS is not set
1041# CONFIG_DEBUG_FS is not set 1060CONFIG_DEBUG_FS=y
1042# CONFIG_HEADERS_CHECK is not set 1061# CONFIG_HEADERS_CHECK is not set
1043# CONFIG_DEBUG_KERNEL is not set 1062# CONFIG_DEBUG_KERNEL is not set
1063CONFIG_STACKTRACE=y
1044# CONFIG_DEBUG_BUGVERBOSE is not set 1064# CONFIG_DEBUG_BUGVERBOSE is not set
1045# CONFIG_DEBUG_MEMORY_INIT is not set 1065# CONFIG_DEBUG_MEMORY_INIT is not set
1046# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1066# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1047# CONFIG_LATENCYTOP is not set 1067# CONFIG_LATENCYTOP is not set
1048CONFIG_NOP_TRACER=y 1068CONFIG_NOP_TRACER=y
1049CONFIG_HAVE_FTRACE=y 1069CONFIG_HAVE_FUNCTION_TRACER=y
1070CONFIG_HAVE_DYNAMIC_FTRACE=y
1071CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1072CONFIG_RING_BUFFER=y
1073CONFIG_TRACING=y
1074
1075#
1076# Tracers
1077#
1050# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1078# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1051# CONFIG_SAMPLES is not set 1079# CONFIG_SAMPLES is not set
1080CONFIG_HAVE_ARCH_KGDB=y
1052# CONFIG_SH_STANDARD_BIOS is not set 1081# CONFIG_SH_STANDARD_BIOS is not set
1053# CONFIG_EARLY_SCIF_CONSOLE is not set 1082# CONFIG_EARLY_SCIF_CONSOLE is not set
1054# CONFIG_SH_KGDB is not set 1083# CONFIG_MORE_COMPILE_OPTIONS is not set
1055 1084
1056# 1085#
1057# Security options 1086# Security options
@@ -1067,6 +1096,7 @@ CONFIG_CRYPTO=y
1067# 1096#
1068# CONFIG_CRYPTO_FIPS is not set 1097# CONFIG_CRYPTO_FIPS is not set
1069# CONFIG_CRYPTO_MANAGER is not set 1098# CONFIG_CRYPTO_MANAGER is not set
1099# CONFIG_CRYPTO_MANAGER2 is not set
1070# CONFIG_CRYPTO_GF128MUL is not set 1100# CONFIG_CRYPTO_GF128MUL is not set
1071# CONFIG_CRYPTO_NULL is not set 1101# CONFIG_CRYPTO_NULL is not set
1072# CONFIG_CRYPTO_CRYPTD is not set 1102# CONFIG_CRYPTO_CRYPTD is not set
@@ -1149,6 +1179,7 @@ CONFIG_CRYPTO_HW=y
1149# Library routines 1179# Library routines
1150# 1180#
1151CONFIG_BITREVERSE=y 1181CONFIG_BITREVERSE=y
1182CONFIG_GENERIC_FIND_LAST_BIT=y
1152# CONFIG_CRC_CCITT is not set 1183# CONFIG_CRC_CCITT is not set
1153# CONFIG_CRC16 is not set 1184# CONFIG_CRC16 is not set
1154CONFIG_CRC_T10DIF=y 1185CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig
index 07e33c285b93..1d63628df6f6 100644
--- a/arch/sh/configs/sh7785lcr_defconfig
+++ b/arch/sh/configs/sh7785lcr_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:49:23 2008 4# Fri Jan 9 18:05:18 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
21CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
@@ -86,7 +88,6 @@ CONFIG_SLAB=y
86# CONFIG_SLUB is not set 88# CONFIG_SLUB is not set
87# CONFIG_SLOB is not set 89# CONFIG_SLOB is not set
88CONFIG_PROFILING=y 90CONFIG_PROFILING=y
89# CONFIG_MARKERS is not set
90# CONFIG_OPROFILE is not set 91# CONFIG_OPROFILE is not set
91CONFIG_HAVE_OPROFILE=y 92CONFIG_HAVE_OPROFILE=y
92# CONFIG_KPROBES is not set 93# CONFIG_KPROBES is not set
@@ -98,7 +99,6 @@ CONFIG_HAVE_CLK=y
98CONFIG_HAVE_GENERIC_DMA_COHERENT=y 99CONFIG_HAVE_GENERIC_DMA_COHERENT=y
99CONFIG_SLABINFO=y 100CONFIG_SLABINFO=y
100CONFIG_RT_MUTEXES=y 101CONFIG_RT_MUTEXES=y
101# CONFIG_TINY_SHMEM is not set
102CONFIG_BASE_SMALL=0 102CONFIG_BASE_SMALL=0
103CONFIG_MODULES=y 103CONFIG_MODULES=y
104# CONFIG_MODULE_FORCE_LOAD is not set 104# CONFIG_MODULE_FORCE_LOAD is not set
@@ -106,11 +106,9 @@ CONFIG_MODULE_UNLOAD=y
106# CONFIG_MODULE_FORCE_UNLOAD is not set 106# CONFIG_MODULE_FORCE_UNLOAD is not set
107# CONFIG_MODVERSIONS is not set 107# CONFIG_MODVERSIONS is not set
108# CONFIG_MODULE_SRCVERSION_ALL is not set 108# CONFIG_MODULE_SRCVERSION_ALL is not set
109CONFIG_KMOD=y
110CONFIG_BLOCK=y 109CONFIG_BLOCK=y
111# CONFIG_LBD is not set 110# CONFIG_LBD is not set
112# CONFIG_BLK_DEV_IO_TRACE is not set 111# CONFIG_BLK_DEV_IO_TRACE is not set
113# CONFIG_LSF is not set
114# CONFIG_BLK_DEV_BSG is not set 112# CONFIG_BLK_DEV_BSG is not set
115# CONFIG_BLK_DEV_INTEGRITY is not set 113# CONFIG_BLK_DEV_INTEGRITY is not set
116 114
@@ -127,6 +125,10 @@ CONFIG_DEFAULT_CFQ=y
127# CONFIG_DEFAULT_NOOP is not set 125# CONFIG_DEFAULT_NOOP is not set
128CONFIG_DEFAULT_IOSCHED="cfq" 126CONFIG_DEFAULT_IOSCHED="cfq"
129CONFIG_CLASSIC_RCU=y 127CONFIG_CLASSIC_RCU=y
128# CONFIG_TREE_RCU is not set
129# CONFIG_PREEMPT_RCU is not set
130# CONFIG_TREE_RCU_TRACE is not set
131# CONFIG_PREEMPT_RCU_TRACE is not set
130# CONFIG_FREEZER is not set 132# CONFIG_FREEZER is not set
131 133
132# 134#
@@ -136,6 +138,7 @@ CONFIG_CPU_SH4=y
136CONFIG_CPU_SH4A=y 138CONFIG_CPU_SH4A=y
137CONFIG_CPU_SHX2=y 139CONFIG_CPU_SHX2=y
138# CONFIG_CPU_SUBTYPE_SH7619 is not set 140# CONFIG_CPU_SUBTYPE_SH7619 is not set
141# CONFIG_CPU_SUBTYPE_SH7201 is not set
139# CONFIG_CPU_SUBTYPE_SH7203 is not set 142# CONFIG_CPU_SUBTYPE_SH7203 is not set
140# CONFIG_CPU_SUBTYPE_SH7206 is not set 143# CONFIG_CPU_SUBTYPE_SH7206 is not set
141# CONFIG_CPU_SUBTYPE_SH7263 is not set 144# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -206,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
206CONFIG_PAGEFLAGS_EXTENDED=y 209CONFIG_PAGEFLAGS_EXTENDED=y
207CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
208CONFIG_MIGRATION=y 211CONFIG_MIGRATION=y
209# CONFIG_RESOURCES_64BIT is not set
210# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
212CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -285,7 +287,6 @@ CONFIG_KEXEC=y
285# CONFIG_PREEMPT_NONE is not set 287# CONFIG_PREEMPT_NONE is not set
286# CONFIG_PREEMPT_VOLUNTARY is not set 288# CONFIG_PREEMPT_VOLUNTARY is not set
287CONFIG_PREEMPT=y 289CONFIG_PREEMPT=y
288# CONFIG_PREEMPT_RCU is not set
289CONFIG_GUSA=y 290CONFIG_GUSA=y
290 291
291# 292#
@@ -302,6 +303,7 @@ CONFIG_PCI=y
302CONFIG_SH_PCIDMA_NONCOHERENT=y 303CONFIG_SH_PCIDMA_NONCOHERENT=y
303CONFIG_PCI_AUTO=y 304CONFIG_PCI_AUTO=y
304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 305CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
306# CONFIG_PCIEPORTBUS is not set
305# CONFIG_ARCH_SUPPORTS_MSI is not set 307# CONFIG_ARCH_SUPPORTS_MSI is not set
306CONFIG_PCI_LEGACY=y 308CONFIG_PCI_LEGACY=y
307# CONFIG_PCI_DEBUG is not set 309# CONFIG_PCI_DEBUG is not set
@@ -315,11 +317,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 317# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 318# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 319# CONFIG_BINFMT_MISC is not set
320
321#
322# Power management options (EXPERIMENTAL)
323#
324# CONFIG_PM is not set
325# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 326CONFIG_NET=y
319 327
320# 328#
321# Networking options 329# Networking options
322# 330#
331CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 332CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 333# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 334CONFIG_UNIX=y
@@ -380,6 +389,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
380# CONFIG_ECONET is not set 389# CONFIG_ECONET is not set
381# CONFIG_WAN_ROUTER is not set 390# CONFIG_WAN_ROUTER is not set
382# CONFIG_NET_SCHED is not set 391# CONFIG_NET_SCHED is not set
392# CONFIG_DCB is not set
383 393
384# 394#
385# Network testing 395# Network testing
@@ -396,8 +406,8 @@ CONFIG_WIRELESS=y
396# CONFIG_WIRELESS_OLD_REGULATORY is not set 406# CONFIG_WIRELESS_OLD_REGULATORY is not set
397CONFIG_WIRELESS_EXT=y 407CONFIG_WIRELESS_EXT=y
398CONFIG_WIRELESS_EXT_SYSFS=y 408CONFIG_WIRELESS_EXT_SYSFS=y
409# CONFIG_LIB80211 is not set
399# CONFIG_MAC80211 is not set 410# CONFIG_MAC80211 is not set
400# CONFIG_IEEE80211 is not set
401# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
402# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
403 413
@@ -757,6 +767,7 @@ CONFIG_SERIAL_CORE=y
757CONFIG_SERIAL_CORE_CONSOLE=y 767CONFIG_SERIAL_CORE_CONSOLE=y
758# CONFIG_SERIAL_JSM is not set 768# CONFIG_SERIAL_JSM is not set
759CONFIG_UNIX98_PTYS=y 769CONFIG_UNIX98_PTYS=y
770# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
760CONFIG_LEGACY_PTYS=y 771CONFIG_LEGACY_PTYS=y
761CONFIG_LEGACY_PTY_COUNT=256 772CONFIG_LEGACY_PTY_COUNT=256
762# CONFIG_IPMI_HANDLER is not set 773# CONFIG_IPMI_HANDLER is not set
@@ -823,8 +834,8 @@ CONFIG_I2C_PCA_PLATFORM=y
823# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
824# 835#
825# CONFIG_DS1682 is not set 836# CONFIG_DS1682 is not set
826# CONFIG_AT24 is not set 837# CONFIG_EEPROM_AT24 is not set
827# CONFIG_SENSORS_EEPROM is not set 838# CONFIG_EEPROM_LEGACY is not set
828# CONFIG_SENSORS_PCF8574 is not set 839# CONFIG_SENSORS_PCF8574 is not set
829# CONFIG_PCF8575 is not set 840# CONFIG_PCF8575 is not set
830# CONFIG_SENSORS_PCA9539 is not set 841# CONFIG_SENSORS_PCA9539 is not set
@@ -842,11 +853,11 @@ CONFIG_I2C_PCA_PLATFORM=y
842# CONFIG_THERMAL is not set 853# CONFIG_THERMAL is not set
843# CONFIG_THERMAL_HWMON is not set 854# CONFIG_THERMAL_HWMON is not set
844# CONFIG_WATCHDOG is not set 855# CONFIG_WATCHDOG is not set
856CONFIG_SSB_POSSIBLE=y
845 857
846# 858#
847# Sonics Silicon Backplane 859# Sonics Silicon Backplane
848# 860#
849CONFIG_SSB_POSSIBLE=y
850# CONFIG_SSB is not set 861# CONFIG_SSB is not set
851 862
852# 863#
@@ -855,9 +866,12 @@ CONFIG_SSB_POSSIBLE=y
855# CONFIG_MFD_CORE is not set 866# CONFIG_MFD_CORE is not set
856CONFIG_MFD_SM501=y 867CONFIG_MFD_SM501=y
857# CONFIG_HTC_PASIC3 is not set 868# CONFIG_HTC_PASIC3 is not set
869# CONFIG_TWL4030_CORE is not set
858# CONFIG_MFD_TMIO is not set 870# CONFIG_MFD_TMIO is not set
871# CONFIG_PMIC_DA903X is not set
859# CONFIG_MFD_WM8400 is not set 872# CONFIG_MFD_WM8400 is not set
860# CONFIG_MFD_WM8350_I2C is not set 873# CONFIG_MFD_WM8350_I2C is not set
874# CONFIG_REGULATOR is not set
861 875
862# 876#
863# Multimedia devices 877# Multimedia devices
@@ -889,11 +903,12 @@ CONFIG_FB_CFB_FILLRECT=y
889CONFIG_FB_CFB_COPYAREA=y 903CONFIG_FB_CFB_COPYAREA=y
890CONFIG_FB_CFB_IMAGEBLIT=y 904CONFIG_FB_CFB_IMAGEBLIT=y
891# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 905# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
892# CONFIG_FB_SYS_FILLRECT is not set 906CONFIG_FB_SYS_FILLRECT=m
893# CONFIG_FB_SYS_COPYAREA is not set 907CONFIG_FB_SYS_COPYAREA=m
894# CONFIG_FB_SYS_IMAGEBLIT is not set 908CONFIG_FB_SYS_IMAGEBLIT=m
895# CONFIG_FB_FOREIGN_ENDIAN is not set 909# CONFIG_FB_FOREIGN_ENDIAN is not set
896# CONFIG_FB_SYS_FOPS is not set 910CONFIG_FB_SYS_FOPS=m
911CONFIG_FB_DEFERRED_IO=y
897# CONFIG_FB_SVGALIB is not set 912# CONFIG_FB_SVGALIB is not set
898# CONFIG_FB_MACMODES is not set 913# CONFIG_FB_MACMODES is not set
899# CONFIG_FB_BACKLIGHT is not set 914# CONFIG_FB_BACKLIGHT is not set
@@ -932,6 +947,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
932CONFIG_FB_SM501=y 947CONFIG_FB_SM501=y
933# CONFIG_FB_VIRTUAL is not set 948# CONFIG_FB_VIRTUAL is not set
934# CONFIG_FB_METRONOME is not set 949# CONFIG_FB_METRONOME is not set
950# CONFIG_FB_MB862XX is not set
935# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 951# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
936 952
937# 953#
@@ -976,11 +992,9 @@ CONFIG_HID_COMPAT=y
976CONFIG_HID_A4TECH=y 992CONFIG_HID_A4TECH=y
977CONFIG_HID_APPLE=y 993CONFIG_HID_APPLE=y
978CONFIG_HID_BELKIN=y 994CONFIG_HID_BELKIN=y
979CONFIG_HID_BRIGHT=y
980CONFIG_HID_CHERRY=y 995CONFIG_HID_CHERRY=y
981CONFIG_HID_CHICONY=y 996CONFIG_HID_CHICONY=y
982CONFIG_HID_CYPRESS=y 997CONFIG_HID_CYPRESS=y
983CONFIG_HID_DELL=y
984CONFIG_HID_EZKEY=y 998CONFIG_HID_EZKEY=y
985CONFIG_HID_GYRATION=y 999CONFIG_HID_GYRATION=y
986CONFIG_HID_LOGITECH=y 1000CONFIG_HID_LOGITECH=y
@@ -988,12 +1002,15 @@ CONFIG_HID_LOGITECH=y
988# CONFIG_LOGIRUMBLEPAD2_FF is not set 1002# CONFIG_LOGIRUMBLEPAD2_FF is not set
989CONFIG_HID_MICROSOFT=y 1003CONFIG_HID_MICROSOFT=y
990CONFIG_HID_MONTEREY=y 1004CONFIG_HID_MONTEREY=y
1005# CONFIG_HID_NTRIG is not set
991CONFIG_HID_PANTHERLORD=y 1006CONFIG_HID_PANTHERLORD=y
992# CONFIG_PANTHERLORD_FF is not set 1007# CONFIG_PANTHERLORD_FF is not set
993CONFIG_HID_PETALYNX=y 1008CONFIG_HID_PETALYNX=y
994CONFIG_HID_SAMSUNG=y 1009CONFIG_HID_SAMSUNG=y
995CONFIG_HID_SONY=y 1010CONFIG_HID_SONY=y
996CONFIG_HID_SUNPLUS=y 1011CONFIG_HID_SUNPLUS=y
1012# CONFIG_GREENASIA_FF is not set
1013# CONFIG_HID_TOPSEED is not set
997CONFIG_THRUSTMASTER_FF=m 1014CONFIG_THRUSTMASTER_FF=m
998CONFIG_ZEROPLUS_FF=m 1015CONFIG_ZEROPLUS_FF=m
999CONFIG_USB_SUPPORT=y 1016CONFIG_USB_SUPPORT=y
@@ -1014,6 +1031,8 @@ CONFIG_USB_DEVICE_CLASS=y
1014# CONFIG_USB_OTG_WHITELIST is not set 1031# CONFIG_USB_OTG_WHITELIST is not set
1015# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1032# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1016CONFIG_USB_MON=y 1033CONFIG_USB_MON=y
1034# CONFIG_USB_WUSB is not set
1035# CONFIG_USB_WUSB_CBAF is not set
1017 1036
1018# 1037#
1019# USB Host Controller Drivers 1038# USB Host Controller Drivers
@@ -1031,6 +1050,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1031# CONFIG_USB_UHCI_HCD is not set 1050# CONFIG_USB_UHCI_HCD is not set
1032# CONFIG_USB_SL811_HCD is not set 1051# CONFIG_USB_SL811_HCD is not set
1033CONFIG_USB_R8A66597_HCD=y 1052CONFIG_USB_R8A66597_HCD=y
1053# CONFIG_USB_WHCI_HCD is not set
1054# CONFIG_USB_HWA_HCD is not set
1034 1055
1035# 1056#
1036# USB Device Class drivers 1057# USB Device Class drivers
@@ -1041,11 +1062,11 @@ CONFIG_USB_R8A66597_HCD=y
1041# CONFIG_USB_TMC is not set 1062# CONFIG_USB_TMC is not set
1042 1063
1043# 1064#
1044# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1065# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1045# 1066#
1046 1067
1047# 1068#
1048# may also be needed; see USB_STORAGE Help for more information 1069# see USB_STORAGE Help for more information
1049# 1070#
1050CONFIG_USB_STORAGE=y 1071CONFIG_USB_STORAGE=y
1051# CONFIG_USB_STORAGE_DEBUG is not set 1072# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1100,6 +1121,7 @@ CONFIG_USB_TEST=m
1100# CONFIG_USB_ISIGHTFW is not set 1121# CONFIG_USB_ISIGHTFW is not set
1101# CONFIG_USB_VST is not set 1122# CONFIG_USB_VST is not set
1102# CONFIG_USB_GADGET is not set 1123# CONFIG_USB_GADGET is not set
1124# CONFIG_UWB is not set
1103# CONFIG_MMC is not set 1125# CONFIG_MMC is not set
1104# CONFIG_MEMSTICK is not set 1126# CONFIG_MEMSTICK is not set
1105# CONFIG_NEW_LEDS is not set 1127# CONFIG_NEW_LEDS is not set
@@ -1135,6 +1157,7 @@ CONFIG_RTC_DRV_RS5C372=y
1135# CONFIG_RTC_DRV_M41T80 is not set 1157# CONFIG_RTC_DRV_M41T80 is not set
1136# CONFIG_RTC_DRV_S35390A is not set 1158# CONFIG_RTC_DRV_S35390A is not set
1137# CONFIG_RTC_DRV_FM3130 is not set 1159# CONFIG_RTC_DRV_FM3130 is not set
1160# CONFIG_RTC_DRV_RX8581 is not set
1138 1161
1139# 1162#
1140# SPI RTC drivers 1163# SPI RTC drivers
@@ -1220,10 +1243,7 @@ CONFIG_TMPFS=y
1220# CONFIG_HUGETLBFS is not set 1243# CONFIG_HUGETLBFS is not set
1221# CONFIG_HUGETLB_PAGE is not set 1244# CONFIG_HUGETLB_PAGE is not set
1222# CONFIG_CONFIGFS_FS is not set 1245# CONFIG_CONFIGFS_FS is not set
1223 1246CONFIG_MISC_FILESYSTEMS=y
1224#
1225# Miscellaneous filesystems
1226#
1227# CONFIG_ADFS_FS is not set 1247# CONFIG_ADFS_FS is not set
1228# CONFIG_AFFS_FS is not set 1248# CONFIG_AFFS_FS is not set
1229# CONFIG_HFS_FS is not set 1249# CONFIG_HFS_FS is not set
@@ -1353,6 +1373,7 @@ CONFIG_DEBUG_PREEMPT=y
1353# CONFIG_DEBUG_MEMORY_INIT is not set 1373# CONFIG_DEBUG_MEMORY_INIT is not set
1354# CONFIG_DEBUG_LIST is not set 1374# CONFIG_DEBUG_LIST is not set
1355# CONFIG_DEBUG_SG is not set 1375# CONFIG_DEBUG_SG is not set
1376# CONFIG_DEBUG_NOTIFIERS is not set
1356# CONFIG_FRAME_POINTER is not set 1377# CONFIG_FRAME_POINTER is not set
1357# CONFIG_RCU_TORTURE_TEST is not set 1378# CONFIG_RCU_TORTURE_TEST is not set
1358# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1379# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1361,17 +1382,25 @@ CONFIG_DEBUG_PREEMPT=y
1361# CONFIG_FAULT_INJECTION is not set 1382# CONFIG_FAULT_INJECTION is not set
1362# CONFIG_LATENCYTOP is not set 1383# CONFIG_LATENCYTOP is not set
1363CONFIG_SYSCTL_SYSCALL_CHECK=y 1384CONFIG_SYSCTL_SYSCALL_CHECK=y
1364CONFIG_NOP_TRACER=y 1385CONFIG_HAVE_FUNCTION_TRACER=y
1365CONFIG_HAVE_FTRACE=y 1386CONFIG_HAVE_DYNAMIC_FTRACE=y
1366# CONFIG_FTRACE is not set 1387CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1388
1389#
1390# Tracers
1391#
1392# CONFIG_FUNCTION_TRACER is not set
1367# CONFIG_IRQSOFF_TRACER is not set 1393# CONFIG_IRQSOFF_TRACER is not set
1368# CONFIG_PREEMPT_TRACER is not set 1394# CONFIG_PREEMPT_TRACER is not set
1369# CONFIG_SCHED_TRACER is not set 1395# CONFIG_SCHED_TRACER is not set
1370# CONFIG_CONTEXT_SWITCH_TRACER is not set 1396# CONFIG_CONTEXT_SWITCH_TRACER is not set
1371# CONFIG_BOOT_TRACER is not set 1397# CONFIG_BOOT_TRACER is not set
1398# CONFIG_TRACE_BRANCH_PROFILING is not set
1372# CONFIG_STACK_TRACER is not set 1399# CONFIG_STACK_TRACER is not set
1373# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1400# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1374# CONFIG_SAMPLES is not set 1401# CONFIG_SAMPLES is not set
1402CONFIG_HAVE_ARCH_KGDB=y
1403# CONFIG_KGDB is not set
1375# CONFIG_SH_STANDARD_BIOS is not set 1404# CONFIG_SH_STANDARD_BIOS is not set
1376# CONFIG_EARLY_SCIF_CONSOLE is not set 1405# CONFIG_EARLY_SCIF_CONSOLE is not set
1377# CONFIG_DEBUG_BOOTMEM is not set 1406# CONFIG_DEBUG_BOOTMEM is not set
@@ -1379,7 +1408,9 @@ CONFIG_HAVE_FTRACE=y
1379# CONFIG_DEBUG_STACK_USAGE is not set 1408# CONFIG_DEBUG_STACK_USAGE is not set
1380# CONFIG_4KSTACKS is not set 1409# CONFIG_4KSTACKS is not set
1381# CONFIG_IRQSTACKS is not set 1410# CONFIG_IRQSTACKS is not set
1382# CONFIG_SH_KGDB is not set 1411# CONFIG_DUMP_CODE is not set
1412# CONFIG_SH_NO_BSS_INIT is not set
1413# CONFIG_MORE_COMPILE_OPTIONS is not set
1383 1414
1384# 1415#
1385# Security options 1416# Security options
@@ -1395,11 +1426,15 @@ CONFIG_CRYPTO=y
1395# 1426#
1396# CONFIG_CRYPTO_FIPS is not set 1427# CONFIG_CRYPTO_FIPS is not set
1397CONFIG_CRYPTO_ALGAPI=y 1428CONFIG_CRYPTO_ALGAPI=y
1398CONFIG_CRYPTO_AEAD=y 1429CONFIG_CRYPTO_ALGAPI2=y
1430CONFIG_CRYPTO_AEAD2=y
1399CONFIG_CRYPTO_BLKCIPHER=y 1431CONFIG_CRYPTO_BLKCIPHER=y
1432CONFIG_CRYPTO_BLKCIPHER2=y
1400CONFIG_CRYPTO_HASH=y 1433CONFIG_CRYPTO_HASH=y
1401CONFIG_CRYPTO_RNG=y 1434CONFIG_CRYPTO_HASH2=y
1435CONFIG_CRYPTO_RNG2=y
1402CONFIG_CRYPTO_MANAGER=y 1436CONFIG_CRYPTO_MANAGER=y
1437CONFIG_CRYPTO_MANAGER2=y
1403# CONFIG_CRYPTO_GF128MUL is not set 1438# CONFIG_CRYPTO_GF128MUL is not set
1404# CONFIG_CRYPTO_NULL is not set 1439# CONFIG_CRYPTO_NULL is not set
1405# CONFIG_CRYPTO_CRYPTD is not set 1440# CONFIG_CRYPTO_CRYPTD is not set
@@ -1482,6 +1517,7 @@ CONFIG_CRYPTO_DES=y
1482# Library routines 1517# Library routines
1483# 1518#
1484CONFIG_BITREVERSE=y 1519CONFIG_BITREVERSE=y
1520CONFIG_GENERIC_FIND_LAST_BIT=y
1485# CONFIG_CRC_CCITT is not set 1521# CONFIG_CRC_CCITT is not set
1486# CONFIG_CRC16 is not set 1522# CONFIG_CRC16 is not set
1487# CONFIG_CRC_T10DIF is not set 1523# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/shmin_defconfig b/arch/sh/configs/shmin_defconfig
index e2b38a334976..8ba10e1e08cd 100644
--- a/arch/sh/configs/shmin_defconfig
+++ b/arch/sh/configs/shmin_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:52:59 2008 4# Fri Jan 9 18:09:00 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -65,12 +67,10 @@ CONFIG_EVENTFD=y
65# CONFIG_SHMEM is not set 67# CONFIG_SHMEM is not set
66CONFIG_AIO=y 68CONFIG_AIO=y
67CONFIG_VM_EVENT_COUNTERS=y 69CONFIG_VM_EVENT_COUNTERS=y
68CONFIG_PCI_QUIRKS=y
69# CONFIG_SLAB is not set 70# CONFIG_SLAB is not set
70# CONFIG_SLUB is not set 71# CONFIG_SLUB is not set
71CONFIG_SLOB=y 72CONFIG_SLOB=y
72# CONFIG_PROFILING is not set 73# CONFIG_PROFILING is not set
73# CONFIG_MARKERS is not set
74CONFIG_HAVE_OPROFILE=y 74CONFIG_HAVE_OPROFILE=y
75CONFIG_HAVE_IOREMAP_PROT=y 75CONFIG_HAVE_IOREMAP_PROT=y
76CONFIG_HAVE_KPROBES=y 76CONFIG_HAVE_KPROBES=y
@@ -78,12 +78,10 @@ CONFIG_HAVE_KRETPROBES=y
78CONFIG_HAVE_ARCH_TRACEHOOK=y 78CONFIG_HAVE_ARCH_TRACEHOOK=y
79CONFIG_HAVE_CLK=y 79CONFIG_HAVE_CLK=y
80CONFIG_HAVE_GENERIC_DMA_COHERENT=y 80CONFIG_HAVE_GENERIC_DMA_COHERENT=y
81CONFIG_TINY_SHMEM=y
82CONFIG_BASE_SMALL=1 81CONFIG_BASE_SMALL=1
83# CONFIG_MODULES is not set 82# CONFIG_MODULES is not set
84CONFIG_BLOCK=y 83CONFIG_BLOCK=y
85# CONFIG_LBD is not set 84# CONFIG_LBD is not set
86# CONFIG_LSF is not set
87# CONFIG_BLK_DEV_BSG is not set 85# CONFIG_BLK_DEV_BSG is not set
88# CONFIG_BLK_DEV_INTEGRITY is not set 86# CONFIG_BLK_DEV_INTEGRITY is not set
89 87
@@ -100,6 +98,10 @@ CONFIG_IOSCHED_NOOP=y
100CONFIG_DEFAULT_NOOP=y 98CONFIG_DEFAULT_NOOP=y
101CONFIG_DEFAULT_IOSCHED="noop" 99CONFIG_DEFAULT_IOSCHED="noop"
102CONFIG_CLASSIC_RCU=y 100CONFIG_CLASSIC_RCU=y
101# CONFIG_TREE_RCU is not set
102# CONFIG_PREEMPT_RCU is not set
103# CONFIG_TREE_RCU_TRACE is not set
104# CONFIG_PREEMPT_RCU_TRACE is not set
103# CONFIG_FREEZER is not set 105# CONFIG_FREEZER is not set
104 106
105# 107#
@@ -107,6 +109,7 @@ CONFIG_CLASSIC_RCU=y
107# 109#
108CONFIG_CPU_SH3=y 110CONFIG_CPU_SH3=y
109# CONFIG_CPU_SUBTYPE_SH7619 is not set 111# CONFIG_CPU_SUBTYPE_SH7619 is not set
112# CONFIG_CPU_SUBTYPE_SH7201 is not set
110# CONFIG_CPU_SUBTYPE_SH7203 is not set 113# CONFIG_CPU_SUBTYPE_SH7203 is not set
111# CONFIG_CPU_SUBTYPE_SH7206 is not set 114# CONFIG_CPU_SUBTYPE_SH7206 is not set
112# CONFIG_CPU_SUBTYPE_SH7263 is not set 115# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -170,7 +173,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
170CONFIG_SPARSEMEM_STATIC=y 173CONFIG_SPARSEMEM_STATIC=y
171CONFIG_PAGEFLAGS_EXTENDED=y 174CONFIG_PAGEFLAGS_EXTENDED=y
172CONFIG_SPLIT_PTLOCK_CPUS=4 175CONFIG_SPLIT_PTLOCK_CPUS=4
173# CONFIG_RESOURCES_64BIT is not set
174# CONFIG_PHYS_ADDR_T_64BIT is not set 176# CONFIG_PHYS_ADDR_T_64BIT is not set
175CONFIG_ZONE_DMA_FLAG=0 177CONFIG_ZONE_DMA_FLAG=0
176CONFIG_NR_QUICK=2 178CONFIG_NR_QUICK=2
@@ -268,11 +270,18 @@ CONFIG_BINFMT_ELF=y
268# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 270# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
269# CONFIG_HAVE_AOUT is not set 271# CONFIG_HAVE_AOUT is not set
270# CONFIG_BINFMT_MISC is not set 272# CONFIG_BINFMT_MISC is not set
273
274#
275# Power management options (EXPERIMENTAL)
276#
277# CONFIG_PM is not set
278# CONFIG_CPU_IDLE is not set
271CONFIG_NET=y 279CONFIG_NET=y
272 280
273# 281#
274# Networking options 282# Networking options
275# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
276# CONFIG_PACKET is not set 285# CONFIG_PACKET is not set
277CONFIG_UNIX=y 286CONFIG_UNIX=y
278CONFIG_XFRM=y 287CONFIG_XFRM=y
@@ -327,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
329# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
330 340
331# 341#
332# Network testing 342# Network testing
@@ -342,8 +352,8 @@ CONFIG_WIRELESS=y
342# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
343# CONFIG_WIRELESS_OLD_REGULATORY is not set 353# CONFIG_WIRELESS_OLD_REGULATORY is not set
344# CONFIG_WIRELESS_EXT is not set 354# CONFIG_WIRELESS_EXT is not set
355# CONFIG_LIB80211 is not set
345# CONFIG_MAC80211 is not set 356# CONFIG_MAC80211 is not set
346# CONFIG_IEEE80211 is not set
347# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
348# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
349 359
@@ -448,6 +458,7 @@ CONFIG_BLK_DEV_LOOP=y
448CONFIG_MISC_DEVICES=y 458CONFIG_MISC_DEVICES=y
449# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
450# CONFIG_ENCLOSURE_SERVICES is not set 460# CONFIG_ENCLOSURE_SERVICES is not set
461# CONFIG_C2PORT is not set
451CONFIG_HAVE_IDE=y 462CONFIG_HAVE_IDE=y
452# CONFIG_IDE is not set 463# CONFIG_IDE is not set
453 464
@@ -474,6 +485,7 @@ CONFIG_NET_ETHERNET=y
474# CONFIG_STNIC is not set 485# CONFIG_STNIC is not set
475# CONFIG_SMC91X is not set 486# CONFIG_SMC91X is not set
476# CONFIG_SMC911X is not set 487# CONFIG_SMC911X is not set
488# CONFIG_SMSC911X is not set
477# CONFIG_IBM_NEW_EMAC_ZMII is not set 489# CONFIG_IBM_NEW_EMAC_ZMII is not set
478# CONFIG_IBM_NEW_EMAC_RGMII is not set 490# CONFIG_IBM_NEW_EMAC_RGMII is not set
479# CONFIG_IBM_NEW_EMAC_TAH is not set 491# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -532,6 +544,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
532CONFIG_SERIAL_CORE=y 544CONFIG_SERIAL_CORE=y
533CONFIG_SERIAL_CORE_CONSOLE=y 545CONFIG_SERIAL_CORE_CONSOLE=y
534CONFIG_UNIX98_PTYS=y 546CONFIG_UNIX98_PTYS=y
547# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
535CONFIG_LEGACY_PTYS=y 548CONFIG_LEGACY_PTYS=y
536CONFIG_LEGACY_PTY_COUNT=256 549CONFIG_LEGACY_PTY_COUNT=256
537# CONFIG_IPMI_HANDLER is not set 550# CONFIG_IPMI_HANDLER is not set
@@ -547,11 +560,11 @@ CONFIG_HW_RANDOM=y
547# CONFIG_THERMAL is not set 560# CONFIG_THERMAL is not set
548# CONFIG_THERMAL_HWMON is not set 561# CONFIG_THERMAL_HWMON is not set
549# CONFIG_WATCHDOG is not set 562# CONFIG_WATCHDOG is not set
563CONFIG_SSB_POSSIBLE=y
550 564
551# 565#
552# Sonics Silicon Backplane 566# Sonics Silicon Backplane
553# 567#
554CONFIG_SSB_POSSIBLE=y
555# CONFIG_SSB is not set 568# CONFIG_SSB is not set
556 569
557# 570#
@@ -561,7 +574,7 @@ CONFIG_SSB_POSSIBLE=y
561# CONFIG_MFD_SM501 is not set 574# CONFIG_MFD_SM501 is not set
562# CONFIG_HTC_PASIC3 is not set 575# CONFIG_HTC_PASIC3 is not set
563# CONFIG_MFD_TMIO is not set 576# CONFIG_MFD_TMIO is not set
564# CONFIG_MFD_WM8400 is not set 577# CONFIG_REGULATOR is not set
565 578
566# 579#
567# Multimedia devices 580# Multimedia devices
@@ -605,7 +618,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
605# 618#
606 619
607# 620#
608# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 621# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
609# 622#
610# CONFIG_USB_GADGET is not set 623# CONFIG_USB_GADGET is not set
611# CONFIG_MMC is not set 624# CONFIG_MMC is not set
@@ -660,10 +673,7 @@ CONFIG_TMPFS=y
660# CONFIG_TMPFS_POSIX_ACL is not set 673# CONFIG_TMPFS_POSIX_ACL is not set
661# CONFIG_HUGETLBFS is not set 674# CONFIG_HUGETLBFS is not set
662# CONFIG_HUGETLB_PAGE is not set 675# CONFIG_HUGETLB_PAGE is not set
663 676CONFIG_MISC_FILESYSTEMS=y
664#
665# Miscellaneous filesystems
666#
667# CONFIG_ADFS_FS is not set 677# CONFIG_ADFS_FS is not set
668# CONFIG_AFFS_FS is not set 678# CONFIG_AFFS_FS is not set
669# CONFIG_HFS_FS is not set 679# CONFIG_HFS_FS is not set
@@ -723,14 +733,20 @@ CONFIG_FRAME_WARN=1024
723# CONFIG_DEBUG_MEMORY_INIT is not set 733# CONFIG_DEBUG_MEMORY_INIT is not set
724# CONFIG_RCU_CPU_STALL_DETECTOR is not set 734# CONFIG_RCU_CPU_STALL_DETECTOR is not set
725# CONFIG_LATENCYTOP is not set 735# CONFIG_LATENCYTOP is not set
726CONFIG_NOP_TRACER=y 736CONFIG_HAVE_FUNCTION_TRACER=y
727CONFIG_HAVE_FTRACE=y 737CONFIG_HAVE_DYNAMIC_FTRACE=y
738CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
739
740#
741# Tracers
742#
728# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 743# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
729# CONFIG_SAMPLES is not set 744# CONFIG_SAMPLES is not set
745CONFIG_HAVE_ARCH_KGDB=y
730CONFIG_SH_STANDARD_BIOS=y 746CONFIG_SH_STANDARD_BIOS=y
731# CONFIG_EARLY_SCIF_CONSOLE is not set 747# CONFIG_EARLY_SCIF_CONSOLE is not set
732CONFIG_EARLY_PRINTK=y 748CONFIG_EARLY_PRINTK=y
733# CONFIG_SH_KGDB is not set 749# CONFIG_MORE_COMPILE_OPTIONS is not set
734 750
735# 751#
736# Security options 752# Security options
@@ -745,6 +761,7 @@ CONFIG_CRYPTO=y
745# 761#
746# CONFIG_CRYPTO_FIPS is not set 762# CONFIG_CRYPTO_FIPS is not set
747# CONFIG_CRYPTO_MANAGER is not set 763# CONFIG_CRYPTO_MANAGER is not set
764# CONFIG_CRYPTO_MANAGER2 is not set
748# CONFIG_CRYPTO_GF128MUL is not set 765# CONFIG_CRYPTO_GF128MUL is not set
749# CONFIG_CRYPTO_NULL is not set 766# CONFIG_CRYPTO_NULL is not set
750# CONFIG_CRYPTO_CRYPTD is not set 767# CONFIG_CRYPTO_CRYPTD is not set
@@ -826,6 +843,7 @@ CONFIG_CRYPTO_HW=y
826# Library routines 843# Library routines
827# 844#
828CONFIG_BITREVERSE=y 845CONFIG_BITREVERSE=y
846CONFIG_GENERIC_FIND_LAST_BIT=y
829# CONFIG_CRC_CCITT is not set 847# CONFIG_CRC_CCITT is not set
830# CONFIG_CRC16 is not set 848# CONFIG_CRC16 is not set
831# CONFIG_CRC_T10DIF is not set 849# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/shx3_defconfig b/arch/sh/configs/shx3_defconfig
index ae5cbe237fff..ed90a7e81099 100644
--- a/arch/sh/configs/shx3_defconfig
+++ b/arch/sh/configs/shx3_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.27 3# Linux kernel version: 2.6.28
4# Tue Oct 21 12:16:25 2008 4# Fri Jan 9 18:10:57 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -18,6 +18,8 @@ CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y 19CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
20CONFIG_GENERIC_LOCKBREAK=y 20CONFIG_GENERIC_LOCKBREAK=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
21CONFIG_SYS_SUPPORTS_SMP=y 23CONFIG_SYS_SUPPORTS_SMP=y
22CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
@@ -79,6 +81,7 @@ CONFIG_UID16=y
79CONFIG_SYSCTL_SYSCALL=y 81CONFIG_SYSCTL_SYSCALL=y
80CONFIG_KALLSYMS=y 82CONFIG_KALLSYMS=y
81CONFIG_KALLSYMS_ALL=y 83CONFIG_KALLSYMS_ALL=y
84CONFIG_KALLSYMS_STRIP_GENERATED=y
82# CONFIG_KALLSYMS_EXTRA_PASS is not set 85# CONFIG_KALLSYMS_EXTRA_PASS is not set
83CONFIG_HOTPLUG=y 86CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 87CONFIG_PRINTK=y
@@ -95,11 +98,11 @@ CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 98CONFIG_SHMEM=y
96CONFIG_AIO=y 99CONFIG_AIO=y
97CONFIG_VM_EVENT_COUNTERS=y 100CONFIG_VM_EVENT_COUNTERS=y
98CONFIG_PCI_QUIRKS=y
99# CONFIG_SLAB is not set 101# CONFIG_SLAB is not set
100# CONFIG_SLUB is not set 102# CONFIG_SLUB is not set
101CONFIG_SLOB=y 103CONFIG_SLOB=y
102CONFIG_PROFILING=y 104CONFIG_PROFILING=y
105CONFIG_TRACEPOINTS=y
103# CONFIG_MARKERS is not set 106# CONFIG_MARKERS is not set
104CONFIG_OPROFILE=y 107CONFIG_OPROFILE=y
105CONFIG_HAVE_OPROFILE=y 108CONFIG_HAVE_OPROFILE=y
@@ -113,7 +116,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
113CONFIG_HAVE_CLK=y 116CONFIG_HAVE_CLK=y
114CONFIG_HAVE_GENERIC_DMA_COHERENT=y 117CONFIG_HAVE_GENERIC_DMA_COHERENT=y
115CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 120CONFIG_MODULES=y
119# CONFIG_MODULE_FORCE_LOAD is not set 121# CONFIG_MODULE_FORCE_LOAD is not set
@@ -121,12 +123,10 @@ CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 123# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 124# CONFIG_MODVERSIONS is not set
123# CONFIG_MODULE_SRCVERSION_ALL is not set 125# CONFIG_MODULE_SRCVERSION_ALL is not set
124CONFIG_KMOD=y
125CONFIG_STOP_MACHINE=y 126CONFIG_STOP_MACHINE=y
126CONFIG_BLOCK=y 127CONFIG_BLOCK=y
127# CONFIG_LBD is not set 128# CONFIG_LBD is not set
128# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 130# CONFIG_BLK_DEV_BSG is not set
131# CONFIG_BLK_DEV_INTEGRITY is not set 131# CONFIG_BLK_DEV_INTEGRITY is not set
132 132
@@ -143,6 +143,11 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_NOOP is not set 143# CONFIG_DEFAULT_NOOP is not set
144CONFIG_DEFAULT_IOSCHED="anticipatory" 144CONFIG_DEFAULT_IOSCHED="anticipatory"
145# CONFIG_CLASSIC_RCU is not set 145# CONFIG_CLASSIC_RCU is not set
146# CONFIG_TREE_RCU is not set
147CONFIG_PREEMPT_RCU=y
148CONFIG_RCU_TRACE=y
149# CONFIG_TREE_RCU_TRACE is not set
150CONFIG_PREEMPT_RCU_TRACE=y
146CONFIG_FREEZER=y 151CONFIG_FREEZER=y
147 152
148# 153#
@@ -152,6 +157,7 @@ CONFIG_CPU_SH4=y
152CONFIG_CPU_SH4A=y 157CONFIG_CPU_SH4A=y
153CONFIG_CPU_SHX3=y 158CONFIG_CPU_SHX3=y
154# CONFIG_CPU_SUBTYPE_SH7619 is not set 159# CONFIG_CPU_SUBTYPE_SH7619 is not set
160# CONFIG_CPU_SUBTYPE_SH7201 is not set
155# CONFIG_CPU_SUBTYPE_SH7203 is not set 161# CONFIG_CPU_SUBTYPE_SH7203 is not set
156# CONFIG_CPU_SUBTYPE_SH7206 is not set 162# CONFIG_CPU_SUBTYPE_SH7206 is not set
157# CONFIG_CPU_SUBTYPE_SH7263 is not set 163# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -230,7 +236,6 @@ CONFIG_MEMORY_HOTPLUG_SPARSE=y
230CONFIG_MEMORY_HOTREMOVE=y 236CONFIG_MEMORY_HOTREMOVE=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set
234# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
235CONFIG_ZONE_DMA_FLAG=0 240CONFIG_ZONE_DMA_FLAG=0
236CONFIG_NR_QUICK=2 241CONFIG_NR_QUICK=2
@@ -323,8 +328,6 @@ CONFIG_NR_CPUS=4
323# CONFIG_PREEMPT_NONE is not set 328# CONFIG_PREEMPT_NONE is not set
324# CONFIG_PREEMPT_VOLUNTARY is not set 329# CONFIG_PREEMPT_VOLUNTARY is not set
325CONFIG_PREEMPT=y 330CONFIG_PREEMPT=y
326CONFIG_PREEMPT_RCU=y
327CONFIG_RCU_TRACE=y
328 331
329# 332#
330# Boot options 333# Boot options
@@ -347,11 +350,19 @@ CONFIG_BINFMT_ELF=y
347# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 350# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
348# CONFIG_HAVE_AOUT is not set 351# CONFIG_HAVE_AOUT is not set
349CONFIG_BINFMT_MISC=y 352CONFIG_BINFMT_MISC=y
353
354#
355# Power management options (EXPERIMENTAL)
356#
357# CONFIG_PM is not set
358# CONFIG_CPU_IDLE is not set
350CONFIG_NET=y 359CONFIG_NET=y
351 360
352# 361#
353# Networking options 362# Networking options
354# 363#
364# CONFIG_NET_NS is not set
365CONFIG_COMPAT_NET_DEV_OPS=y
355# CONFIG_PACKET is not set 366# CONFIG_PACKET is not set
356# CONFIG_UNIX is not set 367# CONFIG_UNIX is not set
357CONFIG_XFRM=y 368CONFIG_XFRM=y
@@ -424,6 +435,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
424# CONFIG_ECONET is not set 435# CONFIG_ECONET is not set
425# CONFIG_WAN_ROUTER is not set 436# CONFIG_WAN_ROUTER is not set
426# CONFIG_NET_SCHED is not set 437# CONFIG_NET_SCHED is not set
438# CONFIG_DCB is not set
427 439
428# 440#
429# Network testing 441# Network testing
@@ -479,7 +491,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
479# CONFIG_BLK_DEV_HD is not set 491# CONFIG_BLK_DEV_HD is not set
480CONFIG_MISC_DEVICES=y 492CONFIG_MISC_DEVICES=y
481# CONFIG_EEPROM_93CX6 is not set 493# CONFIG_EEPROM_93CX6 is not set
494# CONFIG_ICS932S401 is not set
482# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_C2PORT is not set
483CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
484# CONFIG_IDE is not set 498# CONFIG_IDE is not set
485 499
@@ -522,6 +536,7 @@ CONFIG_SCSI_WAIT_SCAN=m
522# CONFIG_SCSI_SRP_ATTRS is not set 536# CONFIG_SCSI_SRP_ATTRS is not set
523CONFIG_SCSI_LOWLEVEL=y 537CONFIG_SCSI_LOWLEVEL=y
524# CONFIG_ISCSI_TCP is not set 538# CONFIG_ISCSI_TCP is not set
539# CONFIG_LIBFC is not set
525# CONFIG_SCSI_DEBUG is not set 540# CONFIG_SCSI_DEBUG is not set
526# CONFIG_SCSI_DH is not set 541# CONFIG_SCSI_DH is not set
527CONFIG_ATA=y 542CONFIG_ATA=y
@@ -546,6 +561,7 @@ CONFIG_MII=y
546CONFIG_SMC91X=y 561CONFIG_SMC91X=y
547# CONFIG_ENC28J60 is not set 562# CONFIG_ENC28J60 is not set
548# CONFIG_SMC911X is not set 563# CONFIG_SMC911X is not set
564# CONFIG_SMSC911X is not set
549# CONFIG_IBM_NEW_EMAC_ZMII is not set 565# CONFIG_IBM_NEW_EMAC_ZMII is not set
550# CONFIG_IBM_NEW_EMAC_RGMII is not set 566# CONFIG_IBM_NEW_EMAC_RGMII is not set
551# CONFIG_IBM_NEW_EMAC_TAH is not set 567# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -613,6 +629,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
613CONFIG_SERIAL_CORE=y 629CONFIG_SERIAL_CORE=y
614CONFIG_SERIAL_CORE_CONSOLE=y 630CONFIG_SERIAL_CORE_CONSOLE=y
615CONFIG_UNIX98_PTYS=y 631CONFIG_UNIX98_PTYS=y
632# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
616CONFIG_LEGACY_PTYS=y 633CONFIG_LEGACY_PTYS=y
617CONFIG_LEGACY_PTY_COUNT=256 634CONFIG_LEGACY_PTY_COUNT=256
618# CONFIG_IPMI_HANDLER is not set 635# CONFIG_IPMI_HANDLER is not set
@@ -653,8 +670,8 @@ CONFIG_I2C_HELPER_AUTO=y
653# Miscellaneous I2C Chip support 670# Miscellaneous I2C Chip support
654# 671#
655# CONFIG_DS1682 is not set 672# CONFIG_DS1682 is not set
656# CONFIG_AT24 is not set 673# CONFIG_EEPROM_AT24 is not set
657# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
658# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
659# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
660# CONFIG_SENSORS_PCA9539 is not set 677# CONFIG_SENSORS_PCA9539 is not set
@@ -678,7 +695,7 @@ CONFIG_SPI_MASTER=y
678# 695#
679# SPI Protocol Masters 696# SPI Protocol Masters
680# 697#
681# CONFIG_SPI_AT25 is not set 698# CONFIG_EEPROM_AT25 is not set
682# CONFIG_SPI_SPIDEV is not set 699# CONFIG_SPI_SPIDEV is not set
683# CONFIG_SPI_TLE62X0 is not set 700# CONFIG_SPI_TLE62X0 is not set
684# CONFIG_W1 is not set 701# CONFIG_W1 is not set
@@ -699,11 +716,11 @@ CONFIG_WATCHDOG=y
699# USB-based Watchdog Cards 716# USB-based Watchdog Cards
700# 717#
701# CONFIG_USBPCWATCHDOG is not set 718# CONFIG_USBPCWATCHDOG is not set
719CONFIG_SSB_POSSIBLE=y
702 720
703# 721#
704# Sonics Silicon Backplane 722# Sonics Silicon Backplane
705# 723#
706CONFIG_SSB_POSSIBLE=y
707# CONFIG_SSB is not set 724# CONFIG_SSB is not set
708 725
709# 726#
@@ -715,6 +732,7 @@ CONFIG_SSB_POSSIBLE=y
715# CONFIG_MFD_TMIO is not set 732# CONFIG_MFD_TMIO is not set
716# CONFIG_MFD_WM8400 is not set 733# CONFIG_MFD_WM8400 is not set
717# CONFIG_MFD_WM8350_I2C is not set 734# CONFIG_MFD_WM8350_I2C is not set
735# CONFIG_REGULATOR is not set
718 736
719# 737#
720# Multimedia devices 738# Multimedia devices
@@ -763,15 +781,17 @@ CONFIG_USB_DEVICE_CLASS=y
763# CONFIG_USB_OTG_WHITELIST is not set 781# CONFIG_USB_OTG_WHITELIST is not set
764# CONFIG_USB_OTG_BLACKLIST_HUB is not set 782# CONFIG_USB_OTG_BLACKLIST_HUB is not set
765CONFIG_USB_MON=y 783CONFIG_USB_MON=y
784# CONFIG_USB_WUSB is not set
785# CONFIG_USB_WUSB_CBAF is not set
766 786
767# 787#
768# USB Host Controller Drivers 788# USB Host Controller Drivers
769# 789#
770# CONFIG_USB_C67X00_HCD is not set 790# CONFIG_USB_C67X00_HCD is not set
771# CONFIG_USB_ISP116X_HCD is not set 791# CONFIG_USB_ISP116X_HCD is not set
772# CONFIG_USB_ISP1760_HCD is not set
773# CONFIG_USB_SL811_HCD is not set 792# CONFIG_USB_SL811_HCD is not set
774CONFIG_USB_R8A66597_HCD=m 793CONFIG_USB_R8A66597_HCD=m
794# CONFIG_USB_HWA_HCD is not set
775# CONFIG_USB_GADGET_MUSB_HDRC is not set 795# CONFIG_USB_GADGET_MUSB_HDRC is not set
776 796
777# 797#
@@ -783,11 +803,11 @@ CONFIG_USB_R8A66597_HCD=m
783# CONFIG_USB_TMC is not set 803# CONFIG_USB_TMC is not set
784 804
785# 805#
786# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 806# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
787# 807#
788 808
789# 809#
790# may also be needed; see USB_STORAGE Help for more information 810# see USB_STORAGE Help for more information
791# 811#
792# CONFIG_USB_STORAGE is not set 812# CONFIG_USB_STORAGE is not set
793# CONFIG_USB_LIBUSUAL is not set 813# CONFIG_USB_LIBUSUAL is not set
@@ -890,12 +910,14 @@ CONFIG_RTC_INTF_DEV=y
890# CONFIG_RTC_DRV_M41T80 is not set 910# CONFIG_RTC_DRV_M41T80 is not set
891# CONFIG_RTC_DRV_S35390A is not set 911# CONFIG_RTC_DRV_S35390A is not set
892# CONFIG_RTC_DRV_FM3130 is not set 912# CONFIG_RTC_DRV_FM3130 is not set
913# CONFIG_RTC_DRV_RX8581 is not set
893 914
894# 915#
895# SPI RTC drivers 916# SPI RTC drivers
896# 917#
897# CONFIG_RTC_DRV_M41T94 is not set 918# CONFIG_RTC_DRV_M41T94 is not set
898# CONFIG_RTC_DRV_DS1305 is not set 919# CONFIG_RTC_DRV_DS1305 is not set
920# CONFIG_RTC_DRV_DS1390 is not set
899# CONFIG_RTC_DRV_MAX6902 is not set 921# CONFIG_RTC_DRV_MAX6902 is not set
900# CONFIG_RTC_DRV_R9701 is not set 922# CONFIG_RTC_DRV_R9701 is not set
901# CONFIG_RTC_DRV_RS5C348 is not set 923# CONFIG_RTC_DRV_RS5C348 is not set
@@ -981,10 +1003,7 @@ CONFIG_TMPFS=y
981CONFIG_HUGETLBFS=y 1003CONFIG_HUGETLBFS=y
982CONFIG_HUGETLB_PAGE=y 1004CONFIG_HUGETLB_PAGE=y
983# CONFIG_CONFIGFS_FS is not set 1005# CONFIG_CONFIGFS_FS is not set
984 1006CONFIG_MISC_FILESYSTEMS=y
985#
986# Miscellaneous filesystems
987#
988# CONFIG_ADFS_FS is not set 1007# CONFIG_ADFS_FS is not set
989# CONFIG_AFFS_FS is not set 1008# CONFIG_AFFS_FS is not set
990# CONFIG_HFS_FS is not set 1009# CONFIG_HFS_FS is not set
@@ -1049,6 +1068,7 @@ CONFIG_DEBUG_PREEMPT=y
1049# CONFIG_LOCK_STAT is not set 1068# CONFIG_LOCK_STAT is not set
1050# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1069# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1051# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1070# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1071CONFIG_STACKTRACE=y
1052# CONFIG_DEBUG_KOBJECT is not set 1072# CONFIG_DEBUG_KOBJECT is not set
1053CONFIG_DEBUG_BUGVERBOSE=y 1073CONFIG_DEBUG_BUGVERBOSE=y
1054# CONFIG_DEBUG_INFO is not set 1074# CONFIG_DEBUG_INFO is not set
@@ -1057,6 +1077,7 @@ CONFIG_DEBUG_VM=y
1057# CONFIG_DEBUG_MEMORY_INIT is not set 1077# CONFIG_DEBUG_MEMORY_INIT is not set
1058# CONFIG_DEBUG_LIST is not set 1078# CONFIG_DEBUG_LIST is not set
1059# CONFIG_DEBUG_SG is not set 1079# CONFIG_DEBUG_SG is not set
1080# CONFIG_DEBUG_NOTIFIERS is not set
1060CONFIG_FRAME_POINTER=y 1081CONFIG_FRAME_POINTER=y
1061# CONFIG_RCU_TORTURE_TEST is not set 1082# CONFIG_RCU_TORTURE_TEST is not set
1062# CONFIG_KPROBES_SANITY_TEST is not set 1083# CONFIG_KPROBES_SANITY_TEST is not set
@@ -1066,16 +1087,28 @@ CONFIG_FRAME_POINTER=y
1066# CONFIG_FAULT_INJECTION is not set 1087# CONFIG_FAULT_INJECTION is not set
1067# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1088# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1068CONFIG_NOP_TRACER=y 1089CONFIG_NOP_TRACER=y
1069CONFIG_HAVE_FTRACE=y 1090CONFIG_HAVE_FUNCTION_TRACER=y
1070# CONFIG_FTRACE is not set 1091CONFIG_HAVE_DYNAMIC_FTRACE=y
1092CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1093CONFIG_RING_BUFFER=y
1094CONFIG_TRACING=y
1095
1096#
1097# Tracers
1098#
1099# CONFIG_FUNCTION_TRACER is not set
1071# CONFIG_IRQSOFF_TRACER is not set 1100# CONFIG_IRQSOFF_TRACER is not set
1072# CONFIG_PREEMPT_TRACER is not set 1101# CONFIG_PREEMPT_TRACER is not set
1073# CONFIG_SCHED_TRACER is not set 1102# CONFIG_SCHED_TRACER is not set
1074# CONFIG_CONTEXT_SWITCH_TRACER is not set 1103# CONFIG_CONTEXT_SWITCH_TRACER is not set
1075# CONFIG_BOOT_TRACER is not set 1104# CONFIG_BOOT_TRACER is not set
1105# CONFIG_TRACE_BRANCH_PROFILING is not set
1076# CONFIG_STACK_TRACER is not set 1106# CONFIG_STACK_TRACER is not set
1107# CONFIG_FTRACE_STARTUP_TEST is not set
1077# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1108# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1078# CONFIG_SAMPLES is not set 1109# CONFIG_SAMPLES is not set
1110CONFIG_HAVE_ARCH_KGDB=y
1111# CONFIG_KGDB is not set
1079CONFIG_SH_STANDARD_BIOS=y 1112CONFIG_SH_STANDARD_BIOS=y
1080# CONFIG_EARLY_SCIF_CONSOLE is not set 1113# CONFIG_EARLY_SCIF_CONSOLE is not set
1081CONFIG_EARLY_PRINTK=y 1114CONFIG_EARLY_PRINTK=y
@@ -1083,7 +1116,9 @@ CONFIG_EARLY_PRINTK=y
1083CONFIG_DEBUG_STACKOVERFLOW=y 1116CONFIG_DEBUG_STACKOVERFLOW=y
1084CONFIG_DEBUG_STACK_USAGE=y 1117CONFIG_DEBUG_STACK_USAGE=y
1085# CONFIG_IRQSTACKS is not set 1118# CONFIG_IRQSTACKS is not set
1086# CONFIG_SH_KGDB is not set 1119CONFIG_DUMP_CODE=y
1120# CONFIG_SH_NO_BSS_INIT is not set
1121# CONFIG_MORE_COMPILE_OPTIONS is not set
1087 1122
1088# 1123#
1089# Security options 1124# Security options
@@ -1099,6 +1134,7 @@ CONFIG_CRYPTO=y
1099# 1134#
1100# CONFIG_CRYPTO_FIPS is not set 1135# CONFIG_CRYPTO_FIPS is not set
1101# CONFIG_CRYPTO_MANAGER is not set 1136# CONFIG_CRYPTO_MANAGER is not set
1137# CONFIG_CRYPTO_MANAGER2 is not set
1102# CONFIG_CRYPTO_GF128MUL is not set 1138# CONFIG_CRYPTO_GF128MUL is not set
1103# CONFIG_CRYPTO_NULL is not set 1139# CONFIG_CRYPTO_NULL is not set
1104# CONFIG_CRYPTO_CRYPTD is not set 1140# CONFIG_CRYPTO_CRYPTD is not set
@@ -1181,6 +1217,7 @@ CONFIG_CRYPTO_HW=y
1181# Library routines 1217# Library routines
1182# 1218#
1183CONFIG_BITREVERSE=y 1219CONFIG_BITREVERSE=y
1220CONFIG_GENERIC_FIND_LAST_BIT=y
1184# CONFIG_CRC_CCITT is not set 1221# CONFIG_CRC_CCITT is not set
1185# CONFIG_CRC16 is not set 1222# CONFIG_CRC16 is not set
1186# CONFIG_CRC_T10DIF is not set 1223# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/snapgear_defconfig b/arch/sh/configs/snapgear_defconfig
index b4ca5110958f..98377e502650 100644
--- a/arch/sh/configs/snapgear_defconfig
+++ b/arch/sh/configs/snapgear_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:55:03 2008 4# Fri Jan 9 18:14:08 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81CONFIG_HAVE_IOREMAP_PROT=y 82CONFIG_HAVE_IOREMAP_PROT=y
82CONFIG_HAVE_KPROBES=y 83CONFIG_HAVE_KPROBES=y
@@ -86,13 +87,11 @@ CONFIG_HAVE_CLK=y
86CONFIG_HAVE_GENERIC_DMA_COHERENT=y 87CONFIG_HAVE_GENERIC_DMA_COHERENT=y
87CONFIG_SLABINFO=y 88CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
89# CONFIG_TINY_SHMEM is not set
90CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
91# CONFIG_MODULES is not set 91# CONFIG_MODULES is not set
92CONFIG_BLOCK=y 92CONFIG_BLOCK=y
93# CONFIG_LBD is not set 93# CONFIG_LBD is not set
94# CONFIG_BLK_DEV_IO_TRACE is not set 94# CONFIG_BLK_DEV_IO_TRACE is not set
95# CONFIG_LSF is not set
96# CONFIG_BLK_DEV_BSG is not set 95# CONFIG_BLK_DEV_BSG is not set
97# CONFIG_BLK_DEV_INTEGRITY is not set 96# CONFIG_BLK_DEV_INTEGRITY is not set
98 97
@@ -109,6 +108,10 @@ CONFIG_DEFAULT_AS=y
109# CONFIG_DEFAULT_NOOP is not set 108# CONFIG_DEFAULT_NOOP is not set
110CONFIG_DEFAULT_IOSCHED="anticipatory" 109CONFIG_DEFAULT_IOSCHED="anticipatory"
111CONFIG_CLASSIC_RCU=y 110CONFIG_CLASSIC_RCU=y
111# CONFIG_TREE_RCU is not set
112# CONFIG_PREEMPT_RCU is not set
113# CONFIG_TREE_RCU_TRACE is not set
114# CONFIG_PREEMPT_RCU_TRACE is not set
112# CONFIG_FREEZER is not set 115# CONFIG_FREEZER is not set
113 116
114# 117#
@@ -116,6 +119,7 @@ CONFIG_CLASSIC_RCU=y
116# 119#
117CONFIG_CPU_SH4=y 120CONFIG_CPU_SH4=y
118# CONFIG_CPU_SUBTYPE_SH7619 is not set 121# CONFIG_CPU_SUBTYPE_SH7619 is not set
122# CONFIG_CPU_SUBTYPE_SH7201 is not set
119# CONFIG_CPU_SUBTYPE_SH7203 is not set 123# CONFIG_CPU_SUBTYPE_SH7203 is not set
120# CONFIG_CPU_SUBTYPE_SH7206 is not set 124# CONFIG_CPU_SUBTYPE_SH7206 is not set
121# CONFIG_CPU_SUBTYPE_SH7263 is not set 125# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -179,7 +183,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
179CONFIG_SPARSEMEM_STATIC=y 183CONFIG_SPARSEMEM_STATIC=y
180CONFIG_PAGEFLAGS_EXTENDED=y 184CONFIG_PAGEFLAGS_EXTENDED=y
181CONFIG_SPLIT_PTLOCK_CPUS=4 185CONFIG_SPLIT_PTLOCK_CPUS=4
182# CONFIG_RESOURCES_64BIT is not set
183# CONFIG_PHYS_ADDR_T_64BIT is not set 186# CONFIG_PHYS_ADDR_T_64BIT is not set
184CONFIG_ZONE_DMA_FLAG=0 187CONFIG_ZONE_DMA_FLAG=0
185CONFIG_NR_QUICK=2 188CONFIG_NR_QUICK=2
@@ -282,6 +285,7 @@ CONFIG_PCI=y
282CONFIG_SH_PCIDMA_NONCOHERENT=y 285CONFIG_SH_PCIDMA_NONCOHERENT=y
283CONFIG_PCI_AUTO=y 286CONFIG_PCI_AUTO=y
284CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 287CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
288# CONFIG_PCIEPORTBUS is not set
285# CONFIG_ARCH_SUPPORTS_MSI is not set 289# CONFIG_ARCH_SUPPORTS_MSI is not set
286CONFIG_PCI_LEGACY=y 290CONFIG_PCI_LEGACY=y
287 291
@@ -292,11 +296,18 @@ CONFIG_BINFMT_ELF=y
292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 296# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
293# CONFIG_HAVE_AOUT is not set 297# CONFIG_HAVE_AOUT is not set
294# CONFIG_BINFMT_MISC is not set 298# CONFIG_BINFMT_MISC is not set
299
300#
301# Power management options (EXPERIMENTAL)
302#
303# CONFIG_PM is not set
304# CONFIG_CPU_IDLE is not set
295CONFIG_NET=y 305CONFIG_NET=y
296 306
297# 307#
298# Networking options 308# Networking options
299# 309#
310CONFIG_COMPAT_NET_DEV_OPS=y
300# CONFIG_PACKET is not set 311# CONFIG_PACKET is not set
301# CONFIG_UNIX is not set 312# CONFIG_UNIX is not set
302# CONFIG_NET_KEY is not set 313# CONFIG_NET_KEY is not set
@@ -342,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 353# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 354# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 355# CONFIG_NET_SCHED is not set
356# CONFIG_DCB is not set
345 357
346# 358#
347# Network testing 359# Network testing
@@ -357,8 +369,8 @@ CONFIG_WIRELESS=y
357# CONFIG_CFG80211 is not set 369# CONFIG_CFG80211 is not set
358# CONFIG_WIRELESS_OLD_REGULATORY is not set 370# CONFIG_WIRELESS_OLD_REGULATORY is not set
359# CONFIG_WIRELESS_EXT is not set 371# CONFIG_WIRELESS_EXT is not set
372# CONFIG_LIB80211 is not set
360# CONFIG_MAC80211 is not set 373# CONFIG_MAC80211 is not set
361# CONFIG_IEEE80211 is not set
362# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
363# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
364 376
@@ -515,6 +527,7 @@ CONFIG_MII=y
515# CONFIG_NET_VENDOR_3COM is not set 527# CONFIG_NET_VENDOR_3COM is not set
516# CONFIG_SMC91X is not set 528# CONFIG_SMC91X is not set
517# CONFIG_SMC911X is not set 529# CONFIG_SMC911X is not set
530# CONFIG_SMSC911X is not set
518# CONFIG_NET_TULIP is not set 531# CONFIG_NET_TULIP is not set
519# CONFIG_HP100 is not set 532# CONFIG_HP100 is not set
520# CONFIG_IBM_NEW_EMAC_ZMII is not set 533# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -530,7 +543,6 @@ CONFIG_NET_PCI=y
530# CONFIG_ADAPTEC_STARFIRE is not set 543# CONFIG_ADAPTEC_STARFIRE is not set
531# CONFIG_B44 is not set 544# CONFIG_B44 is not set
532# CONFIG_FORCEDETH is not set 545# CONFIG_FORCEDETH is not set
533# CONFIG_EEPRO100 is not set
534# CONFIG_E100 is not set 546# CONFIG_E100 is not set
535# CONFIG_FEALNX is not set 547# CONFIG_FEALNX is not set
536# CONFIG_NATSEMI is not set 548# CONFIG_NATSEMI is not set
@@ -544,6 +556,7 @@ CONFIG_8139TOO_PIO=y
544# CONFIG_R6040 is not set 556# CONFIG_R6040 is not set
545# CONFIG_SIS900 is not set 557# CONFIG_SIS900 is not set
546# CONFIG_EPIC100 is not set 558# CONFIG_EPIC100 is not set
559# CONFIG_SMSC9420 is not set
547# CONFIG_SUNDANCE is not set 560# CONFIG_SUNDANCE is not set
548# CONFIG_TLAN is not set 561# CONFIG_TLAN is not set
549# CONFIG_VIA_RHINE is not set 562# CONFIG_VIA_RHINE is not set
@@ -624,6 +637,7 @@ CONFIG_SERIAL_CORE=y
624CONFIG_SERIAL_CORE_CONSOLE=y 637CONFIG_SERIAL_CORE_CONSOLE=y
625# CONFIG_SERIAL_JSM is not set 638# CONFIG_SERIAL_JSM is not set
626CONFIG_UNIX98_PTYS=y 639CONFIG_UNIX98_PTYS=y
640# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
627CONFIG_LEGACY_PTYS=y 641CONFIG_LEGACY_PTYS=y
628CONFIG_LEGACY_PTY_COUNT=256 642CONFIG_LEGACY_PTY_COUNT=256
629# CONFIG_IPMI_HANDLER is not set 643# CONFIG_IPMI_HANDLER is not set
@@ -641,11 +655,11 @@ CONFIG_DEVPORT=y
641# CONFIG_THERMAL is not set 655# CONFIG_THERMAL is not set
642# CONFIG_THERMAL_HWMON is not set 656# CONFIG_THERMAL_HWMON is not set
643# CONFIG_WATCHDOG is not set 657# CONFIG_WATCHDOG is not set
658CONFIG_SSB_POSSIBLE=y
644 659
645# 660#
646# Sonics Silicon Backplane 661# Sonics Silicon Backplane
647# 662#
648CONFIG_SSB_POSSIBLE=y
649# CONFIG_SSB is not set 663# CONFIG_SSB is not set
650 664
651# 665#
@@ -655,7 +669,7 @@ CONFIG_SSB_POSSIBLE=y
655# CONFIG_MFD_SM501 is not set 669# CONFIG_MFD_SM501 is not set
656# CONFIG_HTC_PASIC3 is not set 670# CONFIG_HTC_PASIC3 is not set
657# CONFIG_MFD_TMIO is not set 671# CONFIG_MFD_TMIO is not set
658# CONFIG_MFD_WM8400 is not set 672# CONFIG_REGULATOR is not set
659 673
660# 674#
661# Multimedia devices 675# Multimedia devices
@@ -689,6 +703,7 @@ CONFIG_SSB_POSSIBLE=y
689# CONFIG_SOUND is not set 703# CONFIG_SOUND is not set
690# CONFIG_HID_SUPPORT is not set 704# CONFIG_HID_SUPPORT is not set
691# CONFIG_USB_SUPPORT is not set 705# CONFIG_USB_SUPPORT is not set
706# CONFIG_UWB is not set
692# CONFIG_MMC is not set 707# CONFIG_MMC is not set
693# CONFIG_MEMSTICK is not set 708# CONFIG_MEMSTICK is not set
694# CONFIG_NEW_LEDS is not set 709# CONFIG_NEW_LEDS is not set
@@ -746,10 +761,7 @@ CONFIG_TMPFS=y
746# CONFIG_HUGETLBFS is not set 761# CONFIG_HUGETLBFS is not set
747# CONFIG_HUGETLB_PAGE is not set 762# CONFIG_HUGETLB_PAGE is not set
748# CONFIG_CONFIGFS_FS is not set 763# CONFIG_CONFIGFS_FS is not set
749 764CONFIG_MISC_FILESYSTEMS=y
750#
751# Miscellaneous filesystems
752#
753# CONFIG_ADFS_FS is not set 765# CONFIG_ADFS_FS is not set
754# CONFIG_AFFS_FS is not set 766# CONFIG_AFFS_FS is not set
755# CONFIG_HFS_FS is not set 767# CONFIG_HFS_FS is not set
@@ -801,13 +813,19 @@ CONFIG_FRAME_WARN=1024
801# CONFIG_DEBUG_MEMORY_INIT is not set 813# CONFIG_DEBUG_MEMORY_INIT is not set
802# CONFIG_RCU_CPU_STALL_DETECTOR is not set 814# CONFIG_RCU_CPU_STALL_DETECTOR is not set
803# CONFIG_LATENCYTOP is not set 815# CONFIG_LATENCYTOP is not set
804CONFIG_NOP_TRACER=y 816CONFIG_HAVE_FUNCTION_TRACER=y
805CONFIG_HAVE_FTRACE=y 817CONFIG_HAVE_DYNAMIC_FTRACE=y
818CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
819
820#
821# Tracers
822#
806# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 823# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
807# CONFIG_SAMPLES is not set 824# CONFIG_SAMPLES is not set
825CONFIG_HAVE_ARCH_KGDB=y
808# CONFIG_SH_STANDARD_BIOS is not set 826# CONFIG_SH_STANDARD_BIOS is not set
809# CONFIG_EARLY_SCIF_CONSOLE is not set 827# CONFIG_EARLY_SCIF_CONSOLE is not set
810# CONFIG_SH_KGDB is not set 828# CONFIG_MORE_COMPILE_OPTIONS is not set
811 829
812# 830#
813# Security options 831# Security options
@@ -822,6 +840,7 @@ CONFIG_HAVE_FTRACE=y
822# Library routines 840# Library routines
823# 841#
824CONFIG_BITREVERSE=y 842CONFIG_BITREVERSE=y
843CONFIG_GENERIC_FIND_LAST_BIT=y
825# CONFIG_CRC_CCITT is not set 844# CONFIG_CRC_CCITT is not set
826# CONFIG_CRC16 is not set 845# CONFIG_CRC16 is not set
827# CONFIG_CRC_T10DIF is not set 846# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/systemh_defconfig b/arch/sh/configs/systemh_defconfig
index 1711f0f70d72..72703bf57afa 100644
--- a/arch/sh/configs/systemh_defconfig
+++ b/arch/sh/configs/systemh_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:56:48 2008 4# Fri Jan 9 18:15:56 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -68,12 +70,10 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 70CONFIG_SHMEM=y
69CONFIG_AIO=y 71CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 72CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_PCI_QUIRKS=y
72CONFIG_SLAB=y 73CONFIG_SLAB=y
73# CONFIG_SLUB is not set 74# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set 75# CONFIG_SLOB is not set
75# CONFIG_PROFILING is not set 76# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set
77CONFIG_HAVE_OPROFILE=y 77CONFIG_HAVE_OPROFILE=y
78# CONFIG_KPROBES is not set 78# CONFIG_KPROBES is not set
79CONFIG_HAVE_IOREMAP_PROT=y 79CONFIG_HAVE_IOREMAP_PROT=y
@@ -84,7 +84,6 @@ CONFIG_HAVE_CLK=y
84CONFIG_HAVE_GENERIC_DMA_COHERENT=y 84CONFIG_HAVE_GENERIC_DMA_COHERENT=y
85CONFIG_SLABINFO=y 85CONFIG_SLABINFO=y
86CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
87# CONFIG_TINY_SHMEM is not set
88CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
89CONFIG_MODULES=y 88CONFIG_MODULES=y
90# CONFIG_MODULE_FORCE_LOAD is not set 89# CONFIG_MODULE_FORCE_LOAD is not set
@@ -92,11 +91,9 @@ CONFIG_MODULE_UNLOAD=y
92# CONFIG_MODULE_FORCE_UNLOAD is not set 91# CONFIG_MODULE_FORCE_UNLOAD is not set
93# CONFIG_MODVERSIONS is not set 92# CONFIG_MODVERSIONS is not set
94# CONFIG_MODULE_SRCVERSION_ALL is not set 93# CONFIG_MODULE_SRCVERSION_ALL is not set
95CONFIG_KMOD=y
96CONFIG_BLOCK=y 94CONFIG_BLOCK=y
97# CONFIG_LBD is not set 95# CONFIG_LBD is not set
98# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
99# CONFIG_LSF is not set
100# CONFIG_BLK_DEV_BSG is not set 97# CONFIG_BLK_DEV_BSG is not set
101# CONFIG_BLK_DEV_INTEGRITY is not set 98# CONFIG_BLK_DEV_INTEGRITY is not set
102 99
@@ -113,6 +110,10 @@ CONFIG_DEFAULT_AS=y
113# CONFIG_DEFAULT_NOOP is not set 110# CONFIG_DEFAULT_NOOP is not set
114CONFIG_DEFAULT_IOSCHED="anticipatory" 111CONFIG_DEFAULT_IOSCHED="anticipatory"
115CONFIG_CLASSIC_RCU=y 112CONFIG_CLASSIC_RCU=y
113# CONFIG_TREE_RCU is not set
114# CONFIG_PREEMPT_RCU is not set
115# CONFIG_TREE_RCU_TRACE is not set
116# CONFIG_PREEMPT_RCU_TRACE is not set
116# CONFIG_FREEZER is not set 117# CONFIG_FREEZER is not set
117 118
118# 119#
@@ -120,6 +121,7 @@ CONFIG_CLASSIC_RCU=y
120# 121#
121CONFIG_CPU_SH4=y 122CONFIG_CPU_SH4=y
122# CONFIG_CPU_SUBTYPE_SH7619 is not set 123# CONFIG_CPU_SUBTYPE_SH7619 is not set
124# CONFIG_CPU_SUBTYPE_SH7201 is not set
123# CONFIG_CPU_SUBTYPE_SH7203 is not set 125# CONFIG_CPU_SUBTYPE_SH7203 is not set
124# CONFIG_CPU_SUBTYPE_SH7206 is not set 126# CONFIG_CPU_SUBTYPE_SH7206 is not set
125# CONFIG_CPU_SUBTYPE_SH7263 is not set 127# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -183,7 +185,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
183CONFIG_SPARSEMEM_STATIC=y 185CONFIG_SPARSEMEM_STATIC=y
184CONFIG_PAGEFLAGS_EXTENDED=y 186CONFIG_PAGEFLAGS_EXTENDED=y
185CONFIG_SPLIT_PTLOCK_CPUS=4 187CONFIG_SPLIT_PTLOCK_CPUS=4
186# CONFIG_RESOURCES_64BIT is not set
187# CONFIG_PHYS_ADDR_T_64BIT is not set 188# CONFIG_PHYS_ADDR_T_64BIT is not set
188CONFIG_ZONE_DMA_FLAG=0 189CONFIG_ZONE_DMA_FLAG=0
189CONFIG_NR_QUICK=2 190CONFIG_NR_QUICK=2
@@ -264,7 +265,6 @@ CONFIG_HZ=250
264# CONFIG_PREEMPT_NONE is not set 265# CONFIG_PREEMPT_NONE is not set
265# CONFIG_PREEMPT_VOLUNTARY is not set 266# CONFIG_PREEMPT_VOLUNTARY is not set
266CONFIG_PREEMPT=y 267CONFIG_PREEMPT=y
267# CONFIG_PREEMPT_RCU is not set
268CONFIG_GUSA=y 268CONFIG_GUSA=y
269# CONFIG_GUSA_RB is not set 269# CONFIG_GUSA_RB is not set
270 270
@@ -288,6 +288,12 @@ CONFIG_BINFMT_ELF=y
288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
289# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
290# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
291# CONFIG_NET is not set 297# CONFIG_NET is not set
292 298
293# 299#
@@ -314,6 +320,7 @@ CONFIG_BLK_DEV_RAM_SIZE=1024
314CONFIG_MISC_DEVICES=y 320CONFIG_MISC_DEVICES=y
315# CONFIG_EEPROM_93CX6 is not set 321# CONFIG_EEPROM_93CX6 is not set
316# CONFIG_ENCLOSURE_SERVICES is not set 322# CONFIG_ENCLOSURE_SERVICES is not set
323# CONFIG_C2PORT is not set
317CONFIG_HAVE_IDE=y 324CONFIG_HAVE_IDE=y
318# CONFIG_IDE is not set 325# CONFIG_IDE is not set
319 326
@@ -360,6 +367,7 @@ CONFIG_DEVKMEM=y
360# 367#
361# CONFIG_SERIAL_SH_SCI is not set 368# CONFIG_SERIAL_SH_SCI is not set
362CONFIG_UNIX98_PTYS=y 369CONFIG_UNIX98_PTYS=y
370# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
363CONFIG_LEGACY_PTYS=y 371CONFIG_LEGACY_PTYS=y
364CONFIG_LEGACY_PTY_COUNT=256 372CONFIG_LEGACY_PTY_COUNT=256
365# CONFIG_IPMI_HANDLER is not set 373# CONFIG_IPMI_HANDLER is not set
@@ -387,11 +395,11 @@ CONFIG_HWMON=y
387# CONFIG_THERMAL is not set 395# CONFIG_THERMAL is not set
388# CONFIG_THERMAL_HWMON is not set 396# CONFIG_THERMAL_HWMON is not set
389# CONFIG_WATCHDOG is not set 397# CONFIG_WATCHDOG is not set
398CONFIG_SSB_POSSIBLE=y
390 399
391# 400#
392# Sonics Silicon Backplane 401# Sonics Silicon Backplane
393# 402#
394CONFIG_SSB_POSSIBLE=y
395# CONFIG_SSB is not set 403# CONFIG_SSB is not set
396 404
397# 405#
@@ -401,7 +409,7 @@ CONFIG_SSB_POSSIBLE=y
401# CONFIG_MFD_SM501 is not set 409# CONFIG_MFD_SM501 is not set
402# CONFIG_HTC_PASIC3 is not set 410# CONFIG_HTC_PASIC3 is not set
403# CONFIG_MFD_TMIO is not set 411# CONFIG_MFD_TMIO is not set
404# CONFIG_MFD_WM8400 is not set 412# CONFIG_REGULATOR is not set
405 413
406# 414#
407# Multimedia devices 415# Multimedia devices
@@ -444,7 +452,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
444# 452#
445 453
446# 454#
447# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 455# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
448# 456#
449# CONFIG_USB_GADGET is not set 457# CONFIG_USB_GADGET is not set
450# CONFIG_MMC is not set 458# CONFIG_MMC is not set
@@ -501,10 +509,7 @@ CONFIG_TMPFS=y
501# CONFIG_HUGETLBFS is not set 509# CONFIG_HUGETLBFS is not set
502# CONFIG_HUGETLB_PAGE is not set 510# CONFIG_HUGETLB_PAGE is not set
503# CONFIG_CONFIGFS_FS is not set 511# CONFIG_CONFIGFS_FS is not set
504 512CONFIG_MISC_FILESYSTEMS=y
505#
506# Miscellaneous filesystems
507#
508# CONFIG_ADFS_FS is not set 513# CONFIG_ADFS_FS is not set
509# CONFIG_AFFS_FS is not set 514# CONFIG_AFFS_FS is not set
510# CONFIG_HFS_FS is not set 515# CONFIG_HFS_FS is not set
@@ -546,13 +551,19 @@ CONFIG_FRAME_WARN=1024
546# CONFIG_DEBUG_MEMORY_INIT is not set 551# CONFIG_DEBUG_MEMORY_INIT is not set
547# CONFIG_RCU_CPU_STALL_DETECTOR is not set 552# CONFIG_RCU_CPU_STALL_DETECTOR is not set
548# CONFIG_LATENCYTOP is not set 553# CONFIG_LATENCYTOP is not set
549CONFIG_NOP_TRACER=y 554CONFIG_HAVE_FUNCTION_TRACER=y
550CONFIG_HAVE_FTRACE=y 555CONFIG_HAVE_DYNAMIC_FTRACE=y
556CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
557
558#
559# Tracers
560#
551# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 561# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
552# CONFIG_SAMPLES is not set 562# CONFIG_SAMPLES is not set
563CONFIG_HAVE_ARCH_KGDB=y
553# CONFIG_SH_STANDARD_BIOS is not set 564# CONFIG_SH_STANDARD_BIOS is not set
554# CONFIG_EARLY_SCIF_CONSOLE is not set 565# CONFIG_EARLY_SCIF_CONSOLE is not set
555# CONFIG_SH_KGDB is not set 566# CONFIG_MORE_COMPILE_OPTIONS is not set
556 567
557# 568#
558# Security options 569# Security options
@@ -567,6 +578,7 @@ CONFIG_HAVE_FTRACE=y
567# Library routines 578# Library routines
568# 579#
569CONFIG_BITREVERSE=y 580CONFIG_BITREVERSE=y
581CONFIG_GENERIC_FIND_LAST_BIT=y
570# CONFIG_CRC_CCITT is not set 582# CONFIG_CRC_CCITT is not set
571# CONFIG_CRC16 is not set 583# CONFIG_CRC16 is not set
572# CONFIG_CRC_T10DIF is not set 584# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig
index ea3c5e838fc3..01fc1defb33b 100644
--- a/arch/sh/configs/titan_defconfig
+++ b/arch/sh/configs/titan_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.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:58:12 2008 4# Fri Jan 9 18:17:19 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -79,7 +81,6 @@ CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 86CONFIG_HAVE_IOREMAP_PROT=y
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98CONFIG_MODULE_FORCE_UNLOAD=y 98CONFIG_MODULE_FORCE_UNLOAD=y
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_DEFAULT_AS=y
119# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +295,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 295CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 296CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 297CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
298# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 299# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 300CONFIG_PCI_LEGACY=y
298# CONFIG_PCI_DEBUG is not set 301# CONFIG_PCI_DEBUG is not set
@@ -309,11 +312,18 @@ CONFIG_BINFMT_ELF=y
309# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 312# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
310# CONFIG_HAVE_AOUT is not set 313# CONFIG_HAVE_AOUT is not set
311# CONFIG_BINFMT_MISC is not set 314# CONFIG_BINFMT_MISC is not set
315
316#
317# Power management options (EXPERIMENTAL)
318#
319# CONFIG_PM is not set
320# CONFIG_CPU_IDLE is not set
312CONFIG_NET=y 321CONFIG_NET=y
313 322
314# 323#
315# Networking options 324# Networking options
316# 325#
326CONFIG_COMPAT_NET_DEV_OPS=y
317CONFIG_PACKET=y 327CONFIG_PACKET=y
318CONFIG_PACKET_MMAP=y 328CONFIG_PACKET_MMAP=y
319CONFIG_UNIX=y 329CONFIG_UNIX=y
@@ -507,6 +517,7 @@ CONFIG_NET_SCH_TBF=m
507CONFIG_NET_SCH_GRED=m 517CONFIG_NET_SCH_GRED=m
508CONFIG_NET_SCH_DSMARK=m 518CONFIG_NET_SCH_DSMARK=m
509CONFIG_NET_SCH_NETEM=m 519CONFIG_NET_SCH_NETEM=m
520# CONFIG_NET_SCH_DRR is not set
510CONFIG_NET_SCH_INGRESS=m 521CONFIG_NET_SCH_INGRESS=m
511 522
512# 523#
@@ -543,6 +554,7 @@ CONFIG_NET_ACT_PEDIT=m
543# CONFIG_NET_ACT_SKBEDIT is not set 554# CONFIG_NET_ACT_SKBEDIT is not set
544CONFIG_NET_CLS_IND=y 555CONFIG_NET_CLS_IND=y
545CONFIG_NET_SCH_FIFO=y 556CONFIG_NET_SCH_FIFO=y
557# CONFIG_DCB is not set
546 558
547# 559#
548# Network testing 560# Network testing
@@ -560,12 +572,8 @@ CONFIG_WIRELESS=y
560# CONFIG_WIRELESS_OLD_REGULATORY is not set 572# CONFIG_WIRELESS_OLD_REGULATORY is not set
561CONFIG_WIRELESS_EXT=y 573CONFIG_WIRELESS_EXT=y
562CONFIG_WIRELESS_EXT_SYSFS=y 574CONFIG_WIRELESS_EXT_SYSFS=y
575# CONFIG_LIB80211 is not set
563# CONFIG_MAC80211 is not set 576# CONFIG_MAC80211 is not set
564CONFIG_IEEE80211=y
565# CONFIG_IEEE80211_DEBUG is not set
566CONFIG_IEEE80211_CRYPT_WEP=y
567CONFIG_IEEE80211_CRYPT_CCMP=y
568CONFIG_IEEE80211_CRYPT_TKIP=y
569# CONFIG_RFKILL is not set 577# CONFIG_RFKILL is not set
570# CONFIG_NET_9P is not set 578# CONFIG_NET_9P is not set
571 579
@@ -695,6 +703,7 @@ CONFIG_MISC_DEVICES=y
695# CONFIG_TIFM_CORE is not set 703# CONFIG_TIFM_CORE is not set
696# CONFIG_ENCLOSURE_SERVICES is not set 704# CONFIG_ENCLOSURE_SERVICES is not set
697# CONFIG_HP_ILO is not set 705# CONFIG_HP_ILO is not set
706# CONFIG_C2PORT is not set
698CONFIG_HAVE_IDE=y 707CONFIG_HAVE_IDE=y
699# CONFIG_IDE is not set 708# CONFIG_IDE is not set
700 709
@@ -738,6 +747,7 @@ CONFIG_SCSI_WAIT_SCAN=m
738# CONFIG_SCSI_SRP_ATTRS is not set 747# CONFIG_SCSI_SRP_ATTRS is not set
739CONFIG_SCSI_LOWLEVEL=y 748CONFIG_SCSI_LOWLEVEL=y
740# CONFIG_ISCSI_TCP is not set 749# CONFIG_ISCSI_TCP is not set
750# CONFIG_SCSI_CXGB3_ISCSI is not set
741# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 751# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
742# CONFIG_SCSI_3W_9XXX is not set 752# CONFIG_SCSI_3W_9XXX is not set
743# CONFIG_SCSI_ACARD is not set 753# CONFIG_SCSI_ACARD is not set
@@ -751,6 +761,8 @@ CONFIG_SCSI_LOWLEVEL=y
751# CONFIG_MEGARAID_LEGACY is not set 761# CONFIG_MEGARAID_LEGACY is not set
752# CONFIG_MEGARAID_SAS is not set 762# CONFIG_MEGARAID_SAS is not set
753# CONFIG_SCSI_HPTIOP is not set 763# CONFIG_SCSI_HPTIOP is not set
764# CONFIG_LIBFC is not set
765# CONFIG_FCOE is not set
754# CONFIG_SCSI_DMX3191D is not set 766# CONFIG_SCSI_DMX3191D is not set
755# CONFIG_SCSI_FUTURE_DOMAIN is not set 767# CONFIG_SCSI_FUTURE_DOMAIN is not set
756# CONFIG_SCSI_IPS is not set 768# CONFIG_SCSI_IPS is not set
@@ -807,6 +819,9 @@ CONFIG_CICADA_PHY=m
807# CONFIG_BROADCOM_PHY is not set 819# CONFIG_BROADCOM_PHY is not set
808# CONFIG_ICPLUS_PHY is not set 820# CONFIG_ICPLUS_PHY is not set
809# CONFIG_REALTEK_PHY is not set 821# CONFIG_REALTEK_PHY is not set
822# CONFIG_NATIONAL_PHY is not set
823# CONFIG_STE10XP is not set
824# CONFIG_LSI_ET1011C_PHY is not set
810# CONFIG_MDIO_BITBANG is not set 825# CONFIG_MDIO_BITBANG is not set
811CONFIG_NET_ETHERNET=y 826CONFIG_NET_ETHERNET=y
812CONFIG_MII=y 827CONFIG_MII=y
@@ -818,6 +833,7 @@ CONFIG_MII=y
818# CONFIG_NET_VENDOR_3COM is not set 833# CONFIG_NET_VENDOR_3COM is not set
819# CONFIG_SMC91X is not set 834# CONFIG_SMC91X is not set
820# CONFIG_SMC911X is not set 835# CONFIG_SMC911X is not set
836# CONFIG_SMSC911X is not set
821# CONFIG_NET_TULIP is not set 837# CONFIG_NET_TULIP is not set
822# CONFIG_HP100 is not set 838# CONFIG_HP100 is not set
823# CONFIG_IBM_NEW_EMAC_ZMII is not set 839# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -833,7 +849,6 @@ CONFIG_NET_PCI=y
833# CONFIG_ADAPTEC_STARFIRE is not set 849# CONFIG_ADAPTEC_STARFIRE is not set
834# CONFIG_B44 is not set 850# CONFIG_B44 is not set
835# CONFIG_FORCEDETH is not set 851# CONFIG_FORCEDETH is not set
836# CONFIG_EEPRO100 is not set
837# CONFIG_E100 is not set 852# CONFIG_E100 is not set
838# CONFIG_FEALNX is not set 853# CONFIG_FEALNX is not set
839# CONFIG_NATSEMI is not set 854# CONFIG_NATSEMI is not set
@@ -847,6 +862,7 @@ CONFIG_8139_OLD_RX_RESET=y
847# CONFIG_R6040 is not set 862# CONFIG_R6040 is not set
848# CONFIG_SIS900 is not set 863# CONFIG_SIS900 is not set
849# CONFIG_EPIC100 is not set 864# CONFIG_EPIC100 is not set
865# CONFIG_SMSC9420 is not set
850# CONFIG_SUNDANCE is not set 866# CONFIG_SUNDANCE is not set
851# CONFIG_TLAN is not set 867# CONFIG_TLAN is not set
852# CONFIG_VIA_RHINE is not set 868# CONFIG_VIA_RHINE is not set
@@ -875,6 +891,7 @@ CONFIG_NETDEV_1000=y
875# CONFIG_JME is not set 891# CONFIG_JME is not set
876CONFIG_NETDEV_10000=y 892CONFIG_NETDEV_10000=y
877# CONFIG_CHELSIO_T1 is not set 893# CONFIG_CHELSIO_T1 is not set
894CONFIG_CHELSIO_T3_DEPENDS=y
878# CONFIG_CHELSIO_T3 is not set 895# CONFIG_CHELSIO_T3 is not set
879# CONFIG_ENIC is not set 896# CONFIG_ENIC is not set
880# CONFIG_IXGBE is not set 897# CONFIG_IXGBE is not set
@@ -883,6 +900,7 @@ CONFIG_NETDEV_10000=y
883# CONFIG_MYRI10GE is not set 900# CONFIG_MYRI10GE is not set
884# CONFIG_NETXEN_NIC is not set 901# CONFIG_NETXEN_NIC is not set
885# CONFIG_NIU is not set 902# CONFIG_NIU is not set
903# CONFIG_MLX4_EN is not set
886# CONFIG_MLX4_CORE is not set 904# CONFIG_MLX4_CORE is not set
887# CONFIG_TEHUTI is not set 905# CONFIG_TEHUTI is not set
888# CONFIG_BNX2X is not set 906# CONFIG_BNX2X is not set
@@ -1002,6 +1020,7 @@ CONFIG_SERIAL_CORE=y
1002CONFIG_SERIAL_CORE_CONSOLE=y 1020CONFIG_SERIAL_CORE_CONSOLE=y
1003# CONFIG_SERIAL_JSM is not set 1021# CONFIG_SERIAL_JSM is not set
1004CONFIG_UNIX98_PTYS=y 1022CONFIG_UNIX98_PTYS=y
1023# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1005CONFIG_LEGACY_PTYS=y 1024CONFIG_LEGACY_PTYS=y
1006CONFIG_LEGACY_PTY_COUNT=256 1025CONFIG_LEGACY_PTY_COUNT=256
1007# CONFIG_IPMI_HANDLER is not set 1026# CONFIG_IPMI_HANDLER is not set
@@ -1055,11 +1074,11 @@ CONFIG_SH_WDT=m
1055# USB-based Watchdog Cards 1074# USB-based Watchdog Cards
1056# 1075#
1057# CONFIG_USBPCWATCHDOG is not set 1076# CONFIG_USBPCWATCHDOG is not set
1077CONFIG_SSB_POSSIBLE=y
1058 1078
1059# 1079#
1060# Sonics Silicon Backplane 1080# Sonics Silicon Backplane
1061# 1081#
1062CONFIG_SSB_POSSIBLE=y
1063# CONFIG_SSB is not set 1082# CONFIG_SSB is not set
1064 1083
1065# 1084#
@@ -1069,7 +1088,7 @@ CONFIG_SSB_POSSIBLE=y
1069# CONFIG_MFD_SM501 is not set 1088# CONFIG_MFD_SM501 is not set
1070# CONFIG_HTC_PASIC3 is not set 1089# CONFIG_HTC_PASIC3 is not set
1071# CONFIG_MFD_TMIO is not set 1090# CONFIG_MFD_TMIO is not set
1072# CONFIG_MFD_WM8400 is not set 1091# CONFIG_REGULATOR is not set
1073 1092
1074# 1093#
1075# Multimedia devices 1094# Multimedia devices
@@ -1145,6 +1164,8 @@ CONFIG_USB_DEVICE_CLASS=y
1145# CONFIG_USB_OTG_WHITELIST is not set 1164# CONFIG_USB_OTG_WHITELIST is not set
1146# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1165# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1147CONFIG_USB_MON=y 1166CONFIG_USB_MON=y
1167# CONFIG_USB_WUSB is not set
1168# CONFIG_USB_WUSB_CBAF is not set
1148 1169
1149# 1170#
1150# USB Host Controller Drivers 1171# USB Host Controller Drivers
@@ -1162,6 +1183,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1162# CONFIG_USB_UHCI_HCD is not set 1183# CONFIG_USB_UHCI_HCD is not set
1163# CONFIG_USB_SL811_HCD is not set 1184# CONFIG_USB_SL811_HCD is not set
1164# CONFIG_USB_R8A66597_HCD is not set 1185# CONFIG_USB_R8A66597_HCD is not set
1186# CONFIG_USB_WHCI_HCD is not set
1187# CONFIG_USB_HWA_HCD is not set
1165 1188
1166# 1189#
1167# USB Device Class drivers 1190# USB Device Class drivers
@@ -1172,11 +1195,11 @@ CONFIG_USB_PRINTER=m
1172# CONFIG_USB_TMC is not set 1195# CONFIG_USB_TMC is not set
1173 1196
1174# 1197#
1175# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1198# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1176# 1199#
1177 1200
1178# 1201#
1179# may also be needed; see USB_STORAGE Help for more information 1202# see USB_STORAGE Help for more information
1180# 1203#
1181CONFIG_USB_STORAGE=y 1204CONFIG_USB_STORAGE=y
1182# CONFIG_USB_STORAGE_DEBUG is not set 1205# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1273,6 +1296,7 @@ CONFIG_USB_SERIAL_PL2303=m
1273# CONFIG_USB_ISIGHTFW is not set 1296# CONFIG_USB_ISIGHTFW is not set
1274# CONFIG_USB_VST is not set 1297# CONFIG_USB_VST is not set
1275# CONFIG_USB_GADGET is not set 1298# CONFIG_USB_GADGET is not set
1299# CONFIG_UWB is not set
1276# CONFIG_MMC is not set 1300# CONFIG_MMC is not set
1277# CONFIG_MEMSTICK is not set 1301# CONFIG_MEMSTICK is not set
1278# CONFIG_NEW_LEDS is not set 1302# CONFIG_NEW_LEDS is not set
@@ -1379,10 +1403,7 @@ CONFIG_TMPFS=y
1379# CONFIG_HUGETLBFS is not set 1403# CONFIG_HUGETLBFS is not set
1380# CONFIG_HUGETLB_PAGE is not set 1404# CONFIG_HUGETLB_PAGE is not set
1381CONFIG_CONFIGFS_FS=m 1405CONFIG_CONFIGFS_FS=m
1382 1406CONFIG_MISC_FILESYSTEMS=y
1383#
1384# Miscellaneous filesystems
1385#
1386# CONFIG_ADFS_FS is not set 1407# CONFIG_ADFS_FS is not set
1387# CONFIG_AFFS_FS is not set 1408# CONFIG_AFFS_FS is not set
1388# CONFIG_HFS_FS is not set 1409# CONFIG_HFS_FS is not set
@@ -1530,6 +1551,7 @@ CONFIG_SCHED_DEBUG=y
1530# CONFIG_DEBUG_MEMORY_INIT is not set 1551# CONFIG_DEBUG_MEMORY_INIT is not set
1531# CONFIG_DEBUG_LIST is not set 1552# CONFIG_DEBUG_LIST is not set
1532# CONFIG_DEBUG_SG is not set 1553# CONFIG_DEBUG_SG is not set
1554# CONFIG_DEBUG_NOTIFIERS is not set
1533# CONFIG_FRAME_POINTER is not set 1555# CONFIG_FRAME_POINTER is not set
1534# CONFIG_RCU_TORTURE_TEST is not set 1556# CONFIG_RCU_TORTURE_TEST is not set
1535# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1557# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1537,16 +1559,24 @@ CONFIG_SCHED_DEBUG=y
1537# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1559# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1538# CONFIG_FAULT_INJECTION is not set 1560# CONFIG_FAULT_INJECTION is not set
1539# CONFIG_LATENCYTOP is not set 1561# CONFIG_LATENCYTOP is not set
1540CONFIG_NOP_TRACER=y 1562CONFIG_HAVE_FUNCTION_TRACER=y
1541CONFIG_HAVE_FTRACE=y 1563CONFIG_HAVE_DYNAMIC_FTRACE=y
1542# CONFIG_FTRACE is not set 1564CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1565
1566#
1567# Tracers
1568#
1569# CONFIG_FUNCTION_TRACER is not set
1543# CONFIG_IRQSOFF_TRACER is not set 1570# CONFIG_IRQSOFF_TRACER is not set
1544# CONFIG_SCHED_TRACER is not set 1571# CONFIG_SCHED_TRACER is not set
1545# CONFIG_CONTEXT_SWITCH_TRACER is not set 1572# CONFIG_CONTEXT_SWITCH_TRACER is not set
1546# CONFIG_BOOT_TRACER is not set 1573# CONFIG_BOOT_TRACER is not set
1574# CONFIG_TRACE_BRANCH_PROFILING is not set
1547# CONFIG_STACK_TRACER is not set 1575# CONFIG_STACK_TRACER is not set
1548# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1576# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1549# CONFIG_SAMPLES is not set 1577# CONFIG_SAMPLES is not set
1578CONFIG_HAVE_ARCH_KGDB=y
1579# CONFIG_KGDB is not set
1550# CONFIG_SH_STANDARD_BIOS is not set 1580# CONFIG_SH_STANDARD_BIOS is not set
1551# CONFIG_EARLY_SCIF_CONSOLE is not set 1581# CONFIG_EARLY_SCIF_CONSOLE is not set
1552# CONFIG_DEBUG_BOOTMEM is not set 1582# CONFIG_DEBUG_BOOTMEM is not set
@@ -1554,7 +1584,9 @@ CONFIG_HAVE_FTRACE=y
1554# CONFIG_DEBUG_STACK_USAGE is not set 1584# CONFIG_DEBUG_STACK_USAGE is not set
1555# CONFIG_4KSTACKS is not set 1585# CONFIG_4KSTACKS is not set
1556# CONFIG_IRQSTACKS is not set 1586# CONFIG_IRQSTACKS is not set
1557# CONFIG_SH_KGDB is not set 1587# CONFIG_DUMP_CODE is not set
1588# CONFIG_SH_NO_BSS_INIT is not set
1589# CONFIG_MORE_COMPILE_OPTIONS is not set
1558 1590
1559# 1591#
1560# Security options 1592# Security options
@@ -1570,11 +1602,16 @@ CONFIG_CRYPTO=y
1570# 1602#
1571# CONFIG_CRYPTO_FIPS is not set 1603# CONFIG_CRYPTO_FIPS is not set
1572CONFIG_CRYPTO_ALGAPI=y 1604CONFIG_CRYPTO_ALGAPI=y
1605CONFIG_CRYPTO_ALGAPI2=y
1573CONFIG_CRYPTO_AEAD=y 1606CONFIG_CRYPTO_AEAD=y
1607CONFIG_CRYPTO_AEAD2=y
1574CONFIG_CRYPTO_BLKCIPHER=y 1608CONFIG_CRYPTO_BLKCIPHER=y
1609CONFIG_CRYPTO_BLKCIPHER2=y
1575CONFIG_CRYPTO_HASH=y 1610CONFIG_CRYPTO_HASH=y
1576CONFIG_CRYPTO_RNG=y 1611CONFIG_CRYPTO_HASH2=y
1612CONFIG_CRYPTO_RNG2=y
1577CONFIG_CRYPTO_MANAGER=y 1613CONFIG_CRYPTO_MANAGER=y
1614CONFIG_CRYPTO_MANAGER2=y
1578# CONFIG_CRYPTO_GF128MUL is not set 1615# CONFIG_CRYPTO_GF128MUL is not set
1579CONFIG_CRYPTO_NULL=m 1616CONFIG_CRYPTO_NULL=m
1580# CONFIG_CRYPTO_CRYPTD is not set 1617# CONFIG_CRYPTO_CRYPTD is not set
@@ -1659,6 +1696,7 @@ CONFIG_CRYPTO_HW=y
1659# Library routines 1696# Library routines
1660# 1697#
1661CONFIG_BITREVERSE=y 1698CONFIG_BITREVERSE=y
1699CONFIG_GENERIC_FIND_LAST_BIT=y
1662CONFIG_CRC_CCITT=m 1700CONFIG_CRC_CCITT=m
1663CONFIG_CRC16=m 1701CONFIG_CRC16=m
1664# CONFIG_CRC_T10DIF is not set 1702# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/ul2_defconfig b/arch/sh/configs/ul2_defconfig
index 9afff67d9ff2..27f968a959f8 100644
--- a/arch/sh/configs/ul2_defconfig
+++ b/arch/sh/configs/ul2_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.28-rc2 3# Linux kernel version: 2.6.28
4# Tue Oct 28 17:35:17 2008 4# Fri Jan 9 18:22:53 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -80,7 +82,6 @@ CONFIG_SLUB_DEBUG=y
80CONFIG_SLUB=y 82CONFIG_SLUB=y
81# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
82CONFIG_PROFILING=y 84CONFIG_PROFILING=y
83# CONFIG_MARKERS is not set
84# CONFIG_OPROFILE is not set 85# CONFIG_OPROFILE is not set
85CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
@@ -92,7 +93,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 97CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
100# CONFIG_MODULE_FORCE_UNLOAD is not set 100# CONFIG_MODULE_FORCE_UNLOAD is not set
101# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 103CONFIG_BLOCK=y
105# CONFIG_LBD is not set 104# CONFIG_LBD is not set
106# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
110 108
@@ -121,6 +119,10 @@ CONFIG_IOSCHED_NOOP=y
121CONFIG_DEFAULT_NOOP=y 119CONFIG_DEFAULT_NOOP=y
122CONFIG_DEFAULT_IOSCHED="noop" 120CONFIG_DEFAULT_IOSCHED="noop"
123CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
125 127
126# 128#
@@ -131,6 +133,7 @@ CONFIG_CPU_SH4A=y
131CONFIG_CPU_SH4AL_DSP=y 133CONFIG_CPU_SH4AL_DSP=y
132CONFIG_CPU_SHX2=y 134CONFIG_CPU_SHX2=y
133# CONFIG_CPU_SUBTYPE_SH7619 is not set 135# CONFIG_CPU_SUBTYPE_SH7619 is not set
136# CONFIG_CPU_SUBTYPE_SH7201 is not set
134# CONFIG_CPU_SUBTYPE_SH7203 is not set 137# CONFIG_CPU_SUBTYPE_SH7203 is not set
135# CONFIG_CPU_SUBTYPE_SH7206 is not set 138# CONFIG_CPU_SUBTYPE_SH7206 is not set
136# CONFIG_CPU_SUBTYPE_SH7263 is not set 139# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -206,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
206# CONFIG_MEMORY_HOTPLUG is not set 209# CONFIG_MEMORY_HOTPLUG is not set
207CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
208# CONFIG_MIGRATION is not set 211# CONFIG_MIGRATION is not set
209# CONFIG_RESOURCES_64BIT is not set
210# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
212CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -283,7 +285,6 @@ CONFIG_KEXEC=y
283# CONFIG_PREEMPT_NONE is not set 285# CONFIG_PREEMPT_NONE is not set
284# CONFIG_PREEMPT_VOLUNTARY is not set 286# CONFIG_PREEMPT_VOLUNTARY is not set
285CONFIG_PREEMPT=y 287CONFIG_PREEMPT=y
286# CONFIG_PREEMPT_RCU is not set
287CONFIG_GUSA=y 288CONFIG_GUSA=y
288 289
289# 290#
@@ -307,11 +308,18 @@ CONFIG_BINFMT_ELF=y
307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
308# CONFIG_HAVE_AOUT is not set 309# CONFIG_HAVE_AOUT is not set
309# CONFIG_BINFMT_MISC is not set 310# CONFIG_BINFMT_MISC is not set
311
312#
313# Power management options (EXPERIMENTAL)
314#
315# CONFIG_PM is not set
316# CONFIG_CPU_IDLE is not set
310CONFIG_NET=y 317CONFIG_NET=y
311 318
312# 319#
313# Networking options 320# Networking options
314# 321#
322CONFIG_COMPAT_NET_DEV_OPS=y
315CONFIG_PACKET=y 323CONFIG_PACKET=y
316CONFIG_PACKET_MMAP=y 324CONFIG_PACKET_MMAP=y
317CONFIG_UNIX=y 325CONFIG_UNIX=y
@@ -367,6 +375,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
367# CONFIG_ECONET is not set 375# CONFIG_ECONET is not set
368# CONFIG_WAN_ROUTER is not set 376# CONFIG_WAN_ROUTER is not set
369# CONFIG_NET_SCHED is not set 377# CONFIG_NET_SCHED is not set
378# CONFIG_DCB is not set
370 379
371# 380#
372# Network testing 381# Network testing
@@ -380,10 +389,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
380# CONFIG_PHONET is not set 389# CONFIG_PHONET is not set
381CONFIG_WIRELESS=y 390CONFIG_WIRELESS=y
382CONFIG_CFG80211=y 391CONFIG_CFG80211=y
392# CONFIG_CFG80211_REG_DEBUG is not set
383CONFIG_NL80211=y 393CONFIG_NL80211=y
384# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
385CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
386CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397CONFIG_LIB80211=m
387CONFIG_MAC80211=y 398CONFIG_MAC80211=y
388 399
389# 400#
@@ -397,11 +408,6 @@ CONFIG_MAC80211_RC_DEFAULT="pid"
397# CONFIG_MAC80211_MESH is not set 408# CONFIG_MAC80211_MESH is not set
398# CONFIG_MAC80211_LEDS is not set 409# CONFIG_MAC80211_LEDS is not set
399# CONFIG_MAC80211_DEBUG_MENU is not set 410# CONFIG_MAC80211_DEBUG_MENU is not set
400CONFIG_IEEE80211=m
401CONFIG_IEEE80211_DEBUG=y
402CONFIG_IEEE80211_CRYPT_WEP=m
403CONFIG_IEEE80211_CRYPT_CCMP=m
404CONFIG_IEEE80211_CRYPT_TKIP=m
405# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
406# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
407 413
@@ -510,6 +516,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
510CONFIG_MISC_DEVICES=y 516CONFIG_MISC_DEVICES=y
511# CONFIG_EEPROM_93CX6 is not set 517# CONFIG_EEPROM_93CX6 is not set
512# CONFIG_ENCLOSURE_SERVICES is not set 518# CONFIG_ENCLOSURE_SERVICES is not set
519# CONFIG_C2PORT is not set
513CONFIG_HAVE_IDE=y 520CONFIG_HAVE_IDE=y
514# CONFIG_IDE is not set 521# CONFIG_IDE is not set
515 522
@@ -552,6 +559,7 @@ CONFIG_SCSI_WAIT_SCAN=m
552# CONFIG_SCSI_SRP_ATTRS is not set 559# CONFIG_SCSI_SRP_ATTRS is not set
553CONFIG_SCSI_LOWLEVEL=y 560CONFIG_SCSI_LOWLEVEL=y
554# CONFIG_ISCSI_TCP is not set 561# CONFIG_ISCSI_TCP is not set
562# CONFIG_LIBFC is not set
555# CONFIG_SCSI_DEBUG is not set 563# CONFIG_SCSI_DEBUG is not set
556# CONFIG_SCSI_DH is not set 564# CONFIG_SCSI_DH is not set
557CONFIG_ATA=y 565CONFIG_ATA=y
@@ -575,6 +583,7 @@ CONFIG_MII=y
575# CONFIG_STNIC is not set 583# CONFIG_STNIC is not set
576# CONFIG_SMC91X is not set 584# CONFIG_SMC91X is not set
577# CONFIG_SMC911X is not set 585# CONFIG_SMC911X is not set
586# CONFIG_SMSC911X is not set
578# CONFIG_IBM_NEW_EMAC_ZMII is not set 587# CONFIG_IBM_NEW_EMAC_ZMII is not set
579# CONFIG_IBM_NEW_EMAC_RGMII is not set 588# CONFIG_IBM_NEW_EMAC_RGMII is not set
580# CONFIG_IBM_NEW_EMAC_TAH is not set 589# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -714,11 +723,11 @@ CONFIG_HWMON=y
714# CONFIG_THERMAL is not set 723# CONFIG_THERMAL is not set
715# CONFIG_THERMAL_HWMON is not set 724# CONFIG_THERMAL_HWMON is not set
716# CONFIG_WATCHDOG is not set 725# CONFIG_WATCHDOG is not set
726CONFIG_SSB_POSSIBLE=y
717 727
718# 728#
719# Sonics Silicon Backplane 729# Sonics Silicon Backplane
720# 730#
721CONFIG_SSB_POSSIBLE=y
722# CONFIG_SSB is not set 731# CONFIG_SSB is not set
723 732
724# 733#
@@ -728,6 +737,7 @@ CONFIG_SSB_POSSIBLE=y
728# CONFIG_MFD_SM501 is not set 737# CONFIG_MFD_SM501 is not set
729# CONFIG_HTC_PASIC3 is not set 738# CONFIG_HTC_PASIC3 is not set
730# CONFIG_MFD_TMIO is not set 739# CONFIG_MFD_TMIO is not set
740# CONFIG_REGULATOR is not set
731 741
732# 742#
733# Multimedia devices 743# Multimedia devices
@@ -785,7 +795,6 @@ CONFIG_USB_MON=y
785# 795#
786# CONFIG_USB_C67X00_HCD is not set 796# CONFIG_USB_C67X00_HCD is not set
787# CONFIG_USB_ISP116X_HCD is not set 797# CONFIG_USB_ISP116X_HCD is not set
788# CONFIG_USB_ISP1760_HCD is not set
789# CONFIG_USB_SL811_HCD is not set 798# CONFIG_USB_SL811_HCD is not set
790CONFIG_USB_R8A66597_HCD=y 799CONFIG_USB_R8A66597_HCD=y
791# CONFIG_SUPERH_ON_CHIP_R8A66597 is not set 800# CONFIG_SUPERH_ON_CHIP_R8A66597 is not set
@@ -800,11 +809,11 @@ CONFIG_USB_R8A66597_HCD=y
800# CONFIG_USB_TMC is not set 809# CONFIG_USB_TMC is not set
801 810
802# 811#
803# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 812# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
804# 813#
805 814
806# 815#
807# may also be needed; see USB_STORAGE Help for more information 816# see USB_STORAGE Help for more information
808# 817#
809CONFIG_USB_STORAGE=y 818CONFIG_USB_STORAGE=y
810# CONFIG_USB_STORAGE_DEBUG is not set 819# CONFIG_USB_STORAGE_DEBUG is not set
@@ -937,10 +946,7 @@ CONFIG_TMPFS=y
937CONFIG_HUGETLBFS=y 946CONFIG_HUGETLBFS=y
938CONFIG_HUGETLB_PAGE=y 947CONFIG_HUGETLB_PAGE=y
939# CONFIG_CONFIGFS_FS is not set 948# CONFIG_CONFIGFS_FS is not set
940 949CONFIG_MISC_FILESYSTEMS=y
941#
942# Miscellaneous filesystems
943#
944# CONFIG_ADFS_FS is not set 950# CONFIG_ADFS_FS is not set
945# CONFIG_AFFS_FS is not set 951# CONFIG_AFFS_FS is not set
946# CONFIG_HFS_FS is not set 952# CONFIG_HFS_FS is not set
@@ -1046,13 +1052,19 @@ CONFIG_FRAME_WARN=1024
1046# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1052# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1047# CONFIG_LATENCYTOP is not set 1053# CONFIG_LATENCYTOP is not set
1048# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1054# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1049CONFIG_NOP_TRACER=y 1055CONFIG_HAVE_FUNCTION_TRACER=y
1050CONFIG_HAVE_FTRACE=y 1056CONFIG_HAVE_DYNAMIC_FTRACE=y
1057CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1058
1059#
1060# Tracers
1061#
1051# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1062# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1052# CONFIG_SAMPLES is not set 1063# CONFIG_SAMPLES is not set
1064CONFIG_HAVE_ARCH_KGDB=y
1053# CONFIG_SH_STANDARD_BIOS is not set 1065# CONFIG_SH_STANDARD_BIOS is not set
1054# CONFIG_EARLY_SCIF_CONSOLE is not set 1066# CONFIG_EARLY_SCIF_CONSOLE is not set
1055# CONFIG_SH_KGDB is not set 1067# CONFIG_MORE_COMPILE_OPTIONS is not set
1056 1068
1057# 1069#
1058# Security options 1070# Security options
@@ -1068,11 +1080,15 @@ CONFIG_CRYPTO=y
1068# 1080#
1069# CONFIG_CRYPTO_FIPS is not set 1081# CONFIG_CRYPTO_FIPS is not set
1070CONFIG_CRYPTO_ALGAPI=y 1082CONFIG_CRYPTO_ALGAPI=y
1071CONFIG_CRYPTO_AEAD=y 1083CONFIG_CRYPTO_ALGAPI2=y
1084CONFIG_CRYPTO_AEAD2=y
1072CONFIG_CRYPTO_BLKCIPHER=y 1085CONFIG_CRYPTO_BLKCIPHER=y
1086CONFIG_CRYPTO_BLKCIPHER2=y
1073CONFIG_CRYPTO_HASH=y 1087CONFIG_CRYPTO_HASH=y
1074CONFIG_CRYPTO_RNG=y 1088CONFIG_CRYPTO_HASH2=y
1089CONFIG_CRYPTO_RNG2=y
1075CONFIG_CRYPTO_MANAGER=y 1090CONFIG_CRYPTO_MANAGER=y
1091CONFIG_CRYPTO_MANAGER2=y
1076# CONFIG_CRYPTO_GF128MUL is not set 1092# CONFIG_CRYPTO_GF128MUL is not set
1077# CONFIG_CRYPTO_NULL is not set 1093# CONFIG_CRYPTO_NULL is not set
1078# CONFIG_CRYPTO_CRYPTD is not set 1094# CONFIG_CRYPTO_CRYPTD is not set
@@ -1155,6 +1171,7 @@ CONFIG_CRYPTO_HW=y
1155# Library routines 1171# Library routines
1156# 1172#
1157CONFIG_BITREVERSE=y 1173CONFIG_BITREVERSE=y
1174CONFIG_GENERIC_FIND_LAST_BIT=y
1158# CONFIG_CRC_CCITT is not set 1175# CONFIG_CRC_CCITT is not set
1159# CONFIG_CRC16 is not set 1176# CONFIG_CRC16 is not set
1160# CONFIG_CRC_T10DIF is not set 1177# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/include/asm/Kbuild b/arch/sh/include/asm/Kbuild
index f1a2a0d1c79c..43910cdf78a5 100644
--- a/arch/sh/include/asm/Kbuild
+++ b/arch/sh/include/asm/Kbuild
@@ -6,4 +6,3 @@ unifdef-y += unistd_32.h
6unifdef-y += unistd_64.h 6unifdef-y += unistd_64.h
7unifdef-y += posix_types_32.h 7unifdef-y += posix_types_32.h
8unifdef-y += posix_types_64.h 8unifdef-y += posix_types_64.h
9unifdef-y += swab.h
diff --git a/arch/sh/include/asm/byteorder.h b/arch/sh/include/asm/byteorder.h
index e95c41a5c8cc..db2f5d7cb17d 100644
--- a/arch/sh/include/asm/byteorder.h
+++ b/arch/sh/include/asm/byteorder.h
@@ -1,8 +1,6 @@
1#ifndef __ASM_SH_BYTEORDER_H 1#ifndef __ASM_SH_BYTEORDER_H
2#define __ASM_SH_BYTEORDER_H 2#define __ASM_SH_BYTEORDER_H
3 3
4#include <asm/swab.h>
5
6#ifdef __LITTLE_ENDIAN__ 4#ifdef __LITTLE_ENDIAN__
7#include <linux/byteorder/little_endian.h> 5#include <linux/byteorder/little_endian.h>
8#else 6#else
diff --git a/arch/sh/include/asm/mutex-llsc.h b/arch/sh/include/asm/mutex-llsc.h
index ee839ee58ac8..090358a7e1bb 100644
--- a/arch/sh/include/asm/mutex-llsc.h
+++ b/arch/sh/include/asm/mutex-llsc.h
@@ -21,38 +21,36 @@
21static inline void 21static inline void
22__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *)) 22__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *))
23{ 23{
24 int __ex_flag, __res; 24 int __done, __res;
25 25
26 __asm__ __volatile__ ( 26 __asm__ __volatile__ (
27 "movli.l @%2, %0 \n" 27 "movli.l @%2, %0 \n"
28 "add #-1, %0 \n" 28 "add #-1, %0 \n"
29 "movco.l %0, @%2 \n" 29 "movco.l %0, @%2 \n"
30 "movt %1 \n" 30 "movt %1 \n"
31 : "=&z" (__res), "=&r" (__ex_flag) 31 : "=&z" (__res), "=&r" (__done)
32 : "r" (&(count)->counter) 32 : "r" (&(count)->counter)
33 : "t"); 33 : "t");
34 34
35 __res |= !__ex_flag; 35 if (unlikely(!__done || __res != 0))
36 if (unlikely(__res != 0))
37 fail_fn(count); 36 fail_fn(count);
38} 37}
39 38
40static inline int 39static inline int
41__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *)) 40__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
42{ 41{
43 int __ex_flag, __res; 42 int __done, __res;
44 43
45 __asm__ __volatile__ ( 44 __asm__ __volatile__ (
46 "movli.l @%2, %0 \n" 45 "movli.l @%2, %0 \n"
47 "add #-1, %0 \n" 46 "add #-1, %0 \n"
48 "movco.l %0, @%2 \n" 47 "movco.l %0, @%2 \n"
49 "movt %1 \n" 48 "movt %1 \n"
50 : "=&z" (__res), "=&r" (__ex_flag) 49 : "=&z" (__res), "=&r" (__done)
51 : "r" (&(count)->counter) 50 : "r" (&(count)->counter)
52 : "t"); 51 : "t");
53 52
54 __res |= !__ex_flag; 53 if (unlikely(!__done || __res != 0))
55 if (unlikely(__res != 0))
56 __res = fail_fn(count); 54 __res = fail_fn(count);
57 55
58 return __res; 56 return __res;
@@ -61,19 +59,18 @@ __mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
61static inline void 59static inline void
62__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *)) 60__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *))
63{ 61{
64 int __ex_flag, __res; 62 int __done, __res;
65 63
66 __asm__ __volatile__ ( 64 __asm__ __volatile__ (
67 "movli.l @%2, %0 \n\t" 65 "movli.l @%2, %0 \n\t"
68 "add #1, %0 \n\t" 66 "add #1, %0 \n\t"
69 "movco.l %0, @%2 \n\t" 67 "movco.l %0, @%2 \n\t"
70 "movt %1 \n\t" 68 "movt %1 \n\t"
71 : "=&z" (__res), "=&r" (__ex_flag) 69 : "=&z" (__res), "=&r" (__done)
72 : "r" (&(count)->counter) 70 : "r" (&(count)->counter)
73 : "t"); 71 : "t");
74 72
75 __res |= !__ex_flag; 73 if (unlikely(!__done || __res <= 0))
76 if (unlikely(__res <= 0))
77 fail_fn(count); 74 fail_fn(count);
78} 75}
79 76
diff --git a/arch/sh/include/asm/posix_types_32.h b/arch/sh/include/asm/posix_types_32.h
index 0a3d2f54ab27..2172732c55c8 100644
--- a/arch/sh/include/asm/posix_types_32.h
+++ b/arch/sh/include/asm/posix_types_32.h
@@ -39,14 +39,10 @@ typedef long long __kernel_loff_t;
39#endif 39#endif
40 40
41typedef struct { 41typedef struct {
42#if defined(__KERNEL__) || defined(__USE_ALL)
43 int val[2]; 42 int val[2];
44#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
45 int __val[2];
46#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
47} __kernel_fsid_t; 43} __kernel_fsid_t;
48 44
49#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) 45#if defined(__KERNEL__)
50 46
51#undef __FD_SET 47#undef __FD_SET
52static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp) 48static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
@@ -117,6 +113,6 @@ static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
117 } 113 }
118} 114}
119 115
120#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */ 116#endif /* defined(__KERNEL__) */
121 117
122#endif /* __ASM_SH_POSIX_TYPES_H */ 118#endif /* __ASM_SH_POSIX_TYPES_H */
diff --git a/arch/sh/include/asm/posix_types_64.h b/arch/sh/include/asm/posix_types_64.h
index 0620317a6f0f..f83e9bd463d8 100644
--- a/arch/sh/include/asm/posix_types_64.h
+++ b/arch/sh/include/asm/posix_types_64.h
@@ -48,14 +48,10 @@ typedef long long __kernel_loff_t;
48#endif 48#endif
49 49
50typedef struct { 50typedef struct {
51#if defined(__KERNEL__) || defined(__USE_ALL)
52 int val[2]; 51 int val[2];
53#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
54 int __val[2];
55#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
56} __kernel_fsid_t; 52} __kernel_fsid_t;
57 53
58#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) 54#if defined(__KERNEL__)
59 55
60#undef __FD_SET 56#undef __FD_SET
61static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp) 57static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
@@ -126,6 +122,6 @@ static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
126 } 122 }
127} 123}
128 124
129#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */ 125#endif /* defined(__KERNEL__) */
130 126
131#endif /* __ASM_SH64_POSIX_TYPES_H */ 127#endif /* __ASM_SH64_POSIX_TYPES_H */
diff --git a/arch/sh/include/asm/syscall_32.h b/arch/sh/include/asm/syscall_32.h
index 05a868a71ef5..5bc34681d994 100644
--- a/arch/sh/include/asm/syscall_32.h
+++ b/arch/sh/include/asm/syscall_32.h
@@ -21,23 +21,10 @@ static inline void syscall_rollback(struct task_struct *task,
21 */ 21 */
22} 22}
23 23
24static inline bool syscall_has_error(struct pt_regs *regs)
25{
26 return (regs->sr & 0x1) ? true : false;
27}
28static inline void syscall_set_error(struct pt_regs *regs)
29{
30 regs->sr |= 0x1;
31}
32static inline void syscall_clear_error(struct pt_regs *regs)
33{
34 regs->sr &= ~0x1;
35}
36
37static inline long syscall_get_error(struct task_struct *task, 24static inline long syscall_get_error(struct task_struct *task,
38 struct pt_regs *regs) 25 struct pt_regs *regs)
39{ 26{
40 return syscall_has_error(regs) ? regs->regs[0] : 0; 27 return IS_ERR_VALUE(regs->regs[0]) ? regs->regs[0] : 0;
41} 28}
42 29
43static inline long syscall_get_return_value(struct task_struct *task, 30static inline long syscall_get_return_value(struct task_struct *task,
@@ -50,13 +37,10 @@ static inline void syscall_set_return_value(struct task_struct *task,
50 struct pt_regs *regs, 37 struct pt_regs *regs,
51 int error, long val) 38 int error, long val)
52{ 39{
53 if (error) { 40 if (error)
54 syscall_set_error(regs);
55 regs->regs[0] = -error; 41 regs->regs[0] = -error;
56 } else { 42 else
57 syscall_clear_error(regs);
58 regs->regs[0] = val; 43 regs->regs[0] = val;
59 }
60} 44}
61 45
62static inline void syscall_get_arguments(struct task_struct *task, 46static inline void syscall_get_arguments(struct task_struct *task,
diff --git a/arch/sh/include/asm/syscall_64.h b/arch/sh/include/asm/syscall_64.h
index e1143b9784d6..c3561ca72bee 100644
--- a/arch/sh/include/asm/syscall_64.h
+++ b/arch/sh/include/asm/syscall_64.h
@@ -21,23 +21,10 @@ static inline void syscall_rollback(struct task_struct *task,
21 */ 21 */
22} 22}
23 23
24static inline bool syscall_has_error(struct pt_regs *regs)
25{
26 return (regs->sr & 0x1) ? true : false;
27}
28static inline void syscall_set_error(struct pt_regs *regs)
29{
30 regs->sr |= 0x1;
31}
32static inline void syscall_clear_error(struct pt_regs *regs)
33{
34 regs->sr &= ~0x1;
35}
36
37static inline long syscall_get_error(struct task_struct *task, 24static inline long syscall_get_error(struct task_struct *task,
38 struct pt_regs *regs) 25 struct pt_regs *regs)
39{ 26{
40 return syscall_has_error(regs) ? regs->regs[9] : 0; 27 return IS_ERR_VALUE(regs->regs[9]) ? regs->regs[9] : 0;
41} 28}
42 29
43static inline long syscall_get_return_value(struct task_struct *task, 30static inline long syscall_get_return_value(struct task_struct *task,
@@ -50,13 +37,10 @@ static inline void syscall_set_return_value(struct task_struct *task,
50 struct pt_regs *regs, 37 struct pt_regs *regs,
51 int error, long val) 38 int error, long val)
52{ 39{
53 if (error) { 40 if (error)
54 syscall_set_error(regs);
55 regs->regs[9] = -error; 41 regs->regs[9] = -error;
56 } else { 42 else
57 syscall_clear_error(regs);
58 regs->regs[9] = val; 43 regs->regs[9] = val;
59 }
60} 44}
61 45
62static inline void syscall_get_arguments(struct task_struct *task, 46static inline void syscall_get_arguments(struct task_struct *task,
diff --git a/arch/sh/include/asm/syscalls_32.h b/arch/sh/include/asm/syscalls_32.h
index 104c5e686106..8b30200305c3 100644
--- a/arch/sh/include/asm/syscalls_32.h
+++ b/arch/sh/include/asm/syscalls_32.h
@@ -36,9 +36,9 @@ asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5,
36asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5, 36asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5,
37 unsigned long r6, unsigned long r7, 37 unsigned long r6, unsigned long r7,
38 struct pt_regs __regs); 38 struct pt_regs __regs);
39asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, 39asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5,
40 unsigned long r6, unsigned long r7, 40 unsigned long r6, unsigned long r7,
41 struct pt_regs __regs); 41 struct pt_regs __regs);
42asmlinkage ssize_t sys_pread_wrapper(unsigned int fd, char __user *buf, 42asmlinkage ssize_t sys_pread_wrapper(unsigned int fd, char __user *buf,
43 size_t count, long dummy, loff_t pos); 43 size_t count, long dummy, loff_t pos);
44asmlinkage ssize_t sys_pwrite_wrapper(unsigned int fd, const char __user *buf, 44asmlinkage ssize_t sys_pwrite_wrapper(unsigned int fd, const char __user *buf,
diff --git a/arch/sh/kernel/cpu/sh2a/clock-sh7201.c b/arch/sh/kernel/cpu/sh2a/clock-sh7201.c
index 020a96fe961a..4a5e59732334 100644
--- a/arch/sh/kernel/cpu/sh2a/clock-sh7201.c
+++ b/arch/sh/kernel/cpu/sh2a/clock-sh7201.c
@@ -18,8 +18,8 @@
18#include <asm/freq.h> 18#include <asm/freq.h>
19#include <asm/io.h> 19#include <asm/io.h>
20 20
21const static int pll1rate[]={1,2,3,4,6,8}; 21static const int pll1rate[]={1,2,3,4,6,8};
22const static int pfc_divisors[]={1,2,3,4,6,8,12}; 22static const int pfc_divisors[]={1,2,3,4,6,8,12};
23#define ifc_divisors pfc_divisors 23#define ifc_divisors pfc_divisors
24 24
25#if (CONFIG_SH_CLK_MD == 0) 25#if (CONFIG_SH_CLK_MD == 0)
diff --git a/arch/sh/kernel/cpu/sh4/fpu.c b/arch/sh/kernel/cpu/sh4/fpu.c
index 2780917c0088..e3ea5411da6d 100644
--- a/arch/sh/kernel/cpu/sh4/fpu.c
+++ b/arch/sh/kernel/cpu/sh4/fpu.c
@@ -423,7 +423,7 @@ static int ieee_fpe_handler(struct pt_regs *regs)
423 int m; 423 int m;
424 unsigned int hx; 424 unsigned int hx;
425 425
426 m = (finsn >> 9) & 0x7; 426 m = (finsn >> 8) & 0x7;
427 hx = tsk->thread.fpu.hard.fp_regs[m]; 427 hx = tsk->thread.fpu.hard.fp_regs[m];
428 428
429 if ((tsk->thread.fpu.hard.fpscr & FPSCR_CAUSE_ERROR) 429 if ((tsk->thread.fpu.hard.fpscr & FPSCR_CAUSE_ERROR)
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
index 0623e377f488..4ff4dc64520c 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
@@ -112,6 +112,34 @@ static struct platform_device veu_device = {
112 .num_resources = ARRAY_SIZE(veu_resources), 112 .num_resources = ARRAY_SIZE(veu_resources),
113}; 113};
114 114
115static struct uio_info jpu_platform_data = {
116 .name = "JPU",
117 .version = "0",
118 .irq = 27,
119};
120
121static struct resource jpu_resources[] = {
122 [0] = {
123 .name = "JPU",
124 .start = 0xfea00000,
125 .end = 0xfea102d3,
126 .flags = IORESOURCE_MEM,
127 },
128 [1] = {
129 /* place holder for contiguous memory */
130 },
131};
132
133static struct platform_device jpu_device = {
134 .name = "uio_pdrv_genirq",
135 .id = 2,
136 .dev = {
137 .platform_data = &jpu_platform_data,
138 },
139 .resource = jpu_resources,
140 .num_resources = ARRAY_SIZE(jpu_resources),
141};
142
115static struct plat_sci_port sci_platform_data[] = { 143static struct plat_sci_port sci_platform_data[] = {
116 { 144 {
117 .mapbase = 0xffe00000, 145 .mapbase = 0xffe00000,
@@ -152,6 +180,7 @@ static struct platform_device *sh7343_devices[] __initdata = {
152 &sci_device, 180 &sci_device,
153 &vpu_device, 181 &vpu_device,
154 &veu_device, 182 &veu_device,
183 &jpu_device,
155}; 184};
156 185
157static int __init sh7343_devices_setup(void) 186static int __init sh7343_devices_setup(void)
@@ -160,9 +189,11 @@ static int __init sh7343_devices_setup(void)
160 clk_always_enable("xymem0"); /* XYMEM */ 189 clk_always_enable("xymem0"); /* XYMEM */
161 clk_always_enable("veu0"); /* VEU */ 190 clk_always_enable("veu0"); /* VEU */
162 clk_always_enable("vpu0"); /* VPU */ 191 clk_always_enable("vpu0"); /* VPU */
192 clk_always_enable("jpu0"); /* JPU */
163 193
164 platform_resource_setup_memory(&vpu_device, "vpu", 1 << 20); 194 platform_resource_setup_memory(&vpu_device, "vpu", 1 << 20);
165 platform_resource_setup_memory(&veu_device, "veu", 2 << 20); 195 platform_resource_setup_memory(&veu_device, "veu", 2 << 20);
196 platform_resource_setup_memory(&jpu_device, "jpu", 2 << 20);
166 197
167 return platform_add_devices(sh7343_devices, 198 return platform_add_devices(sh7343_devices,
168 ARRAY_SIZE(sh7343_devices)); 199 ARRAY_SIZE(sh7343_devices));
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
index 50cf6838ec41..5146afc156e0 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
@@ -158,7 +158,7 @@ static struct resource jpu_resources[] = {
158 [0] = { 158 [0] = {
159 .name = "JPU", 159 .name = "JPU",
160 .start = 0xfea00000, 160 .start = 0xfea00000,
161 .end = 0xfea102d0, 161 .end = 0xfea102d3,
162 .flags = IORESOURCE_MEM, 162 .flags = IORESOURCE_MEM,
163 }, 163 },
164 [1] = { 164 [1] = {
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c
index a7e5f2e74bac..c90c7e5e5fee 100644
--- a/arch/sh/kernel/process_64.c
+++ b/arch/sh/kernel/process_64.c
@@ -520,7 +520,6 @@ asmlinkage int sys_execve(char *ufilename, char **uargv,
520 int error; 520 int error;
521 char *filename; 521 char *filename;
522 522
523 lock_kernel();
524 filename = getname((char __user *)ufilename); 523 filename = getname((char __user *)ufilename);
525 error = PTR_ERR(filename); 524 error = PTR_ERR(filename);
526 if (IS_ERR(filename)) 525 if (IS_ERR(filename))
@@ -537,7 +536,6 @@ asmlinkage int sys_execve(char *ufilename, char **uargv,
537 } 536 }
538 putname(filename); 537 putname(filename);
539out: 538out:
540 unlock_kernel();
541 return error; 539 return error;
542} 540}
543 541
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index 534247508572..370d2cfa34eb 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -262,11 +262,11 @@ void __init setup_bootmem_allocator(unsigned long free_pfn)
262 BOOTMEM_DEFAULT); 262 BOOTMEM_DEFAULT);
263 263
264 /* 264 /*
265 * reserve physical page 0 - it's a special BIOS page on many boxes, 265 * Reserve physical pages below CONFIG_ZERO_PAGE_OFFSET.
266 * enabling clean reboots, SMP operation, laptop functions.
267 */ 266 */
268 reserve_bootmem(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET, 267 if (CONFIG_ZERO_PAGE_OFFSET != 0)
269 BOOTMEM_DEFAULT); 268 reserve_bootmem(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET,
269 BOOTMEM_DEFAULT);
270 270
271 sparse_memory_present_with_active_regions(0); 271 sparse_memory_present_with_active_regions(0);
272 272
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c
index 77c21bde376a..17784e19ae34 100644
--- a/arch/sh/kernel/signal_32.c
+++ b/arch/sh/kernel/signal_32.c
@@ -510,7 +510,6 @@ handle_syscall_restart(unsigned long save_r0, struct pt_regs *regs,
510 case -ERESTARTNOHAND: 510 case -ERESTARTNOHAND:
511 no_system_call_restart: 511 no_system_call_restart:
512 regs->regs[0] = -EINTR; 512 regs->regs[0] = -EINTR;
513 regs->sr |= 1;
514 break; 513 break;
515 514
516 case -ERESTARTSYS: 515 case -ERESTARTSYS:
@@ -589,8 +588,7 @@ static void do_signal(struct pt_regs *regs, unsigned int save_r0)
589 588
590 signr = get_signal_to_deliver(&info, &ka, regs, NULL); 589 signr = get_signal_to_deliver(&info, &ka, regs, NULL);
591 if (signr > 0) { 590 if (signr > 0) {
592 if (regs->sr & 1) 591 handle_syscall_restart(save_r0, regs, &ka.sa);
593 handle_syscall_restart(save_r0, regs, &ka.sa);
594 592
595 /* Whee! Actually deliver the signal. */ 593 /* Whee! Actually deliver the signal. */
596 if (handle_signal(signr, &ka, &info, oldset, 594 if (handle_signal(signr, &ka, &info, oldset,
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c
index b22fdfaaa191..0663a0ee6021 100644
--- a/arch/sh/kernel/signal_64.c
+++ b/arch/sh/kernel/signal_64.c
@@ -60,7 +60,6 @@ handle_syscall_restart(struct pt_regs *regs, struct sigaction *sa)
60 case -ERESTARTNOHAND: 60 case -ERESTARTNOHAND:
61 no_system_call_restart: 61 no_system_call_restart:
62 regs->regs[REG_RET] = -EINTR; 62 regs->regs[REG_RET] = -EINTR;
63 regs->sr |= 1;
64 break; 63 break;
65 64
66 case -ERESTARTSYS: 65 case -ERESTARTSYS:
@@ -109,8 +108,7 @@ static int do_signal(struct pt_regs *regs, sigset_t *oldset)
109 108
110 signr = get_signal_to_deliver(&info, &ka, regs, 0); 109 signr = get_signal_to_deliver(&info, &ka, regs, 0);
111 if (signr > 0) { 110 if (signr > 0) {
112 if (regs->sr & 1) 111 handle_syscall_restart(regs, &ka.sa);
113 handle_syscall_restart(regs, &ka.sa);
114 112
115 /* Whee! Actually deliver the signal. */ 113 /* Whee! Actually deliver the signal. */
116 if (handle_signal(signr, &info, &ka, oldset, regs) == 0) { 114 if (handle_signal(signr, &info, &ka, oldset, regs) == 0) {
diff --git a/arch/sh/kernel/sys_sh32.c b/arch/sh/kernel/sys_sh32.c
index dbba1e1833d4..63ba12836eae 100644
--- a/arch/sh/kernel/sys_sh32.c
+++ b/arch/sh/kernel/sys_sh32.c
@@ -22,7 +22,7 @@
22 * sys_pipe() is the normal C calling standard for creating 22 * sys_pipe() is the normal C calling standard for creating
23 * a pipe. It's not the way Unix traditionally does this, though. 23 * a pipe. It's not the way Unix traditionally does this, though.
24 */ 24 */
25asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, 25asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5,
26 unsigned long r6, unsigned long r7, 26 unsigned long r6, unsigned long r7,
27 struct pt_regs __regs) 27 struct pt_regs __regs)
28{ 28{
diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S
index 0af693e65764..e67c1733e1b9 100644
--- a/arch/sh/kernel/syscalls_32.S
+++ b/arch/sh/kernel/syscalls_32.S
@@ -58,7 +58,7 @@ ENTRY(sys_call_table)
58 .long sys_mkdir 58 .long sys_mkdir
59 .long sys_rmdir /* 40 */ 59 .long sys_rmdir /* 40 */
60 .long sys_dup 60 .long sys_dup
61 .long sys_pipe 61 .long sys_sh_pipe
62 .long sys_times 62 .long sys_times
63 .long sys_ni_syscall /* old prof syscall holder */ 63 .long sys_ni_syscall /* old prof syscall holder */
64 .long sys_brk /* 45 */ 64 .long sys_brk /* 45 */
@@ -105,7 +105,7 @@ ENTRY(sys_call_table)
105 .long sys_uselib 105 .long sys_uselib
106 .long sys_swapon 106 .long sys_swapon
107 .long sys_reboot 107 .long sys_reboot
108 .long old_readdir 108 .long sys_old_readdir
109 .long old_mmap /* 90 */ 109 .long old_mmap /* 90 */
110 .long sys_munmap 110 .long sys_munmap
111 .long sys_truncate 111 .long sys_truncate
diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S
index 0b436aa3cad7..557cb91f5caf 100644
--- a/arch/sh/kernel/syscalls_64.S
+++ b/arch/sh/kernel/syscalls_64.S
@@ -109,7 +109,7 @@ sys_call_table:
109 .long sys_uselib 109 .long sys_uselib
110 .long sys_swapon 110 .long sys_swapon
111 .long sys_reboot 111 .long sys_reboot
112 .long old_readdir 112 .long sys_old_readdir
113 .long old_mmap /* 90 */ 113 .long old_mmap /* 90 */
114 .long sys_munmap 114 .long sys_munmap
115 .long sys_truncate 115 .long sys_truncate
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index c0aa3d83ec0e..60dcf87ed019 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -125,20 +125,18 @@ static inline void die_if_kernel(const char *str, struct pt_regs *regs,
125 * - userspace errors just cause EFAULT to be returned, resulting in SEGV 125 * - userspace errors just cause EFAULT to be returned, resulting in SEGV
126 * - kernel/userspace interfaces cause a jump to an appropriate handler 126 * - kernel/userspace interfaces cause a jump to an appropriate handler
127 * - other kernel errors are bad 127 * - other kernel errors are bad
128 * - return 0 if fixed-up, -EFAULT if non-fatal (to the kernel) fault
129 */ 128 */
130static int die_if_no_fixup(const char * str, struct pt_regs * regs, long err) 129static void die_if_no_fixup(const char * str, struct pt_regs * regs, long err)
131{ 130{
132 if (!user_mode(regs)) { 131 if (!user_mode(regs)) {
133 const struct exception_table_entry *fixup; 132 const struct exception_table_entry *fixup;
134 fixup = search_exception_tables(regs->pc); 133 fixup = search_exception_tables(regs->pc);
135 if (fixup) { 134 if (fixup) {
136 regs->pc = fixup->fixup; 135 regs->pc = fixup->fixup;
137 return 0; 136 return;
138 } 137 }
139 die(str, regs, err); 138 die(str, regs, err);
140 } 139 }
141 return -EFAULT;
142} 140}
143 141
144static inline void sign_extend(unsigned int count, unsigned char *dst) 142static inline void sign_extend(unsigned int count, unsigned char *dst)
@@ -314,7 +312,8 @@ static int handle_unaligned_ins(opcode_t instruction, struct pt_regs *regs,
314 /* Argh. Address not only misaligned but also non-existent. 312 /* Argh. Address not only misaligned but also non-existent.
315 * Raise an EFAULT and see if it's trapped 313 * Raise an EFAULT and see if it's trapped
316 */ 314 */
317 return die_if_no_fixup("Fault in unaligned fixup", regs, 0); 315 die_if_no_fixup("Fault in unaligned fixup", regs, 0);
316 return -EFAULT;
318} 317}
319 318
320/* 319/*
diff --git a/arch/sh/lib/checksum.S b/arch/sh/lib/checksum.S
index cbdd0d40e545..356c8ec92893 100644
--- a/arch/sh/lib/checksum.S
+++ b/arch/sh/lib/checksum.S
@@ -36,8 +36,7 @@
36 */ 36 */
37 37
38/* 38/*
39 * unsigned int csum_partial(const unsigned char *buf, int len, 39 * asmlinkage __wsum csum_partial(const void *buf, int len, __wsum sum);
40 * unsigned int sum);
41 */ 40 */
42 41
43.text 42.text
@@ -49,11 +48,31 @@ ENTRY(csum_partial)
49 * Fortunately, it is easy to convert 2-byte alignment to 4-byte 48 * Fortunately, it is easy to convert 2-byte alignment to 4-byte
50 * alignment for the unrolled loop. 49 * alignment for the unrolled loop.
51 */ 50 */
52 mov r5, r1
53 mov r4, r0 51 mov r4, r0
54 tst #2, r0 ! Check alignment. 52 tst #3, r0 ! Check alignment.
55 bt 2f ! Jump if alignment is ok. 53 bt/s 2f ! Jump if alignment is ok.
54 mov r4, r7 ! Keep a copy to check for alignment
56 ! 55 !
56 tst #1, r0 ! Check alignment.
57 bt 21f ! Jump if alignment is boundary of 2bytes.
58
59 ! buf is odd
60 tst r5, r5
61 add #-1, r5
62 bt 9f
63 mov.b @r4+, r0
64 extu.b r0, r0
65 addc r0, r6 ! t=0 from previous tst
66 mov r6, r0
67 shll8 r6
68 shlr16 r0
69 shlr8 r0
70 or r0, r6
71 mov r4, r0
72 tst #2, r0
73 bt 2f
7421:
75 ! buf is 2 byte aligned (len could be 0)
57 add #-2, r5 ! Alignment uses up two bytes. 76 add #-2, r5 ! Alignment uses up two bytes.
58 cmp/pz r5 ! 77 cmp/pz r5 !
59 bt/s 1f ! Jump if we had at least two bytes. 78 bt/s 1f ! Jump if we had at least two bytes.
@@ -61,16 +80,17 @@ ENTRY(csum_partial)
61 bra 6f 80 bra 6f
62 add #2, r5 ! r5 was < 2. Deal with it. 81 add #2, r5 ! r5 was < 2. Deal with it.
631: 821:
64 mov r5, r1 ! Save new len for later use.
65 mov.w @r4+, r0 83 mov.w @r4+, r0
66 extu.w r0, r0 84 extu.w r0, r0
67 addc r0, r6 85 addc r0, r6
68 bf 2f 86 bf 2f
69 add #1, r6 87 add #1, r6
702: 882:
89 ! buf is 4 byte aligned (len could be 0)
90 mov r5, r1
71 mov #-5, r0 91 mov #-5, r0
72 shld r0, r5 92 shld r0, r1
73 tst r5, r5 93 tst r1, r1
74 bt/s 4f ! if it's =0, go to 4f 94 bt/s 4f ! if it's =0, go to 4f
75 clrt 95 clrt
76 .align 2 96 .align 2
@@ -92,30 +112,31 @@ ENTRY(csum_partial)
92 addc r0, r6 112 addc r0, r6
93 addc r2, r6 113 addc r2, r6
94 movt r0 114 movt r0
95 dt r5 115 dt r1
96 bf/s 3b 116 bf/s 3b
97 cmp/eq #1, r0 117 cmp/eq #1, r0
98 ! here, we know r5==0 118 ! here, we know r1==0
99 addc r5, r6 ! add carry to r6 119 addc r1, r6 ! add carry to r6
1004: 1204:
101 mov r1, r0 121 mov r5, r0
102 and #0x1c, r0 122 and #0x1c, r0
103 tst r0, r0 123 tst r0, r0
104 bt/s 6f 124 bt 6f
105 mov r0, r5 125 ! 4 bytes or more remaining
106 shlr2 r5 126 mov r0, r1
127 shlr2 r1
107 mov #0, r2 128 mov #0, r2
1085: 1295:
109 addc r2, r6 130 addc r2, r6
110 mov.l @r4+, r2 131 mov.l @r4+, r2
111 movt r0 132 movt r0
112 dt r5 133 dt r1
113 bf/s 5b 134 bf/s 5b
114 cmp/eq #1, r0 135 cmp/eq #1, r0
115 addc r2, r6 136 addc r2, r6
116 addc r5, r6 ! r5==0 here, so it means add carry-bit 137 addc r1, r6 ! r1==0 here, so it means add carry-bit
1176: 1386:
118 mov r1, r5 139 ! 3 bytes or less remaining
119 mov #3, r0 140 mov #3, r0
120 and r0, r5 141 and r0, r5
121 tst r5, r5 142 tst r5, r5
@@ -139,8 +160,18 @@ ENTRY(csum_partial)
1398: 1608:
140 addc r0, r6 161 addc r0, r6
141 mov #0, r0 162 mov #0, r0
142 addc r0, r6 163 addc r0, r6
1439: 1649:
165 ! Check if the buffer was misaligned, if so realign sum
166 mov r7, r0
167 tst #1, r0
168 bt 10f
169 mov r6, r0
170 shll8 r6
171 shlr16 r0
172 shlr8 r0
173 or r0, r6
17410:
144 rts 175 rts
145 mov r6, r0 176 mov r6, r0
146 177
diff --git a/arch/sh/mm/ioremap_64.c b/arch/sh/mm/ioremap_64.c
index 6e0be24d26e2..31e1bb5effbe 100644
--- a/arch/sh/mm/ioremap_64.c
+++ b/arch/sh/mm/ioremap_64.c
@@ -71,9 +71,9 @@ void *__ioremap(unsigned long phys_addr, unsigned long size,
71 * Ok, go for it.. 71 * Ok, go for it..
72 */ 72 */
73 area = get_vm_area(size, VM_IOREMAP); 73 area = get_vm_area(size, VM_IOREMAP);
74 pr_debug("Get vm_area returns %p addr %p\n",area,area->addr);
75 if (!area) 74 if (!area)
76 return NULL; 75 return NULL;
76 pr_debug("Get vm_area returns %p addr %p\n", area, area->addr);
77 area->phys_addr = phys_addr; 77 area->phys_addr = phys_addr;
78 addr = area->addr; 78 addr = area->addr;
79 if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size, 79 if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size,
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index de58c02633b4..c3ea215334f6 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -36,6 +36,7 @@ config SPARC64
36 select HAVE_KRETPROBES 36 select HAVE_KRETPROBES
37 select HAVE_KPROBES 37 select HAVE_KPROBES
38 select HAVE_LMB 38 select HAVE_LMB
39 select HAVE_SYSCALL_WRAPPERS
39 select USE_GENERIC_SMP_HELPERS if SMP 40 select USE_GENERIC_SMP_HELPERS if SMP
40 select RTC_DRV_CMOS 41 select RTC_DRV_CMOS
41 select RTC_DRV_BQ4802 42 select RTC_DRV_BQ4802
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig
index cde19ae78f5a..ade49941def2 100644
--- a/arch/sparc/configs/sparc64_defconfig
+++ b/arch/sparc/configs/sparc64_defconfig
@@ -867,8 +867,8 @@ CONFIG_I2C_ALGOBIT=y
867# Miscellaneous I2C Chip support 867# Miscellaneous I2C Chip support
868# 868#
869# CONFIG_DS1682 is not set 869# CONFIG_DS1682 is not set
870# CONFIG_AT24 is not set 870# CONFIG_EEPROM_AT24 is not set
871# CONFIG_SENSORS_EEPROM is not set 871# CONFIG_EEPROM_LEGACY is not set
872# CONFIG_SENSORS_PCF8574 is not set 872# CONFIG_SENSORS_PCF8574 is not set
873# CONFIG_PCF8575 is not set 873# CONFIG_PCF8575 is not set
874# CONFIG_SENSORS_PCA9539 is not set 874# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/sparc/include/asm/Kbuild b/arch/sparc/include/asm/Kbuild
index 95e38a43dff0..deeb0fba8029 100644
--- a/arch/sparc/include/asm/Kbuild
+++ b/arch/sparc/include/asm/Kbuild
@@ -17,4 +17,3 @@ header-y += traps.h
17header-y += uctx.h 17header-y += uctx.h
18header-y += utrap.h 18header-y += utrap.h
19header-y += watchdog.h 19header-y += watchdog.h
20header-y += swab.h
diff --git a/arch/sparc/include/asm/byteorder.h b/arch/sparc/include/asm/byteorder.h
index 48a047cd6fa9..ccc1b6b7de6c 100644
--- a/arch/sparc/include/asm/byteorder.h
+++ b/arch/sparc/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _SPARC_BYTEORDER_H 1#ifndef _SPARC_BYTEORDER_H
2#define _SPARC_BYTEORDER_H 2#define _SPARC_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/big_endian.h> 4#include <linux/byteorder/big_endian.h>
6 5
7#endif /* _SPARC_BYTEORDER_H */ 6#endif /* _SPARC_BYTEORDER_H */
diff --git a/arch/sparc/include/asm/compat.h b/arch/sparc/include/asm/compat.h
index f260b58f5ce9..0e706257918f 100644
--- a/arch/sparc/include/asm/compat.h
+++ b/arch/sparc/include/asm/compat.h
@@ -240,4 +240,9 @@ struct compat_shmid64_ds {
240 unsigned int __unused2; 240 unsigned int __unused2;
241}; 241};
242 242
243static inline int is_compat_task(void)
244{
245 return test_thread_flag(TIF_32BIT);
246}
247
243#endif /* _ASM_SPARC64_COMPAT_H */ 248#endif /* _ASM_SPARC64_COMPAT_H */
diff --git a/arch/sparc/include/asm/cpudata_64.h b/arch/sparc/include/asm/cpudata_64.h
index 7da7c13d23c4..a11b89ee9ef8 100644
--- a/arch/sparc/include/asm/cpudata_64.h
+++ b/arch/sparc/include/asm/cpudata_64.h
@@ -17,7 +17,7 @@
17typedef struct { 17typedef struct {
18 /* Dcache line 1 */ 18 /* Dcache line 1 */
19 unsigned int __softirq_pending; /* must be 1st, see rtrap.S */ 19 unsigned int __softirq_pending; /* must be 1st, see rtrap.S */
20 unsigned int __pad0; 20 unsigned int __nmi_count;
21 unsigned long clock_tick; /* %tick's per second */ 21 unsigned long clock_tick; /* %tick's per second */
22 unsigned long __pad; 22 unsigned long __pad;
23 unsigned int __pad1; 23 unsigned int __pad1;
diff --git a/arch/sparc/include/asm/irq_64.h b/arch/sparc/include/asm/irq_64.h
index d47d4a1955a9..1934f2cbf513 100644
--- a/arch/sparc/include/asm/irq_64.h
+++ b/arch/sparc/include/asm/irq_64.h
@@ -66,9 +66,6 @@ extern void virt_irq_free(unsigned int virt_irq);
66extern void __init init_IRQ(void); 66extern void __init init_IRQ(void);
67extern void fixup_irqs(void); 67extern void fixup_irqs(void);
68 68
69extern int register_perfctr_intr(void (*handler)(struct pt_regs *));
70extern void release_perfctr_intr(void (*handler)(struct pt_regs *));
71
72static inline void set_softint(unsigned long bits) 69static inline void set_softint(unsigned long bits)
73{ 70{
74 __asm__ __volatile__("wr %0, 0x0, %%set_softint" 71 __asm__ __volatile__("wr %0, 0x0, %%set_softint"
@@ -98,5 +95,6 @@ void __trigger_all_cpu_backtrace(void);
98extern void *hardirq_stack[NR_CPUS]; 95extern void *hardirq_stack[NR_CPUS];
99extern void *softirq_stack[NR_CPUS]; 96extern void *softirq_stack[NR_CPUS];
100#define __ARCH_HAS_DO_SOFTIRQ 97#define __ARCH_HAS_DO_SOFTIRQ
98#define ARCH_HAS_NMI_WATCHDOG
101 99
102#endif 100#endif
diff --git a/arch/sparc/include/asm/kdebug_64.h b/arch/sparc/include/asm/kdebug_64.h
index f905b773235a..feb3578e12c4 100644
--- a/arch/sparc/include/asm/kdebug_64.h
+++ b/arch/sparc/include/asm/kdebug_64.h
@@ -14,6 +14,8 @@ enum die_val {
14 DIE_TRAP, 14 DIE_TRAP,
15 DIE_TRAP_TL1, 15 DIE_TRAP_TL1,
16 DIE_CALL, 16 DIE_CALL,
17 DIE_NMI,
18 DIE_NMIWATCHDOG,
17}; 19};
18 20
19#endif 21#endif
diff --git a/arch/sparc/include/asm/nmi.h b/arch/sparc/include/asm/nmi.h
new file mode 100644
index 000000000000..fbd546dd4feb
--- /dev/null
+++ b/arch/sparc/include/asm/nmi.h
@@ -0,0 +1,10 @@
1#ifndef __NMI_H
2#define __NMI_H
3
4extern int __init nmi_init(void);
5extern void perfctr_irq(int irq, struct pt_regs *regs);
6extern void nmi_adjust_hz(unsigned int new_hz);
7
8extern int nmi_usable;
9
10#endif /* __NMI_H */
diff --git a/arch/sparc/include/asm/pcr.h b/arch/sparc/include/asm/pcr.h
new file mode 100644
index 000000000000..a2f5c61f924e
--- /dev/null
+++ b/arch/sparc/include/asm/pcr.h
@@ -0,0 +1,46 @@
1#ifndef __PCR_H
2#define __PCR_H
3
4struct pcr_ops {
5 u64 (*read)(void);
6 void (*write)(u64);
7};
8extern const struct pcr_ops *pcr_ops;
9
10extern void deferred_pcr_work_irq(int irq, struct pt_regs *regs);
11extern void schedule_deferred_pcr_work(void);
12
13#define PCR_PIC_PRIV 0x00000001 /* PIC access is privileged */
14#define PCR_STRACE 0x00000002 /* Trace supervisor events */
15#define PCR_UTRACE 0x00000004 /* Trace user events */
16#define PCR_N2_HTRACE 0x00000008 /* Trace hypervisor events */
17#define PCR_N2_TOE_OV0 0x00000010 /* Trap if PIC 0 overflows */
18#define PCR_N2_TOE_OV1 0x00000020 /* Trap if PIC 1 overflows */
19#define PCR_N2_MASK0 0x00003fc0
20#define PCR_N2_MASK0_SHIFT 6
21#define PCR_N2_SL0 0x0003c000
22#define PCR_N2_SL0_SHIFT 14
23#define PCR_N2_OV0 0x00040000
24#define PCR_N2_MASK1 0x07f80000
25#define PCR_N2_MASK1_SHIFT 19
26#define PCR_N2_SL1 0x78000000
27#define PCR_N2_SL1_SHIFT 27
28#define PCR_N2_OV1 0x80000000
29
30extern unsigned int picl_shift;
31
32/* In order to commonize as much of the implementation as
33 * possible, we use PICH as our counter. Mostly this is
34 * to accomodate Niagara-1 which can only count insn cycles
35 * in PICH.
36 */
37static inline u64 picl_value(unsigned int nmi_hz)
38{
39 u32 delta = local_cpu_data().clock_tick / (nmi_hz << picl_shift);
40
41 return ((u64)((0 - delta) & 0xffffffff)) << 32;
42}
43
44extern u64 pcr_enable;
45
46#endif /* __PCR_H */
diff --git a/arch/sparc/include/asm/pil.h b/arch/sparc/include/asm/pil.h
index d573820c0ff4..32a7efe76d00 100644
--- a/arch/sparc/include/asm/pil.h
+++ b/arch/sparc/include/asm/pil.h
@@ -23,6 +23,7 @@
23#define PIL_SMP_CTX_NEW_VERSION 4 23#define PIL_SMP_CTX_NEW_VERSION 4
24#define PIL_DEVICE_IRQ 5 24#define PIL_DEVICE_IRQ 5
25#define PIL_SMP_CALL_FUNC_SNGL 6 25#define PIL_SMP_CALL_FUNC_SNGL 6
26#define PIL_DEFERRED_PCR_WORK 7
26#define PIL_NORMAL_MAX 14 27#define PIL_NORMAL_MAX 14
27#define PIL_NMI 15 28#define PIL_NMI 15
28 29
diff --git a/arch/sparc/include/asm/seccomp.h b/arch/sparc/include/asm/seccomp.h
index 7fcd9968192b..adca1bce41d4 100644
--- a/arch/sparc/include/asm/seccomp.h
+++ b/arch/sparc/include/asm/seccomp.h
@@ -1,11 +1,5 @@
1#ifndef _ASM_SECCOMP_H 1#ifndef _ASM_SECCOMP_H
2 2
3#include <linux/thread_info.h> /* already defines TIF_32BIT */
4
5#ifndef TIF_32BIT
6#error "unexpected TIF_32BIT on sparc64"
7#endif
8
9#include <linux/unistd.h> 3#include <linux/unistd.h>
10 4
11#define __NR_seccomp_read __NR_read 5#define __NR_seccomp_read __NR_read
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
index 53adcaa0348b..54742e58831c 100644
--- a/arch/sparc/kernel/Makefile
+++ b/arch/sparc/kernel/Makefile
@@ -52,6 +52,8 @@ obj-$(CONFIG_SPARC64) += visemul.o
52obj-$(CONFIG_SPARC64) += hvapi.o 52obj-$(CONFIG_SPARC64) += hvapi.o
53obj-$(CONFIG_SPARC64) += sstate.o 53obj-$(CONFIG_SPARC64) += sstate.o
54obj-$(CONFIG_SPARC64) += mdesc.o 54obj-$(CONFIG_SPARC64) += mdesc.o
55obj-$(CONFIG_SPARC64) += pcr.o
56obj-$(CONFIG_SPARC64) += nmi.o
55 57
56# sparc32 do not use GENERIC_HARDIRQS but uses the generic devres implementation 58# sparc32 do not use GENERIC_HARDIRQS but uses the generic devres implementation
57obj-$(CONFIG_SPARC32) += devres.o 59obj-$(CONFIG_SPARC32) += devres.o
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c
index 05f1c916db06..f3b5466c389c 100644
--- a/arch/sparc/kernel/central.c
+++ b/arch/sparc/kernel/central.c
@@ -103,6 +103,7 @@ static int __devinit clock_board_probe(struct of_device *op,
103 p->leds_resource.name = "leds"; 103 p->leds_resource.name = "leds";
104 104
105 p->leds_pdev.name = "sunfire-clockboard-leds"; 105 p->leds_pdev.name = "sunfire-clockboard-leds";
106 p->leds_pdev.id = -1;
106 p->leds_pdev.resource = &p->leds_resource; 107 p->leds_pdev.resource = &p->leds_resource;
107 p->leds_pdev.num_resources = 1; 108 p->leds_pdev.num_resources = 1;
108 p->leds_pdev.dev.parent = &op->dev; 109 p->leds_pdev.dev.parent = &op->dev;
@@ -197,6 +198,7 @@ static int __devinit fhc_probe(struct of_device *op,
197 p->leds_resource.name = "leds"; 198 p->leds_resource.name = "leds";
198 199
199 p->leds_pdev.name = "sunfire-fhc-leds"; 200 p->leds_pdev.name = "sunfire-fhc-leds";
201 p->leds_pdev.id = p->board_num;
200 p->leds_pdev.resource = &p->leds_resource; 202 p->leds_pdev.resource = &p->leds_resource;
201 p->leds_pdev.num_resources = 1; 203 p->leds_pdev.num_resources = 1;
202 p->leds_pdev.dev.parent = &op->dev; 204 p->leds_pdev.dev.parent = &op->dev;
diff --git a/arch/sparc/kernel/chmc.c b/arch/sparc/kernel/chmc.c
index 3b9f4d6e14a9..e1a9598e2a4d 100644
--- a/arch/sparc/kernel/chmc.c
+++ b/arch/sparc/kernel/chmc.c
@@ -306,6 +306,7 @@ static int jbusmc_print_dimm(int syndrome_code,
306 buf[1] = '?'; 306 buf[1] = '?';
307 buf[2] = '?'; 307 buf[2] = '?';
308 buf[3] = '\0'; 308 buf[3] = '\0';
309 return 0;
309 } 310 }
310 p = dp->controller; 311 p = dp->controller;
311 prop = &p->layout; 312 prop = &p->layout;
diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c
index f0b825505da5..d85c3dc4953a 100644
--- a/arch/sparc/kernel/cpu.c
+++ b/arch/sparc/kernel/cpu.c
@@ -26,6 +26,7 @@ EXPORT_PER_CPU_SYMBOL(__cpu_data);
26struct cpu_info { 26struct cpu_info {
27 int psr_vers; 27 int psr_vers;
28 const char *name; 28 const char *name;
29 const char *pmu_name;
29}; 30};
30 31
31struct fpu_info { 32struct fpu_info {
@@ -45,6 +46,9 @@ struct manufacturer_info {
45#define CPU(ver, _name) \ 46#define CPU(ver, _name) \
46{ .psr_vers = ver, .name = _name } 47{ .psr_vers = ver, .name = _name }
47 48
49#define CPU_PMU(ver, _name, _pmu_name) \
50{ .psr_vers = ver, .name = _name, .pmu_name = _pmu_name }
51
48#define FPU(ver, _name) \ 52#define FPU(ver, _name) \
49{ .fp_vers = ver, .name = _name } 53{ .fp_vers = ver, .name = _name }
50 54
@@ -183,10 +187,10 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
183},{ 187},{
184 0x17, 188 0x17,
185 .cpu_info = { 189 .cpu_info = {
186 CPU(0x10, "TI UltraSparc I (SpitFire)"), 190 CPU_PMU(0x10, "TI UltraSparc I (SpitFire)", "ultra12"),
187 CPU(0x11, "TI UltraSparc II (BlackBird)"), 191 CPU_PMU(0x11, "TI UltraSparc II (BlackBird)", "ultra12"),
188 CPU(0x12, "TI UltraSparc IIi (Sabre)"), 192 CPU_PMU(0x12, "TI UltraSparc IIi (Sabre)", "ultra12"),
189 CPU(0x13, "TI UltraSparc IIe (Hummingbird)"), 193 CPU_PMU(0x13, "TI UltraSparc IIe (Hummingbird)", "ultra12"),
190 CPU(-1, NULL) 194 CPU(-1, NULL)
191 }, 195 },
192 .fpu_info = { 196 .fpu_info = {
@@ -199,7 +203,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
199},{ 203},{
200 0x22, 204 0x22,
201 .cpu_info = { 205 .cpu_info = {
202 CPU(0x10, "TI UltraSparc I (SpitFire)"), 206 CPU_PMU(0x10, "TI UltraSparc I (SpitFire)", "ultra12"),
203 CPU(-1, NULL) 207 CPU(-1, NULL)
204 }, 208 },
205 .fpu_info = { 209 .fpu_info = {
@@ -209,12 +213,12 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
209},{ 213},{
210 0x3e, 214 0x3e,
211 .cpu_info = { 215 .cpu_info = {
212 CPU(0x14, "TI UltraSparc III (Cheetah)"), 216 CPU_PMU(0x14, "TI UltraSparc III (Cheetah)", "ultra3"),
213 CPU(0x15, "TI UltraSparc III+ (Cheetah+)"), 217 CPU_PMU(0x15, "TI UltraSparc III+ (Cheetah+)", "ultra3+"),
214 CPU(0x16, "TI UltraSparc IIIi (Jalapeno)"), 218 CPU_PMU(0x16, "TI UltraSparc IIIi (Jalapeno)", "ultra3i"),
215 CPU(0x18, "TI UltraSparc IV (Jaguar)"), 219 CPU_PMU(0x18, "TI UltraSparc IV (Jaguar)", "ultra3+"),
216 CPU(0x19, "TI UltraSparc IV+ (Panther)"), 220 CPU_PMU(0x19, "TI UltraSparc IV+ (Panther)", "ultra4+"),
217 CPU(0x22, "TI UltraSparc IIIi+ (Serrano)"), 221 CPU_PMU(0x22, "TI UltraSparc IIIi+ (Serrano)", "ultra3i"),
218 CPU(-1, NULL) 222 CPU(-1, NULL)
219 }, 223 },
220 .fpu_info = { 224 .fpu_info = {
@@ -234,29 +238,44 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
234 238
235const char *sparc_cpu_type; 239const char *sparc_cpu_type;
236const char *sparc_fpu_type; 240const char *sparc_fpu_type;
241const char *sparc_pmu_type;
237 242
238unsigned int fsr_storage; 243unsigned int fsr_storage;
239 244
240static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers) 245static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
241{ 246{
247 const struct manufacturer_info *manuf;
248 int i;
249
242 sparc_cpu_type = NULL; 250 sparc_cpu_type = NULL;
243 sparc_fpu_type = NULL; 251 sparc_fpu_type = NULL;
244 if (psr_impl < ARRAY_SIZE(manufacturer_info)) 252 sparc_pmu_type = NULL;
253 manuf = NULL;
254
255 for (i = 0; i < ARRAY_SIZE(manufacturer_info); i++)
256 {
257 if (psr_impl == manufacturer_info[i].psr_impl) {
258 manuf = &manufacturer_info[i];
259 break;
260 }
261 }
262 if (manuf != NULL)
245 { 263 {
246 const struct cpu_info *cpu; 264 const struct cpu_info *cpu;
247 const struct fpu_info *fpu; 265 const struct fpu_info *fpu;
248 266
249 cpu = &manufacturer_info[psr_impl].cpu_info[0]; 267 cpu = &manuf->cpu_info[0];
250 while (cpu->psr_vers != -1) 268 while (cpu->psr_vers != -1)
251 { 269 {
252 if (cpu->psr_vers == psr_vers) { 270 if (cpu->psr_vers == psr_vers) {
253 sparc_cpu_type = cpu->name; 271 sparc_cpu_type = cpu->name;
272 sparc_pmu_type = cpu->pmu_name;
254 sparc_fpu_type = "No FPU"; 273 sparc_fpu_type = "No FPU";
255 break; 274 break;
256 } 275 }
257 cpu++; 276 cpu++;
258 } 277 }
259 fpu = &manufacturer_info[psr_impl].fpu_info[0]; 278 fpu = &manuf->fpu_info[0];
260 while (fpu->fp_vers != -1) 279 while (fpu->fp_vers != -1)
261 { 280 {
262 if (fpu->fp_vers == fpu_vers) { 281 if (fpu->fp_vers == fpu_vers) {
@@ -278,6 +297,8 @@ static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
278 psr_impl, fpu_vers); 297 psr_impl, fpu_vers);
279 sparc_fpu_type = "Unknown FPU"; 298 sparc_fpu_type = "Unknown FPU";
280 } 299 }
300 if (sparc_pmu_type == NULL)
301 sparc_pmu_type = "Unknown PMU";
281} 302}
282 303
283#ifdef CONFIG_SPARC32 304#ifdef CONFIG_SPARC32
@@ -303,11 +324,13 @@ static void __init sun4v_cpu_probe(void)
303 case SUN4V_CHIP_NIAGARA1: 324 case SUN4V_CHIP_NIAGARA1:
304 sparc_cpu_type = "UltraSparc T1 (Niagara)"; 325 sparc_cpu_type = "UltraSparc T1 (Niagara)";
305 sparc_fpu_type = "UltraSparc T1 integrated FPU"; 326 sparc_fpu_type = "UltraSparc T1 integrated FPU";
327 sparc_pmu_type = "niagara";
306 break; 328 break;
307 329
308 case SUN4V_CHIP_NIAGARA2: 330 case SUN4V_CHIP_NIAGARA2:
309 sparc_cpu_type = "UltraSparc T2 (Niagara2)"; 331 sparc_cpu_type = "UltraSparc T2 (Niagara2)";
310 sparc_fpu_type = "UltraSparc T2 integrated FPU"; 332 sparc_fpu_type = "UltraSparc T2 integrated FPU";
333 sparc_pmu_type = "niagara2";
311 break; 334 break;
312 335
313 default: 336 default:
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S
index faf9ccd9ef5d..f41ecc5ac0b4 100644
--- a/arch/sparc/kernel/entry.S
+++ b/arch/sparc/kernel/entry.S
@@ -1088,8 +1088,8 @@ sunos_execv:
1088 ld [%sp + STACKFRAME_SZ + PT_I0], %o0 1088 ld [%sp + STACKFRAME_SZ + PT_I0], %o0
1089 1089
1090 .align 4 1090 .align 4
1091 .globl sys_pipe 1091 .globl sys_sparc_pipe
1092sys_pipe: 1092sys_sparc_pipe:
1093 mov %o7, %l5 1093 mov %o7, %l5
1094 add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg 1094 add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg
1095 call sparc_pipe 1095 call sparc_pipe
diff --git a/arch/sparc/kernel/head_64.S b/arch/sparc/kernel/head_64.S
index 8ffee714f932..a46c3a21e26d 100644
--- a/arch/sparc/kernel/head_64.S
+++ b/arch/sparc/kernel/head_64.S
@@ -891,10 +891,35 @@ prom_tba: .xword 0
891tlb_type: .word 0 /* Must NOT end up in BSS */ 891tlb_type: .word 0 /* Must NOT end up in BSS */
892 .section ".fixup",#alloc,#execinstr 892 .section ".fixup",#alloc,#execinstr
893 893
894 .globl __ret_efault, __retl_efault 894 .globl __ret_efault, __retl_efault, __ret_one, __retl_one
895__ret_efault: 895ENTRY(__ret_efault)
896 ret 896 ret
897 restore %g0, -EFAULT, %o0 897 restore %g0, -EFAULT, %o0
898__retl_efault: 898ENDPROC(__ret_efault)
899
900ENTRY(__retl_efault)
899 retl 901 retl
900 mov -EFAULT, %o0 902 mov -EFAULT, %o0
903ENDPROC(__retl_efault)
904
905ENTRY(__retl_one)
906 retl
907 mov 1, %o0
908ENDPROC(__retl_one)
909
910ENTRY(__ret_one_asi)
911 wr %g0, ASI_AIUS, %asi
912 ret
913 restore %g0, 1, %o0
914ENDPROC(__ret_one_asi)
915
916ENTRY(__retl_one_asi)
917 wr %g0, ASI_AIUS, %asi
918 retl
919 mov 1, %o0
920ENDPROC(__retl_one_asi)
921
922ENTRY(__retl_o1)
923 retl
924 mov %o1, %o0
925ENDPROC(__retl_o1)
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c
index 4ac5c651e00d..3d2c6baae96b 100644
--- a/arch/sparc/kernel/irq_64.c
+++ b/arch/sparc/kernel/irq_64.c
@@ -196,6 +196,11 @@ int show_interrupts(struct seq_file *p, void *v)
196 seq_putc(p, '\n'); 196 seq_putc(p, '\n');
197skip: 197skip:
198 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 198 spin_unlock_irqrestore(&irq_desc[i].lock, flags);
199 } else if (i == NR_IRQS) {
200 seq_printf(p, "NMI: ");
201 for_each_online_cpu(j)
202 seq_printf(p, "%10u ", cpu_data(j).__nmi_count);
203 seq_printf(p, " Non-maskable interrupts\n");
199 } 204 }
200 return 0; 205 return 0;
201} 206}
@@ -779,69 +784,6 @@ void do_softirq(void)
779 local_irq_restore(flags); 784 local_irq_restore(flags);
780} 785}
781 786
782static void unhandled_perf_irq(struct pt_regs *regs)
783{
784 unsigned long pcr, pic;
785
786 read_pcr(pcr);
787 read_pic(pic);
788
789 write_pcr(0);
790
791 printk(KERN_EMERG "CPU %d: Got unexpected perf counter IRQ.\n",
792 smp_processor_id());
793 printk(KERN_EMERG "CPU %d: PCR[%016lx] PIC[%016lx]\n",
794 smp_processor_id(), pcr, pic);
795}
796
797/* Almost a direct copy of the powerpc PMC code. */
798static DEFINE_SPINLOCK(perf_irq_lock);
799static void *perf_irq_owner_caller; /* mostly for debugging */
800static void (*perf_irq)(struct pt_regs *regs) = unhandled_perf_irq;
801
802/* Invoked from level 15 PIL handler in trap table. */
803void perfctr_irq(int irq, struct pt_regs *regs)
804{
805 clear_softint(1 << irq);
806 perf_irq(regs);
807}
808
809int register_perfctr_intr(void (*handler)(struct pt_regs *))
810{
811 int ret;
812
813 if (!handler)
814 return -EINVAL;
815
816 spin_lock(&perf_irq_lock);
817 if (perf_irq != unhandled_perf_irq) {
818 printk(KERN_WARNING "register_perfctr_intr: "
819 "perf IRQ busy (reserved by caller %p)\n",
820 perf_irq_owner_caller);
821 ret = -EBUSY;
822 goto out;
823 }
824
825 perf_irq_owner_caller = __builtin_return_address(0);
826 perf_irq = handler;
827
828 ret = 0;
829out:
830 spin_unlock(&perf_irq_lock);
831
832 return ret;
833}
834EXPORT_SYMBOL_GPL(register_perfctr_intr);
835
836void release_perfctr_intr(void (*handler)(struct pt_regs *))
837{
838 spin_lock(&perf_irq_lock);
839 perf_irq_owner_caller = NULL;
840 perf_irq = unhandled_perf_irq;
841 spin_unlock(&perf_irq_lock);
842}
843EXPORT_SYMBOL_GPL(release_perfctr_intr);
844
845#ifdef CONFIG_HOTPLUG_CPU 787#ifdef CONFIG_HOTPLUG_CPU
846void fixup_irqs(void) 788void fixup_irqs(void)
847{ 789{
diff --git a/arch/sparc/kernel/kernel.h b/arch/sparc/kernel/kernel.h
index 81a972e8d8ea..15d8a3f645c9 100644
--- a/arch/sparc/kernel/kernel.h
+++ b/arch/sparc/kernel/kernel.h
@@ -5,6 +5,7 @@
5 5
6/* cpu.c */ 6/* cpu.c */
7extern const char *sparc_cpu_type; 7extern const char *sparc_cpu_type;
8extern const char *sparc_pmu_type;
8extern const char *sparc_fpu_type; 9extern const char *sparc_fpu_type;
9 10
10extern unsigned int fsr_storage; 11extern unsigned int fsr_storage;
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c
new file mode 100644
index 000000000000..f3577223c863
--- /dev/null
+++ b/arch/sparc/kernel/nmi.c
@@ -0,0 +1,225 @@
1/* Pseudo NMI support on sparc64 systems.
2 *
3 * Copyright (C) 2009 David S. Miller <davem@davemloft.net>
4 *
5 * The NMI watchdog support and infrastructure is based almost
6 * entirely upon the x86 NMI support code.
7 */
8#include <linux/kernel.h>
9#include <linux/param.h>
10#include <linux/init.h>
11#include <linux/percpu.h>
12#include <linux/nmi.h>
13#include <linux/module.h>
14#include <linux/kprobes.h>
15#include <linux/kernel_stat.h>
16#include <linux/slab.h>
17#include <linux/kdebug.h>
18#include <linux/delay.h>
19#include <linux/smp.h>
20
21#include <asm/ptrace.h>
22#include <asm/local.h>
23#include <asm/pcr.h>
24
25/* We don't have a real NMI on sparc64, but we can fake one
26 * up using profiling counter overflow interrupts and interrupt
27 * levels.
28 *
29 * The profile overflow interrupts at level 15, so we use
30 * level 14 as our IRQ off level.
31 */
32
33static int nmi_watchdog_active;
34static int panic_on_timeout;
35
36int nmi_usable;
37EXPORT_SYMBOL_GPL(nmi_usable);
38
39static unsigned int nmi_hz = HZ;
40
41static DEFINE_PER_CPU(unsigned int, last_irq_sum);
42static DEFINE_PER_CPU(local_t, alert_counter);
43static DEFINE_PER_CPU(int, nmi_touch);
44
45void touch_nmi_watchdog(void)
46{
47 if (nmi_watchdog_active) {
48 int cpu;
49
50 for_each_present_cpu(cpu) {
51 if (per_cpu(nmi_touch, cpu) != 1)
52 per_cpu(nmi_touch, cpu) = 1;
53 }
54 }
55
56 touch_softlockup_watchdog();
57}
58EXPORT_SYMBOL(touch_nmi_watchdog);
59
60static void die_nmi(const char *str, struct pt_regs *regs, int do_panic)
61{
62 if (notify_die(DIE_NMIWATCHDOG, str, regs, 0,
63 pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP)
64 return;
65
66 console_verbose();
67 bust_spinlocks(1);
68
69 printk(KERN_EMERG "%s", str);
70 printk(" on CPU%d, ip %08lx, registers:\n",
71 smp_processor_id(), regs->tpc);
72 show_regs(regs);
73 dump_stack();
74
75 bust_spinlocks(0);
76
77 if (do_panic || panic_on_oops)
78 panic("Non maskable interrupt");
79
80 local_irq_enable();
81 do_exit(SIGBUS);
82}
83
84notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
85{
86 unsigned int sum, touched = 0;
87 int cpu = smp_processor_id();
88
89 clear_softint(1 << irq);
90 pcr_ops->write(PCR_PIC_PRIV);
91
92 local_cpu_data().__nmi_count++;
93
94 if (notify_die(DIE_NMI, "nmi", regs, 0,
95 pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP)
96 touched = 1;
97
98 sum = kstat_irqs_cpu(0, cpu);
99 if (__get_cpu_var(nmi_touch)) {
100 __get_cpu_var(nmi_touch) = 0;
101 touched = 1;
102 }
103 if (!touched && __get_cpu_var(last_irq_sum) == sum) {
104 local_inc(&__get_cpu_var(alert_counter));
105 if (local_read(&__get_cpu_var(alert_counter)) == 5 * nmi_hz)
106 die_nmi("BUG: NMI Watchdog detected LOCKUP",
107 regs, panic_on_timeout);
108 } else {
109 __get_cpu_var(last_irq_sum) = sum;
110 local_set(&__get_cpu_var(alert_counter), 0);
111 }
112 if (nmi_usable) {
113 write_pic(picl_value(nmi_hz));
114 pcr_ops->write(pcr_enable);
115 }
116}
117
118static inline unsigned int get_nmi_count(int cpu)
119{
120 return cpu_data(cpu).__nmi_count;
121}
122
123static int endflag __initdata;
124
125static __init void nmi_cpu_busy(void *data)
126{
127 local_irq_enable_in_hardirq();
128 while (endflag == 0)
129 mb();
130}
131
132static void report_broken_nmi(int cpu, int *prev_nmi_count)
133{
134 printk(KERN_CONT "\n");
135
136 printk(KERN_WARNING
137 "WARNING: CPU#%d: NMI appears to be stuck (%d->%d)!\n",
138 cpu, prev_nmi_count[cpu], get_nmi_count(cpu));
139
140 printk(KERN_WARNING
141 "Please report this to bugzilla.kernel.org,\n");
142 printk(KERN_WARNING
143 "and attach the output of the 'dmesg' command.\n");
144
145 nmi_usable = 0;
146}
147
148static void stop_watchdog(void *unused)
149{
150 pcr_ops->write(PCR_PIC_PRIV);
151}
152
153static int __init check_nmi_watchdog(void)
154{
155 unsigned int *prev_nmi_count;
156 int cpu, err;
157
158 prev_nmi_count = kmalloc(nr_cpu_ids * sizeof(unsigned int), GFP_KERNEL);
159 if (!prev_nmi_count) {
160 err = -ENOMEM;
161 goto error;
162 }
163
164 printk(KERN_INFO "Testing NMI watchdog ... ");
165
166 smp_call_function(nmi_cpu_busy, (void *)&endflag, 0);
167
168 for_each_possible_cpu(cpu)
169 prev_nmi_count[cpu] = get_nmi_count(cpu);
170 local_irq_enable();
171 mdelay((20 * 1000) / nmi_hz); /* wait 20 ticks */
172
173 for_each_online_cpu(cpu) {
174 if (get_nmi_count(cpu) - prev_nmi_count[cpu] <= 5)
175 report_broken_nmi(cpu, prev_nmi_count);
176 }
177 endflag = 1;
178 if (!nmi_usable) {
179 kfree(prev_nmi_count);
180 err = -ENODEV;
181 goto error;
182 }
183 printk("OK.\n");
184
185 nmi_hz = 1;
186
187 kfree(prev_nmi_count);
188 return 0;
189error:
190 on_each_cpu(stop_watchdog, NULL, 1);
191 return err;
192}
193
194static void start_watchdog(void *unused)
195{
196 pcr_ops->write(PCR_PIC_PRIV);
197 write_pic(picl_value(nmi_hz));
198
199 pcr_ops->write(pcr_enable);
200}
201
202void nmi_adjust_hz(unsigned int new_hz)
203{
204 nmi_hz = new_hz;
205 on_each_cpu(start_watchdog, NULL, 1);
206}
207EXPORT_SYMBOL_GPL(nmi_adjust_hz);
208
209int __init nmi_init(void)
210{
211 nmi_usable = 1;
212
213 on_each_cpu(start_watchdog, NULL, 1);
214
215 return check_nmi_watchdog();
216}
217
218static int __init setup_nmi_watchdog(char *str)
219{
220 if (!strncmp(str, "panic", 5))
221 panic_on_timeout = 1;
222
223 return 0;
224}
225__setup("nmi_watchdog=", setup_nmi_watchdog);
diff --git a/arch/sparc/kernel/pcr.c b/arch/sparc/kernel/pcr.c
new file mode 100644
index 000000000000..1ae8cdd7e703
--- /dev/null
+++ b/arch/sparc/kernel/pcr.c
@@ -0,0 +1,158 @@
1/* pcr.c: Generic sparc64 performance counter infrastructure.
2 *
3 * Copyright (C) 2009 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/irq.h>
9
10#include <asm/pil.h>
11#include <asm/pcr.h>
12#include <asm/nmi.h>
13
14/* This code is shared between various users of the performance
15 * counters. Users will be oprofile, pseudo-NMI watchdog, and the
16 * perf_counter support layer.
17 */
18
19#define PCR_SUN4U_ENABLE (PCR_PIC_PRIV | PCR_STRACE | PCR_UTRACE)
20#define PCR_N2_ENABLE (PCR_PIC_PRIV | PCR_STRACE | PCR_UTRACE | \
21 PCR_N2_TOE_OV1 | \
22 (2 << PCR_N2_SL1_SHIFT) | \
23 (0xff << PCR_N2_MASK1_SHIFT))
24
25u64 pcr_enable;
26unsigned int picl_shift;
27
28/* Performance counter interrupts run unmasked at PIL level 15.
29 * Therefore we can't do things like wakeups and other work
30 * that expects IRQ disabling to be adhered to in locking etc.
31 *
32 * Therefore in such situations we defer the work by signalling
33 * a lower level cpu IRQ.
34 */
35void deferred_pcr_work_irq(int irq, struct pt_regs *regs)
36{
37 clear_softint(1 << PIL_DEFERRED_PCR_WORK);
38}
39
40void schedule_deferred_pcr_work(void)
41{
42 set_softint(1 << PIL_DEFERRED_PCR_WORK);
43}
44
45const struct pcr_ops *pcr_ops;
46EXPORT_SYMBOL_GPL(pcr_ops);
47
48static u64 direct_pcr_read(void)
49{
50 u64 val;
51
52 read_pcr(val);
53 return val;
54}
55
56static void direct_pcr_write(u64 val)
57{
58 write_pcr(val);
59}
60
61static const struct pcr_ops direct_pcr_ops = {
62 .read = direct_pcr_read,
63 .write = direct_pcr_write,
64};
65
66static void n2_pcr_write(u64 val)
67{
68 unsigned long ret;
69
70 ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val);
71 if (val != HV_EOK)
72 write_pcr(val);
73}
74
75static const struct pcr_ops n2_pcr_ops = {
76 .read = direct_pcr_read,
77 .write = n2_pcr_write,
78};
79
80static unsigned long perf_hsvc_group;
81static unsigned long perf_hsvc_major;
82static unsigned long perf_hsvc_minor;
83
84static int __init register_perf_hsvc(void)
85{
86 if (tlb_type == hypervisor) {
87 switch (sun4v_chip_type) {
88 case SUN4V_CHIP_NIAGARA1:
89 perf_hsvc_group = HV_GRP_NIAG_PERF;
90 break;
91
92 case SUN4V_CHIP_NIAGARA2:
93 perf_hsvc_group = HV_GRP_N2_CPU;
94 break;
95
96 default:
97 return -ENODEV;
98 }
99
100
101 perf_hsvc_major = 1;
102 perf_hsvc_minor = 0;
103 if (sun4v_hvapi_register(perf_hsvc_group,
104 perf_hsvc_major,
105 &perf_hsvc_minor)) {
106 printk("perfmon: Could not register hvapi.\n");
107 return -ENODEV;
108 }
109 }
110 return 0;
111}
112
113static void __init unregister_perf_hsvc(void)
114{
115 if (tlb_type != hypervisor)
116 return;
117 sun4v_hvapi_unregister(perf_hsvc_group);
118}
119
120int __init pcr_arch_init(void)
121{
122 int err = register_perf_hsvc();
123
124 if (err)
125 return err;
126
127 switch (tlb_type) {
128 case hypervisor:
129 pcr_ops = &n2_pcr_ops;
130 pcr_enable = PCR_N2_ENABLE;
131 picl_shift = 2;
132 break;
133
134 case cheetah:
135 case cheetah_plus:
136 pcr_ops = &direct_pcr_ops;
137 pcr_enable = PCR_SUN4U_ENABLE;
138 break;
139
140 case spitfire:
141 /* UltraSPARC-I/II and derivatives lack a profile
142 * counter overflow interrupt so we can't make use of
143 * their hardware currently.
144 */
145 /* fallthrough */
146 default:
147 err = -ENODEV;
148 goto out_unregister;
149 }
150
151 return nmi_init();
152
153out_unregister:
154 unregister_perf_hsvc();
155 return err;
156}
157
158arch_initcall(pcr_arch_init);
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
index cc8b5604442c..a73954b87f0a 100644
--- a/arch/sparc/kernel/process_64.c
+++ b/arch/sparc/kernel/process_64.c
@@ -29,6 +29,7 @@
29#include <linux/cpu.h> 29#include <linux/cpu.h>
30#include <linux/elfcore.h> 30#include <linux/elfcore.h>
31#include <linux/sysrq.h> 31#include <linux/sysrq.h>
32#include <linux/nmi.h>
32 33
33#include <asm/uaccess.h> 34#include <asm/uaccess.h>
34#include <asm/system.h> 35#include <asm/system.h>
@@ -52,8 +53,10 @@
52 53
53static void sparc64_yield(int cpu) 54static void sparc64_yield(int cpu)
54{ 55{
55 if (tlb_type != hypervisor) 56 if (tlb_type != hypervisor) {
57 touch_nmi_watchdog();
56 return; 58 return;
59 }
57 60
58 clear_thread_flag(TIF_POLLING_NRFLAG); 61 clear_thread_flag(TIF_POLLING_NRFLAG);
59 smp_mb__after_clear_bit(); 62 smp_mb__after_clear_bit();
diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c
index 49d061f4ae9d..f2bcfd2967d7 100644
--- a/arch/sparc/kernel/setup_64.c
+++ b/arch/sparc/kernel/setup_64.c
@@ -354,6 +354,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
354 seq_printf(m, 354 seq_printf(m,
355 "cpu\t\t: %s\n" 355 "cpu\t\t: %s\n"
356 "fpu\t\t: %s\n" 356 "fpu\t\t: %s\n"
357 "pmu\t\t: %s\n"
357 "prom\t\t: %s\n" 358 "prom\t\t: %s\n"
358 "type\t\t: %s\n" 359 "type\t\t: %s\n"
359 "ncpus probed\t: %d\n" 360 "ncpus probed\t: %d\n"
@@ -366,6 +367,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
366 , 367 ,
367 sparc_cpu_type, 368 sparc_cpu_type,
368 sparc_fpu_type, 369 sparc_fpu_type,
370 sparc_pmu_type,
369 prom_version, 371 prom_version,
370 ((tlb_type == hypervisor) ? 372 ((tlb_type == hypervisor) ?
371 "sun4v" : 373 "sun4v" :
diff --git a/arch/sparc/kernel/sparc_ksyms_64.c b/arch/sparc/kernel/sparc_ksyms_64.c
index da8f804feb49..0f26066a08d9 100644
--- a/arch/sparc/kernel/sparc_ksyms_64.c
+++ b/arch/sparc/kernel/sparc_ksyms_64.c
@@ -9,7 +9,6 @@
9#include <linux/pci.h> 9#include <linux/pci.h>
10#include <linux/init.h> 10#include <linux/init.h>
11 11
12#include <asm/spinlock.h>
13#include <asm/system.h> 12#include <asm/system.h>
14#include <asm/cpudata.h> 13#include <asm/cpudata.h>
15#include <asm/uaccess.h> 14#include <asm/uaccess.h>
@@ -23,16 +22,6 @@ struct poll {
23 short revents; 22 short revents;
24}; 23};
25 24
26/* used by various drivers */
27#ifdef CONFIG_SMP
28/* Out of line rw-locking implementation. */
29EXPORT_SYMBOL(__read_lock);
30EXPORT_SYMBOL(__read_unlock);
31EXPORT_SYMBOL(__write_lock);
32EXPORT_SYMBOL(__write_unlock);
33EXPORT_SYMBOL(__write_trylock);
34#endif /* CONFIG_SMP */
35
36/* from helpers.S */ 25/* from helpers.S */
37EXPORT_SYMBOL(__flushw_user); 26EXPORT_SYMBOL(__flushw_user);
38EXPORT_SYMBOL_GPL(real_hard_smp_processor_id); 27EXPORT_SYMBOL_GPL(real_hard_smp_processor_id);
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
index 09058fc39e73..e2d102447a43 100644
--- a/arch/sparc/kernel/sys_sparc_64.c
+++ b/arch/sparc/kernel/sys_sparc_64.c
@@ -399,7 +399,7 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
399 } 399 }
400} 400}
401 401
402asmlinkage unsigned long sparc_brk(unsigned long brk) 402SYSCALL_DEFINE1(sparc_brk, unsigned long, brk)
403{ 403{
404 /* People could try to be nasty and use ta 0x6d in 32bit programs */ 404 /* People could try to be nasty and use ta 0x6d in 32bit programs */
405 if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32) 405 if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32)
@@ -415,7 +415,7 @@ asmlinkage unsigned long sparc_brk(unsigned long brk)
415 * sys_pipe() is the normal C calling standard for creating 415 * sys_pipe() is the normal C calling standard for creating
416 * a pipe. It's not the way unix traditionally does this, though. 416 * a pipe. It's not the way unix traditionally does this, though.
417 */ 417 */
418asmlinkage long sparc_pipe(struct pt_regs *regs) 418SYSCALL_DEFINE1(sparc_pipe_real, struct pt_regs *, regs)
419{ 419{
420 int fd[2]; 420 int fd[2];
421 int error; 421 int error;
@@ -435,8 +435,8 @@ out:
435 * This is really horribly ugly. 435 * This is really horribly ugly.
436 */ 436 */
437 437
438asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second, 438SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second,
439 unsigned long third, void __user *ptr, long fifth) 439 unsigned long, third, void __user *, ptr, long, fifth)
440{ 440{
441 long err; 441 long err;
442 442
@@ -519,7 +519,7 @@ out:
519 return err; 519 return err;
520} 520}
521 521
522asmlinkage long sparc64_newuname(struct new_utsname __user *name) 522SYSCALL_DEFINE1(sparc64_newuname, struct new_utsname __user *, name)
523{ 523{
524 int ret = sys_newuname(name); 524 int ret = sys_newuname(name);
525 525
@@ -530,7 +530,7 @@ asmlinkage long sparc64_newuname(struct new_utsname __user *name)
530 return ret; 530 return ret;
531} 531}
532 532
533asmlinkage long sparc64_personality(unsigned long personality) 533SYSCALL_DEFINE1(sparc64_personality, unsigned long, personality)
534{ 534{
535 int ret; 535 int ret;
536 536
@@ -564,9 +564,9 @@ int sparc_mmap_check(unsigned long addr, unsigned long len)
564} 564}
565 565
566/* Linux version of mmap */ 566/* Linux version of mmap */
567asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len, 567SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,
568 unsigned long prot, unsigned long flags, unsigned long fd, 568 unsigned long, prot, unsigned long, flags, unsigned long, fd,
569 unsigned long off) 569 unsigned long, off)
570{ 570{
571 struct file * file = NULL; 571 struct file * file = NULL;
572 unsigned long retval = -EBADF; 572 unsigned long retval = -EBADF;
@@ -589,7 +589,7 @@ out:
589 return retval; 589 return retval;
590} 590}
591 591
592asmlinkage long sys64_munmap(unsigned long addr, size_t len) 592SYSCALL_DEFINE2(64_munmap, unsigned long, addr, size_t, len)
593{ 593{
594 long ret; 594 long ret;
595 595
@@ -606,9 +606,9 @@ extern unsigned long do_mremap(unsigned long addr,
606 unsigned long old_len, unsigned long new_len, 606 unsigned long old_len, unsigned long new_len,
607 unsigned long flags, unsigned long new_addr); 607 unsigned long flags, unsigned long new_addr);
608 608
609asmlinkage unsigned long sys64_mremap(unsigned long addr, 609SYSCALL_DEFINE5(64_mremap, unsigned long, addr, unsigned long, old_len,
610 unsigned long old_len, unsigned long new_len, 610 unsigned long, new_len, unsigned long, flags,
611 unsigned long flags, unsigned long new_addr) 611 unsigned long, new_addr)
612{ 612{
613 unsigned long ret = -EINVAL; 613 unsigned long ret = -EINVAL;
614 614
@@ -671,7 +671,7 @@ asmlinkage void sparc_breakpoint(struct pt_regs *regs)
671 671
672extern void check_pending(int signum); 672extern void check_pending(int signum);
673 673
674asmlinkage long sys_getdomainname(char __user *name, int len) 674SYSCALL_DEFINE2(getdomainname, char __user *, name, int, len)
675{ 675{
676 int nlen, err; 676 int nlen, err;
677 677
@@ -694,11 +694,10 @@ out:
694 return err; 694 return err;
695} 695}
696 696
697asmlinkage long sys_utrap_install(utrap_entry_t type, 697SYSCALL_DEFINE5(utrap_install, utrap_entry_t, type,
698 utrap_handler_t new_p, 698 utrap_handler_t, new_p, utrap_handler_t, new_d,
699 utrap_handler_t new_d, 699 utrap_handler_t __user *, old_p,
700 utrap_handler_t __user *old_p, 700 utrap_handler_t __user *, old_d)
701 utrap_handler_t __user *old_d)
702{ 701{
703 if (type < UT_INSTRUCTION_EXCEPTION || type > UT_TRAP_INSTRUCTION_31) 702 if (type < UT_INSTRUCTION_EXCEPTION || type > UT_TRAP_INSTRUCTION_31)
704 return -EINVAL; 703 return -EINVAL;
@@ -764,11 +763,9 @@ asmlinkage long sparc_memory_ordering(unsigned long model,
764 return 0; 763 return 0;
765} 764}
766 765
767asmlinkage long sys_rt_sigaction(int sig, 766SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act,
768 const struct sigaction __user *act, 767 struct sigaction __user *, oact, void __user *, restorer,
769 struct sigaction __user *oact, 768 size_t, sigsetsize)
770 void __user *restorer,
771 size_t sigsetsize)
772{ 769{
773 struct k_sigaction new_ka, old_ka; 770 struct k_sigaction new_ka, old_ka;
774 int ret; 771 int ret;
@@ -808,7 +805,8 @@ asmlinkage void update_perfctrs(void)
808 reset_pic(); 805 reset_pic();
809} 806}
810 807
811asmlinkage long sys_perfctr(int opcode, unsigned long arg0, unsigned long arg1, unsigned long arg2) 808SYSCALL_DEFINE4(perfctr, int, opcode, unsigned long, arg0,
809 unsigned long, arg1, unsigned long, arg2)
812{ 810{
813 int err = 0; 811 int err = 0;
814 812
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
index 7a6786a71363..d150c2aa98d2 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -20,8 +20,8 @@ execve_merge:
20 add %sp, PTREGS_OFF, %o0 20 add %sp, PTREGS_OFF, %o0
21 21
22 .align 32 22 .align 32
23sys_pipe: 23sys_sparc_pipe:
24 ba,pt %xcc, sparc_pipe 24 ba,pt %xcc, sys_sparc_pipe_real
25 add %sp, PTREGS_OFF, %o0 25 add %sp, PTREGS_OFF, %o0
26sys_nis_syscall: 26sys_nis_syscall:
27 ba,pt %xcc, c_sys_nis_syscall 27 ba,pt %xcc, c_sys_nis_syscall
diff --git a/arch/sparc/kernel/systbls.h b/arch/sparc/kernel/systbls.h
index bc9f5dac4069..15c2d752b2bc 100644
--- a/arch/sparc/kernel/systbls.h
+++ b/arch/sparc/kernel/systbls.h
@@ -16,9 +16,6 @@ extern asmlinkage long sys_ipc(unsigned int call, int first,
16 void __user *ptr, long fifth); 16 void __user *ptr, long fifth);
17extern asmlinkage long sparc64_newuname(struct new_utsname __user *name); 17extern asmlinkage long sparc64_newuname(struct new_utsname __user *name);
18extern asmlinkage long sparc64_personality(unsigned long personality); 18extern asmlinkage long sparc64_personality(unsigned long personality);
19extern asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len,
20 unsigned long prot, unsigned long flags,
21 unsigned long fd, unsigned long off);
22extern asmlinkage long sys64_munmap(unsigned long addr, size_t len); 19extern asmlinkage long sys64_munmap(unsigned long addr, size_t len);
23extern asmlinkage unsigned long sys64_mremap(unsigned long addr, 20extern asmlinkage unsigned long sys64_mremap(unsigned long addr,
24 unsigned long old_len, 21 unsigned long old_len,
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S
index 7d0807586442..dccc95df0c7f 100644
--- a/arch/sparc/kernel/systbls_32.S
+++ b/arch/sparc/kernel/systbls_32.S
@@ -24,7 +24,7 @@ sys_call_table:
24/*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause 24/*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause
25/*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice 25/*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice
26/*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile 26/*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile
27/*40*/ .long sys_newlstat, sys_dup, sys_pipe, sys_times, sys_getuid 27/*40*/ .long sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_getuid
28/*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16 28/*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16
29/*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl 29/*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl
30/*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve 30/*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve
@@ -56,7 +56,7 @@ sys_call_table:
56/*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname 56/*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname
57/*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl 57/*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl
58/*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask 58/*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask
59/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, old_readdir 59/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, sys_old_readdir
60/*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 60/*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
61/*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo 61/*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo
62/*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex 62/*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S
index 9fc78cf354bd..f93c42a2b522 100644
--- a/arch/sparc/kernel/systbls_64.S
+++ b/arch/sparc/kernel/systbls_64.S
@@ -21,12 +21,12 @@ sys_call_table32:
21/*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write 21/*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write
22/*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link 22/*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link
23/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod 23/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod
24/*15*/ .word sys_chmod, sys_lchown16, sparc_brk, sys32_perfctr, sys32_lseek 24/*15*/ .word sys_chmod, sys_lchown16, sys_sparc_brk, sys32_perfctr, sys32_lseek
25/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 25/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16
26/*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause 26/*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause
27/*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice 27/*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice
28 .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile 28 .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile
29/*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid 29/*40*/ .word compat_sys_newlstat, sys_dup, sys_sparc_pipe, compat_sys_times, sys_getuid
30 .word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16 30 .word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16
31/*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl 31/*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
32 .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve 32 .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve
@@ -55,8 +55,8 @@ sys_call_table32:
55/*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents 55/*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents
56 .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr 56 .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr
57/*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall 57/*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall
58 .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sparc64_newuname 58 .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sys_sparc64_newuname
59/*190*/ .word sys32_init_module, sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl 59/*190*/ .word sys32_init_module, sys_sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl
60 .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask 60 .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask
61/*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir 61/*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
62 .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64 62 .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64
@@ -95,18 +95,18 @@ sys_call_table:
95/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write 95/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
96/*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link 96/*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link
97/*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod 97/*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod
98/*15*/ .word sys_chmod, sys_lchown, sparc_brk, sys_perfctr, sys_lseek 98/*15*/ .word sys_chmod, sys_lchown, sys_sparc_brk, sys_perfctr, sys_lseek
99/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid 99/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid
100/*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall 100/*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall
101/*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice 101/*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice
102 .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64 102 .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64
103/*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall 103/*40*/ .word sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_nis_syscall
104 .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid 104 .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid
105/*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl 105/*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl
106 .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve 106 .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
107/*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize 107/*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
108 .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall 108 .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall
109/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys64_munmap, sys_mprotect 109/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys_64_munmap, sys_mprotect
110 .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups 110 .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups
111/*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall 111/*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall
112 .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall 112 .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall
@@ -129,8 +129,8 @@ sys_call_table:
129/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents 129/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents
130 .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr 130 .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
131/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall 131/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall
132 .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sparc64_newuname 132 .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_sparc64_newuname
133/*190*/ .word sys_init_module, sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl 133/*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl
134 .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask 134 .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask
135/*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall 135/*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall
136 .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 136 .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
@@ -142,7 +142,7 @@ sys_call_table:
142 .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall 142 .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
143/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler 143/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
144 .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep 144 .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep
145/*250*/ .word sys64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl 145/*250*/ .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl
146 .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep 146 .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
147/*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun 147/*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
148 .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy 148 .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy
diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
index c2d153d46586..d809c4ebb48f 100644
--- a/arch/sparc/kernel/traps_64.c
+++ b/arch/sparc/kernel/traps_64.c
@@ -1,6 +1,6 @@
1/* arch/sparc64/kernel/traps.c 1/* arch/sparc64/kernel/traps.c
2 * 2 *
3 * Copyright (C) 1995,1997,2008 David S. Miller (davem@davemloft.net) 3 * Copyright (C) 1995,1997,2008,2009 David S. Miller (davem@davemloft.net)
4 * Copyright (C) 1997,1999,2000 Jakub Jelinek (jakub@redhat.com) 4 * Copyright (C) 1997,1999,2000 Jakub Jelinek (jakub@redhat.com)
5 */ 5 */
6 6
@@ -314,6 +314,21 @@ void sun4v_data_access_exception(struct pt_regs *regs, unsigned long addr, unsig
314 return; 314 return;
315 315
316 if (regs->tstate & TSTATE_PRIV) { 316 if (regs->tstate & TSTATE_PRIV) {
317 /* Test if this comes from uaccess places. */
318 const struct exception_table_entry *entry;
319
320 entry = search_exception_tables(regs->tpc);
321 if (entry) {
322 /* Ouch, somebody is trying VM hole tricks on us... */
323#ifdef DEBUG_EXCEPTIONS
324 printk("Exception: PC<%016lx> faddr<UNKNOWN>\n", regs->tpc);
325 printk("EX_TABLE: insn<%016lx> fixup<%016lx>\n",
326 regs->tpc, entry->fixup);
327#endif
328 regs->tpc = entry->fixup;
329 regs->tnpc = regs->tpc + 4;
330 return;
331 }
317 printk("sun4v_data_access_exception: ADDR[%016lx] " 332 printk("sun4v_data_access_exception: ADDR[%016lx] "
318 "CTX[%04x] TYPE[%04x], going.\n", 333 "CTX[%04x] TYPE[%04x], going.\n",
319 addr, ctx, type); 334 addr, ctx, type);
diff --git a/arch/sparc/kernel/ttable.S b/arch/sparc/kernel/ttable.S
index ea925503b42e..d9bdfb9d5c18 100644
--- a/arch/sparc/kernel/ttable.S
+++ b/arch/sparc/kernel/ttable.S
@@ -63,7 +63,8 @@ tl0_irq6: TRAP_IRQ(smp_call_function_single_client, 6)
63#else 63#else
64tl0_irq6: BTRAP(0x46) 64tl0_irq6: BTRAP(0x46)
65#endif 65#endif
66tl0_irq7: BTRAP(0x47) BTRAP(0x48) BTRAP(0x49) 66tl0_irq7: TRAP_IRQ(deferred_pcr_work_irq, 7)
67tl0_irq8: BTRAP(0x48) BTRAP(0x49)
67tl0_irq10: BTRAP(0x4a) BTRAP(0x4b) BTRAP(0x4c) BTRAP(0x4d) 68tl0_irq10: BTRAP(0x4a) BTRAP(0x4b) BTRAP(0x4c) BTRAP(0x4d)
68tl0_irq14: TRAP_IRQ(timer_interrupt, 14) 69tl0_irq14: TRAP_IRQ(timer_interrupt, 14)
69tl0_irq15: TRAP_NMI_IRQ(perfctr_irq, 15) 70tl0_irq15: TRAP_NMI_IRQ(perfctr_irq, 15)
diff --git a/arch/sparc/lib/GENbzero.S b/arch/sparc/lib/GENbzero.S
index 6a4f956a2f7a..8e7a843ddd88 100644
--- a/arch/sparc/lib/GENbzero.S
+++ b/arch/sparc/lib/GENbzero.S
@@ -6,13 +6,9 @@
6 6
7#define EX_ST(x,y) \ 7#define EX_ST(x,y) \
898: x,y; \ 898: x,y; \
9 .section .fixup; \
10 .align 4; \
1199: retl; \
12 mov %o1, %o0; \
13 .section __ex_table,"a";\ 9 .section __ex_table,"a";\
14 .align 4; \ 10 .align 4; \
15 .word 98b, 99b; \ 11 .word 98b, __retl_o1; \
16 .text; \ 12 .text; \
17 .align 4; 13 .align 4;
18 14
diff --git a/arch/sparc/lib/GENcopy_from_user.S b/arch/sparc/lib/GENcopy_from_user.S
index 2b9df99e87f9..b7d0bd6b1406 100644
--- a/arch/sparc/lib/GENcopy_from_user.S
+++ b/arch/sparc/lib/GENcopy_from_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -27,7 +23,7 @@
27#define PREAMBLE \ 23#define PREAMBLE \
28 rd %asi, %g1; \ 24 rd %asi, %g1; \
29 cmp %g1, ASI_AIUS; \ 25 cmp %g1, ASI_AIUS; \
30 bne,pn %icc, memcpy_user_stub; \ 26 bne,pn %icc, ___copy_in_user; \
31 nop 27 nop
32#endif 28#endif
33 29
diff --git a/arch/sparc/lib/GENcopy_to_user.S b/arch/sparc/lib/GENcopy_to_user.S
index bb3f7084daf9..780550e1afc7 100644
--- a/arch/sparc/lib/GENcopy_to_user.S
+++ b/arch/sparc/lib/GENcopy_to_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -31,7 +27,7 @@
31#define PREAMBLE \ 27#define PREAMBLE \
32 rd %asi, %g1; \ 28 rd %asi, %g1; \
33 cmp %g1, ASI_AIUS; \ 29 cmp %g1, ASI_AIUS; \
34 bne,pn %icc, memcpy_user_stub; \ 30 bne,pn %icc, ___copy_in_user; \
35 nop 31 nop
36#endif 32#endif
37 33
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index 273fc85269fc..e75faf0e59ae 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -18,7 +18,7 @@ lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
18lib-y += rwsem_$(BITS).o 18lib-y += rwsem_$(BITS).o
19lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o 19lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o
20 20
21lib-$(CONFIG_SPARC64) += PeeCeeI.o copy_page.o clear_page.o bzero.o 21lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o
22lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o 22lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o
23lib-$(CONFIG_SPARC64) += VISsave.o 23lib-$(CONFIG_SPARC64) += VISsave.o
24lib-$(CONFIG_SPARC64) += bitops.o 24lib-$(CONFIG_SPARC64) += bitops.o
@@ -43,3 +43,4 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o
43obj-y += iomap.o 43obj-y += iomap.o
44obj-$(CONFIG_SPARC32) += atomic32.o 44obj-$(CONFIG_SPARC32) += atomic32.o
45obj-y += ksyms.o 45obj-y += ksyms.o
46obj-$(CONFIG_SPARC64) += PeeCeeI.o
diff --git a/arch/sparc/lib/NG2copy_from_user.S b/arch/sparc/lib/NG2copy_from_user.S
index c77ef5f22102..119ccb9a54f4 100644
--- a/arch/sparc/lib/NG2copy_from_user.S
+++ b/arch/sparc/lib/NG2copy_from_user.S
@@ -5,14 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: wr %g0, ASI_AIUS, %asi;\
11 retl; \
12 mov 1, %o0; \
13 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
14 .align 4; \ 9 .align 4; \
15 .word 98b, 99b; \ 10 .word 98b, __retl_one_asi;\
16 .text; \ 11 .text; \
17 .align 4; 12 .align 4;
18 13
@@ -33,7 +28,7 @@
33#define PREAMBLE \ 28#define PREAMBLE \
34 rd %asi, %g1; \ 29 rd %asi, %g1; \
35 cmp %g1, ASI_AIUS; \ 30 cmp %g1, ASI_AIUS; \
36 bne,pn %icc, memcpy_user_stub; \ 31 bne,pn %icc, ___copy_in_user; \
37 nop 32 nop
38#endif 33#endif
39 34
diff --git a/arch/sparc/lib/NG2copy_to_user.S b/arch/sparc/lib/NG2copy_to_user.S
index 4bd4093acbbd..7fe1ccefd9d0 100644
--- a/arch/sparc/lib/NG2copy_to_user.S
+++ b/arch/sparc/lib/NG2copy_to_user.S
@@ -5,14 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: wr %g0, ASI_AIUS, %asi;\
11 retl; \
12 mov 1, %o0; \
13 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
14 .align 4; \ 9 .align 4; \
15 .word 98b, 99b; \ 10 .word 98b, __retl_one_asi;\
16 .text; \ 11 .text; \
17 .align 4; 12 .align 4;
18 13
@@ -42,7 +37,7 @@
42#define PREAMBLE \ 37#define PREAMBLE \
43 rd %asi, %g1; \ 38 rd %asi, %g1; \
44 cmp %g1, ASI_AIUS; \ 39 cmp %g1, ASI_AIUS; \
45 bne,pn %icc, memcpy_user_stub; \ 40 bne,pn %icc, ___copy_in_user; \
46 nop 41 nop
47#endif 42#endif
48 43
diff --git a/arch/sparc/lib/NGbzero.S b/arch/sparc/lib/NGbzero.S
index 814d5f7a45e1..beab29bf419b 100644
--- a/arch/sparc/lib/NGbzero.S
+++ b/arch/sparc/lib/NGbzero.S
@@ -6,13 +6,9 @@
6 6
7#define EX_ST(x,y) \ 7#define EX_ST(x,y) \
898: x,y; \ 898: x,y; \
9 .section .fixup; \
10 .align 4; \
1199: retl; \
12 mov %o1, %o0; \
13 .section __ex_table,"a";\ 9 .section __ex_table,"a";\
14 .align 4; \ 10 .align 4; \
15 .word 98b, 99b; \ 11 .word 98b, __retl_o1; \
16 .text; \ 12 .text; \
17 .align 4; 13 .align 4;
18 14
diff --git a/arch/sparc/lib/NGcopy_from_user.S b/arch/sparc/lib/NGcopy_from_user.S
index e7f433f71b42..5d1e4d1ac21e 100644
--- a/arch/sparc/lib/NGcopy_from_user.S
+++ b/arch/sparc/lib/NGcopy_from_user.S
@@ -5,14 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: wr %g0, ASI_AIUS, %asi;\
11 ret; \
12 restore %g0, 1, %o0; \
13 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
14 .align 4; \ 9 .align 4; \
15 .word 98b, 99b; \ 10 .word 98b, __ret_one_asi;\
16 .text; \ 11 .text; \
17 .align 4; 12 .align 4;
18 13
@@ -30,7 +25,7 @@
30#define PREAMBLE \ 25#define PREAMBLE \
31 rd %asi, %g1; \ 26 rd %asi, %g1; \
32 cmp %g1, ASI_AIUS; \ 27 cmp %g1, ASI_AIUS; \
33 bne,pn %icc, memcpy_user_stub; \ 28 bne,pn %icc, ___copy_in_user; \
34 nop 29 nop
35#endif 30#endif
36 31
diff --git a/arch/sparc/lib/NGcopy_to_user.S b/arch/sparc/lib/NGcopy_to_user.S
index 6ea01c5532a0..ff630dcb273c 100644
--- a/arch/sparc/lib/NGcopy_to_user.S
+++ b/arch/sparc/lib/NGcopy_to_user.S
@@ -5,14 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: wr %g0, ASI_AIUS, %asi;\
11 ret; \
12 restore %g0, 1, %o0; \
13 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
14 .align 4; \ 9 .align 4; \
15 .word 98b, 99b; \ 10 .word 98b, __ret_one_asi;\
16 .text; \ 11 .text; \
17 .align 4; 12 .align 4;
18 13
@@ -33,7 +28,7 @@
33#define PREAMBLE \ 28#define PREAMBLE \
34 rd %asi, %g1; \ 29 rd %asi, %g1; \
35 cmp %g1, ASI_AIUS; \ 30 cmp %g1, ASI_AIUS; \
36 bne,pn %icc, memcpy_user_stub; \ 31 bne,pn %icc, ___copy_in_user; \
37 nop 32 nop
38#endif 33#endif
39 34
diff --git a/arch/sparc/lib/U1copy_from_user.S b/arch/sparc/lib/U1copy_from_user.S
index 3192b0bf4fab..a6ae2ea04bf5 100644
--- a/arch/sparc/lib/U1copy_from_user.S
+++ b/arch/sparc/lib/U1copy_from_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -27,7 +23,7 @@
27#define PREAMBLE \ 23#define PREAMBLE \
28 rd %asi, %g1; \ 24 rd %asi, %g1; \
29 cmp %g1, ASI_AIUS; \ 25 cmp %g1, ASI_AIUS; \
30 bne,pn %icc, memcpy_user_stub; \ 26 bne,pn %icc, ___copy_in_user; \
31 nop; \ 27 nop; \
32 28
33#include "U1memcpy.S" 29#include "U1memcpy.S"
diff --git a/arch/sparc/lib/U1copy_to_user.S b/arch/sparc/lib/U1copy_to_user.S
index d1210ffb0b82..f4b970eeb485 100644
--- a/arch/sparc/lib/U1copy_to_user.S
+++ b/arch/sparc/lib/U1copy_to_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -27,7 +23,7 @@
27#define PREAMBLE \ 23#define PREAMBLE \
28 rd %asi, %g1; \ 24 rd %asi, %g1; \
29 cmp %g1, ASI_AIUS; \ 25 cmp %g1, ASI_AIUS; \
30 bne,pn %icc, memcpy_user_stub; \ 26 bne,pn %icc, ___copy_in_user; \
31 nop; \ 27 nop; \
32 28
33#include "U1memcpy.S" 29#include "U1memcpy.S"
diff --git a/arch/sparc/lib/U3copy_from_user.S b/arch/sparc/lib/U3copy_from_user.S
index f5bfc8d9d216..b1acd1331c33 100644
--- a/arch/sparc/lib/U3copy_from_user.S
+++ b/arch/sparc/lib/U3copy_from_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
diff --git a/arch/sparc/lib/U3copy_to_user.S b/arch/sparc/lib/U3copy_to_user.S
index 2334f111bb0c..ef1e493afdfa 100644
--- a/arch/sparc/lib/U3copy_to_user.S
+++ b/arch/sparc/lib/U3copy_to_user.S
@@ -5,13 +5,9 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \
9 .align 4; \
1099: retl; \
11 mov 1, %o0; \
12 .section __ex_table,"a";\ 8 .section __ex_table,"a";\
13 .align 4; \ 9 .align 4; \
14 .word 98b, 99b; \ 10 .word 98b, __retl_one; \
15 .text; \ 11 .text; \
16 .align 4; 12 .align 4;
17 13
@@ -27,7 +23,7 @@
27#define PREAMBLE \ 23#define PREAMBLE \
28 rd %asi, %g1; \ 24 rd %asi, %g1; \
29 cmp %g1, ASI_AIUS; \ 25 cmp %g1, ASI_AIUS; \
30 bne,pn %icc, memcpy_user_stub; \ 26 bne,pn %icc, ___copy_in_user; \
31 nop; \ 27 nop; \
32 28
33#include "U3memcpy.S" 29#include "U3memcpy.S"
diff --git a/arch/sparc/lib/bzero.S b/arch/sparc/lib/bzero.S
index c7bbae8c590f..b6557297440f 100644
--- a/arch/sparc/lib/bzero.S
+++ b/arch/sparc/lib/bzero.S
@@ -88,13 +88,9 @@ __bzero_done:
88 88
89#define EX_ST(x,y) \ 89#define EX_ST(x,y) \
9098: x,y; \ 9098: x,y; \
91 .section .fixup; \
92 .align 4; \
9399: retl; \
94 mov %o1, %o0; \
95 .section __ex_table,"a";\ 91 .section __ex_table,"a";\
96 .align 4; \ 92 .align 4; \
97 .word 98b, 99b; \ 93 .word 98b, __retl_o1; \
98 .text; \ 94 .text; \
99 .align 4; 95 .align 4;
100 96
diff --git a/arch/sparc/lib/copy_in_user.S b/arch/sparc/lib/copy_in_user.S
index 650af3f21f78..302c0e60dc2c 100644
--- a/arch/sparc/lib/copy_in_user.S
+++ b/arch/sparc/lib/copy_in_user.S
@@ -3,19 +3,16 @@
3 * Copyright (C) 1999, 2000, 2004 David S. Miller (davem@redhat.com) 3 * Copyright (C) 1999, 2000, 2004 David S. Miller (davem@redhat.com)
4 */ 4 */
5 5
6#include <linux/linkage.h>
6#include <asm/asi.h> 7#include <asm/asi.h>
7 8
8#define XCC xcc 9#define XCC xcc
9 10
10#define EX(x,y) \ 11#define EX(x,y) \
1198: x,y; \ 1298: x,y; \
12 .section .fixup; \
13 .align 4; \
1499: retl; \
15 mov 1, %o0; \
16 .section __ex_table,"a";\ 13 .section __ex_table,"a";\
17 .align 4; \ 14 .align 4; \
18 .word 98b, 99b; \ 15 .word 98b, __retl_one; \
19 .text; \ 16 .text; \
20 .align 4; 17 .align 4;
21 18
@@ -31,18 +28,7 @@
31 * to copy register windows around during thread cloning. 28 * to copy register windows around during thread cloning.
32 */ 29 */
33 30
34 .globl ___copy_in_user 31ENTRY(___copy_in_user) /* %o0=dst, %o1=src, %o2=len */
35 .type ___copy_in_user,#function
36___copy_in_user: /* %o0=dst, %o1=src, %o2=len */
37 /* Writing to %asi is _expensive_ so we hardcode it.
38 * Reading %asi to check for KERNEL_DS is comparatively
39 * cheap.
40 */
41 rd %asi, %g1
42 cmp %g1, ASI_AIUS
43 bne,pn %icc, memcpy_user_stub
44 nop
45
46 cmp %o2, 0 32 cmp %o2, 0
47 be,pn %XCC, 85f 33 be,pn %XCC, 85f
48 or %o0, %o1, %o3 34 or %o0, %o1, %o3
@@ -53,22 +39,24 @@ ___copy_in_user: /* %o0=dst, %o1=src, %o2=len */
53 /* 16 < len <= 64 */ 39 /* 16 < len <= 64 */
54 andcc %o3, 0x7, %g0 40 andcc %o3, 0x7, %g0
55 bne,pn %XCC, 90f 41 bne,pn %XCC, 90f
56 sub %o0, %o1, %o3 42 nop
57 43
58 andn %o2, 0x7, %o4 44 andn %o2, 0x7, %o4
59 and %o2, 0x7, %o2 45 and %o2, 0x7, %o2
601: subcc %o4, 0x8, %o4 461: subcc %o4, 0x8, %o4
61 EX(ldxa [%o1] %asi, %o5) 47 EX(ldxa [%o1] %asi, %o5)
62 EX(stxa %o5, [%o1 + %o3] ASI_AIUS) 48 EX(stxa %o5, [%o0] %asi)
49 add %o1, 0x8, %o1
63 bgu,pt %XCC, 1b 50 bgu,pt %XCC, 1b
64 add %o1, 0x8, %o1 51 add %o0, 0x8, %o0
65 andcc %o2, 0x4, %g0 52 andcc %o2, 0x4, %g0
66 be,pt %XCC, 1f 53 be,pt %XCC, 1f
67 nop 54 nop
68 sub %o2, 0x4, %o2 55 sub %o2, 0x4, %o2
69 EX(lduwa [%o1] %asi, %o5) 56 EX(lduwa [%o1] %asi, %o5)
70 EX(stwa %o5, [%o1 + %o3] ASI_AIUS) 57 EX(stwa %o5, [%o0] %asi)
71 add %o1, 0x4, %o1 58 add %o1, 0x4, %o1
59 add %o0, 0x4, %o0
721: cmp %o2, 0 601: cmp %o2, 0
73 be,pt %XCC, 85f 61 be,pt %XCC, 85f
74 nop 62 nop
@@ -78,14 +66,15 @@ ___copy_in_user: /* %o0=dst, %o1=src, %o2=len */
7880: /* 0 < len <= 16 */ 6680: /* 0 < len <= 16 */
79 andcc %o3, 0x3, %g0 67 andcc %o3, 0x3, %g0
80 bne,pn %XCC, 90f 68 bne,pn %XCC, 90f
81 sub %o0, %o1, %o3 69 nop
82 70
8382: 7182:
84 subcc %o2, 4, %o2 72 subcc %o2, 4, %o2
85 EX(lduwa [%o1] %asi, %g1) 73 EX(lduwa [%o1] %asi, %g1)
86 EX(stwa %g1, [%o1 + %o3] ASI_AIUS) 74 EX(stwa %g1, [%o0] %asi)
75 add %o1, 4, %o1
87 bgu,pt %XCC, 82b 76 bgu,pt %XCC, 82b
88 add %o1, 4, %o1 77 add %o0, 4, %o0
89 78
9085: retl 7985: retl
91 clr %o0 80 clr %o0
@@ -94,26 +83,10 @@ ___copy_in_user: /* %o0=dst, %o1=src, %o2=len */
9490: 8390:
95 subcc %o2, 1, %o2 84 subcc %o2, 1, %o2
96 EX(lduba [%o1] %asi, %g1) 85 EX(lduba [%o1] %asi, %g1)
97 EX(stba %g1, [%o1 + %o3] ASI_AIUS) 86 EX(stba %g1, [%o0] %asi)
87 add %o1, 1, %o1
98 bgu,pt %XCC, 90b 88 bgu,pt %XCC, 90b
99 add %o1, 1, %o1 89 add %o0, 1, %o0
100 retl 90 retl
101 clr %o0 91 clr %o0
102 92ENDPROC(___copy_in_user)
103 .size ___copy_in_user, .-___copy_in_user
104
105 /* Act like copy_{to,in}_user(), ie. return zero instead
106 * of original destination pointer. This is invoked when
107 * copy_{to,in}_user() finds that %asi is kernel space.
108 */
109 .globl memcpy_user_stub
110 .type memcpy_user_stub,#function
111memcpy_user_stub:
112 save %sp, -192, %sp
113 mov %i0, %o0
114 mov %i1, %o1
115 call memcpy
116 mov %i2, %o2
117 ret
118 restore %g0, %g0, %o0
119 .size memcpy_user_stub, .-memcpy_user_stub
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index a9e474bf6385..4ab8993b0863 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -19,6 +19,7 @@
19#include <linux/interrupt.h> 19#include <linux/interrupt.h>
20#include <linux/kprobes.h> 20#include <linux/kprobes.h>
21#include <linux/kdebug.h> 21#include <linux/kdebug.h>
22#include <linux/percpu.h>
22 23
23#include <asm/page.h> 24#include <asm/page.h>
24#include <asm/pgtable.h> 25#include <asm/pgtable.h>
@@ -224,6 +225,30 @@ cannot_handle:
224 unhandled_fault (address, current, regs); 225 unhandled_fault (address, current, regs);
225} 226}
226 227
228static void noinline bogus_32bit_fault_tpc(struct pt_regs *regs)
229{
230 static int times;
231
232 if (times++ < 10)
233 printk(KERN_ERR "FAULT[%s:%d]: 32-bit process reports "
234 "64-bit TPC [%lx]\n",
235 current->comm, current->pid,
236 regs->tpc);
237 show_regs(regs);
238}
239
240static void noinline bogus_32bit_fault_address(struct pt_regs *regs,
241 unsigned long addr)
242{
243 static int times;
244
245 if (times++ < 10)
246 printk(KERN_ERR "FAULT[%s:%d]: 32-bit process "
247 "reports 64-bit fault address [%lx]\n",
248 current->comm, current->pid, addr);
249 show_regs(regs);
250}
251
227asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs) 252asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
228{ 253{
229 struct mm_struct *mm = current->mm; 254 struct mm_struct *mm = current->mm;
@@ -244,6 +269,19 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
244 (fault_code & FAULT_CODE_DTLB)) 269 (fault_code & FAULT_CODE_DTLB))
245 BUG(); 270 BUG();
246 271
272 if (test_thread_flag(TIF_32BIT)) {
273 if (!(regs->tstate & TSTATE_PRIV)) {
274 if (unlikely((regs->tpc >> 32) != 0)) {
275 bogus_32bit_fault_tpc(regs);
276 goto intr_or_no_mm;
277 }
278 }
279 if (unlikely((address >> 32) != 0)) {
280 bogus_32bit_fault_address(regs, address);
281 goto intr_or_no_mm;
282 }
283 }
284
247 if (regs->tstate & TSTATE_PRIV) { 285 if (regs->tstate & TSTATE_PRIV) {
248 unsigned long tpc = regs->tpc; 286 unsigned long tpc = regs->tpc;
249 287
@@ -264,12 +302,6 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
264 if (in_atomic() || !mm) 302 if (in_atomic() || !mm)
265 goto intr_or_no_mm; 303 goto intr_or_no_mm;
266 304
267 if (test_thread_flag(TIF_32BIT)) {
268 if (!(regs->tstate & TSTATE_PRIV))
269 regs->tpc &= 0xffffffff;
270 address &= 0xffffffff;
271 }
272
273 if (!down_read_trylock(&mm->mmap_sem)) { 305 if (!down_read_trylock(&mm->mmap_sem)) {
274 if ((regs->tstate & TSTATE_PRIV) && 306 if ((regs->tstate & TSTATE_PRIV) &&
275 !search_exception_tables(regs->tpc)) { 307 !search_exception_tables(regs->tpc)) {
diff --git a/arch/sparc/oprofile/init.c b/arch/sparc/oprofile/init.c
index d6e170c074fc..d172f86439b1 100644
--- a/arch/sparc/oprofile/init.c
+++ b/arch/sparc/oprofile/init.c
@@ -13,217 +13,57 @@
13#include <linux/init.h> 13#include <linux/init.h>
14 14
15#ifdef CONFIG_SPARC64 15#ifdef CONFIG_SPARC64
16#include <asm/hypervisor.h> 16#include <linux/notifier.h>
17#include <asm/spitfire.h> 17#include <linux/rcupdate.h>
18#include <asm/cpudata.h> 18#include <linux/kdebug.h>
19#include <asm/irq.h> 19#include <asm/nmi.h>
20 20
21static int nmi_enabled; 21static int profile_timer_exceptions_notify(struct notifier_block *self,
22 22 unsigned long val, void *data)
23struct pcr_ops {
24 u64 (*read)(void);
25 void (*write)(u64);
26};
27static const struct pcr_ops *pcr_ops;
28
29static u64 direct_pcr_read(void)
30{
31 u64 val;
32
33 read_pcr(val);
34 return val;
35}
36
37static void direct_pcr_write(u64 val)
38{
39 write_pcr(val);
40}
41
42static const struct pcr_ops direct_pcr_ops = {
43 .read = direct_pcr_read,
44 .write = direct_pcr_write,
45};
46
47static void n2_pcr_write(u64 val)
48{ 23{
49 unsigned long ret; 24 struct die_args *args = (struct die_args *)data;
50 25 int ret = NOTIFY_DONE;
51 ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val);
52 if (val != HV_EOK)
53 write_pcr(val);
54}
55
56static const struct pcr_ops n2_pcr_ops = {
57 .read = direct_pcr_read,
58 .write = n2_pcr_write,
59};
60
61/* In order to commonize as much of the implementation as
62 * possible, we use PICH as our counter. Mostly this is
63 * to accomodate Niagara-1 which can only count insn cycles
64 * in PICH.
65 */
66static u64 picl_value(void)
67{
68 u32 delta = local_cpu_data().clock_tick / HZ;
69
70 return ((u64)((0 - delta) & 0xffffffff)) << 32;
71}
72
73#define PCR_PIC_PRIV 0x00000001 /* PIC access is privileged */
74#define PCR_STRACE 0x00000002 /* Trace supervisor events */
75#define PCR_UTRACE 0x00000004 /* Trace user events */
76#define PCR_N2_HTRACE 0x00000008 /* Trace hypervisor events */
77#define PCR_N2_TOE_OV0 0x00000010 /* Trap if PIC 0 overflows */
78#define PCR_N2_TOE_OV1 0x00000020 /* Trap if PIC 1 overflows */
79#define PCR_N2_MASK0 0x00003fc0
80#define PCR_N2_MASK0_SHIFT 6
81#define PCR_N2_SL0 0x0003c000
82#define PCR_N2_SL0_SHIFT 14
83#define PCR_N2_OV0 0x00040000
84#define PCR_N2_MASK1 0x07f80000
85#define PCR_N2_MASK1_SHIFT 19
86#define PCR_N2_SL1 0x78000000
87#define PCR_N2_SL1_SHIFT 27
88#define PCR_N2_OV1 0x80000000
89
90#define PCR_SUN4U_ENABLE (PCR_PIC_PRIV | PCR_STRACE | PCR_UTRACE)
91#define PCR_N2_ENABLE (PCR_PIC_PRIV | PCR_STRACE | PCR_UTRACE | \
92 PCR_N2_TOE_OV1 | \
93 (2 << PCR_N2_SL1_SHIFT) | \
94 (0xff << PCR_N2_MASK1_SHIFT))
95
96static u64 pcr_enable = PCR_SUN4U_ENABLE;
97
98static void nmi_handler(struct pt_regs *regs)
99{
100 pcr_ops->write(PCR_PIC_PRIV);
101
102 if (nmi_enabled) {
103 oprofile_add_sample(regs, 0);
104
105 write_pic(picl_value());
106 pcr_ops->write(pcr_enable);
107 }
108}
109
110/* We count "clock cycle" events in the lower 32-bit PIC.
111 * Then configure it such that it overflows every HZ, and thus
112 * generates a level 15 interrupt at that frequency.
113 */
114static void cpu_nmi_start(void *_unused)
115{
116 pcr_ops->write(PCR_PIC_PRIV);
117 write_pic(picl_value());
118
119 pcr_ops->write(pcr_enable);
120}
121 26
122static void cpu_nmi_stop(void *_unused) 27 switch (val) {
123{ 28 case DIE_NMI:
124 pcr_ops->write(PCR_PIC_PRIV); 29 oprofile_add_sample(args->regs, 0);
125} 30 ret = NOTIFY_STOP;
126 31 break;
127static int nmi_start(void) 32 default:
128{ 33 break;
129 int err = register_perfctr_intr(nmi_handler);
130
131 if (!err) {
132 nmi_enabled = 1;
133 wmb();
134 err = on_each_cpu(cpu_nmi_start, NULL, 1);
135 if (err) {
136 nmi_enabled = 0;
137 wmb();
138 on_each_cpu(cpu_nmi_stop, NULL, 1);
139 release_perfctr_intr(nmi_handler);
140 }
141 } 34 }
142 35 return ret;
143 return err;
144}
145
146static void nmi_stop(void)
147{
148 nmi_enabled = 0;
149 wmb();
150
151 on_each_cpu(cpu_nmi_stop, NULL, 1);
152 release_perfctr_intr(nmi_handler);
153 synchronize_sched();
154} 36}
155 37
156static unsigned long perf_hsvc_group; 38static struct notifier_block profile_timer_exceptions_nb = {
157static unsigned long perf_hsvc_major; 39 .notifier_call = profile_timer_exceptions_notify,
158static unsigned long perf_hsvc_minor; 40};
159 41
160static int __init register_perf_hsvc(void) 42static int timer_start(void)
161{ 43{
162 if (tlb_type == hypervisor) { 44 if (register_die_notifier(&profile_timer_exceptions_nb))
163 switch (sun4v_chip_type) { 45 return 1;
164 case SUN4V_CHIP_NIAGARA1: 46 nmi_adjust_hz(HZ);
165 perf_hsvc_group = HV_GRP_NIAG_PERF;
166 break;
167
168 case SUN4V_CHIP_NIAGARA2:
169 perf_hsvc_group = HV_GRP_N2_CPU;
170 break;
171
172 default:
173 return -ENODEV;
174 }
175
176
177 perf_hsvc_major = 1;
178 perf_hsvc_minor = 0;
179 if (sun4v_hvapi_register(perf_hsvc_group,
180 perf_hsvc_major,
181 &perf_hsvc_minor)) {
182 printk("perfmon: Could not register N2 hvapi.\n");
183 return -ENODEV;
184 }
185 }
186 return 0; 47 return 0;
187} 48}
188 49
189static void unregister_perf_hsvc(void) 50
51static void timer_stop(void)
190{ 52{
191 if (tlb_type != hypervisor) 53 nmi_adjust_hz(1);
192 return; 54 unregister_die_notifier(&profile_timer_exceptions_nb);
193 sun4v_hvapi_unregister(perf_hsvc_group); 55 synchronize_sched(); /* Allow already-started NMIs to complete. */
194} 56}
195 57
196static int oprofile_nmi_init(struct oprofile_operations *ops) 58static int op_nmi_timer_init(struct oprofile_operations *ops)
197{ 59{
198 int err = register_perf_hsvc(); 60 if (!nmi_usable)
199
200 if (err)
201 return err;
202
203 switch (tlb_type) {
204 case hypervisor:
205 pcr_ops = &n2_pcr_ops;
206 pcr_enable = PCR_N2_ENABLE;
207 break;
208
209 case cheetah:
210 case cheetah_plus:
211 pcr_ops = &direct_pcr_ops;
212 break;
213
214 default:
215 return -ENODEV; 61 return -ENODEV;
216 }
217 62
218 ops->create_files = NULL; 63 ops->start = timer_start;
219 ops->setup = NULL; 64 ops->stop = timer_stop;
220 ops->shutdown = NULL;
221 ops->start = nmi_start;
222 ops->stop = nmi_stop;
223 ops->cpu_type = "timer"; 65 ops->cpu_type = "timer";
224 66 printk(KERN_INFO "oprofile: Using perfctr NMI timer interrupt.\n");
225 printk(KERN_INFO "oprofile: Using perfctr based NMI timer interrupt.\n");
226
227 return 0; 67 return 0;
228} 68}
229#endif 69#endif
@@ -233,7 +73,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
233 int ret = -ENODEV; 73 int ret = -ENODEV;
234 74
235#ifdef CONFIG_SPARC64 75#ifdef CONFIG_SPARC64
236 ret = oprofile_nmi_init(ops); 76 ret = op_nmi_timer_init(ops);
237 if (!ret) 77 if (!ret)
238 return ret; 78 return ret;
239#endif 79#endif
@@ -241,10 +81,6 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
241 return ret; 81 return ret;
242} 82}
243 83
244
245void oprofile_arch_exit(void) 84void oprofile_arch_exit(void)
246{ 85{
247#ifdef CONFIG_SPARC64
248 unregister_perf_hsvc();
249#endif
250} 86}
diff --git a/arch/um/drivers/vde_user.c b/arch/um/drivers/vde_user.c
index 56533db25343..c5c43253e6ce 100644
--- a/arch/um/drivers/vde_user.c
+++ b/arch/um/drivers/vde_user.c
@@ -78,7 +78,7 @@ void vde_init_libstuff(struct vde_data *vpri, struct vde_init *init)
78{ 78{
79 struct vde_open_args *args; 79 struct vde_open_args *args;
80 80
81 vpri->args = kmalloc(sizeof(struct vde_open_args), UM_GFP_KERNEL); 81 vpri->args = uml_kmalloc(sizeof(struct vde_open_args), UM_GFP_KERNEL);
82 if (vpri->args == NULL) { 82 if (vpri->args == NULL) {
83 printk(UM_KERN_ERR "vde_init_libstuff - vde_open_args " 83 printk(UM_KERN_ERR "vde_init_libstuff - vde_open_args "
84 "allocation failed"); 84 "allocation failed");
@@ -91,8 +91,8 @@ void vde_init_libstuff(struct vde_data *vpri, struct vde_init *init)
91 args->group = init->group; 91 args->group = init->group;
92 args->mode = init->mode ? init->mode : 0700; 92 args->mode = init->mode ? init->mode : 0700;
93 93
94 args->port ? printk(UM_KERN_INFO "port %d", args->port) : 94 args->port ? printk("port %d", args->port) :
95 printk(UM_KERN_INFO "undefined port"); 95 printk("undefined port");
96} 96}
97 97
98int vde_user_read(void *conn, void *buf, int len) 98int vde_user_read(void *conn, void *buf, int len)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 73f7fe8fd4d1..87717f3687d2 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -5,7 +5,7 @@ mainmenu "Linux Kernel Configuration for x86"
5config 64BIT 5config 64BIT
6 bool "64-bit kernel" if ARCH = "x86" 6 bool "64-bit kernel" if ARCH = "x86"
7 default ARCH = "x86_64" 7 default ARCH = "x86_64"
8 help 8 ---help---
9 Say yes to build a 64-bit kernel - formerly known as x86_64 9 Say yes to build a 64-bit kernel - formerly known as x86_64
10 Say no to build a 32-bit kernel - formerly known as i386 10 Say no to build a 32-bit kernel - formerly known as i386
11 11
@@ -34,12 +34,15 @@ config X86
34 select HAVE_FUNCTION_TRACER 34 select HAVE_FUNCTION_TRACER
35 select HAVE_FUNCTION_GRAPH_TRACER 35 select HAVE_FUNCTION_GRAPH_TRACER
36 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 36 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
37 select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) 37 select HAVE_KVM
38 select HAVE_ARCH_KGDB if !X86_VOYAGER 38 select HAVE_ARCH_KGDB
39 select HAVE_ARCH_TRACEHOOK 39 select HAVE_ARCH_TRACEHOOK
40 select HAVE_GENERIC_DMA_COHERENT if X86_32 40 select HAVE_GENERIC_DMA_COHERENT if X86_32
41 select HAVE_EFFICIENT_UNALIGNED_ACCESS 41 select HAVE_EFFICIENT_UNALIGNED_ACCESS
42 select USER_STACKTRACE_SUPPORT 42 select USER_STACKTRACE_SUPPORT
43 select HAVE_KERNEL_GZIP
44 select HAVE_KERNEL_BZIP2
45 select HAVE_KERNEL_LZMA
43 46
44config ARCH_DEFCONFIG 47config ARCH_DEFCONFIG
45 string 48 string
@@ -133,18 +136,19 @@ config ARCH_HAS_CACHE_LINE_SIZE
133 def_bool y 136 def_bool y
134 137
135config HAVE_SETUP_PER_CPU_AREA 138config HAVE_SETUP_PER_CPU_AREA
136 def_bool X86_64_SMP || (X86_SMP && !X86_VOYAGER) 139 def_bool y
140
141config HAVE_DYNAMIC_PER_CPU_AREA
142 def_bool y
137 143
138config HAVE_CPUMASK_OF_CPU_MAP 144config HAVE_CPUMASK_OF_CPU_MAP
139 def_bool X86_64_SMP 145 def_bool X86_64_SMP
140 146
141config ARCH_HIBERNATION_POSSIBLE 147config ARCH_HIBERNATION_POSSIBLE
142 def_bool y 148 def_bool y
143 depends on !SMP || !X86_VOYAGER
144 149
145config ARCH_SUSPEND_POSSIBLE 150config ARCH_SUSPEND_POSSIBLE
146 def_bool y 151 def_bool y
147 depends on !X86_VOYAGER
148 152
149config ZONE_DMA32 153config ZONE_DMA32
150 bool 154 bool
@@ -174,11 +178,6 @@ config GENERIC_PENDING_IRQ
174 depends on GENERIC_HARDIRQS && SMP 178 depends on GENERIC_HARDIRQS && SMP
175 default y 179 default y
176 180
177config X86_SMP
178 bool
179 depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64)
180 default y
181
182config USE_GENERIC_SMP_HELPERS 181config USE_GENERIC_SMP_HELPERS
183 def_bool y 182 def_bool y
184 depends on SMP 183 depends on SMP
@@ -194,19 +193,17 @@ config X86_64_SMP
194config X86_HT 193config X86_HT
195 bool 194 bool
196 depends on SMP 195 depends on SMP
197 depends on (X86_32 && !X86_VOYAGER) || X86_64
198 default y
199
200config X86_BIOS_REBOOT
201 bool
202 depends on !X86_VOYAGER
203 default y 196 default y
204 197
205config X86_TRAMPOLINE 198config X86_TRAMPOLINE
206 bool 199 bool
207 depends on X86_SMP || (X86_VOYAGER && SMP) || (64BIT && ACPI_SLEEP) 200 depends on SMP || (64BIT && ACPI_SLEEP)
208 default y 201 default y
209 202
203config X86_32_LAZY_GS
204 def_bool y
205 depends on X86_32 && !CC_STACKPROTECTOR
206
210config KTIME_SCALAR 207config KTIME_SCALAR
211 def_bool X86_32 208 def_bool X86_32
212source "init/Kconfig" 209source "init/Kconfig"
@@ -244,14 +241,24 @@ config SMP
244 241
245 If you don't know what to do here, say N. 242 If you don't know what to do here, say N.
246 243
247config X86_HAS_BOOT_CPU_ID 244config X86_X2APIC
248 def_bool y 245 bool "Support x2apic"
249 depends on X86_VOYAGER 246 depends on X86_LOCAL_APIC && X86_64
247 ---help---
248 This enables x2apic support on CPUs that have this feature.
249
250 This allows 32-bit apic IDs (so it can support very large systems),
251 and accesses the local apic via MSRs not via mmio.
252
253 ( On certain CPU models you may need to enable INTR_REMAP too,
254 to get functional x2apic mode. )
255
256 If you don't know what to do here, say N.
250 257
251config SPARSE_IRQ 258config SPARSE_IRQ
252 bool "Support sparse irq numbering" 259 bool "Support sparse irq numbering"
253 depends on PCI_MSI || HT_IRQ 260 depends on PCI_MSI || HT_IRQ
254 help 261 ---help---
255 This enables support for sparse irqs. This is useful for distro 262 This enables support for sparse irqs. This is useful for distro
256 kernels that want to define a high CONFIG_NR_CPUS value but still 263 kernels that want to define a high CONFIG_NR_CPUS value but still
257 want to have low kernel memory footprint on smaller machines. 264 want to have low kernel memory footprint on smaller machines.
@@ -265,114 +272,140 @@ config NUMA_MIGRATE_IRQ_DESC
265 bool "Move irq desc when changing irq smp_affinity" 272 bool "Move irq desc when changing irq smp_affinity"
266 depends on SPARSE_IRQ && NUMA 273 depends on SPARSE_IRQ && NUMA
267 default n 274 default n
268 help 275 ---help---
269 This enables moving irq_desc to cpu/node that irq will use handled. 276 This enables moving irq_desc to cpu/node that irq will use handled.
270 277
271 If you don't know what to do here, say N. 278 If you don't know what to do here, say N.
272 279
273config X86_FIND_SMP_CONFIG
274 def_bool y
275 depends on X86_MPPARSE || X86_VOYAGER
276
277config X86_MPPARSE 280config X86_MPPARSE
278 bool "Enable MPS table" if ACPI 281 bool "Enable MPS table" if ACPI
279 default y 282 default y
280 depends on X86_LOCAL_APIC 283 depends on X86_LOCAL_APIC
281 help 284 ---help---
282 For old smp systems that do not have proper acpi support. Newer systems 285 For old smp systems that do not have proper acpi support. Newer systems
283 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it 286 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
284 287
285choice 288config X86_BIGSMP
286 prompt "Subarchitecture Type" 289 bool "Support for big SMP systems with more than 8 CPUs"
287 default X86_PC 290 depends on X86_32 && SMP
291 ---help---
292 This option is needed for the systems that have more than 8 CPUs
288 293
289config X86_PC 294if X86_32
290 bool "PC-compatible" 295config X86_EXTENDED_PLATFORM
291 help 296 bool "Support for extended (non-PC) x86 platforms"
292 Choose this option if your computer is a standard PC or compatible. 297 default y
298 ---help---
299 If you disable this option then the kernel will only support
300 standard PC platforms. (which covers the vast majority of
301 systems out there.)
302
303 If you enable this option then you'll be able to select support
304 for the following (non-PC) 32 bit x86 platforms:
305 AMD Elan
306 NUMAQ (IBM/Sequent)
307 RDC R-321x SoC
308 SGI 320/540 (Visual Workstation)
309 Summit/EXA (IBM x440)
310 Unisys ES7000 IA32 series
311
312 If you have one of these systems, or if you want to build a
313 generic distribution kernel, say Y here - otherwise say N.
314endif
315
316if X86_64
317config X86_EXTENDED_PLATFORM
318 bool "Support for extended (non-PC) x86 platforms"
319 default y
320 ---help---
321 If you disable this option then the kernel will only support
322 standard PC platforms. (which covers the vast majority of
323 systems out there.)
324
325 If you enable this option then you'll be able to select support
326 for the following (non-PC) 64 bit x86 platforms:
327 ScaleMP vSMP
328 SGI Ultraviolet
329
330 If you have one of these systems, or if you want to build a
331 generic distribution kernel, say Y here - otherwise say N.
332endif
333# This is an alphabetically sorted list of 64 bit extended platforms
334# Please maintain the alphabetic order if and when there are additions
335
336config X86_VSMP
337 bool "ScaleMP vSMP"
338 select PARAVIRT
339 depends on X86_64 && PCI
340 depends on X86_EXTENDED_PLATFORM
341 ---help---
342 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
343 supposed to run on these EM64T-based machines. Only choose this option
344 if you have one of these machines.
345
346config X86_UV
347 bool "SGI Ultraviolet"
348 depends on X86_64
349 depends on X86_EXTENDED_PLATFORM
350 select X86_X2APIC
351 ---help---
352 This option is needed in order to support SGI Ultraviolet systems.
353 If you don't have one of these, you should say N here.
354
355# Following is an alphabetically sorted list of 32 bit extended platforms
356# Please maintain the alphabetic order if and when there are additions
293 357
294config X86_ELAN 358config X86_ELAN
295 bool "AMD Elan" 359 bool "AMD Elan"
296 depends on X86_32 360 depends on X86_32
297 help 361 depends on X86_EXTENDED_PLATFORM
362 ---help---
298 Select this for an AMD Elan processor. 363 Select this for an AMD Elan processor.
299 364
300 Do not use this option for K6/Athlon/Opteron processors! 365 Do not use this option for K6/Athlon/Opteron processors!
301 366
302 If unsure, choose "PC-compatible" instead. 367 If unsure, choose "PC-compatible" instead.
303 368
304config X86_VOYAGER 369config X86_RDC321X
305 bool "Voyager (NCR)" 370 bool "RDC R-321x SoC"
306 depends on X86_32 && (SMP || BROKEN) && !PCI
307 help
308 Voyager is an MCA-based 32-way capable SMP architecture proprietary
309 to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based.
310
311 *** WARNING ***
312
313 If you do not specifically know you have a Voyager based machine,
314 say N here, otherwise the kernel you build will not be bootable.
315
316config X86_GENERICARCH
317 bool "Generic architecture"
318 depends on X86_32 371 depends on X86_32
319 help 372 depends on X86_EXTENDED_PLATFORM
320 This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default 373 select M486
374 select X86_REBOOTFIXUPS
375 ---help---
376 This option is needed for RDC R-321x system-on-chip, also known
377 as R-8610-(G).
378 If you don't have one of these chips, you should say N here.
379
380config X86_32_NON_STANDARD
381 bool "Support non-standard 32-bit SMP architectures"
382 depends on X86_32 && SMP
383 depends on X86_EXTENDED_PLATFORM
384 ---help---
385 This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
321 subarchitectures. It is intended for a generic binary kernel. 386 subarchitectures. It is intended for a generic binary kernel.
322 if you select them all, kernel will probe it one by one. and will 387 if you select them all, kernel will probe it one by one. and will
323 fallback to default. 388 fallback to default.
324 389
325if X86_GENERICARCH 390# Alphabetically sorted list of Non standard 32 bit platforms
326 391
327config X86_NUMAQ 392config X86_NUMAQ
328 bool "NUMAQ (IBM/Sequent)" 393 bool "NUMAQ (IBM/Sequent)"
329 depends on SMP && X86_32 && PCI && X86_MPPARSE 394 depends on X86_32_NON_STANDARD
330 select NUMA 395 select NUMA
331 help 396 select X86_MPPARSE
397 ---help---
332 This option is used for getting Linux to run on a NUMAQ (IBM/Sequent) 398 This option is used for getting Linux to run on a NUMAQ (IBM/Sequent)
333 NUMA multiquad box. This changes the way that processors are 399 NUMA multiquad box. This changes the way that processors are
334 bootstrapped, and uses Clustered Logical APIC addressing mode instead 400 bootstrapped, and uses Clustered Logical APIC addressing mode instead
335 of Flat Logical. You will need a new lynxer.elf file to flash your 401 of Flat Logical. You will need a new lynxer.elf file to flash your
336 firmware with - send email to <Martin.Bligh@us.ibm.com>. 402 firmware with - send email to <Martin.Bligh@us.ibm.com>.
337 403
338config X86_SUMMIT
339 bool "Summit/EXA (IBM x440)"
340 depends on X86_32 && SMP
341 help
342 This option is needed for IBM systems that use the Summit/EXA chipset.
343 In particular, it is needed for the x440.
344
345config X86_ES7000
346 bool "Support for Unisys ES7000 IA32 series"
347 depends on X86_32 && SMP
348 help
349 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
350 supposed to run on an IA32-based Unisys ES7000 system.
351
352config X86_BIGSMP
353 bool "Support for big SMP systems with more than 8 CPUs"
354 depends on X86_32 && SMP
355 help
356 This option is needed for the systems that have more than 8 CPUs
357 and if the system is not of any sub-arch type above.
358
359endif
360
361config X86_VSMP
362 bool "Support for ScaleMP vSMP"
363 select PARAVIRT
364 depends on X86_64 && PCI
365 help
366 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
367 supposed to run on these EM64T-based machines. Only choose this option
368 if you have one of these machines.
369
370endchoice
371
372config X86_VISWS 404config X86_VISWS
373 bool "SGI 320/540 (Visual Workstation)" 405 bool "SGI 320/540 (Visual Workstation)"
374 depends on X86_32 && PCI && !X86_VOYAGER && X86_MPPARSE && PCI_GODIRECT 406 depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
375 help 407 depends on X86_32_NON_STANDARD
408 ---help---
376 The SGI Visual Workstation series is an IA32-based workstation 409 The SGI Visual Workstation series is an IA32-based workstation
377 based on SGI systems chips with some legacy PC hardware attached. 410 based on SGI systems chips with some legacy PC hardware attached.
378 411
@@ -381,21 +414,25 @@ config X86_VISWS
381 A kernel compiled for the Visual Workstation will run on general 414 A kernel compiled for the Visual Workstation will run on general
382 PCs as well. See <file:Documentation/sgi-visws.txt> for details. 415 PCs as well. See <file:Documentation/sgi-visws.txt> for details.
383 416
384config X86_RDC321X 417config X86_SUMMIT
385 bool "RDC R-321x SoC" 418 bool "Summit/EXA (IBM x440)"
386 depends on X86_32 419 depends on X86_32_NON_STANDARD
387 select M486 420 ---help---
388 select X86_REBOOTFIXUPS 421 This option is needed for IBM systems that use the Summit/EXA chipset.
389 help 422 In particular, it is needed for the x440.
390 This option is needed for RDC R-321x system-on-chip, also known 423
391 as R-8610-(G). 424config X86_ES7000
392 If you don't have one of these chips, you should say N here. 425 bool "Unisys ES7000 IA32 series"
426 depends on X86_32_NON_STANDARD && X86_BIGSMP
427 ---help---
428 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
429 supposed to run on an IA32-based Unisys ES7000 system.
393 430
394config SCHED_OMIT_FRAME_POINTER 431config SCHED_OMIT_FRAME_POINTER
395 def_bool y 432 def_bool y
396 prompt "Single-depth WCHAN output" 433 prompt "Single-depth WCHAN output"
397 depends on X86 434 depends on X86
398 help 435 ---help---
399 Calculate simpler /proc/<PID>/wchan values. If this option 436 Calculate simpler /proc/<PID>/wchan values. If this option
400 is disabled then wchan values will recurse back to the 437 is disabled then wchan values will recurse back to the
401 caller function. This provides more accurate wchan values, 438 caller function. This provides more accurate wchan values,
@@ -405,7 +442,7 @@ config SCHED_OMIT_FRAME_POINTER
405 442
406menuconfig PARAVIRT_GUEST 443menuconfig PARAVIRT_GUEST
407 bool "Paravirtualized guest support" 444 bool "Paravirtualized guest support"
408 help 445 ---help---
409 Say Y here to get to see options related to running Linux under 446 Say Y here to get to see options related to running Linux under
410 various hypervisors. This option alone does not add any kernel code. 447 various hypervisors. This option alone does not add any kernel code.
411 448
@@ -419,8 +456,7 @@ config VMI
419 bool "VMI Guest support" 456 bool "VMI Guest support"
420 select PARAVIRT 457 select PARAVIRT
421 depends on X86_32 458 depends on X86_32
422 depends on !X86_VOYAGER 459 ---help---
423 help
424 VMI provides a paravirtualized interface to the VMware ESX server 460 VMI provides a paravirtualized interface to the VMware ESX server
425 (it could be used by other hypervisors in theory too, but is not 461 (it could be used by other hypervisors in theory too, but is not
426 at the moment), by linking the kernel to a GPL-ed ROM module 462 at the moment), by linking the kernel to a GPL-ed ROM module
@@ -430,8 +466,7 @@ config KVM_CLOCK
430 bool "KVM paravirtualized clock" 466 bool "KVM paravirtualized clock"
431 select PARAVIRT 467 select PARAVIRT
432 select PARAVIRT_CLOCK 468 select PARAVIRT_CLOCK
433 depends on !X86_VOYAGER 469 ---help---
434 help
435 Turning on this option will allow you to run a paravirtualized clock 470 Turning on this option will allow you to run a paravirtualized clock
436 when running over the KVM hypervisor. Instead of relying on a PIT 471 when running over the KVM hypervisor. Instead of relying on a PIT
437 (or probably other) emulation by the underlying device model, the host 472 (or probably other) emulation by the underlying device model, the host
@@ -441,17 +476,15 @@ config KVM_CLOCK
441config KVM_GUEST 476config KVM_GUEST
442 bool "KVM Guest support" 477 bool "KVM Guest support"
443 select PARAVIRT 478 select PARAVIRT
444 depends on !X86_VOYAGER 479 ---help---
445 help 480 This option enables various optimizations for running under the KVM
446 This option enables various optimizations for running under the KVM 481 hypervisor.
447 hypervisor.
448 482
449source "arch/x86/lguest/Kconfig" 483source "arch/x86/lguest/Kconfig"
450 484
451config PARAVIRT 485config PARAVIRT
452 bool "Enable paravirtualization code" 486 bool "Enable paravirtualization code"
453 depends on !X86_VOYAGER 487 ---help---
454 help
455 This changes the kernel so it can modify itself when it is run 488 This changes the kernel so it can modify itself when it is run
456 under a hypervisor, potentially improving performance significantly 489 under a hypervisor, potentially improving performance significantly
457 over full virtualization. However, when run without a hypervisor 490 over full virtualization. However, when run without a hypervisor
@@ -464,51 +497,51 @@ config PARAVIRT_CLOCK
464endif 497endif
465 498
466config PARAVIRT_DEBUG 499config PARAVIRT_DEBUG
467 bool "paravirt-ops debugging" 500 bool "paravirt-ops debugging"
468 depends on PARAVIRT && DEBUG_KERNEL 501 depends on PARAVIRT && DEBUG_KERNEL
469 help 502 ---help---
470 Enable to debug paravirt_ops internals. Specifically, BUG if 503 Enable to debug paravirt_ops internals. Specifically, BUG if
471 a paravirt_op is missing when it is called. 504 a paravirt_op is missing when it is called.
472 505
473config MEMTEST 506config MEMTEST
474 bool "Memtest" 507 bool "Memtest"
475 help 508 ---help---
476 This option adds a kernel parameter 'memtest', which allows memtest 509 This option adds a kernel parameter 'memtest', which allows memtest
477 to be set. 510 to be set.
478 memtest=0, mean disabled; -- default 511 memtest=0, mean disabled; -- default
479 memtest=1, mean do 1 test pattern; 512 memtest=1, mean do 1 test pattern;
480 ... 513 ...
481 memtest=4, mean do 4 test patterns. 514 memtest=4, mean do 4 test patterns.
482 If you are unsure how to answer this question, answer N. 515 If you are unsure how to answer this question, answer N.
483 516
484config X86_SUMMIT_NUMA 517config X86_SUMMIT_NUMA
485 def_bool y 518 def_bool y
486 depends on X86_32 && NUMA && X86_GENERICARCH 519 depends on X86_32 && NUMA && X86_32_NON_STANDARD
487 520
488config X86_CYCLONE_TIMER 521config X86_CYCLONE_TIMER
489 def_bool y 522 def_bool y
490 depends on X86_GENERICARCH 523 depends on X86_32_NON_STANDARD
491 524
492source "arch/x86/Kconfig.cpu" 525source "arch/x86/Kconfig.cpu"
493 526
494config HPET_TIMER 527config HPET_TIMER
495 def_bool X86_64 528 def_bool X86_64
496 prompt "HPET Timer Support" if X86_32 529 prompt "HPET Timer Support" if X86_32
497 help 530 ---help---
498 Use the IA-PC HPET (High Precision Event Timer) to manage 531 Use the IA-PC HPET (High Precision Event Timer) to manage
499 time in preference to the PIT and RTC, if a HPET is 532 time in preference to the PIT and RTC, if a HPET is
500 present. 533 present.
501 HPET is the next generation timer replacing legacy 8254s. 534 HPET is the next generation timer replacing legacy 8254s.
502 The HPET provides a stable time base on SMP 535 The HPET provides a stable time base on SMP
503 systems, unlike the TSC, but it is more expensive to access, 536 systems, unlike the TSC, but it is more expensive to access,
504 as it is off-chip. You can find the HPET spec at 537 as it is off-chip. You can find the HPET spec at
505 <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>. 538 <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>.
506 539
507 You can safely choose Y here. However, HPET will only be 540 You can safely choose Y here. However, HPET will only be
508 activated if the platform and the BIOS support this feature. 541 activated if the platform and the BIOS support this feature.
509 Otherwise the 8254 will be used for timing services. 542 Otherwise the 8254 will be used for timing services.
510 543
511 Choose N to continue using the legacy 8254 timer. 544 Choose N to continue using the legacy 8254 timer.
512 545
513config HPET_EMULATE_RTC 546config HPET_EMULATE_RTC
514 def_bool y 547 def_bool y
@@ -519,7 +552,7 @@ config HPET_EMULATE_RTC
519config DMI 552config DMI
520 default y 553 default y
521 bool "Enable DMI scanning" if EMBEDDED 554 bool "Enable DMI scanning" if EMBEDDED
522 help 555 ---help---
523 Enabled scanning of DMI to identify machine quirks. Say Y 556 Enabled scanning of DMI to identify machine quirks. Say Y
524 here unless you have verified that your setup is not 557 here unless you have verified that your setup is not
525 affected by entries in the DMI blacklist. Required by PNP 558 affected by entries in the DMI blacklist. Required by PNP
@@ -531,7 +564,7 @@ config GART_IOMMU
531 select SWIOTLB 564 select SWIOTLB
532 select AGP 565 select AGP
533 depends on X86_64 && PCI 566 depends on X86_64 && PCI
534 help 567 ---help---
535 Support for full DMA access of devices with 32bit memory access only 568 Support for full DMA access of devices with 32bit memory access only
536 on systems with more than 3GB. This is usually needed for USB, 569 on systems with more than 3GB. This is usually needed for USB,
537 sound, many IDE/SATA chipsets and some other devices. 570 sound, many IDE/SATA chipsets and some other devices.
@@ -546,7 +579,7 @@ config CALGARY_IOMMU
546 bool "IBM Calgary IOMMU support" 579 bool "IBM Calgary IOMMU support"
547 select SWIOTLB 580 select SWIOTLB
548 depends on X86_64 && PCI && EXPERIMENTAL 581 depends on X86_64 && PCI && EXPERIMENTAL
549 help 582 ---help---
550 Support for hardware IOMMUs in IBM's xSeries x366 and x460 583 Support for hardware IOMMUs in IBM's xSeries x366 and x460
551 systems. Needed to run systems with more than 3GB of memory 584 systems. Needed to run systems with more than 3GB of memory
552 properly with 32-bit PCI devices that do not support DAC 585 properly with 32-bit PCI devices that do not support DAC
@@ -564,7 +597,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
564 def_bool y 597 def_bool y
565 prompt "Should Calgary be enabled by default?" 598 prompt "Should Calgary be enabled by default?"
566 depends on CALGARY_IOMMU 599 depends on CALGARY_IOMMU
567 help 600 ---help---
568 Should Calgary be enabled by default? if you choose 'y', Calgary 601 Should Calgary be enabled by default? if you choose 'y', Calgary
569 will be used (if it exists). If you choose 'n', Calgary will not be 602 will be used (if it exists). If you choose 'n', Calgary will not be
570 used even if it exists. If you choose 'n' and would like to use 603 used even if it exists. If you choose 'n' and would like to use
@@ -576,7 +609,7 @@ config AMD_IOMMU
576 select SWIOTLB 609 select SWIOTLB
577 select PCI_MSI 610 select PCI_MSI
578 depends on X86_64 && PCI && ACPI 611 depends on X86_64 && PCI && ACPI
579 help 612 ---help---
580 With this option you can enable support for AMD IOMMU hardware in 613 With this option you can enable support for AMD IOMMU hardware in
581 your system. An IOMMU is a hardware component which provides 614 your system. An IOMMU is a hardware component which provides
582 remapping of DMA memory accesses from devices. With an AMD IOMMU you 615 remapping of DMA memory accesses from devices. With an AMD IOMMU you
@@ -591,7 +624,7 @@ config AMD_IOMMU_STATS
591 bool "Export AMD IOMMU statistics to debugfs" 624 bool "Export AMD IOMMU statistics to debugfs"
592 depends on AMD_IOMMU 625 depends on AMD_IOMMU
593 select DEBUG_FS 626 select DEBUG_FS
594 help 627 ---help---
595 This option enables code in the AMD IOMMU driver to collect various 628 This option enables code in the AMD IOMMU driver to collect various
596 statistics about whats happening in the driver and exports that 629 statistics about whats happening in the driver and exports that
597 information to userspace via debugfs. 630 information to userspace via debugfs.
@@ -600,7 +633,7 @@ config AMD_IOMMU_STATS
600# need this always selected by IOMMU for the VIA workaround 633# need this always selected by IOMMU for the VIA workaround
601config SWIOTLB 634config SWIOTLB
602 def_bool y if X86_64 635 def_bool y if X86_64
603 help 636 ---help---
604 Support for software bounce buffers used on x86-64 systems 637 Support for software bounce buffers used on x86-64 systems
605 which don't have a hardware IOMMU (e.g. the current generation 638 which don't have a hardware IOMMU (e.g. the current generation
606 of Intel's x86-64 CPUs). Using this PCI devices which can only 639 of Intel's x86-64 CPUs). Using this PCI devices which can only
@@ -618,7 +651,7 @@ config MAXSMP
618 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL 651 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL
619 select CPUMASK_OFFSTACK 652 select CPUMASK_OFFSTACK
620 default n 653 default n
621 help 654 ---help---
622 Configure maximum number of CPUS and NUMA Nodes for this architecture. 655 Configure maximum number of CPUS and NUMA Nodes for this architecture.
623 If unsure, say N. 656 If unsure, say N.
624 657
@@ -629,7 +662,7 @@ config NR_CPUS
629 default "4096" if MAXSMP 662 default "4096" if MAXSMP
630 default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000) 663 default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
631 default "8" if SMP 664 default "8" if SMP
632 help 665 ---help---
633 This allows you to specify the maximum number of CPUs which this 666 This allows you to specify the maximum number of CPUs which this
634 kernel will support. The maximum supported value is 512 and the 667 kernel will support. The maximum supported value is 512 and the
635 minimum value which makes sense is 2. 668 minimum value which makes sense is 2.
@@ -640,7 +673,7 @@ config NR_CPUS
640config SCHED_SMT 673config SCHED_SMT
641 bool "SMT (Hyperthreading) scheduler support" 674 bool "SMT (Hyperthreading) scheduler support"
642 depends on X86_HT 675 depends on X86_HT
643 help 676 ---help---
644 SMT scheduler support improves the CPU scheduler's decision making 677 SMT scheduler support improves the CPU scheduler's decision making
645 when dealing with Intel Pentium 4 chips with HyperThreading at a 678 when dealing with Intel Pentium 4 chips with HyperThreading at a
646 cost of slightly increased overhead in some places. If unsure say 679 cost of slightly increased overhead in some places. If unsure say
@@ -650,7 +683,7 @@ config SCHED_MC
650 def_bool y 683 def_bool y
651 prompt "Multi-core scheduler support" 684 prompt "Multi-core scheduler support"
652 depends on X86_HT 685 depends on X86_HT
653 help 686 ---help---
654 Multi-core scheduler support improves the CPU scheduler's decision 687 Multi-core scheduler support improves the CPU scheduler's decision
655 making when dealing with multi-core CPU chips at a cost of slightly 688 making when dealing with multi-core CPU chips at a cost of slightly
656 increased overhead in some places. If unsure say N here. 689 increased overhead in some places. If unsure say N here.
@@ -659,8 +692,8 @@ source "kernel/Kconfig.preempt"
659 692
660config X86_UP_APIC 693config X86_UP_APIC
661 bool "Local APIC support on uniprocessors" 694 bool "Local APIC support on uniprocessors"
662 depends on X86_32 && !SMP && !(X86_VOYAGER || X86_GENERICARCH) 695 depends on X86_32 && !SMP && !X86_32_NON_STANDARD
663 help 696 ---help---
664 A local APIC (Advanced Programmable Interrupt Controller) is an 697 A local APIC (Advanced Programmable Interrupt Controller) is an
665 integrated interrupt controller in the CPU. If you have a single-CPU 698 integrated interrupt controller in the CPU. If you have a single-CPU
666 system which has a processor with a local APIC, you can say Y here to 699 system which has a processor with a local APIC, you can say Y here to
@@ -673,7 +706,7 @@ config X86_UP_APIC
673config X86_UP_IOAPIC 706config X86_UP_IOAPIC
674 bool "IO-APIC support on uniprocessors" 707 bool "IO-APIC support on uniprocessors"
675 depends on X86_UP_APIC 708 depends on X86_UP_APIC
676 help 709 ---help---
677 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an 710 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
678 SMP-capable replacement for PC-style interrupt controllers. Most 711 SMP-capable replacement for PC-style interrupt controllers. Most
679 SMP systems and many recent uniprocessor systems have one. 712 SMP systems and many recent uniprocessor systems have one.
@@ -684,11 +717,11 @@ config X86_UP_IOAPIC
684 717
685config X86_LOCAL_APIC 718config X86_LOCAL_APIC
686 def_bool y 719 def_bool y
687 depends on X86_64 || (X86_32 && (X86_UP_APIC || (SMP && !X86_VOYAGER) || X86_GENERICARCH)) 720 depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
688 721
689config X86_IO_APIC 722config X86_IO_APIC
690 def_bool y 723 def_bool y
691 depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !X86_VOYAGER) || X86_GENERICARCH)) 724 depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
692 725
693config X86_VISWS_APIC 726config X86_VISWS_APIC
694 def_bool y 727 def_bool y
@@ -698,7 +731,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
698 bool "Reroute for broken boot IRQs" 731 bool "Reroute for broken boot IRQs"
699 default n 732 default n
700 depends on X86_IO_APIC 733 depends on X86_IO_APIC
701 help 734 ---help---
702 This option enables a workaround that fixes a source of 735 This option enables a workaround that fixes a source of
703 spurious interrupts. This is recommended when threaded 736 spurious interrupts. This is recommended when threaded
704 interrupt handling is used on systems where the generation of 737 interrupt handling is used on systems where the generation of
@@ -720,7 +753,6 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
720 753
721config X86_MCE 754config X86_MCE
722 bool "Machine Check Exception" 755 bool "Machine Check Exception"
723 depends on !X86_VOYAGER
724 ---help--- 756 ---help---
725 Machine Check Exception support allows the processor to notify the 757 Machine Check Exception support allows the processor to notify the
726 kernel if it detects a problem (e.g. overheating, component failure). 758 kernel if it detects a problem (e.g. overheating, component failure).
@@ -739,7 +771,7 @@ config X86_MCE_INTEL
739 def_bool y 771 def_bool y
740 prompt "Intel MCE features" 772 prompt "Intel MCE features"
741 depends on X86_64 && X86_MCE && X86_LOCAL_APIC 773 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
742 help 774 ---help---
743 Additional support for intel specific MCE features such as 775 Additional support for intel specific MCE features such as
744 the thermal monitor. 776 the thermal monitor.
745 777
@@ -747,14 +779,19 @@ config X86_MCE_AMD
747 def_bool y 779 def_bool y
748 prompt "AMD MCE features" 780 prompt "AMD MCE features"
749 depends on X86_64 && X86_MCE && X86_LOCAL_APIC 781 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
750 help 782 ---help---
751 Additional support for AMD specific MCE features such as 783 Additional support for AMD specific MCE features such as
752 the DRAM Error Threshold. 784 the DRAM Error Threshold.
753 785
786config X86_MCE_THRESHOLD
787 depends on X86_MCE_AMD || X86_MCE_INTEL
788 bool
789 default y
790
754config X86_MCE_NONFATAL 791config X86_MCE_NONFATAL
755 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4" 792 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
756 depends on X86_32 && X86_MCE 793 depends on X86_32 && X86_MCE
757 help 794 ---help---
758 Enabling this feature starts a timer that triggers every 5 seconds which 795 Enabling this feature starts a timer that triggers every 5 seconds which
759 will look at the machine check registers to see if anything happened. 796 will look at the machine check registers to see if anything happened.
760 Non-fatal problems automatically get corrected (but still logged). 797 Non-fatal problems automatically get corrected (but still logged).
@@ -767,7 +804,7 @@ config X86_MCE_NONFATAL
767config X86_MCE_P4THERMAL 804config X86_MCE_P4THERMAL
768 bool "check for P4 thermal throttling interrupt." 805 bool "check for P4 thermal throttling interrupt."
769 depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) 806 depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP)
770 help 807 ---help---
771 Enabling this feature will cause a message to be printed when the P4 808 Enabling this feature will cause a message to be printed when the P4
772 enters thermal throttling. 809 enters thermal throttling.
773 810
@@ -775,11 +812,11 @@ config VM86
775 bool "Enable VM86 support" if EMBEDDED 812 bool "Enable VM86 support" if EMBEDDED
776 default y 813 default y
777 depends on X86_32 814 depends on X86_32
778 help 815 ---help---
779 This option is required by programs like DOSEMU to run 16-bit legacy 816 This option is required by programs like DOSEMU to run 16-bit legacy
780 code on X86 processors. It also may be needed by software like 817 code on X86 processors. It also may be needed by software like
781 XFree86 to initialize some video cards via BIOS. Disabling this 818 XFree86 to initialize some video cards via BIOS. Disabling this
782 option saves about 6k. 819 option saves about 6k.
783 820
784config TOSHIBA 821config TOSHIBA
785 tristate "Toshiba Laptop support" 822 tristate "Toshiba Laptop support"
@@ -853,33 +890,33 @@ config MICROCODE
853 module will be called microcode. 890 module will be called microcode.
854 891
855config MICROCODE_INTEL 892config MICROCODE_INTEL
856 bool "Intel microcode patch loading support" 893 bool "Intel microcode patch loading support"
857 depends on MICROCODE 894 depends on MICROCODE
858 default MICROCODE 895 default MICROCODE
859 select FW_LOADER 896 select FW_LOADER
860 --help--- 897 ---help---
861 This options enables microcode patch loading support for Intel 898 This options enables microcode patch loading support for Intel
862 processors. 899 processors.
863 900
864 For latest news and information on obtaining all the required 901 For latest news and information on obtaining all the required
865 Intel ingredients for this driver, check: 902 Intel ingredients for this driver, check:
866 <http://www.urbanmyth.org/microcode/>. 903 <http://www.urbanmyth.org/microcode/>.
867 904
868config MICROCODE_AMD 905config MICROCODE_AMD
869 bool "AMD microcode patch loading support" 906 bool "AMD microcode patch loading support"
870 depends on MICROCODE 907 depends on MICROCODE
871 select FW_LOADER 908 select FW_LOADER
872 --help--- 909 ---help---
873 If you select this option, microcode patch loading support for AMD 910 If you select this option, microcode patch loading support for AMD
874 processors will be enabled. 911 processors will be enabled.
875 912
876 config MICROCODE_OLD_INTERFACE 913config MICROCODE_OLD_INTERFACE
877 def_bool y 914 def_bool y
878 depends on MICROCODE 915 depends on MICROCODE
879 916
880config X86_MSR 917config X86_MSR
881 tristate "/dev/cpu/*/msr - Model-specific register support" 918 tristate "/dev/cpu/*/msr - Model-specific register support"
882 help 919 ---help---
883 This device gives privileged processes access to the x86 920 This device gives privileged processes access to the x86
884 Model-Specific Registers (MSRs). It is a character device with 921 Model-Specific Registers (MSRs). It is a character device with
885 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 922 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
@@ -888,7 +925,7 @@ config X86_MSR
888 925
889config X86_CPUID 926config X86_CPUID
890 tristate "/dev/cpu/*/cpuid - CPU information support" 927 tristate "/dev/cpu/*/cpuid - CPU information support"
891 help 928 ---help---
892 This device gives processes access to the x86 CPUID instruction to 929 This device gives processes access to the x86 CPUID instruction to
893 be executed on a specific processor. It is a character device 930 be executed on a specific processor. It is a character device
894 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 931 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
@@ -940,7 +977,7 @@ config NOHIGHMEM
940config HIGHMEM4G 977config HIGHMEM4G
941 bool "4GB" 978 bool "4GB"
942 depends on !X86_NUMAQ 979 depends on !X86_NUMAQ
943 help 980 ---help---
944 Select this if you have a 32-bit processor and between 1 and 4 981 Select this if you have a 32-bit processor and between 1 and 4
945 gigabytes of physical RAM. 982 gigabytes of physical RAM.
946 983
@@ -948,7 +985,7 @@ config HIGHMEM64G
948 bool "64GB" 985 bool "64GB"
949 depends on !M386 && !M486 986 depends on !M386 && !M486
950 select X86_PAE 987 select X86_PAE
951 help 988 ---help---
952 Select this if you have a 32-bit processor and more than 4 989 Select this if you have a 32-bit processor and more than 4
953 gigabytes of physical RAM. 990 gigabytes of physical RAM.
954 991
@@ -959,7 +996,7 @@ choice
959 prompt "Memory split" if EMBEDDED 996 prompt "Memory split" if EMBEDDED
960 default VMSPLIT_3G 997 default VMSPLIT_3G
961 depends on X86_32 998 depends on X86_32
962 help 999 ---help---
963 Select the desired split between kernel and user memory. 1000 Select the desired split between kernel and user memory.
964 1001
965 If the address range available to the kernel is less than the 1002 If the address range available to the kernel is less than the
@@ -1005,20 +1042,20 @@ config HIGHMEM
1005config X86_PAE 1042config X86_PAE
1006 bool "PAE (Physical Address Extension) Support" 1043 bool "PAE (Physical Address Extension) Support"
1007 depends on X86_32 && !HIGHMEM4G 1044 depends on X86_32 && !HIGHMEM4G
1008 help 1045 ---help---
1009 PAE is required for NX support, and furthermore enables 1046 PAE is required for NX support, and furthermore enables
1010 larger swapspace support for non-overcommit purposes. It 1047 larger swapspace support for non-overcommit purposes. It
1011 has the cost of more pagetable lookup overhead, and also 1048 has the cost of more pagetable lookup overhead, and also
1012 consumes more pagetable space per process. 1049 consumes more pagetable space per process.
1013 1050
1014config ARCH_PHYS_ADDR_T_64BIT 1051config ARCH_PHYS_ADDR_T_64BIT
1015 def_bool X86_64 || X86_PAE 1052 def_bool X86_64 || X86_PAE
1016 1053
1017config DIRECT_GBPAGES 1054config DIRECT_GBPAGES
1018 bool "Enable 1GB pages for kernel pagetables" if EMBEDDED 1055 bool "Enable 1GB pages for kernel pagetables" if EMBEDDED
1019 default y 1056 default y
1020 depends on X86_64 1057 depends on X86_64
1021 help 1058 ---help---
1022 Allow the kernel linear mapping to use 1GB pages on CPUs that 1059 Allow the kernel linear mapping to use 1GB pages on CPUs that
1023 support it. This can improve the kernel's performance a tiny bit by 1060 support it. This can improve the kernel's performance a tiny bit by
1024 reducing TLB pressure. If in doubt, say "Y". 1061 reducing TLB pressure. If in doubt, say "Y".
@@ -1028,9 +1065,8 @@ config NUMA
1028 bool "Numa Memory Allocation and Scheduler Support" 1065 bool "Numa Memory Allocation and Scheduler Support"
1029 depends on SMP 1066 depends on SMP
1030 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) 1067 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL)
1031 default n if X86_PC
1032 default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) 1068 default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
1033 help 1069 ---help---
1034 Enable NUMA (Non Uniform Memory Access) support. 1070 Enable NUMA (Non Uniform Memory Access) support.
1035 1071
1036 The kernel will try to allocate memory used by a CPU on the 1072 The kernel will try to allocate memory used by a CPU on the
@@ -1053,19 +1089,19 @@ config K8_NUMA
1053 def_bool y 1089 def_bool y
1054 prompt "Old style AMD Opteron NUMA detection" 1090 prompt "Old style AMD Opteron NUMA detection"
1055 depends on X86_64 && NUMA && PCI 1091 depends on X86_64 && NUMA && PCI
1056 help 1092 ---help---
1057 Enable K8 NUMA node topology detection. You should say Y here if 1093 Enable K8 NUMA node topology detection. You should say Y here if
1058 you have a multi processor AMD K8 system. This uses an old 1094 you have a multi processor AMD K8 system. This uses an old
1059 method to read the NUMA configuration directly from the builtin 1095 method to read the NUMA configuration directly from the builtin
1060 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA 1096 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
1061 instead, which also takes priority if both are compiled in. 1097 instead, which also takes priority if both are compiled in.
1062 1098
1063config X86_64_ACPI_NUMA 1099config X86_64_ACPI_NUMA
1064 def_bool y 1100 def_bool y
1065 prompt "ACPI NUMA detection" 1101 prompt "ACPI NUMA detection"
1066 depends on X86_64 && NUMA && ACPI && PCI 1102 depends on X86_64 && NUMA && ACPI && PCI
1067 select ACPI_NUMA 1103 select ACPI_NUMA
1068 help 1104 ---help---
1069 Enable ACPI SRAT based node topology detection. 1105 Enable ACPI SRAT based node topology detection.
1070 1106
1071# Some NUMA nodes have memory ranges that span 1107# Some NUMA nodes have memory ranges that span
@@ -1080,7 +1116,7 @@ config NODES_SPAN_OTHER_NODES
1080config NUMA_EMU 1116config NUMA_EMU
1081 bool "NUMA emulation" 1117 bool "NUMA emulation"
1082 depends on X86_64 && NUMA 1118 depends on X86_64 && NUMA
1083 help 1119 ---help---
1084 Enable NUMA emulation. A flat machine will be split 1120 Enable NUMA emulation. A flat machine will be split
1085 into virtual nodes when booted with "numa=fake=N", where N is the 1121 into virtual nodes when booted with "numa=fake=N", where N is the
1086 number of nodes. This is only useful for debugging. 1122 number of nodes. This is only useful for debugging.
@@ -1093,11 +1129,11 @@ config NODES_SHIFT
1093 default "4" if X86_NUMAQ 1129 default "4" if X86_NUMAQ
1094 default "3" 1130 default "3"
1095 depends on NEED_MULTIPLE_NODES 1131 depends on NEED_MULTIPLE_NODES
1096 help 1132 ---help---
1097 Specify the maximum number of NUMA Nodes available on the target 1133 Specify the maximum number of NUMA Nodes available on the target
1098 system. Increases memory reserved to accomodate various tables. 1134 system. Increases memory reserved to accomodate various tables.
1099 1135
1100config HAVE_ARCH_BOOTMEM_NODE 1136config HAVE_ARCH_BOOTMEM
1101 def_bool y 1137 def_bool y
1102 depends on X86_32 && NUMA 1138 depends on X86_32 && NUMA
1103 1139
@@ -1131,7 +1167,7 @@ config ARCH_SPARSEMEM_DEFAULT
1131 1167
1132config ARCH_SPARSEMEM_ENABLE 1168config ARCH_SPARSEMEM_ENABLE
1133 def_bool y 1169 def_bool y
1134 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) || X86_GENERICARCH 1170 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD
1135 select SPARSEMEM_STATIC if X86_32 1171 select SPARSEMEM_STATIC if X86_32
1136 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 1172 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1137 1173
@@ -1148,61 +1184,61 @@ source "mm/Kconfig"
1148config HIGHPTE 1184config HIGHPTE
1149 bool "Allocate 3rd-level pagetables from highmem" 1185 bool "Allocate 3rd-level pagetables from highmem"
1150 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G) 1186 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G)
1151 help 1187 ---help---
1152 The VM uses one page table entry for each page of physical memory. 1188 The VM uses one page table entry for each page of physical memory.
1153 For systems with a lot of RAM, this can be wasteful of precious 1189 For systems with a lot of RAM, this can be wasteful of precious
1154 low memory. Setting this option will put user-space page table 1190 low memory. Setting this option will put user-space page table
1155 entries in high memory. 1191 entries in high memory.
1156 1192
1157config X86_CHECK_BIOS_CORRUPTION 1193config X86_CHECK_BIOS_CORRUPTION
1158 bool "Check for low memory corruption" 1194 bool "Check for low memory corruption"
1159 help 1195 ---help---
1160 Periodically check for memory corruption in low memory, which 1196 Periodically check for memory corruption in low memory, which
1161 is suspected to be caused by BIOS. Even when enabled in the 1197 is suspected to be caused by BIOS. Even when enabled in the
1162 configuration, it is disabled at runtime. Enable it by 1198 configuration, it is disabled at runtime. Enable it by
1163 setting "memory_corruption_check=1" on the kernel command 1199 setting "memory_corruption_check=1" on the kernel command
1164 line. By default it scans the low 64k of memory every 60 1200 line. By default it scans the low 64k of memory every 60
1165 seconds; see the memory_corruption_check_size and 1201 seconds; see the memory_corruption_check_size and
1166 memory_corruption_check_period parameters in 1202 memory_corruption_check_period parameters in
1167 Documentation/kernel-parameters.txt to adjust this. 1203 Documentation/kernel-parameters.txt to adjust this.
1168 1204
1169 When enabled with the default parameters, this option has 1205 When enabled with the default parameters, this option has
1170 almost no overhead, as it reserves a relatively small amount 1206 almost no overhead, as it reserves a relatively small amount
1171 of memory and scans it infrequently. It both detects corruption 1207 of memory and scans it infrequently. It both detects corruption
1172 and prevents it from affecting the running system. 1208 and prevents it from affecting the running system.
1173 1209
1174 It is, however, intended as a diagnostic tool; if repeatable 1210 It is, however, intended as a diagnostic tool; if repeatable
1175 BIOS-originated corruption always affects the same memory, 1211 BIOS-originated corruption always affects the same memory,
1176 you can use memmap= to prevent the kernel from using that 1212 you can use memmap= to prevent the kernel from using that
1177 memory. 1213 memory.
1178 1214
1179config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK 1215config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
1180 bool "Set the default setting of memory_corruption_check" 1216 bool "Set the default setting of memory_corruption_check"
1181 depends on X86_CHECK_BIOS_CORRUPTION 1217 depends on X86_CHECK_BIOS_CORRUPTION
1182 default y 1218 default y
1183 help 1219 ---help---
1184 Set whether the default state of memory_corruption_check is 1220 Set whether the default state of memory_corruption_check is
1185 on or off. 1221 on or off.
1186 1222
1187config X86_RESERVE_LOW_64K 1223config X86_RESERVE_LOW_64K
1188 bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen" 1224 bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen"
1189 default y 1225 default y
1190 help 1226 ---help---
1191 Reserve the first 64K of physical RAM on BIOSes that are known 1227 Reserve the first 64K of physical RAM on BIOSes that are known
1192 to potentially corrupt that memory range. A numbers of BIOSes are 1228 to potentially corrupt that memory range. A numbers of BIOSes are
1193 known to utilize this area during suspend/resume, so it must not 1229 known to utilize this area during suspend/resume, so it must not
1194 be used by the kernel. 1230 be used by the kernel.
1195 1231
1196 Set this to N if you are absolutely sure that you trust the BIOS 1232 Set this to N if you are absolutely sure that you trust the BIOS
1197 to get all its memory reservations and usages right. 1233 to get all its memory reservations and usages right.
1198 1234
1199 If you have doubts about the BIOS (e.g. suspend/resume does not 1235 If you have doubts about the BIOS (e.g. suspend/resume does not
1200 work or there's kernel crashes after certain hardware hotplug 1236 work or there's kernel crashes after certain hardware hotplug
1201 events) and it's not AMI or Phoenix, then you might want to enable 1237 events) and it's not AMI or Phoenix, then you might want to enable
1202 X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical 1238 X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical
1203 corruption patterns. 1239 corruption patterns.
1204 1240
1205 Say Y if unsure. 1241 Say Y if unsure.
1206 1242
1207config MATH_EMULATION 1243config MATH_EMULATION
1208 bool 1244 bool
@@ -1268,7 +1304,7 @@ config MTRR_SANITIZER
1268 def_bool y 1304 def_bool y
1269 prompt "MTRR cleanup support" 1305 prompt "MTRR cleanup support"
1270 depends on MTRR 1306 depends on MTRR
1271 help 1307 ---help---
1272 Convert MTRR layout from continuous to discrete, so X drivers can 1308 Convert MTRR layout from continuous to discrete, so X drivers can
1273 add writeback entries. 1309 add writeback entries.
1274 1310
@@ -1283,7 +1319,7 @@ config MTRR_SANITIZER_ENABLE_DEFAULT
1283 range 0 1 1319 range 0 1
1284 default "0" 1320 default "0"
1285 depends on MTRR_SANITIZER 1321 depends on MTRR_SANITIZER
1286 help 1322 ---help---
1287 Enable mtrr cleanup default value 1323 Enable mtrr cleanup default value
1288 1324
1289config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT 1325config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
@@ -1291,7 +1327,7 @@ config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
1291 range 0 7 1327 range 0 7
1292 default "1" 1328 default "1"
1293 depends on MTRR_SANITIZER 1329 depends on MTRR_SANITIZER
1294 help 1330 ---help---
1295 mtrr cleanup spare entries default, it can be changed via 1331 mtrr cleanup spare entries default, it can be changed via
1296 mtrr_spare_reg_nr=N on the kernel command line. 1332 mtrr_spare_reg_nr=N on the kernel command line.
1297 1333
@@ -1299,7 +1335,7 @@ config X86_PAT
1299 bool 1335 bool
1300 prompt "x86 PAT support" 1336 prompt "x86 PAT support"
1301 depends on MTRR 1337 depends on MTRR
1302 help 1338 ---help---
1303 Use PAT attributes to setup page level cache control. 1339 Use PAT attributes to setup page level cache control.
1304 1340
1305 PATs are the modern equivalents of MTRRs and are much more 1341 PATs are the modern equivalents of MTRRs and are much more
@@ -1314,20 +1350,20 @@ config EFI
1314 bool "EFI runtime service support" 1350 bool "EFI runtime service support"
1315 depends on ACPI 1351 depends on ACPI
1316 ---help--- 1352 ---help---
1317 This enables the kernel to use EFI runtime services that are 1353 This enables the kernel to use EFI runtime services that are
1318 available (such as the EFI variable services). 1354 available (such as the EFI variable services).
1319 1355
1320 This option is only useful on systems that have EFI firmware. 1356 This option is only useful on systems that have EFI firmware.
1321 In addition, you should use the latest ELILO loader available 1357 In addition, you should use the latest ELILO loader available
1322 at <http://elilo.sourceforge.net> in order to take advantage 1358 at <http://elilo.sourceforge.net> in order to take advantage
1323 of EFI runtime services. However, even with this option, the 1359 of EFI runtime services. However, even with this option, the
1324 resultant kernel should continue to boot on existing non-EFI 1360 resultant kernel should continue to boot on existing non-EFI
1325 platforms. 1361 platforms.
1326 1362
1327config SECCOMP 1363config SECCOMP
1328 def_bool y 1364 def_bool y
1329 prompt "Enable seccomp to safely compute untrusted bytecode" 1365 prompt "Enable seccomp to safely compute untrusted bytecode"
1330 help 1366 ---help---
1331 This kernel feature is useful for number crunching applications 1367 This kernel feature is useful for number crunching applications
1332 that may need to compute untrusted bytecode during their 1368 that may need to compute untrusted bytecode during their
1333 execution. By using pipes or other transports made available to 1369 execution. By using pipes or other transports made available to
@@ -1340,13 +1376,16 @@ config SECCOMP
1340 1376
1341 If unsure, say Y. Only embedded should say N here. 1377 If unsure, say Y. Only embedded should say N here.
1342 1378
1379config CC_STACKPROTECTOR_ALL
1380 bool
1381
1343config CC_STACKPROTECTOR 1382config CC_STACKPROTECTOR
1344 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 1383 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1345 depends on X86_64 && EXPERIMENTAL && BROKEN 1384 select CC_STACKPROTECTOR_ALL
1346 help 1385 ---help---
1347 This option turns on the -fstack-protector GCC feature. This 1386 This option turns on the -fstack-protector GCC feature. This
1348 feature puts, at the beginning of critical functions, a canary 1387 feature puts, at the beginning of functions, a canary value on
1349 value on the stack just before the return address, and validates 1388 the stack just before the return address, and validates
1350 the value just before actually returning. Stack based buffer 1389 the value just before actually returning. Stack based buffer
1351 overflows (that need to overwrite this return address) now also 1390 overflows (that need to overwrite this return address) now also
1352 overwrite the canary, which gets detected and the attack is then 1391 overwrite the canary, which gets detected and the attack is then
@@ -1354,22 +1393,14 @@ config CC_STACKPROTECTOR
1354 1393
1355 This feature requires gcc version 4.2 or above, or a distribution 1394 This feature requires gcc version 4.2 or above, or a distribution
1356 gcc with the feature backported. Older versions are automatically 1395 gcc with the feature backported. Older versions are automatically
1357 detected and for those versions, this configuration option is ignored. 1396 detected and for those versions, this configuration option is
1358 1397 ignored. (and a warning is printed during bootup)
1359config CC_STACKPROTECTOR_ALL
1360 bool "Use stack-protector for all functions"
1361 depends on CC_STACKPROTECTOR
1362 help
1363 Normally, GCC only inserts the canary value protection for
1364 functions that use large-ish on-stack buffers. By enabling
1365 this option, GCC will be asked to do this for ALL functions.
1366 1398
1367source kernel/Kconfig.hz 1399source kernel/Kconfig.hz
1368 1400
1369config KEXEC 1401config KEXEC
1370 bool "kexec system call" 1402 bool "kexec system call"
1371 depends on X86_BIOS_REBOOT 1403 ---help---
1372 help
1373 kexec is a system call that implements the ability to shutdown your 1404 kexec is a system call that implements the ability to shutdown your
1374 current kernel, and to start another kernel. It is like a reboot 1405 current kernel, and to start another kernel. It is like a reboot
1375 but it is independent of the system firmware. And like a reboot 1406 but it is independent of the system firmware. And like a reboot
@@ -1386,7 +1417,7 @@ config KEXEC
1386config CRASH_DUMP 1417config CRASH_DUMP
1387 bool "kernel crash dumps" 1418 bool "kernel crash dumps"
1388 depends on X86_64 || (X86_32 && HIGHMEM) 1419 depends on X86_64 || (X86_32 && HIGHMEM)
1389 help 1420 ---help---
1390 Generate crash dump after being started by kexec. 1421 Generate crash dump after being started by kexec.
1391 This should be normally only set in special crash dump kernels 1422 This should be normally only set in special crash dump kernels
1392 which are loaded in the main kernel with kexec-tools into 1423 which are loaded in the main kernel with kexec-tools into
@@ -1400,8 +1431,8 @@ config CRASH_DUMP
1400config KEXEC_JUMP 1431config KEXEC_JUMP
1401 bool "kexec jump (EXPERIMENTAL)" 1432 bool "kexec jump (EXPERIMENTAL)"
1402 depends on EXPERIMENTAL 1433 depends on EXPERIMENTAL
1403 depends on KEXEC && HIBERNATION && X86_32 1434 depends on KEXEC && HIBERNATION
1404 help 1435 ---help---
1405 Jump between original kernel and kexeced kernel and invoke 1436 Jump between original kernel and kexeced kernel and invoke
1406 code in physical address mode via KEXEC 1437 code in physical address mode via KEXEC
1407 1438
@@ -1410,7 +1441,7 @@ config PHYSICAL_START
1410 default "0x1000000" if X86_NUMAQ 1441 default "0x1000000" if X86_NUMAQ
1411 default "0x200000" if X86_64 1442 default "0x200000" if X86_64
1412 default "0x100000" 1443 default "0x100000"
1413 help 1444 ---help---
1414 This gives the physical address where the kernel is loaded. 1445 This gives the physical address where the kernel is loaded.
1415 1446
1416 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then 1447 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
@@ -1451,7 +1482,7 @@ config PHYSICAL_START
1451config RELOCATABLE 1482config RELOCATABLE
1452 bool "Build a relocatable kernel (EXPERIMENTAL)" 1483 bool "Build a relocatable kernel (EXPERIMENTAL)"
1453 depends on EXPERIMENTAL 1484 depends on EXPERIMENTAL
1454 help 1485 ---help---
1455 This builds a kernel image that retains relocation information 1486 This builds a kernel image that retains relocation information
1456 so it can be loaded someplace besides the default 1MB. 1487 so it can be loaded someplace besides the default 1MB.
1457 The relocations tend to make the kernel binary about 10% larger, 1488 The relocations tend to make the kernel binary about 10% larger,
@@ -1471,7 +1502,7 @@ config PHYSICAL_ALIGN
1471 default "0x100000" if X86_32 1502 default "0x100000" if X86_32
1472 default "0x200000" if X86_64 1503 default "0x200000" if X86_64
1473 range 0x2000 0x400000 1504 range 0x2000 0x400000
1474 help 1505 ---help---
1475 This value puts the alignment restrictions on physical address 1506 This value puts the alignment restrictions on physical address
1476 where kernel is loaded and run from. Kernel is compiled for an 1507 where kernel is loaded and run from. Kernel is compiled for an
1477 address which meets above alignment restriction. 1508 address which meets above alignment restriction.
@@ -1492,7 +1523,7 @@ config PHYSICAL_ALIGN
1492 1523
1493config HOTPLUG_CPU 1524config HOTPLUG_CPU
1494 bool "Support for hot-pluggable CPUs" 1525 bool "Support for hot-pluggable CPUs"
1495 depends on SMP && HOTPLUG && !X86_VOYAGER 1526 depends on SMP && HOTPLUG
1496 ---help--- 1527 ---help---
1497 Say Y here to allow turning CPUs off and on. CPUs can be 1528 Say Y here to allow turning CPUs off and on. CPUs can be
1498 controlled through /sys/devices/system/cpu. 1529 controlled through /sys/devices/system/cpu.
@@ -1504,7 +1535,7 @@ config COMPAT_VDSO
1504 def_bool y 1535 def_bool y
1505 prompt "Compat VDSO support" 1536 prompt "Compat VDSO support"
1506 depends on X86_32 || IA32_EMULATION 1537 depends on X86_32 || IA32_EMULATION
1507 help 1538 ---help---
1508 Map the 32-bit VDSO to the predictable old-style address too. 1539 Map the 32-bit VDSO to the predictable old-style address too.
1509 ---help--- 1540 ---help---
1510 Say N here if you are running a sufficiently recent glibc 1541 Say N here if you are running a sufficiently recent glibc
@@ -1516,7 +1547,7 @@ config COMPAT_VDSO
1516config CMDLINE_BOOL 1547config CMDLINE_BOOL
1517 bool "Built-in kernel command line" 1548 bool "Built-in kernel command line"
1518 default n 1549 default n
1519 help 1550 ---help---
1520 Allow for specifying boot arguments to the kernel at 1551 Allow for specifying boot arguments to the kernel at
1521 build time. On some systems (e.g. embedded ones), it is 1552 build time. On some systems (e.g. embedded ones), it is
1522 necessary or convenient to provide some or all of the 1553 necessary or convenient to provide some or all of the
@@ -1534,7 +1565,7 @@ config CMDLINE
1534 string "Built-in kernel command string" 1565 string "Built-in kernel command string"
1535 depends on CMDLINE_BOOL 1566 depends on CMDLINE_BOOL
1536 default "" 1567 default ""
1537 help 1568 ---help---
1538 Enter arguments here that should be compiled into the kernel 1569 Enter arguments here that should be compiled into the kernel
1539 image and used at boot time. If the boot loader provides a 1570 image and used at boot time. If the boot loader provides a
1540 command line at boot time, it is appended to this string to 1571 command line at boot time, it is appended to this string to
@@ -1551,7 +1582,7 @@ config CMDLINE_OVERRIDE
1551 bool "Built-in command line overrides boot loader arguments" 1582 bool "Built-in command line overrides boot loader arguments"
1552 default n 1583 default n
1553 depends on CMDLINE_BOOL 1584 depends on CMDLINE_BOOL
1554 help 1585 ---help---
1555 Set this option to 'Y' to have the kernel ignore the boot loader 1586 Set this option to 'Y' to have the kernel ignore the boot loader
1556 command line, and use ONLY the built-in command line. 1587 command line, and use ONLY the built-in command line.
1557 1588
@@ -1573,7 +1604,6 @@ config HAVE_ARCH_EARLY_PFN_TO_NID
1573 depends on NUMA 1604 depends on NUMA
1574 1605
1575menu "Power management and ACPI options" 1606menu "Power management and ACPI options"
1576 depends on !X86_VOYAGER
1577 1607
1578config ARCH_HIBERNATION_HEADER 1608config ARCH_HIBERNATION_HEADER
1579 def_bool y 1609 def_bool y
@@ -1651,7 +1681,7 @@ if APM
1651 1681
1652config APM_IGNORE_USER_SUSPEND 1682config APM_IGNORE_USER_SUSPEND
1653 bool "Ignore USER SUSPEND" 1683 bool "Ignore USER SUSPEND"
1654 help 1684 ---help---
1655 This option will ignore USER SUSPEND requests. On machines with a 1685 This option will ignore USER SUSPEND requests. On machines with a
1656 compliant APM BIOS, you want to say N. However, on the NEC Versa M 1686 compliant APM BIOS, you want to say N. However, on the NEC Versa M
1657 series notebooks, it is necessary to say Y because of a BIOS bug. 1687 series notebooks, it is necessary to say Y because of a BIOS bug.
@@ -1675,7 +1705,7 @@ config APM_DO_ENABLE
1675 1705
1676config APM_CPU_IDLE 1706config APM_CPU_IDLE
1677 bool "Make CPU Idle calls when idle" 1707 bool "Make CPU Idle calls when idle"
1678 help 1708 ---help---
1679 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. 1709 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
1680 On some machines, this can activate improved power savings, such as 1710 On some machines, this can activate improved power savings, such as
1681 a slowed CPU clock rate, when the machine is idle. These idle calls 1711 a slowed CPU clock rate, when the machine is idle. These idle calls
@@ -1686,7 +1716,7 @@ config APM_CPU_IDLE
1686 1716
1687config APM_DISPLAY_BLANK 1717config APM_DISPLAY_BLANK
1688 bool "Enable console blanking using APM" 1718 bool "Enable console blanking using APM"
1689 help 1719 ---help---
1690 Enable console blanking using the APM. Some laptops can use this to 1720 Enable console blanking using the APM. Some laptops can use this to
1691 turn off the LCD backlight when the screen blanker of the Linux 1721 turn off the LCD backlight when the screen blanker of the Linux
1692 virtual console blanks the screen. Note that this is only used by 1722 virtual console blanks the screen. Note that this is only used by
@@ -1699,7 +1729,7 @@ config APM_DISPLAY_BLANK
1699 1729
1700config APM_ALLOW_INTS 1730config APM_ALLOW_INTS
1701 bool "Allow interrupts during APM BIOS calls" 1731 bool "Allow interrupts during APM BIOS calls"
1702 help 1732 ---help---
1703 Normally we disable external interrupts while we are making calls to 1733 Normally we disable external interrupts while we are making calls to
1704 the APM BIOS as a measure to lessen the effects of a badly behaving 1734 the APM BIOS as a measure to lessen the effects of a badly behaving
1705 BIOS implementation. The BIOS should reenable interrupts if it 1735 BIOS implementation. The BIOS should reenable interrupts if it
@@ -1724,7 +1754,7 @@ config PCI
1724 bool "PCI support" 1754 bool "PCI support"
1725 default y 1755 default y
1726 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) 1756 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
1727 help 1757 ---help---
1728 Find out whether you have a PCI motherboard. PCI is the name of a 1758 Find out whether you have a PCI motherboard. PCI is the name of a
1729 bus system, i.e. the way the CPU talks to the other stuff inside 1759 bus system, i.e. the way the CPU talks to the other stuff inside
1730 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or 1760 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
@@ -1795,40 +1825,52 @@ config PCI_MMCONFIG
1795config DMAR 1825config DMAR
1796 bool "Support for DMA Remapping Devices (EXPERIMENTAL)" 1826 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
1797 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL 1827 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL
1798 help 1828 ---help---
1799 DMA remapping (DMAR) devices support enables independent address 1829 DMA remapping (DMAR) devices support enables independent address
1800 translations for Direct Memory Access (DMA) from devices. 1830 translations for Direct Memory Access (DMA) from devices.
1801 These DMA remapping devices are reported via ACPI tables 1831 These DMA remapping devices are reported via ACPI tables
1802 and include PCI device scope covered by these DMA 1832 and include PCI device scope covered by these DMA
1803 remapping devices. 1833 remapping devices.
1804 1834
1835config DMAR_DEFAULT_ON
1836 def_bool y
1837 prompt "Enable DMA Remapping Devices by default"
1838 depends on DMAR
1839 help
1840 Selecting this option will enable a DMAR device at boot time if
1841 one is found. If this option is not selected, DMAR support can
1842 be enabled by passing intel_iommu=on to the kernel. It is
1843 recommended you say N here while the DMAR code remains
1844 experimental.
1845
1805config DMAR_GFX_WA 1846config DMAR_GFX_WA
1806 def_bool y 1847 def_bool y
1807 prompt "Support for Graphics workaround" 1848 prompt "Support for Graphics workaround"
1808 depends on DMAR 1849 depends on DMAR
1809 help 1850 ---help---
1810 Current Graphics drivers tend to use physical address 1851 Current Graphics drivers tend to use physical address
1811 for DMA and avoid using DMA APIs. Setting this config 1852 for DMA and avoid using DMA APIs. Setting this config
1812 option permits the IOMMU driver to set a unity map for 1853 option permits the IOMMU driver to set a unity map for
1813 all the OS-visible memory. Hence the driver can continue 1854 all the OS-visible memory. Hence the driver can continue
1814 to use physical addresses for DMA. 1855 to use physical addresses for DMA.
1815 1856
1816config DMAR_FLOPPY_WA 1857config DMAR_FLOPPY_WA
1817 def_bool y 1858 def_bool y
1818 depends on DMAR 1859 depends on DMAR
1819 help 1860 ---help---
1820 Floppy disk drivers are know to bypass DMA API calls 1861 Floppy disk drivers are know to bypass DMA API calls
1821 thereby failing to work when IOMMU is enabled. This 1862 thereby failing to work when IOMMU is enabled. This
1822 workaround will setup a 1:1 mapping for the first 1863 workaround will setup a 1:1 mapping for the first
1823 16M to make floppy (an ISA device) work. 1864 16M to make floppy (an ISA device) work.
1824 1865
1825config INTR_REMAP 1866config INTR_REMAP
1826 bool "Support for Interrupt Remapping (EXPERIMENTAL)" 1867 bool "Support for Interrupt Remapping (EXPERIMENTAL)"
1827 depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL 1868 depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
1828 help 1869 select X86_X2APIC
1829 Supports Interrupt remapping for IO-APIC and MSI devices. 1870 ---help---
1830 To use x2apic mode in the CPU's which support x2APIC enhancements or 1871 Supports Interrupt remapping for IO-APIC and MSI devices.
1831 to support platforms with CPU's having > 8 bit APIC ID, say Y. 1872 To use x2apic mode in the CPU's which support x2APIC enhancements or
1873 to support platforms with CPU's having > 8 bit APIC ID, say Y.
1832 1874
1833source "drivers/pci/pcie/Kconfig" 1875source "drivers/pci/pcie/Kconfig"
1834 1876
@@ -1842,8 +1884,7 @@ if X86_32
1842 1884
1843config ISA 1885config ISA
1844 bool "ISA support" 1886 bool "ISA support"
1845 depends on !X86_VOYAGER 1887 ---help---
1846 help
1847 Find out whether you have ISA slots on your motherboard. ISA is the 1888 Find out whether you have ISA slots on your motherboard. ISA is the
1848 name of a bus system, i.e. the way the CPU talks to the other stuff 1889 name of a bus system, i.e. the way the CPU talks to the other stuff
1849 inside your box. Other bus systems are PCI, EISA, MicroChannel 1890 inside your box. Other bus systems are PCI, EISA, MicroChannel
@@ -1869,9 +1910,8 @@ config EISA
1869source "drivers/eisa/Kconfig" 1910source "drivers/eisa/Kconfig"
1870 1911
1871config MCA 1912config MCA
1872 bool "MCA support" if !X86_VOYAGER 1913 bool "MCA support"
1873 default y if X86_VOYAGER 1914 ---help---
1874 help
1875 MicroChannel Architecture is found in some IBM PS/2 machines and 1915 MicroChannel Architecture is found in some IBM PS/2 machines and
1876 laptops. It is a bus system similar to PCI or ISA. See 1916 laptops. It is a bus system similar to PCI or ISA. See
1877 <file:Documentation/mca.txt> (and especially the web page given 1917 <file:Documentation/mca.txt> (and especially the web page given
@@ -1881,8 +1921,7 @@ source "drivers/mca/Kconfig"
1881 1921
1882config SCx200 1922config SCx200
1883 tristate "NatSemi SCx200 support" 1923 tristate "NatSemi SCx200 support"
1884 depends on !X86_VOYAGER 1924 ---help---
1885 help
1886 This provides basic support for National Semiconductor's 1925 This provides basic support for National Semiconductor's
1887 (now AMD's) Geode processors. The driver probes for the 1926 (now AMD's) Geode processors. The driver probes for the
1888 PCI-IDs of several on-chip devices, so its a good dependency 1927 PCI-IDs of several on-chip devices, so its a good dependency
@@ -1894,7 +1933,7 @@ config SCx200HR_TIMER
1894 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" 1933 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
1895 depends on SCx200 && GENERIC_TIME 1934 depends on SCx200 && GENERIC_TIME
1896 default y 1935 default y
1897 help 1936 ---help---
1898 This driver provides a clocksource built upon the on-chip 1937 This driver provides a clocksource built upon the on-chip
1899 27MHz high-resolution timer. Its also a workaround for 1938 27MHz high-resolution timer. Its also a workaround for
1900 NSC Geode SC-1100's buggy TSC, which loses time when the 1939 NSC Geode SC-1100's buggy TSC, which loses time when the
@@ -1905,7 +1944,7 @@ config GEODE_MFGPT_TIMER
1905 def_bool y 1944 def_bool y
1906 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events" 1945 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events"
1907 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS 1946 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS
1908 help 1947 ---help---
1909 This driver provides a clock event source based on the MFGPT 1948 This driver provides a clock event source based on the MFGPT
1910 timer(s) in the CS5535 and CS5536 companion chip for the geode. 1949 timer(s) in the CS5535 and CS5536 companion chip for the geode.
1911 MFGPTs have a better resolution and max interval than the 1950 MFGPTs have a better resolution and max interval than the
@@ -1914,7 +1953,7 @@ config GEODE_MFGPT_TIMER
1914config OLPC 1953config OLPC
1915 bool "One Laptop Per Child support" 1954 bool "One Laptop Per Child support"
1916 default n 1955 default n
1917 help 1956 ---help---
1918 Add support for detecting the unique features of the OLPC 1957 Add support for detecting the unique features of the OLPC
1919 XO hardware. 1958 XO hardware.
1920 1959
@@ -1939,16 +1978,16 @@ config IA32_EMULATION
1939 bool "IA32 Emulation" 1978 bool "IA32 Emulation"
1940 depends on X86_64 1979 depends on X86_64
1941 select COMPAT_BINFMT_ELF 1980 select COMPAT_BINFMT_ELF
1942 help 1981 ---help---
1943 Include code to run 32-bit programs under a 64-bit kernel. You should 1982 Include code to run 32-bit programs under a 64-bit kernel. You should
1944 likely turn this on, unless you're 100% sure that you don't have any 1983 likely turn this on, unless you're 100% sure that you don't have any
1945 32-bit programs left. 1984 32-bit programs left.
1946 1985
1947config IA32_AOUT 1986config IA32_AOUT
1948 tristate "IA32 a.out support" 1987 tristate "IA32 a.out support"
1949 depends on IA32_EMULATION 1988 depends on IA32_EMULATION
1950 help 1989 ---help---
1951 Support old a.out binaries in the 32bit emulation. 1990 Support old a.out binaries in the 32bit emulation.
1952 1991
1953config COMPAT 1992config COMPAT
1954 def_bool y 1993 def_bool y
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 8078955845ae..a95eaf0e582a 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -50,7 +50,7 @@ config M386
50config M486 50config M486
51 bool "486" 51 bool "486"
52 depends on X86_32 52 depends on X86_32
53 help 53 ---help---
54 Select this for a 486 series processor, either Intel or one of the 54 Select this for a 486 series processor, either Intel or one of the
55 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX, 55 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX,
56 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or 56 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
@@ -59,7 +59,7 @@ config M486
59config M586 59config M586
60 bool "586/K5/5x86/6x86/6x86MX" 60 bool "586/K5/5x86/6x86/6x86MX"
61 depends on X86_32 61 depends on X86_32
62 help 62 ---help---
63 Select this for an 586 or 686 series processor such as the AMD K5, 63 Select this for an 586 or 686 series processor such as the AMD K5,
64 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not 64 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
65 assume the RDTSC (Read Time Stamp Counter) instruction. 65 assume the RDTSC (Read Time Stamp Counter) instruction.
@@ -67,21 +67,21 @@ config M586
67config M586TSC 67config M586TSC
68 bool "Pentium-Classic" 68 bool "Pentium-Classic"
69 depends on X86_32 69 depends on X86_32
70 help 70 ---help---
71 Select this for a Pentium Classic processor with the RDTSC (Read 71 Select this for a Pentium Classic processor with the RDTSC (Read
72 Time Stamp Counter) instruction for benchmarking. 72 Time Stamp Counter) instruction for benchmarking.
73 73
74config M586MMX 74config M586MMX
75 bool "Pentium-MMX" 75 bool "Pentium-MMX"
76 depends on X86_32 76 depends on X86_32
77 help 77 ---help---
78 Select this for a Pentium with the MMX graphics/multimedia 78 Select this for a Pentium with the MMX graphics/multimedia
79 extended instructions. 79 extended instructions.
80 80
81config M686 81config M686
82 bool "Pentium-Pro" 82 bool "Pentium-Pro"
83 depends on X86_32 83 depends on X86_32
84 help 84 ---help---
85 Select this for Intel Pentium Pro chips. This enables the use of 85 Select this for Intel Pentium Pro chips. This enables the use of
86 Pentium Pro extended instructions, and disables the init-time guard 86 Pentium Pro extended instructions, and disables the init-time guard
87 against the f00f bug found in earlier Pentiums. 87 against the f00f bug found in earlier Pentiums.
@@ -89,7 +89,7 @@ config M686
89config MPENTIUMII 89config MPENTIUMII
90 bool "Pentium-II/Celeron(pre-Coppermine)" 90 bool "Pentium-II/Celeron(pre-Coppermine)"
91 depends on X86_32 91 depends on X86_32
92 help 92 ---help---
93 Select this for Intel chips based on the Pentium-II and 93 Select this for Intel chips based on the Pentium-II and
94 pre-Coppermine Celeron core. This option enables an unaligned 94 pre-Coppermine Celeron core. This option enables an unaligned
95 copy optimization, compiles the kernel with optimization flags 95 copy optimization, compiles the kernel with optimization flags
@@ -99,7 +99,7 @@ config MPENTIUMII
99config MPENTIUMIII 99config MPENTIUMIII
100 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" 100 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
101 depends on X86_32 101 depends on X86_32
102 help 102 ---help---
103 Select this for Intel chips based on the Pentium-III and 103 Select this for Intel chips based on the Pentium-III and
104 Celeron-Coppermine core. This option enables use of some 104 Celeron-Coppermine core. This option enables use of some
105 extended prefetch instructions in addition to the Pentium II 105 extended prefetch instructions in addition to the Pentium II
@@ -108,14 +108,14 @@ config MPENTIUMIII
108config MPENTIUMM 108config MPENTIUMM
109 bool "Pentium M" 109 bool "Pentium M"
110 depends on X86_32 110 depends on X86_32
111 help 111 ---help---
112 Select this for Intel Pentium M (not Pentium-4 M) 112 Select this for Intel Pentium M (not Pentium-4 M)
113 notebook chips. 113 notebook chips.
114 114
115config MPENTIUM4 115config MPENTIUM4
116 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon" 116 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon"
117 depends on X86_32 117 depends on X86_32
118 help 118 ---help---
119 Select this for Intel Pentium 4 chips. This includes the 119 Select this for Intel Pentium 4 chips. This includes the
120 Pentium 4, Pentium D, P4-based Celeron and Xeon, and 120 Pentium 4, Pentium D, P4-based Celeron and Xeon, and
121 Pentium-4 M (not Pentium M) chips. This option enables compile 121 Pentium-4 M (not Pentium M) chips. This option enables compile
@@ -151,7 +151,7 @@ config MPENTIUM4
151config MK6 151config MK6
152 bool "K6/K6-II/K6-III" 152 bool "K6/K6-II/K6-III"
153 depends on X86_32 153 depends on X86_32
154 help 154 ---help---
155 Select this for an AMD K6-family processor. Enables use of 155 Select this for an AMD K6-family processor. Enables use of
156 some extended instructions, and passes appropriate optimization 156 some extended instructions, and passes appropriate optimization
157 flags to GCC. 157 flags to GCC.
@@ -159,22 +159,22 @@ config MK6
159config MK7 159config MK7
160 bool "Athlon/Duron/K7" 160 bool "Athlon/Duron/K7"
161 depends on X86_32 161 depends on X86_32
162 help 162 ---help---
163 Select this for an AMD Athlon K7-family processor. Enables use of 163 Select this for an AMD Athlon K7-family processor. Enables use of
164 some extended instructions, and passes appropriate optimization 164 some extended instructions, and passes appropriate optimization
165 flags to GCC. 165 flags to GCC.
166 166
167config MK8 167config MK8
168 bool "Opteron/Athlon64/Hammer/K8" 168 bool "Opteron/Athlon64/Hammer/K8"
169 help 169 ---help---
170 Select this for an AMD Opteron or Athlon64 Hammer-family processor. Enables 170 Select this for an AMD Opteron or Athlon64 Hammer-family processor.
171 use of some extended instructions, and passes appropriate optimization 171 Enables use of some extended instructions, and passes appropriate
172 flags to GCC. 172 optimization flags to GCC.
173 173
174config MCRUSOE 174config MCRUSOE
175 bool "Crusoe" 175 bool "Crusoe"
176 depends on X86_32 176 depends on X86_32
177 help 177 ---help---
178 Select this for a Transmeta Crusoe processor. Treats the processor 178 Select this for a Transmeta Crusoe processor. Treats the processor
179 like a 586 with TSC, and sets some GCC optimization flags (like a 179 like a 586 with TSC, and sets some GCC optimization flags (like a
180 Pentium Pro with no alignment requirements). 180 Pentium Pro with no alignment requirements).
@@ -182,13 +182,13 @@ config MCRUSOE
182config MEFFICEON 182config MEFFICEON
183 bool "Efficeon" 183 bool "Efficeon"
184 depends on X86_32 184 depends on X86_32
185 help 185 ---help---
186 Select this for a Transmeta Efficeon processor. 186 Select this for a Transmeta Efficeon processor.
187 187
188config MWINCHIPC6 188config MWINCHIPC6
189 bool "Winchip-C6" 189 bool "Winchip-C6"
190 depends on X86_32 190 depends on X86_32
191 help 191 ---help---
192 Select this for an IDT Winchip C6 chip. Linux and GCC 192 Select this for an IDT Winchip C6 chip. Linux and GCC
193 treat this chip as a 586TSC with some extended instructions 193 treat this chip as a 586TSC with some extended instructions
194 and alignment requirements. 194 and alignment requirements.
@@ -196,7 +196,7 @@ config MWINCHIPC6
196config MWINCHIP3D 196config MWINCHIP3D
197 bool "Winchip-2/Winchip-2A/Winchip-3" 197 bool "Winchip-2/Winchip-2A/Winchip-3"
198 depends on X86_32 198 depends on X86_32
199 help 199 ---help---
200 Select this for an IDT Winchip-2, 2A or 3. Linux and GCC 200 Select this for an IDT Winchip-2, 2A or 3. Linux and GCC
201 treat this chip as a 586TSC with some extended instructions 201 treat this chip as a 586TSC with some extended instructions
202 and alignment requirements. Also enable out of order memory 202 and alignment requirements. Also enable out of order memory
@@ -206,19 +206,19 @@ config MWINCHIP3D
206config MGEODEGX1 206config MGEODEGX1
207 bool "GeodeGX1" 207 bool "GeodeGX1"
208 depends on X86_32 208 depends on X86_32
209 help 209 ---help---
210 Select this for a Geode GX1 (Cyrix MediaGX) chip. 210 Select this for a Geode GX1 (Cyrix MediaGX) chip.
211 211
212config MGEODE_LX 212config MGEODE_LX
213 bool "Geode GX/LX" 213 bool "Geode GX/LX"
214 depends on X86_32 214 depends on X86_32
215 help 215 ---help---
216 Select this for AMD Geode GX and LX processors. 216 Select this for AMD Geode GX and LX processors.
217 217
218config MCYRIXIII 218config MCYRIXIII
219 bool "CyrixIII/VIA-C3" 219 bool "CyrixIII/VIA-C3"
220 depends on X86_32 220 depends on X86_32
221 help 221 ---help---
222 Select this for a Cyrix III or C3 chip. Presently Linux and GCC 222 Select this for a Cyrix III or C3 chip. Presently Linux and GCC
223 treat this chip as a generic 586. Whilst the CPU is 686 class, 223 treat this chip as a generic 586. Whilst the CPU is 686 class,
224 it lacks the cmov extension which gcc assumes is present when 224 it lacks the cmov extension which gcc assumes is present when
@@ -230,7 +230,7 @@ config MCYRIXIII
230config MVIAC3_2 230config MVIAC3_2
231 bool "VIA C3-2 (Nehemiah)" 231 bool "VIA C3-2 (Nehemiah)"
232 depends on X86_32 232 depends on X86_32
233 help 233 ---help---
234 Select this for a VIA C3 "Nehemiah". Selecting this enables usage 234 Select this for a VIA C3 "Nehemiah". Selecting this enables usage
235 of SSE and tells gcc to treat the CPU as a 686. 235 of SSE and tells gcc to treat the CPU as a 686.
236 Note, this kernel will not boot on older (pre model 9) C3s. 236 Note, this kernel will not boot on older (pre model 9) C3s.
@@ -238,14 +238,14 @@ config MVIAC3_2
238config MVIAC7 238config MVIAC7
239 bool "VIA C7" 239 bool "VIA C7"
240 depends on X86_32 240 depends on X86_32
241 help 241 ---help---
242 Select this for a VIA C7. Selecting this uses the correct cache 242 Select this for a VIA C7. Selecting this uses the correct cache
243 shift and tells gcc to treat the CPU as a 686. 243 shift and tells gcc to treat the CPU as a 686.
244 244
245config MPSC 245config MPSC
246 bool "Intel P4 / older Netburst based Xeon" 246 bool "Intel P4 / older Netburst based Xeon"
247 depends on X86_64 247 depends on X86_64
248 help 248 ---help---
249 Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey 249 Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
250 Xeon CPUs with Intel 64bit which is compatible with x86-64. 250 Xeon CPUs with Intel 64bit which is compatible with x86-64.
251 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the 251 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
@@ -255,15 +255,17 @@ config MPSC
255 255
256config MCORE2 256config MCORE2
257 bool "Core 2/newer Xeon" 257 bool "Core 2/newer Xeon"
258 help 258 ---help---
259 Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx) 259
260 CPUs. You can distinguish newer from older Xeons by the CPU family 260 Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
261 in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo) 261 53xx) CPUs. You can distinguish newer from older Xeons by the CPU
262 family in /proc/cpuinfo. Newer ones have 6 and older ones 15
263 (not a typo)
262 264
263config GENERIC_CPU 265config GENERIC_CPU
264 bool "Generic-x86-64" 266 bool "Generic-x86-64"
265 depends on X86_64 267 depends on X86_64
266 help 268 ---help---
267 Generic x86-64 CPU. 269 Generic x86-64 CPU.
268 Run equally well on all x86-64 CPUs. 270 Run equally well on all x86-64 CPUs.
269 271
@@ -272,7 +274,7 @@ endchoice
272config X86_GENERIC 274config X86_GENERIC
273 bool "Generic x86 support" 275 bool "Generic x86 support"
274 depends on X86_32 276 depends on X86_32
275 help 277 ---help---
276 Instead of just including optimizations for the selected 278 Instead of just including optimizations for the selected
277 x86 variant (e.g. PII, Crusoe or Athlon), include some more 279 x86 variant (e.g. PII, Crusoe or Athlon), include some more
278 generic optimizations as well. This will make the kernel 280 generic optimizations as well. This will make the kernel
@@ -292,25 +294,23 @@ config X86_CPU
292# Define implied options from the CPU selection here 294# Define implied options from the CPU selection here
293config X86_L1_CACHE_BYTES 295config X86_L1_CACHE_BYTES
294 int 296 int
295 default "128" if GENERIC_CPU || MPSC 297 default "128" if MPSC
296 default "64" if MK8 || MCORE2 298 default "64" if GENERIC_CPU || MK8 || MCORE2 || X86_32
297 depends on X86_64
298 299
299config X86_INTERNODE_CACHE_BYTES 300config X86_INTERNODE_CACHE_BYTES
300 int 301 int
301 default "4096" if X86_VSMP 302 default "4096" if X86_VSMP
302 default X86_L1_CACHE_BYTES if !X86_VSMP 303 default X86_L1_CACHE_BYTES if !X86_VSMP
303 depends on X86_64
304 304
305config X86_CMPXCHG 305config X86_CMPXCHG
306 def_bool X86_64 || (X86_32 && !M386) 306 def_bool X86_64 || (X86_32 && !M386)
307 307
308config X86_L1_CACHE_SHIFT 308config X86_L1_CACHE_SHIFT
309 int 309 int
310 default "7" if MPENTIUM4 || X86_GENERIC || GENERIC_CPU || MPSC 310 default "7" if MPENTIUM4 || MPSC
311 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1 311 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1
312 default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX 312 default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
313 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 313 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 || X86_GENERIC || GENERIC_CPU
314 314
315config X86_XADD 315config X86_XADD
316 def_bool y 316 def_bool y
@@ -319,15 +319,15 @@ config X86_XADD
319config X86_PPRO_FENCE 319config X86_PPRO_FENCE
320 bool "PentiumPro memory ordering errata workaround" 320 bool "PentiumPro memory ordering errata workaround"
321 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1 321 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1
322 help 322 ---help---
323 Old PentiumPro multiprocessor systems had errata that could cause memory 323 Old PentiumPro multiprocessor systems had errata that could cause
324 operations to violate the x86 ordering standard in rare cases. Enabling this 324 memory operations to violate the x86 ordering standard in rare cases.
325 option will attempt to work around some (but not all) occurances of 325 Enabling this option will attempt to work around some (but not all)
326 this problem, at the cost of much heavier spinlock and memory barrier 326 occurances of this problem, at the cost of much heavier spinlock and
327 operations. 327 memory barrier operations.
328 328
329 If unsure, say n here. Even distro kernels should think twice before enabling 329 If unsure, say n here. Even distro kernels should think twice before
330 this: there are few systems, and an unlikely bug. 330 enabling this: there are few systems, and an unlikely bug.
331 331
332config X86_F00F_BUG 332config X86_F00F_BUG
333 def_bool y 333 def_bool y
@@ -412,14 +412,14 @@ config X86_DEBUGCTLMSR
412 412
413menuconfig PROCESSOR_SELECT 413menuconfig PROCESSOR_SELECT
414 bool "Supported processor vendors" if EMBEDDED 414 bool "Supported processor vendors" if EMBEDDED
415 help 415 ---help---
416 This lets you choose what x86 vendor support code your kernel 416 This lets you choose what x86 vendor support code your kernel
417 will include. 417 will include.
418 418
419config CPU_SUP_INTEL 419config CPU_SUP_INTEL
420 default y 420 default y
421 bool "Support Intel processors" if PROCESSOR_SELECT 421 bool "Support Intel processors" if PROCESSOR_SELECT
422 help 422 ---help---
423 This enables detection, tunings and quirks for Intel processors 423 This enables detection, tunings and quirks for Intel processors
424 424
425 You need this enabled if you want your kernel to run on an 425 You need this enabled if you want your kernel to run on an
@@ -433,7 +433,7 @@ config CPU_SUP_CYRIX_32
433 default y 433 default y
434 bool "Support Cyrix processors" if PROCESSOR_SELECT 434 bool "Support Cyrix processors" if PROCESSOR_SELECT
435 depends on !64BIT 435 depends on !64BIT
436 help 436 ---help---
437 This enables detection, tunings and quirks for Cyrix processors 437 This enables detection, tunings and quirks for Cyrix processors
438 438
439 You need this enabled if you want your kernel to run on a 439 You need this enabled if you want your kernel to run on a
@@ -446,7 +446,7 @@ config CPU_SUP_CYRIX_32
446config CPU_SUP_AMD 446config CPU_SUP_AMD
447 default y 447 default y
448 bool "Support AMD processors" if PROCESSOR_SELECT 448 bool "Support AMD processors" if PROCESSOR_SELECT
449 help 449 ---help---
450 This enables detection, tunings and quirks for AMD processors 450 This enables detection, tunings and quirks for AMD processors
451 451
452 You need this enabled if you want your kernel to run on an 452 You need this enabled if you want your kernel to run on an
@@ -460,7 +460,7 @@ config CPU_SUP_CENTAUR_32
460 default y 460 default y
461 bool "Support Centaur processors" if PROCESSOR_SELECT 461 bool "Support Centaur processors" if PROCESSOR_SELECT
462 depends on !64BIT 462 depends on !64BIT
463 help 463 ---help---
464 This enables detection, tunings and quirks for Centaur processors 464 This enables detection, tunings and quirks for Centaur processors
465 465
466 You need this enabled if you want your kernel to run on a 466 You need this enabled if you want your kernel to run on a
@@ -474,7 +474,7 @@ config CPU_SUP_CENTAUR_64
474 default y 474 default y
475 bool "Support Centaur processors" if PROCESSOR_SELECT 475 bool "Support Centaur processors" if PROCESSOR_SELECT
476 depends on 64BIT 476 depends on 64BIT
477 help 477 ---help---
478 This enables detection, tunings and quirks for Centaur processors 478 This enables detection, tunings and quirks for Centaur processors
479 479
480 You need this enabled if you want your kernel to run on a 480 You need this enabled if you want your kernel to run on a
@@ -488,7 +488,7 @@ config CPU_SUP_TRANSMETA_32
488 default y 488 default y
489 bool "Support Transmeta processors" if PROCESSOR_SELECT 489 bool "Support Transmeta processors" if PROCESSOR_SELECT
490 depends on !64BIT 490 depends on !64BIT
491 help 491 ---help---
492 This enables detection, tunings and quirks for Transmeta processors 492 This enables detection, tunings and quirks for Transmeta processors
493 493
494 You need this enabled if you want your kernel to run on a 494 You need this enabled if you want your kernel to run on a
@@ -502,7 +502,7 @@ config CPU_SUP_UMC_32
502 default y 502 default y
503 bool "Support UMC processors" if PROCESSOR_SELECT 503 bool "Support UMC processors" if PROCESSOR_SELECT
504 depends on !64BIT 504 depends on !64BIT
505 help 505 ---help---
506 This enables detection, tunings and quirks for UMC processors 506 This enables detection, tunings and quirks for UMC processors
507 507
508 You need this enabled if you want your kernel to run on a 508 You need this enabled if you want your kernel to run on a
@@ -521,7 +521,7 @@ config X86_PTRACE_BTS
521 bool "Branch Trace Store" 521 bool "Branch Trace Store"
522 default y 522 default y
523 depends on X86_DEBUGCTLMSR 523 depends on X86_DEBUGCTLMSR
524 help 524 ---help---
525 This adds a ptrace interface to the hardware's branch trace store. 525 This adds a ptrace interface to the hardware's branch trace store.
526 526
527 Debuggers may use it to collect an execution trace of the debugged 527 Debuggers may use it to collect an execution trace of the debugged
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
index 10d6cc3fd052..fdb45df608b6 100644
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -7,7 +7,7 @@ source "lib/Kconfig.debug"
7 7
8config STRICT_DEVMEM 8config STRICT_DEVMEM
9 bool "Filter access to /dev/mem" 9 bool "Filter access to /dev/mem"
10 help 10 ---help---
11 If this option is disabled, you allow userspace (root) access to all 11 If this option is disabled, you allow userspace (root) access to all
12 of memory, including kernel and userspace memory. Accidental 12 of memory, including kernel and userspace memory. Accidental
13 access to this is obviously disastrous, but specific access can 13 access to this is obviously disastrous, but specific access can
@@ -25,7 +25,7 @@ config STRICT_DEVMEM
25config X86_VERBOSE_BOOTUP 25config X86_VERBOSE_BOOTUP
26 bool "Enable verbose x86 bootup info messages" 26 bool "Enable verbose x86 bootup info messages"
27 default y 27 default y
28 help 28 ---help---
29 Enables the informational output from the decompression stage 29 Enables the informational output from the decompression stage
30 (e.g. bzImage) of the boot. If you disable this you will still 30 (e.g. bzImage) of the boot. If you disable this you will still
31 see errors. Disable this if you want silent bootup. 31 see errors. Disable this if you want silent bootup.
@@ -33,7 +33,7 @@ config X86_VERBOSE_BOOTUP
33config EARLY_PRINTK 33config EARLY_PRINTK
34 bool "Early printk" if EMBEDDED 34 bool "Early printk" if EMBEDDED
35 default y 35 default y
36 help 36 ---help---
37 Write kernel log output directly into the VGA buffer or to a serial 37 Write kernel log output directly into the VGA buffer or to a serial
38 port. 38 port.
39 39
@@ -47,7 +47,7 @@ config EARLY_PRINTK_DBGP
47 bool "Early printk via EHCI debug port" 47 bool "Early printk via EHCI debug port"
48 default n 48 default n
49 depends on EARLY_PRINTK && PCI 49 depends on EARLY_PRINTK && PCI
50 help 50 ---help---
51 Write kernel log output directly into the EHCI debug port. 51 Write kernel log output directly into the EHCI debug port.
52 52
53 This is useful for kernel debugging when your machine crashes very 53 This is useful for kernel debugging when your machine crashes very
@@ -59,14 +59,14 @@ config EARLY_PRINTK_DBGP
59config DEBUG_STACKOVERFLOW 59config DEBUG_STACKOVERFLOW
60 bool "Check for stack overflows" 60 bool "Check for stack overflows"
61 depends on DEBUG_KERNEL 61 depends on DEBUG_KERNEL
62 help 62 ---help---
63 This option will cause messages to be printed if free stack space 63 This option will cause messages to be printed if free stack space
64 drops below a certain limit. 64 drops below a certain limit.
65 65
66config DEBUG_STACK_USAGE 66config DEBUG_STACK_USAGE
67 bool "Stack utilization instrumentation" 67 bool "Stack utilization instrumentation"
68 depends on DEBUG_KERNEL 68 depends on DEBUG_KERNEL
69 help 69 ---help---
70 Enables the display of the minimum amount of free stack which each 70 Enables the display of the minimum amount of free stack which each
71 task has ever had available in the sysrq-T and sysrq-P debug output. 71 task has ever had available in the sysrq-T and sysrq-P debug output.
72 72
@@ -75,7 +75,7 @@ config DEBUG_STACK_USAGE
75config DEBUG_PAGEALLOC 75config DEBUG_PAGEALLOC
76 bool "Debug page memory allocations" 76 bool "Debug page memory allocations"
77 depends on DEBUG_KERNEL 77 depends on DEBUG_KERNEL
78 help 78 ---help---
79 Unmap pages from the kernel linear mapping after free_pages(). 79 Unmap pages from the kernel linear mapping after free_pages().
80 This results in a large slowdown, but helps to find certain types 80 This results in a large slowdown, but helps to find certain types
81 of memory corruptions. 81 of memory corruptions.
@@ -83,9 +83,9 @@ config DEBUG_PAGEALLOC
83config DEBUG_PER_CPU_MAPS 83config DEBUG_PER_CPU_MAPS
84 bool "Debug access to per_cpu maps" 84 bool "Debug access to per_cpu maps"
85 depends on DEBUG_KERNEL 85 depends on DEBUG_KERNEL
86 depends on X86_SMP 86 depends on SMP
87 default n 87 default n
88 help 88 ---help---
89 Say Y to verify that the per_cpu map being accessed has 89 Say Y to verify that the per_cpu map being accessed has
90 been setup. Adds a fair amount of code to kernel memory 90 been setup. Adds a fair amount of code to kernel memory
91 and decreases performance. 91 and decreases performance.
@@ -96,7 +96,7 @@ config X86_PTDUMP
96 bool "Export kernel pagetable layout to userspace via debugfs" 96 bool "Export kernel pagetable layout to userspace via debugfs"
97 depends on DEBUG_KERNEL 97 depends on DEBUG_KERNEL
98 select DEBUG_FS 98 select DEBUG_FS
99 help 99 ---help---
100 Say Y here if you want to show the kernel pagetable layout in a 100 Say Y here if you want to show the kernel pagetable layout in a
101 debugfs file. This information is only useful for kernel developers 101 debugfs file. This information is only useful for kernel developers
102 who are working in architecture specific areas of the kernel. 102 who are working in architecture specific areas of the kernel.
@@ -108,7 +108,7 @@ config DEBUG_RODATA
108 bool "Write protect kernel read-only data structures" 108 bool "Write protect kernel read-only data structures"
109 default y 109 default y
110 depends on DEBUG_KERNEL 110 depends on DEBUG_KERNEL
111 help 111 ---help---
112 Mark the kernel read-only data as write-protected in the pagetables, 112 Mark the kernel read-only data as write-protected in the pagetables,
113 in order to catch accidental (and incorrect) writes to such const 113 in order to catch accidental (and incorrect) writes to such const
114 data. This is recommended so that we can catch kernel bugs sooner. 114 data. This is recommended so that we can catch kernel bugs sooner.
@@ -117,7 +117,8 @@ config DEBUG_RODATA
117config DEBUG_RODATA_TEST 117config DEBUG_RODATA_TEST
118 bool "Testcase for the DEBUG_RODATA feature" 118 bool "Testcase for the DEBUG_RODATA feature"
119 depends on DEBUG_RODATA 119 depends on DEBUG_RODATA
120 help 120 default y
121 ---help---
121 This option enables a testcase for the DEBUG_RODATA 122 This option enables a testcase for the DEBUG_RODATA
122 feature as well as for the change_page_attr() infrastructure. 123 feature as well as for the change_page_attr() infrastructure.
123 If in doubt, say "N" 124 If in doubt, say "N"
@@ -125,7 +126,7 @@ config DEBUG_RODATA_TEST
125config DEBUG_NX_TEST 126config DEBUG_NX_TEST
126 tristate "Testcase for the NX non-executable stack feature" 127 tristate "Testcase for the NX non-executable stack feature"
127 depends on DEBUG_KERNEL && m 128 depends on DEBUG_KERNEL && m
128 help 129 ---help---
129 This option enables a testcase for the CPU NX capability 130 This option enables a testcase for the CPU NX capability
130 and the software setup of this feature. 131 and the software setup of this feature.
131 If in doubt, say "N" 132 If in doubt, say "N"
@@ -133,7 +134,7 @@ config DEBUG_NX_TEST
133config 4KSTACKS 134config 4KSTACKS
134 bool "Use 4Kb for kernel stacks instead of 8Kb" 135 bool "Use 4Kb for kernel stacks instead of 8Kb"
135 depends on X86_32 136 depends on X86_32
136 help 137 ---help---
137 If you say Y here the kernel will use a 4Kb stacksize for the 138 If you say Y here the kernel will use a 4Kb stacksize for the
138 kernel stack attached to each process/thread. This facilitates 139 kernel stack attached to each process/thread. This facilitates
139 running more threads on a system and also reduces the pressure 140 running more threads on a system and also reduces the pressure
@@ -144,7 +145,7 @@ config DOUBLEFAULT
144 default y 145 default y
145 bool "Enable doublefault exception handler" if EMBEDDED 146 bool "Enable doublefault exception handler" if EMBEDDED
146 depends on X86_32 147 depends on X86_32
147 help 148 ---help---
148 This option allows trapping of rare doublefault exceptions that 149 This option allows trapping of rare doublefault exceptions that
149 would otherwise cause a system to silently reboot. Disabling this 150 would otherwise cause a system to silently reboot. Disabling this
150 option saves about 4k and might cause you much additional grey 151 option saves about 4k and might cause you much additional grey
@@ -154,7 +155,7 @@ config IOMMU_DEBUG
154 bool "Enable IOMMU debugging" 155 bool "Enable IOMMU debugging"
155 depends on GART_IOMMU && DEBUG_KERNEL 156 depends on GART_IOMMU && DEBUG_KERNEL
156 depends on X86_64 157 depends on X86_64
157 help 158 ---help---
158 Force the IOMMU to on even when you have less than 4GB of 159 Force the IOMMU to on even when you have less than 4GB of
159 memory and add debugging code. On overflow always panic. And 160 memory and add debugging code. On overflow always panic. And
160 allow to enable IOMMU leak tracing. Can be disabled at boot 161 allow to enable IOMMU leak tracing. Can be disabled at boot
@@ -170,32 +171,12 @@ config IOMMU_LEAK
170 bool "IOMMU leak tracing" 171 bool "IOMMU leak tracing"
171 depends on DEBUG_KERNEL 172 depends on DEBUG_KERNEL
172 depends on IOMMU_DEBUG 173 depends on IOMMU_DEBUG
173 help 174 ---help---
174 Add a simple leak tracer to the IOMMU code. This is useful when you 175 Add a simple leak tracer to the IOMMU code. This is useful when you
175 are debugging a buggy device driver that leaks IOMMU mappings. 176 are debugging a buggy device driver that leaks IOMMU mappings.
176 177
177config MMIOTRACE 178config HAVE_MMIOTRACE_SUPPORT
178 bool "Memory mapped IO tracing" 179 def_bool y
179 depends on DEBUG_KERNEL && PCI
180 select TRACING
181 help
182 Mmiotrace traces Memory Mapped I/O access and is meant for
183 debugging and reverse engineering. It is called from the ioremap
184 implementation and works via page faults. Tracing is disabled by
185 default and can be enabled at run-time.
186
187 See Documentation/tracers/mmiotrace.txt.
188 If you are not helping to develop drivers, say N.
189
190config MMIOTRACE_TEST
191 tristate "Test module for mmiotrace"
192 depends on MMIOTRACE && m
193 help
194 This is a dumb module for testing mmiotrace. It is very dangerous
195 as it will write garbage to IO memory starting at a given address.
196 However, it should be safe to use on e.g. unused portion of VRAM.
197
198 Say N, unless you absolutely know what you are doing.
199 180
200# 181#
201# IO delay types: 182# IO delay types:
@@ -223,25 +204,25 @@ choice
223 204
224config IO_DELAY_0X80 205config IO_DELAY_0X80
225 bool "port 0x80 based port-IO delay [recommended]" 206 bool "port 0x80 based port-IO delay [recommended]"
226 help 207 ---help---
227 This is the traditional Linux IO delay used for in/out_p. 208 This is the traditional Linux IO delay used for in/out_p.
228 It is the most tested hence safest selection here. 209 It is the most tested hence safest selection here.
229 210
230config IO_DELAY_0XED 211config IO_DELAY_0XED
231 bool "port 0xed based port-IO delay" 212 bool "port 0xed based port-IO delay"
232 help 213 ---help---
233 Use port 0xed as the IO delay. This frees up port 0x80 which is 214 Use port 0xed as the IO delay. This frees up port 0x80 which is
234 often used as a hardware-debug port. 215 often used as a hardware-debug port.
235 216
236config IO_DELAY_UDELAY 217config IO_DELAY_UDELAY
237 bool "udelay based port-IO delay" 218 bool "udelay based port-IO delay"
238 help 219 ---help---
239 Use udelay(2) as the IO delay method. This provides the delay 220 Use udelay(2) as the IO delay method. This provides the delay
240 while not having any side-effect on the IO port space. 221 while not having any side-effect on the IO port space.
241 222
242config IO_DELAY_NONE 223config IO_DELAY_NONE
243 bool "no port-IO delay" 224 bool "no port-IO delay"
244 help 225 ---help---
245 No port-IO delay. Will break on old boxes that require port-IO 226 No port-IO delay. Will break on old boxes that require port-IO
246 delay for certain operations. Should work on most new machines. 227 delay for certain operations. Should work on most new machines.
247 228
@@ -275,18 +256,18 @@ config DEBUG_BOOT_PARAMS
275 bool "Debug boot parameters" 256 bool "Debug boot parameters"
276 depends on DEBUG_KERNEL 257 depends on DEBUG_KERNEL
277 depends on DEBUG_FS 258 depends on DEBUG_FS
278 help 259 ---help---
279 This option will cause struct boot_params to be exported via debugfs. 260 This option will cause struct boot_params to be exported via debugfs.
280 261
281config CPA_DEBUG 262config CPA_DEBUG
282 bool "CPA self-test code" 263 bool "CPA self-test code"
283 depends on DEBUG_KERNEL 264 depends on DEBUG_KERNEL
284 help 265 ---help---
285 Do change_page_attr() self-tests every 30 seconds. 266 Do change_page_attr() self-tests every 30 seconds.
286 267
287config OPTIMIZE_INLINING 268config OPTIMIZE_INLINING
288 bool "Allow gcc to uninline functions marked 'inline'" 269 bool "Allow gcc to uninline functions marked 'inline'"
289 help 270 ---help---
290 This option determines if the kernel forces gcc to inline the functions 271 This option determines if the kernel forces gcc to inline the functions
291 developers have marked 'inline'. Doing so takes away freedom from gcc to 272 developers have marked 'inline'. Doing so takes away freedom from gcc to
292 do what it thinks is best, which is desirable for the gcc 3.x series of 273 do what it thinks is best, which is desirable for the gcc 3.x series of
@@ -299,4 +280,3 @@ config OPTIMIZE_INLINING
299 If unsure, say N. 280 If unsure, say N.
300 281
301endmenu 282endmenu
302
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index d1a47adb5aec..1836191839ee 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -70,14 +70,17 @@ else
70 # this works around some issues with generating unwind tables in older gccs 70 # this works around some issues with generating unwind tables in older gccs
71 # newer gccs do it by default 71 # newer gccs do it by default
72 KBUILD_CFLAGS += -maccumulate-outgoing-args 72 KBUILD_CFLAGS += -maccumulate-outgoing-args
73endif
73 74
74 stackp := $(CONFIG_SHELL) $(srctree)/scripts/gcc-x86_64-has-stack-protector.sh 75ifdef CONFIG_CC_STACKPROTECTOR
75 stackp-$(CONFIG_CC_STACKPROTECTOR) := $(shell $(stackp) \ 76 cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
76 "$(CC)" -fstack-protector ) 77 ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC)),y)
77 stackp-$(CONFIG_CC_STACKPROTECTOR_ALL) += $(shell $(stackp) \ 78 stackp-y := -fstack-protector
78 "$(CC)" -fstack-protector-all ) 79 stackp-$(CONFIG_CC_STACKPROTECTOR_ALL) += -fstack-protector-all
79 80 KBUILD_CFLAGS += $(stackp-y)
80 KBUILD_CFLAGS += $(stackp-y) 81 else
82 $(warning stack protector enabled but no compiler support)
83 endif
81endif 84endif
82 85
83# Stackpointer is addressed different for 32 bit and 64 bit x86 86# Stackpointer is addressed different for 32 bit and 64 bit x86
@@ -102,29 +105,6 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
102# prevent gcc from generating any FP code by mistake 105# prevent gcc from generating any FP code by mistake
103KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,) 106KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
104 107
105###
106# Sub architecture support
107# fcore-y is linked before mcore-y files.
108
109# Default subarch .c files
110mcore-y := arch/x86/mach-default/
111
112# Voyager subarch support
113mflags-$(CONFIG_X86_VOYAGER) := -Iarch/x86/include/asm/mach-voyager
114mcore-$(CONFIG_X86_VOYAGER) := arch/x86/mach-voyager/
115
116# generic subarchitecture
117mflags-$(CONFIG_X86_GENERICARCH):= -Iarch/x86/include/asm/mach-generic
118fcore-$(CONFIG_X86_GENERICARCH) += arch/x86/mach-generic/
119mcore-$(CONFIG_X86_GENERICARCH) := arch/x86/mach-default/
120
121# default subarch .h files
122mflags-y += -Iarch/x86/include/asm/mach-default
123
124# 64 bit does not support subarch support - clear sub arch variables
125fcore-$(CONFIG_X86_64) :=
126mcore-$(CONFIG_X86_64) :=
127
128KBUILD_CFLAGS += $(mflags-y) 108KBUILD_CFLAGS += $(mflags-y)
129KBUILD_AFLAGS += $(mflags-y) 109KBUILD_AFLAGS += $(mflags-y)
130 110
@@ -150,9 +130,6 @@ core-$(CONFIG_LGUEST_GUEST) += arch/x86/lguest/
150core-y += arch/x86/kernel/ 130core-y += arch/x86/kernel/
151core-y += arch/x86/mm/ 131core-y += arch/x86/mm/
152 132
153# Remaining sub architecture files
154core-y += $(mcore-y)
155
156core-y += arch/x86/crypto/ 133core-y += arch/x86/crypto/
157core-y += arch/x86/vdso/ 134core-y += arch/x86/vdso/
158core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/ 135core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
index cd48c7210016..c70eff69a1fb 100644
--- a/arch/x86/boot/Makefile
+++ b/arch/x86/boot/Makefile
@@ -32,7 +32,6 @@ setup-y += a20.o cmdline.o copy.o cpu.o cpucheck.o edd.o
32setup-y += header.o main.o mca.o memory.o pm.o pmjump.o 32setup-y += header.o main.o mca.o memory.o pm.o pmjump.o
33setup-y += printf.o string.o tty.o video.o video-mode.o version.o 33setup-y += printf.o string.o tty.o video.o video-mode.o version.o
34setup-$(CONFIG_X86_APM_BOOT) += apm.o 34setup-$(CONFIG_X86_APM_BOOT) += apm.o
35setup-$(CONFIG_X86_VOYAGER) += voyager.o
36 35
37# The link order of the video-*.o modules can matter. In particular, 36# The link order of the video-*.o modules can matter. In particular,
38# video-vga.o *must* be listed first, followed by video-vesa.o. 37# video-vga.o *must* be listed first, followed by video-vesa.o.
diff --git a/arch/x86/boot/a20.c b/arch/x86/boot/a20.c
index 4063d630deff..7c19ce8c2442 100644
--- a/arch/x86/boot/a20.c
+++ b/arch/x86/boot/a20.c
@@ -2,6 +2,7 @@
2 * 2 *
3 * Copyright (C) 1991, 1992 Linus Torvalds 3 * Copyright (C) 1991, 1992 Linus Torvalds
4 * Copyright 2007-2008 rPath, Inc. - All Rights Reserved 4 * Copyright 2007-2008 rPath, Inc. - All Rights Reserved
5 * Copyright 2009 Intel Corporation
5 * 6 *
6 * This file is part of the Linux kernel, and is made available under 7 * This file is part of the Linux kernel, and is made available under
7 * the terms of the GNU General Public License version 2. 8 * the terms of the GNU General Public License version 2.
@@ -15,16 +16,23 @@
15#include "boot.h" 16#include "boot.h"
16 17
17#define MAX_8042_LOOPS 100000 18#define MAX_8042_LOOPS 100000
19#define MAX_8042_FF 32
18 20
19static int empty_8042(void) 21static int empty_8042(void)
20{ 22{
21 u8 status; 23 u8 status;
22 int loops = MAX_8042_LOOPS; 24 int loops = MAX_8042_LOOPS;
25 int ffs = MAX_8042_FF;
23 26
24 while (loops--) { 27 while (loops--) {
25 io_delay(); 28 io_delay();
26 29
27 status = inb(0x64); 30 status = inb(0x64);
31 if (status == 0xff) {
32 /* FF is a plausible, but very unlikely status */
33 if (!--ffs)
34 return -1; /* Assume no KBC present */
35 }
28 if (status & 1) { 36 if (status & 1) {
29 /* Read and discard input data */ 37 /* Read and discard input data */
30 io_delay(); 38 io_delay();
@@ -118,44 +126,37 @@ static void enable_a20_fast(void)
118 126
119int enable_a20(void) 127int enable_a20(void)
120{ 128{
121#if defined(CONFIG_X86_ELAN)
122 /* Elan croaks if we try to touch the KBC */
123 enable_a20_fast();
124 while (!a20_test_long())
125 ;
126 return 0;
127#elif defined(CONFIG_X86_VOYAGER)
128 /* On Voyager, a20_test() is unsafe? */
129 enable_a20_kbc();
130 return 0;
131#else
132 int loops = A20_ENABLE_LOOPS; 129 int loops = A20_ENABLE_LOOPS;
133 while (loops--) { 130 int kbc_err;
134 /* First, check to see if A20 is already enabled 131
135 (legacy free, etc.) */ 132 while (loops--) {
136 if (a20_test_short()) 133 /* First, check to see if A20 is already enabled
137 return 0; 134 (legacy free, etc.) */
138 135 if (a20_test_short())
139 /* Next, try the BIOS (INT 0x15, AX=0x2401) */ 136 return 0;
140 enable_a20_bios(); 137
141 if (a20_test_short()) 138 /* Next, try the BIOS (INT 0x15, AX=0x2401) */
142 return 0; 139 enable_a20_bios();
143 140 if (a20_test_short())
144 /* Try enabling A20 through the keyboard controller */ 141 return 0;
145 empty_8042(); 142
146 if (a20_test_short()) 143 /* Try enabling A20 through the keyboard controller */
147 return 0; /* BIOS worked, but with delayed reaction */ 144 kbc_err = empty_8042();
148 145
149 enable_a20_kbc(); 146 if (a20_test_short())
150 if (a20_test_long()) 147 return 0; /* BIOS worked, but with delayed reaction */
151 return 0; 148
152 149 if (!kbc_err) {
153 /* Finally, try enabling the "fast A20 gate" */ 150 enable_a20_kbc();
154 enable_a20_fast(); 151 if (a20_test_long())
155 if (a20_test_long()) 152 return 0;
156 return 0; 153 }
157 } 154
158 155 /* Finally, try enabling the "fast A20 gate" */
159 return -1; 156 enable_a20_fast();
160#endif 157 if (a20_test_long())
158 return 0;
159 }
160
161 return -1;
161} 162}
diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
index cc0ef13fba7a..7b2692e897e5 100644
--- a/arch/x86/boot/boot.h
+++ b/arch/x86/boot/boot.h
@@ -302,9 +302,6 @@ void probe_cards(int unsafe);
302/* video-vesa.c */ 302/* video-vesa.c */
303void vesa_store_edid(void); 303void vesa_store_edid(void);
304 304
305/* voyager.c */
306int query_voyager(void);
307
308#endif /* __ASSEMBLY__ */ 305#endif /* __ASSEMBLY__ */
309 306
310#endif /* BOOT_BOOT_H */ 307#endif /* BOOT_BOOT_H */
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 1771c804e02f..3ca4c194b8e5 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -4,7 +4,7 @@
4# create a compressed vmlinux image from the original vmlinux 4# create a compressed vmlinux image from the original vmlinux
5# 5#
6 6
7targets := vmlinux vmlinux.bin vmlinux.bin.gz head_$(BITS).o misc.o piggy.o 7targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma head_$(BITS).o misc.o piggy.o
8 8
9KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 9KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
10KBUILD_CFLAGS += -fno-strict-aliasing -fPIC 10KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
@@ -47,18 +47,35 @@ ifeq ($(CONFIG_X86_32),y)
47ifdef CONFIG_RELOCATABLE 47ifdef CONFIG_RELOCATABLE
48$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin.all FORCE 48$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin.all FORCE
49 $(call if_changed,gzip) 49 $(call if_changed,gzip)
50$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin.all FORCE
51 $(call if_changed,bzip2)
52$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin.all FORCE
53 $(call if_changed,lzma)
50else 54else
51$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE 55$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
52 $(call if_changed,gzip) 56 $(call if_changed,gzip)
57$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
58 $(call if_changed,bzip2)
59$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
60 $(call if_changed,lzma)
53endif 61endif
54LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T 62LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
55 63
56else 64else
65
57$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE 66$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
58 $(call if_changed,gzip) 67 $(call if_changed,gzip)
68$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
69 $(call if_changed,bzip2)
70$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
71 $(call if_changed,lzma)
59 72
60LDFLAGS_piggy.o := -r --format binary --oformat elf64-x86-64 -T 73LDFLAGS_piggy.o := -r --format binary --oformat elf64-x86-64 -T
61endif 74endif
62 75
63$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE 76suffix_$(CONFIG_KERNEL_GZIP) = gz
77suffix_$(CONFIG_KERNEL_BZIP2) = bz2
78suffix_$(CONFIG_KERNEL_LZMA) = lzma
79
80$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE
64 $(call if_changed,ld) 81 $(call if_changed,ld)
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
index 29c5fbf08392..3a8a866fb2e2 100644
--- a/arch/x86/boot/compressed/head_32.S
+++ b/arch/x86/boot/compressed/head_32.S
@@ -25,14 +25,12 @@
25 25
26#include <linux/linkage.h> 26#include <linux/linkage.h>
27#include <asm/segment.h> 27#include <asm/segment.h>
28#include <asm/page.h> 28#include <asm/page_types.h>
29#include <asm/boot.h> 29#include <asm/boot.h>
30#include <asm/asm-offsets.h> 30#include <asm/asm-offsets.h>
31 31
32.section ".text.head","ax",@progbits 32.section ".text.head","ax",@progbits
33 .globl startup_32 33ENTRY(startup_32)
34
35startup_32:
36 cld 34 cld
37 /* test KEEP_SEGMENTS flag to see if the bootloader is asking 35 /* test KEEP_SEGMENTS flag to see if the bootloader is asking
38 * us to not reload segments */ 36 * us to not reload segments */
@@ -113,6 +111,8 @@ startup_32:
113 */ 111 */
114 leal relocated(%ebx), %eax 112 leal relocated(%ebx), %eax
115 jmp *%eax 113 jmp *%eax
114ENDPROC(startup_32)
115
116.section ".text" 116.section ".text"
117relocated: 117relocated:
118 118
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
index 1d5dff4123e1..ed4a82948002 100644
--- a/arch/x86/boot/compressed/head_64.S
+++ b/arch/x86/boot/compressed/head_64.S
@@ -26,8 +26,8 @@
26 26
27#include <linux/linkage.h> 27#include <linux/linkage.h>
28#include <asm/segment.h> 28#include <asm/segment.h>
29#include <asm/pgtable.h> 29#include <asm/pgtable_types.h>
30#include <asm/page.h> 30#include <asm/page_types.h>
31#include <asm/boot.h> 31#include <asm/boot.h>
32#include <asm/msr.h> 32#include <asm/msr.h>
33#include <asm/processor-flags.h> 33#include <asm/processor-flags.h>
@@ -35,9 +35,7 @@
35 35
36.section ".text.head" 36.section ".text.head"
37 .code32 37 .code32
38 .globl startup_32 38ENTRY(startup_32)
39
40startup_32:
41 cld 39 cld
42 /* test KEEP_SEGMENTS flag to see if the bootloader is asking 40 /* test KEEP_SEGMENTS flag to see if the bootloader is asking
43 * us to not reload segments */ 41 * us to not reload segments */
@@ -176,6 +174,7 @@ startup_32:
176 174
177 /* Jump from 32bit compatibility mode into 64bit mode. */ 175 /* Jump from 32bit compatibility mode into 64bit mode. */
178 lret 176 lret
177ENDPROC(startup_32)
179 178
180no_longmode: 179no_longmode:
181 /* This isn't an x86-64 CPU so hang */ 180 /* This isn't an x86-64 CPU so hang */
@@ -295,7 +294,6 @@ relocated:
295 call decompress_kernel 294 call decompress_kernel
296 popq %rsi 295 popq %rsi
297 296
298
299/* 297/*
300 * Jump to the decompressed kernel. 298 * Jump to the decompressed kernel.
301 */ 299 */
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
index da062216948a..e45be73684ff 100644
--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -116,71 +116,13 @@
116/* 116/*
117 * gzip declarations 117 * gzip declarations
118 */ 118 */
119
120#define OF(args) args
121#define STATIC static 119#define STATIC static
122 120
123#undef memset 121#undef memset
124#undef memcpy 122#undef memcpy
125#define memzero(s, n) memset((s), 0, (n)) 123#define memzero(s, n) memset((s), 0, (n))
126 124
127typedef unsigned char uch;
128typedef unsigned short ush;
129typedef unsigned long ulg;
130
131/*
132 * Window size must be at least 32k, and a power of two.
133 * We don't actually have a window just a huge output buffer,
134 * so we report a 2G window size, as that should always be
135 * larger than our output buffer:
136 */
137#define WSIZE 0x80000000
138
139/* Input buffer: */
140static unsigned char *inbuf;
141
142/* Sliding window buffer (and final output buffer): */
143static unsigned char *window;
144
145/* Valid bytes in inbuf: */
146static unsigned insize;
147
148/* Index of next byte to be processed in inbuf: */
149static unsigned inptr;
150
151/* Bytes in output buffer: */
152static unsigned outcnt;
153
154/* gzip flag byte */
155#define ASCII_FLAG 0x01 /* bit 0 set: file probably ASCII text */
156#define CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gz file */
157#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */
158#define ORIG_NAM 0x08 /* bit 3 set: original file name present */
159#define COMMENT 0x10 /* bit 4 set: file comment present */
160#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */
161#define RESERVED 0xC0 /* bit 6, 7: reserved */
162
163#define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf())
164
165/* Diagnostic functions */
166#ifdef DEBUG
167# define Assert(cond, msg) do { if (!(cond)) error(msg); } while (0)
168# define Trace(x) do { fprintf x; } while (0)
169# define Tracev(x) do { if (verbose) fprintf x ; } while (0)
170# define Tracevv(x) do { if (verbose > 1) fprintf x ; } while (0)
171# define Tracec(c, x) do { if (verbose && (c)) fprintf x ; } while (0)
172# define Tracecv(c, x) do { if (verbose > 1 && (c)) fprintf x ; } while (0)
173#else
174# define Assert(cond, msg)
175# define Trace(x)
176# define Tracev(x)
177# define Tracevv(x)
178# define Tracec(c, x)
179# define Tracecv(c, x)
180#endif
181 125
182static int fill_inbuf(void);
183static void flush_window(void);
184static void error(char *m); 126static void error(char *m);
185 127
186/* 128/*
@@ -189,13 +131,8 @@ static void error(char *m);
189static struct boot_params *real_mode; /* Pointer to real-mode data */ 131static struct boot_params *real_mode; /* Pointer to real-mode data */
190static int quiet; 132static int quiet;
191 133
192extern unsigned char input_data[];
193extern int input_len;
194
195static long bytes_out;
196
197static void *memset(void *s, int c, unsigned n); 134static void *memset(void *s, int c, unsigned n);
198static void *memcpy(void *dest, const void *src, unsigned n); 135void *memcpy(void *dest, const void *src, unsigned n);
199 136
200static void __putstr(int, const char *); 137static void __putstr(int, const char *);
201#define putstr(__x) __putstr(0, __x) 138#define putstr(__x) __putstr(0, __x)
@@ -213,7 +150,17 @@ static char *vidmem;
213static int vidport; 150static int vidport;
214static int lines, cols; 151static int lines, cols;
215 152
216#include "../../../../lib/inflate.c" 153#ifdef CONFIG_KERNEL_GZIP
154#include "../../../../lib/decompress_inflate.c"
155#endif
156
157#ifdef CONFIG_KERNEL_BZIP2
158#include "../../../../lib/decompress_bunzip2.c"
159#endif
160
161#ifdef CONFIG_KERNEL_LZMA
162#include "../../../../lib/decompress_unlzma.c"
163#endif
217 164
218static void scroll(void) 165static void scroll(void)
219{ 166{
@@ -282,7 +229,7 @@ static void *memset(void *s, int c, unsigned n)
282 return s; 229 return s;
283} 230}
284 231
285static void *memcpy(void *dest, const void *src, unsigned n) 232void *memcpy(void *dest, const void *src, unsigned n)
286{ 233{
287 int i; 234 int i;
288 const char *s = src; 235 const char *s = src;
@@ -293,38 +240,6 @@ static void *memcpy(void *dest, const void *src, unsigned n)
293 return dest; 240 return dest;
294} 241}
295 242
296/* ===========================================================================
297 * Fill the input buffer. This is called only when the buffer is empty
298 * and at least one byte is really needed.
299 */
300static int fill_inbuf(void)
301{
302 error("ran out of input data");
303 return 0;
304}
305
306/* ===========================================================================
307 * Write the output window window[0..outcnt-1] and update crc and bytes_out.
308 * (Used for the decompressed data only.)
309 */
310static void flush_window(void)
311{
312 /* With my window equal to my output buffer
313 * I only need to compute the crc here.
314 */
315 unsigned long c = crc; /* temporary variable */
316 unsigned n;
317 unsigned char *in, ch;
318
319 in = window;
320 for (n = 0; n < outcnt; n++) {
321 ch = *in++;
322 c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
323 }
324 crc = c;
325 bytes_out += (unsigned long)outcnt;
326 outcnt = 0;
327}
328 243
329static void error(char *x) 244static void error(char *x)
330{ 245{
@@ -407,12 +322,8 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap,
407 lines = real_mode->screen_info.orig_video_lines; 322 lines = real_mode->screen_info.orig_video_lines;
408 cols = real_mode->screen_info.orig_video_cols; 323 cols = real_mode->screen_info.orig_video_cols;
409 324
410 window = output; /* Output buffer (Normally at 1M) */
411 free_mem_ptr = heap; /* Heap */ 325 free_mem_ptr = heap; /* Heap */
412 free_mem_end_ptr = heap + BOOT_HEAP_SIZE; 326 free_mem_end_ptr = heap + BOOT_HEAP_SIZE;
413 inbuf = input_data; /* Input buffer */
414 insize = input_len;
415 inptr = 0;
416 327
417#ifdef CONFIG_X86_64 328#ifdef CONFIG_X86_64
418 if ((unsigned long)output & (__KERNEL_ALIGN - 1)) 329 if ((unsigned long)output & (__KERNEL_ALIGN - 1))
@@ -430,10 +341,9 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap,
430#endif 341#endif
431#endif 342#endif
432 343
433 makecrc();
434 if (!quiet) 344 if (!quiet)
435 putstr("\nDecompressing Linux... "); 345 putstr("\nDecompressing Linux... ");
436 gunzip(); 346 decompress(input_data, input_len, NULL, NULL, output, NULL, error);
437 parse_elf(output); 347 parse_elf(output);
438 if (!quiet) 348 if (!quiet)
439 putstr("done.\nBooting the kernel.\n"); 349 putstr("done.\nBooting the kernel.\n");
diff --git a/arch/x86/boot/copy.S b/arch/x86/boot/copy.S
index ef50c84e8b4b..11f272c6f5e9 100644
--- a/arch/x86/boot/copy.S
+++ b/arch/x86/boot/copy.S
@@ -8,6 +8,8 @@
8 * 8 *
9 * ----------------------------------------------------------------------- */ 9 * ----------------------------------------------------------------------- */
10 10
11#include <linux/linkage.h>
12
11/* 13/*
12 * Memory copy routines 14 * Memory copy routines
13 */ 15 */
@@ -15,9 +17,7 @@
15 .code16gcc 17 .code16gcc
16 .text 18 .text
17 19
18 .globl memcpy 20GLOBAL(memcpy)
19 .type memcpy, @function
20memcpy:
21 pushw %si 21 pushw %si
22 pushw %di 22 pushw %di
23 movw %ax, %di 23 movw %ax, %di
@@ -31,11 +31,9 @@ memcpy:
31 popw %di 31 popw %di
32 popw %si 32 popw %si
33 ret 33 ret
34 .size memcpy, .-memcpy 34ENDPROC(memcpy)
35 35
36 .globl memset 36GLOBAL(memset)
37 .type memset, @function
38memset:
39 pushw %di 37 pushw %di
40 movw %ax, %di 38 movw %ax, %di
41 movzbl %dl, %eax 39 movzbl %dl, %eax
@@ -48,52 +46,42 @@ memset:
48 rep; stosb 46 rep; stosb
49 popw %di 47 popw %di
50 ret 48 ret
51 .size memset, .-memset 49ENDPROC(memset)
52 50
53 .globl copy_from_fs 51GLOBAL(copy_from_fs)
54 .type copy_from_fs, @function
55copy_from_fs:
56 pushw %ds 52 pushw %ds
57 pushw %fs 53 pushw %fs
58 popw %ds 54 popw %ds
59 call memcpy 55 call memcpy
60 popw %ds 56 popw %ds
61 ret 57 ret
62 .size copy_from_fs, .-copy_from_fs 58ENDPROC(copy_from_fs)
63 59
64 .globl copy_to_fs 60GLOBAL(copy_to_fs)
65 .type copy_to_fs, @function
66copy_to_fs:
67 pushw %es 61 pushw %es
68 pushw %fs 62 pushw %fs
69 popw %es 63 popw %es
70 call memcpy 64 call memcpy
71 popw %es 65 popw %es
72 ret 66 ret
73 .size copy_to_fs, .-copy_to_fs 67ENDPROC(copy_to_fs)
74 68
75#if 0 /* Not currently used, but can be enabled as needed */ 69#if 0 /* Not currently used, but can be enabled as needed */
76 70GLOBAL(copy_from_gs)
77 .globl copy_from_gs
78 .type copy_from_gs, @function
79copy_from_gs:
80 pushw %ds 71 pushw %ds
81 pushw %gs 72 pushw %gs
82 popw %ds 73 popw %ds
83 call memcpy 74 call memcpy
84 popw %ds 75 popw %ds
85 ret 76 ret
86 .size copy_from_gs, .-copy_from_gs 77ENDPROC(copy_from_gs)
87 .globl copy_to_gs
88 78
89 .type copy_to_gs, @function 79GLOBAL(copy_to_gs)
90copy_to_gs:
91 pushw %es 80 pushw %es
92 pushw %gs 81 pushw %gs
93 popw %es 82 popw %es
94 call memcpy 83 call memcpy
95 popw %es 84 popw %es
96 ret 85 ret
97 .size copy_to_gs, .-copy_to_gs 86ENDPROC(copy_to_gs)
98
99#endif 87#endif
diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index b993062e9a5f..7ccff4884a23 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -19,7 +19,7 @@
19#include <linux/utsrelease.h> 19#include <linux/utsrelease.h>
20#include <asm/boot.h> 20#include <asm/boot.h>
21#include <asm/e820.h> 21#include <asm/e820.h>
22#include <asm/page.h> 22#include <asm/page_types.h>
23#include <asm/setup.h> 23#include <asm/setup.h>
24#include "boot.h" 24#include "boot.h"
25#include "offsets.h" 25#include "offsets.h"
diff --git a/arch/x86/boot/main.c b/arch/x86/boot/main.c
index 197421db1af1..58f0415d3ae0 100644
--- a/arch/x86/boot/main.c
+++ b/arch/x86/boot/main.c
@@ -149,11 +149,6 @@ void main(void)
149 /* Query MCA information */ 149 /* Query MCA information */
150 query_mca(); 150 query_mca();
151 151
152 /* Voyager */
153#ifdef CONFIG_X86_VOYAGER
154 query_voyager();
155#endif
156
157 /* Query Intel SpeedStep (IST) information */ 152 /* Query Intel SpeedStep (IST) information */
158 query_ist(); 153 query_ist();
159 154
diff --git a/arch/x86/boot/pmjump.S b/arch/x86/boot/pmjump.S
index 141b6e20ed31..019c17a75851 100644
--- a/arch/x86/boot/pmjump.S
+++ b/arch/x86/boot/pmjump.S
@@ -15,18 +15,15 @@
15#include <asm/boot.h> 15#include <asm/boot.h>
16#include <asm/processor-flags.h> 16#include <asm/processor-flags.h>
17#include <asm/segment.h> 17#include <asm/segment.h>
18#include <linux/linkage.h>
18 19
19 .text 20 .text
20
21 .globl protected_mode_jump
22 .type protected_mode_jump, @function
23
24 .code16 21 .code16
25 22
26/* 23/*
27 * void protected_mode_jump(u32 entrypoint, u32 bootparams); 24 * void protected_mode_jump(u32 entrypoint, u32 bootparams);
28 */ 25 */
29protected_mode_jump: 26GLOBAL(protected_mode_jump)
30 movl %edx, %esi # Pointer to boot_params table 27 movl %edx, %esi # Pointer to boot_params table
31 28
32 xorl %ebx, %ebx 29 xorl %ebx, %ebx
@@ -47,12 +44,10 @@ protected_mode_jump:
47 .byte 0x66, 0xea # ljmpl opcode 44 .byte 0x66, 0xea # ljmpl opcode
482: .long in_pm32 # offset 452: .long in_pm32 # offset
49 .word __BOOT_CS # segment 46 .word __BOOT_CS # segment
50 47ENDPROC(protected_mode_jump)
51 .size protected_mode_jump, .-protected_mode_jump
52 48
53 .code32 49 .code32
54 .type in_pm32, @function 50GLOBAL(in_pm32)
55in_pm32:
56 # Set up data segments for flat 32-bit mode 51 # Set up data segments for flat 32-bit mode
57 movl %ecx, %ds 52 movl %ecx, %ds
58 movl %ecx, %es 53 movl %ecx, %es
@@ -78,5 +73,4 @@ in_pm32:
78 lldt %cx 73 lldt %cx
79 74
80 jmpl *%eax # Jump to the 32-bit entrypoint 75 jmpl *%eax # Jump to the 32-bit entrypoint
81 76ENDPROC(in_pm32)
82 .size in_pm32, .-in_pm32
diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c
index 75115849af33..4a58c8ce3f69 100644
--- a/arch/x86/boot/video-vesa.c
+++ b/arch/x86/boot/video-vesa.c
@@ -269,9 +269,8 @@ void vesa_store_edid(void)
269 we genuinely have to assume all registers are destroyed here. */ 269 we genuinely have to assume all registers are destroyed here. */
270 270
271 asm("pushw %%es; movw %2,%%es; "INT10"; popw %%es" 271 asm("pushw %%es; movw %2,%%es; "INT10"; popw %%es"
272 : "+a" (ax), "+b" (bx) 272 : "+a" (ax), "+b" (bx), "+c" (cx), "+D" (di)
273 : "c" (cx), "D" (di) 273 : : "esi", "edx");
274 : "esi");
275 274
276 if (ax != 0x004f) 275 if (ax != 0x004f)
277 return; /* No EDID */ 276 return; /* No EDID */
@@ -285,9 +284,9 @@ void vesa_store_edid(void)
285 dx = 0; /* EDID block number */ 284 dx = 0; /* EDID block number */
286 di =(size_t) &boot_params.edid_info; /* (ES:)Pointer to block */ 285 di =(size_t) &boot_params.edid_info; /* (ES:)Pointer to block */
287 asm(INT10 286 asm(INT10
288 : "+a" (ax), "+b" (bx), "+d" (dx), "=m" (boot_params.edid_info) 287 : "+a" (ax), "+b" (bx), "+d" (dx), "=m" (boot_params.edid_info),
289 : "c" (cx), "D" (di) 288 "+c" (cx), "+D" (di)
290 : "esi"); 289 : : "esi");
291#endif /* CONFIG_FIRMWARE_EDID */ 290#endif /* CONFIG_FIRMWARE_EDID */
292} 291}
293 292
diff --git a/arch/x86/boot/voyager.c b/arch/x86/boot/voyager.c
deleted file mode 100644
index 433909d61e5c..000000000000
--- a/arch/x86/boot/voyager.c
+++ /dev/null
@@ -1,40 +0,0 @@
1/* -*- linux-c -*- ------------------------------------------------------- *
2 *
3 * Copyright (C) 1991, 1992 Linus Torvalds
4 * Copyright 2007 rPath, Inc. - All Rights Reserved
5 *
6 * This file is part of the Linux kernel, and is made available under
7 * the terms of the GNU General Public License version 2.
8 *
9 * ----------------------------------------------------------------------- */
10
11/*
12 * Get the Voyager config information
13 */
14
15#include "boot.h"
16
17int query_voyager(void)
18{
19 u8 err;
20 u16 es, di;
21 /* Abuse the apm_bios_info area for this */
22 u8 *data_ptr = (u8 *)&boot_params.apm_bios_info;
23
24 data_ptr[0] = 0xff; /* Flag on config not found(?) */
25
26 asm("pushw %%es ; "
27 "int $0x15 ; "
28 "setc %0 ; "
29 "movw %%es, %1 ; "
30 "popw %%es"
31 : "=q" (err), "=r" (es), "=D" (di)
32 : "a" (0xffc0));
33
34 if (err)
35 return -1; /* Not Voyager */
36
37 set_fs(es);
38 copy_from_fs(data_ptr, di, 7); /* Table is 7 bytes apparently */
39 return 0;
40}
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index b30a08ed8eb4..235b81d0f6f2 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -1,14 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc5 3# Linux kernel version: 2.6.29-rc4
4# Wed Sep 3 17:23:09 2008 4# Tue Feb 24 15:50:58 2009
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_X86_32=y 7CONFIG_X86_32=y
8# CONFIG_X86_64 is not set 8# CONFIG_X86_64 is not set
9CONFIG_X86=y 9CONFIG_X86=y
10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
11# CONFIG_GENERIC_LOCKBREAK is not set
12CONFIG_GENERIC_TIME=y 11CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 12CONFIG_GENERIC_CMOS_UPDATE=y
14CONFIG_CLOCKSOURCE_WATCHDOG=y 13CONFIG_CLOCKSOURCE_WATCHDOG=y
@@ -24,16 +23,14 @@ CONFIG_GENERIC_ISA_DMA=y
24CONFIG_GENERIC_IOMAP=y 23CONFIG_GENERIC_IOMAP=y
25CONFIG_GENERIC_BUG=y 24CONFIG_GENERIC_BUG=y
26CONFIG_GENERIC_HWEIGHT=y 25CONFIG_GENERIC_HWEIGHT=y
27# CONFIG_GENERIC_GPIO is not set
28CONFIG_ARCH_MAY_HAVE_PC_FDC=y 26CONFIG_ARCH_MAY_HAVE_PC_FDC=y
29# CONFIG_RWSEM_GENERIC_SPINLOCK is not set 27# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 28CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31# CONFIG_ARCH_HAS_ILOG2_U32 is not set
32# CONFIG_ARCH_HAS_ILOG2_U64 is not set
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 29CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_GENERIC_CALIBRATE_DELAY=y 30CONFIG_GENERIC_CALIBRATE_DELAY=y
35# CONFIG_GENERIC_TIME_VSYSCALL is not set 31# CONFIG_GENERIC_TIME_VSYSCALL is not set
36CONFIG_ARCH_HAS_CPU_RELAX=y 32CONFIG_ARCH_HAS_CPU_RELAX=y
33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
37CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 34CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
38CONFIG_HAVE_SETUP_PER_CPU_AREA=y 35CONFIG_HAVE_SETUP_PER_CPU_AREA=y
39# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set 36# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
@@ -42,12 +39,12 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
42# CONFIG_ZONE_DMA32 is not set 39# CONFIG_ZONE_DMA32 is not set
43CONFIG_ARCH_POPULATES_NODE_MAP=y 40CONFIG_ARCH_POPULATES_NODE_MAP=y
44# CONFIG_AUDIT_ARCH is not set 41# CONFIG_AUDIT_ARCH is not set
45CONFIG_ARCH_SUPPORTS_AOUT=y
46CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y 42CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
47CONFIG_GENERIC_HARDIRQS=y 43CONFIG_GENERIC_HARDIRQS=y
48CONFIG_GENERIC_IRQ_PROBE=y 44CONFIG_GENERIC_IRQ_PROBE=y
49CONFIG_GENERIC_PENDING_IRQ=y 45CONFIG_GENERIC_PENDING_IRQ=y
50CONFIG_X86_SMP=y 46CONFIG_X86_SMP=y
47CONFIG_USE_GENERIC_SMP_HELPERS=y
51CONFIG_X86_32_SMP=y 48CONFIG_X86_32_SMP=y
52CONFIG_X86_HT=y 49CONFIG_X86_HT=y
53CONFIG_X86_BIOS_REBOOT=y 50CONFIG_X86_BIOS_REBOOT=y
@@ -76,30 +73,44 @@ CONFIG_TASK_IO_ACCOUNTING=y
76CONFIG_AUDIT=y 73CONFIG_AUDIT=y
77CONFIG_AUDITSYSCALL=y 74CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 75CONFIG_AUDIT_TREE=y
76
77#
78# RCU Subsystem
79#
80# CONFIG_CLASSIC_RCU is not set
81CONFIG_TREE_RCU=y
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_RCU_TRACE is not set
84CONFIG_RCU_FANOUT=32
85# CONFIG_RCU_FANOUT_EXACT is not set
86# CONFIG_TREE_RCU_TRACE is not set
87# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 88# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=18 89CONFIG_LOG_BUF_SHIFT=18
81CONFIG_CGROUPS=y
82# CONFIG_CGROUP_DEBUG is not set
83CONFIG_CGROUP_NS=y
84# CONFIG_CGROUP_DEVICE is not set
85CONFIG_CPUSETS=y
86CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y 90CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
87CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
88CONFIG_FAIR_GROUP_SCHED=y 92CONFIG_FAIR_GROUP_SCHED=y
89# CONFIG_RT_GROUP_SCHED is not set 93# CONFIG_RT_GROUP_SCHED is not set
90# CONFIG_USER_SCHED is not set 94# CONFIG_USER_SCHED is not set
91CONFIG_CGROUP_SCHED=y 95CONFIG_CGROUP_SCHED=y
96CONFIG_CGROUPS=y
97# CONFIG_CGROUP_DEBUG is not set
98CONFIG_CGROUP_NS=y
99CONFIG_CGROUP_FREEZER=y
100# CONFIG_CGROUP_DEVICE is not set
101CONFIG_CPUSETS=y
102CONFIG_PROC_PID_CPUSET=y
92CONFIG_CGROUP_CPUACCT=y 103CONFIG_CGROUP_CPUACCT=y
93CONFIG_RESOURCE_COUNTERS=y 104CONFIG_RESOURCE_COUNTERS=y
94# CONFIG_CGROUP_MEM_RES_CTLR is not set 105# CONFIG_CGROUP_MEM_RES_CTLR is not set
95# CONFIG_SYSFS_DEPRECATED_V2 is not set 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
96CONFIG_PROC_PID_CPUSET=y
97CONFIG_RELAY=y 107CONFIG_RELAY=y
98CONFIG_NAMESPACES=y 108CONFIG_NAMESPACES=y
99CONFIG_UTS_NS=y 109CONFIG_UTS_NS=y
100CONFIG_IPC_NS=y 110CONFIG_IPC_NS=y
101CONFIG_USER_NS=y 111CONFIG_USER_NS=y
102CONFIG_PID_NS=y 112CONFIG_PID_NS=y
113CONFIG_NET_NS=y
103CONFIG_BLK_DEV_INITRD=y 114CONFIG_BLK_DEV_INITRD=y
104CONFIG_INITRAMFS_SOURCE="" 115CONFIG_INITRAMFS_SOURCE=""
105CONFIG_CC_OPTIMIZE_FOR_SIZE=y 116CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -124,12 +135,15 @@ CONFIG_SIGNALFD=y
124CONFIG_TIMERFD=y 135CONFIG_TIMERFD=y
125CONFIG_EVENTFD=y 136CONFIG_EVENTFD=y
126CONFIG_SHMEM=y 137CONFIG_SHMEM=y
138CONFIG_AIO=y
127CONFIG_VM_EVENT_COUNTERS=y 139CONFIG_VM_EVENT_COUNTERS=y
140CONFIG_PCI_QUIRKS=y
128CONFIG_SLUB_DEBUG=y 141CONFIG_SLUB_DEBUG=y
129# CONFIG_SLAB is not set 142# CONFIG_SLAB is not set
130CONFIG_SLUB=y 143CONFIG_SLUB=y
131# CONFIG_SLOB is not set 144# CONFIG_SLOB is not set
132CONFIG_PROFILING=y 145CONFIG_PROFILING=y
146CONFIG_TRACEPOINTS=y
133CONFIG_MARKERS=y 147CONFIG_MARKERS=y
134# CONFIG_OPROFILE is not set 148# CONFIG_OPROFILE is not set
135CONFIG_HAVE_OPROFILE=y 149CONFIG_HAVE_OPROFILE=y
@@ -139,15 +153,10 @@ CONFIG_KRETPROBES=y
139CONFIG_HAVE_IOREMAP_PROT=y 153CONFIG_HAVE_IOREMAP_PROT=y
140CONFIG_HAVE_KPROBES=y 154CONFIG_HAVE_KPROBES=y
141CONFIG_HAVE_KRETPROBES=y 155CONFIG_HAVE_KRETPROBES=y
142# CONFIG_HAVE_ARCH_TRACEHOOK is not set 156CONFIG_HAVE_ARCH_TRACEHOOK=y
143# CONFIG_HAVE_DMA_ATTRS is not set
144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_HAVE_CLK is not set
146CONFIG_PROC_PAGE_MONITOR=y
147CONFIG_HAVE_GENERIC_DMA_COHERENT=y 157CONFIG_HAVE_GENERIC_DMA_COHERENT=y
148CONFIG_SLABINFO=y 158CONFIG_SLABINFO=y
149CONFIG_RT_MUTEXES=y 159CONFIG_RT_MUTEXES=y
150# CONFIG_TINY_SHMEM is not set
151CONFIG_BASE_SMALL=0 160CONFIG_BASE_SMALL=0
152CONFIG_MODULES=y 161CONFIG_MODULES=y
153# CONFIG_MODULE_FORCE_LOAD is not set 162# CONFIG_MODULE_FORCE_LOAD is not set
@@ -155,12 +164,10 @@ CONFIG_MODULE_UNLOAD=y
155CONFIG_MODULE_FORCE_UNLOAD=y 164CONFIG_MODULE_FORCE_UNLOAD=y
156# CONFIG_MODVERSIONS is not set 165# CONFIG_MODVERSIONS is not set
157# CONFIG_MODULE_SRCVERSION_ALL is not set 166# CONFIG_MODULE_SRCVERSION_ALL is not set
158CONFIG_KMOD=y
159CONFIG_STOP_MACHINE=y 167CONFIG_STOP_MACHINE=y
160CONFIG_BLOCK=y 168CONFIG_BLOCK=y
161# CONFIG_LBD is not set 169# CONFIG_LBD is not set
162CONFIG_BLK_DEV_IO_TRACE=y 170CONFIG_BLK_DEV_IO_TRACE=y
163# CONFIG_LSF is not set
164CONFIG_BLK_DEV_BSG=y 171CONFIG_BLK_DEV_BSG=y
165# CONFIG_BLK_DEV_INTEGRITY is not set 172# CONFIG_BLK_DEV_INTEGRITY is not set
166 173
@@ -176,7 +183,7 @@ CONFIG_IOSCHED_CFQ=y
176CONFIG_DEFAULT_CFQ=y 183CONFIG_DEFAULT_CFQ=y
177# CONFIG_DEFAULT_NOOP is not set 184# CONFIG_DEFAULT_NOOP is not set
178CONFIG_DEFAULT_IOSCHED="cfq" 185CONFIG_DEFAULT_IOSCHED="cfq"
179CONFIG_CLASSIC_RCU=y 186CONFIG_FREEZER=y
180 187
181# 188#
182# Processor type and features 189# Processor type and features
@@ -186,15 +193,14 @@ CONFIG_NO_HZ=y
186CONFIG_HIGH_RES_TIMERS=y 193CONFIG_HIGH_RES_TIMERS=y
187CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 194CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
188CONFIG_SMP=y 195CONFIG_SMP=y
196CONFIG_SPARSE_IRQ=y
189CONFIG_X86_FIND_SMP_CONFIG=y 197CONFIG_X86_FIND_SMP_CONFIG=y
190CONFIG_X86_MPPARSE=y 198CONFIG_X86_MPPARSE=y
191CONFIG_X86_PC=y
192# CONFIG_X86_ELAN is not set 199# CONFIG_X86_ELAN is not set
193# CONFIG_X86_VOYAGER is not set
194# CONFIG_X86_GENERICARCH is not set 200# CONFIG_X86_GENERICARCH is not set
195# CONFIG_X86_VSMP is not set 201# CONFIG_X86_VSMP is not set
196# CONFIG_X86_RDC321X is not set 202# CONFIG_X86_RDC321X is not set
197CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 203CONFIG_SCHED_OMIT_FRAME_POINTER=y
198# CONFIG_PARAVIRT_GUEST is not set 204# CONFIG_PARAVIRT_GUEST is not set
199# CONFIG_MEMTEST is not set 205# CONFIG_MEMTEST is not set
200# CONFIG_M386 is not set 206# CONFIG_M386 is not set
@@ -238,10 +244,19 @@ CONFIG_X86_TSC=y
238CONFIG_X86_CMOV=y 244CONFIG_X86_CMOV=y
239CONFIG_X86_MINIMUM_CPU_FAMILY=4 245CONFIG_X86_MINIMUM_CPU_FAMILY=4
240CONFIG_X86_DEBUGCTLMSR=y 246CONFIG_X86_DEBUGCTLMSR=y
247CONFIG_CPU_SUP_INTEL=y
248CONFIG_CPU_SUP_CYRIX_32=y
249CONFIG_CPU_SUP_AMD=y
250CONFIG_CPU_SUP_CENTAUR_32=y
251CONFIG_CPU_SUP_TRANSMETA_32=y
252CONFIG_CPU_SUP_UMC_32=y
253CONFIG_X86_DS=y
254CONFIG_X86_PTRACE_BTS=y
241CONFIG_HPET_TIMER=y 255CONFIG_HPET_TIMER=y
242CONFIG_HPET_EMULATE_RTC=y 256CONFIG_HPET_EMULATE_RTC=y
243CONFIG_DMI=y 257CONFIG_DMI=y
244# CONFIG_IOMMU_HELPER is not set 258# CONFIG_IOMMU_HELPER is not set
259# CONFIG_IOMMU_API is not set
245CONFIG_NR_CPUS=64 260CONFIG_NR_CPUS=64
246CONFIG_SCHED_SMT=y 261CONFIG_SCHED_SMT=y
247CONFIG_SCHED_MC=y 262CONFIG_SCHED_MC=y
@@ -250,12 +265,17 @@ CONFIG_PREEMPT_VOLUNTARY=y
250# CONFIG_PREEMPT is not set 265# CONFIG_PREEMPT is not set
251CONFIG_X86_LOCAL_APIC=y 266CONFIG_X86_LOCAL_APIC=y
252CONFIG_X86_IO_APIC=y 267CONFIG_X86_IO_APIC=y
253# CONFIG_X86_MCE is not set 268CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
269CONFIG_X86_MCE=y
270CONFIG_X86_MCE_NONFATAL=y
271CONFIG_X86_MCE_P4THERMAL=y
254CONFIG_VM86=y 272CONFIG_VM86=y
255# CONFIG_TOSHIBA is not set 273# CONFIG_TOSHIBA is not set
256# CONFIG_I8K is not set 274# CONFIG_I8K is not set
257CONFIG_X86_REBOOTFIXUPS=y 275CONFIG_X86_REBOOTFIXUPS=y
258CONFIG_MICROCODE=y 276CONFIG_MICROCODE=y
277CONFIG_MICROCODE_INTEL=y
278CONFIG_MICROCODE_AMD=y
259CONFIG_MICROCODE_OLD_INTERFACE=y 279CONFIG_MICROCODE_OLD_INTERFACE=y
260CONFIG_X86_MSR=y 280CONFIG_X86_MSR=y
261CONFIG_X86_CPUID=y 281CONFIG_X86_CPUID=y
@@ -264,6 +284,7 @@ CONFIG_HIGHMEM4G=y
264# CONFIG_HIGHMEM64G is not set 284# CONFIG_HIGHMEM64G is not set
265CONFIG_PAGE_OFFSET=0xC0000000 285CONFIG_PAGE_OFFSET=0xC0000000
266CONFIG_HIGHMEM=y 286CONFIG_HIGHMEM=y
287# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
267CONFIG_ARCH_FLATMEM_ENABLE=y 288CONFIG_ARCH_FLATMEM_ENABLE=y
268CONFIG_ARCH_SPARSEMEM_ENABLE=y 289CONFIG_ARCH_SPARSEMEM_ENABLE=y
269CONFIG_ARCH_SELECT_MEMORY_MODEL=y 290CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -274,14 +295,17 @@ CONFIG_FLATMEM_MANUAL=y
274CONFIG_FLATMEM=y 295CONFIG_FLATMEM=y
275CONFIG_FLAT_NODE_MEM_MAP=y 296CONFIG_FLAT_NODE_MEM_MAP=y
276CONFIG_SPARSEMEM_STATIC=y 297CONFIG_SPARSEMEM_STATIC=y
277# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
278CONFIG_PAGEFLAGS_EXTENDED=y 298CONFIG_PAGEFLAGS_EXTENDED=y
279CONFIG_SPLIT_PTLOCK_CPUS=4 299CONFIG_SPLIT_PTLOCK_CPUS=4
280CONFIG_RESOURCES_64BIT=y 300# CONFIG_PHYS_ADDR_T_64BIT is not set
281CONFIG_ZONE_DMA_FLAG=1 301CONFIG_ZONE_DMA_FLAG=1
282CONFIG_BOUNCE=y 302CONFIG_BOUNCE=y
283CONFIG_VIRT_TO_BUS=y 303CONFIG_VIRT_TO_BUS=y
304CONFIG_UNEVICTABLE_LRU=y
284CONFIG_HIGHPTE=y 305CONFIG_HIGHPTE=y
306CONFIG_X86_CHECK_BIOS_CORRUPTION=y
307CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
308CONFIG_X86_RESERVE_LOW_64K=y
285# CONFIG_MATH_EMULATION is not set 309# CONFIG_MATH_EMULATION is not set
286CONFIG_MTRR=y 310CONFIG_MTRR=y
287# CONFIG_MTRR_SANITIZER is not set 311# CONFIG_MTRR_SANITIZER is not set
@@ -302,10 +326,11 @@ CONFIG_PHYSICAL_START=0x1000000
302CONFIG_PHYSICAL_ALIGN=0x200000 326CONFIG_PHYSICAL_ALIGN=0x200000
303CONFIG_HOTPLUG_CPU=y 327CONFIG_HOTPLUG_CPU=y
304# CONFIG_COMPAT_VDSO is not set 328# CONFIG_COMPAT_VDSO is not set
329# CONFIG_CMDLINE_BOOL is not set
305CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 330CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
306 331
307# 332#
308# Power management options 333# Power management and ACPI options
309# 334#
310CONFIG_PM=y 335CONFIG_PM=y
311CONFIG_PM_DEBUG=y 336CONFIG_PM_DEBUG=y
@@ -331,19 +356,13 @@ CONFIG_ACPI_BATTERY=y
331CONFIG_ACPI_BUTTON=y 356CONFIG_ACPI_BUTTON=y
332CONFIG_ACPI_FAN=y 357CONFIG_ACPI_FAN=y
333CONFIG_ACPI_DOCK=y 358CONFIG_ACPI_DOCK=y
334# CONFIG_ACPI_BAY is not set
335CONFIG_ACPI_PROCESSOR=y 359CONFIG_ACPI_PROCESSOR=y
336CONFIG_ACPI_HOTPLUG_CPU=y 360CONFIG_ACPI_HOTPLUG_CPU=y
337CONFIG_ACPI_THERMAL=y 361CONFIG_ACPI_THERMAL=y
338# CONFIG_ACPI_WMI is not set
339# CONFIG_ACPI_ASUS is not set
340# CONFIG_ACPI_TOSHIBA is not set
341# CONFIG_ACPI_CUSTOM_DSDT is not set 362# CONFIG_ACPI_CUSTOM_DSDT is not set
342CONFIG_ACPI_BLACKLIST_YEAR=0 363CONFIG_ACPI_BLACKLIST_YEAR=0
343# CONFIG_ACPI_DEBUG is not set 364# CONFIG_ACPI_DEBUG is not set
344CONFIG_ACPI_EC=y
345# CONFIG_ACPI_PCI_SLOT is not set 365# CONFIG_ACPI_PCI_SLOT is not set
346CONFIG_ACPI_POWER=y
347CONFIG_ACPI_SYSTEM=y 366CONFIG_ACPI_SYSTEM=y
348CONFIG_X86_PM_TIMER=y 367CONFIG_X86_PM_TIMER=y
349CONFIG_ACPI_CONTAINER=y 368CONFIG_ACPI_CONTAINER=y
@@ -388,7 +407,6 @@ CONFIG_X86_ACPI_CPUFREQ=y
388# 407#
389# shared options 408# shared options
390# 409#
391# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
392# CONFIG_X86_SPEEDSTEP_LIB is not set 410# CONFIG_X86_SPEEDSTEP_LIB is not set
393CONFIG_CPU_IDLE=y 411CONFIG_CPU_IDLE=y
394CONFIG_CPU_IDLE_GOV_LADDER=y 412CONFIG_CPU_IDLE_GOV_LADDER=y
@@ -415,6 +433,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
415CONFIG_PCI_MSI=y 433CONFIG_PCI_MSI=y
416# CONFIG_PCI_LEGACY is not set 434# CONFIG_PCI_LEGACY is not set
417# CONFIG_PCI_DEBUG is not set 435# CONFIG_PCI_DEBUG is not set
436# CONFIG_PCI_STUB is not set
418CONFIG_HT_IRQ=y 437CONFIG_HT_IRQ=y
419CONFIG_ISA_DMA_API=y 438CONFIG_ISA_DMA_API=y
420# CONFIG_ISA is not set 439# CONFIG_ISA is not set
@@ -452,13 +471,17 @@ CONFIG_HOTPLUG_PCI=y
452# Executable file formats / Emulations 471# Executable file formats / Emulations
453# 472#
454CONFIG_BINFMT_ELF=y 473CONFIG_BINFMT_ELF=y
474CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
475CONFIG_HAVE_AOUT=y
455# CONFIG_BINFMT_AOUT is not set 476# CONFIG_BINFMT_AOUT is not set
456CONFIG_BINFMT_MISC=y 477CONFIG_BINFMT_MISC=y
478CONFIG_HAVE_ATOMIC_IOMAP=y
457CONFIG_NET=y 479CONFIG_NET=y
458 480
459# 481#
460# Networking options 482# Networking options
461# 483#
484CONFIG_COMPAT_NET_DEV_OPS=y
462CONFIG_PACKET=y 485CONFIG_PACKET=y
463CONFIG_PACKET_MMAP=y 486CONFIG_PACKET_MMAP=y
464CONFIG_UNIX=y 487CONFIG_UNIX=y
@@ -519,7 +542,6 @@ CONFIG_DEFAULT_CUBIC=y
519# CONFIG_DEFAULT_RENO is not set 542# CONFIG_DEFAULT_RENO is not set
520CONFIG_DEFAULT_TCP_CONG="cubic" 543CONFIG_DEFAULT_TCP_CONG="cubic"
521CONFIG_TCP_MD5SIG=y 544CONFIG_TCP_MD5SIG=y
522# CONFIG_IP_VS is not set
523CONFIG_IPV6=y 545CONFIG_IPV6=y
524# CONFIG_IPV6_PRIVACY is not set 546# CONFIG_IPV6_PRIVACY is not set
525# CONFIG_IPV6_ROUTER_PREF is not set 547# CONFIG_IPV6_ROUTER_PREF is not set
@@ -557,19 +579,21 @@ CONFIG_NF_CONNTRACK_IRC=y
557CONFIG_NF_CONNTRACK_SIP=y 579CONFIG_NF_CONNTRACK_SIP=y
558CONFIG_NF_CT_NETLINK=y 580CONFIG_NF_CT_NETLINK=y
559CONFIG_NETFILTER_XTABLES=y 581CONFIG_NETFILTER_XTABLES=y
582CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
560CONFIG_NETFILTER_XT_TARGET_MARK=y 583CONFIG_NETFILTER_XT_TARGET_MARK=y
561CONFIG_NETFILTER_XT_TARGET_NFLOG=y 584CONFIG_NETFILTER_XT_TARGET_NFLOG=y
562CONFIG_NETFILTER_XT_TARGET_SECMARK=y 585CONFIG_NETFILTER_XT_TARGET_SECMARK=y
563CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
564CONFIG_NETFILTER_XT_TARGET_TCPMSS=y 586CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
565CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y 587CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
566CONFIG_NETFILTER_XT_MATCH_MARK=y 588CONFIG_NETFILTER_XT_MATCH_MARK=y
567CONFIG_NETFILTER_XT_MATCH_POLICY=y 589CONFIG_NETFILTER_XT_MATCH_POLICY=y
568CONFIG_NETFILTER_XT_MATCH_STATE=y 590CONFIG_NETFILTER_XT_MATCH_STATE=y
591# CONFIG_IP_VS is not set
569 592
570# 593#
571# IP: Netfilter Configuration 594# IP: Netfilter Configuration
572# 595#
596CONFIG_NF_DEFRAG_IPV4=y
573CONFIG_NF_CONNTRACK_IPV4=y 597CONFIG_NF_CONNTRACK_IPV4=y
574CONFIG_NF_CONNTRACK_PROC_COMPAT=y 598CONFIG_NF_CONNTRACK_PROC_COMPAT=y
575CONFIG_IP_NF_IPTABLES=y 599CONFIG_IP_NF_IPTABLES=y
@@ -595,8 +619,8 @@ CONFIG_IP_NF_MANGLE=y
595CONFIG_NF_CONNTRACK_IPV6=y 619CONFIG_NF_CONNTRACK_IPV6=y
596CONFIG_IP6_NF_IPTABLES=y 620CONFIG_IP6_NF_IPTABLES=y
597CONFIG_IP6_NF_MATCH_IPV6HEADER=y 621CONFIG_IP6_NF_MATCH_IPV6HEADER=y
598CONFIG_IP6_NF_FILTER=y
599CONFIG_IP6_NF_TARGET_LOG=y 622CONFIG_IP6_NF_TARGET_LOG=y
623CONFIG_IP6_NF_FILTER=y
600CONFIG_IP6_NF_TARGET_REJECT=y 624CONFIG_IP6_NF_TARGET_REJECT=y
601CONFIG_IP6_NF_MANGLE=y 625CONFIG_IP6_NF_MANGLE=y
602# CONFIG_IP_DCCP is not set 626# CONFIG_IP_DCCP is not set
@@ -604,6 +628,7 @@ CONFIG_IP6_NF_MANGLE=y
604# CONFIG_TIPC is not set 628# CONFIG_TIPC is not set
605# CONFIG_ATM is not set 629# CONFIG_ATM is not set
606# CONFIG_BRIDGE is not set 630# CONFIG_BRIDGE is not set
631# CONFIG_NET_DSA is not set
607# CONFIG_VLAN_8021Q is not set 632# CONFIG_VLAN_8021Q is not set
608# CONFIG_DECNET is not set 633# CONFIG_DECNET is not set
609CONFIG_LLC=y 634CONFIG_LLC=y
@@ -623,6 +648,7 @@ CONFIG_NET_SCHED=y
623# CONFIG_NET_SCH_HTB is not set 648# CONFIG_NET_SCH_HTB is not set
624# CONFIG_NET_SCH_HFSC is not set 649# CONFIG_NET_SCH_HFSC is not set
625# CONFIG_NET_SCH_PRIO is not set 650# CONFIG_NET_SCH_PRIO is not set
651# CONFIG_NET_SCH_MULTIQ is not set
626# CONFIG_NET_SCH_RED is not set 652# CONFIG_NET_SCH_RED is not set
627# CONFIG_NET_SCH_SFQ is not set 653# CONFIG_NET_SCH_SFQ is not set
628# CONFIG_NET_SCH_TEQL is not set 654# CONFIG_NET_SCH_TEQL is not set
@@ -630,6 +656,7 @@ CONFIG_NET_SCHED=y
630# CONFIG_NET_SCH_GRED is not set 656# CONFIG_NET_SCH_GRED is not set
631# CONFIG_NET_SCH_DSMARK is not set 657# CONFIG_NET_SCH_DSMARK is not set
632# CONFIG_NET_SCH_NETEM is not set 658# CONFIG_NET_SCH_NETEM is not set
659# CONFIG_NET_SCH_DRR is not set
633# CONFIG_NET_SCH_INGRESS is not set 660# CONFIG_NET_SCH_INGRESS is not set
634 661
635# 662#
@@ -644,6 +671,7 @@ CONFIG_NET_CLS=y
644# CONFIG_NET_CLS_RSVP is not set 671# CONFIG_NET_CLS_RSVP is not set
645# CONFIG_NET_CLS_RSVP6 is not set 672# CONFIG_NET_CLS_RSVP6 is not set
646# CONFIG_NET_CLS_FLOW is not set 673# CONFIG_NET_CLS_FLOW is not set
674# CONFIG_NET_CLS_CGROUP is not set
647CONFIG_NET_EMATCH=y 675CONFIG_NET_EMATCH=y
648CONFIG_NET_EMATCH_STACK=32 676CONFIG_NET_EMATCH_STACK=32
649# CONFIG_NET_EMATCH_CMP is not set 677# CONFIG_NET_EMATCH_CMP is not set
@@ -659,7 +687,9 @@ CONFIG_NET_CLS_ACT=y
659# CONFIG_NET_ACT_NAT is not set 687# CONFIG_NET_ACT_NAT is not set
660# CONFIG_NET_ACT_PEDIT is not set 688# CONFIG_NET_ACT_PEDIT is not set
661# CONFIG_NET_ACT_SIMP is not set 689# CONFIG_NET_ACT_SIMP is not set
690# CONFIG_NET_ACT_SKBEDIT is not set
662CONFIG_NET_SCH_FIFO=y 691CONFIG_NET_SCH_FIFO=y
692# CONFIG_DCB is not set
663 693
664# 694#
665# Network testing 695# Network testing
@@ -676,29 +706,33 @@ CONFIG_HAMRADIO=y
676# CONFIG_IRDA is not set 706# CONFIG_IRDA is not set
677# CONFIG_BT is not set 707# CONFIG_BT is not set
678# CONFIG_AF_RXRPC is not set 708# CONFIG_AF_RXRPC is not set
709# CONFIG_PHONET is not set
679CONFIG_FIB_RULES=y 710CONFIG_FIB_RULES=y
680 711CONFIG_WIRELESS=y
681#
682# Wireless
683#
684CONFIG_CFG80211=y 712CONFIG_CFG80211=y
713# CONFIG_CFG80211_REG_DEBUG is not set
685CONFIG_NL80211=y 714CONFIG_NL80211=y
715CONFIG_WIRELESS_OLD_REGULATORY=y
686CONFIG_WIRELESS_EXT=y 716CONFIG_WIRELESS_EXT=y
687CONFIG_WIRELESS_EXT_SYSFS=y 717CONFIG_WIRELESS_EXT_SYSFS=y
718# CONFIG_LIB80211 is not set
688CONFIG_MAC80211=y 719CONFIG_MAC80211=y
689 720
690# 721#
691# Rate control algorithm selection 722# Rate control algorithm selection
692# 723#
693CONFIG_MAC80211_RC_PID=y 724CONFIG_MAC80211_RC_MINSTREL=y
694CONFIG_MAC80211_RC_DEFAULT_PID=y 725# CONFIG_MAC80211_RC_DEFAULT_PID is not set
695CONFIG_MAC80211_RC_DEFAULT="pid" 726CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
727CONFIG_MAC80211_RC_DEFAULT="minstrel"
696# CONFIG_MAC80211_MESH is not set 728# CONFIG_MAC80211_MESH is not set
697CONFIG_MAC80211_LEDS=y 729CONFIG_MAC80211_LEDS=y
698# CONFIG_MAC80211_DEBUGFS is not set 730# CONFIG_MAC80211_DEBUGFS is not set
699# CONFIG_MAC80211_DEBUG_MENU is not set 731# CONFIG_MAC80211_DEBUG_MENU is not set
700# CONFIG_IEEE80211 is not set 732# CONFIG_WIMAX is not set
701# CONFIG_RFKILL is not set 733CONFIG_RFKILL=y
734# CONFIG_RFKILL_INPUT is not set
735CONFIG_RFKILL_LEDS=y
702# CONFIG_NET_9P is not set 736# CONFIG_NET_9P is not set
703 737
704# 738#
@@ -722,7 +756,7 @@ CONFIG_PROC_EVENTS=y
722# CONFIG_MTD is not set 756# CONFIG_MTD is not set
723# CONFIG_PARPORT is not set 757# CONFIG_PARPORT is not set
724CONFIG_PNP=y 758CONFIG_PNP=y
725# CONFIG_PNP_DEBUG is not set 759CONFIG_PNP_DEBUG_MESSAGES=y
726 760
727# 761#
728# Protocols 762# Protocols
@@ -750,20 +784,19 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
750CONFIG_MISC_DEVICES=y 784CONFIG_MISC_DEVICES=y
751# CONFIG_IBM_ASM is not set 785# CONFIG_IBM_ASM is not set
752# CONFIG_PHANTOM is not set 786# CONFIG_PHANTOM is not set
753# CONFIG_EEPROM_93CX6 is not set
754# CONFIG_SGI_IOC4 is not set 787# CONFIG_SGI_IOC4 is not set
755# CONFIG_TIFM_CORE is not set 788# CONFIG_TIFM_CORE is not set
756# CONFIG_ACER_WMI is not set 789# CONFIG_ICS932S401 is not set
757# CONFIG_ASUS_LAPTOP is not set
758# CONFIG_FUJITSU_LAPTOP is not set
759# CONFIG_TC1100_WMI is not set
760# CONFIG_MSI_LAPTOP is not set
761# CONFIG_COMPAL_LAPTOP is not set
762# CONFIG_SONY_LAPTOP is not set
763# CONFIG_THINKPAD_ACPI is not set
764# CONFIG_INTEL_MENLOW is not set
765# CONFIG_ENCLOSURE_SERVICES is not set 790# CONFIG_ENCLOSURE_SERVICES is not set
766# CONFIG_HP_ILO is not set 791# CONFIG_HP_ILO is not set
792# CONFIG_C2PORT is not set
793
794#
795# EEPROM support
796#
797# CONFIG_EEPROM_AT24 is not set
798# CONFIG_EEPROM_LEGACY is not set
799# CONFIG_EEPROM_93CX6 is not set
767CONFIG_HAVE_IDE=y 800CONFIG_HAVE_IDE=y
768# CONFIG_IDE is not set 801# CONFIG_IDE is not set
769 802
@@ -802,7 +835,7 @@ CONFIG_SCSI_WAIT_SCAN=m
802# 835#
803CONFIG_SCSI_SPI_ATTRS=y 836CONFIG_SCSI_SPI_ATTRS=y
804# CONFIG_SCSI_FC_ATTRS is not set 837# CONFIG_SCSI_FC_ATTRS is not set
805CONFIG_SCSI_ISCSI_ATTRS=y 838# CONFIG_SCSI_ISCSI_ATTRS is not set
806# CONFIG_SCSI_SAS_ATTRS is not set 839# CONFIG_SCSI_SAS_ATTRS is not set
807# CONFIG_SCSI_SAS_LIBSAS is not set 840# CONFIG_SCSI_SAS_LIBSAS is not set
808# CONFIG_SCSI_SRP_ATTRS is not set 841# CONFIG_SCSI_SRP_ATTRS is not set
@@ -875,6 +908,7 @@ CONFIG_PATA_OLDPIIX=y
875CONFIG_PATA_SCH=y 908CONFIG_PATA_SCH=y
876CONFIG_MD=y 909CONFIG_MD=y
877CONFIG_BLK_DEV_MD=y 910CONFIG_BLK_DEV_MD=y
911CONFIG_MD_AUTODETECT=y
878# CONFIG_MD_LINEAR is not set 912# CONFIG_MD_LINEAR is not set
879# CONFIG_MD_RAID0 is not set 913# CONFIG_MD_RAID0 is not set
880# CONFIG_MD_RAID1 is not set 914# CONFIG_MD_RAID1 is not set
@@ -930,6 +964,9 @@ CONFIG_PHYLIB=y
930# CONFIG_BROADCOM_PHY is not set 964# CONFIG_BROADCOM_PHY is not set
931# CONFIG_ICPLUS_PHY is not set 965# CONFIG_ICPLUS_PHY is not set
932# CONFIG_REALTEK_PHY is not set 966# CONFIG_REALTEK_PHY is not set
967# CONFIG_NATIONAL_PHY is not set
968# CONFIG_STE10XP is not set
969# CONFIG_LSI_ET1011C_PHY is not set
933# CONFIG_FIXED_PHY is not set 970# CONFIG_FIXED_PHY is not set
934# CONFIG_MDIO_BITBANG is not set 971# CONFIG_MDIO_BITBANG is not set
935CONFIG_NET_ETHERNET=y 972CONFIG_NET_ETHERNET=y
@@ -953,6 +990,9 @@ CONFIG_NET_TULIP=y
953# CONFIG_IBM_NEW_EMAC_RGMII is not set 990# CONFIG_IBM_NEW_EMAC_RGMII is not set
954# CONFIG_IBM_NEW_EMAC_TAH is not set 991# CONFIG_IBM_NEW_EMAC_TAH is not set
955# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 992# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
993# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
994# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
995# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
956CONFIG_NET_PCI=y 996CONFIG_NET_PCI=y
957# CONFIG_PCNET32 is not set 997# CONFIG_PCNET32 is not set
958# CONFIG_AMD8111_ETH is not set 998# CONFIG_AMD8111_ETH is not set
@@ -960,7 +1000,6 @@ CONFIG_NET_PCI=y
960# CONFIG_B44 is not set 1000# CONFIG_B44 is not set
961CONFIG_FORCEDETH=y 1001CONFIG_FORCEDETH=y
962# CONFIG_FORCEDETH_NAPI is not set 1002# CONFIG_FORCEDETH_NAPI is not set
963# CONFIG_EEPRO100 is not set
964CONFIG_E100=y 1003CONFIG_E100=y
965# CONFIG_FEALNX is not set 1004# CONFIG_FEALNX is not set
966# CONFIG_NATSEMI is not set 1005# CONFIG_NATSEMI is not set
@@ -974,15 +1013,16 @@ CONFIG_8139TOO=y
974# CONFIG_R6040 is not set 1013# CONFIG_R6040 is not set
975# CONFIG_SIS900 is not set 1014# CONFIG_SIS900 is not set
976# CONFIG_EPIC100 is not set 1015# CONFIG_EPIC100 is not set
1016# CONFIG_SMSC9420 is not set
977# CONFIG_SUNDANCE is not set 1017# CONFIG_SUNDANCE is not set
978# CONFIG_TLAN is not set 1018# CONFIG_TLAN is not set
979# CONFIG_VIA_RHINE is not set 1019# CONFIG_VIA_RHINE is not set
980# CONFIG_SC92031 is not set 1020# CONFIG_SC92031 is not set
1021# CONFIG_ATL2 is not set
981CONFIG_NETDEV_1000=y 1022CONFIG_NETDEV_1000=y
982# CONFIG_ACENIC is not set 1023# CONFIG_ACENIC is not set
983# CONFIG_DL2K is not set 1024# CONFIG_DL2K is not set
984CONFIG_E1000=y 1025CONFIG_E1000=y
985# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
986CONFIG_E1000E=y 1026CONFIG_E1000E=y
987# CONFIG_IP1000 is not set 1027# CONFIG_IP1000 is not set
988# CONFIG_IGB is not set 1028# CONFIG_IGB is not set
@@ -1000,18 +1040,23 @@ CONFIG_BNX2=y
1000# CONFIG_QLA3XXX is not set 1040# CONFIG_QLA3XXX is not set
1001# CONFIG_ATL1 is not set 1041# CONFIG_ATL1 is not set
1002# CONFIG_ATL1E is not set 1042# CONFIG_ATL1E is not set
1043# CONFIG_JME is not set
1003CONFIG_NETDEV_10000=y 1044CONFIG_NETDEV_10000=y
1004# CONFIG_CHELSIO_T1 is not set 1045# CONFIG_CHELSIO_T1 is not set
1046CONFIG_CHELSIO_T3_DEPENDS=y
1005# CONFIG_CHELSIO_T3 is not set 1047# CONFIG_CHELSIO_T3 is not set
1048# CONFIG_ENIC is not set
1006# CONFIG_IXGBE is not set 1049# CONFIG_IXGBE is not set
1007# CONFIG_IXGB is not set 1050# CONFIG_IXGB is not set
1008# CONFIG_S2IO is not set 1051# CONFIG_S2IO is not set
1009# CONFIG_MYRI10GE is not set 1052# CONFIG_MYRI10GE is not set
1010# CONFIG_NETXEN_NIC is not set 1053# CONFIG_NETXEN_NIC is not set
1011# CONFIG_NIU is not set 1054# CONFIG_NIU is not set
1055# CONFIG_MLX4_EN is not set
1012# CONFIG_MLX4_CORE is not set 1056# CONFIG_MLX4_CORE is not set
1013# CONFIG_TEHUTI is not set 1057# CONFIG_TEHUTI is not set
1014# CONFIG_BNX2X is not set 1058# CONFIG_BNX2X is not set
1059# CONFIG_QLGE is not set
1015# CONFIG_SFC is not set 1060# CONFIG_SFC is not set
1016CONFIG_TR=y 1061CONFIG_TR=y
1017# CONFIG_IBMOL is not set 1062# CONFIG_IBMOL is not set
@@ -1025,9 +1070,8 @@ CONFIG_TR=y
1025# CONFIG_WLAN_PRE80211 is not set 1070# CONFIG_WLAN_PRE80211 is not set
1026CONFIG_WLAN_80211=y 1071CONFIG_WLAN_80211=y
1027# CONFIG_PCMCIA_RAYCS is not set 1072# CONFIG_PCMCIA_RAYCS is not set
1028# CONFIG_IPW2100 is not set
1029# CONFIG_IPW2200 is not set
1030# CONFIG_LIBERTAS is not set 1073# CONFIG_LIBERTAS is not set
1074# CONFIG_LIBERTAS_THINFIRM is not set
1031# CONFIG_AIRO is not set 1075# CONFIG_AIRO is not set
1032# CONFIG_HERMES is not set 1076# CONFIG_HERMES is not set
1033# CONFIG_ATMEL is not set 1077# CONFIG_ATMEL is not set
@@ -1044,6 +1088,8 @@ CONFIG_WLAN_80211=y
1044CONFIG_ATH5K=y 1088CONFIG_ATH5K=y
1045# CONFIG_ATH5K_DEBUG is not set 1089# CONFIG_ATH5K_DEBUG is not set
1046# CONFIG_ATH9K is not set 1090# CONFIG_ATH9K is not set
1091# CONFIG_IPW2100 is not set
1092# CONFIG_IPW2200 is not set
1047# CONFIG_IWLCORE is not set 1093# CONFIG_IWLCORE is not set
1048# CONFIG_IWLWIFI_LEDS is not set 1094# CONFIG_IWLWIFI_LEDS is not set
1049# CONFIG_IWLAGN is not set 1095# CONFIG_IWLAGN is not set
@@ -1055,6 +1101,10 @@ CONFIG_ATH5K=y
1055# CONFIG_RT2X00 is not set 1101# CONFIG_RT2X00 is not set
1056 1102
1057# 1103#
1104# Enable WiMAX (Networking options) to see the WiMAX drivers
1105#
1106
1107#
1058# USB Network Adapters 1108# USB Network Adapters
1059# 1109#
1060# CONFIG_USB_CATC is not set 1110# CONFIG_USB_CATC is not set
@@ -1062,6 +1112,7 @@ CONFIG_ATH5K=y
1062# CONFIG_USB_PEGASUS is not set 1112# CONFIG_USB_PEGASUS is not set
1063# CONFIG_USB_RTL8150 is not set 1113# CONFIG_USB_RTL8150 is not set
1064# CONFIG_USB_USBNET is not set 1114# CONFIG_USB_USBNET is not set
1115# CONFIG_USB_HSO is not set
1065CONFIG_NET_PCMCIA=y 1116CONFIG_NET_PCMCIA=y
1066# CONFIG_PCMCIA_3C589 is not set 1117# CONFIG_PCMCIA_3C589 is not set
1067# CONFIG_PCMCIA_3C574 is not set 1118# CONFIG_PCMCIA_3C574 is not set
@@ -1123,6 +1174,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
1123CONFIG_MOUSE_PS2_SYNAPTICS=y 1174CONFIG_MOUSE_PS2_SYNAPTICS=y
1124CONFIG_MOUSE_PS2_LIFEBOOK=y 1175CONFIG_MOUSE_PS2_LIFEBOOK=y
1125CONFIG_MOUSE_PS2_TRACKPOINT=y 1176CONFIG_MOUSE_PS2_TRACKPOINT=y
1177# CONFIG_MOUSE_PS2_ELANTECH is not set
1126# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1178# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1127# CONFIG_MOUSE_SERIAL is not set 1179# CONFIG_MOUSE_SERIAL is not set
1128# CONFIG_MOUSE_APPLETOUCH is not set 1180# CONFIG_MOUSE_APPLETOUCH is not set
@@ -1160,15 +1212,16 @@ CONFIG_INPUT_TOUCHSCREEN=y
1160# CONFIG_TOUCHSCREEN_FUJITSU is not set 1212# CONFIG_TOUCHSCREEN_FUJITSU is not set
1161# CONFIG_TOUCHSCREEN_GUNZE is not set 1213# CONFIG_TOUCHSCREEN_GUNZE is not set
1162# CONFIG_TOUCHSCREEN_ELO is not set 1214# CONFIG_TOUCHSCREEN_ELO is not set
1215# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
1163# CONFIG_TOUCHSCREEN_MTOUCH is not set 1216# CONFIG_TOUCHSCREEN_MTOUCH is not set
1164# CONFIG_TOUCHSCREEN_INEXIO is not set 1217# CONFIG_TOUCHSCREEN_INEXIO is not set
1165# CONFIG_TOUCHSCREEN_MK712 is not set 1218# CONFIG_TOUCHSCREEN_MK712 is not set
1166# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1219# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1167# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1220# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1168# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1221# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1169# CONFIG_TOUCHSCREEN_UCB1400 is not set
1170# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 1222# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1171# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set 1223# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1224# CONFIG_TOUCHSCREEN_TSC2007 is not set
1172CONFIG_INPUT_MISC=y 1225CONFIG_INPUT_MISC=y
1173# CONFIG_INPUT_PCSPKR is not set 1226# CONFIG_INPUT_PCSPKR is not set
1174# CONFIG_INPUT_APANEL is not set 1227# CONFIG_INPUT_APANEL is not set
@@ -1179,6 +1232,7 @@ CONFIG_INPUT_MISC=y
1179# CONFIG_INPUT_KEYSPAN_REMOTE is not set 1232# CONFIG_INPUT_KEYSPAN_REMOTE is not set
1180# CONFIG_INPUT_POWERMATE is not set 1233# CONFIG_INPUT_POWERMATE is not set
1181# CONFIG_INPUT_YEALINK is not set 1234# CONFIG_INPUT_YEALINK is not set
1235# CONFIG_INPUT_CM109 is not set
1182# CONFIG_INPUT_UINPUT is not set 1236# CONFIG_INPUT_UINPUT is not set
1183 1237
1184# 1238#
@@ -1245,6 +1299,7 @@ CONFIG_SERIAL_CORE=y
1245CONFIG_SERIAL_CORE_CONSOLE=y 1299CONFIG_SERIAL_CORE_CONSOLE=y
1246# CONFIG_SERIAL_JSM is not set 1300# CONFIG_SERIAL_JSM is not set
1247CONFIG_UNIX98_PTYS=y 1301CONFIG_UNIX98_PTYS=y
1302# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1248# CONFIG_LEGACY_PTYS is not set 1303# CONFIG_LEGACY_PTYS is not set
1249# CONFIG_IPMI_HANDLER is not set 1304# CONFIG_IPMI_HANDLER is not set
1250CONFIG_HW_RANDOM=y 1305CONFIG_HW_RANDOM=y
@@ -1279,6 +1334,7 @@ CONFIG_I2C=y
1279CONFIG_I2C_BOARDINFO=y 1334CONFIG_I2C_BOARDINFO=y
1280# CONFIG_I2C_CHARDEV is not set 1335# CONFIG_I2C_CHARDEV is not set
1281CONFIG_I2C_HELPER_AUTO=y 1336CONFIG_I2C_HELPER_AUTO=y
1337CONFIG_I2C_ALGOBIT=y
1282 1338
1283# 1339#
1284# I2C Hardware Bus support 1340# I2C Hardware Bus support
@@ -1331,8 +1387,6 @@ CONFIG_I2C_I801=y
1331# Miscellaneous I2C Chip support 1387# Miscellaneous I2C Chip support
1332# 1388#
1333# CONFIG_DS1682 is not set 1389# CONFIG_DS1682 is not set
1334# CONFIG_AT24 is not set
1335# CONFIG_SENSORS_EEPROM is not set
1336# CONFIG_SENSORS_PCF8574 is not set 1390# CONFIG_SENSORS_PCF8574 is not set
1337# CONFIG_PCF8575 is not set 1391# CONFIG_PCF8575 is not set
1338# CONFIG_SENSORS_PCA9539 is not set 1392# CONFIG_SENSORS_PCA9539 is not set
@@ -1351,8 +1405,78 @@ CONFIG_POWER_SUPPLY=y
1351# CONFIG_POWER_SUPPLY_DEBUG is not set 1405# CONFIG_POWER_SUPPLY_DEBUG is not set
1352# CONFIG_PDA_POWER is not set 1406# CONFIG_PDA_POWER is not set
1353# CONFIG_BATTERY_DS2760 is not set 1407# CONFIG_BATTERY_DS2760 is not set
1354# CONFIG_HWMON is not set 1408# CONFIG_BATTERY_BQ27x00 is not set
1409CONFIG_HWMON=y
1410# CONFIG_HWMON_VID is not set
1411# CONFIG_SENSORS_ABITUGURU is not set
1412# CONFIG_SENSORS_ABITUGURU3 is not set
1413# CONFIG_SENSORS_AD7414 is not set
1414# CONFIG_SENSORS_AD7418 is not set
1415# CONFIG_SENSORS_ADM1021 is not set
1416# CONFIG_SENSORS_ADM1025 is not set
1417# CONFIG_SENSORS_ADM1026 is not set
1418# CONFIG_SENSORS_ADM1029 is not set
1419# CONFIG_SENSORS_ADM1031 is not set
1420# CONFIG_SENSORS_ADM9240 is not set
1421# CONFIG_SENSORS_ADT7462 is not set
1422# CONFIG_SENSORS_ADT7470 is not set
1423# CONFIG_SENSORS_ADT7473 is not set
1424# CONFIG_SENSORS_ADT7475 is not set
1425# CONFIG_SENSORS_K8TEMP is not set
1426# CONFIG_SENSORS_ASB100 is not set
1427# CONFIG_SENSORS_ATXP1 is not set
1428# CONFIG_SENSORS_DS1621 is not set
1429# CONFIG_SENSORS_I5K_AMB is not set
1430# CONFIG_SENSORS_F71805F is not set
1431# CONFIG_SENSORS_F71882FG is not set
1432# CONFIG_SENSORS_F75375S is not set
1433# CONFIG_SENSORS_FSCHER is not set
1434# CONFIG_SENSORS_FSCPOS is not set
1435# CONFIG_SENSORS_FSCHMD is not set
1436# CONFIG_SENSORS_GL518SM is not set
1437# CONFIG_SENSORS_GL520SM is not set
1438# CONFIG_SENSORS_CORETEMP is not set
1439# CONFIG_SENSORS_IT87 is not set
1440# CONFIG_SENSORS_LM63 is not set
1441# CONFIG_SENSORS_LM75 is not set
1442# CONFIG_SENSORS_LM77 is not set
1443# CONFIG_SENSORS_LM78 is not set
1444# CONFIG_SENSORS_LM80 is not set
1445# CONFIG_SENSORS_LM83 is not set
1446# CONFIG_SENSORS_LM85 is not set
1447# CONFIG_SENSORS_LM87 is not set
1448# CONFIG_SENSORS_LM90 is not set
1449# CONFIG_SENSORS_LM92 is not set
1450# CONFIG_SENSORS_LM93 is not set
1451# CONFIG_SENSORS_LTC4245 is not set
1452# CONFIG_SENSORS_MAX1619 is not set
1453# CONFIG_SENSORS_MAX6650 is not set
1454# CONFIG_SENSORS_PC87360 is not set
1455# CONFIG_SENSORS_PC87427 is not set
1456# CONFIG_SENSORS_SIS5595 is not set
1457# CONFIG_SENSORS_DME1737 is not set
1458# CONFIG_SENSORS_SMSC47M1 is not set
1459# CONFIG_SENSORS_SMSC47M192 is not set
1460# CONFIG_SENSORS_SMSC47B397 is not set
1461# CONFIG_SENSORS_ADS7828 is not set
1462# CONFIG_SENSORS_THMC50 is not set
1463# CONFIG_SENSORS_VIA686A is not set
1464# CONFIG_SENSORS_VT1211 is not set
1465# CONFIG_SENSORS_VT8231 is not set
1466# CONFIG_SENSORS_W83781D is not set
1467# CONFIG_SENSORS_W83791D is not set
1468# CONFIG_SENSORS_W83792D is not set
1469# CONFIG_SENSORS_W83793 is not set
1470# CONFIG_SENSORS_W83L785TS is not set
1471# CONFIG_SENSORS_W83L786NG is not set
1472# CONFIG_SENSORS_W83627HF is not set
1473# CONFIG_SENSORS_W83627EHF is not set
1474# CONFIG_SENSORS_HDAPS is not set
1475# CONFIG_SENSORS_LIS3LV02D is not set
1476# CONFIG_SENSORS_APPLESMC is not set
1477# CONFIG_HWMON_DEBUG_CHIP is not set
1355CONFIG_THERMAL=y 1478CONFIG_THERMAL=y
1479# CONFIG_THERMAL_HWMON is not set
1356CONFIG_WATCHDOG=y 1480CONFIG_WATCHDOG=y
1357# CONFIG_WATCHDOG_NOWAYOUT is not set 1481# CONFIG_WATCHDOG_NOWAYOUT is not set
1358 1482
@@ -1372,6 +1496,7 @@ CONFIG_WATCHDOG=y
1372# CONFIG_I6300ESB_WDT is not set 1496# CONFIG_I6300ESB_WDT is not set
1373# CONFIG_ITCO_WDT is not set 1497# CONFIG_ITCO_WDT is not set
1374# CONFIG_IT8712F_WDT is not set 1498# CONFIG_IT8712F_WDT is not set
1499# CONFIG_IT87_WDT is not set
1375# CONFIG_HP_WATCHDOG is not set 1500# CONFIG_HP_WATCHDOG is not set
1376# CONFIG_SC1200_WDT is not set 1501# CONFIG_SC1200_WDT is not set
1377# CONFIG_PC87413_WDT is not set 1502# CONFIG_PC87413_WDT is not set
@@ -1379,9 +1504,11 @@ CONFIG_WATCHDOG=y
1379# CONFIG_SBC8360_WDT is not set 1504# CONFIG_SBC8360_WDT is not set
1380# CONFIG_SBC7240_WDT is not set 1505# CONFIG_SBC7240_WDT is not set
1381# CONFIG_CPU5_WDT is not set 1506# CONFIG_CPU5_WDT is not set
1507# CONFIG_SMSC_SCH311X_WDT is not set
1382# CONFIG_SMSC37B787_WDT is not set 1508# CONFIG_SMSC37B787_WDT is not set
1383# CONFIG_W83627HF_WDT is not set 1509# CONFIG_W83627HF_WDT is not set
1384# CONFIG_W83697HF_WDT is not set 1510# CONFIG_W83697HF_WDT is not set
1511# CONFIG_W83697UG_WDT is not set
1385# CONFIG_W83877F_WDT is not set 1512# CONFIG_W83877F_WDT is not set
1386# CONFIG_W83977F_WDT is not set 1513# CONFIG_W83977F_WDT is not set
1387# CONFIG_MACHZ_WDT is not set 1514# CONFIG_MACHZ_WDT is not set
@@ -1397,11 +1524,11 @@ CONFIG_WATCHDOG=y
1397# USB-based Watchdog Cards 1524# USB-based Watchdog Cards
1398# 1525#
1399# CONFIG_USBPCWATCHDOG is not set 1526# CONFIG_USBPCWATCHDOG is not set
1527CONFIG_SSB_POSSIBLE=y
1400 1528
1401# 1529#
1402# Sonics Silicon Backplane 1530# Sonics Silicon Backplane
1403# 1531#
1404CONFIG_SSB_POSSIBLE=y
1405# CONFIG_SSB is not set 1532# CONFIG_SSB is not set
1406 1533
1407# 1534#
@@ -1410,7 +1537,13 @@ CONFIG_SSB_POSSIBLE=y
1410# CONFIG_MFD_CORE is not set 1537# CONFIG_MFD_CORE is not set
1411# CONFIG_MFD_SM501 is not set 1538# CONFIG_MFD_SM501 is not set
1412# CONFIG_HTC_PASIC3 is not set 1539# CONFIG_HTC_PASIC3 is not set
1540# CONFIG_TWL4030_CORE is not set
1413# CONFIG_MFD_TMIO is not set 1541# CONFIG_MFD_TMIO is not set
1542# CONFIG_PMIC_DA903X is not set
1543# CONFIG_MFD_WM8400 is not set
1544# CONFIG_MFD_WM8350_I2C is not set
1545# CONFIG_MFD_PCF50633 is not set
1546# CONFIG_REGULATOR is not set
1414 1547
1415# 1548#
1416# Multimedia devices 1549# Multimedia devices
@@ -1450,6 +1583,7 @@ CONFIG_DRM=y
1450# CONFIG_DRM_I810 is not set 1583# CONFIG_DRM_I810 is not set
1451# CONFIG_DRM_I830 is not set 1584# CONFIG_DRM_I830 is not set
1452CONFIG_DRM_I915=y 1585CONFIG_DRM_I915=y
1586# CONFIG_DRM_I915_KMS is not set
1453# CONFIG_DRM_MGA is not set 1587# CONFIG_DRM_MGA is not set
1454# CONFIG_DRM_SIS is not set 1588# CONFIG_DRM_SIS is not set
1455# CONFIG_DRM_VIA is not set 1589# CONFIG_DRM_VIA is not set
@@ -1459,6 +1593,7 @@ CONFIG_DRM_I915=y
1459CONFIG_FB=y 1593CONFIG_FB=y
1460# CONFIG_FIRMWARE_EDID is not set 1594# CONFIG_FIRMWARE_EDID is not set
1461# CONFIG_FB_DDC is not set 1595# CONFIG_FB_DDC is not set
1596# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1462CONFIG_FB_CFB_FILLRECT=y 1597CONFIG_FB_CFB_FILLRECT=y
1463CONFIG_FB_CFB_COPYAREA=y 1598CONFIG_FB_CFB_COPYAREA=y
1464CONFIG_FB_CFB_IMAGEBLIT=y 1599CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1487,7 +1622,6 @@ CONFIG_FB_TILEBLITTING=y
1487# CONFIG_FB_UVESA is not set 1622# CONFIG_FB_UVESA is not set
1488# CONFIG_FB_VESA is not set 1623# CONFIG_FB_VESA is not set
1489CONFIG_FB_EFI=y 1624CONFIG_FB_EFI=y
1490# CONFIG_FB_IMAC is not set
1491# CONFIG_FB_N411 is not set 1625# CONFIG_FB_N411 is not set
1492# CONFIG_FB_HGA is not set 1626# CONFIG_FB_HGA is not set
1493# CONFIG_FB_S1D13XXX is not set 1627# CONFIG_FB_S1D13XXX is not set
@@ -1503,6 +1637,7 @@ CONFIG_FB_EFI=y
1503# CONFIG_FB_S3 is not set 1637# CONFIG_FB_S3 is not set
1504# CONFIG_FB_SAVAGE is not set 1638# CONFIG_FB_SAVAGE is not set
1505# CONFIG_FB_SIS is not set 1639# CONFIG_FB_SIS is not set
1640# CONFIG_FB_VIA is not set
1506# CONFIG_FB_NEOMAGIC is not set 1641# CONFIG_FB_NEOMAGIC is not set
1507# CONFIG_FB_KYRO is not set 1642# CONFIG_FB_KYRO is not set
1508# CONFIG_FB_3DFX is not set 1643# CONFIG_FB_3DFX is not set
@@ -1515,12 +1650,15 @@ CONFIG_FB_EFI=y
1515# CONFIG_FB_CARMINE is not set 1650# CONFIG_FB_CARMINE is not set
1516# CONFIG_FB_GEODE is not set 1651# CONFIG_FB_GEODE is not set
1517# CONFIG_FB_VIRTUAL is not set 1652# CONFIG_FB_VIRTUAL is not set
1653# CONFIG_FB_METRONOME is not set
1654# CONFIG_FB_MB862XX is not set
1518CONFIG_BACKLIGHT_LCD_SUPPORT=y 1655CONFIG_BACKLIGHT_LCD_SUPPORT=y
1519# CONFIG_LCD_CLASS_DEVICE is not set 1656# CONFIG_LCD_CLASS_DEVICE is not set
1520CONFIG_BACKLIGHT_CLASS_DEVICE=y 1657CONFIG_BACKLIGHT_CLASS_DEVICE=y
1521# CONFIG_BACKLIGHT_CORGI is not set 1658CONFIG_BACKLIGHT_GENERIC=y
1522# CONFIG_BACKLIGHT_PROGEAR is not set 1659# CONFIG_BACKLIGHT_PROGEAR is not set
1523# CONFIG_BACKLIGHT_MBP_NVIDIA is not set 1660# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
1661# CONFIG_BACKLIGHT_SAHARA is not set
1524 1662
1525# 1663#
1526# Display device support 1664# Display device support
@@ -1540,10 +1678,12 @@ CONFIG_LOGO=y
1540# CONFIG_LOGO_LINUX_VGA16 is not set 1678# CONFIG_LOGO_LINUX_VGA16 is not set
1541CONFIG_LOGO_LINUX_CLUT224=y 1679CONFIG_LOGO_LINUX_CLUT224=y
1542CONFIG_SOUND=y 1680CONFIG_SOUND=y
1681CONFIG_SOUND_OSS_CORE=y
1543CONFIG_SND=y 1682CONFIG_SND=y
1544CONFIG_SND_TIMER=y 1683CONFIG_SND_TIMER=y
1545CONFIG_SND_PCM=y 1684CONFIG_SND_PCM=y
1546CONFIG_SND_HWDEP=y 1685CONFIG_SND_HWDEP=y
1686CONFIG_SND_JACK=y
1547CONFIG_SND_SEQUENCER=y 1687CONFIG_SND_SEQUENCER=y
1548CONFIG_SND_SEQ_DUMMY=y 1688CONFIG_SND_SEQ_DUMMY=y
1549CONFIG_SND_OSSEMUL=y 1689CONFIG_SND_OSSEMUL=y
@@ -1551,6 +1691,8 @@ CONFIG_SND_MIXER_OSS=y
1551CONFIG_SND_PCM_OSS=y 1691CONFIG_SND_PCM_OSS=y
1552CONFIG_SND_PCM_OSS_PLUGINS=y 1692CONFIG_SND_PCM_OSS_PLUGINS=y
1553CONFIG_SND_SEQUENCER_OSS=y 1693CONFIG_SND_SEQUENCER_OSS=y
1694CONFIG_SND_HRTIMER=y
1695CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
1554CONFIG_SND_DYNAMIC_MINORS=y 1696CONFIG_SND_DYNAMIC_MINORS=y
1555CONFIG_SND_SUPPORT_OLD_API=y 1697CONFIG_SND_SUPPORT_OLD_API=y
1556CONFIG_SND_VERBOSE_PROCFS=y 1698CONFIG_SND_VERBOSE_PROCFS=y
@@ -1605,11 +1747,16 @@ CONFIG_SND_PCI=y
1605# CONFIG_SND_FM801 is not set 1747# CONFIG_SND_FM801 is not set
1606CONFIG_SND_HDA_INTEL=y 1748CONFIG_SND_HDA_INTEL=y
1607CONFIG_SND_HDA_HWDEP=y 1749CONFIG_SND_HDA_HWDEP=y
1750# CONFIG_SND_HDA_RECONFIG is not set
1751# CONFIG_SND_HDA_INPUT_BEEP is not set
1608CONFIG_SND_HDA_CODEC_REALTEK=y 1752CONFIG_SND_HDA_CODEC_REALTEK=y
1609CONFIG_SND_HDA_CODEC_ANALOG=y 1753CONFIG_SND_HDA_CODEC_ANALOG=y
1610CONFIG_SND_HDA_CODEC_SIGMATEL=y 1754CONFIG_SND_HDA_CODEC_SIGMATEL=y
1611CONFIG_SND_HDA_CODEC_VIA=y 1755CONFIG_SND_HDA_CODEC_VIA=y
1612CONFIG_SND_HDA_CODEC_ATIHDMI=y 1756CONFIG_SND_HDA_CODEC_ATIHDMI=y
1757CONFIG_SND_HDA_CODEC_NVHDMI=y
1758CONFIG_SND_HDA_CODEC_INTELHDMI=y
1759CONFIG_SND_HDA_ELD=y
1613CONFIG_SND_HDA_CODEC_CONEXANT=y 1760CONFIG_SND_HDA_CODEC_CONEXANT=y
1614CONFIG_SND_HDA_CODEC_CMEDIA=y 1761CONFIG_SND_HDA_CODEC_CMEDIA=y
1615CONFIG_SND_HDA_CODEC_SI3054=y 1762CONFIG_SND_HDA_CODEC_SI3054=y
@@ -1643,6 +1790,7 @@ CONFIG_SND_USB=y
1643# CONFIG_SND_USB_AUDIO is not set 1790# CONFIG_SND_USB_AUDIO is not set
1644# CONFIG_SND_USB_USX2Y is not set 1791# CONFIG_SND_USB_USX2Y is not set
1645# CONFIG_SND_USB_CAIAQ is not set 1792# CONFIG_SND_USB_CAIAQ is not set
1793# CONFIG_SND_USB_US122L is not set
1646CONFIG_SND_PCMCIA=y 1794CONFIG_SND_PCMCIA=y
1647# CONFIG_SND_VXPOCKET is not set 1795# CONFIG_SND_VXPOCKET is not set
1648# CONFIG_SND_PDAUDIOCF is not set 1796# CONFIG_SND_PDAUDIOCF is not set
@@ -1657,15 +1805,37 @@ CONFIG_HIDRAW=y
1657# USB Input Devices 1805# USB Input Devices
1658# 1806#
1659CONFIG_USB_HID=y 1807CONFIG_USB_HID=y
1660CONFIG_USB_HIDINPUT_POWERBOOK=y
1661CONFIG_HID_FF=y
1662CONFIG_HID_PID=y 1808CONFIG_HID_PID=y
1809CONFIG_USB_HIDDEV=y
1810
1811#
1812# Special HID drivers
1813#
1814CONFIG_HID_COMPAT=y
1815CONFIG_HID_A4TECH=y
1816CONFIG_HID_APPLE=y
1817CONFIG_HID_BELKIN=y
1818CONFIG_HID_CHERRY=y
1819CONFIG_HID_CHICONY=y
1820CONFIG_HID_CYPRESS=y
1821CONFIG_HID_EZKEY=y
1822CONFIG_HID_GYRATION=y
1823CONFIG_HID_LOGITECH=y
1663CONFIG_LOGITECH_FF=y 1824CONFIG_LOGITECH_FF=y
1664# CONFIG_LOGIRUMBLEPAD2_FF is not set 1825# CONFIG_LOGIRUMBLEPAD2_FF is not set
1826CONFIG_HID_MICROSOFT=y
1827CONFIG_HID_MONTEREY=y
1828CONFIG_HID_NTRIG=y
1829CONFIG_HID_PANTHERLORD=y
1665CONFIG_PANTHERLORD_FF=y 1830CONFIG_PANTHERLORD_FF=y
1831CONFIG_HID_PETALYNX=y
1832CONFIG_HID_SAMSUNG=y
1833CONFIG_HID_SONY=y
1834CONFIG_HID_SUNPLUS=y
1835# CONFIG_GREENASIA_FF is not set
1836CONFIG_HID_TOPSEED=y
1666CONFIG_THRUSTMASTER_FF=y 1837CONFIG_THRUSTMASTER_FF=y
1667CONFIG_ZEROPLUS_FF=y 1838CONFIG_ZEROPLUS_FF=y
1668CONFIG_USB_HIDDEV=y
1669CONFIG_USB_SUPPORT=y 1839CONFIG_USB_SUPPORT=y
1670CONFIG_USB_ARCH_HAS_HCD=y 1840CONFIG_USB_ARCH_HAS_HCD=y
1671CONFIG_USB_ARCH_HAS_OHCI=y 1841CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1683,6 +1853,8 @@ CONFIG_USB_DEVICEFS=y
1683CONFIG_USB_SUSPEND=y 1853CONFIG_USB_SUSPEND=y
1684# CONFIG_USB_OTG is not set 1854# CONFIG_USB_OTG is not set
1685CONFIG_USB_MON=y 1855CONFIG_USB_MON=y
1856# CONFIG_USB_WUSB is not set
1857# CONFIG_USB_WUSB_CBAF is not set
1686 1858
1687# 1859#
1688# USB Host Controller Drivers 1860# USB Host Controller Drivers
@@ -1691,6 +1863,7 @@ CONFIG_USB_MON=y
1691CONFIG_USB_EHCI_HCD=y 1863CONFIG_USB_EHCI_HCD=y
1692# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1864# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1693# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1865# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1866# CONFIG_USB_OXU210HP_HCD is not set
1694# CONFIG_USB_ISP116X_HCD is not set 1867# CONFIG_USB_ISP116X_HCD is not set
1695# CONFIG_USB_ISP1760_HCD is not set 1868# CONFIG_USB_ISP1760_HCD is not set
1696CONFIG_USB_OHCI_HCD=y 1869CONFIG_USB_OHCI_HCD=y
@@ -1700,6 +1873,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1700CONFIG_USB_UHCI_HCD=y 1873CONFIG_USB_UHCI_HCD=y
1701# CONFIG_USB_SL811_HCD is not set 1874# CONFIG_USB_SL811_HCD is not set
1702# CONFIG_USB_R8A66597_HCD is not set 1875# CONFIG_USB_R8A66597_HCD is not set
1876# CONFIG_USB_WHCI_HCD is not set
1877# CONFIG_USB_HWA_HCD is not set
1703 1878
1704# 1879#
1705# USB Device Class drivers 1880# USB Device Class drivers
@@ -1707,20 +1882,20 @@ CONFIG_USB_UHCI_HCD=y
1707# CONFIG_USB_ACM is not set 1882# CONFIG_USB_ACM is not set
1708CONFIG_USB_PRINTER=y 1883CONFIG_USB_PRINTER=y
1709# CONFIG_USB_WDM is not set 1884# CONFIG_USB_WDM is not set
1885# CONFIG_USB_TMC is not set
1710 1886
1711# 1887#
1712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1888# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1713# 1889#
1714 1890
1715# 1891#
1716# may also be needed; see USB_STORAGE Help for more information 1892# see USB_STORAGE Help for more information
1717# 1893#
1718CONFIG_USB_STORAGE=y 1894CONFIG_USB_STORAGE=y
1719# CONFIG_USB_STORAGE_DEBUG is not set 1895# CONFIG_USB_STORAGE_DEBUG is not set
1720# CONFIG_USB_STORAGE_DATAFAB is not set 1896# CONFIG_USB_STORAGE_DATAFAB is not set
1721# CONFIG_USB_STORAGE_FREECOM is not set 1897# CONFIG_USB_STORAGE_FREECOM is not set
1722# CONFIG_USB_STORAGE_ISD200 is not set 1898# CONFIG_USB_STORAGE_ISD200 is not set
1723# CONFIG_USB_STORAGE_DPCM is not set
1724# CONFIG_USB_STORAGE_USBAT is not set 1899# CONFIG_USB_STORAGE_USBAT is not set
1725# CONFIG_USB_STORAGE_SDDR09 is not set 1900# CONFIG_USB_STORAGE_SDDR09 is not set
1726# CONFIG_USB_STORAGE_SDDR55 is not set 1901# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1728,7 +1903,6 @@ CONFIG_USB_STORAGE=y
1728# CONFIG_USB_STORAGE_ALAUDA is not set 1903# CONFIG_USB_STORAGE_ALAUDA is not set
1729# CONFIG_USB_STORAGE_ONETOUCH is not set 1904# CONFIG_USB_STORAGE_ONETOUCH is not set
1730# CONFIG_USB_STORAGE_KARMA is not set 1905# CONFIG_USB_STORAGE_KARMA is not set
1731# CONFIG_USB_STORAGE_SIERRA is not set
1732# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1906# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1733CONFIG_USB_LIBUSUAL=y 1907CONFIG_USB_LIBUSUAL=y
1734 1908
@@ -1749,6 +1923,7 @@ CONFIG_USB_LIBUSUAL=y
1749# CONFIG_USB_EMI62 is not set 1923# CONFIG_USB_EMI62 is not set
1750# CONFIG_USB_EMI26 is not set 1924# CONFIG_USB_EMI26 is not set
1751# CONFIG_USB_ADUTUX is not set 1925# CONFIG_USB_ADUTUX is not set
1926# CONFIG_USB_SEVSEG is not set
1752# CONFIG_USB_RIO500 is not set 1927# CONFIG_USB_RIO500 is not set
1753# CONFIG_USB_LEGOTOWER is not set 1928# CONFIG_USB_LEGOTOWER is not set
1754# CONFIG_USB_LCD is not set 1929# CONFIG_USB_LCD is not set
@@ -1766,7 +1941,13 @@ CONFIG_USB_LIBUSUAL=y
1766# CONFIG_USB_IOWARRIOR is not set 1941# CONFIG_USB_IOWARRIOR is not set
1767# CONFIG_USB_TEST is not set 1942# CONFIG_USB_TEST is not set
1768# CONFIG_USB_ISIGHTFW is not set 1943# CONFIG_USB_ISIGHTFW is not set
1944# CONFIG_USB_VST is not set
1769# CONFIG_USB_GADGET is not set 1945# CONFIG_USB_GADGET is not set
1946
1947#
1948# OTG and related infrastructure
1949#
1950# CONFIG_UWB is not set
1770# CONFIG_MMC is not set 1951# CONFIG_MMC is not set
1771# CONFIG_MEMSTICK is not set 1952# CONFIG_MEMSTICK is not set
1772CONFIG_NEW_LEDS=y 1953CONFIG_NEW_LEDS=y
@@ -1775,6 +1956,7 @@ CONFIG_LEDS_CLASS=y
1775# 1956#
1776# LED drivers 1957# LED drivers
1777# 1958#
1959# CONFIG_LEDS_ALIX2 is not set
1778# CONFIG_LEDS_PCA9532 is not set 1960# CONFIG_LEDS_PCA9532 is not set
1779# CONFIG_LEDS_CLEVO_MAIL is not set 1961# CONFIG_LEDS_CLEVO_MAIL is not set
1780# CONFIG_LEDS_PCA955X is not set 1962# CONFIG_LEDS_PCA955X is not set
@@ -1785,6 +1967,7 @@ CONFIG_LEDS_CLASS=y
1785CONFIG_LEDS_TRIGGERS=y 1967CONFIG_LEDS_TRIGGERS=y
1786# CONFIG_LEDS_TRIGGER_TIMER is not set 1968# CONFIG_LEDS_TRIGGER_TIMER is not set
1787# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 1969# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1970# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1788# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 1971# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1789# CONFIG_ACCESSIBILITY is not set 1972# CONFIG_ACCESSIBILITY is not set
1790# CONFIG_INFINIBAND is not set 1973# CONFIG_INFINIBAND is not set
@@ -1824,6 +2007,7 @@ CONFIG_RTC_INTF_DEV=y
1824# CONFIG_RTC_DRV_M41T80 is not set 2007# CONFIG_RTC_DRV_M41T80 is not set
1825# CONFIG_RTC_DRV_S35390A is not set 2008# CONFIG_RTC_DRV_S35390A is not set
1826# CONFIG_RTC_DRV_FM3130 is not set 2009# CONFIG_RTC_DRV_FM3130 is not set
2010# CONFIG_RTC_DRV_RX8581 is not set
1827 2011
1828# 2012#
1829# SPI RTC drivers 2013# SPI RTC drivers
@@ -1833,12 +2017,15 @@ CONFIG_RTC_INTF_DEV=y
1833# Platform RTC drivers 2017# Platform RTC drivers
1834# 2018#
1835CONFIG_RTC_DRV_CMOS=y 2019CONFIG_RTC_DRV_CMOS=y
2020# CONFIG_RTC_DRV_DS1286 is not set
1836# CONFIG_RTC_DRV_DS1511 is not set 2021# CONFIG_RTC_DRV_DS1511 is not set
1837# CONFIG_RTC_DRV_DS1553 is not set 2022# CONFIG_RTC_DRV_DS1553 is not set
1838# CONFIG_RTC_DRV_DS1742 is not set 2023# CONFIG_RTC_DRV_DS1742 is not set
1839# CONFIG_RTC_DRV_STK17TA8 is not set 2024# CONFIG_RTC_DRV_STK17TA8 is not set
1840# CONFIG_RTC_DRV_M48T86 is not set 2025# CONFIG_RTC_DRV_M48T86 is not set
2026# CONFIG_RTC_DRV_M48T35 is not set
1841# CONFIG_RTC_DRV_M48T59 is not set 2027# CONFIG_RTC_DRV_M48T59 is not set
2028# CONFIG_RTC_DRV_BQ4802 is not set
1842# CONFIG_RTC_DRV_V3020 is not set 2029# CONFIG_RTC_DRV_V3020 is not set
1843 2030
1844# 2031#
@@ -1851,6 +2038,22 @@ CONFIG_DMADEVICES=y
1851# 2038#
1852# CONFIG_INTEL_IOATDMA is not set 2039# CONFIG_INTEL_IOATDMA is not set
1853# CONFIG_UIO is not set 2040# CONFIG_UIO is not set
2041# CONFIG_STAGING is not set
2042CONFIG_X86_PLATFORM_DEVICES=y
2043# CONFIG_ACER_WMI is not set
2044# CONFIG_ASUS_LAPTOP is not set
2045# CONFIG_FUJITSU_LAPTOP is not set
2046# CONFIG_TC1100_WMI is not set
2047# CONFIG_MSI_LAPTOP is not set
2048# CONFIG_PANASONIC_LAPTOP is not set
2049# CONFIG_COMPAL_LAPTOP is not set
2050# CONFIG_SONY_LAPTOP is not set
2051# CONFIG_THINKPAD_ACPI is not set
2052# CONFIG_INTEL_MENLOW is not set
2053CONFIG_EEEPC_LAPTOP=y
2054# CONFIG_ACPI_WMI is not set
2055# CONFIG_ACPI_ASUS is not set
2056# CONFIG_ACPI_TOSHIBA is not set
1854 2057
1855# 2058#
1856# Firmware Drivers 2059# Firmware Drivers
@@ -1861,8 +2064,7 @@ CONFIG_EFI_VARS=y
1861# CONFIG_DELL_RBU is not set 2064# CONFIG_DELL_RBU is not set
1862# CONFIG_DCDBAS is not set 2065# CONFIG_DCDBAS is not set
1863CONFIG_DMIID=y 2066CONFIG_DMIID=y
1864CONFIG_ISCSI_IBFT_FIND=y 2067# CONFIG_ISCSI_IBFT_FIND is not set
1865CONFIG_ISCSI_IBFT=y
1866 2068
1867# 2069#
1868# File systems 2070# File systems
@@ -1872,21 +2074,24 @@ CONFIG_EXT3_FS=y
1872CONFIG_EXT3_FS_XATTR=y 2074CONFIG_EXT3_FS_XATTR=y
1873CONFIG_EXT3_FS_POSIX_ACL=y 2075CONFIG_EXT3_FS_POSIX_ACL=y
1874CONFIG_EXT3_FS_SECURITY=y 2076CONFIG_EXT3_FS_SECURITY=y
1875# CONFIG_EXT4DEV_FS is not set 2077# CONFIG_EXT4_FS is not set
1876CONFIG_JBD=y 2078CONFIG_JBD=y
1877# CONFIG_JBD_DEBUG is not set 2079# CONFIG_JBD_DEBUG is not set
1878CONFIG_FS_MBCACHE=y 2080CONFIG_FS_MBCACHE=y
1879# CONFIG_REISERFS_FS is not set 2081# CONFIG_REISERFS_FS is not set
1880# CONFIG_JFS_FS is not set 2082# CONFIG_JFS_FS is not set
1881CONFIG_FS_POSIX_ACL=y 2083CONFIG_FS_POSIX_ACL=y
2084CONFIG_FILE_LOCKING=y
1882# CONFIG_XFS_FS is not set 2085# CONFIG_XFS_FS is not set
1883# CONFIG_OCFS2_FS is not set 2086# CONFIG_OCFS2_FS is not set
2087# CONFIG_BTRFS_FS is not set
1884CONFIG_DNOTIFY=y 2088CONFIG_DNOTIFY=y
1885CONFIG_INOTIFY=y 2089CONFIG_INOTIFY=y
1886CONFIG_INOTIFY_USER=y 2090CONFIG_INOTIFY_USER=y
1887CONFIG_QUOTA=y 2091CONFIG_QUOTA=y
1888CONFIG_QUOTA_NETLINK_INTERFACE=y 2092CONFIG_QUOTA_NETLINK_INTERFACE=y
1889# CONFIG_PRINT_QUOTA_WARNING is not set 2093# CONFIG_PRINT_QUOTA_WARNING is not set
2094CONFIG_QUOTA_TREE=y
1890# CONFIG_QFMT_V1 is not set 2095# CONFIG_QFMT_V1 is not set
1891CONFIG_QFMT_V2=y 2096CONFIG_QFMT_V2=y
1892CONFIG_QUOTACTL=y 2097CONFIG_QUOTACTL=y
@@ -1920,16 +2125,14 @@ CONFIG_PROC_FS=y
1920CONFIG_PROC_KCORE=y 2125CONFIG_PROC_KCORE=y
1921CONFIG_PROC_VMCORE=y 2126CONFIG_PROC_VMCORE=y
1922CONFIG_PROC_SYSCTL=y 2127CONFIG_PROC_SYSCTL=y
2128CONFIG_PROC_PAGE_MONITOR=y
1923CONFIG_SYSFS=y 2129CONFIG_SYSFS=y
1924CONFIG_TMPFS=y 2130CONFIG_TMPFS=y
1925CONFIG_TMPFS_POSIX_ACL=y 2131CONFIG_TMPFS_POSIX_ACL=y
1926CONFIG_HUGETLBFS=y 2132CONFIG_HUGETLBFS=y
1927CONFIG_HUGETLB_PAGE=y 2133CONFIG_HUGETLB_PAGE=y
1928# CONFIG_CONFIGFS_FS is not set 2134# CONFIG_CONFIGFS_FS is not set
1929 2135CONFIG_MISC_FILESYSTEMS=y
1930#
1931# Miscellaneous filesystems
1932#
1933# CONFIG_ADFS_FS is not set 2136# CONFIG_ADFS_FS is not set
1934# CONFIG_AFFS_FS is not set 2137# CONFIG_AFFS_FS is not set
1935# CONFIG_ECRYPT_FS is not set 2138# CONFIG_ECRYPT_FS is not set
@@ -1939,6 +2142,7 @@ CONFIG_HUGETLB_PAGE=y
1939# CONFIG_BFS_FS is not set 2142# CONFIG_BFS_FS is not set
1940# CONFIG_EFS_FS is not set 2143# CONFIG_EFS_FS is not set
1941# CONFIG_CRAMFS is not set 2144# CONFIG_CRAMFS is not set
2145# CONFIG_SQUASHFS is not set
1942# CONFIG_VXFS_FS is not set 2146# CONFIG_VXFS_FS is not set
1943# CONFIG_MINIX_FS is not set 2147# CONFIG_MINIX_FS is not set
1944# CONFIG_OMFS_FS is not set 2148# CONFIG_OMFS_FS is not set
@@ -1960,6 +2164,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1960CONFIG_NFS_COMMON=y 2164CONFIG_NFS_COMMON=y
1961CONFIG_SUNRPC=y 2165CONFIG_SUNRPC=y
1962CONFIG_SUNRPC_GSS=y 2166CONFIG_SUNRPC_GSS=y
2167# CONFIG_SUNRPC_REGISTER_V4 is not set
1963CONFIG_RPCSEC_GSS_KRB5=y 2168CONFIG_RPCSEC_GSS_KRB5=y
1964# CONFIG_RPCSEC_GSS_SPKM3 is not set 2169# CONFIG_RPCSEC_GSS_SPKM3 is not set
1965# CONFIG_SMB_FS is not set 2170# CONFIG_SMB_FS is not set
@@ -2036,7 +2241,7 @@ CONFIG_NLS_UTF8=y
2036# 2241#
2037CONFIG_TRACE_IRQFLAGS_SUPPORT=y 2242CONFIG_TRACE_IRQFLAGS_SUPPORT=y
2038CONFIG_PRINTK_TIME=y 2243CONFIG_PRINTK_TIME=y
2039CONFIG_ENABLE_WARN_DEPRECATED=y 2244# CONFIG_ENABLE_WARN_DEPRECATED is not set
2040CONFIG_ENABLE_MUST_CHECK=y 2245CONFIG_ENABLE_MUST_CHECK=y
2041CONFIG_FRAME_WARN=2048 2246CONFIG_FRAME_WARN=2048
2042CONFIG_MAGIC_SYSRQ=y 2247CONFIG_MAGIC_SYSRQ=y
@@ -2066,33 +2271,54 @@ CONFIG_TIMER_STATS=y
2066CONFIG_DEBUG_BUGVERBOSE=y 2271CONFIG_DEBUG_BUGVERBOSE=y
2067# CONFIG_DEBUG_INFO is not set 2272# CONFIG_DEBUG_INFO is not set
2068# CONFIG_DEBUG_VM is not set 2273# CONFIG_DEBUG_VM is not set
2274# CONFIG_DEBUG_VIRTUAL is not set
2069# CONFIG_DEBUG_WRITECOUNT is not set 2275# CONFIG_DEBUG_WRITECOUNT is not set
2070CONFIG_DEBUG_MEMORY_INIT=y 2276CONFIG_DEBUG_MEMORY_INIT=y
2071# CONFIG_DEBUG_LIST is not set 2277# CONFIG_DEBUG_LIST is not set
2072# CONFIG_DEBUG_SG is not set 2278# CONFIG_DEBUG_SG is not set
2279# CONFIG_DEBUG_NOTIFIERS is not set
2280CONFIG_ARCH_WANT_FRAME_POINTERS=y
2073CONFIG_FRAME_POINTER=y 2281CONFIG_FRAME_POINTER=y
2074# CONFIG_BOOT_PRINTK_DELAY is not set 2282# CONFIG_BOOT_PRINTK_DELAY is not set
2075# CONFIG_RCU_TORTURE_TEST is not set 2283# CONFIG_RCU_TORTURE_TEST is not set
2284# CONFIG_RCU_CPU_STALL_DETECTOR is not set
2076# CONFIG_KPROBES_SANITY_TEST is not set 2285# CONFIG_KPROBES_SANITY_TEST is not set
2077# CONFIG_BACKTRACE_SELF_TEST is not set 2286# CONFIG_BACKTRACE_SELF_TEST is not set
2287# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
2078# CONFIG_LKDTM is not set 2288# CONFIG_LKDTM is not set
2079# CONFIG_FAULT_INJECTION is not set 2289# CONFIG_FAULT_INJECTION is not set
2080# CONFIG_LATENCYTOP is not set 2290# CONFIG_LATENCYTOP is not set
2081CONFIG_SYSCTL_SYSCALL_CHECK=y 2291CONFIG_SYSCTL_SYSCALL_CHECK=y
2082CONFIG_HAVE_FTRACE=y 2292CONFIG_USER_STACKTRACE_SUPPORT=y
2293CONFIG_HAVE_FUNCTION_TRACER=y
2294CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2295CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
2083CONFIG_HAVE_DYNAMIC_FTRACE=y 2296CONFIG_HAVE_DYNAMIC_FTRACE=y
2084# CONFIG_FTRACE is not set 2297CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2298CONFIG_HAVE_HW_BRANCH_TRACER=y
2299
2300#
2301# Tracers
2302#
2303# CONFIG_FUNCTION_TRACER is not set
2085# CONFIG_IRQSOFF_TRACER is not set 2304# CONFIG_IRQSOFF_TRACER is not set
2086# CONFIG_SYSPROF_TRACER is not set 2305# CONFIG_SYSPROF_TRACER is not set
2087# CONFIG_SCHED_TRACER is not set 2306# CONFIG_SCHED_TRACER is not set
2088# CONFIG_CONTEXT_SWITCH_TRACER is not set 2307# CONFIG_CONTEXT_SWITCH_TRACER is not set
2308# CONFIG_BOOT_TRACER is not set
2309# CONFIG_TRACE_BRANCH_PROFILING is not set
2310# CONFIG_POWER_TRACER is not set
2311# CONFIG_STACK_TRACER is not set
2312# CONFIG_HW_BRANCH_TRACER is not set
2089CONFIG_PROVIDE_OHCI1394_DMA_INIT=y 2313CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
2314# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
2090# CONFIG_SAMPLES is not set 2315# CONFIG_SAMPLES is not set
2091CONFIG_HAVE_ARCH_KGDB=y 2316CONFIG_HAVE_ARCH_KGDB=y
2092# CONFIG_KGDB is not set 2317# CONFIG_KGDB is not set
2093# CONFIG_STRICT_DEVMEM is not set 2318# CONFIG_STRICT_DEVMEM is not set
2094CONFIG_X86_VERBOSE_BOOTUP=y 2319CONFIG_X86_VERBOSE_BOOTUP=y
2095CONFIG_EARLY_PRINTK=y 2320CONFIG_EARLY_PRINTK=y
2321CONFIG_EARLY_PRINTK_DBGP=y
2096CONFIG_DEBUG_STACKOVERFLOW=y 2322CONFIG_DEBUG_STACKOVERFLOW=y
2097CONFIG_DEBUG_STACK_USAGE=y 2323CONFIG_DEBUG_STACK_USAGE=y
2098# CONFIG_DEBUG_PAGEALLOC is not set 2324# CONFIG_DEBUG_PAGEALLOC is not set
@@ -2123,8 +2349,10 @@ CONFIG_OPTIMIZE_INLINING=y
2123CONFIG_KEYS=y 2349CONFIG_KEYS=y
2124CONFIG_KEYS_DEBUG_PROC_KEYS=y 2350CONFIG_KEYS_DEBUG_PROC_KEYS=y
2125CONFIG_SECURITY=y 2351CONFIG_SECURITY=y
2352# CONFIG_SECURITYFS is not set
2126CONFIG_SECURITY_NETWORK=y 2353CONFIG_SECURITY_NETWORK=y
2127# CONFIG_SECURITY_NETWORK_XFRM is not set 2354# CONFIG_SECURITY_NETWORK_XFRM is not set
2355# CONFIG_SECURITY_PATH is not set
2128CONFIG_SECURITY_FILE_CAPABILITIES=y 2356CONFIG_SECURITY_FILE_CAPABILITIES=y
2129# CONFIG_SECURITY_ROOTPLUG is not set 2357# CONFIG_SECURITY_ROOTPLUG is not set
2130CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 2358CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
@@ -2135,7 +2363,6 @@ CONFIG_SECURITY_SELINUX_DISABLE=y
2135CONFIG_SECURITY_SELINUX_DEVELOP=y 2363CONFIG_SECURITY_SELINUX_DEVELOP=y
2136CONFIG_SECURITY_SELINUX_AVC_STATS=y 2364CONFIG_SECURITY_SELINUX_AVC_STATS=y
2137CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 2365CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
2138# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
2139# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set 2366# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
2140# CONFIG_SECURITY_SMACK is not set 2367# CONFIG_SECURITY_SMACK is not set
2141CONFIG_CRYPTO=y 2368CONFIG_CRYPTO=y
@@ -2143,11 +2370,18 @@ CONFIG_CRYPTO=y
2143# 2370#
2144# Crypto core or helper 2371# Crypto core or helper
2145# 2372#
2373# CONFIG_CRYPTO_FIPS is not set
2146CONFIG_CRYPTO_ALGAPI=y 2374CONFIG_CRYPTO_ALGAPI=y
2375CONFIG_CRYPTO_ALGAPI2=y
2147CONFIG_CRYPTO_AEAD=y 2376CONFIG_CRYPTO_AEAD=y
2377CONFIG_CRYPTO_AEAD2=y
2148CONFIG_CRYPTO_BLKCIPHER=y 2378CONFIG_CRYPTO_BLKCIPHER=y
2379CONFIG_CRYPTO_BLKCIPHER2=y
2149CONFIG_CRYPTO_HASH=y 2380CONFIG_CRYPTO_HASH=y
2381CONFIG_CRYPTO_HASH2=y
2382CONFIG_CRYPTO_RNG2=y
2150CONFIG_CRYPTO_MANAGER=y 2383CONFIG_CRYPTO_MANAGER=y
2384CONFIG_CRYPTO_MANAGER2=y
2151# CONFIG_CRYPTO_GF128MUL is not set 2385# CONFIG_CRYPTO_GF128MUL is not set
2152# CONFIG_CRYPTO_NULL is not set 2386# CONFIG_CRYPTO_NULL is not set
2153# CONFIG_CRYPTO_CRYPTD is not set 2387# CONFIG_CRYPTO_CRYPTD is not set
@@ -2182,6 +2416,7 @@ CONFIG_CRYPTO_HMAC=y
2182# Digest 2416# Digest
2183# 2417#
2184# CONFIG_CRYPTO_CRC32C is not set 2418# CONFIG_CRYPTO_CRC32C is not set
2419# CONFIG_CRYPTO_CRC32C_INTEL is not set
2185# CONFIG_CRYPTO_MD4 is not set 2420# CONFIG_CRYPTO_MD4 is not set
2186CONFIG_CRYPTO_MD5=y 2421CONFIG_CRYPTO_MD5=y
2187# CONFIG_CRYPTO_MICHAEL_MIC is not set 2422# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -2222,6 +2457,11 @@ CONFIG_CRYPTO_DES=y
2222# 2457#
2223# CONFIG_CRYPTO_DEFLATE is not set 2458# CONFIG_CRYPTO_DEFLATE is not set
2224# CONFIG_CRYPTO_LZO is not set 2459# CONFIG_CRYPTO_LZO is not set
2460
2461#
2462# Random Number Generation
2463#
2464# CONFIG_CRYPTO_ANSI_CPRNG is not set
2225CONFIG_CRYPTO_HW=y 2465CONFIG_CRYPTO_HW=y
2226# CONFIG_CRYPTO_DEV_PADLOCK is not set 2466# CONFIG_CRYPTO_DEV_PADLOCK is not set
2227# CONFIG_CRYPTO_DEV_GEODE is not set 2467# CONFIG_CRYPTO_DEV_GEODE is not set
@@ -2239,6 +2479,7 @@ CONFIG_VIRTUALIZATION=y
2239CONFIG_BITREVERSE=y 2479CONFIG_BITREVERSE=y
2240CONFIG_GENERIC_FIND_FIRST_BIT=y 2480CONFIG_GENERIC_FIND_FIRST_BIT=y
2241CONFIG_GENERIC_FIND_NEXT_BIT=y 2481CONFIG_GENERIC_FIND_NEXT_BIT=y
2482CONFIG_GENERIC_FIND_LAST_BIT=y
2242# CONFIG_CRC_CCITT is not set 2483# CONFIG_CRC_CCITT is not set
2243# CONFIG_CRC16 is not set 2484# CONFIG_CRC16 is not set
2244CONFIG_CRC_T10DIF=y 2485CONFIG_CRC_T10DIF=y
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index 0e7dbc0a3e46..9fe5d212ab4c 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -1,14 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc5 3# Linux kernel version: 2.6.29-rc4
4# Wed Sep 3 17:13:39 2008 4# Tue Feb 24 15:44:16 2009
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7# CONFIG_X86_32 is not set 7# CONFIG_X86_32 is not set
8CONFIG_X86_64=y 8CONFIG_X86_64=y
9CONFIG_X86=y 9CONFIG_X86=y
10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
11# CONFIG_GENERIC_LOCKBREAK is not set
12CONFIG_GENERIC_TIME=y 11CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 12CONFIG_GENERIC_CMOS_UPDATE=y
14CONFIG_CLOCKSOURCE_WATCHDOG=y 13CONFIG_CLOCKSOURCE_WATCHDOG=y
@@ -23,17 +22,16 @@ CONFIG_ZONE_DMA=y
23CONFIG_GENERIC_ISA_DMA=y 22CONFIG_GENERIC_ISA_DMA=y
24CONFIG_GENERIC_IOMAP=y 23CONFIG_GENERIC_IOMAP=y
25CONFIG_GENERIC_BUG=y 24CONFIG_GENERIC_BUG=y
25CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
26CONFIG_GENERIC_HWEIGHT=y 26CONFIG_GENERIC_HWEIGHT=y
27# CONFIG_GENERIC_GPIO is not set
28CONFIG_ARCH_MAY_HAVE_PC_FDC=y 27CONFIG_ARCH_MAY_HAVE_PC_FDC=y
29CONFIG_RWSEM_GENERIC_SPINLOCK=y 28CONFIG_RWSEM_GENERIC_SPINLOCK=y
30# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 29# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
31# CONFIG_ARCH_HAS_ILOG2_U32 is not set
32# CONFIG_ARCH_HAS_ILOG2_U64 is not set
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 30CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_GENERIC_CALIBRATE_DELAY=y 31CONFIG_GENERIC_CALIBRATE_DELAY=y
35CONFIG_GENERIC_TIME_VSYSCALL=y 32CONFIG_GENERIC_TIME_VSYSCALL=y
36CONFIG_ARCH_HAS_CPU_RELAX=y 33CONFIG_ARCH_HAS_CPU_RELAX=y
34CONFIG_ARCH_HAS_DEFAULT_IDLE=y
37CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 35CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
38CONFIG_HAVE_SETUP_PER_CPU_AREA=y 36CONFIG_HAVE_SETUP_PER_CPU_AREA=y
39CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y 37CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
@@ -42,12 +40,12 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
42CONFIG_ZONE_DMA32=y 40CONFIG_ZONE_DMA32=y
43CONFIG_ARCH_POPULATES_NODE_MAP=y 41CONFIG_ARCH_POPULATES_NODE_MAP=y
44CONFIG_AUDIT_ARCH=y 42CONFIG_AUDIT_ARCH=y
45CONFIG_ARCH_SUPPORTS_AOUT=y
46CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y 43CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
47CONFIG_GENERIC_HARDIRQS=y 44CONFIG_GENERIC_HARDIRQS=y
48CONFIG_GENERIC_IRQ_PROBE=y 45CONFIG_GENERIC_IRQ_PROBE=y
49CONFIG_GENERIC_PENDING_IRQ=y 46CONFIG_GENERIC_PENDING_IRQ=y
50CONFIG_X86_SMP=y 47CONFIG_X86_SMP=y
48CONFIG_USE_GENERIC_SMP_HELPERS=y
51CONFIG_X86_64_SMP=y 49CONFIG_X86_64_SMP=y
52CONFIG_X86_HT=y 50CONFIG_X86_HT=y
53CONFIG_X86_BIOS_REBOOT=y 51CONFIG_X86_BIOS_REBOOT=y
@@ -76,30 +74,44 @@ CONFIG_TASK_IO_ACCOUNTING=y
76CONFIG_AUDIT=y 74CONFIG_AUDIT=y
77CONFIG_AUDITSYSCALL=y 75CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 76CONFIG_AUDIT_TREE=y
77
78#
79# RCU Subsystem
80#
81# CONFIG_CLASSIC_RCU is not set
82CONFIG_TREE_RCU=y
83# CONFIG_PREEMPT_RCU is not set
84# CONFIG_RCU_TRACE is not set
85CONFIG_RCU_FANOUT=64
86# CONFIG_RCU_FANOUT_EXACT is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=18 90CONFIG_LOG_BUF_SHIFT=18
81CONFIG_CGROUPS=y
82# CONFIG_CGROUP_DEBUG is not set
83CONFIG_CGROUP_NS=y
84# CONFIG_CGROUP_DEVICE is not set
85CONFIG_CPUSETS=y
86CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y 91CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
87CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
88CONFIG_FAIR_GROUP_SCHED=y 93CONFIG_FAIR_GROUP_SCHED=y
89# CONFIG_RT_GROUP_SCHED is not set 94# CONFIG_RT_GROUP_SCHED is not set
90# CONFIG_USER_SCHED is not set 95# CONFIG_USER_SCHED is not set
91CONFIG_CGROUP_SCHED=y 96CONFIG_CGROUP_SCHED=y
97CONFIG_CGROUPS=y
98# CONFIG_CGROUP_DEBUG is not set
99CONFIG_CGROUP_NS=y
100CONFIG_CGROUP_FREEZER=y
101# CONFIG_CGROUP_DEVICE is not set
102CONFIG_CPUSETS=y
103CONFIG_PROC_PID_CPUSET=y
92CONFIG_CGROUP_CPUACCT=y 104CONFIG_CGROUP_CPUACCT=y
93CONFIG_RESOURCE_COUNTERS=y 105CONFIG_RESOURCE_COUNTERS=y
94# CONFIG_CGROUP_MEM_RES_CTLR is not set 106# CONFIG_CGROUP_MEM_RES_CTLR is not set
95# CONFIG_SYSFS_DEPRECATED_V2 is not set 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
96CONFIG_PROC_PID_CPUSET=y
97CONFIG_RELAY=y 108CONFIG_RELAY=y
98CONFIG_NAMESPACES=y 109CONFIG_NAMESPACES=y
99CONFIG_UTS_NS=y 110CONFIG_UTS_NS=y
100CONFIG_IPC_NS=y 111CONFIG_IPC_NS=y
101CONFIG_USER_NS=y 112CONFIG_USER_NS=y
102CONFIG_PID_NS=y 113CONFIG_PID_NS=y
114CONFIG_NET_NS=y
103CONFIG_BLK_DEV_INITRD=y 115CONFIG_BLK_DEV_INITRD=y
104CONFIG_INITRAMFS_SOURCE="" 116CONFIG_INITRAMFS_SOURCE=""
105CONFIG_CC_OPTIMIZE_FOR_SIZE=y 117CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -124,12 +136,15 @@ CONFIG_SIGNALFD=y
124CONFIG_TIMERFD=y 136CONFIG_TIMERFD=y
125CONFIG_EVENTFD=y 137CONFIG_EVENTFD=y
126CONFIG_SHMEM=y 138CONFIG_SHMEM=y
139CONFIG_AIO=y
127CONFIG_VM_EVENT_COUNTERS=y 140CONFIG_VM_EVENT_COUNTERS=y
141CONFIG_PCI_QUIRKS=y
128CONFIG_SLUB_DEBUG=y 142CONFIG_SLUB_DEBUG=y
129# CONFIG_SLAB is not set 143# CONFIG_SLAB is not set
130CONFIG_SLUB=y 144CONFIG_SLUB=y
131# CONFIG_SLOB is not set 145# CONFIG_SLOB is not set
132CONFIG_PROFILING=y 146CONFIG_PROFILING=y
147CONFIG_TRACEPOINTS=y
133CONFIG_MARKERS=y 148CONFIG_MARKERS=y
134# CONFIG_OPROFILE is not set 149# CONFIG_OPROFILE is not set
135CONFIG_HAVE_OPROFILE=y 150CONFIG_HAVE_OPROFILE=y
@@ -139,15 +154,10 @@ CONFIG_KRETPROBES=y
139CONFIG_HAVE_IOREMAP_PROT=y 154CONFIG_HAVE_IOREMAP_PROT=y
140CONFIG_HAVE_KPROBES=y 155CONFIG_HAVE_KPROBES=y
141CONFIG_HAVE_KRETPROBES=y 156CONFIG_HAVE_KRETPROBES=y
142# CONFIG_HAVE_ARCH_TRACEHOOK is not set 157CONFIG_HAVE_ARCH_TRACEHOOK=y
143# CONFIG_HAVE_DMA_ATTRS is not set
144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_HAVE_CLK is not set
146CONFIG_PROC_PAGE_MONITOR=y
147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 158# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
148CONFIG_SLABINFO=y 159CONFIG_SLABINFO=y
149CONFIG_RT_MUTEXES=y 160CONFIG_RT_MUTEXES=y
150# CONFIG_TINY_SHMEM is not set
151CONFIG_BASE_SMALL=0 161CONFIG_BASE_SMALL=0
152CONFIG_MODULES=y 162CONFIG_MODULES=y
153# CONFIG_MODULE_FORCE_LOAD is not set 163# CONFIG_MODULE_FORCE_LOAD is not set
@@ -155,7 +165,6 @@ CONFIG_MODULE_UNLOAD=y
155CONFIG_MODULE_FORCE_UNLOAD=y 165CONFIG_MODULE_FORCE_UNLOAD=y
156# CONFIG_MODVERSIONS is not set 166# CONFIG_MODVERSIONS is not set
157# CONFIG_MODULE_SRCVERSION_ALL is not set 167# CONFIG_MODULE_SRCVERSION_ALL is not set
158CONFIG_KMOD=y
159CONFIG_STOP_MACHINE=y 168CONFIG_STOP_MACHINE=y
160CONFIG_BLOCK=y 169CONFIG_BLOCK=y
161CONFIG_BLK_DEV_IO_TRACE=y 170CONFIG_BLK_DEV_IO_TRACE=y
@@ -175,7 +184,7 @@ CONFIG_IOSCHED_CFQ=y
175CONFIG_DEFAULT_CFQ=y 184CONFIG_DEFAULT_CFQ=y
176# CONFIG_DEFAULT_NOOP is not set 185# CONFIG_DEFAULT_NOOP is not set
177CONFIG_DEFAULT_IOSCHED="cfq" 186CONFIG_DEFAULT_IOSCHED="cfq"
178CONFIG_CLASSIC_RCU=y 187CONFIG_FREEZER=y
179 188
180# 189#
181# Processor type and features 190# Processor type and features
@@ -185,13 +194,14 @@ CONFIG_NO_HZ=y
185CONFIG_HIGH_RES_TIMERS=y 194CONFIG_HIGH_RES_TIMERS=y
186CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
187CONFIG_SMP=y 196CONFIG_SMP=y
197CONFIG_SPARSE_IRQ=y
198# CONFIG_NUMA_MIGRATE_IRQ_DESC is not set
188CONFIG_X86_FIND_SMP_CONFIG=y 199CONFIG_X86_FIND_SMP_CONFIG=y
189CONFIG_X86_MPPARSE=y 200CONFIG_X86_MPPARSE=y
190CONFIG_X86_PC=y
191# CONFIG_X86_ELAN is not set 201# CONFIG_X86_ELAN is not set
192# CONFIG_X86_VOYAGER is not set
193# CONFIG_X86_GENERICARCH is not set 202# CONFIG_X86_GENERICARCH is not set
194# CONFIG_X86_VSMP is not set 203# CONFIG_X86_VSMP is not set
204CONFIG_SCHED_OMIT_FRAME_POINTER=y
195# CONFIG_PARAVIRT_GUEST is not set 205# CONFIG_PARAVIRT_GUEST is not set
196# CONFIG_MEMTEST is not set 206# CONFIG_MEMTEST is not set
197# CONFIG_M386 is not set 207# CONFIG_M386 is not set
@@ -230,6 +240,11 @@ CONFIG_X86_CMPXCHG64=y
230CONFIG_X86_CMOV=y 240CONFIG_X86_CMOV=y
231CONFIG_X86_MINIMUM_CPU_FAMILY=64 241CONFIG_X86_MINIMUM_CPU_FAMILY=64
232CONFIG_X86_DEBUGCTLMSR=y 242CONFIG_X86_DEBUGCTLMSR=y
243CONFIG_CPU_SUP_INTEL=y
244CONFIG_CPU_SUP_AMD=y
245CONFIG_CPU_SUP_CENTAUR_64=y
246CONFIG_X86_DS=y
247CONFIG_X86_PTRACE_BTS=y
233CONFIG_HPET_TIMER=y 248CONFIG_HPET_TIMER=y
234CONFIG_HPET_EMULATE_RTC=y 249CONFIG_HPET_EMULATE_RTC=y
235CONFIG_DMI=y 250CONFIG_DMI=y
@@ -237,8 +252,11 @@ CONFIG_GART_IOMMU=y
237CONFIG_CALGARY_IOMMU=y 252CONFIG_CALGARY_IOMMU=y
238CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y 253CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
239CONFIG_AMD_IOMMU=y 254CONFIG_AMD_IOMMU=y
255CONFIG_AMD_IOMMU_STATS=y
240CONFIG_SWIOTLB=y 256CONFIG_SWIOTLB=y
241CONFIG_IOMMU_HELPER=y 257CONFIG_IOMMU_HELPER=y
258CONFIG_IOMMU_API=y
259# CONFIG_MAXSMP is not set
242CONFIG_NR_CPUS=64 260CONFIG_NR_CPUS=64
243CONFIG_SCHED_SMT=y 261CONFIG_SCHED_SMT=y
244CONFIG_SCHED_MC=y 262CONFIG_SCHED_MC=y
@@ -247,12 +265,19 @@ CONFIG_PREEMPT_VOLUNTARY=y
247# CONFIG_PREEMPT is not set 265# CONFIG_PREEMPT is not set
248CONFIG_X86_LOCAL_APIC=y 266CONFIG_X86_LOCAL_APIC=y
249CONFIG_X86_IO_APIC=y 267CONFIG_X86_IO_APIC=y
250# CONFIG_X86_MCE is not set 268CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
269CONFIG_X86_MCE=y
270CONFIG_X86_MCE_INTEL=y
271CONFIG_X86_MCE_AMD=y
251# CONFIG_I8K is not set 272# CONFIG_I8K is not set
252CONFIG_MICROCODE=y 273CONFIG_MICROCODE=y
274CONFIG_MICROCODE_INTEL=y
275CONFIG_MICROCODE_AMD=y
253CONFIG_MICROCODE_OLD_INTERFACE=y 276CONFIG_MICROCODE_OLD_INTERFACE=y
254CONFIG_X86_MSR=y 277CONFIG_X86_MSR=y
255CONFIG_X86_CPUID=y 278CONFIG_X86_CPUID=y
279CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
280CONFIG_DIRECT_GBPAGES=y
256CONFIG_NUMA=y 281CONFIG_NUMA=y
257CONFIG_K8_NUMA=y 282CONFIG_K8_NUMA=y
258CONFIG_X86_64_ACPI_NUMA=y 283CONFIG_X86_64_ACPI_NUMA=y
@@ -269,7 +294,6 @@ CONFIG_SPARSEMEM_MANUAL=y
269CONFIG_SPARSEMEM=y 294CONFIG_SPARSEMEM=y
270CONFIG_NEED_MULTIPLE_NODES=y 295CONFIG_NEED_MULTIPLE_NODES=y
271CONFIG_HAVE_MEMORY_PRESENT=y 296CONFIG_HAVE_MEMORY_PRESENT=y
272# CONFIG_SPARSEMEM_STATIC is not set
273CONFIG_SPARSEMEM_EXTREME=y 297CONFIG_SPARSEMEM_EXTREME=y
274CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 298CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
275CONFIG_SPARSEMEM_VMEMMAP=y 299CONFIG_SPARSEMEM_VMEMMAP=y
@@ -280,10 +304,14 @@ CONFIG_SPARSEMEM_VMEMMAP=y
280CONFIG_PAGEFLAGS_EXTENDED=y 304CONFIG_PAGEFLAGS_EXTENDED=y
281CONFIG_SPLIT_PTLOCK_CPUS=4 305CONFIG_SPLIT_PTLOCK_CPUS=4
282CONFIG_MIGRATION=y 306CONFIG_MIGRATION=y
283CONFIG_RESOURCES_64BIT=y 307CONFIG_PHYS_ADDR_T_64BIT=y
284CONFIG_ZONE_DMA_FLAG=1 308CONFIG_ZONE_DMA_FLAG=1
285CONFIG_BOUNCE=y 309CONFIG_BOUNCE=y
286CONFIG_VIRT_TO_BUS=y 310CONFIG_VIRT_TO_BUS=y
311CONFIG_UNEVICTABLE_LRU=y
312CONFIG_X86_CHECK_BIOS_CORRUPTION=y
313CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
314CONFIG_X86_RESERVE_LOW_64K=y
287CONFIG_MTRR=y 315CONFIG_MTRR=y
288# CONFIG_MTRR_SANITIZER is not set 316# CONFIG_MTRR_SANITIZER is not set
289CONFIG_X86_PAT=y 317CONFIG_X86_PAT=y
@@ -302,11 +330,12 @@ CONFIG_PHYSICAL_START=0x1000000
302CONFIG_PHYSICAL_ALIGN=0x200000 330CONFIG_PHYSICAL_ALIGN=0x200000
303CONFIG_HOTPLUG_CPU=y 331CONFIG_HOTPLUG_CPU=y
304# CONFIG_COMPAT_VDSO is not set 332# CONFIG_COMPAT_VDSO is not set
333# CONFIG_CMDLINE_BOOL is not set
305CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 334CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
306CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y 335CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
307 336
308# 337#
309# Power management options 338# Power management and ACPI options
310# 339#
311CONFIG_ARCH_HIBERNATION_HEADER=y 340CONFIG_ARCH_HIBERNATION_HEADER=y
312CONFIG_PM=y 341CONFIG_PM=y
@@ -333,20 +362,14 @@ CONFIG_ACPI_BATTERY=y
333CONFIG_ACPI_BUTTON=y 362CONFIG_ACPI_BUTTON=y
334CONFIG_ACPI_FAN=y 363CONFIG_ACPI_FAN=y
335CONFIG_ACPI_DOCK=y 364CONFIG_ACPI_DOCK=y
336# CONFIG_ACPI_BAY is not set
337CONFIG_ACPI_PROCESSOR=y 365CONFIG_ACPI_PROCESSOR=y
338CONFIG_ACPI_HOTPLUG_CPU=y 366CONFIG_ACPI_HOTPLUG_CPU=y
339CONFIG_ACPI_THERMAL=y 367CONFIG_ACPI_THERMAL=y
340CONFIG_ACPI_NUMA=y 368CONFIG_ACPI_NUMA=y
341# CONFIG_ACPI_WMI is not set
342# CONFIG_ACPI_ASUS is not set
343# CONFIG_ACPI_TOSHIBA is not set
344# CONFIG_ACPI_CUSTOM_DSDT is not set 369# CONFIG_ACPI_CUSTOM_DSDT is not set
345CONFIG_ACPI_BLACKLIST_YEAR=0 370CONFIG_ACPI_BLACKLIST_YEAR=0
346# CONFIG_ACPI_DEBUG is not set 371# CONFIG_ACPI_DEBUG is not set
347CONFIG_ACPI_EC=y
348# CONFIG_ACPI_PCI_SLOT is not set 372# CONFIG_ACPI_PCI_SLOT is not set
349CONFIG_ACPI_POWER=y
350CONFIG_ACPI_SYSTEM=y 373CONFIG_ACPI_SYSTEM=y
351CONFIG_X86_PM_TIMER=y 374CONFIG_X86_PM_TIMER=y
352CONFIG_ACPI_CONTAINER=y 375CONFIG_ACPI_CONTAINER=y
@@ -381,13 +404,17 @@ CONFIG_X86_ACPI_CPUFREQ=y
381# 404#
382# shared options 405# shared options
383# 406#
384# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
385# CONFIG_X86_SPEEDSTEP_LIB is not set 407# CONFIG_X86_SPEEDSTEP_LIB is not set
386CONFIG_CPU_IDLE=y 408CONFIG_CPU_IDLE=y
387CONFIG_CPU_IDLE_GOV_LADDER=y 409CONFIG_CPU_IDLE_GOV_LADDER=y
388CONFIG_CPU_IDLE_GOV_MENU=y 410CONFIG_CPU_IDLE_GOV_MENU=y
389 411
390# 412#
413# Memory power savings
414#
415# CONFIG_I7300_IDLE is not set
416
417#
391# Bus options (PCI etc.) 418# Bus options (PCI etc.)
392# 419#
393CONFIG_PCI=y 420CONFIG_PCI=y
@@ -395,8 +422,10 @@ CONFIG_PCI_DIRECT=y
395CONFIG_PCI_MMCONFIG=y 422CONFIG_PCI_MMCONFIG=y
396CONFIG_PCI_DOMAINS=y 423CONFIG_PCI_DOMAINS=y
397CONFIG_DMAR=y 424CONFIG_DMAR=y
425# CONFIG_DMAR_DEFAULT_ON is not set
398CONFIG_DMAR_GFX_WA=y 426CONFIG_DMAR_GFX_WA=y
399CONFIG_DMAR_FLOPPY_WA=y 427CONFIG_DMAR_FLOPPY_WA=y
428# CONFIG_INTR_REMAP is not set
400CONFIG_PCIEPORTBUS=y 429CONFIG_PCIEPORTBUS=y
401# CONFIG_HOTPLUG_PCI_PCIE is not set 430# CONFIG_HOTPLUG_PCI_PCIE is not set
402CONFIG_PCIEAER=y 431CONFIG_PCIEAER=y
@@ -405,6 +434,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
405CONFIG_PCI_MSI=y 434CONFIG_PCI_MSI=y
406# CONFIG_PCI_LEGACY is not set 435# CONFIG_PCI_LEGACY is not set
407# CONFIG_PCI_DEBUG is not set 436# CONFIG_PCI_DEBUG is not set
437# CONFIG_PCI_STUB is not set
408CONFIG_HT_IRQ=y 438CONFIG_HT_IRQ=y
409CONFIG_ISA_DMA_API=y 439CONFIG_ISA_DMA_API=y
410CONFIG_K8_NB=y 440CONFIG_K8_NB=y
@@ -438,6 +468,8 @@ CONFIG_HOTPLUG_PCI=y
438# 468#
439CONFIG_BINFMT_ELF=y 469CONFIG_BINFMT_ELF=y
440CONFIG_COMPAT_BINFMT_ELF=y 470CONFIG_COMPAT_BINFMT_ELF=y
471CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
472# CONFIG_HAVE_AOUT is not set
441CONFIG_BINFMT_MISC=y 473CONFIG_BINFMT_MISC=y
442CONFIG_IA32_EMULATION=y 474CONFIG_IA32_EMULATION=y
443# CONFIG_IA32_AOUT is not set 475# CONFIG_IA32_AOUT is not set
@@ -449,6 +481,7 @@ CONFIG_NET=y
449# 481#
450# Networking options 482# Networking options
451# 483#
484CONFIG_COMPAT_NET_DEV_OPS=y
452CONFIG_PACKET=y 485CONFIG_PACKET=y
453CONFIG_PACKET_MMAP=y 486CONFIG_PACKET_MMAP=y
454CONFIG_UNIX=y 487CONFIG_UNIX=y
@@ -509,7 +542,6 @@ CONFIG_DEFAULT_CUBIC=y
509# CONFIG_DEFAULT_RENO is not set 542# CONFIG_DEFAULT_RENO is not set
510CONFIG_DEFAULT_TCP_CONG="cubic" 543CONFIG_DEFAULT_TCP_CONG="cubic"
511CONFIG_TCP_MD5SIG=y 544CONFIG_TCP_MD5SIG=y
512# CONFIG_IP_VS is not set
513CONFIG_IPV6=y 545CONFIG_IPV6=y
514# CONFIG_IPV6_PRIVACY is not set 546# CONFIG_IPV6_PRIVACY is not set
515# CONFIG_IPV6_ROUTER_PREF is not set 547# CONFIG_IPV6_ROUTER_PREF is not set
@@ -547,19 +579,21 @@ CONFIG_NF_CONNTRACK_IRC=y
547CONFIG_NF_CONNTRACK_SIP=y 579CONFIG_NF_CONNTRACK_SIP=y
548CONFIG_NF_CT_NETLINK=y 580CONFIG_NF_CT_NETLINK=y
549CONFIG_NETFILTER_XTABLES=y 581CONFIG_NETFILTER_XTABLES=y
582CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
550CONFIG_NETFILTER_XT_TARGET_MARK=y 583CONFIG_NETFILTER_XT_TARGET_MARK=y
551CONFIG_NETFILTER_XT_TARGET_NFLOG=y 584CONFIG_NETFILTER_XT_TARGET_NFLOG=y
552CONFIG_NETFILTER_XT_TARGET_SECMARK=y 585CONFIG_NETFILTER_XT_TARGET_SECMARK=y
553CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
554CONFIG_NETFILTER_XT_TARGET_TCPMSS=y 586CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
555CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y 587CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
556CONFIG_NETFILTER_XT_MATCH_MARK=y 588CONFIG_NETFILTER_XT_MATCH_MARK=y
557CONFIG_NETFILTER_XT_MATCH_POLICY=y 589CONFIG_NETFILTER_XT_MATCH_POLICY=y
558CONFIG_NETFILTER_XT_MATCH_STATE=y 590CONFIG_NETFILTER_XT_MATCH_STATE=y
591# CONFIG_IP_VS is not set
559 592
560# 593#
561# IP: Netfilter Configuration 594# IP: Netfilter Configuration
562# 595#
596CONFIG_NF_DEFRAG_IPV4=y
563CONFIG_NF_CONNTRACK_IPV4=y 597CONFIG_NF_CONNTRACK_IPV4=y
564CONFIG_NF_CONNTRACK_PROC_COMPAT=y 598CONFIG_NF_CONNTRACK_PROC_COMPAT=y
565CONFIG_IP_NF_IPTABLES=y 599CONFIG_IP_NF_IPTABLES=y
@@ -585,8 +619,8 @@ CONFIG_IP_NF_MANGLE=y
585CONFIG_NF_CONNTRACK_IPV6=y 619CONFIG_NF_CONNTRACK_IPV6=y
586CONFIG_IP6_NF_IPTABLES=y 620CONFIG_IP6_NF_IPTABLES=y
587CONFIG_IP6_NF_MATCH_IPV6HEADER=y 621CONFIG_IP6_NF_MATCH_IPV6HEADER=y
588CONFIG_IP6_NF_FILTER=y
589CONFIG_IP6_NF_TARGET_LOG=y 622CONFIG_IP6_NF_TARGET_LOG=y
623CONFIG_IP6_NF_FILTER=y
590CONFIG_IP6_NF_TARGET_REJECT=y 624CONFIG_IP6_NF_TARGET_REJECT=y
591CONFIG_IP6_NF_MANGLE=y 625CONFIG_IP6_NF_MANGLE=y
592# CONFIG_IP_DCCP is not set 626# CONFIG_IP_DCCP is not set
@@ -594,6 +628,7 @@ CONFIG_IP6_NF_MANGLE=y
594# CONFIG_TIPC is not set 628# CONFIG_TIPC is not set
595# CONFIG_ATM is not set 629# CONFIG_ATM is not set
596# CONFIG_BRIDGE is not set 630# CONFIG_BRIDGE is not set
631# CONFIG_NET_DSA is not set
597# CONFIG_VLAN_8021Q is not set 632# CONFIG_VLAN_8021Q is not set
598# CONFIG_DECNET is not set 633# CONFIG_DECNET is not set
599CONFIG_LLC=y 634CONFIG_LLC=y
@@ -613,6 +648,7 @@ CONFIG_NET_SCHED=y
613# CONFIG_NET_SCH_HTB is not set 648# CONFIG_NET_SCH_HTB is not set
614# CONFIG_NET_SCH_HFSC is not set 649# CONFIG_NET_SCH_HFSC is not set
615# CONFIG_NET_SCH_PRIO is not set 650# CONFIG_NET_SCH_PRIO is not set
651# CONFIG_NET_SCH_MULTIQ is not set
616# CONFIG_NET_SCH_RED is not set 652# CONFIG_NET_SCH_RED is not set
617# CONFIG_NET_SCH_SFQ is not set 653# CONFIG_NET_SCH_SFQ is not set
618# CONFIG_NET_SCH_TEQL is not set 654# CONFIG_NET_SCH_TEQL is not set
@@ -620,6 +656,7 @@ CONFIG_NET_SCHED=y
620# CONFIG_NET_SCH_GRED is not set 656# CONFIG_NET_SCH_GRED is not set
621# CONFIG_NET_SCH_DSMARK is not set 657# CONFIG_NET_SCH_DSMARK is not set
622# CONFIG_NET_SCH_NETEM is not set 658# CONFIG_NET_SCH_NETEM is not set
659# CONFIG_NET_SCH_DRR is not set
623# CONFIG_NET_SCH_INGRESS is not set 660# CONFIG_NET_SCH_INGRESS is not set
624 661
625# 662#
@@ -634,6 +671,7 @@ CONFIG_NET_CLS=y
634# CONFIG_NET_CLS_RSVP is not set 671# CONFIG_NET_CLS_RSVP is not set
635# CONFIG_NET_CLS_RSVP6 is not set 672# CONFIG_NET_CLS_RSVP6 is not set
636# CONFIG_NET_CLS_FLOW is not set 673# CONFIG_NET_CLS_FLOW is not set
674# CONFIG_NET_CLS_CGROUP is not set
637CONFIG_NET_EMATCH=y 675CONFIG_NET_EMATCH=y
638CONFIG_NET_EMATCH_STACK=32 676CONFIG_NET_EMATCH_STACK=32
639# CONFIG_NET_EMATCH_CMP is not set 677# CONFIG_NET_EMATCH_CMP is not set
@@ -649,7 +687,9 @@ CONFIG_NET_CLS_ACT=y
649# CONFIG_NET_ACT_NAT is not set 687# CONFIG_NET_ACT_NAT is not set
650# CONFIG_NET_ACT_PEDIT is not set 688# CONFIG_NET_ACT_PEDIT is not set
651# CONFIG_NET_ACT_SIMP is not set 689# CONFIG_NET_ACT_SIMP is not set
690# CONFIG_NET_ACT_SKBEDIT is not set
652CONFIG_NET_SCH_FIFO=y 691CONFIG_NET_SCH_FIFO=y
692# CONFIG_DCB is not set
653 693
654# 694#
655# Network testing 695# Network testing
@@ -666,29 +706,33 @@ CONFIG_HAMRADIO=y
666# CONFIG_IRDA is not set 706# CONFIG_IRDA is not set
667# CONFIG_BT is not set 707# CONFIG_BT is not set
668# CONFIG_AF_RXRPC is not set 708# CONFIG_AF_RXRPC is not set
709# CONFIG_PHONET is not set
669CONFIG_FIB_RULES=y 710CONFIG_FIB_RULES=y
670 711CONFIG_WIRELESS=y
671#
672# Wireless
673#
674CONFIG_CFG80211=y 712CONFIG_CFG80211=y
713# CONFIG_CFG80211_REG_DEBUG is not set
675CONFIG_NL80211=y 714CONFIG_NL80211=y
715CONFIG_WIRELESS_OLD_REGULATORY=y
676CONFIG_WIRELESS_EXT=y 716CONFIG_WIRELESS_EXT=y
677CONFIG_WIRELESS_EXT_SYSFS=y 717CONFIG_WIRELESS_EXT_SYSFS=y
718# CONFIG_LIB80211 is not set
678CONFIG_MAC80211=y 719CONFIG_MAC80211=y
679 720
680# 721#
681# Rate control algorithm selection 722# Rate control algorithm selection
682# 723#
683CONFIG_MAC80211_RC_PID=y 724CONFIG_MAC80211_RC_MINSTREL=y
684CONFIG_MAC80211_RC_DEFAULT_PID=y 725# CONFIG_MAC80211_RC_DEFAULT_PID is not set
685CONFIG_MAC80211_RC_DEFAULT="pid" 726CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
727CONFIG_MAC80211_RC_DEFAULT="minstrel"
686# CONFIG_MAC80211_MESH is not set 728# CONFIG_MAC80211_MESH is not set
687CONFIG_MAC80211_LEDS=y 729CONFIG_MAC80211_LEDS=y
688# CONFIG_MAC80211_DEBUGFS is not set 730# CONFIG_MAC80211_DEBUGFS is not set
689# CONFIG_MAC80211_DEBUG_MENU is not set 731# CONFIG_MAC80211_DEBUG_MENU is not set
690# CONFIG_IEEE80211 is not set 732# CONFIG_WIMAX is not set
691# CONFIG_RFKILL is not set 733CONFIG_RFKILL=y
734# CONFIG_RFKILL_INPUT is not set
735CONFIG_RFKILL_LEDS=y
692# CONFIG_NET_9P is not set 736# CONFIG_NET_9P is not set
693 737
694# 738#
@@ -712,7 +756,7 @@ CONFIG_PROC_EVENTS=y
712# CONFIG_MTD is not set 756# CONFIG_MTD is not set
713# CONFIG_PARPORT is not set 757# CONFIG_PARPORT is not set
714CONFIG_PNP=y 758CONFIG_PNP=y
715# CONFIG_PNP_DEBUG is not set 759CONFIG_PNP_DEBUG_MESSAGES=y
716 760
717# 761#
718# Protocols 762# Protocols
@@ -740,21 +784,21 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
740CONFIG_MISC_DEVICES=y 784CONFIG_MISC_DEVICES=y
741# CONFIG_IBM_ASM is not set 785# CONFIG_IBM_ASM is not set
742# CONFIG_PHANTOM is not set 786# CONFIG_PHANTOM is not set
743# CONFIG_EEPROM_93CX6 is not set
744# CONFIG_SGI_IOC4 is not set 787# CONFIG_SGI_IOC4 is not set
745# CONFIG_TIFM_CORE is not set 788# CONFIG_TIFM_CORE is not set
746# CONFIG_ACER_WMI is not set 789# CONFIG_ICS932S401 is not set
747# CONFIG_ASUS_LAPTOP is not set
748# CONFIG_FUJITSU_LAPTOP is not set
749# CONFIG_MSI_LAPTOP is not set
750# CONFIG_COMPAL_LAPTOP is not set
751# CONFIG_SONY_LAPTOP is not set
752# CONFIG_THINKPAD_ACPI is not set
753# CONFIG_INTEL_MENLOW is not set
754# CONFIG_ENCLOSURE_SERVICES is not set 790# CONFIG_ENCLOSURE_SERVICES is not set
755# CONFIG_SGI_XP is not set 791# CONFIG_SGI_XP is not set
756# CONFIG_HP_ILO is not set 792# CONFIG_HP_ILO is not set
757# CONFIG_SGI_GRU is not set 793# CONFIG_SGI_GRU is not set
794# CONFIG_C2PORT is not set
795
796#
797# EEPROM support
798#
799# CONFIG_EEPROM_AT24 is not set
800# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_EEPROM_93CX6 is not set
758CONFIG_HAVE_IDE=y 802CONFIG_HAVE_IDE=y
759# CONFIG_IDE is not set 803# CONFIG_IDE is not set
760 804
@@ -793,7 +837,7 @@ CONFIG_SCSI_WAIT_SCAN=m
793# 837#
794CONFIG_SCSI_SPI_ATTRS=y 838CONFIG_SCSI_SPI_ATTRS=y
795# CONFIG_SCSI_FC_ATTRS is not set 839# CONFIG_SCSI_FC_ATTRS is not set
796CONFIG_SCSI_ISCSI_ATTRS=y 840# CONFIG_SCSI_ISCSI_ATTRS is not set
797# CONFIG_SCSI_SAS_ATTRS is not set 841# CONFIG_SCSI_SAS_ATTRS is not set
798# CONFIG_SCSI_SAS_LIBSAS is not set 842# CONFIG_SCSI_SAS_LIBSAS is not set
799# CONFIG_SCSI_SRP_ATTRS is not set 843# CONFIG_SCSI_SRP_ATTRS is not set
@@ -864,6 +908,7 @@ CONFIG_PATA_OLDPIIX=y
864CONFIG_PATA_SCH=y 908CONFIG_PATA_SCH=y
865CONFIG_MD=y 909CONFIG_MD=y
866CONFIG_BLK_DEV_MD=y 910CONFIG_BLK_DEV_MD=y
911CONFIG_MD_AUTODETECT=y
867# CONFIG_MD_LINEAR is not set 912# CONFIG_MD_LINEAR is not set
868# CONFIG_MD_RAID0 is not set 913# CONFIG_MD_RAID0 is not set
869# CONFIG_MD_RAID1 is not set 914# CONFIG_MD_RAID1 is not set
@@ -919,6 +964,9 @@ CONFIG_PHYLIB=y
919# CONFIG_BROADCOM_PHY is not set 964# CONFIG_BROADCOM_PHY is not set
920# CONFIG_ICPLUS_PHY is not set 965# CONFIG_ICPLUS_PHY is not set
921# CONFIG_REALTEK_PHY is not set 966# CONFIG_REALTEK_PHY is not set
967# CONFIG_NATIONAL_PHY is not set
968# CONFIG_STE10XP is not set
969# CONFIG_LSI_ET1011C_PHY is not set
922# CONFIG_FIXED_PHY is not set 970# CONFIG_FIXED_PHY is not set
923# CONFIG_MDIO_BITBANG is not set 971# CONFIG_MDIO_BITBANG is not set
924CONFIG_NET_ETHERNET=y 972CONFIG_NET_ETHERNET=y
@@ -942,6 +990,9 @@ CONFIG_NET_TULIP=y
942# CONFIG_IBM_NEW_EMAC_RGMII is not set 990# CONFIG_IBM_NEW_EMAC_RGMII is not set
943# CONFIG_IBM_NEW_EMAC_TAH is not set 991# CONFIG_IBM_NEW_EMAC_TAH is not set
944# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 992# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
993# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
994# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
995# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
945CONFIG_NET_PCI=y 996CONFIG_NET_PCI=y
946# CONFIG_PCNET32 is not set 997# CONFIG_PCNET32 is not set
947# CONFIG_AMD8111_ETH is not set 998# CONFIG_AMD8111_ETH is not set
@@ -949,7 +1000,6 @@ CONFIG_NET_PCI=y
949# CONFIG_B44 is not set 1000# CONFIG_B44 is not set
950CONFIG_FORCEDETH=y 1001CONFIG_FORCEDETH=y
951# CONFIG_FORCEDETH_NAPI is not set 1002# CONFIG_FORCEDETH_NAPI is not set
952# CONFIG_EEPRO100 is not set
953CONFIG_E100=y 1003CONFIG_E100=y
954# CONFIG_FEALNX is not set 1004# CONFIG_FEALNX is not set
955# CONFIG_NATSEMI is not set 1005# CONFIG_NATSEMI is not set
@@ -963,15 +1013,16 @@ CONFIG_8139TOO_PIO=y
963# CONFIG_R6040 is not set 1013# CONFIG_R6040 is not set
964# CONFIG_SIS900 is not set 1014# CONFIG_SIS900 is not set
965# CONFIG_EPIC100 is not set 1015# CONFIG_EPIC100 is not set
1016# CONFIG_SMSC9420 is not set
966# CONFIG_SUNDANCE is not set 1017# CONFIG_SUNDANCE is not set
967# CONFIG_TLAN is not set 1018# CONFIG_TLAN is not set
968# CONFIG_VIA_RHINE is not set 1019# CONFIG_VIA_RHINE is not set
969# CONFIG_SC92031 is not set 1020# CONFIG_SC92031 is not set
1021# CONFIG_ATL2 is not set
970CONFIG_NETDEV_1000=y 1022CONFIG_NETDEV_1000=y
971# CONFIG_ACENIC is not set 1023# CONFIG_ACENIC is not set
972# CONFIG_DL2K is not set 1024# CONFIG_DL2K is not set
973CONFIG_E1000=y 1025CONFIG_E1000=y
974# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
975# CONFIG_E1000E is not set 1026# CONFIG_E1000E is not set
976# CONFIG_IP1000 is not set 1027# CONFIG_IP1000 is not set
977# CONFIG_IGB is not set 1028# CONFIG_IGB is not set
@@ -989,18 +1040,23 @@ CONFIG_TIGON3=y
989# CONFIG_QLA3XXX is not set 1040# CONFIG_QLA3XXX is not set
990# CONFIG_ATL1 is not set 1041# CONFIG_ATL1 is not set
991# CONFIG_ATL1E is not set 1042# CONFIG_ATL1E is not set
1043# CONFIG_JME is not set
992CONFIG_NETDEV_10000=y 1044CONFIG_NETDEV_10000=y
993# CONFIG_CHELSIO_T1 is not set 1045# CONFIG_CHELSIO_T1 is not set
1046CONFIG_CHELSIO_T3_DEPENDS=y
994# CONFIG_CHELSIO_T3 is not set 1047# CONFIG_CHELSIO_T3 is not set
1048# CONFIG_ENIC is not set
995# CONFIG_IXGBE is not set 1049# CONFIG_IXGBE is not set
996# CONFIG_IXGB is not set 1050# CONFIG_IXGB is not set
997# CONFIG_S2IO is not set 1051# CONFIG_S2IO is not set
998# CONFIG_MYRI10GE is not set 1052# CONFIG_MYRI10GE is not set
999# CONFIG_NETXEN_NIC is not set 1053# CONFIG_NETXEN_NIC is not set
1000# CONFIG_NIU is not set 1054# CONFIG_NIU is not set
1055# CONFIG_MLX4_EN is not set
1001# CONFIG_MLX4_CORE is not set 1056# CONFIG_MLX4_CORE is not set
1002# CONFIG_TEHUTI is not set 1057# CONFIG_TEHUTI is not set
1003# CONFIG_BNX2X is not set 1058# CONFIG_BNX2X is not set
1059# CONFIG_QLGE is not set
1004# CONFIG_SFC is not set 1060# CONFIG_SFC is not set
1005CONFIG_TR=y 1061CONFIG_TR=y
1006# CONFIG_IBMOL is not set 1062# CONFIG_IBMOL is not set
@@ -1013,9 +1069,8 @@ CONFIG_TR=y
1013# CONFIG_WLAN_PRE80211 is not set 1069# CONFIG_WLAN_PRE80211 is not set
1014CONFIG_WLAN_80211=y 1070CONFIG_WLAN_80211=y
1015# CONFIG_PCMCIA_RAYCS is not set 1071# CONFIG_PCMCIA_RAYCS is not set
1016# CONFIG_IPW2100 is not set
1017# CONFIG_IPW2200 is not set
1018# CONFIG_LIBERTAS is not set 1072# CONFIG_LIBERTAS is not set
1073# CONFIG_LIBERTAS_THINFIRM is not set
1019# CONFIG_AIRO is not set 1074# CONFIG_AIRO is not set
1020# CONFIG_HERMES is not set 1075# CONFIG_HERMES is not set
1021# CONFIG_ATMEL is not set 1076# CONFIG_ATMEL is not set
@@ -1032,6 +1087,8 @@ CONFIG_WLAN_80211=y
1032CONFIG_ATH5K=y 1087CONFIG_ATH5K=y
1033# CONFIG_ATH5K_DEBUG is not set 1088# CONFIG_ATH5K_DEBUG is not set
1034# CONFIG_ATH9K is not set 1089# CONFIG_ATH9K is not set
1090# CONFIG_IPW2100 is not set
1091# CONFIG_IPW2200 is not set
1035# CONFIG_IWLCORE is not set 1092# CONFIG_IWLCORE is not set
1036# CONFIG_IWLWIFI_LEDS is not set 1093# CONFIG_IWLWIFI_LEDS is not set
1037# CONFIG_IWLAGN is not set 1094# CONFIG_IWLAGN is not set
@@ -1043,6 +1100,10 @@ CONFIG_ATH5K=y
1043# CONFIG_RT2X00 is not set 1100# CONFIG_RT2X00 is not set
1044 1101
1045# 1102#
1103# Enable WiMAX (Networking options) to see the WiMAX drivers
1104#
1105
1106#
1046# USB Network Adapters 1107# USB Network Adapters
1047# 1108#
1048# CONFIG_USB_CATC is not set 1109# CONFIG_USB_CATC is not set
@@ -1050,6 +1111,7 @@ CONFIG_ATH5K=y
1050# CONFIG_USB_PEGASUS is not set 1111# CONFIG_USB_PEGASUS is not set
1051# CONFIG_USB_RTL8150 is not set 1112# CONFIG_USB_RTL8150 is not set
1052# CONFIG_USB_USBNET is not set 1113# CONFIG_USB_USBNET is not set
1114# CONFIG_USB_HSO is not set
1053CONFIG_NET_PCMCIA=y 1115CONFIG_NET_PCMCIA=y
1054# CONFIG_PCMCIA_3C589 is not set 1116# CONFIG_PCMCIA_3C589 is not set
1055# CONFIG_PCMCIA_3C574 is not set 1117# CONFIG_PCMCIA_3C574 is not set
@@ -1059,6 +1121,7 @@ CONFIG_NET_PCMCIA=y
1059# CONFIG_PCMCIA_SMC91C92 is not set 1121# CONFIG_PCMCIA_SMC91C92 is not set
1060# CONFIG_PCMCIA_XIRC2PS is not set 1122# CONFIG_PCMCIA_XIRC2PS is not set
1061# CONFIG_PCMCIA_AXNET is not set 1123# CONFIG_PCMCIA_AXNET is not set
1124# CONFIG_PCMCIA_IBMTR is not set
1062# CONFIG_WAN is not set 1125# CONFIG_WAN is not set
1063CONFIG_FDDI=y 1126CONFIG_FDDI=y
1064# CONFIG_DEFXX is not set 1127# CONFIG_DEFXX is not set
@@ -1110,6 +1173,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
1110CONFIG_MOUSE_PS2_SYNAPTICS=y 1173CONFIG_MOUSE_PS2_SYNAPTICS=y
1111CONFIG_MOUSE_PS2_LIFEBOOK=y 1174CONFIG_MOUSE_PS2_LIFEBOOK=y
1112CONFIG_MOUSE_PS2_TRACKPOINT=y 1175CONFIG_MOUSE_PS2_TRACKPOINT=y
1176# CONFIG_MOUSE_PS2_ELANTECH is not set
1113# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1177# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1114# CONFIG_MOUSE_SERIAL is not set 1178# CONFIG_MOUSE_SERIAL is not set
1115# CONFIG_MOUSE_APPLETOUCH is not set 1179# CONFIG_MOUSE_APPLETOUCH is not set
@@ -1147,15 +1211,16 @@ CONFIG_INPUT_TOUCHSCREEN=y
1147# CONFIG_TOUCHSCREEN_FUJITSU is not set 1211# CONFIG_TOUCHSCREEN_FUJITSU is not set
1148# CONFIG_TOUCHSCREEN_GUNZE is not set 1212# CONFIG_TOUCHSCREEN_GUNZE is not set
1149# CONFIG_TOUCHSCREEN_ELO is not set 1213# CONFIG_TOUCHSCREEN_ELO is not set
1214# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
1150# CONFIG_TOUCHSCREEN_MTOUCH is not set 1215# CONFIG_TOUCHSCREEN_MTOUCH is not set
1151# CONFIG_TOUCHSCREEN_INEXIO is not set 1216# CONFIG_TOUCHSCREEN_INEXIO is not set
1152# CONFIG_TOUCHSCREEN_MK712 is not set 1217# CONFIG_TOUCHSCREEN_MK712 is not set
1153# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1218# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1154# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1219# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1155# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1220# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1156# CONFIG_TOUCHSCREEN_UCB1400 is not set
1157# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 1221# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1158# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set 1222# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1223# CONFIG_TOUCHSCREEN_TSC2007 is not set
1159CONFIG_INPUT_MISC=y 1224CONFIG_INPUT_MISC=y
1160# CONFIG_INPUT_PCSPKR is not set 1225# CONFIG_INPUT_PCSPKR is not set
1161# CONFIG_INPUT_APANEL is not set 1226# CONFIG_INPUT_APANEL is not set
@@ -1165,6 +1230,7 @@ CONFIG_INPUT_MISC=y
1165# CONFIG_INPUT_KEYSPAN_REMOTE is not set 1230# CONFIG_INPUT_KEYSPAN_REMOTE is not set
1166# CONFIG_INPUT_POWERMATE is not set 1231# CONFIG_INPUT_POWERMATE is not set
1167# CONFIG_INPUT_YEALINK is not set 1232# CONFIG_INPUT_YEALINK is not set
1233# CONFIG_INPUT_CM109 is not set
1168# CONFIG_INPUT_UINPUT is not set 1234# CONFIG_INPUT_UINPUT is not set
1169 1235
1170# 1236#
@@ -1231,6 +1297,7 @@ CONFIG_SERIAL_CORE=y
1231CONFIG_SERIAL_CORE_CONSOLE=y 1297CONFIG_SERIAL_CORE_CONSOLE=y
1232# CONFIG_SERIAL_JSM is not set 1298# CONFIG_SERIAL_JSM is not set
1233CONFIG_UNIX98_PTYS=y 1299CONFIG_UNIX98_PTYS=y
1300# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1234# CONFIG_LEGACY_PTYS is not set 1301# CONFIG_LEGACY_PTYS is not set
1235# CONFIG_IPMI_HANDLER is not set 1302# CONFIG_IPMI_HANDLER is not set
1236CONFIG_HW_RANDOM=y 1303CONFIG_HW_RANDOM=y
@@ -1260,6 +1327,7 @@ CONFIG_I2C=y
1260CONFIG_I2C_BOARDINFO=y 1327CONFIG_I2C_BOARDINFO=y
1261# CONFIG_I2C_CHARDEV is not set 1328# CONFIG_I2C_CHARDEV is not set
1262CONFIG_I2C_HELPER_AUTO=y 1329CONFIG_I2C_HELPER_AUTO=y
1330CONFIG_I2C_ALGOBIT=y
1263 1331
1264# 1332#
1265# I2C Hardware Bus support 1333# I2C Hardware Bus support
@@ -1311,8 +1379,6 @@ CONFIG_I2C_I801=y
1311# Miscellaneous I2C Chip support 1379# Miscellaneous I2C Chip support
1312# 1380#
1313# CONFIG_DS1682 is not set 1381# CONFIG_DS1682 is not set
1314# CONFIG_AT24 is not set
1315# CONFIG_SENSORS_EEPROM is not set
1316# CONFIG_SENSORS_PCF8574 is not set 1382# CONFIG_SENSORS_PCF8574 is not set
1317# CONFIG_PCF8575 is not set 1383# CONFIG_PCF8575 is not set
1318# CONFIG_SENSORS_PCA9539 is not set 1384# CONFIG_SENSORS_PCA9539 is not set
@@ -1331,8 +1397,78 @@ CONFIG_POWER_SUPPLY=y
1331# CONFIG_POWER_SUPPLY_DEBUG is not set 1397# CONFIG_POWER_SUPPLY_DEBUG is not set
1332# CONFIG_PDA_POWER is not set 1398# CONFIG_PDA_POWER is not set
1333# CONFIG_BATTERY_DS2760 is not set 1399# CONFIG_BATTERY_DS2760 is not set
1334# CONFIG_HWMON is not set 1400# CONFIG_BATTERY_BQ27x00 is not set
1401CONFIG_HWMON=y
1402# CONFIG_HWMON_VID is not set
1403# CONFIG_SENSORS_ABITUGURU is not set
1404# CONFIG_SENSORS_ABITUGURU3 is not set
1405# CONFIG_SENSORS_AD7414 is not set
1406# CONFIG_SENSORS_AD7418 is not set
1407# CONFIG_SENSORS_ADM1021 is not set
1408# CONFIG_SENSORS_ADM1025 is not set
1409# CONFIG_SENSORS_ADM1026 is not set
1410# CONFIG_SENSORS_ADM1029 is not set
1411# CONFIG_SENSORS_ADM1031 is not set
1412# CONFIG_SENSORS_ADM9240 is not set
1413# CONFIG_SENSORS_ADT7462 is not set
1414# CONFIG_SENSORS_ADT7470 is not set
1415# CONFIG_SENSORS_ADT7473 is not set
1416# CONFIG_SENSORS_ADT7475 is not set
1417# CONFIG_SENSORS_K8TEMP is not set
1418# CONFIG_SENSORS_ASB100 is not set
1419# CONFIG_SENSORS_ATXP1 is not set
1420# CONFIG_SENSORS_DS1621 is not set
1421# CONFIG_SENSORS_I5K_AMB is not set
1422# CONFIG_SENSORS_F71805F is not set
1423# CONFIG_SENSORS_F71882FG is not set
1424# CONFIG_SENSORS_F75375S is not set
1425# CONFIG_SENSORS_FSCHER is not set
1426# CONFIG_SENSORS_FSCPOS is not set
1427# CONFIG_SENSORS_FSCHMD is not set
1428# CONFIG_SENSORS_GL518SM is not set
1429# CONFIG_SENSORS_GL520SM is not set
1430# CONFIG_SENSORS_CORETEMP is not set
1431# CONFIG_SENSORS_IT87 is not set
1432# CONFIG_SENSORS_LM63 is not set
1433# CONFIG_SENSORS_LM75 is not set
1434# CONFIG_SENSORS_LM77 is not set
1435# CONFIG_SENSORS_LM78 is not set
1436# CONFIG_SENSORS_LM80 is not set
1437# CONFIG_SENSORS_LM83 is not set
1438# CONFIG_SENSORS_LM85 is not set
1439# CONFIG_SENSORS_LM87 is not set
1440# CONFIG_SENSORS_LM90 is not set
1441# CONFIG_SENSORS_LM92 is not set
1442# CONFIG_SENSORS_LM93 is not set
1443# CONFIG_SENSORS_LTC4245 is not set
1444# CONFIG_SENSORS_MAX1619 is not set
1445# CONFIG_SENSORS_MAX6650 is not set
1446# CONFIG_SENSORS_PC87360 is not set
1447# CONFIG_SENSORS_PC87427 is not set
1448# CONFIG_SENSORS_SIS5595 is not set
1449# CONFIG_SENSORS_DME1737 is not set
1450# CONFIG_SENSORS_SMSC47M1 is not set
1451# CONFIG_SENSORS_SMSC47M192 is not set
1452# CONFIG_SENSORS_SMSC47B397 is not set
1453# CONFIG_SENSORS_ADS7828 is not set
1454# CONFIG_SENSORS_THMC50 is not set
1455# CONFIG_SENSORS_VIA686A is not set
1456# CONFIG_SENSORS_VT1211 is not set
1457# CONFIG_SENSORS_VT8231 is not set
1458# CONFIG_SENSORS_W83781D is not set
1459# CONFIG_SENSORS_W83791D is not set
1460# CONFIG_SENSORS_W83792D is not set
1461# CONFIG_SENSORS_W83793 is not set
1462# CONFIG_SENSORS_W83L785TS is not set
1463# CONFIG_SENSORS_W83L786NG is not set
1464# CONFIG_SENSORS_W83627HF is not set
1465# CONFIG_SENSORS_W83627EHF is not set
1466# CONFIG_SENSORS_HDAPS is not set
1467# CONFIG_SENSORS_LIS3LV02D is not set
1468# CONFIG_SENSORS_APPLESMC is not set
1469# CONFIG_HWMON_DEBUG_CHIP is not set
1335CONFIG_THERMAL=y 1470CONFIG_THERMAL=y
1471# CONFIG_THERMAL_HWMON is not set
1336CONFIG_WATCHDOG=y 1472CONFIG_WATCHDOG=y
1337# CONFIG_WATCHDOG_NOWAYOUT is not set 1473# CONFIG_WATCHDOG_NOWAYOUT is not set
1338 1474
@@ -1352,15 +1488,18 @@ CONFIG_WATCHDOG=y
1352# CONFIG_I6300ESB_WDT is not set 1488# CONFIG_I6300ESB_WDT is not set
1353# CONFIG_ITCO_WDT is not set 1489# CONFIG_ITCO_WDT is not set
1354# CONFIG_IT8712F_WDT is not set 1490# CONFIG_IT8712F_WDT is not set
1491# CONFIG_IT87_WDT is not set
1355# CONFIG_HP_WATCHDOG is not set 1492# CONFIG_HP_WATCHDOG is not set
1356# CONFIG_SC1200_WDT is not set 1493# CONFIG_SC1200_WDT is not set
1357# CONFIG_PC87413_WDT is not set 1494# CONFIG_PC87413_WDT is not set
1358# CONFIG_60XX_WDT is not set 1495# CONFIG_60XX_WDT is not set
1359# CONFIG_SBC8360_WDT is not set 1496# CONFIG_SBC8360_WDT is not set
1360# CONFIG_CPU5_WDT is not set 1497# CONFIG_CPU5_WDT is not set
1498# CONFIG_SMSC_SCH311X_WDT is not set
1361# CONFIG_SMSC37B787_WDT is not set 1499# CONFIG_SMSC37B787_WDT is not set
1362# CONFIG_W83627HF_WDT is not set 1500# CONFIG_W83627HF_WDT is not set
1363# CONFIG_W83697HF_WDT is not set 1501# CONFIG_W83697HF_WDT is not set
1502# CONFIG_W83697UG_WDT is not set
1364# CONFIG_W83877F_WDT is not set 1503# CONFIG_W83877F_WDT is not set
1365# CONFIG_W83977F_WDT is not set 1504# CONFIG_W83977F_WDT is not set
1366# CONFIG_MACHZ_WDT is not set 1505# CONFIG_MACHZ_WDT is not set
@@ -1376,11 +1515,11 @@ CONFIG_WATCHDOG=y
1376# USB-based Watchdog Cards 1515# USB-based Watchdog Cards
1377# 1516#
1378# CONFIG_USBPCWATCHDOG is not set 1517# CONFIG_USBPCWATCHDOG is not set
1518CONFIG_SSB_POSSIBLE=y
1379 1519
1380# 1520#
1381# Sonics Silicon Backplane 1521# Sonics Silicon Backplane
1382# 1522#
1383CONFIG_SSB_POSSIBLE=y
1384# CONFIG_SSB is not set 1523# CONFIG_SSB is not set
1385 1524
1386# 1525#
@@ -1389,7 +1528,13 @@ CONFIG_SSB_POSSIBLE=y
1389# CONFIG_MFD_CORE is not set 1528# CONFIG_MFD_CORE is not set
1390# CONFIG_MFD_SM501 is not set 1529# CONFIG_MFD_SM501 is not set
1391# CONFIG_HTC_PASIC3 is not set 1530# CONFIG_HTC_PASIC3 is not set
1531# CONFIG_TWL4030_CORE is not set
1392# CONFIG_MFD_TMIO is not set 1532# CONFIG_MFD_TMIO is not set
1533# CONFIG_PMIC_DA903X is not set
1534# CONFIG_MFD_WM8400 is not set
1535# CONFIG_MFD_WM8350_I2C is not set
1536# CONFIG_MFD_PCF50633 is not set
1537# CONFIG_REGULATOR is not set
1393 1538
1394# 1539#
1395# Multimedia devices 1540# Multimedia devices
@@ -1423,6 +1568,7 @@ CONFIG_DRM=y
1423# CONFIG_DRM_I810 is not set 1568# CONFIG_DRM_I810 is not set
1424# CONFIG_DRM_I830 is not set 1569# CONFIG_DRM_I830 is not set
1425CONFIG_DRM_I915=y 1570CONFIG_DRM_I915=y
1571CONFIG_DRM_I915_KMS=y
1426# CONFIG_DRM_MGA is not set 1572# CONFIG_DRM_MGA is not set
1427# CONFIG_DRM_SIS is not set 1573# CONFIG_DRM_SIS is not set
1428# CONFIG_DRM_VIA is not set 1574# CONFIG_DRM_VIA is not set
@@ -1432,6 +1578,7 @@ CONFIG_DRM_I915=y
1432CONFIG_FB=y 1578CONFIG_FB=y
1433# CONFIG_FIRMWARE_EDID is not set 1579# CONFIG_FIRMWARE_EDID is not set
1434# CONFIG_FB_DDC is not set 1580# CONFIG_FB_DDC is not set
1581# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1435CONFIG_FB_CFB_FILLRECT=y 1582CONFIG_FB_CFB_FILLRECT=y
1436CONFIG_FB_CFB_COPYAREA=y 1583CONFIG_FB_CFB_COPYAREA=y
1437CONFIG_FB_CFB_IMAGEBLIT=y 1584CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1460,7 +1607,6 @@ CONFIG_FB_TILEBLITTING=y
1460# CONFIG_FB_UVESA is not set 1607# CONFIG_FB_UVESA is not set
1461# CONFIG_FB_VESA is not set 1608# CONFIG_FB_VESA is not set
1462CONFIG_FB_EFI=y 1609CONFIG_FB_EFI=y
1463# CONFIG_FB_IMAC is not set
1464# CONFIG_FB_N411 is not set 1610# CONFIG_FB_N411 is not set
1465# CONFIG_FB_HGA is not set 1611# CONFIG_FB_HGA is not set
1466# CONFIG_FB_S1D13XXX is not set 1612# CONFIG_FB_S1D13XXX is not set
@@ -1475,6 +1621,7 @@ CONFIG_FB_EFI=y
1475# CONFIG_FB_S3 is not set 1621# CONFIG_FB_S3 is not set
1476# CONFIG_FB_SAVAGE is not set 1622# CONFIG_FB_SAVAGE is not set
1477# CONFIG_FB_SIS is not set 1623# CONFIG_FB_SIS is not set
1624# CONFIG_FB_VIA is not set
1478# CONFIG_FB_NEOMAGIC is not set 1625# CONFIG_FB_NEOMAGIC is not set
1479# CONFIG_FB_KYRO is not set 1626# CONFIG_FB_KYRO is not set
1480# CONFIG_FB_3DFX is not set 1627# CONFIG_FB_3DFX is not set
@@ -1486,12 +1633,15 @@ CONFIG_FB_EFI=y
1486# CONFIG_FB_CARMINE is not set 1633# CONFIG_FB_CARMINE is not set
1487# CONFIG_FB_GEODE is not set 1634# CONFIG_FB_GEODE is not set
1488# CONFIG_FB_VIRTUAL is not set 1635# CONFIG_FB_VIRTUAL is not set
1636# CONFIG_FB_METRONOME is not set
1637# CONFIG_FB_MB862XX is not set
1489CONFIG_BACKLIGHT_LCD_SUPPORT=y 1638CONFIG_BACKLIGHT_LCD_SUPPORT=y
1490# CONFIG_LCD_CLASS_DEVICE is not set 1639# CONFIG_LCD_CLASS_DEVICE is not set
1491CONFIG_BACKLIGHT_CLASS_DEVICE=y 1640CONFIG_BACKLIGHT_CLASS_DEVICE=y
1492# CONFIG_BACKLIGHT_CORGI is not set 1641CONFIG_BACKLIGHT_GENERIC=y
1493# CONFIG_BACKLIGHT_PROGEAR is not set 1642# CONFIG_BACKLIGHT_PROGEAR is not set
1494# CONFIG_BACKLIGHT_MBP_NVIDIA is not set 1643# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
1644# CONFIG_BACKLIGHT_SAHARA is not set
1495 1645
1496# 1646#
1497# Display device support 1647# Display device support
@@ -1511,10 +1661,12 @@ CONFIG_LOGO=y
1511# CONFIG_LOGO_LINUX_VGA16 is not set 1661# CONFIG_LOGO_LINUX_VGA16 is not set
1512CONFIG_LOGO_LINUX_CLUT224=y 1662CONFIG_LOGO_LINUX_CLUT224=y
1513CONFIG_SOUND=y 1663CONFIG_SOUND=y
1664CONFIG_SOUND_OSS_CORE=y
1514CONFIG_SND=y 1665CONFIG_SND=y
1515CONFIG_SND_TIMER=y 1666CONFIG_SND_TIMER=y
1516CONFIG_SND_PCM=y 1667CONFIG_SND_PCM=y
1517CONFIG_SND_HWDEP=y 1668CONFIG_SND_HWDEP=y
1669CONFIG_SND_JACK=y
1518CONFIG_SND_SEQUENCER=y 1670CONFIG_SND_SEQUENCER=y
1519CONFIG_SND_SEQ_DUMMY=y 1671CONFIG_SND_SEQ_DUMMY=y
1520CONFIG_SND_OSSEMUL=y 1672CONFIG_SND_OSSEMUL=y
@@ -1522,6 +1674,8 @@ CONFIG_SND_MIXER_OSS=y
1522CONFIG_SND_PCM_OSS=y 1674CONFIG_SND_PCM_OSS=y
1523CONFIG_SND_PCM_OSS_PLUGINS=y 1675CONFIG_SND_PCM_OSS_PLUGINS=y
1524CONFIG_SND_SEQUENCER_OSS=y 1676CONFIG_SND_SEQUENCER_OSS=y
1677CONFIG_SND_HRTIMER=y
1678CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
1525CONFIG_SND_DYNAMIC_MINORS=y 1679CONFIG_SND_DYNAMIC_MINORS=y
1526CONFIG_SND_SUPPORT_OLD_API=y 1680CONFIG_SND_SUPPORT_OLD_API=y
1527CONFIG_SND_VERBOSE_PROCFS=y 1681CONFIG_SND_VERBOSE_PROCFS=y
@@ -1575,11 +1729,16 @@ CONFIG_SND_PCI=y
1575# CONFIG_SND_FM801 is not set 1729# CONFIG_SND_FM801 is not set
1576CONFIG_SND_HDA_INTEL=y 1730CONFIG_SND_HDA_INTEL=y
1577CONFIG_SND_HDA_HWDEP=y 1731CONFIG_SND_HDA_HWDEP=y
1732# CONFIG_SND_HDA_RECONFIG is not set
1733# CONFIG_SND_HDA_INPUT_BEEP is not set
1578CONFIG_SND_HDA_CODEC_REALTEK=y 1734CONFIG_SND_HDA_CODEC_REALTEK=y
1579CONFIG_SND_HDA_CODEC_ANALOG=y 1735CONFIG_SND_HDA_CODEC_ANALOG=y
1580CONFIG_SND_HDA_CODEC_SIGMATEL=y 1736CONFIG_SND_HDA_CODEC_SIGMATEL=y
1581CONFIG_SND_HDA_CODEC_VIA=y 1737CONFIG_SND_HDA_CODEC_VIA=y
1582CONFIG_SND_HDA_CODEC_ATIHDMI=y 1738CONFIG_SND_HDA_CODEC_ATIHDMI=y
1739CONFIG_SND_HDA_CODEC_NVHDMI=y
1740CONFIG_SND_HDA_CODEC_INTELHDMI=y
1741CONFIG_SND_HDA_ELD=y
1583CONFIG_SND_HDA_CODEC_CONEXANT=y 1742CONFIG_SND_HDA_CODEC_CONEXANT=y
1584CONFIG_SND_HDA_CODEC_CMEDIA=y 1743CONFIG_SND_HDA_CODEC_CMEDIA=y
1585CONFIG_SND_HDA_CODEC_SI3054=y 1744CONFIG_SND_HDA_CODEC_SI3054=y
@@ -1612,6 +1771,7 @@ CONFIG_SND_USB=y
1612# CONFIG_SND_USB_AUDIO is not set 1771# CONFIG_SND_USB_AUDIO is not set
1613# CONFIG_SND_USB_USX2Y is not set 1772# CONFIG_SND_USB_USX2Y is not set
1614# CONFIG_SND_USB_CAIAQ is not set 1773# CONFIG_SND_USB_CAIAQ is not set
1774# CONFIG_SND_USB_US122L is not set
1615CONFIG_SND_PCMCIA=y 1775CONFIG_SND_PCMCIA=y
1616# CONFIG_SND_VXPOCKET is not set 1776# CONFIG_SND_VXPOCKET is not set
1617# CONFIG_SND_PDAUDIOCF is not set 1777# CONFIG_SND_PDAUDIOCF is not set
@@ -1626,15 +1786,37 @@ CONFIG_HIDRAW=y
1626# USB Input Devices 1786# USB Input Devices
1627# 1787#
1628CONFIG_USB_HID=y 1788CONFIG_USB_HID=y
1629CONFIG_USB_HIDINPUT_POWERBOOK=y
1630CONFIG_HID_FF=y
1631CONFIG_HID_PID=y 1789CONFIG_HID_PID=y
1790CONFIG_USB_HIDDEV=y
1791
1792#
1793# Special HID drivers
1794#
1795CONFIG_HID_COMPAT=y
1796CONFIG_HID_A4TECH=y
1797CONFIG_HID_APPLE=y
1798CONFIG_HID_BELKIN=y
1799CONFIG_HID_CHERRY=y
1800CONFIG_HID_CHICONY=y
1801CONFIG_HID_CYPRESS=y
1802CONFIG_HID_EZKEY=y
1803CONFIG_HID_GYRATION=y
1804CONFIG_HID_LOGITECH=y
1632CONFIG_LOGITECH_FF=y 1805CONFIG_LOGITECH_FF=y
1633# CONFIG_LOGIRUMBLEPAD2_FF is not set 1806# CONFIG_LOGIRUMBLEPAD2_FF is not set
1807CONFIG_HID_MICROSOFT=y
1808CONFIG_HID_MONTEREY=y
1809CONFIG_HID_NTRIG=y
1810CONFIG_HID_PANTHERLORD=y
1634CONFIG_PANTHERLORD_FF=y 1811CONFIG_PANTHERLORD_FF=y
1812CONFIG_HID_PETALYNX=y
1813CONFIG_HID_SAMSUNG=y
1814CONFIG_HID_SONY=y
1815CONFIG_HID_SUNPLUS=y
1816# CONFIG_GREENASIA_FF is not set
1817CONFIG_HID_TOPSEED=y
1635CONFIG_THRUSTMASTER_FF=y 1818CONFIG_THRUSTMASTER_FF=y
1636CONFIG_ZEROPLUS_FF=y 1819CONFIG_ZEROPLUS_FF=y
1637CONFIG_USB_HIDDEV=y
1638CONFIG_USB_SUPPORT=y 1820CONFIG_USB_SUPPORT=y
1639CONFIG_USB_ARCH_HAS_HCD=y 1821CONFIG_USB_ARCH_HAS_HCD=y
1640CONFIG_USB_ARCH_HAS_OHCI=y 1822CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1652,6 +1834,8 @@ CONFIG_USB_DEVICEFS=y
1652CONFIG_USB_SUSPEND=y 1834CONFIG_USB_SUSPEND=y
1653# CONFIG_USB_OTG is not set 1835# CONFIG_USB_OTG is not set
1654CONFIG_USB_MON=y 1836CONFIG_USB_MON=y
1837# CONFIG_USB_WUSB is not set
1838# CONFIG_USB_WUSB_CBAF is not set
1655 1839
1656# 1840#
1657# USB Host Controller Drivers 1841# USB Host Controller Drivers
@@ -1660,6 +1844,7 @@ CONFIG_USB_MON=y
1660CONFIG_USB_EHCI_HCD=y 1844CONFIG_USB_EHCI_HCD=y
1661# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1845# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1662# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1846# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1847# CONFIG_USB_OXU210HP_HCD is not set
1663# CONFIG_USB_ISP116X_HCD is not set 1848# CONFIG_USB_ISP116X_HCD is not set
1664# CONFIG_USB_ISP1760_HCD is not set 1849# CONFIG_USB_ISP1760_HCD is not set
1665CONFIG_USB_OHCI_HCD=y 1850CONFIG_USB_OHCI_HCD=y
@@ -1669,6 +1854,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1669CONFIG_USB_UHCI_HCD=y 1854CONFIG_USB_UHCI_HCD=y
1670# CONFIG_USB_SL811_HCD is not set 1855# CONFIG_USB_SL811_HCD is not set
1671# CONFIG_USB_R8A66597_HCD is not set 1856# CONFIG_USB_R8A66597_HCD is not set
1857# CONFIG_USB_WHCI_HCD is not set
1858# CONFIG_USB_HWA_HCD is not set
1672 1859
1673# 1860#
1674# USB Device Class drivers 1861# USB Device Class drivers
@@ -1676,20 +1863,20 @@ CONFIG_USB_UHCI_HCD=y
1676# CONFIG_USB_ACM is not set 1863# CONFIG_USB_ACM is not set
1677CONFIG_USB_PRINTER=y 1864CONFIG_USB_PRINTER=y
1678# CONFIG_USB_WDM is not set 1865# CONFIG_USB_WDM is not set
1866# CONFIG_USB_TMC is not set
1679 1867
1680# 1868#
1681# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1869# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1682# 1870#
1683 1871
1684# 1872#
1685# may also be needed; see USB_STORAGE Help for more information 1873# see USB_STORAGE Help for more information
1686# 1874#
1687CONFIG_USB_STORAGE=y 1875CONFIG_USB_STORAGE=y
1688# CONFIG_USB_STORAGE_DEBUG is not set 1876# CONFIG_USB_STORAGE_DEBUG is not set
1689# CONFIG_USB_STORAGE_DATAFAB is not set 1877# CONFIG_USB_STORAGE_DATAFAB is not set
1690# CONFIG_USB_STORAGE_FREECOM is not set 1878# CONFIG_USB_STORAGE_FREECOM is not set
1691# CONFIG_USB_STORAGE_ISD200 is not set 1879# CONFIG_USB_STORAGE_ISD200 is not set
1692# CONFIG_USB_STORAGE_DPCM is not set
1693# CONFIG_USB_STORAGE_USBAT is not set 1880# CONFIG_USB_STORAGE_USBAT is not set
1694# CONFIG_USB_STORAGE_SDDR09 is not set 1881# CONFIG_USB_STORAGE_SDDR09 is not set
1695# CONFIG_USB_STORAGE_SDDR55 is not set 1882# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1697,7 +1884,6 @@ CONFIG_USB_STORAGE=y
1697# CONFIG_USB_STORAGE_ALAUDA is not set 1884# CONFIG_USB_STORAGE_ALAUDA is not set
1698# CONFIG_USB_STORAGE_ONETOUCH is not set 1885# CONFIG_USB_STORAGE_ONETOUCH is not set
1699# CONFIG_USB_STORAGE_KARMA is not set 1886# CONFIG_USB_STORAGE_KARMA is not set
1700# CONFIG_USB_STORAGE_SIERRA is not set
1701# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1887# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1702CONFIG_USB_LIBUSUAL=y 1888CONFIG_USB_LIBUSUAL=y
1703 1889
@@ -1718,6 +1904,7 @@ CONFIG_USB_LIBUSUAL=y
1718# CONFIG_USB_EMI62 is not set 1904# CONFIG_USB_EMI62 is not set
1719# CONFIG_USB_EMI26 is not set 1905# CONFIG_USB_EMI26 is not set
1720# CONFIG_USB_ADUTUX is not set 1906# CONFIG_USB_ADUTUX is not set
1907# CONFIG_USB_SEVSEG is not set
1721# CONFIG_USB_RIO500 is not set 1908# CONFIG_USB_RIO500 is not set
1722# CONFIG_USB_LEGOTOWER is not set 1909# CONFIG_USB_LEGOTOWER is not set
1723# CONFIG_USB_LCD is not set 1910# CONFIG_USB_LCD is not set
@@ -1735,7 +1922,13 @@ CONFIG_USB_LIBUSUAL=y
1735# CONFIG_USB_IOWARRIOR is not set 1922# CONFIG_USB_IOWARRIOR is not set
1736# CONFIG_USB_TEST is not set 1923# CONFIG_USB_TEST is not set
1737# CONFIG_USB_ISIGHTFW is not set 1924# CONFIG_USB_ISIGHTFW is not set
1925# CONFIG_USB_VST is not set
1738# CONFIG_USB_GADGET is not set 1926# CONFIG_USB_GADGET is not set
1927
1928#
1929# OTG and related infrastructure
1930#
1931# CONFIG_UWB is not set
1739# CONFIG_MMC is not set 1932# CONFIG_MMC is not set
1740# CONFIG_MEMSTICK is not set 1933# CONFIG_MEMSTICK is not set
1741CONFIG_NEW_LEDS=y 1934CONFIG_NEW_LEDS=y
@@ -1744,6 +1937,7 @@ CONFIG_LEDS_CLASS=y
1744# 1937#
1745# LED drivers 1938# LED drivers
1746# 1939#
1940# CONFIG_LEDS_ALIX2 is not set
1747# CONFIG_LEDS_PCA9532 is not set 1941# CONFIG_LEDS_PCA9532 is not set
1748# CONFIG_LEDS_CLEVO_MAIL is not set 1942# CONFIG_LEDS_CLEVO_MAIL is not set
1749# CONFIG_LEDS_PCA955X is not set 1943# CONFIG_LEDS_PCA955X is not set
@@ -1754,6 +1948,7 @@ CONFIG_LEDS_CLASS=y
1754CONFIG_LEDS_TRIGGERS=y 1948CONFIG_LEDS_TRIGGERS=y
1755# CONFIG_LEDS_TRIGGER_TIMER is not set 1949# CONFIG_LEDS_TRIGGER_TIMER is not set
1756# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 1950# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1951# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1757# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 1952# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1758# CONFIG_ACCESSIBILITY is not set 1953# CONFIG_ACCESSIBILITY is not set
1759# CONFIG_INFINIBAND is not set 1954# CONFIG_INFINIBAND is not set
@@ -1793,6 +1988,7 @@ CONFIG_RTC_INTF_DEV=y
1793# CONFIG_RTC_DRV_M41T80 is not set 1988# CONFIG_RTC_DRV_M41T80 is not set
1794# CONFIG_RTC_DRV_S35390A is not set 1989# CONFIG_RTC_DRV_S35390A is not set
1795# CONFIG_RTC_DRV_FM3130 is not set 1990# CONFIG_RTC_DRV_FM3130 is not set
1991# CONFIG_RTC_DRV_RX8581 is not set
1796 1992
1797# 1993#
1798# SPI RTC drivers 1994# SPI RTC drivers
@@ -1802,12 +1998,15 @@ CONFIG_RTC_INTF_DEV=y
1802# Platform RTC drivers 1998# Platform RTC drivers
1803# 1999#
1804CONFIG_RTC_DRV_CMOS=y 2000CONFIG_RTC_DRV_CMOS=y
2001# CONFIG_RTC_DRV_DS1286 is not set
1805# CONFIG_RTC_DRV_DS1511 is not set 2002# CONFIG_RTC_DRV_DS1511 is not set
1806# CONFIG_RTC_DRV_DS1553 is not set 2003# CONFIG_RTC_DRV_DS1553 is not set
1807# CONFIG_RTC_DRV_DS1742 is not set 2004# CONFIG_RTC_DRV_DS1742 is not set
1808# CONFIG_RTC_DRV_STK17TA8 is not set 2005# CONFIG_RTC_DRV_STK17TA8 is not set
1809# CONFIG_RTC_DRV_M48T86 is not set 2006# CONFIG_RTC_DRV_M48T86 is not set
2007# CONFIG_RTC_DRV_M48T35 is not set
1810# CONFIG_RTC_DRV_M48T59 is not set 2008# CONFIG_RTC_DRV_M48T59 is not set
2009# CONFIG_RTC_DRV_BQ4802 is not set
1811# CONFIG_RTC_DRV_V3020 is not set 2010# CONFIG_RTC_DRV_V3020 is not set
1812 2011
1813# 2012#
@@ -1820,6 +2019,21 @@ CONFIG_DMADEVICES=y
1820# 2019#
1821# CONFIG_INTEL_IOATDMA is not set 2020# CONFIG_INTEL_IOATDMA is not set
1822# CONFIG_UIO is not set 2021# CONFIG_UIO is not set
2022# CONFIG_STAGING is not set
2023CONFIG_X86_PLATFORM_DEVICES=y
2024# CONFIG_ACER_WMI is not set
2025# CONFIG_ASUS_LAPTOP is not set
2026# CONFIG_FUJITSU_LAPTOP is not set
2027# CONFIG_MSI_LAPTOP is not set
2028# CONFIG_PANASONIC_LAPTOP is not set
2029# CONFIG_COMPAL_LAPTOP is not set
2030# CONFIG_SONY_LAPTOP is not set
2031# CONFIG_THINKPAD_ACPI is not set
2032# CONFIG_INTEL_MENLOW is not set
2033CONFIG_EEEPC_LAPTOP=y
2034# CONFIG_ACPI_WMI is not set
2035# CONFIG_ACPI_ASUS is not set
2036# CONFIG_ACPI_TOSHIBA is not set
1823 2037
1824# 2038#
1825# Firmware Drivers 2039# Firmware Drivers
@@ -1830,8 +2044,7 @@ CONFIG_EFI_VARS=y
1830# CONFIG_DELL_RBU is not set 2044# CONFIG_DELL_RBU is not set
1831# CONFIG_DCDBAS is not set 2045# CONFIG_DCDBAS is not set
1832CONFIG_DMIID=y 2046CONFIG_DMIID=y
1833CONFIG_ISCSI_IBFT_FIND=y 2047# CONFIG_ISCSI_IBFT_FIND is not set
1834CONFIG_ISCSI_IBFT=y
1835 2048
1836# 2049#
1837# File systems 2050# File systems
@@ -1841,22 +2054,25 @@ CONFIG_EXT3_FS=y
1841CONFIG_EXT3_FS_XATTR=y 2054CONFIG_EXT3_FS_XATTR=y
1842CONFIG_EXT3_FS_POSIX_ACL=y 2055CONFIG_EXT3_FS_POSIX_ACL=y
1843CONFIG_EXT3_FS_SECURITY=y 2056CONFIG_EXT3_FS_SECURITY=y
1844# CONFIG_EXT4DEV_FS is not set 2057# CONFIG_EXT4_FS is not set
1845CONFIG_JBD=y 2058CONFIG_JBD=y
1846# CONFIG_JBD_DEBUG is not set 2059# CONFIG_JBD_DEBUG is not set
1847CONFIG_FS_MBCACHE=y 2060CONFIG_FS_MBCACHE=y
1848# CONFIG_REISERFS_FS is not set 2061# CONFIG_REISERFS_FS is not set
1849# CONFIG_JFS_FS is not set 2062# CONFIG_JFS_FS is not set
1850CONFIG_FS_POSIX_ACL=y 2063CONFIG_FS_POSIX_ACL=y
2064CONFIG_FILE_LOCKING=y
1851# CONFIG_XFS_FS is not set 2065# CONFIG_XFS_FS is not set
1852# CONFIG_GFS2_FS is not set 2066# CONFIG_GFS2_FS is not set
1853# CONFIG_OCFS2_FS is not set 2067# CONFIG_OCFS2_FS is not set
2068# CONFIG_BTRFS_FS is not set
1854CONFIG_DNOTIFY=y 2069CONFIG_DNOTIFY=y
1855CONFIG_INOTIFY=y 2070CONFIG_INOTIFY=y
1856CONFIG_INOTIFY_USER=y 2071CONFIG_INOTIFY_USER=y
1857CONFIG_QUOTA=y 2072CONFIG_QUOTA=y
1858CONFIG_QUOTA_NETLINK_INTERFACE=y 2073CONFIG_QUOTA_NETLINK_INTERFACE=y
1859# CONFIG_PRINT_QUOTA_WARNING is not set 2074# CONFIG_PRINT_QUOTA_WARNING is not set
2075CONFIG_QUOTA_TREE=y
1860# CONFIG_QFMT_V1 is not set 2076# CONFIG_QFMT_V1 is not set
1861CONFIG_QFMT_V2=y 2077CONFIG_QFMT_V2=y
1862CONFIG_QUOTACTL=y 2078CONFIG_QUOTACTL=y
@@ -1890,16 +2106,14 @@ CONFIG_PROC_FS=y
1890CONFIG_PROC_KCORE=y 2106CONFIG_PROC_KCORE=y
1891CONFIG_PROC_VMCORE=y 2107CONFIG_PROC_VMCORE=y
1892CONFIG_PROC_SYSCTL=y 2108CONFIG_PROC_SYSCTL=y
2109CONFIG_PROC_PAGE_MONITOR=y
1893CONFIG_SYSFS=y 2110CONFIG_SYSFS=y
1894CONFIG_TMPFS=y 2111CONFIG_TMPFS=y
1895CONFIG_TMPFS_POSIX_ACL=y 2112CONFIG_TMPFS_POSIX_ACL=y
1896CONFIG_HUGETLBFS=y 2113CONFIG_HUGETLBFS=y
1897CONFIG_HUGETLB_PAGE=y 2114CONFIG_HUGETLB_PAGE=y
1898# CONFIG_CONFIGFS_FS is not set 2115# CONFIG_CONFIGFS_FS is not set
1899 2116CONFIG_MISC_FILESYSTEMS=y
1900#
1901# Miscellaneous filesystems
1902#
1903# CONFIG_ADFS_FS is not set 2117# CONFIG_ADFS_FS is not set
1904# CONFIG_AFFS_FS is not set 2118# CONFIG_AFFS_FS is not set
1905# CONFIG_ECRYPT_FS is not set 2119# CONFIG_ECRYPT_FS is not set
@@ -1909,6 +2123,7 @@ CONFIG_HUGETLB_PAGE=y
1909# CONFIG_BFS_FS is not set 2123# CONFIG_BFS_FS is not set
1910# CONFIG_EFS_FS is not set 2124# CONFIG_EFS_FS is not set
1911# CONFIG_CRAMFS is not set 2125# CONFIG_CRAMFS is not set
2126# CONFIG_SQUASHFS is not set
1912# CONFIG_VXFS_FS is not set 2127# CONFIG_VXFS_FS is not set
1913# CONFIG_MINIX_FS is not set 2128# CONFIG_MINIX_FS is not set
1914# CONFIG_OMFS_FS is not set 2129# CONFIG_OMFS_FS is not set
@@ -1930,6 +2145,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1930CONFIG_NFS_COMMON=y 2145CONFIG_NFS_COMMON=y
1931CONFIG_SUNRPC=y 2146CONFIG_SUNRPC=y
1932CONFIG_SUNRPC_GSS=y 2147CONFIG_SUNRPC_GSS=y
2148# CONFIG_SUNRPC_REGISTER_V4 is not set
1933CONFIG_RPCSEC_GSS_KRB5=y 2149CONFIG_RPCSEC_GSS_KRB5=y
1934# CONFIG_RPCSEC_GSS_SPKM3 is not set 2150# CONFIG_RPCSEC_GSS_SPKM3 is not set
1935# CONFIG_SMB_FS is not set 2151# CONFIG_SMB_FS is not set
@@ -2006,7 +2222,7 @@ CONFIG_NLS_UTF8=y
2006# 2222#
2007CONFIG_TRACE_IRQFLAGS_SUPPORT=y 2223CONFIG_TRACE_IRQFLAGS_SUPPORT=y
2008CONFIG_PRINTK_TIME=y 2224CONFIG_PRINTK_TIME=y
2009CONFIG_ENABLE_WARN_DEPRECATED=y 2225# CONFIG_ENABLE_WARN_DEPRECATED is not set
2010CONFIG_ENABLE_MUST_CHECK=y 2226CONFIG_ENABLE_MUST_CHECK=y
2011CONFIG_FRAME_WARN=2048 2227CONFIG_FRAME_WARN=2048
2012CONFIG_MAGIC_SYSRQ=y 2228CONFIG_MAGIC_SYSRQ=y
@@ -2035,40 +2251,60 @@ CONFIG_TIMER_STATS=y
2035CONFIG_DEBUG_BUGVERBOSE=y 2251CONFIG_DEBUG_BUGVERBOSE=y
2036# CONFIG_DEBUG_INFO is not set 2252# CONFIG_DEBUG_INFO is not set
2037# CONFIG_DEBUG_VM is not set 2253# CONFIG_DEBUG_VM is not set
2254# CONFIG_DEBUG_VIRTUAL is not set
2038# CONFIG_DEBUG_WRITECOUNT is not set 2255# CONFIG_DEBUG_WRITECOUNT is not set
2039CONFIG_DEBUG_MEMORY_INIT=y 2256CONFIG_DEBUG_MEMORY_INIT=y
2040# CONFIG_DEBUG_LIST is not set 2257# CONFIG_DEBUG_LIST is not set
2041# CONFIG_DEBUG_SG is not set 2258# CONFIG_DEBUG_SG is not set
2259# CONFIG_DEBUG_NOTIFIERS is not set
2260CONFIG_ARCH_WANT_FRAME_POINTERS=y
2042CONFIG_FRAME_POINTER=y 2261CONFIG_FRAME_POINTER=y
2043# CONFIG_BOOT_PRINTK_DELAY is not set 2262# CONFIG_BOOT_PRINTK_DELAY is not set
2044# CONFIG_RCU_TORTURE_TEST is not set 2263# CONFIG_RCU_TORTURE_TEST is not set
2264# CONFIG_RCU_CPU_STALL_DETECTOR is not set
2045# CONFIG_KPROBES_SANITY_TEST is not set 2265# CONFIG_KPROBES_SANITY_TEST is not set
2046# CONFIG_BACKTRACE_SELF_TEST is not set 2266# CONFIG_BACKTRACE_SELF_TEST is not set
2267# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
2047# CONFIG_LKDTM is not set 2268# CONFIG_LKDTM is not set
2048# CONFIG_FAULT_INJECTION is not set 2269# CONFIG_FAULT_INJECTION is not set
2049# CONFIG_LATENCYTOP is not set 2270# CONFIG_LATENCYTOP is not set
2050CONFIG_SYSCTL_SYSCALL_CHECK=y 2271CONFIG_SYSCTL_SYSCALL_CHECK=y
2051CONFIG_HAVE_FTRACE=y 2272CONFIG_USER_STACKTRACE_SUPPORT=y
2273CONFIG_HAVE_FUNCTION_TRACER=y
2274CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2275CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
2052CONFIG_HAVE_DYNAMIC_FTRACE=y 2276CONFIG_HAVE_DYNAMIC_FTRACE=y
2053# CONFIG_FTRACE is not set 2277CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2278CONFIG_HAVE_HW_BRANCH_TRACER=y
2279
2280#
2281# Tracers
2282#
2283# CONFIG_FUNCTION_TRACER is not set
2054# CONFIG_IRQSOFF_TRACER is not set 2284# CONFIG_IRQSOFF_TRACER is not set
2055# CONFIG_SYSPROF_TRACER is not set 2285# CONFIG_SYSPROF_TRACER is not set
2056# CONFIG_SCHED_TRACER is not set 2286# CONFIG_SCHED_TRACER is not set
2057# CONFIG_CONTEXT_SWITCH_TRACER is not set 2287# CONFIG_CONTEXT_SWITCH_TRACER is not set
2288# CONFIG_BOOT_TRACER is not set
2289# CONFIG_TRACE_BRANCH_PROFILING is not set
2290# CONFIG_POWER_TRACER is not set
2291# CONFIG_STACK_TRACER is not set
2292# CONFIG_HW_BRANCH_TRACER is not set
2058CONFIG_PROVIDE_OHCI1394_DMA_INIT=y 2293CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
2294# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
2059# CONFIG_SAMPLES is not set 2295# CONFIG_SAMPLES is not set
2060CONFIG_HAVE_ARCH_KGDB=y 2296CONFIG_HAVE_ARCH_KGDB=y
2061# CONFIG_KGDB is not set 2297# CONFIG_KGDB is not set
2062# CONFIG_STRICT_DEVMEM is not set 2298# CONFIG_STRICT_DEVMEM is not set
2063CONFIG_X86_VERBOSE_BOOTUP=y 2299CONFIG_X86_VERBOSE_BOOTUP=y
2064CONFIG_EARLY_PRINTK=y 2300CONFIG_EARLY_PRINTK=y
2301CONFIG_EARLY_PRINTK_DBGP=y
2065CONFIG_DEBUG_STACKOVERFLOW=y 2302CONFIG_DEBUG_STACKOVERFLOW=y
2066CONFIG_DEBUG_STACK_USAGE=y 2303CONFIG_DEBUG_STACK_USAGE=y
2067# CONFIG_DEBUG_PAGEALLOC is not set 2304# CONFIG_DEBUG_PAGEALLOC is not set
2068# CONFIG_DEBUG_PER_CPU_MAPS is not set 2305# CONFIG_DEBUG_PER_CPU_MAPS is not set
2069# CONFIG_X86_PTDUMP is not set 2306# CONFIG_X86_PTDUMP is not set
2070CONFIG_DEBUG_RODATA=y 2307CONFIG_DEBUG_RODATA=y
2071# CONFIG_DIRECT_GBPAGES is not set
2072# CONFIG_DEBUG_RODATA_TEST is not set 2308# CONFIG_DEBUG_RODATA_TEST is not set
2073CONFIG_DEBUG_NX_TEST=m 2309CONFIG_DEBUG_NX_TEST=m
2074# CONFIG_IOMMU_DEBUG is not set 2310# CONFIG_IOMMU_DEBUG is not set
@@ -2092,8 +2328,10 @@ CONFIG_OPTIMIZE_INLINING=y
2092CONFIG_KEYS=y 2328CONFIG_KEYS=y
2093CONFIG_KEYS_DEBUG_PROC_KEYS=y 2329CONFIG_KEYS_DEBUG_PROC_KEYS=y
2094CONFIG_SECURITY=y 2330CONFIG_SECURITY=y
2331# CONFIG_SECURITYFS is not set
2095CONFIG_SECURITY_NETWORK=y 2332CONFIG_SECURITY_NETWORK=y
2096# CONFIG_SECURITY_NETWORK_XFRM is not set 2333# CONFIG_SECURITY_NETWORK_XFRM is not set
2334# CONFIG_SECURITY_PATH is not set
2097CONFIG_SECURITY_FILE_CAPABILITIES=y 2335CONFIG_SECURITY_FILE_CAPABILITIES=y
2098# CONFIG_SECURITY_ROOTPLUG is not set 2336# CONFIG_SECURITY_ROOTPLUG is not set
2099CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 2337CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
@@ -2104,7 +2342,6 @@ CONFIG_SECURITY_SELINUX_DISABLE=y
2104CONFIG_SECURITY_SELINUX_DEVELOP=y 2342CONFIG_SECURITY_SELINUX_DEVELOP=y
2105CONFIG_SECURITY_SELINUX_AVC_STATS=y 2343CONFIG_SECURITY_SELINUX_AVC_STATS=y
2106CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 2344CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
2107# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
2108# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set 2345# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
2109# CONFIG_SECURITY_SMACK is not set 2346# CONFIG_SECURITY_SMACK is not set
2110CONFIG_CRYPTO=y 2347CONFIG_CRYPTO=y
@@ -2112,11 +2349,18 @@ CONFIG_CRYPTO=y
2112# 2349#
2113# Crypto core or helper 2350# Crypto core or helper
2114# 2351#
2352# CONFIG_CRYPTO_FIPS is not set
2115CONFIG_CRYPTO_ALGAPI=y 2353CONFIG_CRYPTO_ALGAPI=y
2354CONFIG_CRYPTO_ALGAPI2=y
2116CONFIG_CRYPTO_AEAD=y 2355CONFIG_CRYPTO_AEAD=y
2356CONFIG_CRYPTO_AEAD2=y
2117CONFIG_CRYPTO_BLKCIPHER=y 2357CONFIG_CRYPTO_BLKCIPHER=y
2358CONFIG_CRYPTO_BLKCIPHER2=y
2118CONFIG_CRYPTO_HASH=y 2359CONFIG_CRYPTO_HASH=y
2360CONFIG_CRYPTO_HASH2=y
2361CONFIG_CRYPTO_RNG2=y
2119CONFIG_CRYPTO_MANAGER=y 2362CONFIG_CRYPTO_MANAGER=y
2363CONFIG_CRYPTO_MANAGER2=y
2120# CONFIG_CRYPTO_GF128MUL is not set 2364# CONFIG_CRYPTO_GF128MUL is not set
2121# CONFIG_CRYPTO_NULL is not set 2365# CONFIG_CRYPTO_NULL is not set
2122# CONFIG_CRYPTO_CRYPTD is not set 2366# CONFIG_CRYPTO_CRYPTD is not set
@@ -2151,6 +2395,7 @@ CONFIG_CRYPTO_HMAC=y
2151# Digest 2395# Digest
2152# 2396#
2153# CONFIG_CRYPTO_CRC32C is not set 2397# CONFIG_CRYPTO_CRC32C is not set
2398# CONFIG_CRYPTO_CRC32C_INTEL is not set
2154# CONFIG_CRYPTO_MD4 is not set 2399# CONFIG_CRYPTO_MD4 is not set
2155CONFIG_CRYPTO_MD5=y 2400CONFIG_CRYPTO_MD5=y
2156# CONFIG_CRYPTO_MICHAEL_MIC is not set 2401# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -2191,6 +2436,11 @@ CONFIG_CRYPTO_DES=y
2191# 2436#
2192# CONFIG_CRYPTO_DEFLATE is not set 2437# CONFIG_CRYPTO_DEFLATE is not set
2193# CONFIG_CRYPTO_LZO is not set 2438# CONFIG_CRYPTO_LZO is not set
2439
2440#
2441# Random Number Generation
2442#
2443# CONFIG_CRYPTO_ANSI_CPRNG is not set
2194CONFIG_CRYPTO_HW=y 2444CONFIG_CRYPTO_HW=y
2195# CONFIG_CRYPTO_DEV_HIFN_795X is not set 2445# CONFIG_CRYPTO_DEV_HIFN_795X is not set
2196CONFIG_HAVE_KVM=y 2446CONFIG_HAVE_KVM=y
@@ -2205,6 +2455,7 @@ CONFIG_VIRTUALIZATION=y
2205CONFIG_BITREVERSE=y 2455CONFIG_BITREVERSE=y
2206CONFIG_GENERIC_FIND_FIRST_BIT=y 2456CONFIG_GENERIC_FIND_FIRST_BIT=y
2207CONFIG_GENERIC_FIND_NEXT_BIT=y 2457CONFIG_GENERIC_FIND_NEXT_BIT=y
2458CONFIG_GENERIC_FIND_LAST_BIT=y
2208# CONFIG_CRC_CCITT is not set 2459# CONFIG_CRC_CCITT is not set
2209# CONFIG_CRC16 is not set 2460# CONFIG_CRC16 is not set
2210CONFIG_CRC_T10DIF=y 2461CONFIG_CRC_T10DIF=y
diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
index 9dabd00e9805..588a7aa937e1 100644
--- a/arch/x86/ia32/ia32_signal.c
+++ b/arch/x86/ia32/ia32_signal.c
@@ -33,8 +33,6 @@
33#include <asm/sigframe.h> 33#include <asm/sigframe.h>
34#include <asm/sys_ia32.h> 34#include <asm/sys_ia32.h>
35 35
36#define DEBUG_SIG 0
37
38#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 36#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
39 37
40#define FIX_EFLAGS (X86_EFLAGS_AC | X86_EFLAGS_OF | \ 38#define FIX_EFLAGS (X86_EFLAGS_AC | X86_EFLAGS_OF | \
@@ -46,78 +44,83 @@ void signal_fault(struct pt_regs *regs, void __user *frame, char *where);
46 44
47int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from) 45int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from)
48{ 46{
49 int err; 47 int err = 0;
50 48
51 if (!access_ok(VERIFY_WRITE, to, sizeof(compat_siginfo_t))) 49 if (!access_ok(VERIFY_WRITE, to, sizeof(compat_siginfo_t)))
52 return -EFAULT; 50 return -EFAULT;
53 51
54 /* If you change siginfo_t structure, please make sure that 52 put_user_try {
55 this code is fixed accordingly. 53 /* If you change siginfo_t structure, please make sure that
56 It should never copy any pad contained in the structure 54 this code is fixed accordingly.
57 to avoid security leaks, but must copy the generic 55 It should never copy any pad contained in the structure
58 3 ints plus the relevant union member. */ 56 to avoid security leaks, but must copy the generic
59 err = __put_user(from->si_signo, &to->si_signo); 57 3 ints plus the relevant union member. */
60 err |= __put_user(from->si_errno, &to->si_errno); 58 put_user_ex(from->si_signo, &to->si_signo);
61 err |= __put_user((short)from->si_code, &to->si_code); 59 put_user_ex(from->si_errno, &to->si_errno);
62 60 put_user_ex((short)from->si_code, &to->si_code);
63 if (from->si_code < 0) { 61
64 err |= __put_user(from->si_pid, &to->si_pid); 62 if (from->si_code < 0) {
65 err |= __put_user(from->si_uid, &to->si_uid); 63 put_user_ex(from->si_pid, &to->si_pid);
66 err |= __put_user(ptr_to_compat(from->si_ptr), &to->si_ptr); 64 put_user_ex(from->si_uid, &to->si_uid);
67 } else { 65 put_user_ex(ptr_to_compat(from->si_ptr), &to->si_ptr);
68 /* 66 } else {
69 * First 32bits of unions are always present: 67 /*
70 * si_pid === si_band === si_tid === si_addr(LS half) 68 * First 32bits of unions are always present:
71 */ 69 * si_pid === si_band === si_tid === si_addr(LS half)
72 err |= __put_user(from->_sifields._pad[0], 70 */
73 &to->_sifields._pad[0]); 71 put_user_ex(from->_sifields._pad[0],
74 switch (from->si_code >> 16) { 72 &to->_sifields._pad[0]);
75 case __SI_FAULT >> 16: 73 switch (from->si_code >> 16) {
76 break; 74 case __SI_FAULT >> 16:
77 case __SI_CHLD >> 16: 75 break;
78 err |= __put_user(from->si_utime, &to->si_utime); 76 case __SI_CHLD >> 16:
79 err |= __put_user(from->si_stime, &to->si_stime); 77 put_user_ex(from->si_utime, &to->si_utime);
80 err |= __put_user(from->si_status, &to->si_status); 78 put_user_ex(from->si_stime, &to->si_stime);
81 /* FALL THROUGH */ 79 put_user_ex(from->si_status, &to->si_status);
82 default: 80 /* FALL THROUGH */
83 case __SI_KILL >> 16: 81 default:
84 err |= __put_user(from->si_uid, &to->si_uid); 82 case __SI_KILL >> 16:
85 break; 83 put_user_ex(from->si_uid, &to->si_uid);
86 case __SI_POLL >> 16: 84 break;
87 err |= __put_user(from->si_fd, &to->si_fd); 85 case __SI_POLL >> 16:
88 break; 86 put_user_ex(from->si_fd, &to->si_fd);
89 case __SI_TIMER >> 16: 87 break;
90 err |= __put_user(from->si_overrun, &to->si_overrun); 88 case __SI_TIMER >> 16:
91 err |= __put_user(ptr_to_compat(from->si_ptr), 89 put_user_ex(from->si_overrun, &to->si_overrun);
92 &to->si_ptr); 90 put_user_ex(ptr_to_compat(from->si_ptr),
93 break; 91 &to->si_ptr);
94 /* This is not generated by the kernel as of now. */ 92 break;
95 case __SI_RT >> 16: 93 /* This is not generated by the kernel as of now. */
96 case __SI_MESGQ >> 16: 94 case __SI_RT >> 16:
97 err |= __put_user(from->si_uid, &to->si_uid); 95 case __SI_MESGQ >> 16:
98 err |= __put_user(from->si_int, &to->si_int); 96 put_user_ex(from->si_uid, &to->si_uid);
99 break; 97 put_user_ex(from->si_int, &to->si_int);
98 break;
99 }
100 } 100 }
101 } 101 } put_user_catch(err);
102
102 return err; 103 return err;
103} 104}
104 105
105int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from) 106int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from)
106{ 107{
107 int err; 108 int err = 0;
108 u32 ptr32; 109 u32 ptr32;
109 110
110 if (!access_ok(VERIFY_READ, from, sizeof(compat_siginfo_t))) 111 if (!access_ok(VERIFY_READ, from, sizeof(compat_siginfo_t)))
111 return -EFAULT; 112 return -EFAULT;
112 113
113 err = __get_user(to->si_signo, &from->si_signo); 114 get_user_try {
114 err |= __get_user(to->si_errno, &from->si_errno); 115 get_user_ex(to->si_signo, &from->si_signo);
115 err |= __get_user(to->si_code, &from->si_code); 116 get_user_ex(to->si_errno, &from->si_errno);
117 get_user_ex(to->si_code, &from->si_code);
116 118
117 err |= __get_user(to->si_pid, &from->si_pid); 119 get_user_ex(to->si_pid, &from->si_pid);
118 err |= __get_user(to->si_uid, &from->si_uid); 120 get_user_ex(to->si_uid, &from->si_uid);
119 err |= __get_user(ptr32, &from->si_ptr); 121 get_user_ex(ptr32, &from->si_ptr);
120 to->si_ptr = compat_ptr(ptr32); 122 to->si_ptr = compat_ptr(ptr32);
123 } get_user_catch(err);
121 124
122 return err; 125 return err;
123} 126}
@@ -142,17 +145,23 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
142 struct pt_regs *regs) 145 struct pt_regs *regs)
143{ 146{
144 stack_t uss, uoss; 147 stack_t uss, uoss;
145 int ret; 148 int ret, err = 0;
146 mm_segment_t seg; 149 mm_segment_t seg;
147 150
148 if (uss_ptr) { 151 if (uss_ptr) {
149 u32 ptr; 152 u32 ptr;
150 153
151 memset(&uss, 0, sizeof(stack_t)); 154 memset(&uss, 0, sizeof(stack_t));
152 if (!access_ok(VERIFY_READ, uss_ptr, sizeof(stack_ia32_t)) || 155 if (!access_ok(VERIFY_READ, uss_ptr, sizeof(stack_ia32_t)))
153 __get_user(ptr, &uss_ptr->ss_sp) || 156 return -EFAULT;
154 __get_user(uss.ss_flags, &uss_ptr->ss_flags) || 157
155 __get_user(uss.ss_size, &uss_ptr->ss_size)) 158 get_user_try {
159 get_user_ex(ptr, &uss_ptr->ss_sp);
160 get_user_ex(uss.ss_flags, &uss_ptr->ss_flags);
161 get_user_ex(uss.ss_size, &uss_ptr->ss_size);
162 } get_user_catch(err);
163
164 if (err)
156 return -EFAULT; 165 return -EFAULT;
157 uss.ss_sp = compat_ptr(ptr); 166 uss.ss_sp = compat_ptr(ptr);
158 } 167 }
@@ -161,10 +170,16 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
161 ret = do_sigaltstack(uss_ptr ? &uss : NULL, &uoss, regs->sp); 170 ret = do_sigaltstack(uss_ptr ? &uss : NULL, &uoss, regs->sp);
162 set_fs(seg); 171 set_fs(seg);
163 if (ret >= 0 && uoss_ptr) { 172 if (ret >= 0 && uoss_ptr) {
164 if (!access_ok(VERIFY_WRITE, uoss_ptr, sizeof(stack_ia32_t)) || 173 if (!access_ok(VERIFY_WRITE, uoss_ptr, sizeof(stack_ia32_t)))
165 __put_user(ptr_to_compat(uoss.ss_sp), &uoss_ptr->ss_sp) || 174 return -EFAULT;
166 __put_user(uoss.ss_flags, &uoss_ptr->ss_flags) || 175
167 __put_user(uoss.ss_size, &uoss_ptr->ss_size)) 176 put_user_try {
177 put_user_ex(ptr_to_compat(uoss.ss_sp), &uoss_ptr->ss_sp);
178 put_user_ex(uoss.ss_flags, &uoss_ptr->ss_flags);
179 put_user_ex(uoss.ss_size, &uoss_ptr->ss_size);
180 } put_user_catch(err);
181
182 if (err)
168 ret = -EFAULT; 183 ret = -EFAULT;
169 } 184 }
170 return ret; 185 return ret;
@@ -173,75 +188,78 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
173/* 188/*
174 * Do a signal return; undo the signal stack. 189 * Do a signal return; undo the signal stack.
175 */ 190 */
191#define loadsegment_gs(v) load_gs_index(v)
192#define loadsegment_fs(v) loadsegment(fs, v)
193#define loadsegment_ds(v) loadsegment(ds, v)
194#define loadsegment_es(v) loadsegment(es, v)
195
196#define get_user_seg(seg) ({ unsigned int v; savesegment(seg, v); v; })
197#define set_user_seg(seg, v) loadsegment_##seg(v)
198
176#define COPY(x) { \ 199#define COPY(x) { \
177 err |= __get_user(regs->x, &sc->x); \ 200 get_user_ex(regs->x, &sc->x); \
178} 201}
179 202
180#define COPY_SEG_CPL3(seg) { \ 203#define GET_SEG(seg) ({ \
181 unsigned short tmp; \ 204 unsigned short tmp; \
182 err |= __get_user(tmp, &sc->seg); \ 205 get_user_ex(tmp, &sc->seg); \
183 regs->seg = tmp | 3; \ 206 tmp; \
184} 207})
208
209#define COPY_SEG_CPL3(seg) do { \
210 regs->seg = GET_SEG(seg) | 3; \
211} while (0)
185 212
186#define RELOAD_SEG(seg) { \ 213#define RELOAD_SEG(seg) { \
187 unsigned int cur, pre; \ 214 unsigned int pre = GET_SEG(seg); \
188 err |= __get_user(pre, &sc->seg); \ 215 unsigned int cur = get_user_seg(seg); \
189 savesegment(seg, cur); \
190 pre |= 3; \ 216 pre |= 3; \
191 if (pre != cur) \ 217 if (pre != cur) \
192 loadsegment(seg, pre); \ 218 set_user_seg(seg, pre); \
193} 219}
194 220
195static int ia32_restore_sigcontext(struct pt_regs *regs, 221static int ia32_restore_sigcontext(struct pt_regs *regs,
196 struct sigcontext_ia32 __user *sc, 222 struct sigcontext_ia32 __user *sc,
197 unsigned int *pax) 223 unsigned int *pax)
198{ 224{
199 unsigned int tmpflags, gs, oldgs, err = 0; 225 unsigned int tmpflags, err = 0;
200 void __user *buf; 226 void __user *buf;
201 u32 tmp; 227 u32 tmp;
202 228
203 /* Always make any pending restarted system calls return -EINTR */ 229 /* Always make any pending restarted system calls return -EINTR */
204 current_thread_info()->restart_block.fn = do_no_restart_syscall; 230 current_thread_info()->restart_block.fn = do_no_restart_syscall;
205 231
206#if DEBUG_SIG 232 get_user_try {
207 printk(KERN_DEBUG "SIG restore_sigcontext: " 233 /*
208 "sc=%p err(%x) eip(%x) cs(%x) flg(%x)\n", 234 * Reload fs and gs if they have changed in the signal
209 sc, sc->err, sc->ip, sc->cs, sc->flags); 235 * handler. This does not handle long fs/gs base changes in
210#endif 236 * the handler, but does not clobber them at least in the
211 237 * normal case.
212 /* 238 */
213 * Reload fs and gs if they have changed in the signal 239 RELOAD_SEG(gs);
214 * handler. This does not handle long fs/gs base changes in 240 RELOAD_SEG(fs);
215 * the handler, but does not clobber them at least in the 241 RELOAD_SEG(ds);
216 * normal case. 242 RELOAD_SEG(es);
217 */ 243
218 err |= __get_user(gs, &sc->gs); 244 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx);
219 gs |= 3; 245 COPY(dx); COPY(cx); COPY(ip);
220 savesegment(gs, oldgs); 246 /* Don't touch extended registers */
221 if (gs != oldgs) 247
222 load_gs_index(gs); 248 COPY_SEG_CPL3(cs);
223 249 COPY_SEG_CPL3(ss);
224 RELOAD_SEG(fs); 250
225 RELOAD_SEG(ds); 251 get_user_ex(tmpflags, &sc->flags);
226 RELOAD_SEG(es); 252 regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS);
227 253 /* disable syscall checks */
228 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx); 254 regs->orig_ax = -1;
229 COPY(dx); COPY(cx); COPY(ip); 255
230 /* Don't touch extended registers */ 256 get_user_ex(tmp, &sc->fpstate);
231 257 buf = compat_ptr(tmp);
232 COPY_SEG_CPL3(cs); 258 err |= restore_i387_xstate_ia32(buf);
233 COPY_SEG_CPL3(ss); 259
234 260 get_user_ex(*pax, &sc->ax);
235 err |= __get_user(tmpflags, &sc->flags); 261 } get_user_catch(err);
236 regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS); 262
237 /* disable syscall checks */
238 regs->orig_ax = -1;
239
240 err |= __get_user(tmp, &sc->fpstate);
241 buf = compat_ptr(tmp);
242 err |= restore_i387_xstate_ia32(buf);
243
244 err |= __get_user(*pax, &sc->ax);
245 return err; 263 return err;
246} 264}
247 265
@@ -317,38 +335,36 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
317 void __user *fpstate, 335 void __user *fpstate,
318 struct pt_regs *regs, unsigned int mask) 336 struct pt_regs *regs, unsigned int mask)
319{ 337{
320 int tmp, err = 0; 338 int err = 0;
321 339
322 savesegment(gs, tmp); 340 put_user_try {
323 err |= __put_user(tmp, (unsigned int __user *)&sc->gs); 341 put_user_ex(get_user_seg(gs), (unsigned int __user *)&sc->gs);
324 savesegment(fs, tmp); 342 put_user_ex(get_user_seg(fs), (unsigned int __user *)&sc->fs);
325 err |= __put_user(tmp, (unsigned int __user *)&sc->fs); 343 put_user_ex(get_user_seg(ds), (unsigned int __user *)&sc->ds);
326 savesegment(ds, tmp); 344 put_user_ex(get_user_seg(es), (unsigned int __user *)&sc->es);
327 err |= __put_user(tmp, (unsigned int __user *)&sc->ds); 345
328 savesegment(es, tmp); 346 put_user_ex(regs->di, &sc->di);
329 err |= __put_user(tmp, (unsigned int __user *)&sc->es); 347 put_user_ex(regs->si, &sc->si);
330 348 put_user_ex(regs->bp, &sc->bp);
331 err |= __put_user(regs->di, &sc->di); 349 put_user_ex(regs->sp, &sc->sp);
332 err |= __put_user(regs->si, &sc->si); 350 put_user_ex(regs->bx, &sc->bx);
333 err |= __put_user(regs->bp, &sc->bp); 351 put_user_ex(regs->dx, &sc->dx);
334 err |= __put_user(regs->sp, &sc->sp); 352 put_user_ex(regs->cx, &sc->cx);
335 err |= __put_user(regs->bx, &sc->bx); 353 put_user_ex(regs->ax, &sc->ax);
336 err |= __put_user(regs->dx, &sc->dx); 354 put_user_ex(current->thread.trap_no, &sc->trapno);
337 err |= __put_user(regs->cx, &sc->cx); 355 put_user_ex(current->thread.error_code, &sc->err);
338 err |= __put_user(regs->ax, &sc->ax); 356 put_user_ex(regs->ip, &sc->ip);
339 err |= __put_user(current->thread.trap_no, &sc->trapno); 357 put_user_ex(regs->cs, (unsigned int __user *)&sc->cs);
340 err |= __put_user(current->thread.error_code, &sc->err); 358 put_user_ex(regs->flags, &sc->flags);
341 err |= __put_user(regs->ip, &sc->ip); 359 put_user_ex(regs->sp, &sc->sp_at_signal);
342 err |= __put_user(regs->cs, (unsigned int __user *)&sc->cs); 360 put_user_ex(regs->ss, (unsigned int __user *)&sc->ss);
343 err |= __put_user(regs->flags, &sc->flags); 361
344 err |= __put_user(regs->sp, &sc->sp_at_signal); 362 put_user_ex(ptr_to_compat(fpstate), &sc->fpstate);
345 err |= __put_user(regs->ss, (unsigned int __user *)&sc->ss); 363
346 364 /* non-iBCS2 extensions.. */
347 err |= __put_user(ptr_to_compat(fpstate), &sc->fpstate); 365 put_user_ex(mask, &sc->oldmask);
348 366 put_user_ex(current->thread.cr2, &sc->cr2);
349 /* non-iBCS2 extensions.. */ 367 } put_user_catch(err);
350 err |= __put_user(mask, &sc->oldmask);
351 err |= __put_user(current->thread.cr2, &sc->cr2);
352 368
353 return err; 369 return err;
354} 370}
@@ -437,13 +453,17 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
437 else 453 else
438 restorer = &frame->retcode; 454 restorer = &frame->retcode;
439 } 455 }
440 err |= __put_user(ptr_to_compat(restorer), &frame->pretcode);
441 456
442 /* 457 put_user_try {
443 * These are actually not used anymore, but left because some 458 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
444 * gdb versions depend on them as a marker. 459
445 */ 460 /*
446 err |= __put_user(*((u64 *)&code), (u64 *)frame->retcode); 461 * These are actually not used anymore, but left because some
462 * gdb versions depend on them as a marker.
463 */
464 put_user_ex(*((u64 *)&code), (u64 *)frame->retcode);
465 } put_user_catch(err);
466
447 if (err) 467 if (err)
448 return -EFAULT; 468 return -EFAULT;
449 469
@@ -462,11 +482,6 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
462 regs->cs = __USER32_CS; 482 regs->cs = __USER32_CS;
463 regs->ss = __USER32_DS; 483 regs->ss = __USER32_DS;
464 484
465#if DEBUG_SIG
466 printk(KERN_DEBUG "SIG deliver (%s:%d): sp=%p pc=%lx ra=%u\n",
467 current->comm, current->pid, frame, regs->ip, frame->pretcode);
468#endif
469
470 return 0; 485 return 0;
471} 486}
472 487
@@ -496,41 +511,40 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
496 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 511 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
497 return -EFAULT; 512 return -EFAULT;
498 513
499 err |= __put_user(sig, &frame->sig); 514 put_user_try {
500 err |= __put_user(ptr_to_compat(&frame->info), &frame->pinfo); 515 put_user_ex(sig, &frame->sig);
501 err |= __put_user(ptr_to_compat(&frame->uc), &frame->puc); 516 put_user_ex(ptr_to_compat(&frame->info), &frame->pinfo);
502 err |= copy_siginfo_to_user32(&frame->info, info); 517 put_user_ex(ptr_to_compat(&frame->uc), &frame->puc);
503 if (err) 518 err |= copy_siginfo_to_user32(&frame->info, info);
504 return -EFAULT;
505 519
506 /* Create the ucontext. */ 520 /* Create the ucontext. */
507 if (cpu_has_xsave) 521 if (cpu_has_xsave)
508 err |= __put_user(UC_FP_XSTATE, &frame->uc.uc_flags); 522 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags);
509 else 523 else
510 err |= __put_user(0, &frame->uc.uc_flags); 524 put_user_ex(0, &frame->uc.uc_flags);
511 err |= __put_user(0, &frame->uc.uc_link); 525 put_user_ex(0, &frame->uc.uc_link);
512 err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); 526 put_user_ex(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp);
513 err |= __put_user(sas_ss_flags(regs->sp), 527 put_user_ex(sas_ss_flags(regs->sp),
514 &frame->uc.uc_stack.ss_flags); 528 &frame->uc.uc_stack.ss_flags);
515 err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); 529 put_user_ex(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
516 err |= ia32_setup_sigcontext(&frame->uc.uc_mcontext, fpstate, 530 err |= ia32_setup_sigcontext(&frame->uc.uc_mcontext, fpstate,
517 regs, set->sig[0]); 531 regs, set->sig[0]);
518 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 532 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
519 if (err) 533
520 return -EFAULT; 534 if (ka->sa.sa_flags & SA_RESTORER)
535 restorer = ka->sa.sa_restorer;
536 else
537 restorer = VDSO32_SYMBOL(current->mm->context.vdso,
538 rt_sigreturn);
539 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
540
541 /*
542 * Not actually used anymore, but left because some gdb
543 * versions need it.
544 */
545 put_user_ex(*((u64 *)&code), (u64 *)frame->retcode);
546 } put_user_catch(err);
521 547
522 if (ka->sa.sa_flags & SA_RESTORER)
523 restorer = ka->sa.sa_restorer;
524 else
525 restorer = VDSO32_SYMBOL(current->mm->context.vdso,
526 rt_sigreturn);
527 err |= __put_user(ptr_to_compat(restorer), &frame->pretcode);
528
529 /*
530 * Not actually used anymore, but left because some gdb
531 * versions need it.
532 */
533 err |= __put_user(*((u64 *)&code), (u64 *)frame->retcode);
534 if (err) 548 if (err)
535 return -EFAULT; 549 return -EFAULT;
536 550
@@ -549,10 +563,5 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
549 regs->cs = __USER32_CS; 563 regs->cs = __USER32_CS;
550 regs->ss = __USER32_DS; 564 regs->ss = __USER32_DS;
551 565
552#if DEBUG_SIG
553 printk(KERN_DEBUG "SIG deliver (%s:%d): sp=%p pc=%lx ra=%u\n",
554 current->comm, current->pid, frame, regs->ip, frame->pretcode);
555#endif
556
557 return 0; 566 return 0;
558} 567}
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
index 256b00b61892..097a6b64c24d 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -112,8 +112,8 @@ ENTRY(ia32_sysenter_target)
112 CFI_DEF_CFA rsp,0 112 CFI_DEF_CFA rsp,0
113 CFI_REGISTER rsp,rbp 113 CFI_REGISTER rsp,rbp
114 SWAPGS_UNSAFE_STACK 114 SWAPGS_UNSAFE_STACK
115 movq %gs:pda_kernelstack, %rsp 115 movq PER_CPU_VAR(kernel_stack), %rsp
116 addq $(PDA_STACKOFFSET),%rsp 116 addq $(KERNEL_STACK_OFFSET),%rsp
117 /* 117 /*
118 * No need to follow this irqs on/off section: the syscall 118 * No need to follow this irqs on/off section: the syscall
119 * disabled irqs, here we enable it straight after entry: 119 * disabled irqs, here we enable it straight after entry:
@@ -273,13 +273,13 @@ ENDPROC(ia32_sysenter_target)
273ENTRY(ia32_cstar_target) 273ENTRY(ia32_cstar_target)
274 CFI_STARTPROC32 simple 274 CFI_STARTPROC32 simple
275 CFI_SIGNAL_FRAME 275 CFI_SIGNAL_FRAME
276 CFI_DEF_CFA rsp,PDA_STACKOFFSET 276 CFI_DEF_CFA rsp,KERNEL_STACK_OFFSET
277 CFI_REGISTER rip,rcx 277 CFI_REGISTER rip,rcx
278 /*CFI_REGISTER rflags,r11*/ 278 /*CFI_REGISTER rflags,r11*/
279 SWAPGS_UNSAFE_STACK 279 SWAPGS_UNSAFE_STACK
280 movl %esp,%r8d 280 movl %esp,%r8d
281 CFI_REGISTER rsp,r8 281 CFI_REGISTER rsp,r8
282 movq %gs:pda_kernelstack,%rsp 282 movq PER_CPU_VAR(kernel_stack),%rsp
283 /* 283 /*
284 * No need to follow this irqs on/off section: the syscall 284 * No need to follow this irqs on/off section: the syscall
285 * disabled irqs and here we enable it straight after entry: 285 * disabled irqs and here we enable it straight after entry:
@@ -418,9 +418,9 @@ ENTRY(ia32_syscall)
418 orl $TS_COMPAT,TI_status(%r10) 418 orl $TS_COMPAT,TI_status(%r10)
419 testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10) 419 testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
420 jnz ia32_tracesys 420 jnz ia32_tracesys
421ia32_do_syscall:
422 cmpl $(IA32_NR_syscalls-1),%eax 421 cmpl $(IA32_NR_syscalls-1),%eax
423 ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */ 422 ja ia32_badsys
423ia32_do_call:
424 IA32_ARG_FIXUP 424 IA32_ARG_FIXUP
425 call *ia32_sys_call_table(,%rax,8) # xxx: rip relative 425 call *ia32_sys_call_table(,%rax,8) # xxx: rip relative
426ia32_sysret: 426ia32_sysret:
@@ -435,7 +435,9 @@ ia32_tracesys:
435 call syscall_trace_enter 435 call syscall_trace_enter
436 LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ 436 LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */
437 RESTORE_REST 437 RESTORE_REST
438 jmp ia32_do_syscall 438 cmpl $(IA32_NR_syscalls-1),%eax
439 ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */
440 jmp ia32_do_call
439END(ia32_syscall) 441END(ia32_syscall)
440 442
441ia32_badsys: 443ia32_badsys:
diff --git a/arch/x86/include/asm/Kbuild b/arch/x86/include/asm/Kbuild
index a9f8a814a1f7..4a8e80cdcfa5 100644
--- a/arch/x86/include/asm/Kbuild
+++ b/arch/x86/include/asm/Kbuild
@@ -22,4 +22,3 @@ unifdef-y += unistd_32.h
22unifdef-y += unistd_64.h 22unifdef-y += unistd_64.h
23unifdef-y += vm86.h 23unifdef-y += vm86.h
24unifdef-y += vsyscall.h 24unifdef-y += vsyscall.h
25unifdef-y += swab.h
diff --git a/arch/x86/include/asm/a.out-core.h b/arch/x86/include/asm/a.out-core.h
index 37822206083e..bb70e397aa84 100644
--- a/arch/x86/include/asm/a.out-core.h
+++ b/arch/x86/include/asm/a.out-core.h
@@ -23,8 +23,6 @@
23 */ 23 */
24static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump) 24static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump)
25{ 25{
26 u16 gs;
27
28/* changed the size calculations - should hopefully work better. lbt */ 26/* changed the size calculations - should hopefully work better. lbt */
29 dump->magic = CMAGIC; 27 dump->magic = CMAGIC;
30 dump->start_code = 0; 28 dump->start_code = 0;
@@ -57,7 +55,7 @@ static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump)
57 dump->regs.ds = (u16)regs->ds; 55 dump->regs.ds = (u16)regs->ds;
58 dump->regs.es = (u16)regs->es; 56 dump->regs.es = (u16)regs->es;
59 dump->regs.fs = (u16)regs->fs; 57 dump->regs.fs = (u16)regs->fs;
60 savesegment(gs, gs); 58 dump->regs.gs = get_user_gs(regs);
61 dump->regs.orig_ax = regs->orig_ax; 59 dump->regs.orig_ax = regs->orig_ax;
62 dump->regs.ip = regs->ip; 60 dump->regs.ip = regs->ip;
63 dump->regs.cs = (u16)regs->cs; 61 dump->regs.cs = (u16)regs->cs;
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
index 9830681446ad..4518dc500903 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -102,9 +102,6 @@ static inline void disable_acpi(void)
102 acpi_noirq = 1; 102 acpi_noirq = 1;
103} 103}
104 104
105/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
106#define FIX_ACPI_PAGES 4
107
108extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq); 105extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq);
109 106
110static inline void acpi_noirq_set(void) { acpi_noirq = 1; } 107static inline void acpi_noirq_set(void) { acpi_noirq = 1; }
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index ab1d51a8855e..394d177d721b 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -1,15 +1,18 @@
1#ifndef _ASM_X86_APIC_H 1#ifndef _ASM_X86_APIC_H
2#define _ASM_X86_APIC_H 2#define _ASM_X86_APIC_H
3 3
4#include <linux/pm.h> 4#include <linux/cpumask.h>
5#include <linux/delay.h> 5#include <linux/delay.h>
6#include <linux/pm.h>
6 7
7#include <asm/alternative.h> 8#include <asm/alternative.h>
8#include <asm/fixmap.h> 9#include <asm/cpufeature.h>
9#include <asm/apicdef.h>
10#include <asm/processor.h> 10#include <asm/processor.h>
11#include <asm/apicdef.h>
12#include <asm/atomic.h>
13#include <asm/fixmap.h>
14#include <asm/mpspec.h>
11#include <asm/system.h> 15#include <asm/system.h>
12#include <asm/cpufeature.h>
13#include <asm/msr.h> 16#include <asm/msr.h>
14 17
15#define ARCH_APICTIMER_STOPS_ON_C3 1 18#define ARCH_APICTIMER_STOPS_ON_C3 1
@@ -33,7 +36,13 @@
33 } while (0) 36 } while (0)
34 37
35 38
39#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32)
36extern void generic_apic_probe(void); 40extern void generic_apic_probe(void);
41#else
42static inline void generic_apic_probe(void)
43{
44}
45#endif
37 46
38#ifdef CONFIG_X86_LOCAL_APIC 47#ifdef CONFIG_X86_LOCAL_APIC
39 48
@@ -41,6 +50,21 @@ extern unsigned int apic_verbosity;
41extern int local_apic_timer_c2_ok; 50extern int local_apic_timer_c2_ok;
42 51
43extern int disable_apic; 52extern int disable_apic;
53
54#ifdef CONFIG_SMP
55extern void __inquire_remote_apic(int apicid);
56#else /* CONFIG_SMP */
57static inline void __inquire_remote_apic(int apicid)
58{
59}
60#endif /* CONFIG_SMP */
61
62static inline void default_inquire_remote_apic(int apicid)
63{
64 if (apic_verbosity >= APIC_DEBUG)
65 __inquire_remote_apic(apicid);
66}
67
44/* 68/*
45 * Basic functions accessing APICs. 69 * Basic functions accessing APICs.
46 */ 70 */
@@ -51,7 +75,14 @@ extern int disable_apic;
51#define setup_secondary_clock setup_secondary_APIC_clock 75#define setup_secondary_clock setup_secondary_APIC_clock
52#endif 76#endif
53 77
78#ifdef CONFIG_X86_VSMP
54extern int is_vsmp_box(void); 79extern int is_vsmp_box(void);
80#else
81static inline int is_vsmp_box(void)
82{
83 return 0;
84}
85#endif
55extern void xapic_wait_icr_idle(void); 86extern void xapic_wait_icr_idle(void);
56extern u32 safe_xapic_wait_icr_idle(void); 87extern u32 safe_xapic_wait_icr_idle(void);
57extern void xapic_icr_write(u32, u32); 88extern void xapic_icr_write(u32, u32);
@@ -71,6 +102,12 @@ static inline u32 native_apic_mem_read(u32 reg)
71 return *((volatile u32 *)(APIC_BASE + reg)); 102 return *((volatile u32 *)(APIC_BASE + reg));
72} 103}
73 104
105extern void native_apic_wait_icr_idle(void);
106extern u32 native_safe_apic_wait_icr_idle(void);
107extern void native_apic_icr_write(u32 low, u32 id);
108extern u64 native_apic_icr_read(void);
109
110#ifdef CONFIG_X86_X2APIC
74static inline void native_apic_msr_write(u32 reg, u32 v) 111static inline void native_apic_msr_write(u32 reg, u32 v)
75{ 112{
76 if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || 113 if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR ||
@@ -91,8 +128,32 @@ static inline u32 native_apic_msr_read(u32 reg)
91 return low; 128 return low;
92} 129}
93 130
94#ifndef CONFIG_X86_32 131static inline void native_x2apic_wait_icr_idle(void)
95extern int x2apic; 132{
133 /* no need to wait for icr idle in x2apic */
134 return;
135}
136
137static inline u32 native_safe_x2apic_wait_icr_idle(void)
138{
139 /* no need to wait for icr idle in x2apic */
140 return 0;
141}
142
143static inline void native_x2apic_icr_write(u32 low, u32 id)
144{
145 wrmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), ((__u64) id) << 32 | low);
146}
147
148static inline u64 native_x2apic_icr_read(void)
149{
150 unsigned long val;
151
152 rdmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), val);
153 return val;
154}
155
156extern int x2apic, x2apic_phys;
96extern void check_x2apic(void); 157extern void check_x2apic(void);
97extern void enable_x2apic(void); 158extern void enable_x2apic(void);
98extern void enable_IR_x2apic(void); 159extern void enable_IR_x2apic(void);
@@ -110,30 +171,24 @@ static inline int x2apic_enabled(void)
110 return 0; 171 return 0;
111} 172}
112#else 173#else
113#define x2apic_enabled() 0 174static inline void check_x2apic(void)
175{
176}
177static inline void enable_x2apic(void)
178{
179}
180static inline void enable_IR_x2apic(void)
181{
182}
183static inline int x2apic_enabled(void)
184{
185 return 0;
186}
114#endif 187#endif
115 188
116struct apic_ops {
117 u32 (*read)(u32 reg);
118 void (*write)(u32 reg, u32 v);
119 u64 (*icr_read)(void);
120 void (*icr_write)(u32 low, u32 high);
121 void (*wait_icr_idle)(void);
122 u32 (*safe_wait_icr_idle)(void);
123};
124
125extern struct apic_ops *apic_ops;
126
127#define apic_read (apic_ops->read)
128#define apic_write (apic_ops->write)
129#define apic_icr_read (apic_ops->icr_read)
130#define apic_icr_write (apic_ops->icr_write)
131#define apic_wait_icr_idle (apic_ops->wait_icr_idle)
132#define safe_apic_wait_icr_idle (apic_ops->safe_wait_icr_idle)
133
134extern int get_physical_broadcast(void); 189extern int get_physical_broadcast(void);
135 190
136#ifdef CONFIG_X86_64 191#ifdef CONFIG_X86_X2APIC
137static inline void ack_x2APIC_irq(void) 192static inline void ack_x2APIC_irq(void)
138{ 193{
139 /* Docs say use 0 for future compatibility */ 194 /* Docs say use 0 for future compatibility */
@@ -141,18 +196,6 @@ static inline void ack_x2APIC_irq(void)
141} 196}
142#endif 197#endif
143 198
144
145static inline void ack_APIC_irq(void)
146{
147 /*
148 * ack_APIC_irq() actually gets compiled as a single instruction
149 * ... yummie.
150 */
151
152 /* Docs say use 0 for future compatibility */
153 apic_write(APIC_EOI, 0);
154}
155
156extern int lapic_get_maxlvt(void); 199extern int lapic_get_maxlvt(void);
157extern void clear_local_APIC(void); 200extern void clear_local_APIC(void);
158extern void connect_bsp_APIC(void); 201extern void connect_bsp_APIC(void);
@@ -196,4 +239,329 @@ static inline void disable_local_APIC(void) { }
196 239
197#endif /* !CONFIG_X86_LOCAL_APIC */ 240#endif /* !CONFIG_X86_LOCAL_APIC */
198 241
242#ifdef CONFIG_X86_64
243#define SET_APIC_ID(x) (apic->set_apic_id(x))
244#else
245
246#endif
247
248/*
249 * Copyright 2004 James Cleverdon, IBM.
250 * Subject to the GNU Public License, v.2
251 *
252 * Generic APIC sub-arch data struct.
253 *
254 * Hacked for x86-64 by James Cleverdon from i386 architecture code by
255 * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
256 * James Cleverdon.
257 */
258struct apic {
259 char *name;
260
261 int (*probe)(void);
262 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id);
263 int (*apic_id_registered)(void);
264
265 u32 irq_delivery_mode;
266 u32 irq_dest_mode;
267
268 const struct cpumask *(*target_cpus)(void);
269
270 int disable_esr;
271
272 int dest_logical;
273 unsigned long (*check_apicid_used)(physid_mask_t bitmap, int apicid);
274 unsigned long (*check_apicid_present)(int apicid);
275
276 void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);
277 void (*init_apic_ldr)(void);
278
279 physid_mask_t (*ioapic_phys_id_map)(physid_mask_t map);
280
281 void (*setup_apic_routing)(void);
282 int (*multi_timer_check)(int apic, int irq);
283 int (*apicid_to_node)(int logical_apicid);
284 int (*cpu_to_logical_apicid)(int cpu);
285 int (*cpu_present_to_apicid)(int mps_cpu);
286 physid_mask_t (*apicid_to_cpu_present)(int phys_apicid);
287 void (*setup_portio_remap)(void);
288 int (*check_phys_apicid_present)(int boot_cpu_physical_apicid);
289 void (*enable_apic_mode)(void);
290 int (*phys_pkg_id)(int cpuid_apic, int index_msb);
291
292 /*
293 * When one of the next two hooks returns 1 the apic
294 * is switched to this. Essentially they are additional
295 * probe functions:
296 */
297 int (*mps_oem_check)(struct mpc_table *mpc, char *oem, char *productid);
298
299 unsigned int (*get_apic_id)(unsigned long x);
300 unsigned long (*set_apic_id)(unsigned int id);
301 unsigned long apic_id_mask;
302
303 unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask);
304 unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask,
305 const struct cpumask *andmask);
306
307 /* ipi */
308 void (*send_IPI_mask)(const struct cpumask *mask, int vector);
309 void (*send_IPI_mask_allbutself)(const struct cpumask *mask,
310 int vector);
311 void (*send_IPI_allbutself)(int vector);
312 void (*send_IPI_all)(int vector);
313 void (*send_IPI_self)(int vector);
314
315 /* wakeup_secondary_cpu */
316 int (*wakeup_secondary_cpu)(int apicid, unsigned long start_eip);
317
318 int trampoline_phys_low;
319 int trampoline_phys_high;
320
321 void (*wait_for_init_deassert)(atomic_t *deassert);
322 void (*smp_callin_clear_local_apic)(void);
323 void (*inquire_remote_apic)(int apicid);
324
325 /* apic ops */
326 u32 (*read)(u32 reg);
327 void (*write)(u32 reg, u32 v);
328 u64 (*icr_read)(void);
329 void (*icr_write)(u32 low, u32 high);
330 void (*wait_icr_idle)(void);
331 u32 (*safe_wait_icr_idle)(void);
332};
333
334/*
335 * Pointer to the local APIC driver in use on this system (there's
336 * always just one such driver in use - the kernel decides via an
337 * early probing process which one it picks - and then sticks to it):
338 */
339extern struct apic *apic;
340
341/*
342 * APIC functionality to boot other CPUs - only used on SMP:
343 */
344#ifdef CONFIG_SMP
345extern atomic_t init_deasserted;
346extern int wakeup_secondary_cpu_via_nmi(int apicid, unsigned long start_eip);
347#endif
348
349static inline u32 apic_read(u32 reg)
350{
351 return apic->read(reg);
352}
353
354static inline void apic_write(u32 reg, u32 val)
355{
356 apic->write(reg, val);
357}
358
359static inline u64 apic_icr_read(void)
360{
361 return apic->icr_read();
362}
363
364static inline void apic_icr_write(u32 low, u32 high)
365{
366 apic->icr_write(low, high);
367}
368
369static inline void apic_wait_icr_idle(void)
370{
371 apic->wait_icr_idle();
372}
373
374static inline u32 safe_apic_wait_icr_idle(void)
375{
376 return apic->safe_wait_icr_idle();
377}
378
379
380static inline void ack_APIC_irq(void)
381{
382#ifdef CONFIG_X86_LOCAL_APIC
383 /*
384 * ack_APIC_irq() actually gets compiled as a single instruction
385 * ... yummie.
386 */
387
388 /* Docs say use 0 for future compatibility */
389 apic_write(APIC_EOI, 0);
390#endif
391}
392
393static inline unsigned default_get_apic_id(unsigned long x)
394{
395 unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR));
396
397 if (APIC_XAPIC(ver))
398 return (x >> 24) & 0xFF;
399 else
400 return (x >> 24) & 0x0F;
401}
402
403/*
404 * Warm reset vector default position:
405 */
406#define DEFAULT_TRAMPOLINE_PHYS_LOW 0x467
407#define DEFAULT_TRAMPOLINE_PHYS_HIGH 0x469
408
409#ifdef CONFIG_X86_64
410extern struct apic apic_flat;
411extern struct apic apic_physflat;
412extern struct apic apic_x2apic_cluster;
413extern struct apic apic_x2apic_phys;
414extern int default_acpi_madt_oem_check(char *, char *);
415
416extern void apic_send_IPI_self(int vector);
417
418extern struct apic apic_x2apic_uv_x;
419DECLARE_PER_CPU(int, x2apic_extra_bits);
420
421extern int default_cpu_present_to_apicid(int mps_cpu);
422extern int default_check_phys_apicid_present(int boot_cpu_physical_apicid);
423#endif
424
425static inline void default_wait_for_init_deassert(atomic_t *deassert)
426{
427 while (!atomic_read(deassert))
428 cpu_relax();
429 return;
430}
431
432extern void generic_bigsmp_probe(void);
433
434
435#ifdef CONFIG_X86_LOCAL_APIC
436
437#include <asm/smp.h>
438
439#define APIC_DFR_VALUE (APIC_DFR_FLAT)
440
441static inline const struct cpumask *default_target_cpus(void)
442{
443#ifdef CONFIG_SMP
444 return cpu_online_mask;
445#else
446 return cpumask_of(0);
447#endif
448}
449
450DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid);
451
452
453static inline unsigned int read_apic_id(void)
454{
455 unsigned int reg;
456
457 reg = apic_read(APIC_ID);
458
459 return apic->get_apic_id(reg);
460}
461
462extern void default_setup_apic_routing(void);
463
464#ifdef CONFIG_X86_32
465/*
466 * Set up the logical destination ID.
467 *
468 * Intel recommends to set DFR, LDR and TPR before enabling
469 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
470 * document number 292116). So here it goes...
471 */
472extern void default_init_apic_ldr(void);
473
474static inline int default_apic_id_registered(void)
475{
476 return physid_isset(read_apic_id(), phys_cpu_present_map);
477}
478
479static inline unsigned int
480default_cpu_mask_to_apicid(const struct cpumask *cpumask)
481{
482 return cpumask_bits(cpumask)[0];
483}
484
485static inline unsigned int
486default_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
487 const struct cpumask *andmask)
488{
489 unsigned long mask1 = cpumask_bits(cpumask)[0];
490 unsigned long mask2 = cpumask_bits(andmask)[0];
491 unsigned long mask3 = cpumask_bits(cpu_online_mask)[0];
492
493 return (unsigned int)(mask1 & mask2 & mask3);
494}
495
496static inline int default_phys_pkg_id(int cpuid_apic, int index_msb)
497{
498 return cpuid_apic >> index_msb;
499}
500
501extern int default_apicid_to_node(int logical_apicid);
502
503#endif
504
505static inline unsigned long default_check_apicid_used(physid_mask_t bitmap, int apicid)
506{
507 return physid_isset(apicid, bitmap);
508}
509
510static inline unsigned long default_check_apicid_present(int bit)
511{
512 return physid_isset(bit, phys_cpu_present_map);
513}
514
515static inline physid_mask_t default_ioapic_phys_id_map(physid_mask_t phys_map)
516{
517 return phys_map;
518}
519
520/* Mapping from cpu number to logical apicid */
521static inline int default_cpu_to_logical_apicid(int cpu)
522{
523 return 1 << cpu;
524}
525
526static inline int __default_cpu_present_to_apicid(int mps_cpu)
527{
528 if (mps_cpu < nr_cpu_ids && cpu_present(mps_cpu))
529 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
530 else
531 return BAD_APICID;
532}
533
534static inline int
535__default_check_phys_apicid_present(int boot_cpu_physical_apicid)
536{
537 return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map);
538}
539
540#ifdef CONFIG_X86_32
541static inline int default_cpu_present_to_apicid(int mps_cpu)
542{
543 return __default_cpu_present_to_apicid(mps_cpu);
544}
545
546static inline int
547default_check_phys_apicid_present(int boot_cpu_physical_apicid)
548{
549 return __default_check_phys_apicid_present(boot_cpu_physical_apicid);
550}
551#else
552extern int default_cpu_present_to_apicid(int mps_cpu);
553extern int default_check_phys_apicid_present(int boot_cpu_physical_apicid);
554#endif
555
556static inline physid_mask_t default_apicid_to_cpu_present(int phys_apicid)
557{
558 return physid_mask_of_physid(phys_apicid);
559}
560
561#endif /* CONFIG_X86_LOCAL_APIC */
562
563#ifdef CONFIG_X86_32
564extern u8 cpu_2_logical_apicid[NR_CPUS];
565#endif
566
199#endif /* _ASM_X86_APIC_H */ 567#endif /* _ASM_X86_APIC_H */
diff --git a/arch/x86/include/asm/apicdef.h b/arch/x86/include/asm/apicdef.h
index 63134e31e8b9..bc9514fb3b13 100644
--- a/arch/x86/include/asm/apicdef.h
+++ b/arch/x86/include/asm/apicdef.h
@@ -53,6 +53,7 @@
53#define APIC_ESR_SENDILL 0x00020 53#define APIC_ESR_SENDILL 0x00020
54#define APIC_ESR_RECVILL 0x00040 54#define APIC_ESR_RECVILL 0x00040
55#define APIC_ESR_ILLREGA 0x00080 55#define APIC_ESR_ILLREGA 0x00080
56#define APIC_LVTCMCI 0x2f0
56#define APIC_ICR 0x300 57#define APIC_ICR 0x300
57#define APIC_DEST_SELF 0x40000 58#define APIC_DEST_SELF 0x40000
58#define APIC_DEST_ALLINC 0x80000 59#define APIC_DEST_ALLINC 0x80000
diff --git a/arch/x86/include/asm/mach-default/apm.h b/arch/x86/include/asm/apm.h
index 20370c6db74b..20370c6db74b 100644
--- a/arch/x86/include/asm/mach-default/apm.h
+++ b/arch/x86/include/asm/apm.h
diff --git a/arch/x86/include/asm/arch_hooks.h b/arch/x86/include/asm/arch_hooks.h
deleted file mode 100644
index cbd4957838a6..000000000000
--- a/arch/x86/include/asm/arch_hooks.h
+++ /dev/null
@@ -1,26 +0,0 @@
1#ifndef _ASM_X86_ARCH_HOOKS_H
2#define _ASM_X86_ARCH_HOOKS_H
3
4#include <linux/interrupt.h>
5
6/*
7 * linux/include/asm/arch_hooks.h
8 *
9 * define the architecture specific hooks
10 */
11
12/* these aren't arch hooks, they are generic routines
13 * that can be used by the hooks */
14extern void init_ISA_irqs(void);
15extern irqreturn_t timer_interrupt(int irq, void *dev_id);
16
17/* these are the defined hooks */
18extern void intr_init_hook(void);
19extern void pre_intr_init_hook(void);
20extern void pre_setup_arch_hook(void);
21extern void trap_init_hook(void);
22extern void pre_time_init_hook(void);
23extern void time_init_hook(void);
24extern void mca_nmi_hook(void);
25
26#endif /* _ASM_X86_ARCH_HOOKS_H */
diff --git a/arch/x86/include/asm/bigsmp/apic.h b/arch/x86/include/asm/bigsmp/apic.h
deleted file mode 100644
index d8dd9f537911..000000000000
--- a/arch/x86/include/asm/bigsmp/apic.h
+++ /dev/null
@@ -1,155 +0,0 @@
1#ifndef __ASM_MACH_APIC_H
2#define __ASM_MACH_APIC_H
3
4#define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu))
5#define esr_disable (1)
6
7static inline int apic_id_registered(void)
8{
9 return (1);
10}
11
12static inline const cpumask_t *target_cpus(void)
13{
14#ifdef CONFIG_SMP
15 return &cpu_online_map;
16#else
17 return &cpumask_of_cpu(0);
18#endif
19}
20
21#undef APIC_DEST_LOGICAL
22#define APIC_DEST_LOGICAL 0
23#define APIC_DFR_VALUE (APIC_DFR_FLAT)
24#define INT_DELIVERY_MODE (dest_Fixed)
25#define INT_DEST_MODE (0) /* phys delivery to target proc */
26#define NO_BALANCE_IRQ (0)
27
28static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
29{
30 return (0);
31}
32
33static inline unsigned long check_apicid_present(int bit)
34{
35 return (1);
36}
37
38static inline unsigned long calculate_ldr(int cpu)
39{
40 unsigned long val, id;
41 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
42 id = xapic_phys_to_log_apicid(cpu);
43 val |= SET_APIC_LOGICAL_ID(id);
44 return val;
45}
46
47/*
48 * Set up the logical destination ID.
49 *
50 * Intel recommends to set DFR, LDR and TPR before enabling
51 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
52 * document number 292116). So here it goes...
53 */
54static inline void init_apic_ldr(void)
55{
56 unsigned long val;
57 int cpu = smp_processor_id();
58
59 apic_write(APIC_DFR, APIC_DFR_VALUE);
60 val = calculate_ldr(cpu);
61 apic_write(APIC_LDR, val);
62}
63
64static inline void setup_apic_routing(void)
65{
66 printk("Enabling APIC mode: %s. Using %d I/O APICs\n",
67 "Physflat", nr_ioapics);
68}
69
70static inline int multi_timer_check(int apic, int irq)
71{
72 return (0);
73}
74
75static inline int apicid_to_node(int logical_apicid)
76{
77 return apicid_2_node[hard_smp_processor_id()];
78}
79
80static inline int cpu_present_to_apicid(int mps_cpu)
81{
82 if (mps_cpu < nr_cpu_ids)
83 return (int) per_cpu(x86_bios_cpu_apicid, mps_cpu);
84
85 return BAD_APICID;
86}
87
88static inline physid_mask_t apicid_to_cpu_present(int phys_apicid)
89{
90 return physid_mask_of_physid(phys_apicid);
91}
92
93extern u8 cpu_2_logical_apicid[];
94/* Mapping from cpu number to logical apicid */
95static inline int cpu_to_logical_apicid(int cpu)
96{
97 if (cpu >= nr_cpu_ids)
98 return BAD_APICID;
99 return cpu_physical_id(cpu);
100}
101
102static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
103{
104 /* For clustered we don't have a good way to do this yet - hack */
105 return physids_promote(0xFFL);
106}
107
108static inline void setup_portio_remap(void)
109{
110}
111
112static inline void enable_apic_mode(void)
113{
114}
115
116static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
117{
118 return (1);
119}
120
121/* As we are using single CPU as destination, pick only one CPU here */
122static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
123{
124 int cpu;
125 int apicid;
126
127 cpu = first_cpu(*cpumask);
128 apicid = cpu_to_logical_apicid(cpu);
129 return apicid;
130}
131
132static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask,
133 const struct cpumask *andmask)
134{
135 int cpu;
136
137 /*
138 * We're using fixed IRQ delivery, can only return one phys APIC ID.
139 * May as well be the first.
140 */
141 for_each_cpu_and(cpu, cpumask, andmask)
142 if (cpumask_test_cpu(cpu, cpu_online_mask))
143 break;
144 if (cpu < nr_cpu_ids)
145 return cpu_to_logical_apicid(cpu);
146
147 return BAD_APICID;
148}
149
150static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
151{
152 return cpuid_apic >> index_msb;
153}
154
155#endif /* __ASM_MACH_APIC_H */
diff --git a/arch/x86/include/asm/bigsmp/apicdef.h b/arch/x86/include/asm/bigsmp/apicdef.h
deleted file mode 100644
index 392c3f5ef2fe..000000000000
--- a/arch/x86/include/asm/bigsmp/apicdef.h
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifndef __ASM_MACH_APICDEF_H
2#define __ASM_MACH_APICDEF_H
3
4#define APIC_ID_MASK (0xFF<<24)
5
6static inline unsigned get_apic_id(unsigned long x)
7{
8 return (((x)>>24)&0xFF);
9}
10
11#define GET_APIC_ID(x) get_apic_id(x)
12
13#endif
diff --git a/arch/x86/include/asm/bigsmp/ipi.h b/arch/x86/include/asm/bigsmp/ipi.h
deleted file mode 100644
index 27fcd01b3ae6..000000000000
--- a/arch/x86/include/asm/bigsmp/ipi.h
+++ /dev/null
@@ -1,22 +0,0 @@
1#ifndef __ASM_MACH_IPI_H
2#define __ASM_MACH_IPI_H
3
4void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
5void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
6
7static inline void send_IPI_mask(const struct cpumask *mask, int vector)
8{
9 send_IPI_mask_sequence(mask, vector);
10}
11
12static inline void send_IPI_allbutself(int vector)
13{
14 send_IPI_mask_allbutself(cpu_online_mask, vector);
15}
16
17static inline void send_IPI_all(int vector)
18{
19 send_IPI_mask(cpu_online_mask, vector);
20}
21
22#endif /* __ASM_MACH_IPI_H */
diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
index e02a359d2aa5..02b47a603fc8 100644
--- a/arch/x86/include/asm/bitops.h
+++ b/arch/x86/include/asm/bitops.h
@@ -3,6 +3,9 @@
3 3
4/* 4/*
5 * Copyright 1992, Linus Torvalds. 5 * Copyright 1992, Linus Torvalds.
6 *
7 * Note: inlines with more than a single statement should be marked
8 * __always_inline to avoid problems with older gcc's inlining heuristics.
6 */ 9 */
7 10
8#ifndef _LINUX_BITOPS_H 11#ifndef _LINUX_BITOPS_H
@@ -53,7 +56,8 @@
53 * Note that @nr may be almost arbitrarily large; this function is not 56 * Note that @nr may be almost arbitrarily large; this function is not
54 * restricted to acting on a single-word quantity. 57 * restricted to acting on a single-word quantity.
55 */ 58 */
56static inline void set_bit(unsigned int nr, volatile unsigned long *addr) 59static __always_inline void
60set_bit(unsigned int nr, volatile unsigned long *addr)
57{ 61{
58 if (IS_IMMEDIATE(nr)) { 62 if (IS_IMMEDIATE(nr)) {
59 asm volatile(LOCK_PREFIX "orb %1,%0" 63 asm volatile(LOCK_PREFIX "orb %1,%0"
@@ -90,7 +94,8 @@ static inline void __set_bit(int nr, volatile unsigned long *addr)
90 * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit() 94 * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit()
91 * in order to ensure changes are visible on other processors. 95 * in order to ensure changes are visible on other processors.
92 */ 96 */
93static inline void clear_bit(int nr, volatile unsigned long *addr) 97static __always_inline void
98clear_bit(int nr, volatile unsigned long *addr)
94{ 99{
95 if (IS_IMMEDIATE(nr)) { 100 if (IS_IMMEDIATE(nr)) {
96 asm volatile(LOCK_PREFIX "andb %1,%0" 101 asm volatile(LOCK_PREFIX "andb %1,%0"
@@ -204,7 +209,8 @@ static inline int test_and_set_bit(int nr, volatile unsigned long *addr)
204 * 209 *
205 * This is the same as test_and_set_bit on x86. 210 * This is the same as test_and_set_bit on x86.
206 */ 211 */
207static inline int test_and_set_bit_lock(int nr, volatile unsigned long *addr) 212static __always_inline int
213test_and_set_bit_lock(int nr, volatile unsigned long *addr)
208{ 214{
209 return test_and_set_bit(nr, addr); 215 return test_and_set_bit(nr, addr);
210} 216}
@@ -300,7 +306,7 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr)
300 return oldbit; 306 return oldbit;
301} 307}
302 308
303static inline int constant_test_bit(unsigned int nr, const volatile unsigned long *addr) 309static __always_inline int constant_test_bit(unsigned int nr, const volatile unsigned long *addr)
304{ 310{
305 return ((1UL << (nr % BITS_PER_LONG)) & 311 return ((1UL << (nr % BITS_PER_LONG)) &
306 (((unsigned long *)addr)[nr / BITS_PER_LONG])) != 0; 312 (((unsigned long *)addr)[nr / BITS_PER_LONG])) != 0;
diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
index dd61616cb73d..6526cf08b0e4 100644
--- a/arch/x86/include/asm/boot.h
+++ b/arch/x86/include/asm/boot.h
@@ -10,17 +10,31 @@
10#define EXTENDED_VGA 0xfffe /* 80x50 mode */ 10#define EXTENDED_VGA 0xfffe /* 80x50 mode */
11#define ASK_VGA 0xfffd /* ask for it at bootup */ 11#define ASK_VGA 0xfffd /* ask for it at bootup */
12 12
13#ifdef __KERNEL__
14
13/* Physical address where kernel should be loaded. */ 15/* Physical address where kernel should be loaded. */
14#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \ 16#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
15 + (CONFIG_PHYSICAL_ALIGN - 1)) \ 17 + (CONFIG_PHYSICAL_ALIGN - 1)) \
16 & ~(CONFIG_PHYSICAL_ALIGN - 1)) 18 & ~(CONFIG_PHYSICAL_ALIGN - 1))
17 19
20#ifdef CONFIG_KERNEL_BZIP2
21#define BOOT_HEAP_SIZE 0x400000
22#else /* !CONFIG_KERNEL_BZIP2 */
23
18#ifdef CONFIG_X86_64 24#ifdef CONFIG_X86_64
19#define BOOT_HEAP_SIZE 0x7000 25#define BOOT_HEAP_SIZE 0x7000
20#define BOOT_STACK_SIZE 0x4000
21#else 26#else
22#define BOOT_HEAP_SIZE 0x4000 27#define BOOT_HEAP_SIZE 0x4000
28#endif
29
30#endif /* !CONFIG_KERNEL_BZIP2 */
31
32#ifdef CONFIG_X86_64
33#define BOOT_STACK_SIZE 0x4000
34#else
23#define BOOT_STACK_SIZE 0x1000 35#define BOOT_STACK_SIZE 0x1000
24#endif 36#endif
25 37
38#endif /* __KERNEL__ */
39
26#endif /* _ASM_X86_BOOT_H */ 40#endif /* _ASM_X86_BOOT_H */
diff --git a/arch/x86/include/asm/byteorder.h b/arch/x86/include/asm/byteorder.h
index 7c49917e3d9d..b13a7a88f3eb 100644
--- a/arch/x86/include/asm/byteorder.h
+++ b/arch/x86/include/asm/byteorder.h
@@ -1,7 +1,6 @@
1#ifndef _ASM_X86_BYTEORDER_H 1#ifndef _ASM_X86_BYTEORDER_H
2#define _ASM_X86_BYTEORDER_H 2#define _ASM_X86_BYTEORDER_H
3 3
4#include <asm/swab.h>
5#include <linux/byteorder/little_endian.h> 4#include <linux/byteorder/little_endian.h>
6 5
7#endif /* _ASM_X86_BYTEORDER_H */ 6#endif /* _ASM_X86_BYTEORDER_H */
diff --git a/arch/x86/include/asm/cacheflush.h b/arch/x86/include/asm/cacheflush.h
index 2f8466540fb5..5b301b7ff5f4 100644
--- a/arch/x86/include/asm/cacheflush.h
+++ b/arch/x86/include/asm/cacheflush.h
@@ -5,24 +5,43 @@
5#include <linux/mm.h> 5#include <linux/mm.h>
6 6
7/* Caches aren't brain-dead on the intel. */ 7/* Caches aren't brain-dead on the intel. */
8#define flush_cache_all() do { } while (0) 8static inline void flush_cache_all(void) { }
9#define flush_cache_mm(mm) do { } while (0) 9static inline void flush_cache_mm(struct mm_struct *mm) { }
10#define flush_cache_dup_mm(mm) do { } while (0) 10static inline void flush_cache_dup_mm(struct mm_struct *mm) { }
11#define flush_cache_range(vma, start, end) do { } while (0) 11static inline void flush_cache_range(struct vm_area_struct *vma,
12#define flush_cache_page(vma, vmaddr, pfn) do { } while (0) 12 unsigned long start, unsigned long end) { }
13#define flush_dcache_page(page) do { } while (0) 13static inline void flush_cache_page(struct vm_area_struct *vma,
14#define flush_dcache_mmap_lock(mapping) do { } while (0) 14 unsigned long vmaddr, unsigned long pfn) { }
15#define flush_dcache_mmap_unlock(mapping) do { } while (0) 15static inline void flush_dcache_page(struct page *page) { }
16#define flush_icache_range(start, end) do { } while (0) 16static inline void flush_dcache_mmap_lock(struct address_space *mapping) { }
17#define flush_icache_page(vma, pg) do { } while (0) 17static inline void flush_dcache_mmap_unlock(struct address_space *mapping) { }
18#define flush_icache_user_range(vma, pg, adr, len) do { } while (0) 18static inline void flush_icache_range(unsigned long start,
19#define flush_cache_vmap(start, end) do { } while (0) 19 unsigned long end) { }
20#define flush_cache_vunmap(start, end) do { } while (0) 20static inline void flush_icache_page(struct vm_area_struct *vma,
21 struct page *page) { }
22static inline void flush_icache_user_range(struct vm_area_struct *vma,
23 struct page *page,
24 unsigned long addr,
25 unsigned long len) { }
26static inline void flush_cache_vmap(unsigned long start, unsigned long end) { }
27static inline void flush_cache_vunmap(unsigned long start,
28 unsigned long end) { }
21 29
22#define copy_to_user_page(vma, page, vaddr, dst, src, len) \ 30static inline void copy_to_user_page(struct vm_area_struct *vma,
23 memcpy((dst), (src), (len)) 31 struct page *page, unsigned long vaddr,
24#define copy_from_user_page(vma, page, vaddr, dst, src, len) \ 32 void *dst, const void *src,
25 memcpy((dst), (src), (len)) 33 unsigned long len)
34{
35 memcpy(dst, src, len);
36}
37
38static inline void copy_from_user_page(struct vm_area_struct *vma,
39 struct page *page, unsigned long vaddr,
40 void *dst, const void *src,
41 unsigned long len)
42{
43 memcpy(dst, src, len);
44}
26 45
27#define PG_non_WB PG_arch_1 46#define PG_non_WB PG_arch_1
28PAGEFLAG(NonWB, non_WB) 47PAGEFLAG(NonWB, non_WB)
diff --git a/arch/x86/include/asm/calling.h b/arch/x86/include/asm/calling.h
index 2bc162e0ec6e..0e63c9a2a8d0 100644
--- a/arch/x86/include/asm/calling.h
+++ b/arch/x86/include/asm/calling.h
@@ -1,5 +1,55 @@
1/* 1/*
2 * Some macros to handle stack frames in assembly. 2
3 x86 function call convention, 64-bit:
4 -------------------------------------
5 arguments | callee-saved | extra caller-saved | return
6 [callee-clobbered] | | [callee-clobbered] |
7 ---------------------------------------------------------------------------
8 rdi rsi rdx rcx r8-9 | rbx rbp [*] r12-15 | r10-11 | rax, rdx [**]
9
10 ( rsp is obviously invariant across normal function calls. (gcc can 'merge'
11 functions when it sees tail-call optimization possibilities) rflags is
12 clobbered. Leftover arguments are passed over the stack frame.)
13
14 [*] In the frame-pointers case rbp is fixed to the stack frame.
15
16 [**] for struct return values wider than 64 bits the return convention is a
17 bit more complex: up to 128 bits width we return small structures
18 straight in rax, rdx. For structures larger than that (3 words or
19 larger) the caller puts a pointer to an on-stack return struct
20 [allocated in the caller's stack frame] into the first argument - i.e.
21 into rdi. All other arguments shift up by one in this case.
22 Fortunately this case is rare in the kernel.
23
24For 32-bit we have the following conventions - kernel is built with
25-mregparm=3 and -freg-struct-return:
26
27 x86 function calling convention, 32-bit:
28 ----------------------------------------
29 arguments | callee-saved | extra caller-saved | return
30 [callee-clobbered] | | [callee-clobbered] |
31 -------------------------------------------------------------------------
32 eax edx ecx | ebx edi esi ebp [*] | <none> | eax, edx [**]
33
34 ( here too esp is obviously invariant across normal function calls. eflags
35 is clobbered. Leftover arguments are passed over the stack frame. )
36
37 [*] In the frame-pointers case ebp is fixed to the stack frame.
38
39 [**] We build with -freg-struct-return, which on 32-bit means similar
40 semantics as on 64-bit: edx can be used for a second return value
41 (i.e. covering integer and structure sizes up to 64 bits) - after that
42 it gets more complex and more expensive: 3-word or larger struct returns
43 get done in the caller's frame and the pointer to the return struct goes
44 into regparm0, i.e. eax - the other arguments shift up and the
45 function's register parameters degenerate to regparm=2 in essence.
46
47*/
48
49
50/*
51 * 64-bit system call stack frame layout defines and helpers,
52 * for assembly code:
3 */ 53 */
4 54
5#define R15 0 55#define R15 0
@@ -9,7 +59,7 @@
9#define RBP 32 59#define RBP 32
10#define RBX 40 60#define RBX 40
11 61
12/* arguments: interrupts/non tracing syscalls only save upto here*/ 62/* arguments: interrupts/non tracing syscalls only save up to here: */
13#define R11 48 63#define R11 48
14#define R10 56 64#define R10 56
15#define R9 64 65#define R9 64
@@ -22,7 +72,7 @@
22#define ORIG_RAX 120 /* + error_code */ 72#define ORIG_RAX 120 /* + error_code */
23/* end of arguments */ 73/* end of arguments */
24 74
25/* cpu exception frame or undefined in case of fast syscall. */ 75/* cpu exception frame or undefined in case of fast syscall: */
26#define RIP 128 76#define RIP 128
27#define CS 136 77#define CS 136
28#define EFLAGS 144 78#define EFLAGS 144
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index bae482df6039..b185091bf19c 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -7,6 +7,20 @@
7#include <linux/nodemask.h> 7#include <linux/nodemask.h>
8#include <linux/percpu.h> 8#include <linux/percpu.h>
9 9
10#ifdef CONFIG_SMP
11
12extern void prefill_possible_map(void);
13
14#else /* CONFIG_SMP */
15
16static inline void prefill_possible_map(void) {}
17
18#define cpu_physical_id(cpu) boot_cpu_physical_apicid
19#define safe_smp_processor_id() 0
20#define stack_smp_processor_id() 0
21
22#endif /* CONFIG_SMP */
23
10struct x86_cpu { 24struct x86_cpu {
11 struct cpu cpu; 25 struct cpu cpu;
12}; 26};
@@ -17,4 +31,7 @@ extern void arch_unregister_cpu(int);
17#endif 31#endif
18 32
19DECLARE_PER_CPU(int, cpu_state); 33DECLARE_PER_CPU(int, cpu_state);
34
35extern unsigned int boot_cpu_id;
36
20#endif /* _ASM_X86_CPU_H */ 37#endif /* _ASM_X86_CPU_H */
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index ea408dcba513..7301e60dc4a8 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -93,6 +93,7 @@
93#define X86_FEATURE_XTOPOLOGY (3*32+22) /* cpu topology enum extensions */ 93#define X86_FEATURE_XTOPOLOGY (3*32+22) /* cpu topology enum extensions */
94#define X86_FEATURE_TSC_RELIABLE (3*32+23) /* TSC is known to be reliable */ 94#define X86_FEATURE_TSC_RELIABLE (3*32+23) /* TSC is known to be reliable */
95#define X86_FEATURE_NONSTOP_TSC (3*32+24) /* TSC does not stop in C states */ 95#define X86_FEATURE_NONSTOP_TSC (3*32+24) /* TSC does not stop in C states */
96#define X86_FEATURE_CLFLUSH_MONITOR (3*32+25) /* "" clflush reqd with monitor */
96 97
97/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ 98/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
98#define X86_FEATURE_XMM3 (4*32+ 0) /* "pni" SSE-3 */ 99#define X86_FEATURE_XMM3 (4*32+ 0) /* "pni" SSE-3 */
diff --git a/arch/x86/include/asm/cpumask.h b/arch/x86/include/asm/cpumask.h
new file mode 100644
index 000000000000..a7f3c75f8ad7
--- /dev/null
+++ b/arch/x86/include/asm/cpumask.h
@@ -0,0 +1,32 @@
1#ifndef _ASM_X86_CPUMASK_H
2#define _ASM_X86_CPUMASK_H
3#ifndef __ASSEMBLY__
4#include <linux/cpumask.h>
5
6#ifdef CONFIG_X86_64
7
8extern cpumask_var_t cpu_callin_mask;
9extern cpumask_var_t cpu_callout_mask;
10extern cpumask_var_t cpu_initialized_mask;
11extern cpumask_var_t cpu_sibling_setup_mask;
12
13extern void setup_cpu_local_masks(void);
14
15#else /* CONFIG_X86_32 */
16
17extern cpumask_t cpu_callin_map;
18extern cpumask_t cpu_callout_map;
19extern cpumask_t cpu_initialized;
20extern cpumask_t cpu_sibling_setup_map;
21
22#define cpu_callin_mask ((struct cpumask *)&cpu_callin_map)
23#define cpu_callout_mask ((struct cpumask *)&cpu_callout_map)
24#define cpu_initialized_mask ((struct cpumask *)&cpu_initialized)
25#define cpu_sibling_setup_mask ((struct cpumask *)&cpu_sibling_setup_map)
26
27static inline void setup_cpu_local_masks(void) { }
28
29#endif /* CONFIG_X86_32 */
30
31#endif /* __ASSEMBLY__ */
32#endif /* _ASM_X86_CPUMASK_H */
diff --git a/arch/x86/include/asm/current.h b/arch/x86/include/asm/current.h
index 0930b4f8d672..c68c361697e1 100644
--- a/arch/x86/include/asm/current.h
+++ b/arch/x86/include/asm/current.h
@@ -1,39 +1,21 @@
1#ifndef _ASM_X86_CURRENT_H 1#ifndef _ASM_X86_CURRENT_H
2#define _ASM_X86_CURRENT_H 2#define _ASM_X86_CURRENT_H
3 3
4#ifdef CONFIG_X86_32
5#include <linux/compiler.h> 4#include <linux/compiler.h>
6#include <asm/percpu.h> 5#include <asm/percpu.h>
7 6
7#ifndef __ASSEMBLY__
8struct task_struct; 8struct task_struct;
9 9
10DECLARE_PER_CPU(struct task_struct *, current_task); 10DECLARE_PER_CPU(struct task_struct *, current_task);
11static __always_inline struct task_struct *get_current(void)
12{
13 return x86_read_percpu(current_task);
14}
15
16#else /* X86_32 */
17
18#ifndef __ASSEMBLY__
19#include <asm/pda.h>
20
21struct task_struct;
22 11
23static __always_inline struct task_struct *get_current(void) 12static __always_inline struct task_struct *get_current(void)
24{ 13{
25 return read_pda(pcurrent); 14 return percpu_read(current_task);
26} 15}
27 16
28#else /* __ASSEMBLY__ */ 17#define current get_current()
29
30#include <asm/asm-offsets.h>
31#define GET_CURRENT(reg) movq %gs:(pda_pcurrent),reg
32 18
33#endif /* __ASSEMBLY__ */ 19#endif /* __ASSEMBLY__ */
34 20
35#endif /* X86_32 */
36
37#define current get_current()
38
39#endif /* _ASM_X86_CURRENT_H */ 21#endif /* _ASM_X86_CURRENT_H */
diff --git a/arch/x86/include/asm/dma-mapping.h b/arch/x86/include/asm/dma-mapping.h
index 4035357f5b9d..132a134d12f2 100644
--- a/arch/x86/include/asm/dma-mapping.h
+++ b/arch/x86/include/asm/dma-mapping.h
@@ -2,8 +2,8 @@
2#define _ASM_X86_DMA_MAPPING_H 2#define _ASM_X86_DMA_MAPPING_H
3 3
4/* 4/*
5 * IOMMU interface. See Documentation/DMA-mapping.txt and DMA-API.txt for 5 * IOMMU interface. See Documentation/PCI/PCI-DMA-mapping.txt and
6 * documentation. 6 * Documentation/DMA-API.txt for documentation.
7 */ 7 */
8 8
9#include <linux/scatterlist.h> 9#include <linux/scatterlist.h>
diff --git a/arch/x86/include/asm/mach-default/do_timer.h b/arch/x86/include/asm/do_timer.h
index 23ecda0b28a0..23ecda0b28a0 100644
--- a/arch/x86/include/asm/mach-default/do_timer.h
+++ b/arch/x86/include/asm/do_timer.h
diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h
index 3d8ceddbd407..00d41ce4c844 100644
--- a/arch/x86/include/asm/e820.h
+++ b/arch/x86/include/asm/e820.h
@@ -49,6 +49,7 @@
49#define E820_RESERVED_KERN 128 49#define E820_RESERVED_KERN 128
50 50
51#ifndef __ASSEMBLY__ 51#ifndef __ASSEMBLY__
52#include <linux/types.h>
52struct e820entry { 53struct e820entry {
53 __u64 addr; /* start of memory segment */ 54 __u64 addr; /* start of memory segment */
54 __u64 size; /* size of memory segment */ 55 __u64 size; /* size of memory segment */
diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
index ca5ffb2856b6..edc90f23e708 100644
--- a/arch/x86/include/asm/efi.h
+++ b/arch/x86/include/asm/efi.h
@@ -37,8 +37,6 @@ extern unsigned long asmlinkage efi_call_phys(void *, ...);
37 37
38#else /* !CONFIG_X86_32 */ 38#else /* !CONFIG_X86_32 */
39 39
40#define MAX_EFI_IO_PAGES 100
41
42extern u64 efi_call0(void *fp); 40extern u64 efi_call0(void *fp);
43extern u64 efi_call1(void *fp, u64 arg1); 41extern u64 efi_call1(void *fp, u64 arg1);
44extern u64 efi_call2(void *fp, u64 arg1, u64 arg2); 42extern u64 efi_call2(void *fp, u64 arg1, u64 arg2);
diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
index f51a3ddde01a..83c1bc8d2e8a 100644
--- a/arch/x86/include/asm/elf.h
+++ b/arch/x86/include/asm/elf.h
@@ -112,7 +112,7 @@ extern unsigned int vdso_enabled;
112 * now struct_user_regs, they are different) 112 * now struct_user_regs, they are different)
113 */ 113 */
114 114
115#define ELF_CORE_COPY_REGS(pr_reg, regs) \ 115#define ELF_CORE_COPY_REGS_COMMON(pr_reg, regs) \
116do { \ 116do { \
117 pr_reg[0] = regs->bx; \ 117 pr_reg[0] = regs->bx; \
118 pr_reg[1] = regs->cx; \ 118 pr_reg[1] = regs->cx; \
@@ -124,7 +124,6 @@ do { \
124 pr_reg[7] = regs->ds & 0xffff; \ 124 pr_reg[7] = regs->ds & 0xffff; \
125 pr_reg[8] = regs->es & 0xffff; \ 125 pr_reg[8] = regs->es & 0xffff; \
126 pr_reg[9] = regs->fs & 0xffff; \ 126 pr_reg[9] = regs->fs & 0xffff; \
127 savesegment(gs, pr_reg[10]); \
128 pr_reg[11] = regs->orig_ax; \ 127 pr_reg[11] = regs->orig_ax; \
129 pr_reg[12] = regs->ip; \ 128 pr_reg[12] = regs->ip; \
130 pr_reg[13] = regs->cs & 0xffff; \ 129 pr_reg[13] = regs->cs & 0xffff; \
@@ -133,6 +132,18 @@ do { \
133 pr_reg[16] = regs->ss & 0xffff; \ 132 pr_reg[16] = regs->ss & 0xffff; \
134} while (0); 133} while (0);
135 134
135#define ELF_CORE_COPY_REGS(pr_reg, regs) \
136do { \
137 ELF_CORE_COPY_REGS_COMMON(pr_reg, regs);\
138 pr_reg[10] = get_user_gs(regs); \
139} while (0);
140
141#define ELF_CORE_COPY_KERNEL_REGS(pr_reg, regs) \
142do { \
143 ELF_CORE_COPY_REGS_COMMON(pr_reg, regs);\
144 savesegment(gs, pr_reg[10]); \
145} while (0);
146
136#define ELF_PLATFORM (utsname()->machine) 147#define ELF_PLATFORM (utsname()->machine)
137#define set_personality_64bit() do { } while (0) 148#define set_personality_64bit() do { } while (0)
138 149
diff --git a/arch/x86/include/asm/mach-default/entry_arch.h b/arch/x86/include/asm/entry_arch.h
index 6b1add8e31dd..c2e6bedaf258 100644
--- a/arch/x86/include/asm/mach-default/entry_arch.h
+++ b/arch/x86/include/asm/entry_arch.h
@@ -9,14 +9,32 @@
9 * is no hardware IRQ pin equivalent for them, they are triggered 9 * is no hardware IRQ pin equivalent for them, they are triggered
10 * through the ICC by us (IPIs) 10 * through the ICC by us (IPIs)
11 */ 11 */
12#ifdef CONFIG_X86_SMP 12#ifdef CONFIG_SMP
13BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR) 13BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR)
14BUILD_INTERRUPT(invalidate_interrupt,INVALIDATE_TLB_VECTOR)
15BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR) 14BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR)
16BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR) 15BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR)
17BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR) 16BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR)
17
18BUILD_INTERRUPT3(invalidate_interrupt0,INVALIDATE_TLB_VECTOR_START+0,
19 smp_invalidate_interrupt)
20BUILD_INTERRUPT3(invalidate_interrupt1,INVALIDATE_TLB_VECTOR_START+1,
21 smp_invalidate_interrupt)
22BUILD_INTERRUPT3(invalidate_interrupt2,INVALIDATE_TLB_VECTOR_START+2,
23 smp_invalidate_interrupt)
24BUILD_INTERRUPT3(invalidate_interrupt3,INVALIDATE_TLB_VECTOR_START+3,
25 smp_invalidate_interrupt)
26BUILD_INTERRUPT3(invalidate_interrupt4,INVALIDATE_TLB_VECTOR_START+4,
27 smp_invalidate_interrupt)
28BUILD_INTERRUPT3(invalidate_interrupt5,INVALIDATE_TLB_VECTOR_START+5,
29 smp_invalidate_interrupt)
30BUILD_INTERRUPT3(invalidate_interrupt6,INVALIDATE_TLB_VECTOR_START+6,
31 smp_invalidate_interrupt)
32BUILD_INTERRUPT3(invalidate_interrupt7,INVALIDATE_TLB_VECTOR_START+7,
33 smp_invalidate_interrupt)
18#endif 34#endif
19 35
36BUILD_INTERRUPT(generic_interrupt, GENERIC_INTERRUPT_VECTOR)
37
20/* 38/*
21 * every pentium local APIC has two 'local interrupts', with a 39 * every pentium local APIC has two 'local interrupts', with a
22 * soft-definable vector attached to both interrupts, one of 40 * soft-definable vector attached to both interrupts, one of
@@ -25,10 +43,15 @@ BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR)
25 * a much simpler SMP time architecture: 43 * a much simpler SMP time architecture:
26 */ 44 */
27#ifdef CONFIG_X86_LOCAL_APIC 45#ifdef CONFIG_X86_LOCAL_APIC
46
28BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR) 47BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR)
29BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR) 48BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR)
30BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR) 49BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR)
31 50
51#ifdef CONFIG_PERF_COUNTERS
52BUILD_INTERRUPT(perf_counter_interrupt, LOCAL_PERF_VECTOR)
53#endif
54
32#ifdef CONFIG_X86_MCE_P4THERMAL 55#ifdef CONFIG_X86_MCE_P4THERMAL
33BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR) 56BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR)
34#endif 57#endif
diff --git a/arch/x86/include/asm/es7000/apic.h b/arch/x86/include/asm/es7000/apic.h
deleted file mode 100644
index c58b9cc74465..000000000000
--- a/arch/x86/include/asm/es7000/apic.h
+++ /dev/null
@@ -1,242 +0,0 @@
1#ifndef __ASM_ES7000_APIC_H
2#define __ASM_ES7000_APIC_H
3
4#include <linux/gfp.h>
5
6#define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu)
7#define esr_disable (1)
8
9static inline int apic_id_registered(void)
10{
11 return (1);
12}
13
14static inline const cpumask_t *target_cpus_cluster(void)
15{
16 return &CPU_MASK_ALL;
17}
18
19static inline const cpumask_t *target_cpus(void)
20{
21 return &cpumask_of_cpu(smp_processor_id());
22}
23
24#define APIC_DFR_VALUE_CLUSTER (APIC_DFR_CLUSTER)
25#define INT_DELIVERY_MODE_CLUSTER (dest_LowestPrio)
26#define INT_DEST_MODE_CLUSTER (1) /* logical delivery broadcast to all procs */
27#define NO_BALANCE_IRQ_CLUSTER (1)
28
29#define APIC_DFR_VALUE (APIC_DFR_FLAT)
30#define INT_DELIVERY_MODE (dest_Fixed)
31#define INT_DEST_MODE (0) /* phys delivery to target procs */
32#define NO_BALANCE_IRQ (0)
33#undef APIC_DEST_LOGICAL
34#define APIC_DEST_LOGICAL 0x0
35
36static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
37{
38 return 0;
39}
40static inline unsigned long check_apicid_present(int bit)
41{
42 return physid_isset(bit, phys_cpu_present_map);
43}
44
45#define apicid_cluster(apicid) (apicid & 0xF0)
46
47static inline unsigned long calculate_ldr(int cpu)
48{
49 unsigned long id;
50 id = xapic_phys_to_log_apicid(cpu);
51 return (SET_APIC_LOGICAL_ID(id));
52}
53
54/*
55 * Set up the logical destination ID.
56 *
57 * Intel recommends to set DFR, LdR and TPR before enabling
58 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
59 * document number 292116). So here it goes...
60 */
61static inline void init_apic_ldr_cluster(void)
62{
63 unsigned long val;
64 int cpu = smp_processor_id();
65
66 apic_write(APIC_DFR, APIC_DFR_VALUE_CLUSTER);
67 val = calculate_ldr(cpu);
68 apic_write(APIC_LDR, val);
69}
70
71static inline void init_apic_ldr(void)
72{
73 unsigned long val;
74 int cpu = smp_processor_id();
75
76 apic_write(APIC_DFR, APIC_DFR_VALUE);
77 val = calculate_ldr(cpu);
78 apic_write(APIC_LDR, val);
79}
80
81extern int apic_version [MAX_APICS];
82static inline void setup_apic_routing(void)
83{
84 int apic = per_cpu(x86_bios_cpu_apicid, smp_processor_id());
85 printk("Enabling APIC mode: %s. Using %d I/O APICs, target cpus %lx\n",
86 (apic_version[apic] == 0x14) ?
87 "Physical Cluster" : "Logical Cluster",
88 nr_ioapics, cpus_addr(*target_cpus())[0]);
89}
90
91static inline int multi_timer_check(int apic, int irq)
92{
93 return 0;
94}
95
96static inline int apicid_to_node(int logical_apicid)
97{
98 return 0;
99}
100
101
102static inline int cpu_present_to_apicid(int mps_cpu)
103{
104 if (!mps_cpu)
105 return boot_cpu_physical_apicid;
106 else if (mps_cpu < nr_cpu_ids)
107 return (int) per_cpu(x86_bios_cpu_apicid, mps_cpu);
108 else
109 return BAD_APICID;
110}
111
112static inline physid_mask_t apicid_to_cpu_present(int phys_apicid)
113{
114 static int id = 0;
115 physid_mask_t mask;
116 mask = physid_mask_of_physid(id);
117 ++id;
118 return mask;
119}
120
121extern u8 cpu_2_logical_apicid[];
122/* Mapping from cpu number to logical apicid */
123static inline int cpu_to_logical_apicid(int cpu)
124{
125#ifdef CONFIG_SMP
126 if (cpu >= nr_cpu_ids)
127 return BAD_APICID;
128 return (int)cpu_2_logical_apicid[cpu];
129#else
130 return logical_smp_processor_id();
131#endif
132}
133
134static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
135{
136 /* For clustered we don't have a good way to do this yet - hack */
137 return physids_promote(0xff);
138}
139
140
141static inline void setup_portio_remap(void)
142{
143}
144
145extern unsigned int boot_cpu_physical_apicid;
146static inline int check_phys_apicid_present(int cpu_physical_apicid)
147{
148 boot_cpu_physical_apicid = read_apic_id();
149 return (1);
150}
151
152static inline unsigned int
153cpu_mask_to_apicid_cluster(const struct cpumask *cpumask)
154{
155 int num_bits_set;
156 int cpus_found = 0;
157 int cpu;
158 int apicid;
159
160 num_bits_set = cpumask_weight(cpumask);
161 /* Return id to all */
162 if (num_bits_set == nr_cpu_ids)
163 return 0xFF;
164 /*
165 * The cpus in the mask must all be on the apic cluster. If are not
166 * on the same apicid cluster return default value of TARGET_CPUS.
167 */
168 cpu = cpumask_first(cpumask);
169 apicid = cpu_to_logical_apicid(cpu);
170 while (cpus_found < num_bits_set) {
171 if (cpumask_test_cpu(cpu, cpumask)) {
172 int new_apicid = cpu_to_logical_apicid(cpu);
173 if (apicid_cluster(apicid) !=
174 apicid_cluster(new_apicid)){
175 printk ("%s: Not a valid mask!\n", __func__);
176 return 0xFF;
177 }
178 apicid = new_apicid;
179 cpus_found++;
180 }
181 cpu++;
182 }
183 return apicid;
184}
185
186static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
187{
188 int num_bits_set;
189 int cpus_found = 0;
190 int cpu;
191 int apicid;
192
193 num_bits_set = cpus_weight(*cpumask);
194 /* Return id to all */
195 if (num_bits_set == nr_cpu_ids)
196 return cpu_to_logical_apicid(0);
197 /*
198 * The cpus in the mask must all be on the apic cluster. If are not
199 * on the same apicid cluster return default value of TARGET_CPUS.
200 */
201 cpu = first_cpu(*cpumask);
202 apicid = cpu_to_logical_apicid(cpu);
203 while (cpus_found < num_bits_set) {
204 if (cpu_isset(cpu, *cpumask)) {
205 int new_apicid = cpu_to_logical_apicid(cpu);
206 if (apicid_cluster(apicid) !=
207 apicid_cluster(new_apicid)){
208 printk ("%s: Not a valid mask!\n", __func__);
209 return cpu_to_logical_apicid(0);
210 }
211 apicid = new_apicid;
212 cpus_found++;
213 }
214 cpu++;
215 }
216 return apicid;
217}
218
219
220static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *inmask,
221 const struct cpumask *andmask)
222{
223 int apicid = cpu_to_logical_apicid(0);
224 cpumask_var_t cpumask;
225
226 if (!alloc_cpumask_var(&cpumask, GFP_ATOMIC))
227 return apicid;
228
229 cpumask_and(cpumask, inmask, andmask);
230 cpumask_and(cpumask, cpumask, cpu_online_mask);
231 apicid = cpu_mask_to_apicid(cpumask);
232
233 free_cpumask_var(cpumask);
234 return apicid;
235}
236
237static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
238{
239 return cpuid_apic >> index_msb;
240}
241
242#endif /* __ASM_ES7000_APIC_H */
diff --git a/arch/x86/include/asm/es7000/apicdef.h b/arch/x86/include/asm/es7000/apicdef.h
deleted file mode 100644
index 8b234a3cb851..000000000000
--- a/arch/x86/include/asm/es7000/apicdef.h
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifndef __ASM_ES7000_APICDEF_H
2#define __ASM_ES7000_APICDEF_H
3
4#define APIC_ID_MASK (0xFF<<24)
5
6static inline unsigned get_apic_id(unsigned long x)
7{
8 return (((x)>>24)&0xFF);
9}
10
11#define GET_APIC_ID(x) get_apic_id(x)
12
13#endif
diff --git a/arch/x86/include/asm/es7000/ipi.h b/arch/x86/include/asm/es7000/ipi.h
deleted file mode 100644
index 7e8ed24d4b8a..000000000000
--- a/arch/x86/include/asm/es7000/ipi.h
+++ /dev/null
@@ -1,22 +0,0 @@
1#ifndef __ASM_ES7000_IPI_H
2#define __ASM_ES7000_IPI_H
3
4void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
5void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
6
7static inline void send_IPI_mask(const struct cpumask *mask, int vector)
8{
9 send_IPI_mask_sequence(mask, vector);
10}
11
12static inline void send_IPI_allbutself(int vector)
13{
14 send_IPI_mask_allbutself(cpu_online_mask, vector);
15}
16
17static inline void send_IPI_all(int vector)
18{
19 send_IPI_mask(cpu_online_mask, vector);
20}
21
22#endif /* __ASM_ES7000_IPI_H */
diff --git a/arch/x86/include/asm/es7000/mpparse.h b/arch/x86/include/asm/es7000/mpparse.h
deleted file mode 100644
index c1629b090ec2..000000000000
--- a/arch/x86/include/asm/es7000/mpparse.h
+++ /dev/null
@@ -1,29 +0,0 @@
1#ifndef __ASM_ES7000_MPPARSE_H
2#define __ASM_ES7000_MPPARSE_H
3
4#include <linux/acpi.h>
5
6extern int parse_unisys_oem (char *oemptr);
7extern int find_unisys_acpi_oem_table(unsigned long *oem_addr);
8extern void unmap_unisys_acpi_oem_table(unsigned long oem_addr);
9extern void setup_unisys(void);
10
11#ifndef CONFIG_X86_GENERICARCH
12extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id);
13extern int mps_oem_check(struct mpc_table *mpc, char *oem, char *productid);
14#endif
15
16#ifdef CONFIG_ACPI
17
18static inline int es7000_check_dsdt(void)
19{
20 struct acpi_table_header header;
21
22 if (ACPI_SUCCESS(acpi_get_table_header(ACPI_SIG_DSDT, 0, &header)) &&
23 !strncmp(header.oem_id, "UNISYS", 6))
24 return 1;
25 return 0;
26}
27#endif
28
29#endif /* __ASM_MACH_MPPARSE_H */
diff --git a/arch/x86/include/asm/es7000/wakecpu.h b/arch/x86/include/asm/es7000/wakecpu.h
deleted file mode 100644
index 78f0daaee436..000000000000
--- a/arch/x86/include/asm/es7000/wakecpu.h
+++ /dev/null
@@ -1,37 +0,0 @@
1#ifndef __ASM_ES7000_WAKECPU_H
2#define __ASM_ES7000_WAKECPU_H
3
4#define TRAMPOLINE_PHYS_LOW 0x467
5#define TRAMPOLINE_PHYS_HIGH 0x469
6
7static inline void wait_for_init_deassert(atomic_t *deassert)
8{
9#ifndef CONFIG_ES7000_CLUSTERED_APIC
10 while (!atomic_read(deassert))
11 cpu_relax();
12#endif
13 return;
14}
15
16/* Nothing to do for most platforms, since cleared by the INIT cycle */
17static inline void smp_callin_clear_local_apic(void)
18{
19}
20
21static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
22{
23}
24
25static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
26{
27}
28
29extern void __inquire_remote_apic(int apicid);
30
31static inline void inquire_remote_apic(int apicid)
32{
33 if (apic_verbosity >= APIC_DEBUG)
34 __inquire_remote_apic(apicid);
35}
36
37#endif /* __ASM_MACH_WAKECPU_H */
diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h
index 23696d44a0af..63a79c77d220 100644
--- a/arch/x86/include/asm/fixmap.h
+++ b/arch/x86/include/asm/fixmap.h
@@ -1,11 +1,145 @@
1/*
2 * fixmap.h: compile-time virtual memory allocation
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 1998 Ingo Molnar
9 *
10 * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
11 * x86_32 and x86_64 integration by Gustavo F. Padovan, February 2009
12 */
13
1#ifndef _ASM_X86_FIXMAP_H 14#ifndef _ASM_X86_FIXMAP_H
2#define _ASM_X86_FIXMAP_H 15#define _ASM_X86_FIXMAP_H
3 16
17#ifndef __ASSEMBLY__
18#include <linux/kernel.h>
19#include <asm/acpi.h>
20#include <asm/apicdef.h>
21#include <asm/page.h>
22#ifdef CONFIG_X86_32
23#include <linux/threads.h>
24#include <asm/kmap_types.h>
25#else
26#include <asm/vsyscall.h>
27#endif
28
29/*
30 * We can't declare FIXADDR_TOP as variable for x86_64 because vsyscall
31 * uses fixmaps that relies on FIXADDR_TOP for proper address calculation.
32 * Because of this, FIXADDR_TOP x86 integration was left as later work.
33 */
34#ifdef CONFIG_X86_32
35/* used by vmalloc.c, vsyscall.lds.S.
36 *
37 * Leave one empty page between vmalloc'ed areas and
38 * the start of the fixmap.
39 */
40extern unsigned long __FIXADDR_TOP;
41#define FIXADDR_TOP ((unsigned long)__FIXADDR_TOP)
42
43#define FIXADDR_USER_START __fix_to_virt(FIX_VDSO)
44#define FIXADDR_USER_END __fix_to_virt(FIX_VDSO - 1)
45#else
46#define FIXADDR_TOP (VSYSCALL_END-PAGE_SIZE)
47
48/* Only covers 32bit vsyscalls currently. Need another set for 64bit. */
49#define FIXADDR_USER_START ((unsigned long)VSYSCALL32_VSYSCALL)
50#define FIXADDR_USER_END (FIXADDR_USER_START + PAGE_SIZE)
51#endif
52
53
54/*
55 * Here we define all the compile-time 'special' virtual
56 * addresses. The point is to have a constant address at
57 * compile time, but to set the physical address only
58 * in the boot process.
59 * for x86_32: We allocate these special addresses
60 * from the end of virtual memory (0xfffff000) backwards.
61 * Also this lets us do fail-safe vmalloc(), we
62 * can guarantee that these special addresses and
63 * vmalloc()-ed addresses never overlap.
64 *
65 * These 'compile-time allocated' memory buffers are
66 * fixed-size 4k pages (or larger if used with an increment
67 * higher than 1). Use set_fixmap(idx,phys) to associate
68 * physical memory with fixmap indices.
69 *
70 * TLB entries of such buffers will not be flushed across
71 * task switches.
72 */
73enum fixed_addresses {
4#ifdef CONFIG_X86_32 74#ifdef CONFIG_X86_32
5# include "fixmap_32.h" 75 FIX_HOLE,
76 FIX_VDSO,
6#else 77#else
7# include "fixmap_64.h" 78 VSYSCALL_LAST_PAGE,
79 VSYSCALL_FIRST_PAGE = VSYSCALL_LAST_PAGE
80 + ((VSYSCALL_END-VSYSCALL_START) >> PAGE_SHIFT) - 1,
81 VSYSCALL_HPET,
8#endif 82#endif
83 FIX_DBGP_BASE,
84 FIX_EARLYCON_MEM_BASE,
85#ifdef CONFIG_X86_LOCAL_APIC
86 FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
87#endif
88#ifdef CONFIG_X86_IO_APIC
89 FIX_IO_APIC_BASE_0,
90 FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS - 1,
91#endif
92#ifdef CONFIG_X86_VISWS_APIC
93 FIX_CO_CPU, /* Cobalt timer */
94 FIX_CO_APIC, /* Cobalt APIC Redirection Table */
95 FIX_LI_PCIA, /* Lithium PCI Bridge A */
96 FIX_LI_PCIB, /* Lithium PCI Bridge B */
97#endif
98#ifdef CONFIG_X86_F00F_BUG
99 FIX_F00F_IDT, /* Virtual mapping for IDT */
100#endif
101#ifdef CONFIG_X86_CYCLONE_TIMER
102 FIX_CYCLONE_TIMER, /*cyclone timer register*/
103#endif
104#ifdef CONFIG_X86_32
105 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
106 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
107#ifdef CONFIG_PCI_MMCONFIG
108 FIX_PCIE_MCFG,
109#endif
110#endif
111#ifdef CONFIG_PARAVIRT
112 FIX_PARAVIRT_BOOTMAP,
113#endif
114 __end_of_permanent_fixed_addresses,
115#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
116 FIX_OHCI1394_BASE,
117#endif
118 /*
119 * 256 temporary boot-time mappings, used by early_ioremap(),
120 * before ioremap() is functional.
121 *
122 * We round it up to the next 256 pages boundary so that we
123 * can have a single pgd entry and a single pte table:
124 */
125#define NR_FIX_BTMAPS 64
126#define FIX_BTMAPS_SLOTS 4
127 FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
128 (__end_of_permanent_fixed_addresses & 255),
129 FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
130#ifdef CONFIG_X86_32
131 FIX_WP_TEST,
132#endif
133 __end_of_fixed_addresses
134};
135
136
137extern void reserve_top_address(unsigned long reserve);
138
139#define FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
140#define FIXADDR_BOOT_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
141#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
142#define FIXADDR_BOOT_START (FIXADDR_TOP - FIXADDR_BOOT_SIZE)
9 143
10extern int fixmaps_set; 144extern int fixmaps_set;
11 145
@@ -69,4 +203,5 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr)
69 BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); 203 BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
70 return __virt_to_fix(vaddr); 204 return __virt_to_fix(vaddr);
71} 205}
206#endif /* !__ASSEMBLY__ */
72#endif /* _ASM_X86_FIXMAP_H */ 207#endif /* _ASM_X86_FIXMAP_H */
diff --git a/arch/x86/include/asm/fixmap_32.h b/arch/x86/include/asm/fixmap_32.h
deleted file mode 100644
index c7115c1d7217..000000000000
--- a/arch/x86/include/asm/fixmap_32.h
+++ /dev/null
@@ -1,119 +0,0 @@
1/*
2 * fixmap.h: compile-time virtual memory allocation
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 1998 Ingo Molnar
9 *
10 * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
11 */
12
13#ifndef _ASM_X86_FIXMAP_32_H
14#define _ASM_X86_FIXMAP_32_H
15
16
17/* used by vmalloc.c, vsyscall.lds.S.
18 *
19 * Leave one empty page between vmalloc'ed areas and
20 * the start of the fixmap.
21 */
22extern unsigned long __FIXADDR_TOP;
23#define FIXADDR_USER_START __fix_to_virt(FIX_VDSO)
24#define FIXADDR_USER_END __fix_to_virt(FIX_VDSO - 1)
25
26#ifndef __ASSEMBLY__
27#include <linux/kernel.h>
28#include <asm/acpi.h>
29#include <asm/apicdef.h>
30#include <asm/page.h>
31#include <linux/threads.h>
32#include <asm/kmap_types.h>
33
34/*
35 * Here we define all the compile-time 'special' virtual
36 * addresses. The point is to have a constant address at
37 * compile time, but to set the physical address only
38 * in the boot process. We allocate these special addresses
39 * from the end of virtual memory (0xfffff000) backwards.
40 * Also this lets us do fail-safe vmalloc(), we
41 * can guarantee that these special addresses and
42 * vmalloc()-ed addresses never overlap.
43 *
44 * these 'compile-time allocated' memory buffers are
45 * fixed-size 4k pages. (or larger if used with an increment
46 * highger than 1) use fixmap_set(idx,phys) to associate
47 * physical memory with fixmap indices.
48 *
49 * TLB entries of such buffers will not be flushed across
50 * task switches.
51 */
52enum fixed_addresses {
53 FIX_HOLE,
54 FIX_VDSO,
55 FIX_DBGP_BASE,
56 FIX_EARLYCON_MEM_BASE,
57#ifdef CONFIG_X86_LOCAL_APIC
58 FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
59#endif
60#ifdef CONFIG_X86_IO_APIC
61 FIX_IO_APIC_BASE_0,
62 FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1,
63#endif
64#ifdef CONFIG_X86_VISWS_APIC
65 FIX_CO_CPU, /* Cobalt timer */
66 FIX_CO_APIC, /* Cobalt APIC Redirection Table */
67 FIX_LI_PCIA, /* Lithium PCI Bridge A */
68 FIX_LI_PCIB, /* Lithium PCI Bridge B */
69#endif
70#ifdef CONFIG_X86_F00F_BUG
71 FIX_F00F_IDT, /* Virtual mapping for IDT */
72#endif
73#ifdef CONFIG_X86_CYCLONE_TIMER
74 FIX_CYCLONE_TIMER, /*cyclone timer register*/
75#endif
76 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
77 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
78#ifdef CONFIG_PCI_MMCONFIG
79 FIX_PCIE_MCFG,
80#endif
81#ifdef CONFIG_PARAVIRT
82 FIX_PARAVIRT_BOOTMAP,
83#endif
84 __end_of_permanent_fixed_addresses,
85 /*
86 * 256 temporary boot-time mappings, used by early_ioremap(),
87 * before ioremap() is functional.
88 *
89 * We round it up to the next 256 pages boundary so that we
90 * can have a single pgd entry and a single pte table:
91 */
92#define NR_FIX_BTMAPS 64
93#define FIX_BTMAPS_SLOTS 4
94 FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
95 (__end_of_permanent_fixed_addresses & 255),
96 FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
97 FIX_WP_TEST,
98#ifdef CONFIG_ACPI
99 FIX_ACPI_BEGIN,
100 FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1,
101#endif
102#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
103 FIX_OHCI1394_BASE,
104#endif
105 __end_of_fixed_addresses
106};
107
108extern void reserve_top_address(unsigned long reserve);
109
110
111#define FIXADDR_TOP ((unsigned long)__FIXADDR_TOP)
112
113#define __FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
114#define __FIXADDR_BOOT_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
115#define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE)
116#define FIXADDR_BOOT_START (FIXADDR_TOP - __FIXADDR_BOOT_SIZE)
117
118#endif /* !__ASSEMBLY__ */
119#endif /* _ASM_X86_FIXMAP_32_H */
diff --git a/arch/x86/include/asm/fixmap_64.h b/arch/x86/include/asm/fixmap_64.h
deleted file mode 100644
index 00a30ab9b1a5..000000000000
--- a/arch/x86/include/asm/fixmap_64.h
+++ /dev/null
@@ -1,83 +0,0 @@
1/*
2 * fixmap.h: compile-time virtual memory allocation
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 1998 Ingo Molnar
9 */
10
11#ifndef _ASM_X86_FIXMAP_64_H
12#define _ASM_X86_FIXMAP_64_H
13
14#include <linux/kernel.h>
15#include <asm/acpi.h>
16#include <asm/apicdef.h>
17#include <asm/page.h>
18#include <asm/vsyscall.h>
19#include <asm/efi.h>
20
21/*
22 * Here we define all the compile-time 'special' virtual
23 * addresses. The point is to have a constant address at
24 * compile time, but to set the physical address only
25 * in the boot process.
26 *
27 * These 'compile-time allocated' memory buffers are
28 * fixed-size 4k pages (or larger if used with an increment
29 * higher than 1). Use set_fixmap(idx,phys) to associate
30 * physical memory with fixmap indices.
31 *
32 * TLB entries of such buffers will not be flushed across
33 * task switches.
34 */
35
36enum fixed_addresses {
37 VSYSCALL_LAST_PAGE,
38 VSYSCALL_FIRST_PAGE = VSYSCALL_LAST_PAGE
39 + ((VSYSCALL_END-VSYSCALL_START) >> PAGE_SHIFT) - 1,
40 VSYSCALL_HPET,
41 FIX_DBGP_BASE,
42 FIX_EARLYCON_MEM_BASE,
43 FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
44 FIX_IO_APIC_BASE_0,
45 FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS - 1,
46 FIX_EFI_IO_MAP_LAST_PAGE,
47 FIX_EFI_IO_MAP_FIRST_PAGE = FIX_EFI_IO_MAP_LAST_PAGE
48 + MAX_EFI_IO_PAGES - 1,
49#ifdef CONFIG_PARAVIRT
50 FIX_PARAVIRT_BOOTMAP,
51#endif
52 __end_of_permanent_fixed_addresses,
53#ifdef CONFIG_ACPI
54 FIX_ACPI_BEGIN,
55 FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1,
56#endif
57#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
58 FIX_OHCI1394_BASE,
59#endif
60 /*
61 * 256 temporary boot-time mappings, used by early_ioremap(),
62 * before ioremap() is functional.
63 *
64 * We round it up to the next 256 pages boundary so that we
65 * can have a single pgd entry and a single pte table:
66 */
67#define NR_FIX_BTMAPS 64
68#define FIX_BTMAPS_SLOTS 4
69 FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
70 (__end_of_permanent_fixed_addresses & 255),
71 FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
72 __end_of_fixed_addresses
73};
74
75#define FIXADDR_TOP (VSYSCALL_END-PAGE_SIZE)
76#define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
77#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
78
79/* Only covers 32bit vsyscalls currently. Need another set for 64bit. */
80#define FIXADDR_USER_START ((unsigned long)VSYSCALL32_VSYSCALL)
81#define FIXADDR_USER_END (FIXADDR_USER_START + PAGE_SIZE)
82
83#endif /* _ASM_X86_FIXMAP_64_H */
diff --git a/arch/x86/include/asm/genapic.h b/arch/x86/include/asm/genapic.h
index d48bee663a6f..4b8b98fa7f25 100644
--- a/arch/x86/include/asm/genapic.h
+++ b/arch/x86/include/asm/genapic.h
@@ -1,5 +1 @@
1#ifdef CONFIG_X86_32 #include <asm/apic.h>
2# include "genapic_32.h"
3#else
4# include "genapic_64.h"
5#endif
diff --git a/arch/x86/include/asm/genapic_32.h b/arch/x86/include/asm/genapic_32.h
deleted file mode 100644
index 2c05b737ee22..000000000000
--- a/arch/x86/include/asm/genapic_32.h
+++ /dev/null
@@ -1,148 +0,0 @@
1#ifndef _ASM_X86_GENAPIC_32_H
2#define _ASM_X86_GENAPIC_32_H
3
4#include <asm/mpspec.h>
5#include <asm/atomic.h>
6
7/*
8 * Generic APIC driver interface.
9 *
10 * An straight forward mapping of the APIC related parts of the
11 * x86 subarchitecture interface to a dynamic object.
12 *
13 * This is used by the "generic" x86 subarchitecture.
14 *
15 * Copyright 2003 Andi Kleen, SuSE Labs.
16 */
17
18struct mpc_bus;
19struct mpc_table;
20struct mpc_cpu;
21
22struct genapic {
23 char *name;
24 int (*probe)(void);
25
26 int (*apic_id_registered)(void);
27 const struct cpumask *(*target_cpus)(void);
28 int int_delivery_mode;
29 int int_dest_mode;
30 int ESR_DISABLE;
31 int apic_destination_logical;
32 unsigned long (*check_apicid_used)(physid_mask_t bitmap, int apicid);
33 unsigned long (*check_apicid_present)(int apicid);
34 int no_balance_irq;
35 int no_ioapic_check;
36 void (*init_apic_ldr)(void);
37 physid_mask_t (*ioapic_phys_id_map)(physid_mask_t map);
38
39 void (*setup_apic_routing)(void);
40 int (*multi_timer_check)(int apic, int irq);
41 int (*apicid_to_node)(int logical_apicid);
42 int (*cpu_to_logical_apicid)(int cpu);
43 int (*cpu_present_to_apicid)(int mps_cpu);
44 physid_mask_t (*apicid_to_cpu_present)(int phys_apicid);
45 void (*setup_portio_remap)(void);
46 int (*check_phys_apicid_present)(int boot_cpu_physical_apicid);
47 void (*enable_apic_mode)(void);
48 u32 (*phys_pkg_id)(u32 cpuid_apic, int index_msb);
49
50 /* mpparse */
51 /* When one of the next two hooks returns 1 the genapic
52 is switched to this. Essentially they are additional probe
53 functions. */
54 int (*mps_oem_check)(struct mpc_table *mpc, char *oem,
55 char *productid);
56 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id);
57
58 unsigned (*get_apic_id)(unsigned long x);
59 unsigned long apic_id_mask;
60 unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask);
61 unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask,
62 const struct cpumask *andmask);
63 void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);
64
65#ifdef CONFIG_SMP
66 /* ipi */
67 void (*send_IPI_mask)(const struct cpumask *mask, int vector);
68 void (*send_IPI_mask_allbutself)(const struct cpumask *mask,
69 int vector);
70 void (*send_IPI_allbutself)(int vector);
71 void (*send_IPI_all)(int vector);
72#endif
73 int (*wakeup_cpu)(int apicid, unsigned long start_eip);
74 int trampoline_phys_low;
75 int trampoline_phys_high;
76 void (*wait_for_init_deassert)(atomic_t *deassert);
77 void (*smp_callin_clear_local_apic)(void);
78 void (*store_NMI_vector)(unsigned short *high, unsigned short *low);
79 void (*restore_NMI_vector)(unsigned short *high, unsigned short *low);
80 void (*inquire_remote_apic)(int apicid);
81};
82
83#define APICFUNC(x) .x = x,
84
85/* More functions could be probably marked IPIFUNC and save some space
86 in UP GENERICARCH kernels, but I don't have the nerve right now
87 to untangle this mess. -AK */
88#ifdef CONFIG_SMP
89#define IPIFUNC(x) APICFUNC(x)
90#else
91#define IPIFUNC(x)
92#endif
93
94#define APIC_INIT(aname, aprobe) \
95{ \
96 .name = aname, \
97 .probe = aprobe, \
98 .int_delivery_mode = INT_DELIVERY_MODE, \
99 .int_dest_mode = INT_DEST_MODE, \
100 .no_balance_irq = NO_BALANCE_IRQ, \
101 .ESR_DISABLE = esr_disable, \
102 .apic_destination_logical = APIC_DEST_LOGICAL, \
103 APICFUNC(apic_id_registered) \
104 APICFUNC(target_cpus) \
105 APICFUNC(check_apicid_used) \
106 APICFUNC(check_apicid_present) \
107 APICFUNC(init_apic_ldr) \
108 APICFUNC(ioapic_phys_id_map) \
109 APICFUNC(setup_apic_routing) \
110 APICFUNC(multi_timer_check) \
111 APICFUNC(apicid_to_node) \
112 APICFUNC(cpu_to_logical_apicid) \
113 APICFUNC(cpu_present_to_apicid) \
114 APICFUNC(apicid_to_cpu_present) \
115 APICFUNC(setup_portio_remap) \
116 APICFUNC(check_phys_apicid_present) \
117 APICFUNC(mps_oem_check) \
118 APICFUNC(get_apic_id) \
119 .apic_id_mask = APIC_ID_MASK, \
120 APICFUNC(cpu_mask_to_apicid) \
121 APICFUNC(cpu_mask_to_apicid_and) \
122 APICFUNC(vector_allocation_domain) \
123 APICFUNC(acpi_madt_oem_check) \
124 IPIFUNC(send_IPI_mask) \
125 IPIFUNC(send_IPI_allbutself) \
126 IPIFUNC(send_IPI_all) \
127 APICFUNC(enable_apic_mode) \
128 APICFUNC(phys_pkg_id) \
129 .trampoline_phys_low = TRAMPOLINE_PHYS_LOW, \
130 .trampoline_phys_high = TRAMPOLINE_PHYS_HIGH, \
131 APICFUNC(wait_for_init_deassert) \
132 APICFUNC(smp_callin_clear_local_apic) \
133 APICFUNC(store_NMI_vector) \
134 APICFUNC(restore_NMI_vector) \
135 APICFUNC(inquire_remote_apic) \
136}
137
138extern struct genapic *genapic;
139extern void es7000_update_genapic_to_cluster(void);
140
141enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC};
142#define get_uv_system_type() UV_NONE
143#define is_uv_system() 0
144#define uv_wakeup_secondary(a, b) 1
145#define uv_system_init() do {} while (0)
146
147
148#endif /* _ASM_X86_GENAPIC_32_H */
diff --git a/arch/x86/include/asm/genapic_64.h b/arch/x86/include/asm/genapic_64.h
deleted file mode 100644
index adf32fb56aa6..000000000000
--- a/arch/x86/include/asm/genapic_64.h
+++ /dev/null
@@ -1,66 +0,0 @@
1#ifndef _ASM_X86_GENAPIC_64_H
2#define _ASM_X86_GENAPIC_64_H
3
4#include <linux/cpumask.h>
5
6/*
7 * Copyright 2004 James Cleverdon, IBM.
8 * Subject to the GNU Public License, v.2
9 *
10 * Generic APIC sub-arch data struct.
11 *
12 * Hacked for x86-64 by James Cleverdon from i386 architecture code by
13 * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
14 * James Cleverdon.
15 */
16
17struct genapic {
18 char *name;
19 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id);
20 u32 int_delivery_mode;
21 u32 int_dest_mode;
22 int (*apic_id_registered)(void);
23 const struct cpumask *(*target_cpus)(void);
24 void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);
25 void (*init_apic_ldr)(void);
26 /* ipi */
27 void (*send_IPI_mask)(const struct cpumask *mask, int vector);
28 void (*send_IPI_mask_allbutself)(const struct cpumask *mask,
29 int vector);
30 void (*send_IPI_allbutself)(int vector);
31 void (*send_IPI_all)(int vector);
32 void (*send_IPI_self)(int vector);
33 /* */
34 unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask);
35 unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask,
36 const struct cpumask *andmask);
37 unsigned int (*phys_pkg_id)(int index_msb);
38 unsigned int (*get_apic_id)(unsigned long x);
39 unsigned long (*set_apic_id)(unsigned int id);
40 unsigned long apic_id_mask;
41 /* wakeup_secondary_cpu */
42 int (*wakeup_cpu)(int apicid, unsigned long start_eip);
43};
44
45extern struct genapic *genapic;
46
47extern struct genapic apic_flat;
48extern struct genapic apic_physflat;
49extern struct genapic apic_x2apic_cluster;
50extern struct genapic apic_x2apic_phys;
51extern int acpi_madt_oem_check(char *, char *);
52
53extern void apic_send_IPI_self(int vector);
54enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC};
55extern enum uv_system_type get_uv_system_type(void);
56extern int is_uv_system(void);
57
58extern struct genapic apic_x2apic_uv_x;
59DECLARE_PER_CPU(int, x2apic_extra_bits);
60extern void uv_cpu_init(void);
61extern void uv_system_init(void);
62extern int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip);
63
64extern void setup_apic_routing(void);
65
66#endif /* _ASM_X86_GENAPIC_64_H */
diff --git a/arch/x86/include/asm/hardirq.h b/arch/x86/include/asm/hardirq.h
index 000787df66e6..039db6aa8e02 100644
--- a/arch/x86/include/asm/hardirq.h
+++ b/arch/x86/include/asm/hardirq.h
@@ -1,11 +1,53 @@
1#ifdef CONFIG_X86_32 1#ifndef _ASM_X86_HARDIRQ_H
2# include "hardirq_32.h" 2#define _ASM_X86_HARDIRQ_H
3#else 3
4# include "hardirq_64.h" 4#include <linux/threads.h>
5#include <linux/irq.h>
6
7typedef struct {
8 unsigned int __softirq_pending;
9 unsigned int __nmi_count; /* arch dependent */
10 unsigned int irq0_irqs;
11#ifdef CONFIG_X86_LOCAL_APIC
12 unsigned int apic_timer_irqs; /* arch dependent */
13 unsigned int irq_spurious_count;
14#endif
15 unsigned int generic_irqs; /* arch dependent */
16#ifdef CONFIG_SMP
17 unsigned int irq_resched_count;
18 unsigned int irq_call_count;
19 unsigned int irq_tlb_count;
20#endif
21#ifdef CONFIG_X86_MCE
22 unsigned int irq_thermal_count;
23# ifdef CONFIG_X86_64
24 unsigned int irq_threshold_count;
25# endif
5#endif 26#endif
27} ____cacheline_aligned irq_cpustat_t;
28
29DECLARE_PER_CPU(irq_cpustat_t, irq_stat);
30
31/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
32#define MAX_HARDIRQS_PER_CPU NR_VECTORS
33
34#define __ARCH_IRQ_STAT
35
36#define inc_irq_stat(member) percpu_add(irq_stat.member, 1)
37
38#define local_softirq_pending() percpu_read(irq_stat.__softirq_pending)
39
40#define __ARCH_SET_SOFTIRQ_PENDING
41
42#define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x))
43#define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x))
44
45extern void ack_bad_irq(unsigned int irq);
6 46
7extern u64 arch_irq_stat_cpu(unsigned int cpu); 47extern u64 arch_irq_stat_cpu(unsigned int cpu);
8#define arch_irq_stat_cpu arch_irq_stat_cpu 48#define arch_irq_stat_cpu arch_irq_stat_cpu
9 49
10extern u64 arch_irq_stat(void); 50extern u64 arch_irq_stat(void);
11#define arch_irq_stat arch_irq_stat 51#define arch_irq_stat arch_irq_stat
52
53#endif /* _ASM_X86_HARDIRQ_H */
diff --git a/arch/x86/include/asm/hardirq_32.h b/arch/x86/include/asm/hardirq_32.h
deleted file mode 100644
index cf7954d1405f..000000000000
--- a/arch/x86/include/asm/hardirq_32.h
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifndef _ASM_X86_HARDIRQ_32_H
2#define _ASM_X86_HARDIRQ_32_H
3
4#include <linux/threads.h>
5#include <linux/irq.h>
6
7typedef struct {
8 unsigned int __softirq_pending;
9 unsigned long idle_timestamp;
10 unsigned int __nmi_count; /* arch dependent */
11 unsigned int apic_timer_irqs; /* arch dependent */
12 unsigned int irq0_irqs;
13 unsigned int irq_resched_count;
14 unsigned int irq_call_count;
15 unsigned int irq_tlb_count;
16 unsigned int irq_thermal_count;
17 unsigned int irq_spurious_count;
18} ____cacheline_aligned irq_cpustat_t;
19
20DECLARE_PER_CPU(irq_cpustat_t, irq_stat);
21
22#define __ARCH_IRQ_STAT
23#define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member)
24
25#define inc_irq_stat(member) (__get_cpu_var(irq_stat).member++)
26
27void ack_bad_irq(unsigned int irq);
28#include <linux/irq_cpustat.h>
29
30#endif /* _ASM_X86_HARDIRQ_32_H */
diff --git a/arch/x86/include/asm/hardirq_64.h b/arch/x86/include/asm/hardirq_64.h
deleted file mode 100644
index b5a6b5d56704..000000000000
--- a/arch/x86/include/asm/hardirq_64.h
+++ /dev/null
@@ -1,25 +0,0 @@
1#ifndef _ASM_X86_HARDIRQ_64_H
2#define _ASM_X86_HARDIRQ_64_H
3
4#include <linux/threads.h>
5#include <linux/irq.h>
6#include <asm/pda.h>
7#include <asm/apic.h>
8
9/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
10#define MAX_HARDIRQS_PER_CPU NR_VECTORS
11
12#define __ARCH_IRQ_STAT 1
13
14#define inc_irq_stat(member) add_pda(member, 1)
15
16#define local_softirq_pending() read_pda(__softirq_pending)
17
18#define __ARCH_SET_SOFTIRQ_PENDING 1
19
20#define set_softirq_pending(x) write_pda(__softirq_pending, (x))
21#define or_softirq_pending(x) or_pda(__softirq_pending, (x))
22
23extern void ack_bad_irq(unsigned int irq);
24
25#endif /* _ASM_X86_HARDIRQ_64_H */
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
index 8de644b6b959..b762ea49bd70 100644
--- a/arch/x86/include/asm/hw_irq.h
+++ b/arch/x86/include/asm/hw_irq.h
@@ -25,10 +25,9 @@
25#include <asm/irq.h> 25#include <asm/irq.h>
26#include <asm/sections.h> 26#include <asm/sections.h>
27 27
28#define platform_legacy_irq(irq) ((irq) < 16)
29
30/* Interrupt handlers registered during init_IRQ */ 28/* Interrupt handlers registered during init_IRQ */
31extern void apic_timer_interrupt(void); 29extern void apic_timer_interrupt(void);
30extern void generic_interrupt(void);
32extern void error_interrupt(void); 31extern void error_interrupt(void);
33extern void spurious_interrupt(void); 32extern void spurious_interrupt(void);
34extern void thermal_interrupt(void); 33extern void thermal_interrupt(void);
@@ -58,7 +57,7 @@ extern void make_8259A_irq(unsigned int irq);
58extern void init_8259A(int aeoi); 57extern void init_8259A(int aeoi);
59 58
60/* IOAPIC */ 59/* IOAPIC */
61#define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs)) 60#define IO_APIC_IRQ(x) (((x) >= NR_IRQS_LEGACY) || ((1<<(x)) & io_apic_irqs))
62extern unsigned long io_apic_irqs; 61extern unsigned long io_apic_irqs;
63 62
64extern void init_VISWS_APIC_irqs(void); 63extern void init_VISWS_APIC_irqs(void);
@@ -67,15 +66,7 @@ extern void disable_IO_APIC(void);
67extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn); 66extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn);
68extern void setup_ioapic_dest(void); 67extern void setup_ioapic_dest(void);
69 68
70#ifdef CONFIG_X86_64
71extern void enable_IO_APIC(void); 69extern void enable_IO_APIC(void);
72#endif
73
74/* IPI functions */
75#ifdef CONFIG_X86_32
76extern void send_IPI_self(int vector);
77#endif
78extern void send_IPI(int dest, int vector);
79 70
80/* Statistics */ 71/* Statistics */
81extern atomic_t irq_err_count; 72extern atomic_t irq_err_count;
@@ -84,21 +75,11 @@ extern atomic_t irq_mis_count;
84/* EISA */ 75/* EISA */
85extern void eisa_set_level_irq(unsigned int irq); 76extern void eisa_set_level_irq(unsigned int irq);
86 77
87/* Voyager functions */
88extern asmlinkage void vic_cpi_interrupt(void);
89extern asmlinkage void vic_sys_interrupt(void);
90extern asmlinkage void vic_cmn_interrupt(void);
91extern asmlinkage void qic_timer_interrupt(void);
92extern asmlinkage void qic_invalidate_interrupt(void);
93extern asmlinkage void qic_reschedule_interrupt(void);
94extern asmlinkage void qic_enable_irq_interrupt(void);
95extern asmlinkage void qic_call_function_interrupt(void);
96
97/* SMP */ 78/* SMP */
98extern void smp_apic_timer_interrupt(struct pt_regs *); 79extern void smp_apic_timer_interrupt(struct pt_regs *);
99extern void smp_spurious_interrupt(struct pt_regs *); 80extern void smp_spurious_interrupt(struct pt_regs *);
100extern void smp_error_interrupt(struct pt_regs *); 81extern void smp_error_interrupt(struct pt_regs *);
101#ifdef CONFIG_X86_SMP 82#ifdef CONFIG_SMP
102extern void smp_reschedule_interrupt(struct pt_regs *); 83extern void smp_reschedule_interrupt(struct pt_regs *);
103extern void smp_call_function_interrupt(struct pt_regs *); 84extern void smp_call_function_interrupt(struct pt_regs *);
104extern void smp_call_function_single_interrupt(struct pt_regs *); 85extern void smp_call_function_single_interrupt(struct pt_regs *);
diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
index 48f0004db8c9..71c9e5183982 100644
--- a/arch/x86/include/asm/i387.h
+++ b/arch/x86/include/asm/i387.h
@@ -172,7 +172,13 @@ static inline void __save_init_fpu(struct task_struct *tsk)
172 172
173#else /* CONFIG_X86_32 */ 173#else /* CONFIG_X86_32 */
174 174
175extern void finit(void); 175#ifdef CONFIG_MATH_EMULATION
176extern void finit_task(struct task_struct *tsk);
177#else
178static inline void finit_task(struct task_struct *tsk)
179{
180}
181#endif
176 182
177static inline void tolerant_fwait(void) 183static inline void tolerant_fwait(void)
178{ 184{
diff --git a/arch/x86/include/asm/i8259.h b/arch/x86/include/asm/i8259.h
index 58d7091eeb1f..1a99e6c092af 100644
--- a/arch/x86/include/asm/i8259.h
+++ b/arch/x86/include/asm/i8259.h
@@ -60,4 +60,8 @@ extern struct irq_chip i8259A_chip;
60extern void mask_8259A(void); 60extern void mask_8259A(void);
61extern void unmask_8259A(void); 61extern void unmask_8259A(void);
62 62
63#ifdef CONFIG_X86_32
64extern void init_ISA_irqs(void);
65#endif
66
63#endif /* _ASM_X86_I8259_H */ 67#endif /* _ASM_X86_I8259_H */
diff --git a/arch/x86/include/asm/init.h b/arch/x86/include/asm/init.h
new file mode 100644
index 000000000000..36fb1a6a5109
--- /dev/null
+++ b/arch/x86/include/asm/init.h
@@ -0,0 +1,18 @@
1#ifndef _ASM_X86_INIT_32_H
2#define _ASM_X86_INIT_32_H
3
4#ifdef CONFIG_X86_32
5extern void __init early_ioremap_page_table_range_init(void);
6#endif
7
8extern unsigned long __init
9kernel_physical_mapping_init(unsigned long start,
10 unsigned long end,
11 unsigned long page_size_mask);
12
13
14extern unsigned long __initdata e820_table_start;
15extern unsigned long __meminitdata e820_table_end;
16extern unsigned long __meminitdata e820_table_top;
17
18#endif /* _ASM_X86_INIT_32_H */
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 05cfed4485fa..e5383e3d2f8c 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -5,6 +5,7 @@
5 5
6#include <linux/compiler.h> 6#include <linux/compiler.h>
7#include <asm-generic/int-ll64.h> 7#include <asm-generic/int-ll64.h>
8#include <asm/page.h>
8 9
9#define build_mmio_read(name, size, type, reg, barrier) \ 10#define build_mmio_read(name, size, type, reg, barrier) \
10static inline type name(const volatile void __iomem *addr) \ 11static inline type name(const volatile void __iomem *addr) \
@@ -80,6 +81,98 @@ static inline void writeq(__u64 val, volatile void __iomem *addr)
80#define readq readq 81#define readq readq
81#define writeq writeq 82#define writeq writeq
82 83
84/**
85 * virt_to_phys - map virtual addresses to physical
86 * @address: address to remap
87 *
88 * The returned physical address is the physical (CPU) mapping for
89 * the memory address given. It is only valid to use this function on
90 * addresses directly mapped or allocated via kmalloc.
91 *
92 * This function does not give bus mappings for DMA transfers. In
93 * almost all conceivable cases a device driver should not be using
94 * this function
95 */
96
97static inline phys_addr_t virt_to_phys(volatile void *address)
98{
99 return __pa(address);
100}
101
102/**
103 * phys_to_virt - map physical address to virtual
104 * @address: address to remap
105 *
106 * The returned virtual address is a current CPU mapping for
107 * the memory address given. It is only valid to use this function on
108 * addresses that have a kernel mapping
109 *
110 * This function does not handle bus mappings for DMA transfers. In
111 * almost all conceivable cases a device driver should not be using
112 * this function
113 */
114
115static inline void *phys_to_virt(phys_addr_t address)
116{
117 return __va(address);
118}
119
120/*
121 * Change "struct page" to physical address.
122 */
123#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
124
125/*
126 * ISA I/O bus memory addresses are 1:1 with the physical address.
127 * However, we truncate the address to unsigned int to avoid undesirable
128 * promitions in legacy drivers.
129 */
130static inline unsigned int isa_virt_to_bus(volatile void *address)
131{
132 return (unsigned int)virt_to_phys(address);
133}
134#define isa_page_to_bus(page) ((unsigned int)page_to_phys(page))
135#define isa_bus_to_virt phys_to_virt
136
137/*
138 * However PCI ones are not necessarily 1:1 and therefore these interfaces
139 * are forbidden in portable PCI drivers.
140 *
141 * Allow them on x86 for legacy drivers, though.
142 */
143#define virt_to_bus virt_to_phys
144#define bus_to_virt phys_to_virt
145
146/**
147 * ioremap - map bus memory into CPU space
148 * @offset: bus address of the memory
149 * @size: size of the resource to map
150 *
151 * ioremap performs a platform specific sequence of operations to
152 * make bus memory CPU accessible via the readb/readw/readl/writeb/
153 * writew/writel functions and the other mmio helpers. The returned
154 * address is not guaranteed to be usable directly as a virtual
155 * address.
156 *
157 * If the area you are trying to map is a PCI BAR you should have a
158 * look at pci_iomap().
159 */
160extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
161extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
162extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size,
163 unsigned long prot_val);
164
165/*
166 * The default ioremap() behavior is non-cached:
167 */
168static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
169{
170 return ioremap_nocache(offset, size);
171}
172
173extern void iounmap(volatile void __iomem *addr);
174
175
83#ifdef CONFIG_X86_32 176#ifdef CONFIG_X86_32
84# include "io_32.h" 177# include "io_32.h"
85#else 178#else
@@ -91,7 +184,7 @@ extern void unxlate_dev_mem_ptr(unsigned long phys, void *addr);
91 184
92extern int ioremap_change_attr(unsigned long vaddr, unsigned long size, 185extern int ioremap_change_attr(unsigned long vaddr, unsigned long size,
93 unsigned long prot_val); 186 unsigned long prot_val);
94extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size); 187extern void __iomem *ioremap_wc(resource_size_t offset, unsigned long size);
95 188
96/* 189/*
97 * early_ioremap() and early_iounmap() are for temporary early boot-time 190 * early_ioremap() and early_iounmap() are for temporary early boot-time
@@ -99,12 +192,11 @@ extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size);
99 * A boot-time mapping is currently limited to at most 16 pages. 192 * A boot-time mapping is currently limited to at most 16 pages.
100 */ 193 */
101extern void early_ioremap_init(void); 194extern void early_ioremap_init(void);
102extern void early_ioremap_clear(void);
103extern void early_ioremap_reset(void); 195extern void early_ioremap_reset(void);
104extern void __iomem *early_ioremap(unsigned long offset, unsigned long size); 196extern void __iomem *early_ioremap(unsigned long offset, unsigned long size);
105extern void __iomem *early_memremap(unsigned long offset, unsigned long size); 197extern void __iomem *early_memremap(unsigned long offset, unsigned long size);
106extern void early_iounmap(void __iomem *addr, unsigned long size); 198extern void early_iounmap(void __iomem *addr, unsigned long size);
107extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
108 199
200#define IO_SPACE_LIMIT 0xffff
109 201
110#endif /* _ASM_X86_IO_H */ 202#endif /* _ASM_X86_IO_H */
diff --git a/arch/x86/include/asm/io_32.h b/arch/x86/include/asm/io_32.h
index d8e242e1b396..a299900f5920 100644
--- a/arch/x86/include/asm/io_32.h
+++ b/arch/x86/include/asm/io_32.h
@@ -37,8 +37,6 @@
37 * - Arnaldo Carvalho de Melo <acme@conectiva.com.br> 37 * - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
38 */ 38 */
39 39
40#define IO_SPACE_LIMIT 0xffff
41
42#define XQUAD_PORTIO_BASE 0xfe400000 40#define XQUAD_PORTIO_BASE 0xfe400000
43#define XQUAD_PORTIO_QUAD 0x40000 /* 256k per quad. */ 41#define XQUAD_PORTIO_QUAD 0x40000 /* 256k per quad. */
44 42
@@ -53,92 +51,6 @@
53 */ 51 */
54#define xlate_dev_kmem_ptr(p) p 52#define xlate_dev_kmem_ptr(p) p
55 53
56/**
57 * virt_to_phys - map virtual addresses to physical
58 * @address: address to remap
59 *
60 * The returned physical address is the physical (CPU) mapping for
61 * the memory address given. It is only valid to use this function on
62 * addresses directly mapped or allocated via kmalloc.
63 *
64 * This function does not give bus mappings for DMA transfers. In
65 * almost all conceivable cases a device driver should not be using
66 * this function
67 */
68
69static inline unsigned long virt_to_phys(volatile void *address)
70{
71 return __pa(address);
72}
73
74/**
75 * phys_to_virt - map physical address to virtual
76 * @address: address to remap
77 *
78 * The returned virtual address is a current CPU mapping for
79 * the memory address given. It is only valid to use this function on
80 * addresses that have a kernel mapping
81 *
82 * This function does not handle bus mappings for DMA transfers. In
83 * almost all conceivable cases a device driver should not be using
84 * this function
85 */
86
87static inline void *phys_to_virt(unsigned long address)
88{
89 return __va(address);
90}
91
92/*
93 * Change "struct page" to physical address.
94 */
95#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
96
97/**
98 * ioremap - map bus memory into CPU space
99 * @offset: bus address of the memory
100 * @size: size of the resource to map
101 *
102 * ioremap performs a platform specific sequence of operations to
103 * make bus memory CPU accessible via the readb/readw/readl/writeb/
104 * writew/writel functions and the other mmio helpers. The returned
105 * address is not guaranteed to be usable directly as a virtual
106 * address.
107 *
108 * If the area you are trying to map is a PCI BAR you should have a
109 * look at pci_iomap().
110 */
111extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
112extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
113extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size,
114 unsigned long prot_val);
115
116/*
117 * The default ioremap() behavior is non-cached:
118 */
119static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
120{
121 return ioremap_nocache(offset, size);
122}
123
124extern void iounmap(volatile void __iomem *addr);
125
126/*
127 * ISA I/O bus memory addresses are 1:1 with the physical address.
128 */
129#define isa_virt_to_bus virt_to_phys
130#define isa_page_to_bus page_to_phys
131#define isa_bus_to_virt phys_to_virt
132
133/*
134 * However PCI ones are not necessarily 1:1 and therefore these interfaces
135 * are forbidden in portable PCI drivers.
136 *
137 * Allow them on x86 for legacy drivers, though.
138 */
139#define virt_to_bus virt_to_phys
140#define bus_to_virt phys_to_virt
141
142static inline void 54static inline void
143memset_io(volatile void __iomem *addr, unsigned char val, int count) 55memset_io(volatile void __iomem *addr, unsigned char val, int count)
144{ 56{
diff --git a/arch/x86/include/asm/io_64.h b/arch/x86/include/asm/io_64.h
index 563c16270ba6..244067893af4 100644
--- a/arch/x86/include/asm/io_64.h
+++ b/arch/x86/include/asm/io_64.h
@@ -136,73 +136,12 @@ __OUTS(b)
136__OUTS(w) 136__OUTS(w)
137__OUTS(l) 137__OUTS(l)
138 138
139#define IO_SPACE_LIMIT 0xffff
140
141#if defined(__KERNEL__) && defined(__x86_64__) 139#if defined(__KERNEL__) && defined(__x86_64__)
142 140
143#include <linux/vmalloc.h> 141#include <linux/vmalloc.h>
144 142
145#ifndef __i386__
146/*
147 * Change virtual addresses to physical addresses and vv.
148 * These are pretty trivial
149 */
150static inline unsigned long virt_to_phys(volatile void *address)
151{
152 return __pa(address);
153}
154
155static inline void *phys_to_virt(unsigned long address)
156{
157 return __va(address);
158}
159#endif
160
161/*
162 * Change "struct page" to physical address.
163 */
164#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
165
166#include <asm-generic/iomap.h> 143#include <asm-generic/iomap.h>
167 144
168/*
169 * This one maps high address device memory and turns off caching for that area.
170 * it's useful if some control registers are in such an area and write combining
171 * or read caching is not desirable:
172 */
173extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
174extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
175extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size,
176 unsigned long prot_val);
177
178/*
179 * The default ioremap() behavior is non-cached:
180 */
181static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
182{
183 return ioremap_nocache(offset, size);
184}
185
186extern void iounmap(volatile void __iomem *addr);
187
188extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
189
190/*
191 * ISA I/O bus memory addresses are 1:1 with the physical address.
192 */
193#define isa_virt_to_bus virt_to_phys
194#define isa_page_to_bus page_to_phys
195#define isa_bus_to_virt phys_to_virt
196
197/*
198 * However PCI ones are not necessarily 1:1 and therefore these interfaces
199 * are forbidden in portable PCI drivers.
200 *
201 * Allow them on x86 for legacy drivers, though.
202 */
203#define virt_to_bus virt_to_phys
204#define bus_to_virt phys_to_virt
205
206void __memcpy_fromio(void *, unsigned long, unsigned); 145void __memcpy_fromio(void *, unsigned long, unsigned);
207void __memcpy_toio(unsigned long, const void *, unsigned); 146void __memcpy_toio(unsigned long, const void *, unsigned);
208 147
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index 7a1f44ac1f17..59cb4a1317b7 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -114,38 +114,16 @@ struct IR_IO_APIC_route_entry {
114extern int nr_ioapics; 114extern int nr_ioapics;
115extern int nr_ioapic_registers[MAX_IO_APICS]; 115extern int nr_ioapic_registers[MAX_IO_APICS];
116 116
117/*
118 * MP-BIOS irq configuration table structures:
119 */
120
121#define MP_MAX_IOAPIC_PIN 127 117#define MP_MAX_IOAPIC_PIN 127
122 118
123struct mp_config_ioapic {
124 unsigned long mp_apicaddr;
125 unsigned int mp_apicid;
126 unsigned char mp_type;
127 unsigned char mp_apicver;
128 unsigned char mp_flags;
129};
130
131struct mp_config_intsrc {
132 unsigned int mp_dstapic;
133 unsigned char mp_type;
134 unsigned char mp_irqtype;
135 unsigned short mp_irqflag;
136 unsigned char mp_srcbus;
137 unsigned char mp_srcbusirq;
138 unsigned char mp_dstirq;
139};
140
141/* I/O APIC entries */ 119/* I/O APIC entries */
142extern struct mp_config_ioapic mp_ioapics[MAX_IO_APICS]; 120extern struct mpc_ioapic mp_ioapics[MAX_IO_APICS];
143 121
144/* # of MP IRQ source entries */ 122/* # of MP IRQ source entries */
145extern int mp_irq_entries; 123extern int mp_irq_entries;
146 124
147/* MP IRQ source entries */ 125/* MP IRQ source entries */
148extern struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; 126extern struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
149 127
150/* non-0 if default (table-less) MP configuration */ 128/* non-0 if default (table-less) MP configuration */
151extern int mpc_default_type; 129extern int mpc_default_type;
@@ -165,15 +143,6 @@ extern int noioapicreroute;
165/* 1 if the timer IRQ uses the '8259A Virtual Wire' mode */ 143/* 1 if the timer IRQ uses the '8259A Virtual Wire' mode */
166extern int timer_through_8259; 144extern int timer_through_8259;
167 145
168static inline void disable_ioapic_setup(void)
169{
170#ifdef CONFIG_PCI
171 noioapicquirk = 1;
172 noioapicreroute = -1;
173#endif
174 skip_ioapic_setup = 1;
175}
176
177/* 146/*
178 * If we use the IO-APIC for IRQ routing, disable automatic 147 * If we use the IO-APIC for IRQ routing, disable automatic
179 * assignment of PCI IRQ's. 148 * assignment of PCI IRQ's.
@@ -200,6 +169,12 @@ extern void reinit_intr_remapped_IO_APIC(int);
200 169
201extern void probe_nr_irqs_gsi(void); 170extern void probe_nr_irqs_gsi(void);
202 171
172extern int setup_ioapic_entry(int apic, int irq,
173 struct IO_APIC_route_entry *entry,
174 unsigned int destination, int trigger,
175 int polarity, int vector);
176extern void ioapic_write_entry(int apic, int pin,
177 struct IO_APIC_route_entry e);
203#else /* !CONFIG_X86_IO_APIC */ 178#else /* !CONFIG_X86_IO_APIC */
204#define io_apic_assign_pci_irqs 0 179#define io_apic_assign_pci_irqs 0
205static const int timer_through_8259 = 0; 180static const int timer_through_8259 = 0;
diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h
index c1f06289b14b..86af26091d6c 100644
--- a/arch/x86/include/asm/iomap.h
+++ b/arch/x86/include/asm/iomap.h
@@ -23,6 +23,9 @@
23#include <asm/pgtable.h> 23#include <asm/pgtable.h>
24#include <asm/tlbflush.h> 24#include <asm/tlbflush.h>
25 25
26int
27is_io_mapping_possible(resource_size_t base, unsigned long size);
28
26void * 29void *
27iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot); 30iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot);
28 31
diff --git a/arch/x86/include/asm/ipi.h b/arch/x86/include/asm/ipi.h
index c745a306f7d3..0b7228268a63 100644
--- a/arch/x86/include/asm/ipi.h
+++ b/arch/x86/include/asm/ipi.h
@@ -1,6 +1,8 @@
1#ifndef _ASM_X86_IPI_H 1#ifndef _ASM_X86_IPI_H
2#define _ASM_X86_IPI_H 2#define _ASM_X86_IPI_H
3 3
4#ifdef CONFIG_X86_LOCAL_APIC
5
4/* 6/*
5 * Copyright 2004 James Cleverdon, IBM. 7 * Copyright 2004 James Cleverdon, IBM.
6 * Subject to the GNU Public License, v.2 8 * Subject to the GNU Public License, v.2
@@ -55,8 +57,8 @@ static inline void __xapic_wait_icr_idle(void)
55 cpu_relax(); 57 cpu_relax();
56} 58}
57 59
58static inline void __send_IPI_shortcut(unsigned int shortcut, int vector, 60static inline void
59 unsigned int dest) 61__default_send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest)
60{ 62{
61 /* 63 /*
62 * Subtle. In the case of the 'never do double writes' workaround 64 * Subtle. In the case of the 'never do double writes' workaround
@@ -87,8 +89,8 @@ static inline void __send_IPI_shortcut(unsigned int shortcut, int vector,
87 * This is used to send an IPI with no shorthand notation (the destination is 89 * This is used to send an IPI with no shorthand notation (the destination is
88 * specified in bits 56 to 63 of the ICR). 90 * specified in bits 56 to 63 of the ICR).
89 */ 91 */
90static inline void __send_IPI_dest_field(unsigned int mask, int vector, 92static inline void
91 unsigned int dest) 93 __default_send_IPI_dest_field(unsigned int mask, int vector, unsigned int dest)
92{ 94{
93 unsigned long cfg; 95 unsigned long cfg;
94 96
@@ -117,41 +119,44 @@ static inline void __send_IPI_dest_field(unsigned int mask, int vector,
117 native_apic_mem_write(APIC_ICR, cfg); 119 native_apic_mem_write(APIC_ICR, cfg);
118} 120}
119 121
120static inline void send_IPI_mask_sequence(const struct cpumask *mask, 122extern void default_send_IPI_mask_sequence_phys(const struct cpumask *mask,
121 int vector) 123 int vector);
122{ 124extern void default_send_IPI_mask_allbutself_phys(const struct cpumask *mask,
123 unsigned long flags; 125 int vector);
124 unsigned long query_cpu; 126extern void default_send_IPI_mask_sequence_logical(const struct cpumask *mask,
127 int vector);
128extern void default_send_IPI_mask_allbutself_logical(const struct cpumask *mask,
129 int vector);
125 130
126 /* 131/* Avoid include hell */
127 * Hack. The clustered APIC addressing mode doesn't allow us to send 132#define NMI_VECTOR 0x02
128 * to an arbitrary mask, so I do a unicast to each CPU instead. 133
129 * - mbligh 134extern int no_broadcast;
130 */ 135
131 local_irq_save(flags); 136static inline void __default_local_send_IPI_allbutself(int vector)
132 for_each_cpu(query_cpu, mask) { 137{
133 __send_IPI_dest_field(per_cpu(x86_cpu_to_apicid, query_cpu), 138 if (no_broadcast || vector == NMI_VECTOR)
134 vector, APIC_DEST_PHYSICAL); 139 apic->send_IPI_mask_allbutself(cpu_online_mask, vector);
135 } 140 else
136 local_irq_restore(flags); 141 __default_send_IPI_shortcut(APIC_DEST_ALLBUT, vector, apic->dest_logical);
137} 142}
138 143
139static inline void send_IPI_mask_allbutself(const struct cpumask *mask, 144static inline void __default_local_send_IPI_all(int vector)
140 int vector)
141{ 145{
142 unsigned long flags; 146 if (no_broadcast || vector == NMI_VECTOR)
143 unsigned int query_cpu; 147 apic->send_IPI_mask(cpu_online_mask, vector);
144 unsigned int this_cpu = smp_processor_id(); 148 else
145 149 __default_send_IPI_shortcut(APIC_DEST_ALLINC, vector, apic->dest_logical);
146 /* See Hack comment above */
147
148 local_irq_save(flags);
149 for_each_cpu(query_cpu, mask)
150 if (query_cpu != this_cpu)
151 __send_IPI_dest_field(
152 per_cpu(x86_cpu_to_apicid, query_cpu),
153 vector, APIC_DEST_PHYSICAL);
154 local_irq_restore(flags);
155} 150}
156 151
152#ifdef CONFIG_X86_32
153extern void default_send_IPI_mask_logical(const struct cpumask *mask,
154 int vector);
155extern void default_send_IPI_allbutself(int vector);
156extern void default_send_IPI_all(int vector);
157extern void default_send_IPI_self(int vector);
158#endif
159
160#endif
161
157#endif /* _ASM_X86_IPI_H */ 162#endif /* _ASM_X86_IPI_H */
diff --git a/arch/x86/include/asm/irq.h b/arch/x86/include/asm/irq.h
index 592688ed04d3..f38481bcd455 100644
--- a/arch/x86/include/asm/irq.h
+++ b/arch/x86/include/asm/irq.h
@@ -36,9 +36,12 @@ static inline int irq_canonicalize(int irq)
36extern void fixup_irqs(void); 36extern void fixup_irqs(void);
37#endif 37#endif
38 38
39extern unsigned int do_IRQ(struct pt_regs *regs); 39extern void (*generic_interrupt_extension)(void);
40extern void init_IRQ(void); 40extern void init_IRQ(void);
41extern void native_init_IRQ(void); 41extern void native_init_IRQ(void);
42extern bool handle_irq(unsigned irq, struct pt_regs *regs);
43
44extern unsigned int do_IRQ(struct pt_regs *regs);
42 45
43/* Interrupt vector management */ 46/* Interrupt vector management */
44extern DECLARE_BITMAP(used_vectors, NR_VECTORS); 47extern DECLARE_BITMAP(used_vectors, NR_VECTORS);
diff --git a/arch/x86/include/asm/irq_regs.h b/arch/x86/include/asm/irq_regs.h
index 89c898ab298b..77843225b7ea 100644
--- a/arch/x86/include/asm/irq_regs.h
+++ b/arch/x86/include/asm/irq_regs.h
@@ -1,5 +1,31 @@
1#ifdef CONFIG_X86_32 1/*
2# include "irq_regs_32.h" 2 * Per-cpu current frame pointer - the location of the last exception frame on
3#else 3 * the stack, stored in the per-cpu area.
4# include "irq_regs_64.h" 4 *
5#endif 5 * Jeremy Fitzhardinge <jeremy@goop.org>
6 */
7#ifndef _ASM_X86_IRQ_REGS_H
8#define _ASM_X86_IRQ_REGS_H
9
10#include <asm/percpu.h>
11
12#define ARCH_HAS_OWN_IRQ_REGS
13
14DECLARE_PER_CPU(struct pt_regs *, irq_regs);
15
16static inline struct pt_regs *get_irq_regs(void)
17{
18 return percpu_read(irq_regs);
19}
20
21static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
22{
23 struct pt_regs *old_regs;
24
25 old_regs = get_irq_regs();
26 percpu_write(irq_regs, new_regs);
27
28 return old_regs;
29}
30
31#endif /* _ASM_X86_IRQ_REGS_32_H */
diff --git a/arch/x86/include/asm/irq_regs_32.h b/arch/x86/include/asm/irq_regs_32.h
deleted file mode 100644
index 86afd7473457..000000000000
--- a/arch/x86/include/asm/irq_regs_32.h
+++ /dev/null
@@ -1,31 +0,0 @@
1/*
2 * Per-cpu current frame pointer - the location of the last exception frame on
3 * the stack, stored in the per-cpu area.
4 *
5 * Jeremy Fitzhardinge <jeremy@goop.org>
6 */
7#ifndef _ASM_X86_IRQ_REGS_32_H
8#define _ASM_X86_IRQ_REGS_32_H
9
10#include <asm/percpu.h>
11
12#define ARCH_HAS_OWN_IRQ_REGS
13
14DECLARE_PER_CPU(struct pt_regs *, irq_regs);
15
16static inline struct pt_regs *get_irq_regs(void)
17{
18 return x86_read_percpu(irq_regs);
19}
20
21static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
22{
23 struct pt_regs *old_regs;
24
25 old_regs = get_irq_regs();
26 x86_write_percpu(irq_regs, new_regs);
27
28 return old_regs;
29}
30
31#endif /* _ASM_X86_IRQ_REGS_32_H */
diff --git a/arch/x86/include/asm/irq_regs_64.h b/arch/x86/include/asm/irq_regs_64.h
deleted file mode 100644
index 3dd9c0b70270..000000000000
--- a/arch/x86/include/asm/irq_regs_64.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-generic/irq_regs.h>
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
index a16a2ab2b429..3cbd79bbb47c 100644
--- a/arch/x86/include/asm/irq_vectors.h
+++ b/arch/x86/include/asm/irq_vectors.h
@@ -1,47 +1,69 @@
1#ifndef _ASM_X86_IRQ_VECTORS_H 1#ifndef _ASM_X86_IRQ_VECTORS_H
2#define _ASM_X86_IRQ_VECTORS_H 2#define _ASM_X86_IRQ_VECTORS_H
3 3
4#include <linux/threads.h> 4/*
5 * Linux IRQ vector layout.
6 *
7 * There are 256 IDT entries (per CPU - each entry is 8 bytes) which can
8 * be defined by Linux. They are used as a jump table by the CPU when a
9 * given vector is triggered - by a CPU-external, CPU-internal or
10 * software-triggered event.
11 *
12 * Linux sets the kernel code address each entry jumps to early during
13 * bootup, and never changes them. This is the general layout of the
14 * IDT entries:
15 *
16 * Vectors 0 ... 31 : system traps and exceptions - hardcoded events
17 * Vectors 32 ... 127 : device interrupts
18 * Vector 128 : legacy int80 syscall interface
19 * Vectors 129 ... 237 : device interrupts
20 * Vectors 238 ... 255 : special interrupts
21 *
22 * 64-bit x86 has per CPU IDT tables, 32-bit has one shared IDT table.
23 *
24 * This file enumerates the exact layout of them:
25 */
5 26
6#define NMI_VECTOR 0x02 27#define NMI_VECTOR 0x02
7 28
8/* 29/*
9 * IDT vectors usable for external interrupt sources start 30 * IDT vectors usable for external interrupt sources start
10 * at 0x20: 31 * at 0x20:
11 */ 32 */
12#define FIRST_EXTERNAL_VECTOR 0x20 33#define FIRST_EXTERNAL_VECTOR 0x20
13 34
14#ifdef CONFIG_X86_32 35#ifdef CONFIG_X86_32
15# define SYSCALL_VECTOR 0x80 36# define SYSCALL_VECTOR 0x80
16#else 37#else
17# define IA32_SYSCALL_VECTOR 0x80 38# define IA32_SYSCALL_VECTOR 0x80
18#endif 39#endif
19 40
20/* 41/*
21 * Reserve the lowest usable priority level 0x20 - 0x2f for triggering 42 * Reserve the lowest usable priority level 0x20 - 0x2f for triggering
22 * cleanup after irq migration. 43 * cleanup after irq migration.
23 */ 44 */
24#define IRQ_MOVE_CLEANUP_VECTOR FIRST_EXTERNAL_VECTOR 45#define IRQ_MOVE_CLEANUP_VECTOR FIRST_EXTERNAL_VECTOR
25 46
26/* 47/*
27 * Vectors 0x30-0x3f are used for ISA interrupts. 48 * Vectors 0x30-0x3f are used for ISA interrupts.
28 */ 49 */
29#define IRQ0_VECTOR (FIRST_EXTERNAL_VECTOR + 0x10) 50#define IRQ0_VECTOR (FIRST_EXTERNAL_VECTOR + 0x10)
30#define IRQ1_VECTOR (IRQ0_VECTOR + 1) 51
31#define IRQ2_VECTOR (IRQ0_VECTOR + 2) 52#define IRQ1_VECTOR (IRQ0_VECTOR + 1)
32#define IRQ3_VECTOR (IRQ0_VECTOR + 3) 53#define IRQ2_VECTOR (IRQ0_VECTOR + 2)
33#define IRQ4_VECTOR (IRQ0_VECTOR + 4) 54#define IRQ3_VECTOR (IRQ0_VECTOR + 3)
34#define IRQ5_VECTOR (IRQ0_VECTOR + 5) 55#define IRQ4_VECTOR (IRQ0_VECTOR + 4)
35#define IRQ6_VECTOR (IRQ0_VECTOR + 6) 56#define IRQ5_VECTOR (IRQ0_VECTOR + 5)
36#define IRQ7_VECTOR (IRQ0_VECTOR + 7) 57#define IRQ6_VECTOR (IRQ0_VECTOR + 6)
37#define IRQ8_VECTOR (IRQ0_VECTOR + 8) 58#define IRQ7_VECTOR (IRQ0_VECTOR + 7)
38#define IRQ9_VECTOR (IRQ0_VECTOR + 9) 59#define IRQ8_VECTOR (IRQ0_VECTOR + 8)
39#define IRQ10_VECTOR (IRQ0_VECTOR + 10) 60#define IRQ9_VECTOR (IRQ0_VECTOR + 9)
40#define IRQ11_VECTOR (IRQ0_VECTOR + 11) 61#define IRQ10_VECTOR (IRQ0_VECTOR + 10)
41#define IRQ12_VECTOR (IRQ0_VECTOR + 12) 62#define IRQ11_VECTOR (IRQ0_VECTOR + 11)
42#define IRQ13_VECTOR (IRQ0_VECTOR + 13) 63#define IRQ12_VECTOR (IRQ0_VECTOR + 12)
43#define IRQ14_VECTOR (IRQ0_VECTOR + 14) 64#define IRQ13_VECTOR (IRQ0_VECTOR + 13)
44#define IRQ15_VECTOR (IRQ0_VECTOR + 15) 65#define IRQ14_VECTOR (IRQ0_VECTOR + 14)
66#define IRQ15_VECTOR (IRQ0_VECTOR + 15)
45 67
46/* 68/*
47 * Special IRQ vectors used by the SMP architecture, 0xf0-0xff 69 * Special IRQ vectors used by the SMP architecture, 0xf0-0xff
@@ -49,122 +71,103 @@
49 * some of the following vectors are 'rare', they are merged 71 * some of the following vectors are 'rare', they are merged
50 * into a single vector (CALL_FUNCTION_VECTOR) to save vector space. 72 * into a single vector (CALL_FUNCTION_VECTOR) to save vector space.
51 * TLB, reschedule and local APIC vectors are performance-critical. 73 * TLB, reschedule and local APIC vectors are performance-critical.
52 *
53 * Vectors 0xf0-0xfa are free (reserved for future Linux use).
54 */ 74 */
55#ifdef CONFIG_X86_32
56
57# define SPURIOUS_APIC_VECTOR 0xff
58# define ERROR_APIC_VECTOR 0xfe
59# define INVALIDATE_TLB_VECTOR 0xfd
60# define RESCHEDULE_VECTOR 0xfc
61# define CALL_FUNCTION_VECTOR 0xfb
62# define CALL_FUNCTION_SINGLE_VECTOR 0xfa
63# define THERMAL_APIC_VECTOR 0xf0
64
65#else
66 75
67#define SPURIOUS_APIC_VECTOR 0xff 76#define SPURIOUS_APIC_VECTOR 0xff
77/*
78 * Sanity check
79 */
80#if ((SPURIOUS_APIC_VECTOR & 0x0F) != 0x0F)
81# error SPURIOUS_APIC_VECTOR definition error
82#endif
83
68#define ERROR_APIC_VECTOR 0xfe 84#define ERROR_APIC_VECTOR 0xfe
69#define RESCHEDULE_VECTOR 0xfd 85#define RESCHEDULE_VECTOR 0xfd
70#define CALL_FUNCTION_VECTOR 0xfc 86#define CALL_FUNCTION_VECTOR 0xfc
71#define CALL_FUNCTION_SINGLE_VECTOR 0xfb 87#define CALL_FUNCTION_SINGLE_VECTOR 0xfb
72#define THERMAL_APIC_VECTOR 0xfa 88#define THERMAL_APIC_VECTOR 0xfa
73#define THRESHOLD_APIC_VECTOR 0xf9
74#define UV_BAU_MESSAGE 0xf8
75#define INVALIDATE_TLB_VECTOR_END 0xf7
76#define INVALIDATE_TLB_VECTOR_START 0xf0 /* f0-f7 used for TLB flush */
77
78#define NUM_INVALIDATE_TLB_VECTORS 8
79 89
90#ifdef CONFIG_X86_32
91/* 0xf8 - 0xf9 : free */
92#else
93# define THRESHOLD_APIC_VECTOR 0xf9
94# define UV_BAU_MESSAGE 0xf8
80#endif 95#endif
81 96
97/* f0-f7 used for spreading out TLB flushes: */
98#define INVALIDATE_TLB_VECTOR_END 0xf7
99#define INVALIDATE_TLB_VECTOR_START 0xf0
100#define NUM_INVALIDATE_TLB_VECTORS 8
101
82/* 102/*
83 * Local APIC timer IRQ vector is on a different priority level, 103 * Local APIC timer IRQ vector is on a different priority level,
84 * to work around the 'lost local interrupt if more than 2 IRQ 104 * to work around the 'lost local interrupt if more than 2 IRQ
85 * sources per level' errata. 105 * sources per level' errata.
86 */ 106 */
87#define LOCAL_TIMER_VECTOR 0xef 107#define LOCAL_TIMER_VECTOR 0xef
108
109/*
110 * Performance monitoring interrupt vector:
111 */
112#define LOCAL_PERF_VECTOR 0xee
113
114/*
115 * Generic system vector for platform specific use
116 */
117#define GENERIC_INTERRUPT_VECTOR 0xed
88 118
89/* 119/*
90 * First APIC vector available to drivers: (vectors 0x30-0xee) we 120 * First APIC vector available to drivers: (vectors 0x30-0xee) we
91 * start at 0x31(0x41) to spread out vectors evenly between priority 121 * start at 0x31(0x41) to spread out vectors evenly between priority
92 * levels. (0x80 is the syscall vector) 122 * levels. (0x80 is the syscall vector)
93 */ 123 */
94#define FIRST_DEVICE_VECTOR (IRQ15_VECTOR + 2) 124#define FIRST_DEVICE_VECTOR (IRQ15_VECTOR + 2)
95
96#define NR_VECTORS 256
97 125
98#define FPU_IRQ 13 126#define NR_VECTORS 256
99 127
100#define FIRST_VM86_IRQ 3 128#define FPU_IRQ 13
101#define LAST_VM86_IRQ 15
102#define invalid_vm86_irq(irq) ((irq) < 3 || (irq) > 15)
103
104#define NR_IRQS_LEGACY 16
105
106#if defined(CONFIG_X86_IO_APIC) && !defined(CONFIG_X86_VOYAGER)
107
108#include <asm/apicnum.h> /* need MAX_IO_APICS */
109
110#ifndef CONFIG_SPARSE_IRQ
111# if NR_CPUS < MAX_IO_APICS
112# define NR_IRQS (NR_VECTORS + (32 * NR_CPUS))
113# else
114# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
115# endif
116#else
117 129
118# define NR_IRQS \ 130#define FIRST_VM86_IRQ 3
119 ((8 * NR_CPUS) > (32 * MAX_IO_APICS) ? \ 131#define LAST_VM86_IRQ 15
120 (NR_VECTORS + (8 * NR_CPUS)) : \
121 (NR_VECTORS + (32 * MAX_IO_APICS))) \
122 132
133#ifndef __ASSEMBLY__
134static inline int invalid_vm86_irq(int irq)
135{
136 return irq < FIRST_VM86_IRQ || irq > LAST_VM86_IRQ;
137}
123#endif 138#endif
124 139
125#elif defined(CONFIG_X86_VOYAGER) 140/*
126 141 * Size the maximum number of interrupts.
127# define NR_IRQS 224 142 *
143 * If the irq_desc[] array has a sparse layout, we can size things
144 * generously - it scales up linearly with the maximum number of CPUs,
145 * and the maximum number of IO-APICs, whichever is higher.
146 *
147 * In other cases we size more conservatively, to not create too large
148 * static arrays.
149 */
128 150
129#else /* IO_APIC || VOYAGER */ 151#define NR_IRQS_LEGACY 16
130 152
131# define NR_IRQS 16 153#define CPU_VECTOR_LIMIT ( 8 * NR_CPUS )
154#define IO_APIC_VECTOR_LIMIT ( 32 * MAX_IO_APICS )
132 155
156#ifdef CONFIG_X86_IO_APIC
157# ifdef CONFIG_SPARSE_IRQ
158# define NR_IRQS \
159 (CPU_VECTOR_LIMIT > IO_APIC_VECTOR_LIMIT ? \
160 (NR_VECTORS + CPU_VECTOR_LIMIT) : \
161 (NR_VECTORS + IO_APIC_VECTOR_LIMIT))
162# else
163# if NR_CPUS < MAX_IO_APICS
164# define NR_IRQS (NR_VECTORS + 4*CPU_VECTOR_LIMIT)
165# else
166# define NR_IRQS (NR_VECTORS + IO_APIC_VECTOR_LIMIT)
167# endif
168# endif
169#else /* !CONFIG_X86_IO_APIC: */
170# define NR_IRQS NR_IRQS_LEGACY
133#endif 171#endif
134 172
135/* Voyager specific defines */
136/* These define the CPIs we use in linux */
137#define VIC_CPI_LEVEL0 0
138#define VIC_CPI_LEVEL1 1
139/* now the fake CPIs */
140#define VIC_TIMER_CPI 2
141#define VIC_INVALIDATE_CPI 3
142#define VIC_RESCHEDULE_CPI 4
143#define VIC_ENABLE_IRQ_CPI 5
144#define VIC_CALL_FUNCTION_CPI 6
145#define VIC_CALL_FUNCTION_SINGLE_CPI 7
146
147/* Now the QIC CPIs: Since we don't need the two initial levels,
148 * these are 2 less than the VIC CPIs */
149#define QIC_CPI_OFFSET 1
150#define QIC_TIMER_CPI (VIC_TIMER_CPI - QIC_CPI_OFFSET)
151#define QIC_INVALIDATE_CPI (VIC_INVALIDATE_CPI - QIC_CPI_OFFSET)
152#define QIC_RESCHEDULE_CPI (VIC_RESCHEDULE_CPI - QIC_CPI_OFFSET)
153#define QIC_ENABLE_IRQ_CPI (VIC_ENABLE_IRQ_CPI - QIC_CPI_OFFSET)
154#define QIC_CALL_FUNCTION_CPI (VIC_CALL_FUNCTION_CPI - QIC_CPI_OFFSET)
155#define QIC_CALL_FUNCTION_SINGLE_CPI (VIC_CALL_FUNCTION_SINGLE_CPI - QIC_CPI_OFFSET)
156
157#define VIC_START_FAKE_CPI VIC_TIMER_CPI
158#define VIC_END_FAKE_CPI VIC_CALL_FUNCTION_SINGLE_CPI
159
160/* this is the SYS_INT CPI. */
161#define VIC_SYS_INT 8
162#define VIC_CMN_INT 15
163
164/* This is the boot CPI for alternate processors. It gets overwritten
165 * by the above once the system has activated all available processors */
166#define VIC_CPU_BOOT_CPI VIC_CPI_LEVEL0
167#define VIC_CPU_BOOT_ERRATA_CPI (VIC_CPI_LEVEL0 + 8)
168
169
170#endif /* _ASM_X86_IRQ_VECTORS_H */ 173#endif /* _ASM_X86_IRQ_VECTORS_H */
diff --git a/arch/x86/include/asm/kexec.h b/arch/x86/include/asm/kexec.h
index c61d8b2ab8b9..317ff1703d0b 100644
--- a/arch/x86/include/asm/kexec.h
+++ b/arch/x86/include/asm/kexec.h
@@ -10,27 +10,12 @@
10#else 10#else
11# define PA_CONTROL_PAGE 0 11# define PA_CONTROL_PAGE 0
12# define VA_CONTROL_PAGE 1 12# define VA_CONTROL_PAGE 1
13# define PA_PGD 2 13# define PA_TABLE_PAGE 2
14# define VA_PGD 3 14# define PA_SWAP_PAGE 3
15# define PA_PUD_0 4 15# define PAGES_NR 4
16# define VA_PUD_0 5
17# define PA_PMD_0 6
18# define VA_PMD_0 7
19# define PA_PTE_0 8
20# define VA_PTE_0 9
21# define PA_PUD_1 10
22# define VA_PUD_1 11
23# define PA_PMD_1 12
24# define VA_PMD_1 13
25# define PA_PTE_1 14
26# define VA_PTE_1 15
27# define PA_TABLE_PAGE 16
28# define PAGES_NR 17
29#endif 16#endif
30 17
31#ifdef CONFIG_X86_32
32# define KEXEC_CONTROL_CODE_MAX_SIZE 2048 18# define KEXEC_CONTROL_CODE_MAX_SIZE 2048
33#endif
34 19
35#ifndef __ASSEMBLY__ 20#ifndef __ASSEMBLY__
36 21
@@ -151,15 +136,16 @@ relocate_kernel(unsigned long indirection_page,
151 unsigned int has_pae, 136 unsigned int has_pae,
152 unsigned int preserve_context); 137 unsigned int preserve_context);
153#else 138#else
154NORET_TYPE void 139unsigned long
155relocate_kernel(unsigned long indirection_page, 140relocate_kernel(unsigned long indirection_page,
156 unsigned long page_list, 141 unsigned long page_list,
157 unsigned long start_address) ATTRIB_NORET; 142 unsigned long start_address,
143 unsigned int preserve_context);
158#endif 144#endif
159 145
160#ifdef CONFIG_X86_32
161#define ARCH_HAS_KIMAGE_ARCH 146#define ARCH_HAS_KIMAGE_ARCH
162 147
148#ifdef CONFIG_X86_32
163struct kimage_arch { 149struct kimage_arch {
164 pgd_t *pgd; 150 pgd_t *pgd;
165#ifdef CONFIG_X86_PAE 151#ifdef CONFIG_X86_PAE
@@ -169,6 +155,12 @@ struct kimage_arch {
169 pte_t *pte0; 155 pte_t *pte0;
170 pte_t *pte1; 156 pte_t *pte1;
171}; 157};
158#else
159struct kimage_arch {
160 pud_t *pud;
161 pmd_t *pmd;
162 pte_t *pte;
163};
172#endif 164#endif
173 165
174#endif /* __ASSEMBLY__ */ 166#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/include/asm/kvm.h b/arch/x86/include/asm/kvm.h
index b95162af0bf6..886c9402ec45 100644
--- a/arch/x86/include/asm/kvm.h
+++ b/arch/x86/include/asm/kvm.h
@@ -6,9 +6,16 @@
6 * 6 *
7 */ 7 */
8 8
9#include <asm/types.h> 9#include <linux/types.h>
10#include <linux/ioctl.h> 10#include <linux/ioctl.h>
11 11
12/* Select x86 specific features in <linux/kvm.h> */
13#define __KVM_HAVE_PIT
14#define __KVM_HAVE_IOAPIC
15#define __KVM_HAVE_DEVICE_ASSIGNMENT
16#define __KVM_HAVE_MSI
17#define __KVM_HAVE_USER_NMI
18
12/* Architectural interrupt line count. */ 19/* Architectural interrupt line count. */
13#define KVM_NR_INTERRUPTS 256 20#define KVM_NR_INTERRUPTS 256
14 21
diff --git a/arch/x86/include/asm/linkage.h b/arch/x86/include/asm/linkage.h
index 5d98d0b68ffc..a0d70b46c27c 100644
--- a/arch/x86/include/asm/linkage.h
+++ b/arch/x86/include/asm/linkage.h
@@ -4,11 +4,6 @@
4#undef notrace 4#undef notrace
5#define notrace __attribute__((no_instrument_function)) 5#define notrace __attribute__((no_instrument_function))
6 6
7#ifdef CONFIG_X86_64
8#define __ALIGN .p2align 4,,15
9#define __ALIGN_STR ".p2align 4,,15"
10#endif
11
12#ifdef CONFIG_X86_32 7#ifdef CONFIG_X86_32
13#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0))) 8#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
14/* 9/*
@@ -50,6 +45,17 @@
50 __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3), \ 45 __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3), \
51 "g" (arg4), "g" (arg5), "g" (arg6)) 46 "g" (arg4), "g" (arg5), "g" (arg6))
52 47
48#endif /* CONFIG_X86_32 */
49
50#ifdef __ASSEMBLY__
51
52#define GLOBAL(name) \
53 .globl name; \
54 name:
55
56#ifdef CONFIG_X86_64
57#define __ALIGN .p2align 4,,15
58#define __ALIGN_STR ".p2align 4,,15"
53#endif 59#endif
54 60
55#ifdef CONFIG_X86_ALIGNMENT_16 61#ifdef CONFIG_X86_ALIGNMENT_16
@@ -57,65 +63,7 @@
57#define __ALIGN_STR ".align 16,0x90" 63#define __ALIGN_STR ".align 16,0x90"
58#endif 64#endif
59 65
60/* 66#endif /* __ASSEMBLY__ */
61 * to check ENTRY_X86/END_X86 and
62 * KPROBE_ENTRY_X86/KPROBE_END_X86
63 * unbalanced-missed-mixed appearance
64 */
65#define __set_entry_x86 .set ENTRY_X86_IN, 0
66#define __unset_entry_x86 .set ENTRY_X86_IN, 1
67#define __set_kprobe_x86 .set KPROBE_X86_IN, 0
68#define __unset_kprobe_x86 .set KPROBE_X86_IN, 1
69
70#define __macro_err_x86 .error "ENTRY_X86/KPROBE_X86 unbalanced,missed,mixed"
71
72#define __check_entry_x86 \
73 .ifdef ENTRY_X86_IN; \
74 .ifeq ENTRY_X86_IN; \
75 __macro_err_x86; \
76 .abort; \
77 .endif; \
78 .endif
79
80#define __check_kprobe_x86 \
81 .ifdef KPROBE_X86_IN; \
82 .ifeq KPROBE_X86_IN; \
83 __macro_err_x86; \
84 .abort; \
85 .endif; \
86 .endif
87
88#define __check_entry_kprobe_x86 \
89 __check_entry_x86; \
90 __check_kprobe_x86
91
92#define ENTRY_KPROBE_FINAL_X86 __check_entry_kprobe_x86
93
94#define ENTRY_X86(name) \
95 __check_entry_kprobe_x86; \
96 __set_entry_x86; \
97 .globl name; \
98 __ALIGN; \
99 name:
100
101#define END_X86(name) \
102 __unset_entry_x86; \
103 __check_entry_kprobe_x86; \
104 .size name, .-name
105
106#define KPROBE_ENTRY_X86(name) \
107 __check_entry_kprobe_x86; \
108 __set_kprobe_x86; \
109 .pushsection .kprobes.text, "ax"; \
110 .globl name; \
111 __ALIGN; \
112 name:
113
114#define KPROBE_END_X86(name) \
115 __unset_kprobe_x86; \
116 __check_entry_kprobe_x86; \
117 .size name, .-name; \
118 .popsection
119 67
120#endif /* _ASM_X86_LINKAGE_H */ 68#endif /* _ASM_X86_LINKAGE_H */
121 69
diff --git a/arch/x86/include/asm/mach-default/mach_apic.h b/arch/x86/include/asm/mach-default/mach_apic.h
deleted file mode 100644
index cc09cbbee27e..000000000000
--- a/arch/x86/include/asm/mach-default/mach_apic.h
+++ /dev/null
@@ -1,168 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_APIC_H
2#define _ASM_X86_MACH_DEFAULT_MACH_APIC_H
3
4#ifdef CONFIG_X86_LOCAL_APIC
5
6#include <mach_apicdef.h>
7#include <asm/smp.h>
8
9#define APIC_DFR_VALUE (APIC_DFR_FLAT)
10
11static inline const struct cpumask *target_cpus(void)
12{
13#ifdef CONFIG_SMP
14 return cpu_online_mask;
15#else
16 return cpumask_of(0);
17#endif
18}
19
20#define NO_BALANCE_IRQ (0)
21#define esr_disable (0)
22
23#ifdef CONFIG_X86_64
24#include <asm/genapic.h>
25#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
26#define INT_DEST_MODE (genapic->int_dest_mode)
27#define TARGET_CPUS (genapic->target_cpus())
28#define apic_id_registered (genapic->apic_id_registered)
29#define init_apic_ldr (genapic->init_apic_ldr)
30#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
31#define cpu_mask_to_apicid_and (genapic->cpu_mask_to_apicid_and)
32#define phys_pkg_id (genapic->phys_pkg_id)
33#define vector_allocation_domain (genapic->vector_allocation_domain)
34#define read_apic_id() (GET_APIC_ID(apic_read(APIC_ID)))
35#define send_IPI_self (genapic->send_IPI_self)
36#define wakeup_secondary_cpu (genapic->wakeup_cpu)
37extern void setup_apic_routing(void);
38#else
39#define INT_DELIVERY_MODE dest_LowestPrio
40#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */
41#define TARGET_CPUS (target_cpus())
42#define wakeup_secondary_cpu wakeup_secondary_cpu_via_init
43/*
44 * Set up the logical destination ID.
45 *
46 * Intel recommends to set DFR, LDR and TPR before enabling
47 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
48 * document number 292116). So here it goes...
49 */
50static inline void init_apic_ldr(void)
51{
52 unsigned long val;
53
54 apic_write(APIC_DFR, APIC_DFR_VALUE);
55 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
56 val |= SET_APIC_LOGICAL_ID(1UL << smp_processor_id());
57 apic_write(APIC_LDR, val);
58}
59
60static inline int apic_id_registered(void)
61{
62 return physid_isset(read_apic_id(), phys_cpu_present_map);
63}
64
65static inline unsigned int cpu_mask_to_apicid(const struct cpumask *cpumask)
66{
67 return cpumask_bits(cpumask)[0];
68}
69
70static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask,
71 const struct cpumask *andmask)
72{
73 unsigned long mask1 = cpumask_bits(cpumask)[0];
74 unsigned long mask2 = cpumask_bits(andmask)[0];
75 unsigned long mask3 = cpumask_bits(cpu_online_mask)[0];
76
77 return (unsigned int)(mask1 & mask2 & mask3);
78}
79
80static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
81{
82 return cpuid_apic >> index_msb;
83}
84
85static inline void setup_apic_routing(void)
86{
87#ifdef CONFIG_X86_IO_APIC
88 printk("Enabling APIC mode: %s. Using %d I/O APICs\n",
89 "Flat", nr_ioapics);
90#endif
91}
92
93static inline int apicid_to_node(int logical_apicid)
94{
95#ifdef CONFIG_SMP
96 return apicid_2_node[hard_smp_processor_id()];
97#else
98 return 0;
99#endif
100}
101
102static inline void vector_allocation_domain(int cpu, struct cpumask *retmask)
103{
104 /* Careful. Some cpus do not strictly honor the set of cpus
105 * specified in the interrupt destination when using lowest
106 * priority interrupt delivery mode.
107 *
108 * In particular there was a hyperthreading cpu observed to
109 * deliver interrupts to the wrong hyperthread when only one
110 * hyperthread was specified in the interrupt desitination.
111 */
112 *retmask = (cpumask_t) { { [0] = APIC_ALL_CPUS } };
113}
114#endif
115
116static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
117{
118 return physid_isset(apicid, bitmap);
119}
120
121static inline unsigned long check_apicid_present(int bit)
122{
123 return physid_isset(bit, phys_cpu_present_map);
124}
125
126static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
127{
128 return phys_map;
129}
130
131static inline int multi_timer_check(int apic, int irq)
132{
133 return 0;
134}
135
136/* Mapping from cpu number to logical apicid */
137static inline int cpu_to_logical_apicid(int cpu)
138{
139 return 1 << cpu;
140}
141
142static inline int cpu_present_to_apicid(int mps_cpu)
143{
144 if (mps_cpu < nr_cpu_ids && cpu_present(mps_cpu))
145 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
146 else
147 return BAD_APICID;
148}
149
150static inline physid_mask_t apicid_to_cpu_present(int phys_apicid)
151{
152 return physid_mask_of_physid(phys_apicid);
153}
154
155static inline void setup_portio_remap(void)
156{
157}
158
159static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
160{
161 return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map);
162}
163
164static inline void enable_apic_mode(void)
165{
166}
167#endif /* CONFIG_X86_LOCAL_APIC */
168#endif /* _ASM_X86_MACH_DEFAULT_MACH_APIC_H */
diff --git a/arch/x86/include/asm/mach-default/mach_apicdef.h b/arch/x86/include/asm/mach-default/mach_apicdef.h
deleted file mode 100644
index 53179936d6c6..000000000000
--- a/arch/x86/include/asm/mach-default/mach_apicdef.h
+++ /dev/null
@@ -1,24 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H
2#define _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H
3
4#include <asm/apic.h>
5
6#ifdef CONFIG_X86_64
7#define APIC_ID_MASK (genapic->apic_id_mask)
8#define GET_APIC_ID(x) (genapic->get_apic_id(x))
9#define SET_APIC_ID(x) (genapic->set_apic_id(x))
10#else
11#define APIC_ID_MASK (0xF<<24)
12static inline unsigned get_apic_id(unsigned long x)
13{
14 unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR));
15 if (APIC_XAPIC(ver))
16 return (((x)>>24)&0xFF);
17 else
18 return (((x)>>24)&0xF);
19}
20
21#define GET_APIC_ID(x) get_apic_id(x)
22#endif
23
24#endif /* _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H */
diff --git a/arch/x86/include/asm/mach-default/mach_ipi.h b/arch/x86/include/asm/mach-default/mach_ipi.h
deleted file mode 100644
index 191312d155da..000000000000
--- a/arch/x86/include/asm/mach-default/mach_ipi.h
+++ /dev/null
@@ -1,64 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_IPI_H
2#define _ASM_X86_MACH_DEFAULT_MACH_IPI_H
3
4/* Avoid include hell */
5#define NMI_VECTOR 0x02
6
7void send_IPI_mask_bitmask(const struct cpumask *mask, int vector);
8void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
9void __send_IPI_shortcut(unsigned int shortcut, int vector);
10
11extern int no_broadcast;
12
13#ifdef CONFIG_X86_64
14#include <asm/genapic.h>
15#define send_IPI_mask (genapic->send_IPI_mask)
16#define send_IPI_mask_allbutself (genapic->send_IPI_mask_allbutself)
17#else
18static inline void send_IPI_mask(const struct cpumask *mask, int vector)
19{
20 send_IPI_mask_bitmask(mask, vector);
21}
22void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
23#endif
24
25static inline void __local_send_IPI_allbutself(int vector)
26{
27 if (no_broadcast || vector == NMI_VECTOR)
28 send_IPI_mask_allbutself(cpu_online_mask, vector);
29 else
30 __send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
31}
32
33static inline void __local_send_IPI_all(int vector)
34{
35 if (no_broadcast || vector == NMI_VECTOR)
36 send_IPI_mask(cpu_online_mask, vector);
37 else
38 __send_IPI_shortcut(APIC_DEST_ALLINC, vector);
39}
40
41#ifdef CONFIG_X86_64
42#define send_IPI_allbutself (genapic->send_IPI_allbutself)
43#define send_IPI_all (genapic->send_IPI_all)
44#else
45static inline void send_IPI_allbutself(int vector)
46{
47 /*
48 * if there are no other CPUs in the system then we get an APIC send
49 * error if we try to broadcast, thus avoid sending IPIs in this case.
50 */
51 if (!(num_online_cpus() > 1))
52 return;
53
54 __local_send_IPI_allbutself(vector);
55 return;
56}
57
58static inline void send_IPI_all(int vector)
59{
60 __local_send_IPI_all(vector);
61}
62#endif
63
64#endif /* _ASM_X86_MACH_DEFAULT_MACH_IPI_H */
diff --git a/arch/x86/include/asm/mach-default/mach_mpparse.h b/arch/x86/include/asm/mach-default/mach_mpparse.h
deleted file mode 100644
index c70a263d68cd..000000000000
--- a/arch/x86/include/asm/mach-default/mach_mpparse.h
+++ /dev/null
@@ -1,17 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H
2#define _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H
3
4static inline int
5mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
6{
7 return 0;
8}
9
10/* Hook from generic ACPI tables.c */
11static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
12{
13 return 0;
14}
15
16
17#endif /* _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H */
diff --git a/arch/x86/include/asm/mach-default/mach_mpspec.h b/arch/x86/include/asm/mach-default/mach_mpspec.h
deleted file mode 100644
index e85ede686be8..000000000000
--- a/arch/x86/include/asm/mach-default/mach_mpspec.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H
2#define _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H
3
4#define MAX_IRQ_SOURCES 256
5
6#if CONFIG_BASE_SMALL == 0
7#define MAX_MP_BUSSES 256
8#else
9#define MAX_MP_BUSSES 32
10#endif
11
12#endif /* _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H */
diff --git a/arch/x86/include/asm/mach-default/mach_wakecpu.h b/arch/x86/include/asm/mach-default/mach_wakecpu.h
deleted file mode 100644
index 89897a6a65b9..000000000000
--- a/arch/x86/include/asm/mach-default/mach_wakecpu.h
+++ /dev/null
@@ -1,41 +0,0 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
2#define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
3
4#define TRAMPOLINE_PHYS_LOW (0x467)
5#define TRAMPOLINE_PHYS_HIGH (0x469)
6
7static inline void wait_for_init_deassert(atomic_t *deassert)
8{
9 while (!atomic_read(deassert))
10 cpu_relax();
11 return;
12}
13
14/* Nothing to do for most platforms, since cleared by the INIT cycle */
15static inline void smp_callin_clear_local_apic(void)
16{
17}
18
19static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
20{
21}
22
23static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
24{
25}
26
27#ifdef CONFIG_SMP
28extern void __inquire_remote_apic(int apicid);
29#else /* CONFIG_SMP */
30static inline void __inquire_remote_apic(int apicid)
31{
32}
33#endif /* CONFIG_SMP */
34
35static inline void inquire_remote_apic(int apicid)
36{
37 if (apic_verbosity >= APIC_DEBUG)
38 __inquire_remote_apic(apicid);
39}
40
41#endif /* _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H */
diff --git a/arch/x86/include/asm/mach-generic/gpio.h b/arch/x86/include/asm/mach-generic/gpio.h
deleted file mode 100644
index 995c45efdb33..000000000000
--- a/arch/x86/include/asm/mach-generic/gpio.h
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_GPIO_H
2#define _ASM_X86_MACH_GENERIC_GPIO_H
3
4int gpio_request(unsigned gpio, const char *label);
5void gpio_free(unsigned gpio);
6int gpio_direction_input(unsigned gpio);
7int gpio_direction_output(unsigned gpio, int value);
8int gpio_get_value(unsigned gpio);
9void gpio_set_value(unsigned gpio, int value);
10int gpio_to_irq(unsigned gpio);
11int irq_to_gpio(unsigned irq);
12
13#include <asm-generic/gpio.h> /* cansleep wrappers */
14
15#endif /* _ASM_X86_MACH_GENERIC_GPIO_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_apic.h b/arch/x86/include/asm/mach-generic/mach_apic.h
deleted file mode 100644
index 48553e958ad5..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_apic.h
+++ /dev/null
@@ -1,35 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_APIC_H
2#define _ASM_X86_MACH_GENERIC_MACH_APIC_H
3
4#include <asm/genapic.h>
5
6#define esr_disable (genapic->ESR_DISABLE)
7#define NO_BALANCE_IRQ (genapic->no_balance_irq)
8#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
9#define INT_DEST_MODE (genapic->int_dest_mode)
10#undef APIC_DEST_LOGICAL
11#define APIC_DEST_LOGICAL (genapic->apic_destination_logical)
12#define TARGET_CPUS (genapic->target_cpus())
13#define apic_id_registered (genapic->apic_id_registered)
14#define init_apic_ldr (genapic->init_apic_ldr)
15#define ioapic_phys_id_map (genapic->ioapic_phys_id_map)
16#define setup_apic_routing (genapic->setup_apic_routing)
17#define multi_timer_check (genapic->multi_timer_check)
18#define apicid_to_node (genapic->apicid_to_node)
19#define cpu_to_logical_apicid (genapic->cpu_to_logical_apicid)
20#define cpu_present_to_apicid (genapic->cpu_present_to_apicid)
21#define apicid_to_cpu_present (genapic->apicid_to_cpu_present)
22#define setup_portio_remap (genapic->setup_portio_remap)
23#define check_apicid_present (genapic->check_apicid_present)
24#define check_phys_apicid_present (genapic->check_phys_apicid_present)
25#define check_apicid_used (genapic->check_apicid_used)
26#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
27#define cpu_mask_to_apicid_and (genapic->cpu_mask_to_apicid_and)
28#define vector_allocation_domain (genapic->vector_allocation_domain)
29#define enable_apic_mode (genapic->enable_apic_mode)
30#define phys_pkg_id (genapic->phys_pkg_id)
31#define wakeup_secondary_cpu (genapic->wakeup_cpu)
32
33extern void generic_bigsmp_probe(void);
34
35#endif /* _ASM_X86_MACH_GENERIC_MACH_APIC_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_apicdef.h b/arch/x86/include/asm/mach-generic/mach_apicdef.h
deleted file mode 100644
index 68041f3802f4..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_apicdef.h
+++ /dev/null
@@ -1,11 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_APICDEF_H
2#define _ASM_X86_MACH_GENERIC_MACH_APICDEF_H
3
4#ifndef APIC_DEFINITION
5#include <asm/genapic.h>
6
7#define GET_APIC_ID (genapic->get_apic_id)
8#define APIC_ID_MASK (genapic->apic_id_mask)
9#endif
10
11#endif /* _ASM_X86_MACH_GENERIC_MACH_APICDEF_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_ipi.h b/arch/x86/include/asm/mach-generic/mach_ipi.h
deleted file mode 100644
index ffd637e3c3d9..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_ipi.h
+++ /dev/null
@@ -1,10 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_IPI_H
2#define _ASM_X86_MACH_GENERIC_MACH_IPI_H
3
4#include <asm/genapic.h>
5
6#define send_IPI_mask (genapic->send_IPI_mask)
7#define send_IPI_allbutself (genapic->send_IPI_allbutself)
8#define send_IPI_all (genapic->send_IPI_all)
9
10#endif /* _ASM_X86_MACH_GENERIC_MACH_IPI_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_mpparse.h b/arch/x86/include/asm/mach-generic/mach_mpparse.h
deleted file mode 100644
index 9444ab8dca94..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_mpparse.h
+++ /dev/null
@@ -1,9 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H
2#define _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H
3
4
5extern int mps_oem_check(struct mpc_table *, char *, char *);
6
7extern int acpi_madt_oem_check(char *, char *);
8
9#endif /* _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_mpspec.h b/arch/x86/include/asm/mach-generic/mach_mpspec.h
deleted file mode 100644
index 3bc407226578..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_mpspec.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H
2#define _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H
3
4#define MAX_IRQ_SOURCES 256
5
6/* Summit or generic (i.e. installer) kernels need lots of bus entries. */
7/* Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets. */
8#define MAX_MP_BUSSES 260
9
10extern void numaq_mps_oem_check(struct mpc_table *, char *, char *);
11
12#endif /* _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H */
diff --git a/arch/x86/include/asm/mach-generic/mach_wakecpu.h b/arch/x86/include/asm/mach-generic/mach_wakecpu.h
deleted file mode 100644
index 1ab16b168c8a..000000000000
--- a/arch/x86/include/asm/mach-generic/mach_wakecpu.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifndef _ASM_X86_MACH_GENERIC_MACH_WAKECPU_H
2#define _ASM_X86_MACH_GENERIC_MACH_WAKECPU_H
3
4#define TRAMPOLINE_PHYS_LOW (genapic->trampoline_phys_low)
5#define TRAMPOLINE_PHYS_HIGH (genapic->trampoline_phys_high)
6#define wait_for_init_deassert (genapic->wait_for_init_deassert)
7#define smp_callin_clear_local_apic (genapic->smp_callin_clear_local_apic)
8#define store_NMI_vector (genapic->store_NMI_vector)
9#define restore_NMI_vector (genapic->restore_NMI_vector)
10#define inquire_remote_apic (genapic->inquire_remote_apic)
11
12#endif /* _ASM_X86_MACH_GENERIC_MACH_APIC_H */
diff --git a/arch/x86/include/asm/mach-rdc321x/gpio.h b/arch/x86/include/asm/mach-rdc321x/gpio.h
deleted file mode 100644
index c210ab5788b0..000000000000
--- a/arch/x86/include/asm/mach-rdc321x/gpio.h
+++ /dev/null
@@ -1,60 +0,0 @@
1#ifndef _ASM_X86_MACH_RDC321X_GPIO_H
2#define _ASM_X86_MACH_RDC321X_GPIO_H
3
4#include <linux/kernel.h>
5
6extern int rdc_gpio_get_value(unsigned gpio);
7extern void rdc_gpio_set_value(unsigned gpio, int value);
8extern int rdc_gpio_direction_input(unsigned gpio);
9extern int rdc_gpio_direction_output(unsigned gpio, int value);
10extern int rdc_gpio_request(unsigned gpio, const char *label);
11extern void rdc_gpio_free(unsigned gpio);
12extern void __init rdc321x_gpio_setup(void);
13
14/* Wrappers for the arch-neutral GPIO API */
15
16static inline int gpio_request(unsigned gpio, const char *label)
17{
18 return rdc_gpio_request(gpio, label);
19}
20
21static inline void gpio_free(unsigned gpio)
22{
23 might_sleep();
24 rdc_gpio_free(gpio);
25}
26
27static inline int gpio_direction_input(unsigned gpio)
28{
29 return rdc_gpio_direction_input(gpio);
30}
31
32static inline int gpio_direction_output(unsigned gpio, int value)
33{
34 return rdc_gpio_direction_output(gpio, value);
35}
36
37static inline int gpio_get_value(unsigned gpio)
38{
39 return rdc_gpio_get_value(gpio);
40}
41
42static inline void gpio_set_value(unsigned gpio, int value)
43{
44 rdc_gpio_set_value(gpio, value);
45}
46
47static inline int gpio_to_irq(unsigned gpio)
48{
49 return gpio;
50}
51
52static inline int irq_to_gpio(unsigned irq)
53{
54 return irq;
55}
56
57/* For cansleep */
58#include <asm-generic/gpio.h>
59
60#endif /* _ASM_X86_MACH_RDC321X_GPIO_H */
diff --git a/arch/x86/include/asm/mach-voyager/do_timer.h b/arch/x86/include/asm/mach-voyager/do_timer.h
deleted file mode 100644
index 9e5a459fd15b..000000000000
--- a/arch/x86/include/asm/mach-voyager/do_timer.h
+++ /dev/null
@@ -1,17 +0,0 @@
1/* defines for inline arch setup functions */
2#include <linux/clockchips.h>
3
4#include <asm/voyager.h>
5#include <asm/i8253.h>
6
7/**
8 * do_timer_interrupt_hook - hook into timer tick
9 *
10 * Call the pit clock event handler. see asm/i8253.h
11 **/
12static inline void do_timer_interrupt_hook(void)
13{
14 global_clock_event->event_handler(global_clock_event);
15 voyager_timer_interrupt();
16}
17
diff --git a/arch/x86/include/asm/mach-voyager/entry_arch.h b/arch/x86/include/asm/mach-voyager/entry_arch.h
deleted file mode 100644
index ae52624b5937..000000000000
--- a/arch/x86/include/asm/mach-voyager/entry_arch.h
+++ /dev/null
@@ -1,26 +0,0 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */
2
3/* Copyright (C) 2002
4 *
5 * Author: James.Bottomley@HansenPartnership.com
6 *
7 * linux/arch/i386/voyager/entry_arch.h
8 *
9 * This file builds the VIC and QIC CPI gates
10 */
11
12/* initialise the voyager interrupt gates
13 *
14 * This uses the macros in irq.h to set up assembly jump gates. The
15 * calls are then redirected to the same routine with smp_ prefixed */
16BUILD_INTERRUPT(vic_sys_interrupt, VIC_SYS_INT)
17BUILD_INTERRUPT(vic_cmn_interrupt, VIC_CMN_INT)
18BUILD_INTERRUPT(vic_cpi_interrupt, VIC_CPI_LEVEL0);
19
20/* do all the QIC interrupts */
21BUILD_INTERRUPT(qic_timer_interrupt, QIC_TIMER_CPI);
22BUILD_INTERRUPT(qic_invalidate_interrupt, QIC_INVALIDATE_CPI);
23BUILD_INTERRUPT(qic_reschedule_interrupt, QIC_RESCHEDULE_CPI);
24BUILD_INTERRUPT(qic_enable_irq_interrupt, QIC_ENABLE_IRQ_CPI);
25BUILD_INTERRUPT(qic_call_function_interrupt, QIC_CALL_FUNCTION_CPI);
26BUILD_INTERRUPT(qic_call_function_single_interrupt, QIC_CALL_FUNCTION_SINGLE_CPI);
diff --git a/arch/x86/include/asm/mach-voyager/setup_arch.h b/arch/x86/include/asm/mach-voyager/setup_arch.h
deleted file mode 100644
index 71729ca05cd7..000000000000
--- a/arch/x86/include/asm/mach-voyager/setup_arch.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#include <asm/voyager.h>
2#include <asm/setup.h>
3#define VOYAGER_BIOS_INFO ((struct voyager_bios_info *) \
4 (&boot_params.apm_bios_info))
5
6/* Hook to call BIOS initialisation function */
7
8/* for voyager, pass the voyager BIOS/SUS info area to the detection
9 * routines */
10
11#define ARCH_SETUP voyager_detect(VOYAGER_BIOS_INFO);
12
diff --git a/arch/x86/include/asm/mach-default/mach_timer.h b/arch/x86/include/asm/mach_timer.h
index 853728519ae9..853728519ae9 100644
--- a/arch/x86/include/asm/mach-default/mach_timer.h
+++ b/arch/x86/include/asm/mach_timer.h
diff --git a/arch/x86/include/asm/mach-default/mach_traps.h b/arch/x86/include/asm/mach_traps.h
index f7920601e472..f7920601e472 100644
--- a/arch/x86/include/asm/mach-default/mach_traps.h
+++ b/arch/x86/include/asm/mach_traps.h
diff --git a/arch/x86/include/asm/math_emu.h b/arch/x86/include/asm/math_emu.h
index 5a65b107ad58..031f6266f425 100644
--- a/arch/x86/include/asm/math_emu.h
+++ b/arch/x86/include/asm/math_emu.h
@@ -1,31 +1,18 @@
1#ifndef _ASM_X86_MATH_EMU_H 1#ifndef _ASM_X86_MATH_EMU_H
2#define _ASM_X86_MATH_EMU_H 2#define _ASM_X86_MATH_EMU_H
3 3
4#include <asm/ptrace.h>
5#include <asm/vm86.h>
6
4/* This structure matches the layout of the data saved to the stack 7/* This structure matches the layout of the data saved to the stack
5 following a device-not-present interrupt, part of it saved 8 following a device-not-present interrupt, part of it saved
6 automatically by the 80386/80486. 9 automatically by the 80386/80486.
7 */ 10 */
8struct info { 11struct math_emu_info {
9 long ___orig_eip; 12 long ___orig_eip;
10 long ___ebx; 13 union {
11 long ___ecx; 14 struct pt_regs *regs;
12 long ___edx; 15 struct kernel_vm86_regs *vm86;
13 long ___esi; 16 };
14 long ___edi;
15 long ___ebp;
16 long ___eax;
17 long ___ds;
18 long ___es;
19 long ___fs;
20 long ___orig_eax;
21 long ___eip;
22 long ___cs;
23 long ___eflags;
24 long ___esp;
25 long ___ss;
26 long ___vm86_es; /* This and the following only in vm86 mode */
27 long ___vm86_ds;
28 long ___vm86_fs;
29 long ___vm86_gs;
30}; 17};
31#endif /* _ASM_X86_MATH_EMU_H */ 18#endif /* _ASM_X86_MATH_EMU_H */
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h
index 1d6e17c2f23a..563933e06a35 100644
--- a/arch/x86/include/asm/mce.h
+++ b/arch/x86/include/asm/mce.h
@@ -3,14 +3,16 @@
3 3
4#ifdef __x86_64__ 4#ifdef __x86_64__
5 5
6#include <linux/types.h>
6#include <asm/ioctls.h> 7#include <asm/ioctls.h>
7#include <asm/types.h>
8 8
9/* 9/*
10 * Machine Check support for x86 10 * Machine Check support for x86
11 */ 11 */
12 12
13#define MCG_CTL_P (1UL<<8) /* MCG_CAP register available */ 13#define MCG_CTL_P (1UL<<8) /* MCG_CAP register available */
14#define MCG_EXT_P (1ULL<<9) /* Extended registers available */
15#define MCG_CMCI_P (1ULL<<10) /* CMCI supported */
14 16
15#define MCG_STATUS_RIPV (1UL<<0) /* restart ip valid */ 17#define MCG_STATUS_RIPV (1UL<<0) /* restart ip valid */
16#define MCG_STATUS_EIPV (1UL<<1) /* ip points to correct instruction */ 18#define MCG_STATUS_EIPV (1UL<<1) /* ip points to correct instruction */
@@ -90,14 +92,29 @@ extern int mce_disabled;
90 92
91#include <asm/atomic.h> 93#include <asm/atomic.h>
92 94
95void mce_setup(struct mce *m);
93void mce_log(struct mce *m); 96void mce_log(struct mce *m);
94DECLARE_PER_CPU(struct sys_device, device_mce); 97DECLARE_PER_CPU(struct sys_device, device_mce);
95extern void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu); 98extern void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu);
96 99
100/*
101 * To support more than 128 would need to escape the predefined
102 * Linux defined extended banks first.
103 */
104#define MAX_NR_BANKS (MCE_EXTENDED_BANK - 1)
105
97#ifdef CONFIG_X86_MCE_INTEL 106#ifdef CONFIG_X86_MCE_INTEL
98void mce_intel_feature_init(struct cpuinfo_x86 *c); 107void mce_intel_feature_init(struct cpuinfo_x86 *c);
108void cmci_clear(void);
109void cmci_reenable(void);
110void cmci_rediscover(int dying);
111void cmci_recheck(void);
99#else 112#else
100static inline void mce_intel_feature_init(struct cpuinfo_x86 *c) { } 113static inline void mce_intel_feature_init(struct cpuinfo_x86 *c) { }
114static inline void cmci_clear(void) {}
115static inline void cmci_reenable(void) {}
116static inline void cmci_rediscover(int dying) {}
117static inline void cmci_recheck(void) {}
101#endif 118#endif
102 119
103#ifdef CONFIG_X86_MCE_AMD 120#ifdef CONFIG_X86_MCE_AMD
@@ -106,25 +123,34 @@ void mce_amd_feature_init(struct cpuinfo_x86 *c);
106static inline void mce_amd_feature_init(struct cpuinfo_x86 *c) { } 123static inline void mce_amd_feature_init(struct cpuinfo_x86 *c) { }
107#endif 124#endif
108 125
109void mce_log_therm_throt_event(unsigned int cpu, __u64 status); 126extern int mce_available(struct cpuinfo_x86 *c);
127
128void mce_log_therm_throt_event(__u64 status);
110 129
111extern atomic_t mce_entry; 130extern atomic_t mce_entry;
112 131
113extern void do_machine_check(struct pt_regs *, long); 132extern void do_machine_check(struct pt_regs *, long);
114extern int mce_notify_user(void);
115 133
116#endif /* !CONFIG_X86_32 */ 134typedef DECLARE_BITMAP(mce_banks_t, MAX_NR_BANKS);
135DECLARE_PER_CPU(mce_banks_t, mce_poll_banks);
117 136
137enum mcp_flags {
138 MCP_TIMESTAMP = (1 << 0), /* log time stamp */
139 MCP_UC = (1 << 1), /* log uncorrected errors */
140};
141extern void machine_check_poll(enum mcp_flags flags, mce_banks_t *b);
142
143extern int mce_notify_user(void);
118 144
145#endif /* !CONFIG_X86_32 */
119 146
120#ifdef CONFIG_X86_MCE 147#ifdef CONFIG_X86_MCE
121extern void mcheck_init(struct cpuinfo_x86 *c); 148extern void mcheck_init(struct cpuinfo_x86 *c);
122#else 149#else
123#define mcheck_init(c) do { } while (0) 150#define mcheck_init(c) do { } while (0)
124#endif 151#endif
125extern void stop_mce(void);
126extern void restart_mce(void);
127 152
128#endif /* __KERNEL__ */ 153extern void (*mce_threshold_vector)(void);
129 154
155#endif /* __KERNEL__ */
130#endif /* _ASM_X86_MCE_H */ 156#endif /* _ASM_X86_MCE_H */
diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h
index 8aeeb3fd73db..f923203dc39a 100644
--- a/arch/x86/include/asm/mmu_context.h
+++ b/arch/x86/include/asm/mmu_context.h
@@ -21,11 +21,54 @@ static inline void paravirt_activate_mm(struct mm_struct *prev,
21int init_new_context(struct task_struct *tsk, struct mm_struct *mm); 21int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
22void destroy_context(struct mm_struct *mm); 22void destroy_context(struct mm_struct *mm);
23 23
24#ifdef CONFIG_X86_32 24
25# include "mmu_context_32.h" 25static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
26#else 26{
27# include "mmu_context_64.h" 27#ifdef CONFIG_SMP
28 if (percpu_read(cpu_tlbstate.state) == TLBSTATE_OK)
29 percpu_write(cpu_tlbstate.state, TLBSTATE_LAZY);
30#endif
31}
32
33static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
34 struct task_struct *tsk)
35{
36 unsigned cpu = smp_processor_id();
37
38 if (likely(prev != next)) {
39 /* stop flush ipis for the previous mm */
40 cpu_clear(cpu, prev->cpu_vm_mask);
41#ifdef CONFIG_SMP
42 percpu_write(cpu_tlbstate.state, TLBSTATE_OK);
43 percpu_write(cpu_tlbstate.active_mm, next);
28#endif 44#endif
45 cpu_set(cpu, next->cpu_vm_mask);
46
47 /* Re-load page tables */
48 load_cr3(next->pgd);
49
50 /*
51 * load the LDT, if the LDT is different:
52 */
53 if (unlikely(prev->context.ldt != next->context.ldt))
54 load_LDT_nolock(&next->context);
55 }
56#ifdef CONFIG_SMP
57 else {
58 percpu_write(cpu_tlbstate.state, TLBSTATE_OK);
59 BUG_ON(percpu_read(cpu_tlbstate.active_mm) != next);
60
61 if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) {
62 /* We were in lazy tlb mode and leave_mm disabled
63 * tlb flush IPI delivery. We must reload CR3
64 * to make sure to use no freed page tables.
65 */
66 load_cr3(next->pgd);
67 load_LDT_nolock(&next->context);
68 }
69 }
70#endif
71}
29 72
30#define activate_mm(prev, next) \ 73#define activate_mm(prev, next) \
31do { \ 74do { \
@@ -33,5 +76,17 @@ do { \
33 switch_mm((prev), (next), NULL); \ 76 switch_mm((prev), (next), NULL); \
34} while (0); 77} while (0);
35 78
79#ifdef CONFIG_X86_32
80#define deactivate_mm(tsk, mm) \
81do { \
82 lazy_load_gs(0); \
83} while (0)
84#else
85#define deactivate_mm(tsk, mm) \
86do { \
87 load_gs_index(0); \
88 loadsegment(fs, 0); \
89} while (0)
90#endif
36 91
37#endif /* _ASM_X86_MMU_CONTEXT_H */ 92#endif /* _ASM_X86_MMU_CONTEXT_H */
diff --git a/arch/x86/include/asm/mmu_context_32.h b/arch/x86/include/asm/mmu_context_32.h
deleted file mode 100644
index 7e98ce1d2c0e..000000000000
--- a/arch/x86/include/asm/mmu_context_32.h
+++ /dev/null
@@ -1,55 +0,0 @@
1#ifndef _ASM_X86_MMU_CONTEXT_32_H
2#define _ASM_X86_MMU_CONTEXT_32_H
3
4static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
5{
6#ifdef CONFIG_SMP
7 if (x86_read_percpu(cpu_tlbstate.state) == TLBSTATE_OK)
8 x86_write_percpu(cpu_tlbstate.state, TLBSTATE_LAZY);
9#endif
10}
11
12static inline void switch_mm(struct mm_struct *prev,
13 struct mm_struct *next,
14 struct task_struct *tsk)
15{
16 int cpu = smp_processor_id();
17
18 if (likely(prev != next)) {
19 /* stop flush ipis for the previous mm */
20 cpu_clear(cpu, prev->cpu_vm_mask);
21#ifdef CONFIG_SMP
22 x86_write_percpu(cpu_tlbstate.state, TLBSTATE_OK);
23 x86_write_percpu(cpu_tlbstate.active_mm, next);
24#endif
25 cpu_set(cpu, next->cpu_vm_mask);
26
27 /* Re-load page tables */
28 load_cr3(next->pgd);
29
30 /*
31 * load the LDT, if the LDT is different:
32 */
33 if (unlikely(prev->context.ldt != next->context.ldt))
34 load_LDT_nolock(&next->context);
35 }
36#ifdef CONFIG_SMP
37 else {
38 x86_write_percpu(cpu_tlbstate.state, TLBSTATE_OK);
39 BUG_ON(x86_read_percpu(cpu_tlbstate.active_mm) != next);
40
41 if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) {
42 /* We were in lazy tlb mode and leave_mm disabled
43 * tlb flush IPI delivery. We must reload %cr3.
44 */
45 load_cr3(next->pgd);
46 load_LDT_nolock(&next->context);
47 }
48 }
49#endif
50}
51
52#define deactivate_mm(tsk, mm) \
53 asm("movl %0,%%gs": :"r" (0));
54
55#endif /* _ASM_X86_MMU_CONTEXT_32_H */
diff --git a/arch/x86/include/asm/mmu_context_64.h b/arch/x86/include/asm/mmu_context_64.h
deleted file mode 100644
index 677d36e9540a..000000000000
--- a/arch/x86/include/asm/mmu_context_64.h
+++ /dev/null
@@ -1,54 +0,0 @@
1#ifndef _ASM_X86_MMU_CONTEXT_64_H
2#define _ASM_X86_MMU_CONTEXT_64_H
3
4#include <asm/pda.h>
5
6static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
7{
8#ifdef CONFIG_SMP
9 if (read_pda(mmu_state) == TLBSTATE_OK)
10 write_pda(mmu_state, TLBSTATE_LAZY);
11#endif
12}
13
14static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
15 struct task_struct *tsk)
16{
17 unsigned cpu = smp_processor_id();
18 if (likely(prev != next)) {
19 /* stop flush ipis for the previous mm */
20 cpu_clear(cpu, prev->cpu_vm_mask);
21#ifdef CONFIG_SMP
22 write_pda(mmu_state, TLBSTATE_OK);
23 write_pda(active_mm, next);
24#endif
25 cpu_set(cpu, next->cpu_vm_mask);
26 load_cr3(next->pgd);
27
28 if (unlikely(next->context.ldt != prev->context.ldt))
29 load_LDT_nolock(&next->context);
30 }
31#ifdef CONFIG_SMP
32 else {
33 write_pda(mmu_state, TLBSTATE_OK);
34 if (read_pda(active_mm) != next)
35 BUG();
36 if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) {
37 /* We were in lazy tlb mode and leave_mm disabled
38 * tlb flush IPI delivery. We must reload CR3
39 * to make sure to use no freed page tables.
40 */
41 load_cr3(next->pgd);
42 load_LDT_nolock(&next->context);
43 }
44 }
45#endif
46}
47
48#define deactivate_mm(tsk, mm) \
49do { \
50 load_gs_index(0); \
51 asm volatile("movl %0,%%fs"::"r"(0)); \
52} while (0)
53
54#endif /* _ASM_X86_MMU_CONTEXT_64_H */
diff --git a/arch/x86/include/asm/mmzone_32.h b/arch/x86/include/asm/mmzone_32.h
index 07f1af494ca5..ede6998bd92c 100644
--- a/arch/x86/include/asm/mmzone_32.h
+++ b/arch/x86/include/asm/mmzone_32.h
@@ -32,8 +32,6 @@ static inline void get_memcfg_numa(void)
32 get_memcfg_numa_flat(); 32 get_memcfg_numa_flat();
33} 33}
34 34
35extern int early_pfn_to_nid(unsigned long pfn);
36
37extern void resume_map_numa_kva(pgd_t *pgd); 35extern void resume_map_numa_kva(pgd_t *pgd);
38 36
39#else /* !CONFIG_NUMA */ 37#else /* !CONFIG_NUMA */
@@ -93,46 +91,9 @@ static inline int pfn_valid(int pfn)
93#endif /* CONFIG_DISCONTIGMEM */ 91#endif /* CONFIG_DISCONTIGMEM */
94 92
95#ifdef CONFIG_NEED_MULTIPLE_NODES 93#ifdef CONFIG_NEED_MULTIPLE_NODES
96 94/* always use node 0 for bootmem on this numa platform */
97/* 95#define bootmem_arch_preferred_node(__bdata, size, align, goal, limit) \
98 * Following are macros that are specific to this numa platform. 96 (NODE_DATA(0)->bdata)
99 */
100#define reserve_bootmem(addr, size, flags) \
101 reserve_bootmem_node(NODE_DATA(0), (addr), (size), (flags))
102#define alloc_bootmem(x) \
103 __alloc_bootmem_node(NODE_DATA(0), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
104#define alloc_bootmem_nopanic(x) \
105 __alloc_bootmem_node_nopanic(NODE_DATA(0), (x), SMP_CACHE_BYTES, \
106 __pa(MAX_DMA_ADDRESS))
107#define alloc_bootmem_low(x) \
108 __alloc_bootmem_node(NODE_DATA(0), (x), SMP_CACHE_BYTES, 0)
109#define alloc_bootmem_pages(x) \
110 __alloc_bootmem_node(NODE_DATA(0), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
111#define alloc_bootmem_pages_nopanic(x) \
112 __alloc_bootmem_node_nopanic(NODE_DATA(0), (x), PAGE_SIZE, \
113 __pa(MAX_DMA_ADDRESS))
114#define alloc_bootmem_low_pages(x) \
115 __alloc_bootmem_node(NODE_DATA(0), (x), PAGE_SIZE, 0)
116#define alloc_bootmem_node(pgdat, x) \
117({ \
118 struct pglist_data __maybe_unused \
119 *__alloc_bootmem_node__pgdat = (pgdat); \
120 __alloc_bootmem_node(NODE_DATA(0), (x), SMP_CACHE_BYTES, \
121 __pa(MAX_DMA_ADDRESS)); \
122})
123#define alloc_bootmem_pages_node(pgdat, x) \
124({ \
125 struct pglist_data __maybe_unused \
126 *__alloc_bootmem_node__pgdat = (pgdat); \
127 __alloc_bootmem_node(NODE_DATA(0), (x), PAGE_SIZE, \
128 __pa(MAX_DMA_ADDRESS)); \
129})
130#define alloc_bootmem_low_pages_node(pgdat, x) \
131({ \
132 struct pglist_data __maybe_unused \
133 *__alloc_bootmem_node__pgdat = (pgdat); \
134 __alloc_bootmem_node(NODE_DATA(0), (x), PAGE_SIZE, 0); \
135})
136#endif /* CONFIG_NEED_MULTIPLE_NODES */ 97#endif /* CONFIG_NEED_MULTIPLE_NODES */
137 98
138#endif /* _ASM_X86_MMZONE_32_H */ 99#endif /* _ASM_X86_MMZONE_32_H */
diff --git a/arch/x86/include/asm/mmzone_64.h b/arch/x86/include/asm/mmzone_64.h
index a5b3817d4b9e..a29f48c2a322 100644
--- a/arch/x86/include/asm/mmzone_64.h
+++ b/arch/x86/include/asm/mmzone_64.h
@@ -40,8 +40,6 @@ static inline __attribute__((pure)) int phys_to_nid(unsigned long addr)
40#define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \ 40#define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \
41 NODE_DATA(nid)->node_spanned_pages) 41 NODE_DATA(nid)->node_spanned_pages)
42 42
43extern int early_pfn_to_nid(unsigned long pfn);
44
45#ifdef CONFIG_NUMA_EMU 43#ifdef CONFIG_NUMA_EMU
46#define FAKE_NODE_MIN_SIZE (64 * 1024 * 1024) 44#define FAKE_NODE_MIN_SIZE (64 * 1024 * 1024)
47#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) 45#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h
index 62d14ce3cd00..642fc7fc8cdc 100644
--- a/arch/x86/include/asm/mpspec.h
+++ b/arch/x86/include/asm/mpspec.h
@@ -9,7 +9,18 @@ extern int apic_version[MAX_APICS];
9extern int pic_mode; 9extern int pic_mode;
10 10
11#ifdef CONFIG_X86_32 11#ifdef CONFIG_X86_32
12#include <mach_mpspec.h> 12
13/*
14 * Summit or generic (i.e. installer) kernels need lots of bus entries.
15 * Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets.
16 */
17#if CONFIG_BASE_SMALL == 0
18# define MAX_MP_BUSSES 260
19#else
20# define MAX_MP_BUSSES 32
21#endif
22
23#define MAX_IRQ_SOURCES 256
13 24
14extern unsigned int def_to_bigsmp; 25extern unsigned int def_to_bigsmp;
15extern u8 apicid_2_node[]; 26extern u8 apicid_2_node[];
@@ -20,15 +31,15 @@ extern int mp_bus_id_to_local[MAX_MP_BUSSES];
20extern int quad_local_to_mp_bus_id [NR_CPUS/4][4]; 31extern int quad_local_to_mp_bus_id [NR_CPUS/4][4];
21#endif 32#endif
22 33
23#define MAX_APICID 256 34#define MAX_APICID 256
24 35
25#else 36#else /* CONFIG_X86_64: */
26 37
27#define MAX_MP_BUSSES 256 38#define MAX_MP_BUSSES 256
28/* Each PCI slot may be a combo card with its own bus. 4 IRQ pins per slot. */ 39/* Each PCI slot may be a combo card with its own bus. 4 IRQ pins per slot. */
29#define MAX_IRQ_SOURCES (MAX_MP_BUSSES * 4) 40#define MAX_IRQ_SOURCES (MAX_MP_BUSSES * 4)
30 41
31#endif 42#endif /* CONFIG_X86_64 */
32 43
33extern void early_find_smp_config(void); 44extern void early_find_smp_config(void);
34extern void early_get_smp_config(void); 45extern void early_get_smp_config(void);
@@ -45,11 +56,13 @@ extern int smp_found_config;
45extern int mpc_default_type; 56extern int mpc_default_type;
46extern unsigned long mp_lapic_addr; 57extern unsigned long mp_lapic_addr;
47 58
48extern void find_smp_config(void);
49extern void get_smp_config(void); 59extern void get_smp_config(void);
60
50#ifdef CONFIG_X86_MPPARSE 61#ifdef CONFIG_X86_MPPARSE
62extern void find_smp_config(void);
51extern void early_reserve_e820_mpc_new(void); 63extern void early_reserve_e820_mpc_new(void);
52#else 64#else
65static inline void find_smp_config(void) { }
53static inline void early_reserve_e820_mpc_new(void) { } 66static inline void early_reserve_e820_mpc_new(void) { }
54#endif 67#endif
55 68
@@ -60,9 +73,12 @@ extern void mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger,
60 u32 gsi); 73 u32 gsi);
61extern void mp_config_acpi_legacy_irqs(void); 74extern void mp_config_acpi_legacy_irqs(void);
62extern int mp_register_gsi(u32 gsi, int edge_level, int active_high_low); 75extern int mp_register_gsi(u32 gsi, int edge_level, int active_high_low);
76extern int acpi_probe_gsi(void);
63#ifdef CONFIG_X86_IO_APIC 77#ifdef CONFIG_X86_IO_APIC
64extern int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin, 78extern int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
65 u32 gsi, int triggering, int polarity); 79 u32 gsi, int triggering, int polarity);
80extern int mp_find_ioapic(int gsi);
81extern int mp_find_ioapic_pin(int ioapic, int gsi);
66#else 82#else
67static inline int 83static inline int
68mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin, 84mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
@@ -71,6 +87,11 @@ mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
71 return 0; 87 return 0;
72} 88}
73#endif 89#endif
90#else /* !CONFIG_ACPI: */
91static inline int acpi_probe_gsi(void)
92{
93 return 0;
94}
74#endif /* CONFIG_ACPI */ 95#endif /* CONFIG_ACPI */
75 96
76#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS) 97#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
@@ -142,4 +163,8 @@ static inline void physid_set_mask_of_physid(int physid, physid_mask_t *map)
142 163
143extern physid_mask_t phys_cpu_present_map; 164extern physid_mask_t phys_cpu_present_map;
144 165
166extern int generic_mps_oem_check(struct mpc_table *, char *, char *);
167
168extern int default_acpi_madt_oem_check(char *, char *);
169
145#endif /* _ASM_X86_MPSPEC_H */ 170#endif /* _ASM_X86_MPSPEC_H */
diff --git a/arch/x86/include/asm/mpspec_def.h b/arch/x86/include/asm/mpspec_def.h
index 59568bc4767f..4a7f96d7c188 100644
--- a/arch/x86/include/asm/mpspec_def.h
+++ b/arch/x86/include/asm/mpspec_def.h
@@ -24,17 +24,18 @@
24# endif 24# endif
25#endif 25#endif
26 26
27struct intel_mp_floating { 27/* Intel MP Floating Pointer Structure */
28 char mpf_signature[4]; /* "_MP_" */ 28struct mpf_intel {
29 unsigned int mpf_physptr; /* Configuration table address */ 29 char signature[4]; /* "_MP_" */
30 unsigned char mpf_length; /* Our length (paragraphs) */ 30 unsigned int physptr; /* Configuration table address */
31 unsigned char mpf_specification;/* Specification version */ 31 unsigned char length; /* Our length (paragraphs) */
32 unsigned char mpf_checksum; /* Checksum (makes sum 0) */ 32 unsigned char specification; /* Specification version */
33 unsigned char mpf_feature1; /* Standard or configuration ? */ 33 unsigned char checksum; /* Checksum (makes sum 0) */
34 unsigned char mpf_feature2; /* Bit7 set for IMCR|PIC */ 34 unsigned char feature1; /* Standard or configuration ? */
35 unsigned char mpf_feature3; /* Unused (0) */ 35 unsigned char feature2; /* Bit7 set for IMCR|PIC */
36 unsigned char mpf_feature4; /* Unused (0) */ 36 unsigned char feature3; /* Unused (0) */
37 unsigned char mpf_feature5; /* Unused (0) */ 37 unsigned char feature4; /* Unused (0) */
38 unsigned char feature5; /* Unused (0) */
38}; 39};
39 40
40#define MPC_SIGNATURE "PCMP" 41#define MPC_SIGNATURE "PCMP"
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index cb58643947b9..2dbd2314139e 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -77,6 +77,11 @@
77#define MSR_IA32_MC0_ADDR 0x00000402 77#define MSR_IA32_MC0_ADDR 0x00000402
78#define MSR_IA32_MC0_MISC 0x00000403 78#define MSR_IA32_MC0_MISC 0x00000403
79 79
80/* These are consecutive and not in the normal 4er MCE bank block */
81#define MSR_IA32_MC0_CTL2 0x00000280
82#define CMCI_EN (1ULL << 30)
83#define CMCI_THRESHOLD_MASK 0xffffULL
84
80#define MSR_P6_PERFCTR0 0x000000c1 85#define MSR_P6_PERFCTR0 0x000000c1
81#define MSR_P6_PERFCTR1 0x000000c2 86#define MSR_P6_PERFCTR1 0x000000c2
82#define MSR_P6_EVNTSEL0 0x00000186 87#define MSR_P6_EVNTSEL0 0x00000186
@@ -202,6 +207,35 @@
202#define MSR_IA32_THERM_STATUS 0x0000019c 207#define MSR_IA32_THERM_STATUS 0x0000019c
203#define MSR_IA32_MISC_ENABLE 0x000001a0 208#define MSR_IA32_MISC_ENABLE 0x000001a0
204 209
210/* MISC_ENABLE bits: architectural */
211#define MSR_IA32_MISC_ENABLE_FAST_STRING (1ULL << 0)
212#define MSR_IA32_MISC_ENABLE_TCC (1ULL << 1)
213#define MSR_IA32_MISC_ENABLE_EMON (1ULL << 7)
214#define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL (1ULL << 11)
215#define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL (1ULL << 12)
216#define MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP (1ULL << 16)
217#define MSR_IA32_MISC_ENABLE_MWAIT (1ULL << 18)
218#define MSR_IA32_MISC_ENABLE_LIMIT_CPUID (1ULL << 22)
219#define MSR_IA32_MISC_ENABLE_XTPR_DISABLE (1ULL << 23)
220#define MSR_IA32_MISC_ENABLE_XD_DISABLE (1ULL << 34)
221
222/* MISC_ENABLE bits: model-specific, meaning may vary from core to core */
223#define MSR_IA32_MISC_ENABLE_X87_COMPAT (1ULL << 2)
224#define MSR_IA32_MISC_ENABLE_TM1 (1ULL << 3)
225#define MSR_IA32_MISC_ENABLE_SPLIT_LOCK_DISABLE (1ULL << 4)
226#define MSR_IA32_MISC_ENABLE_L3CACHE_DISABLE (1ULL << 6)
227#define MSR_IA32_MISC_ENABLE_SUPPRESS_LOCK (1ULL << 8)
228#define MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE (1ULL << 9)
229#define MSR_IA32_MISC_ENABLE_FERR (1ULL << 10)
230#define MSR_IA32_MISC_ENABLE_FERR_MULTIPLEX (1ULL << 10)
231#define MSR_IA32_MISC_ENABLE_TM2 (1ULL << 13)
232#define MSR_IA32_MISC_ENABLE_ADJ_PREF_DISABLE (1ULL << 19)
233#define MSR_IA32_MISC_ENABLE_SPEEDSTEP_LOCK (1ULL << 20)
234#define MSR_IA32_MISC_ENABLE_L1D_CONTEXT (1ULL << 24)
235#define MSR_IA32_MISC_ENABLE_DCU_PREF_DISABLE (1ULL << 37)
236#define MSR_IA32_MISC_ENABLE_TURBO_DISABLE (1ULL << 38)
237#define MSR_IA32_MISC_ENABLE_IP_PREF_DISABLE (1ULL << 39)
238
205/* Intel Model 6 */ 239/* Intel Model 6 */
206#define MSR_P6_EVNTSEL0 0x00000186 240#define MSR_P6_EVNTSEL0 0x00000186
207#define MSR_P6_EVNTSEL1 0x00000187 241#define MSR_P6_EVNTSEL1 0x00000187
diff --git a/arch/x86/include/asm/mtrr.h b/arch/x86/include/asm/mtrr.h
index 14080d22edb3..a51ada8467de 100644
--- a/arch/x86/include/asm/mtrr.h
+++ b/arch/x86/include/asm/mtrr.h
@@ -23,6 +23,7 @@
23#ifndef _ASM_X86_MTRR_H 23#ifndef _ASM_X86_MTRR_H
24#define _ASM_X86_MTRR_H 24#define _ASM_X86_MTRR_H
25 25
26#include <linux/types.h>
26#include <linux/ioctl.h> 27#include <linux/ioctl.h>
27#include <linux/errno.h> 28#include <linux/errno.h>
28 29
diff --git a/arch/x86/include/asm/numa_32.h b/arch/x86/include/asm/numa_32.h
index e9f5db796244..a37229011b56 100644
--- a/arch/x86/include/asm/numa_32.h
+++ b/arch/x86/include/asm/numa_32.h
@@ -4,8 +4,12 @@
4extern int pxm_to_nid(int pxm); 4extern int pxm_to_nid(int pxm);
5extern void numa_remove_cpu(int cpu); 5extern void numa_remove_cpu(int cpu);
6 6
7#ifdef CONFIG_NUMA 7#ifdef CONFIG_HIGHMEM
8extern void set_highmem_pages_init(void); 8extern void set_highmem_pages_init(void);
9#else
10static inline void set_highmem_pages_init(void)
11{
12}
9#endif 13#endif
10 14
11#endif /* _ASM_X86_NUMA_32_H */ 15#endif /* _ASM_X86_NUMA_32_H */
diff --git a/arch/x86/include/asm/numaq.h b/arch/x86/include/asm/numaq.h
index 1e8bd30b4c16..9f0a5f5d29ec 100644
--- a/arch/x86/include/asm/numaq.h
+++ b/arch/x86/include/asm/numaq.h
@@ -31,6 +31,8 @@
31extern int found_numaq; 31extern int found_numaq;
32extern int get_memcfg_numaq(void); 32extern int get_memcfg_numaq(void);
33 33
34extern void *xquad_portio;
35
34/* 36/*
35 * SYS_CFG_DATA_PRIV_ADDR, struct eachquadmem, and struct sys_cfg_data are the 37 * SYS_CFG_DATA_PRIV_ADDR, struct eachquadmem, and struct sys_cfg_data are the
36 */ 38 */
diff --git a/arch/x86/include/asm/numaq/apic.h b/arch/x86/include/asm/numaq/apic.h
deleted file mode 100644
index bf37bc49bd8e..000000000000
--- a/arch/x86/include/asm/numaq/apic.h
+++ /dev/null
@@ -1,142 +0,0 @@
1#ifndef __ASM_NUMAQ_APIC_H
2#define __ASM_NUMAQ_APIC_H
3
4#include <asm/io.h>
5#include <linux/mmzone.h>
6#include <linux/nodemask.h>
7
8#define APIC_DFR_VALUE (APIC_DFR_CLUSTER)
9
10static inline const cpumask_t *target_cpus(void)
11{
12 return &CPU_MASK_ALL;
13}
14
15#define NO_BALANCE_IRQ (1)
16#define esr_disable (1)
17
18#define INT_DELIVERY_MODE dest_LowestPrio
19#define INT_DEST_MODE 0 /* physical delivery on LOCAL quad */
20
21static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
22{
23 return physid_isset(apicid, bitmap);
24}
25static inline unsigned long check_apicid_present(int bit)
26{
27 return physid_isset(bit, phys_cpu_present_map);
28}
29#define apicid_cluster(apicid) (apicid & 0xF0)
30
31static inline int apic_id_registered(void)
32{
33 return 1;
34}
35
36static inline void init_apic_ldr(void)
37{
38 /* Already done in NUMA-Q firmware */
39}
40
41static inline void setup_apic_routing(void)
42{
43 printk("Enabling APIC mode: %s. Using %d I/O APICs\n",
44 "NUMA-Q", nr_ioapics);
45}
46
47/*
48 * Skip adding the timer int on secondary nodes, which causes
49 * a small but painful rift in the time-space continuum.
50 */
51static inline int multi_timer_check(int apic, int irq)
52{
53 return apic != 0 && irq == 0;
54}
55
56static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
57{
58 /* We don't have a good way to do this yet - hack */
59 return physids_promote(0xFUL);
60}
61
62/* Mapping from cpu number to logical apicid */
63extern u8 cpu_2_logical_apicid[];
64static inline int cpu_to_logical_apicid(int cpu)
65{
66 if (cpu >= nr_cpu_ids)
67 return BAD_APICID;
68 return (int)cpu_2_logical_apicid[cpu];
69}
70
71/*
72 * Supporting over 60 cpus on NUMA-Q requires a locality-dependent
73 * cpu to APIC ID relation to properly interact with the intelligent
74 * mode of the cluster controller.
75 */
76static inline int cpu_present_to_apicid(int mps_cpu)
77{
78 if (mps_cpu < 60)
79 return ((mps_cpu >> 2) << 4) | (1 << (mps_cpu & 0x3));
80 else
81 return BAD_APICID;
82}
83
84static inline int apicid_to_node(int logical_apicid)
85{
86 return logical_apicid >> 4;
87}
88
89static inline physid_mask_t apicid_to_cpu_present(int logical_apicid)
90{
91 int node = apicid_to_node(logical_apicid);
92 int cpu = __ffs(logical_apicid & 0xf);
93
94 return physid_mask_of_physid(cpu + 4*node);
95}
96
97extern void *xquad_portio;
98
99static inline void setup_portio_remap(void)
100{
101 int num_quads = num_online_nodes();
102
103 if (num_quads <= 1)
104 return;
105
106 printk("Remapping cross-quad port I/O for %d quads\n", num_quads);
107 xquad_portio = ioremap(XQUAD_PORTIO_BASE, num_quads*XQUAD_PORTIO_QUAD);
108 printk("xquad_portio vaddr 0x%08lx, len %08lx\n",
109 (u_long) xquad_portio, (u_long) num_quads*XQUAD_PORTIO_QUAD);
110}
111
112static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
113{
114 return (1);
115}
116
117static inline void enable_apic_mode(void)
118{
119}
120
121/*
122 * We use physical apicids here, not logical, so just return the default
123 * physical broadcast to stop people from breaking us
124 */
125static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
126{
127 return (int) 0xF;
128}
129
130static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *cpumask,
131 const struct cpumask *andmask)
132{
133 return (int) 0xF;
134}
135
136/* No NUMA-Q box has a HT CPU, but it can't hurt to use the default code. */
137static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
138{
139 return cpuid_apic >> index_msb;
140}
141
142#endif /* __ASM_NUMAQ_APIC_H */
diff --git a/arch/x86/include/asm/numaq/apicdef.h b/arch/x86/include/asm/numaq/apicdef.h
deleted file mode 100644
index e012a46cc22a..000000000000
--- a/arch/x86/include/asm/numaq/apicdef.h
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifndef __ASM_NUMAQ_APICDEF_H
2#define __ASM_NUMAQ_APICDEF_H
3
4
5#define APIC_ID_MASK (0xF<<24)
6
7static inline unsigned get_apic_id(unsigned long x)
8{
9 return (((x)>>24)&0x0F);
10}
11
12#define GET_APIC_ID(x) get_apic_id(x)
13
14#endif
diff --git a/arch/x86/include/asm/numaq/ipi.h b/arch/x86/include/asm/numaq/ipi.h
deleted file mode 100644
index a8374c652778..000000000000
--- a/arch/x86/include/asm/numaq/ipi.h
+++ /dev/null
@@ -1,22 +0,0 @@
1#ifndef __ASM_NUMAQ_IPI_H
2#define __ASM_NUMAQ_IPI_H
3
4void send_IPI_mask_sequence(const struct cpumask *mask, int vector);
5void send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
6
7static inline void send_IPI_mask(const struct cpumask *mask, int vector)
8{
9 send_IPI_mask_sequence(mask, vector);
10}
11
12static inline void send_IPI_allbutself(int vector)
13{
14 send_IPI_mask_allbutself(cpu_online_mask, vector);
15}
16
17static inline void send_IPI_all(int vector)
18{
19 send_IPI_mask(cpu_online_mask, vector);
20}
21
22#endif /* __ASM_NUMAQ_IPI_H */
diff --git a/arch/x86/include/asm/numaq/mpparse.h b/arch/x86/include/asm/numaq/mpparse.h
deleted file mode 100644
index a2eeefcd1cc7..000000000000
--- a/arch/x86/include/asm/numaq/mpparse.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __ASM_NUMAQ_MPPARSE_H
2#define __ASM_NUMAQ_MPPARSE_H
3
4extern void numaq_mps_oem_check(struct mpc_table *, char *, char *);
5
6#endif /* __ASM_NUMAQ_MPPARSE_H */
diff --git a/arch/x86/include/asm/numaq/wakecpu.h b/arch/x86/include/asm/numaq/wakecpu.h
deleted file mode 100644
index 6f499df8eddb..000000000000
--- a/arch/x86/include/asm/numaq/wakecpu.h
+++ /dev/null
@@ -1,45 +0,0 @@
1#ifndef __ASM_NUMAQ_WAKECPU_H
2#define __ASM_NUMAQ_WAKECPU_H
3
4/* This file copes with machines that wakeup secondary CPUs by NMIs */
5
6#define TRAMPOLINE_PHYS_LOW (0x8)
7#define TRAMPOLINE_PHYS_HIGH (0xa)
8
9/* We don't do anything here because we use NMI's to boot instead */
10static inline void wait_for_init_deassert(atomic_t *deassert)
11{
12}
13
14/*
15 * Because we use NMIs rather than the INIT-STARTUP sequence to
16 * bootstrap the CPUs, the APIC may be in a weird state. Kick it.
17 */
18static inline void smp_callin_clear_local_apic(void)
19{
20 clear_local_APIC();
21}
22
23static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
24{
25 printk("Storing NMI vector\n");
26 *high =
27 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH));
28 *low =
29 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW));
30}
31
32static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
33{
34 printk("Restoring NMI vector\n");
35 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) =
36 *high;
37 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) =
38 *low;
39}
40
41static inline void inquire_remote_apic(int apicid)
42{
43}
44
45#endif /* __ASM_NUMAQ_WAKECPU_H */
diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h
index e9873a2e8695..89ed9d70b0aa 100644
--- a/arch/x86/include/asm/page.h
+++ b/arch/x86/include/asm/page.h
@@ -1,42 +1,11 @@
1#ifndef _ASM_X86_PAGE_H 1#ifndef _ASM_X86_PAGE_H
2#define _ASM_X86_PAGE_H 2#define _ASM_X86_PAGE_H
3 3
4#include <linux/const.h> 4#include <linux/types.h>
5
6/* PAGE_SHIFT determines the page size */
7#define PAGE_SHIFT 12
8#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
9#define PAGE_MASK (~(PAGE_SIZE-1))
10 5
11#ifdef __KERNEL__ 6#ifdef __KERNEL__
12 7
13#define __PHYSICAL_MASK ((phys_addr_t)(1ULL << __PHYSICAL_MASK_SHIFT) - 1) 8#include <asm/page_types.h>
14#define __VIRTUAL_MASK ((1UL << __VIRTUAL_MASK_SHIFT) - 1)
15
16/* Cast PAGE_MASK to a signed type so that it is sign-extended if
17 virtual addresses are 32-bits but physical addresses are larger
18 (ie, 32-bit PAE). */
19#define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK)
20
21/* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */
22#define PTE_PFN_MASK ((pteval_t)PHYSICAL_PAGE_MASK)
23
24/* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */
25#define PTE_FLAGS_MASK (~PTE_PFN_MASK)
26
27#define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT)
28#define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1))
29
30#define HPAGE_SHIFT PMD_SHIFT
31#define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT)
32#define HPAGE_MASK (~(HPAGE_SIZE - 1))
33#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
34
35#define HUGE_MAX_HSTATE 2
36
37#ifndef __ASSEMBLY__
38#include <linux/types.h>
39#endif
40 9
41#ifdef CONFIG_X86_64 10#ifdef CONFIG_X86_64
42#include <asm/page_64.h> 11#include <asm/page_64.h>
@@ -44,39 +13,18 @@
44#include <asm/page_32.h> 13#include <asm/page_32.h>
45#endif /* CONFIG_X86_64 */ 14#endif /* CONFIG_X86_64 */
46 15
47#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
48
49#define VM_DATA_DEFAULT_FLAGS \
50 (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
51 VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
52
53
54#ifndef __ASSEMBLY__ 16#ifndef __ASSEMBLY__
55 17
56typedef struct { pgdval_t pgd; } pgd_t;
57typedef struct { pgprotval_t pgprot; } pgprot_t;
58
59extern int page_is_ram(unsigned long pagenr);
60extern int pagerange_is_ram(unsigned long start, unsigned long end);
61extern int devmem_is_allowed(unsigned long pagenr);
62extern void map_devmem(unsigned long pfn, unsigned long size,
63 pgprot_t vma_prot);
64extern void unmap_devmem(unsigned long pfn, unsigned long size,
65 pgprot_t vma_prot);
66
67extern unsigned long max_low_pfn_mapped;
68extern unsigned long max_pfn_mapped;
69
70struct page; 18struct page;
71 19
72static inline void clear_user_page(void *page, unsigned long vaddr, 20static inline void clear_user_page(void *page, unsigned long vaddr,
73 struct page *pg) 21 struct page *pg)
74{ 22{
75 clear_page(page); 23 clear_page(page);
76} 24}
77 25
78static inline void copy_user_page(void *to, void *from, unsigned long vaddr, 26static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
79 struct page *topage) 27 struct page *topage)
80{ 28{
81 copy_page(to, from); 29 copy_page(to, from);
82} 30}
@@ -85,99 +33,6 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
85 alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr) 33 alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
86#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE 34#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
87 35
88static inline pgd_t native_make_pgd(pgdval_t val)
89{
90 return (pgd_t) { val };
91}
92
93static inline pgdval_t native_pgd_val(pgd_t pgd)
94{
95 return pgd.pgd;
96}
97
98#if PAGETABLE_LEVELS >= 3
99#if PAGETABLE_LEVELS == 4
100typedef struct { pudval_t pud; } pud_t;
101
102static inline pud_t native_make_pud(pmdval_t val)
103{
104 return (pud_t) { val };
105}
106
107static inline pudval_t native_pud_val(pud_t pud)
108{
109 return pud.pud;
110}
111#else /* PAGETABLE_LEVELS == 3 */
112#include <asm-generic/pgtable-nopud.h>
113
114static inline pudval_t native_pud_val(pud_t pud)
115{
116 return native_pgd_val(pud.pgd);
117}
118#endif /* PAGETABLE_LEVELS == 4 */
119
120typedef struct { pmdval_t pmd; } pmd_t;
121
122static inline pmd_t native_make_pmd(pmdval_t val)
123{
124 return (pmd_t) { val };
125}
126
127static inline pmdval_t native_pmd_val(pmd_t pmd)
128{
129 return pmd.pmd;
130}
131#else /* PAGETABLE_LEVELS == 2 */
132#include <asm-generic/pgtable-nopmd.h>
133
134static inline pmdval_t native_pmd_val(pmd_t pmd)
135{
136 return native_pgd_val(pmd.pud.pgd);
137}
138#endif /* PAGETABLE_LEVELS >= 3 */
139
140static inline pte_t native_make_pte(pteval_t val)
141{
142 return (pte_t) { .pte = val };
143}
144
145static inline pteval_t native_pte_val(pte_t pte)
146{
147 return pte.pte;
148}
149
150static inline pteval_t native_pte_flags(pte_t pte)
151{
152 return native_pte_val(pte) & PTE_FLAGS_MASK;
153}
154
155#define pgprot_val(x) ((x).pgprot)
156#define __pgprot(x) ((pgprot_t) { (x) } )
157
158#ifdef CONFIG_PARAVIRT
159#include <asm/paravirt.h>
160#else /* !CONFIG_PARAVIRT */
161
162#define pgd_val(x) native_pgd_val(x)
163#define __pgd(x) native_make_pgd(x)
164
165#ifndef __PAGETABLE_PUD_FOLDED
166#define pud_val(x) native_pud_val(x)
167#define __pud(x) native_make_pud(x)
168#endif
169
170#ifndef __PAGETABLE_PMD_FOLDED
171#define pmd_val(x) native_pmd_val(x)
172#define __pmd(x) native_make_pmd(x)
173#endif
174
175#define pte_val(x) native_pte_val(x)
176#define pte_flags(x) native_pte_flags(x)
177#define __pte(x) native_make_pte(x)
178
179#endif /* CONFIG_PARAVIRT */
180
181#define __pa(x) __phys_addr((unsigned long)(x)) 36#define __pa(x) __phys_addr((unsigned long)(x))
182#define __pa_nodebug(x) __phys_addr_nodebug((unsigned long)(x)) 37#define __pa_nodebug(x) __phys_addr_nodebug((unsigned long)(x))
183/* __pa_symbol should be used for C visible symbols. 38/* __pa_symbol should be used for C visible symbols.
diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h
index bcde0d7b4325..da4e762406f7 100644
--- a/arch/x86/include/asm/page_32.h
+++ b/arch/x86/include/asm/page_32.h
@@ -1,82 +1,14 @@
1#ifndef _ASM_X86_PAGE_32_H 1#ifndef _ASM_X86_PAGE_32_H
2#define _ASM_X86_PAGE_32_H 2#define _ASM_X86_PAGE_32_H
3 3
4/* 4#include <asm/page_32_types.h>
5 * This handles the memory map.
6 *
7 * A __PAGE_OFFSET of 0xC0000000 means that the kernel has
8 * a virtual address space of one gigabyte, which limits the
9 * amount of physical memory you can use to about 950MB.
10 *
11 * If you want more physical memory than this then see the CONFIG_HIGHMEM4G
12 * and CONFIG_HIGHMEM64G options in the kernel configuration.
13 */
14#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
15
16#ifdef CONFIG_4KSTACKS
17#define THREAD_ORDER 0
18#else
19#define THREAD_ORDER 1
20#endif
21#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
22
23#define STACKFAULT_STACK 0
24#define DOUBLEFAULT_STACK 1
25#define NMI_STACK 0
26#define DEBUG_STACK 0
27#define MCE_STACK 0
28#define N_EXCEPTION_STACKS 1
29
30#ifdef CONFIG_X86_PAE
31/* 44=32+12, the limit we can fit into an unsigned long pfn */
32#define __PHYSICAL_MASK_SHIFT 44
33#define __VIRTUAL_MASK_SHIFT 32
34#define PAGETABLE_LEVELS 3
35
36#ifndef __ASSEMBLY__
37typedef u64 pteval_t;
38typedef u64 pmdval_t;
39typedef u64 pudval_t;
40typedef u64 pgdval_t;
41typedef u64 pgprotval_t;
42
43typedef union {
44 struct {
45 unsigned long pte_low, pte_high;
46 };
47 pteval_t pte;
48} pte_t;
49#endif /* __ASSEMBLY__
50 */
51#else /* !CONFIG_X86_PAE */
52#define __PHYSICAL_MASK_SHIFT 32
53#define __VIRTUAL_MASK_SHIFT 32
54#define PAGETABLE_LEVELS 2
55
56#ifndef __ASSEMBLY__
57typedef unsigned long pteval_t;
58typedef unsigned long pmdval_t;
59typedef unsigned long pudval_t;
60typedef unsigned long pgdval_t;
61typedef unsigned long pgprotval_t;
62
63typedef union {
64 pteval_t pte;
65 pteval_t pte_low;
66} pte_t;
67
68#endif /* __ASSEMBLY__ */
69#endif /* CONFIG_X86_PAE */
70 5
71#ifndef __ASSEMBLY__ 6#ifndef __ASSEMBLY__
72typedef struct page *pgtable_t;
73#endif
74 7
75#ifdef CONFIG_HUGETLB_PAGE 8#ifdef CONFIG_HUGETLB_PAGE
76#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA 9#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
77#endif 10#endif
78 11
79#ifndef __ASSEMBLY__
80#define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET) 12#define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET)
81#ifdef CONFIG_DEBUG_VIRTUAL 13#ifdef CONFIG_DEBUG_VIRTUAL
82extern unsigned long __phys_addr(unsigned long); 14extern unsigned long __phys_addr(unsigned long);
@@ -89,23 +21,6 @@ extern unsigned long __phys_addr(unsigned long);
89#define pfn_valid(pfn) ((pfn) < max_mapnr) 21#define pfn_valid(pfn) ((pfn) < max_mapnr)
90#endif /* CONFIG_FLATMEM */ 22#endif /* CONFIG_FLATMEM */
91 23
92extern int nx_enabled;
93
94/*
95 * This much address space is reserved for vmalloc() and iomap()
96 * as well as fixmap mappings.
97 */
98extern unsigned int __VMALLOC_RESERVE;
99extern int sysctl_legacy_va_layout;
100
101extern void find_low_pfn_range(void);
102extern unsigned long init_memory_mapping(unsigned long start,
103 unsigned long end);
104extern void initmem_init(unsigned long, unsigned long);
105extern void free_initmem(void);
106extern void setup_bootmem_allocator(void);
107
108
109#ifdef CONFIG_X86_USE_3DNOW 24#ifdef CONFIG_X86_USE_3DNOW
110#include <asm/mmx.h> 25#include <asm/mmx.h>
111 26
diff --git a/arch/x86/include/asm/page_32_types.h b/arch/x86/include/asm/page_32_types.h
new file mode 100644
index 000000000000..f1e4a79a6e41
--- /dev/null
+++ b/arch/x86/include/asm/page_32_types.h
@@ -0,0 +1,60 @@
1#ifndef _ASM_X86_PAGE_32_DEFS_H
2#define _ASM_X86_PAGE_32_DEFS_H
3
4#include <linux/const.h>
5
6/*
7 * This handles the memory map.
8 *
9 * A __PAGE_OFFSET of 0xC0000000 means that the kernel has
10 * a virtual address space of one gigabyte, which limits the
11 * amount of physical memory you can use to about 950MB.
12 *
13 * If you want more physical memory than this then see the CONFIG_HIGHMEM4G
14 * and CONFIG_HIGHMEM64G options in the kernel configuration.
15 */
16#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
17
18#ifdef CONFIG_4KSTACKS
19#define THREAD_ORDER 0
20#else
21#define THREAD_ORDER 1
22#endif
23#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
24
25#define STACKFAULT_STACK 0
26#define DOUBLEFAULT_STACK 1
27#define NMI_STACK 0
28#define DEBUG_STACK 0
29#define MCE_STACK 0
30#define N_EXCEPTION_STACKS 1
31
32#ifdef CONFIG_X86_PAE
33/* 44=32+12, the limit we can fit into an unsigned long pfn */
34#define __PHYSICAL_MASK_SHIFT 44
35#define __VIRTUAL_MASK_SHIFT 32
36
37#else /* !CONFIG_X86_PAE */
38#define __PHYSICAL_MASK_SHIFT 32
39#define __VIRTUAL_MASK_SHIFT 32
40#endif /* CONFIG_X86_PAE */
41
42#ifndef __ASSEMBLY__
43
44/*
45 * This much address space is reserved for vmalloc() and iomap()
46 * as well as fixmap mappings.
47 */
48extern unsigned int __VMALLOC_RESERVE;
49extern int sysctl_legacy_va_layout;
50
51extern void find_low_pfn_range(void);
52extern unsigned long init_memory_mapping(unsigned long start,
53 unsigned long end);
54extern void initmem_init(unsigned long, unsigned long);
55extern void free_initmem(void);
56extern void setup_bootmem_allocator(void);
57
58#endif /* !__ASSEMBLY__ */
59
60#endif /* _ASM_X86_PAGE_32_DEFS_H */
diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h
index 5ebca29f44f0..072694ed81a5 100644
--- a/arch/x86/include/asm/page_64.h
+++ b/arch/x86/include/asm/page_64.h
@@ -1,105 +1,6 @@
1#ifndef _ASM_X86_PAGE_64_H 1#ifndef _ASM_X86_PAGE_64_H
2#define _ASM_X86_PAGE_64_H 2#define _ASM_X86_PAGE_64_H
3 3
4#define PAGETABLE_LEVELS 4 4#include <asm/page_64_types.h>
5
6#define THREAD_ORDER 1
7#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
8#define CURRENT_MASK (~(THREAD_SIZE - 1))
9
10#define EXCEPTION_STACK_ORDER 0
11#define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)
12
13#define DEBUG_STACK_ORDER (EXCEPTION_STACK_ORDER + 1)
14#define DEBUG_STKSZ (PAGE_SIZE << DEBUG_STACK_ORDER)
15
16#define IRQSTACK_ORDER 2
17#define IRQSTACKSIZE (PAGE_SIZE << IRQSTACK_ORDER)
18
19#define STACKFAULT_STACK 1
20#define DOUBLEFAULT_STACK 2
21#define NMI_STACK 3
22#define DEBUG_STACK 4
23#define MCE_STACK 5
24#define N_EXCEPTION_STACKS 5 /* hw limit: 7 */
25
26#define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT)
27#define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1))
28
29/*
30 * Set __PAGE_OFFSET to the most negative possible address +
31 * PGDIR_SIZE*16 (pgd slot 272). The gap is to allow a space for a
32 * hypervisor to fit. Choosing 16 slots here is arbitrary, but it's
33 * what Xen requires.
34 */
35#define __PAGE_OFFSET _AC(0xffff880000000000, UL)
36
37#define __PHYSICAL_START CONFIG_PHYSICAL_START
38#define __KERNEL_ALIGN 0x200000
39
40/*
41 * Make sure kernel is aligned to 2MB address. Catching it at compile
42 * time is better. Change your config file and compile the kernel
43 * for a 2MB aligned address (CONFIG_PHYSICAL_START)
44 */
45#if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0
46#error "CONFIG_PHYSICAL_START must be a multiple of 2MB"
47#endif
48
49#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
50#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
51
52/* See Documentation/x86_64/mm.txt for a description of the memory map. */
53#define __PHYSICAL_MASK_SHIFT 46
54#define __VIRTUAL_MASK_SHIFT 48
55
56/*
57 * Kernel image size is limited to 512 MB (see level2_kernel_pgt in
58 * arch/x86/kernel/head_64.S), and it is mapped here:
59 */
60#define KERNEL_IMAGE_SIZE (512 * 1024 * 1024)
61#define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL)
62
63#ifndef __ASSEMBLY__
64void clear_page(void *page);
65void copy_page(void *to, void *from);
66
67/* duplicated to the one in bootmem.h */
68extern unsigned long max_pfn;
69extern unsigned long phys_base;
70
71extern unsigned long __phys_addr(unsigned long);
72#define __phys_reloc_hide(x) (x)
73
74/*
75 * These are used to make use of C type-checking..
76 */
77typedef unsigned long pteval_t;
78typedef unsigned long pmdval_t;
79typedef unsigned long pudval_t;
80typedef unsigned long pgdval_t;
81typedef unsigned long pgprotval_t;
82
83typedef struct page *pgtable_t;
84
85typedef struct { pteval_t pte; } pte_t;
86
87#define vmemmap ((struct page *)VMEMMAP_START)
88
89extern unsigned long init_memory_mapping(unsigned long start,
90 unsigned long end);
91
92extern void initmem_init(unsigned long start_pfn, unsigned long end_pfn);
93extern void free_initmem(void);
94
95extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
96extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
97
98#endif /* !__ASSEMBLY__ */
99
100#ifdef CONFIG_FLATMEM
101#define pfn_valid(pfn) ((pfn) < max_pfn)
102#endif
103
104 5
105#endif /* _ASM_X86_PAGE_64_H */ 6#endif /* _ASM_X86_PAGE_64_H */
diff --git a/arch/x86/include/asm/page_64_types.h b/arch/x86/include/asm/page_64_types.h
new file mode 100644
index 000000000000..d38c91b70248
--- /dev/null
+++ b/arch/x86/include/asm/page_64_types.h
@@ -0,0 +1,89 @@
1#ifndef _ASM_X86_PAGE_64_DEFS_H
2#define _ASM_X86_PAGE_64_DEFS_H
3
4#define THREAD_ORDER 1
5#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
6#define CURRENT_MASK (~(THREAD_SIZE - 1))
7
8#define EXCEPTION_STACK_ORDER 0
9#define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)
10
11#define DEBUG_STACK_ORDER (EXCEPTION_STACK_ORDER + 1)
12#define DEBUG_STKSZ (PAGE_SIZE << DEBUG_STACK_ORDER)
13
14#define IRQ_STACK_ORDER 2
15#define IRQ_STACK_SIZE (PAGE_SIZE << IRQ_STACK_ORDER)
16
17#define STACKFAULT_STACK 1
18#define DOUBLEFAULT_STACK 2
19#define NMI_STACK 3
20#define DEBUG_STACK 4
21#define MCE_STACK 5
22#define N_EXCEPTION_STACKS 5 /* hw limit: 7 */
23
24#define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT)
25#define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1))
26
27/*
28 * Set __PAGE_OFFSET to the most negative possible address +
29 * PGDIR_SIZE*16 (pgd slot 272). The gap is to allow a space for a
30 * hypervisor to fit. Choosing 16 slots here is arbitrary, but it's
31 * what Xen requires.
32 */
33#define __PAGE_OFFSET _AC(0xffff880000000000, UL)
34
35#define __PHYSICAL_START CONFIG_PHYSICAL_START
36#define __KERNEL_ALIGN 0x200000
37
38/*
39 * Make sure kernel is aligned to 2MB address. Catching it at compile
40 * time is better. Change your config file and compile the kernel
41 * for a 2MB aligned address (CONFIG_PHYSICAL_START)
42 */
43#if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0
44#error "CONFIG_PHYSICAL_START must be a multiple of 2MB"
45#endif
46
47#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
48#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
49
50/* See Documentation/x86_64/mm.txt for a description of the memory map. */
51#define __PHYSICAL_MASK_SHIFT 46
52#define __VIRTUAL_MASK_SHIFT 48
53
54/*
55 * Kernel image size is limited to 512 MB (see level2_kernel_pgt in
56 * arch/x86/kernel/head_64.S), and it is mapped here:
57 */
58#define KERNEL_IMAGE_SIZE (512 * 1024 * 1024)
59#define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL)
60
61#ifndef __ASSEMBLY__
62void clear_page(void *page);
63void copy_page(void *to, void *from);
64
65/* duplicated to the one in bootmem.h */
66extern unsigned long max_pfn;
67extern unsigned long phys_base;
68
69extern unsigned long __phys_addr(unsigned long);
70#define __phys_reloc_hide(x) (x)
71
72#define vmemmap ((struct page *)VMEMMAP_START)
73
74extern unsigned long init_memory_mapping(unsigned long start,
75 unsigned long end);
76
77extern void initmem_init(unsigned long start_pfn, unsigned long end_pfn);
78extern void free_initmem(void);
79
80extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
81extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
82
83#endif /* !__ASSEMBLY__ */
84
85#ifdef CONFIG_FLATMEM
86#define pfn_valid(pfn) ((pfn) < max_pfn)
87#endif
88
89#endif /* _ASM_X86_PAGE_64_DEFS_H */
diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
new file mode 100644
index 000000000000..826ad37006ab
--- /dev/null
+++ b/arch/x86/include/asm/page_types.h
@@ -0,0 +1,51 @@
1#ifndef _ASM_X86_PAGE_DEFS_H
2#define _ASM_X86_PAGE_DEFS_H
3
4#include <linux/const.h>
5
6/* PAGE_SHIFT determines the page size */
7#define PAGE_SHIFT 12
8#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
9#define PAGE_MASK (~(PAGE_SIZE-1))
10
11#define __PHYSICAL_MASK ((phys_addr_t)(1ULL << __PHYSICAL_MASK_SHIFT) - 1)
12#define __VIRTUAL_MASK ((1UL << __VIRTUAL_MASK_SHIFT) - 1)
13
14/* Cast PAGE_MASK to a signed type so that it is sign-extended if
15 virtual addresses are 32-bits but physical addresses are larger
16 (ie, 32-bit PAE). */
17#define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK)
18
19#define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT)
20#define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1))
21
22#define HPAGE_SHIFT PMD_SHIFT
23#define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT)
24#define HPAGE_MASK (~(HPAGE_SIZE - 1))
25#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
26
27#define HUGE_MAX_HSTATE 2
28
29#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
30
31#define VM_DATA_DEFAULT_FLAGS \
32 (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
33 VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
34
35#ifdef CONFIG_X86_64
36#include <asm/page_64_types.h>
37#else
38#include <asm/page_32_types.h>
39#endif /* CONFIG_X86_64 */
40
41#ifndef __ASSEMBLY__
42
43extern int page_is_ram(unsigned long pagenr);
44extern int devmem_is_allowed(unsigned long pagenr);
45
46extern unsigned long max_low_pfn_mapped;
47extern unsigned long max_pfn_mapped;
48
49#endif /* !__ASSEMBLY__ */
50
51#endif /* _ASM_X86_PAGE_DEFS_H */
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index c26c6bf4da00..0617d5cc9712 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -4,7 +4,7 @@
4 * para-virtualization: those hooks are defined here. */ 4 * para-virtualization: those hooks are defined here. */
5 5
6#ifdef CONFIG_PARAVIRT 6#ifdef CONFIG_PARAVIRT
7#include <asm/page.h> 7#include <asm/pgtable_types.h>
8#include <asm/asm.h> 8#include <asm/asm.h>
9 9
10/* Bitmask of what can be clobbered: usually at least eax. */ 10/* Bitmask of what can be clobbered: usually at least eax. */
@@ -12,21 +12,38 @@
12#define CLBR_EAX (1 << 0) 12#define CLBR_EAX (1 << 0)
13#define CLBR_ECX (1 << 1) 13#define CLBR_ECX (1 << 1)
14#define CLBR_EDX (1 << 2) 14#define CLBR_EDX (1 << 2)
15#define CLBR_EDI (1 << 3)
15 16
16#ifdef CONFIG_X86_64 17#ifdef CONFIG_X86_32
17#define CLBR_RSI (1 << 3) 18/* CLBR_ANY should match all regs platform has. For i386, that's just it */
18#define CLBR_RDI (1 << 4) 19#define CLBR_ANY ((1 << 4) - 1)
20
21#define CLBR_ARG_REGS (CLBR_EAX | CLBR_EDX | CLBR_ECX)
22#define CLBR_RET_REG (CLBR_EAX | CLBR_EDX)
23#define CLBR_SCRATCH (0)
24#else
25#define CLBR_RAX CLBR_EAX
26#define CLBR_RCX CLBR_ECX
27#define CLBR_RDX CLBR_EDX
28#define CLBR_RDI CLBR_EDI
29#define CLBR_RSI (1 << 4)
19#define CLBR_R8 (1 << 5) 30#define CLBR_R8 (1 << 5)
20#define CLBR_R9 (1 << 6) 31#define CLBR_R9 (1 << 6)
21#define CLBR_R10 (1 << 7) 32#define CLBR_R10 (1 << 7)
22#define CLBR_R11 (1 << 8) 33#define CLBR_R11 (1 << 8)
34
23#define CLBR_ANY ((1 << 9) - 1) 35#define CLBR_ANY ((1 << 9) - 1)
36
37#define CLBR_ARG_REGS (CLBR_RDI | CLBR_RSI | CLBR_RDX | \
38 CLBR_RCX | CLBR_R8 | CLBR_R9)
39#define CLBR_RET_REG (CLBR_RAX)
40#define CLBR_SCRATCH (CLBR_R10 | CLBR_R11)
41
24#include <asm/desc_defs.h> 42#include <asm/desc_defs.h>
25#else
26/* CLBR_ANY should match all regs platform has. For i386, that's just it */
27#define CLBR_ANY ((1 << 3) - 1)
28#endif /* X86_64 */ 43#endif /* X86_64 */
29 44
45#define CLBR_CALLEE_SAVE ((CLBR_ARG_REGS | CLBR_SCRATCH) & ~CLBR_RET_REG)
46
30#ifndef __ASSEMBLY__ 47#ifndef __ASSEMBLY__
31#include <linux/types.h> 48#include <linux/types.h>
32#include <linux/cpumask.h> 49#include <linux/cpumask.h>
@@ -40,6 +57,14 @@ struct tss_struct;
40struct mm_struct; 57struct mm_struct;
41struct desc_struct; 58struct desc_struct;
42 59
60/*
61 * Wrapper type for pointers to code which uses the non-standard
62 * calling convention. See PV_CALL_SAVE_REGS_THUNK below.
63 */
64struct paravirt_callee_save {
65 void *func;
66};
67
43/* general info */ 68/* general info */
44struct pv_info { 69struct pv_info {
45 unsigned int kernel_rpl; 70 unsigned int kernel_rpl;
@@ -189,11 +214,15 @@ struct pv_irq_ops {
189 * expected to use X86_EFLAGS_IF; all other bits 214 * expected to use X86_EFLAGS_IF; all other bits
190 * returned from save_fl are undefined, and may be ignored by 215 * returned from save_fl are undefined, and may be ignored by
191 * restore_fl. 216 * restore_fl.
217 *
218 * NOTE: These functions callers expect the callee to preserve
219 * more registers than the standard C calling convention.
192 */ 220 */
193 unsigned long (*save_fl)(void); 221 struct paravirt_callee_save save_fl;
194 void (*restore_fl)(unsigned long); 222 struct paravirt_callee_save restore_fl;
195 void (*irq_disable)(void); 223 struct paravirt_callee_save irq_disable;
196 void (*irq_enable)(void); 224 struct paravirt_callee_save irq_enable;
225
197 void (*safe_halt)(void); 226 void (*safe_halt)(void);
198 void (*halt)(void); 227 void (*halt)(void);
199 228
@@ -279,12 +308,11 @@ struct pv_mmu_ops {
279 void (*ptep_modify_prot_commit)(struct mm_struct *mm, unsigned long addr, 308 void (*ptep_modify_prot_commit)(struct mm_struct *mm, unsigned long addr,
280 pte_t *ptep, pte_t pte); 309 pte_t *ptep, pte_t pte);
281 310
282 pteval_t (*pte_val)(pte_t); 311 struct paravirt_callee_save pte_val;
283 pteval_t (*pte_flags)(pte_t); 312 struct paravirt_callee_save make_pte;
284 pte_t (*make_pte)(pteval_t pte);
285 313
286 pgdval_t (*pgd_val)(pgd_t); 314 struct paravirt_callee_save pgd_val;
287 pgd_t (*make_pgd)(pgdval_t pgd); 315 struct paravirt_callee_save make_pgd;
288 316
289#if PAGETABLE_LEVELS >= 3 317#if PAGETABLE_LEVELS >= 3
290#ifdef CONFIG_X86_PAE 318#ifdef CONFIG_X86_PAE
@@ -299,12 +327,12 @@ struct pv_mmu_ops {
299 327
300 void (*set_pud)(pud_t *pudp, pud_t pudval); 328 void (*set_pud)(pud_t *pudp, pud_t pudval);
301 329
302 pmdval_t (*pmd_val)(pmd_t); 330 struct paravirt_callee_save pmd_val;
303 pmd_t (*make_pmd)(pmdval_t pmd); 331 struct paravirt_callee_save make_pmd;
304 332
305#if PAGETABLE_LEVELS == 4 333#if PAGETABLE_LEVELS == 4
306 pudval_t (*pud_val)(pud_t); 334 struct paravirt_callee_save pud_val;
307 pud_t (*make_pud)(pudval_t pud); 335 struct paravirt_callee_save make_pud;
308 336
309 void (*set_pgd)(pgd_t *pudp, pgd_t pgdval); 337 void (*set_pgd)(pgd_t *pudp, pgd_t pgdval);
310#endif /* PAGETABLE_LEVELS == 4 */ 338#endif /* PAGETABLE_LEVELS == 4 */
@@ -389,6 +417,8 @@ extern struct pv_lock_ops pv_lock_ops;
389 asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":") 417 asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":")
390 418
391unsigned paravirt_patch_nop(void); 419unsigned paravirt_patch_nop(void);
420unsigned paravirt_patch_ident_32(void *insnbuf, unsigned len);
421unsigned paravirt_patch_ident_64(void *insnbuf, unsigned len);
392unsigned paravirt_patch_ignore(unsigned len); 422unsigned paravirt_patch_ignore(unsigned len);
393unsigned paravirt_patch_call(void *insnbuf, 423unsigned paravirt_patch_call(void *insnbuf,
394 const void *target, u16 tgt_clobbers, 424 const void *target, u16 tgt_clobbers,
@@ -480,25 +510,45 @@ int paravirt_disable_iospace(void);
480 * makes sure the incoming and outgoing types are always correct. 510 * makes sure the incoming and outgoing types are always correct.
481 */ 511 */
482#ifdef CONFIG_X86_32 512#ifdef CONFIG_X86_32
483#define PVOP_VCALL_ARGS unsigned long __eax, __edx, __ecx 513#define PVOP_VCALL_ARGS \
514 unsigned long __eax = __eax, __edx = __edx, __ecx = __ecx
484#define PVOP_CALL_ARGS PVOP_VCALL_ARGS 515#define PVOP_CALL_ARGS PVOP_VCALL_ARGS
516
517#define PVOP_CALL_ARG1(x) "a" ((unsigned long)(x))
518#define PVOP_CALL_ARG2(x) "d" ((unsigned long)(x))
519#define PVOP_CALL_ARG3(x) "c" ((unsigned long)(x))
520
485#define PVOP_VCALL_CLOBBERS "=a" (__eax), "=d" (__edx), \ 521#define PVOP_VCALL_CLOBBERS "=a" (__eax), "=d" (__edx), \
486 "=c" (__ecx) 522 "=c" (__ecx)
487#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS 523#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS
524
525#define PVOP_VCALLEE_CLOBBERS "=a" (__eax), "=d" (__edx)
526#define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS
527
488#define EXTRA_CLOBBERS 528#define EXTRA_CLOBBERS
489#define VEXTRA_CLOBBERS 529#define VEXTRA_CLOBBERS
490#else 530#else /* CONFIG_X86_64 */
491#define PVOP_VCALL_ARGS unsigned long __edi, __esi, __edx, __ecx 531#define PVOP_VCALL_ARGS \
532 unsigned long __edi = __edi, __esi = __esi, \
533 __edx = __edx, __ecx = __ecx
492#define PVOP_CALL_ARGS PVOP_VCALL_ARGS, __eax 534#define PVOP_CALL_ARGS PVOP_VCALL_ARGS, __eax
535
536#define PVOP_CALL_ARG1(x) "D" ((unsigned long)(x))
537#define PVOP_CALL_ARG2(x) "S" ((unsigned long)(x))
538#define PVOP_CALL_ARG3(x) "d" ((unsigned long)(x))
539#define PVOP_CALL_ARG4(x) "c" ((unsigned long)(x))
540
493#define PVOP_VCALL_CLOBBERS "=D" (__edi), \ 541#define PVOP_VCALL_CLOBBERS "=D" (__edi), \
494 "=S" (__esi), "=d" (__edx), \ 542 "=S" (__esi), "=d" (__edx), \
495 "=c" (__ecx) 543 "=c" (__ecx)
496
497#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax) 544#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax)
498 545
546#define PVOP_VCALLEE_CLOBBERS "=a" (__eax)
547#define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS
548
499#define EXTRA_CLOBBERS , "r8", "r9", "r10", "r11" 549#define EXTRA_CLOBBERS , "r8", "r9", "r10", "r11"
500#define VEXTRA_CLOBBERS , "rax", "r8", "r9", "r10", "r11" 550#define VEXTRA_CLOBBERS , "rax", "r8", "r9", "r10", "r11"
501#endif 551#endif /* CONFIG_X86_32 */
502 552
503#ifdef CONFIG_PARAVIRT_DEBUG 553#ifdef CONFIG_PARAVIRT_DEBUG
504#define PVOP_TEST_NULL(op) BUG_ON(op == NULL) 554#define PVOP_TEST_NULL(op) BUG_ON(op == NULL)
@@ -506,10 +556,11 @@ int paravirt_disable_iospace(void);
506#define PVOP_TEST_NULL(op) ((void)op) 556#define PVOP_TEST_NULL(op) ((void)op)
507#endif 557#endif
508 558
509#define __PVOP_CALL(rettype, op, pre, post, ...) \ 559#define ____PVOP_CALL(rettype, op, clbr, call_clbr, extra_clbr, \
560 pre, post, ...) \
510 ({ \ 561 ({ \
511 rettype __ret; \ 562 rettype __ret; \
512 PVOP_CALL_ARGS; \ 563 PVOP_CALL_ARGS; \
513 PVOP_TEST_NULL(op); \ 564 PVOP_TEST_NULL(op); \
514 /* This is 32-bit specific, but is okay in 64-bit */ \ 565 /* This is 32-bit specific, but is okay in 64-bit */ \
515 /* since this condition will never hold */ \ 566 /* since this condition will never hold */ \
@@ -517,70 +568,113 @@ int paravirt_disable_iospace(void);
517 asm volatile(pre \ 568 asm volatile(pre \
518 paravirt_alt(PARAVIRT_CALL) \ 569 paravirt_alt(PARAVIRT_CALL) \
519 post \ 570 post \
520 : PVOP_CALL_CLOBBERS \ 571 : call_clbr \
521 : paravirt_type(op), \ 572 : paravirt_type(op), \
522 paravirt_clobber(CLBR_ANY), \ 573 paravirt_clobber(clbr), \
523 ##__VA_ARGS__ \ 574 ##__VA_ARGS__ \
524 : "memory", "cc" EXTRA_CLOBBERS); \ 575 : "memory", "cc" extra_clbr); \
525 __ret = (rettype)((((u64)__edx) << 32) | __eax); \ 576 __ret = (rettype)((((u64)__edx) << 32) | __eax); \
526 } else { \ 577 } else { \
527 asm volatile(pre \ 578 asm volatile(pre \
528 paravirt_alt(PARAVIRT_CALL) \ 579 paravirt_alt(PARAVIRT_CALL) \
529 post \ 580 post \
530 : PVOP_CALL_CLOBBERS \ 581 : call_clbr \
531 : paravirt_type(op), \ 582 : paravirt_type(op), \
532 paravirt_clobber(CLBR_ANY), \ 583 paravirt_clobber(clbr), \
533 ##__VA_ARGS__ \ 584 ##__VA_ARGS__ \
534 : "memory", "cc" EXTRA_CLOBBERS); \ 585 : "memory", "cc" extra_clbr); \
535 __ret = (rettype)__eax; \ 586 __ret = (rettype)__eax; \
536 } \ 587 } \
537 __ret; \ 588 __ret; \
538 }) 589 })
539#define __PVOP_VCALL(op, pre, post, ...) \ 590
591#define __PVOP_CALL(rettype, op, pre, post, ...) \
592 ____PVOP_CALL(rettype, op, CLBR_ANY, PVOP_CALL_CLOBBERS, \
593 EXTRA_CLOBBERS, pre, post, ##__VA_ARGS__)
594
595#define __PVOP_CALLEESAVE(rettype, op, pre, post, ...) \
596 ____PVOP_CALL(rettype, op.func, CLBR_RET_REG, \
597 PVOP_CALLEE_CLOBBERS, , \
598 pre, post, ##__VA_ARGS__)
599
600
601#define ____PVOP_VCALL(op, clbr, call_clbr, extra_clbr, pre, post, ...) \
540 ({ \ 602 ({ \
541 PVOP_VCALL_ARGS; \ 603 PVOP_VCALL_ARGS; \
542 PVOP_TEST_NULL(op); \ 604 PVOP_TEST_NULL(op); \
543 asm volatile(pre \ 605 asm volatile(pre \
544 paravirt_alt(PARAVIRT_CALL) \ 606 paravirt_alt(PARAVIRT_CALL) \
545 post \ 607 post \
546 : PVOP_VCALL_CLOBBERS \ 608 : call_clbr \
547 : paravirt_type(op), \ 609 : paravirt_type(op), \
548 paravirt_clobber(CLBR_ANY), \ 610 paravirt_clobber(clbr), \
549 ##__VA_ARGS__ \ 611 ##__VA_ARGS__ \
550 : "memory", "cc" VEXTRA_CLOBBERS); \ 612 : "memory", "cc" extra_clbr); \
551 }) 613 })
552 614
615#define __PVOP_VCALL(op, pre, post, ...) \
616 ____PVOP_VCALL(op, CLBR_ANY, PVOP_VCALL_CLOBBERS, \
617 VEXTRA_CLOBBERS, \
618 pre, post, ##__VA_ARGS__)
619
620#define __PVOP_VCALLEESAVE(rettype, op, pre, post, ...) \
621 ____PVOP_CALL(rettype, op.func, CLBR_RET_REG, \
622 PVOP_VCALLEE_CLOBBERS, , \
623 pre, post, ##__VA_ARGS__)
624
625
626
553#define PVOP_CALL0(rettype, op) \ 627#define PVOP_CALL0(rettype, op) \
554 __PVOP_CALL(rettype, op, "", "") 628 __PVOP_CALL(rettype, op, "", "")
555#define PVOP_VCALL0(op) \ 629#define PVOP_VCALL0(op) \
556 __PVOP_VCALL(op, "", "") 630 __PVOP_VCALL(op, "", "")
557 631
632#define PVOP_CALLEE0(rettype, op) \
633 __PVOP_CALLEESAVE(rettype, op, "", "")
634#define PVOP_VCALLEE0(op) \
635 __PVOP_VCALLEESAVE(op, "", "")
636
637
558#define PVOP_CALL1(rettype, op, arg1) \ 638#define PVOP_CALL1(rettype, op, arg1) \
559 __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1))) 639 __PVOP_CALL(rettype, op, "", "", PVOP_CALL_ARG1(arg1))
560#define PVOP_VCALL1(op, arg1) \ 640#define PVOP_VCALL1(op, arg1) \
561 __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1))) 641 __PVOP_VCALL(op, "", "", PVOP_CALL_ARG1(arg1))
642
643#define PVOP_CALLEE1(rettype, op, arg1) \
644 __PVOP_CALLEESAVE(rettype, op, "", "", PVOP_CALL_ARG1(arg1))
645#define PVOP_VCALLEE1(op, arg1) \
646 __PVOP_VCALLEESAVE(op, "", "", PVOP_CALL_ARG1(arg1))
647
562 648
563#define PVOP_CALL2(rettype, op, arg1, arg2) \ 649#define PVOP_CALL2(rettype, op, arg1, arg2) \
564 __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ 650 __PVOP_CALL(rettype, op, "", "", PVOP_CALL_ARG1(arg1), \
565 "1" ((unsigned long)(arg2))) 651 PVOP_CALL_ARG2(arg2))
566#define PVOP_VCALL2(op, arg1, arg2) \ 652#define PVOP_VCALL2(op, arg1, arg2) \
567 __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ 653 __PVOP_VCALL(op, "", "", PVOP_CALL_ARG1(arg1), \
568 "1" ((unsigned long)(arg2))) 654 PVOP_CALL_ARG2(arg2))
655
656#define PVOP_CALLEE2(rettype, op, arg1, arg2) \
657 __PVOP_CALLEESAVE(rettype, op, "", "", PVOP_CALL_ARG1(arg1), \
658 PVOP_CALL_ARG2(arg2))
659#define PVOP_VCALLEE2(op, arg1, arg2) \
660 __PVOP_VCALLEESAVE(op, "", "", PVOP_CALL_ARG1(arg1), \
661 PVOP_CALL_ARG2(arg2))
662
569 663
570#define PVOP_CALL3(rettype, op, arg1, arg2, arg3) \ 664#define PVOP_CALL3(rettype, op, arg1, arg2, arg3) \
571 __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ 665 __PVOP_CALL(rettype, op, "", "", PVOP_CALL_ARG1(arg1), \
572 "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3))) 666 PVOP_CALL_ARG2(arg2), PVOP_CALL_ARG3(arg3))
573#define PVOP_VCALL3(op, arg1, arg2, arg3) \ 667#define PVOP_VCALL3(op, arg1, arg2, arg3) \
574 __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ 668 __PVOP_VCALL(op, "", "", PVOP_CALL_ARG1(arg1), \
575 "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3))) 669 PVOP_CALL_ARG2(arg2), PVOP_CALL_ARG3(arg3))
576 670
577/* This is the only difference in x86_64. We can make it much simpler */ 671/* This is the only difference in x86_64. We can make it much simpler */
578#ifdef CONFIG_X86_32 672#ifdef CONFIG_X86_32
579#define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \ 673#define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \
580 __PVOP_CALL(rettype, op, \ 674 __PVOP_CALL(rettype, op, \
581 "push %[_arg4];", "lea 4(%%esp),%%esp;", \ 675 "push %[_arg4];", "lea 4(%%esp),%%esp;", \
582 "0" ((u32)(arg1)), "1" ((u32)(arg2)), \ 676 PVOP_CALL_ARG1(arg1), PVOP_CALL_ARG2(arg2), \
583 "2" ((u32)(arg3)), [_arg4] "mr" ((u32)(arg4))) 677 PVOP_CALL_ARG3(arg3), [_arg4] "mr" ((u32)(arg4)))
584#define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \ 678#define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \
585 __PVOP_VCALL(op, \ 679 __PVOP_VCALL(op, \
586 "push %[_arg4];", "lea 4(%%esp),%%esp;", \ 680 "push %[_arg4];", "lea 4(%%esp),%%esp;", \
@@ -588,13 +682,13 @@ int paravirt_disable_iospace(void);
588 "2" ((u32)(arg3)), [_arg4] "mr" ((u32)(arg4))) 682 "2" ((u32)(arg3)), [_arg4] "mr" ((u32)(arg4)))
589#else 683#else
590#define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \ 684#define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \
591 __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ 685 __PVOP_CALL(rettype, op, "", "", \
592 "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3)), \ 686 PVOP_CALL_ARG1(arg1), PVOP_CALL_ARG2(arg2), \
593 "3"((unsigned long)(arg4))) 687 PVOP_CALL_ARG3(arg3), PVOP_CALL_ARG4(arg4))
594#define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \ 688#define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \
595 __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ 689 __PVOP_VCALL(op, "", "", \
596 "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3)), \ 690 PVOP_CALL_ARG1(arg1), PVOP_CALL_ARG2(arg2), \
597 "3"((unsigned long)(arg4))) 691 PVOP_CALL_ARG3(arg3), PVOP_CALL_ARG4(arg4))
598#endif 692#endif
599 693
600static inline int paravirt_enabled(void) 694static inline int paravirt_enabled(void)
@@ -1061,13 +1155,13 @@ static inline pte_t __pte(pteval_t val)
1061 pteval_t ret; 1155 pteval_t ret;
1062 1156
1063 if (sizeof(pteval_t) > sizeof(long)) 1157 if (sizeof(pteval_t) > sizeof(long))
1064 ret = PVOP_CALL2(pteval_t, 1158 ret = PVOP_CALLEE2(pteval_t,
1065 pv_mmu_ops.make_pte, 1159 pv_mmu_ops.make_pte,
1066 val, (u64)val >> 32); 1160 val, (u64)val >> 32);
1067 else 1161 else
1068 ret = PVOP_CALL1(pteval_t, 1162 ret = PVOP_CALLEE1(pteval_t,
1069 pv_mmu_ops.make_pte, 1163 pv_mmu_ops.make_pte,
1070 val); 1164 val);
1071 1165
1072 return (pte_t) { .pte = ret }; 1166 return (pte_t) { .pte = ret };
1073} 1167}
@@ -1077,29 +1171,12 @@ static inline pteval_t pte_val(pte_t pte)
1077 pteval_t ret; 1171 pteval_t ret;
1078 1172
1079 if (sizeof(pteval_t) > sizeof(long)) 1173 if (sizeof(pteval_t) > sizeof(long))
1080 ret = PVOP_CALL2(pteval_t, pv_mmu_ops.pte_val, 1174 ret = PVOP_CALLEE2(pteval_t, pv_mmu_ops.pte_val,
1081 pte.pte, (u64)pte.pte >> 32); 1175 pte.pte, (u64)pte.pte >> 32);
1082 else
1083 ret = PVOP_CALL1(pteval_t, pv_mmu_ops.pte_val,
1084 pte.pte);
1085
1086 return ret;
1087}
1088
1089static inline pteval_t pte_flags(pte_t pte)
1090{
1091 pteval_t ret;
1092
1093 if (sizeof(pteval_t) > sizeof(long))
1094 ret = PVOP_CALL2(pteval_t, pv_mmu_ops.pte_flags,
1095 pte.pte, (u64)pte.pte >> 32);
1096 else 1176 else
1097 ret = PVOP_CALL1(pteval_t, pv_mmu_ops.pte_flags, 1177 ret = PVOP_CALLEE1(pteval_t, pv_mmu_ops.pte_val,
1098 pte.pte); 1178 pte.pte);
1099 1179
1100#ifdef CONFIG_PARAVIRT_DEBUG
1101 BUG_ON(ret & PTE_PFN_MASK);
1102#endif
1103 return ret; 1180 return ret;
1104} 1181}
1105 1182
@@ -1108,11 +1185,11 @@ static inline pgd_t __pgd(pgdval_t val)
1108 pgdval_t ret; 1185 pgdval_t ret;
1109 1186
1110 if (sizeof(pgdval_t) > sizeof(long)) 1187 if (sizeof(pgdval_t) > sizeof(long))
1111 ret = PVOP_CALL2(pgdval_t, pv_mmu_ops.make_pgd, 1188 ret = PVOP_CALLEE2(pgdval_t, pv_mmu_ops.make_pgd,
1112 val, (u64)val >> 32); 1189 val, (u64)val >> 32);
1113 else 1190 else
1114 ret = PVOP_CALL1(pgdval_t, pv_mmu_ops.make_pgd, 1191 ret = PVOP_CALLEE1(pgdval_t, pv_mmu_ops.make_pgd,
1115 val); 1192 val);
1116 1193
1117 return (pgd_t) { ret }; 1194 return (pgd_t) { ret };
1118} 1195}
@@ -1122,11 +1199,11 @@ static inline pgdval_t pgd_val(pgd_t pgd)
1122 pgdval_t ret; 1199 pgdval_t ret;
1123 1200
1124 if (sizeof(pgdval_t) > sizeof(long)) 1201 if (sizeof(pgdval_t) > sizeof(long))
1125 ret = PVOP_CALL2(pgdval_t, pv_mmu_ops.pgd_val, 1202 ret = PVOP_CALLEE2(pgdval_t, pv_mmu_ops.pgd_val,
1126 pgd.pgd, (u64)pgd.pgd >> 32); 1203 pgd.pgd, (u64)pgd.pgd >> 32);
1127 else 1204 else
1128 ret = PVOP_CALL1(pgdval_t, pv_mmu_ops.pgd_val, 1205 ret = PVOP_CALLEE1(pgdval_t, pv_mmu_ops.pgd_val,
1129 pgd.pgd); 1206 pgd.pgd);
1130 1207
1131 return ret; 1208 return ret;
1132} 1209}
@@ -1190,11 +1267,11 @@ static inline pmd_t __pmd(pmdval_t val)
1190 pmdval_t ret; 1267 pmdval_t ret;
1191 1268
1192 if (sizeof(pmdval_t) > sizeof(long)) 1269 if (sizeof(pmdval_t) > sizeof(long))
1193 ret = PVOP_CALL2(pmdval_t, pv_mmu_ops.make_pmd, 1270 ret = PVOP_CALLEE2(pmdval_t, pv_mmu_ops.make_pmd,
1194 val, (u64)val >> 32); 1271 val, (u64)val >> 32);
1195 else 1272 else
1196 ret = PVOP_CALL1(pmdval_t, pv_mmu_ops.make_pmd, 1273 ret = PVOP_CALLEE1(pmdval_t, pv_mmu_ops.make_pmd,
1197 val); 1274 val);
1198 1275
1199 return (pmd_t) { ret }; 1276 return (pmd_t) { ret };
1200} 1277}
@@ -1204,11 +1281,11 @@ static inline pmdval_t pmd_val(pmd_t pmd)
1204 pmdval_t ret; 1281 pmdval_t ret;
1205 1282
1206 if (sizeof(pmdval_t) > sizeof(long)) 1283 if (sizeof(pmdval_t) > sizeof(long))
1207 ret = PVOP_CALL2(pmdval_t, pv_mmu_ops.pmd_val, 1284 ret = PVOP_CALLEE2(pmdval_t, pv_mmu_ops.pmd_val,
1208 pmd.pmd, (u64)pmd.pmd >> 32); 1285 pmd.pmd, (u64)pmd.pmd >> 32);
1209 else 1286 else
1210 ret = PVOP_CALL1(pmdval_t, pv_mmu_ops.pmd_val, 1287 ret = PVOP_CALLEE1(pmdval_t, pv_mmu_ops.pmd_val,
1211 pmd.pmd); 1288 pmd.pmd);
1212 1289
1213 return ret; 1290 return ret;
1214} 1291}
@@ -1230,11 +1307,11 @@ static inline pud_t __pud(pudval_t val)
1230 pudval_t ret; 1307 pudval_t ret;
1231 1308
1232 if (sizeof(pudval_t) > sizeof(long)) 1309 if (sizeof(pudval_t) > sizeof(long))
1233 ret = PVOP_CALL2(pudval_t, pv_mmu_ops.make_pud, 1310 ret = PVOP_CALLEE2(pudval_t, pv_mmu_ops.make_pud,
1234 val, (u64)val >> 32); 1311 val, (u64)val >> 32);
1235 else 1312 else
1236 ret = PVOP_CALL1(pudval_t, pv_mmu_ops.make_pud, 1313 ret = PVOP_CALLEE1(pudval_t, pv_mmu_ops.make_pud,
1237 val); 1314 val);
1238 1315
1239 return (pud_t) { ret }; 1316 return (pud_t) { ret };
1240} 1317}
@@ -1244,11 +1321,11 @@ static inline pudval_t pud_val(pud_t pud)
1244 pudval_t ret; 1321 pudval_t ret;
1245 1322
1246 if (sizeof(pudval_t) > sizeof(long)) 1323 if (sizeof(pudval_t) > sizeof(long))
1247 ret = PVOP_CALL2(pudval_t, pv_mmu_ops.pud_val, 1324 ret = PVOP_CALLEE2(pudval_t, pv_mmu_ops.pud_val,
1248 pud.pud, (u64)pud.pud >> 32); 1325 pud.pud, (u64)pud.pud >> 32);
1249 else 1326 else
1250 ret = PVOP_CALL1(pudval_t, pv_mmu_ops.pud_val, 1327 ret = PVOP_CALLEE1(pudval_t, pv_mmu_ops.pud_val,
1251 pud.pud); 1328 pud.pud);
1252 1329
1253 return ret; 1330 return ret;
1254} 1331}
@@ -1354,14 +1431,7 @@ static inline void arch_leave_lazy_cpu_mode(void)
1354 PVOP_VCALL0(pv_cpu_ops.lazy_mode.leave); 1431 PVOP_VCALL0(pv_cpu_ops.lazy_mode.leave);
1355} 1432}
1356 1433
1357static inline void arch_flush_lazy_cpu_mode(void) 1434void arch_flush_lazy_cpu_mode(void);
1358{
1359 if (unlikely(paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU)) {
1360 arch_leave_lazy_cpu_mode();
1361 arch_enter_lazy_cpu_mode();
1362 }
1363}
1364
1365 1435
1366#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE 1436#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
1367static inline void arch_enter_lazy_mmu_mode(void) 1437static inline void arch_enter_lazy_mmu_mode(void)
@@ -1374,13 +1444,7 @@ static inline void arch_leave_lazy_mmu_mode(void)
1374 PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave); 1444 PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave);
1375} 1445}
1376 1446
1377static inline void arch_flush_lazy_mmu_mode(void) 1447void arch_flush_lazy_mmu_mode(void);
1378{
1379 if (unlikely(paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU)) {
1380 arch_leave_lazy_mmu_mode();
1381 arch_enter_lazy_mmu_mode();
1382 }
1383}
1384 1448
1385static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx, 1449static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
1386 unsigned long phys, pgprot_t flags) 1450 unsigned long phys, pgprot_t flags)
@@ -1389,9 +1453,10 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
1389} 1453}
1390 1454
1391void _paravirt_nop(void); 1455void _paravirt_nop(void);
1392#define paravirt_nop ((void *)_paravirt_nop) 1456u32 _paravirt_ident_32(u32);
1457u64 _paravirt_ident_64(u64);
1393 1458
1394void paravirt_use_bytelocks(void); 1459#define paravirt_nop ((void *)_paravirt_nop)
1395 1460
1396#ifdef CONFIG_SMP 1461#ifdef CONFIG_SMP
1397 1462
@@ -1404,6 +1469,7 @@ static inline int __raw_spin_is_contended(struct raw_spinlock *lock)
1404{ 1469{
1405 return PVOP_CALL1(int, pv_lock_ops.spin_is_contended, lock); 1470 return PVOP_CALL1(int, pv_lock_ops.spin_is_contended, lock);
1406} 1471}
1472#define __raw_spin_is_contended __raw_spin_is_contended
1407 1473
1408static __always_inline void __raw_spin_lock(struct raw_spinlock *lock) 1474static __always_inline void __raw_spin_lock(struct raw_spinlock *lock)
1409{ 1475{
@@ -1440,12 +1506,37 @@ extern struct paravirt_patch_site __parainstructions[],
1440 __parainstructions_end[]; 1506 __parainstructions_end[];
1441 1507
1442#ifdef CONFIG_X86_32 1508#ifdef CONFIG_X86_32
1443#define PV_SAVE_REGS "pushl %%ecx; pushl %%edx;" 1509#define PV_SAVE_REGS "pushl %ecx; pushl %edx;"
1444#define PV_RESTORE_REGS "popl %%edx; popl %%ecx" 1510#define PV_RESTORE_REGS "popl %edx; popl %ecx;"
1511
1512/* save and restore all caller-save registers, except return value */
1513#define PV_SAVE_ALL_CALLER_REGS "pushl %ecx;"
1514#define PV_RESTORE_ALL_CALLER_REGS "popl %ecx;"
1515
1445#define PV_FLAGS_ARG "0" 1516#define PV_FLAGS_ARG "0"
1446#define PV_EXTRA_CLOBBERS 1517#define PV_EXTRA_CLOBBERS
1447#define PV_VEXTRA_CLOBBERS 1518#define PV_VEXTRA_CLOBBERS
1448#else 1519#else
1520/* save and restore all caller-save registers, except return value */
1521#define PV_SAVE_ALL_CALLER_REGS \
1522 "push %rcx;" \
1523 "push %rdx;" \
1524 "push %rsi;" \
1525 "push %rdi;" \
1526 "push %r8;" \
1527 "push %r9;" \
1528 "push %r10;" \
1529 "push %r11;"
1530#define PV_RESTORE_ALL_CALLER_REGS \
1531 "pop %r11;" \
1532 "pop %r10;" \
1533 "pop %r9;" \
1534 "pop %r8;" \
1535 "pop %rdi;" \
1536 "pop %rsi;" \
1537 "pop %rdx;" \
1538 "pop %rcx;"
1539
1449/* We save some registers, but all of them, that's too much. We clobber all 1540/* We save some registers, but all of them, that's too much. We clobber all
1450 * caller saved registers but the argument parameter */ 1541 * caller saved registers but the argument parameter */
1451#define PV_SAVE_REGS "pushq %%rdi;" 1542#define PV_SAVE_REGS "pushq %%rdi;"
@@ -1455,52 +1546,76 @@ extern struct paravirt_patch_site __parainstructions[],
1455#define PV_FLAGS_ARG "D" 1546#define PV_FLAGS_ARG "D"
1456#endif 1547#endif
1457 1548
1549/*
1550 * Generate a thunk around a function which saves all caller-save
1551 * registers except for the return value. This allows C functions to
1552 * be called from assembler code where fewer than normal registers are
1553 * available. It may also help code generation around calls from C
1554 * code if the common case doesn't use many registers.
1555 *
1556 * When a callee is wrapped in a thunk, the caller can assume that all
1557 * arg regs and all scratch registers are preserved across the
1558 * call. The return value in rax/eax will not be saved, even for void
1559 * functions.
1560 */
1561#define PV_CALLEE_SAVE_REGS_THUNK(func) \
1562 extern typeof(func) __raw_callee_save_##func; \
1563 static void *__##func##__ __used = func; \
1564 \
1565 asm(".pushsection .text;" \
1566 "__raw_callee_save_" #func ": " \
1567 PV_SAVE_ALL_CALLER_REGS \
1568 "call " #func ";" \
1569 PV_RESTORE_ALL_CALLER_REGS \
1570 "ret;" \
1571 ".popsection")
1572
1573/* Get a reference to a callee-save function */
1574#define PV_CALLEE_SAVE(func) \
1575 ((struct paravirt_callee_save) { __raw_callee_save_##func })
1576
1577/* Promise that "func" already uses the right calling convention */
1578#define __PV_IS_CALLEE_SAVE(func) \
1579 ((struct paravirt_callee_save) { func })
1580
1458static inline unsigned long __raw_local_save_flags(void) 1581static inline unsigned long __raw_local_save_flags(void)
1459{ 1582{
1460 unsigned long f; 1583 unsigned long f;
1461 1584
1462 asm volatile(paravirt_alt(PV_SAVE_REGS 1585 asm volatile(paravirt_alt(PARAVIRT_CALL)
1463 PARAVIRT_CALL
1464 PV_RESTORE_REGS)
1465 : "=a"(f) 1586 : "=a"(f)
1466 : paravirt_type(pv_irq_ops.save_fl), 1587 : paravirt_type(pv_irq_ops.save_fl),
1467 paravirt_clobber(CLBR_EAX) 1588 paravirt_clobber(CLBR_EAX)
1468 : "memory", "cc" PV_VEXTRA_CLOBBERS); 1589 : "memory", "cc");
1469 return f; 1590 return f;
1470} 1591}
1471 1592
1472static inline void raw_local_irq_restore(unsigned long f) 1593static inline void raw_local_irq_restore(unsigned long f)
1473{ 1594{
1474 asm volatile(paravirt_alt(PV_SAVE_REGS 1595 asm volatile(paravirt_alt(PARAVIRT_CALL)
1475 PARAVIRT_CALL
1476 PV_RESTORE_REGS)
1477 : "=a"(f) 1596 : "=a"(f)
1478 : PV_FLAGS_ARG(f), 1597 : PV_FLAGS_ARG(f),
1479 paravirt_type(pv_irq_ops.restore_fl), 1598 paravirt_type(pv_irq_ops.restore_fl),
1480 paravirt_clobber(CLBR_EAX) 1599 paravirt_clobber(CLBR_EAX)
1481 : "memory", "cc" PV_EXTRA_CLOBBERS); 1600 : "memory", "cc");
1482} 1601}
1483 1602
1484static inline void raw_local_irq_disable(void) 1603static inline void raw_local_irq_disable(void)
1485{ 1604{
1486 asm volatile(paravirt_alt(PV_SAVE_REGS 1605 asm volatile(paravirt_alt(PARAVIRT_CALL)
1487 PARAVIRT_CALL
1488 PV_RESTORE_REGS)
1489 : 1606 :
1490 : paravirt_type(pv_irq_ops.irq_disable), 1607 : paravirt_type(pv_irq_ops.irq_disable),
1491 paravirt_clobber(CLBR_EAX) 1608 paravirt_clobber(CLBR_EAX)
1492 : "memory", "eax", "cc" PV_EXTRA_CLOBBERS); 1609 : "memory", "eax", "cc");
1493} 1610}
1494 1611
1495static inline void raw_local_irq_enable(void) 1612static inline void raw_local_irq_enable(void)
1496{ 1613{
1497 asm volatile(paravirt_alt(PV_SAVE_REGS 1614 asm volatile(paravirt_alt(PARAVIRT_CALL)
1498 PARAVIRT_CALL
1499 PV_RESTORE_REGS)
1500 : 1615 :
1501 : paravirt_type(pv_irq_ops.irq_enable), 1616 : paravirt_type(pv_irq_ops.irq_enable),
1502 paravirt_clobber(CLBR_EAX) 1617 paravirt_clobber(CLBR_EAX)
1503 : "memory", "eax", "cc" PV_EXTRA_CLOBBERS); 1618 : "memory", "eax", "cc");
1504} 1619}
1505 1620
1506static inline unsigned long __raw_local_irq_save(void) 1621static inline unsigned long __raw_local_irq_save(void)
@@ -1543,33 +1658,49 @@ static inline unsigned long __raw_local_irq_save(void)
1543 .popsection 1658 .popsection
1544 1659
1545 1660
1661#define COND_PUSH(set, mask, reg) \
1662 .if ((~(set)) & mask); push %reg; .endif
1663#define COND_POP(set, mask, reg) \
1664 .if ((~(set)) & mask); pop %reg; .endif
1665
1546#ifdef CONFIG_X86_64 1666#ifdef CONFIG_X86_64
1547#define PV_SAVE_REGS \ 1667
1548 push %rax; \ 1668#define PV_SAVE_REGS(set) \
1549 push %rcx; \ 1669 COND_PUSH(set, CLBR_RAX, rax); \
1550 push %rdx; \ 1670 COND_PUSH(set, CLBR_RCX, rcx); \
1551 push %rsi; \ 1671 COND_PUSH(set, CLBR_RDX, rdx); \
1552 push %rdi; \ 1672 COND_PUSH(set, CLBR_RSI, rsi); \
1553 push %r8; \ 1673 COND_PUSH(set, CLBR_RDI, rdi); \
1554 push %r9; \ 1674 COND_PUSH(set, CLBR_R8, r8); \
1555 push %r10; \ 1675 COND_PUSH(set, CLBR_R9, r9); \
1556 push %r11 1676 COND_PUSH(set, CLBR_R10, r10); \
1557#define PV_RESTORE_REGS \ 1677 COND_PUSH(set, CLBR_R11, r11)
1558 pop %r11; \ 1678#define PV_RESTORE_REGS(set) \
1559 pop %r10; \ 1679 COND_POP(set, CLBR_R11, r11); \
1560 pop %r9; \ 1680 COND_POP(set, CLBR_R10, r10); \
1561 pop %r8; \ 1681 COND_POP(set, CLBR_R9, r9); \
1562 pop %rdi; \ 1682 COND_POP(set, CLBR_R8, r8); \
1563 pop %rsi; \ 1683 COND_POP(set, CLBR_RDI, rdi); \
1564 pop %rdx; \ 1684 COND_POP(set, CLBR_RSI, rsi); \
1565 pop %rcx; \ 1685 COND_POP(set, CLBR_RDX, rdx); \
1566 pop %rax 1686 COND_POP(set, CLBR_RCX, rcx); \
1687 COND_POP(set, CLBR_RAX, rax)
1688
1567#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 8) 1689#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 8)
1568#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .quad, 8) 1690#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .quad, 8)
1569#define PARA_INDIRECT(addr) *addr(%rip) 1691#define PARA_INDIRECT(addr) *addr(%rip)
1570#else 1692#else
1571#define PV_SAVE_REGS pushl %eax; pushl %edi; pushl %ecx; pushl %edx 1693#define PV_SAVE_REGS(set) \
1572#define PV_RESTORE_REGS popl %edx; popl %ecx; popl %edi; popl %eax 1694 COND_PUSH(set, CLBR_EAX, eax); \
1695 COND_PUSH(set, CLBR_EDI, edi); \
1696 COND_PUSH(set, CLBR_ECX, ecx); \
1697 COND_PUSH(set, CLBR_EDX, edx)
1698#define PV_RESTORE_REGS(set) \
1699 COND_POP(set, CLBR_EDX, edx); \
1700 COND_POP(set, CLBR_ECX, ecx); \
1701 COND_POP(set, CLBR_EDI, edi); \
1702 COND_POP(set, CLBR_EAX, eax)
1703
1573#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4) 1704#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
1574#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4) 1705#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
1575#define PARA_INDIRECT(addr) *%cs:addr 1706#define PARA_INDIRECT(addr) *%cs:addr
@@ -1581,15 +1712,15 @@ static inline unsigned long __raw_local_irq_save(void)
1581 1712
1582#define DISABLE_INTERRUPTS(clobbers) \ 1713#define DISABLE_INTERRUPTS(clobbers) \
1583 PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_disable), clobbers, \ 1714 PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_disable), clobbers, \
1584 PV_SAVE_REGS; \ 1715 PV_SAVE_REGS(clobbers | CLBR_CALLEE_SAVE); \
1585 call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_disable); \ 1716 call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_disable); \
1586 PV_RESTORE_REGS;) \ 1717 PV_RESTORE_REGS(clobbers | CLBR_CALLEE_SAVE);)
1587 1718
1588#define ENABLE_INTERRUPTS(clobbers) \ 1719#define ENABLE_INTERRUPTS(clobbers) \
1589 PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_enable), clobbers, \ 1720 PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_enable), clobbers, \
1590 PV_SAVE_REGS; \ 1721 PV_SAVE_REGS(clobbers | CLBR_CALLEE_SAVE); \
1591 call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_enable); \ 1722 call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_enable); \
1592 PV_RESTORE_REGS;) 1723 PV_RESTORE_REGS(clobbers | CLBR_CALLEE_SAVE);)
1593 1724
1594#define USERGS_SYSRET32 \ 1725#define USERGS_SYSRET32 \
1595 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret32), \ 1726 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret32), \
@@ -1619,11 +1750,15 @@ static inline unsigned long __raw_local_irq_save(void)
1619 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \ 1750 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \
1620 swapgs) 1751 swapgs)
1621 1752
1753/*
1754 * Note: swapgs is very special, and in practise is either going to be
1755 * implemented with a single "swapgs" instruction or something very
1756 * special. Either way, we don't need to save any registers for
1757 * it.
1758 */
1622#define SWAPGS \ 1759#define SWAPGS \
1623 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \ 1760 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \
1624 PV_SAVE_REGS; \ 1761 call PARA_INDIRECT(pv_cpu_ops+PV_CPU_swapgs) \
1625 call PARA_INDIRECT(pv_cpu_ops+PV_CPU_swapgs); \
1626 PV_RESTORE_REGS \
1627 ) 1762 )
1628 1763
1629#define GET_CR2_INTO_RCX \ 1764#define GET_CR2_INTO_RCX \
diff --git a/arch/x86/include/asm/pat.h b/arch/x86/include/asm/pat.h
index b8493b3b9890..2cd07b9422f4 100644
--- a/arch/x86/include/asm/pat.h
+++ b/arch/x86/include/asm/pat.h
@@ -2,13 +2,12 @@
2#define _ASM_X86_PAT_H 2#define _ASM_X86_PAT_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <asm/pgtable_types.h>
5 6
6#ifdef CONFIG_X86_PAT 7#ifdef CONFIG_X86_PAT
7extern int pat_enabled; 8extern int pat_enabled;
8extern void validate_pat_support(struct cpuinfo_x86 *c);
9#else 9#else
10static const int pat_enabled; 10static const int pat_enabled;
11static inline void validate_pat_support(struct cpuinfo_x86 *c) { }
12#endif 11#endif
13 12
14extern void pat_init(void); 13extern void pat_init(void);
@@ -17,6 +16,11 @@ extern int reserve_memtype(u64 start, u64 end,
17 unsigned long req_type, unsigned long *ret_type); 16 unsigned long req_type, unsigned long *ret_type);
18extern int free_memtype(u64 start, u64 end); 17extern int free_memtype(u64 start, u64 end);
19 18
20extern void pat_disable(char *reason); 19extern int kernel_map_sync_memtype(u64 base, unsigned long size,
20 unsigned long flag);
21extern void map_devmem(unsigned long pfn, unsigned long size,
22 struct pgprot vma_prot);
23extern void unmap_devmem(unsigned long pfn, unsigned long size,
24 struct pgprot vma_prot);
21 25
22#endif /* _ASM_X86_PAT_H */ 26#endif /* _ASM_X86_PAT_H */
diff --git a/arch/x86/include/asm/mach-default/pci-functions.h b/arch/x86/include/asm/pci-functions.h
index ed0bab427354..ed0bab427354 100644
--- a/arch/x86/include/asm/mach-default/pci-functions.h
+++ b/arch/x86/include/asm/pci-functions.h
diff --git a/arch/x86/include/asm/pda.h b/arch/x86/include/asm/pda.h
deleted file mode 100644
index 2fbfff88df37..000000000000
--- a/arch/x86/include/asm/pda.h
+++ /dev/null
@@ -1,137 +0,0 @@
1#ifndef _ASM_X86_PDA_H
2#define _ASM_X86_PDA_H
3
4#ifndef __ASSEMBLY__
5#include <linux/stddef.h>
6#include <linux/types.h>
7#include <linux/cache.h>
8#include <asm/page.h>
9
10/* Per processor datastructure. %gs points to it while the kernel runs */
11struct x8664_pda {
12 struct task_struct *pcurrent; /* 0 Current process */
13 unsigned long data_offset; /* 8 Per cpu data offset from linker
14 address */
15 unsigned long kernelstack; /* 16 top of kernel stack for current */
16 unsigned long oldrsp; /* 24 user rsp for system call */
17 int irqcount; /* 32 Irq nesting counter. Starts -1 */
18 unsigned int cpunumber; /* 36 Logical CPU number */
19#ifdef CONFIG_CC_STACKPROTECTOR
20 unsigned long stack_canary; /* 40 stack canary value */
21 /* gcc-ABI: this canary MUST be at
22 offset 40!!! */
23#endif
24 char *irqstackptr;
25 short nodenumber; /* number of current node (32k max) */
26 short in_bootmem; /* pda lives in bootmem */
27 unsigned int __softirq_pending;
28 unsigned int __nmi_count; /* number of NMI on this CPUs */
29 short mmu_state;
30 short isidle;
31 struct mm_struct *active_mm;
32 unsigned apic_timer_irqs;
33 unsigned irq0_irqs;
34 unsigned irq_resched_count;
35 unsigned irq_call_count;
36 unsigned irq_tlb_count;
37 unsigned irq_thermal_count;
38 unsigned irq_threshold_count;
39 unsigned irq_spurious_count;
40} ____cacheline_aligned_in_smp;
41
42extern struct x8664_pda **_cpu_pda;
43extern void pda_init(int);
44
45#define cpu_pda(i) (_cpu_pda[i])
46
47/*
48 * There is no fast way to get the base address of the PDA, all the accesses
49 * have to mention %fs/%gs. So it needs to be done this Torvaldian way.
50 */
51extern void __bad_pda_field(void) __attribute__((noreturn));
52
53/*
54 * proxy_pda doesn't actually exist, but tell gcc it is accessed for
55 * all PDA accesses so it gets read/write dependencies right.
56 */
57extern struct x8664_pda _proxy_pda;
58
59#define pda_offset(field) offsetof(struct x8664_pda, field)
60
61#define pda_to_op(op, field, val) \
62do { \
63 typedef typeof(_proxy_pda.field) T__; \
64 if (0) { T__ tmp__; tmp__ = (val); } /* type checking */ \
65 switch (sizeof(_proxy_pda.field)) { \
66 case 2: \
67 asm(op "w %1,%%gs:%c2" : \
68 "+m" (_proxy_pda.field) : \
69 "ri" ((T__)val), \
70 "i"(pda_offset(field))); \
71 break; \
72 case 4: \
73 asm(op "l %1,%%gs:%c2" : \
74 "+m" (_proxy_pda.field) : \
75 "ri" ((T__)val), \
76 "i" (pda_offset(field))); \
77 break; \
78 case 8: \
79 asm(op "q %1,%%gs:%c2": \
80 "+m" (_proxy_pda.field) : \
81 "ri" ((T__)val), \
82 "i"(pda_offset(field))); \
83 break; \
84 default: \
85 __bad_pda_field(); \
86 } \
87} while (0)
88
89#define pda_from_op(op, field) \
90({ \
91 typeof(_proxy_pda.field) ret__; \
92 switch (sizeof(_proxy_pda.field)) { \
93 case 2: \
94 asm(op "w %%gs:%c1,%0" : \
95 "=r" (ret__) : \
96 "i" (pda_offset(field)), \
97 "m" (_proxy_pda.field)); \
98 break; \
99 case 4: \
100 asm(op "l %%gs:%c1,%0": \
101 "=r" (ret__): \
102 "i" (pda_offset(field)), \
103 "m" (_proxy_pda.field)); \
104 break; \
105 case 8: \
106 asm(op "q %%gs:%c1,%0": \
107 "=r" (ret__) : \
108 "i" (pda_offset(field)), \
109 "m" (_proxy_pda.field)); \
110 break; \
111 default: \
112 __bad_pda_field(); \
113 } \
114 ret__; \
115})
116
117#define read_pda(field) pda_from_op("mov", field)
118#define write_pda(field, val) pda_to_op("mov", field, val)
119#define add_pda(field, val) pda_to_op("add", field, val)
120#define sub_pda(field, val) pda_to_op("sub", field, val)
121#define or_pda(field, val) pda_to_op("or", field, val)
122
123/* This is not atomic against other CPUs -- CPU preemption needs to be off */
124#define test_and_clear_bit_pda(bit, field) \
125({ \
126 int old__; \
127 asm volatile("btr %2,%%gs:%c3\n\tsbbl %0,%0" \
128 : "=r" (old__), "+m" (_proxy_pda.field) \
129 : "dIr" (bit), "i" (pda_offset(field)) : "memory");\
130 old__; \
131})
132
133#endif
134
135#define PDA_STACKOFFSET (5*8)
136
137#endif /* _ASM_X86_PDA_H */
diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h
index ece72053ba63..8f1d2fbec1d4 100644
--- a/arch/x86/include/asm/percpu.h
+++ b/arch/x86/include/asm/percpu.h
@@ -2,53 +2,12 @@
2#define _ASM_X86_PERCPU_H 2#define _ASM_X86_PERCPU_H
3 3
4#ifdef CONFIG_X86_64 4#ifdef CONFIG_X86_64
5#include <linux/compiler.h> 5#define __percpu_seg gs
6 6#define __percpu_mov_op movq
7/* Same as asm-generic/percpu.h, except that we store the per cpu offset 7#else
8 in the PDA. Longer term the PDA and every per cpu variable 8#define __percpu_seg fs
9 should be just put into a single section and referenced directly 9#define __percpu_mov_op movl
10 from %gs */
11
12#ifdef CONFIG_SMP
13#include <asm/pda.h>
14
15#define __per_cpu_offset(cpu) (cpu_pda(cpu)->data_offset)
16#define __my_cpu_offset read_pda(data_offset)
17
18#define per_cpu_offset(x) (__per_cpu_offset(x))
19
20#endif 10#endif
21#include <asm-generic/percpu.h>
22
23DECLARE_PER_CPU(struct x8664_pda, pda);
24
25/*
26 * These are supposed to be implemented as a single instruction which
27 * operates on the per-cpu data base segment. x86-64 doesn't have
28 * that yet, so this is a fairly inefficient workaround for the
29 * meantime. The single instruction is atomic with respect to
30 * preemption and interrupts, so we need to explicitly disable
31 * interrupts here to achieve the same effect. However, because it
32 * can be used from within interrupt-disable/enable, we can't actually
33 * disable interrupts; disabling preemption is enough.
34 */
35#define x86_read_percpu(var) \
36 ({ \
37 typeof(per_cpu_var(var)) __tmp; \
38 preempt_disable(); \
39 __tmp = __get_cpu_var(var); \
40 preempt_enable(); \
41 __tmp; \
42 })
43
44#define x86_write_percpu(var, val) \
45 do { \
46 preempt_disable(); \
47 __get_cpu_var(var) = (val); \
48 preempt_enable(); \
49 } while(0)
50
51#else /* CONFIG_X86_64 */
52 11
53#ifdef __ASSEMBLY__ 12#ifdef __ASSEMBLY__
54 13
@@ -65,47 +24,56 @@ DECLARE_PER_CPU(struct x8664_pda, pda);
65 * PER_CPU(cpu_gdt_descr, %ebx) 24 * PER_CPU(cpu_gdt_descr, %ebx)
66 */ 25 */
67#ifdef CONFIG_SMP 26#ifdef CONFIG_SMP
68#define PER_CPU(var, reg) \ 27#define PER_CPU(var, reg) \
69 movl %fs:per_cpu__##this_cpu_off, reg; \ 28 __percpu_mov_op %__percpu_seg:per_cpu__this_cpu_off, reg; \
70 lea per_cpu__##var(reg), reg 29 lea per_cpu__##var(reg), reg
71#define PER_CPU_VAR(var) %fs:per_cpu__##var 30#define PER_CPU_VAR(var) %__percpu_seg:per_cpu__##var
72#else /* ! SMP */ 31#else /* ! SMP */
73#define PER_CPU(var, reg) \ 32#define PER_CPU(var, reg) \
74 movl $per_cpu__##var, reg 33 __percpu_mov_op $per_cpu__##var, reg
75#define PER_CPU_VAR(var) per_cpu__##var 34#define PER_CPU_VAR(var) per_cpu__##var
76#endif /* SMP */ 35#endif /* SMP */
77 36
78#else /* ...!ASSEMBLY */ 37#ifdef CONFIG_X86_64_SMP
79 38#define INIT_PER_CPU_VAR(var) init_per_cpu__##var
80/* 39#else
81 * PER_CPU finds an address of a per-cpu variable. 40#define INIT_PER_CPU_VAR(var) per_cpu__##var
82 * 41#endif
83 * Args:
84 * var - variable name
85 * cpu - 32bit register containing the current CPU number
86 *
87 * The resulting address is stored in the "cpu" argument.
88 *
89 * Example:
90 * PER_CPU(cpu_gdt_descr, %ebx)
91 */
92#ifdef CONFIG_SMP
93
94#define __my_cpu_offset x86_read_percpu(this_cpu_off)
95 42
96/* fs segment starts at (positive) offset == __per_cpu_offset[cpu] */ 43#else /* ...!ASSEMBLY */
97#define __percpu_seg "%%fs:"
98 44
99#else /* !SMP */ 45#include <linux/stringify.h>
46#include <asm/sections.h>
100 47
101#define __percpu_seg "" 48#define __addr_to_pcpu_ptr(addr) \
49 (void *)((unsigned long)(addr) - (unsigned long)pcpu_base_addr \
50 + (unsigned long)__per_cpu_start)
51#define __pcpu_ptr_to_addr(ptr) \
52 (void *)((unsigned long)(ptr) + (unsigned long)pcpu_base_addr \
53 - (unsigned long)__per_cpu_start)
102 54
103#endif /* SMP */ 55#ifdef CONFIG_SMP
56#define __percpu_arg(x) "%%"__stringify(__percpu_seg)":%P" #x
57#define __my_cpu_offset percpu_read(this_cpu_off)
58#else
59#define __percpu_arg(x) "%" #x
60#endif
104 61
105#include <asm-generic/percpu.h> 62/*
63 * Initialized pointers to per-cpu variables needed for the boot
64 * processor need to use these macros to get the proper address
65 * offset from __per_cpu_load on SMP.
66 *
67 * There also must be an entry in vmlinux_64.lds.S
68 */
69#define DECLARE_INIT_PER_CPU(var) \
70 extern typeof(per_cpu_var(var)) init_per_cpu_var(var)
106 71
107/* We can use this directly for local CPU (faster). */ 72#ifdef CONFIG_X86_64_SMP
108DECLARE_PER_CPU(unsigned long, this_cpu_off); 73#define init_per_cpu_var(var) init_per_cpu__##var
74#else
75#define init_per_cpu_var(var) per_cpu_var(var)
76#endif
109 77
110/* For arch-specific code, we can use direct single-insn ops (they 78/* For arch-specific code, we can use direct single-insn ops (they
111 * don't give an lvalue though). */ 79 * don't give an lvalue though). */
@@ -120,20 +88,25 @@ do { \
120 } \ 88 } \
121 switch (sizeof(var)) { \ 89 switch (sizeof(var)) { \
122 case 1: \ 90 case 1: \
123 asm(op "b %1,"__percpu_seg"%0" \ 91 asm(op "b %1,"__percpu_arg(0) \
124 : "+m" (var) \ 92 : "+m" (var) \
125 : "ri" ((T__)val)); \ 93 : "ri" ((T__)val)); \
126 break; \ 94 break; \
127 case 2: \ 95 case 2: \
128 asm(op "w %1,"__percpu_seg"%0" \ 96 asm(op "w %1,"__percpu_arg(0) \
129 : "+m" (var) \ 97 : "+m" (var) \
130 : "ri" ((T__)val)); \ 98 : "ri" ((T__)val)); \
131 break; \ 99 break; \
132 case 4: \ 100 case 4: \
133 asm(op "l %1,"__percpu_seg"%0" \ 101 asm(op "l %1,"__percpu_arg(0) \
134 : "+m" (var) \ 102 : "+m" (var) \
135 : "ri" ((T__)val)); \ 103 : "ri" ((T__)val)); \
136 break; \ 104 break; \
105 case 8: \
106 asm(op "q %1,"__percpu_arg(0) \
107 : "+m" (var) \
108 : "re" ((T__)val)); \
109 break; \
137 default: __bad_percpu_size(); \ 110 default: __bad_percpu_size(); \
138 } \ 111 } \
139} while (0) 112} while (0)
@@ -143,17 +116,22 @@ do { \
143 typeof(var) ret__; \ 116 typeof(var) ret__; \
144 switch (sizeof(var)) { \ 117 switch (sizeof(var)) { \
145 case 1: \ 118 case 1: \
146 asm(op "b "__percpu_seg"%1,%0" \ 119 asm(op "b "__percpu_arg(1)",%0" \
147 : "=r" (ret__) \ 120 : "=r" (ret__) \
148 : "m" (var)); \ 121 : "m" (var)); \
149 break; \ 122 break; \
150 case 2: \ 123 case 2: \
151 asm(op "w "__percpu_seg"%1,%0" \ 124 asm(op "w "__percpu_arg(1)",%0" \
152 : "=r" (ret__) \ 125 : "=r" (ret__) \
153 : "m" (var)); \ 126 : "m" (var)); \
154 break; \ 127 break; \
155 case 4: \ 128 case 4: \
156 asm(op "l "__percpu_seg"%1,%0" \ 129 asm(op "l "__percpu_arg(1)",%0" \
130 : "=r" (ret__) \
131 : "m" (var)); \
132 break; \
133 case 8: \
134 asm(op "q "__percpu_arg(1)",%0" \
157 : "=r" (ret__) \ 135 : "=r" (ret__) \
158 : "m" (var)); \ 136 : "m" (var)); \
159 break; \ 137 break; \
@@ -162,13 +140,30 @@ do { \
162 ret__; \ 140 ret__; \
163}) 141})
164 142
165#define x86_read_percpu(var) percpu_from_op("mov", per_cpu__##var) 143#define percpu_read(var) percpu_from_op("mov", per_cpu__##var)
166#define x86_write_percpu(var, val) percpu_to_op("mov", per_cpu__##var, val) 144#define percpu_write(var, val) percpu_to_op("mov", per_cpu__##var, val)
167#define x86_add_percpu(var, val) percpu_to_op("add", per_cpu__##var, val) 145#define percpu_add(var, val) percpu_to_op("add", per_cpu__##var, val)
168#define x86_sub_percpu(var, val) percpu_to_op("sub", per_cpu__##var, val) 146#define percpu_sub(var, val) percpu_to_op("sub", per_cpu__##var, val)
169#define x86_or_percpu(var, val) percpu_to_op("or", per_cpu__##var, val) 147#define percpu_and(var, val) percpu_to_op("and", per_cpu__##var, val)
148#define percpu_or(var, val) percpu_to_op("or", per_cpu__##var, val)
149#define percpu_xor(var, val) percpu_to_op("xor", per_cpu__##var, val)
150
151/* This is not atomic against other CPUs -- CPU preemption needs to be off */
152#define x86_test_and_clear_bit_percpu(bit, var) \
153({ \
154 int old__; \
155 asm volatile("btr %2,"__percpu_arg(1)"\n\tsbbl %0,%0" \
156 : "=r" (old__), "+m" (per_cpu__##var) \
157 : "dIr" (bit)); \
158 old__; \
159})
160
161#include <asm-generic/percpu.h>
162
163/* We can use this directly for local CPU (faster). */
164DECLARE_PER_CPU(unsigned long, this_cpu_off);
165
170#endif /* !__ASSEMBLY__ */ 166#endif /* !__ASSEMBLY__ */
171#endif /* !CONFIG_X86_64 */
172 167
173#ifdef CONFIG_SMP 168#ifdef CONFIG_SMP
174 169
@@ -195,9 +190,9 @@ do { \
195#define early_per_cpu_ptr(_name) (_name##_early_ptr) 190#define early_per_cpu_ptr(_name) (_name##_early_ptr)
196#define early_per_cpu_map(_name, _idx) (_name##_early_map[_idx]) 191#define early_per_cpu_map(_name, _idx) (_name##_early_map[_idx])
197#define early_per_cpu(_name, _cpu) \ 192#define early_per_cpu(_name, _cpu) \
198 (early_per_cpu_ptr(_name) ? \ 193 *(early_per_cpu_ptr(_name) ? \
199 early_per_cpu_ptr(_name)[_cpu] : \ 194 &early_per_cpu_ptr(_name)[_cpu] : \
200 per_cpu(_name, _cpu)) 195 &per_cpu(_name, _cpu))
201 196
202#else /* !CONFIG_SMP */ 197#else /* !CONFIG_SMP */
203#define DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) \ 198#define DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) \
diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
index cb7c151a8bff..dd14c54ac718 100644
--- a/arch/x86/include/asm/pgalloc.h
+++ b/arch/x86/include/asm/pgalloc.h
@@ -42,6 +42,7 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
42 42
43static inline void pte_free(struct mm_struct *mm, struct page *pte) 43static inline void pte_free(struct mm_struct *mm, struct page *pte)
44{ 44{
45 pgtable_page_dtor(pte);
45 __free_page(pte); 46 __free_page(pte);
46} 47}
47 48
diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h
index e0d199fe1d83..c1774ac9da7a 100644
--- a/arch/x86/include/asm/pgtable-2level.h
+++ b/arch/x86/include/asm/pgtable-2level.h
@@ -53,8 +53,6 @@ static inline pte_t native_ptep_get_and_clear(pte_t *xp)
53#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp) 53#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp)
54#endif 54#endif
55 55
56#define pte_none(x) (!(x).pte_low)
57
58/* 56/*
59 * Bits _PAGE_BIT_PRESENT, _PAGE_BIT_FILE and _PAGE_BIT_PROTNONE are taken, 57 * Bits _PAGE_BIT_PRESENT, _PAGE_BIT_FILE and _PAGE_BIT_PROTNONE are taken,
60 * split up the 29 bits of offset into this range: 58 * split up the 29 bits of offset into this range:
diff --git a/arch/x86/include/asm/pgtable-2level-defs.h b/arch/x86/include/asm/pgtable-2level_types.h
index d77db8990eaa..daacc23e3fb9 100644
--- a/arch/x86/include/asm/pgtable-2level-defs.h
+++ b/arch/x86/include/asm/pgtable-2level_types.h
@@ -1,7 +1,23 @@
1#ifndef _ASM_X86_PGTABLE_2LEVEL_DEFS_H 1#ifndef _ASM_X86_PGTABLE_2LEVEL_DEFS_H
2#define _ASM_X86_PGTABLE_2LEVEL_DEFS_H 2#define _ASM_X86_PGTABLE_2LEVEL_DEFS_H
3 3
4#ifndef __ASSEMBLY__
5#include <linux/types.h>
6
7typedef unsigned long pteval_t;
8typedef unsigned long pmdval_t;
9typedef unsigned long pudval_t;
10typedef unsigned long pgdval_t;
11typedef unsigned long pgprotval_t;
12
13typedef union {
14 pteval_t pte;
15 pteval_t pte_low;
16} pte_t;
17#endif /* !__ASSEMBLY__ */
18
4#define SHARED_KERNEL_PMD 0 19#define SHARED_KERNEL_PMD 0
20#define PAGETABLE_LEVELS 2
5 21
6/* 22/*
7 * traditional i386 two-level paging structure: 23 * traditional i386 two-level paging structure:
@@ -10,6 +26,7 @@
10#define PGDIR_SHIFT 22 26#define PGDIR_SHIFT 22
11#define PTRS_PER_PGD 1024 27#define PTRS_PER_PGD 1024
12 28
29
13/* 30/*
14 * the i386 is two-level, so we don't really have any 31 * the i386 is two-level, so we don't really have any
15 * PMD directory physically. 32 * PMD directory physically.
diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
index 447da43cddb3..3f13cdf61156 100644
--- a/arch/x86/include/asm/pgtable-3level.h
+++ b/arch/x86/include/asm/pgtable-3level.h
@@ -18,21 +18,6 @@
18 printk("%s:%d: bad pgd %p(%016Lx).\n", \ 18 printk("%s:%d: bad pgd %p(%016Lx).\n", \
19 __FILE__, __LINE__, &(e), pgd_val(e)) 19 __FILE__, __LINE__, &(e), pgd_val(e))
20 20
21static inline int pud_none(pud_t pud)
22{
23 return pud_val(pud) == 0;
24}
25
26static inline int pud_bad(pud_t pud)
27{
28 return (pud_val(pud) & ~(PTE_PFN_MASK | _KERNPG_TABLE | _PAGE_USER)) != 0;
29}
30
31static inline int pud_present(pud_t pud)
32{
33 return pud_val(pud) & _PAGE_PRESENT;
34}
35
36/* Rules for using set_pte: the pte being assigned *must* be 21/* Rules for using set_pte: the pte being assigned *must* be
37 * either not present or in a state where the hardware will 22 * either not present or in a state where the hardware will
38 * not attempt to update the pte. In places where this is 23 * not attempt to update the pte. In places where this is
@@ -120,15 +105,6 @@ static inline void pud_clear(pud_t *pudp)
120 write_cr3(pgd); 105 write_cr3(pgd);
121} 106}
122 107
123#define pud_page(pud) pfn_to_page(pud_val(pud) >> PAGE_SHIFT)
124
125#define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & PTE_PFN_MASK))
126
127
128/* Find an entry in the second-level page table.. */
129#define pmd_offset(pud, address) ((pmd_t *)pud_page_vaddr(*(pud)) + \
130 pmd_index(address))
131
132#ifdef CONFIG_SMP 108#ifdef CONFIG_SMP
133static inline pte_t native_ptep_get_and_clear(pte_t *ptep) 109static inline pte_t native_ptep_get_and_clear(pte_t *ptep)
134{ 110{
@@ -145,17 +121,6 @@ static inline pte_t native_ptep_get_and_clear(pte_t *ptep)
145#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp) 121#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp)
146#endif 122#endif
147 123
148#define __HAVE_ARCH_PTE_SAME
149static inline int pte_same(pte_t a, pte_t b)
150{
151 return a.pte_low == b.pte_low && a.pte_high == b.pte_high;
152}
153
154static inline int pte_none(pte_t pte)
155{
156 return !pte.pte_low && !pte.pte_high;
157}
158
159/* 124/*
160 * Bits 0, 6 and 7 are taken in the low part of the pte, 125 * Bits 0, 6 and 7 are taken in the low part of the pte,
161 * put the 32 bits of offset into the high part. 126 * put the 32 bits of offset into the high part.
diff --git a/arch/x86/include/asm/pgtable-3level-defs.h b/arch/x86/include/asm/pgtable-3level_types.h
index 62561367653c..1bd5876c8649 100644
--- a/arch/x86/include/asm/pgtable-3level-defs.h
+++ b/arch/x86/include/asm/pgtable-3level_types.h
@@ -1,12 +1,31 @@
1#ifndef _ASM_X86_PGTABLE_3LEVEL_DEFS_H 1#ifndef _ASM_X86_PGTABLE_3LEVEL_DEFS_H
2#define _ASM_X86_PGTABLE_3LEVEL_DEFS_H 2#define _ASM_X86_PGTABLE_3LEVEL_DEFS_H
3 3
4#ifndef __ASSEMBLY__
5#include <linux/types.h>
6
7typedef u64 pteval_t;
8typedef u64 pmdval_t;
9typedef u64 pudval_t;
10typedef u64 pgdval_t;
11typedef u64 pgprotval_t;
12
13typedef union {
14 struct {
15 unsigned long pte_low, pte_high;
16 };
17 pteval_t pte;
18} pte_t;
19#endif /* !__ASSEMBLY__ */
20
4#ifdef CONFIG_PARAVIRT 21#ifdef CONFIG_PARAVIRT
5#define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd) 22#define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd)
6#else 23#else
7#define SHARED_KERNEL_PMD 1 24#define SHARED_KERNEL_PMD 1
8#endif 25#endif
9 26
27#define PAGETABLE_LEVELS 3
28
10/* 29/*
11 * PGDIR_SHIFT determines what a top-level page table entry can map 30 * PGDIR_SHIFT determines what a top-level page table entry can map
12 */ 31 */
@@ -25,4 +44,5 @@
25 */ 44 */
26#define PTRS_PER_PTE 512 45#define PTRS_PER_PTE 512
27 46
47
28#endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */ 48#endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 06bbcbd66e9c..d0812e155f1d 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -1,164 +1,9 @@
1#ifndef _ASM_X86_PGTABLE_H 1#ifndef _ASM_X86_PGTABLE_H
2#define _ASM_X86_PGTABLE_H 2#define _ASM_X86_PGTABLE_H
3 3
4#define FIRST_USER_ADDRESS 0 4#include <asm/page.h>
5
6#define _PAGE_BIT_PRESENT 0 /* is present */
7#define _PAGE_BIT_RW 1 /* writeable */
8#define _PAGE_BIT_USER 2 /* userspace addressable */
9#define _PAGE_BIT_PWT 3 /* page write through */
10#define _PAGE_BIT_PCD 4 /* page cache disabled */
11#define _PAGE_BIT_ACCESSED 5 /* was accessed (raised by CPU) */
12#define _PAGE_BIT_DIRTY 6 /* was written to (raised by CPU) */
13#define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
14#define _PAGE_BIT_PAT 7 /* on 4KB pages */
15#define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */
16#define _PAGE_BIT_UNUSED1 9 /* available for programmer */
17#define _PAGE_BIT_IOMAP 10 /* flag used to indicate IO mapping */
18#define _PAGE_BIT_UNUSED3 11
19#define _PAGE_BIT_PAT_LARGE 12 /* On 2MB or 1GB pages */
20#define _PAGE_BIT_SPECIAL _PAGE_BIT_UNUSED1
21#define _PAGE_BIT_CPA_TEST _PAGE_BIT_UNUSED1
22#define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */
23
24/* If _PAGE_BIT_PRESENT is clear, we use these: */
25/* - if the user mapped it with PROT_NONE; pte_present gives true */
26#define _PAGE_BIT_PROTNONE _PAGE_BIT_GLOBAL
27/* - set: nonlinear file mapping, saved PTE; unset:swap */
28#define _PAGE_BIT_FILE _PAGE_BIT_DIRTY
29
30#define _PAGE_PRESENT (_AT(pteval_t, 1) << _PAGE_BIT_PRESENT)
31#define _PAGE_RW (_AT(pteval_t, 1) << _PAGE_BIT_RW)
32#define _PAGE_USER (_AT(pteval_t, 1) << _PAGE_BIT_USER)
33#define _PAGE_PWT (_AT(pteval_t, 1) << _PAGE_BIT_PWT)
34#define _PAGE_PCD (_AT(pteval_t, 1) << _PAGE_BIT_PCD)
35#define _PAGE_ACCESSED (_AT(pteval_t, 1) << _PAGE_BIT_ACCESSED)
36#define _PAGE_DIRTY (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY)
37#define _PAGE_PSE (_AT(pteval_t, 1) << _PAGE_BIT_PSE)
38#define _PAGE_GLOBAL (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL)
39#define _PAGE_UNUSED1 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED1)
40#define _PAGE_IOMAP (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP)
41#define _PAGE_UNUSED3 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED3)
42#define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT)
43#define _PAGE_PAT_LARGE (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE)
44#define _PAGE_SPECIAL (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL)
45#define _PAGE_CPA_TEST (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST)
46#define __HAVE_ARCH_PTE_SPECIAL
47
48#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
49#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
50#else
51#define _PAGE_NX (_AT(pteval_t, 0))
52#endif
53 5
54#define _PAGE_FILE (_AT(pteval_t, 1) << _PAGE_BIT_FILE) 6#include <asm/pgtable_types.h>
55#define _PAGE_PROTNONE (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
56
57#define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
58 _PAGE_ACCESSED | _PAGE_DIRTY)
59#define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | \
60 _PAGE_DIRTY)
61
62/* Set of bits not changed in pte_modify */
63#define _PAGE_CHG_MASK (PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT | \
64 _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY)
65
66#define _PAGE_CACHE_MASK (_PAGE_PCD | _PAGE_PWT)
67#define _PAGE_CACHE_WB (0)
68#define _PAGE_CACHE_WC (_PAGE_PWT)
69#define _PAGE_CACHE_UC_MINUS (_PAGE_PCD)
70#define _PAGE_CACHE_UC (_PAGE_PCD | _PAGE_PWT)
71
72#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
73#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
74 _PAGE_ACCESSED | _PAGE_NX)
75
76#define PAGE_SHARED_EXEC __pgprot(_PAGE_PRESENT | _PAGE_RW | \
77 _PAGE_USER | _PAGE_ACCESSED)
78#define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
79 _PAGE_ACCESSED | _PAGE_NX)
80#define PAGE_COPY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
81 _PAGE_ACCESSED)
82#define PAGE_COPY PAGE_COPY_NOEXEC
83#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | \
84 _PAGE_ACCESSED | _PAGE_NX)
85#define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
86 _PAGE_ACCESSED)
87
88#define __PAGE_KERNEL_EXEC \
89 (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
90#define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
91
92#define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
93#define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
94#define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)
95#define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC)
96#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
97#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
98#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
99#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
100#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
101#define __PAGE_KERNEL_LARGE_NOCACHE (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE)
102#define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
103
104#define __PAGE_KERNEL_IO (__PAGE_KERNEL | _PAGE_IOMAP)
105#define __PAGE_KERNEL_IO_NOCACHE (__PAGE_KERNEL_NOCACHE | _PAGE_IOMAP)
106#define __PAGE_KERNEL_IO_UC_MINUS (__PAGE_KERNEL_UC_MINUS | _PAGE_IOMAP)
107#define __PAGE_KERNEL_IO_WC (__PAGE_KERNEL_WC | _PAGE_IOMAP)
108
109#define PAGE_KERNEL __pgprot(__PAGE_KERNEL)
110#define PAGE_KERNEL_RO __pgprot(__PAGE_KERNEL_RO)
111#define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC)
112#define PAGE_KERNEL_RX __pgprot(__PAGE_KERNEL_RX)
113#define PAGE_KERNEL_WC __pgprot(__PAGE_KERNEL_WC)
114#define PAGE_KERNEL_NOCACHE __pgprot(__PAGE_KERNEL_NOCACHE)
115#define PAGE_KERNEL_UC_MINUS __pgprot(__PAGE_KERNEL_UC_MINUS)
116#define PAGE_KERNEL_EXEC_NOCACHE __pgprot(__PAGE_KERNEL_EXEC_NOCACHE)
117#define PAGE_KERNEL_LARGE __pgprot(__PAGE_KERNEL_LARGE)
118#define PAGE_KERNEL_LARGE_NOCACHE __pgprot(__PAGE_KERNEL_LARGE_NOCACHE)
119#define PAGE_KERNEL_LARGE_EXEC __pgprot(__PAGE_KERNEL_LARGE_EXEC)
120#define PAGE_KERNEL_VSYSCALL __pgprot(__PAGE_KERNEL_VSYSCALL)
121#define PAGE_KERNEL_VSYSCALL_NOCACHE __pgprot(__PAGE_KERNEL_VSYSCALL_NOCACHE)
122
123#define PAGE_KERNEL_IO __pgprot(__PAGE_KERNEL_IO)
124#define PAGE_KERNEL_IO_NOCACHE __pgprot(__PAGE_KERNEL_IO_NOCACHE)
125#define PAGE_KERNEL_IO_UC_MINUS __pgprot(__PAGE_KERNEL_IO_UC_MINUS)
126#define PAGE_KERNEL_IO_WC __pgprot(__PAGE_KERNEL_IO_WC)
127
128/* xwr */
129#define __P000 PAGE_NONE
130#define __P001 PAGE_READONLY
131#define __P010 PAGE_COPY
132#define __P011 PAGE_COPY
133#define __P100 PAGE_READONLY_EXEC
134#define __P101 PAGE_READONLY_EXEC
135#define __P110 PAGE_COPY_EXEC
136#define __P111 PAGE_COPY_EXEC
137
138#define __S000 PAGE_NONE
139#define __S001 PAGE_READONLY
140#define __S010 PAGE_SHARED
141#define __S011 PAGE_SHARED
142#define __S100 PAGE_READONLY_EXEC
143#define __S101 PAGE_READONLY_EXEC
144#define __S110 PAGE_SHARED_EXEC
145#define __S111 PAGE_SHARED_EXEC
146
147/*
148 * early identity mapping pte attrib macros.
149 */
150#ifdef CONFIG_X86_64
151#define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC
152#else
153/*
154 * For PDE_IDENT_ATTR include USER bit. As the PDE and PTE protection
155 * bits are combined, this will alow user to access the high address mapped
156 * VDSO in the presence of CONFIG_COMPAT_VDSO
157 */
158#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
159#define PDE_IDENT_ATTR 0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */
160#define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
161#endif
162 7
163/* 8/*
164 * Macro to mark a page protection value as UC- 9 * Macro to mark a page protection value as UC-
@@ -170,9 +15,6 @@
170 15
171#ifndef __ASSEMBLY__ 16#ifndef __ASSEMBLY__
172 17
173#define pgprot_writecombine pgprot_writecombine
174extern pgprot_t pgprot_writecombine(pgprot_t prot);
175
176/* 18/*
177 * ZERO_PAGE is a global shared page that is always zero: used 19 * ZERO_PAGE is a global shared page that is always zero: used
178 * for zero-mapped memory areas etc.. 20 * for zero-mapped memory areas etc..
@@ -183,6 +25,66 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
183extern spinlock_t pgd_lock; 25extern spinlock_t pgd_lock;
184extern struct list_head pgd_list; 26extern struct list_head pgd_list;
185 27
28#ifdef CONFIG_PARAVIRT
29#include <asm/paravirt.h>
30#else /* !CONFIG_PARAVIRT */
31#define set_pte(ptep, pte) native_set_pte(ptep, pte)
32#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte)
33
34#define set_pte_present(mm, addr, ptep, pte) \
35 native_set_pte_present(mm, addr, ptep, pte)
36#define set_pte_atomic(ptep, pte) \
37 native_set_pte_atomic(ptep, pte)
38
39#define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd)
40
41#ifndef __PAGETABLE_PUD_FOLDED
42#define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd)
43#define pgd_clear(pgd) native_pgd_clear(pgd)
44#endif
45
46#ifndef set_pud
47# define set_pud(pudp, pud) native_set_pud(pudp, pud)
48#endif
49
50#ifndef __PAGETABLE_PMD_FOLDED
51#define pud_clear(pud) native_pud_clear(pud)
52#endif
53
54#define pte_clear(mm, addr, ptep) native_pte_clear(mm, addr, ptep)
55#define pmd_clear(pmd) native_pmd_clear(pmd)
56
57#define pte_update(mm, addr, ptep) do { } while (0)
58#define pte_update_defer(mm, addr, ptep) do { } while (0)
59
60static inline void __init paravirt_pagetable_setup_start(pgd_t *base)
61{
62 native_pagetable_setup_start(base);
63}
64
65static inline void __init paravirt_pagetable_setup_done(pgd_t *base)
66{
67 native_pagetable_setup_done(base);
68}
69
70#define pgd_val(x) native_pgd_val(x)
71#define __pgd(x) native_make_pgd(x)
72
73#ifndef __PAGETABLE_PUD_FOLDED
74#define pud_val(x) native_pud_val(x)
75#define __pud(x) native_make_pud(x)
76#endif
77
78#ifndef __PAGETABLE_PMD_FOLDED
79#define pmd_val(x) native_pmd_val(x)
80#define __pmd(x) native_make_pmd(x)
81#endif
82
83#define pte_val(x) native_pte_val(x)
84#define __pte(x) native_make_pte(x)
85
86#endif /* CONFIG_PARAVIRT */
87
186/* 88/*
187 * The following only work if pte_present() is true. 89 * The following only work if pte_present() is true.
188 * Undefined behaviour if not.. 90 * Undefined behaviour if not..
@@ -236,82 +138,108 @@ static inline unsigned long pte_pfn(pte_t pte)
236 138
237static inline int pmd_large(pmd_t pte) 139static inline int pmd_large(pmd_t pte)
238{ 140{
239 return (pmd_val(pte) & (_PAGE_PSE | _PAGE_PRESENT)) == 141 return (pmd_flags(pte) & (_PAGE_PSE | _PAGE_PRESENT)) ==
240 (_PAGE_PSE | _PAGE_PRESENT); 142 (_PAGE_PSE | _PAGE_PRESENT);
241} 143}
242 144
145static inline pte_t pte_set_flags(pte_t pte, pteval_t set)
146{
147 pteval_t v = native_pte_val(pte);
148
149 return native_make_pte(v | set);
150}
151
152static inline pte_t pte_clear_flags(pte_t pte, pteval_t clear)
153{
154 pteval_t v = native_pte_val(pte);
155
156 return native_make_pte(v & ~clear);
157}
158
243static inline pte_t pte_mkclean(pte_t pte) 159static inline pte_t pte_mkclean(pte_t pte)
244{ 160{
245 return __pte(pte_val(pte) & ~_PAGE_DIRTY); 161 return pte_clear_flags(pte, _PAGE_DIRTY);
246} 162}
247 163
248static inline pte_t pte_mkold(pte_t pte) 164static inline pte_t pte_mkold(pte_t pte)
249{ 165{
250 return __pte(pte_val(pte) & ~_PAGE_ACCESSED); 166 return pte_clear_flags(pte, _PAGE_ACCESSED);
251} 167}
252 168
253static inline pte_t pte_wrprotect(pte_t pte) 169static inline pte_t pte_wrprotect(pte_t pte)
254{ 170{
255 return __pte(pte_val(pte) & ~_PAGE_RW); 171 return pte_clear_flags(pte, _PAGE_RW);
256} 172}
257 173
258static inline pte_t pte_mkexec(pte_t pte) 174static inline pte_t pte_mkexec(pte_t pte)
259{ 175{
260 return __pte(pte_val(pte) & ~_PAGE_NX); 176 return pte_clear_flags(pte, _PAGE_NX);
261} 177}
262 178
263static inline pte_t pte_mkdirty(pte_t pte) 179static inline pte_t pte_mkdirty(pte_t pte)
264{ 180{
265 return __pte(pte_val(pte) | _PAGE_DIRTY); 181 return pte_set_flags(pte, _PAGE_DIRTY);
266} 182}
267 183
268static inline pte_t pte_mkyoung(pte_t pte) 184static inline pte_t pte_mkyoung(pte_t pte)
269{ 185{
270 return __pte(pte_val(pte) | _PAGE_ACCESSED); 186 return pte_set_flags(pte, _PAGE_ACCESSED);
271} 187}
272 188
273static inline pte_t pte_mkwrite(pte_t pte) 189static inline pte_t pte_mkwrite(pte_t pte)
274{ 190{
275 return __pte(pte_val(pte) | _PAGE_RW); 191 return pte_set_flags(pte, _PAGE_RW);
276} 192}
277 193
278static inline pte_t pte_mkhuge(pte_t pte) 194static inline pte_t pte_mkhuge(pte_t pte)
279{ 195{
280 return __pte(pte_val(pte) | _PAGE_PSE); 196 return pte_set_flags(pte, _PAGE_PSE);
281} 197}
282 198
283static inline pte_t pte_clrhuge(pte_t pte) 199static inline pte_t pte_clrhuge(pte_t pte)
284{ 200{
285 return __pte(pte_val(pte) & ~_PAGE_PSE); 201 return pte_clear_flags(pte, _PAGE_PSE);
286} 202}
287 203
288static inline pte_t pte_mkglobal(pte_t pte) 204static inline pte_t pte_mkglobal(pte_t pte)
289{ 205{
290 return __pte(pte_val(pte) | _PAGE_GLOBAL); 206 return pte_set_flags(pte, _PAGE_GLOBAL);
291} 207}
292 208
293static inline pte_t pte_clrglobal(pte_t pte) 209static inline pte_t pte_clrglobal(pte_t pte)
294{ 210{
295 return __pte(pte_val(pte) & ~_PAGE_GLOBAL); 211 return pte_clear_flags(pte, _PAGE_GLOBAL);
296} 212}
297 213
298static inline pte_t pte_mkspecial(pte_t pte) 214static inline pte_t pte_mkspecial(pte_t pte)
299{ 215{
300 return __pte(pte_val(pte) | _PAGE_SPECIAL); 216 return pte_set_flags(pte, _PAGE_SPECIAL);
301} 217}
302 218
303extern pteval_t __supported_pte_mask; 219/*
220 * Mask out unsupported bits in a present pgprot. Non-present pgprots
221 * can use those bits for other purposes, so leave them be.
222 */
223static inline pgprotval_t massage_pgprot(pgprot_t pgprot)
224{
225 pgprotval_t protval = pgprot_val(pgprot);
226
227 if (protval & _PAGE_PRESENT)
228 protval &= __supported_pte_mask;
229
230 return protval;
231}
304 232
305static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot) 233static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot)
306{ 234{
307 return __pte((((phys_addr_t)page_nr << PAGE_SHIFT) | 235 return __pte(((phys_addr_t)page_nr << PAGE_SHIFT) |
308 pgprot_val(pgprot)) & __supported_pte_mask); 236 massage_pgprot(pgprot));
309} 237}
310 238
311static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) 239static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot)
312{ 240{
313 return __pmd((((phys_addr_t)page_nr << PAGE_SHIFT) | 241 return __pmd(((phys_addr_t)page_nr << PAGE_SHIFT) |
314 pgprot_val(pgprot)) & __supported_pte_mask); 242 massage_pgprot(pgprot));
315} 243}
316 244
317static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) 245static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
@@ -323,7 +251,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
323 * the newprot (if present): 251 * the newprot (if present):
324 */ 252 */
325 val &= _PAGE_CHG_MASK; 253 val &= _PAGE_CHG_MASK;
326 val |= pgprot_val(newprot) & (~_PAGE_CHG_MASK) & __supported_pte_mask; 254 val |= massage_pgprot(newprot) & ~_PAGE_CHG_MASK;
327 255
328 return __pte(val); 256 return __pte(val);
329} 257}
@@ -339,7 +267,7 @@ static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
339 267
340#define pte_pgprot(x) __pgprot(pte_flags(x) & PTE_FLAGS_MASK) 268#define pte_pgprot(x) __pgprot(pte_flags(x) & PTE_FLAGS_MASK)
341 269
342#define canon_pgprot(p) __pgprot(pgprot_val(p) & __supported_pte_mask) 270#define canon_pgprot(p) __pgprot(massage_pgprot(p))
343 271
344static inline int is_new_memtype_allowed(unsigned long flags, 272static inline int is_new_memtype_allowed(unsigned long flags,
345 unsigned long new_flags) 273 unsigned long new_flags)
@@ -360,82 +288,197 @@ static inline int is_new_memtype_allowed(unsigned long flags,
360 return 1; 288 return 1;
361} 289}
362 290
363#ifndef __ASSEMBLY__ 291pmd_t *populate_extra_pmd(unsigned long vaddr);
364/* Indicate that x86 has its own track and untrack pfn vma functions */ 292pte_t *populate_extra_pte(unsigned long vaddr);
365#define __HAVE_PFNMAP_TRACKING 293#endif /* __ASSEMBLY__ */
366
367#define __HAVE_PHYS_MEM_ACCESS_PROT
368struct file;
369pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
370 unsigned long size, pgprot_t vma_prot);
371int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
372 unsigned long size, pgprot_t *vma_prot);
373#endif
374
375/* Install a pte for a particular vaddr in kernel space. */
376void set_pte_vaddr(unsigned long vaddr, pte_t pte);
377 294
378#ifdef CONFIG_X86_32 295#ifdef CONFIG_X86_32
379extern void native_pagetable_setup_start(pgd_t *base); 296# include "pgtable_32.h"
380extern void native_pagetable_setup_done(pgd_t *base);
381#else 297#else
382static inline void native_pagetable_setup_start(pgd_t *base) {} 298# include "pgtable_64.h"
383static inline void native_pagetable_setup_done(pgd_t *base) {}
384#endif 299#endif
385 300
386struct seq_file; 301#ifndef __ASSEMBLY__
387extern void arch_report_meminfo(struct seq_file *m); 302#include <linux/mm_types.h>
388 303
389#ifdef CONFIG_PARAVIRT 304static inline int pte_none(pte_t pte)
390#include <asm/paravirt.h> 305{
391#else /* !CONFIG_PARAVIRT */ 306 return !pte.pte;
392#define set_pte(ptep, pte) native_set_pte(ptep, pte) 307}
393#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte)
394 308
395#define set_pte_present(mm, addr, ptep, pte) \ 309#define __HAVE_ARCH_PTE_SAME
396 native_set_pte_present(mm, addr, ptep, pte) 310static inline int pte_same(pte_t a, pte_t b)
397#define set_pte_atomic(ptep, pte) \ 311{
398 native_set_pte_atomic(ptep, pte) 312 return a.pte == b.pte;
313}
399 314
400#define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd) 315static inline int pte_present(pte_t a)
316{
317 return pte_flags(a) & (_PAGE_PRESENT | _PAGE_PROTNONE);
318}
401 319
402#ifndef __PAGETABLE_PUD_FOLDED 320static inline int pmd_present(pmd_t pmd)
403#define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd) 321{
404#define pgd_clear(pgd) native_pgd_clear(pgd) 322 return pmd_flags(pmd) & _PAGE_PRESENT;
405#endif 323}
406 324
407#ifndef set_pud 325static inline int pmd_none(pmd_t pmd)
408# define set_pud(pudp, pud) native_set_pud(pudp, pud) 326{
409#endif 327 /* Only check low word on 32-bit platforms, since it might be
328 out of sync with upper half. */
329 return (unsigned long)native_pmd_val(pmd) == 0;
330}
410 331
411#ifndef __PAGETABLE_PMD_FOLDED 332static inline unsigned long pmd_page_vaddr(pmd_t pmd)
412#define pud_clear(pud) native_pud_clear(pud) 333{
413#endif 334 return (unsigned long)__va(pmd_val(pmd) & PTE_PFN_MASK);
335}
414 336
415#define pte_clear(mm, addr, ptep) native_pte_clear(mm, addr, ptep) 337/*
416#define pmd_clear(pmd) native_pmd_clear(pmd) 338 * Currently stuck as a macro due to indirect forward reference to
339 * linux/mmzone.h's __section_mem_map_addr() definition:
340 */
341#define pmd_page(pmd) pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)
417 342
418#define pte_update(mm, addr, ptep) do { } while (0) 343/*
419#define pte_update_defer(mm, addr, ptep) do { } while (0) 344 * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD]
345 *
346 * this macro returns the index of the entry in the pmd page which would
347 * control the given virtual address
348 */
349static inline unsigned pmd_index(unsigned long address)
350{
351 return (address >> PMD_SHIFT) & (PTRS_PER_PMD - 1);
352}
420 353
421static inline void __init paravirt_pagetable_setup_start(pgd_t *base) 354/*
355 * Conversion functions: convert a page and protection to a page entry,
356 * and a page entry and page directory to the page they refer to.
357 *
358 * (Currently stuck as a macro because of indirect forward reference
359 * to linux/mm.h:page_to_nid())
360 */
361#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
362
363/*
364 * the pte page can be thought of an array like this: pte_t[PTRS_PER_PTE]
365 *
366 * this function returns the index of the entry in the pte page which would
367 * control the given virtual address
368 */
369static inline unsigned pte_index(unsigned long address)
422{ 370{
423 native_pagetable_setup_start(base); 371 return (address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1);
424} 372}
425 373
426static inline void __init paravirt_pagetable_setup_done(pgd_t *base) 374static inline pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address)
427{ 375{
428 native_pagetable_setup_done(base); 376 return (pte_t *)pmd_page_vaddr(*pmd) + pte_index(address);
429} 377}
430#endif /* CONFIG_PARAVIRT */
431 378
432#endif /* __ASSEMBLY__ */ 379static inline int pmd_bad(pmd_t pmd)
380{
381 return (pmd_flags(pmd) & ~_PAGE_USER) != _KERNPG_TABLE;
382}
433 383
434#ifdef CONFIG_X86_32 384static inline unsigned long pages_to_mb(unsigned long npg)
435# include "pgtable_32.h" 385{
386 return npg >> (20 - PAGE_SHIFT);
387}
388
389#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
390 remap_pfn_range(vma, vaddr, pfn, size, prot)
391
392#if PAGETABLE_LEVELS > 2
393static inline int pud_none(pud_t pud)
394{
395 return native_pud_val(pud) == 0;
396}
397
398static inline int pud_present(pud_t pud)
399{
400 return pud_flags(pud) & _PAGE_PRESENT;
401}
402
403static inline unsigned long pud_page_vaddr(pud_t pud)
404{
405 return (unsigned long)__va((unsigned long)pud_val(pud) & PTE_PFN_MASK);
406}
407
408/*
409 * Currently stuck as a macro due to indirect forward reference to
410 * linux/mmzone.h's __section_mem_map_addr() definition:
411 */
412#define pud_page(pud) pfn_to_page(pud_val(pud) >> PAGE_SHIFT)
413
414/* Find an entry in the second-level page table.. */
415static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
416{
417 return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(address);
418}
419
420static inline unsigned long pmd_pfn(pmd_t pmd)
421{
422 return (pmd_val(pmd) & PTE_PFN_MASK) >> PAGE_SHIFT;
423}
424
425static inline int pud_large(pud_t pud)
426{
427 return (pud_val(pud) & (_PAGE_PSE | _PAGE_PRESENT)) ==
428 (_PAGE_PSE | _PAGE_PRESENT);
429}
430
431static inline int pud_bad(pud_t pud)
432{
433 return (pud_flags(pud) & ~(_KERNPG_TABLE | _PAGE_USER)) != 0;
434}
436#else 435#else
437# include "pgtable_64.h" 436static inline int pud_large(pud_t pud)
438#endif 437{
438 return 0;
439}
440#endif /* PAGETABLE_LEVELS > 2 */
441
442#if PAGETABLE_LEVELS > 3
443static inline int pgd_present(pgd_t pgd)
444{
445 return pgd_flags(pgd) & _PAGE_PRESENT;
446}
447
448static inline unsigned long pgd_page_vaddr(pgd_t pgd)
449{
450 return (unsigned long)__va((unsigned long)pgd_val(pgd) & PTE_PFN_MASK);
451}
452
453/*
454 * Currently stuck as a macro due to indirect forward reference to
455 * linux/mmzone.h's __section_mem_map_addr() definition:
456 */
457#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT)
458
459/* to find an entry in a page-table-directory. */
460static inline unsigned pud_index(unsigned long address)
461{
462 return (address >> PUD_SHIFT) & (PTRS_PER_PUD - 1);
463}
464
465static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
466{
467 return (pud_t *)pgd_page_vaddr(*pgd) + pud_index(address);
468}
469
470static inline int pgd_bad(pgd_t pgd)
471{
472 return (pgd_flags(pgd) & ~_PAGE_USER) != _KERNPG_TABLE;
473}
474
475static inline int pgd_none(pgd_t pgd)
476{
477 return !native_pgd_val(pgd);
478}
479#endif /* PAGETABLE_LEVELS > 3 */
480
481#endif /* __ASSEMBLY__ */
439 482
440/* 483/*
441 * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD] 484 * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD]
@@ -462,28 +505,6 @@ static inline void __init paravirt_pagetable_setup_done(pgd_t *base)
462 505
463#ifndef __ASSEMBLY__ 506#ifndef __ASSEMBLY__
464 507
465enum {
466 PG_LEVEL_NONE,
467 PG_LEVEL_4K,
468 PG_LEVEL_2M,
469 PG_LEVEL_1G,
470 PG_LEVEL_NUM
471};
472
473#ifdef CONFIG_PROC_FS
474extern void update_page_count(int level, unsigned long pages);
475#else
476static inline void update_page_count(int level, unsigned long pages) { }
477#endif
478
479/*
480 * Helper function that returns the kernel pagetable entry controlling
481 * the virtual address 'address'. NULL means no pagetable entry present.
482 * NOTE: the return type is pte_t but if the pmd is PSE then we return it
483 * as a pte too.
484 */
485extern pte_t *lookup_address(unsigned long address, unsigned int *level);
486
487/* local pte updates need not use xchg for locking */ 508/* local pte updates need not use xchg for locking */
488static inline pte_t native_local_ptep_get_and_clear(pte_t *ptep) 509static inline pte_t native_local_ptep_get_and_clear(pte_t *ptep)
489{ 510{
diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
index 72b020deb46b..97612fc7632f 100644
--- a/arch/x86/include/asm/pgtable_32.h
+++ b/arch/x86/include/asm/pgtable_32.h
@@ -1,6 +1,7 @@
1#ifndef _ASM_X86_PGTABLE_32_H 1#ifndef _ASM_X86_PGTABLE_32_H
2#define _ASM_X86_PGTABLE_32_H 2#define _ASM_X86_PGTABLE_32_H
3 3
4#include <asm/pgtable_32_types.h>
4 5
5/* 6/*
6 * The Linux memory management assumes a three-level page table setup. On 7 * The Linux memory management assumes a three-level page table setup. On
@@ -33,47 +34,6 @@ void paging_init(void);
33 34
34extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t); 35extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
35 36
36/*
37 * The Linux x86 paging architecture is 'compile-time dual-mode', it
38 * implements both the traditional 2-level x86 page tables and the
39 * newer 3-level PAE-mode page tables.
40 */
41#ifdef CONFIG_X86_PAE
42# include <asm/pgtable-3level-defs.h>
43# define PMD_SIZE (1UL << PMD_SHIFT)
44# define PMD_MASK (~(PMD_SIZE - 1))
45#else
46# include <asm/pgtable-2level-defs.h>
47#endif
48
49#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
50#define PGDIR_MASK (~(PGDIR_SIZE - 1))
51
52/* Just any arbitrary offset to the start of the vmalloc VM area: the
53 * current 8MB value just means that there will be a 8MB "hole" after the
54 * physical memory until the kernel virtual memory starts. That means that
55 * any out-of-bounds memory accesses will hopefully be caught.
56 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
57 * area for the same reason. ;)
58 */
59#define VMALLOC_OFFSET (8 * 1024 * 1024)
60#define VMALLOC_START ((unsigned long)high_memory + VMALLOC_OFFSET)
61#ifdef CONFIG_X86_PAE
62#define LAST_PKMAP 512
63#else
64#define LAST_PKMAP 1024
65#endif
66
67#define PKMAP_BASE ((FIXADDR_BOOT_START - PAGE_SIZE * (LAST_PKMAP + 1)) \
68 & PMD_MASK)
69
70#ifdef CONFIG_HIGHMEM
71# define VMALLOC_END (PKMAP_BASE - 2 * PAGE_SIZE)
72#else
73# define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
74#endif
75
76#define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE)
77 37
78/* 38/*
79 * Define this if things work differently on an i386 and an i486: 39 * Define this if things work differently on an i386 and an i486:
@@ -85,55 +45,12 @@ extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
85/* The boot page tables (all created as a single array) */ 45/* The boot page tables (all created as a single array) */
86extern unsigned long pg0[]; 46extern unsigned long pg0[];
87 47
88#define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
89
90/* To avoid harmful races, pmd_none(x) should check only the lower when PAE */
91#define pmd_none(x) (!(unsigned long)pmd_val((x)))
92#define pmd_present(x) (pmd_val((x)) & _PAGE_PRESENT)
93#define pmd_bad(x) ((pmd_val(x) & (PTE_FLAGS_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
94
95#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
96
97#ifdef CONFIG_X86_PAE 48#ifdef CONFIG_X86_PAE
98# include <asm/pgtable-3level.h> 49# include <asm/pgtable-3level.h>
99#else 50#else
100# include <asm/pgtable-2level.h> 51# include <asm/pgtable-2level.h>
101#endif 52#endif
102 53
103/*
104 * Conversion functions: convert a page and protection to a page entry,
105 * and a page entry and page directory to the page they refer to.
106 */
107#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
108
109
110static inline int pud_large(pud_t pud) { return 0; }
111
112/*
113 * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD]
114 *
115 * this macro returns the index of the entry in the pmd page which would
116 * control the given virtual address
117 */
118#define pmd_index(address) \
119 (((address) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))
120
121/*
122 * the pte page can be thought of an array like this: pte_t[PTRS_PER_PTE]
123 *
124 * this macro returns the index of the entry in the pte page which would
125 * control the given virtual address
126 */
127#define pte_index(address) \
128 (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
129#define pte_offset_kernel(dir, address) \
130 ((pte_t *)pmd_page_vaddr(*(dir)) + pte_index((address)))
131
132#define pmd_page(pmd) (pfn_to_page(pmd_val((pmd)) >> PAGE_SHIFT))
133
134#define pmd_page_vaddr(pmd) \
135 ((unsigned long)__va(pmd_val((pmd)) & PTE_PFN_MASK))
136
137#if defined(CONFIG_HIGHPTE) 54#if defined(CONFIG_HIGHPTE)
138#define pte_offset_map(dir, address) \ 55#define pte_offset_map(dir, address) \
139 ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE0) + \ 56 ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE0) + \
@@ -176,7 +93,4 @@ do { \
176#define kern_addr_valid(kaddr) (0) 93#define kern_addr_valid(kaddr) (0)
177#endif 94#endif
178 95
179#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
180 remap_pfn_range(vma, vaddr, pfn, size, prot)
181
182#endif /* _ASM_X86_PGTABLE_32_H */ 96#endif /* _ASM_X86_PGTABLE_32_H */
diff --git a/arch/x86/include/asm/pgtable_32_types.h b/arch/x86/include/asm/pgtable_32_types.h
new file mode 100644
index 000000000000..2733fad45f98
--- /dev/null
+++ b/arch/x86/include/asm/pgtable_32_types.h
@@ -0,0 +1,51 @@
1#ifndef _ASM_X86_PGTABLE_32_DEFS_H
2#define _ASM_X86_PGTABLE_32_DEFS_H
3
4/*
5 * The Linux x86 paging architecture is 'compile-time dual-mode', it
6 * implements both the traditional 2-level x86 page tables and the
7 * newer 3-level PAE-mode page tables.
8 */
9#ifdef CONFIG_X86_PAE
10# include <asm/pgtable-3level_types.h>
11# define PMD_SIZE (1UL << PMD_SHIFT)
12# define PMD_MASK (~(PMD_SIZE - 1))
13#else
14# include <asm/pgtable-2level_types.h>
15#endif
16
17#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
18#define PGDIR_MASK (~(PGDIR_SIZE - 1))
19
20/* Just any arbitrary offset to the start of the vmalloc VM area: the
21 * current 8MB value just means that there will be a 8MB "hole" after the
22 * physical memory until the kernel virtual memory starts. That means that
23 * any out-of-bounds memory accesses will hopefully be caught.
24 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
25 * area for the same reason. ;)
26 */
27#define VMALLOC_OFFSET (8 * 1024 * 1024)
28
29#ifndef __ASSEMBLER__
30extern bool __vmalloc_start_set; /* set once high_memory is set */
31#endif
32
33#define VMALLOC_START ((unsigned long)high_memory + VMALLOC_OFFSET)
34#ifdef CONFIG_X86_PAE
35#define LAST_PKMAP 512
36#else
37#define LAST_PKMAP 1024
38#endif
39
40#define PKMAP_BASE ((FIXADDR_BOOT_START - PAGE_SIZE * (LAST_PKMAP + 1)) \
41 & PMD_MASK)
42
43#ifdef CONFIG_HIGHMEM
44# define VMALLOC_END (PKMAP_BASE - 2 * PAGE_SIZE)
45#else
46# define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
47#endif
48
49#define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE)
50
51#endif /* _ASM_X86_PGTABLE_32_DEFS_H */
diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
index ba09289accaa..6b87bc6d5018 100644
--- a/arch/x86/include/asm/pgtable_64.h
+++ b/arch/x86/include/asm/pgtable_64.h
@@ -2,6 +2,8 @@
2#define _ASM_X86_PGTABLE_64_H 2#define _ASM_X86_PGTABLE_64_H
3 3
4#include <linux/const.h> 4#include <linux/const.h>
5#include <asm/pgtable_64_types.h>
6
5#ifndef __ASSEMBLY__ 7#ifndef __ASSEMBLY__
6 8
7/* 9/*
@@ -11,7 +13,6 @@
11#include <asm/processor.h> 13#include <asm/processor.h>
12#include <linux/bitops.h> 14#include <linux/bitops.h>
13#include <linux/threads.h> 15#include <linux/threads.h>
14#include <asm/pda.h>
15 16
16extern pud_t level3_kernel_pgt[512]; 17extern pud_t level3_kernel_pgt[512];
17extern pud_t level3_ident_pgt[512]; 18extern pud_t level3_ident_pgt[512];
@@ -26,32 +27,6 @@ extern void paging_init(void);
26 27
27#endif /* !__ASSEMBLY__ */ 28#endif /* !__ASSEMBLY__ */
28 29
29#define SHARED_KERNEL_PMD 0
30
31/*
32 * PGDIR_SHIFT determines what a top-level page table entry can map
33 */
34#define PGDIR_SHIFT 39
35#define PTRS_PER_PGD 512
36
37/*
38 * 3rd level page
39 */
40#define PUD_SHIFT 30
41#define PTRS_PER_PUD 512
42
43/*
44 * PMD_SHIFT determines the size of the area a middle-level
45 * page table can map
46 */
47#define PMD_SHIFT 21
48#define PTRS_PER_PMD 512
49
50/*
51 * entries per page directory level
52 */
53#define PTRS_PER_PTE 512
54
55#ifndef __ASSEMBLY__ 30#ifndef __ASSEMBLY__
56 31
57#define pte_ERROR(e) \ 32#define pte_ERROR(e) \
@@ -67,9 +42,6 @@ extern void paging_init(void);
67 printk("%s:%d: bad pgd %p(%016lx).\n", \ 42 printk("%s:%d: bad pgd %p(%016lx).\n", \
68 __FILE__, __LINE__, &(e), pgd_val(e)) 43 __FILE__, __LINE__, &(e), pgd_val(e))
69 44
70#define pgd_none(x) (!pgd_val(x))
71#define pud_none(x) (!pud_val(x))
72
73struct mm_struct; 45struct mm_struct;
74 46
75void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte); 47void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte);
@@ -134,48 +106,6 @@ static inline void native_pgd_clear(pgd_t *pgd)
134 native_set_pgd(pgd, native_make_pgd(0)); 106 native_set_pgd(pgd, native_make_pgd(0));
135} 107}
136 108
137#define pte_same(a, b) ((a).pte == (b).pte)
138
139#endif /* !__ASSEMBLY__ */
140
141#define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
142#define PMD_MASK (~(PMD_SIZE - 1))
143#define PUD_SIZE (_AC(1, UL) << PUD_SHIFT)
144#define PUD_MASK (~(PUD_SIZE - 1))
145#define PGDIR_SIZE (_AC(1, UL) << PGDIR_SHIFT)
146#define PGDIR_MASK (~(PGDIR_SIZE - 1))
147
148
149#define MAXMEM _AC(__AC(1, UL) << MAX_PHYSMEM_BITS, UL)
150#define VMALLOC_START _AC(0xffffc20000000000, UL)
151#define VMALLOC_END _AC(0xffffe1ffffffffff, UL)
152#define VMEMMAP_START _AC(0xffffe20000000000, UL)
153#define MODULES_VADDR _AC(0xffffffffa0000000, UL)
154#define MODULES_END _AC(0xffffffffff000000, UL)
155#define MODULES_LEN (MODULES_END - MODULES_VADDR)
156
157#ifndef __ASSEMBLY__
158
159static inline int pgd_bad(pgd_t pgd)
160{
161 return (pgd_val(pgd) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE;
162}
163
164static inline int pud_bad(pud_t pud)
165{
166 return (pud_val(pud) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE;
167}
168
169static inline int pmd_bad(pmd_t pmd)
170{
171 return (pmd_val(pmd) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE;
172}
173
174#define pte_none(x) (!pte_val((x)))
175#define pte_present(x) (pte_val((x)) & (_PAGE_PRESENT | _PAGE_PROTNONE))
176
177#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT)) /* FIXME: is this right? */
178
179/* 109/*
180 * Conversion functions: convert a page and protection to a page entry, 110 * Conversion functions: convert a page and protection to a page entry,
181 * and a page entry and page directory to the page they refer to. 111 * and a page entry and page directory to the page they refer to.
@@ -184,41 +114,12 @@ static inline int pmd_bad(pmd_t pmd)
184/* 114/*
185 * Level 4 access. 115 * Level 4 access.
186 */ 116 */
187#define pgd_page_vaddr(pgd) \
188 ((unsigned long)__va((unsigned long)pgd_val((pgd)) & PTE_PFN_MASK))
189#define pgd_page(pgd) (pfn_to_page(pgd_val((pgd)) >> PAGE_SHIFT))
190#define pgd_present(pgd) (pgd_val(pgd) & _PAGE_PRESENT)
191static inline int pgd_large(pgd_t pgd) { return 0; } 117static inline int pgd_large(pgd_t pgd) { return 0; }
192#define mk_kernel_pgd(address) __pgd((address) | _KERNPG_TABLE) 118#define mk_kernel_pgd(address) __pgd((address) | _KERNPG_TABLE)
193 119
194/* PUD - Level3 access */ 120/* PUD - Level3 access */
195/* to find an entry in a page-table-directory. */
196#define pud_page_vaddr(pud) \
197 ((unsigned long)__va(pud_val((pud)) & PHYSICAL_PAGE_MASK))
198#define pud_page(pud) (pfn_to_page(pud_val((pud)) >> PAGE_SHIFT))
199#define pud_index(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD - 1))
200#define pud_offset(pgd, address) \
201 ((pud_t *)pgd_page_vaddr(*(pgd)) + pud_index((address)))
202#define pud_present(pud) (pud_val((pud)) & _PAGE_PRESENT)
203
204static inline int pud_large(pud_t pte)
205{
206 return (pud_val(pte) & (_PAGE_PSE | _PAGE_PRESENT)) ==
207 (_PAGE_PSE | _PAGE_PRESENT);
208}
209 121
210/* PMD - Level 2 access */ 122/* PMD - Level 2 access */
211#define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val((pmd)) & PTE_PFN_MASK))
212#define pmd_page(pmd) (pfn_to_page(pmd_val((pmd)) >> PAGE_SHIFT))
213
214#define pmd_index(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))
215#define pmd_offset(dir, address) ((pmd_t *)pud_page_vaddr(*(dir)) + \
216 pmd_index(address))
217#define pmd_none(x) (!pmd_val((x)))
218#define pmd_present(x) (pmd_val((x)) & _PAGE_PRESENT)
219#define pfn_pmd(nr, prot) (__pmd(((nr) << PAGE_SHIFT) | pgprot_val((prot))))
220#define pmd_pfn(x) ((pmd_val((x)) & __PHYSICAL_MASK) >> PAGE_SHIFT)
221
222#define pte_to_pgoff(pte) ((pte_val((pte)) & PHYSICAL_PAGE_MASK) >> PAGE_SHIFT) 123#define pte_to_pgoff(pte) ((pte_val((pte)) & PHYSICAL_PAGE_MASK) >> PAGE_SHIFT)
223#define pgoff_to_pte(off) ((pte_t) { .pte = ((off) << PAGE_SHIFT) | \ 124#define pgoff_to_pte(off) ((pte_t) { .pte = ((off) << PAGE_SHIFT) | \
224 _PAGE_FILE }) 125 _PAGE_FILE })
@@ -226,13 +127,6 @@ static inline int pud_large(pud_t pte)
226 127
227/* PTE - Level 1 access. */ 128/* PTE - Level 1 access. */
228 129
229/* page, protection -> pte */
230#define mk_pte(page, pgprot) pfn_pte(page_to_pfn((page)), (pgprot))
231
232#define pte_index(address) (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
233#define pte_offset_kernel(dir, address) ((pte_t *) pmd_page_vaddr(*(dir)) + \
234 pte_index((address)))
235
236/* x86-64 always has all page tables mapped. */ 130/* x86-64 always has all page tables mapped. */
237#define pte_offset_map(dir, address) pte_offset_kernel((dir), (address)) 131#define pte_offset_map(dir, address) pte_offset_kernel((dir), (address))
238#define pte_offset_map_nested(dir, address) pte_offset_kernel((dir), (address)) 132#define pte_offset_map_nested(dir, address) pte_offset_kernel((dir), (address))
@@ -266,9 +160,6 @@ extern int direct_gbpages;
266extern int kern_addr_valid(unsigned long addr); 160extern int kern_addr_valid(unsigned long addr);
267extern void cleanup_highmap(void); 161extern void cleanup_highmap(void);
268 162
269#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
270 remap_pfn_range(vma, vaddr, pfn, size, prot)
271
272#define HAVE_ARCH_UNMAPPED_AREA 163#define HAVE_ARCH_UNMAPPED_AREA
273#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN 164#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
274 165
diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h
new file mode 100644
index 000000000000..fbf42b8e0383
--- /dev/null
+++ b/arch/x86/include/asm/pgtable_64_types.h
@@ -0,0 +1,63 @@
1#ifndef _ASM_X86_PGTABLE_64_DEFS_H
2#define _ASM_X86_PGTABLE_64_DEFS_H
3
4#ifndef __ASSEMBLY__
5#include <linux/types.h>
6
7/*
8 * These are used to make use of C type-checking..
9 */
10typedef unsigned long pteval_t;
11typedef unsigned long pmdval_t;
12typedef unsigned long pudval_t;
13typedef unsigned long pgdval_t;
14typedef unsigned long pgprotval_t;
15
16typedef struct { pteval_t pte; } pte_t;
17
18#endif /* !__ASSEMBLY__ */
19
20#define SHARED_KERNEL_PMD 0
21#define PAGETABLE_LEVELS 4
22
23/*
24 * PGDIR_SHIFT determines what a top-level page table entry can map
25 */
26#define PGDIR_SHIFT 39
27#define PTRS_PER_PGD 512
28
29/*
30 * 3rd level page
31 */
32#define PUD_SHIFT 30
33#define PTRS_PER_PUD 512
34
35/*
36 * PMD_SHIFT determines the size of the area a middle-level
37 * page table can map
38 */
39#define PMD_SHIFT 21
40#define PTRS_PER_PMD 512
41
42/*
43 * entries per page directory level
44 */
45#define PTRS_PER_PTE 512
46
47#define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
48#define PMD_MASK (~(PMD_SIZE - 1))
49#define PUD_SIZE (_AC(1, UL) << PUD_SHIFT)
50#define PUD_MASK (~(PUD_SIZE - 1))
51#define PGDIR_SIZE (_AC(1, UL) << PGDIR_SHIFT)
52#define PGDIR_MASK (~(PGDIR_SIZE - 1))
53
54
55#define MAXMEM _AC(__AC(1, UL) << MAX_PHYSMEM_BITS, UL)
56#define VMALLOC_START _AC(0xffffc20000000000, UL)
57#define VMALLOC_END _AC(0xffffe1ffffffffff, UL)
58#define VMEMMAP_START _AC(0xffffe20000000000, UL)
59#define MODULES_VADDR _AC(0xffffffffa0000000, UL)
60#define MODULES_END _AC(0xffffffffff000000, UL)
61#define MODULES_LEN (MODULES_END - MODULES_VADDR)
62
63#endif /* _ASM_X86_PGTABLE_64_DEFS_H */
diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
new file mode 100644
index 000000000000..b8238dc8786d
--- /dev/null
+++ b/arch/x86/include/asm/pgtable_types.h
@@ -0,0 +1,329 @@
1#ifndef _ASM_X86_PGTABLE_DEFS_H
2#define _ASM_X86_PGTABLE_DEFS_H
3
4#include <linux/const.h>
5#include <asm/page_types.h>
6
7#define FIRST_USER_ADDRESS 0
8
9#define _PAGE_BIT_PRESENT 0 /* is present */
10#define _PAGE_BIT_RW 1 /* writeable */
11#define _PAGE_BIT_USER 2 /* userspace addressable */
12#define _PAGE_BIT_PWT 3 /* page write through */
13#define _PAGE_BIT_PCD 4 /* page cache disabled */
14#define _PAGE_BIT_ACCESSED 5 /* was accessed (raised by CPU) */
15#define _PAGE_BIT_DIRTY 6 /* was written to (raised by CPU) */
16#define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
17#define _PAGE_BIT_PAT 7 /* on 4KB pages */
18#define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */
19#define _PAGE_BIT_UNUSED1 9 /* available for programmer */
20#define _PAGE_BIT_IOMAP 10 /* flag used to indicate IO mapping */
21#define _PAGE_BIT_UNUSED3 11
22#define _PAGE_BIT_PAT_LARGE 12 /* On 2MB or 1GB pages */
23#define _PAGE_BIT_SPECIAL _PAGE_BIT_UNUSED1
24#define _PAGE_BIT_CPA_TEST _PAGE_BIT_UNUSED1
25#define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */
26
27/* If _PAGE_BIT_PRESENT is clear, we use these: */
28/* - if the user mapped it with PROT_NONE; pte_present gives true */
29#define _PAGE_BIT_PROTNONE _PAGE_BIT_GLOBAL
30/* - set: nonlinear file mapping, saved PTE; unset:swap */
31#define _PAGE_BIT_FILE _PAGE_BIT_DIRTY
32
33#define _PAGE_PRESENT (_AT(pteval_t, 1) << _PAGE_BIT_PRESENT)
34#define _PAGE_RW (_AT(pteval_t, 1) << _PAGE_BIT_RW)
35#define _PAGE_USER (_AT(pteval_t, 1) << _PAGE_BIT_USER)
36#define _PAGE_PWT (_AT(pteval_t, 1) << _PAGE_BIT_PWT)
37#define _PAGE_PCD (_AT(pteval_t, 1) << _PAGE_BIT_PCD)
38#define _PAGE_ACCESSED (_AT(pteval_t, 1) << _PAGE_BIT_ACCESSED)
39#define _PAGE_DIRTY (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY)
40#define _PAGE_PSE (_AT(pteval_t, 1) << _PAGE_BIT_PSE)
41#define _PAGE_GLOBAL (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL)
42#define _PAGE_UNUSED1 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED1)
43#define _PAGE_IOMAP (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP)
44#define _PAGE_UNUSED3 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED3)
45#define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT)
46#define _PAGE_PAT_LARGE (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE)
47#define _PAGE_SPECIAL (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL)
48#define _PAGE_CPA_TEST (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST)
49#define __HAVE_ARCH_PTE_SPECIAL
50
51#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
52#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
53#else
54#define _PAGE_NX (_AT(pteval_t, 0))
55#endif
56
57#define _PAGE_FILE (_AT(pteval_t, 1) << _PAGE_BIT_FILE)
58#define _PAGE_PROTNONE (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
59
60#define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
61 _PAGE_ACCESSED | _PAGE_DIRTY)
62#define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | \
63 _PAGE_DIRTY)
64
65/* Set of bits not changed in pte_modify */
66#define _PAGE_CHG_MASK (PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT | \
67 _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY)
68
69#define _PAGE_CACHE_MASK (_PAGE_PCD | _PAGE_PWT)
70#define _PAGE_CACHE_WB (0)
71#define _PAGE_CACHE_WC (_PAGE_PWT)
72#define _PAGE_CACHE_UC_MINUS (_PAGE_PCD)
73#define _PAGE_CACHE_UC (_PAGE_PCD | _PAGE_PWT)
74
75#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
76#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
77 _PAGE_ACCESSED | _PAGE_NX)
78
79#define PAGE_SHARED_EXEC __pgprot(_PAGE_PRESENT | _PAGE_RW | \
80 _PAGE_USER | _PAGE_ACCESSED)
81#define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
82 _PAGE_ACCESSED | _PAGE_NX)
83#define PAGE_COPY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
84 _PAGE_ACCESSED)
85#define PAGE_COPY PAGE_COPY_NOEXEC
86#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | \
87 _PAGE_ACCESSED | _PAGE_NX)
88#define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
89 _PAGE_ACCESSED)
90
91#define __PAGE_KERNEL_EXEC \
92 (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
93#define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
94
95#define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
96#define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
97#define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)
98#define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC)
99#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
100#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
101#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
102#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
103#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
104#define __PAGE_KERNEL_LARGE_NOCACHE (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE)
105#define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
106
107#define __PAGE_KERNEL_IO (__PAGE_KERNEL | _PAGE_IOMAP)
108#define __PAGE_KERNEL_IO_NOCACHE (__PAGE_KERNEL_NOCACHE | _PAGE_IOMAP)
109#define __PAGE_KERNEL_IO_UC_MINUS (__PAGE_KERNEL_UC_MINUS | _PAGE_IOMAP)
110#define __PAGE_KERNEL_IO_WC (__PAGE_KERNEL_WC | _PAGE_IOMAP)
111
112#define PAGE_KERNEL __pgprot(__PAGE_KERNEL)
113#define PAGE_KERNEL_RO __pgprot(__PAGE_KERNEL_RO)
114#define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC)
115#define PAGE_KERNEL_RX __pgprot(__PAGE_KERNEL_RX)
116#define PAGE_KERNEL_WC __pgprot(__PAGE_KERNEL_WC)
117#define PAGE_KERNEL_NOCACHE __pgprot(__PAGE_KERNEL_NOCACHE)
118#define PAGE_KERNEL_UC_MINUS __pgprot(__PAGE_KERNEL_UC_MINUS)
119#define PAGE_KERNEL_EXEC_NOCACHE __pgprot(__PAGE_KERNEL_EXEC_NOCACHE)
120#define PAGE_KERNEL_LARGE __pgprot(__PAGE_KERNEL_LARGE)
121#define PAGE_KERNEL_LARGE_NOCACHE __pgprot(__PAGE_KERNEL_LARGE_NOCACHE)
122#define PAGE_KERNEL_LARGE_EXEC __pgprot(__PAGE_KERNEL_LARGE_EXEC)
123#define PAGE_KERNEL_VSYSCALL __pgprot(__PAGE_KERNEL_VSYSCALL)
124#define PAGE_KERNEL_VSYSCALL_NOCACHE __pgprot(__PAGE_KERNEL_VSYSCALL_NOCACHE)
125
126#define PAGE_KERNEL_IO __pgprot(__PAGE_KERNEL_IO)
127#define PAGE_KERNEL_IO_NOCACHE __pgprot(__PAGE_KERNEL_IO_NOCACHE)
128#define PAGE_KERNEL_IO_UC_MINUS __pgprot(__PAGE_KERNEL_IO_UC_MINUS)
129#define PAGE_KERNEL_IO_WC __pgprot(__PAGE_KERNEL_IO_WC)
130
131/* xwr */
132#define __P000 PAGE_NONE
133#define __P001 PAGE_READONLY
134#define __P010 PAGE_COPY
135#define __P011 PAGE_COPY
136#define __P100 PAGE_READONLY_EXEC
137#define __P101 PAGE_READONLY_EXEC
138#define __P110 PAGE_COPY_EXEC
139#define __P111 PAGE_COPY_EXEC
140
141#define __S000 PAGE_NONE
142#define __S001 PAGE_READONLY
143#define __S010 PAGE_SHARED
144#define __S011 PAGE_SHARED
145#define __S100 PAGE_READONLY_EXEC
146#define __S101 PAGE_READONLY_EXEC
147#define __S110 PAGE_SHARED_EXEC
148#define __S111 PAGE_SHARED_EXEC
149
150/*
151 * early identity mapping pte attrib macros.
152 */
153#ifdef CONFIG_X86_64
154#define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC
155#else
156/*
157 * For PDE_IDENT_ATTR include USER bit. As the PDE and PTE protection
158 * bits are combined, this will alow user to access the high address mapped
159 * VDSO in the presence of CONFIG_COMPAT_VDSO
160 */
161#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
162#define PDE_IDENT_ATTR 0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */
163#define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
164#endif
165
166#ifdef CONFIG_X86_32
167# include "pgtable_32_types.h"
168#else
169# include "pgtable_64_types.h"
170#endif
171
172#ifndef __ASSEMBLY__
173
174#include <linux/types.h>
175
176/* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */
177#define PTE_PFN_MASK ((pteval_t)PHYSICAL_PAGE_MASK)
178
179/* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */
180#define PTE_FLAGS_MASK (~PTE_PFN_MASK)
181
182typedef struct pgprot { pgprotval_t pgprot; } pgprot_t;
183
184typedef struct { pgdval_t pgd; } pgd_t;
185
186static inline pgd_t native_make_pgd(pgdval_t val)
187{
188 return (pgd_t) { val };
189}
190
191static inline pgdval_t native_pgd_val(pgd_t pgd)
192{
193 return pgd.pgd;
194}
195
196static inline pgdval_t pgd_flags(pgd_t pgd)
197{
198 return native_pgd_val(pgd) & PTE_FLAGS_MASK;
199}
200
201#if PAGETABLE_LEVELS > 3
202typedef struct { pudval_t pud; } pud_t;
203
204static inline pud_t native_make_pud(pmdval_t val)
205{
206 return (pud_t) { val };
207}
208
209static inline pudval_t native_pud_val(pud_t pud)
210{
211 return pud.pud;
212}
213#else
214#include <asm-generic/pgtable-nopud.h>
215
216static inline pudval_t native_pud_val(pud_t pud)
217{
218 return native_pgd_val(pud.pgd);
219}
220#endif
221
222#if PAGETABLE_LEVELS > 2
223typedef struct { pmdval_t pmd; } pmd_t;
224
225static inline pmd_t native_make_pmd(pmdval_t val)
226{
227 return (pmd_t) { val };
228}
229
230static inline pmdval_t native_pmd_val(pmd_t pmd)
231{
232 return pmd.pmd;
233}
234#else
235#include <asm-generic/pgtable-nopmd.h>
236
237static inline pmdval_t native_pmd_val(pmd_t pmd)
238{
239 return native_pgd_val(pmd.pud.pgd);
240}
241#endif
242
243static inline pudval_t pud_flags(pud_t pud)
244{
245 return native_pud_val(pud) & PTE_FLAGS_MASK;
246}
247
248static inline pmdval_t pmd_flags(pmd_t pmd)
249{
250 return native_pmd_val(pmd) & PTE_FLAGS_MASK;
251}
252
253static inline pte_t native_make_pte(pteval_t val)
254{
255 return (pte_t) { .pte = val };
256}
257
258static inline pteval_t native_pte_val(pte_t pte)
259{
260 return pte.pte;
261}
262
263static inline pteval_t pte_flags(pte_t pte)
264{
265 return native_pte_val(pte) & PTE_FLAGS_MASK;
266}
267
268#define pgprot_val(x) ((x).pgprot)
269#define __pgprot(x) ((pgprot_t) { (x) } )
270
271
272typedef struct page *pgtable_t;
273
274extern pteval_t __supported_pte_mask;
275extern int nx_enabled;
276extern void set_nx(void);
277
278#define pgprot_writecombine pgprot_writecombine
279extern pgprot_t pgprot_writecombine(pgprot_t prot);
280
281/* Indicate that x86 has its own track and untrack pfn vma functions */
282#define __HAVE_PFNMAP_TRACKING
283
284#define __HAVE_PHYS_MEM_ACCESS_PROT
285struct file;
286pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
287 unsigned long size, pgprot_t vma_prot);
288int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
289 unsigned long size, pgprot_t *vma_prot);
290
291/* Install a pte for a particular vaddr in kernel space. */
292void set_pte_vaddr(unsigned long vaddr, pte_t pte);
293
294#ifdef CONFIG_X86_32
295extern void native_pagetable_setup_start(pgd_t *base);
296extern void native_pagetable_setup_done(pgd_t *base);
297#else
298static inline void native_pagetable_setup_start(pgd_t *base) {}
299static inline void native_pagetable_setup_done(pgd_t *base) {}
300#endif
301
302struct seq_file;
303extern void arch_report_meminfo(struct seq_file *m);
304
305enum {
306 PG_LEVEL_NONE,
307 PG_LEVEL_4K,
308 PG_LEVEL_2M,
309 PG_LEVEL_1G,
310 PG_LEVEL_NUM
311};
312
313#ifdef CONFIG_PROC_FS
314extern void update_page_count(int level, unsigned long pages);
315#else
316static inline void update_page_count(int level, unsigned long pages) { }
317#endif
318
319/*
320 * Helper function that returns the kernel pagetable entry controlling
321 * the virtual address 'address'. NULL means no pagetable entry present.
322 * NOTE: the return type is pte_t but if the pmd is PSE then we return it
323 * as a pte too.
324 */
325extern pte_t *lookup_address(unsigned long address, unsigned int *level);
326
327#endif /* !__ASSEMBLY__ */
328
329#endif /* _ASM_X86_PGTABLE_DEFS_H */
diff --git a/arch/x86/include/asm/prctl.h b/arch/x86/include/asm/prctl.h
index a8894647dd9a..3ac5032fae09 100644
--- a/arch/x86/include/asm/prctl.h
+++ b/arch/x86/include/asm/prctl.h
@@ -6,8 +6,4 @@
6#define ARCH_GET_FS 0x1003 6#define ARCH_GET_FS 0x1003
7#define ARCH_GET_GS 0x1004 7#define ARCH_GET_GS 0x1004
8 8
9#ifdef CONFIG_X86_64
10extern long sys_arch_prctl(int, unsigned long);
11#endif /* CONFIG_X86_64 */
12
13#endif /* _ASM_X86_PRCTL_H */ 9#endif /* _ASM_X86_PRCTL_H */
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index 091cd8855f2e..76139506c3e4 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -16,6 +16,7 @@ struct mm_struct;
16#include <asm/cpufeature.h> 16#include <asm/cpufeature.h>
17#include <asm/system.h> 17#include <asm/system.h>
18#include <asm/page.h> 18#include <asm/page.h>
19#include <asm/pgtable_types.h>
19#include <asm/percpu.h> 20#include <asm/percpu.h>
20#include <asm/msr.h> 21#include <asm/msr.h>
21#include <asm/desc_defs.h> 22#include <asm/desc_defs.h>
@@ -73,7 +74,7 @@ struct cpuinfo_x86 {
73 char pad0; 74 char pad0;
74#else 75#else
75 /* Number of 4K pages in DTLB/ITLB combined(in pages): */ 76 /* Number of 4K pages in DTLB/ITLB combined(in pages): */
76 int x86_tlbsize; 77 int x86_tlbsize;
77 __u8 x86_virt_bits; 78 __u8 x86_virt_bits;
78 __u8 x86_phys_bits; 79 __u8 x86_phys_bits;
79#endif 80#endif
@@ -247,7 +248,6 @@ struct x86_hw_tss {
247#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long)) 248#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
248#define IO_BITMAP_OFFSET offsetof(struct tss_struct, io_bitmap) 249#define IO_BITMAP_OFFSET offsetof(struct tss_struct, io_bitmap)
249#define INVALID_IO_BITMAP_OFFSET 0x8000 250#define INVALID_IO_BITMAP_OFFSET 0x8000
250#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
251 251
252struct tss_struct { 252struct tss_struct {
253 /* 253 /*
@@ -262,11 +262,6 @@ struct tss_struct {
262 * be within the limit. 262 * be within the limit.
263 */ 263 */
264 unsigned long io_bitmap[IO_BITMAP_LONGS + 1]; 264 unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
265 /*
266 * Cache the current maximum and the last task that used the bitmap:
267 */
268 unsigned long io_bitmap_max;
269 struct thread_struct *io_bitmap_owner;
270 265
271 /* 266 /*
272 * .. and then another 0x100 bytes for the emergency kernel stack: 267 * .. and then another 0x100 bytes for the emergency kernel stack:
@@ -353,7 +348,7 @@ struct i387_soft_struct {
353 u8 no_update; 348 u8 no_update;
354 u8 rm; 349 u8 rm;
355 u8 alimit; 350 u8 alimit;
356 struct info *info; 351 struct math_emu_info *info;
357 u32 entry_eip; 352 u32 entry_eip;
358}; 353};
359 354
@@ -378,9 +373,30 @@ union thread_xstate {
378 373
379#ifdef CONFIG_X86_64 374#ifdef CONFIG_X86_64
380DECLARE_PER_CPU(struct orig_ist, orig_ist); 375DECLARE_PER_CPU(struct orig_ist, orig_ist);
376
377union irq_stack_union {
378 char irq_stack[IRQ_STACK_SIZE];
379 /*
380 * GCC hardcodes the stack canary as %gs:40. Since the
381 * irq_stack is the object at %gs:0, we reserve the bottom
382 * 48 bytes of the irq stack for the canary.
383 */
384 struct {
385 char gs_base[40];
386 unsigned long stack_canary;
387 };
388};
389
390DECLARE_PER_CPU(union irq_stack_union, irq_stack_union);
391DECLARE_INIT_PER_CPU(irq_stack_union);
392
393DECLARE_PER_CPU(char *, irq_stack_ptr);
394#else /* X86_64 */
395#ifdef CONFIG_CC_STACKPROTECTOR
396DECLARE_PER_CPU(unsigned long, stack_canary);
381#endif 397#endif
398#endif /* X86_64 */
382 399
383extern void print_cpu_info(struct cpuinfo_x86 *);
384extern unsigned int xstate_size; 400extern unsigned int xstate_size;
385extern void free_thread_xstate(struct task_struct *); 401extern void free_thread_xstate(struct task_struct *);
386extern struct kmem_cache *task_xstate_cachep; 402extern struct kmem_cache *task_xstate_cachep;
@@ -752,9 +768,9 @@ extern int sysenter_setup(void);
752extern struct desc_ptr early_gdt_descr; 768extern struct desc_ptr early_gdt_descr;
753 769
754extern void cpu_set_gdt(int); 770extern void cpu_set_gdt(int);
755extern void switch_to_new_gdt(void); 771extern void switch_to_new_gdt(int);
772extern void load_percpu_segment(int);
756extern void cpu_init(void); 773extern void cpu_init(void);
757extern void init_gdt(int cpu);
758 774
759static inline unsigned long get_debugctlmsr(void) 775static inline unsigned long get_debugctlmsr(void)
760{ 776{
@@ -839,6 +855,7 @@ static inline void spin_lock_prefetch(const void *x)
839 * User space process size: 3GB (default). 855 * User space process size: 3GB (default).
840 */ 856 */
841#define TASK_SIZE PAGE_OFFSET 857#define TASK_SIZE PAGE_OFFSET
858#define TASK_SIZE_MAX TASK_SIZE
842#define STACK_TOP TASK_SIZE 859#define STACK_TOP TASK_SIZE
843#define STACK_TOP_MAX STACK_TOP 860#define STACK_TOP_MAX STACK_TOP
844 861
@@ -898,7 +915,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
898/* 915/*
899 * User space process size. 47bits minus one guard page. 916 * User space process size. 47bits minus one guard page.
900 */ 917 */
901#define TASK_SIZE64 ((1UL << 47) - PAGE_SIZE) 918#define TASK_SIZE_MAX ((1UL << 47) - PAGE_SIZE)
902 919
903/* This decides where the kernel will search for a free chunk of vm 920/* This decides where the kernel will search for a free chunk of vm
904 * space during mmap's. 921 * space during mmap's.
@@ -907,12 +924,12 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
907 0xc0000000 : 0xFFFFe000) 924 0xc0000000 : 0xFFFFe000)
908 925
909#define TASK_SIZE (test_thread_flag(TIF_IA32) ? \ 926#define TASK_SIZE (test_thread_flag(TIF_IA32) ? \
910 IA32_PAGE_OFFSET : TASK_SIZE64) 927 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
911#define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? \ 928#define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? \
912 IA32_PAGE_OFFSET : TASK_SIZE64) 929 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
913 930
914#define STACK_TOP TASK_SIZE 931#define STACK_TOP TASK_SIZE
915#define STACK_TOP_MAX TASK_SIZE64 932#define STACK_TOP_MAX TASK_SIZE_MAX
916 933
917#define INIT_THREAD { \ 934#define INIT_THREAD { \
918 .sp0 = (unsigned long)&init_stack + sizeof(init_stack) \ 935 .sp0 = (unsigned long)&init_stack + sizeof(init_stack) \
diff --git a/arch/x86/include/asm/proto.h b/arch/x86/include/asm/proto.h
index d6a22f92ba77..49fb3ecf3bb3 100644
--- a/arch/x86/include/asm/proto.h
+++ b/arch/x86/include/asm/proto.h
@@ -18,11 +18,7 @@ extern void syscall32_cpu_init(void);
18 18
19extern void check_efer(void); 19extern void check_efer(void);
20 20
21#ifdef CONFIG_X86_BIOS_REBOOT
22extern int reboot_force; 21extern int reboot_force;
23#else
24static const int reboot_force = 0;
25#endif
26 22
27long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); 23long do_arch_prctl(struct task_struct *task, int code, unsigned long addr);
28 24
diff --git a/arch/x86/include/asm/ptrace-abi.h b/arch/x86/include/asm/ptrace-abi.h
index 25f1bb8fc626..8e0f8d199e05 100644
--- a/arch/x86/include/asm/ptrace-abi.h
+++ b/arch/x86/include/asm/ptrace-abi.h
@@ -83,7 +83,7 @@
83#ifdef CONFIG_X86_PTRACE_BTS 83#ifdef CONFIG_X86_PTRACE_BTS
84 84
85#ifndef __ASSEMBLY__ 85#ifndef __ASSEMBLY__
86#include <asm/types.h> 86#include <linux/types.h>
87 87
88/* configuration/status structure used in PTRACE_BTS_CONFIG and 88/* configuration/status structure used in PTRACE_BTS_CONFIG and
89 PTRACE_BTS_STATUS commands. 89 PTRACE_BTS_STATUS commands.
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index 6d34d954c228..e304b66abeea 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -28,7 +28,7 @@ struct pt_regs {
28 int xds; 28 int xds;
29 int xes; 29 int xes;
30 int xfs; 30 int xfs;
31 /* int gs; */ 31 int xgs;
32 long orig_eax; 32 long orig_eax;
33 long eip; 33 long eip;
34 int xcs; 34 int xcs;
@@ -50,7 +50,7 @@ struct pt_regs {
50 unsigned long ds; 50 unsigned long ds;
51 unsigned long es; 51 unsigned long es;
52 unsigned long fs; 52 unsigned long fs;
53 /* int gs; */ 53 unsigned long gs;
54 unsigned long orig_ax; 54 unsigned long orig_ax;
55 unsigned long ip; 55 unsigned long ip;
56 unsigned long cs; 56 unsigned long cs;
diff --git a/arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h b/arch/x86/include/asm/rdc321x_defs.h
index c8e9c8bed3d0..c8e9c8bed3d0 100644
--- a/arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h
+++ b/arch/x86/include/asm/rdc321x_defs.h
diff --git a/arch/x86/include/asm/seccomp_32.h b/arch/x86/include/asm/seccomp_32.h
index a6ad87b352c4..b811d6f5780c 100644
--- a/arch/x86/include/asm/seccomp_32.h
+++ b/arch/x86/include/asm/seccomp_32.h
@@ -1,12 +1,6 @@
1#ifndef _ASM_X86_SECCOMP_32_H 1#ifndef _ASM_X86_SECCOMP_32_H
2#define _ASM_X86_SECCOMP_32_H 2#define _ASM_X86_SECCOMP_32_H
3 3
4#include <linux/thread_info.h>
5
6#ifdef TIF_32BIT
7#error "unexpected TIF_32BIT on i386"
8#endif
9
10#include <linux/unistd.h> 4#include <linux/unistd.h>
11 5
12#define __NR_seccomp_read __NR_read 6#define __NR_seccomp_read __NR_read
diff --git a/arch/x86/include/asm/seccomp_64.h b/arch/x86/include/asm/seccomp_64.h
index 4171bb794e9e..84ec1bd161a5 100644
--- a/arch/x86/include/asm/seccomp_64.h
+++ b/arch/x86/include/asm/seccomp_64.h
@@ -1,14 +1,6 @@
1#ifndef _ASM_X86_SECCOMP_64_H 1#ifndef _ASM_X86_SECCOMP_64_H
2#define _ASM_X86_SECCOMP_64_H 2#define _ASM_X86_SECCOMP_64_H
3 3
4#include <linux/thread_info.h>
5
6#ifdef TIF_32BIT
7#error "unexpected TIF_32BIT on x86_64"
8#else
9#define TIF_32BIT TIF_IA32
10#endif
11
12#include <linux/unistd.h> 4#include <linux/unistd.h>
13#include <asm/ia32_unistd.h> 5#include <asm/ia32_unistd.h>
14 6
diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
index 1dc1b51ac623..14e0ed86a6f9 100644
--- a/arch/x86/include/asm/segment.h
+++ b/arch/x86/include/asm/segment.h
@@ -61,7 +61,7 @@
61 * 61 *
62 * 26 - ESPFIX small SS 62 * 26 - ESPFIX small SS
63 * 27 - per-cpu [ offset to per-cpu data area ] 63 * 27 - per-cpu [ offset to per-cpu data area ]
64 * 28 - unused 64 * 28 - stack_canary-20 [ for stack protector ]
65 * 29 - unused 65 * 29 - unused
66 * 30 - unused 66 * 30 - unused
67 * 31 - TSS for double fault handler 67 * 31 - TSS for double fault handler
@@ -95,6 +95,13 @@
95#define __KERNEL_PERCPU 0 95#define __KERNEL_PERCPU 0
96#endif 96#endif
97 97
98#define GDT_ENTRY_STACK_CANARY (GDT_ENTRY_KERNEL_BASE + 16)
99#ifdef CONFIG_CC_STACKPROTECTOR
100#define __KERNEL_STACK_CANARY (GDT_ENTRY_STACK_CANARY * 8)
101#else
102#define __KERNEL_STACK_CANARY 0
103#endif
104
98#define GDT_ENTRY_DOUBLEFAULT_TSS 31 105#define GDT_ENTRY_DOUBLEFAULT_TSS 31
99 106
100/* 107/*
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index ebe858cdc8a3..05c6f6b11fd5 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -1,33 +1,19 @@
1#ifndef _ASM_X86_SETUP_H 1#ifndef _ASM_X86_SETUP_H
2#define _ASM_X86_SETUP_H 2#define _ASM_X86_SETUP_H
3 3
4#ifdef __KERNEL__
5
4#define COMMAND_LINE_SIZE 2048 6#define COMMAND_LINE_SIZE 2048
5 7
6#ifndef __ASSEMBLY__ 8#ifndef __ASSEMBLY__
7 9
8/* Interrupt control for vSMPowered x86_64 systems */
9void vsmp_init(void);
10
11
12void setup_bios_corruption_check(void);
13
14
15#ifdef CONFIG_X86_VISWS
16extern void visws_early_detect(void);
17extern int is_visws_box(void);
18#else
19static inline void visws_early_detect(void) { }
20static inline int is_visws_box(void) { return 0; }
21#endif
22
23extern int wakeup_secondary_cpu_via_nmi(int apicid, unsigned long start_eip);
24extern int wakeup_secondary_cpu_via_init(int apicid, unsigned long start_eip);
25/* 10/*
26 * Any setup quirks to be performed? 11 * Any setup quirks to be performed?
27 */ 12 */
28struct mpc_cpu; 13struct mpc_cpu;
29struct mpc_bus; 14struct mpc_bus;
30struct mpc_oemtable; 15struct mpc_oemtable;
16
31struct x86_quirks { 17struct x86_quirks {
32 int (*arch_pre_time_init)(void); 18 int (*arch_pre_time_init)(void);
33 int (*arch_time_init)(void); 19 int (*arch_time_init)(void);
@@ -43,20 +29,19 @@ struct x86_quirks {
43 void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name); 29 void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name);
44 void (*mpc_oem_pci_bus)(struct mpc_bus *m); 30 void (*mpc_oem_pci_bus)(struct mpc_bus *m);
45 void (*smp_read_mpc_oem)(struct mpc_oemtable *oemtable, 31 void (*smp_read_mpc_oem)(struct mpc_oemtable *oemtable,
46 unsigned short oemsize); 32 unsigned short oemsize);
47 int (*setup_ioapic_ids)(void); 33 int (*setup_ioapic_ids)(void);
48 int (*update_genapic)(void);
49}; 34};
50 35
51extern struct x86_quirks *x86_quirks; 36extern void x86_quirk_pre_intr_init(void);
52extern unsigned long saved_video_mode; 37extern void x86_quirk_intr_init(void);
53 38
54#ifndef CONFIG_PARAVIRT 39extern void x86_quirk_trap_init(void);
55#define paravirt_post_allocator_init() do {} while (0)
56#endif
57#endif /* __ASSEMBLY__ */
58 40
59#ifdef __KERNEL__ 41extern void x86_quirk_pre_time_init(void);
42extern void x86_quirk_time_init(void);
43
44#endif /* __ASSEMBLY__ */
60 45
61#ifdef __i386__ 46#ifdef __i386__
62 47
@@ -78,6 +63,30 @@ extern unsigned long saved_video_mode;
78#ifndef __ASSEMBLY__ 63#ifndef __ASSEMBLY__
79#include <asm/bootparam.h> 64#include <asm/bootparam.h>
80 65
66/* Interrupt control for vSMPowered x86_64 systems */
67#ifdef CONFIG_X86_VSMP
68void vsmp_init(void);
69#else
70static inline void vsmp_init(void) { }
71#endif
72
73void setup_bios_corruption_check(void);
74
75#ifdef CONFIG_X86_VISWS
76extern void visws_early_detect(void);
77extern int is_visws_box(void);
78#else
79static inline void visws_early_detect(void) { }
80static inline int is_visws_box(void) { return 0; }
81#endif
82
83extern struct x86_quirks *x86_quirks;
84extern unsigned long saved_video_mode;
85
86#ifndef CONFIG_PARAVIRT
87#define paravirt_post_allocator_init() do {} while (0)
88#endif
89
81#ifndef _SETUP 90#ifndef _SETUP
82 91
83/* 92/*
@@ -100,7 +109,6 @@ extern unsigned long init_pg_tables_start;
100extern unsigned long init_pg_tables_end; 109extern unsigned long init_pg_tables_end;
101 110
102#else 111#else
103void __init x86_64_init_pda(void);
104void __init x86_64_start_kernel(char *real_mode); 112void __init x86_64_start_kernel(char *real_mode);
105void __init x86_64_start_reservations(char *real_mode_data); 113void __init x86_64_start_reservations(char *real_mode_data);
106 114
diff --git a/arch/x86/include/asm/mach-default/setup_arch.h b/arch/x86/include/asm/setup_arch.h
index 38846208b548..38846208b548 100644
--- a/arch/x86/include/asm/mach-default/setup_arch.h
+++ b/arch/x86/include/asm/setup_arch.h
diff --git a/arch/x86/include/asm/sigcontext.h b/arch/x86/include/asm/sigcontext.h
index 0afcb5e58acc..ec666491aaa4 100644
--- a/arch/x86/include/asm/sigcontext.h
+++ b/arch/x86/include/asm/sigcontext.h
@@ -2,7 +2,7 @@
2#define _ASM_X86_SIGCONTEXT_H 2#define _ASM_X86_SIGCONTEXT_H
3 3
4#include <linux/compiler.h> 4#include <linux/compiler.h>
5#include <asm/types.h> 5#include <linux/types.h>
6 6
7#define FP_XSTATE_MAGIC1 0x46505853U 7#define FP_XSTATE_MAGIC1 0x46505853U
8#define FP_XSTATE_MAGIC2 0x46505845U 8#define FP_XSTATE_MAGIC2 0x46505845U
diff --git a/arch/x86/include/asm/sigcontext32.h b/arch/x86/include/asm/sigcontext32.h
index 6126188cf3a9..ad1478c4ae12 100644
--- a/arch/x86/include/asm/sigcontext32.h
+++ b/arch/x86/include/asm/sigcontext32.h
@@ -1,6 +1,8 @@
1#ifndef _ASM_X86_SIGCONTEXT32_H 1#ifndef _ASM_X86_SIGCONTEXT32_H
2#define _ASM_X86_SIGCONTEXT32_H 2#define _ASM_X86_SIGCONTEXT32_H
3 3
4#include <linux/types.h>
5
4/* signal context for 32bit programs. */ 6/* signal context for 32bit programs. */
5 7
6#define X86_FXSR_MAGIC 0x0000 8#define X86_FXSR_MAGIC 0x0000
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 19953df61c52..47d0e21f2b9e 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -15,34 +15,8 @@
15# include <asm/io_apic.h> 15# include <asm/io_apic.h>
16# endif 16# endif
17#endif 17#endif
18#include <asm/pda.h>
19#include <asm/thread_info.h> 18#include <asm/thread_info.h>
20 19#include <asm/cpumask.h>
21#ifdef CONFIG_X86_64
22
23extern cpumask_var_t cpu_callin_mask;
24extern cpumask_var_t cpu_callout_mask;
25extern cpumask_var_t cpu_initialized_mask;
26extern cpumask_var_t cpu_sibling_setup_mask;
27
28#else /* CONFIG_X86_32 */
29
30extern cpumask_t cpu_callin_map;
31extern cpumask_t cpu_callout_map;
32extern cpumask_t cpu_initialized;
33extern cpumask_t cpu_sibling_setup_map;
34
35#define cpu_callin_mask ((struct cpumask *)&cpu_callin_map)
36#define cpu_callout_mask ((struct cpumask *)&cpu_callout_map)
37#define cpu_initialized_mask ((struct cpumask *)&cpu_initialized)
38#define cpu_sibling_setup_mask ((struct cpumask *)&cpu_sibling_setup_map)
39
40#endif /* CONFIG_X86_32 */
41
42extern void (*mtrr_hook)(void);
43extern void zap_low_mappings(void);
44
45extern int __cpuinit get_local_pda(int cpu);
46 20
47extern int smp_num_siblings; 21extern int smp_num_siblings;
48extern unsigned int num_processors; 22extern unsigned int num_processors;
@@ -50,9 +24,7 @@ extern unsigned int num_processors;
50DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); 24DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
51DECLARE_PER_CPU(cpumask_t, cpu_core_map); 25DECLARE_PER_CPU(cpumask_t, cpu_core_map);
52DECLARE_PER_CPU(u16, cpu_llc_id); 26DECLARE_PER_CPU(u16, cpu_llc_id);
53#ifdef CONFIG_X86_32
54DECLARE_PER_CPU(int, cpu_number); 27DECLARE_PER_CPU(int, cpu_number);
55#endif
56 28
57static inline struct cpumask *cpu_sibling_mask(int cpu) 29static inline struct cpumask *cpu_sibling_mask(int cpu)
58{ 30{
@@ -167,8 +139,6 @@ void play_dead_common(void);
167void native_send_call_func_ipi(const struct cpumask *mask); 139void native_send_call_func_ipi(const struct cpumask *mask);
168void native_send_call_func_single_ipi(int cpu); 140void native_send_call_func_single_ipi(int cpu);
169 141
170extern void prefill_possible_map(void);
171
172void smp_store_cpu_info(int id); 142void smp_store_cpu_info(int id);
173#define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu) 143#define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu)
174 144
@@ -177,10 +147,6 @@ static inline int num_booting_cpus(void)
177{ 147{
178 return cpumask_weight(cpu_callout_mask); 148 return cpumask_weight(cpu_callout_mask);
179} 149}
180#else
181static inline void prefill_possible_map(void)
182{
183}
184#endif /* CONFIG_SMP */ 150#endif /* CONFIG_SMP */
185 151
186extern unsigned disabled_cpus __cpuinitdata; 152extern unsigned disabled_cpus __cpuinitdata;
@@ -191,11 +157,11 @@ extern unsigned disabled_cpus __cpuinitdata;
191 * from the initial startup. We map APIC_BASE very early in page_setup(), 157 * from the initial startup. We map APIC_BASE very early in page_setup(),
192 * so this is correct in the x86 case. 158 * so this is correct in the x86 case.
193 */ 159 */
194#define raw_smp_processor_id() (x86_read_percpu(cpu_number)) 160#define raw_smp_processor_id() (percpu_read(cpu_number))
195extern int safe_smp_processor_id(void); 161extern int safe_smp_processor_id(void);
196 162
197#elif defined(CONFIG_X86_64_SMP) 163#elif defined(CONFIG_X86_64_SMP)
198#define raw_smp_processor_id() read_pda(cpunumber) 164#define raw_smp_processor_id() (percpu_read(cpu_number))
199 165
200#define stack_smp_processor_id() \ 166#define stack_smp_processor_id() \
201({ \ 167({ \
@@ -205,10 +171,6 @@ extern int safe_smp_processor_id(void);
205}) 171})
206#define safe_smp_processor_id() smp_processor_id() 172#define safe_smp_processor_id() smp_processor_id()
207 173
208#else /* !CONFIG_X86_32_SMP && !CONFIG_X86_64_SMP */
209#define cpu_physical_id(cpu) boot_cpu_physical_apicid
210#define safe_smp_processor_id() 0
211#define stack_smp_processor_id() 0
212#endif 174#endif
213 175
214#ifdef CONFIG_X86_LOCAL_APIC 176#ifdef CONFIG_X86_LOCAL_APIC
@@ -220,28 +182,9 @@ static inline int logical_smp_processor_id(void)
220 return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR)); 182 return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR));
221} 183}
222 184
223#include <mach_apicdef.h>
224static inline unsigned int read_apic_id(void)
225{
226 unsigned int reg;
227
228 reg = *(u32 *)(APIC_BASE + APIC_ID);
229
230 return GET_APIC_ID(reg);
231}
232#endif 185#endif
233 186
234
235# if defined(APIC_DEFINITION) || defined(CONFIG_X86_64)
236extern int hard_smp_processor_id(void); 187extern int hard_smp_processor_id(void);
237# else
238#include <mach_apicdef.h>
239static inline int hard_smp_processor_id(void)
240{
241 /* we don't want to mark this access volatile - bad code generation */
242 return read_apic_id();
243}
244# endif /* APIC_DEFINITION */
245 188
246#else /* CONFIG_X86_LOCAL_APIC */ 189#else /* CONFIG_X86_LOCAL_APIC */
247 190
@@ -251,11 +194,5 @@ static inline int hard_smp_processor_id(void)
251 194
252#endif /* CONFIG_X86_LOCAL_APIC */ 195#endif /* CONFIG_X86_LOCAL_APIC */
253 196
254#ifdef CONFIG_X86_HAS_BOOT_CPU_ID
255extern unsigned char boot_cpu_id;
256#else
257#define boot_cpu_id 0
258#endif
259
260#endif /* __ASSEMBLY__ */ 197#endif /* __ASSEMBLY__ */
261#endif /* _ASM_X86_SMP_H */ 198#endif /* _ASM_X86_SMP_H */
diff --git a/arch/x86/include/asm/mach-default/smpboot_hooks.h b/arch/x86/include/asm/smpboot_hooks.h
index 23bf52103b89..1def60114906 100644
--- a/arch/x86/include/asm/mach-default/smpboot_hooks.h
+++ b/arch/x86/include/asm/smpboot_hooks.h
@@ -13,10 +13,10 @@ static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
13 CMOS_WRITE(0xa, 0xf); 13 CMOS_WRITE(0xa, 0xf);
14 local_flush_tlb(); 14 local_flush_tlb();
15 pr_debug("1.\n"); 15 pr_debug("1.\n");
16 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) = 16 *((volatile unsigned short *)phys_to_virt(apic->trampoline_phys_high)) =
17 start_eip >> 4; 17 start_eip >> 4;
18 pr_debug("2.\n"); 18 pr_debug("2.\n");
19 *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 19 *((volatile unsigned short *)phys_to_virt(apic->trampoline_phys_low)) =
20 start_eip & 0xf; 20 start_eip & 0xf;
21 pr_debug("3.\n"); 21 pr_debug("3.\n");
22} 22}
@@ -34,7 +34,7 @@ static inline void smpboot_restore_warm_reset_vector(void)
34 */ 34 */
35 CMOS_WRITE(0, 0xf); 35 CMOS_WRITE(0, 0xf);
36 36
37 *((volatile long *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 0; 37 *((volatile long *)phys_to_virt(apic->trampoline_phys_low)) = 0;
38} 38}
39 39
40static inline void __init smpboot_setup_io_apic(void) 40static inline void __init smpboot_setup_io_apic(void)
diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
index d17c91981da2..3a5696656680 100644
--- a/arch/x86/include/asm/spinlock.h
+++ b/arch/x86/include/asm/spinlock.h
@@ -172,70 +172,8 @@ static inline int __ticket_spin_is_contended(raw_spinlock_t *lock)
172 return (((tmp >> TICKET_SHIFT) - tmp) & ((1 << TICKET_SHIFT) - 1)) > 1; 172 return (((tmp >> TICKET_SHIFT) - tmp) & ((1 << TICKET_SHIFT) - 1)) > 1;
173} 173}
174 174
175#ifdef CONFIG_PARAVIRT 175#ifndef CONFIG_PARAVIRT
176/*
177 * Define virtualization-friendly old-style lock byte lock, for use in
178 * pv_lock_ops if desired.
179 *
180 * This differs from the pre-2.6.24 spinlock by always using xchgb
181 * rather than decb to take the lock; this allows it to use a
182 * zero-initialized lock structure. It also maintains a 1-byte
183 * contention counter, so that we can implement
184 * __byte_spin_is_contended.
185 */
186struct __byte_spinlock {
187 s8 lock;
188 s8 spinners;
189};
190
191static inline int __byte_spin_is_locked(raw_spinlock_t *lock)
192{
193 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
194 return bl->lock != 0;
195}
196
197static inline int __byte_spin_is_contended(raw_spinlock_t *lock)
198{
199 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
200 return bl->spinners != 0;
201}
202
203static inline void __byte_spin_lock(raw_spinlock_t *lock)
204{
205 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
206 s8 val = 1;
207
208 asm("1: xchgb %1, %0\n"
209 " test %1,%1\n"
210 " jz 3f\n"
211 " " LOCK_PREFIX "incb %2\n"
212 "2: rep;nop\n"
213 " cmpb $1, %0\n"
214 " je 2b\n"
215 " " LOCK_PREFIX "decb %2\n"
216 " jmp 1b\n"
217 "3:"
218 : "+m" (bl->lock), "+q" (val), "+m" (bl->spinners): : "memory");
219}
220
221static inline int __byte_spin_trylock(raw_spinlock_t *lock)
222{
223 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
224 u8 old = 1;
225
226 asm("xchgb %1,%0"
227 : "+m" (bl->lock), "+q" (old) : : "memory");
228 176
229 return old == 0;
230}
231
232static inline void __byte_spin_unlock(raw_spinlock_t *lock)
233{
234 struct __byte_spinlock *bl = (struct __byte_spinlock *)lock;
235 smp_wmb();
236 bl->lock = 0;
237}
238#else /* !CONFIG_PARAVIRT */
239static inline int __raw_spin_is_locked(raw_spinlock_t *lock) 177static inline int __raw_spin_is_locked(raw_spinlock_t *lock)
240{ 178{
241 return __ticket_spin_is_locked(lock); 179 return __ticket_spin_is_locked(lock);
@@ -245,6 +183,7 @@ static inline int __raw_spin_is_contended(raw_spinlock_t *lock)
245{ 183{
246 return __ticket_spin_is_contended(lock); 184 return __ticket_spin_is_contended(lock);
247} 185}
186#define __raw_spin_is_contended __raw_spin_is_contended
248 187
249static __always_inline void __raw_spin_lock(raw_spinlock_t *lock) 188static __always_inline void __raw_spin_lock(raw_spinlock_t *lock)
250{ 189{
@@ -267,7 +206,7 @@ static __always_inline void __raw_spin_lock_flags(raw_spinlock_t *lock,
267 __raw_spin_lock(lock); 206 __raw_spin_lock(lock);
268} 207}
269 208
270#endif /* CONFIG_PARAVIRT */ 209#endif
271 210
272static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock) 211static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock)
273{ 212{
@@ -329,8 +268,7 @@ static inline int __raw_read_trylock(raw_rwlock_t *lock)
329{ 268{
330 atomic_t *count = (atomic_t *)lock; 269 atomic_t *count = (atomic_t *)lock;
331 270
332 atomic_dec(count); 271 if (atomic_dec_return(count) >= 0)
333 if (atomic_read(count) >= 0)
334 return 1; 272 return 1;
335 atomic_inc(count); 273 atomic_inc(count);
336 return 0; 274 return 0;
diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h
new file mode 100644
index 000000000000..c2d742c6e15f
--- /dev/null
+++ b/arch/x86/include/asm/stackprotector.h
@@ -0,0 +1,124 @@
1/*
2 * GCC stack protector support.
3 *
4 * Stack protector works by putting predefined pattern at the start of
5 * the stack frame and verifying that it hasn't been overwritten when
6 * returning from the function. The pattern is called stack canary
7 * and unfortunately gcc requires it to be at a fixed offset from %gs.
8 * On x86_64, the offset is 40 bytes and on x86_32 20 bytes. x86_64
9 * and x86_32 use segment registers differently and thus handles this
10 * requirement differently.
11 *
12 * On x86_64, %gs is shared by percpu area and stack canary. All
13 * percpu symbols are zero based and %gs points to the base of percpu
14 * area. The first occupant of the percpu area is always
15 * irq_stack_union which contains stack_canary at offset 40. Userland
16 * %gs is always saved and restored on kernel entry and exit using
17 * swapgs, so stack protector doesn't add any complexity there.
18 *
19 * On x86_32, it's slightly more complicated. As in x86_64, %gs is
20 * used for userland TLS. Unfortunately, some processors are much
21 * slower at loading segment registers with different value when
22 * entering and leaving the kernel, so the kernel uses %fs for percpu
23 * area and manages %gs lazily so that %gs is switched only when
24 * necessary, usually during task switch.
25 *
26 * As gcc requires the stack canary at %gs:20, %gs can't be managed
27 * lazily if stack protector is enabled, so the kernel saves and
28 * restores userland %gs on kernel entry and exit. This behavior is
29 * controlled by CONFIG_X86_32_LAZY_GS and accessors are defined in
30 * system.h to hide the details.
31 */
32
33#ifndef _ASM_STACKPROTECTOR_H
34#define _ASM_STACKPROTECTOR_H 1
35
36#ifdef CONFIG_CC_STACKPROTECTOR
37
38#include <asm/tsc.h>
39#include <asm/processor.h>
40#include <asm/percpu.h>
41#include <asm/system.h>
42#include <asm/desc.h>
43#include <linux/random.h>
44
45/*
46 * 24 byte read-only segment initializer for stack canary. Linker
47 * can't handle the address bit shifting. Address will be set in
48 * head_32 for boot CPU and setup_per_cpu_areas() for others.
49 */
50#define GDT_STACK_CANARY_INIT \
51 [GDT_ENTRY_STACK_CANARY] = { { { 0x00000018, 0x00409000 } } },
52
53/*
54 * Initialize the stackprotector canary value.
55 *
56 * NOTE: this must only be called from functions that never return,
57 * and it must always be inlined.
58 */
59static __always_inline void boot_init_stack_canary(void)
60{
61 u64 canary;
62 u64 tsc;
63
64#ifdef CONFIG_X86_64
65 BUILD_BUG_ON(offsetof(union irq_stack_union, stack_canary) != 40);
66#endif
67 /*
68 * We both use the random pool and the current TSC as a source
69 * of randomness. The TSC only matters for very early init,
70 * there it already has some randomness on most systems. Later
71 * on during the bootup the random pool has true entropy too.
72 */
73 get_random_bytes(&canary, sizeof(canary));
74 tsc = __native_read_tsc();
75 canary += tsc + (tsc << 32UL);
76
77 current->stack_canary = canary;
78#ifdef CONFIG_X86_64
79 percpu_write(irq_stack_union.stack_canary, canary);
80#else
81 percpu_write(stack_canary, canary);
82#endif
83}
84
85static inline void setup_stack_canary_segment(int cpu)
86{
87#ifdef CONFIG_X86_32
88 unsigned long canary = (unsigned long)&per_cpu(stack_canary, cpu) - 20;
89 struct desc_struct *gdt_table = get_cpu_gdt_table(cpu);
90 struct desc_struct desc;
91
92 desc = gdt_table[GDT_ENTRY_STACK_CANARY];
93 desc.base0 = canary & 0xffff;
94 desc.base1 = (canary >> 16) & 0xff;
95 desc.base2 = (canary >> 24) & 0xff;
96 write_gdt_entry(gdt_table, GDT_ENTRY_STACK_CANARY, &desc, DESCTYPE_S);
97#endif
98}
99
100static inline void load_stack_canary_segment(void)
101{
102#ifdef CONFIG_X86_32
103 asm("mov %0, %%gs" : : "r" (__KERNEL_STACK_CANARY) : "memory");
104#endif
105}
106
107#else /* CC_STACKPROTECTOR */
108
109#define GDT_STACK_CANARY_INIT
110
111/* dummy boot_init_stack_canary() is defined in linux/stackprotector.h */
112
113static inline void setup_stack_canary_segment(int cpu)
114{ }
115
116static inline void load_stack_canary_segment(void)
117{
118#ifdef CONFIG_X86_32
119 asm volatile ("mov %0, %%gs" : : "r" (0));
120#endif
121}
122
123#endif /* CC_STACKPROTECTOR */
124#endif /* _ASM_STACKPROTECTOR_H */
diff --git a/arch/x86/include/asm/summit/apic.h b/arch/x86/include/asm/summit/apic.h
deleted file mode 100644
index 93d2c8667cfe..000000000000
--- a/arch/x86/include/asm/summit/apic.h
+++ /dev/null
@@ -1,202 +0,0 @@
1#ifndef __ASM_SUMMIT_APIC_H
2#define __ASM_SUMMIT_APIC_H
3
4#include <asm/smp.h>
5#include <linux/gfp.h>
6
7#define esr_disable (1)
8#define NO_BALANCE_IRQ (0)
9
10/* In clustered mode, the high nibble of APIC ID is a cluster number.
11 * The low nibble is a 4-bit bitmap. */
12#define XAPIC_DEST_CPUS_SHIFT 4
13#define XAPIC_DEST_CPUS_MASK ((1u << XAPIC_DEST_CPUS_SHIFT) - 1)
14#define XAPIC_DEST_CLUSTER_MASK (XAPIC_DEST_CPUS_MASK << XAPIC_DEST_CPUS_SHIFT)
15
16#define APIC_DFR_VALUE (APIC_DFR_CLUSTER)
17
18static inline const cpumask_t *target_cpus(void)
19{
20 /* CPU_MASK_ALL (0xff) has undefined behaviour with
21 * dest_LowestPrio mode logical clustered apic interrupt routing
22 * Just start on cpu 0. IRQ balancing will spread load
23 */
24 return &cpumask_of_cpu(0);
25}
26
27#define INT_DELIVERY_MODE (dest_LowestPrio)
28#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */
29
30static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
31{
32 return 0;
33}
34
35/* we don't use the phys_cpu_present_map to indicate apicid presence */
36static inline unsigned long check_apicid_present(int bit)
37{
38 return 1;
39}
40
41#define apicid_cluster(apicid) ((apicid) & XAPIC_DEST_CLUSTER_MASK)
42
43extern u8 cpu_2_logical_apicid[];
44
45static inline void init_apic_ldr(void)
46{
47 unsigned long val, id;
48 int count = 0;
49 u8 my_id = (u8)hard_smp_processor_id();
50 u8 my_cluster = (u8)apicid_cluster(my_id);
51#ifdef CONFIG_SMP
52 u8 lid;
53 int i;
54
55 /* Create logical APIC IDs by counting CPUs already in cluster. */
56 for (count = 0, i = nr_cpu_ids; --i >= 0; ) {
57 lid = cpu_2_logical_apicid[i];
58 if (lid != BAD_APICID && apicid_cluster(lid) == my_cluster)
59 ++count;
60 }
61#endif
62 /* We only have a 4 wide bitmap in cluster mode. If a deranged
63 * BIOS puts 5 CPUs in one APIC cluster, we're hosed. */
64 BUG_ON(count >= XAPIC_DEST_CPUS_SHIFT);
65 id = my_cluster | (1UL << count);
66 apic_write(APIC_DFR, APIC_DFR_VALUE);
67 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
68 val |= SET_APIC_LOGICAL_ID(id);
69 apic_write(APIC_LDR, val);
70}
71
72static inline int multi_timer_check(int apic, int irq)
73{
74 return 0;
75}
76
77static inline int apic_id_registered(void)
78{
79 return 1;
80}
81
82static inline void setup_apic_routing(void)
83{
84 printk("Enabling APIC mode: Summit. Using %d I/O APICs\n",
85 nr_ioapics);
86}
87
88static inline int apicid_to_node(int logical_apicid)
89{
90#ifdef CONFIG_SMP
91 return apicid_2_node[hard_smp_processor_id()];
92#else
93 return 0;
94#endif
95}
96
97/* Mapping from cpu number to logical apicid */
98static inline int cpu_to_logical_apicid(int cpu)
99{
100#ifdef CONFIG_SMP
101 if (cpu >= nr_cpu_ids)
102 return BAD_APICID;
103 return (int)cpu_2_logical_apicid[cpu];
104#else
105 return logical_smp_processor_id();
106#endif
107}
108
109static inline int cpu_present_to_apicid(int mps_cpu)
110{
111 if (mps_cpu < nr_cpu_ids)
112 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
113 else
114 return BAD_APICID;
115}
116
117static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_id_map)
118{
119 /* For clustered we don't have a good way to do this yet - hack */
120 return physids_promote(0x0F);
121}
122
123static inline physid_mask_t apicid_to_cpu_present(int apicid)
124{
125 return physid_mask_of_physid(0);
126}
127
128static inline void setup_portio_remap(void)
129{
130}
131
132static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
133{
134 return 1;
135}
136
137static inline void enable_apic_mode(void)
138{
139}
140
141static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
142{
143 int num_bits_set;
144 int cpus_found = 0;
145 int cpu;
146 int apicid;
147
148 num_bits_set = cpus_weight(*cpumask);
149 /* Return id to all */
150 if (num_bits_set >= nr_cpu_ids)
151 return (int) 0xFF;
152 /*
153 * The cpus in the mask must all be on the apic cluster. If are not
154 * on the same apicid cluster return default value of TARGET_CPUS.
155 */
156 cpu = first_cpu(*cpumask);
157 apicid = cpu_to_logical_apicid(cpu);
158 while (cpus_found < num_bits_set) {
159 if (cpu_isset(cpu, *cpumask)) {
160 int new_apicid = cpu_to_logical_apicid(cpu);
161 if (apicid_cluster(apicid) !=
162 apicid_cluster(new_apicid)){
163 printk ("%s: Not a valid mask!\n", __func__);
164 return 0xFF;
165 }
166 apicid = apicid | new_apicid;
167 cpus_found++;
168 }
169 cpu++;
170 }
171 return apicid;
172}
173
174static inline unsigned int cpu_mask_to_apicid_and(const struct cpumask *inmask,
175 const struct cpumask *andmask)
176{
177 int apicid = cpu_to_logical_apicid(0);
178 cpumask_var_t cpumask;
179
180 if (!alloc_cpumask_var(&cpumask, GFP_ATOMIC))
181 return apicid;
182
183 cpumask_and(cpumask, inmask, andmask);
184 cpumask_and(cpumask, cpumask, cpu_online_mask);
185 apicid = cpu_mask_to_apicid(cpumask);
186
187 free_cpumask_var(cpumask);
188 return apicid;
189}
190
191/* cpuid returns the value latched in the HW at reset, not the APIC ID
192 * register's value. For any box whose BIOS changes APIC IDs, like
193 * clustered APIC systems, we must use hard_smp_processor_id.
194 *
195 * See Intel's IA-32 SW Dev's Manual Vol2 under CPUID.
196 */
197static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
198{
199 return hard_smp_processor_id() >> index_msb;
200}
201
202#endif /* __ASM_SUMMIT_APIC_H */
diff --git a/arch/x86/include/asm/summit/apicdef.h b/arch/x86/include/asm/summit/apicdef.h
deleted file mode 100644
index f3fbca1f61c1..000000000000
--- a/arch/x86/include/asm/summit/apicdef.h
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifndef __ASM_SUMMIT_APICDEF_H
2#define __ASM_SUMMIT_APICDEF_H
3
4#define APIC_ID_MASK (0xFF<<24)
5
6static inline unsigned get_apic_id(unsigned long x)
7{
8 return (x>>24)&0xFF;
9}
10
11#define GET_APIC_ID(x) get_apic_id(x)
12
13#endif
diff --git a/arch/x86/include/asm/summit/ipi.h b/arch/x86/include/asm/summit/ipi.h
deleted file mode 100644
index a8a2c24f50cc..000000000000
--- a/arch/x86/include/asm/summit/ipi.h
+++ /dev/null
@@ -1,26 +0,0 @@
1#ifndef __ASM_SUMMIT_IPI_H
2#define __ASM_SUMMIT_IPI_H
3
4void send_IPI_mask_sequence(const cpumask_t *mask, int vector);
5void send_IPI_mask_allbutself(const cpumask_t *mask, int vector);
6
7static inline void send_IPI_mask(const cpumask_t *mask, int vector)
8{
9 send_IPI_mask_sequence(mask, vector);
10}
11
12static inline void send_IPI_allbutself(int vector)
13{
14 cpumask_t mask = cpu_online_map;
15 cpu_clear(smp_processor_id(), mask);
16
17 if (!cpus_empty(mask))
18 send_IPI_mask(&mask, vector);
19}
20
21static inline void send_IPI_all(int vector)
22{
23 send_IPI_mask(&cpu_online_map, vector);
24}
25
26#endif /* __ASM_SUMMIT_IPI_H */
diff --git a/arch/x86/include/asm/summit/mpparse.h b/arch/x86/include/asm/summit/mpparse.h
deleted file mode 100644
index 380e86c02363..000000000000
--- a/arch/x86/include/asm/summit/mpparse.h
+++ /dev/null
@@ -1,109 +0,0 @@
1#ifndef __ASM_SUMMIT_MPPARSE_H
2#define __ASM_SUMMIT_MPPARSE_H
3
4#include <asm/tsc.h>
5
6extern int use_cyclone;
7
8#ifdef CONFIG_X86_SUMMIT_NUMA
9extern void setup_summit(void);
10#else
11#define setup_summit() {}
12#endif
13
14static inline int mps_oem_check(struct mpc_table *mpc, char *oem,
15 char *productid)
16{
17 if (!strncmp(oem, "IBM ENSW", 8) &&
18 (!strncmp(productid, "VIGIL SMP", 9)
19 || !strncmp(productid, "EXA", 3)
20 || !strncmp(productid, "RUTHLESS SMP", 12))){
21 mark_tsc_unstable("Summit based system");
22 use_cyclone = 1; /*enable cyclone-timer*/
23 setup_summit();
24 return 1;
25 }
26 return 0;
27}
28
29/* Hook from generic ACPI tables.c */
30static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
31{
32 if (!strncmp(oem_id, "IBM", 3) &&
33 (!strncmp(oem_table_id, "SERVIGIL", 8)
34 || !strncmp(oem_table_id, "EXA", 3))){
35 mark_tsc_unstable("Summit based system");
36 use_cyclone = 1; /*enable cyclone-timer*/
37 setup_summit();
38 return 1;
39 }
40 return 0;
41}
42
43struct rio_table_hdr {
44 unsigned char version; /* Version number of this data structure */
45 /* Version 3 adds chassis_num & WP_index */
46 unsigned char num_scal_dev; /* # of Scalability devices (Twisters for Vigil) */
47 unsigned char num_rio_dev; /* # of RIO I/O devices (Cyclones and Winnipegs) */
48} __attribute__((packed));
49
50struct scal_detail {
51 unsigned char node_id; /* Scalability Node ID */
52 unsigned long CBAR; /* Address of 1MB register space */
53 unsigned char port0node; /* Node ID port connected to: 0xFF=None */
54 unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */
55 unsigned char port1node; /* Node ID port connected to: 0xFF = None */
56 unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */
57 unsigned char port2node; /* Node ID port connected to: 0xFF = None */
58 unsigned char port2port; /* Port num port connected to: 0,1,2, or 0xFF=None */
59 unsigned char chassis_num; /* 1 based Chassis number (1 = boot node) */
60} __attribute__((packed));
61
62struct rio_detail {
63 unsigned char node_id; /* RIO Node ID */
64 unsigned long BBAR; /* Address of 1MB register space */
65 unsigned char type; /* Type of device */
66 unsigned char owner_id; /* For WPEG: Node ID of Cyclone that owns this WPEG*/
67 /* For CYC: Node ID of Twister that owns this CYC */
68 unsigned char port0node; /* Node ID port connected to: 0xFF=None */
69 unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */
70 unsigned char port1node; /* Node ID port connected to: 0xFF=None */
71 unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */
72 unsigned char first_slot; /* For WPEG: Lowest slot number below this WPEG */
73 /* For CYC: 0 */
74 unsigned char status; /* For WPEG: Bit 0 = 1 : the XAPIC is used */
75 /* = 0 : the XAPIC is not used, ie:*/
76 /* ints fwded to another XAPIC */
77 /* Bits1:7 Reserved */
78 /* For CYC: Bits0:7 Reserved */
79 unsigned char WP_index; /* For WPEG: WPEG instance index - lower ones have */
80 /* lower slot numbers/PCI bus numbers */
81 /* For CYC: No meaning */
82 unsigned char chassis_num; /* 1 based Chassis number */
83 /* For LookOut WPEGs this field indicates the */
84 /* Expansion Chassis #, enumerated from Boot */
85 /* Node WPEG external port, then Boot Node CYC */
86 /* external port, then Next Vigil chassis WPEG */
87 /* external port, etc. */
88 /* Shared Lookouts have only 1 chassis number (the */
89 /* first one assigned) */
90} __attribute__((packed));
91
92
93typedef enum {
94 CompatTwister = 0, /* Compatibility Twister */
95 AltTwister = 1, /* Alternate Twister of internal 8-way */
96 CompatCyclone = 2, /* Compatibility Cyclone */
97 AltCyclone = 3, /* Alternate Cyclone of internal 8-way */
98 CompatWPEG = 4, /* Compatibility WPEG */
99 AltWPEG = 5, /* Second Planar WPEG */
100 LookOutAWPEG = 6, /* LookOut WPEG */
101 LookOutBWPEG = 7, /* LookOut WPEG */
102} node_type;
103
104static inline int is_WPEG(struct rio_detail *rio){
105 return (rio->type == CompatWPEG || rio->type == AltWPEG ||
106 rio->type == LookOutAWPEG || rio->type == LookOutBWPEG);
107}
108
109#endif /* __ASM_SUMMIT_MPPARSE_H */
diff --git a/arch/x86/include/asm/swab.h b/arch/x86/include/asm/swab.h
index 306d4178ffc9..557cd9f00661 100644
--- a/arch/x86/include/asm/swab.h
+++ b/arch/x86/include/asm/swab.h
@@ -1,7 +1,7 @@
1#ifndef _ASM_X86_SWAB_H 1#ifndef _ASM_X86_SWAB_H
2#define _ASM_X86_SWAB_H 2#define _ASM_X86_SWAB_H
3 3
4#include <asm/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
6 6
7static inline __attribute_const__ __u32 __arch_swab32(__u32 val) 7static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h
index 9c6797c3e56c..7043408f6904 100644
--- a/arch/x86/include/asm/syscalls.h
+++ b/arch/x86/include/asm/syscalls.h
@@ -29,21 +29,21 @@ asmlinkage int sys_get_thread_area(struct user_desc __user *);
29/* X86_32 only */ 29/* X86_32 only */
30#ifdef CONFIG_X86_32 30#ifdef CONFIG_X86_32
31/* kernel/process_32.c */ 31/* kernel/process_32.c */
32asmlinkage int sys_fork(struct pt_regs); 32int sys_fork(struct pt_regs *);
33asmlinkage int sys_clone(struct pt_regs); 33int sys_clone(struct pt_regs *);
34asmlinkage int sys_vfork(struct pt_regs); 34int sys_vfork(struct pt_regs *);
35asmlinkage int sys_execve(struct pt_regs); 35int sys_execve(struct pt_regs *);
36 36
37/* kernel/signal_32.c */ 37/* kernel/signal_32.c */
38asmlinkage int sys_sigsuspend(int, int, old_sigset_t); 38asmlinkage int sys_sigsuspend(int, int, old_sigset_t);
39asmlinkage int sys_sigaction(int, const struct old_sigaction __user *, 39asmlinkage int sys_sigaction(int, const struct old_sigaction __user *,
40 struct old_sigaction __user *); 40 struct old_sigaction __user *);
41asmlinkage int sys_sigaltstack(unsigned long); 41int sys_sigaltstack(struct pt_regs *);
42asmlinkage unsigned long sys_sigreturn(unsigned long); 42unsigned long sys_sigreturn(struct pt_regs *);
43asmlinkage int sys_rt_sigreturn(struct pt_regs); 43long sys_rt_sigreturn(struct pt_regs *);
44 44
45/* kernel/ioport.c */ 45/* kernel/ioport.c */
46asmlinkage long sys_iopl(unsigned long); 46long sys_iopl(struct pt_regs *);
47 47
48/* kernel/sys_i386_32.c */ 48/* kernel/sys_i386_32.c */
49asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long, 49asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long,
@@ -59,8 +59,8 @@ struct oldold_utsname;
59asmlinkage int sys_olduname(struct oldold_utsname __user *); 59asmlinkage int sys_olduname(struct oldold_utsname __user *);
60 60
61/* kernel/vm86_32.c */ 61/* kernel/vm86_32.c */
62asmlinkage int sys_vm86old(struct pt_regs); 62int sys_vm86old(struct pt_regs *);
63asmlinkage int sys_vm86(struct pt_regs); 63int sys_vm86(struct pt_regs *);
64 64
65#else /* CONFIG_X86_32 */ 65#else /* CONFIG_X86_32 */
66 66
@@ -74,6 +74,7 @@ asmlinkage long sys_vfork(struct pt_regs *);
74asmlinkage long sys_execve(char __user *, char __user * __user *, 74asmlinkage long sys_execve(char __user *, char __user * __user *,
75 char __user * __user *, 75 char __user * __user *,
76 struct pt_regs *); 76 struct pt_regs *);
77long sys_arch_prctl(int, unsigned long);
77 78
78/* kernel/ioport.c */ 79/* kernel/ioport.c */
79asmlinkage long sys_iopl(unsigned int, struct pt_regs *); 80asmlinkage long sys_iopl(unsigned int, struct pt_regs *);
@@ -81,7 +82,7 @@ asmlinkage long sys_iopl(unsigned int, struct pt_regs *);
81/* kernel/signal_64.c */ 82/* kernel/signal_64.c */
82asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *, 83asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *,
83 struct pt_regs *); 84 struct pt_regs *);
84asmlinkage long sys_rt_sigreturn(struct pt_regs *); 85long sys_rt_sigreturn(struct pt_regs *);
85 86
86/* kernel/sys_x86_64.c */ 87/* kernel/sys_x86_64.c */
87asmlinkage long sys_mmap(unsigned long, unsigned long, unsigned long, 88asmlinkage long sys_mmap(unsigned long, unsigned long, unsigned long,
diff --git a/arch/x86/include/asm/system.h b/arch/x86/include/asm/system.h
index 8e626ea33a1a..643c59b4bc6e 100644
--- a/arch/x86/include/asm/system.h
+++ b/arch/x86/include/asm/system.h
@@ -20,9 +20,26 @@
20struct task_struct; /* one of the stranger aspects of C forward declarations */ 20struct task_struct; /* one of the stranger aspects of C forward declarations */
21struct task_struct *__switch_to(struct task_struct *prev, 21struct task_struct *__switch_to(struct task_struct *prev,
22 struct task_struct *next); 22 struct task_struct *next);
23struct tss_struct;
24void __switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
25 struct tss_struct *tss);
23 26
24#ifdef CONFIG_X86_32 27#ifdef CONFIG_X86_32
25 28
29#ifdef CONFIG_CC_STACKPROTECTOR
30#define __switch_canary \
31 "movl %P[task_canary](%[next]), %%ebx\n\t" \
32 "movl %%ebx, "__percpu_arg([stack_canary])"\n\t"
33#define __switch_canary_oparam \
34 , [stack_canary] "=m" (per_cpu_var(stack_canary))
35#define __switch_canary_iparam \
36 , [task_canary] "i" (offsetof(struct task_struct, stack_canary))
37#else /* CC_STACKPROTECTOR */
38#define __switch_canary
39#define __switch_canary_oparam
40#define __switch_canary_iparam
41#endif /* CC_STACKPROTECTOR */
42
26/* 43/*
27 * Saving eflags is important. It switches not only IOPL between tasks, 44 * Saving eflags is important. It switches not only IOPL between tasks,
28 * it also protects other tasks from NT leaking through sysenter etc. 45 * it also protects other tasks from NT leaking through sysenter etc.
@@ -44,6 +61,7 @@ do { \
44 "movl %[next_sp],%%esp\n\t" /* restore ESP */ \ 61 "movl %[next_sp],%%esp\n\t" /* restore ESP */ \
45 "movl $1f,%[prev_ip]\n\t" /* save EIP */ \ 62 "movl $1f,%[prev_ip]\n\t" /* save EIP */ \
46 "pushl %[next_ip]\n\t" /* restore EIP */ \ 63 "pushl %[next_ip]\n\t" /* restore EIP */ \
64 __switch_canary \
47 "jmp __switch_to\n" /* regparm call */ \ 65 "jmp __switch_to\n" /* regparm call */ \
48 "1:\t" \ 66 "1:\t" \
49 "popl %%ebp\n\t" /* restore EBP */ \ 67 "popl %%ebp\n\t" /* restore EBP */ \
@@ -58,6 +76,8 @@ do { \
58 "=b" (ebx), "=c" (ecx), "=d" (edx), \ 76 "=b" (ebx), "=c" (ecx), "=d" (edx), \
59 "=S" (esi), "=D" (edi) \ 77 "=S" (esi), "=D" (edi) \
60 \ 78 \
79 __switch_canary_oparam \
80 \
61 /* input parameters: */ \ 81 /* input parameters: */ \
62 : [next_sp] "m" (next->thread.sp), \ 82 : [next_sp] "m" (next->thread.sp), \
63 [next_ip] "m" (next->thread.ip), \ 83 [next_ip] "m" (next->thread.ip), \
@@ -66,6 +86,8 @@ do { \
66 [prev] "a" (prev), \ 86 [prev] "a" (prev), \
67 [next] "d" (next) \ 87 [next] "d" (next) \
68 \ 88 \
89 __switch_canary_iparam \
90 \
69 : /* reloaded segment registers */ \ 91 : /* reloaded segment registers */ \
70 "memory"); \ 92 "memory"); \
71} while (0) 93} while (0)
@@ -86,27 +108,44 @@ do { \
86 , "rcx", "rbx", "rdx", "r8", "r9", "r10", "r11", \ 108 , "rcx", "rbx", "rdx", "r8", "r9", "r10", "r11", \
87 "r12", "r13", "r14", "r15" 109 "r12", "r13", "r14", "r15"
88 110
111#ifdef CONFIG_CC_STACKPROTECTOR
112#define __switch_canary \
113 "movq %P[task_canary](%%rsi),%%r8\n\t" \
114 "movq %%r8,"__percpu_arg([gs_canary])"\n\t"
115#define __switch_canary_oparam \
116 , [gs_canary] "=m" (per_cpu_var(irq_stack_union.stack_canary))
117#define __switch_canary_iparam \
118 , [task_canary] "i" (offsetof(struct task_struct, stack_canary))
119#else /* CC_STACKPROTECTOR */
120#define __switch_canary
121#define __switch_canary_oparam
122#define __switch_canary_iparam
123#endif /* CC_STACKPROTECTOR */
124
89/* Save restore flags to clear handle leaking NT */ 125/* Save restore flags to clear handle leaking NT */
90#define switch_to(prev, next, last) \ 126#define switch_to(prev, next, last) \
91 asm volatile(SAVE_CONTEXT \ 127 asm volatile(SAVE_CONTEXT \
92 "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ 128 "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \
93 "movq %P[threadrsp](%[next]),%%rsp\n\t" /* restore RSP */ \ 129 "movq %P[threadrsp](%[next]),%%rsp\n\t" /* restore RSP */ \
94 "call __switch_to\n\t" \ 130 "call __switch_to\n\t" \
95 ".globl thread_return\n" \ 131 ".globl thread_return\n" \
96 "thread_return:\n\t" \ 132 "thread_return:\n\t" \
97 "movq %%gs:%P[pda_pcurrent],%%rsi\n\t" \ 133 "movq "__percpu_arg([current_task])",%%rsi\n\t" \
134 __switch_canary \
98 "movq %P[thread_info](%%rsi),%%r8\n\t" \ 135 "movq %P[thread_info](%%rsi),%%r8\n\t" \
99 LOCK_PREFIX "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \
100 "movq %%rax,%%rdi\n\t" \ 136 "movq %%rax,%%rdi\n\t" \
101 "jc ret_from_fork\n\t" \ 137 "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \
138 "jnz ret_from_fork\n\t" \
102 RESTORE_CONTEXT \ 139 RESTORE_CONTEXT \
103 : "=a" (last) \ 140 : "=a" (last) \
141 __switch_canary_oparam \
104 : [next] "S" (next), [prev] "D" (prev), \ 142 : [next] "S" (next), [prev] "D" (prev), \
105 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \ 143 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
106 [ti_flags] "i" (offsetof(struct thread_info, flags)), \ 144 [ti_flags] "i" (offsetof(struct thread_info, flags)), \
107 [tif_fork] "i" (TIF_FORK), \ 145 [_tif_fork] "i" (_TIF_FORK), \
108 [thread_info] "i" (offsetof(struct task_struct, stack)), \ 146 [thread_info] "i" (offsetof(struct task_struct, stack)), \
109 [pda_pcurrent] "i" (offsetof(struct x8664_pda, pcurrent)) \ 147 [current_task] "m" (per_cpu_var(current_task)) \
148 __switch_canary_iparam \
110 : "memory", "cc" __EXTRA_CLOBBER) 149 : "memory", "cc" __EXTRA_CLOBBER)
111#endif 150#endif
112 151
@@ -165,6 +204,25 @@ extern void native_load_gs_index(unsigned);
165#define savesegment(seg, value) \ 204#define savesegment(seg, value) \
166 asm("mov %%" #seg ",%0":"=r" (value) : : "memory") 205 asm("mov %%" #seg ",%0":"=r" (value) : : "memory")
167 206
207/*
208 * x86_32 user gs accessors.
209 */
210#ifdef CONFIG_X86_32
211#ifdef CONFIG_X86_32_LAZY_GS
212#define get_user_gs(regs) (u16)({unsigned long v; savesegment(gs, v); v;})
213#define set_user_gs(regs, v) loadsegment(gs, (unsigned long)(v))
214#define task_user_gs(tsk) ((tsk)->thread.gs)
215#define lazy_save_gs(v) savesegment(gs, (v))
216#define lazy_load_gs(v) loadsegment(gs, (v))
217#else /* X86_32_LAZY_GS */
218#define get_user_gs(regs) (u16)((regs)->gs)
219#define set_user_gs(regs, v) do { (regs)->gs = (v); } while (0)
220#define task_user_gs(tsk) (task_pt_regs(tsk)->gs)
221#define lazy_save_gs(v) do { } while (0)
222#define lazy_load_gs(v) do { } while (0)
223#endif /* X86_32_LAZY_GS */
224#endif /* X86_32 */
225
168static inline unsigned long get_limit(unsigned long segment) 226static inline unsigned long get_limit(unsigned long segment)
169{ 227{
170 unsigned long __limit; 228 unsigned long __limit;
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
index 98789647baa9..df9d5f78385e 100644
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@ -40,6 +40,7 @@ struct thread_info {
40 */ 40 */
41 __u8 supervisor_stack[0]; 41 __u8 supervisor_stack[0];
42#endif 42#endif
43 int uaccess_err;
43}; 44};
44 45
45#define INIT_THREAD_INFO(tsk) \ 46#define INIT_THREAD_INFO(tsk) \
@@ -194,25 +195,21 @@ static inline struct thread_info *current_thread_info(void)
194 195
195#else /* X86_32 */ 196#else /* X86_32 */
196 197
197#include <asm/pda.h> 198#include <asm/percpu.h>
199#define KERNEL_STACK_OFFSET (5*8)
198 200
199/* 201/*
200 * macros/functions for gaining access to the thread information structure 202 * macros/functions for gaining access to the thread information structure
201 * preempt_count needs to be 1 initially, until the scheduler is functional. 203 * preempt_count needs to be 1 initially, until the scheduler is functional.
202 */ 204 */
203#ifndef __ASSEMBLY__ 205#ifndef __ASSEMBLY__
204static inline struct thread_info *current_thread_info(void) 206DECLARE_PER_CPU(unsigned long, kernel_stack);
205{
206 struct thread_info *ti;
207 ti = (void *)(read_pda(kernelstack) + PDA_STACKOFFSET - THREAD_SIZE);
208 return ti;
209}
210 207
211/* do not use in interrupt context */ 208static inline struct thread_info *current_thread_info(void)
212static inline struct thread_info *stack_thread_info(void)
213{ 209{
214 struct thread_info *ti; 210 struct thread_info *ti;
215 asm("andq %%rsp,%0; " : "=r" (ti) : "0" (~(THREAD_SIZE - 1))); 211 ti = (void *)(percpu_read(kernel_stack) +
212 KERNEL_STACK_OFFSET - THREAD_SIZE);
216 return ti; 213 return ti;
217} 214}
218 215
@@ -220,8 +217,8 @@ static inline struct thread_info *stack_thread_info(void)
220 217
221/* how to get the thread information struct from ASM */ 218/* how to get the thread information struct from ASM */
222#define GET_THREAD_INFO(reg) \ 219#define GET_THREAD_INFO(reg) \
223 movq %gs:pda_kernelstack,reg ; \ 220 movq PER_CPU_VAR(kernel_stack),reg ; \
224 subq $(THREAD_SIZE-PDA_STACKOFFSET),reg 221 subq $(THREAD_SIZE-KERNEL_STACK_OFFSET),reg
225 222
226#endif 223#endif
227 224
diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index 2bb6a835c453..a81195eaa2b3 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -3,6 +3,7 @@
3#include <linux/init.h> 3#include <linux/init.h>
4#include <linux/pm.h> 4#include <linux/pm.h>
5#include <linux/percpu.h> 5#include <linux/percpu.h>
6#include <linux/interrupt.h>
6 7
7#define TICK_SIZE (tick_nsec / 1000) 8#define TICK_SIZE (tick_nsec / 1000)
8 9
@@ -12,6 +13,7 @@ unsigned long native_calibrate_tsc(void);
12#ifdef CONFIG_X86_32 13#ifdef CONFIG_X86_32
13extern int timer_ack; 14extern int timer_ack;
14extern int recalibrate_cpu_khz(void); 15extern int recalibrate_cpu_khz(void);
16extern irqreturn_t timer_interrupt(int irq, void *dev_id);
15#endif /* CONFIG_X86_32 */ 17#endif /* CONFIG_X86_32 */
16 18
17extern int no_timer_check; 19extern int no_timer_check;
diff --git a/arch/x86/include/asm/timex.h b/arch/x86/include/asm/timex.h
index 1287dc1347d6..b5c9d45c981f 100644
--- a/arch/x86/include/asm/timex.h
+++ b/arch/x86/include/asm/timex.h
@@ -1,18 +1,13 @@
1/* x86 architecture timex specifications */
2#ifndef _ASM_X86_TIMEX_H 1#ifndef _ASM_X86_TIMEX_H
3#define _ASM_X86_TIMEX_H 2#define _ASM_X86_TIMEX_H
4 3
5#include <asm/processor.h> 4#include <asm/processor.h>
6#include <asm/tsc.h> 5#include <asm/tsc.h>
7 6
8#ifdef CONFIG_X86_ELAN 7/* The PIT ticks at this frequency (in HZ): */
9# define PIT_TICK_RATE 1189200 /* AMD Elan has different frequency! */ 8#define PIT_TICK_RATE 1193182
10#elif defined(CONFIG_X86_RDC321X) 9
11# define PIT_TICK_RATE 1041667 /* Underlying HZ for R8610 */ 10#define CLOCK_TICK_RATE PIT_TICK_RATE
12#else
13# define PIT_TICK_RATE 1193182 /* Underlying HZ */
14#endif
15#define CLOCK_TICK_RATE PIT_TICK_RATE
16 11
17#define ARCH_HAS_READ_CURRENT_TIMER 12#define ARCH_HAS_READ_CURRENT_TIMER
18 13
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
index f4e1b550ce61..d3539f998f88 100644
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -148,20 +148,17 @@ void native_flush_tlb_others(const struct cpumask *cpumask,
148#define TLBSTATE_OK 1 148#define TLBSTATE_OK 1
149#define TLBSTATE_LAZY 2 149#define TLBSTATE_LAZY 2
150 150
151#ifdef CONFIG_X86_32
152struct tlb_state { 151struct tlb_state {
153 struct mm_struct *active_mm; 152 struct mm_struct *active_mm;
154 int state; 153 int state;
155 char __cacheline_padding[L1_CACHE_BYTES-8];
156}; 154};
157DECLARE_PER_CPU(struct tlb_state, cpu_tlbstate); 155DECLARE_PER_CPU(struct tlb_state, cpu_tlbstate);
158 156
159void reset_lazy_tlbstate(void);
160#else
161static inline void reset_lazy_tlbstate(void) 157static inline void reset_lazy_tlbstate(void)
162{ 158{
159 percpu_write(cpu_tlbstate.state, 0);
160 percpu_write(cpu_tlbstate.active_mm, &init_mm);
163} 161}
164#endif
165 162
166#endif /* SMP */ 163#endif /* SMP */
167 164
@@ -175,4 +172,6 @@ static inline void flush_tlb_kernel_range(unsigned long start,
175 flush_tlb_all(); 172 flush_tlb_all();
176} 173}
177 174
175extern void zap_low_mappings(void);
176
178#endif /* _ASM_X86_TLBFLUSH_H */ 177#endif /* _ASM_X86_TLBFLUSH_H */
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index d0c68e291635..77cfb2cfb386 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -74,6 +74,8 @@ static inline const struct cpumask *cpumask_of_node(int node)
74 return &node_to_cpumask_map[node]; 74 return &node_to_cpumask_map[node];
75} 75}
76 76
77static inline void setup_node_to_cpumask_map(void) { }
78
77#else /* CONFIG_X86_64 */ 79#else /* CONFIG_X86_64 */
78 80
79/* Mappings between node number and cpus on that node. */ 81/* Mappings between node number and cpus on that node. */
@@ -83,7 +85,8 @@ extern cpumask_t *node_to_cpumask_map;
83DECLARE_EARLY_PER_CPU(int, x86_cpu_to_node_map); 85DECLARE_EARLY_PER_CPU(int, x86_cpu_to_node_map);
84 86
85/* Returns the number of the current Node. */ 87/* Returns the number of the current Node. */
86#define numa_node_id() read_pda(nodenumber) 88DECLARE_PER_CPU(int, node_number);
89#define numa_node_id() percpu_read(node_number)
87 90
88#ifdef CONFIG_DEBUG_PER_CPU_MAPS 91#ifdef CONFIG_DEBUG_PER_CPU_MAPS
89extern int cpu_to_node(int cpu); 92extern int cpu_to_node(int cpu);
@@ -102,10 +105,7 @@ static inline int cpu_to_node(int cpu)
102/* Same function but used if called before per_cpu areas are setup */ 105/* Same function but used if called before per_cpu areas are setup */
103static inline int early_cpu_to_node(int cpu) 106static inline int early_cpu_to_node(int cpu)
104{ 107{
105 if (early_per_cpu_ptr(x86_cpu_to_node_map)) 108 return early_per_cpu(x86_cpu_to_node_map, cpu);
106 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
107
108 return per_cpu(x86_cpu_to_node_map, cpu);
109} 109}
110 110
111/* Returns a pointer to the cpumask of CPUs on Node 'node'. */ 111/* Returns a pointer to the cpumask of CPUs on Node 'node'. */
@@ -122,6 +122,8 @@ static inline cpumask_t node_to_cpumask(int node)
122 122
123#endif /* !CONFIG_DEBUG_PER_CPU_MAPS */ 123#endif /* !CONFIG_DEBUG_PER_CPU_MAPS */
124 124
125extern void setup_node_to_cpumask_map(void);
126
125/* 127/*
126 * Replace default node_to_cpumask_ptr with optimized version 128 * Replace default node_to_cpumask_ptr with optimized version
127 * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)" 129 * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)"
@@ -220,6 +222,8 @@ static inline int node_to_first_cpu(int node)
220 return first_cpu(cpu_online_map); 222 return first_cpu(cpu_online_map);
221} 223}
222 224
225static inline void setup_node_to_cpumask_map(void) { }
226
223/* 227/*
224 * Replace default node_to_cpumask_ptr with optimized version 228 * Replace default node_to_cpumask_ptr with optimized version
225 * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)" 229 * Deprecated: use "const struct cpumask *mask = cpumask_of_node(node)"
diff --git a/arch/x86/include/asm/trampoline.h b/arch/x86/include/asm/trampoline.h
index 780ba0ab94f9..90f06c25221d 100644
--- a/arch/x86/include/asm/trampoline.h
+++ b/arch/x86/include/asm/trampoline.h
@@ -13,6 +13,7 @@ extern unsigned char *trampoline_base;
13 13
14extern unsigned long init_rsp; 14extern unsigned long init_rsp;
15extern unsigned long initial_code; 15extern unsigned long initial_code;
16extern unsigned long initial_gs;
16 17
17#define TRAMPOLINE_SIZE roundup(trampoline_end - trampoline_data, PAGE_SIZE) 18#define TRAMPOLINE_SIZE roundup(trampoline_end - trampoline_data, PAGE_SIZE)
18#define TRAMPOLINE_BASE 0x6000 19#define TRAMPOLINE_BASE 0x6000
diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
index 2ee0a3bceedf..0d5342515b86 100644
--- a/arch/x86/include/asm/traps.h
+++ b/arch/x86/include/asm/traps.h
@@ -77,7 +77,7 @@ extern int panic_on_unrecovered_nmi;
77extern int kstack_depth_to_print; 77extern int kstack_depth_to_print;
78 78
79void math_error(void __user *); 79void math_error(void __user *);
80asmlinkage void math_emulate(long); 80void math_emulate(struct math_emu_info *);
81#ifdef CONFIG_X86_32 81#ifdef CONFIG_X86_32
82unsigned long patch_espfix_desc(unsigned long, unsigned long); 82unsigned long patch_espfix_desc(unsigned long, unsigned long);
83#else 83#else
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index 4340055b7559..b685ece89d5c 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -121,7 +121,7 @@ extern int __get_user_bad(void);
121 121
122#define __get_user_x(size, ret, x, ptr) \ 122#define __get_user_x(size, ret, x, ptr) \
123 asm volatile("call __get_user_" #size \ 123 asm volatile("call __get_user_" #size \
124 : "=a" (ret),"=d" (x) \ 124 : "=a" (ret), "=d" (x) \
125 : "0" (ptr)) \ 125 : "0" (ptr)) \
126 126
127/* Careful: we have to cast the result to the type of the pointer 127/* Careful: we have to cast the result to the type of the pointer
@@ -181,12 +181,12 @@ extern int __get_user_bad(void);
181 181
182#define __put_user_x(size, x, ptr, __ret_pu) \ 182#define __put_user_x(size, x, ptr, __ret_pu) \
183 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \ 183 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
184 :"0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx") 184 : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
185 185
186 186
187 187
188#ifdef CONFIG_X86_32 188#ifdef CONFIG_X86_32
189#define __put_user_u64(x, addr, err) \ 189#define __put_user_asm_u64(x, addr, err, errret) \
190 asm volatile("1: movl %%eax,0(%2)\n" \ 190 asm volatile("1: movl %%eax,0(%2)\n" \
191 "2: movl %%edx,4(%2)\n" \ 191 "2: movl %%edx,4(%2)\n" \
192 "3:\n" \ 192 "3:\n" \
@@ -197,14 +197,24 @@ extern int __get_user_bad(void);
197 _ASM_EXTABLE(1b, 4b) \ 197 _ASM_EXTABLE(1b, 4b) \
198 _ASM_EXTABLE(2b, 4b) \ 198 _ASM_EXTABLE(2b, 4b) \
199 : "=r" (err) \ 199 : "=r" (err) \
200 : "A" (x), "r" (addr), "i" (-EFAULT), "0" (err)) 200 : "A" (x), "r" (addr), "i" (errret), "0" (err))
201
202#define __put_user_asm_ex_u64(x, addr) \
203 asm volatile("1: movl %%eax,0(%1)\n" \
204 "2: movl %%edx,4(%1)\n" \
205 "3:\n" \
206 _ASM_EXTABLE(1b, 2b - 1b) \
207 _ASM_EXTABLE(2b, 3b - 2b) \
208 : : "A" (x), "r" (addr))
201 209
202#define __put_user_x8(x, ptr, __ret_pu) \ 210#define __put_user_x8(x, ptr, __ret_pu) \
203 asm volatile("call __put_user_8" : "=a" (__ret_pu) \ 211 asm volatile("call __put_user_8" : "=a" (__ret_pu) \
204 : "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx") 212 : "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
205#else 213#else
206#define __put_user_u64(x, ptr, retval) \ 214#define __put_user_asm_u64(x, ptr, retval, errret) \
207 __put_user_asm(x, ptr, retval, "q", "", "Zr", -EFAULT) 215 __put_user_asm(x, ptr, retval, "q", "", "Zr", errret)
216#define __put_user_asm_ex_u64(x, addr) \
217 __put_user_asm_ex(x, addr, "q", "", "Zr")
208#define __put_user_x8(x, ptr, __ret_pu) __put_user_x(8, x, ptr, __ret_pu) 218#define __put_user_x8(x, ptr, __ret_pu) __put_user_x(8, x, ptr, __ret_pu)
209#endif 219#endif
210 220
@@ -276,10 +286,32 @@ do { \
276 __put_user_asm(x, ptr, retval, "w", "w", "ir", errret); \ 286 __put_user_asm(x, ptr, retval, "w", "w", "ir", errret); \
277 break; \ 287 break; \
278 case 4: \ 288 case 4: \
279 __put_user_asm(x, ptr, retval, "l", "k", "ir", errret);\ 289 __put_user_asm(x, ptr, retval, "l", "k", "ir", errret); \
280 break; \ 290 break; \
281 case 8: \ 291 case 8: \
282 __put_user_u64((__typeof__(*ptr))(x), ptr, retval); \ 292 __put_user_asm_u64((__typeof__(*ptr))(x), ptr, retval, \
293 errret); \
294 break; \
295 default: \
296 __put_user_bad(); \
297 } \
298} while (0)
299
300#define __put_user_size_ex(x, ptr, size) \
301do { \
302 __chk_user_ptr(ptr); \
303 switch (size) { \
304 case 1: \
305 __put_user_asm_ex(x, ptr, "b", "b", "iq"); \
306 break; \
307 case 2: \
308 __put_user_asm_ex(x, ptr, "w", "w", "ir"); \
309 break; \
310 case 4: \
311 __put_user_asm_ex(x, ptr, "l", "k", "ir"); \
312 break; \
313 case 8: \
314 __put_user_asm_ex_u64((__typeof__(*ptr))(x), ptr); \
283 break; \ 315 break; \
284 default: \ 316 default: \
285 __put_user_bad(); \ 317 __put_user_bad(); \
@@ -311,9 +343,12 @@ do { \
311 343
312#ifdef CONFIG_X86_32 344#ifdef CONFIG_X86_32
313#define __get_user_asm_u64(x, ptr, retval, errret) (x) = __get_user_bad() 345#define __get_user_asm_u64(x, ptr, retval, errret) (x) = __get_user_bad()
346#define __get_user_asm_ex_u64(x, ptr) (x) = __get_user_bad()
314#else 347#else
315#define __get_user_asm_u64(x, ptr, retval, errret) \ 348#define __get_user_asm_u64(x, ptr, retval, errret) \
316 __get_user_asm(x, ptr, retval, "q", "", "=r", errret) 349 __get_user_asm(x, ptr, retval, "q", "", "=r", errret)
350#define __get_user_asm_ex_u64(x, ptr) \
351 __get_user_asm_ex(x, ptr, "q", "", "=r")
317#endif 352#endif
318 353
319#define __get_user_size(x, ptr, size, retval, errret) \ 354#define __get_user_size(x, ptr, size, retval, errret) \
@@ -350,6 +385,33 @@ do { \
350 : "=r" (err), ltype(x) \ 385 : "=r" (err), ltype(x) \
351 : "m" (__m(addr)), "i" (errret), "0" (err)) 386 : "m" (__m(addr)), "i" (errret), "0" (err))
352 387
388#define __get_user_size_ex(x, ptr, size) \
389do { \
390 __chk_user_ptr(ptr); \
391 switch (size) { \
392 case 1: \
393 __get_user_asm_ex(x, ptr, "b", "b", "=q"); \
394 break; \
395 case 2: \
396 __get_user_asm_ex(x, ptr, "w", "w", "=r"); \
397 break; \
398 case 4: \
399 __get_user_asm_ex(x, ptr, "l", "k", "=r"); \
400 break; \
401 case 8: \
402 __get_user_asm_ex_u64(x, ptr); \
403 break; \
404 default: \
405 (x) = __get_user_bad(); \
406 } \
407} while (0)
408
409#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
410 asm volatile("1: mov"itype" %1,%"rtype"0\n" \
411 "2:\n" \
412 _ASM_EXTABLE(1b, 2b - 1b) \
413 : ltype(x) : "m" (__m(addr)))
414
353#define __put_user_nocheck(x, ptr, size) \ 415#define __put_user_nocheck(x, ptr, size) \
354({ \ 416({ \
355 int __pu_err; \ 417 int __pu_err; \
@@ -385,6 +447,26 @@ struct __large_struct { unsigned long buf[100]; };
385 _ASM_EXTABLE(1b, 3b) \ 447 _ASM_EXTABLE(1b, 3b) \
386 : "=r"(err) \ 448 : "=r"(err) \
387 : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err)) 449 : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
450
451#define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
452 asm volatile("1: mov"itype" %"rtype"0,%1\n" \
453 "2:\n" \
454 _ASM_EXTABLE(1b, 2b - 1b) \
455 : : ltype(x), "m" (__m(addr)))
456
457/*
458 * uaccess_try and catch
459 */
460#define uaccess_try do { \
461 int prev_err = current_thread_info()->uaccess_err; \
462 current_thread_info()->uaccess_err = 0; \
463 barrier();
464
465#define uaccess_catch(err) \
466 (err) |= current_thread_info()->uaccess_err; \
467 current_thread_info()->uaccess_err = prev_err; \
468} while (0)
469
388/** 470/**
389 * __get_user: - Get a simple variable from user space, with less checking. 471 * __get_user: - Get a simple variable from user space, with less checking.
390 * @x: Variable to store result. 472 * @x: Variable to store result.
@@ -408,6 +490,7 @@ struct __large_struct { unsigned long buf[100]; };
408 490
409#define __get_user(x, ptr) \ 491#define __get_user(x, ptr) \
410 __get_user_nocheck((x), (ptr), sizeof(*(ptr))) 492 __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
493
411/** 494/**
412 * __put_user: - Write a simple value into user space, with less checking. 495 * __put_user: - Write a simple value into user space, with less checking.
413 * @x: Value to copy to user space. 496 * @x: Value to copy to user space.
@@ -435,6 +518,45 @@ struct __large_struct { unsigned long buf[100]; };
435#define __put_user_unaligned __put_user 518#define __put_user_unaligned __put_user
436 519
437/* 520/*
521 * {get|put}_user_try and catch
522 *
523 * get_user_try {
524 * get_user_ex(...);
525 * } get_user_catch(err)
526 */
527#define get_user_try uaccess_try
528#define get_user_catch(err) uaccess_catch(err)
529
530#define get_user_ex(x, ptr) do { \
531 unsigned long __gue_val; \
532 __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \
533 (x) = (__force __typeof__(*(ptr)))__gue_val; \
534} while (0)
535
536#ifdef CONFIG_X86_WP_WORKS_OK
537
538#define put_user_try uaccess_try
539#define put_user_catch(err) uaccess_catch(err)
540
541#define put_user_ex(x, ptr) \
542 __put_user_size_ex((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
543
544#else /* !CONFIG_X86_WP_WORKS_OK */
545
546#define put_user_try do { \
547 int __uaccess_err = 0;
548
549#define put_user_catch(err) \
550 (err) |= __uaccess_err; \
551} while (0)
552
553#define put_user_ex(x, ptr) do { \
554 __uaccess_err |= __put_user(x, ptr); \
555} while (0)
556
557#endif /* CONFIG_X86_WP_WORKS_OK */
558
559/*
438 * movsl can be slow when source and dest are not both 8-byte aligned 560 * movsl can be slow when source and dest are not both 8-byte aligned
439 */ 561 */
440#ifdef CONFIG_X86_INTEL_USERCOPY 562#ifdef CONFIG_X86_INTEL_USERCOPY
diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
index 84210c479fca..8cc687326eb8 100644
--- a/arch/x86/include/asm/uaccess_64.h
+++ b/arch/x86/include/asm/uaccess_64.h
@@ -188,16 +188,16 @@ __copy_to_user_inatomic(void __user *dst, const void *src, unsigned size)
188extern long __copy_user_nocache(void *dst, const void __user *src, 188extern long __copy_user_nocache(void *dst, const void __user *src,
189 unsigned size, int zerorest); 189 unsigned size, int zerorest);
190 190
191static inline int __copy_from_user_nocache(void *dst, const void __user *src, 191static inline int
192 unsigned size) 192__copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
193{ 193{
194 might_sleep(); 194 might_sleep();
195 return __copy_user_nocache(dst, src, size, 1); 195 return __copy_user_nocache(dst, src, size, 1);
196} 196}
197 197
198static inline int __copy_from_user_inatomic_nocache(void *dst, 198static inline int
199 const void __user *src, 199__copy_from_user_inatomic_nocache(void *dst, const void __user *src,
200 unsigned size) 200 unsigned size)
201{ 201{
202 return __copy_user_nocache(dst, src, size, 0); 202 return __copy_user_nocache(dst, src, size, 0);
203} 203}
diff --git a/arch/x86/include/asm/uv/uv.h b/arch/x86/include/asm/uv/uv.h
new file mode 100644
index 000000000000..c0a01b5d985b
--- /dev/null
+++ b/arch/x86/include/asm/uv/uv.h
@@ -0,0 +1,33 @@
1#ifndef _ASM_X86_UV_UV_H
2#define _ASM_X86_UV_UV_H
3
4enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC};
5
6struct cpumask;
7struct mm_struct;
8
9#ifdef CONFIG_X86_UV
10
11extern enum uv_system_type get_uv_system_type(void);
12extern int is_uv_system(void);
13extern void uv_cpu_init(void);
14extern void uv_system_init(void);
15extern const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
16 struct mm_struct *mm,
17 unsigned long va,
18 unsigned int cpu);
19
20#else /* X86_UV */
21
22static inline enum uv_system_type get_uv_system_type(void) { return UV_NONE; }
23static inline int is_uv_system(void) { return 0; }
24static inline void uv_cpu_init(void) { }
25static inline void uv_system_init(void) { }
26static inline const struct cpumask *
27uv_flush_tlb_others(const struct cpumask *cpumask, struct mm_struct *mm,
28 unsigned long va, unsigned int cpu)
29{ return cpumask; }
30
31#endif /* X86_UV */
32
33#endif /* _ASM_X86_UV_UV_H */
diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h
index 74e6393bfddb..9b0e61bf7a88 100644
--- a/arch/x86/include/asm/uv/uv_bau.h
+++ b/arch/x86/include/asm/uv/uv_bau.h
@@ -325,8 +325,6 @@ static inline void bau_cpubits_clear(struct bau_local_cpumask *dstp, int nbits)
325#define cpubit_isset(cpu, bau_local_cpumask) \ 325#define cpubit_isset(cpu, bau_local_cpumask) \
326 test_bit((cpu), (bau_local_cpumask).bits) 326 test_bit((cpu), (bau_local_cpumask).bits)
327 327
328extern int uv_flush_tlb_others(struct cpumask *,
329 struct mm_struct *, unsigned long);
330extern void uv_bau_message_intr1(void); 328extern void uv_bau_message_intr1(void);
331extern void uv_bau_timeout_intr1(void); 329extern void uv_bau_timeout_intr1(void);
332 330
diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h
index 777327ef05c1..9f4dfba33b28 100644
--- a/arch/x86/include/asm/uv/uv_hub.h
+++ b/arch/x86/include/asm/uv/uv_hub.h
@@ -199,6 +199,10 @@ DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info);
199#define SCIR_CPU_ACTIVITY 0x02 /* not idle */ 199#define SCIR_CPU_ACTIVITY 0x02 /* not idle */
200#define SCIR_CPU_HB_INTERVAL (HZ) /* once per second */ 200#define SCIR_CPU_HB_INTERVAL (HZ) /* once per second */
201 201
202/* Loop through all installed blades */
203#define for_each_possible_blade(bid) \
204 for ((bid) = 0; (bid) < uv_num_possible_blades(); (bid)++)
205
202/* 206/*
203 * Macros for converting between kernel virtual addresses, socket local physical 207 * Macros for converting between kernel virtual addresses, socket local physical
204 * addresses, and UV global physical addresses. 208 * addresses, and UV global physical addresses.
diff --git a/arch/x86/include/asm/vic.h b/arch/x86/include/asm/vic.h
deleted file mode 100644
index 53100f353612..000000000000
--- a/arch/x86/include/asm/vic.h
+++ /dev/null
@@ -1,61 +0,0 @@
1/* Copyright (C) 1999,2001
2 *
3 * Author: J.E.J.Bottomley@HansenPartnership.com
4 *
5 * Standard include definitions for the NCR Voyager Interrupt Controller */
6
7/* The eight CPI vectors. To activate a CPI, you write a bit mask
8 * corresponding to the processor set to be interrupted into the
9 * relevant register. That set of CPUs will then be interrupted with
10 * the CPI */
11static const int VIC_CPI_Registers[] =
12 {0xFC00, 0xFC01, 0xFC08, 0xFC09,
13 0xFC10, 0xFC11, 0xFC18, 0xFC19 };
14
15#define VIC_PROC_WHO_AM_I 0xfc29
16# define QUAD_IDENTIFIER 0xC0
17# define EIGHT_SLOT_IDENTIFIER 0xE0
18#define QIC_EXTENDED_PROCESSOR_SELECT 0xFC72
19#define VIC_CPI_BASE_REGISTER 0xFC41
20#define VIC_PROCESSOR_ID 0xFC21
21# define VIC_CPU_MASQUERADE_ENABLE 0x8
22
23#define VIC_CLAIM_REGISTER_0 0xFC38
24#define VIC_CLAIM_REGISTER_1 0xFC39
25#define VIC_REDIRECT_REGISTER_0 0xFC60
26#define VIC_REDIRECT_REGISTER_1 0xFC61
27#define VIC_PRIORITY_REGISTER 0xFC20
28
29#define VIC_PRIMARY_MC_BASE 0xFC48
30#define VIC_SECONDARY_MC_BASE 0xFC49
31
32#define QIC_PROCESSOR_ID 0xFC71
33# define QIC_CPUID_ENABLE 0x08
34
35#define QIC_VIC_CPI_BASE_REGISTER 0xFC79
36#define QIC_CPI_BASE_REGISTER 0xFC7A
37
38#define QIC_MASK_REGISTER0 0xFC80
39/* NOTE: these are masked high, enabled low */
40# define QIC_PERF_TIMER 0x01
41# define QIC_LPE 0x02
42# define QIC_SYS_INT 0x04
43# define QIC_CMN_INT 0x08
44/* at the moment, just enable CMN_INT, disable SYS_INT */
45# define QIC_DEFAULT_MASK0 (~(QIC_CMN_INT /* | VIC_SYS_INT */))
46#define QIC_MASK_REGISTER1 0xFC81
47# define QIC_BOOT_CPI_MASK 0xFE
48/* Enable CPI's 1-6 inclusive */
49# define QIC_CPI_ENABLE 0x81
50
51#define QIC_INTERRUPT_CLEAR0 0xFC8A
52#define QIC_INTERRUPT_CLEAR1 0xFC8B
53
54/* this is where we place the CPI vectors */
55#define VIC_DEFAULT_CPI_BASE 0xC0
56/* this is where we place the QIC CPI vectors */
57#define QIC_DEFAULT_CPI_BASE 0xD0
58
59#define VIC_BOOT_INTERRUPT_MASK 0xfe
60
61extern void smp_vic_timer_interrupt(void);
diff --git a/arch/x86/include/asm/voyager.h b/arch/x86/include/asm/voyager.h
deleted file mode 100644
index b3e647307625..000000000000
--- a/arch/x86/include/asm/voyager.h
+++ /dev/null
@@ -1,529 +0,0 @@
1/* Copyright (C) 1999,2001
2 *
3 * Author: J.E.J.Bottomley@HansenPartnership.com
4 *
5 * Standard include definitions for the NCR Voyager system */
6
7#undef VOYAGER_DEBUG
8#undef VOYAGER_CAT_DEBUG
9
10#ifdef VOYAGER_DEBUG
11#define VDEBUG(x) printk x
12#else
13#define VDEBUG(x)
14#endif
15
16/* There are three levels of voyager machine: 3,4 and 5. The rule is
17 * if it's less than 3435 it's a Level 3 except for a 3360 which is
18 * a level 4. A 3435 or above is a Level 5 */
19#define VOYAGER_LEVEL5_AND_ABOVE 0x3435
20#define VOYAGER_LEVEL4 0x3360
21
22/* The L4 DINO ASIC */
23#define VOYAGER_DINO 0x43
24
25/* voyager ports in standard I/O space */
26#define VOYAGER_MC_SETUP 0x96
27
28
29#define VOYAGER_CAT_CONFIG_PORT 0x97
30# define VOYAGER_CAT_DESELECT 0xff
31#define VOYAGER_SSPB_RELOCATION_PORT 0x98
32
33/* Valid CAT controller commands */
34/* start instruction register cycle */
35#define VOYAGER_CAT_IRCYC 0x01
36/* start data register cycle */
37#define VOYAGER_CAT_DRCYC 0x02
38/* move to execute state */
39#define VOYAGER_CAT_RUN 0x0F
40/* end operation */
41#define VOYAGER_CAT_END 0x80
42/* hold in idle state */
43#define VOYAGER_CAT_HOLD 0x90
44/* single step an "intest" vector */
45#define VOYAGER_CAT_STEP 0xE0
46/* return cat controller to CLEMSON mode */
47#define VOYAGER_CAT_CLEMSON 0xFF
48
49/* the default cat command header */
50#define VOYAGER_CAT_HEADER 0x7F
51
52/* the range of possible CAT module ids in the system */
53#define VOYAGER_MIN_MODULE 0x10
54#define VOYAGER_MAX_MODULE 0x1f
55
56/* The voyager registers per asic */
57#define VOYAGER_ASIC_ID_REG 0x00
58#define VOYAGER_ASIC_TYPE_REG 0x01
59/* the sub address registers can be made auto incrementing on reads */
60#define VOYAGER_AUTO_INC_REG 0x02
61# define VOYAGER_AUTO_INC 0x04
62# define VOYAGER_NO_AUTO_INC 0xfb
63#define VOYAGER_SUBADDRDATA 0x03
64#define VOYAGER_SCANPATH 0x05
65# define VOYAGER_CONNECT_ASIC 0x01
66# define VOYAGER_DISCONNECT_ASIC 0xfe
67#define VOYAGER_SUBADDRLO 0x06
68#define VOYAGER_SUBADDRHI 0x07
69#define VOYAGER_SUBMODSELECT 0x08
70#define VOYAGER_SUBMODPRESENT 0x09
71
72#define VOYAGER_SUBADDR_LO 0xff
73#define VOYAGER_SUBADDR_HI 0xffff
74
75/* the maximum size of a scan path -- used to form instructions */
76#define VOYAGER_MAX_SCAN_PATH 0x100
77/* the biggest possible register size (in bytes) */
78#define VOYAGER_MAX_REG_SIZE 4
79
80/* Total number of possible modules (including submodules) */
81#define VOYAGER_MAX_MODULES 16
82/* Largest number of asics per module */
83#define VOYAGER_MAX_ASICS_PER_MODULE 7
84
85/* the CAT asic of each module is always the first one */
86#define VOYAGER_CAT_ID 0
87#define VOYAGER_PSI 0x1a
88
89/* voyager instruction operations and registers */
90#define VOYAGER_READ_CONFIG 0x1
91#define VOYAGER_WRITE_CONFIG 0x2
92#define VOYAGER_BYPASS 0xff
93
94typedef struct voyager_asic {
95 __u8 asic_addr; /* ASIC address; Level 4 */
96 __u8 asic_type; /* ASIC type */
97 __u8 asic_id; /* ASIC id */
98 __u8 jtag_id[4]; /* JTAG id */
99 __u8 asic_location; /* Location within scan path; start w/ 0 */
100 __u8 bit_location; /* Location within bit stream; start w/ 0 */
101 __u8 ireg_length; /* Instruction register length */
102 __u16 subaddr; /* Amount of sub address space */
103 struct voyager_asic *next; /* Next asic in linked list */
104} voyager_asic_t;
105
106typedef struct voyager_module {
107 __u8 module_addr; /* Module address */
108 __u8 scan_path_connected; /* Scan path connected */
109 __u16 ee_size; /* Size of the EEPROM */
110 __u16 num_asics; /* Number of Asics */
111 __u16 inst_bits; /* Instruction bits in the scan path */
112 __u16 largest_reg; /* Largest register in the scan path */
113 __u16 smallest_reg; /* Smallest register in the scan path */
114 voyager_asic_t *asic; /* First ASIC in scan path (CAT_I) */
115 struct voyager_module *submodule; /* Submodule pointer */
116 struct voyager_module *next; /* Next module in linked list */
117} voyager_module_t;
118
119typedef struct voyager_eeprom_hdr {
120 __u8 module_id[4];
121 __u8 version_id;
122 __u8 config_id;
123 __u16 boundry_id; /* boundary scan id */
124 __u16 ee_size; /* size of EEPROM */
125 __u8 assembly[11]; /* assembly # */
126 __u8 assembly_rev; /* assembly rev */
127 __u8 tracer[4]; /* tracer number */
128 __u16 assembly_cksum; /* asm checksum */
129 __u16 power_consump; /* pwr requirements */
130 __u16 num_asics; /* number of asics */
131 __u16 bist_time; /* min. bist time */
132 __u16 err_log_offset; /* error log offset */
133 __u16 scan_path_offset;/* scan path offset */
134 __u16 cct_offset;
135 __u16 log_length; /* length of err log */
136 __u16 xsum_end; /* offset to end of
137 checksum */
138 __u8 reserved[4];
139 __u8 sflag; /* starting sentinal */
140 __u8 part_number[13]; /* prom part number */
141 __u8 version[10]; /* version number */
142 __u8 signature[8];
143 __u16 eeprom_chksum;
144 __u32 data_stamp_offset;
145 __u8 eflag ; /* ending sentinal */
146} __attribute__((packed)) voyager_eprom_hdr_t;
147
148
149
150#define VOYAGER_EPROM_SIZE_OFFSET \
151 ((__u16)(&(((voyager_eprom_hdr_t *)0)->ee_size)))
152#define VOYAGER_XSUM_END_OFFSET 0x2a
153
154/* the following three definitions are for internal table layouts
155 * in the module EPROMs. We really only care about the IDs and
156 * offsets */
157typedef struct voyager_sp_table {
158 __u8 asic_id;
159 __u8 bypass_flag;
160 __u16 asic_data_offset;
161 __u16 config_data_offset;
162} __attribute__((packed)) voyager_sp_table_t;
163
164typedef struct voyager_jtag_table {
165 __u8 icode[4];
166 __u8 runbist[4];
167 __u8 intest[4];
168 __u8 samp_preld[4];
169 __u8 ireg_len;
170} __attribute__((packed)) voyager_jtt_t;
171
172typedef struct voyager_asic_data_table {
173 __u8 jtag_id[4];
174 __u16 length_bsr;
175 __u16 length_bist_reg;
176 __u32 bist_clk;
177 __u16 subaddr_bits;
178 __u16 seed_bits;
179 __u16 sig_bits;
180 __u16 jtag_offset;
181} __attribute__((packed)) voyager_at_t;
182
183/* Voyager Interrupt Controller (VIC) registers */
184
185/* Base to add to Cross Processor Interrupts (CPIs) when triggering
186 * the CPU IRQ line */
187/* register defines for the WCBICs (one per processor) */
188#define VOYAGER_WCBIC0 0x41 /* bus A node P1 processor 0 */
189#define VOYAGER_WCBIC1 0x49 /* bus A node P1 processor 1 */
190#define VOYAGER_WCBIC2 0x51 /* bus A node P2 processor 0 */
191#define VOYAGER_WCBIC3 0x59 /* bus A node P2 processor 1 */
192#define VOYAGER_WCBIC4 0x61 /* bus B node P1 processor 0 */
193#define VOYAGER_WCBIC5 0x69 /* bus B node P1 processor 1 */
194#define VOYAGER_WCBIC6 0x71 /* bus B node P2 processor 0 */
195#define VOYAGER_WCBIC7 0x79 /* bus B node P2 processor 1 */
196
197
198/* top of memory registers */
199#define VOYAGER_WCBIC_TOM_L 0x4
200#define VOYAGER_WCBIC_TOM_H 0x5
201
202/* register defines for Voyager Memory Contol (VMC)
203 * these are present on L4 machines only */
204#define VOYAGER_VMC1 0x81
205#define VOYAGER_VMC2 0x91
206#define VOYAGER_VMC3 0xa1
207#define VOYAGER_VMC4 0xb1
208
209/* VMC Ports */
210#define VOYAGER_VMC_MEMORY_SETUP 0x9
211# define VMC_Interleaving 0x01
212# define VMC_4Way 0x02
213# define VMC_EvenCacheLines 0x04
214# define VMC_HighLine 0x08
215# define VMC_Start0_Enable 0x20
216# define VMC_Start1_Enable 0x40
217# define VMC_Vremap 0x80
218#define VOYAGER_VMC_BANK_DENSITY 0xa
219# define VMC_BANK_EMPTY 0
220# define VMC_BANK_4MB 1
221# define VMC_BANK_16MB 2
222# define VMC_BANK_64MB 3
223# define VMC_BANK0_MASK 0x03
224# define VMC_BANK1_MASK 0x0C
225# define VMC_BANK2_MASK 0x30
226# define VMC_BANK3_MASK 0xC0
227
228/* Magellan Memory Controller (MMC) defines - present on L5 */
229#define VOYAGER_MMC_ASIC_ID 1
230/* the two memory modules corresponding to memory cards in the system */
231#define VOYAGER_MMC_MEMORY0_MODULE 0x14
232#define VOYAGER_MMC_MEMORY1_MODULE 0x15
233/* the Magellan Memory Address (MMA) defines */
234#define VOYAGER_MMA_ASIC_ID 2
235
236/* Submodule number for the Quad Baseboard */
237#define VOYAGER_QUAD_BASEBOARD 1
238
239/* ASIC defines for the Quad Baseboard */
240#define VOYAGER_QUAD_QDATA0 1
241#define VOYAGER_QUAD_QDATA1 2
242#define VOYAGER_QUAD_QABC 3
243
244/* Useful areas in extended CMOS */
245#define VOYAGER_PROCESSOR_PRESENT_MASK 0x88a
246#define VOYAGER_MEMORY_CLICKMAP 0xa23
247#define VOYAGER_DUMP_LOCATION 0xb1a
248
249/* SUS In Control bit - used to tell SUS that we don't need to be
250 * babysat anymore */
251#define VOYAGER_SUS_IN_CONTROL_PORT 0x3ff
252# define VOYAGER_IN_CONTROL_FLAG 0x80
253
254/* Voyager PSI defines */
255#define VOYAGER_PSI_STATUS_REG 0x08
256# define PSI_DC_FAIL 0x01
257# define PSI_MON 0x02
258# define PSI_FAULT 0x04
259# define PSI_ALARM 0x08
260# define PSI_CURRENT 0x10
261# define PSI_DVM 0x20
262# define PSI_PSCFAULT 0x40
263# define PSI_STAT_CHG 0x80
264
265#define VOYAGER_PSI_SUPPLY_REG 0x8000
266 /* read */
267# define PSI_FAIL_DC 0x01
268# define PSI_FAIL_AC 0x02
269# define PSI_MON_INT 0x04
270# define PSI_SWITCH_OFF 0x08
271# define PSI_HX_OFF 0x10
272# define PSI_SECURITY 0x20
273# define PSI_CMOS_BATT_LOW 0x40
274# define PSI_CMOS_BATT_FAIL 0x80
275 /* write */
276# define PSI_CLR_SWITCH_OFF 0x13
277# define PSI_CLR_HX_OFF 0x14
278# define PSI_CLR_CMOS_BATT_FAIL 0x17
279
280#define VOYAGER_PSI_MASK 0x8001
281# define PSI_MASK_MASK 0x10
282
283#define VOYAGER_PSI_AC_FAIL_REG 0x8004
284#define AC_FAIL_STAT_CHANGE 0x80
285
286#define VOYAGER_PSI_GENERAL_REG 0x8007
287 /* read */
288# define PSI_SWITCH_ON 0x01
289# define PSI_SWITCH_ENABLED 0x02
290# define PSI_ALARM_ENABLED 0x08
291# define PSI_SECURE_ENABLED 0x10
292# define PSI_COLD_RESET 0x20
293# define PSI_COLD_START 0x80
294 /* write */
295# define PSI_POWER_DOWN 0x10
296# define PSI_SWITCH_DISABLE 0x01
297# define PSI_SWITCH_ENABLE 0x11
298# define PSI_CLEAR 0x12
299# define PSI_ALARM_DISABLE 0x03
300# define PSI_ALARM_ENABLE 0x13
301# define PSI_CLEAR_COLD_RESET 0x05
302# define PSI_SET_COLD_RESET 0x15
303# define PSI_CLEAR_COLD_START 0x07
304# define PSI_SET_COLD_START 0x17
305
306
307
308struct voyager_bios_info {
309 __u8 len;
310 __u8 major;
311 __u8 minor;
312 __u8 debug;
313 __u8 num_classes;
314 __u8 class_1;
315 __u8 class_2;
316};
317
318/* The following structures and definitions are for the Kernel/SUS
319 * interface these are needed to find out how SUS initialised any Quad
320 * boards in the system */
321
322#define NUMBER_OF_MC_BUSSES 2
323#define SLOTS_PER_MC_BUS 8
324#define MAX_CPUS 16 /* 16 way CPU system */
325#define MAX_PROCESSOR_BOARDS 4 /* 4 processor slot system */
326#define MAX_CACHE_LEVELS 4 /* # of cache levels supported */
327#define MAX_SHARED_CPUS 4 /* # of CPUs that can share a LARC */
328#define NUMBER_OF_POS_REGS 8
329
330typedef struct {
331 __u8 MC_Slot;
332 __u8 POS_Values[NUMBER_OF_POS_REGS];
333} __attribute__((packed)) MC_SlotInformation_t;
334
335struct QuadDescription {
336 __u8 Type; /* for type 0 (DYADIC or MONADIC) all fields
337 * will be zero except for slot */
338 __u8 StructureVersion;
339 __u32 CPI_BaseAddress;
340 __u32 LARC_BankSize;
341 __u32 LocalMemoryStateBits;
342 __u8 Slot; /* Processor slots 1 - 4 */
343} __attribute__((packed));
344
345struct ProcBoardInfo {
346 __u8 Type;
347 __u8 StructureVersion;
348 __u8 NumberOfBoards;
349 struct QuadDescription QuadData[MAX_PROCESSOR_BOARDS];
350} __attribute__((packed));
351
352struct CacheDescription {
353 __u8 Level;
354 __u32 TotalSize;
355 __u16 LineSize;
356 __u8 Associativity;
357 __u8 CacheType;
358 __u8 WriteType;
359 __u8 Number_CPUs_SharedBy;
360 __u8 Shared_CPUs_Hardware_IDs[MAX_SHARED_CPUS];
361
362} __attribute__((packed));
363
364struct CPU_Description {
365 __u8 CPU_HardwareId;
366 char *FRU_String;
367 __u8 NumberOfCacheLevels;
368 struct CacheDescription CacheLevelData[MAX_CACHE_LEVELS];
369} __attribute__((packed));
370
371struct CPU_Info {
372 __u8 Type;
373 __u8 StructureVersion;
374 __u8 NumberOf_CPUs;
375 struct CPU_Description CPU_Data[MAX_CPUS];
376} __attribute__((packed));
377
378
379/*
380 * This structure will be used by SUS and the OS.
381 * The assumption about this structure is that no blank space is
382 * packed in it by our friend the compiler.
383 */
384typedef struct {
385 __u8 Mailbox_SUS; /* Written to by SUS to give
386 commands/response to the OS */
387 __u8 Mailbox_OS; /* Written to by the OS to give
388 commands/response to SUS */
389 __u8 SUS_MailboxVersion; /* Tells the OS which iteration of the
390 interface SUS supports */
391 __u8 OS_MailboxVersion; /* Tells SUS which iteration of the
392 interface the OS supports */
393 __u32 OS_Flags; /* Flags set by the OS as info for
394 SUS */
395 __u32 SUS_Flags; /* Flags set by SUS as info
396 for the OS */
397 __u32 WatchDogPeriod; /* Watchdog period (in seconds) which
398 the DP uses to see if the OS
399 is dead */
400 __u32 WatchDogCount; /* Updated by the OS on every tic. */
401 __u32 MemoryFor_SUS_ErrorLog; /* Flat 32 bit address which tells SUS
402 where to stuff the SUS error log
403 on a dump */
404 MC_SlotInformation_t MC_SlotInfo[NUMBER_OF_MC_BUSSES*SLOTS_PER_MC_BUS];
405 /* Storage for MCA POS data */
406 /* All new SECOND_PASS_INTERFACE fields added from this point */
407 struct ProcBoardInfo *BoardData;
408 struct CPU_Info *CPU_Data;
409 /* All new fields must be added from this point */
410} Voyager_KernelSUS_Mbox_t;
411
412/* structure for finding the right memory address to send a QIC CPI to */
413struct voyager_qic_cpi {
414 /* Each cache line (32 bytes) can trigger a cpi. The cpi
415 * read/write may occur anywhere in the cache line---pick the
416 * middle to be safe */
417 struct {
418 __u32 pad1[3];
419 __u32 cpi;
420 __u32 pad2[4];
421 } qic_cpi[8];
422};
423
424struct voyager_status {
425 __u32 power_fail:1;
426 __u32 switch_off:1;
427 __u32 request_from_kernel:1;
428};
429
430struct voyager_psi_regs {
431 __u8 cat_id;
432 __u8 cat_dev;
433 __u8 cat_control;
434 __u8 subaddr;
435 __u8 dummy4;
436 __u8 checkbit;
437 __u8 subaddr_low;
438 __u8 subaddr_high;
439 __u8 intstatus;
440 __u8 stat1;
441 __u8 stat3;
442 __u8 fault;
443 __u8 tms;
444 __u8 gen;
445 __u8 sysconf;
446 __u8 dummy15;
447};
448
449struct voyager_psi_subregs {
450 __u8 supply;
451 __u8 mask;
452 __u8 present;
453 __u8 DCfail;
454 __u8 ACfail;
455 __u8 fail;
456 __u8 UPSfail;
457 __u8 genstatus;
458};
459
460struct voyager_psi {
461 struct voyager_psi_regs regs;
462 struct voyager_psi_subregs subregs;
463};
464
465struct voyager_SUS {
466#define VOYAGER_DUMP_BUTTON_NMI 0x1
467#define VOYAGER_SUS_VALID 0x2
468#define VOYAGER_SYSINT_COMPLETE 0x3
469 __u8 SUS_mbox;
470#define VOYAGER_NO_COMMAND 0x0
471#define VOYAGER_IGNORE_DUMP 0x1
472#define VOYAGER_DO_DUMP 0x2
473#define VOYAGER_SYSINT_HANDSHAKE 0x3
474#define VOYAGER_DO_MEM_DUMP 0x4
475#define VOYAGER_SYSINT_WAS_RECOVERED 0x5
476 __u8 kernel_mbox;
477#define VOYAGER_MAILBOX_VERSION 0x10
478 __u8 SUS_version;
479 __u8 kernel_version;
480#define VOYAGER_OS_HAS_SYSINT 0x1
481#define VOYAGER_OS_IN_PROGRESS 0x2
482#define VOYAGER_UPDATING_WDPERIOD 0x4
483 __u32 kernel_flags;
484#define VOYAGER_SUS_BOOTING 0x1
485#define VOYAGER_SUS_IN_PROGRESS 0x2
486 __u32 SUS_flags;
487 __u32 watchdog_period;
488 __u32 watchdog_count;
489 __u32 SUS_errorlog;
490 /* lots of system configuration stuff under here */
491};
492
493/* Variables exported by voyager_smp */
494extern __u32 voyager_extended_vic_processors;
495extern __u32 voyager_allowed_boot_processors;
496extern __u32 voyager_quad_processors;
497extern struct voyager_qic_cpi *voyager_quad_cpi_addr[NR_CPUS];
498extern struct voyager_SUS *voyager_SUS;
499
500/* variables exported always */
501extern struct task_struct *voyager_thread;
502extern int voyager_level;
503extern struct voyager_status voyager_status;
504
505/* functions exported by the voyager and voyager_smp modules */
506extern int voyager_cat_readb(__u8 module, __u8 asic, int reg);
507extern void voyager_cat_init(void);
508extern void voyager_detect(struct voyager_bios_info *);
509extern void voyager_trap_init(void);
510extern void voyager_setup_irqs(void);
511extern int voyager_memory_detect(int region, __u32 *addr, __u32 *length);
512extern void voyager_smp_intr_init(void);
513extern __u8 voyager_extended_cmos_read(__u16 cmos_address);
514extern void voyager_smp_dump(void);
515extern void voyager_timer_interrupt(void);
516extern void smp_local_timer_interrupt(void);
517extern void voyager_power_off(void);
518extern void smp_voyager_power_off(void *dummy);
519extern void voyager_restart(void);
520extern void voyager_cat_power_off(void);
521extern void voyager_cat_do_common_interrupt(void);
522extern void voyager_handle_nmi(void);
523extern void voyager_smp_intr_init(void);
524/* Commands for the following are */
525#define VOYAGER_PSI_READ 0
526#define VOYAGER_PSI_WRITE 1
527#define VOYAGER_PSI_SUBREAD 2
528#define VOYAGER_PSI_SUBWRITE 3
529extern void voyager_cat_psi(__u8, __u16, __u8 *);
diff --git a/arch/x86/include/asm/xen/events.h b/arch/x86/include/asm/xen/events.h
index 19144184983a..1df35417c412 100644
--- a/arch/x86/include/asm/xen/events.h
+++ b/arch/x86/include/asm/xen/events.h
@@ -15,10 +15,4 @@ static inline int xen_irqs_disabled(struct pt_regs *regs)
15 return raw_irqs_disabled_flags(regs->flags); 15 return raw_irqs_disabled_flags(regs->flags);
16} 16}
17 17
18static inline void xen_do_IRQ(int irq, struct pt_regs *regs)
19{
20 regs->orig_ax = ~irq;
21 do_IRQ(regs);
22}
23
24#endif /* _ASM_X86_XEN_EVENTS_H */ 18#endif /* _ASM_X86_XEN_EVENTS_H */
diff --git a/arch/x86/include/asm/xen/hypervisor.h b/arch/x86/include/asm/xen/hypervisor.h
index 81fbd735aec4..d5b7e90c0edf 100644
--- a/arch/x86/include/asm/xen/hypervisor.h
+++ b/arch/x86/include/asm/xen/hypervisor.h
@@ -38,22 +38,30 @@ extern struct shared_info *HYPERVISOR_shared_info;
38extern struct start_info *xen_start_info; 38extern struct start_info *xen_start_info;
39 39
40enum xen_domain_type { 40enum xen_domain_type {
41 XEN_NATIVE, 41 XEN_NATIVE, /* running on bare hardware */
42 XEN_PV_DOMAIN, 42 XEN_PV_DOMAIN, /* running in a PV domain */
43 XEN_HVM_DOMAIN, 43 XEN_HVM_DOMAIN, /* running in a Xen hvm domain */
44}; 44};
45 45
46extern enum xen_domain_type xen_domain_type;
47
48#ifdef CONFIG_XEN 46#ifdef CONFIG_XEN
49#define xen_domain() (xen_domain_type != XEN_NATIVE) 47extern enum xen_domain_type xen_domain_type;
50#else 48#else
51#define xen_domain() (0) 49#define xen_domain_type XEN_NATIVE
52#endif 50#endif
53 51
54#define xen_pv_domain() (xen_domain() && xen_domain_type == XEN_PV_DOMAIN) 52#define xen_domain() (xen_domain_type != XEN_NATIVE)
55#define xen_hvm_domain() (xen_domain() && xen_domain_type == XEN_HVM_DOMAIN) 53#define xen_pv_domain() (xen_domain() && \
54 xen_domain_type == XEN_PV_DOMAIN)
55#define xen_hvm_domain() (xen_domain() && \
56 xen_domain_type == XEN_HVM_DOMAIN)
57
58#ifdef CONFIG_XEN_DOM0
59#include <xen/interface/xen.h>
56 60
57#define xen_initial_domain() (xen_pv_domain() && xen_start_info->flags & SIF_INITDOMAIN) 61#define xen_initial_domain() (xen_pv_domain() && \
62 xen_start_info->flags & SIF_INITDOMAIN)
63#else /* !CONFIG_XEN_DOM0 */
64#define xen_initial_domain() (0)
65#endif /* CONFIG_XEN_DOM0 */
58 66
59#endif /* _ASM_X86_XEN_HYPERVISOR_H */ 67#endif /* _ASM_X86_XEN_HYPERVISOR_H */
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index 7ef617ef1df3..1a918dde46b5 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -137,7 +137,7 @@ static inline pte_t mfn_pte(unsigned long page_nr, pgprot_t pgprot)
137 pte_t pte; 137 pte_t pte;
138 138
139 pte.pte = ((phys_addr_t)page_nr << PAGE_SHIFT) | 139 pte.pte = ((phys_addr_t)page_nr << PAGE_SHIFT) |
140 (pgprot_val(pgprot) & __supported_pte_mask); 140 massage_pgprot(pgprot);
141 141
142 return pte; 142 return pte;
143} 143}
@@ -164,6 +164,7 @@ static inline pte_t __pte_ma(pteval_t x)
164 164
165 165
166xmaddr_t arbitrary_virt_to_machine(void *address); 166xmaddr_t arbitrary_virt_to_machine(void *address);
167unsigned long arbitrary_virt_to_mfn(void *vaddr);
167void make_lowmem_page_readonly(void *vaddr); 168void make_lowmem_page_readonly(void *vaddr);
168void make_lowmem_page_readwrite(void *vaddr); 169void make_lowmem_page_readwrite(void *vaddr);
169 170
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index d364df03c1d6..339ce35648e6 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -23,11 +23,12 @@ nostackp := $(call cc-option, -fno-stack-protector)
23CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp) 23CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp)
24CFLAGS_hpet.o := $(nostackp) 24CFLAGS_hpet.o := $(nostackp)
25CFLAGS_tsc.o := $(nostackp) 25CFLAGS_tsc.o := $(nostackp)
26CFLAGS_paravirt.o := $(nostackp)
26 27
27obj-y := process_$(BITS).o signal.o entry_$(BITS).o 28obj-y := process_$(BITS).o signal.o entry_$(BITS).o
28obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o 29obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
29obj-y += time_$(BITS).o ioport.o ldt.o dumpstack.o 30obj-y += time_$(BITS).o ioport.o ldt.o dumpstack.o
30obj-y += setup.o i8259.o irqinit_$(BITS).o setup_percpu.o 31obj-y += setup.o i8259.o irqinit_$(BITS).o
31obj-$(CONFIG_X86_VISWS) += visws_quirks.o 32obj-$(CONFIG_X86_VISWS) += visws_quirks.o
32obj-$(CONFIG_X86_32) += probe_roms_32.o 33obj-$(CONFIG_X86_32) += probe_roms_32.o
33obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o 34obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o
@@ -49,31 +50,27 @@ obj-y += step.o
49obj-$(CONFIG_STACKTRACE) += stacktrace.o 50obj-$(CONFIG_STACKTRACE) += stacktrace.o
50obj-y += cpu/ 51obj-y += cpu/
51obj-y += acpi/ 52obj-y += acpi/
52obj-$(CONFIG_X86_BIOS_REBOOT) += reboot.o 53obj-y += reboot.o
53obj-$(CONFIG_MCA) += mca_32.o 54obj-$(CONFIG_MCA) += mca_32.o
54obj-$(CONFIG_X86_MSR) += msr.o 55obj-$(CONFIG_X86_MSR) += msr.o
55obj-$(CONFIG_X86_CPUID) += cpuid.o 56obj-$(CONFIG_X86_CPUID) += cpuid.o
56obj-$(CONFIG_PCI) += early-quirks.o 57obj-$(CONFIG_PCI) += early-quirks.o
57apm-y := apm_32.o 58apm-y := apm_32.o
58obj-$(CONFIG_APM) += apm.o 59obj-$(CONFIG_APM) += apm.o
59obj-$(CONFIG_X86_SMP) += smp.o 60obj-$(CONFIG_SMP) += smp.o
60obj-$(CONFIG_X86_SMP) += smpboot.o tsc_sync.o ipi.o tlb_$(BITS).o 61obj-$(CONFIG_SMP) += smpboot.o tsc_sync.o
61obj-$(CONFIG_X86_32_SMP) += smpcommon.o 62obj-$(CONFIG_SMP) += setup_percpu.o
62obj-$(CONFIG_X86_64_SMP) += tsc_sync.o smpcommon.o 63obj-$(CONFIG_X86_64_SMP) += tsc_sync.o
63obj-$(CONFIG_X86_TRAMPOLINE) += trampoline_$(BITS).o 64obj-$(CONFIG_X86_TRAMPOLINE) += trampoline_$(BITS).o
64obj-$(CONFIG_X86_MPPARSE) += mpparse.o 65obj-$(CONFIG_X86_MPPARSE) += mpparse.o
65obj-$(CONFIG_X86_LOCAL_APIC) += apic.o nmi.o 66obj-y += apic/
66obj-$(CONFIG_X86_IO_APIC) += io_apic.o
67obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups_32.o 67obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups_32.o
68obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o 68obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
69obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o 69obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
70obj-$(CONFIG_KEXEC) += machine_kexec_$(BITS).o 70obj-$(CONFIG_KEXEC) += machine_kexec_$(BITS).o
71obj-$(CONFIG_KEXEC) += relocate_kernel_$(BITS).o crash.o 71obj-$(CONFIG_KEXEC) += relocate_kernel_$(BITS).o crash.o
72obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o 72obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o
73obj-$(CONFIG_X86_NUMAQ) += numaq_32.o 73obj-$(CONFIG_X86_VSMP) += vsmp_64.o
74obj-$(CONFIG_X86_ES7000) += es7000_32.o
75obj-$(CONFIG_X86_SUMMIT_NUMA) += summit_32.o
76obj-y += vsmp_64.o
77obj-$(CONFIG_KPROBES) += kprobes.o 74obj-$(CONFIG_KPROBES) += kprobes.o
78obj-$(CONFIG_MODULES) += module_$(BITS).o 75obj-$(CONFIG_MODULES) += module_$(BITS).o
79obj-$(CONFIG_EFI) += efi.o efi_$(BITS).o efi_stub_$(BITS).o 76obj-$(CONFIG_EFI) += efi.o efi_$(BITS).o efi_stub_$(BITS).o
@@ -114,16 +111,13 @@ obj-$(CONFIG_SWIOTLB) += pci-swiotlb_64.o # NB rename without _64
114### 111###
115# 64 bit specific files 112# 64 bit specific files
116ifeq ($(CONFIG_X86_64),y) 113ifeq ($(CONFIG_X86_64),y)
117 obj-y += genapic_64.o genapic_flat_64.o genx2apic_uv_x.o tlb_uv.o 114 obj-$(CONFIG_X86_UV) += tlb_uv.o bios_uv.o uv_irq.o uv_sysfs.o uv_time.o
118 obj-y += bios_uv.o uv_irq.o uv_sysfs.o 115 obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o
119 obj-y += genx2apic_cluster.o 116 obj-$(CONFIG_AUDIT) += audit_64.o
120 obj-y += genx2apic_phys.o 117
121 obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o 118 obj-$(CONFIG_GART_IOMMU) += pci-gart_64.o aperture_64.o
122 obj-$(CONFIG_AUDIT) += audit_64.o 119 obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary_64.o tce_64.o
123 120 obj-$(CONFIG_AMD_IOMMU) += amd_iommu_init.o amd_iommu.o
124 obj-$(CONFIG_GART_IOMMU) += pci-gart_64.o aperture_64.o 121
125 obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary_64.o tce_64.o 122 obj-$(CONFIG_PCI_MMCONFIG) += mmconf-fam10h_64.o
126 obj-$(CONFIG_AMD_IOMMU) += amd_iommu_init.o amd_iommu.o
127
128 obj-$(CONFIG_PCI_MMCONFIG) += mmconf-fam10h_64.o
129endif 123endif
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index d37593c2f438..a18eb7ce2236 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -37,15 +37,10 @@
37#include <asm/pgtable.h> 37#include <asm/pgtable.h>
38#include <asm/io_apic.h> 38#include <asm/io_apic.h>
39#include <asm/apic.h> 39#include <asm/apic.h>
40#include <asm/genapic.h>
41#include <asm/io.h> 40#include <asm/io.h>
42#include <asm/mpspec.h> 41#include <asm/mpspec.h>
43#include <asm/smp.h> 42#include <asm/smp.h>
44 43
45#ifdef CONFIG_X86_LOCAL_APIC
46# include <mach_apic.h>
47#endif
48
49static int __initdata acpi_force = 0; 44static int __initdata acpi_force = 0;
50u32 acpi_rsdt_forced; 45u32 acpi_rsdt_forced;
51#ifdef CONFIG_ACPI 46#ifdef CONFIG_ACPI
@@ -56,16 +51,7 @@ int acpi_disabled = 1;
56EXPORT_SYMBOL(acpi_disabled); 51EXPORT_SYMBOL(acpi_disabled);
57 52
58#ifdef CONFIG_X86_64 53#ifdef CONFIG_X86_64
59 54# include <asm/proto.h>
60#include <asm/proto.h>
61
62#else /* X86 */
63
64#ifdef CONFIG_X86_LOCAL_APIC
65#include <mach_apic.h>
66#include <mach_mpparse.h>
67#endif /* CONFIG_X86_LOCAL_APIC */
68
69#endif /* X86 */ 55#endif /* X86 */
70 56
71#define BAD_MADT_ENTRY(entry, end) ( \ 57#define BAD_MADT_ENTRY(entry, end) ( \
@@ -121,35 +107,18 @@ enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PIC;
121 */ 107 */
122char *__init __acpi_map_table(unsigned long phys, unsigned long size) 108char *__init __acpi_map_table(unsigned long phys, unsigned long size)
123{ 109{
124 unsigned long base, offset, mapped_size;
125 int idx;
126 110
127 if (!phys || !size) 111 if (!phys || !size)
128 return NULL; 112 return NULL;
129 113
130 if (phys+size <= (max_low_pfn_mapped << PAGE_SHIFT)) 114 return early_ioremap(phys, size);
131 return __va(phys); 115}
132 116void __init __acpi_unmap_table(char *map, unsigned long size)
133 offset = phys & (PAGE_SIZE - 1); 117{
134 mapped_size = PAGE_SIZE - offset; 118 if (!map || !size)
135 clear_fixmap(FIX_ACPI_END); 119 return;
136 set_fixmap(FIX_ACPI_END, phys);
137 base = fix_to_virt(FIX_ACPI_END);
138
139 /*
140 * Most cases can be covered by the below.
141 */
142 idx = FIX_ACPI_END;
143 while (mapped_size < size) {
144 if (--idx < FIX_ACPI_BEGIN)
145 return NULL; /* cannot handle this */
146 phys += PAGE_SIZE;
147 clear_fixmap(idx);
148 set_fixmap(idx, phys);
149 mapped_size += PAGE_SIZE;
150 }
151 120
152 return ((unsigned char *)base + offset); 121 early_iounmap(map, size);
153} 122}
154 123
155#ifdef CONFIG_PCI_MMCONFIG 124#ifdef CONFIG_PCI_MMCONFIG
@@ -239,7 +208,8 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
239 madt->address); 208 madt->address);
240 } 209 }
241 210
242 acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id); 211 default_acpi_madt_oem_check(madt->header.oem_id,
212 madt->header.oem_table_id);
243 213
244 return 0; 214 return 0;
245} 215}
@@ -884,7 +854,7 @@ static struct {
884 DECLARE_BITMAP(pin_programmed, MP_MAX_IOAPIC_PIN + 1); 854 DECLARE_BITMAP(pin_programmed, MP_MAX_IOAPIC_PIN + 1);
885} mp_ioapic_routing[MAX_IO_APICS]; 855} mp_ioapic_routing[MAX_IO_APICS];
886 856
887static int mp_find_ioapic(int gsi) 857int mp_find_ioapic(int gsi)
888{ 858{
889 int i = 0; 859 int i = 0;
890 860
@@ -899,6 +869,16 @@ static int mp_find_ioapic(int gsi)
899 return -1; 869 return -1;
900} 870}
901 871
872int mp_find_ioapic_pin(int ioapic, int gsi)
873{
874 if (WARN_ON(ioapic == -1))
875 return -1;
876 if (WARN_ON(gsi > mp_ioapic_routing[ioapic].gsi_end))
877 return -1;
878
879 return gsi - mp_ioapic_routing[ioapic].gsi_base;
880}
881
902static u8 __init uniq_ioapic_id(u8 id) 882static u8 __init uniq_ioapic_id(u8 id)
903{ 883{
904#ifdef CONFIG_X86_32 884#ifdef CONFIG_X86_32
@@ -912,8 +892,8 @@ static u8 __init uniq_ioapic_id(u8 id)
912 DECLARE_BITMAP(used, 256); 892 DECLARE_BITMAP(used, 256);
913 bitmap_zero(used, 256); 893 bitmap_zero(used, 256);
914 for (i = 0; i < nr_ioapics; i++) { 894 for (i = 0; i < nr_ioapics; i++) {
915 struct mp_config_ioapic *ia = &mp_ioapics[i]; 895 struct mpc_ioapic *ia = &mp_ioapics[i];
916 __set_bit(ia->mp_apicid, used); 896 __set_bit(ia->apicid, used);
917 } 897 }
918 if (!test_bit(id, used)) 898 if (!test_bit(id, used))
919 return id; 899 return id;
@@ -945,47 +925,70 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
945 925
946 idx = nr_ioapics; 926 idx = nr_ioapics;
947 927
948 mp_ioapics[idx].mp_type = MP_IOAPIC; 928 mp_ioapics[idx].type = MP_IOAPIC;
949 mp_ioapics[idx].mp_flags = MPC_APIC_USABLE; 929 mp_ioapics[idx].flags = MPC_APIC_USABLE;
950 mp_ioapics[idx].mp_apicaddr = address; 930 mp_ioapics[idx].apicaddr = address;
951 931
952 set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); 932 set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
953 mp_ioapics[idx].mp_apicid = uniq_ioapic_id(id); 933 mp_ioapics[idx].apicid = uniq_ioapic_id(id);
954#ifdef CONFIG_X86_32 934#ifdef CONFIG_X86_32
955 mp_ioapics[idx].mp_apicver = io_apic_get_version(idx); 935 mp_ioapics[idx].apicver = io_apic_get_version(idx);
956#else 936#else
957 mp_ioapics[idx].mp_apicver = 0; 937 mp_ioapics[idx].apicver = 0;
958#endif 938#endif
959 /* 939 /*
960 * Build basic GSI lookup table to facilitate gsi->io_apic lookups 940 * Build basic GSI lookup table to facilitate gsi->io_apic lookups
961 * and to prevent reprogramming of IOAPIC pins (PCI GSIs). 941 * and to prevent reprogramming of IOAPIC pins (PCI GSIs).
962 */ 942 */
963 mp_ioapic_routing[idx].apic_id = mp_ioapics[idx].mp_apicid; 943 mp_ioapic_routing[idx].apic_id = mp_ioapics[idx].apicid;
964 mp_ioapic_routing[idx].gsi_base = gsi_base; 944 mp_ioapic_routing[idx].gsi_base = gsi_base;
965 mp_ioapic_routing[idx].gsi_end = gsi_base + 945 mp_ioapic_routing[idx].gsi_end = gsi_base +
966 io_apic_get_redir_entries(idx); 946 io_apic_get_redir_entries(idx);
967 947
968 printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%lx, " 948 printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
969 "GSI %d-%d\n", idx, mp_ioapics[idx].mp_apicid, 949 "GSI %d-%d\n", idx, mp_ioapics[idx].apicid,
970 mp_ioapics[idx].mp_apicver, mp_ioapics[idx].mp_apicaddr, 950 mp_ioapics[idx].apicver, mp_ioapics[idx].apicaddr,
971 mp_ioapic_routing[idx].gsi_base, mp_ioapic_routing[idx].gsi_end); 951 mp_ioapic_routing[idx].gsi_base, mp_ioapic_routing[idx].gsi_end);
972 952
973 nr_ioapics++; 953 nr_ioapics++;
974} 954}
975 955
976static void assign_to_mp_irq(struct mp_config_intsrc *m, 956int __init acpi_probe_gsi(void)
977 struct mp_config_intsrc *mp_irq)
978{ 957{
979 memcpy(mp_irq, m, sizeof(struct mp_config_intsrc)); 958 int idx;
959 int gsi;
960 int max_gsi = 0;
961
962 if (acpi_disabled)
963 return 0;
964
965 if (!acpi_ioapic)
966 return 0;
967
968 max_gsi = 0;
969 for (idx = 0; idx < nr_ioapics; idx++) {
970 gsi = mp_ioapic_routing[idx].gsi_end;
971
972 if (gsi > max_gsi)
973 max_gsi = gsi;
974 }
975
976 return max_gsi + 1;
980} 977}
981 978
982static int mp_irq_cmp(struct mp_config_intsrc *mp_irq, 979static void assign_to_mp_irq(struct mpc_intsrc *m,
983 struct mp_config_intsrc *m) 980 struct mpc_intsrc *mp_irq)
984{ 981{
985 return memcmp(mp_irq, m, sizeof(struct mp_config_intsrc)); 982 memcpy(mp_irq, m, sizeof(struct mpc_intsrc));
986} 983}
987 984
988static void save_mp_irq(struct mp_config_intsrc *m) 985static int mp_irq_cmp(struct mpc_intsrc *mp_irq,
986 struct mpc_intsrc *m)
987{
988 return memcmp(mp_irq, m, sizeof(struct mpc_intsrc));
989}
990
991static void save_mp_irq(struct mpc_intsrc *m)
989{ 992{
990 int i; 993 int i;
991 994
@@ -1003,7 +1006,7 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1003{ 1006{
1004 int ioapic; 1007 int ioapic;
1005 int pin; 1008 int pin;
1006 struct mp_config_intsrc mp_irq; 1009 struct mpc_intsrc mp_irq;
1007 1010
1008 /* 1011 /*
1009 * Convert 'gsi' to 'ioapic.pin'. 1012 * Convert 'gsi' to 'ioapic.pin'.
@@ -1011,7 +1014,7 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1011 ioapic = mp_find_ioapic(gsi); 1014 ioapic = mp_find_ioapic(gsi);
1012 if (ioapic < 0) 1015 if (ioapic < 0)
1013 return; 1016 return;
1014 pin = gsi - mp_ioapic_routing[ioapic].gsi_base; 1017 pin = mp_find_ioapic_pin(ioapic, gsi);
1015 1018
1016 /* 1019 /*
1017 * TBD: This check is for faulty timer entries, where the override 1020 * TBD: This check is for faulty timer entries, where the override
@@ -1021,13 +1024,13 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1021 if ((bus_irq == 0) && (trigger == 3)) 1024 if ((bus_irq == 0) && (trigger == 3))
1022 trigger = 1; 1025 trigger = 1;
1023 1026
1024 mp_irq.mp_type = MP_INTSRC; 1027 mp_irq.type = MP_INTSRC;
1025 mp_irq.mp_irqtype = mp_INT; 1028 mp_irq.irqtype = mp_INT;
1026 mp_irq.mp_irqflag = (trigger << 2) | polarity; 1029 mp_irq.irqflag = (trigger << 2) | polarity;
1027 mp_irq.mp_srcbus = MP_ISA_BUS; 1030 mp_irq.srcbus = MP_ISA_BUS;
1028 mp_irq.mp_srcbusirq = bus_irq; /* IRQ */ 1031 mp_irq.srcbusirq = bus_irq; /* IRQ */
1029 mp_irq.mp_dstapic = mp_ioapics[ioapic].mp_apicid; /* APIC ID */ 1032 mp_irq.dstapic = mp_ioapics[ioapic].apicid; /* APIC ID */
1030 mp_irq.mp_dstirq = pin; /* INTIN# */ 1033 mp_irq.dstirq = pin; /* INTIN# */
1031 1034
1032 save_mp_irq(&mp_irq); 1035 save_mp_irq(&mp_irq);
1033} 1036}
@@ -1037,7 +1040,7 @@ void __init mp_config_acpi_legacy_irqs(void)
1037 int i; 1040 int i;
1038 int ioapic; 1041 int ioapic;
1039 unsigned int dstapic; 1042 unsigned int dstapic;
1040 struct mp_config_intsrc mp_irq; 1043 struct mpc_intsrc mp_irq;
1041 1044
1042#if defined (CONFIG_MCA) || defined (CONFIG_EISA) 1045#if defined (CONFIG_MCA) || defined (CONFIG_EISA)
1043 /* 1046 /*
@@ -1062,7 +1065,7 @@ void __init mp_config_acpi_legacy_irqs(void)
1062 ioapic = mp_find_ioapic(0); 1065 ioapic = mp_find_ioapic(0);
1063 if (ioapic < 0) 1066 if (ioapic < 0)
1064 return; 1067 return;
1065 dstapic = mp_ioapics[ioapic].mp_apicid; 1068 dstapic = mp_ioapics[ioapic].apicid;
1066 1069
1067 /* 1070 /*
1068 * Use the default configuration for the IRQs 0-15. Unless 1071 * Use the default configuration for the IRQs 0-15. Unless
@@ -1072,16 +1075,14 @@ void __init mp_config_acpi_legacy_irqs(void)
1072 int idx; 1075 int idx;
1073 1076
1074 for (idx = 0; idx < mp_irq_entries; idx++) { 1077 for (idx = 0; idx < mp_irq_entries; idx++) {
1075 struct mp_config_intsrc *irq = mp_irqs + idx; 1078 struct mpc_intsrc *irq = mp_irqs + idx;
1076 1079
1077 /* Do we already have a mapping for this ISA IRQ? */ 1080 /* Do we already have a mapping for this ISA IRQ? */
1078 if (irq->mp_srcbus == MP_ISA_BUS 1081 if (irq->srcbus == MP_ISA_BUS && irq->srcbusirq == i)
1079 && irq->mp_srcbusirq == i)
1080 break; 1082 break;
1081 1083
1082 /* Do we already have a mapping for this IOAPIC pin */ 1084 /* Do we already have a mapping for this IOAPIC pin */
1083 if (irq->mp_dstapic == dstapic && 1085 if (irq->dstapic == dstapic && irq->dstirq == i)
1084 irq->mp_dstirq == i)
1085 break; 1086 break;
1086 } 1087 }
1087 1088
@@ -1090,13 +1091,13 @@ void __init mp_config_acpi_legacy_irqs(void)
1090 continue; /* IRQ already used */ 1091 continue; /* IRQ already used */
1091 } 1092 }
1092 1093
1093 mp_irq.mp_type = MP_INTSRC; 1094 mp_irq.type = MP_INTSRC;
1094 mp_irq.mp_irqflag = 0; /* Conforming */ 1095 mp_irq.irqflag = 0; /* Conforming */
1095 mp_irq.mp_srcbus = MP_ISA_BUS; 1096 mp_irq.srcbus = MP_ISA_BUS;
1096 mp_irq.mp_dstapic = dstapic; 1097 mp_irq.dstapic = dstapic;
1097 mp_irq.mp_irqtype = mp_INT; 1098 mp_irq.irqtype = mp_INT;
1098 mp_irq.mp_srcbusirq = i; /* Identity mapped */ 1099 mp_irq.srcbusirq = i; /* Identity mapped */
1099 mp_irq.mp_dstirq = i; 1100 mp_irq.dstirq = i;
1100 1101
1101 save_mp_irq(&mp_irq); 1102 save_mp_irq(&mp_irq);
1102 } 1103 }
@@ -1133,7 +1134,7 @@ int mp_register_gsi(u32 gsi, int triggering, int polarity)
1133 return gsi; 1134 return gsi;
1134 } 1135 }
1135 1136
1136 ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_base; 1137 ioapic_pin = mp_find_ioapic_pin(ioapic, gsi);
1137 1138
1138#ifdef CONFIG_X86_32 1139#ifdef CONFIG_X86_32
1139 if (ioapic_renumber_irq) 1140 if (ioapic_renumber_irq)
@@ -1207,22 +1208,22 @@ int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
1207 u32 gsi, int triggering, int polarity) 1208 u32 gsi, int triggering, int polarity)
1208{ 1209{
1209#ifdef CONFIG_X86_MPPARSE 1210#ifdef CONFIG_X86_MPPARSE
1210 struct mp_config_intsrc mp_irq; 1211 struct mpc_intsrc mp_irq;
1211 int ioapic; 1212 int ioapic;
1212 1213
1213 if (!acpi_ioapic) 1214 if (!acpi_ioapic)
1214 return 0; 1215 return 0;
1215 1216
1216 /* print the entry should happen on mptable identically */ 1217 /* print the entry should happen on mptable identically */
1217 mp_irq.mp_type = MP_INTSRC; 1218 mp_irq.type = MP_INTSRC;
1218 mp_irq.mp_irqtype = mp_INT; 1219 mp_irq.irqtype = mp_INT;
1219 mp_irq.mp_irqflag = (triggering == ACPI_EDGE_SENSITIVE ? 4 : 0x0c) | 1220 mp_irq.irqflag = (triggering == ACPI_EDGE_SENSITIVE ? 4 : 0x0c) |
1220 (polarity == ACPI_ACTIVE_HIGH ? 1 : 3); 1221 (polarity == ACPI_ACTIVE_HIGH ? 1 : 3);
1221 mp_irq.mp_srcbus = number; 1222 mp_irq.srcbus = number;
1222 mp_irq.mp_srcbusirq = (((devfn >> 3) & 0x1f) << 2) | ((pin - 1) & 3); 1223 mp_irq.srcbusirq = (((devfn >> 3) & 0x1f) << 2) | ((pin - 1) & 3);
1223 ioapic = mp_find_ioapic(gsi); 1224 ioapic = mp_find_ioapic(gsi);
1224 mp_irq.mp_dstapic = mp_ioapic_routing[ioapic].apic_id; 1225 mp_irq.dstapic = mp_ioapic_routing[ioapic].apic_id;
1225 mp_irq.mp_dstirq = gsi - mp_ioapic_routing[ioapic].gsi_base; 1226 mp_irq.dstirq = mp_find_ioapic_pin(ioapic, gsi);
1226 1227
1227 save_mp_irq(&mp_irq); 1228 save_mp_irq(&mp_irq);
1228#endif 1229#endif
@@ -1349,7 +1350,7 @@ static void __init acpi_process_madt(void)
1349 if (!error) { 1350 if (!error) {
1350 acpi_lapic = 1; 1351 acpi_lapic = 1;
1351 1352
1352#ifdef CONFIG_X86_GENERICARCH 1353#ifdef CONFIG_X86_BIGSMP
1353 generic_bigsmp_probe(); 1354 generic_bigsmp_probe();
1354#endif 1355#endif
1355 /* 1356 /*
@@ -1361,9 +1362,8 @@ static void __init acpi_process_madt(void)
1361 acpi_ioapic = 1; 1362 acpi_ioapic = 1;
1362 1363
1363 smp_found_config = 1; 1364 smp_found_config = 1;
1364#ifdef CONFIG_X86_32 1365 if (apic->setup_apic_routing)
1365 setup_apic_routing(); 1366 apic->setup_apic_routing();
1366#endif
1367 } 1367 }
1368 } 1368 }
1369 if (error == -EINVAL) { 1369 if (error == -EINVAL) {
diff --git a/arch/x86/kernel/acpi/realmode/wakeup.S b/arch/x86/kernel/acpi/realmode/wakeup.S
index 3355973b12ac..580b4e296010 100644
--- a/arch/x86/kernel/acpi/realmode/wakeup.S
+++ b/arch/x86/kernel/acpi/realmode/wakeup.S
@@ -3,8 +3,8 @@
3 */ 3 */
4#include <asm/segment.h> 4#include <asm/segment.h>
5#include <asm/msr-index.h> 5#include <asm/msr-index.h>
6#include <asm/page.h> 6#include <asm/page_types.h>
7#include <asm/pgtable.h> 7#include <asm/pgtable_types.h>
8#include <asm/processor-flags.h> 8#include <asm/processor-flags.h>
9 9
10 .code16 10 .code16
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index 707c1f6f95fa..7c243a2c5115 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -101,6 +101,7 @@ int acpi_save_state_mem(void)
101 stack_start.sp = temp_stack + sizeof(temp_stack); 101 stack_start.sp = temp_stack + sizeof(temp_stack);
102 early_gdt_descr.address = 102 early_gdt_descr.address =
103 (unsigned long)get_cpu_gdt_table(smp_processor_id()); 103 (unsigned long)get_cpu_gdt_table(smp_processor_id());
104 initial_gs = per_cpu_offset(smp_processor_id());
104#endif 105#endif
105 initial_code = (unsigned long)wakeup_long64; 106 initial_code = (unsigned long)wakeup_long64;
106 saved_magic = 0x123456789abcdef0; 107 saved_magic = 0x123456789abcdef0;
@@ -156,11 +157,11 @@ static int __init acpi_sleep_setup(char *str)
156#ifdef CONFIG_HIBERNATION 157#ifdef CONFIG_HIBERNATION
157 if (strncmp(str, "s4_nohwsig", 10) == 0) 158 if (strncmp(str, "s4_nohwsig", 10) == 0)
158 acpi_no_s4_hw_signature(); 159 acpi_no_s4_hw_signature();
160 if (strncmp(str, "s4_nonvs", 8) == 0)
161 acpi_s4_no_nvs();
159#endif 162#endif
160 if (strncmp(str, "old_ordering", 12) == 0) 163 if (strncmp(str, "old_ordering", 12) == 0)
161 acpi_old_suspend_ordering(); 164 acpi_old_suspend_ordering();
162 if (strncmp(str, "s4_nonvs", 8) == 0)
163 acpi_s4_no_nvs();
164 str = strchr(str, ','); 165 str = strchr(str, ',');
165 if (str != NULL) 166 if (str != NULL)
166 str += strspn(str, ", \t"); 167 str += strspn(str, ", \t");
diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
index a12e6a9fb659..8ded418b0593 100644
--- a/arch/x86/kernel/acpi/wakeup_32.S
+++ b/arch/x86/kernel/acpi/wakeup_32.S
@@ -1,7 +1,7 @@
1 .section .text.page_aligned 1 .section .text.page_aligned
2#include <linux/linkage.h> 2#include <linux/linkage.h>
3#include <asm/segment.h> 3#include <asm/segment.h>
4#include <asm/page.h> 4#include <asm/page_types.h>
5 5
6# Copyright 2003, 2008 Pavel Machek <pavel@suse.cz>, distribute under GPLv2 6# Copyright 2003, 2008 Pavel Machek <pavel@suse.cz>, distribute under GPLv2
7 7
diff --git a/arch/x86/kernel/acpi/wakeup_64.S b/arch/x86/kernel/acpi/wakeup_64.S
index bcc293423a70..8ea5164cbd04 100644
--- a/arch/x86/kernel/acpi/wakeup_64.S
+++ b/arch/x86/kernel/acpi/wakeup_64.S
@@ -1,8 +1,8 @@
1.text 1.text
2#include <linux/linkage.h> 2#include <linux/linkage.h>
3#include <asm/segment.h> 3#include <asm/segment.h>
4#include <asm/pgtable.h> 4#include <asm/pgtable_types.h>
5#include <asm/page.h> 5#include <asm/page_types.h>
6#include <asm/msr.h> 6#include <asm/msr.h>
7#include <asm/asm-offsets.h> 7#include <asm/asm-offsets.h>
8 8
@@ -13,7 +13,6 @@
13 * Hooray, we are in Long 64-bit mode (but still running in low memory) 13 * Hooray, we are in Long 64-bit mode (but still running in low memory)
14 */ 14 */
15ENTRY(wakeup_long64) 15ENTRY(wakeup_long64)
16wakeup_long64:
17 movq saved_magic, %rax 16 movq saved_magic, %rax
18 movq $0x123456789abcdef0, %rdx 17 movq $0x123456789abcdef0, %rdx
19 cmpq %rdx, %rax 18 cmpq %rdx, %rax
@@ -34,16 +33,12 @@ wakeup_long64:
34 33
35 movq saved_rip, %rax 34 movq saved_rip, %rax
36 jmp *%rax 35 jmp *%rax
36ENDPROC(wakeup_long64)
37 37
38bogus_64_magic: 38bogus_64_magic:
39 jmp bogus_64_magic 39 jmp bogus_64_magic
40 40
41 .align 2 41ENTRY(do_suspend_lowlevel)
42 .p2align 4,,15
43.globl do_suspend_lowlevel
44 .type do_suspend_lowlevel,@function
45do_suspend_lowlevel:
46.LFB5:
47 subq $8, %rsp 42 subq $8, %rsp
48 xorl %eax, %eax 43 xorl %eax, %eax
49 call save_processor_state 44 call save_processor_state
@@ -67,7 +62,7 @@ do_suspend_lowlevel:
67 pushfq 62 pushfq
68 popq pt_regs_flags(%rax) 63 popq pt_regs_flags(%rax)
69 64
70 movq $.L97, saved_rip(%rip) 65 movq $resume_point, saved_rip(%rip)
71 66
72 movq %rsp, saved_rsp 67 movq %rsp, saved_rsp
73 movq %rbp, saved_rbp 68 movq %rbp, saved_rbp
@@ -78,14 +73,12 @@ do_suspend_lowlevel:
78 addq $8, %rsp 73 addq $8, %rsp
79 movl $3, %edi 74 movl $3, %edi
80 xorl %eax, %eax 75 xorl %eax, %eax
81 jmp acpi_enter_sleep_state 76 call acpi_enter_sleep_state
82.L97: 77 /* in case something went wrong, restore the machine status and go on */
83 .p2align 4,,7 78 jmp resume_point
84.L99:
85 .align 4
86 movl $24, %eax
87 movw %ax, %ds
88 79
80 .align 4
81resume_point:
89 /* We don't restore %rax, it must be 0 anyway */ 82 /* We don't restore %rax, it must be 0 anyway */
90 movq $saved_context, %rax 83 movq $saved_context, %rax
91 movq saved_context_cr4(%rax), %rbx 84 movq saved_context_cr4(%rax), %rbx
@@ -117,12 +110,9 @@ do_suspend_lowlevel:
117 xorl %eax, %eax 110 xorl %eax, %eax
118 addq $8, %rsp 111 addq $8, %rsp
119 jmp restore_processor_state 112 jmp restore_processor_state
120.LFE5: 113ENDPROC(do_suspend_lowlevel)
121.Lfe5: 114
122 .size do_suspend_lowlevel, .Lfe5-do_suspend_lowlevel
123
124.data 115.data
125ALIGN
126ENTRY(saved_rbp) .quad 0 116ENTRY(saved_rbp) .quad 0
127ENTRY(saved_rsi) .quad 0 117ENTRY(saved_rsi) .quad 0
128ENTRY(saved_rdi) .quad 0 118ENTRY(saved_rdi) .quad 0
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index a84ac7b570e6..4c80f1557433 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -414,9 +414,17 @@ void __init alternative_instructions(void)
414 that might execute the to be patched code. 414 that might execute the to be patched code.
415 Other CPUs are not running. */ 415 Other CPUs are not running. */
416 stop_nmi(); 416 stop_nmi();
417#ifdef CONFIG_X86_MCE 417
418 stop_mce(); 418 /*
419#endif 419 * Don't stop machine check exceptions while patching.
420 * MCEs only happen when something got corrupted and in this
421 * case we must do something about the corruption.
422 * Ignoring it is worse than a unlikely patching race.
423 * Also machine checks tend to be broadcast and if one CPU
424 * goes into machine check the others follow quickly, so we don't
425 * expect a machine check to cause undue problems during to code
426 * patching.
427 */
420 428
421 apply_alternatives(__alt_instructions, __alt_instructions_end); 429 apply_alternatives(__alt_instructions, __alt_instructions_end);
422 430
@@ -456,9 +464,6 @@ void __init alternative_instructions(void)
456 (unsigned long)__smp_locks_end); 464 (unsigned long)__smp_locks_end);
457 465
458 restart_nmi(); 466 restart_nmi();
459#ifdef CONFIG_X86_MCE
460 restart_mce();
461#endif
462} 467}
463 468
464/** 469/**
@@ -498,12 +503,12 @@ void *text_poke_early(void *addr, const void *opcode, size_t len)
498 */ 503 */
499void *__kprobes text_poke(void *addr, const void *opcode, size_t len) 504void *__kprobes text_poke(void *addr, const void *opcode, size_t len)
500{ 505{
501 unsigned long flags;
502 char *vaddr; 506 char *vaddr;
503 int nr_pages = 2; 507 int nr_pages = 2;
504 struct page *pages[2]; 508 struct page *pages[2];
505 int i; 509 int i;
506 510
511 might_sleep();
507 if (!core_kernel_text((unsigned long)addr)) { 512 if (!core_kernel_text((unsigned long)addr)) {
508 pages[0] = vmalloc_to_page(addr); 513 pages[0] = vmalloc_to_page(addr);
509 pages[1] = vmalloc_to_page(addr + PAGE_SIZE); 514 pages[1] = vmalloc_to_page(addr + PAGE_SIZE);
@@ -517,9 +522,9 @@ void *__kprobes text_poke(void *addr, const void *opcode, size_t len)
517 nr_pages = 1; 522 nr_pages = 1;
518 vaddr = vmap(pages, nr_pages, VM_MAP, PAGE_KERNEL); 523 vaddr = vmap(pages, nr_pages, VM_MAP, PAGE_KERNEL);
519 BUG_ON(!vaddr); 524 BUG_ON(!vaddr);
520 local_irq_save(flags); 525 local_irq_disable();
521 memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len); 526 memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len);
522 local_irq_restore(flags); 527 local_irq_enable();
523 vunmap(vaddr); 528 vunmap(vaddr);
524 sync_core(); 529 sync_core();
525 /* Could also do a CLFLUSH here to speed up CPU recovery; but 530 /* Could also do a CLFLUSH here to speed up CPU recovery; but
diff --git a/arch/x86/kernel/apic/Makefile b/arch/x86/kernel/apic/Makefile
new file mode 100644
index 000000000000..da7b7b9f8bd8
--- /dev/null
+++ b/arch/x86/kernel/apic/Makefile
@@ -0,0 +1,19 @@
1#
2# Makefile for local APIC drivers and for the IO-APIC code
3#
4
5obj-$(CONFIG_X86_LOCAL_APIC) += apic.o probe_$(BITS).o ipi.o nmi.o
6obj-$(CONFIG_X86_IO_APIC) += io_apic.o
7obj-$(CONFIG_SMP) += ipi.o
8
9ifeq ($(CONFIG_X86_64),y)
10obj-y += apic_flat_64.o
11obj-$(CONFIG_X86_X2APIC) += x2apic_cluster.o
12obj-$(CONFIG_X86_X2APIC) += x2apic_phys.o
13obj-$(CONFIG_X86_UV) += x2apic_uv_x.o
14endif
15
16obj-$(CONFIG_X86_BIGSMP) += bigsmp_32.o
17obj-$(CONFIG_X86_NUMAQ) += numaq_32.o
18obj-$(CONFIG_X86_ES7000) += es7000_32.o
19obj-$(CONFIG_X86_SUMMIT) += summit_32.o
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic/apic.c
index db0998641c58..30909a258d0f 100644
--- a/arch/x86/kernel/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Local APIC handling, local APIC timers 2 * Local APIC handling, local APIC timers
3 * 3 *
4 * (c) 1999, 2000 Ingo Molnar <mingo@redhat.com> 4 * (c) 1999, 2000, 2009 Ingo Molnar <mingo@redhat.com>
5 * 5 *
6 * Fixes 6 * Fixes
7 * Maciej W. Rozycki : Bits for genuine 82489DX APICs; 7 * Maciej W. Rozycki : Bits for genuine 82489DX APICs;
@@ -14,51 +14,70 @@
14 * Mikael Pettersson : PM converted to driver model. 14 * Mikael Pettersson : PM converted to driver model.
15 */ 15 */
16 16
17#include <linux/init.h>
18
19#include <linux/mm.h>
20#include <linux/delay.h>
21#include <linux/bootmem.h>
22#include <linux/interrupt.h>
23#include <linux/mc146818rtc.h>
24#include <linux/kernel_stat.h> 17#include <linux/kernel_stat.h>
25#include <linux/sysdev.h> 18#include <linux/mc146818rtc.h>
26#include <linux/ioport.h>
27#include <linux/cpu.h>
28#include <linux/clockchips.h>
29#include <linux/acpi_pmtmr.h> 19#include <linux/acpi_pmtmr.h>
20#include <linux/clockchips.h>
21#include <linux/interrupt.h>
22#include <linux/bootmem.h>
23#include <linux/ftrace.h>
24#include <linux/ioport.h>
30#include <linux/module.h> 25#include <linux/module.h>
31#include <linux/dmi.h> 26#include <linux/sysdev.h>
27#include <linux/delay.h>
28#include <linux/timex.h>
32#include <linux/dmar.h> 29#include <linux/dmar.h>
33#include <linux/ftrace.h> 30#include <linux/init.h>
34#include <linux/smp.h> 31#include <linux/cpu.h>
32#include <linux/dmi.h>
35#include <linux/nmi.h> 33#include <linux/nmi.h>
36#include <linux/timex.h> 34#include <linux/smp.h>
35#include <linux/mm.h>
37 36
37#include <asm/pgalloc.h>
38#include <asm/atomic.h> 38#include <asm/atomic.h>
39#include <asm/mtrr.h>
40#include <asm/mpspec.h> 39#include <asm/mpspec.h>
41#include <asm/desc.h>
42#include <asm/arch_hooks.h>
43#include <asm/hpet.h>
44#include <asm/pgalloc.h>
45#include <asm/i8253.h> 40#include <asm/i8253.h>
46#include <asm/idle.h> 41#include <asm/i8259.h>
47#include <asm/proto.h> 42#include <asm/proto.h>
48#include <asm/apic.h> 43#include <asm/apic.h>
49#include <asm/i8259.h> 44#include <asm/desc.h>
45#include <asm/hpet.h>
46#include <asm/idle.h>
47#include <asm/mtrr.h>
50#include <asm/smp.h> 48#include <asm/smp.h>
49#include <asm/mce.h>
50
51unsigned int num_processors;
52
53unsigned disabled_cpus __cpuinitdata;
54
55/* Processor that is doing the boot up */
56unsigned int boot_cpu_physical_apicid = -1U;
57
58/*
59 * The highest APIC ID seen during enumeration.
60 *
61 * This determines the messaging protocol we can use: if all APIC IDs
62 * are in the 0 ... 7 range, then we can use logical addressing which
63 * has some performance advantages (better broadcasting).
64 *
65 * If there's an APIC ID above 8, we use physical addressing.
66 */
67unsigned int max_physical_apicid;
51 68
52#include <mach_apic.h> 69/*
53#include <mach_apicdef.h> 70 * Bitmask of physically existing CPUs:
54#include <mach_ipi.h> 71 */
72physid_mask_t phys_cpu_present_map;
55 73
56/* 74/*
57 * Sanity check 75 * Map cpu index to physical APIC ID
58 */ 76 */
59#if ((SPURIOUS_APIC_VECTOR & 0x0F) != 0x0F) 77DEFINE_EARLY_PER_CPU(u16, x86_cpu_to_apicid, BAD_APICID);
60# error SPURIOUS_APIC_VECTOR definition error 78DEFINE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid, BAD_APICID);
61#endif 79EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_apicid);
80EXPORT_EARLY_PER_CPU_SYMBOL(x86_bios_cpu_apicid);
62 81
63#ifdef CONFIG_X86_32 82#ifdef CONFIG_X86_32
64/* 83/*
@@ -92,11 +111,7 @@ static __init int setup_apicpmtimer(char *s)
92__setup("apicpmtimer", setup_apicpmtimer); 111__setup("apicpmtimer", setup_apicpmtimer);
93#endif 112#endif
94 113
95#ifdef CONFIG_X86_64 114#ifdef CONFIG_X86_X2APIC
96#define HAVE_X2APIC
97#endif
98
99#ifdef HAVE_X2APIC
100int x2apic; 115int x2apic;
101/* x2apic enabled before OS handover */ 116/* x2apic enabled before OS handover */
102static int x2apic_preenabled; 117static int x2apic_preenabled;
@@ -194,18 +209,13 @@ static int modern_apic(void)
194 return lapic_get_version() >= 0x14; 209 return lapic_get_version() >= 0x14;
195} 210}
196 211
197/* 212void native_apic_wait_icr_idle(void)
198 * Paravirt kernels also might be using these below ops. So we still
199 * use generic apic_read()/apic_write(), which might be pointing to different
200 * ops in PARAVIRT case.
201 */
202void xapic_wait_icr_idle(void)
203{ 213{
204 while (apic_read(APIC_ICR) & APIC_ICR_BUSY) 214 while (apic_read(APIC_ICR) & APIC_ICR_BUSY)
205 cpu_relax(); 215 cpu_relax();
206} 216}
207 217
208u32 safe_xapic_wait_icr_idle(void) 218u32 native_safe_apic_wait_icr_idle(void)
209{ 219{
210 u32 send_status; 220 u32 send_status;
211 int timeout; 221 int timeout;
@@ -221,13 +231,13 @@ u32 safe_xapic_wait_icr_idle(void)
221 return send_status; 231 return send_status;
222} 232}
223 233
224void xapic_icr_write(u32 low, u32 id) 234void native_apic_icr_write(u32 low, u32 id)
225{ 235{
226 apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(id)); 236 apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(id));
227 apic_write(APIC_ICR, low); 237 apic_write(APIC_ICR, low);
228} 238}
229 239
230static u64 xapic_icr_read(void) 240u64 native_apic_icr_read(void)
231{ 241{
232 u32 icr1, icr2; 242 u32 icr1, icr2;
233 243
@@ -237,54 +247,6 @@ static u64 xapic_icr_read(void)
237 return icr1 | ((u64)icr2 << 32); 247 return icr1 | ((u64)icr2 << 32);
238} 248}
239 249
240static struct apic_ops xapic_ops = {
241 .read = native_apic_mem_read,
242 .write = native_apic_mem_write,
243 .icr_read = xapic_icr_read,
244 .icr_write = xapic_icr_write,
245 .wait_icr_idle = xapic_wait_icr_idle,
246 .safe_wait_icr_idle = safe_xapic_wait_icr_idle,
247};
248
249struct apic_ops __read_mostly *apic_ops = &xapic_ops;
250EXPORT_SYMBOL_GPL(apic_ops);
251
252#ifdef HAVE_X2APIC
253static void x2apic_wait_icr_idle(void)
254{
255 /* no need to wait for icr idle in x2apic */
256 return;
257}
258
259static u32 safe_x2apic_wait_icr_idle(void)
260{
261 /* no need to wait for icr idle in x2apic */
262 return 0;
263}
264
265void x2apic_icr_write(u32 low, u32 id)
266{
267 wrmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), ((__u64) id) << 32 | low);
268}
269
270static u64 x2apic_icr_read(void)
271{
272 unsigned long val;
273
274 rdmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), val);
275 return val;
276}
277
278static struct apic_ops x2apic_ops = {
279 .read = native_apic_msr_read,
280 .write = native_apic_msr_write,
281 .icr_read = x2apic_icr_read,
282 .icr_write = x2apic_icr_write,
283 .wait_icr_idle = x2apic_wait_icr_idle,
284 .safe_wait_icr_idle = safe_x2apic_wait_icr_idle,
285};
286#endif
287
288/** 250/**
289 * enable_NMI_through_LVT0 - enable NMI through local vector table 0 251 * enable_NMI_through_LVT0 - enable NMI through local vector table 0
290 */ 252 */
@@ -457,7 +419,7 @@ static void lapic_timer_setup(enum clock_event_mode mode,
457static void lapic_timer_broadcast(const struct cpumask *mask) 419static void lapic_timer_broadcast(const struct cpumask *mask)
458{ 420{
459#ifdef CONFIG_SMP 421#ifdef CONFIG_SMP
460 send_IPI_mask(mask, LOCAL_TIMER_VECTOR); 422 apic->send_IPI_mask(mask, LOCAL_TIMER_VECTOR);
461#endif 423#endif
462} 424}
463 425
@@ -535,7 +497,8 @@ static void __init lapic_cal_handler(struct clock_event_device *dev)
535 } 497 }
536} 498}
537 499
538static int __init calibrate_by_pmtimer(long deltapm, long *delta) 500static int __init
501calibrate_by_pmtimer(long deltapm, long *delta, long *deltatsc)
539{ 502{
540 const long pm_100ms = PMTMR_TICKS_PER_SEC / 10; 503 const long pm_100ms = PMTMR_TICKS_PER_SEC / 10;
541 const long pm_thresh = pm_100ms / 100; 504 const long pm_thresh = pm_100ms / 100;
@@ -546,7 +509,7 @@ static int __init calibrate_by_pmtimer(long deltapm, long *delta)
546 return -1; 509 return -1;
547#endif 510#endif
548 511
549 apic_printk(APIC_VERBOSE, "... PM timer delta = %ld\n", deltapm); 512 apic_printk(APIC_VERBOSE, "... PM-Timer delta = %ld\n", deltapm);
550 513
551 /* Check, if the PM timer is available */ 514 /* Check, if the PM timer is available */
552 if (!deltapm) 515 if (!deltapm)
@@ -556,19 +519,30 @@ static int __init calibrate_by_pmtimer(long deltapm, long *delta)
556 519
557 if (deltapm > (pm_100ms - pm_thresh) && 520 if (deltapm > (pm_100ms - pm_thresh) &&
558 deltapm < (pm_100ms + pm_thresh)) { 521 deltapm < (pm_100ms + pm_thresh)) {
559 apic_printk(APIC_VERBOSE, "... PM timer result ok\n"); 522 apic_printk(APIC_VERBOSE, "... PM-Timer result ok\n");
560 } else { 523 return 0;
561 res = (((u64)deltapm) * mult) >> 22; 524 }
562 do_div(res, 1000000); 525
563 pr_warning("APIC calibration not consistent " 526 res = (((u64)deltapm) * mult) >> 22;
564 "with PM Timer: %ldms instead of 100ms\n", 527 do_div(res, 1000000);
565 (long)res); 528 pr_warning("APIC calibration not consistent "
566 /* Correct the lapic counter value */ 529 "with PM-Timer: %ldms instead of 100ms\n",(long)res);
567 res = (((u64)(*delta)) * pm_100ms); 530
531 /* Correct the lapic counter value */
532 res = (((u64)(*delta)) * pm_100ms);
533 do_div(res, deltapm);
534 pr_info("APIC delta adjusted to PM-Timer: "
535 "%lu (%ld)\n", (unsigned long)res, *delta);
536 *delta = (long)res;
537
538 /* Correct the tsc counter value */
539 if (cpu_has_tsc) {
540 res = (((u64)(*deltatsc)) * pm_100ms);
568 do_div(res, deltapm); 541 do_div(res, deltapm);
569 pr_info("APIC delta adjusted to PM-Timer: " 542 apic_printk(APIC_VERBOSE, "TSC delta adjusted to "
570 "%lu (%ld)\n", (unsigned long)res, *delta); 543 "PM-Timer: %lu (%ld) \n",
571 *delta = (long)res; 544 (unsigned long)res, *deltatsc);
545 *deltatsc = (long)res;
572 } 546 }
573 547
574 return 0; 548 return 0;
@@ -579,7 +553,7 @@ static int __init calibrate_APIC_clock(void)
579 struct clock_event_device *levt = &__get_cpu_var(lapic_events); 553 struct clock_event_device *levt = &__get_cpu_var(lapic_events);
580 void (*real_handler)(struct clock_event_device *dev); 554 void (*real_handler)(struct clock_event_device *dev);
581 unsigned long deltaj; 555 unsigned long deltaj;
582 long delta; 556 long delta, deltatsc;
583 int pm_referenced = 0; 557 int pm_referenced = 0;
584 558
585 local_irq_disable(); 559 local_irq_disable();
@@ -609,9 +583,11 @@ static int __init calibrate_APIC_clock(void)
609 delta = lapic_cal_t1 - lapic_cal_t2; 583 delta = lapic_cal_t1 - lapic_cal_t2;
610 apic_printk(APIC_VERBOSE, "... lapic delta = %ld\n", delta); 584 apic_printk(APIC_VERBOSE, "... lapic delta = %ld\n", delta);
611 585
586 deltatsc = (long)(lapic_cal_tsc2 - lapic_cal_tsc1);
587
612 /* we trust the PM based calibration if possible */ 588 /* we trust the PM based calibration if possible */
613 pm_referenced = !calibrate_by_pmtimer(lapic_cal_pm2 - lapic_cal_pm1, 589 pm_referenced = !calibrate_by_pmtimer(lapic_cal_pm2 - lapic_cal_pm1,
614 &delta); 590 &delta, &deltatsc);
615 591
616 /* Calculate the scaled math multiplication factor */ 592 /* Calculate the scaled math multiplication factor */
617 lapic_clockevent.mult = div_sc(delta, TICK_NSEC * LAPIC_CAL_LOOPS, 593 lapic_clockevent.mult = div_sc(delta, TICK_NSEC * LAPIC_CAL_LOOPS,
@@ -629,11 +605,10 @@ static int __init calibrate_APIC_clock(void)
629 calibration_result); 605 calibration_result);
630 606
631 if (cpu_has_tsc) { 607 if (cpu_has_tsc) {
632 delta = (long)(lapic_cal_tsc2 - lapic_cal_tsc1);
633 apic_printk(APIC_VERBOSE, "..... CPU clock speed is " 608 apic_printk(APIC_VERBOSE, "..... CPU clock speed is "
634 "%ld.%04ld MHz.\n", 609 "%ld.%04ld MHz.\n",
635 (delta / LAPIC_CAL_LOOPS) / (1000000 / HZ), 610 (deltatsc / LAPIC_CAL_LOOPS) / (1000000 / HZ),
636 (delta / LAPIC_CAL_LOOPS) % (1000000 / HZ)); 611 (deltatsc / LAPIC_CAL_LOOPS) % (1000000 / HZ));
637 } 612 }
638 613
639 apic_printk(APIC_VERBOSE, "..... host bus clock speed is " 614 apic_printk(APIC_VERBOSE, "..... host bus clock speed is "
@@ -862,12 +837,20 @@ void clear_local_APIC(void)
862 } 837 }
863 838
864 /* lets not touch this if we didn't frob it */ 839 /* lets not touch this if we didn't frob it */
865#if defined(CONFIG_X86_MCE_P4THERMAL) || defined(X86_MCE_INTEL) 840#if defined(CONFIG_X86_MCE_P4THERMAL) || defined(CONFIG_X86_MCE_INTEL)
866 if (maxlvt >= 5) { 841 if (maxlvt >= 5) {
867 v = apic_read(APIC_LVTTHMR); 842 v = apic_read(APIC_LVTTHMR);
868 apic_write(APIC_LVTTHMR, v | APIC_LVT_MASKED); 843 apic_write(APIC_LVTTHMR, v | APIC_LVT_MASKED);
869 } 844 }
870#endif 845#endif
846#ifdef CONFIG_X86_MCE_INTEL
847 if (maxlvt >= 6) {
848 v = apic_read(APIC_LVTCMCI);
849 if (!(v & APIC_LVT_MASKED))
850 apic_write(APIC_LVTCMCI, v | APIC_LVT_MASKED);
851 }
852#endif
853
871 /* 854 /*
872 * Clean APIC state for other OSs: 855 * Clean APIC state for other OSs:
873 */ 856 */
@@ -895,6 +878,10 @@ void disable_local_APIC(void)
895{ 878{
896 unsigned int value; 879 unsigned int value;
897 880
881 /* APIC hasn't been mapped yet */
882 if (!apic_phys)
883 return;
884
898 clear_local_APIC(); 885 clear_local_APIC();
899 886
900 /* 887 /*
@@ -987,11 +974,11 @@ int __init verify_local_APIC(void)
987 */ 974 */
988 reg0 = apic_read(APIC_ID); 975 reg0 = apic_read(APIC_ID);
989 apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg0); 976 apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg0);
990 apic_write(APIC_ID, reg0 ^ APIC_ID_MASK); 977 apic_write(APIC_ID, reg0 ^ apic->apic_id_mask);
991 reg1 = apic_read(APIC_ID); 978 reg1 = apic_read(APIC_ID);
992 apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg1); 979 apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg1);
993 apic_write(APIC_ID, reg0); 980 apic_write(APIC_ID, reg0);
994 if (reg1 != (reg0 ^ APIC_ID_MASK)) 981 if (reg1 != (reg0 ^ apic->apic_id_mask))
995 return 0; 982 return 0;
996 983
997 /* 984 /*
@@ -1085,7 +1072,7 @@ static void __cpuinit lapic_setup_esr(void)
1085 return; 1072 return;
1086 } 1073 }
1087 1074
1088 if (esr_disable) { 1075 if (apic->disable_esr) {
1089 /* 1076 /*
1090 * Something untraceable is creating bad interrupts on 1077 * Something untraceable is creating bad interrupts on
1091 * secondary quads ... for the moment, just leave the 1078 * secondary quads ... for the moment, just leave the
@@ -1126,9 +1113,14 @@ void __cpuinit setup_local_APIC(void)
1126 unsigned int value; 1113 unsigned int value;
1127 int i, j; 1114 int i, j;
1128 1115
1116 if (disable_apic) {
1117 arch_disable_smp_support();
1118 return;
1119 }
1120
1129#ifdef CONFIG_X86_32 1121#ifdef CONFIG_X86_32
1130 /* Pound the ESR really hard over the head with a big hammer - mbligh */ 1122 /* Pound the ESR really hard over the head with a big hammer - mbligh */
1131 if (lapic_is_integrated() && esr_disable) { 1123 if (lapic_is_integrated() && apic->disable_esr) {
1132 apic_write(APIC_ESR, 0); 1124 apic_write(APIC_ESR, 0);
1133 apic_write(APIC_ESR, 0); 1125 apic_write(APIC_ESR, 0);
1134 apic_write(APIC_ESR, 0); 1126 apic_write(APIC_ESR, 0);
@@ -1142,7 +1134,7 @@ void __cpuinit setup_local_APIC(void)
1142 * Double-check whether this APIC is really registered. 1134 * Double-check whether this APIC is really registered.
1143 * This is meaningless in clustered apic mode, so we skip it. 1135 * This is meaningless in clustered apic mode, so we skip it.
1144 */ 1136 */
1145 if (!apic_id_registered()) 1137 if (!apic->apic_id_registered())
1146 BUG(); 1138 BUG();
1147 1139
1148 /* 1140 /*
@@ -1150,7 +1142,7 @@ void __cpuinit setup_local_APIC(void)
1150 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel 1142 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
1151 * document number 292116). So here it goes... 1143 * document number 292116). So here it goes...
1152 */ 1144 */
1153 init_apic_ldr(); 1145 apic->init_apic_ldr();
1154 1146
1155 /* 1147 /*
1156 * Set Task Priority to 'accept all'. We never change this 1148 * Set Task Priority to 'accept all'. We never change this
@@ -1258,6 +1250,12 @@ void __cpuinit setup_local_APIC(void)
1258 apic_write(APIC_LVT1, value); 1250 apic_write(APIC_LVT1, value);
1259 1251
1260 preempt_enable(); 1252 preempt_enable();
1253
1254#ifdef CONFIG_X86_MCE_INTEL
1255 /* Recheck CMCI information after local APIC is up on CPU #0 */
1256 if (smp_processor_id() == 0)
1257 cmci_recheck();
1258#endif
1261} 1259}
1262 1260
1263void __cpuinit end_local_APIC_setup(void) 1261void __cpuinit end_local_APIC_setup(void)
@@ -1278,17 +1276,12 @@ void __cpuinit end_local_APIC_setup(void)
1278 apic_pm_activate(); 1276 apic_pm_activate();
1279} 1277}
1280 1278
1281#ifdef HAVE_X2APIC 1279#ifdef CONFIG_X86_X2APIC
1282void check_x2apic(void) 1280void check_x2apic(void)
1283{ 1281{
1284 int msr, msr2; 1282 if (x2apic_enabled()) {
1285
1286 rdmsr(MSR_IA32_APICBASE, msr, msr2);
1287
1288 if (msr & X2APIC_ENABLE) {
1289 pr_info("x2apic enabled by BIOS, switching to x2apic ops\n"); 1283 pr_info("x2apic enabled by BIOS, switching to x2apic ops\n");
1290 x2apic_preenabled = x2apic = 1; 1284 x2apic_preenabled = x2apic = 1;
1291 apic_ops = &x2apic_ops;
1292 } 1285 }
1293} 1286}
1294 1287
@@ -1296,6 +1289,9 @@ void enable_x2apic(void)
1296{ 1289{
1297 int msr, msr2; 1290 int msr, msr2;
1298 1291
1292 if (!x2apic)
1293 return;
1294
1299 rdmsr(MSR_IA32_APICBASE, msr, msr2); 1295 rdmsr(MSR_IA32_APICBASE, msr, msr2);
1300 if (!(msr & X2APIC_ENABLE)) { 1296 if (!(msr & X2APIC_ENABLE)) {
1301 pr_info("Enabling x2apic\n"); 1297 pr_info("Enabling x2apic\n");
@@ -1359,7 +1355,6 @@ void __init enable_IR_x2apic(void)
1359 1355
1360 if (!x2apic) { 1356 if (!x2apic) {
1361 x2apic = 1; 1357 x2apic = 1;
1362 apic_ops = &x2apic_ops;
1363 enable_x2apic(); 1358 enable_x2apic();
1364 } 1359 }
1365 1360
@@ -1397,7 +1392,7 @@ end:
1397 1392
1398 return; 1393 return;
1399} 1394}
1400#endif /* HAVE_X2APIC */ 1395#endif /* CONFIG_X86_X2APIC */
1401 1396
1402#ifdef CONFIG_X86_64 1397#ifdef CONFIG_X86_64
1403/* 1398/*
@@ -1432,7 +1427,7 @@ static int __init detect_init_APIC(void)
1432 switch (boot_cpu_data.x86_vendor) { 1427 switch (boot_cpu_data.x86_vendor) {
1433 case X86_VENDOR_AMD: 1428 case X86_VENDOR_AMD:
1434 if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) || 1429 if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) ||
1435 (boot_cpu_data.x86 == 15)) 1430 (boot_cpu_data.x86 >= 15))
1436 break; 1431 break;
1437 goto no_apic; 1432 goto no_apic;
1438 case X86_VENDOR_INTEL: 1433 case X86_VENDOR_INTEL:
@@ -1528,7 +1523,7 @@ void __init early_init_lapic_mapping(void)
1528 */ 1523 */
1529void __init init_apic_mappings(void) 1524void __init init_apic_mappings(void)
1530{ 1525{
1531#ifdef HAVE_X2APIC 1526#ifdef CONFIG_X86_X2APIC
1532 if (x2apic) { 1527 if (x2apic) {
1533 boot_cpu_physical_apicid = read_apic_id(); 1528 boot_cpu_physical_apicid = read_apic_id();
1534 return; 1529 return;
@@ -1566,11 +1561,11 @@ int apic_version[MAX_APICS];
1566 1561
1567int __init APIC_init_uniprocessor(void) 1562int __init APIC_init_uniprocessor(void)
1568{ 1563{
1569#ifdef CONFIG_X86_64
1570 if (disable_apic) { 1564 if (disable_apic) {
1571 pr_info("Apic disabled\n"); 1565 pr_info("Apic disabled\n");
1572 return -1; 1566 return -1;
1573 } 1567 }
1568#ifdef CONFIG_X86_64
1574 if (!cpu_has_apic) { 1569 if (!cpu_has_apic) {
1575 disable_apic = 1; 1570 disable_apic = 1;
1576 pr_info("Apic disabled by BIOS\n"); 1571 pr_info("Apic disabled by BIOS\n");
@@ -1592,11 +1587,9 @@ int __init APIC_init_uniprocessor(void)
1592 } 1587 }
1593#endif 1588#endif
1594 1589
1595#ifdef HAVE_X2APIC
1596 enable_IR_x2apic(); 1590 enable_IR_x2apic();
1597#endif
1598#ifdef CONFIG_X86_64 1591#ifdef CONFIG_X86_64
1599 setup_apic_routing(); 1592 default_setup_apic_routing();
1600#endif 1593#endif
1601 1594
1602 verify_local_APIC(); 1595 verify_local_APIC();
@@ -1617,35 +1610,31 @@ int __init APIC_init_uniprocessor(void)
1617 physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map); 1610 physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map);
1618 setup_local_APIC(); 1611 setup_local_APIC();
1619 1612
1620#ifdef CONFIG_X86_64 1613#ifdef CONFIG_X86_IO_APIC
1621 /* 1614 /*
1622 * Now enable IO-APICs, actually call clear_IO_APIC 1615 * Now enable IO-APICs, actually call clear_IO_APIC
1623 * We need clear_IO_APIC before enabling vector on BP 1616 * We need clear_IO_APIC before enabling error vector
1624 */ 1617 */
1625 if (!skip_ioapic_setup && nr_ioapics) 1618 if (!skip_ioapic_setup && nr_ioapics)
1626 enable_IO_APIC(); 1619 enable_IO_APIC();
1627#endif 1620#endif
1628 1621
1629#ifdef CONFIG_X86_IO_APIC
1630 if (!smp_found_config || skip_ioapic_setup || !nr_ioapics)
1631#endif
1632 localise_nmi_watchdog();
1633 end_local_APIC_setup(); 1622 end_local_APIC_setup();
1634 1623
1635#ifdef CONFIG_X86_IO_APIC 1624#ifdef CONFIG_X86_IO_APIC
1636 if (smp_found_config && !skip_ioapic_setup && nr_ioapics) 1625 if (smp_found_config && !skip_ioapic_setup && nr_ioapics)
1637 setup_IO_APIC(); 1626 setup_IO_APIC();
1638# ifdef CONFIG_X86_64 1627 else {
1639 else
1640 nr_ioapics = 0; 1628 nr_ioapics = 0;
1641# endif 1629 localise_nmi_watchdog();
1630 }
1631#else
1632 localise_nmi_watchdog();
1642#endif 1633#endif
1643 1634
1635 setup_boot_clock();
1644#ifdef CONFIG_X86_64 1636#ifdef CONFIG_X86_64
1645 setup_boot_APIC_clock();
1646 check_nmi_watchdog(); 1637 check_nmi_watchdog();
1647#else
1648 setup_boot_clock();
1649#endif 1638#endif
1650 1639
1651 return 0; 1640 return 0;
@@ -1734,7 +1723,8 @@ void __init connect_bsp_APIC(void)
1734 outb(0x01, 0x23); 1723 outb(0x01, 0x23);
1735 } 1724 }
1736#endif 1725#endif
1737 enable_apic_mode(); 1726 if (apic->enable_apic_mode)
1727 apic->enable_apic_mode();
1738} 1728}
1739 1729
1740/** 1730/**
@@ -1872,29 +1862,39 @@ void __cpuinit generic_processor_info(int apicid, int version)
1872 } 1862 }
1873#endif 1863#endif
1874 1864
1875#if defined(CONFIG_X86_SMP) || defined(CONFIG_X86_64) 1865#if defined(CONFIG_SMP) || defined(CONFIG_X86_64)
1876 /* are we being called early in kernel startup? */ 1866 early_per_cpu(x86_cpu_to_apicid, cpu) = apicid;
1877 if (early_per_cpu_ptr(x86_cpu_to_apicid)) { 1867 early_per_cpu(x86_bios_cpu_apicid, cpu) = apicid;
1878 u16 *cpu_to_apicid = early_per_cpu_ptr(x86_cpu_to_apicid);
1879 u16 *bios_cpu_apicid = early_per_cpu_ptr(x86_bios_cpu_apicid);
1880
1881 cpu_to_apicid[cpu] = apicid;
1882 bios_cpu_apicid[cpu] = apicid;
1883 } else {
1884 per_cpu(x86_cpu_to_apicid, cpu) = apicid;
1885 per_cpu(x86_bios_cpu_apicid, cpu) = apicid;
1886 }
1887#endif 1868#endif
1888 1869
1889 set_cpu_possible(cpu, true); 1870 set_cpu_possible(cpu, true);
1890 set_cpu_present(cpu, true); 1871 set_cpu_present(cpu, true);
1891} 1872}
1892 1873
1893#ifdef CONFIG_X86_64
1894int hard_smp_processor_id(void) 1874int hard_smp_processor_id(void)
1895{ 1875{
1896 return read_apic_id(); 1876 return read_apic_id();
1897} 1877}
1878
1879void default_init_apic_ldr(void)
1880{
1881 unsigned long val;
1882
1883 apic_write(APIC_DFR, APIC_DFR_VALUE);
1884 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
1885 val |= SET_APIC_LOGICAL_ID(1UL << smp_processor_id());
1886 apic_write(APIC_LDR, val);
1887}
1888
1889#ifdef CONFIG_X86_32
1890int default_apicid_to_node(int logical_apicid)
1891{
1892#ifdef CONFIG_SMP
1893 return apicid_2_node[hard_smp_processor_id()];
1894#else
1895 return 0;
1896#endif
1897}
1898#endif 1898#endif
1899 1899
1900/* 1900/*
@@ -1972,7 +1972,7 @@ static int lapic_resume(struct sys_device *dev)
1972 1972
1973 local_irq_save(flags); 1973 local_irq_save(flags);
1974 1974
1975#ifdef HAVE_X2APIC 1975#ifdef CONFIG_X86_X2APIC
1976 if (x2apic) 1976 if (x2apic)
1977 enable_x2apic(); 1977 enable_x2apic();
1978 else 1978 else
diff --git a/arch/x86/kernel/genapic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
index 34185488e4fb..f933822dba18 100644
--- a/arch/x86/kernel/genapic_flat_64.c
+++ b/arch/x86/kernel/apic/apic_flat_64.c
@@ -17,9 +17,8 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/hardirq.h> 18#include <linux/hardirq.h>
19#include <asm/smp.h> 19#include <asm/smp.h>
20#include <asm/apic.h>
20#include <asm/ipi.h> 21#include <asm/ipi.h>
21#include <asm/genapic.h>
22#include <mach_apicdef.h>
23 22
24#ifdef CONFIG_ACPI 23#ifdef CONFIG_ACPI
25#include <acpi/acpi_bus.h> 24#include <acpi/acpi_bus.h>
@@ -74,7 +73,7 @@ static inline void _flat_send_IPI_mask(unsigned long mask, int vector)
74 unsigned long flags; 73 unsigned long flags;
75 74
76 local_irq_save(flags); 75 local_irq_save(flags);
77 __send_IPI_dest_field(mask, vector, APIC_DEST_LOGICAL); 76 __default_send_IPI_dest_field(mask, vector, apic->dest_logical);
78 local_irq_restore(flags); 77 local_irq_restore(flags);
79} 78}
80 79
@@ -85,14 +84,15 @@ static void flat_send_IPI_mask(const struct cpumask *cpumask, int vector)
85 _flat_send_IPI_mask(mask, vector); 84 _flat_send_IPI_mask(mask, vector);
86} 85}
87 86
88static void flat_send_IPI_mask_allbutself(const struct cpumask *cpumask, 87static void
89 int vector) 88 flat_send_IPI_mask_allbutself(const struct cpumask *cpumask, int vector)
90{ 89{
91 unsigned long mask = cpumask_bits(cpumask)[0]; 90 unsigned long mask = cpumask_bits(cpumask)[0];
92 int cpu = smp_processor_id(); 91 int cpu = smp_processor_id();
93 92
94 if (cpu < BITS_PER_LONG) 93 if (cpu < BITS_PER_LONG)
95 clear_bit(cpu, &mask); 94 clear_bit(cpu, &mask);
95
96 _flat_send_IPI_mask(mask, vector); 96 _flat_send_IPI_mask(mask, vector);
97} 97}
98 98
@@ -114,23 +114,27 @@ static void flat_send_IPI_allbutself(int vector)
114 _flat_send_IPI_mask(mask, vector); 114 _flat_send_IPI_mask(mask, vector);
115 } 115 }
116 } else if (num_online_cpus() > 1) { 116 } else if (num_online_cpus() > 1) {
117 __send_IPI_shortcut(APIC_DEST_ALLBUT, vector,APIC_DEST_LOGICAL); 117 __default_send_IPI_shortcut(APIC_DEST_ALLBUT,
118 vector, apic->dest_logical);
118 } 119 }
119} 120}
120 121
121static void flat_send_IPI_all(int vector) 122static void flat_send_IPI_all(int vector)
122{ 123{
123 if (vector == NMI_VECTOR) 124 if (vector == NMI_VECTOR) {
124 flat_send_IPI_mask(cpu_online_mask, vector); 125 flat_send_IPI_mask(cpu_online_mask, vector);
125 else 126 } else {
126 __send_IPI_shortcut(APIC_DEST_ALLINC, vector, APIC_DEST_LOGICAL); 127 __default_send_IPI_shortcut(APIC_DEST_ALLINC,
128 vector, apic->dest_logical);
129 }
127} 130}
128 131
129static unsigned int get_apic_id(unsigned long x) 132static unsigned int flat_get_apic_id(unsigned long x)
130{ 133{
131 unsigned int id; 134 unsigned int id;
132 135
133 id = (((x)>>24) & 0xFFu); 136 id = (((x)>>24) & 0xFFu);
137
134 return id; 138 return id;
135} 139}
136 140
@@ -146,7 +150,7 @@ static unsigned int read_xapic_id(void)
146{ 150{
147 unsigned int id; 151 unsigned int id;
148 152
149 id = get_apic_id(apic_read(APIC_ID)); 153 id = flat_get_apic_id(apic_read(APIC_ID));
150 return id; 154 return id;
151} 155}
152 156
@@ -169,31 +173,67 @@ static unsigned int flat_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
169 return mask1 & mask2; 173 return mask1 & mask2;
170} 174}
171 175
172static unsigned int phys_pkg_id(int index_msb) 176static int flat_phys_pkg_id(int initial_apic_id, int index_msb)
173{ 177{
174 return hard_smp_processor_id() >> index_msb; 178 return hard_smp_processor_id() >> index_msb;
175} 179}
176 180
177struct genapic apic_flat = { 181struct apic apic_flat = {
178 .name = "flat", 182 .name = "flat",
179 .acpi_madt_oem_check = flat_acpi_madt_oem_check, 183 .probe = NULL,
180 .int_delivery_mode = dest_LowestPrio, 184 .acpi_madt_oem_check = flat_acpi_madt_oem_check,
181 .int_dest_mode = (APIC_DEST_LOGICAL != 0), 185 .apic_id_registered = flat_apic_id_registered,
182 .target_cpus = flat_target_cpus, 186
183 .vector_allocation_domain = flat_vector_allocation_domain, 187 .irq_delivery_mode = dest_LowestPrio,
184 .apic_id_registered = flat_apic_id_registered, 188 .irq_dest_mode = 1, /* logical */
185 .init_apic_ldr = flat_init_apic_ldr, 189
186 .send_IPI_all = flat_send_IPI_all, 190 .target_cpus = flat_target_cpus,
187 .send_IPI_allbutself = flat_send_IPI_allbutself, 191 .disable_esr = 0,
188 .send_IPI_mask = flat_send_IPI_mask, 192 .dest_logical = APIC_DEST_LOGICAL,
189 .send_IPI_mask_allbutself = flat_send_IPI_mask_allbutself, 193 .check_apicid_used = NULL,
190 .send_IPI_self = apic_send_IPI_self, 194 .check_apicid_present = NULL,
191 .cpu_mask_to_apicid = flat_cpu_mask_to_apicid, 195
192 .cpu_mask_to_apicid_and = flat_cpu_mask_to_apicid_and, 196 .vector_allocation_domain = flat_vector_allocation_domain,
193 .phys_pkg_id = phys_pkg_id, 197 .init_apic_ldr = flat_init_apic_ldr,
194 .get_apic_id = get_apic_id, 198
195 .set_apic_id = set_apic_id, 199 .ioapic_phys_id_map = NULL,
196 .apic_id_mask = (0xFFu<<24), 200 .setup_apic_routing = NULL,
201 .multi_timer_check = NULL,
202 .apicid_to_node = NULL,
203 .cpu_to_logical_apicid = NULL,
204 .cpu_present_to_apicid = default_cpu_present_to_apicid,
205 .apicid_to_cpu_present = NULL,
206 .setup_portio_remap = NULL,
207 .check_phys_apicid_present = default_check_phys_apicid_present,
208 .enable_apic_mode = NULL,
209 .phys_pkg_id = flat_phys_pkg_id,
210 .mps_oem_check = NULL,
211
212 .get_apic_id = flat_get_apic_id,
213 .set_apic_id = set_apic_id,
214 .apic_id_mask = 0xFFu << 24,
215
216 .cpu_mask_to_apicid = flat_cpu_mask_to_apicid,
217 .cpu_mask_to_apicid_and = flat_cpu_mask_to_apicid_and,
218
219 .send_IPI_mask = flat_send_IPI_mask,
220 .send_IPI_mask_allbutself = flat_send_IPI_mask_allbutself,
221 .send_IPI_allbutself = flat_send_IPI_allbutself,
222 .send_IPI_all = flat_send_IPI_all,
223 .send_IPI_self = apic_send_IPI_self,
224
225 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
226 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
227 .wait_for_init_deassert = NULL,
228 .smp_callin_clear_local_apic = NULL,
229 .inquire_remote_apic = NULL,
230
231 .read = native_apic_mem_read,
232 .write = native_apic_mem_write,
233 .icr_read = native_apic_icr_read,
234 .icr_write = native_apic_icr_write,
235 .wait_icr_idle = native_apic_wait_icr_idle,
236 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
197}; 237};
198 238
199/* 239/*
@@ -232,18 +272,18 @@ static void physflat_vector_allocation_domain(int cpu, struct cpumask *retmask)
232 272
233static void physflat_send_IPI_mask(const struct cpumask *cpumask, int vector) 273static void physflat_send_IPI_mask(const struct cpumask *cpumask, int vector)
234{ 274{
235 send_IPI_mask_sequence(cpumask, vector); 275 default_send_IPI_mask_sequence_phys(cpumask, vector);
236} 276}
237 277
238static void physflat_send_IPI_mask_allbutself(const struct cpumask *cpumask, 278static void physflat_send_IPI_mask_allbutself(const struct cpumask *cpumask,
239 int vector) 279 int vector)
240{ 280{
241 send_IPI_mask_allbutself(cpumask, vector); 281 default_send_IPI_mask_allbutself_phys(cpumask, vector);
242} 282}
243 283
244static void physflat_send_IPI_allbutself(int vector) 284static void physflat_send_IPI_allbutself(int vector)
245{ 285{
246 send_IPI_mask_allbutself(cpu_online_mask, vector); 286 default_send_IPI_mask_allbutself_phys(cpu_online_mask, vector);
247} 287}
248 288
249static void physflat_send_IPI_all(int vector) 289static void physflat_send_IPI_all(int vector)
@@ -276,32 +316,72 @@ physflat_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
276 * We're using fixed IRQ delivery, can only return one phys APIC ID. 316 * We're using fixed IRQ delivery, can only return one phys APIC ID.
277 * May as well be the first. 317 * May as well be the first.
278 */ 318 */
279 for_each_cpu_and(cpu, cpumask, andmask) 319 for_each_cpu_and(cpu, cpumask, andmask) {
280 if (cpumask_test_cpu(cpu, cpu_online_mask)) 320 if (cpumask_test_cpu(cpu, cpu_online_mask))
281 break; 321 break;
322 }
282 if (cpu < nr_cpu_ids) 323 if (cpu < nr_cpu_ids)
283 return per_cpu(x86_cpu_to_apicid, cpu); 324 return per_cpu(x86_cpu_to_apicid, cpu);
325
284 return BAD_APICID; 326 return BAD_APICID;
285} 327}
286 328
287struct genapic apic_physflat = { 329struct apic apic_physflat = {
288 .name = "physical flat", 330
289 .acpi_madt_oem_check = physflat_acpi_madt_oem_check, 331 .name = "physical flat",
290 .int_delivery_mode = dest_Fixed, 332 .probe = NULL,
291 .int_dest_mode = (APIC_DEST_PHYSICAL != 0), 333 .acpi_madt_oem_check = physflat_acpi_madt_oem_check,
292 .target_cpus = physflat_target_cpus, 334 .apic_id_registered = flat_apic_id_registered,
293 .vector_allocation_domain = physflat_vector_allocation_domain, 335
294 .apic_id_registered = flat_apic_id_registered, 336 .irq_delivery_mode = dest_Fixed,
295 .init_apic_ldr = flat_init_apic_ldr,/*not needed, but shouldn't hurt*/ 337 .irq_dest_mode = 0, /* physical */
296 .send_IPI_all = physflat_send_IPI_all, 338
297 .send_IPI_allbutself = physflat_send_IPI_allbutself, 339 .target_cpus = physflat_target_cpus,
298 .send_IPI_mask = physflat_send_IPI_mask, 340 .disable_esr = 0,
299 .send_IPI_mask_allbutself = physflat_send_IPI_mask_allbutself, 341 .dest_logical = 0,
300 .send_IPI_self = apic_send_IPI_self, 342 .check_apicid_used = NULL,
301 .cpu_mask_to_apicid = physflat_cpu_mask_to_apicid, 343 .check_apicid_present = NULL,
302 .cpu_mask_to_apicid_and = physflat_cpu_mask_to_apicid_and, 344
303 .phys_pkg_id = phys_pkg_id, 345 .vector_allocation_domain = physflat_vector_allocation_domain,
304 .get_apic_id = get_apic_id, 346 /* not needed, but shouldn't hurt: */
305 .set_apic_id = set_apic_id, 347 .init_apic_ldr = flat_init_apic_ldr,
306 .apic_id_mask = (0xFFu<<24), 348
349 .ioapic_phys_id_map = NULL,
350 .setup_apic_routing = NULL,
351 .multi_timer_check = NULL,
352 .apicid_to_node = NULL,
353 .cpu_to_logical_apicid = NULL,
354 .cpu_present_to_apicid = default_cpu_present_to_apicid,
355 .apicid_to_cpu_present = NULL,
356 .setup_portio_remap = NULL,
357 .check_phys_apicid_present = default_check_phys_apicid_present,
358 .enable_apic_mode = NULL,
359 .phys_pkg_id = flat_phys_pkg_id,
360 .mps_oem_check = NULL,
361
362 .get_apic_id = flat_get_apic_id,
363 .set_apic_id = set_apic_id,
364 .apic_id_mask = 0xFFu << 24,
365
366 .cpu_mask_to_apicid = physflat_cpu_mask_to_apicid,
367 .cpu_mask_to_apicid_and = physflat_cpu_mask_to_apicid_and,
368
369 .send_IPI_mask = physflat_send_IPI_mask,
370 .send_IPI_mask_allbutself = physflat_send_IPI_mask_allbutself,
371 .send_IPI_allbutself = physflat_send_IPI_allbutself,
372 .send_IPI_all = physflat_send_IPI_all,
373 .send_IPI_self = apic_send_IPI_self,
374
375 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
376 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
377 .wait_for_init_deassert = NULL,
378 .smp_callin_clear_local_apic = NULL,
379 .inquire_remote_apic = NULL,
380
381 .read = native_apic_mem_read,
382 .write = native_apic_mem_write,
383 .icr_read = native_apic_icr_read,
384 .icr_write = native_apic_icr_write,
385 .wait_icr_idle = native_apic_wait_icr_idle,
386 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
307}; 387};
diff --git a/arch/x86/kernel/apic/bigsmp_32.c b/arch/x86/kernel/apic/bigsmp_32.c
new file mode 100644
index 000000000000..d806ecaa948f
--- /dev/null
+++ b/arch/x86/kernel/apic/bigsmp_32.c
@@ -0,0 +1,267 @@
1/*
2 * APIC driver for "bigsmp" xAPIC machines with more than 8 virtual CPUs.
3 *
4 * Drives the local APIC in "clustered mode".
5 */
6#include <linux/threads.h>
7#include <linux/cpumask.h>
8#include <linux/kernel.h>
9#include <linux/init.h>
10#include <linux/dmi.h>
11#include <linux/smp.h>
12
13#include <asm/apicdef.h>
14#include <asm/fixmap.h>
15#include <asm/mpspec.h>
16#include <asm/apic.h>
17#include <asm/ipi.h>
18
19static unsigned bigsmp_get_apic_id(unsigned long x)
20{
21 return (x >> 24) & 0xFF;
22}
23
24static int bigsmp_apic_id_registered(void)
25{
26 return 1;
27}
28
29static const cpumask_t *bigsmp_target_cpus(void)
30{
31#ifdef CONFIG_SMP
32 return &cpu_online_map;
33#else
34 return &cpumask_of_cpu(0);
35#endif
36}
37
38static unsigned long bigsmp_check_apicid_used(physid_mask_t bitmap, int apicid)
39{
40 return 0;
41}
42
43static unsigned long bigsmp_check_apicid_present(int bit)
44{
45 return 1;
46}
47
48static inline unsigned long calculate_ldr(int cpu)
49{
50 unsigned long val, id;
51
52 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
53 id = per_cpu(x86_bios_cpu_apicid, cpu);
54 val |= SET_APIC_LOGICAL_ID(id);
55
56 return val;
57}
58
59/*
60 * Set up the logical destination ID.
61 *
62 * Intel recommends to set DFR, LDR and TPR before enabling
63 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
64 * document number 292116). So here it goes...
65 */
66static void bigsmp_init_apic_ldr(void)
67{
68 unsigned long val;
69 int cpu = smp_processor_id();
70
71 apic_write(APIC_DFR, APIC_DFR_FLAT);
72 val = calculate_ldr(cpu);
73 apic_write(APIC_LDR, val);
74}
75
76static void bigsmp_setup_apic_routing(void)
77{
78 printk(KERN_INFO
79 "Enabling APIC mode: Physflat. Using %d I/O APICs\n",
80 nr_ioapics);
81}
82
83static int bigsmp_apicid_to_node(int logical_apicid)
84{
85 return apicid_2_node[hard_smp_processor_id()];
86}
87
88static int bigsmp_cpu_present_to_apicid(int mps_cpu)
89{
90 if (mps_cpu < nr_cpu_ids)
91 return (int) per_cpu(x86_bios_cpu_apicid, mps_cpu);
92
93 return BAD_APICID;
94}
95
96static physid_mask_t bigsmp_apicid_to_cpu_present(int phys_apicid)
97{
98 return physid_mask_of_physid(phys_apicid);
99}
100
101/* Mapping from cpu number to logical apicid */
102static inline int bigsmp_cpu_to_logical_apicid(int cpu)
103{
104 if (cpu >= nr_cpu_ids)
105 return BAD_APICID;
106 return cpu_physical_id(cpu);
107}
108
109static physid_mask_t bigsmp_ioapic_phys_id_map(physid_mask_t phys_map)
110{
111 /* For clustered we don't have a good way to do this yet - hack */
112 return physids_promote(0xFFL);
113}
114
115static int bigsmp_check_phys_apicid_present(int boot_cpu_physical_apicid)
116{
117 return 1;
118}
119
120/* As we are using single CPU as destination, pick only one CPU here */
121static unsigned int bigsmp_cpu_mask_to_apicid(const cpumask_t *cpumask)
122{
123 return bigsmp_cpu_to_logical_apicid(first_cpu(*cpumask));
124}
125
126static unsigned int bigsmp_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
127 const struct cpumask *andmask)
128{
129 int cpu;
130
131 /*
132 * We're using fixed IRQ delivery, can only return one phys APIC ID.
133 * May as well be the first.
134 */
135 for_each_cpu_and(cpu, cpumask, andmask) {
136 if (cpumask_test_cpu(cpu, cpu_online_mask))
137 break;
138 }
139 if (cpu < nr_cpu_ids)
140 return bigsmp_cpu_to_logical_apicid(cpu);
141
142 return BAD_APICID;
143}
144
145static int bigsmp_phys_pkg_id(int cpuid_apic, int index_msb)
146{
147 return cpuid_apic >> index_msb;
148}
149
150static inline void bigsmp_send_IPI_mask(const struct cpumask *mask, int vector)
151{
152 default_send_IPI_mask_sequence_phys(mask, vector);
153}
154
155static void bigsmp_send_IPI_allbutself(int vector)
156{
157 default_send_IPI_mask_allbutself_phys(cpu_online_mask, vector);
158}
159
160static void bigsmp_send_IPI_all(int vector)
161{
162 bigsmp_send_IPI_mask(cpu_online_mask, vector);
163}
164
165static int dmi_bigsmp; /* can be set by dmi scanners */
166
167static int hp_ht_bigsmp(const struct dmi_system_id *d)
168{
169 printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident);
170 dmi_bigsmp = 1;
171
172 return 0;
173}
174
175
176static const struct dmi_system_id bigsmp_dmi_table[] = {
177 { hp_ht_bigsmp, "HP ProLiant DL760 G2",
178 { DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
179 DMI_MATCH(DMI_BIOS_VERSION, "P44-"),
180 }
181 },
182
183 { hp_ht_bigsmp, "HP ProLiant DL740",
184 { DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
185 DMI_MATCH(DMI_BIOS_VERSION, "P47-"),
186 }
187 },
188 { } /* NULL entry stops DMI scanning */
189};
190
191static void bigsmp_vector_allocation_domain(int cpu, cpumask_t *retmask)
192{
193 cpus_clear(*retmask);
194 cpu_set(cpu, *retmask);
195}
196
197static int probe_bigsmp(void)
198{
199 if (def_to_bigsmp)
200 dmi_bigsmp = 1;
201 else
202 dmi_check_system(bigsmp_dmi_table);
203
204 return dmi_bigsmp;
205}
206
207struct apic apic_bigsmp = {
208
209 .name = "bigsmp",
210 .probe = probe_bigsmp,
211 .acpi_madt_oem_check = NULL,
212 .apic_id_registered = bigsmp_apic_id_registered,
213
214 .irq_delivery_mode = dest_Fixed,
215 /* phys delivery to target CPU: */
216 .irq_dest_mode = 0,
217
218 .target_cpus = bigsmp_target_cpus,
219 .disable_esr = 1,
220 .dest_logical = 0,
221 .check_apicid_used = bigsmp_check_apicid_used,
222 .check_apicid_present = bigsmp_check_apicid_present,
223
224 .vector_allocation_domain = bigsmp_vector_allocation_domain,
225 .init_apic_ldr = bigsmp_init_apic_ldr,
226
227 .ioapic_phys_id_map = bigsmp_ioapic_phys_id_map,
228 .setup_apic_routing = bigsmp_setup_apic_routing,
229 .multi_timer_check = NULL,
230 .apicid_to_node = bigsmp_apicid_to_node,
231 .cpu_to_logical_apicid = bigsmp_cpu_to_logical_apicid,
232 .cpu_present_to_apicid = bigsmp_cpu_present_to_apicid,
233 .apicid_to_cpu_present = bigsmp_apicid_to_cpu_present,
234 .setup_portio_remap = NULL,
235 .check_phys_apicid_present = bigsmp_check_phys_apicid_present,
236 .enable_apic_mode = NULL,
237 .phys_pkg_id = bigsmp_phys_pkg_id,
238 .mps_oem_check = NULL,
239
240 .get_apic_id = bigsmp_get_apic_id,
241 .set_apic_id = NULL,
242 .apic_id_mask = 0xFF << 24,
243
244 .cpu_mask_to_apicid = bigsmp_cpu_mask_to_apicid,
245 .cpu_mask_to_apicid_and = bigsmp_cpu_mask_to_apicid_and,
246
247 .send_IPI_mask = bigsmp_send_IPI_mask,
248 .send_IPI_mask_allbutself = NULL,
249 .send_IPI_allbutself = bigsmp_send_IPI_allbutself,
250 .send_IPI_all = bigsmp_send_IPI_all,
251 .send_IPI_self = default_send_IPI_self,
252
253 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
254 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
255
256 .wait_for_init_deassert = default_wait_for_init_deassert,
257
258 .smp_callin_clear_local_apic = NULL,
259 .inquire_remote_apic = default_inquire_remote_apic,
260
261 .read = native_apic_mem_read,
262 .write = native_apic_mem_write,
263 .icr_read = native_apic_icr_read,
264 .icr_write = native_apic_icr_write,
265 .wait_icr_idle = native_apic_wait_icr_idle,
266 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
267};
diff --git a/arch/x86/kernel/apic/es7000_32.c b/arch/x86/kernel/apic/es7000_32.c
new file mode 100644
index 000000000000..19588f2770ee
--- /dev/null
+++ b/arch/x86/kernel/apic/es7000_32.c
@@ -0,0 +1,780 @@
1/*
2 * Written by: Garry Forsgren, Unisys Corporation
3 * Natalie Protasevich, Unisys Corporation
4 *
5 * This file contains the code to configure and interface
6 * with Unisys ES7000 series hardware system manager.
7 *
8 * Copyright (c) 2003 Unisys Corporation.
9 * Copyright (C) 2009, Red Hat, Inc., Ingo Molnar
10 *
11 * All Rights Reserved.
12 *
13 * This program is free software; you can redistribute it and/or modify it
14 * under the terms of version 2 of the GNU General Public License as
15 * published by the Free Software Foundation.
16 *
17 * This program is distributed in the hope that it would be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * You should have received a copy of the GNU General Public License along
22 * with this program; if not, write the Free Software Foundation, Inc., 59
23 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
24 *
25 * Contact information: Unisys Corporation, Township Line & Union Meeting
26 * Roads-A, Unisys Way, Blue Bell, Pennsylvania, 19424, or:
27 *
28 * http://www.unisys.com
29 */
30#include <linux/notifier.h>
31#include <linux/spinlock.h>
32#include <linux/cpumask.h>
33#include <linux/threads.h>
34#include <linux/kernel.h>
35#include <linux/module.h>
36#include <linux/reboot.h>
37#include <linux/string.h>
38#include <linux/types.h>
39#include <linux/errno.h>
40#include <linux/acpi.h>
41#include <linux/init.h>
42#include <linux/nmi.h>
43#include <linux/smp.h>
44#include <linux/io.h>
45
46#include <asm/apicdef.h>
47#include <asm/atomic.h>
48#include <asm/fixmap.h>
49#include <asm/mpspec.h>
50#include <asm/setup.h>
51#include <asm/apic.h>
52#include <asm/ipi.h>
53
54/*
55 * ES7000 chipsets
56 */
57
58#define NON_UNISYS 0
59#define ES7000_CLASSIC 1
60#define ES7000_ZORRO 2
61
62#define MIP_REG 1
63#define MIP_PSAI_REG 4
64
65#define MIP_BUSY 1
66#define MIP_SPIN 0xf0000
67#define MIP_VALID 0x0100000000000000ULL
68#define MIP_SW_APIC 0x1020b
69
70#define MIP_PORT(val) ((val >> 32) & 0xffff)
71
72#define MIP_RD_LO(val) (val & 0xffffffff)
73
74struct mip_reg {
75 unsigned long long off_0x00;
76 unsigned long long off_0x08;
77 unsigned long long off_0x10;
78 unsigned long long off_0x18;
79 unsigned long long off_0x20;
80 unsigned long long off_0x28;
81 unsigned long long off_0x30;
82 unsigned long long off_0x38;
83};
84
85struct mip_reg_info {
86 unsigned long long mip_info;
87 unsigned long long delivery_info;
88 unsigned long long host_reg;
89 unsigned long long mip_reg;
90};
91
92struct psai {
93 unsigned long long entry_type;
94 unsigned long long addr;
95 unsigned long long bep_addr;
96};
97
98#ifdef CONFIG_ACPI
99
100struct es7000_oem_table {
101 struct acpi_table_header Header;
102 u32 OEMTableAddr;
103 u32 OEMTableSize;
104};
105
106static unsigned long oem_addrX;
107static unsigned long oem_size;
108
109#endif
110
111/*
112 * ES7000 Globals
113 */
114
115static volatile unsigned long *psai;
116static struct mip_reg *mip_reg;
117static struct mip_reg *host_reg;
118static int mip_port;
119static unsigned long mip_addr;
120static unsigned long host_addr;
121
122int es7000_plat;
123
124/*
125 * GSI override for ES7000 platforms.
126 */
127
128static unsigned int base;
129
130static int
131es7000_rename_gsi(int ioapic, int gsi)
132{
133 if (es7000_plat == ES7000_ZORRO)
134 return gsi;
135
136 if (!base) {
137 int i;
138 for (i = 0; i < nr_ioapics; i++)
139 base += nr_ioapic_registers[i];
140 }
141
142 if (!ioapic && (gsi < 16))
143 gsi += base;
144
145 return gsi;
146}
147
148static int wakeup_secondary_cpu_via_mip(int cpu, unsigned long eip)
149{
150 unsigned long vect = 0, psaival = 0;
151
152 if (psai == NULL)
153 return -1;
154
155 vect = ((unsigned long)__pa(eip)/0x1000) << 16;
156 psaival = (0x1000000 | vect | cpu);
157
158 while (*psai & 0x1000000)
159 ;
160
161 *psai = psaival;
162
163 return 0;
164}
165
166static int es7000_apic_is_cluster(void)
167{
168 /* MPENTIUMIII */
169 if (boot_cpu_data.x86 == 6 &&
170 (boot_cpu_data.x86_model >= 7 || boot_cpu_data.x86_model <= 11))
171 return 1;
172
173 return 0;
174}
175
176static void setup_unisys(void)
177{
178 /*
179 * Determine the generation of the ES7000 currently running.
180 *
181 * es7000_plat = 1 if the machine is a 5xx ES7000 box
182 * es7000_plat = 2 if the machine is a x86_64 ES7000 box
183 *
184 */
185 if (!(boot_cpu_data.x86 <= 15 && boot_cpu_data.x86_model <= 2))
186 es7000_plat = ES7000_ZORRO;
187 else
188 es7000_plat = ES7000_CLASSIC;
189 ioapic_renumber_irq = es7000_rename_gsi;
190}
191
192/*
193 * Parse the OEM Table:
194 */
195static int parse_unisys_oem(char *oemptr)
196{
197 int i;
198 int success = 0;
199 unsigned char type, size;
200 unsigned long val;
201 char *tp = NULL;
202 struct psai *psaip = NULL;
203 struct mip_reg_info *mi;
204 struct mip_reg *host, *mip;
205
206 tp = oemptr;
207
208 tp += 8;
209
210 for (i = 0; i <= 6; i++) {
211 type = *tp++;
212 size = *tp++;
213 tp -= 2;
214 switch (type) {
215 case MIP_REG:
216 mi = (struct mip_reg_info *)tp;
217 val = MIP_RD_LO(mi->host_reg);
218 host_addr = val;
219 host = (struct mip_reg *)val;
220 host_reg = __va(host);
221 val = MIP_RD_LO(mi->mip_reg);
222 mip_port = MIP_PORT(mi->mip_info);
223 mip_addr = val;
224 mip = (struct mip_reg *)val;
225 mip_reg = __va(mip);
226 pr_debug("es7000_mipcfg: host_reg = 0x%lx \n",
227 (unsigned long)host_reg);
228 pr_debug("es7000_mipcfg: mip_reg = 0x%lx \n",
229 (unsigned long)mip_reg);
230 success++;
231 break;
232 case MIP_PSAI_REG:
233 psaip = (struct psai *)tp;
234 if (tp != NULL) {
235 if (psaip->addr)
236 psai = __va(psaip->addr);
237 else
238 psai = NULL;
239 success++;
240 }
241 break;
242 default:
243 break;
244 }
245 tp += size;
246 }
247
248 if (success < 2)
249 es7000_plat = NON_UNISYS;
250 else
251 setup_unisys();
252
253 return es7000_plat;
254}
255
256#ifdef CONFIG_ACPI
257static int find_unisys_acpi_oem_table(unsigned long *oem_addr)
258{
259 struct acpi_table_header *header = NULL;
260 struct es7000_oem_table *table;
261 acpi_size tbl_size;
262 acpi_status ret;
263 int i = 0;
264
265 for (;;) {
266 ret = acpi_get_table_with_size("OEM1", i++, &header, &tbl_size);
267 if (!ACPI_SUCCESS(ret))
268 return -1;
269
270 if (!memcmp((char *) &header->oem_id, "UNISYS", 6))
271 break;
272
273 early_acpi_os_unmap_memory(header, tbl_size);
274 }
275
276 table = (void *)header;
277
278 oem_addrX = table->OEMTableAddr;
279 oem_size = table->OEMTableSize;
280
281 early_acpi_os_unmap_memory(header, tbl_size);
282
283 *oem_addr = (unsigned long)__acpi_map_table(oem_addrX, oem_size);
284
285 return 0;
286}
287
288static void unmap_unisys_acpi_oem_table(unsigned long oem_addr)
289{
290 if (!oem_addr)
291 return;
292
293 __acpi_unmap_table((char *)oem_addr, oem_size);
294}
295
296static int es7000_check_dsdt(void)
297{
298 struct acpi_table_header header;
299
300 if (ACPI_SUCCESS(acpi_get_table_header(ACPI_SIG_DSDT, 0, &header)) &&
301 !strncmp(header.oem_id, "UNISYS", 6))
302 return 1;
303 return 0;
304}
305
306static int es7000_acpi_ret;
307
308/* Hook from generic ACPI tables.c */
309static int es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
310{
311 unsigned long oem_addr = 0;
312 int check_dsdt;
313 int ret = 0;
314
315 /* check dsdt at first to avoid clear fix_map for oem_addr */
316 check_dsdt = es7000_check_dsdt();
317
318 if (!find_unisys_acpi_oem_table(&oem_addr)) {
319 if (check_dsdt) {
320 ret = parse_unisys_oem((char *)oem_addr);
321 } else {
322 setup_unisys();
323 ret = 1;
324 }
325 /*
326 * we need to unmap it
327 */
328 unmap_unisys_acpi_oem_table(oem_addr);
329 }
330
331 es7000_acpi_ret = ret;
332
333 return ret && !es7000_apic_is_cluster();
334}
335
336static int es7000_acpi_madt_oem_check_cluster(char *oem_id, char *oem_table_id)
337{
338 int ret = es7000_acpi_ret;
339
340 return ret && es7000_apic_is_cluster();
341}
342
343#else /* !CONFIG_ACPI: */
344static int es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
345{
346 return 0;
347}
348
349static int es7000_acpi_madt_oem_check_cluster(char *oem_id, char *oem_table_id)
350{
351 return 0;
352}
353#endif /* !CONFIG_ACPI */
354
355static void es7000_spin(int n)
356{
357 int i = 0;
358
359 while (i++ < n)
360 rep_nop();
361}
362
363static int es7000_mip_write(struct mip_reg *mip_reg)
364{
365 int status = 0;
366 int spin;
367
368 spin = MIP_SPIN;
369 while ((host_reg->off_0x38 & MIP_VALID) != 0) {
370 if (--spin <= 0) {
371 WARN(1, "Timeout waiting for Host Valid Flag\n");
372 return -1;
373 }
374 es7000_spin(MIP_SPIN);
375 }
376
377 memcpy(host_reg, mip_reg, sizeof(struct mip_reg));
378 outb(1, mip_port);
379
380 spin = MIP_SPIN;
381
382 while ((mip_reg->off_0x38 & MIP_VALID) == 0) {
383 if (--spin <= 0) {
384 WARN(1, "Timeout waiting for MIP Valid Flag\n");
385 return -1;
386 }
387 es7000_spin(MIP_SPIN);
388 }
389
390 status = (mip_reg->off_0x00 & 0xffff0000000000ULL) >> 48;
391 mip_reg->off_0x38 &= ~MIP_VALID;
392
393 return status;
394}
395
396static void es7000_enable_apic_mode(void)
397{
398 struct mip_reg es7000_mip_reg;
399 int mip_status;
400
401 if (!es7000_plat)
402 return;
403
404 printk(KERN_INFO "ES7000: Enabling APIC mode.\n");
405 memset(&es7000_mip_reg, 0, sizeof(struct mip_reg));
406 es7000_mip_reg.off_0x00 = MIP_SW_APIC;
407 es7000_mip_reg.off_0x38 = MIP_VALID;
408
409 while ((mip_status = es7000_mip_write(&es7000_mip_reg)) != 0)
410 WARN(1, "Command failed, status = %x\n", mip_status);
411}
412
413static void es7000_vector_allocation_domain(int cpu, cpumask_t *retmask)
414{
415 /* Careful. Some cpus do not strictly honor the set of cpus
416 * specified in the interrupt destination when using lowest
417 * priority interrupt delivery mode.
418 *
419 * In particular there was a hyperthreading cpu observed to
420 * deliver interrupts to the wrong hyperthread when only one
421 * hyperthread was specified in the interrupt desitination.
422 */
423 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
424}
425
426
427static void es7000_wait_for_init_deassert(atomic_t *deassert)
428{
429 while (!atomic_read(deassert))
430 cpu_relax();
431}
432
433static unsigned int es7000_get_apic_id(unsigned long x)
434{
435 return (x >> 24) & 0xFF;
436}
437
438static void es7000_send_IPI_mask(const struct cpumask *mask, int vector)
439{
440 default_send_IPI_mask_sequence_phys(mask, vector);
441}
442
443static void es7000_send_IPI_allbutself(int vector)
444{
445 default_send_IPI_mask_allbutself_phys(cpu_online_mask, vector);
446}
447
448static void es7000_send_IPI_all(int vector)
449{
450 es7000_send_IPI_mask(cpu_online_mask, vector);
451}
452
453static int es7000_apic_id_registered(void)
454{
455 return 1;
456}
457
458static const cpumask_t *target_cpus_cluster(void)
459{
460 return &CPU_MASK_ALL;
461}
462
463static const cpumask_t *es7000_target_cpus(void)
464{
465 return &cpumask_of_cpu(smp_processor_id());
466}
467
468static unsigned long
469es7000_check_apicid_used(physid_mask_t bitmap, int apicid)
470{
471 return 0;
472}
473static unsigned long es7000_check_apicid_present(int bit)
474{
475 return physid_isset(bit, phys_cpu_present_map);
476}
477
478static unsigned long calculate_ldr(int cpu)
479{
480 unsigned long id = per_cpu(x86_bios_cpu_apicid, cpu);
481
482 return SET_APIC_LOGICAL_ID(id);
483}
484
485/*
486 * Set up the logical destination ID.
487 *
488 * Intel recommends to set DFR, LdR and TPR before enabling
489 * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel
490 * document number 292116). So here it goes...
491 */
492static void es7000_init_apic_ldr_cluster(void)
493{
494 unsigned long val;
495 int cpu = smp_processor_id();
496
497 apic_write(APIC_DFR, APIC_DFR_CLUSTER);
498 val = calculate_ldr(cpu);
499 apic_write(APIC_LDR, val);
500}
501
502static void es7000_init_apic_ldr(void)
503{
504 unsigned long val;
505 int cpu = smp_processor_id();
506
507 apic_write(APIC_DFR, APIC_DFR_FLAT);
508 val = calculate_ldr(cpu);
509 apic_write(APIC_LDR, val);
510}
511
512static void es7000_setup_apic_routing(void)
513{
514 int apic = per_cpu(x86_bios_cpu_apicid, smp_processor_id());
515
516 printk(KERN_INFO
517 "Enabling APIC mode: %s. Using %d I/O APICs, target cpus %lx\n",
518 (apic_version[apic] == 0x14) ?
519 "Physical Cluster" : "Logical Cluster",
520 nr_ioapics, cpus_addr(*es7000_target_cpus())[0]);
521}
522
523static int es7000_apicid_to_node(int logical_apicid)
524{
525 return 0;
526}
527
528
529static int es7000_cpu_present_to_apicid(int mps_cpu)
530{
531 if (!mps_cpu)
532 return boot_cpu_physical_apicid;
533 else if (mps_cpu < nr_cpu_ids)
534 return per_cpu(x86_bios_cpu_apicid, mps_cpu);
535 else
536 return BAD_APICID;
537}
538
539static int cpu_id;
540
541static physid_mask_t es7000_apicid_to_cpu_present(int phys_apicid)
542{
543 physid_mask_t mask;
544
545 mask = physid_mask_of_physid(cpu_id);
546 ++cpu_id;
547
548 return mask;
549}
550
551/* Mapping from cpu number to logical apicid */
552static int es7000_cpu_to_logical_apicid(int cpu)
553{
554#ifdef CONFIG_SMP
555 if (cpu >= nr_cpu_ids)
556 return BAD_APICID;
557 return cpu_2_logical_apicid[cpu];
558#else
559 return logical_smp_processor_id();
560#endif
561}
562
563static physid_mask_t es7000_ioapic_phys_id_map(physid_mask_t phys_map)
564{
565 /* For clustered we don't have a good way to do this yet - hack */
566 return physids_promote(0xff);
567}
568
569static int es7000_check_phys_apicid_present(int cpu_physical_apicid)
570{
571 boot_cpu_physical_apicid = read_apic_id();
572 return 1;
573}
574
575static unsigned int es7000_cpu_mask_to_apicid(const cpumask_t *cpumask)
576{
577 unsigned int round = 0;
578 int cpu, uninitialized_var(apicid);
579
580 /*
581 * The cpus in the mask must all be on the apic cluster.
582 */
583 for_each_cpu(cpu, cpumask) {
584 int new_apicid = es7000_cpu_to_logical_apicid(cpu);
585
586 if (round && APIC_CLUSTER(apicid) != APIC_CLUSTER(new_apicid)) {
587 WARN(1, "Not a valid mask!");
588
589 return BAD_APICID;
590 }
591 apicid = new_apicid;
592 round++;
593 }
594 return apicid;
595}
596
597static unsigned int
598es7000_cpu_mask_to_apicid_and(const struct cpumask *inmask,
599 const struct cpumask *andmask)
600{
601 int apicid = es7000_cpu_to_logical_apicid(0);
602 cpumask_var_t cpumask;
603
604 if (!alloc_cpumask_var(&cpumask, GFP_ATOMIC))
605 return apicid;
606
607 cpumask_and(cpumask, inmask, andmask);
608 cpumask_and(cpumask, cpumask, cpu_online_mask);
609 apicid = es7000_cpu_mask_to_apicid(cpumask);
610
611 free_cpumask_var(cpumask);
612
613 return apicid;
614}
615
616static int es7000_phys_pkg_id(int cpuid_apic, int index_msb)
617{
618 return cpuid_apic >> index_msb;
619}
620
621static int probe_es7000(void)
622{
623 /* probed later in mptable/ACPI hooks */
624 return 0;
625}
626
627static int es7000_mps_ret;
628static int es7000_mps_oem_check(struct mpc_table *mpc, char *oem,
629 char *productid)
630{
631 int ret = 0;
632
633 if (mpc->oemptr) {
634 struct mpc_oemtable *oem_table =
635 (struct mpc_oemtable *)mpc->oemptr;
636
637 if (!strncmp(oem, "UNISYS", 6))
638 ret = parse_unisys_oem((char *)oem_table);
639 }
640
641 es7000_mps_ret = ret;
642
643 return ret && !es7000_apic_is_cluster();
644}
645
646static int es7000_mps_oem_check_cluster(struct mpc_table *mpc, char *oem,
647 char *productid)
648{
649 int ret = es7000_mps_ret;
650
651 return ret && es7000_apic_is_cluster();
652}
653
654struct apic apic_es7000_cluster = {
655
656 .name = "es7000",
657 .probe = probe_es7000,
658 .acpi_madt_oem_check = es7000_acpi_madt_oem_check_cluster,
659 .apic_id_registered = es7000_apic_id_registered,
660
661 .irq_delivery_mode = dest_LowestPrio,
662 /* logical delivery broadcast to all procs: */
663 .irq_dest_mode = 1,
664
665 .target_cpus = target_cpus_cluster,
666 .disable_esr = 1,
667 .dest_logical = 0,
668 .check_apicid_used = es7000_check_apicid_used,
669 .check_apicid_present = es7000_check_apicid_present,
670
671 .vector_allocation_domain = es7000_vector_allocation_domain,
672 .init_apic_ldr = es7000_init_apic_ldr_cluster,
673
674 .ioapic_phys_id_map = es7000_ioapic_phys_id_map,
675 .setup_apic_routing = es7000_setup_apic_routing,
676 .multi_timer_check = NULL,
677 .apicid_to_node = es7000_apicid_to_node,
678 .cpu_to_logical_apicid = es7000_cpu_to_logical_apicid,
679 .cpu_present_to_apicid = es7000_cpu_present_to_apicid,
680 .apicid_to_cpu_present = es7000_apicid_to_cpu_present,
681 .setup_portio_remap = NULL,
682 .check_phys_apicid_present = es7000_check_phys_apicid_present,
683 .enable_apic_mode = es7000_enable_apic_mode,
684 .phys_pkg_id = es7000_phys_pkg_id,
685 .mps_oem_check = es7000_mps_oem_check_cluster,
686
687 .get_apic_id = es7000_get_apic_id,
688 .set_apic_id = NULL,
689 .apic_id_mask = 0xFF << 24,
690
691 .cpu_mask_to_apicid = es7000_cpu_mask_to_apicid,
692 .cpu_mask_to_apicid_and = es7000_cpu_mask_to_apicid_and,
693
694 .send_IPI_mask = es7000_send_IPI_mask,
695 .send_IPI_mask_allbutself = NULL,
696 .send_IPI_allbutself = es7000_send_IPI_allbutself,
697 .send_IPI_all = es7000_send_IPI_all,
698 .send_IPI_self = default_send_IPI_self,
699
700 .wakeup_secondary_cpu = wakeup_secondary_cpu_via_mip,
701
702 .trampoline_phys_low = 0x467,
703 .trampoline_phys_high = 0x469,
704
705 .wait_for_init_deassert = NULL,
706
707 /* Nothing to do for most platforms, since cleared by the INIT cycle: */
708 .smp_callin_clear_local_apic = NULL,
709 .inquire_remote_apic = default_inquire_remote_apic,
710
711 .read = native_apic_mem_read,
712 .write = native_apic_mem_write,
713 .icr_read = native_apic_icr_read,
714 .icr_write = native_apic_icr_write,
715 .wait_icr_idle = native_apic_wait_icr_idle,
716 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
717};
718
719struct apic apic_es7000 = {
720
721 .name = "es7000",
722 .probe = probe_es7000,
723 .acpi_madt_oem_check = es7000_acpi_madt_oem_check,
724 .apic_id_registered = es7000_apic_id_registered,
725
726 .irq_delivery_mode = dest_Fixed,
727 /* phys delivery to target CPUs: */
728 .irq_dest_mode = 0,
729
730 .target_cpus = es7000_target_cpus,
731 .disable_esr = 1,
732 .dest_logical = 0,
733 .check_apicid_used = es7000_check_apicid_used,
734 .check_apicid_present = es7000_check_apicid_present,
735
736 .vector_allocation_domain = es7000_vector_allocation_domain,
737 .init_apic_ldr = es7000_init_apic_ldr,
738
739 .ioapic_phys_id_map = es7000_ioapic_phys_id_map,
740 .setup_apic_routing = es7000_setup_apic_routing,
741 .multi_timer_check = NULL,
742 .apicid_to_node = es7000_apicid_to_node,
743 .cpu_to_logical_apicid = es7000_cpu_to_logical_apicid,
744 .cpu_present_to_apicid = es7000_cpu_present_to_apicid,
745 .apicid_to_cpu_present = es7000_apicid_to_cpu_present,
746 .setup_portio_remap = NULL,
747 .check_phys_apicid_present = es7000_check_phys_apicid_present,
748 .enable_apic_mode = es7000_enable_apic_mode,
749 .phys_pkg_id = es7000_phys_pkg_id,
750 .mps_oem_check = es7000_mps_oem_check,
751
752 .get_apic_id = es7000_get_apic_id,
753 .set_apic_id = NULL,
754 .apic_id_mask = 0xFF << 24,
755
756 .cpu_mask_to_apicid = es7000_cpu_mask_to_apicid,
757 .cpu_mask_to_apicid_and = es7000_cpu_mask_to_apicid_and,
758
759 .send_IPI_mask = es7000_send_IPI_mask,
760 .send_IPI_mask_allbutself = NULL,
761 .send_IPI_allbutself = es7000_send_IPI_allbutself,
762 .send_IPI_all = es7000_send_IPI_all,
763 .send_IPI_self = default_send_IPI_self,
764
765 .trampoline_phys_low = 0x467,
766 .trampoline_phys_high = 0x469,
767
768 .wait_for_init_deassert = es7000_wait_for_init_deassert,
769
770 /* Nothing to do for most platforms, since cleared by the INIT cycle: */
771 .smp_callin_clear_local_apic = NULL,
772 .inquire_remote_apic = default_inquire_remote_apic,
773
774 .read = native_apic_mem_read,
775 .write = native_apic_mem_write,
776 .icr_read = native_apic_icr_read,
777 .icr_write = native_apic_icr_write,
778 .wait_icr_idle = native_apic_wait_icr_idle,
779 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
780};
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 157986916cd1..00e6071cefc4 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Intel IO-APIC support for multi-Pentium hosts. 2 * Intel IO-APIC support for multi-Pentium hosts.
3 * 3 *
4 * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar, Hajnalka Szabo 4 * Copyright (C) 1997, 1998, 1999, 2000, 2009 Ingo Molnar, Hajnalka Szabo
5 * 5 *
6 * Many thanks to Stig Venaas for trying out countless experimental 6 * Many thanks to Stig Venaas for trying out countless experimental
7 * patches and reporting/debugging problems patiently! 7 * patches and reporting/debugging problems patiently!
@@ -46,6 +46,7 @@
46#include <asm/idle.h> 46#include <asm/idle.h>
47#include <asm/io.h> 47#include <asm/io.h>
48#include <asm/smp.h> 48#include <asm/smp.h>
49#include <asm/cpu.h>
49#include <asm/desc.h> 50#include <asm/desc.h>
50#include <asm/proto.h> 51#include <asm/proto.h>
51#include <asm/acpi.h> 52#include <asm/acpi.h>
@@ -61,9 +62,7 @@
61#include <asm/uv/uv_hub.h> 62#include <asm/uv/uv_hub.h>
62#include <asm/uv/uv_irq.h> 63#include <asm/uv/uv_irq.h>
63 64
64#include <mach_ipi.h> 65#include <asm/apic.h>
65#include <mach_apic.h>
66#include <mach_apicdef.h>
67 66
68#define __apicdebuginit(type) static type __init 67#define __apicdebuginit(type) static type __init
69 68
@@ -82,11 +81,11 @@ static DEFINE_SPINLOCK(vector_lock);
82int nr_ioapic_registers[MAX_IO_APICS]; 81int nr_ioapic_registers[MAX_IO_APICS];
83 82
84/* I/O APIC entries */ 83/* I/O APIC entries */
85struct mp_config_ioapic mp_ioapics[MAX_IO_APICS]; 84struct mpc_ioapic mp_ioapics[MAX_IO_APICS];
86int nr_ioapics; 85int nr_ioapics;
87 86
88/* MP IRQ source entries */ 87/* MP IRQ source entries */
89struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; 88struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
90 89
91/* # of MP IRQ source entries */ 90/* # of MP IRQ source entries */
92int mp_irq_entries; 91int mp_irq_entries;
@@ -99,10 +98,19 @@ DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES);
99 98
100int skip_ioapic_setup; 99int skip_ioapic_setup;
101 100
101void arch_disable_smp_support(void)
102{
103#ifdef CONFIG_PCI
104 noioapicquirk = 1;
105 noioapicreroute = -1;
106#endif
107 skip_ioapic_setup = 1;
108}
109
102static int __init parse_noapic(char *str) 110static int __init parse_noapic(char *str)
103{ 111{
104 /* disable IO-APIC */ 112 /* disable IO-APIC */
105 disable_ioapic_setup(); 113 arch_disable_smp_support();
106 return 0; 114 return 0;
107} 115}
108early_param("noapic", parse_noapic); 116early_param("noapic", parse_noapic);
@@ -386,7 +394,7 @@ struct io_apic {
386static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) 394static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx)
387{ 395{
388 return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx) 396 return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx)
389 + (mp_ioapics[idx].mp_apicaddr & ~PAGE_MASK); 397 + (mp_ioapics[idx].apicaddr & ~PAGE_MASK);
390} 398}
391 399
392static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) 400static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg)
@@ -478,7 +486,7 @@ __ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e)
478 io_apic_write(apic, 0x10 + 2*pin, eu.w1); 486 io_apic_write(apic, 0x10 + 2*pin, eu.w1);
479} 487}
480 488
481static void ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) 489void ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e)
482{ 490{
483 unsigned long flags; 491 unsigned long flags;
484 spin_lock_irqsave(&ioapic_lock, flags); 492 spin_lock_irqsave(&ioapic_lock, flags);
@@ -513,11 +521,11 @@ static void send_cleanup_vector(struct irq_cfg *cfg)
513 for_each_cpu_and(i, cfg->old_domain, cpu_online_mask) 521 for_each_cpu_and(i, cfg->old_domain, cpu_online_mask)
514 cfg->move_cleanup_count++; 522 cfg->move_cleanup_count++;
515 for_each_cpu_and(i, cfg->old_domain, cpu_online_mask) 523 for_each_cpu_and(i, cfg->old_domain, cpu_online_mask)
516 send_IPI_mask(cpumask_of(i), IRQ_MOVE_CLEANUP_VECTOR); 524 apic->send_IPI_mask(cpumask_of(i), IRQ_MOVE_CLEANUP_VECTOR);
517 } else { 525 } else {
518 cpumask_and(cleanup_mask, cfg->old_domain, cpu_online_mask); 526 cpumask_and(cleanup_mask, cfg->old_domain, cpu_online_mask);
519 cfg->move_cleanup_count = cpumask_weight(cleanup_mask); 527 cfg->move_cleanup_count = cpumask_weight(cleanup_mask);
520 send_IPI_mask(cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR); 528 apic->send_IPI_mask(cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR);
521 free_cpumask_var(cleanup_mask); 529 free_cpumask_var(cleanup_mask);
522 } 530 }
523 cfg->move_in_progress = 0; 531 cfg->move_in_progress = 0;
@@ -562,8 +570,9 @@ static int
562assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask); 570assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask);
563 571
564/* 572/*
565 * Either sets desc->affinity to a valid value, and returns cpu_mask_to_apicid 573 * Either sets desc->affinity to a valid value, and returns
566 * of that, or returns BAD_APICID and leaves desc->affinity untouched. 574 * ->cpu_mask_to_apicid of that, or returns BAD_APICID and
575 * leaves desc->affinity untouched.
567 */ 576 */
568static unsigned int 577static unsigned int
569set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask) 578set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask)
@@ -581,7 +590,8 @@ set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask)
581 590
582 cpumask_and(desc->affinity, cfg->domain, mask); 591 cpumask_and(desc->affinity, cfg->domain, mask);
583 set_extra_move_desc(desc, mask); 592 set_extra_move_desc(desc, mask);
584 return cpu_mask_to_apicid_and(desc->affinity, cpu_online_mask); 593
594 return apic->cpu_mask_to_apicid_and(desc->affinity, cpu_online_mask);
585} 595}
586 596
587static void 597static void
@@ -796,23 +806,6 @@ static void clear_IO_APIC (void)
796 clear_IO_APIC_pin(apic, pin); 806 clear_IO_APIC_pin(apic, pin);
797} 807}
798 808
799#if !defined(CONFIG_SMP) && defined(CONFIG_X86_32)
800void send_IPI_self(int vector)
801{
802 unsigned int cfg;
803
804 /*
805 * Wait for idle.
806 */
807 apic_wait_icr_idle();
808 cfg = APIC_DM_FIXED | APIC_DEST_SELF | vector | APIC_DEST_LOGICAL;
809 /*
810 * Send the IPI. The write to APIC_ICR fires this off.
811 */
812 apic_write(APIC_ICR, cfg);
813}
814#endif /* !CONFIG_SMP && CONFIG_X86_32*/
815
816#ifdef CONFIG_X86_32 809#ifdef CONFIG_X86_32
817/* 810/*
818 * support for broken MP BIOSs, enables hand-redirection of PIRQ0-7 to 811 * support for broken MP BIOSs, enables hand-redirection of PIRQ0-7 to
@@ -820,8 +813,9 @@ void send_IPI_self(int vector)
820 */ 813 */
821 814
822#define MAX_PIRQS 8 815#define MAX_PIRQS 8
823static int pirq_entries [MAX_PIRQS]; 816static int pirq_entries[MAX_PIRQS] = {
824static int pirqs_enabled; 817 [0 ... MAX_PIRQS - 1] = -1
818};
825 819
826static int __init ioapic_pirq_setup(char *str) 820static int __init ioapic_pirq_setup(char *str)
827{ 821{
@@ -830,10 +824,6 @@ static int __init ioapic_pirq_setup(char *str)
830 824
831 get_options(str, ARRAY_SIZE(ints), ints); 825 get_options(str, ARRAY_SIZE(ints), ints);
832 826
833 for (i = 0; i < MAX_PIRQS; i++)
834 pirq_entries[i] = -1;
835
836 pirqs_enabled = 1;
837 apic_printk(APIC_VERBOSE, KERN_INFO 827 apic_printk(APIC_VERBOSE, KERN_INFO
838 "PIRQ redirection, working around broken MP-BIOS.\n"); 828 "PIRQ redirection, working around broken MP-BIOS.\n");
839 max = MAX_PIRQS; 829 max = MAX_PIRQS;
@@ -944,10 +934,10 @@ static int find_irq_entry(int apic, int pin, int type)
944 int i; 934 int i;
945 935
946 for (i = 0; i < mp_irq_entries; i++) 936 for (i = 0; i < mp_irq_entries; i++)
947 if (mp_irqs[i].mp_irqtype == type && 937 if (mp_irqs[i].irqtype == type &&
948 (mp_irqs[i].mp_dstapic == mp_ioapics[apic].mp_apicid || 938 (mp_irqs[i].dstapic == mp_ioapics[apic].apicid ||
949 mp_irqs[i].mp_dstapic == MP_APIC_ALL) && 939 mp_irqs[i].dstapic == MP_APIC_ALL) &&
950 mp_irqs[i].mp_dstirq == pin) 940 mp_irqs[i].dstirq == pin)
951 return i; 941 return i;
952 942
953 return -1; 943 return -1;
@@ -961,13 +951,13 @@ static int __init find_isa_irq_pin(int irq, int type)
961 int i; 951 int i;
962 952
963 for (i = 0; i < mp_irq_entries; i++) { 953 for (i = 0; i < mp_irq_entries; i++) {
964 int lbus = mp_irqs[i].mp_srcbus; 954 int lbus = mp_irqs[i].srcbus;
965 955
966 if (test_bit(lbus, mp_bus_not_pci) && 956 if (test_bit(lbus, mp_bus_not_pci) &&
967 (mp_irqs[i].mp_irqtype == type) && 957 (mp_irqs[i].irqtype == type) &&
968 (mp_irqs[i].mp_srcbusirq == irq)) 958 (mp_irqs[i].srcbusirq == irq))
969 959
970 return mp_irqs[i].mp_dstirq; 960 return mp_irqs[i].dstirq;
971 } 961 }
972 return -1; 962 return -1;
973} 963}
@@ -977,17 +967,17 @@ static int __init find_isa_irq_apic(int irq, int type)
977 int i; 967 int i;
978 968
979 for (i = 0; i < mp_irq_entries; i++) { 969 for (i = 0; i < mp_irq_entries; i++) {
980 int lbus = mp_irqs[i].mp_srcbus; 970 int lbus = mp_irqs[i].srcbus;
981 971
982 if (test_bit(lbus, mp_bus_not_pci) && 972 if (test_bit(lbus, mp_bus_not_pci) &&
983 (mp_irqs[i].mp_irqtype == type) && 973 (mp_irqs[i].irqtype == type) &&
984 (mp_irqs[i].mp_srcbusirq == irq)) 974 (mp_irqs[i].srcbusirq == irq))
985 break; 975 break;
986 } 976 }
987 if (i < mp_irq_entries) { 977 if (i < mp_irq_entries) {
988 int apic; 978 int apic;
989 for(apic = 0; apic < nr_ioapics; apic++) { 979 for(apic = 0; apic < nr_ioapics; apic++) {
990 if (mp_ioapics[apic].mp_apicid == mp_irqs[i].mp_dstapic) 980 if (mp_ioapics[apic].apicid == mp_irqs[i].dstapic)
991 return apic; 981 return apic;
992 } 982 }
993 } 983 }
@@ -1012,23 +1002,23 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)
1012 return -1; 1002 return -1;
1013 } 1003 }
1014 for (i = 0; i < mp_irq_entries; i++) { 1004 for (i = 0; i < mp_irq_entries; i++) {
1015 int lbus = mp_irqs[i].mp_srcbus; 1005 int lbus = mp_irqs[i].srcbus;
1016 1006
1017 for (apic = 0; apic < nr_ioapics; apic++) 1007 for (apic = 0; apic < nr_ioapics; apic++)
1018 if (mp_ioapics[apic].mp_apicid == mp_irqs[i].mp_dstapic || 1008 if (mp_ioapics[apic].apicid == mp_irqs[i].dstapic ||
1019 mp_irqs[i].mp_dstapic == MP_APIC_ALL) 1009 mp_irqs[i].dstapic == MP_APIC_ALL)
1020 break; 1010 break;
1021 1011
1022 if (!test_bit(lbus, mp_bus_not_pci) && 1012 if (!test_bit(lbus, mp_bus_not_pci) &&
1023 !mp_irqs[i].mp_irqtype && 1013 !mp_irqs[i].irqtype &&
1024 (bus == lbus) && 1014 (bus == lbus) &&
1025 (slot == ((mp_irqs[i].mp_srcbusirq >> 2) & 0x1f))) { 1015 (slot == ((mp_irqs[i].srcbusirq >> 2) & 0x1f))) {
1026 int irq = pin_2_irq(i,apic,mp_irqs[i].mp_dstirq); 1016 int irq = pin_2_irq(i, apic, mp_irqs[i].dstirq);
1027 1017
1028 if (!(apic || IO_APIC_IRQ(irq))) 1018 if (!(apic || IO_APIC_IRQ(irq)))
1029 continue; 1019 continue;
1030 1020
1031 if (pin == (mp_irqs[i].mp_srcbusirq & 3)) 1021 if (pin == (mp_irqs[i].srcbusirq & 3))
1032 return irq; 1022 return irq;
1033 /* 1023 /*
1034 * Use the first all-but-pin matching entry as a 1024 * Use the first all-but-pin matching entry as a
@@ -1071,7 +1061,7 @@ static int EISA_ELCR(unsigned int irq)
1071 * EISA conforming in the MP table, that means its trigger type must 1061 * EISA conforming in the MP table, that means its trigger type must
1072 * be read in from the ELCR */ 1062 * be read in from the ELCR */
1073 1063
1074#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].mp_srcbusirq)) 1064#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].srcbusirq))
1075#define default_EISA_polarity(idx) default_ISA_polarity(idx) 1065#define default_EISA_polarity(idx) default_ISA_polarity(idx)
1076 1066
1077/* PCI interrupts are always polarity one level triggered, 1067/* PCI interrupts are always polarity one level triggered,
@@ -1088,13 +1078,13 @@ static int EISA_ELCR(unsigned int irq)
1088 1078
1089static int MPBIOS_polarity(int idx) 1079static int MPBIOS_polarity(int idx)
1090{ 1080{
1091 int bus = mp_irqs[idx].mp_srcbus; 1081 int bus = mp_irqs[idx].srcbus;
1092 int polarity; 1082 int polarity;
1093 1083
1094 /* 1084 /*
1095 * Determine IRQ line polarity (high active or low active): 1085 * Determine IRQ line polarity (high active or low active):
1096 */ 1086 */
1097 switch (mp_irqs[idx].mp_irqflag & 3) 1087 switch (mp_irqs[idx].irqflag & 3)
1098 { 1088 {
1099 case 0: /* conforms, ie. bus-type dependent polarity */ 1089 case 0: /* conforms, ie. bus-type dependent polarity */
1100 if (test_bit(bus, mp_bus_not_pci)) 1090 if (test_bit(bus, mp_bus_not_pci))
@@ -1130,13 +1120,13 @@ static int MPBIOS_polarity(int idx)
1130 1120
1131static int MPBIOS_trigger(int idx) 1121static int MPBIOS_trigger(int idx)
1132{ 1122{
1133 int bus = mp_irqs[idx].mp_srcbus; 1123 int bus = mp_irqs[idx].srcbus;
1134 int trigger; 1124 int trigger;
1135 1125
1136 /* 1126 /*
1137 * Determine IRQ trigger mode (edge or level sensitive): 1127 * Determine IRQ trigger mode (edge or level sensitive):
1138 */ 1128 */
1139 switch ((mp_irqs[idx].mp_irqflag>>2) & 3) 1129 switch ((mp_irqs[idx].irqflag>>2) & 3)
1140 { 1130 {
1141 case 0: /* conforms, ie. bus-type dependent */ 1131 case 0: /* conforms, ie. bus-type dependent */
1142 if (test_bit(bus, mp_bus_not_pci)) 1132 if (test_bit(bus, mp_bus_not_pci))
@@ -1214,16 +1204,16 @@ int (*ioapic_renumber_irq)(int ioapic, int irq);
1214static int pin_2_irq(int idx, int apic, int pin) 1204static int pin_2_irq(int idx, int apic, int pin)
1215{ 1205{
1216 int irq, i; 1206 int irq, i;
1217 int bus = mp_irqs[idx].mp_srcbus; 1207 int bus = mp_irqs[idx].srcbus;
1218 1208
1219 /* 1209 /*
1220 * Debugging check, we are in big trouble if this message pops up! 1210 * Debugging check, we are in big trouble if this message pops up!
1221 */ 1211 */
1222 if (mp_irqs[idx].mp_dstirq != pin) 1212 if (mp_irqs[idx].dstirq != pin)
1223 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n"); 1213 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n");
1224 1214
1225 if (test_bit(bus, mp_bus_not_pci)) { 1215 if (test_bit(bus, mp_bus_not_pci)) {
1226 irq = mp_irqs[idx].mp_srcbusirq; 1216 irq = mp_irqs[idx].srcbusirq;
1227 } else { 1217 } else {
1228 /* 1218 /*
1229 * PCI IRQs are mapped in order 1219 * PCI IRQs are mapped in order
@@ -1315,7 +1305,7 @@ __assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask)
1315 int new_cpu; 1305 int new_cpu;
1316 int vector, offset; 1306 int vector, offset;
1317 1307
1318 vector_allocation_domain(cpu, tmp_mask); 1308 apic->vector_allocation_domain(cpu, tmp_mask);
1319 1309
1320 vector = current_vector; 1310 vector = current_vector;
1321 offset = current_offset; 1311 offset = current_offset;
@@ -1485,10 +1475,10 @@ static void ioapic_register_intr(int irq, struct irq_desc *desc, unsigned long t
1485 handle_edge_irq, "edge"); 1475 handle_edge_irq, "edge");
1486} 1476}
1487 1477
1488static int setup_ioapic_entry(int apic, int irq, 1478int setup_ioapic_entry(int apic_id, int irq,
1489 struct IO_APIC_route_entry *entry, 1479 struct IO_APIC_route_entry *entry,
1490 unsigned int destination, int trigger, 1480 unsigned int destination, int trigger,
1491 int polarity, int vector) 1481 int polarity, int vector)
1492{ 1482{
1493 /* 1483 /*
1494 * add it to the IO-APIC irq-routing table: 1484 * add it to the IO-APIC irq-routing table:
@@ -1497,25 +1487,25 @@ static int setup_ioapic_entry(int apic, int irq,
1497 1487
1498#ifdef CONFIG_INTR_REMAP 1488#ifdef CONFIG_INTR_REMAP
1499 if (intr_remapping_enabled) { 1489 if (intr_remapping_enabled) {
1500 struct intel_iommu *iommu = map_ioapic_to_ir(apic); 1490 struct intel_iommu *iommu = map_ioapic_to_ir(apic_id);
1501 struct irte irte; 1491 struct irte irte;
1502 struct IR_IO_APIC_route_entry *ir_entry = 1492 struct IR_IO_APIC_route_entry *ir_entry =
1503 (struct IR_IO_APIC_route_entry *) entry; 1493 (struct IR_IO_APIC_route_entry *) entry;
1504 int index; 1494 int index;
1505 1495
1506 if (!iommu) 1496 if (!iommu)
1507 panic("No mapping iommu for ioapic %d\n", apic); 1497 panic("No mapping iommu for ioapic %d\n", apic_id);
1508 1498
1509 index = alloc_irte(iommu, irq, 1); 1499 index = alloc_irte(iommu, irq, 1);
1510 if (index < 0) 1500 if (index < 0)
1511 panic("Failed to allocate IRTE for ioapic %d\n", apic); 1501 panic("Failed to allocate IRTE for ioapic %d\n", apic_id);
1512 1502
1513 memset(&irte, 0, sizeof(irte)); 1503 memset(&irte, 0, sizeof(irte));
1514 1504
1515 irte.present = 1; 1505 irte.present = 1;
1516 irte.dst_mode = INT_DEST_MODE; 1506 irte.dst_mode = apic->irq_dest_mode;
1517 irte.trigger_mode = trigger; 1507 irte.trigger_mode = trigger;
1518 irte.dlvry_mode = INT_DELIVERY_MODE; 1508 irte.dlvry_mode = apic->irq_delivery_mode;
1519 irte.vector = vector; 1509 irte.vector = vector;
1520 irte.dest_id = IRTE_DEST(destination); 1510 irte.dest_id = IRTE_DEST(destination);
1521 1511
@@ -1528,8 +1518,8 @@ static int setup_ioapic_entry(int apic, int irq,
1528 } else 1518 } else
1529#endif 1519#endif
1530 { 1520 {
1531 entry->delivery_mode = INT_DELIVERY_MODE; 1521 entry->delivery_mode = apic->irq_delivery_mode;
1532 entry->dest_mode = INT_DEST_MODE; 1522 entry->dest_mode = apic->irq_dest_mode;
1533 entry->dest = destination; 1523 entry->dest = destination;
1534 } 1524 }
1535 1525
@@ -1546,7 +1536,7 @@ static int setup_ioapic_entry(int apic, int irq,
1546 return 0; 1536 return 0;
1547} 1537}
1548 1538
1549static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, struct irq_desc *desc, 1539static void setup_IO_APIC_irq(int apic_id, int pin, unsigned int irq, struct irq_desc *desc,
1550 int trigger, int polarity) 1540 int trigger, int polarity)
1551{ 1541{
1552 struct irq_cfg *cfg; 1542 struct irq_cfg *cfg;
@@ -1558,22 +1548,22 @@ static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, struct irq_de
1558 1548
1559 cfg = desc->chip_data; 1549 cfg = desc->chip_data;
1560 1550
1561 if (assign_irq_vector(irq, cfg, TARGET_CPUS)) 1551 if (assign_irq_vector(irq, cfg, apic->target_cpus()))
1562 return; 1552 return;
1563 1553
1564 dest = cpu_mask_to_apicid_and(cfg->domain, TARGET_CPUS); 1554 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus());
1565 1555
1566 apic_printk(APIC_VERBOSE,KERN_DEBUG 1556 apic_printk(APIC_VERBOSE,KERN_DEBUG
1567 "IOAPIC[%d]: Set routing entry (%d-%d -> 0x%x -> " 1557 "IOAPIC[%d]: Set routing entry (%d-%d -> 0x%x -> "
1568 "IRQ %d Mode:%i Active:%i)\n", 1558 "IRQ %d Mode:%i Active:%i)\n",
1569 apic, mp_ioapics[apic].mp_apicid, pin, cfg->vector, 1559 apic_id, mp_ioapics[apic_id].apicid, pin, cfg->vector,
1570 irq, trigger, polarity); 1560 irq, trigger, polarity);
1571 1561
1572 1562
1573 if (setup_ioapic_entry(mp_ioapics[apic].mp_apicid, irq, &entry, 1563 if (setup_ioapic_entry(mp_ioapics[apic_id].apicid, irq, &entry,
1574 dest, trigger, polarity, cfg->vector)) { 1564 dest, trigger, polarity, cfg->vector)) {
1575 printk("Failed to setup ioapic entry for ioapic %d, pin %d\n", 1565 printk("Failed to setup ioapic entry for ioapic %d, pin %d\n",
1576 mp_ioapics[apic].mp_apicid, pin); 1566 mp_ioapics[apic_id].apicid, pin);
1577 __clear_irq_vector(irq, cfg); 1567 __clear_irq_vector(irq, cfg);
1578 return; 1568 return;
1579 } 1569 }
@@ -1582,12 +1572,12 @@ static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, struct irq_de
1582 if (irq < NR_IRQS_LEGACY) 1572 if (irq < NR_IRQS_LEGACY)
1583 disable_8259A_irq(irq); 1573 disable_8259A_irq(irq);
1584 1574
1585 ioapic_write_entry(apic, pin, entry); 1575 ioapic_write_entry(apic_id, pin, entry);
1586} 1576}
1587 1577
1588static void __init setup_IO_APIC_irqs(void) 1578static void __init setup_IO_APIC_irqs(void)
1589{ 1579{
1590 int apic, pin, idx, irq; 1580 int apic_id, pin, idx, irq;
1591 int notcon = 0; 1581 int notcon = 0;
1592 struct irq_desc *desc; 1582 struct irq_desc *desc;
1593 struct irq_cfg *cfg; 1583 struct irq_cfg *cfg;
@@ -1595,21 +1585,19 @@ static void __init setup_IO_APIC_irqs(void)
1595 1585
1596 apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n"); 1586 apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n");
1597 1587
1598 for (apic = 0; apic < nr_ioapics; apic++) { 1588 for (apic_id = 0; apic_id < nr_ioapics; apic_id++) {
1599 for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { 1589 for (pin = 0; pin < nr_ioapic_registers[apic_id]; pin++) {
1600 1590
1601 idx = find_irq_entry(apic, pin, mp_INT); 1591 idx = find_irq_entry(apic_id, pin, mp_INT);
1602 if (idx == -1) { 1592 if (idx == -1) {
1603 if (!notcon) { 1593 if (!notcon) {
1604 notcon = 1; 1594 notcon = 1;
1605 apic_printk(APIC_VERBOSE, 1595 apic_printk(APIC_VERBOSE,
1606 KERN_DEBUG " %d-%d", 1596 KERN_DEBUG " %d-%d",
1607 mp_ioapics[apic].mp_apicid, 1597 mp_ioapics[apic_id].apicid, pin);
1608 pin);
1609 } else 1598 } else
1610 apic_printk(APIC_VERBOSE, " %d-%d", 1599 apic_printk(APIC_VERBOSE, " %d-%d",
1611 mp_ioapics[apic].mp_apicid, 1600 mp_ioapics[apic_id].apicid, pin);
1612 pin);
1613 continue; 1601 continue;
1614 } 1602 }
1615 if (notcon) { 1603 if (notcon) {
@@ -1618,20 +1606,25 @@ static void __init setup_IO_APIC_irqs(void)
1618 notcon = 0; 1606 notcon = 0;
1619 } 1607 }
1620 1608
1621 irq = pin_2_irq(idx, apic, pin); 1609 irq = pin_2_irq(idx, apic_id, pin);
1622#ifdef CONFIG_X86_32 1610
1623 if (multi_timer_check(apic, irq)) 1611 /*
1612 * Skip the timer IRQ if there's a quirk handler
1613 * installed and if it returns 1:
1614 */
1615 if (apic->multi_timer_check &&
1616 apic->multi_timer_check(apic_id, irq))
1624 continue; 1617 continue;
1625#endif 1618
1626 desc = irq_to_desc_alloc_cpu(irq, cpu); 1619 desc = irq_to_desc_alloc_cpu(irq, cpu);
1627 if (!desc) { 1620 if (!desc) {
1628 printk(KERN_INFO "can not get irq_desc for %d\n", irq); 1621 printk(KERN_INFO "can not get irq_desc for %d\n", irq);
1629 continue; 1622 continue;
1630 } 1623 }
1631 cfg = desc->chip_data; 1624 cfg = desc->chip_data;
1632 add_pin_to_irq_cpu(cfg, cpu, apic, pin); 1625 add_pin_to_irq_cpu(cfg, cpu, apic_id, pin);
1633 1626
1634 setup_IO_APIC_irq(apic, pin, irq, desc, 1627 setup_IO_APIC_irq(apic_id, pin, irq, desc,
1635 irq_trigger(idx), irq_polarity(idx)); 1628 irq_trigger(idx), irq_polarity(idx));
1636 } 1629 }
1637 } 1630 }
@@ -1644,7 +1637,7 @@ static void __init setup_IO_APIC_irqs(void)
1644/* 1637/*
1645 * Set up the timer pin, possibly with the 8259A-master behind. 1638 * Set up the timer pin, possibly with the 8259A-master behind.
1646 */ 1639 */
1647static void __init setup_timer_IRQ0_pin(unsigned int apic, unsigned int pin, 1640static void __init setup_timer_IRQ0_pin(unsigned int apic_id, unsigned int pin,
1648 int vector) 1641 int vector)
1649{ 1642{
1650 struct IO_APIC_route_entry entry; 1643 struct IO_APIC_route_entry entry;
@@ -1660,10 +1653,10 @@ static void __init setup_timer_IRQ0_pin(unsigned int apic, unsigned int pin,
1660 * We use logical delivery to get the timer IRQ 1653 * We use logical delivery to get the timer IRQ
1661 * to the first CPU. 1654 * to the first CPU.
1662 */ 1655 */
1663 entry.dest_mode = INT_DEST_MODE; 1656 entry.dest_mode = apic->irq_dest_mode;
1664 entry.mask = 1; /* mask IRQ now */ 1657 entry.mask = 0; /* don't mask IRQ for edge */
1665 entry.dest = cpu_mask_to_apicid(TARGET_CPUS); 1658 entry.dest = apic->cpu_mask_to_apicid(apic->target_cpus());
1666 entry.delivery_mode = INT_DELIVERY_MODE; 1659 entry.delivery_mode = apic->irq_delivery_mode;
1667 entry.polarity = 0; 1660 entry.polarity = 0;
1668 entry.trigger = 0; 1661 entry.trigger = 0;
1669 entry.vector = vector; 1662 entry.vector = vector;
@@ -1677,7 +1670,7 @@ static void __init setup_timer_IRQ0_pin(unsigned int apic, unsigned int pin,
1677 /* 1670 /*
1678 * Add it to the IO-APIC irq-routing table: 1671 * Add it to the IO-APIC irq-routing table:
1679 */ 1672 */
1680 ioapic_write_entry(apic, pin, entry); 1673 ioapic_write_entry(apic_id, pin, entry);
1681} 1674}
1682 1675
1683 1676
@@ -1699,7 +1692,7 @@ __apicdebuginit(void) print_IO_APIC(void)
1699 printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries); 1692 printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries);
1700 for (i = 0; i < nr_ioapics; i++) 1693 for (i = 0; i < nr_ioapics; i++)
1701 printk(KERN_DEBUG "number of IO-APIC #%d registers: %d.\n", 1694 printk(KERN_DEBUG "number of IO-APIC #%d registers: %d.\n",
1702 mp_ioapics[i].mp_apicid, nr_ioapic_registers[i]); 1695 mp_ioapics[i].apicid, nr_ioapic_registers[i]);
1703 1696
1704 /* 1697 /*
1705 * We are a bit conservative about what we expect. We have to 1698 * We are a bit conservative about what we expect. We have to
@@ -1719,7 +1712,7 @@ __apicdebuginit(void) print_IO_APIC(void)
1719 spin_unlock_irqrestore(&ioapic_lock, flags); 1712 spin_unlock_irqrestore(&ioapic_lock, flags);
1720 1713
1721 printk("\n"); 1714 printk("\n");
1722 printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].mp_apicid); 1715 printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].apicid);
1723 printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw); 1716 printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw);
1724 printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID); 1717 printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID);
1725 printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.bits.delivery_type); 1718 printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.bits.delivery_type);
@@ -1980,13 +1973,6 @@ void __init enable_IO_APIC(void)
1980 int apic; 1973 int apic;
1981 unsigned long flags; 1974 unsigned long flags;
1982 1975
1983#ifdef CONFIG_X86_32
1984 int i;
1985 if (!pirqs_enabled)
1986 for (i = 0; i < MAX_PIRQS; i++)
1987 pirq_entries[i] = -1;
1988#endif
1989
1990 /* 1976 /*
1991 * The number of IO-APIC IRQ registers (== #pins): 1977 * The number of IO-APIC IRQ registers (== #pins):
1992 */ 1978 */
@@ -2090,7 +2076,7 @@ static void __init setup_ioapic_ids_from_mpc(void)
2090{ 2076{
2091 union IO_APIC_reg_00 reg_00; 2077 union IO_APIC_reg_00 reg_00;
2092 physid_mask_t phys_id_present_map; 2078 physid_mask_t phys_id_present_map;
2093 int apic; 2079 int apic_id;
2094 int i; 2080 int i;
2095 unsigned char old_id; 2081 unsigned char old_id;
2096 unsigned long flags; 2082 unsigned long flags;
@@ -2109,26 +2095,26 @@ static void __init setup_ioapic_ids_from_mpc(void)
2109 * This is broken; anything with a real cpu count has to 2095 * This is broken; anything with a real cpu count has to
2110 * circumvent this idiocy regardless. 2096 * circumvent this idiocy regardless.
2111 */ 2097 */
2112 phys_id_present_map = ioapic_phys_id_map(phys_cpu_present_map); 2098 phys_id_present_map = apic->ioapic_phys_id_map(phys_cpu_present_map);
2113 2099
2114 /* 2100 /*
2115 * Set the IOAPIC ID to the value stored in the MPC table. 2101 * Set the IOAPIC ID to the value stored in the MPC table.
2116 */ 2102 */
2117 for (apic = 0; apic < nr_ioapics; apic++) { 2103 for (apic_id = 0; apic_id < nr_ioapics; apic_id++) {
2118 2104
2119 /* Read the register 0 value */ 2105 /* Read the register 0 value */
2120 spin_lock_irqsave(&ioapic_lock, flags); 2106 spin_lock_irqsave(&ioapic_lock, flags);
2121 reg_00.raw = io_apic_read(apic, 0); 2107 reg_00.raw = io_apic_read(apic_id, 0);
2122 spin_unlock_irqrestore(&ioapic_lock, flags); 2108 spin_unlock_irqrestore(&ioapic_lock, flags);
2123 2109
2124 old_id = mp_ioapics[apic].mp_apicid; 2110 old_id = mp_ioapics[apic_id].apicid;
2125 2111
2126 if (mp_ioapics[apic].mp_apicid >= get_physical_broadcast()) { 2112 if (mp_ioapics[apic_id].apicid >= get_physical_broadcast()) {
2127 printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n", 2113 printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n",
2128 apic, mp_ioapics[apic].mp_apicid); 2114 apic_id, mp_ioapics[apic_id].apicid);
2129 printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", 2115 printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
2130 reg_00.bits.ID); 2116 reg_00.bits.ID);
2131 mp_ioapics[apic].mp_apicid = reg_00.bits.ID; 2117 mp_ioapics[apic_id].apicid = reg_00.bits.ID;
2132 } 2118 }
2133 2119
2134 /* 2120 /*
@@ -2136,10 +2122,10 @@ static void __init setup_ioapic_ids_from_mpc(void)
2136 * system must have a unique ID or we get lots of nice 2122 * system must have a unique ID or we get lots of nice
2137 * 'stuck on smp_invalidate_needed IPI wait' messages. 2123 * 'stuck on smp_invalidate_needed IPI wait' messages.
2138 */ 2124 */
2139 if (check_apicid_used(phys_id_present_map, 2125 if (apic->check_apicid_used(phys_id_present_map,
2140 mp_ioapics[apic].mp_apicid)) { 2126 mp_ioapics[apic_id].apicid)) {
2141 printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n", 2127 printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n",
2142 apic, mp_ioapics[apic].mp_apicid); 2128 apic_id, mp_ioapics[apic_id].apicid);
2143 for (i = 0; i < get_physical_broadcast(); i++) 2129 for (i = 0; i < get_physical_broadcast(); i++)
2144 if (!physid_isset(i, phys_id_present_map)) 2130 if (!physid_isset(i, phys_id_present_map))
2145 break; 2131 break;
@@ -2148,13 +2134,13 @@ static void __init setup_ioapic_ids_from_mpc(void)
2148 printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", 2134 printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
2149 i); 2135 i);
2150 physid_set(i, phys_id_present_map); 2136 physid_set(i, phys_id_present_map);
2151 mp_ioapics[apic].mp_apicid = i; 2137 mp_ioapics[apic_id].apicid = i;
2152 } else { 2138 } else {
2153 physid_mask_t tmp; 2139 physid_mask_t tmp;
2154 tmp = apicid_to_cpu_present(mp_ioapics[apic].mp_apicid); 2140 tmp = apic->apicid_to_cpu_present(mp_ioapics[apic_id].apicid);
2155 apic_printk(APIC_VERBOSE, "Setting %d in the " 2141 apic_printk(APIC_VERBOSE, "Setting %d in the "
2156 "phys_id_present_map\n", 2142 "phys_id_present_map\n",
2157 mp_ioapics[apic].mp_apicid); 2143 mp_ioapics[apic_id].apicid);
2158 physids_or(phys_id_present_map, phys_id_present_map, tmp); 2144 physids_or(phys_id_present_map, phys_id_present_map, tmp);
2159 } 2145 }
2160 2146
@@ -2163,11 +2149,11 @@ static void __init setup_ioapic_ids_from_mpc(void)
2163 * We need to adjust the IRQ routing table 2149 * We need to adjust the IRQ routing table
2164 * if the ID changed. 2150 * if the ID changed.
2165 */ 2151 */
2166 if (old_id != mp_ioapics[apic].mp_apicid) 2152 if (old_id != mp_ioapics[apic_id].apicid)
2167 for (i = 0; i < mp_irq_entries; i++) 2153 for (i = 0; i < mp_irq_entries; i++)
2168 if (mp_irqs[i].mp_dstapic == old_id) 2154 if (mp_irqs[i].dstapic == old_id)
2169 mp_irqs[i].mp_dstapic 2155 mp_irqs[i].dstapic
2170 = mp_ioapics[apic].mp_apicid; 2156 = mp_ioapics[apic_id].apicid;
2171 2157
2172 /* 2158 /*
2173 * Read the right value from the MPC table and 2159 * Read the right value from the MPC table and
@@ -2175,20 +2161,20 @@ static void __init setup_ioapic_ids_from_mpc(void)
2175 */ 2161 */
2176 apic_printk(APIC_VERBOSE, KERN_INFO 2162 apic_printk(APIC_VERBOSE, KERN_INFO
2177 "...changing IO-APIC physical APIC ID to %d ...", 2163 "...changing IO-APIC physical APIC ID to %d ...",
2178 mp_ioapics[apic].mp_apicid); 2164 mp_ioapics[apic_id].apicid);
2179 2165
2180 reg_00.bits.ID = mp_ioapics[apic].mp_apicid; 2166 reg_00.bits.ID = mp_ioapics[apic_id].apicid;
2181 spin_lock_irqsave(&ioapic_lock, flags); 2167 spin_lock_irqsave(&ioapic_lock, flags);
2182 io_apic_write(apic, 0, reg_00.raw); 2168 io_apic_write(apic_id, 0, reg_00.raw);
2183 spin_unlock_irqrestore(&ioapic_lock, flags); 2169 spin_unlock_irqrestore(&ioapic_lock, flags);
2184 2170
2185 /* 2171 /*
2186 * Sanity check 2172 * Sanity check
2187 */ 2173 */
2188 spin_lock_irqsave(&ioapic_lock, flags); 2174 spin_lock_irqsave(&ioapic_lock, flags);
2189 reg_00.raw = io_apic_read(apic, 0); 2175 reg_00.raw = io_apic_read(apic_id, 0);
2190 spin_unlock_irqrestore(&ioapic_lock, flags); 2176 spin_unlock_irqrestore(&ioapic_lock, flags);
2191 if (reg_00.bits.ID != mp_ioapics[apic].mp_apicid) 2177 if (reg_00.bits.ID != mp_ioapics[apic_id].apicid)
2192 printk("could not set ID!\n"); 2178 printk("could not set ID!\n");
2193 else 2179 else
2194 apic_printk(APIC_VERBOSE, " ok.\n"); 2180 apic_printk(APIC_VERBOSE, " ok.\n");
@@ -2291,7 +2277,7 @@ static int ioapic_retrigger_irq(unsigned int irq)
2291 unsigned long flags; 2277 unsigned long flags;
2292 2278
2293 spin_lock_irqsave(&vector_lock, flags); 2279 spin_lock_irqsave(&vector_lock, flags);
2294 send_IPI_mask(cpumask_of(cpumask_first(cfg->domain)), cfg->vector); 2280 apic->send_IPI_mask(cpumask_of(cpumask_first(cfg->domain)), cfg->vector);
2295 spin_unlock_irqrestore(&vector_lock, flags); 2281 spin_unlock_irqrestore(&vector_lock, flags);
2296 2282
2297 return 1; 2283 return 1;
@@ -2299,7 +2285,7 @@ static int ioapic_retrigger_irq(unsigned int irq)
2299#else 2285#else
2300static int ioapic_retrigger_irq(unsigned int irq) 2286static int ioapic_retrigger_irq(unsigned int irq)
2301{ 2287{
2302 send_IPI_self(irq_cfg(irq)->vector); 2288 apic->send_IPI_self(irq_cfg(irq)->vector);
2303 2289
2304 return 1; 2290 return 1;
2305} 2291}
@@ -2363,7 +2349,7 @@ migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2363 2349
2364 set_extra_move_desc(desc, mask); 2350 set_extra_move_desc(desc, mask);
2365 2351
2366 dest = cpu_mask_to_apicid_and(cfg->domain, mask); 2352 dest = apic->cpu_mask_to_apicid_and(cfg->domain, mask);
2367 2353
2368 modify_ioapic_rte = desc->status & IRQ_LEVEL; 2354 modify_ioapic_rte = desc->status & IRQ_LEVEL;
2369 if (modify_ioapic_rte) { 2355 if (modify_ioapic_rte) {
@@ -2528,14 +2514,15 @@ static void irq_complete_move(struct irq_desc **descp)
2528 2514
2529 vector = ~get_irq_regs()->orig_ax; 2515 vector = ~get_irq_regs()->orig_ax;
2530 me = smp_processor_id(); 2516 me = smp_processor_id();
2517
2518 if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain)) {
2531#ifdef CONFIG_NUMA_MIGRATE_IRQ_DESC 2519#ifdef CONFIG_NUMA_MIGRATE_IRQ_DESC
2532 *descp = desc = move_irq_desc(desc, me); 2520 *descp = desc = move_irq_desc(desc, me);
2533 /* get the new one */ 2521 /* get the new one */
2534 cfg = desc->chip_data; 2522 cfg = desc->chip_data;
2535#endif 2523#endif
2536
2537 if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain))
2538 send_cleanup_vector(cfg); 2524 send_cleanup_vector(cfg);
2525 }
2539} 2526}
2540#else 2527#else
2541static inline void irq_complete_move(struct irq_desc **descp) {} 2528static inline void irq_complete_move(struct irq_desc **descp) {}
@@ -2866,19 +2853,15 @@ static inline void __init check_timer(void)
2866 int cpu = boot_cpu_id; 2853 int cpu = boot_cpu_id;
2867 int apic1, pin1, apic2, pin2; 2854 int apic1, pin1, apic2, pin2;
2868 unsigned long flags; 2855 unsigned long flags;
2869 unsigned int ver;
2870 int no_pin1 = 0; 2856 int no_pin1 = 0;
2871 2857
2872 local_irq_save(flags); 2858 local_irq_save(flags);
2873 2859
2874 ver = apic_read(APIC_LVR);
2875 ver = GET_APIC_VERSION(ver);
2876
2877 /* 2860 /*
2878 * get/set the timer IRQ vector: 2861 * get/set the timer IRQ vector:
2879 */ 2862 */
2880 disable_8259A_irq(0); 2863 disable_8259A_irq(0);
2881 assign_irq_vector(0, cfg, TARGET_CPUS); 2864 assign_irq_vector(0, cfg, apic->target_cpus());
2882 2865
2883 /* 2866 /*
2884 * As IRQ0 is to be enabled in the 8259A, the virtual 2867 * As IRQ0 is to be enabled in the 8259A, the virtual
@@ -2892,7 +2875,13 @@ static inline void __init check_timer(void)
2892 apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); 2875 apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT);
2893 init_8259A(1); 2876 init_8259A(1);
2894#ifdef CONFIG_X86_32 2877#ifdef CONFIG_X86_32
2895 timer_ack = (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver)); 2878 {
2879 unsigned int ver;
2880
2881 ver = apic_read(APIC_LVR);
2882 ver = GET_APIC_VERSION(ver);
2883 timer_ack = (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver));
2884 }
2896#endif 2885#endif
2897 2886
2898 pin1 = find_isa_irq_pin(0, mp_INT); 2887 pin1 = find_isa_irq_pin(0, mp_INT);
@@ -2931,8 +2920,17 @@ static inline void __init check_timer(void)
2931 if (no_pin1) { 2920 if (no_pin1) {
2932 add_pin_to_irq_cpu(cfg, cpu, apic1, pin1); 2921 add_pin_to_irq_cpu(cfg, cpu, apic1, pin1);
2933 setup_timer_IRQ0_pin(apic1, pin1, cfg->vector); 2922 setup_timer_IRQ0_pin(apic1, pin1, cfg->vector);
2923 } else {
2924 /* for edge trigger, setup_IO_APIC_irq already
2925 * leave it unmasked.
2926 * so only need to unmask if it is level-trigger
2927 * do we really have level trigger timer?
2928 */
2929 int idx;
2930 idx = find_irq_entry(apic1, pin1, mp_INT);
2931 if (idx != -1 && irq_trigger(idx))
2932 unmask_IO_APIC_irq_desc(desc);
2934 } 2933 }
2935 unmask_IO_APIC_irq_desc(desc);
2936 if (timer_irq_works()) { 2934 if (timer_irq_works()) {
2937 if (nmi_watchdog == NMI_IO_APIC) { 2935 if (nmi_watchdog == NMI_IO_APIC) {
2938 setup_nmi(); 2936 setup_nmi();
@@ -2946,6 +2944,7 @@ static inline void __init check_timer(void)
2946 if (intr_remapping_enabled) 2944 if (intr_remapping_enabled)
2947 panic("timer doesn't work through Interrupt-remapped IO-APIC"); 2945 panic("timer doesn't work through Interrupt-remapped IO-APIC");
2948#endif 2946#endif
2947 local_irq_disable();
2949 clear_IO_APIC_pin(apic1, pin1); 2948 clear_IO_APIC_pin(apic1, pin1);
2950 if (!no_pin1) 2949 if (!no_pin1)
2951 apic_printk(APIC_QUIET, KERN_ERR "..MP-BIOS bug: " 2950 apic_printk(APIC_QUIET, KERN_ERR "..MP-BIOS bug: "
@@ -2960,7 +2959,6 @@ static inline void __init check_timer(void)
2960 */ 2959 */
2961 replace_pin_at_irq_cpu(cfg, cpu, apic1, pin1, apic2, pin2); 2960 replace_pin_at_irq_cpu(cfg, cpu, apic1, pin1, apic2, pin2);
2962 setup_timer_IRQ0_pin(apic2, pin2, cfg->vector); 2961 setup_timer_IRQ0_pin(apic2, pin2, cfg->vector);
2963 unmask_IO_APIC_irq_desc(desc);
2964 enable_8259A_irq(0); 2962 enable_8259A_irq(0);
2965 if (timer_irq_works()) { 2963 if (timer_irq_works()) {
2966 apic_printk(APIC_QUIET, KERN_INFO "....... works.\n"); 2964 apic_printk(APIC_QUIET, KERN_INFO "....... works.\n");
@@ -2975,6 +2973,7 @@ static inline void __init check_timer(void)
2975 /* 2973 /*
2976 * Cleanup, just in case ... 2974 * Cleanup, just in case ...
2977 */ 2975 */
2976 local_irq_disable();
2978 disable_8259A_irq(0); 2977 disable_8259A_irq(0);
2979 clear_IO_APIC_pin(apic2, pin2); 2978 clear_IO_APIC_pin(apic2, pin2);
2980 apic_printk(APIC_QUIET, KERN_INFO "....... failed.\n"); 2979 apic_printk(APIC_QUIET, KERN_INFO "....... failed.\n");
@@ -3000,6 +2999,7 @@ static inline void __init check_timer(void)
3000 apic_printk(APIC_QUIET, KERN_INFO "..... works.\n"); 2999 apic_printk(APIC_QUIET, KERN_INFO "..... works.\n");
3001 goto out; 3000 goto out;
3002 } 3001 }
3002 local_irq_disable();
3003 disable_8259A_irq(0); 3003 disable_8259A_irq(0);
3004 apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | cfg->vector); 3004 apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | cfg->vector);
3005 apic_printk(APIC_QUIET, KERN_INFO "..... failed.\n"); 3005 apic_printk(APIC_QUIET, KERN_INFO "..... failed.\n");
@@ -3017,6 +3017,7 @@ static inline void __init check_timer(void)
3017 apic_printk(APIC_QUIET, KERN_INFO "..... works.\n"); 3017 apic_printk(APIC_QUIET, KERN_INFO "..... works.\n");
3018 goto out; 3018 goto out;
3019 } 3019 }
3020 local_irq_disable();
3020 apic_printk(APIC_QUIET, KERN_INFO "..... failed :(.\n"); 3021 apic_printk(APIC_QUIET, KERN_INFO "..... failed :(.\n");
3021 panic("IO-APIC + timer doesn't work! Boot with apic=debug and send a " 3022 panic("IO-APIC + timer doesn't work! Boot with apic=debug and send a "
3022 "report. Then try booting with the 'noapic' option.\n"); 3023 "report. Then try booting with the 'noapic' option.\n");
@@ -3046,13 +3047,9 @@ out:
3046void __init setup_IO_APIC(void) 3047void __init setup_IO_APIC(void)
3047{ 3048{
3048 3049
3049#ifdef CONFIG_X86_32
3050 enable_IO_APIC();
3051#else
3052 /* 3050 /*
3053 * calling enable_IO_APIC() is moved to setup_local_APIC for BP 3051 * calling enable_IO_APIC() is moved to setup_local_APIC for BP
3054 */ 3052 */
3055#endif
3056 3053
3057 io_apic_irqs = ~PIC_IRQS; 3054 io_apic_irqs = ~PIC_IRQS;
3058 3055
@@ -3117,8 +3114,8 @@ static int ioapic_resume(struct sys_device *dev)
3117 3114
3118 spin_lock_irqsave(&ioapic_lock, flags); 3115 spin_lock_irqsave(&ioapic_lock, flags);
3119 reg_00.raw = io_apic_read(dev->id, 0); 3116 reg_00.raw = io_apic_read(dev->id, 0);
3120 if (reg_00.bits.ID != mp_ioapics[dev->id].mp_apicid) { 3117 if (reg_00.bits.ID != mp_ioapics[dev->id].apicid) {
3121 reg_00.bits.ID = mp_ioapics[dev->id].mp_apicid; 3118 reg_00.bits.ID = mp_ioapics[dev->id].apicid;
3122 io_apic_write(dev->id, 0, reg_00.raw); 3119 io_apic_write(dev->id, 0, reg_00.raw);
3123 } 3120 }
3124 spin_unlock_irqrestore(&ioapic_lock, flags); 3121 spin_unlock_irqrestore(&ioapic_lock, flags);
@@ -3168,6 +3165,7 @@ static int __init ioapic_init_sysfs(void)
3168 3165
3169device_initcall(ioapic_init_sysfs); 3166device_initcall(ioapic_init_sysfs);
3170 3167
3168static int nr_irqs_gsi = NR_IRQS_LEGACY;
3171/* 3169/*
3172 * Dynamic irq allocate and deallocation 3170 * Dynamic irq allocate and deallocation
3173 */ 3171 */
@@ -3182,11 +3180,11 @@ unsigned int create_irq_nr(unsigned int irq_want)
3182 struct irq_desc *desc_new = NULL; 3180 struct irq_desc *desc_new = NULL;
3183 3181
3184 irq = 0; 3182 irq = 0;
3183 if (irq_want < nr_irqs_gsi)
3184 irq_want = nr_irqs_gsi;
3185
3185 spin_lock_irqsave(&vector_lock, flags); 3186 spin_lock_irqsave(&vector_lock, flags);
3186 for (new = irq_want; new < nr_irqs; new++) { 3187 for (new = irq_want; new < nr_irqs; new++) {
3187 if (platform_legacy_irq(new))
3188 continue;
3189
3190 desc_new = irq_to_desc_alloc_cpu(new, cpu); 3188 desc_new = irq_to_desc_alloc_cpu(new, cpu);
3191 if (!desc_new) { 3189 if (!desc_new) {
3192 printk(KERN_INFO "can not get irq_desc for %d\n", new); 3190 printk(KERN_INFO "can not get irq_desc for %d\n", new);
@@ -3196,7 +3194,7 @@ unsigned int create_irq_nr(unsigned int irq_want)
3196 3194
3197 if (cfg_new->vector != 0) 3195 if (cfg_new->vector != 0)
3198 continue; 3196 continue;
3199 if (__assign_irq_vector(new, cfg_new, TARGET_CPUS) == 0) 3197 if (__assign_irq_vector(new, cfg_new, apic->target_cpus()) == 0)
3200 irq = new; 3198 irq = new;
3201 break; 3199 break;
3202 } 3200 }
@@ -3211,7 +3209,6 @@ unsigned int create_irq_nr(unsigned int irq_want)
3211 return irq; 3209 return irq;
3212} 3210}
3213 3211
3214static int nr_irqs_gsi = NR_IRQS_LEGACY;
3215int create_irq(void) 3212int create_irq(void)
3216{ 3213{
3217 unsigned int irq_want; 3214 unsigned int irq_want;
@@ -3258,12 +3255,15 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3258 int err; 3255 int err;
3259 unsigned dest; 3256 unsigned dest;
3260 3257
3258 if (disable_apic)
3259 return -ENXIO;
3260
3261 cfg = irq_cfg(irq); 3261 cfg = irq_cfg(irq);
3262 err = assign_irq_vector(irq, cfg, TARGET_CPUS); 3262 err = assign_irq_vector(irq, cfg, apic->target_cpus());
3263 if (err) 3263 if (err)
3264 return err; 3264 return err;
3265 3265
3266 dest = cpu_mask_to_apicid_and(cfg->domain, TARGET_CPUS); 3266 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus());
3267 3267
3268#ifdef CONFIG_INTR_REMAP 3268#ifdef CONFIG_INTR_REMAP
3269 if (irq_remapped(irq)) { 3269 if (irq_remapped(irq)) {
@@ -3277,9 +3277,9 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3277 memset (&irte, 0, sizeof(irte)); 3277 memset (&irte, 0, sizeof(irte));
3278 3278
3279 irte.present = 1; 3279 irte.present = 1;
3280 irte.dst_mode = INT_DEST_MODE; 3280 irte.dst_mode = apic->irq_dest_mode;
3281 irte.trigger_mode = 0; /* edge */ 3281 irte.trigger_mode = 0; /* edge */
3282 irte.dlvry_mode = INT_DELIVERY_MODE; 3282 irte.dlvry_mode = apic->irq_delivery_mode;
3283 irte.vector = cfg->vector; 3283 irte.vector = cfg->vector;
3284 irte.dest_id = IRTE_DEST(dest); 3284 irte.dest_id = IRTE_DEST(dest);
3285 3285
@@ -3297,10 +3297,10 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3297 msg->address_hi = MSI_ADDR_BASE_HI; 3297 msg->address_hi = MSI_ADDR_BASE_HI;
3298 msg->address_lo = 3298 msg->address_lo =
3299 MSI_ADDR_BASE_LO | 3299 MSI_ADDR_BASE_LO |
3300 ((INT_DEST_MODE == 0) ? 3300 ((apic->irq_dest_mode == 0) ?
3301 MSI_ADDR_DEST_MODE_PHYSICAL: 3301 MSI_ADDR_DEST_MODE_PHYSICAL:
3302 MSI_ADDR_DEST_MODE_LOGICAL) | 3302 MSI_ADDR_DEST_MODE_LOGICAL) |
3303 ((INT_DELIVERY_MODE != dest_LowestPrio) ? 3303 ((apic->irq_delivery_mode != dest_LowestPrio) ?
3304 MSI_ADDR_REDIRECTION_CPU: 3304 MSI_ADDR_REDIRECTION_CPU:
3305 MSI_ADDR_REDIRECTION_LOWPRI) | 3305 MSI_ADDR_REDIRECTION_LOWPRI) |
3306 MSI_ADDR_DEST_ID(dest); 3306 MSI_ADDR_DEST_ID(dest);
@@ -3308,7 +3308,7 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3308 msg->data = 3308 msg->data =
3309 MSI_DATA_TRIGGER_EDGE | 3309 MSI_DATA_TRIGGER_EDGE |
3310 MSI_DATA_LEVEL_ASSERT | 3310 MSI_DATA_LEVEL_ASSERT |
3311 ((INT_DELIVERY_MODE != dest_LowestPrio) ? 3311 ((apic->irq_delivery_mode != dest_LowestPrio) ?
3312 MSI_DATA_DELIVERY_FIXED: 3312 MSI_DATA_DELIVERY_FIXED:
3313 MSI_DATA_DELIVERY_LOWPRI) | 3313 MSI_DATA_DELIVERY_LOWPRI) |
3314 MSI_DATA_VECTOR(cfg->vector); 3314 MSI_DATA_VECTOR(cfg->vector);
@@ -3463,40 +3463,6 @@ static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
3463 return 0; 3463 return 0;
3464} 3464}
3465 3465
3466int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc)
3467{
3468 unsigned int irq;
3469 int ret;
3470 unsigned int irq_want;
3471
3472 irq_want = nr_irqs_gsi;
3473 irq = create_irq_nr(irq_want);
3474 if (irq == 0)
3475 return -1;
3476
3477#ifdef CONFIG_INTR_REMAP
3478 if (!intr_remapping_enabled)
3479 goto no_ir;
3480
3481 ret = msi_alloc_irte(dev, irq, 1);
3482 if (ret < 0)
3483 goto error;
3484no_ir:
3485#endif
3486 ret = setup_msi_irq(dev, msidesc, irq);
3487 if (ret < 0) {
3488 destroy_irq(irq);
3489 return ret;
3490 }
3491 return 0;
3492
3493#ifdef CONFIG_INTR_REMAP
3494error:
3495 destroy_irq(irq);
3496 return ret;
3497#endif
3498}
3499
3500int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) 3466int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3501{ 3467{
3502 unsigned int irq; 3468 unsigned int irq;
@@ -3513,9 +3479,9 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3513 sub_handle = 0; 3479 sub_handle = 0;
3514 list_for_each_entry(msidesc, &dev->msi_list, list) { 3480 list_for_each_entry(msidesc, &dev->msi_list, list) {
3515 irq = create_irq_nr(irq_want); 3481 irq = create_irq_nr(irq_want);
3516 irq_want++;
3517 if (irq == 0) 3482 if (irq == 0)
3518 return -1; 3483 return -1;
3484 irq_want = irq + 1;
3519#ifdef CONFIG_INTR_REMAP 3485#ifdef CONFIG_INTR_REMAP
3520 if (!intr_remapping_enabled) 3486 if (!intr_remapping_enabled)
3521 goto no_ir; 3487 goto no_ir;
@@ -3726,13 +3692,17 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
3726 struct irq_cfg *cfg; 3692 struct irq_cfg *cfg;
3727 int err; 3693 int err;
3728 3694
3695 if (disable_apic)
3696 return -ENXIO;
3697
3729 cfg = irq_cfg(irq); 3698 cfg = irq_cfg(irq);
3730 err = assign_irq_vector(irq, cfg, TARGET_CPUS); 3699 err = assign_irq_vector(irq, cfg, apic->target_cpus());
3731 if (!err) { 3700 if (!err) {
3732 struct ht_irq_msg msg; 3701 struct ht_irq_msg msg;
3733 unsigned dest; 3702 unsigned dest;
3734 3703
3735 dest = cpu_mask_to_apicid_and(cfg->domain, TARGET_CPUS); 3704 dest = apic->cpu_mask_to_apicid_and(cfg->domain,
3705 apic->target_cpus());
3736 3706
3737 msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest); 3707 msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest);
3738 3708
@@ -3740,11 +3710,11 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
3740 HT_IRQ_LOW_BASE | 3710 HT_IRQ_LOW_BASE |
3741 HT_IRQ_LOW_DEST_ID(dest) | 3711 HT_IRQ_LOW_DEST_ID(dest) |
3742 HT_IRQ_LOW_VECTOR(cfg->vector) | 3712 HT_IRQ_LOW_VECTOR(cfg->vector) |
3743 ((INT_DEST_MODE == 0) ? 3713 ((apic->irq_dest_mode == 0) ?
3744 HT_IRQ_LOW_DM_PHYSICAL : 3714 HT_IRQ_LOW_DM_PHYSICAL :
3745 HT_IRQ_LOW_DM_LOGICAL) | 3715 HT_IRQ_LOW_DM_LOGICAL) |
3746 HT_IRQ_LOW_RQEOI_EDGE | 3716 HT_IRQ_LOW_RQEOI_EDGE |
3747 ((INT_DELIVERY_MODE != dest_LowestPrio) ? 3717 ((apic->irq_delivery_mode != dest_LowestPrio) ?
3748 HT_IRQ_LOW_MT_FIXED : 3718 HT_IRQ_LOW_MT_FIXED :
3749 HT_IRQ_LOW_MT_ARBITRATED) | 3719 HT_IRQ_LOW_MT_ARBITRATED) |
3750 HT_IRQ_LOW_IRQ_MASKED; 3720 HT_IRQ_LOW_IRQ_MASKED;
@@ -3760,7 +3730,7 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
3760} 3730}
3761#endif /* CONFIG_HT_IRQ */ 3731#endif /* CONFIG_HT_IRQ */
3762 3732
3763#ifdef CONFIG_X86_64 3733#ifdef CONFIG_X86_UV
3764/* 3734/*
3765 * Re-target the irq to the specified CPU and enable the specified MMR located 3735 * Re-target the irq to the specified CPU and enable the specified MMR located
3766 * on the specified blade to allow the sending of MSIs to the specified CPU. 3736 * on the specified blade to allow the sending of MSIs to the specified CPU.
@@ -3792,12 +3762,12 @@ int arch_enable_uv_irq(char *irq_name, unsigned int irq, int cpu, int mmr_blade,
3792 BUG_ON(sizeof(struct uv_IO_APIC_route_entry) != sizeof(unsigned long)); 3762 BUG_ON(sizeof(struct uv_IO_APIC_route_entry) != sizeof(unsigned long));
3793 3763
3794 entry->vector = cfg->vector; 3764 entry->vector = cfg->vector;
3795 entry->delivery_mode = INT_DELIVERY_MODE; 3765 entry->delivery_mode = apic->irq_delivery_mode;
3796 entry->dest_mode = INT_DEST_MODE; 3766 entry->dest_mode = apic->irq_dest_mode;
3797 entry->polarity = 0; 3767 entry->polarity = 0;
3798 entry->trigger = 0; 3768 entry->trigger = 0;
3799 entry->mask = 0; 3769 entry->mask = 0;
3800 entry->dest = cpu_mask_to_apicid(eligible_cpu); 3770 entry->dest = apic->cpu_mask_to_apicid(eligible_cpu);
3801 3771
3802 mmr_pnode = uv_blade_to_pnode(mmr_blade); 3772 mmr_pnode = uv_blade_to_pnode(mmr_blade);
3803 uv_write_global_mmr64(mmr_pnode, mmr_offset, mmr_value); 3773 uv_write_global_mmr64(mmr_pnode, mmr_offset, mmr_value);
@@ -3840,14 +3810,24 @@ int __init io_apic_get_redir_entries (int ioapic)
3840 3810
3841void __init probe_nr_irqs_gsi(void) 3811void __init probe_nr_irqs_gsi(void)
3842{ 3812{
3843 int idx;
3844 int nr = 0; 3813 int nr = 0;
3845 3814
3846 for (idx = 0; idx < nr_ioapics; idx++) 3815 nr = acpi_probe_gsi();
3847 nr += io_apic_get_redir_entries(idx) + 1; 3816 if (nr > nr_irqs_gsi) {
3848
3849 if (nr > nr_irqs_gsi)
3850 nr_irqs_gsi = nr; 3817 nr_irqs_gsi = nr;
3818 } else {
3819 /* for acpi=off or acpi is not compiled in */
3820 int idx;
3821
3822 nr = 0;
3823 for (idx = 0; idx < nr_ioapics; idx++)
3824 nr += io_apic_get_redir_entries(idx) + 1;
3825
3826 if (nr > nr_irqs_gsi)
3827 nr_irqs_gsi = nr;
3828 }
3829
3830 printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
3851} 3831}
3852 3832
3853#ifdef CONFIG_SPARSE_IRQ 3833#ifdef CONFIG_SPARSE_IRQ
@@ -3855,11 +3835,17 @@ int __init arch_probe_nr_irqs(void)
3855{ 3835{
3856 int nr; 3836 int nr;
3857 3837
3858 nr = ((8 * nr_cpu_ids) > (32 * nr_ioapics) ? 3838 if (nr_irqs > (NR_VECTORS * nr_cpu_ids))
3859 (NR_VECTORS + (8 * nr_cpu_ids)) : 3839 nr_irqs = NR_VECTORS * nr_cpu_ids;
3860 (NR_VECTORS + (32 * nr_ioapics)));
3861 3840
3862 if (nr < nr_irqs && nr > nr_irqs_gsi) 3841 nr = nr_irqs_gsi + 8 * nr_cpu_ids;
3842#if defined(CONFIG_PCI_MSI) || defined(CONFIG_HT_IRQ)
3843 /*
3844 * for MSI and HT dyn irq
3845 */
3846 nr += nr_irqs_gsi * 16;
3847#endif
3848 if (nr < nr_irqs)
3863 nr_irqs = nr; 3849 nr_irqs = nr;
3864 3850
3865 return 0; 3851 return 0;
@@ -3891,7 +3877,7 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
3891 */ 3877 */
3892 3878
3893 if (physids_empty(apic_id_map)) 3879 if (physids_empty(apic_id_map))
3894 apic_id_map = ioapic_phys_id_map(phys_cpu_present_map); 3880 apic_id_map = apic->ioapic_phys_id_map(phys_cpu_present_map);
3895 3881
3896 spin_lock_irqsave(&ioapic_lock, flags); 3882 spin_lock_irqsave(&ioapic_lock, flags);
3897 reg_00.raw = io_apic_read(ioapic, 0); 3883 reg_00.raw = io_apic_read(ioapic, 0);
@@ -3907,10 +3893,10 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
3907 * Every APIC in a system must have a unique ID or we get lots of nice 3893 * Every APIC in a system must have a unique ID or we get lots of nice
3908 * 'stuck on smp_invalidate_needed IPI wait' messages. 3894 * 'stuck on smp_invalidate_needed IPI wait' messages.
3909 */ 3895 */
3910 if (check_apicid_used(apic_id_map, apic_id)) { 3896 if (apic->check_apicid_used(apic_id_map, apic_id)) {
3911 3897
3912 for (i = 0; i < get_physical_broadcast(); i++) { 3898 for (i = 0; i < get_physical_broadcast(); i++) {
3913 if (!check_apicid_used(apic_id_map, i)) 3899 if (!apic->check_apicid_used(apic_id_map, i))
3914 break; 3900 break;
3915 } 3901 }
3916 3902
@@ -3923,7 +3909,7 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
3923 apic_id = i; 3909 apic_id = i;
3924 } 3910 }
3925 3911
3926 tmp = apicid_to_cpu_present(apic_id); 3912 tmp = apic->apicid_to_cpu_present(apic_id);
3927 physids_or(apic_id_map, apic_id_map, tmp); 3913 physids_or(apic_id_map, apic_id_map, tmp);
3928 3914
3929 if (reg_00.bits.ID != apic_id) { 3915 if (reg_00.bits.ID != apic_id) {
@@ -4000,8 +3986,8 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
4000 return -1; 3986 return -1;
4001 3987
4002 for (i = 0; i < mp_irq_entries; i++) 3988 for (i = 0; i < mp_irq_entries; i++)
4003 if (mp_irqs[i].mp_irqtype == mp_INT && 3989 if (mp_irqs[i].irqtype == mp_INT &&
4004 mp_irqs[i].mp_srcbusirq == bus_irq) 3990 mp_irqs[i].srcbusirq == bus_irq)
4005 break; 3991 break;
4006 if (i >= mp_irq_entries) 3992 if (i >= mp_irq_entries)
4007 return -1; 3993 return -1;
@@ -4016,7 +4002,7 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
4016/* 4002/*
4017 * This function currently is only a helper for the i386 smp boot process where 4003 * This function currently is only a helper for the i386 smp boot process where
4018 * we need to reprogram the ioredtbls to cater for the cpus which have come online 4004 * we need to reprogram the ioredtbls to cater for the cpus which have come online
4019 * so mask in all cases should simply be TARGET_CPUS 4005 * so mask in all cases should simply be apic->target_cpus()
4020 */ 4006 */
4021#ifdef CONFIG_SMP 4007#ifdef CONFIG_SMP
4022void __init setup_ioapic_dest(void) 4008void __init setup_ioapic_dest(void)
@@ -4057,7 +4043,7 @@ void __init setup_ioapic_dest(void)
4057 (IRQ_NO_BALANCING | IRQ_AFFINITY_SET)) 4043 (IRQ_NO_BALANCING | IRQ_AFFINITY_SET))
4058 mask = desc->affinity; 4044 mask = desc->affinity;
4059 else 4045 else
4060 mask = TARGET_CPUS; 4046 mask = apic->target_cpus();
4061 4047
4062#ifdef CONFIG_INTR_REMAP 4048#ifdef CONFIG_INTR_REMAP
4063 if (intr_remapping_enabled) 4049 if (intr_remapping_enabled)
@@ -4116,7 +4102,7 @@ void __init ioapic_init_mappings(void)
4116 ioapic_res = ioapic_setup_resources(); 4102 ioapic_res = ioapic_setup_resources();
4117 for (i = 0; i < nr_ioapics; i++) { 4103 for (i = 0; i < nr_ioapics; i++) {
4118 if (smp_found_config) { 4104 if (smp_found_config) {
4119 ioapic_phys = mp_ioapics[i].mp_apicaddr; 4105 ioapic_phys = mp_ioapics[i].apicaddr;
4120#ifdef CONFIG_X86_32 4106#ifdef CONFIG_X86_32
4121 if (!ioapic_phys) { 4107 if (!ioapic_phys) {
4122 printk(KERN_ERR 4108 printk(KERN_ERR
diff --git a/arch/x86/kernel/apic/ipi.c b/arch/x86/kernel/apic/ipi.c
new file mode 100644
index 000000000000..dbf5445727a9
--- /dev/null
+++ b/arch/x86/kernel/apic/ipi.c
@@ -0,0 +1,164 @@
1#include <linux/cpumask.h>
2#include <linux/interrupt.h>
3#include <linux/init.h>
4
5#include <linux/mm.h>
6#include <linux/delay.h>
7#include <linux/spinlock.h>
8#include <linux/kernel_stat.h>
9#include <linux/mc146818rtc.h>
10#include <linux/cache.h>
11#include <linux/cpu.h>
12#include <linux/module.h>
13
14#include <asm/smp.h>
15#include <asm/mtrr.h>
16#include <asm/tlbflush.h>
17#include <asm/mmu_context.h>
18#include <asm/apic.h>
19#include <asm/proto.h>
20#include <asm/ipi.h>
21
22void default_send_IPI_mask_sequence_phys(const struct cpumask *mask, int vector)
23{
24 unsigned long query_cpu;
25 unsigned long flags;
26
27 /*
28 * Hack. The clustered APIC addressing mode doesn't allow us to send
29 * to an arbitrary mask, so I do a unicast to each CPU instead.
30 * - mbligh
31 */
32 local_irq_save(flags);
33 for_each_cpu(query_cpu, mask) {
34 __default_send_IPI_dest_field(per_cpu(x86_cpu_to_apicid,
35 query_cpu), vector, APIC_DEST_PHYSICAL);
36 }
37 local_irq_restore(flags);
38}
39
40void default_send_IPI_mask_allbutself_phys(const struct cpumask *mask,
41 int vector)
42{
43 unsigned int this_cpu = smp_processor_id();
44 unsigned int query_cpu;
45 unsigned long flags;
46
47 /* See Hack comment above */
48
49 local_irq_save(flags);
50 for_each_cpu(query_cpu, mask) {
51 if (query_cpu == this_cpu)
52 continue;
53 __default_send_IPI_dest_field(per_cpu(x86_cpu_to_apicid,
54 query_cpu), vector, APIC_DEST_PHYSICAL);
55 }
56 local_irq_restore(flags);
57}
58
59void default_send_IPI_mask_sequence_logical(const struct cpumask *mask,
60 int vector)
61{
62 unsigned long flags;
63 unsigned int query_cpu;
64
65 /*
66 * Hack. The clustered APIC addressing mode doesn't allow us to send
67 * to an arbitrary mask, so I do a unicasts to each CPU instead. This
68 * should be modified to do 1 message per cluster ID - mbligh
69 */
70
71 local_irq_save(flags);
72 for_each_cpu(query_cpu, mask)
73 __default_send_IPI_dest_field(
74 apic->cpu_to_logical_apicid(query_cpu), vector,
75 apic->dest_logical);
76 local_irq_restore(flags);
77}
78
79void default_send_IPI_mask_allbutself_logical(const struct cpumask *mask,
80 int vector)
81{
82 unsigned long flags;
83 unsigned int query_cpu;
84 unsigned int this_cpu = smp_processor_id();
85
86 /* See Hack comment above */
87
88 local_irq_save(flags);
89 for_each_cpu(query_cpu, mask) {
90 if (query_cpu == this_cpu)
91 continue;
92 __default_send_IPI_dest_field(
93 apic->cpu_to_logical_apicid(query_cpu), vector,
94 apic->dest_logical);
95 }
96 local_irq_restore(flags);
97}
98
99#ifdef CONFIG_X86_32
100
101/*
102 * This is only used on smaller machines.
103 */
104void default_send_IPI_mask_logical(const struct cpumask *cpumask, int vector)
105{
106 unsigned long mask = cpumask_bits(cpumask)[0];
107 unsigned long flags;
108
109 local_irq_save(flags);
110 WARN_ON(mask & ~cpumask_bits(cpu_online_mask)[0]);
111 __default_send_IPI_dest_field(mask, vector, apic->dest_logical);
112 local_irq_restore(flags);
113}
114
115void default_send_IPI_allbutself(int vector)
116{
117 /*
118 * if there are no other CPUs in the system then we get an APIC send
119 * error if we try to broadcast, thus avoid sending IPIs in this case.
120 */
121 if (!(num_online_cpus() > 1))
122 return;
123
124 __default_local_send_IPI_allbutself(vector);
125}
126
127void default_send_IPI_all(int vector)
128{
129 __default_local_send_IPI_all(vector);
130}
131
132void default_send_IPI_self(int vector)
133{
134 __default_send_IPI_shortcut(APIC_DEST_SELF, vector, apic->dest_logical);
135}
136
137/* must come after the send_IPI functions above for inlining */
138static int convert_apicid_to_cpu(int apic_id)
139{
140 int i;
141
142 for_each_possible_cpu(i) {
143 if (per_cpu(x86_cpu_to_apicid, i) == apic_id)
144 return i;
145 }
146 return -1;
147}
148
149int safe_smp_processor_id(void)
150{
151 int apicid, cpuid;
152
153 if (!boot_cpu_has(X86_FEATURE_APIC))
154 return 0;
155
156 apicid = hard_smp_processor_id();
157 if (apicid == BAD_APICID)
158 return 0;
159
160 cpuid = convert_apicid_to_cpu(apicid);
161
162 return cpuid >= 0 ? cpuid : 0;
163}
164#endif
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/apic/nmi.c
index 7228979f1e7f..bdfad80c3cf1 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/apic/nmi.c
@@ -34,7 +34,7 @@
34 34
35#include <asm/mce.h> 35#include <asm/mce.h>
36 36
37#include <mach_traps.h> 37#include <asm/mach_traps.h>
38 38
39int unknown_nmi_panic; 39int unknown_nmi_panic;
40int nmi_watchdog_enabled; 40int nmi_watchdog_enabled;
@@ -61,11 +61,7 @@ static int endflag __initdata;
61 61
62static inline unsigned int get_nmi_count(int cpu) 62static inline unsigned int get_nmi_count(int cpu)
63{ 63{
64#ifdef CONFIG_X86_64 64 return per_cpu(irq_stat, cpu).__nmi_count;
65 return cpu_pda(cpu)->__nmi_count;
66#else
67 return nmi_count(cpu);
68#endif
69} 65}
70 66
71static inline int mce_in_progress(void) 67static inline int mce_in_progress(void)
@@ -82,12 +78,8 @@ static inline int mce_in_progress(void)
82 */ 78 */
83static inline unsigned int get_timer_irqs(int cpu) 79static inline unsigned int get_timer_irqs(int cpu)
84{ 80{
85#ifdef CONFIG_X86_64
86 return read_pda(apic_timer_irqs) + read_pda(irq0_irqs);
87#else
88 return per_cpu(irq_stat, cpu).apic_timer_irqs + 81 return per_cpu(irq_stat, cpu).apic_timer_irqs +
89 per_cpu(irq_stat, cpu).irq0_irqs; 82 per_cpu(irq_stat, cpu).irq0_irqs;
90#endif
91} 83}
92 84
93#ifdef CONFIG_SMP 85#ifdef CONFIG_SMP
diff --git a/arch/x86/kernel/apic/numaq_32.c b/arch/x86/kernel/apic/numaq_32.c
new file mode 100644
index 000000000000..ba2fc6465534
--- /dev/null
+++ b/arch/x86/kernel/apic/numaq_32.c
@@ -0,0 +1,557 @@
1/*
2 * Written by: Patricia Gaughen, IBM Corporation
3 *
4 * Copyright (C) 2002, IBM Corp.
5 * Copyright (C) 2009, Red Hat, Inc., Ingo Molnar
6 *
7 * All rights reserved.
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
17 * NON INFRINGEMENT. See the GNU General Public License for more
18 * details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 *
24 * Send feedback to <gone@us.ibm.com>
25 */
26#include <linux/nodemask.h>
27#include <linux/topology.h>
28#include <linux/bootmem.h>
29#include <linux/threads.h>
30#include <linux/cpumask.h>
31#include <linux/kernel.h>
32#include <linux/mmzone.h>
33#include <linux/module.h>
34#include <linux/string.h>
35#include <linux/init.h>
36#include <linux/numa.h>
37#include <linux/smp.h>
38#include <linux/io.h>
39#include <linux/mm.h>
40
41#include <asm/processor.h>
42#include <asm/fixmap.h>
43#include <asm/mpspec.h>
44#include <asm/numaq.h>
45#include <asm/setup.h>
46#include <asm/apic.h>
47#include <asm/e820.h>
48#include <asm/ipi.h>
49
50#define MB_TO_PAGES(addr) ((addr) << (20 - PAGE_SHIFT))
51
52int found_numaq;
53
54/*
55 * Have to match translation table entries to main table entries by counter
56 * hence the mpc_record variable .... can't see a less disgusting way of
57 * doing this ....
58 */
59struct mpc_trans {
60 unsigned char mpc_type;
61 unsigned char trans_len;
62 unsigned char trans_type;
63 unsigned char trans_quad;
64 unsigned char trans_global;
65 unsigned char trans_local;
66 unsigned short trans_reserved;
67};
68
69/* x86_quirks member */
70static int mpc_record;
71
72static struct mpc_trans *translation_table[MAX_MPC_ENTRY];
73
74int mp_bus_id_to_node[MAX_MP_BUSSES];
75int mp_bus_id_to_local[MAX_MP_BUSSES];
76int quad_local_to_mp_bus_id[NR_CPUS/4][4];
77
78
79static inline void numaq_register_node(int node, struct sys_cfg_data *scd)
80{
81 struct eachquadmem *eq = scd->eq + node;
82
83 node_set_online(node);
84
85 /* Convert to pages */
86 node_start_pfn[node] =
87 MB_TO_PAGES(eq->hi_shrd_mem_start - eq->priv_mem_size);
88
89 node_end_pfn[node] =
90 MB_TO_PAGES(eq->hi_shrd_mem_start + eq->hi_shrd_mem_size);
91
92 e820_register_active_regions(node, node_start_pfn[node],
93 node_end_pfn[node]);
94
95 memory_present(node, node_start_pfn[node], node_end_pfn[node]);
96
97 node_remap_size[node] = node_memmap_size_bytes(node,
98 node_start_pfn[node],
99 node_end_pfn[node]);
100}
101
102/*
103 * Function: smp_dump_qct()
104 *
105 * Description: gets memory layout from the quad config table. This
106 * function also updates node_online_map with the nodes (quads) present.
107 */
108static void __init smp_dump_qct(void)
109{
110 struct sys_cfg_data *scd;
111 int node;
112
113 scd = (void *)__va(SYS_CFG_DATA_PRIV_ADDR);
114
115 nodes_clear(node_online_map);
116 for_each_node(node) {
117 if (scd->quads_present31_0 & (1 << node))
118 numaq_register_node(node, scd);
119 }
120}
121
122void __cpuinit numaq_tsc_disable(void)
123{
124 if (!found_numaq)
125 return;
126
127 if (num_online_nodes() > 1) {
128 printk(KERN_DEBUG "NUMAQ: disabling TSC\n");
129 setup_clear_cpu_cap(X86_FEATURE_TSC);
130 }
131}
132
133static int __init numaq_pre_time_init(void)
134{
135 numaq_tsc_disable();
136 return 0;
137}
138
139static inline int generate_logical_apicid(int quad, int phys_apicid)
140{
141 return (quad << 4) + (phys_apicid ? phys_apicid << 1 : 1);
142}
143
144/* x86_quirks member */
145static int mpc_apic_id(struct mpc_cpu *m)
146{
147 int quad = translation_table[mpc_record]->trans_quad;
148 int logical_apicid = generate_logical_apicid(quad, m->apicid);
149
150 printk(KERN_DEBUG
151 "Processor #%d %u:%u APIC version %d (quad %d, apic %d)\n",
152 m->apicid, (m->cpufeature & CPU_FAMILY_MASK) >> 8,
153 (m->cpufeature & CPU_MODEL_MASK) >> 4,
154 m->apicver, quad, logical_apicid);
155
156 return logical_apicid;
157}
158
159/* x86_quirks member */
160static void mpc_oem_bus_info(struct mpc_bus *m, char *name)
161{
162 int quad = translation_table[mpc_record]->trans_quad;
163 int local = translation_table[mpc_record]->trans_local;
164
165 mp_bus_id_to_node[m->busid] = quad;
166 mp_bus_id_to_local[m->busid] = local;
167
168 printk(KERN_INFO "Bus #%d is %s (node %d)\n", m->busid, name, quad);
169}
170
171/* x86_quirks member */
172static void mpc_oem_pci_bus(struct mpc_bus *m)
173{
174 int quad = translation_table[mpc_record]->trans_quad;
175 int local = translation_table[mpc_record]->trans_local;
176
177 quad_local_to_mp_bus_id[quad][local] = m->busid;
178}
179
180static void __init MP_translation_info(struct mpc_trans *m)
181{
182 printk(KERN_INFO
183 "Translation: record %d, type %d, quad %d, global %d, local %d\n",
184 mpc_record, m->trans_type, m->trans_quad, m->trans_global,
185 m->trans_local);
186
187 if (mpc_record >= MAX_MPC_ENTRY)
188 printk(KERN_ERR "MAX_MPC_ENTRY exceeded!\n");
189 else
190 translation_table[mpc_record] = m; /* stash this for later */
191
192 if (m->trans_quad < MAX_NUMNODES && !node_online(m->trans_quad))
193 node_set_online(m->trans_quad);
194}
195
196static int __init mpf_checksum(unsigned char *mp, int len)
197{
198 int sum = 0;
199
200 while (len--)
201 sum += *mp++;
202
203 return sum & 0xFF;
204}
205
206/*
207 * Read/parse the MPC oem tables
208 */
209static void __init
210 smp_read_mpc_oem(struct mpc_oemtable *oemtable, unsigned short oemsize)
211{
212 int count = sizeof(*oemtable); /* the header size */
213 unsigned char *oemptr = ((unsigned char *)oemtable) + count;
214
215 mpc_record = 0;
216 printk(KERN_INFO
217 "Found an OEM MPC table at %8p - parsing it ... \n", oemtable);
218
219 if (memcmp(oemtable->signature, MPC_OEM_SIGNATURE, 4)) {
220 printk(KERN_WARNING
221 "SMP mpc oemtable: bad signature [%c%c%c%c]!\n",
222 oemtable->signature[0], oemtable->signature[1],
223 oemtable->signature[2], oemtable->signature[3]);
224 return;
225 }
226
227 if (mpf_checksum((unsigned char *)oemtable, oemtable->length)) {
228 printk(KERN_WARNING "SMP oem mptable: checksum error!\n");
229 return;
230 }
231
232 while (count < oemtable->length) {
233 switch (*oemptr) {
234 case MP_TRANSLATION:
235 {
236 struct mpc_trans *m = (void *)oemptr;
237
238 MP_translation_info(m);
239 oemptr += sizeof(*m);
240 count += sizeof(*m);
241 ++mpc_record;
242 break;
243 }
244 default:
245 printk(KERN_WARNING
246 "Unrecognised OEM table entry type! - %d\n",
247 (int)*oemptr);
248 return;
249 }
250 }
251}
252
253static int __init numaq_setup_ioapic_ids(void)
254{
255 /* so can skip it */
256 return 1;
257}
258
259static struct x86_quirks numaq_x86_quirks __initdata = {
260 .arch_pre_time_init = numaq_pre_time_init,
261 .arch_time_init = NULL,
262 .arch_pre_intr_init = NULL,
263 .arch_memory_setup = NULL,
264 .arch_intr_init = NULL,
265 .arch_trap_init = NULL,
266 .mach_get_smp_config = NULL,
267 .mach_find_smp_config = NULL,
268 .mpc_record = &mpc_record,
269 .mpc_apic_id = mpc_apic_id,
270 .mpc_oem_bus_info = mpc_oem_bus_info,
271 .mpc_oem_pci_bus = mpc_oem_pci_bus,
272 .smp_read_mpc_oem = smp_read_mpc_oem,
273 .setup_ioapic_ids = numaq_setup_ioapic_ids,
274};
275
276static __init void early_check_numaq(void)
277{
278 /*
279 * Find possible boot-time SMP configuration:
280 */
281 early_find_smp_config();
282
283 /*
284 * get boot-time SMP configuration:
285 */
286 if (smp_found_config)
287 early_get_smp_config();
288
289 if (found_numaq)
290 x86_quirks = &numaq_x86_quirks;
291}
292
293int __init get_memcfg_numaq(void)
294{
295 early_check_numaq();
296 if (!found_numaq)
297 return 0;
298 smp_dump_qct();
299
300 return 1;
301}
302
303#define NUMAQ_APIC_DFR_VALUE (APIC_DFR_CLUSTER)
304
305static inline unsigned int numaq_get_apic_id(unsigned long x)
306{
307 return (x >> 24) & 0x0F;
308}
309
310static inline void numaq_send_IPI_mask(const struct cpumask *mask, int vector)
311{
312 default_send_IPI_mask_sequence_logical(mask, vector);
313}
314
315static inline void numaq_send_IPI_allbutself(int vector)
316{
317 default_send_IPI_mask_allbutself_logical(cpu_online_mask, vector);
318}
319
320static inline void numaq_send_IPI_all(int vector)
321{
322 numaq_send_IPI_mask(cpu_online_mask, vector);
323}
324
325#define NUMAQ_TRAMPOLINE_PHYS_LOW (0x8)
326#define NUMAQ_TRAMPOLINE_PHYS_HIGH (0xa)
327
328/*
329 * Because we use NMIs rather than the INIT-STARTUP sequence to
330 * bootstrap the CPUs, the APIC may be in a weird state. Kick it:
331 */
332static inline void numaq_smp_callin_clear_local_apic(void)
333{
334 clear_local_APIC();
335}
336
337static inline const cpumask_t *numaq_target_cpus(void)
338{
339 return &CPU_MASK_ALL;
340}
341
342static inline unsigned long
343numaq_check_apicid_used(physid_mask_t bitmap, int apicid)
344{
345 return physid_isset(apicid, bitmap);
346}
347
348static inline unsigned long numaq_check_apicid_present(int bit)
349{
350 return physid_isset(bit, phys_cpu_present_map);
351}
352
353static inline int numaq_apic_id_registered(void)
354{
355 return 1;
356}
357
358static inline void numaq_init_apic_ldr(void)
359{
360 /* Already done in NUMA-Q firmware */
361}
362
363static inline void numaq_setup_apic_routing(void)
364{
365 printk(KERN_INFO
366 "Enabling APIC mode: NUMA-Q. Using %d I/O APICs\n",
367 nr_ioapics);
368}
369
370/*
371 * Skip adding the timer int on secondary nodes, which causes
372 * a small but painful rift in the time-space continuum.
373 */
374static inline int numaq_multi_timer_check(int apic, int irq)
375{
376 return apic != 0 && irq == 0;
377}
378
379static inline physid_mask_t numaq_ioapic_phys_id_map(physid_mask_t phys_map)
380{
381 /* We don't have a good way to do this yet - hack */
382 return physids_promote(0xFUL);
383}
384
385static inline int numaq_cpu_to_logical_apicid(int cpu)
386{
387 if (cpu >= nr_cpu_ids)
388 return BAD_APICID;
389 return cpu_2_logical_apicid[cpu];
390}
391
392/*
393 * Supporting over 60 cpus on NUMA-Q requires a locality-dependent
394 * cpu to APIC ID relation to properly interact with the intelligent
395 * mode of the cluster controller.
396 */
397static inline int numaq_cpu_present_to_apicid(int mps_cpu)
398{
399 if (mps_cpu < 60)
400 return ((mps_cpu >> 2) << 4) | (1 << (mps_cpu & 0x3));
401 else
402 return BAD_APICID;
403}
404
405static inline int numaq_apicid_to_node(int logical_apicid)
406{
407 return logical_apicid >> 4;
408}
409
410static inline physid_mask_t numaq_apicid_to_cpu_present(int logical_apicid)
411{
412 int node = numaq_apicid_to_node(logical_apicid);
413 int cpu = __ffs(logical_apicid & 0xf);
414
415 return physid_mask_of_physid(cpu + 4*node);
416}
417
418/* Where the IO area was mapped on multiquad, always 0 otherwise */
419void *xquad_portio;
420
421static inline int numaq_check_phys_apicid_present(int boot_cpu_physical_apicid)
422{
423 return 1;
424}
425
426/*
427 * We use physical apicids here, not logical, so just return the default
428 * physical broadcast to stop people from breaking us
429 */
430static inline unsigned int numaq_cpu_mask_to_apicid(const cpumask_t *cpumask)
431{
432 return 0x0F;
433}
434
435static inline unsigned int
436numaq_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
437 const struct cpumask *andmask)
438{
439 return 0x0F;
440}
441
442/* No NUMA-Q box has a HT CPU, but it can't hurt to use the default code. */
443static inline int numaq_phys_pkg_id(int cpuid_apic, int index_msb)
444{
445 return cpuid_apic >> index_msb;
446}
447
448static int
449numaq_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
450{
451 if (strncmp(oem, "IBM NUMA", 8))
452 printk(KERN_ERR "Warning! Not a NUMA-Q system!\n");
453 else
454 found_numaq = 1;
455
456 return found_numaq;
457}
458
459static int probe_numaq(void)
460{
461 /* already know from get_memcfg_numaq() */
462 return found_numaq;
463}
464
465static void numaq_vector_allocation_domain(int cpu, cpumask_t *retmask)
466{
467 /* Careful. Some cpus do not strictly honor the set of cpus
468 * specified in the interrupt destination when using lowest
469 * priority interrupt delivery mode.
470 *
471 * In particular there was a hyperthreading cpu observed to
472 * deliver interrupts to the wrong hyperthread when only one
473 * hyperthread was specified in the interrupt desitination.
474 */
475 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
476}
477
478static void numaq_setup_portio_remap(void)
479{
480 int num_quads = num_online_nodes();
481
482 if (num_quads <= 1)
483 return;
484
485 printk(KERN_INFO
486 "Remapping cross-quad port I/O for %d quads\n", num_quads);
487
488 xquad_portio = ioremap(XQUAD_PORTIO_BASE, num_quads*XQUAD_PORTIO_QUAD);
489
490 printk(KERN_INFO
491 "xquad_portio vaddr 0x%08lx, len %08lx\n",
492 (u_long) xquad_portio, (u_long) num_quads*XQUAD_PORTIO_QUAD);
493}
494
495struct apic apic_numaq = {
496
497 .name = "NUMAQ",
498 .probe = probe_numaq,
499 .acpi_madt_oem_check = NULL,
500 .apic_id_registered = numaq_apic_id_registered,
501
502 .irq_delivery_mode = dest_LowestPrio,
503 /* physical delivery on LOCAL quad: */
504 .irq_dest_mode = 0,
505
506 .target_cpus = numaq_target_cpus,
507 .disable_esr = 1,
508 .dest_logical = APIC_DEST_LOGICAL,
509 .check_apicid_used = numaq_check_apicid_used,
510 .check_apicid_present = numaq_check_apicid_present,
511
512 .vector_allocation_domain = numaq_vector_allocation_domain,
513 .init_apic_ldr = numaq_init_apic_ldr,
514
515 .ioapic_phys_id_map = numaq_ioapic_phys_id_map,
516 .setup_apic_routing = numaq_setup_apic_routing,
517 .multi_timer_check = numaq_multi_timer_check,
518 .apicid_to_node = numaq_apicid_to_node,
519 .cpu_to_logical_apicid = numaq_cpu_to_logical_apicid,
520 .cpu_present_to_apicid = numaq_cpu_present_to_apicid,
521 .apicid_to_cpu_present = numaq_apicid_to_cpu_present,
522 .setup_portio_remap = numaq_setup_portio_remap,
523 .check_phys_apicid_present = numaq_check_phys_apicid_present,
524 .enable_apic_mode = NULL,
525 .phys_pkg_id = numaq_phys_pkg_id,
526 .mps_oem_check = numaq_mps_oem_check,
527
528 .get_apic_id = numaq_get_apic_id,
529 .set_apic_id = NULL,
530 .apic_id_mask = 0x0F << 24,
531
532 .cpu_mask_to_apicid = numaq_cpu_mask_to_apicid,
533 .cpu_mask_to_apicid_and = numaq_cpu_mask_to_apicid_and,
534
535 .send_IPI_mask = numaq_send_IPI_mask,
536 .send_IPI_mask_allbutself = NULL,
537 .send_IPI_allbutself = numaq_send_IPI_allbutself,
538 .send_IPI_all = numaq_send_IPI_all,
539 .send_IPI_self = default_send_IPI_self,
540
541 .wakeup_secondary_cpu = wakeup_secondary_cpu_via_nmi,
542 .trampoline_phys_low = NUMAQ_TRAMPOLINE_PHYS_LOW,
543 .trampoline_phys_high = NUMAQ_TRAMPOLINE_PHYS_HIGH,
544
545 /* We don't do anything here because we use NMI's to boot instead */
546 .wait_for_init_deassert = NULL,
547
548 .smp_callin_clear_local_apic = numaq_smp_callin_clear_local_apic,
549 .inquire_remote_apic = NULL,
550
551 .read = native_apic_mem_read,
552 .write = native_apic_mem_write,
553 .icr_read = native_apic_icr_read,
554 .icr_write = native_apic_icr_write,
555 .wait_icr_idle = native_apic_wait_icr_idle,
556 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
557};
diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
new file mode 100644
index 000000000000..141c99a1c264
--- /dev/null
+++ b/arch/x86/kernel/apic/probe_32.c
@@ -0,0 +1,284 @@
1/*
2 * Default generic APIC driver. This handles up to 8 CPUs.
3 *
4 * Copyright 2003 Andi Kleen, SuSE Labs.
5 * Subject to the GNU Public License, v.2
6 *
7 * Generic x86 APIC driver probe layer.
8 */
9#include <linux/threads.h>
10#include <linux/cpumask.h>
11#include <linux/module.h>
12#include <linux/string.h>
13#include <linux/kernel.h>
14#include <linux/ctype.h>
15#include <linux/init.h>
16#include <linux/errno.h>
17#include <asm/fixmap.h>
18#include <asm/mpspec.h>
19#include <asm/apicdef.h>
20#include <asm/apic.h>
21#include <asm/setup.h>
22
23#include <linux/threads.h>
24#include <linux/cpumask.h>
25#include <asm/mpspec.h>
26#include <asm/fixmap.h>
27#include <asm/apicdef.h>
28#include <linux/kernel.h>
29#include <linux/string.h>
30#include <linux/smp.h>
31#include <linux/init.h>
32#include <asm/ipi.h>
33
34#include <linux/smp.h>
35#include <linux/init.h>
36#include <linux/interrupt.h>
37#include <asm/acpi.h>
38#include <asm/e820.h>
39#include <asm/setup.h>
40
41#ifdef CONFIG_HOTPLUG_CPU
42#define DEFAULT_SEND_IPI (1)
43#else
44#define DEFAULT_SEND_IPI (0)
45#endif
46
47int no_broadcast = DEFAULT_SEND_IPI;
48
49static __init int no_ipi_broadcast(char *str)
50{
51 get_option(&str, &no_broadcast);
52 pr_info("Using %s mode\n",
53 no_broadcast ? "No IPI Broadcast" : "IPI Broadcast");
54 return 1;
55}
56__setup("no_ipi_broadcast=", no_ipi_broadcast);
57
58static int __init print_ipi_mode(void)
59{
60 pr_info("Using IPI %s mode\n",
61 no_broadcast ? "No-Shortcut" : "Shortcut");
62 return 0;
63}
64late_initcall(print_ipi_mode);
65
66void default_setup_apic_routing(void)
67{
68#ifdef CONFIG_X86_IO_APIC
69 printk(KERN_INFO
70 "Enabling APIC mode: Flat. Using %d I/O APICs\n",
71 nr_ioapics);
72#endif
73}
74
75static void default_vector_allocation_domain(int cpu, struct cpumask *retmask)
76{
77 /*
78 * Careful. Some cpus do not strictly honor the set of cpus
79 * specified in the interrupt destination when using lowest
80 * priority interrupt delivery mode.
81 *
82 * In particular there was a hyperthreading cpu observed to
83 * deliver interrupts to the wrong hyperthread when only one
84 * hyperthread was specified in the interrupt desitination.
85 */
86 *retmask = (cpumask_t) { { [0] = APIC_ALL_CPUS } };
87}
88
89/* should be called last. */
90static int probe_default(void)
91{
92 return 1;
93}
94
95struct apic apic_default = {
96
97 .name = "default",
98 .probe = probe_default,
99 .acpi_madt_oem_check = NULL,
100 .apic_id_registered = default_apic_id_registered,
101
102 .irq_delivery_mode = dest_LowestPrio,
103 /* logical delivery broadcast to all CPUs: */
104 .irq_dest_mode = 1,
105
106 .target_cpus = default_target_cpus,
107 .disable_esr = 0,
108 .dest_logical = APIC_DEST_LOGICAL,
109 .check_apicid_used = default_check_apicid_used,
110 .check_apicid_present = default_check_apicid_present,
111
112 .vector_allocation_domain = default_vector_allocation_domain,
113 .init_apic_ldr = default_init_apic_ldr,
114
115 .ioapic_phys_id_map = default_ioapic_phys_id_map,
116 .setup_apic_routing = default_setup_apic_routing,
117 .multi_timer_check = NULL,
118 .apicid_to_node = default_apicid_to_node,
119 .cpu_to_logical_apicid = default_cpu_to_logical_apicid,
120 .cpu_present_to_apicid = default_cpu_present_to_apicid,
121 .apicid_to_cpu_present = default_apicid_to_cpu_present,
122 .setup_portio_remap = NULL,
123 .check_phys_apicid_present = default_check_phys_apicid_present,
124 .enable_apic_mode = NULL,
125 .phys_pkg_id = default_phys_pkg_id,
126 .mps_oem_check = NULL,
127
128 .get_apic_id = default_get_apic_id,
129 .set_apic_id = NULL,
130 .apic_id_mask = 0x0F << 24,
131
132 .cpu_mask_to_apicid = default_cpu_mask_to_apicid,
133 .cpu_mask_to_apicid_and = default_cpu_mask_to_apicid_and,
134
135 .send_IPI_mask = default_send_IPI_mask_logical,
136 .send_IPI_mask_allbutself = default_send_IPI_mask_allbutself_logical,
137 .send_IPI_allbutself = default_send_IPI_allbutself,
138 .send_IPI_all = default_send_IPI_all,
139 .send_IPI_self = default_send_IPI_self,
140
141 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
142 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
143
144 .wait_for_init_deassert = default_wait_for_init_deassert,
145
146 .smp_callin_clear_local_apic = NULL,
147 .inquire_remote_apic = default_inquire_remote_apic,
148
149 .read = native_apic_mem_read,
150 .write = native_apic_mem_write,
151 .icr_read = native_apic_icr_read,
152 .icr_write = native_apic_icr_write,
153 .wait_icr_idle = native_apic_wait_icr_idle,
154 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
155};
156
157extern struct apic apic_numaq;
158extern struct apic apic_summit;
159extern struct apic apic_bigsmp;
160extern struct apic apic_es7000;
161extern struct apic apic_es7000_cluster;
162extern struct apic apic_default;
163
164struct apic *apic = &apic_default;
165EXPORT_SYMBOL_GPL(apic);
166
167static struct apic *apic_probe[] __initdata = {
168#ifdef CONFIG_X86_NUMAQ
169 &apic_numaq,
170#endif
171#ifdef CONFIG_X86_SUMMIT
172 &apic_summit,
173#endif
174#ifdef CONFIG_X86_BIGSMP
175 &apic_bigsmp,
176#endif
177#ifdef CONFIG_X86_ES7000
178 &apic_es7000,
179 &apic_es7000_cluster,
180#endif
181 &apic_default, /* must be last */
182 NULL,
183};
184
185static int cmdline_apic __initdata;
186static int __init parse_apic(char *arg)
187{
188 int i;
189
190 if (!arg)
191 return -EINVAL;
192
193 for (i = 0; apic_probe[i]; i++) {
194 if (!strcmp(apic_probe[i]->name, arg)) {
195 apic = apic_probe[i];
196 cmdline_apic = 1;
197 return 0;
198 }
199 }
200
201 /* Parsed again by __setup for debug/verbose */
202 return 0;
203}
204early_param("apic", parse_apic);
205
206void __init generic_bigsmp_probe(void)
207{
208#ifdef CONFIG_X86_BIGSMP
209 /*
210 * This routine is used to switch to bigsmp mode when
211 * - There is no apic= option specified by the user
212 * - generic_apic_probe() has chosen apic_default as the sub_arch
213 * - we find more than 8 CPUs in acpi LAPIC listing with xAPIC support
214 */
215
216 if (!cmdline_apic && apic == &apic_default) {
217 if (apic_bigsmp.probe()) {
218 apic = &apic_bigsmp;
219 printk(KERN_INFO "Overriding APIC driver with %s\n",
220 apic->name);
221 }
222 }
223#endif
224}
225
226void __init generic_apic_probe(void)
227{
228 if (!cmdline_apic) {
229 int i;
230 for (i = 0; apic_probe[i]; i++) {
231 if (apic_probe[i]->probe()) {
232 apic = apic_probe[i];
233 break;
234 }
235 }
236 /* Not visible without early console */
237 if (!apic_probe[i])
238 panic("Didn't find an APIC driver");
239 }
240 printk(KERN_INFO "Using APIC driver %s\n", apic->name);
241}
242
243/* These functions can switch the APIC even after the initial ->probe() */
244
245int __init
246generic_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
247{
248 int i;
249
250 for (i = 0; apic_probe[i]; ++i) {
251 if (!apic_probe[i]->mps_oem_check)
252 continue;
253 if (!apic_probe[i]->mps_oem_check(mpc, oem, productid))
254 continue;
255
256 if (!cmdline_apic) {
257 apic = apic_probe[i];
258 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
259 apic->name);
260 }
261 return 1;
262 }
263 return 0;
264}
265
266int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
267{
268 int i;
269
270 for (i = 0; apic_probe[i]; ++i) {
271 if (!apic_probe[i]->acpi_madt_oem_check)
272 continue;
273 if (!apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id))
274 continue;
275
276 if (!cmdline_apic) {
277 apic = apic_probe[i];
278 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
279 apic->name);
280 }
281 return 1;
282 }
283 return 0;
284}
diff --git a/arch/x86/kernel/genapic_64.c b/arch/x86/kernel/apic/probe_64.c
index 2bced78b0b8e..8d7748efe6a8 100644
--- a/arch/x86/kernel/genapic_64.c
+++ b/arch/x86/kernel/apic/probe_64.c
@@ -19,22 +19,27 @@
19#include <linux/dmar.h> 19#include <linux/dmar.h>
20 20
21#include <asm/smp.h> 21#include <asm/smp.h>
22#include <asm/apic.h>
22#include <asm/ipi.h> 23#include <asm/ipi.h>
23#include <asm/genapic.h>
24#include <asm/setup.h> 24#include <asm/setup.h>
25 25
26extern struct genapic apic_flat; 26extern struct apic apic_flat;
27extern struct genapic apic_physflat; 27extern struct apic apic_physflat;
28extern struct genapic apic_x2xpic_uv_x; 28extern struct apic apic_x2xpic_uv_x;
29extern struct genapic apic_x2apic_phys; 29extern struct apic apic_x2apic_phys;
30extern struct genapic apic_x2apic_cluster; 30extern struct apic apic_x2apic_cluster;
31 31
32struct genapic __read_mostly *genapic = &apic_flat; 32struct apic __read_mostly *apic = &apic_flat;
33EXPORT_SYMBOL_GPL(apic);
33 34
34static struct genapic *apic_probe[] __initdata = { 35static struct apic *apic_probe[] __initdata = {
36#ifdef CONFIG_X86_UV
35 &apic_x2apic_uv_x, 37 &apic_x2apic_uv_x,
38#endif
39#ifdef CONFIG_X86_X2APIC
36 &apic_x2apic_phys, 40 &apic_x2apic_phys,
37 &apic_x2apic_cluster, 41 &apic_x2apic_cluster,
42#endif
38 &apic_physflat, 43 &apic_physflat,
39 NULL, 44 NULL,
40}; 45};
@@ -42,39 +47,45 @@ static struct genapic *apic_probe[] __initdata = {
42/* 47/*
43 * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode. 48 * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
44 */ 49 */
45void __init setup_apic_routing(void) 50void __init default_setup_apic_routing(void)
46{ 51{
47 if (genapic == &apic_x2apic_phys || genapic == &apic_x2apic_cluster) { 52#ifdef CONFIG_X86_X2APIC
48 if (!intr_remapping_enabled) 53 if (x2apic && (apic != &apic_x2apic_phys &&
49 genapic = &apic_flat; 54#ifdef CONFIG_X86_UV
55 apic != &apic_x2apic_uv_x &&
56#endif
57 apic != &apic_x2apic_cluster)) {
58 if (x2apic_phys)
59 apic = &apic_x2apic_phys;
60 else
61 apic = &apic_x2apic_cluster;
62 printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
50 } 63 }
64#endif
51 65
52 if (genapic == &apic_flat) { 66 if (apic == &apic_flat) {
53 if (max_physical_apicid >= 8) 67 if (max_physical_apicid >= 8)
54 genapic = &apic_physflat; 68 apic = &apic_physflat;
55 printk(KERN_INFO "Setting APIC routing to %s\n", genapic->name); 69 printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
56 } 70 }
57
58 if (x86_quirks->update_genapic)
59 x86_quirks->update_genapic();
60} 71}
61 72
62/* Same for both flat and physical. */ 73/* Same for both flat and physical. */
63 74
64void apic_send_IPI_self(int vector) 75void apic_send_IPI_self(int vector)
65{ 76{
66 __send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); 77 __default_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
67} 78}
68 79
69int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) 80int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
70{ 81{
71 int i; 82 int i;
72 83
73 for (i = 0; apic_probe[i]; ++i) { 84 for (i = 0; apic_probe[i]; ++i) {
74 if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) { 85 if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) {
75 genapic = apic_probe[i]; 86 apic = apic_probe[i];
76 printk(KERN_INFO "Setting APIC routing to %s.\n", 87 printk(KERN_INFO "Setting APIC routing to %s.\n",
77 genapic->name); 88 apic->name);
78 return 1; 89 return 1;
79 } 90 }
80 } 91 }
diff --git a/arch/x86/kernel/apic/summit_32.c b/arch/x86/kernel/apic/summit_32.c
new file mode 100644
index 000000000000..aac52fa873ff
--- /dev/null
+++ b/arch/x86/kernel/apic/summit_32.c
@@ -0,0 +1,579 @@
1/*
2 * IBM Summit-Specific Code
3 *
4 * Written By: Matthew Dobson, IBM Corporation
5 *
6 * Copyright (c) 2003 IBM Corp.
7 *
8 * All rights reserved.
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 as published by
12 * the Free Software Foundation; either version 2 of the License, or (at
13 * your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
18 * NON INFRINGEMENT. See the GNU General Public License for more
19 * details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *
25 * Send feedback to <colpatch@us.ibm.com>
26 *
27 */
28
29#include <linux/mm.h>
30#include <linux/init.h>
31#include <asm/io.h>
32#include <asm/bios_ebda.h>
33
34/*
35 * APIC driver for the IBM "Summit" chipset.
36 */
37#include <linux/threads.h>
38#include <linux/cpumask.h>
39#include <asm/mpspec.h>
40#include <asm/apic.h>
41#include <asm/smp.h>
42#include <asm/fixmap.h>
43#include <asm/apicdef.h>
44#include <asm/ipi.h>
45#include <linux/kernel.h>
46#include <linux/string.h>
47#include <linux/init.h>
48#include <linux/gfp.h>
49#include <linux/smp.h>
50
51static unsigned summit_get_apic_id(unsigned long x)
52{
53 return (x >> 24) & 0xFF;
54}
55
56static inline void summit_send_IPI_mask(const cpumask_t *mask, int vector)
57{
58 default_send_IPI_mask_sequence_logical(mask, vector);
59}
60
61static void summit_send_IPI_allbutself(int vector)
62{
63 cpumask_t mask = cpu_online_map;
64 cpu_clear(smp_processor_id(), mask);
65
66 if (!cpus_empty(mask))
67 summit_send_IPI_mask(&mask, vector);
68}
69
70static void summit_send_IPI_all(int vector)
71{
72 summit_send_IPI_mask(&cpu_online_map, vector);
73}
74
75#include <asm/tsc.h>
76
77extern int use_cyclone;
78
79#ifdef CONFIG_X86_SUMMIT_NUMA
80static void setup_summit(void);
81#else
82static inline void setup_summit(void) {}
83#endif
84
85static int summit_mps_oem_check(struct mpc_table *mpc, char *oem,
86 char *productid)
87{
88 if (!strncmp(oem, "IBM ENSW", 8) &&
89 (!strncmp(productid, "VIGIL SMP", 9)
90 || !strncmp(productid, "EXA", 3)
91 || !strncmp(productid, "RUTHLESS SMP", 12))){
92 mark_tsc_unstable("Summit based system");
93 use_cyclone = 1; /*enable cyclone-timer*/
94 setup_summit();
95 return 1;
96 }
97 return 0;
98}
99
100/* Hook from generic ACPI tables.c */
101static int summit_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
102{
103 if (!strncmp(oem_id, "IBM", 3) &&
104 (!strncmp(oem_table_id, "SERVIGIL", 8)
105 || !strncmp(oem_table_id, "EXA", 3))){
106 mark_tsc_unstable("Summit based system");
107 use_cyclone = 1; /*enable cyclone-timer*/
108 setup_summit();
109 return 1;
110 }
111 return 0;
112}
113
114struct rio_table_hdr {
115 unsigned char version; /* Version number of this data structure */
116 /* Version 3 adds chassis_num & WP_index */
117 unsigned char num_scal_dev; /* # of Scalability devices (Twisters for Vigil) */
118 unsigned char num_rio_dev; /* # of RIO I/O devices (Cyclones and Winnipegs) */
119} __attribute__((packed));
120
121struct scal_detail {
122 unsigned char node_id; /* Scalability Node ID */
123 unsigned long CBAR; /* Address of 1MB register space */
124 unsigned char port0node; /* Node ID port connected to: 0xFF=None */
125 unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */
126 unsigned char port1node; /* Node ID port connected to: 0xFF = None */
127 unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */
128 unsigned char port2node; /* Node ID port connected to: 0xFF = None */
129 unsigned char port2port; /* Port num port connected to: 0,1,2, or 0xFF=None */
130 unsigned char chassis_num; /* 1 based Chassis number (1 = boot node) */
131} __attribute__((packed));
132
133struct rio_detail {
134 unsigned char node_id; /* RIO Node ID */
135 unsigned long BBAR; /* Address of 1MB register space */
136 unsigned char type; /* Type of device */
137 unsigned char owner_id; /* For WPEG: Node ID of Cyclone that owns this WPEG*/
138 /* For CYC: Node ID of Twister that owns this CYC */
139 unsigned char port0node; /* Node ID port connected to: 0xFF=None */
140 unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */
141 unsigned char port1node; /* Node ID port connected to: 0xFF=None */
142 unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */
143 unsigned char first_slot; /* For WPEG: Lowest slot number below this WPEG */
144 /* For CYC: 0 */
145 unsigned char status; /* For WPEG: Bit 0 = 1 : the XAPIC is used */
146 /* = 0 : the XAPIC is not used, ie:*/
147 /* ints fwded to another XAPIC */
148 /* Bits1:7 Reserved */
149 /* For CYC: Bits0:7 Reserved */
150 unsigned char WP_index; /* For WPEG: WPEG instance index - lower ones have */
151 /* lower slot numbers/PCI bus numbers */
152 /* For CYC: No meaning */
153 unsigned char chassis_num; /* 1 based Chassis number */
154 /* For LookOut WPEGs this field indicates the */
155 /* Expansion Chassis #, enumerated from Boot */
156 /* Node WPEG external port, then Boot Node CYC */
157 /* external port, then Next Vigil chassis WPEG */
158 /* external port, etc. */
159 /* Shared Lookouts have only 1 chassis number (the */
160 /* first one assigned) */
161} __attribute__((packed));
162
163
164typedef enum {
165 CompatTwister = 0, /* Compatibility Twister */
166 AltTwister = 1, /* Alternate Twister of internal 8-way */
167 CompatCyclone = 2, /* Compatibility Cyclone */
168 AltCyclone = 3, /* Alternate Cyclone of internal 8-way */
169 CompatWPEG = 4, /* Compatibility WPEG */
170 AltWPEG = 5, /* Second Planar WPEG */
171 LookOutAWPEG = 6, /* LookOut WPEG */
172 LookOutBWPEG = 7, /* LookOut WPEG */
173} node_type;
174
175static inline int is_WPEG(struct rio_detail *rio){
176 return (rio->type == CompatWPEG || rio->type == AltWPEG ||
177 rio->type == LookOutAWPEG || rio->type == LookOutBWPEG);
178}
179
180
181/* In clustered mode, the high nibble of APIC ID is a cluster number.
182 * The low nibble is a 4-bit bitmap. */
183#define XAPIC_DEST_CPUS_SHIFT 4
184#define XAPIC_DEST_CPUS_MASK ((1u << XAPIC_DEST_CPUS_SHIFT) - 1)
185#define XAPIC_DEST_CLUSTER_MASK (XAPIC_DEST_CPUS_MASK << XAPIC_DEST_CPUS_SHIFT)
186
187#define SUMMIT_APIC_DFR_VALUE (APIC_DFR_CLUSTER)
188
189static const cpumask_t *summit_target_cpus(void)
190{
191 /* CPU_MASK_ALL (0xff) has undefined behaviour with
192 * dest_LowestPrio mode logical clustered apic interrupt routing
193 * Just start on cpu 0. IRQ balancing will spread load
194 */
195 return &cpumask_of_cpu(0);
196}
197
198static unsigned long summit_check_apicid_used(physid_mask_t bitmap, int apicid)
199{
200 return 0;
201}
202
203/* we don't use the phys_cpu_present_map to indicate apicid presence */
204static unsigned long summit_check_apicid_present(int bit)
205{
206 return 1;
207}
208
209static void summit_init_apic_ldr(void)
210{
211 unsigned long val, id;
212 int count = 0;
213 u8 my_id = (u8)hard_smp_processor_id();
214 u8 my_cluster = APIC_CLUSTER(my_id);
215#ifdef CONFIG_SMP
216 u8 lid;
217 int i;
218
219 /* Create logical APIC IDs by counting CPUs already in cluster. */
220 for (count = 0, i = nr_cpu_ids; --i >= 0; ) {
221 lid = cpu_2_logical_apicid[i];
222 if (lid != BAD_APICID && APIC_CLUSTER(lid) == my_cluster)
223 ++count;
224 }
225#endif
226 /* We only have a 4 wide bitmap in cluster mode. If a deranged
227 * BIOS puts 5 CPUs in one APIC cluster, we're hosed. */
228 BUG_ON(count >= XAPIC_DEST_CPUS_SHIFT);
229 id = my_cluster | (1UL << count);
230 apic_write(APIC_DFR, SUMMIT_APIC_DFR_VALUE);
231 val = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
232 val |= SET_APIC_LOGICAL_ID(id);
233 apic_write(APIC_LDR, val);
234}
235
236static int summit_apic_id_registered(void)
237{
238 return 1;
239}
240
241static void summit_setup_apic_routing(void)
242{
243 printk("Enabling APIC mode: Summit. Using %d I/O APICs\n",
244 nr_ioapics);
245}
246
247static int summit_apicid_to_node(int logical_apicid)
248{
249#ifdef CONFIG_SMP
250 return apicid_2_node[hard_smp_processor_id()];
251#else
252 return 0;
253#endif
254}
255
256/* Mapping from cpu number to logical apicid */
257static inline int summit_cpu_to_logical_apicid(int cpu)
258{
259#ifdef CONFIG_SMP
260 if (cpu >= nr_cpu_ids)
261 return BAD_APICID;
262 return cpu_2_logical_apicid[cpu];
263#else
264 return logical_smp_processor_id();
265#endif
266}
267
268static int summit_cpu_present_to_apicid(int mps_cpu)
269{
270 if (mps_cpu < nr_cpu_ids)
271 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
272 else
273 return BAD_APICID;
274}
275
276static physid_mask_t summit_ioapic_phys_id_map(physid_mask_t phys_id_map)
277{
278 /* For clustered we don't have a good way to do this yet - hack */
279 return physids_promote(0x0F);
280}
281
282static physid_mask_t summit_apicid_to_cpu_present(int apicid)
283{
284 return physid_mask_of_physid(0);
285}
286
287static int summit_check_phys_apicid_present(int boot_cpu_physical_apicid)
288{
289 return 1;
290}
291
292static unsigned int summit_cpu_mask_to_apicid(const cpumask_t *cpumask)
293{
294 unsigned int round = 0;
295 int cpu, apicid = 0;
296
297 /*
298 * The cpus in the mask must all be on the apic cluster.
299 */
300 for_each_cpu(cpu, cpumask) {
301 int new_apicid = summit_cpu_to_logical_apicid(cpu);
302
303 if (round && APIC_CLUSTER(apicid) != APIC_CLUSTER(new_apicid)) {
304 printk("%s: Not a valid mask!\n", __func__);
305 return BAD_APICID;
306 }
307 apicid |= new_apicid;
308 round++;
309 }
310 return apicid;
311}
312
313static unsigned int summit_cpu_mask_to_apicid_and(const struct cpumask *inmask,
314 const struct cpumask *andmask)
315{
316 int apicid = summit_cpu_to_logical_apicid(0);
317 cpumask_var_t cpumask;
318
319 if (!alloc_cpumask_var(&cpumask, GFP_ATOMIC))
320 return apicid;
321
322 cpumask_and(cpumask, inmask, andmask);
323 cpumask_and(cpumask, cpumask, cpu_online_mask);
324 apicid = summit_cpu_mask_to_apicid(cpumask);
325
326 free_cpumask_var(cpumask);
327
328 return apicid;
329}
330
331/*
332 * cpuid returns the value latched in the HW at reset, not the APIC ID
333 * register's value. For any box whose BIOS changes APIC IDs, like
334 * clustered APIC systems, we must use hard_smp_processor_id.
335 *
336 * See Intel's IA-32 SW Dev's Manual Vol2 under CPUID.
337 */
338static int summit_phys_pkg_id(int cpuid_apic, int index_msb)
339{
340 return hard_smp_processor_id() >> index_msb;
341}
342
343static int probe_summit(void)
344{
345 /* probed later in mptable/ACPI hooks */
346 return 0;
347}
348
349static void summit_vector_allocation_domain(int cpu, cpumask_t *retmask)
350{
351 /* Careful. Some cpus do not strictly honor the set of cpus
352 * specified in the interrupt destination when using lowest
353 * priority interrupt delivery mode.
354 *
355 * In particular there was a hyperthreading cpu observed to
356 * deliver interrupts to the wrong hyperthread when only one
357 * hyperthread was specified in the interrupt desitination.
358 */
359 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
360}
361
362#ifdef CONFIG_X86_SUMMIT_NUMA
363static struct rio_table_hdr *rio_table_hdr;
364static struct scal_detail *scal_devs[MAX_NUMNODES];
365static struct rio_detail *rio_devs[MAX_NUMNODES*4];
366
367#ifndef CONFIG_X86_NUMAQ
368static int mp_bus_id_to_node[MAX_MP_BUSSES];
369#endif
370
371static int setup_pci_node_map_for_wpeg(int wpeg_num, int last_bus)
372{
373 int twister = 0, node = 0;
374 int i, bus, num_buses;
375
376 for (i = 0; i < rio_table_hdr->num_rio_dev; i++) {
377 if (rio_devs[i]->node_id == rio_devs[wpeg_num]->owner_id) {
378 twister = rio_devs[i]->owner_id;
379 break;
380 }
381 }
382 if (i == rio_table_hdr->num_rio_dev) {
383 printk(KERN_ERR "%s: Couldn't find owner Cyclone for Winnipeg!\n", __func__);
384 return last_bus;
385 }
386
387 for (i = 0; i < rio_table_hdr->num_scal_dev; i++) {
388 if (scal_devs[i]->node_id == twister) {
389 node = scal_devs[i]->node_id;
390 break;
391 }
392 }
393 if (i == rio_table_hdr->num_scal_dev) {
394 printk(KERN_ERR "%s: Couldn't find owner Twister for Cyclone!\n", __func__);
395 return last_bus;
396 }
397
398 switch (rio_devs[wpeg_num]->type) {
399 case CompatWPEG:
400 /*
401 * The Compatibility Winnipeg controls the 2 legacy buses,
402 * the 66MHz PCI bus [2 slots] and the 2 "extra" buses in case
403 * a PCI-PCI bridge card is used in either slot: total 5 buses.
404 */
405 num_buses = 5;
406 break;
407 case AltWPEG:
408 /*
409 * The Alternate Winnipeg controls the 2 133MHz buses [1 slot
410 * each], their 2 "extra" buses, the 100MHz bus [2 slots] and
411 * the "extra" buses for each of those slots: total 7 buses.
412 */
413 num_buses = 7;
414 break;
415 case LookOutAWPEG:
416 case LookOutBWPEG:
417 /*
418 * A Lookout Winnipeg controls 3 100MHz buses [2 slots each]
419 * & the "extra" buses for each of those slots: total 9 buses.
420 */
421 num_buses = 9;
422 break;
423 default:
424 printk(KERN_INFO "%s: Unsupported Winnipeg type!\n", __func__);
425 return last_bus;
426 }
427
428 for (bus = last_bus; bus < last_bus + num_buses; bus++)
429 mp_bus_id_to_node[bus] = node;
430 return bus;
431}
432
433static int build_detail_arrays(void)
434{
435 unsigned long ptr;
436 int i, scal_detail_size, rio_detail_size;
437
438 if (rio_table_hdr->num_scal_dev > MAX_NUMNODES) {
439 printk(KERN_WARNING "%s: MAX_NUMNODES too low! Defined as %d, but system has %d nodes.\n", __func__, MAX_NUMNODES, rio_table_hdr->num_scal_dev);
440 return 0;
441 }
442
443 switch (rio_table_hdr->version) {
444 default:
445 printk(KERN_WARNING "%s: Invalid Rio Grande Table Version: %d\n", __func__, rio_table_hdr->version);
446 return 0;
447 case 2:
448 scal_detail_size = 11;
449 rio_detail_size = 13;
450 break;
451 case 3:
452 scal_detail_size = 12;
453 rio_detail_size = 15;
454 break;
455 }
456
457 ptr = (unsigned long)rio_table_hdr + 3;
458 for (i = 0; i < rio_table_hdr->num_scal_dev; i++, ptr += scal_detail_size)
459 scal_devs[i] = (struct scal_detail *)ptr;
460
461 for (i = 0; i < rio_table_hdr->num_rio_dev; i++, ptr += rio_detail_size)
462 rio_devs[i] = (struct rio_detail *)ptr;
463
464 return 1;
465}
466
467void setup_summit(void)
468{
469 unsigned long ptr;
470 unsigned short offset;
471 int i, next_wpeg, next_bus = 0;
472
473 /* The pointer to the EBDA is stored in the word @ phys 0x40E(40:0E) */
474 ptr = get_bios_ebda();
475 ptr = (unsigned long)phys_to_virt(ptr);
476
477 rio_table_hdr = NULL;
478 offset = 0x180;
479 while (offset) {
480 /* The block id is stored in the 2nd word */
481 if (*((unsigned short *)(ptr + offset + 2)) == 0x4752) {
482 /* set the pointer past the offset & block id */
483 rio_table_hdr = (struct rio_table_hdr *)(ptr + offset + 4);
484 break;
485 }
486 /* The next offset is stored in the 1st word. 0 means no more */
487 offset = *((unsigned short *)(ptr + offset));
488 }
489 if (!rio_table_hdr) {
490 printk(KERN_ERR "%s: Unable to locate Rio Grande Table in EBDA - bailing!\n", __func__);
491 return;
492 }
493
494 if (!build_detail_arrays())
495 return;
496
497 /* The first Winnipeg we're looking for has an index of 0 */
498 next_wpeg = 0;
499 do {
500 for (i = 0; i < rio_table_hdr->num_rio_dev; i++) {
501 if (is_WPEG(rio_devs[i]) && rio_devs[i]->WP_index == next_wpeg) {
502 /* It's the Winnipeg we're looking for! */
503 next_bus = setup_pci_node_map_for_wpeg(i, next_bus);
504 next_wpeg++;
505 break;
506 }
507 }
508 /*
509 * If we go through all Rio devices and don't find one with
510 * the next index, it means we've found all the Winnipegs,
511 * and thus all the PCI buses.
512 */
513 if (i == rio_table_hdr->num_rio_dev)
514 next_wpeg = 0;
515 } while (next_wpeg != 0);
516}
517#endif
518
519struct apic apic_summit = {
520
521 .name = "summit",
522 .probe = probe_summit,
523 .acpi_madt_oem_check = summit_acpi_madt_oem_check,
524 .apic_id_registered = summit_apic_id_registered,
525
526 .irq_delivery_mode = dest_LowestPrio,
527 /* logical delivery broadcast to all CPUs: */
528 .irq_dest_mode = 1,
529
530 .target_cpus = summit_target_cpus,
531 .disable_esr = 1,
532 .dest_logical = APIC_DEST_LOGICAL,
533 .check_apicid_used = summit_check_apicid_used,
534 .check_apicid_present = summit_check_apicid_present,
535
536 .vector_allocation_domain = summit_vector_allocation_domain,
537 .init_apic_ldr = summit_init_apic_ldr,
538
539 .ioapic_phys_id_map = summit_ioapic_phys_id_map,
540 .setup_apic_routing = summit_setup_apic_routing,
541 .multi_timer_check = NULL,
542 .apicid_to_node = summit_apicid_to_node,
543 .cpu_to_logical_apicid = summit_cpu_to_logical_apicid,
544 .cpu_present_to_apicid = summit_cpu_present_to_apicid,
545 .apicid_to_cpu_present = summit_apicid_to_cpu_present,
546 .setup_portio_remap = NULL,
547 .check_phys_apicid_present = summit_check_phys_apicid_present,
548 .enable_apic_mode = NULL,
549 .phys_pkg_id = summit_phys_pkg_id,
550 .mps_oem_check = summit_mps_oem_check,
551
552 .get_apic_id = summit_get_apic_id,
553 .set_apic_id = NULL,
554 .apic_id_mask = 0xFF << 24,
555
556 .cpu_mask_to_apicid = summit_cpu_mask_to_apicid,
557 .cpu_mask_to_apicid_and = summit_cpu_mask_to_apicid_and,
558
559 .send_IPI_mask = summit_send_IPI_mask,
560 .send_IPI_mask_allbutself = NULL,
561 .send_IPI_allbutself = summit_send_IPI_allbutself,
562 .send_IPI_all = summit_send_IPI_all,
563 .send_IPI_self = default_send_IPI_self,
564
565 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
566 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
567
568 .wait_for_init_deassert = default_wait_for_init_deassert,
569
570 .smp_callin_clear_local_apic = NULL,
571 .inquire_remote_apic = default_inquire_remote_apic,
572
573 .read = native_apic_mem_read,
574 .write = native_apic_mem_write,
575 .icr_read = native_apic_icr_read,
576 .icr_write = native_apic_icr_write,
577 .wait_icr_idle = native_apic_wait_icr_idle,
578 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
579};
diff --git a/arch/x86/kernel/genx2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
index 6ce497cc372d..8fb87b6dd633 100644
--- a/arch/x86/kernel/genx2apic_cluster.c
+++ b/arch/x86/kernel/apic/x2apic_cluster.c
@@ -7,17 +7,14 @@
7#include <linux/dmar.h> 7#include <linux/dmar.h>
8 8
9#include <asm/smp.h> 9#include <asm/smp.h>
10#include <asm/apic.h>
10#include <asm/ipi.h> 11#include <asm/ipi.h>
11#include <asm/genapic.h>
12 12
13DEFINE_PER_CPU(u32, x86_cpu_to_logical_apicid); 13DEFINE_PER_CPU(u32, x86_cpu_to_logical_apicid);
14 14
15static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 15static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
16{ 16{
17 if (cpu_has_x2apic) 17 return x2apic_enabled();
18 return 1;
19
20 return 0;
21} 18}
22 19
23/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ 20/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */
@@ -36,8 +33,8 @@ static void x2apic_vector_allocation_domain(int cpu, struct cpumask *retmask)
36 cpumask_set_cpu(cpu, retmask); 33 cpumask_set_cpu(cpu, retmask);
37} 34}
38 35
39static void __x2apic_send_IPI_dest(unsigned int apicid, int vector, 36static void
40 unsigned int dest) 37 __x2apic_send_IPI_dest(unsigned int apicid, int vector, unsigned int dest)
41{ 38{
42 unsigned long cfg; 39 unsigned long cfg;
43 40
@@ -46,7 +43,7 @@ static void __x2apic_send_IPI_dest(unsigned int apicid, int vector,
46 /* 43 /*
47 * send the IPI. 44 * send the IPI.
48 */ 45 */
49 x2apic_icr_write(cfg, apicid); 46 native_x2apic_icr_write(cfg, apicid);
50} 47}
51 48
52/* 49/*
@@ -57,45 +54,50 @@ static void __x2apic_send_IPI_dest(unsigned int apicid, int vector,
57 */ 54 */
58static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector) 55static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
59{ 56{
60 unsigned long flags;
61 unsigned long query_cpu; 57 unsigned long query_cpu;
58 unsigned long flags;
62 59
63 local_irq_save(flags); 60 local_irq_save(flags);
64 for_each_cpu(query_cpu, mask) 61 for_each_cpu(query_cpu, mask) {
65 __x2apic_send_IPI_dest( 62 __x2apic_send_IPI_dest(
66 per_cpu(x86_cpu_to_logical_apicid, query_cpu), 63 per_cpu(x86_cpu_to_logical_apicid, query_cpu),
67 vector, APIC_DEST_LOGICAL); 64 vector, apic->dest_logical);
65 }
68 local_irq_restore(flags); 66 local_irq_restore(flags);
69} 67}
70 68
71static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, 69static void
72 int vector) 70 x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
73{ 71{
74 unsigned long flags;
75 unsigned long query_cpu;
76 unsigned long this_cpu = smp_processor_id(); 72 unsigned long this_cpu = smp_processor_id();
73 unsigned long query_cpu;
74 unsigned long flags;
77 75
78 local_irq_save(flags); 76 local_irq_save(flags);
79 for_each_cpu(query_cpu, mask) 77 for_each_cpu(query_cpu, mask) {
80 if (query_cpu != this_cpu) 78 if (query_cpu == this_cpu)
81 __x2apic_send_IPI_dest( 79 continue;
80 __x2apic_send_IPI_dest(
82 per_cpu(x86_cpu_to_logical_apicid, query_cpu), 81 per_cpu(x86_cpu_to_logical_apicid, query_cpu),
83 vector, APIC_DEST_LOGICAL); 82 vector, apic->dest_logical);
83 }
84 local_irq_restore(flags); 84 local_irq_restore(flags);
85} 85}
86 86
87static void x2apic_send_IPI_allbutself(int vector) 87static void x2apic_send_IPI_allbutself(int vector)
88{ 88{
89 unsigned long flags;
90 unsigned long query_cpu;
91 unsigned long this_cpu = smp_processor_id(); 89 unsigned long this_cpu = smp_processor_id();
90 unsigned long query_cpu;
91 unsigned long flags;
92 92
93 local_irq_save(flags); 93 local_irq_save(flags);
94 for_each_online_cpu(query_cpu) 94 for_each_online_cpu(query_cpu) {
95 if (query_cpu != this_cpu) 95 if (query_cpu == this_cpu)
96 __x2apic_send_IPI_dest( 96 continue;
97 __x2apic_send_IPI_dest(
97 per_cpu(x86_cpu_to_logical_apicid, query_cpu), 98 per_cpu(x86_cpu_to_logical_apicid, query_cpu),
98 vector, APIC_DEST_LOGICAL); 99 vector, apic->dest_logical);
100 }
99 local_irq_restore(flags); 101 local_irq_restore(flags);
100} 102}
101 103
@@ -111,21 +113,21 @@ static int x2apic_apic_id_registered(void)
111 113
112static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask) 114static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask)
113{ 115{
114 int cpu;
115
116 /* 116 /*
117 * We're using fixed IRQ delivery, can only return one logical APIC ID. 117 * We're using fixed IRQ delivery, can only return one logical APIC ID.
118 * May as well be the first. 118 * May as well be the first.
119 */ 119 */
120 cpu = cpumask_first(cpumask); 120 int cpu = cpumask_first(cpumask);
121
121 if ((unsigned)cpu < nr_cpu_ids) 122 if ((unsigned)cpu < nr_cpu_ids)
122 return per_cpu(x86_cpu_to_logical_apicid, cpu); 123 return per_cpu(x86_cpu_to_logical_apicid, cpu);
123 else 124 else
124 return BAD_APICID; 125 return BAD_APICID;
125} 126}
126 127
127static unsigned int x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask, 128static unsigned int
128 const struct cpumask *andmask) 129x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
130 const struct cpumask *andmask)
129{ 131{
130 int cpu; 132 int cpu;
131 133
@@ -133,15 +135,18 @@ static unsigned int x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
133 * We're using fixed IRQ delivery, can only return one logical APIC ID. 135 * We're using fixed IRQ delivery, can only return one logical APIC ID.
134 * May as well be the first. 136 * May as well be the first.
135 */ 137 */
136 for_each_cpu_and(cpu, cpumask, andmask) 138 for_each_cpu_and(cpu, cpumask, andmask) {
137 if (cpumask_test_cpu(cpu, cpu_online_mask)) 139 if (cpumask_test_cpu(cpu, cpu_online_mask))
138 break; 140 break;
141 }
142
139 if (cpu < nr_cpu_ids) 143 if (cpu < nr_cpu_ids)
140 return per_cpu(x86_cpu_to_logical_apicid, cpu); 144 return per_cpu(x86_cpu_to_logical_apicid, cpu);
145
141 return BAD_APICID; 146 return BAD_APICID;
142} 147}
143 148
144static unsigned int get_apic_id(unsigned long x) 149static unsigned int x2apic_cluster_phys_get_apic_id(unsigned long x)
145{ 150{
146 unsigned int id; 151 unsigned int id;
147 152
@@ -157,7 +162,7 @@ static unsigned long set_apic_id(unsigned int id)
157 return x; 162 return x;
158} 163}
159 164
160static unsigned int phys_pkg_id(int index_msb) 165static int x2apic_cluster_phys_pkg_id(int initial_apicid, int index_msb)
161{ 166{
162 return current_cpu_data.initial_apicid >> index_msb; 167 return current_cpu_data.initial_apicid >> index_msb;
163} 168}
@@ -172,27 +177,63 @@ static void init_x2apic_ldr(void)
172 int cpu = smp_processor_id(); 177 int cpu = smp_processor_id();
173 178
174 per_cpu(x86_cpu_to_logical_apicid, cpu) = apic_read(APIC_LDR); 179 per_cpu(x86_cpu_to_logical_apicid, cpu) = apic_read(APIC_LDR);
175 return; 180}
176} 181
177 182struct apic apic_x2apic_cluster = {
178struct genapic apic_x2apic_cluster = { 183
179 .name = "cluster x2apic", 184 .name = "cluster x2apic",
180 .acpi_madt_oem_check = x2apic_acpi_madt_oem_check, 185 .probe = NULL,
181 .int_delivery_mode = dest_LowestPrio, 186 .acpi_madt_oem_check = x2apic_acpi_madt_oem_check,
182 .int_dest_mode = (APIC_DEST_LOGICAL != 0), 187 .apic_id_registered = x2apic_apic_id_registered,
183 .target_cpus = x2apic_target_cpus, 188
184 .vector_allocation_domain = x2apic_vector_allocation_domain, 189 .irq_delivery_mode = dest_LowestPrio,
185 .apic_id_registered = x2apic_apic_id_registered, 190 .irq_dest_mode = 1, /* logical */
186 .init_apic_ldr = init_x2apic_ldr, 191
187 .send_IPI_all = x2apic_send_IPI_all, 192 .target_cpus = x2apic_target_cpus,
188 .send_IPI_allbutself = x2apic_send_IPI_allbutself, 193 .disable_esr = 0,
189 .send_IPI_mask = x2apic_send_IPI_mask, 194 .dest_logical = APIC_DEST_LOGICAL,
190 .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself, 195 .check_apicid_used = NULL,
191 .send_IPI_self = x2apic_send_IPI_self, 196 .check_apicid_present = NULL,
192 .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid, 197
193 .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and, 198 .vector_allocation_domain = x2apic_vector_allocation_domain,
194 .phys_pkg_id = phys_pkg_id, 199 .init_apic_ldr = init_x2apic_ldr,
195 .get_apic_id = get_apic_id, 200
196 .set_apic_id = set_apic_id, 201 .ioapic_phys_id_map = NULL,
197 .apic_id_mask = (0xFFFFFFFFu), 202 .setup_apic_routing = NULL,
203 .multi_timer_check = NULL,
204 .apicid_to_node = NULL,
205 .cpu_to_logical_apicid = NULL,
206 .cpu_present_to_apicid = default_cpu_present_to_apicid,
207 .apicid_to_cpu_present = NULL,
208 .setup_portio_remap = NULL,
209 .check_phys_apicid_present = default_check_phys_apicid_present,
210 .enable_apic_mode = NULL,
211 .phys_pkg_id = x2apic_cluster_phys_pkg_id,
212 .mps_oem_check = NULL,
213
214 .get_apic_id = x2apic_cluster_phys_get_apic_id,
215 .set_apic_id = set_apic_id,
216 .apic_id_mask = 0xFFFFFFFFu,
217
218 .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid,
219 .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and,
220
221 .send_IPI_mask = x2apic_send_IPI_mask,
222 .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself,
223 .send_IPI_allbutself = x2apic_send_IPI_allbutself,
224 .send_IPI_all = x2apic_send_IPI_all,
225 .send_IPI_self = x2apic_send_IPI_self,
226
227 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
228 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
229 .wait_for_init_deassert = NULL,
230 .smp_callin_clear_local_apic = NULL,
231 .inquire_remote_apic = NULL,
232
233 .read = native_apic_msr_read,
234 .write = native_apic_msr_write,
235 .icr_read = native_x2apic_icr_read,
236 .icr_write = native_x2apic_icr_write,
237 .wait_icr_idle = native_x2apic_wait_icr_idle,
238 .safe_wait_icr_idle = native_safe_x2apic_wait_icr_idle,
198}; 239};
diff --git a/arch/x86/kernel/genx2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
index 21bcc0e098ba..23625b9f98b2 100644
--- a/arch/x86/kernel/genx2apic_phys.c
+++ b/arch/x86/kernel/apic/x2apic_phys.c
@@ -7,10 +7,10 @@
7#include <linux/dmar.h> 7#include <linux/dmar.h>
8 8
9#include <asm/smp.h> 9#include <asm/smp.h>
10#include <asm/apic.h>
10#include <asm/ipi.h> 11#include <asm/ipi.h>
11#include <asm/genapic.h>
12 12
13static int x2apic_phys; 13int x2apic_phys;
14 14
15static int set_x2apic_phys_mode(char *arg) 15static int set_x2apic_phys_mode(char *arg)
16{ 16{
@@ -21,10 +21,10 @@ early_param("x2apic_phys", set_x2apic_phys_mode);
21 21
22static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 22static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
23{ 23{
24 if (cpu_has_x2apic && x2apic_phys) 24 if (x2apic_phys)
25 return 1; 25 return x2apic_enabled();
26 26 else
27 return 0; 27 return 0;
28} 28}
29 29
30/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */ 30/* Start with all IRQs pointing to boot CPU. IRQ balancing will shift them. */
@@ -50,13 +50,13 @@ static void __x2apic_send_IPI_dest(unsigned int apicid, int vector,
50 /* 50 /*
51 * send the IPI. 51 * send the IPI.
52 */ 52 */
53 x2apic_icr_write(cfg, apicid); 53 native_x2apic_icr_write(cfg, apicid);
54} 54}
55 55
56static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector) 56static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
57{ 57{
58 unsigned long flags;
59 unsigned long query_cpu; 58 unsigned long query_cpu;
59 unsigned long flags;
60 60
61 local_irq_save(flags); 61 local_irq_save(flags);
62 for_each_cpu(query_cpu, mask) { 62 for_each_cpu(query_cpu, mask) {
@@ -66,12 +66,12 @@ static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
66 local_irq_restore(flags); 66 local_irq_restore(flags);
67} 67}
68 68
69static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, 69static void
70 int vector) 70 x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
71{ 71{
72 unsigned long flags;
73 unsigned long query_cpu;
74 unsigned long this_cpu = smp_processor_id(); 72 unsigned long this_cpu = smp_processor_id();
73 unsigned long query_cpu;
74 unsigned long flags;
75 75
76 local_irq_save(flags); 76 local_irq_save(flags);
77 for_each_cpu(query_cpu, mask) { 77 for_each_cpu(query_cpu, mask) {
@@ -85,16 +85,17 @@ static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask,
85 85
86static void x2apic_send_IPI_allbutself(int vector) 86static void x2apic_send_IPI_allbutself(int vector)
87{ 87{
88 unsigned long flags;
89 unsigned long query_cpu;
90 unsigned long this_cpu = smp_processor_id(); 88 unsigned long this_cpu = smp_processor_id();
89 unsigned long query_cpu;
90 unsigned long flags;
91 91
92 local_irq_save(flags); 92 local_irq_save(flags);
93 for_each_online_cpu(query_cpu) 93 for_each_online_cpu(query_cpu) {
94 if (query_cpu != this_cpu) 94 if (query_cpu == this_cpu)
95 __x2apic_send_IPI_dest( 95 continue;
96 per_cpu(x86_cpu_to_apicid, query_cpu), 96 __x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu),
97 vector, APIC_DEST_PHYSICAL); 97 vector, APIC_DEST_PHYSICAL);
98 }
98 local_irq_restore(flags); 99 local_irq_restore(flags);
99} 100}
100 101
@@ -110,21 +111,21 @@ static int x2apic_apic_id_registered(void)
110 111
111static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask) 112static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask)
112{ 113{
113 int cpu;
114
115 /* 114 /*
116 * We're using fixed IRQ delivery, can only return one phys APIC ID. 115 * We're using fixed IRQ delivery, can only return one phys APIC ID.
117 * May as well be the first. 116 * May as well be the first.
118 */ 117 */
119 cpu = cpumask_first(cpumask); 118 int cpu = cpumask_first(cpumask);
119
120 if ((unsigned)cpu < nr_cpu_ids) 120 if ((unsigned)cpu < nr_cpu_ids)
121 return per_cpu(x86_cpu_to_apicid, cpu); 121 return per_cpu(x86_cpu_to_apicid, cpu);
122 else 122 else
123 return BAD_APICID; 123 return BAD_APICID;
124} 124}
125 125
126static unsigned int x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask, 126static unsigned int
127 const struct cpumask *andmask) 127x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
128 const struct cpumask *andmask)
128{ 129{
129 int cpu; 130 int cpu;
130 131
@@ -132,31 +133,28 @@ static unsigned int x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
132 * We're using fixed IRQ delivery, can only return one phys APIC ID. 133 * We're using fixed IRQ delivery, can only return one phys APIC ID.
133 * May as well be the first. 134 * May as well be the first.
134 */ 135 */
135 for_each_cpu_and(cpu, cpumask, andmask) 136 for_each_cpu_and(cpu, cpumask, andmask) {
136 if (cpumask_test_cpu(cpu, cpu_online_mask)) 137 if (cpumask_test_cpu(cpu, cpu_online_mask))
137 break; 138 break;
139 }
140
138 if (cpu < nr_cpu_ids) 141 if (cpu < nr_cpu_ids)
139 return per_cpu(x86_cpu_to_apicid, cpu); 142 return per_cpu(x86_cpu_to_apicid, cpu);
143
140 return BAD_APICID; 144 return BAD_APICID;
141} 145}
142 146
143static unsigned int get_apic_id(unsigned long x) 147static unsigned int x2apic_phys_get_apic_id(unsigned long x)
144{ 148{
145 unsigned int id; 149 return x;
146
147 id = x;
148 return id;
149} 150}
150 151
151static unsigned long set_apic_id(unsigned int id) 152static unsigned long set_apic_id(unsigned int id)
152{ 153{
153 unsigned long x; 154 return id;
154
155 x = id;
156 return x;
157} 155}
158 156
159static unsigned int phys_pkg_id(int index_msb) 157static int x2apic_phys_pkg_id(int initial_apicid, int index_msb)
160{ 158{
161 return current_cpu_data.initial_apicid >> index_msb; 159 return current_cpu_data.initial_apicid >> index_msb;
162} 160}
@@ -168,27 +166,63 @@ static void x2apic_send_IPI_self(int vector)
168 166
169static void init_x2apic_ldr(void) 167static void init_x2apic_ldr(void)
170{ 168{
171 return; 169}
172} 170
173 171struct apic apic_x2apic_phys = {
174struct genapic apic_x2apic_phys = { 172
175 .name = "physical x2apic", 173 .name = "physical x2apic",
176 .acpi_madt_oem_check = x2apic_acpi_madt_oem_check, 174 .probe = NULL,
177 .int_delivery_mode = dest_Fixed, 175 .acpi_madt_oem_check = x2apic_acpi_madt_oem_check,
178 .int_dest_mode = (APIC_DEST_PHYSICAL != 0), 176 .apic_id_registered = x2apic_apic_id_registered,
179 .target_cpus = x2apic_target_cpus, 177
180 .vector_allocation_domain = x2apic_vector_allocation_domain, 178 .irq_delivery_mode = dest_Fixed,
181 .apic_id_registered = x2apic_apic_id_registered, 179 .irq_dest_mode = 0, /* physical */
182 .init_apic_ldr = init_x2apic_ldr, 180
183 .send_IPI_all = x2apic_send_IPI_all, 181 .target_cpus = x2apic_target_cpus,
184 .send_IPI_allbutself = x2apic_send_IPI_allbutself, 182 .disable_esr = 0,
185 .send_IPI_mask = x2apic_send_IPI_mask, 183 .dest_logical = 0,
186 .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself, 184 .check_apicid_used = NULL,
187 .send_IPI_self = x2apic_send_IPI_self, 185 .check_apicid_present = NULL,
188 .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid, 186
189 .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and, 187 .vector_allocation_domain = x2apic_vector_allocation_domain,
190 .phys_pkg_id = phys_pkg_id, 188 .init_apic_ldr = init_x2apic_ldr,
191 .get_apic_id = get_apic_id, 189
192 .set_apic_id = set_apic_id, 190 .ioapic_phys_id_map = NULL,
193 .apic_id_mask = (0xFFFFFFFFu), 191 .setup_apic_routing = NULL,
192 .multi_timer_check = NULL,
193 .apicid_to_node = NULL,
194 .cpu_to_logical_apicid = NULL,
195 .cpu_present_to_apicid = default_cpu_present_to_apicid,
196 .apicid_to_cpu_present = NULL,
197 .setup_portio_remap = NULL,
198 .check_phys_apicid_present = default_check_phys_apicid_present,
199 .enable_apic_mode = NULL,
200 .phys_pkg_id = x2apic_phys_pkg_id,
201 .mps_oem_check = NULL,
202
203 .get_apic_id = x2apic_phys_get_apic_id,
204 .set_apic_id = set_apic_id,
205 .apic_id_mask = 0xFFFFFFFFu,
206
207 .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid,
208 .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and,
209
210 .send_IPI_mask = x2apic_send_IPI_mask,
211 .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself,
212 .send_IPI_allbutself = x2apic_send_IPI_allbutself,
213 .send_IPI_all = x2apic_send_IPI_all,
214 .send_IPI_self = x2apic_send_IPI_self,
215
216 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
217 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
218 .wait_for_init_deassert = NULL,
219 .smp_callin_clear_local_apic = NULL,
220 .inquire_remote_apic = NULL,
221
222 .read = native_apic_msr_read,
223 .write = native_apic_msr_write,
224 .icr_read = native_x2apic_icr_read,
225 .icr_write = native_x2apic_icr_write,
226 .wait_icr_idle = native_x2apic_wait_icr_idle,
227 .safe_wait_icr_idle = native_safe_x2apic_wait_icr_idle,
194}; 228};
diff --git a/arch/x86/kernel/genx2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index b193e082f6ce..1bd6da1f8fad 100644
--- a/arch/x86/kernel/genx2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -7,27 +7,28 @@
7 * 7 *
8 * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved. 8 * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved.
9 */ 9 */
10
11#include <linux/kernel.h>
12#include <linux/threads.h>
13#include <linux/cpu.h>
14#include <linux/cpumask.h> 10#include <linux/cpumask.h>
11#include <linux/hardirq.h>
12#include <linux/proc_fs.h>
13#include <linux/threads.h>
14#include <linux/kernel.h>
15#include <linux/module.h>
15#include <linux/string.h> 16#include <linux/string.h>
16#include <linux/ctype.h> 17#include <linux/ctype.h>
17#include <linux/init.h>
18#include <linux/sched.h> 18#include <linux/sched.h>
19#include <linux/module.h>
20#include <linux/hardirq.h>
21#include <linux/timer.h> 19#include <linux/timer.h>
22#include <linux/proc_fs.h> 20#include <linux/cpu.h>
23#include <asm/current.h> 21#include <linux/init.h>
24#include <asm/smp.h> 22
25#include <asm/ipi.h>
26#include <asm/genapic.h>
27#include <asm/pgtable.h>
28#include <asm/uv/uv_mmrs.h> 23#include <asm/uv/uv_mmrs.h>
29#include <asm/uv/uv_hub.h> 24#include <asm/uv/uv_hub.h>
25#include <asm/current.h>
26#include <asm/pgtable.h>
30#include <asm/uv/bios.h> 27#include <asm/uv/bios.h>
28#include <asm/uv/uv.h>
29#include <asm/apic.h>
30#include <asm/ipi.h>
31#include <asm/smp.h>
31 32
32DEFINE_PER_CPU(int, x2apic_extra_bits); 33DEFINE_PER_CPU(int, x2apic_extra_bits);
33 34
@@ -90,39 +91,43 @@ static void uv_vector_allocation_domain(int cpu, struct cpumask *retmask)
90 cpumask_set_cpu(cpu, retmask); 91 cpumask_set_cpu(cpu, retmask);
91} 92}
92 93
93int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip) 94static int uv_wakeup_secondary(int phys_apicid, unsigned long start_rip)
94{ 95{
96#ifdef CONFIG_SMP
95 unsigned long val; 97 unsigned long val;
96 int pnode; 98 int pnode;
97 99
98 pnode = uv_apicid_to_pnode(phys_apicid); 100 pnode = uv_apicid_to_pnode(phys_apicid);
99 val = (1UL << UVH_IPI_INT_SEND_SHFT) | 101 val = (1UL << UVH_IPI_INT_SEND_SHFT) |
100 (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) | 102 (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) |
101 (((long)start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) | 103 ((start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) |
102 APIC_DM_INIT; 104 APIC_DM_INIT;
103 uv_write_global_mmr64(pnode, UVH_IPI_INT, val); 105 uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
104 mdelay(10); 106 mdelay(10);
105 107
106 val = (1UL << UVH_IPI_INT_SEND_SHFT) | 108 val = (1UL << UVH_IPI_INT_SEND_SHFT) |
107 (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) | 109 (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) |
108 (((long)start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) | 110 ((start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) |
109 APIC_DM_STARTUP; 111 APIC_DM_STARTUP;
110 uv_write_global_mmr64(pnode, UVH_IPI_INT, val); 112 uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
113
114 atomic_set(&init_deasserted, 1);
115#endif
111 return 0; 116 return 0;
112} 117}
113 118
114static void uv_send_IPI_one(int cpu, int vector) 119static void uv_send_IPI_one(int cpu, int vector)
115{ 120{
116 unsigned long val, apicid, lapicid; 121 unsigned long val, apicid;
117 int pnode; 122 int pnode;
118 123
119 apicid = per_cpu(x86_cpu_to_apicid, cpu); 124 apicid = per_cpu(x86_cpu_to_apicid, cpu);
120 lapicid = apicid & 0x3f; /* ZZZ macro needed */
121 pnode = uv_apicid_to_pnode(apicid); 125 pnode = uv_apicid_to_pnode(apicid);
122 val = 126
123 (1UL << UVH_IPI_INT_SEND_SHFT) | (lapicid << 127 val = (1UL << UVH_IPI_INT_SEND_SHFT) |
124 UVH_IPI_INT_APIC_ID_SHFT) | 128 (apicid << UVH_IPI_INT_APIC_ID_SHFT) |
125 (vector << UVH_IPI_INT_VECTOR_SHFT); 129 (vector << UVH_IPI_INT_VECTOR_SHFT);
130
126 uv_write_global_mmr64(pnode, UVH_IPI_INT, val); 131 uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
127} 132}
128 133
@@ -136,22 +141,24 @@ static void uv_send_IPI_mask(const struct cpumask *mask, int vector)
136 141
137static void uv_send_IPI_mask_allbutself(const struct cpumask *mask, int vector) 142static void uv_send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
138{ 143{
139 unsigned int cpu;
140 unsigned int this_cpu = smp_processor_id(); 144 unsigned int this_cpu = smp_processor_id();
145 unsigned int cpu;
141 146
142 for_each_cpu(cpu, mask) 147 for_each_cpu(cpu, mask) {
143 if (cpu != this_cpu) 148 if (cpu != this_cpu)
144 uv_send_IPI_one(cpu, vector); 149 uv_send_IPI_one(cpu, vector);
150 }
145} 151}
146 152
147static void uv_send_IPI_allbutself(int vector) 153static void uv_send_IPI_allbutself(int vector)
148{ 154{
149 unsigned int cpu;
150 unsigned int this_cpu = smp_processor_id(); 155 unsigned int this_cpu = smp_processor_id();
156 unsigned int cpu;
151 157
152 for_each_online_cpu(cpu) 158 for_each_online_cpu(cpu) {
153 if (cpu != this_cpu) 159 if (cpu != this_cpu)
154 uv_send_IPI_one(cpu, vector); 160 uv_send_IPI_one(cpu, vector);
161 }
155} 162}
156 163
157static void uv_send_IPI_all(int vector) 164static void uv_send_IPI_all(int vector)
@@ -170,21 +177,21 @@ static void uv_init_apic_ldr(void)
170 177
171static unsigned int uv_cpu_mask_to_apicid(const struct cpumask *cpumask) 178static unsigned int uv_cpu_mask_to_apicid(const struct cpumask *cpumask)
172{ 179{
173 int cpu;
174
175 /* 180 /*
176 * We're using fixed IRQ delivery, can only return one phys APIC ID. 181 * We're using fixed IRQ delivery, can only return one phys APIC ID.
177 * May as well be the first. 182 * May as well be the first.
178 */ 183 */
179 cpu = cpumask_first(cpumask); 184 int cpu = cpumask_first(cpumask);
185
180 if ((unsigned)cpu < nr_cpu_ids) 186 if ((unsigned)cpu < nr_cpu_ids)
181 return per_cpu(x86_cpu_to_apicid, cpu); 187 return per_cpu(x86_cpu_to_apicid, cpu);
182 else 188 else
183 return BAD_APICID; 189 return BAD_APICID;
184} 190}
185 191
186static unsigned int uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask, 192static unsigned int
187 const struct cpumask *andmask) 193uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
194 const struct cpumask *andmask)
188{ 195{
189 int cpu; 196 int cpu;
190 197
@@ -192,15 +199,17 @@ static unsigned int uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
192 * We're using fixed IRQ delivery, can only return one phys APIC ID. 199 * We're using fixed IRQ delivery, can only return one phys APIC ID.
193 * May as well be the first. 200 * May as well be the first.
194 */ 201 */
195 for_each_cpu_and(cpu, cpumask, andmask) 202 for_each_cpu_and(cpu, cpumask, andmask) {
196 if (cpumask_test_cpu(cpu, cpu_online_mask)) 203 if (cpumask_test_cpu(cpu, cpu_online_mask))
197 break; 204 break;
205 }
198 if (cpu < nr_cpu_ids) 206 if (cpu < nr_cpu_ids)
199 return per_cpu(x86_cpu_to_apicid, cpu); 207 return per_cpu(x86_cpu_to_apicid, cpu);
208
200 return BAD_APICID; 209 return BAD_APICID;
201} 210}
202 211
203static unsigned int get_apic_id(unsigned long x) 212static unsigned int x2apic_get_apic_id(unsigned long x)
204{ 213{
205 unsigned int id; 214 unsigned int id;
206 215
@@ -222,10 +231,10 @@ static unsigned long set_apic_id(unsigned int id)
222static unsigned int uv_read_apic_id(void) 231static unsigned int uv_read_apic_id(void)
223{ 232{
224 233
225 return get_apic_id(apic_read(APIC_ID)); 234 return x2apic_get_apic_id(apic_read(APIC_ID));
226} 235}
227 236
228static unsigned int phys_pkg_id(int index_msb) 237static int uv_phys_pkg_id(int initial_apicid, int index_msb)
229{ 238{
230 return uv_read_apic_id() >> index_msb; 239 return uv_read_apic_id() >> index_msb;
231} 240}
@@ -235,26 +244,64 @@ static void uv_send_IPI_self(int vector)
235 apic_write(APIC_SELF_IPI, vector); 244 apic_write(APIC_SELF_IPI, vector);
236} 245}
237 246
238struct genapic apic_x2apic_uv_x = { 247struct apic apic_x2apic_uv_x = {
239 .name = "UV large system", 248
240 .acpi_madt_oem_check = uv_acpi_madt_oem_check, 249 .name = "UV large system",
241 .int_delivery_mode = dest_Fixed, 250 .probe = NULL,
242 .int_dest_mode = (APIC_DEST_PHYSICAL != 0), 251 .acpi_madt_oem_check = uv_acpi_madt_oem_check,
243 .target_cpus = uv_target_cpus, 252 .apic_id_registered = uv_apic_id_registered,
244 .vector_allocation_domain = uv_vector_allocation_domain, 253
245 .apic_id_registered = uv_apic_id_registered, 254 .irq_delivery_mode = dest_Fixed,
246 .init_apic_ldr = uv_init_apic_ldr, 255 .irq_dest_mode = 1, /* logical */
247 .send_IPI_all = uv_send_IPI_all, 256
248 .send_IPI_allbutself = uv_send_IPI_allbutself, 257 .target_cpus = uv_target_cpus,
249 .send_IPI_mask = uv_send_IPI_mask, 258 .disable_esr = 0,
250 .send_IPI_mask_allbutself = uv_send_IPI_mask_allbutself, 259 .dest_logical = APIC_DEST_LOGICAL,
251 .send_IPI_self = uv_send_IPI_self, 260 .check_apicid_used = NULL,
252 .cpu_mask_to_apicid = uv_cpu_mask_to_apicid, 261 .check_apicid_present = NULL,
253 .cpu_mask_to_apicid_and = uv_cpu_mask_to_apicid_and, 262
254 .phys_pkg_id = phys_pkg_id, 263 .vector_allocation_domain = uv_vector_allocation_domain,
255 .get_apic_id = get_apic_id, 264 .init_apic_ldr = uv_init_apic_ldr,
256 .set_apic_id = set_apic_id, 265
257 .apic_id_mask = (0xFFFFFFFFu), 266 .ioapic_phys_id_map = NULL,
267 .setup_apic_routing = NULL,
268 .multi_timer_check = NULL,
269 .apicid_to_node = NULL,
270 .cpu_to_logical_apicid = NULL,
271 .cpu_present_to_apicid = default_cpu_present_to_apicid,
272 .apicid_to_cpu_present = NULL,
273 .setup_portio_remap = NULL,
274 .check_phys_apicid_present = default_check_phys_apicid_present,
275 .enable_apic_mode = NULL,
276 .phys_pkg_id = uv_phys_pkg_id,
277 .mps_oem_check = NULL,
278
279 .get_apic_id = x2apic_get_apic_id,
280 .set_apic_id = set_apic_id,
281 .apic_id_mask = 0xFFFFFFFFu,
282
283 .cpu_mask_to_apicid = uv_cpu_mask_to_apicid,
284 .cpu_mask_to_apicid_and = uv_cpu_mask_to_apicid_and,
285
286 .send_IPI_mask = uv_send_IPI_mask,
287 .send_IPI_mask_allbutself = uv_send_IPI_mask_allbutself,
288 .send_IPI_allbutself = uv_send_IPI_allbutself,
289 .send_IPI_all = uv_send_IPI_all,
290 .send_IPI_self = uv_send_IPI_self,
291
292 .wakeup_secondary_cpu = uv_wakeup_secondary,
293 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
294 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
295 .wait_for_init_deassert = NULL,
296 .smp_callin_clear_local_apic = NULL,
297 .inquire_remote_apic = NULL,
298
299 .read = native_apic_msr_read,
300 .write = native_apic_msr_write,
301 .icr_read = native_x2apic_icr_read,
302 .icr_write = native_x2apic_icr_write,
303 .wait_icr_idle = native_x2apic_wait_icr_idle,
304 .safe_wait_icr_idle = native_safe_x2apic_wait_icr_idle,
258}; 305};
259 306
260static __cpuinit void set_x2apic_extra_bits(int pnode) 307static __cpuinit void set_x2apic_extra_bits(int pnode)
@@ -322,7 +369,7 @@ static __init void map_high(char *id, unsigned long base, int shift,
322 paddr = base << shift; 369 paddr = base << shift;
323 bytes = (1UL << shift) * (max_pnode + 1); 370 bytes = (1UL << shift) * (max_pnode + 1);
324 printk(KERN_INFO "UV: Map %s_HI 0x%lx - 0x%lx\n", id, paddr, 371 printk(KERN_INFO "UV: Map %s_HI 0x%lx - 0x%lx\n", id, paddr,
325 paddr + bytes); 372 paddr + bytes);
326 if (map_type == map_uc) 373 if (map_type == map_uc)
327 init_extra_mapping_uc(paddr, bytes); 374 init_extra_mapping_uc(paddr, bytes);
328 else 375 else
@@ -485,7 +532,7 @@ late_initcall(uv_init_heartbeat);
485 532
486/* 533/*
487 * Called on each cpu to initialize the per_cpu UV data area. 534 * Called on each cpu to initialize the per_cpu UV data area.
488 * ZZZ hotplug not supported yet 535 * FIXME: hotplug not supported yet
489 */ 536 */
490void __cpuinit uv_cpu_init(void) 537void __cpuinit uv_cpu_init(void)
491{ 538{
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
index 98807bb095ad..10033fe718e0 100644
--- a/arch/x86/kernel/apm_32.c
+++ b/arch/x86/kernel/apm_32.c
@@ -301,7 +301,7 @@ extern int (*console_blank_hook)(int);
301 */ 301 */
302#define APM_ZERO_SEGS 302#define APM_ZERO_SEGS
303 303
304#include "apm.h" 304#include <asm/apm.h>
305 305
306/* 306/*
307 * Define to re-initialize the interrupt 0 timer to 100 Hz after a suspend. 307 * Define to re-initialize the interrupt 0 timer to 100 Hz after a suspend.
@@ -1192,6 +1192,7 @@ static int suspend(int vetoable)
1192 device_suspend(PMSG_SUSPEND); 1192 device_suspend(PMSG_SUSPEND);
1193 local_irq_disable(); 1193 local_irq_disable();
1194 device_power_down(PMSG_SUSPEND); 1194 device_power_down(PMSG_SUSPEND);
1195 sysdev_suspend(PMSG_SUSPEND);
1195 1196
1196 local_irq_enable(); 1197 local_irq_enable();
1197 1198
@@ -1208,6 +1209,7 @@ static int suspend(int vetoable)
1208 if (err != APM_SUCCESS) 1209 if (err != APM_SUCCESS)
1209 apm_error("suspend", err); 1210 apm_error("suspend", err);
1210 err = (err == APM_SUCCESS) ? 0 : -EIO; 1211 err = (err == APM_SUCCESS) ? 0 : -EIO;
1212 sysdev_resume();
1211 device_power_up(PMSG_RESUME); 1213 device_power_up(PMSG_RESUME);
1212 local_irq_enable(); 1214 local_irq_enable();
1213 device_resume(PMSG_RESUME); 1215 device_resume(PMSG_RESUME);
@@ -1228,6 +1230,7 @@ static void standby(void)
1228 1230
1229 local_irq_disable(); 1231 local_irq_disable();
1230 device_power_down(PMSG_SUSPEND); 1232 device_power_down(PMSG_SUSPEND);
1233 sysdev_suspend(PMSG_SUSPEND);
1231 local_irq_enable(); 1234 local_irq_enable();
1232 1235
1233 err = set_system_power_state(APM_STATE_STANDBY); 1236 err = set_system_power_state(APM_STATE_STANDBY);
@@ -1235,6 +1238,7 @@ static void standby(void)
1235 apm_error("standby", err); 1238 apm_error("standby", err);
1236 1239
1237 local_irq_disable(); 1240 local_irq_disable();
1241 sysdev_resume();
1238 device_power_up(PMSG_RESUME); 1242 device_power_up(PMSG_RESUME);
1239 local_irq_enable(); 1243 local_irq_enable();
1240} 1244}
diff --git a/arch/x86/kernel/asm-offsets_32.c b/arch/x86/kernel/asm-offsets_32.c
index ee4df08feee6..fbf2f33e3080 100644
--- a/arch/x86/kernel/asm-offsets_32.c
+++ b/arch/x86/kernel/asm-offsets_32.c
@@ -75,6 +75,7 @@ void foo(void)
75 OFFSET(PT_DS, pt_regs, ds); 75 OFFSET(PT_DS, pt_regs, ds);
76 OFFSET(PT_ES, pt_regs, es); 76 OFFSET(PT_ES, pt_regs, es);
77 OFFSET(PT_FS, pt_regs, fs); 77 OFFSET(PT_FS, pt_regs, fs);
78 OFFSET(PT_GS, pt_regs, gs);
78 OFFSET(PT_ORIG_EAX, pt_regs, orig_ax); 79 OFFSET(PT_ORIG_EAX, pt_regs, orig_ax);
79 OFFSET(PT_EIP, pt_regs, ip); 80 OFFSET(PT_EIP, pt_regs, ip);
80 OFFSET(PT_CS, pt_regs, cs); 81 OFFSET(PT_CS, pt_regs, cs);
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
index 1d41d3f1edbc..8793ab33e2c1 100644
--- a/arch/x86/kernel/asm-offsets_64.c
+++ b/arch/x86/kernel/asm-offsets_64.c
@@ -11,7 +11,6 @@
11#include <linux/hardirq.h> 11#include <linux/hardirq.h>
12#include <linux/suspend.h> 12#include <linux/suspend.h>
13#include <linux/kbuild.h> 13#include <linux/kbuild.h>
14#include <asm/pda.h>
15#include <asm/processor.h> 14#include <asm/processor.h>
16#include <asm/segment.h> 15#include <asm/segment.h>
17#include <asm/thread_info.h> 16#include <asm/thread_info.h>
@@ -48,16 +47,6 @@ int main(void)
48#endif 47#endif
49 BLANK(); 48 BLANK();
50#undef ENTRY 49#undef ENTRY
51#define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry))
52 ENTRY(kernelstack);
53 ENTRY(oldrsp);
54 ENTRY(pcurrent);
55 ENTRY(irqcount);
56 ENTRY(cpunumber);
57 ENTRY(irqstackptr);
58 ENTRY(data_offset);
59 BLANK();
60#undef ENTRY
61#ifdef CONFIG_PARAVIRT 50#ifdef CONFIG_PARAVIRT
62 BLANK(); 51 BLANK();
63 OFFSET(PARAVIRT_enabled, pv_info, paravirt_enabled); 52 OFFSET(PARAVIRT_enabled, pv_info, paravirt_enabled);
diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
index 2cf23634b6d9..6882a735d9c0 100644
--- a/arch/x86/kernel/cpu/addon_cpuid_features.c
+++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
@@ -7,7 +7,7 @@
7#include <asm/pat.h> 7#include <asm/pat.h>
8#include <asm/processor.h> 8#include <asm/processor.h>
9 9
10#include <mach_apic.h> 10#include <asm/apic.h>
11 11
12struct cpuid_bit { 12struct cpuid_bit {
13 u16 feature; 13 u16 feature;
@@ -69,7 +69,7 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
69 */ 69 */
70void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c) 70void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c)
71{ 71{
72#ifdef CONFIG_X86_SMP 72#ifdef CONFIG_SMP
73 unsigned int eax, ebx, ecx, edx, sub_index; 73 unsigned int eax, ebx, ecx, edx, sub_index;
74 unsigned int ht_mask_width, core_plus_mask_width; 74 unsigned int ht_mask_width, core_plus_mask_width;
75 unsigned int core_select_mask, core_level_siblings; 75 unsigned int core_select_mask, core_level_siblings;
@@ -116,22 +116,14 @@ void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c)
116 116
117 core_select_mask = (~(-1 << core_plus_mask_width)) >> ht_mask_width; 117 core_select_mask = (~(-1 << core_plus_mask_width)) >> ht_mask_width;
118 118
119#ifdef CONFIG_X86_32 119 c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, ht_mask_width)
120 c->cpu_core_id = phys_pkg_id(c->initial_apicid, ht_mask_width)
121 & core_select_mask; 120 & core_select_mask;
122 c->phys_proc_id = phys_pkg_id(c->initial_apicid, core_plus_mask_width); 121 c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, core_plus_mask_width);
123 /* 122 /*
124 * Reinit the apicid, now that we have extended initial_apicid. 123 * Reinit the apicid, now that we have extended initial_apicid.
125 */ 124 */
126 c->apicid = phys_pkg_id(c->initial_apicid, 0); 125 c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
127#else 126
128 c->cpu_core_id = phys_pkg_id(ht_mask_width) & core_select_mask;
129 c->phys_proc_id = phys_pkg_id(core_plus_mask_width);
130 /*
131 * Reinit the apicid, now that we have extended initial_apicid.
132 */
133 c->apicid = phys_pkg_id(0);
134#endif
135 c->x86_max_cores = (core_level_siblings / smp_num_siblings); 127 c->x86_max_cores = (core_level_siblings / smp_num_siblings);
136 128
137 129
@@ -143,37 +135,3 @@ void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c)
143 return; 135 return;
144#endif 136#endif
145} 137}
146
147#ifdef CONFIG_X86_PAT
148void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
149{
150 if (!cpu_has_pat)
151 pat_disable("PAT not supported by CPU.");
152
153 switch (c->x86_vendor) {
154 case X86_VENDOR_INTEL:
155 /*
156 * There is a known erratum on Pentium III and Core Solo
157 * and Core Duo CPUs.
158 * " Page with PAT set to WC while associated MTRR is UC
159 * may consolidate to UC "
160 * Because of this erratum, it is better to stick with
161 * setting WC in MTRR rather than using PAT on these CPUs.
162 *
163 * Enable PAT WC only on P4, Core 2 or later CPUs.
164 */
165 if (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 15))
166 return;
167
168 pat_disable("PAT WC disabled due to known CPU erratum.");
169 return;
170
171 case X86_VENDOR_AMD:
172 case X86_VENDOR_CENTAUR:
173 case X86_VENDOR_TRANSMETA:
174 return;
175 }
176
177 pat_disable("PAT disabled. Not yet verified on this CPU type.");
178}
179#endif
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 7c878f6aa919..f47df59016c5 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -5,6 +5,7 @@
5#include <asm/io.h> 5#include <asm/io.h>
6#include <asm/processor.h> 6#include <asm/processor.h>
7#include <asm/apic.h> 7#include <asm/apic.h>
8#include <asm/cpu.h>
8 9
9#ifdef CONFIG_X86_64 10#ifdef CONFIG_X86_64
10# include <asm/numa_64.h> 11# include <asm/numa_64.h>
@@ -12,8 +13,6 @@
12# include <asm/cacheflush.h> 13# include <asm/cacheflush.h>
13#endif 14#endif
14 15
15#include <mach_apic.h>
16
17#include "cpu.h" 16#include "cpu.h"
18 17
19#ifdef CONFIG_X86_32 18#ifdef CONFIG_X86_32
@@ -143,6 +142,55 @@ static void __cpuinit init_amd_k6(struct cpuinfo_x86 *c)
143 } 142 }
144} 143}
145 144
145static void __cpuinit amd_k7_smp_check(struct cpuinfo_x86 *c)
146{
147#ifdef CONFIG_SMP
148 /* calling is from identify_secondary_cpu() ? */
149 if (c->cpu_index == boot_cpu_id)
150 return;
151
152 /*
153 * Certain Athlons might work (for various values of 'work') in SMP
154 * but they are not certified as MP capable.
155 */
156 /* Athlon 660/661 is valid. */
157 if ((c->x86_model == 6) && ((c->x86_mask == 0) ||
158 (c->x86_mask == 1)))
159 goto valid_k7;
160
161 /* Duron 670 is valid */
162 if ((c->x86_model == 7) && (c->x86_mask == 0))
163 goto valid_k7;
164
165 /*
166 * Athlon 662, Duron 671, and Athlon >model 7 have capability
167 * bit. It's worth noting that the A5 stepping (662) of some
168 * Athlon XP's have the MP bit set.
169 * See http://www.heise.de/newsticker/data/jow-18.10.01-000 for
170 * more.
171 */
172 if (((c->x86_model == 6) && (c->x86_mask >= 2)) ||
173 ((c->x86_model == 7) && (c->x86_mask >= 1)) ||
174 (c->x86_model > 7))
175 if (cpu_has_mp)
176 goto valid_k7;
177
178 /* If we get here, not a certified SMP capable AMD system. */
179
180 /*
181 * Don't taint if we are running SMP kernel on a single non-MP
182 * approved Athlon
183 */
184 WARN_ONCE(1, "WARNING: This combination of AMD"
185 "processors is not suitable for SMP.\n");
186 if (!test_taint(TAINT_UNSAFE_SMP))
187 add_taint(TAINT_UNSAFE_SMP);
188
189valid_k7:
190 ;
191#endif
192}
193
146static void __cpuinit init_amd_k7(struct cpuinfo_x86 *c) 194static void __cpuinit init_amd_k7(struct cpuinfo_x86 *c)
147{ 195{
148 u32 l, h; 196 u32 l, h;
@@ -177,6 +225,8 @@ static void __cpuinit init_amd_k7(struct cpuinfo_x86 *c)
177 } 225 }
178 226
179 set_cpu_cap(c, X86_FEATURE_K7); 227 set_cpu_cap(c, X86_FEATURE_K7);
228
229 amd_k7_smp_check(c);
180} 230}
181#endif 231#endif
182 232
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 83492b1f93b1..826d5c876278 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -21,14 +21,14 @@
21#include <asm/asm.h> 21#include <asm/asm.h>
22#include <asm/numa.h> 22#include <asm/numa.h>
23#include <asm/smp.h> 23#include <asm/smp.h>
24#ifdef CONFIG_X86_LOCAL_APIC 24#include <asm/cpu.h>
25#include <asm/mpspec.h> 25#include <asm/cpumask.h>
26#include <asm/apic.h> 26#include <asm/apic.h>
27#include <mach_apic.h> 27
28#include <asm/genapic.h> 28#ifdef CONFIG_X86_LOCAL_APIC
29#include <asm/uv/uv.h>
29#endif 30#endif
30 31
31#include <asm/pda.h>
32#include <asm/pgtable.h> 32#include <asm/pgtable.h>
33#include <asm/processor.h> 33#include <asm/processor.h>
34#include <asm/desc.h> 34#include <asm/desc.h>
@@ -37,6 +37,7 @@
37#include <asm/sections.h> 37#include <asm/sections.h>
38#include <asm/setup.h> 38#include <asm/setup.h>
39#include <asm/hypervisor.h> 39#include <asm/hypervisor.h>
40#include <asm/stackprotector.h>
40 41
41#include "cpu.h" 42#include "cpu.h"
42 43
@@ -50,6 +51,15 @@ cpumask_var_t cpu_initialized_mask;
50/* representing cpus for which sibling maps can be computed */ 51/* representing cpus for which sibling maps can be computed */
51cpumask_var_t cpu_sibling_setup_mask; 52cpumask_var_t cpu_sibling_setup_mask;
52 53
54/* correctly size the local cpu masks */
55void __init setup_cpu_local_masks(void)
56{
57 alloc_bootmem_cpumask_var(&cpu_initialized_mask);
58 alloc_bootmem_cpumask_var(&cpu_callin_mask);
59 alloc_bootmem_cpumask_var(&cpu_callout_mask);
60 alloc_bootmem_cpumask_var(&cpu_sibling_setup_mask);
61}
62
53#else /* CONFIG_X86_32 */ 63#else /* CONFIG_X86_32 */
54 64
55cpumask_t cpu_callin_map; 65cpumask_t cpu_callin_map;
@@ -62,23 +72,23 @@ cpumask_t cpu_sibling_setup_map;
62 72
63static struct cpu_dev *this_cpu __cpuinitdata; 73static struct cpu_dev *this_cpu __cpuinitdata;
64 74
75DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
65#ifdef CONFIG_X86_64 76#ifdef CONFIG_X86_64
66/* We need valid kernel segments for data and code in long mode too 77 /*
67 * IRET will check the segment types kkeil 2000/10/28 78 * We need valid kernel segments for data and code in long mode too
68 * Also sysret mandates a special GDT layout 79 * IRET will check the segment types kkeil 2000/10/28
69 */ 80 * Also sysret mandates a special GDT layout
70/* The TLS descriptors are currently at a different place compared to i386. 81 *
71 Hopefully nobody expects them at a fixed place (Wine?) */ 82 * The TLS descriptors are currently at a different place compared to i386.
72DEFINE_PER_CPU(struct gdt_page, gdt_page) = { .gdt = { 83 * Hopefully nobody expects them at a fixed place (Wine?)
84 */
73 [GDT_ENTRY_KERNEL32_CS] = { { { 0x0000ffff, 0x00cf9b00 } } }, 85 [GDT_ENTRY_KERNEL32_CS] = { { { 0x0000ffff, 0x00cf9b00 } } },
74 [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00af9b00 } } }, 86 [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00af9b00 } } },
75 [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9300 } } }, 87 [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9300 } } },
76 [GDT_ENTRY_DEFAULT_USER32_CS] = { { { 0x0000ffff, 0x00cffb00 } } }, 88 [GDT_ENTRY_DEFAULT_USER32_CS] = { { { 0x0000ffff, 0x00cffb00 } } },
77 [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff300 } } }, 89 [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff300 } } },
78 [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00affb00 } } }, 90 [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00affb00 } } },
79} };
80#else 91#else
81DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
82 [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00cf9a00 } } }, 92 [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00cf9a00 } } },
83 [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9200 } } }, 93 [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9200 } } },
84 [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00cffa00 } } }, 94 [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00cffa00 } } },
@@ -110,9 +120,10 @@ DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
110 [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } }, 120 [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } },
111 121
112 [GDT_ENTRY_ESPFIX_SS] = { { { 0x00000000, 0x00c09200 } } }, 122 [GDT_ENTRY_ESPFIX_SS] = { { { 0x00000000, 0x00c09200 } } },
113 [GDT_ENTRY_PERCPU] = { { { 0x00000000, 0x00000000 } } }, 123 [GDT_ENTRY_PERCPU] = { { { 0x0000ffff, 0x00cf9200 } } },
114} }; 124 GDT_STACK_CANARY_INIT
115#endif 125#endif
126} };
116EXPORT_PER_CPU_SYMBOL_GPL(gdt_page); 127EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
117 128
118#ifdef CONFIG_X86_32 129#ifdef CONFIG_X86_32
@@ -213,6 +224,49 @@ static inline void squash_the_stupid_serial_number(struct cpuinfo_x86 *c)
213#endif 224#endif
214 225
215/* 226/*
227 * Some CPU features depend on higher CPUID levels, which may not always
228 * be available due to CPUID level capping or broken virtualization
229 * software. Add those features to this table to auto-disable them.
230 */
231struct cpuid_dependent_feature {
232 u32 feature;
233 u32 level;
234};
235static const struct cpuid_dependent_feature __cpuinitconst
236cpuid_dependent_features[] = {
237 { X86_FEATURE_MWAIT, 0x00000005 },
238 { X86_FEATURE_DCA, 0x00000009 },
239 { X86_FEATURE_XSAVE, 0x0000000d },
240 { 0, 0 }
241};
242
243static void __cpuinit filter_cpuid_features(struct cpuinfo_x86 *c, bool warn)
244{
245 const struct cpuid_dependent_feature *df;
246 for (df = cpuid_dependent_features; df->feature; df++) {
247 /*
248 * Note: cpuid_level is set to -1 if unavailable, but
249 * extended_extended_level is set to 0 if unavailable
250 * and the legitimate extended levels are all negative
251 * when signed; hence the weird messing around with
252 * signs here...
253 */
254 if (cpu_has(c, df->feature) &&
255 ((s32)df->level < 0 ?
256 (u32)df->level > (u32)c->extended_cpuid_level :
257 (s32)df->level > (s32)c->cpuid_level)) {
258 clear_cpu_cap(c, df->feature);
259 if (warn)
260 printk(KERN_WARNING
261 "CPU: CPU feature %s disabled "
262 "due to lack of CPUID level 0x%x\n",
263 x86_cap_flags[df->feature],
264 df->level);
265 }
266 }
267}
268
269/*
216 * Naming convention should be: <Name> [(<Codename>)] 270 * Naming convention should be: <Name> [(<Codename>)]
217 * This table only is used unless init_<vendor>() below doesn't set it; 271 * This table only is used unless init_<vendor>() below doesn't set it;
218 * in particular, if CPUID levels 0x80000002..4 are supported, this isn't used 272 * in particular, if CPUID levels 0x80000002..4 are supported, this isn't used
@@ -242,18 +296,29 @@ static char __cpuinit *table_lookup_model(struct cpuinfo_x86 *c)
242 296
243__u32 cleared_cpu_caps[NCAPINTS] __cpuinitdata; 297__u32 cleared_cpu_caps[NCAPINTS] __cpuinitdata;
244 298
299void load_percpu_segment(int cpu)
300{
301#ifdef CONFIG_X86_32
302 loadsegment(fs, __KERNEL_PERCPU);
303#else
304 loadsegment(gs, 0);
305 wrmsrl(MSR_GS_BASE, (unsigned long)per_cpu(irq_stack_union.gs_base, cpu));
306#endif
307 load_stack_canary_segment();
308}
309
245/* Current gdt points %fs at the "master" per-cpu area: after this, 310/* Current gdt points %fs at the "master" per-cpu area: after this,
246 * it's on the real one. */ 311 * it's on the real one. */
247void switch_to_new_gdt(void) 312void switch_to_new_gdt(int cpu)
248{ 313{
249 struct desc_ptr gdt_descr; 314 struct desc_ptr gdt_descr;
250 315
251 gdt_descr.address = (long)get_cpu_gdt_table(smp_processor_id()); 316 gdt_descr.address = (long)get_cpu_gdt_table(cpu);
252 gdt_descr.size = GDT_SIZE - 1; 317 gdt_descr.size = GDT_SIZE - 1;
253 load_gdt(&gdt_descr); 318 load_gdt(&gdt_descr);
254#ifdef CONFIG_X86_32 319 /* Reload the per-cpu base */
255 asm("mov %0, %%fs" : : "r" (__KERNEL_PERCPU) : "memory"); 320
256#endif 321 load_percpu_segment(cpu);
257} 322}
258 323
259static struct cpu_dev *cpu_devs[X86_VENDOR_NUM] = {}; 324static struct cpu_dev *cpu_devs[X86_VENDOR_NUM] = {};
@@ -383,11 +448,7 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
383 } 448 }
384 449
385 index_msb = get_count_order(smp_num_siblings); 450 index_msb = get_count_order(smp_num_siblings);
386#ifdef CONFIG_X86_64 451 c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, index_msb);
387 c->phys_proc_id = phys_pkg_id(index_msb);
388#else
389 c->phys_proc_id = phys_pkg_id(c->initial_apicid, index_msb);
390#endif
391 452
392 smp_num_siblings = smp_num_siblings / c->x86_max_cores; 453 smp_num_siblings = smp_num_siblings / c->x86_max_cores;
393 454
@@ -395,13 +456,8 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
395 456
396 core_bits = get_count_order(c->x86_max_cores); 457 core_bits = get_count_order(c->x86_max_cores);
397 458
398#ifdef CONFIG_X86_64 459 c->cpu_core_id = apic->phys_pkg_id(c->initial_apicid, index_msb) &
399 c->cpu_core_id = phys_pkg_id(index_msb) &
400 ((1 << core_bits) - 1); 460 ((1 << core_bits) - 1);
401#else
402 c->cpu_core_id = phys_pkg_id(c->initial_apicid, index_msb) &
403 ((1 << core_bits) - 1);
404#endif
405 } 461 }
406 462
407out: 463out:
@@ -570,11 +626,10 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
570 if (this_cpu->c_early_init) 626 if (this_cpu->c_early_init)
571 this_cpu->c_early_init(c); 627 this_cpu->c_early_init(c);
572 628
573 validate_pat_support(c);
574
575#ifdef CONFIG_SMP 629#ifdef CONFIG_SMP
576 c->cpu_index = boot_cpu_id; 630 c->cpu_index = boot_cpu_id;
577#endif 631#endif
632 filter_cpuid_features(c, false);
578} 633}
579 634
580void __init early_cpu_init(void) 635void __init early_cpu_init(void)
@@ -637,7 +692,7 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
637 c->initial_apicid = (cpuid_ebx(1) >> 24) & 0xFF; 692 c->initial_apicid = (cpuid_ebx(1) >> 24) & 0xFF;
638#ifdef CONFIG_X86_32 693#ifdef CONFIG_X86_32
639# ifdef CONFIG_X86_HT 694# ifdef CONFIG_X86_HT
640 c->apicid = phys_pkg_id(c->initial_apicid, 0); 695 c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
641# else 696# else
642 c->apicid = c->initial_apicid; 697 c->apicid = c->initial_apicid;
643# endif 698# endif
@@ -684,7 +739,7 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
684 this_cpu->c_identify(c); 739 this_cpu->c_identify(c);
685 740
686#ifdef CONFIG_X86_64 741#ifdef CONFIG_X86_64
687 c->apicid = phys_pkg_id(0); 742 c->apicid = apic->phys_pkg_id(c->initial_apicid, 0);
688#endif 743#endif
689 744
690 /* 745 /*
@@ -708,6 +763,9 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
708 * we do "generic changes." 763 * we do "generic changes."
709 */ 764 */
710 765
766 /* Filter out anything that depends on CPUID levels we don't have */
767 filter_cpuid_features(c, true);
768
711 /* If the model name is still unset, do table lookup. */ 769 /* If the model name is still unset, do table lookup. */
712 if (!c->x86_model_id[0]) { 770 if (!c->x86_model_id[0]) {
713 char *p; 771 char *p;
@@ -877,54 +935,22 @@ static __init int setup_disablecpuid(char *arg)
877__setup("clearcpuid=", setup_disablecpuid); 935__setup("clearcpuid=", setup_disablecpuid);
878 936
879#ifdef CONFIG_X86_64 937#ifdef CONFIG_X86_64
880struct x8664_pda **_cpu_pda __read_mostly;
881EXPORT_SYMBOL(_cpu_pda);
882
883struct desc_ptr idt_descr = { 256 * 16 - 1, (unsigned long) idt_table }; 938struct desc_ptr idt_descr = { 256 * 16 - 1, (unsigned long) idt_table };
884 939
885static char boot_cpu_stack[IRQSTACKSIZE] __page_aligned_bss; 940DEFINE_PER_CPU_FIRST(union irq_stack_union,
941 irq_stack_union) __aligned(PAGE_SIZE);
942DEFINE_PER_CPU(char *, irq_stack_ptr) =
943 init_per_cpu_var(irq_stack_union.irq_stack) + IRQ_STACK_SIZE - 64;
886 944
887void __cpuinit pda_init(int cpu) 945DEFINE_PER_CPU(unsigned long, kernel_stack) =
888{ 946 (unsigned long)&init_thread_union - KERNEL_STACK_OFFSET + THREAD_SIZE;
889 struct x8664_pda *pda = cpu_pda(cpu); 947EXPORT_PER_CPU_SYMBOL(kernel_stack);
890 948
891 /* Setup up data that may be needed in __get_free_pages early */ 949DEFINE_PER_CPU(unsigned int, irq_count) = -1;
892 loadsegment(fs, 0);
893 loadsegment(gs, 0);
894 /* Memory clobbers used to order PDA accessed */
895 mb();
896 wrmsrl(MSR_GS_BASE, pda);
897 mb();
898
899 pda->cpunumber = cpu;
900 pda->irqcount = -1;
901 pda->kernelstack = (unsigned long)stack_thread_info() -
902 PDA_STACKOFFSET + THREAD_SIZE;
903 pda->active_mm = &init_mm;
904 pda->mmu_state = 0;
905
906 if (cpu == 0) {
907 /* others are initialized in smpboot.c */
908 pda->pcurrent = &init_task;
909 pda->irqstackptr = boot_cpu_stack;
910 pda->irqstackptr += IRQSTACKSIZE - 64;
911 } else {
912 if (!pda->irqstackptr) {
913 pda->irqstackptr = (char *)
914 __get_free_pages(GFP_ATOMIC, IRQSTACK_ORDER);
915 if (!pda->irqstackptr)
916 panic("cannot allocate irqstack for cpu %d",
917 cpu);
918 pda->irqstackptr += IRQSTACKSIZE - 64;
919 }
920 950
921 if (pda->nodenumber == 0 && cpu_to_node(cpu) != NUMA_NO_NODE) 951static DEFINE_PER_CPU_PAGE_ALIGNED(char, exception_stacks
922 pda->nodenumber = cpu_to_node(cpu); 952 [(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ + DEBUG_STKSZ])
923 } 953 __aligned(PAGE_SIZE);
924}
925
926static char boot_exception_stacks[(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ +
927 DEBUG_STKSZ] __page_aligned_bss;
928 954
929extern asmlinkage void ignore_sysret(void); 955extern asmlinkage void ignore_sysret(void);
930 956
@@ -957,16 +983,21 @@ unsigned long kernel_eflags;
957 */ 983 */
958DEFINE_PER_CPU(struct orig_ist, orig_ist); 984DEFINE_PER_CPU(struct orig_ist, orig_ist);
959 985
960#else 986#else /* x86_64 */
961 987
962/* Make sure %fs is initialized properly in idle threads */ 988#ifdef CONFIG_CC_STACKPROTECTOR
989DEFINE_PER_CPU(unsigned long, stack_canary);
990#endif
991
992/* Make sure %fs and %gs are initialized properly in idle threads */
963struct pt_regs * __cpuinit idle_regs(struct pt_regs *regs) 993struct pt_regs * __cpuinit idle_regs(struct pt_regs *regs)
964{ 994{
965 memset(regs, 0, sizeof(struct pt_regs)); 995 memset(regs, 0, sizeof(struct pt_regs));
966 regs->fs = __KERNEL_PERCPU; 996 regs->fs = __KERNEL_PERCPU;
997 regs->gs = __KERNEL_STACK_CANARY;
967 return regs; 998 return regs;
968} 999}
969#endif 1000#endif /* x86_64 */
970 1001
971/* 1002/*
972 * cpu_init() initializes state that is per-CPU. Some data is already 1003 * cpu_init() initializes state that is per-CPU. Some data is already
@@ -982,15 +1013,14 @@ void __cpuinit cpu_init(void)
982 struct tss_struct *t = &per_cpu(init_tss, cpu); 1013 struct tss_struct *t = &per_cpu(init_tss, cpu);
983 struct orig_ist *orig_ist = &per_cpu(orig_ist, cpu); 1014 struct orig_ist *orig_ist = &per_cpu(orig_ist, cpu);
984 unsigned long v; 1015 unsigned long v;
985 char *estacks = NULL;
986 struct task_struct *me; 1016 struct task_struct *me;
987 int i; 1017 int i;
988 1018
989 /* CPU 0 is initialised in head64.c */ 1019#ifdef CONFIG_NUMA
990 if (cpu != 0) 1020 if (cpu != 0 && percpu_read(node_number) == 0 &&
991 pda_init(cpu); 1021 cpu_to_node(cpu) != NUMA_NO_NODE)
992 else 1022 percpu_write(node_number, cpu_to_node(cpu));
993 estacks = boot_exception_stacks; 1023#endif
994 1024
995 me = current; 1025 me = current;
996 1026
@@ -1006,7 +1036,9 @@ void __cpuinit cpu_init(void)
1006 * and set up the GDT descriptor: 1036 * and set up the GDT descriptor:
1007 */ 1037 */
1008 1038
1009 switch_to_new_gdt(); 1039 switch_to_new_gdt(cpu);
1040 loadsegment(fs, 0);
1041
1010 load_idt((const struct desc_ptr *)&idt_descr); 1042 load_idt((const struct desc_ptr *)&idt_descr);
1011 1043
1012 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8); 1044 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8);
@@ -1017,25 +1049,20 @@ void __cpuinit cpu_init(void)
1017 barrier(); 1049 barrier();
1018 1050
1019 check_efer(); 1051 check_efer();
1020 if (cpu != 0 && x2apic) 1052 if (cpu != 0)
1021 enable_x2apic(); 1053 enable_x2apic();
1022 1054
1023 /* 1055 /*
1024 * set up and load the per-CPU TSS 1056 * set up and load the per-CPU TSS
1025 */ 1057 */
1026 if (!orig_ist->ist[0]) { 1058 if (!orig_ist->ist[0]) {
1027 static const unsigned int order[N_EXCEPTION_STACKS] = { 1059 static const unsigned int sizes[N_EXCEPTION_STACKS] = {
1028 [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, 1060 [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STKSZ,
1029 [DEBUG_STACK - 1] = DEBUG_STACK_ORDER 1061 [DEBUG_STACK - 1] = DEBUG_STKSZ
1030 }; 1062 };
1063 char *estacks = per_cpu(exception_stacks, cpu);
1031 for (v = 0; v < N_EXCEPTION_STACKS; v++) { 1064 for (v = 0; v < N_EXCEPTION_STACKS; v++) {
1032 if (cpu) { 1065 estacks += sizes[v];
1033 estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]);
1034 if (!estacks)
1035 panic("Cannot allocate exception "
1036 "stack %ld %d\n", v, cpu);
1037 }
1038 estacks += PAGE_SIZE << order[v];
1039 orig_ist->ist[v] = t->x86_tss.ist[v] = 1066 orig_ist->ist[v] = t->x86_tss.ist[v] =
1040 (unsigned long)estacks; 1067 (unsigned long)estacks;
1041 } 1068 }
@@ -1069,22 +1096,19 @@ void __cpuinit cpu_init(void)
1069 */ 1096 */
1070 if (kgdb_connected && arch_kgdb_ops.correct_hw_break) 1097 if (kgdb_connected && arch_kgdb_ops.correct_hw_break)
1071 arch_kgdb_ops.correct_hw_break(); 1098 arch_kgdb_ops.correct_hw_break();
1072 else { 1099 else
1073#endif 1100#endif
1074 /* 1101 {
1075 * Clear all 6 debug registers: 1102 /*
1076 */ 1103 * Clear all 6 debug registers:
1077 1104 */
1078 set_debugreg(0UL, 0); 1105 set_debugreg(0UL, 0);
1079 set_debugreg(0UL, 1); 1106 set_debugreg(0UL, 1);
1080 set_debugreg(0UL, 2); 1107 set_debugreg(0UL, 2);
1081 set_debugreg(0UL, 3); 1108 set_debugreg(0UL, 3);
1082 set_debugreg(0UL, 6); 1109 set_debugreg(0UL, 6);
1083 set_debugreg(0UL, 7); 1110 set_debugreg(0UL, 7);
1084#ifdef CONFIG_KGDB
1085 /* If the kgdb is connected no debug regs should be altered. */
1086 } 1111 }
1087#endif
1088 1112
1089 fpu_init(); 1113 fpu_init();
1090 1114
@@ -1114,7 +1138,7 @@ void __cpuinit cpu_init(void)
1114 clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE); 1138 clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE);
1115 1139
1116 load_idt(&idt_descr); 1140 load_idt(&idt_descr);
1117 switch_to_new_gdt(); 1141 switch_to_new_gdt(cpu);
1118 1142
1119 /* 1143 /*
1120 * Set up and load the per-CPU TSS and LDT 1144 * Set up and load the per-CPU TSS and LDT
@@ -1135,9 +1159,6 @@ void __cpuinit cpu_init(void)
1135 __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss); 1159 __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss);
1136#endif 1160#endif
1137 1161
1138 /* Clear %gs. */
1139 asm volatile ("mov %0, %%gs" : : "r" (0));
1140
1141 /* Clear all 6 debug registers: */ 1162 /* Clear all 6 debug registers: */
1142 set_debugreg(0, 0); 1163 set_debugreg(0, 0);
1143 set_debugreg(0, 1); 1164 set_debugreg(0, 1);
diff --git a/arch/x86/kernel/cpu/cpufreq/Kconfig b/arch/x86/kernel/cpu/cpufreq/Kconfig
index efae3b22a0ff..65792c2cc462 100644
--- a/arch/x86/kernel/cpu/cpufreq/Kconfig
+++ b/arch/x86/kernel/cpu/cpufreq/Kconfig
@@ -245,17 +245,6 @@ config X86_E_POWERSAVER
245 245
246comment "shared options" 246comment "shared options"
247 247
248config X86_ACPI_CPUFREQ_PROC_INTF
249 bool "/proc/acpi/processor/../performance interface (deprecated)"
250 depends on PROC_FS
251 depends on X86_ACPI_CPUFREQ || X86_POWERNOW_K7_ACPI || X86_POWERNOW_K8_ACPI
252 help
253 This enables the deprecated /proc/acpi/processor/../performance
254 interface. While it is helpful for debugging, the generic,
255 cross-architecture cpufreq interfaces should be used.
256
257 If in doubt, say N.
258
259config X86_SPEEDSTEP_LIB 248config X86_SPEEDSTEP_LIB
260 tristate 249 tristate
261 default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD) 250 default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
index 4b1c319d30c3..22590cf688ae 100644
--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -601,7 +601,7 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
601 if (!data) 601 if (!data)
602 return -ENOMEM; 602 return -ENOMEM;
603 603
604 data->acpi_data = percpu_ptr(acpi_perf_data, cpu); 604 data->acpi_data = per_cpu_ptr(acpi_perf_data, cpu);
605 per_cpu(drv_data, cpu) = data; 605 per_cpu(drv_data, cpu) = data;
606 606
607 if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) 607 if (cpu_has(c, X86_FEATURE_CONSTANT_TSC))
diff --git a/arch/x86/kernel/cpu/cpufreq/e_powersaver.c b/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
index c2f930d86640..41ab3f064cb1 100644
--- a/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
+++ b/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
@@ -204,12 +204,12 @@ static int eps_cpu_init(struct cpufreq_policy *policy)
204 } 204 }
205 /* Enable Enhanced PowerSaver */ 205 /* Enable Enhanced PowerSaver */
206 rdmsrl(MSR_IA32_MISC_ENABLE, val); 206 rdmsrl(MSR_IA32_MISC_ENABLE, val);
207 if (!(val & 1 << 16)) { 207 if (!(val & MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP)) {
208 val |= 1 << 16; 208 val |= MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP;
209 wrmsrl(MSR_IA32_MISC_ENABLE, val); 209 wrmsrl(MSR_IA32_MISC_ENABLE, val);
210 /* Can be locked at 0 */ 210 /* Can be locked at 0 */
211 rdmsrl(MSR_IA32_MISC_ENABLE, val); 211 rdmsrl(MSR_IA32_MISC_ENABLE, val);
212 if (!(val & 1 << 16)) { 212 if (!(val & MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP)) {
213 printk(KERN_INFO "eps: Can't enable Enhanced PowerSaver\n"); 213 printk(KERN_INFO "eps: Can't enable Enhanced PowerSaver\n");
214 return -ENODEV; 214 return -ENODEV;
215 } 215 }
diff --git a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
index b585e04cbc9e..3178c3acd97e 100644
--- a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
+++ b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
@@ -277,7 +277,6 @@ static struct cpufreq_driver p4clockmod_driver = {
277 .name = "p4-clockmod", 277 .name = "p4-clockmod",
278 .owner = THIS_MODULE, 278 .owner = THIS_MODULE,
279 .attr = p4clockmod_attr, 279 .attr = p4clockmod_attr,
280 .hide_interface = 1,
281}; 280};
282 281
283 282
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
index 5c28b37dea11..6428aa17b40e 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
@@ -939,10 +939,25 @@ static void powernow_k8_cpu_exit_acpi(struct powernow_k8_data *data)
939 free_cpumask_var(data->acpi_data.shared_cpu_map); 939 free_cpumask_var(data->acpi_data.shared_cpu_map);
940} 940}
941 941
942static int get_transition_latency(struct powernow_k8_data *data)
943{
944 int max_latency = 0;
945 int i;
946 for (i = 0; i < data->acpi_data.state_count; i++) {
947 int cur_latency = data->acpi_data.states[i].transition_latency
948 + data->acpi_data.states[i].bus_master_latency;
949 if (cur_latency > max_latency)
950 max_latency = cur_latency;
951 }
952 /* value in usecs, needs to be in nanoseconds */
953 return 1000 * max_latency;
954}
955
942#else 956#else
943static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data) { return -ENODEV; } 957static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data) { return -ENODEV; }
944static void powernow_k8_cpu_exit_acpi(struct powernow_k8_data *data) { return; } 958static void powernow_k8_cpu_exit_acpi(struct powernow_k8_data *data) { return; }
945static void powernow_k8_acpi_pst_values(struct powernow_k8_data *data, unsigned int index) { return; } 959static void powernow_k8_acpi_pst_values(struct powernow_k8_data *data, unsigned int index) { return; }
960static int get_transition_latency(struct powernow_k8_data *data) { return 0; }
946#endif /* CONFIG_X86_POWERNOW_K8_ACPI */ 961#endif /* CONFIG_X86_POWERNOW_K8_ACPI */
947 962
948/* Take a frequency, and issue the fid/vid transition command */ 963/* Take a frequency, and issue the fid/vid transition command */
@@ -1142,8 +1157,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1142 data->cpu = pol->cpu; 1157 data->cpu = pol->cpu;
1143 data->currpstate = HW_PSTATE_INVALID; 1158 data->currpstate = HW_PSTATE_INVALID;
1144 1159
1145 rc = powernow_k8_cpu_init_acpi(data); 1160 if (powernow_k8_cpu_init_acpi(data)) {
1146 if (rc) {
1147 /* 1161 /*
1148 * Use the PSB BIOS structure. This is only availabe on 1162 * Use the PSB BIOS structure. This is only availabe on
1149 * an UP version, and is deprecated by AMD. 1163 * an UP version, and is deprecated by AMD.
@@ -1161,19 +1175,28 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1161 "ACPI maintainers and complain to your BIOS " 1175 "ACPI maintainers and complain to your BIOS "
1162 "vendor.\n"); 1176 "vendor.\n");
1163#endif 1177#endif
1164 goto err_out; 1178 kfree(data);
1179 return -ENODEV;
1165 } 1180 }
1166 if (pol->cpu != 0) { 1181 if (pol->cpu != 0) {
1167 printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for " 1182 printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for "
1168 "CPU other than CPU0. Complain to your BIOS " 1183 "CPU other than CPU0. Complain to your BIOS "
1169 "vendor.\n"); 1184 "vendor.\n");
1170 goto err_out; 1185 kfree(data);
1186 return -ENODEV;
1171 } 1187 }
1172 rc = find_psb_table(data); 1188 rc = find_psb_table(data);
1173 if (rc) { 1189 if (rc) {
1174 goto err_out; 1190 kfree(data);
1191 return -ENODEV;
1175 } 1192 }
1176 } 1193 /* Take a crude guess here.
1194 * That guess was in microseconds, so multiply with 1000 */
1195 pol->cpuinfo.transition_latency = (
1196 ((data->rvo + 8) * data->vstable * VST_UNITS_20US) +
1197 ((1 << data->irt) * 30)) * 1000;
1198 } else /* ACPI _PSS objects available */
1199 pol->cpuinfo.transition_latency = get_transition_latency(data);
1177 1200
1178 /* only run on specific CPU from here on */ 1201 /* only run on specific CPU from here on */
1179 oldmask = current->cpus_allowed; 1202 oldmask = current->cpus_allowed;
@@ -1204,11 +1227,6 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1204 cpumask_copy(pol->cpus, &per_cpu(cpu_core_map, pol->cpu)); 1227 cpumask_copy(pol->cpus, &per_cpu(cpu_core_map, pol->cpu));
1205 data->available_cores = pol->cpus; 1228 data->available_cores = pol->cpus;
1206 1229
1207 /* Take a crude guess here.
1208 * That guess was in microseconds, so multiply with 1000 */
1209 pol->cpuinfo.transition_latency = (((data->rvo + 8) * data->vstable * VST_UNITS_20US)
1210 + (3 * (1 << data->irt) * 10)) * 1000;
1211
1212 if (cpu_family == CPU_HW_PSTATE) 1230 if (cpu_family == CPU_HW_PSTATE)
1213 pol->cur = find_khz_freq_from_pstate(data->powernow_table, data->currpstate); 1231 pol->cur = find_khz_freq_from_pstate(data->powernow_table, data->currpstate);
1214 else 1232 else
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
index f08998278a3a..c9f1fdc02830 100644
--- a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
+++ b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
@@ -390,14 +390,14 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
390 enable it if not. */ 390 enable it if not. */
391 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 391 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
392 392
393 if (!(l & (1<<16))) { 393 if (!(l & MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP)) {
394 l |= (1<<16); 394 l |= MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP;
395 dprintk("trying to enable Enhanced SpeedStep (%x)\n", l); 395 dprintk("trying to enable Enhanced SpeedStep (%x)\n", l);
396 wrmsr(MSR_IA32_MISC_ENABLE, l, h); 396 wrmsr(MSR_IA32_MISC_ENABLE, l, h);
397 397
398 /* check to see if it stuck */ 398 /* check to see if it stuck */
399 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 399 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
400 if (!(l & (1<<16))) { 400 if (!(l & MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP)) {
401 printk(KERN_INFO PFX 401 printk(KERN_INFO PFX
402 "couldn't enable Enhanced SpeedStep\n"); 402 "couldn't enable Enhanced SpeedStep\n");
403 return -ENODEV; 403 return -ENODEV;
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index 8ea6929e974c..191117f1ad51 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -13,6 +13,7 @@
13#include <asm/uaccess.h> 13#include <asm/uaccess.h>
14#include <asm/ds.h> 14#include <asm/ds.h>
15#include <asm/bugs.h> 15#include <asm/bugs.h>
16#include <asm/cpu.h>
16 17
17#ifdef CONFIG_X86_64 18#ifdef CONFIG_X86_64
18#include <asm/topology.h> 19#include <asm/topology.h>
@@ -24,11 +25,23 @@
24#ifdef CONFIG_X86_LOCAL_APIC 25#ifdef CONFIG_X86_LOCAL_APIC
25#include <asm/mpspec.h> 26#include <asm/mpspec.h>
26#include <asm/apic.h> 27#include <asm/apic.h>
27#include <mach_apic.h>
28#endif 28#endif
29 29
30static void __cpuinit early_init_intel(struct cpuinfo_x86 *c) 30static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
31{ 31{
32 /* Unmask CPUID levels if masked: */
33 if (c->x86 > 6 || (c->x86 == 6 && c->x86_model >= 0xd)) {
34 u64 misc_enable;
35
36 rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
37
38 if (misc_enable & MSR_IA32_MISC_ENABLE_LIMIT_CPUID) {
39 misc_enable &= ~MSR_IA32_MISC_ENABLE_LIMIT_CPUID;
40 wrmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
41 c->cpuid_level = cpuid_eax(0);
42 }
43 }
44
32 if ((c->x86 == 0xf && c->x86_model >= 0x03) || 45 if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
33 (c->x86 == 0x6 && c->x86_model >= 0x0e)) 46 (c->x86 == 0x6 && c->x86_model >= 0x0e))
34 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); 47 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
@@ -50,6 +63,18 @@ static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
50 set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC); 63 set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC);
51 } 64 }
52 65
66 /*
67 * There is a known erratum on Pentium III and Core Solo
68 * and Core Duo CPUs.
69 * " Page with PAT set to WC while associated MTRR is UC
70 * may consolidate to UC "
71 * Because of this erratum, it is better to stick with
72 * setting WC in MTRR rather than using PAT on these CPUs.
73 *
74 * Enable PAT WC only on P4, Core 2 or later CPUs.
75 */
76 if (c->x86 == 6 && c->x86_model < 15)
77 clear_cpu_cap(c, X86_FEATURE_PAT);
53} 78}
54 79
55#ifdef CONFIG_X86_32 80#ifdef CONFIG_X86_32
@@ -86,6 +111,28 @@ static void __cpuinit trap_init_f00f_bug(void)
86} 111}
87#endif 112#endif
88 113
114static void __cpuinit intel_smp_check(struct cpuinfo_x86 *c)
115{
116#ifdef CONFIG_SMP
117 /* calling is from identify_secondary_cpu() ? */
118 if (c->cpu_index == boot_cpu_id)
119 return;
120
121 /*
122 * Mask B, Pentium, but not Pentium MMX
123 */
124 if (c->x86 == 5 &&
125 c->x86_mask >= 1 && c->x86_mask <= 4 &&
126 c->x86_model <= 3) {
127 /*
128 * Remember we have B step Pentia with bugs
129 */
130 WARN_ONCE(1, "WARNING: SMP operation may be unreliable"
131 "with B stepping processors.\n");
132 }
133#endif
134}
135
89static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c) 136static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c)
90{ 137{
91 unsigned long lo, hi; 138 unsigned long lo, hi;
@@ -122,10 +169,10 @@ static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c)
122 */ 169 */
123 if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) { 170 if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
124 rdmsr(MSR_IA32_MISC_ENABLE, lo, hi); 171 rdmsr(MSR_IA32_MISC_ENABLE, lo, hi);
125 if ((lo & (1<<9)) == 0) { 172 if ((lo & MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE) == 0) {
126 printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n"); 173 printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
127 printk (KERN_INFO "CPU: Disabling hardware prefetching (Errata 037)\n"); 174 printk (KERN_INFO "CPU: Disabling hardware prefetching (Errata 037)\n");
128 lo |= (1<<9); /* Disable hw prefetching */ 175 lo |= MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE;
129 wrmsr (MSR_IA32_MISC_ENABLE, lo, hi); 176 wrmsr (MSR_IA32_MISC_ENABLE, lo, hi);
130 } 177 }
131 } 178 }
@@ -162,6 +209,8 @@ static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c)
162#ifdef CONFIG_X86_NUMAQ 209#ifdef CONFIG_X86_NUMAQ
163 numaq_tsc_disable(); 210 numaq_tsc_disable();
164#endif 211#endif
212
213 intel_smp_check(c);
165} 214}
166#else 215#else
167static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c) 216static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c)
@@ -278,6 +327,9 @@ static void __cpuinit init_intel(struct cpuinfo_x86 *c)
278 ds_init_intel(c); 327 ds_init_intel(c);
279 } 328 }
280 329
330 if (c->x86 == 6 && c->x86_model == 29 && cpu_has_clflush)
331 set_cpu_cap(c, X86_FEATURE_CLFLUSH_MONITOR);
332
281#ifdef CONFIG_X86_64 333#ifdef CONFIG_X86_64
282 if (c->x86 == 15) 334 if (c->x86 == 15)
283 c->x86_cache_alignment = c->x86_clflush_size * 2; 335 c->x86_cache_alignment = c->x86_clflush_size * 2;
diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
index 03f93c5dcfb3..8e6ce2c146d6 100644
--- a/arch/x86/kernel/cpu/intel_cacheinfo.c
+++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
@@ -36,8 +36,11 @@ static struct _cache_table cache_table[] __cpuinitdata =
36{ 36{
37 { 0x06, LVL_1_INST, 8 }, /* 4-way set assoc, 32 byte line size */ 37 { 0x06, LVL_1_INST, 8 }, /* 4-way set assoc, 32 byte line size */
38 { 0x08, LVL_1_INST, 16 }, /* 4-way set assoc, 32 byte line size */ 38 { 0x08, LVL_1_INST, 16 }, /* 4-way set assoc, 32 byte line size */
39 { 0x09, LVL_1_INST, 32 }, /* 4-way set assoc, 64 byte line size */
39 { 0x0a, LVL_1_DATA, 8 }, /* 2 way set assoc, 32 byte line size */ 40 { 0x0a, LVL_1_DATA, 8 }, /* 2 way set assoc, 32 byte line size */
40 { 0x0c, LVL_1_DATA, 16 }, /* 4-way set assoc, 32 byte line size */ 41 { 0x0c, LVL_1_DATA, 16 }, /* 4-way set assoc, 32 byte line size */
42 { 0x0d, LVL_1_DATA, 16 }, /* 4-way set assoc, 64 byte line size */
43 { 0x21, LVL_2, 256 }, /* 8-way set assoc, 64 byte line size */
41 { 0x22, LVL_3, 512 }, /* 4-way set assoc, sectored cache, 64 byte line size */ 44 { 0x22, LVL_3, 512 }, /* 4-way set assoc, sectored cache, 64 byte line size */
42 { 0x23, LVL_3, 1024 }, /* 8-way set assoc, sectored cache, 64 byte line size */ 45 { 0x23, LVL_3, 1024 }, /* 8-way set assoc, sectored cache, 64 byte line size */
43 { 0x25, LVL_3, 2048 }, /* 8-way set assoc, sectored cache, 64 byte line size */ 46 { 0x25, LVL_3, 2048 }, /* 8-way set assoc, sectored cache, 64 byte line size */
@@ -85,6 +88,18 @@ static struct _cache_table cache_table[] __cpuinitdata =
85 { 0x85, LVL_2, 2048 }, /* 8-way set assoc, 32 byte line size */ 88 { 0x85, LVL_2, 2048 }, /* 8-way set assoc, 32 byte line size */
86 { 0x86, LVL_2, 512 }, /* 4-way set assoc, 64 byte line size */ 89 { 0x86, LVL_2, 512 }, /* 4-way set assoc, 64 byte line size */
87 { 0x87, LVL_2, 1024 }, /* 8-way set assoc, 64 byte line size */ 90 { 0x87, LVL_2, 1024 }, /* 8-way set assoc, 64 byte line size */
91 { 0xd0, LVL_3, 512 }, /* 4-way set assoc, 64 byte line size */
92 { 0xd1, LVL_3, 1024 }, /* 4-way set assoc, 64 byte line size */
93 { 0xd2, LVL_3, 2048 }, /* 4-way set assoc, 64 byte line size */
94 { 0xd6, LVL_3, 1024 }, /* 8-way set assoc, 64 byte line size */
95 { 0xd7, LVL_3, 2038 }, /* 8-way set assoc, 64 byte line size */
96 { 0xd8, LVL_3, 4096 }, /* 12-way set assoc, 64 byte line size */
97 { 0xdc, LVL_3, 2048 }, /* 12-way set assoc, 64 byte line size */
98 { 0xdd, LVL_3, 4096 }, /* 12-way set assoc, 64 byte line size */
99 { 0xde, LVL_3, 8192 }, /* 12-way set assoc, 64 byte line size */
100 { 0xe2, LVL_3, 2048 }, /* 16-way set assoc, 64 byte line size */
101 { 0xe3, LVL_3, 4096 }, /* 16-way set assoc, 64 byte line size */
102 { 0xe4, LVL_3, 8192 }, /* 16-way set assoc, 64 byte line size */
88 { 0x00, 0, 0} 103 { 0x00, 0, 0}
89}; 104};
90 105
diff --git a/arch/x86/kernel/cpu/mcheck/Makefile b/arch/x86/kernel/cpu/mcheck/Makefile
index d7d2323bbb69..b2f89829bbe8 100644
--- a/arch/x86/kernel/cpu/mcheck/Makefile
+++ b/arch/x86/kernel/cpu/mcheck/Makefile
@@ -4,3 +4,4 @@ obj-$(CONFIG_X86_32) += k7.o p4.o p5.o p6.o winchip.o
4obj-$(CONFIG_X86_MCE_INTEL) += mce_intel_64.o 4obj-$(CONFIG_X86_MCE_INTEL) += mce_intel_64.o
5obj-$(CONFIG_X86_MCE_AMD) += mce_amd_64.o 5obj-$(CONFIG_X86_MCE_AMD) += mce_amd_64.o
6obj-$(CONFIG_X86_MCE_NONFATAL) += non-fatal.o 6obj-$(CONFIG_X86_MCE_NONFATAL) += non-fatal.o
7obj-$(CONFIG_X86_MCE_THRESHOLD) += threshold.o
diff --git a/arch/x86/kernel/cpu/mcheck/mce_32.c b/arch/x86/kernel/cpu/mcheck/mce_32.c
index dfaebce3633e..3552119b091d 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_32.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_32.c
@@ -60,20 +60,6 @@ void mcheck_init(struct cpuinfo_x86 *c)
60 } 60 }
61} 61}
62 62
63static unsigned long old_cr4 __initdata;
64
65void __init stop_mce(void)
66{
67 old_cr4 = read_cr4();
68 clear_in_cr4(X86_CR4_MCE);
69}
70
71void __init restart_mce(void)
72{
73 if (old_cr4 & X86_CR4_MCE)
74 set_in_cr4(X86_CR4_MCE);
75}
76
77static int __init mcheck_disable(char *str) 63static int __init mcheck_disable(char *str)
78{ 64{
79 mce_disabled = 1; 65 mce_disabled = 1;
diff --git a/arch/x86/kernel/cpu/mcheck/mce_64.c b/arch/x86/kernel/cpu/mcheck/mce_64.c
index 1c838032fd37..ca14604611ec 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_64.c
@@ -3,6 +3,8 @@
3 * K8 parts Copyright 2002,2003 Andi Kleen, SuSE Labs. 3 * K8 parts Copyright 2002,2003 Andi Kleen, SuSE Labs.
4 * Rest from unknown author(s). 4 * Rest from unknown author(s).
5 * 2004 Andi Kleen. Rewrote most of it. 5 * 2004 Andi Kleen. Rewrote most of it.
6 * Copyright 2008 Intel Corporation
7 * Author: Andi Kleen
6 */ 8 */
7 9
8#include <linux/init.h> 10#include <linux/init.h>
@@ -24,6 +26,9 @@
24#include <linux/ctype.h> 26#include <linux/ctype.h>
25#include <linux/kmod.h> 27#include <linux/kmod.h>
26#include <linux/kdebug.h> 28#include <linux/kdebug.h>
29#include <linux/kobject.h>
30#include <linux/sysfs.h>
31#include <linux/ratelimit.h>
27#include <asm/processor.h> 32#include <asm/processor.h>
28#include <asm/msr.h> 33#include <asm/msr.h>
29#include <asm/mce.h> 34#include <asm/mce.h>
@@ -32,7 +37,6 @@
32#include <asm/idle.h> 37#include <asm/idle.h>
33 38
34#define MISC_MCELOG_MINOR 227 39#define MISC_MCELOG_MINOR 227
35#define NR_SYSFS_BANKS 6
36 40
37atomic_t mce_entry; 41atomic_t mce_entry;
38 42
@@ -47,7 +51,7 @@ static int mce_dont_init;
47 */ 51 */
48static int tolerant = 1; 52static int tolerant = 1;
49static int banks; 53static int banks;
50static unsigned long bank[NR_SYSFS_BANKS] = { [0 ... NR_SYSFS_BANKS-1] = ~0UL }; 54static u64 *bank;
51static unsigned long notify_user; 55static unsigned long notify_user;
52static int rip_msr; 56static int rip_msr;
53static int mce_bootlog = -1; 57static int mce_bootlog = -1;
@@ -58,6 +62,19 @@ static char *trigger_argv[2] = { trigger, NULL };
58 62
59static DECLARE_WAIT_QUEUE_HEAD(mce_wait); 63static DECLARE_WAIT_QUEUE_HEAD(mce_wait);
60 64
65/* MCA banks polled by the period polling timer for corrected events */
66DEFINE_PER_CPU(mce_banks_t, mce_poll_banks) = {
67 [0 ... BITS_TO_LONGS(MAX_NR_BANKS)-1] = ~0UL
68};
69
70/* Do initial initialization of a struct mce */
71void mce_setup(struct mce *m)
72{
73 memset(m, 0, sizeof(struct mce));
74 m->cpu = smp_processor_id();
75 rdtscll(m->tsc);
76}
77
61/* 78/*
62 * Lockless MCE logging infrastructure. 79 * Lockless MCE logging infrastructure.
63 * This avoids deadlocks on printk locks without having to break locks. Also 80 * This avoids deadlocks on printk locks without having to break locks. Also
@@ -119,11 +136,11 @@ static void print_mce(struct mce *m)
119 print_symbol("{%s}", m->ip); 136 print_symbol("{%s}", m->ip);
120 printk("\n"); 137 printk("\n");
121 } 138 }
122 printk(KERN_EMERG "TSC %Lx ", m->tsc); 139 printk(KERN_EMERG "TSC %llx ", m->tsc);
123 if (m->addr) 140 if (m->addr)
124 printk("ADDR %Lx ", m->addr); 141 printk("ADDR %llx ", m->addr);
125 if (m->misc) 142 if (m->misc)
126 printk("MISC %Lx ", m->misc); 143 printk("MISC %llx ", m->misc);
127 printk("\n"); 144 printk("\n");
128 printk(KERN_EMERG "This is not a software problem!\n"); 145 printk(KERN_EMERG "This is not a software problem!\n");
129 printk(KERN_EMERG "Run through mcelog --ascii to decode " 146 printk(KERN_EMERG "Run through mcelog --ascii to decode "
@@ -149,8 +166,10 @@ static void mce_panic(char *msg, struct mce *backup, unsigned long start)
149 panic(msg); 166 panic(msg);
150} 167}
151 168
152static int mce_available(struct cpuinfo_x86 *c) 169int mce_available(struct cpuinfo_x86 *c)
153{ 170{
171 if (mce_dont_init)
172 return 0;
154 return cpu_has(c, X86_FEATURE_MCE) && cpu_has(c, X86_FEATURE_MCA); 173 return cpu_has(c, X86_FEATURE_MCE) && cpu_has(c, X86_FEATURE_MCA);
155} 174}
156 175
@@ -172,7 +191,77 @@ static inline void mce_get_rip(struct mce *m, struct pt_regs *regs)
172} 191}
173 192
174/* 193/*
175 * The actual machine check handler 194 * Poll for corrected events or events that happened before reset.
195 * Those are just logged through /dev/mcelog.
196 *
197 * This is executed in standard interrupt context.
198 */
199void machine_check_poll(enum mcp_flags flags, mce_banks_t *b)
200{
201 struct mce m;
202 int i;
203
204 mce_setup(&m);
205
206 rdmsrl(MSR_IA32_MCG_STATUS, m.mcgstatus);
207 for (i = 0; i < banks; i++) {
208 if (!bank[i] || !test_bit(i, *b))
209 continue;
210
211 m.misc = 0;
212 m.addr = 0;
213 m.bank = i;
214 m.tsc = 0;
215
216 barrier();
217 rdmsrl(MSR_IA32_MC0_STATUS + i*4, m.status);
218 if (!(m.status & MCI_STATUS_VAL))
219 continue;
220
221 /*
222 * Uncorrected events are handled by the exception handler
223 * when it is enabled. But when the exception is disabled log
224 * everything.
225 *
226 * TBD do the same check for MCI_STATUS_EN here?
227 */
228 if ((m.status & MCI_STATUS_UC) && !(flags & MCP_UC))
229 continue;
230
231 if (m.status & MCI_STATUS_MISCV)
232 rdmsrl(MSR_IA32_MC0_MISC + i*4, m.misc);
233 if (m.status & MCI_STATUS_ADDRV)
234 rdmsrl(MSR_IA32_MC0_ADDR + i*4, m.addr);
235
236 if (!(flags & MCP_TIMESTAMP))
237 m.tsc = 0;
238 /*
239 * Don't get the IP here because it's unlikely to
240 * have anything to do with the actual error location.
241 */
242
243 mce_log(&m);
244 add_taint(TAINT_MACHINE_CHECK);
245
246 /*
247 * Clear state for this bank.
248 */
249 wrmsrl(MSR_IA32_MC0_STATUS+4*i, 0);
250 }
251
252 /*
253 * Don't clear MCG_STATUS here because it's only defined for
254 * exceptions.
255 */
256}
257
258/*
259 * The actual machine check handler. This only handles real
260 * exceptions when something got corrupted coming in through int 18.
261 *
262 * This is executed in NMI context not subject to normal locking rules. This
263 * implies that most kernel services cannot be safely used. Don't even
264 * think about putting a printk in there!
176 */ 265 */
177void do_machine_check(struct pt_regs * regs, long error_code) 266void do_machine_check(struct pt_regs * regs, long error_code)
178{ 267{
@@ -190,17 +279,18 @@ void do_machine_check(struct pt_regs * regs, long error_code)
190 * error. 279 * error.
191 */ 280 */
192 int kill_it = 0; 281 int kill_it = 0;
282 DECLARE_BITMAP(toclear, MAX_NR_BANKS);
193 283
194 atomic_inc(&mce_entry); 284 atomic_inc(&mce_entry);
195 285
196 if ((regs 286 if (notify_die(DIE_NMI, "machine check", regs, error_code,
197 && notify_die(DIE_NMI, "machine check", regs, error_code,
198 18, SIGKILL) == NOTIFY_STOP) 287 18, SIGKILL) == NOTIFY_STOP)
199 || !banks) 288 goto out2;
289 if (!banks)
200 goto out2; 290 goto out2;
201 291
202 memset(&m, 0, sizeof(struct mce)); 292 mce_setup(&m);
203 m.cpu = smp_processor_id(); 293
204 rdmsrl(MSR_IA32_MCG_STATUS, m.mcgstatus); 294 rdmsrl(MSR_IA32_MCG_STATUS, m.mcgstatus);
205 /* if the restart IP is not valid, we're done for */ 295 /* if the restart IP is not valid, we're done for */
206 if (!(m.mcgstatus & MCG_STATUS_RIPV)) 296 if (!(m.mcgstatus & MCG_STATUS_RIPV))
@@ -210,18 +300,32 @@ void do_machine_check(struct pt_regs * regs, long error_code)
210 barrier(); 300 barrier();
211 301
212 for (i = 0; i < banks; i++) { 302 for (i = 0; i < banks; i++) {
213 if (i < NR_SYSFS_BANKS && !bank[i]) 303 __clear_bit(i, toclear);
304 if (!bank[i])
214 continue; 305 continue;
215 306
216 m.misc = 0; 307 m.misc = 0;
217 m.addr = 0; 308 m.addr = 0;
218 m.bank = i; 309 m.bank = i;
219 m.tsc = 0;
220 310
221 rdmsrl(MSR_IA32_MC0_STATUS + i*4, m.status); 311 rdmsrl(MSR_IA32_MC0_STATUS + i*4, m.status);
222 if ((m.status & MCI_STATUS_VAL) == 0) 312 if ((m.status & MCI_STATUS_VAL) == 0)
223 continue; 313 continue;
224 314
315 /*
316 * Non uncorrected errors are handled by machine_check_poll
317 * Leave them alone.
318 */
319 if ((m.status & MCI_STATUS_UC) == 0)
320 continue;
321
322 /*
323 * Set taint even when machine check was not enabled.
324 */
325 add_taint(TAINT_MACHINE_CHECK);
326
327 __set_bit(i, toclear);
328
225 if (m.status & MCI_STATUS_EN) { 329 if (m.status & MCI_STATUS_EN) {
226 /* if PCC was set, there's no way out */ 330 /* if PCC was set, there's no way out */
227 no_way_out |= !!(m.status & MCI_STATUS_PCC); 331 no_way_out |= !!(m.status & MCI_STATUS_PCC);
@@ -235,6 +339,12 @@ void do_machine_check(struct pt_regs * regs, long error_code)
235 no_way_out = 1; 339 no_way_out = 1;
236 kill_it = 1; 340 kill_it = 1;
237 } 341 }
342 } else {
343 /*
344 * Machine check event was not enabled. Clear, but
345 * ignore.
346 */
347 continue;
238 } 348 }
239 349
240 if (m.status & MCI_STATUS_MISCV) 350 if (m.status & MCI_STATUS_MISCV)
@@ -243,10 +353,7 @@ void do_machine_check(struct pt_regs * regs, long error_code)
243 rdmsrl(MSR_IA32_MC0_ADDR + i*4, m.addr); 353 rdmsrl(MSR_IA32_MC0_ADDR + i*4, m.addr);
244 354
245 mce_get_rip(&m, regs); 355 mce_get_rip(&m, regs);
246 if (error_code >= 0) 356 mce_log(&m);
247 rdtscll(m.tsc);
248 if (error_code != -2)
249 mce_log(&m);
250 357
251 /* Did this bank cause the exception? */ 358 /* Did this bank cause the exception? */
252 /* Assume that the bank with uncorrectable errors did it, 359 /* Assume that the bank with uncorrectable errors did it,
@@ -255,14 +362,8 @@ void do_machine_check(struct pt_regs * regs, long error_code)
255 panicm = m; 362 panicm = m;
256 panicm_found = 1; 363 panicm_found = 1;
257 } 364 }
258
259 add_taint(TAINT_MACHINE_CHECK);
260 } 365 }
261 366
262 /* Never do anything final in the polling timer */
263 if (!regs)
264 goto out;
265
266 /* If we didn't find an uncorrectable error, pick 367 /* If we didn't find an uncorrectable error, pick
267 the last one (shouldn't happen, just being safe). */ 368 the last one (shouldn't happen, just being safe). */
268 if (!panicm_found) 369 if (!panicm_found)
@@ -295,11 +396,11 @@ void do_machine_check(struct pt_regs * regs, long error_code)
295 * If we know that the error was in user space, send a 396 * If we know that the error was in user space, send a
296 * SIGBUS. Otherwise, panic if tolerance is low. 397 * SIGBUS. Otherwise, panic if tolerance is low.
297 * 398 *
298 * do_exit() takes an awful lot of locks and has a slight 399 * force_sig() takes an awful lot of locks and has a slight
299 * risk of deadlocking. 400 * risk of deadlocking.
300 */ 401 */
301 if (user_space) { 402 if (user_space) {
302 do_exit(SIGBUS); 403 force_sig(SIGBUS, current);
303 } else if (panic_on_oops || tolerant < 2) { 404 } else if (panic_on_oops || tolerant < 2) {
304 mce_panic("Uncorrected machine check", 405 mce_panic("Uncorrected machine check",
305 &panicm, mcestart); 406 &panicm, mcestart);
@@ -309,10 +410,11 @@ void do_machine_check(struct pt_regs * regs, long error_code)
309 /* notify userspace ASAP */ 410 /* notify userspace ASAP */
310 set_thread_flag(TIF_MCE_NOTIFY); 411 set_thread_flag(TIF_MCE_NOTIFY);
311 412
312 out:
313 /* the last thing we do is clear state */ 413 /* the last thing we do is clear state */
314 for (i = 0; i < banks; i++) 414 for (i = 0; i < banks; i++) {
315 wrmsrl(MSR_IA32_MC0_STATUS+4*i, 0); 415 if (test_bit(i, toclear))
416 wrmsrl(MSR_IA32_MC0_STATUS+4*i, 0);
417 }
316 wrmsrl(MSR_IA32_MCG_STATUS, 0); 418 wrmsrl(MSR_IA32_MCG_STATUS, 0);
317 out2: 419 out2:
318 atomic_dec(&mce_entry); 420 atomic_dec(&mce_entry);
@@ -332,15 +434,13 @@ void do_machine_check(struct pt_regs * regs, long error_code)
332 * and historically has been the register value of the 434 * and historically has been the register value of the
333 * MSR_IA32_THERMAL_STATUS (Intel) msr. 435 * MSR_IA32_THERMAL_STATUS (Intel) msr.
334 */ 436 */
335void mce_log_therm_throt_event(unsigned int cpu, __u64 status) 437void mce_log_therm_throt_event(__u64 status)
336{ 438{
337 struct mce m; 439 struct mce m;
338 440
339 memset(&m, 0, sizeof(m)); 441 mce_setup(&m);
340 m.cpu = cpu;
341 m.bank = MCE_THERMAL_BANK; 442 m.bank = MCE_THERMAL_BANK;
342 m.status = status; 443 m.status = status;
343 rdtscll(m.tsc);
344 mce_log(&m); 444 mce_log(&m);
345} 445}
346#endif /* CONFIG_X86_MCE_INTEL */ 446#endif /* CONFIG_X86_MCE_INTEL */
@@ -353,18 +453,18 @@ void mce_log_therm_throt_event(unsigned int cpu, __u64 status)
353 453
354static int check_interval = 5 * 60; /* 5 minutes */ 454static int check_interval = 5 * 60; /* 5 minutes */
355static int next_interval; /* in jiffies */ 455static int next_interval; /* in jiffies */
356static void mcheck_timer(struct work_struct *work); 456static void mcheck_timer(unsigned long);
357static DECLARE_DELAYED_WORK(mcheck_work, mcheck_timer); 457static DEFINE_PER_CPU(struct timer_list, mce_timer);
358 458
359static void mcheck_check_cpu(void *info) 459static void mcheck_timer(unsigned long data)
360{ 460{
361 if (mce_available(&current_cpu_data)) 461 struct timer_list *t = &per_cpu(mce_timer, data);
362 do_machine_check(NULL, 0);
363}
364 462
365static void mcheck_timer(struct work_struct *work) 463 WARN_ON(smp_processor_id() != data);
366{ 464
367 on_each_cpu(mcheck_check_cpu, NULL, 1); 465 if (mce_available(&current_cpu_data))
466 machine_check_poll(MCP_TIMESTAMP,
467 &__get_cpu_var(mce_poll_banks));
368 468
369 /* 469 /*
370 * Alert userspace if needed. If we logged an MCE, reduce the 470 * Alert userspace if needed. If we logged an MCE, reduce the
@@ -377,31 +477,41 @@ static void mcheck_timer(struct work_struct *work)
377 (int)round_jiffies_relative(check_interval*HZ)); 477 (int)round_jiffies_relative(check_interval*HZ));
378 } 478 }
379 479
380 schedule_delayed_work(&mcheck_work, next_interval); 480 t->expires = jiffies + next_interval;
481 add_timer(t);
482}
483
484static void mce_do_trigger(struct work_struct *work)
485{
486 call_usermodehelper(trigger, trigger_argv, NULL, UMH_NO_WAIT);
381} 487}
382 488
489static DECLARE_WORK(mce_trigger_work, mce_do_trigger);
490
383/* 491/*
384 * This is only called from process context. This is where we do 492 * Notify the user(s) about new machine check events.
385 * anything we need to alert userspace about new MCEs. This is called 493 * Can be called from interrupt context, but not from machine check/NMI
386 * directly from the poller and also from entry.S and idle, thanks to 494 * context.
387 * TIF_MCE_NOTIFY.
388 */ 495 */
389int mce_notify_user(void) 496int mce_notify_user(void)
390{ 497{
498 /* Not more than two messages every minute */
499 static DEFINE_RATELIMIT_STATE(ratelimit, 60*HZ, 2);
500
391 clear_thread_flag(TIF_MCE_NOTIFY); 501 clear_thread_flag(TIF_MCE_NOTIFY);
392 if (test_and_clear_bit(0, &notify_user)) { 502 if (test_and_clear_bit(0, &notify_user)) {
393 static unsigned long last_print;
394 unsigned long now = jiffies;
395
396 wake_up_interruptible(&mce_wait); 503 wake_up_interruptible(&mce_wait);
397 if (trigger[0])
398 call_usermodehelper(trigger, trigger_argv, NULL,
399 UMH_NO_WAIT);
400 504
401 if (time_after_eq(now, last_print + (check_interval*HZ))) { 505 /*
402 last_print = now; 506 * There is no risk of missing notifications because
507 * work_pending is always cleared before the function is
508 * executed.
509 */
510 if (trigger[0] && !work_pending(&mce_trigger_work))
511 schedule_work(&mce_trigger_work);
512
513 if (__ratelimit(&ratelimit))
403 printk(KERN_INFO "Machine check events logged\n"); 514 printk(KERN_INFO "Machine check events logged\n");
404 }
405 515
406 return 1; 516 return 1;
407 } 517 }
@@ -425,63 +535,78 @@ static struct notifier_block mce_idle_notifier = {
425 535
426static __init int periodic_mcheck_init(void) 536static __init int periodic_mcheck_init(void)
427{ 537{
428 next_interval = check_interval * HZ; 538 idle_notifier_register(&mce_idle_notifier);
429 if (next_interval) 539 return 0;
430 schedule_delayed_work(&mcheck_work,
431 round_jiffies_relative(next_interval));
432 idle_notifier_register(&mce_idle_notifier);
433 return 0;
434} 540}
435__initcall(periodic_mcheck_init); 541__initcall(periodic_mcheck_init);
436 542
437
438/* 543/*
439 * Initialize Machine Checks for a CPU. 544 * Initialize Machine Checks for a CPU.
440 */ 545 */
441static void mce_init(void *dummy) 546static int mce_cap_init(void)
442{ 547{
443 u64 cap; 548 u64 cap;
444 int i; 549 unsigned b;
445 550
446 rdmsrl(MSR_IA32_MCG_CAP, cap); 551 rdmsrl(MSR_IA32_MCG_CAP, cap);
447 banks = cap & 0xff; 552 b = cap & 0xff;
448 if (banks > MCE_EXTENDED_BANK) { 553 if (b > MAX_NR_BANKS) {
449 banks = MCE_EXTENDED_BANK; 554 printk(KERN_WARNING
450 printk(KERN_INFO "MCE: warning: using only %d banks\n", 555 "MCE: Using only %u machine check banks out of %u\n",
451 MCE_EXTENDED_BANK); 556 MAX_NR_BANKS, b);
557 b = MAX_NR_BANKS;
452 } 558 }
559
560 /* Don't support asymmetric configurations today */
561 WARN_ON(banks != 0 && b != banks);
562 banks = b;
563 if (!bank) {
564 bank = kmalloc(banks * sizeof(u64), GFP_KERNEL);
565 if (!bank)
566 return -ENOMEM;
567 memset(bank, 0xff, banks * sizeof(u64));
568 }
569
453 /* Use accurate RIP reporting if available. */ 570 /* Use accurate RIP reporting if available. */
454 if ((cap & (1<<9)) && ((cap >> 16) & 0xff) >= 9) 571 if ((cap & (1<<9)) && ((cap >> 16) & 0xff) >= 9)
455 rip_msr = MSR_IA32_MCG_EIP; 572 rip_msr = MSR_IA32_MCG_EIP;
456 573
457 /* Log the machine checks left over from the previous reset. 574 return 0;
458 This also clears all registers */ 575}
459 do_machine_check(NULL, mce_bootlog ? -1 : -2); 576
577static void mce_init(void *dummy)
578{
579 u64 cap;
580 int i;
581 mce_banks_t all_banks;
582
583 /*
584 * Log the machine checks left over from the previous reset.
585 */
586 bitmap_fill(all_banks, MAX_NR_BANKS);
587 machine_check_poll(MCP_UC, &all_banks);
460 588
461 set_in_cr4(X86_CR4_MCE); 589 set_in_cr4(X86_CR4_MCE);
462 590
591 rdmsrl(MSR_IA32_MCG_CAP, cap);
463 if (cap & MCG_CTL_P) 592 if (cap & MCG_CTL_P)
464 wrmsr(MSR_IA32_MCG_CTL, 0xffffffff, 0xffffffff); 593 wrmsr(MSR_IA32_MCG_CTL, 0xffffffff, 0xffffffff);
465 594
466 for (i = 0; i < banks; i++) { 595 for (i = 0; i < banks; i++) {
467 if (i < NR_SYSFS_BANKS) 596 wrmsrl(MSR_IA32_MC0_CTL+4*i, bank[i]);
468 wrmsrl(MSR_IA32_MC0_CTL+4*i, bank[i]);
469 else
470 wrmsrl(MSR_IA32_MC0_CTL+4*i, ~0UL);
471
472 wrmsrl(MSR_IA32_MC0_STATUS+4*i, 0); 597 wrmsrl(MSR_IA32_MC0_STATUS+4*i, 0);
473 } 598 }
474} 599}
475 600
476/* Add per CPU specific workarounds here */ 601/* Add per CPU specific workarounds here */
477static void __cpuinit mce_cpu_quirks(struct cpuinfo_x86 *c) 602static void mce_cpu_quirks(struct cpuinfo_x86 *c)
478{ 603{
479 /* This should be disabled by the BIOS, but isn't always */ 604 /* This should be disabled by the BIOS, but isn't always */
480 if (c->x86_vendor == X86_VENDOR_AMD) { 605 if (c->x86_vendor == X86_VENDOR_AMD) {
481 if(c->x86 == 15) 606 if (c->x86 == 15 && banks > 4)
482 /* disable GART TBL walk error reporting, which trips off 607 /* disable GART TBL walk error reporting, which trips off
483 incorrectly with the IOMMU & 3ware & Cerberus. */ 608 incorrectly with the IOMMU & 3ware & Cerberus. */
484 clear_bit(10, &bank[4]); 609 clear_bit(10, (unsigned long *)&bank[4]);
485 if(c->x86 <= 17 && mce_bootlog < 0) 610 if(c->x86 <= 17 && mce_bootlog < 0)
486 /* Lots of broken BIOS around that don't clear them 611 /* Lots of broken BIOS around that don't clear them
487 by default and leave crap in there. Don't log. */ 612 by default and leave crap in there. Don't log. */
@@ -490,7 +615,7 @@ static void __cpuinit mce_cpu_quirks(struct cpuinfo_x86 *c)
490 615
491} 616}
492 617
493static void __cpuinit mce_cpu_features(struct cpuinfo_x86 *c) 618static void mce_cpu_features(struct cpuinfo_x86 *c)
494{ 619{
495 switch (c->x86_vendor) { 620 switch (c->x86_vendor) {
496 case X86_VENDOR_INTEL: 621 case X86_VENDOR_INTEL:
@@ -504,20 +629,38 @@ static void __cpuinit mce_cpu_features(struct cpuinfo_x86 *c)
504 } 629 }
505} 630}
506 631
632static void mce_init_timer(void)
633{
634 struct timer_list *t = &__get_cpu_var(mce_timer);
635
636 /* data race harmless because everyone sets to the same value */
637 if (!next_interval)
638 next_interval = check_interval * HZ;
639 if (!next_interval)
640 return;
641 setup_timer(t, mcheck_timer, smp_processor_id());
642 t->expires = round_jiffies(jiffies + next_interval);
643 add_timer(t);
644}
645
507/* 646/*
508 * Called for each booted CPU to set up machine checks. 647 * Called for each booted CPU to set up machine checks.
509 * Must be called with preempt off. 648 * Must be called with preempt off.
510 */ 649 */
511void __cpuinit mcheck_init(struct cpuinfo_x86 *c) 650void __cpuinit mcheck_init(struct cpuinfo_x86 *c)
512{ 651{
513 mce_cpu_quirks(c); 652 if (!mce_available(c))
653 return;
514 654
515 if (mce_dont_init || 655 if (mce_cap_init() < 0) {
516 !mce_available(c)) 656 mce_dont_init = 1;
517 return; 657 return;
658 }
659 mce_cpu_quirks(c);
518 660
519 mce_init(NULL); 661 mce_init(NULL);
520 mce_cpu_features(c); 662 mce_cpu_features(c);
663 mce_init_timer();
521} 664}
522 665
523/* 666/*
@@ -573,7 +716,7 @@ static ssize_t mce_read(struct file *filp, char __user *ubuf, size_t usize,
573{ 716{
574 unsigned long *cpu_tsc; 717 unsigned long *cpu_tsc;
575 static DEFINE_MUTEX(mce_read_mutex); 718 static DEFINE_MUTEX(mce_read_mutex);
576 unsigned next; 719 unsigned prev, next;
577 char __user *buf = ubuf; 720 char __user *buf = ubuf;
578 int i, err; 721 int i, err;
579 722
@@ -592,25 +735,32 @@ static ssize_t mce_read(struct file *filp, char __user *ubuf, size_t usize,
592 } 735 }
593 736
594 err = 0; 737 err = 0;
595 for (i = 0; i < next; i++) { 738 prev = 0;
596 unsigned long start = jiffies; 739 do {
597 740 for (i = prev; i < next; i++) {
598 while (!mcelog.entry[i].finished) { 741 unsigned long start = jiffies;
599 if (time_after_eq(jiffies, start + 2)) { 742
600 memset(mcelog.entry + i,0, sizeof(struct mce)); 743 while (!mcelog.entry[i].finished) {
601 goto timeout; 744 if (time_after_eq(jiffies, start + 2)) {
745 memset(mcelog.entry + i, 0,
746 sizeof(struct mce));
747 goto timeout;
748 }
749 cpu_relax();
602 } 750 }
603 cpu_relax(); 751 smp_rmb();
752 err |= copy_to_user(buf, mcelog.entry + i,
753 sizeof(struct mce));
754 buf += sizeof(struct mce);
755timeout:
756 ;
604 } 757 }
605 smp_rmb();
606 err |= copy_to_user(buf, mcelog.entry + i, sizeof(struct mce));
607 buf += sizeof(struct mce);
608 timeout:
609 ;
610 }
611 758
612 memset(mcelog.entry, 0, next * sizeof(struct mce)); 759 memset(mcelog.entry + prev, 0,
613 mcelog.next = 0; 760 (next - prev) * sizeof(struct mce));
761 prev = next;
762 next = cmpxchg(&mcelog.next, prev, 0);
763 } while (next != prev);
614 764
615 synchronize_sched(); 765 synchronize_sched();
616 766
@@ -680,20 +830,6 @@ static struct miscdevice mce_log_device = {
680 &mce_chrdev_ops, 830 &mce_chrdev_ops,
681}; 831};
682 832
683static unsigned long old_cr4 __initdata;
684
685void __init stop_mce(void)
686{
687 old_cr4 = read_cr4();
688 clear_in_cr4(X86_CR4_MCE);
689}
690
691void __init restart_mce(void)
692{
693 if (old_cr4 & X86_CR4_MCE)
694 set_in_cr4(X86_CR4_MCE);
695}
696
697/* 833/*
698 * Old style boot options parsing. Only for compatibility. 834 * Old style boot options parsing. Only for compatibility.
699 */ 835 */
@@ -703,8 +839,7 @@ static int __init mcheck_disable(char *str)
703 return 1; 839 return 1;
704} 840}
705 841
706/* mce=off disables machine check. Note you can re-enable it later 842/* mce=off disables machine check.
707 using sysfs.
708 mce=TOLERANCELEVEL (number, see above) 843 mce=TOLERANCELEVEL (number, see above)
709 mce=bootlog Log MCEs from before booting. Disabled by default on AMD. 844 mce=bootlog Log MCEs from before booting. Disabled by default on AMD.
710 mce=nobootlog Don't log MCEs from before booting. */ 845 mce=nobootlog Don't log MCEs from before booting. */
@@ -728,29 +863,57 @@ __setup("mce=", mcheck_enable);
728 * Sysfs support 863 * Sysfs support
729 */ 864 */
730 865
866/*
867 * Disable machine checks on suspend and shutdown. We can't really handle
868 * them later.
869 */
870static int mce_disable(void)
871{
872 int i;
873
874 for (i = 0; i < banks; i++)
875 wrmsrl(MSR_IA32_MC0_CTL + i*4, 0);
876 return 0;
877}
878
879static int mce_suspend(struct sys_device *dev, pm_message_t state)
880{
881 return mce_disable();
882}
883
884static int mce_shutdown(struct sys_device *dev)
885{
886 return mce_disable();
887}
888
731/* On resume clear all MCE state. Don't want to see leftovers from the BIOS. 889/* On resume clear all MCE state. Don't want to see leftovers from the BIOS.
732 Only one CPU is active at this time, the others get readded later using 890 Only one CPU is active at this time, the others get readded later using
733 CPU hotplug. */ 891 CPU hotplug. */
734static int mce_resume(struct sys_device *dev) 892static int mce_resume(struct sys_device *dev)
735{ 893{
736 mce_init(NULL); 894 mce_init(NULL);
895 mce_cpu_features(&current_cpu_data);
737 return 0; 896 return 0;
738} 897}
739 898
899static void mce_cpu_restart(void *data)
900{
901 del_timer_sync(&__get_cpu_var(mce_timer));
902 if (mce_available(&current_cpu_data))
903 mce_init(NULL);
904 mce_init_timer();
905}
906
740/* Reinit MCEs after user configuration changes */ 907/* Reinit MCEs after user configuration changes */
741static void mce_restart(void) 908static void mce_restart(void)
742{ 909{
743 if (next_interval)
744 cancel_delayed_work(&mcheck_work);
745 /* Timer race is harmless here */
746 on_each_cpu(mce_init, NULL, 1);
747 next_interval = check_interval * HZ; 910 next_interval = check_interval * HZ;
748 if (next_interval) 911 on_each_cpu(mce_cpu_restart, NULL, 1);
749 schedule_delayed_work(&mcheck_work,
750 round_jiffies_relative(next_interval));
751} 912}
752 913
753static struct sysdev_class mce_sysclass = { 914static struct sysdev_class mce_sysclass = {
915 .suspend = mce_suspend,
916 .shutdown = mce_shutdown,
754 .resume = mce_resume, 917 .resume = mce_resume,
755 .name = "machinecheck", 918 .name = "machinecheck",
756}; 919};
@@ -777,16 +940,26 @@ void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu) __cpuinit
777 } \ 940 } \
778 static SYSDEV_ATTR(name, 0644, show_ ## name, set_ ## name); 941 static SYSDEV_ATTR(name, 0644, show_ ## name, set_ ## name);
779 942
780/* 943static struct sysdev_attribute *bank_attrs;
781 * TBD should generate these dynamically based on number of available banks. 944
782 * Have only 6 contol banks in /sysfs until then. 945static ssize_t show_bank(struct sys_device *s, struct sysdev_attribute *attr,
783 */ 946 char *buf)
784ACCESSOR(bank0ctl,bank[0],mce_restart()) 947{
785ACCESSOR(bank1ctl,bank[1],mce_restart()) 948 u64 b = bank[attr - bank_attrs];
786ACCESSOR(bank2ctl,bank[2],mce_restart()) 949 return sprintf(buf, "%llx\n", b);
787ACCESSOR(bank3ctl,bank[3],mce_restart()) 950}
788ACCESSOR(bank4ctl,bank[4],mce_restart()) 951
789ACCESSOR(bank5ctl,bank[5],mce_restart()) 952static ssize_t set_bank(struct sys_device *s, struct sysdev_attribute *attr,
953 const char *buf, size_t siz)
954{
955 char *end;
956 u64 new = simple_strtoull(buf, &end, 0);
957 if (end == buf)
958 return -EINVAL;
959 bank[attr - bank_attrs] = new;
960 mce_restart();
961 return end-buf;
962}
790 963
791static ssize_t show_trigger(struct sys_device *s, struct sysdev_attribute *attr, 964static ssize_t show_trigger(struct sys_device *s, struct sysdev_attribute *attr,
792 char *buf) 965 char *buf)
@@ -813,8 +986,6 @@ static SYSDEV_ATTR(trigger, 0644, show_trigger, set_trigger);
813static SYSDEV_INT_ATTR(tolerant, 0644, tolerant); 986static SYSDEV_INT_ATTR(tolerant, 0644, tolerant);
814ACCESSOR(check_interval,check_interval,mce_restart()) 987ACCESSOR(check_interval,check_interval,mce_restart())
815static struct sysdev_attribute *mce_attributes[] = { 988static struct sysdev_attribute *mce_attributes[] = {
816 &attr_bank0ctl, &attr_bank1ctl, &attr_bank2ctl,
817 &attr_bank3ctl, &attr_bank4ctl, &attr_bank5ctl,
818 &attr_tolerant.attr, &attr_check_interval, &attr_trigger, 989 &attr_tolerant.attr, &attr_check_interval, &attr_trigger,
819 NULL 990 NULL
820}; 991};
@@ -844,11 +1015,22 @@ static __cpuinit int mce_create_device(unsigned int cpu)
844 if (err) 1015 if (err)
845 goto error; 1016 goto error;
846 } 1017 }
1018 for (i = 0; i < banks; i++) {
1019 err = sysdev_create_file(&per_cpu(device_mce, cpu),
1020 &bank_attrs[i]);
1021 if (err)
1022 goto error2;
1023 }
847 cpu_set(cpu, mce_device_initialized); 1024 cpu_set(cpu, mce_device_initialized);
848 1025
849 return 0; 1026 return 0;
1027error2:
1028 while (--i >= 0) {
1029 sysdev_remove_file(&per_cpu(device_mce, cpu),
1030 &bank_attrs[i]);
1031 }
850error: 1032error:
851 while (i--) { 1033 while (--i >= 0) {
852 sysdev_remove_file(&per_cpu(device_mce,cpu), 1034 sysdev_remove_file(&per_cpu(device_mce,cpu),
853 mce_attributes[i]); 1035 mce_attributes[i]);
854 } 1036 }
@@ -867,15 +1049,46 @@ static __cpuinit void mce_remove_device(unsigned int cpu)
867 for (i = 0; mce_attributes[i]; i++) 1049 for (i = 0; mce_attributes[i]; i++)
868 sysdev_remove_file(&per_cpu(device_mce,cpu), 1050 sysdev_remove_file(&per_cpu(device_mce,cpu),
869 mce_attributes[i]); 1051 mce_attributes[i]);
1052 for (i = 0; i < banks; i++)
1053 sysdev_remove_file(&per_cpu(device_mce, cpu),
1054 &bank_attrs[i]);
870 sysdev_unregister(&per_cpu(device_mce,cpu)); 1055 sysdev_unregister(&per_cpu(device_mce,cpu));
871 cpu_clear(cpu, mce_device_initialized); 1056 cpu_clear(cpu, mce_device_initialized);
872} 1057}
873 1058
1059/* Make sure there are no machine checks on offlined CPUs. */
1060static void mce_disable_cpu(void *h)
1061{
1062 int i;
1063 unsigned long action = *(unsigned long *)h;
1064
1065 if (!mce_available(&current_cpu_data))
1066 return;
1067 if (!(action & CPU_TASKS_FROZEN))
1068 cmci_clear();
1069 for (i = 0; i < banks; i++)
1070 wrmsrl(MSR_IA32_MC0_CTL + i*4, 0);
1071}
1072
1073static void mce_reenable_cpu(void *h)
1074{
1075 int i;
1076 unsigned long action = *(unsigned long *)h;
1077
1078 if (!mce_available(&current_cpu_data))
1079 return;
1080 if (!(action & CPU_TASKS_FROZEN))
1081 cmci_reenable();
1082 for (i = 0; i < banks; i++)
1083 wrmsrl(MSR_IA32_MC0_CTL + i*4, bank[i]);
1084}
1085
874/* Get notified when a cpu comes on/off. Be hotplug friendly. */ 1086/* Get notified when a cpu comes on/off. Be hotplug friendly. */
875static int __cpuinit mce_cpu_callback(struct notifier_block *nfb, 1087static int __cpuinit mce_cpu_callback(struct notifier_block *nfb,
876 unsigned long action, void *hcpu) 1088 unsigned long action, void *hcpu)
877{ 1089{
878 unsigned int cpu = (unsigned long)hcpu; 1090 unsigned int cpu = (unsigned long)hcpu;
1091 struct timer_list *t = &per_cpu(mce_timer, cpu);
879 1092
880 switch (action) { 1093 switch (action) {
881 case CPU_ONLINE: 1094 case CPU_ONLINE:
@@ -890,6 +1103,21 @@ static int __cpuinit mce_cpu_callback(struct notifier_block *nfb,
890 threshold_cpu_callback(action, cpu); 1103 threshold_cpu_callback(action, cpu);
891 mce_remove_device(cpu); 1104 mce_remove_device(cpu);
892 break; 1105 break;
1106 case CPU_DOWN_PREPARE:
1107 case CPU_DOWN_PREPARE_FROZEN:
1108 del_timer_sync(t);
1109 smp_call_function_single(cpu, mce_disable_cpu, &action, 1);
1110 break;
1111 case CPU_DOWN_FAILED:
1112 case CPU_DOWN_FAILED_FROZEN:
1113 t->expires = round_jiffies(jiffies + next_interval);
1114 add_timer_on(t, cpu);
1115 smp_call_function_single(cpu, mce_reenable_cpu, &action, 1);
1116 break;
1117 case CPU_POST_DEAD:
1118 /* intentionally ignoring frozen here */
1119 cmci_rediscover(cpu);
1120 break;
893 } 1121 }
894 return NOTIFY_OK; 1122 return NOTIFY_OK;
895} 1123}
@@ -898,6 +1126,34 @@ static struct notifier_block mce_cpu_notifier __cpuinitdata = {
898 .notifier_call = mce_cpu_callback, 1126 .notifier_call = mce_cpu_callback,
899}; 1127};
900 1128
1129static __init int mce_init_banks(void)
1130{
1131 int i;
1132
1133 bank_attrs = kzalloc(sizeof(struct sysdev_attribute) * banks,
1134 GFP_KERNEL);
1135 if (!bank_attrs)
1136 return -ENOMEM;
1137
1138 for (i = 0; i < banks; i++) {
1139 struct sysdev_attribute *a = &bank_attrs[i];
1140 a->attr.name = kasprintf(GFP_KERNEL, "bank%d", i);
1141 if (!a->attr.name)
1142 goto nomem;
1143 a->attr.mode = 0644;
1144 a->show = show_bank;
1145 a->store = set_bank;
1146 }
1147 return 0;
1148
1149nomem:
1150 while (--i >= 0)
1151 kfree(bank_attrs[i].attr.name);
1152 kfree(bank_attrs);
1153 bank_attrs = NULL;
1154 return -ENOMEM;
1155}
1156
901static __init int mce_init_device(void) 1157static __init int mce_init_device(void)
902{ 1158{
903 int err; 1159 int err;
@@ -905,6 +1161,11 @@ static __init int mce_init_device(void)
905 1161
906 if (!mce_available(&boot_cpu_data)) 1162 if (!mce_available(&boot_cpu_data))
907 return -EIO; 1163 return -EIO;
1164
1165 err = mce_init_banks();
1166 if (err)
1167 return err;
1168
908 err = sysdev_class_register(&mce_sysclass); 1169 err = sysdev_class_register(&mce_sysclass);
909 if (err) 1170 if (err)
910 return err; 1171 return err;
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
index 4772e91e8246..c5a32f92d07e 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
@@ -79,6 +79,8 @@ static unsigned char shared_bank[NR_BANKS] = {
79 79
80static DEFINE_PER_CPU(unsigned char, bank_map); /* see which banks are on */ 80static DEFINE_PER_CPU(unsigned char, bank_map); /* see which banks are on */
81 81
82static void amd_threshold_interrupt(void);
83
82/* 84/*
83 * CPU Initialization 85 * CPU Initialization
84 */ 86 */
@@ -121,7 +123,7 @@ static long threshold_restart_bank(void *_tr)
121} 123}
122 124
123/* cpu init entry point, called from mce.c with preempt off */ 125/* cpu init entry point, called from mce.c with preempt off */
124void __cpuinit mce_amd_feature_init(struct cpuinfo_x86 *c) 126void mce_amd_feature_init(struct cpuinfo_x86 *c)
125{ 127{
126 unsigned int bank, block; 128 unsigned int bank, block;
127 unsigned int cpu = smp_processor_id(); 129 unsigned int cpu = smp_processor_id();
@@ -174,6 +176,8 @@ void __cpuinit mce_amd_feature_init(struct cpuinfo_x86 *c)
174 tr.reset = 0; 176 tr.reset = 0;
175 tr.old_limit = 0; 177 tr.old_limit = 0;
176 threshold_restart_bank(&tr); 178 threshold_restart_bank(&tr);
179
180 mce_threshold_vector = amd_threshold_interrupt;
177 } 181 }
178 } 182 }
179} 183}
@@ -187,19 +191,13 @@ void __cpuinit mce_amd_feature_init(struct cpuinfo_x86 *c)
187 * the interrupt goes off when error_count reaches threshold_limit. 191 * the interrupt goes off when error_count reaches threshold_limit.
188 * the handler will simply log mcelog w/ software defined bank number. 192 * the handler will simply log mcelog w/ software defined bank number.
189 */ 193 */
190asmlinkage void mce_threshold_interrupt(void) 194static void amd_threshold_interrupt(void)
191{ 195{
192 unsigned int bank, block; 196 unsigned int bank, block;
193 struct mce m; 197 struct mce m;
194 u32 low = 0, high = 0, address = 0; 198 u32 low = 0, high = 0, address = 0;
195 199
196 ack_APIC_irq(); 200 mce_setup(&m);
197 exit_idle();
198 irq_enter();
199
200 memset(&m, 0, sizeof(m));
201 rdtscll(m.tsc);
202 m.cpu = smp_processor_id();
203 201
204 /* assume first bank caused it */ 202 /* assume first bank caused it */
205 for (bank = 0; bank < NR_BANKS; ++bank) { 203 for (bank = 0; bank < NR_BANKS; ++bank) {
@@ -233,7 +231,8 @@ asmlinkage void mce_threshold_interrupt(void)
233 231
234 /* Log the machine check that caused the threshold 232 /* Log the machine check that caused the threshold
235 event. */ 233 event. */
236 do_machine_check(NULL, 0); 234 machine_check_poll(MCP_TIMESTAMP,
235 &__get_cpu_var(mce_poll_banks));
237 236
238 if (high & MASK_OVERFLOW_HI) { 237 if (high & MASK_OVERFLOW_HI) {
239 rdmsrl(address, m.misc); 238 rdmsrl(address, m.misc);
@@ -243,13 +242,10 @@ asmlinkage void mce_threshold_interrupt(void)
243 + bank * NR_BLOCKS 242 + bank * NR_BLOCKS
244 + block; 243 + block;
245 mce_log(&m); 244 mce_log(&m);
246 goto out; 245 return;
247 } 246 }
248 } 247 }
249 } 248 }
250out:
251 inc_irq_stat(irq_threshold_count);
252 irq_exit();
253} 249}
254 250
255/* 251/*
diff --git a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
index 4b48f251fd39..aaa7d9730938 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
@@ -1,17 +1,21 @@
1/* 1/*
2 * Intel specific MCE features. 2 * Intel specific MCE features.
3 * Copyright 2004 Zwane Mwaikambo <zwane@linuxpower.ca> 3 * Copyright 2004 Zwane Mwaikambo <zwane@linuxpower.ca>
4 * Copyright (C) 2008, 2009 Intel Corporation
5 * Author: Andi Kleen
4 */ 6 */
5 7
6#include <linux/init.h> 8#include <linux/init.h>
7#include <linux/interrupt.h> 9#include <linux/interrupt.h>
8#include <linux/percpu.h> 10#include <linux/percpu.h>
9#include <asm/processor.h> 11#include <asm/processor.h>
12#include <asm/apic.h>
10#include <asm/msr.h> 13#include <asm/msr.h>
11#include <asm/mce.h> 14#include <asm/mce.h>
12#include <asm/hw_irq.h> 15#include <asm/hw_irq.h>
13#include <asm/idle.h> 16#include <asm/idle.h>
14#include <asm/therm_throt.h> 17#include <asm/therm_throt.h>
18#include <asm/apic.h>
15 19
16asmlinkage void smp_thermal_interrupt(void) 20asmlinkage void smp_thermal_interrupt(void)
17{ 21{
@@ -24,13 +28,13 @@ asmlinkage void smp_thermal_interrupt(void)
24 28
25 rdmsrl(MSR_IA32_THERM_STATUS, msr_val); 29 rdmsrl(MSR_IA32_THERM_STATUS, msr_val);
26 if (therm_throt_process(msr_val & 1)) 30 if (therm_throt_process(msr_val & 1))
27 mce_log_therm_throt_event(smp_processor_id(), msr_val); 31 mce_log_therm_throt_event(msr_val);
28 32
29 inc_irq_stat(irq_thermal_count); 33 inc_irq_stat(irq_thermal_count);
30 irq_exit(); 34 irq_exit();
31} 35}
32 36
33static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c) 37static void intel_init_thermal(struct cpuinfo_x86 *c)
34{ 38{
35 u32 l, h; 39 u32 l, h;
36 int tm2 = 0; 40 int tm2 = 0;
@@ -48,13 +52,13 @@ static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c)
48 */ 52 */
49 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 53 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
50 h = apic_read(APIC_LVTTHMR); 54 h = apic_read(APIC_LVTTHMR);
51 if ((l & (1 << 3)) && (h & APIC_DM_SMI)) { 55 if ((l & MSR_IA32_MISC_ENABLE_TM1) && (h & APIC_DM_SMI)) {
52 printk(KERN_DEBUG 56 printk(KERN_DEBUG
53 "CPU%d: Thermal monitoring handled by SMI\n", cpu); 57 "CPU%d: Thermal monitoring handled by SMI\n", cpu);
54 return; 58 return;
55 } 59 }
56 60
57 if (cpu_has(c, X86_FEATURE_TM2) && (l & (1 << 13))) 61 if (cpu_has(c, X86_FEATURE_TM2) && (l & MSR_IA32_MISC_ENABLE_TM2))
58 tm2 = 1; 62 tm2 = 1;
59 63
60 if (h & APIC_VECTOR_MASK) { 64 if (h & APIC_VECTOR_MASK) {
@@ -72,7 +76,7 @@ static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c)
72 wrmsr(MSR_IA32_THERM_INTERRUPT, l | 0x03, h); 76 wrmsr(MSR_IA32_THERM_INTERRUPT, l | 0x03, h);
73 77
74 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 78 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
75 wrmsr(MSR_IA32_MISC_ENABLE, l | (1 << 3), h); 79 wrmsr(MSR_IA32_MISC_ENABLE, l | MSR_IA32_MISC_ENABLE_TM1, h);
76 80
77 l = apic_read(APIC_LVTTHMR); 81 l = apic_read(APIC_LVTTHMR);
78 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED); 82 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED);
@@ -84,7 +88,209 @@ static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c)
84 return; 88 return;
85} 89}
86 90
87void __cpuinit mce_intel_feature_init(struct cpuinfo_x86 *c) 91/*
92 * Support for Intel Correct Machine Check Interrupts. This allows
93 * the CPU to raise an interrupt when a corrected machine check happened.
94 * Normally we pick those up using a regular polling timer.
95 * Also supports reliable discovery of shared banks.
96 */
97
98static DEFINE_PER_CPU(mce_banks_t, mce_banks_owned);
99
100/*
101 * cmci_discover_lock protects against parallel discovery attempts
102 * which could race against each other.
103 */
104static DEFINE_SPINLOCK(cmci_discover_lock);
105
106#define CMCI_THRESHOLD 1
107
108static int cmci_supported(int *banks)
109{
110 u64 cap;
111
112 /*
113 * Vendor check is not strictly needed, but the initial
114 * initialization is vendor keyed and this
115 * makes sure none of the backdoors are entered otherwise.
116 */
117 if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
118 return 0;
119 if (!cpu_has_apic || lapic_get_maxlvt() < 6)
120 return 0;
121 rdmsrl(MSR_IA32_MCG_CAP, cap);
122 *banks = min_t(unsigned, MAX_NR_BANKS, cap & 0xff);
123 return !!(cap & MCG_CMCI_P);
124}
125
126/*
127 * The interrupt handler. This is called on every event.
128 * Just call the poller directly to log any events.
129 * This could in theory increase the threshold under high load,
130 * but doesn't for now.
131 */
132static void intel_threshold_interrupt(void)
133{
134 machine_check_poll(MCP_TIMESTAMP, &__get_cpu_var(mce_banks_owned));
135 mce_notify_user();
136}
137
138static void print_update(char *type, int *hdr, int num)
139{
140 if (*hdr == 0)
141 printk(KERN_INFO "CPU %d MCA banks", smp_processor_id());
142 *hdr = 1;
143 printk(KERN_CONT " %s:%d", type, num);
144}
145
146/*
147 * Enable CMCI (Corrected Machine Check Interrupt) for available MCE banks
148 * on this CPU. Use the algorithm recommended in the SDM to discover shared
149 * banks.
150 */
151static void cmci_discover(int banks, int boot)
152{
153 unsigned long *owned = (void *)&__get_cpu_var(mce_banks_owned);
154 int hdr = 0;
155 int i;
156
157 spin_lock(&cmci_discover_lock);
158 for (i = 0; i < banks; i++) {
159 u64 val;
160
161 if (test_bit(i, owned))
162 continue;
163
164 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
165
166 /* Already owned by someone else? */
167 if (val & CMCI_EN) {
168 if (test_and_clear_bit(i, owned) || boot)
169 print_update("SHD", &hdr, i);
170 __clear_bit(i, __get_cpu_var(mce_poll_banks));
171 continue;
172 }
173
174 val |= CMCI_EN | CMCI_THRESHOLD;
175 wrmsrl(MSR_IA32_MC0_CTL2 + i, val);
176 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
177
178 /* Did the enable bit stick? -- the bank supports CMCI */
179 if (val & CMCI_EN) {
180 if (!test_and_set_bit(i, owned) || boot)
181 print_update("CMCI", &hdr, i);
182 __clear_bit(i, __get_cpu_var(mce_poll_banks));
183 } else {
184 WARN_ON(!test_bit(i, __get_cpu_var(mce_poll_banks)));
185 }
186 }
187 spin_unlock(&cmci_discover_lock);
188 if (hdr)
189 printk(KERN_CONT "\n");
190}
191
192/*
193 * Just in case we missed an event during initialization check
194 * all the CMCI owned banks.
195 */
196void cmci_recheck(void)
197{
198 unsigned long flags;
199 int banks;
200
201 if (!mce_available(&current_cpu_data) || !cmci_supported(&banks))
202 return;
203 local_irq_save(flags);
204 machine_check_poll(MCP_TIMESTAMP, &__get_cpu_var(mce_banks_owned));
205 local_irq_restore(flags);
206}
207
208/*
209 * Disable CMCI on this CPU for all banks it owns when it goes down.
210 * This allows other CPUs to claim the banks on rediscovery.
211 */
212void cmci_clear(void)
213{
214 int i;
215 int banks;
216 u64 val;
217
218 if (!cmci_supported(&banks))
219 return;
220 spin_lock(&cmci_discover_lock);
221 for (i = 0; i < banks; i++) {
222 if (!test_bit(i, __get_cpu_var(mce_banks_owned)))
223 continue;
224 /* Disable CMCI */
225 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
226 val &= ~(CMCI_EN|CMCI_THRESHOLD_MASK);
227 wrmsrl(MSR_IA32_MC0_CTL2 + i, val);
228 __clear_bit(i, __get_cpu_var(mce_banks_owned));
229 }
230 spin_unlock(&cmci_discover_lock);
231}
232
233/*
234 * After a CPU went down cycle through all the others and rediscover
235 * Must run in process context.
236 */
237void cmci_rediscover(int dying)
238{
239 int banks;
240 int cpu;
241 cpumask_var_t old;
242
243 if (!cmci_supported(&banks))
244 return;
245 if (!alloc_cpumask_var(&old, GFP_KERNEL))
246 return;
247 cpumask_copy(old, &current->cpus_allowed);
248
249 for_each_online_cpu (cpu) {
250 if (cpu == dying)
251 continue;
252 if (set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)))
253 continue;
254 /* Recheck banks in case CPUs don't all have the same */
255 if (cmci_supported(&banks))
256 cmci_discover(banks, 0);
257 }
258
259 set_cpus_allowed_ptr(current, old);
260 free_cpumask_var(old);
261}
262
263/*
264 * Reenable CMCI on this CPU in case a CPU down failed.
265 */
266void cmci_reenable(void)
267{
268 int banks;
269 if (cmci_supported(&banks))
270 cmci_discover(banks, 0);
271}
272
273static __cpuinit void intel_init_cmci(void)
274{
275 int banks;
276
277 if (!cmci_supported(&banks))
278 return;
279
280 mce_threshold_vector = intel_threshold_interrupt;
281 cmci_discover(banks, 1);
282 /*
283 * For CPU #0 this runs with still disabled APIC, but that's
284 * ok because only the vector is set up. We still do another
285 * check for the banks later for CPU #0 just to make sure
286 * to not miss any events.
287 */
288 apic_write(APIC_LVTCMCI, THRESHOLD_APIC_VECTOR|APIC_DM_FIXED);
289 cmci_recheck();
290}
291
292void mce_intel_feature_init(struct cpuinfo_x86 *c)
88{ 293{
89 intel_init_thermal(c); 294 intel_init_thermal(c);
295 intel_init_cmci();
90} 296}
diff --git a/arch/x86/kernel/cpu/mcheck/p4.c b/arch/x86/kernel/cpu/mcheck/p4.c
index 9b60fce09f75..f53bdcbaf382 100644
--- a/arch/x86/kernel/cpu/mcheck/p4.c
+++ b/arch/x86/kernel/cpu/mcheck/p4.c
@@ -85,7 +85,7 @@ static void intel_init_thermal(struct cpuinfo_x86 *c)
85 */ 85 */
86 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 86 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
87 h = apic_read(APIC_LVTTHMR); 87 h = apic_read(APIC_LVTTHMR);
88 if ((l & (1<<3)) && (h & APIC_DM_SMI)) { 88 if ((l & MSR_IA32_MISC_ENABLE_TM1) && (h & APIC_DM_SMI)) {
89 printk(KERN_DEBUG "CPU%d: Thermal monitoring handled by SMI\n", 89 printk(KERN_DEBUG "CPU%d: Thermal monitoring handled by SMI\n",
90 cpu); 90 cpu);
91 return; /* -EBUSY */ 91 return; /* -EBUSY */
@@ -111,7 +111,7 @@ static void intel_init_thermal(struct cpuinfo_x86 *c)
111 vendor_thermal_interrupt = intel_thermal_interrupt; 111 vendor_thermal_interrupt = intel_thermal_interrupt;
112 112
113 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 113 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
114 wrmsr(MSR_IA32_MISC_ENABLE, l | (1<<3), h); 114 wrmsr(MSR_IA32_MISC_ENABLE, l | MSR_IA32_MISC_ENABLE_TM1, h);
115 115
116 l = apic_read(APIC_LVTTHMR); 116 l = apic_read(APIC_LVTTHMR);
117 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED); 117 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED);
diff --git a/arch/x86/kernel/cpu/mcheck/threshold.c b/arch/x86/kernel/cpu/mcheck/threshold.c
new file mode 100644
index 000000000000..23ee9e730f78
--- /dev/null
+++ b/arch/x86/kernel/cpu/mcheck/threshold.c
@@ -0,0 +1,29 @@
1/*
2 * Common corrected MCE threshold handler code:
3 */
4#include <linux/interrupt.h>
5#include <linux/kernel.h>
6
7#include <asm/irq_vectors.h>
8#include <asm/apic.h>
9#include <asm/idle.h>
10#include <asm/mce.h>
11
12static void default_threshold_interrupt(void)
13{
14 printk(KERN_ERR "Unexpected threshold interrupt at vector %x\n",
15 THRESHOLD_APIC_VECTOR);
16}
17
18void (*mce_threshold_vector)(void) = default_threshold_interrupt;
19
20asmlinkage void mce_threshold_interrupt(void)
21{
22 exit_idle();
23 irq_enter();
24 inc_irq_stat(irq_threshold_count);
25 mce_threshold_vector();
26 irq_exit();
27 /* Ack only at the end to avoid potential reentry */
28 ack_APIC_irq();
29}
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index b59ddcc88cd8..0c0a455fe95c 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -33,11 +33,13 @@ u64 mtrr_tom2;
33struct mtrr_state_type mtrr_state = {}; 33struct mtrr_state_type mtrr_state = {};
34EXPORT_SYMBOL_GPL(mtrr_state); 34EXPORT_SYMBOL_GPL(mtrr_state);
35 35
36#undef MODULE_PARAM_PREFIX 36static int __initdata mtrr_show;
37#define MODULE_PARAM_PREFIX "mtrr." 37static int __init mtrr_debug(char *opt)
38 38{
39static int mtrr_show; 39 mtrr_show = 1;
40module_param_named(show, mtrr_show, bool, 0); 40 return 0;
41}
42early_param("mtrr.show", mtrr_debug);
41 43
42/* 44/*
43 * Returns the effective MTRR type for the region 45 * Returns the effective MTRR type for the region
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index d259e5d2e054..236a401b8259 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -1594,8 +1594,7 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
1594 1594
1595 /* kvm/qemu doesn't have mtrr set right, don't trim them all */ 1595 /* kvm/qemu doesn't have mtrr set right, don't trim them all */
1596 if (!highest_pfn) { 1596 if (!highest_pfn) {
1597 WARN(!kvm_para_available(), KERN_WARNING 1597 printk(KERN_INFO "CPU MTRRs all blank - virtualized system.\n");
1598 "WARNING: strange, CPU MTRRs all blank?\n");
1599 return 0; 1598 return 0;
1600 } 1599 }
1601 1600
diff --git a/arch/x86/kernel/cpu/perfctr-watchdog.c b/arch/x86/kernel/cpu/perfctr-watchdog.c
index 9abd48b22674..f6c70a164e32 100644
--- a/arch/x86/kernel/cpu/perfctr-watchdog.c
+++ b/arch/x86/kernel/cpu/perfctr-watchdog.c
@@ -19,7 +19,7 @@
19#include <linux/nmi.h> 19#include <linux/nmi.h>
20#include <linux/kprobes.h> 20#include <linux/kprobes.h>
21 21
22#include <asm/apic.h> 22#include <asm/genapic.h>
23#include <asm/intel_arch_perfmon.h> 23#include <asm/intel_arch_perfmon.h>
24 24
25struct nmi_watchdog_ctlblk { 25struct nmi_watchdog_ctlblk {
diff --git a/arch/x86/kernel/cpu/proc.c b/arch/x86/kernel/cpu/proc.c
index 01b1244ef1c0..d67e0e48bc2d 100644
--- a/arch/x86/kernel/cpu/proc.c
+++ b/arch/x86/kernel/cpu/proc.c
@@ -7,11 +7,10 @@
7/* 7/*
8 * Get CPU information for use by the procfs. 8 * Get CPU information for use by the procfs.
9 */ 9 */
10#ifdef CONFIG_X86_32
11static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c, 10static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
12 unsigned int cpu) 11 unsigned int cpu)
13{ 12{
14#ifdef CONFIG_X86_HT 13#ifdef CONFIG_SMP
15 if (c->x86_max_cores * smp_num_siblings > 1) { 14 if (c->x86_max_cores * smp_num_siblings > 1) {
16 seq_printf(m, "physical id\t: %d\n", c->phys_proc_id); 15 seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
17 seq_printf(m, "siblings\t: %d\n", 16 seq_printf(m, "siblings\t: %d\n",
@@ -24,6 +23,7 @@ static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
24#endif 23#endif
25} 24}
26 25
26#ifdef CONFIG_X86_32
27static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c) 27static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
28{ 28{
29 /* 29 /*
@@ -50,22 +50,6 @@ static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
50 c->wp_works_ok ? "yes" : "no"); 50 c->wp_works_ok ? "yes" : "no");
51} 51}
52#else 52#else
53static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
54 unsigned int cpu)
55{
56#ifdef CONFIG_SMP
57 if (c->x86_max_cores * smp_num_siblings > 1) {
58 seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
59 seq_printf(m, "siblings\t: %d\n",
60 cpus_weight(per_cpu(cpu_core_map, cpu)));
61 seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
62 seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
63 seq_printf(m, "apicid\t\t: %d\n", c->apicid);
64 seq_printf(m, "initial apicid\t: %d\n", c->initial_apicid);
65 }
66#endif
67}
68
69static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c) 53static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
70{ 54{
71 seq_printf(m, 55 seq_printf(m,
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index c689d19e35ab..ff958248e61d 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -24,12 +24,10 @@
24#include <asm/apic.h> 24#include <asm/apic.h>
25#include <asm/hpet.h> 25#include <asm/hpet.h>
26#include <linux/kdebug.h> 26#include <linux/kdebug.h>
27#include <asm/smp.h> 27#include <asm/cpu.h>
28#include <asm/reboot.h> 28#include <asm/reboot.h>
29#include <asm/virtext.h> 29#include <asm/virtext.h>
30 30
31#include <mach_ipi.h>
32
33 31
34#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC) 32#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
35 33
diff --git a/arch/x86/kernel/ds.c b/arch/x86/kernel/ds.c
index da91701a2348..87b67e3a765a 100644
--- a/arch/x86/kernel/ds.c
+++ b/arch/x86/kernel/ds.c
@@ -15,8 +15,8 @@
15 * - buffer allocation (memory accounting) 15 * - buffer allocation (memory accounting)
16 * 16 *
17 * 17 *
18 * Copyright (C) 2007-2008 Intel Corporation. 18 * Copyright (C) 2007-2009 Intel Corporation.
19 * Markus Metzger <markus.t.metzger@intel.com>, 2007-2008 19 * Markus Metzger <markus.t.metzger@intel.com>, 2007-2009
20 */ 20 */
21 21
22 22
@@ -729,7 +729,7 @@ struct pebs_tracer *ds_request_pebs(struct task_struct *task,
729 729
730 spin_unlock_irqrestore(&ds_lock, irq); 730 spin_unlock_irqrestore(&ds_lock, irq);
731 731
732 ds_write_config(tracer->ds.context, &tracer->trace.ds, ds_bts); 732 ds_write_config(tracer->ds.context, &tracer->trace.ds, ds_pebs);
733 ds_resume_pebs(tracer); 733 ds_resume_pebs(tracer);
734 734
735 return tracer; 735 return tracer;
@@ -890,7 +890,7 @@ int ds_set_pebs_reset(struct pebs_tracer *tracer, u64 value)
890} 890}
891 891
892static const struct ds_configuration ds_cfg_netburst = { 892static const struct ds_configuration ds_cfg_netburst = {
893 .name = "netburst", 893 .name = "Netburst",
894 .ctl[dsf_bts] = (1 << 2) | (1 << 3), 894 .ctl[dsf_bts] = (1 << 2) | (1 << 3),
895 .ctl[dsf_bts_kernel] = (1 << 5), 895 .ctl[dsf_bts_kernel] = (1 << 5),
896 .ctl[dsf_bts_user] = (1 << 6), 896 .ctl[dsf_bts_user] = (1 << 6),
@@ -904,7 +904,7 @@ static const struct ds_configuration ds_cfg_netburst = {
904#endif 904#endif
905}; 905};
906static const struct ds_configuration ds_cfg_pentium_m = { 906static const struct ds_configuration ds_cfg_pentium_m = {
907 .name = "pentium m", 907 .name = "Pentium M",
908 .ctl[dsf_bts] = (1 << 6) | (1 << 7), 908 .ctl[dsf_bts] = (1 << 6) | (1 << 7),
909 909
910 .sizeof_field = sizeof(long), 910 .sizeof_field = sizeof(long),
@@ -915,8 +915,8 @@ static const struct ds_configuration ds_cfg_pentium_m = {
915 .sizeof_rec[ds_pebs] = sizeof(long) * 18, 915 .sizeof_rec[ds_pebs] = sizeof(long) * 18,
916#endif 916#endif
917}; 917};
918static const struct ds_configuration ds_cfg_core2 = { 918static const struct ds_configuration ds_cfg_core2_atom = {
919 .name = "core 2", 919 .name = "Core 2/Atom",
920 .ctl[dsf_bts] = (1 << 6) | (1 << 7), 920 .ctl[dsf_bts] = (1 << 6) | (1 << 7),
921 .ctl[dsf_bts_kernel] = (1 << 9), 921 .ctl[dsf_bts_kernel] = (1 << 9),
922 .ctl[dsf_bts_user] = (1 << 10), 922 .ctl[dsf_bts_user] = (1 << 10),
@@ -949,19 +949,22 @@ void __cpuinit ds_init_intel(struct cpuinfo_x86 *c)
949 switch (c->x86) { 949 switch (c->x86) {
950 case 0x6: 950 case 0x6:
951 switch (c->x86_model) { 951 switch (c->x86_model) {
952 case 0 ... 0xC: 952 case 0x9:
953 /* sorry, don't know about them */ 953 case 0xd: /* Pentium M */
954 break;
955 case 0xD:
956 case 0xE: /* Pentium M */
957 ds_configure(&ds_cfg_pentium_m); 954 ds_configure(&ds_cfg_pentium_m);
958 break; 955 break;
959 default: /* Core2, Atom, ... */ 956 case 0xf:
960 ds_configure(&ds_cfg_core2); 957 case 0x17: /* Core2 */
958 case 0x1c: /* Atom */
959 ds_configure(&ds_cfg_core2_atom);
960 break;
961 case 0x1a: /* i7 */
962 default:
963 /* sorry, don't know about them */
961 break; 964 break;
962 } 965 }
963 break; 966 break;
964 case 0xF: 967 case 0xf:
965 switch (c->x86_model) { 968 switch (c->x86_model) {
966 case 0x0: 969 case 0x0:
967 case 0x1: 970 case 0x1:
@@ -1026,5 +1029,4 @@ void ds_copy_thread(struct task_struct *tsk, struct task_struct *father)
1026 1029
1027void ds_exit_thread(struct task_struct *tsk) 1030void ds_exit_thread(struct task_struct *tsk)
1028{ 1031{
1029 WARN_ON(tsk->thread.ds_ctx);
1030} 1032}
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 6b1f6f6f8661..87d103ded1c3 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -99,7 +99,7 @@ print_context_stack(struct thread_info *tinfo,
99 frame = frame->next_frame; 99 frame = frame->next_frame;
100 bp = (unsigned long) frame; 100 bp = (unsigned long) frame;
101 } else { 101 } else {
102 ops->address(data, addr, bp == 0); 102 ops->address(data, addr, 0);
103 } 103 }
104 print_ftrace_graph_addr(addr, data, ops, tinfo, graph); 104 print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
105 } 105 }
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
index c302d0707048..d35db5993fd6 100644
--- a/arch/x86/kernel/dumpstack_64.c
+++ b/arch/x86/kernel/dumpstack_64.c
@@ -106,7 +106,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
106 const struct stacktrace_ops *ops, void *data) 106 const struct stacktrace_ops *ops, void *data)
107{ 107{
108 const unsigned cpu = get_cpu(); 108 const unsigned cpu = get_cpu();
109 unsigned long *irqstack_end = (unsigned long *)cpu_pda(cpu)->irqstackptr; 109 unsigned long *irq_stack_end =
110 (unsigned long *)per_cpu(irq_stack_ptr, cpu);
110 unsigned used = 0; 111 unsigned used = 0;
111 struct thread_info *tinfo; 112 struct thread_info *tinfo;
112 int graph = 0; 113 int graph = 0;
@@ -160,23 +161,23 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
160 stack = (unsigned long *) estack_end[-2]; 161 stack = (unsigned long *) estack_end[-2];
161 continue; 162 continue;
162 } 163 }
163 if (irqstack_end) { 164 if (irq_stack_end) {
164 unsigned long *irqstack; 165 unsigned long *irq_stack;
165 irqstack = irqstack_end - 166 irq_stack = irq_stack_end -
166 (IRQSTACKSIZE - 64) / sizeof(*irqstack); 167 (IRQ_STACK_SIZE - 64) / sizeof(*irq_stack);
167 168
168 if (stack >= irqstack && stack < irqstack_end) { 169 if (stack >= irq_stack && stack < irq_stack_end) {
169 if (ops->stack(data, "IRQ") < 0) 170 if (ops->stack(data, "IRQ") < 0)
170 break; 171 break;
171 bp = print_context_stack(tinfo, stack, bp, 172 bp = print_context_stack(tinfo, stack, bp,
172 ops, data, irqstack_end, &graph); 173 ops, data, irq_stack_end, &graph);
173 /* 174 /*
174 * We link to the next stack (which would be 175 * We link to the next stack (which would be
175 * the process stack normally) the last 176 * the process stack normally) the last
176 * pointer (index -1 to end) in the IRQ stack: 177 * pointer (index -1 to end) in the IRQ stack:
177 */ 178 */
178 stack = (unsigned long *) (irqstack_end[-1]); 179 stack = (unsigned long *) (irq_stack_end[-1]);
179 irqstack_end = NULL; 180 irq_stack_end = NULL;
180 ops->stack(data, "EOI"); 181 ops->stack(data, "EOI");
181 continue; 182 continue;
182 } 183 }
@@ -199,10 +200,10 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
199 unsigned long *stack; 200 unsigned long *stack;
200 int i; 201 int i;
201 const int cpu = smp_processor_id(); 202 const int cpu = smp_processor_id();
202 unsigned long *irqstack_end = 203 unsigned long *irq_stack_end =
203 (unsigned long *) (cpu_pda(cpu)->irqstackptr); 204 (unsigned long *)(per_cpu(irq_stack_ptr, cpu));
204 unsigned long *irqstack = 205 unsigned long *irq_stack =
205 (unsigned long *) (cpu_pda(cpu)->irqstackptr - IRQSTACKSIZE); 206 (unsigned long *)(per_cpu(irq_stack_ptr, cpu) - IRQ_STACK_SIZE);
206 207
207 /* 208 /*
208 * debugging aid: "show_stack(NULL, NULL);" prints the 209 * debugging aid: "show_stack(NULL, NULL);" prints the
@@ -218,9 +219,9 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
218 219
219 stack = sp; 220 stack = sp;
220 for (i = 0; i < kstack_depth_to_print; i++) { 221 for (i = 0; i < kstack_depth_to_print; i++) {
221 if (stack >= irqstack && stack <= irqstack_end) { 222 if (stack >= irq_stack && stack <= irq_stack_end) {
222 if (stack == irqstack_end) { 223 if (stack == irq_stack_end) {
223 stack = (unsigned long *) (irqstack_end[-1]); 224 stack = (unsigned long *) (irq_stack_end[-1]);
224 printk(" <EOI> "); 225 printk(" <EOI> ");
225 } 226 }
226 } else { 227 } else {
@@ -241,7 +242,7 @@ void show_registers(struct pt_regs *regs)
241 int i; 242 int i;
242 unsigned long sp; 243 unsigned long sp;
243 const int cpu = smp_processor_id(); 244 const int cpu = smp_processor_id();
244 struct task_struct *cur = cpu_pda(cpu)->pcurrent; 245 struct task_struct *cur = current;
245 246
246 sp = regs->sp; 247 sp = regs->sp;
247 printk("CPU %d ", cpu); 248 printk("CPU %d ", cpu);
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index e85826829cf2..508bec1cee27 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -858,6 +858,9 @@ void __init reserve_early_overlap_ok(u64 start, u64 end, char *name)
858 */ 858 */
859void __init reserve_early(u64 start, u64 end, char *name) 859void __init reserve_early(u64 start, u64 end, char *name)
860{ 860{
861 if (start >= end)
862 return;
863
861 drop_overlaps_that_are_ok(start, end); 864 drop_overlaps_that_are_ok(start, end);
862 __reserve_early(start, end, name, 0); 865 __reserve_early(start, end, name, 0);
863} 866}
diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
index 504ad198e4ad..639ad98238a2 100644
--- a/arch/x86/kernel/early_printk.c
+++ b/arch/x86/kernel/early_printk.c
@@ -13,8 +13,8 @@
13#include <asm/setup.h> 13#include <asm/setup.h>
14#include <xen/hvc-console.h> 14#include <xen/hvc-console.h>
15#include <asm/pci-direct.h> 15#include <asm/pci-direct.h>
16#include <asm/pgtable.h>
17#include <asm/fixmap.h> 16#include <asm/fixmap.h>
17#include <asm/pgtable.h>
18#include <linux/usb/ehci_def.h> 18#include <linux/usb/ehci_def.h>
19 19
20/* Simple VGA output */ 20/* Simple VGA output */
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c
index 1119d247fe11..1736acc4d7aa 100644
--- a/arch/x86/kernel/efi.c
+++ b/arch/x86/kernel/efi.c
@@ -366,10 +366,12 @@ void __init efi_init(void)
366 SMBIOS_TABLE_GUID)) { 366 SMBIOS_TABLE_GUID)) {
367 efi.smbios = config_tables[i].table; 367 efi.smbios = config_tables[i].table;
368 printk(" SMBIOS=0x%lx ", config_tables[i].table); 368 printk(" SMBIOS=0x%lx ", config_tables[i].table);
369#ifdef CONFIG_X86_UV
369 } else if (!efi_guidcmp(config_tables[i].guid, 370 } else if (!efi_guidcmp(config_tables[i].guid,
370 UV_SYSTEM_TABLE_GUID)) { 371 UV_SYSTEM_TABLE_GUID)) {
371 efi.uv_systab = config_tables[i].table; 372 efi.uv_systab = config_tables[i].table;
372 printk(" UVsystab=0x%lx ", config_tables[i].table); 373 printk(" UVsystab=0x%lx ", config_tables[i].table);
374#endif
373 } else if (!efi_guidcmp(config_tables[i].guid, 375 } else if (!efi_guidcmp(config_tables[i].guid,
374 HCDP_TABLE_GUID)) { 376 HCDP_TABLE_GUID)) {
375 efi.hcdp = config_tables[i].table; 377 efi.hcdp = config_tables[i].table;
@@ -467,7 +469,7 @@ void __init efi_enter_virtual_mode(void)
467 efi_memory_desc_t *md; 469 efi_memory_desc_t *md;
468 efi_status_t status; 470 efi_status_t status;
469 unsigned long size; 471 unsigned long size;
470 u64 end, systab, addr, npages; 472 u64 end, systab, addr, npages, end_pfn;
471 void *p, *va; 473 void *p, *va;
472 474
473 efi.systab = NULL; 475 efi.systab = NULL;
@@ -479,7 +481,10 @@ void __init efi_enter_virtual_mode(void)
479 size = md->num_pages << EFI_PAGE_SHIFT; 481 size = md->num_pages << EFI_PAGE_SHIFT;
480 end = md->phys_addr + size; 482 end = md->phys_addr + size;
481 483
482 if (PFN_UP(end) <= max_low_pfn_mapped) 484 end_pfn = PFN_UP(end);
485 if (end_pfn <= max_low_pfn_mapped
486 || (end_pfn > (1UL << (32 - PAGE_SHIFT))
487 && end_pfn <= max_pfn_mapped))
483 va = __va(md->phys_addr); 488 va = __va(md->phys_addr);
484 else 489 else
485 va = efi_ioremap(md->phys_addr, size); 490 va = efi_ioremap(md->phys_addr, size);
diff --git a/arch/x86/kernel/efi_64.c b/arch/x86/kernel/efi_64.c
index 652c5287215f..22c3b7828c50 100644
--- a/arch/x86/kernel/efi_64.c
+++ b/arch/x86/kernel/efi_64.c
@@ -36,6 +36,7 @@
36#include <asm/proto.h> 36#include <asm/proto.h>
37#include <asm/efi.h> 37#include <asm/efi.h>
38#include <asm/cacheflush.h> 38#include <asm/cacheflush.h>
39#include <asm/fixmap.h>
39 40
40static pgd_t save_pgd __initdata; 41static pgd_t save_pgd __initdata;
41static unsigned long efi_flags __initdata; 42static unsigned long efi_flags __initdata;
@@ -99,24 +100,11 @@ void __init efi_call_phys_epilog(void)
99 100
100void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size) 101void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size)
101{ 102{
102 static unsigned pages_mapped __initdata; 103 unsigned long last_map_pfn;
103 unsigned i, pages;
104 unsigned long offset;
105 104
106 pages = PFN_UP(phys_addr + size) - PFN_DOWN(phys_addr); 105 last_map_pfn = init_memory_mapping(phys_addr, phys_addr + size);
107 offset = phys_addr & ~PAGE_MASK; 106 if ((last_map_pfn << PAGE_SHIFT) < phys_addr + size)
108 phys_addr &= PAGE_MASK;
109
110 if (pages_mapped + pages > MAX_EFI_IO_PAGES)
111 return NULL; 107 return NULL;
112 108
113 for (i = 0; i < pages; i++) { 109 return (void __iomem *)__va(phys_addr);
114 __set_fixmap(FIX_EFI_IO_MAP_FIRST_PAGE - pages_mapped,
115 phys_addr, PAGE_KERNEL);
116 phys_addr += PAGE_SIZE;
117 pages_mapped++;
118 }
119
120 return (void __iomem *)__fix_to_virt(FIX_EFI_IO_MAP_FIRST_PAGE - \
121 (pages_mapped - pages)) + offset;
122} 110}
diff --git a/arch/x86/kernel/efi_stub_32.S b/arch/x86/kernel/efi_stub_32.S
index ef00bb77d7e4..fbe66e626c09 100644
--- a/arch/x86/kernel/efi_stub_32.S
+++ b/arch/x86/kernel/efi_stub_32.S
@@ -6,7 +6,7 @@
6 */ 6 */
7 7
8#include <linux/linkage.h> 8#include <linux/linkage.h>
9#include <asm/page.h> 9#include <asm/page_types.h>
10 10
11/* 11/*
12 * efi_call_phys(void *, ...) is a function with variable parameters. 12 * efi_call_phys(void *, ...) is a function with variable parameters.
@@ -113,6 +113,7 @@ ENTRY(efi_call_phys)
113 movl (%edx), %ecx 113 movl (%edx), %ecx
114 pushl %ecx 114 pushl %ecx
115 ret 115 ret
116ENDPROC(efi_call_phys)
116.previous 117.previous
117 118
118.data 119.data
diff --git a/arch/x86/kernel/efi_stub_64.S b/arch/x86/kernel/efi_stub_64.S
index 99b47d48c9f4..4c07ccab8146 100644
--- a/arch/x86/kernel/efi_stub_64.S
+++ b/arch/x86/kernel/efi_stub_64.S
@@ -41,6 +41,7 @@ ENTRY(efi_call0)
41 addq $32, %rsp 41 addq $32, %rsp
42 RESTORE_XMM 42 RESTORE_XMM
43 ret 43 ret
44ENDPROC(efi_call0)
44 45
45ENTRY(efi_call1) 46ENTRY(efi_call1)
46 SAVE_XMM 47 SAVE_XMM
@@ -50,6 +51,7 @@ ENTRY(efi_call1)
50 addq $32, %rsp 51 addq $32, %rsp
51 RESTORE_XMM 52 RESTORE_XMM
52 ret 53 ret
54ENDPROC(efi_call1)
53 55
54ENTRY(efi_call2) 56ENTRY(efi_call2)
55 SAVE_XMM 57 SAVE_XMM
@@ -59,6 +61,7 @@ ENTRY(efi_call2)
59 addq $32, %rsp 61 addq $32, %rsp
60 RESTORE_XMM 62 RESTORE_XMM
61 ret 63 ret
64ENDPROC(efi_call2)
62 65
63ENTRY(efi_call3) 66ENTRY(efi_call3)
64 SAVE_XMM 67 SAVE_XMM
@@ -69,6 +72,7 @@ ENTRY(efi_call3)
69 addq $32, %rsp 72 addq $32, %rsp
70 RESTORE_XMM 73 RESTORE_XMM
71 ret 74 ret
75ENDPROC(efi_call3)
72 76
73ENTRY(efi_call4) 77ENTRY(efi_call4)
74 SAVE_XMM 78 SAVE_XMM
@@ -80,6 +84,7 @@ ENTRY(efi_call4)
80 addq $32, %rsp 84 addq $32, %rsp
81 RESTORE_XMM 85 RESTORE_XMM
82 ret 86 ret
87ENDPROC(efi_call4)
83 88
84ENTRY(efi_call5) 89ENTRY(efi_call5)
85 SAVE_XMM 90 SAVE_XMM
@@ -92,6 +97,7 @@ ENTRY(efi_call5)
92 addq $48, %rsp 97 addq $48, %rsp
93 RESTORE_XMM 98 RESTORE_XMM
94 ret 99 ret
100ENDPROC(efi_call5)
95 101
96ENTRY(efi_call6) 102ENTRY(efi_call6)
97 SAVE_XMM 103 SAVE_XMM
@@ -107,3 +113,4 @@ ENTRY(efi_call6)
107 addq $48, %rsp 113 addq $48, %rsp
108 RESTORE_XMM 114 RESTORE_XMM
109 ret 115 ret
116ENDPROC(efi_call6)
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index 46469029e9d3..899e8938e79f 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -30,12 +30,13 @@
30 * 1C(%esp) - %ds 30 * 1C(%esp) - %ds
31 * 20(%esp) - %es 31 * 20(%esp) - %es
32 * 24(%esp) - %fs 32 * 24(%esp) - %fs
33 * 28(%esp) - orig_eax 33 * 28(%esp) - %gs saved iff !CONFIG_X86_32_LAZY_GS
34 * 2C(%esp) - %eip 34 * 2C(%esp) - orig_eax
35 * 30(%esp) - %cs 35 * 30(%esp) - %eip
36 * 34(%esp) - %eflags 36 * 34(%esp) - %cs
37 * 38(%esp) - %oldesp 37 * 38(%esp) - %eflags
38 * 3C(%esp) - %oldss 38 * 3C(%esp) - %oldesp
39 * 40(%esp) - %oldss
39 * 40 *
40 * "current" is in register %ebx during any slow entries. 41 * "current" is in register %ebx during any slow entries.
41 */ 42 */
@@ -46,7 +47,7 @@
46#include <asm/errno.h> 47#include <asm/errno.h>
47#include <asm/segment.h> 48#include <asm/segment.h>
48#include <asm/smp.h> 49#include <asm/smp.h>
49#include <asm/page.h> 50#include <asm/page_types.h>
50#include <asm/desc.h> 51#include <asm/desc.h>
51#include <asm/percpu.h> 52#include <asm/percpu.h>
52#include <asm/dwarf2.h> 53#include <asm/dwarf2.h>
@@ -101,121 +102,221 @@
101#define resume_userspace_sig resume_userspace 102#define resume_userspace_sig resume_userspace
102#endif 103#endif
103 104
104#define SAVE_ALL \ 105/*
105 cld; \ 106 * User gs save/restore
106 pushl %fs; \ 107 *
107 CFI_ADJUST_CFA_OFFSET 4;\ 108 * %gs is used for userland TLS and kernel only uses it for stack
108 /*CFI_REL_OFFSET fs, 0;*/\ 109 * canary which is required to be at %gs:20 by gcc. Read the comment
109 pushl %es; \ 110 * at the top of stackprotector.h for more info.
110 CFI_ADJUST_CFA_OFFSET 4;\ 111 *
111 /*CFI_REL_OFFSET es, 0;*/\ 112 * Local labels 98 and 99 are used.
112 pushl %ds; \ 113 */
113 CFI_ADJUST_CFA_OFFSET 4;\ 114#ifdef CONFIG_X86_32_LAZY_GS
114 /*CFI_REL_OFFSET ds, 0;*/\ 115
115 pushl %eax; \ 116 /* unfortunately push/pop can't be no-op */
116 CFI_ADJUST_CFA_OFFSET 4;\ 117.macro PUSH_GS
117 CFI_REL_OFFSET eax, 0;\ 118 pushl $0
118 pushl %ebp; \ 119 CFI_ADJUST_CFA_OFFSET 4
119 CFI_ADJUST_CFA_OFFSET 4;\ 120.endm
120 CFI_REL_OFFSET ebp, 0;\ 121.macro POP_GS pop=0
121 pushl %edi; \ 122 addl $(4 + \pop), %esp
122 CFI_ADJUST_CFA_OFFSET 4;\ 123 CFI_ADJUST_CFA_OFFSET -(4 + \pop)
123 CFI_REL_OFFSET edi, 0;\ 124.endm
124 pushl %esi; \ 125.macro POP_GS_EX
125 CFI_ADJUST_CFA_OFFSET 4;\ 126.endm
126 CFI_REL_OFFSET esi, 0;\ 127
127 pushl %edx; \ 128 /* all the rest are no-op */
128 CFI_ADJUST_CFA_OFFSET 4;\ 129.macro PTGS_TO_GS
129 CFI_REL_OFFSET edx, 0;\ 130.endm
130 pushl %ecx; \ 131.macro PTGS_TO_GS_EX
131 CFI_ADJUST_CFA_OFFSET 4;\ 132.endm
132 CFI_REL_OFFSET ecx, 0;\ 133.macro GS_TO_REG reg
133 pushl %ebx; \ 134.endm
134 CFI_ADJUST_CFA_OFFSET 4;\ 135.macro REG_TO_PTGS reg
135 CFI_REL_OFFSET ebx, 0;\ 136.endm
136 movl $(__USER_DS), %edx; \ 137.macro SET_KERNEL_GS reg
137 movl %edx, %ds; \ 138.endm
138 movl %edx, %es; \ 139
139 movl $(__KERNEL_PERCPU), %edx; \ 140#else /* CONFIG_X86_32_LAZY_GS */
141
142.macro PUSH_GS
143 pushl %gs
144 CFI_ADJUST_CFA_OFFSET 4
145 /*CFI_REL_OFFSET gs, 0*/
146.endm
147
148.macro POP_GS pop=0
14998: popl %gs
150 CFI_ADJUST_CFA_OFFSET -4
151 /*CFI_RESTORE gs*/
152 .if \pop <> 0
153 add $\pop, %esp
154 CFI_ADJUST_CFA_OFFSET -\pop
155 .endif
156.endm
157.macro POP_GS_EX
158.pushsection .fixup, "ax"
15999: movl $0, (%esp)
160 jmp 98b
161.section __ex_table, "a"
162 .align 4
163 .long 98b, 99b
164.popsection
165.endm
166
167.macro PTGS_TO_GS
16898: mov PT_GS(%esp), %gs
169.endm
170.macro PTGS_TO_GS_EX
171.pushsection .fixup, "ax"
17299: movl $0, PT_GS(%esp)
173 jmp 98b
174.section __ex_table, "a"
175 .align 4
176 .long 98b, 99b
177.popsection
178.endm
179
180.macro GS_TO_REG reg
181 movl %gs, \reg
182 /*CFI_REGISTER gs, \reg*/
183.endm
184.macro REG_TO_PTGS reg
185 movl \reg, PT_GS(%esp)
186 /*CFI_REL_OFFSET gs, PT_GS*/
187.endm
188.macro SET_KERNEL_GS reg
189 movl $(__KERNEL_STACK_CANARY), \reg
190 movl \reg, %gs
191.endm
192
193#endif /* CONFIG_X86_32_LAZY_GS */
194
195.macro SAVE_ALL
196 cld
197 PUSH_GS
198 pushl %fs
199 CFI_ADJUST_CFA_OFFSET 4
200 /*CFI_REL_OFFSET fs, 0;*/
201 pushl %es
202 CFI_ADJUST_CFA_OFFSET 4
203 /*CFI_REL_OFFSET es, 0;*/
204 pushl %ds
205 CFI_ADJUST_CFA_OFFSET 4
206 /*CFI_REL_OFFSET ds, 0;*/
207 pushl %eax
208 CFI_ADJUST_CFA_OFFSET 4
209 CFI_REL_OFFSET eax, 0
210 pushl %ebp
211 CFI_ADJUST_CFA_OFFSET 4
212 CFI_REL_OFFSET ebp, 0
213 pushl %edi
214 CFI_ADJUST_CFA_OFFSET 4
215 CFI_REL_OFFSET edi, 0
216 pushl %esi
217 CFI_ADJUST_CFA_OFFSET 4
218 CFI_REL_OFFSET esi, 0
219 pushl %edx
220 CFI_ADJUST_CFA_OFFSET 4
221 CFI_REL_OFFSET edx, 0
222 pushl %ecx
223 CFI_ADJUST_CFA_OFFSET 4
224 CFI_REL_OFFSET ecx, 0
225 pushl %ebx
226 CFI_ADJUST_CFA_OFFSET 4
227 CFI_REL_OFFSET ebx, 0
228 movl $(__USER_DS), %edx
229 movl %edx, %ds
230 movl %edx, %es
231 movl $(__KERNEL_PERCPU), %edx
140 movl %edx, %fs 232 movl %edx, %fs
233 SET_KERNEL_GS %edx
234.endm
141 235
142#define RESTORE_INT_REGS \ 236.macro RESTORE_INT_REGS
143 popl %ebx; \ 237 popl %ebx
144 CFI_ADJUST_CFA_OFFSET -4;\ 238 CFI_ADJUST_CFA_OFFSET -4
145 CFI_RESTORE ebx;\ 239 CFI_RESTORE ebx
146 popl %ecx; \ 240 popl %ecx
147 CFI_ADJUST_CFA_OFFSET -4;\ 241 CFI_ADJUST_CFA_OFFSET -4
148 CFI_RESTORE ecx;\ 242 CFI_RESTORE ecx
149 popl %edx; \ 243 popl %edx
150 CFI_ADJUST_CFA_OFFSET -4;\ 244 CFI_ADJUST_CFA_OFFSET -4
151 CFI_RESTORE edx;\ 245 CFI_RESTORE edx
152 popl %esi; \ 246 popl %esi
153 CFI_ADJUST_CFA_OFFSET -4;\ 247 CFI_ADJUST_CFA_OFFSET -4
154 CFI_RESTORE esi;\ 248 CFI_RESTORE esi
155 popl %edi; \ 249 popl %edi
156 CFI_ADJUST_CFA_OFFSET -4;\ 250 CFI_ADJUST_CFA_OFFSET -4
157 CFI_RESTORE edi;\ 251 CFI_RESTORE edi
158 popl %ebp; \ 252 popl %ebp
159 CFI_ADJUST_CFA_OFFSET -4;\ 253 CFI_ADJUST_CFA_OFFSET -4
160 CFI_RESTORE ebp;\ 254 CFI_RESTORE ebp
161 popl %eax; \ 255 popl %eax
162 CFI_ADJUST_CFA_OFFSET -4;\ 256 CFI_ADJUST_CFA_OFFSET -4
163 CFI_RESTORE eax 257 CFI_RESTORE eax
258.endm
164 259
165#define RESTORE_REGS \ 260.macro RESTORE_REGS pop=0
166 RESTORE_INT_REGS; \ 261 RESTORE_INT_REGS
1671: popl %ds; \ 2621: popl %ds
168 CFI_ADJUST_CFA_OFFSET -4;\ 263 CFI_ADJUST_CFA_OFFSET -4
169 /*CFI_RESTORE ds;*/\ 264 /*CFI_RESTORE ds;*/
1702: popl %es; \ 2652: popl %es
171 CFI_ADJUST_CFA_OFFSET -4;\ 266 CFI_ADJUST_CFA_OFFSET -4
172 /*CFI_RESTORE es;*/\ 267 /*CFI_RESTORE es;*/
1733: popl %fs; \ 2683: popl %fs
174 CFI_ADJUST_CFA_OFFSET -4;\ 269 CFI_ADJUST_CFA_OFFSET -4
175 /*CFI_RESTORE fs;*/\ 270 /*CFI_RESTORE fs;*/
176.pushsection .fixup,"ax"; \ 271 POP_GS \pop
1774: movl $0,(%esp); \ 272.pushsection .fixup, "ax"
178 jmp 1b; \ 2734: movl $0, (%esp)
1795: movl $0,(%esp); \ 274 jmp 1b
180 jmp 2b; \ 2755: movl $0, (%esp)
1816: movl $0,(%esp); \ 276 jmp 2b
182 jmp 3b; \ 2776: movl $0, (%esp)
183.section __ex_table,"a";\ 278 jmp 3b
184 .align 4; \ 279.section __ex_table, "a"
185 .long 1b,4b; \ 280 .align 4
186 .long 2b,5b; \ 281 .long 1b, 4b
187 .long 3b,6b; \ 282 .long 2b, 5b
283 .long 3b, 6b
188.popsection 284.popsection
285 POP_GS_EX
286.endm
189 287
190#define RING0_INT_FRAME \ 288.macro RING0_INT_FRAME
191 CFI_STARTPROC simple;\ 289 CFI_STARTPROC simple
192 CFI_SIGNAL_FRAME;\ 290 CFI_SIGNAL_FRAME
193 CFI_DEF_CFA esp, 3*4;\ 291 CFI_DEF_CFA esp, 3*4
194 /*CFI_OFFSET cs, -2*4;*/\ 292 /*CFI_OFFSET cs, -2*4;*/
195 CFI_OFFSET eip, -3*4 293 CFI_OFFSET eip, -3*4
294.endm
196 295
197#define RING0_EC_FRAME \ 296.macro RING0_EC_FRAME
198 CFI_STARTPROC simple;\ 297 CFI_STARTPROC simple
199 CFI_SIGNAL_FRAME;\ 298 CFI_SIGNAL_FRAME
200 CFI_DEF_CFA esp, 4*4;\ 299 CFI_DEF_CFA esp, 4*4
201 /*CFI_OFFSET cs, -2*4;*/\ 300 /*CFI_OFFSET cs, -2*4;*/
202 CFI_OFFSET eip, -3*4 301 CFI_OFFSET eip, -3*4
302.endm
203 303
204#define RING0_PTREGS_FRAME \ 304.macro RING0_PTREGS_FRAME
205 CFI_STARTPROC simple;\ 305 CFI_STARTPROC simple
206 CFI_SIGNAL_FRAME;\ 306 CFI_SIGNAL_FRAME
207 CFI_DEF_CFA esp, PT_OLDESP-PT_EBX;\ 307 CFI_DEF_CFA esp, PT_OLDESP-PT_EBX
208 /*CFI_OFFSET cs, PT_CS-PT_OLDESP;*/\ 308 /*CFI_OFFSET cs, PT_CS-PT_OLDESP;*/
209 CFI_OFFSET eip, PT_EIP-PT_OLDESP;\ 309 CFI_OFFSET eip, PT_EIP-PT_OLDESP
210 /*CFI_OFFSET es, PT_ES-PT_OLDESP;*/\ 310 /*CFI_OFFSET es, PT_ES-PT_OLDESP;*/
211 /*CFI_OFFSET ds, PT_DS-PT_OLDESP;*/\ 311 /*CFI_OFFSET ds, PT_DS-PT_OLDESP;*/
212 CFI_OFFSET eax, PT_EAX-PT_OLDESP;\ 312 CFI_OFFSET eax, PT_EAX-PT_OLDESP
213 CFI_OFFSET ebp, PT_EBP-PT_OLDESP;\ 313 CFI_OFFSET ebp, PT_EBP-PT_OLDESP
214 CFI_OFFSET edi, PT_EDI-PT_OLDESP;\ 314 CFI_OFFSET edi, PT_EDI-PT_OLDESP
215 CFI_OFFSET esi, PT_ESI-PT_OLDESP;\ 315 CFI_OFFSET esi, PT_ESI-PT_OLDESP
216 CFI_OFFSET edx, PT_EDX-PT_OLDESP;\ 316 CFI_OFFSET edx, PT_EDX-PT_OLDESP
217 CFI_OFFSET ecx, PT_ECX-PT_OLDESP;\ 317 CFI_OFFSET ecx, PT_ECX-PT_OLDESP
218 CFI_OFFSET ebx, PT_EBX-PT_OLDESP 318 CFI_OFFSET ebx, PT_EBX-PT_OLDESP
319.endm
219 320
220ENTRY(ret_from_fork) 321ENTRY(ret_from_fork)
221 CFI_STARTPROC 322 CFI_STARTPROC
@@ -362,6 +463,7 @@ sysenter_exit:
362 xorl %ebp,%ebp 463 xorl %ebp,%ebp
363 TRACE_IRQS_ON 464 TRACE_IRQS_ON
3641: mov PT_FS(%esp), %fs 4651: mov PT_FS(%esp), %fs
466 PTGS_TO_GS
365 ENABLE_INTERRUPTS_SYSEXIT 467 ENABLE_INTERRUPTS_SYSEXIT
366 468
367#ifdef CONFIG_AUDITSYSCALL 469#ifdef CONFIG_AUDITSYSCALL
@@ -410,6 +512,7 @@ sysexit_audit:
410 .align 4 512 .align 4
411 .long 1b,2b 513 .long 1b,2b
412.popsection 514.popsection
515 PTGS_TO_GS_EX
413ENDPROC(ia32_sysenter_target) 516ENDPROC(ia32_sysenter_target)
414 517
415 # system call handler stub 518 # system call handler stub
@@ -452,8 +555,7 @@ restore_all:
452restore_nocheck: 555restore_nocheck:
453 TRACE_IRQS_IRET 556 TRACE_IRQS_IRET
454restore_nocheck_notrace: 557restore_nocheck_notrace:
455 RESTORE_REGS 558 RESTORE_REGS 4 # skip orig_eax/error_code
456 addl $4, %esp # skip orig_eax/error_code
457 CFI_ADJUST_CFA_OFFSET -4 559 CFI_ADJUST_CFA_OFFSET -4
458irq_return: 560irq_return:
459 INTERRUPT_RETURN 561 INTERRUPT_RETURN
@@ -595,28 +697,50 @@ syscall_badsys:
595END(syscall_badsys) 697END(syscall_badsys)
596 CFI_ENDPROC 698 CFI_ENDPROC
597 699
598#define FIXUP_ESPFIX_STACK \ 700/*
599 /* since we are on a wrong stack, we cant make it a C code :( */ \ 701 * System calls that need a pt_regs pointer.
600 PER_CPU(gdt_page, %ebx); \ 702 */
601 GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah); \ 703#define PTREGSCALL(name) \
602 addl %esp, %eax; \ 704 ALIGN; \
603 pushl $__KERNEL_DS; \ 705ptregs_##name: \
604 CFI_ADJUST_CFA_OFFSET 4; \ 706 leal 4(%esp),%eax; \
605 pushl %eax; \ 707 jmp sys_##name;
606 CFI_ADJUST_CFA_OFFSET 4; \ 708
607 lss (%esp), %esp; \ 709PTREGSCALL(iopl)
608 CFI_ADJUST_CFA_OFFSET -8; 710PTREGSCALL(fork)
609#define UNWIND_ESPFIX_STACK \ 711PTREGSCALL(clone)
610 movl %ss, %eax; \ 712PTREGSCALL(vfork)
611 /* see if on espfix stack */ \ 713PTREGSCALL(execve)
612 cmpw $__ESPFIX_SS, %ax; \ 714PTREGSCALL(sigaltstack)
613 jne 27f; \ 715PTREGSCALL(sigreturn)
614 movl $__KERNEL_DS, %eax; \ 716PTREGSCALL(rt_sigreturn)
615 movl %eax, %ds; \ 717PTREGSCALL(vm86)
616 movl %eax, %es; \ 718PTREGSCALL(vm86old)
617 /* switch to normal stack */ \ 719
618 FIXUP_ESPFIX_STACK; \ 720.macro FIXUP_ESPFIX_STACK
61927:; 721 /* since we are on a wrong stack, we cant make it a C code :( */
722 PER_CPU(gdt_page, %ebx)
723 GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah)
724 addl %esp, %eax
725 pushl $__KERNEL_DS
726 CFI_ADJUST_CFA_OFFSET 4
727 pushl %eax
728 CFI_ADJUST_CFA_OFFSET 4
729 lss (%esp), %esp
730 CFI_ADJUST_CFA_OFFSET -8
731.endm
732.macro UNWIND_ESPFIX_STACK
733 movl %ss, %eax
734 /* see if on espfix stack */
735 cmpw $__ESPFIX_SS, %ax
736 jne 27f
737 movl $__KERNEL_DS, %eax
738 movl %eax, %ds
739 movl %eax, %es
740 /* switch to normal stack */
741 FIXUP_ESPFIX_STACK
74227:
743.endm
620 744
621/* 745/*
622 * Build the entry stubs and pointer table with some assembler magic. 746 * Build the entry stubs and pointer table with some assembler magic.
@@ -672,7 +796,7 @@ common_interrupt:
672ENDPROC(common_interrupt) 796ENDPROC(common_interrupt)
673 CFI_ENDPROC 797 CFI_ENDPROC
674 798
675#define BUILD_INTERRUPT(name, nr) \ 799#define BUILD_INTERRUPT3(name, nr, fn) \
676ENTRY(name) \ 800ENTRY(name) \
677 RING0_INT_FRAME; \ 801 RING0_INT_FRAME; \
678 pushl $~(nr); \ 802 pushl $~(nr); \
@@ -680,13 +804,15 @@ ENTRY(name) \
680 SAVE_ALL; \ 804 SAVE_ALL; \
681 TRACE_IRQS_OFF \ 805 TRACE_IRQS_OFF \
682 movl %esp,%eax; \ 806 movl %esp,%eax; \
683 call smp_##name; \ 807 call fn; \
684 jmp ret_from_intr; \ 808 jmp ret_from_intr; \
685 CFI_ENDPROC; \ 809 CFI_ENDPROC; \
686ENDPROC(name) 810ENDPROC(name)
687 811
812#define BUILD_INTERRUPT(name, nr) BUILD_INTERRUPT3(name, nr, smp_##name)
813
688/* The include is where all of the SMP etc. interrupts come from */ 814/* The include is where all of the SMP etc. interrupts come from */
689#include "entry_arch.h" 815#include <asm/entry_arch.h>
690 816
691ENTRY(coprocessor_error) 817ENTRY(coprocessor_error)
692 RING0_INT_FRAME 818 RING0_INT_FRAME
@@ -1068,7 +1194,10 @@ ENTRY(page_fault)
1068 CFI_ADJUST_CFA_OFFSET 4 1194 CFI_ADJUST_CFA_OFFSET 4
1069 ALIGN 1195 ALIGN
1070error_code: 1196error_code:
1071 /* the function address is in %fs's slot on the stack */ 1197 /* the function address is in %gs's slot on the stack */
1198 pushl %fs
1199 CFI_ADJUST_CFA_OFFSET 4
1200 /*CFI_REL_OFFSET fs, 0*/
1072 pushl %es 1201 pushl %es
1073 CFI_ADJUST_CFA_OFFSET 4 1202 CFI_ADJUST_CFA_OFFSET 4
1074 /*CFI_REL_OFFSET es, 0*/ 1203 /*CFI_REL_OFFSET es, 0*/
@@ -1097,20 +1226,15 @@ error_code:
1097 CFI_ADJUST_CFA_OFFSET 4 1226 CFI_ADJUST_CFA_OFFSET 4
1098 CFI_REL_OFFSET ebx, 0 1227 CFI_REL_OFFSET ebx, 0
1099 cld 1228 cld
1100 pushl %fs
1101 CFI_ADJUST_CFA_OFFSET 4
1102 /*CFI_REL_OFFSET fs, 0*/
1103 movl $(__KERNEL_PERCPU), %ecx 1229 movl $(__KERNEL_PERCPU), %ecx
1104 movl %ecx, %fs 1230 movl %ecx, %fs
1105 UNWIND_ESPFIX_STACK 1231 UNWIND_ESPFIX_STACK
1106 popl %ecx 1232 GS_TO_REG %ecx
1107 CFI_ADJUST_CFA_OFFSET -4 1233 movl PT_GS(%esp), %edi # get the function address
1108 /*CFI_REGISTER es, ecx*/
1109 movl PT_FS(%esp), %edi # get the function address
1110 movl PT_ORIG_EAX(%esp), %edx # get the error code 1234 movl PT_ORIG_EAX(%esp), %edx # get the error code
1111 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart 1235 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
1112 mov %ecx, PT_FS(%esp) 1236 REG_TO_PTGS %ecx
1113 /*CFI_REL_OFFSET fs, ES*/ 1237 SET_KERNEL_GS %ecx
1114 movl $(__USER_DS), %ecx 1238 movl $(__USER_DS), %ecx
1115 movl %ecx, %ds 1239 movl %ecx, %ds
1116 movl %ecx, %es 1240 movl %ecx, %es
@@ -1134,26 +1258,27 @@ END(page_fault)
1134 * by hand onto the new stack - while updating the return eip past 1258 * by hand onto the new stack - while updating the return eip past
1135 * the instruction that would have done it for sysenter. 1259 * the instruction that would have done it for sysenter.
1136 */ 1260 */
1137#define FIX_STACK(offset, ok, label) \ 1261.macro FIX_STACK offset ok label
1138 cmpw $__KERNEL_CS,4(%esp); \ 1262 cmpw $__KERNEL_CS, 4(%esp)
1139 jne ok; \ 1263 jne \ok
1140label: \ 1264\label:
1141 movl TSS_sysenter_sp0+offset(%esp),%esp; \ 1265 movl TSS_sysenter_sp0 + \offset(%esp), %esp
1142 CFI_DEF_CFA esp, 0; \ 1266 CFI_DEF_CFA esp, 0
1143 CFI_UNDEFINED eip; \ 1267 CFI_UNDEFINED eip
1144 pushfl; \ 1268 pushfl
1145 CFI_ADJUST_CFA_OFFSET 4; \ 1269 CFI_ADJUST_CFA_OFFSET 4
1146 pushl $__KERNEL_CS; \ 1270 pushl $__KERNEL_CS
1147 CFI_ADJUST_CFA_OFFSET 4; \ 1271 CFI_ADJUST_CFA_OFFSET 4
1148 pushl $sysenter_past_esp; \ 1272 pushl $sysenter_past_esp
1149 CFI_ADJUST_CFA_OFFSET 4; \ 1273 CFI_ADJUST_CFA_OFFSET 4
1150 CFI_REL_OFFSET eip, 0 1274 CFI_REL_OFFSET eip, 0
1275.endm
1151 1276
1152ENTRY(debug) 1277ENTRY(debug)
1153 RING0_INT_FRAME 1278 RING0_INT_FRAME
1154 cmpl $ia32_sysenter_target,(%esp) 1279 cmpl $ia32_sysenter_target,(%esp)
1155 jne debug_stack_correct 1280 jne debug_stack_correct
1156 FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn) 1281 FIX_STACK 12, debug_stack_correct, debug_esp_fix_insn
1157debug_stack_correct: 1282debug_stack_correct:
1158 pushl $-1 # mark this as an int 1283 pushl $-1 # mark this as an int
1159 CFI_ADJUST_CFA_OFFSET 4 1284 CFI_ADJUST_CFA_OFFSET 4
@@ -1211,7 +1336,7 @@ nmi_stack_correct:
1211 1336
1212nmi_stack_fixup: 1337nmi_stack_fixup:
1213 RING0_INT_FRAME 1338 RING0_INT_FRAME
1214 FIX_STACK(12,nmi_stack_correct, 1) 1339 FIX_STACK 12, nmi_stack_correct, 1
1215 jmp nmi_stack_correct 1340 jmp nmi_stack_correct
1216 1341
1217nmi_debug_stack_check: 1342nmi_debug_stack_check:
@@ -1222,7 +1347,7 @@ nmi_debug_stack_check:
1222 jb nmi_stack_correct 1347 jb nmi_stack_correct
1223 cmpl $debug_esp_fix_insn,(%esp) 1348 cmpl $debug_esp_fix_insn,(%esp)
1224 ja nmi_stack_correct 1349 ja nmi_stack_correct
1225 FIX_STACK(24,nmi_stack_correct, 1) 1350 FIX_STACK 24, nmi_stack_correct, 1
1226 jmp nmi_stack_correct 1351 jmp nmi_stack_correct
1227 1352
1228nmi_espfix_stack: 1353nmi_espfix_stack:
@@ -1234,7 +1359,7 @@ nmi_espfix_stack:
1234 CFI_ADJUST_CFA_OFFSET 4 1359 CFI_ADJUST_CFA_OFFSET 4
1235 pushl %esp 1360 pushl %esp
1236 CFI_ADJUST_CFA_OFFSET 4 1361 CFI_ADJUST_CFA_OFFSET 4
1237 addw $4, (%esp) 1362 addl $4, (%esp)
1238 /* copy the iret frame of 12 bytes */ 1363 /* copy the iret frame of 12 bytes */
1239 .rept 3 1364 .rept 3
1240 pushl 16(%esp) 1365 pushl 16(%esp)
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index e28c7a987793..7ba4621c0dfa 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -48,10 +48,11 @@
48#include <asm/unistd.h> 48#include <asm/unistd.h>
49#include <asm/thread_info.h> 49#include <asm/thread_info.h>
50#include <asm/hw_irq.h> 50#include <asm/hw_irq.h>
51#include <asm/page.h> 51#include <asm/page_types.h>
52#include <asm/irqflags.h> 52#include <asm/irqflags.h>
53#include <asm/paravirt.h> 53#include <asm/paravirt.h>
54#include <asm/ftrace.h> 54#include <asm/ftrace.h>
55#include <asm/percpu.h>
55 56
56/* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 57/* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
57#include <linux/elf-em.h> 58#include <linux/elf-em.h>
@@ -76,20 +77,17 @@ ENTRY(ftrace_caller)
76 movq 8(%rbp), %rsi 77 movq 8(%rbp), %rsi
77 subq $MCOUNT_INSN_SIZE, %rdi 78 subq $MCOUNT_INSN_SIZE, %rdi
78 79
79.globl ftrace_call 80GLOBAL(ftrace_call)
80ftrace_call:
81 call ftrace_stub 81 call ftrace_stub
82 82
83 MCOUNT_RESTORE_FRAME 83 MCOUNT_RESTORE_FRAME
84 84
85#ifdef CONFIG_FUNCTION_GRAPH_TRACER 85#ifdef CONFIG_FUNCTION_GRAPH_TRACER
86.globl ftrace_graph_call 86GLOBAL(ftrace_graph_call)
87ftrace_graph_call:
88 jmp ftrace_stub 87 jmp ftrace_stub
89#endif 88#endif
90 89
91.globl ftrace_stub 90GLOBAL(ftrace_stub)
92ftrace_stub:
93 retq 91 retq
94END(ftrace_caller) 92END(ftrace_caller)
95 93
@@ -109,8 +107,7 @@ ENTRY(mcount)
109 jnz ftrace_graph_caller 107 jnz ftrace_graph_caller
110#endif 108#endif
111 109
112.globl ftrace_stub 110GLOBAL(ftrace_stub)
113ftrace_stub:
114 retq 111 retq
115 112
116trace: 113trace:
@@ -147,9 +144,7 @@ ENTRY(ftrace_graph_caller)
147 retq 144 retq
148END(ftrace_graph_caller) 145END(ftrace_graph_caller)
149 146
150 147GLOBAL(return_to_handler)
151.globl return_to_handler
152return_to_handler:
153 subq $80, %rsp 148 subq $80, %rsp
154 149
155 movq %rax, (%rsp) 150 movq %rax, (%rsp)
@@ -187,6 +182,7 @@ return_to_handler:
187ENTRY(native_usergs_sysret64) 182ENTRY(native_usergs_sysret64)
188 swapgs 183 swapgs
189 sysretq 184 sysretq
185ENDPROC(native_usergs_sysret64)
190#endif /* CONFIG_PARAVIRT */ 186#endif /* CONFIG_PARAVIRT */
191 187
192 188
@@ -209,7 +205,7 @@ ENTRY(native_usergs_sysret64)
209 205
210 /* %rsp:at FRAMEEND */ 206 /* %rsp:at FRAMEEND */
211 .macro FIXUP_TOP_OF_STACK tmp offset=0 207 .macro FIXUP_TOP_OF_STACK tmp offset=0
212 movq %gs:pda_oldrsp,\tmp 208 movq PER_CPU_VAR(old_rsp),\tmp
213 movq \tmp,RSP+\offset(%rsp) 209 movq \tmp,RSP+\offset(%rsp)
214 movq $__USER_DS,SS+\offset(%rsp) 210 movq $__USER_DS,SS+\offset(%rsp)
215 movq $__USER_CS,CS+\offset(%rsp) 211 movq $__USER_CS,CS+\offset(%rsp)
@@ -220,7 +216,7 @@ ENTRY(native_usergs_sysret64)
220 216
221 .macro RESTORE_TOP_OF_STACK tmp offset=0 217 .macro RESTORE_TOP_OF_STACK tmp offset=0
222 movq RSP+\offset(%rsp),\tmp 218 movq RSP+\offset(%rsp),\tmp
223 movq \tmp,%gs:pda_oldrsp 219 movq \tmp,PER_CPU_VAR(old_rsp)
224 movq EFLAGS+\offset(%rsp),\tmp 220 movq EFLAGS+\offset(%rsp),\tmp
225 movq \tmp,R11+\offset(%rsp) 221 movq \tmp,R11+\offset(%rsp)
226 .endm 222 .endm
@@ -336,16 +332,17 @@ ENTRY(save_args)
336 je 1f 332 je 1f
337 SWAPGS 333 SWAPGS
338 /* 334 /*
339 * irqcount is used to check if a CPU is already on an interrupt stack 335 * irq_count is used to check if a CPU is already on an interrupt stack
340 * or not. While this is essentially redundant with preempt_count it is 336 * or not. While this is essentially redundant with preempt_count it is
341 * a little cheaper to use a separate counter in the PDA (short of 337 * a little cheaper to use a separate counter in the PDA (short of
342 * moving irq_enter into assembly, which would be too much work) 338 * moving irq_enter into assembly, which would be too much work)
343 */ 339 */
3441: incl %gs:pda_irqcount 3401: incl PER_CPU_VAR(irq_count)
345 jne 2f 341 jne 2f
346 popq_cfi %rax /* move return address... */ 342 popq_cfi %rax /* move return address... */
347 mov %gs:pda_irqstackptr,%rsp 343 mov PER_CPU_VAR(irq_stack_ptr),%rsp
348 EMPTY_FRAME 0 344 EMPTY_FRAME 0
345 pushq_cfi %rbp /* backlink for unwinder */
349 pushq_cfi %rax /* ... to the new stack */ 346 pushq_cfi %rax /* ... to the new stack */
350 /* 347 /*
351 * We entered an interrupt context - irqs are off: 348 * We entered an interrupt context - irqs are off:
@@ -408,6 +405,8 @@ END(save_paranoid)
408ENTRY(ret_from_fork) 405ENTRY(ret_from_fork)
409 DEFAULT_FRAME 406 DEFAULT_FRAME
410 407
408 LOCK ; btr $TIF_FORK,TI_flags(%r8)
409
411 push kernel_eflags(%rip) 410 push kernel_eflags(%rip)
412 CFI_ADJUST_CFA_OFFSET 8 411 CFI_ADJUST_CFA_OFFSET 8
413 popf # reset kernel eflags 412 popf # reset kernel eflags
@@ -467,7 +466,7 @@ END(ret_from_fork)
467ENTRY(system_call) 466ENTRY(system_call)
468 CFI_STARTPROC simple 467 CFI_STARTPROC simple
469 CFI_SIGNAL_FRAME 468 CFI_SIGNAL_FRAME
470 CFI_DEF_CFA rsp,PDA_STACKOFFSET 469 CFI_DEF_CFA rsp,KERNEL_STACK_OFFSET
471 CFI_REGISTER rip,rcx 470 CFI_REGISTER rip,rcx
472 /*CFI_REGISTER rflags,r11*/ 471 /*CFI_REGISTER rflags,r11*/
473 SWAPGS_UNSAFE_STACK 472 SWAPGS_UNSAFE_STACK
@@ -478,8 +477,8 @@ ENTRY(system_call)
478 */ 477 */
479ENTRY(system_call_after_swapgs) 478ENTRY(system_call_after_swapgs)
480 479
481 movq %rsp,%gs:pda_oldrsp 480 movq %rsp,PER_CPU_VAR(old_rsp)
482 movq %gs:pda_kernelstack,%rsp 481 movq PER_CPU_VAR(kernel_stack),%rsp
483 /* 482 /*
484 * No need to follow this irqs off/on section - it's straight 483 * No need to follow this irqs off/on section - it's straight
485 * and short: 484 * and short:
@@ -522,7 +521,7 @@ sysret_check:
522 CFI_REGISTER rip,rcx 521 CFI_REGISTER rip,rcx
523 RESTORE_ARGS 0,-ARG_SKIP,1 522 RESTORE_ARGS 0,-ARG_SKIP,1
524 /*CFI_REGISTER rflags,r11*/ 523 /*CFI_REGISTER rflags,r11*/
525 movq %gs:pda_oldrsp, %rsp 524 movq PER_CPU_VAR(old_rsp), %rsp
526 USERGS_SYSRET64 525 USERGS_SYSRET64
527 526
528 CFI_RESTORE_STATE 527 CFI_RESTORE_STATE
@@ -629,16 +628,14 @@ tracesys:
629 * Syscall return path ending with IRET. 628 * Syscall return path ending with IRET.
630 * Has correct top of stack, but partial stack frame. 629 * Has correct top of stack, but partial stack frame.
631 */ 630 */
632 .globl int_ret_from_sys_call 631GLOBAL(int_ret_from_sys_call)
633 .globl int_with_check
634int_ret_from_sys_call:
635 DISABLE_INTERRUPTS(CLBR_NONE) 632 DISABLE_INTERRUPTS(CLBR_NONE)
636 TRACE_IRQS_OFF 633 TRACE_IRQS_OFF
637 testl $3,CS-ARGOFFSET(%rsp) 634 testl $3,CS-ARGOFFSET(%rsp)
638 je retint_restore_args 635 je retint_restore_args
639 movl $_TIF_ALLWORK_MASK,%edi 636 movl $_TIF_ALLWORK_MASK,%edi
640 /* edi: mask to check */ 637 /* edi: mask to check */
641int_with_check: 638GLOBAL(int_with_check)
642 LOCKDEP_SYS_EXIT_IRQ 639 LOCKDEP_SYS_EXIT_IRQ
643 GET_THREAD_INFO(%rcx) 640 GET_THREAD_INFO(%rcx)
644 movl TI_flags(%rcx),%edx 641 movl TI_flags(%rcx),%edx
@@ -832,11 +829,11 @@ common_interrupt:
832 XCPT_FRAME 829 XCPT_FRAME
833 addq $-0x80,(%rsp) /* Adjust vector to [-256,-1] range */ 830 addq $-0x80,(%rsp) /* Adjust vector to [-256,-1] range */
834 interrupt do_IRQ 831 interrupt do_IRQ
835 /* 0(%rsp): oldrsp-ARGOFFSET */ 832 /* 0(%rsp): old_rsp-ARGOFFSET */
836ret_from_intr: 833ret_from_intr:
837 DISABLE_INTERRUPTS(CLBR_NONE) 834 DISABLE_INTERRUPTS(CLBR_NONE)
838 TRACE_IRQS_OFF 835 TRACE_IRQS_OFF
839 decl %gs:pda_irqcount 836 decl PER_CPU_VAR(irq_count)
840 leaveq 837 leaveq
841 CFI_DEF_CFA_REGISTER rsp 838 CFI_DEF_CFA_REGISTER rsp
842 CFI_ADJUST_CFA_OFFSET -8 839 CFI_ADJUST_CFA_OFFSET -8
@@ -981,10 +978,14 @@ apicinterrupt IRQ_MOVE_CLEANUP_VECTOR \
981 irq_move_cleanup_interrupt smp_irq_move_cleanup_interrupt 978 irq_move_cleanup_interrupt smp_irq_move_cleanup_interrupt
982#endif 979#endif
983 980
981#ifdef CONFIG_X86_UV
984apicinterrupt UV_BAU_MESSAGE \ 982apicinterrupt UV_BAU_MESSAGE \
985 uv_bau_message_intr1 uv_bau_message_interrupt 983 uv_bau_message_intr1 uv_bau_message_interrupt
984#endif
986apicinterrupt LOCAL_TIMER_VECTOR \ 985apicinterrupt LOCAL_TIMER_VECTOR \
987 apic_timer_interrupt smp_apic_timer_interrupt 986 apic_timer_interrupt smp_apic_timer_interrupt
987apicinterrupt GENERIC_INTERRUPT_VECTOR \
988 generic_interrupt smp_generic_interrupt
988 989
989#ifdef CONFIG_SMP 990#ifdef CONFIG_SMP
990apicinterrupt INVALIDATE_TLB_VECTOR_START+0 \ 991apicinterrupt INVALIDATE_TLB_VECTOR_START+0 \
@@ -1072,10 +1073,10 @@ ENTRY(\sym)
1072 TRACE_IRQS_OFF 1073 TRACE_IRQS_OFF
1073 movq %rsp,%rdi /* pt_regs pointer */ 1074 movq %rsp,%rdi /* pt_regs pointer */
1074 xorl %esi,%esi /* no error code */ 1075 xorl %esi,%esi /* no error code */
1075 movq %gs:pda_data_offset, %rbp 1076 PER_CPU(init_tss, %rbp)
1076 subq $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 8(%rbp) 1077 subq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%rbp)
1077 call \do_sym 1078 call \do_sym
1078 addq $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 8(%rbp) 1079 addq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%rbp)
1079 jmp paranoid_exit /* %ebx: no swapgs flag */ 1080 jmp paranoid_exit /* %ebx: no swapgs flag */
1080 CFI_ENDPROC 1081 CFI_ENDPROC
1081END(\sym) 1082END(\sym)
@@ -1137,7 +1138,7 @@ ENTRY(native_load_gs_index)
1137 CFI_STARTPROC 1138 CFI_STARTPROC
1138 pushf 1139 pushf
1139 CFI_ADJUST_CFA_OFFSET 8 1140 CFI_ADJUST_CFA_OFFSET 8
1140 DISABLE_INTERRUPTS(CLBR_ANY | ~(CLBR_RDI)) 1141 DISABLE_INTERRUPTS(CLBR_ANY & ~CLBR_RDI)
1141 SWAPGS 1142 SWAPGS
1142gs_change: 1143gs_change:
1143 movl %edi,%gs 1144 movl %edi,%gs
@@ -1259,14 +1260,14 @@ ENTRY(call_softirq)
1259 CFI_REL_OFFSET rbp,0 1260 CFI_REL_OFFSET rbp,0
1260 mov %rsp,%rbp 1261 mov %rsp,%rbp
1261 CFI_DEF_CFA_REGISTER rbp 1262 CFI_DEF_CFA_REGISTER rbp
1262 incl %gs:pda_irqcount 1263 incl PER_CPU_VAR(irq_count)
1263 cmove %gs:pda_irqstackptr,%rsp 1264 cmove PER_CPU_VAR(irq_stack_ptr),%rsp
1264 push %rbp # backlink for old unwinder 1265 push %rbp # backlink for old unwinder
1265 call __do_softirq 1266 call __do_softirq
1266 leaveq 1267 leaveq
1267 CFI_DEF_CFA_REGISTER rsp 1268 CFI_DEF_CFA_REGISTER rsp
1268 CFI_ADJUST_CFA_OFFSET -8 1269 CFI_ADJUST_CFA_OFFSET -8
1269 decl %gs:pda_irqcount 1270 decl PER_CPU_VAR(irq_count)
1270 ret 1271 ret
1271 CFI_ENDPROC 1272 CFI_ENDPROC
1272END(call_softirq) 1273END(call_softirq)
@@ -1296,15 +1297,15 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
1296 movq %rdi, %rsp # we don't return, adjust the stack frame 1297 movq %rdi, %rsp # we don't return, adjust the stack frame
1297 CFI_ENDPROC 1298 CFI_ENDPROC
1298 DEFAULT_FRAME 1299 DEFAULT_FRAME
129911: incl %gs:pda_irqcount 130011: incl PER_CPU_VAR(irq_count)
1300 movq %rsp,%rbp 1301 movq %rsp,%rbp
1301 CFI_DEF_CFA_REGISTER rbp 1302 CFI_DEF_CFA_REGISTER rbp
1302 cmovzq %gs:pda_irqstackptr,%rsp 1303 cmovzq PER_CPU_VAR(irq_stack_ptr),%rsp
1303 pushq %rbp # backlink for old unwinder 1304 pushq %rbp # backlink for old unwinder
1304 call xen_evtchn_do_upcall 1305 call xen_evtchn_do_upcall
1305 popq %rsp 1306 popq %rsp
1306 CFI_DEF_CFA_REGISTER rsp 1307 CFI_DEF_CFA_REGISTER rsp
1307 decl %gs:pda_irqcount 1308 decl PER_CPU_VAR(irq_count)
1308 jmp error_exit 1309 jmp error_exit
1309 CFI_ENDPROC 1310 CFI_ENDPROC
1310END(do_hypervisor_callback) 1311END(do_hypervisor_callback)
diff --git a/arch/x86/kernel/es7000_32.c b/arch/x86/kernel/es7000_32.c
deleted file mode 100644
index 53699c931ad4..000000000000
--- a/arch/x86/kernel/es7000_32.c
+++ /dev/null
@@ -1,378 +0,0 @@
1/*
2 * Written by: Garry Forsgren, Unisys Corporation
3 * Natalie Protasevich, Unisys Corporation
4 * This file contains the code to configure and interface
5 * with Unisys ES7000 series hardware system manager.
6 *
7 * Copyright (c) 2003 Unisys Corporation. All Rights Reserved.
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of version 2 of the GNU General Public License as
11 * published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it would be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write the Free Software Foundation, Inc., 59
19 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
20 *
21 * Contact information: Unisys Corporation, Township Line & Union Meeting
22 * Roads-A, Unisys Way, Blue Bell, Pennsylvania, 19424, or:
23 *
24 * http://www.unisys.com
25 */
26
27#include <linux/module.h>
28#include <linux/types.h>
29#include <linux/kernel.h>
30#include <linux/smp.h>
31#include <linux/string.h>
32#include <linux/spinlock.h>
33#include <linux/errno.h>
34#include <linux/notifier.h>
35#include <linux/reboot.h>
36#include <linux/init.h>
37#include <linux/acpi.h>
38#include <asm/io.h>
39#include <asm/nmi.h>
40#include <asm/smp.h>
41#include <asm/atomic.h>
42#include <asm/apicdef.h>
43#include <mach_mpparse.h>
44#include <asm/genapic.h>
45#include <asm/setup.h>
46
47/*
48 * ES7000 chipsets
49 */
50
51#define NON_UNISYS 0
52#define ES7000_CLASSIC 1
53#define ES7000_ZORRO 2
54
55
56#define MIP_REG 1
57#define MIP_PSAI_REG 4
58
59#define MIP_BUSY 1
60#define MIP_SPIN 0xf0000
61#define MIP_VALID 0x0100000000000000ULL
62#define MIP_PORT(VALUE) ((VALUE >> 32) & 0xffff)
63
64#define MIP_RD_LO(VALUE) (VALUE & 0xffffffff)
65
66struct mip_reg_info {
67 unsigned long long mip_info;
68 unsigned long long delivery_info;
69 unsigned long long host_reg;
70 unsigned long long mip_reg;
71};
72
73struct part_info {
74 unsigned char type;
75 unsigned char length;
76 unsigned char part_id;
77 unsigned char apic_mode;
78 unsigned long snum;
79 char ptype[16];
80 char sname[64];
81 char pname[64];
82};
83
84struct psai {
85 unsigned long long entry_type;
86 unsigned long long addr;
87 unsigned long long bep_addr;
88};
89
90struct es7000_mem_info {
91 unsigned char type;
92 unsigned char length;
93 unsigned char resv[6];
94 unsigned long long start;
95 unsigned long long size;
96};
97
98struct es7000_oem_table {
99 unsigned long long hdr;
100 struct mip_reg_info mip;
101 struct part_info pif;
102 struct es7000_mem_info shm;
103 struct psai psai;
104};
105
106#ifdef CONFIG_ACPI
107
108struct oem_table {
109 struct acpi_table_header Header;
110 u32 OEMTableAddr;
111 u32 OEMTableSize;
112};
113
114extern int find_unisys_acpi_oem_table(unsigned long *oem_addr);
115extern void unmap_unisys_acpi_oem_table(unsigned long oem_addr);
116#endif
117
118struct mip_reg {
119 unsigned long long off_0;
120 unsigned long long off_8;
121 unsigned long long off_10;
122 unsigned long long off_18;
123 unsigned long long off_20;
124 unsigned long long off_28;
125 unsigned long long off_30;
126 unsigned long long off_38;
127};
128
129#define MIP_SW_APIC 0x1020b
130#define MIP_FUNC(VALUE) (VALUE & 0xff)
131
132/*
133 * ES7000 Globals
134 */
135
136static volatile unsigned long *psai = NULL;
137static struct mip_reg *mip_reg;
138static struct mip_reg *host_reg;
139static int mip_port;
140static unsigned long mip_addr, host_addr;
141
142int es7000_plat;
143
144/*
145 * GSI override for ES7000 platforms.
146 */
147
148static unsigned int base;
149
150static int
151es7000_rename_gsi(int ioapic, int gsi)
152{
153 if (es7000_plat == ES7000_ZORRO)
154 return gsi;
155
156 if (!base) {
157 int i;
158 for (i = 0; i < nr_ioapics; i++)
159 base += nr_ioapic_registers[i];
160 }
161
162 if (!ioapic && (gsi < 16))
163 gsi += base;
164 return gsi;
165}
166
167static int wakeup_secondary_cpu_via_mip(int cpu, unsigned long eip)
168{
169 unsigned long vect = 0, psaival = 0;
170
171 if (psai == NULL)
172 return -1;
173
174 vect = ((unsigned long)__pa(eip)/0x1000) << 16;
175 psaival = (0x1000000 | vect | cpu);
176
177 while (*psai & 0x1000000)
178 ;
179
180 *psai = psaival;
181
182 return 0;
183}
184
185static void noop_wait_for_deassert(atomic_t *deassert_not_used)
186{
187}
188
189static int __init es7000_update_genapic(void)
190{
191 genapic->wakeup_cpu = wakeup_secondary_cpu_via_mip;
192
193 /* MPENTIUMIII */
194 if (boot_cpu_data.x86 == 6 &&
195 (boot_cpu_data.x86_model >= 7 || boot_cpu_data.x86_model <= 11)) {
196 es7000_update_genapic_to_cluster();
197 genapic->wait_for_init_deassert = noop_wait_for_deassert;
198 genapic->wakeup_cpu = wakeup_secondary_cpu_via_mip;
199 }
200
201 return 0;
202}
203
204void __init
205setup_unisys(void)
206{
207 /*
208 * Determine the generation of the ES7000 currently running.
209 *
210 * es7000_plat = 1 if the machine is a 5xx ES7000 box
211 * es7000_plat = 2 if the machine is a x86_64 ES7000 box
212 *
213 */
214 if (!(boot_cpu_data.x86 <= 15 && boot_cpu_data.x86_model <= 2))
215 es7000_plat = ES7000_ZORRO;
216 else
217 es7000_plat = ES7000_CLASSIC;
218 ioapic_renumber_irq = es7000_rename_gsi;
219
220 x86_quirks->update_genapic = es7000_update_genapic;
221}
222
223/*
224 * Parse the OEM Table
225 */
226
227int __init
228parse_unisys_oem (char *oemptr)
229{
230 int i;
231 int success = 0;
232 unsigned char type, size;
233 unsigned long val;
234 char *tp = NULL;
235 struct psai *psaip = NULL;
236 struct mip_reg_info *mi;
237 struct mip_reg *host, *mip;
238
239 tp = oemptr;
240
241 tp += 8;
242
243 for (i=0; i <= 6; i++) {
244 type = *tp++;
245 size = *tp++;
246 tp -= 2;
247 switch (type) {
248 case MIP_REG:
249 mi = (struct mip_reg_info *)tp;
250 val = MIP_RD_LO(mi->host_reg);
251 host_addr = val;
252 host = (struct mip_reg *)val;
253 host_reg = __va(host);
254 val = MIP_RD_LO(mi->mip_reg);
255 mip_port = MIP_PORT(mi->mip_info);
256 mip_addr = val;
257 mip = (struct mip_reg *)val;
258 mip_reg = __va(mip);
259 pr_debug("es7000_mipcfg: host_reg = 0x%lx \n",
260 (unsigned long)host_reg);
261 pr_debug("es7000_mipcfg: mip_reg = 0x%lx \n",
262 (unsigned long)mip_reg);
263 success++;
264 break;
265 case MIP_PSAI_REG:
266 psaip = (struct psai *)tp;
267 if (tp != NULL) {
268 if (psaip->addr)
269 psai = __va(psaip->addr);
270 else
271 psai = NULL;
272 success++;
273 }
274 break;
275 default:
276 break;
277 }
278 tp += size;
279 }
280
281 if (success < 2) {
282 es7000_plat = NON_UNISYS;
283 } else
284 setup_unisys();
285 return es7000_plat;
286}
287
288#ifdef CONFIG_ACPI
289static unsigned long oem_addrX;
290static unsigned long oem_size;
291int __init find_unisys_acpi_oem_table(unsigned long *oem_addr)
292{
293 struct acpi_table_header *header = NULL;
294 int i = 0;
295
296 while (ACPI_SUCCESS(acpi_get_table("OEM1", i++, &header))) {
297 if (!memcmp((char *) &header->oem_id, "UNISYS", 6)) {
298 struct oem_table *t = (struct oem_table *)header;
299
300 oem_addrX = t->OEMTableAddr;
301 oem_size = t->OEMTableSize;
302
303 *oem_addr = (unsigned long)__acpi_map_table(oem_addrX,
304 oem_size);
305 return 0;
306 }
307 }
308 return -1;
309}
310
311void __init unmap_unisys_acpi_oem_table(unsigned long oem_addr)
312{
313}
314#endif
315
316static void
317es7000_spin(int n)
318{
319 int i = 0;
320
321 while (i++ < n)
322 rep_nop();
323}
324
325static int __init
326es7000_mip_write(struct mip_reg *mip_reg)
327{
328 int status = 0;
329 int spin;
330
331 spin = MIP_SPIN;
332 while (((unsigned long long)host_reg->off_38 &
333 (unsigned long long)MIP_VALID) != 0) {
334 if (--spin <= 0) {
335 printk("es7000_mip_write: Timeout waiting for Host Valid Flag");
336 return -1;
337 }
338 es7000_spin(MIP_SPIN);
339 }
340
341 memcpy(host_reg, mip_reg, sizeof(struct mip_reg));
342 outb(1, mip_port);
343
344 spin = MIP_SPIN;
345
346 while (((unsigned long long)mip_reg->off_38 &
347 (unsigned long long)MIP_VALID) == 0) {
348 if (--spin <= 0) {
349 printk("es7000_mip_write: Timeout waiting for MIP Valid Flag");
350 return -1;
351 }
352 es7000_spin(MIP_SPIN);
353 }
354
355 status = ((unsigned long long)mip_reg->off_0 &
356 (unsigned long long)0xffff0000000000ULL) >> 48;
357 mip_reg->off_38 = ((unsigned long long)mip_reg->off_38 &
358 (unsigned long long)~MIP_VALID);
359 return status;
360}
361
362void __init
363es7000_sw_apic(void)
364{
365 if (es7000_plat) {
366 int mip_status;
367 struct mip_reg es7000_mip_reg;
368
369 printk("ES7000: Enabling APIC mode.\n");
370 memset(&es7000_mip_reg, 0, sizeof(struct mip_reg));
371 es7000_mip_reg.off_0 = MIP_SW_APIC;
372 es7000_mip_reg.off_38 = (MIP_VALID);
373 while ((mip_status = es7000_mip_write(&es7000_mip_reg)) != 0)
374 printk("es7000_sw_apic: command failed, status = %x\n",
375 mip_status);
376 return;
377 }
378}
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index 1b43086b097a..231bdd3c5b1c 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -488,20 +488,21 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
488 * ignore such a protection. 488 * ignore such a protection.
489 */ 489 */
490 asm volatile( 490 asm volatile(
491 "1: " _ASM_MOV " (%[parent_old]), %[old]\n" 491 "1: " _ASM_MOV " (%[parent]), %[old]\n"
492 "2: " _ASM_MOV " %[return_hooker], (%[parent_replaced])\n" 492 "2: " _ASM_MOV " %[return_hooker], (%[parent])\n"
493 " movl $0, %[faulted]\n" 493 " movl $0, %[faulted]\n"
494 "3:\n"
494 495
495 ".section .fixup, \"ax\"\n" 496 ".section .fixup, \"ax\"\n"
496 "3: movl $1, %[faulted]\n" 497 "4: movl $1, %[faulted]\n"
498 " jmp 3b\n"
497 ".previous\n" 499 ".previous\n"
498 500
499 _ASM_EXTABLE(1b, 3b) 501 _ASM_EXTABLE(1b, 4b)
500 _ASM_EXTABLE(2b, 3b) 502 _ASM_EXTABLE(2b, 4b)
501 503
502 : [parent_replaced] "=r" (parent), [old] "=r" (old), 504 : [old] "=r" (old), [faulted] "=r" (faulted)
503 [faulted] "=r" (faulted) 505 : [parent] "r" (parent), [return_hooker] "r" (return_hooker)
504 : [parent_old] "0" (parent), [return_hooker] "r" (return_hooker)
505 : "memory" 506 : "memory"
506 ); 507 );
507 508
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index b9a4d8c4b935..f5b272247690 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -26,27 +26,6 @@
26#include <asm/bios_ebda.h> 26#include <asm/bios_ebda.h>
27#include <asm/trampoline.h> 27#include <asm/trampoline.h>
28 28
29/* boot cpu pda */
30static struct x8664_pda _boot_cpu_pda;
31
32#ifdef CONFIG_SMP
33/*
34 * We install an empty cpu_pda pointer table to indicate to early users
35 * (numa_set_node) that the cpu_pda pointer table for cpus other than
36 * the boot cpu is not yet setup.
37 */
38static struct x8664_pda *__cpu_pda[NR_CPUS] __initdata;
39#else
40static struct x8664_pda *__cpu_pda[NR_CPUS] __read_mostly;
41#endif
42
43void __init x86_64_init_pda(void)
44{
45 _cpu_pda = __cpu_pda;
46 cpu_pda(0) = &_boot_cpu_pda;
47 pda_init(0);
48}
49
50static void __init zap_identity_mappings(void) 29static void __init zap_identity_mappings(void)
51{ 30{
52 pgd_t *pgd = pgd_offset_k(0UL); 31 pgd_t *pgd = pgd_offset_k(0UL);
@@ -112,8 +91,6 @@ void __init x86_64_start_kernel(char * real_mode_data)
112 if (console_loglevel == 10) 91 if (console_loglevel == 10)
113 early_printk("Kernel alive\n"); 92 early_printk("Kernel alive\n");
114 93
115 x86_64_init_pda();
116
117 x86_64_start_reservations(real_mode_data); 94 x86_64_start_reservations(real_mode_data);
118} 95}
119 96
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index e835b4eea70b..c32ca19d591a 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -11,14 +11,15 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/linkage.h> 12#include <linux/linkage.h>
13#include <asm/segment.h> 13#include <asm/segment.h>
14#include <asm/page.h> 14#include <asm/page_types.h>
15#include <asm/pgtable.h> 15#include <asm/pgtable_types.h>
16#include <asm/desc.h> 16#include <asm/desc.h>
17#include <asm/cache.h> 17#include <asm/cache.h>
18#include <asm/thread_info.h> 18#include <asm/thread_info.h>
19#include <asm/asm-offsets.h> 19#include <asm/asm-offsets.h>
20#include <asm/setup.h> 20#include <asm/setup.h>
21#include <asm/processor-flags.h> 21#include <asm/processor-flags.h>
22#include <asm/percpu.h>
22 23
23/* Physical address */ 24/* Physical address */
24#define pa(X) ((X) - __PAGE_OFFSET) 25#define pa(X) ((X) - __PAGE_OFFSET)
@@ -429,14 +430,34 @@ is386: movl $2,%ecx # set MP
429 ljmp $(__KERNEL_CS),$1f 430 ljmp $(__KERNEL_CS),$1f
4301: movl $(__KERNEL_DS),%eax # reload all the segment registers 4311: movl $(__KERNEL_DS),%eax # reload all the segment registers
431 movl %eax,%ss # after changing gdt. 432 movl %eax,%ss # after changing gdt.
432 movl %eax,%fs # gets reset once there's real percpu
433 433
434 movl $(__USER_DS),%eax # DS/ES contains default USER segment 434 movl $(__USER_DS),%eax # DS/ES contains default USER segment
435 movl %eax,%ds 435 movl %eax,%ds
436 movl %eax,%es 436 movl %eax,%es
437 437
438 xorl %eax,%eax # Clear GS and LDT 438 movl $(__KERNEL_PERCPU), %eax
439 movl %eax,%fs # set this cpu's percpu
440
441#ifdef CONFIG_CC_STACKPROTECTOR
442 /*
443 * The linker can't handle this by relocation. Manually set
444 * base address in stack canary segment descriptor.
445 */
446 cmpb $0,ready
447 jne 1f
448 movl $per_cpu__gdt_page,%eax
449 movl $per_cpu__stack_canary,%ecx
450 subl $20, %ecx
451 movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
452 shrl $16, %ecx
453 movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
454 movb %ch, 8 * GDT_ENTRY_STACK_CANARY + 7(%eax)
4551:
456#endif
457 movl $(__KERNEL_STACK_CANARY),%eax
439 movl %eax,%gs 458 movl %eax,%gs
459
460 xorl %eax,%eax # Clear LDT
440 lldt %ax 461 lldt %ax
441 462
442 cld # gcc2 wants the direction flag cleared at all times 463 cld # gcc2 wants the direction flag cleared at all times
@@ -446,8 +467,6 @@ is386: movl $2,%ecx # set MP
446 movb $1, ready 467 movb $1, ready
447 cmpb $0,%cl # the first CPU calls start_kernel 468 cmpb $0,%cl # the first CPU calls start_kernel
448 je 1f 469 je 1f
449 movl $(__KERNEL_PERCPU), %eax
450 movl %eax,%fs # set this cpu's percpu
451 movl (stack_start), %esp 470 movl (stack_start), %esp
4521: 4711:
453#endif /* CONFIG_SMP */ 472#endif /* CONFIG_SMP */
@@ -548,12 +567,8 @@ early_fault:
548 pushl %eax 567 pushl %eax
549 pushl %edx /* trapno */ 568 pushl %edx /* trapno */
550 pushl $fault_msg 569 pushl $fault_msg
551#ifdef CONFIG_EARLY_PRINTK
552 call early_printk
553#else
554 call printk 570 call printk
555#endif 571#endif
556#endif
557 call dump_stack 572 call dump_stack
558hlt_loop: 573hlt_loop:
559 hlt 574 hlt
@@ -580,11 +595,10 @@ ignore_int:
580 pushl 32(%esp) 595 pushl 32(%esp)
581 pushl 40(%esp) 596 pushl 40(%esp)
582 pushl $int_msg 597 pushl $int_msg
583#ifdef CONFIG_EARLY_PRINTK
584 call early_printk
585#else
586 call printk 598 call printk
587#endif 599
600 call dump_stack
601
588 addl $(5*4),%esp 602 addl $(5*4),%esp
589 popl %ds 603 popl %ds
590 popl %es 604 popl %es
@@ -660,7 +674,7 @@ early_recursion_flag:
660 .long 0 674 .long 0
661 675
662int_msg: 676int_msg:
663 .asciz "Unknown interrupt or fault at EIP %p %p %p\n" 677 .asciz "Unknown interrupt or fault at: %p %p %p\n"
664 678
665fault_msg: 679fault_msg:
666/* fault info: */ 680/* fault info: */
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 0e275d495563..54b29bb24e71 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -19,6 +19,7 @@
19#include <asm/msr.h> 19#include <asm/msr.h>
20#include <asm/cache.h> 20#include <asm/cache.h>
21#include <asm/processor-flags.h> 21#include <asm/processor-flags.h>
22#include <asm/percpu.h>
22 23
23#ifdef CONFIG_PARAVIRT 24#ifdef CONFIG_PARAVIRT
24#include <asm/asm-offsets.h> 25#include <asm/asm-offsets.h>
@@ -226,12 +227,15 @@ ENTRY(secondary_startup_64)
226 movl %eax,%fs 227 movl %eax,%fs
227 movl %eax,%gs 228 movl %eax,%gs
228 229
229 /* 230 /* Set up %gs.
230 * Setup up a dummy PDA. this is just for some early bootup code 231 *
231 * that does in_interrupt() 232 * The base of %gs always points to the bottom of the irqstack
232 */ 233 * union. If the stack protector canary is enabled, it is
234 * located at %gs:40. Note that, on SMP, the boot cpu uses
235 * init data section till per cpu areas are set up.
236 */
233 movl $MSR_GS_BASE,%ecx 237 movl $MSR_GS_BASE,%ecx
234 movq $empty_zero_page,%rax 238 movq initial_gs(%rip),%rax
235 movq %rax,%rdx 239 movq %rax,%rdx
236 shrq $32,%rdx 240 shrq $32,%rdx
237 wrmsr 241 wrmsr
@@ -257,6 +261,8 @@ ENTRY(secondary_startup_64)
257 .align 8 261 .align 8
258 ENTRY(initial_code) 262 ENTRY(initial_code)
259 .quad x86_64_start_kernel 263 .quad x86_64_start_kernel
264 ENTRY(initial_gs)
265 .quad INIT_PER_CPU_VAR(irq_stack_union)
260 __FINITDATA 266 __FINITDATA
261 267
262 ENTRY(stack_start) 268 ENTRY(stack_start)
@@ -323,8 +329,6 @@ early_idt_ripmsg:
323#endif /* CONFIG_EARLY_PRINTK */ 329#endif /* CONFIG_EARLY_PRINTK */
324 .previous 330 .previous
325 331
326.balign PAGE_SIZE
327
328#define NEXT_PAGE(name) \ 332#define NEXT_PAGE(name) \
329 .balign PAGE_SIZE; \ 333 .balign PAGE_SIZE; \
330ENTRY(name) 334ENTRY(name)
@@ -401,7 +405,8 @@ NEXT_PAGE(level2_spare_pgt)
401 .globl early_gdt_descr 405 .globl early_gdt_descr
402early_gdt_descr: 406early_gdt_descr:
403 .word GDT_ENTRIES*8-1 407 .word GDT_ENTRIES*8-1
404 .quad per_cpu__gdt_page 408early_gdt_descr_base:
409 .quad INIT_PER_CPU_VAR(gdt_page)
405 410
406ENTRY(phys_base) 411ENTRY(phys_base)
407 /* This must match the first entry in level2_kernel_pgt */ 412 /* This must match the first entry in level2_kernel_pgt */
@@ -412,7 +417,7 @@ ENTRY(phys_base)
412 .section .bss, "aw", @nobits 417 .section .bss, "aw", @nobits
413 .align L1_CACHE_BYTES 418 .align L1_CACHE_BYTES
414ENTRY(idt_table) 419ENTRY(idt_table)
415 .skip 256 * 16 420 .skip IDT_ENTRIES * 16
416 421
417 .section .bss.page_aligned, "aw", @nobits 422 .section .bss.page_aligned, "aw", @nobits
418 .align PAGE_SIZE 423 .align PAGE_SIZE
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index cd759ad90690..a00545fe5cdd 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -269,6 +269,8 @@ static void hpet_set_mode(enum clock_event_mode mode,
269 now = hpet_readl(HPET_COUNTER); 269 now = hpet_readl(HPET_COUNTER);
270 cmp = now + (unsigned long) delta; 270 cmp = now + (unsigned long) delta;
271 cfg = hpet_readl(HPET_Tn_CFG(timer)); 271 cfg = hpet_readl(HPET_Tn_CFG(timer));
272 /* Make sure we use edge triggered interrupts */
273 cfg &= ~HPET_TN_LEVEL;
272 cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC | 274 cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC |
273 HPET_TN_SETVAL | HPET_TN_32BIT; 275 HPET_TN_SETVAL | HPET_TN_32BIT;
274 hpet_writel(cfg, HPET_Tn_CFG(timer)); 276 hpet_writel(cfg, HPET_Tn_CFG(timer));
@@ -628,11 +630,12 @@ static int hpet_cpuhp_notify(struct notifier_block *n,
628 630
629 switch (action & 0xf) { 631 switch (action & 0xf) {
630 case CPU_ONLINE: 632 case CPU_ONLINE:
631 INIT_DELAYED_WORK(&work.work, hpet_work); 633 INIT_DELAYED_WORK_ON_STACK(&work.work, hpet_work);
632 init_completion(&work.complete); 634 init_completion(&work.complete);
633 /* FIXME: add schedule_work_on() */ 635 /* FIXME: add schedule_work_on() */
634 schedule_delayed_work_on(cpu, &work.work, 0); 636 schedule_delayed_work_on(cpu, &work.work, 0);
635 wait_for_completion(&work.complete); 637 wait_for_completion(&work.complete);
638 destroy_timer_on_stack(&work.work.timer);
636 break; 639 break;
637 case CPU_DEAD: 640 case CPU_DEAD:
638 if (hdev) { 641 if (hdev) {
@@ -896,7 +899,7 @@ static unsigned long hpet_rtc_flags;
896static int hpet_prev_update_sec; 899static int hpet_prev_update_sec;
897static struct rtc_time hpet_alarm_time; 900static struct rtc_time hpet_alarm_time;
898static unsigned long hpet_pie_count; 901static unsigned long hpet_pie_count;
899static unsigned long hpet_t1_cmp; 902static u32 hpet_t1_cmp;
900static unsigned long hpet_default_delta; 903static unsigned long hpet_default_delta;
901static unsigned long hpet_pie_delta; 904static unsigned long hpet_pie_delta;
902static unsigned long hpet_pie_limit; 905static unsigned long hpet_pie_limit;
@@ -904,6 +907,14 @@ static unsigned long hpet_pie_limit;
904static rtc_irq_handler irq_handler; 907static rtc_irq_handler irq_handler;
905 908
906/* 909/*
910 * Check that the hpet counter c1 is ahead of the c2
911 */
912static inline int hpet_cnt_ahead(u32 c1, u32 c2)
913{
914 return (s32)(c2 - c1) < 0;
915}
916
917/*
907 * Registers a IRQ handler. 918 * Registers a IRQ handler.
908 */ 919 */
909int hpet_register_irq_handler(rtc_irq_handler handler) 920int hpet_register_irq_handler(rtc_irq_handler handler)
@@ -1074,7 +1085,7 @@ static void hpet_rtc_timer_reinit(void)
1074 hpet_t1_cmp += delta; 1085 hpet_t1_cmp += delta;
1075 hpet_writel(hpet_t1_cmp, HPET_T1_CMP); 1086 hpet_writel(hpet_t1_cmp, HPET_T1_CMP);
1076 lost_ints++; 1087 lost_ints++;
1077 } while ((long)(hpet_readl(HPET_COUNTER) - hpet_t1_cmp) > 0); 1088 } while (!hpet_cnt_ahead(hpet_t1_cmp, hpet_readl(HPET_COUNTER)));
1078 1089
1079 if (lost_ints) { 1090 if (lost_ints) {
1080 if (hpet_rtc_flags & RTC_PIE) 1091 if (hpet_rtc_flags & RTC_PIE)
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
index b0f61f0dcd0a..f2f8540a7f3d 100644
--- a/arch/x86/kernel/i387.c
+++ b/arch/x86/kernel/i387.c
@@ -136,7 +136,7 @@ int init_fpu(struct task_struct *tsk)
136#ifdef CONFIG_X86_32 136#ifdef CONFIG_X86_32
137 if (!HAVE_HWFP) { 137 if (!HAVE_HWFP) {
138 memset(tsk->thread.xstate, 0, xstate_size); 138 memset(tsk->thread.xstate, 0, xstate_size);
139 finit(); 139 finit_task(tsk);
140 set_stopped_child_used_math(tsk); 140 set_stopped_child_used_math(tsk);
141 return 0; 141 return 0;
142 } 142 }
diff --git a/arch/x86/kernel/i8237.c b/arch/x86/kernel/i8237.c
index dbd6c1d1b638..b42ca694dc68 100644
--- a/arch/x86/kernel/i8237.c
+++ b/arch/x86/kernel/i8237.c
@@ -28,10 +28,10 @@ static int i8237A_resume(struct sys_device *dev)
28 28
29 flags = claim_dma_lock(); 29 flags = claim_dma_lock();
30 30
31 dma_outb(DMA1_RESET_REG, 0); 31 dma_outb(0, DMA1_RESET_REG);
32 dma_outb(DMA2_RESET_REG, 0); 32 dma_outb(0, DMA2_RESET_REG);
33 33
34 for (i = 0;i < 8;i++) { 34 for (i = 0; i < 8; i++) {
35 set_dma_addr(i, 0x000000); 35 set_dma_addr(i, 0x000000);
36 /* DMA count is a bit weird so this is not 0 */ 36 /* DMA count is a bit weird so this is not 0 */
37 set_dma_count(i, 1); 37 set_dma_count(i, 1);
@@ -51,14 +51,14 @@ static int i8237A_suspend(struct sys_device *dev, pm_message_t state)
51} 51}
52 52
53static struct sysdev_class i8237_sysdev_class = { 53static struct sysdev_class i8237_sysdev_class = {
54 .name = "i8237", 54 .name = "i8237",
55 .suspend = i8237A_suspend, 55 .suspend = i8237A_suspend,
56 .resume = i8237A_resume, 56 .resume = i8237A_resume,
57}; 57};
58 58
59static struct sys_device device_i8237A = { 59static struct sys_device device_i8237A = {
60 .id = 0, 60 .id = 0,
61 .cls = &i8237_sysdev_class, 61 .cls = &i8237_sysdev_class,
62}; 62};
63 63
64static int __init i8237A_init_sysfs(void) 64static int __init i8237A_init_sysfs(void)
@@ -68,5 +68,4 @@ static int __init i8237A_init_sysfs(void)
68 error = sysdev_register(&device_i8237A); 68 error = sysdev_register(&device_i8237A);
69 return error; 69 return error;
70} 70}
71
72device_initcall(i8237A_init_sysfs); 71device_initcall(i8237A_init_sysfs);
diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
index 11d5093eb281..df89102bef80 100644
--- a/arch/x86/kernel/i8259.c
+++ b/arch/x86/kernel/i8259.c
@@ -22,7 +22,6 @@
22#include <asm/pgtable.h> 22#include <asm/pgtable.h>
23#include <asm/desc.h> 23#include <asm/desc.h>
24#include <asm/apic.h> 24#include <asm/apic.h>
25#include <asm/arch_hooks.h>
26#include <asm/i8259.h> 25#include <asm/i8259.h>
27 26
28/* 27/*
diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
index b12208f4dfee..99c4d308f16b 100644
--- a/arch/x86/kernel/ioport.c
+++ b/arch/x86/kernel/ioport.c
@@ -85,19 +85,8 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
85 85
86 t->io_bitmap_max = bytes; 86 t->io_bitmap_max = bytes;
87 87
88#ifdef CONFIG_X86_32
89 /*
90 * Sets the lazy trigger so that the next I/O operation will
91 * reload the correct bitmap.
92 * Reset the owner so that a process switch will not set
93 * tss->io_bitmap_base to IO_BITMAP_OFFSET.
94 */
95 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET_LAZY;
96 tss->io_bitmap_owner = NULL;
97#else
98 /* Update the TSS: */ 88 /* Update the TSS: */
99 memcpy(tss->io_bitmap, t->io_bitmap_ptr, bytes_updated); 89 memcpy(tss->io_bitmap, t->io_bitmap_ptr, bytes_updated);
100#endif
101 90
102 put_cpu(); 91 put_cpu();
103 92
@@ -131,9 +120,8 @@ static int do_iopl(unsigned int level, struct pt_regs *regs)
131} 120}
132 121
133#ifdef CONFIG_X86_32 122#ifdef CONFIG_X86_32
134asmlinkage long sys_iopl(unsigned long regsp) 123long sys_iopl(struct pt_regs *regs)
135{ 124{
136 struct pt_regs *regs = (struct pt_regs *)&regsp;
137 unsigned int level = regs->bx; 125 unsigned int level = regs->bx;
138 struct thread_struct *t = &current->thread; 126 struct thread_struct *t = &current->thread;
139 int rc; 127 int rc;
diff --git a/arch/x86/kernel/ipi.c b/arch/x86/kernel/ipi.c
deleted file mode 100644
index 285bbf8831fa..000000000000
--- a/arch/x86/kernel/ipi.c
+++ /dev/null
@@ -1,190 +0,0 @@
1#include <linux/cpumask.h>
2#include <linux/interrupt.h>
3#include <linux/init.h>
4
5#include <linux/mm.h>
6#include <linux/delay.h>
7#include <linux/spinlock.h>
8#include <linux/kernel_stat.h>
9#include <linux/mc146818rtc.h>
10#include <linux/cache.h>
11#include <linux/cpu.h>
12#include <linux/module.h>
13
14#include <asm/smp.h>
15#include <asm/mtrr.h>
16#include <asm/tlbflush.h>
17#include <asm/mmu_context.h>
18#include <asm/apic.h>
19#include <asm/proto.h>
20
21#ifdef CONFIG_X86_32
22#include <mach_apic.h>
23#include <mach_ipi.h>
24
25/*
26 * the following functions deal with sending IPIs between CPUs.
27 *
28 * We use 'broadcast', CPU->CPU IPIs and self-IPIs too.
29 */
30
31static inline int __prepare_ICR(unsigned int shortcut, int vector)
32{
33 unsigned int icr = shortcut | APIC_DEST_LOGICAL;
34
35 switch (vector) {
36 default:
37 icr |= APIC_DM_FIXED | vector;
38 break;
39 case NMI_VECTOR:
40 icr |= APIC_DM_NMI;
41 break;
42 }
43 return icr;
44}
45
46static inline int __prepare_ICR2(unsigned int mask)
47{
48 return SET_APIC_DEST_FIELD(mask);
49}
50
51void __send_IPI_shortcut(unsigned int shortcut, int vector)
52{
53 /*
54 * Subtle. In the case of the 'never do double writes' workaround
55 * we have to lock out interrupts to be safe. As we don't care
56 * of the value read we use an atomic rmw access to avoid costly
57 * cli/sti. Otherwise we use an even cheaper single atomic write
58 * to the APIC.
59 */
60 unsigned int cfg;
61
62 /*
63 * Wait for idle.
64 */
65 apic_wait_icr_idle();
66
67 /*
68 * No need to touch the target chip field
69 */
70 cfg = __prepare_ICR(shortcut, vector);
71
72 /*
73 * Send the IPI. The write to APIC_ICR fires this off.
74 */
75 apic_write(APIC_ICR, cfg);
76}
77
78void send_IPI_self(int vector)
79{
80 __send_IPI_shortcut(APIC_DEST_SELF, vector);
81}
82
83/*
84 * This is used to send an IPI with no shorthand notation (the destination is
85 * specified in bits 56 to 63 of the ICR).
86 */
87static inline void __send_IPI_dest_field(unsigned long mask, int vector)
88{
89 unsigned long cfg;
90
91 /*
92 * Wait for idle.
93 */
94 if (unlikely(vector == NMI_VECTOR))
95 safe_apic_wait_icr_idle();
96 else
97 apic_wait_icr_idle();
98
99 /*
100 * prepare target chip field
101 */
102 cfg = __prepare_ICR2(mask);
103 apic_write(APIC_ICR2, cfg);
104
105 /*
106 * program the ICR
107 */
108 cfg = __prepare_ICR(0, vector);
109
110 /*
111 * Send the IPI. The write to APIC_ICR fires this off.
112 */
113 apic_write(APIC_ICR, cfg);
114}
115
116/*
117 * This is only used on smaller machines.
118 */
119void send_IPI_mask_bitmask(const struct cpumask *cpumask, int vector)
120{
121 unsigned long mask = cpumask_bits(cpumask)[0];
122 unsigned long flags;
123
124 local_irq_save(flags);
125 WARN_ON(mask & ~cpumask_bits(cpu_online_mask)[0]);
126 __send_IPI_dest_field(mask, vector);
127 local_irq_restore(flags);
128}
129
130void send_IPI_mask_sequence(const struct cpumask *mask, int vector)
131{
132 unsigned long flags;
133 unsigned int query_cpu;
134
135 /*
136 * Hack. The clustered APIC addressing mode doesn't allow us to send
137 * to an arbitrary mask, so I do a unicasts to each CPU instead. This
138 * should be modified to do 1 message per cluster ID - mbligh
139 */
140
141 local_irq_save(flags);
142 for_each_cpu(query_cpu, mask)
143 __send_IPI_dest_field(cpu_to_logical_apicid(query_cpu), vector);
144 local_irq_restore(flags);
145}
146
147void send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
148{
149 unsigned long flags;
150 unsigned int query_cpu;
151 unsigned int this_cpu = smp_processor_id();
152
153 /* See Hack comment above */
154
155 local_irq_save(flags);
156 for_each_cpu(query_cpu, mask)
157 if (query_cpu != this_cpu)
158 __send_IPI_dest_field(cpu_to_logical_apicid(query_cpu),
159 vector);
160 local_irq_restore(flags);
161}
162
163/* must come after the send_IPI functions above for inlining */
164static int convert_apicid_to_cpu(int apic_id)
165{
166 int i;
167
168 for_each_possible_cpu(i) {
169 if (per_cpu(x86_cpu_to_apicid, i) == apic_id)
170 return i;
171 }
172 return -1;
173}
174
175int safe_smp_processor_id(void)
176{
177 int apicid, cpuid;
178
179 if (!boot_cpu_has(X86_FEATURE_APIC))
180 return 0;
181
182 apicid = hard_smp_processor_id();
183 if (apicid == BAD_APICID)
184 return 0;
185
186 cpuid = convert_apicid_to_cpu(apicid);
187
188 return cpuid >= 0 ? cpuid : 0;
189}
190#endif
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index 3973e2df7f87..b864341dcc45 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -6,13 +6,18 @@
6#include <linux/kernel_stat.h> 6#include <linux/kernel_stat.h>
7#include <linux/seq_file.h> 7#include <linux/seq_file.h>
8#include <linux/smp.h> 8#include <linux/smp.h>
9#include <linux/ftrace.h>
9 10
10#include <asm/apic.h> 11#include <asm/apic.h>
11#include <asm/io_apic.h> 12#include <asm/io_apic.h>
12#include <asm/irq.h> 13#include <asm/irq.h>
14#include <asm/idle.h>
13 15
14atomic_t irq_err_count; 16atomic_t irq_err_count;
15 17
18/* Function pointer for generic interrupt vector handling */
19void (*generic_interrupt_extension)(void) = NULL;
20
16/* 21/*
17 * 'what should we do if we get a hw irq event on an illegal vector'. 22 * 'what should we do if we get a hw irq event on an illegal vector'.
18 * each architecture has to answer this themselves. 23 * each architecture has to answer this themselves.
@@ -36,11 +41,7 @@ void ack_bad_irq(unsigned int irq)
36#endif 41#endif
37} 42}
38 43
39#ifdef CONFIG_X86_32 44#define irq_stats(x) (&per_cpu(irq_stat, x))
40# define irq_stats(x) (&per_cpu(irq_stat, x))
41#else
42# define irq_stats(x) cpu_pda(x)
43#endif
44/* 45/*
45 * /proc/interrupts printing: 46 * /proc/interrupts printing:
46 */ 47 */
@@ -58,6 +59,12 @@ static int show_other_interrupts(struct seq_file *p)
58 seq_printf(p, "%10u ", irq_stats(j)->apic_timer_irqs); 59 seq_printf(p, "%10u ", irq_stats(j)->apic_timer_irqs);
59 seq_printf(p, " Local timer interrupts\n"); 60 seq_printf(p, " Local timer interrupts\n");
60#endif 61#endif
62 if (generic_interrupt_extension) {
63 seq_printf(p, "PLT: ");
64 for_each_online_cpu(j)
65 seq_printf(p, "%10u ", irq_stats(j)->generic_irqs);
66 seq_printf(p, " Platform interrupts\n");
67 }
61#ifdef CONFIG_SMP 68#ifdef CONFIG_SMP
62 seq_printf(p, "RES: "); 69 seq_printf(p, "RES: ");
63 for_each_online_cpu(j) 70 for_each_online_cpu(j)
@@ -165,6 +172,8 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
165#ifdef CONFIG_X86_LOCAL_APIC 172#ifdef CONFIG_X86_LOCAL_APIC
166 sum += irq_stats(cpu)->apic_timer_irqs; 173 sum += irq_stats(cpu)->apic_timer_irqs;
167#endif 174#endif
175 if (generic_interrupt_extension)
176 sum += irq_stats(cpu)->generic_irqs;
168#ifdef CONFIG_SMP 177#ifdef CONFIG_SMP
169 sum += irq_stats(cpu)->irq_resched_count; 178 sum += irq_stats(cpu)->irq_resched_count;
170 sum += irq_stats(cpu)->irq_call_count; 179 sum += irq_stats(cpu)->irq_call_count;
@@ -192,4 +201,63 @@ u64 arch_irq_stat(void)
192 return sum; 201 return sum;
193} 202}
194 203
204
205/*
206 * do_IRQ handles all normal device IRQ's (the special
207 * SMP cross-CPU interrupts have their own specific
208 * handlers).
209 */
210unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
211{
212 struct pt_regs *old_regs = set_irq_regs(regs);
213
214 /* high bit used in ret_from_ code */
215 unsigned vector = ~regs->orig_ax;
216 unsigned irq;
217
218 exit_idle();
219 irq_enter();
220
221 irq = __get_cpu_var(vector_irq)[vector];
222
223 if (!handle_irq(irq, regs)) {
224#ifdef CONFIG_X86_64
225 if (!disable_apic)
226 ack_APIC_irq();
227#endif
228
229 if (printk_ratelimit())
230 printk(KERN_EMERG "%s: %d.%d No irq handler for vector (irq %d)\n",
231 __func__, smp_processor_id(), vector, irq);
232 }
233
234 irq_exit();
235
236 set_irq_regs(old_regs);
237 return 1;
238}
239
240/*
241 * Handler for GENERIC_INTERRUPT_VECTOR.
242 */
243void smp_generic_interrupt(struct pt_regs *regs)
244{
245 struct pt_regs *old_regs = set_irq_regs(regs);
246
247 ack_APIC_irq();
248
249 exit_idle();
250
251 irq_enter();
252
253 inc_irq_stat(generic_irqs);
254
255 if (generic_interrupt_extension)
256 generic_interrupt_extension();
257
258 irq_exit();
259
260 set_irq_regs(old_regs);
261}
262
195EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq); 263EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq);
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
index e0f29be8ab0b..3b09634a5153 100644
--- a/arch/x86/kernel/irq_32.c
+++ b/arch/x86/kernel/irq_32.c
@@ -16,6 +16,7 @@
16#include <linux/cpu.h> 16#include <linux/cpu.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/uaccess.h> 18#include <linux/uaccess.h>
19#include <linux/percpu.h>
19 20
20#include <asm/apic.h> 21#include <asm/apic.h>
21 22
@@ -55,13 +56,13 @@ static inline void print_stack_overflow(void) { }
55union irq_ctx { 56union irq_ctx {
56 struct thread_info tinfo; 57 struct thread_info tinfo;
57 u32 stack[THREAD_SIZE/sizeof(u32)]; 58 u32 stack[THREAD_SIZE/sizeof(u32)];
58}; 59} __attribute__((aligned(PAGE_SIZE)));
59 60
60static union irq_ctx *hardirq_ctx[NR_CPUS] __read_mostly; 61static DEFINE_PER_CPU(union irq_ctx *, hardirq_ctx);
61static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly; 62static DEFINE_PER_CPU(union irq_ctx *, softirq_ctx);
62 63
63static char softirq_stack[NR_CPUS * THREAD_SIZE] __page_aligned_bss; 64static DEFINE_PER_CPU_PAGE_ALIGNED(union irq_ctx, hardirq_stack);
64static char hardirq_stack[NR_CPUS * THREAD_SIZE] __page_aligned_bss; 65static DEFINE_PER_CPU_PAGE_ALIGNED(union irq_ctx, softirq_stack);
65 66
66static void call_on_stack(void *func, void *stack) 67static void call_on_stack(void *func, void *stack)
67{ 68{
@@ -81,7 +82,7 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
81 u32 *isp, arg1, arg2; 82 u32 *isp, arg1, arg2;
82 83
83 curctx = (union irq_ctx *) current_thread_info(); 84 curctx = (union irq_ctx *) current_thread_info();
84 irqctx = hardirq_ctx[smp_processor_id()]; 85 irqctx = __get_cpu_var(hardirq_ctx);
85 86
86 /* 87 /*
87 * this is where we switch to the IRQ stack. However, if we are 88 * this is where we switch to the IRQ stack. However, if we are
@@ -125,34 +126,34 @@ void __cpuinit irq_ctx_init(int cpu)
125{ 126{
126 union irq_ctx *irqctx; 127 union irq_ctx *irqctx;
127 128
128 if (hardirq_ctx[cpu]) 129 if (per_cpu(hardirq_ctx, cpu))
129 return; 130 return;
130 131
131 irqctx = (union irq_ctx*) &hardirq_stack[cpu*THREAD_SIZE]; 132 irqctx = &per_cpu(hardirq_stack, cpu);
132 irqctx->tinfo.task = NULL; 133 irqctx->tinfo.task = NULL;
133 irqctx->tinfo.exec_domain = NULL; 134 irqctx->tinfo.exec_domain = NULL;
134 irqctx->tinfo.cpu = cpu; 135 irqctx->tinfo.cpu = cpu;
135 irqctx->tinfo.preempt_count = HARDIRQ_OFFSET; 136 irqctx->tinfo.preempt_count = HARDIRQ_OFFSET;
136 irqctx->tinfo.addr_limit = MAKE_MM_SEG(0); 137 irqctx->tinfo.addr_limit = MAKE_MM_SEG(0);
137 138
138 hardirq_ctx[cpu] = irqctx; 139 per_cpu(hardirq_ctx, cpu) = irqctx;
139 140
140 irqctx = (union irq_ctx *) &softirq_stack[cpu*THREAD_SIZE]; 141 irqctx = &per_cpu(softirq_stack, cpu);
141 irqctx->tinfo.task = NULL; 142 irqctx->tinfo.task = NULL;
142 irqctx->tinfo.exec_domain = NULL; 143 irqctx->tinfo.exec_domain = NULL;
143 irqctx->tinfo.cpu = cpu; 144 irqctx->tinfo.cpu = cpu;
144 irqctx->tinfo.preempt_count = 0; 145 irqctx->tinfo.preempt_count = 0;
145 irqctx->tinfo.addr_limit = MAKE_MM_SEG(0); 146 irqctx->tinfo.addr_limit = MAKE_MM_SEG(0);
146 147
147 softirq_ctx[cpu] = irqctx; 148 per_cpu(softirq_ctx, cpu) = irqctx;
148 149
149 printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n", 150 printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
150 cpu, hardirq_ctx[cpu], softirq_ctx[cpu]); 151 cpu, per_cpu(hardirq_ctx, cpu), per_cpu(softirq_ctx, cpu));
151} 152}
152 153
153void irq_ctx_exit(int cpu) 154void irq_ctx_exit(int cpu)
154{ 155{
155 hardirq_ctx[cpu] = NULL; 156 per_cpu(hardirq_ctx, cpu) = NULL;
156} 157}
157 158
158asmlinkage void do_softirq(void) 159asmlinkage void do_softirq(void)
@@ -169,7 +170,7 @@ asmlinkage void do_softirq(void)
169 170
170 if (local_softirq_pending()) { 171 if (local_softirq_pending()) {
171 curctx = current_thread_info(); 172 curctx = current_thread_info();
172 irqctx = softirq_ctx[smp_processor_id()]; 173 irqctx = __get_cpu_var(softirq_ctx);
173 irqctx->tinfo.task = curctx->task; 174 irqctx->tinfo.task = curctx->task;
174 irqctx->tinfo.previous_esp = current_stack_pointer; 175 irqctx->tinfo.previous_esp = current_stack_pointer;
175 176
@@ -191,33 +192,16 @@ static inline int
191execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq) { return 0; } 192execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq) { return 0; }
192#endif 193#endif
193 194
194/* 195bool handle_irq(unsigned irq, struct pt_regs *regs)
195 * do_IRQ handles all normal device IRQ's (the special
196 * SMP cross-CPU interrupts have their own specific
197 * handlers).
198 */
199unsigned int do_IRQ(struct pt_regs *regs)
200{ 196{
201 struct pt_regs *old_regs;
202 /* high bit used in ret_from_ code */
203 int overflow;
204 unsigned vector = ~regs->orig_ax;
205 struct irq_desc *desc; 197 struct irq_desc *desc;
206 unsigned irq; 198 int overflow;
207
208
209 old_regs = set_irq_regs(regs);
210 irq_enter();
211 irq = __get_cpu_var(vector_irq)[vector];
212 199
213 overflow = check_stack_overflow(); 200 overflow = check_stack_overflow();
214 201
215 desc = irq_to_desc(irq); 202 desc = irq_to_desc(irq);
216 if (unlikely(!desc)) { 203 if (unlikely(!desc))
217 printk(KERN_EMERG "%s: cannot handle IRQ %d vector %#x cpu %d\n", 204 return false;
218 __func__, irq, vector, smp_processor_id());
219 BUG();
220 }
221 205
222 if (!execute_on_irq_stack(overflow, desc, irq)) { 206 if (!execute_on_irq_stack(overflow, desc, irq)) {
223 if (unlikely(overflow)) 207 if (unlikely(overflow))
@@ -225,13 +209,10 @@ unsigned int do_IRQ(struct pt_regs *regs)
225 desc->handle_irq(irq, desc); 209 desc->handle_irq(irq, desc);
226 } 210 }
227 211
228 irq_exit(); 212 return true;
229 set_irq_regs(old_regs);
230 return 1;
231} 213}
232 214
233#ifdef CONFIG_HOTPLUG_CPU 215#ifdef CONFIG_HOTPLUG_CPU
234#include <mach_apic.h>
235 216
236/* A cpu has been removed from cpu_online_mask. Reset irq affinities. */ 217/* A cpu has been removed from cpu_online_mask. Reset irq affinities. */
237void fixup_irqs(void) 218void fixup_irqs(void)
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
index 0b21cb1ea11f..977d8b43a0dd 100644
--- a/arch/x86/kernel/irq_64.c
+++ b/arch/x86/kernel/irq_64.c
@@ -18,6 +18,13 @@
18#include <linux/smp.h> 18#include <linux/smp.h>
19#include <asm/io_apic.h> 19#include <asm/io_apic.h>
20#include <asm/idle.h> 20#include <asm/idle.h>
21#include <asm/apic.h>
22
23DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
24EXPORT_PER_CPU_SYMBOL(irq_stat);
25
26DEFINE_PER_CPU(struct pt_regs *, irq_regs);
27EXPORT_PER_CPU_SYMBOL(irq_regs);
21 28
22/* 29/*
23 * Probabilistic stack overflow check: 30 * Probabilistic stack overflow check:
@@ -41,42 +48,18 @@ static inline void stack_overflow_check(struct pt_regs *regs)
41#endif 48#endif
42} 49}
43 50
44/* 51bool handle_irq(unsigned irq, struct pt_regs *regs)
45 * do_IRQ handles all normal device IRQ's (the special
46 * SMP cross-CPU interrupts have their own specific
47 * handlers).
48 */
49asmlinkage unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
50{ 52{
51 struct pt_regs *old_regs = set_irq_regs(regs);
52 struct irq_desc *desc; 53 struct irq_desc *desc;
53 54
54 /* high bit used in ret_from_ code */
55 unsigned vector = ~regs->orig_ax;
56 unsigned irq;
57
58 exit_idle();
59 irq_enter();
60 irq = __get_cpu_var(vector_irq)[vector];
61
62 stack_overflow_check(regs); 55 stack_overflow_check(regs);
63 56
64 desc = irq_to_desc(irq); 57 desc = irq_to_desc(irq);
65 if (likely(desc)) 58 if (unlikely(!desc))
66 generic_handle_irq_desc(irq, desc); 59 return false;
67 else {
68 if (!disable_apic)
69 ack_APIC_irq();
70
71 if (printk_ratelimit())
72 printk(KERN_EMERG "%s: %d.%d No irq handler for vector\n",
73 __func__, smp_processor_id(), vector);
74 }
75
76 irq_exit();
77 60
78 set_irq_regs(old_regs); 61 generic_handle_irq_desc(irq, desc);
79 return 1; 62 return true;
80} 63}
81 64
82#ifdef CONFIG_HOTPLUG_CPU 65#ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/kernel/irqinit_32.c b/arch/x86/kernel/irqinit_32.c
index 1507ad4e674d..bc1326105448 100644
--- a/arch/x86/kernel/irqinit_32.c
+++ b/arch/x86/kernel/irqinit_32.c
@@ -18,7 +18,7 @@
18#include <asm/pgtable.h> 18#include <asm/pgtable.h>
19#include <asm/desc.h> 19#include <asm/desc.h>
20#include <asm/apic.h> 20#include <asm/apic.h>
21#include <asm/arch_hooks.h> 21#include <asm/setup.h>
22#include <asm/i8259.h> 22#include <asm/i8259.h>
23#include <asm/traps.h> 23#include <asm/traps.h>
24 24
@@ -127,8 +127,8 @@ void __init native_init_IRQ(void)
127{ 127{
128 int i; 128 int i;
129 129
130 /* all the set up before the call gates are initialised */ 130 /* Execute any quirks before the call gates are initialised: */
131 pre_intr_init_hook(); 131 x86_quirk_pre_intr_init();
132 132
133 /* 133 /*
134 * Cover the whole vector space, no vector can escape 134 * Cover the whole vector space, no vector can escape
@@ -149,8 +149,15 @@ void __init native_init_IRQ(void)
149 */ 149 */
150 alloc_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt); 150 alloc_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt);
151 151
152 /* IPI for invalidation */ 152 /* IPIs for invalidation */
153 alloc_intr_gate(INVALIDATE_TLB_VECTOR, invalidate_interrupt); 153 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+0, invalidate_interrupt0);
154 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+1, invalidate_interrupt1);
155 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+2, invalidate_interrupt2);
156 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+3, invalidate_interrupt3);
157 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+4, invalidate_interrupt4);
158 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+5, invalidate_interrupt5);
159 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+6, invalidate_interrupt6);
160 alloc_intr_gate(INVALIDATE_TLB_VECTOR_START+7, invalidate_interrupt7);
154 161
155 /* IPI for generic function call */ 162 /* IPI for generic function call */
156 alloc_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt); 163 alloc_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
@@ -168,6 +175,9 @@ void __init native_init_IRQ(void)
168 /* self generated IPI for local APIC timer */ 175 /* self generated IPI for local APIC timer */
169 alloc_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt); 176 alloc_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt);
170 177
178 /* generic IPI for platform specific use */
179 alloc_intr_gate(GENERIC_INTERRUPT_VECTOR, generic_interrupt);
180
171 /* IPI vectors for APIC spurious and error interrupts */ 181 /* IPI vectors for APIC spurious and error interrupts */
172 alloc_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt); 182 alloc_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt);
173 alloc_intr_gate(ERROR_APIC_VECTOR, error_interrupt); 183 alloc_intr_gate(ERROR_APIC_VECTOR, error_interrupt);
@@ -181,10 +191,11 @@ void __init native_init_IRQ(void)
181 if (!acpi_ioapic) 191 if (!acpi_ioapic)
182 setup_irq(2, &irq2); 192 setup_irq(2, &irq2);
183 193
184 /* setup after call gates are initialised (usually add in 194 /*
185 * the architecture specific gates) 195 * Call quirks after call gates are initialised (usually add in
196 * the architecture specific gates):
186 */ 197 */
187 intr_init_hook(); 198 x86_quirk_intr_init();
188 199
189 /* 200 /*
190 * External FPU? Set up irq13 if so, for 201 * External FPU? Set up irq13 if so, for
diff --git a/arch/x86/kernel/irqinit_64.c b/arch/x86/kernel/irqinit_64.c
index da481a1e3f30..c7a49e0ffbfb 100644
--- a/arch/x86/kernel/irqinit_64.c
+++ b/arch/x86/kernel/irqinit_64.c
@@ -147,6 +147,9 @@ static void __init apic_intr_init(void)
147 /* self generated IPI for local APIC timer */ 147 /* self generated IPI for local APIC timer */
148 alloc_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt); 148 alloc_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt);
149 149
150 /* generic IPI for platform specific use */
151 alloc_intr_gate(GENERIC_INTERRUPT_VECTOR, generic_interrupt);
152
150 /* IPI vectors for APIC spurious and error interrupts */ 153 /* IPI vectors for APIC spurious and error interrupts */
151 alloc_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt); 154 alloc_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt);
152 alloc_intr_gate(ERROR_APIC_VECTOR, error_interrupt); 155 alloc_intr_gate(ERROR_APIC_VECTOR, error_interrupt);
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index 10435a120d22..eedfaebe1063 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -46,7 +46,7 @@
46#include <asm/apicdef.h> 46#include <asm/apicdef.h>
47#include <asm/system.h> 47#include <asm/system.h>
48 48
49#include <mach_ipi.h> 49#include <asm/apic.h>
50 50
51/* 51/*
52 * Put the error code here just in case the user cares: 52 * Put the error code here just in case the user cares:
@@ -347,7 +347,7 @@ void kgdb_post_primary_code(struct pt_regs *regs, int e_vector, int err_code)
347 */ 347 */
348void kgdb_roundup_cpus(unsigned long flags) 348void kgdb_roundup_cpus(unsigned long flags)
349{ 349{
350 send_IPI_allbutself(APIC_DM_NMI); 350 apic->send_IPI_allbutself(APIC_DM_NMI);
351} 351}
352#endif 352#endif
353 353
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
index 884d985b8b82..e948b28a5a9a 100644
--- a/arch/x86/kernel/kprobes.c
+++ b/arch/x86/kernel/kprobes.c
@@ -446,7 +446,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
446static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs, 446static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs,
447 struct kprobe_ctlblk *kcb) 447 struct kprobe_ctlblk *kcb)
448{ 448{
449#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PM) 449#if !defined(CONFIG_PREEMPT) || defined(CONFIG_FREEZER)
450 if (p->ainsn.boostable == 1 && !p->post_handler) { 450 if (p->ainsn.boostable == 1 && !p->post_handler) {
451 /* Boost up -- we can execute copied instructions directly */ 451 /* Boost up -- we can execute copied instructions directly */
452 reset_current_kprobe(); 452 reset_current_kprobe();
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 652fce6d2cce..137f2e8132df 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -19,7 +19,6 @@
19#include <linux/clocksource.h> 19#include <linux/clocksource.h>
20#include <linux/kvm_para.h> 20#include <linux/kvm_para.h>
21#include <asm/pvclock.h> 21#include <asm/pvclock.h>
22#include <asm/arch_hooks.h>
23#include <asm/msr.h> 22#include <asm/msr.h>
24#include <asm/apic.h> 23#include <asm/apic.h>
25#include <linux/percpu.h> 24#include <linux/percpu.h>
diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
index 37f420018a41..e7368c1da01d 100644
--- a/arch/x86/kernel/machine_kexec_32.c
+++ b/arch/x86/kernel/machine_kexec_32.c
@@ -14,12 +14,12 @@
14#include <linux/ftrace.h> 14#include <linux/ftrace.h>
15#include <linux/suspend.h> 15#include <linux/suspend.h>
16#include <linux/gfp.h> 16#include <linux/gfp.h>
17#include <linux/io.h>
17 18
18#include <asm/pgtable.h> 19#include <asm/pgtable.h>
19#include <asm/pgalloc.h> 20#include <asm/pgalloc.h>
20#include <asm/tlbflush.h> 21#include <asm/tlbflush.h>
21#include <asm/mmu_context.h> 22#include <asm/mmu_context.h>
22#include <asm/io.h>
23#include <asm/apic.h> 23#include <asm/apic.h>
24#include <asm/cpufeature.h> 24#include <asm/cpufeature.h>
25#include <asm/desc.h> 25#include <asm/desc.h>
@@ -63,7 +63,7 @@ static void load_segments(void)
63 "\tmovl %%eax,%%fs\n" 63 "\tmovl %%eax,%%fs\n"
64 "\tmovl %%eax,%%gs\n" 64 "\tmovl %%eax,%%gs\n"
65 "\tmovl %%eax,%%ss\n" 65 "\tmovl %%eax,%%ss\n"
66 ::: "eax", "memory"); 66 : : : "eax", "memory");
67#undef STR 67#undef STR
68#undef __STR 68#undef __STR
69} 69}
@@ -121,7 +121,7 @@ static void machine_kexec_page_table_set_one(
121static void machine_kexec_prepare_page_tables(struct kimage *image) 121static void machine_kexec_prepare_page_tables(struct kimage *image)
122{ 122{
123 void *control_page; 123 void *control_page;
124 pmd_t *pmd = 0; 124 pmd_t *pmd = NULL;
125 125
126 control_page = page_address(image->control_code_page); 126 control_page = page_address(image->control_code_page);
127#ifdef CONFIG_X86_PAE 127#ifdef CONFIG_X86_PAE
@@ -205,7 +205,8 @@ void machine_kexec(struct kimage *image)
205 205
206 if (image->preserve_context) { 206 if (image->preserve_context) {
207#ifdef CONFIG_X86_IO_APIC 207#ifdef CONFIG_X86_IO_APIC
208 /* We need to put APICs in legacy mode so that we can 208 /*
209 * We need to put APICs in legacy mode so that we can
209 * get timer interrupts in second kernel. kexec/kdump 210 * get timer interrupts in second kernel. kexec/kdump
210 * paths already have calls to disable_IO_APIC() in 211 * paths already have calls to disable_IO_APIC() in
211 * one form or other. kexec jump path also need 212 * one form or other. kexec jump path also need
@@ -227,7 +228,8 @@ void machine_kexec(struct kimage *image)
227 page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page) 228 page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page)
228 << PAGE_SHIFT); 229 << PAGE_SHIFT);
229 230
230 /* The segment registers are funny things, they have both a 231 /*
232 * The segment registers are funny things, they have both a
231 * visible and an invisible part. Whenever the visible part is 233 * visible and an invisible part. Whenever the visible part is
232 * set to a specific selector, the invisible part is loaded 234 * set to a specific selector, the invisible part is loaded
233 * with from a table in memory. At no other time is the 235 * with from a table in memory. At no other time is the
@@ -237,11 +239,12 @@ void machine_kexec(struct kimage *image)
237 * segments, before I zap the gdt with an invalid value. 239 * segments, before I zap the gdt with an invalid value.
238 */ 240 */
239 load_segments(); 241 load_segments();
240 /* The gdt & idt are now invalid. 242 /*
243 * The gdt & idt are now invalid.
241 * If you want to load them you must set up your own idt & gdt. 244 * If you want to load them you must set up your own idt & gdt.
242 */ 245 */
243 set_gdt(phys_to_virt(0),0); 246 set_gdt(phys_to_virt(0), 0);
244 set_idt(phys_to_virt(0),0); 247 set_idt(phys_to_virt(0), 0);
245 248
246 /* now call it */ 249 /* now call it */
247 image->start = relocate_kernel_ptr((unsigned long)image->head, 250 image->start = relocate_kernel_ptr((unsigned long)image->head,
diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
index c43caa3a91f3..89cea4d44679 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -12,20 +12,47 @@
12#include <linux/reboot.h> 12#include <linux/reboot.h>
13#include <linux/numa.h> 13#include <linux/numa.h>
14#include <linux/ftrace.h> 14#include <linux/ftrace.h>
15#include <linux/io.h>
16#include <linux/suspend.h>
15 17
16#include <asm/pgtable.h> 18#include <asm/pgtable.h>
17#include <asm/tlbflush.h> 19#include <asm/tlbflush.h>
18#include <asm/mmu_context.h> 20#include <asm/mmu_context.h>
19#include <asm/io.h>
20 21
21#define PAGE_ALIGNED __attribute__ ((__aligned__(PAGE_SIZE))) 22static int init_one_level2_page(struct kimage *image, pgd_t *pgd,
22static u64 kexec_pgd[512] PAGE_ALIGNED; 23 unsigned long addr)
23static u64 kexec_pud0[512] PAGE_ALIGNED; 24{
24static u64 kexec_pmd0[512] PAGE_ALIGNED; 25 pud_t *pud;
25static u64 kexec_pte0[512] PAGE_ALIGNED; 26 pmd_t *pmd;
26static u64 kexec_pud1[512] PAGE_ALIGNED; 27 struct page *page;
27static u64 kexec_pmd1[512] PAGE_ALIGNED; 28 int result = -ENOMEM;
28static u64 kexec_pte1[512] PAGE_ALIGNED; 29
30 addr &= PMD_MASK;
31 pgd += pgd_index(addr);
32 if (!pgd_present(*pgd)) {
33 page = kimage_alloc_control_pages(image, 0);
34 if (!page)
35 goto out;
36 pud = (pud_t *)page_address(page);
37 memset(pud, 0, PAGE_SIZE);
38 set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE));
39 }
40 pud = pud_offset(pgd, addr);
41 if (!pud_present(*pud)) {
42 page = kimage_alloc_control_pages(image, 0);
43 if (!page)
44 goto out;
45 pmd = (pmd_t *)page_address(page);
46 memset(pmd, 0, PAGE_SIZE);
47 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE));
48 }
49 pmd = pmd_offset(pud, addr);
50 if (!pmd_present(*pmd))
51 set_pmd(pmd, __pmd(addr | __PAGE_KERNEL_LARGE_EXEC));
52 result = 0;
53out:
54 return result;
55}
29 56
30static void init_level2_page(pmd_t *level2p, unsigned long addr) 57static void init_level2_page(pmd_t *level2p, unsigned long addr)
31{ 58{
@@ -92,9 +119,8 @@ static int init_level4_page(struct kimage *image, pgd_t *level4p,
92 } 119 }
93 level3p = (pud_t *)page_address(page); 120 level3p = (pud_t *)page_address(page);
94 result = init_level3_page(image, level3p, addr, last_addr); 121 result = init_level3_page(image, level3p, addr, last_addr);
95 if (result) { 122 if (result)
96 goto out; 123 goto out;
97 }
98 set_pgd(level4p++, __pgd(__pa(level3p) | _KERNPG_TABLE)); 124 set_pgd(level4p++, __pgd(__pa(level3p) | _KERNPG_TABLE));
99 addr += PGDIR_SIZE; 125 addr += PGDIR_SIZE;
100 } 126 }
@@ -107,12 +133,72 @@ out:
107 return result; 133 return result;
108} 134}
109 135
136static void free_transition_pgtable(struct kimage *image)
137{
138 free_page((unsigned long)image->arch.pud);
139 free_page((unsigned long)image->arch.pmd);
140 free_page((unsigned long)image->arch.pte);
141}
142
143static int init_transition_pgtable(struct kimage *image, pgd_t *pgd)
144{
145 pud_t *pud;
146 pmd_t *pmd;
147 pte_t *pte;
148 unsigned long vaddr, paddr;
149 int result = -ENOMEM;
150
151 vaddr = (unsigned long)relocate_kernel;
152 paddr = __pa(page_address(image->control_code_page)+PAGE_SIZE);
153 pgd += pgd_index(vaddr);
154 if (!pgd_present(*pgd)) {
155 pud = (pud_t *)get_zeroed_page(GFP_KERNEL);
156 if (!pud)
157 goto err;
158 image->arch.pud = pud;
159 set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE));
160 }
161 pud = pud_offset(pgd, vaddr);
162 if (!pud_present(*pud)) {
163 pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL);
164 if (!pmd)
165 goto err;
166 image->arch.pmd = pmd;
167 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE));
168 }
169 pmd = pmd_offset(pud, vaddr);
170 if (!pmd_present(*pmd)) {
171 pte = (pte_t *)get_zeroed_page(GFP_KERNEL);
172 if (!pte)
173 goto err;
174 image->arch.pte = pte;
175 set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
176 }
177 pte = pte_offset_kernel(pmd, vaddr);
178 set_pte(pte, pfn_pte(paddr >> PAGE_SHIFT, PAGE_KERNEL_EXEC));
179 return 0;
180err:
181 free_transition_pgtable(image);
182 return result;
183}
184
110 185
111static int init_pgtable(struct kimage *image, unsigned long start_pgtable) 186static int init_pgtable(struct kimage *image, unsigned long start_pgtable)
112{ 187{
113 pgd_t *level4p; 188 pgd_t *level4p;
189 int result;
114 level4p = (pgd_t *)__va(start_pgtable); 190 level4p = (pgd_t *)__va(start_pgtable);
115 return init_level4_page(image, level4p, 0, max_pfn << PAGE_SHIFT); 191 result = init_level4_page(image, level4p, 0, max_pfn << PAGE_SHIFT);
192 if (result)
193 return result;
194 /*
195 * image->start may be outside 0 ~ max_pfn, for example when
196 * jump back to original kernel from kexeced kernel
197 */
198 result = init_one_level2_page(image, level4p, image->start);
199 if (result)
200 return result;
201 return init_transition_pgtable(image, level4p);
116} 202}
117 203
118static void set_idt(void *newidt, u16 limit) 204static void set_idt(void *newidt, u16 limit)
@@ -174,7 +260,7 @@ int machine_kexec_prepare(struct kimage *image)
174 260
175void machine_kexec_cleanup(struct kimage *image) 261void machine_kexec_cleanup(struct kimage *image)
176{ 262{
177 return; 263 free_transition_pgtable(image);
178} 264}
179 265
180/* 266/*
@@ -185,36 +271,45 @@ void machine_kexec(struct kimage *image)
185{ 271{
186 unsigned long page_list[PAGES_NR]; 272 unsigned long page_list[PAGES_NR];
187 void *control_page; 273 void *control_page;
274 int save_ftrace_enabled;
188 275
189 tracer_disable(); 276#ifdef CONFIG_KEXEC_JUMP
277 if (kexec_image->preserve_context)
278 save_processor_state();
279#endif
280
281 save_ftrace_enabled = __ftrace_enabled_save();
190 282
191 /* Interrupts aren't acceptable while we reboot */ 283 /* Interrupts aren't acceptable while we reboot */
192 local_irq_disable(); 284 local_irq_disable();
193 285
286 if (image->preserve_context) {
287#ifdef CONFIG_X86_IO_APIC
288 /*
289 * We need to put APICs in legacy mode so that we can
290 * get timer interrupts in second kernel. kexec/kdump
291 * paths already have calls to disable_IO_APIC() in
292 * one form or other. kexec jump path also need
293 * one.
294 */
295 disable_IO_APIC();
296#endif
297 }
298
194 control_page = page_address(image->control_code_page) + PAGE_SIZE; 299 control_page = page_address(image->control_code_page) + PAGE_SIZE;
195 memcpy(control_page, relocate_kernel, PAGE_SIZE); 300 memcpy(control_page, relocate_kernel, KEXEC_CONTROL_CODE_MAX_SIZE);
196 301
197 page_list[PA_CONTROL_PAGE] = virt_to_phys(control_page); 302 page_list[PA_CONTROL_PAGE] = virt_to_phys(control_page);
198 page_list[VA_CONTROL_PAGE] = (unsigned long)relocate_kernel; 303 page_list[VA_CONTROL_PAGE] = (unsigned long)control_page;
199 page_list[PA_PGD] = virt_to_phys(&kexec_pgd);
200 page_list[VA_PGD] = (unsigned long)kexec_pgd;
201 page_list[PA_PUD_0] = virt_to_phys(&kexec_pud0);
202 page_list[VA_PUD_0] = (unsigned long)kexec_pud0;
203 page_list[PA_PMD_0] = virt_to_phys(&kexec_pmd0);
204 page_list[VA_PMD_0] = (unsigned long)kexec_pmd0;
205 page_list[PA_PTE_0] = virt_to_phys(&kexec_pte0);
206 page_list[VA_PTE_0] = (unsigned long)kexec_pte0;
207 page_list[PA_PUD_1] = virt_to_phys(&kexec_pud1);
208 page_list[VA_PUD_1] = (unsigned long)kexec_pud1;
209 page_list[PA_PMD_1] = virt_to_phys(&kexec_pmd1);
210 page_list[VA_PMD_1] = (unsigned long)kexec_pmd1;
211 page_list[PA_PTE_1] = virt_to_phys(&kexec_pte1);
212 page_list[VA_PTE_1] = (unsigned long)kexec_pte1;
213
214 page_list[PA_TABLE_PAGE] = 304 page_list[PA_TABLE_PAGE] =
215 (unsigned long)__pa(page_address(image->control_code_page)); 305 (unsigned long)__pa(page_address(image->control_code_page));
216 306
217 /* The segment registers are funny things, they have both a 307 if (image->type == KEXEC_TYPE_DEFAULT)
308 page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page)
309 << PAGE_SHIFT);
310
311 /*
312 * The segment registers are funny things, they have both a
218 * visible and an invisible part. Whenever the visible part is 313 * visible and an invisible part. Whenever the visible part is
219 * set to a specific selector, the invisible part is loaded 314 * set to a specific selector, the invisible part is loaded
220 * with from a table in memory. At no other time is the 315 * with from a table in memory. At no other time is the
@@ -224,15 +319,25 @@ void machine_kexec(struct kimage *image)
224 * segments, before I zap the gdt with an invalid value. 319 * segments, before I zap the gdt with an invalid value.
225 */ 320 */
226 load_segments(); 321 load_segments();
227 /* The gdt & idt are now invalid. 322 /*
323 * The gdt & idt are now invalid.
228 * If you want to load them you must set up your own idt & gdt. 324 * If you want to load them you must set up your own idt & gdt.
229 */ 325 */
230 set_gdt(phys_to_virt(0),0); 326 set_gdt(phys_to_virt(0), 0);
231 set_idt(phys_to_virt(0),0); 327 set_idt(phys_to_virt(0), 0);
232 328
233 /* now call it */ 329 /* now call it */
234 relocate_kernel((unsigned long)image->head, (unsigned long)page_list, 330 image->start = relocate_kernel((unsigned long)image->head,
235 image->start); 331 (unsigned long)page_list,
332 image->start,
333 image->preserve_context);
334
335#ifdef CONFIG_KEXEC_JUMP
336 if (kexec_image->preserve_context)
337 restore_processor_state();
338#endif
339
340 __ftrace_enabled_restore(save_ftrace_enabled);
236} 341}
237 342
238void arch_crash_save_vmcoreinfo(void) 343void arch_crash_save_vmcoreinfo(void)
diff --git a/arch/x86/kernel/mca_32.c b/arch/x86/kernel/mca_32.c
index 2dc183758be3..845d80ce1ef1 100644
--- a/arch/x86/kernel/mca_32.c
+++ b/arch/x86/kernel/mca_32.c
@@ -51,7 +51,6 @@
51#include <linux/ioport.h> 51#include <linux/ioport.h>
52#include <asm/uaccess.h> 52#include <asm/uaccess.h>
53#include <linux/init.h> 53#include <linux/init.h>
54#include <asm/arch_hooks.h>
55 54
56static unsigned char which_scsi; 55static unsigned char which_scsi;
57 56
@@ -474,6 +473,4 @@ void __kprobes mca_handle_nmi(void)
474 * adapter was responsible for the error. 473 * adapter was responsible for the error.
475 */ 474 */
476 bus_for_each_dev(&mca_bus_type, NULL, NULL, mca_handle_nmi_callback); 475 bus_for_each_dev(&mca_bus_type, NULL, NULL, mca_handle_nmi_callback);
477 476}
478 mca_nmi_hook();
479} /* mca_handle_nmi */
diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c
index b7f4c929e615..5e9f4fc51385 100644
--- a/arch/x86/kernel/microcode_intel.c
+++ b/arch/x86/kernel/microcode_intel.c
@@ -87,9 +87,9 @@
87#include <linux/cpu.h> 87#include <linux/cpu.h>
88#include <linux/firmware.h> 88#include <linux/firmware.h>
89#include <linux/platform_device.h> 89#include <linux/platform_device.h>
90#include <linux/uaccess.h>
90 91
91#include <asm/msr.h> 92#include <asm/msr.h>
92#include <asm/uaccess.h>
93#include <asm/processor.h> 93#include <asm/processor.h>
94#include <asm/microcode.h> 94#include <asm/microcode.h>
95 95
@@ -196,7 +196,7 @@ static inline int update_match_cpu(struct cpu_signature *csig, int sig, int pf)
196 return (!sigmatch(sig, csig->sig, pf, csig->pf)) ? 0 : 1; 196 return (!sigmatch(sig, csig->sig, pf, csig->pf)) ? 0 : 1;
197} 197}
198 198
199static inline int 199static inline int
200update_match_revision(struct microcode_header_intel *mc_header, int rev) 200update_match_revision(struct microcode_header_intel *mc_header, int rev)
201{ 201{
202 return (mc_header->rev <= rev) ? 0 : 1; 202 return (mc_header->rev <= rev) ? 0 : 1;
@@ -442,8 +442,8 @@ static int request_microcode_fw(int cpu, struct device *device)
442 return ret; 442 return ret;
443 } 443 }
444 444
445 ret = generic_load_microcode(cpu, (void*)firmware->data, firmware->size, 445 ret = generic_load_microcode(cpu, (void *)firmware->data,
446 &get_ucode_fw); 446 firmware->size, &get_ucode_fw);
447 447
448 release_firmware(firmware); 448 release_firmware(firmware);
449 449
@@ -460,7 +460,7 @@ static int request_microcode_user(int cpu, const void __user *buf, size_t size)
460 /* We should bind the task to the CPU */ 460 /* We should bind the task to the CPU */
461 BUG_ON(cpu != raw_smp_processor_id()); 461 BUG_ON(cpu != raw_smp_processor_id());
462 462
463 return generic_load_microcode(cpu, (void*)buf, size, &get_ucode_user); 463 return generic_load_microcode(cpu, (void *)buf, size, &get_ucode_user);
464} 464}
465 465
466static void microcode_fini_cpu(int cpu) 466static void microcode_fini_cpu(int cpu)
diff --git a/arch/x86/kernel/module_32.c b/arch/x86/kernel/module_32.c
index 3db0a5442eb1..0edd819050e7 100644
--- a/arch/x86/kernel/module_32.c
+++ b/arch/x86/kernel/module_32.c
@@ -42,7 +42,7 @@ void module_free(struct module *mod, void *module_region)
42{ 42{
43 vfree(module_region); 43 vfree(module_region);
44 /* FIXME: If module_region == mod->init_region, trim exception 44 /* FIXME: If module_region == mod->init_region, trim exception
45 table entries. */ 45 table entries. */
46} 46}
47 47
48/* We don't need anything special. */ 48/* We don't need anything special. */
@@ -113,13 +113,13 @@ int module_finalize(const Elf_Ehdr *hdr,
113 *para = NULL; 113 *para = NULL;
114 char *secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset; 114 char *secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
115 115
116 for (s = sechdrs; s < sechdrs + hdr->e_shnum; s++) { 116 for (s = sechdrs; s < sechdrs + hdr->e_shnum; s++) {
117 if (!strcmp(".text", secstrings + s->sh_name)) 117 if (!strcmp(".text", secstrings + s->sh_name))
118 text = s; 118 text = s;
119 if (!strcmp(".altinstructions", secstrings + s->sh_name)) 119 if (!strcmp(".altinstructions", secstrings + s->sh_name))
120 alt = s; 120 alt = s;
121 if (!strcmp(".smp_locks", secstrings + s->sh_name)) 121 if (!strcmp(".smp_locks", secstrings + s->sh_name))
122 locks= s; 122 locks = s;
123 if (!strcmp(".parainstructions", secstrings + s->sh_name)) 123 if (!strcmp(".parainstructions", secstrings + s->sh_name))
124 para = s; 124 para = s;
125 } 125 }
diff --git a/arch/x86/kernel/module_64.c b/arch/x86/kernel/module_64.c
index 6ba87830d4b1..c23880b90b5c 100644
--- a/arch/x86/kernel/module_64.c
+++ b/arch/x86/kernel/module_64.c
@@ -30,14 +30,14 @@
30#include <asm/page.h> 30#include <asm/page.h>
31#include <asm/pgtable.h> 31#include <asm/pgtable.h>
32 32
33#define DEBUGP(fmt...) 33#define DEBUGP(fmt...)
34 34
35#ifndef CONFIG_UML 35#ifndef CONFIG_UML
36void module_free(struct module *mod, void *module_region) 36void module_free(struct module *mod, void *module_region)
37{ 37{
38 vfree(module_region); 38 vfree(module_region);
39 /* FIXME: If module_region == mod->init_region, trim exception 39 /* FIXME: If module_region == mod->init_region, trim exception
40 table entries. */ 40 table entries. */
41} 41}
42 42
43void *module_alloc(unsigned long size) 43void *module_alloc(unsigned long size)
@@ -77,7 +77,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
77 Elf64_Rela *rel = (void *)sechdrs[relsec].sh_addr; 77 Elf64_Rela *rel = (void *)sechdrs[relsec].sh_addr;
78 Elf64_Sym *sym; 78 Elf64_Sym *sym;
79 void *loc; 79 void *loc;
80 u64 val; 80 u64 val;
81 81
82 DEBUGP("Applying relocate section %u to %u\n", relsec, 82 DEBUGP("Applying relocate section %u to %u\n", relsec,
83 sechdrs[relsec].sh_info); 83 sechdrs[relsec].sh_info);
@@ -91,11 +91,11 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
91 sym = (Elf64_Sym *)sechdrs[symindex].sh_addr 91 sym = (Elf64_Sym *)sechdrs[symindex].sh_addr
92 + ELF64_R_SYM(rel[i].r_info); 92 + ELF64_R_SYM(rel[i].r_info);
93 93
94 DEBUGP("type %d st_value %Lx r_addend %Lx loc %Lx\n", 94 DEBUGP("type %d st_value %Lx r_addend %Lx loc %Lx\n",
95 (int)ELF64_R_TYPE(rel[i].r_info), 95 (int)ELF64_R_TYPE(rel[i].r_info),
96 sym->st_value, rel[i].r_addend, (u64)loc); 96 sym->st_value, rel[i].r_addend, (u64)loc);
97 97
98 val = sym->st_value + rel[i].r_addend; 98 val = sym->st_value + rel[i].r_addend;
99 99
100 switch (ELF64_R_TYPE(rel[i].r_info)) { 100 switch (ELF64_R_TYPE(rel[i].r_info)) {
101 case R_X86_64_NONE: 101 case R_X86_64_NONE:
@@ -113,16 +113,16 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
113 if ((s64)val != *(s32 *)loc) 113 if ((s64)val != *(s32 *)loc)
114 goto overflow; 114 goto overflow;
115 break; 115 break;
116 case R_X86_64_PC32: 116 case R_X86_64_PC32:
117 val -= (u64)loc; 117 val -= (u64)loc;
118 *(u32 *)loc = val; 118 *(u32 *)loc = val;
119#if 0 119#if 0
120 if ((s64)val != *(s32 *)loc) 120 if ((s64)val != *(s32 *)loc)
121 goto overflow; 121 goto overflow;
122#endif 122#endif
123 break; 123 break;
124 default: 124 default:
125 printk(KERN_ERR "module %s: Unknown rela relocation: %Lu\n", 125 printk(KERN_ERR "module %s: Unknown rela relocation: %llu\n",
126 me->name, ELF64_R_TYPE(rel[i].r_info)); 126 me->name, ELF64_R_TYPE(rel[i].r_info));
127 return -ENOEXEC; 127 return -ENOEXEC;
128 } 128 }
@@ -130,7 +130,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
130 return 0; 130 return 0;
131 131
132overflow: 132overflow:
133 printk(KERN_ERR "overflow in relocation type %d val %Lx\n", 133 printk(KERN_ERR "overflow in relocation type %d val %Lx\n",
134 (int)ELF64_R_TYPE(rel[i].r_info), val); 134 (int)ELF64_R_TYPE(rel[i].r_info), val);
135 printk(KERN_ERR "`%s' likely not compiled with -mcmodel=kernel\n", 135 printk(KERN_ERR "`%s' likely not compiled with -mcmodel=kernel\n",
136 me->name); 136 me->name);
@@ -143,13 +143,13 @@ int apply_relocate(Elf_Shdr *sechdrs,
143 unsigned int relsec, 143 unsigned int relsec,
144 struct module *me) 144 struct module *me)
145{ 145{
146 printk("non add relocation not supported\n"); 146 printk(KERN_ERR "non add relocation not supported\n");
147 return -ENOSYS; 147 return -ENOSYS;
148} 148}
149 149
150int module_finalize(const Elf_Ehdr *hdr, 150int module_finalize(const Elf_Ehdr *hdr,
151 const Elf_Shdr *sechdrs, 151 const Elf_Shdr *sechdrs,
152 struct module *me) 152 struct module *me)
153{ 153{
154 const Elf_Shdr *s, *text = NULL, *alt = NULL, *locks = NULL, 154 const Elf_Shdr *s, *text = NULL, *alt = NULL, *locks = NULL,
155 *para = NULL; 155 *para = NULL;
@@ -161,7 +161,7 @@ int module_finalize(const Elf_Ehdr *hdr,
161 if (!strcmp(".altinstructions", secstrings + s->sh_name)) 161 if (!strcmp(".altinstructions", secstrings + s->sh_name))
162 alt = s; 162 alt = s;
163 if (!strcmp(".smp_locks", secstrings + s->sh_name)) 163 if (!strcmp(".smp_locks", secstrings + s->sh_name))
164 locks= s; 164 locks = s;
165 if (!strcmp(".parainstructions", secstrings + s->sh_name)) 165 if (!strcmp(".parainstructions", secstrings + s->sh_name))
166 para = s; 166 para = s;
167 } 167 }
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index a649a4ccad43..e8192401da47 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -3,7 +3,7 @@
3 * compliant MP-table parsing routines. 3 * compliant MP-table parsing routines.
4 * 4 *
5 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk> 5 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk>
6 * (c) 1998, 1999, 2000 Ingo Molnar <mingo@redhat.com> 6 * (c) 1998, 1999, 2000, 2009 Ingo Molnar <mingo@redhat.com>
7 * (c) 2008 Alexey Starikovskiy <astarikovskiy@suse.de> 7 * (c) 2008 Alexey Starikovskiy <astarikovskiy@suse.de>
8 */ 8 */
9 9
@@ -29,12 +29,7 @@
29#include <asm/setup.h> 29#include <asm/setup.h>
30#include <asm/smp.h> 30#include <asm/smp.h>
31 31
32#include <mach_apic.h> 32#include <asm/apic.h>
33#ifdef CONFIG_X86_32
34#include <mach_apicdef.h>
35#include <mach_mpparse.h>
36#endif
37
38/* 33/*
39 * Checksum an MP configuration block. 34 * Checksum an MP configuration block.
40 */ 35 */
@@ -144,11 +139,11 @@ static void __init MP_ioapic_info(struct mpc_ioapic *m)
144 if (bad_ioapic(m->apicaddr)) 139 if (bad_ioapic(m->apicaddr))
145 return; 140 return;
146 141
147 mp_ioapics[nr_ioapics].mp_apicaddr = m->apicaddr; 142 mp_ioapics[nr_ioapics].apicaddr = m->apicaddr;
148 mp_ioapics[nr_ioapics].mp_apicid = m->apicid; 143 mp_ioapics[nr_ioapics].apicid = m->apicid;
149 mp_ioapics[nr_ioapics].mp_type = m->type; 144 mp_ioapics[nr_ioapics].type = m->type;
150 mp_ioapics[nr_ioapics].mp_apicver = m->apicver; 145 mp_ioapics[nr_ioapics].apicver = m->apicver;
151 mp_ioapics[nr_ioapics].mp_flags = m->flags; 146 mp_ioapics[nr_ioapics].flags = m->flags;
152 nr_ioapics++; 147 nr_ioapics++;
153} 148}
154 149
@@ -160,55 +155,55 @@ static void print_MP_intsrc_info(struct mpc_intsrc *m)
160 m->srcbusirq, m->dstapic, m->dstirq); 155 m->srcbusirq, m->dstapic, m->dstirq);
161} 156}
162 157
163static void __init print_mp_irq_info(struct mp_config_intsrc *mp_irq) 158static void __init print_mp_irq_info(struct mpc_intsrc *mp_irq)
164{ 159{
165 apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x," 160 apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x,"
166 " IRQ %02x, APIC ID %x, APIC INT %02x\n", 161 " IRQ %02x, APIC ID %x, APIC INT %02x\n",
167 mp_irq->mp_irqtype, mp_irq->mp_irqflag & 3, 162 mp_irq->irqtype, mp_irq->irqflag & 3,
168 (mp_irq->mp_irqflag >> 2) & 3, mp_irq->mp_srcbus, 163 (mp_irq->irqflag >> 2) & 3, mp_irq->srcbus,
169 mp_irq->mp_srcbusirq, mp_irq->mp_dstapic, mp_irq->mp_dstirq); 164 mp_irq->srcbusirq, mp_irq->dstapic, mp_irq->dstirq);
170} 165}
171 166
172static void __init assign_to_mp_irq(struct mpc_intsrc *m, 167static void __init assign_to_mp_irq(struct mpc_intsrc *m,
173 struct mp_config_intsrc *mp_irq) 168 struct mpc_intsrc *mp_irq)
174{ 169{
175 mp_irq->mp_dstapic = m->dstapic; 170 mp_irq->dstapic = m->dstapic;
176 mp_irq->mp_type = m->type; 171 mp_irq->type = m->type;
177 mp_irq->mp_irqtype = m->irqtype; 172 mp_irq->irqtype = m->irqtype;
178 mp_irq->mp_irqflag = m->irqflag; 173 mp_irq->irqflag = m->irqflag;
179 mp_irq->mp_srcbus = m->srcbus; 174 mp_irq->srcbus = m->srcbus;
180 mp_irq->mp_srcbusirq = m->srcbusirq; 175 mp_irq->srcbusirq = m->srcbusirq;
181 mp_irq->mp_dstirq = m->dstirq; 176 mp_irq->dstirq = m->dstirq;
182} 177}
183 178
184static void __init assign_to_mpc_intsrc(struct mp_config_intsrc *mp_irq, 179static void __init assign_to_mpc_intsrc(struct mpc_intsrc *mp_irq,
185 struct mpc_intsrc *m) 180 struct mpc_intsrc *m)
186{ 181{
187 m->dstapic = mp_irq->mp_dstapic; 182 m->dstapic = mp_irq->dstapic;
188 m->type = mp_irq->mp_type; 183 m->type = mp_irq->type;
189 m->irqtype = mp_irq->mp_irqtype; 184 m->irqtype = mp_irq->irqtype;
190 m->irqflag = mp_irq->mp_irqflag; 185 m->irqflag = mp_irq->irqflag;
191 m->srcbus = mp_irq->mp_srcbus; 186 m->srcbus = mp_irq->srcbus;
192 m->srcbusirq = mp_irq->mp_srcbusirq; 187 m->srcbusirq = mp_irq->srcbusirq;
193 m->dstirq = mp_irq->mp_dstirq; 188 m->dstirq = mp_irq->dstirq;
194} 189}
195 190
196static int __init mp_irq_mpc_intsrc_cmp(struct mp_config_intsrc *mp_irq, 191static int __init mp_irq_mpc_intsrc_cmp(struct mpc_intsrc *mp_irq,
197 struct mpc_intsrc *m) 192 struct mpc_intsrc *m)
198{ 193{
199 if (mp_irq->mp_dstapic != m->dstapic) 194 if (mp_irq->dstapic != m->dstapic)
200 return 1; 195 return 1;
201 if (mp_irq->mp_type != m->type) 196 if (mp_irq->type != m->type)
202 return 2; 197 return 2;
203 if (mp_irq->mp_irqtype != m->irqtype) 198 if (mp_irq->irqtype != m->irqtype)
204 return 3; 199 return 3;
205 if (mp_irq->mp_irqflag != m->irqflag) 200 if (mp_irq->irqflag != m->irqflag)
206 return 4; 201 return 4;
207 if (mp_irq->mp_srcbus != m->srcbus) 202 if (mp_irq->srcbus != m->srcbus)
208 return 5; 203 return 5;
209 if (mp_irq->mp_srcbusirq != m->srcbusirq) 204 if (mp_irq->srcbusirq != m->srcbusirq)
210 return 6; 205 return 6;
211 if (mp_irq->mp_dstirq != m->dstirq) 206 if (mp_irq->dstirq != m->dstirq)
212 return 7; 207 return 7;
213 208
214 return 0; 209 return 0;
@@ -292,16 +287,7 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
292 return 0; 287 return 0;
293 288
294#ifdef CONFIG_X86_32 289#ifdef CONFIG_X86_32
295 /* 290 generic_mps_oem_check(mpc, oem, str);
296 * need to make sure summit and es7000's mps_oem_check is safe to be
297 * called early via genericarch 's mps_oem_check
298 */
299 if (early) {
300#ifdef CONFIG_X86_NUMAQ
301 numaq_mps_oem_check(mpc, oem, str);
302#endif
303 } else
304 mps_oem_check(mpc, oem, str);
305#endif 291#endif
306 /* save the local APIC address, it might be non-default */ 292 /* save the local APIC address, it might be non-default */
307 if (!acpi_lapic) 293 if (!acpi_lapic)
@@ -386,13 +372,13 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
386 (*x86_quirks->mpc_record)++; 372 (*x86_quirks->mpc_record)++;
387 } 373 }
388 374
389#ifdef CONFIG_X86_GENERICARCH 375#ifdef CONFIG_X86_BIGSMP
390 generic_bigsmp_probe(); 376 generic_bigsmp_probe();
391#endif 377#endif
392 378
393#ifdef CONFIG_X86_32 379 if (apic->setup_apic_routing)
394 setup_apic_routing(); 380 apic->setup_apic_routing();
395#endif 381
396 if (!num_processors) 382 if (!num_processors)
397 printk(KERN_ERR "MPTABLE: no processors registered!\n"); 383 printk(KERN_ERR "MPTABLE: no processors registered!\n");
398 return num_processors; 384 return num_processors;
@@ -417,7 +403,7 @@ static void __init construct_default_ioirq_mptable(int mpc_default_type)
417 intsrc.type = MP_INTSRC; 403 intsrc.type = MP_INTSRC;
418 intsrc.irqflag = 0; /* conforming */ 404 intsrc.irqflag = 0; /* conforming */
419 intsrc.srcbus = 0; 405 intsrc.srcbus = 0;
420 intsrc.dstapic = mp_ioapics[0].mp_apicid; 406 intsrc.dstapic = mp_ioapics[0].apicid;
421 407
422 intsrc.irqtype = mp_INT; 408 intsrc.irqtype = mp_INT;
423 409
@@ -570,14 +556,27 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
570 } 556 }
571} 557}
572 558
573static struct intel_mp_floating *mpf_found; 559static struct mpf_intel *mpf_found;
560
561static unsigned long __init get_mpc_size(unsigned long physptr)
562{
563 struct mpc_table *mpc;
564 unsigned long size;
565
566 mpc = early_ioremap(physptr, PAGE_SIZE);
567 size = mpc->length;
568 early_iounmap(mpc, PAGE_SIZE);
569 apic_printk(APIC_VERBOSE, " mpc: %lx-%lx\n", physptr, physptr + size);
570
571 return size;
572}
574 573
575/* 574/*
576 * Scan the memory blocks for an SMP configuration block. 575 * Scan the memory blocks for an SMP configuration block.
577 */ 576 */
578static void __init __get_smp_config(unsigned int early) 577static void __init __get_smp_config(unsigned int early)
579{ 578{
580 struct intel_mp_floating *mpf = mpf_found; 579 struct mpf_intel *mpf = mpf_found;
581 580
582 if (!mpf) 581 if (!mpf)
583 return; 582 return;
@@ -598,9 +597,9 @@ static void __init __get_smp_config(unsigned int early)
598 } 597 }
599 598
600 printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n", 599 printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n",
601 mpf->mpf_specification); 600 mpf->specification);
602#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32) 601#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32)
603 if (mpf->mpf_feature2 & (1 << 7)) { 602 if (mpf->feature2 & (1 << 7)) {
604 printk(KERN_INFO " IMCR and PIC compatibility mode.\n"); 603 printk(KERN_INFO " IMCR and PIC compatibility mode.\n");
605 pic_mode = 1; 604 pic_mode = 1;
606 } else { 605 } else {
@@ -611,7 +610,7 @@ static void __init __get_smp_config(unsigned int early)
611 /* 610 /*
612 * Now see if we need to read further. 611 * Now see if we need to read further.
613 */ 612 */
614 if (mpf->mpf_feature1 != 0) { 613 if (mpf->feature1 != 0) {
615 if (early) { 614 if (early) {
616 /* 615 /*
617 * local APIC has default address 616 * local APIC has default address
@@ -621,16 +620,20 @@ static void __init __get_smp_config(unsigned int early)
621 } 620 }
622 621
623 printk(KERN_INFO "Default MP configuration #%d\n", 622 printk(KERN_INFO "Default MP configuration #%d\n",
624 mpf->mpf_feature1); 623 mpf->feature1);
625 construct_default_ISA_mptable(mpf->mpf_feature1); 624 construct_default_ISA_mptable(mpf->feature1);
626 625
627 } else if (mpf->mpf_physptr) { 626 } else if (mpf->physptr) {
627 struct mpc_table *mpc;
628 unsigned long size;
628 629
630 size = get_mpc_size(mpf->physptr);
631 mpc = early_ioremap(mpf->physptr, size);
629 /* 632 /*
630 * Read the physical hardware table. Anything here will 633 * Read the physical hardware table. Anything here will
631 * override the defaults. 634 * override the defaults.
632 */ 635 */
633 if (!smp_read_mpc(phys_to_virt(mpf->mpf_physptr), early)) { 636 if (!smp_read_mpc(mpc, early)) {
634#ifdef CONFIG_X86_LOCAL_APIC 637#ifdef CONFIG_X86_LOCAL_APIC
635 smp_found_config = 0; 638 smp_found_config = 0;
636#endif 639#endif
@@ -638,8 +641,10 @@ static void __init __get_smp_config(unsigned int early)
638 "BIOS bug, MP table errors detected!...\n"); 641 "BIOS bug, MP table errors detected!...\n");
639 printk(KERN_ERR "... disabling SMP support. " 642 printk(KERN_ERR "... disabling SMP support. "
640 "(tell your hw vendor)\n"); 643 "(tell your hw vendor)\n");
644 early_iounmap(mpc, size);
641 return; 645 return;
642 } 646 }
647 early_iounmap(mpc, size);
643 648
644 if (early) 649 if (early)
645 return; 650 return;
@@ -688,33 +693,33 @@ static int __init smp_scan_config(unsigned long base, unsigned long length,
688 unsigned reserve) 693 unsigned reserve)
689{ 694{
690 unsigned int *bp = phys_to_virt(base); 695 unsigned int *bp = phys_to_virt(base);
691 struct intel_mp_floating *mpf; 696 struct mpf_intel *mpf;
692 697
693 apic_printk(APIC_VERBOSE, "Scan SMP from %p for %ld bytes.\n", 698 apic_printk(APIC_VERBOSE, "Scan SMP from %p for %ld bytes.\n",
694 bp, length); 699 bp, length);
695 BUILD_BUG_ON(sizeof(*mpf) != 16); 700 BUILD_BUG_ON(sizeof(*mpf) != 16);
696 701
697 while (length > 0) { 702 while (length > 0) {
698 mpf = (struct intel_mp_floating *)bp; 703 mpf = (struct mpf_intel *)bp;
699 if ((*bp == SMP_MAGIC_IDENT) && 704 if ((*bp == SMP_MAGIC_IDENT) &&
700 (mpf->mpf_length == 1) && 705 (mpf->length == 1) &&
701 !mpf_checksum((unsigned char *)bp, 16) && 706 !mpf_checksum((unsigned char *)bp, 16) &&
702 ((mpf->mpf_specification == 1) 707 ((mpf->specification == 1)
703 || (mpf->mpf_specification == 4))) { 708 || (mpf->specification == 4))) {
704#ifdef CONFIG_X86_LOCAL_APIC 709#ifdef CONFIG_X86_LOCAL_APIC
705 smp_found_config = 1; 710 smp_found_config = 1;
706#endif 711#endif
707 mpf_found = mpf; 712 mpf_found = mpf;
708 713
709 printk(KERN_INFO "found SMP MP-table at [%p] %08lx\n", 714 printk(KERN_INFO "found SMP MP-table at [%p] %llx\n",
710 mpf, virt_to_phys(mpf)); 715 mpf, (u64)virt_to_phys(mpf));
711 716
712 if (!reserve) 717 if (!reserve)
713 return 1; 718 return 1;
714 reserve_bootmem_generic(virt_to_phys(mpf), PAGE_SIZE, 719 reserve_bootmem_generic(virt_to_phys(mpf), sizeof(*mpf),
715 BOOTMEM_DEFAULT); 720 BOOTMEM_DEFAULT);
716 if (mpf->mpf_physptr) { 721 if (mpf->physptr) {
717 unsigned long size = PAGE_SIZE; 722 unsigned long size = get_mpc_size(mpf->physptr);
718#ifdef CONFIG_X86_32 723#ifdef CONFIG_X86_32
719 /* 724 /*
720 * We cannot access to MPC table to compute 725 * We cannot access to MPC table to compute
@@ -722,15 +727,24 @@ static int __init smp_scan_config(unsigned long base, unsigned long length,
722 * the bottom is mapped now. 727 * the bottom is mapped now.
723 * PC-9800's MPC table places on the very last 728 * PC-9800's MPC table places on the very last
724 * of physical memory; so that simply reserving 729 * of physical memory; so that simply reserving
725 * PAGE_SIZE from mpg->mpf_physptr yields BUG() 730 * PAGE_SIZE from mpf->physptr yields BUG()
726 * in reserve_bootmem. 731 * in reserve_bootmem.
732 * also need to make sure physptr is below than
733 * max_low_pfn
734 * we don't need reserve the area above max_low_pfn
727 */ 735 */
728 unsigned long end = max_low_pfn * PAGE_SIZE; 736 unsigned long end = max_low_pfn * PAGE_SIZE;
729 if (mpf->mpf_physptr + size > end) 737
730 size = end - mpf->mpf_physptr; 738 if (mpf->physptr < end) {
731#endif 739 if (mpf->physptr + size > end)
732 reserve_bootmem_generic(mpf->mpf_physptr, size, 740 size = end - mpf->physptr;
741 reserve_bootmem_generic(mpf->physptr, size,
742 BOOTMEM_DEFAULT);
743 }
744#else
745 reserve_bootmem_generic(mpf->physptr, size,
733 BOOTMEM_DEFAULT); 746 BOOTMEM_DEFAULT);
747#endif
734 } 748 }
735 749
736 return 1; 750 return 1;
@@ -809,15 +823,15 @@ static int __init get_MP_intsrc_index(struct mpc_intsrc *m)
809 /* not legacy */ 823 /* not legacy */
810 824
811 for (i = 0; i < mp_irq_entries; i++) { 825 for (i = 0; i < mp_irq_entries; i++) {
812 if (mp_irqs[i].mp_irqtype != mp_INT) 826 if (mp_irqs[i].irqtype != mp_INT)
813 continue; 827 continue;
814 828
815 if (mp_irqs[i].mp_irqflag != 0x0f) 829 if (mp_irqs[i].irqflag != 0x0f)
816 continue; 830 continue;
817 831
818 if (mp_irqs[i].mp_srcbus != m->srcbus) 832 if (mp_irqs[i].srcbus != m->srcbus)
819 continue; 833 continue;
820 if (mp_irqs[i].mp_srcbusirq != m->srcbusirq) 834 if (mp_irqs[i].srcbusirq != m->srcbusirq)
821 continue; 835 continue;
822 if (irq_used[i]) { 836 if (irq_used[i]) {
823 /* already claimed */ 837 /* already claimed */
@@ -922,10 +936,10 @@ static int __init replace_intsrc_all(struct mpc_table *mpc,
922 if (irq_used[i]) 936 if (irq_used[i])
923 continue; 937 continue;
924 938
925 if (mp_irqs[i].mp_irqtype != mp_INT) 939 if (mp_irqs[i].irqtype != mp_INT)
926 continue; 940 continue;
927 941
928 if (mp_irqs[i].mp_irqflag != 0x0f) 942 if (mp_irqs[i].irqflag != 0x0f)
929 continue; 943 continue;
930 944
931 if (nr_m_spare > 0) { 945 if (nr_m_spare > 0) {
@@ -1001,7 +1015,7 @@ static int __init update_mp_table(void)
1001{ 1015{
1002 char str[16]; 1016 char str[16];
1003 char oem[10]; 1017 char oem[10];
1004 struct intel_mp_floating *mpf; 1018 struct mpf_intel *mpf;
1005 struct mpc_table *mpc, *mpc_new; 1019 struct mpc_table *mpc, *mpc_new;
1006 1020
1007 if (!enable_update_mptable) 1021 if (!enable_update_mptable)
@@ -1014,19 +1028,19 @@ static int __init update_mp_table(void)
1014 /* 1028 /*
1015 * Now see if we need to go further. 1029 * Now see if we need to go further.
1016 */ 1030 */
1017 if (mpf->mpf_feature1 != 0) 1031 if (mpf->feature1 != 0)
1018 return 0; 1032 return 0;
1019 1033
1020 if (!mpf->mpf_physptr) 1034 if (!mpf->physptr)
1021 return 0; 1035 return 0;
1022 1036
1023 mpc = phys_to_virt(mpf->mpf_physptr); 1037 mpc = phys_to_virt(mpf->physptr);
1024 1038
1025 if (!smp_check_mpc(mpc, oem, str)) 1039 if (!smp_check_mpc(mpc, oem, str))
1026 return 0; 1040 return 0;
1027 1041
1028 printk(KERN_INFO "mpf: %lx\n", virt_to_phys(mpf)); 1042 printk(KERN_INFO "mpf: %llx\n", (u64)virt_to_phys(mpf));
1029 printk(KERN_INFO "mpf_physptr: %x\n", mpf->mpf_physptr); 1043 printk(KERN_INFO "physptr: %x\n", mpf->physptr);
1030 1044
1031 if (mpc_new_phys && mpc->length > mpc_new_length) { 1045 if (mpc_new_phys && mpc->length > mpc_new_length) {
1032 mpc_new_phys = 0; 1046 mpc_new_phys = 0;
@@ -1047,23 +1061,23 @@ static int __init update_mp_table(void)
1047 } 1061 }
1048 printk(KERN_INFO "use in-positon replacing\n"); 1062 printk(KERN_INFO "use in-positon replacing\n");
1049 } else { 1063 } else {
1050 mpf->mpf_physptr = mpc_new_phys; 1064 mpf->physptr = mpc_new_phys;
1051 mpc_new = phys_to_virt(mpc_new_phys); 1065 mpc_new = phys_to_virt(mpc_new_phys);
1052 memcpy(mpc_new, mpc, mpc->length); 1066 memcpy(mpc_new, mpc, mpc->length);
1053 mpc = mpc_new; 1067 mpc = mpc_new;
1054 /* check if we can modify that */ 1068 /* check if we can modify that */
1055 if (mpc_new_phys - mpf->mpf_physptr) { 1069 if (mpc_new_phys - mpf->physptr) {
1056 struct intel_mp_floating *mpf_new; 1070 struct mpf_intel *mpf_new;
1057 /* steal 16 bytes from [0, 1k) */ 1071 /* steal 16 bytes from [0, 1k) */
1058 printk(KERN_INFO "mpf new: %x\n", 0x400 - 16); 1072 printk(KERN_INFO "mpf new: %x\n", 0x400 - 16);
1059 mpf_new = phys_to_virt(0x400 - 16); 1073 mpf_new = phys_to_virt(0x400 - 16);
1060 memcpy(mpf_new, mpf, 16); 1074 memcpy(mpf_new, mpf, 16);
1061 mpf = mpf_new; 1075 mpf = mpf_new;
1062 mpf->mpf_physptr = mpc_new_phys; 1076 mpf->physptr = mpc_new_phys;
1063 } 1077 }
1064 mpf->mpf_checksum = 0; 1078 mpf->checksum = 0;
1065 mpf->mpf_checksum -= mpf_checksum((unsigned char *)mpf, 16); 1079 mpf->checksum -= mpf_checksum((unsigned char *)mpf, 16);
1066 printk(KERN_INFO "mpf_physptr new: %x\n", mpf->mpf_physptr); 1080 printk(KERN_INFO "physptr new: %x\n", mpf->physptr);
1067 } 1081 }
1068 1082
1069 /* 1083 /*
diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
index 726266695b2c..3cf3413ec626 100644
--- a/arch/x86/kernel/msr.c
+++ b/arch/x86/kernel/msr.c
@@ -35,10 +35,10 @@
35#include <linux/device.h> 35#include <linux/device.h>
36#include <linux/cpu.h> 36#include <linux/cpu.h>
37#include <linux/notifier.h> 37#include <linux/notifier.h>
38#include <linux/uaccess.h>
38 39
39#include <asm/processor.h> 40#include <asm/processor.h>
40#include <asm/msr.h> 41#include <asm/msr.h>
41#include <asm/uaccess.h>
42#include <asm/system.h> 42#include <asm/system.h>
43 43
44static struct class *msr_class; 44static struct class *msr_class;
diff --git a/arch/x86/kernel/numaq_32.c b/arch/x86/kernel/numaq_32.c
deleted file mode 100644
index f2191d4f2717..000000000000
--- a/arch/x86/kernel/numaq_32.c
+++ /dev/null
@@ -1,293 +0,0 @@
1/*
2 * Written by: Patricia Gaughen, IBM Corporation
3 *
4 * Copyright (C) 2002, IBM Corp.
5 *
6 * All rights reserved.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
16 * NON INFRINGEMENT. See the GNU General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 *
23 * Send feedback to <gone@us.ibm.com>
24 */
25
26#include <linux/mm.h>
27#include <linux/bootmem.h>
28#include <linux/mmzone.h>
29#include <linux/module.h>
30#include <linux/nodemask.h>
31#include <asm/numaq.h>
32#include <asm/topology.h>
33#include <asm/processor.h>
34#include <asm/genapic.h>
35#include <asm/e820.h>
36#include <asm/setup.h>
37
38#define MB_TO_PAGES(addr) ((addr) << (20 - PAGE_SHIFT))
39
40/*
41 * Function: smp_dump_qct()
42 *
43 * Description: gets memory layout from the quad config table. This
44 * function also updates node_online_map with the nodes (quads) present.
45 */
46static void __init smp_dump_qct(void)
47{
48 int node;
49 struct eachquadmem *eq;
50 struct sys_cfg_data *scd =
51 (struct sys_cfg_data *)__va(SYS_CFG_DATA_PRIV_ADDR);
52
53 nodes_clear(node_online_map);
54 for_each_node(node) {
55 if (scd->quads_present31_0 & (1 << node)) {
56 node_set_online(node);
57 eq = &scd->eq[node];
58 /* Convert to pages */
59 node_start_pfn[node] = MB_TO_PAGES(
60 eq->hi_shrd_mem_start - eq->priv_mem_size);
61 node_end_pfn[node] = MB_TO_PAGES(
62 eq->hi_shrd_mem_start + eq->hi_shrd_mem_size);
63
64 e820_register_active_regions(node, node_start_pfn[node],
65 node_end_pfn[node]);
66 memory_present(node,
67 node_start_pfn[node], node_end_pfn[node]);
68 node_remap_size[node] = node_memmap_size_bytes(node,
69 node_start_pfn[node],
70 node_end_pfn[node]);
71 }
72 }
73}
74
75
76void __cpuinit numaq_tsc_disable(void)
77{
78 if (!found_numaq)
79 return;
80
81 if (num_online_nodes() > 1) {
82 printk(KERN_DEBUG "NUMAQ: disabling TSC\n");
83 setup_clear_cpu_cap(X86_FEATURE_TSC);
84 }
85}
86
87static int __init numaq_pre_time_init(void)
88{
89 numaq_tsc_disable();
90 return 0;
91}
92
93int found_numaq;
94/*
95 * Have to match translation table entries to main table entries by counter
96 * hence the mpc_record variable .... can't see a less disgusting way of
97 * doing this ....
98 */
99struct mpc_config_translation {
100 unsigned char mpc_type;
101 unsigned char trans_len;
102 unsigned char trans_type;
103 unsigned char trans_quad;
104 unsigned char trans_global;
105 unsigned char trans_local;
106 unsigned short trans_reserved;
107};
108
109/* x86_quirks member */
110static int mpc_record;
111static struct mpc_config_translation *translation_table[MAX_MPC_ENTRY]
112 __cpuinitdata;
113
114static inline int generate_logical_apicid(int quad, int phys_apicid)
115{
116 return (quad << 4) + (phys_apicid ? phys_apicid << 1 : 1);
117}
118
119/* x86_quirks member */
120static int mpc_apic_id(struct mpc_cpu *m)
121{
122 int quad = translation_table[mpc_record]->trans_quad;
123 int logical_apicid = generate_logical_apicid(quad, m->apicid);
124
125 printk(KERN_DEBUG "Processor #%d %u:%u APIC version %d (quad %d, apic %d)\n",
126 m->apicid, (m->cpufeature & CPU_FAMILY_MASK) >> 8,
127 (m->cpufeature & CPU_MODEL_MASK) >> 4,
128 m->apicver, quad, logical_apicid);
129 return logical_apicid;
130}
131
132int mp_bus_id_to_node[MAX_MP_BUSSES];
133
134int mp_bus_id_to_local[MAX_MP_BUSSES];
135
136/* x86_quirks member */
137static void mpc_oem_bus_info(struct mpc_bus *m, char *name)
138{
139 int quad = translation_table[mpc_record]->trans_quad;
140 int local = translation_table[mpc_record]->trans_local;
141
142 mp_bus_id_to_node[m->busid] = quad;
143 mp_bus_id_to_local[m->busid] = local;
144 printk(KERN_INFO "Bus #%d is %s (node %d)\n",
145 m->busid, name, quad);
146}
147
148int quad_local_to_mp_bus_id [NR_CPUS/4][4];
149
150/* x86_quirks member */
151static void mpc_oem_pci_bus(struct mpc_bus *m)
152{
153 int quad = translation_table[mpc_record]->trans_quad;
154 int local = translation_table[mpc_record]->trans_local;
155
156 quad_local_to_mp_bus_id[quad][local] = m->busid;
157}
158
159static void __init MP_translation_info(struct mpc_config_translation *m)
160{
161 printk(KERN_INFO
162 "Translation: record %d, type %d, quad %d, global %d, local %d\n",
163 mpc_record, m->trans_type, m->trans_quad, m->trans_global,
164 m->trans_local);
165
166 if (mpc_record >= MAX_MPC_ENTRY)
167 printk(KERN_ERR "MAX_MPC_ENTRY exceeded!\n");
168 else
169 translation_table[mpc_record] = m; /* stash this for later */
170 if (m->trans_quad < MAX_NUMNODES && !node_online(m->trans_quad))
171 node_set_online(m->trans_quad);
172}
173
174static int __init mpf_checksum(unsigned char *mp, int len)
175{
176 int sum = 0;
177
178 while (len--)
179 sum += *mp++;
180
181 return sum & 0xFF;
182}
183
184/*
185 * Read/parse the MPC oem tables
186 */
187
188static void __init smp_read_mpc_oem(struct mpc_oemtable *oemtable,
189 unsigned short oemsize)
190{
191 int count = sizeof(*oemtable); /* the header size */
192 unsigned char *oemptr = ((unsigned char *)oemtable) + count;
193
194 mpc_record = 0;
195 printk(KERN_INFO "Found an OEM MPC table at %8p - parsing it ... \n",
196 oemtable);
197 if (memcmp(oemtable->signature, MPC_OEM_SIGNATURE, 4)) {
198 printk(KERN_WARNING
199 "SMP mpc oemtable: bad signature [%c%c%c%c]!\n",
200 oemtable->signature[0], oemtable->signature[1],
201 oemtable->signature[2], oemtable->signature[3]);
202 return;
203 }
204 if (mpf_checksum((unsigned char *)oemtable, oemtable->length)) {
205 printk(KERN_WARNING "SMP oem mptable: checksum error!\n");
206 return;
207 }
208 while (count < oemtable->length) {
209 switch (*oemptr) {
210 case MP_TRANSLATION:
211 {
212 struct mpc_config_translation *m =
213 (struct mpc_config_translation *)oemptr;
214 MP_translation_info(m);
215 oemptr += sizeof(*m);
216 count += sizeof(*m);
217 ++mpc_record;
218 break;
219 }
220 default:
221 {
222 printk(KERN_WARNING
223 "Unrecognised OEM table entry type! - %d\n",
224 (int)*oemptr);
225 return;
226 }
227 }
228 }
229}
230
231static int __init numaq_setup_ioapic_ids(void)
232{
233 /* so can skip it */
234 return 1;
235}
236
237static int __init numaq_update_genapic(void)
238{
239 genapic->wakeup_cpu = wakeup_secondary_cpu_via_nmi;
240
241 return 0;
242}
243
244static struct x86_quirks numaq_x86_quirks __initdata = {
245 .arch_pre_time_init = numaq_pre_time_init,
246 .arch_time_init = NULL,
247 .arch_pre_intr_init = NULL,
248 .arch_memory_setup = NULL,
249 .arch_intr_init = NULL,
250 .arch_trap_init = NULL,
251 .mach_get_smp_config = NULL,
252 .mach_find_smp_config = NULL,
253 .mpc_record = &mpc_record,
254 .mpc_apic_id = mpc_apic_id,
255 .mpc_oem_bus_info = mpc_oem_bus_info,
256 .mpc_oem_pci_bus = mpc_oem_pci_bus,
257 .smp_read_mpc_oem = smp_read_mpc_oem,
258 .setup_ioapic_ids = numaq_setup_ioapic_ids,
259 .update_genapic = numaq_update_genapic,
260};
261
262void numaq_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
263{
264 if (strncmp(oem, "IBM NUMA", 8))
265 printk("Warning! Not a NUMA-Q system!\n");
266 else
267 found_numaq = 1;
268}
269
270static __init void early_check_numaq(void)
271{
272 /*
273 * Find possible boot-time SMP configuration:
274 */
275 early_find_smp_config();
276 /*
277 * get boot-time SMP configuration:
278 */
279 if (smp_found_config)
280 early_get_smp_config();
281
282 if (found_numaq)
283 x86_quirks = &numaq_x86_quirks;
284}
285
286int __init get_memcfg_numaq(void)
287{
288 early_check_numaq();
289 if (!found_numaq)
290 return 0;
291 smp_dump_qct();
292 return 1;
293}
diff --git a/arch/x86/kernel/olpc.c b/arch/x86/kernel/olpc.c
index 7a13fac63a1f..4006c522adc7 100644
--- a/arch/x86/kernel/olpc.c
+++ b/arch/x86/kernel/olpc.c
@@ -203,7 +203,7 @@ static void __init platform_detect(void)
203static void __init platform_detect(void) 203static void __init platform_detect(void)
204{ 204{
205 /* stopgap until OFW support is added to the kernel */ 205 /* stopgap until OFW support is added to the kernel */
206 olpc_platform_info.boardrev = 0xc2; 206 olpc_platform_info.boardrev = olpc_board(0xc2);
207} 207}
208#endif 208#endif
209 209
diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
index 95777b0faa73..3a7c5a44082e 100644
--- a/arch/x86/kernel/paravirt-spinlocks.c
+++ b/arch/x86/kernel/paravirt-spinlocks.c
@@ -26,13 +26,3 @@ struct pv_lock_ops pv_lock_ops = {
26}; 26};
27EXPORT_SYMBOL(pv_lock_ops); 27EXPORT_SYMBOL(pv_lock_ops);
28 28
29void __init paravirt_use_bytelocks(void)
30{
31#ifdef CONFIG_SMP
32 pv_lock_ops.spin_is_locked = __byte_spin_is_locked;
33 pv_lock_ops.spin_is_contended = __byte_spin_is_contended;
34 pv_lock_ops.spin_lock = __byte_spin_lock;
35 pv_lock_ops.spin_trylock = __byte_spin_trylock;
36 pv_lock_ops.spin_unlock = __byte_spin_unlock;
37#endif
38}
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index e4c8fb608873..63dd358d8ee1 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -28,7 +28,6 @@
28#include <asm/paravirt.h> 28#include <asm/paravirt.h>
29#include <asm/desc.h> 29#include <asm/desc.h>
30#include <asm/setup.h> 30#include <asm/setup.h>
31#include <asm/arch_hooks.h>
32#include <asm/pgtable.h> 31#include <asm/pgtable.h>
33#include <asm/time.h> 32#include <asm/time.h>
34#include <asm/pgalloc.h> 33#include <asm/pgalloc.h>
@@ -44,6 +43,17 @@ void _paravirt_nop(void)
44{ 43{
45} 44}
46 45
46/* identity function, which can be inlined */
47u32 _paravirt_ident_32(u32 x)
48{
49 return x;
50}
51
52u64 _paravirt_ident_64(u64 x)
53{
54 return x;
55}
56
47static void __init default_banner(void) 57static void __init default_banner(void)
48{ 58{
49 printk(KERN_INFO "Booting paravirtualized kernel on %s\n", 59 printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
@@ -138,9 +148,16 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
138 if (opfunc == NULL) 148 if (opfunc == NULL)
139 /* If there's no function, patch it with a ud2a (BUG) */ 149 /* If there's no function, patch it with a ud2a (BUG) */
140 ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a)); 150 ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a));
141 else if (opfunc == paravirt_nop) 151 else if (opfunc == _paravirt_nop)
142 /* If the operation is a nop, then nop the callsite */ 152 /* If the operation is a nop, then nop the callsite */
143 ret = paravirt_patch_nop(); 153 ret = paravirt_patch_nop();
154
155 /* identity functions just return their single argument */
156 else if (opfunc == _paravirt_ident_32)
157 ret = paravirt_patch_ident_32(insnbuf, len);
158 else if (opfunc == _paravirt_ident_64)
159 ret = paravirt_patch_ident_64(insnbuf, len);
160
144 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) || 161 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
145 type == PARAVIRT_PATCH(pv_cpu_ops.irq_enable_sysexit) || 162 type == PARAVIRT_PATCH(pv_cpu_ops.irq_enable_sysexit) ||
146 type == PARAVIRT_PATCH(pv_cpu_ops.usergs_sysret32) || 163 type == PARAVIRT_PATCH(pv_cpu_ops.usergs_sysret32) ||
@@ -268,6 +285,32 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
268 return __get_cpu_var(paravirt_lazy_mode); 285 return __get_cpu_var(paravirt_lazy_mode);
269} 286}
270 287
288void arch_flush_lazy_mmu_mode(void)
289{
290 preempt_disable();
291
292 if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) {
293 WARN_ON(preempt_count() == 1);
294 arch_leave_lazy_mmu_mode();
295 arch_enter_lazy_mmu_mode();
296 }
297
298 preempt_enable();
299}
300
301void arch_flush_lazy_cpu_mode(void)
302{
303 preempt_disable();
304
305 if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) {
306 WARN_ON(preempt_count() == 1);
307 arch_leave_lazy_cpu_mode();
308 arch_enter_lazy_cpu_mode();
309 }
310
311 preempt_enable();
312}
313
271struct pv_info pv_info = { 314struct pv_info pv_info = {
272 .name = "bare hardware", 315 .name = "bare hardware",
273 .paravirt_enabled = 0, 316 .paravirt_enabled = 0,
@@ -292,10 +335,10 @@ struct pv_time_ops pv_time_ops = {
292 335
293struct pv_irq_ops pv_irq_ops = { 336struct pv_irq_ops pv_irq_ops = {
294 .init_IRQ = native_init_IRQ, 337 .init_IRQ = native_init_IRQ,
295 .save_fl = native_save_fl, 338 .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
296 .restore_fl = native_restore_fl, 339 .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
297 .irq_disable = native_irq_disable, 340 .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
298 .irq_enable = native_irq_enable, 341 .irq_enable = __PV_IS_CALLEE_SAVE(native_irq_enable),
299 .safe_halt = native_safe_halt, 342 .safe_halt = native_safe_halt,
300 .halt = native_halt, 343 .halt = native_halt,
301#ifdef CONFIG_X86_64 344#ifdef CONFIG_X86_64
@@ -373,6 +416,14 @@ struct pv_apic_ops pv_apic_ops = {
373#endif 416#endif
374}; 417};
375 418
419#if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
420/* 32-bit pagetable entries */
421#define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_32)
422#else
423/* 64-bit pagetable entries */
424#define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_64)
425#endif
426
376struct pv_mmu_ops pv_mmu_ops = { 427struct pv_mmu_ops pv_mmu_ops = {
377#ifndef CONFIG_X86_64 428#ifndef CONFIG_X86_64
378 .pagetable_setup_start = native_pagetable_setup_start, 429 .pagetable_setup_start = native_pagetable_setup_start,
@@ -424,22 +475,23 @@ struct pv_mmu_ops pv_mmu_ops = {
424 .pmd_clear = native_pmd_clear, 475 .pmd_clear = native_pmd_clear,
425#endif 476#endif
426 .set_pud = native_set_pud, 477 .set_pud = native_set_pud,
427 .pmd_val = native_pmd_val, 478
428 .make_pmd = native_make_pmd, 479 .pmd_val = PTE_IDENT,
480 .make_pmd = PTE_IDENT,
429 481
430#if PAGETABLE_LEVELS == 4 482#if PAGETABLE_LEVELS == 4
431 .pud_val = native_pud_val, 483 .pud_val = PTE_IDENT,
432 .make_pud = native_make_pud, 484 .make_pud = PTE_IDENT,
485
433 .set_pgd = native_set_pgd, 486 .set_pgd = native_set_pgd,
434#endif 487#endif
435#endif /* PAGETABLE_LEVELS >= 3 */ 488#endif /* PAGETABLE_LEVELS >= 3 */
436 489
437 .pte_val = native_pte_val, 490 .pte_val = PTE_IDENT,
438 .pte_flags = native_pte_flags, 491 .pgd_val = PTE_IDENT,
439 .pgd_val = native_pgd_val,
440 492
441 .make_pte = native_make_pte, 493 .make_pte = PTE_IDENT,
442 .make_pgd = native_make_pgd, 494 .make_pgd = PTE_IDENT,
443 495
444 .dup_mmap = paravirt_nop, 496 .dup_mmap = paravirt_nop,
445 .exit_mmap = paravirt_nop, 497 .exit_mmap = paravirt_nop,
diff --git a/arch/x86/kernel/paravirt_patch_32.c b/arch/x86/kernel/paravirt_patch_32.c
index 9fe644f4861d..d9f32e6d6ab6 100644
--- a/arch/x86/kernel/paravirt_patch_32.c
+++ b/arch/x86/kernel/paravirt_patch_32.c
@@ -12,6 +12,18 @@ DEF_NATIVE(pv_mmu_ops, read_cr3, "mov %cr3, %eax");
12DEF_NATIVE(pv_cpu_ops, clts, "clts"); 12DEF_NATIVE(pv_cpu_ops, clts, "clts");
13DEF_NATIVE(pv_cpu_ops, read_tsc, "rdtsc"); 13DEF_NATIVE(pv_cpu_ops, read_tsc, "rdtsc");
14 14
15unsigned paravirt_patch_ident_32(void *insnbuf, unsigned len)
16{
17 /* arg in %eax, return in %eax */
18 return 0;
19}
20
21unsigned paravirt_patch_ident_64(void *insnbuf, unsigned len)
22{
23 /* arg in %edx:%eax, return in %edx:%eax */
24 return 0;
25}
26
15unsigned native_patch(u8 type, u16 clobbers, void *ibuf, 27unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
16 unsigned long addr, unsigned len) 28 unsigned long addr, unsigned len)
17{ 29{
diff --git a/arch/x86/kernel/paravirt_patch_64.c b/arch/x86/kernel/paravirt_patch_64.c
index 061d01df9ae6..3f08f34f93eb 100644
--- a/arch/x86/kernel/paravirt_patch_64.c
+++ b/arch/x86/kernel/paravirt_patch_64.c
@@ -19,6 +19,21 @@ DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq");
19DEF_NATIVE(pv_cpu_ops, usergs_sysret32, "swapgs; sysretl"); 19DEF_NATIVE(pv_cpu_ops, usergs_sysret32, "swapgs; sysretl");
20DEF_NATIVE(pv_cpu_ops, swapgs, "swapgs"); 20DEF_NATIVE(pv_cpu_ops, swapgs, "swapgs");
21 21
22DEF_NATIVE(, mov32, "mov %edi, %eax");
23DEF_NATIVE(, mov64, "mov %rdi, %rax");
24
25unsigned paravirt_patch_ident_32(void *insnbuf, unsigned len)
26{
27 return paravirt_patch_insns(insnbuf, len,
28 start__mov32, end__mov32);
29}
30
31unsigned paravirt_patch_ident_64(void *insnbuf, unsigned len)
32{
33 return paravirt_patch_insns(insnbuf, len,
34 start__mov64, end__mov64);
35}
36
22unsigned native_patch(u8 type, u16 clobbers, void *ibuf, 37unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
23 unsigned long addr, unsigned len) 38 unsigned long addr, unsigned len)
24{ 39{
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c
index 00c2bcd41463..d5768b1af080 100644
--- a/arch/x86/kernel/pci-gart_64.c
+++ b/arch/x86/kernel/pci-gart_64.c
@@ -5,7 +5,7 @@
5 * This allows to use PCI devices that only support 32bit addresses on systems 5 * This allows to use PCI devices that only support 32bit addresses on systems
6 * with more than 4GB. 6 * with more than 4GB.
7 * 7 *
8 * See Documentation/DMA-mapping.txt for the interface specification. 8 * See Documentation/PCI/PCI-DMA-mapping.txt for the interface specification.
9 * 9 *
10 * Copyright 2002 Andi Kleen, SuSE Labs. 10 * Copyright 2002 Andi Kleen, SuSE Labs.
11 * Subject to the GNU General Public License v2 only. 11 * Subject to the GNU General Public License v2 only.
diff --git a/arch/x86/kernel/probe_roms_32.c b/arch/x86/kernel/probe_roms_32.c
index 675a48c404a5..071e7fea42e5 100644
--- a/arch/x86/kernel/probe_roms_32.c
+++ b/arch/x86/kernel/probe_roms_32.c
@@ -18,7 +18,7 @@
18#include <asm/setup.h> 18#include <asm/setup.h>
19#include <asm/sections.h> 19#include <asm/sections.h>
20#include <asm/io.h> 20#include <asm/io.h>
21#include <setup_arch.h> 21#include <asm/setup_arch.h>
22 22
23static struct resource system_rom_resource = { 23static struct resource system_rom_resource = {
24 .name = "System ROM", 24 .name = "System ROM",
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index e68bb9e30864..6afa5232dbb7 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -1,8 +1,8 @@
1#include <linux/errno.h> 1#include <linux/errno.h>
2#include <linux/kernel.h> 2#include <linux/kernel.h>
3#include <linux/mm.h> 3#include <linux/mm.h>
4#include <asm/idle.h>
5#include <linux/smp.h> 4#include <linux/smp.h>
5#include <linux/prctl.h>
6#include <linux/slab.h> 6#include <linux/slab.h>
7#include <linux/sched.h> 7#include <linux/sched.h>
8#include <linux/module.h> 8#include <linux/module.h>
@@ -11,6 +11,9 @@
11#include <linux/ftrace.h> 11#include <linux/ftrace.h>
12#include <asm/system.h> 12#include <asm/system.h>
13#include <asm/apic.h> 13#include <asm/apic.h>
14#include <asm/idle.h>
15#include <asm/uaccess.h>
16#include <asm/i387.h>
14 17
15unsigned long idle_halt; 18unsigned long idle_halt;
16EXPORT_SYMBOL(idle_halt); 19EXPORT_SYMBOL(idle_halt);
@@ -56,6 +59,192 @@ void arch_task_cache_init(void)
56} 59}
57 60
58/* 61/*
62 * Free current thread data structures etc..
63 */
64void exit_thread(void)
65{
66 struct task_struct *me = current;
67 struct thread_struct *t = &me->thread;
68
69 if (me->thread.io_bitmap_ptr) {
70 struct tss_struct *tss = &per_cpu(init_tss, get_cpu());
71
72 kfree(t->io_bitmap_ptr);
73 t->io_bitmap_ptr = NULL;
74 clear_thread_flag(TIF_IO_BITMAP);
75 /*
76 * Careful, clear this in the TSS too:
77 */
78 memset(tss->io_bitmap, 0xff, t->io_bitmap_max);
79 t->io_bitmap_max = 0;
80 put_cpu();
81 }
82
83 ds_exit_thread(current);
84}
85
86void flush_thread(void)
87{
88 struct task_struct *tsk = current;
89
90#ifdef CONFIG_X86_64
91 if (test_tsk_thread_flag(tsk, TIF_ABI_PENDING)) {
92 clear_tsk_thread_flag(tsk, TIF_ABI_PENDING);
93 if (test_tsk_thread_flag(tsk, TIF_IA32)) {
94 clear_tsk_thread_flag(tsk, TIF_IA32);
95 } else {
96 set_tsk_thread_flag(tsk, TIF_IA32);
97 current_thread_info()->status |= TS_COMPAT;
98 }
99 }
100#endif
101
102 clear_tsk_thread_flag(tsk, TIF_DEBUG);
103
104 tsk->thread.debugreg0 = 0;
105 tsk->thread.debugreg1 = 0;
106 tsk->thread.debugreg2 = 0;
107 tsk->thread.debugreg3 = 0;
108 tsk->thread.debugreg6 = 0;
109 tsk->thread.debugreg7 = 0;
110 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
111 /*
112 * Forget coprocessor state..
113 */
114 tsk->fpu_counter = 0;
115 clear_fpu(tsk);
116 clear_used_math();
117}
118
119static void hard_disable_TSC(void)
120{
121 write_cr4(read_cr4() | X86_CR4_TSD);
122}
123
124void disable_TSC(void)
125{
126 preempt_disable();
127 if (!test_and_set_thread_flag(TIF_NOTSC))
128 /*
129 * Must flip the CPU state synchronously with
130 * TIF_NOTSC in the current running context.
131 */
132 hard_disable_TSC();
133 preempt_enable();
134}
135
136static void hard_enable_TSC(void)
137{
138 write_cr4(read_cr4() & ~X86_CR4_TSD);
139}
140
141static void enable_TSC(void)
142{
143 preempt_disable();
144 if (test_and_clear_thread_flag(TIF_NOTSC))
145 /*
146 * Must flip the CPU state synchronously with
147 * TIF_NOTSC in the current running context.
148 */
149 hard_enable_TSC();
150 preempt_enable();
151}
152
153int get_tsc_mode(unsigned long adr)
154{
155 unsigned int val;
156
157 if (test_thread_flag(TIF_NOTSC))
158 val = PR_TSC_SIGSEGV;
159 else
160 val = PR_TSC_ENABLE;
161
162 return put_user(val, (unsigned int __user *)adr);
163}
164
165int set_tsc_mode(unsigned int val)
166{
167 if (val == PR_TSC_SIGSEGV)
168 disable_TSC();
169 else if (val == PR_TSC_ENABLE)
170 enable_TSC();
171 else
172 return -EINVAL;
173
174 return 0;
175}
176
177void __switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
178 struct tss_struct *tss)
179{
180 struct thread_struct *prev, *next;
181
182 prev = &prev_p->thread;
183 next = &next_p->thread;
184
185 if (test_tsk_thread_flag(next_p, TIF_DS_AREA_MSR) ||
186 test_tsk_thread_flag(prev_p, TIF_DS_AREA_MSR))
187 ds_switch_to(prev_p, next_p);
188 else if (next->debugctlmsr != prev->debugctlmsr)
189 update_debugctlmsr(next->debugctlmsr);
190
191 if (test_tsk_thread_flag(next_p, TIF_DEBUG)) {
192 set_debugreg(next->debugreg0, 0);
193 set_debugreg(next->debugreg1, 1);
194 set_debugreg(next->debugreg2, 2);
195 set_debugreg(next->debugreg3, 3);
196 /* no 4 and 5 */
197 set_debugreg(next->debugreg6, 6);
198 set_debugreg(next->debugreg7, 7);
199 }
200
201 if (test_tsk_thread_flag(prev_p, TIF_NOTSC) ^
202 test_tsk_thread_flag(next_p, TIF_NOTSC)) {
203 /* prev and next are different */
204 if (test_tsk_thread_flag(next_p, TIF_NOTSC))
205 hard_disable_TSC();
206 else
207 hard_enable_TSC();
208 }
209
210 if (test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {
211 /*
212 * Copy the relevant range of the IO bitmap.
213 * Normally this is 128 bytes or less:
214 */
215 memcpy(tss->io_bitmap, next->io_bitmap_ptr,
216 max(prev->io_bitmap_max, next->io_bitmap_max));
217 } else if (test_tsk_thread_flag(prev_p, TIF_IO_BITMAP)) {
218 /*
219 * Clear any possible leftover bits:
220 */
221 memset(tss->io_bitmap, 0xff, prev->io_bitmap_max);
222 }
223}
224
225int sys_fork(struct pt_regs *regs)
226{
227 return do_fork(SIGCHLD, regs->sp, regs, 0, NULL, NULL);
228}
229
230/*
231 * This is trivial, and on the face of it looks like it
232 * could equally well be done in user mode.
233 *
234 * Not so, for quite unobvious reasons - register pressure.
235 * In user mode vfork() cannot have a stack frame, and if
236 * done by calling the "clone()" system call directly, you
237 * do not have enough call-clobbered registers to hold all
238 * the information you need.
239 */
240int sys_vfork(struct pt_regs *regs)
241{
242 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->sp, regs, 0,
243 NULL, NULL);
244}
245
246
247/*
59 * Idle related variables and functions 248 * Idle related variables and functions
60 */ 249 */
61unsigned long boot_option_idle_override = 0; 250unsigned long boot_option_idle_override = 0;
@@ -180,6 +369,9 @@ void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
180 369
181 trace_power_start(&it, POWER_CSTATE, (ax>>4)+1); 370 trace_power_start(&it, POWER_CSTATE, (ax>>4)+1);
182 if (!need_resched()) { 371 if (!need_resched()) {
372 if (cpu_has(&current_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
373 clflush((void *)&current_thread_info()->flags);
374
183 __monitor((void *)&current_thread_info()->flags, 0, 0); 375 __monitor((void *)&current_thread_info()->flags, 0, 0);
184 smp_mb(); 376 smp_mb();
185 if (!need_resched()) 377 if (!need_resched())
@@ -194,6 +386,9 @@ static void mwait_idle(void)
194 struct power_trace it; 386 struct power_trace it;
195 if (!need_resched()) { 387 if (!need_resched()) {
196 trace_power_start(&it, POWER_CSTATE, 1); 388 trace_power_start(&it, POWER_CSTATE, 1);
389 if (cpu_has(&current_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
390 clflush((void *)&current_thread_info()->flags);
391
197 __monitor((void *)&current_thread_info()->flags, 0, 0); 392 __monitor((void *)&current_thread_info()->flags, 0, 0);
198 smp_mb(); 393 smp_mb();
199 if (!need_resched()) 394 if (!need_resched())
@@ -344,7 +539,7 @@ static void c1e_idle(void)
344 539
345void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c) 540void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
346{ 541{
347#ifdef CONFIG_X86_SMP 542#ifdef CONFIG_SMP
348 if (pm_idle == poll_idle && smp_num_siblings > 1) { 543 if (pm_idle == poll_idle && smp_num_siblings > 1) {
349 printk(KERN_WARNING "WARNING: polling idle and HT enabled," 544 printk(KERN_WARNING "WARNING: polling idle and HT enabled,"
350 " performance may degrade.\n"); 545 " performance may degrade.\n");
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index a546f55c77b4..14014d766cad 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -11,6 +11,7 @@
11 11
12#include <stdarg.h> 12#include <stdarg.h>
13 13
14#include <linux/stackprotector.h>
14#include <linux/cpu.h> 15#include <linux/cpu.h>
15#include <linux/errno.h> 16#include <linux/errno.h>
16#include <linux/sched.h> 17#include <linux/sched.h>
@@ -66,9 +67,6 @@ asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
66DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task; 67DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task;
67EXPORT_PER_CPU_SYMBOL(current_task); 68EXPORT_PER_CPU_SYMBOL(current_task);
68 69
69DEFINE_PER_CPU(int, cpu_number);
70EXPORT_PER_CPU_SYMBOL(cpu_number);
71
72/* 70/*
73 * Return saved PC of a blocked thread. 71 * Return saved PC of a blocked thread.
74 */ 72 */
@@ -94,6 +92,15 @@ void cpu_idle(void)
94{ 92{
95 int cpu = smp_processor_id(); 93 int cpu = smp_processor_id();
96 94
95 /*
96 * If we're the non-boot CPU, nothing set the stack canary up
97 * for us. CPU0 already has it initialized but no harm in
98 * doing it again. This is a good place for updating it, as
99 * we wont ever return from this function (so the invalid
100 * canaries already on the stack wont ever trigger).
101 */
102 boot_init_stack_canary();
103
97 current_thread_info()->status |= TS_POLLING; 104 current_thread_info()->status |= TS_POLLING;
98 105
99 /* endless idle loop with no priority at all */ 106 /* endless idle loop with no priority at all */
@@ -104,14 +111,10 @@ void cpu_idle(void)
104 check_pgt_cache(); 111 check_pgt_cache();
105 rmb(); 112 rmb();
106 113
107 if (rcu_pending(cpu))
108 rcu_check_callbacks(cpu, 0);
109
110 if (cpu_is_offline(cpu)) 114 if (cpu_is_offline(cpu))
111 play_dead(); 115 play_dead();
112 116
113 local_irq_disable(); 117 local_irq_disable();
114 __get_cpu_var(irq_stat).idle_timestamp = jiffies;
115 /* Don't trace irqs off for idle */ 118 /* Don't trace irqs off for idle */
116 stop_critical_timings(); 119 stop_critical_timings();
117 pm_idle(); 120 pm_idle();
@@ -135,7 +138,7 @@ void __show_regs(struct pt_regs *regs, int all)
135 if (user_mode_vm(regs)) { 138 if (user_mode_vm(regs)) {
136 sp = regs->sp; 139 sp = regs->sp;
137 ss = regs->ss & 0xffff; 140 ss = regs->ss & 0xffff;
138 savesegment(gs, gs); 141 gs = get_user_gs(regs);
139 } else { 142 } else {
140 sp = (unsigned long) (&regs->sp); 143 sp = (unsigned long) (&regs->sp);
141 savesegment(ss, ss); 144 savesegment(ss, ss);
@@ -216,6 +219,7 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
216 regs.ds = __USER_DS; 219 regs.ds = __USER_DS;
217 regs.es = __USER_DS; 220 regs.es = __USER_DS;
218 regs.fs = __KERNEL_PERCPU; 221 regs.fs = __KERNEL_PERCPU;
222 regs.gs = __KERNEL_STACK_CANARY;
219 regs.orig_ax = -1; 223 regs.orig_ax = -1;
220 regs.ip = (unsigned long) kernel_thread_helper; 224 regs.ip = (unsigned long) kernel_thread_helper;
221 regs.cs = __KERNEL_CS | get_kernel_rpl(); 225 regs.cs = __KERNEL_CS | get_kernel_rpl();
@@ -226,55 +230,6 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
226} 230}
227EXPORT_SYMBOL(kernel_thread); 231EXPORT_SYMBOL(kernel_thread);
228 232
229/*
230 * Free current thread data structures etc..
231 */
232void exit_thread(void)
233{
234 /* The process may have allocated an io port bitmap... nuke it. */
235 if (unlikely(test_thread_flag(TIF_IO_BITMAP))) {
236 struct task_struct *tsk = current;
237 struct thread_struct *t = &tsk->thread;
238 int cpu = get_cpu();
239 struct tss_struct *tss = &per_cpu(init_tss, cpu);
240
241 kfree(t->io_bitmap_ptr);
242 t->io_bitmap_ptr = NULL;
243 clear_thread_flag(TIF_IO_BITMAP);
244 /*
245 * Careful, clear this in the TSS too:
246 */
247 memset(tss->io_bitmap, 0xff, tss->io_bitmap_max);
248 t->io_bitmap_max = 0;
249 tss->io_bitmap_owner = NULL;
250 tss->io_bitmap_max = 0;
251 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET;
252 put_cpu();
253 }
254
255 ds_exit_thread(current);
256}
257
258void flush_thread(void)
259{
260 struct task_struct *tsk = current;
261
262 tsk->thread.debugreg0 = 0;
263 tsk->thread.debugreg1 = 0;
264 tsk->thread.debugreg2 = 0;
265 tsk->thread.debugreg3 = 0;
266 tsk->thread.debugreg6 = 0;
267 tsk->thread.debugreg7 = 0;
268 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
269 clear_tsk_thread_flag(tsk, TIF_DEBUG);
270 /*
271 * Forget coprocessor state..
272 */
273 tsk->fpu_counter = 0;
274 clear_fpu(tsk);
275 clear_used_math();
276}
277
278void release_thread(struct task_struct *dead_task) 233void release_thread(struct task_struct *dead_task)
279{ 234{
280 BUG_ON(dead_task->mm); 235 BUG_ON(dead_task->mm);
@@ -308,7 +263,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
308 263
309 p->thread.ip = (unsigned long) ret_from_fork; 264 p->thread.ip = (unsigned long) ret_from_fork;
310 265
311 savesegment(gs, p->thread.gs); 266 task_user_gs(p) = get_user_gs(regs);
312 267
313 tsk = current; 268 tsk = current;
314 if (unlikely(test_tsk_thread_flag(tsk, TIF_IO_BITMAP))) { 269 if (unlikely(test_tsk_thread_flag(tsk, TIF_IO_BITMAP))) {
@@ -346,7 +301,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
346void 301void
347start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) 302start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
348{ 303{
349 __asm__("movl %0, %%gs" : : "r"(0)); 304 set_user_gs(regs, 0);
350 regs->fs = 0; 305 regs->fs = 0;
351 set_fs(USER_DS); 306 set_fs(USER_DS);
352 regs->ds = __USER_DS; 307 regs->ds = __USER_DS;
@@ -362,127 +317,6 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
362} 317}
363EXPORT_SYMBOL_GPL(start_thread); 318EXPORT_SYMBOL_GPL(start_thread);
364 319
365static void hard_disable_TSC(void)
366{
367 write_cr4(read_cr4() | X86_CR4_TSD);
368}
369
370void disable_TSC(void)
371{
372 preempt_disable();
373 if (!test_and_set_thread_flag(TIF_NOTSC))
374 /*
375 * Must flip the CPU state synchronously with
376 * TIF_NOTSC in the current running context.
377 */
378 hard_disable_TSC();
379 preempt_enable();
380}
381
382static void hard_enable_TSC(void)
383{
384 write_cr4(read_cr4() & ~X86_CR4_TSD);
385}
386
387static void enable_TSC(void)
388{
389 preempt_disable();
390 if (test_and_clear_thread_flag(TIF_NOTSC))
391 /*
392 * Must flip the CPU state synchronously with
393 * TIF_NOTSC in the current running context.
394 */
395 hard_enable_TSC();
396 preempt_enable();
397}
398
399int get_tsc_mode(unsigned long adr)
400{
401 unsigned int val;
402
403 if (test_thread_flag(TIF_NOTSC))
404 val = PR_TSC_SIGSEGV;
405 else
406 val = PR_TSC_ENABLE;
407
408 return put_user(val, (unsigned int __user *)adr);
409}
410
411int set_tsc_mode(unsigned int val)
412{
413 if (val == PR_TSC_SIGSEGV)
414 disable_TSC();
415 else if (val == PR_TSC_ENABLE)
416 enable_TSC();
417 else
418 return -EINVAL;
419
420 return 0;
421}
422
423static noinline void
424__switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
425 struct tss_struct *tss)
426{
427 struct thread_struct *prev, *next;
428
429 prev = &prev_p->thread;
430 next = &next_p->thread;
431
432 if (test_tsk_thread_flag(next_p, TIF_DS_AREA_MSR) ||
433 test_tsk_thread_flag(prev_p, TIF_DS_AREA_MSR))
434 ds_switch_to(prev_p, next_p);
435 else if (next->debugctlmsr != prev->debugctlmsr)
436 update_debugctlmsr(next->debugctlmsr);
437
438 if (test_tsk_thread_flag(next_p, TIF_DEBUG)) {
439 set_debugreg(next->debugreg0, 0);
440 set_debugreg(next->debugreg1, 1);
441 set_debugreg(next->debugreg2, 2);
442 set_debugreg(next->debugreg3, 3);
443 /* no 4 and 5 */
444 set_debugreg(next->debugreg6, 6);
445 set_debugreg(next->debugreg7, 7);
446 }
447
448 if (test_tsk_thread_flag(prev_p, TIF_NOTSC) ^
449 test_tsk_thread_flag(next_p, TIF_NOTSC)) {
450 /* prev and next are different */
451 if (test_tsk_thread_flag(next_p, TIF_NOTSC))
452 hard_disable_TSC();
453 else
454 hard_enable_TSC();
455 }
456
457 if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {
458 /*
459 * Disable the bitmap via an invalid offset. We still cache
460 * the previous bitmap owner and the IO bitmap contents:
461 */
462 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET;
463 return;
464 }
465
466 if (likely(next == tss->io_bitmap_owner)) {
467 /*
468 * Previous owner of the bitmap (hence the bitmap content)
469 * matches the next task, we dont have to do anything but
470 * to set a valid offset in the TSS:
471 */
472 tss->x86_tss.io_bitmap_base = IO_BITMAP_OFFSET;
473 return;
474 }
475 /*
476 * Lazy TSS's I/O bitmap copy. We set an invalid offset here
477 * and we let the task to get a GPF in case an I/O instruction
478 * is performed. The handler of the GPF will verify that the
479 * faulting task has a valid I/O bitmap and, it true, does the
480 * real copy and restart the instruction. This will save us
481 * redundant copies when the currently switched task does not
482 * perform any I/O during its timeslice.
483 */
484 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET_LAZY;
485}
486 320
487/* 321/*
488 * switch_to(x,yn) should switch tasks from x to y. 322 * switch_to(x,yn) should switch tasks from x to y.
@@ -543,7 +377,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
543 * used %fs or %gs (it does not today), or if the kernel is 377 * used %fs or %gs (it does not today), or if the kernel is
544 * running inside of a hypervisor layer. 378 * running inside of a hypervisor layer.
545 */ 379 */
546 savesegment(gs, prev->gs); 380 lazy_save_gs(prev->gs);
547 381
548 /* 382 /*
549 * Load the per-thread Thread-Local Storage descriptor. 383 * Load the per-thread Thread-Local Storage descriptor.
@@ -589,64 +423,44 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
589 * Restore %gs if needed (which is common) 423 * Restore %gs if needed (which is common)
590 */ 424 */
591 if (prev->gs | next->gs) 425 if (prev->gs | next->gs)
592 loadsegment(gs, next->gs); 426 lazy_load_gs(next->gs);
593 427
594 x86_write_percpu(current_task, next_p); 428 percpu_write(current_task, next_p);
595 429
596 return prev_p; 430 return prev_p;
597} 431}
598 432
599asmlinkage int sys_fork(struct pt_regs regs) 433int sys_clone(struct pt_regs *regs)
600{
601 return do_fork(SIGCHLD, regs.sp, &regs, 0, NULL, NULL);
602}
603
604asmlinkage int sys_clone(struct pt_regs regs)
605{ 434{
606 unsigned long clone_flags; 435 unsigned long clone_flags;
607 unsigned long newsp; 436 unsigned long newsp;
608 int __user *parent_tidptr, *child_tidptr; 437 int __user *parent_tidptr, *child_tidptr;
609 438
610 clone_flags = regs.bx; 439 clone_flags = regs->bx;
611 newsp = regs.cx; 440 newsp = regs->cx;
612 parent_tidptr = (int __user *)regs.dx; 441 parent_tidptr = (int __user *)regs->dx;
613 child_tidptr = (int __user *)regs.di; 442 child_tidptr = (int __user *)regs->di;
614 if (!newsp) 443 if (!newsp)
615 newsp = regs.sp; 444 newsp = regs->sp;
616 return do_fork(clone_flags, newsp, &regs, 0, parent_tidptr, child_tidptr); 445 return do_fork(clone_flags, newsp, regs, 0, parent_tidptr, child_tidptr);
617}
618
619/*
620 * This is trivial, and on the face of it looks like it
621 * could equally well be done in user mode.
622 *
623 * Not so, for quite unobvious reasons - register pressure.
624 * In user mode vfork() cannot have a stack frame, and if
625 * done by calling the "clone()" system call directly, you
626 * do not have enough call-clobbered registers to hold all
627 * the information you need.
628 */
629asmlinkage int sys_vfork(struct pt_regs regs)
630{
631 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs.sp, &regs, 0, NULL, NULL);
632} 446}
633 447
634/* 448/*
635 * sys_execve() executes a new program. 449 * sys_execve() executes a new program.
636 */ 450 */
637asmlinkage int sys_execve(struct pt_regs regs) 451int sys_execve(struct pt_regs *regs)
638{ 452{
639 int error; 453 int error;
640 char *filename; 454 char *filename;
641 455
642 filename = getname((char __user *) regs.bx); 456 filename = getname((char __user *) regs->bx);
643 error = PTR_ERR(filename); 457 error = PTR_ERR(filename);
644 if (IS_ERR(filename)) 458 if (IS_ERR(filename))
645 goto out; 459 goto out;
646 error = do_execve(filename, 460 error = do_execve(filename,
647 (char __user * __user *) regs.cx, 461 (char __user * __user *) regs->cx,
648 (char __user * __user *) regs.dx, 462 (char __user * __user *) regs->dx,
649 &regs); 463 regs);
650 if (error == 0) { 464 if (error == 0) {
651 /* Make sure we don't return using sysenter.. */ 465 /* Make sure we don't return using sysenter.. */
652 set_thread_flag(TIF_IRET); 466 set_thread_flag(TIF_IRET);
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 416fb9282f4f..abb7e6a7f0c6 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -16,6 +16,7 @@
16 16
17#include <stdarg.h> 17#include <stdarg.h>
18 18
19#include <linux/stackprotector.h>
19#include <linux/cpu.h> 20#include <linux/cpu.h>
20#include <linux/errno.h> 21#include <linux/errno.h>
21#include <linux/sched.h> 22#include <linux/sched.h>
@@ -40,13 +41,13 @@
40#include <linux/uaccess.h> 41#include <linux/uaccess.h>
41#include <linux/io.h> 42#include <linux/io.h>
42#include <linux/ftrace.h> 43#include <linux/ftrace.h>
44#include <linux/dmi.h>
43 45
44#include <asm/pgtable.h> 46#include <asm/pgtable.h>
45#include <asm/system.h> 47#include <asm/system.h>
46#include <asm/processor.h> 48#include <asm/processor.h>
47#include <asm/i387.h> 49#include <asm/i387.h>
48#include <asm/mmu_context.h> 50#include <asm/mmu_context.h>
49#include <asm/pda.h>
50#include <asm/prctl.h> 51#include <asm/prctl.h>
51#include <asm/desc.h> 52#include <asm/desc.h>
52#include <asm/proto.h> 53#include <asm/proto.h>
@@ -57,6 +58,12 @@
57 58
58asmlinkage extern void ret_from_fork(void); 59asmlinkage extern void ret_from_fork(void);
59 60
61DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task;
62EXPORT_PER_CPU_SYMBOL(current_task);
63
64DEFINE_PER_CPU(unsigned long, old_rsp);
65static DEFINE_PER_CPU(unsigned char, is_idle);
66
60unsigned long kernel_thread_flags = CLONE_VM | CLONE_UNTRACED; 67unsigned long kernel_thread_flags = CLONE_VM | CLONE_UNTRACED;
61 68
62static ATOMIC_NOTIFIER_HEAD(idle_notifier); 69static ATOMIC_NOTIFIER_HEAD(idle_notifier);
@@ -75,13 +82,13 @@ EXPORT_SYMBOL_GPL(idle_notifier_unregister);
75 82
76void enter_idle(void) 83void enter_idle(void)
77{ 84{
78 write_pda(isidle, 1); 85 percpu_write(is_idle, 1);
79 atomic_notifier_call_chain(&idle_notifier, IDLE_START, NULL); 86 atomic_notifier_call_chain(&idle_notifier, IDLE_START, NULL);
80} 87}
81 88
82static void __exit_idle(void) 89static void __exit_idle(void)
83{ 90{
84 if (test_and_clear_bit_pda(0, isidle) == 0) 91 if (x86_test_and_clear_bit_percpu(0, is_idle) == 0)
85 return; 92 return;
86 atomic_notifier_call_chain(&idle_notifier, IDLE_END, NULL); 93 atomic_notifier_call_chain(&idle_notifier, IDLE_END, NULL);
87} 94}
@@ -111,6 +118,16 @@ static inline void play_dead(void)
111void cpu_idle(void) 118void cpu_idle(void)
112{ 119{
113 current_thread_info()->status |= TS_POLLING; 120 current_thread_info()->status |= TS_POLLING;
121
122 /*
123 * If we're the non-boot CPU, nothing set the stack canary up
124 * for us. CPU0 already has it initialized but no harm in
125 * doing it again. This is a good place for updating it, as
126 * we wont ever return from this function (so the invalid
127 * canaries already on the stack wont ever trigger).
128 */
129 boot_init_stack_canary();
130
114 /* endless idle loop with no priority at all */ 131 /* endless idle loop with no priority at all */
115 while (1) { 132 while (1) {
116 tick_nohz_stop_sched_tick(1); 133 tick_nohz_stop_sched_tick(1);
@@ -151,14 +168,18 @@ void __show_regs(struct pt_regs *regs, int all)
151 unsigned long d0, d1, d2, d3, d6, d7; 168 unsigned long d0, d1, d2, d3, d6, d7;
152 unsigned int fsindex, gsindex; 169 unsigned int fsindex, gsindex;
153 unsigned int ds, cs, es; 170 unsigned int ds, cs, es;
171 const char *board;
154 172
155 printk("\n"); 173 printk("\n");
156 print_modules(); 174 print_modules();
157 printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s\n", 175 board = dmi_get_system_info(DMI_PRODUCT_NAME);
176 if (!board)
177 board = "";
178 printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s %s\n",
158 current->pid, current->comm, print_tainted(), 179 current->pid, current->comm, print_tainted(),
159 init_utsname()->release, 180 init_utsname()->release,
160 (int)strcspn(init_utsname()->version, " "), 181 (int)strcspn(init_utsname()->version, " "),
161 init_utsname()->version); 182 init_utsname()->version, board);
162 printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); 183 printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip);
163 printk_address(regs->ip, 1); 184 printk_address(regs->ip, 1);
164 printk(KERN_INFO "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, 185 printk(KERN_INFO "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss,
@@ -216,61 +237,6 @@ void show_regs(struct pt_regs *regs)
216 show_trace(NULL, regs, (void *)(regs + 1), regs->bp); 237 show_trace(NULL, regs, (void *)(regs + 1), regs->bp);
217} 238}
218 239
219/*
220 * Free current thread data structures etc..
221 */
222void exit_thread(void)
223{
224 struct task_struct *me = current;
225 struct thread_struct *t = &me->thread;
226
227 if (me->thread.io_bitmap_ptr) {
228 struct tss_struct *tss = &per_cpu(init_tss, get_cpu());
229
230 kfree(t->io_bitmap_ptr);
231 t->io_bitmap_ptr = NULL;
232 clear_thread_flag(TIF_IO_BITMAP);
233 /*
234 * Careful, clear this in the TSS too:
235 */
236 memset(tss->io_bitmap, 0xff, t->io_bitmap_max);
237 t->io_bitmap_max = 0;
238 put_cpu();
239 }
240
241 ds_exit_thread(current);
242}
243
244void flush_thread(void)
245{
246 struct task_struct *tsk = current;
247
248 if (test_tsk_thread_flag(tsk, TIF_ABI_PENDING)) {
249 clear_tsk_thread_flag(tsk, TIF_ABI_PENDING);
250 if (test_tsk_thread_flag(tsk, TIF_IA32)) {
251 clear_tsk_thread_flag(tsk, TIF_IA32);
252 } else {
253 set_tsk_thread_flag(tsk, TIF_IA32);
254 current_thread_info()->status |= TS_COMPAT;
255 }
256 }
257 clear_tsk_thread_flag(tsk, TIF_DEBUG);
258
259 tsk->thread.debugreg0 = 0;
260 tsk->thread.debugreg1 = 0;
261 tsk->thread.debugreg2 = 0;
262 tsk->thread.debugreg3 = 0;
263 tsk->thread.debugreg6 = 0;
264 tsk->thread.debugreg7 = 0;
265 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
266 /*
267 * Forget coprocessor state..
268 */
269 tsk->fpu_counter = 0;
270 clear_fpu(tsk);
271 clear_used_math();
272}
273
274void release_thread(struct task_struct *dead_task) 240void release_thread(struct task_struct *dead_task)
275{ 241{
276 if (dead_task->mm) { 242 if (dead_task->mm) {
@@ -392,7 +358,7 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
392 load_gs_index(0); 358 load_gs_index(0);
393 regs->ip = new_ip; 359 regs->ip = new_ip;
394 regs->sp = new_sp; 360 regs->sp = new_sp;
395 write_pda(oldrsp, new_sp); 361 percpu_write(old_rsp, new_sp);
396 regs->cs = __USER_CS; 362 regs->cs = __USER_CS;
397 regs->ss = __USER_DS; 363 regs->ss = __USER_DS;
398 regs->flags = 0x200; 364 regs->flags = 0x200;
@@ -404,118 +370,6 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
404} 370}
405EXPORT_SYMBOL_GPL(start_thread); 371EXPORT_SYMBOL_GPL(start_thread);
406 372
407static void hard_disable_TSC(void)
408{
409 write_cr4(read_cr4() | X86_CR4_TSD);
410}
411
412void disable_TSC(void)
413{
414 preempt_disable();
415 if (!test_and_set_thread_flag(TIF_NOTSC))
416 /*
417 * Must flip the CPU state synchronously with
418 * TIF_NOTSC in the current running context.
419 */
420 hard_disable_TSC();
421 preempt_enable();
422}
423
424static void hard_enable_TSC(void)
425{
426 write_cr4(read_cr4() & ~X86_CR4_TSD);
427}
428
429static void enable_TSC(void)
430{
431 preempt_disable();
432 if (test_and_clear_thread_flag(TIF_NOTSC))
433 /*
434 * Must flip the CPU state synchronously with
435 * TIF_NOTSC in the current running context.
436 */
437 hard_enable_TSC();
438 preempt_enable();
439}
440
441int get_tsc_mode(unsigned long adr)
442{
443 unsigned int val;
444
445 if (test_thread_flag(TIF_NOTSC))
446 val = PR_TSC_SIGSEGV;
447 else
448 val = PR_TSC_ENABLE;
449
450 return put_user(val, (unsigned int __user *)adr);
451}
452
453int set_tsc_mode(unsigned int val)
454{
455 if (val == PR_TSC_SIGSEGV)
456 disable_TSC();
457 else if (val == PR_TSC_ENABLE)
458 enable_TSC();
459 else
460 return -EINVAL;
461
462 return 0;
463}
464
465/*
466 * This special macro can be used to load a debugging register
467 */
468#define loaddebug(thread, r) set_debugreg(thread->debugreg ## r, r)
469
470static inline void __switch_to_xtra(struct task_struct *prev_p,
471 struct task_struct *next_p,
472 struct tss_struct *tss)
473{
474 struct thread_struct *prev, *next;
475
476 prev = &prev_p->thread,
477 next = &next_p->thread;
478
479 if (test_tsk_thread_flag(next_p, TIF_DS_AREA_MSR) ||
480 test_tsk_thread_flag(prev_p, TIF_DS_AREA_MSR))
481 ds_switch_to(prev_p, next_p);
482 else if (next->debugctlmsr != prev->debugctlmsr)
483 update_debugctlmsr(next->debugctlmsr);
484
485 if (test_tsk_thread_flag(next_p, TIF_DEBUG)) {
486 loaddebug(next, 0);
487 loaddebug(next, 1);
488 loaddebug(next, 2);
489 loaddebug(next, 3);
490 /* no 4 and 5 */
491 loaddebug(next, 6);
492 loaddebug(next, 7);
493 }
494
495 if (test_tsk_thread_flag(prev_p, TIF_NOTSC) ^
496 test_tsk_thread_flag(next_p, TIF_NOTSC)) {
497 /* prev and next are different */
498 if (test_tsk_thread_flag(next_p, TIF_NOTSC))
499 hard_disable_TSC();
500 else
501 hard_enable_TSC();
502 }
503
504 if (test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {
505 /*
506 * Copy the relevant range of the IO bitmap.
507 * Normally this is 128 bytes or less:
508 */
509 memcpy(tss->io_bitmap, next->io_bitmap_ptr,
510 max(prev->io_bitmap_max, next->io_bitmap_max));
511 } else if (test_tsk_thread_flag(prev_p, TIF_IO_BITMAP)) {
512 /*
513 * Clear any possible leftover bits:
514 */
515 memset(tss->io_bitmap, 0xff, prev->io_bitmap_max);
516 }
517}
518
519/* 373/*
520 * switch_to(x,y) should switch tasks from x to y. 374 * switch_to(x,y) should switch tasks from x to y.
521 * 375 *
@@ -613,21 +467,13 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
613 /* 467 /*
614 * Switch the PDA and FPU contexts. 468 * Switch the PDA and FPU contexts.
615 */ 469 */
616 prev->usersp = read_pda(oldrsp); 470 prev->usersp = percpu_read(old_rsp);
617 write_pda(oldrsp, next->usersp); 471 percpu_write(old_rsp, next->usersp);
618 write_pda(pcurrent, next_p); 472 percpu_write(current_task, next_p);
619 473
620 write_pda(kernelstack, 474 percpu_write(kernel_stack,
621 (unsigned long)task_stack_page(next_p) + 475 (unsigned long)task_stack_page(next_p) +
622 THREAD_SIZE - PDA_STACKOFFSET); 476 THREAD_SIZE - KERNEL_STACK_OFFSET);
623#ifdef CONFIG_CC_STACKPROTECTOR
624 write_pda(stack_canary, next_p->stack_canary);
625 /*
626 * Build time only check to make sure the stack_canary is at
627 * offset 40 in the pda; this is a gcc ABI requirement
628 */
629 BUILD_BUG_ON(offsetof(struct x8664_pda, stack_canary) != 40);
630#endif
631 477
632 /* 478 /*
633 * Now maybe reload the debug registers and handle I/O bitmaps 479 * Now maybe reload the debug registers and handle I/O bitmaps
@@ -681,11 +527,6 @@ void set_personality_64bit(void)
681 current->personality &= ~READ_IMPLIES_EXEC; 527 current->personality &= ~READ_IMPLIES_EXEC;
682} 528}
683 529
684asmlinkage long sys_fork(struct pt_regs *regs)
685{
686 return do_fork(SIGCHLD, regs->sp, regs, 0, NULL, NULL);
687}
688
689asmlinkage long 530asmlinkage long
690sys_clone(unsigned long clone_flags, unsigned long newsp, 531sys_clone(unsigned long clone_flags, unsigned long newsp,
691 void __user *parent_tid, void __user *child_tid, struct pt_regs *regs) 532 void __user *parent_tid, void __user *child_tid, struct pt_regs *regs)
@@ -695,22 +536,6 @@ sys_clone(unsigned long clone_flags, unsigned long newsp,
695 return do_fork(clone_flags, newsp, regs, 0, parent_tid, child_tid); 536 return do_fork(clone_flags, newsp, regs, 0, parent_tid, child_tid);
696} 537}
697 538
698/*
699 * This is trivial, and on the face of it looks like it
700 * could equally well be done in user mode.
701 *
702 * Not so, for quite unobvious reasons - register pressure.
703 * In user mode vfork() cannot have a stack frame, and if
704 * done by calling the "clone()" system call directly, you
705 * do not have enough call-clobbered registers to hold all
706 * the information you need.
707 */
708asmlinkage long sys_vfork(struct pt_regs *regs)
709{
710 return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->sp, regs, 0,
711 NULL, NULL);
712}
713
714unsigned long get_wchan(struct task_struct *p) 539unsigned long get_wchan(struct task_struct *p)
715{ 540{
716 unsigned long stack; 541 unsigned long stack;
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
index 0a5df5f82fb9..3d9672e59c16 100644
--- a/arch/x86/kernel/ptrace.c
+++ b/arch/x86/kernel/ptrace.c
@@ -75,10 +75,7 @@ static inline bool invalid_selector(u16 value)
75static unsigned long *pt_regs_access(struct pt_regs *regs, unsigned long regno) 75static unsigned long *pt_regs_access(struct pt_regs *regs, unsigned long regno)
76{ 76{
77 BUILD_BUG_ON(offsetof(struct pt_regs, bx) != 0); 77 BUILD_BUG_ON(offsetof(struct pt_regs, bx) != 0);
78 regno >>= 2; 78 return &regs->bx + (regno >> 2);
79 if (regno > FS)
80 --regno;
81 return &regs->bx + regno;
82} 79}
83 80
84static u16 get_segment_reg(struct task_struct *task, unsigned long offset) 81static u16 get_segment_reg(struct task_struct *task, unsigned long offset)
@@ -90,9 +87,10 @@ static u16 get_segment_reg(struct task_struct *task, unsigned long offset)
90 if (offset != offsetof(struct user_regs_struct, gs)) 87 if (offset != offsetof(struct user_regs_struct, gs))
91 retval = *pt_regs_access(task_pt_regs(task), offset); 88 retval = *pt_regs_access(task_pt_regs(task), offset);
92 else { 89 else {
93 retval = task->thread.gs;
94 if (task == current) 90 if (task == current)
95 savesegment(gs, retval); 91 retval = get_user_gs(task_pt_regs(task));
92 else
93 retval = task_user_gs(task);
96 } 94 }
97 return retval; 95 return retval;
98} 96}
@@ -126,13 +124,10 @@ static int set_segment_reg(struct task_struct *task,
126 break; 124 break;
127 125
128 case offsetof(struct user_regs_struct, gs): 126 case offsetof(struct user_regs_struct, gs):
129 task->thread.gs = value;
130 if (task == current) 127 if (task == current)
131 /* 128 set_user_gs(task_pt_regs(task), value);
132 * The user-mode %gs is not affected by 129 else
133 * kernel entry, so we must update the CPU. 130 task_user_gs(task) = value;
134 */
135 loadsegment(gs, value);
136 } 131 }
137 132
138 return 0; 133 return 0;
@@ -273,7 +268,7 @@ static unsigned long debugreg_addr_limit(struct task_struct *task)
273 if (test_tsk_thread_flag(task, TIF_IA32)) 268 if (test_tsk_thread_flag(task, TIF_IA32))
274 return IA32_PAGE_OFFSET - 3; 269 return IA32_PAGE_OFFSET - 3;
275#endif 270#endif
276 return TASK_SIZE64 - 7; 271 return TASK_SIZE_MAX - 7;
277} 272}
278 273
279#endif /* CONFIG_X86_32 */ 274#endif /* CONFIG_X86_32 */
@@ -810,12 +805,16 @@ static void ptrace_bts_untrace(struct task_struct *child)
810 805
811static void ptrace_bts_detach(struct task_struct *child) 806static void ptrace_bts_detach(struct task_struct *child)
812{ 807{
813 if (unlikely(child->bts)) { 808 /*
814 ds_release_bts(child->bts); 809 * Ptrace_detach() races with ptrace_untrace() in case
815 child->bts = NULL; 810 * the child dies and is reaped by another thread.
816 811 *
817 ptrace_bts_free_buffer(child); 812 * We only do the memory accounting at this point and
818 } 813 * leave the buffer deallocation and the bts tracer
814 * release to ptrace_bts_untrace() which will be called
815 * later on with tasklist_lock held.
816 */
817 release_locked_buffer(child->bts_buffer, child->bts_size);
819} 818}
820#else 819#else
821static inline void ptrace_bts_fork(struct task_struct *tsk) {} 820static inline void ptrace_bts_fork(struct task_struct *tsk) {}
@@ -1384,7 +1383,7 @@ void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs,
1384#ifdef CONFIG_X86_32 1383#ifdef CONFIG_X86_32
1385# define IS_IA32 1 1384# define IS_IA32 1
1386#elif defined CONFIG_IA32_EMULATION 1385#elif defined CONFIG_IA32_EMULATION
1387# define IS_IA32 test_thread_flag(TIF_IA32) 1386# define IS_IA32 is_compat_task()
1388#else 1387#else
1389# define IS_IA32 0 1388# define IS_IA32 0
1390#endif 1389#endif
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 2b46eb41643b..2aef36d8aca2 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -14,6 +14,7 @@
14#include <asm/reboot.h> 14#include <asm/reboot.h>
15#include <asm/pci_x86.h> 15#include <asm/pci_x86.h>
16#include <asm/virtext.h> 16#include <asm/virtext.h>
17#include <asm/cpu.h>
17 18
18#ifdef CONFIG_X86_32 19#ifdef CONFIG_X86_32
19# include <linux/dmi.h> 20# include <linux/dmi.h>
@@ -23,8 +24,6 @@
23# include <asm/iommu.h> 24# include <asm/iommu.h>
24#endif 25#endif
25 26
26#include <mach_ipi.h>
27
28/* 27/*
29 * Power off function, if any 28 * Power off function, if any
30 */ 29 */
@@ -217,6 +216,14 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
217 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq"), 216 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq"),
218 }, 217 },
219 }, 218 },
219 { /* Handle problems with rebooting on Dell XPS710 */
220 .callback = set_bios_reboot,
221 .ident = "Dell XPS710",
222 .matches = {
223 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
224 DMI_MATCH(DMI_PRODUCT_NAME, "Dell XPS710"),
225 },
226 },
220 { } 227 { }
221}; 228};
222 229
@@ -650,7 +657,7 @@ static int crash_nmi_callback(struct notifier_block *self,
650 657
651static void smp_send_nmi_allbutself(void) 658static void smp_send_nmi_allbutself(void)
652{ 659{
653 send_IPI_allbutself(NMI_VECTOR); 660 apic->send_IPI_allbutself(NMI_VECTOR);
654} 661}
655 662
656static struct notifier_block crash_nmi_nb = { 663static struct notifier_block crash_nmi_nb = {
diff --git a/arch/x86/kernel/relocate_kernel_32.S b/arch/x86/kernel/relocate_kernel_32.S
index a160f3119725..41235531b11c 100644
--- a/arch/x86/kernel/relocate_kernel_32.S
+++ b/arch/x86/kernel/relocate_kernel_32.S
@@ -7,7 +7,7 @@
7 */ 7 */
8 8
9#include <linux/linkage.h> 9#include <linux/linkage.h>
10#include <asm/page.h> 10#include <asm/page_types.h>
11#include <asm/kexec.h> 11#include <asm/kexec.h>
12#include <asm/processor-flags.h> 12#include <asm/processor-flags.h>
13 13
@@ -17,7 +17,8 @@
17 17
18#define PTR(x) (x << 2) 18#define PTR(x) (x << 2)
19 19
20/* control_page + KEXEC_CONTROL_CODE_MAX_SIZE 20/*
21 * control_page + KEXEC_CONTROL_CODE_MAX_SIZE
21 * ~ control_page + PAGE_SIZE are used as data storage and stack for 22 * ~ control_page + PAGE_SIZE are used as data storage and stack for
22 * jumping back 23 * jumping back
23 */ 24 */
@@ -76,8 +77,10 @@ relocate_kernel:
76 movl %eax, CP_PA_SWAP_PAGE(%edi) 77 movl %eax, CP_PA_SWAP_PAGE(%edi)
77 movl %ebx, CP_PA_BACKUP_PAGES_MAP(%edi) 78 movl %ebx, CP_PA_BACKUP_PAGES_MAP(%edi)
78 79
79 /* get physical address of control page now */ 80 /*
80 /* this is impossible after page table switch */ 81 * get physical address of control page now
82 * this is impossible after page table switch
83 */
81 movl PTR(PA_CONTROL_PAGE)(%ebp), %edi 84 movl PTR(PA_CONTROL_PAGE)(%ebp), %edi
82 85
83 /* switch to new set of page tables */ 86 /* switch to new set of page tables */
@@ -97,7 +100,8 @@ identity_mapped:
97 /* store the start address on the stack */ 100 /* store the start address on the stack */
98 pushl %edx 101 pushl %edx
99 102
100 /* Set cr0 to a known state: 103 /*
104 * Set cr0 to a known state:
101 * - Paging disabled 105 * - Paging disabled
102 * - Alignment check disabled 106 * - Alignment check disabled
103 * - Write protect disabled 107 * - Write protect disabled
@@ -113,7 +117,8 @@ identity_mapped:
113 /* clear cr4 if applicable */ 117 /* clear cr4 if applicable */
114 testl %ecx, %ecx 118 testl %ecx, %ecx
115 jz 1f 119 jz 1f
116 /* Set cr4 to a known state: 120 /*
121 * Set cr4 to a known state:
117 * Setting everything to zero seems safe. 122 * Setting everything to zero seems safe.
118 */ 123 */
119 xorl %eax, %eax 124 xorl %eax, %eax
@@ -132,15 +137,18 @@ identity_mapped:
132 call swap_pages 137 call swap_pages
133 addl $8, %esp 138 addl $8, %esp
134 139
135 /* To be certain of avoiding problems with self-modifying code 140 /*
141 * To be certain of avoiding problems with self-modifying code
136 * I need to execute a serializing instruction here. 142 * I need to execute a serializing instruction here.
137 * So I flush the TLB, it's handy, and not processor dependent. 143 * So I flush the TLB, it's handy, and not processor dependent.
138 */ 144 */
139 xorl %eax, %eax 145 xorl %eax, %eax
140 movl %eax, %cr3 146 movl %eax, %cr3
141 147
142 /* set all of the registers to known values */ 148 /*
143 /* leave %esp alone */ 149 * set all of the registers to known values
150 * leave %esp alone
151 */
144 152
145 testl %esi, %esi 153 testl %esi, %esi
146 jnz 1f 154 jnz 1f
diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
index f5afe665a82b..4de8f5b3d476 100644
--- a/arch/x86/kernel/relocate_kernel_64.S
+++ b/arch/x86/kernel/relocate_kernel_64.S
@@ -7,10 +7,10 @@
7 */ 7 */
8 8
9#include <linux/linkage.h> 9#include <linux/linkage.h>
10#include <asm/page.h> 10#include <asm/page_types.h>
11#include <asm/kexec.h> 11#include <asm/kexec.h>
12#include <asm/processor-flags.h> 12#include <asm/processor-flags.h>
13#include <asm/pgtable.h> 13#include <asm/pgtable_types.h>
14 14
15/* 15/*
16 * Must be relocatable PIC code callable as a C function 16 * Must be relocatable PIC code callable as a C function
@@ -19,145 +19,76 @@
19#define PTR(x) (x << 3) 19#define PTR(x) (x << 3)
20#define PAGE_ATTR (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY) 20#define PAGE_ATTR (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY)
21 21
22/*
23 * control_page + KEXEC_CONTROL_CODE_MAX_SIZE
24 * ~ control_page + PAGE_SIZE are used as data storage and stack for
25 * jumping back
26 */
27#define DATA(offset) (KEXEC_CONTROL_CODE_MAX_SIZE+(offset))
28
29/* Minimal CPU state */
30#define RSP DATA(0x0)
31#define CR0 DATA(0x8)
32#define CR3 DATA(0x10)
33#define CR4 DATA(0x18)
34
35/* other data */
36#define CP_PA_TABLE_PAGE DATA(0x20)
37#define CP_PA_SWAP_PAGE DATA(0x28)
38#define CP_PA_BACKUP_PAGES_MAP DATA(0x30)
39
22 .text 40 .text
23 .align PAGE_SIZE 41 .align PAGE_SIZE
24 .code64 42 .code64
25 .globl relocate_kernel 43 .globl relocate_kernel
26relocate_kernel: 44relocate_kernel:
27 /* %rdi indirection_page 45 /*
46 * %rdi indirection_page
28 * %rsi page_list 47 * %rsi page_list
29 * %rdx start address 48 * %rdx start address
49 * %rcx preserve_context
30 */ 50 */
31 51
32 /* map the control page at its virtual address */ 52 /* Save the CPU context, used for jumping back */
33 53 pushq %rbx
34 movq $0x0000ff8000000000, %r10 /* mask */ 54 pushq %rbp
35 mov $(39 - 3), %cl /* bits to shift */ 55 pushq %r12
36 movq PTR(VA_CONTROL_PAGE)(%rsi), %r11 /* address to map */ 56 pushq %r13
37 57 pushq %r14
38 movq %r11, %r9 58 pushq %r15
39 andq %r10, %r9 59 pushf
40 shrq %cl, %r9 60
41 61 movq PTR(VA_CONTROL_PAGE)(%rsi), %r11
42 movq PTR(VA_PGD)(%rsi), %r8 62 movq %rsp, RSP(%r11)
43 addq %r8, %r9 63 movq %cr0, %rax
44 movq PTR(PA_PUD_0)(%rsi), %r8 64 movq %rax, CR0(%r11)
45 orq $PAGE_ATTR, %r8 65 movq %cr3, %rax
46 movq %r8, (%r9) 66 movq %rax, CR3(%r11)
47 67 movq %cr4, %rax
48 shrq $9, %r10 68 movq %rax, CR4(%r11)
49 sub $9, %cl
50
51 movq %r11, %r9
52 andq %r10, %r9
53 shrq %cl, %r9
54
55 movq PTR(VA_PUD_0)(%rsi), %r8
56 addq %r8, %r9
57 movq PTR(PA_PMD_0)(%rsi), %r8
58 orq $PAGE_ATTR, %r8
59 movq %r8, (%r9)
60
61 shrq $9, %r10
62 sub $9, %cl
63
64 movq %r11, %r9
65 andq %r10, %r9
66 shrq %cl, %r9
67
68 movq PTR(VA_PMD_0)(%rsi), %r8
69 addq %r8, %r9
70 movq PTR(PA_PTE_0)(%rsi), %r8
71 orq $PAGE_ATTR, %r8
72 movq %r8, (%r9)
73
74 shrq $9, %r10
75 sub $9, %cl
76
77 movq %r11, %r9
78 andq %r10, %r9
79 shrq %cl, %r9
80
81 movq PTR(VA_PTE_0)(%rsi), %r8
82 addq %r8, %r9
83 movq PTR(PA_CONTROL_PAGE)(%rsi), %r8
84 orq $PAGE_ATTR, %r8
85 movq %r8, (%r9)
86
87 /* identity map the control page at its physical address */
88
89 movq $0x0000ff8000000000, %r10 /* mask */
90 mov $(39 - 3), %cl /* bits to shift */
91 movq PTR(PA_CONTROL_PAGE)(%rsi), %r11 /* address to map */
92
93 movq %r11, %r9
94 andq %r10, %r9
95 shrq %cl, %r9
96
97 movq PTR(VA_PGD)(%rsi), %r8
98 addq %r8, %r9
99 movq PTR(PA_PUD_1)(%rsi), %r8
100 orq $PAGE_ATTR, %r8
101 movq %r8, (%r9)
102
103 shrq $9, %r10
104 sub $9, %cl
105
106 movq %r11, %r9
107 andq %r10, %r9
108 shrq %cl, %r9
109
110 movq PTR(VA_PUD_1)(%rsi), %r8
111 addq %r8, %r9
112 movq PTR(PA_PMD_1)(%rsi), %r8
113 orq $PAGE_ATTR, %r8
114 movq %r8, (%r9)
115
116 shrq $9, %r10
117 sub $9, %cl
118
119 movq %r11, %r9
120 andq %r10, %r9
121 shrq %cl, %r9
122
123 movq PTR(VA_PMD_1)(%rsi), %r8
124 addq %r8, %r9
125 movq PTR(PA_PTE_1)(%rsi), %r8
126 orq $PAGE_ATTR, %r8
127 movq %r8, (%r9)
128
129 shrq $9, %r10
130 sub $9, %cl
131
132 movq %r11, %r9
133 andq %r10, %r9
134 shrq %cl, %r9
135
136 movq PTR(VA_PTE_1)(%rsi), %r8
137 addq %r8, %r9
138 movq PTR(PA_CONTROL_PAGE)(%rsi), %r8
139 orq $PAGE_ATTR, %r8
140 movq %r8, (%r9)
141
142relocate_new_kernel:
143 /* %rdi indirection_page
144 * %rsi page_list
145 * %rdx start address
146 */
147 69
148 /* zero out flags, and disable interrupts */ 70 /* zero out flags, and disable interrupts */
149 pushq $0 71 pushq $0
150 popfq 72 popfq
151 73
152 /* get physical address of control page now */ 74 /*
153 /* this is impossible after page table switch */ 75 * get physical address of control page now
76 * this is impossible after page table switch
77 */
154 movq PTR(PA_CONTROL_PAGE)(%rsi), %r8 78 movq PTR(PA_CONTROL_PAGE)(%rsi), %r8
155 79
156 /* get physical address of page table now too */ 80 /* get physical address of page table now too */
157 movq PTR(PA_TABLE_PAGE)(%rsi), %rcx 81 movq PTR(PA_TABLE_PAGE)(%rsi), %r9
82
83 /* get physical address of swap page now */
84 movq PTR(PA_SWAP_PAGE)(%rsi), %r10
158 85
159 /* switch to new set of page tables */ 86 /* save some information for jumping back */
160 movq PTR(PA_PGD)(%rsi), %r9 87 movq %r9, CP_PA_TABLE_PAGE(%r11)
88 movq %r10, CP_PA_SWAP_PAGE(%r11)
89 movq %rdi, CP_PA_BACKUP_PAGES_MAP(%r11)
90
91 /* Switch to the identity mapped page tables */
161 movq %r9, %cr3 92 movq %r9, %cr3
162 93
163 /* setup a new stack at the end of the physical control page */ 94 /* setup a new stack at the end of the physical control page */
@@ -172,7 +103,8 @@ identity_mapped:
172 /* store the start address on the stack */ 103 /* store the start address on the stack */
173 pushq %rdx 104 pushq %rdx
174 105
175 /* Set cr0 to a known state: 106 /*
107 * Set cr0 to a known state:
176 * - Paging enabled 108 * - Paging enabled
177 * - Alignment check disabled 109 * - Alignment check disabled
178 * - Write protect disabled 110 * - Write protect disabled
@@ -185,7 +117,8 @@ identity_mapped:
185 orl $(X86_CR0_PG | X86_CR0_PE), %eax 117 orl $(X86_CR0_PG | X86_CR0_PE), %eax
186 movq %rax, %cr0 118 movq %rax, %cr0
187 119
188 /* Set cr4 to a known state: 120 /*
121 * Set cr4 to a known state:
189 * - physical address extension enabled 122 * - physical address extension enabled
190 */ 123 */
191 movq $X86_CR4_PAE, %rax 124 movq $X86_CR4_PAE, %rax
@@ -194,12 +127,88 @@ identity_mapped:
194 jmp 1f 127 jmp 1f
1951: 1281:
196 129
197 /* Switch to the identity mapped page tables, 130 /* Flush the TLB (needed?) */
198 * and flush the TLB. 131 movq %r9, %cr3
199 */ 132
200 movq %rcx, %cr3 133 movq %rcx, %r11
134 call swap_pages
135
136 /*
137 * To be certain of avoiding problems with self-modifying code
138 * I need to execute a serializing instruction here.
139 * So I flush the TLB by reloading %cr3 here, it's handy,
140 * and not processor dependent.
141 */
142 movq %cr3, %rax
143 movq %rax, %cr3
144
145 /*
146 * set all of the registers to known values
147 * leave %rsp alone
148 */
149
150 testq %r11, %r11
151 jnz 1f
152 xorq %rax, %rax
153 xorq %rbx, %rbx
154 xorq %rcx, %rcx
155 xorq %rdx, %rdx
156 xorq %rsi, %rsi
157 xorq %rdi, %rdi
158 xorq %rbp, %rbp
159 xorq %r8, %r8
160 xorq %r9, %r9
161 xorq %r10, %r9
162 xorq %r11, %r11
163 xorq %r12, %r12
164 xorq %r13, %r13
165 xorq %r14, %r14
166 xorq %r15, %r15
167
168 ret
169
1701:
171 popq %rdx
172 leaq PAGE_SIZE(%r10), %rsp
173 call *%rdx
174
175 /* get the re-entry point of the peer system */
176 movq 0(%rsp), %rbp
177 call 1f
1781:
179 popq %r8
180 subq $(1b - relocate_kernel), %r8
181 movq CP_PA_SWAP_PAGE(%r8), %r10
182 movq CP_PA_BACKUP_PAGES_MAP(%r8), %rdi
183 movq CP_PA_TABLE_PAGE(%r8), %rax
184 movq %rax, %cr3
185 lea PAGE_SIZE(%r8), %rsp
186 call swap_pages
187 movq $virtual_mapped, %rax
188 pushq %rax
189 ret
190
191virtual_mapped:
192 movq RSP(%r8), %rsp
193 movq CR4(%r8), %rax
194 movq %rax, %cr4
195 movq CR3(%r8), %rax
196 movq CR0(%r8), %r8
197 movq %rax, %cr3
198 movq %r8, %cr0
199 movq %rbp, %rax
200
201 popf
202 popq %r15
203 popq %r14
204 popq %r13
205 popq %r12
206 popq %rbp
207 popq %rbx
208 ret
201 209
202 /* Do the copies */ 210 /* Do the copies */
211swap_pages:
203 movq %rdi, %rcx /* Put the page_list in %rcx */ 212 movq %rdi, %rcx /* Put the page_list in %rcx */
204 xorq %rdi, %rdi 213 xorq %rdi, %rdi
205 xorq %rsi, %rsi 214 xorq %rsi, %rsi
@@ -231,36 +240,27 @@ identity_mapped:
231 movq %rcx, %rsi /* For ever source page do a copy */ 240 movq %rcx, %rsi /* For ever source page do a copy */
232 andq $0xfffffffffffff000, %rsi 241 andq $0xfffffffffffff000, %rsi
233 242
243 movq %rdi, %rdx
244 movq %rsi, %rax
245
246 movq %r10, %rdi
234 movq $512, %rcx 247 movq $512, %rcx
235 rep ; movsq 248 rep ; movsq
236 jmp 0b
2373:
238
239 /* To be certain of avoiding problems with self-modifying code
240 * I need to execute a serializing instruction here.
241 * So I flush the TLB by reloading %cr3 here, it's handy,
242 * and not processor dependent.
243 */
244 movq %cr3, %rax
245 movq %rax, %cr3
246 249
247 /* set all of the registers to known values */ 250 movq %rax, %rdi
248 /* leave %rsp alone */ 251 movq %rdx, %rsi
252 movq $512, %rcx
253 rep ; movsq
249 254
250 xorq %rax, %rax 255 movq %rdx, %rdi
251 xorq %rbx, %rbx 256 movq %r10, %rsi
252 xorq %rcx, %rcx 257 movq $512, %rcx
253 xorq %rdx, %rdx 258 rep ; movsq
254 xorq %rsi, %rsi
255 xorq %rdi, %rdi
256 xorq %rbp, %rbp
257 xorq %r8, %r8
258 xorq %r9, %r9
259 xorq %r10, %r9
260 xorq %r11, %r11
261 xorq %r12, %r12
262 xorq %r13, %r13
263 xorq %r14, %r14
264 xorq %r15, %r15
265 259
260 lea PAGE_SIZE(%rax), %rsi
261 jmp 0b
2623:
266 ret 263 ret
264
265 .globl kexec_control_code_size
266.set kexec_control_code_size, . - relocate_kernel
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index ae0d8042cf69..f28c56e6bf94 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -74,14 +74,15 @@
74#include <asm/e820.h> 74#include <asm/e820.h>
75#include <asm/mpspec.h> 75#include <asm/mpspec.h>
76#include <asm/setup.h> 76#include <asm/setup.h>
77#include <asm/arch_hooks.h>
78#include <asm/efi.h> 77#include <asm/efi.h>
78#include <asm/timer.h>
79#include <asm/i8259.h>
79#include <asm/sections.h> 80#include <asm/sections.h>
80#include <asm/dmi.h> 81#include <asm/dmi.h>
81#include <asm/io_apic.h> 82#include <asm/io_apic.h>
82#include <asm/ist.h> 83#include <asm/ist.h>
83#include <asm/vmi.h> 84#include <asm/vmi.h>
84#include <setup_arch.h> 85#include <asm/setup_arch.h>
85#include <asm/bios_ebda.h> 86#include <asm/bios_ebda.h>
86#include <asm/cacheflush.h> 87#include <asm/cacheflush.h>
87#include <asm/processor.h> 88#include <asm/processor.h>
@@ -89,7 +90,7 @@
89 90
90#include <asm/system.h> 91#include <asm/system.h>
91#include <asm/vsyscall.h> 92#include <asm/vsyscall.h>
92#include <asm/smp.h> 93#include <asm/cpu.h>
93#include <asm/desc.h> 94#include <asm/desc.h>
94#include <asm/dma.h> 95#include <asm/dma.h>
95#include <asm/iommu.h> 96#include <asm/iommu.h>
@@ -97,7 +98,6 @@
97#include <asm/mmu_context.h> 98#include <asm/mmu_context.h>
98#include <asm/proto.h> 99#include <asm/proto.h>
99 100
100#include <mach_apic.h>
101#include <asm/paravirt.h> 101#include <asm/paravirt.h>
102#include <asm/hypervisor.h> 102#include <asm/hypervisor.h>
103 103
@@ -112,6 +112,20 @@
112#define ARCH_SETUP 112#define ARCH_SETUP
113#endif 113#endif
114 114
115unsigned int boot_cpu_id __read_mostly;
116
117#ifdef CONFIG_X86_64
118int default_cpu_present_to_apicid(int mps_cpu)
119{
120 return __default_cpu_present_to_apicid(mps_cpu);
121}
122
123int default_check_phys_apicid_present(int boot_cpu_physical_apicid)
124{
125 return __default_check_phys_apicid_present(boot_cpu_physical_apicid);
126}
127#endif
128
115#ifndef CONFIG_DEBUG_BOOT_PARAMS 129#ifndef CONFIG_DEBUG_BOOT_PARAMS
116struct boot_params __initdata boot_params; 130struct boot_params __initdata boot_params;
117#else 131#else
@@ -188,7 +202,9 @@ struct ist_info ist_info;
188#endif 202#endif
189 203
190#else 204#else
191struct cpuinfo_x86 boot_cpu_data __read_mostly; 205struct cpuinfo_x86 boot_cpu_data __read_mostly = {
206 .x86_phys_bits = MAX_PHYSMEM_BITS,
207};
192EXPORT_SYMBOL(boot_cpu_data); 208EXPORT_SYMBOL(boot_cpu_data);
193#endif 209#endif
194 210
@@ -586,20 +602,7 @@ static int __init setup_elfcorehdr(char *arg)
586early_param("elfcorehdr", setup_elfcorehdr); 602early_param("elfcorehdr", setup_elfcorehdr);
587#endif 603#endif
588 604
589static int __init default_update_genapic(void) 605static struct x86_quirks default_x86_quirks __initdata;
590{
591#ifdef CONFIG_X86_SMP
592# if defined(CONFIG_X86_GENERICARCH) || defined(CONFIG_X86_64)
593 genapic->wakeup_cpu = wakeup_secondary_cpu_via_init;
594# endif
595#endif
596
597 return 0;
598}
599
600static struct x86_quirks default_x86_quirks __initdata = {
601 .update_genapic = default_update_genapic,
602};
603 606
604struct x86_quirks *x86_quirks __initdata = &default_x86_quirks; 607struct x86_quirks *x86_quirks __initdata = &default_x86_quirks;
605 608
@@ -607,7 +610,7 @@ struct x86_quirks *x86_quirks __initdata = &default_x86_quirks;
607static int __init dmi_low_memory_corruption(const struct dmi_system_id *d) 610static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
608{ 611{
609 printk(KERN_NOTICE 612 printk(KERN_NOTICE
610 "%s detected: BIOS may corrupt low RAM, working it around.\n", 613 "%s detected: BIOS may corrupt low RAM, working around it.\n",
611 d->ident); 614 d->ident);
612 615
613 e820_update_range(0, 0x10000, E820_RAM, E820_RESERVED); 616 e820_update_range(0, 0x10000, E820_RAM, E820_RESERVED);
@@ -656,7 +659,6 @@ void __init setup_arch(char **cmdline_p)
656#ifdef CONFIG_X86_32 659#ifdef CONFIG_X86_32
657 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); 660 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data));
658 visws_early_detect(); 661 visws_early_detect();
659 pre_setup_arch_hook();
660#else 662#else
661 printk(KERN_INFO "Command line: %s\n", boot_command_line); 663 printk(KERN_INFO "Command line: %s\n", boot_command_line);
662#endif 664#endif
@@ -770,6 +772,9 @@ void __init setup_arch(char **cmdline_p)
770 772
771 finish_e820_parsing(); 773 finish_e820_parsing();
772 774
775 if (efi_enabled)
776 efi_init();
777
773 dmi_scan_machine(); 778 dmi_scan_machine();
774 779
775 dmi_check_system(bad_bios_dmi_table); 780 dmi_check_system(bad_bios_dmi_table);
@@ -789,8 +794,6 @@ void __init setup_arch(char **cmdline_p)
789 insert_resource(&iomem_resource, &data_resource); 794 insert_resource(&iomem_resource, &data_resource);
790 insert_resource(&iomem_resource, &bss_resource); 795 insert_resource(&iomem_resource, &bss_resource);
791 796
792 if (efi_enabled)
793 efi_init();
794 797
795#ifdef CONFIG_X86_32 798#ifdef CONFIG_X86_32
796 if (ppro_with_ram_bug()) { 799 if (ppro_with_ram_bug()) {
@@ -823,8 +826,7 @@ void __init setup_arch(char **cmdline_p)
823#else 826#else
824 num_physpages = max_pfn; 827 num_physpages = max_pfn;
825 828
826 if (cpu_has_x2apic) 829 check_x2apic();
827 check_x2apic();
828 830
829 /* How many end-of-memory variables you have, grandma! */ 831 /* How many end-of-memory variables you have, grandma! */
830 /* need this before calling reserve_initrd */ 832 /* need this before calling reserve_initrd */
@@ -864,9 +866,7 @@ void __init setup_arch(char **cmdline_p)
864 866
865 reserve_initrd(); 867 reserve_initrd();
866 868
867#ifdef CONFIG_X86_64
868 vsmp_init(); 869 vsmp_init();
869#endif
870 870
871 io_delay_init(); 871 io_delay_init();
872 872
@@ -892,12 +892,11 @@ void __init setup_arch(char **cmdline_p)
892 */ 892 */
893 acpi_reserve_bootmem(); 893 acpi_reserve_bootmem();
894#endif 894#endif
895#ifdef CONFIG_X86_FIND_SMP_CONFIG
896 /* 895 /*
897 * Find and reserve possible boot-time SMP configuration: 896 * Find and reserve possible boot-time SMP configuration:
898 */ 897 */
899 find_smp_config(); 898 find_smp_config();
900#endif 899
901 reserve_crashkernel(); 900 reserve_crashkernel();
902 901
903#ifdef CONFIG_X86_64 902#ifdef CONFIG_X86_64
@@ -924,9 +923,7 @@ void __init setup_arch(char **cmdline_p)
924 map_vsyscall(); 923 map_vsyscall();
925#endif 924#endif
926 925
927#ifdef CONFIG_X86_GENERICARCH
928 generic_apic_probe(); 926 generic_apic_probe();
929#endif
930 927
931 early_quirks(); 928 early_quirks();
932 929
@@ -977,4 +974,95 @@ void __init setup_arch(char **cmdline_p)
977#endif 974#endif
978} 975}
979 976
977#ifdef CONFIG_X86_32
980 978
979/**
980 * x86_quirk_pre_intr_init - initialisation prior to setting up interrupt vectors
981 *
982 * Description:
983 * Perform any necessary interrupt initialisation prior to setting up
984 * the "ordinary" interrupt call gates. For legacy reasons, the ISA
985 * interrupts should be initialised here if the machine emulates a PC
986 * in any way.
987 **/
988void __init x86_quirk_pre_intr_init(void)
989{
990 if (x86_quirks->arch_pre_intr_init) {
991 if (x86_quirks->arch_pre_intr_init())
992 return;
993 }
994 init_ISA_irqs();
995}
996
997/**
998 * x86_quirk_intr_init - post gate setup interrupt initialisation
999 *
1000 * Description:
1001 * Fill in any interrupts that may have been left out by the general
1002 * init_IRQ() routine. interrupts having to do with the machine rather
1003 * than the devices on the I/O bus (like APIC interrupts in intel MP
1004 * systems) are started here.
1005 **/
1006void __init x86_quirk_intr_init(void)
1007{
1008 if (x86_quirks->arch_intr_init) {
1009 if (x86_quirks->arch_intr_init())
1010 return;
1011 }
1012}
1013
1014/**
1015 * x86_quirk_trap_init - initialise system specific traps
1016 *
1017 * Description:
1018 * Called as the final act of trap_init(). Used in VISWS to initialise
1019 * the various board specific APIC traps.
1020 **/
1021void __init x86_quirk_trap_init(void)
1022{
1023 if (x86_quirks->arch_trap_init) {
1024 if (x86_quirks->arch_trap_init())
1025 return;
1026 }
1027}
1028
1029static struct irqaction irq0 = {
1030 .handler = timer_interrupt,
1031 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_IRQPOLL | IRQF_TIMER,
1032 .mask = CPU_MASK_NONE,
1033 .name = "timer"
1034};
1035
1036/**
1037 * x86_quirk_pre_time_init - do any specific initialisations before.
1038 *
1039 **/
1040void __init x86_quirk_pre_time_init(void)
1041{
1042 if (x86_quirks->arch_pre_time_init)
1043 x86_quirks->arch_pre_time_init();
1044}
1045
1046/**
1047 * x86_quirk_time_init - do any specific initialisations for the system timer.
1048 *
1049 * Description:
1050 * Must plug the system timer interrupt source at HZ into the IRQ listed
1051 * in irq_vectors.h:TIMER_IRQ
1052 **/
1053void __init x86_quirk_time_init(void)
1054{
1055 if (x86_quirks->arch_time_init) {
1056 /*
1057 * A nonzero return code does not mean failure, it means
1058 * that the architecture quirk does not want any
1059 * generic (timer) setup to be performed after this:
1060 */
1061 if (x86_quirks->arch_time_init())
1062 return;
1063 }
1064
1065 irq0.mask = cpumask_of_cpu(0);
1066 setup_irq(0, &irq0);
1067}
1068#endif /* CONFIG_X86_32 */
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
index 55c46074eba0..efa615f2bf43 100644
--- a/arch/x86/kernel/setup_percpu.c
+++ b/arch/x86/kernel/setup_percpu.c
@@ -7,402 +7,482 @@
7#include <linux/crash_dump.h> 7#include <linux/crash_dump.h>
8#include <linux/smp.h> 8#include <linux/smp.h>
9#include <linux/topology.h> 9#include <linux/topology.h>
10#include <linux/pfn.h>
10#include <asm/sections.h> 11#include <asm/sections.h>
11#include <asm/processor.h> 12#include <asm/processor.h>
12#include <asm/setup.h> 13#include <asm/setup.h>
13#include <asm/mpspec.h> 14#include <asm/mpspec.h>
14#include <asm/apicdef.h> 15#include <asm/apicdef.h>
15#include <asm/highmem.h> 16#include <asm/highmem.h>
17#include <asm/proto.h>
18#include <asm/cpumask.h>
19#include <asm/cpu.h>
20#include <asm/stackprotector.h>
16 21
17#ifdef CONFIG_X86_LOCAL_APIC 22#ifdef CONFIG_DEBUG_PER_CPU_MAPS
18unsigned int num_processors; 23# define DBG(x...) printk(KERN_DEBUG x)
19unsigned disabled_cpus __cpuinitdata; 24#else
20/* Processor that is doing the boot up */ 25# define DBG(x...)
21unsigned int boot_cpu_physical_apicid = -1U;
22EXPORT_SYMBOL(boot_cpu_physical_apicid);
23unsigned int max_physical_apicid;
24
25/* Bitmask of physically existing CPUs */
26physid_mask_t phys_cpu_present_map;
27#endif 26#endif
28 27
29/* map cpu index to physical APIC ID */ 28DEFINE_PER_CPU(int, cpu_number);
30DEFINE_EARLY_PER_CPU(u16, x86_cpu_to_apicid, BAD_APICID); 29EXPORT_PER_CPU_SYMBOL(cpu_number);
31DEFINE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid, BAD_APICID);
32EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_apicid);
33EXPORT_EARLY_PER_CPU_SYMBOL(x86_bios_cpu_apicid);
34
35#if defined(CONFIG_NUMA) && defined(CONFIG_X86_64)
36#define X86_64_NUMA 1
37 30
38/* map cpu index to node index */ 31#ifdef CONFIG_X86_64
39DEFINE_EARLY_PER_CPU(int, x86_cpu_to_node_map, NUMA_NO_NODE); 32#define BOOT_PERCPU_OFFSET ((unsigned long)__per_cpu_load)
40EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_node_map); 33#else
34#define BOOT_PERCPU_OFFSET 0
35#endif
41 36
42/* which logical CPUs are on which nodes */ 37DEFINE_PER_CPU(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET;
43cpumask_t *node_to_cpumask_map; 38EXPORT_PER_CPU_SYMBOL(this_cpu_off);
44EXPORT_SYMBOL(node_to_cpumask_map);
45 39
46/* setup node_to_cpumask_map */ 40unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = {
47static void __init setup_node_to_cpumask_map(void); 41 [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET,
42};
43EXPORT_SYMBOL(__per_cpu_offset);
48 44
45/*
46 * On x86_64 symbols referenced from code should be reachable using
47 * 32bit relocations. Reserve space for static percpu variables in
48 * modules so that they are always served from the first chunk which
49 * is located at the percpu segment base. On x86_32, anything can
50 * address anywhere. No need to reserve space in the first chunk.
51 */
52#ifdef CONFIG_X86_64
53#define PERCPU_FIRST_CHUNK_RESERVE PERCPU_MODULE_RESERVE
49#else 54#else
50static inline void setup_node_to_cpumask_map(void) { } 55#define PERCPU_FIRST_CHUNK_RESERVE 0
51#endif 56#endif
52 57
53#if defined(CONFIG_HAVE_SETUP_PER_CPU_AREA) && defined(CONFIG_X86_SMP) 58/**
54/* 59 * pcpu_need_numa - determine percpu allocation needs to consider NUMA
55 * Copy data used in early init routines from the initial arrays to the 60 *
56 * per cpu data areas. These arrays then become expendable and the 61 * If NUMA is not configured or there is only one NUMA node available,
57 * *_early_ptr's are zeroed indicating that the static arrays are gone. 62 * there is no reason to consider NUMA. This function determines
63 * whether percpu allocation should consider NUMA or not.
64 *
65 * RETURNS:
66 * true if NUMA should be considered; otherwise, false.
58 */ 67 */
59static void __init setup_per_cpu_maps(void) 68static bool __init pcpu_need_numa(void)
60{ 69{
61 int cpu; 70#ifdef CONFIG_NEED_MULTIPLE_NODES
71 pg_data_t *last = NULL;
72 unsigned int cpu;
62 73
63 for_each_possible_cpu(cpu) { 74 for_each_possible_cpu(cpu) {
64 per_cpu(x86_cpu_to_apicid, cpu) = 75 int node = early_cpu_to_node(cpu);
65 early_per_cpu_map(x86_cpu_to_apicid, cpu);
66 per_cpu(x86_bios_cpu_apicid, cpu) =
67 early_per_cpu_map(x86_bios_cpu_apicid, cpu);
68#ifdef X86_64_NUMA
69 per_cpu(x86_cpu_to_node_map, cpu) =
70 early_per_cpu_map(x86_cpu_to_node_map, cpu);
71#endif
72 }
73 76
74 /* indicate the early static arrays will soon be gone */ 77 if (node_online(node) && NODE_DATA(node) &&
75 early_per_cpu_ptr(x86_cpu_to_apicid) = NULL; 78 last && last != NODE_DATA(node))
76 early_per_cpu_ptr(x86_bios_cpu_apicid) = NULL; 79 return true;
77#ifdef X86_64_NUMA 80
78 early_per_cpu_ptr(x86_cpu_to_node_map) = NULL; 81 last = NODE_DATA(node);
82 }
79#endif 83#endif
84 return false;
80} 85}
81 86
82#ifdef CONFIG_X86_32 87/**
83/* 88 * pcpu_alloc_bootmem - NUMA friendly alloc_bootmem wrapper for percpu
84 * Great future not-so-futuristic plan: make i386 and x86_64 do it 89 * @cpu: cpu to allocate for
85 * the same way 90 * @size: size allocation in bytes
86 */ 91 * @align: alignment
87unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; 92 *
88EXPORT_SYMBOL(__per_cpu_offset); 93 * Allocate @size bytes aligned at @align for cpu @cpu. This wrapper
89static inline void setup_cpu_pda_map(void) { } 94 * does the right thing for NUMA regardless of the current
90 95 * configuration.
91#elif !defined(CONFIG_SMP) 96 *
92static inline void setup_cpu_pda_map(void) { } 97 * RETURNS:
93 98 * Pointer to the allocated area on success, NULL on failure.
94#else /* CONFIG_SMP && CONFIG_X86_64 */
95
96/*
97 * Allocate cpu_pda pointer table and array via alloc_bootmem.
98 */ 99 */
99static void __init setup_cpu_pda_map(void) 100static void * __init pcpu_alloc_bootmem(unsigned int cpu, unsigned long size,
101 unsigned long align)
100{ 102{
101 char *pda; 103 const unsigned long goal = __pa(MAX_DMA_ADDRESS);
102 struct x8664_pda **new_cpu_pda; 104#ifdef CONFIG_NEED_MULTIPLE_NODES
103 unsigned long size; 105 int node = early_cpu_to_node(cpu);
104 int cpu; 106 void *ptr;
105 107
106 size = roundup(sizeof(struct x8664_pda), cache_line_size()); 108 if (!node_online(node) || !NODE_DATA(node)) {
107 109 ptr = __alloc_bootmem_nopanic(size, align, goal);
108 /* allocate cpu_pda array and pointer table */ 110 pr_info("cpu %d has no node %d or node-local memory\n",
109 { 111 cpu, node);
110 unsigned long tsize = nr_cpu_ids * sizeof(void *); 112 pr_debug("per cpu data for cpu%d %lu bytes at %016lx\n",
111 unsigned long asize = size * (nr_cpu_ids - 1); 113 cpu, size, __pa(ptr));
112 114 } else {
113 tsize = roundup(tsize, cache_line_size()); 115 ptr = __alloc_bootmem_node_nopanic(NODE_DATA(node),
114 new_cpu_pda = alloc_bootmem(tsize + asize); 116 size, align, goal);
115 pda = (char *)new_cpu_pda + tsize; 117 pr_debug("per cpu data for cpu%d %lu bytes on node%d at "
118 "%016lx\n", cpu, size, node, __pa(ptr));
116 } 119 }
117 120 return ptr;
118 /* initialize pointer table to static pda's */ 121#else
119 for_each_possible_cpu(cpu) { 122 return __alloc_bootmem_nopanic(size, align, goal);
120 if (cpu == 0) { 123#endif
121 /* leave boot cpu pda in place */
122 new_cpu_pda[0] = cpu_pda(0);
123 continue;
124 }
125 new_cpu_pda[cpu] = (struct x8664_pda *)pda;
126 new_cpu_pda[cpu]->in_bootmem = 1;
127 pda += size;
128 }
129
130 /* point to new pointer table */
131 _cpu_pda = new_cpu_pda;
132} 124}
133 125
134#endif /* CONFIG_SMP && CONFIG_X86_64 */ 126/*
135 127 * Remap allocator
136#ifdef CONFIG_X86_64 128 *
129 * This allocator uses PMD page as unit. A PMD page is allocated for
130 * each cpu and each is remapped into vmalloc area using PMD mapping.
131 * As PMD page is quite large, only part of it is used for the first
132 * chunk. Unused part is returned to the bootmem allocator.
133 *
134 * So, the PMD pages are mapped twice - once to the physical mapping
135 * and to the vmalloc area for the first percpu chunk. The double
136 * mapping does add one more PMD TLB entry pressure but still is much
137 * better than only using 4k mappings while still being NUMA friendly.
138 */
139#ifdef CONFIG_NEED_MULTIPLE_NODES
140static size_t pcpur_size __initdata;
141static void **pcpur_ptrs __initdata;
137 142
138/* correctly size the local cpu masks */ 143static struct page * __init pcpur_get_page(unsigned int cpu, int pageno)
139static void setup_cpu_local_masks(void)
140{ 144{
141 alloc_bootmem_cpumask_var(&cpu_initialized_mask); 145 size_t off = (size_t)pageno << PAGE_SHIFT;
142 alloc_bootmem_cpumask_var(&cpu_callin_mask);
143 alloc_bootmem_cpumask_var(&cpu_callout_mask);
144 alloc_bootmem_cpumask_var(&cpu_sibling_setup_mask);
145}
146 146
147#else /* CONFIG_X86_32 */ 147 if (off >= pcpur_size)
148 return NULL;
148 149
149static inline void setup_cpu_local_masks(void) 150 return virt_to_page(pcpur_ptrs[cpu] + off);
150{
151} 151}
152 152
153#endif /* CONFIG_X86_32 */ 153static ssize_t __init setup_pcpu_remap(size_t static_size)
154
155/*
156 * Great future plan:
157 * Declare PDA itself and support (irqstack,tss,pgd) as per cpu data.
158 * Always point %gs to its beginning
159 */
160void __init setup_per_cpu_areas(void)
161{ 154{
162 ssize_t size, old_size; 155 static struct vm_struct vm;
163 char *ptr; 156 pg_data_t *last;
164 int cpu; 157 size_t ptrs_size, dyn_size;
165 unsigned long align = 1; 158 unsigned int cpu;
166 159 ssize_t ret;
167 /* Setup cpu_pda map */ 160
168 setup_cpu_pda_map(); 161 /*
162 * If large page isn't supported, there's no benefit in doing
163 * this. Also, on non-NUMA, embedding is better.
164 */
165 if (!cpu_has_pse || pcpu_need_numa())
166 return -EINVAL;
167
168 last = NULL;
169 for_each_possible_cpu(cpu) {
170 int node = early_cpu_to_node(cpu);
169 171
170 /* Copy section for each CPU (we discard the original) */ 172 if (node_online(node) && NODE_DATA(node) &&
171 old_size = PERCPU_ENOUGH_ROOM; 173 last && last != NODE_DATA(node))
172 align = max_t(unsigned long, PAGE_SIZE, align); 174 goto proceed;
173 size = roundup(old_size, align);
174 175
175 pr_info("NR_CPUS:%d nr_cpumask_bits:%d nr_cpu_ids:%d nr_node_ids:%d\n", 176 last = NODE_DATA(node);
176 NR_CPUS, nr_cpumask_bits, nr_cpu_ids, nr_node_ids); 177 }
178 return -EINVAL;
179
180proceed:
181 /*
182 * Currently supports only single page. Supporting multiple
183 * pages won't be too difficult if it ever becomes necessary.
184 */
185 pcpur_size = PFN_ALIGN(static_size + PERCPU_MODULE_RESERVE +
186 PERCPU_DYNAMIC_RESERVE);
187 if (pcpur_size > PMD_SIZE) {
188 pr_warning("PERCPU: static data is larger than large page, "
189 "can't use large page\n");
190 return -EINVAL;
191 }
192 dyn_size = pcpur_size - static_size - PERCPU_FIRST_CHUNK_RESERVE;
177 193
178 pr_info("PERCPU: Allocating %zd bytes of per cpu data\n", size); 194 /* allocate pointer array and alloc large pages */
195 ptrs_size = PFN_ALIGN(num_possible_cpus() * sizeof(pcpur_ptrs[0]));
196 pcpur_ptrs = alloc_bootmem(ptrs_size);
179 197
180 for_each_possible_cpu(cpu) { 198 for_each_possible_cpu(cpu) {
181#ifndef CONFIG_NEED_MULTIPLE_NODES 199 pcpur_ptrs[cpu] = pcpu_alloc_bootmem(cpu, PMD_SIZE, PMD_SIZE);
182 ptr = __alloc_bootmem(size, align, 200 if (!pcpur_ptrs[cpu])
183 __pa(MAX_DMA_ADDRESS)); 201 goto enomem;
184#else 202
185 int node = early_cpu_to_node(cpu); 203 /*
186 if (!node_online(node) || !NODE_DATA(node)) { 204 * Only use pcpur_size bytes and give back the rest.
187 ptr = __alloc_bootmem(size, align, 205 *
188 __pa(MAX_DMA_ADDRESS)); 206 * Ingo: The 2MB up-rounding bootmem is needed to make
189 pr_info("cpu %d has no node %d or node-local memory\n", 207 * sure the partial 2MB page is still fully RAM - it's
190 cpu, node); 208 * not well-specified to have a PAT-incompatible area
191 pr_debug("per cpu data for cpu%d at %016lx\n", 209 * (unmapped RAM, device memory, etc.) in that hole.
192 cpu, __pa(ptr)); 210 */
193 } else { 211 free_bootmem(__pa(pcpur_ptrs[cpu] + pcpur_size),
194 ptr = __alloc_bootmem_node(NODE_DATA(node), size, align, 212 PMD_SIZE - pcpur_size);
195 __pa(MAX_DMA_ADDRESS)); 213
196 pr_debug("per cpu data for cpu%d on node%d at %016lx\n", 214 memcpy(pcpur_ptrs[cpu], __per_cpu_load, static_size);
197 cpu, node, __pa(ptr));
198 }
199#endif
200 per_cpu_offset(cpu) = ptr - __per_cpu_start;
201 memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start);
202 } 215 }
203 216
204 /* Setup percpu data maps */ 217 /* allocate address and map */
205 setup_per_cpu_maps(); 218 vm.flags = VM_ALLOC;
219 vm.size = num_possible_cpus() * PMD_SIZE;
220 vm_area_register_early(&vm, PMD_SIZE);
206 221
207 /* Setup node to cpumask map */ 222 for_each_possible_cpu(cpu) {
208 setup_node_to_cpumask_map(); 223 pmd_t *pmd;
209 224
210 /* Setup cpu initialized, callin, callout masks */ 225 pmd = populate_extra_pmd((unsigned long)vm.addr
211 setup_cpu_local_masks(); 226 + cpu * PMD_SIZE);
212} 227 set_pmd(pmd, pfn_pmd(page_to_pfn(virt_to_page(pcpur_ptrs[cpu])),
228 PAGE_KERNEL_LARGE));
229 }
213 230
231 /* we're ready, commit */
232 pr_info("PERCPU: Remapped at %p with large pages, static data "
233 "%zu bytes\n", vm.addr, static_size);
234
235 ret = pcpu_setup_first_chunk(pcpur_get_page, static_size,
236 PERCPU_FIRST_CHUNK_RESERVE,
237 PMD_SIZE, dyn_size, vm.addr, NULL);
238 goto out_free_ar;
239
240enomem:
241 for_each_possible_cpu(cpu)
242 if (pcpur_ptrs[cpu])
243 free_bootmem(__pa(pcpur_ptrs[cpu]), PMD_SIZE);
244 ret = -ENOMEM;
245out_free_ar:
246 free_bootmem(__pa(pcpur_ptrs), ptrs_size);
247 return ret;
248}
249#else
250static ssize_t __init setup_pcpu_remap(size_t static_size)
251{
252 return -EINVAL;
253}
214#endif 254#endif
215 255
216#ifdef X86_64_NUMA
217
218/* 256/*
219 * Allocate node_to_cpumask_map based on number of available nodes 257 * Embedding allocator
220 * Requires node_possible_map to be valid.
221 * 258 *
222 * Note: node_to_cpumask() is not valid until after this is done. 259 * The first chunk is sized to just contain the static area plus
260 * module and dynamic reserves, and allocated as a contiguous area
261 * using bootmem allocator and used as-is without being mapped into
262 * vmalloc area. This enables the first chunk to piggy back on the
263 * linear physical PMD mapping and doesn't add any additional pressure
264 * to TLB. Note that if the needed size is smaller than the minimum
265 * unit size, the leftover is returned to the bootmem allocator.
223 */ 266 */
224static void __init setup_node_to_cpumask_map(void) 267static void *pcpue_ptr __initdata;
225{ 268static size_t pcpue_size __initdata;
226 unsigned int node, num = 0; 269static size_t pcpue_unit_size __initdata;
227 cpumask_t *map;
228
229 /* setup nr_node_ids if not done yet */
230 if (nr_node_ids == MAX_NUMNODES) {
231 for_each_node_mask(node, node_possible_map)
232 num = node;
233 nr_node_ids = num + 1;
234 }
235 270
236 /* allocate the map */ 271static struct page * __init pcpue_get_page(unsigned int cpu, int pageno)
237 map = alloc_bootmem_low(nr_node_ids * sizeof(cpumask_t)); 272{
273 size_t off = (size_t)pageno << PAGE_SHIFT;
238 274
239 pr_debug("Node to cpumask map at %p for %d nodes\n", 275 if (off >= pcpue_size)
240 map, nr_node_ids); 276 return NULL;
241 277
242 /* node_to_cpumask() will now work */ 278 return virt_to_page(pcpue_ptr + cpu * pcpue_unit_size + off);
243 node_to_cpumask_map = map;
244} 279}
245 280
246void __cpuinit numa_set_node(int cpu, int node) 281static ssize_t __init setup_pcpu_embed(size_t static_size)
247{ 282{
248 int *cpu_to_node_map = early_per_cpu_ptr(x86_cpu_to_node_map); 283 unsigned int cpu;
249 284 size_t dyn_size;
250 if (cpu_pda(cpu) && node != NUMA_NO_NODE) 285
251 cpu_pda(cpu)->nodenumber = node; 286 /*
287 * If large page isn't supported, there's no benefit in doing
288 * this. Also, embedding allocation doesn't play well with
289 * NUMA.
290 */
291 if (!cpu_has_pse || pcpu_need_numa())
292 return -EINVAL;
293
294 /* allocate and copy */
295 pcpue_size = PFN_ALIGN(static_size + PERCPU_MODULE_RESERVE +
296 PERCPU_DYNAMIC_RESERVE);
297 pcpue_unit_size = max_t(size_t, pcpue_size, PCPU_MIN_UNIT_SIZE);
298 dyn_size = pcpue_size - static_size - PERCPU_FIRST_CHUNK_RESERVE;
299
300 pcpue_ptr = pcpu_alloc_bootmem(0, num_possible_cpus() * pcpue_unit_size,
301 PAGE_SIZE);
302 if (!pcpue_ptr)
303 return -ENOMEM;
252 304
253 if (cpu_to_node_map) 305 for_each_possible_cpu(cpu) {
254 cpu_to_node_map[cpu] = node; 306 void *ptr = pcpue_ptr + cpu * pcpue_unit_size;
255 307
256 else if (per_cpu_offset(cpu)) 308 free_bootmem(__pa(ptr + pcpue_size),
257 per_cpu(x86_cpu_to_node_map, cpu) = node; 309 pcpue_unit_size - pcpue_size);
310 memcpy(ptr, __per_cpu_load, static_size);
311 }
258 312
259 else 313 /* we're ready, commit */
260 pr_debug("Setting node for non-present cpu %d\n", cpu); 314 pr_info("PERCPU: Embedded %zu pages at %p, static data %zu bytes\n",
261} 315 pcpue_size >> PAGE_SHIFT, pcpue_ptr, static_size);
262 316
263void __cpuinit numa_clear_node(int cpu) 317 return pcpu_setup_first_chunk(pcpue_get_page, static_size,
264{ 318 PERCPU_FIRST_CHUNK_RESERVE,
265 numa_set_node(cpu, NUMA_NO_NODE); 319 pcpue_unit_size, dyn_size,
320 pcpue_ptr, NULL);
266} 321}
267 322
268#ifndef CONFIG_DEBUG_PER_CPU_MAPS 323/*
324 * 4k page allocator
325 *
326 * This is the basic allocator. Static percpu area is allocated
327 * page-by-page and most of initialization is done by the generic
328 * setup function.
329 */
330static struct page **pcpu4k_pages __initdata;
331static int pcpu4k_nr_static_pages __initdata;
269 332
270void __cpuinit numa_add_cpu(int cpu) 333static struct page * __init pcpu4k_get_page(unsigned int cpu, int pageno)
271{ 334{
272 cpu_set(cpu, node_to_cpumask_map[early_cpu_to_node(cpu)]); 335 if (pageno < pcpu4k_nr_static_pages)
336 return pcpu4k_pages[cpu * pcpu4k_nr_static_pages + pageno];
337 return NULL;
273} 338}
274 339
275void __cpuinit numa_remove_cpu(int cpu) 340static void __init pcpu4k_populate_pte(unsigned long addr)
276{ 341{
277 cpu_clear(cpu, node_to_cpumask_map[cpu_to_node(cpu)]); 342 populate_extra_pte(addr);
278} 343}
279 344
280#else /* CONFIG_DEBUG_PER_CPU_MAPS */ 345static ssize_t __init setup_pcpu_4k(size_t static_size)
281
282/*
283 * --------- debug versions of the numa functions ---------
284 */
285static void __cpuinit numa_set_cpumask(int cpu, int enable)
286{ 346{
287 int node = cpu_to_node(cpu); 347 size_t pages_size;
288 cpumask_t *mask; 348 unsigned int cpu;
289 char buf[64]; 349 int i, j;
290 350 ssize_t ret;
291 if (node_to_cpumask_map == NULL) { 351
292 printk(KERN_ERR "node_to_cpumask_map NULL\n"); 352 pcpu4k_nr_static_pages = PFN_UP(static_size);
293 dump_stack(); 353
294 return; 354 /* unaligned allocations can't be freed, round up to page size */
295 } 355 pages_size = PFN_ALIGN(pcpu4k_nr_static_pages * num_possible_cpus()
296 356 * sizeof(pcpu4k_pages[0]));
297 mask = &node_to_cpumask_map[node]; 357 pcpu4k_pages = alloc_bootmem(pages_size);
298 if (enable) 358
299 cpu_set(cpu, *mask); 359 /* allocate and copy */
300 else 360 j = 0;
301 cpu_clear(cpu, *mask); 361 for_each_possible_cpu(cpu)
302 362 for (i = 0; i < pcpu4k_nr_static_pages; i++) {
303 cpulist_scnprintf(buf, sizeof(buf), mask); 363 void *ptr;
304 printk(KERN_DEBUG "%s cpu %d node %d: mask now %s\n", 364
305 enable ? "numa_add_cpu" : "numa_remove_cpu", cpu, node, buf); 365 ptr = pcpu_alloc_bootmem(cpu, PAGE_SIZE, PAGE_SIZE);
306} 366 if (!ptr)
367 goto enomem;
368
369 memcpy(ptr, __per_cpu_load + i * PAGE_SIZE, PAGE_SIZE);
370 pcpu4k_pages[j++] = virt_to_page(ptr);
371 }
307 372
308void __cpuinit numa_add_cpu(int cpu) 373 /* we're ready, commit */
309{ 374 pr_info("PERCPU: Allocated %d 4k pages, static data %zu bytes\n",
310 numa_set_cpumask(cpu, 1); 375 pcpu4k_nr_static_pages, static_size);
376
377 ret = pcpu_setup_first_chunk(pcpu4k_get_page, static_size,
378 PERCPU_FIRST_CHUNK_RESERVE, -1, -1, NULL,
379 pcpu4k_populate_pte);
380 goto out_free_ar;
381
382enomem:
383 while (--j >= 0)
384 free_bootmem(__pa(page_address(pcpu4k_pages[j])), PAGE_SIZE);
385 ret = -ENOMEM;
386out_free_ar:
387 free_bootmem(__pa(pcpu4k_pages), pages_size);
388 return ret;
311} 389}
312 390
313void __cpuinit numa_remove_cpu(int cpu) 391static inline void setup_percpu_segment(int cpu)
314{ 392{
315 numa_set_cpumask(cpu, 0); 393#ifdef CONFIG_X86_32
316} 394 struct desc_struct gdt;
317 395
318int cpu_to_node(int cpu) 396 pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF,
319{ 397 0x2 | DESCTYPE_S, 0x8);
320 if (early_per_cpu_ptr(x86_cpu_to_node_map)) { 398 gdt.s = 1;
321 printk(KERN_WARNING 399 write_gdt_entry(get_cpu_gdt_table(cpu),
322 "cpu_to_node(%d): usage too early!\n", cpu); 400 GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
323 dump_stack(); 401#endif
324 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
325 }
326 return per_cpu(x86_cpu_to_node_map, cpu);
327} 402}
328EXPORT_SYMBOL(cpu_to_node);
329 403
330/* 404/*
331 * Same function as cpu_to_node() but used if called before the 405 * Great future plan:
332 * per_cpu areas are setup. 406 * Declare PDA itself and support (irqstack,tss,pgd) as per cpu data.
407 * Always point %gs to its beginning
333 */ 408 */
334int early_cpu_to_node(int cpu) 409void __init setup_per_cpu_areas(void)
335{ 410{
336 if (early_per_cpu_ptr(x86_cpu_to_node_map)) 411 size_t static_size = __per_cpu_end - __per_cpu_start;
337 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu]; 412 unsigned int cpu;
338 413 unsigned long delta;
339 if (!per_cpu_offset(cpu)) { 414 size_t pcpu_unit_size;
340 printk(KERN_WARNING 415 ssize_t ret;
341 "early_cpu_to_node(%d): no per_cpu area!\n", cpu);
342 dump_stack();
343 return NUMA_NO_NODE;
344 }
345 return per_cpu(x86_cpu_to_node_map, cpu);
346}
347
348
349/* empty cpumask */
350static const cpumask_t cpu_mask_none;
351 416
352/* 417 pr_info("NR_CPUS:%d nr_cpumask_bits:%d nr_cpu_ids:%d nr_node_ids:%d\n",
353 * Returns a pointer to the bitmask of CPUs on Node 'node'. 418 NR_CPUS, nr_cpumask_bits, nr_cpu_ids, nr_node_ids);
354 */
355const cpumask_t *cpumask_of_node(int node)
356{
357 if (node_to_cpumask_map == NULL) {
358 printk(KERN_WARNING
359 "cpumask_of_node(%d): no node_to_cpumask_map!\n",
360 node);
361 dump_stack();
362 return (const cpumask_t *)&cpu_online_map;
363 }
364 if (node >= nr_node_ids) {
365 printk(KERN_WARNING
366 "cpumask_of_node(%d): node > nr_node_ids(%d)\n",
367 node, nr_node_ids);
368 dump_stack();
369 return &cpu_mask_none;
370 }
371 return &node_to_cpumask_map[node];
372}
373EXPORT_SYMBOL(cpumask_of_node);
374 419
375/* 420 /*
376 * Returns a bitmask of CPUs on Node 'node'. 421 * Allocate percpu area. If PSE is supported, try to make use
377 * 422 * of large page mappings. Please read comments on top of
378 * Side note: this function creates the returned cpumask on the stack 423 * each allocator for details.
379 * so with a high NR_CPUS count, excessive stack space is used. The 424 */
380 * node_to_cpumask_ptr function should be used whenever possible. 425 ret = setup_pcpu_remap(static_size);
381 */ 426 if (ret < 0)
382cpumask_t node_to_cpumask(int node) 427 ret = setup_pcpu_embed(static_size);
383{ 428 if (ret < 0)
384 if (node_to_cpumask_map == NULL) { 429 ret = setup_pcpu_4k(static_size);
385 printk(KERN_WARNING 430 if (ret < 0)
386 "node_to_cpumask(%d): no node_to_cpumask_map!\n", node); 431 panic("cannot allocate static percpu area (%zu bytes, err=%zd)",
387 dump_stack(); 432 static_size, ret);
388 return cpu_online_map; 433
389 } 434 pcpu_unit_size = ret;
390 if (node >= nr_node_ids) { 435
391 printk(KERN_WARNING 436 /* alrighty, percpu areas up and running */
392 "node_to_cpumask(%d): node > nr_node_ids(%d)\n", 437 delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start;
393 node, nr_node_ids); 438 for_each_possible_cpu(cpu) {
394 dump_stack(); 439 per_cpu_offset(cpu) = delta + cpu * pcpu_unit_size;
395 return cpu_mask_none; 440 per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
441 per_cpu(cpu_number, cpu) = cpu;
442 setup_percpu_segment(cpu);
443 setup_stack_canary_segment(cpu);
444 /*
445 * Copy data used in early init routines from the
446 * initial arrays to the per cpu data areas. These
447 * arrays then become expendable and the *_early_ptr's
448 * are zeroed indicating that the static arrays are
449 * gone.
450 */
451#ifdef CONFIG_X86_LOCAL_APIC
452 per_cpu(x86_cpu_to_apicid, cpu) =
453 early_per_cpu_map(x86_cpu_to_apicid, cpu);
454 per_cpu(x86_bios_cpu_apicid, cpu) =
455 early_per_cpu_map(x86_bios_cpu_apicid, cpu);
456#endif
457#ifdef CONFIG_X86_64
458 per_cpu(irq_stack_ptr, cpu) =
459 per_cpu(irq_stack_union.irq_stack, cpu) +
460 IRQ_STACK_SIZE - 64;
461#ifdef CONFIG_NUMA
462 per_cpu(x86_cpu_to_node_map, cpu) =
463 early_per_cpu_map(x86_cpu_to_node_map, cpu);
464#endif
465#endif
466 /*
467 * Up to this point, the boot CPU has been using .data.init
468 * area. Reload any changed state for the boot CPU.
469 */
470 if (cpu == boot_cpu_id)
471 switch_to_new_gdt(cpu);
396 } 472 }
397 return node_to_cpumask_map[node];
398}
399EXPORT_SYMBOL(node_to_cpumask);
400
401/*
402 * --------- end of debug versions of the numa functions ---------
403 */
404 473
405#endif /* CONFIG_DEBUG_PER_CPU_MAPS */ 474 /* indicate the early static arrays will soon be gone */
475#ifdef CONFIG_X86_LOCAL_APIC
476 early_per_cpu_ptr(x86_cpu_to_apicid) = NULL;
477 early_per_cpu_ptr(x86_bios_cpu_apicid) = NULL;
478#endif
479#if defined(CONFIG_X86_64) && defined(CONFIG_NUMA)
480 early_per_cpu_ptr(x86_cpu_to_node_map) = NULL;
481#endif
406 482
407#endif /* X86_64_NUMA */ 483 /* Setup node to cpumask map */
484 setup_node_to_cpumask_map();
408 485
486 /* Setup cpu initialized, callin, callout masks */
487 setup_cpu_local_masks();
488}
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index 89bb7668041d..d2cc6428c587 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -50,27 +50,23 @@
50# define FIX_EFLAGS __FIX_EFLAGS 50# define FIX_EFLAGS __FIX_EFLAGS
51#endif 51#endif
52 52
53#define COPY(x) { \ 53#define COPY(x) do { \
54 err |= __get_user(regs->x, &sc->x); \ 54 get_user_ex(regs->x, &sc->x); \
55} 55} while (0)
56 56
57#define COPY_SEG(seg) { \ 57#define GET_SEG(seg) ({ \
58 unsigned short tmp; \ 58 unsigned short tmp; \
59 err |= __get_user(tmp, &sc->seg); \ 59 get_user_ex(tmp, &sc->seg); \
60 regs->seg = tmp; \ 60 tmp; \
61} 61})
62 62
63#define COPY_SEG_CPL3(seg) { \ 63#define COPY_SEG(seg) do { \
64 unsigned short tmp; \ 64 regs->seg = GET_SEG(seg); \
65 err |= __get_user(tmp, &sc->seg); \ 65} while (0)
66 regs->seg = tmp | 3; \
67}
68 66
69#define GET_SEG(seg) { \ 67#define COPY_SEG_CPL3(seg) do { \
70 unsigned short tmp; \ 68 regs->seg = GET_SEG(seg) | 3; \
71 err |= __get_user(tmp, &sc->seg); \ 69} while (0)
72 loadsegment(seg, tmp); \
73}
74 70
75static int 71static int
76restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, 72restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
@@ -83,45 +79,49 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
83 /* Always make any pending restarted system calls return -EINTR */ 79 /* Always make any pending restarted system calls return -EINTR */
84 current_thread_info()->restart_block.fn = do_no_restart_syscall; 80 current_thread_info()->restart_block.fn = do_no_restart_syscall;
85 81
82 get_user_try {
83
86#ifdef CONFIG_X86_32 84#ifdef CONFIG_X86_32
87 GET_SEG(gs); 85 set_user_gs(regs, GET_SEG(gs));
88 COPY_SEG(fs); 86 COPY_SEG(fs);
89 COPY_SEG(es); 87 COPY_SEG(es);
90 COPY_SEG(ds); 88 COPY_SEG(ds);
91#endif /* CONFIG_X86_32 */ 89#endif /* CONFIG_X86_32 */
92 90
93 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx); 91 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx);
94 COPY(dx); COPY(cx); COPY(ip); 92 COPY(dx); COPY(cx); COPY(ip);
95 93
96#ifdef CONFIG_X86_64 94#ifdef CONFIG_X86_64
97 COPY(r8); 95 COPY(r8);
98 COPY(r9); 96 COPY(r9);
99 COPY(r10); 97 COPY(r10);
100 COPY(r11); 98 COPY(r11);
101 COPY(r12); 99 COPY(r12);
102 COPY(r13); 100 COPY(r13);
103 COPY(r14); 101 COPY(r14);
104 COPY(r15); 102 COPY(r15);
105#endif /* CONFIG_X86_64 */ 103#endif /* CONFIG_X86_64 */
106 104
107#ifdef CONFIG_X86_32 105#ifdef CONFIG_X86_32
108 COPY_SEG_CPL3(cs); 106 COPY_SEG_CPL3(cs);
109 COPY_SEG_CPL3(ss); 107 COPY_SEG_CPL3(ss);
110#else /* !CONFIG_X86_32 */ 108#else /* !CONFIG_X86_32 */
111 /* Kernel saves and restores only the CS segment register on signals, 109 /* Kernel saves and restores only the CS segment register on signals,
112 * which is the bare minimum needed to allow mixed 32/64-bit code. 110 * which is the bare minimum needed to allow mixed 32/64-bit code.
113 * App's signal handler can save/restore other segments if needed. */ 111 * App's signal handler can save/restore other segments if needed. */
114 COPY_SEG_CPL3(cs); 112 COPY_SEG_CPL3(cs);
115#endif /* CONFIG_X86_32 */ 113#endif /* CONFIG_X86_32 */
116 114
117 err |= __get_user(tmpflags, &sc->flags); 115 get_user_ex(tmpflags, &sc->flags);
118 regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS); 116 regs->flags = (regs->flags & ~FIX_EFLAGS) | (tmpflags & FIX_EFLAGS);
119 regs->orig_ax = -1; /* disable syscall checks */ 117 regs->orig_ax = -1; /* disable syscall checks */
120 118
121 err |= __get_user(buf, &sc->fpstate); 119 get_user_ex(buf, &sc->fpstate);
122 err |= restore_i387_xstate(buf); 120 err |= restore_i387_xstate(buf);
121
122 get_user_ex(*pax, &sc->ax);
123 } get_user_catch(err);
123 124
124 err |= __get_user(*pax, &sc->ax);
125 return err; 125 return err;
126} 126}
127 127
@@ -131,57 +131,55 @@ setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate,
131{ 131{
132 int err = 0; 132 int err = 0;
133 133
134#ifdef CONFIG_X86_32 134 put_user_try {
135 {
136 unsigned int tmp;
137 135
138 savesegment(gs, tmp); 136#ifdef CONFIG_X86_32
139 err |= __put_user(tmp, (unsigned int __user *)&sc->gs); 137 put_user_ex(get_user_gs(regs), (unsigned int __user *)&sc->gs);
140 } 138 put_user_ex(regs->fs, (unsigned int __user *)&sc->fs);
141 err |= __put_user(regs->fs, (unsigned int __user *)&sc->fs); 139 put_user_ex(regs->es, (unsigned int __user *)&sc->es);
142 err |= __put_user(regs->es, (unsigned int __user *)&sc->es); 140 put_user_ex(regs->ds, (unsigned int __user *)&sc->ds);
143 err |= __put_user(regs->ds, (unsigned int __user *)&sc->ds);
144#endif /* CONFIG_X86_32 */ 141#endif /* CONFIG_X86_32 */
145 142
146 err |= __put_user(regs->di, &sc->di); 143 put_user_ex(regs->di, &sc->di);
147 err |= __put_user(regs->si, &sc->si); 144 put_user_ex(regs->si, &sc->si);
148 err |= __put_user(regs->bp, &sc->bp); 145 put_user_ex(regs->bp, &sc->bp);
149 err |= __put_user(regs->sp, &sc->sp); 146 put_user_ex(regs->sp, &sc->sp);
150 err |= __put_user(regs->bx, &sc->bx); 147 put_user_ex(regs->bx, &sc->bx);
151 err |= __put_user(regs->dx, &sc->dx); 148 put_user_ex(regs->dx, &sc->dx);
152 err |= __put_user(regs->cx, &sc->cx); 149 put_user_ex(regs->cx, &sc->cx);
153 err |= __put_user(regs->ax, &sc->ax); 150 put_user_ex(regs->ax, &sc->ax);
154#ifdef CONFIG_X86_64 151#ifdef CONFIG_X86_64
155 err |= __put_user(regs->r8, &sc->r8); 152 put_user_ex(regs->r8, &sc->r8);
156 err |= __put_user(regs->r9, &sc->r9); 153 put_user_ex(regs->r9, &sc->r9);
157 err |= __put_user(regs->r10, &sc->r10); 154 put_user_ex(regs->r10, &sc->r10);
158 err |= __put_user(regs->r11, &sc->r11); 155 put_user_ex(regs->r11, &sc->r11);
159 err |= __put_user(regs->r12, &sc->r12); 156 put_user_ex(regs->r12, &sc->r12);
160 err |= __put_user(regs->r13, &sc->r13); 157 put_user_ex(regs->r13, &sc->r13);
161 err |= __put_user(regs->r14, &sc->r14); 158 put_user_ex(regs->r14, &sc->r14);
162 err |= __put_user(regs->r15, &sc->r15); 159 put_user_ex(regs->r15, &sc->r15);
163#endif /* CONFIG_X86_64 */ 160#endif /* CONFIG_X86_64 */
164 161
165 err |= __put_user(current->thread.trap_no, &sc->trapno); 162 put_user_ex(current->thread.trap_no, &sc->trapno);
166 err |= __put_user(current->thread.error_code, &sc->err); 163 put_user_ex(current->thread.error_code, &sc->err);
167 err |= __put_user(regs->ip, &sc->ip); 164 put_user_ex(regs->ip, &sc->ip);
168#ifdef CONFIG_X86_32 165#ifdef CONFIG_X86_32
169 err |= __put_user(regs->cs, (unsigned int __user *)&sc->cs); 166 put_user_ex(regs->cs, (unsigned int __user *)&sc->cs);
170 err |= __put_user(regs->flags, &sc->flags); 167 put_user_ex(regs->flags, &sc->flags);
171 err |= __put_user(regs->sp, &sc->sp_at_signal); 168 put_user_ex(regs->sp, &sc->sp_at_signal);
172 err |= __put_user(regs->ss, (unsigned int __user *)&sc->ss); 169 put_user_ex(regs->ss, (unsigned int __user *)&sc->ss);
173#else /* !CONFIG_X86_32 */ 170#else /* !CONFIG_X86_32 */
174 err |= __put_user(regs->flags, &sc->flags); 171 put_user_ex(regs->flags, &sc->flags);
175 err |= __put_user(regs->cs, &sc->cs); 172 put_user_ex(regs->cs, &sc->cs);
176 err |= __put_user(0, &sc->gs); 173 put_user_ex(0, &sc->gs);
177 err |= __put_user(0, &sc->fs); 174 put_user_ex(0, &sc->fs);
178#endif /* CONFIG_X86_32 */ 175#endif /* CONFIG_X86_32 */
179 176
180 err |= __put_user(fpstate, &sc->fpstate); 177 put_user_ex(fpstate, &sc->fpstate);
181 178
182 /* non-iBCS2 extensions.. */ 179 /* non-iBCS2 extensions.. */
183 err |= __put_user(mask, &sc->oldmask); 180 put_user_ex(mask, &sc->oldmask);
184 err |= __put_user(current->thread.cr2, &sc->cr2); 181 put_user_ex(current->thread.cr2, &sc->cr2);
182 } put_user_catch(err);
185 183
186 return err; 184 return err;
187} 185}
@@ -189,40 +187,35 @@ setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate,
189/* 187/*
190 * Set up a signal frame. 188 * Set up a signal frame.
191 */ 189 */
192#ifdef CONFIG_X86_32
193static const struct {
194 u16 poplmovl;
195 u32 val;
196 u16 int80;
197} __attribute__((packed)) retcode = {
198 0xb858, /* popl %eax; movl $..., %eax */
199 __NR_sigreturn,
200 0x80cd, /* int $0x80 */
201};
202
203static const struct {
204 u8 movl;
205 u32 val;
206 u16 int80;
207 u8 pad;
208} __attribute__((packed)) rt_retcode = {
209 0xb8, /* movl $..., %eax */
210 __NR_rt_sigreturn,
211 0x80cd, /* int $0x80 */
212 0
213};
214 190
215/* 191/*
216 * Determine which stack to use.. 192 * Determine which stack to use..
217 */ 193 */
194static unsigned long align_sigframe(unsigned long sp)
195{
196#ifdef CONFIG_X86_32
197 /*
198 * Align the stack pointer according to the i386 ABI,
199 * i.e. so that on function entry ((sp + 4) & 15) == 0.
200 */
201 sp = ((sp + 4) & -16ul) - 4;
202#else /* !CONFIG_X86_32 */
203 sp = round_down(sp, 16) - 8;
204#endif
205 return sp;
206}
207
218static inline void __user * 208static inline void __user *
219get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size, 209get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
220 void **fpstate) 210 void __user **fpstate)
221{ 211{
222 unsigned long sp;
223
224 /* Default to using normal stack */ 212 /* Default to using normal stack */
225 sp = regs->sp; 213 unsigned long sp = regs->sp;
214
215#ifdef CONFIG_X86_64
216 /* redzone */
217 sp -= 128;
218#endif /* CONFIG_X86_64 */
226 219
227 /* 220 /*
228 * If we are on the alternate signal stack and would overflow it, don't. 221 * If we are on the alternate signal stack and would overflow it, don't.
@@ -236,30 +229,52 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
236 if (sas_ss_flags(sp) == 0) 229 if (sas_ss_flags(sp) == 0)
237 sp = current->sas_ss_sp + current->sas_ss_size; 230 sp = current->sas_ss_sp + current->sas_ss_size;
238 } else { 231 } else {
232#ifdef CONFIG_X86_32
239 /* This is the legacy signal stack switching. */ 233 /* This is the legacy signal stack switching. */
240 if ((regs->ss & 0xffff) != __USER_DS && 234 if ((regs->ss & 0xffff) != __USER_DS &&
241 !(ka->sa.sa_flags & SA_RESTORER) && 235 !(ka->sa.sa_flags & SA_RESTORER) &&
242 ka->sa.sa_restorer) 236 ka->sa.sa_restorer)
243 sp = (unsigned long) ka->sa.sa_restorer; 237 sp = (unsigned long) ka->sa.sa_restorer;
238#endif /* CONFIG_X86_32 */
244 } 239 }
245 240
246 if (used_math()) { 241 if (used_math()) {
247 sp = sp - sig_xstate_size; 242 sp -= sig_xstate_size;
248 *fpstate = (struct _fpstate *) sp; 243#ifdef CONFIG_X86_64
244 sp = round_down(sp, 64);
245#endif /* CONFIG_X86_64 */
246 *fpstate = (void __user *)sp;
247
249 if (save_i387_xstate(*fpstate) < 0) 248 if (save_i387_xstate(*fpstate) < 0)
250 return (void __user *)-1L; 249 return (void __user *)-1L;
251 } 250 }
252 251
253 sp -= frame_size; 252 return (void __user *)align_sigframe(sp - frame_size);
254 /*
255 * Align the stack pointer according to the i386 ABI,
256 * i.e. so that on function entry ((sp + 4) & 15) == 0.
257 */
258 sp = ((sp + 4) & -16ul) - 4;
259
260 return (void __user *) sp;
261} 253}
262 254
255#ifdef CONFIG_X86_32
256static const struct {
257 u16 poplmovl;
258 u32 val;
259 u16 int80;
260} __attribute__((packed)) retcode = {
261 0xb858, /* popl %eax; movl $..., %eax */
262 __NR_sigreturn,
263 0x80cd, /* int $0x80 */
264};
265
266static const struct {
267 u8 movl;
268 u32 val;
269 u16 int80;
270 u8 pad;
271} __attribute__((packed)) rt_retcode = {
272 0xb8, /* movl $..., %eax */
273 __NR_rt_sigreturn,
274 0x80cd, /* int $0x80 */
275 0
276};
277
263static int 278static int
264__setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, 279__setup_frame(int sig, struct k_sigaction *ka, sigset_t *set,
265 struct pt_regs *regs) 280 struct pt_regs *regs)
@@ -336,43 +351,41 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
336 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 351 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
337 return -EFAULT; 352 return -EFAULT;
338 353
339 err |= __put_user(sig, &frame->sig); 354 put_user_try {
340 err |= __put_user(&frame->info, &frame->pinfo); 355 put_user_ex(sig, &frame->sig);
341 err |= __put_user(&frame->uc, &frame->puc); 356 put_user_ex(&frame->info, &frame->pinfo);
342 err |= copy_siginfo_to_user(&frame->info, info); 357 put_user_ex(&frame->uc, &frame->puc);
343 if (err) 358 err |= copy_siginfo_to_user(&frame->info, info);
344 return -EFAULT;
345 359
346 /* Create the ucontext. */ 360 /* Create the ucontext. */
347 if (cpu_has_xsave) 361 if (cpu_has_xsave)
348 err |= __put_user(UC_FP_XSTATE, &frame->uc.uc_flags); 362 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags);
349 else 363 else
350 err |= __put_user(0, &frame->uc.uc_flags); 364 put_user_ex(0, &frame->uc.uc_flags);
351 err |= __put_user(0, &frame->uc.uc_link); 365 put_user_ex(0, &frame->uc.uc_link);
352 err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); 366 put_user_ex(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp);
353 err |= __put_user(sas_ss_flags(regs->sp), 367 put_user_ex(sas_ss_flags(regs->sp),
354 &frame->uc.uc_stack.ss_flags); 368 &frame->uc.uc_stack.ss_flags);
355 err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); 369 put_user_ex(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
356 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, 370 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate,
357 regs, set->sig[0]); 371 regs, set->sig[0]);
358 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 372 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
359 if (err) 373
360 return -EFAULT; 374 /* Set up to return from userspace. */
361 375 restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn);
362 /* Set up to return from userspace. */ 376 if (ka->sa.sa_flags & SA_RESTORER)
363 restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); 377 restorer = ka->sa.sa_restorer;
364 if (ka->sa.sa_flags & SA_RESTORER) 378 put_user_ex(restorer, &frame->pretcode);
365 restorer = ka->sa.sa_restorer;
366 err |= __put_user(restorer, &frame->pretcode);
367 379
368 /* 380 /*
369 * This is movl $__NR_rt_sigreturn, %ax ; int $0x80 381 * This is movl $__NR_rt_sigreturn, %ax ; int $0x80
370 * 382 *
371 * WE DO NOT USE IT ANY MORE! It's only left here for historical 383 * WE DO NOT USE IT ANY MORE! It's only left here for historical
372 * reasons and because gdb uses it as a signature to notice 384 * reasons and because gdb uses it as a signature to notice
373 * signal handler stack frames. 385 * signal handler stack frames.
374 */ 386 */
375 err |= __put_user(*((u64 *)&rt_retcode), (u64 *)frame->retcode); 387 put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode);
388 } put_user_catch(err);
376 389
377 if (err) 390 if (err)
378 return -EFAULT; 391 return -EFAULT;
@@ -392,24 +405,6 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
392 return 0; 405 return 0;
393} 406}
394#else /* !CONFIG_X86_32 */ 407#else /* !CONFIG_X86_32 */
395/*
396 * Determine which stack to use..
397 */
398static void __user *
399get_stack(struct k_sigaction *ka, unsigned long sp, unsigned long size)
400{
401 /* Default to using normal stack - redzone*/
402 sp -= 128;
403
404 /* This is the X/Open sanctioned signal stack switching. */
405 if (ka->sa.sa_flags & SA_ONSTACK) {
406 if (sas_ss_flags(sp) == 0)
407 sp = current->sas_ss_sp + current->sas_ss_size;
408 }
409
410 return (void __user *)round_down(sp - size, 64);
411}
412
413static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, 408static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
414 sigset_t *set, struct pt_regs *regs) 409 sigset_t *set, struct pt_regs *regs)
415{ 410{
@@ -418,15 +413,7 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
418 int err = 0; 413 int err = 0;
419 struct task_struct *me = current; 414 struct task_struct *me = current;
420 415
421 if (used_math()) { 416 frame = get_sigframe(ka, regs, sizeof(struct rt_sigframe), &fp);
422 fp = get_stack(ka, regs->sp, sig_xstate_size);
423 frame = (void __user *)round_down(
424 (unsigned long)fp - sizeof(struct rt_sigframe), 16) - 8;
425
426 if (save_i387_xstate(fp) < 0)
427 return -EFAULT;
428 } else
429 frame = get_stack(ka, regs->sp, sizeof(struct rt_sigframe)) - 8;
430 417
431 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 418 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
432 return -EFAULT; 419 return -EFAULT;
@@ -436,28 +423,30 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
436 return -EFAULT; 423 return -EFAULT;
437 } 424 }
438 425
439 /* Create the ucontext. */ 426 put_user_try {
440 if (cpu_has_xsave) 427 /* Create the ucontext. */
441 err |= __put_user(UC_FP_XSTATE, &frame->uc.uc_flags); 428 if (cpu_has_xsave)
442 else 429 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags);
443 err |= __put_user(0, &frame->uc.uc_flags); 430 else
444 err |= __put_user(0, &frame->uc.uc_link); 431 put_user_ex(0, &frame->uc.uc_flags);
445 err |= __put_user(me->sas_ss_sp, &frame->uc.uc_stack.ss_sp); 432 put_user_ex(0, &frame->uc.uc_link);
446 err |= __put_user(sas_ss_flags(regs->sp), 433 put_user_ex(me->sas_ss_sp, &frame->uc.uc_stack.ss_sp);
447 &frame->uc.uc_stack.ss_flags); 434 put_user_ex(sas_ss_flags(regs->sp),
448 err |= __put_user(me->sas_ss_size, &frame->uc.uc_stack.ss_size); 435 &frame->uc.uc_stack.ss_flags);
449 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]); 436 put_user_ex(me->sas_ss_size, &frame->uc.uc_stack.ss_size);
450 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 437 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]);
451 438 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
452 /* Set up to return from userspace. If provided, use a stub 439
453 already in userspace. */ 440 /* Set up to return from userspace. If provided, use a stub
454 /* x86-64 should always use SA_RESTORER. */ 441 already in userspace. */
455 if (ka->sa.sa_flags & SA_RESTORER) { 442 /* x86-64 should always use SA_RESTORER. */
456 err |= __put_user(ka->sa.sa_restorer, &frame->pretcode); 443 if (ka->sa.sa_flags & SA_RESTORER) {
457 } else { 444 put_user_ex(ka->sa.sa_restorer, &frame->pretcode);
458 /* could use a vstub here */ 445 } else {
459 return -EFAULT; 446 /* could use a vstub here */
460 } 447 err |= -EFAULT;
448 }
449 } put_user_catch(err);
461 450
462 if (err) 451 if (err)
463 return -EFAULT; 452 return -EFAULT;
@@ -509,31 +498,41 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
509 struct old_sigaction __user *oact) 498 struct old_sigaction __user *oact)
510{ 499{
511 struct k_sigaction new_ka, old_ka; 500 struct k_sigaction new_ka, old_ka;
512 int ret; 501 int ret = 0;
513 502
514 if (act) { 503 if (act) {
515 old_sigset_t mask; 504 old_sigset_t mask;
516 505
517 if (!access_ok(VERIFY_READ, act, sizeof(*act)) || 506 if (!access_ok(VERIFY_READ, act, sizeof(*act)))
518 __get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
519 __get_user(new_ka.sa.sa_restorer, &act->sa_restorer))
520 return -EFAULT; 507 return -EFAULT;
521 508
522 __get_user(new_ka.sa.sa_flags, &act->sa_flags); 509 get_user_try {
523 __get_user(mask, &act->sa_mask); 510 get_user_ex(new_ka.sa.sa_handler, &act->sa_handler);
511 get_user_ex(new_ka.sa.sa_flags, &act->sa_flags);
512 get_user_ex(mask, &act->sa_mask);
513 get_user_ex(new_ka.sa.sa_restorer, &act->sa_restorer);
514 } get_user_catch(ret);
515
516 if (ret)
517 return -EFAULT;
524 siginitset(&new_ka.sa.sa_mask, mask); 518 siginitset(&new_ka.sa.sa_mask, mask);
525 } 519 }
526 520
527 ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL); 521 ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
528 522
529 if (!ret && oact) { 523 if (!ret && oact) {
530 if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) || 524 if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)))
531 __put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
532 __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer))
533 return -EFAULT; 525 return -EFAULT;
534 526
535 __put_user(old_ka.sa.sa_flags, &oact->sa_flags); 527 put_user_try {
536 __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask); 528 put_user_ex(old_ka.sa.sa_handler, &oact->sa_handler);
529 put_user_ex(old_ka.sa.sa_flags, &oact->sa_flags);
530 put_user_ex(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
531 put_user_ex(old_ka.sa.sa_restorer, &oact->sa_restorer);
532 } put_user_catch(ret);
533
534 if (ret)
535 return -EFAULT;
537 } 536 }
538 537
539 return ret; 538 return ret;
@@ -541,14 +540,9 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
541#endif /* CONFIG_X86_32 */ 540#endif /* CONFIG_X86_32 */
542 541
543#ifdef CONFIG_X86_32 542#ifdef CONFIG_X86_32
544asmlinkage int sys_sigaltstack(unsigned long bx) 543int sys_sigaltstack(struct pt_regs *regs)
545{ 544{
546 /* 545 const stack_t __user *uss = (const stack_t __user *)regs->bx;
547 * This is needed to make gcc realize it doesn't own the
548 * "struct pt_regs"
549 */
550 struct pt_regs *regs = (struct pt_regs *)&bx;
551 const stack_t __user *uss = (const stack_t __user *)bx;
552 stack_t __user *uoss = (stack_t __user *)regs->cx; 546 stack_t __user *uoss = (stack_t __user *)regs->cx;
553 547
554 return do_sigaltstack(uss, uoss, regs->sp); 548 return do_sigaltstack(uss, uoss, regs->sp);
@@ -566,14 +560,12 @@ sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
566 * Do a signal return; undo the signal stack. 560 * Do a signal return; undo the signal stack.
567 */ 561 */
568#ifdef CONFIG_X86_32 562#ifdef CONFIG_X86_32
569asmlinkage unsigned long sys_sigreturn(unsigned long __unused) 563unsigned long sys_sigreturn(struct pt_regs *regs)
570{ 564{
571 struct sigframe __user *frame; 565 struct sigframe __user *frame;
572 struct pt_regs *regs;
573 unsigned long ax; 566 unsigned long ax;
574 sigset_t set; 567 sigset_t set;
575 568
576 regs = (struct pt_regs *) &__unused;
577 frame = (struct sigframe __user *)(regs->sp - 8); 569 frame = (struct sigframe __user *)(regs->sp - 8);
578 570
579 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) 571 if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
@@ -600,7 +592,7 @@ badframe:
600} 592}
601#endif /* CONFIG_X86_32 */ 593#endif /* CONFIG_X86_32 */
602 594
603static long do_rt_sigreturn(struct pt_regs *regs) 595long sys_rt_sigreturn(struct pt_regs *regs)
604{ 596{
605 struct rt_sigframe __user *frame; 597 struct rt_sigframe __user *frame;
606 unsigned long ax; 598 unsigned long ax;
@@ -631,18 +623,6 @@ badframe:
631 return 0; 623 return 0;
632} 624}
633 625
634#ifdef CONFIG_X86_32
635asmlinkage int sys_rt_sigreturn(struct pt_regs regs)
636{
637 return do_rt_sigreturn(&regs);
638}
639#else /* !CONFIG_X86_32 */
640asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
641{
642 return do_rt_sigreturn(regs);
643}
644#endif /* CONFIG_X86_32 */
645
646/* 626/*
647 * OK, we're invoking a handler: 627 * OK, we're invoking a handler:
648 */ 628 */
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index e6faa3316bd2..13f33ea8ccaa 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -2,7 +2,7 @@
2 * Intel SMP support routines. 2 * Intel SMP support routines.
3 * 3 *
4 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk> 4 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk>
5 * (c) 1998-99, 2000 Ingo Molnar <mingo@redhat.com> 5 * (c) 1998-99, 2000, 2009 Ingo Molnar <mingo@redhat.com>
6 * (c) 2002,2003 Andi Kleen, SuSE Labs. 6 * (c) 2002,2003 Andi Kleen, SuSE Labs.
7 * 7 *
8 * i386 and x86_64 integration by Glauber Costa <gcosta@redhat.com> 8 * i386 and x86_64 integration by Glauber Costa <gcosta@redhat.com>
@@ -26,8 +26,7 @@
26#include <asm/tlbflush.h> 26#include <asm/tlbflush.h>
27#include <asm/mmu_context.h> 27#include <asm/mmu_context.h>
28#include <asm/proto.h> 28#include <asm/proto.h>
29#include <mach_ipi.h> 29#include <asm/apic.h>
30#include <mach_apic.h>
31/* 30/*
32 * Some notes on x86 processor bugs affecting SMP operation: 31 * Some notes on x86 processor bugs affecting SMP operation:
33 * 32 *
@@ -118,12 +117,12 @@ static void native_smp_send_reschedule(int cpu)
118 WARN_ON(1); 117 WARN_ON(1);
119 return; 118 return;
120 } 119 }
121 send_IPI_mask(cpumask_of(cpu), RESCHEDULE_VECTOR); 120 apic->send_IPI_mask(cpumask_of(cpu), RESCHEDULE_VECTOR);
122} 121}
123 122
124void native_send_call_func_single_ipi(int cpu) 123void native_send_call_func_single_ipi(int cpu)
125{ 124{
126 send_IPI_mask(cpumask_of(cpu), CALL_FUNCTION_SINGLE_VECTOR); 125 apic->send_IPI_mask(cpumask_of(cpu), CALL_FUNCTION_SINGLE_VECTOR);
127} 126}
128 127
129void native_send_call_func_ipi(const struct cpumask *mask) 128void native_send_call_func_ipi(const struct cpumask *mask)
@@ -131,7 +130,7 @@ void native_send_call_func_ipi(const struct cpumask *mask)
131 cpumask_var_t allbutself; 130 cpumask_var_t allbutself;
132 131
133 if (!alloc_cpumask_var(&allbutself, GFP_ATOMIC)) { 132 if (!alloc_cpumask_var(&allbutself, GFP_ATOMIC)) {
134 send_IPI_mask(mask, CALL_FUNCTION_VECTOR); 133 apic->send_IPI_mask(mask, CALL_FUNCTION_VECTOR);
135 return; 134 return;
136 } 135 }
137 136
@@ -140,9 +139,9 @@ void native_send_call_func_ipi(const struct cpumask *mask)
140 139
141 if (cpumask_equal(mask, allbutself) && 140 if (cpumask_equal(mask, allbutself) &&
142 cpumask_equal(cpu_online_mask, cpu_callout_mask)) 141 cpumask_equal(cpu_online_mask, cpu_callout_mask))
143 send_IPI_allbutself(CALL_FUNCTION_VECTOR); 142 apic->send_IPI_allbutself(CALL_FUNCTION_VECTOR);
144 else 143 else
145 send_IPI_mask(mask, CALL_FUNCTION_VECTOR); 144 apic->send_IPI_mask(mask, CALL_FUNCTION_VECTOR);
146 145
147 free_cpumask_var(allbutself); 146 free_cpumask_var(allbutself);
148} 147}
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index bb1a3b1fc87f..ef7d10170c30 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -2,7 +2,7 @@
2 * x86 SMP booting functions 2 * x86 SMP booting functions
3 * 3 *
4 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk> 4 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk>
5 * (c) 1998, 1999, 2000 Ingo Molnar <mingo@redhat.com> 5 * (c) 1998, 1999, 2000, 2009 Ingo Molnar <mingo@redhat.com>
6 * Copyright 2001 Andi Kleen, SuSE Labs. 6 * Copyright 2001 Andi Kleen, SuSE Labs.
7 * 7 *
8 * Much of the core SMP work is based on previous work by Thomas Radke, to 8 * Much of the core SMP work is based on previous work by Thomas Radke, to
@@ -53,7 +53,6 @@
53#include <asm/nmi.h> 53#include <asm/nmi.h>
54#include <asm/irq.h> 54#include <asm/irq.h>
55#include <asm/idle.h> 55#include <asm/idle.h>
56#include <asm/smp.h>
57#include <asm/trampoline.h> 56#include <asm/trampoline.h>
58#include <asm/cpu.h> 57#include <asm/cpu.h>
59#include <asm/numa.h> 58#include <asm/numa.h>
@@ -61,13 +60,12 @@
61#include <asm/tlbflush.h> 60#include <asm/tlbflush.h>
62#include <asm/mtrr.h> 61#include <asm/mtrr.h>
63#include <asm/vmi.h> 62#include <asm/vmi.h>
64#include <asm/genapic.h> 63#include <asm/apic.h>
65#include <asm/setup.h> 64#include <asm/setup.h>
65#include <asm/uv/uv.h>
66#include <linux/mc146818rtc.h> 66#include <linux/mc146818rtc.h>
67 67
68#include <mach_apic.h> 68#include <asm/smpboot_hooks.h>
69#include <mach_wakecpu.h>
70#include <smpboot_hooks.h>
71 69
72#ifdef CONFIG_X86_32 70#ifdef CONFIG_X86_32
73u8 apicid_2_node[MAX_APICID]; 71u8 apicid_2_node[MAX_APICID];
@@ -114,11 +112,7 @@ EXPORT_PER_CPU_SYMBOL(cpu_core_map);
114DEFINE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info); 112DEFINE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info);
115EXPORT_PER_CPU_SYMBOL(cpu_info); 113EXPORT_PER_CPU_SYMBOL(cpu_info);
116 114
117static atomic_t init_deasserted; 115atomic_t init_deasserted;
118
119
120/* Set if we find a B stepping CPU */
121static int __cpuinitdata smp_b_stepping;
122 116
123#if defined(CONFIG_NUMA) && defined(CONFIG_X86_32) 117#if defined(CONFIG_NUMA) && defined(CONFIG_X86_32)
124 118
@@ -163,7 +157,7 @@ static void map_cpu_to_logical_apicid(void)
163{ 157{
164 int cpu = smp_processor_id(); 158 int cpu = smp_processor_id();
165 int apicid = logical_smp_processor_id(); 159 int apicid = logical_smp_processor_id();
166 int node = apicid_to_node(apicid); 160 int node = apic->apicid_to_node(apicid);
167 161
168 if (!node_online(node)) 162 if (!node_online(node))
169 node = first_online_node; 163 node = first_online_node;
@@ -196,7 +190,8 @@ static void __cpuinit smp_callin(void)
196 * our local APIC. We have to wait for the IPI or we'll 190 * our local APIC. We have to wait for the IPI or we'll
197 * lock up on an APIC access. 191 * lock up on an APIC access.
198 */ 192 */
199 wait_for_init_deassert(&init_deasserted); 193 if (apic->wait_for_init_deassert)
194 apic->wait_for_init_deassert(&init_deasserted);
200 195
201 /* 196 /*
202 * (This works even if the APIC is not enabled.) 197 * (This works even if the APIC is not enabled.)
@@ -243,7 +238,8 @@ static void __cpuinit smp_callin(void)
243 */ 238 */
244 239
245 pr_debug("CALLIN, before setup_local_APIC().\n"); 240 pr_debug("CALLIN, before setup_local_APIC().\n");
246 smp_callin_clear_local_apic(); 241 if (apic->smp_callin_clear_local_apic)
242 apic->smp_callin_clear_local_apic();
247 setup_local_APIC(); 243 setup_local_APIC();
248 end_local_APIC_setup(); 244 end_local_APIC_setup();
249 map_cpu_to_logical_apicid(); 245 map_cpu_to_logical_apicid();
@@ -271,8 +267,6 @@ static void __cpuinit smp_callin(void)
271 cpumask_set_cpu(cpuid, cpu_callin_mask); 267 cpumask_set_cpu(cpuid, cpu_callin_mask);
272} 268}
273 269
274static int __cpuinitdata unsafe_smp;
275
276/* 270/*
277 * Activate a secondary processor. 271 * Activate a secondary processor.
278 */ 272 */
@@ -340,76 +334,6 @@ notrace static void __cpuinit start_secondary(void *unused)
340 cpu_idle(); 334 cpu_idle();
341} 335}
342 336
343static void __cpuinit smp_apply_quirks(struct cpuinfo_x86 *c)
344{
345 /*
346 * Mask B, Pentium, but not Pentium MMX
347 */
348 if (c->x86_vendor == X86_VENDOR_INTEL &&
349 c->x86 == 5 &&
350 c->x86_mask >= 1 && c->x86_mask <= 4 &&
351 c->x86_model <= 3)
352 /*
353 * Remember we have B step Pentia with bugs
354 */
355 smp_b_stepping = 1;
356
357 /*
358 * Certain Athlons might work (for various values of 'work') in SMP
359 * but they are not certified as MP capable.
360 */
361 if ((c->x86_vendor == X86_VENDOR_AMD) && (c->x86 == 6)) {
362
363 if (num_possible_cpus() == 1)
364 goto valid_k7;
365
366 /* Athlon 660/661 is valid. */
367 if ((c->x86_model == 6) && ((c->x86_mask == 0) ||
368 (c->x86_mask == 1)))
369 goto valid_k7;
370
371 /* Duron 670 is valid */
372 if ((c->x86_model == 7) && (c->x86_mask == 0))
373 goto valid_k7;
374
375 /*
376 * Athlon 662, Duron 671, and Athlon >model 7 have capability
377 * bit. It's worth noting that the A5 stepping (662) of some
378 * Athlon XP's have the MP bit set.
379 * See http://www.heise.de/newsticker/data/jow-18.10.01-000 for
380 * more.
381 */
382 if (((c->x86_model == 6) && (c->x86_mask >= 2)) ||
383 ((c->x86_model == 7) && (c->x86_mask >= 1)) ||
384 (c->x86_model > 7))
385 if (cpu_has_mp)
386 goto valid_k7;
387
388 /* If we get here, not a certified SMP capable AMD system. */
389 unsafe_smp = 1;
390 }
391
392valid_k7:
393 ;
394}
395
396static void __cpuinit smp_checks(void)
397{
398 if (smp_b_stepping)
399 printk(KERN_WARNING "WARNING: SMP operation may be unreliable"
400 "with B stepping processors.\n");
401
402 /*
403 * Don't taint if we are running SMP kernel on a single non-MP
404 * approved Athlon
405 */
406 if (unsafe_smp && num_online_cpus() > 1) {
407 printk(KERN_INFO "WARNING: This combination of AMD"
408 "processors is not suitable for SMP.\n");
409 add_taint(TAINT_UNSAFE_SMP);
410 }
411}
412
413/* 337/*
414 * The bootstrap kernel entry code has set these up. Save them for 338 * The bootstrap kernel entry code has set these up. Save them for
415 * a given CPU 339 * a given CPU
@@ -423,7 +347,6 @@ void __cpuinit smp_store_cpu_info(int id)
423 c->cpu_index = id; 347 c->cpu_index = id;
424 if (id != 0) 348 if (id != 0)
425 identify_secondary_cpu(c); 349 identify_secondary_cpu(c);
426 smp_apply_quirks(c);
427} 350}
428 351
429 352
@@ -583,7 +506,7 @@ wakeup_secondary_cpu_via_nmi(int logical_apicid, unsigned long start_eip)
583 /* Target chip */ 506 /* Target chip */
584 /* Boot on the stack */ 507 /* Boot on the stack */
585 /* Kick the second */ 508 /* Kick the second */
586 apic_icr_write(APIC_DM_NMI | APIC_DEST_LOGICAL, logical_apicid); 509 apic_icr_write(APIC_DM_NMI | apic->dest_logical, logical_apicid);
587 510
588 pr_debug("Waiting for send to finish...\n"); 511 pr_debug("Waiting for send to finish...\n");
589 send_status = safe_apic_wait_icr_idle(); 512 send_status = safe_apic_wait_icr_idle();
@@ -614,12 +537,6 @@ wakeup_secondary_cpu_via_init(int phys_apicid, unsigned long start_eip)
614 unsigned long send_status, accept_status = 0; 537 unsigned long send_status, accept_status = 0;
615 int maxlvt, num_starts, j; 538 int maxlvt, num_starts, j;
616 539
617 if (get_uv_system_type() == UV_NON_UNIQUE_APIC) {
618 send_status = uv_wakeup_secondary(phys_apicid, start_eip);
619 atomic_set(&init_deasserted, 1);
620 return send_status;
621 }
622
623 maxlvt = lapic_get_maxlvt(); 540 maxlvt = lapic_get_maxlvt();
624 541
625 /* 542 /*
@@ -745,78 +662,23 @@ static void __cpuinit do_fork_idle(struct work_struct *work)
745 complete(&c_idle->done); 662 complete(&c_idle->done);
746} 663}
747 664
748#ifdef CONFIG_X86_64
749
750/* __ref because it's safe to call free_bootmem when after_bootmem == 0. */
751static void __ref free_bootmem_pda(struct x8664_pda *oldpda)
752{
753 if (!after_bootmem)
754 free_bootmem((unsigned long)oldpda, sizeof(*oldpda));
755}
756
757/*
758 * Allocate node local memory for the AP pda.
759 *
760 * Must be called after the _cpu_pda pointer table is initialized.
761 */
762int __cpuinit get_local_pda(int cpu)
763{
764 struct x8664_pda *oldpda, *newpda;
765 unsigned long size = sizeof(struct x8664_pda);
766 int node = cpu_to_node(cpu);
767
768 if (cpu_pda(cpu) && !cpu_pda(cpu)->in_bootmem)
769 return 0;
770
771 oldpda = cpu_pda(cpu);
772 newpda = kmalloc_node(size, GFP_ATOMIC, node);
773 if (!newpda) {
774 printk(KERN_ERR "Could not allocate node local PDA "
775 "for CPU %d on node %d\n", cpu, node);
776
777 if (oldpda)
778 return 0; /* have a usable pda */
779 else
780 return -1;
781 }
782
783 if (oldpda) {
784 memcpy(newpda, oldpda, size);
785 free_bootmem_pda(oldpda);
786 }
787
788 newpda->in_bootmem = 0;
789 cpu_pda(cpu) = newpda;
790 return 0;
791}
792#endif /* CONFIG_X86_64 */
793
794static int __cpuinit do_boot_cpu(int apicid, int cpu)
795/* 665/*
796 * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad 666 * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad
797 * (ie clustered apic addressing mode), this is a LOGICAL apic ID. 667 * (ie clustered apic addressing mode), this is a LOGICAL apic ID.
798 * Returns zero if CPU booted OK, else error code from wakeup_secondary_cpu. 668 * Returns zero if CPU booted OK, else error code from
669 * ->wakeup_secondary_cpu.
799 */ 670 */
671static int __cpuinit do_boot_cpu(int apicid, int cpu)
800{ 672{
801 unsigned long boot_error = 0; 673 unsigned long boot_error = 0;
802 int timeout;
803 unsigned long start_ip; 674 unsigned long start_ip;
804 unsigned short nmi_high = 0, nmi_low = 0; 675 int timeout;
805 struct create_idle c_idle = { 676 struct create_idle c_idle = {
806 .cpu = cpu, 677 .cpu = cpu,
807 .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), 678 .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
808 }; 679 };
809 INIT_WORK(&c_idle.work, do_fork_idle);
810 680
811#ifdef CONFIG_X86_64 681 INIT_WORK(&c_idle.work, do_fork_idle);
812 /* Allocate node local memory for AP pdas */
813 if (cpu > 0) {
814 boot_error = get_local_pda(cpu);
815 if (boot_error)
816 goto restore_state;
817 /* if can't get pda memory, can't start cpu */
818 }
819#endif
820 682
821 alternatives_smp_switch(1); 683 alternatives_smp_switch(1);
822 684
@@ -847,14 +709,16 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
847 709
848 set_idle_for_cpu(cpu, c_idle.idle); 710 set_idle_for_cpu(cpu, c_idle.idle);
849do_rest: 711do_rest:
850#ifdef CONFIG_X86_32
851 per_cpu(current_task, cpu) = c_idle.idle; 712 per_cpu(current_task, cpu) = c_idle.idle;
852 init_gdt(cpu); 713#ifdef CONFIG_X86_32
853 /* Stack for startup_32 can be just as for start_secondary onwards */ 714 /* Stack for startup_32 can be just as for start_secondary onwards */
854 irq_ctx_init(cpu); 715 irq_ctx_init(cpu);
855#else 716#else
856 cpu_pda(cpu)->pcurrent = c_idle.idle;
857 clear_tsk_thread_flag(c_idle.idle, TIF_FORK); 717 clear_tsk_thread_flag(c_idle.idle, TIF_FORK);
718 initial_gs = per_cpu_offset(cpu);
719 per_cpu(kernel_stack, cpu) =
720 (unsigned long)task_stack_page(c_idle.idle) -
721 KERNEL_STACK_OFFSET + THREAD_SIZE;
858#endif 722#endif
859 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); 723 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
860 initial_code = (unsigned long)start_secondary; 724 initial_code = (unsigned long)start_secondary;
@@ -878,8 +742,6 @@ do_rest:
878 742
879 pr_debug("Setting warm reset code and vector.\n"); 743 pr_debug("Setting warm reset code and vector.\n");
880 744
881 store_NMI_vector(&nmi_high, &nmi_low);
882
883 smpboot_setup_warm_reset_vector(start_ip); 745 smpboot_setup_warm_reset_vector(start_ip);
884 /* 746 /*
885 * Be paranoid about clearing APIC errors. 747 * Be paranoid about clearing APIC errors.
@@ -891,9 +753,13 @@ do_rest:
891 } 753 }
892 754
893 /* 755 /*
894 * Starting actual IPI sequence... 756 * Kick the secondary CPU. Use the method in the APIC driver
757 * if it's defined - or use an INIT boot APIC message otherwise:
895 */ 758 */
896 boot_error = wakeup_secondary_cpu(apicid, start_ip); 759 if (apic->wakeup_secondary_cpu)
760 boot_error = apic->wakeup_secondary_cpu(apicid, start_ip);
761 else
762 boot_error = wakeup_secondary_cpu_via_init(apicid, start_ip);
897 763
898 if (!boot_error) { 764 if (!boot_error) {
899 /* 765 /*
@@ -927,13 +793,11 @@ do_rest:
927 else 793 else
928 /* trampoline code not run */ 794 /* trampoline code not run */
929 printk(KERN_ERR "Not responding.\n"); 795 printk(KERN_ERR "Not responding.\n");
930 if (get_uv_system_type() != UV_NON_UNIQUE_APIC) 796 if (apic->inquire_remote_apic)
931 inquire_remote_apic(apicid); 797 apic->inquire_remote_apic(apicid);
932 } 798 }
933 } 799 }
934#ifdef CONFIG_X86_64 800
935restore_state:
936#endif
937 if (boot_error) { 801 if (boot_error) {
938 /* Try to put things back the way they were before ... */ 802 /* Try to put things back the way they were before ... */
939 numa_remove_cpu(cpu); /* was set by numa_add_cpu */ 803 numa_remove_cpu(cpu); /* was set by numa_add_cpu */
@@ -961,7 +825,7 @@ restore_state:
961 825
962int __cpuinit native_cpu_up(unsigned int cpu) 826int __cpuinit native_cpu_up(unsigned int cpu)
963{ 827{
964 int apicid = cpu_present_to_apicid(cpu); 828 int apicid = apic->cpu_present_to_apicid(cpu);
965 unsigned long flags; 829 unsigned long flags;
966 int err; 830 int err;
967 831
@@ -1054,14 +918,14 @@ static int __init smp_sanity_check(unsigned max_cpus)
1054{ 918{
1055 preempt_disable(); 919 preempt_disable();
1056 920
1057#if defined(CONFIG_X86_PC) && defined(CONFIG_X86_32) 921#if !defined(CONFIG_X86_BIGSMP) && defined(CONFIG_X86_32)
1058 if (def_to_bigsmp && nr_cpu_ids > 8) { 922 if (def_to_bigsmp && nr_cpu_ids > 8) {
1059 unsigned int cpu; 923 unsigned int cpu;
1060 unsigned nr; 924 unsigned nr;
1061 925
1062 printk(KERN_WARNING 926 printk(KERN_WARNING
1063 "More than 8 CPUs detected - skipping them.\n" 927 "More than 8 CPUs detected - skipping them.\n"
1064 "Use CONFIG_X86_GENERICARCH and CONFIG_X86_BIGSMP.\n"); 928 "Use CONFIG_X86_BIGSMP.\n");
1065 929
1066 nr = 0; 930 nr = 0;
1067 for_each_present_cpu(cpu) { 931 for_each_present_cpu(cpu) {
@@ -1107,7 +971,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
1107 * Should not be necessary because the MP table should list the boot 971 * Should not be necessary because the MP table should list the boot
1108 * CPU too, but we do it for the sake of robustness anyway. 972 * CPU too, but we do it for the sake of robustness anyway.
1109 */ 973 */
1110 if (!check_phys_apicid_present(boot_cpu_physical_apicid)) { 974 if (!apic->check_phys_apicid_present(boot_cpu_physical_apicid)) {
1111 printk(KERN_NOTICE 975 printk(KERN_NOTICE
1112 "weird, boot CPU (#%d) not listed by the BIOS.\n", 976 "weird, boot CPU (#%d) not listed by the BIOS.\n",
1113 boot_cpu_physical_apicid); 977 boot_cpu_physical_apicid);
@@ -1125,6 +989,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
1125 printk(KERN_ERR "... forcing use of dummy APIC emulation." 989 printk(KERN_ERR "... forcing use of dummy APIC emulation."
1126 "(tell your hw vendor)\n"); 990 "(tell your hw vendor)\n");
1127 smpboot_clear_io_apic(); 991 smpboot_clear_io_apic();
992 arch_disable_smp_support();
1128 return -1; 993 return -1;
1129 } 994 }
1130 995
@@ -1181,9 +1046,9 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1181 current_thread_info()->cpu = 0; /* needed? */ 1046 current_thread_info()->cpu = 0; /* needed? */
1182 set_cpu_sibling_map(0); 1047 set_cpu_sibling_map(0);
1183 1048
1184#ifdef CONFIG_X86_64
1185 enable_IR_x2apic(); 1049 enable_IR_x2apic();
1186 setup_apic_routing(); 1050#ifdef CONFIG_X86_64
1051 default_setup_apic_routing();
1187#endif 1052#endif
1188 1053
1189 if (smp_sanity_check(max_cpus) < 0) { 1054 if (smp_sanity_check(max_cpus) < 0) {
@@ -1207,18 +1072,18 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1207 */ 1072 */
1208 setup_local_APIC(); 1073 setup_local_APIC();
1209 1074
1210#ifdef CONFIG_X86_64
1211 /* 1075 /*
1212 * Enable IO APIC before setting up error vector 1076 * Enable IO APIC before setting up error vector
1213 */ 1077 */
1214 if (!skip_ioapic_setup && nr_ioapics) 1078 if (!skip_ioapic_setup && nr_ioapics)
1215 enable_IO_APIC(); 1079 enable_IO_APIC();
1216#endif 1080
1217 end_local_APIC_setup(); 1081 end_local_APIC_setup();
1218 1082
1219 map_cpu_to_logical_apicid(); 1083 map_cpu_to_logical_apicid();
1220 1084
1221 setup_portio_remap(); 1085 if (apic->setup_portio_remap)
1086 apic->setup_portio_remap();
1222 1087
1223 smpboot_setup_io_apic(); 1088 smpboot_setup_io_apic();
1224 /* 1089 /*
@@ -1240,10 +1105,7 @@ out:
1240void __init native_smp_prepare_boot_cpu(void) 1105void __init native_smp_prepare_boot_cpu(void)
1241{ 1106{
1242 int me = smp_processor_id(); 1107 int me = smp_processor_id();
1243#ifdef CONFIG_X86_32 1108 switch_to_new_gdt(me);
1244 init_gdt(me);
1245#endif
1246 switch_to_new_gdt();
1247 /* already set me in cpu_online_mask in boot_cpu_init() */ 1109 /* already set me in cpu_online_mask in boot_cpu_init() */
1248 cpumask_set_cpu(me, cpu_callout_mask); 1110 cpumask_set_cpu(me, cpu_callout_mask);
1249 per_cpu(cpu_state, me) = CPU_ONLINE; 1111 per_cpu(cpu_state, me) = CPU_ONLINE;
@@ -1254,7 +1116,6 @@ void __init native_smp_cpus_done(unsigned int max_cpus)
1254 pr_debug("Boot done.\n"); 1116 pr_debug("Boot done.\n");
1255 1117
1256 impress_friends(); 1118 impress_friends();
1257 smp_checks();
1258#ifdef CONFIG_X86_IO_APIC 1119#ifdef CONFIG_X86_IO_APIC
1259 setup_ioapic_dest(); 1120 setup_ioapic_dest();
1260#endif 1121#endif
diff --git a/arch/x86/kernel/smpcommon.c b/arch/x86/kernel/smpcommon.c
deleted file mode 100644
index 397e309839dd..000000000000
--- a/arch/x86/kernel/smpcommon.c
+++ /dev/null
@@ -1,30 +0,0 @@
1/*
2 * SMP stuff which is common to all sub-architectures.
3 */
4#include <linux/module.h>
5#include <asm/smp.h>
6
7#ifdef CONFIG_X86_32
8DEFINE_PER_CPU(unsigned long, this_cpu_off);
9EXPORT_PER_CPU_SYMBOL(this_cpu_off);
10
11/*
12 * Initialize the CPU's GDT. This is either the boot CPU doing itself
13 * (still using the master per-cpu area), or a CPU doing it for a
14 * secondary which will soon come up.
15 */
16__cpuinit void init_gdt(int cpu)
17{
18 struct desc_struct gdt;
19
20 pack_descriptor(&gdt, __per_cpu_offset[cpu], 0xFFFFF,
21 0x2 | DESCTYPE_S, 0x8);
22 gdt.s = 1;
23
24 write_gdt_entry(get_cpu_gdt_table(cpu),
25 GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
26
27 per_cpu(this_cpu_off, cpu) = __per_cpu_offset[cpu];
28 per_cpu(cpu_number, cpu) = cpu;
29}
30#endif
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 10786af95545..f7bddc2e37d1 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Stack trace management functions 2 * Stack trace management functions
3 * 3 *
4 * Copyright (C) 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> 4 * Copyright (C) 2006-2009 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
5 */ 5 */
6#include <linux/sched.h> 6#include <linux/sched.h>
7#include <linux/stacktrace.h> 7#include <linux/stacktrace.h>
diff --git a/arch/x86/kernel/summit_32.c b/arch/x86/kernel/summit_32.c
deleted file mode 100644
index 7b987852e876..000000000000
--- a/arch/x86/kernel/summit_32.c
+++ /dev/null
@@ -1,188 +0,0 @@
1/*
2 * IBM Summit-Specific Code
3 *
4 * Written By: Matthew Dobson, IBM Corporation
5 *
6 * Copyright (c) 2003 IBM Corp.
7 *
8 * All rights reserved.
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 as published by
12 * the Free Software Foundation; either version 2 of the License, or (at
13 * your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
18 * NON INFRINGEMENT. See the GNU General Public License for more
19 * details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *
25 * Send feedback to <colpatch@us.ibm.com>
26 *
27 */
28
29#include <linux/mm.h>
30#include <linux/init.h>
31#include <asm/io.h>
32#include <asm/bios_ebda.h>
33#include <asm/summit/mpparse.h>
34
35static struct rio_table_hdr *rio_table_hdr __initdata;
36static struct scal_detail *scal_devs[MAX_NUMNODES] __initdata;
37static struct rio_detail *rio_devs[MAX_NUMNODES*4] __initdata;
38
39#ifndef CONFIG_X86_NUMAQ
40static int mp_bus_id_to_node[MAX_MP_BUSSES] __initdata;
41#endif
42
43static int __init setup_pci_node_map_for_wpeg(int wpeg_num, int last_bus)
44{
45 int twister = 0, node = 0;
46 int i, bus, num_buses;
47
48 for (i = 0; i < rio_table_hdr->num_rio_dev; i++) {
49 if (rio_devs[i]->node_id == rio_devs[wpeg_num]->owner_id) {
50 twister = rio_devs[i]->owner_id;
51 break;
52 }
53 }
54 if (i == rio_table_hdr->num_rio_dev) {
55 printk(KERN_ERR "%s: Couldn't find owner Cyclone for Winnipeg!\n", __func__);
56 return last_bus;
57 }
58
59 for (i = 0; i < rio_table_hdr->num_scal_dev; i++) {
60 if (scal_devs[i]->node_id == twister) {
61 node = scal_devs[i]->node_id;
62 break;
63 }
64 }
65 if (i == rio_table_hdr->num_scal_dev) {
66 printk(KERN_ERR "%s: Couldn't find owner Twister for Cyclone!\n", __func__);
67 return last_bus;
68 }
69
70 switch (rio_devs[wpeg_num]->type) {
71 case CompatWPEG:
72 /*
73 * The Compatibility Winnipeg controls the 2 legacy buses,
74 * the 66MHz PCI bus [2 slots] and the 2 "extra" buses in case
75 * a PCI-PCI bridge card is used in either slot: total 5 buses.
76 */
77 num_buses = 5;
78 break;
79 case AltWPEG:
80 /*
81 * The Alternate Winnipeg controls the 2 133MHz buses [1 slot
82 * each], their 2 "extra" buses, the 100MHz bus [2 slots] and
83 * the "extra" buses for each of those slots: total 7 buses.
84 */
85 num_buses = 7;
86 break;
87 case LookOutAWPEG:
88 case LookOutBWPEG:
89 /*
90 * A Lookout Winnipeg controls 3 100MHz buses [2 slots each]
91 * & the "extra" buses for each of those slots: total 9 buses.
92 */
93 num_buses = 9;
94 break;
95 default:
96 printk(KERN_INFO "%s: Unsupported Winnipeg type!\n", __func__);
97 return last_bus;
98 }
99
100 for (bus = last_bus; bus < last_bus + num_buses; bus++)
101 mp_bus_id_to_node[bus] = node;
102 return bus;
103}
104
105static int __init build_detail_arrays(void)
106{
107 unsigned long ptr;
108 int i, scal_detail_size, rio_detail_size;
109
110 if (rio_table_hdr->num_scal_dev > MAX_NUMNODES) {
111 printk(KERN_WARNING "%s: MAX_NUMNODES too low! Defined as %d, but system has %d nodes.\n", __func__, MAX_NUMNODES, rio_table_hdr->num_scal_dev);
112 return 0;
113 }
114
115 switch (rio_table_hdr->version) {
116 default:
117 printk(KERN_WARNING "%s: Invalid Rio Grande Table Version: %d\n", __func__, rio_table_hdr->version);
118 return 0;
119 case 2:
120 scal_detail_size = 11;
121 rio_detail_size = 13;
122 break;
123 case 3:
124 scal_detail_size = 12;
125 rio_detail_size = 15;
126 break;
127 }
128
129 ptr = (unsigned long)rio_table_hdr + 3;
130 for (i = 0; i < rio_table_hdr->num_scal_dev; i++, ptr += scal_detail_size)
131 scal_devs[i] = (struct scal_detail *)ptr;
132
133 for (i = 0; i < rio_table_hdr->num_rio_dev; i++, ptr += rio_detail_size)
134 rio_devs[i] = (struct rio_detail *)ptr;
135
136 return 1;
137}
138
139void __init setup_summit(void)
140{
141 unsigned long ptr;
142 unsigned short offset;
143 int i, next_wpeg, next_bus = 0;
144
145 /* The pointer to the EBDA is stored in the word @ phys 0x40E(40:0E) */
146 ptr = get_bios_ebda();
147 ptr = (unsigned long)phys_to_virt(ptr);
148
149 rio_table_hdr = NULL;
150 offset = 0x180;
151 while (offset) {
152 /* The block id is stored in the 2nd word */
153 if (*((unsigned short *)(ptr + offset + 2)) == 0x4752) {
154 /* set the pointer past the offset & block id */
155 rio_table_hdr = (struct rio_table_hdr *)(ptr + offset + 4);
156 break;
157 }
158 /* The next offset is stored in the 1st word. 0 means no more */
159 offset = *((unsigned short *)(ptr + offset));
160 }
161 if (!rio_table_hdr) {
162 printk(KERN_ERR "%s: Unable to locate Rio Grande Table in EBDA - bailing!\n", __func__);
163 return;
164 }
165
166 if (!build_detail_arrays())
167 return;
168
169 /* The first Winnipeg we're looking for has an index of 0 */
170 next_wpeg = 0;
171 do {
172 for (i = 0; i < rio_table_hdr->num_rio_dev; i++) {
173 if (is_WPEG(rio_devs[i]) && rio_devs[i]->WP_index == next_wpeg) {
174 /* It's the Winnipeg we're looking for! */
175 next_bus = setup_pci_node_map_for_wpeg(i, next_bus);
176 next_wpeg++;
177 break;
178 }
179 }
180 /*
181 * If we go through all Rio devices and don't find one with
182 * the next index, it means we've found all the Winnipegs,
183 * and thus all the PCI buses.
184 */
185 if (i == rio_table_hdr->num_rio_dev)
186 next_wpeg = 0;
187 } while (next_wpeg != 0);
188}
diff --git a/arch/x86/kernel/syscall_table_32.S b/arch/x86/kernel/syscall_table_32.S
index d44395ff34c3..3bdb64829b82 100644
--- a/arch/x86/kernel/syscall_table_32.S
+++ b/arch/x86/kernel/syscall_table_32.S
@@ -1,7 +1,7 @@
1ENTRY(sys_call_table) 1ENTRY(sys_call_table)
2 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ 2 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
3 .long sys_exit 3 .long sys_exit
4 .long sys_fork 4 .long ptregs_fork
5 .long sys_read 5 .long sys_read
6 .long sys_write 6 .long sys_write
7 .long sys_open /* 5 */ 7 .long sys_open /* 5 */
@@ -10,7 +10,7 @@ ENTRY(sys_call_table)
10 .long sys_creat 10 .long sys_creat
11 .long sys_link 11 .long sys_link
12 .long sys_unlink /* 10 */ 12 .long sys_unlink /* 10 */
13 .long sys_execve 13 .long ptregs_execve
14 .long sys_chdir 14 .long sys_chdir
15 .long sys_time 15 .long sys_time
16 .long sys_mknod 16 .long sys_mknod
@@ -88,7 +88,7 @@ ENTRY(sys_call_table)
88 .long sys_uselib 88 .long sys_uselib
89 .long sys_swapon 89 .long sys_swapon
90 .long sys_reboot 90 .long sys_reboot
91 .long old_readdir 91 .long sys_old_readdir
92 .long old_mmap /* 90 */ 92 .long old_mmap /* 90 */
93 .long sys_munmap 93 .long sys_munmap
94 .long sys_truncate 94 .long sys_truncate
@@ -109,17 +109,17 @@ ENTRY(sys_call_table)
109 .long sys_newlstat 109 .long sys_newlstat
110 .long sys_newfstat 110 .long sys_newfstat
111 .long sys_uname 111 .long sys_uname
112 .long sys_iopl /* 110 */ 112 .long ptregs_iopl /* 110 */
113 .long sys_vhangup 113 .long sys_vhangup
114 .long sys_ni_syscall /* old "idle" system call */ 114 .long sys_ni_syscall /* old "idle" system call */
115 .long sys_vm86old 115 .long ptregs_vm86old
116 .long sys_wait4 116 .long sys_wait4
117 .long sys_swapoff /* 115 */ 117 .long sys_swapoff /* 115 */
118 .long sys_sysinfo 118 .long sys_sysinfo
119 .long sys_ipc 119 .long sys_ipc
120 .long sys_fsync 120 .long sys_fsync
121 .long sys_sigreturn 121 .long ptregs_sigreturn
122 .long sys_clone /* 120 */ 122 .long ptregs_clone /* 120 */
123 .long sys_setdomainname 123 .long sys_setdomainname
124 .long sys_newuname 124 .long sys_newuname
125 .long sys_modify_ldt 125 .long sys_modify_ldt
@@ -165,14 +165,14 @@ ENTRY(sys_call_table)
165 .long sys_mremap 165 .long sys_mremap
166 .long sys_setresuid16 166 .long sys_setresuid16
167 .long sys_getresuid16 /* 165 */ 167 .long sys_getresuid16 /* 165 */
168 .long sys_vm86 168 .long ptregs_vm86
169 .long sys_ni_syscall /* Old sys_query_module */ 169 .long sys_ni_syscall /* Old sys_query_module */
170 .long sys_poll 170 .long sys_poll
171 .long sys_nfsservctl 171 .long sys_nfsservctl
172 .long sys_setresgid16 /* 170 */ 172 .long sys_setresgid16 /* 170 */
173 .long sys_getresgid16 173 .long sys_getresgid16
174 .long sys_prctl 174 .long sys_prctl
175 .long sys_rt_sigreturn 175 .long ptregs_rt_sigreturn
176 .long sys_rt_sigaction 176 .long sys_rt_sigaction
177 .long sys_rt_sigprocmask /* 175 */ 177 .long sys_rt_sigprocmask /* 175 */
178 .long sys_rt_sigpending 178 .long sys_rt_sigpending
@@ -185,11 +185,11 @@ ENTRY(sys_call_table)
185 .long sys_getcwd 185 .long sys_getcwd
186 .long sys_capget 186 .long sys_capget
187 .long sys_capset /* 185 */ 187 .long sys_capset /* 185 */
188 .long sys_sigaltstack 188 .long ptregs_sigaltstack
189 .long sys_sendfile 189 .long sys_sendfile
190 .long sys_ni_syscall /* reserved for streams1 */ 190 .long sys_ni_syscall /* reserved for streams1 */
191 .long sys_ni_syscall /* reserved for streams2 */ 191 .long sys_ni_syscall /* reserved for streams2 */
192 .long sys_vfork /* 190 */ 192 .long ptregs_vfork /* 190 */
193 .long sys_getrlimit 193 .long sys_getrlimit
194 .long sys_mmap2 194 .long sys_mmap2
195 .long sys_truncate64 195 .long sys_truncate64
diff --git a/arch/x86/kernel/time_32.c b/arch/x86/kernel/time_32.c
index 3985cac0ed47..5c5d87f0b2e1 100644
--- a/arch/x86/kernel/time_32.c
+++ b/arch/x86/kernel/time_32.c
@@ -33,12 +33,12 @@
33#include <linux/time.h> 33#include <linux/time.h>
34#include <linux/mca.h> 34#include <linux/mca.h>
35 35
36#include <asm/arch_hooks.h> 36#include <asm/setup.h>
37#include <asm/hpet.h> 37#include <asm/hpet.h>
38#include <asm/time.h> 38#include <asm/time.h>
39#include <asm/timer.h> 39#include <asm/timer.h>
40 40
41#include "do_timer.h" 41#include <asm/do_timer.h>
42 42
43int timer_ack; 43int timer_ack;
44 44
@@ -118,7 +118,7 @@ void __init hpet_time_init(void)
118{ 118{
119 if (!hpet_enable()) 119 if (!hpet_enable())
120 setup_pit_timer(); 120 setup_pit_timer();
121 time_init_hook(); 121 x86_quirk_time_init();
122} 122}
123 123
124/* 124/*
@@ -131,7 +131,7 @@ void __init hpet_time_init(void)
131 */ 131 */
132void __init time_init(void) 132void __init time_init(void)
133{ 133{
134 pre_time_init_hook(); 134 x86_quirk_pre_time_init();
135 tsc_init(); 135 tsc_init();
136 late_time_init = choose_time_init(); 136 late_time_init = choose_time_init();
137} 137}
diff --git a/arch/x86/kernel/time_64.c b/arch/x86/kernel/time_64.c
index e6e695acd725..241ec3923f61 100644
--- a/arch/x86/kernel/time_64.c
+++ b/arch/x86/kernel/time_64.c
@@ -115,7 +115,7 @@ unsigned long __init calibrate_cpu(void)
115 115
116static struct irqaction irq0 = { 116static struct irqaction irq0 = {
117 .handler = timer_interrupt, 117 .handler = timer_interrupt,
118 .flags = IRQF_DISABLED | IRQF_IRQPOLL | IRQF_NOBALANCING, 118 .flags = IRQF_DISABLED | IRQF_IRQPOLL | IRQF_NOBALANCING | IRQF_TIMER,
119 .mask = CPU_MASK_NONE, 119 .mask = CPU_MASK_NONE,
120 .name = "timer" 120 .name = "timer"
121}; 121};
diff --git a/arch/x86/kernel/tlb_32.c b/arch/x86/kernel/tlb_32.c
deleted file mode 100644
index d37bbfcb813d..000000000000
--- a/arch/x86/kernel/tlb_32.c
+++ /dev/null
@@ -1,250 +0,0 @@
1#include <linux/spinlock.h>
2#include <linux/cpu.h>
3#include <linux/interrupt.h>
4
5#include <asm/tlbflush.h>
6
7DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate)
8 ____cacheline_aligned = { &init_mm, 0, };
9
10/* must come after the send_IPI functions above for inlining */
11#include <mach_ipi.h>
12
13/*
14 * Smarter SMP flushing macros.
15 * c/o Linus Torvalds.
16 *
17 * These mean you can really definitely utterly forget about
18 * writing to user space from interrupts. (Its not allowed anyway).
19 *
20 * Optimizations Manfred Spraul <manfred@colorfullife.com>
21 */
22
23static cpumask_var_t flush_cpumask;
24static struct mm_struct *flush_mm;
25static unsigned long flush_va;
26static DEFINE_SPINLOCK(tlbstate_lock);
27
28/*
29 * We cannot call mmdrop() because we are in interrupt context,
30 * instead update mm->cpu_vm_mask.
31 *
32 * We need to reload %cr3 since the page tables may be going
33 * away from under us..
34 */
35void leave_mm(int cpu)
36{
37 BUG_ON(x86_read_percpu(cpu_tlbstate.state) == TLBSTATE_OK);
38 cpu_clear(cpu, x86_read_percpu(cpu_tlbstate.active_mm)->cpu_vm_mask);
39 load_cr3(swapper_pg_dir);
40}
41EXPORT_SYMBOL_GPL(leave_mm);
42
43/*
44 *
45 * The flush IPI assumes that a thread switch happens in this order:
46 * [cpu0: the cpu that switches]
47 * 1) switch_mm() either 1a) or 1b)
48 * 1a) thread switch to a different mm
49 * 1a1) cpu_clear(cpu, old_mm->cpu_vm_mask);
50 * Stop ipi delivery for the old mm. This is not synchronized with
51 * the other cpus, but smp_invalidate_interrupt ignore flush ipis
52 * for the wrong mm, and in the worst case we perform a superfluous
53 * tlb flush.
54 * 1a2) set cpu_tlbstate to TLBSTATE_OK
55 * Now the smp_invalidate_interrupt won't call leave_mm if cpu0
56 * was in lazy tlb mode.
57 * 1a3) update cpu_tlbstate[].active_mm
58 * Now cpu0 accepts tlb flushes for the new mm.
59 * 1a4) cpu_set(cpu, new_mm->cpu_vm_mask);
60 * Now the other cpus will send tlb flush ipis.
61 * 1a4) change cr3.
62 * 1b) thread switch without mm change
63 * cpu_tlbstate[].active_mm is correct, cpu0 already handles
64 * flush ipis.
65 * 1b1) set cpu_tlbstate to TLBSTATE_OK
66 * 1b2) test_and_set the cpu bit in cpu_vm_mask.
67 * Atomically set the bit [other cpus will start sending flush ipis],
68 * and test the bit.
69 * 1b3) if the bit was 0: leave_mm was called, flush the tlb.
70 * 2) switch %%esp, ie current
71 *
72 * The interrupt must handle 2 special cases:
73 * - cr3 is changed before %%esp, ie. it cannot use current->{active_,}mm.
74 * - the cpu performs speculative tlb reads, i.e. even if the cpu only
75 * runs in kernel space, the cpu could load tlb entries for user space
76 * pages.
77 *
78 * The good news is that cpu_tlbstate is local to each cpu, no
79 * write/read ordering problems.
80 */
81
82/*
83 * TLB flush IPI:
84 *
85 * 1) Flush the tlb entries if the cpu uses the mm that's being flushed.
86 * 2) Leave the mm if we are in the lazy tlb mode.
87 */
88
89void smp_invalidate_interrupt(struct pt_regs *regs)
90{
91 unsigned long cpu;
92
93 cpu = get_cpu();
94
95 if (!cpumask_test_cpu(cpu, flush_cpumask))
96 goto out;
97 /*
98 * This was a BUG() but until someone can quote me the
99 * line from the intel manual that guarantees an IPI to
100 * multiple CPUs is retried _only_ on the erroring CPUs
101 * its staying as a return
102 *
103 * BUG();
104 */
105
106 if (flush_mm == x86_read_percpu(cpu_tlbstate.active_mm)) {
107 if (x86_read_percpu(cpu_tlbstate.state) == TLBSTATE_OK) {
108 if (flush_va == TLB_FLUSH_ALL)
109 local_flush_tlb();
110 else
111 __flush_tlb_one(flush_va);
112 } else
113 leave_mm(cpu);
114 }
115 ack_APIC_irq();
116 smp_mb__before_clear_bit();
117 cpumask_clear_cpu(cpu, flush_cpumask);
118 smp_mb__after_clear_bit();
119out:
120 put_cpu_no_resched();
121 inc_irq_stat(irq_tlb_count);
122}
123
124void native_flush_tlb_others(const struct cpumask *cpumask,
125 struct mm_struct *mm, unsigned long va)
126{
127 /*
128 * mm must exist :)
129 */
130 BUG_ON(!mm);
131
132 /*
133 * i'm not happy about this global shared spinlock in the
134 * MM hot path, but we'll see how contended it is.
135 * AK: x86-64 has a faster method that could be ported.
136 */
137 spin_lock(&tlbstate_lock);
138
139 cpumask_andnot(flush_cpumask, cpumask, cpumask_of(smp_processor_id()));
140 cpumask_and(flush_cpumask, flush_cpumask, cpu_online_mask);
141
142 /*
143 * If a task whose mm mask we are looking at has descheduled and
144 * has cleared its presence from the mask, or if a CPU which we ran
145 * on has gone down then there might be no flush work left:
146 */
147 if (unlikely(cpumask_empty(flush_cpumask))) {
148 spin_unlock(&tlbstate_lock);
149 return;
150 }
151
152 flush_mm = mm;
153 flush_va = va;
154
155 /*
156 * Make the above memory operations globally visible before
157 * sending the IPI.
158 */
159 smp_mb();
160 /*
161 * We have to send the IPI only to
162 * CPUs affected.
163 */
164 send_IPI_mask(flush_cpumask, INVALIDATE_TLB_VECTOR);
165
166 while (!cpumask_empty(flush_cpumask))
167 /* nothing. lockup detection does not belong here */
168 cpu_relax();
169
170 flush_mm = NULL;
171 flush_va = 0;
172 spin_unlock(&tlbstate_lock);
173}
174
175void flush_tlb_current_task(void)
176{
177 struct mm_struct *mm = current->mm;
178
179 preempt_disable();
180
181 local_flush_tlb();
182 if (cpumask_any_but(&mm->cpu_vm_mask, smp_processor_id()) < nr_cpu_ids)
183 flush_tlb_others(&mm->cpu_vm_mask, mm, TLB_FLUSH_ALL);
184 preempt_enable();
185}
186
187void flush_tlb_mm(struct mm_struct *mm)
188{
189
190 preempt_disable();
191
192 if (current->active_mm == mm) {
193 if (current->mm)
194 local_flush_tlb();
195 else
196 leave_mm(smp_processor_id());
197 }
198 if (cpumask_any_but(&mm->cpu_vm_mask, smp_processor_id()) < nr_cpu_ids)
199 flush_tlb_others(&mm->cpu_vm_mask, mm, TLB_FLUSH_ALL);
200
201 preempt_enable();
202}
203
204void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)
205{
206 struct mm_struct *mm = vma->vm_mm;
207
208 preempt_disable();
209
210 if (current->active_mm == mm) {
211 if (current->mm)
212 __flush_tlb_one(va);
213 else
214 leave_mm(smp_processor_id());
215 }
216
217 if (cpumask_any_but(&mm->cpu_vm_mask, smp_processor_id()) < nr_cpu_ids)
218 flush_tlb_others(&mm->cpu_vm_mask, mm, va);
219 preempt_enable();
220}
221EXPORT_SYMBOL(flush_tlb_page);
222
223static void do_flush_tlb_all(void *info)
224{
225 unsigned long cpu = smp_processor_id();
226
227 __flush_tlb_all();
228 if (x86_read_percpu(cpu_tlbstate.state) == TLBSTATE_LAZY)
229 leave_mm(cpu);
230}
231
232void flush_tlb_all(void)
233{
234 on_each_cpu(do_flush_tlb_all, NULL, 1);
235}
236
237void reset_lazy_tlbstate(void)
238{
239 int cpu = raw_smp_processor_id();
240
241 per_cpu(cpu_tlbstate, cpu).state = 0;
242 per_cpu(cpu_tlbstate, cpu).active_mm = &init_mm;
243}
244
245static int init_flush_cpumask(void)
246{
247 alloc_cpumask_var(&flush_cpumask, GFP_KERNEL);
248 return 0;
249}
250early_initcall(init_flush_cpumask);
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index 690dcf1a27d4..d038b9c45cf8 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -11,16 +11,15 @@
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12 12
13#include <asm/mmu_context.h> 13#include <asm/mmu_context.h>
14#include <asm/uv/uv.h>
14#include <asm/uv/uv_mmrs.h> 15#include <asm/uv/uv_mmrs.h>
15#include <asm/uv/uv_hub.h> 16#include <asm/uv/uv_hub.h>
16#include <asm/uv/uv_bau.h> 17#include <asm/uv/uv_bau.h>
17#include <asm/genapic.h> 18#include <asm/apic.h>
18#include <asm/idle.h> 19#include <asm/idle.h>
19#include <asm/tsc.h> 20#include <asm/tsc.h>
20#include <asm/irq_vectors.h> 21#include <asm/irq_vectors.h>
21 22
22#include <mach_apic.h>
23
24static struct bau_control **uv_bau_table_bases __read_mostly; 23static struct bau_control **uv_bau_table_bases __read_mostly;
25static int uv_bau_retry_limit __read_mostly; 24static int uv_bau_retry_limit __read_mostly;
26 25
@@ -200,6 +199,7 @@ static int uv_wait_completion(struct bau_desc *bau_desc,
200 destination_timeouts = 0; 199 destination_timeouts = 0;
201 } 200 }
202 } 201 }
202 cpu_relax();
203 } 203 }
204 return FLUSH_COMPLETE; 204 return FLUSH_COMPLETE;
205} 205}
@@ -209,14 +209,15 @@ static int uv_wait_completion(struct bau_desc *bau_desc,
209 * 209 *
210 * Send a broadcast and wait for a broadcast message to complete. 210 * Send a broadcast and wait for a broadcast message to complete.
211 * 211 *
212 * The cpumaskp mask contains the cpus the broadcast was sent to. 212 * The flush_mask contains the cpus the broadcast was sent to.
213 * 213 *
214 * Returns 1 if all remote flushing was done. The mask is zeroed. 214 * Returns NULL if all remote flushing was done. The mask is zeroed.
215 * Returns 0 if some remote flushing remains to be done. The mask will have 215 * Returns @flush_mask if some remote flushing remains to be done. The
216 * some bits still set. 216 * mask will have some bits still set.
217 */ 217 */
218int uv_flush_send_and_wait(int cpu, int this_blade, struct bau_desc *bau_desc, 218const struct cpumask *uv_flush_send_and_wait(int cpu, int this_blade,
219 struct cpumask *cpumaskp) 219 struct bau_desc *bau_desc,
220 struct cpumask *flush_mask)
220{ 221{
221 int completion_status = 0; 222 int completion_status = 0;
222 int right_shift; 223 int right_shift;
@@ -256,66 +257,74 @@ int uv_flush_send_and_wait(int cpu, int this_blade, struct bau_desc *bau_desc,
256 * the cpu's, all of which are still in the mask. 257 * the cpu's, all of which are still in the mask.
257 */ 258 */
258 __get_cpu_var(ptcstats).ptc_i++; 259 __get_cpu_var(ptcstats).ptc_i++;
259 return 0; 260 return flush_mask;
260 } 261 }
261 262
262 /* 263 /*
263 * Success, so clear the remote cpu's from the mask so we don't 264 * Success, so clear the remote cpu's from the mask so we don't
264 * use the IPI method of shootdown on them. 265 * use the IPI method of shootdown on them.
265 */ 266 */
266 for_each_cpu(bit, cpumaskp) { 267 for_each_cpu(bit, flush_mask) {
267 blade = uv_cpu_to_blade_id(bit); 268 blade = uv_cpu_to_blade_id(bit);
268 if (blade == this_blade) 269 if (blade == this_blade)
269 continue; 270 continue;
270 cpumask_clear_cpu(bit, cpumaskp); 271 cpumask_clear_cpu(bit, flush_mask);
271 } 272 }
272 if (!cpumask_empty(cpumaskp)) 273 if (!cpumask_empty(flush_mask))
273 return 0; 274 return flush_mask;
274 return 1; 275 return NULL;
275} 276}
276 277
277/** 278/**
278 * uv_flush_tlb_others - globally purge translation cache of a virtual 279 * uv_flush_tlb_others - globally purge translation cache of a virtual
279 * address or all TLB's 280 * address or all TLB's
280 * @cpumaskp: mask of all cpu's in which the address is to be removed 281 * @cpumask: mask of all cpu's in which the address is to be removed
281 * @mm: mm_struct containing virtual address range 282 * @mm: mm_struct containing virtual address range
282 * @va: virtual address to be removed (or TLB_FLUSH_ALL for all TLB's on cpu) 283 * @va: virtual address to be removed (or TLB_FLUSH_ALL for all TLB's on cpu)
284 * @cpu: the current cpu
283 * 285 *
284 * This is the entry point for initiating any UV global TLB shootdown. 286 * This is the entry point for initiating any UV global TLB shootdown.
285 * 287 *
286 * Purges the translation caches of all specified processors of the given 288 * Purges the translation caches of all specified processors of the given
287 * virtual address, or purges all TLB's on specified processors. 289 * virtual address, or purges all TLB's on specified processors.
288 * 290 *
289 * The caller has derived the cpumaskp from the mm_struct and has subtracted 291 * The caller has derived the cpumask from the mm_struct. This function
290 * the local cpu from the mask. This function is called only if there 292 * is called only if there are bits set in the mask. (e.g. flush_tlb_page())
291 * are bits set in the mask. (e.g. flush_tlb_page())
292 * 293 *
293 * The cpumaskp is converted into a nodemask of the nodes containing 294 * The cpumask is converted into a nodemask of the nodes containing
294 * the cpus. 295 * the cpus.
295 * 296 *
296 * Returns 1 if all remote flushing was done. 297 * Note that this function should be called with preemption disabled.
297 * Returns 0 if some remote flushing remains to be done. 298 *
299 * Returns NULL if all remote flushing was done.
300 * Returns pointer to cpumask if some remote flushing remains to be
301 * done. The returned pointer is valid till preemption is re-enabled.
298 */ 302 */
299int uv_flush_tlb_others(struct cpumask *cpumaskp, struct mm_struct *mm, 303const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
300 unsigned long va) 304 struct mm_struct *mm,
305 unsigned long va, unsigned int cpu)
301{ 306{
307 static DEFINE_PER_CPU(cpumask_t, flush_tlb_mask);
308 struct cpumask *flush_mask = &__get_cpu_var(flush_tlb_mask);
302 int i; 309 int i;
303 int bit; 310 int bit;
304 int blade; 311 int blade;
305 int cpu; 312 int uv_cpu;
306 int this_blade; 313 int this_blade;
307 int locals = 0; 314 int locals = 0;
308 struct bau_desc *bau_desc; 315 struct bau_desc *bau_desc;
309 316
310 cpu = uv_blade_processor_id(); 317 cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu));
318
319 uv_cpu = uv_blade_processor_id();
311 this_blade = uv_numa_blade_id(); 320 this_blade = uv_numa_blade_id();
312 bau_desc = __get_cpu_var(bau_control).descriptor_base; 321 bau_desc = __get_cpu_var(bau_control).descriptor_base;
313 bau_desc += UV_ITEMS_PER_DESCRIPTOR * cpu; 322 bau_desc += UV_ITEMS_PER_DESCRIPTOR * uv_cpu;
314 323
315 bau_nodes_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE); 324 bau_nodes_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE);
316 325
317 i = 0; 326 i = 0;
318 for_each_cpu(bit, cpumaskp) { 327 for_each_cpu(bit, flush_mask) {
319 blade = uv_cpu_to_blade_id(bit); 328 blade = uv_cpu_to_blade_id(bit);
320 BUG_ON(blade > (UV_DISTRIBUTION_SIZE - 1)); 329 BUG_ON(blade > (UV_DISTRIBUTION_SIZE - 1));
321 if (blade == this_blade) { 330 if (blade == this_blade) {
@@ -330,17 +339,17 @@ int uv_flush_tlb_others(struct cpumask *cpumaskp, struct mm_struct *mm,
330 * no off_node flushing; return status for local node 339 * no off_node flushing; return status for local node
331 */ 340 */
332 if (locals) 341 if (locals)
333 return 0; 342 return flush_mask;
334 else 343 else
335 return 1; 344 return NULL;
336 } 345 }
337 __get_cpu_var(ptcstats).requestor++; 346 __get_cpu_var(ptcstats).requestor++;
338 __get_cpu_var(ptcstats).ntargeted += i; 347 __get_cpu_var(ptcstats).ntargeted += i;
339 348
340 bau_desc->payload.address = va; 349 bau_desc->payload.address = va;
341 bau_desc->payload.sending_cpu = smp_processor_id(); 350 bau_desc->payload.sending_cpu = cpu;
342 351
343 return uv_flush_send_and_wait(cpu, this_blade, bau_desc, cpumaskp); 352 return uv_flush_send_and_wait(uv_cpu, this_blade, bau_desc, flush_mask);
344} 353}
345 354
346/* 355/*
diff --git a/arch/x86/kernel/trampoline_32.S b/arch/x86/kernel/trampoline_32.S
index d8ccc3c6552f..66d874e5404c 100644
--- a/arch/x86/kernel/trampoline_32.S
+++ b/arch/x86/kernel/trampoline_32.S
@@ -29,7 +29,7 @@
29 29
30#include <linux/linkage.h> 30#include <linux/linkage.h>
31#include <asm/segment.h> 31#include <asm/segment.h>
32#include <asm/page.h> 32#include <asm/page_types.h>
33 33
34/* We can free up trampoline after bootup if cpu hotplug is not supported. */ 34/* We can free up trampoline after bootup if cpu hotplug is not supported. */
35#ifndef CONFIG_HOTPLUG_CPU 35#ifndef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/kernel/trampoline_64.S b/arch/x86/kernel/trampoline_64.S
index 894293c598db..cddfb8d386b9 100644
--- a/arch/x86/kernel/trampoline_64.S
+++ b/arch/x86/kernel/trampoline_64.S
@@ -25,10 +25,11 @@
25 */ 25 */
26 26
27#include <linux/linkage.h> 27#include <linux/linkage.h>
28#include <asm/pgtable.h> 28#include <asm/pgtable_types.h>
29#include <asm/page.h> 29#include <asm/page_types.h>
30#include <asm/msr.h> 30#include <asm/msr.h>
31#include <asm/segment.h> 31#include <asm/segment.h>
32#include <asm/processor-flags.h>
32 33
33.section .rodata, "a", @progbits 34.section .rodata, "a", @progbits
34 35
@@ -37,7 +38,7 @@
37ENTRY(trampoline_data) 38ENTRY(trampoline_data)
38r_base = . 39r_base = .
39 cli # We should be safe anyway 40 cli # We should be safe anyway
40 wbinvd 41 wbinvd
41 mov %cs, %ax # Code and data in the same place 42 mov %cs, %ax # Code and data in the same place
42 mov %ax, %ds 43 mov %ax, %ds
43 mov %ax, %es 44 mov %ax, %es
@@ -73,9 +74,8 @@ r_base = .
73 lidtl tidt - r_base # load idt with 0, 0 74 lidtl tidt - r_base # load idt with 0, 0
74 lgdtl tgdt - r_base # load gdt with whatever is appropriate 75 lgdtl tgdt - r_base # load gdt with whatever is appropriate
75 76
76 xor %ax, %ax 77 mov $X86_CR0_PE, %ax # protected mode (PE) bit
77 inc %ax # protected mode (PE) bit 78 lmsw %ax # into protected mode
78 lmsw %ax # into protected mode
79 79
80 # flush prefetch and jump to startup_32 80 # flush prefetch and jump to startup_32
81 ljmpl *(startup_32_vector - r_base) 81 ljmpl *(startup_32_vector - r_base)
@@ -86,9 +86,8 @@ startup_32:
86 movl $__KERNEL_DS, %eax # Initialize the %ds segment register 86 movl $__KERNEL_DS, %eax # Initialize the %ds segment register
87 movl %eax, %ds 87 movl %eax, %ds
88 88
89 xorl %eax, %eax 89 movl $X86_CR4_PAE, %eax
90 btsl $5, %eax # Enable PAE mode 90 movl %eax, %cr4 # Enable PAE mode
91 movl %eax, %cr4
92 91
93 # Setup trampoline 4 level pagetables 92 # Setup trampoline 4 level pagetables
94 leal (trampoline_level4_pgt - r_base)(%esi), %eax 93 leal (trampoline_level4_pgt - r_base)(%esi), %eax
@@ -99,9 +98,9 @@ startup_32:
99 xorl %edx, %edx 98 xorl %edx, %edx
100 wrmsr 99 wrmsr
101 100
102 xorl %eax, %eax 101 # Enable paging and in turn activate Long Mode
103 btsl $31, %eax # Enable paging and in turn activate Long Mode 102 # Enable protected mode
104 btsl $0, %eax # Enable protected mode 103 movl $(X86_CR0_PG | X86_CR0_PE), %eax
105 movl %eax, %cr0 104 movl %eax, %cr0
106 105
107 /* 106 /*
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 98c2d055284b..a1d288327ff0 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -54,15 +54,14 @@
54#include <asm/desc.h> 54#include <asm/desc.h>
55#include <asm/i387.h> 55#include <asm/i387.h>
56 56
57#include <mach_traps.h> 57#include <asm/mach_traps.h>
58 58
59#ifdef CONFIG_X86_64 59#ifdef CONFIG_X86_64
60#include <asm/pgalloc.h> 60#include <asm/pgalloc.h>
61#include <asm/proto.h> 61#include <asm/proto.h>
62#include <asm/pda.h>
63#else 62#else
64#include <asm/processor-flags.h> 63#include <asm/processor-flags.h>
65#include <asm/arch_hooks.h> 64#include <asm/setup.h>
66#include <asm/traps.h> 65#include <asm/traps.h>
67 66
68#include "cpu/mcheck/mce.h" 67#include "cpu/mcheck/mce.h"
@@ -99,6 +98,12 @@ static inline void preempt_conditional_sti(struct pt_regs *regs)
99 local_irq_enable(); 98 local_irq_enable();
100} 99}
101 100
101static inline void conditional_cli(struct pt_regs *regs)
102{
103 if (regs->flags & X86_EFLAGS_IF)
104 local_irq_disable();
105}
106
102static inline void preempt_conditional_cli(struct pt_regs *regs) 107static inline void preempt_conditional_cli(struct pt_regs *regs)
103{ 108{
104 if (regs->flags & X86_EFLAGS_IF) 109 if (regs->flags & X86_EFLAGS_IF)
@@ -113,47 +118,6 @@ die_if_kernel(const char *str, struct pt_regs *regs, long err)
113 if (!user_mode_vm(regs)) 118 if (!user_mode_vm(regs))
114 die(str, regs, err); 119 die(str, regs, err);
115} 120}
116
117/*
118 * Perform the lazy TSS's I/O bitmap copy. If the TSS has an
119 * invalid offset set (the LAZY one) and the faulting thread has
120 * a valid I/O bitmap pointer, we copy the I/O bitmap in the TSS,
121 * we set the offset field correctly and return 1.
122 */
123static int lazy_iobitmap_copy(void)
124{
125 struct thread_struct *thread;
126 struct tss_struct *tss;
127 int cpu;
128
129 cpu = get_cpu();
130 tss = &per_cpu(init_tss, cpu);
131 thread = &current->thread;
132
133 if (tss->x86_tss.io_bitmap_base == INVALID_IO_BITMAP_OFFSET_LAZY &&
134 thread->io_bitmap_ptr) {
135 memcpy(tss->io_bitmap, thread->io_bitmap_ptr,
136 thread->io_bitmap_max);
137 /*
138 * If the previously set map was extending to higher ports
139 * than the current one, pad extra space with 0xff (no access).
140 */
141 if (thread->io_bitmap_max < tss->io_bitmap_max) {
142 memset((char *) tss->io_bitmap +
143 thread->io_bitmap_max, 0xff,
144 tss->io_bitmap_max - thread->io_bitmap_max);
145 }
146 tss->io_bitmap_max = thread->io_bitmap_max;
147 tss->x86_tss.io_bitmap_base = IO_BITMAP_OFFSET;
148 tss->io_bitmap_owner = thread;
149 put_cpu();
150
151 return 1;
152 }
153 put_cpu();
154
155 return 0;
156}
157#endif 121#endif
158 122
159static void __kprobes 123static void __kprobes
@@ -304,11 +268,6 @@ do_general_protection(struct pt_regs *regs, long error_code)
304 conditional_sti(regs); 268 conditional_sti(regs);
305 269
306#ifdef CONFIG_X86_32 270#ifdef CONFIG_X86_32
307 if (lazy_iobitmap_copy()) {
308 /* restart the faulting instruction */
309 return;
310 }
311
312 if (regs->flags & X86_VM_MASK) 271 if (regs->flags & X86_VM_MASK)
313 goto gp_in_vm86; 272 goto gp_in_vm86;
314#endif 273#endif
@@ -626,8 +585,10 @@ clear_dr7:
626 585
627#ifdef CONFIG_X86_32 586#ifdef CONFIG_X86_32
628debug_vm86: 587debug_vm86:
588 /* reenable preemption: handle_vm86_trap() might sleep */
589 dec_preempt_count();
629 handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, 1); 590 handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, 1);
630 preempt_conditional_cli(regs); 591 conditional_cli(regs);
631 return; 592 return;
632#endif 593#endif
633 594
@@ -896,7 +857,7 @@ asmlinkage void math_state_restore(void)
896EXPORT_SYMBOL_GPL(math_state_restore); 857EXPORT_SYMBOL_GPL(math_state_restore);
897 858
898#ifndef CONFIG_MATH_EMULATION 859#ifndef CONFIG_MATH_EMULATION
899asmlinkage void math_emulate(long arg) 860void math_emulate(struct math_emu_info *info)
900{ 861{
901 printk(KERN_EMERG 862 printk(KERN_EMERG
902 "math-emulation not enabled and no coprocessor found.\n"); 863 "math-emulation not enabled and no coprocessor found.\n");
@@ -907,12 +868,16 @@ asmlinkage void math_emulate(long arg)
907#endif /* CONFIG_MATH_EMULATION */ 868#endif /* CONFIG_MATH_EMULATION */
908 869
909dotraplinkage void __kprobes 870dotraplinkage void __kprobes
910do_device_not_available(struct pt_regs *regs, long error) 871do_device_not_available(struct pt_regs *regs, long error_code)
911{ 872{
912#ifdef CONFIG_X86_32 873#ifdef CONFIG_X86_32
913 if (read_cr0() & X86_CR0_EM) { 874 if (read_cr0() & X86_CR0_EM) {
875 struct math_emu_info info = { };
876
914 conditional_sti(regs); 877 conditional_sti(regs);
915 math_emulate(0); 878
879 info.regs = regs;
880 math_emulate(&info);
916 } else { 881 } else {
917 math_state_restore(); /* interrupts still off */ 882 math_state_restore(); /* interrupts still off */
918 conditional_sti(regs); 883 conditional_sti(regs);
@@ -931,7 +896,7 @@ dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code)
931 info.si_signo = SIGILL; 896 info.si_signo = SIGILL;
932 info.si_errno = 0; 897 info.si_errno = 0;
933 info.si_code = ILL_BADSTK; 898 info.si_code = ILL_BADSTK;
934 info.si_addr = 0; 899 info.si_addr = NULL;
935 if (notify_die(DIE_TRAP, "iret exception", 900 if (notify_die(DIE_TRAP, "iret exception",
936 regs, error_code, 32, SIGILL) == NOTIFY_STOP) 901 regs, error_code, 32, SIGILL) == NOTIFY_STOP)
937 return; 902 return;
@@ -1015,6 +980,6 @@ void __init trap_init(void)
1015 cpu_init(); 980 cpu_init();
1016 981
1017#ifdef CONFIG_X86_32 982#ifdef CONFIG_X86_32
1018 trap_init_hook(); 983 x86_quirk_trap_init();
1019#endif 984#endif
1020} 985}
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 599e58168631..83d53ce5d4c4 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -773,7 +773,7 @@ __cpuinit int unsynchronized_tsc(void)
773 if (!cpu_has_tsc || tsc_unstable) 773 if (!cpu_has_tsc || tsc_unstable)
774 return 1; 774 return 1;
775 775
776#ifdef CONFIG_X86_SMP 776#ifdef CONFIG_SMP
777 if (apic_is_clustered_box()) 777 if (apic_is_clustered_box())
778 return 1; 778 return 1;
779#endif 779#endif
diff --git a/arch/x86/kernel/uv_time.c b/arch/x86/kernel/uv_time.c
new file mode 100644
index 000000000000..2ffb6c53326e
--- /dev/null
+++ b/arch/x86/kernel/uv_time.c
@@ -0,0 +1,393 @@
1/*
2 * SGI RTC clock/timer routines.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * Copyright (c) 2009 Silicon Graphics, Inc. All Rights Reserved.
19 * Copyright (c) Dimitri Sivanich
20 */
21#include <linux/clockchips.h>
22
23#include <asm/uv/uv_mmrs.h>
24#include <asm/uv/uv_hub.h>
25#include <asm/uv/bios.h>
26#include <asm/uv/uv.h>
27#include <asm/apic.h>
28#include <asm/cpu.h>
29
30#define RTC_NAME "sgi_rtc"
31
32static cycle_t uv_read_rtc(void);
33static int uv_rtc_next_event(unsigned long, struct clock_event_device *);
34static void uv_rtc_timer_setup(enum clock_event_mode,
35 struct clock_event_device *);
36
37static struct clocksource clocksource_uv = {
38 .name = RTC_NAME,
39 .rating = 400,
40 .read = uv_read_rtc,
41 .mask = (cycle_t)UVH_RTC_REAL_TIME_CLOCK_MASK,
42 .shift = 10,
43 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
44};
45
46static struct clock_event_device clock_event_device_uv = {
47 .name = RTC_NAME,
48 .features = CLOCK_EVT_FEAT_ONESHOT,
49 .shift = 20,
50 .rating = 400,
51 .irq = -1,
52 .set_next_event = uv_rtc_next_event,
53 .set_mode = uv_rtc_timer_setup,
54 .event_handler = NULL,
55};
56
57static DEFINE_PER_CPU(struct clock_event_device, cpu_ced);
58
59/* There is one of these allocated per node */
60struct uv_rtc_timer_head {
61 spinlock_t lock;
62 /* next cpu waiting for timer, local node relative: */
63 int next_cpu;
64 /* number of cpus on this node: */
65 int ncpus;
66 struct {
67 int lcpu; /* systemwide logical cpu number */
68 u64 expires; /* next timer expiration for this cpu */
69 } cpu[1];
70};
71
72/*
73 * Access to uv_rtc_timer_head via blade id.
74 */
75static struct uv_rtc_timer_head **blade_info __read_mostly;
76
77static int uv_rtc_enable;
78
79/*
80 * Hardware interface routines
81 */
82
83/* Send IPIs to another node */
84static void uv_rtc_send_IPI(int cpu)
85{
86 unsigned long apicid, val;
87 int pnode;
88
89 apicid = cpu_physical_id(cpu);
90 pnode = uv_apicid_to_pnode(apicid);
91 val = (1UL << UVH_IPI_INT_SEND_SHFT) |
92 (apicid << UVH_IPI_INT_APIC_ID_SHFT) |
93 (GENERIC_INTERRUPT_VECTOR << UVH_IPI_INT_VECTOR_SHFT);
94
95 uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
96}
97
98/* Check for an RTC interrupt pending */
99static int uv_intr_pending(int pnode)
100{
101 return uv_read_global_mmr64(pnode, UVH_EVENT_OCCURRED0) &
102 UVH_EVENT_OCCURRED0_RTC1_MASK;
103}
104
105/* Setup interrupt and return non-zero if early expiration occurred. */
106static int uv_setup_intr(int cpu, u64 expires)
107{
108 u64 val;
109 int pnode = uv_cpu_to_pnode(cpu);
110
111 uv_write_global_mmr64(pnode, UVH_RTC1_INT_CONFIG,
112 UVH_RTC1_INT_CONFIG_M_MASK);
113 uv_write_global_mmr64(pnode, UVH_INT_CMPB, -1L);
114
115 uv_write_global_mmr64(pnode, UVH_EVENT_OCCURRED0_ALIAS,
116 UVH_EVENT_OCCURRED0_RTC1_MASK);
117
118 val = (GENERIC_INTERRUPT_VECTOR << UVH_RTC1_INT_CONFIG_VECTOR_SHFT) |
119 ((u64)cpu_physical_id(cpu) << UVH_RTC1_INT_CONFIG_APIC_ID_SHFT);
120
121 /* Set configuration */
122 uv_write_global_mmr64(pnode, UVH_RTC1_INT_CONFIG, val);
123 /* Initialize comparator value */
124 uv_write_global_mmr64(pnode, UVH_INT_CMPB, expires);
125
126 return (expires < uv_read_rtc() && !uv_intr_pending(pnode));
127}
128
129/*
130 * Per-cpu timer tracking routines
131 */
132
133static __init void uv_rtc_deallocate_timers(void)
134{
135 int bid;
136
137 for_each_possible_blade(bid) {
138 kfree(blade_info[bid]);
139 }
140 kfree(blade_info);
141}
142
143/* Allocate per-node list of cpu timer expiration times. */
144static __init int uv_rtc_allocate_timers(void)
145{
146 int cpu;
147
148 blade_info = kmalloc(uv_possible_blades * sizeof(void *), GFP_KERNEL);
149 if (!blade_info)
150 return -ENOMEM;
151 memset(blade_info, 0, uv_possible_blades * sizeof(void *));
152
153 for_each_present_cpu(cpu) {
154 int nid = cpu_to_node(cpu);
155 int bid = uv_cpu_to_blade_id(cpu);
156 int bcpu = uv_cpu_hub_info(cpu)->blade_processor_id;
157 struct uv_rtc_timer_head *head = blade_info[bid];
158
159 if (!head) {
160 head = kmalloc_node(sizeof(struct uv_rtc_timer_head) +
161 (uv_blade_nr_possible_cpus(bid) *
162 2 * sizeof(u64)),
163 GFP_KERNEL, nid);
164 if (!head) {
165 uv_rtc_deallocate_timers();
166 return -ENOMEM;
167 }
168 spin_lock_init(&head->lock);
169 head->ncpus = uv_blade_nr_possible_cpus(bid);
170 head->next_cpu = -1;
171 blade_info[bid] = head;
172 }
173
174 head->cpu[bcpu].lcpu = cpu;
175 head->cpu[bcpu].expires = ULLONG_MAX;
176 }
177
178 return 0;
179}
180
181/* Find and set the next expiring timer. */
182static void uv_rtc_find_next_timer(struct uv_rtc_timer_head *head, int pnode)
183{
184 u64 lowest = ULLONG_MAX;
185 int c, bcpu = -1;
186
187 head->next_cpu = -1;
188 for (c = 0; c < head->ncpus; c++) {
189 u64 exp = head->cpu[c].expires;
190 if (exp < lowest) {
191 bcpu = c;
192 lowest = exp;
193 }
194 }
195 if (bcpu >= 0) {
196 head->next_cpu = bcpu;
197 c = head->cpu[bcpu].lcpu;
198 if (uv_setup_intr(c, lowest))
199 /* If we didn't set it up in time, trigger */
200 uv_rtc_send_IPI(c);
201 } else {
202 uv_write_global_mmr64(pnode, UVH_RTC1_INT_CONFIG,
203 UVH_RTC1_INT_CONFIG_M_MASK);
204 }
205}
206
207/*
208 * Set expiration time for current cpu.
209 *
210 * Returns 1 if we missed the expiration time.
211 */
212static int uv_rtc_set_timer(int cpu, u64 expires)
213{
214 int pnode = uv_cpu_to_pnode(cpu);
215 int bid = uv_cpu_to_blade_id(cpu);
216 struct uv_rtc_timer_head *head = blade_info[bid];
217 int bcpu = uv_cpu_hub_info(cpu)->blade_processor_id;
218 u64 *t = &head->cpu[bcpu].expires;
219 unsigned long flags;
220 int next_cpu;
221
222 spin_lock_irqsave(&head->lock, flags);
223
224 next_cpu = head->next_cpu;
225 *t = expires;
226 /* Will this one be next to go off? */
227 if (next_cpu < 0 || bcpu == next_cpu ||
228 expires < head->cpu[next_cpu].expires) {
229 head->next_cpu = bcpu;
230 if (uv_setup_intr(cpu, expires)) {
231 *t = ULLONG_MAX;
232 uv_rtc_find_next_timer(head, pnode);
233 spin_unlock_irqrestore(&head->lock, flags);
234 return 1;
235 }
236 }
237
238 spin_unlock_irqrestore(&head->lock, flags);
239 return 0;
240}
241
242/*
243 * Unset expiration time for current cpu.
244 *
245 * Returns 1 if this timer was pending.
246 */
247static int uv_rtc_unset_timer(int cpu)
248{
249 int pnode = uv_cpu_to_pnode(cpu);
250 int bid = uv_cpu_to_blade_id(cpu);
251 struct uv_rtc_timer_head *head = blade_info[bid];
252 int bcpu = uv_cpu_hub_info(cpu)->blade_processor_id;
253 u64 *t = &head->cpu[bcpu].expires;
254 unsigned long flags;
255 int rc = 0;
256
257 spin_lock_irqsave(&head->lock, flags);
258
259 if (head->next_cpu == bcpu && uv_read_rtc() >= *t)
260 rc = 1;
261
262 *t = ULLONG_MAX;
263
264 /* Was the hardware setup for this timer? */
265 if (head->next_cpu == bcpu)
266 uv_rtc_find_next_timer(head, pnode);
267
268 spin_unlock_irqrestore(&head->lock, flags);
269
270 return rc;
271}
272
273
274/*
275 * Kernel interface routines.
276 */
277
278/*
279 * Read the RTC.
280 */
281static cycle_t uv_read_rtc(void)
282{
283 return (cycle_t)uv_read_local_mmr(UVH_RTC);
284}
285
286/*
287 * Program the next event, relative to now
288 */
289static int uv_rtc_next_event(unsigned long delta,
290 struct clock_event_device *ced)
291{
292 int ced_cpu = cpumask_first(ced->cpumask);
293
294 return uv_rtc_set_timer(ced_cpu, delta + uv_read_rtc());
295}
296
297/*
298 * Setup the RTC timer in oneshot mode
299 */
300static void uv_rtc_timer_setup(enum clock_event_mode mode,
301 struct clock_event_device *evt)
302{
303 int ced_cpu = cpumask_first(evt->cpumask);
304
305 switch (mode) {
306 case CLOCK_EVT_MODE_PERIODIC:
307 case CLOCK_EVT_MODE_ONESHOT:
308 case CLOCK_EVT_MODE_RESUME:
309 /* Nothing to do here yet */
310 break;
311 case CLOCK_EVT_MODE_UNUSED:
312 case CLOCK_EVT_MODE_SHUTDOWN:
313 uv_rtc_unset_timer(ced_cpu);
314 break;
315 }
316}
317
318static void uv_rtc_interrupt(void)
319{
320 struct clock_event_device *ced = &__get_cpu_var(cpu_ced);
321 int cpu = smp_processor_id();
322
323 if (!ced || !ced->event_handler)
324 return;
325
326 if (uv_rtc_unset_timer(cpu) != 1)
327 return;
328
329 ced->event_handler(ced);
330}
331
332static int __init uv_enable_rtc(char *str)
333{
334 uv_rtc_enable = 1;
335
336 return 1;
337}
338__setup("uvrtc", uv_enable_rtc);
339
340static __init void uv_rtc_register_clockevents(struct work_struct *dummy)
341{
342 struct clock_event_device *ced = &__get_cpu_var(cpu_ced);
343
344 *ced = clock_event_device_uv;
345 ced->cpumask = cpumask_of(smp_processor_id());
346 clockevents_register_device(ced);
347}
348
349static __init int uv_rtc_setup_clock(void)
350{
351 int rc;
352
353 if (!uv_rtc_enable || !is_uv_system() || generic_interrupt_extension)
354 return -ENODEV;
355
356 generic_interrupt_extension = uv_rtc_interrupt;
357
358 clocksource_uv.mult = clocksource_hz2mult(sn_rtc_cycles_per_second,
359 clocksource_uv.shift);
360
361 rc = clocksource_register(&clocksource_uv);
362 if (rc) {
363 generic_interrupt_extension = NULL;
364 return rc;
365 }
366
367 /* Setup and register clockevents */
368 rc = uv_rtc_allocate_timers();
369 if (rc) {
370 clocksource_unregister(&clocksource_uv);
371 generic_interrupt_extension = NULL;
372 return rc;
373 }
374
375 clock_event_device_uv.mult = div_sc(sn_rtc_cycles_per_second,
376 NSEC_PER_SEC, clock_event_device_uv.shift);
377
378 clock_event_device_uv.min_delta_ns = NSEC_PER_SEC /
379 sn_rtc_cycles_per_second;
380
381 clock_event_device_uv.max_delta_ns = clocksource_uv.mask *
382 (NSEC_PER_SEC / sn_rtc_cycles_per_second);
383
384 rc = schedule_on_each_cpu(uv_rtc_register_clockevents);
385 if (rc) {
386 clocksource_unregister(&clocksource_uv);
387 generic_interrupt_extension = NULL;
388 uv_rtc_deallocate_timers();
389 }
390
391 return rc;
392}
393arch_initcall(uv_rtc_setup_clock);
diff --git a/arch/x86/kernel/visws_quirks.c b/arch/x86/kernel/visws_quirks.c
index d801d06af068..31ffc24eec4d 100644
--- a/arch/x86/kernel/visws_quirks.c
+++ b/arch/x86/kernel/visws_quirks.c
@@ -24,18 +24,14 @@
24 24
25#include <asm/visws/cobalt.h> 25#include <asm/visws/cobalt.h>
26#include <asm/visws/piix4.h> 26#include <asm/visws/piix4.h>
27#include <asm/arch_hooks.h>
28#include <asm/io_apic.h> 27#include <asm/io_apic.h>
29#include <asm/fixmap.h> 28#include <asm/fixmap.h>
30#include <asm/reboot.h> 29#include <asm/reboot.h>
31#include <asm/setup.h> 30#include <asm/setup.h>
31#include <asm/apic.h>
32#include <asm/e820.h> 32#include <asm/e820.h>
33#include <asm/io.h> 33#include <asm/io.h>
34 34
35#include <mach_ipi.h>
36
37#include "mach_apic.h"
38
39#include <linux/kernel_stat.h> 35#include <linux/kernel_stat.h>
40 36
41#include <asm/i8259.h> 37#include <asm/i8259.h>
@@ -49,8 +45,6 @@
49 45
50extern int no_broadcast; 46extern int no_broadcast;
51 47
52#include <asm/apic.h>
53
54char visws_board_type = -1; 48char visws_board_type = -1;
55char visws_board_rev = -1; 49char visws_board_rev = -1;
56 50
@@ -200,7 +194,7 @@ static void __init MP_processor_info(struct mpc_cpu *m)
200 return; 194 return;
201 } 195 }
202 196
203 apic_cpus = apicid_to_cpu_present(m->apicid); 197 apic_cpus = apic->apicid_to_cpu_present(m->apicid);
204 physids_or(phys_cpu_present_map, phys_cpu_present_map, apic_cpus); 198 physids_or(phys_cpu_present_map, phys_cpu_present_map, apic_cpus);
205 /* 199 /*
206 * Validate version 200 * Validate version
@@ -584,7 +578,7 @@ static struct irq_chip piix4_virtual_irq_type = {
584static irqreturn_t piix4_master_intr(int irq, void *dev_id) 578static irqreturn_t piix4_master_intr(int irq, void *dev_id)
585{ 579{
586 int realirq; 580 int realirq;
587 irq_desc_t *desc; 581 struct irq_desc *desc;
588 unsigned long flags; 582 unsigned long flags;
589 583
590 spin_lock_irqsave(&i8259A_lock, flags); 584 spin_lock_irqsave(&i8259A_lock, flags);
diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index 4eeb5cf9720d..d7ac84e7fc1c 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -158,7 +158,7 @@ struct pt_regs *save_v86_state(struct kernel_vm86_regs *regs)
158 ret = KVM86->regs32; 158 ret = KVM86->regs32;
159 159
160 ret->fs = current->thread.saved_fs; 160 ret->fs = current->thread.saved_fs;
161 loadsegment(gs, current->thread.saved_gs); 161 set_user_gs(ret, current->thread.saved_gs);
162 162
163 return ret; 163 return ret;
164} 164}
@@ -197,9 +197,9 @@ out:
197static int do_vm86_irq_handling(int subfunction, int irqnumber); 197static int do_vm86_irq_handling(int subfunction, int irqnumber);
198static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk); 198static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk);
199 199
200asmlinkage int sys_vm86old(struct pt_regs regs) 200int sys_vm86old(struct pt_regs *regs)
201{ 201{
202 struct vm86_struct __user *v86 = (struct vm86_struct __user *)regs.bx; 202 struct vm86_struct __user *v86 = (struct vm86_struct __user *)regs->bx;
203 struct kernel_vm86_struct info; /* declare this _on top_, 203 struct kernel_vm86_struct info; /* declare this _on top_,
204 * this avoids wasting of stack space. 204 * this avoids wasting of stack space.
205 * This remains on the stack until we 205 * This remains on the stack until we
@@ -218,7 +218,7 @@ asmlinkage int sys_vm86old(struct pt_regs regs)
218 if (tmp) 218 if (tmp)
219 goto out; 219 goto out;
220 memset(&info.vm86plus, 0, (int)&info.regs32 - (int)&info.vm86plus); 220 memset(&info.vm86plus, 0, (int)&info.regs32 - (int)&info.vm86plus);
221 info.regs32 = &regs; 221 info.regs32 = regs;
222 tsk->thread.vm86_info = v86; 222 tsk->thread.vm86_info = v86;
223 do_sys_vm86(&info, tsk); 223 do_sys_vm86(&info, tsk);
224 ret = 0; /* we never return here */ 224 ret = 0; /* we never return here */
@@ -227,7 +227,7 @@ out:
227} 227}
228 228
229 229
230asmlinkage int sys_vm86(struct pt_regs regs) 230int sys_vm86(struct pt_regs *regs)
231{ 231{
232 struct kernel_vm86_struct info; /* declare this _on top_, 232 struct kernel_vm86_struct info; /* declare this _on top_,
233 * this avoids wasting of stack space. 233 * this avoids wasting of stack space.
@@ -239,12 +239,12 @@ asmlinkage int sys_vm86(struct pt_regs regs)
239 struct vm86plus_struct __user *v86; 239 struct vm86plus_struct __user *v86;
240 240
241 tsk = current; 241 tsk = current;
242 switch (regs.bx) { 242 switch (regs->bx) {
243 case VM86_REQUEST_IRQ: 243 case VM86_REQUEST_IRQ:
244 case VM86_FREE_IRQ: 244 case VM86_FREE_IRQ:
245 case VM86_GET_IRQ_BITS: 245 case VM86_GET_IRQ_BITS:
246 case VM86_GET_AND_RESET_IRQ: 246 case VM86_GET_AND_RESET_IRQ:
247 ret = do_vm86_irq_handling(regs.bx, (int)regs.cx); 247 ret = do_vm86_irq_handling(regs->bx, (int)regs->cx);
248 goto out; 248 goto out;
249 case VM86_PLUS_INSTALL_CHECK: 249 case VM86_PLUS_INSTALL_CHECK:
250 /* 250 /*
@@ -261,14 +261,14 @@ asmlinkage int sys_vm86(struct pt_regs regs)
261 ret = -EPERM; 261 ret = -EPERM;
262 if (tsk->thread.saved_sp0) 262 if (tsk->thread.saved_sp0)
263 goto out; 263 goto out;
264 v86 = (struct vm86plus_struct __user *)regs.cx; 264 v86 = (struct vm86plus_struct __user *)regs->cx;
265 tmp = copy_vm86_regs_from_user(&info.regs, &v86->regs, 265 tmp = copy_vm86_regs_from_user(&info.regs, &v86->regs,
266 offsetof(struct kernel_vm86_struct, regs32) - 266 offsetof(struct kernel_vm86_struct, regs32) -
267 sizeof(info.regs)); 267 sizeof(info.regs));
268 ret = -EFAULT; 268 ret = -EFAULT;
269 if (tmp) 269 if (tmp)
270 goto out; 270 goto out;
271 info.regs32 = &regs; 271 info.regs32 = regs;
272 info.vm86plus.is_vm86pus = 1; 272 info.vm86plus.is_vm86pus = 1;
273 tsk->thread.vm86_info = (struct vm86_struct __user *)v86; 273 tsk->thread.vm86_info = (struct vm86_struct __user *)v86;
274 do_sys_vm86(&info, tsk); 274 do_sys_vm86(&info, tsk);
@@ -323,7 +323,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
323 info->regs32->ax = 0; 323 info->regs32->ax = 0;
324 tsk->thread.saved_sp0 = tsk->thread.sp0; 324 tsk->thread.saved_sp0 = tsk->thread.sp0;
325 tsk->thread.saved_fs = info->regs32->fs; 325 tsk->thread.saved_fs = info->regs32->fs;
326 savesegment(gs, tsk->thread.saved_gs); 326 tsk->thread.saved_gs = get_user_gs(info->regs32);
327 327
328 tss = &per_cpu(init_tss, get_cpu()); 328 tss = &per_cpu(init_tss, get_cpu());
329 tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0; 329 tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0;
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c
index 23206ba16874..2cc4a90e2cb3 100644
--- a/arch/x86/kernel/vmi_32.c
+++ b/arch/x86/kernel/vmi_32.c
@@ -321,6 +321,16 @@ static void vmi_release_pmd(unsigned long pfn)
321} 321}
322 322
323/* 323/*
324 * We use the pgd_free hook for releasing the pgd page:
325 */
326static void vmi_pgd_free(struct mm_struct *mm, pgd_t *pgd)
327{
328 unsigned long pfn = __pa(pgd) >> PAGE_SHIFT;
329
330 vmi_ops.release_page(pfn, VMI_PAGE_L2);
331}
332
333/*
324 * Helper macros for MMU update flags. We can defer updates until a flush 334 * Helper macros for MMU update flags. We can defer updates until a flush
325 * or page invalidation only if the update is to the current address space 335 * or page invalidation only if the update is to the current address space
326 * (otherwise, there is no flush). We must check against init_mm, since 336 * (otherwise, there is no flush). We must check against init_mm, since
@@ -670,10 +680,11 @@ static inline int __init activate_vmi(void)
670 para_fill(pv_mmu_ops.write_cr2, SetCR2); 680 para_fill(pv_mmu_ops.write_cr2, SetCR2);
671 para_fill(pv_mmu_ops.write_cr3, SetCR3); 681 para_fill(pv_mmu_ops.write_cr3, SetCR3);
672 para_fill(pv_cpu_ops.write_cr4, SetCR4); 682 para_fill(pv_cpu_ops.write_cr4, SetCR4);
673 para_fill(pv_irq_ops.save_fl, GetInterruptMask); 683
674 para_fill(pv_irq_ops.restore_fl, SetInterruptMask); 684 para_fill(pv_irq_ops.save_fl.func, GetInterruptMask);
675 para_fill(pv_irq_ops.irq_disable, DisableInterrupts); 685 para_fill(pv_irq_ops.restore_fl.func, SetInterruptMask);
676 para_fill(pv_irq_ops.irq_enable, EnableInterrupts); 686 para_fill(pv_irq_ops.irq_disable.func, DisableInterrupts);
687 para_fill(pv_irq_ops.irq_enable.func, EnableInterrupts);
677 688
678 para_fill(pv_cpu_ops.wbinvd, WBINVD); 689 para_fill(pv_cpu_ops.wbinvd, WBINVD);
679 para_fill(pv_cpu_ops.read_tsc, RDTSC); 690 para_fill(pv_cpu_ops.read_tsc, RDTSC);
@@ -762,6 +773,7 @@ static inline int __init activate_vmi(void)
762 if (vmi_ops.release_page) { 773 if (vmi_ops.release_page) {
763 pv_mmu_ops.release_pte = vmi_release_pte; 774 pv_mmu_ops.release_pte = vmi_release_pte;
764 pv_mmu_ops.release_pmd = vmi_release_pmd; 775 pv_mmu_ops.release_pmd = vmi_release_pmd;
776 pv_mmu_ops.pgd_free = vmi_pgd_free;
765 } 777 }
766 778
767 /* Set linear is needed in all cases */ 779 /* Set linear is needed in all cases */
@@ -786,8 +798,8 @@ static inline int __init activate_vmi(void)
786#endif 798#endif
787 799
788#ifdef CONFIG_X86_LOCAL_APIC 800#ifdef CONFIG_X86_LOCAL_APIC
789 para_fill(apic_ops->read, APICRead); 801 para_fill(apic->read, APICRead);
790 para_fill(apic_ops->write, APICWrite); 802 para_fill(apic->write, APICWrite);
791#endif 803#endif
792 804
793 /* 805 /*
@@ -858,7 +870,7 @@ void __init vmi_init(void)
858#endif 870#endif
859} 871}
860 872
861void vmi_activate(void) 873void __init vmi_activate(void)
862{ 874{
863 unsigned long flags; 875 unsigned long flags;
864 876
diff --git a/arch/x86/kernel/vmiclock_32.c b/arch/x86/kernel/vmiclock_32.c
index c4c1f9e09402..33a788d5879c 100644
--- a/arch/x86/kernel/vmiclock_32.c
+++ b/arch/x86/kernel/vmiclock_32.c
@@ -28,7 +28,6 @@
28 28
29#include <asm/vmi.h> 29#include <asm/vmi.h>
30#include <asm/vmi_time.h> 30#include <asm/vmi_time.h>
31#include <asm/arch_hooks.h>
32#include <asm/apicdef.h> 31#include <asm/apicdef.h>
33#include <asm/apic.h> 32#include <asm/apic.h>
34#include <asm/timer.h> 33#include <asm/timer.h>
@@ -202,7 +201,7 @@ static irqreturn_t vmi_timer_interrupt(int irq, void *dev_id)
202static struct irqaction vmi_clock_action = { 201static struct irqaction vmi_clock_action = {
203 .name = "vmi-timer", 202 .name = "vmi-timer",
204 .handler = vmi_timer_interrupt, 203 .handler = vmi_timer_interrupt,
205 .flags = IRQF_DISABLED | IRQF_NOBALANCING, 204 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_TIMER,
206 .mask = CPU_MASK_ALL, 205 .mask = CPU_MASK_ALL,
207}; 206};
208 207
@@ -256,7 +255,7 @@ void __devinit vmi_time_bsp_init(void)
256 */ 255 */
257 clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL); 256 clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL);
258 local_irq_disable(); 257 local_irq_disable();
259#ifdef CONFIG_X86_SMP 258#ifdef CONFIG_SMP
260 /* 259 /*
261 * XXX handle_percpu_irq only defined for SMP; we need to switch over 260 * XXX handle_percpu_irq only defined for SMP; we need to switch over
262 * to using it, since this is a local interrupt, which each CPU must 261 * to using it, since this is a local interrupt, which each CPU must
@@ -283,10 +282,12 @@ void __devinit vmi_time_ap_init(void)
283#endif 282#endif
284 283
285/** vmi clocksource */ 284/** vmi clocksource */
285static struct clocksource clocksource_vmi;
286 286
287static cycle_t read_real_cycles(void) 287static cycle_t read_real_cycles(void)
288{ 288{
289 return vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL); 289 cycle_t ret = (cycle_t)vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL);
290 return max(ret, clocksource_vmi.cycle_last);
290} 291}
291 292
292static struct clocksource clocksource_vmi = { 293static struct clocksource clocksource_vmi = {
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S
index 82c67559dde7..0d860963f268 100644
--- a/arch/x86/kernel/vmlinux_32.lds.S
+++ b/arch/x86/kernel/vmlinux_32.lds.S
@@ -12,7 +12,7 @@
12 12
13#include <asm-generic/vmlinux.lds.h> 13#include <asm-generic/vmlinux.lds.h>
14#include <asm/thread_info.h> 14#include <asm/thread_info.h>
15#include <asm/page.h> 15#include <asm/page_types.h>
16#include <asm/cache.h> 16#include <asm/cache.h>
17#include <asm/boot.h> 17#include <asm/boot.h>
18 18
@@ -178,14 +178,7 @@ SECTIONS
178 __initramfs_end = .; 178 __initramfs_end = .;
179 } 179 }
180#endif 180#endif
181 . = ALIGN(PAGE_SIZE); 181 PERCPU(PAGE_SIZE)
182 .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) {
183 __per_cpu_start = .;
184 *(.data.percpu.page_aligned)
185 *(.data.percpu)
186 *(.data.percpu.shared_aligned)
187 __per_cpu_end = .;
188 }
189 . = ALIGN(PAGE_SIZE); 182 . = ALIGN(PAGE_SIZE);
190 /* freed after init ends here */ 183 /* freed after init ends here */
191 184
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index 1a614c0e6bef..5bf54e40c6ef 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -5,7 +5,8 @@
5#define LOAD_OFFSET __START_KERNEL_map 5#define LOAD_OFFSET __START_KERNEL_map
6 6
7#include <asm-generic/vmlinux.lds.h> 7#include <asm-generic/vmlinux.lds.h>
8#include <asm/page.h> 8#include <asm/asm-offsets.h>
9#include <asm/page_types.h>
9 10
10#undef i386 /* in case the preprocessor is a 32bit one */ 11#undef i386 /* in case the preprocessor is a 32bit one */
11 12
@@ -13,12 +14,15 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
13OUTPUT_ARCH(i386:x86-64) 14OUTPUT_ARCH(i386:x86-64)
14ENTRY(phys_startup_64) 15ENTRY(phys_startup_64)
15jiffies_64 = jiffies; 16jiffies_64 = jiffies;
16_proxy_pda = 1;
17PHDRS { 17PHDRS {
18 text PT_LOAD FLAGS(5); /* R_E */ 18 text PT_LOAD FLAGS(5); /* R_E */
19 data PT_LOAD FLAGS(7); /* RWE */ 19 data PT_LOAD FLAGS(7); /* RWE */
20 user PT_LOAD FLAGS(7); /* RWE */ 20 user PT_LOAD FLAGS(7); /* RWE */
21 data.init PT_LOAD FLAGS(7); /* RWE */ 21 data.init PT_LOAD FLAGS(7); /* RWE */
22#ifdef CONFIG_SMP
23 percpu PT_LOAD FLAGS(7); /* RWE */
24#endif
25 data.init2 PT_LOAD FLAGS(7); /* RWE */
22 note PT_NOTE FLAGS(0); /* ___ */ 26 note PT_NOTE FLAGS(0); /* ___ */
23} 27}
24SECTIONS 28SECTIONS
@@ -208,14 +212,28 @@ SECTIONS
208 __initramfs_end = .; 212 __initramfs_end = .;
209#endif 213#endif
210 214
215#ifdef CONFIG_SMP
216 /*
217 * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the
218 * output PHDR, so the next output section - __data_nosave - should
219 * start another section data.init2. Also, pda should be at the head of
220 * percpu area. Preallocate it and define the percpu offset symbol
221 * so that it can be accessed as a percpu variable.
222 */
223 . = ALIGN(PAGE_SIZE);
224 PERCPU_VADDR(0, :percpu)
225#else
211 PERCPU(PAGE_SIZE) 226 PERCPU(PAGE_SIZE)
227#endif
212 228
213 . = ALIGN(PAGE_SIZE); 229 . = ALIGN(PAGE_SIZE);
214 __init_end = .; 230 __init_end = .;
215 231
216 . = ALIGN(PAGE_SIZE); 232 . = ALIGN(PAGE_SIZE);
217 __nosave_begin = .; 233 __nosave_begin = .;
218 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { *(.data.nosave) } 234 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
235 *(.data.nosave)
236 } :data.init2 /* use another section data.init2, see PERCPU_VADDR() above */
219 . = ALIGN(PAGE_SIZE); 237 . = ALIGN(PAGE_SIZE);
220 __nosave_end = .; 238 __nosave_end = .;
221 239
@@ -239,8 +257,28 @@ SECTIONS
239 DWARF_DEBUG 257 DWARF_DEBUG
240} 258}
241 259
260 /*
261 * Per-cpu symbols which need to be offset from __per_cpu_load
262 * for the boot processor.
263 */
264#define INIT_PER_CPU(x) init_per_cpu__##x = per_cpu__##x + __per_cpu_load
265INIT_PER_CPU(gdt_page);
266INIT_PER_CPU(irq_stack_union);
267
242/* 268/*
243 * Build-time check on the image size: 269 * Build-time check on the image size:
244 */ 270 */
245ASSERT((_end - _text <= KERNEL_IMAGE_SIZE), 271ASSERT((_end - _text <= KERNEL_IMAGE_SIZE),
246 "kernel image bigger than KERNEL_IMAGE_SIZE") 272 "kernel image bigger than KERNEL_IMAGE_SIZE")
273
274#ifdef CONFIG_SMP
275ASSERT((per_cpu__irq_stack_union == 0),
276 "irq_stack_union is not at start of per-cpu area");
277#endif
278
279#ifdef CONFIG_KEXEC
280#include <asm/kexec.h>
281
282ASSERT(kexec_control_code_size <= KEXEC_CONTROL_CODE_MAX_SIZE,
283 "kexec control code size is too big")
284#endif
diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
index a688f3bfaec2..74de562812cc 100644
--- a/arch/x86/kernel/vsmp_64.c
+++ b/arch/x86/kernel/vsmp_64.c
@@ -22,7 +22,7 @@
22#include <asm/paravirt.h> 22#include <asm/paravirt.h>
23#include <asm/setup.h> 23#include <asm/setup.h>
24 24
25#if defined CONFIG_PCI && defined CONFIG_PARAVIRT 25#ifdef CONFIG_PARAVIRT
26/* 26/*
27 * Interrupt control on vSMPowered systems: 27 * Interrupt control on vSMPowered systems:
28 * ~AC is a shadow of IF. If IF is 'on' AC should be 'off' 28 * ~AC is a shadow of IF. If IF is 'on' AC should be 'off'
@@ -37,6 +37,7 @@ static unsigned long vsmp_save_fl(void)
37 flags &= ~X86_EFLAGS_IF; 37 flags &= ~X86_EFLAGS_IF;
38 return flags; 38 return flags;
39} 39}
40PV_CALLEE_SAVE_REGS_THUNK(vsmp_save_fl);
40 41
41static void vsmp_restore_fl(unsigned long flags) 42static void vsmp_restore_fl(unsigned long flags)
42{ 43{
@@ -46,6 +47,7 @@ static void vsmp_restore_fl(unsigned long flags)
46 flags |= X86_EFLAGS_AC; 47 flags |= X86_EFLAGS_AC;
47 native_restore_fl(flags); 48 native_restore_fl(flags);
48} 49}
50PV_CALLEE_SAVE_REGS_THUNK(vsmp_restore_fl);
49 51
50static void vsmp_irq_disable(void) 52static void vsmp_irq_disable(void)
51{ 53{
@@ -53,6 +55,7 @@ static void vsmp_irq_disable(void)
53 55
54 native_restore_fl((flags & ~X86_EFLAGS_IF) | X86_EFLAGS_AC); 56 native_restore_fl((flags & ~X86_EFLAGS_IF) | X86_EFLAGS_AC);
55} 57}
58PV_CALLEE_SAVE_REGS_THUNK(vsmp_irq_disable);
56 59
57static void vsmp_irq_enable(void) 60static void vsmp_irq_enable(void)
58{ 61{
@@ -60,6 +63,7 @@ static void vsmp_irq_enable(void)
60 63
61 native_restore_fl((flags | X86_EFLAGS_IF) & (~X86_EFLAGS_AC)); 64 native_restore_fl((flags | X86_EFLAGS_IF) & (~X86_EFLAGS_AC));
62} 65}
66PV_CALLEE_SAVE_REGS_THUNK(vsmp_irq_enable);
63 67
64static unsigned __init_or_module vsmp_patch(u8 type, u16 clobbers, void *ibuf, 68static unsigned __init_or_module vsmp_patch(u8 type, u16 clobbers, void *ibuf,
65 unsigned long addr, unsigned len) 69 unsigned long addr, unsigned len)
@@ -90,10 +94,10 @@ static void __init set_vsmp_pv_ops(void)
90 cap, ctl); 94 cap, ctl);
91 if (cap & ctl & (1 << 4)) { 95 if (cap & ctl & (1 << 4)) {
92 /* Setup irq ops and turn on vSMP IRQ fastpath handling */ 96 /* Setup irq ops and turn on vSMP IRQ fastpath handling */
93 pv_irq_ops.irq_disable = vsmp_irq_disable; 97 pv_irq_ops.irq_disable = PV_CALLEE_SAVE(vsmp_irq_disable);
94 pv_irq_ops.irq_enable = vsmp_irq_enable; 98 pv_irq_ops.irq_enable = PV_CALLEE_SAVE(vsmp_irq_enable);
95 pv_irq_ops.save_fl = vsmp_save_fl; 99 pv_irq_ops.save_fl = PV_CALLEE_SAVE(vsmp_save_fl);
96 pv_irq_ops.restore_fl = vsmp_restore_fl; 100 pv_irq_ops.restore_fl = PV_CALLEE_SAVE(vsmp_restore_fl);
97 pv_init_ops.patch = vsmp_patch; 101 pv_init_ops.patch = vsmp_patch;
98 102
99 ctl &= ~(1 << 4); 103 ctl &= ~(1 << 4);
@@ -110,7 +114,6 @@ static void __init set_vsmp_pv_ops(void)
110} 114}
111#endif 115#endif
112 116
113#ifdef CONFIG_PCI
114static int is_vsmp = -1; 117static int is_vsmp = -1;
115 118
116static void __init detect_vsmp_box(void) 119static void __init detect_vsmp_box(void)
@@ -135,15 +138,6 @@ int is_vsmp_box(void)
135 return 0; 138 return 0;
136 } 139 }
137} 140}
138#else
139static void __init detect_vsmp_box(void)
140{
141}
142int is_vsmp_box(void)
143{
144 return 0;
145}
146#endif
147 141
148void __init vsmp_init(void) 142void __init vsmp_init(void)
149{ 143{
diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
index 695e426aa354..3909e3ba5ce3 100644
--- a/arch/x86/kernel/x8664_ksyms_64.c
+++ b/arch/x86/kernel/x8664_ksyms_64.c
@@ -58,5 +58,3 @@ EXPORT_SYMBOL(__memcpy);
58EXPORT_SYMBOL(empty_zero_page); 58EXPORT_SYMBOL(empty_zero_page);
59EXPORT_SYMBOL(init_level4_pgt); 59EXPORT_SYMBOL(init_level4_pgt);
60EXPORT_SYMBOL(load_gs_index); 60EXPORT_SYMBOL(load_gs_index);
61
62EXPORT_SYMBOL(_proxy_pda);
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index e665d1c623ca..72bd275a9b5c 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -207,7 +207,7 @@ static int __pit_timer_fn(struct kvm_kpit_state *ps)
207 hrtimer_add_expires_ns(&pt->timer, pt->period); 207 hrtimer_add_expires_ns(&pt->timer, pt->period);
208 pt->scheduled = hrtimer_get_expires_ns(&pt->timer); 208 pt->scheduled = hrtimer_get_expires_ns(&pt->timer);
209 if (pt->period) 209 if (pt->period)
210 ps->channels[0].count_load_time = hrtimer_get_expires(&pt->timer); 210 ps->channels[0].count_load_time = ktime_get();
211 211
212 return (pt->period == 0 ? 0 : 1); 212 return (pt->period == 0 ? 0 : 1);
213} 213}
diff --git a/arch/x86/kvm/irq.c b/arch/x86/kvm/irq.c
index c019b8edcdb7..cf17ed52f6fb 100644
--- a/arch/x86/kvm/irq.c
+++ b/arch/x86/kvm/irq.c
@@ -87,13 +87,6 @@ void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu)
87} 87}
88EXPORT_SYMBOL_GPL(kvm_inject_pending_timer_irqs); 88EXPORT_SYMBOL_GPL(kvm_inject_pending_timer_irqs);
89 89
90void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec)
91{
92 kvm_apic_timer_intr_post(vcpu, vec);
93 /* TODO: PIT, RTC etc. */
94}
95EXPORT_SYMBOL_GPL(kvm_timer_intr_post);
96
97void __kvm_migrate_timers(struct kvm_vcpu *vcpu) 90void __kvm_migrate_timers(struct kvm_vcpu *vcpu)
98{ 91{
99 __kvm_migrate_apic_timer(vcpu); 92 __kvm_migrate_apic_timer(vcpu);
diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h
index 2bf32a03ceec..82579ee538d0 100644
--- a/arch/x86/kvm/irq.h
+++ b/arch/x86/kvm/irq.h
@@ -89,7 +89,6 @@ static inline int irqchip_in_kernel(struct kvm *kvm)
89 89
90void kvm_pic_reset(struct kvm_kpic_state *s); 90void kvm_pic_reset(struct kvm_kpic_state *s);
91 91
92void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec);
93void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu); 92void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu);
94void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu); 93void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu);
95void kvm_apic_nmi_wd_deliver(struct kvm_vcpu *vcpu); 94void kvm_apic_nmi_wd_deliver(struct kvm_vcpu *vcpu);
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index afac68c0815c..f0b67f2cdd69 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -35,6 +35,12 @@
35#include "kvm_cache_regs.h" 35#include "kvm_cache_regs.h"
36#include "irq.h" 36#include "irq.h"
37 37
38#ifndef CONFIG_X86_64
39#define mod_64(x, y) ((x) - (y) * div64_u64(x, y))
40#else
41#define mod_64(x, y) ((x) % (y))
42#endif
43
38#define PRId64 "d" 44#define PRId64 "d"
39#define PRIx64 "llx" 45#define PRIx64 "llx"
40#define PRIu64 "u" 46#define PRIu64 "u"
@@ -511,52 +517,22 @@ static void apic_send_ipi(struct kvm_lapic *apic)
511 517
512static u32 apic_get_tmcct(struct kvm_lapic *apic) 518static u32 apic_get_tmcct(struct kvm_lapic *apic)
513{ 519{
514 u64 counter_passed; 520 ktime_t remaining;
515 ktime_t passed, now; 521 s64 ns;
516 u32 tmcct; 522 u32 tmcct;
517 523
518 ASSERT(apic != NULL); 524 ASSERT(apic != NULL);
519 525
520 now = apic->timer.dev.base->get_time();
521 tmcct = apic_get_reg(apic, APIC_TMICT);
522
523 /* if initial count is 0, current count should also be 0 */ 526 /* if initial count is 0, current count should also be 0 */
524 if (tmcct == 0) 527 if (apic_get_reg(apic, APIC_TMICT) == 0)
525 return 0; 528 return 0;
526 529
527 if (unlikely(ktime_to_ns(now) <= 530 remaining = hrtimer_expires_remaining(&apic->timer.dev);
528 ktime_to_ns(apic->timer.last_update))) { 531 if (ktime_to_ns(remaining) < 0)
529 /* Wrap around */ 532 remaining = ktime_set(0, 0);
530 passed = ktime_add(( { 533
531 (ktime_t) { 534 ns = mod_64(ktime_to_ns(remaining), apic->timer.period);
532 .tv64 = KTIME_MAX - 535 tmcct = div64_u64(ns, (APIC_BUS_CYCLE_NS * apic->timer.divide_count));
533 (apic->timer.last_update).tv64}; }
534 ), now);
535 apic_debug("time elapsed\n");
536 } else
537 passed = ktime_sub(now, apic->timer.last_update);
538
539 counter_passed = div64_u64(ktime_to_ns(passed),
540 (APIC_BUS_CYCLE_NS * apic->timer.divide_count));
541
542 if (counter_passed > tmcct) {
543 if (unlikely(!apic_lvtt_period(apic))) {
544 /* one-shot timers stick at 0 until reset */
545 tmcct = 0;
546 } else {
547 /*
548 * periodic timers reset to APIC_TMICT when they
549 * hit 0. The while loop simulates this happening N
550 * times. (counter_passed %= tmcct) would also work,
551 * but might be slower or not work on 32-bit??
552 */
553 while (counter_passed > tmcct)
554 counter_passed -= tmcct;
555 tmcct -= counter_passed;
556 }
557 } else {
558 tmcct -= counter_passed;
559 }
560 536
561 return tmcct; 537 return tmcct;
562} 538}
@@ -653,8 +629,6 @@ static void start_apic_timer(struct kvm_lapic *apic)
653{ 629{
654 ktime_t now = apic->timer.dev.base->get_time(); 630 ktime_t now = apic->timer.dev.base->get_time();
655 631
656 apic->timer.last_update = now;
657
658 apic->timer.period = apic_get_reg(apic, APIC_TMICT) * 632 apic->timer.period = apic_get_reg(apic, APIC_TMICT) *
659 APIC_BUS_CYCLE_NS * apic->timer.divide_count; 633 APIC_BUS_CYCLE_NS * apic->timer.divide_count;
660 atomic_set(&apic->timer.pending, 0); 634 atomic_set(&apic->timer.pending, 0);
@@ -1110,16 +1084,6 @@ void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu)
1110 } 1084 }
1111} 1085}
1112 1086
1113void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec)
1114{
1115 struct kvm_lapic *apic = vcpu->arch.apic;
1116
1117 if (apic && apic_lvt_vector(apic, APIC_LVTT) == vec)
1118 apic->timer.last_update = ktime_add_ns(
1119 apic->timer.last_update,
1120 apic->timer.period);
1121}
1122
1123int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu) 1087int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu)
1124{ 1088{
1125 int vector = kvm_apic_has_interrupt(vcpu); 1089 int vector = kvm_apic_has_interrupt(vcpu);
diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
index 81858881287e..45ab6ee71209 100644
--- a/arch/x86/kvm/lapic.h
+++ b/arch/x86/kvm/lapic.h
@@ -12,7 +12,6 @@ struct kvm_lapic {
12 atomic_t pending; 12 atomic_t pending;
13 s64 period; /* unit: ns */ 13 s64 period; /* unit: ns */
14 u32 divide_count; 14 u32 divide_count;
15 ktime_t last_update;
16 struct hrtimer dev; 15 struct hrtimer dev;
17 } timer; 16 } timer;
18 struct kvm_vcpu *vcpu; 17 struct kvm_vcpu *vcpu;
@@ -42,7 +41,6 @@ void kvm_set_apic_base(struct kvm_vcpu *vcpu, u64 data);
42void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu); 41void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu);
43int kvm_lapic_enabled(struct kvm_vcpu *vcpu); 42int kvm_lapic_enabled(struct kvm_vcpu *vcpu);
44int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu); 43int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu);
45void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec);
46 44
47void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr); 45void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr);
48void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu); 46void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu);
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 83f11c7474a1..2d4477c71473 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1698,8 +1698,13 @@ static int set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte,
1698 if (largepage) 1698 if (largepage)
1699 spte |= PT_PAGE_SIZE_MASK; 1699 spte |= PT_PAGE_SIZE_MASK;
1700 if (mt_mask) { 1700 if (mt_mask) {
1701 mt_mask = get_memory_type(vcpu, gfn) << 1701 if (!kvm_is_mmio_pfn(pfn)) {
1702 kvm_x86_ops->get_mt_mask_shift(); 1702 mt_mask = get_memory_type(vcpu, gfn) <<
1703 kvm_x86_ops->get_mt_mask_shift();
1704 mt_mask |= VMX_EPT_IGMT_BIT;
1705 } else
1706 mt_mask = MTRR_TYPE_UNCACHABLE <<
1707 kvm_x86_ops->get_mt_mask_shift();
1703 spte |= mt_mask; 1708 spte |= mt_mask;
1704 } 1709 }
1705 1710
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 1452851ae258..a9e769e4e251 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1600,7 +1600,6 @@ static void svm_intr_assist(struct kvm_vcpu *vcpu)
1600 /* Okay, we can deliver the interrupt: grab it and update PIC state. */ 1600 /* Okay, we can deliver the interrupt: grab it and update PIC state. */
1601 intr_vector = kvm_cpu_get_interrupt(vcpu); 1601 intr_vector = kvm_cpu_get_interrupt(vcpu);
1602 svm_inject_irq(svm, intr_vector); 1602 svm_inject_irq(svm, intr_vector);
1603 kvm_timer_intr_post(vcpu, intr_vector);
1604out: 1603out:
1605 update_cr8_intercept(vcpu); 1604 update_cr8_intercept(vcpu);
1606} 1605}
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 6259d7467648..7611af576829 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -903,6 +903,7 @@ static int vmx_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata)
903 data = vmcs_readl(GUEST_SYSENTER_ESP); 903 data = vmcs_readl(GUEST_SYSENTER_ESP);
904 break; 904 break;
905 default: 905 default:
906 vmx_load_host_state(to_vmx(vcpu));
906 msr = find_msr_entry(to_vmx(vcpu), msr_index); 907 msr = find_msr_entry(to_vmx(vcpu), msr_index);
907 if (msr) { 908 if (msr) {
908 data = msr->data; 909 data = msr->data;
@@ -3285,7 +3286,6 @@ static void vmx_intr_assist(struct kvm_vcpu *vcpu)
3285 } 3286 }
3286 if (vcpu->arch.interrupt.pending) { 3287 if (vcpu->arch.interrupt.pending) {
3287 vmx_inject_irq(vcpu, vcpu->arch.interrupt.nr); 3288 vmx_inject_irq(vcpu, vcpu->arch.interrupt.nr);
3288 kvm_timer_intr_post(vcpu, vcpu->arch.interrupt.nr);
3289 if (kvm_cpu_has_interrupt(vcpu)) 3289 if (kvm_cpu_has_interrupt(vcpu))
3290 enable_irq_window(vcpu); 3290 enable_irq_window(vcpu);
3291 } 3291 }
@@ -3687,8 +3687,7 @@ static int __init vmx_init(void)
3687 if (vm_need_ept()) { 3687 if (vm_need_ept()) {
3688 bypass_guest_pf = 0; 3688 bypass_guest_pf = 0;
3689 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK | 3689 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
3690 VMX_EPT_WRITABLE_MASK | 3690 VMX_EPT_WRITABLE_MASK);
3691 VMX_EPT_IGMT_BIT);
3692 kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull, 3691 kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull,
3693 VMX_EPT_EXECUTABLE_MASK, 3692 VMX_EPT_EXECUTABLE_MASK,
3694 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT); 3693 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index cc17546a2406..758b7a155ae9 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -967,7 +967,6 @@ int kvm_dev_ioctl_check_extension(long ext)
967 case KVM_CAP_MMU_SHADOW_CACHE_CONTROL: 967 case KVM_CAP_MMU_SHADOW_CACHE_CONTROL:
968 case KVM_CAP_SET_TSS_ADDR: 968 case KVM_CAP_SET_TSS_ADDR:
969 case KVM_CAP_EXT_CPUID: 969 case KVM_CAP_EXT_CPUID:
970 case KVM_CAP_CLOCKSOURCE:
971 case KVM_CAP_PIT: 970 case KVM_CAP_PIT:
972 case KVM_CAP_NOP_IO_DELAY: 971 case KVM_CAP_NOP_IO_DELAY:
973 case KVM_CAP_MP_STATE: 972 case KVM_CAP_MP_STATE:
@@ -992,6 +991,9 @@ int kvm_dev_ioctl_check_extension(long ext)
992 case KVM_CAP_IOMMU: 991 case KVM_CAP_IOMMU:
993 r = iommu_found(); 992 r = iommu_found();
994 break; 993 break;
994 case KVM_CAP_CLOCKSOURCE:
995 r = boot_cpu_has(X86_FEATURE_CONSTANT_TSC);
996 break;
995 default: 997 default:
996 r = 0; 998 r = 0;
997 break; 999 break;
@@ -4127,9 +4129,13 @@ static void kvm_free_vcpus(struct kvm *kvm)
4127 4129
4128} 4130}
4129 4131
4130void kvm_arch_destroy_vm(struct kvm *kvm) 4132void kvm_arch_sync_events(struct kvm *kvm)
4131{ 4133{
4132 kvm_free_all_assigned_devices(kvm); 4134 kvm_free_all_assigned_devices(kvm);
4135}
4136
4137void kvm_arch_destroy_vm(struct kvm *kvm)
4138{
4133 kvm_iommu_unmap_guest(kvm); 4139 kvm_iommu_unmap_guest(kvm);
4134 kvm_free_pit(kvm); 4140 kvm_free_pit(kvm);
4135 kfree(kvm->arch.vpic); 4141 kfree(kvm->arch.vpic);
diff --git a/arch/x86/lguest/Kconfig b/arch/x86/lguest/Kconfig
index c70e12b1a637..8dab8f7844d3 100644
--- a/arch/x86/lguest/Kconfig
+++ b/arch/x86/lguest/Kconfig
@@ -3,7 +3,6 @@ config LGUEST_GUEST
3 select PARAVIRT 3 select PARAVIRT
4 depends on X86_32 4 depends on X86_32
5 depends on !X86_PAE 5 depends on !X86_PAE
6 depends on !X86_VOYAGER
7 select VIRTIO 6 select VIRTIO
8 select VIRTIO_RING 7 select VIRTIO_RING
9 select VIRTIO_CONSOLE 8 select VIRTIO_CONSOLE
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index a7ed208f81e3..9fe4ddaa8f6f 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -173,24 +173,29 @@ static unsigned long save_fl(void)
173{ 173{
174 return lguest_data.irq_enabled; 174 return lguest_data.irq_enabled;
175} 175}
176PV_CALLEE_SAVE_REGS_THUNK(save_fl);
176 177
177/* restore_flags() just sets the flags back to the value given. */ 178/* restore_flags() just sets the flags back to the value given. */
178static void restore_fl(unsigned long flags) 179static void restore_fl(unsigned long flags)
179{ 180{
180 lguest_data.irq_enabled = flags; 181 lguest_data.irq_enabled = flags;
181} 182}
183PV_CALLEE_SAVE_REGS_THUNK(restore_fl);
182 184
183/* Interrupts go off... */ 185/* Interrupts go off... */
184static void irq_disable(void) 186static void irq_disable(void)
185{ 187{
186 lguest_data.irq_enabled = 0; 188 lguest_data.irq_enabled = 0;
187} 189}
190PV_CALLEE_SAVE_REGS_THUNK(irq_disable);
188 191
189/* Interrupts go on... */ 192/* Interrupts go on... */
190static void irq_enable(void) 193static void irq_enable(void)
191{ 194{
192 lguest_data.irq_enabled = X86_EFLAGS_IF; 195 lguest_data.irq_enabled = X86_EFLAGS_IF;
193} 196}
197PV_CALLEE_SAVE_REGS_THUNK(irq_enable);
198
194/*:*/ 199/*:*/
195/*M:003 Note that we don't check for outstanding interrupts when we re-enable 200/*M:003 Note that we don't check for outstanding interrupts when we re-enable
196 * them (or when we unmask an interrupt). This seems to work for the moment, 201 * them (or when we unmask an interrupt). This seems to work for the moment,
@@ -278,7 +283,7 @@ static void lguest_load_tls(struct thread_struct *t, unsigned int cpu)
278 /* There's one problem which normal hardware doesn't have: the Host 283 /* There's one problem which normal hardware doesn't have: the Host
279 * can't handle us removing entries we're currently using. So we clear 284 * can't handle us removing entries we're currently using. So we clear
280 * the GS register here: if it's needed it'll be reloaded anyway. */ 285 * the GS register here: if it's needed it'll be reloaded anyway. */
281 loadsegment(gs, 0); 286 lazy_load_gs(0);
282 lazy_hcall(LHCALL_LOAD_TLS, __pa(&t->tls_array), cpu, 0); 287 lazy_hcall(LHCALL_LOAD_TLS, __pa(&t->tls_array), cpu, 0);
283} 288}
284 289
@@ -343,6 +348,11 @@ static void lguest_cpuid(unsigned int *ax, unsigned int *bx,
343 * flush_tlb_user() for both user and kernel mappings unless 348 * flush_tlb_user() for both user and kernel mappings unless
344 * the Page Global Enable (PGE) feature bit is set. */ 349 * the Page Global Enable (PGE) feature bit is set. */
345 *dx |= 0x00002000; 350 *dx |= 0x00002000;
351 /* We also lie, and say we're family id 5. 6 or greater
352 * leads to a rdmsr in early_init_intel which we can't handle.
353 * Family ID is returned as bits 8-12 in ax. */
354 *ax &= 0xFFFFF0FF;
355 *ax |= 0x00000500;
346 break; 356 break;
347 case 0x80000000: 357 case 0x80000000:
348 /* Futureproof this a little: if they ask how much extended 358 /* Futureproof this a little: if they ask how much extended
@@ -589,19 +599,21 @@ static void __init lguest_init_IRQ(void)
589 /* Some systems map "vectors" to interrupts weirdly. Lguest has 599 /* Some systems map "vectors" to interrupts weirdly. Lguest has
590 * a straightforward 1 to 1 mapping, so force that here. */ 600 * a straightforward 1 to 1 mapping, so force that here. */
591 __get_cpu_var(vector_irq)[vector] = i; 601 __get_cpu_var(vector_irq)[vector] = i;
592 if (vector != SYSCALL_VECTOR) { 602 if (vector != SYSCALL_VECTOR)
593 set_intr_gate(vector, 603 set_intr_gate(vector, interrupt[i]);
594 interrupt[vector-FIRST_EXTERNAL_VECTOR]);
595 set_irq_chip_and_handler_name(i, &lguest_irq_controller,
596 handle_level_irq,
597 "level");
598 }
599 } 604 }
600 /* This call is required to set up for 4k stacks, where we have 605 /* This call is required to set up for 4k stacks, where we have
601 * separate stacks for hard and soft interrupts. */ 606 * separate stacks for hard and soft interrupts. */
602 irq_ctx_init(smp_processor_id()); 607 irq_ctx_init(smp_processor_id());
603} 608}
604 609
610void lguest_setup_irq(unsigned int irq)
611{
612 irq_to_desc_alloc_cpu(irq, 0);
613 set_irq_chip_and_handler_name(irq, &lguest_irq_controller,
614 handle_level_irq, "level");
615}
616
605/* 617/*
606 * Time. 618 * Time.
607 * 619 *
@@ -823,13 +835,14 @@ static u32 lguest_apic_safe_wait_icr_idle(void)
823 return 0; 835 return 0;
824} 836}
825 837
826static struct apic_ops lguest_basic_apic_ops = { 838static void set_lguest_basic_apic_ops(void)
827 .read = lguest_apic_read, 839{
828 .write = lguest_apic_write, 840 apic->read = lguest_apic_read;
829 .icr_read = lguest_apic_icr_read, 841 apic->write = lguest_apic_write;
830 .icr_write = lguest_apic_icr_write, 842 apic->icr_read = lguest_apic_icr_read;
831 .wait_icr_idle = lguest_apic_wait_icr_idle, 843 apic->icr_write = lguest_apic_icr_write;
832 .safe_wait_icr_idle = lguest_apic_safe_wait_icr_idle, 844 apic->wait_icr_idle = lguest_apic_wait_icr_idle;
845 apic->safe_wait_icr_idle = lguest_apic_safe_wait_icr_idle;
833}; 846};
834#endif 847#endif
835 848
@@ -931,7 +944,7 @@ static void lguest_restart(char *reason)
931 * that we can fit comfortably. 944 * that we can fit comfortably.
932 * 945 *
933 * First we need assembly templates of each of the patchable Guest operations, 946 * First we need assembly templates of each of the patchable Guest operations,
934 * and these are in lguest_asm.S. */ 947 * and these are in i386_head.S. */
935 948
936/*G:060 We construct a table from the assembler templates: */ 949/*G:060 We construct a table from the assembler templates: */
937static const struct lguest_insns 950static const struct lguest_insns
@@ -984,10 +997,10 @@ __init void lguest_init(void)
984 997
985 /* interrupt-related operations */ 998 /* interrupt-related operations */
986 pv_irq_ops.init_IRQ = lguest_init_IRQ; 999 pv_irq_ops.init_IRQ = lguest_init_IRQ;
987 pv_irq_ops.save_fl = save_fl; 1000 pv_irq_ops.save_fl = PV_CALLEE_SAVE(save_fl);
988 pv_irq_ops.restore_fl = restore_fl; 1001 pv_irq_ops.restore_fl = PV_CALLEE_SAVE(restore_fl);
989 pv_irq_ops.irq_disable = irq_disable; 1002 pv_irq_ops.irq_disable = PV_CALLEE_SAVE(irq_disable);
990 pv_irq_ops.irq_enable = irq_enable; 1003 pv_irq_ops.irq_enable = PV_CALLEE_SAVE(irq_enable);
991 pv_irq_ops.safe_halt = lguest_safe_halt; 1004 pv_irq_ops.safe_halt = lguest_safe_halt;
992 1005
993 /* init-time operations */ 1006 /* init-time operations */
@@ -1030,7 +1043,7 @@ __init void lguest_init(void)
1030 1043
1031#ifdef CONFIG_X86_LOCAL_APIC 1044#ifdef CONFIG_X86_LOCAL_APIC
1032 /* apic read/write intercepts */ 1045 /* apic read/write intercepts */
1033 apic_ops = &lguest_basic_apic_ops; 1046 set_lguest_basic_apic_ops();
1034#endif 1047#endif
1035 1048
1036 /* time operations */ 1049 /* time operations */
@@ -1093,7 +1106,7 @@ __init void lguest_init(void)
1093 acpi_ht = 0; 1106 acpi_ht = 0;
1094#endif 1107#endif
1095 1108
1096 /* We set the perferred console to "hvc". This is the "hypervisor 1109 /* We set the preferred console to "hvc". This is the "hypervisor
1097 * virtual console" driver written by the PowerPC people, which we also 1110 * virtual console" driver written by the PowerPC people, which we also
1098 * adapted for lguest's use. */ 1111 * adapted for lguest's use. */
1099 add_preferred_console("hvc", 0, NULL); 1112 add_preferred_console("hvc", 0, NULL);
diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S
index ad374003742f..51f1504cddd9 100644
--- a/arch/x86/lib/getuser.S
+++ b/arch/x86/lib/getuser.S
@@ -28,7 +28,7 @@
28 28
29#include <linux/linkage.h> 29#include <linux/linkage.h>
30#include <asm/dwarf2.h> 30#include <asm/dwarf2.h>
31#include <asm/page.h> 31#include <asm/page_types.h>
32#include <asm/errno.h> 32#include <asm/errno.h>
33#include <asm/asm-offsets.h> 33#include <asm/asm-offsets.h>
34#include <asm/thread_info.h> 34#include <asm/thread_info.h>
diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
index 4a20b2f9a381..7c8ca91bb9ec 100644
--- a/arch/x86/lib/usercopy_32.c
+++ b/arch/x86/lib/usercopy_32.c
@@ -56,7 +56,7 @@ do { \
56 " jmp 2b\n" \ 56 " jmp 2b\n" \
57 ".previous\n" \ 57 ".previous\n" \
58 _ASM_EXTABLE(0b,3b) \ 58 _ASM_EXTABLE(0b,3b) \
59 : "=d"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ 59 : "=&d"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \
60 "=&D" (__d2) \ 60 "=&D" (__d2) \
61 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ 61 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \
62 : "memory"); \ 62 : "memory"); \
@@ -218,7 +218,7 @@ long strnlen_user(const char __user *s, long n)
218 " .align 4\n" 218 " .align 4\n"
219 " .long 0b,2b\n" 219 " .long 0b,2b\n"
220 ".previous" 220 ".previous"
221 :"=r" (n), "=D" (s), "=a" (res), "=c" (tmp) 221 :"=&r" (n), "=&D" (s), "=&a" (res), "=&c" (tmp)
222 :"0" (n), "1" (s), "2" (0), "3" (mask) 222 :"0" (n), "1" (s), "2" (0), "3" (mask)
223 :"cc"); 223 :"cc");
224 return res & mask; 224 return res & mask;
diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
index 64d6c84e6353..ec13cb5f17ed 100644
--- a/arch/x86/lib/usercopy_64.c
+++ b/arch/x86/lib/usercopy_64.c
@@ -32,7 +32,7 @@ do { \
32 " jmp 2b\n" \ 32 " jmp 2b\n" \
33 ".previous\n" \ 33 ".previous\n" \
34 _ASM_EXTABLE(0b,3b) \ 34 _ASM_EXTABLE(0b,3b) \
35 : "=r"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ 35 : "=&r"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \
36 "=&D" (__d2) \ 36 "=&D" (__d2) \
37 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ 37 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \
38 : "memory"); \ 38 : "memory"); \
@@ -86,7 +86,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
86 ".previous\n" 86 ".previous\n"
87 _ASM_EXTABLE(0b,3b) 87 _ASM_EXTABLE(0b,3b)
88 _ASM_EXTABLE(1b,2b) 88 _ASM_EXTABLE(1b,2b)
89 : [size8] "=c"(size), [dst] "=&D" (__d0) 89 : [size8] "=&c"(size), [dst] "=&D" (__d0)
90 : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr), 90 : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
91 [zero] "r" (0UL), [eight] "r" (8UL)); 91 [zero] "r" (0UL), [eight] "r" (8UL));
92 return size; 92 return size;
diff --git a/arch/x86/mach-default/Makefile b/arch/x86/mach-default/Makefile
deleted file mode 100644
index 012fe34459e6..000000000000
--- a/arch/x86/mach-default/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
1#
2# Makefile for the linux kernel.
3#
4
5obj-y := setup.o
diff --git a/arch/x86/mach-default/setup.c b/arch/x86/mach-default/setup.c
deleted file mode 100644
index df167f265622..000000000000
--- a/arch/x86/mach-default/setup.c
+++ /dev/null
@@ -1,162 +0,0 @@
1/*
2 * Machine specific setup for generic
3 */
4
5#include <linux/smp.h>
6#include <linux/init.h>
7#include <linux/interrupt.h>
8#include <asm/acpi.h>
9#include <asm/arch_hooks.h>
10#include <asm/e820.h>
11#include <asm/setup.h>
12
13#include <mach_ipi.h>
14
15#ifdef CONFIG_HOTPLUG_CPU
16#define DEFAULT_SEND_IPI (1)
17#else
18#define DEFAULT_SEND_IPI (0)
19#endif
20
21int no_broadcast = DEFAULT_SEND_IPI;
22
23/**
24 * pre_intr_init_hook - initialisation prior to setting up interrupt vectors
25 *
26 * Description:
27 * Perform any necessary interrupt initialisation prior to setting up
28 * the "ordinary" interrupt call gates. For legacy reasons, the ISA
29 * interrupts should be initialised here if the machine emulates a PC
30 * in any way.
31 **/
32void __init pre_intr_init_hook(void)
33{
34 if (x86_quirks->arch_pre_intr_init) {
35 if (x86_quirks->arch_pre_intr_init())
36 return;
37 }
38 init_ISA_irqs();
39}
40
41/**
42 * intr_init_hook - post gate setup interrupt initialisation
43 *
44 * Description:
45 * Fill in any interrupts that may have been left out by the general
46 * init_IRQ() routine. interrupts having to do with the machine rather
47 * than the devices on the I/O bus (like APIC interrupts in intel MP
48 * systems) are started here.
49 **/
50void __init intr_init_hook(void)
51{
52 if (x86_quirks->arch_intr_init) {
53 if (x86_quirks->arch_intr_init())
54 return;
55 }
56}
57
58/**
59 * pre_setup_arch_hook - hook called prior to any setup_arch() execution
60 *
61 * Description:
62 * generally used to activate any machine specific identification
63 * routines that may be needed before setup_arch() runs. On Voyager
64 * this is used to get the board revision and type.
65 **/
66void __init pre_setup_arch_hook(void)
67{
68}
69
70/**
71 * trap_init_hook - initialise system specific traps
72 *
73 * Description:
74 * Called as the final act of trap_init(). Used in VISWS to initialise
75 * the various board specific APIC traps.
76 **/
77void __init trap_init_hook(void)
78{
79 if (x86_quirks->arch_trap_init) {
80 if (x86_quirks->arch_trap_init())
81 return;
82 }
83}
84
85static struct irqaction irq0 = {
86 .handler = timer_interrupt,
87 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_IRQPOLL,
88 .mask = CPU_MASK_NONE,
89 .name = "timer"
90};
91
92/**
93 * pre_time_init_hook - do any specific initialisations before.
94 *
95 **/
96void __init pre_time_init_hook(void)
97{
98 if (x86_quirks->arch_pre_time_init)
99 x86_quirks->arch_pre_time_init();
100}
101
102/**
103 * time_init_hook - do any specific initialisations for the system timer.
104 *
105 * Description:
106 * Must plug the system timer interrupt source at HZ into the IRQ listed
107 * in irq_vectors.h:TIMER_IRQ
108 **/
109void __init time_init_hook(void)
110{
111 if (x86_quirks->arch_time_init) {
112 /*
113 * A nonzero return code does not mean failure, it means
114 * that the architecture quirk does not want any
115 * generic (timer) setup to be performed after this:
116 */
117 if (x86_quirks->arch_time_init())
118 return;
119 }
120
121 irq0.mask = cpumask_of_cpu(0);
122 setup_irq(0, &irq0);
123}
124
125#ifdef CONFIG_MCA
126/**
127 * mca_nmi_hook - hook into MCA specific NMI chain
128 *
129 * Description:
130 * The MCA (Microchannel Architecture) has an NMI chain for NMI sources
131 * along the MCA bus. Use this to hook into that chain if you will need
132 * it.
133 **/
134void mca_nmi_hook(void)
135{
136 /*
137 * If I recall correctly, there's a whole bunch of other things that
138 * we can do to check for NMI problems, but that's all I know about
139 * at the moment.
140 */
141 pr_warning("NMI generated from unknown source!\n");
142}
143#endif
144
145static __init int no_ipi_broadcast(char *str)
146{
147 get_option(&str, &no_broadcast);
148 pr_info("Using %s mode\n",
149 no_broadcast ? "No IPI Broadcast" : "IPI Broadcast");
150 return 1;
151}
152__setup("no_ipi_broadcast=", no_ipi_broadcast);
153
154static int __init print_ipi_mode(void)
155{
156 pr_info("Using IPI %s mode\n",
157 no_broadcast ? "No-Shortcut" : "Shortcut");
158 return 0;
159}
160
161late_initcall(print_ipi_mode);
162
diff --git a/arch/x86/mach-generic/Makefile b/arch/x86/mach-generic/Makefile
deleted file mode 100644
index 6730f4e7c744..000000000000
--- a/arch/x86/mach-generic/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
1#
2# Makefile for the generic architecture
3#
4
5EXTRA_CFLAGS := -Iarch/x86/kernel
6
7obj-y := probe.o default.o
8obj-$(CONFIG_X86_NUMAQ) += numaq.o
9obj-$(CONFIG_X86_SUMMIT) += summit.o
10obj-$(CONFIG_X86_BIGSMP) += bigsmp.o
11obj-$(CONFIG_X86_ES7000) += es7000.o
diff --git a/arch/x86/mach-generic/bigsmp.c b/arch/x86/mach-generic/bigsmp.c
deleted file mode 100644
index bc4c7840b2a8..000000000000
--- a/arch/x86/mach-generic/bigsmp.c
+++ /dev/null
@@ -1,60 +0,0 @@
1/*
2 * APIC driver for "bigsmp" XAPIC machines with more than 8 virtual CPUs.
3 * Drives the local APIC in "clustered mode".
4 */
5#define APIC_DEFINITION 1
6#include <linux/threads.h>
7#include <linux/cpumask.h>
8#include <asm/mpspec.h>
9#include <asm/genapic.h>
10#include <asm/fixmap.h>
11#include <asm/apicdef.h>
12#include <linux/kernel.h>
13#include <linux/init.h>
14#include <linux/dmi.h>
15#include <asm/bigsmp/apicdef.h>
16#include <linux/smp.h>
17#include <asm/bigsmp/apic.h>
18#include <asm/bigsmp/ipi.h>
19#include <asm/mach-default/mach_mpparse.h>
20#include <asm/mach-default/mach_wakecpu.h>
21
22static int dmi_bigsmp; /* can be set by dmi scanners */
23
24static int hp_ht_bigsmp(const struct dmi_system_id *d)
25{
26 printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident);
27 dmi_bigsmp = 1;
28 return 0;
29}
30
31
32static const struct dmi_system_id bigsmp_dmi_table[] = {
33 { hp_ht_bigsmp, "HP ProLiant DL760 G2",
34 { DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
35 DMI_MATCH(DMI_BIOS_VERSION, "P44-"),}
36 },
37
38 { hp_ht_bigsmp, "HP ProLiant DL740",
39 { DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
40 DMI_MATCH(DMI_BIOS_VERSION, "P47-"),}
41 },
42 { }
43};
44
45static void vector_allocation_domain(int cpu, cpumask_t *retmask)
46{
47 cpus_clear(*retmask);
48 cpu_set(cpu, *retmask);
49}
50
51static int probe_bigsmp(void)
52{
53 if (def_to_bigsmp)
54 dmi_bigsmp = 1;
55 else
56 dmi_check_system(bigsmp_dmi_table);
57 return dmi_bigsmp;
58}
59
60struct genapic apic_bigsmp = APIC_INIT("bigsmp", probe_bigsmp);
diff --git a/arch/x86/mach-generic/default.c b/arch/x86/mach-generic/default.c
deleted file mode 100644
index e63a4a76d8cd..000000000000
--- a/arch/x86/mach-generic/default.c
+++ /dev/null
@@ -1,27 +0,0 @@
1/*
2 * Default generic APIC driver. This handles up to 8 CPUs.
3 */
4#define APIC_DEFINITION 1
5#include <linux/threads.h>
6#include <linux/cpumask.h>
7#include <asm/mpspec.h>
8#include <asm/mach-default/mach_apicdef.h>
9#include <asm/genapic.h>
10#include <asm/fixmap.h>
11#include <asm/apicdef.h>
12#include <linux/kernel.h>
13#include <linux/string.h>
14#include <linux/smp.h>
15#include <linux/init.h>
16#include <asm/mach-default/mach_apic.h>
17#include <asm/mach-default/mach_ipi.h>
18#include <asm/mach-default/mach_mpparse.h>
19#include <asm/mach-default/mach_wakecpu.h>
20
21/* should be called last. */
22static int probe_default(void)
23{
24 return 1;
25}
26
27struct genapic apic_default = APIC_INIT("default", probe_default);
diff --git a/arch/x86/mach-generic/es7000.c b/arch/x86/mach-generic/es7000.c
deleted file mode 100644
index c2ded1448024..000000000000
--- a/arch/x86/mach-generic/es7000.c
+++ /dev/null
@@ -1,103 +0,0 @@
1/*
2 * APIC driver for the Unisys ES7000 chipset.
3 */
4#define APIC_DEFINITION 1
5#include <linux/threads.h>
6#include <linux/cpumask.h>
7#include <asm/mpspec.h>
8#include <asm/genapic.h>
9#include <asm/fixmap.h>
10#include <asm/apicdef.h>
11#include <linux/kernel.h>
12#include <linux/string.h>
13#include <linux/init.h>
14#include <asm/es7000/apicdef.h>
15#include <linux/smp.h>
16#include <asm/es7000/apic.h>
17#include <asm/es7000/ipi.h>
18#include <asm/es7000/mpparse.h>
19#include <asm/mach-default/mach_wakecpu.h>
20
21void __init es7000_update_genapic_to_cluster(void)
22{
23 genapic->target_cpus = target_cpus_cluster;
24 genapic->int_delivery_mode = INT_DELIVERY_MODE_CLUSTER;
25 genapic->int_dest_mode = INT_DEST_MODE_CLUSTER;
26 genapic->no_balance_irq = NO_BALANCE_IRQ_CLUSTER;
27
28 genapic->init_apic_ldr = init_apic_ldr_cluster;
29
30 genapic->cpu_mask_to_apicid = cpu_mask_to_apicid_cluster;
31}
32
33static int probe_es7000(void)
34{
35 /* probed later in mptable/ACPI hooks */
36 return 0;
37}
38
39extern void es7000_sw_apic(void);
40static void __init enable_apic_mode(void)
41{
42 es7000_sw_apic();
43 return;
44}
45
46static __init int
47mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
48{
49 if (mpc->oemptr) {
50 struct mpc_oemtable *oem_table =
51 (struct mpc_oemtable *)mpc->oemptr;
52 if (!strncmp(oem, "UNISYS", 6))
53 return parse_unisys_oem((char *)oem_table);
54 }
55 return 0;
56}
57
58#ifdef CONFIG_ACPI
59/* Hook from generic ACPI tables.c */
60static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
61{
62 unsigned long oem_addr = 0;
63 int check_dsdt;
64 int ret = 0;
65
66 /* check dsdt at first to avoid clear fix_map for oem_addr */
67 check_dsdt = es7000_check_dsdt();
68
69 if (!find_unisys_acpi_oem_table(&oem_addr)) {
70 if (check_dsdt)
71 ret = parse_unisys_oem((char *)oem_addr);
72 else {
73 setup_unisys();
74 ret = 1;
75 }
76 /*
77 * we need to unmap it
78 */
79 unmap_unisys_acpi_oem_table(oem_addr);
80 }
81 return ret;
82}
83#else
84static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
85{
86 return 0;
87}
88#endif
89
90static void vector_allocation_domain(int cpu, cpumask_t *retmask)
91{
92 /* Careful. Some cpus do not strictly honor the set of cpus
93 * specified in the interrupt destination when using lowest
94 * priority interrupt delivery mode.
95 *
96 * In particular there was a hyperthreading cpu observed to
97 * deliver interrupts to the wrong hyperthread when only one
98 * hyperthread was specified in the interrupt desitination.
99 */
100 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
101}
102
103struct genapic __initdata_refok apic_es7000 = APIC_INIT("es7000", probe_es7000);
diff --git a/arch/x86/mach-generic/numaq.c b/arch/x86/mach-generic/numaq.c
deleted file mode 100644
index 3679e2255645..000000000000
--- a/arch/x86/mach-generic/numaq.c
+++ /dev/null
@@ -1,53 +0,0 @@
1/*
2 * APIC driver for the IBM NUMAQ chipset.
3 */
4#define APIC_DEFINITION 1
5#include <linux/threads.h>
6#include <linux/cpumask.h>
7#include <asm/mpspec.h>
8#include <asm/genapic.h>
9#include <asm/fixmap.h>
10#include <asm/apicdef.h>
11#include <linux/kernel.h>
12#include <linux/string.h>
13#include <linux/init.h>
14#include <asm/numaq/apicdef.h>
15#include <linux/smp.h>
16#include <asm/numaq/apic.h>
17#include <asm/numaq/ipi.h>
18#include <asm/numaq/mpparse.h>
19#include <asm/numaq/wakecpu.h>
20#include <asm/numaq.h>
21
22static int mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
23{
24 numaq_mps_oem_check(mpc, oem, productid);
25 return found_numaq;
26}
27
28static int probe_numaq(void)
29{
30 /* already know from get_memcfg_numaq() */
31 return found_numaq;
32}
33
34/* Hook from generic ACPI tables.c */
35static int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
36{
37 return 0;
38}
39
40static void vector_allocation_domain(int cpu, cpumask_t *retmask)
41{
42 /* Careful. Some cpus do not strictly honor the set of cpus
43 * specified in the interrupt destination when using lowest
44 * priority interrupt delivery mode.
45 *
46 * In particular there was a hyperthreading cpu observed to
47 * deliver interrupts to the wrong hyperthread when only one
48 * hyperthread was specified in the interrupt desitination.
49 */
50 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
51}
52
53struct genapic apic_numaq = APIC_INIT("NUMAQ", probe_numaq);
diff --git a/arch/x86/mach-generic/probe.c b/arch/x86/mach-generic/probe.c
deleted file mode 100644
index 15a38daef1a8..000000000000
--- a/arch/x86/mach-generic/probe.c
+++ /dev/null
@@ -1,152 +0,0 @@
1/*
2 * Copyright 2003 Andi Kleen, SuSE Labs.
3 * Subject to the GNU Public License, v.2
4 *
5 * Generic x86 APIC driver probe layer.
6 */
7#include <linux/threads.h>
8#include <linux/cpumask.h>
9#include <linux/string.h>
10#include <linux/kernel.h>
11#include <linux/ctype.h>
12#include <linux/init.h>
13#include <linux/errno.h>
14#include <asm/fixmap.h>
15#include <asm/mpspec.h>
16#include <asm/apicdef.h>
17#include <asm/genapic.h>
18#include <asm/setup.h>
19
20extern struct genapic apic_numaq;
21extern struct genapic apic_summit;
22extern struct genapic apic_bigsmp;
23extern struct genapic apic_es7000;
24extern struct genapic apic_default;
25
26struct genapic *genapic = &apic_default;
27
28static struct genapic *apic_probe[] __initdata = {
29#ifdef CONFIG_X86_NUMAQ
30 &apic_numaq,
31#endif
32#ifdef CONFIG_X86_SUMMIT
33 &apic_summit,
34#endif
35#ifdef CONFIG_X86_BIGSMP
36 &apic_bigsmp,
37#endif
38#ifdef CONFIG_X86_ES7000
39 &apic_es7000,
40#endif
41 &apic_default, /* must be last */
42 NULL,
43};
44
45static int cmdline_apic __initdata;
46static int __init parse_apic(char *arg)
47{
48 int i;
49
50 if (!arg)
51 return -EINVAL;
52
53 for (i = 0; apic_probe[i]; i++) {
54 if (!strcmp(apic_probe[i]->name, arg)) {
55 genapic = apic_probe[i];
56 cmdline_apic = 1;
57 return 0;
58 }
59 }
60
61 if (x86_quirks->update_genapic)
62 x86_quirks->update_genapic();
63
64 /* Parsed again by __setup for debug/verbose */
65 return 0;
66}
67early_param("apic", parse_apic);
68
69void __init generic_bigsmp_probe(void)
70{
71#ifdef CONFIG_X86_BIGSMP
72 /*
73 * This routine is used to switch to bigsmp mode when
74 * - There is no apic= option specified by the user
75 * - generic_apic_probe() has chosen apic_default as the sub_arch
76 * - we find more than 8 CPUs in acpi LAPIC listing with xAPIC support
77 */
78
79 if (!cmdline_apic && genapic == &apic_default) {
80 if (apic_bigsmp.probe()) {
81 genapic = &apic_bigsmp;
82 if (x86_quirks->update_genapic)
83 x86_quirks->update_genapic();
84 printk(KERN_INFO "Overriding APIC driver with %s\n",
85 genapic->name);
86 }
87 }
88#endif
89}
90
91void __init generic_apic_probe(void)
92{
93 if (!cmdline_apic) {
94 int i;
95 for (i = 0; apic_probe[i]; i++) {
96 if (apic_probe[i]->probe()) {
97 genapic = apic_probe[i];
98 break;
99 }
100 }
101 /* Not visible without early console */
102 if (!apic_probe[i])
103 panic("Didn't find an APIC driver");
104
105 if (x86_quirks->update_genapic)
106 x86_quirks->update_genapic();
107 }
108 printk(KERN_INFO "Using APIC driver %s\n", genapic->name);
109}
110
111/* These functions can switch the APIC even after the initial ->probe() */
112
113int __init mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
114{
115 int i;
116 for (i = 0; apic_probe[i]; ++i) {
117 if (apic_probe[i]->mps_oem_check(mpc, oem, productid)) {
118 if (!cmdline_apic) {
119 genapic = apic_probe[i];
120 if (x86_quirks->update_genapic)
121 x86_quirks->update_genapic();
122 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
123 genapic->name);
124 }
125 return 1;
126 }
127 }
128 return 0;
129}
130
131int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
132{
133 int i;
134 for (i = 0; apic_probe[i]; ++i) {
135 if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) {
136 if (!cmdline_apic) {
137 genapic = apic_probe[i];
138 if (x86_quirks->update_genapic)
139 x86_quirks->update_genapic();
140 printk(KERN_INFO "Switched to APIC driver `%s'.\n",
141 genapic->name);
142 }
143 return 1;
144 }
145 }
146 return 0;
147}
148
149int hard_smp_processor_id(void)
150{
151 return genapic->get_apic_id(*(unsigned long *)(APIC_BASE+APIC_ID));
152}
diff --git a/arch/x86/mach-generic/summit.c b/arch/x86/mach-generic/summit.c
deleted file mode 100644
index 2821ffc188b5..000000000000
--- a/arch/x86/mach-generic/summit.c
+++ /dev/null
@@ -1,40 +0,0 @@
1/*
2 * APIC driver for the IBM "Summit" chipset.
3 */
4#define APIC_DEFINITION 1
5#include <linux/threads.h>
6#include <linux/cpumask.h>
7#include <asm/mpspec.h>
8#include <asm/genapic.h>
9#include <asm/fixmap.h>
10#include <asm/apicdef.h>
11#include <linux/kernel.h>
12#include <linux/string.h>
13#include <linux/init.h>
14#include <asm/summit/apicdef.h>
15#include <linux/smp.h>
16#include <asm/summit/apic.h>
17#include <asm/summit/ipi.h>
18#include <asm/summit/mpparse.h>
19#include <asm/mach-default/mach_wakecpu.h>
20
21static int probe_summit(void)
22{
23 /* probed later in mptable/ACPI hooks */
24 return 0;
25}
26
27static void vector_allocation_domain(int cpu, cpumask_t *retmask)
28{
29 /* Careful. Some cpus do not strictly honor the set of cpus
30 * specified in the interrupt destination when using lowest
31 * priority interrupt delivery mode.
32 *
33 * In particular there was a hyperthreading cpu observed to
34 * deliver interrupts to the wrong hyperthread when only one
35 * hyperthread was specified in the interrupt desitination.
36 */
37 *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
38}
39
40struct genapic apic_summit = APIC_INIT("summit", probe_summit);
diff --git a/arch/x86/mach-rdc321x/Makefile b/arch/x86/mach-rdc321x/Makefile
deleted file mode 100644
index 8325b4ca431c..000000000000
--- a/arch/x86/mach-rdc321x/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
1#
2# Makefile for the RDC321x specific parts of the kernel
3#
4obj-$(CONFIG_X86_RDC321X) := gpio.o platform.o
5
diff --git a/arch/x86/mach-rdc321x/gpio.c b/arch/x86/mach-rdc321x/gpio.c
deleted file mode 100644
index 247f33d3a407..000000000000
--- a/arch/x86/mach-rdc321x/gpio.c
+++ /dev/null
@@ -1,194 +0,0 @@
1/*
2 * GPIO support for RDC SoC R3210/R8610
3 *
4 * Copyright (C) 2007, Florian Fainelli <florian@openwrt.org>
5 * Copyright (C) 2008, Volker Weiss <dev@tintuc.de>
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 as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 *
21 */
22
23
24#include <linux/spinlock.h>
25#include <linux/io.h>
26#include <linux/types.h>
27#include <linux/module.h>
28
29#include <asm/gpio.h>
30#include <asm/mach-rdc321x/rdc321x_defs.h>
31
32
33/* spin lock to protect our private copy of GPIO data register plus
34 the access to PCI conf registers. */
35static DEFINE_SPINLOCK(gpio_lock);
36
37/* copy of GPIO data registers */
38static u32 gpio_data_reg1;
39static u32 gpio_data_reg2;
40
41static u32 gpio_request_data[2];
42
43
44static inline void rdc321x_conf_write(unsigned addr, u32 value)
45{
46 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
47 outl(value, RDC3210_CFGREG_DATA);
48}
49
50static inline void rdc321x_conf_or(unsigned addr, u32 value)
51{
52 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
53 value |= inl(RDC3210_CFGREG_DATA);
54 outl(value, RDC3210_CFGREG_DATA);
55}
56
57static inline u32 rdc321x_conf_read(unsigned addr)
58{
59 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
60
61 return inl(RDC3210_CFGREG_DATA);
62}
63
64/* configure pin as GPIO */
65static void rdc321x_configure_gpio(unsigned gpio)
66{
67 unsigned long flags;
68
69 spin_lock_irqsave(&gpio_lock, flags);
70 rdc321x_conf_or(gpio < 32
71 ? RDC321X_GPIO_CTRL_REG1 : RDC321X_GPIO_CTRL_REG2,
72 1 << (gpio & 0x1f));
73 spin_unlock_irqrestore(&gpio_lock, flags);
74}
75
76/* initially setup the 2 copies of the gpio data registers.
77 This function must be called by the platform setup code. */
78void __init rdc321x_gpio_setup()
79{
80 /* this might not be, what others (BIOS, bootloader, etc.)
81 wrote to these registers before, but it's a good guess. Still
82 better than just using 0xffffffff. */
83
84 gpio_data_reg1 = rdc321x_conf_read(RDC321X_GPIO_DATA_REG1);
85 gpio_data_reg2 = rdc321x_conf_read(RDC321X_GPIO_DATA_REG2);
86}
87
88/* determine, if gpio number is valid */
89static inline int rdc321x_is_gpio(unsigned gpio)
90{
91 return gpio <= RDC321X_MAX_GPIO;
92}
93
94/* request GPIO */
95int rdc_gpio_request(unsigned gpio, const char *label)
96{
97 unsigned long flags;
98
99 if (!rdc321x_is_gpio(gpio))
100 return -EINVAL;
101
102 spin_lock_irqsave(&gpio_lock, flags);
103 if (gpio_request_data[(gpio & 0x20) ? 1 : 0] & (1 << (gpio & 0x1f)))
104 goto inuse;
105 gpio_request_data[(gpio & 0x20) ? 1 : 0] |= (1 << (gpio & 0x1f));
106 spin_unlock_irqrestore(&gpio_lock, flags);
107
108 return 0;
109inuse:
110 spin_unlock_irqrestore(&gpio_lock, flags);
111 return -EINVAL;
112}
113EXPORT_SYMBOL(rdc_gpio_request);
114
115/* release previously-claimed GPIO */
116void rdc_gpio_free(unsigned gpio)
117{
118 unsigned long flags;
119
120 if (!rdc321x_is_gpio(gpio))
121 return;
122
123 spin_lock_irqsave(&gpio_lock, flags);
124 gpio_request_data[(gpio & 0x20) ? 1 : 0] &= ~(1 << (gpio & 0x1f));
125 spin_unlock_irqrestore(&gpio_lock, flags);
126}
127EXPORT_SYMBOL(rdc_gpio_free);
128
129/* read GPIO pin */
130int rdc_gpio_get_value(unsigned gpio)
131{
132 u32 reg;
133 unsigned long flags;
134
135 spin_lock_irqsave(&gpio_lock, flags);
136 reg = rdc321x_conf_read(gpio < 32
137 ? RDC321X_GPIO_DATA_REG1 : RDC321X_GPIO_DATA_REG2);
138 spin_unlock_irqrestore(&gpio_lock, flags);
139
140 return (1 << (gpio & 0x1f)) & reg ? 1 : 0;
141}
142EXPORT_SYMBOL(rdc_gpio_get_value);
143
144/* set GPIO pin to value */
145void rdc_gpio_set_value(unsigned gpio, int value)
146{
147 unsigned long flags;
148 u32 reg;
149
150 reg = 1 << (gpio & 0x1f);
151 if (gpio < 32) {
152 spin_lock_irqsave(&gpio_lock, flags);
153 if (value)
154 gpio_data_reg1 |= reg;
155 else
156 gpio_data_reg1 &= ~reg;
157 rdc321x_conf_write(RDC321X_GPIO_DATA_REG1, gpio_data_reg1);
158 spin_unlock_irqrestore(&gpio_lock, flags);
159 } else {
160 spin_lock_irqsave(&gpio_lock, flags);
161 if (value)
162 gpio_data_reg2 |= reg;
163 else
164 gpio_data_reg2 &= ~reg;
165 rdc321x_conf_write(RDC321X_GPIO_DATA_REG2, gpio_data_reg2);
166 spin_unlock_irqrestore(&gpio_lock, flags);
167 }
168}
169EXPORT_SYMBOL(rdc_gpio_set_value);
170
171/* configure GPIO pin as input */
172int rdc_gpio_direction_input(unsigned gpio)
173{
174 if (!rdc321x_is_gpio(gpio))
175 return -EINVAL;
176
177 rdc321x_configure_gpio(gpio);
178
179 return 0;
180}
181EXPORT_SYMBOL(rdc_gpio_direction_input);
182
183/* configure GPIO pin as output and set value */
184int rdc_gpio_direction_output(unsigned gpio, int value)
185{
186 if (!rdc321x_is_gpio(gpio))
187 return -EINVAL;
188
189 gpio_set_value(gpio, value);
190 rdc321x_configure_gpio(gpio);
191
192 return 0;
193}
194EXPORT_SYMBOL(rdc_gpio_direction_output);
diff --git a/arch/x86/mach-rdc321x/platform.c b/arch/x86/mach-rdc321x/platform.c
deleted file mode 100644
index 4f4e50c3ad3b..000000000000
--- a/arch/x86/mach-rdc321x/platform.c
+++ /dev/null
@@ -1,69 +0,0 @@
1/*
2 * Generic RDC321x platform devices
3 *
4 * Copyright (C) 2007 Florian Fainelli <florian@openwrt.org>
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the
18 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
20 *
21 */
22
23#include <linux/init.h>
24#include <linux/kernel.h>
25#include <linux/list.h>
26#include <linux/device.h>
27#include <linux/platform_device.h>
28#include <linux/leds.h>
29
30#include <asm/gpio.h>
31
32/* LEDS */
33static struct gpio_led default_leds[] = {
34 { .name = "rdc:dmz", .gpio = 1, },
35};
36
37static struct gpio_led_platform_data rdc321x_led_data = {
38 .num_leds = ARRAY_SIZE(default_leds),
39 .leds = default_leds,
40};
41
42static struct platform_device rdc321x_leds = {
43 .name = "leds-gpio",
44 .id = -1,
45 .dev = {
46 .platform_data = &rdc321x_led_data,
47 }
48};
49
50/* Watchdog */
51static struct platform_device rdc321x_wdt = {
52 .name = "rdc321x-wdt",
53 .id = -1,
54 .num_resources = 0,
55};
56
57static struct platform_device *rdc321x_devs[] = {
58 &rdc321x_leds,
59 &rdc321x_wdt
60};
61
62static int __init rdc_board_setup(void)
63{
64 rdc321x_gpio_setup();
65
66 return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
67}
68
69arch_initcall(rdc_board_setup);
diff --git a/arch/x86/mach-voyager/Makefile b/arch/x86/mach-voyager/Makefile
deleted file mode 100644
index 15c250b371d3..000000000000
--- a/arch/x86/mach-voyager/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
1#
2# Makefile for the linux kernel.
3#
4
5EXTRA_CFLAGS := -Iarch/x86/kernel
6obj-y := setup.o voyager_basic.o voyager_thread.o
7
8obj-$(CONFIG_SMP) += voyager_smp.o voyager_cat.o
diff --git a/arch/x86/mach-voyager/setup.c b/arch/x86/mach-voyager/setup.c
deleted file mode 100644
index a580b9562e76..000000000000
--- a/arch/x86/mach-voyager/setup.c
+++ /dev/null
@@ -1,108 +0,0 @@
1/*
2 * Machine specific setup for generic
3 */
4
5#include <linux/init.h>
6#include <linux/interrupt.h>
7#include <asm/arch_hooks.h>
8#include <asm/voyager.h>
9#include <asm/e820.h>
10#include <asm/io.h>
11#include <asm/setup.h>
12
13void __init pre_intr_init_hook(void)
14{
15 init_ISA_irqs();
16}
17
18/*
19 * IRQ2 is cascade interrupt to second interrupt controller
20 */
21static struct irqaction irq2 = {
22 .handler = no_action,
23 .mask = CPU_MASK_NONE,
24 .name = "cascade",
25};
26
27void __init intr_init_hook(void)
28{
29#ifdef CONFIG_SMP
30 voyager_smp_intr_init();
31#endif
32
33 setup_irq(2, &irq2);
34}
35
36void __init pre_setup_arch_hook(void)
37{
38 /* Voyagers run their CPUs from independent clocks, so disable
39 * the TSC code because we can't sync them */
40 setup_clear_cpu_cap(X86_FEATURE_TSC);
41}
42
43void __init trap_init_hook(void)
44{
45}
46
47static struct irqaction irq0 = {
48 .handler = timer_interrupt,
49 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_IRQPOLL,
50 .mask = CPU_MASK_NONE,
51 .name = "timer"
52};
53
54void __init time_init_hook(void)
55{
56 irq0.mask = cpumask_of_cpu(safe_smp_processor_id());
57 setup_irq(0, &irq0);
58}
59
60/* Hook for machine specific memory setup. */
61
62char *__init machine_specific_memory_setup(void)
63{
64 char *who;
65 int new_nr;
66
67 who = "NOT VOYAGER";
68
69 if (voyager_level == 5) {
70 __u32 addr, length;
71 int i;
72
73 who = "Voyager-SUS";
74
75 e820.nr_map = 0;
76 for (i = 0; voyager_memory_detect(i, &addr, &length); i++) {
77 e820_add_region(addr, length, E820_RAM);
78 }
79 return who;
80 } else if (voyager_level == 4) {
81 __u32 tom;
82 __u16 catbase = inb(VOYAGER_SSPB_RELOCATION_PORT) << 8;
83 /* select the DINO config space */
84 outb(VOYAGER_DINO, VOYAGER_CAT_CONFIG_PORT);
85 /* Read DINO top of memory register */
86 tom = ((inb(catbase + 0x4) & 0xf0) << 16)
87 + ((inb(catbase + 0x5) & 0x7f) << 24);
88
89 if (inb(catbase) != VOYAGER_DINO) {
90 printk(KERN_ERR
91 "Voyager: Failed to get DINO for L4, setting tom to EXT_MEM_K\n");
92 tom = (boot_params.screen_info.ext_mem_k) << 10;
93 }
94 who = "Voyager-TOM";
95 e820_add_region(0, 0x9f000, E820_RAM);
96 /* map from 1M to top of memory */
97 e820_add_region(1 * 1024 * 1024, tom - 1 * 1024 * 1024,
98 E820_RAM);
99 /* FIXME: Should check the ASICs to see if I need to
100 * take out the 8M window. Just do it at the moment
101 * */
102 e820_add_region(8 * 1024 * 1024, 8 * 1024 * 1024,
103 E820_RESERVED);
104 return who;
105 }
106
107 return default_machine_specific_memory_setup();
108}
diff --git a/arch/x86/mach-voyager/voyager_basic.c b/arch/x86/mach-voyager/voyager_basic.c
deleted file mode 100644
index 46d6f8067690..000000000000
--- a/arch/x86/mach-voyager/voyager_basic.c
+++ /dev/null
@@ -1,317 +0,0 @@
1/* Copyright (C) 1999,2001
2 *
3 * Author: J.E.J.Bottomley@HansenPartnership.com
4 *
5 * This file contains all the voyager specific routines for getting
6 * initialisation of the architecture to function. For additional
7 * features see:
8 *
9 * voyager_cat.c - Voyager CAT bus interface
10 * voyager_smp.c - Voyager SMP hal (emulates linux smp.c)
11 */
12
13#include <linux/module.h>
14#include <linux/types.h>
15#include <linux/sched.h>
16#include <linux/ptrace.h>
17#include <linux/ioport.h>
18#include <linux/interrupt.h>
19#include <linux/init.h>
20#include <linux/delay.h>
21#include <linux/reboot.h>
22#include <linux/sysrq.h>
23#include <linux/smp.h>
24#include <linux/nodemask.h>
25#include <asm/io.h>
26#include <asm/voyager.h>
27#include <asm/vic.h>
28#include <linux/pm.h>
29#include <asm/tlbflush.h>
30#include <asm/arch_hooks.h>
31#include <asm/i8253.h>
32
33/*
34 * Power off function, if any
35 */
36void (*pm_power_off) (void);
37EXPORT_SYMBOL(pm_power_off);
38
39int voyager_level = 0;
40
41struct voyager_SUS *voyager_SUS = NULL;
42
43#ifdef CONFIG_SMP
44static void voyager_dump(int dummy1, struct tty_struct *dummy3)
45{
46 /* get here via a sysrq */
47 voyager_smp_dump();
48}
49
50static struct sysrq_key_op sysrq_voyager_dump_op = {
51 .handler = voyager_dump,
52 .help_msg = "Voyager",
53 .action_msg = "Dump Voyager Status",
54};
55#endif
56
57void voyager_detect(struct voyager_bios_info *bios)
58{
59 if (bios->len != 0xff) {
60 int class = (bios->class_1 << 8)
61 | (bios->class_2 & 0xff);
62
63 printk("Voyager System detected.\n"
64 " Class %x, Revision %d.%d\n",
65 class, bios->major, bios->minor);
66 if (class == VOYAGER_LEVEL4)
67 voyager_level = 4;
68 else if (class < VOYAGER_LEVEL5_AND_ABOVE)
69 voyager_level = 3;
70 else
71 voyager_level = 5;
72 printk(" Architecture Level %d\n", voyager_level);
73 if (voyager_level < 4)
74 printk
75 ("\n**WARNING**: Voyager HAL only supports Levels 4 and 5 Architectures at the moment\n\n");
76 /* install the power off handler */
77 pm_power_off = voyager_power_off;
78#ifdef CONFIG_SMP
79 register_sysrq_key('v', &sysrq_voyager_dump_op);
80#endif
81 } else {
82 printk("\n\n**WARNING**: No Voyager Subsystem Found\n");
83 }
84}
85
86void voyager_system_interrupt(int cpl, void *dev_id)
87{
88 printk("Voyager: detected system interrupt\n");
89}
90
91/* Routine to read information from the extended CMOS area */
92__u8 voyager_extended_cmos_read(__u16 addr)
93{
94 outb(addr & 0xff, 0x74);
95 outb((addr >> 8) & 0xff, 0x75);
96 return inb(0x76);
97}
98
99/* internal definitions for the SUS Click Map of memory */
100
101#define CLICK_ENTRIES 16
102#define CLICK_SIZE 4096 /* click to byte conversion for Length */
103
104typedef struct ClickMap {
105 struct Entry {
106 __u32 Address;
107 __u32 Length;
108 } Entry[CLICK_ENTRIES];
109} ClickMap_t;
110
111/* This routine is pretty much an awful hack to read the bios clickmap by
112 * mapping it into page 0. There are usually three regions in the map:
113 * Base Memory
114 * Extended Memory
115 * zero length marker for end of map
116 *
117 * Returns are 0 for failure and 1 for success on extracting region.
118 */
119int __init voyager_memory_detect(int region, __u32 * start, __u32 * length)
120{
121 int i;
122 int retval = 0;
123 __u8 cmos[4];
124 ClickMap_t *map;
125 unsigned long map_addr;
126 unsigned long old;
127
128 if (region >= CLICK_ENTRIES) {
129 printk("Voyager: Illegal ClickMap region %d\n", region);
130 return 0;
131 }
132
133 for (i = 0; i < sizeof(cmos); i++)
134 cmos[i] =
135 voyager_extended_cmos_read(VOYAGER_MEMORY_CLICKMAP + i);
136
137 map_addr = *(unsigned long *)cmos;
138
139 /* steal page 0 for this */
140 old = pg0[0];
141 pg0[0] = ((map_addr & PAGE_MASK) | _PAGE_RW | _PAGE_PRESENT);
142 local_flush_tlb();
143 /* now clear everything out but page 0 */
144 map = (ClickMap_t *) (map_addr & (~PAGE_MASK));
145
146 /* zero length is the end of the clickmap */
147 if (map->Entry[region].Length != 0) {
148 *length = map->Entry[region].Length * CLICK_SIZE;
149 *start = map->Entry[region].Address;
150 retval = 1;
151 }
152
153 /* replace the mapping */
154 pg0[0] = old;
155 local_flush_tlb();
156 return retval;
157}
158
159/* voyager specific handling code for timer interrupts. Used to hand
160 * off the timer tick to the SMP code, since the VIC doesn't have an
161 * internal timer (The QIC does, but that's another story). */
162void voyager_timer_interrupt(void)
163{
164 if ((jiffies & 0x3ff) == 0) {
165
166 /* There seems to be something flaky in either
167 * hardware or software that is resetting the timer 0
168 * count to something much higher than it should be
169 * This seems to occur in the boot sequence, just
170 * before root is mounted. Therefore, every 10
171 * seconds or so, we sanity check the timer zero count
172 * and kick it back to where it should be.
173 *
174 * FIXME: This is the most awful hack yet seen. I
175 * should work out exactly what is interfering with
176 * the timer count settings early in the boot sequence
177 * and swiftly introduce it to something sharp and
178 * pointy. */
179 __u16 val;
180
181 spin_lock(&i8253_lock);
182
183 outb_p(0x00, 0x43);
184 val = inb_p(0x40);
185 val |= inb(0x40) << 8;
186 spin_unlock(&i8253_lock);
187
188 if (val > LATCH) {
189 printk
190 ("\nVOYAGER: countdown timer value too high (%d), resetting\n\n",
191 val);
192 spin_lock(&i8253_lock);
193 outb(0x34, 0x43);
194 outb_p(LATCH & 0xff, 0x40); /* LSB */
195 outb(LATCH >> 8, 0x40); /* MSB */
196 spin_unlock(&i8253_lock);
197 }
198 }
199#ifdef CONFIG_SMP
200 smp_vic_timer_interrupt();
201#endif
202}
203
204void voyager_power_off(void)
205{
206 printk("VOYAGER Power Off\n");
207
208 if (voyager_level == 5) {
209 voyager_cat_power_off();
210 } else if (voyager_level == 4) {
211 /* This doesn't apparently work on most L4 machines,
212 * but the specs say to do this to get automatic power
213 * off. Unfortunately, if it doesn't power off the
214 * machine, it ends up doing a cold restart, which
215 * isn't really intended, so comment out the code */
216#if 0
217 int port;
218
219 /* enable the voyager Configuration Space */
220 outb((inb(VOYAGER_MC_SETUP) & 0xf0) | 0x8, VOYAGER_MC_SETUP);
221 /* the port for the power off flag is an offset from the
222 floating base */
223 port = (inb(VOYAGER_SSPB_RELOCATION_PORT) << 8) + 0x21;
224 /* set the power off flag */
225 outb(inb(port) | 0x1, port);
226#endif
227 }
228 /* and wait for it to happen */
229 local_irq_disable();
230 for (;;)
231 halt();
232}
233
234/* copied from process.c */
235static inline void kb_wait(void)
236{
237 int i;
238
239 for (i = 0; i < 0x10000; i++)
240 if ((inb_p(0x64) & 0x02) == 0)
241 break;
242}
243
244void machine_shutdown(void)
245{
246 /* Architecture specific shutdown needed before a kexec */
247}
248
249void machine_restart(char *cmd)
250{
251 printk("Voyager Warm Restart\n");
252 kb_wait();
253
254 if (voyager_level == 5) {
255 /* write magic values to the RTC to inform system that
256 * shutdown is beginning */
257 outb(0x8f, 0x70);
258 outb(0x5, 0x71);
259
260 udelay(50);
261 outb(0xfe, 0x64); /* pull reset low */
262 } else if (voyager_level == 4) {
263 __u16 catbase = inb(VOYAGER_SSPB_RELOCATION_PORT) << 8;
264 __u8 basebd = inb(VOYAGER_MC_SETUP);
265
266 outb(basebd | 0x08, VOYAGER_MC_SETUP);
267 outb(0x02, catbase + 0x21);
268 }
269 local_irq_disable();
270 for (;;)
271 halt();
272}
273
274void machine_emergency_restart(void)
275{
276 /*for now, just hook this to a warm restart */
277 machine_restart(NULL);
278}
279
280void mca_nmi_hook(void)
281{
282 __u8 dumpval __maybe_unused = inb(0xf823);
283 __u8 swnmi __maybe_unused = inb(0xf813);
284
285 /* FIXME: assume dump switch pressed */
286 /* check to see if the dump switch was pressed */
287 VDEBUG(("VOYAGER: dumpval = 0x%x, swnmi = 0x%x\n", dumpval, swnmi));
288 /* clear swnmi */
289 outb(0xff, 0xf813);
290 /* tell SUS to ignore dump */
291 if (voyager_level == 5 && voyager_SUS != NULL) {
292 if (voyager_SUS->SUS_mbox == VOYAGER_DUMP_BUTTON_NMI) {
293 voyager_SUS->kernel_mbox = VOYAGER_NO_COMMAND;
294 voyager_SUS->kernel_flags |= VOYAGER_OS_IN_PROGRESS;
295 udelay(1000);
296 voyager_SUS->kernel_mbox = VOYAGER_IGNORE_DUMP;
297 voyager_SUS->kernel_flags &= ~VOYAGER_OS_IN_PROGRESS;
298 }
299 }
300 printk(KERN_ERR
301 "VOYAGER: Dump switch pressed, printing CPU%d tracebacks\n",
302 smp_processor_id());
303 show_stack(NULL, NULL);
304 show_state();
305}
306
307void machine_halt(void)
308{
309 /* treat a halt like a power off */
310 machine_power_off();
311}
312
313void machine_power_off(void)
314{
315 if (pm_power_off)
316 pm_power_off();
317}
diff --git a/arch/x86/mach-voyager/voyager_cat.c b/arch/x86/mach-voyager/voyager_cat.c
deleted file mode 100644
index 2ad598c104af..000000000000
--- a/arch/x86/mach-voyager/voyager_cat.c
+++ /dev/null
@@ -1,1197 +0,0 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */
2
3/* Copyright (C) 1999,2001
4 *
5 * Author: J.E.J.Bottomley@HansenPartnership.com
6 *
7 * This file contains all the logic for manipulating the CAT bus
8 * in a level 5 machine.
9 *
10 * The CAT bus is a serial configuration and test bus. Its primary
11 * uses are to probe the initial configuration of the system and to
12 * diagnose error conditions when a system interrupt occurs. The low
13 * level interface is fairly primitive, so most of this file consists
14 * of bit shift manipulations to send and receive packets on the
15 * serial bus */
16
17#include <linux/types.h>
18#include <linux/completion.h>
19#include <linux/sched.h>
20#include <asm/voyager.h>
21#include <asm/vic.h>
22#include <linux/ioport.h>
23#include <linux/init.h>
24#include <linux/slab.h>
25#include <linux/delay.h>
26#include <asm/io.h>
27
28#ifdef VOYAGER_CAT_DEBUG
29#define CDEBUG(x) printk x
30#else
31#define CDEBUG(x)
32#endif
33
34/* the CAT command port */
35#define CAT_CMD (sspb + 0xe)
36/* the CAT data port */
37#define CAT_DATA (sspb + 0xd)
38
39/* the internal cat functions */
40static void cat_pack(__u8 * msg, __u16 start_bit, __u8 * data, __u16 num_bits);
41static void cat_unpack(__u8 * msg, __u16 start_bit, __u8 * data,
42 __u16 num_bits);
43static void cat_build_header(__u8 * header, const __u16 len,
44 const __u16 smallest_reg_bits,
45 const __u16 longest_reg_bits);
46static int cat_sendinst(voyager_module_t * modp, voyager_asic_t * asicp,
47 __u8 reg, __u8 op);
48static int cat_getdata(voyager_module_t * modp, voyager_asic_t * asicp,
49 __u8 reg, __u8 * value);
50static int cat_shiftout(__u8 * data, __u16 data_bytes, __u16 header_bytes,
51 __u8 pad_bits);
52static int cat_write(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg,
53 __u8 value);
54static int cat_read(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg,
55 __u8 * value);
56static int cat_subread(voyager_module_t * modp, voyager_asic_t * asicp,
57 __u16 offset, __u16 len, void *buf);
58static int cat_senddata(voyager_module_t * modp, voyager_asic_t * asicp,
59 __u8 reg, __u8 value);
60static int cat_disconnect(voyager_module_t * modp, voyager_asic_t * asicp);
61static int cat_connect(voyager_module_t * modp, voyager_asic_t * asicp);
62
63static inline const char *cat_module_name(int module_id)
64{
65 switch (module_id) {
66 case 0x10:
67 return "Processor Slot 0";
68 case 0x11:
69 return "Processor Slot 1";
70 case 0x12:
71 return "Processor Slot 2";
72 case 0x13:
73 return "Processor Slot 4";
74 case 0x14:
75 return "Memory Slot 0";
76 case 0x15:
77 return "Memory Slot 1";
78 case 0x18:
79 return "Primary Microchannel";
80 case 0x19:
81 return "Secondary Microchannel";
82 case 0x1a:
83 return "Power Supply Interface";
84 case 0x1c:
85 return "Processor Slot 5";
86 case 0x1d:
87 return "Processor Slot 6";
88 case 0x1e:
89 return "Processor Slot 7";
90 case 0x1f:
91 return "Processor Slot 8";
92 default:
93 return "Unknown Module";
94 }
95}
96
97static int sspb = 0; /* stores the super port location */
98int voyager_8slot = 0; /* set to true if a 51xx monster */
99
100voyager_module_t *voyager_cat_list;
101
102/* the I/O port assignments for the VIC and QIC */
103static struct resource vic_res = {
104 .name = "Voyager Interrupt Controller",
105 .start = 0xFC00,
106 .end = 0xFC6F
107};
108static struct resource qic_res = {
109 .name = "Quad Interrupt Controller",
110 .start = 0xFC70,
111 .end = 0xFCFF
112};
113
114/* This function is used to pack a data bit stream inside a message.
115 * It writes num_bits of the data buffer in msg starting at start_bit.
116 * Note: This function assumes that any unused bit in the data stream
117 * is set to zero so that the ors will work correctly */
118static void
119cat_pack(__u8 * msg, const __u16 start_bit, __u8 * data, const __u16 num_bits)
120{
121 /* compute initial shift needed */
122 const __u16 offset = start_bit % BITS_PER_BYTE;
123 __u16 len = num_bits / BITS_PER_BYTE;
124 __u16 byte = start_bit / BITS_PER_BYTE;
125 __u16 residue = (num_bits % BITS_PER_BYTE) + offset;
126 int i;
127
128 /* adjust if we have more than a byte of residue */
129 if (residue >= BITS_PER_BYTE) {
130 residue -= BITS_PER_BYTE;
131 len++;
132 }
133
134 /* clear out the bits. We assume here that if len==0 then
135 * residue >= offset. This is always true for the catbus
136 * operations */
137 msg[byte] &= 0xff << (BITS_PER_BYTE - offset);
138 msg[byte++] |= data[0] >> offset;
139 if (len == 0)
140 return;
141 for (i = 1; i < len; i++)
142 msg[byte++] = (data[i - 1] << (BITS_PER_BYTE - offset))
143 | (data[i] >> offset);
144 if (residue != 0) {
145 __u8 mask = 0xff >> residue;
146 __u8 last_byte = data[i - 1] << (BITS_PER_BYTE - offset)
147 | (data[i] >> offset);
148
149 last_byte &= ~mask;
150 msg[byte] &= mask;
151 msg[byte] |= last_byte;
152 }
153 return;
154}
155
156/* unpack the data again (same arguments as cat_pack()). data buffer
157 * must be zero populated.
158 *
159 * Function: given a message string move to start_bit and copy num_bits into
160 * data (starting at bit 0 in data).
161 */
162static void
163cat_unpack(__u8 * msg, const __u16 start_bit, __u8 * data, const __u16 num_bits)
164{
165 /* compute initial shift needed */
166 const __u16 offset = start_bit % BITS_PER_BYTE;
167 __u16 len = num_bits / BITS_PER_BYTE;
168 const __u8 last_bits = num_bits % BITS_PER_BYTE;
169 __u16 byte = start_bit / BITS_PER_BYTE;
170 int i;
171
172 if (last_bits != 0)
173 len++;
174
175 /* special case: want < 8 bits from msg and we can get it from
176 * a single byte of the msg */
177 if (len == 0 && BITS_PER_BYTE - offset >= num_bits) {
178 data[0] = msg[byte] << offset;
179 data[0] &= 0xff >> (BITS_PER_BYTE - num_bits);
180 return;
181 }
182 for (i = 0; i < len; i++) {
183 /* this annoying if has to be done just in case a read of
184 * msg one beyond the array causes a panic */
185 if (offset != 0) {
186 data[i] = msg[byte++] << offset;
187 data[i] |= msg[byte] >> (BITS_PER_BYTE - offset);
188 } else {
189 data[i] = msg[byte++];
190 }
191 }
192 /* do we need to truncate the final byte */
193 if (last_bits != 0) {
194 data[i - 1] &= 0xff << (BITS_PER_BYTE - last_bits);
195 }
196 return;
197}
198
199static void
200cat_build_header(__u8 * header, const __u16 len, const __u16 smallest_reg_bits,
201 const __u16 longest_reg_bits)
202{
203 int i;
204 __u16 start_bit = (smallest_reg_bits - 1) % BITS_PER_BYTE;
205 __u8 *last_byte = &header[len - 1];
206
207 if (start_bit == 0)
208 start_bit = 1; /* must have at least one bit in the hdr */
209
210 for (i = 0; i < len; i++)
211 header[i] = 0;
212
213 for (i = start_bit; i > 0; i--)
214 *last_byte = ((*last_byte) << 1) + 1;
215
216}
217
218static int
219cat_sendinst(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg, __u8 op)
220{
221 __u8 parity, inst, inst_buf[4] = { 0 };
222 __u8 iseq[VOYAGER_MAX_SCAN_PATH], hseq[VOYAGER_MAX_REG_SIZE];
223 __u16 ibytes, hbytes, padbits;
224 int i;
225
226 /*
227 * Parity is the parity of the register number + 1 (READ_REGISTER
228 * and WRITE_REGISTER always add '1' to the number of bits == 1)
229 */
230 parity = (__u8) (1 + (reg & 0x01) +
231 ((__u8) (reg & 0x02) >> 1) +
232 ((__u8) (reg & 0x04) >> 2) +
233 ((__u8) (reg & 0x08) >> 3)) % 2;
234
235 inst = ((parity << 7) | (reg << 2) | op);
236
237 outb(VOYAGER_CAT_IRCYC, CAT_CMD);
238 if (!modp->scan_path_connected) {
239 if (asicp->asic_id != VOYAGER_CAT_ID) {
240 printk
241 ("**WARNING***: cat_sendinst has disconnected scan path not to CAT asic\n");
242 return 1;
243 }
244 outb(VOYAGER_CAT_HEADER, CAT_DATA);
245 outb(inst, CAT_DATA);
246 if (inb(CAT_DATA) != VOYAGER_CAT_HEADER) {
247 CDEBUG(("VOYAGER CAT: cat_sendinst failed to get CAT_HEADER\n"));
248 return 1;
249 }
250 return 0;
251 }
252 ibytes = modp->inst_bits / BITS_PER_BYTE;
253 if ((padbits = modp->inst_bits % BITS_PER_BYTE) != 0) {
254 padbits = BITS_PER_BYTE - padbits;
255 ibytes++;
256 }
257 hbytes = modp->largest_reg / BITS_PER_BYTE;
258 if (modp->largest_reg % BITS_PER_BYTE)
259 hbytes++;
260 CDEBUG(("cat_sendinst: ibytes=%d, hbytes=%d\n", ibytes, hbytes));
261 /* initialise the instruction sequence to 0xff */
262 for (i = 0; i < ibytes + hbytes; i++)
263 iseq[i] = 0xff;
264 cat_build_header(hseq, hbytes, modp->smallest_reg, modp->largest_reg);
265 cat_pack(iseq, modp->inst_bits, hseq, hbytes * BITS_PER_BYTE);
266 inst_buf[0] = inst;
267 inst_buf[1] = 0xFF >> (modp->largest_reg % BITS_PER_BYTE);
268 cat_pack(iseq, asicp->bit_location, inst_buf, asicp->ireg_length);
269#ifdef VOYAGER_CAT_DEBUG
270 printk("ins = 0x%x, iseq: ", inst);
271 for (i = 0; i < ibytes + hbytes; i++)
272 printk("0x%x ", iseq[i]);
273 printk("\n");
274#endif
275 if (cat_shiftout(iseq, ibytes, hbytes, padbits)) {
276 CDEBUG(("VOYAGER CAT: cat_sendinst: cat_shiftout failed\n"));
277 return 1;
278 }
279 CDEBUG(("CAT SHIFTOUT DONE\n"));
280 return 0;
281}
282
283static int
284cat_getdata(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg,
285 __u8 * value)
286{
287 if (!modp->scan_path_connected) {
288 if (asicp->asic_id != VOYAGER_CAT_ID) {
289 CDEBUG(("VOYAGER CAT: ERROR: cat_getdata to CAT asic with scan path connected\n"));
290 return 1;
291 }
292 if (reg > VOYAGER_SUBADDRHI)
293 outb(VOYAGER_CAT_RUN, CAT_CMD);
294 outb(VOYAGER_CAT_DRCYC, CAT_CMD);
295 outb(VOYAGER_CAT_HEADER, CAT_DATA);
296 *value = inb(CAT_DATA);
297 outb(0xAA, CAT_DATA);
298 if (inb(CAT_DATA) != VOYAGER_CAT_HEADER) {
299 CDEBUG(("cat_getdata: failed to get VOYAGER_CAT_HEADER\n"));
300 return 1;
301 }
302 return 0;
303 } else {
304 __u16 sbits = modp->num_asics - 1 + asicp->ireg_length;
305 __u16 sbytes = sbits / BITS_PER_BYTE;
306 __u16 tbytes;
307 __u8 string[VOYAGER_MAX_SCAN_PATH],
308 trailer[VOYAGER_MAX_REG_SIZE];
309 __u8 padbits;
310 int i;
311
312 outb(VOYAGER_CAT_DRCYC, CAT_CMD);
313
314 if ((padbits = sbits % BITS_PER_BYTE) != 0) {
315 padbits = BITS_PER_BYTE - padbits;
316 sbytes++;
317 }
318 tbytes = asicp->ireg_length / BITS_PER_BYTE;
319 if (asicp->ireg_length % BITS_PER_BYTE)
320 tbytes++;
321 CDEBUG(("cat_getdata: tbytes = %d, sbytes = %d, padbits = %d\n",
322 tbytes, sbytes, padbits));
323 cat_build_header(trailer, tbytes, 1, asicp->ireg_length);
324
325 for (i = tbytes - 1; i >= 0; i--) {
326 outb(trailer[i], CAT_DATA);
327 string[sbytes + i] = inb(CAT_DATA);
328 }
329
330 for (i = sbytes - 1; i >= 0; i--) {
331 outb(0xaa, CAT_DATA);
332 string[i] = inb(CAT_DATA);
333 }
334 *value = 0;
335 cat_unpack(string,
336 padbits + (tbytes * BITS_PER_BYTE) +
337 asicp->asic_location, value, asicp->ireg_length);
338#ifdef VOYAGER_CAT_DEBUG
339 printk("value=0x%x, string: ", *value);
340 for (i = 0; i < tbytes + sbytes; i++)
341 printk("0x%x ", string[i]);
342 printk("\n");
343#endif
344
345 /* sanity check the rest of the return */
346 for (i = 0; i < tbytes; i++) {
347 __u8 input = 0;
348
349 cat_unpack(string, padbits + (i * BITS_PER_BYTE),
350 &input, BITS_PER_BYTE);
351 if (trailer[i] != input) {
352 CDEBUG(("cat_getdata: failed to sanity check rest of ret(%d) 0x%x != 0x%x\n", i, input, trailer[i]));
353 return 1;
354 }
355 }
356 CDEBUG(("cat_getdata DONE\n"));
357 return 0;
358 }
359}
360
361static int
362cat_shiftout(__u8 * data, __u16 data_bytes, __u16 header_bytes, __u8 pad_bits)
363{
364 int i;
365
366 for (i = data_bytes + header_bytes - 1; i >= header_bytes; i--)
367 outb(data[i], CAT_DATA);
368
369 for (i = header_bytes - 1; i >= 0; i--) {
370 __u8 header = 0;
371 __u8 input;
372
373 outb(data[i], CAT_DATA);
374 input = inb(CAT_DATA);
375 CDEBUG(("cat_shiftout: returned 0x%x\n", input));
376 cat_unpack(data, ((data_bytes + i) * BITS_PER_BYTE) - pad_bits,
377 &header, BITS_PER_BYTE);
378 if (input != header) {
379 CDEBUG(("VOYAGER CAT: cat_shiftout failed to return header 0x%x != 0x%x\n", input, header));
380 return 1;
381 }
382 }
383 return 0;
384}
385
386static int
387cat_senddata(voyager_module_t * modp, voyager_asic_t * asicp,
388 __u8 reg, __u8 value)
389{
390 outb(VOYAGER_CAT_DRCYC, CAT_CMD);
391 if (!modp->scan_path_connected) {
392 if (asicp->asic_id != VOYAGER_CAT_ID) {
393 CDEBUG(("VOYAGER CAT: ERROR: scan path disconnected when asic != CAT\n"));
394 return 1;
395 }
396 outb(VOYAGER_CAT_HEADER, CAT_DATA);
397 outb(value, CAT_DATA);
398 if (inb(CAT_DATA) != VOYAGER_CAT_HEADER) {
399 CDEBUG(("cat_senddata: failed to get correct header response to sent data\n"));
400 return 1;
401 }
402 if (reg > VOYAGER_SUBADDRHI) {
403 outb(VOYAGER_CAT_RUN, CAT_CMD);
404 outb(VOYAGER_CAT_END, CAT_CMD);
405 outb(VOYAGER_CAT_RUN, CAT_CMD);
406 }
407
408 return 0;
409 } else {
410 __u16 hbytes = asicp->ireg_length / BITS_PER_BYTE;
411 __u16 dbytes =
412 (modp->num_asics - 1 + asicp->ireg_length) / BITS_PER_BYTE;
413 __u8 padbits, dseq[VOYAGER_MAX_SCAN_PATH],
414 hseq[VOYAGER_MAX_REG_SIZE];
415 int i;
416
417 if ((padbits = (modp->num_asics - 1
418 + asicp->ireg_length) % BITS_PER_BYTE) != 0) {
419 padbits = BITS_PER_BYTE - padbits;
420 dbytes++;
421 }
422 if (asicp->ireg_length % BITS_PER_BYTE)
423 hbytes++;
424
425 cat_build_header(hseq, hbytes, 1, asicp->ireg_length);
426
427 for (i = 0; i < dbytes + hbytes; i++)
428 dseq[i] = 0xff;
429 CDEBUG(("cat_senddata: dbytes=%d, hbytes=%d, padbits=%d\n",
430 dbytes, hbytes, padbits));
431 cat_pack(dseq, modp->num_asics - 1 + asicp->ireg_length,
432 hseq, hbytes * BITS_PER_BYTE);
433 cat_pack(dseq, asicp->asic_location, &value,
434 asicp->ireg_length);
435#ifdef VOYAGER_CAT_DEBUG
436 printk("dseq ");
437 for (i = 0; i < hbytes + dbytes; i++) {
438 printk("0x%x ", dseq[i]);
439 }
440 printk("\n");
441#endif
442 return cat_shiftout(dseq, dbytes, hbytes, padbits);
443 }
444}
445
446static int
447cat_write(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg, __u8 value)
448{
449 if (cat_sendinst(modp, asicp, reg, VOYAGER_WRITE_CONFIG))
450 return 1;
451 return cat_senddata(modp, asicp, reg, value);
452}
453
454static int
455cat_read(voyager_module_t * modp, voyager_asic_t * asicp, __u8 reg,
456 __u8 * value)
457{
458 if (cat_sendinst(modp, asicp, reg, VOYAGER_READ_CONFIG))
459 return 1;
460 return cat_getdata(modp, asicp, reg, value);
461}
462
463static int
464cat_subaddrsetup(voyager_module_t * modp, voyager_asic_t * asicp, __u16 offset,
465 __u16 len)
466{
467 __u8 val;
468
469 if (len > 1) {
470 /* set auto increment */
471 __u8 newval;
472
473 if (cat_read(modp, asicp, VOYAGER_AUTO_INC_REG, &val)) {
474 CDEBUG(("cat_subaddrsetup: read of VOYAGER_AUTO_INC_REG failed\n"));
475 return 1;
476 }
477 CDEBUG(("cat_subaddrsetup: VOYAGER_AUTO_INC_REG = 0x%x\n",
478 val));
479 newval = val | VOYAGER_AUTO_INC;
480 if (newval != val) {
481 if (cat_write(modp, asicp, VOYAGER_AUTO_INC_REG, val)) {
482 CDEBUG(("cat_subaddrsetup: write to VOYAGER_AUTO_INC_REG failed\n"));
483 return 1;
484 }
485 }
486 }
487 if (cat_write(modp, asicp, VOYAGER_SUBADDRLO, (__u8) (offset & 0xff))) {
488 CDEBUG(("cat_subaddrsetup: write to SUBADDRLO failed\n"));
489 return 1;
490 }
491 if (asicp->subaddr > VOYAGER_SUBADDR_LO) {
492 if (cat_write
493 (modp, asicp, VOYAGER_SUBADDRHI, (__u8) (offset >> 8))) {
494 CDEBUG(("cat_subaddrsetup: write to SUBADDRHI failed\n"));
495 return 1;
496 }
497 cat_read(modp, asicp, VOYAGER_SUBADDRHI, &val);
498 CDEBUG(("cat_subaddrsetup: offset = %d, hi = %d\n", offset,
499 val));
500 }
501 cat_read(modp, asicp, VOYAGER_SUBADDRLO, &val);
502 CDEBUG(("cat_subaddrsetup: offset = %d, lo = %d\n", offset, val));
503 return 0;
504}
505
506static int
507cat_subwrite(voyager_module_t * modp, voyager_asic_t * asicp, __u16 offset,
508 __u16 len, void *buf)
509{
510 int i, retval;
511
512 /* FIXME: need special actions for VOYAGER_CAT_ID here */
513 if (asicp->asic_id == VOYAGER_CAT_ID) {
514 CDEBUG(("cat_subwrite: ATTEMPT TO WRITE TO CAT ASIC\n"));
515 /* FIXME -- This is supposed to be handled better
516 * There is a problem writing to the cat asic in the
517 * PSI. The 30us delay seems to work, though */
518 udelay(30);
519 }
520
521 if ((retval = cat_subaddrsetup(modp, asicp, offset, len)) != 0) {
522 printk("cat_subwrite: cat_subaddrsetup FAILED\n");
523 return retval;
524 }
525
526 if (cat_sendinst
527 (modp, asicp, VOYAGER_SUBADDRDATA, VOYAGER_WRITE_CONFIG)) {
528 printk("cat_subwrite: cat_sendinst FAILED\n");
529 return 1;
530 }
531 for (i = 0; i < len; i++) {
532 if (cat_senddata(modp, asicp, 0xFF, ((__u8 *) buf)[i])) {
533 printk
534 ("cat_subwrite: cat_sendata element at %d FAILED\n",
535 i);
536 return 1;
537 }
538 }
539 return 0;
540}
541static int
542cat_subread(voyager_module_t * modp, voyager_asic_t * asicp, __u16 offset,
543 __u16 len, void *buf)
544{
545 int i, retval;
546
547 if ((retval = cat_subaddrsetup(modp, asicp, offset, len)) != 0) {
548 CDEBUG(("cat_subread: cat_subaddrsetup FAILED\n"));
549 return retval;
550 }
551
552 if (cat_sendinst(modp, asicp, VOYAGER_SUBADDRDATA, VOYAGER_READ_CONFIG)) {
553 CDEBUG(("cat_subread: cat_sendinst failed\n"));
554 return 1;
555 }
556 for (i = 0; i < len; i++) {
557 if (cat_getdata(modp, asicp, 0xFF, &((__u8 *) buf)[i])) {
558 CDEBUG(("cat_subread: cat_getdata element %d failed\n",
559 i));
560 return 1;
561 }
562 }
563 return 0;
564}
565
566/* buffer for storing EPROM data read in during initialisation */
567static __initdata __u8 eprom_buf[0xFFFF];
568static voyager_module_t *voyager_initial_module;
569
570/* Initialise the cat bus components. We assume this is called by the
571 * boot cpu *after* all memory initialisation has been done (so we can
572 * use kmalloc) but before smp initialisation, so we can probe the SMP
573 * configuration and pick up necessary information. */
574void __init voyager_cat_init(void)
575{
576 voyager_module_t **modpp = &voyager_initial_module;
577 voyager_asic_t **asicpp;
578 voyager_asic_t *qabc_asic = NULL;
579 int i, j;
580 unsigned long qic_addr = 0;
581 __u8 qabc_data[0x20];
582 __u8 num_submodules, val;
583 voyager_eprom_hdr_t *eprom_hdr = (voyager_eprom_hdr_t *) & eprom_buf[0];
584
585 __u8 cmos[4];
586 unsigned long addr;
587
588 /* initiallise the SUS mailbox */
589 for (i = 0; i < sizeof(cmos); i++)
590 cmos[i] = voyager_extended_cmos_read(VOYAGER_DUMP_LOCATION + i);
591 addr = *(unsigned long *)cmos;
592 if ((addr & 0xff000000) != 0xff000000) {
593 printk(KERN_ERR
594 "Voyager failed to get SUS mailbox (addr = 0x%lx\n",
595 addr);
596 } else {
597 static struct resource res;
598
599 res.name = "voyager SUS";
600 res.start = addr;
601 res.end = addr + 0x3ff;
602
603 request_resource(&iomem_resource, &res);
604 voyager_SUS = (struct voyager_SUS *)
605 ioremap(addr, 0x400);
606 printk(KERN_NOTICE "Voyager SUS mailbox version 0x%x\n",
607 voyager_SUS->SUS_version);
608 voyager_SUS->kernel_version = VOYAGER_MAILBOX_VERSION;
609 voyager_SUS->kernel_flags = VOYAGER_OS_HAS_SYSINT;
610 }
611
612 /* clear the processor counts */
613 voyager_extended_vic_processors = 0;
614 voyager_quad_processors = 0;
615
616 printk("VOYAGER: beginning CAT bus probe\n");
617 /* set up the SuperSet Port Block which tells us where the
618 * CAT communication port is */
619 sspb = inb(VOYAGER_SSPB_RELOCATION_PORT) * 0x100;
620 VDEBUG(("VOYAGER DEBUG: sspb = 0x%x\n", sspb));
621
622 /* now find out if were 8 slot or normal */
623 if ((inb(VIC_PROC_WHO_AM_I) & EIGHT_SLOT_IDENTIFIER)
624 == EIGHT_SLOT_IDENTIFIER) {
625 voyager_8slot = 1;
626 printk(KERN_NOTICE
627 "Voyager: Eight slot 51xx configuration detected\n");
628 }
629
630 for (i = VOYAGER_MIN_MODULE; i <= VOYAGER_MAX_MODULE; i++) {
631 __u8 input;
632 int asic;
633 __u16 eprom_size;
634 __u16 sp_offset;
635
636 outb(VOYAGER_CAT_DESELECT, VOYAGER_CAT_CONFIG_PORT);
637 outb(i, VOYAGER_CAT_CONFIG_PORT);
638
639 /* check the presence of the module */
640 outb(VOYAGER_CAT_RUN, CAT_CMD);
641 outb(VOYAGER_CAT_IRCYC, CAT_CMD);
642 outb(VOYAGER_CAT_HEADER, CAT_DATA);
643 /* stream series of alternating 1's and 0's to stimulate
644 * response */
645 outb(0xAA, CAT_DATA);
646 input = inb(CAT_DATA);
647 outb(VOYAGER_CAT_END, CAT_CMD);
648 if (input != VOYAGER_CAT_HEADER) {
649 continue;
650 }
651 CDEBUG(("VOYAGER DEBUG: found module id 0x%x, %s\n", i,
652 cat_module_name(i)));
653 *modpp = kmalloc(sizeof(voyager_module_t), GFP_KERNEL); /*&voyager_module_storage[cat_count++]; */
654 if (*modpp == NULL) {
655 printk("**WARNING** kmalloc failure in cat_init\n");
656 continue;
657 }
658 memset(*modpp, 0, sizeof(voyager_module_t));
659 /* need temporary asic for cat_subread. It will be
660 * filled in correctly later */
661 (*modpp)->asic = kmalloc(sizeof(voyager_asic_t), GFP_KERNEL); /*&voyager_asic_storage[asic_count]; */
662 if ((*modpp)->asic == NULL) {
663 printk("**WARNING** kmalloc failure in cat_init\n");
664 continue;
665 }
666 memset((*modpp)->asic, 0, sizeof(voyager_asic_t));
667 (*modpp)->asic->asic_id = VOYAGER_CAT_ID;
668 (*modpp)->asic->subaddr = VOYAGER_SUBADDR_HI;
669 (*modpp)->module_addr = i;
670 (*modpp)->scan_path_connected = 0;
671 if (i == VOYAGER_PSI) {
672 /* Exception leg for modules with no EEPROM */
673 printk("Module \"%s\"\n", cat_module_name(i));
674 continue;
675 }
676
677 CDEBUG(("cat_init: Reading eeprom for module 0x%x at offset %d\n", i, VOYAGER_XSUM_END_OFFSET));
678 outb(VOYAGER_CAT_RUN, CAT_CMD);
679 cat_disconnect(*modpp, (*modpp)->asic);
680 if (cat_subread(*modpp, (*modpp)->asic,
681 VOYAGER_XSUM_END_OFFSET, sizeof(eprom_size),
682 &eprom_size)) {
683 printk
684 ("**WARNING**: Voyager couldn't read EPROM size for module 0x%x\n",
685 i);
686 outb(VOYAGER_CAT_END, CAT_CMD);
687 continue;
688 }
689 if (eprom_size > sizeof(eprom_buf)) {
690 printk
691 ("**WARNING**: Voyager insufficient size to read EPROM data, module 0x%x. Need %d\n",
692 i, eprom_size);
693 outb(VOYAGER_CAT_END, CAT_CMD);
694 continue;
695 }
696 outb(VOYAGER_CAT_END, CAT_CMD);
697 outb(VOYAGER_CAT_RUN, CAT_CMD);
698 CDEBUG(("cat_init: module 0x%x, eeprom_size %d\n", i,
699 eprom_size));
700 if (cat_subread
701 (*modpp, (*modpp)->asic, 0, eprom_size, eprom_buf)) {
702 outb(VOYAGER_CAT_END, CAT_CMD);
703 continue;
704 }
705 outb(VOYAGER_CAT_END, CAT_CMD);
706 printk("Module \"%s\", version 0x%x, tracer 0x%x, asics %d\n",
707 cat_module_name(i), eprom_hdr->version_id,
708 *((__u32 *) eprom_hdr->tracer), eprom_hdr->num_asics);
709 (*modpp)->ee_size = eprom_hdr->ee_size;
710 (*modpp)->num_asics = eprom_hdr->num_asics;
711 asicpp = &((*modpp)->asic);
712 sp_offset = eprom_hdr->scan_path_offset;
713 /* All we really care about are the Quad cards. We
714 * identify them because they are in a processor slot
715 * and have only four asics */
716 if ((i < 0x10 || (i >= 0x14 && i < 0x1c) || i > 0x1f)) {
717 modpp = &((*modpp)->next);
718 continue;
719 }
720 /* Now we know it's in a processor slot, does it have
721 * a quad baseboard submodule */
722 outb(VOYAGER_CAT_RUN, CAT_CMD);
723 cat_read(*modpp, (*modpp)->asic, VOYAGER_SUBMODPRESENT,
724 &num_submodules);
725 /* lowest two bits, active low */
726 num_submodules = ~(0xfc | num_submodules);
727 CDEBUG(("VOYAGER CAT: %d submodules present\n",
728 num_submodules));
729 if (num_submodules == 0) {
730 /* fill in the dyadic extended processors */
731 __u8 cpu = i & 0x07;
732
733 printk("Module \"%s\": Dyadic Processor Card\n",
734 cat_module_name(i));
735 voyager_extended_vic_processors |= (1 << cpu);
736 cpu += 4;
737 voyager_extended_vic_processors |= (1 << cpu);
738 outb(VOYAGER_CAT_END, CAT_CMD);
739 continue;
740 }
741
742 /* now we want to read the asics on the first submodule,
743 * which should be the quad base board */
744
745 cat_read(*modpp, (*modpp)->asic, VOYAGER_SUBMODSELECT, &val);
746 CDEBUG(("cat_init: SUBMODSELECT value = 0x%x\n", val));
747 val = (val & 0x7c) | VOYAGER_QUAD_BASEBOARD;
748 cat_write(*modpp, (*modpp)->asic, VOYAGER_SUBMODSELECT, val);
749
750 outb(VOYAGER_CAT_END, CAT_CMD);
751
752 CDEBUG(("cat_init: Reading eeprom for module 0x%x at offset %d\n", i, VOYAGER_XSUM_END_OFFSET));
753 outb(VOYAGER_CAT_RUN, CAT_CMD);
754 cat_disconnect(*modpp, (*modpp)->asic);
755 if (cat_subread(*modpp, (*modpp)->asic,
756 VOYAGER_XSUM_END_OFFSET, sizeof(eprom_size),
757 &eprom_size)) {
758 printk
759 ("**WARNING**: Voyager couldn't read EPROM size for module 0x%x\n",
760 i);
761 outb(VOYAGER_CAT_END, CAT_CMD);
762 continue;
763 }
764 if (eprom_size > sizeof(eprom_buf)) {
765 printk
766 ("**WARNING**: Voyager insufficient size to read EPROM data, module 0x%x. Need %d\n",
767 i, eprom_size);
768 outb(VOYAGER_CAT_END, CAT_CMD);
769 continue;
770 }
771 outb(VOYAGER_CAT_END, CAT_CMD);
772 outb(VOYAGER_CAT_RUN, CAT_CMD);
773 CDEBUG(("cat_init: module 0x%x, eeprom_size %d\n", i,
774 eprom_size));
775 if (cat_subread
776 (*modpp, (*modpp)->asic, 0, eprom_size, eprom_buf)) {
777 outb(VOYAGER_CAT_END, CAT_CMD);
778 continue;
779 }
780 outb(VOYAGER_CAT_END, CAT_CMD);
781 /* Now do everything for the QBB submodule 1 */
782 (*modpp)->ee_size = eprom_hdr->ee_size;
783 (*modpp)->num_asics = eprom_hdr->num_asics;
784 asicpp = &((*modpp)->asic);
785 sp_offset = eprom_hdr->scan_path_offset;
786 /* get rid of the dummy CAT asic and read the real one */
787 kfree((*modpp)->asic);
788 for (asic = 0; asic < (*modpp)->num_asics; asic++) {
789 int j;
790 voyager_asic_t *asicp = *asicpp = kzalloc(sizeof(voyager_asic_t), GFP_KERNEL); /*&voyager_asic_storage[asic_count++]; */
791 voyager_sp_table_t *sp_table;
792 voyager_at_t *asic_table;
793 voyager_jtt_t *jtag_table;
794
795 if (asicp == NULL) {
796 printk
797 ("**WARNING** kmalloc failure in cat_init\n");
798 continue;
799 }
800 asicpp = &(asicp->next);
801 asicp->asic_location = asic;
802 sp_table =
803 (voyager_sp_table_t *) (eprom_buf + sp_offset);
804 asicp->asic_id = sp_table->asic_id;
805 asic_table =
806 (voyager_at_t *) (eprom_buf +
807 sp_table->asic_data_offset);
808 for (j = 0; j < 4; j++)
809 asicp->jtag_id[j] = asic_table->jtag_id[j];
810 jtag_table =
811 (voyager_jtt_t *) (eprom_buf +
812 asic_table->jtag_offset);
813 asicp->ireg_length = jtag_table->ireg_len;
814 asicp->bit_location = (*modpp)->inst_bits;
815 (*modpp)->inst_bits += asicp->ireg_length;
816 if (asicp->ireg_length > (*modpp)->largest_reg)
817 (*modpp)->largest_reg = asicp->ireg_length;
818 if (asicp->ireg_length < (*modpp)->smallest_reg ||
819 (*modpp)->smallest_reg == 0)
820 (*modpp)->smallest_reg = asicp->ireg_length;
821 CDEBUG(("asic 0x%x, ireg_length=%d, bit_location=%d\n",
822 asicp->asic_id, asicp->ireg_length,
823 asicp->bit_location));
824 if (asicp->asic_id == VOYAGER_QUAD_QABC) {
825 CDEBUG(("VOYAGER CAT: QABC ASIC found\n"));
826 qabc_asic = asicp;
827 }
828 sp_offset += sizeof(voyager_sp_table_t);
829 }
830 CDEBUG(("Module inst_bits = %d, largest_reg = %d, smallest_reg=%d\n", (*modpp)->inst_bits, (*modpp)->largest_reg, (*modpp)->smallest_reg));
831 /* OK, now we have the QUAD ASICs set up, use them.
832 * we need to:
833 *
834 * 1. Find the Memory area for the Quad CPIs.
835 * 2. Find the Extended VIC processor
836 * 3. Configure a second extended VIC processor (This
837 * cannot be done for the 51xx.
838 * */
839 outb(VOYAGER_CAT_RUN, CAT_CMD);
840 cat_connect(*modpp, (*modpp)->asic);
841 CDEBUG(("CAT CONNECTED!!\n"));
842 cat_subread(*modpp, qabc_asic, 0, sizeof(qabc_data), qabc_data);
843 qic_addr = qabc_data[5] << 8;
844 qic_addr = (qic_addr | qabc_data[6]) << 8;
845 qic_addr = (qic_addr | qabc_data[7]) << 8;
846 printk
847 ("Module \"%s\": Quad Processor Card; CPI 0x%lx, SET=0x%x\n",
848 cat_module_name(i), qic_addr, qabc_data[8]);
849#if 0 /* plumbing fails---FIXME */
850 if ((qabc_data[8] & 0xf0) == 0) {
851 /* FIXME: 32 way 8 CPU slot monster cannot be
852 * plumbed this way---need to check for it */
853
854 printk("Plumbing second Extended Quad Processor\n");
855 /* second VIC line hardwired to Quad CPU 1 */
856 qabc_data[8] |= 0x20;
857 cat_subwrite(*modpp, qabc_asic, 8, 1, &qabc_data[8]);
858#ifdef VOYAGER_CAT_DEBUG
859 /* verify plumbing */
860 cat_subread(*modpp, qabc_asic, 8, 1, &qabc_data[8]);
861 if ((qabc_data[8] & 0xf0) == 0) {
862 CDEBUG(("PLUMBING FAILED: 0x%x\n",
863 qabc_data[8]));
864 }
865#endif
866 }
867#endif
868
869 {
870 struct resource *res =
871 kzalloc(sizeof(struct resource), GFP_KERNEL);
872 res->name = kmalloc(128, GFP_KERNEL);
873 sprintf((char *)res->name, "Voyager %s Quad CPI",
874 cat_module_name(i));
875 res->start = qic_addr;
876 res->end = qic_addr + 0x3ff;
877 request_resource(&iomem_resource, res);
878 }
879
880 qic_addr = (unsigned long)ioremap_cache(qic_addr, 0x400);
881
882 for (j = 0; j < 4; j++) {
883 __u8 cpu;
884
885 if (voyager_8slot) {
886 /* 8 slot has a different mapping,
887 * each slot has only one vic line, so
888 * 1 cpu in each slot must be < 8 */
889 cpu = (i & 0x07) + j * 8;
890 } else {
891 cpu = (i & 0x03) + j * 4;
892 }
893 if ((qabc_data[8] & (1 << j))) {
894 voyager_extended_vic_processors |= (1 << cpu);
895 }
896 if (qabc_data[8] & (1 << (j + 4))) {
897 /* Second SET register plumbed: Quad
898 * card has two VIC connected CPUs.
899 * Secondary cannot be booted as a VIC
900 * CPU */
901 voyager_extended_vic_processors |= (1 << cpu);
902 voyager_allowed_boot_processors &=
903 (~(1 << cpu));
904 }
905
906 voyager_quad_processors |= (1 << cpu);
907 voyager_quad_cpi_addr[cpu] = (struct voyager_qic_cpi *)
908 (qic_addr + (j << 8));
909 CDEBUG(("CPU%d: CPI address 0x%lx\n", cpu,
910 (unsigned long)voyager_quad_cpi_addr[cpu]));
911 }
912 outb(VOYAGER_CAT_END, CAT_CMD);
913
914 *asicpp = NULL;
915 modpp = &((*modpp)->next);
916 }
917 *modpp = NULL;
918 printk
919 ("CAT Bus Initialisation finished: extended procs 0x%x, quad procs 0x%x, allowed vic boot = 0x%x\n",
920 voyager_extended_vic_processors, voyager_quad_processors,
921 voyager_allowed_boot_processors);
922 request_resource(&ioport_resource, &vic_res);
923 if (voyager_quad_processors)
924 request_resource(&ioport_resource, &qic_res);
925 /* set up the front power switch */
926}
927
928int voyager_cat_readb(__u8 module, __u8 asic, int reg)
929{
930 return 0;
931}
932
933static int cat_disconnect(voyager_module_t * modp, voyager_asic_t * asicp)
934{
935 __u8 val;
936 int err = 0;
937
938 if (!modp->scan_path_connected)
939 return 0;
940 if (asicp->asic_id != VOYAGER_CAT_ID) {
941 CDEBUG(("cat_disconnect: ASIC is not CAT\n"));
942 return 1;
943 }
944 err = cat_read(modp, asicp, VOYAGER_SCANPATH, &val);
945 if (err) {
946 CDEBUG(("cat_disconnect: failed to read SCANPATH\n"));
947 return err;
948 }
949 val &= VOYAGER_DISCONNECT_ASIC;
950 err = cat_write(modp, asicp, VOYAGER_SCANPATH, val);
951 if (err) {
952 CDEBUG(("cat_disconnect: failed to write SCANPATH\n"));
953 return err;
954 }
955 outb(VOYAGER_CAT_END, CAT_CMD);
956 outb(VOYAGER_CAT_RUN, CAT_CMD);
957 modp->scan_path_connected = 0;
958
959 return 0;
960}
961
962static int cat_connect(voyager_module_t * modp, voyager_asic_t * asicp)
963{
964 __u8 val;
965 int err = 0;
966
967 if (modp->scan_path_connected)
968 return 0;
969 if (asicp->asic_id != VOYAGER_CAT_ID) {
970 CDEBUG(("cat_connect: ASIC is not CAT\n"));
971 return 1;
972 }
973
974 err = cat_read(modp, asicp, VOYAGER_SCANPATH, &val);
975 if (err) {
976 CDEBUG(("cat_connect: failed to read SCANPATH\n"));
977 return err;
978 }
979 val |= VOYAGER_CONNECT_ASIC;
980 err = cat_write(modp, asicp, VOYAGER_SCANPATH, val);
981 if (err) {
982 CDEBUG(("cat_connect: failed to write SCANPATH\n"));
983 return err;
984 }
985 outb(VOYAGER_CAT_END, CAT_CMD);
986 outb(VOYAGER_CAT_RUN, CAT_CMD);
987 modp->scan_path_connected = 1;
988
989 return 0;
990}
991
992void voyager_cat_power_off(void)
993{
994 /* Power the machine off by writing to the PSI over the CAT
995 * bus */
996 __u8 data;
997 voyager_module_t psi = { 0 };
998 voyager_asic_t psi_asic = { 0 };
999
1000 psi.asic = &psi_asic;
1001 psi.asic->asic_id = VOYAGER_CAT_ID;
1002 psi.asic->subaddr = VOYAGER_SUBADDR_HI;
1003 psi.module_addr = VOYAGER_PSI;
1004 psi.scan_path_connected = 0;
1005
1006 outb(VOYAGER_CAT_END, CAT_CMD);
1007 /* Connect the PSI to the CAT Bus */
1008 outb(VOYAGER_CAT_DESELECT, VOYAGER_CAT_CONFIG_PORT);
1009 outb(VOYAGER_PSI, VOYAGER_CAT_CONFIG_PORT);
1010 outb(VOYAGER_CAT_RUN, CAT_CMD);
1011 cat_disconnect(&psi, &psi_asic);
1012 /* Read the status */
1013 cat_subread(&psi, &psi_asic, VOYAGER_PSI_GENERAL_REG, 1, &data);
1014 outb(VOYAGER_CAT_END, CAT_CMD);
1015 CDEBUG(("PSI STATUS 0x%x\n", data));
1016 /* These two writes are power off prep and perform */
1017 data = PSI_CLEAR;
1018 outb(VOYAGER_CAT_RUN, CAT_CMD);
1019 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_GENERAL_REG, 1, &data);
1020 outb(VOYAGER_CAT_END, CAT_CMD);
1021 data = PSI_POWER_DOWN;
1022 outb(VOYAGER_CAT_RUN, CAT_CMD);
1023 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_GENERAL_REG, 1, &data);
1024 outb(VOYAGER_CAT_END, CAT_CMD);
1025}
1026
1027struct voyager_status voyager_status = { 0 };
1028
1029void voyager_cat_psi(__u8 cmd, __u16 reg, __u8 * data)
1030{
1031 voyager_module_t psi = { 0 };
1032 voyager_asic_t psi_asic = { 0 };
1033
1034 psi.asic = &psi_asic;
1035 psi.asic->asic_id = VOYAGER_CAT_ID;
1036 psi.asic->subaddr = VOYAGER_SUBADDR_HI;
1037 psi.module_addr = VOYAGER_PSI;
1038 psi.scan_path_connected = 0;
1039
1040 outb(VOYAGER_CAT_END, CAT_CMD);
1041 /* Connect the PSI to the CAT Bus */
1042 outb(VOYAGER_CAT_DESELECT, VOYAGER_CAT_CONFIG_PORT);
1043 outb(VOYAGER_PSI, VOYAGER_CAT_CONFIG_PORT);
1044 outb(VOYAGER_CAT_RUN, CAT_CMD);
1045 cat_disconnect(&psi, &psi_asic);
1046 switch (cmd) {
1047 case VOYAGER_PSI_READ:
1048 cat_read(&psi, &psi_asic, reg, data);
1049 break;
1050 case VOYAGER_PSI_WRITE:
1051 cat_write(&psi, &psi_asic, reg, *data);
1052 break;
1053 case VOYAGER_PSI_SUBREAD:
1054 cat_subread(&psi, &psi_asic, reg, 1, data);
1055 break;
1056 case VOYAGER_PSI_SUBWRITE:
1057 cat_subwrite(&psi, &psi_asic, reg, 1, data);
1058 break;
1059 default:
1060 printk(KERN_ERR "Voyager PSI, unrecognised command %d\n", cmd);
1061 break;
1062 }
1063 outb(VOYAGER_CAT_END, CAT_CMD);
1064}
1065
1066void voyager_cat_do_common_interrupt(void)
1067{
1068 /* This is caused either by a memory parity error or something
1069 * in the PSI */
1070 __u8 data;
1071 voyager_module_t psi = { 0 };
1072 voyager_asic_t psi_asic = { 0 };
1073 struct voyager_psi psi_reg;
1074 int i;
1075 re_read:
1076 psi.asic = &psi_asic;
1077 psi.asic->asic_id = VOYAGER_CAT_ID;
1078 psi.asic->subaddr = VOYAGER_SUBADDR_HI;
1079 psi.module_addr = VOYAGER_PSI;
1080 psi.scan_path_connected = 0;
1081
1082 outb(VOYAGER_CAT_END, CAT_CMD);
1083 /* Connect the PSI to the CAT Bus */
1084 outb(VOYAGER_CAT_DESELECT, VOYAGER_CAT_CONFIG_PORT);
1085 outb(VOYAGER_PSI, VOYAGER_CAT_CONFIG_PORT);
1086 outb(VOYAGER_CAT_RUN, CAT_CMD);
1087 cat_disconnect(&psi, &psi_asic);
1088 /* Read the status. NOTE: Need to read *all* the PSI regs here
1089 * otherwise the cmn int will be reasserted */
1090 for (i = 0; i < sizeof(psi_reg.regs); i++) {
1091 cat_read(&psi, &psi_asic, i, &((__u8 *) & psi_reg.regs)[i]);
1092 }
1093 outb(VOYAGER_CAT_END, CAT_CMD);
1094 if ((psi_reg.regs.checkbit & 0x02) == 0) {
1095 psi_reg.regs.checkbit |= 0x02;
1096 cat_write(&psi, &psi_asic, 5, psi_reg.regs.checkbit);
1097 printk("VOYAGER RE-READ PSI\n");
1098 goto re_read;
1099 }
1100 outb(VOYAGER_CAT_RUN, CAT_CMD);
1101 for (i = 0; i < sizeof(psi_reg.subregs); i++) {
1102 /* This looks strange, but the PSI doesn't do auto increment
1103 * correctly */
1104 cat_subread(&psi, &psi_asic, VOYAGER_PSI_SUPPLY_REG + i,
1105 1, &((__u8 *) & psi_reg.subregs)[i]);
1106 }
1107 outb(VOYAGER_CAT_END, CAT_CMD);
1108#ifdef VOYAGER_CAT_DEBUG
1109 printk("VOYAGER PSI: ");
1110 for (i = 0; i < sizeof(psi_reg.regs); i++)
1111 printk("%02x ", ((__u8 *) & psi_reg.regs)[i]);
1112 printk("\n ");
1113 for (i = 0; i < sizeof(psi_reg.subregs); i++)
1114 printk("%02x ", ((__u8 *) & psi_reg.subregs)[i]);
1115 printk("\n");
1116#endif
1117 if (psi_reg.regs.intstatus & PSI_MON) {
1118 /* switch off or power fail */
1119
1120 if (psi_reg.subregs.supply & PSI_SWITCH_OFF) {
1121 if (voyager_status.switch_off) {
1122 printk(KERN_ERR
1123 "Voyager front panel switch turned off again---Immediate power off!\n");
1124 voyager_cat_power_off();
1125 /* not reached */
1126 } else {
1127 printk(KERN_ERR
1128 "Voyager front panel switch turned off\n");
1129 voyager_status.switch_off = 1;
1130 voyager_status.request_from_kernel = 1;
1131 wake_up_process(voyager_thread);
1132 }
1133 /* Tell the hardware we're taking care of the
1134 * shutdown, otherwise it will power the box off
1135 * within 3 seconds of the switch being pressed and,
1136 * which is much more important to us, continue to
1137 * assert the common interrupt */
1138 data = PSI_CLR_SWITCH_OFF;
1139 outb(VOYAGER_CAT_RUN, CAT_CMD);
1140 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_SUPPLY_REG,
1141 1, &data);
1142 outb(VOYAGER_CAT_END, CAT_CMD);
1143 } else {
1144
1145 VDEBUG(("Voyager ac fail reg 0x%x\n",
1146 psi_reg.subregs.ACfail));
1147 if ((psi_reg.subregs.ACfail & AC_FAIL_STAT_CHANGE) == 0) {
1148 /* No further update */
1149 return;
1150 }
1151#if 0
1152 /* Don't bother trying to find out who failed.
1153 * FIXME: This probably makes the code incorrect on
1154 * anything other than a 345x */
1155 for (i = 0; i < 5; i++) {
1156 if (psi_reg.subregs.ACfail & (1 << i)) {
1157 break;
1158 }
1159 }
1160 printk(KERN_NOTICE "AC FAIL IN SUPPLY %d\n", i);
1161#endif
1162 /* DON'T do this: it shuts down the AC PSI
1163 outb(VOYAGER_CAT_RUN, CAT_CMD);
1164 data = PSI_MASK_MASK | i;
1165 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_MASK,
1166 1, &data);
1167 outb(VOYAGER_CAT_END, CAT_CMD);
1168 */
1169 printk(KERN_ERR "Voyager AC power failure\n");
1170 outb(VOYAGER_CAT_RUN, CAT_CMD);
1171 data = PSI_COLD_START;
1172 cat_subwrite(&psi, &psi_asic, VOYAGER_PSI_GENERAL_REG,
1173 1, &data);
1174 outb(VOYAGER_CAT_END, CAT_CMD);
1175 voyager_status.power_fail = 1;
1176 voyager_status.request_from_kernel = 1;
1177 wake_up_process(voyager_thread);
1178 }
1179
1180 } else if (psi_reg.regs.intstatus & PSI_FAULT) {
1181 /* Major fault! */
1182 printk(KERN_ERR
1183 "Voyager PSI Detected major fault, immediate power off!\n");
1184 voyager_cat_power_off();
1185 /* not reached */
1186 } else if (psi_reg.regs.intstatus & (PSI_DC_FAIL | PSI_ALARM
1187 | PSI_CURRENT | PSI_DVM
1188 | PSI_PSCFAULT | PSI_STAT_CHG)) {
1189 /* other psi fault */
1190
1191 printk(KERN_WARNING "Voyager PSI status 0x%x\n", data);
1192 /* clear the PSI fault */
1193 outb(VOYAGER_CAT_RUN, CAT_CMD);
1194 cat_write(&psi, &psi_asic, VOYAGER_PSI_STATUS_REG, 0);
1195 outb(VOYAGER_CAT_END, CAT_CMD);
1196 }
1197}
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c
deleted file mode 100644
index 9840b7ec749a..000000000000
--- a/arch/x86/mach-voyager/voyager_smp.c
+++ /dev/null
@@ -1,1808 +0,0 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */
2
3/* Copyright (C) 1999,2001
4 *
5 * Author: J.E.J.Bottomley@HansenPartnership.com
6 *
7 * This file provides all the same external entries as smp.c but uses
8 * the voyager hal to provide the functionality
9 */
10#include <linux/cpu.h>
11#include <linux/module.h>
12#include <linux/mm.h>
13#include <linux/kernel_stat.h>
14#include <linux/delay.h>
15#include <linux/mc146818rtc.h>
16#include <linux/cache.h>
17#include <linux/interrupt.h>
18#include <linux/init.h>
19#include <linux/kernel.h>
20#include <linux/bootmem.h>
21#include <linux/completion.h>
22#include <asm/desc.h>
23#include <asm/voyager.h>
24#include <asm/vic.h>
25#include <asm/mtrr.h>
26#include <asm/pgalloc.h>
27#include <asm/tlbflush.h>
28#include <asm/arch_hooks.h>
29#include <asm/trampoline.h>
30
31/* TLB state -- visible externally, indexed physically */
32DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate) = { &init_mm, 0 };
33
34/* CPU IRQ affinity -- set to all ones initially */
35static unsigned long cpu_irq_affinity[NR_CPUS] __cacheline_aligned =
36 {[0 ... NR_CPUS-1] = ~0UL };
37
38/* per CPU data structure (for /proc/cpuinfo et al), visible externally
39 * indexed physically */
40DEFINE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info);
41EXPORT_PER_CPU_SYMBOL(cpu_info);
42
43/* physical ID of the CPU used to boot the system */
44unsigned char boot_cpu_id;
45
46/* The memory line addresses for the Quad CPIs */
47struct voyager_qic_cpi *voyager_quad_cpi_addr[NR_CPUS] __cacheline_aligned;
48
49/* The masks for the Extended VIC processors, filled in by cat_init */
50__u32 voyager_extended_vic_processors = 0;
51
52/* Masks for the extended Quad processors which cannot be VIC booted */
53__u32 voyager_allowed_boot_processors = 0;
54
55/* The mask for the Quad Processors (both extended and non-extended) */
56__u32 voyager_quad_processors = 0;
57
58/* Total count of live CPUs, used in process.c to display
59 * the CPU information and in irq.c for the per CPU irq
60 * activity count. Finally exported by i386_ksyms.c */
61static int voyager_extended_cpus = 1;
62
63/* Used for the invalidate map that's also checked in the spinlock */
64static volatile unsigned long smp_invalidate_needed;
65
66/* Bitmask of CPUs present in the system - exported by i386_syms.c, used
67 * by scheduler but indexed physically */
68cpumask_t phys_cpu_present_map = CPU_MASK_NONE;
69
70/* The internal functions */
71static void send_CPI(__u32 cpuset, __u8 cpi);
72static void ack_CPI(__u8 cpi);
73static int ack_QIC_CPI(__u8 cpi);
74static void ack_special_QIC_CPI(__u8 cpi);
75static void ack_VIC_CPI(__u8 cpi);
76static void send_CPI_allbutself(__u8 cpi);
77static void mask_vic_irq(unsigned int irq);
78static void unmask_vic_irq(unsigned int irq);
79static unsigned int startup_vic_irq(unsigned int irq);
80static void enable_local_vic_irq(unsigned int irq);
81static void disable_local_vic_irq(unsigned int irq);
82static void before_handle_vic_irq(unsigned int irq);
83static void after_handle_vic_irq(unsigned int irq);
84static void set_vic_irq_affinity(unsigned int irq, cpumask_t mask);
85static void ack_vic_irq(unsigned int irq);
86static void vic_enable_cpi(void);
87static void do_boot_cpu(__u8 cpuid);
88static void do_quad_bootstrap(void);
89static void initialize_secondary(void);
90
91int hard_smp_processor_id(void);
92int safe_smp_processor_id(void);
93
94/* Inline functions */
95static inline void send_one_QIC_CPI(__u8 cpu, __u8 cpi)
96{
97 voyager_quad_cpi_addr[cpu]->qic_cpi[cpi].cpi =
98 (smp_processor_id() << 16) + cpi;
99}
100
101static inline void send_QIC_CPI(__u32 cpuset, __u8 cpi)
102{
103 int cpu;
104
105 for_each_online_cpu(cpu) {
106 if (cpuset & (1 << cpu)) {
107#ifdef VOYAGER_DEBUG
108 if (!cpu_online(cpu))
109 VDEBUG(("CPU%d sending cpi %d to CPU%d not in "
110 "cpu_online_map\n",
111 hard_smp_processor_id(), cpi, cpu));
112#endif
113 send_one_QIC_CPI(cpu, cpi - QIC_CPI_OFFSET);
114 }
115 }
116}
117
118static inline void wrapper_smp_local_timer_interrupt(void)
119{
120 irq_enter();
121 smp_local_timer_interrupt();
122 irq_exit();
123}
124
125static inline void send_one_CPI(__u8 cpu, __u8 cpi)
126{
127 if (voyager_quad_processors & (1 << cpu))
128 send_one_QIC_CPI(cpu, cpi - QIC_CPI_OFFSET);
129 else
130 send_CPI(1 << cpu, cpi);
131}
132
133static inline void send_CPI_allbutself(__u8 cpi)
134{
135 __u8 cpu = smp_processor_id();
136 __u32 mask = cpus_addr(cpu_online_map)[0] & ~(1 << cpu);
137 send_CPI(mask, cpi);
138}
139
140static inline int is_cpu_quad(void)
141{
142 __u8 cpumask = inb(VIC_PROC_WHO_AM_I);
143 return ((cpumask & QUAD_IDENTIFIER) == QUAD_IDENTIFIER);
144}
145
146static inline int is_cpu_extended(void)
147{
148 __u8 cpu = hard_smp_processor_id();
149
150 return (voyager_extended_vic_processors & (1 << cpu));
151}
152
153static inline int is_cpu_vic_boot(void)
154{
155 __u8 cpu = hard_smp_processor_id();
156
157 return (voyager_extended_vic_processors
158 & voyager_allowed_boot_processors & (1 << cpu));
159}
160
161static inline void ack_CPI(__u8 cpi)
162{
163 switch (cpi) {
164 case VIC_CPU_BOOT_CPI:
165 if (is_cpu_quad() && !is_cpu_vic_boot())
166 ack_QIC_CPI(cpi);
167 else
168 ack_VIC_CPI(cpi);
169 break;
170 case VIC_SYS_INT:
171 case VIC_CMN_INT:
172 /* These are slightly strange. Even on the Quad card,
173 * They are vectored as VIC CPIs */
174 if (is_cpu_quad())
175 ack_special_QIC_CPI(cpi);
176 else
177 ack_VIC_CPI(cpi);
178 break;
179 default:
180 printk("VOYAGER ERROR: CPI%d is in common CPI code\n", cpi);
181 break;
182 }
183}
184
185/* local variables */
186
187/* The VIC IRQ descriptors -- these look almost identical to the
188 * 8259 IRQs except that masks and things must be kept per processor
189 */
190static struct irq_chip vic_chip = {
191 .name = "VIC",
192 .startup = startup_vic_irq,
193 .mask = mask_vic_irq,
194 .unmask = unmask_vic_irq,
195 .set_affinity = set_vic_irq_affinity,
196};
197
198/* used to count up as CPUs are brought on line (starts at 0) */
199static int cpucount = 0;
200
201/* The per cpu profile stuff - used in smp_local_timer_interrupt */
202static DEFINE_PER_CPU(int, prof_multiplier) = 1;
203static DEFINE_PER_CPU(int, prof_old_multiplier) = 1;
204static DEFINE_PER_CPU(int, prof_counter) = 1;
205
206/* the map used to check if a CPU has booted */
207static __u32 cpu_booted_map;
208
209/* the synchronize flag used to hold all secondary CPUs spinning in
210 * a tight loop until the boot sequence is ready for them */
211static cpumask_t smp_commenced_mask = CPU_MASK_NONE;
212
213/* This is for the new dynamic CPU boot code */
214cpumask_t cpu_callin_map = CPU_MASK_NONE;
215cpumask_t cpu_callout_map = CPU_MASK_NONE;
216
217/* The per processor IRQ masks (these are usually kept in sync) */
218static __u16 vic_irq_mask[NR_CPUS] __cacheline_aligned;
219
220/* the list of IRQs to be enabled by the VIC_ENABLE_IRQ_CPI */
221static __u16 vic_irq_enable_mask[NR_CPUS] __cacheline_aligned = { 0 };
222
223/* Lock for enable/disable of VIC interrupts */
224static __cacheline_aligned DEFINE_SPINLOCK(vic_irq_lock);
225
226/* The boot processor is correctly set up in PC mode when it
227 * comes up, but the secondaries need their master/slave 8259
228 * pairs initializing correctly */
229
230/* Interrupt counters (per cpu) and total - used to try to
231 * even up the interrupt handling routines */
232static long vic_intr_total = 0;
233static long vic_intr_count[NR_CPUS] __cacheline_aligned = { 0 };
234static unsigned long vic_tick[NR_CPUS] __cacheline_aligned = { 0 };
235
236/* Since we can only use CPI0, we fake all the other CPIs */
237static unsigned long vic_cpi_mailbox[NR_CPUS] __cacheline_aligned;
238
239/* debugging routine to read the isr of the cpu's pic */
240static inline __u16 vic_read_isr(void)
241{
242 __u16 isr;
243
244 outb(0x0b, 0xa0);
245 isr = inb(0xa0) << 8;
246 outb(0x0b, 0x20);
247 isr |= inb(0x20);
248
249 return isr;
250}
251
252static __init void qic_setup(void)
253{
254 if (!is_cpu_quad()) {
255 /* not a quad, no setup */
256 return;
257 }
258 outb(QIC_DEFAULT_MASK0, QIC_MASK_REGISTER0);
259 outb(QIC_CPI_ENABLE, QIC_MASK_REGISTER1);
260
261 if (is_cpu_extended()) {
262 /* the QIC duplicate of the VIC base register */
263 outb(VIC_DEFAULT_CPI_BASE, QIC_VIC_CPI_BASE_REGISTER);
264 outb(QIC_DEFAULT_CPI_BASE, QIC_CPI_BASE_REGISTER);
265
266 /* FIXME: should set up the QIC timer and memory parity
267 * error vectors here */
268 }
269}
270
271static __init void vic_setup_pic(void)
272{
273 outb(1, VIC_REDIRECT_REGISTER_1);
274 /* clear the claim registers for dynamic routing */
275 outb(0, VIC_CLAIM_REGISTER_0);
276 outb(0, VIC_CLAIM_REGISTER_1);
277
278 outb(0, VIC_PRIORITY_REGISTER);
279 /* Set the Primary and Secondary Microchannel vector
280 * bases to be the same as the ordinary interrupts
281 *
282 * FIXME: This would be more efficient using separate
283 * vectors. */
284 outb(FIRST_EXTERNAL_VECTOR, VIC_PRIMARY_MC_BASE);
285 outb(FIRST_EXTERNAL_VECTOR, VIC_SECONDARY_MC_BASE);
286 /* Now initiallise the master PIC belonging to this CPU by
287 * sending the four ICWs */
288
289 /* ICW1: level triggered, ICW4 needed */
290 outb(0x19, 0x20);
291
292 /* ICW2: vector base */
293 outb(FIRST_EXTERNAL_VECTOR, 0x21);
294
295 /* ICW3: slave at line 2 */
296 outb(0x04, 0x21);
297
298 /* ICW4: 8086 mode */
299 outb(0x01, 0x21);
300
301 /* now the same for the slave PIC */
302
303 /* ICW1: level trigger, ICW4 needed */
304 outb(0x19, 0xA0);
305
306 /* ICW2: slave vector base */
307 outb(FIRST_EXTERNAL_VECTOR + 8, 0xA1);
308
309 /* ICW3: slave ID */
310 outb(0x02, 0xA1);
311
312 /* ICW4: 8086 mode */
313 outb(0x01, 0xA1);
314}
315
316static void do_quad_bootstrap(void)
317{
318 if (is_cpu_quad() && is_cpu_vic_boot()) {
319 int i;
320 unsigned long flags;
321 __u8 cpuid = hard_smp_processor_id();
322
323 local_irq_save(flags);
324
325 for (i = 0; i < 4; i++) {
326 /* FIXME: this would be >>3 &0x7 on the 32 way */
327 if (((cpuid >> 2) & 0x03) == i)
328 /* don't lower our own mask! */
329 continue;
330
331 /* masquerade as local Quad CPU */
332 outb(QIC_CPUID_ENABLE | i, QIC_PROCESSOR_ID);
333 /* enable the startup CPI */
334 outb(QIC_BOOT_CPI_MASK, QIC_MASK_REGISTER1);
335 /* restore cpu id */
336 outb(0, QIC_PROCESSOR_ID);
337 }
338 local_irq_restore(flags);
339 }
340}
341
342void prefill_possible_map(void)
343{
344 /* This is empty on voyager because we need a much
345 * earlier detection which is done in find_smp_config */
346}
347
348/* Set up all the basic stuff: read the SMP config and make all the
349 * SMP information reflect only the boot cpu. All others will be
350 * brought on-line later. */
351void __init find_smp_config(void)
352{
353 int i;
354
355 boot_cpu_id = hard_smp_processor_id();
356
357 printk("VOYAGER SMP: Boot cpu is %d\n", boot_cpu_id);
358
359 /* initialize the CPU structures (moved from smp_boot_cpus) */
360 for (i = 0; i < nr_cpu_ids; i++)
361 cpu_irq_affinity[i] = ~0;
362 cpu_online_map = cpumask_of_cpu(boot_cpu_id);
363
364 /* The boot CPU must be extended */
365 voyager_extended_vic_processors = 1 << boot_cpu_id;
366 /* initially, all of the first 8 CPUs can boot */
367 voyager_allowed_boot_processors = 0xff;
368 /* set up everything for just this CPU, we can alter
369 * this as we start the other CPUs later */
370 /* now get the CPU disposition from the extended CMOS */
371 cpus_addr(phys_cpu_present_map)[0] =
372 voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK);
373 cpus_addr(phys_cpu_present_map)[0] |=
374 voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 1) << 8;
375 cpus_addr(phys_cpu_present_map)[0] |=
376 voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK +
377 2) << 16;
378 cpus_addr(phys_cpu_present_map)[0] |=
379 voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK +
380 3) << 24;
381 cpu_possible_map = phys_cpu_present_map;
382 printk("VOYAGER SMP: phys_cpu_present_map = 0x%lx\n",
383 cpus_addr(phys_cpu_present_map)[0]);
384 /* Here we set up the VIC to enable SMP */
385 /* enable the CPIs by writing the base vector to their register */
386 outb(VIC_DEFAULT_CPI_BASE, VIC_CPI_BASE_REGISTER);
387 outb(1, VIC_REDIRECT_REGISTER_1);
388 /* set the claim registers for static routing --- Boot CPU gets
389 * all interrupts untill all other CPUs started */
390 outb(0xff, VIC_CLAIM_REGISTER_0);
391 outb(0xff, VIC_CLAIM_REGISTER_1);
392 /* Set the Primary and Secondary Microchannel vector
393 * bases to be the same as the ordinary interrupts
394 *
395 * FIXME: This would be more efficient using separate
396 * vectors. */
397 outb(FIRST_EXTERNAL_VECTOR, VIC_PRIMARY_MC_BASE);
398 outb(FIRST_EXTERNAL_VECTOR, VIC_SECONDARY_MC_BASE);
399
400 /* Finally tell the firmware that we're driving */
401 outb(inb(VOYAGER_SUS_IN_CONTROL_PORT) | VOYAGER_IN_CONTROL_FLAG,
402 VOYAGER_SUS_IN_CONTROL_PORT);
403
404 current_thread_info()->cpu = boot_cpu_id;
405 x86_write_percpu(cpu_number, boot_cpu_id);
406}
407
408/*
409 * The bootstrap kernel entry code has set these up. Save them
410 * for a given CPU, id is physical */
411void __init smp_store_cpu_info(int id)
412{
413 struct cpuinfo_x86 *c = &cpu_data(id);
414
415 *c = boot_cpu_data;
416 c->cpu_index = id;
417
418 identify_secondary_cpu(c);
419}
420
421/* Routine initially called when a non-boot CPU is brought online */
422static void __init start_secondary(void *unused)
423{
424 __u8 cpuid = hard_smp_processor_id();
425
426 cpu_init();
427
428 /* OK, we're in the routine */
429 ack_CPI(VIC_CPU_BOOT_CPI);
430
431 /* setup the 8259 master slave pair belonging to this CPU ---
432 * we won't actually receive any until the boot CPU
433 * relinquishes it's static routing mask */
434 vic_setup_pic();
435
436 qic_setup();
437
438 if (is_cpu_quad() && !is_cpu_vic_boot()) {
439 /* clear the boot CPI */
440 __u8 dummy;
441
442 dummy =
443 voyager_quad_cpi_addr[cpuid]->qic_cpi[VIC_CPU_BOOT_CPI].cpi;
444 printk("read dummy %d\n", dummy);
445 }
446
447 /* lower the mask to receive CPIs */
448 vic_enable_cpi();
449
450 VDEBUG(("VOYAGER SMP: CPU%d, stack at about %p\n", cpuid, &cpuid));
451
452 notify_cpu_starting(cpuid);
453
454 /* enable interrupts */
455 local_irq_enable();
456
457 /* get our bogomips */
458 calibrate_delay();
459
460 /* save our processor parameters */
461 smp_store_cpu_info(cpuid);
462
463 /* if we're a quad, we may need to bootstrap other CPUs */
464 do_quad_bootstrap();
465
466 /* FIXME: this is rather a poor hack to prevent the CPU
467 * activating softirqs while it's supposed to be waiting for
468 * permission to proceed. Without this, the new per CPU stuff
469 * in the softirqs will fail */
470 local_irq_disable();
471 cpu_set(cpuid, cpu_callin_map);
472
473 /* signal that we're done */
474 cpu_booted_map = 1;
475
476 while (!cpu_isset(cpuid, smp_commenced_mask))
477 rep_nop();
478 local_irq_enable();
479
480 local_flush_tlb();
481
482 cpu_set(cpuid, cpu_online_map);
483 wmb();
484 cpu_idle();
485}
486
487/* Routine to kick start the given CPU and wait for it to report ready
488 * (or timeout in startup). When this routine returns, the requested
489 * CPU is either fully running and configured or known to be dead.
490 *
491 * We call this routine sequentially 1 CPU at a time, so no need for
492 * locking */
493
494static void __init do_boot_cpu(__u8 cpu)
495{
496 struct task_struct *idle;
497 int timeout;
498 unsigned long flags;
499 int quad_boot = (1 << cpu) & voyager_quad_processors
500 & ~(voyager_extended_vic_processors
501 & voyager_allowed_boot_processors);
502
503 /* This is the format of the CPI IDT gate (in real mode) which
504 * we're hijacking to boot the CPU */
505 union IDTFormat {
506 struct seg {
507 __u16 Offset;
508 __u16 Segment;
509 } idt;
510 __u32 val;
511 } hijack_source;
512
513 __u32 *hijack_vector;
514 __u32 start_phys_address = setup_trampoline();
515
516 /* There's a clever trick to this: The linux trampoline is
517 * compiled to begin at absolute location zero, so make the
518 * address zero but have the data segment selector compensate
519 * for the actual address */
520 hijack_source.idt.Offset = start_phys_address & 0x000F;
521 hijack_source.idt.Segment = (start_phys_address >> 4) & 0xFFFF;
522
523 cpucount++;
524 alternatives_smp_switch(1);
525
526 idle = fork_idle(cpu);
527 if (IS_ERR(idle))
528 panic("failed fork for CPU%d", cpu);
529 idle->thread.ip = (unsigned long)start_secondary;
530 /* init_tasks (in sched.c) is indexed logically */
531 stack_start.sp = (void *)idle->thread.sp;
532
533 init_gdt(cpu);
534 per_cpu(current_task, cpu) = idle;
535 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
536 irq_ctx_init(cpu);
537
538 /* Note: Don't modify initial ss override */
539 VDEBUG(("VOYAGER SMP: Booting CPU%d at 0x%lx[%x:%x], stack %p\n", cpu,
540 (unsigned long)hijack_source.val, hijack_source.idt.Segment,
541 hijack_source.idt.Offset, stack_start.sp));
542
543 /* init lowmem identity mapping */
544 clone_pgd_range(swapper_pg_dir, swapper_pg_dir + KERNEL_PGD_BOUNDARY,
545 min_t(unsigned long, KERNEL_PGD_PTRS, KERNEL_PGD_BOUNDARY));
546 flush_tlb_all();
547
548 if (quad_boot) {
549 printk("CPU %d: non extended Quad boot\n", cpu);
550 hijack_vector =
551 (__u32 *)
552 phys_to_virt((VIC_CPU_BOOT_CPI + QIC_DEFAULT_CPI_BASE) * 4);
553 *hijack_vector = hijack_source.val;
554 } else {
555 printk("CPU%d: extended VIC boot\n", cpu);
556 hijack_vector =
557 (__u32 *)
558 phys_to_virt((VIC_CPU_BOOT_CPI + VIC_DEFAULT_CPI_BASE) * 4);
559 *hijack_vector = hijack_source.val;
560 /* VIC errata, may also receive interrupt at this address */
561 hijack_vector =
562 (__u32 *)
563 phys_to_virt((VIC_CPU_BOOT_ERRATA_CPI +
564 VIC_DEFAULT_CPI_BASE) * 4);
565 *hijack_vector = hijack_source.val;
566 }
567 /* All non-boot CPUs start with interrupts fully masked. Need
568 * to lower the mask of the CPI we're about to send. We do
569 * this in the VIC by masquerading as the processor we're
570 * about to boot and lowering its interrupt mask */
571 local_irq_save(flags);
572 if (quad_boot) {
573 send_one_QIC_CPI(cpu, VIC_CPU_BOOT_CPI);
574 } else {
575 outb(VIC_CPU_MASQUERADE_ENABLE | cpu, VIC_PROCESSOR_ID);
576 /* here we're altering registers belonging to `cpu' */
577
578 outb(VIC_BOOT_INTERRUPT_MASK, 0x21);
579 /* now go back to our original identity */
580 outb(boot_cpu_id, VIC_PROCESSOR_ID);
581
582 /* and boot the CPU */
583
584 send_CPI((1 << cpu), VIC_CPU_BOOT_CPI);
585 }
586 cpu_booted_map = 0;
587 local_irq_restore(flags);
588
589 /* now wait for it to become ready (or timeout) */
590 for (timeout = 0; timeout < 50000; timeout++) {
591 if (cpu_booted_map)
592 break;
593 udelay(100);
594 }
595 /* reset the page table */
596 zap_low_mappings();
597
598 if (cpu_booted_map) {
599 VDEBUG(("CPU%d: Booted successfully, back in CPU %d\n",
600 cpu, smp_processor_id()));
601
602 printk("CPU%d: ", cpu);
603 print_cpu_info(&cpu_data(cpu));
604 wmb();
605 cpu_set(cpu, cpu_callout_map);
606 cpu_set(cpu, cpu_present_map);
607 } else {
608 printk("CPU%d FAILED TO BOOT: ", cpu);
609 if (*
610 ((volatile unsigned char *)phys_to_virt(start_phys_address))
611 == 0xA5)
612 printk("Stuck.\n");
613 else
614 printk("Not responding.\n");
615
616 cpucount--;
617 }
618}
619
620void __init smp_boot_cpus(void)
621{
622 int i;
623
624 /* CAT BUS initialisation must be done after the memory */
625 /* FIXME: The L4 has a catbus too, it just needs to be
626 * accessed in a totally different way */
627 if (voyager_level == 5) {
628 voyager_cat_init();
629
630 /* now that the cat has probed the Voyager System Bus, sanity
631 * check the cpu map */
632 if (((voyager_quad_processors | voyager_extended_vic_processors)
633 & cpus_addr(phys_cpu_present_map)[0]) !=
634 cpus_addr(phys_cpu_present_map)[0]) {
635 /* should panic */
636 printk("\n\n***WARNING*** "
637 "Sanity check of CPU present map FAILED\n");
638 }
639 } else if (voyager_level == 4)
640 voyager_extended_vic_processors =
641 cpus_addr(phys_cpu_present_map)[0];
642
643 /* this sets up the idle task to run on the current cpu */
644 voyager_extended_cpus = 1;
645 /* Remove the global_irq_holder setting, it triggers a BUG() on
646 * schedule at the moment */
647 //global_irq_holder = boot_cpu_id;
648
649 /* FIXME: Need to do something about this but currently only works
650 * on CPUs with a tsc which none of mine have.
651 smp_tune_scheduling();
652 */
653 smp_store_cpu_info(boot_cpu_id);
654 /* setup the jump vector */
655 initial_code = (unsigned long)initialize_secondary;
656 printk("CPU%d: ", boot_cpu_id);
657 print_cpu_info(&cpu_data(boot_cpu_id));
658
659 if (is_cpu_quad()) {
660 /* booting on a Quad CPU */
661 printk("VOYAGER SMP: Boot CPU is Quad\n");
662 qic_setup();
663 do_quad_bootstrap();
664 }
665
666 /* enable our own CPIs */
667 vic_enable_cpi();
668
669 cpu_set(boot_cpu_id, cpu_online_map);
670 cpu_set(boot_cpu_id, cpu_callout_map);
671
672 /* loop over all the extended VIC CPUs and boot them. The
673 * Quad CPUs must be bootstrapped by their extended VIC cpu */
674 for (i = 0; i < nr_cpu_ids; i++) {
675 if (i == boot_cpu_id || !cpu_isset(i, phys_cpu_present_map))
676 continue;
677 do_boot_cpu(i);
678 /* This udelay seems to be needed for the Quad boots
679 * don't remove unless you know what you're doing */
680 udelay(1000);
681 }
682 /* we could compute the total bogomips here, but why bother?,
683 * Code added from smpboot.c */
684 {
685 unsigned long bogosum = 0;
686
687 for_each_online_cpu(i)
688 bogosum += cpu_data(i).loops_per_jiffy;
689 printk(KERN_INFO "Total of %d processors activated "
690 "(%lu.%02lu BogoMIPS).\n",
691 cpucount + 1, bogosum / (500000 / HZ),
692 (bogosum / (5000 / HZ)) % 100);
693 }
694 voyager_extended_cpus = hweight32(voyager_extended_vic_processors);
695 printk("VOYAGER: Extended (interrupt handling CPUs): "
696 "%d, non-extended: %d\n", voyager_extended_cpus,
697 num_booting_cpus() - voyager_extended_cpus);
698 /* that's it, switch to symmetric mode */
699 outb(0, VIC_PRIORITY_REGISTER);
700 outb(0, VIC_CLAIM_REGISTER_0);
701 outb(0, VIC_CLAIM_REGISTER_1);
702
703 VDEBUG(("VOYAGER SMP: Booted with %d CPUs\n", num_booting_cpus()));
704}
705
706/* Reload the secondary CPUs task structure (this function does not
707 * return ) */
708static void __init initialize_secondary(void)
709{
710#if 0
711 // AC kernels only
712 set_current(hard_get_current());
713#endif
714
715 /*
716 * We don't actually need to load the full TSS,
717 * basically just the stack pointer and the eip.
718 */
719
720 asm volatile ("movl %0,%%esp\n\t"
721 "jmp *%1"::"r" (current->thread.sp),
722 "r"(current->thread.ip));
723}
724
725/* handle a Voyager SYS_INT -- If we don't, the base board will
726 * panic the system.
727 *
728 * System interrupts occur because some problem was detected on the
729 * various busses. To find out what you have to probe all the
730 * hardware via the CAT bus. FIXME: At the moment we do nothing. */
731void smp_vic_sys_interrupt(struct pt_regs *regs)
732{
733 ack_CPI(VIC_SYS_INT);
734 printk("Voyager SYSTEM INTERRUPT\n");
735}
736
737/* Handle a voyager CMN_INT; These interrupts occur either because of
738 * a system status change or because a single bit memory error
739 * occurred. FIXME: At the moment, ignore all this. */
740void smp_vic_cmn_interrupt(struct pt_regs *regs)
741{
742 static __u8 in_cmn_int = 0;
743 static DEFINE_SPINLOCK(cmn_int_lock);
744
745 /* common ints are broadcast, so make sure we only do this once */
746 _raw_spin_lock(&cmn_int_lock);
747 if (in_cmn_int)
748 goto unlock_end;
749
750 in_cmn_int++;
751 _raw_spin_unlock(&cmn_int_lock);
752
753 VDEBUG(("Voyager COMMON INTERRUPT\n"));
754
755 if (voyager_level == 5)
756 voyager_cat_do_common_interrupt();
757
758 _raw_spin_lock(&cmn_int_lock);
759 in_cmn_int = 0;
760 unlock_end:
761 _raw_spin_unlock(&cmn_int_lock);
762 ack_CPI(VIC_CMN_INT);
763}
764
765/*
766 * Reschedule call back. Nothing to do, all the work is done
767 * automatically when we return from the interrupt. */
768static void smp_reschedule_interrupt(void)
769{
770 /* do nothing */
771}
772
773static struct mm_struct *flush_mm;
774static unsigned long flush_va;
775static DEFINE_SPINLOCK(tlbstate_lock);
776
777/*
778 * We cannot call mmdrop() because we are in interrupt context,
779 * instead update mm->cpu_vm_mask.
780 *
781 * We need to reload %cr3 since the page tables may be going
782 * away from under us..
783 */
784static inline void voyager_leave_mm(unsigned long cpu)
785{
786 if (per_cpu(cpu_tlbstate, cpu).state == TLBSTATE_OK)
787 BUG();
788 cpu_clear(cpu, per_cpu(cpu_tlbstate, cpu).active_mm->cpu_vm_mask);
789 load_cr3(swapper_pg_dir);
790}
791
792/*
793 * Invalidate call-back
794 */
795static void smp_invalidate_interrupt(void)
796{
797 __u8 cpu = smp_processor_id();
798
799 if (!test_bit(cpu, &smp_invalidate_needed))
800 return;
801 /* This will flood messages. Don't uncomment unless you see
802 * Problems with cross cpu invalidation
803 VDEBUG(("VOYAGER SMP: CPU%d received INVALIDATE_CPI\n",
804 smp_processor_id()));
805 */
806
807 if (flush_mm == per_cpu(cpu_tlbstate, cpu).active_mm) {
808 if (per_cpu(cpu_tlbstate, cpu).state == TLBSTATE_OK) {
809 if (flush_va == TLB_FLUSH_ALL)
810 local_flush_tlb();
811 else
812 __flush_tlb_one(flush_va);
813 } else
814 voyager_leave_mm(cpu);
815 }
816 smp_mb__before_clear_bit();
817 clear_bit(cpu, &smp_invalidate_needed);
818 smp_mb__after_clear_bit();
819}
820
821/* All the new flush operations for 2.4 */
822
823/* This routine is called with a physical cpu mask */
824static void
825voyager_flush_tlb_others(unsigned long cpumask, struct mm_struct *mm,
826 unsigned long va)
827{
828 int stuck = 50000;
829
830 if (!cpumask)
831 BUG();
832 if ((cpumask & cpus_addr(cpu_online_map)[0]) != cpumask)
833 BUG();
834 if (cpumask & (1 << smp_processor_id()))
835 BUG();
836 if (!mm)
837 BUG();
838
839 spin_lock(&tlbstate_lock);
840
841 flush_mm = mm;
842 flush_va = va;
843 atomic_set_mask(cpumask, &smp_invalidate_needed);
844 /*
845 * We have to send the CPI only to
846 * CPUs affected.
847 */
848 send_CPI(cpumask, VIC_INVALIDATE_CPI);
849
850 while (smp_invalidate_needed) {
851 mb();
852 if (--stuck == 0) {
853 printk("***WARNING*** Stuck doing invalidate CPI "
854 "(CPU%d)\n", smp_processor_id());
855 break;
856 }
857 }
858
859 /* Uncomment only to debug invalidation problems
860 VDEBUG(("VOYAGER SMP: Completed invalidate CPI (CPU%d)\n", cpu));
861 */
862
863 flush_mm = NULL;
864 flush_va = 0;
865 spin_unlock(&tlbstate_lock);
866}
867
868void flush_tlb_current_task(void)
869{
870 struct mm_struct *mm = current->mm;
871 unsigned long cpu_mask;
872
873 preempt_disable();
874
875 cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id());
876 local_flush_tlb();
877 if (cpu_mask)
878 voyager_flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL);
879
880 preempt_enable();
881}
882
883void flush_tlb_mm(struct mm_struct *mm)
884{
885 unsigned long cpu_mask;
886
887 preempt_disable();
888
889 cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id());
890
891 if (current->active_mm == mm) {
892 if (current->mm)
893 local_flush_tlb();
894 else
895 voyager_leave_mm(smp_processor_id());
896 }
897 if (cpu_mask)
898 voyager_flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL);
899
900 preempt_enable();
901}
902
903void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)
904{
905 struct mm_struct *mm = vma->vm_mm;
906 unsigned long cpu_mask;
907
908 preempt_disable();
909
910 cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id());
911 if (current->active_mm == mm) {
912 if (current->mm)
913 __flush_tlb_one(va);
914 else
915 voyager_leave_mm(smp_processor_id());
916 }
917
918 if (cpu_mask)
919 voyager_flush_tlb_others(cpu_mask, mm, va);
920
921 preempt_enable();
922}
923
924EXPORT_SYMBOL(flush_tlb_page);
925
926/* enable the requested IRQs */
927static void smp_enable_irq_interrupt(void)
928{
929 __u8 irq;
930 __u8 cpu = get_cpu();
931
932 VDEBUG(("VOYAGER SMP: CPU%d enabling irq mask 0x%x\n", cpu,
933 vic_irq_enable_mask[cpu]));
934
935 spin_lock(&vic_irq_lock);
936 for (irq = 0; irq < 16; irq++) {
937 if (vic_irq_enable_mask[cpu] & (1 << irq))
938 enable_local_vic_irq(irq);
939 }
940 vic_irq_enable_mask[cpu] = 0;
941 spin_unlock(&vic_irq_lock);
942
943 put_cpu_no_resched();
944}
945
946/*
947 * CPU halt call-back
948 */
949static void smp_stop_cpu_function(void *dummy)
950{
951 VDEBUG(("VOYAGER SMP: CPU%d is STOPPING\n", smp_processor_id()));
952 cpu_clear(smp_processor_id(), cpu_online_map);
953 local_irq_disable();
954 for (;;)
955 halt();
956}
957
958/* execute a thread on a new CPU. The function to be called must be
959 * previously set up. This is used to schedule a function for
960 * execution on all CPUs - set up the function then broadcast a
961 * function_interrupt CPI to come here on each CPU */
962static void smp_call_function_interrupt(void)
963{
964 irq_enter();
965 generic_smp_call_function_interrupt();
966 __get_cpu_var(irq_stat).irq_call_count++;
967 irq_exit();
968}
969
970static void smp_call_function_single_interrupt(void)
971{
972 irq_enter();
973 generic_smp_call_function_single_interrupt();
974 __get_cpu_var(irq_stat).irq_call_count++;
975 irq_exit();
976}
977
978/* Sorry about the name. In an APIC based system, the APICs
979 * themselves are programmed to send a timer interrupt. This is used
980 * by linux to reschedule the processor. Voyager doesn't have this,
981 * so we use the system clock to interrupt one processor, which in
982 * turn, broadcasts a timer CPI to all the others --- we receive that
983 * CPI here. We don't use this actually for counting so losing
984 * ticks doesn't matter
985 *
986 * FIXME: For those CPUs which actually have a local APIC, we could
987 * try to use it to trigger this interrupt instead of having to
988 * broadcast the timer tick. Unfortunately, all my pentium DYADs have
989 * no local APIC, so I can't do this
990 *
991 * This function is currently a placeholder and is unused in the code */
992void smp_apic_timer_interrupt(struct pt_regs *regs)
993{
994 struct pt_regs *old_regs = set_irq_regs(regs);
995 wrapper_smp_local_timer_interrupt();
996 set_irq_regs(old_regs);
997}
998
999/* All of the QUAD interrupt GATES */
1000void smp_qic_timer_interrupt(struct pt_regs *regs)
1001{
1002 struct pt_regs *old_regs = set_irq_regs(regs);
1003 ack_QIC_CPI(QIC_TIMER_CPI);
1004 wrapper_smp_local_timer_interrupt();
1005 set_irq_regs(old_regs);
1006}
1007
1008void smp_qic_invalidate_interrupt(struct pt_regs *regs)
1009{
1010 ack_QIC_CPI(QIC_INVALIDATE_CPI);
1011 smp_invalidate_interrupt();
1012}
1013
1014void smp_qic_reschedule_interrupt(struct pt_regs *regs)
1015{
1016 ack_QIC_CPI(QIC_RESCHEDULE_CPI);
1017 smp_reschedule_interrupt();
1018}
1019
1020void smp_qic_enable_irq_interrupt(struct pt_regs *regs)
1021{
1022 ack_QIC_CPI(QIC_ENABLE_IRQ_CPI);
1023 smp_enable_irq_interrupt();
1024}
1025
1026void smp_qic_call_function_interrupt(struct pt_regs *regs)
1027{
1028 ack_QIC_CPI(QIC_CALL_FUNCTION_CPI);
1029 smp_call_function_interrupt();
1030}
1031
1032void smp_qic_call_function_single_interrupt(struct pt_regs *regs)
1033{
1034 ack_QIC_CPI(QIC_CALL_FUNCTION_SINGLE_CPI);
1035 smp_call_function_single_interrupt();
1036}
1037
1038void smp_vic_cpi_interrupt(struct pt_regs *regs)
1039{
1040 struct pt_regs *old_regs = set_irq_regs(regs);
1041 __u8 cpu = smp_processor_id();
1042
1043 if (is_cpu_quad())
1044 ack_QIC_CPI(VIC_CPI_LEVEL0);
1045 else
1046 ack_VIC_CPI(VIC_CPI_LEVEL0);
1047
1048 if (test_and_clear_bit(VIC_TIMER_CPI, &vic_cpi_mailbox[cpu]))
1049 wrapper_smp_local_timer_interrupt();
1050 if (test_and_clear_bit(VIC_INVALIDATE_CPI, &vic_cpi_mailbox[cpu]))
1051 smp_invalidate_interrupt();
1052 if (test_and_clear_bit(VIC_RESCHEDULE_CPI, &vic_cpi_mailbox[cpu]))
1053 smp_reschedule_interrupt();
1054 if (test_and_clear_bit(VIC_ENABLE_IRQ_CPI, &vic_cpi_mailbox[cpu]))
1055 smp_enable_irq_interrupt();
1056 if (test_and_clear_bit(VIC_CALL_FUNCTION_CPI, &vic_cpi_mailbox[cpu]))
1057 smp_call_function_interrupt();
1058 if (test_and_clear_bit(VIC_CALL_FUNCTION_SINGLE_CPI, &vic_cpi_mailbox[cpu]))
1059 smp_call_function_single_interrupt();
1060 set_irq_regs(old_regs);
1061}
1062
1063static void do_flush_tlb_all(void *info)
1064{
1065 unsigned long cpu = smp_processor_id();
1066
1067 __flush_tlb_all();
1068 if (per_cpu(cpu_tlbstate, cpu).state == TLBSTATE_LAZY)
1069 voyager_leave_mm(cpu);
1070}
1071
1072/* flush the TLB of every active CPU in the system */
1073void flush_tlb_all(void)
1074{
1075 on_each_cpu(do_flush_tlb_all, 0, 1);
1076}
1077
1078/* send a reschedule CPI to one CPU by physical CPU number*/
1079static void voyager_smp_send_reschedule(int cpu)
1080{
1081 send_one_CPI(cpu, VIC_RESCHEDULE_CPI);
1082}
1083
1084int hard_smp_processor_id(void)
1085{
1086 __u8 i;
1087 __u8 cpumask = inb(VIC_PROC_WHO_AM_I);
1088 if ((cpumask & QUAD_IDENTIFIER) == QUAD_IDENTIFIER)
1089 return cpumask & 0x1F;
1090
1091 for (i = 0; i < 8; i++) {
1092 if (cpumask & (1 << i))
1093 return i;
1094 }
1095 printk("** WARNING ** Illegal cpuid returned by VIC: %d", cpumask);
1096 return 0;
1097}
1098
1099int safe_smp_processor_id(void)
1100{
1101 return hard_smp_processor_id();
1102}
1103
1104/* broadcast a halt to all other CPUs */
1105static void voyager_smp_send_stop(void)
1106{
1107 smp_call_function(smp_stop_cpu_function, NULL, 1);
1108}
1109
1110/* this function is triggered in time.c when a clock tick fires
1111 * we need to re-broadcast the tick to all CPUs */
1112void smp_vic_timer_interrupt(void)
1113{
1114 send_CPI_allbutself(VIC_TIMER_CPI);
1115 smp_local_timer_interrupt();
1116}
1117
1118/* local (per CPU) timer interrupt. It does both profiling and
1119 * process statistics/rescheduling.
1120 *
1121 * We do profiling in every local tick, statistics/rescheduling
1122 * happen only every 'profiling multiplier' ticks. The default
1123 * multiplier is 1 and it can be changed by writing the new multiplier
1124 * value into /proc/profile.
1125 */
1126void smp_local_timer_interrupt(void)
1127{
1128 int cpu = smp_processor_id();
1129 long weight;
1130
1131 profile_tick(CPU_PROFILING);
1132 if (--per_cpu(prof_counter, cpu) <= 0) {
1133 /*
1134 * The multiplier may have changed since the last time we got
1135 * to this point as a result of the user writing to
1136 * /proc/profile. In this case we need to adjust the APIC
1137 * timer accordingly.
1138 *
1139 * Interrupts are already masked off at this point.
1140 */
1141 per_cpu(prof_counter, cpu) = per_cpu(prof_multiplier, cpu);
1142 if (per_cpu(prof_counter, cpu) !=
1143 per_cpu(prof_old_multiplier, cpu)) {
1144 /* FIXME: need to update the vic timer tick here */
1145 per_cpu(prof_old_multiplier, cpu) =
1146 per_cpu(prof_counter, cpu);
1147 }
1148
1149 update_process_times(user_mode_vm(get_irq_regs()));
1150 }
1151
1152 if (((1 << cpu) & voyager_extended_vic_processors) == 0)
1153 /* only extended VIC processors participate in
1154 * interrupt distribution */
1155 return;
1156
1157 /*
1158 * We take the 'long' return path, and there every subsystem
1159 * grabs the appropriate locks (kernel lock/ irq lock).
1160 *
1161 * we might want to decouple profiling from the 'long path',
1162 * and do the profiling totally in assembly.
1163 *
1164 * Currently this isn't too much of an issue (performance wise),
1165 * we can take more than 100K local irqs per second on a 100 MHz P5.
1166 */
1167
1168 if ((++vic_tick[cpu] & 0x7) != 0)
1169 return;
1170 /* get here every 16 ticks (about every 1/6 of a second) */
1171
1172 /* Change our priority to give someone else a chance at getting
1173 * the IRQ. The algorithm goes like this:
1174 *
1175 * In the VIC, the dynamically routed interrupt is always
1176 * handled by the lowest priority eligible (i.e. receiving
1177 * interrupts) CPU. If >1 eligible CPUs are equal lowest, the
1178 * lowest processor number gets it.
1179 *
1180 * The priority of a CPU is controlled by a special per-CPU
1181 * VIC priority register which is 3 bits wide 0 being lowest
1182 * and 7 highest priority..
1183 *
1184 * Therefore we subtract the average number of interrupts from
1185 * the number we've fielded. If this number is negative, we
1186 * lower the activity count and if it is positive, we raise
1187 * it.
1188 *
1189 * I'm afraid this still leads to odd looking interrupt counts:
1190 * the totals are all roughly equal, but the individual ones
1191 * look rather skewed.
1192 *
1193 * FIXME: This algorithm is total crap when mixed with SMP
1194 * affinity code since we now try to even up the interrupt
1195 * counts when an affinity binding is keeping them on a
1196 * particular CPU*/
1197 weight = (vic_intr_count[cpu] * voyager_extended_cpus
1198 - vic_intr_total) >> 4;
1199 weight += 4;
1200 if (weight > 7)
1201 weight = 7;
1202 if (weight < 0)
1203 weight = 0;
1204
1205 outb((__u8) weight, VIC_PRIORITY_REGISTER);
1206
1207#ifdef VOYAGER_DEBUG
1208 if ((vic_tick[cpu] & 0xFFF) == 0) {
1209 /* print this message roughly every 25 secs */
1210 printk("VOYAGER SMP: vic_tick[%d] = %lu, weight = %ld\n",
1211 cpu, vic_tick[cpu], weight);
1212 }
1213#endif
1214}
1215
1216/* setup the profiling timer */
1217int setup_profiling_timer(unsigned int multiplier)
1218{
1219 int i;
1220
1221 if ((!multiplier))
1222 return -EINVAL;
1223
1224 /*
1225 * Set the new multiplier for each CPU. CPUs don't start using the
1226 * new values until the next timer interrupt in which they do process
1227 * accounting.
1228 */
1229 for (i = 0; i < nr_cpu_ids; ++i)
1230 per_cpu(prof_multiplier, i) = multiplier;
1231
1232 return 0;
1233}
1234
1235/* This is a bit of a mess, but forced on us by the genirq changes
1236 * there's no genirq handler that really does what voyager wants
1237 * so hack it up with the simple IRQ handler */
1238static void handle_vic_irq(unsigned int irq, struct irq_desc *desc)
1239{
1240 before_handle_vic_irq(irq);
1241 handle_simple_irq(irq, desc);
1242 after_handle_vic_irq(irq);
1243}
1244
1245/* The CPIs are handled in the per cpu 8259s, so they must be
1246 * enabled to be received: FIX: enabling the CPIs in the early
1247 * boot sequence interferes with bug checking; enable them later
1248 * on in smp_init */
1249#define VIC_SET_GATE(cpi, vector) \
1250 set_intr_gate((cpi) + VIC_DEFAULT_CPI_BASE, (vector))
1251#define QIC_SET_GATE(cpi, vector) \
1252 set_intr_gate((cpi) + QIC_DEFAULT_CPI_BASE, (vector))
1253
1254void __init voyager_smp_intr_init(void)
1255{
1256 int i;
1257
1258 /* initialize the per cpu irq mask to all disabled */
1259 for (i = 0; i < nr_cpu_ids; i++)
1260 vic_irq_mask[i] = 0xFFFF;
1261
1262 VIC_SET_GATE(VIC_CPI_LEVEL0, vic_cpi_interrupt);
1263
1264 VIC_SET_GATE(VIC_SYS_INT, vic_sys_interrupt);
1265 VIC_SET_GATE(VIC_CMN_INT, vic_cmn_interrupt);
1266
1267 QIC_SET_GATE(QIC_TIMER_CPI, qic_timer_interrupt);
1268 QIC_SET_GATE(QIC_INVALIDATE_CPI, qic_invalidate_interrupt);
1269 QIC_SET_GATE(QIC_RESCHEDULE_CPI, qic_reschedule_interrupt);
1270 QIC_SET_GATE(QIC_ENABLE_IRQ_CPI, qic_enable_irq_interrupt);
1271 QIC_SET_GATE(QIC_CALL_FUNCTION_CPI, qic_call_function_interrupt);
1272
1273 /* now put the VIC descriptor into the first 48 IRQs
1274 *
1275 * This is for later: first 16 correspond to PC IRQs; next 16
1276 * are Primary MC IRQs and final 16 are Secondary MC IRQs */
1277 for (i = 0; i < 48; i++)
1278 set_irq_chip_and_handler(i, &vic_chip, handle_vic_irq);
1279}
1280
1281/* send a CPI at level cpi to a set of cpus in cpuset (set 1 bit per
1282 * processor to receive CPI */
1283static void send_CPI(__u32 cpuset, __u8 cpi)
1284{
1285 int cpu;
1286 __u32 quad_cpuset = (cpuset & voyager_quad_processors);
1287
1288 if (cpi < VIC_START_FAKE_CPI) {
1289 /* fake CPI are only used for booting, so send to the
1290 * extended quads as well---Quads must be VIC booted */
1291 outb((__u8) (cpuset), VIC_CPI_Registers[cpi]);
1292 return;
1293 }
1294 if (quad_cpuset)
1295 send_QIC_CPI(quad_cpuset, cpi);
1296 cpuset &= ~quad_cpuset;
1297 cpuset &= 0xff; /* only first 8 CPUs vaild for VIC CPI */
1298 if (cpuset == 0)
1299 return;
1300 for_each_online_cpu(cpu) {
1301 if (cpuset & (1 << cpu))
1302 set_bit(cpi, &vic_cpi_mailbox[cpu]);
1303 }
1304 if (cpuset)
1305 outb((__u8) cpuset, VIC_CPI_Registers[VIC_CPI_LEVEL0]);
1306}
1307
1308/* Acknowledge receipt of CPI in the QIC, clear in QIC hardware and
1309 * set the cache line to shared by reading it.
1310 *
1311 * DON'T make this inline otherwise the cache line read will be
1312 * optimised away
1313 * */
1314static int ack_QIC_CPI(__u8 cpi)
1315{
1316 __u8 cpu = hard_smp_processor_id();
1317
1318 cpi &= 7;
1319
1320 outb(1 << cpi, QIC_INTERRUPT_CLEAR1);
1321 return voyager_quad_cpi_addr[cpu]->qic_cpi[cpi].cpi;
1322}
1323
1324static void ack_special_QIC_CPI(__u8 cpi)
1325{
1326 switch (cpi) {
1327 case VIC_CMN_INT:
1328 outb(QIC_CMN_INT, QIC_INTERRUPT_CLEAR0);
1329 break;
1330 case VIC_SYS_INT:
1331 outb(QIC_SYS_INT, QIC_INTERRUPT_CLEAR0);
1332 break;
1333 }
1334 /* also clear at the VIC, just in case (nop for non-extended proc) */
1335 ack_VIC_CPI(cpi);
1336}
1337
1338/* Acknowledge receipt of CPI in the VIC (essentially an EOI) */
1339static void ack_VIC_CPI(__u8 cpi)
1340{
1341#ifdef VOYAGER_DEBUG
1342 unsigned long flags;
1343 __u16 isr;
1344 __u8 cpu = smp_processor_id();
1345
1346 local_irq_save(flags);
1347 isr = vic_read_isr();
1348 if ((isr & (1 << (cpi & 7))) == 0) {
1349 printk("VOYAGER SMP: CPU%d lost CPI%d\n", cpu, cpi);
1350 }
1351#endif
1352 /* send specific EOI; the two system interrupts have
1353 * bit 4 set for a separate vector but behave as the
1354 * corresponding 3 bit intr */
1355 outb_p(0x60 | (cpi & 7), 0x20);
1356
1357#ifdef VOYAGER_DEBUG
1358 if ((vic_read_isr() & (1 << (cpi & 7))) != 0) {
1359 printk("VOYAGER SMP: CPU%d still asserting CPI%d\n", cpu, cpi);
1360 }
1361 local_irq_restore(flags);
1362#endif
1363}
1364
1365/* cribbed with thanks from irq.c */
1366#define __byte(x,y) (((unsigned char *)&(y))[x])
1367#define cached_21(cpu) (__byte(0,vic_irq_mask[cpu]))
1368#define cached_A1(cpu) (__byte(1,vic_irq_mask[cpu]))
1369
1370static unsigned int startup_vic_irq(unsigned int irq)
1371{
1372 unmask_vic_irq(irq);
1373
1374 return 0;
1375}
1376
1377/* The enable and disable routines. This is where we run into
1378 * conflicting architectural philosophy. Fundamentally, the voyager
1379 * architecture does not expect to have to disable interrupts globally
1380 * (the IRQ controllers belong to each CPU). The processor masquerade
1381 * which is used to start the system shouldn't be used in a running OS
1382 * since it will cause great confusion if two separate CPUs drive to
1383 * the same IRQ controller (I know, I've tried it).
1384 *
1385 * The solution is a variant on the NCR lazy SPL design:
1386 *
1387 * 1) To disable an interrupt, do nothing (other than set the
1388 * IRQ_DISABLED flag). This dares the interrupt actually to arrive.
1389 *
1390 * 2) If the interrupt dares to come in, raise the local mask against
1391 * it (this will result in all the CPU masks being raised
1392 * eventually).
1393 *
1394 * 3) To enable the interrupt, lower the mask on the local CPU and
1395 * broadcast an Interrupt enable CPI which causes all other CPUs to
1396 * adjust their masks accordingly. */
1397
1398static void unmask_vic_irq(unsigned int irq)
1399{
1400 /* linux doesn't to processor-irq affinity, so enable on
1401 * all CPUs we know about */
1402 int cpu = smp_processor_id(), real_cpu;
1403 __u16 mask = (1 << irq);
1404 __u32 processorList = 0;
1405 unsigned long flags;
1406
1407 VDEBUG(("VOYAGER: unmask_vic_irq(%d) CPU%d affinity 0x%lx\n",
1408 irq, cpu, cpu_irq_affinity[cpu]));
1409 spin_lock_irqsave(&vic_irq_lock, flags);
1410 for_each_online_cpu(real_cpu) {
1411 if (!(voyager_extended_vic_processors & (1 << real_cpu)))
1412 continue;
1413 if (!(cpu_irq_affinity[real_cpu] & mask)) {
1414 /* irq has no affinity for this CPU, ignore */
1415 continue;
1416 }
1417 if (real_cpu == cpu) {
1418 enable_local_vic_irq(irq);
1419 } else if (vic_irq_mask[real_cpu] & mask) {
1420 vic_irq_enable_mask[real_cpu] |= mask;
1421 processorList |= (1 << real_cpu);
1422 }
1423 }
1424 spin_unlock_irqrestore(&vic_irq_lock, flags);
1425 if (processorList)
1426 send_CPI(processorList, VIC_ENABLE_IRQ_CPI);
1427}
1428
1429static void mask_vic_irq(unsigned int irq)
1430{
1431 /* lazy disable, do nothing */
1432}
1433
1434static void enable_local_vic_irq(unsigned int irq)
1435{
1436 __u8 cpu = smp_processor_id();
1437 __u16 mask = ~(1 << irq);
1438 __u16 old_mask = vic_irq_mask[cpu];
1439
1440 vic_irq_mask[cpu] &= mask;
1441 if (vic_irq_mask[cpu] == old_mask)
1442 return;
1443
1444 VDEBUG(("VOYAGER DEBUG: Enabling irq %d in hardware on CPU %d\n",
1445 irq, cpu));
1446
1447 if (irq & 8) {
1448 outb_p(cached_A1(cpu), 0xA1);
1449 (void)inb_p(0xA1);
1450 } else {
1451 outb_p(cached_21(cpu), 0x21);
1452 (void)inb_p(0x21);
1453 }
1454}
1455
1456static void disable_local_vic_irq(unsigned int irq)
1457{
1458 __u8 cpu = smp_processor_id();
1459 __u16 mask = (1 << irq);
1460 __u16 old_mask = vic_irq_mask[cpu];
1461
1462 if (irq == 7)
1463 return;
1464
1465 vic_irq_mask[cpu] |= mask;
1466 if (old_mask == vic_irq_mask[cpu])
1467 return;
1468
1469 VDEBUG(("VOYAGER DEBUG: Disabling irq %d in hardware on CPU %d\n",
1470 irq, cpu));
1471
1472 if (irq & 8) {
1473 outb_p(cached_A1(cpu), 0xA1);
1474 (void)inb_p(0xA1);
1475 } else {
1476 outb_p(cached_21(cpu), 0x21);
1477 (void)inb_p(0x21);
1478 }
1479}
1480
1481/* The VIC is level triggered, so the ack can only be issued after the
1482 * interrupt completes. However, we do Voyager lazy interrupt
1483 * handling here: It is an extremely expensive operation to mask an
1484 * interrupt in the vic, so we merely set a flag (IRQ_DISABLED). If
1485 * this interrupt actually comes in, then we mask and ack here to push
1486 * the interrupt off to another CPU */
1487static void before_handle_vic_irq(unsigned int irq)
1488{
1489 irq_desc_t *desc = irq_to_desc(irq);
1490 __u8 cpu = smp_processor_id();
1491
1492 _raw_spin_lock(&vic_irq_lock);
1493 vic_intr_total++;
1494 vic_intr_count[cpu]++;
1495
1496 if (!(cpu_irq_affinity[cpu] & (1 << irq))) {
1497 /* The irq is not in our affinity mask, push it off
1498 * onto another CPU */
1499 VDEBUG(("VOYAGER DEBUG: affinity triggered disable of irq %d "
1500 "on cpu %d\n", irq, cpu));
1501 disable_local_vic_irq(irq);
1502 /* set IRQ_INPROGRESS to prevent the handler in irq.c from
1503 * actually calling the interrupt routine */
1504 desc->status |= IRQ_REPLAY | IRQ_INPROGRESS;
1505 } else if (desc->status & IRQ_DISABLED) {
1506 /* Damn, the interrupt actually arrived, do the lazy
1507 * disable thing. The interrupt routine in irq.c will
1508 * not handle a IRQ_DISABLED interrupt, so nothing more
1509 * need be done here */
1510 VDEBUG(("VOYAGER DEBUG: lazy disable of irq %d on CPU %d\n",
1511 irq, cpu));
1512 disable_local_vic_irq(irq);
1513 desc->status |= IRQ_REPLAY;
1514 } else {
1515 desc->status &= ~IRQ_REPLAY;
1516 }
1517
1518 _raw_spin_unlock(&vic_irq_lock);
1519}
1520
1521/* Finish the VIC interrupt: basically mask */
1522static void after_handle_vic_irq(unsigned int irq)
1523{
1524 irq_desc_t *desc = irq_to_desc(irq);
1525
1526 _raw_spin_lock(&vic_irq_lock);
1527 {
1528 unsigned int status = desc->status & ~IRQ_INPROGRESS;
1529#ifdef VOYAGER_DEBUG
1530 __u16 isr;
1531#endif
1532
1533 desc->status = status;
1534 if ((status & IRQ_DISABLED))
1535 disable_local_vic_irq(irq);
1536#ifdef VOYAGER_DEBUG
1537 /* DEBUG: before we ack, check what's in progress */
1538 isr = vic_read_isr();
1539 if ((isr & (1 << irq) && !(status & IRQ_REPLAY)) == 0) {
1540 int i;
1541 __u8 cpu = smp_processor_id();
1542 __u8 real_cpu;
1543 int mask; /* Um... initialize me??? --RR */
1544
1545 printk("VOYAGER SMP: CPU%d lost interrupt %d\n",
1546 cpu, irq);
1547 for_each_possible_cpu(real_cpu, mask) {
1548
1549 outb(VIC_CPU_MASQUERADE_ENABLE | real_cpu,
1550 VIC_PROCESSOR_ID);
1551 isr = vic_read_isr();
1552 if (isr & (1 << irq)) {
1553 printk
1554 ("VOYAGER SMP: CPU%d ack irq %d\n",
1555 real_cpu, irq);
1556 ack_vic_irq(irq);
1557 }
1558 outb(cpu, VIC_PROCESSOR_ID);
1559 }
1560 }
1561#endif /* VOYAGER_DEBUG */
1562 /* as soon as we ack, the interrupt is eligible for
1563 * receipt by another CPU so everything must be in
1564 * order here */
1565 ack_vic_irq(irq);
1566 if (status & IRQ_REPLAY) {
1567 /* replay is set if we disable the interrupt
1568 * in the before_handle_vic_irq() routine, so
1569 * clear the in progress bit here to allow the
1570 * next CPU to handle this correctly */
1571 desc->status &= ~(IRQ_REPLAY | IRQ_INPROGRESS);
1572 }
1573#ifdef VOYAGER_DEBUG
1574 isr = vic_read_isr();
1575 if ((isr & (1 << irq)) != 0)
1576 printk("VOYAGER SMP: after_handle_vic_irq() after "
1577 "ack irq=%d, isr=0x%x\n", irq, isr);
1578#endif /* VOYAGER_DEBUG */
1579 }
1580 _raw_spin_unlock(&vic_irq_lock);
1581
1582 /* All code after this point is out of the main path - the IRQ
1583 * may be intercepted by another CPU if reasserted */
1584}
1585
1586/* Linux processor - interrupt affinity manipulations.
1587 *
1588 * For each processor, we maintain a 32 bit irq affinity mask.
1589 * Initially it is set to all 1's so every processor accepts every
1590 * interrupt. In this call, we change the processor's affinity mask:
1591 *
1592 * Change from enable to disable:
1593 *
1594 * If the interrupt ever comes in to the processor, we will disable it
1595 * and ack it to push it off to another CPU, so just accept the mask here.
1596 *
1597 * Change from disable to enable:
1598 *
1599 * change the mask and then do an interrupt enable CPI to re-enable on
1600 * the selected processors */
1601
1602void set_vic_irq_affinity(unsigned int irq, cpumask_t mask)
1603{
1604 /* Only extended processors handle interrupts */
1605 unsigned long real_mask;
1606 unsigned long irq_mask = 1 << irq;
1607 int cpu;
1608
1609 real_mask = cpus_addr(mask)[0] & voyager_extended_vic_processors;
1610
1611 if (cpus_addr(mask)[0] == 0)
1612 /* can't have no CPUs to accept the interrupt -- extremely
1613 * bad things will happen */
1614 return;
1615
1616 if (irq == 0)
1617 /* can't change the affinity of the timer IRQ. This
1618 * is due to the constraint in the voyager
1619 * architecture that the CPI also comes in on and IRQ
1620 * line and we have chosen IRQ0 for this. If you
1621 * raise the mask on this interrupt, the processor
1622 * will no-longer be able to accept VIC CPIs */
1623 return;
1624
1625 if (irq >= 32)
1626 /* You can only have 32 interrupts in a voyager system
1627 * (and 32 only if you have a secondary microchannel
1628 * bus) */
1629 return;
1630
1631 for_each_online_cpu(cpu) {
1632 unsigned long cpu_mask = 1 << cpu;
1633
1634 if (cpu_mask & real_mask) {
1635 /* enable the interrupt for this cpu */
1636 cpu_irq_affinity[cpu] |= irq_mask;
1637 } else {
1638 /* disable the interrupt for this cpu */
1639 cpu_irq_affinity[cpu] &= ~irq_mask;
1640 }
1641 }
1642 /* this is magic, we now have the correct affinity maps, so
1643 * enable the interrupt. This will send an enable CPI to
1644 * those CPUs who need to enable it in their local masks,
1645 * causing them to correct for the new affinity . If the
1646 * interrupt is currently globally disabled, it will simply be
1647 * disabled again as it comes in (voyager lazy disable). If
1648 * the affinity map is tightened to disable the interrupt on a
1649 * cpu, it will be pushed off when it comes in */
1650 unmask_vic_irq(irq);
1651}
1652
1653static void ack_vic_irq(unsigned int irq)
1654{
1655 if (irq & 8) {
1656 outb(0x62, 0x20); /* Specific EOI to cascade */
1657 outb(0x60 | (irq & 7), 0xA0);
1658 } else {
1659 outb(0x60 | (irq & 7), 0x20);
1660 }
1661}
1662
1663/* enable the CPIs. In the VIC, the CPIs are delivered by the 8259
1664 * but are not vectored by it. This means that the 8259 mask must be
1665 * lowered to receive them */
1666static __init void vic_enable_cpi(void)
1667{
1668 __u8 cpu = smp_processor_id();
1669
1670 /* just take a copy of the current mask (nop for boot cpu) */
1671 vic_irq_mask[cpu] = vic_irq_mask[boot_cpu_id];
1672
1673 enable_local_vic_irq(VIC_CPI_LEVEL0);
1674 enable_local_vic_irq(VIC_CPI_LEVEL1);
1675 /* for sys int and cmn int */
1676 enable_local_vic_irq(7);
1677
1678 if (is_cpu_quad()) {
1679 outb(QIC_DEFAULT_MASK0, QIC_MASK_REGISTER0);
1680 outb(QIC_CPI_ENABLE, QIC_MASK_REGISTER1);
1681 VDEBUG(("VOYAGER SMP: QIC ENABLE CPI: CPU%d: MASK 0x%x\n",
1682 cpu, QIC_CPI_ENABLE));
1683 }
1684
1685 VDEBUG(("VOYAGER SMP: ENABLE CPI: CPU%d: MASK 0x%x\n",
1686 cpu, vic_irq_mask[cpu]));
1687}
1688
1689void voyager_smp_dump()
1690{
1691 int old_cpu = smp_processor_id(), cpu;
1692
1693 /* dump the interrupt masks of each processor */
1694 for_each_online_cpu(cpu) {
1695 __u16 imr, isr, irr;
1696 unsigned long flags;
1697
1698 local_irq_save(flags);
1699 outb(VIC_CPU_MASQUERADE_ENABLE | cpu, VIC_PROCESSOR_ID);
1700 imr = (inb(0xa1) << 8) | inb(0x21);
1701 outb(0x0a, 0xa0);
1702 irr = inb(0xa0) << 8;
1703 outb(0x0a, 0x20);
1704 irr |= inb(0x20);
1705 outb(0x0b, 0xa0);
1706 isr = inb(0xa0) << 8;
1707 outb(0x0b, 0x20);
1708 isr |= inb(0x20);
1709 outb(old_cpu, VIC_PROCESSOR_ID);
1710 local_irq_restore(flags);
1711 printk("\tCPU%d: mask=0x%x, IMR=0x%x, IRR=0x%x, ISR=0x%x\n",
1712 cpu, vic_irq_mask[cpu], imr, irr, isr);
1713#if 0
1714 /* These lines are put in to try to unstick an un ack'd irq */
1715 if (isr != 0) {
1716 int irq;
1717 for (irq = 0; irq < 16; irq++) {
1718 if (isr & (1 << irq)) {
1719 printk("\tCPU%d: ack irq %d\n",
1720 cpu, irq);
1721 local_irq_save(flags);
1722 outb(VIC_CPU_MASQUERADE_ENABLE | cpu,
1723 VIC_PROCESSOR_ID);
1724 ack_vic_irq(irq);
1725 outb(old_cpu, VIC_PROCESSOR_ID);
1726 local_irq_restore(flags);
1727 }
1728 }
1729 }
1730#endif
1731 }
1732}
1733
1734void smp_voyager_power_off(void *dummy)
1735{
1736 if (smp_processor_id() == boot_cpu_id)
1737 voyager_power_off();
1738 else
1739 smp_stop_cpu_function(NULL);
1740}
1741
1742static void __init voyager_smp_prepare_cpus(unsigned int max_cpus)
1743{
1744 /* FIXME: ignore max_cpus for now */
1745 smp_boot_cpus();
1746}
1747
1748static void __cpuinit voyager_smp_prepare_boot_cpu(void)
1749{
1750 init_gdt(smp_processor_id());
1751 switch_to_new_gdt();
1752
1753 cpu_set(smp_processor_id(), cpu_online_map);
1754 cpu_set(smp_processor_id(), cpu_callout_map);
1755 cpu_set(smp_processor_id(), cpu_possible_map);
1756 cpu_set(smp_processor_id(), cpu_present_map);
1757}
1758
1759static int __cpuinit voyager_cpu_up(unsigned int cpu)
1760{
1761 /* This only works at boot for x86. See "rewrite" above. */
1762 if (cpu_isset(cpu, smp_commenced_mask))
1763 return -ENOSYS;
1764
1765 /* In case one didn't come up */
1766 if (!cpu_isset(cpu, cpu_callin_map))
1767 return -EIO;
1768 /* Unleash the CPU! */
1769 cpu_set(cpu, smp_commenced_mask);
1770 while (!cpu_online(cpu))
1771 mb();
1772 return 0;
1773}
1774
1775static void __init voyager_smp_cpus_done(unsigned int max_cpus)
1776{
1777 zap_low_mappings();
1778}
1779
1780void __init smp_setup_processor_id(void)
1781{
1782 current_thread_info()->cpu = hard_smp_processor_id();
1783 x86_write_percpu(cpu_number, hard_smp_processor_id());
1784}
1785
1786static void voyager_send_call_func(cpumask_t callmask)
1787{
1788 __u32 mask = cpus_addr(callmask)[0] & ~(1 << smp_processor_id());
1789 send_CPI(mask, VIC_CALL_FUNCTION_CPI);
1790}
1791
1792static void voyager_send_call_func_single(int cpu)
1793{
1794 send_CPI(1 << cpu, VIC_CALL_FUNCTION_SINGLE_CPI);
1795}
1796
1797struct smp_ops smp_ops = {
1798 .smp_prepare_boot_cpu = voyager_smp_prepare_boot_cpu,
1799 .smp_prepare_cpus = voyager_smp_prepare_cpus,
1800 .cpu_up = voyager_cpu_up,
1801 .smp_cpus_done = voyager_smp_cpus_done,
1802
1803 .smp_send_stop = voyager_smp_send_stop,
1804 .smp_send_reschedule = voyager_smp_send_reschedule,
1805
1806 .send_call_func_ipi = voyager_send_call_func,
1807 .send_call_func_single_ipi = voyager_send_call_func_single,
1808};
diff --git a/arch/x86/mach-voyager/voyager_thread.c b/arch/x86/mach-voyager/voyager_thread.c
deleted file mode 100644
index 15464a20fb38..000000000000
--- a/arch/x86/mach-voyager/voyager_thread.c
+++ /dev/null
@@ -1,128 +0,0 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */
2
3/* Copyright (C) 2001
4 *
5 * Author: J.E.J.Bottomley@HansenPartnership.com
6 *
7 * This module provides the machine status monitor thread for the
8 * voyager architecture. This allows us to monitor the machine
9 * environment (temp, voltage, fan function) and the front panel and
10 * internal UPS. If a fault is detected, this thread takes corrective
11 * action (usually just informing init)
12 * */
13
14#include <linux/module.h>
15#include <linux/mm.h>
16#include <linux/kernel_stat.h>
17#include <linux/delay.h>
18#include <linux/mc146818rtc.h>
19#include <linux/init.h>
20#include <linux/bootmem.h>
21#include <linux/kmod.h>
22#include <linux/completion.h>
23#include <linux/sched.h>
24#include <linux/kthread.h>
25#include <asm/desc.h>
26#include <asm/voyager.h>
27#include <asm/vic.h>
28#include <asm/mtrr.h>
29#include <asm/msr.h>
30
31struct task_struct *voyager_thread;
32static __u8 set_timeout;
33
34static int execute(const char *string)
35{
36 int ret;
37
38 char *envp[] = {
39 "HOME=/",
40 "TERM=linux",
41 "PATH=/sbin:/usr/sbin:/bin:/usr/bin",
42 NULL,
43 };
44 char *argv[] = {
45 "/bin/bash",
46 "-c",
47 (char *)string,
48 NULL,
49 };
50
51 if ((ret =
52 call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC)) != 0) {
53 printk(KERN_ERR "Voyager failed to run \"%s\": %i\n", string,
54 ret);
55 }
56 return ret;
57}
58
59static void check_from_kernel(void)
60{
61 if (voyager_status.switch_off) {
62
63 /* FIXME: This should be configurable via proc */
64 execute("umask 600; echo 0 > /etc/initrunlvl; kill -HUP 1");
65 } else if (voyager_status.power_fail) {
66 VDEBUG(("Voyager daemon detected AC power failure\n"));
67
68 /* FIXME: This should be configureable via proc */
69 execute("umask 600; echo F > /etc/powerstatus; kill -PWR 1");
70 set_timeout = 1;
71 }
72}
73
74static void check_continuing_condition(void)
75{
76 if (voyager_status.power_fail) {
77 __u8 data;
78 voyager_cat_psi(VOYAGER_PSI_SUBREAD,
79 VOYAGER_PSI_AC_FAIL_REG, &data);
80 if ((data & 0x1f) == 0) {
81 /* all power restored */
82 printk(KERN_NOTICE
83 "VOYAGER AC power restored, cancelling shutdown\n");
84 /* FIXME: should be user configureable */
85 execute
86 ("umask 600; echo O > /etc/powerstatus; kill -PWR 1");
87 set_timeout = 0;
88 }
89 }
90}
91
92static int thread(void *unused)
93{
94 printk(KERN_NOTICE "Voyager starting monitor thread\n");
95
96 for (;;) {
97 set_current_state(TASK_INTERRUPTIBLE);
98 schedule_timeout(set_timeout ? HZ : MAX_SCHEDULE_TIMEOUT);
99
100 VDEBUG(("Voyager Daemon awoken\n"));
101 if (voyager_status.request_from_kernel == 0) {
102 /* probably awoken from timeout */
103 check_continuing_condition();
104 } else {
105 check_from_kernel();
106 voyager_status.request_from_kernel = 0;
107 }
108 }
109}
110
111static int __init voyager_thread_start(void)
112{
113 voyager_thread = kthread_run(thread, NULL, "kvoyagerd");
114 if (IS_ERR(voyager_thread)) {
115 printk(KERN_ERR
116 "Voyager: Failed to create system monitor thread.\n");
117 return PTR_ERR(voyager_thread);
118 }
119 return 0;
120}
121
122static void __exit voyager_thread_stop(void)
123{
124 kthread_stop(voyager_thread);
125}
126
127module_init(voyager_thread_start);
128module_exit(voyager_thread_stop);
diff --git a/arch/x86/math-emu/fpu_aux.c b/arch/x86/math-emu/fpu_aux.c
index 491e737ce547..aa0987088774 100644
--- a/arch/x86/math-emu/fpu_aux.c
+++ b/arch/x86/math-emu/fpu_aux.c
@@ -30,20 +30,29 @@ static void fclex(void)
30} 30}
31 31
32/* Needs to be externally visible */ 32/* Needs to be externally visible */
33void finit(void) 33void finit_task(struct task_struct *tsk)
34{ 34{
35 control_word = 0x037f; 35 struct i387_soft_struct *soft = &tsk->thread.xstate->soft;
36 partial_status = 0; 36 struct address *oaddr, *iaddr;
37 top = 0; /* We don't keep top in the status word internally. */ 37 soft->cwd = 0x037f;
38 fpu_tag_word = 0xffff; 38 soft->swd = 0;
39 soft->ftop = 0; /* We don't keep top in the status word internally. */
40 soft->twd = 0xffff;
39 /* The behaviour is different from that detailed in 41 /* The behaviour is different from that detailed in
40 Section 15.1.6 of the Intel manual */ 42 Section 15.1.6 of the Intel manual */
41 operand_address.offset = 0; 43 oaddr = (struct address *)&soft->foo;
42 operand_address.selector = 0; 44 oaddr->offset = 0;
43 instruction_address.offset = 0; 45 oaddr->selector = 0;
44 instruction_address.selector = 0; 46 iaddr = (struct address *)&soft->fip;
45 instruction_address.opcode = 0; 47 iaddr->offset = 0;
46 no_ip_update = 1; 48 iaddr->selector = 0;
49 iaddr->opcode = 0;
50 soft->no_update = 1;
51}
52
53void finit(void)
54{
55 finit_task(current);
47} 56}
48 57
49/* 58/*
diff --git a/arch/x86/math-emu/fpu_entry.c b/arch/x86/math-emu/fpu_entry.c
index c7b06feb139b..5d87f586f8d7 100644
--- a/arch/x86/math-emu/fpu_entry.c
+++ b/arch/x86/math-emu/fpu_entry.c
@@ -131,7 +131,7 @@ u_char emulating = 0;
131static int valid_prefix(u_char *Byte, u_char __user ** fpu_eip, 131static int valid_prefix(u_char *Byte, u_char __user ** fpu_eip,
132 overrides * override); 132 overrides * override);
133 133
134asmlinkage void math_emulate(long arg) 134void math_emulate(struct math_emu_info *info)
135{ 135{
136 u_char FPU_modrm, byte1; 136 u_char FPU_modrm, byte1;
137 unsigned short code; 137 unsigned short code;
@@ -161,7 +161,7 @@ asmlinkage void math_emulate(long arg)
161 RE_ENTRANT_CHECK_ON; 161 RE_ENTRANT_CHECK_ON;
162#endif /* RE_ENTRANT_CHECKING */ 162#endif /* RE_ENTRANT_CHECKING */
163 163
164 SETUP_DATA_AREA(arg); 164 FPU_info = info;
165 165
166 FPU_ORIG_EIP = FPU_EIP; 166 FPU_ORIG_EIP = FPU_EIP;
167 167
@@ -659,7 +659,7 @@ static int valid_prefix(u_char *Byte, u_char __user **fpu_eip,
659 } 659 }
660} 660}
661 661
662void math_abort(struct info *info, unsigned int signal) 662void math_abort(struct math_emu_info *info, unsigned int signal)
663{ 663{
664 FPU_EIP = FPU_ORIG_EIP; 664 FPU_EIP = FPU_ORIG_EIP;
665 current->thread.trap_no = 16; 665 current->thread.trap_no = 16;
diff --git a/arch/x86/math-emu/fpu_proto.h b/arch/x86/math-emu/fpu_proto.h
index aa49b6a0d850..9779df436b7d 100644
--- a/arch/x86/math-emu/fpu_proto.h
+++ b/arch/x86/math-emu/fpu_proto.h
@@ -51,8 +51,8 @@ extern void ffreep(void);
51extern void fst_i_(void); 51extern void fst_i_(void);
52extern void fstp_i(void); 52extern void fstp_i(void);
53/* fpu_entry.c */ 53/* fpu_entry.c */
54asmlinkage extern void math_emulate(long arg); 54extern void math_emulate(struct math_emu_info *info);
55extern void math_abort(struct info *info, unsigned int signal); 55extern void math_abort(struct math_emu_info *info, unsigned int signal);
56/* fpu_etc.c */ 56/* fpu_etc.c */
57extern void FPU_etc(void); 57extern void FPU_etc(void);
58/* fpu_tags.c */ 58/* fpu_tags.c */
diff --git a/arch/x86/math-emu/fpu_system.h b/arch/x86/math-emu/fpu_system.h
index 13488fa153e0..50fa0ec2c8a5 100644
--- a/arch/x86/math-emu/fpu_system.h
+++ b/arch/x86/math-emu/fpu_system.h
@@ -16,10 +16,6 @@
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/mm.h> 17#include <linux/mm.h>
18 18
19/* This sets the pointer FPU_info to point to the argument part
20 of the stack frame of math_emulate() */
21#define SETUP_DATA_AREA(arg) FPU_info = (struct info *) &arg
22
23/* s is always from a cpu register, and the cpu does bounds checking 19/* s is always from a cpu register, and the cpu does bounds checking
24 * during register load --> no further bounds checks needed */ 20 * during register load --> no further bounds checks needed */
25#define LDT_DESCRIPTOR(s) (((struct desc_struct *)current->mm->context.ldt)[(s) >> 3]) 21#define LDT_DESCRIPTOR(s) (((struct desc_struct *)current->mm->context.ldt)[(s) >> 3])
@@ -38,12 +34,12 @@
38#define I387 (current->thread.xstate) 34#define I387 (current->thread.xstate)
39#define FPU_info (I387->soft.info) 35#define FPU_info (I387->soft.info)
40 36
41#define FPU_CS (*(unsigned short *) &(FPU_info->___cs)) 37#define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs))
42#define FPU_SS (*(unsigned short *) &(FPU_info->___ss)) 38#define FPU_SS (*(unsigned short *) &(FPU_info->regs->ss))
43#define FPU_DS (*(unsigned short *) &(FPU_info->___ds)) 39#define FPU_DS (*(unsigned short *) &(FPU_info->regs->ds))
44#define FPU_EAX (FPU_info->___eax) 40#define FPU_EAX (FPU_info->regs->ax)
45#define FPU_EFLAGS (FPU_info->___eflags) 41#define FPU_EFLAGS (FPU_info->regs->flags)
46#define FPU_EIP (FPU_info->___eip) 42#define FPU_EIP (FPU_info->regs->ip)
47#define FPU_ORIG_EIP (FPU_info->___orig_eip) 43#define FPU_ORIG_EIP (FPU_info->___orig_eip)
48 44
49#define FPU_lookahead (I387->soft.lookahead) 45#define FPU_lookahead (I387->soft.lookahead)
diff --git a/arch/x86/math-emu/get_address.c b/arch/x86/math-emu/get_address.c
index d701e2b39e44..6ef5e99380f9 100644
--- a/arch/x86/math-emu/get_address.c
+++ b/arch/x86/math-emu/get_address.c
@@ -29,46 +29,43 @@
29#define FPU_WRITE_BIT 0x10 29#define FPU_WRITE_BIT 0x10
30 30
31static int reg_offset[] = { 31static int reg_offset[] = {
32 offsetof(struct info, ___eax), 32 offsetof(struct pt_regs, ax),
33 offsetof(struct info, ___ecx), 33 offsetof(struct pt_regs, cx),
34 offsetof(struct info, ___edx), 34 offsetof(struct pt_regs, dx),
35 offsetof(struct info, ___ebx), 35 offsetof(struct pt_regs, bx),
36 offsetof(struct info, ___esp), 36 offsetof(struct pt_regs, sp),
37 offsetof(struct info, ___ebp), 37 offsetof(struct pt_regs, bp),
38 offsetof(struct info, ___esi), 38 offsetof(struct pt_regs, si),
39 offsetof(struct info, ___edi) 39 offsetof(struct pt_regs, di)
40}; 40};
41 41
42#define REG_(x) (*(long *)(reg_offset[(x)]+(u_char *) FPU_info)) 42#define REG_(x) (*(long *)(reg_offset[(x)] + (u_char *)FPU_info->regs))
43 43
44static int reg_offset_vm86[] = { 44static int reg_offset_vm86[] = {
45 offsetof(struct info, ___cs), 45 offsetof(struct pt_regs, cs),
46 offsetof(struct info, ___vm86_ds), 46 offsetof(struct kernel_vm86_regs, ds),
47 offsetof(struct info, ___vm86_es), 47 offsetof(struct kernel_vm86_regs, es),
48 offsetof(struct info, ___vm86_fs), 48 offsetof(struct kernel_vm86_regs, fs),
49 offsetof(struct info, ___vm86_gs), 49 offsetof(struct kernel_vm86_regs, gs),
50 offsetof(struct info, ___ss), 50 offsetof(struct pt_regs, ss),
51 offsetof(struct info, ___vm86_ds) 51 offsetof(struct kernel_vm86_regs, ds)
52}; 52};
53 53
54#define VM86_REG_(x) (*(unsigned short *) \ 54#define VM86_REG_(x) (*(unsigned short *) \
55 (reg_offset_vm86[((unsigned)x)]+(u_char *) FPU_info)) 55 (reg_offset_vm86[((unsigned)x)] + (u_char *)FPU_info->regs))
56
57/* This dummy, gs is not saved on the stack. */
58#define ___GS ___ds
59 56
60static int reg_offset_pm[] = { 57static int reg_offset_pm[] = {
61 offsetof(struct info, ___cs), 58 offsetof(struct pt_regs, cs),
62 offsetof(struct info, ___ds), 59 offsetof(struct pt_regs, ds),
63 offsetof(struct info, ___es), 60 offsetof(struct pt_regs, es),
64 offsetof(struct info, ___fs), 61 offsetof(struct pt_regs, fs),
65 offsetof(struct info, ___GS), 62 offsetof(struct pt_regs, ds), /* dummy, not saved on stack */
66 offsetof(struct info, ___ss), 63 offsetof(struct pt_regs, ss),
67 offsetof(struct info, ___ds) 64 offsetof(struct pt_regs, ds)
68}; 65};
69 66
70#define PM_REG_(x) (*(unsigned short *) \ 67#define PM_REG_(x) (*(unsigned short *) \
71 (reg_offset_pm[((unsigned)x)]+(u_char *) FPU_info)) 68 (reg_offset_pm[((unsigned)x)] + (u_char *)FPU_info->regs))
72 69
73/* Decode the SIB byte. This function assumes mod != 0 */ 70/* Decode the SIB byte. This function assumes mod != 0 */
74static int sib(int mod, unsigned long *fpu_eip) 71static int sib(int mod, unsigned long *fpu_eip)
@@ -153,11 +150,9 @@ static long pm_address(u_char FPU_modrm, u_char segment,
153#endif /* PARANOID */ 150#endif /* PARANOID */
154 151
155 switch (segment) { 152 switch (segment) {
156 /* gs isn't used by the kernel, so it still has its
157 user-space value. */
158 case PREFIX_GS_ - 1: 153 case PREFIX_GS_ - 1:
159 /* N.B. - movl %seg, mem is a 2 byte write regardless of prefix */ 154 /* user gs handling can be lazy, use special accessors */
160 savesegment(gs, addr->selector); 155 addr->selector = get_user_gs(FPU_info->regs);
161 break; 156 break;
162 default: 157 default:
163 addr->selector = PM_REG_(segment); 158 addr->selector = PM_REG_(segment);
@@ -349,34 +344,34 @@ void __user *FPU_get_address_16(u_char FPU_modrm, unsigned long *fpu_eip,
349 } 344 }
350 switch (rm) { 345 switch (rm) {
351 case 0: 346 case 0:
352 address += FPU_info->___ebx + FPU_info->___esi; 347 address += FPU_info->regs->bx + FPU_info->regs->si;
353 break; 348 break;
354 case 1: 349 case 1:
355 address += FPU_info->___ebx + FPU_info->___edi; 350 address += FPU_info->regs->bx + FPU_info->regs->di;
356 break; 351 break;
357 case 2: 352 case 2:
358 address += FPU_info->___ebp + FPU_info->___esi; 353 address += FPU_info->regs->bp + FPU_info->regs->si;
359 if (addr_modes.override.segment == PREFIX_DEFAULT) 354 if (addr_modes.override.segment == PREFIX_DEFAULT)
360 addr_modes.override.segment = PREFIX_SS_; 355 addr_modes.override.segment = PREFIX_SS_;
361 break; 356 break;
362 case 3: 357 case 3:
363 address += FPU_info->___ebp + FPU_info->___edi; 358 address += FPU_info->regs->bp + FPU_info->regs->di;
364 if (addr_modes.override.segment == PREFIX_DEFAULT) 359 if (addr_modes.override.segment == PREFIX_DEFAULT)
365 addr_modes.override.segment = PREFIX_SS_; 360 addr_modes.override.segment = PREFIX_SS_;
366 break; 361 break;
367 case 4: 362 case 4:
368 address += FPU_info->___esi; 363 address += FPU_info->regs->si;
369 break; 364 break;
370 case 5: 365 case 5:
371 address += FPU_info->___edi; 366 address += FPU_info->regs->di;
372 break; 367 break;
373 case 6: 368 case 6:
374 address += FPU_info->___ebp; 369 address += FPU_info->regs->bp;
375 if (addr_modes.override.segment == PREFIX_DEFAULT) 370 if (addr_modes.override.segment == PREFIX_DEFAULT)
376 addr_modes.override.segment = PREFIX_SS_; 371 addr_modes.override.segment = PREFIX_SS_;
377 break; 372 break;
378 case 7: 373 case 7:
379 address += FPU_info->___ebx; 374 address += FPU_info->regs->bx;
380 break; 375 break;
381 } 376 }
382 377
diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
index d8cc96a2738f..08537747cb58 100644
--- a/arch/x86/mm/Makefile
+++ b/arch/x86/mm/Makefile
@@ -1,6 +1,8 @@
1obj-y := init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \ 1obj-y := init.o init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \
2 pat.o pgtable.o gup.o 2 pat.o pgtable.o gup.o
3 3
4obj-$(CONFIG_SMP) += tlb.o
5
4obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o 6obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o
5 7
6obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o 8obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
index 7e8db53528a7..61b41ca3b5a2 100644
--- a/arch/x86/mm/extable.c
+++ b/arch/x86/mm/extable.c
@@ -23,6 +23,12 @@ int fixup_exception(struct pt_regs *regs)
23 23
24 fixup = search_exception_tables(regs->ip); 24 fixup = search_exception_tables(regs->ip);
25 if (fixup) { 25 if (fixup) {
26 /* If fixup is less than 16, it means uaccess error */
27 if (fixup->fixup < 16) {
28 current_thread_info()->uaccess_err = -EFAULT;
29 regs->ip += fixup->fixup;
30 return 1;
31 }
26 regs->ip = fixup->fixup; 32 regs->ip = fixup->fixup;
27 return 1; 33 return 1;
28 } 34 }
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 90dfae511a41..a03b7279efa0 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1,73 +1,79 @@
1/* 1/*
2 * Copyright (C) 1995 Linus Torvalds 2 * Copyright (C) 1995 Linus Torvalds
3 * Copyright (C) 2001,2002 Andi Kleen, SuSE Labs. 3 * Copyright (C) 2001, 2002 Andi Kleen, SuSE Labs.
4 * Copyright (C) 2008-2009, Red Hat Inc., Ingo Molnar
4 */ 5 */
5
6#include <linux/signal.h>
7#include <linux/sched.h>
8#include <linux/kernel.h>
9#include <linux/errno.h>
10#include <linux/string.h>
11#include <linux/types.h>
12#include <linux/ptrace.h>
13#include <linux/mmiotrace.h>
14#include <linux/mman.h>
15#include <linux/mm.h>
16#include <linux/smp.h>
17#include <linux/interrupt.h> 6#include <linux/interrupt.h>
18#include <linux/init.h> 7#include <linux/mmiotrace.h>
19#include <linux/tty.h> 8#include <linux/bootmem.h>
20#include <linux/vt_kern.h> /* For unblank_screen() */
21#include <linux/compiler.h> 9#include <linux/compiler.h>
22#include <linux/highmem.h> 10#include <linux/highmem.h>
23#include <linux/bootmem.h> /* for max_low_pfn */
24#include <linux/vmalloc.h>
25#include <linux/module.h>
26#include <linux/kprobes.h> 11#include <linux/kprobes.h>
27#include <linux/uaccess.h> 12#include <linux/uaccess.h>
13#include <linux/vmalloc.h>
14#include <linux/vt_kern.h>
15#include <linux/signal.h>
16#include <linux/kernel.h>
17#include <linux/ptrace.h>
18#include <linux/string.h>
19#include <linux/module.h>
28#include <linux/kdebug.h> 20#include <linux/kdebug.h>
21#include <linux/errno.h>
22#include <linux/magic.h>
23#include <linux/sched.h>
24#include <linux/types.h>
25#include <linux/init.h>
26#include <linux/mman.h>
27#include <linux/tty.h>
28#include <linux/smp.h>
29#include <linux/mm.h>
30
31#include <asm-generic/sections.h>
29 32
30#include <asm/system.h>
31#include <asm/desc.h>
32#include <asm/segment.h>
33#include <asm/pgalloc.h>
34#include <asm/smp.h>
35#include <asm/tlbflush.h> 33#include <asm/tlbflush.h>
34#include <asm/pgalloc.h>
35#include <asm/segment.h>
36#include <asm/system.h>
36#include <asm/proto.h> 37#include <asm/proto.h>
37#include <asm-generic/sections.h>
38#include <asm/traps.h> 38#include <asm/traps.h>
39#include <asm/desc.h>
39 40
40/* 41/*
41 * Page fault error code bits 42 * Page fault error code bits:
42 * bit 0 == 0 means no page found, 1 means protection fault 43 *
43 * bit 1 == 0 means read, 1 means write 44 * bit 0 == 0: no page found 1: protection fault
44 * bit 2 == 0 means kernel, 1 means user-mode 45 * bit 1 == 0: read access 1: write access
45 * bit 3 == 1 means use of reserved bit detected 46 * bit 2 == 0: kernel-mode access 1: user-mode access
46 * bit 4 == 1 means fault was an instruction fetch 47 * bit 3 == 1: use of reserved bit detected
48 * bit 4 == 1: fault was an instruction fetch
47 */ 49 */
48#define PF_PROT (1<<0) 50enum x86_pf_error_code {
49#define PF_WRITE (1<<1) 51
50#define PF_USER (1<<2) 52 PF_PROT = 1 << 0,
51#define PF_RSVD (1<<3) 53 PF_WRITE = 1 << 1,
52#define PF_INSTR (1<<4) 54 PF_USER = 1 << 2,
55 PF_RSVD = 1 << 3,
56 PF_INSTR = 1 << 4,
57};
53 58
59/*
60 * Returns 0 if mmiotrace is disabled, or if the fault is not
61 * handled by mmiotrace:
62 */
54static inline int kmmio_fault(struct pt_regs *regs, unsigned long addr) 63static inline int kmmio_fault(struct pt_regs *regs, unsigned long addr)
55{ 64{
56#ifdef CONFIG_MMIOTRACE
57 if (unlikely(is_kmmio_active())) 65 if (unlikely(is_kmmio_active()))
58 if (kmmio_handler(regs, addr) == 1) 66 if (kmmio_handler(regs, addr) == 1)
59 return -1; 67 return -1;
60#endif
61 return 0; 68 return 0;
62} 69}
63 70
64static inline int notify_page_fault(struct pt_regs *regs) 71static inline int notify_page_fault(struct pt_regs *regs)
65{ 72{
66#ifdef CONFIG_KPROBES
67 int ret = 0; 73 int ret = 0;
68 74
69 /* kprobe_running() needs smp_processor_id() */ 75 /* kprobe_running() needs smp_processor_id() */
70 if (!user_mode_vm(regs)) { 76 if (kprobes_built_in() && !user_mode_vm(regs)) {
71 preempt_disable(); 77 preempt_disable();
72 if (kprobe_running() && kprobe_fault_handler(regs, 14)) 78 if (kprobe_running() && kprobe_fault_handler(regs, 14))
73 ret = 1; 79 ret = 1;
@@ -75,29 +81,76 @@ static inline int notify_page_fault(struct pt_regs *regs)
75 } 81 }
76 82
77 return ret; 83 return ret;
78#else
79 return 0;
80#endif
81} 84}
82 85
83/* 86/*
84 * X86_32 87 * Prefetch quirks:
85 * Sometimes AMD Athlon/Opteron CPUs report invalid exceptions on prefetch. 88 *
86 * Check that here and ignore it. 89 * 32-bit mode:
90 *
91 * Sometimes AMD Athlon/Opteron CPUs report invalid exceptions on prefetch.
92 * Check that here and ignore it.
93 *
94 * 64-bit mode:
87 * 95 *
88 * X86_64 96 * Sometimes the CPU reports invalid exceptions on prefetch.
89 * Sometimes the CPU reports invalid exceptions on prefetch. 97 * Check that here and ignore it.
90 * Check that here and ignore it.
91 * 98 *
92 * Opcode checker based on code by Richard Brunner 99 * Opcode checker based on code by Richard Brunner.
93 */ 100 */
94static int is_prefetch(struct pt_regs *regs, unsigned long addr, 101static inline int
95 unsigned long error_code) 102check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
103 unsigned char opcode, int *prefetch)
104{
105 unsigned char instr_hi = opcode & 0xf0;
106 unsigned char instr_lo = opcode & 0x0f;
107
108 switch (instr_hi) {
109 case 0x20:
110 case 0x30:
111 /*
112 * Values 0x26,0x2E,0x36,0x3E are valid x86 prefixes.
113 * In X86_64 long mode, the CPU will signal invalid
114 * opcode if some of these prefixes are present so
115 * X86_64 will never get here anyway
116 */
117 return ((instr_lo & 7) == 0x6);
118#ifdef CONFIG_X86_64
119 case 0x40:
120 /*
121 * In AMD64 long mode 0x40..0x4F are valid REX prefixes
122 * Need to figure out under what instruction mode the
123 * instruction was issued. Could check the LDT for lm,
124 * but for now it's good enough to assume that long
125 * mode only uses well known segments or kernel.
126 */
127 return (!user_mode(regs)) || (regs->cs == __USER_CS);
128#endif
129 case 0x60:
130 /* 0x64 thru 0x67 are valid prefixes in all modes. */
131 return (instr_lo & 0xC) == 0x4;
132 case 0xF0:
133 /* 0xF0, 0xF2, 0xF3 are valid prefixes in all modes. */
134 return !instr_lo || (instr_lo>>1) == 1;
135 case 0x00:
136 /* Prefetch instruction is 0x0F0D or 0x0F18 */
137 if (probe_kernel_address(instr, opcode))
138 return 0;
139
140 *prefetch = (instr_lo == 0xF) &&
141 (opcode == 0x0D || opcode == 0x18);
142 return 0;
143 default:
144 return 0;
145 }
146}
147
148static int
149is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr)
96{ 150{
151 unsigned char *max_instr;
97 unsigned char *instr; 152 unsigned char *instr;
98 int scan_more = 1;
99 int prefetch = 0; 153 int prefetch = 0;
100 unsigned char *max_instr;
101 154
102 /* 155 /*
103 * If it was a exec (instruction fetch) fault on NX page, then 156 * If it was a exec (instruction fetch) fault on NX page, then
@@ -106,106 +159,170 @@ static int is_prefetch(struct pt_regs *regs, unsigned long addr,
106 if (error_code & PF_INSTR) 159 if (error_code & PF_INSTR)
107 return 0; 160 return 0;
108 161
109 instr = (unsigned char *)convert_ip_to_linear(current, regs); 162 instr = (void *)convert_ip_to_linear(current, regs);
110 max_instr = instr + 15; 163 max_instr = instr + 15;
111 164
112 if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE) 165 if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE)
113 return 0; 166 return 0;
114 167
115 while (scan_more && instr < max_instr) { 168 while (instr < max_instr) {
116 unsigned char opcode; 169 unsigned char opcode;
117 unsigned char instr_hi;
118 unsigned char instr_lo;
119 170
120 if (probe_kernel_address(instr, opcode)) 171 if (probe_kernel_address(instr, opcode))
121 break; 172 break;
122 173
123 instr_hi = opcode & 0xf0;
124 instr_lo = opcode & 0x0f;
125 instr++; 174 instr++;
126 175
127 switch (instr_hi) { 176 if (!check_prefetch_opcode(regs, instr, opcode, &prefetch))
128 case 0x20:
129 case 0x30:
130 /*
131 * Values 0x26,0x2E,0x36,0x3E are valid x86 prefixes.
132 * In X86_64 long mode, the CPU will signal invalid
133 * opcode if some of these prefixes are present so
134 * X86_64 will never get here anyway
135 */
136 scan_more = ((instr_lo & 7) == 0x6);
137 break; 177 break;
138#ifdef CONFIG_X86_64
139 case 0x40:
140 /*
141 * In AMD64 long mode 0x40..0x4F are valid REX prefixes
142 * Need to figure out under what instruction mode the
143 * instruction was issued. Could check the LDT for lm,
144 * but for now it's good enough to assume that long
145 * mode only uses well known segments or kernel.
146 */
147 scan_more = (!user_mode(regs)) || (regs->cs == __USER_CS);
148 break;
149#endif
150 case 0x60:
151 /* 0x64 thru 0x67 are valid prefixes in all modes. */
152 scan_more = (instr_lo & 0xC) == 0x4;
153 break;
154 case 0xF0:
155 /* 0xF0, 0xF2, 0xF3 are valid prefixes in all modes. */
156 scan_more = !instr_lo || (instr_lo>>1) == 1;
157 break;
158 case 0x00:
159 /* Prefetch instruction is 0x0F0D or 0x0F18 */
160 scan_more = 0;
161
162 if (probe_kernel_address(instr, opcode))
163 break;
164 prefetch = (instr_lo == 0xF) &&
165 (opcode == 0x0D || opcode == 0x18);
166 break;
167 default:
168 scan_more = 0;
169 break;
170 }
171 } 178 }
172 return prefetch; 179 return prefetch;
173} 180}
174 181
175static void force_sig_info_fault(int si_signo, int si_code, 182static void
176 unsigned long address, struct task_struct *tsk) 183force_sig_info_fault(int si_signo, int si_code, unsigned long address,
184 struct task_struct *tsk)
177{ 185{
178 siginfo_t info; 186 siginfo_t info;
179 187
180 info.si_signo = si_signo; 188 info.si_signo = si_signo;
181 info.si_errno = 0; 189 info.si_errno = 0;
182 info.si_code = si_code; 190 info.si_code = si_code;
183 info.si_addr = (void __user *)address; 191 info.si_addr = (void __user *)address;
192
184 force_sig_info(si_signo, &info, tsk); 193 force_sig_info(si_signo, &info, tsk);
185} 194}
186 195
187#ifdef CONFIG_X86_64 196DEFINE_SPINLOCK(pgd_lock);
188static int bad_address(void *p) 197LIST_HEAD(pgd_list);
198
199#ifdef CONFIG_X86_32
200static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)
189{ 201{
190 unsigned long dummy; 202 unsigned index = pgd_index(address);
191 return probe_kernel_address((unsigned long *)p, dummy); 203 pgd_t *pgd_k;
204 pud_t *pud, *pud_k;
205 pmd_t *pmd, *pmd_k;
206
207 pgd += index;
208 pgd_k = init_mm.pgd + index;
209
210 if (!pgd_present(*pgd_k))
211 return NULL;
212
213 /*
214 * set_pgd(pgd, *pgd_k); here would be useless on PAE
215 * and redundant with the set_pmd() on non-PAE. As would
216 * set_pud.
217 */
218 pud = pud_offset(pgd, address);
219 pud_k = pud_offset(pgd_k, address);
220 if (!pud_present(*pud_k))
221 return NULL;
222
223 pmd = pmd_offset(pud, address);
224 pmd_k = pmd_offset(pud_k, address);
225 if (!pmd_present(*pmd_k))
226 return NULL;
227
228 if (!pmd_present(*pmd)) {
229 set_pmd(pmd, *pmd_k);
230 arch_flush_lazy_mmu_mode();
231 } else {
232 BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k));
233 }
234
235 return pmd_k;
236}
237
238void vmalloc_sync_all(void)
239{
240 unsigned long address;
241
242 if (SHARED_KERNEL_PMD)
243 return;
244
245 for (address = VMALLOC_START & PMD_MASK;
246 address >= TASK_SIZE && address < FIXADDR_TOP;
247 address += PMD_SIZE) {
248
249 unsigned long flags;
250 struct page *page;
251
252 spin_lock_irqsave(&pgd_lock, flags);
253 list_for_each_entry(page, &pgd_list, lru) {
254 if (!vmalloc_sync_one(page_address(page), address))
255 break;
256 }
257 spin_unlock_irqrestore(&pgd_lock, flags);
258 }
259}
260
261/*
262 * 32-bit:
263 *
264 * Handle a fault on the vmalloc or module mapping area
265 */
266static noinline int vmalloc_fault(unsigned long address)
267{
268 unsigned long pgd_paddr;
269 pmd_t *pmd_k;
270 pte_t *pte_k;
271
272 /* Make sure we are in vmalloc area: */
273 if (!(address >= VMALLOC_START && address < VMALLOC_END))
274 return -1;
275
276 /*
277 * Synchronize this task's top level page-table
278 * with the 'reference' page table.
279 *
280 * Do _not_ use "current" here. We might be inside
281 * an interrupt in the middle of a task switch..
282 */
283 pgd_paddr = read_cr3();
284 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
285 if (!pmd_k)
286 return -1;
287
288 pte_k = pte_offset_kernel(pmd_k, address);
289 if (!pte_present(*pte_k))
290 return -1;
291
292 return 0;
293}
294
295/*
296 * Did it hit the DOS screen memory VA from vm86 mode?
297 */
298static inline void
299check_v8086_mode(struct pt_regs *regs, unsigned long address,
300 struct task_struct *tsk)
301{
302 unsigned long bit;
303
304 if (!v8086_mode(regs))
305 return;
306
307 bit = (address - 0xA0000) >> PAGE_SHIFT;
308 if (bit < 32)
309 tsk->thread.screen_bitmap |= 1 << bit;
192} 310}
193#endif
194 311
195static void dump_pagetable(unsigned long address) 312static void dump_pagetable(unsigned long address)
196{ 313{
197#ifdef CONFIG_X86_32
198 __typeof__(pte_val(__pte(0))) page; 314 __typeof__(pte_val(__pte(0))) page;
199 315
200 page = read_cr3(); 316 page = read_cr3();
201 page = ((__typeof__(page) *) __va(page))[address >> PGDIR_SHIFT]; 317 page = ((__typeof__(page) *) __va(page))[address >> PGDIR_SHIFT];
318
202#ifdef CONFIG_X86_PAE 319#ifdef CONFIG_X86_PAE
203 printk("*pdpt = %016Lx ", page); 320 printk("*pdpt = %016Lx ", page);
204 if ((page >> PAGE_SHIFT) < max_low_pfn 321 if ((page >> PAGE_SHIFT) < max_low_pfn
205 && page & _PAGE_PRESENT) { 322 && page & _PAGE_PRESENT) {
206 page &= PAGE_MASK; 323 page &= PAGE_MASK;
207 page = ((__typeof__(page) *) __va(page))[(address >> PMD_SHIFT) 324 page = ((__typeof__(page) *) __va(page))[(address >> PMD_SHIFT)
208 & (PTRS_PER_PMD - 1)]; 325 & (PTRS_PER_PMD - 1)];
209 printk(KERN_CONT "*pde = %016Lx ", page); 326 printk(KERN_CONT "*pde = %016Lx ", page);
210 page &= ~_PAGE_NX; 327 page &= ~_PAGE_NX;
211 } 328 }
@@ -217,19 +334,145 @@ static void dump_pagetable(unsigned long address)
217 * We must not directly access the pte in the highpte 334 * We must not directly access the pte in the highpte
218 * case if the page table is located in highmem. 335 * case if the page table is located in highmem.
219 * And let's rather not kmap-atomic the pte, just in case 336 * And let's rather not kmap-atomic the pte, just in case
220 * it's allocated already. 337 * it's allocated already:
221 */ 338 */
222 if ((page >> PAGE_SHIFT) < max_low_pfn 339 if ((page >> PAGE_SHIFT) < max_low_pfn
223 && (page & _PAGE_PRESENT) 340 && (page & _PAGE_PRESENT)
224 && !(page & _PAGE_PSE)) { 341 && !(page & _PAGE_PSE)) {
342
225 page &= PAGE_MASK; 343 page &= PAGE_MASK;
226 page = ((__typeof__(page) *) __va(page))[(address >> PAGE_SHIFT) 344 page = ((__typeof__(page) *) __va(page))[(address >> PAGE_SHIFT)
227 & (PTRS_PER_PTE - 1)]; 345 & (PTRS_PER_PTE - 1)];
228 printk("*pte = %0*Lx ", sizeof(page)*2, (u64)page); 346 printk("*pte = %0*Lx ", sizeof(page)*2, (u64)page);
229 } 347 }
230 348
231 printk("\n"); 349 printk("\n");
232#else /* CONFIG_X86_64 */ 350}
351
352#else /* CONFIG_X86_64: */
353
354void vmalloc_sync_all(void)
355{
356 unsigned long address;
357
358 for (address = VMALLOC_START & PGDIR_MASK; address <= VMALLOC_END;
359 address += PGDIR_SIZE) {
360
361 const pgd_t *pgd_ref = pgd_offset_k(address);
362 unsigned long flags;
363 struct page *page;
364
365 if (pgd_none(*pgd_ref))
366 continue;
367
368 spin_lock_irqsave(&pgd_lock, flags);
369 list_for_each_entry(page, &pgd_list, lru) {
370 pgd_t *pgd;
371 pgd = (pgd_t *)page_address(page) + pgd_index(address);
372 if (pgd_none(*pgd))
373 set_pgd(pgd, *pgd_ref);
374 else
375 BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
376 }
377 spin_unlock_irqrestore(&pgd_lock, flags);
378 }
379}
380
381/*
382 * 64-bit:
383 *
384 * Handle a fault on the vmalloc area
385 *
386 * This assumes no large pages in there.
387 */
388static noinline int vmalloc_fault(unsigned long address)
389{
390 pgd_t *pgd, *pgd_ref;
391 pud_t *pud, *pud_ref;
392 pmd_t *pmd, *pmd_ref;
393 pte_t *pte, *pte_ref;
394
395 /* Make sure we are in vmalloc area: */
396 if (!(address >= VMALLOC_START && address < VMALLOC_END))
397 return -1;
398
399 /*
400 * Copy kernel mappings over when needed. This can also
401 * happen within a race in page table update. In the later
402 * case just flush:
403 */
404 pgd = pgd_offset(current->active_mm, address);
405 pgd_ref = pgd_offset_k(address);
406 if (pgd_none(*pgd_ref))
407 return -1;
408
409 if (pgd_none(*pgd))
410 set_pgd(pgd, *pgd_ref);
411 else
412 BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
413
414 /*
415 * Below here mismatches are bugs because these lower tables
416 * are shared:
417 */
418
419 pud = pud_offset(pgd, address);
420 pud_ref = pud_offset(pgd_ref, address);
421 if (pud_none(*pud_ref))
422 return -1;
423
424 if (pud_none(*pud) || pud_page_vaddr(*pud) != pud_page_vaddr(*pud_ref))
425 BUG();
426
427 pmd = pmd_offset(pud, address);
428 pmd_ref = pmd_offset(pud_ref, address);
429 if (pmd_none(*pmd_ref))
430 return -1;
431
432 if (pmd_none(*pmd) || pmd_page(*pmd) != pmd_page(*pmd_ref))
433 BUG();
434
435 pte_ref = pte_offset_kernel(pmd_ref, address);
436 if (!pte_present(*pte_ref))
437 return -1;
438
439 pte = pte_offset_kernel(pmd, address);
440
441 /*
442 * Don't use pte_page here, because the mappings can point
443 * outside mem_map, and the NUMA hash lookup cannot handle
444 * that:
445 */
446 if (!pte_present(*pte) || pte_pfn(*pte) != pte_pfn(*pte_ref))
447 BUG();
448
449 return 0;
450}
451
452static const char errata93_warning[] =
453KERN_ERR "******* Your BIOS seems to not contain a fix for K8 errata #93\n"
454KERN_ERR "******* Working around it, but it may cause SEGVs or burn power.\n"
455KERN_ERR "******* Please consider a BIOS update.\n"
456KERN_ERR "******* Disabling USB legacy in the BIOS may also help.\n";
457
458/*
459 * No vm86 mode in 64-bit mode:
460 */
461static inline void
462check_v8086_mode(struct pt_regs *regs, unsigned long address,
463 struct task_struct *tsk)
464{
465}
466
467static int bad_address(void *p)
468{
469 unsigned long dummy;
470
471 return probe_kernel_address((unsigned long *)p, dummy);
472}
473
474static void dump_pagetable(unsigned long address)
475{
233 pgd_t *pgd; 476 pgd_t *pgd;
234 pud_t *pud; 477 pud_t *pud;
235 pmd_t *pmd; 478 pmd_t *pmd;
@@ -238,102 +481,77 @@ static void dump_pagetable(unsigned long address)
238 pgd = (pgd_t *)read_cr3(); 481 pgd = (pgd_t *)read_cr3();
239 482
240 pgd = __va((unsigned long)pgd & PHYSICAL_PAGE_MASK); 483 pgd = __va((unsigned long)pgd & PHYSICAL_PAGE_MASK);
484
241 pgd += pgd_index(address); 485 pgd += pgd_index(address);
242 if (bad_address(pgd)) goto bad; 486 if (bad_address(pgd))
487 goto bad;
488
243 printk("PGD %lx ", pgd_val(*pgd)); 489 printk("PGD %lx ", pgd_val(*pgd));
244 if (!pgd_present(*pgd)) goto ret; 490
491 if (!pgd_present(*pgd))
492 goto out;
245 493
246 pud = pud_offset(pgd, address); 494 pud = pud_offset(pgd, address);
247 if (bad_address(pud)) goto bad; 495 if (bad_address(pud))
496 goto bad;
497
248 printk("PUD %lx ", pud_val(*pud)); 498 printk("PUD %lx ", pud_val(*pud));
249 if (!pud_present(*pud) || pud_large(*pud)) 499 if (!pud_present(*pud) || pud_large(*pud))
250 goto ret; 500 goto out;
251 501
252 pmd = pmd_offset(pud, address); 502 pmd = pmd_offset(pud, address);
253 if (bad_address(pmd)) goto bad; 503 if (bad_address(pmd))
504 goto bad;
505
254 printk("PMD %lx ", pmd_val(*pmd)); 506 printk("PMD %lx ", pmd_val(*pmd));
255 if (!pmd_present(*pmd) || pmd_large(*pmd)) goto ret; 507 if (!pmd_present(*pmd) || pmd_large(*pmd))
508 goto out;
256 509
257 pte = pte_offset_kernel(pmd, address); 510 pte = pte_offset_kernel(pmd, address);
258 if (bad_address(pte)) goto bad; 511 if (bad_address(pte))
512 goto bad;
513
259 printk("PTE %lx", pte_val(*pte)); 514 printk("PTE %lx", pte_val(*pte));
260ret: 515out:
261 printk("\n"); 516 printk("\n");
262 return; 517 return;
263bad: 518bad:
264 printk("BAD\n"); 519 printk("BAD\n");
265#endif
266} 520}
267 521
268#ifdef CONFIG_X86_32 522#endif /* CONFIG_X86_64 */
269static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)
270{
271 unsigned index = pgd_index(address);
272 pgd_t *pgd_k;
273 pud_t *pud, *pud_k;
274 pmd_t *pmd, *pmd_k;
275
276 pgd += index;
277 pgd_k = init_mm.pgd + index;
278 523
279 if (!pgd_present(*pgd_k)) 524/*
280 return NULL; 525 * Workaround for K8 erratum #93 & buggy BIOS.
281 526 *
282 /* 527 * BIOS SMM functions are required to use a specific workaround
283 * set_pgd(pgd, *pgd_k); here would be useless on PAE 528 * to avoid corruption of the 64bit RIP register on C stepping K8.
284 * and redundant with the set_pmd() on non-PAE. As would 529 *
285 * set_pud. 530 * A lot of BIOS that didn't get tested properly miss this.
286 */ 531 *
287 532 * The OS sees this as a page fault with the upper 32bits of RIP cleared.
288 pud = pud_offset(pgd, address); 533 * Try to work around it here.
289 pud_k = pud_offset(pgd_k, address); 534 *
290 if (!pud_present(*pud_k)) 535 * Note we only handle faults in kernel here.
291 return NULL; 536 * Does nothing on 32-bit.
292
293 pmd = pmd_offset(pud, address);
294 pmd_k = pmd_offset(pud_k, address);
295 if (!pmd_present(*pmd_k))
296 return NULL;
297 if (!pmd_present(*pmd)) {
298 set_pmd(pmd, *pmd_k);
299 arch_flush_lazy_mmu_mode();
300 } else
301 BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k));
302 return pmd_k;
303}
304#endif
305
306#ifdef CONFIG_X86_64
307static const char errata93_warning[] =
308KERN_ERR "******* Your BIOS seems to not contain a fix for K8 errata #93\n"
309KERN_ERR "******* Working around it, but it may cause SEGVs or burn power.\n"
310KERN_ERR "******* Please consider a BIOS update.\n"
311KERN_ERR "******* Disabling USB legacy in the BIOS may also help.\n";
312#endif
313
314/* Workaround for K8 erratum #93 & buggy BIOS.
315 BIOS SMM functions are required to use a specific workaround
316 to avoid corruption of the 64bit RIP register on C stepping K8.
317 A lot of BIOS that didn't get tested properly miss this.
318 The OS sees this as a page fault with the upper 32bits of RIP cleared.
319 Try to work around it here.
320 Note we only handle faults in kernel here.
321 Does nothing for X86_32
322 */ 537 */
323static int is_errata93(struct pt_regs *regs, unsigned long address) 538static int is_errata93(struct pt_regs *regs, unsigned long address)
324{ 539{
325#ifdef CONFIG_X86_64 540#ifdef CONFIG_X86_64
326 static int warned; 541 static int once;
542
327 if (address != regs->ip) 543 if (address != regs->ip)
328 return 0; 544 return 0;
545
329 if ((address >> 32) != 0) 546 if ((address >> 32) != 0)
330 return 0; 547 return 0;
548
331 address |= 0xffffffffUL << 32; 549 address |= 0xffffffffUL << 32;
332 if ((address >= (u64)_stext && address <= (u64)_etext) || 550 if ((address >= (u64)_stext && address <= (u64)_etext) ||
333 (address >= MODULES_VADDR && address <= MODULES_END)) { 551 (address >= MODULES_VADDR && address <= MODULES_END)) {
334 if (!warned) { 552 if (!once) {
335 printk(errata93_warning); 553 printk(errata93_warning);
336 warned = 1; 554 once = 1;
337 } 555 }
338 regs->ip = address; 556 regs->ip = address;
339 return 1; 557 return 1;
@@ -343,16 +561,17 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
343} 561}
344 562
345/* 563/*
346 * Work around K8 erratum #100 K8 in compat mode occasionally jumps to illegal 564 * Work around K8 erratum #100 K8 in compat mode occasionally jumps
347 * addresses >4GB. We catch this in the page fault handler because these 565 * to illegal addresses >4GB.
348 * addresses are not reachable. Just detect this case and return. Any code 566 *
567 * We catch this in the page fault handler because these addresses
568 * are not reachable. Just detect this case and return. Any code
349 * segment in LDT is compatibility mode. 569 * segment in LDT is compatibility mode.
350 */ 570 */
351static int is_errata100(struct pt_regs *regs, unsigned long address) 571static int is_errata100(struct pt_regs *regs, unsigned long address)
352{ 572{
353#ifdef CONFIG_X86_64 573#ifdef CONFIG_X86_64
354 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && 574 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32))
355 (address >> 32))
356 return 1; 575 return 1;
357#endif 576#endif
358 return 0; 577 return 0;
@@ -362,8 +581,9 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
362{ 581{
363#ifdef CONFIG_X86_F00F_BUG 582#ifdef CONFIG_X86_F00F_BUG
364 unsigned long nr; 583 unsigned long nr;
584
365 /* 585 /*
366 * Pentium F0 0F C7 C8 bug workaround. 586 * Pentium F0 0F C7 C8 bug workaround:
367 */ 587 */
368 if (boot_cpu_data.f00f_bug) { 588 if (boot_cpu_data.f00f_bug) {
369 nr = (address - idt_descr.address) >> 3; 589 nr = (address - idt_descr.address) >> 3;
@@ -377,62 +597,277 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
377 return 0; 597 return 0;
378} 598}
379 599
380static void show_fault_oops(struct pt_regs *regs, unsigned long error_code, 600static const char nx_warning[] = KERN_CRIT
381 unsigned long address) 601"kernel tried to execute NX-protected page - exploit attempt? (uid: %d)\n";
602
603static void
604show_fault_oops(struct pt_regs *regs, unsigned long error_code,
605 unsigned long address)
382{ 606{
383#ifdef CONFIG_X86_32
384 if (!oops_may_print()) 607 if (!oops_may_print())
385 return; 608 return;
386#endif
387 609
388#ifdef CONFIG_X86_PAE
389 if (error_code & PF_INSTR) { 610 if (error_code & PF_INSTR) {
390 unsigned int level; 611 unsigned int level;
612
391 pte_t *pte = lookup_address(address, &level); 613 pte_t *pte = lookup_address(address, &level);
392 614
393 if (pte && pte_present(*pte) && !pte_exec(*pte)) 615 if (pte && pte_present(*pte) && !pte_exec(*pte))
394 printk(KERN_CRIT "kernel tried to execute " 616 printk(nx_warning, current_uid());
395 "NX-protected page - exploit attempt? "
396 "(uid: %d)\n", current_uid());
397 } 617 }
398#endif
399 618
400 printk(KERN_ALERT "BUG: unable to handle kernel "); 619 printk(KERN_ALERT "BUG: unable to handle kernel ");
401 if (address < PAGE_SIZE) 620 if (address < PAGE_SIZE)
402 printk(KERN_CONT "NULL pointer dereference"); 621 printk(KERN_CONT "NULL pointer dereference");
403 else 622 else
404 printk(KERN_CONT "paging request"); 623 printk(KERN_CONT "paging request");
624
405 printk(KERN_CONT " at %p\n", (void *) address); 625 printk(KERN_CONT " at %p\n", (void *) address);
406 printk(KERN_ALERT "IP:"); 626 printk(KERN_ALERT "IP:");
407 printk_address(regs->ip, 1); 627 printk_address(regs->ip, 1);
628
408 dump_pagetable(address); 629 dump_pagetable(address);
409} 630}
410 631
411#ifdef CONFIG_X86_64 632static noinline void
412static noinline void pgtable_bad(unsigned long address, struct pt_regs *regs, 633pgtable_bad(struct pt_regs *regs, unsigned long error_code,
413 unsigned long error_code) 634 unsigned long address)
414{ 635{
415 unsigned long flags = oops_begin();
416 int sig = SIGKILL;
417 struct task_struct *tsk; 636 struct task_struct *tsk;
637 unsigned long flags;
638 int sig;
639
640 flags = oops_begin();
641 tsk = current;
642 sig = SIGKILL;
418 643
419 printk(KERN_ALERT "%s: Corrupted page table at address %lx\n", 644 printk(KERN_ALERT "%s: Corrupted page table at address %lx\n",
420 current->comm, address); 645 tsk->comm, address);
421 dump_pagetable(address); 646 dump_pagetable(address);
422 tsk = current; 647
423 tsk->thread.cr2 = address; 648 tsk->thread.cr2 = address;
424 tsk->thread.trap_no = 14; 649 tsk->thread.trap_no = 14;
425 tsk->thread.error_code = error_code; 650 tsk->thread.error_code = error_code;
651
426 if (__die("Bad pagetable", regs, error_code)) 652 if (__die("Bad pagetable", regs, error_code))
427 sig = 0; 653 sig = 0;
654
428 oops_end(flags, regs, sig); 655 oops_end(flags, regs, sig);
429} 656}
430#endif 657
658static noinline void
659no_context(struct pt_regs *regs, unsigned long error_code,
660 unsigned long address)
661{
662 struct task_struct *tsk = current;
663 unsigned long *stackend;
664 unsigned long flags;
665 int sig;
666
667 /* Are we prepared to handle this kernel fault? */
668 if (fixup_exception(regs))
669 return;
670
671 /*
672 * 32-bit:
673 *
674 * Valid to do another page fault here, because if this fault
675 * had been triggered by is_prefetch fixup_exception would have
676 * handled it.
677 *
678 * 64-bit:
679 *
680 * Hall of shame of CPU/BIOS bugs.
681 */
682 if (is_prefetch(regs, error_code, address))
683 return;
684
685 if (is_errata93(regs, address))
686 return;
687
688 /*
689 * Oops. The kernel tried to access some bad page. We'll have to
690 * terminate things with extreme prejudice:
691 */
692 flags = oops_begin();
693
694 show_fault_oops(regs, error_code, address);
695
696 stackend = end_of_stack(tsk);
697 if (*stackend != STACK_END_MAGIC)
698 printk(KERN_ALERT "Thread overran stack, or stack corrupted\n");
699
700 tsk->thread.cr2 = address;
701 tsk->thread.trap_no = 14;
702 tsk->thread.error_code = error_code;
703
704 sig = SIGKILL;
705 if (__die("Oops", regs, error_code))
706 sig = 0;
707
708 /* Executive summary in case the body of the oops scrolled away */
709 printk(KERN_EMERG "CR2: %016lx\n", address);
710
711 oops_end(flags, regs, sig);
712}
713
714/*
715 * Print out info about fatal segfaults, if the show_unhandled_signals
716 * sysctl is set:
717 */
718static inline void
719show_signal_msg(struct pt_regs *regs, unsigned long error_code,
720 unsigned long address, struct task_struct *tsk)
721{
722 if (!unhandled_signal(tsk, SIGSEGV))
723 return;
724
725 if (!printk_ratelimit())
726 return;
727
728 printk(KERN_CONT "%s%s[%d]: segfault at %lx ip %p sp %p error %lx",
729 task_pid_nr(tsk) > 1 ? KERN_INFO : KERN_EMERG,
730 tsk->comm, task_pid_nr(tsk), address,
731 (void *)regs->ip, (void *)regs->sp, error_code);
732
733 print_vma_addr(KERN_CONT " in ", regs->ip);
734
735 printk(KERN_CONT "\n");
736}
737
738static void
739__bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
740 unsigned long address, int si_code)
741{
742 struct task_struct *tsk = current;
743
744 /* User mode accesses just cause a SIGSEGV */
745 if (error_code & PF_USER) {
746 /*
747 * It's possible to have interrupts off here:
748 */
749 local_irq_enable();
750
751 /*
752 * Valid to do another page fault here because this one came
753 * from user space:
754 */
755 if (is_prefetch(regs, error_code, address))
756 return;
757
758 if (is_errata100(regs, address))
759 return;
760
761 if (unlikely(show_unhandled_signals))
762 show_signal_msg(regs, error_code, address, tsk);
763
764 /* Kernel addresses are always protection faults: */
765 tsk->thread.cr2 = address;
766 tsk->thread.error_code = error_code | (address >= TASK_SIZE);
767 tsk->thread.trap_no = 14;
768
769 force_sig_info_fault(SIGSEGV, si_code, address, tsk);
770
771 return;
772 }
773
774 if (is_f00f_bug(regs, address))
775 return;
776
777 no_context(regs, error_code, address);
778}
779
780static noinline void
781bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
782 unsigned long address)
783{
784 __bad_area_nosemaphore(regs, error_code, address, SEGV_MAPERR);
785}
786
787static void
788__bad_area(struct pt_regs *regs, unsigned long error_code,
789 unsigned long address, int si_code)
790{
791 struct mm_struct *mm = current->mm;
792
793 /*
794 * Something tried to access memory that isn't in our memory map..
795 * Fix it, but check if it's kernel or user first..
796 */
797 up_read(&mm->mmap_sem);
798
799 __bad_area_nosemaphore(regs, error_code, address, si_code);
800}
801
802static noinline void
803bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address)
804{
805 __bad_area(regs, error_code, address, SEGV_MAPERR);
806}
807
808static noinline void
809bad_area_access_error(struct pt_regs *regs, unsigned long error_code,
810 unsigned long address)
811{
812 __bad_area(regs, error_code, address, SEGV_ACCERR);
813}
814
815/* TODO: fixup for "mm-invoke-oom-killer-from-page-fault.patch" */
816static void
817out_of_memory(struct pt_regs *regs, unsigned long error_code,
818 unsigned long address)
819{
820 /*
821 * We ran out of memory, call the OOM killer, and return the userspace
822 * (which will retry the fault, or kill us if we got oom-killed):
823 */
824 up_read(&current->mm->mmap_sem);
825
826 pagefault_out_of_memory();
827}
828
829static void
830do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address)
831{
832 struct task_struct *tsk = current;
833 struct mm_struct *mm = tsk->mm;
834
835 up_read(&mm->mmap_sem);
836
837 /* Kernel mode? Handle exceptions or die: */
838 if (!(error_code & PF_USER))
839 no_context(regs, error_code, address);
840
841 /* User-space => ok to do another page fault: */
842 if (is_prefetch(regs, error_code, address))
843 return;
844
845 tsk->thread.cr2 = address;
846 tsk->thread.error_code = error_code;
847 tsk->thread.trap_no = 14;
848
849 force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk);
850}
851
852static noinline void
853mm_fault_error(struct pt_regs *regs, unsigned long error_code,
854 unsigned long address, unsigned int fault)
855{
856 if (fault & VM_FAULT_OOM) {
857 out_of_memory(regs, error_code, address);
858 } else {
859 if (fault & VM_FAULT_SIGBUS)
860 do_sigbus(regs, error_code, address);
861 else
862 BUG();
863 }
864}
431 865
432static int spurious_fault_check(unsigned long error_code, pte_t *pte) 866static int spurious_fault_check(unsigned long error_code, pte_t *pte)
433{ 867{
434 if ((error_code & PF_WRITE) && !pte_write(*pte)) 868 if ((error_code & PF_WRITE) && !pte_write(*pte))
435 return 0; 869 return 0;
870
436 if ((error_code & PF_INSTR) && !pte_exec(*pte)) 871 if ((error_code & PF_INSTR) && !pte_exec(*pte))
437 return 0; 872 return 0;
438 873
@@ -440,21 +875,25 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
440} 875}
441 876
442/* 877/*
443 * Handle a spurious fault caused by a stale TLB entry. This allows 878 * Handle a spurious fault caused by a stale TLB entry.
444 * us to lazily refresh the TLB when increasing the permissions of a 879 *
445 * kernel page (RO -> RW or NX -> X). Doing it eagerly is very 880 * This allows us to lazily refresh the TLB when increasing the
446 * expensive since that implies doing a full cross-processor TLB 881 * permissions of a kernel page (RO -> RW or NX -> X). Doing it
447 * flush, even if no stale TLB entries exist on other processors. 882 * eagerly is very expensive since that implies doing a full
883 * cross-processor TLB flush, even if no stale TLB entries exist
884 * on other processors.
885 *
448 * There are no security implications to leaving a stale TLB when 886 * There are no security implications to leaving a stale TLB when
449 * increasing the permissions on a page. 887 * increasing the permissions on a page.
450 */ 888 */
451static int spurious_fault(unsigned long address, 889static noinline int
452 unsigned long error_code) 890spurious_fault(unsigned long error_code, unsigned long address)
453{ 891{
454 pgd_t *pgd; 892 pgd_t *pgd;
455 pud_t *pud; 893 pud_t *pud;
456 pmd_t *pmd; 894 pmd_t *pmd;
457 pte_t *pte; 895 pte_t *pte;
896 int ret;
458 897
459 /* Reserved-bit violation or user access to kernel space? */ 898 /* Reserved-bit violation or user access to kernel space? */
460 if (error_code & (PF_USER | PF_RSVD)) 899 if (error_code & (PF_USER | PF_RSVD))
@@ -482,129 +921,71 @@ static int spurious_fault(unsigned long address,
482 if (!pte_present(*pte)) 921 if (!pte_present(*pte))
483 return 0; 922 return 0;
484 923
485 return spurious_fault_check(error_code, pte); 924 ret = spurious_fault_check(error_code, pte);
486} 925 if (!ret)
487 926 return 0;
488/*
489 * X86_32
490 * Handle a fault on the vmalloc or module mapping area
491 *
492 * X86_64
493 * Handle a fault on the vmalloc area
494 *
495 * This assumes no large pages in there.
496 */
497static int vmalloc_fault(unsigned long address)
498{
499#ifdef CONFIG_X86_32
500 unsigned long pgd_paddr;
501 pmd_t *pmd_k;
502 pte_t *pte_k;
503
504 /* Make sure we are in vmalloc area */
505 if (!(address >= VMALLOC_START && address < VMALLOC_END))
506 return -1;
507 927
508 /* 928 /*
509 * Synchronize this task's top level page-table 929 * Make sure we have permissions in PMD.
510 * with the 'reference' page table. 930 * If not, then there's a bug in the page tables:
511 *
512 * Do _not_ use "current" here. We might be inside
513 * an interrupt in the middle of a task switch..
514 */ 931 */
515 pgd_paddr = read_cr3(); 932 ret = spurious_fault_check(error_code, (pte_t *) pmd);
516 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address); 933 WARN_ONCE(!ret, "PMD has incorrect permission bits\n");
517 if (!pmd_k)
518 return -1;
519 pte_k = pte_offset_kernel(pmd_k, address);
520 if (!pte_present(*pte_k))
521 return -1;
522 return 0;
523#else
524 pgd_t *pgd, *pgd_ref;
525 pud_t *pud, *pud_ref;
526 pmd_t *pmd, *pmd_ref;
527 pte_t *pte, *pte_ref;
528 934
529 /* Make sure we are in vmalloc area */ 935 return ret;
530 if (!(address >= VMALLOC_START && address < VMALLOC_END)) 936}
531 return -1;
532 937
533 /* Copy kernel mappings over when needed. This can also 938int show_unhandled_signals = 1;
534 happen within a race in page table update. In the later
535 case just flush. */
536 939
537 pgd = pgd_offset(current->active_mm, address); 940static inline int
538 pgd_ref = pgd_offset_k(address); 941access_error(unsigned long error_code, int write, struct vm_area_struct *vma)
539 if (pgd_none(*pgd_ref)) 942{
540 return -1; 943 if (write) {
541 if (pgd_none(*pgd)) 944 /* write, present and write, not present: */
542 set_pgd(pgd, *pgd_ref); 945 if (unlikely(!(vma->vm_flags & VM_WRITE)))
543 else 946 return 1;
544 BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref)); 947 return 0;
948 }
545 949
546 /* Below here mismatches are bugs because these lower tables 950 /* read, present: */
547 are shared */ 951 if (unlikely(error_code & PF_PROT))
952 return 1;
953
954 /* read, not present: */
955 if (unlikely(!(vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE))))
956 return 1;
548 957
549 pud = pud_offset(pgd, address);
550 pud_ref = pud_offset(pgd_ref, address);
551 if (pud_none(*pud_ref))
552 return -1;
553 if (pud_none(*pud) || pud_page_vaddr(*pud) != pud_page_vaddr(*pud_ref))
554 BUG();
555 pmd = pmd_offset(pud, address);
556 pmd_ref = pmd_offset(pud_ref, address);
557 if (pmd_none(*pmd_ref))
558 return -1;
559 if (pmd_none(*pmd) || pmd_page(*pmd) != pmd_page(*pmd_ref))
560 BUG();
561 pte_ref = pte_offset_kernel(pmd_ref, address);
562 if (!pte_present(*pte_ref))
563 return -1;
564 pte = pte_offset_kernel(pmd, address);
565 /* Don't use pte_page here, because the mappings can point
566 outside mem_map, and the NUMA hash lookup cannot handle
567 that. */
568 if (!pte_present(*pte) || pte_pfn(*pte) != pte_pfn(*pte_ref))
569 BUG();
570 return 0; 958 return 0;
571#endif
572} 959}
573 960
574int show_unhandled_signals = 1; 961static int fault_in_kernel_space(unsigned long address)
962{
963 return address >= TASK_SIZE_MAX;
964}
575 965
576/* 966/*
577 * This routine handles page faults. It determines the address, 967 * This routine handles page faults. It determines the address,
578 * and the problem, and then passes it off to one of the appropriate 968 * and the problem, and then passes it off to one of the appropriate
579 * routines. 969 * routines.
580 */ 970 */
581#ifdef CONFIG_X86_64 971dotraplinkage void __kprobes
582asmlinkage 972do_page_fault(struct pt_regs *regs, unsigned long error_code)
583#endif
584void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)
585{ 973{
586 struct task_struct *tsk;
587 struct mm_struct *mm;
588 struct vm_area_struct *vma; 974 struct vm_area_struct *vma;
975 struct task_struct *tsk;
589 unsigned long address; 976 unsigned long address;
590 int write, si_code; 977 struct mm_struct *mm;
978 int write;
591 int fault; 979 int fault;
592#ifdef CONFIG_X86_64
593 unsigned long flags;
594 int sig;
595#endif
596 980
597 tsk = current; 981 tsk = current;
598 mm = tsk->mm; 982 mm = tsk->mm;
983
599 prefetchw(&mm->mmap_sem); 984 prefetchw(&mm->mmap_sem);
600 985
601 /* get the address */ 986 /* Get the faulting address: */
602 address = read_cr2(); 987 address = read_cr2();
603 988
604 si_code = SEGV_MAPERR;
605
606 if (notify_page_fault(regs))
607 return;
608 if (unlikely(kmmio_fault(regs, address))) 989 if (unlikely(kmmio_fault(regs, address)))
609 return; 990 return;
610 991
@@ -621,313 +1002,147 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)
621 * (error_code & 4) == 0, and that the fault was not a 1002 * (error_code & 4) == 0, and that the fault was not a
622 * protection error (error_code & 9) == 0. 1003 * protection error (error_code & 9) == 0.
623 */ 1004 */
624#ifdef CONFIG_X86_32 1005 if (unlikely(fault_in_kernel_space(address))) {
625 if (unlikely(address >= TASK_SIZE)) {
626#else
627 if (unlikely(address >= TASK_SIZE64)) {
628#endif
629 if (!(error_code & (PF_RSVD|PF_USER|PF_PROT)) && 1006 if (!(error_code & (PF_RSVD|PF_USER|PF_PROT)) &&
630 vmalloc_fault(address) >= 0) 1007 vmalloc_fault(address) >= 0)
631 return; 1008 return;
632 1009
633 /* Can handle a stale RO->RW TLB */ 1010 /* Can handle a stale RO->RW TLB: */
634 if (spurious_fault(address, error_code)) 1011 if (spurious_fault(error_code, address))
635 return; 1012 return;
636 1013
1014 /* kprobes don't want to hook the spurious faults: */
1015 if (notify_page_fault(regs))
1016 return;
637 /* 1017 /*
638 * Don't take the mm semaphore here. If we fixup a prefetch 1018 * Don't take the mm semaphore here. If we fixup a prefetch
639 * fault we could otherwise deadlock. 1019 * fault we could otherwise deadlock:
640 */ 1020 */
641 goto bad_area_nosemaphore; 1021 bad_area_nosemaphore(regs, error_code, address);
642 }
643 1022
1023 return;
1024 }
644 1025
1026 /* kprobes don't want to hook the spurious faults: */
1027 if (unlikely(notify_page_fault(regs)))
1028 return;
645 /* 1029 /*
646 * It's safe to allow irq's after cr2 has been saved and the 1030 * It's safe to allow irq's after cr2 has been saved and the
647 * vmalloc fault has been handled. 1031 * vmalloc fault has been handled.
648 * 1032 *
649 * User-mode registers count as a user access even for any 1033 * User-mode registers count as a user access even for any
650 * potential system fault or CPU buglet. 1034 * potential system fault or CPU buglet:
651 */ 1035 */
652 if (user_mode_vm(regs)) { 1036 if (user_mode_vm(regs)) {
653 local_irq_enable(); 1037 local_irq_enable();
654 error_code |= PF_USER; 1038 error_code |= PF_USER;
655 } else if (regs->flags & X86_EFLAGS_IF) 1039 } else {
656 local_irq_enable(); 1040 if (regs->flags & X86_EFLAGS_IF)
1041 local_irq_enable();
1042 }
657 1043
658#ifdef CONFIG_X86_64
659 if (unlikely(error_code & PF_RSVD)) 1044 if (unlikely(error_code & PF_RSVD))
660 pgtable_bad(address, regs, error_code); 1045 pgtable_bad(regs, error_code, address);
661#endif
662 1046
663 /* 1047 /*
664 * If we're in an interrupt, have no user context or are running in an 1048 * If we're in an interrupt, have no user context or are running
665 * atomic region then we must not take the fault. 1049 * in an atomic region then we must not take the fault:
666 */ 1050 */
667 if (unlikely(in_atomic() || !mm)) 1051 if (unlikely(in_atomic() || !mm)) {
668 goto bad_area_nosemaphore; 1052 bad_area_nosemaphore(regs, error_code, address);
1053 return;
1054 }
669 1055
670 /* 1056 /*
671 * When running in the kernel we expect faults to occur only to 1057 * When running in the kernel we expect faults to occur only to
672 * addresses in user space. All other faults represent errors in the 1058 * addresses in user space. All other faults represent errors in
673 * kernel and should generate an OOPS. Unfortunately, in the case of an 1059 * the kernel and should generate an OOPS. Unfortunately, in the
674 * erroneous fault occurring in a code path which already holds mmap_sem 1060 * case of an erroneous fault occurring in a code path which already
675 * we will deadlock attempting to validate the fault against the 1061 * holds mmap_sem we will deadlock attempting to validate the fault
676 * address space. Luckily the kernel only validly references user 1062 * against the address space. Luckily the kernel only validly
677 * space from well defined areas of code, which are listed in the 1063 * references user space from well defined areas of code, which are
678 * exceptions table. 1064 * listed in the exceptions table.
679 * 1065 *
680 * As the vast majority of faults will be valid we will only perform 1066 * As the vast majority of faults will be valid we will only perform
681 * the source reference check when there is a possibility of a deadlock. 1067 * the source reference check when there is a possibility of a
682 * Attempt to lock the address space, if we cannot we then validate the 1068 * deadlock. Attempt to lock the address space, if we cannot we then
683 * source. If this is invalid we can skip the address space check, 1069 * validate the source. If this is invalid we can skip the address
684 * thus avoiding the deadlock. 1070 * space check, thus avoiding the deadlock:
685 */ 1071 */
686 if (!down_read_trylock(&mm->mmap_sem)) { 1072 if (unlikely(!down_read_trylock(&mm->mmap_sem))) {
687 if ((error_code & PF_USER) == 0 && 1073 if ((error_code & PF_USER) == 0 &&
688 !search_exception_tables(regs->ip)) 1074 !search_exception_tables(regs->ip)) {
689 goto bad_area_nosemaphore; 1075 bad_area_nosemaphore(regs, error_code, address);
1076 return;
1077 }
690 down_read(&mm->mmap_sem); 1078 down_read(&mm->mmap_sem);
1079 } else {
1080 /*
1081 * The above down_read_trylock() might have succeeded in
1082 * which case we'll have missed the might_sleep() from
1083 * down_read():
1084 */
1085 might_sleep();
691 } 1086 }
692 1087
693 vma = find_vma(mm, address); 1088 vma = find_vma(mm, address);
694 if (!vma) 1089 if (unlikely(!vma)) {
695 goto bad_area; 1090 bad_area(regs, error_code, address);
696 if (vma->vm_start <= address) 1091 return;
1092 }
1093 if (likely(vma->vm_start <= address))
697 goto good_area; 1094 goto good_area;
698 if (!(vma->vm_flags & VM_GROWSDOWN)) 1095 if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) {
699 goto bad_area; 1096 bad_area(regs, error_code, address);
1097 return;
1098 }
700 if (error_code & PF_USER) { 1099 if (error_code & PF_USER) {
701 /* 1100 /*
702 * Accessing the stack below %sp is always a bug. 1101 * Accessing the stack below %sp is always a bug.
703 * The large cushion allows instructions like enter 1102 * The large cushion allows instructions like enter
704 * and pusha to work. ("enter $65535,$31" pushes 1103 * and pusha to work. ("enter $65535, $31" pushes
705 * 32 pointers and then decrements %sp by 65535.) 1104 * 32 pointers and then decrements %sp by 65535.)
706 */ 1105 */
707 if (address + 65536 + 32 * sizeof(unsigned long) < regs->sp) 1106 if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) {
708 goto bad_area; 1107 bad_area(regs, error_code, address);
1108 return;
1109 }
709 } 1110 }
710 if (expand_stack(vma, address)) 1111 if (unlikely(expand_stack(vma, address))) {
711 goto bad_area; 1112 bad_area(regs, error_code, address);
712/* 1113 return;
713 * Ok, we have a good vm_area for this memory access, so 1114 }
714 * we can handle it.. 1115
715 */ 1116 /*
1117 * Ok, we have a good vm_area for this memory access, so
1118 * we can handle it..
1119 */
716good_area: 1120good_area:
717 si_code = SEGV_ACCERR; 1121 write = error_code & PF_WRITE;
718 write = 0; 1122
719 switch (error_code & (PF_PROT|PF_WRITE)) { 1123 if (unlikely(access_error(error_code, write, vma))) {
720 default: /* 3: write, present */ 1124 bad_area_access_error(regs, error_code, address);
721 /* fall through */ 1125 return;
722 case PF_WRITE: /* write, not present */
723 if (!(vma->vm_flags & VM_WRITE))
724 goto bad_area;
725 write++;
726 break;
727 case PF_PROT: /* read, present */
728 goto bad_area;
729 case 0: /* read, not present */
730 if (!(vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE)))
731 goto bad_area;
732 } 1126 }
733 1127
734 /* 1128 /*
735 * If for any reason at all we couldn't handle the fault, 1129 * If for any reason at all we couldn't handle the fault,
736 * make sure we exit gracefully rather than endlessly redo 1130 * make sure we exit gracefully rather than endlessly redo
737 * the fault. 1131 * the fault:
738 */ 1132 */
739 fault = handle_mm_fault(mm, vma, address, write); 1133 fault = handle_mm_fault(mm, vma, address, write);
1134
740 if (unlikely(fault & VM_FAULT_ERROR)) { 1135 if (unlikely(fault & VM_FAULT_ERROR)) {
741 if (fault & VM_FAULT_OOM) 1136 mm_fault_error(regs, error_code, address, fault);
742 goto out_of_memory; 1137 return;
743 else if (fault & VM_FAULT_SIGBUS)
744 goto do_sigbus;
745 BUG();
746 } 1138 }
1139
747 if (fault & VM_FAULT_MAJOR) 1140 if (fault & VM_FAULT_MAJOR)
748 tsk->maj_flt++; 1141 tsk->maj_flt++;
749 else 1142 else
750 tsk->min_flt++; 1143 tsk->min_flt++;
751 1144
752#ifdef CONFIG_X86_32 1145 check_v8086_mode(regs, address, tsk);
753 /*
754 * Did it hit the DOS screen memory VA from vm86 mode?
755 */
756 if (v8086_mode(regs)) {
757 unsigned long bit = (address - 0xA0000) >> PAGE_SHIFT;
758 if (bit < 32)
759 tsk->thread.screen_bitmap |= 1 << bit;
760 }
761#endif
762 up_read(&mm->mmap_sem);
763 return;
764
765/*
766 * Something tried to access memory that isn't in our memory map..
767 * Fix it, but check if it's kernel or user first..
768 */
769bad_area:
770 up_read(&mm->mmap_sem);
771
772bad_area_nosemaphore:
773 /* User mode accesses just cause a SIGSEGV */
774 if (error_code & PF_USER) {
775 /*
776 * It's possible to have interrupts off here.
777 */
778 local_irq_enable();
779
780 /*
781 * Valid to do another page fault here because this one came
782 * from user space.
783 */
784 if (is_prefetch(regs, address, error_code))
785 return;
786
787 if (is_errata100(regs, address))
788 return;
789
790 if (show_unhandled_signals && unhandled_signal(tsk, SIGSEGV) &&
791 printk_ratelimit()) {
792 printk(
793 "%s%s[%d]: segfault at %lx ip %p sp %p error %lx",
794 task_pid_nr(tsk) > 1 ? KERN_INFO : KERN_EMERG,
795 tsk->comm, task_pid_nr(tsk), address,
796 (void *) regs->ip, (void *) regs->sp, error_code);
797 print_vma_addr(" in ", regs->ip);
798 printk("\n");
799 }
800
801 tsk->thread.cr2 = address;
802 /* Kernel addresses are always protection faults */
803 tsk->thread.error_code = error_code | (address >= TASK_SIZE);
804 tsk->thread.trap_no = 14;
805 force_sig_info_fault(SIGSEGV, si_code, address, tsk);
806 return;
807 }
808
809 if (is_f00f_bug(regs, address))
810 return;
811
812no_context:
813 /* Are we prepared to handle this kernel fault? */
814 if (fixup_exception(regs))
815 return;
816
817 /*
818 * X86_32
819 * Valid to do another page fault here, because if this fault
820 * had been triggered by is_prefetch fixup_exception would have
821 * handled it.
822 *
823 * X86_64
824 * Hall of shame of CPU/BIOS bugs.
825 */
826 if (is_prefetch(regs, address, error_code))
827 return;
828
829 if (is_errata93(regs, address))
830 return;
831
832/*
833 * Oops. The kernel tried to access some bad page. We'll have to
834 * terminate things with extreme prejudice.
835 */
836#ifdef CONFIG_X86_32
837 bust_spinlocks(1);
838#else
839 flags = oops_begin();
840#endif
841
842 show_fault_oops(regs, error_code, address);
843 1146
844 tsk->thread.cr2 = address;
845 tsk->thread.trap_no = 14;
846 tsk->thread.error_code = error_code;
847
848#ifdef CONFIG_X86_32
849 die("Oops", regs, error_code);
850 bust_spinlocks(0);
851 do_exit(SIGKILL);
852#else
853 sig = SIGKILL;
854 if (__die("Oops", regs, error_code))
855 sig = 0;
856 /* Executive summary in case the body of the oops scrolled away */
857 printk(KERN_EMERG "CR2: %016lx\n", address);
858 oops_end(flags, regs, sig);
859#endif
860
861out_of_memory:
862 /*
863 * We ran out of memory, call the OOM killer, and return the userspace
864 * (which will retry the fault, or kill us if we got oom-killed).
865 */
866 up_read(&mm->mmap_sem);
867 pagefault_out_of_memory();
868 return;
869
870do_sigbus:
871 up_read(&mm->mmap_sem); 1147 up_read(&mm->mmap_sem);
872
873 /* Kernel mode? Handle exceptions or die */
874 if (!(error_code & PF_USER))
875 goto no_context;
876#ifdef CONFIG_X86_32
877 /* User space => ok to do another page fault */
878 if (is_prefetch(regs, address, error_code))
879 return;
880#endif
881 tsk->thread.cr2 = address;
882 tsk->thread.error_code = error_code;
883 tsk->thread.trap_no = 14;
884 force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk);
885}
886
887DEFINE_SPINLOCK(pgd_lock);
888LIST_HEAD(pgd_list);
889
890void vmalloc_sync_all(void)
891{
892 unsigned long address;
893
894#ifdef CONFIG_X86_32
895 if (SHARED_KERNEL_PMD)
896 return;
897
898 for (address = VMALLOC_START & PMD_MASK;
899 address >= TASK_SIZE && address < FIXADDR_TOP;
900 address += PMD_SIZE) {
901 unsigned long flags;
902 struct page *page;
903
904 spin_lock_irqsave(&pgd_lock, flags);
905 list_for_each_entry(page, &pgd_list, lru) {
906 if (!vmalloc_sync_one(page_address(page),
907 address))
908 break;
909 }
910 spin_unlock_irqrestore(&pgd_lock, flags);
911 }
912#else /* CONFIG_X86_64 */
913 for (address = VMALLOC_START & PGDIR_MASK; address <= VMALLOC_END;
914 address += PGDIR_SIZE) {
915 const pgd_t *pgd_ref = pgd_offset_k(address);
916 unsigned long flags;
917 struct page *page;
918
919 if (pgd_none(*pgd_ref))
920 continue;
921 spin_lock_irqsave(&pgd_lock, flags);
922 list_for_each_entry(page, &pgd_list, lru) {
923 pgd_t *pgd;
924 pgd = (pgd_t *)page_address(page) + pgd_index(address);
925 if (pgd_none(*pgd))
926 set_pgd(pgd, *pgd_ref);
927 else
928 BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
929 }
930 spin_unlock_irqrestore(&pgd_lock, flags);
931 }
932#endif
933} 1148}
diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
index bcc079c282dd..d11745334a67 100644
--- a/arch/x86/mm/highmem_32.c
+++ b/arch/x86/mm/highmem_32.c
@@ -1,5 +1,6 @@
1#include <linux/highmem.h> 1#include <linux/highmem.h>
2#include <linux/module.h> 2#include <linux/module.h>
3#include <linux/swap.h> /* for totalram_pages */
3 4
4void *kmap(struct page *page) 5void *kmap(struct page *page)
5{ 6{
@@ -156,3 +157,27 @@ EXPORT_SYMBOL(kmap);
156EXPORT_SYMBOL(kunmap); 157EXPORT_SYMBOL(kunmap);
157EXPORT_SYMBOL(kmap_atomic); 158EXPORT_SYMBOL(kmap_atomic);
158EXPORT_SYMBOL(kunmap_atomic); 159EXPORT_SYMBOL(kunmap_atomic);
160
161void __init set_highmem_pages_init(void)
162{
163 struct zone *zone;
164 int nid;
165
166 for_each_zone(zone) {
167 unsigned long zone_start_pfn, zone_end_pfn;
168
169 if (!is_highmem(zone))
170 continue;
171
172 zone_start_pfn = zone->zone_start_pfn;
173 zone_end_pfn = zone_start_pfn + zone->spanned_pages;
174
175 nid = zone_to_nid(zone);
176 printk(KERN_INFO "Initializing %s for node %d (%08lx:%08lx)\n",
177 zone->name, nid, zone_start_pfn, zone_end_pfn);
178
179 add_highpages_with_active_regions(nid, zone_start_pfn,
180 zone_end_pfn);
181 }
182 totalram_pages += totalhigh_pages;
183}
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
new file mode 100644
index 000000000000..15219e0d1243
--- /dev/null
+++ b/arch/x86/mm/init.c
@@ -0,0 +1,393 @@
1#include <linux/ioport.h>
2#include <linux/swap.h>
3
4#include <asm/cacheflush.h>
5#include <asm/e820.h>
6#include <asm/init.h>
7#include <asm/page.h>
8#include <asm/page_types.h>
9#include <asm/sections.h>
10#include <asm/system.h>
11#include <asm/tlbflush.h>
12
13unsigned long __initdata e820_table_start;
14unsigned long __meminitdata e820_table_end;
15unsigned long __meminitdata e820_table_top;
16
17int after_bootmem;
18
19int direct_gbpages
20#ifdef CONFIG_DIRECT_GBPAGES
21 = 1
22#endif
23;
24
25static void __init find_early_table_space(unsigned long end, int use_pse,
26 int use_gbpages)
27{
28 unsigned long puds, pmds, ptes, tables, start;
29
30 puds = (end + PUD_SIZE - 1) >> PUD_SHIFT;
31 tables = roundup(puds * sizeof(pud_t), PAGE_SIZE);
32
33 if (use_gbpages) {
34 unsigned long extra;
35
36 extra = end - ((end>>PUD_SHIFT) << PUD_SHIFT);
37 pmds = (extra + PMD_SIZE - 1) >> PMD_SHIFT;
38 } else
39 pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT;
40
41 tables += roundup(pmds * sizeof(pmd_t), PAGE_SIZE);
42
43 if (use_pse) {
44 unsigned long extra;
45
46 extra = end - ((end>>PMD_SHIFT) << PMD_SHIFT);
47#ifdef CONFIG_X86_32
48 extra += PMD_SIZE;
49#endif
50 ptes = (extra + PAGE_SIZE - 1) >> PAGE_SHIFT;
51 } else
52 ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT;
53
54 tables += roundup(ptes * sizeof(pte_t), PAGE_SIZE);
55
56#ifdef CONFIG_X86_32
57 /* for fixmap */
58 tables += roundup(__end_of_fixed_addresses * sizeof(pte_t), PAGE_SIZE);
59#endif
60
61 /*
62 * RED-PEN putting page tables only on node 0 could
63 * cause a hotspot and fill up ZONE_DMA. The page tables
64 * need roughly 0.5KB per GB.
65 */
66#ifdef CONFIG_X86_32
67 start = 0x7000;
68 e820_table_start = find_e820_area(start, max_pfn_mapped<<PAGE_SHIFT,
69 tables, PAGE_SIZE);
70#else /* CONFIG_X86_64 */
71 start = 0x8000;
72 e820_table_start = find_e820_area(start, end, tables, PAGE_SIZE);
73#endif
74 if (e820_table_start == -1UL)
75 panic("Cannot find space for the kernel page tables");
76
77 e820_table_start >>= PAGE_SHIFT;
78 e820_table_end = e820_table_start;
79 e820_table_top = e820_table_start + (tables >> PAGE_SHIFT);
80
81 printk(KERN_DEBUG "kernel direct mapping tables up to %lx @ %lx-%lx\n",
82 end, e820_table_start << PAGE_SHIFT, e820_table_top << PAGE_SHIFT);
83}
84
85struct map_range {
86 unsigned long start;
87 unsigned long end;
88 unsigned page_size_mask;
89};
90
91#ifdef CONFIG_X86_32
92#define NR_RANGE_MR 3
93#else /* CONFIG_X86_64 */
94#define NR_RANGE_MR 5
95#endif
96
97static int save_mr(struct map_range *mr, int nr_range,
98 unsigned long start_pfn, unsigned long end_pfn,
99 unsigned long page_size_mask)
100{
101 if (start_pfn < end_pfn) {
102 if (nr_range >= NR_RANGE_MR)
103 panic("run out of range for init_memory_mapping\n");
104 mr[nr_range].start = start_pfn<<PAGE_SHIFT;
105 mr[nr_range].end = end_pfn<<PAGE_SHIFT;
106 mr[nr_range].page_size_mask = page_size_mask;
107 nr_range++;
108 }
109
110 return nr_range;
111}
112
113#ifdef CONFIG_X86_64
114static void __init init_gbpages(void)
115{
116 if (direct_gbpages && cpu_has_gbpages)
117 printk(KERN_INFO "Using GB pages for direct mapping\n");
118 else
119 direct_gbpages = 0;
120}
121#else
122static inline void init_gbpages(void)
123{
124}
125#endif
126
127/*
128 * Setup the direct mapping of the physical memory at PAGE_OFFSET.
129 * This runs before bootmem is initialized and gets pages directly from
130 * the physical memory. To access them they are temporarily mapped.
131 */
132unsigned long __init_refok init_memory_mapping(unsigned long start,
133 unsigned long end)
134{
135 unsigned long page_size_mask = 0;
136 unsigned long start_pfn, end_pfn;
137 unsigned long ret = 0;
138 unsigned long pos;
139
140 struct map_range mr[NR_RANGE_MR];
141 int nr_range, i;
142 int use_pse, use_gbpages;
143
144 printk(KERN_INFO "init_memory_mapping: %016lx-%016lx\n", start, end);
145
146 if (!after_bootmem)
147 init_gbpages();
148
149#ifdef CONFIG_DEBUG_PAGEALLOC
150 /*
151 * For CONFIG_DEBUG_PAGEALLOC, identity mapping will use small pages.
152 * This will simplify cpa(), which otherwise needs to support splitting
153 * large pages into small in interrupt context, etc.
154 */
155 use_pse = use_gbpages = 0;
156#else
157 use_pse = cpu_has_pse;
158 use_gbpages = direct_gbpages;
159#endif
160
161#ifdef CONFIG_X86_32
162#ifdef CONFIG_X86_PAE
163 set_nx();
164 if (nx_enabled)
165 printk(KERN_INFO "NX (Execute Disable) protection: active\n");
166#endif
167
168 /* Enable PSE if available */
169 if (cpu_has_pse)
170 set_in_cr4(X86_CR4_PSE);
171
172 /* Enable PGE if available */
173 if (cpu_has_pge) {
174 set_in_cr4(X86_CR4_PGE);
175 __supported_pte_mask |= _PAGE_GLOBAL;
176 }
177#endif
178
179 if (use_gbpages)
180 page_size_mask |= 1 << PG_LEVEL_1G;
181 if (use_pse)
182 page_size_mask |= 1 << PG_LEVEL_2M;
183
184 memset(mr, 0, sizeof(mr));
185 nr_range = 0;
186
187 /* head if not big page alignment ? */
188 start_pfn = start >> PAGE_SHIFT;
189 pos = start_pfn << PAGE_SHIFT;
190#ifdef CONFIG_X86_32
191 /*
192 * Don't use a large page for the first 2/4MB of memory
193 * because there are often fixed size MTRRs in there
194 * and overlapping MTRRs into large pages can cause
195 * slowdowns.
196 */
197 if (pos == 0)
198 end_pfn = 1<<(PMD_SHIFT - PAGE_SHIFT);
199 else
200 end_pfn = ((pos + (PMD_SIZE - 1))>>PMD_SHIFT)
201 << (PMD_SHIFT - PAGE_SHIFT);
202#else /* CONFIG_X86_64 */
203 end_pfn = ((pos + (PMD_SIZE - 1)) >> PMD_SHIFT)
204 << (PMD_SHIFT - PAGE_SHIFT);
205#endif
206 if (end_pfn > (end >> PAGE_SHIFT))
207 end_pfn = end >> PAGE_SHIFT;
208 if (start_pfn < end_pfn) {
209 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0);
210 pos = end_pfn << PAGE_SHIFT;
211 }
212
213 /* big page (2M) range */
214 start_pfn = ((pos + (PMD_SIZE - 1))>>PMD_SHIFT)
215 << (PMD_SHIFT - PAGE_SHIFT);
216#ifdef CONFIG_X86_32
217 end_pfn = (end>>PMD_SHIFT) << (PMD_SHIFT - PAGE_SHIFT);
218#else /* CONFIG_X86_64 */
219 end_pfn = ((pos + (PUD_SIZE - 1))>>PUD_SHIFT)
220 << (PUD_SHIFT - PAGE_SHIFT);
221 if (end_pfn > ((end>>PMD_SHIFT)<<(PMD_SHIFT - PAGE_SHIFT)))
222 end_pfn = ((end>>PMD_SHIFT)<<(PMD_SHIFT - PAGE_SHIFT));
223#endif
224
225 if (start_pfn < end_pfn) {
226 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn,
227 page_size_mask & (1<<PG_LEVEL_2M));
228 pos = end_pfn << PAGE_SHIFT;
229 }
230
231#ifdef CONFIG_X86_64
232 /* big page (1G) range */
233 start_pfn = ((pos + (PUD_SIZE - 1))>>PUD_SHIFT)
234 << (PUD_SHIFT - PAGE_SHIFT);
235 end_pfn = (end >> PUD_SHIFT) << (PUD_SHIFT - PAGE_SHIFT);
236 if (start_pfn < end_pfn) {
237 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn,
238 page_size_mask &
239 ((1<<PG_LEVEL_2M)|(1<<PG_LEVEL_1G)));
240 pos = end_pfn << PAGE_SHIFT;
241 }
242
243 /* tail is not big page (1G) alignment */
244 start_pfn = ((pos + (PMD_SIZE - 1))>>PMD_SHIFT)
245 << (PMD_SHIFT - PAGE_SHIFT);
246 end_pfn = (end >> PMD_SHIFT) << (PMD_SHIFT - PAGE_SHIFT);
247 if (start_pfn < end_pfn) {
248 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn,
249 page_size_mask & (1<<PG_LEVEL_2M));
250 pos = end_pfn << PAGE_SHIFT;
251 }
252#endif
253
254 /* tail is not big page (2M) alignment */
255 start_pfn = pos>>PAGE_SHIFT;
256 end_pfn = end>>PAGE_SHIFT;
257 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0);
258
259 /* try to merge same page size and continuous */
260 for (i = 0; nr_range > 1 && i < nr_range - 1; i++) {
261 unsigned long old_start;
262 if (mr[i].end != mr[i+1].start ||
263 mr[i].page_size_mask != mr[i+1].page_size_mask)
264 continue;
265 /* move it */
266 old_start = mr[i].start;
267 memmove(&mr[i], &mr[i+1],
268 (nr_range - 1 - i) * sizeof(struct map_range));
269 mr[i--].start = old_start;
270 nr_range--;
271 }
272
273 for (i = 0; i < nr_range; i++)
274 printk(KERN_DEBUG " %010lx - %010lx page %s\n",
275 mr[i].start, mr[i].end,
276 (mr[i].page_size_mask & (1<<PG_LEVEL_1G))?"1G":(
277 (mr[i].page_size_mask & (1<<PG_LEVEL_2M))?"2M":"4k"));
278
279 /*
280 * Find space for the kernel direct mapping tables.
281 *
282 * Later we should allocate these tables in the local node of the
283 * memory mapped. Unfortunately this is done currently before the
284 * nodes are discovered.
285 */
286 if (!after_bootmem)
287 find_early_table_space(end, use_pse, use_gbpages);
288
289#ifdef CONFIG_X86_32
290 for (i = 0; i < nr_range; i++)
291 kernel_physical_mapping_init(mr[i].start, mr[i].end,
292 mr[i].page_size_mask);
293 ret = end;
294#else /* CONFIG_X86_64 */
295 for (i = 0; i < nr_range; i++)
296 ret = kernel_physical_mapping_init(mr[i].start, mr[i].end,
297 mr[i].page_size_mask);
298#endif
299
300#ifdef CONFIG_X86_32
301 early_ioremap_page_table_range_init();
302
303 load_cr3(swapper_pg_dir);
304#endif
305
306#ifdef CONFIG_X86_64
307 if (!after_bootmem)
308 mmu_cr4_features = read_cr4();
309#endif
310 __flush_tlb_all();
311
312 if (!after_bootmem && e820_table_end > e820_table_start)
313 reserve_early(e820_table_start << PAGE_SHIFT,
314 e820_table_end << PAGE_SHIFT, "PGTABLE");
315
316 if (!after_bootmem)
317 early_memtest(start, end);
318
319 return ret >> PAGE_SHIFT;
320}
321
322
323/*
324 * devmem_is_allowed() checks to see if /dev/mem access to a certain address
325 * is valid. The argument is a physical page number.
326 *
327 *
328 * On x86, access has to be given to the first megabyte of ram because that area
329 * contains bios code and data regions used by X and dosemu and similar apps.
330 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
331 * mmio resources as well as potential bios/acpi data regions.
332 */
333int devmem_is_allowed(unsigned long pagenr)
334{
335 if (pagenr <= 256)
336 return 1;
337 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
338 return 0;
339 if (!page_is_ram(pagenr))
340 return 1;
341 return 0;
342}
343
344void free_init_pages(char *what, unsigned long begin, unsigned long end)
345{
346 unsigned long addr = begin;
347
348 if (addr >= end)
349 return;
350
351 /*
352 * If debugging page accesses then do not free this memory but
353 * mark them not present - any buggy init-section access will
354 * create a kernel page fault:
355 */
356#ifdef CONFIG_DEBUG_PAGEALLOC
357 printk(KERN_INFO "debug: unmapping init memory %08lx..%08lx\n",
358 begin, PAGE_ALIGN(end));
359 set_memory_np(begin, (end - begin) >> PAGE_SHIFT);
360#else
361 /*
362 * We just marked the kernel text read only above, now that
363 * we are going to free part of that, we need to make that
364 * writeable first.
365 */
366 set_memory_rw(begin, (end - begin) >> PAGE_SHIFT);
367
368 printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
369
370 for (; addr < end; addr += PAGE_SIZE) {
371 ClearPageReserved(virt_to_page(addr));
372 init_page_count(virt_to_page(addr));
373 memset((void *)(addr & ~(PAGE_SIZE-1)),
374 POISON_FREE_INITMEM, PAGE_SIZE);
375 free_page(addr);
376 totalram_pages++;
377 }
378#endif
379}
380
381void free_initmem(void)
382{
383 free_init_pages("unused kernel memory",
384 (unsigned long)(&__init_begin),
385 (unsigned long)(&__init_end));
386}
387
388#ifdef CONFIG_BLK_DEV_INITRD
389void free_initrd_mem(unsigned long start, unsigned long end)
390{
391 free_init_pages("initrd memory", start, end);
392}
393#endif
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 88f1b10de3be..db81e9a8556b 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -49,9 +49,7 @@
49#include <asm/paravirt.h> 49#include <asm/paravirt.h>
50#include <asm/setup.h> 50#include <asm/setup.h>
51#include <asm/cacheflush.h> 51#include <asm/cacheflush.h>
52#include <asm/smp.h> 52#include <asm/init.h>
53
54unsigned int __VMALLOC_RESERVE = 128 << 20;
55 53
56unsigned long max_low_pfn_mapped; 54unsigned long max_low_pfn_mapped;
57unsigned long max_pfn_mapped; 55unsigned long max_pfn_mapped;
@@ -61,19 +59,14 @@ unsigned long highstart_pfn, highend_pfn;
61 59
62static noinline int do_test_wp_bit(void); 60static noinline int do_test_wp_bit(void);
63 61
64 62bool __read_mostly __vmalloc_start_set = false;
65static unsigned long __initdata table_start;
66static unsigned long __meminitdata table_end;
67static unsigned long __meminitdata table_top;
68
69static int __initdata after_init_bootmem;
70 63
71static __init void *alloc_low_page(void) 64static __init void *alloc_low_page(void)
72{ 65{
73 unsigned long pfn = table_end++; 66 unsigned long pfn = e820_table_end++;
74 void *adr; 67 void *adr;
75 68
76 if (pfn >= table_top) 69 if (pfn >= e820_table_top)
77 panic("alloc_low_page: ran out of memory"); 70 panic("alloc_low_page: ran out of memory");
78 71
79 adr = __va(pfn * PAGE_SIZE); 72 adr = __va(pfn * PAGE_SIZE);
@@ -93,7 +86,7 @@ static pmd_t * __init one_md_table_init(pgd_t *pgd)
93 86
94#ifdef CONFIG_X86_PAE 87#ifdef CONFIG_X86_PAE
95 if (!(pgd_val(*pgd) & _PAGE_PRESENT)) { 88 if (!(pgd_val(*pgd) & _PAGE_PRESENT)) {
96 if (after_init_bootmem) 89 if (after_bootmem)
97 pmd_table = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE); 90 pmd_table = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE);
98 else 91 else
99 pmd_table = (pmd_t *)alloc_low_page(); 92 pmd_table = (pmd_t *)alloc_low_page();
@@ -120,7 +113,7 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
120 if (!(pmd_val(*pmd) & _PAGE_PRESENT)) { 113 if (!(pmd_val(*pmd) & _PAGE_PRESENT)) {
121 pte_t *page_table = NULL; 114 pte_t *page_table = NULL;
122 115
123 if (after_init_bootmem) { 116 if (after_bootmem) {
124#ifdef CONFIG_DEBUG_PAGEALLOC 117#ifdef CONFIG_DEBUG_PAGEALLOC
125 page_table = (pte_t *) alloc_bootmem_pages(PAGE_SIZE); 118 page_table = (pte_t *) alloc_bootmem_pages(PAGE_SIZE);
126#endif 119#endif
@@ -138,6 +131,64 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
138 return pte_offset_kernel(pmd, 0); 131 return pte_offset_kernel(pmd, 0);
139} 132}
140 133
134pmd_t * __init populate_extra_pmd(unsigned long vaddr)
135{
136 int pgd_idx = pgd_index(vaddr);
137 int pmd_idx = pmd_index(vaddr);
138
139 return one_md_table_init(swapper_pg_dir + pgd_idx) + pmd_idx;
140}
141
142pte_t * __init populate_extra_pte(unsigned long vaddr)
143{
144 int pte_idx = pte_index(vaddr);
145 pmd_t *pmd;
146
147 pmd = populate_extra_pmd(vaddr);
148 return one_page_table_init(pmd) + pte_idx;
149}
150
151static pte_t *__init page_table_kmap_check(pte_t *pte, pmd_t *pmd,
152 unsigned long vaddr, pte_t *lastpte)
153{
154#ifdef CONFIG_HIGHMEM
155 /*
156 * Something (early fixmap) may already have put a pte
157 * page here, which causes the page table allocation
158 * to become nonlinear. Attempt to fix it, and if it
159 * is still nonlinear then we have to bug.
160 */
161 int pmd_idx_kmap_begin = fix_to_virt(FIX_KMAP_END) >> PMD_SHIFT;
162 int pmd_idx_kmap_end = fix_to_virt(FIX_KMAP_BEGIN) >> PMD_SHIFT;
163
164 if (pmd_idx_kmap_begin != pmd_idx_kmap_end
165 && (vaddr >> PMD_SHIFT) >= pmd_idx_kmap_begin
166 && (vaddr >> PMD_SHIFT) <= pmd_idx_kmap_end
167 && ((__pa(pte) >> PAGE_SHIFT) < e820_table_start
168 || (__pa(pte) >> PAGE_SHIFT) >= e820_table_end)) {
169 pte_t *newpte;
170 int i;
171
172 BUG_ON(after_bootmem);
173 newpte = alloc_low_page();
174 for (i = 0; i < PTRS_PER_PTE; i++)
175 set_pte(newpte + i, pte[i]);
176
177 paravirt_alloc_pte(&init_mm, __pa(newpte) >> PAGE_SHIFT);
178 set_pmd(pmd, __pmd(__pa(newpte)|_PAGE_TABLE));
179 BUG_ON(newpte != pte_offset_kernel(pmd, 0));
180 __flush_tlb_all();
181
182 paravirt_release_pte(__pa(pte) >> PAGE_SHIFT);
183 pte = newpte;
184 }
185 BUG_ON(vaddr < fix_to_virt(FIX_KMAP_BEGIN - 1)
186 && vaddr > fix_to_virt(FIX_KMAP_END)
187 && lastpte && lastpte + PTRS_PER_PTE != pte);
188#endif
189 return pte;
190}
191
141/* 192/*
142 * This function initializes a certain range of kernel virtual memory 193 * This function initializes a certain range of kernel virtual memory
143 * with new bootmem page tables, everywhere page tables are missing in 194 * with new bootmem page tables, everywhere page tables are missing in
@@ -154,6 +205,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
154 unsigned long vaddr; 205 unsigned long vaddr;
155 pgd_t *pgd; 206 pgd_t *pgd;
156 pmd_t *pmd; 207 pmd_t *pmd;
208 pte_t *pte = NULL;
157 209
158 vaddr = start; 210 vaddr = start;
159 pgd_idx = pgd_index(vaddr); 211 pgd_idx = pgd_index(vaddr);
@@ -165,7 +217,8 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
165 pmd = pmd + pmd_index(vaddr); 217 pmd = pmd + pmd_index(vaddr);
166 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end); 218 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end);
167 pmd++, pmd_idx++) { 219 pmd++, pmd_idx++) {
168 one_page_table_init(pmd); 220 pte = page_table_kmap_check(one_page_table_init(pmd),
221 pmd, vaddr, pte);
169 222
170 vaddr += PMD_SIZE; 223 vaddr += PMD_SIZE;
171 } 224 }
@@ -185,11 +238,14 @@ static inline int is_kernel_text(unsigned long addr)
185 * of max_low_pfn pages, by creating page tables starting from address 238 * of max_low_pfn pages, by creating page tables starting from address
186 * PAGE_OFFSET: 239 * PAGE_OFFSET:
187 */ 240 */
188static void __init kernel_physical_mapping_init(pgd_t *pgd_base, 241unsigned long __init
189 unsigned long start_pfn, 242kernel_physical_mapping_init(unsigned long start,
190 unsigned long end_pfn, 243 unsigned long end,
191 int use_pse) 244 unsigned long page_size_mask)
192{ 245{
246 int use_pse = page_size_mask == (1<<PG_LEVEL_2M);
247 unsigned long start_pfn, end_pfn;
248 pgd_t *pgd_base = swapper_pg_dir;
193 int pgd_idx, pmd_idx, pte_ofs; 249 int pgd_idx, pmd_idx, pte_ofs;
194 unsigned long pfn; 250 unsigned long pfn;
195 pgd_t *pgd; 251 pgd_t *pgd;
@@ -198,6 +254,9 @@ static void __init kernel_physical_mapping_init(pgd_t *pgd_base,
198 unsigned pages_2m, pages_4k; 254 unsigned pages_2m, pages_4k;
199 int mapping_iter; 255 int mapping_iter;
200 256
257 start_pfn = start >> PAGE_SHIFT;
258 end_pfn = end >> PAGE_SHIFT;
259
201 /* 260 /*
202 * First iteration will setup identity mapping using large/small pages 261 * First iteration will setup identity mapping using large/small pages
203 * based on use_pse, with other attributes same as set by 262 * based on use_pse, with other attributes same as set by
@@ -312,26 +371,6 @@ repeat:
312 mapping_iter = 2; 371 mapping_iter = 2;
313 goto repeat; 372 goto repeat;
314 } 373 }
315}
316
317/*
318 * devmem_is_allowed() checks to see if /dev/mem access to a certain address
319 * is valid. The argument is a physical page number.
320 *
321 *
322 * On x86, access has to be given to the first megabyte of ram because that area
323 * contains bios code and data regions used by X and dosemu and similar apps.
324 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
325 * mmio resources as well as potential bios/acpi data regions.
326 */
327int devmem_is_allowed(unsigned long pagenr)
328{
329 if (pagenr <= 256)
330 return 1;
331 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
332 return 0;
333 if (!page_is_ram(pagenr))
334 return 1;
335 return 0; 374 return 0;
336} 375}
337 376
@@ -427,22 +466,10 @@ void __init add_highpages_with_active_regions(int nid, unsigned long start_pfn,
427 work_with_active_regions(nid, add_highpages_work_fn, &data); 466 work_with_active_regions(nid, add_highpages_work_fn, &data);
428} 467}
429 468
430#ifndef CONFIG_NUMA
431static void __init set_highmem_pages_init(void)
432{
433 add_highpages_with_active_regions(0, highstart_pfn, highend_pfn);
434
435 totalram_pages += totalhigh_pages;
436}
437#endif /* !CONFIG_NUMA */
438
439#else 469#else
440static inline void permanent_kmaps_init(pgd_t *pgd_base) 470static inline void permanent_kmaps_init(pgd_t *pgd_base)
441{ 471{
442} 472}
443static inline void set_highmem_pages_init(void)
444{
445}
446#endif /* CONFIG_HIGHMEM */ 473#endif /* CONFIG_HIGHMEM */
447 474
448void __init native_pagetable_setup_start(pgd_t *base) 475void __init native_pagetable_setup_start(pgd_t *base)
@@ -500,15 +527,15 @@ void __init native_pagetable_setup_done(pgd_t *base)
500 * be partially populated, and so it avoids stomping on any existing 527 * be partially populated, and so it avoids stomping on any existing
501 * mappings. 528 * mappings.
502 */ 529 */
503static void __init early_ioremap_page_table_range_init(pgd_t *pgd_base) 530void __init early_ioremap_page_table_range_init(void)
504{ 531{
532 pgd_t *pgd_base = swapper_pg_dir;
505 unsigned long vaddr, end; 533 unsigned long vaddr, end;
506 534
507 /* 535 /*
508 * Fixed mappings, only the page table structure has to be 536 * Fixed mappings, only the page table structure has to be
509 * created - mappings will be set by set_fixmap(): 537 * created - mappings will be set by set_fixmap():
510 */ 538 */
511 early_ioremap_clear();
512 vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK; 539 vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK;
513 end = (FIXADDR_TOP + PMD_SIZE - 1) & PMD_MASK; 540 end = (FIXADDR_TOP + PMD_SIZE - 1) & PMD_MASK;
514 page_table_range_init(vaddr, end, pgd_base); 541 page_table_range_init(vaddr, end, pgd_base);
@@ -597,7 +624,7 @@ static int __init noexec_setup(char *str)
597} 624}
598early_param("noexec", noexec_setup); 625early_param("noexec", noexec_setup);
599 626
600static void __init set_nx(void) 627void __init set_nx(void)
601{ 628{
602 unsigned int v[4], l, h; 629 unsigned int v[4], l, h;
603 630
@@ -633,75 +660,97 @@ static int __init parse_highmem(char *arg)
633} 660}
634early_param("highmem", parse_highmem); 661early_param("highmem", parse_highmem);
635 662
663#define MSG_HIGHMEM_TOO_BIG \
664 "highmem size (%luMB) is bigger than pages available (%luMB)!\n"
665
666#define MSG_LOWMEM_TOO_SMALL \
667 "highmem size (%luMB) results in <64MB lowmem, ignoring it!\n"
636/* 668/*
637 * Determine low and high memory ranges: 669 * All of RAM fits into lowmem - but if user wants highmem
670 * artificially via the highmem=x boot parameter then create
671 * it:
638 */ 672 */
639void __init find_low_pfn_range(void) 673void __init lowmem_pfn_init(void)
640{ 674{
641 /* it could update max_pfn */
642
643 /* max_low_pfn is 0, we already have early_res support */ 675 /* max_low_pfn is 0, we already have early_res support */
644
645 max_low_pfn = max_pfn; 676 max_low_pfn = max_pfn;
646 if (max_low_pfn > MAXMEM_PFN) { 677
647 if (highmem_pages == -1) 678 if (highmem_pages == -1)
648 highmem_pages = max_pfn - MAXMEM_PFN; 679 highmem_pages = 0;
649 if (highmem_pages + MAXMEM_PFN < max_pfn) 680#ifdef CONFIG_HIGHMEM
650 max_pfn = MAXMEM_PFN + highmem_pages; 681 if (highmem_pages >= max_pfn) {
651 if (highmem_pages + MAXMEM_PFN > max_pfn) { 682 printk(KERN_ERR MSG_HIGHMEM_TOO_BIG,
652 printk(KERN_WARNING "only %luMB highmem pages " 683 pages_to_mb(highmem_pages), pages_to_mb(max_pfn));
653 "available, ignoring highmem size of %uMB.\n", 684 highmem_pages = 0;
654 pages_to_mb(max_pfn - MAXMEM_PFN), 685 }
686 if (highmem_pages) {
687 if (max_low_pfn - highmem_pages < 64*1024*1024/PAGE_SIZE) {
688 printk(KERN_ERR MSG_LOWMEM_TOO_SMALL,
655 pages_to_mb(highmem_pages)); 689 pages_to_mb(highmem_pages));
656 highmem_pages = 0; 690 highmem_pages = 0;
657 } 691 }
658 max_low_pfn = MAXMEM_PFN; 692 max_low_pfn -= highmem_pages;
693 }
694#else
695 if (highmem_pages)
696 printk(KERN_ERR "ignoring highmem size on non-highmem kernel!\n");
697#endif
698}
699
700#define MSG_HIGHMEM_TOO_SMALL \
701 "only %luMB highmem pages available, ignoring highmem size of %luMB!\n"
702
703#define MSG_HIGHMEM_TRIMMED \
704 "Warning: only 4GB will be used. Use a HIGHMEM64G enabled kernel!\n"
705/*
706 * We have more RAM than fits into lowmem - we try to put it into
707 * highmem, also taking the highmem=x boot parameter into account:
708 */
709void __init highmem_pfn_init(void)
710{
711 max_low_pfn = MAXMEM_PFN;
712
713 if (highmem_pages == -1)
714 highmem_pages = max_pfn - MAXMEM_PFN;
715
716 if (highmem_pages + MAXMEM_PFN < max_pfn)
717 max_pfn = MAXMEM_PFN + highmem_pages;
718
719 if (highmem_pages + MAXMEM_PFN > max_pfn) {
720 printk(KERN_WARNING MSG_HIGHMEM_TOO_SMALL,
721 pages_to_mb(max_pfn - MAXMEM_PFN),
722 pages_to_mb(highmem_pages));
723 highmem_pages = 0;
724 }
659#ifndef CONFIG_HIGHMEM 725#ifndef CONFIG_HIGHMEM
660 /* Maximum memory usable is what is directly addressable */ 726 /* Maximum memory usable is what is directly addressable */
661 printk(KERN_WARNING "Warning only %ldMB will be used.\n", 727 printk(KERN_WARNING "Warning only %ldMB will be used.\n", MAXMEM>>20);
662 MAXMEM>>20); 728 if (max_pfn > MAX_NONPAE_PFN)
663 if (max_pfn > MAX_NONPAE_PFN) 729 printk(KERN_WARNING "Use a HIGHMEM64G enabled kernel.\n");
664 printk(KERN_WARNING 730 else
665 "Use a HIGHMEM64G enabled kernel.\n"); 731 printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n");
666 else 732 max_pfn = MAXMEM_PFN;
667 printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n");
668 max_pfn = MAXMEM_PFN;
669#else /* !CONFIG_HIGHMEM */ 733#else /* !CONFIG_HIGHMEM */
670#ifndef CONFIG_HIGHMEM64G 734#ifndef CONFIG_HIGHMEM64G
671 if (max_pfn > MAX_NONPAE_PFN) { 735 if (max_pfn > MAX_NONPAE_PFN) {
672 max_pfn = MAX_NONPAE_PFN; 736 max_pfn = MAX_NONPAE_PFN;
673 printk(KERN_WARNING "Warning only 4GB will be used." 737 printk(KERN_WARNING MSG_HIGHMEM_TRIMMED);
674 "Use a HIGHMEM64G enabled kernel.\n"); 738 }
675 }
676#endif /* !CONFIG_HIGHMEM64G */ 739#endif /* !CONFIG_HIGHMEM64G */
677#endif /* !CONFIG_HIGHMEM */ 740#endif /* !CONFIG_HIGHMEM */
678 } else { 741}
679 if (highmem_pages == -1) 742
680 highmem_pages = 0; 743/*
681#ifdef CONFIG_HIGHMEM 744 * Determine low and high memory ranges:
682 if (highmem_pages >= max_pfn) { 745 */
683 printk(KERN_ERR "highmem size specified (%uMB) is " 746void __init find_low_pfn_range(void)
684 "bigger than pages available (%luMB)!.\n", 747{
685 pages_to_mb(highmem_pages), 748 /* it could update max_pfn */
686 pages_to_mb(max_pfn)); 749
687 highmem_pages = 0; 750 if (max_pfn <= MAXMEM_PFN)
688 } 751 lowmem_pfn_init();
689 if (highmem_pages) { 752 else
690 if (max_low_pfn - highmem_pages < 753 highmem_pfn_init();
691 64*1024*1024/PAGE_SIZE){
692 printk(KERN_ERR "highmem size %uMB results in "
693 "smaller than 64MB lowmem, ignoring it.\n"
694 , pages_to_mb(highmem_pages));
695 highmem_pages = 0;
696 }
697 max_low_pfn -= highmem_pages;
698 }
699#else
700 if (highmem_pages)
701 printk(KERN_ERR "ignoring highmem size on non-highmem"
702 " kernel!\n");
703#endif
704 }
705} 754}
706 755
707#ifndef CONFIG_NEED_MULTIPLE_NODES 756#ifndef CONFIG_NEED_MULTIPLE_NODES
@@ -727,6 +776,8 @@ void __init initmem_init(unsigned long start_pfn,
727#ifdef CONFIG_FLATMEM 776#ifdef CONFIG_FLATMEM
728 max_mapnr = num_physpages; 777 max_mapnr = num_physpages;
729#endif 778#endif
779 __vmalloc_start_set = true;
780
730 printk(KERN_NOTICE "%ldMB LOWMEM available.\n", 781 printk(KERN_NOTICE "%ldMB LOWMEM available.\n",
731 pages_to_mb(max_low_pfn)); 782 pages_to_mb(max_low_pfn));
732 783
@@ -748,176 +799,66 @@ static void __init zone_sizes_init(void)
748 free_area_init_nodes(max_zone_pfns); 799 free_area_init_nodes(max_zone_pfns);
749} 800}
750 801
802static unsigned long __init setup_node_bootmem(int nodeid,
803 unsigned long start_pfn,
804 unsigned long end_pfn,
805 unsigned long bootmap)
806{
807 unsigned long bootmap_size;
808
809 /* don't touch min_low_pfn */
810 bootmap_size = init_bootmem_node(NODE_DATA(nodeid),
811 bootmap >> PAGE_SHIFT,
812 start_pfn, end_pfn);
813 printk(KERN_INFO " node %d low ram: %08lx - %08lx\n",
814 nodeid, start_pfn<<PAGE_SHIFT, end_pfn<<PAGE_SHIFT);
815 printk(KERN_INFO " node %d bootmap %08lx - %08lx\n",
816 nodeid, bootmap, bootmap + bootmap_size);
817 free_bootmem_with_active_regions(nodeid, end_pfn);
818 early_res_to_bootmem(start_pfn<<PAGE_SHIFT, end_pfn<<PAGE_SHIFT);
819
820 return bootmap + bootmap_size;
821}
822
751void __init setup_bootmem_allocator(void) 823void __init setup_bootmem_allocator(void)
752{ 824{
753 int i; 825 int nodeid;
754 unsigned long bootmap_size, bootmap; 826 unsigned long bootmap_size, bootmap;
755 /* 827 /*
756 * Initialize the boot-time allocator (with low memory only): 828 * Initialize the boot-time allocator (with low memory only):
757 */ 829 */
758 bootmap_size = bootmem_bootmap_pages(max_low_pfn)<<PAGE_SHIFT; 830 bootmap_size = bootmem_bootmap_pages(max_low_pfn)<<PAGE_SHIFT;
759 bootmap = find_e820_area(min_low_pfn<<PAGE_SHIFT, 831 bootmap = find_e820_area(0, max_pfn_mapped<<PAGE_SHIFT, bootmap_size,
760 max_pfn_mapped<<PAGE_SHIFT, bootmap_size,
761 PAGE_SIZE); 832 PAGE_SIZE);
762 if (bootmap == -1L) 833 if (bootmap == -1L)
763 panic("Cannot find bootmem map of size %ld\n", bootmap_size); 834 panic("Cannot find bootmem map of size %ld\n", bootmap_size);
764 reserve_early(bootmap, bootmap + bootmap_size, "BOOTMAP"); 835 reserve_early(bootmap, bootmap + bootmap_size, "BOOTMAP");
765 836
766 /* don't touch min_low_pfn */
767 bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap >> PAGE_SHIFT,
768 min_low_pfn, max_low_pfn);
769 printk(KERN_INFO " mapped low ram: 0 - %08lx\n", 837 printk(KERN_INFO " mapped low ram: 0 - %08lx\n",
770 max_pfn_mapped<<PAGE_SHIFT); 838 max_pfn_mapped<<PAGE_SHIFT);
771 printk(KERN_INFO " low ram: %08lx - %08lx\n", 839 printk(KERN_INFO " low ram: 0 - %08lx\n", max_low_pfn<<PAGE_SHIFT);
772 min_low_pfn<<PAGE_SHIFT, max_low_pfn<<PAGE_SHIFT);
773 printk(KERN_INFO " bootmap %08lx - %08lx\n",
774 bootmap, bootmap + bootmap_size);
775 for_each_online_node(i)
776 free_bootmem_with_active_regions(i, max_low_pfn);
777 early_res_to_bootmem(0, max_low_pfn<<PAGE_SHIFT);
778
779 after_init_bootmem = 1;
780}
781
782static void __init find_early_table_space(unsigned long end, int use_pse)
783{
784 unsigned long puds, pmds, ptes, tables, start;
785 840
786 puds = (end + PUD_SIZE - 1) >> PUD_SHIFT; 841 for_each_online_node(nodeid) {
787 tables = PAGE_ALIGN(puds * sizeof(pud_t)); 842 unsigned long start_pfn, end_pfn;
788 843
789 pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT; 844#ifdef CONFIG_NEED_MULTIPLE_NODES
790 tables += PAGE_ALIGN(pmds * sizeof(pmd_t)); 845 start_pfn = node_start_pfn[nodeid];
791 846 end_pfn = node_end_pfn[nodeid];
792 if (use_pse) { 847 if (start_pfn > max_low_pfn)
793 unsigned long extra; 848 continue;
794 849 if (end_pfn > max_low_pfn)
795 extra = end - ((end>>PMD_SHIFT) << PMD_SHIFT); 850 end_pfn = max_low_pfn;
796 extra += PMD_SIZE;
797 ptes = (extra + PAGE_SIZE - 1) >> PAGE_SHIFT;
798 } else
799 ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT;
800
801 tables += PAGE_ALIGN(ptes * sizeof(pte_t));
802
803 /* for fixmap */
804 tables += PAGE_SIZE * 2;
805
806 /*
807 * RED-PEN putting page tables only on node 0 could
808 * cause a hotspot and fill up ZONE_DMA. The page tables
809 * need roughly 0.5KB per GB.
810 */
811 start = 0x7000;
812 table_start = find_e820_area(start, max_pfn_mapped<<PAGE_SHIFT,
813 tables, PAGE_SIZE);
814 if (table_start == -1UL)
815 panic("Cannot find space for the kernel page tables");
816
817 table_start >>= PAGE_SHIFT;
818 table_end = table_start;
819 table_top = table_start + (tables>>PAGE_SHIFT);
820
821 printk(KERN_DEBUG "kernel direct mapping tables up to %lx @ %lx-%lx\n",
822 end, table_start << PAGE_SHIFT,
823 (table_start << PAGE_SHIFT) + tables);
824}
825
826unsigned long __init_refok init_memory_mapping(unsigned long start,
827 unsigned long end)
828{
829 pgd_t *pgd_base = swapper_pg_dir;
830 unsigned long start_pfn, end_pfn;
831 unsigned long big_page_start;
832#ifdef CONFIG_DEBUG_PAGEALLOC
833 /*
834 * For CONFIG_DEBUG_PAGEALLOC, identity mapping will use small pages.
835 * This will simplify cpa(), which otherwise needs to support splitting
836 * large pages into small in interrupt context, etc.
837 */
838 int use_pse = 0;
839#else 851#else
840 int use_pse = cpu_has_pse; 852 start_pfn = 0;
853 end_pfn = max_low_pfn;
841#endif 854#endif
842 855 bootmap = setup_node_bootmem(nodeid, start_pfn, end_pfn,
843 /* 856 bootmap);
844 * Find space for the kernel direct mapping tables.
845 */
846 if (!after_init_bootmem)
847 find_early_table_space(end, use_pse);
848
849#ifdef CONFIG_X86_PAE
850 set_nx();
851 if (nx_enabled)
852 printk(KERN_INFO "NX (Execute Disable) protection: active\n");
853#endif
854
855 /* Enable PSE if available */
856 if (cpu_has_pse)
857 set_in_cr4(X86_CR4_PSE);
858
859 /* Enable PGE if available */
860 if (cpu_has_pge) {
861 set_in_cr4(X86_CR4_PGE);
862 __supported_pte_mask |= _PAGE_GLOBAL;
863 } 857 }
864 858
865 /* 859 after_bootmem = 1;
866 * Don't use a large page for the first 2/4MB of memory
867 * because there are often fixed size MTRRs in there
868 * and overlapping MTRRs into large pages can cause
869 * slowdowns.
870 */
871 big_page_start = PMD_SIZE;
872
873 if (start < big_page_start) {
874 start_pfn = start >> PAGE_SHIFT;
875 end_pfn = min(big_page_start>>PAGE_SHIFT, end>>PAGE_SHIFT);
876 } else {
877 /* head is not big page alignment ? */
878 start_pfn = start >> PAGE_SHIFT;
879 end_pfn = ((start + (PMD_SIZE - 1))>>PMD_SHIFT)
880 << (PMD_SHIFT - PAGE_SHIFT);
881 }
882 if (start_pfn < end_pfn)
883 kernel_physical_mapping_init(pgd_base, start_pfn, end_pfn, 0);
884
885 /* big page range */
886 start_pfn = ((start + (PMD_SIZE - 1))>>PMD_SHIFT)
887 << (PMD_SHIFT - PAGE_SHIFT);
888 if (start_pfn < (big_page_start >> PAGE_SHIFT))
889 start_pfn = big_page_start >> PAGE_SHIFT;
890 end_pfn = (end>>PMD_SHIFT) << (PMD_SHIFT - PAGE_SHIFT);
891 if (start_pfn < end_pfn)
892 kernel_physical_mapping_init(pgd_base, start_pfn, end_pfn,
893 use_pse);
894
895 /* tail is not big page alignment ? */
896 start_pfn = end_pfn;
897 if (start_pfn > (big_page_start>>PAGE_SHIFT)) {
898 end_pfn = end >> PAGE_SHIFT;
899 if (start_pfn < end_pfn)
900 kernel_physical_mapping_init(pgd_base, start_pfn,
901 end_pfn, 0);
902 }
903
904 early_ioremap_page_table_range_init(pgd_base);
905
906 load_cr3(swapper_pg_dir);
907
908 __flush_tlb_all();
909
910 if (!after_init_bootmem)
911 reserve_early(table_start << PAGE_SHIFT,
912 table_end << PAGE_SHIFT, "PGTABLE");
913
914 if (!after_init_bootmem)
915 early_memtest(start, end);
916
917 return end >> PAGE_SHIFT;
918} 860}
919 861
920
921/* 862/*
922 * paging_init() sets up the page tables - note that the first 8MB are 863 * paging_init() sets up the page tables - note that the first 8MB are
923 * already mapped by head.S. 864 * already mapped by head.S.
@@ -1151,52 +1092,6 @@ void mark_rodata_ro(void)
1151} 1092}
1152#endif 1093#endif
1153 1094
1154void free_init_pages(char *what, unsigned long begin, unsigned long end)
1155{
1156#ifdef CONFIG_DEBUG_PAGEALLOC
1157 /*
1158 * If debugging page accesses then do not free this memory but
1159 * mark them not present - any buggy init-section access will
1160 * create a kernel page fault:
1161 */
1162 printk(KERN_INFO "debug: unmapping init memory %08lx..%08lx\n",
1163 begin, PAGE_ALIGN(end));
1164 set_memory_np(begin, (end - begin) >> PAGE_SHIFT);
1165#else
1166 unsigned long addr;
1167
1168 /*
1169 * We just marked the kernel text read only above, now that
1170 * we are going to free part of that, we need to make that
1171 * writeable first.
1172 */
1173 set_memory_rw(begin, (end - begin) >> PAGE_SHIFT);
1174
1175 for (addr = begin; addr < end; addr += PAGE_SIZE) {
1176 ClearPageReserved(virt_to_page(addr));
1177 init_page_count(virt_to_page(addr));
1178 memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
1179 free_page(addr);
1180 totalram_pages++;
1181 }
1182 printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
1183#endif
1184}
1185
1186void free_initmem(void)
1187{
1188 free_init_pages("unused kernel memory",
1189 (unsigned long)(&__init_begin),
1190 (unsigned long)(&__init_end));
1191}
1192
1193#ifdef CONFIG_BLK_DEV_INITRD
1194void free_initrd_mem(unsigned long start, unsigned long end)
1195{
1196 free_init_pages("initrd memory", start, end);
1197}
1198#endif
1199
1200int __init reserve_bootmem_generic(unsigned long phys, unsigned long len, 1095int __init reserve_bootmem_generic(unsigned long phys, unsigned long len,
1201 int flags) 1096 int flags)
1202{ 1097{
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 23f68e77ad1f..54efa57d1c03 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -48,6 +48,7 @@
48#include <asm/kdebug.h> 48#include <asm/kdebug.h>
49#include <asm/numa.h> 49#include <asm/numa.h>
50#include <asm/cacheflush.h> 50#include <asm/cacheflush.h>
51#include <asm/init.h>
51 52
52/* 53/*
53 * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries. 54 * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries.
@@ -61,12 +62,6 @@ static unsigned long dma_reserve __initdata;
61 62
62DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); 63DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
63 64
64int direct_gbpages
65#ifdef CONFIG_DIRECT_GBPAGES
66 = 1
67#endif
68;
69
70static int __init parse_direct_gbpages_off(char *arg) 65static int __init parse_direct_gbpages_off(char *arg)
71{ 66{
72 direct_gbpages = 0; 67 direct_gbpages = 0;
@@ -87,12 +82,10 @@ early_param("gbpages", parse_direct_gbpages_on);
87 * around without checking the pgd every time. 82 * around without checking the pgd every time.
88 */ 83 */
89 84
90int after_bootmem;
91
92pteval_t __supported_pte_mask __read_mostly = ~_PAGE_IOMAP; 85pteval_t __supported_pte_mask __read_mostly = ~_PAGE_IOMAP;
93EXPORT_SYMBOL_GPL(__supported_pte_mask); 86EXPORT_SYMBOL_GPL(__supported_pte_mask);
94 87
95static int do_not_nx __cpuinitdata; 88static int disable_nx __cpuinitdata;
96 89
97/* 90/*
98 * noexec=on|off 91 * noexec=on|off
@@ -107,9 +100,9 @@ static int __init nonx_setup(char *str)
107 return -EINVAL; 100 return -EINVAL;
108 if (!strncmp(str, "on", 2)) { 101 if (!strncmp(str, "on", 2)) {
109 __supported_pte_mask |= _PAGE_NX; 102 __supported_pte_mask |= _PAGE_NX;
110 do_not_nx = 0; 103 disable_nx = 0;
111 } else if (!strncmp(str, "off", 3)) { 104 } else if (!strncmp(str, "off", 3)) {
112 do_not_nx = 1; 105 disable_nx = 1;
113 __supported_pte_mask &= ~_PAGE_NX; 106 __supported_pte_mask &= ~_PAGE_NX;
114 } 107 }
115 return 0; 108 return 0;
@@ -121,7 +114,7 @@ void __cpuinit check_efer(void)
121 unsigned long efer; 114 unsigned long efer;
122 115
123 rdmsrl(MSR_EFER, efer); 116 rdmsrl(MSR_EFER, efer);
124 if (!(efer & EFER_NX) || do_not_nx) 117 if (!(efer & EFER_NX) || disable_nx)
125 __supported_pte_mask &= ~_PAGE_NX; 118 __supported_pte_mask &= ~_PAGE_NX;
126} 119}
127 120
@@ -168,34 +161,51 @@ static __ref void *spp_getpage(void)
168 return ptr; 161 return ptr;
169} 162}
170 163
171void 164static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
172set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
173{ 165{
174 pud_t *pud; 166 if (pgd_none(*pgd)) {
175 pmd_t *pmd; 167 pud_t *pud = (pud_t *)spp_getpage();
176 pte_t *pte; 168 pgd_populate(&init_mm, pgd, pud);
169 if (pud != pud_offset(pgd, 0))
170 printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
171 pud, pud_offset(pgd, 0));
172 }
173 return pud_offset(pgd, vaddr);
174}
177 175
178 pud = pud_page + pud_index(vaddr); 176static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
177{
179 if (pud_none(*pud)) { 178 if (pud_none(*pud)) {
180 pmd = (pmd_t *) spp_getpage(); 179 pmd_t *pmd = (pmd_t *) spp_getpage();
181 pud_populate(&init_mm, pud, pmd); 180 pud_populate(&init_mm, pud, pmd);
182 if (pmd != pmd_offset(pud, 0)) { 181 if (pmd != pmd_offset(pud, 0))
183 printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n", 182 printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
184 pmd, pmd_offset(pud, 0)); 183 pmd, pmd_offset(pud, 0));
185 return;
186 }
187 } 184 }
188 pmd = pmd_offset(pud, vaddr); 185 return pmd_offset(pud, vaddr);
186}
187
188static pte_t *fill_pte(pmd_t *pmd, unsigned long vaddr)
189{
189 if (pmd_none(*pmd)) { 190 if (pmd_none(*pmd)) {
190 pte = (pte_t *) spp_getpage(); 191 pte_t *pte = (pte_t *) spp_getpage();
191 pmd_populate_kernel(&init_mm, pmd, pte); 192 pmd_populate_kernel(&init_mm, pmd, pte);
192 if (pte != pte_offset_kernel(pmd, 0)) { 193 if (pte != pte_offset_kernel(pmd, 0))
193 printk(KERN_ERR "PAGETABLE BUG #02!\n"); 194 printk(KERN_ERR "PAGETABLE BUG #02!\n");
194 return;
195 }
196 } 195 }
196 return pte_offset_kernel(pmd, vaddr);
197}
198
199void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
200{
201 pud_t *pud;
202 pmd_t *pmd;
203 pte_t *pte;
204
205 pud = pud_page + pud_index(vaddr);
206 pmd = fill_pmd(pud, vaddr);
207 pte = fill_pte(pmd, vaddr);
197 208
198 pte = pte_offset_kernel(pmd, vaddr);
199 set_pte(pte, new_pte); 209 set_pte(pte, new_pte);
200 210
201 /* 211 /*
@@ -205,8 +215,7 @@ set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
205 __flush_tlb_one(vaddr); 215 __flush_tlb_one(vaddr);
206} 216}
207 217
208void 218void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
209set_pte_vaddr(unsigned long vaddr, pte_t pteval)
210{ 219{
211 pgd_t *pgd; 220 pgd_t *pgd;
212 pud_t *pud_page; 221 pud_t *pud_page;
@@ -223,6 +232,24 @@ set_pte_vaddr(unsigned long vaddr, pte_t pteval)
223 set_pte_vaddr_pud(pud_page, vaddr, pteval); 232 set_pte_vaddr_pud(pud_page, vaddr, pteval);
224} 233}
225 234
235pmd_t * __init populate_extra_pmd(unsigned long vaddr)
236{
237 pgd_t *pgd;
238 pud_t *pud;
239
240 pgd = pgd_offset_k(vaddr);
241 pud = fill_pud(pgd, vaddr);
242 return fill_pmd(pud, vaddr);
243}
244
245pte_t * __init populate_extra_pte(unsigned long vaddr)
246{
247 pmd_t *pmd;
248
249 pmd = populate_extra_pmd(vaddr);
250 return fill_pte(pmd, vaddr);
251}
252
226/* 253/*
227 * Create large page table mappings for a range of physical addresses. 254 * Create large page table mappings for a range of physical addresses.
228 */ 255 */
@@ -291,13 +318,9 @@ void __init cleanup_highmap(void)
291 } 318 }
292} 319}
293 320
294static unsigned long __initdata table_start;
295static unsigned long __meminitdata table_end;
296static unsigned long __meminitdata table_top;
297
298static __ref void *alloc_low_page(unsigned long *phys) 321static __ref void *alloc_low_page(unsigned long *phys)
299{ 322{
300 unsigned long pfn = table_end++; 323 unsigned long pfn = e820_table_end++;
301 void *adr; 324 void *adr;
302 325
303 if (after_bootmem) { 326 if (after_bootmem) {
@@ -307,7 +330,7 @@ static __ref void *alloc_low_page(unsigned long *phys)
307 return adr; 330 return adr;
308 } 331 }
309 332
310 if (pfn >= table_top) 333 if (pfn >= e820_table_top)
311 panic("alloc_low_page: ran out of memory"); 334 panic("alloc_low_page: ran out of memory");
312 335
313 adr = early_memremap(pfn * PAGE_SIZE, PAGE_SIZE); 336 adr = early_memremap(pfn * PAGE_SIZE, PAGE_SIZE);
@@ -547,58 +570,10 @@ phys_pud_update(pgd_t *pgd, unsigned long addr, unsigned long end,
547 return phys_pud_init(pud, addr, end, page_size_mask); 570 return phys_pud_init(pud, addr, end, page_size_mask);
548} 571}
549 572
550static void __init find_early_table_space(unsigned long end, int use_pse, 573unsigned long __init
551 int use_gbpages) 574kernel_physical_mapping_init(unsigned long start,
552{ 575 unsigned long end,
553 unsigned long puds, pmds, ptes, tables, start; 576 unsigned long page_size_mask)
554
555 puds = (end + PUD_SIZE - 1) >> PUD_SHIFT;
556 tables = roundup(puds * sizeof(pud_t), PAGE_SIZE);
557 if (use_gbpages) {
558 unsigned long extra;
559 extra = end - ((end>>PUD_SHIFT) << PUD_SHIFT);
560 pmds = (extra + PMD_SIZE - 1) >> PMD_SHIFT;
561 } else
562 pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT;
563 tables += roundup(pmds * sizeof(pmd_t), PAGE_SIZE);
564
565 if (use_pse) {
566 unsigned long extra;
567 extra = end - ((end>>PMD_SHIFT) << PMD_SHIFT);
568 ptes = (extra + PAGE_SIZE - 1) >> PAGE_SHIFT;
569 } else
570 ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT;
571 tables += roundup(ptes * sizeof(pte_t), PAGE_SIZE);
572
573 /*
574 * RED-PEN putting page tables only on node 0 could
575 * cause a hotspot and fill up ZONE_DMA. The page tables
576 * need roughly 0.5KB per GB.
577 */
578 start = 0x8000;
579 table_start = find_e820_area(start, end, tables, PAGE_SIZE);
580 if (table_start == -1UL)
581 panic("Cannot find space for the kernel page tables");
582
583 table_start >>= PAGE_SHIFT;
584 table_end = table_start;
585 table_top = table_start + (tables >> PAGE_SHIFT);
586
587 printk(KERN_DEBUG "kernel direct mapping tables up to %lx @ %lx-%lx\n",
588 end, table_start << PAGE_SHIFT, table_top << PAGE_SHIFT);
589}
590
591static void __init init_gbpages(void)
592{
593 if (direct_gbpages && cpu_has_gbpages)
594 printk(KERN_INFO "Using GB pages for direct mapping\n");
595 else
596 direct_gbpages = 0;
597}
598
599static unsigned long __init kernel_physical_mapping_init(unsigned long start,
600 unsigned long end,
601 unsigned long page_size_mask)
602{ 577{
603 578
604 unsigned long next, last_map_addr = end; 579 unsigned long next, last_map_addr = end;
@@ -635,174 +610,6 @@ static unsigned long __init kernel_physical_mapping_init(unsigned long start,
635 return last_map_addr; 610 return last_map_addr;
636} 611}
637 612
638struct map_range {
639 unsigned long start;
640 unsigned long end;
641 unsigned page_size_mask;
642};
643
644#define NR_RANGE_MR 5
645
646static int save_mr(struct map_range *mr, int nr_range,
647 unsigned long start_pfn, unsigned long end_pfn,
648 unsigned long page_size_mask)
649{
650
651 if (start_pfn < end_pfn) {
652 if (nr_range >= NR_RANGE_MR)
653 panic("run out of range for init_memory_mapping\n");
654 mr[nr_range].start = start_pfn<<PAGE_SHIFT;
655 mr[nr_range].end = end_pfn<<PAGE_SHIFT;
656 mr[nr_range].page_size_mask = page_size_mask;
657 nr_range++;
658 }
659
660 return nr_range;
661}
662
663/*
664 * Setup the direct mapping of the physical memory at PAGE_OFFSET.
665 * This runs before bootmem is initialized and gets pages directly from
666 * the physical memory. To access them they are temporarily mapped.
667 */
668unsigned long __init_refok init_memory_mapping(unsigned long start,
669 unsigned long end)
670{
671 unsigned long last_map_addr = 0;
672 unsigned long page_size_mask = 0;
673 unsigned long start_pfn, end_pfn;
674 unsigned long pos;
675
676 struct map_range mr[NR_RANGE_MR];
677 int nr_range, i;
678 int use_pse, use_gbpages;
679
680 printk(KERN_INFO "init_memory_mapping: %016lx-%016lx\n", start, end);
681
682 /*
683 * Find space for the kernel direct mapping tables.
684 *
685 * Later we should allocate these tables in the local node of the
686 * memory mapped. Unfortunately this is done currently before the
687 * nodes are discovered.
688 */
689 if (!after_bootmem)
690 init_gbpages();
691
692#ifdef CONFIG_DEBUG_PAGEALLOC
693 /*
694 * For CONFIG_DEBUG_PAGEALLOC, identity mapping will use small pages.
695 * This will simplify cpa(), which otherwise needs to support splitting
696 * large pages into small in interrupt context, etc.
697 */
698 use_pse = use_gbpages = 0;
699#else
700 use_pse = cpu_has_pse;
701 use_gbpages = direct_gbpages;
702#endif
703
704 if (use_gbpages)
705 page_size_mask |= 1 << PG_LEVEL_1G;
706 if (use_pse)
707 page_size_mask |= 1 << PG_LEVEL_2M;
708
709 memset(mr, 0, sizeof(mr));
710 nr_range = 0;
711
712 /* head if not big page alignment ?*/
713 start_pfn = start >> PAGE_SHIFT;
714 pos = start_pfn << PAGE_SHIFT;
715 end_pfn = ((pos + (PMD_SIZE - 1)) >> PMD_SHIFT)
716 << (PMD_SHIFT - PAGE_SHIFT);
717 if (start_pfn < end_pfn) {
718 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0);
719 pos = end_pfn << PAGE_SHIFT;
720 }
721
722 /* big page (2M) range*/
723 start_pfn = ((pos + (PMD_SIZE - 1))>>PMD_SHIFT)
724 << (PMD_SHIFT - PAGE_SHIFT);
725 end_pfn = ((pos + (PUD_SIZE - 1))>>PUD_SHIFT)
726 << (PUD_SHIFT - PAGE_SHIFT);
727 if (end_pfn > ((end>>PMD_SHIFT)<<(PMD_SHIFT - PAGE_SHIFT)))
728 end_pfn = ((end>>PMD_SHIFT)<<(PMD_SHIFT - PAGE_SHIFT));
729 if (start_pfn < end_pfn) {
730 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn,
731 page_size_mask & (1<<PG_LEVEL_2M));
732 pos = end_pfn << PAGE_SHIFT;
733 }
734
735 /* big page (1G) range */
736 start_pfn = ((pos + (PUD_SIZE - 1))>>PUD_SHIFT)
737 << (PUD_SHIFT - PAGE_SHIFT);
738 end_pfn = (end >> PUD_SHIFT) << (PUD_SHIFT - PAGE_SHIFT);
739 if (start_pfn < end_pfn) {
740 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn,
741 page_size_mask &
742 ((1<<PG_LEVEL_2M)|(1<<PG_LEVEL_1G)));
743 pos = end_pfn << PAGE_SHIFT;
744 }
745
746 /* tail is not big page (1G) alignment */
747 start_pfn = ((pos + (PMD_SIZE - 1))>>PMD_SHIFT)
748 << (PMD_SHIFT - PAGE_SHIFT);
749 end_pfn = (end >> PMD_SHIFT) << (PMD_SHIFT - PAGE_SHIFT);
750 if (start_pfn < end_pfn) {
751 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn,
752 page_size_mask & (1<<PG_LEVEL_2M));
753 pos = end_pfn << PAGE_SHIFT;
754 }
755
756 /* tail is not big page (2M) alignment */
757 start_pfn = pos>>PAGE_SHIFT;
758 end_pfn = end>>PAGE_SHIFT;
759 nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0);
760
761 /* try to merge same page size and continuous */
762 for (i = 0; nr_range > 1 && i < nr_range - 1; i++) {
763 unsigned long old_start;
764 if (mr[i].end != mr[i+1].start ||
765 mr[i].page_size_mask != mr[i+1].page_size_mask)
766 continue;
767 /* move it */
768 old_start = mr[i].start;
769 memmove(&mr[i], &mr[i+1],
770 (nr_range - 1 - i) * sizeof (struct map_range));
771 mr[i--].start = old_start;
772 nr_range--;
773 }
774
775 for (i = 0; i < nr_range; i++)
776 printk(KERN_DEBUG " %010lx - %010lx page %s\n",
777 mr[i].start, mr[i].end,
778 (mr[i].page_size_mask & (1<<PG_LEVEL_1G))?"1G":(
779 (mr[i].page_size_mask & (1<<PG_LEVEL_2M))?"2M":"4k"));
780
781 if (!after_bootmem)
782 find_early_table_space(end, use_pse, use_gbpages);
783
784 for (i = 0; i < nr_range; i++)
785 last_map_addr = kernel_physical_mapping_init(
786 mr[i].start, mr[i].end,
787 mr[i].page_size_mask);
788
789 if (!after_bootmem)
790 mmu_cr4_features = read_cr4();
791 __flush_tlb_all();
792
793 if (!after_bootmem && table_end > table_start)
794 reserve_early(table_start << PAGE_SHIFT,
795 table_end << PAGE_SHIFT, "PGTABLE");
796
797 printk(KERN_INFO "last_map_addr: %lx end: %lx\n",
798 last_map_addr, end);
799
800 if (!after_bootmem)
801 early_memtest(start, end);
802
803 return last_map_addr >> PAGE_SHIFT;
804}
805
806#ifndef CONFIG_NUMA 613#ifndef CONFIG_NUMA
807void __init initmem_init(unsigned long start_pfn, unsigned long end_pfn) 614void __init initmem_init(unsigned long start_pfn, unsigned long end_pfn)
808{ 615{
@@ -874,28 +681,6 @@ EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
874 681
875#endif /* CONFIG_MEMORY_HOTPLUG */ 682#endif /* CONFIG_MEMORY_HOTPLUG */
876 683
877/*
878 * devmem_is_allowed() checks to see if /dev/mem access to a certain address
879 * is valid. The argument is a physical page number.
880 *
881 *
882 * On x86, access has to be given to the first megabyte of ram because that area
883 * contains bios code and data regions used by X and dosemu and similar apps.
884 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
885 * mmio resources as well as potential bios/acpi data regions.
886 */
887int devmem_is_allowed(unsigned long pagenr)
888{
889 if (pagenr <= 256)
890 return 1;
891 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
892 return 0;
893 if (!page_is_ram(pagenr))
894 return 1;
895 return 0;
896}
897
898
899static struct kcore_list kcore_mem, kcore_vmalloc, kcore_kernel, 684static struct kcore_list kcore_mem, kcore_vmalloc, kcore_kernel,
900 kcore_modules, kcore_vsyscall; 685 kcore_modules, kcore_vsyscall;
901 686
@@ -945,43 +730,6 @@ void __init mem_init(void)
945 initsize >> 10); 730 initsize >> 10);
946} 731}
947 732
948void free_init_pages(char *what, unsigned long begin, unsigned long end)
949{
950 unsigned long addr = begin;
951
952 if (addr >= end)
953 return;
954
955 /*
956 * If debugging page accesses then do not free this memory but
957 * mark them not present - any buggy init-section access will
958 * create a kernel page fault:
959 */
960#ifdef CONFIG_DEBUG_PAGEALLOC
961 printk(KERN_INFO "debug: unmapping init memory %08lx..%08lx\n",
962 begin, PAGE_ALIGN(end));
963 set_memory_np(begin, (end - begin) >> PAGE_SHIFT);
964#else
965 printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
966
967 for (; addr < end; addr += PAGE_SIZE) {
968 ClearPageReserved(virt_to_page(addr));
969 init_page_count(virt_to_page(addr));
970 memset((void *)(addr & ~(PAGE_SIZE-1)),
971 POISON_FREE_INITMEM, PAGE_SIZE);
972 free_page(addr);
973 totalram_pages++;
974 }
975#endif
976}
977
978void free_initmem(void)
979{
980 free_init_pages("unused kernel memory",
981 (unsigned long)(&__init_begin),
982 (unsigned long)(&__init_end));
983}
984
985#ifdef CONFIG_DEBUG_RODATA 733#ifdef CONFIG_DEBUG_RODATA
986const int rodata_test_data = 0xC3; 734const int rodata_test_data = 0xC3;
987EXPORT_SYMBOL_GPL(rodata_test_data); 735EXPORT_SYMBOL_GPL(rodata_test_data);
@@ -1020,13 +768,6 @@ void mark_rodata_ro(void)
1020 768
1021#endif 769#endif
1022 770
1023#ifdef CONFIG_BLK_DEV_INITRD
1024void free_initrd_mem(unsigned long start, unsigned long end)
1025{
1026 free_init_pages("initrd memory", start, end);
1027}
1028#endif
1029
1030int __init reserve_bootmem_generic(unsigned long phys, unsigned long len, 771int __init reserve_bootmem_generic(unsigned long phys, unsigned long len,
1031 int flags) 772 int flags)
1032{ 773{
diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
index d0151d8ce452..04102d42ff42 100644
--- a/arch/x86/mm/iomap_32.c
+++ b/arch/x86/mm/iomap_32.c
@@ -17,8 +17,20 @@
17 */ 17 */
18 18
19#include <asm/iomap.h> 19#include <asm/iomap.h>
20#include <asm/pat.h>
20#include <linux/module.h> 21#include <linux/module.h>
21 22
23int is_io_mapping_possible(resource_size_t base, unsigned long size)
24{
25#ifndef CONFIG_X86_PAE
26 /* There is no way to map greater than 1 << 32 address without PAE */
27 if (base + size > 0x100000000ULL)
28 return 0;
29#endif
30 return 1;
31}
32EXPORT_SYMBOL_GPL(is_io_mapping_possible);
33
22/* Map 'pfn' using fixed map 'type' and protections 'prot' 34/* Map 'pfn' using fixed map 'type' and protections 'prot'
23 */ 35 */
24void * 36void *
@@ -29,6 +41,15 @@ iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot)
29 41
30 pagefault_disable(); 42 pagefault_disable();
31 43
44 /*
45 * For non-PAT systems, promote PAGE_KERNEL_WC to PAGE_KERNEL_UC_MINUS.
46 * PAGE_KERNEL_WC maps to PWT, which translates to uncached if the
47 * MTRR is UC or WC. UC_MINUS gets the real intention, of the
48 * user, which is "WC if the MTRR is WC, UC if you can't do that."
49 */
50 if (!pat_enabled && pgprot_val(prot) == pgprot_val(PAGE_KERNEL_WC))
51 prot = PAGE_KERNEL_UC_MINUS;
52
32 idx = type + KM_TYPE_NR*smp_processor_id(); 53 idx = type + KM_TYPE_NR*smp_processor_id();
33 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 54 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
34 set_pte(kmap_pte-idx, pfn_pte(pfn, prot)); 55 set_pte(kmap_pte-idx, pfn_pte(pfn, prot));
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index bd85d42819e1..aca924a30ee6 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -38,8 +38,7 @@ unsigned long __phys_addr(unsigned long x)
38 } else { 38 } else {
39 VIRTUAL_BUG_ON(x < PAGE_OFFSET); 39 VIRTUAL_BUG_ON(x < PAGE_OFFSET);
40 x -= PAGE_OFFSET; 40 x -= PAGE_OFFSET;
41 VIRTUAL_BUG_ON(system_state == SYSTEM_BOOTING ? x > MAXMEM : 41 VIRTUAL_BUG_ON(!phys_addr_valid(x));
42 !phys_addr_valid(x));
43 } 42 }
44 return x; 43 return x;
45} 44}
@@ -56,10 +55,8 @@ bool __virt_addr_valid(unsigned long x)
56 if (x < PAGE_OFFSET) 55 if (x < PAGE_OFFSET)
57 return false; 56 return false;
58 x -= PAGE_OFFSET; 57 x -= PAGE_OFFSET;
59 if (system_state == SYSTEM_BOOTING ? 58 if (!phys_addr_valid(x))
60 x > MAXMEM : !phys_addr_valid(x)) {
61 return false; 59 return false;
62 }
63 } 60 }
64 61
65 return pfn_valid(x >> PAGE_SHIFT); 62 return pfn_valid(x >> PAGE_SHIFT);
@@ -76,10 +73,9 @@ static inline int phys_addr_valid(unsigned long addr)
76#ifdef CONFIG_DEBUG_VIRTUAL 73#ifdef CONFIG_DEBUG_VIRTUAL
77unsigned long __phys_addr(unsigned long x) 74unsigned long __phys_addr(unsigned long x)
78{ 75{
79 /* VMALLOC_* aren't constants; not available at the boot time */ 76 /* VMALLOC_* aren't constants */
80 VIRTUAL_BUG_ON(x < PAGE_OFFSET); 77 VIRTUAL_BUG_ON(x < PAGE_OFFSET);
81 VIRTUAL_BUG_ON(system_state != SYSTEM_BOOTING && 78 VIRTUAL_BUG_ON(__vmalloc_start_set && is_vmalloc_addr((void *) x));
82 is_vmalloc_addr((void *) x));
83 return x - PAGE_OFFSET; 79 return x - PAGE_OFFSET;
84} 80}
85EXPORT_SYMBOL(__phys_addr); 81EXPORT_SYMBOL(__phys_addr);
@@ -89,7 +85,9 @@ bool __virt_addr_valid(unsigned long x)
89{ 85{
90 if (x < PAGE_OFFSET) 86 if (x < PAGE_OFFSET)
91 return false; 87 return false;
92 if (system_state != SYSTEM_BOOTING && is_vmalloc_addr((void *) x)) 88 if (__vmalloc_start_set && is_vmalloc_addr((void *) x))
89 return false;
90 if (x >= FIXADDR_START)
93 return false; 91 return false;
94 return pfn_valid((x - PAGE_OFFSET) >> PAGE_SHIFT); 92 return pfn_valid((x - PAGE_OFFSET) >> PAGE_SHIFT);
95} 93}
@@ -134,25 +132,6 @@ int page_is_ram(unsigned long pagenr)
134 return 0; 132 return 0;
135} 133}
136 134
137int pagerange_is_ram(unsigned long start, unsigned long end)
138{
139 int ram_page = 0, not_rampage = 0;
140 unsigned long page_nr;
141
142 for (page_nr = (start >> PAGE_SHIFT); page_nr < (end >> PAGE_SHIFT);
143 ++page_nr) {
144 if (page_is_ram(page_nr))
145 ram_page = 1;
146 else
147 not_rampage = 1;
148
149 if (ram_page == not_rampage)
150 return -1;
151 }
152
153 return ram_page;
154}
155
156/* 135/*
157 * Fix up the linear direct mapping of the kernel to avoid cache attribute 136 * Fix up the linear direct mapping of the kernel to avoid cache attribute
158 * conflicts. 137 * conflicts.
@@ -367,7 +346,7 @@ EXPORT_SYMBOL(ioremap_nocache);
367 * 346 *
368 * Must be freed with iounmap. 347 * Must be freed with iounmap.
369 */ 348 */
370void __iomem *ioremap_wc(unsigned long phys_addr, unsigned long size) 349void __iomem *ioremap_wc(resource_size_t phys_addr, unsigned long size)
371{ 350{
372 if (pat_enabled) 351 if (pat_enabled)
373 return __ioremap_caller(phys_addr, size, _PAGE_CACHE_WC, 352 return __ioremap_caller(phys_addr, size, _PAGE_CACHE_WC,
@@ -527,13 +506,19 @@ static inline pte_t * __init early_ioremap_pte(unsigned long addr)
527 return &bm_pte[pte_index(addr)]; 506 return &bm_pte[pte_index(addr)];
528} 507}
529 508
509static unsigned long slot_virt[FIX_BTMAPS_SLOTS] __initdata;
510
530void __init early_ioremap_init(void) 511void __init early_ioremap_init(void)
531{ 512{
532 pmd_t *pmd; 513 pmd_t *pmd;
514 int i;
533 515
534 if (early_ioremap_debug) 516 if (early_ioremap_debug)
535 printk(KERN_INFO "early_ioremap_init()\n"); 517 printk(KERN_INFO "early_ioremap_init()\n");
536 518
519 for (i = 0; i < FIX_BTMAPS_SLOTS; i++)
520 slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i);
521
537 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); 522 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
538 memset(bm_pte, 0, sizeof(bm_pte)); 523 memset(bm_pte, 0, sizeof(bm_pte));
539 pmd_populate_kernel(&init_mm, pmd, bm_pte); 524 pmd_populate_kernel(&init_mm, pmd, bm_pte);
@@ -557,34 +542,9 @@ void __init early_ioremap_init(void)
557 } 542 }
558} 543}
559 544
560void __init early_ioremap_clear(void)
561{
562 pmd_t *pmd;
563
564 if (early_ioremap_debug)
565 printk(KERN_INFO "early_ioremap_clear()\n");
566
567 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
568 pmd_clear(pmd);
569 paravirt_release_pte(__pa(bm_pte) >> PAGE_SHIFT);
570 __flush_tlb_all();
571}
572
573void __init early_ioremap_reset(void) 545void __init early_ioremap_reset(void)
574{ 546{
575 enum fixed_addresses idx;
576 unsigned long addr, phys;
577 pte_t *pte;
578
579 after_paging_init = 1; 547 after_paging_init = 1;
580 for (idx = FIX_BTMAP_BEGIN; idx >= FIX_BTMAP_END; idx--) {
581 addr = fix_to_virt(idx);
582 pte = early_ioremap_pte(addr);
583 if (pte_present(*pte)) {
584 phys = pte_val(*pte) & PAGE_MASK;
585 set_fixmap(idx, phys);
586 }
587 }
588} 548}
589 549
590static void __init __early_set_fixmap(enum fixed_addresses idx, 550static void __init __early_set_fixmap(enum fixed_addresses idx,
@@ -625,6 +585,7 @@ static inline void __init early_clear_fixmap(enum fixed_addresses idx)
625 585
626static void __iomem *prev_map[FIX_BTMAPS_SLOTS] __initdata; 586static void __iomem *prev_map[FIX_BTMAPS_SLOTS] __initdata;
627static unsigned long prev_size[FIX_BTMAPS_SLOTS] __initdata; 587static unsigned long prev_size[FIX_BTMAPS_SLOTS] __initdata;
588
628static int __init check_early_ioremap_leak(void) 589static int __init check_early_ioremap_leak(void)
629{ 590{
630 int count = 0; 591 int count = 0;
@@ -646,7 +607,8 @@ static int __init check_early_ioremap_leak(void)
646} 607}
647late_initcall(check_early_ioremap_leak); 608late_initcall(check_early_ioremap_leak);
648 609
649static void __init __iomem *__early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot) 610static void __init __iomem *
611__early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot)
650{ 612{
651 unsigned long offset, last_addr; 613 unsigned long offset, last_addr;
652 unsigned int nrpages; 614 unsigned int nrpages;
@@ -712,9 +674,9 @@ static void __init __iomem *__early_ioremap(unsigned long phys_addr, unsigned lo
712 --nrpages; 674 --nrpages;
713 } 675 }
714 if (early_ioremap_debug) 676 if (early_ioremap_debug)
715 printk(KERN_CONT "%08lx + %08lx\n", offset, fix_to_virt(idx0)); 677 printk(KERN_CONT "%08lx + %08lx\n", offset, slot_virt[slot]);
716 678
717 prev_map[slot] = (void __iomem *)(offset + fix_to_virt(idx0)); 679 prev_map[slot] = (void __iomem *)(offset + slot_virt[slot]);
718 return prev_map[slot]; 680 return prev_map[slot];
719} 681}
720 682
@@ -782,8 +744,3 @@ void __init early_iounmap(void __iomem *addr, unsigned long size)
782 } 744 }
783 prev_map[slot] = NULL; 745 prev_map[slot] = NULL;
784} 746}
785
786void __this_fixmap_does_not_exist(void)
787{
788 WARN_ON(1);
789}
diff --git a/arch/x86/mm/kmmio.c b/arch/x86/mm/kmmio.c
index 93d82038af4b..6a518dd08a36 100644
--- a/arch/x86/mm/kmmio.c
+++ b/arch/x86/mm/kmmio.c
@@ -32,11 +32,14 @@ struct kmmio_fault_page {
32 struct list_head list; 32 struct list_head list;
33 struct kmmio_fault_page *release_next; 33 struct kmmio_fault_page *release_next;
34 unsigned long page; /* location of the fault page */ 34 unsigned long page; /* location of the fault page */
35 bool old_presence; /* page presence prior to arming */
36 bool armed;
35 37
36 /* 38 /*
37 * Number of times this page has been registered as a part 39 * Number of times this page has been registered as a part
38 * of a probe. If zero, page is disarmed and this may be freed. 40 * of a probe. If zero, page is disarmed and this may be freed.
39 * Used only by writers (RCU). 41 * Used only by writers (RCU) and post_kmmio_handler().
42 * Protected by kmmio_lock, when linked into kmmio_page_table.
40 */ 43 */
41 int count; 44 int count;
42}; 45};
@@ -105,57 +108,85 @@ static struct kmmio_fault_page *get_kmmio_fault_page(unsigned long page)
105 return NULL; 108 return NULL;
106} 109}
107 110
108static void set_page_present(unsigned long addr, bool present, 111static void set_pmd_presence(pmd_t *pmd, bool present, bool *old)
109 unsigned int *pglevel) 112{
113 pmdval_t v = pmd_val(*pmd);
114 *old = !!(v & _PAGE_PRESENT);
115 v &= ~_PAGE_PRESENT;
116 if (present)
117 v |= _PAGE_PRESENT;
118 set_pmd(pmd, __pmd(v));
119}
120
121static void set_pte_presence(pte_t *pte, bool present, bool *old)
122{
123 pteval_t v = pte_val(*pte);
124 *old = !!(v & _PAGE_PRESENT);
125 v &= ~_PAGE_PRESENT;
126 if (present)
127 v |= _PAGE_PRESENT;
128 set_pte_atomic(pte, __pte(v));
129}
130
131static int set_page_presence(unsigned long addr, bool present, bool *old)
110{ 132{
111 pteval_t pteval;
112 pmdval_t pmdval;
113 unsigned int level; 133 unsigned int level;
114 pmd_t *pmd;
115 pte_t *pte = lookup_address(addr, &level); 134 pte_t *pte = lookup_address(addr, &level);
116 135
117 if (!pte) { 136 if (!pte) {
118 pr_err("kmmio: no pte for page 0x%08lx\n", addr); 137 pr_err("kmmio: no pte for page 0x%08lx\n", addr);
119 return; 138 return -1;
120 } 139 }
121 140
122 if (pglevel)
123 *pglevel = level;
124
125 switch (level) { 141 switch (level) {
126 case PG_LEVEL_2M: 142 case PG_LEVEL_2M:
127 pmd = (pmd_t *)pte; 143 set_pmd_presence((pmd_t *)pte, present, old);
128 pmdval = pmd_val(*pmd) & ~_PAGE_PRESENT;
129 if (present)
130 pmdval |= _PAGE_PRESENT;
131 set_pmd(pmd, __pmd(pmdval));
132 break; 144 break;
133
134 case PG_LEVEL_4K: 145 case PG_LEVEL_4K:
135 pteval = pte_val(*pte) & ~_PAGE_PRESENT; 146 set_pte_presence(pte, present, old);
136 if (present)
137 pteval |= _PAGE_PRESENT;
138 set_pte_atomic(pte, __pte(pteval));
139 break; 147 break;
140
141 default: 148 default:
142 pr_err("kmmio: unexpected page level 0x%x.\n", level); 149 pr_err("kmmio: unexpected page level 0x%x.\n", level);
143 return; 150 return -1;
144 } 151 }
145 152
146 __flush_tlb_one(addr); 153 __flush_tlb_one(addr);
154 return 0;
147} 155}
148 156
149/** Mark the given page as not present. Access to it will trigger a fault. */ 157/*
150static void arm_kmmio_fault_page(unsigned long page, unsigned int *pglevel) 158 * Mark the given page as not present. Access to it will trigger a fault.
159 *
160 * Struct kmmio_fault_page is protected by RCU and kmmio_lock, but the
161 * protection is ignored here. RCU read lock is assumed held, so the struct
162 * will not disappear unexpectedly. Furthermore, the caller must guarantee,
163 * that double arming the same virtual address (page) cannot occur.
164 *
165 * Double disarming on the other hand is allowed, and may occur when a fault
166 * and mmiotrace shutdown happen simultaneously.
167 */
168static int arm_kmmio_fault_page(struct kmmio_fault_page *f)
151{ 169{
152 set_page_present(page & PAGE_MASK, false, pglevel); 170 int ret;
171 WARN_ONCE(f->armed, KERN_ERR "kmmio page already armed.\n");
172 if (f->armed) {
173 pr_warning("kmmio double-arm: page 0x%08lx, ref %d, old %d\n",
174 f->page, f->count, f->old_presence);
175 }
176 ret = set_page_presence(f->page, false, &f->old_presence);
177 WARN_ONCE(ret < 0, KERN_ERR "kmmio arming 0x%08lx failed.\n", f->page);
178 f->armed = true;
179 return ret;
153} 180}
154 181
155/** Mark the given page as present. */ 182/** Restore the given page to saved presence state. */
156static void disarm_kmmio_fault_page(unsigned long page, unsigned int *pglevel) 183static void disarm_kmmio_fault_page(struct kmmio_fault_page *f)
157{ 184{
158 set_page_present(page & PAGE_MASK, true, pglevel); 185 bool tmp;
186 int ret = set_page_presence(f->page, f->old_presence, &tmp);
187 WARN_ONCE(ret < 0,
188 KERN_ERR "kmmio disarming 0x%08lx failed.\n", f->page);
189 f->armed = false;
159} 190}
160 191
161/* 192/*
@@ -202,28 +233,32 @@ int kmmio_handler(struct pt_regs *regs, unsigned long addr)
202 233
203 ctx = &get_cpu_var(kmmio_ctx); 234 ctx = &get_cpu_var(kmmio_ctx);
204 if (ctx->active) { 235 if (ctx->active) {
205 disarm_kmmio_fault_page(faultpage->page, NULL);
206 if (addr == ctx->addr) { 236 if (addr == ctx->addr) {
207 /* 237 /*
208 * On SMP we sometimes get recursive probe hits on the 238 * A second fault on the same page means some other
209 * same address. Context is already saved, fall out. 239 * condition needs handling by do_page_fault(), the
240 * page really not being present is the most common.
210 */ 241 */
211 pr_debug("kmmio: duplicate probe hit on CPU %d, for " 242 pr_debug("kmmio: secondary hit for 0x%08lx CPU %d.\n",
212 "address 0x%08lx.\n", 243 addr, smp_processor_id());
213 smp_processor_id(), addr); 244
214 ret = 1; 245 if (!faultpage->old_presence)
215 goto no_kmmio_ctx; 246 pr_info("kmmio: unexpected secondary hit for "
216 } 247 "address 0x%08lx on CPU %d.\n", addr,
217 /* 248 smp_processor_id());
218 * Prevent overwriting already in-flight context. 249 } else {
219 * This should not happen, let's hope disarming at least 250 /*
220 * prevents a panic. 251 * Prevent overwriting already in-flight context.
221 */ 252 * This should not happen, let's hope disarming at
222 pr_emerg("kmmio: recursive probe hit on CPU %d, " 253 * least prevents a panic.
254 */
255 pr_emerg("kmmio: recursive probe hit on CPU %d, "
223 "for address 0x%08lx. Ignoring.\n", 256 "for address 0x%08lx. Ignoring.\n",
224 smp_processor_id(), addr); 257 smp_processor_id(), addr);
225 pr_emerg("kmmio: previous hit was at 0x%08lx.\n", 258 pr_emerg("kmmio: previous hit was at 0x%08lx.\n",
226 ctx->addr); 259 ctx->addr);
260 disarm_kmmio_fault_page(faultpage);
261 }
227 goto no_kmmio_ctx; 262 goto no_kmmio_ctx;
228 } 263 }
229 ctx->active++; 264 ctx->active++;
@@ -244,7 +279,7 @@ int kmmio_handler(struct pt_regs *regs, unsigned long addr)
244 regs->flags &= ~X86_EFLAGS_IF; 279 regs->flags &= ~X86_EFLAGS_IF;
245 280
246 /* Now we set present bit in PTE and single step. */ 281 /* Now we set present bit in PTE and single step. */
247 disarm_kmmio_fault_page(ctx->fpage->page, NULL); 282 disarm_kmmio_fault_page(ctx->fpage);
248 283
249 /* 284 /*
250 * If another cpu accesses the same page while we are stepping, 285 * If another cpu accesses the same page while we are stepping,
@@ -275,7 +310,7 @@ static int post_kmmio_handler(unsigned long condition, struct pt_regs *regs)
275 struct kmmio_context *ctx = &get_cpu_var(kmmio_ctx); 310 struct kmmio_context *ctx = &get_cpu_var(kmmio_ctx);
276 311
277 if (!ctx->active) { 312 if (!ctx->active) {
278 pr_debug("kmmio: spurious debug trap on CPU %d.\n", 313 pr_warning("kmmio: spurious debug trap on CPU %d.\n",
279 smp_processor_id()); 314 smp_processor_id());
280 goto out; 315 goto out;
281 } 316 }
@@ -283,7 +318,11 @@ static int post_kmmio_handler(unsigned long condition, struct pt_regs *regs)
283 if (ctx->probe && ctx->probe->post_handler) 318 if (ctx->probe && ctx->probe->post_handler)
284 ctx->probe->post_handler(ctx->probe, condition, regs); 319 ctx->probe->post_handler(ctx->probe, condition, regs);
285 320
286 arm_kmmio_fault_page(ctx->fpage->page, NULL); 321 /* Prevent racing against release_kmmio_fault_page(). */
322 spin_lock(&kmmio_lock);
323 if (ctx->fpage->count)
324 arm_kmmio_fault_page(ctx->fpage);
325 spin_unlock(&kmmio_lock);
287 326
288 regs->flags &= ~X86_EFLAGS_TF; 327 regs->flags &= ~X86_EFLAGS_TF;
289 regs->flags |= ctx->saved_flags; 328 regs->flags |= ctx->saved_flags;
@@ -315,20 +354,24 @@ static int add_kmmio_fault_page(unsigned long page)
315 f = get_kmmio_fault_page(page); 354 f = get_kmmio_fault_page(page);
316 if (f) { 355 if (f) {
317 if (!f->count) 356 if (!f->count)
318 arm_kmmio_fault_page(f->page, NULL); 357 arm_kmmio_fault_page(f);
319 f->count++; 358 f->count++;
320 return 0; 359 return 0;
321 } 360 }
322 361
323 f = kmalloc(sizeof(*f), GFP_ATOMIC); 362 f = kzalloc(sizeof(*f), GFP_ATOMIC);
324 if (!f) 363 if (!f)
325 return -1; 364 return -1;
326 365
327 f->count = 1; 366 f->count = 1;
328 f->page = page; 367 f->page = page;
329 list_add_rcu(&f->list, kmmio_page_list(f->page));
330 368
331 arm_kmmio_fault_page(f->page, NULL); 369 if (arm_kmmio_fault_page(f)) {
370 kfree(f);
371 return -1;
372 }
373
374 list_add_rcu(&f->list, kmmio_page_list(f->page));
332 375
333 return 0; 376 return 0;
334} 377}
@@ -347,7 +390,7 @@ static void release_kmmio_fault_page(unsigned long page,
347 f->count--; 390 f->count--;
348 BUG_ON(f->count < 0); 391 BUG_ON(f->count < 0);
349 if (!f->count) { 392 if (!f->count) {
350 disarm_kmmio_fault_page(f->page, NULL); 393 disarm_kmmio_fault_page(f);
351 f->release_next = *release_list; 394 f->release_next = *release_list;
352 *release_list = f; 395 *release_list = f;
353 } 396 }
@@ -408,23 +451,24 @@ static void rcu_free_kmmio_fault_pages(struct rcu_head *head)
408 451
409static void remove_kmmio_fault_pages(struct rcu_head *head) 452static void remove_kmmio_fault_pages(struct rcu_head *head)
410{ 453{
411 struct kmmio_delayed_release *dr = container_of( 454 struct kmmio_delayed_release *dr =
412 head, 455 container_of(head, struct kmmio_delayed_release, rcu);
413 struct kmmio_delayed_release,
414 rcu);
415 struct kmmio_fault_page *p = dr->release_list; 456 struct kmmio_fault_page *p = dr->release_list;
416 struct kmmio_fault_page **prevp = &dr->release_list; 457 struct kmmio_fault_page **prevp = &dr->release_list;
417 unsigned long flags; 458 unsigned long flags;
459
418 spin_lock_irqsave(&kmmio_lock, flags); 460 spin_lock_irqsave(&kmmio_lock, flags);
419 while (p) { 461 while (p) {
420 if (!p->count) 462 if (!p->count) {
421 list_del_rcu(&p->list); 463 list_del_rcu(&p->list);
422 else 464 prevp = &p->release_next;
465 } else {
423 *prevp = p->release_next; 466 *prevp = p->release_next;
424 prevp = &p->release_next; 467 }
425 p = p->release_next; 468 p = p->release_next;
426 } 469 }
427 spin_unlock_irqrestore(&kmmio_lock, flags); 470 spin_unlock_irqrestore(&kmmio_lock, flags);
471
428 /* This is the real RCU destroy call. */ 472 /* This is the real RCU destroy call. */
429 call_rcu(&dr->rcu, rcu_free_kmmio_fault_pages); 473 call_rcu(&dr->rcu, rcu_free_kmmio_fault_pages);
430} 474}
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 9cab18b0b857..605c8be06217 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -9,44 +9,44 @@
9 9
10#include <asm/e820.h> 10#include <asm/e820.h>
11 11
12static void __init memtest(unsigned long start_phys, unsigned long size, 12static u64 patterns[] __initdata = {
13 unsigned pattern) 13 0,
14 0xffffffffffffffffULL,
15 0x5555555555555555ULL,
16 0xaaaaaaaaaaaaaaaaULL,
17 0x1111111111111111ULL,
18 0x2222222222222222ULL,
19 0x4444444444444444ULL,
20 0x8888888888888888ULL,
21 0x3333333333333333ULL,
22 0x6666666666666666ULL,
23 0x9999999999999999ULL,
24 0xccccccccccccccccULL,
25 0x7777777777777777ULL,
26 0xbbbbbbbbbbbbbbbbULL,
27 0xddddddddddddddddULL,
28 0xeeeeeeeeeeeeeeeeULL,
29 0x7a6c7258554e494cULL, /* yeah ;-) */
30};
31
32static void __init reserve_bad_mem(u64 pattern, u64 start_bad, u64 end_bad)
14{ 33{
15 unsigned long i; 34 printk(KERN_INFO " %016llx bad mem addr %010llx - %010llx reserved\n",
16 unsigned long *start; 35 (unsigned long long) pattern,
17 unsigned long start_bad; 36 (unsigned long long) start_bad,
18 unsigned long last_bad; 37 (unsigned long long) end_bad);
19 unsigned long val; 38 reserve_early(start_bad, end_bad, "BAD RAM");
20 unsigned long start_phys_aligned; 39}
21 unsigned long count; 40
22 unsigned long incr; 41static void __init memtest(u64 pattern, u64 start_phys, u64 size)
23 42{
24 switch (pattern) { 43 u64 i, count;
25 case 0: 44 u64 *start;
26 val = 0UL; 45 u64 start_bad, last_bad;
27 break; 46 u64 start_phys_aligned;
28 case 1: 47 size_t incr;
29 val = -1UL;
30 break;
31 case 2:
32#ifdef CONFIG_X86_64
33 val = 0x5555555555555555UL;
34#else
35 val = 0x55555555UL;
36#endif
37 break;
38 case 3:
39#ifdef CONFIG_X86_64
40 val = 0xaaaaaaaaaaaaaaaaUL;
41#else
42 val = 0xaaaaaaaaUL;
43#endif
44 break;
45 default:
46 return;
47 }
48 48
49 incr = sizeof(unsigned long); 49 incr = sizeof(pattern);
50 start_phys_aligned = ALIGN(start_phys, incr); 50 start_phys_aligned = ALIGN(start_phys, incr);
51 count = (size - (start_phys_aligned - start_phys))/incr; 51 count = (size - (start_phys_aligned - start_phys))/incr;
52 start = __va(start_phys_aligned); 52 start = __va(start_phys_aligned);
@@ -54,25 +54,42 @@ static void __init memtest(unsigned long start_phys, unsigned long size,
54 last_bad = 0; 54 last_bad = 0;
55 55
56 for (i = 0; i < count; i++) 56 for (i = 0; i < count; i++)
57 start[i] = val; 57 start[i] = pattern;
58 for (i = 0; i < count; i++, start++, start_phys_aligned += incr) { 58 for (i = 0; i < count; i++, start++, start_phys_aligned += incr) {
59 if (*start != val) { 59 if (*start == pattern)
60 if (start_phys_aligned == last_bad + incr) { 60 continue;
61 last_bad += incr; 61 if (start_phys_aligned == last_bad + incr) {
62 } else { 62 last_bad += incr;
63 if (start_bad) { 63 continue;
64 printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved",
65 val, start_bad, last_bad + incr);
66 reserve_early(start_bad, last_bad + incr, "BAD RAM");
67 }
68 start_bad = last_bad = start_phys_aligned;
69 }
70 } 64 }
65 if (start_bad)
66 reserve_bad_mem(pattern, start_bad, last_bad + incr);
67 start_bad = last_bad = start_phys_aligned;
71 } 68 }
72 if (start_bad) { 69 if (start_bad)
73 printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved", 70 reserve_bad_mem(pattern, start_bad, last_bad + incr);
74 val, start_bad, last_bad + incr); 71}
75 reserve_early(start_bad, last_bad + incr, "BAD RAM"); 72
73static void __init do_one_pass(u64 pattern, u64 start, u64 end)
74{
75 u64 size = 0;
76
77 while (start < end) {
78 start = find_e820_area_size(start, &size, 1);
79
80 /* done ? */
81 if (start >= end)
82 break;
83 if (start + size > end)
84 size = end - start;
85
86 printk(KERN_INFO " %010llx - %010llx pattern %016llx\n",
87 (unsigned long long) start,
88 (unsigned long long) start + size,
89 (unsigned long long) cpu_to_be64(pattern));
90 memtest(pattern, start, size);
91
92 start += size;
76 } 93 }
77} 94}
78 95
@@ -83,6 +100,9 @@ static int __init parse_memtest(char *arg)
83{ 100{
84 if (arg) 101 if (arg)
85 memtest_pattern = simple_strtoul(arg, NULL, 0); 102 memtest_pattern = simple_strtoul(arg, NULL, 0);
103 else
104 memtest_pattern = ARRAY_SIZE(patterns);
105
86 return 0; 106 return 0;
87} 107}
88 108
@@ -90,33 +110,22 @@ early_param("memtest", parse_memtest);
90 110
91void __init early_memtest(unsigned long start, unsigned long end) 111void __init early_memtest(unsigned long start, unsigned long end)
92{ 112{
93 u64 t_start, t_size; 113 unsigned int i;
94 unsigned pattern; 114 unsigned int idx = 0;
95 115
96 if (!memtest_pattern) 116 if (!memtest_pattern)
97 return; 117 return;
98 118
99 printk(KERN_INFO "early_memtest: pattern num %d", memtest_pattern); 119 printk(KERN_INFO "early_memtest: # of tests: %d\n", memtest_pattern);
100 for (pattern = 0; pattern < memtest_pattern; pattern++) { 120 for (i = 0; i < memtest_pattern; i++) {
101 t_start = start; 121 idx = i % ARRAY_SIZE(patterns);
102 t_size = 0; 122 do_one_pass(patterns[idx], start, end);
103 while (t_start < end) { 123 }
104 t_start = find_e820_area_size(t_start, &t_size, 1);
105
106 /* done ? */
107 if (t_start >= end)
108 break;
109 if (t_start + t_size > end)
110 t_size = end - t_start;
111
112 printk(KERN_CONT "\n %010llx - %010llx pattern %d",
113 (unsigned long long)t_start,
114 (unsigned long long)t_start + t_size, pattern);
115
116 memtest(t_start, t_size, pattern);
117 124
118 t_start += t_size; 125 if (idx > 0) {
119 } 126 printk(KERN_INFO "early_memtest: wipe out "
127 "test pattern from memory\n");
128 /* additional test with pattern 0 will do this */
129 do_one_pass(0, start, end);
120 } 130 }
121 printk(KERN_CONT "\n");
122} 131}
diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
index 56fe7124fbec..165829600566 100644
--- a/arch/x86/mm/mmap.c
+++ b/arch/x86/mm/mmap.c
@@ -4,7 +4,7 @@
4 * Based on code by Ingo Molnar and Andi Kleen, copyrighted 4 * Based on code by Ingo Molnar and Andi Kleen, copyrighted
5 * as follows: 5 * as follows:
6 * 6 *
7 * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina. 7 * Copyright 2003-2009 Red Hat Inc.
8 * All Rights Reserved. 8 * All Rights Reserved.
9 * Copyright 2005 Andi Kleen, SUSE Labs. 9 * Copyright 2005 Andi Kleen, SUSE Labs.
10 * Copyright 2007 Jiri Kosina, SUSE Labs. 10 * Copyright 2007 Jiri Kosina, SUSE Labs.
diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c
index d1f7439d173c..3daefa04ace5 100644
--- a/arch/x86/mm/numa_32.c
+++ b/arch/x86/mm/numa_32.c
@@ -194,7 +194,7 @@ void *alloc_remap(int nid, unsigned long size)
194 size = ALIGN(size, L1_CACHE_BYTES); 194 size = ALIGN(size, L1_CACHE_BYTES);
195 195
196 if (!allocation || (allocation + size) >= node_remap_end_vaddr[nid]) 196 if (!allocation || (allocation + size) >= node_remap_end_vaddr[nid])
197 return 0; 197 return NULL;
198 198
199 node_remap_alloc_vaddr[nid] += size; 199 node_remap_alloc_vaddr[nid] += size;
200 memset(allocation, 0, size); 200 memset(allocation, 0, size);
@@ -416,39 +416,14 @@ void __init initmem_init(unsigned long start_pfn,
416 for_each_online_node(nid) 416 for_each_online_node(nid)
417 propagate_e820_map_node(nid); 417 propagate_e820_map_node(nid);
418 418
419 for_each_online_node(nid) 419 for_each_online_node(nid) {
420 memset(NODE_DATA(nid), 0, sizeof(struct pglist_data)); 420 memset(NODE_DATA(nid), 0, sizeof(struct pglist_data));
421 NODE_DATA(nid)->bdata = &bootmem_node_data[nid];
422 }
421 423
422 NODE_DATA(0)->bdata = &bootmem_node_data[0];
423 setup_bootmem_allocator(); 424 setup_bootmem_allocator();
424} 425}
425 426
426void __init set_highmem_pages_init(void)
427{
428#ifdef CONFIG_HIGHMEM
429 struct zone *zone;
430 int nid;
431
432 for_each_zone(zone) {
433 unsigned long zone_start_pfn, zone_end_pfn;
434
435 if (!is_highmem(zone))
436 continue;
437
438 zone_start_pfn = zone->zone_start_pfn;
439 zone_end_pfn = zone_start_pfn + zone->spanned_pages;
440
441 nid = zone_to_nid(zone);
442 printk(KERN_INFO "Initializing %s for node %d (%08lx:%08lx)\n",
443 zone->name, nid, zone_start_pfn, zone_end_pfn);
444
445 add_highpages_with_active_regions(nid, zone_start_pfn,
446 zone_end_pfn);
447 }
448 totalram_pages += totalhigh_pages;
449#endif
450}
451
452#ifdef CONFIG_MEMORY_HOTPLUG 427#ifdef CONFIG_MEMORY_HOTPLUG
453static int paddr_to_nid(u64 addr) 428static int paddr_to_nid(u64 addr)
454{ 429{
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index 71a14f89f89e..64c9cf043cdd 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -20,6 +20,12 @@
20#include <asm/acpi.h> 20#include <asm/acpi.h>
21#include <asm/k8.h> 21#include <asm/k8.h>
22 22
23#ifdef CONFIG_DEBUG_PER_CPU_MAPS
24# define DBG(x...) printk(KERN_DEBUG x)
25#else
26# define DBG(x...)
27#endif
28
23struct pglist_data *node_data[MAX_NUMNODES] __read_mostly; 29struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
24EXPORT_SYMBOL(node_data); 30EXPORT_SYMBOL(node_data);
25 31
@@ -33,6 +39,21 @@ int numa_off __initdata;
33static unsigned long __initdata nodemap_addr; 39static unsigned long __initdata nodemap_addr;
34static unsigned long __initdata nodemap_size; 40static unsigned long __initdata nodemap_size;
35 41
42DEFINE_PER_CPU(int, node_number) = 0;
43EXPORT_PER_CPU_SYMBOL(node_number);
44
45/*
46 * Map cpu index to node index
47 */
48DEFINE_EARLY_PER_CPU(int, x86_cpu_to_node_map, NUMA_NO_NODE);
49EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_node_map);
50
51/*
52 * Which logical CPUs are on which nodes
53 */
54cpumask_t *node_to_cpumask_map;
55EXPORT_SYMBOL(node_to_cpumask_map);
56
36/* 57/*
37 * Given a shift value, try to populate memnodemap[] 58 * Given a shift value, try to populate memnodemap[]
38 * Returns : 59 * Returns :
@@ -145,7 +166,7 @@ int __init compute_hash_shift(struct bootnode *nodes, int numnodes,
145 return shift; 166 return shift;
146} 167}
147 168
148int early_pfn_to_nid(unsigned long pfn) 169int __meminit __early_pfn_to_nid(unsigned long pfn)
149{ 170{
150 return phys_to_nid(pfn << PAGE_SHIFT); 171 return phys_to_nid(pfn << PAGE_SHIFT);
151} 172}
@@ -640,3 +661,199 @@ void __init init_cpu_to_node(void)
640#endif 661#endif
641 662
642 663
664/*
665 * Allocate node_to_cpumask_map based on number of available nodes
666 * Requires node_possible_map to be valid.
667 *
668 * Note: node_to_cpumask() is not valid until after this is done.
669 * (Use CONFIG_DEBUG_PER_CPU_MAPS to check this.)
670 */
671void __init setup_node_to_cpumask_map(void)
672{
673 unsigned int node, num = 0;
674 cpumask_t *map;
675
676 /* setup nr_node_ids if not done yet */
677 if (nr_node_ids == MAX_NUMNODES) {
678 for_each_node_mask(node, node_possible_map)
679 num = node;
680 nr_node_ids = num + 1;
681 }
682
683 /* allocate the map */
684 map = alloc_bootmem_low(nr_node_ids * sizeof(cpumask_t));
685 DBG("node_to_cpumask_map at %p for %d nodes\n", map, nr_node_ids);
686
687 pr_debug("Node to cpumask map at %p for %d nodes\n",
688 map, nr_node_ids);
689
690 /* node_to_cpumask() will now work */
691 node_to_cpumask_map = map;
692}
693
694void __cpuinit numa_set_node(int cpu, int node)
695{
696 int *cpu_to_node_map = early_per_cpu_ptr(x86_cpu_to_node_map);
697
698 /* early setting, no percpu area yet */
699 if (cpu_to_node_map) {
700 cpu_to_node_map[cpu] = node;
701 return;
702 }
703
704#ifdef CONFIG_DEBUG_PER_CPU_MAPS
705 if (cpu >= nr_cpu_ids || !cpu_possible(cpu)) {
706 printk(KERN_ERR "numa_set_node: invalid cpu# (%d)\n", cpu);
707 dump_stack();
708 return;
709 }
710#endif
711 per_cpu(x86_cpu_to_node_map, cpu) = node;
712
713 if (node != NUMA_NO_NODE)
714 per_cpu(node_number, cpu) = node;
715}
716
717void __cpuinit numa_clear_node(int cpu)
718{
719 numa_set_node(cpu, NUMA_NO_NODE);
720}
721
722#ifndef CONFIG_DEBUG_PER_CPU_MAPS
723
724void __cpuinit numa_add_cpu(int cpu)
725{
726 cpu_set(cpu, node_to_cpumask_map[early_cpu_to_node(cpu)]);
727}
728
729void __cpuinit numa_remove_cpu(int cpu)
730{
731 cpu_clear(cpu, node_to_cpumask_map[early_cpu_to_node(cpu)]);
732}
733
734#else /* CONFIG_DEBUG_PER_CPU_MAPS */
735
736/*
737 * --------- debug versions of the numa functions ---------
738 */
739static void __cpuinit numa_set_cpumask(int cpu, int enable)
740{
741 int node = early_cpu_to_node(cpu);
742 cpumask_t *mask;
743 char buf[64];
744
745 if (node_to_cpumask_map == NULL) {
746 printk(KERN_ERR "node_to_cpumask_map NULL\n");
747 dump_stack();
748 return;
749 }
750
751 mask = &node_to_cpumask_map[node];
752 if (enable)
753 cpu_set(cpu, *mask);
754 else
755 cpu_clear(cpu, *mask);
756
757 cpulist_scnprintf(buf, sizeof(buf), mask);
758 printk(KERN_DEBUG "%s cpu %d node %d: mask now %s\n",
759 enable ? "numa_add_cpu" : "numa_remove_cpu", cpu, node, buf);
760}
761
762void __cpuinit numa_add_cpu(int cpu)
763{
764 numa_set_cpumask(cpu, 1);
765}
766
767void __cpuinit numa_remove_cpu(int cpu)
768{
769 numa_set_cpumask(cpu, 0);
770}
771
772int cpu_to_node(int cpu)
773{
774 if (early_per_cpu_ptr(x86_cpu_to_node_map)) {
775 printk(KERN_WARNING
776 "cpu_to_node(%d): usage too early!\n", cpu);
777 dump_stack();
778 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
779 }
780 return per_cpu(x86_cpu_to_node_map, cpu);
781}
782EXPORT_SYMBOL(cpu_to_node);
783
784/*
785 * Same function as cpu_to_node() but used if called before the
786 * per_cpu areas are setup.
787 */
788int early_cpu_to_node(int cpu)
789{
790 if (early_per_cpu_ptr(x86_cpu_to_node_map))
791 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
792
793 if (!cpu_possible(cpu)) {
794 printk(KERN_WARNING
795 "early_cpu_to_node(%d): no per_cpu area!\n", cpu);
796 dump_stack();
797 return NUMA_NO_NODE;
798 }
799 return per_cpu(x86_cpu_to_node_map, cpu);
800}
801
802
803/* empty cpumask */
804static const cpumask_t cpu_mask_none;
805
806/*
807 * Returns a pointer to the bitmask of CPUs on Node 'node'.
808 */
809const cpumask_t *cpumask_of_node(int node)
810{
811 if (node_to_cpumask_map == NULL) {
812 printk(KERN_WARNING
813 "cpumask_of_node(%d): no node_to_cpumask_map!\n",
814 node);
815 dump_stack();
816 return (const cpumask_t *)&cpu_online_map;
817 }
818 if (node >= nr_node_ids) {
819 printk(KERN_WARNING
820 "cpumask_of_node(%d): node > nr_node_ids(%d)\n",
821 node, nr_node_ids);
822 dump_stack();
823 return &cpu_mask_none;
824 }
825 return &node_to_cpumask_map[node];
826}
827EXPORT_SYMBOL(cpumask_of_node);
828
829/*
830 * Returns a bitmask of CPUs on Node 'node'.
831 *
832 * Side note: this function creates the returned cpumask on the stack
833 * so with a high NR_CPUS count, excessive stack space is used. The
834 * node_to_cpumask_ptr function should be used whenever possible.
835 */
836cpumask_t node_to_cpumask(int node)
837{
838 if (node_to_cpumask_map == NULL) {
839 printk(KERN_WARNING
840 "node_to_cpumask(%d): no node_to_cpumask_map!\n", node);
841 dump_stack();
842 return cpu_online_map;
843 }
844 if (node >= nr_node_ids) {
845 printk(KERN_WARNING
846 "node_to_cpumask(%d): node > nr_node_ids(%d)\n",
847 node, nr_node_ids);
848 dump_stack();
849 return cpu_mask_none;
850 }
851 return node_to_cpumask_map[node];
852}
853EXPORT_SYMBOL(node_to_cpumask);
854
855/*
856 * --------- end of debug versions of the numa functions ---------
857 */
858
859#endif /* CONFIG_DEBUG_PER_CPU_MAPS */
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 4cf30dee8161..8253bc97587e 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -482,6 +482,13 @@ static int split_large_page(pte_t *kpte, unsigned long address)
482 pbase = (pte_t *)page_address(base); 482 pbase = (pte_t *)page_address(base);
483 paravirt_alloc_pte(&init_mm, page_to_pfn(base)); 483 paravirt_alloc_pte(&init_mm, page_to_pfn(base));
484 ref_prot = pte_pgprot(pte_clrhuge(*kpte)); 484 ref_prot = pte_pgprot(pte_clrhuge(*kpte));
485 /*
486 * If we ever want to utilize the PAT bit, we need to
487 * update this function to make sure it's converted from
488 * bit 12 to bit 7 when we cross from the 2MB level to
489 * the 4K level:
490 */
491 WARN_ON_ONCE(pgprot_val(ref_prot) & _PAGE_PAT_LARGE);
485 492
486#ifdef CONFIG_X86_64 493#ifdef CONFIG_X86_64
487 if (level == PG_LEVEL_1G) { 494 if (level == PG_LEVEL_1G) {
@@ -508,18 +515,13 @@ static int split_large_page(pte_t *kpte, unsigned long address)
508#endif 515#endif
509 516
510 /* 517 /*
511 * Install the new, split up pagetable. Important details here: 518 * Install the new, split up pagetable.
512 *
513 * On Intel the NX bit of all levels must be cleared to make a
514 * page executable. See section 4.13.2 of Intel 64 and IA-32
515 * Architectures Software Developer's Manual).
516 * 519 *
517 * Mark the entry present. The current mapping might be 520 * We use the standard kernel pagetable protections for the new
518 * set to not present, which we preserved above. 521 * pagetable protections, the actual ptes set above control the
522 * primary protection behavior:
519 */ 523 */
520 ref_prot = pte_pgprot(pte_mkexec(pte_clrhuge(*kpte))); 524 __set_pmd_pte(kpte, address, mk_pte(base, __pgprot(_KERNPG_TABLE)));
521 pgprot_val(ref_prot) |= _PAGE_PRESENT;
522 __set_pmd_pte(kpte, address, mk_pte(base, ref_prot));
523 base = NULL; 525 base = NULL;
524 526
525out_unlock: 527out_unlock:
@@ -534,6 +536,36 @@ out_unlock:
534 return 0; 536 return 0;
535} 537}
536 538
539static int __cpa_process_fault(struct cpa_data *cpa, unsigned long vaddr,
540 int primary)
541{
542 /*
543 * Ignore all non primary paths.
544 */
545 if (!primary)
546 return 0;
547
548 /*
549 * Ignore the NULL PTE for kernel identity mapping, as it is expected
550 * to have holes.
551 * Also set numpages to '1' indicating that we processed cpa req for
552 * one virtual address page and its pfn. TBD: numpages can be set based
553 * on the initial value and the level returned by lookup_address().
554 */
555 if (within(vaddr, PAGE_OFFSET,
556 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))) {
557 cpa->numpages = 1;
558 cpa->pfn = __pa(vaddr) >> PAGE_SHIFT;
559 return 0;
560 } else {
561 WARN(1, KERN_WARNING "CPA: called for zero pte. "
562 "vaddr = %lx cpa->vaddr = %lx\n", vaddr,
563 *cpa->vaddr);
564
565 return -EFAULT;
566 }
567}
568
537static int __change_page_attr(struct cpa_data *cpa, int primary) 569static int __change_page_attr(struct cpa_data *cpa, int primary)
538{ 570{
539 unsigned long address; 571 unsigned long address;
@@ -545,23 +577,14 @@ static int __change_page_attr(struct cpa_data *cpa, int primary)
545 address = cpa->vaddr[cpa->curpage]; 577 address = cpa->vaddr[cpa->curpage];
546 else 578 else
547 address = *cpa->vaddr; 579 address = *cpa->vaddr;
548
549repeat: 580repeat:
550 kpte = lookup_address(address, &level); 581 kpte = lookup_address(address, &level);
551 if (!kpte) 582 if (!kpte)
552 return 0; 583 return __cpa_process_fault(cpa, address, primary);
553 584
554 old_pte = *kpte; 585 old_pte = *kpte;
555 if (!pte_val(old_pte)) { 586 if (!pte_val(old_pte))
556 if (!primary) 587 return __cpa_process_fault(cpa, address, primary);
557 return 0;
558
559 /*
560 * Special error value returned, indicating that the mapping
561 * did not exist at this address.
562 */
563 return -EFAULT;
564 }
565 588
566 if (level == PG_LEVEL_4K) { 589 if (level == PG_LEVEL_4K) {
567 pte_t new_pte; 590 pte_t new_pte;
@@ -659,12 +682,7 @@ static int cpa_process_alias(struct cpa_data *cpa)
659 vaddr = *cpa->vaddr; 682 vaddr = *cpa->vaddr;
660 683
661 if (!(within(vaddr, PAGE_OFFSET, 684 if (!(within(vaddr, PAGE_OFFSET,
662 PAGE_OFFSET + (max_low_pfn_mapped << PAGE_SHIFT)) 685 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT)))) {
663#ifdef CONFIG_X86_64
664 || within(vaddr, PAGE_OFFSET + (1UL<<32),
665 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))
666#endif
667 )) {
668 686
669 alias_cpa = *cpa; 687 alias_cpa = *cpa;
670 temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT); 688 temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT);
@@ -795,6 +813,13 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages,
795 813
796 vm_unmap_aliases(); 814 vm_unmap_aliases();
797 815
816 /*
817 * If we're called with lazy mmu updates enabled, the
818 * in-memory pte state may be stale. Flush pending updates to
819 * bring them up to date.
820 */
821 arch_flush_lazy_mmu_mode();
822
798 cpa.vaddr = addr; 823 cpa.vaddr = addr;
799 cpa.numpages = numpages; 824 cpa.numpages = numpages;
800 cpa.mask_set = mask_set; 825 cpa.mask_set = mask_set;
@@ -837,6 +862,13 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages,
837 } else 862 } else
838 cpa_flush_all(cache); 863 cpa_flush_all(cache);
839 864
865 /*
866 * If we've been called with lazy mmu updates enabled, then
867 * make sure that everything gets flushed out before we
868 * return.
869 */
870 arch_flush_lazy_mmu_mode();
871
840out: 872out:
841 return ret; 873 return ret;
842} 874}
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index 160c42d3eb8f..2ed37158012d 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -11,6 +11,7 @@
11#include <linux/bootmem.h> 11#include <linux/bootmem.h>
12#include <linux/debugfs.h> 12#include <linux/debugfs.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/module.h>
14#include <linux/gfp.h> 15#include <linux/gfp.h>
15#include <linux/mm.h> 16#include <linux/mm.h>
16#include <linux/fs.h> 17#include <linux/fs.h>
@@ -30,7 +31,7 @@
30#ifdef CONFIG_X86_PAT 31#ifdef CONFIG_X86_PAT
31int __read_mostly pat_enabled = 1; 32int __read_mostly pat_enabled = 1;
32 33
33void __cpuinit pat_disable(char *reason) 34void __cpuinit pat_disable(const char *reason)
34{ 35{
35 pat_enabled = 0; 36 pat_enabled = 0;
36 printk(KERN_INFO "%s\n", reason); 37 printk(KERN_INFO "%s\n", reason);
@@ -42,6 +43,11 @@ static int __init nopat(char *str)
42 return 0; 43 return 0;
43} 44}
44early_param("nopat", nopat); 45early_param("nopat", nopat);
46#else
47static inline void pat_disable(const char *reason)
48{
49 (void)reason;
50}
45#endif 51#endif
46 52
47 53
@@ -78,16 +84,20 @@ void pat_init(void)
78 if (!pat_enabled) 84 if (!pat_enabled)
79 return; 85 return;
80 86
81 /* Paranoia check. */ 87 if (!cpu_has_pat) {
82 if (!cpu_has_pat && boot_pat_state) { 88 if (!boot_pat_state) {
83 /* 89 pat_disable("PAT not supported by CPU.");
84 * If this happens we are on a secondary CPU, but 90 return;
85 * switched to PAT on the boot CPU. We have no way to 91 } else {
86 * undo PAT. 92 /*
87 */ 93 * If this happens we are on a secondary CPU, but
88 printk(KERN_ERR "PAT enabled, " 94 * switched to PAT on the boot CPU. We have no way to
89 "but not supported by secondary CPU\n"); 95 * undo PAT.
90 BUG(); 96 */
97 printk(KERN_ERR "PAT enabled, "
98 "but not supported by secondary CPU\n");
99 BUG();
100 }
91 } 101 }
92 102
93 /* Set PWT to Write-Combining. All other bits stay the same */ 103 /* Set PWT to Write-Combining. All other bits stay the same */
@@ -211,6 +221,33 @@ chk_conflict(struct memtype *new, struct memtype *entry, unsigned long *type)
211static struct memtype *cached_entry; 221static struct memtype *cached_entry;
212static u64 cached_start; 222static u64 cached_start;
213 223
224static int pat_pagerange_is_ram(unsigned long start, unsigned long end)
225{
226 int ram_page = 0, not_rampage = 0;
227 unsigned long page_nr;
228
229 for (page_nr = (start >> PAGE_SHIFT); page_nr < (end >> PAGE_SHIFT);
230 ++page_nr) {
231 /*
232 * For legacy reasons, physical address range in the legacy ISA
233 * region is tracked as non-RAM. This will allow users of
234 * /dev/mem to map portions of legacy ISA region, even when
235 * some of those portions are listed(or not even listed) with
236 * different e820 types(RAM/reserved/..)
237 */
238 if (page_nr >= (ISA_END_ADDRESS >> PAGE_SHIFT) &&
239 page_is_ram(page_nr))
240 ram_page = 1;
241 else
242 not_rampage = 1;
243
244 if (ram_page == not_rampage)
245 return -1;
246 }
247
248 return ram_page;
249}
250
214/* 251/*
215 * For RAM pages, mark the pages as non WB memory type using 252 * For RAM pages, mark the pages as non WB memory type using
216 * PageNonWB (PG_arch_1). We allow only one set_memory_uc() or 253 * PageNonWB (PG_arch_1). We allow only one set_memory_uc() or
@@ -333,9 +370,13 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
333 req_type & _PAGE_CACHE_MASK); 370 req_type & _PAGE_CACHE_MASK);
334 } 371 }
335 372
336 is_range_ram = pagerange_is_ram(start, end); 373 if (new_type)
374 *new_type = actual_type;
375
376 is_range_ram = pat_pagerange_is_ram(start, end);
337 if (is_range_ram == 1) 377 if (is_range_ram == 1)
338 return reserve_ram_pages_type(start, end, req_type, new_type); 378 return reserve_ram_pages_type(start, end, req_type,
379 new_type);
339 else if (is_range_ram < 0) 380 else if (is_range_ram < 0)
340 return -EINVAL; 381 return -EINVAL;
341 382
@@ -347,9 +388,6 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
347 new->end = end; 388 new->end = end;
348 new->type = actual_type; 389 new->type = actual_type;
349 390
350 if (new_type)
351 *new_type = actual_type;
352
353 spin_lock(&memtype_lock); 391 spin_lock(&memtype_lock);
354 392
355 if (cached_entry && start >= cached_start) 393 if (cached_entry && start >= cached_start)
@@ -437,7 +475,7 @@ int free_memtype(u64 start, u64 end)
437 if (is_ISA_range(start, end - 1)) 475 if (is_ISA_range(start, end - 1))
438 return 0; 476 return 0;
439 477
440 is_range_ram = pagerange_is_ram(start, end); 478 is_range_ram = pat_pagerange_is_ram(start, end);
441 if (is_range_ram == 1) 479 if (is_range_ram == 1)
442 return free_ram_pages_type(start, end); 480 return free_ram_pages_type(start, end);
443 else if (is_range_ram < 0) 481 else if (is_range_ram < 0)
@@ -505,35 +543,6 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
505} 543}
506#endif /* CONFIG_STRICT_DEVMEM */ 544#endif /* CONFIG_STRICT_DEVMEM */
507 545
508/*
509 * Change the memory type for the physial address range in kernel identity
510 * mapping space if that range is a part of identity map.
511 */
512static int kernel_map_sync_memtype(u64 base, unsigned long size,
513 unsigned long flags)
514{
515 unsigned long id_sz;
516 int ret;
517
518 if (!pat_enabled || base >= __pa(high_memory))
519 return 0;
520
521 id_sz = (__pa(high_memory) < base + size) ?
522 __pa(high_memory) - base :
523 size;
524
525 ret = ioremap_change_attr((unsigned long)__va(base), id_sz, flags);
526 /*
527 * -EFAULT return means that the addr was not valid and did not have
528 * any identity mapping. That case is a success for
529 * kernel_map_sync_memtype.
530 */
531 if (ret == -EFAULT)
532 ret = 0;
533
534 return ret;
535}
536
537int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn, 546int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
538 unsigned long size, pgprot_t *vma_prot) 547 unsigned long size, pgprot_t *vma_prot)
539{ 548{
@@ -584,7 +593,9 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
584 if (retval < 0) 593 if (retval < 0)
585 return 0; 594 return 0;
586 595
587 if (kernel_map_sync_memtype(offset, size, flags)) { 596 if (((pfn < max_low_pfn_mapped) ||
597 (pfn >= (1UL<<(32 - PAGE_SHIFT)) && pfn < max_pfn_mapped)) &&
598 ioremap_change_attr((unsigned long)__va(offset), size, flags) < 0) {
588 free_memtype(offset, offset + size); 599 free_memtype(offset, offset + size);
589 printk(KERN_INFO 600 printk(KERN_INFO
590 "%s:%d /dev/mem ioremap_change_attr failed %s for %Lx-%Lx\n", 601 "%s:%d /dev/mem ioremap_change_attr failed %s for %Lx-%Lx\n",
@@ -624,6 +635,33 @@ void unmap_devmem(unsigned long pfn, unsigned long size, pgprot_t vma_prot)
624} 635}
625 636
626/* 637/*
638 * Change the memory type for the physial address range in kernel identity
639 * mapping space if that range is a part of identity map.
640 */
641int kernel_map_sync_memtype(u64 base, unsigned long size, unsigned long flags)
642{
643 unsigned long id_sz;
644
645 if (!pat_enabled || base >= __pa(high_memory))
646 return 0;
647
648 id_sz = (__pa(high_memory) < base + size) ?
649 __pa(high_memory) - base :
650 size;
651
652 if (ioremap_change_attr((unsigned long)__va(base), id_sz, flags) < 0) {
653 printk(KERN_INFO
654 "%s:%d ioremap_change_attr failed %s "
655 "for %Lx-%Lx\n",
656 current->comm, current->pid,
657 cattr_name(flags),
658 base, (unsigned long long)(base + size));
659 return -EINVAL;
660 }
661 return 0;
662}
663
664/*
627 * Internal interface to reserve a range of physical memory with prot. 665 * Internal interface to reserve a range of physical memory with prot.
628 * Reserved non RAM regions only and after successful reserve_memtype, 666 * Reserved non RAM regions only and after successful reserve_memtype,
629 * this func also keeps identity mapping (if any) in sync with this new prot. 667 * this func also keeps identity mapping (if any) in sync with this new prot.
@@ -636,17 +674,13 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
636 unsigned long flags; 674 unsigned long flags;
637 unsigned long want_flags = (pgprot_val(*vma_prot) & _PAGE_CACHE_MASK); 675 unsigned long want_flags = (pgprot_val(*vma_prot) & _PAGE_CACHE_MASK);
638 676
639 is_ram = pagerange_is_ram(paddr, paddr + size); 677 is_ram = pat_pagerange_is_ram(paddr, paddr + size);
640 678
641 if (is_ram != 0) { 679 /*
642 /* 680 * reserve_pfn_range() doesn't support RAM pages.
643 * For mapping RAM pages, drivers need to call 681 */
644 * set_memory_[uc|wc|wb] directly, for reserve and free, before 682 if (is_ram != 0)
645 * setting up the PTE. 683 return -EINVAL;
646 */
647 WARN_ON_ONCE(1);
648 return 0;
649 }
650 684
651 ret = reserve_memtype(paddr, paddr + size, want_flags, &flags); 685 ret = reserve_memtype(paddr, paddr + size, want_flags, &flags);
652 if (ret) 686 if (ret)
@@ -673,15 +707,8 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
673 flags); 707 flags);
674 } 708 }
675 709
676 if (kernel_map_sync_memtype(paddr, size, flags)) { 710 if (kernel_map_sync_memtype(paddr, size, flags) < 0) {
677 free_memtype(paddr, paddr + size); 711 free_memtype(paddr, paddr + size);
678 printk(KERN_ERR
679 "%s:%d reserve_pfn_range ioremap_change_attr failed %s "
680 "for %Lx-%Lx\n",
681 current->comm, current->pid,
682 cattr_name(flags),
683 (unsigned long long)paddr,
684 (unsigned long long)(paddr + size));
685 return -EINVAL; 712 return -EINVAL;
686 } 713 }
687 return 0; 714 return 0;
@@ -695,7 +722,7 @@ static void free_pfn_range(u64 paddr, unsigned long size)
695{ 722{
696 int is_ram; 723 int is_ram;
697 724
698 is_ram = pagerange_is_ram(paddr, paddr + size); 725 is_ram = pat_pagerange_is_ram(paddr, paddr + size);
699 if (is_ram == 0) 726 if (is_ram == 0)
700 free_memtype(paddr, paddr + size); 727 free_memtype(paddr, paddr + size);
701} 728}
@@ -863,6 +890,7 @@ pgprot_t pgprot_writecombine(pgprot_t prot)
863 else 890 else
864 return pgprot_noncached(prot); 891 return pgprot_noncached(prot);
865} 892}
893EXPORT_SYMBOL_GPL(pgprot_writecombine);
866 894
867#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_PAT) 895#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_PAT)
868 896
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 86f2ffc43c3d..5b7c7c8464fe 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -313,6 +313,24 @@ int ptep_clear_flush_young(struct vm_area_struct *vma,
313 return young; 313 return young;
314} 314}
315 315
316/**
317 * reserve_top_address - reserves a hole in the top of kernel address space
318 * @reserve - size of hole to reserve
319 *
320 * Can be used to relocate the fixmap area and poke a hole in the top
321 * of kernel address space to make room for a hypervisor.
322 */
323void __init reserve_top_address(unsigned long reserve)
324{
325#ifdef CONFIG_X86_32
326 BUG_ON(fixmaps_set > 0);
327 printk(KERN_INFO "Reserving virtual address space above 0x%08x\n",
328 (int)-reserve);
329 __FIXADDR_TOP = -reserve - PAGE_SIZE;
330 __VMALLOC_RESERVE += reserve;
331#endif
332}
333
316int fixmaps_set; 334int fixmaps_set;
317 335
318void __native_set_fixmap(enum fixed_addresses idx, pte_t pte) 336void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
index 0951db9ee519..f2e477c91c1b 100644
--- a/arch/x86/mm/pgtable_32.c
+++ b/arch/x86/mm/pgtable_32.c
@@ -20,6 +20,8 @@
20#include <asm/tlb.h> 20#include <asm/tlb.h>
21#include <asm/tlbflush.h> 21#include <asm/tlbflush.h>
22 22
23unsigned int __VMALLOC_RESERVE = 128 << 20;
24
23/* 25/*
24 * Associate a virtual page frame with a given physical page frame 26 * Associate a virtual page frame with a given physical page frame
25 * and protection flags for that frame. 27 * and protection flags for that frame.
@@ -97,22 +99,6 @@ void set_pmd_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
97unsigned long __FIXADDR_TOP = 0xfffff000; 99unsigned long __FIXADDR_TOP = 0xfffff000;
98EXPORT_SYMBOL(__FIXADDR_TOP); 100EXPORT_SYMBOL(__FIXADDR_TOP);
99 101
100/**
101 * reserve_top_address - reserves a hole in the top of kernel address space
102 * @reserve - size of hole to reserve
103 *
104 * Can be used to relocate the fixmap area and poke a hole in the top
105 * of kernel address space to make room for a hypervisor.
106 */
107void __init reserve_top_address(unsigned long reserve)
108{
109 BUG_ON(fixmaps_set > 0);
110 printk(KERN_INFO "Reserving virtual address space above 0x%08x\n",
111 (int)-reserve);
112 __FIXADDR_TOP = -reserve - PAGE_SIZE;
113 __VMALLOC_RESERVE += reserve;
114}
115
116/* 102/*
117 * vmalloc=size forces the vmalloc area to be exactly 'size' 103 * vmalloc=size forces the vmalloc area to be exactly 'size'
118 * bytes. This can be used to increase (or decrease) the 104 * bytes. This can be used to increase (or decrease) the
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index 09737c8af074..574c8bc95ef0 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -20,7 +20,8 @@
20#include <asm/proto.h> 20#include <asm/proto.h>
21#include <asm/numa.h> 21#include <asm/numa.h>
22#include <asm/e820.h> 22#include <asm/e820.h>
23#include <asm/genapic.h> 23#include <asm/apic.h>
24#include <asm/uv/uv.h>
24 25
25int acpi_numa __initdata; 26int acpi_numa __initdata;
26 27
diff --git a/arch/x86/mm/testmmiotrace.c b/arch/x86/mm/testmmiotrace.c
index ab50a8d7402c..427fd1b56df5 100644
--- a/arch/x86/mm/testmmiotrace.c
+++ b/arch/x86/mm/testmmiotrace.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Written by Pekka Paalanen, 2008 <pq@iki.fi> 2 * Written by Pekka Paalanen, 2008-2009 <pq@iki.fi>
3 */ 3 */
4#include <linux/module.h> 4#include <linux/module.h>
5#include <linux/io.h> 5#include <linux/io.h>
@@ -9,35 +9,74 @@
9 9
10static unsigned long mmio_address; 10static unsigned long mmio_address;
11module_param(mmio_address, ulong, 0); 11module_param(mmio_address, ulong, 0);
12MODULE_PARM_DESC(mmio_address, "Start address of the mapping of 16 kB."); 12MODULE_PARM_DESC(mmio_address, " Start address of the mapping of 16 kB "
13 "(or 8 MB if read_far is non-zero).");
14
15static unsigned long read_far = 0x400100;
16module_param(read_far, ulong, 0);
17MODULE_PARM_DESC(read_far, " Offset of a 32-bit read within 8 MB "
18 "(default: 0x400100).");
19
20static unsigned v16(unsigned i)
21{
22 return i * 12 + 7;
23}
24
25static unsigned v32(unsigned i)
26{
27 return i * 212371 + 13;
28}
13 29
14static void do_write_test(void __iomem *p) 30static void do_write_test(void __iomem *p)
15{ 31{
16 unsigned int i; 32 unsigned int i;
33 pr_info(MODULE_NAME ": write test.\n");
17 mmiotrace_printk("Write test.\n"); 34 mmiotrace_printk("Write test.\n");
35
18 for (i = 0; i < 256; i++) 36 for (i = 0; i < 256; i++)
19 iowrite8(i, p + i); 37 iowrite8(i, p + i);
38
20 for (i = 1024; i < (5 * 1024); i += 2) 39 for (i = 1024; i < (5 * 1024); i += 2)
21 iowrite16(i * 12 + 7, p + i); 40 iowrite16(v16(i), p + i);
41
22 for (i = (5 * 1024); i < (16 * 1024); i += 4) 42 for (i = (5 * 1024); i < (16 * 1024); i += 4)
23 iowrite32(i * 212371 + 13, p + i); 43 iowrite32(v32(i), p + i);
24} 44}
25 45
26static void do_read_test(void __iomem *p) 46static void do_read_test(void __iomem *p)
27{ 47{
28 unsigned int i; 48 unsigned int i;
49 unsigned errs[3] = { 0 };
50 pr_info(MODULE_NAME ": read test.\n");
29 mmiotrace_printk("Read test.\n"); 51 mmiotrace_printk("Read test.\n");
52
30 for (i = 0; i < 256; i++) 53 for (i = 0; i < 256; i++)
31 ioread8(p + i); 54 if (ioread8(p + i) != i)
55 ++errs[0];
56
32 for (i = 1024; i < (5 * 1024); i += 2) 57 for (i = 1024; i < (5 * 1024); i += 2)
33 ioread16(p + i); 58 if (ioread16(p + i) != v16(i))
59 ++errs[1];
60
34 for (i = (5 * 1024); i < (16 * 1024); i += 4) 61 for (i = (5 * 1024); i < (16 * 1024); i += 4)
35 ioread32(p + i); 62 if (ioread32(p + i) != v32(i))
63 ++errs[2];
64
65 mmiotrace_printk("Read errors: 8-bit %d, 16-bit %d, 32-bit %d.\n",
66 errs[0], errs[1], errs[2]);
36} 67}
37 68
38static void do_test(void) 69static void do_read_far_test(void __iomem *p)
39{ 70{
40 void __iomem *p = ioremap_nocache(mmio_address, 0x4000); 71 pr_info(MODULE_NAME ": read far test.\n");
72 mmiotrace_printk("Read far test.\n");
73
74 ioread32(p + read_far);
75}
76
77static void do_test(unsigned long size)
78{
79 void __iomem *p = ioremap_nocache(mmio_address, size);
41 if (!p) { 80 if (!p) {
42 pr_err(MODULE_NAME ": could not ioremap, aborting.\n"); 81 pr_err(MODULE_NAME ": could not ioremap, aborting.\n");
43 return; 82 return;
@@ -45,11 +84,15 @@ static void do_test(void)
45 mmiotrace_printk("ioremap returned %p.\n", p); 84 mmiotrace_printk("ioremap returned %p.\n", p);
46 do_write_test(p); 85 do_write_test(p);
47 do_read_test(p); 86 do_read_test(p);
87 if (read_far && read_far < size - 4)
88 do_read_far_test(p);
48 iounmap(p); 89 iounmap(p);
49} 90}
50 91
51static int __init init(void) 92static int __init init(void)
52{ 93{
94 unsigned long size = (read_far) ? (8 << 20) : (16 << 10);
95
53 if (mmio_address == 0) { 96 if (mmio_address == 0) {
54 pr_err(MODULE_NAME ": you have to use the module argument " 97 pr_err(MODULE_NAME ": you have to use the module argument "
55 "mmio_address.\n"); 98 "mmio_address.\n");
@@ -58,10 +101,11 @@ static int __init init(void)
58 return -ENXIO; 101 return -ENXIO;
59 } 102 }
60 103
61 pr_warning(MODULE_NAME ": WARNING: mapping 16 kB @ 0x%08lx " 104 pr_warning(MODULE_NAME ": WARNING: mapping %lu kB @ 0x%08lx in PCI "
62 "in PCI address space, and writing " 105 "address space, and writing 16 kB of rubbish in there.\n",
63 "rubbish in there.\n", mmio_address); 106 size >> 10, mmio_address);
64 do_test(); 107 do_test(size);
108 pr_info(MODULE_NAME ": All done.\n");
65 return 0; 109 return 0;
66} 110}
67 111
diff --git a/arch/x86/kernel/tlb_64.c b/arch/x86/mm/tlb.c
index 7f4141d3b661..a654d59e4483 100644
--- a/arch/x86/kernel/tlb_64.c
+++ b/arch/x86/mm/tlb.c
@@ -1,24 +1,19 @@
1#include <linux/init.h> 1#include <linux/init.h>
2 2
3#include <linux/mm.h> 3#include <linux/mm.h>
4#include <linux/delay.h>
5#include <linux/spinlock.h> 4#include <linux/spinlock.h>
6#include <linux/smp.h> 5#include <linux/smp.h>
7#include <linux/kernel_stat.h>
8#include <linux/mc146818rtc.h>
9#include <linux/interrupt.h> 6#include <linux/interrupt.h>
7#include <linux/module.h>
10 8
11#include <asm/mtrr.h>
12#include <asm/pgalloc.h>
13#include <asm/tlbflush.h> 9#include <asm/tlbflush.h>
14#include <asm/mmu_context.h> 10#include <asm/mmu_context.h>
15#include <asm/proto.h> 11#include <asm/apic.h>
16#include <asm/apicdef.h> 12#include <asm/uv/uv.h>
17#include <asm/idle.h> 13
18#include <asm/uv/uv_hub.h> 14DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate)
19#include <asm/uv/uv_bau.h> 15 = { &init_mm, 0, };
20 16
21#include <mach_ipi.h>
22/* 17/*
23 * Smarter SMP flushing macros. 18 * Smarter SMP flushing macros.
24 * c/o Linus Torvalds. 19 * c/o Linus Torvalds.
@@ -33,7 +28,7 @@
33 * To avoid global state use 8 different call vectors. 28 * To avoid global state use 8 different call vectors.
34 * Each CPU uses a specific vector to trigger flushes on other 29 * Each CPU uses a specific vector to trigger flushes on other
35 * CPUs. Depending on the received vector the target CPUs look into 30 * CPUs. Depending on the received vector the target CPUs look into
36 * the right per cpu variable for the flush data. 31 * the right array slot for the flush data.
37 * 32 *
38 * With more than 8 CPUs they are hashed to the 8 available 33 * With more than 8 CPUs they are hashed to the 8 available
39 * vectors. The limited global vector space forces us to this right now. 34 * vectors. The limited global vector space forces us to this right now.
@@ -48,13 +43,13 @@ union smp_flush_state {
48 spinlock_t tlbstate_lock; 43 spinlock_t tlbstate_lock;
49 DECLARE_BITMAP(flush_cpumask, NR_CPUS); 44 DECLARE_BITMAP(flush_cpumask, NR_CPUS);
50 }; 45 };
51 char pad[SMP_CACHE_BYTES]; 46 char pad[CONFIG_X86_INTERNODE_CACHE_BYTES];
52} ____cacheline_aligned; 47} ____cacheline_internodealigned_in_smp;
53 48
54/* State is put into the per CPU data section, but padded 49/* State is put into the per CPU data section, but padded
55 to a full cache line because other CPUs can access it and we don't 50 to a full cache line because other CPUs can access it and we don't
56 want false sharing in the per cpu data segment. */ 51 want false sharing in the per cpu data segment. */
57static DEFINE_PER_CPU(union smp_flush_state, flush_state); 52static union smp_flush_state flush_state[NUM_INVALIDATE_TLB_VECTORS];
58 53
59/* 54/*
60 * We cannot call mmdrop() because we are in interrupt context, 55 * We cannot call mmdrop() because we are in interrupt context,
@@ -62,9 +57,9 @@ static DEFINE_PER_CPU(union smp_flush_state, flush_state);
62 */ 57 */
63void leave_mm(int cpu) 58void leave_mm(int cpu)
64{ 59{
65 if (read_pda(mmu_state) == TLBSTATE_OK) 60 if (percpu_read(cpu_tlbstate.state) == TLBSTATE_OK)
66 BUG(); 61 BUG();
67 cpu_clear(cpu, read_pda(active_mm)->cpu_vm_mask); 62 cpu_clear(cpu, percpu_read(cpu_tlbstate.active_mm)->cpu_vm_mask);
68 load_cr3(swapper_pg_dir); 63 load_cr3(swapper_pg_dir);
69} 64}
70EXPORT_SYMBOL_GPL(leave_mm); 65EXPORT_SYMBOL_GPL(leave_mm);
@@ -117,10 +112,20 @@ EXPORT_SYMBOL_GPL(leave_mm);
117 * Interrupts are disabled. 112 * Interrupts are disabled.
118 */ 113 */
119 114
120asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs) 115/*
116 * FIXME: use of asmlinkage is not consistent. On x86_64 it's noop
117 * but still used for documentation purpose but the usage is slightly
118 * inconsistent. On x86_32, asmlinkage is regparm(0) but interrupt
119 * entry calls in with the first parameter in %eax. Maybe define
120 * intrlinkage?
121 */
122#ifdef CONFIG_X86_64
123asmlinkage
124#endif
125void smp_invalidate_interrupt(struct pt_regs *regs)
121{ 126{
122 int cpu; 127 unsigned int cpu;
123 int sender; 128 unsigned int sender;
124 union smp_flush_state *f; 129 union smp_flush_state *f;
125 130
126 cpu = smp_processor_id(); 131 cpu = smp_processor_id();
@@ -129,7 +134,7 @@ asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs)
129 * Use that to determine where the sender put the data. 134 * Use that to determine where the sender put the data.
130 */ 135 */
131 sender = ~regs->orig_ax - INVALIDATE_TLB_VECTOR_START; 136 sender = ~regs->orig_ax - INVALIDATE_TLB_VECTOR_START;
132 f = &per_cpu(flush_state, sender); 137 f = &flush_state[sender];
133 138
134 if (!cpumask_test_cpu(cpu, to_cpumask(f->flush_cpumask))) 139 if (!cpumask_test_cpu(cpu, to_cpumask(f->flush_cpumask)))
135 goto out; 140 goto out;
@@ -142,8 +147,8 @@ asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs)
142 * BUG(); 147 * BUG();
143 */ 148 */
144 149
145 if (f->flush_mm == read_pda(active_mm)) { 150 if (f->flush_mm == percpu_read(cpu_tlbstate.active_mm)) {
146 if (read_pda(mmu_state) == TLBSTATE_OK) { 151 if (percpu_read(cpu_tlbstate.state) == TLBSTATE_OK) {
147 if (f->flush_va == TLB_FLUSH_ALL) 152 if (f->flush_va == TLB_FLUSH_ALL)
148 local_flush_tlb(); 153 local_flush_tlb();
149 else 154 else
@@ -153,19 +158,21 @@ asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs)
153 } 158 }
154out: 159out:
155 ack_APIC_irq(); 160 ack_APIC_irq();
161 smp_mb__before_clear_bit();
156 cpumask_clear_cpu(cpu, to_cpumask(f->flush_cpumask)); 162 cpumask_clear_cpu(cpu, to_cpumask(f->flush_cpumask));
163 smp_mb__after_clear_bit();
157 inc_irq_stat(irq_tlb_count); 164 inc_irq_stat(irq_tlb_count);
158} 165}
159 166
160static void flush_tlb_others_ipi(const struct cpumask *cpumask, 167static void flush_tlb_others_ipi(const struct cpumask *cpumask,
161 struct mm_struct *mm, unsigned long va) 168 struct mm_struct *mm, unsigned long va)
162{ 169{
163 int sender; 170 unsigned int sender;
164 union smp_flush_state *f; 171 union smp_flush_state *f;
165 172
166 /* Caller has disabled preemption */ 173 /* Caller has disabled preemption */
167 sender = smp_processor_id() % NUM_INVALIDATE_TLB_VECTORS; 174 sender = smp_processor_id() % NUM_INVALIDATE_TLB_VECTORS;
168 f = &per_cpu(flush_state, sender); 175 f = &flush_state[sender];
169 176
170 /* 177 /*
171 * Could avoid this lock when 178 * Could avoid this lock when
@@ -188,7 +195,7 @@ static void flush_tlb_others_ipi(const struct cpumask *cpumask,
188 * We have to send the IPI only to 195 * We have to send the IPI only to
189 * CPUs affected. 196 * CPUs affected.
190 */ 197 */
191 send_IPI_mask(to_cpumask(f->flush_cpumask), 198 apic->send_IPI_mask(to_cpumask(f->flush_cpumask),
192 INVALIDATE_TLB_VECTOR_START + sender); 199 INVALIDATE_TLB_VECTOR_START + sender);
193 200
194 while (!cpumask_empty(to_cpumask(f->flush_cpumask))) 201 while (!cpumask_empty(to_cpumask(f->flush_cpumask)))
@@ -203,16 +210,13 @@ void native_flush_tlb_others(const struct cpumask *cpumask,
203 struct mm_struct *mm, unsigned long va) 210 struct mm_struct *mm, unsigned long va)
204{ 211{
205 if (is_uv_system()) { 212 if (is_uv_system()) {
206 /* FIXME: could be an percpu_alloc'd thing */ 213 unsigned int cpu;
207 static DEFINE_PER_CPU(cpumask_t, flush_tlb_mask);
208 struct cpumask *after_uv_flush = &get_cpu_var(flush_tlb_mask);
209
210 cpumask_andnot(after_uv_flush, cpumask,
211 cpumask_of(smp_processor_id()));
212 if (!uv_flush_tlb_others(after_uv_flush, mm, va))
213 flush_tlb_others_ipi(after_uv_flush, mm, va);
214 214
215 put_cpu_var(flush_tlb_uv_cpumask); 215 cpu = get_cpu();
216 cpumask = uv_flush_tlb_others(cpumask, mm, va, cpu);
217 if (cpumask)
218 flush_tlb_others_ipi(cpumask, mm, va);
219 put_cpu();
216 return; 220 return;
217 } 221 }
218 flush_tlb_others_ipi(cpumask, mm, va); 222 flush_tlb_others_ipi(cpumask, mm, va);
@@ -222,8 +226,8 @@ static int __cpuinit init_smp_flush(void)
222{ 226{
223 int i; 227 int i;
224 228
225 for_each_possible_cpu(i) 229 for (i = 0; i < ARRAY_SIZE(flush_state); i++)
226 spin_lock_init(&per_cpu(flush_state, i).tlbstate_lock); 230 spin_lock_init(&flush_state[i].tlbstate_lock);
227 231
228 return 0; 232 return 0;
229} 233}
@@ -281,7 +285,7 @@ static void do_flush_tlb_all(void *info)
281 unsigned long cpu = smp_processor_id(); 285 unsigned long cpu = smp_processor_id();
282 286
283 __flush_tlb_all(); 287 __flush_tlb_all();
284 if (read_pda(mmu_state) == TLBSTATE_LAZY) 288 if (percpu_read(cpu_tlbstate.state) == TLBSTATE_LAZY)
285 leave_mm(cpu); 289 leave_mm(cpu);
286} 290}
287 291
diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
index e9f80c744cf3..10131fbdaada 100644
--- a/arch/x86/oprofile/op_model_ppro.c
+++ b/arch/x86/oprofile/op_model_ppro.c
@@ -78,8 +78,18 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs)
78 if (cpu_has_arch_perfmon) { 78 if (cpu_has_arch_perfmon) {
79 union cpuid10_eax eax; 79 union cpuid10_eax eax;
80 eax.full = cpuid_eax(0xa); 80 eax.full = cpuid_eax(0xa);
81 if (counter_width < eax.split.bit_width) 81
82 counter_width = eax.split.bit_width; 82 /*
83 * For Core2 (family 6, model 15), don't reset the
84 * counter width:
85 */
86 if (!(eax.split.version_id == 0 &&
87 current_cpu_data.x86 == 6 &&
88 current_cpu_data.x86_model == 15)) {
89
90 if (counter_width < eax.split.bit_width)
91 counter_width = eax.split.bit_width;
92 }
83 } 93 }
84 94
85 /* clear all counters */ 95 /* clear all counters */
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
index 4064345cf144..fecbce6e7d7c 100644
--- a/arch/x86/pci/irq.c
+++ b/arch/x86/pci/irq.c
@@ -572,6 +572,7 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
572 case PCI_DEVICE_ID_INTEL_ICH7_1: 572 case PCI_DEVICE_ID_INTEL_ICH7_1:
573 case PCI_DEVICE_ID_INTEL_ICH7_30: 573 case PCI_DEVICE_ID_INTEL_ICH7_30:
574 case PCI_DEVICE_ID_INTEL_ICH7_31: 574 case PCI_DEVICE_ID_INTEL_ICH7_31:
575 case PCI_DEVICE_ID_INTEL_TGP_LPC:
575 case PCI_DEVICE_ID_INTEL_ESB2_0: 576 case PCI_DEVICE_ID_INTEL_ESB2_0:
576 case PCI_DEVICE_ID_INTEL_ICH8_0: 577 case PCI_DEVICE_ID_INTEL_ICH8_0:
577 case PCI_DEVICE_ID_INTEL_ICH8_1: 578 case PCI_DEVICE_ID_INTEL_ICH8_1:
diff --git a/arch/x86/pci/numaq_32.c b/arch/x86/pci/numaq_32.c
index 2089354968a2..8eb295e116f6 100644
--- a/arch/x86/pci/numaq_32.c
+++ b/arch/x86/pci/numaq_32.c
@@ -5,7 +5,7 @@
5#include <linux/pci.h> 5#include <linux/pci.h>
6#include <linux/init.h> 6#include <linux/init.h>
7#include <linux/nodemask.h> 7#include <linux/nodemask.h>
8#include <mach_apic.h> 8#include <asm/apic.h>
9#include <asm/mpspec.h> 9#include <asm/mpspec.h>
10#include <asm/pci_x86.h> 10#include <asm/pci_x86.h>
11 11
@@ -18,10 +18,6 @@
18 18
19#define QUADLOCAL2BUS(quad,local) (quad_local_to_mp_bus_id[quad][local]) 19#define QUADLOCAL2BUS(quad,local) (quad_local_to_mp_bus_id[quad][local])
20 20
21/* Where the IO area was mapped on multiquad, always 0 otherwise */
22void *xquad_portio;
23EXPORT_SYMBOL(xquad_portio);
24
25#define XQUAD_PORT_ADDR(port, quad) (xquad_portio + (XQUAD_PORTIO_QUAD*quad) + port) 21#define XQUAD_PORT_ADDR(port, quad) (xquad_portio + (XQUAD_PORTIO_QUAD*quad) + port)
26 22
27#define PCI_CONF1_MQ_ADDRESS(bus, devfn, reg) \ 23#define PCI_CONF1_MQ_ADDRESS(bus, devfn, reg) \
diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
index b82cae970dfd..1c975cc9839e 100644
--- a/arch/x86/pci/pcbios.c
+++ b/arch/x86/pci/pcbios.c
@@ -7,7 +7,7 @@
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/uaccess.h> 8#include <linux/uaccess.h>
9#include <asm/pci_x86.h> 9#include <asm/pci_x86.h>
10#include <asm/mach-default/pci-functions.h> 10#include <asm/pci-functions.h>
11 11
12/* BIOS32 signature: "_32_" */ 12/* BIOS32 signature: "_32_" */
13#define BIOS32_SIGNATURE (('_' << 0) + ('3' << 8) + ('2' << 16) + ('_' << 24)) 13#define BIOS32_SIGNATURE (('_' << 0) + ('3' << 8) + ('2' << 16) + ('_' << 24))
diff --git a/arch/x86/power/hibernate_asm_32.S b/arch/x86/power/hibernate_asm_32.S
index d1e9b53f9d33..b641388d8286 100644
--- a/arch/x86/power/hibernate_asm_32.S
+++ b/arch/x86/power/hibernate_asm_32.S
@@ -8,7 +8,7 @@
8 8
9#include <linux/linkage.h> 9#include <linux/linkage.h>
10#include <asm/segment.h> 10#include <asm/segment.h>
11#include <asm/page.h> 11#include <asm/page_types.h>
12#include <asm/asm-offsets.h> 12#include <asm/asm-offsets.h>
13#include <asm/processor-flags.h> 13#include <asm/processor-flags.h>
14 14
diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S
index 000415947d93..9356547d8c01 100644
--- a/arch/x86/power/hibernate_asm_64.S
+++ b/arch/x86/power/hibernate_asm_64.S
@@ -18,7 +18,7 @@
18 .text 18 .text
19#include <linux/linkage.h> 19#include <linux/linkage.h>
20#include <asm/segment.h> 20#include <asm/segment.h>
21#include <asm/page.h> 21#include <asm/page_types.h>
22#include <asm/asm-offsets.h> 22#include <asm/asm-offsets.h>
23#include <asm/processor-flags.h> 23#include <asm/processor-flags.h>
24 24
diff --git a/arch/x86/scripts/strip-symbols b/arch/x86/scripts/strip-symbols
deleted file mode 100644
index a2f1ccb827c7..000000000000
--- a/arch/x86/scripts/strip-symbols
+++ /dev/null
@@ -1 +0,0 @@
1__cpu_vendor_dev_X86_VENDOR_*
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
index 4d6ef0a336d6..16a9020c8f11 100644
--- a/arch/x86/vdso/Makefile
+++ b/arch/x86/vdso/Makefile
@@ -38,7 +38,7 @@ $(obj)/%.so: $(obj)/%.so.dbg FORCE
38 $(call if_changed,objcopy) 38 $(call if_changed,objcopy)
39 39
40CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \ 40CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \
41 $(filter -g%,$(KBUILD_CFLAGS)) 41 $(filter -g%,$(KBUILD_CFLAGS)) $(call cc-option, -fno-stack-protector)
42 42
43$(vobjs): KBUILD_CFLAGS += $(CFL) 43$(vobjs): KBUILD_CFLAGS += $(CFL)
44 44
diff --git a/arch/x86/vdso/vma.c b/arch/x86/vdso/vma.c
index 9c98cc6ba978..7133cdf9098b 100644
--- a/arch/x86/vdso/vma.c
+++ b/arch/x86/vdso/vma.c
@@ -85,8 +85,8 @@ static unsigned long vdso_addr(unsigned long start, unsigned len)
85 unsigned long addr, end; 85 unsigned long addr, end;
86 unsigned offset; 86 unsigned offset;
87 end = (start + PMD_SIZE - 1) & PMD_MASK; 87 end = (start + PMD_SIZE - 1) & PMD_MASK;
88 if (end >= TASK_SIZE64) 88 if (end >= TASK_SIZE_MAX)
89 end = TASK_SIZE64; 89 end = TASK_SIZE_MAX;
90 end -= len; 90 end -= len;
91 /* This loses some more bits than a modulo, but is cheaper */ 91 /* This loses some more bits than a modulo, but is cheaper */
92 offset = get_random_int() & (PTRS_PER_PTE - 1); 92 offset = get_random_int() & (PTRS_PER_PTE - 1);
diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index 87b9ab166423..b83e119fbeb0 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -6,7 +6,7 @@ config XEN
6 bool "Xen guest support" 6 bool "Xen guest support"
7 select PARAVIRT 7 select PARAVIRT
8 select PARAVIRT_CLOCK 8 select PARAVIRT_CLOCK
9 depends on X86_64 || (X86_32 && X86_PAE && !(X86_VISWS || X86_VOYAGER)) 9 depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
10 depends on X86_CMPXCHG && X86_TSC 10 depends on X86_CMPXCHG && X86_TSC
11 help 11 help
12 This is the Linux Xen port. Enabling this will allow the 12 This is the Linux Xen port. Enabling this will allow the
diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
index 6dcefba7836f..3b767d03fd6a 100644
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -6,7 +6,8 @@ CFLAGS_REMOVE_irq.o = -pg
6endif 6endif
7 7
8obj-y := enlighten.o setup.o multicalls.o mmu.o irq.o \ 8obj-y := enlighten.o setup.o multicalls.o mmu.o irq.o \
9 time.o xen-asm_$(BITS).o grant-table.o suspend.o 9 time.o xen-asm.o xen-asm_$(BITS).o \
10 grant-table.o suspend.o
10 11
11obj-$(CONFIG_SMP) += smp.o spinlock.o 12obj-$(CONFIG_SMP) += smp.o spinlock.o
12obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o \ No newline at end of file 13obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o \ No newline at end of file
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 965539ec425f..82cd39a6cbd3 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -61,40 +61,13 @@ DEFINE_PER_CPU(struct vcpu_info, xen_vcpu_info);
61enum xen_domain_type xen_domain_type = XEN_NATIVE; 61enum xen_domain_type xen_domain_type = XEN_NATIVE;
62EXPORT_SYMBOL_GPL(xen_domain_type); 62EXPORT_SYMBOL_GPL(xen_domain_type);
63 63
64/*
65 * Identity map, in addition to plain kernel map. This needs to be
66 * large enough to allocate page table pages to allocate the rest.
67 * Each page can map 2MB.
68 */
69static pte_t level1_ident_pgt[PTRS_PER_PTE * 4] __page_aligned_bss;
70
71#ifdef CONFIG_X86_64
72/* l3 pud for userspace vsyscall mapping */
73static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
74#endif /* CONFIG_X86_64 */
75
76/*
77 * Note about cr3 (pagetable base) values:
78 *
79 * xen_cr3 contains the current logical cr3 value; it contains the
80 * last set cr3. This may not be the current effective cr3, because
81 * its update may be being lazily deferred. However, a vcpu looking
82 * at its own cr3 can use this value knowing that it everything will
83 * be self-consistent.
84 *
85 * xen_current_cr3 contains the actual vcpu cr3; it is set once the
86 * hypercall to set the vcpu cr3 is complete (so it may be a little
87 * out of date, but it will never be set early). If one vcpu is
88 * looking at another vcpu's cr3 value, it should use this variable.
89 */
90DEFINE_PER_CPU(unsigned long, xen_cr3); /* cr3 stored as physaddr */
91DEFINE_PER_CPU(unsigned long, xen_current_cr3); /* actual vcpu cr3 */
92
93struct start_info *xen_start_info; 64struct start_info *xen_start_info;
94EXPORT_SYMBOL_GPL(xen_start_info); 65EXPORT_SYMBOL_GPL(xen_start_info);
95 66
96struct shared_info xen_dummy_shared_info; 67struct shared_info xen_dummy_shared_info;
97 68
69void *xen_initial_gdt;
70
98/* 71/*
99 * Point at some empty memory to start with. We map the real shared_info 72 * Point at some empty memory to start with. We map the real shared_info
100 * page as soon as fixmap is up and running. 73 * page as soon as fixmap is up and running.
@@ -114,14 +87,7 @@ struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
114 * 87 *
115 * 0: not available, 1: available 88 * 0: not available, 1: available
116 */ 89 */
117static int have_vcpu_info_placement = 90static int have_vcpu_info_placement = 1;
118#ifdef CONFIG_X86_32
119 1
120#else
121 0
122#endif
123 ;
124
125 91
126static void xen_vcpu_setup(int cpu) 92static void xen_vcpu_setup(int cpu)
127{ 93{
@@ -137,7 +103,7 @@ static void xen_vcpu_setup(int cpu)
137 103
138 vcpup = &per_cpu(xen_vcpu_info, cpu); 104 vcpup = &per_cpu(xen_vcpu_info, cpu);
139 105
140 info.mfn = virt_to_mfn(vcpup); 106 info.mfn = arbitrary_virt_to_mfn(vcpup);
141 info.offset = offset_in_page(vcpup); 107 info.offset = offset_in_page(vcpup);
142 108
143 printk(KERN_DEBUG "trying to map vcpu_info %d at %p, mfn %llx, offset %d\n", 109 printk(KERN_DEBUG "trying to map vcpu_info %d at %p, mfn %llx, offset %d\n",
@@ -237,7 +203,7 @@ static unsigned long xen_get_debugreg(int reg)
237 return HYPERVISOR_get_debugreg(reg); 203 return HYPERVISOR_get_debugreg(reg);
238} 204}
239 205
240static void xen_leave_lazy(void) 206void xen_leave_lazy(void)
241{ 207{
242 paravirt_leave_lazy(paravirt_get_lazy_mode()); 208 paravirt_leave_lazy(paravirt_get_lazy_mode());
243 xen_mc_flush(); 209 xen_mc_flush();
@@ -335,8 +301,10 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
335 frames = mcs.args; 301 frames = mcs.args;
336 302
337 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) { 303 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
338 frames[f] = virt_to_mfn(va); 304 frames[f] = arbitrary_virt_to_mfn((void *)va);
305
339 make_lowmem_page_readonly((void *)va); 306 make_lowmem_page_readonly((void *)va);
307 make_lowmem_page_readonly(mfn_to_virt(frames[f]));
340 } 308 }
341 309
342 MULTI_set_gdt(mcs.mc, frames, size / sizeof(struct desc_struct)); 310 MULTI_set_gdt(mcs.mc, frames, size / sizeof(struct desc_struct));
@@ -348,7 +316,7 @@ static void load_TLS_descriptor(struct thread_struct *t,
348 unsigned int cpu, unsigned int i) 316 unsigned int cpu, unsigned int i)
349{ 317{
350 struct desc_struct *gdt = get_cpu_gdt_table(cpu); 318 struct desc_struct *gdt = get_cpu_gdt_table(cpu);
351 xmaddr_t maddr = virt_to_machine(&gdt[GDT_ENTRY_TLS_MIN+i]); 319 xmaddr_t maddr = arbitrary_virt_to_machine(&gdt[GDT_ENTRY_TLS_MIN+i]);
352 struct multicall_space mc = __xen_mc_entry(0); 320 struct multicall_space mc = __xen_mc_entry(0);
353 321
354 MULTI_update_descriptor(mc.mc, maddr.maddr, t->tls_array[i]); 322 MULTI_update_descriptor(mc.mc, maddr.maddr, t->tls_array[i]);
@@ -357,13 +325,14 @@ static void load_TLS_descriptor(struct thread_struct *t,
357static void xen_load_tls(struct thread_struct *t, unsigned int cpu) 325static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
358{ 326{
359 /* 327 /*
360 * XXX sleazy hack: If we're being called in a lazy-cpu zone, 328 * XXX sleazy hack: If we're being called in a lazy-cpu zone
361 * it means we're in a context switch, and %gs has just been 329 * and lazy gs handling is enabled, it means we're in a
362 * saved. This means we can zero it out to prevent faults on 330 * context switch, and %gs has just been saved. This means we
363 * exit from the hypervisor if the next process has no %gs. 331 * can zero it out to prevent faults on exit from the
364 * Either way, it has been saved, and the new value will get 332 * hypervisor if the next process has no %gs. Either way, it
365 * loaded properly. This will go away as soon as Xen has been 333 * has been saved, and the new value will get loaded properly.
366 * modified to not save/restore %gs for normal hypercalls. 334 * This will go away as soon as Xen has been modified to not
335 * save/restore %gs for normal hypercalls.
367 * 336 *
368 * On x86_64, this hack is not used for %gs, because gs points 337 * On x86_64, this hack is not used for %gs, because gs points
369 * to KERNEL_GS_BASE (and uses it for PDA references), so we 338 * to KERNEL_GS_BASE (and uses it for PDA references), so we
@@ -375,7 +344,7 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
375 */ 344 */
376 if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) { 345 if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) {
377#ifdef CONFIG_X86_32 346#ifdef CONFIG_X86_32
378 loadsegment(gs, 0); 347 lazy_load_gs(0);
379#else 348#else
380 loadsegment(fs, 0); 349 loadsegment(fs, 0);
381#endif 350#endif
@@ -521,7 +490,7 @@ static void xen_write_gdt_entry(struct desc_struct *dt, int entry,
521 break; 490 break;
522 491
523 default: { 492 default: {
524 xmaddr_t maddr = virt_to_machine(&dt[entry]); 493 xmaddr_t maddr = arbitrary_virt_to_machine(&dt[entry]);
525 494
526 xen_mc_flush(); 495 xen_mc_flush();
527 if (HYPERVISOR_update_descriptor(maddr.maddr, *(u64 *)desc)) 496 if (HYPERVISOR_update_descriptor(maddr.maddr, *(u64 *)desc))
@@ -587,87 +556,18 @@ static u32 xen_safe_apic_wait_icr_idle(void)
587 return 0; 556 return 0;
588} 557}
589 558
590static struct apic_ops xen_basic_apic_ops = { 559static void set_xen_basic_apic_ops(void)
591 .read = xen_apic_read,
592 .write = xen_apic_write,
593 .icr_read = xen_apic_icr_read,
594 .icr_write = xen_apic_icr_write,
595 .wait_icr_idle = xen_apic_wait_icr_idle,
596 .safe_wait_icr_idle = xen_safe_apic_wait_icr_idle,
597};
598
599#endif
600
601static void xen_flush_tlb(void)
602{ 560{
603 struct mmuext_op *op; 561 apic->read = xen_apic_read;
604 struct multicall_space mcs; 562 apic->write = xen_apic_write;
605 563 apic->icr_read = xen_apic_icr_read;
606 preempt_disable(); 564 apic->icr_write = xen_apic_icr_write;
607 565 apic->wait_icr_idle = xen_apic_wait_icr_idle;
608 mcs = xen_mc_entry(sizeof(*op)); 566 apic->safe_wait_icr_idle = xen_safe_apic_wait_icr_idle;
609
610 op = mcs.args;
611 op->cmd = MMUEXT_TLB_FLUSH_LOCAL;
612 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
613
614 xen_mc_issue(PARAVIRT_LAZY_MMU);
615
616 preempt_enable();
617} 567}
618 568
619static void xen_flush_tlb_single(unsigned long addr) 569#endif
620{
621 struct mmuext_op *op;
622 struct multicall_space mcs;
623
624 preempt_disable();
625
626 mcs = xen_mc_entry(sizeof(*op));
627 op = mcs.args;
628 op->cmd = MMUEXT_INVLPG_LOCAL;
629 op->arg1.linear_addr = addr & PAGE_MASK;
630 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
631
632 xen_mc_issue(PARAVIRT_LAZY_MMU);
633
634 preempt_enable();
635}
636
637static void xen_flush_tlb_others(const struct cpumask *cpus,
638 struct mm_struct *mm, unsigned long va)
639{
640 struct {
641 struct mmuext_op op;
642 DECLARE_BITMAP(mask, NR_CPUS);
643 } *args;
644 struct multicall_space mcs;
645
646 BUG_ON(cpumask_empty(cpus));
647 BUG_ON(!mm);
648
649 mcs = xen_mc_entry(sizeof(*args));
650 args = mcs.args;
651 args->op.arg2.vcpumask = to_cpumask(args->mask);
652
653 /* Remove us, and any offline CPUS. */
654 cpumask_and(to_cpumask(args->mask), cpus, cpu_online_mask);
655 cpumask_clear_cpu(smp_processor_id(), to_cpumask(args->mask));
656 if (unlikely(cpumask_empty(to_cpumask(args->mask))))
657 goto issue;
658
659 if (va == TLB_FLUSH_ALL) {
660 args->op.cmd = MMUEXT_TLB_FLUSH_MULTI;
661 } else {
662 args->op.cmd = MMUEXT_INVLPG_MULTI;
663 args->op.arg1.linear_addr = va;
664 }
665
666 MULTI_mmuext_op(mcs.mc, &args->op, 1, NULL, DOMID_SELF);
667 570
668issue:
669 xen_mc_issue(PARAVIRT_LAZY_MMU);
670}
671 571
672static void xen_clts(void) 572static void xen_clts(void)
673{ 573{
@@ -693,21 +593,6 @@ static void xen_write_cr0(unsigned long cr0)
693 xen_mc_issue(PARAVIRT_LAZY_CPU); 593 xen_mc_issue(PARAVIRT_LAZY_CPU);
694} 594}
695 595
696static void xen_write_cr2(unsigned long cr2)
697{
698 x86_read_percpu(xen_vcpu)->arch.cr2 = cr2;
699}
700
701static unsigned long xen_read_cr2(void)
702{
703 return x86_read_percpu(xen_vcpu)->arch.cr2;
704}
705
706static unsigned long xen_read_cr2_direct(void)
707{
708 return x86_read_percpu(xen_vcpu_info.arch.cr2);
709}
710
711static void xen_write_cr4(unsigned long cr4) 596static void xen_write_cr4(unsigned long cr4)
712{ 597{
713 cr4 &= ~X86_CR4_PGE; 598 cr4 &= ~X86_CR4_PGE;
@@ -716,71 +601,6 @@ static void xen_write_cr4(unsigned long cr4)
716 native_write_cr4(cr4); 601 native_write_cr4(cr4);
717} 602}
718 603
719static unsigned long xen_read_cr3(void)
720{
721 return x86_read_percpu(xen_cr3);
722}
723
724static void set_current_cr3(void *v)
725{
726 x86_write_percpu(xen_current_cr3, (unsigned long)v);
727}
728
729static void __xen_write_cr3(bool kernel, unsigned long cr3)
730{
731 struct mmuext_op *op;
732 struct multicall_space mcs;
733 unsigned long mfn;
734
735 if (cr3)
736 mfn = pfn_to_mfn(PFN_DOWN(cr3));
737 else
738 mfn = 0;
739
740 WARN_ON(mfn == 0 && kernel);
741
742 mcs = __xen_mc_entry(sizeof(*op));
743
744 op = mcs.args;
745 op->cmd = kernel ? MMUEXT_NEW_BASEPTR : MMUEXT_NEW_USER_BASEPTR;
746 op->arg1.mfn = mfn;
747
748 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
749
750 if (kernel) {
751 x86_write_percpu(xen_cr3, cr3);
752
753 /* Update xen_current_cr3 once the batch has actually
754 been submitted. */
755 xen_mc_callback(set_current_cr3, (void *)cr3);
756 }
757}
758
759static void xen_write_cr3(unsigned long cr3)
760{
761 BUG_ON(preemptible());
762
763 xen_mc_batch(); /* disables interrupts */
764
765 /* Update while interrupts are disabled, so its atomic with
766 respect to ipis */
767 x86_write_percpu(xen_cr3, cr3);
768
769 __xen_write_cr3(true, cr3);
770
771#ifdef CONFIG_X86_64
772 {
773 pgd_t *user_pgd = xen_get_user_pgd(__va(cr3));
774 if (user_pgd)
775 __xen_write_cr3(false, __pa(user_pgd));
776 else
777 __xen_write_cr3(false, 0);
778 }
779#endif
780
781 xen_mc_issue(PARAVIRT_LAZY_CPU); /* interrupts restored */
782}
783
784static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high) 604static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
785{ 605{
786 int ret; 606 int ret;
@@ -822,185 +642,6 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
822 return ret; 642 return ret;
823} 643}
824 644
825/* Early in boot, while setting up the initial pagetable, assume
826 everything is pinned. */
827static __init void xen_alloc_pte_init(struct mm_struct *mm, unsigned long pfn)
828{
829#ifdef CONFIG_FLATMEM
830 BUG_ON(mem_map); /* should only be used early */
831#endif
832 make_lowmem_page_readonly(__va(PFN_PHYS(pfn)));
833}
834
835/* Early release_pte assumes that all pts are pinned, since there's
836 only init_mm and anything attached to that is pinned. */
837static void xen_release_pte_init(unsigned long pfn)
838{
839 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
840}
841
842static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn)
843{
844 struct mmuext_op op;
845 op.cmd = cmd;
846 op.arg1.mfn = pfn_to_mfn(pfn);
847 if (HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF))
848 BUG();
849}
850
851/* This needs to make sure the new pte page is pinned iff its being
852 attached to a pinned pagetable. */
853static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn, unsigned level)
854{
855 struct page *page = pfn_to_page(pfn);
856
857 if (PagePinned(virt_to_page(mm->pgd))) {
858 SetPagePinned(page);
859
860 vm_unmap_aliases();
861 if (!PageHighMem(page)) {
862 make_lowmem_page_readonly(__va(PFN_PHYS((unsigned long)pfn)));
863 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
864 pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
865 } else {
866 /* make sure there are no stray mappings of
867 this page */
868 kmap_flush_unused();
869 }
870 }
871}
872
873static void xen_alloc_pte(struct mm_struct *mm, unsigned long pfn)
874{
875 xen_alloc_ptpage(mm, pfn, PT_PTE);
876}
877
878static void xen_alloc_pmd(struct mm_struct *mm, unsigned long pfn)
879{
880 xen_alloc_ptpage(mm, pfn, PT_PMD);
881}
882
883static int xen_pgd_alloc(struct mm_struct *mm)
884{
885 pgd_t *pgd = mm->pgd;
886 int ret = 0;
887
888 BUG_ON(PagePinned(virt_to_page(pgd)));
889
890#ifdef CONFIG_X86_64
891 {
892 struct page *page = virt_to_page(pgd);
893 pgd_t *user_pgd;
894
895 BUG_ON(page->private != 0);
896
897 ret = -ENOMEM;
898
899 user_pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
900 page->private = (unsigned long)user_pgd;
901
902 if (user_pgd != NULL) {
903 user_pgd[pgd_index(VSYSCALL_START)] =
904 __pgd(__pa(level3_user_vsyscall) | _PAGE_TABLE);
905 ret = 0;
906 }
907
908 BUG_ON(PagePinned(virt_to_page(xen_get_user_pgd(pgd))));
909 }
910#endif
911
912 return ret;
913}
914
915static void xen_pgd_free(struct mm_struct *mm, pgd_t *pgd)
916{
917#ifdef CONFIG_X86_64
918 pgd_t *user_pgd = xen_get_user_pgd(pgd);
919
920 if (user_pgd)
921 free_page((unsigned long)user_pgd);
922#endif
923}
924
925/* This should never happen until we're OK to use struct page */
926static void xen_release_ptpage(unsigned long pfn, unsigned level)
927{
928 struct page *page = pfn_to_page(pfn);
929
930 if (PagePinned(page)) {
931 if (!PageHighMem(page)) {
932 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
933 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
934 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
935 }
936 ClearPagePinned(page);
937 }
938}
939
940static void xen_release_pte(unsigned long pfn)
941{
942 xen_release_ptpage(pfn, PT_PTE);
943}
944
945static void xen_release_pmd(unsigned long pfn)
946{
947 xen_release_ptpage(pfn, PT_PMD);
948}
949
950#if PAGETABLE_LEVELS == 4
951static void xen_alloc_pud(struct mm_struct *mm, unsigned long pfn)
952{
953 xen_alloc_ptpage(mm, pfn, PT_PUD);
954}
955
956static void xen_release_pud(unsigned long pfn)
957{
958 xen_release_ptpage(pfn, PT_PUD);
959}
960#endif
961
962#ifdef CONFIG_HIGHPTE
963static void *xen_kmap_atomic_pte(struct page *page, enum km_type type)
964{
965 pgprot_t prot = PAGE_KERNEL;
966
967 if (PagePinned(page))
968 prot = PAGE_KERNEL_RO;
969
970 if (0 && PageHighMem(page))
971 printk("mapping highpte %lx type %d prot %s\n",
972 page_to_pfn(page), type,
973 (unsigned long)pgprot_val(prot) & _PAGE_RW ? "WRITE" : "READ");
974
975 return kmap_atomic_prot(page, type, prot);
976}
977#endif
978
979#ifdef CONFIG_X86_32
980static __init pte_t mask_rw_pte(pte_t *ptep, pte_t pte)
981{
982 /* If there's an existing pte, then don't allow _PAGE_RW to be set */
983 if (pte_val_ma(*ptep) & _PAGE_PRESENT)
984 pte = __pte_ma(((pte_val_ma(*ptep) & _PAGE_RW) | ~_PAGE_RW) &
985 pte_val_ma(pte));
986
987 return pte;
988}
989
990/* Init-time set_pte while constructing initial pagetables, which
991 doesn't allow RO pagetable pages to be remapped RW */
992static __init void xen_set_pte_init(pte_t *ptep, pte_t pte)
993{
994 pte = mask_rw_pte(ptep, pte);
995
996 xen_set_pte(ptep, pte);
997}
998#endif
999
1000static __init void xen_pagetable_setup_start(pgd_t *base)
1001{
1002}
1003
1004void xen_setup_shared_info(void) 645void xen_setup_shared_info(void)
1005{ 646{
1006 if (!xen_feature(XENFEAT_auto_translated_physmap)) { 647 if (!xen_feature(XENFEAT_auto_translated_physmap)) {
@@ -1021,37 +662,6 @@ void xen_setup_shared_info(void)
1021 xen_setup_mfn_list_list(); 662 xen_setup_mfn_list_list();
1022} 663}
1023 664
1024static __init void xen_pagetable_setup_done(pgd_t *base)
1025{
1026 xen_setup_shared_info();
1027}
1028
1029static __init void xen_post_allocator_init(void)
1030{
1031 pv_mmu_ops.set_pte = xen_set_pte;
1032 pv_mmu_ops.set_pmd = xen_set_pmd;
1033 pv_mmu_ops.set_pud = xen_set_pud;
1034#if PAGETABLE_LEVELS == 4
1035 pv_mmu_ops.set_pgd = xen_set_pgd;
1036#endif
1037
1038 /* This will work as long as patching hasn't happened yet
1039 (which it hasn't) */
1040 pv_mmu_ops.alloc_pte = xen_alloc_pte;
1041 pv_mmu_ops.alloc_pmd = xen_alloc_pmd;
1042 pv_mmu_ops.release_pte = xen_release_pte;
1043 pv_mmu_ops.release_pmd = xen_release_pmd;
1044#if PAGETABLE_LEVELS == 4
1045 pv_mmu_ops.alloc_pud = xen_alloc_pud;
1046 pv_mmu_ops.release_pud = xen_release_pud;
1047#endif
1048
1049#ifdef CONFIG_X86_64
1050 SetPagePinned(virt_to_page(level3_user_vsyscall));
1051#endif
1052 xen_mark_init_mm_pinned();
1053}
1054
1055/* This is called once we have the cpu_possible_map */ 665/* This is called once we have the cpu_possible_map */
1056void xen_setup_vcpu_info_placement(void) 666void xen_setup_vcpu_info_placement(void)
1057{ 667{
@@ -1065,10 +675,10 @@ void xen_setup_vcpu_info_placement(void)
1065 if (have_vcpu_info_placement) { 675 if (have_vcpu_info_placement) {
1066 printk(KERN_INFO "Xen: using vcpu_info placement\n"); 676 printk(KERN_INFO "Xen: using vcpu_info placement\n");
1067 677
1068 pv_irq_ops.save_fl = xen_save_fl_direct; 678 pv_irq_ops.save_fl = __PV_IS_CALLEE_SAVE(xen_save_fl_direct);
1069 pv_irq_ops.restore_fl = xen_restore_fl_direct; 679 pv_irq_ops.restore_fl = __PV_IS_CALLEE_SAVE(xen_restore_fl_direct);
1070 pv_irq_ops.irq_disable = xen_irq_disable_direct; 680 pv_irq_ops.irq_disable = __PV_IS_CALLEE_SAVE(xen_irq_disable_direct);
1071 pv_irq_ops.irq_enable = xen_irq_enable_direct; 681 pv_irq_ops.irq_enable = __PV_IS_CALLEE_SAVE(xen_irq_enable_direct);
1072 pv_mmu_ops.read_cr2 = xen_read_cr2_direct; 682 pv_mmu_ops.read_cr2 = xen_read_cr2_direct;
1073 } 683 }
1074} 684}
@@ -1126,49 +736,6 @@ static unsigned xen_patch(u8 type, u16 clobbers, void *insnbuf,
1126 return ret; 736 return ret;
1127} 737}
1128 738
1129static void xen_set_fixmap(unsigned idx, unsigned long phys, pgprot_t prot)
1130{
1131 pte_t pte;
1132
1133 phys >>= PAGE_SHIFT;
1134
1135 switch (idx) {
1136 case FIX_BTMAP_END ... FIX_BTMAP_BEGIN:
1137#ifdef CONFIG_X86_F00F_BUG
1138 case FIX_F00F_IDT:
1139#endif
1140#ifdef CONFIG_X86_32
1141 case FIX_WP_TEST:
1142 case FIX_VDSO:
1143# ifdef CONFIG_HIGHMEM
1144 case FIX_KMAP_BEGIN ... FIX_KMAP_END:
1145# endif
1146#else
1147 case VSYSCALL_LAST_PAGE ... VSYSCALL_FIRST_PAGE:
1148#endif
1149#ifdef CONFIG_X86_LOCAL_APIC
1150 case FIX_APIC_BASE: /* maps dummy local APIC */
1151#endif
1152 pte = pfn_pte(phys, prot);
1153 break;
1154
1155 default:
1156 pte = mfn_pte(phys, prot);
1157 break;
1158 }
1159
1160 __native_set_fixmap(idx, pte);
1161
1162#ifdef CONFIG_X86_64
1163 /* Replicate changes to map the vsyscall page into the user
1164 pagetable vsyscall mapping. */
1165 if (idx >= VSYSCALL_LAST_PAGE && idx <= VSYSCALL_FIRST_PAGE) {
1166 unsigned long vaddr = __fix_to_virt(idx);
1167 set_pte_vaddr_pud(level3_user_vsyscall, vaddr, pte);
1168 }
1169#endif
1170}
1171
1172static const struct pv_info xen_info __initdata = { 739static const struct pv_info xen_info __initdata = {
1173 .paravirt_enabled = 1, 740 .paravirt_enabled = 1,
1174 .shared_kernel_pmd = 0, 741 .shared_kernel_pmd = 0,
@@ -1264,87 +831,6 @@ static const struct pv_apic_ops xen_apic_ops __initdata = {
1264#endif 831#endif
1265}; 832};
1266 833
1267static const struct pv_mmu_ops xen_mmu_ops __initdata = {
1268 .pagetable_setup_start = xen_pagetable_setup_start,
1269 .pagetable_setup_done = xen_pagetable_setup_done,
1270
1271 .read_cr2 = xen_read_cr2,
1272 .write_cr2 = xen_write_cr2,
1273
1274 .read_cr3 = xen_read_cr3,
1275 .write_cr3 = xen_write_cr3,
1276
1277 .flush_tlb_user = xen_flush_tlb,
1278 .flush_tlb_kernel = xen_flush_tlb,
1279 .flush_tlb_single = xen_flush_tlb_single,
1280 .flush_tlb_others = xen_flush_tlb_others,
1281
1282 .pte_update = paravirt_nop,
1283 .pte_update_defer = paravirt_nop,
1284
1285 .pgd_alloc = xen_pgd_alloc,
1286 .pgd_free = xen_pgd_free,
1287
1288 .alloc_pte = xen_alloc_pte_init,
1289 .release_pte = xen_release_pte_init,
1290 .alloc_pmd = xen_alloc_pte_init,
1291 .alloc_pmd_clone = paravirt_nop,
1292 .release_pmd = xen_release_pte_init,
1293
1294#ifdef CONFIG_HIGHPTE
1295 .kmap_atomic_pte = xen_kmap_atomic_pte,
1296#endif
1297
1298#ifdef CONFIG_X86_64
1299 .set_pte = xen_set_pte,
1300#else
1301 .set_pte = xen_set_pte_init,
1302#endif
1303 .set_pte_at = xen_set_pte_at,
1304 .set_pmd = xen_set_pmd_hyper,
1305
1306 .ptep_modify_prot_start = __ptep_modify_prot_start,
1307 .ptep_modify_prot_commit = __ptep_modify_prot_commit,
1308
1309 .pte_val = xen_pte_val,
1310 .pte_flags = native_pte_flags,
1311 .pgd_val = xen_pgd_val,
1312
1313 .make_pte = xen_make_pte,
1314 .make_pgd = xen_make_pgd,
1315
1316#ifdef CONFIG_X86_PAE
1317 .set_pte_atomic = xen_set_pte_atomic,
1318 .set_pte_present = xen_set_pte_at,
1319 .pte_clear = xen_pte_clear,
1320 .pmd_clear = xen_pmd_clear,
1321#endif /* CONFIG_X86_PAE */
1322 .set_pud = xen_set_pud_hyper,
1323
1324 .make_pmd = xen_make_pmd,
1325 .pmd_val = xen_pmd_val,
1326
1327#if PAGETABLE_LEVELS == 4
1328 .pud_val = xen_pud_val,
1329 .make_pud = xen_make_pud,
1330 .set_pgd = xen_set_pgd_hyper,
1331
1332 .alloc_pud = xen_alloc_pte_init,
1333 .release_pud = xen_release_pte_init,
1334#endif /* PAGETABLE_LEVELS == 4 */
1335
1336 .activate_mm = xen_activate_mm,
1337 .dup_mmap = xen_dup_mmap,
1338 .exit_mmap = xen_exit_mmap,
1339
1340 .lazy_mode = {
1341 .enter = paravirt_enter_lazy_mmu,
1342 .leave = xen_leave_lazy,
1343 },
1344
1345 .set_fixmap = xen_set_fixmap,
1346};
1347
1348static void xen_reboot(int reason) 834static void xen_reboot(int reason)
1349{ 835{
1350 struct sched_shutdown r = { .reason = reason }; 836 struct sched_shutdown r = { .reason = reason };
@@ -1387,223 +873,6 @@ static const struct machine_ops __initdata xen_machine_ops = {
1387}; 873};
1388 874
1389 875
1390static void __init xen_reserve_top(void)
1391{
1392#ifdef CONFIG_X86_32
1393 unsigned long top = HYPERVISOR_VIRT_START;
1394 struct xen_platform_parameters pp;
1395
1396 if (HYPERVISOR_xen_version(XENVER_platform_parameters, &pp) == 0)
1397 top = pp.virt_start;
1398
1399 reserve_top_address(-top);
1400#endif /* CONFIG_X86_32 */
1401}
1402
1403/*
1404 * Like __va(), but returns address in the kernel mapping (which is
1405 * all we have until the physical memory mapping has been set up.
1406 */
1407static void *__ka(phys_addr_t paddr)
1408{
1409#ifdef CONFIG_X86_64
1410 return (void *)(paddr + __START_KERNEL_map);
1411#else
1412 return __va(paddr);
1413#endif
1414}
1415
1416/* Convert a machine address to physical address */
1417static unsigned long m2p(phys_addr_t maddr)
1418{
1419 phys_addr_t paddr;
1420
1421 maddr &= PTE_PFN_MASK;
1422 paddr = mfn_to_pfn(maddr >> PAGE_SHIFT) << PAGE_SHIFT;
1423
1424 return paddr;
1425}
1426
1427/* Convert a machine address to kernel virtual */
1428static void *m2v(phys_addr_t maddr)
1429{
1430 return __ka(m2p(maddr));
1431}
1432
1433static void set_page_prot(void *addr, pgprot_t prot)
1434{
1435 unsigned long pfn = __pa(addr) >> PAGE_SHIFT;
1436 pte_t pte = pfn_pte(pfn, prot);
1437
1438 if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
1439 BUG();
1440}
1441
1442static __init void xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
1443{
1444 unsigned pmdidx, pteidx;
1445 unsigned ident_pte;
1446 unsigned long pfn;
1447
1448 ident_pte = 0;
1449 pfn = 0;
1450 for (pmdidx = 0; pmdidx < PTRS_PER_PMD && pfn < max_pfn; pmdidx++) {
1451 pte_t *pte_page;
1452
1453 /* Reuse or allocate a page of ptes */
1454 if (pmd_present(pmd[pmdidx]))
1455 pte_page = m2v(pmd[pmdidx].pmd);
1456 else {
1457 /* Check for free pte pages */
1458 if (ident_pte == ARRAY_SIZE(level1_ident_pgt))
1459 break;
1460
1461 pte_page = &level1_ident_pgt[ident_pte];
1462 ident_pte += PTRS_PER_PTE;
1463
1464 pmd[pmdidx] = __pmd(__pa(pte_page) | _PAGE_TABLE);
1465 }
1466
1467 /* Install mappings */
1468 for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) {
1469 pte_t pte;
1470
1471 if (pfn > max_pfn_mapped)
1472 max_pfn_mapped = pfn;
1473
1474 if (!pte_none(pte_page[pteidx]))
1475 continue;
1476
1477 pte = pfn_pte(pfn, PAGE_KERNEL_EXEC);
1478 pte_page[pteidx] = pte;
1479 }
1480 }
1481
1482 for (pteidx = 0; pteidx < ident_pte; pteidx += PTRS_PER_PTE)
1483 set_page_prot(&level1_ident_pgt[pteidx], PAGE_KERNEL_RO);
1484
1485 set_page_prot(pmd, PAGE_KERNEL_RO);
1486}
1487
1488#ifdef CONFIG_X86_64
1489static void convert_pfn_mfn(void *v)
1490{
1491 pte_t *pte = v;
1492 int i;
1493
1494 /* All levels are converted the same way, so just treat them
1495 as ptes. */
1496 for (i = 0; i < PTRS_PER_PTE; i++)
1497 pte[i] = xen_make_pte(pte[i].pte);
1498}
1499
1500/*
1501 * Set up the inital kernel pagetable.
1502 *
1503 * We can construct this by grafting the Xen provided pagetable into
1504 * head_64.S's preconstructed pagetables. We copy the Xen L2's into
1505 * level2_ident_pgt, level2_kernel_pgt and level2_fixmap_pgt. This
1506 * means that only the kernel has a physical mapping to start with -
1507 * but that's enough to get __va working. We need to fill in the rest
1508 * of the physical mapping once some sort of allocator has been set
1509 * up.
1510 */
1511static __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1512 unsigned long max_pfn)
1513{
1514 pud_t *l3;
1515 pmd_t *l2;
1516
1517 /* Zap identity mapping */
1518 init_level4_pgt[0] = __pgd(0);
1519
1520 /* Pre-constructed entries are in pfn, so convert to mfn */
1521 convert_pfn_mfn(init_level4_pgt);
1522 convert_pfn_mfn(level3_ident_pgt);
1523 convert_pfn_mfn(level3_kernel_pgt);
1524
1525 l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
1526 l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
1527
1528 memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1529 memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1530
1531 l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
1532 l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
1533 memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1534
1535 /* Set up identity map */
1536 xen_map_identity_early(level2_ident_pgt, max_pfn);
1537
1538 /* Make pagetable pieces RO */
1539 set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
1540 set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
1541 set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
1542 set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
1543 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
1544 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
1545
1546 /* Pin down new L4 */
1547 pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
1548 PFN_DOWN(__pa_symbol(init_level4_pgt)));
1549
1550 /* Unpin Xen-provided one */
1551 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
1552
1553 /* Switch over */
1554 pgd = init_level4_pgt;
1555
1556 /*
1557 * At this stage there can be no user pgd, and no page
1558 * structure to attach it to, so make sure we just set kernel
1559 * pgd.
1560 */
1561 xen_mc_batch();
1562 __xen_write_cr3(true, __pa(pgd));
1563 xen_mc_issue(PARAVIRT_LAZY_CPU);
1564
1565 reserve_early(__pa(xen_start_info->pt_base),
1566 __pa(xen_start_info->pt_base +
1567 xen_start_info->nr_pt_frames * PAGE_SIZE),
1568 "XEN PAGETABLES");
1569
1570 return pgd;
1571}
1572#else /* !CONFIG_X86_64 */
1573static pmd_t level2_kernel_pgt[PTRS_PER_PMD] __page_aligned_bss;
1574
1575static __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1576 unsigned long max_pfn)
1577{
1578 pmd_t *kernel_pmd;
1579
1580 init_pg_tables_start = __pa(pgd);
1581 init_pg_tables_end = __pa(pgd) + xen_start_info->nr_pt_frames*PAGE_SIZE;
1582 max_pfn_mapped = PFN_DOWN(init_pg_tables_end + 512*1024);
1583
1584 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
1585 memcpy(level2_kernel_pgt, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);
1586
1587 xen_map_identity_early(level2_kernel_pgt, max_pfn);
1588
1589 memcpy(swapper_pg_dir, pgd, sizeof(pgd_t) * PTRS_PER_PGD);
1590 set_pgd(&swapper_pg_dir[KERNEL_PGD_BOUNDARY],
1591 __pgd(__pa(level2_kernel_pgt) | _PAGE_PRESENT));
1592
1593 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
1594 set_page_prot(swapper_pg_dir, PAGE_KERNEL_RO);
1595 set_page_prot(empty_zero_page, PAGE_KERNEL_RO);
1596
1597 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
1598
1599 xen_write_cr3(__pa(swapper_pg_dir));
1600
1601 pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(swapper_pg_dir)));
1602
1603 return swapper_pg_dir;
1604}
1605#endif /* CONFIG_X86_64 */
1606
1607/* First C function to be called on Xen boot */ 876/* First C function to be called on Xen boot */
1608asmlinkage void __init xen_start_kernel(void) 877asmlinkage void __init xen_start_kernel(void)
1609{ 878{
@@ -1632,7 +901,7 @@ asmlinkage void __init xen_start_kernel(void)
1632 /* 901 /*
1633 * set up the basic apic ops. 902 * set up the basic apic ops.
1634 */ 903 */
1635 apic_ops = &xen_basic_apic_ops; 904 set_xen_basic_apic_ops();
1636#endif 905#endif
1637 906
1638 if (xen_feature(XENFEAT_mmu_pt_update_preserve_ad)) { 907 if (xen_feature(XENFEAT_mmu_pt_update_preserve_ad)) {
@@ -1643,10 +912,18 @@ asmlinkage void __init xen_start_kernel(void)
1643 machine_ops = xen_machine_ops; 912 machine_ops = xen_machine_ops;
1644 913
1645#ifdef CONFIG_X86_64 914#ifdef CONFIG_X86_64
1646 /* Disable until direct per-cpu data access. */ 915 /*
1647 have_vcpu_info_placement = 0; 916 * Setup percpu state. We only need to do this for 64-bit
1648 x86_64_init_pda(); 917 * because 32-bit already has %fs set properly.
918 */
919 load_percpu_segment(0);
1649#endif 920#endif
921 /*
922 * The only reliable way to retain the initial address of the
923 * percpu gdt_page is to remember it here, so we can go and
924 * mark it RW later, when the initial percpu area is freed.
925 */
926 xen_initial_gdt = &per_cpu(gdt_page, 0);
1650 927
1651 xen_smp_init(); 928 xen_smp_init();
1652 929
@@ -1665,6 +942,9 @@ asmlinkage void __init xen_start_kernel(void)
1665 possible map and a non-dummy shared_info. */ 942 possible map and a non-dummy shared_info. */
1666 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; 943 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
1667 944
945 local_irq_disable();
946 early_boot_irqs_off();
947
1668 xen_raw_console_write("mapping kernel into physical memory\n"); 948 xen_raw_console_write("mapping kernel into physical memory\n");
1669 pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages); 949 pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
1670 950
diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
index bb042608c602..cfd17799bd6d 100644
--- a/arch/x86/xen/irq.c
+++ b/arch/x86/xen/irq.c
@@ -19,27 +19,12 @@ void xen_force_evtchn_callback(void)
19 (void)HYPERVISOR_xen_version(0, NULL); 19 (void)HYPERVISOR_xen_version(0, NULL);
20} 20}
21 21
22static void __init __xen_init_IRQ(void)
23{
24 int i;
25
26 /* Create identity vector->irq map */
27 for(i = 0; i < NR_VECTORS; i++) {
28 int cpu;
29
30 for_each_possible_cpu(cpu)
31 per_cpu(vector_irq, cpu)[i] = i;
32 }
33
34 xen_init_IRQ();
35}
36
37static unsigned long xen_save_fl(void) 22static unsigned long xen_save_fl(void)
38{ 23{
39 struct vcpu_info *vcpu; 24 struct vcpu_info *vcpu;
40 unsigned long flags; 25 unsigned long flags;
41 26
42 vcpu = x86_read_percpu(xen_vcpu); 27 vcpu = percpu_read(xen_vcpu);
43 28
44 /* flag has opposite sense of mask */ 29 /* flag has opposite sense of mask */
45 flags = !vcpu->evtchn_upcall_mask; 30 flags = !vcpu->evtchn_upcall_mask;
@@ -50,6 +35,7 @@ static unsigned long xen_save_fl(void)
50 */ 35 */
51 return (-flags) & X86_EFLAGS_IF; 36 return (-flags) & X86_EFLAGS_IF;
52} 37}
38PV_CALLEE_SAVE_REGS_THUNK(xen_save_fl);
53 39
54static void xen_restore_fl(unsigned long flags) 40static void xen_restore_fl(unsigned long flags)
55{ 41{
@@ -62,7 +48,7 @@ static void xen_restore_fl(unsigned long flags)
62 make sure we're don't switch CPUs between getting the vcpu 48 make sure we're don't switch CPUs between getting the vcpu
63 pointer and updating the mask. */ 49 pointer and updating the mask. */
64 preempt_disable(); 50 preempt_disable();
65 vcpu = x86_read_percpu(xen_vcpu); 51 vcpu = percpu_read(xen_vcpu);
66 vcpu->evtchn_upcall_mask = flags; 52 vcpu->evtchn_upcall_mask = flags;
67 preempt_enable_no_resched(); 53 preempt_enable_no_resched();
68 54
@@ -76,6 +62,7 @@ static void xen_restore_fl(unsigned long flags)
76 xen_force_evtchn_callback(); 62 xen_force_evtchn_callback();
77 } 63 }
78} 64}
65PV_CALLEE_SAVE_REGS_THUNK(xen_restore_fl);
79 66
80static void xen_irq_disable(void) 67static void xen_irq_disable(void)
81{ 68{
@@ -83,9 +70,10 @@ static void xen_irq_disable(void)
83 make sure we're don't switch CPUs between getting the vcpu 70 make sure we're don't switch CPUs between getting the vcpu
84 pointer and updating the mask. */ 71 pointer and updating the mask. */
85 preempt_disable(); 72 preempt_disable();
86 x86_read_percpu(xen_vcpu)->evtchn_upcall_mask = 1; 73 percpu_read(xen_vcpu)->evtchn_upcall_mask = 1;
87 preempt_enable_no_resched(); 74 preempt_enable_no_resched();
88} 75}
76PV_CALLEE_SAVE_REGS_THUNK(xen_irq_disable);
89 77
90static void xen_irq_enable(void) 78static void xen_irq_enable(void)
91{ 79{
@@ -96,7 +84,7 @@ static void xen_irq_enable(void)
96 the caller is confused and is trying to re-enable interrupts 84 the caller is confused and is trying to re-enable interrupts
97 on an indeterminate processor. */ 85 on an indeterminate processor. */
98 86
99 vcpu = x86_read_percpu(xen_vcpu); 87 vcpu = percpu_read(xen_vcpu);
100 vcpu->evtchn_upcall_mask = 0; 88 vcpu->evtchn_upcall_mask = 0;
101 89
102 /* Doesn't matter if we get preempted here, because any 90 /* Doesn't matter if we get preempted here, because any
@@ -106,6 +94,7 @@ static void xen_irq_enable(void)
106 if (unlikely(vcpu->evtchn_upcall_pending)) 94 if (unlikely(vcpu->evtchn_upcall_pending))
107 xen_force_evtchn_callback(); 95 xen_force_evtchn_callback();
108} 96}
97PV_CALLEE_SAVE_REGS_THUNK(xen_irq_enable);
109 98
110static void xen_safe_halt(void) 99static void xen_safe_halt(void)
111{ 100{
@@ -123,11 +112,13 @@ static void xen_halt(void)
123} 112}
124 113
125static const struct pv_irq_ops xen_irq_ops __initdata = { 114static const struct pv_irq_ops xen_irq_ops __initdata = {
126 .init_IRQ = __xen_init_IRQ, 115 .init_IRQ = xen_init_IRQ,
127 .save_fl = xen_save_fl, 116
128 .restore_fl = xen_restore_fl, 117 .save_fl = PV_CALLEE_SAVE(xen_save_fl),
129 .irq_disable = xen_irq_disable, 118 .restore_fl = PV_CALLEE_SAVE(xen_restore_fl),
130 .irq_enable = xen_irq_enable, 119 .irq_disable = PV_CALLEE_SAVE(xen_irq_disable),
120 .irq_enable = PV_CALLEE_SAVE(xen_irq_enable),
121
131 .safe_halt = xen_safe_halt, 122 .safe_halt = xen_safe_halt,
132 .halt = xen_halt, 123 .halt = xen_halt,
133#ifdef CONFIG_X86_64 124#ifdef CONFIG_X86_64
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 503c240e26c7..cb6afa4ec95c 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -47,6 +47,7 @@
47#include <asm/tlbflush.h> 47#include <asm/tlbflush.h>
48#include <asm/fixmap.h> 48#include <asm/fixmap.h>
49#include <asm/mmu_context.h> 49#include <asm/mmu_context.h>
50#include <asm/setup.h>
50#include <asm/paravirt.h> 51#include <asm/paravirt.h>
51#include <asm/linkage.h> 52#include <asm/linkage.h>
52 53
@@ -55,6 +56,8 @@
55 56
56#include <xen/page.h> 57#include <xen/page.h>
57#include <xen/interface/xen.h> 58#include <xen/interface/xen.h>
59#include <xen/interface/version.h>
60#include <xen/hvc-console.h>
58 61
59#include "multicalls.h" 62#include "multicalls.h"
60#include "mmu.h" 63#include "mmu.h"
@@ -114,6 +117,37 @@ static inline void check_zero(void)
114 117
115#endif /* CONFIG_XEN_DEBUG_FS */ 118#endif /* CONFIG_XEN_DEBUG_FS */
116 119
120
121/*
122 * Identity map, in addition to plain kernel map. This needs to be
123 * large enough to allocate page table pages to allocate the rest.
124 * Each page can map 2MB.
125 */
126static pte_t level1_ident_pgt[PTRS_PER_PTE * 4] __page_aligned_bss;
127
128#ifdef CONFIG_X86_64
129/* l3 pud for userspace vsyscall mapping */
130static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
131#endif /* CONFIG_X86_64 */
132
133/*
134 * Note about cr3 (pagetable base) values:
135 *
136 * xen_cr3 contains the current logical cr3 value; it contains the
137 * last set cr3. This may not be the current effective cr3, because
138 * its update may be being lazily deferred. However, a vcpu looking
139 * at its own cr3 can use this value knowing that it everything will
140 * be self-consistent.
141 *
142 * xen_current_cr3 contains the actual vcpu cr3; it is set once the
143 * hypercall to set the vcpu cr3 is complete (so it may be a little
144 * out of date, but it will never be set early). If one vcpu is
145 * looking at another vcpu's cr3 value, it should use this variable.
146 */
147DEFINE_PER_CPU(unsigned long, xen_cr3); /* cr3 stored as physaddr */
148DEFINE_PER_CPU(unsigned long, xen_current_cr3); /* actual vcpu cr3 */
149
150
117/* 151/*
118 * Just beyond the highest usermode address. STACK_TOP_MAX has a 152 * Just beyond the highest usermode address. STACK_TOP_MAX has a
119 * redzone above it, so round it up to a PGD boundary. 153 * redzone above it, so round it up to a PGD boundary.
@@ -242,6 +276,13 @@ void set_phys_to_machine(unsigned long pfn, unsigned long mfn)
242 p2m_top[topidx][idx] = mfn; 276 p2m_top[topidx][idx] = mfn;
243} 277}
244 278
279unsigned long arbitrary_virt_to_mfn(void *vaddr)
280{
281 xmaddr_t maddr = arbitrary_virt_to_machine(vaddr);
282
283 return PFN_DOWN(maddr.maddr);
284}
285
245xmaddr_t arbitrary_virt_to_machine(void *vaddr) 286xmaddr_t arbitrary_virt_to_machine(void *vaddr)
246{ 287{
247 unsigned long address = (unsigned long)vaddr; 288 unsigned long address = (unsigned long)vaddr;
@@ -458,28 +499,33 @@ pteval_t xen_pte_val(pte_t pte)
458{ 499{
459 return pte_mfn_to_pfn(pte.pte); 500 return pte_mfn_to_pfn(pte.pte);
460} 501}
502PV_CALLEE_SAVE_REGS_THUNK(xen_pte_val);
461 503
462pgdval_t xen_pgd_val(pgd_t pgd) 504pgdval_t xen_pgd_val(pgd_t pgd)
463{ 505{
464 return pte_mfn_to_pfn(pgd.pgd); 506 return pte_mfn_to_pfn(pgd.pgd);
465} 507}
508PV_CALLEE_SAVE_REGS_THUNK(xen_pgd_val);
466 509
467pte_t xen_make_pte(pteval_t pte) 510pte_t xen_make_pte(pteval_t pte)
468{ 511{
469 pte = pte_pfn_to_mfn(pte); 512 pte = pte_pfn_to_mfn(pte);
470 return native_make_pte(pte); 513 return native_make_pte(pte);
471} 514}
515PV_CALLEE_SAVE_REGS_THUNK(xen_make_pte);
472 516
473pgd_t xen_make_pgd(pgdval_t pgd) 517pgd_t xen_make_pgd(pgdval_t pgd)
474{ 518{
475 pgd = pte_pfn_to_mfn(pgd); 519 pgd = pte_pfn_to_mfn(pgd);
476 return native_make_pgd(pgd); 520 return native_make_pgd(pgd);
477} 521}
522PV_CALLEE_SAVE_REGS_THUNK(xen_make_pgd);
478 523
479pmdval_t xen_pmd_val(pmd_t pmd) 524pmdval_t xen_pmd_val(pmd_t pmd)
480{ 525{
481 return pte_mfn_to_pfn(pmd.pmd); 526 return pte_mfn_to_pfn(pmd.pmd);
482} 527}
528PV_CALLEE_SAVE_REGS_THUNK(xen_pmd_val);
483 529
484void xen_set_pud_hyper(pud_t *ptr, pud_t val) 530void xen_set_pud_hyper(pud_t *ptr, pud_t val)
485{ 531{
@@ -556,12 +602,14 @@ pmd_t xen_make_pmd(pmdval_t pmd)
556 pmd = pte_pfn_to_mfn(pmd); 602 pmd = pte_pfn_to_mfn(pmd);
557 return native_make_pmd(pmd); 603 return native_make_pmd(pmd);
558} 604}
605PV_CALLEE_SAVE_REGS_THUNK(xen_make_pmd);
559 606
560#if PAGETABLE_LEVELS == 4 607#if PAGETABLE_LEVELS == 4
561pudval_t xen_pud_val(pud_t pud) 608pudval_t xen_pud_val(pud_t pud)
562{ 609{
563 return pte_mfn_to_pfn(pud.pud); 610 return pte_mfn_to_pfn(pud.pud);
564} 611}
612PV_CALLEE_SAVE_REGS_THUNK(xen_pud_val);
565 613
566pud_t xen_make_pud(pudval_t pud) 614pud_t xen_make_pud(pudval_t pud)
567{ 615{
@@ -569,6 +617,7 @@ pud_t xen_make_pud(pudval_t pud)
569 617
570 return native_make_pud(pud); 618 return native_make_pud(pud);
571} 619}
620PV_CALLEE_SAVE_REGS_THUNK(xen_make_pud);
572 621
573pgd_t *xen_get_user_pgd(pgd_t *pgd) 622pgd_t *xen_get_user_pgd(pgd_t *pgd)
574{ 623{
@@ -1063,18 +1112,14 @@ static void drop_other_mm_ref(void *info)
1063 struct mm_struct *mm = info; 1112 struct mm_struct *mm = info;
1064 struct mm_struct *active_mm; 1113 struct mm_struct *active_mm;
1065 1114
1066#ifdef CONFIG_X86_64 1115 active_mm = percpu_read(cpu_tlbstate.active_mm);
1067 active_mm = read_pda(active_mm);
1068#else
1069 active_mm = __get_cpu_var(cpu_tlbstate).active_mm;
1070#endif
1071 1116
1072 if (active_mm == mm) 1117 if (active_mm == mm)
1073 leave_mm(smp_processor_id()); 1118 leave_mm(smp_processor_id());
1074 1119
1075 /* If this cpu still has a stale cr3 reference, then make sure 1120 /* If this cpu still has a stale cr3 reference, then make sure
1076 it has been flushed. */ 1121 it has been flushed. */
1077 if (x86_read_percpu(xen_current_cr3) == __pa(mm->pgd)) { 1122 if (percpu_read(xen_current_cr3) == __pa(mm->pgd)) {
1078 load_cr3(swapper_pg_dir); 1123 load_cr3(swapper_pg_dir);
1079 arch_flush_lazy_cpu_mode(); 1124 arch_flush_lazy_cpu_mode();
1080 } 1125 }
@@ -1156,6 +1201,706 @@ void xen_exit_mmap(struct mm_struct *mm)
1156 spin_unlock(&mm->page_table_lock); 1201 spin_unlock(&mm->page_table_lock);
1157} 1202}
1158 1203
1204static __init void xen_pagetable_setup_start(pgd_t *base)
1205{
1206}
1207
1208static __init void xen_pagetable_setup_done(pgd_t *base)
1209{
1210 xen_setup_shared_info();
1211}
1212
1213static void xen_write_cr2(unsigned long cr2)
1214{
1215 percpu_read(xen_vcpu)->arch.cr2 = cr2;
1216}
1217
1218static unsigned long xen_read_cr2(void)
1219{
1220 return percpu_read(xen_vcpu)->arch.cr2;
1221}
1222
1223unsigned long xen_read_cr2_direct(void)
1224{
1225 return percpu_read(xen_vcpu_info.arch.cr2);
1226}
1227
1228static void xen_flush_tlb(void)
1229{
1230 struct mmuext_op *op;
1231 struct multicall_space mcs;
1232
1233 preempt_disable();
1234
1235 mcs = xen_mc_entry(sizeof(*op));
1236
1237 op = mcs.args;
1238 op->cmd = MMUEXT_TLB_FLUSH_LOCAL;
1239 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
1240
1241 xen_mc_issue(PARAVIRT_LAZY_MMU);
1242
1243 preempt_enable();
1244}
1245
1246static void xen_flush_tlb_single(unsigned long addr)
1247{
1248 struct mmuext_op *op;
1249 struct multicall_space mcs;
1250
1251 preempt_disable();
1252
1253 mcs = xen_mc_entry(sizeof(*op));
1254 op = mcs.args;
1255 op->cmd = MMUEXT_INVLPG_LOCAL;
1256 op->arg1.linear_addr = addr & PAGE_MASK;
1257 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
1258
1259 xen_mc_issue(PARAVIRT_LAZY_MMU);
1260
1261 preempt_enable();
1262}
1263
1264static void xen_flush_tlb_others(const struct cpumask *cpus,
1265 struct mm_struct *mm, unsigned long va)
1266{
1267 struct {
1268 struct mmuext_op op;
1269 DECLARE_BITMAP(mask, NR_CPUS);
1270 } *args;
1271 struct multicall_space mcs;
1272
1273 BUG_ON(cpumask_empty(cpus));
1274 BUG_ON(!mm);
1275
1276 mcs = xen_mc_entry(sizeof(*args));
1277 args = mcs.args;
1278 args->op.arg2.vcpumask = to_cpumask(args->mask);
1279
1280 /* Remove us, and any offline CPUS. */
1281 cpumask_and(to_cpumask(args->mask), cpus, cpu_online_mask);
1282 cpumask_clear_cpu(smp_processor_id(), to_cpumask(args->mask));
1283
1284 if (va == TLB_FLUSH_ALL) {
1285 args->op.cmd = MMUEXT_TLB_FLUSH_MULTI;
1286 } else {
1287 args->op.cmd = MMUEXT_INVLPG_MULTI;
1288 args->op.arg1.linear_addr = va;
1289 }
1290
1291 MULTI_mmuext_op(mcs.mc, &args->op, 1, NULL, DOMID_SELF);
1292
1293 xen_mc_issue(PARAVIRT_LAZY_MMU);
1294}
1295
1296static unsigned long xen_read_cr3(void)
1297{
1298 return percpu_read(xen_cr3);
1299}
1300
1301static void set_current_cr3(void *v)
1302{
1303 percpu_write(xen_current_cr3, (unsigned long)v);
1304}
1305
1306static void __xen_write_cr3(bool kernel, unsigned long cr3)
1307{
1308 struct mmuext_op *op;
1309 struct multicall_space mcs;
1310 unsigned long mfn;
1311
1312 if (cr3)
1313 mfn = pfn_to_mfn(PFN_DOWN(cr3));
1314 else
1315 mfn = 0;
1316
1317 WARN_ON(mfn == 0 && kernel);
1318
1319 mcs = __xen_mc_entry(sizeof(*op));
1320
1321 op = mcs.args;
1322 op->cmd = kernel ? MMUEXT_NEW_BASEPTR : MMUEXT_NEW_USER_BASEPTR;
1323 op->arg1.mfn = mfn;
1324
1325 MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
1326
1327 if (kernel) {
1328 percpu_write(xen_cr3, cr3);
1329
1330 /* Update xen_current_cr3 once the batch has actually
1331 been submitted. */
1332 xen_mc_callback(set_current_cr3, (void *)cr3);
1333 }
1334}
1335
1336static void xen_write_cr3(unsigned long cr3)
1337{
1338 BUG_ON(preemptible());
1339
1340 xen_mc_batch(); /* disables interrupts */
1341
1342 /* Update while interrupts are disabled, so its atomic with
1343 respect to ipis */
1344 percpu_write(xen_cr3, cr3);
1345
1346 __xen_write_cr3(true, cr3);
1347
1348#ifdef CONFIG_X86_64
1349 {
1350 pgd_t *user_pgd = xen_get_user_pgd(__va(cr3));
1351 if (user_pgd)
1352 __xen_write_cr3(false, __pa(user_pgd));
1353 else
1354 __xen_write_cr3(false, 0);
1355 }
1356#endif
1357
1358 xen_mc_issue(PARAVIRT_LAZY_CPU); /* interrupts restored */
1359}
1360
1361static int xen_pgd_alloc(struct mm_struct *mm)
1362{
1363 pgd_t *pgd = mm->pgd;
1364 int ret = 0;
1365
1366 BUG_ON(PagePinned(virt_to_page(pgd)));
1367
1368#ifdef CONFIG_X86_64
1369 {
1370 struct page *page = virt_to_page(pgd);
1371 pgd_t *user_pgd;
1372
1373 BUG_ON(page->private != 0);
1374
1375 ret = -ENOMEM;
1376
1377 user_pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
1378 page->private = (unsigned long)user_pgd;
1379
1380 if (user_pgd != NULL) {
1381 user_pgd[pgd_index(VSYSCALL_START)] =
1382 __pgd(__pa(level3_user_vsyscall) | _PAGE_TABLE);
1383 ret = 0;
1384 }
1385
1386 BUG_ON(PagePinned(virt_to_page(xen_get_user_pgd(pgd))));
1387 }
1388#endif
1389
1390 return ret;
1391}
1392
1393static void xen_pgd_free(struct mm_struct *mm, pgd_t *pgd)
1394{
1395#ifdef CONFIG_X86_64
1396 pgd_t *user_pgd = xen_get_user_pgd(pgd);
1397
1398 if (user_pgd)
1399 free_page((unsigned long)user_pgd);
1400#endif
1401}
1402
1403#ifdef CONFIG_HIGHPTE
1404static void *xen_kmap_atomic_pte(struct page *page, enum km_type type)
1405{
1406 pgprot_t prot = PAGE_KERNEL;
1407
1408 if (PagePinned(page))
1409 prot = PAGE_KERNEL_RO;
1410
1411 if (0 && PageHighMem(page))
1412 printk("mapping highpte %lx type %d prot %s\n",
1413 page_to_pfn(page), type,
1414 (unsigned long)pgprot_val(prot) & _PAGE_RW ? "WRITE" : "READ");
1415
1416 return kmap_atomic_prot(page, type, prot);
1417}
1418#endif
1419
1420#ifdef CONFIG_X86_32
1421static __init pte_t mask_rw_pte(pte_t *ptep, pte_t pte)
1422{
1423 /* If there's an existing pte, then don't allow _PAGE_RW to be set */
1424 if (pte_val_ma(*ptep) & _PAGE_PRESENT)
1425 pte = __pte_ma(((pte_val_ma(*ptep) & _PAGE_RW) | ~_PAGE_RW) &
1426 pte_val_ma(pte));
1427
1428 return pte;
1429}
1430
1431/* Init-time set_pte while constructing initial pagetables, which
1432 doesn't allow RO pagetable pages to be remapped RW */
1433static __init void xen_set_pte_init(pte_t *ptep, pte_t pte)
1434{
1435 pte = mask_rw_pte(ptep, pte);
1436
1437 xen_set_pte(ptep, pte);
1438}
1439#endif
1440
1441/* Early in boot, while setting up the initial pagetable, assume
1442 everything is pinned. */
1443static __init void xen_alloc_pte_init(struct mm_struct *mm, unsigned long pfn)
1444{
1445#ifdef CONFIG_FLATMEM
1446 BUG_ON(mem_map); /* should only be used early */
1447#endif
1448 make_lowmem_page_readonly(__va(PFN_PHYS(pfn)));
1449}
1450
1451/* Early release_pte assumes that all pts are pinned, since there's
1452 only init_mm and anything attached to that is pinned. */
1453static void xen_release_pte_init(unsigned long pfn)
1454{
1455 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
1456}
1457
1458static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn)
1459{
1460 struct mmuext_op op;
1461 op.cmd = cmd;
1462 op.arg1.mfn = pfn_to_mfn(pfn);
1463 if (HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF))
1464 BUG();
1465}
1466
1467/* This needs to make sure the new pte page is pinned iff its being
1468 attached to a pinned pagetable. */
1469static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn, unsigned level)
1470{
1471 struct page *page = pfn_to_page(pfn);
1472
1473 if (PagePinned(virt_to_page(mm->pgd))) {
1474 SetPagePinned(page);
1475
1476 vm_unmap_aliases();
1477 if (!PageHighMem(page)) {
1478 make_lowmem_page_readonly(__va(PFN_PHYS((unsigned long)pfn)));
1479 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
1480 pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
1481 } else {
1482 /* make sure there are no stray mappings of
1483 this page */
1484 kmap_flush_unused();
1485 }
1486 }
1487}
1488
1489static void xen_alloc_pte(struct mm_struct *mm, unsigned long pfn)
1490{
1491 xen_alloc_ptpage(mm, pfn, PT_PTE);
1492}
1493
1494static void xen_alloc_pmd(struct mm_struct *mm, unsigned long pfn)
1495{
1496 xen_alloc_ptpage(mm, pfn, PT_PMD);
1497}
1498
1499/* This should never happen until we're OK to use struct page */
1500static void xen_release_ptpage(unsigned long pfn, unsigned level)
1501{
1502 struct page *page = pfn_to_page(pfn);
1503
1504 if (PagePinned(page)) {
1505 if (!PageHighMem(page)) {
1506 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
1507 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
1508 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
1509 }
1510 ClearPagePinned(page);
1511 }
1512}
1513
1514static void xen_release_pte(unsigned long pfn)
1515{
1516 xen_release_ptpage(pfn, PT_PTE);
1517}
1518
1519static void xen_release_pmd(unsigned long pfn)
1520{
1521 xen_release_ptpage(pfn, PT_PMD);
1522}
1523
1524#if PAGETABLE_LEVELS == 4
1525static void xen_alloc_pud(struct mm_struct *mm, unsigned long pfn)
1526{
1527 xen_alloc_ptpage(mm, pfn, PT_PUD);
1528}
1529
1530static void xen_release_pud(unsigned long pfn)
1531{
1532 xen_release_ptpage(pfn, PT_PUD);
1533}
1534#endif
1535
1536void __init xen_reserve_top(void)
1537{
1538#ifdef CONFIG_X86_32
1539 unsigned long top = HYPERVISOR_VIRT_START;
1540 struct xen_platform_parameters pp;
1541
1542 if (HYPERVISOR_xen_version(XENVER_platform_parameters, &pp) == 0)
1543 top = pp.virt_start;
1544
1545 reserve_top_address(-top);
1546#endif /* CONFIG_X86_32 */
1547}
1548
1549/*
1550 * Like __va(), but returns address in the kernel mapping (which is
1551 * all we have until the physical memory mapping has been set up.
1552 */
1553static void *__ka(phys_addr_t paddr)
1554{
1555#ifdef CONFIG_X86_64
1556 return (void *)(paddr + __START_KERNEL_map);
1557#else
1558 return __va(paddr);
1559#endif
1560}
1561
1562/* Convert a machine address to physical address */
1563static unsigned long m2p(phys_addr_t maddr)
1564{
1565 phys_addr_t paddr;
1566
1567 maddr &= PTE_PFN_MASK;
1568 paddr = mfn_to_pfn(maddr >> PAGE_SHIFT) << PAGE_SHIFT;
1569
1570 return paddr;
1571}
1572
1573/* Convert a machine address to kernel virtual */
1574static void *m2v(phys_addr_t maddr)
1575{
1576 return __ka(m2p(maddr));
1577}
1578
1579static void set_page_prot(void *addr, pgprot_t prot)
1580{
1581 unsigned long pfn = __pa(addr) >> PAGE_SHIFT;
1582 pte_t pte = pfn_pte(pfn, prot);
1583
1584 if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
1585 BUG();
1586}
1587
1588static __init void xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
1589{
1590 unsigned pmdidx, pteidx;
1591 unsigned ident_pte;
1592 unsigned long pfn;
1593
1594 ident_pte = 0;
1595 pfn = 0;
1596 for (pmdidx = 0; pmdidx < PTRS_PER_PMD && pfn < max_pfn; pmdidx++) {
1597 pte_t *pte_page;
1598
1599 /* Reuse or allocate a page of ptes */
1600 if (pmd_present(pmd[pmdidx]))
1601 pte_page = m2v(pmd[pmdidx].pmd);
1602 else {
1603 /* Check for free pte pages */
1604 if (ident_pte == ARRAY_SIZE(level1_ident_pgt))
1605 break;
1606
1607 pte_page = &level1_ident_pgt[ident_pte];
1608 ident_pte += PTRS_PER_PTE;
1609
1610 pmd[pmdidx] = __pmd(__pa(pte_page) | _PAGE_TABLE);
1611 }
1612
1613 /* Install mappings */
1614 for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) {
1615 pte_t pte;
1616
1617 if (pfn > max_pfn_mapped)
1618 max_pfn_mapped = pfn;
1619
1620 if (!pte_none(pte_page[pteidx]))
1621 continue;
1622
1623 pte = pfn_pte(pfn, PAGE_KERNEL_EXEC);
1624 pte_page[pteidx] = pte;
1625 }
1626 }
1627
1628 for (pteidx = 0; pteidx < ident_pte; pteidx += PTRS_PER_PTE)
1629 set_page_prot(&level1_ident_pgt[pteidx], PAGE_KERNEL_RO);
1630
1631 set_page_prot(pmd, PAGE_KERNEL_RO);
1632}
1633
1634#ifdef CONFIG_X86_64
1635static void convert_pfn_mfn(void *v)
1636{
1637 pte_t *pte = v;
1638 int i;
1639
1640 /* All levels are converted the same way, so just treat them
1641 as ptes. */
1642 for (i = 0; i < PTRS_PER_PTE; i++)
1643 pte[i] = xen_make_pte(pte[i].pte);
1644}
1645
1646/*
1647 * Set up the inital kernel pagetable.
1648 *
1649 * We can construct this by grafting the Xen provided pagetable into
1650 * head_64.S's preconstructed pagetables. We copy the Xen L2's into
1651 * level2_ident_pgt, level2_kernel_pgt and level2_fixmap_pgt. This
1652 * means that only the kernel has a physical mapping to start with -
1653 * but that's enough to get __va working. We need to fill in the rest
1654 * of the physical mapping once some sort of allocator has been set
1655 * up.
1656 */
1657__init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1658 unsigned long max_pfn)
1659{
1660 pud_t *l3;
1661 pmd_t *l2;
1662
1663 /* Zap identity mapping */
1664 init_level4_pgt[0] = __pgd(0);
1665
1666 /* Pre-constructed entries are in pfn, so convert to mfn */
1667 convert_pfn_mfn(init_level4_pgt);
1668 convert_pfn_mfn(level3_ident_pgt);
1669 convert_pfn_mfn(level3_kernel_pgt);
1670
1671 l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
1672 l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
1673
1674 memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1675 memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1676
1677 l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
1678 l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
1679 memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
1680
1681 /* Set up identity map */
1682 xen_map_identity_early(level2_ident_pgt, max_pfn);
1683
1684 /* Make pagetable pieces RO */
1685 set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
1686 set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
1687 set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
1688 set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
1689 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
1690 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
1691
1692 /* Pin down new L4 */
1693 pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
1694 PFN_DOWN(__pa_symbol(init_level4_pgt)));
1695
1696 /* Unpin Xen-provided one */
1697 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
1698
1699 /* Switch over */
1700 pgd = init_level4_pgt;
1701
1702 /*
1703 * At this stage there can be no user pgd, and no page
1704 * structure to attach it to, so make sure we just set kernel
1705 * pgd.
1706 */
1707 xen_mc_batch();
1708 __xen_write_cr3(true, __pa(pgd));
1709 xen_mc_issue(PARAVIRT_LAZY_CPU);
1710
1711 reserve_early(__pa(xen_start_info->pt_base),
1712 __pa(xen_start_info->pt_base +
1713 xen_start_info->nr_pt_frames * PAGE_SIZE),
1714 "XEN PAGETABLES");
1715
1716 return pgd;
1717}
1718#else /* !CONFIG_X86_64 */
1719static pmd_t level2_kernel_pgt[PTRS_PER_PMD] __page_aligned_bss;
1720
1721__init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1722 unsigned long max_pfn)
1723{
1724 pmd_t *kernel_pmd;
1725
1726 init_pg_tables_start = __pa(pgd);
1727 init_pg_tables_end = __pa(pgd) + xen_start_info->nr_pt_frames*PAGE_SIZE;
1728 max_pfn_mapped = PFN_DOWN(init_pg_tables_end + 512*1024);
1729
1730 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
1731 memcpy(level2_kernel_pgt, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);
1732
1733 xen_map_identity_early(level2_kernel_pgt, max_pfn);
1734
1735 memcpy(swapper_pg_dir, pgd, sizeof(pgd_t) * PTRS_PER_PGD);
1736 set_pgd(&swapper_pg_dir[KERNEL_PGD_BOUNDARY],
1737 __pgd(__pa(level2_kernel_pgt) | _PAGE_PRESENT));
1738
1739 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
1740 set_page_prot(swapper_pg_dir, PAGE_KERNEL_RO);
1741 set_page_prot(empty_zero_page, PAGE_KERNEL_RO);
1742
1743 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
1744
1745 xen_write_cr3(__pa(swapper_pg_dir));
1746
1747 pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(swapper_pg_dir)));
1748
1749 return swapper_pg_dir;
1750}
1751#endif /* CONFIG_X86_64 */
1752
1753static void xen_set_fixmap(unsigned idx, unsigned long phys, pgprot_t prot)
1754{
1755 pte_t pte;
1756
1757 phys >>= PAGE_SHIFT;
1758
1759 switch (idx) {
1760 case FIX_BTMAP_END ... FIX_BTMAP_BEGIN:
1761#ifdef CONFIG_X86_F00F_BUG
1762 case FIX_F00F_IDT:
1763#endif
1764#ifdef CONFIG_X86_32
1765 case FIX_WP_TEST:
1766 case FIX_VDSO:
1767# ifdef CONFIG_HIGHMEM
1768 case FIX_KMAP_BEGIN ... FIX_KMAP_END:
1769# endif
1770#else
1771 case VSYSCALL_LAST_PAGE ... VSYSCALL_FIRST_PAGE:
1772#endif
1773#ifdef CONFIG_X86_LOCAL_APIC
1774 case FIX_APIC_BASE: /* maps dummy local APIC */
1775#endif
1776 pte = pfn_pte(phys, prot);
1777 break;
1778
1779 default:
1780 pte = mfn_pte(phys, prot);
1781 break;
1782 }
1783
1784 __native_set_fixmap(idx, pte);
1785
1786#ifdef CONFIG_X86_64
1787 /* Replicate changes to map the vsyscall page into the user
1788 pagetable vsyscall mapping. */
1789 if (idx >= VSYSCALL_LAST_PAGE && idx <= VSYSCALL_FIRST_PAGE) {
1790 unsigned long vaddr = __fix_to_virt(idx);
1791 set_pte_vaddr_pud(level3_user_vsyscall, vaddr, pte);
1792 }
1793#endif
1794}
1795
1796__init void xen_post_allocator_init(void)
1797{
1798 pv_mmu_ops.set_pte = xen_set_pte;
1799 pv_mmu_ops.set_pmd = xen_set_pmd;
1800 pv_mmu_ops.set_pud = xen_set_pud;
1801#if PAGETABLE_LEVELS == 4
1802 pv_mmu_ops.set_pgd = xen_set_pgd;
1803#endif
1804
1805 /* This will work as long as patching hasn't happened yet
1806 (which it hasn't) */
1807 pv_mmu_ops.alloc_pte = xen_alloc_pte;
1808 pv_mmu_ops.alloc_pmd = xen_alloc_pmd;
1809 pv_mmu_ops.release_pte = xen_release_pte;
1810 pv_mmu_ops.release_pmd = xen_release_pmd;
1811#if PAGETABLE_LEVELS == 4
1812 pv_mmu_ops.alloc_pud = xen_alloc_pud;
1813 pv_mmu_ops.release_pud = xen_release_pud;
1814#endif
1815
1816#ifdef CONFIG_X86_64
1817 SetPagePinned(virt_to_page(level3_user_vsyscall));
1818#endif
1819 xen_mark_init_mm_pinned();
1820}
1821
1822
1823const struct pv_mmu_ops xen_mmu_ops __initdata = {
1824 .pagetable_setup_start = xen_pagetable_setup_start,
1825 .pagetable_setup_done = xen_pagetable_setup_done,
1826
1827 .read_cr2 = xen_read_cr2,
1828 .write_cr2 = xen_write_cr2,
1829
1830 .read_cr3 = xen_read_cr3,
1831 .write_cr3 = xen_write_cr3,
1832
1833 .flush_tlb_user = xen_flush_tlb,
1834 .flush_tlb_kernel = xen_flush_tlb,
1835 .flush_tlb_single = xen_flush_tlb_single,
1836 .flush_tlb_others = xen_flush_tlb_others,
1837
1838 .pte_update = paravirt_nop,
1839 .pte_update_defer = paravirt_nop,
1840
1841 .pgd_alloc = xen_pgd_alloc,
1842 .pgd_free = xen_pgd_free,
1843
1844 .alloc_pte = xen_alloc_pte_init,
1845 .release_pte = xen_release_pte_init,
1846 .alloc_pmd = xen_alloc_pte_init,
1847 .alloc_pmd_clone = paravirt_nop,
1848 .release_pmd = xen_release_pte_init,
1849
1850#ifdef CONFIG_HIGHPTE
1851 .kmap_atomic_pte = xen_kmap_atomic_pte,
1852#endif
1853
1854#ifdef CONFIG_X86_64
1855 .set_pte = xen_set_pte,
1856#else
1857 .set_pte = xen_set_pte_init,
1858#endif
1859 .set_pte_at = xen_set_pte_at,
1860 .set_pmd = xen_set_pmd_hyper,
1861
1862 .ptep_modify_prot_start = __ptep_modify_prot_start,
1863 .ptep_modify_prot_commit = __ptep_modify_prot_commit,
1864
1865 .pte_val = PV_CALLEE_SAVE(xen_pte_val),
1866 .pgd_val = PV_CALLEE_SAVE(xen_pgd_val),
1867
1868 .make_pte = PV_CALLEE_SAVE(xen_make_pte),
1869 .make_pgd = PV_CALLEE_SAVE(xen_make_pgd),
1870
1871#ifdef CONFIG_X86_PAE
1872 .set_pte_atomic = xen_set_pte_atomic,
1873 .set_pte_present = xen_set_pte_at,
1874 .pte_clear = xen_pte_clear,
1875 .pmd_clear = xen_pmd_clear,
1876#endif /* CONFIG_X86_PAE */
1877 .set_pud = xen_set_pud_hyper,
1878
1879 .make_pmd = PV_CALLEE_SAVE(xen_make_pmd),
1880 .pmd_val = PV_CALLEE_SAVE(xen_pmd_val),
1881
1882#if PAGETABLE_LEVELS == 4
1883 .pud_val = PV_CALLEE_SAVE(xen_pud_val),
1884 .make_pud = PV_CALLEE_SAVE(xen_make_pud),
1885 .set_pgd = xen_set_pgd_hyper,
1886
1887 .alloc_pud = xen_alloc_pte_init,
1888 .release_pud = xen_release_pte_init,
1889#endif /* PAGETABLE_LEVELS == 4 */
1890
1891 .activate_mm = xen_activate_mm,
1892 .dup_mmap = xen_dup_mmap,
1893 .exit_mmap = xen_exit_mmap,
1894
1895 .lazy_mode = {
1896 .enter = paravirt_enter_lazy_mmu,
1897 .leave = xen_leave_lazy,
1898 },
1899
1900 .set_fixmap = xen_set_fixmap,
1901};
1902
1903
1159#ifdef CONFIG_XEN_DEBUG_FS 1904#ifdef CONFIG_XEN_DEBUG_FS
1160 1905
1161static struct dentry *d_mmu_debug; 1906static struct dentry *d_mmu_debug;
diff --git a/arch/x86/xen/mmu.h b/arch/x86/xen/mmu.h
index 98d71659da5a..24d1b44a337d 100644
--- a/arch/x86/xen/mmu.h
+++ b/arch/x86/xen/mmu.h
@@ -54,4 +54,7 @@ pte_t xen_ptep_modify_prot_start(struct mm_struct *mm, unsigned long addr, pte_t
54void xen_ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr, 54void xen_ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr,
55 pte_t *ptep, pte_t pte); 55 pte_t *ptep, pte_t pte);
56 56
57unsigned long xen_read_cr2_direct(void);
58
59extern const struct pv_mmu_ops xen_mmu_ops;
57#endif /* _XEN_MMU_H */ 60#endif /* _XEN_MMU_H */
diff --git a/arch/x86/xen/multicalls.c b/arch/x86/xen/multicalls.c
index c738644b5435..8bff7e7c290b 100644
--- a/arch/x86/xen/multicalls.c
+++ b/arch/x86/xen/multicalls.c
@@ -39,6 +39,7 @@ struct mc_buffer {
39 struct multicall_entry entries[MC_BATCH]; 39 struct multicall_entry entries[MC_BATCH];
40#if MC_DEBUG 40#if MC_DEBUG
41 struct multicall_entry debug[MC_BATCH]; 41 struct multicall_entry debug[MC_BATCH];
42 void *caller[MC_BATCH];
42#endif 43#endif
43 unsigned char args[MC_ARGS]; 44 unsigned char args[MC_ARGS];
44 struct callback { 45 struct callback {
@@ -154,11 +155,12 @@ void xen_mc_flush(void)
154 ret, smp_processor_id()); 155 ret, smp_processor_id());
155 dump_stack(); 156 dump_stack();
156 for (i = 0; i < b->mcidx; i++) { 157 for (i = 0; i < b->mcidx; i++) {
157 printk(KERN_DEBUG " call %2d/%d: op=%lu arg=[%lx] result=%ld\n", 158 printk(KERN_DEBUG " call %2d/%d: op=%lu arg=[%lx] result=%ld\t%pF\n",
158 i+1, b->mcidx, 159 i+1, b->mcidx,
159 b->debug[i].op, 160 b->debug[i].op,
160 b->debug[i].args[0], 161 b->debug[i].args[0],
161 b->entries[i].result); 162 b->entries[i].result,
163 b->caller[i]);
162 } 164 }
163 } 165 }
164#endif 166#endif
@@ -168,8 +170,6 @@ void xen_mc_flush(void)
168 } else 170 } else
169 BUG_ON(b->argidx != 0); 171 BUG_ON(b->argidx != 0);
170 172
171 local_irq_restore(flags);
172
173 for (i = 0; i < b->cbidx; i++) { 173 for (i = 0; i < b->cbidx; i++) {
174 struct callback *cb = &b->callbacks[i]; 174 struct callback *cb = &b->callbacks[i];
175 175
@@ -177,7 +177,9 @@ void xen_mc_flush(void)
177 } 177 }
178 b->cbidx = 0; 178 b->cbidx = 0;
179 179
180 BUG_ON(ret); 180 local_irq_restore(flags);
181
182 WARN_ON(ret);
181} 183}
182 184
183struct multicall_space __xen_mc_entry(size_t args) 185struct multicall_space __xen_mc_entry(size_t args)
@@ -197,6 +199,9 @@ struct multicall_space __xen_mc_entry(size_t args)
197 } 199 }
198 200
199 ret.mc = &b->entries[b->mcidx]; 201 ret.mc = &b->entries[b->mcidx];
202#ifdef MC_DEBUG
203 b->caller[b->mcidx] = __builtin_return_address(0);
204#endif
200 b->mcidx++; 205 b->mcidx++;
201 ret.args = &b->args[argidx]; 206 ret.args = &b->args[argidx];
202 b->argidx = argidx + args; 207 b->argidx = argidx + args;
diff --git a/arch/x86/xen/multicalls.h b/arch/x86/xen/multicalls.h
index 858938241616..9e565da5d1f7 100644
--- a/arch/x86/xen/multicalls.h
+++ b/arch/x86/xen/multicalls.h
@@ -19,8 +19,10 @@ DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags);
19 paired with xen_mc_issue() */ 19 paired with xen_mc_issue() */
20static inline void xen_mc_batch(void) 20static inline void xen_mc_batch(void)
21{ 21{
22 unsigned long flags;
22 /* need to disable interrupts until this entry is complete */ 23 /* need to disable interrupts until this entry is complete */
23 local_irq_save(__get_cpu_var(xen_mc_irq_flags)); 24 local_irq_save(flags);
25 __get_cpu_var(xen_mc_irq_flags) = flags;
24} 26}
25 27
26static inline struct multicall_space xen_mc_entry(size_t args) 28static inline struct multicall_space xen_mc_entry(size_t args)
@@ -39,7 +41,7 @@ static inline void xen_mc_issue(unsigned mode)
39 xen_mc_flush(); 41 xen_mc_flush();
40 42
41 /* restore flags saved in xen_mc_batch */ 43 /* restore flags saved in xen_mc_batch */
42 local_irq_restore(x86_read_percpu(xen_mc_irq_flags)); 44 local_irq_restore(percpu_read(xen_mc_irq_flags));
43} 45}
44 46
45/* Set up a callback to be called when the current batch is flushed */ 47/* Set up a callback to be called when the current batch is flushed */
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index c44e2069c7c7..8d470562ffc9 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -50,11 +50,7 @@ static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id);
50 */ 50 */
51static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id) 51static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id)
52{ 52{
53#ifdef CONFIG_X86_32 53 inc_irq_stat(irq_resched_count);
54 __get_cpu_var(irq_stat).irq_resched_count++;
55#else
56 add_pda(irq_resched_count, 1);
57#endif
58 54
59 return IRQ_HANDLED; 55 return IRQ_HANDLED;
60} 56}
@@ -78,7 +74,7 @@ static __cpuinit void cpu_bringup(void)
78 xen_setup_cpu_clockevents(); 74 xen_setup_cpu_clockevents();
79 75
80 cpu_set(cpu, cpu_online_map); 76 cpu_set(cpu, cpu_online_map);
81 x86_write_percpu(cpu_state, CPU_ONLINE); 77 percpu_write(cpu_state, CPU_ONLINE);
82 wmb(); 78 wmb();
83 79
84 /* We can take interrupts now: we're officially "up". */ 80 /* We can take interrupts now: we're officially "up". */
@@ -174,7 +170,7 @@ static void __init xen_smp_prepare_boot_cpu(void)
174 170
175 /* We've switched to the "real" per-cpu gdt, so make sure the 171 /* We've switched to the "real" per-cpu gdt, so make sure the
176 old memory can be recycled */ 172 old memory can be recycled */
177 make_lowmem_page_readwrite(&per_cpu_var(gdt_page)); 173 make_lowmem_page_readwrite(xen_initial_gdt);
178 174
179 xen_setup_vcpu_info_placement(); 175 xen_setup_vcpu_info_placement();
180} 176}
@@ -223,6 +219,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
223{ 219{
224 struct vcpu_guest_context *ctxt; 220 struct vcpu_guest_context *ctxt;
225 struct desc_struct *gdt; 221 struct desc_struct *gdt;
222 unsigned long gdt_mfn;
226 223
227 if (cpumask_test_and_set_cpu(cpu, xen_cpu_initialized_map)) 224 if (cpumask_test_and_set_cpu(cpu, xen_cpu_initialized_map))
228 return 0; 225 return 0;
@@ -239,6 +236,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
239 ctxt->user_regs.ss = __KERNEL_DS; 236 ctxt->user_regs.ss = __KERNEL_DS;
240#ifdef CONFIG_X86_32 237#ifdef CONFIG_X86_32
241 ctxt->user_regs.fs = __KERNEL_PERCPU; 238 ctxt->user_regs.fs = __KERNEL_PERCPU;
239#else
240 ctxt->gs_base_kernel = per_cpu_offset(cpu);
242#endif 241#endif
243 ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle; 242 ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle;
244 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */ 243 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
@@ -250,9 +249,12 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
250 ctxt->ldt_ents = 0; 249 ctxt->ldt_ents = 0;
251 250
252 BUG_ON((unsigned long)gdt & ~PAGE_MASK); 251 BUG_ON((unsigned long)gdt & ~PAGE_MASK);
252
253 gdt_mfn = arbitrary_virt_to_mfn(gdt);
253 make_lowmem_page_readonly(gdt); 254 make_lowmem_page_readonly(gdt);
255 make_lowmem_page_readonly(mfn_to_virt(gdt_mfn));
254 256
255 ctxt->gdt_frames[0] = virt_to_mfn(gdt); 257 ctxt->gdt_frames[0] = gdt_mfn;
256 ctxt->gdt_ents = GDT_ENTRIES; 258 ctxt->gdt_ents = GDT_ENTRIES;
257 259
258 ctxt->user_regs.cs = __KERNEL_CS; 260 ctxt->user_regs.cs = __KERNEL_CS;
@@ -283,23 +285,14 @@ static int __cpuinit xen_cpu_up(unsigned int cpu)
283 struct task_struct *idle = idle_task(cpu); 285 struct task_struct *idle = idle_task(cpu);
284 int rc; 286 int rc;
285 287
286#ifdef CONFIG_X86_64
287 /* Allocate node local memory for AP pdas */
288 WARN_ON(cpu == 0);
289 if (cpu > 0) {
290 rc = get_local_pda(cpu);
291 if (rc)
292 return rc;
293 }
294#endif
295
296#ifdef CONFIG_X86_32
297 init_gdt(cpu);
298 per_cpu(current_task, cpu) = idle; 288 per_cpu(current_task, cpu) = idle;
289#ifdef CONFIG_X86_32
299 irq_ctx_init(cpu); 290 irq_ctx_init(cpu);
300#else 291#else
301 cpu_pda(cpu)->pcurrent = idle;
302 clear_tsk_thread_flag(idle, TIF_FORK); 292 clear_tsk_thread_flag(idle, TIF_FORK);
293 per_cpu(kernel_stack, cpu) =
294 (unsigned long)task_stack_page(idle) -
295 KERNEL_STACK_OFFSET + THREAD_SIZE;
303#endif 296#endif
304 xen_setup_timer(cpu); 297 xen_setup_timer(cpu);
305 xen_init_lock_cpu(cpu); 298 xen_init_lock_cpu(cpu);
@@ -445,11 +438,7 @@ static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id)
445{ 438{
446 irq_enter(); 439 irq_enter();
447 generic_smp_call_function_interrupt(); 440 generic_smp_call_function_interrupt();
448#ifdef CONFIG_X86_32 441 inc_irq_stat(irq_call_count);
449 __get_cpu_var(irq_stat).irq_call_count++;
450#else
451 add_pda(irq_call_count, 1);
452#endif
453 irq_exit(); 442 irq_exit();
454 443
455 return IRQ_HANDLED; 444 return IRQ_HANDLED;
@@ -459,11 +448,7 @@ static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id)
459{ 448{
460 irq_enter(); 449 irq_enter();
461 generic_smp_call_function_single_interrupt(); 450 generic_smp_call_function_single_interrupt();
462#ifdef CONFIG_X86_32 451 inc_irq_stat(irq_call_count);
463 __get_cpu_var(irq_stat).irq_call_count++;
464#else
465 add_pda(irq_call_count, 1);
466#endif
467 irq_exit(); 452 irq_exit();
468 453
469 return IRQ_HANDLED; 454 return IRQ_HANDLED;
diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c
index 212ffe012b76..95be7b434724 100644
--- a/arch/x86/xen/suspend.c
+++ b/arch/x86/xen/suspend.c
@@ -6,6 +6,7 @@
6 6
7#include <asm/xen/hypercall.h> 7#include <asm/xen/hypercall.h>
8#include <asm/xen/page.h> 8#include <asm/xen/page.h>
9#include <asm/fixmap.h>
9 10
10#include "xen-ops.h" 11#include "xen-ops.h"
11#include "mmu.h" 12#include "mmu.h"
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
new file mode 100644
index 000000000000..79d7362ad6d1
--- /dev/null
+++ b/arch/x86/xen/xen-asm.S
@@ -0,0 +1,142 @@
1/*
2 * Asm versions of Xen pv-ops, suitable for either direct use or
3 * inlining. The inline versions are the same as the direct-use
4 * versions, with the pre- and post-amble chopped off.
5 *
6 * This code is encoded for size rather than absolute efficiency, with
7 * a view to being able to inline as much as possible.
8 *
9 * We only bother with direct forms (ie, vcpu in percpu data) of the
10 * operations here; the indirect forms are better handled in C, since
11 * they're generally too large to inline anyway.
12 */
13
14#include <asm/asm-offsets.h>
15#include <asm/percpu.h>
16#include <asm/processor-flags.h>
17
18#include "xen-asm.h"
19
20/*
21 * Enable events. This clears the event mask and tests the pending
22 * event status with one and operation. If there are pending events,
23 * then enter the hypervisor to get them handled.
24 */
25ENTRY(xen_irq_enable_direct)
26 /* Unmask events */
27 movb $0, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
28
29 /*
30 * Preempt here doesn't matter because that will deal with any
31 * pending interrupts. The pending check may end up being run
32 * on the wrong CPU, but that doesn't hurt.
33 */
34
35 /* Test for pending */
36 testb $0xff, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_pending
37 jz 1f
38
392: call check_events
401:
41ENDPATCH(xen_irq_enable_direct)
42 ret
43 ENDPROC(xen_irq_enable_direct)
44 RELOC(xen_irq_enable_direct, 2b+1)
45
46
47/*
48 * Disabling events is simply a matter of making the event mask
49 * non-zero.
50 */
51ENTRY(xen_irq_disable_direct)
52 movb $1, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
53ENDPATCH(xen_irq_disable_direct)
54 ret
55 ENDPROC(xen_irq_disable_direct)
56 RELOC(xen_irq_disable_direct, 0)
57
58/*
59 * (xen_)save_fl is used to get the current interrupt enable status.
60 * Callers expect the status to be in X86_EFLAGS_IF, and other bits
61 * may be set in the return value. We take advantage of this by
62 * making sure that X86_EFLAGS_IF has the right value (and other bits
63 * in that byte are 0), but other bits in the return value are
64 * undefined. We need to toggle the state of the bit, because Xen and
65 * x86 use opposite senses (mask vs enable).
66 */
67ENTRY(xen_save_fl_direct)
68 testb $0xff, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
69 setz %ah
70 addb %ah, %ah
71ENDPATCH(xen_save_fl_direct)
72 ret
73 ENDPROC(xen_save_fl_direct)
74 RELOC(xen_save_fl_direct, 0)
75
76
77/*
78 * In principle the caller should be passing us a value return from
79 * xen_save_fl_direct, but for robustness sake we test only the
80 * X86_EFLAGS_IF flag rather than the whole byte. After setting the
81 * interrupt mask state, it checks for unmasked pending events and
82 * enters the hypervisor to get them delivered if so.
83 */
84ENTRY(xen_restore_fl_direct)
85#ifdef CONFIG_X86_64
86 testw $X86_EFLAGS_IF, %di
87#else
88 testb $X86_EFLAGS_IF>>8, %ah
89#endif
90 setz PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask
91 /*
92 * Preempt here doesn't matter because that will deal with any
93 * pending interrupts. The pending check may end up being run
94 * on the wrong CPU, but that doesn't hurt.
95 */
96
97 /* check for unmasked and pending */
98 cmpw $0x0001, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_pending
99 jz 1f
1002: call check_events
1011:
102ENDPATCH(xen_restore_fl_direct)
103 ret
104 ENDPROC(xen_restore_fl_direct)
105 RELOC(xen_restore_fl_direct, 2b+1)
106
107
108/*
109 * Force an event check by making a hypercall, but preserve regs
110 * before making the call.
111 */
112check_events:
113#ifdef CONFIG_X86_32
114 push %eax
115 push %ecx
116 push %edx
117 call xen_force_evtchn_callback
118 pop %edx
119 pop %ecx
120 pop %eax
121#else
122 push %rax
123 push %rcx
124 push %rdx
125 push %rsi
126 push %rdi
127 push %r8
128 push %r9
129 push %r10
130 push %r11
131 call xen_force_evtchn_callback
132 pop %r11
133 pop %r10
134 pop %r9
135 pop %r8
136 pop %rdi
137 pop %rsi
138 pop %rdx
139 pop %rcx
140 pop %rax
141#endif
142 ret
diff --git a/arch/x86/xen/xen-asm.h b/arch/x86/xen/xen-asm.h
new file mode 100644
index 000000000000..465276467a47
--- /dev/null
+++ b/arch/x86/xen/xen-asm.h
@@ -0,0 +1,12 @@
1#ifndef _XEN_XEN_ASM_H
2#define _XEN_XEN_ASM_H
3
4#include <linux/linkage.h>
5
6#define RELOC(x, v) .globl x##_reloc; x##_reloc=v
7#define ENDPATCH(x) .globl x##_end; x##_end=.
8
9/* Pseudo-flag used for virtual NMI, which we don't implement yet */
10#define XEN_EFLAGS_NMI 0x80000000
11
12#endif
diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S
index 42786f59d9c0..88e15deb8b82 100644
--- a/arch/x86/xen/xen-asm_32.S
+++ b/arch/x86/xen/xen-asm_32.S
@@ -1,117 +1,43 @@
1/* 1/*
2 Asm versions of Xen pv-ops, suitable for either direct use or inlining. 2 * Asm versions of Xen pv-ops, suitable for either direct use or
3 The inline versions are the same as the direct-use versions, with the 3 * inlining. The inline versions are the same as the direct-use
4 pre- and post-amble chopped off. 4 * versions, with the pre- and post-amble chopped off.
5 5 *
6 This code is encoded for size rather than absolute efficiency, 6 * This code is encoded for size rather than absolute efficiency, with
7 with a view to being able to inline as much as possible. 7 * a view to being able to inline as much as possible.
8 8 *
9 We only bother with direct forms (ie, vcpu in pda) of the operations 9 * We only bother with direct forms (ie, vcpu in pda) of the
10 here; the indirect forms are better handled in C, since they're 10 * operations here; the indirect forms are better handled in C, since
11 generally too large to inline anyway. 11 * they're generally too large to inline anyway.
12 */ 12 */
13 13
14#include <linux/linkage.h>
15
16#include <asm/asm-offsets.h>
17#include <asm/thread_info.h> 14#include <asm/thread_info.h>
18#include <asm/percpu.h>
19#include <asm/processor-flags.h> 15#include <asm/processor-flags.h>
20#include <asm/segment.h> 16#include <asm/segment.h>
21 17
22#include <xen/interface/xen.h> 18#include <xen/interface/xen.h>
23 19
24#define RELOC(x, v) .globl x##_reloc; x##_reloc=v 20#include "xen-asm.h"
25#define ENDPATCH(x) .globl x##_end; x##_end=.
26
27/* Pseudo-flag used for virtual NMI, which we don't implement yet */
28#define XEN_EFLAGS_NMI 0x80000000
29
30/*
31 Enable events. This clears the event mask and tests the pending
32 event status with one and operation. If there are pending
33 events, then enter the hypervisor to get them handled.
34 */
35ENTRY(xen_irq_enable_direct)
36 /* Unmask events */
37 movb $0, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask
38
39 /* Preempt here doesn't matter because that will deal with
40 any pending interrupts. The pending check may end up being
41 run on the wrong CPU, but that doesn't hurt. */
42
43 /* Test for pending */
44 testb $0xff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending
45 jz 1f
46
472: call check_events
481:
49ENDPATCH(xen_irq_enable_direct)
50 ret
51 ENDPROC(xen_irq_enable_direct)
52 RELOC(xen_irq_enable_direct, 2b+1)
53
54
55/*
56 Disabling events is simply a matter of making the event mask
57 non-zero.
58 */
59ENTRY(xen_irq_disable_direct)
60 movb $1, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask
61ENDPATCH(xen_irq_disable_direct)
62 ret
63 ENDPROC(xen_irq_disable_direct)
64 RELOC(xen_irq_disable_direct, 0)
65 21
66/* 22/*
67 (xen_)save_fl is used to get the current interrupt enable status. 23 * Force an event check by making a hypercall, but preserve regs
68 Callers expect the status to be in X86_EFLAGS_IF, and other bits 24 * before making the call.
69 may be set in the return value. We take advantage of this by
70 making sure that X86_EFLAGS_IF has the right value (and other bits
71 in that byte are 0), but other bits in the return value are
72 undefined. We need to toggle the state of the bit, because
73 Xen and x86 use opposite senses (mask vs enable).
74 */ 25 */
75ENTRY(xen_save_fl_direct) 26check_events:
76 testb $0xff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask 27 push %eax
77 setz %ah 28 push %ecx
78 addb %ah,%ah 29 push %edx
79ENDPATCH(xen_save_fl_direct) 30 call xen_force_evtchn_callback
80 ret 31 pop %edx
81 ENDPROC(xen_save_fl_direct) 32 pop %ecx
82 RELOC(xen_save_fl_direct, 0) 33 pop %eax
83
84
85/*
86 In principle the caller should be passing us a value return
87 from xen_save_fl_direct, but for robustness sake we test only
88 the X86_EFLAGS_IF flag rather than the whole byte. After
89 setting the interrupt mask state, it checks for unmasked
90 pending events and enters the hypervisor to get them delivered
91 if so.
92 */
93ENTRY(xen_restore_fl_direct)
94 testb $X86_EFLAGS_IF>>8, %ah
95 setz PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask
96 /* Preempt here doesn't matter because that will deal with
97 any pending interrupts. The pending check may end up being
98 run on the wrong CPU, but that doesn't hurt. */
99
100 /* check for unmasked and pending */
101 cmpw $0x0001, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending
102 jz 1f
1032: call check_events
1041:
105ENDPATCH(xen_restore_fl_direct)
106 ret 34 ret
107 ENDPROC(xen_restore_fl_direct)
108 RELOC(xen_restore_fl_direct, 2b+1)
109 35
110/* 36/*
111 We can't use sysexit directly, because we're not running in ring0. 37 * We can't use sysexit directly, because we're not running in ring0.
112 But we can easily fake it up using iret. Assuming xen_sysexit 38 * But we can easily fake it up using iret. Assuming xen_sysexit is
113 is jumped to with a standard stack frame, we can just strip it 39 * jumped to with a standard stack frame, we can just strip it back to
114 back to a standard iret frame and use iret. 40 * a standard iret frame and use iret.
115 */ 41 */
116ENTRY(xen_sysexit) 42ENTRY(xen_sysexit)
117 movl PT_EAX(%esp), %eax /* Shouldn't be necessary? */ 43 movl PT_EAX(%esp), %eax /* Shouldn't be necessary? */
@@ -122,33 +48,31 @@ ENTRY(xen_sysexit)
122ENDPROC(xen_sysexit) 48ENDPROC(xen_sysexit)
123 49
124/* 50/*
125 This is run where a normal iret would be run, with the same stack setup: 51 * This is run where a normal iret would be run, with the same stack setup:
126 8: eflags 52 * 8: eflags
127 4: cs 53 * 4: cs
128 esp-> 0: eip 54 * esp-> 0: eip
129 55 *
130 This attempts to make sure that any pending events are dealt 56 * This attempts to make sure that any pending events are dealt with
131 with on return to usermode, but there is a small window in 57 * on return to usermode, but there is a small window in which an
132 which an event can happen just before entering usermode. If 58 * event can happen just before entering usermode. If the nested
133 the nested interrupt ends up setting one of the TIF_WORK_MASK 59 * interrupt ends up setting one of the TIF_WORK_MASK pending work
134 pending work flags, they will not be tested again before 60 * flags, they will not be tested again before returning to
135 returning to usermode. This means that a process can end up 61 * usermode. This means that a process can end up with pending work,
136 with pending work, which will be unprocessed until the process 62 * which will be unprocessed until the process enters and leaves the
137 enters and leaves the kernel again, which could be an 63 * kernel again, which could be an unbounded amount of time. This
138 unbounded amount of time. This means that a pending signal or 64 * means that a pending signal or reschedule event could be
139 reschedule event could be indefinitely delayed. 65 * indefinitely delayed.
140 66 *
141 The fix is to notice a nested interrupt in the critical 67 * The fix is to notice a nested interrupt in the critical window, and
142 window, and if one occurs, then fold the nested interrupt into 68 * if one occurs, then fold the nested interrupt into the current
143 the current interrupt stack frame, and re-process it 69 * interrupt stack frame, and re-process it iteratively rather than
144 iteratively rather than recursively. This means that it will 70 * recursively. This means that it will exit via the normal path, and
145 exit via the normal path, and all pending work will be dealt 71 * all pending work will be dealt with appropriately.
146 with appropriately. 72 *
147 73 * Because the nested interrupt handler needs to deal with the current
148 Because the nested interrupt handler needs to deal with the 74 * stack state in whatever form its in, we keep things simple by only
149 current stack state in whatever form its in, we keep things 75 * using a single register which is pushed/popped on the stack.
150 simple by only using a single register which is pushed/popped
151 on the stack.
152 */ 76 */
153ENTRY(xen_iret) 77ENTRY(xen_iret)
154 /* test eflags for special cases */ 78 /* test eflags for special cases */
@@ -158,13 +82,15 @@ ENTRY(xen_iret)
158 push %eax 82 push %eax
159 ESP_OFFSET=4 # bytes pushed onto stack 83 ESP_OFFSET=4 # bytes pushed onto stack
160 84
161 /* Store vcpu_info pointer for easy access. Do it this 85 /*
162 way to avoid having to reload %fs */ 86 * Store vcpu_info pointer for easy access. Do it this way to
87 * avoid having to reload %fs
88 */
163#ifdef CONFIG_SMP 89#ifdef CONFIG_SMP
164 GET_THREAD_INFO(%eax) 90 GET_THREAD_INFO(%eax)
165 movl TI_cpu(%eax),%eax 91 movl TI_cpu(%eax), %eax
166 movl __per_cpu_offset(,%eax,4),%eax 92 movl __per_cpu_offset(,%eax,4), %eax
167 mov per_cpu__xen_vcpu(%eax),%eax 93 mov per_cpu__xen_vcpu(%eax), %eax
168#else 94#else
169 movl per_cpu__xen_vcpu, %eax 95 movl per_cpu__xen_vcpu, %eax
170#endif 96#endif
@@ -172,37 +98,46 @@ ENTRY(xen_iret)
172 /* check IF state we're restoring */ 98 /* check IF state we're restoring */
173 testb $X86_EFLAGS_IF>>8, 8+1+ESP_OFFSET(%esp) 99 testb $X86_EFLAGS_IF>>8, 8+1+ESP_OFFSET(%esp)
174 100
175 /* Maybe enable events. Once this happens we could get a 101 /*
176 recursive event, so the critical region starts immediately 102 * Maybe enable events. Once this happens we could get a
177 afterwards. However, if that happens we don't end up 103 * recursive event, so the critical region starts immediately
178 resuming the code, so we don't have to be worried about 104 * afterwards. However, if that happens we don't end up
179 being preempted to another CPU. */ 105 * resuming the code, so we don't have to be worried about
106 * being preempted to another CPU.
107 */
180 setz XEN_vcpu_info_mask(%eax) 108 setz XEN_vcpu_info_mask(%eax)
181xen_iret_start_crit: 109xen_iret_start_crit:
182 110
183 /* check for unmasked and pending */ 111 /* check for unmasked and pending */
184 cmpw $0x0001, XEN_vcpu_info_pending(%eax) 112 cmpw $0x0001, XEN_vcpu_info_pending(%eax)
185 113
186 /* If there's something pending, mask events again so we 114 /*
187 can jump back into xen_hypervisor_callback */ 115 * If there's something pending, mask events again so we can
116 * jump back into xen_hypervisor_callback
117 */
188 sete XEN_vcpu_info_mask(%eax) 118 sete XEN_vcpu_info_mask(%eax)
189 119
190 popl %eax 120 popl %eax
191 121
192 /* From this point on the registers are restored and the stack 122 /*
193 updated, so we don't need to worry about it if we're preempted */ 123 * From this point on the registers are restored and the stack
124 * updated, so we don't need to worry about it if we're
125 * preempted
126 */
194iret_restore_end: 127iret_restore_end:
195 128
196 /* Jump to hypervisor_callback after fixing up the stack. 129 /*
197 Events are masked, so jumping out of the critical 130 * Jump to hypervisor_callback after fixing up the stack.
198 region is OK. */ 131 * Events are masked, so jumping out of the critical region is
132 * OK.
133 */
199 je xen_hypervisor_callback 134 je xen_hypervisor_callback
200 135
2011: iret 1361: iret
202xen_iret_end_crit: 137xen_iret_end_crit:
203.section __ex_table,"a" 138.section __ex_table, "a"
204 .align 4 139 .align 4
205 .long 1b,iret_exc 140 .long 1b, iret_exc
206.previous 141.previous
207 142
208hyper_iret: 143hyper_iret:
@@ -212,55 +147,55 @@ hyper_iret:
212 .globl xen_iret_start_crit, xen_iret_end_crit 147 .globl xen_iret_start_crit, xen_iret_end_crit
213 148
214/* 149/*
215 This is called by xen_hypervisor_callback in entry.S when it sees 150 * This is called by xen_hypervisor_callback in entry.S when it sees
216 that the EIP at the time of interrupt was between xen_iret_start_crit 151 * that the EIP at the time of interrupt was between
217 and xen_iret_end_crit. We're passed the EIP in %eax so we can do 152 * xen_iret_start_crit and xen_iret_end_crit. We're passed the EIP in
218 a more refined determination of what to do. 153 * %eax so we can do a more refined determination of what to do.
219 154 *
220 The stack format at this point is: 155 * The stack format at this point is:
221 ---------------- 156 * ----------------
222 ss : (ss/esp may be present if we came from usermode) 157 * ss : (ss/esp may be present if we came from usermode)
223 esp : 158 * esp :
224 eflags } outer exception info 159 * eflags } outer exception info
225 cs } 160 * cs }
226 eip } 161 * eip }
227 ---------------- <- edi (copy dest) 162 * ---------------- <- edi (copy dest)
228 eax : outer eax if it hasn't been restored 163 * eax : outer eax if it hasn't been restored
229 ---------------- 164 * ----------------
230 eflags } nested exception info 165 * eflags } nested exception info
231 cs } (no ss/esp because we're nested 166 * cs } (no ss/esp because we're nested
232 eip } from the same ring) 167 * eip } from the same ring)
233 orig_eax }<- esi (copy src) 168 * orig_eax }<- esi (copy src)
234 - - - - - - - - 169 * - - - - - - - -
235 fs } 170 * fs }
236 es } 171 * es }
237 ds } SAVE_ALL state 172 * ds } SAVE_ALL state
238 eax } 173 * eax }
239 : : 174 * : :
240 ebx }<- esp 175 * ebx }<- esp
241 ---------------- 176 * ----------------
242 177 *
243 In order to deliver the nested exception properly, we need to shift 178 * In order to deliver the nested exception properly, we need to shift
244 everything from the return addr up to the error code so it 179 * everything from the return addr up to the error code so it sits
245 sits just under the outer exception info. This means that when we 180 * just under the outer exception info. This means that when we
246 handle the exception, we do it in the context of the outer exception 181 * handle the exception, we do it in the context of the outer
247 rather than starting a new one. 182 * exception rather than starting a new one.
248 183 *
249 The only caveat is that if the outer eax hasn't been 184 * The only caveat is that if the outer eax hasn't been restored yet
250 restored yet (ie, it's still on stack), we need to insert 185 * (ie, it's still on stack), we need to insert its value into the
251 its value into the SAVE_ALL state before going on, since 186 * SAVE_ALL state before going on, since it's usermode state which we
252 it's usermode state which we eventually need to restore. 187 * eventually need to restore.
253 */ 188 */
254ENTRY(xen_iret_crit_fixup) 189ENTRY(xen_iret_crit_fixup)
255 /* 190 /*
256 Paranoia: Make sure we're really coming from kernel space. 191 * Paranoia: Make sure we're really coming from kernel space.
257 One could imagine a case where userspace jumps into the 192 * One could imagine a case where userspace jumps into the
258 critical range address, but just before the CPU delivers a GP, 193 * critical range address, but just before the CPU delivers a
259 it decides to deliver an interrupt instead. Unlikely? 194 * GP, it decides to deliver an interrupt instead. Unlikely?
260 Definitely. Easy to avoid? Yes. The Intel documents 195 * Definitely. Easy to avoid? Yes. The Intel documents
261 explicitly say that the reported EIP for a bad jump is the 196 * explicitly say that the reported EIP for a bad jump is the
262 jump instruction itself, not the destination, but some virtual 197 * jump instruction itself, not the destination, but some
263 environments get this wrong. 198 * virtual environments get this wrong.
264 */ 199 */
265 movl PT_CS(%esp), %ecx 200 movl PT_CS(%esp), %ecx
266 andl $SEGMENT_RPL_MASK, %ecx 201 andl $SEGMENT_RPL_MASK, %ecx
@@ -270,15 +205,17 @@ ENTRY(xen_iret_crit_fixup)
270 lea PT_ORIG_EAX(%esp), %esi 205 lea PT_ORIG_EAX(%esp), %esi
271 lea PT_EFLAGS(%esp), %edi 206 lea PT_EFLAGS(%esp), %edi
272 207
273 /* If eip is before iret_restore_end then stack 208 /*
274 hasn't been restored yet. */ 209 * If eip is before iret_restore_end then stack
210 * hasn't been restored yet.
211 */
275 cmp $iret_restore_end, %eax 212 cmp $iret_restore_end, %eax
276 jae 1f 213 jae 1f
277 214
278 movl 0+4(%edi),%eax /* copy EAX (just above top of frame) */ 215 movl 0+4(%edi), %eax /* copy EAX (just above top of frame) */
279 movl %eax, PT_EAX(%esp) 216 movl %eax, PT_EAX(%esp)
280 217
281 lea ESP_OFFSET(%edi),%edi /* move dest up over saved regs */ 218 lea ESP_OFFSET(%edi), %edi /* move dest up over saved regs */
282 219
283 /* set up the copy */ 220 /* set up the copy */
2841: std 2211: std
@@ -286,20 +223,6 @@ ENTRY(xen_iret_crit_fixup)
286 rep movsl 223 rep movsl
287 cld 224 cld
288 225
289 lea 4(%edi),%esp /* point esp to new frame */ 226 lea 4(%edi), %esp /* point esp to new frame */
2902: jmp xen_do_upcall 2272: jmp xen_do_upcall
291 228
292
293/*
294 Force an event check by making a hypercall,
295 but preserve regs before making the call.
296 */
297check_events:
298 push %eax
299 push %ecx
300 push %edx
301 call xen_force_evtchn_callback
302 pop %edx
303 pop %ecx
304 pop %eax
305 ret
diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S
index 05794c566e87..02f496a8dbaa 100644
--- a/arch/x86/xen/xen-asm_64.S
+++ b/arch/x86/xen/xen-asm_64.S
@@ -1,174 +1,45 @@
1/* 1/*
2 Asm versions of Xen pv-ops, suitable for either direct use or inlining. 2 * Asm versions of Xen pv-ops, suitable for either direct use or
3 The inline versions are the same as the direct-use versions, with the 3 * inlining. The inline versions are the same as the direct-use
4 pre- and post-amble chopped off. 4 * versions, with the pre- and post-amble chopped off.
5 5 *
6 This code is encoded for size rather than absolute efficiency, 6 * This code is encoded for size rather than absolute efficiency, with
7 with a view to being able to inline as much as possible. 7 * a view to being able to inline as much as possible.
8 8 *
9 We only bother with direct forms (ie, vcpu in pda) of the operations 9 * We only bother with direct forms (ie, vcpu in pda) of the
10 here; the indirect forms are better handled in C, since they're 10 * operations here; the indirect forms are better handled in C, since
11 generally too large to inline anyway. 11 * they're generally too large to inline anyway.
12 */ 12 */
13 13
14#include <linux/linkage.h>
15
16#include <asm/asm-offsets.h>
17#include <asm/processor-flags.h>
18#include <asm/errno.h> 14#include <asm/errno.h>
15#include <asm/percpu.h>
16#include <asm/processor-flags.h>
19#include <asm/segment.h> 17#include <asm/segment.h>
20 18
21#include <xen/interface/xen.h> 19#include <xen/interface/xen.h>
22 20
23#define RELOC(x, v) .globl x##_reloc; x##_reloc=v 21#include "xen-asm.h"
24#define ENDPATCH(x) .globl x##_end; x##_end=.
25
26/* Pseudo-flag used for virtual NMI, which we don't implement yet */
27#define XEN_EFLAGS_NMI 0x80000000
28
29#if 1
30/*
31 x86-64 does not yet support direct access to percpu variables
32 via a segment override, so we just need to make sure this code
33 never gets used
34 */
35#define BUG ud2a
36#define PER_CPU_VAR(var, off) 0xdeadbeef
37#endif
38
39/*
40 Enable events. This clears the event mask and tests the pending
41 event status with one and operation. If there are pending
42 events, then enter the hypervisor to get them handled.
43 */
44ENTRY(xen_irq_enable_direct)
45 BUG
46
47 /* Unmask events */
48 movb $0, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_mask)
49
50 /* Preempt here doesn't matter because that will deal with
51 any pending interrupts. The pending check may end up being
52 run on the wrong CPU, but that doesn't hurt. */
53
54 /* Test for pending */
55 testb $0xff, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_pending)
56 jz 1f
57
582: call check_events
591:
60ENDPATCH(xen_irq_enable_direct)
61 ret
62 ENDPROC(xen_irq_enable_direct)
63 RELOC(xen_irq_enable_direct, 2b+1)
64
65/*
66 Disabling events is simply a matter of making the event mask
67 non-zero.
68 */
69ENTRY(xen_irq_disable_direct)
70 BUG
71
72 movb $1, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_mask)
73ENDPATCH(xen_irq_disable_direct)
74 ret
75 ENDPROC(xen_irq_disable_direct)
76 RELOC(xen_irq_disable_direct, 0)
77
78/*
79 (xen_)save_fl is used to get the current interrupt enable status.
80 Callers expect the status to be in X86_EFLAGS_IF, and other bits
81 may be set in the return value. We take advantage of this by
82 making sure that X86_EFLAGS_IF has the right value (and other bits
83 in that byte are 0), but other bits in the return value are
84 undefined. We need to toggle the state of the bit, because
85 Xen and x86 use opposite senses (mask vs enable).
86 */
87ENTRY(xen_save_fl_direct)
88 BUG
89
90 testb $0xff, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_mask)
91 setz %ah
92 addb %ah,%ah
93ENDPATCH(xen_save_fl_direct)
94 ret
95 ENDPROC(xen_save_fl_direct)
96 RELOC(xen_save_fl_direct, 0)
97
98/*
99 In principle the caller should be passing us a value return
100 from xen_save_fl_direct, but for robustness sake we test only
101 the X86_EFLAGS_IF flag rather than the whole byte. After
102 setting the interrupt mask state, it checks for unmasked
103 pending events and enters the hypervisor to get them delivered
104 if so.
105 */
106ENTRY(xen_restore_fl_direct)
107 BUG
108
109 testb $X86_EFLAGS_IF>>8, %ah
110 setz PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_mask)
111 /* Preempt here doesn't matter because that will deal with
112 any pending interrupts. The pending check may end up being
113 run on the wrong CPU, but that doesn't hurt. */
114
115 /* check for unmasked and pending */
116 cmpw $0x0001, PER_CPU_VAR(xen_vcpu_info, XEN_vcpu_info_pending)
117 jz 1f
1182: call check_events
1191:
120ENDPATCH(xen_restore_fl_direct)
121 ret
122 ENDPROC(xen_restore_fl_direct)
123 RELOC(xen_restore_fl_direct, 2b+1)
124
125
126/*
127 Force an event check by making a hypercall,
128 but preserve regs before making the call.
129 */
130check_events:
131 push %rax
132 push %rcx
133 push %rdx
134 push %rsi
135 push %rdi
136 push %r8
137 push %r9
138 push %r10
139 push %r11
140 call xen_force_evtchn_callback
141 pop %r11
142 pop %r10
143 pop %r9
144 pop %r8
145 pop %rdi
146 pop %rsi
147 pop %rdx
148 pop %rcx
149 pop %rax
150 ret
151 22
152ENTRY(xen_adjust_exception_frame) 23ENTRY(xen_adjust_exception_frame)
153 mov 8+0(%rsp),%rcx 24 mov 8+0(%rsp), %rcx
154 mov 8+8(%rsp),%r11 25 mov 8+8(%rsp), %r11
155 ret $16 26 ret $16
156 27
157hypercall_iret = hypercall_page + __HYPERVISOR_iret * 32 28hypercall_iret = hypercall_page + __HYPERVISOR_iret * 32
158/* 29/*
159 Xen64 iret frame: 30 * Xen64 iret frame:
160 31 *
161 ss 32 * ss
162 rsp 33 * rsp
163 rflags 34 * rflags
164 cs 35 * cs
165 rip <-- standard iret frame 36 * rip <-- standard iret frame
166 37 *
167 flags 38 * flags
168 39 *
169 rcx } 40 * rcx }
170 r11 }<-- pushed by hypercall page 41 * r11 }<-- pushed by hypercall page
171rsp -> rax } 42 * rsp->rax }
172 */ 43 */
173ENTRY(xen_iret) 44ENTRY(xen_iret)
174 pushq $0 45 pushq $0
@@ -177,8 +48,8 @@ ENDPATCH(xen_iret)
177RELOC(xen_iret, 1b+1) 48RELOC(xen_iret, 1b+1)
178 49
179/* 50/*
180 sysexit is not used for 64-bit processes, so it's 51 * sysexit is not used for 64-bit processes, so it's only ever used to
181 only ever used to return to 32-bit compat userspace. 52 * return to 32-bit compat userspace.
182 */ 53 */
183ENTRY(xen_sysexit) 54ENTRY(xen_sysexit)
184 pushq $__USER32_DS 55 pushq $__USER32_DS
@@ -193,13 +64,15 @@ ENDPATCH(xen_sysexit)
193RELOC(xen_sysexit, 1b+1) 64RELOC(xen_sysexit, 1b+1)
194 65
195ENTRY(xen_sysret64) 66ENTRY(xen_sysret64)
196 /* We're already on the usermode stack at this point, but still 67 /*
197 with the kernel gs, so we can easily switch back */ 68 * We're already on the usermode stack at this point, but
198 movq %rsp, %gs:pda_oldrsp 69 * still with the kernel gs, so we can easily switch back
199 movq %gs:pda_kernelstack,%rsp 70 */
71 movq %rsp, PER_CPU_VAR(old_rsp)
72 movq PER_CPU_VAR(kernel_stack), %rsp
200 73
201 pushq $__USER_DS 74 pushq $__USER_DS
202 pushq %gs:pda_oldrsp 75 pushq PER_CPU_VAR(old_rsp)
203 pushq %r11 76 pushq %r11
204 pushq $__USER_CS 77 pushq $__USER_CS
205 pushq %rcx 78 pushq %rcx
@@ -210,13 +83,15 @@ ENDPATCH(xen_sysret64)
210RELOC(xen_sysret64, 1b+1) 83RELOC(xen_sysret64, 1b+1)
211 84
212ENTRY(xen_sysret32) 85ENTRY(xen_sysret32)
213 /* We're already on the usermode stack at this point, but still 86 /*
214 with the kernel gs, so we can easily switch back */ 87 * We're already on the usermode stack at this point, but
215 movq %rsp, %gs:pda_oldrsp 88 * still with the kernel gs, so we can easily switch back
216 movq %gs:pda_kernelstack, %rsp 89 */
90 movq %rsp, PER_CPU_VAR(old_rsp)
91 movq PER_CPU_VAR(kernel_stack), %rsp
217 92
218 pushq $__USER32_DS 93 pushq $__USER32_DS
219 pushq %gs:pda_oldrsp 94 pushq PER_CPU_VAR(old_rsp)
220 pushq %r11 95 pushq %r11
221 pushq $__USER32_CS 96 pushq $__USER32_CS
222 pushq %rcx 97 pushq %rcx
@@ -227,28 +102,27 @@ ENDPATCH(xen_sysret32)
227RELOC(xen_sysret32, 1b+1) 102RELOC(xen_sysret32, 1b+1)
228 103
229/* 104/*
230 Xen handles syscall callbacks much like ordinary exceptions, 105 * Xen handles syscall callbacks much like ordinary exceptions, which
231 which means we have: 106 * means we have:
232 - kernel gs 107 * - kernel gs
233 - kernel rsp 108 * - kernel rsp
234 - an iret-like stack frame on the stack (including rcx and r11): 109 * - an iret-like stack frame on the stack (including rcx and r11):
235 ss 110 * ss
236 rsp 111 * rsp
237 rflags 112 * rflags
238 cs 113 * cs
239 rip 114 * rip
240 r11 115 * r11
241 rsp-> rcx 116 * rsp->rcx
242 117 *
243 In all the entrypoints, we undo all that to make it look 118 * In all the entrypoints, we undo all that to make it look like a
244 like a CPU-generated syscall/sysenter and jump to the normal 119 * CPU-generated syscall/sysenter and jump to the normal entrypoint.
245 entrypoint.
246 */ 120 */
247 121
248.macro undo_xen_syscall 122.macro undo_xen_syscall
249 mov 0*8(%rsp),%rcx 123 mov 0*8(%rsp), %rcx
250 mov 1*8(%rsp),%r11 124 mov 1*8(%rsp), %r11
251 mov 5*8(%rsp),%rsp 125 mov 5*8(%rsp), %rsp
252.endm 126.endm
253 127
254/* Normal 64-bit system call target */ 128/* Normal 64-bit system call target */
@@ -275,7 +149,7 @@ ENDPROC(xen_sysenter_target)
275 149
276ENTRY(xen_syscall32_target) 150ENTRY(xen_syscall32_target)
277ENTRY(xen_sysenter_target) 151ENTRY(xen_sysenter_target)
278 lea 16(%rsp), %rsp /* strip %rcx,%r11 */ 152 lea 16(%rsp), %rsp /* strip %rcx, %r11 */
279 mov $-ENOSYS, %rax 153 mov $-ENOSYS, %rax
280 pushq $VGCF_in_syscall 154 pushq $VGCF_in_syscall
281 jmp hypercall_iret 155 jmp hypercall_iret
diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
index 63d49a523ed3..1a5ff24e29c0 100644
--- a/arch/x86/xen/xen-head.S
+++ b/arch/x86/xen/xen-head.S
@@ -8,7 +8,7 @@
8 8
9#include <asm/boot.h> 9#include <asm/boot.h>
10#include <asm/asm.h> 10#include <asm/asm.h>
11#include <asm/page.h> 11#include <asm/page_types.h>
12 12
13#include <xen/interface/elfnote.h> 13#include <xen/interface/elfnote.h>
14#include <asm/xen/interface.h> 14#include <asm/xen/interface.h>
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index c1f8faf0a2c5..2f5ef2632ea2 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -10,9 +10,12 @@
10extern const char xen_hypervisor_callback[]; 10extern const char xen_hypervisor_callback[];
11extern const char xen_failsafe_callback[]; 11extern const char xen_failsafe_callback[];
12 12
13extern void *xen_initial_gdt;
14
13struct trap_info; 15struct trap_info;
14void xen_copy_trap_info(struct trap_info *traps); 16void xen_copy_trap_info(struct trap_info *traps);
15 17
18DECLARE_PER_CPU(struct vcpu_info, xen_vcpu_info);
16DECLARE_PER_CPU(unsigned long, xen_cr3); 19DECLARE_PER_CPU(unsigned long, xen_cr3);
17DECLARE_PER_CPU(unsigned long, xen_current_cr3); 20DECLARE_PER_CPU(unsigned long, xen_current_cr3);
18 21
@@ -22,6 +25,13 @@ extern struct shared_info *HYPERVISOR_shared_info;
22 25
23void xen_setup_mfn_list_list(void); 26void xen_setup_mfn_list_list(void);
24void xen_setup_shared_info(void); 27void xen_setup_shared_info(void);
28void xen_setup_machphys_mapping(void);
29pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn);
30void xen_ident_map_ISA(void);
31void xen_reserve_top(void);
32
33void xen_leave_lazy(void);
34void xen_post_allocator_init(void);
25 35
26char * __init xen_memory_setup(void); 36char * __init xen_memory_setup(void);
27void __init xen_arch_setup(void); 37void __init xen_arch_setup(void);
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 6c873dceb177..981200830432 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -103,9 +103,6 @@ config MATH_EMULATION
103 help 103 help
104 Can we use information of configuration file? 104 Can we use information of configuration file?
105 105
106config HIGHMEM
107 bool "High memory support"
108
109endmenu 106endmenu
110 107
111menu "Platform options" 108menu "Platform options"
diff --git a/arch/xtensa/include/asm/Kbuild b/arch/xtensa/include/asm/Kbuild
index 58c02a454130..c68e1680da01 100644
--- a/arch/xtensa/include/asm/Kbuild
+++ b/arch/xtensa/include/asm/Kbuild
@@ -1,3 +1 @@
1include include/asm-generic/Kbuild.asm include include/asm-generic/Kbuild.asm
2
3unifdef-y += swab.h
diff --git a/arch/xtensa/include/asm/byteorder.h b/arch/xtensa/include/asm/byteorder.h
index 329b94591ca4..54eb6315349c 100644
--- a/arch/xtensa/include/asm/byteorder.h
+++ b/arch/xtensa/include/asm/byteorder.h
@@ -1,8 +1,6 @@
1#ifndef _XTENSA_BYTEORDER_H 1#ifndef _XTENSA_BYTEORDER_H
2#define _XTENSA_BYTEORDER_H 2#define _XTENSA_BYTEORDER_H
3 3
4#include <asm/swab.h>
5
6#ifdef __XTENSA_EL__ 4#ifdef __XTENSA_EL__
7#include <linux/byteorder/little_endian.h> 5#include <linux/byteorder/little_endian.h>
8#elif defined(__XTENSA_EB__) 6#elif defined(__XTENSA_EB__)
diff --git a/arch/xtensa/include/asm/swab.h b/arch/xtensa/include/asm/swab.h
index f50b697eb601..226a39162310 100644
--- a/arch/xtensa/include/asm/swab.h
+++ b/arch/xtensa/include/asm/swab.h
@@ -11,7 +11,7 @@
11#ifndef _XTENSA_SWAB_H 11#ifndef _XTENSA_SWAB_H
12#define _XTENSA_SWAB_H 12#define _XTENSA_SWAB_H
13 13
14#include <asm/types.h> 14#include <linux/types.h>
15#include <linux/compiler.h> 15#include <linux/compiler.h>
16 16
17#define __SWAB_64_THRU_32__ 17#define __SWAB_64_THRU_32__
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index 9606d2bd1dd9..4ec1633c2941 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -44,6 +44,8 @@
44#include <asm/setup.h> 44#include <asm/setup.h>
45#include <asm/param.h> 45#include <asm/param.h>
46 46
47#include <platform/hardware.h>
48
47#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE) 49#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
48struct screen_info screen_info = { 0, 24, 0, 0, 0, 80, 0, 0, 0, 24, 1, 16}; 50struct screen_info screen_info = { 0, 24, 0, 0, 0, 80, 0, 0, 0, 24, 1, 16};
49#endif 51#endif
diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c
index c7a021d9f696..c44f830b6c7a 100644
--- a/arch/xtensa/kernel/traps.c
+++ b/arch/xtensa/kernel/traps.c
@@ -30,6 +30,7 @@
30#include <linux/stringify.h> 30#include <linux/stringify.h>
31#include <linux/kallsyms.h> 31#include <linux/kallsyms.h>
32#include <linux/delay.h> 32#include <linux/delay.h>
33#include <linux/hardirq.h>
33 34
34#include <asm/ptrace.h> 35#include <asm/ptrace.h>
35#include <asm/timex.h> 36#include <asm/timex.h>
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index 33f366be323f..bdd860d93f72 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -14,6 +14,7 @@
14 14
15#include <linux/mm.h> 15#include <linux/mm.h>
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/hardirq.h>
17#include <asm/mmu_context.h> 18#include <asm/mmu_context.h>
18#include <asm/cacheflush.h> 19#include <asm/cacheflush.h>
19#include <asm/hardirq.h> 20#include <asm/hardirq.h>
diff --git a/arch/xtensa/platforms/iss/console.c b/arch/xtensa/platforms/iss/console.c
index efed8897bef3..25d46c84eb08 100644
--- a/arch/xtensa/platforms/iss/console.c
+++ b/arch/xtensa/platforms/iss/console.c
@@ -140,16 +140,14 @@ static void rs_poll(unsigned long priv)
140} 140}
141 141
142 142
143static void rs_put_char(struct tty_struct *tty, unsigned char ch) 143static int rs_put_char(struct tty_struct *tty, unsigned char ch)
144{ 144{
145 char buf[2]; 145 char buf[2];
146 146
147 if (!tty)
148 return;
149
150 buf[0] = ch; 147 buf[0] = ch;
151 buf[1] = '\0'; /* Is this NULL necessary? */ 148 buf[1] = '\0'; /* Is this NULL necessary? */
152 __simc (SYS_write, 1, (unsigned long) buf, 1, 0, 0); 149 __simc (SYS_write, 1, (unsigned long) buf, 1, 0, 0);
150 return 1;
153} 151}
154 152
155static void rs_flush_chars(struct tty_struct *tty) 153static void rs_flush_chars(struct tty_struct *tty)